agentvibes 3.3.0-alpha.1 → 3.3.0-alpha.6

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.
@@ -0,0 +1,18 @@
1
+ ---
2
+ description: Clean up TTS cache files to free up disk space
3
+ scope: user
4
+ ---
5
+
6
+ Execute the AgentVibes cache cleanup script using the Bash tool:
7
+
8
+ ```bash
9
+ .claude/hooks/cleanup-cache.sh
10
+ ```
11
+
12
+ This will:
13
+ - Show current cache size
14
+ - Count all TTS cache files (tts-*.mp3, tts-*.wav, tts-padded-*.mp3, tts-padded-*.wav)
15
+ - Ask for confirmation before deleting
16
+ - Remove all cache files and show space freed
17
+
18
+ **Note:** The TTS cache can grow to 5GB+ over time. This command safely removes temporary audio files while preserving your background music tracks.
@@ -132,6 +132,10 @@
132
132
  {
133
133
  "name": "bmad",
134
134
  "description": "BMAD voice integration and agent voice assignment"
135
+ },
136
+ {
137
+ "name": "cleanup",
138
+ "description": "Clean up TTS cache files to free up disk space"
135
139
  }
136
140
  ]
137
141
  }
@@ -1,10 +1,26 @@
1
- agent_vibes_bachata_v1_loop.mp3:5.079274
2
- agentvibes_soft_flamenco_loop.mp3:5.090884
3
- agent_vibes_bossa_nova_v2_loop.mp3:10.019683
4
- agent_vibes_celtic_harp_v1_loop.mp3:9.868753
5
- agent_vibes_chillwave_v2_loop.mp3:9.694603
6
- agent_vibes_cumbia_v1_loop.mp3:9.613333
7
- agent_vibes_dark_chill_step_loop.mp3:9.415964
8
- agent_vibes_goa_trance_v2_loop.mp3:9.926803
9
- agent_vibes_harpsichord_v2_loop.mp3:10.031293
10
- agent_vibes_ganawa_ambient_v2_loop.mp3:5.741043
1
+ agent-vibes-dark-chill-step.mp3:49.006169
2
+ Agent Vibes Japanese City Pop v1.mp3:29.392744
3
+ Agent Vibes ChillWave v2.mp3:22.154467
4
+ Agent Vibes Bossa Nova v2.mp3:23.733424
5
+ Agent Vibes Tabla Dream Pop v1.mp3:19.101043
6
+ Agent Vibes Hawaiian slack key guitar v2.mp3:36.381950
7
+ AgentVibes Soft Flamenco.mp3:23.160000
8
+ Agent Vibes Arabic v2.mp3:21.922268
9
+ Agent Vibes Goa Trance v2.mp3:55.953741
10
+ Agent Vibes Ganawa Ambient v2.mp3:39.680205
11
+ Agent Vibes Celtic Harp v1.mp3:42.190476
12
+ Agent Vibes Harpsichord v2.mp3:21.739410
13
+ Agent Vibes Japanese City Pop v1-loop.mp3:13.917551
14
+ Agent Vibes Hawaiian slack key guitar v2-loop.mp3:12.977143
15
+ Agent Vibes Ganawa Ambient v2-loop.mp3:.00000000000000000002815996
16
+ Agent Vibes Tabla Dream Pop v1-loop.mp3:.00000000000000000009067943
17
+ Agent Vibes ChillWave v2-loop.mp3:.00000000000000000007080511
18
+ Agent Vibes Harpsichord v2-loop.mp3:.00000000000000000013140818
19
+ agent_vibes_japanese_city_pop_v1_loop.mp3:6.054512
20
+ agent_vibes_bossa_nova_v2_loop.mp3:5.369524
21
+ agent_vibes_salsa_v2_loop.mp3:9.972790
22
+ agent_vibes_cumbia_v1_loop.mp3:5.717823
23
+ agentvibes_soft_flamenco_loop.mp3:4.998005
24
+ agent_vibes_arabic_v2_loop.mp3:.00000000000000000006132724
25
+ agent_vibes_chillwave_v2_loop.mp3:14.628390
26
+ agent_vibes_bachata_v1_loop.mp3:.00000000000000000005344000
@@ -1 +1 @@
1
- 0.10
1
+ 0.30
@@ -1 +1 @@
1
- 20260130
1
+ 20260201
@@ -0,0 +1,68 @@
1
+ #!/usr/bin/env bash
2
+ #
3
+ # File: .claude/hooks/clawdbot-receiver.sh
4
+ #
5
+ # AgentVibes Clawdbot Receiver - SSH-Remote TTS with Agent Support
6
+ # Receives base64-encoded text, voice, and agent name from remote Clawdbot instances
7
+ # Calls AgentVibes play-tts-enhanced.sh to apply agent-specific audio effects
8
+ #
9
+ # Usage (called via SSH from remote):
10
+ # clawdbot-receiver.sh <base64_text> <voice> <base64_agent_name>
11
+ #
12
+ # Installed at: ~/.termux/agentvibes-play.sh or ~/.agentvibes/play-remote.sh
13
+ #
14
+ # Copyright (c) 2025 Paul Preibisch
15
+ # Licensed under the Apache License, Version 2.0
16
+ #
17
+
18
+ set -euo pipefail
19
+
20
+ ENCODED_TEXT="${1:-}"
21
+ VOICE="${2:-en_US-lessac-medium}"
22
+ ENCODED_AGENT="${3:-}"
23
+
24
+ # Validate inputs
25
+ if [[ -z "$ENCODED_TEXT" ]]; then
26
+ echo "❌ No encoded text provided" >&2
27
+ echo "Usage: $0 <base64_text> <voice> <base64_agent_name>" >&2
28
+ exit 1
29
+ fi
30
+
31
+ # SECURITY: Decode base64 safely
32
+ # This prevents command injection from malicious text
33
+ DECODED_TEXT=$(echo -n "$ENCODED_TEXT" | base64 -d 2>/dev/null) || {
34
+ echo "❌ Failed to decode text (invalid base64)" >&2
35
+ exit 1
36
+ }
37
+
38
+ DECODED_AGENT="default"
39
+ if [[ -n "$ENCODED_AGENT" ]]; then
40
+ DECODED_AGENT=$(echo -n "$ENCODED_AGENT" | base64 -d 2>/dev/null) || DECODED_AGENT="default"
41
+ fi
42
+
43
+ # Find AgentVibes installation
44
+ # Priority: 1. ~/agentvibes, 2. ~/AgentVibes-dev, 3. current directory
45
+ AGENTVIBES_ROOT=""
46
+ if [[ -f "$HOME/agentvibes/.claude/hooks/play-tts-enhanced.sh" ]]; then
47
+ AGENTVIBES_ROOT="$HOME/agentvibes"
48
+ elif [[ -f "$HOME/AgentVibes-dev/.claude/hooks/play-tts-enhanced.sh" ]]; then
49
+ AGENTVIBES_ROOT="$HOME/AgentVibes-dev"
50
+ elif [[ -f ".claude/hooks/play-tts-enhanced.sh" ]]; then
51
+ AGENTVIBES_ROOT="$(pwd)"
52
+ else
53
+ echo "❌ AgentVibes not found" >&2
54
+ echo "💡 Install AgentVibes at ~/agentvibes/ or ~/AgentVibes-dev/" >&2
55
+ exit 1
56
+ fi
57
+
58
+ echo "🎤 Agent: $DECODED_AGENT | Voice: $VOICE" >&2
59
+
60
+ # Call AgentVibes play-tts-enhanced.sh with agent name for audio-effects.cfg lookup
61
+ cd "$AGENTVIBES_ROOT" && \
62
+ bash .claude/hooks/play-tts-enhanced.sh "$DECODED_TEXT" "$DECODED_AGENT" "$VOICE" 2>&1 || {
63
+ # Fallback to standard play-tts if enhanced fails
64
+ echo "⚠️ Enhanced TTS failed, using standard TTS" >&2
65
+ bash .claude/hooks/play-tts.sh "$DECODED_TEXT" "$VOICE" 2>&1
66
+ }
67
+
68
+ exit 0
@@ -0,0 +1,106 @@
1
+ #!/usr/bin/env bash
2
+ # AgentVibes Cache Cleanup Script
3
+ # Removes TTS cache files to free up disk space
4
+
5
+ set -euo pipefail
6
+
7
+ # Get the project root directory
8
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
9
+ PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
10
+ AUDIO_DIR="$PROJECT_ROOT/.claude/audio"
11
+
12
+ # Colors for output
13
+ RED='\033[0;31m'
14
+ GREEN='\033[0;32m'
15
+ YELLOW='\033[1;33m'
16
+ BLUE='\033[0;34m'
17
+ NC='\033[0m' # No Color
18
+
19
+ echo -e "${BLUE}🧹 AgentVibes Cache Cleanup${NC}"
20
+ echo ""
21
+
22
+ # Check if audio directory exists
23
+ if [[ ! -d "$AUDIO_DIR" ]]; then
24
+ echo -e "${YELLOW}No cache directory found at: $AUDIO_DIR${NC}"
25
+ exit 0
26
+ fi
27
+
28
+ # Calculate current cache size
29
+ echo "Calculating cache size..."
30
+ CACHE_SIZE=$(du -sh "$AUDIO_DIR" 2>/dev/null | cut -f1 || echo "unknown")
31
+ echo -e "${BLUE}Current cache size: ${YELLOW}$CACHE_SIZE${NC}"
32
+ echo ""
33
+
34
+ # Count files to be deleted
35
+ TTS_MP3_COUNT=$(find "$AUDIO_DIR" -maxdepth 1 -name "tts-*.mp3" -type f 2>/dev/null | wc -l)
36
+ TTS_WAV_COUNT=$(find "$AUDIO_DIR" -maxdepth 1 -name "tts-*.wav" -type f 2>/dev/null | wc -l)
37
+ TTS_PADDED_MP3_COUNT=$(find "$AUDIO_DIR" -maxdepth 1 -name "tts-padded-*.mp3" -type f 2>/dev/null | wc -l)
38
+ TTS_PADDED_WAV_COUNT=$(find "$AUDIO_DIR" -maxdepth 1 -name "tts-padded-*.wav" -type f 2>/dev/null | wc -l)
39
+ BMAD_RECORDINGS_COUNT=0
40
+ if [[ -d "$AUDIO_DIR/bmad-party-mode-recordings" ]]; then
41
+ BMAD_RECORDINGS_COUNT=$(find "$AUDIO_DIR/bmad-party-mode-recordings" -type f 2>/dev/null | wc -l)
42
+ fi
43
+
44
+ TOTAL_FILES=$((TTS_MP3_COUNT + TTS_WAV_COUNT + TTS_PADDED_MP3_COUNT + TTS_PADDED_WAV_COUNT + BMAD_RECORDINGS_COUNT))
45
+
46
+ if [[ $TOTAL_FILES -eq 0 ]]; then
47
+ echo -e "${GREEN}✓ Cache is already clean! No TTS cache files found.${NC}"
48
+ exit 0
49
+ fi
50
+
51
+ echo -e "Found ${YELLOW}$TOTAL_FILES${NC} cache files:"
52
+ echo -e " • TTS MP3 files: $TTS_MP3_COUNT"
53
+ echo -e " • TTS WAV files: $TTS_WAV_COUNT"
54
+ echo -e " • TTS padded MP3 files: $TTS_PADDED_MP3_COUNT"
55
+ echo -e " • TTS padded WAV files: $TTS_PADDED_WAV_COUNT"
56
+ echo -e " • BMAD party mode recordings: $BMAD_RECORDINGS_COUNT"
57
+ echo ""
58
+
59
+ # Ask for confirmation
60
+ read -p "Delete all cache files? (y/N): " -n 1 -r
61
+ echo
62
+ if [[ ! $REPLY =~ ^[Yy]$ ]]; then
63
+ echo -e "${YELLOW}Cleanup cancelled.${NC}"
64
+ exit 0
65
+ fi
66
+
67
+ echo ""
68
+ echo "Deleting cache files..."
69
+
70
+ # Delete TTS cache files
71
+ DELETED=0
72
+
73
+ if [[ $TTS_MP3_COUNT -gt 0 ]]; then
74
+ find "$AUDIO_DIR" -maxdepth 1 -name "tts-*.mp3" -type f -delete
75
+ DELETED=$((DELETED + TTS_MP3_COUNT))
76
+ fi
77
+
78
+ if [[ $TTS_WAV_COUNT -gt 0 ]]; then
79
+ find "$AUDIO_DIR" -maxdepth 1 -name "tts-*.wav" -type f -delete
80
+ DELETED=$((DELETED + TTS_WAV_COUNT))
81
+ fi
82
+
83
+ if [[ $TTS_PADDED_MP3_COUNT -gt 0 ]]; then
84
+ find "$AUDIO_DIR" -maxdepth 1 -name "tts-padded-*.mp3" -type f -delete
85
+ DELETED=$((DELETED + TTS_PADDED_MP3_COUNT))
86
+ fi
87
+
88
+ if [[ $TTS_PADDED_WAV_COUNT -gt 0 ]]; then
89
+ find "$AUDIO_DIR" -maxdepth 1 -name "tts-padded-*.wav" -type f -delete
90
+ DELETED=$((DELETED + TTS_PADDED_WAV_COUNT))
91
+ fi
92
+
93
+ if [[ $BMAD_RECORDINGS_COUNT -gt 0 ]]; then
94
+ rm -rf "$AUDIO_DIR/bmad-party-mode-recordings"
95
+ DELETED=$((DELETED + BMAD_RECORDINGS_COUNT))
96
+ fi
97
+
98
+ # Calculate new size
99
+ NEW_SIZE=$(du -sh "$AUDIO_DIR" 2>/dev/null | cut -f1 || echo "unknown")
100
+
101
+ echo ""
102
+ echo -e "${GREEN}✓ Cleanup complete!${NC}"
103
+ echo -e " • Deleted: ${GREEN}$DELETED${NC} files"
104
+ echo -e " • Old size: ${YELLOW}$CACHE_SIZE${NC}"
105
+ echo -e " • New size: ${GREEN}$NEW_SIZE${NC}"
106
+ echo ""
@@ -13,11 +13,12 @@ set -euo pipefail
13
13
 
