agentvibes 5.13.1 โ 5.14.0
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/.claude/audio/ui/CREDITS.txt +16 -16
- 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.sample +52 -52
- package/.claude/docs/TERMUX_SETUP.md +408 -408
- package/.claude/github-star-reminder.txt +1 -1
- package/.claude/hooks/kokoro-server.py +219 -219
- package/.claude/hooks/kokoro-tts.py +141 -141
- package/.claude/hooks/party-stage-roster.py +328 -328
- package/.claude/hooks/play-tts-kokoro.sh +7 -2
- package/.claude/hooks/play-tts-ssh-remote.sh +38 -3
- package/.claude/hooks/requirements.txt +6 -6
- package/.claude/hooks/soprano-gradio-synth.py +139 -139
- package/.claude/hooks/translator.py +237 -237
- package/.claude/hooks-windows/kokoro-server.py +219 -219
- package/.claude/hooks-windows/kokoro-tts.py +107 -107
- package/.claude/hooks-windows/play-tts.ps1 +17 -0
- package/.claude/hooks-windows/soprano-gradio-synth.py +153 -153
- package/.claude/verbosity.txt +1 -1
- package/.clawdbot/README.md +105 -105
- package/CLAUDE.md +84 -176
- package/README.md +27 -2
- package/RELEASE_NOTES.md +68 -0
- package/WINDOWS-SETUP.md +208 -208
- package/bin/agent-vibes +39 -39
- package/bin/mcp-server.js +121 -121
- 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/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 +12 -2
- package/mcp-server/server.py +2111 -2085
- package/mcp-server/test_mcp_correctness.py +504 -504
- package/mcp-server/test_windows_script_parity.py +339 -339
- package/package.json +6 -3
- package/setup-ssh-receiver.ps1 +259 -0
- package/setup-windows.ps1 +39 -29
- package/src/cli/list-personalities.js +110 -110
- package/src/commands/bmad-voices.js +394 -394
- package/src/console/brand-colors.js +13 -13
- package/src/console/constants/personalities.js +44 -44
- package/src/console/tabs/agents-tab.js +14 -4
- package/src/console/tabs/help-tab.js +314 -314
- package/src/console/tabs/readme-tab.js +272 -272
- package/src/console/tabs/settings-tab.js +31 -6
- package/src/console/tabs/setup-tab.js +154 -32
- package/src/console/tabs/voices-tab.js +48 -6
- package/src/console/widgets/destroy-list.js +25 -25
- package/src/console/widgets/notice.js +55 -55
- package/src/installer/language-screen.js +31 -31
- package/src/installer/music-file-input.js +304 -304
- package/src/installer.js +91 -35
- package/src/services/language-service.js +47 -47
- package/src/services/llm-provider-service.js +4 -1
- package/src/services/provider-voice-catalog.js +9 -5
- 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/music-file-validator.js +285 -285
- package/src/utils/preview-list-prompt.js +144 -144
- package/src/utils/secure-music-storage.js +412 -412
- package/templates/agentvibes-receiver.ps1 +311 -0
- package/templates/agentvibes-receiver.sh +297 -297
- package/voice-assignments.json +8244 -8244
- package/.agentvibes/config.json +0 -17
- package/.agentvibes/install-manifest.json +0 -362
- package/.claude/config/audio-effects.cfg +0 -7
- package/.claude/config/audio-effects.cfg.bak-kokoro +0 -7
- package/.claude/config/background-music-enabled.txt +0 -1
- 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/personality.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-windows/audio-cache-utils.ps1.user.bak +0 -119
- package/.claude/hooks-windows/soprano-gradio-synth.py.user.bak +0 -153
package/CLAUDE.md
CHANGED
|
@@ -1,179 +1,87 @@
|
|
|
1
|
-
# AgentVibes Development Guidelines
|
|
2
|
-
|
|
3
|
-
**
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
-
|
|
16
|
-
|
|
17
|
-
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
// Path safety: ALWAYS use path.resolve()
|
|
80
|
-
const safePath = path.resolve(userInput);
|
|
81
|
-
function isPathSafe(target, base) {
|
|
82
|
-
const r = path.resolve(target), b = path.resolve(base);
|
|
83
|
-
return r === b || r.startsWith(b + path.sep);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
// Never log credentials - ALWAYS mask
|
|
87
|
-
console.log('Key: ' + apiKey.substring(0, 3) + '...'); // Good
|
|
88
|
-
console.log(`Key: ${apiKey}`); // BAD
|
|
89
|
-
|
|
90
|
-
// Resource cleanup with try-finally
|
|
91
|
-
let proc;
|
|
92
|
-
try {
|
|
93
|
-
proc = spawn(...);
|
|
94
|
-
} finally {
|
|
95
|
-
if (proc && !proc.killed) proc.kill();
|
|
96
|
-
}
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
### Python Security
|
|
100
|
-
```python
|
|
101
|
-
# Resource cleanup
|
|
102
|
-
process = None
|
|
103
|
-
try:
|
|
104
|
-
process = subprocess.Popen(...)
|
|
105
|
-
finally:
|
|
106
|
-
if process and process.poll() is None:
|
|
107
|
-
process.kill()
|
|
108
|
-
|
|
109
|
-
# Graceful error handling
|
|
110
|
-
try:
|
|
111
|
-
content = path.read_text()
|
|
112
|
-
except (PermissionError, UnicodeDecodeError, OSError) as e:
|
|
113
|
-
print(f"Warning: {e}", file=sys.stderr)
|
|
114
|
-
return default_value
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
## Code Quality Standards
|
|
118
|
-
|
|
119
|
-
- โ
**Error handling:** No silent failures - always handle errors explicitly
|
|
120
|
-
- โ
**Defensive programming:** Check preconditions and validate inputs
|
|
121
|
-
- โ
**Resource cleanup:** Always clean up files, processes, connections
|
|
122
|
-
- โ
**Race conditions:** Use file locking for shared resources
|
|
123
|
-
- โ
**Comments:** Security-critical code only (explain WHY, not WHAT)
|
|
124
|
-
- โ
**Single responsibility:** Keep functions focused and testable
|
|
125
|
-
|
|
126
|
-
## Testing Requirements
|
|
127
|
-
|
|
128
|
-
- Run `npm test` before committing (REQUIRED)
|
|
129
|
-
- Write tests for: input validation, path handling, edge cases
|
|
130
|
-
- Code review via `/dev-story` includes test validation
|
|
131
|
-
- Target: 80%+ code coverage for new features
|
|
132
|
-
|
|
133
|
-
## Definition of Done (Checked by /dev-story)
|
|
134
|
-
|
|
135
|
-
- [ ] All tests pass (`npm test`)
|
|
136
|
-
- [ ] No Sonar security hotspots
|
|
137
|
-
- [ ] Code follows project patterns (project-context.md)
|
|
138
|
-
- [ ] Credentials masked in logs
|
|
139
|
-
- [ ] Paths validated (no traversal)
|
|
140
|
-
- [ ] File operations safe (ownership checked)
|
|
141
|
-
- [ ] Shell scripts use strict mode
|
|
142
|
-
- [ ] Resources properly cleaned up
|
|
143
|
-
- [ ] Acceptance criteria satisfied
|
|
144
|
-
|
|
145
|
-
## Story Development Workflow (REQUIRED)
|
|
146
|
-
|
|
147
|
-
### For Each Sprint:
|
|
148
|
-
1. Run `/sprint-planning` to initialize sprint-status.yaml
|
|
149
|
-
2. For each story, run `/dev-story` (handles everything)
|
|
150
|
-
3. Check progress anytime with `/sprint-status`
|
|
151
|
-
|
|
152
|
-
### What /dev-story Does:
|
|
153
|
-
- Finds next ready-for-dev story
|
|
154
|
-
- Loads story file with acceptance criteria
|
|
155
|
-
- Implements tasks with code + tests
|
|
156
|
-
- **Runs adversarial code review** (finds 3-10 issues)
|
|
157
|
-
- **Auto-fixes HIGH and MEDIUM severity issues**
|
|
158
|
-
- Validates against project-context.md
|
|
159
|
-
- Updates sprint-status.yaml automatically
|
|
160
|
-
- Marks story complete when all ACs satisfied
|
|
161
|
-
|
|
162
|
-
**Never bypass the workflow** - it enforces all quality gates.
|
|
163
|
-
|
|
164
|
-
## Important Files
|
|
1
|
+
# AgentVibes โ Development Guidelines
|
|
2
|
+
|
|
3
|
+
**Updated:** 2026-07-06 (v5.12.x era)
|
|
4
|
+
|
|
5
|
+
## What this is
|
|
6
|
+
|
|
7
|
+
AgentVibes (`agentvibes` on npm) gives AI coding agents a spoken voice: Claude Code hooks + MCP server + interactive TUI, with Piper/Kokoro/ElevenLabs providers, background music, per-agent BMAD voices, a remote SSH receiver, and avatar rendering. Node ESM core with **parallel bash and PowerShell runtimes** and a Python MCP server.
|
|
8
|
+
|
|
9
|
+
## Repo map
|
|
10
|
+
|
|
11
|
+
| Path | What it is |
|
|
12
|
+
|------|-----------|
|
|
13
|
+
| `src/installer.js` + `src/installer/` | npx installer (manifest-based, non-destructive) |
|
|
14
|
+
| `src/console/` | blessed TUI (tabs, modals, widgets) |
|
|
15
|
+
| `src/services/` | config-service, provider services, **utterance-resolver.js** (single source of truth for playback plans) |
|
|
16
|
+
| `.claude/hooks/` + `.claude/hooks-windows/` | **Shipped product code** โ bash/PS1 runtime (`play-tts.sh`, `audio-processor.sh`, `bmad-speak.sh`, โฆ) installed into user projects |
|
|
17
|
+
| `mcp-server/` | Python MCP server (`server.py`, pytest suite) |
|
|
18
|
+
| `templates/` | Remote receiver scripts (`agentvibes-receiver.sh`/`.ps1`) |
|
|
19
|
+
| `bin/` | CLI entry points (`agentvibes.js`, `resolve-utterance.js`, `mcp-server.js`) |
|
|
20
|
+
| `test/unit/` | node:test `.test.js` + bats `.bats` suites |
|
|
21
|
+
| `docs/implementation-artifacts/` | BMAD story files + `sprint-status.yaml` |
|
|
22
|
+
| `docs/architecture/` | Provider/system architecture docs |
|
|
23
|
+
|
|
24
|
+
**Everything under the repo's `.claude/` (hooks, personalities, commands, config) is the npm package payload.** Editing a hook here is a product change: it must pass tests, keep bash/PowerShell parity, and reach real installs via the installer (`manifestSafeCopy`) โ not just the dev checkout. The remote receiver additionally needs an in-place redeploy to `~/.agentvibes/` + watcher restart.
|
|
25
|
+
|
|
26
|
+
## Architecture invariants (hard-won โ do not regress)
|
|
27
|
+
|
|
28
|
+
1. **The utterance resolver is the single source of truth.** `src/services/utterance-resolver.js` reads all config once and emits a flat plan (voice, engine, transport, effects, music, speed, volume). Players consume the plan; they must NOT re-read config files directly. New playback behavior goes in the resolver + precedence table, not in a player script.
|
|
29
|
+
2. **Volume defaults are 20% (`0.20`), never 70%.** Regression-tested; covered in bash, PS, and JS.
|
|
30
|
+
3. **Never select TTS output by "most recent file."** Providers emit an `AV_OUTPUT:` sentinel on stdout; capture the exact filename and fail loudly on synthesis failure. The `ls -t` heuristic is retired.
|
|
31
|
+
4. **Kokoro voices force the kokoro engine** (an `af_*`/`am_*` voice with a piper ENGINE column = silence). The resolver encodes this; keep it.
|
|
32
|
+
5. **Bash/PowerShell parity.** Any change to `play-tts.sh` needs the mirror change in `play-tts.ps1` (and vice versa), plus the contract-test matrix (`AVI-S8.7`) kept green. Note the historical env-flag split: bash reads `AGENTVIBES_NO_PLAYBACK`, PS reads `AGENTVIBES_NO_PLAY` โ set both.
|
|
33
|
+
6. **Receiver settings are keyed by project** (TTS `--project-dir` basename namespaces scene/avatar/voice). Don't wipe `glb-scenes.json` โ it holds calibration.
|
|
34
|
+
7. **SSH senders must never force `-p 22`** โ it overrides `~/.ssh/config` alias ports and silently drops TTS.
|
|
35
|
+
|
|
36
|
+
## Non-Destructive Configuration Rule (MANDATORY)
|
|
37
|
+
|
|
38
|
+
All code touching user `.claude/` or `~/.claude/` config must be non-destructive. This is enforced by real machinery โ use it:
|
|
39
|
+
|
|
40
|
+
- `manifestSafeCopy()` in `src/installer.js` copies via an install manifest and refuses to clobber user-modified files. New installed files go through it.
|
|
41
|
+
- `configureSessionStartHook()` and friends write hooks **only when absent**.
|
|
42
|
+
- Never delete/overwrite user settings, voices, personalities, or `audio-effects.cfg`; custom entries must survive `agentvibes update`. A settings.json parse error must not wipe the file.
|
|
43
|
+
- Any function that could overwrite user data needs an idempotency test (see `test/unit/installer-config-safety.test.js`, `install-manifest.test.js`).
|
|
44
|
+
|
|
45
|
+
## Development workflow
|
|
46
|
+
|
|
47
|
+
Hybrid, in practice:
|
|
48
|
+
|
|
49
|
+
- **BMAD for planning and tracking.** Epics/stories live in `docs/implementation-artifacts/` with `sprint-status.yaml` actively maintained. Use `/sprint-planning`, `/create-story`, `/dev-story` for story-shaped work; update `sprint-status.yaml` when a story changes state.
|
|
50
|
+
- **Implementation happens on feature branches and git worktrees** (many active: `feat/*`, `fix/*`, worktrees like `AgentVibes-musetalk`, `AgentVibes-outfit-swap`), merged to `master`. Direct fixes, agent-driven implementation, and adversarial code-review passes are all normal โ `/dev-story` is a tool, not a gate on every commit.
|
|
51
|
+
- **Adversarial code review before merging significant work** (see the `fix(review): โฆ` commits); HIGH/MEDIUM findings get fixed, not deferred.
|
|
52
|
+
- Get explicit user approval before commits/pushes for non-story work. Paul doesn't code โ do the work end-to-end via scripts; give estimates in AI time.
|
|
53
|
+
|
|
54
|
+
## Testing
|
|
55
|
+
|
|
56
|
+
- `npm test` โ `scripts/run-tests.sh`: syntax check โ bats suite โ `node --test` with c8 coverage. **Required before committing.**
|
|
57
|
+
- The runner suppresses TTS audio globally (marker file `~/.agentvibes-tests-running` + `AGENTVIBES_SUPPRESS_AUDIO` + both no-play flags). Opt in to audio with `AGENTVIBES_TEST_AUDIO=true`.
|
|
58
|
+
- Python: `pytest` in `mcp-server/` (`test_server.py`, `test_mcp_correctness.py`, `test_windows_script_parity.py`).
|
|
59
|
+
- CI: `test.yml`, `test-windows.yml`, `test-macos*.yml`, `sonarcloud.yml`, `codeql.yml`, `publish.yml`.
|
|
60
|
+
- New regressions become permanent tests (contract-test matrix pattern) โ a bug fixed without a test will come back.
|
|
61
|
+
|
|
62
|
+
## Releases โ use the `/release` skill
|
|
63
|
+
|
|
64
|
+
`/release` runs the managed workflow with human checkpoints: pre-flight (coverage must pass, secret scan), version-bump recommendation, drafted RELEASE_NOTES.md + README "NEW IN" section + 8-language translations (`docs/i18n/`), then `npm version` โ push โ `gh release create` โ optional `npm publish`, each gated on explicit approval.
|
|
65
|
+
|
|
66
|
+
- **`package.json` is the single source of truth for version.** The README badge is auto-updated by `scripts/sync-readme-version.js` via the npm `version` hook โ never hand-edit it.
|
|
67
|
+
- **`npm publish` packs the working tree, not the git tag.** Run the pack-contents test (`test/unit/npm-pack-contents.test.js`) and never publish from a dirty tree.
|
|
68
|
+
- Alpha flow is normal: ship `x.y.z-alpha.N` while iterating, then promote to stable.
|
|
69
|
+
|
|
70
|
+
## Security (project-specific, enforced by tests)
|
|
71
|
+
|
|
72
|
+
- **User-supplied file paths** (custom music, config) go through the validator chain: `path.resolve()`, containment check, magic-number format validation, UID ownership check (see `audio-format-validator`, `file-ownership-verifier` and the 180-case traversal suite).
|
|
73
|
+
- **Hooks/shell scripts use `set -euo pipefail`**, quoted expansions, and `trap` cleanup of temp files.
|
|
74
|
+
- **Never display or log secrets** โ no API keys/tokens in chat, logs, commits, or example data (real SSH ports/aliases were once scrubbed from tests; don't reintroduce them). Mask credentials (`key.substring(0,3) + '...'`).
|
|
75
|
+
- Clean up spawned processes (`try/finally` kill in JS, `finally: process.kill()` in Python) โ the TUI spawns preview processes constantly.
|
|
76
|
+
- SonarCloud runs on CI after push; it can't run locally.
|
|
77
|
+
|
|
78
|
+
## Key references
|
|
165
79
|
|
|
166
80
|
| File | Purpose |
|
|
167
81
|
|------|---------|
|
|
168
|
-
| `
|
|
169
|
-
| `
|
|
170
|
-
| `
|
|
171
|
-
| `
|
|
172
|
-
|
|
|
173
|
-
| `
|
|
174
|
-
|
|
175
|
-
## References
|
|
176
|
-
|
|
177
|
-
- **BMAD Methodology:** See `/sprint-planning`, `/dev-story`, `/sprint-status` workflows
|
|
178
|
-
- **Security Standards:** [SonarCloud Rules](https://rules.sonarsource.com/javascript/type/Security_Hotspot), [OWASP Top 10](https://owasp.org/www-project-top-ten/)
|
|
179
|
-
- **Bash Best Practices:** [Shellharden](https://github.com/anordal/shellharden/blob/master/how_to_do_things_safely_in_bash.md)
|
|
82
|
+
| `docs/implementation-artifacts/sprint-status.yaml` | Live sprint/story state |
|
|
83
|
+
| `docs/architecture/provider-system.md` | Provider architecture |
|
|
84
|
+
| `BMAD-STORY-DEVELOPMENT.md` | BMAD story workflow reference |
|
|
85
|
+
| `AGENTS.md` | TTS protocol for AI agents using AgentVibes |
|
|
86
|
+
| `.claude/skills/release/SKILL.md` | Release workflow |
|
|
87
|
+
| `docs/feature-platform-matrix.md` | What works on which platform |
|
package/README.md
CHANGED
|
@@ -58,7 +58,17 @@ New here? The [**Quick Start guide**](docs/quick-start.md) walks you through you
|
|
|
58
58
|
|
|
59
59
|
---
|
|
60
60
|
|
|
61
|
-
## ๐
|
|
61
|
+
## ๐ Reliable setup and complete audio previews (v5.14.0)
|
|
62
|
+
|
|
63
|
+
Includes all changes from 5.13.2, which was not published to npm.
|
|
64
|
+
|
|
65
|
+
- **Setup completes on macOS and Linux** โ installing Piper and downloading voices now runs correctly on a fresh machine, resolving a long-standing first-install issue.
|
|
66
|
+
- **Preview plays your complete mix** โ voice, reverb/effects and background music together, so previews reflect how your agent will actually sound.
|
|
67
|
+
- **Updates preserve your customisations** โ edited hook scripts are backed up with a timestamp before any file is replaced.
|
|
68
|
+
- **Clearer audio destination** โ Settings shows **Local** in green and **Remote** in red.
|
|
69
|
+
- **Correct preview engine** โ previews use the selected voice's own engine and identify it; Windows and macOS voices work over remote previews.
|
|
70
|
+
|
|
71
|
+
### v5.13.0 โ Your voices everywhere
|
|
62
72
|
|
|
63
73
|
Pick the voices built into **Windows** or **Mac** and hear them wherever you're listening โ even when your agents run on another computer. Plus a friendly heads-up chime so you always know sound is coming.
|
|
64
74
|
|
|
@@ -215,6 +225,21 @@ Running a full BMAD agent team? **Every agent gets its own distinct voice**, aut
|
|
|
215
225
|
|
|
216
226
|
---
|
|
217
227
|
|
|
228
|
+
## ๐ฌ Reserved for future enhancements
|
|
229
|
+
|
|
230
|
+
You may notice a few dormant hooks in `.claude/hooks/` (`forward-to-avatar.sh`) and small
|
|
231
|
+
gated blocks inside `play-tts.sh` / `play-tts.ps1` referencing a "TalkingHead avatar" and a
|
|
232
|
+
`config/talking-head-enabled.txt` flag. These are **not an active feature** โ there's no
|
|
233
|
+
avatar UI shipped in this package. They're scaffolding for an in-development, browser-based
|
|
234
|
+
avatar receiver that isn't merged yet, checked in early so that project has a stable
|
|
235
|
+
client-side delivery contract to build against.
|
|
236
|
+
|
|
237
|
+
Everything about this is inert by default: the enable-flag file doesn't exist until you
|
|
238
|
+
create it yourself, and every code path is short-circuited behind that check before it does
|
|
239
|
+
anything (no new network calls, no behavior change) for every current install.
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
218
243
|
## ๐ Documentation
|
|
219
244
|
|
|
220
245
|
| Guide | |
|
|
@@ -233,7 +258,7 @@ Running a full BMAD agent team? **Every agent gets its own distinct voice**, aut
|
|
|
233
258
|
|
|
234
259
|
## About
|
|
235
260
|
|
|
236
|
-
**AgentVibes** ยท v5.
|
|
261
|
+
**AgentVibes** ยท v5.14.0 ยท Licensed under [Apache-2.0](LICENSE)
|
|
237
262
|
|
|
238
263
|
Built by **Paul Preibisch** โ [@997Fire on X](https://x.com/997Fire) ยท [agentvibes.org](https://agentvibes.org) ยท [github.com/paulpreibisch/AgentVibes](https://github.com/paulpreibisch/AgentVibes)
|
|
239
264
|
|
package/RELEASE_NOTES.md
CHANGED
|
@@ -1,5 +1,73 @@
|
|
|
1
1
|
# AgentVibes Release Notes
|
|
2
2
|
|
|
3
|
+
## v5.14.0 โ Reliable setup and complete audio previews
|
|
4
|
+
|
|
5
|
+
**Released:** 2026-07-19 ยท `npm install agentvibes@latest`
|
|
6
|
+
|
|
7
|
+
This release focuses on two things: getting AgentVibes installed correctly on every platform, and making the Preview button an accurate representation of how your agent will actually sound. It also includes everything from 5.13.2, which was tagged but never published to npm.
|
|
8
|
+
|
|
9
|
+
### Setup now completes properly on macOS and Linux
|
|
10
|
+
|
|
11
|
+
Installing Piper and downloading voices now runs correctly on a fresh macOS or Linux machine. Previously these steps could report a failure without having run, which left new users without a working voice engine and no clear way forward. This was a long-standing issue affecting first-time installs specifically โ if you gave up on setup previously, it is worth another try.
|
|
12
|
+
|
|
13
|
+
Related: several setup scripts are now stored in the correct line-ending format, so they execute properly on macOS and Linux.
|
|
14
|
+
|
|
15
|
+
### Preview plays your complete audio mix
|
|
16
|
+
|
|
17
|
+
The Preview button now plays exactly what your agent will sound like: your selected **voice**, any **reverb or audio effects**, and your **background music**, mixed together.
|
|
18
|
+
|
|
19
|
+
Two cases previously played an incomplete mix. Hermes agent previews omitted background music entirely, and on Windows the music track was dropped whenever ffmpeg โ the component that mixes music with speech โ was unavailable. Both are resolved, and if ffmpeg is missing you now receive a clear message identifying it rather than silently reduced audio.
|
|
20
|
+
|
|
21
|
+
### Your customisations survive updates
|
|
22
|
+
|
|
23
|
+
If you have edited any of the hook scripts AgentVibes installs, updating now preserves your work. Your version is copied to a timestamped backup before any file is replaced:
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
play-tts.ps1.user.bak.20260719-143052
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Each update creates its own backup, so earlier versions remain recoverable. On Windows, update coverage extended from 8 scripts to all 25.
|
|
30
|
+
|
|
31
|
+
### Audio destination is clearer at a glance
|
|
32
|
+
|
|
33
|
+
Settings now colour-codes where your audio plays: **Local** in green, **Remote** in red. This makes it immediately obvious when audio is being routed to another machine.
|
|
34
|
+
|
|
35
|
+
### Voice previews use the correct engine
|
|
36
|
+
|
|
37
|
+
Previewing a voice now uses that voice's own engine rather than the global setting, and identifies which engine you are hearing. Windows and macOS system voices work correctly through remote previews, and the Windows voice list now shows only voices that can actually be selected.
|
|
38
|
+
|
|
39
|
+
### Windows remote audio
|
|
40
|
+
|
|
41
|
+
Sending audio from a Windows machine to another computer no longer alters file paths in transit, which previously prevented background music from reaching the receiver.
|
|
42
|
+
|
|
43
|
+
### Package and quality
|
|
44
|
+
|
|
45
|
+
The published package no longer includes unnecessary files, and everything the application references is now present. The full test suite passes on Windows, macOS and Linux from a clean checkout, with new regression tests covering the preview behaviour described above.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## ๐ง v5.13.2 โ Cleaner installs, smoother setup
|
|
50
|
+
|
|
51
|
+
**Released:** 2026-07-17 ยท on `latest` โ `npm install agentvibes@latest`
|
|
52
|
+
|
|
53
|
+
### ๐๏ธ You start with the default settings, ready to make your own
|
|
54
|
+
|
|
55
|
+
Fresh installs now begin clean, with the built-in defaults for voice, background music, and personality โ so it's your setup from the very first run.
|
|
56
|
+
|
|
57
|
+
### ๐ง Mac and Linux setup works properly
|
|
58
|
+
|
|
59
|
+
A few of the scripts that set things up were saved in a Windows format that Mac and Linux can't read, so they'd stop before doing anything. They're in the right format now. Installing Piper and downloading voices work on a fresh Mac or Linux machine again.
|
|
60
|
+
|
|
61
|
+
### ๐ Your voice choice sticks
|
|
62
|
+
|
|
63
|
+
The settings file that remembers which voice goes with which engine could be read slightly wrong, so your engine choice quietly got ignored. Fixed โ what you pick is what you get.
|
|
64
|
+
|
|
65
|
+
### ๐ฆ A smaller, tidier download
|
|
66
|
+
|
|
67
|
+
The package no longer carries files it never needed. Everything the app tells you to run is now actually included.
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
3
71
|
## ๐ง v5.13.1 โ Windows updates that actually update
|
|
4
72
|
|
|
5
73
|
**Released:** 2026-07-16 ยท on `latest` โ `npm install agentvibes@latest`
|