agentvibes 2.4.3-beta.2 → 2.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/README.md +7 -7
  2. package/RELEASE_NOTES.md +94 -119
  3. package/package.json +1 -1
  4. package/.bmad-core/agent-teams/team-all.yaml +0 -15
  5. package/.bmad-core/agent-teams/team-fullstack.yaml +0 -19
  6. package/.bmad-core/agent-teams/team-ide-minimal.yaml +0 -11
  7. package/.bmad-core/agent-teams/team-no-ui.yaml +0 -14
  8. package/.bmad-core/agents/analyst.md +0 -84
  9. package/.bmad-core/agents/architect.md +0 -85
  10. package/.bmad-core/agents/bmad-master.md +0 -110
  11. package/.bmad-core/agents/bmad-orchestrator.md +0 -147
  12. package/.bmad-core/agents/dev.md +0 -81
  13. package/.bmad-core/agents/pm.md +0 -84
  14. package/.bmad-core/agents/po.md +0 -79
  15. package/.bmad-core/agents/qa.md +0 -87
  16. package/.bmad-core/agents/sm.md +0 -65
  17. package/.bmad-core/agents/ux-expert.md +0 -69
  18. package/.bmad-core/checklists/architect-checklist.md +0 -440
  19. package/.bmad-core/checklists/change-checklist.md +0 -184
  20. package/.bmad-core/checklists/pm-checklist.md +0 -372
  21. package/.bmad-core/checklists/po-master-checklist.md +0 -434
  22. package/.bmad-core/checklists/story-dod-checklist.md +0 -96
  23. package/.bmad-core/checklists/story-draft-checklist.md +0 -155
  24. package/.bmad-core/core-config.yaml +0 -22
  25. package/.bmad-core/data/bmad-kb.md +0 -809
  26. package/.bmad-core/data/brainstorming-techniques.md +0 -38
  27. package/.bmad-core/data/elicitation-methods.md +0 -156
  28. package/.bmad-core/data/technical-preferences.md +0 -5
  29. package/.bmad-core/data/test-levels-framework.md +0 -148
  30. package/.bmad-core/data/test-priorities-matrix.md +0 -174
  31. package/.bmad-core/enhanced-ide-development-workflow.md +0 -248
  32. package/.bmad-core/install-manifest.yaml +0 -230
  33. package/.bmad-core/tasks/advanced-elicitation.md +0 -119
  34. package/.bmad-core/tasks/apply-qa-fixes.md +0 -150
  35. package/.bmad-core/tasks/brownfield-create-epic.md +0 -162
  36. package/.bmad-core/tasks/brownfield-create-story.md +0 -149
  37. package/.bmad-core/tasks/correct-course.md +0 -72
  38. package/.bmad-core/tasks/create-brownfield-story.md +0 -314
  39. package/.bmad-core/tasks/create-deep-research-prompt.md +0 -280
  40. package/.bmad-core/tasks/create-doc.md +0 -103
  41. package/.bmad-core/tasks/create-next-story.md +0 -114
  42. package/.bmad-core/tasks/document-project.md +0 -345
  43. package/.bmad-core/tasks/execute-checklist.md +0 -88
  44. package/.bmad-core/tasks/facilitate-brainstorming-session.md +0 -138
  45. package/.bmad-core/tasks/generate-ai-frontend-prompt.md +0 -53
  46. package/.bmad-core/tasks/index-docs.md +0 -175
  47. package/.bmad-core/tasks/kb-mode-interaction.md +0 -77
  48. package/.bmad-core/tasks/nfr-assess.md +0 -345
  49. package/.bmad-core/tasks/qa-gate.md +0 -163
  50. package/.bmad-core/tasks/review-story.md +0 -316
  51. package/.bmad-core/tasks/risk-profile.md +0 -355
  52. package/.bmad-core/tasks/shard-doc.md +0 -187
  53. package/.bmad-core/tasks/test-design.md +0 -176
  54. package/.bmad-core/tasks/trace-requirements.md +0 -266
  55. package/.bmad-core/tasks/validate-next-story.md +0 -136
  56. package/.bmad-core/templates/architecture-tmpl.yaml +0 -651
  57. package/.bmad-core/templates/brainstorming-output-tmpl.yaml +0 -156
  58. package/.bmad-core/templates/brownfield-architecture-tmpl.yaml +0 -477
  59. package/.bmad-core/templates/brownfield-prd-tmpl.yaml +0 -281
  60. package/.bmad-core/templates/competitor-analysis-tmpl.yaml +0 -307
  61. package/.bmad-core/templates/front-end-architecture-tmpl.yaml +0 -219
  62. package/.bmad-core/templates/front-end-spec-tmpl.yaml +0 -350
  63. package/.bmad-core/templates/fullstack-architecture-tmpl.yaml +0 -824
  64. package/.bmad-core/templates/market-research-tmpl.yaml +0 -253
  65. package/.bmad-core/templates/prd-tmpl.yaml +0 -203
  66. package/.bmad-core/templates/project-brief-tmpl.yaml +0 -222
  67. package/.bmad-core/templates/qa-gate-tmpl.yaml +0 -103
  68. package/.bmad-core/templates/story-tmpl.yaml +0 -138
  69. package/.bmad-core/user-guide.md +0 -577
  70. package/.bmad-core/utils/bmad-doc-template.md +0 -327
  71. package/.bmad-core/utils/workflow-management.md +0 -71
  72. package/.bmad-core/workflows/brownfield-fullstack.yaml +0 -298
  73. package/.bmad-core/workflows/brownfield-service.yaml +0 -188
  74. package/.bmad-core/workflows/brownfield-ui.yaml +0 -198
  75. package/.bmad-core/workflows/greenfield-fullstack.yaml +0 -241
  76. package/.bmad-core/workflows/greenfield-service.yaml +0 -207
  77. package/.bmad-core/workflows/greenfield-ui.yaml +0 -236
  78. package/.bmad-core/working-in-the-brownfield.md +0 -606
  79. package/.claude/commands/BMad/analyst.md +0 -88
  80. package/.claude/commands/BMad/architect.md +0 -89
  81. package/.claude/commands/BMad/bmad-master.md +0 -114
  82. package/.claude/commands/BMad/bmad-orchestrator.md +0 -151
  83. package/.claude/commands/BMad/dev.md +0 -85
  84. package/.claude/commands/BMad/pm.md +0 -88
  85. package/.claude/commands/BMad/po.md +0 -83
  86. package/.claude/commands/BMad/qa.md +0 -91
  87. package/.claude/commands/BMad/sm.md +0 -69
  88. package/.claude/commands/BMad/tasks/advanced-elicitation.md +0 -123
  89. package/.claude/commands/BMad/tasks/apply-qa-fixes.md +0 -154
  90. package/.claude/commands/BMad/tasks/brownfield-create-epic.md +0 -166
  91. package/.claude/commands/BMad/tasks/brownfield-create-story.md +0 -153
  92. package/.claude/commands/BMad/tasks/correct-course.md +0 -76
  93. package/.claude/commands/BMad/tasks/create-brownfield-story.md +0 -318
  94. package/.claude/commands/BMad/tasks/create-deep-research-prompt.md +0 -284
  95. package/.claude/commands/BMad/tasks/create-doc.md +0 -107
  96. package/.claude/commands/BMad/tasks/create-next-story.md +0 -118
  97. package/.claude/commands/BMad/tasks/document-project.md +0 -349
  98. package/.claude/commands/BMad/tasks/execute-checklist.md +0 -92
  99. package/.claude/commands/BMad/tasks/facilitate-brainstorming-session.md +0 -142
  100. package/.claude/commands/BMad/tasks/generate-ai-frontend-prompt.md +0 -57
  101. package/.claude/commands/BMad/tasks/index-docs.md +0 -179
  102. package/.claude/commands/BMad/tasks/kb-mode-interaction.md +0 -81
  103. package/.claude/commands/BMad/tasks/nfr-assess.md +0 -349
  104. package/.claude/commands/BMad/tasks/qa-gate.md +0 -167
  105. package/.claude/commands/BMad/tasks/review-story.md +0 -320
  106. package/.claude/commands/BMad/tasks/risk-profile.md +0 -359
  107. package/.claude/commands/BMad/tasks/shard-doc.md +0 -191
  108. package/.claude/commands/BMad/tasks/test-design.md +0 -180
  109. package/.claude/commands/BMad/tasks/trace-requirements.md +0 -270
  110. package/.claude/commands/BMad/tasks/validate-next-story.md +0 -140
  111. package/.claude/commands/BMad/ux-expert.md +0 -73
  112. package/.claude/github-star-reminder.txt +0 -1
  113. package/.claude/piper-voices-dir.txt +0 -1
  114. package/.claude/plugins/bmad-voices-enabled.flag +0 -0
  115. package/.mcp.json +0 -88
  116. package/RELEASE_NOTES_v2.4.0_DRAFT.md +0 -116
  117. package/RELEASE_NOTES_v2.4.1_DRAFT.md +0 -61
  118. package/docs/2025-11-15_15-14-33.snagx +0 -0
  119. package/docs/Screenshot 2025-11-15 151325.png +0 -0
  120. package/docs/Screenshot 2025-11-15 151432.png +0 -0
  121. package/docs/macos-piper-issue.md +0 -172
  122. package/docs/stargazer-cms-prd.md +0 -1918
  123. package/docs/whatsapp-plugin-github-issue.md +0 -393
  124. package/docs/whatsapp-tts-plugin-feasibility.md +0 -418
  125. package/docs/whatsapp-tts-standalone-plugin.md +0 -628
  126. package/github-profile-draft.md +0 -57
  127. package/linkedin/vibe-coding-and-pulseaudio.md +0 -121
  128. package/mcp-server/agentvibes.db +0 -0
  129. package/scripts/audio-tunnel.config +0 -17