14
14
  TEXT="${1:-}"
15
15
  VOICE="${2:-en_US-lessac-medium}"
16
+ AGENT_NAME="${3:-default}"
16
17
 
17
18
  # Validate required input
18
19
  if [[ -z "$TEXT" ]]; then
19
20
  echo "❌ No text provided" >&2
20
- echo "Usage: $0 <text> [voice]" >&2
21
+ echo "Usage: $0 <text> [voice] [agent_name]" >&2
21
22
  exit 1
22
23
  fi
23
24
 
@@ -55,21 +56,28 @@ if [[ ! "$VOICE" =~ ^[a-zA-Z0-9_-]+$ ]]; then
55
56
  exit 1
56
57
  fi
57
58
 
58
- # SECURITY: Encode text as base64 to prevent command injection
59
- # The receiver will decode this safely
59
+ # SECURITY: Validate AGENT_NAME to prevent injection (alphanumeric, hyphens, underscores, spaces only)
60
+ if [[ ! "$AGENT_NAME" =~ ^[a-zA-Z0-9_\ -]+$ ]]; then
61
+ echo "❌ Invalid agent name format: $AGENT_NAME" >&2
62
+ exit 1
63
+ fi
64
+
65
+ # SECURITY: Encode text and agent name as base64 to prevent command injection
66
+ # The receiver will decode these safely
60
67
  ENCODED_TEXT=$(printf '%s' "$TEXT" | base64 -w 0)
