agentvibes 5.1.4 → 5.2.1

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 (69) hide show
  1. package/.agentvibes/config.json +23 -13
  2. package/.claude/commands/agent-vibes/verbosity.md +98 -89
  3. package/.claude/config/audio-effects.cfg +4 -1
  4. package/.claude/hooks/audio-cache-utils.sh +246 -246
  5. package/.claude/hooks/background-music-manager.sh +404 -404
  6. package/.claude/hooks/bmad-speak-enhanced.sh +165 -165
  7. package/.claude/hooks/bmad-speak.sh +290 -290
  8. package/.claude/hooks/bmad-tts-injector.sh +568 -568
  9. package/.claude/hooks/bmad-voice-manager.sh +928 -928
  10. package/.claude/hooks/clawdbot-receiver-SECURE.sh +129 -129
  11. package/.claude/hooks/clawdbot-receiver.sh +107 -107
  12. package/.claude/hooks/clean-audio-cache.sh +22 -22
  13. package/.claude/hooks/cleanup-cache.sh +106 -106
  14. package/.claude/hooks/configure-rdp-mode.sh +137 -137
  15. package/.claude/hooks/download-extra-voices.sh +244 -244
  16. package/.claude/hooks/effects-manager.sh +268 -268
  17. package/.claude/hooks/github-star-reminder.sh +154 -154
  18. package/.claude/hooks/language-manager.sh +362 -362
  19. package/.claude/hooks/learn-manager.sh +492 -492
  20. package/.claude/hooks/macos-voice-manager.sh +205 -205
  21. package/.claude/hooks/migrate-background-music.sh +125 -125
  22. package/.claude/hooks/migrate-to-agentvibes.sh +161 -161
  23. package/.claude/hooks/optimize-background-music.sh +87 -87
  24. package/.claude/hooks/path-resolver.sh +60 -60
  25. package/.claude/hooks/personality-manager.sh +448 -448
  26. package/.claude/hooks/piper-download-voices.sh +233 -225
  27. package/.claude/hooks/piper-installer.sh +292 -292
  28. package/.claude/hooks/piper-multispeaker-registry.sh +171 -171
  29. package/.claude/hooks/piper-voice-manager.sh +125 -0
  30. package/.claude/hooks/play-tts-agentvibes-receiver-for-voiceless-connections.sh +97 -90
  31. package/.claude/hooks/play-tts-enhanced.sh +105 -105
  32. package/.claude/hooks/play-tts-piper.sh +16 -5
  33. package/.claude/hooks/play-tts-ssh-remote.sh +168 -167
  34. package/.claude/hooks/play-tts-termux-ssh.sh +169 -169
  35. package/.claude/hooks/play-tts.sh +35 -14
  36. package/.claude/hooks/prepare-release.sh +54 -54
  37. package/.claude/hooks/provider-commands.sh +617 -617
  38. package/.claude/hooks/provider-manager.sh +399 -399
  39. package/.claude/hooks/replay-target-audio.sh +95 -95
  40. package/.claude/hooks/sentiment-manager.sh +201 -201
  41. package/.claude/hooks/session-start-tts.sh +4 -1
  42. package/.claude/hooks/speed-manager.sh +291 -291
  43. package/.claude/hooks/stop-tts.sh +84 -84
  44. package/.claude/hooks/termux-installer.sh +261 -261
  45. package/.claude/hooks/translate-manager.sh +341 -341
  46. package/.claude/hooks/tts-queue-worker.sh +145 -145
  47. package/.claude/hooks/tts-queue.sh +165 -165
  48. package/.claude/hooks/verbosity-manager.sh +185 -178
  49. package/.claude/hooks/voice-manager.sh +552 -548
  50. package/.claude/hooks-windows/download-extra-voices.ps1 +243 -185
  51. package/.claude/hooks-windows/play-tts-piper.ps1 +7 -2
  52. package/.claude/hooks-windows/play-tts.ps1 +9 -3
  53. package/.claude/hooks-windows/session-start-tts.ps1 +2 -1
  54. package/.claude/hooks-windows/verbosity-manager.ps1 +126 -119
  55. package/README.md +19 -2
  56. package/RELEASE_NOTES.md +74 -0
  57. package/bin/agentvibes-voice-browser.js +1939 -1840
  58. package/bin/mcp-server.sh +206 -206
  59. package/mcp-server/server.py +87 -15
  60. package/package.json +1 -1
  61. package/src/console/tabs/receiver-tab.js +1527 -1483
  62. package/src/console/tabs/settings-tab.js +2 -2
  63. package/src/console/tabs/setup-tab.js +112 -31
  64. package/src/console/tabs/voices-tab.js +130 -13
  65. package/src/i18n/en.js +202 -202
  66. package/src/installer.js +79 -213
  67. package/src/services/llm-provider-service.js +126 -75
  68. package/src/services/verbosity-service.js +159 -157
  69. package/templates/agentvibes-receiver.sh +3 -2
