voice-mode 2.23.0__py3-none-any.whl → 2.25.0__py3-none-any.whl
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.
- voice_mode/__version__.py +1 -1
- voice_mode/cli.py +49 -25
- voice_mode/config.py +15 -5
- voice_mode/frontend/.next/BUILD_ID +1 -1
- voice_mode/frontend/.next/app-build-manifest.json +5 -5
- voice_mode/frontend/.next/build-manifest.json +3 -3
- voice_mode/frontend/.next/next-minimal-server.js.nft.json +1 -1
- voice_mode/frontend/.next/next-server.js.nft.json +1 -1
- voice_mode/frontend/.next/prerender-manifest.json +1 -1
- voice_mode/frontend/.next/required-server-files.json +1 -1
- voice_mode/frontend/.next/server/app/_not-found/page.js +1 -1
- voice_mode/frontend/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- voice_mode/frontend/.next/server/app/_not-found.html +1 -1
- voice_mode/frontend/.next/server/app/_not-found.rsc +1 -1
- voice_mode/frontend/.next/server/app/api/connection-details/route.js +2 -2
- voice_mode/frontend/.next/server/app/favicon.ico/route.js +2 -2
- voice_mode/frontend/.next/server/app/index.html +1 -1
- voice_mode/frontend/.next/server/app/index.rsc +2 -2
- voice_mode/frontend/.next/server/app/page.js +2 -2
- voice_mode/frontend/.next/server/app/page_client-reference-manifest.js +1 -1
- voice_mode/frontend/.next/server/chunks/994.js +1 -1
- voice_mode/frontend/.next/server/middleware-build-manifest.js +1 -1
- voice_mode/frontend/.next/server/next-font-manifest.js +1 -1
- voice_mode/frontend/.next/server/next-font-manifest.json +1 -1
- voice_mode/frontend/.next/server/pages/404.html +1 -1
- voice_mode/frontend/.next/server/pages/500.html +1 -1
- voice_mode/frontend/.next/server/server-reference-manifest.json +1 -1
- voice_mode/frontend/.next/standalone/.next/BUILD_ID +1 -1
- voice_mode/frontend/.next/standalone/.next/app-build-manifest.json +5 -5
- voice_mode/frontend/.next/standalone/.next/build-manifest.json +3 -3
- voice_mode/frontend/.next/standalone/.next/prerender-manifest.json +1 -1
- voice_mode/frontend/.next/standalone/.next/required-server-files.json +1 -1
- voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page.js +1 -1
- voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- voice_mode/frontend/.next/standalone/.next/server/app/_not-found.html +1 -1
- voice_mode/frontend/.next/standalone/.next/server/app/_not-found.rsc +1 -1
- voice_mode/frontend/.next/standalone/.next/server/app/api/connection-details/route.js +2 -2
- voice_mode/frontend/.next/standalone/.next/server/app/favicon.ico/route.js +2 -2
- voice_mode/frontend/.next/standalone/.next/server/app/index.html +1 -1
- voice_mode/frontend/.next/standalone/.next/server/app/index.rsc +2 -2
- voice_mode/frontend/.next/standalone/.next/server/app/page.js +2 -2
- voice_mode/frontend/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- voice_mode/frontend/.next/standalone/.next/server/chunks/994.js +1 -1
- voice_mode/frontend/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
- voice_mode/frontend/.next/standalone/.next/server/next-font-manifest.js +1 -1
- voice_mode/frontend/.next/standalone/.next/server/next-font-manifest.json +1 -1
- voice_mode/frontend/.next/standalone/.next/server/pages/404.html +1 -1
- voice_mode/frontend/.next/standalone/.next/server/pages/500.html +1 -1
- voice_mode/frontend/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- voice_mode/frontend/.next/standalone/server.js +1 -1
- voice_mode/frontend/.next/static/chunks/app/{layout-b625329e9ada0473.js → layout-5675f418c42e0ae3.js} +1 -1
- voice_mode/frontend/.next/static/chunks/app/{page-983279b94d1fda4b.js → page-dbb3615cf25cdc16.js} +1 -1
- voice_mode/frontend/.next/static/chunks/{main-app-55293f39223cd65f.js → main-app-d25858d98b1d322b.js} +1 -1
- voice_mode/frontend/.next/trace +43 -43
- voice_mode/frontend/.next/types/app/api/connection-details/route.ts +1 -1
- voice_mode/frontend/.next/types/app/layout.ts +1 -1
- voice_mode/frontend/.next/types/app/page.ts +1 -1
- voice_mode/tools/converse.py +97 -40
- {voice_mode-2.23.0.dist-info → voice_mode-2.25.0.dist-info}/METADATA +1 -1
- {voice_mode-2.23.0.dist-info → voice_mode-2.25.0.dist-info}/RECORD +64 -64
- /voice_mode/frontend/.next/static/{Wzk1z2qG5teKcU-SpnqS6 → SsR9zBdw0hd2LN3Vo9tP_}/_buildManifest.js +0 -0
- /voice_mode/frontend/.next/static/{Wzk1z2qG5teKcU-SpnqS6 → SsR9zBdw0hd2LN3Vo9tP_}/_ssgManifest.js +0 -0
- {voice_mode-2.23.0.dist-info → voice_mode-2.25.0.dist-info}/WHEEL +0 -0
- {voice_mode-2.23.0.dist-info → voice_mode-2.25.0.dist-info}/entry_points.txt +0 -0
@@ -1,4 +1,4 @@
|
|
1
|
-
// File: /tmp/build-via-sdist-
|
1
|
+
// File: /tmp/build-via-sdist-4ayms1lr/voice_mode-2.25.0/voice_mode/frontend/app/api/connection-details/route.ts
|
2
2
|
import * as entry from '../../../../../app/api/connection-details/route.js'
|
3
3
|
import type { NextRequest } from 'next/server.js'
|
4
4
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
// File: /tmp/build-via-sdist-
|
1
|
+
// File: /tmp/build-via-sdist-4ayms1lr/voice_mode-2.25.0/voice_mode/frontend/app/layout.tsx
|
2
2
|
import * as entry from '../../../app/layout.js'
|
3
3
|
import type { ResolvingMetadata, ResolvingViewport } from 'next/dist/lib/metadata/types/metadata-interface.js'
|
4
4
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
// File: /tmp/build-via-sdist-
|
1
|
+
// File: /tmp/build-via-sdist-4ayms1lr/voice_mode-2.25.0/voice_mode/frontend/app/page.tsx
|
2
2
|
import * as entry from '../../../app/page.js'
|
3
3
|
import type { ResolvingMetadata, ResolvingViewport } from 'next/dist/lib/metadata/types/metadata-interface.js'
|
4
4
|
|
voice_mode/tools/converse.py
CHANGED
@@ -32,6 +32,7 @@ from voice_mode.config import (
|
|
32
32
|
CHANNELS,
|
33
33
|
DEBUG,
|
34
34
|
DEBUG_DIR,
|
35
|
+
VAD_DEBUG,
|
35
36
|
SAVE_AUDIO,
|
36
37
|
AUDIO_DIR,
|
37
38
|
OPENAI_API_KEY,
|
@@ -872,7 +873,7 @@ def record_audio(duration: float) -> np.ndarray:
|
|
872
873
|
sys.stderr = original_stderr
|
873
874
|
|
874
875
|
|
875
|
-
def record_audio_with_silence_detection(max_duration: float, disable_silence_detection: bool = False, min_duration: float = 0.0, vad_aggressiveness: Optional[int] = None) -> np.ndarray:
|
876
|
+
def record_audio_with_silence_detection(max_duration: float, disable_silence_detection: bool = False, min_duration: float = 0.0, vad_aggressiveness: Optional[int] = None) -> Tuple[np.ndarray, bool]:
|
876
877
|
"""Record audio from microphone with automatic silence detection.
|
877
878
|
|
878
879
|
Uses WebRTC VAD to detect when the user stops speaking and automatically
|
@@ -885,21 +886,25 @@ def record_audio_with_silence_detection(max_duration: float, disable_silence_det
|
|
885
886
|
vad_aggressiveness: VAD aggressiveness level (0-3). If None, uses VAD_AGGRESSIVENESS from config
|
886
887
|
|
887
888
|
Returns:
|
888
|
-
|
889
|
+
Tuple of (audio_data, speech_detected):
|
890
|
+
- audio_data: Numpy array of recorded audio samples
|
891
|
+
- speech_detected: Boolean indicating if speech was detected during recording
|
889
892
|
"""
|
890
893
|
|
891
894
|
logger.info(f"record_audio_with_silence_detection called - VAD_AVAILABLE={VAD_AVAILABLE}, DISABLE_SILENCE_DETECTION={DISABLE_SILENCE_DETECTION}, min_duration={min_duration}")
|
892
895
|
|
893
896
|
if not VAD_AVAILABLE:
|
894
897
|
logger.warning("webrtcvad not available, falling back to fixed duration recording")
|
895
|
-
|
898
|
+
# For fallback, assume speech is present since we can't detect
|
899
|
+
return (record_audio(max_duration), True)
|
896
900
|
|
897
901
|
if DISABLE_SILENCE_DETECTION or disable_silence_detection:
|
898
902
|
if disable_silence_detection:
|
899
903
|
logger.info("Silence detection disabled for this interaction by request")
|
900
904
|
else:
|
901
905
|
logger.info("Silence detection disabled globally via VOICEMODE_DISABLE_SILENCE_DETECTION")
|
902
|
-
|
906
|
+
# For fallback, assume speech is present since we can't detect
|
907
|
+
return (record_audio(max_duration), True)
|
903
908
|
|
904
909
|
logger.info(f"🎤 Recording with silence detection (max {max_duration}s)...")
|
905
910
|
|
@@ -940,6 +945,16 @@ def record_audio_with_silence_detection(max_duration: float, disable_silence_det
|
|
940
945
|
f"Min duration: {MIN_RECORDING_DURATION}s, "
|
941
946
|
f"Initial grace period: {INITIAL_SILENCE_GRACE_PERIOD}s")
|
942
947
|
|
948
|
+
if VAD_DEBUG:
|
949
|
+
logger.info(f"[VAD_DEBUG] Starting VAD recording with config:")
|
950
|
+
logger.info(f"[VAD_DEBUG] max_duration: {max_duration}s")
|
951
|
+
logger.info(f"[VAD_DEBUG] min_duration: {min_duration}s")
|
952
|
+
logger.info(f"[VAD_DEBUG] effective_min_duration: {max(MIN_RECORDING_DURATION, min_duration)}s")
|
953
|
+
logger.info(f"[VAD_DEBUG] VAD aggressiveness: {effective_vad_aggressiveness}")
|
954
|
+
logger.info(f"[VAD_DEBUG] Silence threshold: {SILENCE_THRESHOLD_MS}ms")
|
955
|
+
logger.info(f"[VAD_DEBUG] Sample rate: {SAMPLE_RATE}Hz (VAD using {vad_sample_rate}Hz)")
|
956
|
+
logger.info(f"[VAD_DEBUG] Chunk duration: {VAD_CHUNK_DURATION_MS}ms")
|
957
|
+
|
943
958
|
def audio_callback(indata, frames, time, status):
|
944
959
|
"""Callback for continuous audio stream"""
|
945
960
|
if status:
|
@@ -979,35 +994,53 @@ def record_audio_with_silence_detection(max_duration: float, disable_silence_det
|
|
979
994
|
# Check if chunk contains speech
|
980
995
|
try:
|
981
996
|
is_speech = vad.is_speech(chunk_bytes, vad_sample_rate)
|
997
|
+
if VAD_DEBUG:
|
998
|
+
# Log VAD decision every 500ms for less spam
|
999
|
+
if int(recording_duration * 1000) % 500 == 0:
|
1000
|
+
rms = np.sqrt(np.mean(chunk.astype(float)**2))
|
1001
|
+
logger.info(f"[VAD_DEBUG] t={recording_duration:.1f}s: speech={is_speech}, RMS={rms:.0f}, state={'WAITING' if not speech_detected else 'ACTIVE'}")
|
982
1002
|
except Exception as vad_e:
|
983
1003
|
logger.warning(f"VAD error: {vad_e}, treating as speech")
|
984
1004
|
is_speech = True
|
985
1005
|
|
986
|
-
|
987
|
-
|
988
|
-
|
989
|
-
|
990
|
-
|
1006
|
+
# State machine for speech detection
|
1007
|
+
if not speech_detected:
|
1008
|
+
# WAITING_FOR_SPEECH state
|
1009
|
+
if is_speech:
|
1010
|
+
logger.info("🎤 Speech detected, starting active recording")
|
1011
|
+
if VAD_DEBUG:
|
1012
|
+
logger.info(f"[VAD_DEBUG] STATE CHANGE: WAITING_FOR_SPEECH -> SPEECH_ACTIVE at t={recording_duration:.1f}s")
|
1013
|
+
speech_detected = True
|
1014
|
+
silence_duration_ms = 0
|
1015
|
+
# No timeout in this state - just keep waiting
|
1016
|
+
# The only exit is speech detection or max_duration
|
991
1017
|
else:
|
992
|
-
|
993
|
-
if
|
994
|
-
|
1018
|
+
# We have detected speech at some point
|
1019
|
+
if is_speech:
|
1020
|
+
# SPEECH_ACTIVE state - reset silence counter
|
1021
|
+
silence_duration_ms = 0
|
1022
|
+
else:
|
1023
|
+
# SILENCE_AFTER_SPEECH state - accumulate silence
|
1024
|
+
silence_duration_ms += VAD_CHUNK_DURATION_MS
|
1025
|
+
if VAD_DEBUG and silence_duration_ms % 100 == 0: # More frequent logging in debug mode
|
1026
|
+
logger.info(f"[VAD_DEBUG] Accumulating silence: {silence_duration_ms}/{SILENCE_THRESHOLD_MS}ms, t={recording_duration:.1f}s")
|
1027
|
+
elif silence_duration_ms % 200 == 0: # Log every 200ms
|
1028
|
+
logger.debug(f"Silence: {silence_duration_ms}ms")
|
1029
|
+
|
1030
|
+
# Check if we should stop due to silence threshold
|
1031
|
+
# Use the larger of MIN_RECORDING_DURATION (global) or min_duration (parameter)
|
1032
|
+
effective_min_duration = max(MIN_RECORDING_DURATION, min_duration)
|
1033
|
+
if recording_duration >= effective_min_duration and silence_duration_ms >= SILENCE_THRESHOLD_MS:
|
1034
|
+
logger.info(f"✓ Silence threshold reached after {recording_duration:.1f}s of recording")
|
1035
|
+
if VAD_DEBUG:
|
1036
|
+
logger.info(f"[VAD_DEBUG] STOP: silence_duration={silence_duration_ms}ms >= threshold={SILENCE_THRESHOLD_MS}ms")
|
1037
|
+
logger.info(f"[VAD_DEBUG] STOP: recording_duration={recording_duration:.1f}s >= min_duration={effective_min_duration}s")
|
1038
|
+
stop_recording = True
|
1039
|
+
elif VAD_DEBUG and recording_duration < effective_min_duration:
|
1040
|
+
if int(recording_duration * 1000) % 500 == 0: # Log every 500ms
|
1041
|
+
logger.info(f"[VAD_DEBUG] Min duration not met: {recording_duration:.1f}s < {effective_min_duration}s")
|
995
1042
|
|
996
1043
|
recording_duration += chunk_duration_s
|
997
|
-
|
998
|
-
# Check stop conditions
|
999
|
-
# Use the larger of MIN_RECORDING_DURATION (global) or min_duration (parameter)
|
1000
|
-
effective_min_duration = max(MIN_RECORDING_DURATION, min_duration)
|
1001
|
-
if speech_detected and recording_duration >= effective_min_duration:
|
1002
|
-
if silence_duration_ms >= SILENCE_THRESHOLD_MS:
|
1003
|
-
logger.info(f"✓ Silence detected after {recording_duration:.1f}s (min: {effective_min_duration:.1f}s), stopping recording")
|
1004
|
-
stop_recording = True
|
1005
|
-
|
1006
|
-
# Also stop if we haven't detected any speech after a grace period
|
1007
|
-
# Give user time to start speaking
|
1008
|
-
if not speech_detected and recording_duration >= INITIAL_SILENCE_GRACE_PERIOD:
|
1009
|
-
logger.info(f"No speech detected after {INITIAL_SILENCE_GRACE_PERIOD}s grace period, stopping recording")
|
1010
|
-
stop_recording = True
|
1011
1044
|
|
1012
1045
|
except queue.Empty:
|
1013
1046
|
# No audio data available, continue waiting
|
@@ -1019,17 +1052,26 @@ def record_audio_with_silence_detection(max_duration: float, disable_silence_det
|
|
1019
1052
|
# Concatenate all chunks
|
1020
1053
|
if chunks:
|
1021
1054
|
full_recording = np.concatenate(chunks)
|
1022
|
-
|
1055
|
+
|
1056
|
+
if not speech_detected:
|
1057
|
+
logger.info(f"✓ Recording completed ({recording_duration:.1f}s) - No speech detected")
|
1058
|
+
if VAD_DEBUG:
|
1059
|
+
logger.info(f"[VAD_DEBUG] FINAL STATE: No speech was ever detected during recording")
|
1060
|
+
else:
|
1061
|
+
logger.info(f"✓ Recorded {len(full_recording)} samples ({recording_duration:.1f}s) with speech")
|
1062
|
+
if VAD_DEBUG:
|
1063
|
+
logger.info(f"[VAD_DEBUG] FINAL STATE: Speech was detected, recording complete")
|
1023
1064
|
|
1024
1065
|
if DEBUG:
|
1025
1066
|
# Calculate RMS for debug
|
1026
1067
|
rms = np.sqrt(np.mean(full_recording.astype(float) ** 2))
|
1027
1068
|
logger.debug(f"Recording stats - RMS: {rms:.2f}, Speech detected: {speech_detected}")
|
1028
1069
|
|
1029
|
-
|
1070
|
+
# Return tuple: (audio_data, speech_detected)
|
1071
|
+
return (full_recording, speech_detected)
|
1030
1072
|
else:
|
1031
1073
|
logger.warning("No audio chunks recorded")
|
1032
|
-
return np.array([])
|
1074
|
+
return (np.array([]), False)
|
1033
1075
|
|
1034
1076
|
except Exception as e:
|
1035
1077
|
logger.error(f"Recording with VAD failed: {e}")
|
@@ -1042,7 +1084,8 @@ def record_audio_with_silence_detection(max_duration: float, disable_silence_det
|
|
1042
1084
|
logger.error(f"\n{help_message}")
|
1043
1085
|
|
1044
1086
|
logger.info("Falling back to fixed duration recording")
|
1045
|
-
|
1087
|
+
# For fallback, assume speech is present since we can't detect
|
1088
|
+
return (record_audio(max_duration), True)
|
1046
1089
|
|
1047
1090
|
finally:
|
1048
1091
|
# Restore stdio
|
@@ -1056,7 +1099,8 @@ def record_audio_with_silence_detection(max_duration: float, disable_silence_det
|
|
1056
1099
|
except Exception as e:
|
1057
1100
|
logger.error(f"VAD initialization failed: {e}")
|
1058
1101
|
logger.info("Falling back to fixed duration recording")
|
1059
|
-
|
1102
|
+
# For fallback, assume speech is present since we can't detect
|
1103
|
+
return (record_audio(max_duration), True)
|
1060
1104
|
|
1061
1105
|
|
1062
1106
|
async def check_livekit_available() -> bool:
|
@@ -1713,7 +1757,7 @@ async def converse(
|
|
1713
1757
|
|
1714
1758
|
record_start = time.perf_counter()
|
1715
1759
|
logger.debug(f"About to call record_audio_with_silence_detection with duration={listen_duration}, disable_silence_detection={disable_silence_detection}, min_duration={min_listen_duration}, vad_aggressiveness={vad_aggressiveness}")
|
1716
|
-
audio_data = await asyncio.get_event_loop().run_in_executor(
|
1760
|
+
audio_data, speech_detected = await asyncio.get_event_loop().run_in_executor(
|
1717
1761
|
None, record_audio_with_silence_detection, listen_duration, disable_silence_detection, min_listen_duration, vad_aggressiveness
|
1718
1762
|
)
|
1719
1763
|
timings['record'] = time.perf_counter() - record_start
|
@@ -1736,14 +1780,27 @@ async def converse(
|
|
1736
1780
|
result = "Error: Could not record audio"
|
1737
1781
|
return result
|
1738
1782
|
|
1739
|
-
#
|
1740
|
-
|
1741
|
-
|
1742
|
-
|
1743
|
-
|
1744
|
-
|
1745
|
-
|
1746
|
-
|
1783
|
+
# Check if no speech was detected
|
1784
|
+
if not speech_detected:
|
1785
|
+
logger.info("No speech detected during recording - skipping STT processing")
|
1786
|
+
response_text = None
|
1787
|
+
timings['stt'] = 0.0
|
1788
|
+
|
1789
|
+
# Still save the audio if configured
|
1790
|
+
if SAVE_AUDIO and AUDIO_DIR:
|
1791
|
+
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
1792
|
+
audio_path = os.path.join(AUDIO_DIR, f"no_speech_{timestamp}.wav")
|
1793
|
+
write(audio_path, SAMPLE_RATE, audio_data)
|
1794
|
+
logger.debug(f"Saved no-speech audio to: {audio_path}")
|
1795
|
+
else:
|
1796
|
+
# Convert to text
|
1797
|
+
# Log STT start
|
1798
|
+
if event_logger:
|
1799
|
+
event_logger.log_event(event_logger.STT_START)
|
1800
|
+
|
1801
|
+
stt_start = time.perf_counter()
|
1802
|
+
response_text = await speech_to_text(audio_data, SAVE_AUDIO, AUDIO_DIR if SAVE_AUDIO else None, transport)
|
1803
|
+
timings['stt'] = time.perf_counter() - stt_start
|
1747
1804
|
|
1748
1805
|
# Log STT complete
|
1749
1806
|
if event_logger:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: voice-mode
|
3
|
-
Version: 2.
|
3
|
+
Version: 2.25.0
|
4
4
|
Summary: VoiceMode - Voice interaction capabilities for AI assistants (formerly voice-mcp)
|
5
5
|
Project-URL: Homepage, https://github.com/mbailey/voicemode
|
6
6
|
Project-URL: Repository, https://github.com/mbailey/voicemode
|
@@ -1,8 +1,8 @@
|
|
1
1
|
voice_mode/__init__.py,sha256=PDCwE2rrm8yyYxEiQQJkznQ_4xYp3DWIxGSB84K_mnI,346
|
2
2
|
voice_mode/__main__.py,sha256=td-njie1XgkR-NrQjOEUse4TSJBC8DAmYywHum3V6WQ,138
|
3
|
-
voice_mode/__version__.py,sha256=
|
4
|
-
voice_mode/cli.py,sha256=
|
5
|
-
voice_mode/config.py,sha256=
|
3
|
+
voice_mode/__version__.py,sha256=2oqO4DZihdoBPS01DfTxmzzFAZYB3xVYDm4WZ9rT470,101
|
4
|
+
voice_mode/cli.py,sha256=4cx7okaePG0GsorJFgYoHcliesOF7VX0ztx_uJBdRI4,36825
|
5
|
+
voice_mode/config.py,sha256=z6pHKCM6ioRtMyL5Xz7yndOKzsd3jLJFNjrFCttlDMM,27056
|
6
6
|
voice_mode/conversation_logger.py,sha256=Nar92xabhaVmMKdZdLmgoYckK9fGAVVYWdass3-EI1I,9363
|
7
7
|
voice_mode/core.py,sha256=Nx9pxVWcI2BFRqU7MLmfuJlcvvRJ7_Wy14Wq3VZOmm8,25217
|
8
8
|
voice_mode/provider_discovery.py,sha256=roELfldoo7s-_1XxJF-vb9BOxMmVRpYlwAX3EnTSlcQ,15729
|
@@ -33,58 +33,58 @@ voice_mode/frontend/pnpm-lock.yaml,sha256=DSl1H3fb4tNVrHjsc5HbflJJIr95erkADNeUoF
|
|
33
33
|
voice_mode/frontend/postcss.config.mjs,sha256=76ZcZeF9UdWFcO3OnXArBgT99qm422Wvrtjwda-IZ8c,157
|
34
34
|
voice_mode/frontend/tailwind.config.ts,sha256=w0mWCjy3kwryNcqgub24YLbmd2V9EvOmWSYHmsFdpkY,264
|
35
35
|
voice_mode/frontend/tsconfig.json,sha256=VCAvHW01ulHD2uoyv2fo2iRWjsDLDDQfoLXtLOsXTy0,574
|
36
|
-
voice_mode/frontend/.next/BUILD_ID,sha256=
|
37
|
-
voice_mode/frontend/.next/app-build-manifest.json,sha256=
|
36
|
+
voice_mode/frontend/.next/BUILD_ID,sha256=p64duedCfOGqAPr6OGbw9WN_WNm_q5IqQIlA0ilhVyE,21
|
37
|
+
voice_mode/frontend/.next/app-build-manifest.json,sha256=w6sf82qUZegvPa3Gx3TwH1Q_ZxnhRsb6MfXC4Ssue-M,1010
|
38
38
|
voice_mode/frontend/.next/app-path-routes-manifest.json,sha256=-WXlpEHFoCBUDPfxzUJleLsfZiEUU-rU0hRMZ8AVIJI,140
|
39
|
-
voice_mode/frontend/.next/build-manifest.json,sha256=
|
39
|
+
voice_mode/frontend/.next/build-manifest.json,sha256=joBmEnaBOhKX6aGXKruTqZoQsELadthA7yUAHR37oJs,968
|
40
40
|
voice_mode/frontend/.next/export-marker.json,sha256=ALjrM5QMj5hmGX14xIc2wIFDfLaFKlK3n1wQpwjMagI,94
|
41
41
|
voice_mode/frontend/.next/images-manifest.json,sha256=Z1eB8ppSn86wfAon69Z5DSKbg7IoIvyGB8uCu88xGjs,511
|
42
|
-
voice_mode/frontend/.next/next-minimal-server.js.nft.json,sha256=
|
43
|
-
voice_mode/frontend/.next/next-server.js.nft.json,sha256=
|
42
|
+
voice_mode/frontend/.next/next-minimal-server.js.nft.json,sha256=DUatMYnXzvJOLib2M-Ny52LDvCc5_FuVD8t0q-CURpk,7314
|
43
|
+
voice_mode/frontend/.next/next-server.js.nft.json,sha256=7yJxDkFoTmTVjglhjjgOLHnulPZ1Ll_20YrnXNsDj1U,109011
|
44
44
|
voice_mode/frontend/.next/package.json,sha256=CRoE-mfHkHuY4Qb8_4uWThMSl1T85y0k8wJbl8SIf6M,20
|
45
|
-
voice_mode/frontend/.next/prerender-manifest.json,sha256=
|
45
|
+
voice_mode/frontend/.next/prerender-manifest.json,sha256=POYCduiFZnYEEmeld-erytkpB1Csefp5VmWT-SNSDb4,959
|
46
46
|
voice_mode/frontend/.next/react-loadable-manifest.json,sha256=RBNvo1WzZ4oRRq0W9-hknpT7T8If536DEMBg9hyq_4o,2
|
47
|
-
voice_mode/frontend/.next/required-server-files.json,sha256=
|
47
|
+
voice_mode/frontend/.next/required-server-files.json,sha256=71rG3O1sERiQj1j1UE08lrPXO0_O12dkB0HEF-Y2NfM,4750
|
48
48
|
voice_mode/frontend/.next/routes-manifest.json,sha256=DqV6K_WLiS6wKvdr8TpF7-uBhH7xbrg7xeznwWaeO70,831
|
49
|
-
voice_mode/frontend/.next/trace,sha256=
|
49
|
+
voice_mode/frontend/.next/trace,sha256=k3xexchhiGsKJCyx2gXTHLEXcH6Pceg1BGC7iQFMwhg,895637
|
50
50
|
voice_mode/frontend/.next/server/app-paths-manifest.json,sha256=Xyxtr52aubW5XDHj7Ms66qiSJfwCkBVeL3ekU8uh2os,202
|
51
51
|
voice_mode/frontend/.next/server/font-manifest.json,sha256=T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU,2
|
52
52
|
voice_mode/frontend/.next/server/functions-config-manifest.json,sha256=CUXUfXux-dC5WRXm4vr6xa3f-RKEsEV1aG-hO3KK0CE,56
|
53
53
|
voice_mode/frontend/.next/server/interception-route-rewrite-manifest.js,sha256=_FEz5ArPCeZRewc93XtcDCGNCZOISJAiEPLME_COHIE,48
|
54
|
-
voice_mode/frontend/.next/server/middleware-build-manifest.js,sha256=
|
54
|
+
voice_mode/frontend/.next/server/middleware-build-manifest.js,sha256=e2VqRObZYz38VG25GWIsZ7U1uMKj7p-pRkSATn7CZl8,888
|
55
55
|
voice_mode/frontend/.next/server/middleware-manifest.json,sha256=CoUgvH4Hb3rnF8LWJxOZDIPoo9dGJvMno4RLwFBOIQw,83
|
56
56
|
voice_mode/frontend/.next/server/middleware-react-loadable-manifest.js,sha256=rS557JHipUQIQNo9i9IiwnmztMR-ialoMnpm9ssS64I,36
|
57
|
-
voice_mode/frontend/.next/server/next-font-manifest.js,sha256=
|
58
|
-
voice_mode/frontend/.next/server/next-font-manifest.json,sha256=
|
57
|
+
voice_mode/frontend/.next/server/next-font-manifest.js,sha256=2RX-3ChR9TRL_VlZhReAAsKdJMiQ8_ZrpBi5j3aPwwc,229
|
58
|
+
voice_mode/frontend/.next/server/next-font-manifest.json,sha256=it2mZjNng9h4XKOxF4uRF9vBEJFPxKz_DKFa7WovTqk,200
|
59
59
|
voice_mode/frontend/.next/server/pages-manifest.json,sha256=CtIVJgXR_t73dArygJmC6GsgbxLMM1N2fAUgg0-bUc8,111
|
60
60
|
voice_mode/frontend/.next/server/server-reference-manifest.js,sha256=zgEAbADh9jvL_kGz9-3SYNlptB0KMjtwXETh753xPYw,123
|
61
|
-
voice_mode/frontend/.next/server/server-reference-manifest.json,sha256=
|
61
|
+
voice_mode/frontend/.next/server/server-reference-manifest.json,sha256=Ln-bJ9aUImNa7bmScNAMjad1g7iMUIJqXei2NLu4zpQ,84
|
62
62
|
voice_mode/frontend/.next/server/webpack-runtime.js,sha256=mmuyol21D9il2KNetWeEUG5OBu3z05WsphIyIbwvads,1469
|
63
|
-
voice_mode/frontend/.next/server/app/_not-found.html,sha256=
|
63
|
+
voice_mode/frontend/.next/server/app/_not-found.html,sha256=22o6PZLPoXEVFnemcbRRbnhs9d5J5HyddIelNLKroPc,6752
|
64
64
|
voice_mode/frontend/.next/server/app/_not-found.meta,sha256=8-vSzkZIhJgJ7_uOmMyzHNf5QN3Exhbk-5ObKal4lrc,142
|
65
|
-
voice_mode/frontend/.next/server/app/_not-found.rsc,sha256=
|
65
|
+
voice_mode/frontend/.next/server/app/_not-found.rsc,sha256=LhhffajCOOKgOd-5YWYvFO12wL_OyhMrybylOTnSuwU,3621
|
66
66
|
voice_mode/frontend/.next/server/app/favicon.ico.body,sha256=Cc2QdQ-OI3iME7dIf86sbqXHW3D8LPUprF_KB2KZogI,15406
|
67
67
|
voice_mode/frontend/.next/server/app/favicon.ico.meta,sha256=iac7LJDMkBlPpPPzKMbIDSh2bqoxNKhYx_5nQjo5Tds,211
|
68
|
-
voice_mode/frontend/.next/server/app/index.html,sha256=
|
68
|
+
voice_mode/frontend/.next/server/app/index.html,sha256=ZoByryVzJ0YLtI0Gp9vJqUiS8-3HG9klfcvN9F1ZRqE,5396
|
69
69
|
voice_mode/frontend/.next/server/app/index.meta,sha256=BDswoSxeaM0dEV3Vl3-2HNVKE5mS5NQhBYZcQQt5mnQ,80
|
70
|
-
voice_mode/frontend/.next/server/app/index.rsc,sha256=
|
71
|
-
voice_mode/frontend/.next/server/app/page.js,sha256=
|
70
|
+
voice_mode/frontend/.next/server/app/index.rsc,sha256=LOVJ5wsK9tXEN7lEn4BimJIqHAcz4koTChzwvuhXEMc,2438
|
71
|
+
voice_mode/frontend/.next/server/app/page.js,sha256=TOS3oLnVkqjHf8O_TTRqPxJ-teyXgw47jTOGgN-7GcI,611920
|
72
72
|
voice_mode/frontend/.next/server/app/page.js.nft.json,sha256=6plKkaMV7NDsYDUQsMAnayayODq1vS_l6nRXRrm9Trg,1168
|
73
|
-
voice_mode/frontend/.next/server/app/page_client-reference-manifest.js,sha256=
|
74
|
-
voice_mode/frontend/.next/server/app/_not-found/page.js,sha256=
|
73
|
+
voice_mode/frontend/.next/server/app/page_client-reference-manifest.js,sha256=uH2okYTc3-r9gDQurGlgXtRBJlmYsWVjSSE5khEdB2g,4193
|
74
|
+
voice_mode/frontend/.next/server/app/_not-found/page.js,sha256=XkWMVc7seDJGe1IZ61bpY6i57UjziotFqABuDOh_JEk,3387
|
75
75
|
voice_mode/frontend/.next/server/app/_not-found/page.js.nft.json,sha256=7Z_Wav7koMsnepi3GignvrVRYuDbzwvKqqg84LuoSis,1195
|
76
|
-
voice_mode/frontend/.next/server/app/_not-found/page_client-reference-manifest.js,sha256=
|
77
|
-
voice_mode/frontend/.next/server/app/api/connection-details/route.js,sha256=
|
76
|
+
voice_mode/frontend/.next/server/app/_not-found/page_client-reference-manifest.js,sha256=igh2SQ9DR1yHwQx_nKf3mX26mIhLxS5DQ1RW9Zi4z0w,4297
|
77
|
+
voice_mode/frontend/.next/server/app/api/connection-details/route.js,sha256=e56HCHEeb-g74uEvKcYpCMWGykr9qM8eqxhRSF-8Nrw,121020
|
78
78
|
voice_mode/frontend/.next/server/app/api/connection-details/route.js.nft.json,sha256=qjdiqEpb5s6iSOQsC1MI3A0_sVjbF9Eh1t1mR_VcS9o,1327
|
79
|
-
voice_mode/frontend/.next/server/app/favicon.ico/route.js,sha256=
|
79
|
+
voice_mode/frontend/.next/server/app/favicon.ico/route.js,sha256=KCGV7MSduYAWvKgqfgIjTCcLxq262maUbCbg5XepZFA,66228
|
80
80
|
voice_mode/frontend/.next/server/app/favicon.ico/route.js.nft.json,sha256=xn4G0NuxuIbLuaN_3PVtjN4lYs5MWduPcvqhdZwRNkQ,1248
|
81
81
|
voice_mode/frontend/.next/server/chunks/463.js,sha256=9Fg9G6vSgz6lLnnirTbzQKyy5MQAf59a16SvYM0xDFc,6201
|
82
82
|
voice_mode/frontend/.next/server/chunks/682.js,sha256=dxTmuBsZ77qjHYtQvwM0HeoE4FnESxOOpTnhW3ABg18,33636
|
83
83
|
voice_mode/frontend/.next/server/chunks/948.js,sha256=2QNDLi5TnS9qLpgKRmsx_sJzO2vtdQJIRn124o6fjeI,57650
|
84
|
-
voice_mode/frontend/.next/server/chunks/994.js,sha256=
|
84
|
+
voice_mode/frontend/.next/server/chunks/994.js,sha256=SAKb7ovZnvXvMANDV0PTWln5Vf_-JoLuhwoZDVcm-WE,95359
|
85
85
|
voice_mode/frontend/.next/server/chunks/font-manifest.json,sha256=T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU,2
|
86
|
-
voice_mode/frontend/.next/server/pages/404.html,sha256=
|
87
|
-
voice_mode/frontend/.next/server/pages/500.html,sha256=
|
86
|
+
voice_mode/frontend/.next/server/pages/404.html,sha256=22o6PZLPoXEVFnemcbRRbnhs9d5J5HyddIelNLKroPc,6752
|
87
|
+
voice_mode/frontend/.next/server/pages/500.html,sha256=tzRvFGXPQOGUt6fL71Y45pbwPUseC-cJhnPMza7OgQY,1995
|
88
88
|
voice_mode/frontend/.next/server/pages/_app.js,sha256=xv0yBH2BTySxH6d7_oFG8KbedK3Jhvvg9SQ7pSaSPrE,3291
|
89
89
|
voice_mode/frontend/.next/server/pages/_app.js.nft.json,sha256=4DM09IfF6_ws-h14UVrroVq0Ri8tNeDEwwZ2c244nKM,517
|
90
90
|
voice_mode/frontend/.next/server/pages/_document.js,sha256=q-VJKG6tPCpEYWhP0UobYWG_naYdKPuqkRpb4HGMV_Y,378
|
@@ -92,70 +92,70 @@ voice_mode/frontend/.next/server/pages/_document.js.nft.json,sha256=7WnWXoJIsRyt
|
|
92
92
|
voice_mode/frontend/.next/server/pages/_error.js,sha256=1se20NEwePcXdV17_wUw4YhoMwVAenxiXI74aXSRqzU,8619
|
93
93
|
voice_mode/frontend/.next/server/pages/_error.js.nft.json,sha256=uK8O79iTeItVu_-Dz90fkTMA1GYxQEpTWU8TndjkfVQ,1855
|
94
94
|
voice_mode/frontend/.next/standalone/package.json,sha256=BUOh3UiaHq1D0Bww-jy2EjhOi-47rjOipeUqXONJndo,1150
|
95
|
-
voice_mode/frontend/.next/standalone/server.js,sha256=
|
96
|
-
voice_mode/frontend/.next/standalone/.next/BUILD_ID,sha256=
|
97
|
-
voice_mode/frontend/.next/standalone/.next/app-build-manifest.json,sha256=
|
95
|
+
voice_mode/frontend/.next/standalone/server.js,sha256=RlIywTYhv5zBDv6YyKxY5YNqy8_wlHg5yCbzDdmB6sk,4742
|
96
|
+
voice_mode/frontend/.next/standalone/.next/BUILD_ID,sha256=p64duedCfOGqAPr6OGbw9WN_WNm_q5IqQIlA0ilhVyE,21
|
97
|
+
voice_mode/frontend/.next/standalone/.next/app-build-manifest.json,sha256=w6sf82qUZegvPa3Gx3TwH1Q_ZxnhRsb6MfXC4Ssue-M,1010
|
98
98
|
voice_mode/frontend/.next/standalone/.next/app-path-routes-manifest.json,sha256=-WXlpEHFoCBUDPfxzUJleLsfZiEUU-rU0hRMZ8AVIJI,140
|
99
|
-
voice_mode/frontend/.next/standalone/.next/build-manifest.json,sha256=
|
99
|
+
voice_mode/frontend/.next/standalone/.next/build-manifest.json,sha256=joBmEnaBOhKX6aGXKruTqZoQsELadthA7yUAHR37oJs,968
|
100
100
|
voice_mode/frontend/.next/standalone/.next/package.json,sha256=CRoE-mfHkHuY4Qb8_4uWThMSl1T85y0k8wJbl8SIf6M,20
|
101
|
-
voice_mode/frontend/.next/standalone/.next/prerender-manifest.json,sha256=
|
101
|
+
voice_mode/frontend/.next/standalone/.next/prerender-manifest.json,sha256=POYCduiFZnYEEmeld-erytkpB1Csefp5VmWT-SNSDb4,959
|
102
102
|
voice_mode/frontend/.next/standalone/.next/react-loadable-manifest.json,sha256=RBNvo1WzZ4oRRq0W9-hknpT7T8If536DEMBg9hyq_4o,2
|
103
|
-
voice_mode/frontend/.next/standalone/.next/required-server-files.json,sha256=
|
103
|
+
voice_mode/frontend/.next/standalone/.next/required-server-files.json,sha256=71rG3O1sERiQj1j1UE08lrPXO0_O12dkB0HEF-Y2NfM,4750
|
104
104
|
voice_mode/frontend/.next/standalone/.next/routes-manifest.json,sha256=DqV6K_WLiS6wKvdr8TpF7-uBhH7xbrg7xeznwWaeO70,831
|
105
105
|
voice_mode/frontend/.next/standalone/.next/server/app-paths-manifest.json,sha256=Xyxtr52aubW5XDHj7Ms66qiSJfwCkBVeL3ekU8uh2os,202
|
106
106
|
voice_mode/frontend/.next/standalone/.next/server/font-manifest.json,sha256=T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU,2
|
107
|
-
voice_mode/frontend/.next/standalone/.next/server/middleware-build-manifest.js,sha256=
|
107
|
+
voice_mode/frontend/.next/standalone/.next/server/middleware-build-manifest.js,sha256=e2VqRObZYz38VG25GWIsZ7U1uMKj7p-pRkSATn7CZl8,888
|
108
108
|
voice_mode/frontend/.next/standalone/.next/server/middleware-manifest.json,sha256=CoUgvH4Hb3rnF8LWJxOZDIPoo9dGJvMno4RLwFBOIQw,83
|
109
109
|
voice_mode/frontend/.next/standalone/.next/server/middleware-react-loadable-manifest.js,sha256=rS557JHipUQIQNo9i9IiwnmztMR-ialoMnpm9ssS64I,36
|
110
|
-
voice_mode/frontend/.next/standalone/.next/server/next-font-manifest.js,sha256=
|
111
|
-
voice_mode/frontend/.next/standalone/.next/server/next-font-manifest.json,sha256=
|
110
|
+
voice_mode/frontend/.next/standalone/.next/server/next-font-manifest.js,sha256=2RX-3ChR9TRL_VlZhReAAsKdJMiQ8_ZrpBi5j3aPwwc,229
|
111
|
+
voice_mode/frontend/.next/standalone/.next/server/next-font-manifest.json,sha256=it2mZjNng9h4XKOxF4uRF9vBEJFPxKz_DKFa7WovTqk,200
|
112
112
|
voice_mode/frontend/.next/standalone/.next/server/pages-manifest.json,sha256=CtIVJgXR_t73dArygJmC6GsgbxLMM1N2fAUgg0-bUc8,111
|
113
113
|
voice_mode/frontend/.next/standalone/.next/server/server-reference-manifest.js,sha256=zgEAbADh9jvL_kGz9-3SYNlptB0KMjtwXETh753xPYw,123
|
114
|
-
voice_mode/frontend/.next/standalone/.next/server/server-reference-manifest.json,sha256=
|
114
|
+
voice_mode/frontend/.next/standalone/.next/server/server-reference-manifest.json,sha256=Ln-bJ9aUImNa7bmScNAMjad1g7iMUIJqXei2NLu4zpQ,84
|
115
115
|
voice_mode/frontend/.next/standalone/.next/server/webpack-runtime.js,sha256=mmuyol21D9il2KNetWeEUG5OBu3z05WsphIyIbwvads,1469
|
116
|
-
voice_mode/frontend/.next/standalone/.next/server/app/_not-found.html,sha256=
|
116
|
+
voice_mode/frontend/.next/standalone/.next/server/app/_not-found.html,sha256=22o6PZLPoXEVFnemcbRRbnhs9d5J5HyddIelNLKroPc,6752
|
117
117
|
voice_mode/frontend/.next/standalone/.next/server/app/_not-found.meta,sha256=8-vSzkZIhJgJ7_uOmMyzHNf5QN3Exhbk-5ObKal4lrc,142
|
118
|
-
voice_mode/frontend/.next/standalone/.next/server/app/_not-found.rsc,sha256=
|
118
|
+
voice_mode/frontend/.next/standalone/.next/server/app/_not-found.rsc,sha256=LhhffajCOOKgOd-5YWYvFO12wL_OyhMrybylOTnSuwU,3621
|
119
119
|
voice_mode/frontend/.next/standalone/.next/server/app/favicon.ico.body,sha256=Cc2QdQ-OI3iME7dIf86sbqXHW3D8LPUprF_KB2KZogI,15406
|
120
120
|
voice_mode/frontend/.next/standalone/.next/server/app/favicon.ico.meta,sha256=iac7LJDMkBlPpPPzKMbIDSh2bqoxNKhYx_5nQjo5Tds,211
|
121
|
-
voice_mode/frontend/.next/standalone/.next/server/app/index.html,sha256=
|
121
|
+
voice_mode/frontend/.next/standalone/.next/server/app/index.html,sha256=ZoByryVzJ0YLtI0Gp9vJqUiS8-3HG9klfcvN9F1ZRqE,5396
|
122
122
|
voice_mode/frontend/.next/standalone/.next/server/app/index.meta,sha256=BDswoSxeaM0dEV3Vl3-2HNVKE5mS5NQhBYZcQQt5mnQ,80
|
123
|
-
voice_mode/frontend/.next/standalone/.next/server/app/index.rsc,sha256=
|
124
|
-
voice_mode/frontend/.next/standalone/.next/server/app/page.js,sha256=
|
123
|
+
voice_mode/frontend/.next/standalone/.next/server/app/index.rsc,sha256=LOVJ5wsK9tXEN7lEn4BimJIqHAcz4koTChzwvuhXEMc,2438
|
124
|
+
voice_mode/frontend/.next/standalone/.next/server/app/page.js,sha256=TOS3oLnVkqjHf8O_TTRqPxJ-teyXgw47jTOGgN-7GcI,611920
|
125
125
|
voice_mode/frontend/.next/standalone/.next/server/app/page.js.nft.json,sha256=6plKkaMV7NDsYDUQsMAnayayODq1vS_l6nRXRrm9Trg,1168
|
126
|
-
voice_mode/frontend/.next/standalone/.next/server/app/page_client-reference-manifest.js,sha256=
|
127
|
-
voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page.js,sha256=
|
126
|
+
voice_mode/frontend/.next/standalone/.next/server/app/page_client-reference-manifest.js,sha256=uH2okYTc3-r9gDQurGlgXtRBJlmYsWVjSSE5khEdB2g,4193
|
127
|
+
voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page.js,sha256=XkWMVc7seDJGe1IZ61bpY6i57UjziotFqABuDOh_JEk,3387
|
128
128
|
voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page.js.nft.json,sha256=7Z_Wav7koMsnepi3GignvrVRYuDbzwvKqqg84LuoSis,1195
|
129
|
-
voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js,sha256=
|
130
|
-
voice_mode/frontend/.next/standalone/.next/server/app/api/connection-details/route.js,sha256=
|
129
|
+
voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js,sha256=igh2SQ9DR1yHwQx_nKf3mX26mIhLxS5DQ1RW9Zi4z0w,4297
|
130
|
+
voice_mode/frontend/.next/standalone/.next/server/app/api/connection-details/route.js,sha256=e56HCHEeb-g74uEvKcYpCMWGykr9qM8eqxhRSF-8Nrw,121020
|
131
131
|
voice_mode/frontend/.next/standalone/.next/server/app/api/connection-details/route.js.nft.json,sha256=qjdiqEpb5s6iSOQsC1MI3A0_sVjbF9Eh1t1mR_VcS9o,1327
|
132
|
-
voice_mode/frontend/.next/standalone/.next/server/app/favicon.ico/route.js,sha256=
|
132
|
+
voice_mode/frontend/.next/standalone/.next/server/app/favicon.ico/route.js,sha256=KCGV7MSduYAWvKgqfgIjTCcLxq262maUbCbg5XepZFA,66228
|
133
133
|
voice_mode/frontend/.next/standalone/.next/server/app/favicon.ico/route.js.nft.json,sha256=xn4G0NuxuIbLuaN_3PVtjN4lYs5MWduPcvqhdZwRNkQ,1248
|
134
134
|
voice_mode/frontend/.next/standalone/.next/server/chunks/463.js,sha256=9Fg9G6vSgz6lLnnirTbzQKyy5MQAf59a16SvYM0xDFc,6201
|
135
135
|
voice_mode/frontend/.next/standalone/.next/server/chunks/682.js,sha256=dxTmuBsZ77qjHYtQvwM0HeoE4FnESxOOpTnhW3ABg18,33636
|
136
136
|
voice_mode/frontend/.next/standalone/.next/server/chunks/948.js,sha256=2QNDLi5TnS9qLpgKRmsx_sJzO2vtdQJIRn124o6fjeI,57650
|
137
|
-
voice_mode/frontend/.next/standalone/.next/server/chunks/994.js,sha256=
|
138
|
-
voice_mode/frontend/.next/standalone/.next/server/pages/404.html,sha256=
|
139
|
-
voice_mode/frontend/.next/standalone/.next/server/pages/500.html,sha256=
|
137
|
+
voice_mode/frontend/.next/standalone/.next/server/chunks/994.js,sha256=SAKb7ovZnvXvMANDV0PTWln5Vf_-JoLuhwoZDVcm-WE,95359
|
138
|
+
voice_mode/frontend/.next/standalone/.next/server/pages/404.html,sha256=22o6PZLPoXEVFnemcbRRbnhs9d5J5HyddIelNLKroPc,6752
|
139
|
+
voice_mode/frontend/.next/standalone/.next/server/pages/500.html,sha256=tzRvFGXPQOGUt6fL71Y45pbwPUseC-cJhnPMza7OgQY,1995
|
140
140
|
voice_mode/frontend/.next/standalone/.next/server/pages/_app.js,sha256=xv0yBH2BTySxH6d7_oFG8KbedK3Jhvvg9SQ7pSaSPrE,3291
|
141
141
|
voice_mode/frontend/.next/standalone/.next/server/pages/_app.js.nft.json,sha256=4DM09IfF6_ws-h14UVrroVq0Ri8tNeDEwwZ2c244nKM,517
|
142
142
|
voice_mode/frontend/.next/standalone/.next/server/pages/_document.js,sha256=q-VJKG6tPCpEYWhP0UobYWG_naYdKPuqkRpb4HGMV_Y,378
|
143
143
|
voice_mode/frontend/.next/standalone/.next/server/pages/_document.js.nft.json,sha256=7WnWXoJIsRytU5c-NAEx-tGGNI1TP2CMldwr8xtDQYk,1932
|
144
144
|
voice_mode/frontend/.next/standalone/.next/server/pages/_error.js,sha256=1se20NEwePcXdV17_wUw4YhoMwVAenxiXI74aXSRqzU,8619
|
145
145
|
voice_mode/frontend/.next/standalone/.next/server/pages/_error.js.nft.json,sha256=uK8O79iTeItVu_-Dz90fkTMA1GYxQEpTWU8TndjkfVQ,1855
|
146
|
-
voice_mode/frontend/.next/static/
|
147
|
-
voice_mode/frontend/.next/static/
|
146
|
+
voice_mode/frontend/.next/static/SsR9zBdw0hd2LN3Vo9tP_/_buildManifest.js,sha256=UGi5XJhF4u-NRxMqU360JM2afxCS1essSVUEqY6sl5c,224
|
147
|
+
voice_mode/frontend/.next/static/SsR9zBdw0hd2LN3Vo9tP_/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
|
148
148
|
voice_mode/frontend/.next/static/chunks/117-40bc79a2b97edb21.js,sha256=sKMdOWIlJELukIK1QNRwH8hweTr_NgWzvc-bHWrZ9zM,123528
|
149
149
|
voice_mode/frontend/.next/static/chunks/144d3bae-2d5f122b82426d88.js,sha256=tGa8lG7iuv-oxVEA7BdFJPmskDLIVXYnDOBb6j4_zp8,383332
|
150
150
|
voice_mode/frontend/.next/static/chunks/471-bd4b96a33883dfa2.js,sha256=qT-fK-XMK3eAlXh2APHuRcKfG9EriUu-tXTEcNYWUp0,194375
|
151
151
|
voice_mode/frontend/.next/static/chunks/fd9d1056-af324d327b243cf1.js,sha256=uL3flIHYWdZI4eBQ-DIus97-PdP5vRP0xE3W8uz1q4A,172834
|
152
152
|
voice_mode/frontend/.next/static/chunks/framework-f66176bb897dc684.js,sha256=QlDVPwvHVuzi3daQoAit0df9yIdSjGcfTf6NkW13h7c,139978
|
153
153
|
voice_mode/frontend/.next/static/chunks/main-3163eca598b76a9f.js,sha256=IwuNOgi-ik3KFA_tnaPvAfRY5q6hTp4DRK1lkjkWdwQ,116431
|
154
|
-
voice_mode/frontend/.next/static/chunks/main-app-
|
154
|
+
voice_mode/frontend/.next/static/chunks/main-app-d25858d98b1d322b.js,sha256=SNzBa7Say_t2PpnbPtS0RxzCLfst4xfmQBg6oBpUf2Y,461
|
155
155
|
voice_mode/frontend/.next/static/chunks/polyfills-42372ed130431b0a.js,sha256=CXPB1kyIrcjjyVBBDLWLKI9yEY1ZZbeASUON648vloM,112594
|
156
156
|
voice_mode/frontend/.next/static/chunks/webpack-0ea9b80f19935b70.js,sha256=1Us0m_ZxEgMEb2DAN4ePlpq9Fv7QqUxcuV2CqICEB5w,3605
|
157
|
-
voice_mode/frontend/.next/static/chunks/app/layout-
|
158
|
-
voice_mode/frontend/.next/static/chunks/app/page-
|
157
|
+
voice_mode/frontend/.next/static/chunks/app/layout-5675f418c42e0ae3.js,sha256=5bEPJP-kTZGTf4qjaXGSYBb007hyPbX9QiEQK0SHfvI,507
|
158
|
+
voice_mode/frontend/.next/static/chunks/app/page-dbb3615cf25cdc16.js,sha256=qxr4ZM8xtolWgwICHhk5hrrfOWk6OH8O__P5AF-Knpg,7666
|
159
159
|
voice_mode/frontend/.next/static/chunks/app/_not-found/page-5011050e402ab9c8.js,sha256=u5LYOU4LZ2HFeEcz6xZqSflSnU4WDt-TnQNu3CdcEWk,1745
|
160
160
|
voice_mode/frontend/.next/static/chunks/pages/_app-72b849fbd24ac258.js,sha256=QN-PY1h1HDIO4K4ZYwFl6rtEeaxWCynYauVLK_oWmzE,280
|
161
161
|
voice_mode/frontend/.next/static/chunks/pages/_error-7ba65e1336b92748.js,sha256=oxr2dz6MkKWnm3jN3fWb2RPhCHB4-JgrzVMS_wTNr_E,247
|
@@ -164,9 +164,9 @@ voice_mode/frontend/.next/static/media/01099be941da1820-s.woff2,sha256=ZaNN8qxUZ
|
|
164
164
|
voice_mode/frontend/.next/static/media/39883d31a7792467-s.p.woff2,sha256=i_qVPOm6vZ-H4B0Mk_d5yUQR_YKsz4XRc-8J2R_QWKs,14620
|
165
165
|
voice_mode/frontend/.next/static/media/6368404d2e8d66fe-s.woff2,sha256=2GFQ1JjbLJOSmwrIsgCHPVMSJpcx2QX2i13kJbg8IFE,4464
|
166
166
|
voice_mode/frontend/.next/types/package.json,sha256=49WkothVGqUsWgHSoO-y4GotlxG09cXx0g3m4hgH4s0,18
|
167
|
-
voice_mode/frontend/.next/types/app/layout.ts,sha256=
|
168
|
-
voice_mode/frontend/.next/types/app/page.ts,sha256=
|
169
|
-
voice_mode/frontend/.next/types/app/api/connection-details/route.ts,sha256=
|
167
|
+
voice_mode/frontend/.next/types/app/layout.ts,sha256=bpB6PRQir-cCYOHdPUdrK9VPT_0n07cLN-SKl1BrMMs,3511
|
168
|
+
voice_mode/frontend/.next/types/app/page.ts,sha256=NhKL9LMcE6TNlidp8rKihwvNFNt-cb0vti5G1qS3lFw,3499
|
169
|
+
voice_mode/frontend/.next/types/app/api/connection-details/route.ts,sha256=aa-tonqJb4MTW7AHkBIzllR-6yMw6at9yOwOPdQvDdk,8531
|
170
170
|
voice_mode/frontend/app/favicon.ico,sha256=Cc2QdQ-OI3iME7dIf86sbqXHW3D8LPUprF_KB2KZogI,15406
|
171
171
|
voice_mode/frontend/app/globals.css,sha256=yMCx8ta7sGyt40nzBTlRR644nlAGGYt73zj7e9YLgl4,362
|
172
172
|
voice_mode/frontend/app/layout.tsx,sha256=Q0LYcf_Z8GT8zDhlWgk7XEZArp2ZS2HpB1tmv3epp68,537
|
@@ -201,7 +201,7 @@ voice_mode/templates/systemd/voicemode-livekit.service,sha256=hVjT4Vd0SOABXGYbp9
|
|
201
201
|
voice_mode/templates/systemd/voicemode-whisper.service,sha256=aa5gIHI9xKF0M_DY6SO95QHRFhkV2JOzmFVo2U8RhN4,844
|
202
202
|
voice_mode/tools/__init__.py,sha256=Hd8-dNoB58apt6PqMCfGHYDAeQWbarFrMRfxseJi8Jo,1069
|
203
203
|
voice_mode/tools/configuration_management.py,sha256=N_lB2JDNe5QrbifNqh8RK_9Yv1l9Hz2Ylc5kgE8cJUM,8431
|
204
|
-
voice_mode/tools/converse.py,sha256=
|
204
|
+
voice_mode/tools/converse.py,sha256=LVFBUme9C1wx7NwtpdR9jUlI89AjIowTO-hp5Y5HFDc,94318
|
205
205
|
voice_mode/tools/dependencies.py,sha256=V72gS_bD0pCmW_be2Hxs_cEnIoNPFKlK7rE9cLMTDGE,6670
|
206
206
|
voice_mode/tools/devices.py,sha256=v0KV-Rix2lKZMFfVcobHiJB_6NnPAJsuZI5LXYHlgl0,10446
|
207
207
|
voice_mode/tools/diagnostics.py,sha256=pWl9wwaBMJubBKhWOVbNIGeYet84ECVshtPok-v2pl8,2059
|
@@ -233,7 +233,7 @@ voice_mode/utils/services/common.py,sha256=tMzsQ8ZSmTvZdlHEuiuPX7hmX2XAc3Zbtb1vf
|
|
233
233
|
voice_mode/utils/services/kokoro_helpers.py,sha256=VE3wa9cI2ZIc95ro58aaKVKdAE7DPXmZQLxml3QYbcI,1206
|
234
234
|
voice_mode/utils/services/livekit_helpers.py,sha256=OFw0GxVIJAZE2m9dGCDZVegWD-LnMO6iSjcOUDgAA9U,3627
|
235
235
|
voice_mode/utils/services/whisper_helpers.py,sha256=8guaPTWXS0bM289Wp-IpxQsS61Ll93dJCIyUi-ZV0Ok,8493
|
236
|
-
voice_mode-2.
|
237
|
-
voice_mode-2.
|
238
|
-
voice_mode-2.
|
239
|
-
voice_mode-2.
|
236
|
+
voice_mode-2.25.0.dist-info/METADATA,sha256=OaIGwA9fwd4LiwV_B9dZQ5r_FRE3w8dFSHhP1Qo5g6I,24618
|
237
|
+
voice_mode-2.25.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
238
|
+
voice_mode-2.25.0.dist-info/entry_points.txt,sha256=hS5faHc0R5Fde3Z_uvz8u6YkRIYtvh17X8tVN90Rbro,95
|
239
|
+
voice_mode-2.25.0.dist-info/RECORD,,
|
/voice_mode/frontend/.next/static/{Wzk1z2qG5teKcU-SpnqS6 → SsR9zBdw0hd2LN3Vo9tP_}/_buildManifest.js
RENAMED
File without changes
|
/voice_mode/frontend/.next/static/{Wzk1z2qG5teKcU-SpnqS6 → SsR9zBdw0hd2LN3Vo9tP_}/_ssgManifest.js
RENAMED
File without changes
|
File without changes
|
File without changes
|