68
+ ENCODED_AGENT=$(printf '%s' "$AGENT_NAME" | base64 -w 0)
61
69
 
62
70
  # Send text to remote for local AgentVibes playback
63
71
  echo "📱 Sending to $SSH_HOST for local playback..." >&2
64
72
 
65
- # Determine which receiver script exists and send encoded text
66
- # SECURITY: Base64-encoded text is safe to pass as argument (no shell metacharacters)
73
+ # Determine which receiver script exists and send encoded text, voice, and agent name
74
+ # SECURITY: Base64-encoded values are safe to pass as arguments (no shell metacharacters)
67
75
  # The receiver auto-detects and decodes base64 input
68
76
  if ssh "$SSH_HOST" "test -f ~/.termux/agentvibes-play.sh" 2>/dev/null; then
69
- ssh "$SSH_HOST" "bash ~/.termux/agentvibes-play.sh '$ENCODED_TEXT' '$VOICE'" &
77
+ ssh "$SSH_HOST" "bash ~/.termux/agentvibes-play.sh '$ENCODED_TEXT' '$VOICE' '$ENCODED_AGENT'" &
70
78
  SSH_PID=$!
71
79
  elif ssh "$SSH_HOST" "test -f ~/.agentvibes/play-remote.sh" 2>/dev/null; then
