voice-mode 2.28.2__py3-none-any.whl → 2.29.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.
Files changed (66) hide show
  1. voice_mode/__version__.py +1 -1
  2. voice_mode/frontend/.next/BUILD_ID +1 -1
  3. voice_mode/frontend/.next/app-build-manifest.json +5 -5
  4. voice_mode/frontend/.next/build-manifest.json +3 -3
  5. voice_mode/frontend/.next/next-minimal-server.js.nft.json +1 -1
  6. voice_mode/frontend/.next/next-server.js.nft.json +1 -1
  7. voice_mode/frontend/.next/prerender-manifest.json +1 -1
  8. voice_mode/frontend/.next/required-server-files.json +1 -1
  9. voice_mode/frontend/.next/server/app/_not-found/page.js +1 -1
  10. voice_mode/frontend/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  11. voice_mode/frontend/.next/server/app/_not-found.html +1 -1
  12. voice_mode/frontend/.next/server/app/_not-found.rsc +1 -1
  13. voice_mode/frontend/.next/server/app/api/connection-details/route.js +2 -2
  14. voice_mode/frontend/.next/server/app/favicon.ico/route.js +2 -2
  15. voice_mode/frontend/.next/server/app/index.html +1 -1
  16. voice_mode/frontend/.next/server/app/index.rsc +2 -2
  17. voice_mode/frontend/.next/server/app/page.js +3 -3
  18. voice_mode/frontend/.next/server/app/page_client-reference-manifest.js +1 -1
  19. voice_mode/frontend/.next/server/chunks/994.js +2 -2
  20. voice_mode/frontend/.next/server/middleware-build-manifest.js +1 -1
  21. voice_mode/frontend/.next/server/next-font-manifest.js +1 -1
  22. voice_mode/frontend/.next/server/next-font-manifest.json +1 -1
  23. voice_mode/frontend/.next/server/pages/404.html +1 -1
  24. voice_mode/frontend/.next/server/pages/500.html +1 -1
  25. voice_mode/frontend/.next/server/server-reference-manifest.json +1 -1
  26. voice_mode/frontend/.next/standalone/.next/BUILD_ID +1 -1
  27. voice_mode/frontend/.next/standalone/.next/app-build-manifest.json +5 -5
  28. voice_mode/frontend/.next/standalone/.next/build-manifest.json +3 -3
  29. voice_mode/frontend/.next/standalone/.next/prerender-manifest.json +1 -1
  30. voice_mode/frontend/.next/standalone/.next/required-server-files.json +1 -1
  31. voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page.js +1 -1
  32. voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  33. voice_mode/frontend/.next/standalone/.next/server/app/_not-found.html +1 -1
  34. voice_mode/frontend/.next/standalone/.next/server/app/_not-found.rsc +1 -1
  35. voice_mode/frontend/.next/standalone/.next/server/app/api/connection-details/route.js +2 -2
  36. voice_mode/frontend/.next/standalone/.next/server/app/favicon.ico/route.js +2 -2
  37. voice_mode/frontend/.next/standalone/.next/server/app/index.html +1 -1
  38. voice_mode/frontend/.next/standalone/.next/server/app/index.rsc +2 -2
  39. voice_mode/frontend/.next/standalone/.next/server/app/page.js +3 -3
  40. voice_mode/frontend/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  41. voice_mode/frontend/.next/standalone/.next/server/chunks/994.js +2 -2
  42. voice_mode/frontend/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  43. voice_mode/frontend/.next/standalone/.next/server/next-font-manifest.js +1 -1
  44. voice_mode/frontend/.next/standalone/.next/server/next-font-manifest.json +1 -1
  45. voice_mode/frontend/.next/standalone/.next/server/pages/404.html +1 -1
  46. voice_mode/frontend/.next/standalone/.next/server/pages/500.html +1 -1
  47. voice_mode/frontend/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  48. voice_mode/frontend/.next/standalone/server.js +1 -1
  49. voice_mode/frontend/.next/static/chunks/app/{layout-06d943bee7b4ecc3.js → layout-53ce2eb95847e7bc.js} +1 -1
  50. voice_mode/frontend/.next/static/chunks/app/{page-6bcf7700ed80ad2d.js → page-9c7f7be4378697be.js} +1 -1
  51. voice_mode/frontend/.next/static/chunks/{main-app-1caffd758cfd3d20.js → main-app-2233caae67bf73bd.js} +1 -1
  52. voice_mode/frontend/.next/trace +43 -43
  53. voice_mode/frontend/.next/types/app/api/connection-details/route.ts +1 -1
  54. voice_mode/frontend/.next/types/app/layout.ts +1 -1
  55. voice_mode/frontend/.next/types/app/page.ts +1 -1
  56. voice_mode/tools/converse.py +17 -9
  57. voice_mode/tools/service.py +10 -2
  58. voice_mode/tools/services/kokoro/install.py +9 -1
  59. voice_mode/tools/services/livekit/install.py +9 -1
  60. voice_mode/tools/services/whisper/model_install.py +99 -3
  61. {voice_mode-2.28.2.dist-info → voice_mode-2.29.0.dist-info}/METADATA +6 -1
  62. {voice_mode-2.28.2.dist-info → voice_mode-2.29.0.dist-info}/RECORD +66 -66
  63. /voice_mode/frontend/.next/static/{vsKkKXXsjdAp1tEHDzSXQ → 998kY2RB1umOQfi6UBnLh}/_buildManifest.js +0 -0
  64. /voice_mode/frontend/.next/static/{vsKkKXXsjdAp1tEHDzSXQ → 998kY2RB1umOQfi6UBnLh}/_ssgManifest.js +0 -0
  65. {voice_mode-2.28.2.dist-info → voice_mode-2.29.0.dist-info}/WHEEL +0 -0
  66. {voice_mode-2.28.2.dist-info → voice_mode-2.29.0.dist-info}/entry_points.txt +0 -0
@@ -1,4 +1,4 @@
1
- // File: /tmp/build-via-sdist-ters2a8x/voice_mode-2.28.2/voice_mode/frontend/app/api/connection-details/route.ts
1
+ // File: /tmp/build-via-sdist-_q76zsa1/voice_mode-2.29.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-ters2a8x/voice_mode-2.28.2/voice_mode/frontend/app/layout.tsx
1
+ // File: /tmp/build-via-sdist-_q76zsa1/voice_mode-2.29.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-ters2a8x/voice_mode-2.28.2/voice_mode/frontend/app/page.tsx
1
+ // File: /tmp/build-via-sdist-_q76zsa1/voice_mode-2.29.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
 