@@ -1,169 +1,169 @@
1
- #!/usr/bin/env bash
2
- #
3
- # File: .claude/hooks/play-tts-termux-ssh.sh
4
- #
5
- # AgentVibes - Finally, your AI Agents can Talk Back! Text-to-Speech WITH personality for AI Assistants!
6
- # Website: https://agentvibes.org
7
- # Repository: https://github.com/paulpreibisch/AgentVibes
8
- #
9
- # Co-created by Paul Preibisch with Claude AI
10
- # Copyright (c) 2025 Paul Preibisch
11
- #
12
- # Licensed under the Apache License, Version 2.0 (the "License");
13
- # you may not use this file except in compliance with the License.
14
- # You may obtain a copy of the License at
15
- #
16
- # http://www.apache.org/licenses/LICENSE-2.0
17
- #
18
- # Unless required by applicable law or agreed to in writing, software
19
- # distributed under the License is distributed on an "AS IS" BASIS,
20
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21
- # See the License for the specific language governing permissions and
22
- # limitations under the License.
23
- #
24
- # DISCLAIMER: This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND,
25
- # express or implied. Use at your own risk. See the Apache License for details.
26
- #
27
- # ---
28
- #
29
- # @fileoverview Termux SSH TTS Provider - Android TTS via SSH tunnel
30
- # @context Enables TTS output on Android devices when connected via SSH from Termux
31
- # @architecture SSH-based remote TTS invocation using termux-tts-speak on Android
32
- # @dependencies ssh, termux-tts-speak (on Android), termux-api (on Android)
33
- # @entrypoints Called by play-tts.sh router when provider=termux-ssh
34
- # @patterns Remote TTS invocation, SSH host alias configuration, graceful fallback
35
- # @related play-tts.sh, provider-manager.sh
36
- # @setup Requires user to configure SSH host alias in ~/.ssh/config
37
- #
38
- # SETUP INSTRUCTIONS:
39
- # ===================
40
- # 1. On Android device (Termux):
41
- # - Install: pkg install termux-api openssh
42
- # - Install Termux:API app from F-Droid
43
- # - Start SSH server: sshd
44
- # - Get SSH port: echo $PREFIX/var/run/sshd.pid
45
- #
46
- # 2. On server/desktop:
47
- # - Add to ~/.ssh/config:
48
- # Host android
49
- # HostName <your-android-ip>
50
- # User <your-termux-username>
51
- # Port 8022
52
- # IdentityFile ~/.ssh/id_rsa
53
- #
54
- # 3. Configure AgentVibes:
55
- # - echo "android" > ~/.claude/termux-ssh-host.txt
56
- # OR
57
- # - export TERMUX_SSH_HOST="android"
58
- #
59
- # 4. Set provider:
60
- # - echo "termux-ssh" > ~/.claude/tts-provider.txt
61
- #
62
-
63
- # Fix locale warnings
64
- export LC_ALL=C
65
-
66
- TEXT="$1"
67
- VOICE_OVERRIDE="$2" # Not used for termux-ssh, but kept for interface compatibility
68
-
69
- # Script directory
70
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
71
-
72
- # @function get_ssh_host
73
- # @intent Determine SSH host alias for Android device
74
- # @why Allows users to configure their own SSH connection without hardcoded values
75
- # @returns Echoes SSH host alias or empty string if not configured
76
- # @sideeffects None
77
- get_ssh_host() {
78
- local ssh_host=""
79
-
80
- # Priority order:
81
- # 1. Environment variable TERMUX_SSH_HOST
82
- # 2. Project-specific config file (CLAUDE_PROJECT_DIR)
83
- # 3. Script location config file
84
- # 4. Global config file (~/.claude/termux-ssh-host.txt)
85
-
86
- if [[ -n "$TERMUX_SSH_HOST" ]]; then
87
- ssh_host="$TERMUX_SSH_HOST"
88
- elif [[ -n "$CLAUDE_PROJECT_DIR" ]] && [[ -f "$CLAUDE_PROJECT_DIR/.claude/termux-ssh-host.txt" ]]; then
89
- ssh_host=$(cat "$CLAUDE_PROJECT_DIR/.claude/termux-ssh-host.txt" 2>/dev/null | tr -d '\n\r')
90
- elif [[ -f "$SCRIPT_DIR/../termux-ssh-host.txt" ]]; then
91
- ssh_host=$(cat "$SCRIPT_DIR/../termux-ssh-host.txt" 2>/dev/null | tr -d '\n\r')
92
- elif [[ -f "$HOME/.claude/termux-ssh-host.txt" ]]; then
93
- ssh_host=$(cat "$HOME/.claude/termux-ssh-host.txt" 2>/dev/null | tr -d '\n\r')
94
- fi
95
-
96
- echo "$ssh_host"
97
- }
98
-
99
- # @function check_termux_connection
100
- # @intent Verify SSH connection to Android device is available
101
- # @why Prevent hanging on SSH timeout if device is unreachable
102
- # @param $1 SSH host alias
103
- # @returns 0 if connection successful, 1 otherwise
104
- # @sideeffects None (uses ConnectTimeout=2)
105
- check_termux_connection() {
106
- local host="$1"
107
-
108
- # Quick connection test (2 second timeout)
109
- if ssh -o ConnectTimeout=2 -o BatchMode=yes "$host" "echo ok" >/dev/null 2>&1; then
110
- return 0
111
- else
112
- return 1
113
- fi
114
- }
115
-
116
- # Main execution
117
- SSH_HOST=$(get_ssh_host)
118
-
119
- if [[ -z "$SSH_HOST" ]]; then
120
- echo "❌ Termux SSH provider not configured" >&2
121
- echo " Set SSH host alias in one of:" >&2
122
- echo " - Environment: export TERMUX_SSH_HOST='android'" >&2
123
- echo " - Global: echo 'android' > ~/.claude/termux-ssh-host.txt" >&2
124
- echo " - Project: echo 'android' > .claude/termux-ssh-host.txt" >&2
125
- echo "" >&2
126
- echo " See provider documentation for SSH setup instructions" >&2
127
- exit 1
128
- fi
129
-
130
- if [[ -z "$TEXT" ]]; then
131
- echo "❌ No text provided for TTS" >&2
132
- exit 1
133
- fi
134
-
135
- # Check if SSH connection is available (with timeout)
136
- if ! check_termux_connection "$SSH_HOST"; then
137
- echo "⚠️ Cannot connect to SSH host '$SSH_HOST'" >&2
138
- echo " Make sure:" >&2
139
- echo " - Android device is reachable" >&2
140
- echo " - SSH server is running: sshd" >&2
141
- echo " - SSH config is correct in ~/.ssh/config" >&2
142
- exit 1
143
- fi
144
-
145
- # Escape single quotes in text for safe shell transmission
146
- # Replace ' with '\'' (end quote, escaped quote, start quote)
147
- SAFE_TEXT="${TEXT//\'/\'\\\'\'}"
148
-
149
- # Send TTS command to Android device via SSH
150
- # Use termux-tts-speak for native Android TTS
151
- # Run in background to avoid blocking
152
- ssh -o ConnectTimeout=5 "$SSH_HOST" "termux-tts-speak '$SAFE_TEXT'" &
153
-
154
- # Get the background process PID
155
- SSH_PID=$!
156
-
157
- # Optional: Wait a moment to detect immediate failures
158
- sleep 0.2
159
-
160
- # Check if the SSH process is still running (indicates successful start)
161
- if kill -0 "$SSH_PID" 2>/dev/null; then
162
- echo "✓ TTS sent to Android device via SSH" >&2
163
- else
164
- echo "⚠️ SSH command may have failed" >&2
165
- fi
166
-
167
- # Note: We don't return an audio file path since audio plays on the Android device
168
- # This is by design - the provider outputs audio remotely, not locally
169
- echo ""
1
+ #!/usr/bin/env bash
2
+ #
3
+ # File: .claude/hooks/play-tts-termux-ssh.sh
4
+ #
5
+ # AgentVibes - Finally, your AI Agents can Talk Back! Text-to-Speech WITH personality for AI Assistants!
6
+ # Website: https://agentvibes.org
7
+ # Repository: https://github.com/paulpreibisch/AgentVibes
8
+ #
9
+ # Co-created by Paul Preibisch with Claude AI
10
+ # Copyright (c) 2025 Paul Preibisch
11
+ #
12
+ # Licensed under the Apache License, Version 2.0 (the "License");
13
+ # you may not use this file except in compliance with the License.
14
+ # You may obtain a copy of the License at
15
+ #
16
+ # http://www.apache.org/licenses/LICENSE-2.0
17
+ #
18
+ # Unless required by applicable law or agreed to in writing, software
19
+ # distributed under the License is distributed on an "AS IS" BASIS,
20
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21
+ # See the License for the specific language governing permissions and
22
+ # limitations under the License.
23
+ #
24
+ # DISCLAIMER: This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND,
25
+ # express or implied. Use at your own risk. See the Apache License for details.
26
+ #
27
+ # ---
28
+ #
29
+ # @fileoverview Termux SSH TTS Provider - Android TTS via SSH tunnel
30
+ # @context Enables TTS output on Android devices when connected via SSH from Termux
31
+ # @architecture SSH-based remote TTS invocation using termux-tts-speak on Android
32
+ # @dependencies ssh, termux-tts-speak (on Android), termux-api (on Android)
33
+ # @entrypoints Called by play-tts.sh router when provider=termux-ssh
34
+ # @patterns Remote TTS invocation, SSH host alias configuration, graceful fallback
35
+ # @related play-tts.sh, provider-manager.sh
36
+ # @setup Requires user to configure SSH host alias in ~/.ssh/config
37
+ #
38
+ # SETUP INSTRUCTIONS:
39
+ # ===================
40
+ # 1. On Android device (Termux):
41
+ # - Install: pkg install termux-api openssh
42
+ # - Install Termux:API app from F-Droid
43
+ # - Start SSH server: sshd
44
+ # - Get SSH port: echo $PREFIX/var/run/sshd.pid
45
+ #
46
+ # 2. On server/desktop:
47
+ # - Add to ~/.ssh/config:
48
+ # Host android
49
+ # HostName <your-android-ip>
50
+ # User <your-termux-username>
51
+ # Port 8022
52
+ # IdentityFile ~/.ssh/id_rsa
53
+ #
54
+ # 3. Configure AgentVibes:
55
+ # - echo "android" > ~/.claude/termux-ssh-host.txt
56
+ # OR
57
+ # - export TERMUX_SSH_HOST="android"
58
+ #
59
+ # 4. Set provider:
60
+ # - echo "termux-ssh" > ~/.claude/tts-provider.txt
61
+ #
62
+
63
+ # Fix locale warnings
64
+ export LC_ALL=C
65
+
66
+ TEXT="$1"
67
+ VOICE_OVERRIDE="$2" # Not used for termux-ssh, but kept for interface compatibility
68
+
69
+ # Script directory
70
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
71
+
72
+ # @function get_ssh_host
73
+ # @intent Determine SSH host alias for Android device
74
+ # @why Allows users to configure their own SSH connection without hardcoded values
75
+ # @returns Echoes SSH host alias or empty string if not configured
76
+ # @sideeffects None
77
+ get_ssh_host() {
78
+ local ssh_host=""
79
+
80
+ # Priority order:
81
+ # 1. Environment variable TERMUX_SSH_HOST
82
+ # 2. Project-specific config file (CLAUDE_PROJECT_DIR)
83
+ # 3. Script location config file
84
+ # 4. Global config file (~/.claude/termux-ssh-host.txt)
85
+
86
+ if [[ -n "$TERMUX_SSH_HOST" ]]; then
87
+ ssh_host="$TERMUX_SSH_HOST"
88
+ elif [[ -n "$CLAUDE_PROJECT_DIR" ]] && [[ -f "$CLAUDE_PROJECT_DIR/.claude/termux-ssh-host.txt" ]]; then
89
+ ssh_host=$(cat "$CLAUDE_PROJECT_DIR/.claude/termux-ssh-host.txt" 2>/dev/null | tr -d '\n\r')
90
+ elif [[ -f "$SCRIPT_DIR/../termux-ssh-host.txt" ]]; then
91
+ ssh_host=$(cat "$SCRIPT_DIR/../termux-ssh-host.txt" 2>/dev/null | tr -d '\n\r')
92
+ elif [[ -f "$HOME/.claude/termux-ssh-host.txt" ]]; then
93
+ ssh_host=$(cat "$HOME/.claude/termux-ssh-host.txt" 2>/dev/null | tr -d '\n\r')
94
+ fi
95
+
96
+ echo "$ssh_host"
97
+ }
98
+
99
+ # @function check_termux_connection
100
+ # @intent Verify SSH connection to Android device is available
101
+ # @why Prevent hanging on SSH timeout if device is unreachable
102
+ # @param $1 SSH host alias
103
+ # @returns 0 if connection successful, 1 otherwise
104
+ # @sideeffects None (uses ConnectTimeout=2)
105
+ check_termux_connection() {
106
+ local host="$1"
107
+
108
+ # Quick connection test (2 second timeout)
109
+ if ssh -o ConnectTimeout=2 -o BatchMode=yes "$host" "echo ok" >/dev/null 2>&1; then
110
+ return 0
111
+ else
112
+ return 1
113
+ fi
114
+ }
115
+
116
+ # Main execution
117
+ SSH_HOST=$(get_ssh_host)
118
+
119
+ if [[ -z "$SSH_HOST" ]]; then
120
+ echo "❌ Termux SSH provider not configured" >&2
121
+ echo " Set SSH host alias in one of:" >&2
122
+ echo " - Environment: export TERMUX_SSH_HOST='android'" >&2
123
+ echo " - Global: echo 'android' > ~/.claude/termux-ssh-host.txt" >&2
124
+ echo " - Project: echo 'android' > .claude/termux-ssh-host.txt" >&2
125
+ echo "" >&2
126
+ echo " See provider documentation for SSH setup instructions" >&2
127
+ exit 1
128
+ fi
129
+
130
+ if [[ -z "$TEXT" ]]; then
131
+ echo "❌ No text provided for TTS" >&2
132
+ exit 1
133
+ fi
134
+
135
+ # Check if SSH connection is available (with timeout)
136
+ if ! check_termux_connection "$SSH_HOST"; then
137
+ echo "⚠️ Cannot connect to SSH host '$SSH_HOST'" >&2
138
+ echo " Make sure:" >&2
139
+ echo " - Android device is reachable" >&2
140
+ echo " - SSH server is running: sshd" >&2
141
+ echo " - SSH config is correct in ~/.ssh/config" >&2
142
+ exit 1
143
+ fi
144
+
145
+ # Escape single quotes in text for safe shell transmission
146
+ # Replace ' with '\'' (end quote, escaped quote, start quote)
147
+ SAFE_TEXT="${TEXT//\'/\'\\\'\'}"
148
+
149
+ # Send TTS command to Android device via SSH
150
+ # Use termux-tts-speak for native Android TTS
151
+ # Run in background to avoid blocking
152
+ ssh -o ConnectTimeout=5 "$SSH_HOST" "termux-tts-speak '$SAFE_TEXT'" &
153
+
154
+ # Get the background process PID
155
+ SSH_PID=$!
156
+
157
+ # Optional: Wait a moment to detect immediate failures
158
+ sleep 0.2
159
+
160
+ # Check if the SSH process is still running (indicates successful start)
161
+ if kill -0 "$SSH_PID" 2>/dev/null; then
162
+ echo "✓ TTS sent to Android device via SSH" >&2
163
+ else
164
+ echo "⚠️ SSH command may have failed" >&2
165
+ fi
166
+
167
+ # Note: We don't return an audio file path since audio plays on the Android device
168
+ # This is by design - the provider outputs audio remotely, not locally
169
+ echo ""
@@ -89,7 +89,7 @@ while [[ $# -gt 0 ]]; do
89
89
  --llm)
90
90
  LLM_PROVIDER="${2:-}"
91
91
  # Security: Validate LLM provider name (alphanumeric, hyphens, underscores only)
92
- if [[ -n "$LLM_PROVIDER" ]] && [[ ! "$LLM_PROVIDER" =~ ^[a-zA-Z0-9_-]+$ ]]; then
92
+ if [[ -n "$LLM_PROVIDER" ]] && [[ ! "$LLM_PROVIDER" =~ ^[a-zA-Z0-9][a-zA-Z0-9_-]*$ ]]; then
93
93
  echo "Error: Invalid LLM provider name" >&2
94
94
  exit 1
95
95
  fi
@@ -208,7 +208,7 @@ else
208
208
  fi
209
209
 
210
210
  # Show GitHub star reminder (once per day)
211
- "$SCRIPT_DIR/github-star-reminder.sh" 2>/dev/null || true
211
+ bash "$SCRIPT_DIR/github-star-reminder.sh" 2>/dev/null || true
212
212
 
213
213
  # @function detect_voice_provider
214
214
  # @intent Auto-detect provider from voice name (for mixed-provider support)
@@ -226,11 +226,20 @@ detect_voice_provider() {
226
226
  }
227
227
 
228
228
  # Override provider if voice indicates different provider (mixed-provider mode)
229
+ # But never override transport providers (ssh-remote, agentvibes-receiver, termux-ssh)
230
+ # — those are transport layers, not synth engines. The receiver picks its own engine.
229
231
  if [[ -n "$VOICE_OVERRIDE" ]]; then
230
- DETECTED_PROVIDER=$(detect_voice_provider "$VOICE_OVERRIDE")
231
- if [[ "$DETECTED_PROVIDER" != "$ACTIVE_PROVIDER" ]]; then
232
- ACTIVE_PROVIDER="$DETECTED_PROVIDER"
233
- fi
232
+ case "$ACTIVE_PROVIDER" in
233
+ ssh-remote|agentvibes-receiver|termux-ssh)
234
+ # Transport provider — don't override, voice info is forwarded to receiver
235
+ ;;
236
+ *)
237
+ DETECTED_PROVIDER=$(detect_voice_provider "$VOICE_OVERRIDE")
238
+ if [[ "$DETECTED_PROVIDER" != "$ACTIVE_PROVIDER" ]]; then
239
+ ACTIVE_PROVIDER="$DETECTED_PROVIDER"
240
+ fi
241
+ ;;
242
+ esac
234
243
  fi
