voice-mode 2.32.0__py3-none-any.whl → 2.33.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 (71) hide show
  1. voice_mode/__version__.py +1 -1
  2. voice_mode/config.py +1 -1
  3. voice_mode/frontend/.next/BUILD_ID +1 -1
  4. voice_mode/frontend/.next/app-build-manifest.json +5 -5
  5. voice_mode/frontend/.next/build-manifest.json +3 -3
  6. voice_mode/frontend/.next/next-minimal-server.js.nft.json +1 -1
  7. voice_mode/frontend/.next/next-server.js.nft.json +1 -1
  8. voice_mode/frontend/.next/prerender-manifest.json +1 -1
  9. voice_mode/frontend/.next/required-server-files.json +1 -1
  10. voice_mode/frontend/.next/server/app/_not-found/page.js +1 -1
  11. voice_mode/frontend/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  12. voice_mode/frontend/.next/server/app/_not-found.html +1 -1
  13. voice_mode/frontend/.next/server/app/_not-found.rsc +1 -1
  14. voice_mode/frontend/.next/server/app/api/connection-details/route.js +2 -2
  15. voice_mode/frontend/.next/server/app/favicon.ico/route.js +2 -2
  16. voice_mode/frontend/.next/server/app/index.html +1 -1
  17. voice_mode/frontend/.next/server/app/index.rsc +2 -2
  18. voice_mode/frontend/.next/server/app/page.js +3 -3
  19. voice_mode/frontend/.next/server/app/page_client-reference-manifest.js +1 -1
  20. voice_mode/frontend/.next/server/chunks/994.js +2 -2
  21. voice_mode/frontend/.next/server/middleware-build-manifest.js +1 -1
  22. voice_mode/frontend/.next/server/next-font-manifest.js +1 -1
  23. voice_mode/frontend/.next/server/next-font-manifest.json +1 -1
  24. voice_mode/frontend/.next/server/pages/404.html +1 -1
  25. voice_mode/frontend/.next/server/pages/500.html +1 -1
  26. voice_mode/frontend/.next/server/server-reference-manifest.json +1 -1
  27. voice_mode/frontend/.next/standalone/.next/BUILD_ID +1 -1
  28. voice_mode/frontend/.next/standalone/.next/app-build-manifest.json +5 -5
  29. voice_mode/frontend/.next/standalone/.next/build-manifest.json +3 -3
  30. voice_mode/frontend/.next/standalone/.next/prerender-manifest.json +1 -1
  31. voice_mode/frontend/.next/standalone/.next/required-server-files.json +1 -1
  32. voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page.js +1 -1
  33. voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  34. voice_mode/frontend/.next/standalone/.next/server/app/_not-found.html +1 -1
  35. voice_mode/frontend/.next/standalone/.next/server/app/_not-found.rsc +1 -1
  36. voice_mode/frontend/.next/standalone/.next/server/app/api/connection-details/route.js +2 -2
  37. voice_mode/frontend/.next/standalone/.next/server/app/favicon.ico/route.js +2 -2
  38. voice_mode/frontend/.next/standalone/.next/server/app/index.html +1 -1
  39. voice_mode/frontend/.next/standalone/.next/server/app/index.rsc +2 -2
  40. voice_mode/frontend/.next/standalone/.next/server/app/page.js +3 -3
  41. voice_mode/frontend/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  42. voice_mode/frontend/.next/standalone/.next/server/chunks/994.js +2 -2
  43. voice_mode/frontend/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  44. voice_mode/frontend/.next/standalone/.next/server/next-font-manifest.js +1 -1
  45. voice_mode/frontend/.next/standalone/.next/server/next-font-manifest.json +1 -1
  46. voice_mode/frontend/.next/standalone/.next/server/pages/404.html +1 -1
  47. voice_mode/frontend/.next/standalone/.next/server/pages/500.html +1 -1
  48. voice_mode/frontend/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  49. voice_mode/frontend/.next/standalone/server.js +1 -1
  50. voice_mode/frontend/.next/static/chunks/app/{layout-4c59da29fcf0456f.js → layout-d124af177c48e1c5.js} +1 -1
  51. voice_mode/frontend/.next/static/chunks/app/{page-017e11b769f3a746.js → page-ed5ce28c62d0c8ef.js} +1 -1
  52. voice_mode/frontend/.next/static/chunks/{main-app-822552bd94497f44.js → main-app-0aa7560603c1f114.js} +1 -1
  53. voice_mode/frontend/.next/trace +43 -43
  54. voice_mode/frontend/.next/types/app/api/connection-details/route.ts +1 -1
  55. voice_mode/frontend/.next/types/app/layout.ts +1 -1
  56. voice_mode/frontend/.next/types/app/page.ts +1 -1
  57. voice_mode/prompts/converse.py +0 -1
  58. voice_mode/templates/__init__.py +1 -0
  59. voice_mode/templates/scripts/__init__.py +1 -0
  60. voice_mode/templates/scripts/start-whisper-server.sh +80 -0
  61. voice_mode/tools/services/whisper/install.py +88 -26
  62. voice_mode/tools/services/whisper/model_install.py +38 -47
  63. voice_mode/tools/services/whisper/models.py +1 -1
  64. voice_mode/utils/services/coreml_setup.py +234 -0
  65. voice_mode/utils/services/whisper_helpers.py +57 -32
  66. {voice_mode-2.32.0.dist-info → voice_mode-2.33.0.dist-info}/METADATA +3 -3
  67. {voice_mode-2.32.0.dist-info → voice_mode-2.33.0.dist-info}/RECORD +71 -67
  68. /voice_mode/frontend/.next/static/{e8aNOVoFA4vUks2Chn7qv → dk2w9pXeSUc6w1YbYi6aJ}/_buildManifest.js +0 -0
  69. /voice_mode/frontend/.next/static/{e8aNOVoFA4vUks2Chn7qv → dk2w9pXeSUc6w1YbYi6aJ}/_ssgManifest.js +0 -0
  70. {voice_mode-2.32.0.dist-info → voice_mode-2.33.0.dist-info}/WHEEL +0 -0
  71. {voice_mode-2.32.0.dist-info → voice_mode-2.33.0.dist-info}/entry_points.txt +0 -0