@@ -1323,7 +1323,7 @@ async def converse(
1323
1323
  audio_format: Optional[str] = None,
1324
1324
  disable_silence_detection: Union[bool, str] = False,
1325
1325
  speed: Optional[float] = None,
1326
- vad_aggressiveness: Optional[int] = None,
1326
+ vad_aggressiveness: Optional[Union[int, str]] = None,
1327
1327
  skip_tts: Optional[Union[bool, str]] = None,
1328
1328
  pip_leading_silence: Optional[float] = None,
1329
1329
  pip_trailing_silence: Optional[float] = None
@@ -1351,14 +1351,13 @@ async def converse(
1351
1351
  message: The message to speak
1352
1352
  wait_for_response: Whether to listen for a response after speaking (default: True)
1353
1353
  listen_duration: How long to listen for response in seconds (default: 120.0)
1354
- Recommended durations based on expected response:
1355
- - Simple yes/no questions: 10 seconds
1356
- - Normal conversational responses: 30 seconds
1357
- - Open-ended questions: 60 seconds
1358
- - Detailed explanations: 120 seconds (default)
1359
- - Stories or long explanations: 300 seconds
1360
- Always err on the side of longer duration - it's better to have
1361
- silence at the end than to cut off the user mid-sentence.
1354
+ The tool handles silence detection well and uses a sensible default.
1355
+ It's unusual to need to set the duration - only override if you have
1356
+ specific requirements such as:
1357
+ - Silence detection is disabled and you need a specific timeout
1358
+ - You know the response will be exceptionally long (>120s)
1359
+ - You're in a special mode that requires different timing
1360
+ In most cases, just let the default and silence detection handle it.
1362
1361
  min_listen_duration: Minimum time to record before silence detection can stop (default: 2.0)
1363
1362
  Useful for preventing premature cutoffs when users need thinking time.
1364
1363
  Examples:
@@ -1495,6 +1494,15 @@ async def converse(
1495
1494
  if skip_tts is not None and isinstance(skip_tts, str):
1496
1495
  skip_tts = skip_tts.lower() in ('true', '1', 'yes', 'on')
1497
1496
 
1497
+ # Convert vad_aggressiveness to integer if provided as string
1498
+ if vad_aggressiveness is not None and isinstance(vad_aggressiveness, str):
1499
+ try:
1500
+ vad_aggressiveness = int(vad_aggressiveness)
1501
+ # Validation will happen later in the function
1502
+ except ValueError:
1503
+ logger.warning(f"Invalid VAD aggressiveness value '{vad_aggressiveness}', using default")
1504
+ vad_aggressiveness = None
1505
+
1498
1506
  # Determine whether to skip TTS
1499
1507
  if skip_tts is not None:
1500
1508
  # Parameter explicitly set, use it
@@ -8,7 +8,7 @@ import platform
8
8
  import subprocess
9
9
  import time
10
10
  from pathlib import Path
11
- from typing import Literal, Optional, Dict, Any
11
+ from typing import Literal, Optional, Dict, Any, Union
12
12
 
13
13
  import psutil
14
14
 
@@ -980,7 +980,7 @@ async def view_logs(service_name: str, lines: Optional[int] = None) -> str:
980
980
  async def service(
981
981
  service_name: Literal["whisper", "kokoro", "livekit", "frontend"],
982
982
  action: Literal["status", "start", "stop", "restart", "enable", "disable", "logs", "update-service-files"] = "status",
983
- lines: Optional[int] = None
983
+ lines: Optional[Union[int, str]] = None
984
984
  ) -> str:
985
985
  """Unified service management tool for voice mode services.
986
986
 
@@ -1007,6 +1007,14 @@ async def service(
1007
1007
  service("kokoro", "start") # Start Kokoro service
1008
1008
  service("whisper", "logs", 100) # View last 100 lines of Whisper logs
1009
1009
  """
1010
+ # Convert lines to integer if provided as string
1011
+ if lines is not None and isinstance(lines, str):
1012
+ try:
1013
+ lines = int(lines)
1014
+ except ValueError:
1015
+ logger.warning(f"Invalid lines value '{lines}', using default 50")
1016
+ lines = 50
1017
+
1010
1018
  # Route to appropriate handler
1011
1019
  if action == "status":
1012
1020
  return await status_service(service_name)
@@ -26,7 +26,7 @@ logger = logging.getLogger("voice-mode")
26
26
  async def kokoro_install(
27
27
  install_dir: Optional[str] = None,
28
28
  models_dir: Optional[str] = None,
29
- port: int = 8880,
29
+ port: Union[int, str] = 8880,
30
30
  auto_start: Union[bool, str] = True,
31
31
  install_models: Union[bool, str] = True,
32
32
  force_reinstall: Union[bool, str] = False,
@@ -54,6 +54,14 @@ async def kokoro_install(
54
54
  Installation status with service configuration details
55
55
  """
56
56
  try:
57
+ # Convert port to integer if provided as string
58
+ if isinstance(port, str):
59
+ try:
60
+ port = int(port)
61
+ except ValueError:
62
+ logger.warning(f"Invalid port value '{port}', using default 8880")
63
+ port = 8880
64
+
57
65
  # Check for and migrate old installations
58
66
  migration_msg = auto_migrate_if_needed("kokoro")
59
67
 
@@ -124,7 +124,7 @@ room:
124
124
  @mcp.tool()
125
125
  async def livekit_install(
126
126
  install_dir: Optional[str] = None,
127
- port: int = 7880,
127
+ port: Union[int, str] = 7880,
128
128
  force_reinstall: Union[bool, str] = False,
129
129
  auto_enable: Optional[Union[bool, str]] = None,
130
130
  version: str = "latest"
@@ -159,6 +159,14 @@ async def livekit_install(
159
159
  # Check system
160
160
  system = platform.system()
161
161
 
162
+ # Convert port to integer if provided as string
163
+ if isinstance(port, str):
164
+ try:
165
+ port = int(port)
166
+ except ValueError:
167
+ logger.warning(f"Invalid port value '{port}', using default 7880")
168
+ port = 7880
169
+
162
170
  # Handle string boolean conversions
163
171
  if isinstance(force_reinstall, str):
164
172
  force_reinstall = force_reinstall.lower() in ("true", "1", "yes", "on")
@@ -1,10 +1,13 @@
1
1
  """Download Whisper models with Core ML support."""
2
2
 
3
3
  import os
4
+ import sys
4
5
  import json
5
6
  import logging
7
+ import platform
8
+ import subprocess
6
9
  from pathlib import Path
7
- from typing import Union, List
10
+ from typing import Union, List, Dict, Any
8
11
 
9
12
  from voice_mode.server import mcp
10
13
  from voice_mode.config import logger, MODELS_DIR
@@ -17,7 +20,9 @@ logger = logging.getLogger("voice-mode")
17
20
  async def whisper_model_install(
18
21
  model: Union[str, List[str]] = "large-v2",
19
22
  force_download: Union[bool, str] = False,
20
- skip_core_ml: Union[bool, str] = False
23
+ skip_core_ml: Union[bool, str] = False,
24
+ install_torch: Union[bool, str] = False,
25
+ auto_confirm: Union[bool, str] = False
21
26
  ) -> str:
22
27
  """Download Whisper model(s) with optional Core ML conversion.
23
28
 
@@ -31,6 +36,8 @@ async def whisper_model_install(
31
36
  - "all" to download all available models
32
37
  force_download: Re-download even if model exists (default: False)
33
38
  skip_core_ml: Skip Core ML conversion on Apple Silicon (default: False)
39
+ install_torch: Install PyTorch for CoreML (adds ~2.5GB) (default: False)
40
+ auto_confirm: Skip all confirmation prompts (default: False)
34
41
 
35
42
  Available models:
36
43
  - tiny, tiny.en
@@ -77,6 +84,20 @@ async def whisper_model_install(
77
84
  "error": "Whisper.cpp not installed. Please run whisper_install first."
78
85
  }, indent=2)
79
86
 
87
+ # Handle CoreML dependencies if needed
88
+ coreml_status = await _handle_coreml_dependencies(
89
+ install_torch=install_torch,
90
+ auto_confirm=auto_confirm,
91
+ skip_core_ml=skip_core_ml
92
+ )
93
+
94
+ if not coreml_status["continue"]:
95
+ return json.dumps(coreml_status, indent=2)
96
+
97
+ # If CoreML deps were installed, skip_core_ml may have been updated
98
+ if coreml_status.get("coreml_deps_failed"):
99
+ skip_core_ml = True
100
+
80
101
  # Parse model input
81
102
  available_models = get_available_models()
82
103
 
@@ -200,4 +221,79 @@ async def whisper_model_install(
200
221
  return json.dumps({
201
222
  "success": False,
202
223
  "error": str(e)
203
- }, indent=2)
224
+ }, indent=2)
225
+
226
+
227
+ async def _handle_coreml_dependencies(
228
+ install_torch: bool = False,
229
+ auto_confirm: bool = False,
230
+ skip_core_ml: bool = False
231
+ ) -> Dict[str, Any]:
232
+ """Handle CoreML dependency installation for Apple Silicon Macs.
233
+
234
+ Returns:
235
+ Dict with 'continue' key indicating whether to proceed with model download
236
+ """
237
+ # Check if we're on Apple Silicon Mac
238
+ if platform.system() != "Darwin" or platform.machine() != "arm64":
239
+ return {"continue": True}
240
+
241
+ # If skipping CoreML, no need to check dependencies
242
+ if skip_core_ml:
243
+ return {"continue": True}
244
+
245
+ # Check if torch is already installed
246
+ try:
247
+ import torch
248
+ logger.info("PyTorch already installed for CoreML support")
249
+ return {"continue": True}
250
+ except ImportError:
251
+ pass
252
+
253
+ # Check if user wants to install torch
254
+ if not install_torch and not auto_confirm:
255
+ return {
256
+ "continue": False,
257
+ "success": False,
258
+ "requires_confirmation": True,
259
+ "message": "CoreML requires PyTorch (~2.5GB). Rerun with install_torch=True to confirm.",
260
+ "recommendation": "Set install_torch=True for CoreML acceleration (2-3x faster)"
261
+ }
262
+
263
+ # Install CoreML dependencies
264
+ logger.info("Installing CoreML dependencies...")
265
+
266
+ try:
267
+ # Detect environment and install appropriately
268
+ packages = ["torch>=2.0.0", "coremltools>=7.0", "transformers", "ane-transformers"]
269
+
270
+ # Try UV first (most common)
271
+ if subprocess.run(["which", "uv"], capture_output=True).returncode == 0:
272
+ cmd = ["uv", "pip", "install"] + packages
273
+ logger.info("Installing via UV...")
274
+ else:
275
+ # Fallback to pip
276
+ cmd = [sys.executable, "-m", "pip", "install"] + packages
277
+ logger.info("Installing via pip...")
278
+
279
+ # Run installation
280
+ result = subprocess.run(cmd, capture_output=True, text=True)
281
+
282
+ if result.returncode == 0:
283
+ logger.info("CoreML dependencies installed successfully")
284
+ return {"continue": True, "coreml_deps_installed": True}
285
+ else:
286
+ logger.warning(f"Failed to install CoreML dependencies: {result.stderr}")
287
+ return {
288
+ "continue": True,
289
+ "coreml_deps_failed": True,
290
+ "warning": "CoreML dependencies installation failed. Models will use Metal acceleration."
291
+ }
292
+
293
+ except Exception as e:
294
+ logger.warning(f"Error installing CoreML dependencies: {e}")
295
+ return {
296
+ "continue": True,
297
+ "coreml_deps_failed": True,
298
+ "warning": f"CoreML setup error: {str(e)}. Models will use Metal acceleration."
299
+ }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: voice-mode
3
- Version: 2.28.2
3
+ Version: 2.29.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
@@ -39,6 +39,11 @@ Requires-Dist: simpleaudio
39
39
  Requires-Dist: sounddevice
40
40
  Requires-Dist: uv>=0.4.0
41
41
  Requires-Dist: webrtcvad>=2.0.10
42
+ Provides-Extra: coreml
43
+ Requires-Dist: ane-transformers; extra == 'coreml'
44
+ Requires-Dist: coremltools>=7.0; extra == 'coreml'
45
+ Requires-Dist: torch>=2.0.0; extra == 'coreml'
46
+ Requires-Dist: transformers; extra == 'coreml'
42
47
  Provides-Extra: dev
43
48
  Requires-Dist: build>=1.0.0; extra == 'dev'
44
49
  Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
@@ -1,6 +1,6 @@
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=VNGK30wt32VPRul4LmHA8t0HCuwoRP-S0JWHdb-nQwk,101
3
+ voice_mode/__version__.py,sha256=PjN47-oCpd3r9drA0M5Aigpt_Iz_AlKuEytkI2KLXTg,101
4
4
  voice_mode/cli.py,sha256=wYS-xWYxzoSVoHOgUcvp_I_fl4Nvf06XnYDZwI4ji0Y,72126
5
5
  voice_mode/config.py,sha256=Y4HGo2EHIF63qtr3VNFlyxxODTjM30PrcNlIiX7AOpc,27862
6
6
  voice_mode/conversation_logger.py,sha256=Nar92xabhaVmMKdZdLmgoYckK9fGAVVYWdass3-EI1I,9363
@@ -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=wZpZpi5iuPDVVJBfxWEOOV3OqzxSToLCA3G8xdR36d0,21
37
- voice_mode/frontend/.next/app-build-manifest.json,sha256=5yuZcsv1imKAsH6lBNebgZA2BNzJu_67C7uOy0BtdsY,1010
36
+ voice_mode/frontend/.next/BUILD_ID,sha256=QVXPIuekzsDva2SdPnIKmoUOTII1fVSw5pA4kDzj89I,21
37
+ voice_mode/frontend/.next/app-build-manifest.json,sha256=2NG4Ehl5GWc-uIZ9_eP4LwAg_mk-j29g6q4Mumedr8Q,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=2bbOS0fslKLmhKBlkhI3k5eAIQ8IHVCgnhw8oog5_ec,968
39
+ voice_mode/frontend/.next/build-manifest.json,sha256=GU-ZjwdrC_poIqE8mIKCGhJ1B8ne7_4WOjWJ8BfbjHw,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=L-ycpo6B8_vF4aYlOsfoha25Rno2-O1CihPQW1K3b4M,7314
43
- voice_mode/frontend/.next/next-server.js.nft.json,sha256=7aw9H3ttS33VM2UPxEzJiuVAUUa94N7T8q2IVOpWkFs,109011
42
+ voice_mode/frontend/.next/next-minimal-server.js.nft.json,sha256=Ed8zLwCcKvhniAtCzNvNZg5lOraFtLVlR702I6neHdc,7314
43
+ voice_mode/frontend/.next/next-server.js.nft.json,sha256=kPrBX7yTZbA2Arfphe9FnT14JxIEvfhoXLY2nDL_kII,109011
44
44
  voice_mode/frontend/.next/package.json,sha256=CRoE-mfHkHuY4Qb8_4uWThMSl1T85y0k8wJbl8SIf6M,20
45
- voice_mode/frontend/.next/prerender-manifest.json,sha256=nZa7VRWUgcrqNn0JlPDmAtextEEUISuuc0HDx0r0FBk,959
45
+ voice_mode/frontend/.next/prerender-manifest.json,sha256=kpe7TGSnG1KSpE4tbeKa5W3sGzRrNe8NEeBrqjkxeIQ,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=kxtLzv3XKyjrBP2zJhSewbB30pmM3PrB-Vvh3Fa2_uw,4750
47
+ voice_mode/frontend/.next/required-server-files.json,sha256=qFpe5GloJ428iDUb4Fr57RF8Un86fatHen9y8Cg9OUg,4750
48
48
  voice_mode/frontend/.next/routes-manifest.json,sha256=DqV6K_WLiS6wKvdr8TpF7-uBhH7xbrg7xeznwWaeO70,831
49
- voice_mode/frontend/.next/trace,sha256=z9-pZQWffmIVl-AeD9yDcqBQlrGEAXwRxIDizyWV6pY,900037
49
+ voice_mode/frontend/.next/trace,sha256=3b3mU6nl1YI7DcnJ096A-FzcNNcPynHVumOY5iKJvno,899841
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=QZR63MDsX8UpcIzoV2TQDQCvsUByXmxVKQLA-ZxjPEs,888
54
+ voice_mode/frontend/.next/server/middleware-build-manifest.js,sha256=SHNVJwuwdVH1b9ZAsLZt9mBg7H3R7LYklPlp9PiUMX8,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=SIFrElz5L6MOgLaalOdUNxKgOOAsk5CPpKFvdgimDR4,229
58
- voice_mode/frontend/.next/server/next-font-manifest.json,sha256=BcTwUQ1vFRtAdnRITc9a_dcKGoyDMMIIfTBJoX7tN44,200
57
+ voice_mode/frontend/.next/server/next-font-manifest.js,sha256=gr2Forq0IiB2X2_1DNDcyvtk1cbMQ9X10G08RDNXrtc,229
58
+ voice_mode/frontend/.next/server/next-font-manifest.json,sha256=KJpsMR8cUCUN_5stJKBgv3DlpSovlP8fPrK0VFIeUCM,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=tzkJf-wI-qXIpiYkkBIVf1rtx5vcRIx5bjckhlNwZDs,84
61
+ voice_mode/frontend/.next/server/server-reference-manifest.json,sha256=1HEqWylXC1r-ceJko1uyNH6m2fmr2unrBLgONizUcm4,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=JtHchVYZBNKEw901BEskOgDb_7Mdq59LSMyBGg0Kkz4,6752
63
+ voice_mode/frontend/.next/server/app/_not-found.html,sha256=pwcvJYdFEK8rmRRPlogSqZvTWTm6h4U8dAcyhamq_H4,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=tY8GSaSgjYxB9RK7wdeYmWdY_b2DzcEm9kB_2_ZTBjw,3621
65
+ voice_mode/frontend/.next/server/app/_not-found.rsc,sha256=KbIYouLmuNRzGLQWb0cJTIt33v3G8B3XkrzVxv-JOko,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=uAijH-3kqpe24o6X7q7p_ksf6DiVhl3rX0q69CDd_DI,5396
68
+ voice_mode/frontend/.next/server/app/index.html,sha256=49dylPk-RwHa3VhrHaliJubltR54ix0-gfvmjpPMPUg,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=jBsFaGXK5V4qNKOQHkhYvO4O6rrt-z3BVOxCRu03VBg,2438
71
- voice_mode/frontend/.next/server/app/page.js,sha256=hviSCmka5yPVjS4lUHfLOBunPhxQATsswiou1bRAAx0,611922
70
+ voice_mode/frontend/.next/server/app/index.rsc,sha256=vmatRTBPWxJZtvr1uWRJMNxCsyfGNiqclSfYpYKDIho,2438
71
+ voice_mode/frontend/.next/server/app/page.js,sha256=CwO7XFN4VWvBwke5Kimc0KDZ-BvFml1ZuxY-zI9mYAc,611921
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=XHmDuNAQqCaahcqUwFTX1PakdHeyBzTsFhyJrli80nw,4193
74
- voice_mode/frontend/.next/server/app/_not-found/page.js,sha256=dYHueiwH2ZjmffdQ6zkBlxgFoQdhVWdc6c4YPfomaAw,3387
73
+ voice_mode/frontend/.next/server/app/page_client-reference-manifest.js,sha256=Z4Bd0RUDPoXFlZQ478j4EJFGt9vB3DK1luvD4ALg4rM,4193
74
+ voice_mode/frontend/.next/server/app/_not-found/page.js,sha256=YlW1TPm-30LnP49GmXPS8pqtDualzNdu9xqeYJZ8Tds,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=P1mmJbR9pza5NKFzrmiMfsV-ZuVxznITRygTD29J_9k,4297
77
- voice_mode/frontend/.next/server/app/api/connection-details/route.js,sha256=jfBJANafIccNbNYfvNRWmMV4p4H_6eiec76bCzIZEyQ,121020
76
+ voice_mode/frontend/.next/server/app/_not-found/page_client-reference-manifest.js,sha256=kcYxmvRnFJwEz4einEzQN-L2ubyToTN5BTSbXhBV6Is,4297
77
+ voice_mode/frontend/.next/server/app/api/connection-details/route.js,sha256=LZumISCI5IqU-zVfh9ilg9je1PEFXT2uvBFSDvK4frQ,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=MiYyW0p5vhSaNZw9NC99pHNCpqFR30gO0D6bWOozWhA,66228
79
+ voice_mode/frontend/.next/server/app/favicon.ico/route.js,sha256=7dNyT_Ey3jl6zCvLiZz7wloMEsq6tdDrz_5eI6WGRgQ,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=ObwuHEAi2MvxwXpKkoOEiP7XgzL9MzawER3GLX3PagY,95359
84
+ voice_mode/frontend/.next/server/chunks/994.js,sha256=kE1o3M7WVhkIOuB5bOYjAxYtKNZ_STZozSkSpPaWe3M,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=JtHchVYZBNKEw901BEskOgDb_7Mdq59LSMyBGg0Kkz4,6752
87
- voice_mode/frontend/.next/server/pages/500.html,sha256=4q5PDH_jZZQJREA6qiKswD8F6DFBOJeCarZcgMFQkFM,1995
86
+ voice_mode/frontend/.next/server/pages/404.html,sha256=pwcvJYdFEK8rmRRPlogSqZvTWTm6h4U8dAcyhamq_H4,6752
87
+ voice_mode/frontend/.next/server/pages/500.html,sha256=LAW0F33TQ8aUABZ0ADLJM8ar4fuTbgav1fvJscLGAzk,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,68 +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=A5R9Hg_KyYiueUta0E3vAHtRGFsn3qHe4vyYgY2ptcM,4742
96
- voice_mode/frontend/.next/standalone/.next/BUILD_ID,sha256=wZpZpi5iuPDVVJBfxWEOOV3OqzxSToLCA3G8xdR36d0,21
97
- voice_mode/frontend/.next/standalone/.next/app-build-manifest.json,sha256=5yuZcsv1imKAsH6lBNebgZA2BNzJu_67C7uOy0BtdsY,1010
95
+ voice_mode/frontend/.next/standalone/server.js,sha256=6LMOk58_hSeAKvZ2Pimcom5tIsd5wePRSFNRnua-kOM,4742
96
+ voice_mode/frontend/.next/standalone/.next/BUILD_ID,sha256=QVXPIuekzsDva2SdPnIKmoUOTII1fVSw5pA4kDzj89I,21
97
+ voice_mode/frontend/.next/standalone/.next/app-build-manifest.json,sha256=2NG4Ehl5GWc-uIZ9_eP4LwAg_mk-j29g6q4Mumedr8Q,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=2bbOS0fslKLmhKBlkhI3k5eAIQ8IHVCgnhw8oog5_ec,968
99
+ voice_mode/frontend/.next/standalone/.next/build-manifest.json,sha256=GU-ZjwdrC_poIqE8mIKCGhJ1B8ne7_4WOjWJ8BfbjHw,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=nZa7VRWUgcrqNn0JlPDmAtextEEUISuuc0HDx0r0FBk,959
101
+ voice_mode/frontend/.next/standalone/.next/prerender-manifest.json,sha256=kpe7TGSnG1KSpE4tbeKa5W3sGzRrNe8NEeBrqjkxeIQ,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=kxtLzv3XKyjrBP2zJhSewbB30pmM3PrB-Vvh3Fa2_uw,4750
103
+ voice_mode/frontend/.next/standalone/.next/required-server-files.json,sha256=qFpe5GloJ428iDUb4Fr57RF8Un86fatHen9y8Cg9OUg,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=QZR63MDsX8UpcIzoV2TQDQCvsUByXmxVKQLA-ZxjPEs,888
107
+ voice_mode/frontend/.next/standalone/.next/server/middleware-build-manifest.js,sha256=SHNVJwuwdVH1b9ZAsLZt9mBg7H3R7LYklPlp9PiUMX8,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=SIFrElz5L6MOgLaalOdUNxKgOOAsk5CPpKFvdgimDR4,229
111
- voice_mode/frontend/.next/standalone/.next/server/next-font-manifest.json,sha256=BcTwUQ1vFRtAdnRITc9a_dcKGoyDMMIIfTBJoX7tN44,200
110
+ voice_mode/frontend/.next/standalone/.next/server/next-font-manifest.js,sha256=gr2Forq0IiB2X2_1DNDcyvtk1cbMQ9X10G08RDNXrtc,229
111
+ voice_mode/frontend/.next/standalone/.next/server/next-font-manifest.json,sha256=KJpsMR8cUCUN_5stJKBgv3DlpSovlP8fPrK0VFIeUCM,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=tzkJf-wI-qXIpiYkkBIVf1rtx5vcRIx5bjckhlNwZDs,84
114
+ voice_mode/frontend/.next/standalone/.next/server/server-reference-manifest.json,sha256=1HEqWylXC1r-ceJko1uyNH6m2fmr2unrBLgONizUcm4,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=JtHchVYZBNKEw901BEskOgDb_7Mdq59LSMyBGg0Kkz4,6752
116
+ voice_mode/frontend/.next/standalone/.next/server/app/_not-found.html,sha256=pwcvJYdFEK8rmRRPlogSqZvTWTm6h4U8dAcyhamq_H4,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=tY8GSaSgjYxB9RK7wdeYmWdY_b2DzcEm9kB_2_ZTBjw,3621
118
+ voice_mode/frontend/.next/standalone/.next/server/app/_not-found.rsc,sha256=KbIYouLmuNRzGLQWb0cJTIt33v3G8B3XkrzVxv-JOko,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=uAijH-3kqpe24o6X7q7p_ksf6DiVhl3rX0q69CDd_DI,5396
121
+ voice_mode/frontend/.next/standalone/.next/server/app/index.html,sha256=49dylPk-RwHa3VhrHaliJubltR54ix0-gfvmjpPMPUg,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=jBsFaGXK5V4qNKOQHkhYvO4O6rrt-z3BVOxCRu03VBg,2438
124
- voice_mode/frontend/.next/standalone/.next/server/app/page.js,sha256=hviSCmka5yPVjS4lUHfLOBunPhxQATsswiou1bRAAx0,611922
123
+ voice_mode/frontend/.next/standalone/.next/server/app/index.rsc,sha256=vmatRTBPWxJZtvr1uWRJMNxCsyfGNiqclSfYpYKDIho,2438
124
+ voice_mode/frontend/.next/standalone/.next/server/app/page.js,sha256=CwO7XFN4VWvBwke5Kimc0KDZ-BvFml1ZuxY-zI9mYAc,611921
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=XHmDuNAQqCaahcqUwFTX1PakdHeyBzTsFhyJrli80nw,4193
127
- voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page.js,sha256=dYHueiwH2ZjmffdQ6zkBlxgFoQdhVWdc6c4YPfomaAw,3387
126
+ voice_mode/frontend/.next/standalone/.next/server/app/page_client-reference-manifest.js,sha256=Z4Bd0RUDPoXFlZQ478j4EJFGt9vB3DK1luvD4ALg4rM,4193
127
+ voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page.js,sha256=YlW1TPm-30LnP49GmXPS8pqtDualzNdu9xqeYJZ8Tds,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=P1mmJbR9pza5NKFzrmiMfsV-ZuVxznITRygTD29J_9k,4297
130
- voice_mode/frontend/.next/standalone/.next/server/app/api/connection-details/route.js,sha256=jfBJANafIccNbNYfvNRWmMV4p4H_6eiec76bCzIZEyQ,121020
129
+ voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js,sha256=kcYxmvRnFJwEz4einEzQN-L2ubyToTN5BTSbXhBV6Is,4297
130
+ voice_mode/frontend/.next/standalone/.next/server/app/api/connection-details/route.js,sha256=LZumISCI5IqU-zVfh9ilg9je1PEFXT2uvBFSDvK4frQ,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=MiYyW0p5vhSaNZw9NC99pHNCpqFR30gO0D6bWOozWhA,66228
132
+ voice_mode/frontend/.next/standalone/.next/server/app/favicon.ico/route.js,sha256=7dNyT_Ey3jl6zCvLiZz7wloMEsq6tdDrz_5eI6WGRgQ,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=ObwuHEAi2MvxwXpKkoOEiP7XgzL9MzawER3GLX3PagY,95359
138
- voice_mode/frontend/.next/standalone/.next/server/pages/404.html,sha256=JtHchVYZBNKEw901BEskOgDb_7Mdq59LSMyBGg0Kkz4,6752
139
- voice_mode/frontend/.next/standalone/.next/server/pages/500.html,sha256=4q5PDH_jZZQJREA6qiKswD8F6DFBOJeCarZcgMFQkFM,1995
137
+ voice_mode/frontend/.next/standalone/.next/server/chunks/994.js,sha256=kE1o3M7WVhkIOuB5bOYjAxYtKNZ_STZozSkSpPaWe3M,95359
138
+ voice_mode/frontend/.next/standalone/.next/server/pages/404.html,sha256=pwcvJYdFEK8rmRRPlogSqZvTWTm6h4U8dAcyhamq_H4,6752
139
+ voice_mode/frontend/.next/standalone/.next/server/pages/500.html,sha256=LAW0F33TQ8aUABZ0ADLJM8ar4fuTbgav1fvJscLGAzk,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/998kY2RB1umOQfi6UBnLh/_buildManifest.js,sha256=UGi5XJhF4u-NRxMqU360JM2afxCS1essSVUEqY6sl5c,224
147
+ voice_mode/frontend/.next/static/998kY2RB1umOQfi6UBnLh/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
146
148
  voice_mode/frontend/.next/static/chunks/117-40bc79a2b97edb21.js,sha256=sKMdOWIlJELukIK1QNRwH8hweTr_NgWzvc-bHWrZ9zM,123528
147
149
  voice_mode/frontend/.next/static/chunks/144d3bae-2d5f122b82426d88.js,sha256=tGa8lG7iuv-oxVEA7BdFJPmskDLIVXYnDOBb6j4_zp8,383332
148
150
  voice_mode/frontend/.next/static/chunks/471-bd4b96a33883dfa2.js,sha256=qT-fK-XMK3eAlXh2APHuRcKfG9EriUu-tXTEcNYWUp0,194375
149
151
  voice_mode/frontend/.next/static/chunks/fd9d1056-af324d327b243cf1.js,sha256=uL3flIHYWdZI4eBQ-DIus97-PdP5vRP0xE3W8uz1q4A,172834
150
152
  voice_mode/frontend/.next/static/chunks/framework-f66176bb897dc684.js,sha256=QlDVPwvHVuzi3daQoAit0df9yIdSjGcfTf6NkW13h7c,139978
151
153
  voice_mode/frontend/.next/static/chunks/main-3163eca598b76a9f.js,sha256=IwuNOgi-ik3KFA_tnaPvAfRY5q6hTp4DRK1lkjkWdwQ,116431
152
- voice_mode/frontend/.next/static/chunks/main-app-1caffd758cfd3d20.js,sha256=gLyNETVg4iGR5XC6Oo1KsCTDF5h6bc12uHX24a1Rj-c,461
154
+ voice_mode/frontend/.next/static/chunks/main-app-2233caae67bf73bd.js,sha256=QhD2DYA0PaUAJXaxXssb3TNNLt_M5l_yxwCdc8ymzlg,461
153
155
  voice_mode/frontend/.next/static/chunks/polyfills-42372ed130431b0a.js,sha256=CXPB1kyIrcjjyVBBDLWLKI9yEY1ZZbeASUON648vloM,112594
154
156
  voice_mode/frontend/.next/static/chunks/webpack-0ea9b80f19935b70.js,sha256=1Us0m_ZxEgMEb2DAN4ePlpq9Fv7QqUxcuV2CqICEB5w,3605
155
- voice_mode/frontend/.next/static/chunks/app/layout-06d943bee7b4ecc3.js,sha256=1Pz_9e4Nq4iK-D-4DbVDM1m5G0z9pCgSM3vTDJRhohw,507
156
- voice_mode/frontend/.next/static/chunks/app/page-6bcf7700ed80ad2d.js,sha256=zb2H9gB7ocyMRHl_RjYtip9hCiJ5b2cRpBjHHr4h7Po,7666
157
+ voice_mode/frontend/.next/static/chunks/app/layout-53ce2eb95847e7bc.js,sha256=1XaHUUrcQVziP4rw0P9chsBrxDFSaEId3QfmKYywEZY,507
158
+ voice_mode/frontend/.next/static/chunks/app/page-9c7f7be4378697be.js,sha256=6NzKq62pOtHBHoeN-qRefhWN9W4uMLUDwJevHhx1XFE,7666
157
159
  voice_mode/frontend/.next/static/chunks/app/_not-found/page-5011050e402ab9c8.js,sha256=u5LYOU4LZ2HFeEcz6xZqSflSnU4WDt-TnQNu3CdcEWk,1745
158
160
  voice_mode/frontend/.next/static/chunks/pages/_app-72b849fbd24ac258.js,sha256=QN-PY1h1HDIO4K4ZYwFl6rtEeaxWCynYauVLK_oWmzE,280
159
161
  voice_mode/frontend/.next/static/chunks/pages/_error-7ba65e1336b92748.js,sha256=oxr2dz6MkKWnm3jN3fWb2RPhCHB4-JgrzVMS_wTNr_E,247
@@ -161,12 +163,10 @@ voice_mode/frontend/.next/static/css/a2f49a47752b5010.css,sha256=7geCVBj6YoIVhB9
161
163
  voice_mode/frontend/.next/static/media/01099be941da1820-s.woff2,sha256=ZaNN8qxUZFV4kxOD_j6TGAYAHwR01MPDQloeIbMgCeg,10436
162
164
  voice_mode/frontend/.next/static/media/39883d31a7792467-s.p.woff2,sha256=i_qVPOm6vZ-H4B0Mk_d5yUQR_YKsz4XRc-8J2R_QWKs,14620
163
165
  voice_mode/frontend/.next/static/media/6368404d2e8d66fe-s.woff2,sha256=2GFQ1JjbLJOSmwrIsgCHPVMSJpcx2QX2i13kJbg8IFE,4464
164
- voice_mode/frontend/.next/static/vsKkKXXsjdAp1tEHDzSXQ/_buildManifest.js,sha256=UGi5XJhF4u-NRxMqU360JM2afxCS1essSVUEqY6sl5c,224
165
- voice_mode/frontend/.next/static/vsKkKXXsjdAp1tEHDzSXQ/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
166
166
  voice_mode/frontend/.next/types/package.json,sha256=49WkothVGqUsWgHSoO-y4GotlxG09cXx0g3m4hgH4s0,18
167
- voice_mode/frontend/.next/types/app/layout.ts,sha256=ONrrf_d1HL5q_gvGtcTvgklJCDwCtRDNVhYCFZjbt6Q,3511
168
- voice_mode/frontend/.next/types/app/page.ts,sha256=Lh1rHR1Ay0W2N2tztqt0rUHNAmmB3GB0txwwUiPN2lc,3499
169
- voice_mode/frontend/.next/types/app/api/connection-details/route.ts,sha256=eMqniyxfAikKvJRHjPvjp-a0xenrjzwYH8G-dvUyZqc,8531
167
+ voice_mode/frontend/.next/types/app/layout.ts,sha256=xu89i86WkYNW2zs6-jC6zuyZ2n0m3McUXirV6BrFAE8,3511
168
+ voice_mode/frontend/.next/types/app/page.ts,sha256=N1VDAkVfrLe-g3Y2iVQ77UcCW2-nGH-rjLZ37y9oF_k,3499
169
+ voice_mode/frontend/.next/types/app/api/connection-details/route.ts,sha256=yxEO-iYC2jJSjARe4XDRBdtREka7ZDDB55LmhGE0-1Y,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,21 +201,21 @@ 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=V6a5sbCJVYARFg5NQpeXc-P63BW3eZA8WUFNk3l5GW0,8776
204
- voice_mode/tools/converse.py,sha256=1JagT7J6VYnjdcuLhTBscdLndNKrTQ7Xcvfeo9dVcjU,98622
204
+ voice_mode/tools/converse.py,sha256=vvvT6qbbkON3gDMAlcDa-Q1VnJNx5vfhCd0Ope7_AkQ,99090
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
208
208
  voice_mode/tools/providers.py,sha256=KuO5lFmSHjYUoK3hjIqx3l7XeNOLPMAeXQnTtH00Iow,7768
209
- voice_mode/tools/service.py,sha256=Nn9TtrFMfw3o_6G8SCiS5KTcrCSqIBXch5ww4uwIcbU,46033
209
+ voice_mode/tools/service.py,sha256=azRkvDG-nYy2Fyum-GeT1ZonBgeYyaNnR0RBLLsq4IY,46336
210
210
  voice_mode/tools/statistics.py,sha256=XMljbNCBqatPgyh6rq1LZ3ICNEmji2c82P7pyCZfr8Q,9326
211
211
  voice_mode/tools/voice_registry.py,sha256=iw3O4C8lsdon9fr1ZMchc0Uq7MmSmTOYReY9NfQlEhU,2354
212
212
  voice_mode/tools/services/list_versions.py,sha256=r_FzHG_2dVxEzDXfxVfPInchGq1h9_4yvJ9ySkinsJk,2573
213
213
  voice_mode/tools/services/version_info.py,sha256=K5CzUlaIpHJKDnudfCeIydOwIhaDTOM59e8FQ1Yyj4A,11344
214
- voice_mode/tools/services/kokoro/install.py,sha256=G5rIXY0jfax0ayMqooHgmT-zSjibuNfhwmat3kfZqtE,16459
214
+ voice_mode/tools/services/kokoro/install.py,sha256=12VwyTQNZM1AiUu-jiyF1FKJ4cLSHSdrpJmIhbo1WIY,16762
215
215
  voice_mode/tools/services/kokoro/uninstall.py,sha256=ww6x56uI5DP5IYvGK_UVEOyptGk9-Kj8RS_6nz-vVBE,9125
216
216
  voice_mode/tools/services/livekit/__init__.py,sha256=AzA9Bap9CNQRhtNKPxC5XO5H9Ihkd6tO2wnZEBfEfyk,169
217
217
  voice_mode/tools/services/livekit/frontend.py,sha256=-yu1K-mOUavY_RLI1CrieZgPFMrQvCdYh8F9qz4vxhQ,25809
218
- voice_mode/tools/services/livekit/install.py,sha256=1_LcZazXx_rygYs-H7MnHVBCu2QUWK6V51qFrQq_YHE,13043
218
+ voice_mode/tools/services/livekit/install.py,sha256=NrxyMEOMLqqJ-vIKmHcFanA7RCN6TctVw8SPVCOqWxc,13346
219
219
  voice_mode/tools/services/livekit/production_server.py,sha256=8w8gBBs6O8nMqfzNQmsX6hkd46yVzwL3J-Zc1Dhe-bk,10324
220
220
  voice_mode/tools/services/livekit/uninstall.py,sha256=3XOYzNLQf7r9P4vORtoVb1bvJVyciiEPmt9UQh2ADBE,6146
221
221
  voice_mode/tools/services/whisper/__init__.py,sha256=xyYW6M3n7dUUlmuiK5gNfv82kp0Jd4KHJ5Bsz2gE-s8,928
@@ -223,7 +223,7 @@ voice_mode/tools/services/whisper/install.py,sha256=rqXbDMpC1bsL-YYVlZTiK-jOk4F7
223
223
  voice_mode/tools/services/whisper/list_models.py,sha256=Qvz2hlws48ZrLYp4_bUtCWVGLAZTbTo-s5x4wtyF9GQ,2415
224
224
  voice_mode/tools/services/whisper/model_active.py,sha256=RnaffTHJYrBburpA6LCJQzP_wjHFPKZXKPs7QItTfJw,1693
225
225
  voice_mode/tools/services/whisper/model_benchmark.py,sha256=nGGQvvQFzyvh_KvUFHh0Qf6e-qMY03ZYfSDECOmudXc,5803
226
- voice_mode/tools/services/whisper/model_install.py,sha256=EDIyYkJrRjbQjZkTrQawcWMaBwL6DsWWcqqMgebZQ5k,8073
226
+ voice_mode/tools/services/whisper/model_install.py,sha256=PxfvPUU0XGeE12DkQRhhvDUtwEbcuSF_1O78dwpsDSs,11672
227
227
  voice_mode/tools/services/whisper/model_remove.py,sha256=zlt4C7uxvdPSUNge-dMsfLNYTPDwWa6eXRBGGVzV11Y,1139
228
228
  voice_mode/tools/services/whisper/models.py,sha256=qUILFOVxZbuTReP46sKPHiJU5YGnjh1ls700Q2byywU,14906
229
229
  voice_mode/tools/services/whisper/uninstall.py,sha256=M81JCwCSbmV_tnuXB1jkn-V9BhSqmwAQVpHKbb62skc,8393
@@ -240,7 +240,7 @@ voice_mode/utils/services/kokoro_helpers.py,sha256=VE3wa9cI2ZIc95ro58aaKVKdAE7DP
240
240
  voice_mode/utils/services/livekit_helpers.py,sha256=OFw0GxVIJAZE2m9dGCDZVegWD-LnMO6iSjcOUDgAA9U,3627
241
241
  voice_mode/utils/services/whisper_helpers.py,sha256=plNr64qNvY5gTlixvLflkB7gS-XvjHpB-YqWc9di0YM,18591
242
242
  voice_mode/utils/services/whisper_version.py,sha256=68e0Oa-tG73IJlla-e3P0sh_qzBF4ToYBe4KKZ2FvEY,4861
243
- voice_mode-2.28.2.dist-info/METADATA,sha256=LGW_qdQRGAsmJmd6UJQXAYgTY99Bu99zkCiQ5rVHWsQ,24918
244
- voice_mode-2.28.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
245
- voice_mode-2.28.2.dist-info/entry_points.txt,sha256=hS5faHc0R5Fde3Z_uvz8u6YkRIYtvh17X8tVN90Rbro,95
246
- voice_mode-2.28.2.dist-info/RECORD,,
243
+ voice_mode-2.29.0.dist-info/METADATA,sha256=2PU1CDIRkavSCCIuvSos6x1uBx6F26mSooEoVe61tCg,25137
244
+ voice_mode-2.29.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
245
+ voice_mode-2.29.0.dist-info/entry_points.txt,sha256=hS5faHc0R5Fde3Z_uvz8u6YkRIYtvh17X8tVN90Rbro,95
246
+ voice_mode-2.29.0.dist-info/RECORD,,