voice-mode 2.22.2__tar.gz → 2.22.3__tar.gz

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 (107) hide show
  1. {voice_mode-2.22.2 → voice_mode-2.22.3}/CHANGELOG.md +16 -0
  2. {voice_mode-2.22.2 → voice_mode-2.22.3}/PKG-INFO +1 -1
  3. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/__version__.py +1 -1
  4. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/tools/services/kokoro/install.py +4 -4
  5. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/tools/services/whisper/install.py +27 -18
  6. {voice_mode-2.22.2 → voice_mode-2.22.3}/.gitignore +0 -0
  7. {voice_mode-2.22.2 → voice_mode-2.22.3}/README.md +0 -0
  8. {voice_mode-2.22.2 → voice_mode-2.22.3}/build_hooks.py +0 -0
  9. {voice_mode-2.22.2 → voice_mode-2.22.3}/pyproject.toml +0 -0
  10. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/__init__.py +0 -0
  11. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/__main__.py +0 -0
  12. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/cli.py +0 -0
  13. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/cli_commands/__init__.py +0 -0
  14. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/cli_commands/exchanges.py +0 -0
  15. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/config.py +0 -0
  16. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/conversation_logger.py +0 -0
  17. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/core.py +0 -0
  18. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/data/versions.json +0 -0
  19. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/exchanges/__init__.py +0 -0
  20. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/exchanges/conversations.py +0 -0
  21. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/exchanges/filters.py +0 -0
  22. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/exchanges/formatters.py +0 -0
  23. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/exchanges/models.py +0 -0
  24. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/exchanges/reader.py +0 -0
  25. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/exchanges/stats.py +0 -0
  26. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/frontend/README.md +0 -0
  27. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/frontend/app/api/connection-details/route.ts +0 -0
  28. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/frontend/app/favicon.ico +0 -0
  29. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/frontend/app/globals.css +0 -0
  30. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/frontend/app/layout.tsx +0 -0
  31. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/frontend/app/page.tsx +0 -0
  32. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/frontend/components/CloseIcon.tsx +0 -0
  33. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/frontend/components/NoAgentNotification.tsx +0 -0
  34. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/frontend/components/TranscriptionView.tsx +0 -0
  35. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/frontend/hooks/useCombinedTranscriptions.ts +0 -0
  36. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/frontend/hooks/useLocalMicTrack.ts +0 -0
  37. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/frontend/next-env.d.ts +0 -0
  38. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/frontend/next.config.mjs +0 -0
  39. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/frontend/package-lock.json +0 -0
  40. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/frontend/package.json +0 -0
  41. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/frontend/pnpm-lock.yaml +0 -0
  42. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/frontend/postcss.config.mjs +0 -0
  43. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/frontend/tailwind.config.ts +0 -0
  44. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/frontend/tsconfig.json +0 -0
  45. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/prompts/README.md +0 -0
  46. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/prompts/__init__.py +0 -0
  47. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/prompts/converse.py +0 -0
  48. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/prompts/release_notes.py +0 -0
  49. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/prompts/services.py +0 -0
  50. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/provider_discovery.py +0 -0
  51. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/providers.py +0 -0
  52. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/resources/__init__.py +0 -0
  53. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/resources/audio_files.py +0 -0
  54. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/resources/changelog.py +0 -0
  55. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/resources/configuration.py +0 -0
  56. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/resources/statistics.py +0 -0
  57. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/resources/version.py +0 -0
  58. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/resources/whisper_models.py +0 -0
  59. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/server.py +0 -0
  60. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/shared.py +0 -0
  61. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/simple_failover.py +0 -0
  62. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/statistics.py +0 -0
  63. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/streaming.py +0 -0
  64. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/templates/launchd/com.voicemode.frontend.plist +0 -0
  65. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/templates/launchd/com.voicemode.kokoro.plist +0 -0
  66. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/templates/launchd/com.voicemode.livekit.plist +0 -0
  67. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/templates/launchd/com.voicemode.whisper.plist +0 -0
  68. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/templates/launchd/start-kokoro-with-health-check.sh +0 -0
  69. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/templates/launchd/start-whisper-with-health-check.sh +0 -0
  70. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/templates/systemd/voicemode-frontend.service +0 -0
  71. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/templates/systemd/voicemode-kokoro.service +0 -0
  72. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/templates/systemd/voicemode-livekit.service +0 -0
  73. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/templates/systemd/voicemode-whisper.service +0 -0
  74. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/tools/__init__.py +0 -0
  75. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/tools/configuration_management.py +0 -0
  76. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/tools/converse.py +0 -0
  77. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/tools/dependencies.py +0 -0
  78. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/tools/devices.py +0 -0
  79. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/tools/diagnostics.py +0 -0
  80. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/tools/providers.py +0 -0
  81. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/tools/service.py +0 -0
  82. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/tools/services/kokoro/uninstall.py +0 -0
  83. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/tools/services/list_versions.py +0 -0
  84. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/tools/services/livekit/__init__.py +0 -0
  85. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/tools/services/livekit/frontend.py +0 -0
  86. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/tools/services/livekit/install.py +0 -0
  87. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/tools/services/livekit/production_server.py +0 -0
  88. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/tools/services/livekit/uninstall.py +0 -0
  89. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/tools/services/version_info.py +0 -0
  90. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/tools/services/whisper/download_model.py +0 -0
  91. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/tools/services/whisper/uninstall.py +0 -0
  92. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/tools/statistics.py +0 -0
  93. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/tools/voice_registry.py +0 -0
  94. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/utils/__init__.py +0 -0
  95. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/utils/audio_diagnostics.py +0 -0
  96. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/utils/event_logger.py +0 -0
  97. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/utils/ffmpeg_check.py +0 -0
  98. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/utils/format_migration.py +0 -0
  99. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/utils/gpu_detection.py +0 -0
  100. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/utils/migration_helpers.py +0 -0
  101. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/utils/services/common.py +0 -0
  102. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/utils/services/kokoro_helpers.py +0 -0
  103. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/utils/services/livekit_helpers.py +0 -0
  104. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/utils/services/whisper_helpers.py +0 -0
  105. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/utils/version_helpers.py +0 -0
  106. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/version.py +0 -0
  107. {voice_mode-2.22.2 → voice_mode-2.22.3}/voice_mode/voice_preferences.py +0 -0