@@ -9,6 +9,8 @@ import shutil
9
9
  from pathlib import Path
10
10
  from typing import Optional, List, Dict, Union
11
11
 
12
+ from .coreml_setup import setup_coreml_venv, get_coreml_python
13
+
12
14
  logger = logging.getLogger("voice-mode")
13
15
 
14
16
  def find_whisper_server() -> Optional[str]:
@@ -36,14 +38,23 @@ def find_whisper_server() -> Optional[str]:
36
38
 
37
39
 
38
40
  def find_whisper_model() -> Optional[str]:
39
- """Find a whisper model file."""
40
- from voice_mode.config import WHISPER_MODEL_PATH
41
+ """Find the active whisper model file based on VOICEMODE_WHISPER_MODEL setting."""
42
+ from voice_mode.config import WHISPER_MODEL_PATH, WHISPER_MODEL
43
+
44
+ # First try to find the specific model configured in VOICEMODE_WHISPER_MODEL
45
+ model_name = WHISPER_MODEL # This reads from env/config
46
+ model_filename = f"ggml-{model_name}.bin"
41
47
 
42
48
  # Check configured model path
43
49
  model_dir = Path(WHISPER_MODEL_PATH)
44
50
  if model_dir.exists():
45
- # Look for ggml model files
51
+ specific_model = model_dir / model_filename
52
+ if specific_model.exists():
53
+ return str(specific_model)
54
+
55
+ # Fall back to any model if configured model not found
46
56
  for model_file in model_dir.glob("ggml-*.bin"):
57
+ logger.warning(f"Configured model {model_name} not found, using {model_file.name}")
47
58
  return str(model_file)
48
59
 
49
60
  # Check default installation paths
@@ -54,7 +65,13 @@ def find_whisper_model() -> Optional[str]:
54
65
 
55
66
  for default_path in default_paths:
56
67
  if default_path.exists():
68
+ specific_model = default_path / model_filename
69
+ if specific_model.exists():
70
+ return str(specific_model)
71
+
72
+ # Fall back to any model
57
73
  for model_file in default_path.glob("ggml-*.bin"):
74
+ logger.warning(f"Configured model {model_name} not found, using {model_file.name}")
58
75
  return str(model_file)
59
76
 
60
77
  return None
@@ -63,7 +80,8 @@ def find_whisper_model() -> Optional[str]:
63
80
  async def download_whisper_model(
64
81
  model: str,
65
82
  models_dir: Union[str, Path],
66
- force_download: bool = False
83
+ force_download: bool = False,
84
+ skip_core_ml: bool = False
67
85
  ) -> Dict[str, Union[bool, str]]:
