voice-mode 2.25.1__tar.gz → 2.27.0__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 (111) hide show
  1. {voice_mode-2.25.1 → voice_mode-2.27.0}/.gitignore +3 -0
  2. {voice_mode-2.25.1 → voice_mode-2.27.0}/CHANGELOG.md +93 -0
  3. {voice_mode-2.25.1 → voice_mode-2.27.0}/PKG-INFO +1 -1
  4. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/__version__.py +1 -1
  5. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/cli.py +773 -3
  6. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/config.py +11 -3
  7. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/resources/configuration.py +8 -4
  8. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/resources/whisper_models.py +10 -13
  9. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/templates/systemd/voicemode-frontend.service +1 -1
  10. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/tools/configuration_management.py +7 -2
  11. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/tools/converse.py +31 -0
  12. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/tools/services/kokoro/install.py +3 -2
  13. voice_mode-2.27.0/voice_mode/tools/services/whisper/__init__.py +13 -0
  14. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/tools/services/whisper/install.py +3 -2
  15. voice_mode-2.27.0/voice_mode/tools/services/whisper/list_models.py +70 -0
  16. voice_mode-2.27.0/voice_mode/tools/services/whisper/list_models_tool.py +65 -0
  17. voice_mode-2.27.0/voice_mode/tools/services/whisper/models.py +274 -0
  18. {voice_mode-2.25.1 → voice_mode-2.27.0}/README.md +0 -0
  19. {voice_mode-2.25.1 → voice_mode-2.27.0}/build_hooks.py +0 -0
  20. {voice_mode-2.25.1 → voice_mode-2.27.0}/pyproject.toml +0 -0
  21. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/__init__.py +0 -0
  22. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/__main__.py +0 -0
  23. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/cli_commands/__init__.py +0 -0
  24. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/cli_commands/exchanges.py +0 -0
  25. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/conversation_logger.py +0 -0
  26. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/core.py +0 -0
  27. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/data/versions.json +0 -0
  28. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/exchanges/__init__.py +0 -0
  29. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/exchanges/conversations.py +0 -0
  30. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/exchanges/filters.py +0 -0
  31. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/exchanges/formatters.py +0 -0
  32. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/exchanges/models.py +0 -0
  33. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/exchanges/reader.py +0 -0
  34. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/exchanges/stats.py +0 -0
  35. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/frontend/README.md +0 -0
  36. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/frontend/app/api/connection-details/route.ts +0 -0
  37. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/frontend/app/favicon.ico +0 -0
  38. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/frontend/app/globals.css +0 -0
  39. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/frontend/app/layout.tsx +0 -0
  40. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/frontend/app/page.tsx +0 -0
  41. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/frontend/components/CloseIcon.tsx +0 -0
  42. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/frontend/components/NoAgentNotification.tsx +0 -0
  43. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/frontend/components/TranscriptionView.tsx +0 -0
  44. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/frontend/hooks/useCombinedTranscriptions.ts +0 -0
  45. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/frontend/hooks/useLocalMicTrack.ts +0 -0
  46. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/frontend/next-env.d.ts +0 -0
  47. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/frontend/next.config.mjs +0 -0
  48. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/frontend/package-lock.json +0 -0
  49. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/frontend/package.json +0 -0
  50. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/frontend/pnpm-lock.yaml +0 -0
  51. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/frontend/postcss.config.mjs +0 -0
  52. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/frontend/tailwind.config.ts +0 -0
  53. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/frontend/tsconfig.json +0 -0
  54. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/prompts/README.md +0 -0
  55. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/prompts/__init__.py +0 -0
  56. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/prompts/converse.py +0 -0
  57. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/prompts/release_notes.py +0 -0
  58. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/prompts/services.py +0 -0
  59. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/provider_discovery.py +0 -0
  60. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/providers.py +0 -0
  61. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/resources/__init__.py +0 -0
  62. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/resources/audio_files.py +0 -0
  63. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/resources/changelog.py +0 -0
  64. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/resources/statistics.py +0 -0
  65. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/resources/version.py +0 -0
  66. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/server.py +0 -0
  67. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/shared.py +0 -0
  68. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/simple_failover.py +0 -0
  69. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/statistics.py +0 -0
  70. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/streaming.py +0 -0
  71. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/templates/launchd/com.voicemode.frontend.plist +0 -0
  72. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/templates/launchd/com.voicemode.kokoro.plist +0 -0
  73. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/templates/launchd/com.voicemode.livekit.plist +0 -0
  74. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/templates/launchd/com.voicemode.whisper.plist +0 -0
  75. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/templates/launchd/start-kokoro-with-health-check.sh +0 -0
  76. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/templates/launchd/start-whisper-with-health-check.sh +0 -0
  77. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/templates/systemd/voicemode-kokoro.service +0 -0
  78. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/templates/systemd/voicemode-livekit.service +0 -0
  79. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/templates/systemd/voicemode-whisper.service +0 -0
  80. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/tools/__init__.py +0 -0
  81. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/tools/dependencies.py +0 -0
  82. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/tools/devices.py +0 -0
  83. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/tools/diagnostics.py +0 -0
  84. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/tools/providers.py +0 -0
  85. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/tools/service.py +0 -0
  86. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/tools/services/kokoro/uninstall.py +0 -0
  87. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/tools/services/list_versions.py +0 -0
  88. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/tools/services/livekit/__init__.py +0 -0
  89. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/tools/services/livekit/frontend.py +0 -0
  90. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/tools/services/livekit/install.py +0 -0
  91. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/tools/services/livekit/production_server.py +0 -0
  92. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/tools/services/livekit/uninstall.py +0 -0
  93. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/tools/services/version_info.py +0 -0
  94. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/tools/services/whisper/download_model.py +0 -0
  95. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/tools/services/whisper/uninstall.py +0 -0
  96. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/tools/statistics.py +0 -0
  97. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/tools/voice_registry.py +0 -0
  98. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/utils/__init__.py +0 -0
  99. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/utils/audio_diagnostics.py +0 -0
  100. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/utils/event_logger.py +0 -0
  101. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/utils/ffmpeg_check.py +0 -0
  102. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/utils/format_migration.py +0 -0
  103. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/utils/gpu_detection.py +0 -0
  104. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/utils/migration_helpers.py +0 -0
  105. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/utils/services/common.py +0 -0
  106. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/utils/services/kokoro_helpers.py +0 -0
  107. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/utils/services/livekit_helpers.py +0 -0
  108. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/utils/services/whisper_helpers.py +0 -0
  109. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/utils/version_helpers.py +0 -0
  110. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/version.py +0 -0
  111. {voice_mode-2.25.1 → voice_mode-2.27.0}/voice_mode/voice_preferences.py +0 -0
