voice-mode 4.3.2__py3-none-any.whl → 4.5.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- voice_mode/__version__.py +1 -1
- voice_mode/cli.py +82 -5
- voice_mode/cli_commands/claude.py +6 -199
- voice_mode/cli_commands/hook.py +13 -16
- voice_mode/cli_commands/transcribe.py +7 -6
- voice_mode/config.py +1 -1
- voice_mode/conversation_logger.py +6 -0
- voice_mode/core.py +9 -2
- voice_mode/frontend/.next/BUILD_ID +1 -1
- voice_mode/frontend/.next/app-build-manifest.json +5 -5
- voice_mode/frontend/.next/build-manifest.json +3 -3
- voice_mode/frontend/.next/next-minimal-server.js.nft.json +1 -1
- voice_mode/frontend/.next/next-server.js.nft.json +1 -1
- voice_mode/frontend/.next/prerender-manifest.json +1 -1
- voice_mode/frontend/.next/required-server-files.json +1 -1
- voice_mode/frontend/.next/server/app/_not-found/page.js +1 -1
- voice_mode/frontend/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- voice_mode/frontend/.next/server/app/_not-found.html +1 -1
- voice_mode/frontend/.next/server/app/_not-found.rsc +1 -1
- voice_mode/frontend/.next/server/app/api/connection-details/route.js +2 -2
- voice_mode/frontend/.next/server/app/favicon.ico/route.js +2 -2
- voice_mode/frontend/.next/server/app/index.html +1 -1
- voice_mode/frontend/.next/server/app/index.rsc +2 -2
- voice_mode/frontend/.next/server/app/page.js +2 -2
- voice_mode/frontend/.next/server/app/page_client-reference-manifest.js +1 -1
- voice_mode/frontend/.next/server/chunks/994.js +2 -2
- voice_mode/frontend/.next/server/middleware-build-manifest.js +1 -1
- voice_mode/frontend/.next/server/next-font-manifest.js +1 -1
- voice_mode/frontend/.next/server/next-font-manifest.json +1 -1
- voice_mode/frontend/.next/server/pages/404.html +1 -1
- voice_mode/frontend/.next/server/pages/500.html +1 -1
- voice_mode/frontend/.next/server/server-reference-manifest.json +1 -1
- voice_mode/frontend/.next/standalone/.next/BUILD_ID +1 -1
- voice_mode/frontend/.next/standalone/.next/app-build-manifest.json +5 -5
- voice_mode/frontend/.next/standalone/.next/build-manifest.json +3 -3
- voice_mode/frontend/.next/standalone/.next/prerender-manifest.json +1 -1
- voice_mode/frontend/.next/standalone/.next/required-server-files.json +1 -1
- voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page.js +1 -1
- voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- voice_mode/frontend/.next/standalone/.next/server/app/_not-found.html +1 -1
- voice_mode/frontend/.next/standalone/.next/server/app/_not-found.rsc +1 -1
- voice_mode/frontend/.next/standalone/.next/server/app/api/connection-details/route.js +2 -2
- voice_mode/frontend/.next/standalone/.next/server/app/favicon.ico/route.js +2 -2
- voice_mode/frontend/.next/standalone/.next/server/app/index.html +1 -1
- voice_mode/frontend/.next/standalone/.next/server/app/index.rsc +2 -2
- voice_mode/frontend/.next/standalone/.next/server/app/page.js +2 -2
- voice_mode/frontend/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- voice_mode/frontend/.next/standalone/.next/server/chunks/994.js +2 -2
- voice_mode/frontend/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
- voice_mode/frontend/.next/standalone/.next/server/next-font-manifest.js +1 -1
- voice_mode/frontend/.next/standalone/.next/server/next-font-manifest.json +1 -1
- voice_mode/frontend/.next/standalone/.next/server/pages/404.html +1 -1
- voice_mode/frontend/.next/standalone/.next/server/pages/500.html +1 -1
- voice_mode/frontend/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- voice_mode/frontend/.next/standalone/server.js +1 -1
- voice_mode/frontend/.next/static/chunks/app/layout-d3ec7f6f14ea7396.js +1 -0
- voice_mode/frontend/.next/static/chunks/app/{page-728ce55710c9bd80.js → page-471796963fb1a4bd.js} +1 -1
- voice_mode/frontend/.next/static/chunks/{main-app-991c8c54319817e0.js → main-app-78da5e437b6a2a9f.js} +1 -1
- voice_mode/frontend/.next/trace +43 -43
- voice_mode/frontend/.next/types/app/api/connection-details/route.ts +1 -1
- voice_mode/frontend/.next/types/app/layout.ts +1 -1
- voice_mode/frontend/.next/types/app/page.ts +1 -1
- voice_mode/frontend/package-lock.json +26 -15
- voice_mode/provider_discovery.py +55 -79
- voice_mode/providers.py +61 -45
- voice_mode/simple_failover.py +41 -12
- voice_mode/statistics_tracking.py +42 -0
- voice_mode/tools/__init__.py +150 -16
- voice_mode/tools/converse.py +149 -338
- voice_mode/tools/diagnostics.py +2 -1
- voice_mode/tools/statistics.py +0 -33
- voice_mode/tools/voice_registry.py +24 -28
- {voice_mode-4.3.2.dist-info → voice_mode-4.5.0.dist-info}/METADATA +36 -41
- {voice_mode-4.3.2.dist-info → voice_mode-4.5.0.dist-info}/RECORD +78 -78
- voice_mode/frontend/.next/static/chunks/app/layout-d89915a94cb8f604.js +0 -1
- voice_mode/tools/claude_thinking.py +0 -285
- /voice_mode/frontend/.next/static/{-9MkXl-xGB2BLmGEAZVmg → Ni4GIqyDdn0QehvmlLBZg}/_buildManifest.js +0 -0
- /voice_mode/frontend/.next/static/{-9MkXl-xGB2BLmGEAZVmg → Ni4GIqyDdn0QehvmlLBZg}/_ssgManifest.js +0 -0
- {voice_mode-4.3.2.dist-info → voice_mode-4.5.0.dist-info}/WHEEL +0 -0
- {voice_mode-4.3.2.dist-info → voice_mode-4.5.0.dist-info}/entry_points.txt +0 -0
@@ -7,14 +7,14 @@ from voice_mode.provider_discovery import provider_registry
|
|
7
7
|
@mcp.tool()
|
8
8
|
async def voice_registry() -> str:
|
9
9
|
"""Get the current voice provider registry showing all discovered endpoints.
|
10
|
-
|
10
|
+
|
11
11
|
Returns a formatted view of all TTS and STT endpoints with their:
|
12
|
-
- Health status
|
13
12
|
- Available models
|
14
13
|
- Available voices (TTS only)
|
15
|
-
-
|
16
|
-
- Last
|
17
|
-
|
14
|
+
- Provider type
|
15
|
+
- Last check time
|
16
|
+
- Any recent errors
|
17
|
+
|
18
18
|
This allows the LLM to see what voice services are currently available.
|
19
19
|
"""
|
20
20
|
# Ensure registry is initialized
|
@@ -31,36 +31,32 @@ async def voice_registry() -> str:
|
|
31
31
|
lines.append("-" * 30)
|
32
32
|
|
33
33
|
for url, info in registry_data["tts"].items():
|
34
|
-
status = "
|
34
|
+
status = "❌" if info.get("last_error") else "✅"
|
35
35
|
lines.append(f"\n{status} {url}")
|
36
|
-
|
37
|
-
if info["
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
lines.append(f" Last Check: {info['last_check']}")
|
36
|
+
lines.append(f" Provider: {info.get('provider_type', 'unknown')}")
|
37
|
+
lines.append(f" Models: {', '.join(info['models']) if info['models'] else 'none detected'}")
|
38
|
+
lines.append(f" Voices: {', '.join(info['voices']) if info['voices'] else 'none detected'}")
|
39
|
+
|
40
|
+
if info.get("last_error"):
|
41
|
+
lines.append(f" Last Error: {info['last_error']}")
|
42
|
+
|
43
|
+
if info.get('last_check'):
|
44
|
+
lines.append(f" Last Check: {info['last_check']}")
|
47
45
|
|
48
46
|
# STT Endpoints
|
49
47
|
lines.append("\n\nSTT Endpoints:")
|
50
48
|
lines.append("-" * 30)
|
51
49
|
|
52
50
|
for url, info in registry_data["stt"].items():
|
53
|
-
status = "
|
51
|
+
status = "❌" if info.get("last_error") else "✅"
|
54
52
|
lines.append(f"\n{status} {url}")
|
55
|
-
|
56
|
-
if info["
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
lines.append(f" Last Check: {info['last_check']}")
|
53
|
+
lines.append(f" Provider: {info.get('provider_type', 'unknown')}")
|
54
|
+
lines.append(f" Models: {', '.join(info['models']) if info['models'] else 'none detected'}")
|
55
|
+
|
56
|
+
if info.get("last_error"):
|
57
|
+
lines.append(f" Last Error: {info['last_error']}")
|
58
|
+
|
59
|
+
if info.get('last_check'):
|
60
|
+
lines.append(f" Last Check: {info['last_check']}")
|
65
61
|
|
66
62
|
return "\n".join(lines)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: voice-mode
|
3
|
-
Version: 4.
|
3
|
+
Version: 4.5.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
|
@@ -78,6 +78,8 @@ Description-Content-Type: text/markdown
|
|
78
78
|
|
79
79
|
# Voice Mode
|
80
80
|
|
81
|
+
mcp-name: com.failmode/voicemode
|
82
|
+
|
81
83
|
> **Install via:** `uvx voice-mode` | `pip install voice-mode` | [getvoicemode.com](https://getvoicemode.com)
|
82
84
|
|
83
85
|
[](https://pepy.tech/project/voice-mode)
|
@@ -113,7 +115,7 @@ Natural voice conversations for AI assistants. Voice Mode brings human-like voic
|
|
113
115
|
|
114
116
|
## Quick Start
|
115
117
|
|
116
|
-
> 📖 **Using a different tool?** See our [
|
118
|
+
> 📖 **Using a different tool?** See our [Getting Started Guide](docs/tutorials/getting-started.md) for setup instructions!
|
117
119
|
|
118
120
|
### Automatic Installation (Recommended)
|
119
121
|
|
@@ -140,7 +142,7 @@ This installer will:
|
|
140
142
|
|
141
143
|
### Manual Installation
|
142
144
|
|
143
|
-
For manual setup steps, see the [
|
145
|
+
For manual setup steps, see the [Getting Started Guide](docs/tutorials/getting-started.md).
|
144
146
|
|
145
147
|
## 🎬 Demo
|
146
148
|
|
@@ -180,16 +182,16 @@ The `converse` function makes voice interactions natural - it automatically wait
|
|
180
182
|
|
181
183
|
Voice Mode works with your favorite AI coding assistants:
|
182
184
|
|
183
|
-
- 🤖 **
|
184
|
-
- 🖥️ **
|
185
|
-
- 🌟 **
|
186
|
-
- ⚡ **
|
187
|
-
- 💻 **
|
188
|
-
- 🦘 **
|
189
|
-
- 🔧 **
|
190
|
-
- ⚡ **
|
191
|
-
- 🏄 **
|
192
|
-
- 🔄 **
|
185
|
+
- 🤖 **Claude Code** - Anthropic's official CLI
|
186
|
+
- 🖥️ **Claude Desktop** - Desktop application
|
187
|
+
- 🌟 **Gemini CLI** - Google's CLI tool
|
188
|
+
- ⚡ **Cursor** - AI-first code editor
|
189
|
+
- 💻 **VS Code** - With MCP preview support
|
190
|
+
- 🦘 **Roo Code** - AI dev team in VS Code
|
191
|
+
- 🔧 **Cline** - Autonomous coding agent
|
192
|
+
- ⚡ **Zed** - High-performance editor
|
193
|
+
- 🏄 **Windsurf** - Agentic IDE by Codeium
|
194
|
+
- 🔄 **Continue** - Open-source AI assistant
|
193
195
|
|
194
196
|
## Installation
|
195
197
|
|
@@ -208,7 +210,7 @@ sudo apt update
|
|
208
210
|
sudo apt install -y python3-dev libasound2-dev libasound2-plugins libportaudio2 portaudio19-dev ffmpeg pulseaudio pulseaudio-utils
|
209
211
|
```
|
210
212
|
|
211
|
-
**Note for WSL2 users**: WSL2 requires additional audio packages (pulseaudio, libasound2-plugins) for microphone access.
|
213
|
+
**Note for WSL2 users**: WSL2 requires additional audio packages (pulseaudio, libasound2-plugins) for microphone access.
|
212
214
|
</details>
|
213
215
|
|
214
216
|
<details>
|
@@ -259,9 +261,12 @@ claude mcp add --scope user voice-mode uvx voice-mode
|
|
259
261
|
# Using Claude Code with Nix (NixOS)
|
260
262
|
claude mcp add voice-mode nix run github:mbailey/voicemode
|
261
263
|
|
262
|
-
# Using UV
|
264
|
+
# Using UV (recommended)
|
263
265
|
uvx voice-mode
|
264
266
|
|
267
|
+
# For cleanest experience with UV (no deprecation warnings):
|
268
|
+
UV_PYTHON=python3.13 uvx voice-mode
|
269
|
+
|
265
270
|
# Using pip
|
266
271
|
pip install voice-mode
|
267
272
|
|
@@ -271,7 +276,7 @@ nix run github:mbailey/voicemode
|
|
271
276
|
|
272
277
|
### Configuration for AI Coding Assistants
|
273
278
|
|
274
|
-
> 📖 **Looking for detailed setup instructions?** Check our comprehensive [
|
279
|
+
> 📖 **Looking for detailed setup instructions?** Check our comprehensive [Getting Started Guide](docs/tutorials/getting-started.md) for step-by-step instructions!
|
275
280
|
|
276
281
|
Below are quick configuration snippets. For full installation and setup instructions, see the integration guides above.
|
277
282
|
|
@@ -549,12 +554,12 @@ nix run github:mbailey/voicemode
|
|
549
554
|
|
550
555
|
**Note:** The `converse` tool is the primary interface for voice interactions, combining speaking and listening in a natural flow.
|
551
556
|
|
552
|
-
**New:** The `install_whisper_cpp` and `install_kokoro_fastapi` tools help you set up free, private, open-source voice services locally.
|
557
|
+
**New:** The `install_whisper_cpp` and `install_kokoro_fastapi` tools help you set up free, private, open-source voice services locally.
|
553
558
|
|
554
559
|
## Configuration
|
555
560
|
|
556
|
-
- 📖 **[
|
557
|
-
- 🔧 **[Configuration Reference](docs/configuration.md)** - All environment variables
|
561
|
+
- 📖 **[Getting Started](docs/tutorials/getting-started.md)** - Step-by-step setup guide
|
562
|
+
- 🔧 **[Configuration Reference](docs/guides/configuration.md)** - All environment variables
|
558
563
|
- 📁 **[Config Examples](config-examples/)** - Ready-to-use configuration files
|
559
564
|
|
560
565
|
### Quick Setup
|
@@ -616,8 +621,8 @@ The audio format is automatically validated against provider capabilities and wi
|
|
616
621
|
|
617
622
|
For privacy-focused or offline usage, Voice Mode supports local speech services:
|
618
623
|
|
619
|
-
- **[Whisper.cpp](docs/whisper.
|
620
|
-
- **[Kokoro](docs/kokoro.md)** - Local text-to-speech with multiple voice options
|
624
|
+
- **[Whisper.cpp](docs/guides/whisper-setup.md)** - Local speech-to-text with OpenAI-compatible API
|
625
|
+
- **[Kokoro](docs/guides/kokoro-setup.md)** - Local text-to-speech with multiple voice options
|
621
626
|
|
622
627
|
These services provide the same API interface as OpenAI, allowing seamless switching between cloud and local processing.
|
623
628
|
|
@@ -663,7 +668,7 @@ The OpenAI SDK handles this automatically - no Voice Mode configuration needed!
|
|
663
668
|
### Common Issues
|
664
669
|
|
665
670
|
- **No microphone access**: Check system permissions for terminal/application
|
666
|
-
- **WSL2 Users**:
|
671
|
+
- **WSL2 Users**: Additional audio packages (pulseaudio, libasound2-plugins) required for microphone access
|
667
672
|
- **UV not found**: Install with `curl -LsSf https://astral.sh/uv/install.sh | sh`
|
668
673
|
- **OpenAI API error**: Verify your `OPENAI_API_KEY` is set correctly
|
669
674
|
- **No audio output**: Check system audio settings and available devices
|
@@ -703,24 +708,17 @@ Audio files are saved to: `~/.voicemode/audio/YYYY/MM/` with timestamps in the f
|
|
703
708
|
📚 **[Read the full documentation at voice-mode.readthedocs.io](https://voice-mode.readthedocs.io)**
|
704
709
|
|
705
710
|
### Getting Started
|
706
|
-
- **[
|
707
|
-
- **[Configuration Guide](docs/configuration.md)** - Complete environment variable reference
|
711
|
+
- **[Getting Started](docs/tutorials/getting-started.md)** - Step-by-step setup for all supported tools
|
712
|
+
- **[Configuration Guide](docs/guides/configuration.md)** - Complete environment variable reference
|
708
713
|
|
709
714
|
### Development
|
710
|
-
- **[
|
711
|
-
- **[Local Development](docs/local-development-uvx.md)** - Development setup guide
|
712
|
-
- **[Audio Formats](docs/audio-format-migration.md)** - Audio format configuration and migration
|
713
|
-
- **[Statistics Dashboard](docs/statistics-dashboard.md)** - Performance monitoring and metrics
|
715
|
+
- **[Development Setup](docs/tutorials/development-setup.md)** - Local development guide
|
714
716
|
|
715
717
|
### Service Guides
|
716
|
-
- **[Whisper.cpp Setup](docs/whisper.
|
717
|
-
- **[Kokoro Setup](docs/kokoro.md)** - Local text-to-speech configuration
|
718
|
-
- **[
|
719
|
-
- **[LiveKit Integration](docs/livekit/README.md)** - Real-time voice communication
|
718
|
+
- **[Whisper.cpp Setup](docs/guides/whisper-setup.md)** - Local speech-to-text configuration
|
719
|
+
- **[Kokoro Setup](docs/guides/kokoro-setup.md)** - Local text-to-speech configuration
|
720
|
+
- **[LiveKit Integration](docs/guides/livekit-setup.md)** - Real-time voice communication
|
720
721
|
|
721
|
-
### Troubleshooting
|
722
|
-
- **[WSL2 Microphone Access](docs/troubleshooting/wsl2-microphone-access.md)** - WSL2 audio setup
|
723
|
-
- **[Migration Guide](docs/migration-guide.md)** - Upgrading from older versions
|
724
722
|
|
725
723
|
## Links
|
726
724
|
|
@@ -738,15 +736,12 @@ Audio files are saved to: `~/.voicemode/audio/YYYY/MM/` with timestamps in the f
|
|
738
736
|
|
739
737
|
## See Also
|
740
738
|
|
741
|
-
- 🚀 [
|
742
|
-
- 🔧 [Configuration Reference](docs/configuration.md) - Environment variables and options
|
743
|
-
- 🎤 [Local Services Setup](docs/kokoro.md) - Run TTS/STT locally for privacy
|
744
|
-
- 🐛 [Troubleshooting](docs/troubleshooting/README.md) - Common issues and solutions
|
739
|
+
- 🚀 [Getting Started](docs/tutorials/getting-started.md) - Setup instructions for all supported tools
|
740
|
+
- 🔧 [Configuration Reference](docs/guides/configuration.md) - Environment variables and options
|
741
|
+
- 🎤 [Local Services Setup](docs/guides/kokoro-setup.md) - Run TTS/STT locally for privacy
|
745
742
|
|
746
743
|
## License
|
747
744
|
|
748
745
|
MIT - A [Failmode](https://failmode.com) Project
|
749
746
|
|
750
747
|
---
|
751
|
-
|
752
|
-
<sub>[Project Statistics](docs/project-stats/README.md)</sub>
|
@@ -1,25 +1,26 @@
|
|
1
1
|
voice_mode/__init__.py,sha256=PDCwE2rrm8yyYxEiQQJkznQ_4xYp3DWIxGSB84K_mnI,346
|
2
2
|
voice_mode/__main__.py,sha256=td-njie1XgkR-NrQjOEUse4TSJBC8DAmYywHum3V6WQ,138
|
3
|
-
voice_mode/__version__.py,sha256=
|
4
|
-
voice_mode/cli.py,sha256=
|
5
|
-
voice_mode/config.py,sha256=
|
6
|
-
voice_mode/conversation_logger.py,sha256=
|
7
|
-
voice_mode/core.py,sha256=
|
3
|
+
voice_mode/__version__.py,sha256=GG-lRFEh9D_RIUAKuMUHnZd-NurJdlD5eP82m9Boq98,100
|
4
|
+
voice_mode/cli.py,sha256=ASVK_N3ca_ZMBGIzbAp9-PmbNA_7atdJmwNeh833C5g,77420
|
5
|
+
voice_mode/config.py,sha256=WsrRcmsYwNE0p2WzT1FqbuEXsNmBjwFCDiTR7N9hGY8,36357
|
6
|
+
voice_mode/conversation_logger.py,sha256=kqlEDr2o0G8uwv_y2nWkhTqUsCL8xf_j-Y3K-o7naZ0,9665
|
7
|
+
voice_mode/core.py,sha256=QpeOZuFfakNmDWO7HpyrMmJYCO776dkti_e505rd2uI,28787
|
8
8
|
voice_mode/pronounce.py,sha256=D9hKP8Op5PZMn9kalIifNcg3GMBIJOemgnhHGOGQSnU,13752
|
9
|
-
voice_mode/provider_discovery.py,sha256=
|
10
|
-
voice_mode/providers.py,sha256=
|
9
|
+
voice_mode/provider_discovery.py,sha256=AA4Ner4i7ufgQVt1sq9y2csgSyvWwkToNrTzBCDGQtI,14007
|
10
|
+
voice_mode/providers.py,sha256=Wck2_GFSjiQp0WEXA0UsOVcrVTzNWkKdW5dYYRIa9bY,12629
|
11
11
|
voice_mode/server.py,sha256=IhdTtraP51UlmN_yKDAk_ZBBxtkDOEdBV6B4olu7uVA,3044
|
12
12
|
voice_mode/shared.py,sha256=dr6rki6lKPtn6lhkZSXbIJl-rhK9dKXAw6eYpHFhUOU,3468
|
13
|
-
voice_mode/simple_failover.py,sha256=
|
13
|
+
voice_mode/simple_failover.py,sha256=IsEeEytcCrNtev5r9NFPvyhouktiZWr5QDN8eL5Ga6E,7665
|
14
14
|
voice_mode/statistics.py,sha256=ckssYzOJMMgCfmmGNlCRhX4o9y0LWN9Gt42WlEUI3DE,15785
|
15
|
+
voice_mode/statistics_tracking.py,sha256=4F5dW0zSOFvWrw86Zl0hHdOCW9mVLlyGh01Mf8Ex_Fk,1568
|
15
16
|
voice_mode/streaming.py,sha256=AP0dPt8jAGnM_i3qhtPe4334EBQryWxOJ6NPt48tHvE,21744
|
16
17
|
voice_mode/version.py,sha256=rgv7tThj3fBO006bhff3iz_TlfE5uQS4Gws-9xf8YIc,2452
|
17
18
|
voice_mode/cli_commands/__init__.py,sha256=qaIkE-dtA0_s400BfX7h6IIoFQlNrXwGLbuHRhGUjWA,32
|
18
|
-
voice_mode/cli_commands/claude.py,sha256=
|
19
|
+
voice_mode/cli_commands/claude.py,sha256=IjyvTg3639f74926gLAgIxqBBHq0aWcKex_l-zApdxE,287
|
19
20
|
voice_mode/cli_commands/exchanges.py,sha256=R8k_MtiZmDG7ST974MoDTkUKgvGgLNESzTjg2dvZRoY,16828
|
20
|
-
voice_mode/cli_commands/hook.py,sha256=
|
21
|
+
voice_mode/cli_commands/hook.py,sha256=72azdD0_kHlqfDRgo8udqsHYZzAftsvXgFf4LFEMBc0,7374
|
21
22
|
voice_mode/cli_commands/pronounce_commands.py,sha256=uznL2OYGc-asQGSLciHo--o-nyuQV-ZS8ZMoBjmD6o0,7941
|
22
|
-
voice_mode/cli_commands/transcribe.py,sha256=
|
23
|
+
voice_mode/cli_commands/transcribe.py,sha256=ekcWRKVkFWAfg5IQocYJv6aZb-ard3Vd_tr1mEyYQu4,4301
|
23
24
|
voice_mode/data/default_pronunciation.yaml,sha256=LD3TRi2R4A9h8CG5sg9tqF-fLgpMdy7je4A2irLWXY0,6048
|
24
25
|
voice_mode/data/versions.json,sha256=84CR9_GOFEIlBouznSSIoZX7kKY_qZt5aupUgsYnvKs,1166
|
25
26
|
voice_mode/exchanges/__init__.py,sha256=2rNsolj3FzY-3Xes6q_J6a-Eo6oTRWsl8Mu1VmJKeAE,734
|
@@ -32,64 +33,64 @@ voice_mode/exchanges/stats.py,sha256=UVnJnVuqmd64T_iqBLVLPjTIDoyZwRg-MZUFJMHHWxg
|
|
32
33
|
voice_mode/frontend/README.md,sha256=uosvWgNiWL_sP9liv-wnDNdPmJ3oFiLstXygxyzcN7A,2131
|
33
34
|
voice_mode/frontend/next-env.d.ts,sha256=ndnWQs24fU1bMXMhfgxFQps-R6b1z1-w6tbGROxf7QE,228
|
34
35
|
voice_mode/frontend/next.config.mjs,sha256=5kqiwwjpFblS_IHlnDJh7ELk_3rldB6pcSXIbrkytpQ,767
|
35
|
-
voice_mode/frontend/package-lock.json,sha256=
|
36
|
+
voice_mode/frontend/package-lock.json,sha256=QX_tcffxft5W2uW0gOkasXWlGMi-dyeWJP0YkvVIekA,143960
|
36
37
|
voice_mode/frontend/package.json,sha256=BUOh3UiaHq1D0Bww-jy2EjhOi-47rjOipeUqXONJndo,1150
|
37
38
|
voice_mode/frontend/pnpm-lock.yaml,sha256=DSl1H3fb4tNVrHjsc5HbflJJIr95erkADNeUoFY21x4,127796
|
38
39
|
voice_mode/frontend/postcss.config.mjs,sha256=76ZcZeF9UdWFcO3OnXArBgT99qm422Wvrtjwda-IZ8c,157
|
39
40
|
voice_mode/frontend/tailwind.config.ts,sha256=w0mWCjy3kwryNcqgub24YLbmd2V9EvOmWSYHmsFdpkY,264
|
40
41
|
voice_mode/frontend/tsconfig.json,sha256=VCAvHW01ulHD2uoyv2fo2iRWjsDLDDQfoLXtLOsXTy0,574
|
41
|
-
voice_mode/frontend/.next/BUILD_ID,sha256=
|
42
|
-
voice_mode/frontend/.next/app-build-manifest.json,sha256=
|
42
|
+
voice_mode/frontend/.next/BUILD_ID,sha256=uwWH9CrsI8oarjfct-EWT3TtObI5QA-1NNxidL_aCoo,21
|
43
|
+
voice_mode/frontend/.next/app-build-manifest.json,sha256=M91xpeVt-zqc4guaemk7sVVHNTK634Lyv0CXnqLCUfc,1010
|
43
44
|
voice_mode/frontend/.next/app-path-routes-manifest.json,sha256=-WXlpEHFoCBUDPfxzUJleLsfZiEUU-rU0hRMZ8AVIJI,140
|
44
|
-
voice_mode/frontend/.next/build-manifest.json,sha256=
|
45
|
+
voice_mode/frontend/.next/build-manifest.json,sha256=Uk9BgKJTZWE44i2lWbzhvcESZhRGAoxY6V9z2tI0t3w,968
|
45
46
|
voice_mode/frontend/.next/export-marker.json,sha256=ALjrM5QMj5hmGX14xIc2wIFDfLaFKlK3n1wQpwjMagI,94
|
46
47
|
voice_mode/frontend/.next/images-manifest.json,sha256=Z1eB8ppSn86wfAon69Z5DSKbg7IoIvyGB8uCu88xGjs,511
|
47
|
-
voice_mode/frontend/.next/next-minimal-server.js.nft.json,sha256=
|
48
|
-
voice_mode/frontend/.next/next-server.js.nft.json,sha256=
|
48
|
+
voice_mode/frontend/.next/next-minimal-server.js.nft.json,sha256=JhhkRQYQxl9O-SfPkGZriwCPdJgfI-erL3jsiNeC5BU,7314
|
49
|
+
voice_mode/frontend/.next/next-server.js.nft.json,sha256=ckxINEqsPrEEPZoeEbY245pF_WwSdCooNWJNGZSofhw,109011
|
49
50
|
voice_mode/frontend/.next/package.json,sha256=CRoE-mfHkHuY4Qb8_4uWThMSl1T85y0k8wJbl8SIf6M,20
|
50
|
-
voice_mode/frontend/.next/prerender-manifest.json,sha256=
|
51
|
+
voice_mode/frontend/.next/prerender-manifest.json,sha256=mKA_f_V4Y_mUwG8OEwSddQWI1Ig8kz_xicJSN67msfc,959
|
51
52
|
voice_mode/frontend/.next/react-loadable-manifest.json,sha256=RBNvo1WzZ4oRRq0W9-hknpT7T8If536DEMBg9hyq_4o,2
|
52
|
-
voice_mode/frontend/.next/required-server-files.json,sha256=
|
53
|
+
voice_mode/frontend/.next/required-server-files.json,sha256=YqPAm-Us52t74AGKZcSPPyF-MVeTjoPuINYpG_LnNCE,4748
|
53
54
|
voice_mode/frontend/.next/routes-manifest.json,sha256=DqV6K_WLiS6wKvdr8TpF7-uBhH7xbrg7xeznwWaeO70,831
|
54
|
-
voice_mode/frontend/.next/trace,sha256=
|
55
|
+
voice_mode/frontend/.next/trace,sha256=fJT_hc9ZxzYT2_z4K3f22_OQefY36rrMczyw5IWo8IU,894205
|
55
56
|
voice_mode/frontend/.next/server/app-paths-manifest.json,sha256=Xyxtr52aubW5XDHj7Ms66qiSJfwCkBVeL3ekU8uh2os,202
|
56
57
|
voice_mode/frontend/.next/server/font-manifest.json,sha256=T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU,2
|
57
58
|
voice_mode/frontend/.next/server/functions-config-manifest.json,sha256=CUXUfXux-dC5WRXm4vr6xa3f-RKEsEV1aG-hO3KK0CE,56
|
58
59
|
voice_mode/frontend/.next/server/interception-route-rewrite-manifest.js,sha256=_FEz5ArPCeZRewc93XtcDCGNCZOISJAiEPLME_COHIE,48
|
59
|
-
voice_mode/frontend/.next/server/middleware-build-manifest.js,sha256=
|
60
|
+
voice_mode/frontend/.next/server/middleware-build-manifest.js,sha256=H89GegX_iWbL8-XFC5wfs1r3W4OLu_J5m7ncSSwanGE,888
|
60
61
|
voice_mode/frontend/.next/server/middleware-manifest.json,sha256=CoUgvH4Hb3rnF8LWJxOZDIPoo9dGJvMno4RLwFBOIQw,83
|
61
62
|
voice_mode/frontend/.next/server/middleware-react-loadable-manifest.js,sha256=rS557JHipUQIQNo9i9IiwnmztMR-ialoMnpm9ssS64I,36
|
62
|
-
voice_mode/frontend/.next/server/next-font-manifest.js,sha256=
|
63
|
-
voice_mode/frontend/.next/server/next-font-manifest.json,sha256=
|
63
|
+
voice_mode/frontend/.next/server/next-font-manifest.js,sha256=KJDOlB5gXw3iPTV-Gj_syofbGDn6P8nmk5z_FjzO0pc,228
|
64
|
+
voice_mode/frontend/.next/server/next-font-manifest.json,sha256=Etww1LyAvJnsVDN1vDY9GtiO9w5uMz4Kt0WZcJsTB78,199
|
64
65
|
voice_mode/frontend/.next/server/pages-manifest.json,sha256=CtIVJgXR_t73dArygJmC6GsgbxLMM1N2fAUgg0-bUc8,111
|
65
66
|
voice_mode/frontend/.next/server/server-reference-manifest.js,sha256=zgEAbADh9jvL_kGz9-3SYNlptB0KMjtwXETh753xPYw,123
|
66
|
-
voice_mode/frontend/.next/server/server-reference-manifest.json,sha256=
|
67
|
+
voice_mode/frontend/.next/server/server-reference-manifest.json,sha256=Vb7a6mzwwSiiRBM3bV_8pEvRv-NeR9RccWvmRfX5rgY,84
|
67
68
|
voice_mode/frontend/.next/server/webpack-runtime.js,sha256=mmuyol21D9il2KNetWeEUG5OBu3z05WsphIyIbwvads,1469
|
68
|
-
voice_mode/frontend/.next/server/app/_not-found.html,sha256=
|
69
|
+
voice_mode/frontend/.next/server/app/_not-found.html,sha256=o2fOJXUDax57tA3PMcBf_hJ7IgvEJkO0jVzmF7MAn20,6752
|
69
70
|
voice_mode/frontend/.next/server/app/_not-found.meta,sha256=8-vSzkZIhJgJ7_uOmMyzHNf5QN3Exhbk-5ObKal4lrc,142
|
70
|
-
voice_mode/frontend/.next/server/app/_not-found.rsc,sha256=
|
71
|
+
voice_mode/frontend/.next/server/app/_not-found.rsc,sha256=SKMfyAO08c4YoP6I4EnzKfd3yLQza7soL4Cqie-AJEk,3621
|
71
72
|
voice_mode/frontend/.next/server/app/favicon.ico.body,sha256=Cc2QdQ-OI3iME7dIf86sbqXHW3D8LPUprF_KB2KZogI,15406
|
72
73
|
voice_mode/frontend/.next/server/app/favicon.ico.meta,sha256=iac7LJDMkBlPpPPzKMbIDSh2bqoxNKhYx_5nQjo5Tds,211
|
73
|
-
voice_mode/frontend/.next/server/app/index.html,sha256=
|
74
|
+
voice_mode/frontend/.next/server/app/index.html,sha256=nDwxVrhqdT-u5Zp3R6xMl5RbqgLxKMlgQC5UrwfifJI,5396
|
74
75
|
voice_mode/frontend/.next/server/app/index.meta,sha256=BDswoSxeaM0dEV3Vl3-2HNVKE5mS5NQhBYZcQQt5mnQ,80
|
75
|
-
voice_mode/frontend/.next/server/app/index.rsc,sha256=
|
76
|
-
voice_mode/frontend/.next/server/app/page.js,sha256=
|
76
|
+
voice_mode/frontend/.next/server/app/index.rsc,sha256=9U4oHjDLB6shYsBmlIcKnGr2rwHtn8LMI6Q3ZNnEXEU,2438
|
77
|
+
voice_mode/frontend/.next/server/app/page.js,sha256=0WZDWzOYLkV2VSqHuweUdebS9dP5lyW_NstRYFMHWsk,611918
|
77
78
|
voice_mode/frontend/.next/server/app/page.js.nft.json,sha256=6plKkaMV7NDsYDUQsMAnayayODq1vS_l6nRXRrm9Trg,1168
|
78
|
-
voice_mode/frontend/.next/server/app/page_client-reference-manifest.js,sha256=
|
79
|
-
voice_mode/frontend/.next/server/app/_not-found/page.js,sha256=
|
79
|
+
voice_mode/frontend/.next/server/app/page_client-reference-manifest.js,sha256=ks378kKNdfMZGmoH30tGYTyT_Bwl2CxJA3eGjZKBhSo,4174
|
80
|
+
voice_mode/frontend/.next/server/app/_not-found/page.js,sha256=YNiqeK6PwREkGW_rxXT8vrsmjBCBwiny-bWVbO6V_XY,3386
|
80
81
|
voice_mode/frontend/.next/server/app/_not-found/page.js.nft.json,sha256=7Z_Wav7koMsnepi3GignvrVRYuDbzwvKqqg84LuoSis,1195
|
81
|
-
voice_mode/frontend/.next/server/app/_not-found/page_client-reference-manifest.js,sha256=
|
82
|
-
voice_mode/frontend/.next/server/app/api/connection-details/route.js,sha256=
|
82
|
+
voice_mode/frontend/.next/server/app/_not-found/page_client-reference-manifest.js,sha256=5yW_VYN1UTrD-YMXodvcS4TMa1EyaDRJwVJrEUYDg7k,4277
|
83
|
+
voice_mode/frontend/.next/server/app/api/connection-details/route.js,sha256=q_nmDfRHqDZjbGSXZS8624CyltRD80EzIdPINNIg5gs,121019
|
83
84
|
voice_mode/frontend/.next/server/app/api/connection-details/route.js.nft.json,sha256=qjdiqEpb5s6iSOQsC1MI3A0_sVjbF9Eh1t1mR_VcS9o,1327
|
84
|
-
voice_mode/frontend/.next/server/app/favicon.ico/route.js,sha256=
|
85
|
+
voice_mode/frontend/.next/server/app/favicon.ico/route.js,sha256=A3xPZnpozeM9zvcSK15Rm_GuVQJCFHq_PMEkLdNMJOo,66227
|
85
86
|
voice_mode/frontend/.next/server/app/favicon.ico/route.js.nft.json,sha256=xn4G0NuxuIbLuaN_3PVtjN4lYs5MWduPcvqhdZwRNkQ,1248
|
86
87
|
voice_mode/frontend/.next/server/chunks/463.js,sha256=9Fg9G6vSgz6lLnnirTbzQKyy5MQAf59a16SvYM0xDFc,6201
|
87
88
|
voice_mode/frontend/.next/server/chunks/682.js,sha256=dxTmuBsZ77qjHYtQvwM0HeoE4FnESxOOpTnhW3ABg18,33636
|
88
89
|
voice_mode/frontend/.next/server/chunks/948.js,sha256=2QNDLi5TnS9qLpgKRmsx_sJzO2vtdQJIRn124o6fjeI,57650
|
89
|
-
voice_mode/frontend/.next/server/chunks/994.js,sha256=
|
90
|
+
voice_mode/frontend/.next/server/chunks/994.js,sha256=GZ_bT2EbqmIl9Df4AmZUsEgEvZVZmUh3_4-WHXYXBcQ,95353
|
90
91
|
voice_mode/frontend/.next/server/chunks/font-manifest.json,sha256=T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU,2
|
91
|
-
voice_mode/frontend/.next/server/pages/404.html,sha256=
|
92
|
-
voice_mode/frontend/.next/server/pages/500.html,sha256=
|
92
|
+
voice_mode/frontend/.next/server/pages/404.html,sha256=o2fOJXUDax57tA3PMcBf_hJ7IgvEJkO0jVzmF7MAn20,6752
|
93
|
+
voice_mode/frontend/.next/server/pages/500.html,sha256=3pca5QdeyFIPZfALN9DObaQGVgZA5U-CM2bSKBOdmqo,1995
|
93
94
|
voice_mode/frontend/.next/server/pages/_app.js,sha256=xv0yBH2BTySxH6d7_oFG8KbedK3Jhvvg9SQ7pSaSPrE,3291
|
94
95
|
voice_mode/frontend/.next/server/pages/_app.js.nft.json,sha256=4DM09IfF6_ws-h14UVrroVq0Ri8tNeDEwwZ2c244nKM,517
|
95
96
|
voice_mode/frontend/.next/server/pages/_document.js,sha256=q-VJKG6tPCpEYWhP0UobYWG_naYdKPuqkRpb4HGMV_Y,378
|
@@ -97,70 +98,70 @@ voice_mode/frontend/.next/server/pages/_document.js.nft.json,sha256=7WnWXoJIsRyt
|
|
97
98
|
voice_mode/frontend/.next/server/pages/_error.js,sha256=1se20NEwePcXdV17_wUw4YhoMwVAenxiXI74aXSRqzU,8619
|
98
99
|
voice_mode/frontend/.next/server/pages/_error.js.nft.json,sha256=uK8O79iTeItVu_-Dz90fkTMA1GYxQEpTWU8TndjkfVQ,1855
|
99
100
|
voice_mode/frontend/.next/standalone/package.json,sha256=BUOh3UiaHq1D0Bww-jy2EjhOi-47rjOipeUqXONJndo,1150
|
100
|
-
voice_mode/frontend/.next/standalone/server.js,sha256=
|
101
|
-
voice_mode/frontend/.next/standalone/.next/BUILD_ID,sha256=
|
102
|
-
voice_mode/frontend/.next/standalone/.next/app-build-manifest.json,sha256=
|
101
|
+
voice_mode/frontend/.next/standalone/server.js,sha256=qIRqhEvFh9d9RfRKssE1Z6W4oLK_JYeTJWYI0YRJhtY,4741
|
102
|
+
voice_mode/frontend/.next/standalone/.next/BUILD_ID,sha256=uwWH9CrsI8oarjfct-EWT3TtObI5QA-1NNxidL_aCoo,21
|
103
|
+
voice_mode/frontend/.next/standalone/.next/app-build-manifest.json,sha256=M91xpeVt-zqc4guaemk7sVVHNTK634Lyv0CXnqLCUfc,1010
|
103
104
|
voice_mode/frontend/.next/standalone/.next/app-path-routes-manifest.json,sha256=-WXlpEHFoCBUDPfxzUJleLsfZiEUU-rU0hRMZ8AVIJI,140
|
104
|
-
voice_mode/frontend/.next/standalone/.next/build-manifest.json,sha256=
|
105
|
+
voice_mode/frontend/.next/standalone/.next/build-manifest.json,sha256=Uk9BgKJTZWE44i2lWbzhvcESZhRGAoxY6V9z2tI0t3w,968
|
105
106
|
voice_mode/frontend/.next/standalone/.next/package.json,sha256=CRoE-mfHkHuY4Qb8_4uWThMSl1T85y0k8wJbl8SIf6M,20
|
106
|
-
voice_mode/frontend/.next/standalone/.next/prerender-manifest.json,sha256=
|
107
|
+
voice_mode/frontend/.next/standalone/.next/prerender-manifest.json,sha256=mKA_f_V4Y_mUwG8OEwSddQWI1Ig8kz_xicJSN67msfc,959
|
107
108
|
voice_mode/frontend/.next/standalone/.next/react-loadable-manifest.json,sha256=RBNvo1WzZ4oRRq0W9-hknpT7T8If536DEMBg9hyq_4o,2
|
108
|
-
voice_mode/frontend/.next/standalone/.next/required-server-files.json,sha256=
|
109
|
+
voice_mode/frontend/.next/standalone/.next/required-server-files.json,sha256=YqPAm-Us52t74AGKZcSPPyF-MVeTjoPuINYpG_LnNCE,4748
|
109
110
|
voice_mode/frontend/.next/standalone/.next/routes-manifest.json,sha256=DqV6K_WLiS6wKvdr8TpF7-uBhH7xbrg7xeznwWaeO70,831
|
110
111
|
voice_mode/frontend/.next/standalone/.next/server/app-paths-manifest.json,sha256=Xyxtr52aubW5XDHj7Ms66qiSJfwCkBVeL3ekU8uh2os,202
|
111
112
|
voice_mode/frontend/.next/standalone/.next/server/font-manifest.json,sha256=T1PNoYwrqgwDVLtfmj7L5e0Sq02OEbqHPC8RFhICuUU,2
|
112
|
-
voice_mode/frontend/.next/standalone/.next/server/middleware-build-manifest.js,sha256=
|
113
|
+
voice_mode/frontend/.next/standalone/.next/server/middleware-build-manifest.js,sha256=H89GegX_iWbL8-XFC5wfs1r3W4OLu_J5m7ncSSwanGE,888
|
113
114
|
voice_mode/frontend/.next/standalone/.next/server/middleware-manifest.json,sha256=CoUgvH4Hb3rnF8LWJxOZDIPoo9dGJvMno4RLwFBOIQw,83
|
114
115
|
voice_mode/frontend/.next/standalone/.next/server/middleware-react-loadable-manifest.js,sha256=rS557JHipUQIQNo9i9IiwnmztMR-ialoMnpm9ssS64I,36
|
115
|
-
voice_mode/frontend/.next/standalone/.next/server/next-font-manifest.js,sha256=
|
116
|
-
voice_mode/frontend/.next/standalone/.next/server/next-font-manifest.json,sha256=
|
116
|
+
voice_mode/frontend/.next/standalone/.next/server/next-font-manifest.js,sha256=KJDOlB5gXw3iPTV-Gj_syofbGDn6P8nmk5z_FjzO0pc,228
|
117
|
+
voice_mode/frontend/.next/standalone/.next/server/next-font-manifest.json,sha256=Etww1LyAvJnsVDN1vDY9GtiO9w5uMz4Kt0WZcJsTB78,199
|
117
118
|
voice_mode/frontend/.next/standalone/.next/server/pages-manifest.json,sha256=CtIVJgXR_t73dArygJmC6GsgbxLMM1N2fAUgg0-bUc8,111
|
118
119
|
voice_mode/frontend/.next/standalone/.next/server/server-reference-manifest.js,sha256=zgEAbADh9jvL_kGz9-3SYNlptB0KMjtwXETh753xPYw,123
|
119
|
-
voice_mode/frontend/.next/standalone/.next/server/server-reference-manifest.json,sha256=
|
120
|
+
voice_mode/frontend/.next/standalone/.next/server/server-reference-manifest.json,sha256=Vb7a6mzwwSiiRBM3bV_8pEvRv-NeR9RccWvmRfX5rgY,84
|
120
121
|
voice_mode/frontend/.next/standalone/.next/server/webpack-runtime.js,sha256=mmuyol21D9il2KNetWeEUG5OBu3z05WsphIyIbwvads,1469
|
121
|
-
voice_mode/frontend/.next/standalone/.next/server/app/_not-found.html,sha256=
|
122
|
+
voice_mode/frontend/.next/standalone/.next/server/app/_not-found.html,sha256=o2fOJXUDax57tA3PMcBf_hJ7IgvEJkO0jVzmF7MAn20,6752
|
122
123
|
voice_mode/frontend/.next/standalone/.next/server/app/_not-found.meta,sha256=8-vSzkZIhJgJ7_uOmMyzHNf5QN3Exhbk-5ObKal4lrc,142
|
123
|
-
voice_mode/frontend/.next/standalone/.next/server/app/_not-found.rsc,sha256=
|
124
|
+
voice_mode/frontend/.next/standalone/.next/server/app/_not-found.rsc,sha256=SKMfyAO08c4YoP6I4EnzKfd3yLQza7soL4Cqie-AJEk,3621
|
124
125
|
voice_mode/frontend/.next/standalone/.next/server/app/favicon.ico.body,sha256=Cc2QdQ-OI3iME7dIf86sbqXHW3D8LPUprF_KB2KZogI,15406
|
125
126
|
voice_mode/frontend/.next/standalone/.next/server/app/favicon.ico.meta,sha256=iac7LJDMkBlPpPPzKMbIDSh2bqoxNKhYx_5nQjo5Tds,211
|
126
|
-
voice_mode/frontend/.next/standalone/.next/server/app/index.html,sha256=
|
127
|
+
voice_mode/frontend/.next/standalone/.next/server/app/index.html,sha256=nDwxVrhqdT-u5Zp3R6xMl5RbqgLxKMlgQC5UrwfifJI,5396
|
127
128
|
voice_mode/frontend/.next/standalone/.next/server/app/index.meta,sha256=BDswoSxeaM0dEV3Vl3-2HNVKE5mS5NQhBYZcQQt5mnQ,80
|
128
|
-
voice_mode/frontend/.next/standalone/.next/server/app/index.rsc,sha256=
|
129
|
-
voice_mode/frontend/.next/standalone/.next/server/app/page.js,sha256=
|
129
|
+
voice_mode/frontend/.next/standalone/.next/server/app/index.rsc,sha256=9U4oHjDLB6shYsBmlIcKnGr2rwHtn8LMI6Q3ZNnEXEU,2438
|
130
|
+
voice_mode/frontend/.next/standalone/.next/server/app/page.js,sha256=0WZDWzOYLkV2VSqHuweUdebS9dP5lyW_NstRYFMHWsk,611918
|
130
131
|
voice_mode/frontend/.next/standalone/.next/server/app/page.js.nft.json,sha256=6plKkaMV7NDsYDUQsMAnayayODq1vS_l6nRXRrm9Trg,1168
|
131
|
-
voice_mode/frontend/.next/standalone/.next/server/app/page_client-reference-manifest.js,sha256=
|
132
|
-
voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page.js,sha256=
|
132
|
+
voice_mode/frontend/.next/standalone/.next/server/app/page_client-reference-manifest.js,sha256=ks378kKNdfMZGmoH30tGYTyT_Bwl2CxJA3eGjZKBhSo,4174
|
133
|
+
voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page.js,sha256=YNiqeK6PwREkGW_rxXT8vrsmjBCBwiny-bWVbO6V_XY,3386
|
133
134
|
voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page.js.nft.json,sha256=7Z_Wav7koMsnepi3GignvrVRYuDbzwvKqqg84LuoSis,1195
|
134
|
-
voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js,sha256=
|
135
|
-
voice_mode/frontend/.next/standalone/.next/server/app/api/connection-details/route.js,sha256=
|
135
|
+
voice_mode/frontend/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js,sha256=5yW_VYN1UTrD-YMXodvcS4TMa1EyaDRJwVJrEUYDg7k,4277
|
136
|
+
voice_mode/frontend/.next/standalone/.next/server/app/api/connection-details/route.js,sha256=q_nmDfRHqDZjbGSXZS8624CyltRD80EzIdPINNIg5gs,121019
|
136
137
|
voice_mode/frontend/.next/standalone/.next/server/app/api/connection-details/route.js.nft.json,sha256=qjdiqEpb5s6iSOQsC1MI3A0_sVjbF9Eh1t1mR_VcS9o,1327
|
137
|
-
voice_mode/frontend/.next/standalone/.next/server/app/favicon.ico/route.js,sha256=
|
138
|
+
voice_mode/frontend/.next/standalone/.next/server/app/favicon.ico/route.js,sha256=A3xPZnpozeM9zvcSK15Rm_GuVQJCFHq_PMEkLdNMJOo,66227
|
138
139
|
voice_mode/frontend/.next/standalone/.next/server/app/favicon.ico/route.js.nft.json,sha256=xn4G0NuxuIbLuaN_3PVtjN4lYs5MWduPcvqhdZwRNkQ,1248
|
139
140
|
voice_mode/frontend/.next/standalone/.next/server/chunks/463.js,sha256=9Fg9G6vSgz6lLnnirTbzQKyy5MQAf59a16SvYM0xDFc,6201
|
140
141
|
voice_mode/frontend/.next/standalone/.next/server/chunks/682.js,sha256=dxTmuBsZ77qjHYtQvwM0HeoE4FnESxOOpTnhW3ABg18,33636
|
141
142
|
voice_mode/frontend/.next/standalone/.next/server/chunks/948.js,sha256=2QNDLi5TnS9qLpgKRmsx_sJzO2vtdQJIRn124o6fjeI,57650
|
142
|
-
voice_mode/frontend/.next/standalone/.next/server/chunks/994.js,sha256=
|
143
|
-
voice_mode/frontend/.next/standalone/.next/server/pages/404.html,sha256=
|
144
|
-
voice_mode/frontend/.next/standalone/.next/server/pages/500.html,sha256=
|
143
|
+
voice_mode/frontend/.next/standalone/.next/server/chunks/994.js,sha256=GZ_bT2EbqmIl9Df4AmZUsEgEvZVZmUh3_4-WHXYXBcQ,95353
|
144
|
+
voice_mode/frontend/.next/standalone/.next/server/pages/404.html,sha256=o2fOJXUDax57tA3PMcBf_hJ7IgvEJkO0jVzmF7MAn20,6752
|
145
|
+
voice_mode/frontend/.next/standalone/.next/server/pages/500.html,sha256=3pca5QdeyFIPZfALN9DObaQGVgZA5U-CM2bSKBOdmqo,1995
|
145
146
|
voice_mode/frontend/.next/standalone/.next/server/pages/_app.js,sha256=xv0yBH2BTySxH6d7_oFG8KbedK3Jhvvg9SQ7pSaSPrE,3291
|
146
147
|
voice_mode/frontend/.next/standalone/.next/server/pages/_app.js.nft.json,sha256=4DM09IfF6_ws-h14UVrroVq0Ri8tNeDEwwZ2c244nKM,517
|
147
148
|
voice_mode/frontend/.next/standalone/.next/server/pages/_document.js,sha256=q-VJKG6tPCpEYWhP0UobYWG_naYdKPuqkRpb4HGMV_Y,378
|
148
149
|
voice_mode/frontend/.next/standalone/.next/server/pages/_document.js.nft.json,sha256=7WnWXoJIsRytU5c-NAEx-tGGNI1TP2CMldwr8xtDQYk,1932
|
149
150
|
voice_mode/frontend/.next/standalone/.next/server/pages/_error.js,sha256=1se20NEwePcXdV17_wUw4YhoMwVAenxiXI74aXSRqzU,8619
|
150
151
|
voice_mode/frontend/.next/standalone/.next/server/pages/_error.js.nft.json,sha256=uK8O79iTeItVu_-Dz90fkTMA1GYxQEpTWU8TndjkfVQ,1855
|
151
|
-
voice_mode/frontend/.next/static
|
152
|
-
voice_mode/frontend/.next/static
|
152
|
+
voice_mode/frontend/.next/static/Ni4GIqyDdn0QehvmlLBZg/_buildManifest.js,sha256=UGi5XJhF4u-NRxMqU360JM2afxCS1essSVUEqY6sl5c,224
|
153
|
+
voice_mode/frontend/.next/static/Ni4GIqyDdn0QehvmlLBZg/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
|
153
154
|
voice_mode/frontend/.next/static/chunks/117-40bc79a2b97edb21.js,sha256=sKMdOWIlJELukIK1QNRwH8hweTr_NgWzvc-bHWrZ9zM,123528
|
154
155
|
voice_mode/frontend/.next/static/chunks/144d3bae-2d5f122b82426d88.js,sha256=tGa8lG7iuv-oxVEA7BdFJPmskDLIVXYnDOBb6j4_zp8,383332
|
155
156
|
voice_mode/frontend/.next/static/chunks/471-bd4b96a33883dfa2.js,sha256=qT-fK-XMK3eAlXh2APHuRcKfG9EriUu-tXTEcNYWUp0,194375
|
156
157
|
voice_mode/frontend/.next/static/chunks/fd9d1056-af324d327b243cf1.js,sha256=uL3flIHYWdZI4eBQ-DIus97-PdP5vRP0xE3W8uz1q4A,172834
|
157
158
|
voice_mode/frontend/.next/static/chunks/framework-f66176bb897dc684.js,sha256=QlDVPwvHVuzi3daQoAit0df9yIdSjGcfTf6NkW13h7c,139978
|
158
159
|
voice_mode/frontend/.next/static/chunks/main-3163eca598b76a9f.js,sha256=IwuNOgi-ik3KFA_tnaPvAfRY5q6hTp4DRK1lkjkWdwQ,116431
|
159
|
-
voice_mode/frontend/.next/static/chunks/main-app-
|
160
|
+
voice_mode/frontend/.next/static/chunks/main-app-78da5e437b6a2a9f.js,sha256=Fc9dpAVJITfVqhlZHrOFsK4QMOAnvemztRs125QztO4,461
|
160
161
|
voice_mode/frontend/.next/static/chunks/polyfills-42372ed130431b0a.js,sha256=CXPB1kyIrcjjyVBBDLWLKI9yEY1ZZbeASUON648vloM,112594
|
161
162
|
voice_mode/frontend/.next/static/chunks/webpack-0ea9b80f19935b70.js,sha256=1Us0m_ZxEgMEb2DAN4ePlpq9Fv7QqUxcuV2CqICEB5w,3605
|
162
|
-
voice_mode/frontend/.next/static/chunks/app/layout-
|
163
|
-
voice_mode/frontend/.next/static/chunks/app/page-
|
163
|
+
voice_mode/frontend/.next/static/chunks/app/layout-d3ec7f6f14ea7396.js,sha256=PZmYlyqPYRTArR_jFOgop-H9sA_cEJIJe5GackFd4S4,505
|
164
|
+
voice_mode/frontend/.next/static/chunks/app/page-471796963fb1a4bd.js,sha256=rrj7lYD4DJ-B5ZgtI39U703cBKh5uzSyCQKAHKbb3Mo,7666
|
164
165
|
voice_mode/frontend/.next/static/chunks/app/_not-found/page-5011050e402ab9c8.js,sha256=u5LYOU4LZ2HFeEcz6xZqSflSnU4WDt-TnQNu3CdcEWk,1745
|
165
166
|
voice_mode/frontend/.next/static/chunks/pages/_app-72b849fbd24ac258.js,sha256=QN-PY1h1HDIO4K4ZYwFl6rtEeaxWCynYauVLK_oWmzE,280
|
166
167
|
voice_mode/frontend/.next/static/chunks/pages/_error-7ba65e1336b92748.js,sha256=oxr2dz6MkKWnm3jN3fWb2RPhCHB4-JgrzVMS_wTNr_E,247
|
@@ -169,9 +170,9 @@ voice_mode/frontend/.next/static/media/01099be941da1820-s.woff2,sha256=ZaNN8qxUZ
|
|
169
170
|
voice_mode/frontend/.next/static/media/39883d31a7792467-s.p.woff2,sha256=i_qVPOm6vZ-H4B0Mk_d5yUQR_YKsz4XRc-8J2R_QWKs,14620
|
170
171
|
voice_mode/frontend/.next/static/media/6368404d2e8d66fe-s.woff2,sha256=2GFQ1JjbLJOSmwrIsgCHPVMSJpcx2QX2i13kJbg8IFE,4464
|
171
172
|
voice_mode/frontend/.next/types/package.json,sha256=49WkothVGqUsWgHSoO-y4GotlxG09cXx0g3m4hgH4s0,18
|
172
|
-
voice_mode/frontend/.next/types/app/layout.ts,sha256=
|
173
|
-
voice_mode/frontend/.next/types/app/page.ts,sha256=
|
174
|
-
voice_mode/frontend/.next/types/app/api/connection-details/route.ts,sha256=
|
173
|
+
voice_mode/frontend/.next/types/app/layout.ts,sha256=pkpEdeIwMTU122iWWkR5iOLDv5pmhOWO_HgGat4k_5k,3510
|
174
|
+
voice_mode/frontend/.next/types/app/page.ts,sha256=2mHb-74tKKjHxzVKjE8pNuZtzA0WavzIUtH3gyNbtWI,3498
|
175
|
+
voice_mode/frontend/.next/types/app/api/connection-details/route.ts,sha256=U1GEQYbDO60uaCTBISWx1_g_oTQdLARjnhXf5pZzeQg,8530
|
175
176
|
voice_mode/frontend/app/favicon.ico,sha256=Cc2QdQ-OI3iME7dIf86sbqXHW3D8LPUprF_KB2KZogI,15406
|
176
177
|
voice_mode/frontend/app/globals.css,sha256=yMCx8ta7sGyt40nzBTlRR644nlAGGYt73zj7e9YLgl4,362
|
177
178
|
voice_mode/frontend/app/layout.tsx,sha256=Q0LYcf_Z8GT8zDhlWgk7XEZArp2ZS2HpB1tmv3epp68,537
|
@@ -207,18 +208,17 @@ voice_mode/templates/systemd/voicemode-frontend.service,sha256=sWIu_9e24Zo3OKP3X
|
|
207
208
|
voice_mode/templates/systemd/voicemode-kokoro.service,sha256=5JGv_Xf9u2MvmbGLBQtNy07i3T0-KsJHPF06FkN40ms,927
|
208
209
|
voice_mode/templates/systemd/voicemode-livekit.service,sha256=hVjT4Vd0SOABXGYbp9iF9R6SWtXXLfRXt7i1xbud6Lg,692
|
209
210
|
voice_mode/templates/systemd/voicemode-whisper.service,sha256=aa5gIHI9xKF0M_DY6SO95QHRFhkV2JOzmFVo2U8RhN4,844
|
210
|
-
voice_mode/tools/__init__.py,sha256=
|
211
|
-
voice_mode/tools/claude_thinking.py,sha256=MKKhk1gxCKmAEKyCmO0iccB491VHJI_LueyUpLAD5Rw,11028
|
211
|
+
voice_mode/tools/__init__.py,sha256=6xmQqxJfRTv_CN9IMiXFuGxjxk3FgojAeh6F6f3JyYE,5353
|
212
212
|
voice_mode/tools/configuration_management.py,sha256=jR6WYsrkeWRohI8_9kk48YQ6GNwdiMAuTXx3vln_m4w,12748
|
213
|
-
voice_mode/tools/converse.py,sha256=
|
213
|
+
voice_mode/tools/converse.py,sha256=5bz9EL9v6IEJ3LCQ4_V4L49xaHPuzGdlxmevRorPPPE,97613
|
214
214
|
voice_mode/tools/dependencies.py,sha256=V72gS_bD0pCmW_be2Hxs_cEnIoNPFKlK7rE9cLMTDGE,6670
|
215
215
|
voice_mode/tools/devices.py,sha256=v0KV-Rix2lKZMFfVcobHiJB_6NnPAJsuZI5LXYHlgl0,10446
|
216
|
-
voice_mode/tools/diagnostics.py,sha256=
|
216
|
+
voice_mode/tools/diagnostics.py,sha256=SuxRHQCDoSLQhcu_AJpQvd8TZx2WDysK_TpRmZu0-Vw,2127
|
217
217
|
voice_mode/tools/pronounce.py,sha256=neyJXqQxclI8wUAnLOGBCfMXHzvS31NBuaEnt6GLovA,8915
|
218
218
|
voice_mode/tools/providers.py,sha256=KuO5lFmSHjYUoK3hjIqx3l7XeNOLPMAeXQnTtH00Iow,7768
|
219
219
|
voice_mode/tools/service.py,sha256=ll7BsUdSaXSGjtElZf7vSmOspe92ZIyIB-UaYbLrdf4,46454
|
220
|
-
voice_mode/tools/statistics.py,sha256=
|
221
|
-
voice_mode/tools/voice_registry.py,sha256=
|
220
|
+
voice_mode/tools/statistics.py,sha256=5vIbC6-BMxwSjP8BclKjJv-LGm50ncB8Ex9XXmZgRfo,8003
|
221
|
+
voice_mode/tools/voice_registry.py,sha256=Sfd1EHlSegOtUK4kHhW9SfP03XFZXJZA4eHo60lY5qM,2224
|
222
222
|
voice_mode/tools/services/list_versions.py,sha256=r_FzHG_2dVxEzDXfxVfPInchGq1h9_4yvJ9ySkinsJk,2573
|
223
223
|
voice_mode/tools/services/version_info.py,sha256=K5CzUlaIpHJKDnudfCeIydOwIhaDTOM59e8FQ1Yyj4A,11344
|
224
224
|
voice_mode/tools/services/kokoro/install.py,sha256=qir72x98o93zCDT-VEXvp0Hj63WYUj1BUHo1_2rJJ44,25188
|
@@ -260,7 +260,7 @@ voice_mode/utils/services/kokoro_helpers.py,sha256=57NsS1i4ptk5Gg3zm5g68QhtV3aU3
|
|
260
260
|
voice_mode/utils/services/livekit_helpers.py,sha256=OFw0GxVIJAZE2m9dGCDZVegWD-LnMO6iSjcOUDgAA9U,3627
|
261
261
|
voice_mode/utils/services/whisper_helpers.py,sha256=1Oy9TR5g5-l6j07KaWlAoijkCUDGaTWIz__BXvV0TWw,19632
|
262
262
|
voice_mode/utils/services/whisper_version.py,sha256=68e0Oa-tG73IJlla-e3P0sh_qzBF4ToYBe4KKZ2FvEY,4861
|
263
|
-
voice_mode-4.
|
264
|
-
voice_mode-4.
|
265
|
-
voice_mode-4.
|
266
|
-
voice_mode-4.
|
263
|
+
voice_mode-4.5.0.dist-info/METADATA,sha256=97fHyPbIN95NU7qgxEOWWXbnjjFISbcMF7G9bybv2pY,24390
|
264
|
+
voice_mode-4.5.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
265
|
+
voice_mode-4.5.0.dist-info/entry_points.txt,sha256=hS5faHc0R5Fde3Z_uvz8u6YkRIYtvh17X8tVN90Rbro,95
|
266
|
+
voice_mode-4.5.0.dist-info/RECORD,,
|
@@ -1 +0,0 @@
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[185],{3030:function(n,e,t){Promise.resolve().then(t.t.bind(t,5019,23)),Promise.resolve().then(t.t.bind(t,7787,23)),Promise.resolve().then(t.t.bind(t,7960,23))},7960:function(){},7787:function(){},5019:function(n){n.exports={style:{fontFamily:"'__Public_Sans_8ff03a', '__Public_Sans_Fallback_8ff03a'",fontWeight:400,fontStyle:"normal"},className:"__className_8ff03a"}}},function(n){n.O(0,[17,971,117,744],function(){return n(n.s=3030)}),_N_E=n.O()}]);
|