72
- ssh "$SSH_HOST" "bash ~/.agentvibes/play-remote.sh '$ENCODED_TEXT' '$VOICE'" &
80
+ ssh "$SSH_HOST" "bash ~/.agentvibes/play-remote.sh '$ENCODED_TEXT' '$VOICE' '$ENCODED_AGENT'" &
73
81
  SSH_PID=$!
74
82
  else
75
83
  echo "⚠️ Receiver script not found on $SSH_HOST" >&2
@@ -205,6 +205,43 @@ if [[ ! -f "$CLAUDE_DIR/tts-provider.txt" ]]; then
205
205
  echo -e " ${GREEN}✓${NC} TTS provider set to piper"
206
206
  fi
207
207
 
208
+ echo ""
209
+
210
+ # Step 7: Install Clawdbot SSH receiver
211
+ echo -e "${BLUE}[7/7] Installing Clawdbot SSH receiver...${NC}"
212
+
213
+ TERMUX_DIR="$HOME/.termux"
214
+ mkdir -p "$TERMUX_DIR"
215
+
216
+ # Create wrapper script at ~/.termux/agentvibes-play.sh
217
+ # This calls the main receiver in AgentVibes hooks
218
+ cat > "$TERMUX_DIR/agentvibes-play.sh" << 'EOF'
219
+ #!/usr/bin/env bash
220
+ # AgentVibes Clawdbot Receiver Wrapper
221
+ # Installed by AgentVibes Termux installer
222
+ # Forwards to main receiver script in AgentVibes
223
+
224
+ # Find AgentVibes installation
225
+ if [[ -f "$HOME/agentvibes/.claude/hooks/clawdbot-receiver.sh" ]]; then
226
+ exec bash "$HOME/agentvibes/.claude/hooks/clawdbot-receiver.sh" "$@"
227
+ elif [[ -f "$HOME/AgentVibes-dev/.claude/hooks/clawdbot-receiver.sh" ]]; then
228
+ exec bash "$HOME/AgentVibes-dev/.claude/hooks/clawdbot-receiver.sh" "$@"
229
+ else
230
+ echo "❌ AgentVibes clawdbot-receiver.sh not found" >&2
231
+ exit 1
232
+ fi
233
+ EOF
234
+
235
+ chmod +x "$TERMUX_DIR/agentvibes-play.sh"
236
+ echo -e " ${GREEN}✓${NC} Clawdbot receiver installed at ~/.termux/agentvibes-play.sh"
237
+
238
+ # Also create fallback at ~/.agentvibes/play-remote.sh
239
+ AGENTVIBES_DIR="$HOME/.agentvibes"
240
+ mkdir -p "$AGENTVIBES_DIR"
241
+ ln -sf "$TERMUX_DIR/agentvibes-play.sh" "$AGENTVIBES_DIR/play-remote.sh" 2>/dev/null || \
242
+ cp "$TERMUX_DIR/agentvibes-play.sh" "$AGENTVIBES_DIR/play-remote.sh"
243
+ echo -e " ${GREEN}✓${NC} Fallback link created at ~/.agentvibes/play-remote.sh"
244
+
208
245
  echo ""
