agentvibes 2.14.11 → 2.14.12
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/hooks/language-manager.sh +102 -101
- package/.claude/hooks/voice-manager.sh +55 -40
- package/.claude/hooks/voices-config.sh +77 -29
- package/README.md +8 -8
- package/RELEASE_NOTES.md +141 -0
- package/package.json +1 -1
- package/src/installer.js +197 -77
- package/.bmad/_cfg/agent-manifest.csv +0 -11
- package/.bmad/_cfg/agent-voice-map.csv +0 -11
- package/.bmad/_cfg/agents/bmm-analyst.customize.yaml +0 -42
- package/.bmad/_cfg/agents/bmm-architect.customize.yaml +0 -42
- package/.bmad/_cfg/agents/bmm-dev.customize.yaml +0 -42
- package/.bmad/_cfg/agents/bmm-frame-expert.customize.yaml +0 -42
- package/.bmad/_cfg/agents/bmm-pm.customize.yaml +0 -42
- package/.bmad/_cfg/agents/bmm-sm.customize.yaml +0 -42
- package/.bmad/_cfg/agents/bmm-tea.customize.yaml +0 -42
- package/.bmad/_cfg/agents/bmm-tech-writer.customize.yaml +0 -42
- package/.bmad/_cfg/agents/bmm-ux-designer.customize.yaml +0 -42
- package/.bmad/_cfg/agents/core-bmad-master.customize.yaml +0 -42
- package/.bmad/_cfg/files-manifest.csv +0 -243
- package/.bmad/_cfg/ides/claude-code.yaml +0 -6
- package/.bmad/_cfg/manifest.yaml +0 -9
- package/.bmad/_cfg/task-manifest.csv +0 -5
- package/.bmad/_cfg/tool-manifest.csv +0 -2
- package/.bmad/_cfg/workflow-manifest.csv +0 -38
- package/.bmad/bmm/README.md +0 -128
- package/.bmad/bmm/agents/analyst.md +0 -79
- package/.bmad/bmm/agents/analyst.md.backup-pre-tts +0 -75
- package/.bmad/bmm/agents/architect.md +0 -80
- package/.bmad/bmm/agents/dev.md +0 -70
- package/.bmad/bmm/agents/frame-expert.md +0 -72
- package/.bmad/bmm/agents/pm.md +0 -84
- package/.bmad/bmm/agents/sm.md +0 -93
- package/.bmad/bmm/agents/tea.md +0 -80
- package/.bmad/bmm/agents/tech-writer.md +0 -84
- package/.bmad/bmm/agents/ux-designer.md +0 -79
- package/.bmad/bmm/config.yaml +0 -17
- package/.bmad/bmm/docs/README.md +0 -236
- package/.bmad/bmm/docs/agents-guide.md +0 -1058
- package/.bmad/bmm/docs/brownfield-guide.md +0 -762
- package/.bmad/bmm/docs/enterprise-agentic-development.md +0 -686
- package/.bmad/bmm/docs/faq.md +0 -588
- package/.bmad/bmm/docs/glossary.md +0 -320
- package/.bmad/bmm/docs/party-mode.md +0 -224
- package/.bmad/bmm/docs/quick-spec-flow.md +0 -652
- package/.bmad/bmm/docs/quick-start.md +0 -376
- package/.bmad/bmm/docs/scale-adaptive-system.md +0 -612
- package/.bmad/bmm/docs/test-architecture.md +0 -396
- package/.bmad/bmm/docs/workflow-architecture-reference.md +0 -366
- package/.bmad/bmm/docs/workflow-document-project-reference.md +0 -489
- package/.bmad/bmm/docs/workflows-analysis.md +0 -370
- package/.bmad/bmm/docs/workflows-implementation.md +0 -286
- package/.bmad/bmm/docs/workflows-planning.md +0 -612
- package/.bmad/bmm/docs/workflows-solutioning.md +0 -554
- package/.bmad/bmm/teams/default-party.csv +0 -20
- package/.bmad/bmm/teams/team-fullstack.yaml +0 -13
- package/.bmad/bmm/testarch/knowledge/ci-burn-in.md +0 -675
- package/.bmad/bmm/testarch/knowledge/component-tdd.md +0 -486
- package/.bmad/bmm/testarch/knowledge/contract-testing.md +0 -957
- package/.bmad/bmm/testarch/knowledge/data-factories.md +0 -500
- package/.bmad/bmm/testarch/knowledge/email-auth.md +0 -721
- package/.bmad/bmm/testarch/knowledge/error-handling.md +0 -725
- package/.bmad/bmm/testarch/knowledge/feature-flags.md +0 -750
- package/.bmad/bmm/testarch/knowledge/fixture-architecture.md +0 -401
- package/.bmad/bmm/testarch/knowledge/network-first.md +0 -486
- package/.bmad/bmm/testarch/knowledge/nfr-criteria.md +0 -670
- package/.bmad/bmm/testarch/knowledge/playwright-config.md +0 -730
- package/.bmad/bmm/testarch/knowledge/probability-impact.md +0 -601
- package/.bmad/bmm/testarch/knowledge/risk-governance.md +0 -615
- package/.bmad/bmm/testarch/knowledge/selective-testing.md +0 -732
- package/.bmad/bmm/testarch/knowledge/selector-resilience.md +0 -527
- package/.bmad/bmm/testarch/knowledge/test-healing-patterns.md +0 -644
- package/.bmad/bmm/testarch/knowledge/test-levels-framework.md +0 -473
- package/.bmad/bmm/testarch/knowledge/test-priorities-matrix.md +0 -373
- package/.bmad/bmm/testarch/knowledge/test-quality.md +0 -664
- package/.bmad/bmm/testarch/knowledge/timing-debugging.md +0 -372
- package/.bmad/bmm/testarch/knowledge/visual-debugging.md +0 -524
- package/.bmad/bmm/testarch/tea-index.csv +0 -22
- package/.bmad/bmm/workflows/1-analysis/brainstorm-project/instructions.md +0 -112
- package/.bmad/bmm/workflows/1-analysis/brainstorm-project/project-context.md +0 -25
- package/.bmad/bmm/workflows/1-analysis/brainstorm-project/workflow.yaml +0 -26
- package/.bmad/bmm/workflows/1-analysis/domain-research/instructions.md +0 -425
- package/.bmad/bmm/workflows/1-analysis/domain-research/template.md +0 -180
- package/.bmad/bmm/workflows/1-analysis/domain-research/workflow.yaml +0 -28
- package/.bmad/bmm/workflows/1-analysis/product-brief/checklist.md +0 -115
- package/.bmad/bmm/workflows/1-analysis/product-brief/instructions.md +0 -524
- package/.bmad/bmm/workflows/1-analysis/product-brief/template.md +0 -181
- package/.bmad/bmm/workflows/1-analysis/product-brief/workflow.yaml +0 -45
- package/.bmad/bmm/workflows/1-analysis/research/checklist-deep-prompt.md +0 -144
- package/.bmad/bmm/workflows/1-analysis/research/checklist-technical.md +0 -249
- package/.bmad/bmm/workflows/1-analysis/research/checklist.md +0 -299
- package/.bmad/bmm/workflows/1-analysis/research/claude-code/injections.yaml +0 -114
- package/.bmad/bmm/workflows/1-analysis/research/instructions-deep-prompt.md +0 -438
- package/.bmad/bmm/workflows/1-analysis/research/instructions-market.md +0 -675
- package/.bmad/bmm/workflows/1-analysis/research/instructions-router.md +0 -134
- package/.bmad/bmm/workflows/1-analysis/research/instructions-technical.md +0 -534
- package/.bmad/bmm/workflows/1-analysis/research/template-deep-prompt.md +0 -94
- package/.bmad/bmm/workflows/1-analysis/research/template-market.md +0 -347
- package/.bmad/bmm/workflows/1-analysis/research/template-technical.md +0 -245
- package/.bmad/bmm/workflows/1-analysis/research/workflow.yaml +0 -44
- package/.bmad/bmm/workflows/2-plan-workflows/create-epics-and-stories/epics-template.md +0 -80
- package/.bmad/bmm/workflows/2-plan-workflows/create-epics-and-stories/instructions.md +0 -616
- package/.bmad/bmm/workflows/2-plan-workflows/create-epics-and-stories/workflow.yaml +0 -53
- package/.bmad/bmm/workflows/2-plan-workflows/create-ux-design/checklist.md +0 -310
- package/.bmad/bmm/workflows/2-plan-workflows/create-ux-design/instructions.md +0 -1308
- package/.bmad/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +0 -145
- package/.bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.yaml +0 -61
- package/.bmad/bmm/workflows/2-plan-workflows/prd/checklist.md +0 -346
- package/.bmad/bmm/workflows/2-plan-workflows/prd/domain-complexity.csv +0 -13
- package/.bmad/bmm/workflows/2-plan-workflows/prd/instructions.md +0 -703
- package/.bmad/bmm/workflows/2-plan-workflows/prd/prd-template.md +0 -204
- package/.bmad/bmm/workflows/2-plan-workflows/prd/project-types.csv +0 -11
- package/.bmad/bmm/workflows/2-plan-workflows/prd/workflow.yaml +0 -52
- package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/checklist.md +0 -217
- package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/epics-template.md +0 -74
- package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/instructions-generate-stories.md +0 -436
- package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/instructions.md +0 -980
- package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/tech-spec-template.md +0 -181
- package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/user-story-template.md +0 -90
- package/.bmad/bmm/workflows/2-plan-workflows/tech-spec/workflow.yaml +0 -58
- package/.bmad/bmm/workflows/3-solutioning/architecture/architecture-patterns.yaml +0 -321
- package/.bmad/bmm/workflows/3-solutioning/architecture/architecture-template.md +0 -103
- package/.bmad/bmm/workflows/3-solutioning/architecture/checklist.md +0 -240
- package/.bmad/bmm/workflows/3-solutioning/architecture/decision-catalog.yaml +0 -222
- package/.bmad/bmm/workflows/3-solutioning/architecture/instructions.md +0 -768
- package/.bmad/bmm/workflows/3-solutioning/architecture/pattern-categories.csv +0 -13
- package/.bmad/bmm/workflows/3-solutioning/architecture/workflow.yaml +0 -55
- package/.bmad/bmm/workflows/3-solutioning/implementation-readiness/checklist.md +0 -169
- package/.bmad/bmm/workflows/3-solutioning/implementation-readiness/instructions.md +0 -332
- package/.bmad/bmm/workflows/3-solutioning/implementation-readiness/template.md +0 -146
- package/.bmad/bmm/workflows/3-solutioning/implementation-readiness/workflow.yaml +0 -62
- package/.bmad/bmm/workflows/4-implementation/code-review/backlog_template.md +0 -12
- package/.bmad/bmm/workflows/4-implementation/code-review/checklist.md +0 -22
- package/.bmad/bmm/workflows/4-implementation/code-review/instructions.md +0 -398
- package/.bmad/bmm/workflows/4-implementation/code-review/workflow.yaml +0 -60
- package/.bmad/bmm/workflows/4-implementation/correct-course/checklist.md +0 -279
- package/.bmad/bmm/workflows/4-implementation/correct-course/instructions.md +0 -206
- package/.bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml +0 -56
- package/.bmad/bmm/workflows/4-implementation/create-story/checklist.md +0 -240
- package/.bmad/bmm/workflows/4-implementation/create-story/instructions.md +0 -256
- package/.bmad/bmm/workflows/4-implementation/create-story/template.md +0 -51
- package/.bmad/bmm/workflows/4-implementation/create-story/workflow.yaml +0 -71
- package/.bmad/bmm/workflows/4-implementation/dev-story/checklist.md +0 -38
- package/.bmad/bmm/workflows/4-implementation/dev-story/instructions.md +0 -267
- package/.bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml +0 -56
- package/.bmad/bmm/workflows/4-implementation/epic-tech-context/checklist.md +0 -17
- package/.bmad/bmm/workflows/4-implementation/epic-tech-context/instructions.md +0 -164
- package/.bmad/bmm/workflows/4-implementation/epic-tech-context/template.md +0 -76
- package/.bmad/bmm/workflows/4-implementation/epic-tech-context/workflow.yaml +0 -57
- package/.bmad/bmm/workflows/4-implementation/retrospective/instructions.md +0 -1443
- package/.bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml +0 -56
- package/.bmad/bmm/workflows/4-implementation/sprint-planning/checklist.md +0 -33
- package/.bmad/bmm/workflows/4-implementation/sprint-planning/instructions.md +0 -234
- package/.bmad/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +0 -55
- package/.bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +0 -49
- package/.bmad/bmm/workflows/4-implementation/story-context/checklist.md +0 -16
- package/.bmad/bmm/workflows/4-implementation/story-context/context-template.xml +0 -34
- package/.bmad/bmm/workflows/4-implementation/story-context/instructions.md +0 -209
- package/.bmad/bmm/workflows/4-implementation/story-context/workflow.yaml +0 -61
- package/.bmad/bmm/workflows/4-implementation/story-done/instructions.md +0 -111
- package/.bmad/bmm/workflows/4-implementation/story-done/workflow.yaml +0 -26
- package/.bmad/bmm/workflows/4-implementation/story-ready/instructions.md +0 -117
- package/.bmad/bmm/workflows/4-implementation/story-ready/workflow.yaml +0 -23
- package/.bmad/bmm/workflows/document-project/checklist.md +0 -245
- package/.bmad/bmm/workflows/document-project/documentation-requirements.csv +0 -12
- package/.bmad/bmm/workflows/document-project/instructions.md +0 -222
- package/.bmad/bmm/workflows/document-project/templates/deep-dive-template.md +0 -345
- package/.bmad/bmm/workflows/document-project/templates/index-template.md +0 -169
- package/.bmad/bmm/workflows/document-project/templates/project-overview-template.md +0 -103
- package/.bmad/bmm/workflows/document-project/templates/project-scan-report-schema.json +0 -160
- package/.bmad/bmm/workflows/document-project/templates/source-tree-template.md +0 -135
- package/.bmad/bmm/workflows/document-project/workflow.yaml +0 -29
- package/.bmad/bmm/workflows/document-project/workflows/deep-dive-instructions.md +0 -298
- package/.bmad/bmm/workflows/document-project/workflows/deep-dive.yaml +0 -31
- package/.bmad/bmm/workflows/document-project/workflows/full-scan-instructions.md +0 -1106
- package/.bmad/bmm/workflows/document-project/workflows/full-scan.yaml +0 -31
- package/.bmad/bmm/workflows/frame-expert/_shared/excalidraw-helpers.md +0 -127
- package/.bmad/bmm/workflows/frame-expert/_shared/excalidraw-library.json +0 -90
- package/.bmad/bmm/workflows/frame-expert/_shared/excalidraw-templates.yaml +0 -127
- package/.bmad/bmm/workflows/frame-expert/_shared/validate-json-instructions.md +0 -79
- package/.bmad/bmm/workflows/frame-expert/create-dataflow/checklist.md +0 -39
- package/.bmad/bmm/workflows/frame-expert/create-dataflow/instructions.md +0 -131
- package/.bmad/bmm/workflows/frame-expert/create-dataflow/workflow.yaml +0 -23
- package/.bmad/bmm/workflows/frame-expert/create-diagram/checklist.md +0 -43
- package/.bmad/bmm/workflows/frame-expert/create-diagram/instructions.md +0 -142
- package/.bmad/bmm/workflows/frame-expert/create-diagram/workflow.yaml +0 -24
- package/.bmad/bmm/workflows/frame-expert/create-flowchart/checklist.md +0 -49
- package/.bmad/bmm/workflows/frame-expert/create-flowchart/instructions.md +0 -242
- package/.bmad/bmm/workflows/frame-expert/create-flowchart/workflow.yaml +0 -27
- package/.bmad/bmm/workflows/frame-expert/create-wireframe/checklist.md +0 -38
- package/.bmad/bmm/workflows/frame-expert/create-wireframe/instructions.md +0 -133
- package/.bmad/bmm/workflows/frame-expert/create-wireframe/workflow.yaml +0 -23
- package/.bmad/bmm/workflows/techdoc/documentation-standards.md +0 -262
- package/.bmad/bmm/workflows/testarch/atdd/atdd-checklist-template.md +0 -363
- package/.bmad/bmm/workflows/testarch/atdd/checklist.md +0 -373
- package/.bmad/bmm/workflows/testarch/atdd/instructions.md +0 -785
- package/.bmad/bmm/workflows/testarch/atdd/workflow.yaml +0 -45
- package/.bmad/bmm/workflows/testarch/automate/checklist.md +0 -580
- package/.bmad/bmm/workflows/testarch/automate/instructions.md +0 -1303
- package/.bmad/bmm/workflows/testarch/automate/workflow.yaml +0 -52
- package/.bmad/bmm/workflows/testarch/ci/checklist.md +0 -246
- package/.bmad/bmm/workflows/testarch/ci/github-actions-template.yaml +0 -165
- package/.bmad/bmm/workflows/testarch/ci/gitlab-ci-template.yaml +0 -128
- package/.bmad/bmm/workflows/testarch/ci/instructions.md +0 -517
- package/.bmad/bmm/workflows/testarch/ci/workflow.yaml +0 -45
- package/.bmad/bmm/workflows/testarch/framework/checklist.md +0 -321
- package/.bmad/bmm/workflows/testarch/framework/instructions.md +0 -455
- package/.bmad/bmm/workflows/testarch/framework/workflow.yaml +0 -47
- package/.bmad/bmm/workflows/testarch/nfr-assess/checklist.md +0 -405
- package/.bmad/bmm/workflows/testarch/nfr-assess/instructions.md +0 -722
- package/.bmad/bmm/workflows/testarch/nfr-assess/nfr-report-template.md +0 -443
- package/.bmad/bmm/workflows/testarch/nfr-assess/workflow.yaml +0 -47
- package/.bmad/bmm/workflows/testarch/test-design/checklist.md +0 -234
- package/.bmad/bmm/workflows/testarch/test-design/instructions.md +0 -782
- package/.bmad/bmm/workflows/testarch/test-design/test-design-template.md +0 -285
- package/.bmad/bmm/workflows/testarch/test-design/workflow.yaml +0 -48
- package/.bmad/bmm/workflows/testarch/test-review/checklist.md +0 -470
- package/.bmad/bmm/workflows/testarch/test-review/instructions.md +0 -608
- package/.bmad/bmm/workflows/testarch/test-review/test-review-template.md +0 -388
- package/.bmad/bmm/workflows/testarch/test-review/workflow.yaml +0 -46
- package/.bmad/bmm/workflows/testarch/trace/checklist.md +0 -654
- package/.bmad/bmm/workflows/testarch/trace/instructions.md +0 -1045
- package/.bmad/bmm/workflows/testarch/trace/trace-template.md +0 -673
- package/.bmad/bmm/workflows/testarch/trace/workflow.yaml +0 -55
- package/.bmad/bmm/workflows/workflow-status/init/instructions.md +0 -334
- package/.bmad/bmm/workflows/workflow-status/init/workflow.yaml +0 -28
- package/.bmad/bmm/workflows/workflow-status/instructions.md +0 -388
- package/.bmad/bmm/workflows/workflow-status/paths/enterprise-brownfield.yaml +0 -138
- package/.bmad/bmm/workflows/workflow-status/paths/enterprise-greenfield.yaml +0 -126
- package/.bmad/bmm/workflows/workflow-status/paths/game-design.yaml +0 -52
- package/.bmad/bmm/workflows/workflow-status/paths/method-brownfield.yaml +0 -122
- package/.bmad/bmm/workflows/workflow-status/paths/method-greenfield.yaml +0 -113
- package/.bmad/bmm/workflows/workflow-status/paths/quick-flow-brownfield.yaml +0 -58
- package/.bmad/bmm/workflows/workflow-status/paths/quick-flow-greenfield.yaml +0 -47
- package/.bmad/bmm/workflows/workflow-status/project-levels.yaml +0 -59
- package/.bmad/bmm/workflows/workflow-status/workflow-status-template.yaml +0 -24
- package/.bmad/bmm/workflows/workflow-status/workflow.yaml +0 -28
- package/.bmad/core/agents/bmad-master.md +0 -72
- package/.bmad/core/agents/bmad-web-orchestrator.agent.xml +0 -113
- package/.bmad/core/config.yaml +0 -1
- package/.bmad/core/tasks/adv-elicit-methods.csv +0 -39
- package/.bmad/core/tasks/advanced-elicitation-methods.csv +0 -21
- package/.bmad/core/tasks/advanced-elicitation.xml +0 -106
- package/.bmad/core/tasks/index-docs.xml +0 -65
- package/.bmad/core/tasks/validate-workflow.xml +0 -89
- package/.bmad/core/tasks/workflow.xml +0 -270
- package/.bmad/core/tools/shard-doc.xml +0 -109
- package/.bmad/core/workflows/brainstorming/README.md +0 -261
- package/.bmad/core/workflows/brainstorming/brain-methods.csv +0 -36
- package/.bmad/core/workflows/brainstorming/instructions.md +0 -315
- package/.bmad/core/workflows/brainstorming/template.md +0 -106
- package/.bmad/core/workflows/brainstorming/workflow.yaml +0 -38
- package/.bmad/core/workflows/party-mode/instructions.md +0 -203
- package/.bmad/core/workflows/party-mode/workflow.yaml +0 -28
- package/.bmad/docs/claude-code-instructions.md +0 -25
- package/.claude/commands/BMad/analyst.md +0 -88
- package/.claude/commands/BMad/architect.md +0 -89
- package/.claude/commands/BMad/bmad-master.md +0 -114
- package/.claude/commands/BMad/bmad-orchestrator.md +0 -151
- package/.claude/commands/BMad/dev.md +0 -85
- package/.claude/commands/BMad/pm.md +0 -88
- package/.claude/commands/BMad/po.md +0 -83
- package/.claude/commands/BMad/qa.md +0 -91
- package/.claude/commands/BMad/sm.md +0 -69
- package/.claude/commands/BMad/tasks/advanced-elicitation.md +0 -123
- package/.claude/commands/BMad/tasks/apply-qa-fixes.md +0 -154
- package/.claude/commands/BMad/tasks/brownfield-create-epic.md +0 -166
- package/.claude/commands/BMad/tasks/brownfield-create-story.md +0 -153
- package/.claude/commands/BMad/tasks/correct-course.md +0 -76
- package/.claude/commands/BMad/tasks/create-brownfield-story.md +0 -318
- package/.claude/commands/BMad/tasks/create-deep-research-prompt.md +0 -284
- package/.claude/commands/BMad/tasks/create-doc.md +0 -107
- package/.claude/commands/BMad/tasks/create-next-story.md +0 -118
- package/.claude/commands/BMad/tasks/document-project.md +0 -349
- package/.claude/commands/BMad/tasks/execute-checklist.md +0 -92
- package/.claude/commands/BMad/tasks/facilitate-brainstorming-session.md +0 -142
- package/.claude/commands/BMad/tasks/generate-ai-frontend-prompt.md +0 -57
- package/.claude/commands/BMad/tasks/index-docs.md +0 -179
- package/.claude/commands/BMad/tasks/kb-mode-interaction.md +0 -81
- package/.claude/commands/BMad/tasks/nfr-assess.md +0 -349
- package/.claude/commands/BMad/tasks/qa-gate.md +0 -167
- package/.claude/commands/BMad/tasks/review-story.md +0 -320
- package/.claude/commands/BMad/tasks/risk-profile.md +0 -359
- package/.claude/commands/BMad/tasks/shard-doc.md +0 -191
- package/.claude/commands/BMad/tasks/test-design.md +0 -180
- package/.claude/commands/BMad/tasks/trace-requirements.md +0 -270
- package/.claude/commands/BMad/tasks/validate-next-story.md +0 -140
- package/.claude/commands/BMad/ux-expert.md +0 -73
- package/.claude/commands/bmad/bmm/agents/analyst.md +0 -14
- package/.claude/commands/bmad/bmm/agents/architect.md +0 -14
- package/.claude/commands/bmad/bmm/agents/dev.md +0 -14
- package/.claude/commands/bmad/bmm/agents/frame-expert.md +0 -14
- package/.claude/commands/bmad/bmm/agents/pm.md +0 -14
- package/.claude/commands/bmad/bmm/agents/sm.md +0 -14
- package/.claude/commands/bmad/bmm/agents/tea.md +0 -14
- package/.claude/commands/bmad/bmm/agents/tech-writer.md +0 -14
- package/.claude/commands/bmad/bmm/agents/ux-designer.md +0 -14
- package/.claude/commands/bmad/bmm/workflows/architecture.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/brainstorm-project.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/code-review.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/correct-course.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/create-dataflow.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/create-diagram.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/create-epics-and-stories.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/create-flowchart.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/create-story.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/create-ux-design.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/create-wireframe.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/dev-story.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/document-project.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/domain-research.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/epic-tech-context.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/implementation-readiness.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/prd.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/product-brief.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/research.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/retrospective.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/sprint-planning.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/story-context.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/story-done.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/story-ready.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/tech-spec.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/workflow-init.md +0 -13
- package/.claude/commands/bmad/bmm/workflows/workflow-status.md +0 -13
- package/.claude/commands/bmad/core/agents/bmad-master.md +0 -14
- package/.claude/commands/bmad/core/tasks/advanced-elicitation.md +0 -9
- package/.claude/commands/bmad/core/tasks/index-docs.md +0 -9
- package/.claude/commands/bmad/core/tools/shard-doc.md +0 -9
- package/.claude/commands/bmad/core/workflows/brainstorming.md +0 -13
- package/.claude/commands/bmad/core/workflows/party-mode.md +0 -13
- package/.claude/github-star-reminder.txt +0 -1
- package/.claude/hooks/bmad-party-manager.sh +0 -225
- package/.claude/hooks/stop.sh +0 -221
- package/.claude/piper-voices-dir.txt +0 -1
- package/.mcp.json +0 -88
- package/RELEASE_NOTES_v2.4.0_DRAFT.md +0 -116
- package/RELEASE_NOTES_v2.4.1_DRAFT.md +0 -61
- package/docs/2025-11-15_15-14-33.snagx +0 -0
- package/docs/Screenshot 2025-11-15 151325.png +0 -0
- package/docs/Screenshot 2025-11-15 151432.png +0 -0
- package/docs/macos-piper-issue.md +0 -172
- package/docs/stargazer-cms-prd.md +0 -1918
- package/docs/whatsapp-plugin-github-issue.md +0 -393
- package/docs/whatsapp-tts-plugin-feasibility.md +0 -418
- package/docs/whatsapp-tts-standalone-plugin.md +0 -628
- package/github-profile-draft.md +0 -57
- package/linkedin/vibe-coding-and-pulseaudio.md +0 -121
- package/mcp-server/agentvibes.db +0 -0
- package/scripts/audio-tunnel.config +0 -17
- package/scripts/testmacos.sh +0 -1
- package/v4-backup/.bmad-core/agent-teams/team-all.yaml +0 -15
- package/v4-backup/.bmad-core/agent-teams/team-fullstack.yaml +0 -19
- package/v4-backup/.bmad-core/agent-teams/team-ide-minimal.yaml +0 -11
- package/v4-backup/.bmad-core/agent-teams/team-no-ui.yaml +0 -14
- package/v4-backup/.bmad-core/agents/analyst.md +0 -84
- package/v4-backup/.bmad-core/agents/architect.md +0 -85
- package/v4-backup/.bmad-core/agents/bmad-master.md +0 -110
- package/v4-backup/.bmad-core/agents/bmad-orchestrator.md +0 -147
- package/v4-backup/.bmad-core/agents/dev.md +0 -81
- package/v4-backup/.bmad-core/agents/pm.md +0 -84
- package/v4-backup/.bmad-core/agents/po.md +0 -79
- package/v4-backup/.bmad-core/agents/qa.md +0 -87
- package/v4-backup/.bmad-core/agents/sm.md +0 -65
- package/v4-backup/.bmad-core/agents/ux-expert.md +0 -69
- package/v4-backup/.bmad-core/checklists/architect-checklist.md +0 -440
- package/v4-backup/.bmad-core/checklists/change-checklist.md +0 -184
- package/v4-backup/.bmad-core/checklists/pm-checklist.md +0 -372
- package/v4-backup/.bmad-core/checklists/po-master-checklist.md +0 -434
- package/v4-backup/.bmad-core/checklists/story-dod-checklist.md +0 -96
- package/v4-backup/.bmad-core/checklists/story-draft-checklist.md +0 -155
- package/v4-backup/.bmad-core/core-config.yaml +0 -22
- package/v4-backup/.bmad-core/data/bmad-kb.md +0 -809
- package/v4-backup/.bmad-core/data/brainstorming-techniques.md +0 -38
- package/v4-backup/.bmad-core/data/elicitation-methods.md +0 -156
- package/v4-backup/.bmad-core/data/technical-preferences.md +0 -5
- package/v4-backup/.bmad-core/data/test-levels-framework.md +0 -148
- package/v4-backup/.bmad-core/data/test-priorities-matrix.md +0 -174
- package/v4-backup/.bmad-core/enhanced-ide-development-workflow.md +0 -248
- package/v4-backup/.bmad-core/install-manifest.yaml +0 -230
- package/v4-backup/.bmad-core/tasks/advanced-elicitation.md +0 -119
- package/v4-backup/.bmad-core/tasks/apply-qa-fixes.md +0 -150
- package/v4-backup/.bmad-core/tasks/brownfield-create-epic.md +0 -162
- package/v4-backup/.bmad-core/tasks/brownfield-create-story.md +0 -149
- package/v4-backup/.bmad-core/tasks/correct-course.md +0 -72
- package/v4-backup/.bmad-core/tasks/create-brownfield-story.md +0 -314
- package/v4-backup/.bmad-core/tasks/create-deep-research-prompt.md +0 -280
- package/v4-backup/.bmad-core/tasks/create-doc.md +0 -103
- package/v4-backup/.bmad-core/tasks/create-next-story.md +0 -114
- package/v4-backup/.bmad-core/tasks/document-project.md +0 -345
- package/v4-backup/.bmad-core/tasks/execute-checklist.md +0 -88
- package/v4-backup/.bmad-core/tasks/facilitate-brainstorming-session.md +0 -138
- package/v4-backup/.bmad-core/tasks/generate-ai-frontend-prompt.md +0 -53
- package/v4-backup/.bmad-core/tasks/index-docs.md +0 -175
- package/v4-backup/.bmad-core/tasks/kb-mode-interaction.md +0 -77
- package/v4-backup/.bmad-core/tasks/nfr-assess.md +0 -345
- package/v4-backup/.bmad-core/tasks/qa-gate.md +0 -163
- package/v4-backup/.bmad-core/tasks/review-story.md +0 -316
- package/v4-backup/.bmad-core/tasks/risk-profile.md +0 -355
- package/v4-backup/.bmad-core/tasks/shard-doc.md +0 -187
- package/v4-backup/.bmad-core/tasks/test-design.md +0 -176
- package/v4-backup/.bmad-core/tasks/trace-requirements.md +0 -266
- package/v4-backup/.bmad-core/tasks/validate-next-story.md +0 -136
- package/v4-backup/.bmad-core/templates/architecture-tmpl.yaml +0 -651
- package/v4-backup/.bmad-core/templates/brainstorming-output-tmpl.yaml +0 -156
- package/v4-backup/.bmad-core/templates/brownfield-architecture-tmpl.yaml +0 -477
- package/v4-backup/.bmad-core/templates/brownfield-prd-tmpl.yaml +0 -281
- package/v4-backup/.bmad-core/templates/competitor-analysis-tmpl.yaml +0 -307
- package/v4-backup/.bmad-core/templates/front-end-architecture-tmpl.yaml +0 -219
- package/v4-backup/.bmad-core/templates/front-end-spec-tmpl.yaml +0 -350
- package/v4-backup/.bmad-core/templates/fullstack-architecture-tmpl.yaml +0 -824
- package/v4-backup/.bmad-core/templates/market-research-tmpl.yaml +0 -253
- package/v4-backup/.bmad-core/templates/prd-tmpl.yaml +0 -203
- package/v4-backup/.bmad-core/templates/project-brief-tmpl.yaml +0 -222
- package/v4-backup/.bmad-core/templates/qa-gate-tmpl.yaml +0 -103
- package/v4-backup/.bmad-core/templates/story-tmpl.yaml +0 -138
- package/v4-backup/.bmad-core/user-guide.md +0 -577
- package/v4-backup/.bmad-core/utils/bmad-doc-template.md +0 -327
- package/v4-backup/.bmad-core/utils/workflow-management.md +0 -71
- package/v4-backup/.bmad-core/workflows/brownfield-fullstack.yaml +0 -298
- package/v4-backup/.bmad-core/workflows/brownfield-service.yaml +0 -188
- package/v4-backup/.bmad-core/workflows/brownfield-ui.yaml +0 -198
- package/v4-backup/.bmad-core/workflows/greenfield-fullstack.yaml +0 -241
- package/v4-backup/.bmad-core/workflows/greenfield-service.yaml +0 -207
- package/v4-backup/.bmad-core/workflows/greenfield-ui.yaml +0 -236
- package/v4-backup/.bmad-core/working-in-the-brownfield.md +0 -606
|
@@ -64,92 +64,89 @@ mkdir -p "$CLAUDE_DIR"
|
|
|
64
64
|
# Source provider manager to detect active provider
|
|
65
65
|
source "$SCRIPT_DIR/provider-manager.sh" 2>/dev/null || true
|
|
66
66
|
|
|
67
|
-
#
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
)
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
)
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
["
|
|
149
|
-
|
|
150
|
-
["croatian"]="Domi"
|
|
151
|
-
["slovak"]="Domi"
|
|
152
|
-
)
|
|
67
|
+
# =============================================================================
|
|
68
|
+
# BASH 3.2 COMPATIBILITY: Function-based lookups instead of associative arrays
|
|
69
|
+
# macOS ships with Bash 3.2 which doesn't support declare -A (added in Bash 4.0)
|
|
70
|
+
# =============================================================================
|
|
71
|
+
|
|
72
|
+
# Get ElevenLabs voice for a language
|
|
73
|
+
_get_elevenlabs_voice() {
|
|
74
|
+
local lang="$1"
|
|
75
|
+
case "$lang" in
|
|
76
|
+
spanish) echo "Antoni" ;;
|
|
77
|
+
french) echo "Rachel" ;;
|
|
78
|
+
german) echo "Domi" ;;
|
|
79
|
+
italian) echo "Bella" ;;
|
|
80
|
+
portuguese) echo "Matilda" ;;
|
|
81
|
+
chinese) echo "Antoni" ;;
|
|
82
|
+
japanese) echo "Antoni" ;;
|
|
83
|
+
korean) echo "Antoni" ;;
|
|
84
|
+
russian) echo "Domi" ;;
|
|
85
|
+
polish) echo "Antoni" ;;
|
|
86
|
+
dutch) echo "Rachel" ;;
|
|
87
|
+
turkish) echo "Antoni" ;;
|
|
88
|
+
arabic) echo "Antoni" ;;
|
|
89
|
+
hindi) echo "Antoni" ;;
|
|
90
|
+
swedish) echo "Rachel" ;;
|
|
91
|
+
danish) echo "Rachel" ;;
|
|
92
|
+
norwegian) echo "Rachel" ;;
|
|
93
|
+
finnish) echo "Rachel" ;;
|
|
94
|
+
czech) echo "Domi" ;;
|
|
95
|
+
romanian) echo "Rachel" ;;
|
|
96
|
+
ukrainian) echo "Domi" ;;
|
|
97
|
+
greek) echo "Antoni" ;;
|
|
98
|
+
bulgarian) echo "Domi" ;;
|
|
99
|
+
croatian) echo "Domi" ;;
|
|
100
|
+
slovak) echo "Domi" ;;
|
|
101
|
+
*) echo "" ;;
|
|
102
|
+
esac
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
# Get Piper voice for a language
|
|
106
|
+
_get_piper_voice() {
|
|
107
|
+
local lang="$1"
|
|
108
|
+
case "$lang" in
|
|
109
|
+
spanish) echo "es_ES-davefx-medium" ;;
|
|
110
|
+
french) echo "fr_FR-siwis-medium" ;;
|
|
111
|
+
german) echo "de_DE-thorsten-medium" ;;
|
|
112
|
+
italian) echo "it_IT-riccardo-x_low" ;;
|
|
113
|
+
portuguese) echo "pt_BR-faber-medium" ;;
|
|
114
|
+
chinese) echo "zh_CN-huayan-medium" ;;
|
|
115
|
+
japanese) echo "ja_JP-hikari-medium" ;;
|
|
116
|
+
korean) echo "ko_KR-eunyoung-medium" ;;
|
|
117
|
+
russian) echo "ru_RU-dmitri-medium" ;;
|
|
118
|
+
polish) echo "pl_PL-darkman-medium" ;;
|
|
119
|
+
dutch) echo "nl_NL-rdh-medium" ;;
|
|
120
|
+
turkish) echo "tr_TR-dfki-medium" ;;
|
|
121
|
+
arabic) echo "ar_JO-kareem-medium" ;;
|
|
122
|
+
hindi) echo "hi_IN-amitabh-medium" ;;
|
|
123
|
+
swedish) echo "sv_SE-nst-medium" ;;
|
|
124
|
+
danish) echo "da_DK-talesyntese-medium" ;;
|
|
125
|
+
norwegian) echo "no_NO-talesyntese-medium" ;;
|
|
126
|
+
finnish) echo "fi_FI-harri-medium" ;;
|
|
127
|
+
czech) echo "cs_CZ-jirka-medium" ;;
|
|
128
|
+
romanian) echo "ro_RO-mihai-medium" ;;
|
|
129
|
+
ukrainian) echo "uk_UA-lada-x_low" ;;
|
|
130
|
+
greek) echo "el_GR-rapunzelina-low" ;;
|
|
131
|
+
bulgarian) echo "bg_BG-valentin-medium" ;;
|
|
132
|
+
croatian) echo "hr_HR-gorana-medium" ;;
|
|
133
|
+
slovak) echo "sk_SK-lili-medium" ;;
|
|
134
|
+
*) echo "" ;;
|
|
135
|
+
esac
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
# Get default (ElevenLabs) voice for a language - backward compatibility
|
|
139
|
+
_get_language_voice() {
|
|
140
|
+
_get_elevenlabs_voice "$1"
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
# Check if language is supported
|
|
144
|
+
_is_language_supported() {
|
|
145
|
+
local lang="$1"
|
|
146
|
+
local voice
|
|
147
|
+
voice=$(_get_elevenlabs_voice "$lang")
|
|
148
|
+
[[ -n "$voice" ]]
|
|
149
|
+
}
|
|
153
150
|
|
|
154
151
|
# Supported languages list
|
|
155
152
|
SUPPORTED_LANGUAGES="spanish, french, german, italian, portuguese, chinese, japanese, korean, polish, dutch, turkish, russian, arabic, hindi, swedish, danish, norwegian, finnish, czech, romanian, ukrainian, greek, bulgarian, croatian, slovak"
|
|
@@ -172,8 +169,8 @@ set_language() {
|
|
|
172
169
|
return 0
|
|
173
170
|
fi
|
|
174
171
|
|
|
175
|
-
# Check if language is supported
|
|
176
|
-
if
|
|
172
|
+
# Check if language is supported (Bash 3.2 compatible)
|
|
173
|
+
if ! _is_language_supported "$lang"; then
|
|
177
174
|
echo "❌ Language '$lang' not supported"
|
|
178
175
|
echo ""
|
|
179
176
|
echo "Supported languages:"
|
|
@@ -194,11 +191,12 @@ set_language() {
|
|
|
194
191
|
provider="elevenlabs"
|
|
195
192
|
fi
|
|
196
193
|
|
|
197
|
-
local recommended_voice
|
|
194
|
+
local recommended_voice
|
|
195
|
+
recommended_voice=$(get_voice_for_language "$lang" "$provider")
|
|
198
196
|
|
|
199
|
-
# Fallback to
|
|
197
|
+
# Fallback to default mapping if provider-aware function returns empty
|
|
200
198
|
if [[ -z "$recommended_voice" ]]; then
|
|
201
|
-
recommended_voice
|
|
199
|
+
recommended_voice=$(_get_language_voice "$lang")
|
|
202
200
|
fi
|
|
203
201
|
|
|
204
202
|
echo "✓ Language set to: $lang"
|
|
@@ -223,11 +221,12 @@ get_language() {
|
|
|
223
221
|
provider="elevenlabs"
|
|
224
222
|
fi
|
|
225
223
|
|
|
226
|
-
local recommended_voice
|
|
224
|
+
local recommended_voice
|
|
225
|
+
recommended_voice=$(get_voice_for_language "$lang" "$provider")
|
|
227
226
|
|
|
228
|
-
# Fallback to
|
|
227
|
+
# Fallback to default mapping
|
|
229
228
|
if [[ -z "$recommended_voice" ]]; then
|
|
230
|
-
recommended_voice
|
|
229
|
+
recommended_voice=$(_get_language_voice "$lang")
|
|
231
230
|
fi
|
|
232
231
|
|
|
233
232
|
echo "Current language: $lang"
|
|
@@ -274,7 +273,7 @@ get_best_voice_for_language() {
|
|
|
274
273
|
fi
|
|
275
274
|
|
|
276
275
|
# Return recommended voice for language
|
|
277
|
-
|
|
276
|
+
_get_language_voice "$lang"
|
|
278
277
|
}
|
|
279
278
|
|
|
280
279
|
# Function to get voice for a specific language and provider
|
|
@@ -317,16 +316,16 @@ get_voice_for_language() {
|
|
|
317
316
|
fi
|
|
318
317
|
fi
|
|
319
318
|
|
|
320
|
-
# Return appropriate voice based on provider
|
|
319
|
+
# Return appropriate voice based on provider (Bash 3.2 compatible)
|
|
321
320
|
case "$provider" in
|
|
322
321
|
piper)
|
|
323
|
-
|
|
322
|
+
_get_piper_voice "$language"
|
|
324
323
|
;;
|
|
325
324
|
elevenlabs)
|
|
326
|
-
|
|
325
|
+
_get_elevenlabs_voice "$language"
|
|
327
326
|
;;
|
|
328
327
|
*)
|
|
329
|
-
|
|
328
|
+
_get_elevenlabs_voice "$language"
|
|
330
329
|
;;
|
|
331
330
|
esac
|
|
332
331
|
}
|
|
@@ -371,8 +370,10 @@ if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
|
|
|
371
370
|
list)
|
|
372
371
|
echo "Supported languages and recommended voices:"
|
|
373
372
|
echo ""
|
|
374
|
-
|
|
375
|
-
|
|
373
|
+
# Bash 3.2 compatible - use explicit list instead of associative array keys
|
|
374
|
+
# Note: 'local' can't be used outside functions in Bash 3.2
|
|
375
|
+
for lang in spanish french german italian portuguese chinese japanese korean russian polish dutch turkish arabic hindi swedish danish norwegian finnish czech romanian ukrainian greek bulgarian croatian slovak; do
|
|
376
|
+
printf "%-15s → %s\n" "$lang" "$(_get_language_voice "$lang")"
|
|
376
377
|
done | sort
|
|
377
378
|
;;
|
|
378
379
|
*)
|
|
@@ -163,7 +163,7 @@ case "$1" in
|
|
|
163
163
|
else
|
|
164
164
|
echo "🎤 Available ElevenLabs TTS Voices:"
|
|
165
165
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
166
|
-
|
|
166
|
+
list_elevenlabs_voices | while read -r voice; do
|
|
167
167
|
if [ "$voice" = "$CURRENT_VOICE" ]; then
|
|
168
168
|
echo " ▶ $voice (current)"
|
|
169
169
|
else
|
|
@@ -188,8 +188,8 @@ case "$1" in
|
|
|
188
188
|
# User specified a voice name
|
|
189
189
|
VOICE_NAME="$2"
|
|
190
190
|
|
|
191
|
-
# Check if voice exists
|
|
192
|
-
if
|
|
191
|
+
# Check if voice exists using function
|
|
192
|
+
if is_elevenlabs_voice "$VOICE_NAME"; then
|
|
193
193
|
echo "🎤 Previewing voice: ${VOICE_NAME}"
|
|
194
194
|
echo ""
|
|
195
195
|
"$TTS_SCRIPT" "Hello, this is ${VOICE_NAME}. How do you like my voice?" "${VOICE_NAME}"
|
|
@@ -197,7 +197,7 @@ case "$1" in
|
|
|
197
197
|
echo "❌ Voice not found: ${VOICE_NAME}"
|
|
198
198
|
echo ""
|
|
199
199
|
echo "Available voices:"
|
|
200
|
-
|
|
200
|
+
list_elevenlabs_voices | while read -r voice; do
|
|
201
201
|
echo " • $voice"
|
|
202
202
|
done | sort
|
|
203
203
|
fi
|
|
@@ -209,14 +209,10 @@ case "$1" in
|
|
|
209
209
|
echo ""
|
|
210
210
|
|
|
211
211
|
# Sort voices and preview first 3
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
done
|
|
216
|
-
|
|
217
|
-
# Sort the array
|
|
218
|
-
IFS=$'\n' SORTED_VOICES=($(sort <<<"${VOICE_ARRAY[*]}"))
|
|
219
|
-
unset IFS
|
|
212
|
+
SORTED_VOICES=()
|
|
213
|
+
while IFS= read -r voice; do
|
|
214
|
+
SORTED_VOICES+=("$voice")
|
|
215
|
+
done < <(list_elevenlabs_voices | sort)
|
|
220
216
|
|
|
221
217
|
# Play first 3 voices
|
|
222
218
|
COUNT=0
|
|
@@ -225,7 +221,7 @@ case "$1" in
|
|
|
225
221
|
break
|
|
226
222
|
fi
|
|
227
223
|
echo "🔊 ${voice}..."
|
|
228
|
-
"$TTS_SCRIPT" "Hi, I'm ${voice}" "$
|
|
224
|
+
"$TTS_SCRIPT" "Hi, I'm ${voice}" "$voice"
|
|
229
225
|
sleep 0.5
|
|
230
226
|
COUNT=$((COUNT + 1))
|
|
231
227
|
done
|
|
@@ -253,15 +249,11 @@ case "$1" in
|
|
|
253
249
|
# Get current voice
|
|
254
250
|
CURRENT=$(cat "$VOICE_FILE" 2>/dev/null || get_default_voice)
|
|
255
251
|
|
|
256
|
-
# Create array of voice names
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
done
|
|
261
|
-
|
|
262
|
-
# Sort the array
|
|
263
|
-
IFS=$'\n' SORTED_VOICES=($(sort <<<"${VOICE_ARRAY[*]}"))
|
|
264
|
-
unset IFS
|
|
252
|
+
# Create sorted array of voice names
|
|
253
|
+
SORTED_VOICES=()
|
|
254
|
+
while IFS= read -r voice; do
|
|
255
|
+
SORTED_VOICES+=("$voice")
|
|
256
|
+
done < <(list_elevenlabs_voices | sort)
|
|
265
257
|
|
|
266
258
|
# Display numbered list in two columns for compactness
|
|
267
259
|
HALF=$(( (${#SORTED_VOICES[@]} + 1) / 2 ))
|
|
@@ -314,7 +306,33 @@ case "$1" in
|
|
|
314
306
|
fi
|
|
315
307
|
|
|
316
308
|
# Voice lookup strategy depends on active provider
|
|
317
|
-
if [[ "$ACTIVE_PROVIDER" == "
|
|
309
|
+
if [[ "$ACTIVE_PROVIDER" == "macos" ]]; then
|
|
310
|
+
# macOS voice lookup using say -v ?
|
|
311
|
+
if [[ "$(uname -s)" != "Darwin" ]]; then
|
|
312
|
+
echo "❌ macOS voices only available on macOS"
|
|
313
|
+
echo "Switch to another provider: /agent-vibes:provider switch piper"
|
|
314
|
+
exit 1
|
|
315
|
+
fi
|
|
316
|
+
|
|
317
|
+
# Check if voice exists (case-insensitive match against first column)
|
|
318
|
+
FOUND=""
|
|
319
|
+
while IFS= read -r line; do
|
|
320
|
+
voice=$(echo "$line" | awk '{print $1}')
|
|
321
|
+
if [[ "$(to_lower "$voice")" == "$(to_lower "$VOICE_NAME")" ]]; then
|
|
322
|
+
FOUND="$voice"
|
|
323
|
+
break
|
|
324
|
+
fi
|
|
325
|
+
done < <(say -v ? 2>/dev/null)
|
|
326
|
+
|
|
327
|
+
if [[ -z "$FOUND" ]]; then
|
|
328
|
+
echo "❌ macOS voice not found: $VOICE_NAME"
|
|
329
|
+
echo ""
|
|
330
|
+
echo "Available macOS voices:"
|
|
331
|
+
say -v ? 2>/dev/null | awk '{printf " - %-15s %s\n", $1, $2}' | head -20
|
|
332
|
+
echo " ... (use /agent-vibes:list to see all)"
|
|
333
|
+
exit 1
|
|
334
|
+
fi
|
|
335
|
+
elif [[ "$ACTIVE_PROVIDER" == "piper" ]]; then
|
|
318
336
|
# Piper voice lookup: Scan voice directory for .onnx files
|
|
319
337
|
source "$SCRIPT_DIR/piper-voice-manager.sh"
|
|
320
338
|
VOICE_DIR=$(get_voice_storage_dir)
|
|
@@ -407,15 +425,11 @@ case "$1" in
|
|
|
407
425
|
# ElevenLabs voice lookup
|
|
408
426
|
# Check if input is a number
|
|
409
427
|
if [[ "$VOICE_NAME" =~ ^[0-9]+$ ]]; then
|
|
410
|
-
# Get voice array
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
done
|
|
415
|
-
|
|
416
|
-
# Sort the array
|
|
417
|
-
IFS=$'\n' SORTED_VOICES=($(sort <<<"${VOICE_ARRAY[*]}"))
|
|
418
|
-
unset IFS
|
|
428
|
+
# Get sorted voice array
|
|
429
|
+
SORTED_VOICES=()
|
|
430
|
+
while IFS= read -r voice; do
|
|
431
|
+
SORTED_VOICES+=("$voice")
|
|
432
|
+
done < <(list_elevenlabs_voices | sort)
|
|
419
433
|
|
|
420
434
|
# Get voice by number (adjust for 0-based index)
|
|
421
435
|
INDEX=$((VOICE_NAME - 1))
|
|
@@ -430,19 +444,19 @@ case "$1" in
|
|
|
430
444
|
else
|
|
431
445
|
# Check if voice exists (case-insensitive)
|
|
432
446
|
FOUND=""
|
|
433
|
-
|
|
447
|
+
while IFS= read -r voice; do
|
|
434
448
|
if [[ "$(to_lower "$voice")" == "$(to_lower "$VOICE_NAME")" ]]; then
|
|
435
449
|
FOUND="$voice"
|
|
436
450
|
break
|
|
437
451
|
fi
|
|
438
|
-
done
|
|
452
|
+
done < <(list_elevenlabs_voices)
|
|
439
453
|
fi
|
|
440
454
|
|
|
441
455
|
if [[ -z "$FOUND" ]]; then
|
|
442
456
|
echo "❌ Unknown voice: $VOICE_NAME"
|
|
443
457
|
echo ""
|
|
444
458
|
echo "Available voices:"
|
|
445
|
-
|
|
459
|
+
list_elevenlabs_voices | while read -r voice; do
|
|
446
460
|
echo " - $voice"
|
|
447
461
|
done | sort
|
|
448
462
|
exit 1
|
|
@@ -453,8 +467,11 @@ case "$1" in
|
|
|
453
467
|
echo "✅ Voice switched to: $FOUND"
|
|
454
468
|
|
|
455
469
|
# Show voice ID only for ElevenLabs voices
|
|
456
|
-
if [[ "$ACTIVE_PROVIDER" != "piper" ]]
|
|
457
|
-
|
|
470
|
+
if [[ "$ACTIVE_PROVIDER" != "piper" ]]; then
|
|
471
|
+
VOICE_ID=$(get_voice_id "$FOUND")
|
|
472
|
+
if [[ -n "$VOICE_ID" ]]; then
|
|
473
|
+
echo "🎤 Voice ID: $VOICE_ID"
|
|
474
|
+
fi
|
|
458
475
|
fi
|
|
459
476
|
|
|
460
477
|
# Have the new voice introduce itself (unless silent mode)
|
|
@@ -565,9 +582,7 @@ case "$1" in
|
|
|
565
582
|
fi
|
|
566
583
|
else
|
|
567
584
|
# List ElevenLabs voices
|
|
568
|
-
|
|
569
|
-
echo "$voice"
|
|
570
|
-
done | sort
|
|
585
|
+
list_elevenlabs_voices | sort
|
|
571
586
|
fi
|
|
572
587
|
;;
|
|
573
588
|
|
|
@@ -39,32 +39,80 @@
|
|
|
39
39
|
# @patterns Centralized configuration, DRY principle for voice mappings
|
|
40
40
|
# @related voice-manager.sh, play-tts-elevenlabs.sh, personality/*.md files
|
|
41
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
|
-
)
|
|
42
|
+
# Bash 3.2 compatible voice lookup functions
|
|
43
|
+
# macOS ships with bash 3.2 which doesn't support associative arrays (declare -A)
|
|
44
|
+
# We use simple functions instead for compatibility
|
|
45
|
+
|
|
46
|
+
# Get voice ID by name
|
|
47
|
+
get_voice_id() {
|
|
48
|
+
local name="$1"
|
|
49
|
+
case "$name" in
|
|
50
|
+
"Amy") echo "bhJUNIXWQQ94l8eI2VUf" ;;
|
|
51
|
+
"Antoni") echo "ErXwobaYiN019PkySvjV" ;;
|
|
52
|
+
"Archer") echo "L0Dsvb3SLTyegXwtm47J" ;;
|
|
53
|
+
"Aria") echo "TC0Zp7WVFzhA8zpTlRqV" ;;
|
|
54
|
+
"Bella") echo "EXAVITQu4vr4xnSDxMaL" ;;
|
|
55
|
+
"Burt Reynolds") echo "4YYIPFl9wE5c4L2eu2Gb" ;;
|
|
56
|
+
"Charlotte") echo "XB0fDUnXU5powFXDhCwa" ;;
|
|
57
|
+
"Cowboy Bob") echo "KTPVrSVAEUSJRClDzBw7" ;;
|
|
58
|
+
"Demon Monster") echo "vfaqCOvlrKi4Zp7C2IAm" ;;
|
|
59
|
+
"Domi") echo "AZnzlk1XvdvUeBnXmlld" ;;
|
|
60
|
+
"Dr. Von Fusion") echo "yjJ45q8TVCrtMhEKurxY" ;;
|
|
61
|
+
"Drill Sergeant") echo "vfaqCOvlrKi4Zp7C2IAm" ;;
|
|
62
|
+
"Grandpa Spuds Oxley") echo "NOpBlnGInO9m6vDvFkFC" ;;
|
|
63
|
+
"Grandpa Werthers") echo "MKlLqCItoCkvdhrxgtLv" ;;
|
|
64
|
+
"Jessica Anne Bogart") echo "flHkNRp1BlvT73UL6gyz" ;;
|
|
65
|
+
"Juniper") echo "aMSt68OGf4xUZAnLpTU8" ;;
|
|
66
|
+
"Lutz Laugh") echo "9yzdeviXkFddZ4Oz8Mok" ;;
|
|
67
|
+
"Matilda") echo "XrExE9yKIg1WjnnlVkGX" ;;
|
|
68
|
+
"Matthew Schmitz") echo "0SpgpJ4D3MpHCiWdyTg3" ;;
|
|
69
|
+
"Michael") echo "U1Vk2oyatMdYs096Ety7" ;;
|
|
70
|
+
"Ms. Walker") echo "DLsHlh26Ugcm6ELvS0qi" ;;
|
|
71
|
+
"Northern Terry") echo "wo6udizrrtpIxWGp2qJk" ;;
|
|
72
|
+
"Pirate Marshal") echo "PPzYpIqttlTYA83688JI" ;;
|
|
73
|
+
"Rachel") echo "21m00Tcm4TlvDq8ikWAM" ;;
|
|
74
|
+
"Ralf Eisend") echo "A9evEp8yGjv4c3WsIKuY" ;;
|
|
75
|
+
"Tiffany") echo "6aDn1KB0hjpdcocrUkmq" ;;
|
|
76
|
+
"Tom") echo "DYkrAHD8iwork3YSUBbs" ;;
|
|
77
|
+
*) echo "" ;;
|
|
78
|
+
esac
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
# List all ElevenLabs voice names
|
|
82
|
+
list_elevenlabs_voices() {
|
|
83
|
+
echo "Amy"
|
|
84
|
+
echo "Antoni"
|
|
85
|
+
echo "Archer"
|
|
86
|
+
echo "Aria"
|
|
87
|
+
echo "Bella"
|
|
88
|
+
echo "Burt Reynolds"
|
|
89
|
+
echo "Charlotte"
|
|
90
|
+
echo "Cowboy Bob"
|
|
91
|
+
echo "Demon Monster"
|
|
92
|
+
echo "Domi"
|
|
93
|
+
echo "Dr. Von Fusion"
|
|
94
|
+
echo "Drill Sergeant"
|
|
95
|
+
echo "Grandpa Spuds Oxley"
|
|
96
|
+
echo "Grandpa Werthers"
|
|
97
|
+
echo "Jessica Anne Bogart"
|
|
98
|
+
echo "Juniper"
|
|
99
|
+
echo "Lutz Laugh"
|
|
100
|
+
echo "Matilda"
|
|
101
|
+
echo "Matthew Schmitz"
|
|
102
|
+
echo "Michael"
|
|
103
|
+
echo "Ms. Walker"
|
|
104
|
+
echo "Northern Terry"
|
|
105
|
+
echo "Pirate Marshal"
|
|
106
|
+
echo "Rachel"
|
|
107
|
+
echo "Ralf Eisend"
|
|
108
|
+
echo "Tiffany"
|
|
109
|
+
echo "Tom"
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
# Check if voice exists
|
|
113
|
+
is_elevenlabs_voice() {
|
|
114
|
+
local name="$1"
|
|
115
|
+
local id
|
|
116
|
+
id=$(get_voice_id "$name")
|
|
117
|
+
[[ -n "$id" ]]
|
|
118
|
+
}
|
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
[](https://github.com/paulpreibisch/AgentVibes/actions/workflows/publish.yml)
|
|
12
12
|
[](https://opensource.org/licenses/Apache-2.0)
|
|
13
13
|
|
|
14
|
-
**Author**: Paul Preibisch ([@997Fire](https://x.com/997Fire)) | **Version**: v2.14.
|
|
14
|
+
**Author**: Paul Preibisch ([@997Fire](https://x.com/997Fire)) | **Version**: v2.14.12
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
@@ -94,16 +94,16 @@ Whether you're coding in Claude Code, chatting in Claude Desktop, or using Warp
|
|
|
94
94
|
|
|
95
95
|
## 📰 Latest Release
|
|
96
96
|
|
|
97
|
-
**[v2.14.
|
|
97
|
+
**[v2.14.12 - macOS Bash 3.2 Full Compatibility & MCP Config Installer](https://github.com/paulpreibisch/AgentVibes/releases/tag/v2.14.12)** 🎉
|
|
98
98
|
|
|
99
|
-
AgentVibes v2.14.
|
|
99
|
+
AgentVibes v2.14.12 completes macOS Bash 3.2 compatibility by eliminating ALL `declare -A` associative arrays that caused errors on stock macOS. The installer now offers to create `.mcp.json` automatically for easier MCP setup!
|
|
100
100
|
|
|
101
101
|
**Key Highlights:**
|
|
102
|
-
-
|
|
103
|
-
-
|
|
104
|
-
-
|
|
105
|
-
-
|
|
106
|
-
-
|
|
102
|
+
- 🍎 **Full macOS Compatibility** - All `declare -A` associative arrays replaced with functions
|
|
103
|
+
- 🔧 **Fixed language-manager.sh** - `declare: -A: invalid option` error resolved
|
|
104
|
+
- 🔧 **Fixed voices-config.sh** - ElevenLabs voice lookups now work on Bash 3.2
|
|
105
|
+
- 📦 **MCP Config Installer** - Installer offers to create `.mcp.json` automatically
|
|
106
|
+
- 🍎 **macOS Default Provider** - Installer now defaults to macOS Say on Mac
|
|
107
107
|
|
|
108
108
|
💡 **Tip:** If `npx agentvibes` shows an older version or missing commands, clear your npm cache: `npm cache clean --force && npx agentvibes@latest --help`
|
|
109
109
|
|