68
86
  """
69
87
  Download a single Whisper model.
@@ -72,6 +90,7 @@ async def download_whisper_model(
72
90
  model: Model name (e.g., 'large-v2', 'base.en')
73
91
  models_dir: Directory to download models to
74
92
  force_download: Re-download even if model exists
93
+ skip_core_ml: Skip Core ML conversion even on Apple Silicon
75
94
 
76
95
  Returns:
77
96
  Dict with 'success' and optional 'error' or 'path'
@@ -144,8 +163,11 @@ async def download_whisper_model(
144
163
  "error": f"Model file not found after download: {model_path}"
145
164
  }
146
165
 
147
- # Check for Core ML support on Apple Silicon
148
- if platform.system() == "Darwin" and platform.machine() == "arm64":
166
+ # Initialize core_ml_result
167
+ core_ml_result = None
168
+
169
+ # Check for Core ML support on Apple Silicon (unless explicitly skipped)
170
+ if platform.system() == "Darwin" and platform.machine() == "arm64" and not skip_core_ml:
149
171
  # Check if Core ML dependencies are needed
150
172
  requirements_file = Path(models_dir) / "requirements-coreml.txt"
151
173
  if requirements_file.exists() and shutil.which("uv"):
@@ -185,15 +207,22 @@ async def download_whisper_model(
185
207
  else:
186
208
  logger.warning(f"Core ML conversion failed ({error_category}): {core_ml_result.get('error', 'Unknown error')}")
187
209
 
188
- # Always include Core ML status in response
189
- return {
210
+ # Build response with appropriate status
211
+ response = {
190
212
  "success": True,
191
213
  "path": str(model_path),
192
- "message": f"Model {model} downloaded successfully",
193
- "core_ml_status": core_ml_result,
194
- "acceleration": "coreml" if core_ml_result.get("success") else "metal"
214
+ "message": f"Model {model} downloaded successfully"
195
215
  }
196
216
 
217
+ # Add Core ML status if attempted
218
+ if core_ml_result:
219
+ response["core_ml_status"] = core_ml_result
220
+ response["acceleration"] = "coreml" if core_ml_result.get("success") else "metal"
221
+ else:
222
+ response["acceleration"] = "metal"
223
+
224
+ return response
225
+
197
226
  except subprocess.CalledProcessError as e:
198
227
  logger.error(f"Failed to download model {model}: {e.stderr}")
199
228
  return {
@@ -255,28 +284,24 @@ async def convert_to_coreml(
255
284
  logger.info(f"Converting {model} to Core ML format...")
256
285
 
257
286
  try:
258
- # Check if we should use uv for Python dependencies
259
- # Try to find the voicemode project root for uv
260
- voicemode_root = None
261
- current = Path(__file__).parent
262
- while current != current.parent:
263
- if (current / "pyproject.toml").exists():
264
- with open(current / "pyproject.toml") as f:
265
- content = f.read()
266
- if 'name = "voice-mode"' in content or 'name = "voicemode"' in content:
267
- voicemode_root = current
268
- break
269
- current = current.parent
287
+ # First, try to get existing CoreML Python environment
288
+ coreml_python = get_coreml_python(whisper_dir)
289
+
290
+ # If no suitable environment exists, set one up
291
+ if not coreml_python:
292
+ logger.info("Setting up CoreML Python environment...")
293
+ setup_result = setup_coreml_venv(whisper_dir)
294
+ if setup_result["success"]:
295
+ coreml_python = setup_result.get("python_path")
296
+ else:
297
+ logger.warning(f"Could not setup CoreML environment: {setup_result.get('error')}")
270
298
 
271
- # If we found voicemode root and uv is available, use it
272
- if voicemode_root and shutil.which("uv"):
273
- # Run the Python script directly with uv instead of using the bash wrapper
274
- logger.info("Using uv for Core ML conversion with Python dependencies")
275
- # Run from the whisper models directory
299
+ if coreml_python:
300
+ # Use the CoreML-enabled Python environment
301
+ logger.info(f"Using CoreML Python environment: {coreml_python}")
276
302
  script_path = whisper_dir / "models" / "convert-whisper-to-coreml.py"
277
303
  result = subprocess.run(
278
- ["uv", "run", "--project", str(voicemode_root), "python",
279
- str(script_path),
304
+ [coreml_python, str(script_path),
280
305
  "--model", model, "--encoder-only", "True", "--optimize-ane", "True"],
281
306
  cwd=str(whisper_dir / "models"),
282
307
  capture_output=True,
@@ -301,8 +326,8 @@ async def convert_to_coreml(
301
326
  shutil.rmtree(coreml_path, ignore_errors=True)
302
327
  shutil.move(str(compiled_path), str(coreml_path))
303
328
  else:
304
- # Fallback to original bash script
305
- logger.info("Using standard Python for Core ML conversion")
329
+ # No suitable Python environment available
330
+ logger.warning("No suitable Python environment for CoreML conversion")
306
331
  # Run from the whisper models directory where the script is located
307
332
  script_dir = convert_script.parent
308
333
  result = subprocess.run(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: voice-mode
3
- Version: 2.32.0
3
+ Version: 2.33.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
@@ -129,10 +129,10 @@ After installation, just run:
129
129
  ```bash
130
130
  # With OpenAI API (cloud-based, requires API key)
131
131
  export OPENAI_API_KEY=your-openai-key
132
- claude converse
132
+ claude /voicemode:converse
133
133
 
134
134
  # Or use free local services (Voice Mode will offer to install them)
135
- claude converse
135
+ claude /voicemode:converse
136
136
  ```
137
137
 
138
138
  ### Manual Installation
@@ -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=hgahHf2MmpFvfEMrou5GdXPC2rOzBxcTKlK_Qsj3NO4,101
3
+ voice_mode/__version__.py,sha256=CRhs38Ap7iHByLstXhCBTVuTJEUqfH_XeJRBxdE1j7k,101
4
4
  voice_mode/cli.py,sha256=Oa37Rr9N6hO-HANZ281FKKqfSL8uutZPn3HNRjpRDXw,71154
5
- voice_mode/config.py,sha256=Y4HGo2EHIF63qtr3VNFlyxxODTjM30PrcNlIiX7AOpc,27862
5
+ voice_mode/config.py,sha256=8Vdau7nR-eGV4Vm_81TpBRwKp_1KAMCTaB8FCsrGkGg,27858
6
6
  voice_mode/conversation_logger.py,sha256=Nar92xabhaVmMKdZdLmgoYckK9fGAVVYWdass3-EI1I,9363
7
7
  voice_mode/core.py,sha256=WACixDHS23UMhmBJKN2zgDqeWtpAdXHOSduDc3fmOio,28452
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=bjVy2DxjlkGS4cFC6hCjk0KD-NG_2J1wCS2WhmfKYrs,21
37
- voice_mode/frontend/.next/app-build-manifest.json,sha256=kj1WZ_ikdWr-11TDTqX7s7PmksrJH5ifnD9qVY8uNgc,1010
36
+ voice_mode/frontend/.next/BUILD_ID,sha256=kC071XEjPfFOJ77jIxgaMd-Ma0CJLlY8dffE7VcaHMU,21
37
+ voice_mode/frontend/.next/app-build-manifest.json,sha256=8_o0-5jAmI99n0J4r-ehnVLpYEFWWfNBbUCOP2-iZoc,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=3aPVrpw3liEO8YZIJtN3cSvgQpIchuUj7xn0BNCoKV0,968
39
+ voice_mode/frontend/.next/build-manifest.json,sha256=0Kn9DQC-9PuVDF_gni63-l1QKQB5rxZ9h3fNQXmVxLU,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=scQyKcK_MstJdHIpdt5rZOBtLLH4N6vF4y3YAXjx5O4,7314
43
- voice_mode/frontend/.next/next-server.js.nft.json,sha256=IeKrWfgu1VheJ8Am-fRhLdJBPyxGyU4MTEdnkXJKLW0,109011
42
+ voice_mode/frontend/.next/next-minimal-server.js.nft.json,sha256=zyxfheVsGtGNYhBJO5vQRY-Uq-kyDvdJ6hSR2J6p_MY,7314
43
+ voice_mode/frontend/.next/next-server.js.nft.json,sha256=lgrBtbsEyVY3FwMmWOiMW3hVo96MVzd08mpMxWj_gk8,109011
44
44
  voice_mode/frontend/.next/package.json,sha256=CRoE-mfHkHuY4Qb8_4uWThMSl1T85y0k8wJbl8SIf6M,20
45
- voice_mode/frontend/.next/prerender-manifest.json,sha256=ZgCYxIrGBABBhya7TGwkoPZq2MXV9JLULi1o2p95rYA,959
45
+ voice_mode/frontend/.next/prerender-manifest.json,sha256=7EWSXEzY94TyR5s34EuwIxvgsBW-elk60tX3WAdx4NE,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=MJbEoAajTpq2K7h0G3wedJYCFkhKFh3eVYLSuBgL6wk,4750
47
+ voice_mode/frontend/.next/required-server-files.json,sha256=6cnKNFOusE05YCaxS3917VrqAd2eVC44iwY9j5HNyIU,4750
48
48
  voice_mode/frontend/.next/routes-manifest.json,sha256=DqV6K_WLiS6wKvdr8TpF7-uBhH7xbrg7xeznwWaeO70,831
49
- voice_mode/frontend/.next/trace,sha256=cF1ReXllhRU-pF5_TMrwufL3dXEIuZEk5ZDrLZETOUM,895518
49
+ voice_mode/frontend/.next/trace,sha256=sv9A5XiNnuhc6eJ5UB_ewDyMTu4a1it551PNV9lBDQ8,899995
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=MUr3I23CMJUnMUOA0QpkRdeoDGqI8Gdm9jbJXRB5vbg,888
54
+ voice_mode/frontend/.next/server/middleware-build-manifest.js,sha256=C02rVdwuxjPMMXgxf1YPk_TkAHIicydel78q7egBCQA,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=7Q50MtnGNBozITVmZQycE9yb8tESzNdoi53XfKKGYyk,229
58
- voice_mode/frontend/.next/server/next-font-manifest.json,sha256=Cy4V3mbQAam4F9XWbyTcqyKDxiKNcJap9BC0e6BLD0s,200
57
+ voice_mode/frontend/.next/server/next-font-manifest.js,sha256=FQuodDpXTaNGAOLhqTgykyqrBAvZbLBezAEfUqwJgD4,229
58
+ voice_mode/frontend/.next/server/next-font-manifest.json,sha256=Va40zljX63cLJUnkcKjli3gBSr9cjc-waZuu5wQoHaY,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=Xl6pao4Xxcic8ZKibr1-diC50R5K_Z-6aA7S_i4nI6o,84
61
+ voice_mode/frontend/.next/server/server-reference-manifest.json,sha256=dHgWoXqKTU0A4cnixTQSdMcTZFh915TOJ10isNy3hd4,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=85tm2R0nHtiBi5dxkKI5S5GyK_Je0laHuDUmqsyQSZg,6752
63
+ voice_mode/frontend/.next/server/app/_not-found.html,sha256=lsgrv2zicB_rcFJl2gHSi9wHoMBCyZLTPIY_m1XHpQI,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=umbbFFZ_7yYquS5BRe9LgkhzKHoCuVWfrjW3S2nkM9E,3621
65
+ voice_mode/frontend/.next/server/app/_not-found.rsc,sha256=350T7206GI66I8tqqxDFrokh-ae-Nov2oXJGDL4Ky4o,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=N7U-dN0LAtGL-1moQgeVObhfE2nYV6oVslO61lFvBAo,5396
68
+ voice_mode/frontend/.next/server/app/index.html,sha256=qjq2BSbBCbn6Ci84nK_vJfd4QIH70FDRkAvGIDwOG8w,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=t2cNaVS8aCQYlBJoalpLt67bvShjA7vVZ65uz3s6nZI,2438
71
- voice_mode/frontend/.next/server/app/page.js,sha256=Atki3PSkqOXV1Jf0B0v2wYbfhtTh6RQRgjCdVaaWsAk,611922
70
+ voice_mode/frontend/.next/server/app/index.rsc,sha256=kXcmEubckiDCT2GvY_t13BErhzIZk6Z2bTZECWOrMvQ,2438
71
+ voice_mode/frontend/.next/server/app/page.js,sha256=PzSSxuVrGSsnd4cbdKdTDYtkscraQYUR2gfIEhQ88Uw,611922
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=fDxQBio1-fkEmsFN70f--AE76CbbE78xj30P5x-qe-I,4193
74
- voice_mode/frontend/.next/server/app/_not-found/page.js,sha256=ax2oYULXdKqN166StDAMR2NX6Gs_Lre7w-CZlQhWrBU,3387
73
+ voice_mode/frontend/.next/server/app/page_client-reference-manifest.js,sha256=kyZGsT2OoHAiCpznh1rsY9MZBuRqd4wjUNBOs-OmPL4,4193
74
+ voice_mode/frontend/.next/server/app/_not-found/page.js,sha256=2rIdvlblrIzGq9yPhsf__xuVXszJXIgSEj2ZYgDqMZk,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=wsVzIxEvwx_hFLKD8OyWw7jiYxNl-2VAsbvHaFb0Kaw,4297
77
- voice_mode/frontend/.next/server/app/api/connection-details/route.js,sha256=Yo-ftJtFGMtx77Cbt2TKcsTbggXIUDfRcyD7Ba1e1zU,121020
76
+ voice_mode/frontend/.next/server/app/_not-found/page_client-reference-manifest.js,sha256=5000nebGe_Dwg9oPT4AVDteegUSn5XorcuNY5mdm-ME,4297
77
+ voice_mode/frontend/.next/server/app/api/connection-details/route.js,sha256=bHowdTx3gTG6ehQMbKQbJputeCPdKSeVsyXS-8C_Ow4,121018
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=A-UFT7zEUaJkmURmLNPW9P6cRVZAJlNSXfY9jAhSS_c,66228
79
+ voice_mode/frontend/.next/server/app/favicon.ico/route.js,sha256=E9DHrrkuAmpyfXc5vJE3GhbkDszmI7GBHDGBQqmMdz4,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=5E1lNcjkZJN4M7lf3JzXH0Krk3s3H24km-gX6pr5aXc,95359
84
+ voice_mode/frontend/.next/server/chunks/994.js,sha256=Cnchh7lPmJr0sBuMwLHIOKt_NprjGr15vnr240PkNec,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=85tm2R0nHtiBi5dxkKI5S5GyK_Je0laHuDUmqsyQSZg,6752
87
- voice_mode/frontend/.next/server/pages/500.html,sha256=62XtEKvEvEYNtuRXmYmgS4dpxV1I0lY_QWA7NT5WGmc,1995
86
+ voice_mode/frontend/.next/server/pages/404.html,sha256=lsgrv2zicB_rcFJl2gHSi9wHoMBCyZLTPIY_m1XHpQI,6752
87
+ voice_mode/frontend/.next/server/pages/500.html,sha256=QAR8xPON2VtIwHha8BcbxUhCwhF_kQ1t6RjK11UAx6w,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,51 +92,51 @@ 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=kk3n-XEyK6wTDWZV1fUzA8fh88GnXIs_ZB_IKOtT2kg,4742
96
- voice_mode/frontend/.next/standalone/.next/BUILD_ID,sha256=bjVy2DxjlkGS4cFC6hCjk0KD-NG_2J1wCS2WhmfKYrs,21
97
- voice_mode/frontend/.next/standalone/.next/app-build-manifest.json,sha256=kj1WZ_ikdWr-11TDTqX7s7PmksrJH5ifnD9qVY8uNgc,1010
95
+ voice_mode/frontend/.next/standalone/server.js,sha256=Jk8E3oTGq0jcBWaS1TKwCTd6_eqZ0Q_MH006MYlSyHM,4742
96
+ voice_mode/frontend/.next/standalone/.next/BUILD_ID,sha256=kC071XEjPfFOJ77jIxgaMd-Ma0CJLlY8dffE7VcaHMU,21
97
+ voice_mode/frontend/.next/standalone/.next/app-build-manifest.json,sha256=8_o0-5jAmI99n0J4r-ehnVLpYEFWWfNBbUCOP2-iZoc,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=3aPVrpw3liEO8YZIJtN3cSvgQpIchuUj7xn0BNCoKV0,968
99
+ voice_mode/frontend/.next/standalone/.next/build-manifest.json,sha256=0Kn9DQC-9PuVDF_gni63-l1QKQB5rxZ9h3fNQXmVxLU,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=ZgCYxIrGBABBhya7TGwkoPZq2MXV9JLULi1o2p95rYA,959
101
+ voice_mode/frontend/.next/standalone/.next/prerender-manifest.json,sha256=7EWSXEzY94TyR5s34EuwIxvgsBW-elk60tX3WAdx4NE,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=MJbEoAajTpq2K7h0G3wedJYCFkhKFh3eVYLSuBgL6wk,4750
103
+ voice_mode/frontend/.next/standalone/.next/required-server-files.json,sha256=6cnKNFOusE05YCaxS3917VrqAd2eVC44iwY9j5HNyIU,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=MUr3I23CMJUnMUOA0QpkRdeoDGqI8Gdm9jbJXRB5vbg,888
107
+ voice_mode/frontend/.next/standalone/.next/server/middleware-build-manifest.js,sha256=C02rVdwuxjPMMXgxf1YPk_TkAHIicydel78q7egBCQA,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=7Q50MtnGNBozITVmZQycE9yb8tESzNdoi53XfKKGYyk,229
111
- voice_mode/frontend/.next/standalone/.next/server/next-font-manifest.json,sha256=Cy4V3mbQAam4F9XWbyTcqyKDxiKNcJap9BC0e6BLD0s,200
110
+ voice_mode/frontend/.next/standalone/.next/server/next-font-manifest.js,sha256=FQuodDpXTaNGAOLhqTgykyqrBAvZbLBezAEfUqwJgD4,229
111
+ voice_mode/frontend/.next/standalone/.next/server/next-font-manifest.json,sha256=Va40zljX63cLJUnkcKjli3gBSr9cjc-waZuu5wQoHaY,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=Xl6pao4Xxcic8ZKibr1-diC50R5K_Z-6aA7S_i4nI6o,84
114
+ voice_mode/frontend/.next/standalone/.next/server/server-reference-manifest.json,sha256=dHgWoXqKTU0A4cnixTQSdMcTZFh915TOJ10isNy3hd4,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=85tm2R0nHtiBi5dxkKI5S5GyK_Je0laHuDUmqsyQSZg,6752
116
+ voice_mode/frontend/.next/standalone/.next/server/app/_not-found.html,sha256=lsgrv2zicB_rcFJl2gHSi9wHoMBCyZLTPIY_m1XHpQI,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=umbbFFZ_7yYquS5BRe9LgkhzKHoCuVWfrjW3S2nkM9E,3621
118
+ voice_mode/frontend/.next/standalone/.next/server/app/_not-found.rsc,sha256=350T7206GI66I8tqqxDFrokh-ae-Nov2oXJGDL4Ky4o,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=N7U-dN0LAtGL-1moQgeVObhfE2nYV6oVslO61lFvBAo,5396
121
+ voice_mode/frontend/.next/standalone/.next/server/app/index.html,sha256=qjq2BSbBCbn6Ci84nK_vJfd4QIH70FDRkAvGIDwOG8w,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=t2cNaVS8aCQYlBJoalpLt67bvShjA7vVZ65uz3s6nZI,2438
124
- voice_mode/frontend/.next/standalone/.next/server/app/page.js,sha256=Atki3PSkqOXV1Jf0B0v2wYbfhtTh6RQRgjCdVaaWsAk,611922
123
+ voice_mode/frontend/.next/standalone/.next/server/app/index.rsc,sha256=kXcmEubckiDCT2GvY_t13BErhzIZk6Z2bTZECWOrMvQ,2438
124
+ voice_mode/frontend/.next/standalone/.next/server/app/page.js,sha256=PzSSxuVrGSsnd4cbdKdTDYtkscraQYUR2gfIEhQ88Uw,611922
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=fDxQBio1-fkEmsFN70f--AE76CbbE78xj30P5x-qe-I,4193
127
- voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page.js,sha256=ax2oYULXdKqN166StDAMR2NX6Gs_Lre7w-CZlQhWrBU,3387
126
+ voice_mode/frontend/.next/standalone/.next/server/app/page_client-reference-manifest.js,sha256=kyZGsT2OoHAiCpznh1rsY9MZBuRqd4wjUNBOs-OmPL4,4193
127
+ voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page.js,sha256=2rIdvlblrIzGq9yPhsf__xuVXszJXIgSEj2ZYgDqMZk,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=wsVzIxEvwx_hFLKD8OyWw7jiYxNl-2VAsbvHaFb0Kaw,4297
130
- voice_mode/frontend/.next/standalone/.next/server/app/api/connection-details/route.js,sha256=Yo-ftJtFGMtx77Cbt2TKcsTbggXIUDfRcyD7Ba1e1zU,121020
129
+ voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js,sha256=5000nebGe_Dwg9oPT4AVDteegUSn5XorcuNY5mdm-ME,4297
130
+ voice_mode/frontend/.next/standalone/.next/server/app/api/connection-details/route.js,sha256=bHowdTx3gTG6ehQMbKQbJputeCPdKSeVsyXS-8C_Ow4,121018
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=A-UFT7zEUaJkmURmLNPW9P6cRVZAJlNSXfY9jAhSS_c,66228
132
+ voice_mode/frontend/.next/standalone/.next/server/app/favicon.ico/route.js,sha256=E9DHrrkuAmpyfXc5vJE3GhbkDszmI7GBHDGBQqmMdz4,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=5E1lNcjkZJN4M7lf3JzXH0Krk3s3H24km-gX6pr5aXc,95359
138
- voice_mode/frontend/.next/standalone/.next/server/pages/404.html,sha256=85tm2R0nHtiBi5dxkKI5S5GyK_Je0laHuDUmqsyQSZg,6752
139
- voice_mode/frontend/.next/standalone/.next/server/pages/500.html,sha256=62XtEKvEvEYNtuRXmYmgS4dpxV1I0lY_QWA7NT5WGmc,1995
137
+ voice_mode/frontend/.next/standalone/.next/server/chunks/994.js,sha256=Cnchh7lPmJr0sBuMwLHIOKt_NprjGr15vnr240PkNec,95359
138
+ voice_mode/frontend/.next/standalone/.next/server/pages/404.html,sha256=lsgrv2zicB_rcFJl2gHSi9wHoMBCyZLTPIY_m1XHpQI,6752
139
+ voice_mode/frontend/.next/standalone/.next/server/pages/500.html,sha256=QAR8xPON2VtIwHha8BcbxUhCwhF_kQ1t6RjK11UAx6w,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
@@ -149,24 +149,24 @@ voice_mode/frontend/.next/static/chunks/471-bd4b96a33883dfa2.js,sha256=qT-fK-XMK
149
149
  voice_mode/frontend/.next/static/chunks/fd9d1056-af324d327b243cf1.js,sha256=uL3flIHYWdZI4eBQ-DIus97-PdP5vRP0xE3W8uz1q4A,172834
150
150
  voice_mode/frontend/.next/static/chunks/framework-f66176bb897dc684.js,sha256=QlDVPwvHVuzi3daQoAit0df9yIdSjGcfTf6NkW13h7c,139978
151
151
  voice_mode/frontend/.next/static/chunks/main-3163eca598b76a9f.js,sha256=IwuNOgi-ik3KFA_tnaPvAfRY5q6hTp4DRK1lkjkWdwQ,116431
152
- voice_mode/frontend/.next/static/chunks/main-app-822552bd94497f44.js,sha256=pupI8tmSCH9PQjM3TXftGv9yteumaef423yGIfY5xHk,461
152
+ voice_mode/frontend/.next/static/chunks/main-app-0aa7560603c1f114.js,sha256=IToiZktDizDRRm1QSI3LJR8JI3bIgMWUzNLrm9c0GWc,461
153
153
  voice_mode/frontend/.next/static/chunks/polyfills-42372ed130431b0a.js,sha256=CXPB1kyIrcjjyVBBDLWLKI9yEY1ZZbeASUON648vloM,112594
154
154
  voice_mode/frontend/.next/static/chunks/webpack-0ea9b80f19935b70.js,sha256=1Us0m_ZxEgMEb2DAN4ePlpq9Fv7QqUxcuV2CqICEB5w,3605
155
- voice_mode/frontend/.next/static/chunks/app/layout-4c59da29fcf0456f.js,sha256=CPGXLpMTxI1yOFqblj3VyhZ8VkKYhxOvqFhpjysn8gM,507
156
- voice_mode/frontend/.next/static/chunks/app/page-017e11b769f3a746.js,sha256=KMtt_tt_wkJKjZ6K5hukXZ1iSb3CgmsDqlP6s2efqEE,7666
155
+ voice_mode/frontend/.next/static/chunks/app/layout-d124af177c48e1c5.js,sha256=fuyiE_yWSJVvKL1pXEisscLRU2tcm0DXN5_O_Zi2ZWU,507
156
+ voice_mode/frontend/.next/static/chunks/app/page-ed5ce28c62d0c8ef.js,sha256=lLU2kmb3iHoLz3qGMt2fPMlb8OR65MiRb-9fIkny2Tw,7666
157
157
  voice_mode/frontend/.next/static/chunks/app/_not-found/page-5011050e402ab9c8.js,sha256=u5LYOU4LZ2HFeEcz6xZqSflSnU4WDt-TnQNu3CdcEWk,1745
158
158
  voice_mode/frontend/.next/static/chunks/pages/_app-72b849fbd24ac258.js,sha256=QN-PY1h1HDIO4K4ZYwFl6rtEeaxWCynYauVLK_oWmzE,280
159
159
  voice_mode/frontend/.next/static/chunks/pages/_error-7ba65e1336b92748.js,sha256=oxr2dz6MkKWnm3jN3fWb2RPhCHB4-JgrzVMS_wTNr_E,247
160
160
  voice_mode/frontend/.next/static/css/a2f49a47752b5010.css,sha256=7geCVBj6YoIVhB9kh-MLsQW5wD1t6-uzzRcYoLMGDq0,29545
161
- voice_mode/frontend/.next/static/e8aNOVoFA4vUks2Chn7qv/_buildManifest.js,sha256=UGi5XJhF4u-NRxMqU360JM2afxCS1essSVUEqY6sl5c,224
162
- voice_mode/frontend/.next/static/e8aNOVoFA4vUks2Chn7qv/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
161
+ voice_mode/frontend/.next/static/dk2w9pXeSUc6w1YbYi6aJ/_buildManifest.js,sha256=UGi5XJhF4u-NRxMqU360JM2afxCS1essSVUEqY6sl5c,224
162
+ voice_mode/frontend/.next/static/dk2w9pXeSUc6w1YbYi6aJ/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
163
163
  voice_mode/frontend/.next/static/media/01099be941da1820-s.woff2,sha256=ZaNN8qxUZFV4kxOD_j6TGAYAHwR01MPDQloeIbMgCeg,10436
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=-PnYT8Dhx4K7R4j2SbSCvlmnE4quGoli4m_oWhUX3SE,3511
168
- voice_mode/frontend/.next/types/app/page.ts,sha256=mKDJQsjivo65-2CvoT_9KcV3yiKP7xULYDPTTzBeXAQ,3499
169
- voice_mode/frontend/.next/types/app/api/connection-details/route.ts,sha256=Z2U8XJtkjBM9svWgOf6VjcQbmFJgktS4_OehMUANLdQ,8531
167
+ voice_mode/frontend/.next/types/app/layout.ts,sha256=LE2kYkqp-A2PgvJoCPzLqk9QsAmWINAuFgDt_Se_BgI,3511
168
+ voice_mode/frontend/.next/types/app/page.ts,sha256=ABazKjqEmcbVgaYap8LosROzV6Eoqdi3iDZ6RxF3JsI,3499
169
+ voice_mode/frontend/.next/types/app/api/connection-details/route.ts,sha256=z6BjfYD3_bFYfb6AO8P9xNsTaclOvS_993gWx_QKj-k,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
@@ -179,7 +179,7 @@ voice_mode/frontend/hooks/useCombinedTranscriptions.ts,sha256=axAlW85iVhp_UvIM54
179
179
  voice_mode/frontend/hooks/useLocalMicTrack.ts,sha256=OpYk2RDg4nl9ZKKT9IeC39B4Qe8nL23AckmMeZIYjik,552
180
180
  voice_mode/prompts/README.md,sha256=t6mtTG6Y5tZrNwhXOY_bqXrckSDsbSJPAhRsa5VzzFA,1518
181
181
  voice_mode/prompts/__init__.py,sha256=fbKbuqNsMezRvkg5dDB6eI_saTYeAU8raEbW91_NA-U,458
182
- voice_mode/prompts/converse.py,sha256=zM7TcYBdc6j3s3B-DsxjFWVf9Gl3IJmZqVvL0KphDJQ,584
182
+ voice_mode/prompts/converse.py,sha256=C1pJZ_DyQIv4NmOVH9Qm_IoHctD8A3-LCkekZwInIDY,532
183
183
  voice_mode/prompts/release_notes.py,sha256=Yi8Xl6VsCkqoRhZsRTOAg0YTQEbZ-c731ITE8EJEMeY,2819
184
184
  voice_mode/prompts/services.py,sha256=8RDi0HGpoFYnLSPkuRwulfE3L3qIfyac_AAJd0BB20M,1886
185
185
  voice_mode/resources/__init__.py,sha256=fbKbuqNsMezRvkg5dDB6eI_saTYeAU8raEbW91_NA-U,458
@@ -189,12 +189,15 @@ voice_mode/resources/configuration.py,sha256=PG65E3mOXlqerxvJddAFXl6QxwuN_I8cJ39
189
189
  voice_mode/resources/statistics.py,sha256=f-A0MILA8pVSWlJ3ARBg7WCn49B1hJl1r84VoKA7GqQ,7176
190
190
  voice_mode/resources/version.py,sha256=_Dih68Y_jONk2bZwyA67wezQd2yr0dt9N8QN7_iPftU,1533
191
191
  voice_mode/resources/whisper_models.py,sha256=hm9E9m58vj9vvZyQKnH_mvCn56G66woobRRvAshGo88,3144
192
+ voice_mode/templates/__init__.py,sha256=gMVzIYIY2xfh649vQbRd6v2kmi8ib41v6tHHPFK0hlA,34
192
193
  voice_mode/templates/launchd/com.voicemode.frontend.plist,sha256=f6VQ1iv4b4qmhPqEzQC-GCQxgHfqo8Ppn_PAWlf5XAg,1399
193
194
  voice_mode/templates/launchd/com.voicemode.kokoro.plist,sha256=3_cTfHsmihMR7qPdroFkDw70zLTlZ5B6fAvZjI-EVAY,1020
194
195
  voice_mode/templates/launchd/com.voicemode.livekit.plist,sha256=AsXRCttp9HL_3ILOztD54G-ElEsnHrZEWasTKVjxzok,1233
195
196
  voice_mode/templates/launchd/com.voicemode.whisper.plist,sha256=qRdvdRYbDRlZ6ky5ash5JTGleMkzAXzz0zvcWNG5chU,1149
196
197
  voice_mode/templates/launchd/start-kokoro-with-health-check.sh,sha256=x3YH0AFJG7jW0vwIIS6-A1563jkTCCHLdA_iBu7AQYM,641
197
198
  voice_mode/templates/launchd/start-whisper-with-health-check.sh,sha256=P4swmTLyZBnIQiExkYlmPr7tfGKC6CSntWqv68330ss,702
199
+ voice_mode/templates/scripts/__init__.py,sha256=iIBGKNUZu74jZl47y2p_dImNqNVEb8fim-r6mEbVX3s,42
200
+ voice_mode/templates/scripts/start-whisper-server.sh,sha256=YLTQEFRWsr6g-oPOnyrMxht_mE36sUBnXaK28cPX3zs,3277
198
201
  voice_mode/templates/systemd/voicemode-frontend.service,sha256=sWIu_9e24Zo3OKP3XHrKhwDaheZWtT-Q7moTYIV9ZW8,631
199
202
  voice_mode/templates/systemd/voicemode-kokoro.service,sha256=5JGv_Xf9u2MvmbGLBQtNy07i3T0-KsJHPF06FkN40ms,927
200
203
  voice_mode/templates/systemd/voicemode-livekit.service,sha256=hVjT4Vd0SOABXGYbp9iF9R6SWtXXLfRXt7i1xbud6Lg,692
@@ -219,13 +222,13 @@ voice_mode/tools/services/livekit/install.py,sha256=NrxyMEOMLqqJ-vIKmHcFanA7RCN6
219
222
  voice_mode/tools/services/livekit/production_server.py,sha256=8w8gBBs6O8nMqfzNQmsX6hkd46yVzwL3J-Zc1Dhe-bk,10324
220
223
  voice_mode/tools/services/livekit/uninstall.py,sha256=3XOYzNLQf7r9P4vORtoVb1bvJVyciiEPmt9UQh2ADBE,6146
221
224
  voice_mode/tools/services/whisper/__init__.py,sha256=xyYW6M3n7dUUlmuiK5gNfv82kp0Jd4KHJ5Bsz2gE-s8,928
222
- voice_mode/tools/services/whisper/install.py,sha256=Wdu-SB3wfrkx5RmypIRgW1Meelw5rBeUS9RaqmpCebk,23589
225
+ voice_mode/tools/services/whisper/install.py,sha256=KuZXQdUDzzLqkAFLX7QLqzFF9PMnRA3oMJvAopg9THg,26755
223
226
  voice_mode/tools/services/whisper/list_models.py,sha256=Qvz2hlws48ZrLYp4_bUtCWVGLAZTbTo-s5x4wtyF9GQ,2415
224
227
  voice_mode/tools/services/whisper/model_active.py,sha256=RnaffTHJYrBburpA6LCJQzP_wjHFPKZXKPs7QItTfJw,1693
225
228
  voice_mode/tools/services/whisper/model_benchmark.py,sha256=nGGQvvQFzyvh_KvUFHh0Qf6e-qMY03ZYfSDECOmudXc,5803
226
- voice_mode/tools/services/whisper/model_install.py,sha256=PxfvPUU0XGeE12DkQRhhvDUtwEbcuSF_1O78dwpsDSs,11672
229
+ voice_mode/tools/services/whisper/model_install.py,sha256=v6huRo40nSKECR5nUCwVOXinklR23XMRMxRFVW5BuTI,11565
227
230
  voice_mode/tools/services/whisper/model_remove.py,sha256=zlt4C7uxvdPSUNge-dMsfLNYTPDwWa6eXRBGGVzV11Y,1139
228
- voice_mode/tools/services/whisper/models.py,sha256=qUILFOVxZbuTReP46sKPHiJU5YGnjh1ls700Q2byywU,14906
231
+ voice_mode/tools/services/whisper/models.py,sha256=423rNK45vsciIUxVve3nntH-8v2NBd7V8Wk7t0kQShM,14902
229
232
  voice_mode/tools/services/whisper/uninstall.py,sha256=M81JCwCSbmV_tnuXB1jkn-V9BhSqmwAQVpHKbb62skc,8393
230
233
  voice_mode/utils/__init__.py,sha256=dYWYo-k65hbgnvBErFmSXjpTvMU46QMkjO7_e0umZj4,609
231
234
  voice_mode/utils/audio_diagnostics.py,sha256=bYqLOdXUmOkFkTPvk2HvutWRSWIpCSAv5mDMu8StzJw,6597
@@ -236,11 +239,12 @@ voice_mode/utils/gpu_detection.py,sha256=HpSuFhAUmy-USoabUhO70gqyuKclwGpzROM_IcZ
236
239
  voice_mode/utils/migration_helpers.py,sha256=kdWzqraScSC3DV2w5q9VVShjlyTXW1_9kCQ7FaMtQHc,4613
237
240
  voice_mode/utils/version_helpers.py,sha256=--DMVBojs3EH9I-wkNSx87lfNWpCfvZBjecvtPLHWEw,5992
238
241
  voice_mode/utils/services/common.py,sha256=EpkQfH6Ku_meqQdWRC4gFxMy1-Z1YyTfUxDdV9gZWTo,2994
242
+ voice_mode/utils/services/coreml_setup.py,sha256=Fo4l1MwsEElH8UQFCQMKgo3rYnPqJDfzzJ4hCqQ9SYI,8714
239
243
  voice_mode/utils/services/kokoro_helpers.py,sha256=VE3wa9cI2ZIc95ro58aaKVKdAE7DPXmZQLxml3QYbcI,1206
240
244
  voice_mode/utils/services/livekit_helpers.py,sha256=OFw0GxVIJAZE2m9dGCDZVegWD-LnMO6iSjcOUDgAA9U,3627
241
- voice_mode/utils/services/whisper_helpers.py,sha256=plNr64qNvY5gTlixvLflkB7gS-XvjHpB-YqWc9di0YM,18591
245
+ voice_mode/utils/services/whisper_helpers.py,sha256=1Oy9TR5g5-l6j07KaWlAoijkCUDGaTWIz__BXvV0TWw,19632
242
246
  voice_mode/utils/services/whisper_version.py,sha256=68e0Oa-tG73IJlla-e3P0sh_qzBF4ToYBe4KKZ2FvEY,4861
243
- voice_mode-2.32.0.dist-info/METADATA,sha256=HavnY8JYPYSaPlWn2DjzVo-XXXtZ5uUSaBWhNq_80f4,25137
244
- voice_mode-2.32.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
245
- voice_mode-2.32.0.dist-info/entry_points.txt,sha256=hS5faHc0R5Fde3Z_uvz8u6YkRIYtvh17X8tVN90Rbro,95
246
- voice_mode-2.32.0.dist-info/RECORD,,
247
+ voice_mode-2.33.0.dist-info/METADATA,sha256=BeTmuoGQ3MNKmngtNLV1j6dv_qu9ezrB8J-w9nPPRmE,25159
248
+ voice_mode-2.33.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
249
+ voice_mode-2.33.0.dist-info/entry_points.txt,sha256=hS5faHc0R5Fde3Z_uvz8u6YkRIYtvh17X8tVN90Rbro,95
250
+ voice_mode-2.33.0.dist-info/RECORD,,