209
246
  echo -e "${GREEN}════════════════════════════════════════════════════════════${NC}"
210
247
  echo -e "${GREEN} Installation Complete!${NC}"
@@ -1 +1 @@
1
- /home/administrator/.claude/piper-voices
1
+ /home/fire/.claude/piper-voices
package/.mcp.json CHANGED
@@ -1,12 +1,34 @@
1
1
  {
2
2
  "mcpServers": {
3
- "agentvibes": {
4
- "command": "npx",
3
+ "sonarqube": {
4
+ "command": "docker",
5
5
  "args": [
6
- "-y",
7
- "--package=agentvibes",
8
- "agentvibes-mcp-server"
9
- ]
6
+ "run",
7
+ "-i",
8
+ "--name",
9
+ "sonarqube-mcp-server-agentvibes",
10
+ "--rm",
11
+ "--dns",
12
+ "8.8.8.8",
13
+ "--dns",
14
+ "8.8.4.4",
15
+ "-e",
16
+ "SONARQUBE_TOKEN",
17
+ "-e",
18
+ "SONARQUBE_ORG",
19
+ "-e",
20
+ "STORAGE_PATH",
21
+ "mcp/sonarqube"
22
+ ],
23
+ "env": {
24
+ "SONARQUBE_TOKEN": "${SONARQUBE_TOKEN}",
25
+ "SONARQUBE_ORG": "${SONARQUBE_ORG}",
26
+ "STORAGE_PATH": "${STORAGE_PATH}"
27
+ }
28
+ },
29
+ "pieces": {
30
+ "type": "sse",
31
+ "url": "http://localhost:39300/model_context_protocol/2024-11-05/sse"
10
32
  }
11
33
  }
12
34
  }