agentvibes 5.9.0 → 5.10.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.
- package/.agentvibes/config.json +3 -12
- package/.claude/commands/agent-vibes-bmad-voices.md +117 -117
- package/.claude/commands/agent-vibes-rdp.md +24 -24
- package/.claude/config/audio-effects.cfg +4 -5
- package/.claude/config/audio-effects.cfg.sample +52 -52
- package/.claude/config/background-music-enabled.txt +1 -1
- package/.claude/docs/TERMUX_SETUP.md +408 -408
- package/.claude/github-star-reminder.txt +1 -1
- package/.claude/hooks/audio-cache-utils.sh +0 -0
- package/.claude/hooks/audio-processor.sh +0 -0
- package/.claude/hooks/background-music-manager.sh +0 -0
- package/.claude/hooks/bmad-party-speak.sh +0 -0
- package/.claude/hooks/bmad-speak-enhanced.sh +0 -0
- package/.claude/hooks/bmad-speak.sh +0 -0
- package/.claude/hooks/bmad-tts-injector.sh +0 -0
- package/.claude/hooks/bmad-voice-manager.sh +0 -0
- package/.claude/hooks/clawdbot-receiver-SECURE.sh +0 -0
- package/.claude/hooks/clawdbot-receiver.sh +0 -0
- package/.claude/hooks/clean-audio-cache.sh +0 -0
- package/.claude/hooks/cleanup-cache.sh +0 -0
- package/.claude/hooks/configure-rdp-mode.sh +0 -0
- package/.claude/hooks/download-extra-voices.sh +0 -0
- package/.claude/hooks/effects-manager.sh +0 -0
- package/.claude/hooks/github-star-reminder.sh +0 -0
- package/.claude/hooks/language-manager.sh +0 -0
- package/.claude/hooks/learn-manager.sh +0 -0
- package/.claude/hooks/macos-voice-manager.sh +0 -0
- package/.claude/hooks/migrate-background-music.sh +0 -0
- package/.claude/hooks/migrate-to-agentvibes.sh +0 -0
- package/.claude/hooks/optimize-background-music.sh +0 -0
- package/.claude/hooks/path-resolver.sh +0 -0
- package/.claude/hooks/personality-manager.sh +0 -0
- package/.claude/hooks/piper-download-voices.sh +0 -0
- package/.claude/hooks/piper-installer.sh +0 -0
- package/.claude/hooks/piper-multispeaker-registry.sh +0 -0
- package/.claude/hooks/piper-voice-manager.sh +0 -0
- package/.claude/hooks/play-tts-agentvibes-receiver-for-voiceless-connections.sh +0 -0
- package/.claude/hooks/play-tts-enhanced.sh +0 -0
- package/.claude/hooks/play-tts-macos.sh +0 -0
- package/.claude/hooks/play-tts-piper.sh +20 -13
- package/.claude/hooks/play-tts-soprano.sh +0 -0
- package/.claude/hooks/play-tts-ssh-remote.sh +0 -0
- package/.claude/hooks/play-tts-termux-ssh.sh +0 -0
- package/.claude/hooks/play-tts-windows-receiver.sh +0 -0
- package/.claude/hooks/play-tts.sh +0 -0
- package/.claude/hooks/prepare-release.sh +0 -0
- package/.claude/hooks/provider-commands.sh +0 -0
- package/.claude/hooks/provider-manager.sh +0 -0
- package/.claude/hooks/replay-target-audio.sh +0 -0
- package/.claude/hooks/requirements.txt +6 -6
- package/.claude/hooks/sentiment-manager.sh +0 -0
- package/.claude/hooks/session-start-tts.sh +0 -0
- package/.claude/hooks/soprano-gradio-synth.py +139 -139
- package/.claude/hooks/speed-manager.sh +0 -0
- package/.claude/hooks/stop-tts.sh +0 -0
- package/.claude/hooks/termux-installer.sh +0 -0
- package/.claude/hooks/translate-manager.sh +0 -0
- package/.claude/hooks/translator.py +237 -237
- package/.claude/hooks/tts-queue-worker.sh +0 -0
- package/.claude/hooks/tts-queue.sh +0 -0
- package/.claude/hooks/verbosity-manager.sh +0 -0
- package/.claude/hooks/voice-manager.sh +6 -0
- package/.claude/hooks-windows/play-tts-windows-piper.ps1 +22 -16
- package/.claude/hooks-windows/soprano-gradio-synth.py +153 -153
- package/.claude/verbosity.txt +1 -1
- package/.clawdbot/README.md +105 -105
- package/.mcp.json +19 -6
- package/README.md +1 -1
- package/WINDOWS-SETUP.md +208 -208
- package/bin/agent-vibes +39 -39
- package/bin/agentvibes-voice-browser.js +0 -0
- package/bin/agentvibes.js +0 -0
- package/bin/mcp-server.js +121 -121
- package/bin/mcp-server.sh +0 -0
- package/bin/test-bmad-pr +78 -78
- package/mcp-server/QUICK_START.md +203 -203
- package/mcp-server/README.md +345 -345
- package/mcp-server/WINDOWS_SETUP.md +0 -0
- package/mcp-server/examples/claude_desktop_config.json +11 -11
- package/mcp-server/examples/claude_desktop_config_piper.json +9 -9
- package/mcp-server/examples/custom_instructions.md +169 -169
- package/mcp-server/install-deps.js +0 -0
- package/mcp-server/server.py +1807 -1797
- package/mcp-server/test_server.py +0 -0
- package/package.json +2 -2
- package/src/cli/list-personalities.js +110 -110
- package/src/cli/list-voices.js +114 -114
- package/src/commands/bmad-voices.js +394 -394
- package/src/commands/install-mcp.js +730 -476
- package/src/console/app.js +3 -3
- package/src/console/brand-colors.js +13 -13
- package/src/console/constants/personalities.js +44 -44
- package/src/console/tabs/agents-tab.js +6 -6
- package/src/console/tabs/help-tab.js +314 -314
- package/src/console/tabs/music-tab.js +1 -1
- package/src/console/tabs/readme-tab.js +272 -272
- package/src/console/tabs/receiver-tab.js +13 -13
- package/src/console/tabs/settings-tab.js +2 -2
- package/src/console/tabs/setup-tab.js +10 -10
- package/src/console/tabs/voices-tab.js +4 -4
- package/src/console/widgets/destroy-list.js +25 -25
- package/src/console/widgets/notice.js +55 -55
- package/src/console/widgets/personality-picker.js +2 -2
- package/src/console/widgets/reverb-picker.js +1 -1
- package/src/i18n/de.js +202 -202
- package/src/i18n/es.js +202 -202
- package/src/i18n/fr.js +202 -202
- package/src/i18n/hi.js +202 -202
- package/src/i18n/ja.js +202 -202
- package/src/i18n/ko.js +202 -202
- package/src/i18n/pt.js +202 -202
- package/src/i18n/strings.js +54 -54
- package/src/i18n/zh-CN.js +202 -202
- package/src/installer/language-screen.js +31 -31
- package/src/installer/music-file-input.js +304 -304
- package/src/installer.js +32 -27
- package/src/services/config-service.js +264 -264
- package/src/services/language-service.js +47 -47
- package/src/services/provider-service.js +143 -143
- package/src/services/tts-engine-service.js +2 -2
- package/src/utils/audio-duration-validator.js +298 -298
- package/src/utils/audio-format-validator.js +277 -277
- package/src/utils/dependency-checker.js +469 -469
- package/src/utils/file-ownership-verifier.js +358 -358
- package/src/utils/list-formatter.js +200 -194
- package/src/utils/music-file-validator.js +285 -285
- package/src/utils/platform-resolver.js +369 -0
- package/src/utils/preview-list-prompt.js +136 -136
- package/src/utils/provider-validator.js +9 -9
- package/src/utils/secure-music-storage.js +412 -412
- package/templates/agentvibes-receiver.sh +231 -231
- package/templates/audio/welcome-music.mp3 +0 -0
- package/.agentvibes/install-manifest.json +0 -330
- package/.claude/config/background-music-position.txt +0 -27
- package/.claude/config/background-music-volume.txt +0 -1
- package/.claude/config/background-music.cfg +0 -1
- package/.claude/config/background-music.txt +0 -1
- package/.claude/config/language.txt +0 -1
- package/.claude/config/reverb-level.txt +0 -1
- package/.claude/config/tts-speech-rate.txt +0 -1
- package/.claude/config/tts-verbosity.txt +0 -1
- package/.claude/hooks/play-tts-agentvibes-receiver.sh +0 -1
- package/.claude/hooks-windows/audio-cache-utils.ps1.user.bak +0 -119
- package/.claude/hooks-windows/soprano-gradio-synth.py.user.bak +0 -153
- package/.claude/piper-voices-dir.txt +0 -1
|
@@ -1,330 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 1,
|
|
3
|
-
"updatedAt": "2026-05-17T07:29:37.230Z",
|
|
4
|
-
"files": {
|
|
5
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\hooks-windows\\audio-cache-utils.ps1": {
|
|
6
|
-
"hash": "e7a9faa4ae7bae12815564739ea27f1b2956b1738680f660b5f3a4548c18ea92",
|
|
7
|
-
"installedAt": "2026-05-17T07:29:37.157Z"
|
|
8
|
-
},
|
|
9
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\hooks-windows\\audio-processor.ps1": {
|
|
10
|
-
"hash": "24d16cdd0c5530cbf63ba4876a87264df2ffa1ee2faa7dcbc7b1a8d146216641",
|
|
11
|
-
"installedAt": "2026-05-17T07:29:37.158Z"
|
|
12
|
-
},
|
|
13
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\hooks-windows\\background-music-manager.ps1": {
|
|
14
|
-
"hash": "f9b5f5c5d82bc700a585a151cbe97b91670981367097286f38ff02dd8411dc73",
|
|
15
|
-
"installedAt": "2026-05-17T07:29:37.159Z"
|
|
16
|
-
},
|
|
17
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\hooks-windows\\bmad-party-speak.ps1": {
|
|
18
|
-
"hash": "0778c34473dc2cf305d1886cdf2f9acb738bce5f1cb5b96e7f9f41443bfe010e",
|
|
19
|
-
"installedAt": "2026-05-17T07:29:37.160Z"
|
|
20
|
-
},
|
|
21
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\hooks-windows\\bmad-speak.ps1": {
|
|
22
|
-
"hash": "fc6a82591fcd784321dac5224852752f2ffed4de4c9b323d9cbfd9948bd19c37",
|
|
23
|
-
"installedAt": "2026-05-17T07:29:37.161Z"
|
|
24
|
-
},
|
|
25
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\hooks-windows\\clean-audio-cache.ps1": {
|
|
26
|
-
"hash": "df7f94f388336ea99420743409d22f8c54778db651a73ac084cdad549347dde1",
|
|
27
|
-
"installedAt": "2026-05-17T07:29:37.161Z"
|
|
28
|
-
},
|
|
29
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\hooks-windows\\download-extra-voices.ps1": {
|
|
30
|
-
"hash": "9f4d2b16b31daad985d91aba9352c98fc4b18f143d66a2429a544f07f432d0e5",
|
|
31
|
-
"installedAt": "2026-05-17T07:29:37.162Z"
|
|
32
|
-
},
|
|
33
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\hooks-windows\\effects-manager.ps1": {
|
|
34
|
-
"hash": "d10a393e6545141374b4f8389e9b9c541de237e9294bd9603197239ced93b642",
|
|
35
|
-
"installedAt": "2026-05-17T07:29:37.163Z"
|
|
36
|
-
},
|
|
37
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\hooks-windows\\language-manager.ps1": {
|
|
38
|
-
"hash": "bb53fb1a6b7ebef2377b746c2e9e8e890c18954ba2681dc46883e6a5dec453d6",
|
|
39
|
-
"installedAt": "2026-05-17T07:29:37.163Z"
|
|
40
|
-
},
|
|
41
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\hooks-windows\\learn-manager.ps1": {
|
|
42
|
-
"hash": "914a7736548d45eb60652807cb69bb6448187741d73ba139b984bd380565c329",
|
|
43
|
-
"installedAt": "2026-05-17T07:29:37.164Z"
|
|
44
|
-
},
|
|
45
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\hooks-windows\\personality-manager.ps1": {
|
|
46
|
-
"hash": "51f9da892bd5ae0ab00a50c09f16f17666c937cc994078007fde7922bfa2abd3",
|
|
47
|
-
"installedAt": "2026-05-17T07:29:37.164Z"
|
|
48
|
-
},
|
|
49
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\hooks-windows\\play-tts-piper.ps1": {
|
|
50
|
-
"hash": "73c1f61e9a7e99f1db487711742a8b2327fd9bc9505886edddc8d27766bf5a69",
|
|
51
|
-
"installedAt": "2026-05-17T07:29:37.165Z"
|
|
52
|
-
},
|
|
53
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\hooks-windows\\play-tts-sapi.ps1": {
|
|
54
|
-
"hash": "ac0269715b981b9b3c05089423147a9f60576191685de00167ea11c52884731f",
|
|
55
|
-
"installedAt": "2026-05-17T07:29:37.166Z"
|
|
56
|
-
},
|
|
57
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\hooks-windows\\play-tts-soprano.ps1": {
|
|
58
|
-
"hash": "15ae12140d6631adaf063b56f94b4b00cba52dbf399b2e64d34b4de1a90fa863",
|
|
59
|
-
"installedAt": "2026-05-17T07:29:37.166Z"
|
|
60
|
-
},
|
|
61
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\hooks-windows\\play-tts-termux-ssh.ps1": {
|
|
62
|
-
"hash": "6eb214246bc2af599c70d157246ca2d44410408ac248ed83f56f1f725d5e5e42",
|
|
63
|
-
"installedAt": "2026-05-17T07:29:37.167Z"
|
|
64
|
-
},
|
|
65
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\hooks-windows\\play-tts-windows-piper.ps1": {
|
|
66
|
-
"hash": "9f023cd4601d5c1dc992f6f13b7eb4a5805e17554aa43363c1261631ac126080",
|
|
67
|
-
"installedAt": "2026-05-17T07:29:37.167Z"
|
|
68
|
-
},
|
|
69
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\hooks-windows\\play-tts-windows-sapi.ps1": {
|
|
70
|
-
"hash": "7b8c3e84fae31308ebb3185350e800e85c2c295c0c45cfb20609d080494e8569",
|
|
71
|
-
"installedAt": "2026-05-17T07:29:37.168Z"
|
|
72
|
-
},
|
|
73
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\hooks-windows\\play-tts.ps1": {
|
|
74
|
-
"hash": "ca199c6bdffd66747ba0dcba6bb2da394efa15f6f1173347b48f87de4bf24616",
|
|
75
|
-
"installedAt": "2026-05-17T07:29:37.169Z"
|
|
76
|
-
},
|
|
77
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\hooks-windows\\provider-manager.ps1": {
|
|
78
|
-
"hash": "59de51c966a71b4e8e99ba2bfbe9aaf9684b73da1fb2afaf3bc9899358bb9939",
|
|
79
|
-
"installedAt": "2026-05-17T07:29:37.169Z"
|
|
80
|
-
},
|
|
81
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\hooks-windows\\session-start-tts.ps1": {
|
|
82
|
-
"hash": "81bc5eeebba55359a32c6fdcca2830c4be72bc930e12695f1f9fd92ecac9d107",
|
|
83
|
-
"installedAt": "2026-05-17T07:29:37.170Z"
|
|
84
|
-
},
|
|
85
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\hooks-windows\\soprano-gradio-synth.py": {
|
|
86
|
-
"hash": "19ec54476af7168ea14f256ab72af7e56fc92b7dedbb73a4d9983fd2cac7c6a1",
|
|
87
|
-
"installedAt": "2026-05-17T07:29:37.171Z"
|
|
88
|
-
},
|
|
89
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\hooks-windows\\speed-manager.ps1": {
|
|
90
|
-
"hash": "731914378571be814425438ea9484430b7bc033e25d714bb1f7c1cbc0d3137f2",
|
|
91
|
-
"installedAt": "2026-05-17T07:29:37.171Z"
|
|
92
|
-
},
|
|
93
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\hooks-windows\\tts-watcher.ps1": {
|
|
94
|
-
"hash": "7fc46636541f5a9f7f7f9d5a13bb860bb46b1d045c4269c28427c7f02df96581",
|
|
95
|
-
"installedAt": "2026-05-17T07:29:37.172Z"
|
|
96
|
-
},
|
|
97
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\hooks-windows\\verbosity-manager.ps1": {
|
|
98
|
-
"hash": "4c62bdbe6c8d9926100ba5a33a903d143c091f90eb55033b3308507cf77c873c",
|
|
99
|
-
"installedAt": "2026-05-17T07:29:37.173Z"
|
|
100
|
-
},
|
|
101
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\hooks-windows\\voice-manager-windows.ps1": {
|
|
102
|
-
"hash": "af5e14dab79c0162a4cc12be9f87ed7ac5b87283199920e5d937ac1bfc29e6ee",
|
|
103
|
-
"installedAt": "2026-05-17T07:29:37.173Z"
|
|
104
|
-
},
|
|
105
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\add.md": {
|
|
106
|
-
"hash": "bd3daaa8a3ef7dc1c705db8340b80ec34ad63af8063718b5056e251138d8d03a",
|
|
107
|
-
"installedAt": "2026-05-17T07:29:37.187Z"
|
|
108
|
-
},
|
|
109
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\agent-vibes.md": {
|
|
110
|
-
"hash": "38477538c4f015c0e2014ca2f1ee6f751a61541ac2bcdfa6a3ed212b567e9105",
|
|
111
|
-
"installedAt": "2026-05-17T07:29:37.187Z"
|
|
112
|
-
},
|
|
113
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\agent.md": {
|
|
114
|
-
"hash": "98e3cbd512678f9a622a93b8aae420abfe08829a4fd5ac27b238a2ff211ac23b",
|
|
115
|
-
"installedAt": "2026-05-17T07:29:37.188Z"
|
|
116
|
-
},
|
|
117
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\background-music.md": {
|
|
118
|
-
"hash": "21495a8fd1de53707a7f501a02eb79ef6933cf95e69a475bd1f92dbd8c645599",
|
|
119
|
-
"installedAt": "2026-05-17T07:29:37.191Z"
|
|
120
|
-
},
|
|
121
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\bmad.md": {
|
|
122
|
-
"hash": "42b56448eee2bceafc2788bb5f39de0b5f06d37d681f8b99073bd89695ad1704",
|
|
123
|
-
"installedAt": "2026-05-17T07:29:37.191Z"
|
|
124
|
-
},
|
|
125
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\clean.md": {
|
|
126
|
-
"hash": "e52b75db5d5a1e8982c3649ab87b511a958d7249708c9c3461ec86325e5d37f8",
|
|
127
|
-
"installedAt": "2026-05-17T07:29:37.192Z"
|
|
128
|
-
},
|
|
129
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\cleanup.md": {
|
|
130
|
-
"hash": "f341bacd736bdbd508f7368a8489a8eb30c0ad807cd7783bc972f8aad8fa0ca7",
|
|
131
|
-
"installedAt": "2026-05-17T07:29:37.192Z"
|
|
132
|
-
},
|
|
133
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\commands.json": {
|
|
134
|
-
"hash": "5bbb20ee98049f94c1fddc6088564f8f4ad12b7ac79a39089d14066cec1dd406",
|
|
135
|
-
"installedAt": "2026-05-17T07:29:37.193Z"
|
|
136
|
-
},
|
|
137
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\effects.md": {
|
|
138
|
-
"hash": "c7df70141beead591e2bcd1e6a68913ab58e15580d62a4bedd3fc336ac6646da",
|
|
139
|
-
"installedAt": "2026-05-17T07:29:37.193Z"
|
|
140
|
-
},
|
|
141
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\get.md": {
|
|
142
|
-
"hash": "197611671de8163d0e3b519d199eaceb8a57c3c3a1e08cc0e8d6f2feaa9caf67",
|
|
143
|
-
"installedAt": "2026-05-17T07:29:37.194Z"
|
|
144
|
-
},
|
|
145
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\hide.md": {
|
|
146
|
-
"hash": "80ac0970d257d8774f14ce7eb0e82f6bc281db35b81d6fa02e1f3489748f6baa",
|
|
147
|
-
"installedAt": "2026-05-17T07:29:37.194Z"
|
|
148
|
-
},
|
|
149
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\language.md": {
|
|
150
|
-
"hash": "94808a41f74907fc971a571379c76699da79f753ace461d7044547e29af8b796",
|
|
151
|
-
"installedAt": "2026-05-17T07:29:37.195Z"
|
|
152
|
-
},
|
|
153
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\learn.md": {
|
|
154
|
-
"hash": "f3ef20f6180ccd621bcbed03a437cb97dd12eb25fa650a0e3f298047f3f98112",
|
|
155
|
-
"installedAt": "2026-05-17T07:29:37.195Z"
|
|
156
|
-
},
|
|
157
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\list.md": {
|
|
158
|
-
"hash": "6fcbe3a38c16c823c2296595c7a0fc635ddbeb8539eacbcc5ea54cf3270b2377",
|
|
159
|
-
"installedAt": "2026-05-17T07:29:37.196Z"
|
|
160
|
-
},
|
|
161
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\mute.md": {
|
|
162
|
-
"hash": "7920d44b03dc402d6f42ec74921ec334bdce256a8be6bc540d91fe086f8b23fe",
|
|
163
|
-
"installedAt": "2026-05-17T07:29:37.196Z"
|
|
164
|
-
},
|
|
165
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\personality.md": {
|
|
166
|
-
"hash": "1722d7c69794ef817e94e3c706f21aaa5e3ec8ea8f2c66f6c570670dae81aa74",
|
|
167
|
-
"installedAt": "2026-05-17T07:29:37.196Z"
|
|
168
|
-
},
|
|
169
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\preview.md": {
|
|
170
|
-
"hash": "86ca6cbb47a45bdcc91d8e13fce08d49935364e07834296583e27f6cadc6d903",
|
|
171
|
-
"installedAt": "2026-05-17T07:29:37.197Z"
|
|
172
|
-
},
|
|
173
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\provider.md": {
|
|
174
|
-
"hash": "c4e6c9126a5ebbebeed6922f0cd644c8de3aa6400ad122e13b51fe4565a9459e",
|
|
175
|
-
"installedAt": "2026-05-17T07:29:37.197Z"
|
|
176
|
-
},
|
|
177
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\replay-target.md": {
|
|
178
|
-
"hash": "5f4f5da3bd968dd8d13df9988ade88eeaae9536bc503c33d847198b6a5b96c68",
|
|
179
|
-
"installedAt": "2026-05-17T07:29:37.197Z"
|
|
180
|
-
},
|
|
181
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\replay.md": {
|
|
182
|
-
"hash": "1b561f9ba3ce5ec07007e98fe76eb78e726f2b95615204d0dec6e07bbb6e21f4",
|
|
183
|
-
"installedAt": "2026-05-17T07:29:37.198Z"
|
|
184
|
-
},
|
|
185
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\sample.md": {
|
|
186
|
-
"hash": "48b6c99c007524bbfc1010c7bbebc676dcdfd48a74784d66cbabf1d6bc7db0c8",
|
|
187
|
-
"installedAt": "2026-05-17T07:29:37.198Z"
|
|
188
|
-
},
|
|
189
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\sentiment.md": {
|
|
190
|
-
"hash": "7c92333484b2c80a46f778a9e0860bb9f1086271a2e6eae41bd96482f214d593",
|
|
191
|
-
"installedAt": "2026-05-17T07:29:37.199Z"
|
|
192
|
-
},
|
|
193
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\set-favorite-voice.md": {
|
|
194
|
-
"hash": "9662a5c080c703a1a1e79195133a9ccbfbf074c2fe8c84297cd7a35b8be810af",
|
|
195
|
-
"installedAt": "2026-05-17T07:29:37.199Z"
|
|
196
|
-
},
|
|
197
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\set-language.md": {
|
|
198
|
-
"hash": "95354538191c97124721e6aa7d90915b4e2018050112c0937091b5107a5c8246",
|
|
199
|
-
"installedAt": "2026-05-17T07:29:37.200Z"
|
|
200
|
-
},
|
|
201
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\set-pretext.md": {
|
|
202
|
-
"hash": "31388d03a8145481b4f9fcd6bd6f2bb24124d039ae97ba8b51feaf1dfc845f10",
|
|
203
|
-
"installedAt": "2026-05-17T07:29:37.200Z"
|
|
204
|
-
},
|
|
205
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\set-speed.md": {
|
|
206
|
-
"hash": "9513f877200d0faf86f8c19fc26b2c2b87b856d9e86bd30154f18648d09c305c",
|
|
207
|
-
"installedAt": "2026-05-17T07:29:37.201Z"
|
|
208
|
-
},
|
|
209
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\show.md": {
|
|
210
|
-
"hash": "5dcc027996e3520555f23eaea5f5da42d7cd6ea45a009c26372e96a60847c61e",
|
|
211
|
-
"installedAt": "2026-05-17T07:29:37.201Z"
|
|
212
|
-
},
|
|
213
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\switch.md": {
|
|
214
|
-
"hash": "192038da652af01cd54a8ad0bc2dbcd48ac4059ac43c2a4df839e4909820403b",
|
|
215
|
-
"installedAt": "2026-05-17T07:29:37.201Z"
|
|
216
|
-
},
|
|
217
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\target-voice.md": {
|
|
218
|
-
"hash": "9c3ac8d1249ae8fc8014b21a9e785bcb4b69e9e65f3869c91b396b4d95e288fb",
|
|
219
|
-
"installedAt": "2026-05-17T07:29:37.202Z"
|
|
220
|
-
},
|
|
221
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\target.md": {
|
|
222
|
-
"hash": "634dfbc6ec274179d58fb0fe9e6281b07ee7c20cd9f9bf02e00c8e920e8b83c4",
|
|
223
|
-
"installedAt": "2026-05-17T07:29:37.202Z"
|
|
224
|
-
},
|
|
225
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\translate.md": {
|
|
226
|
-
"hash": "bbc8a9488ec71c03b9bcdc6db1da771331ddd6c97ad851b99a7985d874ff6884",
|
|
227
|
-
"installedAt": "2026-05-17T07:29:37.203Z"
|
|
228
|
-
},
|
|
229
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\unmute.md": {
|
|
230
|
-
"hash": "1f843039e69b03c077aac56138eeb1d2a7cb1129ce6893b361623ef9f755da05",
|
|
231
|
-
"installedAt": "2026-05-17T07:29:37.203Z"
|
|
232
|
-
},
|
|
233
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\update.md": {
|
|
234
|
-
"hash": "bc1022c7d70cbd6b9b0ad69806e8206cb70b446711db6147d7447d99639e2b6e",
|
|
235
|
-
"installedAt": "2026-05-17T07:29:37.204Z"
|
|
236
|
-
},
|
|
237
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\verbosity.md": {
|
|
238
|
-
"hash": "d56647186ce6540c8ae48fd2e8f5ede040743f09f6a2bc372ccc5de28946bd40",
|
|
239
|
-
"installedAt": "2026-05-17T07:29:37.204Z"
|
|
240
|
-
},
|
|
241
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\version.md": {
|
|
242
|
-
"hash": "bbc5ba5abaf44af6893e3232791268fd4d9f80d68bac0b95bfbec3cf44869e4f",
|
|
243
|
-
"installedAt": "2026-05-17T07:29:37.204Z"
|
|
244
|
-
},
|
|
245
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\commands\\agent-vibes\\whoami.md": {
|
|
246
|
-
"hash": "04909e3350e9ccb5886067edc19b37597f846a2bfb1502c1286e33fb6895ba23",
|
|
247
|
-
"installedAt": "2026-05-17T07:29:37.205Z"
|
|
248
|
-
},
|
|
249
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\personalities\\angry.md": {
|
|
250
|
-
"hash": "fb1711508b4d42dbfc15f57175dcb0f2da4fac034b68659dacc0991a72afc795",
|
|
251
|
-
"installedAt": "2026-05-17T07:29:37.219Z"
|
|
252
|
-
},
|
|
253
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\personalities\\annoying.md": {
|
|
254
|
-
"hash": "ced090e4e5696b8c06ee605a701a6f5c3e7d90ff9850915eca1e5b682eabcaf1",
|
|
255
|
-
"installedAt": "2026-05-17T07:29:37.220Z"
|
|
256
|
-
},
|
|
257
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\personalities\\crass.md": {
|
|
258
|
-
"hash": "46a51249e60c41bdf2046903b83965f6265bf34445812ac425601fbfab8660bb",
|
|
259
|
-
"installedAt": "2026-05-17T07:29:37.220Z"
|
|
260
|
-
},
|
|
261
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\personalities\\dramatic.md": {
|
|
262
|
-
"hash": "68864221d652dc95055a60f005400ea5e0c2b38c4c75f16d7299a1582d8fed6e",
|
|
263
|
-
"installedAt": "2026-05-17T07:29:37.220Z"
|
|
264
|
-
},
|
|
265
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\personalities\\dry-humor.md": {
|
|
266
|
-
"hash": "ec1dbfbb525f1b7e641a911bbcba3649ef70880adaa01c0b281c4580bae63365",
|
|
267
|
-
"installedAt": "2026-05-17T07:29:37.221Z"
|
|
268
|
-
},
|
|
269
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\personalities\\flirty.md": {
|
|
270
|
-
"hash": "328ea5a06bf9b9569825922924ae51f7f0b1b3985001ea273a8a9bacf2e02615",
|
|
271
|
-
"installedAt": "2026-05-17T07:29:37.222Z"
|
|
272
|
-
},
|
|
273
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\personalities\\funny.md": {
|
|
274
|
-
"hash": "a68efc479819b11c6dfda43f3b290f51740cdfa938c4e3e3e96bd0d656f63fa3",
|
|
275
|
-
"installedAt": "2026-05-17T07:29:37.222Z"
|
|
276
|
-
},
|
|
277
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\personalities\\grandpa.md": {
|
|
278
|
-
"hash": "3a2dff1e4d8b121cdcb6fe4c745a9fac5d254156a3658a309319056af9fce42c",
|
|
279
|
-
"installedAt": "2026-05-17T07:29:37.223Z"
|
|
280
|
-
},
|
|
281
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\personalities\\millennial.md": {
|
|
282
|
-
"hash": "f69dfa3958153c82ed62fb940360c74beaa8d71ef13d41f32500e9f58fca346c",
|
|
283
|
-
"installedAt": "2026-05-17T07:29:37.224Z"
|
|
284
|
-
},
|
|
285
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\personalities\\moody.md": {
|
|
286
|
-
"hash": "5d4e6278ef0d453d64ad4b940667ddad1d59aa9f327ae0a11227085e22690884",
|
|
287
|
-
"installedAt": "2026-05-17T07:29:37.224Z"
|
|
288
|
-
},
|
|
289
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\personalities\\normal.md": {
|
|
290
|
-
"hash": "25a209d55a7e752c21cc10688349f1602e769b436639c28850db5c5fd431570f",
|
|
291
|
-
"installedAt": "2026-05-17T07:29:37.224Z"
|
|
292
|
-
},
|
|
293
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\personalities\\pirate.md": {
|
|
294
|
-
"hash": "e529aa181574a341bb511dc87929116df112ce21b575726a3f0521406da07cf4",
|
|
295
|
-
"installedAt": "2026-05-17T07:29:37.225Z"
|
|
296
|
-
},
|
|
297
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\personalities\\poetic.md": {
|
|
298
|
-
"hash": "57e2506800cdb647fc9f42a904d7da1e5e5b72cf0491fd2527907b64d943bc29",
|
|
299
|
-
"installedAt": "2026-05-17T07:29:37.226Z"
|
|
300
|
-
},
|
|
301
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\personalities\\professional.md": {
|
|
302
|
-
"hash": "e89d6bb62eda126e8c5d9d0cc7bf4b9cced7a641b6ea626d0a3d8c93b3e18af3",
|
|
303
|
-
"installedAt": "2026-05-17T07:29:37.226Z"
|
|
304
|
-
},
|
|
305
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\personalities\\rapper.md": {
|
|
306
|
-
"hash": "322f36183ddc583306b21a008de469dd116b76f042eeb3dc0dbd4cda42f94dfd",
|
|
307
|
-
"installedAt": "2026-05-17T07:29:37.227Z"
|
|
308
|
-
},
|
|
309
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\personalities\\robot.md": {
|
|
310
|
-
"hash": "f4a05b06ebe7c86c4120f36ad077b1edcbdbe9e25662d7f58817faa656e7361b",
|
|
311
|
-
"installedAt": "2026-05-17T07:29:37.227Z"
|
|
312
|
-
},
|
|
313
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\personalities\\sarcastic.md": {
|
|
314
|
-
"hash": "2ce5689b090ea58b8356ca703c0376713cf74a83ab86c19e599611fe82ad9b1a",
|
|
315
|
-
"installedAt": "2026-05-17T07:29:37.228Z"
|
|
316
|
-
},
|
|
317
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\personalities\\sassy.md": {
|
|
318
|
-
"hash": "e069c093fdc1d7d6bd80c2db8600caea1d4a8a14d89e818101d4ef4514582b52",
|
|
319
|
-
"installedAt": "2026-05-17T07:29:37.228Z"
|
|
320
|
-
},
|
|
321
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\personalities\\surfer-dude.md": {
|
|
322
|
-
"hash": "adc1270e42e661a33d1344be2477c92becdb1bb97da46a7eb30dcca5e36d6afc",
|
|
323
|
-
"installedAt": "2026-05-17T07:29:37.229Z"
|
|
324
|
-
},
|
|
325
|
-
"C:\\Users\\Paul\\AgentVibes\\.claude\\personalities\\zen.md": {
|
|
326
|
-
"hash": "cbf56fb5b16fa05024353646ad77615483e9ffe8ac550d1e3a66860e9370189a",
|
|
327
|
-
"installedAt": "2026-05-17T07:29:37.229Z"
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
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_bossa_nova_v2_loop.mp3:5.369524
|
|
20
|
-
agent_vibes_salsa_v2_loop.mp3:9.972790
|
|
21
|
-
agent_vibes_arabic_v2_loop.mp3:.00000000000000000006132724
|
|
22
|
-
agent_vibes_cumbia_v1_loop.mp3:.00000000000000000010256000
|
|
23
|
-
agent_vibes_bachata_v1_loop.mp3:5.125714
|
|
24
|
-
agent_vibes_chillwave_v2_loop.mp3:.00000000000000000003308191
|
|
25
|
-
Midnight Charleston Stomp.mp3:.00000000000000000010960000
|
|
26
|
-
agent_vibes_japanese_city_pop_v1_loop.mp3:11.702675
|
|
27
|
-
agentvibes_soft_flamenco_loop.mp3:9.589660
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
0.30
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
enabled
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
enabled
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
en
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
off
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1.3
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
high
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
play-tts-agentvibes-receiver-for-voiceless-connections.sh
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# File: .claude/hooks-windows/audio-cache-utils.ps1
|
|
3
|
-
#
|
|
4
|
-
# AgentVibes Audio Cache Utilities for Windows
|
|
5
|
-
#
|
|
6
|
-
|
|
7
|
-
param(
|
|
8
|
-
[Parameter(Position = 0)]
|
|
9
|
-
[ValidateSet('cleanup', 'stats', 'clear')]
|
|
10
|
-
[string]$Command
|
|
11
|
-
)
|
|
12
|
-
|
|
13
|
-
# Detect project-local audio dir (same logic as TTS scripts)
|
|
14
|
-
$ScriptPath = Split-Path -Parent $MyInvocation.MyCommand.Path
|
|
15
|
-
$ProjectClaudeDir = Join-Path (Split-Path -Parent (Split-Path -Parent $ScriptPath)) ".claude"
|
|
16
|
-
if (Test-Path $ProjectClaudeDir) {
|
|
17
|
-
$AudioDir = "$ProjectClaudeDir\audio"
|
|
18
|
-
} else {
|
|
19
|
-
$AudioDir = "$env:USERPROFILE\.claude\audio"
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
function Ensure-AudioDir {
|
|
23
|
-
if (-not (Test-Path $AudioDir)) {
|
|
24
|
-
New-Item -ItemType Directory -Path $AudioDir -Force | Out-Null
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
function Get-AudioCacheSize {
|
|
29
|
-
Ensure-AudioDir
|
|
30
|
-
|
|
31
|
-
if (-not (Test-Path $AudioDir)) {
|
|
32
|
-
return 0
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
$files = Get-ChildItem -Path $AudioDir -Filter "*.wav" -ErrorAction SilentlyContinue
|
|
36
|
-
$totalSize = 0
|
|
37
|
-
|
|
38
|
-
foreach ($file in $files) {
|
|
39
|
-
$totalSize += $file.Length
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
return $totalSize
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
function Format-FileSize {
|
|
46
|
-
param([long]$Size)
|
|
47
|
-
|
|
48
|
-
if ($Size -lt 1KB) { return "$Size B" }
|
|
49
|
-
if ($Size -lt 1MB) { return "{0:N2} KB" -f ($Size / 1KB) }
|
|
50
|
-
if ($Size -lt 1GB) { return "{0:N2} MB" -f ($Size / 1MB) }
|
|
51
|
-
return "{0:N2} GB" -f ($Size / 1GB)
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
function Get-CacheStats {
|
|
55
|
-
Ensure-AudioDir
|
|
56
|
-
|
|
57
|
-
$files = Get-ChildItem -Path $AudioDir -Filter "*.wav" -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum
|
|
58
|
-
|
|
59
|
-
$count = if ($files.Count -eq $null) { 0 } else { $files.Count }
|
|
60
|
-
$totalSize = if ($files.Sum -eq $null) { 0 } else { $files.Sum }
|
|
61
|
-
|
|
62
|
-
return @{
|
|
63
|
-
FileCount = $count
|
|
64
|
-
TotalSize = $totalSize
|
|
65
|
-
FormattedSize = Format-FileSize $totalSize
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
function Clear-Cache {
|
|
70
|
-
Ensure-AudioDir
|
|
71
|
-
|
|
72
|
-
$files = Get-ChildItem -Path $AudioDir -Filter "*.wav" -ErrorAction SilentlyContinue
|
|
73
|
-
|
|
74
|
-
if ($files.Count -eq 0) {
|
|
75
|
-
Write-Host "[OK] Cache already empty" -ForegroundColor Green
|
|
76
|
-
return
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
$stats = Get-CacheStats
|
|
80
|
-
Write-Host "[CLEANUP] Clearing $($stats.FileCount) audio files ($($stats.FormattedSize))" -ForegroundColor Yellow
|
|
81
|
-
|
|
82
|
-
foreach ($file in $files) {
|
|
83
|
-
Remove-Item $file.FullName -Force -ErrorAction SilentlyContinue
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
Write-Host "[OK] Cache cleared" -ForegroundColor Green
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
function Show-CacheStats {
|
|
90
|
-
Ensure-AudioDir
|
|
91
|
-
|
|
92
|
-
$stats = Get-CacheStats
|
|
93
|
-
|
|
94
|
-
Write-Host ""
|
|
95
|
-
Write-Host "[STATS] Audio Cache Statistics" -ForegroundColor Cyan
|
|
96
|
-
Write-Host " Location: $AudioDir"
|
|
97
|
-
Write-Host " Files: $($stats.FileCount)"
|
|
98
|
-
Write-Host " Total Size: $($stats.FormattedSize)"
|
|
99
|
-
Write-Host ""
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
# Main command routing
|
|
103
|
-
switch ($Command) {
|
|
104
|
-
'stats' {
|
|
105
|
-
Show-CacheStats
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
'cleanup' {
|
|
109
|
-
Clear-Cache
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
'clear' {
|
|
113
|
-
Clear-Cache
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
default {
|
|
117
|
-
Show-CacheStats
|
|
118
|
-
}
|
|
119
|
-
}
|
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
#
|
|
3
|
-
# File: .claude/hooks-windows/soprano-gradio-synth.py
|
|
4
|
-
#
|
|
5
|
-
# AgentVibes - Finally, your AI Agents can Talk Back!
|
|
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
|
-
# ---
|
|
25
|
-
#
|
|
26
|
-
# Soprano Gradio WebUI synthesizer helper.
|
|
27
|
-
# Calls the Soprano WebUI's Gradio API and saves the result as a WAV file.
|
|
28
|
-
# Uses only Python stdlib (json, sys, urllib) — no extra dependencies.
|
|
29
|
-
#
|
|
30
|
-
# Usage: python3 soprano-gradio-synth.py "text to speak" output.wav [port]
|
|
31
|
-
#
|
|
32
|
-
"""
|
|
33
|
-
Soprano Gradio WebUI synthesizer helper for AgentVibes.
|
|
34
|
-
|
|
35
|
-
Calls the Soprano WebUI's Gradio API via the Server-Sent Events (SSE) protocol
|
|
36
|
-
and downloads the generated audio as a WAV file.
|
|
37
|
-
|
|
38
|
-
Flow:
|
|
39
|
-
1. Submit generation request -> get event_id
|
|
40
|
-
2. Poll SSE stream for audio file URL
|
|
41
|
-
3. Download WAV file to output path
|
|
42
|
-
|
|
43
|
-
See: https://github.com/ekwek1/soprano
|
|
44
|
-
"""
|
|
45
|
-
import json
|
|
46
|
-
import sys
|
|
47
|
-
import urllib.request
|
|
48
|
-
import urllib.error
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
def synth(text: str, output_path: str, port: int = 7860) -> None:
|
|
52
|
-
base = f"http://127.0.0.1:{port}"
|
|
53
|
-
|
|
54
|
-
# Step 1: Submit generation request
|
|
55
|
-
# Args: text, temperature, top_p, repetition_penalty, chunk_size, streaming
|
|
56
|
-
payload = json.dumps({
|
|
57
|
-
"data": [text, 0.0, 0.95, 1.2, 1, False]
|
|
58
|
-
}).encode()
|
|
59
|
-
|
|
60
|
-
event_id = submit_request(base, payload)
|
|
61
|
-
|
|
62
|
-
# Step 2: Poll SSE stream for audio file URL
|
|
63
|
-
audio_url = poll_for_result(base, event_id)
|
|
64
|
-
|
|
65
|
-
# Step 3: Download the audio file (validate localhost to prevent SSRF)
|
|
66
|
-
download_file(audio_url, output_path, port)
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
def submit_request(base: str, payload: bytes) -> str:
|
|
70
|
-
"""Submit generation request to Gradio API, return event_id."""
|
|
71
|
-
for api_base in ["/gradio_api/call", "/call"]:
|
|
72
|
-
url = f"{base}{api_base}/generate_speech"
|
|
73
|
-
req = urllib.request.Request(
|
|
74
|
-
url,
|
|
75
|
-
data=payload,
|
|
76
|
-
headers={"Content-Type": "application/json"},
|
|
77
|
-
)
|
|
78
|
-
try:
|
|
79
|
-
with urllib.request.urlopen(req, timeout=30) as resp:
|
|
80
|
-
return json.loads(resp.read())["event_id"]
|
|
81
|
-
except urllib.error.URLError:
|
|
82
|
-
continue
|
|
83
|
-
|
|
84
|
-
raise RuntimeError("Could not reach Soprano WebUI API")
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
def poll_for_result(base: str, event_id: str) -> str:
|
|
88
|
-
"""Poll SSE endpoint until audio file URL is returned."""
|
|
89
|
-
for api_base in ["/gradio_api/call", "/call"]:
|
|
90
|
-
url = f"{base}{api_base}/generate_speech/{event_id}"
|
|
91
|
-
req = urllib.request.Request(url)
|
|
92
|
-
try:
|
|
93
|
-
with urllib.request.urlopen(req, timeout=120) as resp:
|
|
94
|
-
for raw_line in resp:
|
|
95
|
-
line = raw_line.decode("utf-8", errors="replace").strip()
|
|
96
|
-
if not line.startswith("data: "):
|
|
97
|
-
continue
|
|
98
|
-
try:
|
|
99
|
-
parsed = json.loads(line[6:])
|
|
100
|
-
except json.JSONDecodeError:
|
|
101
|
-
continue
|
|
102
|
-
# Response format: [{"path": "...", "url": "...", ...}, "status string"]
|
|
103
|
-
if isinstance(parsed, list) and len(parsed) >= 1:
|
|
104
|
-
audio = parsed[0]
|
|
105
|
-
if isinstance(audio, dict) and "url" in audio:
|
|
106
|
-
return audio["url"]
|
|
107
|
-
break
|
|
108
|
-
except urllib.error.URLError:
|
|
109
|
-
continue
|
|
110
|
-
|
|
111
|
-
raise RuntimeError("No audio URL in Soprano response")
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
def download_file(url: str, output_path: str, port: int = 7860) -> None:
|
|
115
|
-
"""Download audio file from Gradio file server.
|
|
116
|
-
|
|
117
|
-
Security: Validates URL points to localhost to prevent SSRF.
|
|
118
|
-
"""
|
|
119
|
-
# Validate URL is localhost to prevent SSRF via crafted Gradio responses
|
|
120
|
-
allowed_prefixes = [
|
|
121
|
-
f"http://127.0.0.1:{port}/",
|
|
122
|
-
f"http://localhost:{port}/",
|
|
123
|
-
]
|
|
124
|
-
if not any(url.startswith(prefix) for prefix in allowed_prefixes):
|
|
125
|
-
raise RuntimeError(f"Refused download from non-localhost URL: {url[:80]}")
|
|
126
|
-
|
|
127
|
-
req = urllib.request.Request(url)
|
|
128
|
-
with urllib.request.urlopen(req, timeout=30) as resp:
|
|
129
|
-
with open(output_path, "wb") as f:
|
|
130
|
-
while True:
|
|
131
|
-
chunk = resp.read(8192)
|
|
132
|
-
if not chunk:
|
|
133
|
-
break
|
|
134
|
-
f.write(chunk)
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
if __name__ == "__main__":
|
|
138
|
-
if len(sys.argv) < 3:
|
|
139
|
-
print(f"Usage: {sys.argv[0]} \"text\" output.wav [port]", file=sys.stderr)
|
|
140
|
-
sys.exit(1)
|
|
141
|
-
|
|
142
|
-
text = sys.argv[1]
|
|
143
|
-
output = sys.argv[2]
|
|
144
|
-
port = int(sys.argv[3]) if len(sys.argv) > 3 else 7860
|
|
145
|
-
if not (1 <= port <= 65535):
|
|
146
|
-
print(f"Error: Invalid port number: {port}", file=sys.stderr)
|
|
147
|
-
sys.exit(1)
|
|
148
|
-
|
|
149
|
-
try:
|
|
150
|
-
synth(text, output, port)
|
|
151
|
-
except Exception as e:
|
|
152
|
-
print(f"Error: {e}", file=sys.stderr)
|
|
153
|
-
sys.exit(1)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
C:\Users\Paul\.claude\piper-voices
|