235
244
 
236
245
  # @function speak_text
@@ -247,16 +256,22 @@ speak_text() {
247
256
 
248
257
  case "$provider" in
249
258
  piper)
250
- "$SCRIPT_DIR/play-tts-piper.sh" "$text" "$voice" "$profile_file"
259
+ bash "$SCRIPT_DIR/play-tts-piper.sh" "$text" "$voice" "$profile_file"
251
260
  ;;
252
261
  soprano)
253
- "$SCRIPT_DIR/play-tts-soprano.sh" "$text" "$voice"
262
+ bash "$SCRIPT_DIR/play-tts-soprano.sh" "$text" "$voice"
254
263
  ;;
255
264
  macos)
256
- "$SCRIPT_DIR/play-tts-macos.sh" "$text" "$voice"
265
+ bash "$SCRIPT_DIR/play-tts-macos.sh" "$text" "$voice"
257
266
  ;;
258
267
  termux-ssh)
259
- "$SCRIPT_DIR/play-tts-termux-ssh.sh" "$text" "$voice"
268
+ bash "$SCRIPT_DIR/play-tts-termux-ssh.sh" "$text" "$voice"
269
+ ;;
270
+ ssh-remote)
271
+ bash "$SCRIPT_DIR/play-tts-ssh-remote.sh" "$text" "$voice"
272
+ ;;
273
+ agentvibes-receiver)
274
+ bash "$SCRIPT_DIR/play-tts-agentvibes-receiver-for-voiceless-connections.sh" "$text" "$voice"
260
275
  ;;