@@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.22.3] - 2025-08-16
11
+
12
+ ## [2.23.0] - 2025-08-16
13
+
14
+ ### Fixed
15
+ - **Service auto-enable error** - Fix 'FunctionTool' object is not callable
16
+ - Changed whisper and kokoro installers to use `enable_service` function instead of MCP tool
17
+ - Services can now be properly auto-enabled after installation
18
+ - **Whisper build errors** - Remove obsolete make server command
19
+ - whisper-server is now built as part of the main build target
20
+ - Removed unnecessary build step that was causing errors
21
+ - **Build output verbosity** - Suppress cmake/make output unless debugging
22
+ - Build output is now captured and only shown on errors
23
+ - Use VOICEMODE_DEBUG=true to see full build output
24
+ - Significantly cleaner installation experience
25
+
10
26
  ## [2.22.2] - 2025-08-16
11
27
 
12
28
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: voice-mode
3
- Version: 2.22.2
3
+ Version: 2.22.3
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,3 +1,3 @@
1
1
  # This file is automatically updated by 'make release'
2
2
  # Do not edit manually
3
- __version__ = "2.22.2"
3
+ __version__ = "2.22.3"
@@ -268,8 +268,8 @@ async def kokoro_install(
268
268
 
269
269
  if auto_enable:
270
270
  logger.info("Auto-enabling kokoro service...")
271
- from voice_mode.tools.service import service
272
- enable_result = await service("kokoro", "enable")
271
+ from voice_mode.tools.service import enable_service
272
+ enable_result = await enable_service("kokoro")
273
273
  if "✅" in enable_result:
274
274
  enable_message = " Service auto-enabled."
275
275
  else:
@@ -333,8 +333,8 @@ WantedBy=default.target
333
333
 
334
334
  if auto_enable:
335
335
  logger.info("Auto-enabling kokoro service...")
336
- from voice_mode.tools.service import service
337
- enable_result = await service("kokoro", "enable")
336
+ from voice_mode.tools.service import enable_service
337
+ enable_result = await enable_service("kokoro")
338
338
  if "✅" in enable_result:
339
339
  enable_message = " Service auto-enabled."
340
340
  else:
@@ -201,7 +201,8 @@ async def whisper_install(
201
201
  # Clean any previous build (only if Makefile exists)
202
202
  if os.path.exists("Makefile"):
203
203
  try:
204
- subprocess.run(["make", "clean"], check=True)
204
+ subprocess.run(["make", "clean"], check=True,
205
+ capture_output=True, text=True)
205
206
  except subprocess.CalledProcessError:
206
207
  logger.warning("Make clean failed, continuing anyway...")
207
208
 
@@ -216,14 +217,27 @@ async def whisper_install(
216
217
  # Get number of CPU cores for parallel build
217
218
  cpu_count = os.cpu_count() or 4
218
219
 
219
- subprocess.run(["make", f"-j{cpu_count}"], env=build_env, check=True)
220
+ # Determine if we should show build output
221
+ debug_mode = os.environ.get("VOICEMODE_DEBUG", "").lower() in ("true", "1", "yes")
220
222
 
221
- # Also build the server binary
222
- logger.info("Building whisper-server...")
223
- try:
224
- subprocess.run(["make", "server"], env=build_env, check=True)
225
- except subprocess.CalledProcessError:
226
- logger.warning("Failed to build whisper-server, it may not be available in this version")
223
+ if debug_mode:
224
+ subprocess.run(["make", f"-j{cpu_count}"], env=build_env, check=True)
225
+ else:
226
+ # Suppress output unless there's an error
227
+ logger.info("Building whisper.cpp (this may take a few minutes)...")
228
+ try:
229
+ result = subprocess.run(["make", f"-j{cpu_count}"], env=build_env,
230
+ capture_output=True, text=True, check=True)
231
+ logger.info("Build completed successfully")
232
+ except subprocess.CalledProcessError as e:
233
+ logger.error(f"Build failed: {e}")
234
+ if e.stdout:
235
+ logger.error(f"Build output:\n{e.stdout}")
236
+ if e.stderr:
237
+ logger.error(f"Build errors:\n{e.stderr}")
238
+ raise
239
+
240
+ # Note: whisper-server is now built as part of the main build target
227
241
 
228
242
  # Download model using shared helper
229
243
  logger.info(f"Downloading default model: {model}")
@@ -283,12 +297,7 @@ fi
283
297
 
284
298
  echo "Starting whisper-server with model: $MODEL_NAME" >> "$LOG_FILE"
285
299
 
286
- # Check if whisper-server exists (it's in newer versions)
287
- if [ ! -f "$WHISPER_DIR/build/bin/whisper-server" ] && [ ! -f "$WHISPER_DIR/server" ]; then
288
- echo "Building whisper-server..." >> "$LOG_FILE"
289
- cd "$WHISPER_DIR"
290
- make server >> "$LOG_FILE" 2>&1
291
- fi
300
+ # Note: whisper-server is now built as part of the main build target
292
301
 
293
302
  # Determine server binary location
294
303
  if [ -f "$WHISPER_DIR/build/bin/whisper-server" ]; then
@@ -375,8 +384,8 @@ exec "$SERVER_BIN" \\
375
384
 
376
385
  if auto_enable:
377
386
  logger.info("Auto-enabling whisper service...")
378
- from voice_mode.tools.service import service
379
- enable_result = await service("whisper", "enable")
387
+ from voice_mode.tools.service import enable_service
388
+ enable_result = await enable_service("whisper")
380
389
  if "✅" in enable_result:
381
390
  enable_message = " Service auto-enabled."
382
391
  else:
@@ -458,8 +467,8 @@ WantedBy=default.target
458
467
 
459
468
  if auto_enable:
460
469
  logger.info("Auto-enabling whisper service...")
461
- from voice_mode.tools.service import service
462
- enable_result = await service("whisper", "enable")
470
+ from voice_mode.tools.service import enable_service
471
+ enable_result = await enable_service("whisper")
463
472
  if "✅" in enable_result:
464
473
  enable_message = " Service auto-enabled."
465
474
  else:
File without changes
File without changes
File without changes
File without changes