@@ -1,628 +0,0 @@
1
- # WhatsApp TTS Plugin - Standalone Architecture
2
-
3
- ## Executive Summary
4
-
5
- **Status**: ✅ **HIGHLY FEASIBLE - STANDALONE DESIGN**
6
-
7
- The WhatsApp TTS plugin should be a **completely independent repository** that depends on AgentVibes as an external library, similar to how other MCP plugins work.
8
-
9
- ## Why Standalone?
10
-
11
- ### Benefits of Independent Repository
12
-
13
- ✅ **Separation of Concerns**: Plugin development doesn't affect AgentVibes core
14
- ✅ **Independent Versioning**: Plugin can release updates without AgentVibes releases
15
- ✅ **Easier Maintenance**: Different maintainers can own different repos
16
- ✅ **Cleaner Dependencies**: Users only install what they need
17
- ✅ **Community Contributions**: Easier for external contributors
18
- ✅ **Multiple Plugins**: Opens path for Signal-TTS, Telegram-TTS, Slack-TTS, etc.
19
-
20
- ### Dependency Model
21
-
22
- ```
23
- ┌─────────────────────────────────────┐
24
- │ whatsapp-agentvibes-plugin │ ← New Standalone Repo
25
- │ (Independent MCP Server) │
26
- └──────────────┬──────────────────────┘
27
- │ depends on (via subprocess/API calls)
28
-
29
- ┌────────┴─────────┬────────────────┐
30
- ▼ ▼ ▼
31
- ┌────────────┐ ┌──────────────┐ ┌─────────────┐
32
- │ WhatsApp │ │ AgentVibes │ │ FastMCP │
33
- │ MCP Server │ │ (installed) │ │ (Python) │
34
- └────────────┘ └──────────────┘ └─────────────┘
35
- ```
36
-
37
- ## Standalone Repository Structure
38
-
39
- ### Repository Name
40
- `whatsapp-agentvibes` or `agentvibes-whatsapp-plugin`
41
-
42
- ### Directory Structure
43
-
44
- ```
45
- whatsapp-agentvibes/
46
- ├── README.md # Installation & usage guide
47
- ├── LICENSE # Apache 2.0
48
- ├── requirements.txt # Python dependencies
49
- ├── pyproject.toml # Package metadata
50
- ├── setup.py # Installation script
51
-
52
- ├── src/
53
- │ └── whatsapp_agentvibes/
54
- │ ├── __init__.py
55
- │ ├── server.py # Main MCP server
56
- │ ├── monitor.py # WhatsApp message monitoring
57
- │ ├── voice_manager.py # Voice assignment logic
58
- │ ├── config.py # Configuration management
59
- │ └── agentvibes_client.py # AgentVibes integration layer
60
-
61
- ├── config/
62
- │ ├── notifications.json.example # Example configuration
63
- │ └── claude_desktop_config.json # MCP setup example
64
-
65
- ├── tests/
66
- │ ├── test_voice_assignment.py
67
- │ ├── test_monitor.py
68
- │ └── test_config.py
69
-
70
- └── docs/
71
- ├── installation.md
72
- ├── configuration.md
73
- ├── troubleshooting.md
74
- └── development.md
75
- ```
76
-
77
- ## How It Integrates with AgentVibes
78
-
79
- ### Option 1: Subprocess Calls (RECOMMENDED)
80
-
81
- **The plugin calls AgentVibes' play-tts.sh script directly:**
82
-
83
- ```python
84
- # whatsapp_agentvibes/agentvibes_client.py
85
-
86
- import subprocess
87
- import os
88
- from pathlib import Path
89
-
90
- class AgentVibesClient:
91
- """Client for calling AgentVibes TTS functionality"""
92
-
93
- def __init__(self):
94
- # Detect AgentVibes installation
95
- self.agentvibes_path = self._find_agentvibes()
96
- if not self.agentvibes_path:
97
- raise RuntimeError("AgentVibes not found. Please install AgentVibes first.")
98
-
99
- self.play_tts_script = self.agentvibes_path / ".claude" / "hooks" / "play-tts.sh"
100
-
101
- def _find_agentvibes(self) -> Path:
102
- """Find AgentVibes installation"""
103
- # Check common installation locations
104
- locations = [
105
- Path.home() / ".claude", # Global installation
106
- Path.home() / "AgentVibes" / ".claude", # Local clone
107
- Path("/usr/local/lib/agentvibes/.claude"), # System install
108
- ]
109
-
110
- for location in locations:
111
- if (location / "hooks" / "play-tts.sh").exists():
112
- return location.parent
113
-
114
- # Check if in PATH (npx installation)
115
- try:
116
- result = subprocess.run(
117
- ["which", "agentvibes"],
118
- capture_output=True,
119
- text=True
120
- )
121
- if result.returncode == 0:
122
- # Found in PATH, use global .claude
123
- return Path.home()
124
- except:
125
- pass
126
-
127
- return None
128
-
129
- async def speak(self, text: str, voice: str = None, personality: str = None):
130
- """Use AgentVibes to speak text"""
131
- args = ["bash", str(self.play_tts_script), text]
132
- if voice:
133
- args.append(voice)
134
-
135
- # Set environment for voice/personality
136
- env = os.environ.copy()
137
- if personality:
138
- # Temporarily set personality via environment
139
- env["TTS_PERSONALITY"] = personality
140
-
141
- process = await asyncio.create_subprocess_exec(
142
- *args,
143
- stdout=asyncio.subprocess.PIPE,
144
- stderr=asyncio.subprocess.PIPE,
145
- env=env
146
- )
147
-
148
- stdout, stderr = await process.communicate()
149
-
150
- if process.returncode != 0:
151
- raise RuntimeError(f"TTS failed: {stderr.decode()}")
152
-
153
- return stdout.decode()
154
-
155
- def list_voices(self) -> list:
156
- """Get available voices from AgentVibes"""
157
- voice_manager = self.agentvibes_path / ".claude" / "hooks" / "voice-manager.sh"
158
- result = subprocess.run(
159
- ["bash", str(voice_manager), "list-simple"],
160
- capture_output=True,
161
- text=True
162
- )
163
-
164
- if result.returncode == 0:
165
- return [v.strip() for v in result.stdout.strip().split("\n") if v]
166
- return []
167
- ```
168
-
169
- **Pros**:
170
- - ✅ Simple, no modifications to AgentVibes needed
171
- - ✅ Uses AgentVibes exactly as installed
172
- - ✅ Works with any AgentVibes version
173
- - ✅ No API versioning issues
174
-
175
- **Cons**:
176
- - ⚠️ Requires AgentVibes to be installed and in PATH
177
- - ⚠️ Subprocess overhead (minimal)
178
-
179
- ### Option 2: Python API (Future Enhancement)
180
-
181
- If AgentVibes later exposes a Python API:
182
-
183
- ```python
184
- from agentvibes import TTS
185
-
186
- tts = TTS()
187
- tts.speak("Hello world", voice="Aria")
188
- ```
189
-
190
- This would require AgentVibes to publish as a pip package.
191
-
192
- ## Installation Process
193
-
194
- ### Prerequisites Check
195
-
196
- ```bash
197
- # Installation script checks dependencies
198
- #!/bin/bash
199
-
200
- echo "Checking prerequisites..."
201
-
202
- # 1. Check WhatsApp MCP Server
203
- if [ ! -d "$HOME/whatsapp-mcp" ]; then
204
- echo "❌ WhatsApp MCP Server not found"
205
- echo " Install from: https://github.com/lharries/whatsapp-mcp"
206
- exit 1
207
- fi
208
-
209
- # 2. Check AgentVibes
210
- if ! command -v agentvibes &> /dev/null; then
211
- if [ ! -f "$HOME/.claude/hooks/play-tts.sh" ]; then
212
- echo "❌ AgentVibes not found"
213
- echo " Install with: npx agentvibes install --yes"
214
- exit 1
215
- fi
216
- fi
217
-
218
- # 3. Check Python 3.8+
219
- if ! command -v python3 &> /dev/null; then
220
- echo "❌ Python 3.8+ required"
221
- exit 1
222
- fi
223
-
224
- echo "✅ All prerequisites met!"
225
- ```
226
-
227
- ### User Installation Steps
228
-
229
- **Step 1: Install Prerequisites**
230
- ```bash
231
- # Install WhatsApp MCP Server
232
- git clone https://github.com/lharries/whatsapp-mcp.git
233
- cd whatsapp-mcp/whatsapp-bridge && go run main.go
234
-
235
- # Install AgentVibes
236
- npx agentvibes install --yes
237
- ```
238
-
239
- **Step 2: Install Plugin**
240
- ```bash
241
- # Option A: Via pip (if published)
242
- pip install whatsapp-agentvibes
243
-
244
- # Option B: From source
245
- git clone https://github.com/yourusername/whatsapp-agentvibes.git
246
- cd whatsapp-agentvibes
247
- pip install -e .
248
- ```
249
-
250
- **Step 3: Configure Claude Desktop**
251
- ```json
252
- {
253
- "mcpServers": {
254
- "whatsapp": {
255
- "command": "uv",
256
- "args": [
257
- "--directory",
258
- "/path/to/whatsapp-mcp/whatsapp-mcp-server",
259
- "run",
260
- "main.py"
261
- ]
262
- },
263
- "whatsapp-agentvibes": {
264
- "command": "python",
265
- "args": ["-m", "whatsapp_agentvibes.server"]
266
- }
267
- }
268
- }
269
- ```
270
-
271
- ## Configuration File
272
-
273
- **Location**: `~/.config/whatsapp-agentvibes/config.json`
274
-
275
- ```json
276
- {
277
- "version": "1.0",
278
- "whatsapp": {
279
- "database_path": "~/whatsapp-mcp/whatsapp-bridge/store/messages.db",
280
- "poll_interval_seconds": 2
281
- },
282
- "agentvibes": {
283
- "installation_path": "~/.claude",
284
- "default_voice": "Aria",
285
- "use_personality": true
286
- },
287
- "notifications": {
288
- "enabled_contacts": [],
289
- "contact_voices": {},
290
- "announce_sender_name": true,
291
- "announce_media": true
292
- },
293
- "voice_assignment": {
294
- "strategy": "hash",
295
- "available_voices": []
296
- }
297
- }
298
- ```
299
-
300
- ## MCP Server Implementation
301
-
302
- ### Main Server (Standalone)
303
-
304
- ```python
305
- # src/whatsapp_agentvibes/server.py
306
-
307
- from mcp.server import Server
308
- from mcp.types import Tool, TextContent
309
- import mcp.server.stdio
310
-
311
- from .monitor import WhatsAppMonitor
312
- from .voice_manager import VoiceManager
313
- from .config import Config
314
- from .agentvibes_client import AgentVibesClient
315
-
316
- class WhatsAppAgentVibesServer:
317
- def __init__(self):
318
- self.config = Config.load()
319
- self.agentvibes = AgentVibesClient()
320
- self.voice_manager = VoiceManager(self.agentvibes, self.config)
321
- self.monitor = WhatsAppMonitor(
322
- self.config,
323
- self.voice_manager,
324
- self.agentvibes
325
- )
326
-
327
- async def start_monitoring(self):
328
- """Start monitoring WhatsApp messages"""
329
- await self.monitor.start()
330
-
331
- # Create MCP server
332
- app = Server("whatsapp-agentvibes")
333
- wa_server = WhatsAppAgentVibesServer()
334
-
335
- @app.list_tools()
336
- async def list_tools() -> list[Tool]:
337
- return [
338
- Tool(
339
- name="whatsapp_enable_notifications",
340
- description="Enable TTS notifications for a WhatsApp contact or group",
341
- inputSchema={
342
- "type": "object",
343
- "properties": {
344
- "contact": {
345
- "type": "string",
346
- "description": "Contact name, phone number, or JID"
347
- }
348
- },
349
- "required": ["contact"]
350
- }
351
- ),
352
- # ... other tools
353
- ]
354
-
355
- @app.call_tool()
356
- async def call_tool(name: str, arguments: dict) -> list[TextContent]:
357
- if name == "whatsapp_enable_notifications":
358
- result = await wa_server.enable_notifications(arguments["contact"])
359
- return [TextContent(type="text", text=result)]
360
- # ... handle other tools
361
-
362
- async def main():
363
- # Start background message monitoring
364
- asyncio.create_task(wa_server.start_monitoring())
365
-
366
- # Start MCP server
367
- async with mcp.server.stdio.stdio_server() as (read_stream, write_stream):
368
- await app.run(read_stream, write_stream, app.create_initialization_options())
369
-
370
- if __name__ == "__main__":
371
- asyncio.run(main())
372
- ```
373
-
374
- ## Package Metadata
375
-
376
- ### pyproject.toml
377
-
378
- ```toml
379
- [project]
380
- name = "whatsapp-agentvibes"
381
- version = "1.0.0"
382
- description = "WhatsApp TTS notifications plugin for AgentVibes"
383
- authors = [
384
- {name = "Your Name", email = "your.email@example.com"}
385
- ]
386
- license = {text = "Apache-2.0"}
387
- readme = "README.md"
388
- requires-python = ">=3.8"
389
-
390
- dependencies = [
391
- "mcp>=0.9.0",
392
- "aiosqlite>=0.19.0",
393
- ]
394
-
395
- [project.urls]
396
- Homepage = "https://github.com/yourusername/whatsapp-agentvibes"
397
- Documentation = "https://github.com/yourusername/whatsapp-agentvibes/blob/main/docs"
398
- Repository = "https://github.com/yourusername/whatsapp-agentvibes"
399
- Issues = "https://github.com/yourusername/whatsapp-agentvibes/issues"
400
-
401
- [project.optional-dependencies]
402
- dev = [
403
- "pytest>=7.0.0",
404
- "pytest-asyncio>=0.21.0",
405
- "black>=23.0.0",
406
- "ruff>=0.1.0",
407
- ]
408
-
409
- [build-system]
410
- requires = ["hatchling"]
411
- build-backend = "hatchling.build"
412
-
413
- [project.scripts]
414
- whatsapp-agentvibes = "whatsapp_agentvibes.server:main"
415
- ```
416
-
417
- ### requirements.txt
418
-
419
- ```txt
420
- mcp>=0.9.0
421
- aiosqlite>=0.19.0
422
- ```
423
-
424
- **Note**: AgentVibes is NOT listed as a dependency because it's called via subprocess, not imported.
425
-
426
- ## README Structure
427
-
428
- ```markdown
429
- # WhatsApp AgentVibes Plugin
430
-
431
- Voice notifications for WhatsApp messages using AgentVibes TTS.
432
-
433
- ## Features
434
- - 🔔 TTS notifications for selected contacts/groups
435
- - 🎭 Round-robin voice assignment (different voice per contact)
436
- - 🗣️ Group chat speaker differentiation
437
- - 🎤 27+ voices via AgentVibes
438
- - 🌍 Multi-language support
439
-
440
- ## Prerequisites
441
- 1. **WhatsApp MCP Server**: https://github.com/lharries/whatsapp-mcp
442
- 2. **AgentVibes**: `npx agentvibes install --yes`
443
- 3. **Python 3.8+**
444
-
445
- ## Installation
446
-
447
- ### Quick Start
448
- ```bash
449
- pip install whatsapp-agentvibes
450
- ```
451
-
452
- ### Configure Claude Desktop
453
- Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
454
- ```json
455
- {
456
- "mcpServers": {
457
- "whatsapp-agentvibes": {
458
- "command": "python",
459
- "args": ["-m", "whatsapp_agentvibes.server"]
460
- }
461
- }
462
- }
463
- ```
464
-
465
- ## Usage
466
-
467
- ### Enable notifications for a contact
468
- ```
469
- You: "Enable WhatsApp notifications for Mom"
470
- Claude: ✅ Enabled notifications for Jane Smith with voice "Aria"
471
- ```
472
-
473
- ### View active notifications
474
- ```
475
- You: "Show WhatsApp notification channels"
476
- Claude: 🔔 Active: Mom (Aria), Dad (Terry), Work Group (multiple)
477
- ```
478
-
479
- ## Configuration
480
-
481
- Edit `~/.config/whatsapp-agentvibes/config.json`
482
-
483
- ## Documentation
484
- - [Installation Guide](docs/installation.md)
485
- - [Configuration Reference](docs/configuration.md)
486
- - [Troubleshooting](docs/troubleshooting.md)
487
-
488
- ## License
489
- Apache 2.0
490
- ```
491
-
492
- ## Advantages of Standalone Architecture
493
-
494
- ### 1. **Clean Separation**
495
- - AgentVibes = TTS engine
496
- - WhatsApp MCP = Message source
497
- - This plugin = Integration layer
498
-
499
- ### 2. **Independent Development**
500
- ```
501
- AgentVibes v2.3.0 → v2.4.0 (new voices added)
502
- ↓ (plugin automatically gets new voices)
503
- Plugin v1.0.0 (no changes needed)
504
- ```
505
-
506
- ### 3. **Multiple Plugins Possible**
507
- ```
508
- agentvibes-whatsapp-plugin
509
- agentvibes-signal-plugin
510
- agentvibes-telegram-plugin
511
- agentvibes-slack-plugin
512
- agentvibes-discord-plugin
513
- ```
514
-
515
- All use the same AgentVibes installation!
516
-
517
- ### 4. **Easier Testing**
518
- ```bash
519
- # Test plugin without affecting AgentVibes
520
- cd whatsapp-agentvibes
521
- pytest tests/
522
-
523
- # Test AgentVibes without affecting plugins
524
- cd AgentVibes
525
- npm test
526
- ```
527
-
528
- ### 5. **User Choice**
529
- Users can:
530
- - Use AgentVibes alone (just TTS)
531
- - Use WhatsApp MCP alone (no voice)
532
- - Install plugin to combine both
533
- - Install multiple messaging plugins
534
-
535
- ## Integration Testing
536
-
537
- ### Test Script
538
-
539
- ```python
540
- # tests/test_integration.py
541
-
542
- import pytest
543
- from whatsapp_agentvibes.agentvibes_client import AgentVibesClient
544
-
545
- def test_agentvibes_found():
546
- """Test that AgentVibes is installed and accessible"""
547
- client = AgentVibesClient()
548
- assert client.agentvibes_path is not None
549
- assert client.play_tts_script.exists()
550
-
551
- def test_list_voices():
552
- """Test retrieving voices from AgentVibes"""
553
- client = AgentVibesClient()
554
- voices = client.list_voices()
555
- assert len(voices) > 0
556
- assert "Aria" in voices or "en_US-lessac-medium" in voices
557
-
558
- @pytest.mark.asyncio
559
- async def test_speak():
560
- """Test TTS functionality"""
561
- client = AgentVibesClient()
562
- result = await client.speak("Test message", voice="Aria")
563
- assert "Saved to:" in result or "Spoke:" in result
564
- ```
565
-
566
- ## Distribution Strategy
567
-
568
- ### Phase 1: GitHub Only
569
- ```bash
570
- pip install git+https://github.com/yourusername/whatsapp-agentvibes.git
571
- ```
572
-
573
- ### Phase 2: PyPI Publication
574
- ```bash
575
- pip install whatsapp-agentvibes
576
- ```
577
-
578
- ### Phase 3: NPX Wrapper (Optional)
579
- ```bash
580
- npx whatsapp-agentvibes install
581
- ```
582
-
583
- ## Documentation as Separate Repo
584
-
585
- The plugin repository should have comprehensive docs:
586
-
587
- ```
588
- docs/
589
- ├── installation.md # Step-by-step setup
590
- ├── configuration.md # All config options
591
- ├── usage.md # Example commands
592
- ├── troubleshooting.md # Common issues
593
- ├── development.md # Contributing guide
594
- └── architecture.md # How it works
595
- ```
596
-
597
- ## Conclusion
598
-
599
- **Recommendation**: Build as **completely standalone plugin**
600
-
601
- ### Key Benefits:
602
- ✅ Independent development cycles
603
- ✅ Easier maintenance and contributions
604
- ✅ No coupling to AgentVibes codebase
605
- ✅ Opens path for more messaging plugins
606
- ✅ Users install only what they need
607
- ✅ Cleaner architecture overall
608
-
609
- ### Implementation:
610
- - New repo: `whatsapp-agentvibes` or `agentvibes-whatsapp-plugin`
611
- - Dependency: Calls AgentVibes via subprocess (no code imports)
612
- - Distribution: pip package on PyPI
613
- - Configuration: Separate config file
614
- - Testing: Independent test suite
615
-
616
- This is the **right architectural approach** for a plugin ecosystem! 🎉
617
-
618
- ---
619
-
620
- **Next Steps**:
621
- 1. Create new standalone repository
622
- 2. Implement AgentVibesClient wrapper
623
- 3. Build MCP server with monitoring
624
- 4. Write comprehensive documentation
625
- 5. Publish to PyPI
626
-
627
- **Document Version**: 2.0 (Standalone Architecture)
628
- **Date**: 2025-11-12
@@ -1,57 +0,0 @@
1
- # GitHub Profile Draft - Paul Preibisch
2
-
3
- ## Overview
4
- Hi! I'm Paul Preibisch, a Software Developer with over 12 years of experience, primarily in educational software. I'm currently deep diving into agentic programming and modern AI-driven development workflows.
5
-
6
- ## Current Focus
7
-
8
- ### 🎭 AgentVibes - Voice-Enabled AI Development
9
- Creator and maintainer of [AgentVibes](https://github.com/paulpreibisch/AgentVibes) (13 ⭐), an innovative tool that brings Claude Code sessions to life with voice. This project represents my deep dive into agentic programming, where I've invested over 850 hours exploring autonomous systems and AI-driven development workflows.
10
-
11
- **Key Features:**
12
- - Multi-provider TTS integration (ElevenLabs, Piper, OpenAI)
13
- - Dynamic personality system for voice responses
14
- - Language learning mode with dual-language support
15
- - Claude Code hook integration for seamless AI interaction
16
-
17
- ## Recent Work
18
-
19
- ### Educational Content Creation Platform
20
- Developed a highly scalable content creation tool that enables clients to upload thousands of sentences and automatically generate corresponding images for each sentence. Built with Express.js, React, and Node.js, featuring:
21
- - Efficient batch processing and queue management
22
- - Handling thousands of simultaneous content generation requests
23
- - Large-scale content processing workflows
24
-
25
- ### Open Source Contributions
26
- - Consistent contributor to the MCP Shrimp Task Manager repository
27
- - Focus on task automation and workflow optimization
28
- - Active engagement in agent-based programming paradigms
29
-
30
- ## Professional Experience
31
-
32
- ### Lead Developer - CurrentSCM @ Vista Projects Limited
33
- - Built and maintained robust API with 850+ unique endpoints on multi-tenant enterprise application
34
- - Full-spectrum Laravel Framework development: notifications, queues, jobs, middleware, validations, workflows, pipelines, caching
35
- - Created comprehensive Test Platform for 15 Excel Import Templates using DTOs
36
- - Developed scalable PDF authoring microservice using TDD and SOLID principles
37
- - Consolidated documentation across 9 different exports, saving significant development time
38
- - Enhanced invoicing for milestone payments, solving complex floating point challenges
39
- - Completed 1800+ developer hours of support, resolving GitHub issues and features
40
- - Completed 33 LaraCast lessons for continuous skill development
41
-
42
- ### Lead Developer - Movie English Project (now Globify.com)
43
- 10 years leading platform development in educational software space
44
-
45
- ## Tech Stack
46
- - **Primary:** Laravel, PHP
47
- - **Frontend:** React, modern JavaScript frameworks
48
- - **Backend:** Node.js, Express.js
49
- - **Current Focus:** Agentic Programming, AI Development, Claude Code
50
- - **DevOps:** Queue systems, batch processing, microservices
51
-
52
- ## Get in Touch
53
- 🌐 Website: [preibisch.biz](https://preibisch.biz)
54
- 📍 Location: La Paz, BCS
55
-
56
- ---
57
- *"Digging Deep into Agentic Programming"*