@agimon-ai/doompi-voice 0.0.1-alpha.80 → 0.0.1-alpha.82
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{src/schemas/apiContracts.cjs → apiContracts.cjs} +51 -17
- package/dist/apiContracts.cjs.map +1 -0
- package/dist/{src/schemas/apiContracts.d.mts.map → apiContracts.d.mts.map} +1 -1
- package/dist/{src/schemas/apiContracts.mjs → apiContracts.mjs} +35 -3
- package/dist/apiContracts.mjs.map +1 -0
- package/dist/clientMedia-Btnad-hF.d.mts +259 -0
- package/dist/clientMedia-Btnad-hF.d.mts.map +1 -0
- package/dist/clientMedia-E44ZvrYt.cjs +156 -0
- package/dist/clientMedia-E44ZvrYt.cjs.map +1 -0
- package/dist/{src/types/clientMedia.mjs → clientMedia-G-3a29Qe.mjs} +2 -2
- package/dist/clientMedia-G-3a29Qe.mjs.map +1 -0
- package/dist/clientMedia.cjs +115 -4
- package/dist/clientMedia.cjs.map +1 -0
- package/dist/clientMedia.d.mts +1 -2
- package/dist/clientMedia.mjs +113 -2
- package/dist/clientMedia.mjs.map +1 -0
- package/dist/extensions/pi.cjs +1307 -26
- package/dist/extensions/pi.cjs.map +1 -1
- package/dist/extensions/pi.d.mts +2 -3
- package/dist/extensions/pi.d.mts.map +1 -1
- package/dist/extensions/pi.mjs +1292 -16
- package/dist/extensions/pi.mjs.map +1 -1
- package/dist/extensions/server.cjs +2871 -42
- package/dist/extensions/server.cjs.map +1 -1
- package/dist/extensions/server.d.mts +1 -1
- package/dist/extensions/server.d.mts.map +1 -1
- package/dist/extensions/server.mjs +2850 -24
- package/dist/extensions/server.mjs.map +1 -1
- package/dist/index-BRqic9ab.d.mts +869 -0
- package/dist/index-BRqic9ab.d.mts.map +1 -0
- package/dist/index-BqGqTmru.d.mts +7 -0
- package/dist/index-BqGqTmru.d.mts.map +1 -0
- package/dist/index-DWWq2RYu.d.mts +435 -0
- package/dist/index-DWWq2RYu.d.mts.map +1 -0
- package/dist/index.cjs +375 -86
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.mts +3 -22
- package/dist/index.mjs +307 -18
- package/dist/index.mjs.map +1 -0
- package/dist/narrationBargeIn-DufMrN5Q.mjs +2144 -0
- package/dist/narrationBargeIn-DufMrN5Q.mjs.map +1 -0
- package/dist/narrationBargeIn-fhm2fhaT.cjs +2429 -0
- package/dist/narrationBargeIn-fhm2fhaT.cjs.map +1 -0
- package/dist/{_virtual/_rolldown/runtime.cjs → rolldown-runtime-BloeesfJ.cjs} +18 -3
- package/dist/{src/services/vad/index.mjs → vad-CgKHy0Np.mjs} +3 -3
- package/dist/vad-CgKHy0Np.mjs.map +1 -0
- package/dist/{src/services/vad/index.cjs → vad-DsrHoY8x.cjs} +20 -5
- package/dist/vad-DsrHoY8x.cjs.map +1 -0
- package/dist/voiceController-BjPxJg63.mjs +2091 -0
- package/dist/voiceController-BjPxJg63.mjs.map +1 -0
- package/dist/voiceController-Caf0ISzB.cjs +2280 -0
- package/dist/voiceController-Caf0ISzB.cjs.map +1 -0
- package/dist/voiceModeController-B81fVubZ.mjs +6379 -0
- package/dist/voiceModeController-B81fVubZ.mjs.map +1 -0
- package/dist/voiceModeController-DON34KO1.cjs +6585 -0
- package/dist/voiceModeController-DON34KO1.cjs.map +1 -0
- package/dist/voiceReloadHandoff.cjs +3 -3
- package/dist/voiceReloadHandoff.d.mts +1 -1
- package/dist/voiceReloadHandoff.mjs +1 -1
- package/dist/{src/services/voiceTools/index.mjs → voiceTools-BJ_dP0nd.mjs} +32 -7
- package/dist/voiceTools-BJ_dP0nd.mjs.map +1 -0
- package/dist/{src/services/voiceTools/index.cjs → voiceTools-BmMrC2zb.cjs} +66 -69
- package/dist/voiceTools-BmMrC2zb.cjs.map +1 -0
- package/dist/voiceTools.cjs +5 -5
- package/dist/voiceTools.d.mts +2 -2
- package/dist/voiceTools.mjs +2 -2
- package/dist/voiceWorker.cjs +1783 -6
- package/dist/voiceWorker.cjs.map +1 -1
- package/dist/voiceWorker.d.mts +1 -1
- package/dist/voiceWorker.mjs +1776 -3
- package/dist/voiceWorker.mjs.map +1 -1
- package/package.json +23 -22
- package/dist/_virtual/_rolldown/runtime.mjs +0 -28
- package/dist/api-contracts.cjs +0 -7
- package/dist/api-contracts.d.cts +0 -2
- package/dist/api-contracts.d.mts +0 -2
- package/dist/api-contracts.mjs +0 -2
- package/dist/clientMedia.d.cts +0 -3
- package/dist/extensions/pi.d.cts +0 -7
- package/dist/extensions/pi.d.cts.map +0 -1
- package/dist/extensions/server.d.cts +0 -5
- package/dist/extensions/server.d.cts.map +0 -1
- package/dist/index.d.cts +0 -23
- package/dist/src/constants/voice.cjs +0 -18
- package/dist/src/constants/voice.cjs.map +0 -1
- package/dist/src/constants/voice.mjs +0 -17
- package/dist/src/constants/voice.mjs.map +0 -1
- package/dist/src/constants/voiceRuntime.cjs +0 -65
- package/dist/src/constants/voiceRuntime.cjs.map +0 -1
- package/dist/src/constants/voiceRuntime.mjs +0 -46
- package/dist/src/constants/voiceRuntime.mjs.map +0 -1
- package/dist/src/extensions/(backend)/api/voice/route.server.cjs +0 -22
- package/dist/src/extensions/(backend)/api/voice/route.server.cjs.map +0 -1
- package/dist/src/extensions/(backend)/api/voice/route.server.mjs +0 -23
- package/dist/src/extensions/(backend)/api/voice/route.server.mjs.map +0 -1
- package/dist/src/extensions/(backend)/channel/voice-media-wake.server.cjs +0 -7
- package/dist/src/extensions/(backend)/channel/voice-media-wake.server.cjs.map +0 -1
- package/dist/src/extensions/(backend)/channel/voice-media-wake.server.mjs +0 -8
- package/dist/src/extensions/(backend)/channel/voice-media-wake.server.mjs.map +0 -1
- package/dist/src/extensions/(backend)/channel/voice-ownership.server.cjs +0 -7
- package/dist/src/extensions/(backend)/channel/voice-ownership.server.cjs.map +0 -1
- package/dist/src/extensions/(backend)/channel/voice-ownership.server.mjs +0 -8
- package/dist/src/extensions/(backend)/channel/voice-ownership.server.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/api/voice/route.server.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/api/voice/route.server.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/api/voice/route.server.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/api/voice/route.server.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/api/voice-media/route.server.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/api/voice-media/route.server.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/api/voice-media/route.server.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/api/voice-media/route.server.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/command/voice.cli.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/command/voice.cli.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/command/voice.cli.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/command/voice.cli.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/command/voice.server.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/command/voice.server.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/command/voice.server.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/command/voice.server.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/command/voiceAuto.cli.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/command/voiceAuto.cli.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/command/voiceAuto.cli.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/command/voiceAuto.cli.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/command/voiceAuto.server.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/command/voiceAuto.server.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/command/voiceAuto.server.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/command/voiceAuto.server.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/agentSettled.cli.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/agentSettled.cli.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/agentSettled.cli.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/agentSettled.cli.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/agentSettled.server.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/agentSettled.server.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/agentSettled.server.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/agentSettled.server.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/beforeAgentStart.cli.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/beforeAgentStart.cli.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/beforeAgentStart.cli.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/beforeAgentStart.cli.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/beforeAgentStart.server.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/beforeAgentStart.server.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/beforeAgentStart.server.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/beforeAgentStart.server.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/messageEnd.server.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/messageEnd.server.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/messageEnd.server.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/messageEnd.server.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/sessionShutdown.server.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/sessionShutdown.server.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/sessionShutdown.server.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/sessionShutdown.server.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/sessionStart.cli.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/sessionStart.cli.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/sessionStart.cli.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/sessionStart.cli.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/toolExecutionStart.cli.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/toolExecutionStart.cli.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/toolExecutionStart.cli.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/toolExecutionStart.cli.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/turnEnd.cli.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/turnEnd.cli.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/turnEnd.cli.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/turnEnd.cli.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/method/voiceControl.server.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/method/voiceControl.server.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/method/voiceControl.server.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/method/voiceControl.server.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompiUseVoice.cli.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompiUseVoice.cli.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompiUseVoice.cli.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompiUseVoice.cli.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompiUseVoice.server.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompiUseVoice.server.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompiUseVoice.server.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/resource/doompiUseVoice.server.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.cjs +0 -26
- package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.mjs +0 -27
- package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/root.server.cjs +0 -45
- package/dist/src/extensions/workspaces/sessions/(backend)/root.server.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/root.server.mjs +0 -45
- package/dist/src/extensions/workspaces/sessions/(backend)/root.server.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/describeVoiceTools.server.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/describeVoiceTools.server.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/describeVoiceTools.server.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/describeVoiceTools.server.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/narrate.server.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/narrate.server.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/narrate.server.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/narrate.server.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/transferVoice.server.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/transferVoice.server.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/transferVoice.server.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/transferVoice.server.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/useVoiceTools.server.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/useVoiceTools.server.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/useVoiceTools.server.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/useVoiceTools.server.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/voice.cli.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/voice.cli.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/voice.cli.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/tool/voice.cli.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/transferVoice.cli.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/transferVoice.cli.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/transferVoice.cli.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/transferVoice.cli.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/voice.cli.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/voice.cli.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/voice.cli.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/tool-restriction/voice.cli.mjs.map +0 -1
- package/dist/src/models/autonomousVoiceMachine.cjs +0 -678
- package/dist/src/models/autonomousVoiceMachine.cjs.map +0 -1
- package/dist/src/models/autonomousVoiceMachine.d.cts +0 -2
- package/dist/src/models/autonomousVoiceMachine.d.mts +0 -2
- package/dist/src/models/autonomousVoiceMachine.mjs +0 -677
- package/dist/src/models/autonomousVoiceMachine.mjs.map +0 -1
- package/dist/src/models/autonomousVoiceUi.cjs +0 -76
- package/dist/src/models/autonomousVoiceUi.cjs.map +0 -1
- package/dist/src/models/autonomousVoiceUi.mjs +0 -76
- package/dist/src/models/autonomousVoiceUi.mjs.map +0 -1
- package/dist/src/models/narrationBargeIn.cjs +0 -63
- package/dist/src/models/narrationBargeIn.cjs.map +0 -1
- package/dist/src/models/narrationBargeIn.d.cts +0 -15
- package/dist/src/models/narrationBargeIn.d.cts.map +0 -1
- package/dist/src/models/narrationBargeIn.d.mts +0 -15
- package/dist/src/models/narrationBargeIn.d.mts.map +0 -1
- package/dist/src/models/narrationBargeIn.mjs +0 -62
- package/dist/src/models/narrationBargeIn.mjs.map +0 -1
- package/dist/src/models/voiceActivity.cjs +0 -74
- package/dist/src/models/voiceActivity.cjs.map +0 -1
- package/dist/src/models/voiceActivity.d.cts +0 -26
- package/dist/src/models/voiceActivity.d.cts.map +0 -1
- package/dist/src/models/voiceActivity.d.mts +0 -26
- package/dist/src/models/voiceActivity.d.mts.map +0 -1
- package/dist/src/models/voiceActivity.mjs +0 -73
- package/dist/src/models/voiceActivity.mjs.map +0 -1
- package/dist/src/models/voiceMode.cjs +0 -84
- package/dist/src/models/voiceMode.cjs.map +0 -1
- package/dist/src/models/voiceMode.d.cts +0 -10
- package/dist/src/models/voiceMode.d.cts.map +0 -1
- package/dist/src/models/voiceMode.d.mts +0 -10
- package/dist/src/models/voiceMode.d.mts.map +0 -1
- package/dist/src/models/voiceMode.mjs +0 -82
- package/dist/src/models/voiceMode.mjs.map +0 -1
- package/dist/src/schemas/apiContracts.cjs.map +0 -1
- package/dist/src/schemas/apiContracts.d.cts +0 -53
- package/dist/src/schemas/apiContracts.d.cts.map +0 -1
- package/dist/src/schemas/apiContracts.mjs.map +0 -1
- package/dist/src/schemas/voiceControl.cjs +0 -37
- package/dist/src/schemas/voiceControl.cjs.map +0 -1
- package/dist/src/schemas/voiceControl.mjs +0 -37
- package/dist/src/schemas/voiceControl.mjs.map +0 -1
- package/dist/src/services/autonomousEndpoint/index.cjs +0 -69
- package/dist/src/services/autonomousEndpoint/index.cjs.map +0 -1
- package/dist/src/services/autonomousEndpoint/index.mjs +0 -69
- package/dist/src/services/autonomousEndpoint/index.mjs.map +0 -1
- package/dist/src/services/autonomousTurn/index.cjs +0 -33
- package/dist/src/services/autonomousTurn/index.cjs.map +0 -1
- package/dist/src/services/autonomousTurn/index.d.cts +0 -6
- package/dist/src/services/autonomousTurn/index.d.cts.map +0 -1
- package/dist/src/services/autonomousTurn/index.d.mts +0 -6
- package/dist/src/services/autonomousTurn/index.d.mts.map +0 -1
- package/dist/src/services/autonomousTurn/index.mjs +0 -33
- package/dist/src/services/autonomousTurn/index.mjs.map +0 -1
- package/dist/src/services/autonomousVoiceSession/index.cjs +0 -797
- package/dist/src/services/autonomousVoiceSession/index.cjs.map +0 -1
- package/dist/src/services/autonomousVoiceSession/index.mjs +0 -797
- package/dist/src/services/autonomousVoiceSession/index.mjs.map +0 -1
- package/dist/src/services/autonomousVoiceTelemetry/index.cjs +0 -83
- package/dist/src/services/autonomousVoiceTelemetry/index.cjs.map +0 -1
- package/dist/src/services/autonomousVoiceTelemetry/index.d.cts +0 -8
- package/dist/src/services/autonomousVoiceTelemetry/index.d.cts.map +0 -1
- package/dist/src/services/autonomousVoiceTelemetry/index.d.mts +0 -8
- package/dist/src/services/autonomousVoiceTelemetry/index.d.mts.map +0 -1
- package/dist/src/services/autonomousVoiceTelemetry/index.mjs +0 -82
- package/dist/src/services/autonomousVoiceTelemetry/index.mjs.map +0 -1
- package/dist/src/services/captureSession/index.cjs +0 -252
- package/dist/src/services/captureSession/index.cjs.map +0 -1
- package/dist/src/services/captureSession/index.mjs +0 -252
- package/dist/src/services/captureSession/index.mjs.map +0 -1
- package/dist/src/services/catalog/index.cjs +0 -111
- package/dist/src/services/catalog/index.cjs.map +0 -1
- package/dist/src/services/catalog/index.mjs +0 -105
- package/dist/src/services/catalog/index.mjs.map +0 -1
- package/dist/src/services/clientMedia/index.cjs +0 -203
- package/dist/src/services/clientMedia/index.cjs.map +0 -1
- package/dist/src/services/clientMedia/index.d.cts +0 -24
- package/dist/src/services/clientMedia/index.d.cts.map +0 -1
- package/dist/src/services/clientMedia/index.d.mts +0 -24
- package/dist/src/services/clientMedia/index.d.mts.map +0 -1
- package/dist/src/services/clientMedia/index.mjs +0 -201
- package/dist/src/services/clientMedia/index.mjs.map +0 -1
- package/dist/src/services/clientMediaApi/index.cjs +0 -856
- package/dist/src/services/clientMediaApi/index.cjs.map +0 -1
- package/dist/src/services/clientMediaApi/index.mjs +0 -855
- package/dist/src/services/clientMediaApi/index.mjs.map +0 -1
- package/dist/src/services/codexAuth/index.cjs +0 -246
- package/dist/src/services/codexAuth/index.cjs.map +0 -1
- package/dist/src/services/codexAuth/index.mjs +0 -230
- package/dist/src/services/codexAuth/index.mjs.map +0 -1
- package/dist/src/services/codexAuthStorage/index.cjs +0 -92
- package/dist/src/services/codexAuthStorage/index.cjs.map +0 -1
- package/dist/src/services/codexAuthStorage/index.mjs +0 -92
- package/dist/src/services/codexAuthStorage/index.mjs.map +0 -1
- package/dist/src/services/codexLogin/index.cjs +0 -117
- package/dist/src/services/codexLogin/index.cjs.map +0 -1
- package/dist/src/services/codexLogin/index.mjs +0 -117
- package/dist/src/services/codexLogin/index.mjs.map +0 -1
- package/dist/src/services/codexRealtime/index.cjs +0 -207
- package/dist/src/services/codexRealtime/index.cjs.map +0 -1
- package/dist/src/services/codexRealtime/index.mjs +0 -207
- package/dist/src/services/codexRealtime/index.mjs.map +0 -1
- package/dist/src/services/commandCorrection/index.cjs +0 -350
- package/dist/src/services/commandCorrection/index.cjs.map +0 -1
- package/dist/src/services/commandCorrection/index.d.cts +0 -23
- package/dist/src/services/commandCorrection/index.d.cts.map +0 -1
- package/dist/src/services/commandCorrection/index.d.mts +0 -23
- package/dist/src/services/commandCorrection/index.d.mts.map +0 -1
- package/dist/src/services/commandCorrection/index.mjs +0 -346
- package/dist/src/services/commandCorrection/index.mjs.map +0 -1
- package/dist/src/services/commandCorrection/type.d.cts +0 -25
- package/dist/src/services/commandCorrection/type.d.cts.map +0 -1
- package/dist/src/services/commandCorrection/type.d.mts +0 -25
- package/dist/src/services/commandCorrection/type.d.mts.map +0 -1
- package/dist/src/services/controlPhraseMatcher/index.cjs +0 -124
- package/dist/src/services/controlPhraseMatcher/index.cjs.map +0 -1
- package/dist/src/services/controlPhraseMatcher/index.mjs +0 -117
- package/dist/src/services/controlPhraseMatcher/index.mjs.map +0 -1
- package/dist/src/services/download/index.cjs +0 -98
- package/dist/src/services/download/index.cjs.map +0 -1
- package/dist/src/services/download/index.mjs +0 -91
- package/dist/src/services/download/index.mjs.map +0 -1
- package/dist/src/services/encodedAudio/index.cjs +0 -107
- package/dist/src/services/encodedAudio/index.cjs.map +0 -1
- package/dist/src/services/encodedAudio/index.mjs +0 -104
- package/dist/src/services/encodedAudio/index.mjs.map +0 -1
- package/dist/src/services/fallbackNarration/index.cjs +0 -279
- package/dist/src/services/fallbackNarration/index.cjs.map +0 -1
- package/dist/src/services/fallbackNarration/index.d.cts +0 -14
- package/dist/src/services/fallbackNarration/index.d.cts.map +0 -1
- package/dist/src/services/fallbackNarration/index.d.mts +0 -14
- package/dist/src/services/fallbackNarration/index.d.mts.map +0 -1
- package/dist/src/services/fallbackNarration/index.mjs +0 -278
- package/dist/src/services/fallbackNarration/index.mjs.map +0 -1
- package/dist/src/services/fallbackNarration/type.d.cts +0 -29
- package/dist/src/services/fallbackNarration/type.d.cts.map +0 -1
- package/dist/src/services/fallbackNarration/type.d.mts +0 -29
- package/dist/src/services/fallbackNarration/type.d.mts.map +0 -1
- package/dist/src/services/fileTurnSpool/index.cjs +0 -214
- package/dist/src/services/fileTurnSpool/index.cjs.map +0 -1
- package/dist/src/services/fileTurnSpool/index.mjs +0 -211
- package/dist/src/services/fileTurnSpool/index.mjs.map +0 -1
- package/dist/src/services/infrastructure/index.cjs +0 -530
- package/dist/src/services/infrastructure/index.cjs.map +0 -1
- package/dist/src/services/infrastructure/index.d.cts +0 -64
- package/dist/src/services/infrastructure/index.d.cts.map +0 -1
- package/dist/src/services/infrastructure/index.d.mts +0 -64
- package/dist/src/services/infrastructure/index.d.mts.map +0 -1
- package/dist/src/services/infrastructure/index.mjs +0 -515
- package/dist/src/services/infrastructure/index.mjs.map +0 -1
- package/dist/src/services/install/index.cjs +0 -93
- package/dist/src/services/install/index.cjs.map +0 -1
- package/dist/src/services/install/index.mjs +0 -91
- package/dist/src/services/install/index.mjs.map +0 -1
- package/dist/src/services/liveVoiceController/index.cjs +0 -311
- package/dist/src/services/liveVoiceController/index.cjs.map +0 -1
- package/dist/src/services/liveVoiceController/index.mjs +0 -311
- package/dist/src/services/liveVoiceController/index.mjs.map +0 -1
- package/dist/src/services/manualTranscription/index.cjs +0 -78
- package/dist/src/services/manualTranscription/index.cjs.map +0 -1
- package/dist/src/services/manualTranscription/index.mjs +0 -78
- package/dist/src/services/manualTranscription/index.mjs.map +0 -1
- package/dist/src/services/manualTranscriptionApi/index.cjs +0 -102
- package/dist/src/services/manualTranscriptionApi/index.cjs.map +0 -1
- package/dist/src/services/manualTranscriptionApi/index.mjs +0 -101
- package/dist/src/services/manualTranscriptionApi/index.mjs.map +0 -1
- package/dist/src/services/manualTranscriptionConfig/index.cjs +0 -20
- package/dist/src/services/manualTranscriptionConfig/index.cjs.map +0 -1
- package/dist/src/services/manualTranscriptionConfig/index.mjs +0 -20
- package/dist/src/services/manualTranscriptionConfig/index.mjs.map +0 -1
- package/dist/src/services/minorModeCatalog/index.cjs +0 -82
- package/dist/src/services/minorModeCatalog/index.cjs.map +0 -1
- package/dist/src/services/minorModeCatalog/index.mjs +0 -81
- package/dist/src/services/minorModeCatalog/index.mjs.map +0 -1
- package/dist/src/services/narration/index.cjs +0 -240
- package/dist/src/services/narration/index.cjs.map +0 -1
- package/dist/src/services/narration/index.d.cts +0 -56
- package/dist/src/services/narration/index.d.cts.map +0 -1
- package/dist/src/services/narration/index.d.mts +0 -56
- package/dist/src/services/narration/index.d.mts.map +0 -1
- package/dist/src/services/narration/index.mjs +0 -240
- package/dist/src/services/narration/index.mjs.map +0 -1
- package/dist/src/services/narrationBargeIn/index.cjs +0 -241
- package/dist/src/services/narrationBargeIn/index.cjs.map +0 -1
- package/dist/src/services/narrationBargeIn/index.mjs +0 -239
- package/dist/src/services/narrationBargeIn/index.mjs.map +0 -1
- package/dist/src/services/narrationPlayback/index.cjs +0 -271
- package/dist/src/services/narrationPlayback/index.cjs.map +0 -1
- package/dist/src/services/narrationPlayback/index.d.cts +0 -55
- package/dist/src/services/narrationPlayback/index.d.cts.map +0 -1
- package/dist/src/services/narrationPlayback/index.d.mts +0 -55
- package/dist/src/services/narrationPlayback/index.d.mts.map +0 -1
- package/dist/src/services/narrationPlayback/index.mjs +0 -271
- package/dist/src/services/narrationPlayback/index.mjs.map +0 -1
- package/dist/src/services/narrationTool/index.cjs +0 -92
- package/dist/src/services/narrationTool/index.cjs.map +0 -1
- package/dist/src/services/narrationTool/index.d.cts +0 -7
- package/dist/src/services/narrationTool/index.d.mts +0 -7
- package/dist/src/services/narrationTool/index.mjs +0 -91
- package/dist/src/services/narrationTool/index.mjs.map +0 -1
- package/dist/src/services/pcm/index.cjs +0 -62
- package/dist/src/services/pcm/index.cjs.map +0 -1
- package/dist/src/services/pcm/index.d.cts +0 -15
- package/dist/src/services/pcm/index.d.cts.map +0 -1
- package/dist/src/services/pcm/index.d.mts +0 -15
- package/dist/src/services/pcm/index.d.mts.map +0 -1
- package/dist/src/services/pcm/index.mjs +0 -55
- package/dist/src/services/pcm/index.mjs.map +0 -1
- package/dist/src/services/playbackGate/index.cjs +0 -44
- package/dist/src/services/playbackGate/index.cjs.map +0 -1
- package/dist/src/services/playbackGate/index.mjs +0 -44
- package/dist/src/services/playbackGate/index.mjs.map +0 -1
- package/dist/src/services/realtimeContext/index.cjs +0 -81
- package/dist/src/services/realtimeContext/index.cjs.map +0 -1
- package/dist/src/services/realtimeContext/index.mjs +0 -81
- package/dist/src/services/realtimeContext/index.mjs.map +0 -1
- package/dist/src/services/realtimeDelivery/index.cjs +0 -109
- package/dist/src/services/realtimeDelivery/index.cjs.map +0 -1
- package/dist/src/services/realtimeDelivery/index.mjs +0 -109
- package/dist/src/services/realtimeDelivery/index.mjs.map +0 -1
- package/dist/src/services/realtimeHost/index.cjs +0 -9
- package/dist/src/services/realtimeHost/index.cjs.map +0 -1
- package/dist/src/services/realtimeHost/index.d.cts +0 -11
- package/dist/src/services/realtimeHost/index.d.cts.map +0 -1
- package/dist/src/services/realtimeHost/index.d.mts +0 -11
- package/dist/src/services/realtimeHost/index.d.mts.map +0 -1
- package/dist/src/services/realtimeHost/index.mjs +0 -9
- package/dist/src/services/realtimeHost/index.mjs.map +0 -1
- package/dist/src/services/realtimeMediaBroker/index.cjs +0 -130
- package/dist/src/services/realtimeMediaBroker/index.cjs.map +0 -1
- package/dist/src/services/realtimeMediaBroker/index.mjs +0 -130
- package/dist/src/services/realtimeMediaBroker/index.mjs.map +0 -1
- package/dist/src/services/realtimeProtocol/index.cjs +0 -139
- package/dist/src/services/realtimeProtocol/index.cjs.map +0 -1
- package/dist/src/services/realtimeProtocol/index.mjs +0 -137
- package/dist/src/services/realtimeProtocol/index.mjs.map +0 -1
- package/dist/src/services/realtimeRuntime/index.cjs +0 -371
- package/dist/src/services/realtimeRuntime/index.cjs.map +0 -1
- package/dist/src/services/realtimeRuntime/index.d.cts +0 -8
- package/dist/src/services/realtimeRuntime/index.d.cts.map +0 -1
- package/dist/src/services/realtimeRuntime/index.d.mts +0 -8
- package/dist/src/services/realtimeRuntime/index.d.mts.map +0 -1
- package/dist/src/services/realtimeRuntime/index.mjs +0 -371
- package/dist/src/services/realtimeRuntime/index.mjs.map +0 -1
- package/dist/src/services/realtimeSession/index.cjs +0 -174
- package/dist/src/services/realtimeSession/index.cjs.map +0 -1
- package/dist/src/services/realtimeSession/index.mjs +0 -174
- package/dist/src/services/realtimeSession/index.mjs.map +0 -1
- package/dist/src/services/semanticEcho/index.cjs +0 -316
- package/dist/src/services/semanticEcho/index.cjs.map +0 -1
- package/dist/src/services/semanticEcho/index.d.cts +0 -42
- package/dist/src/services/semanticEcho/index.d.cts.map +0 -1
- package/dist/src/services/semanticEcho/index.d.mts +0 -42
- package/dist/src/services/semanticEcho/index.d.mts.map +0 -1
- package/dist/src/services/semanticEcho/index.mjs +0 -308
- package/dist/src/services/semanticEcho/index.mjs.map +0 -1
- package/dist/src/services/semanticEcho/type.d.cts +0 -52
- package/dist/src/services/semanticEcho/type.d.cts.map +0 -1
- package/dist/src/services/semanticEcho/type.d.mts +0 -52
- package/dist/src/services/semanticEcho/type.d.mts.map +0 -1
- package/dist/src/services/sessionVoiceOwnership/index.cjs +0 -239
- package/dist/src/services/sessionVoiceOwnership/index.cjs.map +0 -1
- package/dist/src/services/sessionVoiceOwnership/index.d.cts +0 -8
- package/dist/src/services/sessionVoiceOwnership/index.d.cts.map +0 -1
- package/dist/src/services/sessionVoiceOwnership/index.d.mts +0 -8
- package/dist/src/services/sessionVoiceOwnership/index.d.mts.map +0 -1
- package/dist/src/services/sessionVoiceOwnership/index.mjs +0 -235
- package/dist/src/services/sessionVoiceOwnership/index.mjs.map +0 -1
- package/dist/src/services/silero/index.cjs +0 -103
- package/dist/src/services/silero/index.cjs.map +0 -1
- package/dist/src/services/silero/index.mjs +0 -99
- package/dist/src/services/silero/index.mjs.map +0 -1
- package/dist/src/services/transcriptAdmission/index.cjs +0 -409
- package/dist/src/services/transcriptAdmission/index.cjs.map +0 -1
- package/dist/src/services/transcriptAdmission/index.d.cts +0 -3
- package/dist/src/services/transcriptAdmission/index.d.mts +0 -3
- package/dist/src/services/transcriptAdmission/index.mjs +0 -408
- package/dist/src/services/transcriptAdmission/index.mjs.map +0 -1
- package/dist/src/services/transcriptAdmission/type.d.cts +0 -44
- package/dist/src/services/transcriptAdmission/type.d.cts.map +0 -1
- package/dist/src/services/transcriptAdmission/type.d.mts +0 -44
- package/dist/src/services/transcriptAdmission/type.d.mts.map +0 -1
- package/dist/src/services/transcriptPolicy/index.cjs +0 -185
- package/dist/src/services/transcriptPolicy/index.cjs.map +0 -1
- package/dist/src/services/transcriptPolicy/index.mjs +0 -181
- package/dist/src/services/transcriptPolicy/index.mjs.map +0 -1
- package/dist/src/services/transcriptionCoordinator/index.cjs +0 -81
- package/dist/src/services/transcriptionCoordinator/index.cjs.map +0 -1
- package/dist/src/services/transcriptionCoordinator/index.mjs +0 -79
- package/dist/src/services/transcriptionCoordinator/index.mjs.map +0 -1
- package/dist/src/services/transferVoiceTool/index.cjs +0 -115
- package/dist/src/services/transferVoiceTool/index.cjs.map +0 -1
- package/dist/src/services/transferVoiceTool/index.mjs +0 -112
- package/dist/src/services/transferVoiceTool/index.mjs.map +0 -1
- package/dist/src/services/turnTranscriber/index.cjs +0 -82
- package/dist/src/services/turnTranscriber/index.cjs.map +0 -1
- package/dist/src/services/turnTranscriber/index.mjs +0 -81
- package/dist/src/services/turnTranscriber/index.mjs.map +0 -1
- package/dist/src/services/utterance/index.cjs +0 -114
- package/dist/src/services/utterance/index.cjs.map +0 -1
- package/dist/src/services/utterance/index.d.cts +0 -44
- package/dist/src/services/utterance/index.d.cts.map +0 -1
- package/dist/src/services/utterance/index.d.mts +0 -44
- package/dist/src/services/utterance/index.d.mts.map +0 -1
- package/dist/src/services/utterance/index.mjs +0 -112
- package/dist/src/services/utterance/index.mjs.map +0 -1
- package/dist/src/services/vad/index.cjs.map +0 -1
- package/dist/src/services/vad/index.d.cts +0 -87
- package/dist/src/services/vad/index.d.cts.map +0 -1
- package/dist/src/services/vad/index.d.mts +0 -87
- package/dist/src/services/vad/index.d.mts.map +0 -1
- package/dist/src/services/vad/index.mjs.map +0 -1
- package/dist/src/services/voiceCommandContext/index.cjs +0 -125
- package/dist/src/services/voiceCommandContext/index.cjs.map +0 -1
- package/dist/src/services/voiceCommandContext/index.mjs +0 -125
- package/dist/src/services/voiceCommandContext/index.mjs.map +0 -1
- package/dist/src/services/voiceConfig/index.cjs +0 -36
- package/dist/src/services/voiceConfig/index.cjs.map +0 -1
- package/dist/src/services/voiceConfig/index.d.cts +0 -7
- package/dist/src/services/voiceConfig/index.d.cts.map +0 -1
- package/dist/src/services/voiceConfig/index.d.mts +0 -7
- package/dist/src/services/voiceConfig/index.d.mts.map +0 -1
- package/dist/src/services/voiceConfig/index.mjs +0 -32
- package/dist/src/services/voiceConfig/index.mjs.map +0 -1
- package/dist/src/services/voiceConfigController/index.cjs +0 -813
- package/dist/src/services/voiceConfigController/index.cjs.map +0 -1
- package/dist/src/services/voiceConfigController/index.mjs +0 -807
- package/dist/src/services/voiceConfigController/index.mjs.map +0 -1
- package/dist/src/services/voiceController/index.cjs +0 -795
- package/dist/src/services/voiceController/index.cjs.map +0 -1
- package/dist/src/services/voiceController/index.d.cts +0 -109
- package/dist/src/services/voiceController/index.d.cts.map +0 -1
- package/dist/src/services/voiceController/index.d.mts +0 -109
- package/dist/src/services/voiceController/index.d.mts.map +0 -1
- package/dist/src/services/voiceController/index.mjs +0 -778
- package/dist/src/services/voiceController/index.mjs.map +0 -1
- package/dist/src/services/voiceDelivery/index.cjs +0 -76
- package/dist/src/services/voiceDelivery/index.cjs.map +0 -1
- package/dist/src/services/voiceDelivery/index.d.cts +0 -5
- package/dist/src/services/voiceDelivery/index.d.cts.map +0 -1
- package/dist/src/services/voiceDelivery/index.d.mts +0 -5
- package/dist/src/services/voiceDelivery/index.d.mts.map +0 -1
- package/dist/src/services/voiceDelivery/index.mjs +0 -76
- package/dist/src/services/voiceDelivery/index.mjs.map +0 -1
- package/dist/src/services/voiceDependencies/index.cjs +0 -39
- package/dist/src/services/voiceDependencies/index.cjs.map +0 -1
- package/dist/src/services/voiceDependencies/index.d.cts +0 -5
- package/dist/src/services/voiceDependencies/index.d.cts.map +0 -1
- package/dist/src/services/voiceDependencies/index.d.mts +0 -5
- package/dist/src/services/voiceDependencies/index.d.mts.map +0 -1
- package/dist/src/services/voiceDependencies/index.mjs +0 -39
- package/dist/src/services/voiceDependencies/index.mjs.map +0 -1
- package/dist/src/services/voiceMediaHubChannel/index.cjs +0 -217
- package/dist/src/services/voiceMediaHubChannel/index.cjs.map +0 -1
- package/dist/src/services/voiceMediaHubChannel/index.mjs +0 -216
- package/dist/src/services/voiceMediaHubChannel/index.mjs.map +0 -1
- package/dist/src/services/voiceModeController/index.cjs +0 -68
- package/dist/src/services/voiceModeController/index.cjs.map +0 -1
- package/dist/src/services/voiceModeController/index.mjs +0 -68
- package/dist/src/services/voiceModeController/index.mjs.map +0 -1
- package/dist/src/services/voiceOwnershipCoordinator/index.cjs +0 -227
- package/dist/src/services/voiceOwnershipCoordinator/index.cjs.map +0 -1
- package/dist/src/services/voiceOwnershipCoordinator/index.mjs +0 -227
- package/dist/src/services/voiceOwnershipCoordinator/index.mjs.map +0 -1
- package/dist/src/services/voicePeerRelay/index.cjs +0 -335
- package/dist/src/services/voicePeerRelay/index.cjs.map +0 -1
- package/dist/src/services/voicePeerRelay/index.mjs +0 -331
- package/dist/src/services/voicePeerRelay/index.mjs.map +0 -1
- package/dist/src/services/voicePlugin/index.cjs +0 -163
- package/dist/src/services/voicePlugin/index.cjs.map +0 -1
- package/dist/src/services/voicePlugin/index.mjs +0 -163
- package/dist/src/services/voicePlugin/index.mjs.map +0 -1
- package/dist/src/services/voiceReadiness/index.cjs +0 -37
- package/dist/src/services/voiceReadiness/index.cjs.map +0 -1
- package/dist/src/services/voiceReadiness/index.mjs +0 -37
- package/dist/src/services/voiceReadiness/index.mjs.map +0 -1
- package/dist/src/services/voiceReadinessApi/index.cjs +0 -26
- package/dist/src/services/voiceReadinessApi/index.cjs.map +0 -1
- package/dist/src/services/voiceReadinessApi/index.mjs +0 -26
- package/dist/src/services/voiceReadinessApi/index.mjs.map +0 -1
- package/dist/src/services/voiceServer/index.cjs +0 -454
- package/dist/src/services/voiceServer/index.cjs.map +0 -1
- package/dist/src/services/voiceServer/index.mjs +0 -454
- package/dist/src/services/voiceServer/index.mjs.map +0 -1
- package/dist/src/services/voiceSessionApi/index.cjs +0 -39
- package/dist/src/services/voiceSessionApi/index.cjs.map +0 -1
- package/dist/src/services/voiceSessionApi/index.mjs +0 -39
- package/dist/src/services/voiceSessionApi/index.mjs.map +0 -1
- package/dist/src/services/voiceSessionController/index.cjs +0 -196
- package/dist/src/services/voiceSessionController/index.cjs.map +0 -1
- package/dist/src/services/voiceSessionController/index.d.cts +0 -33
- package/dist/src/services/voiceSessionController/index.d.cts.map +0 -1
- package/dist/src/services/voiceSessionController/index.d.mts +0 -33
- package/dist/src/services/voiceSessionController/index.d.mts.map +0 -1
- package/dist/src/services/voiceSessionController/index.mjs +0 -196
- package/dist/src/services/voiceSessionController/index.mjs.map +0 -1
- package/dist/src/services/voiceToolPrompt/index.cjs +0 -175
- package/dist/src/services/voiceToolPrompt/index.cjs.map +0 -1
- package/dist/src/services/voiceToolPrompt/index.mjs +0 -172
- package/dist/src/services/voiceToolPrompt/index.mjs.map +0 -1
- package/dist/src/services/voiceToolRender/index.cjs +0 -286
- package/dist/src/services/voiceToolRender/index.cjs.map +0 -1
- package/dist/src/services/voiceToolRender/index.mjs +0 -283
- package/dist/src/services/voiceToolRender/index.mjs.map +0 -1
- package/dist/src/services/voiceTools/index.cjs.map +0 -1
- package/dist/src/services/voiceTools/index.d.cts +0 -7
- package/dist/src/services/voiceTools/index.d.cts.map +0 -1
- package/dist/src/services/voiceTools/index.d.mts +0 -7
- package/dist/src/services/voiceTools/index.d.mts.map +0 -1
- package/dist/src/services/voiceTools/index.mjs.map +0 -1
- package/dist/src/services/voiceToolsController/index.cjs +0 -173
- package/dist/src/services/voiceToolsController/index.cjs.map +0 -1
- package/dist/src/services/voiceToolsController/index.d.cts +0 -3
- package/dist/src/services/voiceToolsController/index.d.mts +0 -3
- package/dist/src/services/voiceToolsController/index.mjs +0 -173
- package/dist/src/services/voiceToolsController/index.mjs.map +0 -1
- package/dist/src/services/voiceWorkerAutoCaptureController/index.cjs +0 -270
- package/dist/src/services/voiceWorkerAutoCaptureController/index.cjs.map +0 -1
- package/dist/src/services/voiceWorkerAutoCaptureController/index.d.cts +0 -72
- package/dist/src/services/voiceWorkerAutoCaptureController/index.d.cts.map +0 -1
- package/dist/src/services/voiceWorkerAutoCaptureController/index.d.mts +0 -72
- package/dist/src/services/voiceWorkerAutoCaptureController/index.d.mts.map +0 -1
- package/dist/src/services/voiceWorkerAutoCaptureController/index.mjs +0 -267
- package/dist/src/services/voiceWorkerAutoCaptureController/index.mjs.map +0 -1
- package/dist/src/services/voiceWorkerClient/index.cjs +0 -275
- package/dist/src/services/voiceWorkerClient/index.cjs.map +0 -1
- package/dist/src/services/voiceWorkerClient/index.d.cts +0 -28
- package/dist/src/services/voiceWorkerClient/index.d.cts.map +0 -1
- package/dist/src/services/voiceWorkerClient/index.d.mts +0 -28
- package/dist/src/services/voiceWorkerClient/index.d.mts.map +0 -1
- package/dist/src/services/voiceWorkerClient/index.mjs +0 -274
- package/dist/src/services/voiceWorkerClient/index.mjs.map +0 -1
- package/dist/src/services/voiceWorkerMedia/index.cjs +0 -109
- package/dist/src/services/voiceWorkerMedia/index.cjs.map +0 -1
- package/dist/src/services/voiceWorkerMedia/index.mjs +0 -108
- package/dist/src/services/voiceWorkerMedia/index.mjs.map +0 -1
- package/dist/src/services/voiceWorkerPipeline/index.cjs +0 -836
- package/dist/src/services/voiceWorkerPipeline/index.cjs.map +0 -1
- package/dist/src/services/voiceWorkerPipeline/index.mjs +0 -832
- package/dist/src/services/voiceWorkerPipeline/index.mjs.map +0 -1
- package/dist/src/services/voiceWorkerProtocol/index.cjs +0 -628
- package/dist/src/services/voiceWorkerProtocol/index.cjs.map +0 -1
- package/dist/src/services/voiceWorkerProtocol/index.d.cts +0 -149
- package/dist/src/services/voiceWorkerProtocol/index.d.cts.map +0 -1
- package/dist/src/services/voiceWorkerProtocol/index.d.mts +0 -149
- package/dist/src/services/voiceWorkerProtocol/index.d.mts.map +0 -1
- package/dist/src/services/voiceWorkerProtocol/index.mjs +0 -624
- package/dist/src/services/voiceWorkerProtocol/index.mjs.map +0 -1
- package/dist/src/services/voiceWorkerSessionController/index.cjs +0 -229
- package/dist/src/services/voiceWorkerSessionController/index.cjs.map +0 -1
- package/dist/src/services/voiceWorkerSessionController/index.d.cts +0 -21
- package/dist/src/services/voiceWorkerSessionController/index.d.cts.map +0 -1
- package/dist/src/services/voiceWorkerSessionController/index.d.mts +0 -21
- package/dist/src/services/voiceWorkerSessionController/index.d.mts.map +0 -1
- package/dist/src/services/voiceWorkerSessionController/index.mjs +0 -226
- package/dist/src/services/voiceWorkerSessionController/index.mjs.map +0 -1
- package/dist/src/services/voiceWorkerSupervisor/index.cjs +0 -121
- package/dist/src/services/voiceWorkerSupervisor/index.cjs.map +0 -1
- package/dist/src/services/voiceWorkerSupervisor/index.d.cts +0 -12
- package/dist/src/services/voiceWorkerSupervisor/index.d.cts.map +0 -1
- package/dist/src/services/voiceWorkerSupervisor/index.d.mts +0 -12
- package/dist/src/services/voiceWorkerSupervisor/index.d.mts.map +0 -1
- package/dist/src/services/voiceWorkerSupervisor/index.mjs +0 -121
- package/dist/src/services/voiceWorkerSupervisor/index.mjs.map +0 -1
- package/dist/src/services/whisper/index.cjs +0 -225
- package/dist/src/services/whisper/index.cjs.map +0 -1
- package/dist/src/services/whisper/index.d.cts +0 -34
- package/dist/src/services/whisper/index.d.cts.map +0 -1
- package/dist/src/services/whisper/index.d.mts +0 -34
- package/dist/src/services/whisper/index.d.mts.map +0 -1
- package/dist/src/services/whisper/index.mjs +0 -219
- package/dist/src/services/whisper/index.mjs.map +0 -1
- package/dist/src/types/clientCaptureActivity.cjs +0 -115
- package/dist/src/types/clientCaptureActivity.cjs.map +0 -1
- package/dist/src/types/clientCaptureActivity.d.cts +0 -38
- package/dist/src/types/clientCaptureActivity.d.cts.map +0 -1
- package/dist/src/types/clientCaptureActivity.d.mts +0 -38
- package/dist/src/types/clientCaptureActivity.d.mts.map +0 -1
- package/dist/src/types/clientCaptureActivity.mjs +0 -114
- package/dist/src/types/clientCaptureActivity.mjs.map +0 -1
- package/dist/src/types/clientMedia.cjs +0 -66
- package/dist/src/types/clientMedia.cjs.map +0 -1
- package/dist/src/types/clientMedia.d.cts +0 -164
- package/dist/src/types/clientMedia.d.cts.map +0 -1
- package/dist/src/types/clientMedia.d.mts +0 -164
- package/dist/src/types/clientMedia.d.mts.map +0 -1
- package/dist/src/types/clientMedia.mjs.map +0 -1
- package/dist/src/types/index.d.cts +0 -210
- package/dist/src/types/index.d.cts.map +0 -1
- package/dist/src/types/index.d.mts +0 -210
- package/dist/src/types/index.d.mts.map +0 -1
- package/dist/src/types/manualTranscription.cjs +0 -27
- package/dist/src/types/manualTranscription.cjs.map +0 -1
- package/dist/src/types/manualTranscription.mjs +0 -20
- package/dist/src/types/manualTranscription.mjs.map +0 -1
- package/dist/src/types/realtime.cjs +0 -25
- package/dist/src/types/realtime.cjs.map +0 -1
- package/dist/src/types/realtime.d.cts +0 -61
- package/dist/src/types/realtime.d.cts.map +0 -1
- package/dist/src/types/realtime.d.mts +0 -61
- package/dist/src/types/realtime.d.mts.map +0 -1
- package/dist/src/types/realtime.mjs +0 -24
- package/dist/src/types/realtime.mjs.map +0 -1
- package/dist/src/types/voiceOwnership.cjs +0 -153
- package/dist/src/types/voiceOwnership.cjs.map +0 -1
- package/dist/src/types/voiceOwnership.d.cts +0 -55
- package/dist/src/types/voiceOwnership.d.cts.map +0 -1
- package/dist/src/types/voiceOwnership.d.mts +0 -55
- package/dist/src/types/voiceOwnership.d.mts.map +0 -1
- package/dist/src/types/voiceOwnership.mjs +0 -143
- package/dist/src/types/voiceOwnership.mjs.map +0 -1
- package/dist/voiceReloadHandoff.d.cts +0 -1
- package/dist/voiceTools.d.cts +0 -3
- package/dist/voiceWorker.d.cts +0 -25
- package/dist/voiceWorker.d.cts.map +0 -1
- /package/dist/{src/schemas/apiContracts.d.mts → apiContracts.d.mts} +0 -0
|
@@ -1,6 +1,41 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperties(exports, {
|
|
2
|
+
__esModule: { value: true },
|
|
3
|
+
[Symbol.toStringTag]: { value: "Module" }
|
|
4
|
+
});
|
|
5
|
+
let _agimon_ai_doompi_core_apiContracts = require("@agimon-ai/doompi-core/apiContracts");
|
|
2
6
|
let typebox = require("typebox");
|
|
3
|
-
|
|
7
|
+
//#region src/schemas/voiceControl.ts
|
|
8
|
+
const voiceControlMethod = (0, require("@agimon-ai/doompi-core/pluginProtocol").defineDoomPluginMethod)({
|
|
9
|
+
service: "voice",
|
|
10
|
+
method: "control",
|
|
11
|
+
scope: "session",
|
|
12
|
+
direction: "client-to-server",
|
|
13
|
+
input: typebox.Type.Object({
|
|
14
|
+
action: typebox.Type.Union([
|
|
15
|
+
"status",
|
|
16
|
+
"manual",
|
|
17
|
+
"activate",
|
|
18
|
+
"deactivate",
|
|
19
|
+
"mute",
|
|
20
|
+
"unmute",
|
|
21
|
+
"interrupt",
|
|
22
|
+
"transfer"
|
|
23
|
+
].map((value) => typebox.Type.Literal(value))),
|
|
24
|
+
target: typebox.Type.Optional(typebox.Type.Integer({ minimum: 1 })),
|
|
25
|
+
revision: typebox.Type.Optional(typebox.Type.String({
|
|
26
|
+
minLength: 1,
|
|
27
|
+
maxLength: 128
|
|
28
|
+
}))
|
|
29
|
+
}, { additionalProperties: false }),
|
|
30
|
+
output: typebox.Type.Object({
|
|
31
|
+
state: typebox.Type.String(),
|
|
32
|
+
mode: typebox.Type.String(),
|
|
33
|
+
manual: typebox.Type.String(),
|
|
34
|
+
muted: typebox.Type.Boolean(),
|
|
35
|
+
error: typebox.Type.Optional(typebox.Type.String())
|
|
36
|
+
}, { additionalProperties: false })
|
|
37
|
+
});
|
|
38
|
+
//#endregion
|
|
4
39
|
//#region src/schemas/apiContracts.ts
|
|
5
40
|
const S = typebox.Type.String();
|
|
6
41
|
const N = typebox.Type.Number();
|
|
@@ -251,7 +286,7 @@ const pcm = (path, method, query) => {
|
|
|
251
286
|
};
|
|
252
287
|
return result;
|
|
253
288
|
};
|
|
254
|
-
const apiContracts = (0,
|
|
289
|
+
const apiContracts = (0, _agimon_ai_doompi_core_apiContracts.defineApiContract)({
|
|
255
290
|
version: 1,
|
|
256
291
|
protocols: {
|
|
257
292
|
"voice-media": "6",
|
|
@@ -267,8 +302,8 @@ const apiContracts = (0, _agimon_ai_doompi_core_api_contracts.defineApiContract)
|
|
|
267
302
|
method: "GET",
|
|
268
303
|
authentication: "owner",
|
|
269
304
|
description: "Voice session status and media readiness.",
|
|
270
|
-
responses: (0,
|
|
271
|
-
...
|
|
305
|
+
responses: (0, _agimon_ai_doompi_core_apiContracts.jsonApiResponses)(typebox.Type.Object({
|
|
306
|
+
...voiceControlMethod.output.properties,
|
|
272
307
|
media: typebox.Type.Object({
|
|
273
308
|
closed: B,
|
|
274
309
|
capture: B,
|
|
@@ -296,9 +331,9 @@ const apiContracts = (0, _agimon_ai_doompi_core_api_contracts.defineApiContract)
|
|
|
296
331
|
body: {
|
|
297
332
|
required: true,
|
|
298
333
|
contentType: "application/json",
|
|
299
|
-
schema:
|
|
334
|
+
schema: voiceControlMethod.input
|
|
300
335
|
},
|
|
301
|
-
responses: (0,
|
|
336
|
+
responses: (0, _agimon_ai_doompi_core_apiContracts.jsonApiResponses)(voiceControlMethod.output)
|
|
302
337
|
},
|
|
303
338
|
route("/client/connect", "POST", typebox.Type.Object({
|
|
304
339
|
version: typebox.Type.Literal(6),
|
|
@@ -461,7 +496,7 @@ const apiContracts = (0, _agimon_ai_doompi_core_api_contracts.defineApiContract)
|
|
|
461
496
|
contentType: "application/json",
|
|
462
497
|
schema: typebox.Type.Unknown()
|
|
463
498
|
},
|
|
464
|
-
responses: (0,
|
|
499
|
+
responses: (0, _agimon_ai_doompi_core_apiContracts.jsonApiResponses)(typebox.Type.Unknown())
|
|
465
500
|
},
|
|
466
501
|
{
|
|
467
502
|
id: "voice.peerOwnership",
|
|
@@ -476,7 +511,7 @@ const apiContracts = (0, _agimon_ai_doompi_core_api_contracts.defineApiContract)
|
|
|
476
511
|
contentType: "application/json",
|
|
477
512
|
schema: typebox.Type.Unknown()
|
|
478
513
|
},
|
|
479
|
-
responses: (0,
|
|
514
|
+
responses: (0, _agimon_ai_doompi_core_apiContracts.jsonApiResponses)(typebox.Type.Unknown())
|
|
480
515
|
},
|
|
481
516
|
{
|
|
482
517
|
id: "voice.relayBinding",
|
|
@@ -494,7 +529,7 @@ const apiContracts = (0, _agimon_ai_doompi_core_api_contracts.defineApiContract)
|
|
|
494
529
|
connectionId: S
|
|
495
530
|
})
|
|
496
531
|
},
|
|
497
|
-
responses: (0,
|
|
532
|
+
responses: (0, _agimon_ai_doompi_core_apiContracts.jsonApiResponses)(typebox.Type.Object({
|
|
498
533
|
binding: S,
|
|
499
534
|
expiresAt: N
|
|
500
535
|
}))
|
|
@@ -518,7 +553,7 @@ const apiContracts = (0, _agimon_ai_doompi_core_api_contracts.defineApiContract)
|
|
|
518
553
|
contentType: "application/json",
|
|
519
554
|
schema: typebox.Type.Unknown()
|
|
520
555
|
},
|
|
521
|
-
responses: (0,
|
|
556
|
+
responses: (0, _agimon_ai_doompi_core_apiContracts.jsonApiResponses)(typebox.Type.Unknown())
|
|
522
557
|
},
|
|
523
558
|
{
|
|
524
559
|
id: "voice.readiness",
|
|
@@ -528,7 +563,7 @@ const apiContracts = (0, _agimon_ai_doompi_core_api_contracts.defineApiContract)
|
|
|
528
563
|
method: "GET",
|
|
529
564
|
authentication: "owner",
|
|
530
565
|
description: "Read configured voice readiness.",
|
|
531
|
-
responses: (0,
|
|
566
|
+
responses: (0, _agimon_ai_doompi_core_apiContracts.jsonApiResponses)(typebox.Type.Object({
|
|
532
567
|
configured: B,
|
|
533
568
|
transcription: B,
|
|
534
569
|
error: O(S),
|
|
@@ -541,13 +576,13 @@ const apiContracts = (0, _agimon_ai_doompi_core_api_contracts.defineApiContract)
|
|
|
541
576
|
sockets: [{
|
|
542
577
|
id: "voice.control",
|
|
543
578
|
scope: "session",
|
|
544
|
-
service:
|
|
545
|
-
member:
|
|
579
|
+
service: voiceControlMethod.service,
|
|
580
|
+
member: voiceControlMethod.method,
|
|
546
581
|
kind: "method",
|
|
547
582
|
direction: "client-to-server",
|
|
548
583
|
description: "Voice session control through the scoped plugin service.",
|
|
549
|
-
input:
|
|
550
|
-
output:
|
|
584
|
+
input: voiceControlMethod.input,
|
|
585
|
+
output: voiceControlMethod.output
|
|
551
586
|
}, ...["global", "workspace"].flatMap((scope) => [{
|
|
552
587
|
id: "voice.wake",
|
|
553
588
|
scope,
|
|
@@ -573,7 +608,6 @@ const apiContracts = (0, _agimon_ai_doompi_core_api_contracts.defineApiContract)
|
|
|
573
608
|
}])]
|
|
574
609
|
});
|
|
575
610
|
//#endregion
|
|
576
|
-
exports.VoiceMediaEventSchema = VoiceMediaEventSchema;
|
|
577
611
|
exports.apiContracts = apiContracts;
|
|
578
612
|
exports.default = apiContracts;
|
|
579
613
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiContracts.cjs","names":["defineDoomPluginMethod","Type","Type","defineApiContract","jsonApiResponses"],"sources":["../src/schemas/voiceControl.ts","../src/schemas/apiContracts.ts"],"sourcesContent":["import { defineDoomPluginMethod } from '@agimon-ai/doompi-core/pluginProtocol';\nimport { Type } from 'typebox';\n\nexport const voiceControlMethod = defineDoomPluginMethod({\n service: 'voice',\n method: 'control',\n scope: 'session',\n direction: 'client-to-server',\n input: Type.Object(\n {\n action: Type.Union(\n ['status', 'manual', 'activate', 'deactivate', 'mute', 'unmute', 'interrupt', 'transfer'].map((value) =>\n Type.Literal(value),\n ),\n ),\n target: Type.Optional(Type.Integer({ minimum: 1 })),\n revision: Type.Optional(Type.String({ minLength: 1, maxLength: 128 })),\n },\n { additionalProperties: false },\n ),\n output: Type.Object(\n {\n state: Type.String(),\n mode: Type.String(),\n manual: Type.String(),\n muted: Type.Boolean(),\n error: Type.Optional(Type.String()),\n },\n { additionalProperties: false },\n ),\n});\n","import { defineApiContract, jsonApiResponses, type DoomHttpContract } from '@agimon-ai/doompi-core/apiContracts';\nimport { Type } from 'typebox';\n\nimport { voiceControlMethod } from './voiceControl';\n\nconst S = Type.String();\nconst N = Type.Number();\nconst B = Type.Boolean();\nconst O = Type.Optional;\nconst values = <T extends string>(items: T[]) => Type.Union(items.map((item) => Type.Literal(item)));\nconst Client = { clientId: S, connectionId: S };\nconst Configuration = Type.Object({\n mode: values(['manual', 'autonomous']),\n activityControl: values(['host', 'client']),\n endpointSilenceMs: O(Type.Integer({ minimum: 250 })),\n});\nconst Playback = { playbackId: S, outcome: values(['completed', 'stopped', 'aborted', 'failed']), error: O(S) };\nconst Sequence = { sequence: N };\nconst Control = values(['mute', 'unmute', 'interrupt']);\nconst Browser = Type.Object({\n connection: values(['connecting', 'connected', 'closed', 'failed']),\n listening: B,\n speaking: B,\n muted: B,\n error: O(S),\n});\nexport const VoiceMediaEventSchema = Type.Union([\n Type.Object({\n ...Sequence,\n type: Type.Literal('capture-start'),\n captureId: S,\n sampleRate: Type.Literal(16000),\n channels: Type.Literal(1),\n bitsPerSample: Type.Literal(16),\n configuration: Configuration,\n }),\n Type.Object({ ...Sequence, type: values(['capture-stop', 'capture-abort']), captureId: S }),\n Type.Object({\n ...Sequence,\n type: Type.Literal('playback-start'),\n playbackId: S,\n text: S,\n delivery: O(values(['client', 'streamed'])),\n voice: O(S),\n rate: O(N),\n }),\n Type.Object({ ...Sequence, type: values(['playback-stop', 'playback-abort']), playbackId: S }),\n Type.Object({ ...Sequence, type: values(['realtime-start', 'realtime-stop']), activationId: S }),\n Type.Object({ ...Sequence, type: Type.Literal('realtime-control'), activationId: S, action: Control }),\n Type.Object({ ...Sequence, type: Type.Literal('realtime-send'), activationId: S, messages: Type.Array(S) }),\n]);\nconst RealtimeEvent = Type.Union([\n Type.Object({ type: Type.Literal('ready') }),\n Type.Object({ type: Type.Literal('transcript'), role: values(['user', 'assistant']), text: S, complete: B }),\n Type.Object({ type: Type.Literal('request'), requestId: S, text: S }),\n Type.Object({ type: Type.Literal('error'), code: S }),\n]);\nconst RealtimeSnapshot = Type.Object({\n activationId: S,\n state: values(['connecting', 'active', 'closed', 'failed']),\n cursor: N,\n events: Type.Array(Type.Object({ sequence: N, event: RealtimeEvent })),\n browser: O(Browser),\n});\nconst Wake = Type.Object({ eventEpoch: S, sequence: N });\nconst Version = { version: Type.Literal(3) };\nconst Targets = Type.Array(Type.Object({ handle: S, label: S, order: N }), { maxItems: 32 });\nconst OwnershipAction = values(['catalog', 'prepare', 'activate', 'deactivate', 'readiness', 'fence']);\nconst Acknowledgement = Type.Object({\n ...Version,\n commandId: S,\n action: OwnershipAction,\n ok: B,\n active: B,\n error: O(S),\n});\nconst Command = Type.Object({\n ...Version,\n commandId: S,\n action: OwnershipAction,\n targets: O(Targets),\n catalogRevision: O(S),\n handoffId: O(S),\n controllerId: O(S),\n leaseId: O(S),\n revision: O(N),\n});\nconst Snapshot = Type.Object({\n registration: O(Type.Object({ ...Version, leaseId: S, revision: N, label: S, eligible: B, active: B })),\n targets: Targets,\n catalogRevision: O(S),\n activation: O(Type.Object({ ...Version, requestId: S })),\n handoff: O(Type.Object({ ...Version, requestId: S, handle: S, catalogRevision: S })),\n acknowledgement: O(Acknowledgement),\n});\nconst Errors = Object.fromEntries(\n [400, 404, 409, 410, 413, 415, 429, 500, 502, 503, 504].map((status) => [\n status,\n { description: 'Voice request failed.', schema: Type.Object({ error: S, code: O(S) }) },\n ]),\n);\nconst route = (\n path: string,\n method: 'GET' | 'POST',\n output?: object,\n input?: object,\n query: string[] = [],\n status = 200,\n): DoomHttpContract => ({\n id: `voice.${path.slice(1).replaceAll('/', '.')}`,\n scope: 'session',\n basePath: 'voice-media',\n path,\n method,\n authentication: 'owner',\n description: `Voice media ${path}.`,\n ...(path.startsWith('/host/') || path.startsWith('/hub/')\n ? { availability: 'Internal broker route; requires the host-issued bearer token for this route namespace.' }\n : {}),\n parameters: [\n ...query.map((name) => ({ name, in: 'query' as const, required: !['after', 'wait'].includes(name), schema: S })),\n ...(path.startsWith('/host/') || path.startsWith('/hub/')\n ? [\n {\n name: 'Authorization',\n in: 'header' as const,\n required: true,\n schema: Type.String({ pattern: '^Bearer .+' }),\n },\n ]\n : []),\n ],\n ...(input ? { body: { required: true, contentType: 'application/json', schema: input } } : {}),\n responses: {\n ...Errors,\n [output ? status : 204]: {\n description: output ? 'Voice response.' : 'Accepted with no response body.',\n ...(output ? { schema: output } : {}),\n },\n },\n});\nconst pcm = (path: string, method: 'GET' | 'POST', query: string[]): DoomHttpContract => {\n const result = route(path, method, undefined, undefined, query);\n result.description =\n 'PCM signed 16-bit little-endian, 16000 Hz, mono. Chunks contain complete samples. Activity headers carry state, level, elapsed time, epoch and speech duration. A 204 response carries x-doompi-capture-state or x-doompi-playback-state when applicable.';\n if (method === 'POST') result.body = { required: true, contentType: 'application/vnd.doompi.pcm-s16le', schema: S };\n else\n result.responses['200'] = { description: 'PCM bytes.', contentType: 'application/vnd.doompi.pcm-s16le', schema: S };\n return result;\n};\nexport const apiContracts = defineApiContract({\n version: 1,\n protocols: { 'voice-media': '6', 'voice-ownership': '3' },\n dynamic: ['Realtime event strings and SDP are provider-defined protocol documents passed through the media broker.'],\n http: [\n {\n id: 'voice.status',\n scope: 'session',\n basePath: 'voice',\n path: '/status',\n method: 'GET',\n authentication: 'owner',\n description: 'Voice session status and media readiness.',\n responses: jsonApiResponses(\n Type.Object({\n ...voiceControlMethod.output.properties,\n media: Type.Object({ closed: B, capture: B, playback: B, realtime: B }),\n readiness: Type.Object({\n configured: B,\n transcription: B,\n error: O(S),\n engine: O(S),\n mode: O(S),\n correctionModel: O(S),\n }),\n }),\n ),\n },\n {\n id: 'voice.control.http',\n scope: 'session',\n basePath: 'voice',\n path: '/control',\n method: 'POST',\n authentication: 'owner',\n description: 'Control the voice session.',\n body: { required: true, contentType: 'application/json', schema: voiceControlMethod.input },\n responses: jsonApiResponses(voiceControlMethod.output),\n },\n route(\n '/client/connect',\n 'POST',\n Type.Object({ version: Type.Literal(6), cursor: N, eventEpoch: O(S), heartbeatMs: O(N) }),\n Type.Object({\n version: Type.Literal(6),\n ...Client,\n clientKind: values(['browser', 'native']),\n controlLocation: values(['local', 'remote']),\n capabilities: Type.Object({\n capture: B,\n playback: B,\n captureActivity: B,\n autonomousOrchestration: B,\n playbackDucking: O(B),\n realtime: O(B),\n }),\n }),\n ),\n route('/client/disconnect', 'POST', undefined, Type.Object(Client)),\n route('/client/heartbeat', 'POST', Wake, Type.Object(Client)),\n {\n ...route('/client/events', 'GET', VoiceMediaEventSchema, undefined, [\n 'clientId',\n 'connectionId',\n 'after',\n 'wait',\n ]),\n responses: {\n ...Errors,\n '200': { description: 'Next event.', schema: VoiceMediaEventSchema },\n '204': { description: 'No pending event.' },\n },\n },\n pcm('/client/audio', 'POST', ['clientId', 'connectionId', 'captureId']),\n route('/client/capture-stopped', 'POST', undefined, Type.Object({ ...Client, captureId: S, error: O(S) })),\n pcm('/client/playback-audio', 'GET', ['clientId', 'connectionId', 'playbackId']),\n route('/client/playback-result', 'POST', undefined, Type.Object({ ...Client, ...Playback })),\n route(\n '/host/capture/start',\n 'POST',\n Type.Object({ configuration: Configuration }),\n Type.Object({ captureId: S, configuration: O(Configuration) }),\n [],\n 201,\n ),\n pcm('/host/capture/audio', 'GET', ['captureId']),\n ...['stop', 'abort'].map((action) =>\n route(`/host/capture/${action}`, 'POST', undefined, Type.Object({ captureId: S })),\n ),\n route(\n '/host/playback/start',\n 'POST',\n Type.Object({ delivery: values(['client', 'streamed']) }),\n Type.Object({ playbackId: S, text: S, voice: O(S), rate: O(N) }),\n [],\n 201,\n ),\n pcm('/host/playback/audio', 'POST', ['playbackId']),\n route('/host/playback/audio-end', 'POST', undefined, Type.Object({ playbackId: S, error: O(S) })),\n {\n ...route('/host/playback/result', 'GET', Type.Object(Playback), undefined, ['playbackId']),\n responses: {\n ...Errors,\n '200': { description: 'Playback outcome.', schema: Type.Object(Playback) },\n '204': { description: 'Playback is pending.' },\n },\n },\n ...['stop', 'abort'].map((action) =>\n route(`/host/playback/${action}`, 'POST', undefined, Type.Object({ playbackId: S })),\n ),\n route('/hub/ownership/state', 'GET', Snapshot),\n route('/hub/ownership/command', 'POST', Acknowledgement, Command),\n route('/host/ownership/sync', 'POST', Type.Object({ command: O(Command) }), Snapshot),\n route(\n '/host/realtime/start',\n 'POST',\n Type.Object({}),\n Type.Object({ activationId: S, instructions: Type.String({ maxLength: 16384 }) }),\n [],\n 201,\n ),\n route('/host/realtime/stop', 'POST', undefined, Type.Object({ activationId: S })),\n route('/host/realtime/poll', 'GET', RealtimeSnapshot, undefined, ['activationId', 'after']),\n route(\n '/host/realtime/send',\n 'POST',\n undefined,\n Type.Object({ activationId: S, messages: Type.Array(S, { maxItems: 64 }) }),\n ),\n route('/host/realtime/control', 'POST', undefined, Type.Object({ activationId: S, action: Control })),\n route(\n '/client/realtime/negotiate',\n 'POST',\n Type.Object({ sdp: S }),\n Type.Object({ ...Client, activationId: S, sdp: S }),\n ),\n route('/client/realtime/event', 'POST', undefined, Type.Object({ ...Client, activationId: S, event: S })),\n route('/client/realtime/state', 'POST', undefined, Type.Object({ ...Client, activationId: S, state: Browser })),\n {\n id: 'voice.manual',\n scope: 'session',\n basePath: 'voice-media',\n path: '/manual/transcribe',\n method: 'POST',\n authentication: 'owner',\n description: 'Transcribe at most 4 MiB of WebM/Opus or MP4/AAC audio, at most 300000 milliseconds.',\n parameters: [\n {\n name: 'x-doom-audio-duration-ms',\n in: 'header',\n required: true,\n schema: Type.Integer({ minimum: 0, maximum: 300000 }),\n },\n ],\n body: { required: true, contentType: 'audio/webm', contentTypes: ['audio/webm', 'audio/mp4'], schema: S },\n responses: { ...Errors, '200': { description: 'Transcript.', schema: Type.Object({ transcript: S }) } },\n },\n {\n id: 'voice.peer',\n scope: 'global',\n basePath: 'voice',\n path: '/peer',\n method: 'POST',\n authentication: 'none',\n description: 'Accept an HMAC-authenticated bounded Voice media relay request from a configured peer.',\n body: { required: true, contentType: 'application/json', schema: Type.Unknown() },\n responses: jsonApiResponses(Type.Unknown()),\n },\n {\n id: 'voice.peerOwnership',\n scope: 'global',\n basePath: 'voice',\n path: '/peer-ownership',\n method: 'POST',\n authentication: 'none',\n description: 'Discover and stage Voice ownership through an HMAC-authenticated paired host.',\n body: { required: true, contentType: 'application/json', schema: Type.Unknown() },\n responses: jsonApiResponses(Type.Unknown()),\n },\n {\n id: 'voice.relayBinding',\n scope: 'global',\n basePath: 'voice',\n path: '/relay-binding',\n method: 'POST',\n authentication: 'owner',\n description: 'Issue an expiring controller-bound handle for a granted paired Voice session.',\n body: { required: true, contentType: 'application/json', schema: Type.Object({ target: S, connectionId: S }) },\n responses: jsonApiResponses(Type.Object({ binding: S, expiresAt: N })),\n },\n {\n id: 'voice.relay',\n scope: 'global',\n basePath: 'voice',\n path: '/relay',\n method: 'POST',\n authentication: 'owner',\n description: 'Relay a browser Voice media operation through an expiring controller-bound handle.',\n parameters: [{ name: 'binding', in: 'query', required: true, schema: S }],\n body: { required: true, contentType: 'application/json', schema: Type.Unknown() },\n responses: jsonApiResponses(Type.Unknown()),\n },\n {\n id: 'voice.readiness',\n scope: 'global',\n basePath: 'voice',\n path: '/readiness',\n method: 'GET',\n authentication: 'owner',\n description: 'Read configured voice readiness.',\n responses: jsonApiResponses(\n Type.Object({\n configured: B,\n transcription: B,\n error: O(S),\n engine: O(S),\n mode: O(S),\n correctionModel: O(S),\n }),\n ),\n },\n ],\n sockets: [\n {\n id: 'voice.control',\n scope: 'session',\n service: voiceControlMethod.service,\n member: voiceControlMethod.method,\n kind: 'method',\n direction: 'client-to-server',\n description: 'Voice session control through the scoped plugin service.',\n input: voiceControlMethod.input,\n output: voiceControlMethod.output,\n },\n ...(['global', 'workspace'] as const).flatMap((scope) => [\n {\n id: 'voice.wake',\n scope,\n service: 'doompi.hub.v1',\n member: 'voice_media_wake',\n kind: 'channel' as const,\n direction: 'server-to-client' as const,\n description: 'Voice media wake channel payload.',\n input: Wake,\n },\n {\n id: 'voice.ownership',\n scope,\n service: 'doompi.hub.v1',\n member: 'voice_ownership',\n kind: 'channel' as const,\n direction: 'server-to-client' as const,\n description: 'Browser media ownership channel payload.',\n input: Type.Object({\n type: Type.Literal('browser-media-session'),\n ...Version,\n activeSessionId: Type.Union([S, Type.Null()]),\n }),\n },\n ]),\n ],\n});\nexport default apiContracts;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiContracts.d.mts","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"apiContracts.d.mts","names":[],"sources":["../src/schemas/apiContracts.ts"],"mappings":";;qBAsJa"}
|
|
@@ -1,6 +1,38 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { defineApiContract, jsonApiResponses } from "@agimon-ai/doompi-core/apiContracts";
|
|
2
2
|
import { Type } from "typebox";
|
|
3
|
-
import {
|
|
3
|
+
import { defineDoomPluginMethod } from "@agimon-ai/doompi-core/pluginProtocol";
|
|
4
|
+
//#region src/schemas/voiceControl.ts
|
|
5
|
+
const voiceControlMethod = defineDoomPluginMethod({
|
|
6
|
+
service: "voice",
|
|
7
|
+
method: "control",
|
|
8
|
+
scope: "session",
|
|
9
|
+
direction: "client-to-server",
|
|
10
|
+
input: Type.Object({
|
|
11
|
+
action: Type.Union([
|
|
12
|
+
"status",
|
|
13
|
+
"manual",
|
|
14
|
+
"activate",
|
|
15
|
+
"deactivate",
|
|
16
|
+
"mute",
|
|
17
|
+
"unmute",
|
|
18
|
+
"interrupt",
|
|
19
|
+
"transfer"
|
|
20
|
+
].map((value) => Type.Literal(value))),
|
|
21
|
+
target: Type.Optional(Type.Integer({ minimum: 1 })),
|
|
22
|
+
revision: Type.Optional(Type.String({
|
|
23
|
+
minLength: 1,
|
|
24
|
+
maxLength: 128
|
|
25
|
+
}))
|
|
26
|
+
}, { additionalProperties: false }),
|
|
27
|
+
output: Type.Object({
|
|
28
|
+
state: Type.String(),
|
|
29
|
+
mode: Type.String(),
|
|
30
|
+
manual: Type.String(),
|
|
31
|
+
muted: Type.Boolean(),
|
|
32
|
+
error: Type.Optional(Type.String())
|
|
33
|
+
}, { additionalProperties: false })
|
|
34
|
+
});
|
|
35
|
+
//#endregion
|
|
4
36
|
//#region src/schemas/apiContracts.ts
|
|
5
37
|
const S = Type.String();
|
|
6
38
|
const N = Type.Number();
|
|
@@ -573,6 +605,6 @@ const apiContracts = defineApiContract({
|
|
|
573
605
|
}])]
|
|
574
606
|
});
|
|
575
607
|
//#endregion
|
|
576
|
-
export {
|
|
608
|
+
export { apiContracts, apiContracts as default };
|
|
577
609
|
|
|
578
610
|
//# sourceMappingURL=apiContracts.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiContracts.mjs","names":[],"sources":["../src/schemas/voiceControl.ts","../src/schemas/apiContracts.ts"],"sourcesContent":["import { defineDoomPluginMethod } from '@agimon-ai/doompi-core/pluginProtocol';\nimport { Type } from 'typebox';\n\nexport const voiceControlMethod = defineDoomPluginMethod({\n service: 'voice',\n method: 'control',\n scope: 'session',\n direction: 'client-to-server',\n input: Type.Object(\n {\n action: Type.Union(\n ['status', 'manual', 'activate', 'deactivate', 'mute', 'unmute', 'interrupt', 'transfer'].map((value) =>\n Type.Literal(value),\n ),\n ),\n target: Type.Optional(Type.Integer({ minimum: 1 })),\n revision: Type.Optional(Type.String({ minLength: 1, maxLength: 128 })),\n },\n { additionalProperties: false },\n ),\n output: Type.Object(\n {\n state: Type.String(),\n mode: Type.String(),\n manual: Type.String(),\n muted: Type.Boolean(),\n error: Type.Optional(Type.String()),\n },\n { additionalProperties: false },\n ),\n});\n","import { defineApiContract, jsonApiResponses, type DoomHttpContract } from '@agimon-ai/doompi-core/apiContracts';\nimport { Type } from 'typebox';\n\nimport { voiceControlMethod } from './voiceControl';\n\nconst S = Type.String();\nconst N = Type.Number();\nconst B = Type.Boolean();\nconst O = Type.Optional;\nconst values = <T extends string>(items: T[]) => Type.Union(items.map((item) => Type.Literal(item)));\nconst Client = { clientId: S, connectionId: S };\nconst Configuration = Type.Object({\n mode: values(['manual', 'autonomous']),\n activityControl: values(['host', 'client']),\n endpointSilenceMs: O(Type.Integer({ minimum: 250 })),\n});\nconst Playback = { playbackId: S, outcome: values(['completed', 'stopped', 'aborted', 'failed']), error: O(S) };\nconst Sequence = { sequence: N };\nconst Control = values(['mute', 'unmute', 'interrupt']);\nconst Browser = Type.Object({\n connection: values(['connecting', 'connected', 'closed', 'failed']),\n listening: B,\n speaking: B,\n muted: B,\n error: O(S),\n});\nexport const VoiceMediaEventSchema = Type.Union([\n Type.Object({\n ...Sequence,\n type: Type.Literal('capture-start'),\n captureId: S,\n sampleRate: Type.Literal(16000),\n channels: Type.Literal(1),\n bitsPerSample: Type.Literal(16),\n configuration: Configuration,\n }),\n Type.Object({ ...Sequence, type: values(['capture-stop', 'capture-abort']), captureId: S }),\n Type.Object({\n ...Sequence,\n type: Type.Literal('playback-start'),\n playbackId: S,\n text: S,\n delivery: O(values(['client', 'streamed'])),\n voice: O(S),\n rate: O(N),\n }),\n Type.Object({ ...Sequence, type: values(['playback-stop', 'playback-abort']), playbackId: S }),\n Type.Object({ ...Sequence, type: values(['realtime-start', 'realtime-stop']), activationId: S }),\n Type.Object({ ...Sequence, type: Type.Literal('realtime-control'), activationId: S, action: Control }),\n Type.Object({ ...Sequence, type: Type.Literal('realtime-send'), activationId: S, messages: Type.Array(S) }),\n]);\nconst RealtimeEvent = Type.Union([\n Type.Object({ type: Type.Literal('ready') }),\n Type.Object({ type: Type.Literal('transcript'), role: values(['user', 'assistant']), text: S, complete: B }),\n Type.Object({ type: Type.Literal('request'), requestId: S, text: S }),\n Type.Object({ type: Type.Literal('error'), code: S }),\n]);\nconst RealtimeSnapshot = Type.Object({\n activationId: S,\n state: values(['connecting', 'active', 'closed', 'failed']),\n cursor: N,\n events: Type.Array(Type.Object({ sequence: N, event: RealtimeEvent })),\n browser: O(Browser),\n});\nconst Wake = Type.Object({ eventEpoch: S, sequence: N });\nconst Version = { version: Type.Literal(3) };\nconst Targets = Type.Array(Type.Object({ handle: S, label: S, order: N }), { maxItems: 32 });\nconst OwnershipAction = values(['catalog', 'prepare', 'activate', 'deactivate', 'readiness', 'fence']);\nconst Acknowledgement = Type.Object({\n ...Version,\n commandId: S,\n action: OwnershipAction,\n ok: B,\n active: B,\n error: O(S),\n});\nconst Command = Type.Object({\n ...Version,\n commandId: S,\n action: OwnershipAction,\n targets: O(Targets),\n catalogRevision: O(S),\n handoffId: O(S),\n controllerId: O(S),\n leaseId: O(S),\n revision: O(N),\n});\nconst Snapshot = Type.Object({\n registration: O(Type.Object({ ...Version, leaseId: S, revision: N, label: S, eligible: B, active: B })),\n targets: Targets,\n catalogRevision: O(S),\n activation: O(Type.Object({ ...Version, requestId: S })),\n handoff: O(Type.Object({ ...Version, requestId: S, handle: S, catalogRevision: S })),\n acknowledgement: O(Acknowledgement),\n});\nconst Errors = Object.fromEntries(\n [400, 404, 409, 410, 413, 415, 429, 500, 502, 503, 504].map((status) => [\n status,\n { description: 'Voice request failed.', schema: Type.Object({ error: S, code: O(S) }) },\n ]),\n);\nconst route = (\n path: string,\n method: 'GET' | 'POST',\n output?: object,\n input?: object,\n query: string[] = [],\n status = 200,\n): DoomHttpContract => ({\n id: `voice.${path.slice(1).replaceAll('/', '.')}`,\n scope: 'session',\n basePath: 'voice-media',\n path,\n method,\n authentication: 'owner',\n description: `Voice media ${path}.`,\n ...(path.startsWith('/host/') || path.startsWith('/hub/')\n ? { availability: 'Internal broker route; requires the host-issued bearer token for this route namespace.' }\n : {}),\n parameters: [\n ...query.map((name) => ({ name, in: 'query' as const, required: !['after', 'wait'].includes(name), schema: S })),\n ...(path.startsWith('/host/') || path.startsWith('/hub/')\n ? [\n {\n name: 'Authorization',\n in: 'header' as const,\n required: true,\n schema: Type.String({ pattern: '^Bearer .+' }),\n },\n ]\n : []),\n ],\n ...(input ? { body: { required: true, contentType: 'application/json', schema: input } } : {}),\n responses: {\n ...Errors,\n [output ? status : 204]: {\n description: output ? 'Voice response.' : 'Accepted with no response body.',\n ...(output ? { schema: output } : {}),\n },\n },\n});\nconst pcm = (path: string, method: 'GET' | 'POST', query: string[]): DoomHttpContract => {\n const result = route(path, method, undefined, undefined, query);\n result.description =\n 'PCM signed 16-bit little-endian, 16000 Hz, mono. Chunks contain complete samples. Activity headers carry state, level, elapsed time, epoch and speech duration. A 204 response carries x-doompi-capture-state or x-doompi-playback-state when applicable.';\n if (method === 'POST') result.body = { required: true, contentType: 'application/vnd.doompi.pcm-s16le', schema: S };\n else\n result.responses['200'] = { description: 'PCM bytes.', contentType: 'application/vnd.doompi.pcm-s16le', schema: S };\n return result;\n};\nexport const apiContracts = defineApiContract({\n version: 1,\n protocols: { 'voice-media': '6', 'voice-ownership': '3' },\n dynamic: ['Realtime event strings and SDP are provider-defined protocol documents passed through the media broker.'],\n http: [\n {\n id: 'voice.status',\n scope: 'session',\n basePath: 'voice',\n path: '/status',\n method: 'GET',\n authentication: 'owner',\n description: 'Voice session status and media readiness.',\n responses: jsonApiResponses(\n Type.Object({\n ...voiceControlMethod.output.properties,\n media: Type.Object({ closed: B, capture: B, playback: B, realtime: B }),\n readiness: Type.Object({\n configured: B,\n transcription: B,\n error: O(S),\n engine: O(S),\n mode: O(S),\n correctionModel: O(S),\n }),\n }),\n ),\n },\n {\n id: 'voice.control.http',\n scope: 'session',\n basePath: 'voice',\n path: '/control',\n method: 'POST',\n authentication: 'owner',\n description: 'Control the voice session.',\n body: { required: true, contentType: 'application/json', schema: voiceControlMethod.input },\n responses: jsonApiResponses(voiceControlMethod.output),\n },\n route(\n '/client/connect',\n 'POST',\n Type.Object({ version: Type.Literal(6), cursor: N, eventEpoch: O(S), heartbeatMs: O(N) }),\n Type.Object({\n version: Type.Literal(6),\n ...Client,\n clientKind: values(['browser', 'native']),\n controlLocation: values(['local', 'remote']),\n capabilities: Type.Object({\n capture: B,\n playback: B,\n captureActivity: B,\n autonomousOrchestration: B,\n playbackDucking: O(B),\n realtime: O(B),\n }),\n }),\n ),\n route('/client/disconnect', 'POST', undefined, Type.Object(Client)),\n route('/client/heartbeat', 'POST', Wake, Type.Object(Client)),\n {\n ...route('/client/events', 'GET', VoiceMediaEventSchema, undefined, [\n 'clientId',\n 'connectionId',\n 'after',\n 'wait',\n ]),\n responses: {\n ...Errors,\n '200': { description: 'Next event.', schema: VoiceMediaEventSchema },\n '204': { description: 'No pending event.' },\n },\n },\n pcm('/client/audio', 'POST', ['clientId', 'connectionId', 'captureId']),\n route('/client/capture-stopped', 'POST', undefined, Type.Object({ ...Client, captureId: S, error: O(S) })),\n pcm('/client/playback-audio', 'GET', ['clientId', 'connectionId', 'playbackId']),\n route('/client/playback-result', 'POST', undefined, Type.Object({ ...Client, ...Playback })),\n route(\n '/host/capture/start',\n 'POST',\n Type.Object({ configuration: Configuration }),\n Type.Object({ captureId: S, configuration: O(Configuration) }),\n [],\n 201,\n ),\n pcm('/host/capture/audio', 'GET', ['captureId']),\n ...['stop', 'abort'].map((action) =>\n route(`/host/capture/${action}`, 'POST', undefined, Type.Object({ captureId: S })),\n ),\n route(\n '/host/playback/start',\n 'POST',\n Type.Object({ delivery: values(['client', 'streamed']) }),\n Type.Object({ playbackId: S, text: S, voice: O(S), rate: O(N) }),\n [],\n 201,\n ),\n pcm('/host/playback/audio', 'POST', ['playbackId']),\n route('/host/playback/audio-end', 'POST', undefined, Type.Object({ playbackId: S, error: O(S) })),\n {\n ...route('/host/playback/result', 'GET', Type.Object(Playback), undefined, ['playbackId']),\n responses: {\n ...Errors,\n '200': { description: 'Playback outcome.', schema: Type.Object(Playback) },\n '204': { description: 'Playback is pending.' },\n },\n },\n ...['stop', 'abort'].map((action) =>\n route(`/host/playback/${action}`, 'POST', undefined, Type.Object({ playbackId: S })),\n ),\n route('/hub/ownership/state', 'GET', Snapshot),\n route('/hub/ownership/command', 'POST', Acknowledgement, Command),\n route('/host/ownership/sync', 'POST', Type.Object({ command: O(Command) }), Snapshot),\n route(\n '/host/realtime/start',\n 'POST',\n Type.Object({}),\n Type.Object({ activationId: S, instructions: Type.String({ maxLength: 16384 }) }),\n [],\n 201,\n ),\n route('/host/realtime/stop', 'POST', undefined, Type.Object({ activationId: S })),\n route('/host/realtime/poll', 'GET', RealtimeSnapshot, undefined, ['activationId', 'after']),\n route(\n '/host/realtime/send',\n 'POST',\n undefined,\n Type.Object({ activationId: S, messages: Type.Array(S, { maxItems: 64 }) }),\n ),\n route('/host/realtime/control', 'POST', undefined, Type.Object({ activationId: S, action: Control })),\n route(\n '/client/realtime/negotiate',\n 'POST',\n Type.Object({ sdp: S }),\n Type.Object({ ...Client, activationId: S, sdp: S }),\n ),\n route('/client/realtime/event', 'POST', undefined, Type.Object({ ...Client, activationId: S, event: S })),\n route('/client/realtime/state', 'POST', undefined, Type.Object({ ...Client, activationId: S, state: Browser })),\n {\n id: 'voice.manual',\n scope: 'session',\n basePath: 'voice-media',\n path: '/manual/transcribe',\n method: 'POST',\n authentication: 'owner',\n description: 'Transcribe at most 4 MiB of WebM/Opus or MP4/AAC audio, at most 300000 milliseconds.',\n parameters: [\n {\n name: 'x-doom-audio-duration-ms',\n in: 'header',\n required: true,\n schema: Type.Integer({ minimum: 0, maximum: 300000 }),\n },\n ],\n body: { required: true, contentType: 'audio/webm', contentTypes: ['audio/webm', 'audio/mp4'], schema: S },\n responses: { ...Errors, '200': { description: 'Transcript.', schema: Type.Object({ transcript: S }) } },\n },\n {\n id: 'voice.peer',\n scope: 'global',\n basePath: 'voice',\n path: '/peer',\n method: 'POST',\n authentication: 'none',\n description: 'Accept an HMAC-authenticated bounded Voice media relay request from a configured peer.',\n body: { required: true, contentType: 'application/json', schema: Type.Unknown() },\n responses: jsonApiResponses(Type.Unknown()),\n },\n {\n id: 'voice.peerOwnership',\n scope: 'global',\n basePath: 'voice',\n path: '/peer-ownership',\n method: 'POST',\n authentication: 'none',\n description: 'Discover and stage Voice ownership through an HMAC-authenticated paired host.',\n body: { required: true, contentType: 'application/json', schema: Type.Unknown() },\n responses: jsonApiResponses(Type.Unknown()),\n },\n {\n id: 'voice.relayBinding',\n scope: 'global',\n basePath: 'voice',\n path: '/relay-binding',\n method: 'POST',\n authentication: 'owner',\n description: 'Issue an expiring controller-bound handle for a granted paired Voice session.',\n body: { required: true, contentType: 'application/json', schema: Type.Object({ target: S, connectionId: S }) },\n responses: jsonApiResponses(Type.Object({ binding: S, expiresAt: N })),\n },\n {\n id: 'voice.relay',\n scope: 'global',\n basePath: 'voice',\n path: '/relay',\n method: 'POST',\n authentication: 'owner',\n description: 'Relay a browser Voice media operation through an expiring controller-bound handle.',\n parameters: [{ name: 'binding', in: 'query', required: true, schema: S }],\n body: { required: true, contentType: 'application/json', schema: Type.Unknown() },\n responses: jsonApiResponses(Type.Unknown()),\n },\n {\n id: 'voice.readiness',\n scope: 'global',\n basePath: 'voice',\n path: '/readiness',\n method: 'GET',\n authentication: 'owner',\n description: 'Read configured voice readiness.',\n responses: jsonApiResponses(\n Type.Object({\n configured: B,\n transcription: B,\n error: O(S),\n engine: O(S),\n mode: O(S),\n correctionModel: O(S),\n }),\n ),\n },\n ],\n sockets: [\n {\n id: 'voice.control',\n scope: 'session',\n service: voiceControlMethod.service,\n member: voiceControlMethod.method,\n kind: 'method',\n direction: 'client-to-server',\n description: 'Voice session control through the scoped plugin service.',\n input: voiceControlMethod.input,\n output: voiceControlMethod.output,\n },\n ...(['global', 'workspace'] as const).flatMap((scope) => [\n {\n id: 'voice.wake',\n scope,\n service: 'doompi.hub.v1',\n member: 'voice_media_wake',\n kind: 'channel' as const,\n direction: 'server-to-client' as const,\n description: 'Voice media wake channel payload.',\n input: Wake,\n },\n {\n id: 'voice.ownership',\n scope,\n service: 'doompi.hub.v1',\n member: 'voice_ownership',\n kind: 'channel' as const,\n direction: 'server-to-client' as const,\n description: 'Browser media ownership channel payload.',\n input: Type.Object({\n type: Type.Literal('browser-media-session'),\n ...Version,\n activeSessionId: Type.Union([S, Type.Null()]),\n }),\n },\n ]),\n ],\n});\nexport default apiContracts;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
//#region src/types/clientCaptureActivity.d.ts
|
|
2
|
+
interface SpeechPresenceWindow {
|
|
3
|
+
readonly speech: boolean;
|
|
4
|
+
readonly sampleCount: number;
|
|
5
|
+
}
|
|
6
|
+
/** Platform boundary for browser workers and native speech-presence implementations. */
|
|
7
|
+
interface SpeechPresenceDetector {
|
|
8
|
+
push(pcm: Uint8Array): Promise<readonly SpeechPresenceWindow[]>;
|
|
9
|
+
reset(): Promise<void>;
|
|
10
|
+
close(): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
/** Calculates the RMS level of complete little-endian PCM16 samples without environment-specific APIs. */
|
|
13
|
+
declare function calculateClientPcmDbfs(pcm: Uint8Array): number;
|
|
14
|
+
interface ClientCaptureSpeechClassification {
|
|
15
|
+
readonly echoReferenceActive: boolean;
|
|
16
|
+
readonly echoDiscriminated: boolean;
|
|
17
|
+
}
|
|
18
|
+
/** Portable lifecycle. Classifier windows are authoritative; RMS is level telemetry only. */
|
|
19
|
+
declare class ClientCaptureActivityLifecycle {
|
|
20
|
+
private readonly endpointSilenceMs;
|
|
21
|
+
private elapsedBytes;
|
|
22
|
+
private activityEpoch;
|
|
23
|
+
private consecutiveSpeechSamples;
|
|
24
|
+
private consecutiveEchoSpeechSamples;
|
|
25
|
+
private classifiedSpeechSamples;
|
|
26
|
+
private echoDiscriminatedSpeechSamples;
|
|
27
|
+
private trailingSilenceSamples;
|
|
28
|
+
private speechStarted;
|
|
29
|
+
private endpointReached;
|
|
30
|
+
private previousEchoDiscriminated;
|
|
31
|
+
constructor(endpointSilenceMs?: number);
|
|
32
|
+
push(pcm: Uint8Array, windows?: readonly SpeechPresenceWindow[], classification?: ClientCaptureSpeechClassification): VoiceMediaCaptureActivity;
|
|
33
|
+
/** Starts a fresh classifier phase while preserving monotonic capture time. */
|
|
34
|
+
resetActivity(): void;
|
|
35
|
+
}
|
|
36
|
+
//#endregion
|
|
37
|
+
//#region src/types/realtime.d.ts
|
|
38
|
+
type RealtimeEvent = {
|
|
39
|
+
type: 'ready';
|
|
40
|
+
} | {
|
|
41
|
+
type: 'transcript';
|
|
42
|
+
role: 'user' | 'assistant';
|
|
43
|
+
text: string;
|
|
44
|
+
complete: boolean;
|
|
45
|
+
} | {
|
|
46
|
+
type: 'request';
|
|
47
|
+
requestId: string;
|
|
48
|
+
text: string;
|
|
49
|
+
} | {
|
|
50
|
+
type: 'error';
|
|
51
|
+
code: string;
|
|
52
|
+
};
|
|
53
|
+
interface RealtimeBrowserState {
|
|
54
|
+
connection: 'connecting' | 'connected' | 'closed' | 'failed';
|
|
55
|
+
listening: boolean;
|
|
56
|
+
speaking: boolean;
|
|
57
|
+
muted: boolean;
|
|
58
|
+
error?: string;
|
|
59
|
+
}
|
|
60
|
+
type RealtimeControl = 'mute' | 'unmute' | 'interrupt';
|
|
61
|
+
type RealtimeMediaCommand = {
|
|
62
|
+
sequence: number;
|
|
63
|
+
type: 'realtime-start';
|
|
64
|
+
activationId: string;
|
|
65
|
+
} | {
|
|
66
|
+
sequence: number;
|
|
67
|
+
type: 'realtime-stop';
|
|
68
|
+
activationId: string;
|
|
69
|
+
} | {
|
|
70
|
+
sequence: number;
|
|
71
|
+
type: 'realtime-control';
|
|
72
|
+
activationId: string;
|
|
73
|
+
action: RealtimeControl;
|
|
74
|
+
} | {
|
|
75
|
+
sequence: number;
|
|
76
|
+
type: 'realtime-send';
|
|
77
|
+
activationId: string;
|
|
78
|
+
messages: string[];
|
|
79
|
+
};
|
|
80
|
+
interface RealtimeHostSnapshot {
|
|
81
|
+
activationId: string;
|
|
82
|
+
state: 'connecting' | 'active' | 'closed' | 'failed';
|
|
83
|
+
cursor: number;
|
|
84
|
+
events: {
|
|
85
|
+
sequence: number;
|
|
86
|
+
event: RealtimeEvent;
|
|
87
|
+
}[];
|
|
88
|
+
browser?: RealtimeBrowserState;
|
|
89
|
+
}
|
|
90
|
+
/** All methods use the existing authenticated media transport and current connection lease. */
|
|
91
|
+
interface RealtimeMediaTransport {
|
|
92
|
+
realtimeNegotiate(clientId: string, connectionId: string, activationId: string, sdp: string, signal: AbortSignal): Promise<string>;
|
|
93
|
+
realtimeEvent(clientId: string, connectionId: string, activationId: string, event: string): Promise<void>;
|
|
94
|
+
realtimeState(clientId: string, connectionId: string, activationId: string, state: RealtimeBrowserState): Promise<void>;
|
|
95
|
+
}
|
|
96
|
+
//#endregion
|
|
97
|
+
//#region src/types/clientMedia.d.ts
|
|
98
|
+
declare const VOICE_MEDIA_API_BASE_PATH = "voice-media";
|
|
99
|
+
declare const VOICE_MEDIA_PROTOCOL_VERSION = 6;
|
|
100
|
+
declare const VOICE_MEDIA_SAMPLE_RATE = 16000;
|
|
101
|
+
declare const VOICE_MEDIA_CHANNELS = 1;
|
|
102
|
+
declare const VOICE_MEDIA_BITS_PER_SAMPLE = 16;
|
|
103
|
+
declare const VOICE_MEDIA_CONTENT_TYPE = "application/vnd.doompi.pcm-s16le";
|
|
104
|
+
declare const VOICE_MEDIA_ACTIVITY_STATE_HEADER = "x-doompi-voice-activity-state";
|
|
105
|
+
declare const VOICE_MEDIA_PLAYBACK_STATE_HEADER = "x-doompi-playback-state";
|
|
106
|
+
declare const VOICE_MEDIA_ACTIVITY_LEVEL_HEADER = "x-doompi-voice-activity-level";
|
|
107
|
+
declare const VOICE_MEDIA_ACTIVITY_ELAPSED_HEADER = "x-doompi-voice-activity-elapsed";
|
|
108
|
+
declare const VOICE_MEDIA_ACTIVITY_EPOCH_HEADER = "x-doompi-voice-activity-epoch";
|
|
109
|
+
declare const VOICE_MEDIA_ACTIVITY_SPEECH_MS_HEADER = "x-doompi-voice-activity-speech-ms";
|
|
110
|
+
declare const VOICE_MEDIA_ACTIVITY_ECHO_SPEECH_MS_HEADER = "x-doompi-voice-activity-echo-speech-ms";
|
|
111
|
+
declare const VOICE_MEDIA_WAKE_TYPE = "voice_media_wake";
|
|
112
|
+
declare const VOICE_MEDIA_HEARTBEAT_MS = 5000;
|
|
113
|
+
declare const VOICE_MEDIA_EVENT_WAIT_NONE = "0";
|
|
114
|
+
declare const VOICE_MEDIA_ROUTES: {
|
|
115
|
+
readonly clientConnect: '/client/connect';
|
|
116
|
+
readonly clientDisconnect: '/client/disconnect';
|
|
117
|
+
readonly clientEvents: '/client/events';
|
|
118
|
+
readonly clientHeartbeat: '/client/heartbeat';
|
|
119
|
+
readonly clientAudio: '/client/audio';
|
|
120
|
+
readonly clientCaptureStopped: '/client/capture-stopped';
|
|
121
|
+
readonly clientPlaybackAudio: '/client/playback-audio';
|
|
122
|
+
readonly clientPlaybackResult: '/client/playback-result';
|
|
123
|
+
readonly hostCaptureStart: '/host/capture/start';
|
|
124
|
+
readonly hostCaptureAudio: '/host/capture/audio';
|
|
125
|
+
readonly hostCaptureStop: '/host/capture/stop';
|
|
126
|
+
readonly hostCaptureAbort: '/host/capture/abort';
|
|
127
|
+
readonly hostPlaybackStart: '/host/playback/start';
|
|
128
|
+
readonly hostPlaybackAudio: '/host/playback/audio';
|
|
129
|
+
readonly hostPlaybackAudioEnd: '/host/playback/audio-end';
|
|
130
|
+
readonly hostPlaybackResult: '/host/playback/result';
|
|
131
|
+
readonly hostPlaybackStop: '/host/playback/stop';
|
|
132
|
+
readonly hostPlaybackAbort: '/host/playback/abort';
|
|
133
|
+
};
|
|
134
|
+
type VoiceClientKind = 'browser' | 'native';
|
|
135
|
+
type VoiceMediaControlLocation = 'local' | 'remote';
|
|
136
|
+
interface VoiceMediaCapabilities {
|
|
137
|
+
capture: boolean;
|
|
138
|
+
playback: boolean;
|
|
139
|
+
captureActivity: boolean;
|
|
140
|
+
autonomousOrchestration: boolean;
|
|
141
|
+
playbackDucking?: boolean;
|
|
142
|
+
realtime?: boolean;
|
|
143
|
+
}
|
|
144
|
+
type VoiceMediaCaptureMode = 'manual' | 'autonomous';
|
|
145
|
+
type VoiceMediaPlaybackDelivery = 'client' | 'streamed';
|
|
146
|
+
type VoiceMediaCaptureActivityState = 'listening' | 'speech' | 'endpoint';
|
|
147
|
+
interface VoiceMediaCaptureActivity {
|
|
148
|
+
state: VoiceMediaCaptureActivityState;
|
|
149
|
+
levelDbfs: number;
|
|
150
|
+
elapsedMs: number;
|
|
151
|
+
epoch?: number;
|
|
152
|
+
classifiedSpeechMs?: number;
|
|
153
|
+
echoDiscriminatedSpeechMs?: number;
|
|
154
|
+
}
|
|
155
|
+
interface VoiceMediaCaptureConfiguration {
|
|
156
|
+
mode: VoiceMediaCaptureMode;
|
|
157
|
+
activityControl: 'host' | 'client';
|
|
158
|
+
endpointSilenceMs?: number;
|
|
159
|
+
}
|
|
160
|
+
interface VoiceMediaConnectRequest {
|
|
161
|
+
version: typeof VOICE_MEDIA_PROTOCOL_VERSION;
|
|
162
|
+
clientId: string;
|
|
163
|
+
connectionId: string;
|
|
164
|
+
clientKind: VoiceClientKind;
|
|
165
|
+
controlLocation: VoiceMediaControlLocation;
|
|
166
|
+
capabilities: VoiceMediaCapabilities;
|
|
167
|
+
}
|
|
168
|
+
interface VoiceMediaWake {
|
|
169
|
+
eventEpoch: string;
|
|
170
|
+
sequence: number;
|
|
171
|
+
}
|
|
172
|
+
interface VoiceMediaConnectResult {
|
|
173
|
+
version: typeof VOICE_MEDIA_PROTOCOL_VERSION;
|
|
174
|
+
cursor: number;
|
|
175
|
+
eventEpoch?: string;
|
|
176
|
+
heartbeatMs?: number;
|
|
177
|
+
}
|
|
178
|
+
type VoiceMediaHeartbeatResult = VoiceMediaWake;
|
|
179
|
+
type VoiceMediaClientEvent = RealtimeMediaCommand | {
|
|
180
|
+
sequence: number;
|
|
181
|
+
type: 'capture-start';
|
|
182
|
+
captureId: string;
|
|
183
|
+
sampleRate: typeof VOICE_MEDIA_SAMPLE_RATE;
|
|
184
|
+
channels: typeof VOICE_MEDIA_CHANNELS;
|
|
185
|
+
bitsPerSample: typeof VOICE_MEDIA_BITS_PER_SAMPLE;
|
|
186
|
+
configuration: VoiceMediaCaptureConfiguration;
|
|
187
|
+
} | {
|
|
188
|
+
sequence: number;
|
|
189
|
+
type: 'capture-stop';
|
|
190
|
+
captureId: string;
|
|
191
|
+
} | {
|
|
192
|
+
sequence: number;
|
|
193
|
+
type: 'capture-abort';
|
|
194
|
+
captureId: string;
|
|
195
|
+
} | {
|
|
196
|
+
sequence: number;
|
|
197
|
+
type: 'playback-start';
|
|
198
|
+
playbackId: string;
|
|
199
|
+
text: string;
|
|
200
|
+
delivery?: VoiceMediaPlaybackDelivery;
|
|
201
|
+
voice?: string;
|
|
202
|
+
rate?: number;
|
|
203
|
+
} | {
|
|
204
|
+
sequence: number;
|
|
205
|
+
type: 'playback-stop';
|
|
206
|
+
playbackId: string;
|
|
207
|
+
} | {
|
|
208
|
+
sequence: number;
|
|
209
|
+
type: 'playback-abort';
|
|
210
|
+
playbackId: string;
|
|
211
|
+
};
|
|
212
|
+
type VoiceMediaPlaybackOutcome = 'completed' | 'stopped' | 'aborted' | 'failed';
|
|
213
|
+
interface VoiceMediaPlaybackResult {
|
|
214
|
+
playbackId: string;
|
|
215
|
+
outcome: VoiceMediaPlaybackOutcome;
|
|
216
|
+
error?: string;
|
|
217
|
+
}
|
|
218
|
+
interface VoiceMediaTransport extends Partial<RealtimeMediaTransport> {
|
|
219
|
+
connect(clientId: string, connectionId: string, capabilities: VoiceMediaCapabilities): Promise<VoiceMediaConnectResult>;
|
|
220
|
+
/** Refreshes optional capabilities without changing active work or event position. */
|
|
221
|
+
refreshCapabilities?(clientId: string, connectionId: string, capabilities: VoiceMediaCapabilities): Promise<void>;
|
|
222
|
+
disconnect(clientId: string, connectionId: string): Promise<void>;
|
|
223
|
+
nextEvent(clientId: string, connectionId: string, after: number, signal: AbortSignal): Promise<VoiceMediaClientEvent | undefined>;
|
|
224
|
+
sendAudio(clientId: string, connectionId: string, captureId: string, pcm: Uint8Array, activity?: VoiceMediaCaptureActivity): Promise<void>;
|
|
225
|
+
captureStopped(clientId: string, connectionId: string, captureId: string, error?: string): Promise<void>;
|
|
226
|
+
receivePlaybackAudio?(clientId: string, connectionId: string, playbackId: string, signal: AbortSignal): Promise<Uint8Array>;
|
|
227
|
+
playbackFinished(clientId: string, connectionId: string, result: VoiceMediaPlaybackResult): Promise<void>;
|
|
228
|
+
}
|
|
229
|
+
interface VoiceMediaCapture {
|
|
230
|
+
completion?: Promise<void>;
|
|
231
|
+
stop(): Promise<void>;
|
|
232
|
+
}
|
|
233
|
+
/** Optional browser-local speech input. The original capture PCM remains authoritative for transport. */
|
|
234
|
+
interface VoiceMediaCaptureSpeechAnalysis {
|
|
235
|
+
speechPcm: Uint8Array;
|
|
236
|
+
echoReferenceActive: boolean;
|
|
237
|
+
echoDiscriminated: boolean;
|
|
238
|
+
}
|
|
239
|
+
interface VoiceMediaPlayback {
|
|
240
|
+
readonly completion: Promise<VoiceMediaPlaybackResult>;
|
|
241
|
+
stop(outcome: Extract<VoiceMediaPlaybackOutcome, 'stopped' | 'aborted'>): void;
|
|
242
|
+
duck?(targetGain: number, fadeMs: number, holdMs: number): void;
|
|
243
|
+
}
|
|
244
|
+
/** Client hardware boundary. Browser and future native clients implement the same contract. */
|
|
245
|
+
interface VoiceMediaDevice {
|
|
246
|
+
readonly capabilities: VoiceMediaCapabilities;
|
|
247
|
+
/** Initializes optional authoritative media processors after baseline capabilities are available. */
|
|
248
|
+
prepare?(): Promise<void>;
|
|
249
|
+
createSpeechPresenceDetector?(): SpeechPresenceDetector | undefined;
|
|
250
|
+
startCapture(onPcm: (pcm: Uint8Array, speechAnalysis?: VoiceMediaCaptureSpeechAnalysis) => void): Promise<VoiceMediaCapture>;
|
|
251
|
+
speak(request: Extract<VoiceMediaClientEvent, {
|
|
252
|
+
type: 'playback-start';
|
|
253
|
+
}>, audio?: Promise<Uint8Array>): VoiceMediaPlayback;
|
|
254
|
+
close(): Promise<void>;
|
|
255
|
+
}
|
|
256
|
+
declare function voiceMediaClientUrl(sessionId: string, route: string, params?: Record<string, string>): string;
|
|
257
|
+
//#endregion
|
|
258
|
+
export { VoiceMediaDevice as A, RealtimeHostSnapshot as B, VoiceMediaCaptureConfiguration as C, VoiceMediaConnectRequest as D, VoiceMediaClientEvent as E, VoiceMediaPlaybackResult as F, calculateClientPcmDbfs as G, ClientCaptureSpeechClassification as H, VoiceMediaTransport as I, VoiceMediaWake as L, VoiceMediaPlayback as M, VoiceMediaPlaybackDelivery as N, VoiceMediaConnectResult as O, VoiceMediaPlaybackOutcome as P, voiceMediaClientUrl as R, VoiceMediaCaptureActivityState as S, VoiceMediaCaptureSpeechAnalysis as T, SpeechPresenceDetector as U, ClientCaptureActivityLifecycle as V, SpeechPresenceWindow as W, VOICE_MEDIA_WAKE_TYPE as _, VOICE_MEDIA_ACTIVITY_SPEECH_MS_HEADER as a, VoiceMediaCapture as b, VOICE_MEDIA_BITS_PER_SAMPLE as c, VOICE_MEDIA_EVENT_WAIT_NONE as d, VOICE_MEDIA_HEARTBEAT_MS as f, VOICE_MEDIA_SAMPLE_RATE as g, VOICE_MEDIA_ROUTES as h, VOICE_MEDIA_ACTIVITY_LEVEL_HEADER as i, VoiceMediaHeartbeatResult as j, VoiceMediaControlLocation as k, VOICE_MEDIA_CHANNELS as l, VOICE_MEDIA_PROTOCOL_VERSION as m, VOICE_MEDIA_ACTIVITY_ELAPSED_HEADER as n, VOICE_MEDIA_ACTIVITY_STATE_HEADER as o, VOICE_MEDIA_PLAYBACK_STATE_HEADER as p, VOICE_MEDIA_ACTIVITY_EPOCH_HEADER as r, VOICE_MEDIA_API_BASE_PATH as s, VOICE_MEDIA_ACTIVITY_ECHO_SPEECH_MS_HEADER as t, VOICE_MEDIA_CONTENT_TYPE as u, VoiceClientKind as v, VoiceMediaCaptureMode as w, VoiceMediaCaptureActivity as x, VoiceMediaCapabilities as y, RealtimeControl as z };
|
|
259
|
+
//# sourceMappingURL=clientMedia-Btnad-hF.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clientMedia-Btnad-hF.d.mts","names":[],"sources":["../src/types/clientCaptureActivity.ts","../src/types/realtime.ts","../src/types/clientMedia.ts"],"mappings":";UAciB;WACN;WACA;;;UAIM;EACf,KAAK,KAAK,aAAa,iBAAiB;EACxC,SAAS;EACT,SAAS;;;iBAYK,uBAAuB,KAAK;UAa3B;WACN;WACA;;;cAIE;mBAYyB;UAX5B;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;EAER,YAAoC;EAK7B,KACL,KAAK,YACL,mBAAkB,wBAClB,iBAAiB,oCAChB;;EAoEI;;;;KCtHG;EACN;;EACA;EAAoB;EAA4B;EAAc;;EAC9D;EAAiB;EAAmB;;EACpC;EAAe;;UAUJ;EACf;EACA;EACA;EACA;EACA;;KA8BU;KAEA;EACN;EAAkB;EAAwB;;EAC1C;EAAkB;EAAuB;;EACzC;EAAkB;EAA0B;EAAsB,QAAQ;;EAC1E;EAAkB;EAAuB;EAAsB;;UAEpD;EACf;EACA;EACA;EACA;IAAU;IAAkB,OAAO;;EACnC,UAAU;;;UAIK;EACf,kBACE,kBACA,sBACA,sBACA,aACA,QAAQ,cACP;EACH,cAAc,kBAAkB,sBAAsB,sBAAsB,gBAAgB;EAC5F,cACE,kBACA,sBACA,sBACA,OAAO,uBACN;;;;cCpGQ;cACA;cACA;cACA;cACA;cACA;cACA;cACA;cACA;cACA;cACA;cACA;cACA;cACA;cACA;cACA;cAEA;WACX;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;KAGU;KACA;UAEK;EACf;EACA;EACA;EACA;EACA;EACA;;KAGU;KACA;KACA;UAEK;EACf,OAAO;EACP;EACA;EACA;EACA;EACA;;UAGe;EACf,MAAM;EACN;EACA;;UAGe;EACf,gBAAgB;EAChB;EACA;EACA,YAAY;EACZ,iBAAiB;EACjB,cAAc;;UAGC;EACf;EACA;;UAGe;EACf,gBAAgB;EAChB;EACA;EACA;;KAGU,4BAA4B;KAE5B,wBACR;EAEE;EACA;EACA;EACA,mBAAmB;EACnB,iBAAiB;EACjB,sBAAsB;EACtB,eAAe;;EAEf;EAAkB;EAAsB;;EACxC;EAAkB;EAAuB;;EAEzC;EACA;EACA;EACA;EACA,WAAW;EACX;EACA;;EAEA;EAAkB;EAAuB;;EACzC;EAAkB;EAAwB;;KAEpC;UAEK;EACf;EACA,SAAS;EACT;;UAGe,4BAA4B,QAAQ;EACnD,QACE,kBACA,sBACA,cAAc,yBACb,QAAQ;;EAEX,qBAAqB,kBAAkB,sBAAsB,cAAc,yBAAyB;EACpG,WAAW,kBAAkB,uBAAuB;EACpD,UACE,kBACA,sBACA,eACA,QAAQ,cACP,QAAQ;EACX,UACE,kBACA,sBACA,mBACA,KAAK,YACL,WAAW,4BACV;EACH,eAAe,kBAAkB,sBAAsB,mBAAmB,iBAAiB;EAC3F,sBACE,kBACA,sBACA,oBACA,QAAQ,cACP,QAAQ;EACX,iBAAiB,kBAAkB,sBAAsB,QAAQ,2BAA2B;;UAG7E;EACf,aAAa;EACb,QAAQ;;;UAIO;EACf,WAAW;EACX;EACA;;UAGe;WACN,YAAY,QAAQ;EAC7B,KAAK,SAAS,QAAQ;EACtB,MAAM,oBAAoB,gBAAgB;;;UAI3B;WACN,cAAc;;EAEvB,YAAY;EACZ,iCAAiC;EACjC,aACE,QAAQ,KAAK,YAAY,iBAAiB,2CACzC,QAAQ;EACX,MACE,SAAS,QAAQ;IAAyB;MAC1C,QAAQ,QAAQ,cACf;EACH,SAAS;;iBAGK,oBAAoB,mBAAmB,eAAe,SAAQ"}
|