261
276
  *)
262
277
  echo "❌ Unknown provider: $provider" >&2
@@ -371,16 +386,22 @@ fi
371
386
  # Normal single-language mode - route to appropriate provider implementation
372
387
  case "$ACTIVE_PROVIDER" in
373
388
  piper)
374
- exec "$SCRIPT_DIR/play-tts-piper.sh" "$TEXT" "$VOICE_OVERRIDE" "$AGENT_PROFILE_FILE"
389
+ exec bash "$SCRIPT_DIR/play-tts-piper.sh" "$TEXT" "$VOICE_OVERRIDE" "$AGENT_PROFILE_FILE"
375
390
  ;;
376
391
  soprano)
377
- exec "$SCRIPT_DIR/play-tts-soprano.sh" "$TEXT" "$VOICE_OVERRIDE"
392
+ exec bash "$SCRIPT_DIR/play-tts-soprano.sh" "$TEXT" "$VOICE_OVERRIDE"
378
393
  ;;
379
394
  macos)
380
- exec "$SCRIPT_DIR/play-tts-macos.sh" "$TEXT" "$VOICE_OVERRIDE"
395
+ exec bash "$SCRIPT_DIR/play-tts-macos.sh" "$TEXT" "$VOICE_OVERRIDE"
381
396
  ;;
