voice-mode 4.1.0__py3-none-any.whl → 4.3.1__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 (73) hide show
  1. voice_mode/__version__.py +1 -1
  2. voice_mode/cli.py +91 -3
  3. voice_mode/cli_commands/claude.py +208 -0
  4. voice_mode/cli_commands/hook.py +209 -0
  5. voice_mode/config.py +114 -0
  6. voice_mode/frontend/.next/BUILD_ID +1 -1
  7. voice_mode/frontend/.next/app-build-manifest.json +5 -5
  8. voice_mode/frontend/.next/build-manifest.json +3 -3
  9. voice_mode/frontend/.next/next-minimal-server.js.nft.json +1 -1
  10. voice_mode/frontend/.next/next-server.js.nft.json +1 -1
  11. voice_mode/frontend/.next/prerender-manifest.json +1 -1
  12. voice_mode/frontend/.next/required-server-files.json +1 -1
  13. voice_mode/frontend/.next/server/app/_not-found/page.js +1 -1
  14. voice_mode/frontend/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  15. voice_mode/frontend/.next/server/app/_not-found.html +1 -1
  16. voice_mode/frontend/.next/server/app/_not-found.rsc +1 -1
  17. voice_mode/frontend/.next/server/app/api/connection-details/route.js +2 -2
  18. voice_mode/frontend/.next/server/app/favicon.ico/route.js +2 -2
  19. voice_mode/frontend/.next/server/app/index.html +1 -1
  20. voice_mode/frontend/.next/server/app/index.rsc +2 -2
  21. voice_mode/frontend/.next/server/app/page.js +3 -3
  22. voice_mode/frontend/.next/server/app/page_client-reference-manifest.js +1 -1
  23. voice_mode/frontend/.next/server/chunks/994.js +2 -2
  24. voice_mode/frontend/.next/server/middleware-build-manifest.js +1 -1
  25. voice_mode/frontend/.next/server/next-font-manifest.js +1 -1
  26. voice_mode/frontend/.next/server/next-font-manifest.json +1 -1
  27. voice_mode/frontend/.next/server/pages/404.html +1 -1
  28. voice_mode/frontend/.next/server/pages/500.html +1 -1
  29. voice_mode/frontend/.next/server/pages-manifest.json +1 -1
  30. voice_mode/frontend/.next/server/server-reference-manifest.json +1 -1
  31. voice_mode/frontend/.next/standalone/.next/BUILD_ID +1 -1
  32. voice_mode/frontend/.next/standalone/.next/app-build-manifest.json +5 -5
  33. voice_mode/frontend/.next/standalone/.next/build-manifest.json +3 -3
  34. voice_mode/frontend/.next/standalone/.next/prerender-manifest.json +1 -1
  35. voice_mode/frontend/.next/standalone/.next/required-server-files.json +1 -1
  36. voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page.js +1 -1
  37. voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  38. voice_mode/frontend/.next/standalone/.next/server/app/_not-found.html +1 -1
  39. voice_mode/frontend/.next/standalone/.next/server/app/_not-found.rsc +1 -1
  40. voice_mode/frontend/.next/standalone/.next/server/app/api/connection-details/route.js +2 -2
  41. voice_mode/frontend/.next/standalone/.next/server/app/favicon.ico/route.js +2 -2
  42. voice_mode/frontend/.next/standalone/.next/server/app/index.html +1 -1
  43. voice_mode/frontend/.next/standalone/.next/server/app/index.rsc +2 -2
  44. voice_mode/frontend/.next/standalone/.next/server/app/page.js +3 -3
  45. voice_mode/frontend/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  46. voice_mode/frontend/.next/standalone/.next/server/chunks/994.js +2 -2
  47. voice_mode/frontend/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
  48. voice_mode/frontend/.next/standalone/.next/server/next-font-manifest.js +1 -1
  49. voice_mode/frontend/.next/standalone/.next/server/next-font-manifest.json +1 -1
  50. voice_mode/frontend/.next/standalone/.next/server/pages/404.html +1 -1
  51. voice_mode/frontend/.next/standalone/.next/server/pages/500.html +1 -1
  52. voice_mode/frontend/.next/standalone/.next/server/pages-manifest.json +1 -1
  53. voice_mode/frontend/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  54. voice_mode/frontend/.next/standalone/server.js +1 -1
  55. voice_mode/frontend/.next/static/chunks/app/{layout-fcb9b9ba5b72c7fc.js → layout-b52135f331b36caf.js} +1 -1
  56. voice_mode/frontend/.next/static/chunks/app/{page-7c7ec2ad413ace39.js → page-43b7b45e01f0aa87.js} +1 -1
  57. voice_mode/frontend/.next/static/chunks/{main-app-d02bd38ac01adb8a.js → main-app-80dc9078926fc708.js} +1 -1
  58. voice_mode/frontend/.next/trace +43 -43
  59. voice_mode/frontend/.next/types/app/api/connection-details/route.ts +1 -1
  60. voice_mode/frontend/.next/types/app/layout.ts +1 -1
  61. voice_mode/frontend/.next/types/app/page.ts +1 -1
  62. voice_mode/frontend/package-lock.json +3 -3
  63. voice_mode/tools/claude_thinking.py +285 -0
  64. voice_mode/tools/sound_fonts/__init__.py +1 -0
  65. voice_mode/tools/sound_fonts/audio_player.py +87 -0
  66. voice_mode/tools/sound_fonts/hook_handler.py +127 -0
  67. voice_mode/tools/sound_fonts/player.py +180 -0
  68. {voice_mode-4.1.0.dist-info → voice_mode-4.3.1.dist-info}/METADATA +1 -1
  69. {voice_mode-4.1.0.dist-info → voice_mode-4.3.1.dist-info}/RECORD +73 -66
  70. /voice_mode/frontend/.next/static/{pbDjheefW1LwCua_8mPoZ → uZHYPdRYOObTZ3MQHekp0}/_buildManifest.js +0 -0
  71. /voice_mode/frontend/.next/static/{pbDjheefW1LwCua_8mPoZ → uZHYPdRYOObTZ3MQHekp0}/_ssgManifest.js +0 -0
  72. {voice_mode-4.1.0.dist-info → voice_mode-4.3.1.dist-info}/WHEEL +0 -0
  73. {voice_mode-4.1.0.dist-info → voice_mode-4.3.1.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,180 @@
1
+ """
2
+ Sound Fonts Audio Player
3
+
4
+ A lightweight audio player for Sound Fonts that can play audio file slices
5
+ with specified start and end points. Supports WAV and MP3 files.
6
+ """
7
+
8
+ import os
9
+ import sys
10
+ import json
11
+ import subprocess
12
+ from pathlib import Path
13
+ from typing import Dict, Any, Optional
14
+
15
+
16
+ class AudioPlayer:
17
+ def __init__(self, voicemode_home: str = None):
18
+ self.voicemode_home = Path(voicemode_home or os.path.expanduser("~/.voicemode"))
19
+
20
+ def play_audio_slice(self, file_path: str, start: float = 0.0, end: Optional[float] = None, volume: float = 1.0):
21
+ """
22
+ Play a slice of an audio file using ffmpeg/ffplay
23
+
24
+ Args:
25
+ file_path: Path to audio file
26
+ start: Start time in seconds
27
+ end: End time in seconds (None for end of file)
28
+ volume: Volume multiplier (0.0 to 1.0)
29
+ """
30
+ if not os.path.exists(file_path):
31
+ print(f"Error: Audio file not found: {file_path}", file=sys.stderr)
32
+ return False
33
+
34
+ # Build ffplay command for non-blocking audio playback
35
+ cmd = [
36
+ "ffplay",
37
+ "-nodisp", # No video display
38
+ "-autoexit", # Exit when playback ends
39
+ "-loglevel", "quiet", # Suppress output
40
+ "-ss", str(start), # Start time
41
+ ]
42
+
43
+ if end is not None:
44
+ duration = end - start
45
+ cmd.extend(["-t", str(duration)]) # Duration to play
46
+
47
+ if volume != 1.0:
48
+ cmd.extend(["-af", f"volume={volume}"]) # Volume filter
49
+
50
+ cmd.append(file_path)
51
+
52
+ try:
53
+ # Run in background (non-blocking)
54
+ subprocess.Popen(cmd, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
55
+ return True
56
+ except Exception as e:
57
+ print(f"Error playing audio: {e}", file=sys.stderr)
58
+ return False
59
+
60
+ def load_sound_font(self, font_name: str = None) -> Optional[Dict[str, Any]]:
61
+ """Load Sound Font configuration"""
62
+ if font_name:
63
+ config_path = self.voicemode_home / "sound-fonts" / font_name / "config.json"
64
+ else:
65
+ # Try to find active sound font from settings
66
+ settings_path = self.voicemode_home / "settings.json"
67
+ if settings_path.exists():
68
+ try:
69
+ with open(settings_path) as f:
70
+ settings = json.load(f)
71
+ font_name = settings.get("sound_font")
72
+ if font_name:
73
+ config_path = self.voicemode_home / "sound-fonts" / font_name / "config.json"
74
+ else:
75
+ return None
76
+ except:
77
+ return None
78
+ else:
79
+ return None
80
+
81
+ if not config_path.exists():
82
+ return None
83
+
84
+ try:
85
+ with open(config_path) as f:
86
+ return json.load(f)
87
+ except Exception as e:
88
+ print(f"Error loading sound font config: {e}", file=sys.stderr)
89
+ return None
90
+
91
+ def resolve_audio_path(self, config: Dict[str, Any], file_name: str) -> str:
92
+ """Resolve audio file path relative to sound font directory"""
93
+ font_dir = Path(config.get("base_path", self.voicemode_home / "sound-fonts" / config["name"]))
94
+ return str(font_dir / file_name)
95
+
96
+ def play_sound_for_event(self, tool_name: str, action: str, subagent_type: str = None, metadata: Dict[str, Any] = None):
97
+ """
98
+ Play sound for a specific tool event based on Sound Font configuration
99
+
100
+ Args:
101
+ tool_name: Name of the tool (e.g., "Task", "Bash", "Read")
102
+ action: Event action ("start" or "end")
103
+ subagent_type: For Task tool, the subagent (e.g., "mama-bear")
104
+ metadata: Additional event metadata
105
+ """
106
+ config = self.load_sound_font()
107
+ if not config:
108
+ return False
109
+
110
+ sounds = config.get("sounds", {})
111
+
112
+ # Look up sound configuration
113
+ tool_config = sounds.get(tool_name)
114
+ if not tool_config:
115
+ tool_config = sounds.get("default", {})
116
+ if not tool_config:
117
+ return False
118
+
119
+ # Handle subagent_type for Task tool
120
+ if subagent_type and "subagent_type" in tool_config:
121
+ subagent_config = tool_config["subagent_type"].get(subagent_type)
122
+ if subagent_config:
123
+ sound_config = subagent_config.get(action)
124
+ else:
125
+ sound_config = tool_config.get("default", {}).get(action)
126
+ else:
127
+ # For Task tool without subagent_type, use default sounds
128
+ if tool_name == "Task" and "default" in tool_config:
129
+ sound_config = tool_config["default"].get(action)
130
+ else:
131
+ sound_config = tool_config.get(action)
132
+
133
+ if not sound_config:
134
+ return False
135
+
136
+ # Extract sound parameters
137
+ file_name = sound_config.get("file")
138
+ if not file_name:
139
+ return False
140
+
141
+ file_path = self.resolve_audio_path(config, file_name)
142
+ start = sound_config.get("start", 0.0)
143
+ end = sound_config.get("end")
144
+ volume = sound_config.get("volume", 1.0)
145
+
146
+ # Log the event
147
+ self.log_sound_event(tool_name, action, subagent_type, sound_config)
148
+
149
+ return self.play_audio_slice(file_path, start, end, volume)
150
+
151
+ def log_sound_event(self, tool_name: str, action: str, subagent_type: str = None, sound_config: Dict[str, Any] = None):
152
+ """Log sound events in VoiceMode format"""
153
+ import time
154
+
155
+ timestamp = time.strftime("%Y-%m-%d %H:%M:%S")
156
+
157
+ log_entry = {
158
+ "timestamp": timestamp,
159
+ "event": "sound_fonts_play",
160
+ "tool_name": tool_name,
161
+ "action": action,
162
+ "subagent_type": subagent_type,
163
+ "file": sound_config.get("file") if sound_config else None,
164
+ "start": sound_config.get("start") if sound_config else None,
165
+ "end": sound_config.get("end") if sound_config else None,
166
+ "volume": sound_config.get("volume") if sound_config else None
167
+ }
168
+
169
+ # Write to VoiceMode logs directory
170
+ log_file = self.voicemode_home / "logs" / "sound-fonts.log"
171
+ log_file.parent.mkdir(exist_ok=True)
172
+
173
+ with open(log_file, "a") as f:
174
+ f.write(json.dumps(log_entry) + "\n")
175
+
176
+ # Also print to stderr for debugging
177
+ print(f"[SoundFonts] {timestamp} - Playing {action} sound for {tool_name}" +
178
+ (f" ({subagent_type})" if subagent_type else "") +
179
+ f": {sound_config.get('file')}[{sound_config.get('start')}-{sound_config.get('end')}]" if sound_config else "",
180
+ file=sys.stderr)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: voice-mode
3
- Version: 4.1.0
3
+ Version: 4.3.1
4
4
  Summary: VoiceMode - Voice interaction capabilities for AI assistants (formerly voice-mcp)
5
5
  Project-URL: Homepage, https://github.com/mbailey/voicemode
6
6
  Project-URL: Repository, https://github.com/mbailey/voicemode
@@ -1,8 +1,8 @@
1
1
  voice_mode/__init__.py,sha256=PDCwE2rrm8yyYxEiQQJkznQ_4xYp3DWIxGSB84K_mnI,346
2
2
  voice_mode/__main__.py,sha256=td-njie1XgkR-NrQjOEUse4TSJBC8DAmYywHum3V6WQ,138
3
- voice_mode/__version__.py,sha256=XpHtMWNuLzDPx-hfuwFK_M7bE0WTmefnMp28DHDGIO8,100
4
- voice_mode/cli.py,sha256=Wq0fg0I3Wz2ZxWLc1i4gleDInNCnWPy0ebB5lan3OGU,71526
5
- voice_mode/config.py,sha256=WKKffIiF1pdQBFud0m9pTdneFRUHNofOpQPc4FQFwLY,31830
3
+ voice_mode/__version__.py,sha256=hlaFtPsGqaParB96sJK1cVHe2q_XB-TK47v_CmE5tq0,100
4
+ voice_mode/cli.py,sha256=iFvRBLmzzHe22vZGJkwABzaNU7d5TQjE4gt2z7tDcSc,74590
5
+ voice_mode/config.py,sha256=GZzhp6D_20tVx5Utxny9R2CX2PHFdsJxPJBQBZtT0Os,36397
6
6
  voice_mode/conversation_logger.py,sha256=Nar92xabhaVmMKdZdLmgoYckK9fGAVVYWdass3-EI1I,9363
7
7
  voice_mode/core.py,sha256=WACixDHS23UMhmBJKN2zgDqeWtpAdXHOSduDc3fmOio,28452
8
8
  voice_mode/pronounce.py,sha256=D9hKP8Op5PZMn9kalIifNcg3GMBIJOemgnhHGOGQSnU,13752
@@ -15,7 +15,9 @@ voice_mode/statistics.py,sha256=ckssYzOJMMgCfmmGNlCRhX4o9y0LWN9Gt42WlEUI3DE,1578
15
15
  voice_mode/streaming.py,sha256=AP0dPt8jAGnM_i3qhtPe4334EBQryWxOJ6NPt48tHvE,21744
16
16
  voice_mode/version.py,sha256=rgv7tThj3fBO006bhff3iz_TlfE5uQS4Gws-9xf8YIc,2452
17
17
  voice_mode/cli_commands/__init__.py,sha256=qaIkE-dtA0_s400BfX7h6IIoFQlNrXwGLbuHRhGUjWA,32
18
+ voice_mode/cli_commands/claude.py,sha256=Y2RekhRmo2EPbOFlo-Nt1iS-TZkISQWVGy6ekPnp1IE,7897
18
19
  voice_mode/cli_commands/exchanges.py,sha256=R8k_MtiZmDG7ST974MoDTkUKgvGgLNESzTjg2dvZRoY,16828
20
+ voice_mode/cli_commands/hook.py,sha256=_VMeMtWCF-gOISw1guqiCSsVJtlSVDH8V2HMDEvw-10,7490
19
21
  voice_mode/cli_commands/pronounce_commands.py,sha256=uznL2OYGc-asQGSLciHo--o-nyuQV-ZS8ZMoBjmD6o0,7941
20
22
  voice_mode/cli_commands/transcribe.py,sha256=z5R8_66hRhNR-9vBWTj5gkPgbf6xV7dCxE0fpASUSJ8,4200
21
23
  voice_mode/data/default_pronunciation.yaml,sha256=LD3TRi2R4A9h8CG5sg9tqF-fLgpMdy7je4A2irLWXY0,6048
@@ -30,64 +32,64 @@ voice_mode/exchanges/stats.py,sha256=UVnJnVuqmd64T_iqBLVLPjTIDoyZwRg-MZUFJMHHWxg
30
32
  voice_mode/frontend/README.md,sha256=uosvWgNiWL_sP9liv-wnDNdPmJ3oFiLstXygxyzcN7A,2131
31
33
  voice_mode/frontend/next-env.d.ts,sha256=ndnWQs24fU1bMXMhfgxFQps-R6b1z1-w6tbGROxf7QE,228
32
34
  voice_mode/frontend/next.config.mjs,sha256=5kqiwwjpFblS_IHlnDJh7ELk_3rldB6pcSXIbrkytpQ,767
33
- voice_mode/frontend/package-lock.json,sha256=uh0Z4iayt0BPOP-ne-DrOXxalMd3BVDqhFp3Fg5HrPE,143483
35
+ voice_mode/frontend/package-lock.json,sha256=Fi_sQCUvxVUHdckSUWsMgXg-a67tCAM5dD_CHKhbXDE,143483
34
36
  voice_mode/frontend/package.json,sha256=BUOh3UiaHq1D0Bww-jy2EjhOi-47rjOipeUqXONJndo,1150
35
37
  voice_mode/frontend/pnpm-lock.yaml,sha256=DSl1H3fb4tNVrHjsc5HbflJJIr95erkADNeUoFY21x4,127796
36
38
  voice_mode/frontend/postcss.config.mjs,sha256=76ZcZeF9UdWFcO3OnXArBgT99qm422Wvrtjwda-IZ8c,157
37
39
  voice_mode/frontend/tailwind.config.ts,sha256=w0mWCjy3kwryNcqgub24YLbmd2V9EvOmWSYHmsFdpkY,264
38
40
  voice_mode/frontend/tsconfig.json,sha256=VCAvHW01ulHD2uoyv2fo2iRWjsDLDDQfoLXtLOsXTy0,574
39
- voice_mode/frontend/.next/BUILD_ID,sha256=hE-yJ_jVllXAfXvoGYavRnTQ0jdVsH9x46eXCqq_0A0,21
40
- voice_mode/frontend/.next/app-build-manifest.json,sha256=OcA5KgRdRcslItflAHJtvGnx9ID-e9AYV6iFQ1iRclw,1010
41
+ voice_mode/frontend/.next/BUILD_ID,sha256=X8mM7A2zGJIziuQCTboK0AfIHeu3FjDDXqdn7cHdyPk,21
42
+ voice_mode/frontend/.next/app-build-manifest.json,sha256=TbicmWux7jTCd0CvX1BjxduI37r41Ptv3z9ioyT4cOg,1010
41
43
  voice_mode/frontend/.next/app-path-routes-manifest.json,sha256=-WXlpEHFoCBUDPfxzUJleLsfZiEUU-rU0hRMZ8AVIJI,140
42
- voice_mode/frontend/.next/build-manifest.json,sha256=Yb_7n3fa0yDgR1oB4oB6GVsSuYgAu8UPxBwqhmng0Eo,968
44
+ voice_mode/frontend/.next/build-manifest.json,sha256=oYhHV2oq0s7bauA3EcRMGtVDVZVCH0JhHllYbOC-op4,968
43
45
  voice_mode/frontend/.next/export-marker.json,sha256=ALjrM5QMj5hmGX14xIc2wIFDfLaFKlK3n1wQpwjMagI,94
44
46
  voice_mode/frontend/.next/images-manifest.json,sha256=Z1eB8ppSn86wfAon69Z5DSKbg7IoIvyGB8uCu88xGjs,511
45
- voice_mode/frontend/.next/next-minimal-server.js.nft.json,sha256=mOUyiPlZZOr6azGgnWdMbq3W5xr0tx0yxOafWmP0O3k,7314
46
- voice_mode/frontend/.next/next-server.js.nft.json,sha256=fp5Mj7a4YSaNACO-v9mfUPHuWqXrRPbL7S3g6iWfoL4,109011
47
+ voice_mode/frontend/.next/next-minimal-server.js.nft.json,sha256=scQyKcK_MstJdHIpdt5rZOBtLLH4N6vF4y3YAXjx5O4,7314
48
+ voice_mode/frontend/.next/next-server.js.nft.json,sha256=IWJYelH2PDZUe-yD6krT6rdmJ4455xGqi5NKLRybimQ,109011
47
49
  voice_mode/frontend/.next/package.json,sha256=CRoE-mfHkHuY4Qb8_4uWThMSl1T85y0k8wJbl8SIf6M,20
48
- voice_mode/frontend/.next/prerender-manifest.json,sha256=vPDGPQANPSNhmaaTndiMb7PSlw5-tsL8y0Pp0wpe8iQ,959
50
+ voice_mode/frontend/.next/prerender-manifest.json,sha256=FjKA8DpKBKRyH-bMWdUTbW_m0hIBAsgbZfW8FX9j7io,959
49
51
  voice_mode/frontend/.next/react-loadable-manifest.json,sha256=RBNvo1WzZ4oRRq0W9-hknpT7T8If536DEMBg9hyq_4o,2
50
- voice_mode/frontend/.next/required-server-files.json,sha256=Rqm3vcvhglO8m0PmP14SKOIgkv1YZcANsBfrAYkVskk,4748
52
+ voice_mode/frontend/.next/required-server-files.json,sha256=2gTll7ptAM4go8kDbVaj_4wpnslw0c7z1qV9AgmaLSk,4748
51
53
  voice_mode/frontend/.next/routes-manifest.json,sha256=DqV6K_WLiS6wKvdr8TpF7-uBhH7xbrg7xeznwWaeO70,831
52
- voice_mode/frontend/.next/trace,sha256=jnnG_wzATY2WT53c5JnsS34bWB-QmFiDKkdyIy-yd2Q,898435
54
+ voice_mode/frontend/.next/trace,sha256=YkM1t56bpGFDGJz6VvrrJxPmYfttL72UqC1StYvKDXo,898370
53
55
  voice_mode/frontend/.next/server/app-paths-manifest.json,sha256=Xyxtr52aubW5XDHj7Ms66qiSJfwCkBVeL3ekU8uh2os,202
54
56
  voice_mode/frontend/.next/server/font-manifest.json,sha256=T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU,2
55
57
  voice_mode/frontend/.next/server/functions-config-manifest.json,sha256=CUXUfXux-dC5WRXm4vr6xa3f-RKEsEV1aG-hO3KK0CE,56
56
58
  voice_mode/frontend/.next/server/interception-route-rewrite-manifest.js,sha256=_FEz5ArPCeZRewc93XtcDCGNCZOISJAiEPLME_COHIE,48
57
- voice_mode/frontend/.next/server/middleware-build-manifest.js,sha256=sQF6mxe7pQ4zPkcZVZXj3dr1f-09EWPwg7bE_HcS0p8,888
59
+ voice_mode/frontend/.next/server/middleware-build-manifest.js,sha256=FHEzt7xsFLvGqBbSTYTf-m93jGOgs0U6kpkDWw9_Jss,888
58
60
  voice_mode/frontend/.next/server/middleware-manifest.json,sha256=CoUgvH4Hb3rnF8LWJxOZDIPoo9dGJvMno4RLwFBOIQw,83
59
61
  voice_mode/frontend/.next/server/middleware-react-loadable-manifest.js,sha256=rS557JHipUQIQNo9i9IiwnmztMR-ialoMnpm9ssS64I,36
60
- voice_mode/frontend/.next/server/next-font-manifest.js,sha256=XiGeBnLrAEWWeaxkXF5Z8A4Ob_mUQuldA4BylueeqC0,228
61
- voice_mode/frontend/.next/server/next-font-manifest.json,sha256=lwU7Vjy3AMXonaptrePtYPTGvc8qN_rjETYXRfgj2Z0,199
62
- voice_mode/frontend/.next/server/pages-manifest.json,sha256=ptJq1G84_Lb0cz0SsGWiPahXaPhZZBBwfMkxeoLoNq8,111
62
+ voice_mode/frontend/.next/server/next-font-manifest.js,sha256=48R-8_QE-NBHoAz9InqM4V52FveyFXrhmU9VmGm62Q4,228
63
+ voice_mode/frontend/.next/server/next-font-manifest.json,sha256=xIrCi3FgEDgWRXCg8JuPlcuHiQ593w5HojugXpE7XHw,199
64
+ voice_mode/frontend/.next/server/pages-manifest.json,sha256=CtIVJgXR_t73dArygJmC6GsgbxLMM1N2fAUgg0-bUc8,111
63
65
  voice_mode/frontend/.next/server/server-reference-manifest.js,sha256=zgEAbADh9jvL_kGz9-3SYNlptB0KMjtwXETh753xPYw,123
64
- voice_mode/frontend/.next/server/server-reference-manifest.json,sha256=-cE5DNr8x5GxyyFyQOJKi4iKhnMc7Arqwxco9Dmppic,84
66
+ voice_mode/frontend/.next/server/server-reference-manifest.json,sha256=3S8y_-eald-J3m7vHsR-h6505VyYLqn0dEESacMDILA,84
65
67
  voice_mode/frontend/.next/server/webpack-runtime.js,sha256=mmuyol21D9il2KNetWeEUG5OBu3z05WsphIyIbwvads,1469
66
- voice_mode/frontend/.next/server/app/_not-found.html,sha256=q_9tLbmeD4MUuKjjjfQIWlTe_K2v7MM3a3UjkOSh4y0,6752
68
+ voice_mode/frontend/.next/server/app/_not-found.html,sha256=2pDWaxvhex_WxD09-fDo2jnnNKXPv-kV-babSbDpfxo,6752
67
69
  voice_mode/frontend/.next/server/app/_not-found.meta,sha256=8-vSzkZIhJgJ7_uOmMyzHNf5QN3Exhbk-5ObKal4lrc,142
68
- voice_mode/frontend/.next/server/app/_not-found.rsc,sha256=RfZxkLsJjUX6hVfGS_O21Aw9qivNhaGREZRO3-sYgqk,3621
70
+ voice_mode/frontend/.next/server/app/_not-found.rsc,sha256=kuPjH4c5f77TE3wFHNLYWbXHGKvUmZkTYe8-OCMcFmc,3621
69
71
  voice_mode/frontend/.next/server/app/favicon.ico.body,sha256=Cc2QdQ-OI3iME7dIf86sbqXHW3D8LPUprF_KB2KZogI,15406
70
72
  voice_mode/frontend/.next/server/app/favicon.ico.meta,sha256=iac7LJDMkBlPpPPzKMbIDSh2bqoxNKhYx_5nQjo5Tds,211
71
- voice_mode/frontend/.next/server/app/index.html,sha256=ZaoD9HjyXTvDc2fllZBLogq8vKoVT1gnbzM9QpX3o2o,5396
73
+ voice_mode/frontend/.next/server/app/index.html,sha256=SwAtfhXUKOX_76RfM5TBad0BDut0_ZEXbWOGNXM9_8o,5396
72
74
  voice_mode/frontend/.next/server/app/index.meta,sha256=BDswoSxeaM0dEV3Vl3-2HNVKE5mS5NQhBYZcQQt5mnQ,80
73
- voice_mode/frontend/.next/server/app/index.rsc,sha256=SGhGwcdkbGm6sIxXGjtfCe96MecsWRKX7bL7peU3RyI,2438
74
- voice_mode/frontend/.next/server/app/page.js,sha256=_we1HSUpK9ea9YGNbLdqIcftZ2KlNoyA-Itc4L1vT7M,611918
75
+ voice_mode/frontend/.next/server/app/index.rsc,sha256=3bb6p6dDhy2xjuW6LtBjRJ-hc2hT6tn3WWKGrw_TcKA,2438
76
+ voice_mode/frontend/.next/server/app/page.js,sha256=Hp9JTC2uchhs8UnIXH4Gvu9fbm5-oHDcNERBClgyIHk,611916
75
77
  voice_mode/frontend/.next/server/app/page.js.nft.json,sha256=6plKkaMV7NDsYDUQsMAnayayODq1vS_l6nRXRrm9Trg,1168
76
- voice_mode/frontend/.next/server/app/page_client-reference-manifest.js,sha256=TVHcueBC5wz3zFE-oZgg10EfNVFj0AoJw085ln2KT64,4174
77
- voice_mode/frontend/.next/server/app/_not-found/page.js,sha256=cpelFDSItniBO3x7R1f79vkav6vtq2v1Q-dGCbFqU3A,3384
78
+ voice_mode/frontend/.next/server/app/page_client-reference-manifest.js,sha256=VvH-_StmoLGhe8Jmsi9kz7yfLJcBt5J6R3dmOgtGxyY,4174
79
+ voice_mode/frontend/.next/server/app/_not-found/page.js,sha256=S6Go3tvpDHllmLa6n5bqaFUfSlpCvsSeSVhM0DkPTnI,3386
78
80
  voice_mode/frontend/.next/server/app/_not-found/page.js.nft.json,sha256=7Z_Wav7koMsnepi3GignvrVRYuDbzwvKqqg84LuoSis,1195
79
- voice_mode/frontend/.next/server/app/_not-found/page_client-reference-manifest.js,sha256=_P9pC51CSQpX98NGuDwAXq33GzE-Y-tmBYSEfoAf-n0,4277
80
- voice_mode/frontend/.next/server/app/api/connection-details/route.js,sha256=E09dIdh0Sza5c3vYkikuqdpDrvXrIY7BIsDOtE5dSk4,121019
81
+ voice_mode/frontend/.next/server/app/_not-found/page_client-reference-manifest.js,sha256=nrXXJMUl-MMZgH2B_mHJi6KMoRcBQ3P54frTykAZOR8,4277
82
+ voice_mode/frontend/.next/server/app/api/connection-details/route.js,sha256=TkNeEqpmhwkvo2rFKf6CqD_8Q64rUgjhvJsfWVLOYeI,121019
81
83
  voice_mode/frontend/.next/server/app/api/connection-details/route.js.nft.json,sha256=qjdiqEpb5s6iSOQsC1MI3A0_sVjbF9Eh1t1mR_VcS9o,1327
82
- voice_mode/frontend/.next/server/app/favicon.ico/route.js,sha256=ezmKuD--jpHbcFE2z-d493iBnTxHtbKpqBD_-ZgCUXA,66227
84
+ voice_mode/frontend/.next/server/app/favicon.ico/route.js,sha256=gTi_QAzv8VbEOfw4T4E1Txcf-zJn2GuWoOqsG78frBY,66227
83
85
  voice_mode/frontend/.next/server/app/favicon.ico/route.js.nft.json,sha256=xn4G0NuxuIbLuaN_3PVtjN4lYs5MWduPcvqhdZwRNkQ,1248
84
86
  voice_mode/frontend/.next/server/chunks/463.js,sha256=9Fg9G6vSgz6lLnnirTbzQKyy5MQAf59a16SvYM0xDFc,6201
85
87
  voice_mode/frontend/.next/server/chunks/682.js,sha256=dxTmuBsZ77qjHYtQvwM0HeoE4FnESxOOpTnhW3ABg18,33636
86
88
  voice_mode/frontend/.next/server/chunks/948.js,sha256=2QNDLi5TnS9qLpgKRmsx_sJzO2vtdQJIRn124o6fjeI,57650
87
- voice_mode/frontend/.next/server/chunks/994.js,sha256=kX3p3kldpX8YJy0wllT6qMjQebtzntogQAH5MaBGAYc,95353
89
+ voice_mode/frontend/.next/server/chunks/994.js,sha256=O0BwQHvTudqV92K_-1YPG-tt-zAe5AUtjUf2rq_NfpM,95353
88
90
  voice_mode/frontend/.next/server/chunks/font-manifest.json,sha256=T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU,2
89
- voice_mode/frontend/.next/server/pages/404.html,sha256=q_9tLbmeD4MUuKjjjfQIWlTe_K2v7MM3a3UjkOSh4y0,6752
90
- voice_mode/frontend/.next/server/pages/500.html,sha256=Bi8cr0cxPwR6PsxAdXTda09a_C8mWYKwEUdIgbL6jcI,1995
91
+ voice_mode/frontend/.next/server/pages/404.html,sha256=2pDWaxvhex_WxD09-fDo2jnnNKXPv-kV-babSbDpfxo,6752
92
+ voice_mode/frontend/.next/server/pages/500.html,sha256=rzLoSCUz1ihMN-tJSPJ5bUHGSDnoqJdPUnOxasaYyJ4,1995
91
93
  voice_mode/frontend/.next/server/pages/_app.js,sha256=xv0yBH2BTySxH6d7_oFG8KbedK3Jhvvg9SQ7pSaSPrE,3291
92
94
  voice_mode/frontend/.next/server/pages/_app.js.nft.json,sha256=4DM09IfF6_ws-h14UVrroVq0Ri8tNeDEwwZ2c244nKM,517
93
95
  voice_mode/frontend/.next/server/pages/_document.js,sha256=q-VJKG6tPCpEYWhP0UobYWG_naYdKPuqkRpb4HGMV_Y,378
@@ -95,51 +97,51 @@ voice_mode/frontend/.next/server/pages/_document.js.nft.json,sha256=7WnWXoJIsRyt
95
97
  voice_mode/frontend/.next/server/pages/_error.js,sha256=1se20NEwePcXdV17_wUw4YhoMwVAenxiXI74aXSRqzU,8619
96
98
  voice_mode/frontend/.next/server/pages/_error.js.nft.json,sha256=uK8O79iTeItVu_-Dz90fkTMA1GYxQEpTWU8TndjkfVQ,1855
97
99
  voice_mode/frontend/.next/standalone/package.json,sha256=BUOh3UiaHq1D0Bww-jy2EjhOi-47rjOipeUqXONJndo,1150
98
- voice_mode/frontend/.next/standalone/server.js,sha256=5GAAkp73SmspORQ6bJNBnC6DzwaQjrOVJj1BvUiGa6Q,4741
99
- voice_mode/frontend/.next/standalone/.next/BUILD_ID,sha256=hE-yJ_jVllXAfXvoGYavRnTQ0jdVsH9x46eXCqq_0A0,21
100
- voice_mode/frontend/.next/standalone/.next/app-build-manifest.json,sha256=OcA5KgRdRcslItflAHJtvGnx9ID-e9AYV6iFQ1iRclw,1010
100
+ voice_mode/frontend/.next/standalone/server.js,sha256=73mmdWf8FDxRobQsxrHhbv-TZwlS0zdPHJSHb0kbw30,4741
101
+ voice_mode/frontend/.next/standalone/.next/BUILD_ID,sha256=X8mM7A2zGJIziuQCTboK0AfIHeu3FjDDXqdn7cHdyPk,21
102
+ voice_mode/frontend/.next/standalone/.next/app-build-manifest.json,sha256=TbicmWux7jTCd0CvX1BjxduI37r41Ptv3z9ioyT4cOg,1010
101
103
  voice_mode/frontend/.next/standalone/.next/app-path-routes-manifest.json,sha256=-WXlpEHFoCBUDPfxzUJleLsfZiEUU-rU0hRMZ8AVIJI,140
102
- voice_mode/frontend/.next/standalone/.next/build-manifest.json,sha256=Yb_7n3fa0yDgR1oB4oB6GVsSuYgAu8UPxBwqhmng0Eo,968
104
+ voice_mode/frontend/.next/standalone/.next/build-manifest.json,sha256=oYhHV2oq0s7bauA3EcRMGtVDVZVCH0JhHllYbOC-op4,968
103
105
  voice_mode/frontend/.next/standalone/.next/package.json,sha256=CRoE-mfHkHuY4Qb8_4uWThMSl1T85y0k8wJbl8SIf6M,20
104
- voice_mode/frontend/.next/standalone/.next/prerender-manifest.json,sha256=vPDGPQANPSNhmaaTndiMb7PSlw5-tsL8y0Pp0wpe8iQ,959
106
+ voice_mode/frontend/.next/standalone/.next/prerender-manifest.json,sha256=FjKA8DpKBKRyH-bMWdUTbW_m0hIBAsgbZfW8FX9j7io,959
105
107
  voice_mode/frontend/.next/standalone/.next/react-loadable-manifest.json,sha256=RBNvo1WzZ4oRRq0W9-hknpT7T8If536DEMBg9hyq_4o,2
106
- voice_mode/frontend/.next/standalone/.next/required-server-files.json,sha256=Rqm3vcvhglO8m0PmP14SKOIgkv1YZcANsBfrAYkVskk,4748
108
+ voice_mode/frontend/.next/standalone/.next/required-server-files.json,sha256=2gTll7ptAM4go8kDbVaj_4wpnslw0c7z1qV9AgmaLSk,4748
107
109
  voice_mode/frontend/.next/standalone/.next/routes-manifest.json,sha256=DqV6K_WLiS6wKvdr8TpF7-uBhH7xbrg7xeznwWaeO70,831
108
110
  voice_mode/frontend/.next/standalone/.next/server/app-paths-manifest.json,sha256=Xyxtr52aubW5XDHj7Ms66qiSJfwCkBVeL3ekU8uh2os,202
109
111
  voice_mode/frontend/.next/standalone/.next/server/font-manifest.json,sha256=T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU,2
110
- voice_mode/frontend/.next/standalone/.next/server/middleware-build-manifest.js,sha256=sQF6mxe7pQ4zPkcZVZXj3dr1f-09EWPwg7bE_HcS0p8,888
112
+ voice_mode/frontend/.next/standalone/.next/server/middleware-build-manifest.js,sha256=FHEzt7xsFLvGqBbSTYTf-m93jGOgs0U6kpkDWw9_Jss,888
111
113
  voice_mode/frontend/.next/standalone/.next/server/middleware-manifest.json,sha256=CoUgvH4Hb3rnF8LWJxOZDIPoo9dGJvMno4RLwFBOIQw,83
112
114
  voice_mode/frontend/.next/standalone/.next/server/middleware-react-loadable-manifest.js,sha256=rS557JHipUQIQNo9i9IiwnmztMR-ialoMnpm9ssS64I,36
113
- voice_mode/frontend/.next/standalone/.next/server/next-font-manifest.js,sha256=XiGeBnLrAEWWeaxkXF5Z8A4Ob_mUQuldA4BylueeqC0,228
114
- voice_mode/frontend/.next/standalone/.next/server/next-font-manifest.json,sha256=lwU7Vjy3AMXonaptrePtYPTGvc8qN_rjETYXRfgj2Z0,199
115
- voice_mode/frontend/.next/standalone/.next/server/pages-manifest.json,sha256=ptJq1G84_Lb0cz0SsGWiPahXaPhZZBBwfMkxeoLoNq8,111
115
+ voice_mode/frontend/.next/standalone/.next/server/next-font-manifest.js,sha256=48R-8_QE-NBHoAz9InqM4V52FveyFXrhmU9VmGm62Q4,228
116
+ voice_mode/frontend/.next/standalone/.next/server/next-font-manifest.json,sha256=xIrCi3FgEDgWRXCg8JuPlcuHiQ593w5HojugXpE7XHw,199
117
+ voice_mode/frontend/.next/standalone/.next/server/pages-manifest.json,sha256=CtIVJgXR_t73dArygJmC6GsgbxLMM1N2fAUgg0-bUc8,111
116
118
  voice_mode/frontend/.next/standalone/.next/server/server-reference-manifest.js,sha256=zgEAbADh9jvL_kGz9-3SYNlptB0KMjtwXETh753xPYw,123
117
- voice_mode/frontend/.next/standalone/.next/server/server-reference-manifest.json,sha256=-cE5DNr8x5GxyyFyQOJKi4iKhnMc7Arqwxco9Dmppic,84
119
+ voice_mode/frontend/.next/standalone/.next/server/server-reference-manifest.json,sha256=3S8y_-eald-J3m7vHsR-h6505VyYLqn0dEESacMDILA,84
118
120
  voice_mode/frontend/.next/standalone/.next/server/webpack-runtime.js,sha256=mmuyol21D9il2KNetWeEUG5OBu3z05WsphIyIbwvads,1469
119
- voice_mode/frontend/.next/standalone/.next/server/app/_not-found.html,sha256=q_9tLbmeD4MUuKjjjfQIWlTe_K2v7MM3a3UjkOSh4y0,6752
121
+ voice_mode/frontend/.next/standalone/.next/server/app/_not-found.html,sha256=2pDWaxvhex_WxD09-fDo2jnnNKXPv-kV-babSbDpfxo,6752
120
122
  voice_mode/frontend/.next/standalone/.next/server/app/_not-found.meta,sha256=8-vSzkZIhJgJ7_uOmMyzHNf5QN3Exhbk-5ObKal4lrc,142
121
- voice_mode/frontend/.next/standalone/.next/server/app/_not-found.rsc,sha256=RfZxkLsJjUX6hVfGS_O21Aw9qivNhaGREZRO3-sYgqk,3621
123
+ voice_mode/frontend/.next/standalone/.next/server/app/_not-found.rsc,sha256=kuPjH4c5f77TE3wFHNLYWbXHGKvUmZkTYe8-OCMcFmc,3621
122
124
  voice_mode/frontend/.next/standalone/.next/server/app/favicon.ico.body,sha256=Cc2QdQ-OI3iME7dIf86sbqXHW3D8LPUprF_KB2KZogI,15406
123
125
  voice_mode/frontend/.next/standalone/.next/server/app/favicon.ico.meta,sha256=iac7LJDMkBlPpPPzKMbIDSh2bqoxNKhYx_5nQjo5Tds,211
124
- voice_mode/frontend/.next/standalone/.next/server/app/index.html,sha256=ZaoD9HjyXTvDc2fllZBLogq8vKoVT1gnbzM9QpX3o2o,5396
126
+ voice_mode/frontend/.next/standalone/.next/server/app/index.html,sha256=SwAtfhXUKOX_76RfM5TBad0BDut0_ZEXbWOGNXM9_8o,5396
125
127
  voice_mode/frontend/.next/standalone/.next/server/app/index.meta,sha256=BDswoSxeaM0dEV3Vl3-2HNVKE5mS5NQhBYZcQQt5mnQ,80
126
- voice_mode/frontend/.next/standalone/.next/server/app/index.rsc,sha256=SGhGwcdkbGm6sIxXGjtfCe96MecsWRKX7bL7peU3RyI,2438
127
- voice_mode/frontend/.next/standalone/.next/server/app/page.js,sha256=_we1HSUpK9ea9YGNbLdqIcftZ2KlNoyA-Itc4L1vT7M,611918
128
+ voice_mode/frontend/.next/standalone/.next/server/app/index.rsc,sha256=3bb6p6dDhy2xjuW6LtBjRJ-hc2hT6tn3WWKGrw_TcKA,2438
129
+ voice_mode/frontend/.next/standalone/.next/server/app/page.js,sha256=Hp9JTC2uchhs8UnIXH4Gvu9fbm5-oHDcNERBClgyIHk,611916
128
130
  voice_mode/frontend/.next/standalone/.next/server/app/page.js.nft.json,sha256=6plKkaMV7NDsYDUQsMAnayayODq1vS_l6nRXRrm9Trg,1168
129
- voice_mode/frontend/.next/standalone/.next/server/app/page_client-reference-manifest.js,sha256=TVHcueBC5wz3zFE-oZgg10EfNVFj0AoJw085ln2KT64,4174
130
- voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page.js,sha256=cpelFDSItniBO3x7R1f79vkav6vtq2v1Q-dGCbFqU3A,3384
131
+ voice_mode/frontend/.next/standalone/.next/server/app/page_client-reference-manifest.js,sha256=VvH-_StmoLGhe8Jmsi9kz7yfLJcBt5J6R3dmOgtGxyY,4174
132
+ voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page.js,sha256=S6Go3tvpDHllmLa6n5bqaFUfSlpCvsSeSVhM0DkPTnI,3386
131
133
  voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page.js.nft.json,sha256=7Z_Wav7koMsnepi3GignvrVRYuDbzwvKqqg84LuoSis,1195
132
- voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js,sha256=_P9pC51CSQpX98NGuDwAXq33GzE-Y-tmBYSEfoAf-n0,4277
133
- voice_mode/frontend/.next/standalone/.next/server/app/api/connection-details/route.js,sha256=E09dIdh0Sza5c3vYkikuqdpDrvXrIY7BIsDOtE5dSk4,121019
134
+ voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js,sha256=nrXXJMUl-MMZgH2B_mHJi6KMoRcBQ3P54frTykAZOR8,4277
135
+ voice_mode/frontend/.next/standalone/.next/server/app/api/connection-details/route.js,sha256=TkNeEqpmhwkvo2rFKf6CqD_8Q64rUgjhvJsfWVLOYeI,121019
134
136
  voice_mode/frontend/.next/standalone/.next/server/app/api/connection-details/route.js.nft.json,sha256=qjdiqEpb5s6iSOQsC1MI3A0_sVjbF9Eh1t1mR_VcS9o,1327
135
- voice_mode/frontend/.next/standalone/.next/server/app/favicon.ico/route.js,sha256=ezmKuD--jpHbcFE2z-d493iBnTxHtbKpqBD_-ZgCUXA,66227
137
+ voice_mode/frontend/.next/standalone/.next/server/app/favicon.ico/route.js,sha256=gTi_QAzv8VbEOfw4T4E1Txcf-zJn2GuWoOqsG78frBY,66227
136
138
  voice_mode/frontend/.next/standalone/.next/server/app/favicon.ico/route.js.nft.json,sha256=xn4G0NuxuIbLuaN_3PVtjN4lYs5MWduPcvqhdZwRNkQ,1248
137
139
  voice_mode/frontend/.next/standalone/.next/server/chunks/463.js,sha256=9Fg9G6vSgz6lLnnirTbzQKyy5MQAf59a16SvYM0xDFc,6201
138
140
  voice_mode/frontend/.next/standalone/.next/server/chunks/682.js,sha256=dxTmuBsZ77qjHYtQvwM0HeoE4FnESxOOpTnhW3ABg18,33636
139
141
  voice_mode/frontend/.next/standalone/.next/server/chunks/948.js,sha256=2QNDLi5TnS9qLpgKRmsx_sJzO2vtdQJIRn124o6fjeI,57650
140
- voice_mode/frontend/.next/standalone/.next/server/chunks/994.js,sha256=kX3p3kldpX8YJy0wllT6qMjQebtzntogQAH5MaBGAYc,95353
141
- voice_mode/frontend/.next/standalone/.next/server/pages/404.html,sha256=q_9tLbmeD4MUuKjjjfQIWlTe_K2v7MM3a3UjkOSh4y0,6752
142
- voice_mode/frontend/.next/standalone/.next/server/pages/500.html,sha256=Bi8cr0cxPwR6PsxAdXTda09a_C8mWYKwEUdIgbL6jcI,1995
142
+ voice_mode/frontend/.next/standalone/.next/server/chunks/994.js,sha256=O0BwQHvTudqV92K_-1YPG-tt-zAe5AUtjUf2rq_NfpM,95353
143
+ voice_mode/frontend/.next/standalone/.next/server/pages/404.html,sha256=2pDWaxvhex_WxD09-fDo2jnnNKXPv-kV-babSbDpfxo,6752
144
+ voice_mode/frontend/.next/standalone/.next/server/pages/500.html,sha256=rzLoSCUz1ihMN-tJSPJ5bUHGSDnoqJdPUnOxasaYyJ4,1995
143
145
  voice_mode/frontend/.next/standalone/.next/server/pages/_app.js,sha256=xv0yBH2BTySxH6d7_oFG8KbedK3Jhvvg9SQ7pSaSPrE,3291
144
146
  voice_mode/frontend/.next/standalone/.next/server/pages/_app.js.nft.json,sha256=4DM09IfF6_ws-h14UVrroVq0Ri8tNeDEwwZ2c244nKM,517
145
147
  voice_mode/frontend/.next/standalone/.next/server/pages/_document.js,sha256=q-VJKG6tPCpEYWhP0UobYWG_naYdKPuqkRpb4HGMV_Y,378
@@ -152,11 +154,11 @@ voice_mode/frontend/.next/static/chunks/471-bd4b96a33883dfa2.js,sha256=qT-fK-XMK
152
154
  voice_mode/frontend/.next/static/chunks/fd9d1056-af324d327b243cf1.js,sha256=uL3flIHYWdZI4eBQ-DIus97-PdP5vRP0xE3W8uz1q4A,172834
153
155
  voice_mode/frontend/.next/static/chunks/framework-f66176bb897dc684.js,sha256=QlDVPwvHVuzi3daQoAit0df9yIdSjGcfTf6NkW13h7c,139978
154
156
  voice_mode/frontend/.next/static/chunks/main-3163eca598b76a9f.js,sha256=IwuNOgi-ik3KFA_tnaPvAfRY5q6hTp4DRK1lkjkWdwQ,116431
155
- voice_mode/frontend/.next/static/chunks/main-app-d02bd38ac01adb8a.js,sha256=WhAQzLnKat8umJkSuZXpFOCEpRFGXfYsP6E0gULY7zM,461
157
+ voice_mode/frontend/.next/static/chunks/main-app-80dc9078926fc708.js,sha256=D-PVryGilnEPI0aL1gEDJpRTw4Q_0iiHuL5pdUpWdeE,461
156
158
  voice_mode/frontend/.next/static/chunks/polyfills-42372ed130431b0a.js,sha256=CXPB1kyIrcjjyVBBDLWLKI9yEY1ZZbeASUON648vloM,112594
157
159
  voice_mode/frontend/.next/static/chunks/webpack-0ea9b80f19935b70.js,sha256=1Us0m_ZxEgMEb2DAN4ePlpq9Fv7QqUxcuV2CqICEB5w,3605
158
- voice_mode/frontend/.next/static/chunks/app/layout-fcb9b9ba5b72c7fc.js,sha256=dg2FEtz5kKV_fiTuEo33K90RkhoYw8O7g5zzUuKISpI,507
159
- voice_mode/frontend/.next/static/chunks/app/page-7c7ec2ad413ace39.js,sha256=RIWWxIbPtXzOaqGzitXFaPcO1yfSybDxppab6WHReJ0,7666
160
+ voice_mode/frontend/.next/static/chunks/app/layout-b52135f331b36caf.js,sha256=VpdPaL0__vCEqXGkSK041xVI5xFm9BBD8eRCLUC_L-U,507
161
+ voice_mode/frontend/.next/static/chunks/app/page-43b7b45e01f0aa87.js,sha256=S2CEIEq-jiw4GlZ-w4_1ZCyhZ0jH-uQlM26bWrH2mDA,7666
160
162
  voice_mode/frontend/.next/static/chunks/app/_not-found/page-5011050e402ab9c8.js,sha256=u5LYOU4LZ2HFeEcz6xZqSflSnU4WDt-TnQNu3CdcEWk,1745
161
163
  voice_mode/frontend/.next/static/chunks/pages/_app-72b849fbd24ac258.js,sha256=QN-PY1h1HDIO4K4ZYwFl6rtEeaxWCynYauVLK_oWmzE,280
162
164
  voice_mode/frontend/.next/static/chunks/pages/_error-7ba65e1336b92748.js,sha256=oxr2dz6MkKWnm3jN3fWb2RPhCHB4-JgrzVMS_wTNr_E,247
@@ -164,12 +166,12 @@ voice_mode/frontend/.next/static/css/a2f49a47752b5010.css,sha256=7geCVBj6YoIVhB9
164
166
  voice_mode/frontend/.next/static/media/01099be941da1820-s.woff2,sha256=ZaNN8qxUZFV4kxOD_j6TGAYAHwR01MPDQloeIbMgCeg,10436
165
167
  voice_mode/frontend/.next/static/media/39883d31a7792467-s.p.woff2,sha256=i_qVPOm6vZ-H4B0Mk_d5yUQR_YKsz4XRc-8J2R_QWKs,14620
166
168
  voice_mode/frontend/.next/static/media/6368404d2e8d66fe-s.woff2,sha256=2GFQ1JjbLJOSmwrIsgCHPVMSJpcx2QX2i13kJbg8IFE,4464
167
- voice_mode/frontend/.next/static/pbDjheefW1LwCua_8mPoZ/_buildManifest.js,sha256=UGi5XJhF4u-NRxMqU360JM2afxCS1essSVUEqY6sl5c,224
168
- voice_mode/frontend/.next/static/pbDjheefW1LwCua_8mPoZ/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
169
+ voice_mode/frontend/.next/static/uZHYPdRYOObTZ3MQHekp0/_buildManifest.js,sha256=UGi5XJhF4u-NRxMqU360JM2afxCS1essSVUEqY6sl5c,224
170
+ voice_mode/frontend/.next/static/uZHYPdRYOObTZ3MQHekp0/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
169
171
  voice_mode/frontend/.next/types/package.json,sha256=49WkothVGqUsWgHSoO-y4GotlxG09cXx0g3m4hgH4s0,18
170
- voice_mode/frontend/.next/types/app/layout.ts,sha256=NxctocyDNeR2eIQCRxD26ySxwtTkqtJrOAHHuBQHxwo,3510
171
- voice_mode/frontend/.next/types/app/page.ts,sha256=X-18I8tvuS-h0jTM9r-L9Sfz3k0JoF4hEe3TJL9pw30,3498
172
- voice_mode/frontend/.next/types/app/api/connection-details/route.ts,sha256=3reAVi9Cax6CozSlpZghuQmcnqd8SDAnPA7BqYa0K24,8530
172
+ voice_mode/frontend/.next/types/app/layout.ts,sha256=-DqjhdONU-KBvfFtB0EnhC4uHYjCfiARRqXKVAE07x8,3510
173
+ voice_mode/frontend/.next/types/app/page.ts,sha256=pLhf59_rVTnYjUyP_AOuthuGdW03odztYBV1MMO-pf8,3498
174
+ voice_mode/frontend/.next/types/app/api/connection-details/route.ts,sha256=HRJLEZyUmVga-xtDblZSNgEiPXo9_IJyn62QW92ima8,8530
173
175
  voice_mode/frontend/app/favicon.ico,sha256=Cc2QdQ-OI3iME7dIf86sbqXHW3D8LPUprF_KB2KZogI,15406
174
176
  voice_mode/frontend/app/globals.css,sha256=yMCx8ta7sGyt40nzBTlRR644nlAGGYt73zj7e9YLgl4,362
175
177
  voice_mode/frontend/app/layout.tsx,sha256=Q0LYcf_Z8GT8zDhlWgk7XEZArp2ZS2HpB1tmv3epp68,537
@@ -206,6 +208,7 @@ voice_mode/templates/systemd/voicemode-kokoro.service,sha256=5JGv_Xf9u2MvmbGLBQt
206
208
  voice_mode/templates/systemd/voicemode-livekit.service,sha256=hVjT4Vd0SOABXGYbp9iF9R6SWtXXLfRXt7i1xbud6Lg,692
207
209
  voice_mode/templates/systemd/voicemode-whisper.service,sha256=aa5gIHI9xKF0M_DY6SO95QHRFhkV2JOzmFVo2U8RhN4,844
208
210
  voice_mode/tools/__init__.py,sha256=Hd8-dNoB58apt6PqMCfGHYDAeQWbarFrMRfxseJi8Jo,1069
211
+ voice_mode/tools/claude_thinking.py,sha256=MKKhk1gxCKmAEKyCmO0iccB491VHJI_LueyUpLAD5Rw,11028
209
212
  voice_mode/tools/configuration_management.py,sha256=jR6WYsrkeWRohI8_9kk48YQ6GNwdiMAuTXx3vln_m4w,12748
210
213
  voice_mode/tools/converse.py,sha256=7wKF0rcU_gO6b4YcyvlfQFPx6ALqVIV5OREhclpRLDE,104926
211
214
  voice_mode/tools/dependencies.py,sha256=V72gS_bD0pCmW_be2Hxs_cEnIoNPFKlK7rE9cLMTDGE,6670
@@ -234,6 +237,10 @@ voice_mode/tools/services/whisper/model_install.py,sha256=v6huRo40nSKECR5nUCwVOX
234
237
  voice_mode/tools/services/whisper/model_remove.py,sha256=zlt4C7uxvdPSUNge-dMsfLNYTPDwWa6eXRBGGVzV11Y,1139
235
238
  voice_mode/tools/services/whisper/models.py,sha256=423rNK45vsciIUxVve3nntH-8v2NBd7V8Wk7t0kQShM,14902
236
239
  voice_mode/tools/services/whisper/uninstall.py,sha256=M81JCwCSbmV_tnuXB1jkn-V9BhSqmwAQVpHKbb62skc,8393
240
+ voice_mode/tools/sound_fonts/__init__.py,sha256=fBEz4cgzf4TSbrM-PIFfpxRXSZxMQpUOeTcBDv8IQkg,40
241
+ voice_mode/tools/sound_fonts/audio_player.py,sha256=G6atrGlWXIA_Pdl-fgBa5D4Pw0tP39HgF0tqD-T489U,2729
242
+ voice_mode/tools/sound_fonts/hook_handler.py,sha256=1cKKeYzWvWBZSWmrM65l161hB1yP1YmYRHnq3u9vcdA,3357
243
+ voice_mode/tools/sound_fonts/player.py,sha256=pmiOwNelc78GcTFMu5BxJ745T2jE_fe4TZ8FtoFleR8,7038
237
244
  voice_mode/tools/transcription/__init__.py,sha256=DTDBkpZZ_VLotiIqPm_fhCmKV1naGpmSU5rTV23zals,388
238
245
  voice_mode/tools/transcription/backends.py,sha256=0fHxqFo61QLGdouzTk6jNOExmpcm5GTB3dqcuLEDHlk,8794
239
246
  voice_mode/tools/transcription/core.py,sha256=UUCEuLudhq-VEem5T_e6xxlNtZZUMbQd_8PJApQr3dA,4353
@@ -253,7 +260,7 @@ voice_mode/utils/services/kokoro_helpers.py,sha256=57NsS1i4ptk5Gg3zm5g68QhtV3aU3
253
260
  voice_mode/utils/services/livekit_helpers.py,sha256=OFw0GxVIJAZE2m9dGCDZVegWD-LnMO6iSjcOUDgAA9U,3627
254
261
  voice_mode/utils/services/whisper_helpers.py,sha256=1Oy9TR5g5-l6j07KaWlAoijkCUDGaTWIz__BXvV0TWw,19632
255
262
  voice_mode/utils/services/whisper_version.py,sha256=68e0Oa-tG73IJlla-e3P0sh_qzBF4ToYBe4KKZ2FvEY,4861
256
- voice_mode-4.1.0.dist-info/METADATA,sha256=6em-4fnNI-PHvWZboKE_kZRGbiU1ulVTI3tdmTe1Frs,25459
257
- voice_mode-4.1.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
258
- voice_mode-4.1.0.dist-info/entry_points.txt,sha256=hS5faHc0R5Fde3Z_uvz8u6YkRIYtvh17X8tVN90Rbro,95
259
- voice_mode-4.1.0.dist-info/RECORD,,
263
+ voice_mode-4.3.1.dist-info/METADATA,sha256=v4Ba0ooQdyWpeCUCehzrcAmQ08dTWh1Sz2f3K8p2lww,25459
264
+ voice_mode-4.3.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
265
+ voice_mode-4.3.1.dist-info/entry_points.txt,sha256=hS5faHc0R5Fde3Z_uvz8u6YkRIYtvh17X8tVN90Rbro,95
266
+ voice_mode-4.3.1.dist-info/RECORD,,