agentvibes 5.6.0 → 5.6.2

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 (101) hide show
  1. package/.agentvibes/config.json +3 -38
  2. package/.claude/config/audio-effects.cfg +1 -1
  3. package/.claude/config/background-music-enabled.txt +1 -1
  4. package/.claude/config/background-music-position.txt +6 -6
  5. package/.claude/github-star-reminder.txt +1 -1
  6. package/.claude/hooks/play-tts-ssh-remote.sh +119 -42
  7. package/.claude/hooks/play-tts-windows-receiver.sh +31 -0
  8. package/.claude/hooks/stop.sh +2 -27
  9. package/.claude/hooks-windows/play-tts-windows-sapi.ps1 +108 -108
  10. package/.claude/hooks-windows/play-tts.ps1 +58 -8
  11. package/.claude/piper-voices-dir.txt +1 -1
  12. package/.clawdbot/skill/README.md +326 -0
  13. package/.mcp.json +17 -27
  14. package/README.md +15 -2
  15. package/RELEASE_NOTES.md +64 -0
  16. package/bin/agent-vibes +39 -39
  17. package/package.json +1 -1
  18. package/src/bmad-detector.js +71 -71
  19. package/src/cli/list-personalities.js +110 -110
  20. package/src/cli/list-voices.js +114 -114
  21. package/src/commands/bmad-voices.js +394 -394
  22. package/src/commands/install-mcp.js +476 -476
  23. package/src/console/brand-colors.js +13 -13
  24. package/src/console/constants/personalities.js +44 -44
  25. package/src/console/modals/modal-overlay.js +247 -247
  26. package/src/console/navigation.js +5 -1
  27. package/src/console/tabs/agents-tab.js +5 -5
  28. package/src/console/tabs/help-tab.js +314 -314
  29. package/src/console/tabs/readme-tab.js +272 -272
  30. package/src/console/tabs/setup-tab.js +32 -17
  31. package/src/console/tabs/voices-tab.js +2 -2
  32. package/src/console/widgets/destroy-list.js +25 -25
  33. package/src/console/widgets/notice.js +55 -55
  34. package/src/console/widgets/personality-picker.js +213 -213
  35. package/src/console/widgets/reverb-picker.js +97 -97
  36. package/src/console/widgets/track-picker.js +1 -1
  37. package/src/i18n/de.js +202 -202
  38. package/src/i18n/es.js +202 -202
  39. package/src/i18n/fr.js +202 -202
  40. package/src/i18n/hi.js +202 -202
  41. package/src/i18n/ja.js +202 -202
  42. package/src/i18n/ko.js +202 -202
  43. package/src/i18n/pt.js +202 -202
  44. package/src/i18n/strings.js +54 -54
  45. package/src/i18n/zh-CN.js +202 -202
  46. package/src/installer/language-screen.js +31 -31
  47. package/src/installer/music-file-input.js +304 -304
  48. package/src/services/agent-voice-store.js +420 -423
  49. package/src/services/config-service.js +264 -264
  50. package/src/services/language-service.js +47 -47
  51. package/src/services/llm-provider-service.js +11 -4
  52. package/src/services/navigation-service.js +34 -10
  53. package/src/services/provider-service.js +143 -143
  54. package/src/utils/audio-duration-validator.js +298 -298
  55. package/src/utils/audio-format-validator.js +277 -277
  56. package/src/utils/dependency-checker.js +469 -469
  57. package/src/utils/file-ownership-verifier.js +358 -358
  58. package/src/utils/list-formatter.js +194 -194
  59. package/src/utils/music-file-validator.js +285 -285
  60. package/src/utils/preview-list-prompt.js +136 -136
  61. package/src/utils/secure-music-storage.js +412 -412
  62. package/.agentvibes/LITE-MODE.md +0 -236
  63. package/.agentvibes/README.md +0 -136
  64. package/.agentvibes/backup/session-start-tts.sh.20251210_212814 +0 -141
  65. package/.agentvibes/backups/agents/analyst_20260204_144958.md +0 -78
  66. package/.agentvibes/backups/agents/architect_20260204_144958.md +0 -72
  67. package/.agentvibes/backups/agents/dev_20260204_144958.md +0 -74
  68. package/.agentvibes/backups/agents/pm_20260204_144958.md +0 -72
  69. package/.agentvibes/backups/agents/quick-flow-solo-dev_20260204_144958.md +0 -64
  70. package/.agentvibes/backups/agents/sm_20260204_144958.md +0 -87
  71. package/.agentvibes/backups/agents/tea_20260204_144958.md +0 -79
  72. package/.agentvibes/backups/agents/tech-writer_20260204_144958.md +0 -82
  73. package/.agentvibes/backups/agents/ux-designer_20260204_144958.md +0 -80
  74. package/.agentvibes/config/README-personality-defaults.md +0 -162
  75. package/.agentvibes/config/agentvibes.json +0 -1
  76. package/.agentvibes/config/mode.txt +0 -1
  77. package/.agentvibes/config/personality-voice-defaults.default.json +0 -21
  78. package/.agentvibes/config/save-audio.txt +0 -1
  79. package/.agentvibes/config/voice-metadata.json +0 -160
  80. package/.agentvibes/hooks/help.sh +0 -191
  81. package/.agentvibes/hooks/post-tool-use-lite.sh +0 -111
  82. package/.agentvibes/hooks/save-audio-manager.sh +0 -162
  83. package/.agentvibes/hooks/session-start-full-optimized.sh +0 -102
  84. package/.agentvibes/hooks/session-start-full.sh +0 -142
  85. package/.agentvibes/hooks/session-start-lite-v2.sh +0 -34
  86. package/.agentvibes/hooks/session-start-lite.sh +0 -29
  87. package/.agentvibes/hooks/stop-lite.sh +0 -115
  88. package/.agentvibes/hooks/switch-mode.sh +0 -215
  89. package/.agentvibes/output-styles/audio-summary.md +0 -30
  90. package/.claude/audio/voice-samples/piper/alan.wav +0 -0
  91. package/.claude/audio/voice-samples/piper/amy.wav +0 -0
  92. package/.claude/audio/voice-samples/piper/charlotte.wav +0 -0
  93. package/.claude/audio/voice-samples/piper/joe.wav +0 -0
  94. package/.claude/audio/voice-samples/piper/john.wav +0 -0
  95. package/.claude/audio/voice-samples/piper/katherine.wav +0 -0
  96. package/.claude/audio/voice-samples/piper/kristin.wav +0 -0
  97. package/.claude/audio/voice-samples/piper/linda.wav +0 -0
  98. package/.claude/audio/voice-samples/piper/marcus.wav +0 -0
  99. package/.claude/audio/voice-samples/piper/ryan.wav +0 -0
  100. package/.claude/hooks/post-response.sh +0 -41
  101. package/bin/ensure-soprano-running.sh +0 -43