@@ -108,3 +108,6 @@ docs/README_PROCESSED.md
108
108
  # Test files
109
109
  test_preferences.py
110
110
  testdir/
111
+
112
+ # Profiling output
113
+ *.prof
@@ -7,6 +7,99 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.27.0] - 2025-08-20
11
+
12
+ ### Added
13
+ - **CLI version and update commands**
14
+ - New `voice-mode version` command to display current version
15
+ - New `voice-mode update` command to upgrade to latest version
16
+ - Comprehensive bats tests for version and update functionality
17
+ - Automatic version detection from package metadata
18
+
19
+ - **Shell completion support for CLI**
20
+ - New `voice-mode completion` command group with bash, zsh, and fish subcommands
21
+ - Automatic tab completion for all commands, options, and arguments
22
+ - Install.sh automatically configures shell completions during setup
23
+ - Native Click completion mechanism for dynamic suggestions
24
+
25
+ - **Parallel operations documentation**
26
+ - Documented `wait_for_response=False` pattern in converse tool
27
+ - Enables speaking while performing other operations simultaneously
28
+ - Creates more natural conversations by eliminating dead air
29
+ - Marked as RECOMMENDED pattern with clear usage examples
30
+
31
+ - **Comprehensive Whisper model management system**
32
+ - New `whisper models` CLI command to list all available models with status
33
+ - `whisper model active` command to get/set the active model
34
+ - `whisper model install` and `whisper model remove` commands
35
+ - Model registry with complete size/hash metadata for all Whisper models
36
+ - Color-coded output showing installed/available models (green=installed, yellow=selected)
37
+ - Support for English-only models and all multilingual variants
38
+ - Automatic Core ML conversion on Apple Silicon for improved performance
39
+ - Shell completion support for all model management commands
40
+
41
+ - **MCP tools for model management**
42
+ - `list_models` tool to list all available Whisper models with status
43
+ - Enhanced `download_model` tool with registry validation
44
+ - Force download option to re-download corrupted models
45
+ - Skip Core ML option for testing
46
+ - Parity between CLI and MCP interfaces
47
+
48
+ - **Infrastructure improvements**
49
+ - Centralized model registry in `whisper/models.py` with all model metadata
50
+ - Model categorization: tiny, base, small, medium, large, turbo
51
+ - Size information for all models (39MB to 3.1GB)
52
+ - SHA256 hashes for integrity verification
53
+ - Shared download logic extracted to helpers module
54
+ - Dynamic Click-based shell completions replacing static files
55
+ - Comprehensive test suite for model management
56
+
57
+ ### Changed
58
+ - **Configuration file naming**
59
+ - Renamed `.voicemode.env` to `voicemode.env` (removed leading dot)
60
+ - Added backwards compatibility to check for old filename
61
+ - Shows deprecation warning when old filename is used
62
+ - Updated all documentation to reference new filename
63
+ - Updated systemd service templates
64
+
65
+ - Replaced static shell completions with Click-generated dynamic completions
66
+ - Shell completion files now generated from CLI structure
67
+ - Whisper model downloads now use centralized registry for validation
68
+ - Model status checks now verify both file existence and selection
69
+
70
+ ### Fixed
71
+ - **macOS installation improvements**
72
+ - Added coreutils dependency for timeout command support
73
+ - Fixed duplicate launchctl load in service installers
74
+ - Improved zsh PATH configuration by sourcing profile after UV/npm additions
75
+ - Skip sudo prompts on macOS to prevent installation issues
76
+
77
+ - **Test suite fixes**
78
+ - Fixed deprecation warning appearing in help output
79
+ - Renamed deprecated `.voicemode.env` to `voicemode.env` to fix test failures
80
+
81
+ - Whisper model management now properly uses voicemode.env configuration file
82
+ - Test suite updated for all API changes and return value structures
83
+ - Resolved all CI test failures related to service status and diagnostics
84
+
85
+ ### Removed
86
+ - Old static shell completion files
87
+ - SERVICE_COMMANDS.md (replaced by integrated CLI commands)
88
+ - Shell aliases file (functionality moved to Click commands)
89
+
90
+ ## [2.26.0] - 2025-08-18
91
+
92
+ ### Added
93
+ - **CLI converse command** - Direct voice conversations from the command line
94
+ - New `voice-mode converse` command for testing voice interactions
95
+ - Supports all MCP tool options (voice, speed, audio format, etc.)
96
+ - Continuous conversation mode with `--continuous` flag
97
+ - Useful for testing TTS/STT services without MCP client
98
+ - Full control over voice parameters and silence detection
99
+
100
+ ### Changed
101
+ - **Gitignore update** - Added `*.prof` files to gitignore for profiling output
102
+
10
103
  ## [2.25.1] - 2025-08-18
11
104
 
12
105
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: voice-mode
3
- Version: 2.25.1
3
+ Version: 2.27.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
@@ -1,3 +1,3 @@
1
1
  # This file is automatically updated by 'make release'
2
2
  # Do not edit manually
3
- __version__ = "2.25.1"
3
+ __version__ = "2.27.0"