382
397
  termux-ssh)
383
- exec "$SCRIPT_DIR/play-tts-termux-ssh.sh" "$TEXT" "$VOICE_OVERRIDE"
398
+ exec bash "$SCRIPT_DIR/play-tts-termux-ssh.sh" "$TEXT" "$VOICE_OVERRIDE"
399
+ ;;
400
+ ssh-remote)
401
+ exec bash "$SCRIPT_DIR/play-tts-ssh-remote.sh" "$TEXT" "$VOICE_OVERRIDE"
402
+ ;;
403
+ agentvibes-receiver)
404
+ exec bash "$SCRIPT_DIR/play-tts-agentvibes-receiver-for-voiceless-connections.sh" "$TEXT" "$VOICE_OVERRIDE"
384
405
  ;;
385
406
  *)
386
407
  echo "❌ Unknown provider: $ACTIVE_PROVIDER" >&2
@@ -1,54 +1,54 @@
1
- #!/usr/bin/env bash
2
- #
3
- # File: .claude/hooks/prepare-release.sh
4
- #
5
- # AgentVibes - Finally, your AI Agents can Talk Back! Text-to-Speech WITH personality for AI Assistants!
6
- # Website: https://agentvibes.org
7
- # Repository: https://github.com/paulpreibisch/AgentVibes
8
- #
9
- # Co-created by Paul Preibisch with Claude AI
10
- # Copyright (c) 2025 Paul Preibisch
11
- #
12
- # Licensed under the Apache License, Version 2.0 (the "License");
13
- # you may not use this file except in compliance with the License.
14
- # You may obtain a copy of the License at
15
- #
16
- # http://www.apache.org/licenses/LICENSE-2.0
17
- #
18
- # Unless required by applicable law or agreed to in writing, software
19
- # distributed under the License is distributed on an "AS IS" BASIS,
20
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21
- # See the License for the specific language governing permissions and
22
- # limitations under the License.
23
- #
24
- # DISCLAIMER: This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND,
25
- # express or implied, including but not limited to the warranties of
26
- # merchantability, fitness for a particular purpose and noninfringement.
27
- # In no event shall the authors or copyright holders be liable for any claim,
28
- # damages or other liability, whether in an action of contract, tort or
29
- # otherwise, arising from, out of or in connection with the software or the
30
- # use or other dealings in the software.
31
- #
32
- # ---
33
- #
34
- # @fileoverview Release preparation helper script with AI-generated notes
35
- # @context Placeholder script intended to be replaced by Claude AI for generating release notes
36
- # @architecture Simple informational script - actual logic delegated to Claude AI
37
- # @dependencies None (informational only)
38
- # @entrypoints Called manually or via CLI for release preparation
39
- # @patterns Fail-fast messaging, user guidance
40
- # @related RELEASE_NOTES.md, package.json version bumping
41
-
42
- BUMP_TYPE="${1:-patch}"
43
-
44
- echo "🤖 Preparing release with AI-generated summary..."
45
- echo ""
46
- echo "This command tells Claude AI to:"
47
- echo "1. Analyze changes since last release"
48
- echo "2. Generate intelligent summary"
49
- echo "3. Create RELEASE_NOTES.md"
50
- echo "4. Bump version to $BUMP_TYPE"
51
- echo "5. Commit everything"
52
- echo ""
53
- echo "⚠️ This is handled by Claude AI, not this script"
54
- echo "Please ask Claude to prepare the release instead"
1
+ #!/usr/bin/env bash
2
+ #
3
+ # File: .claude/hooks/prepare-release.sh
4
+ #
5
+ # AgentVibes - Finally, your AI Agents can Talk Back! Text-to-Speech WITH personality for AI Assistants!
6
+ # Website: https://agentvibes.org
7
+ # Repository: https://github.com/paulpreibisch/AgentVibes
8
+ #
9
+ # Co-created by Paul Preibisch with Claude AI
10
+ # Copyright (c) 2025 Paul Preibisch
11
+ #
12
+ # Licensed under the Apache License, Version 2.0 (the "License");
13
+ # you may not use this file except in compliance with the License.
14
+ # You may obtain a copy of the License at
15
+ #
16
+ # http://www.apache.org/licenses/LICENSE-2.0
17
+ #
18
+ # Unless required by applicable law or agreed to in writing, software
19
+ # distributed under the License is distributed on an "AS IS" BASIS,
20
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21
+ # See the License for the specific language governing permissions and
22
+ # limitations under the License.
23
+ #
24
+ # DISCLAIMER: This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND,
25
+ # express or implied, including but not limited to the warranties of
26
+ # merchantability, fitness for a particular purpose and noninfringement.
27
+ # In no event shall the authors or copyright holders be liable for any claim,
28
+ # damages or other liability, whether in an action of contract, tort or
29
+ # otherwise, arising from, out of or in connection with the software or the
30
+ # use or other dealings in the software.
31
+ #
32
+ # ---
33
+ #
34
+ # @fileoverview Release preparation helper script with AI-generated notes
35
+ # @context Placeholder script intended to be replaced by Claude AI for generating release notes
36
+ # @architecture Simple informational script - actual logic delegated to Claude AI
37
+ # @dependencies None (informational only)
38
+ # @entrypoints Called manually or via CLI for release preparation
39
+ # @patterns Fail-fast messaging, user guidance
40
+ # @related RELEASE_NOTES.md, package.json version bumping
41
+
42
+ BUMP_TYPE="${1:-patch}"
43
+
44
+ echo "🤖 Preparing release with AI-generated summary..."
45
+ echo ""
46
+ echo "This command tells Claude AI to:"
47
+ echo "1. Analyze changes since last release"
48
+ echo "2. Generate intelligent summary"
49
+ echo "3. Create RELEASE_NOTES.md"
50
+ echo "4. Bump version to $BUMP_TYPE"
51
+ echo "5. Commit everything"
52
+ echo ""
53
+ echo "⚠️ This is handled by Claude AI, not this script"
54
+ echo "Please ask Claude to prepare the release instead"