@@ -1,215 +0,0 @@
1
- #!/usr/bin/env bash
2
- #
3
- # File: .agentvibes/hooks/switch-mode.sh
4
- #
5
- # AgentVibes Mode Switcher
6
- # Safely switches between Full Mode and Lite Mode
7
- #
8
-
9
- set -euo pipefail
10
-
11
- # Fix locale warnings
12
- export LC_ALL=C
13
-
14
- # Directories
15
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
16
- AGENTVIBES_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
17
- CLAUDE_DIR=".claude"
18
- CONFIG_DIR="$AGENTVIBES_DIR/config"
19
- BACKUP_DIR="$AGENTVIBES_DIR/backup"
20
-
21
- # Files
22
- MODE_FILE="$CONFIG_DIR/mode.txt"
23
- SESSION_START_HOOK="$CLAUDE_DIR/hooks/session-start-tts.sh"
24
- POST_TOOL_USE_HOOK="$CLAUDE_DIR/hooks/post-tool-use.sh"
25
-
26
- # Colors for output
27
- RED='\033[0;31m'
28
- GREEN='\033[0;32m'
29
- YELLOW='\033[1;33m'
30
- BLUE='\033[0;34m'
31
- NC='\033[0m' # No Color
32
-
33
- # Functions
34
- print_info() {
35
- echo -e "${BLUE}ℹ${NC} $1"
36
- }
37
-
38
- print_success() {
39
- echo -e "${GREEN}✓${NC} $1"
40
- }
41
-
42
- print_warning() {
43
- echo -e "${YELLOW}⚠${NC} $1"
44
- }
45
-
46
- print_error() {
47
- echo -e "${RED}✗${NC} $1"
48
- }
49
-
50
- # Ensure directories exist
51
- ensure_dirs() {
52
- mkdir -p "$CONFIG_DIR" "$BACKUP_DIR" "$CLAUDE_DIR/hooks"
53
- }
54
-
55
- # Get current mode
56
- get_current_mode() {
57
- if [[ -f "$MODE_FILE" ]]; then
58
- cat "$MODE_FILE"
59
- else
60
- echo "full"
61
- fi
62
- }
63
-
64
- # Show current mode
65
- show_mode() {
66
- local current_mode=$(get_current_mode)
67
- echo ""
68
- echo "═══════════════════════════════════════════"
69
- echo " AgentVibes Current Mode"
70
- echo "═══════════════════════════════════════════"
71
- echo ""
72
-
73
- if [[ "$current_mode" == "lite" ]]; then
74
- echo -e "${GREEN}●${NC} LITE MODE (Active)"
75
- echo " - Minimal tokens (~50 vs ~500)"
76
- echo " - No acknowledgment TTS"
77
- echo " - Smart completion TTS"
78
- echo " - No .wav files"
79
- echo " - Silent operation"
80
- echo ""
81
- echo "○ FULL MODE"
82
- echo " - All features (personalities, learning, effects)"
83
- else
84
- echo "○ LITE MODE"
85
- echo ""
86
- echo -e "${GREEN}●${NC} FULL MODE (Active)"
87
- echo " - Full protocol (~500 tokens)"
88
- echo " - Acknowledgment + completion TTS"
89
- echo " - Personalities & learning"
90
- echo " - Audio effects & background music"
91
- echo " - All features enabled"
92
- fi
93
-
94
- echo ""
95
- echo "═══════════════════════════════════════════"
96
- echo ""
97
- echo "Switch modes: /agent-vibes mode [lite|full]"
98
- echo ""
99
- }
100
-
101
- # Switch to lite mode
102
- switch_to_lite() {
103
- print_info "Switching to LITE mode..."
104
-
105
- # No need to copy hooks - they're sourced from .agentvibes/
106
- # Just update the mode file
107
- echo "lite" > "$MODE_FILE"
108
-
109
- echo ""
110
- echo "═══════════════════════════════════════════"
111
- print_success "Switched to LITE MODE"
112
- echo "═══════════════════════════════════════════"
113
- echo ""
114
- echo "Features:"
115
- echo " ✓ Minimal tokens (~50)"
116
- echo " ✓ No acknowledgment TTS"
117
- echo " ✓ Smart completion TTS"
118
- echo " ✓ No .wav files"
119
- echo " ✓ Silent operation"
120
- echo ""
121
- echo "Note: Restart your Claude session for changes to take effect"
122
- echo ""
123
- }
124
-
125
- # Switch to full mode
126
- switch_to_full() {
127
- print_info "Switching to FULL mode..."
128
-
129
- # No need to copy hooks - they're sourced from .agentvibes/
130
- # Just update the mode file
131
- echo "full" > "$MODE_FILE"
132
-
133
- # Prompt user for save-audio preference (GitHub Issue #74)
134
- echo ""
135
- echo "═══════════════════════════════════════════"
136
- echo " Audio File Saving Preference"
137
- echo "═══════════════════════════════════════════"
138
- echo ""
139
- echo "Would you like to save TTS audio files to disk?"
140
- echo ""
141
- echo " [y] Yes - Save files to .claude/audio/"
142
- echo " (useful for debugging, replay, archiving)"
143
- echo ""
144
- echo " [N] No - Use temporary files (default)"
145
- echo " (automatic cleanup, saves disk space)"
146
- echo ""
147
- read -p "Your choice [y/N]: " -n 1 -r
148
- echo ""
149
-
150
- SAVE_AUDIO_FILE="$CONFIG_DIR/save-audio.txt"
151
- if [[ $REPLY =~ ^[Yy]$ ]]; then
152
- echo "true" > "$SAVE_AUDIO_FILE"
153
- print_success "Audio file saving ENABLED"
154
- echo " Files will be saved to .claude/audio/"
155
- else
156
- echo "false" > "$SAVE_AUDIO_FILE"
157
- print_success "Audio file saving DISABLED (default)"
158
- echo " Temporary files will be used and auto-cleaned"
159
- fi
160
-
161
- echo ""
162
- echo "═══════════════════════════════════════════"
163
- print_success "Switched to FULL MODE"
164
- echo "═══════════════════════════════════════════"
165
- echo ""
166
- echo "Features:"
167
- echo " ✓ Full protocol (~500 tokens)"
168
- echo " ✓ Acknowledgment + completion TTS"
169
- echo " ✓ Personalities & learning"
170
- echo " ✓ Audio effects & background music"
171
- echo " ✓ All features enabled"
172
- echo ""
173
- echo "💡 Change audio saving anytime: /agent-vibes:save-audio [on|off]"
174
- echo ""
175
- echo "Note: Restart your Claude session for changes to take effect"
176
- echo ""
177
- }
178
-
179
- # Note: check_mode() has been removed in favor of /agent-vibes:help
180
- # which provides user-friendly diagnostics with actionable suggestions
181
-
182
- # Main
183
- main() {
184
- local command="${1:-}"
185
-
186
- ensure_dirs
187
-
188
- case "$command" in
189
- lite)
190
- switch_to_lite
191
- ;;
192
- full)
193
- switch_to_full
194
- ;;
195
- "")
196
- show_mode
197
- ;;
198
- *)
199
- print_error "Unknown command: $command"
200
- echo ""
201
- echo "Usage: $0 [lite|full]"
202
- echo ""
203
- echo "Commands:"
204
- echo " lite - Switch to Lite Mode (minimal overhead)"
205
- echo " full - Switch to Full Mode (all features)"
206
- echo " (none) - Show current mode"
207
- echo ""
208
- echo "💡 For status and diagnostics, use: /agent-vibes:help"
209
- echo ""
210
- exit 1
211
- ;;
212
- esac
213
- }
214
-
215
- main "$@"
@@ -1,30 +0,0 @@
1
- # Audio Summary Output Style
2
-
3
- This output style is used in AgentVibes Lite Mode to provide minimal TTS feedback.
4
-
5
- ## Instructions
6
-
7
- At the end of EVERY response, add a brief summary in this format:
8
-
9
- **Audio Summary:** [1-sentence summary of what you accomplished]
10
-
11
- ## Examples
12
-
13
- ```
14
- **Audio Summary:** Created three new React components for the dashboard.
15
- ```
16
-
17
- ```
18
- **Audio Summary:** Fixed the authentication bug and added test coverage.
19
- ```
20
-
21
- ```
22
- **Audio Summary:** Refactored the API client to use async/await.
23
- ```
24
-
25
- ## Guidelines
26
-
27
- - Keep it to ONE sentence
28
- - Focus on WHAT you did, not HOW
29
- - Be specific but concise
30
- - This will be spoken via text-to-speech automatically
@@ -1,41 +0,0 @@
1
- #!/bin/bash
2
- # AgentVibes TTS Hook - Triggers on assistant responses
3
- # This hook is called after Claude generates a response
4
-
5
- set -euo pipefail
6
-
7
- # Get the hooks directory
8
- HOOKS_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
9
- PROJECT_ROOT="$(dirname "$(dirname "$HOOKS_DIR")")"
10
-
11
- # Check if AgentVibes is muted for this project
12
- if [[ -f "$PROJECT_ROOT/.claude/agentvibes-muted" ]]; then
13
- exit 0 # Silently skip TTS
14
- fi
15
-
16
- # Check if unmuted flag exists (overrides global mute)
17
- if [[ ! -f "$PROJECT_ROOT/.claude/agentvibes-unmuted" ]]; then
18
- # Check global mute
19
- if [[ -f "$HOME/.agentvibes-muted" ]]; then
20
- exit 0 # Silently skip TTS
21
- fi
22
- fi
23
-
24
- # Get the assistant's response text from stdin or arguments
25
- RESPONSE_TEXT="${1:-}"
26
- if [[ -z "$RESPONSE_TEXT" ]]; then
27
- # Try reading from stdin if available
28
- if [[ -p /dev/stdin ]]; then
29
- RESPONSE_TEXT=$(cat)
30
- fi
31
- fi
32
-
33
- # Skip if no text
34
- if [[ -z "$RESPONSE_TEXT" ]]; then
35
- exit 0
36
- fi
37
-
38
- # Play TTS using the main play-tts script
39
- "$HOOKS_DIR/play-tts.sh" "$RESPONSE_TEXT" &
40
-
41
- exit 0
@@ -1,43 +0,0 @@
1
- #!/bin/bash
2
- # Helper script to start Soprano TTS server if available
3
- # Fails gracefully if Soprano is not installed
4
-
5
- set -euo pipefail
6
-
7
- # Check if Soprano is installed via pipx
8
- if ! command -v soprano &> /dev/null; then
9
- # Soprano not in PATH, exit silently
10
- exit 0
11
- fi
12
-
13
- # Check if server is already running
14
- if curl -s -m 1 http://127.0.0.1:7860/openapi.json &> /dev/null; then
15
- # Already running
16
- exit 0
17
- fi
18
-
19
- # Try to start Soprano server
20
- VENV_PATH="${HOME}/.local/share/pipx/venvs/soprano-tts"
21
-
22
- if [ ! -d "$VENV_PATH" ]; then
23
- # Soprano not installed via pipx, exit silently
24
- exit 0
25
- fi
26
-
27
- # Start server in background
28
- cd /tmp
29
- nohup "${VENV_PATH}/bin/python" -m uvicorn soprano.server:app \
30
- --host 127.0.0.1 \
31
- --port 7860 \
32
- > "${HOME}/.soprano-tts.log" 2>&1 &
33
-
34
- # Wait a moment to see if it starts
35
- sleep 2
36
-
37
- # Check if it started successfully
38
- if curl -s -m 1 http://127.0.0.1:7860/openapi.json &> /dev/null; then
39
- exit 0
40
- else
41
- # Failed to start, but exit gracefully
42
- exit 0
43
- fi