whazaa 0.6.12 → 0.6.14
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/README.md +196 -4
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +188 -3
- package/dist/index.js.map +1 -1
- package/dist/ipc-client.d.ts +39 -1
- package/dist/ipc-client.d.ts.map +1 -1
- package/dist/ipc-client.js +48 -2
- package/dist/ipc-client.js.map +1 -1
- package/dist/tts.d.ts +42 -0
- package/dist/tts.d.ts.map +1 -0
- package/dist/tts.js +205 -0
- package/dist/tts.js.map +1 -0
- package/dist/watch.d.ts +1 -0
- package/dist/watch.d.ts.map +1 -1
- package/dist/watch.js +348 -19
- package/dist/watch.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -26,6 +26,7 @@ Your phone
|
|
|
26
26
|
└──> MCP Server (started by Claude Code)
|
|
27
27
|
|
|
|
28
28
|
└──> whatsapp_send / receive / status / wait / login
|
|
29
|
+
whatsapp_tts / whatsapp_speak / whatsapp_voice_config
|
|
29
30
|
```
|
|
30
31
|
|
|
31
32
|
The separation means you can have multiple Claude Code sessions open simultaneously. Each MCP server instance registers its `TERM_SESSION_ID` with the watcher, and whichever session most recently sent a message becomes the active recipient for incoming messages.
|
|
@@ -50,19 +51,138 @@ Restart Claude Code. Whazaa connects automatically from now on.
|
|
|
50
51
|
|
|
51
52
|
---
|
|
52
53
|
|
|
54
|
+
## Prerequisites
|
|
55
|
+
|
|
56
|
+
- Node.js >= 18
|
|
57
|
+
- macOS with [iTerm2](https://iterm2.com/) for the `watch` command and iTerm2 delivery
|
|
58
|
+
- [ffmpeg](https://ffmpeg.org/) for TTS voice note conversion (WAV to OGG Opus)
|
|
59
|
+
|
|
60
|
+
Install ffmpeg via Homebrew:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
brew install ffmpeg
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
The Kokoro TTS model (~160 MB) is downloaded automatically on first use of `whatsapp_tts` or `whatsapp_speak` and cached locally. Subsequent calls are fast.
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## How to Use
|
|
71
|
+
|
|
72
|
+
Once Whazaa is set up, you talk to PAI (your AI assistant) in plain language. You never need to know about tool names or parameters — just say what you want.
|
|
73
|
+
|
|
74
|
+
### Sending Messages
|
|
75
|
+
|
|
76
|
+
Tell PAI what to say and to whom:
|
|
77
|
+
|
|
78
|
+
- "Send Randolf a message saying I'll be late"
|
|
79
|
+
- "Tell Nicole the meeting is moved to 3pm"
|
|
80
|
+
- "Message my self-chat: pick up milk"
|
|
81
|
+
|
|
82
|
+
If you don't say who to send it to, PAI sends to your own WhatsApp — useful for notes to yourself.
|
|
83
|
+
|
|
84
|
+
### Voice Notes
|
|
85
|
+
|
|
86
|
+
PAI can send a WhatsApp voice note instead of a text message:
|
|
87
|
+
|
|
88
|
+
- "Send me a voice note saying good morning"
|
|
89
|
+
- "Send a voice note to Nicole saying I'm on my way"
|
|
90
|
+
- "Tell George via voice note that dinner is at 7"
|
|
91
|
+
|
|
92
|
+
You can choose whose voice to use:
|
|
93
|
+
|
|
94
|
+
- "Say it as George" or "Use George's voice"
|
|
95
|
+
- "Send that as a voice note in Daniel's voice"
|
|
96
|
+
- "Use Nicole's voice for this"
|
|
97
|
+
|
|
98
|
+
See the full voice list at the bottom of this section.
|
|
99
|
+
|
|
100
|
+
### Listening Locally (Mac Speakers)
|
|
101
|
+
|
|
102
|
+
PAI can speak out loud through your Mac — no WhatsApp needed:
|
|
103
|
+
|
|
104
|
+
- "Say that out loud"
|
|
105
|
+
- "Read that to me"
|
|
106
|
+
- "Talk to me" or "Say it through the speakers"
|
|
107
|
+
|
|
108
|
+
Great for when you want an audio response right now, without sending anything to your phone.
|
|
109
|
+
|
|
110
|
+
### Voice Mode — Hands-Free
|
|
111
|
+
|
|
112
|
+
Instead of switching to voice one message at a time, you can put PAI into a persistent voice mode so every response comes back as audio automatically.
|
|
113
|
+
|
|
114
|
+
**Voice notes to your phone:**
|
|
115
|
+
|
|
116
|
+
- "Voice mode on" or "Respond via voice" — every PAI response becomes a WhatsApp voice note
|
|
117
|
+
- "Back to text" or "Text mode" — back to normal text messages
|
|
118
|
+
|
|
119
|
+
**Audio through your Mac speakers:**
|
|
120
|
+
|
|
121
|
+
- "Talk to me locally" or "Local voice mode" — every response plays through your speakers
|
|
122
|
+
- "Back to text" — turns it off
|
|
123
|
+
|
|
124
|
+
Voice mode is perfect for driving, cooking, or any time you can't look at a screen.
|
|
125
|
+
|
|
126
|
+
### Switching Voices
|
|
127
|
+
|
|
128
|
+
PAI's default voice is Fable (British male). You can switch voices by name:
|
|
129
|
+
|
|
130
|
+
- "Hi Nicole" — switches to Nicole's voice
|
|
131
|
+
- "Hi George" — switches to George's voice
|
|
132
|
+
- "Hi Daniel" — switches to Daniel's voice
|
|
133
|
+
- "Back to PAI" or "Default voice" — back to Fable
|
|
134
|
+
|
|
135
|
+
Voice switches are remembered for the session. You can also set a different default in the config.
|
|
136
|
+
|
|
137
|
+
### Chat History
|
|
138
|
+
|
|
139
|
+
PAI can look up your WhatsApp conversations directly — it reads from WhatsApp Desktop's local database, so it's fast and doesn't require your phone to be online:
|
|
140
|
+
|
|
141
|
+
- "Show me my chats" — lists your recent conversations
|
|
142
|
+
- "Show messages from Randolf" — shows recent messages from that contact
|
|
143
|
+
- "What did Nicole say last?" — PAI finds the conversation and reads it
|
|
144
|
+
|
|
145
|
+
### Session Management (from Your Phone)
|
|
146
|
+
|
|
147
|
+
You can control your PAI sessions from WhatsApp itself. Send these commands to your self-chat:
|
|
148
|
+
|
|
149
|
+
- `/s` — see a list of your active PAI sessions (each Claude window is a session)
|
|
150
|
+
- `/2` — switch to session 2
|
|
151
|
+
- `/2 Cooking Project` — switch to session 2 and name it
|
|
152
|
+
|
|
153
|
+
This is useful when you have multiple Claude windows open for different projects.
|
|
154
|
+
|
|
155
|
+
### Available Voices
|
|
156
|
+
|
|
157
|
+
28 voices across four categories:
|
|
158
|
+
|
|
159
|
+
| Category | Voices |
|
|
160
|
+
|----------|--------|
|
|
161
|
+
| American Female | af_heart, af_alloy, af_aoede, af_bella, af_jessica, af_kore, af_nicole, af_nova, af_river, af_sarah, af_sky |
|
|
162
|
+
| American Male | am_adam, am_echo, am_eric, am_fenrir, am_liam, am_michael, am_onyx, am_puck, am_santa |
|
|
163
|
+
| British Female | bf_alice, bf_emma, bf_isabella, bf_lily |
|
|
164
|
+
| British Male | bm_daniel, **bm_fable** (PAI default), bm_george, bm_lewis |
|
|
165
|
+
|
|
166
|
+
All TTS synthesis runs locally on your Mac — no audio is ever sent to any external service.
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
53
170
|
## MCP tools
|
|
54
171
|
|
|
55
|
-
Once configured, Claude Code has
|
|
172
|
+
Once configured, Claude Code has ten tools available:
|
|
56
173
|
|
|
57
174
|
| Tool | Description |
|
|
58
175
|
|------|-------------|
|
|
59
176
|
| `whatsapp_status` | Check connection state and phone number |
|
|
60
|
-
| `whatsapp_send` | Send a message to your WhatsApp self-chat |
|
|
177
|
+
| `whatsapp_send` | Send a message to your WhatsApp self-chat (or any contact) |
|
|
61
178
|
| `whatsapp_receive` | Drain all queued incoming messages |
|
|
62
179
|
| `whatsapp_wait` | Block until a message arrives (up to timeout) |
|
|
63
180
|
| `whatsapp_login` | Trigger a new QR pairing flow |
|
|
64
181
|
| `whatsapp_chats` | List WhatsApp conversations (from Desktop DB or Baileys) |
|
|
65
182
|
| `whatsapp_history` | Fetch message history for a conversation |
|
|
183
|
+
| `whatsapp_tts` | Convert text to speech and send as a WhatsApp voice note |
|
|
184
|
+
| `whatsapp_speak` | Speak text aloud through Mac speakers (no WhatsApp needed) |
|
|
185
|
+
| `whatsapp_voice_config` | Get or set voice mode configuration |
|
|
66
186
|
|
|
67
187
|
### whatsapp_send
|
|
68
188
|
|
|
@@ -72,6 +192,15 @@ Sends a message to your self-chat. Supports Markdown formatting converted to Wha
|
|
|
72
192
|
- `*italic*` becomes `_italic_`
|
|
73
193
|
- `` `code` `` becomes ` ```code``` `
|
|
74
194
|
|
|
195
|
+
Optionally send as a TTS voice note by setting the `voice` parameter:
|
|
196
|
+
|
|
197
|
+
```
|
|
198
|
+
voice='true' Use default voice (bm_fable)
|
|
199
|
+
voice='bm_george' Use a specific voice
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
Supports an optional `recipient` parameter: a phone number (e.g. `+41764502698`), WhatsApp JID, or contact name.
|
|
203
|
+
|
|
75
204
|
### whatsapp_wait
|
|
76
205
|
|
|
77
206
|
Efficient alternative to polling. Blocks the tool call until a message arrives or the timeout expires (default 120 seconds, max 300). Use this in the background while working:
|
|
@@ -98,6 +227,52 @@ Parameters:
|
|
|
98
227
|
- `jid` (required) — the conversation JID (e.g. `15551234567@s.whatsapp.net`), as returned by `whatsapp_chats`
|
|
99
228
|
- `count` (optional, default 50, max 500) — number of messages to return (most recent first)
|
|
100
229
|
|
|
230
|
+
### whatsapp_tts
|
|
231
|
+
|
|
232
|
+
Converts text to speech and sends it as a WhatsApp voice note.
|
|
233
|
+
|
|
234
|
+
- Uses [Kokoro-js](https://github.com/hexgrad/kokoro) — 100% local, no internet required after first run
|
|
235
|
+
- The model (~160 MB) is downloaded on first use and cached locally
|
|
236
|
+
- Requires `ffmpeg` for WAV to OGG Opus conversion
|
|
237
|
+
- Without a recipient, sends to your self-chat; with a recipient, sends to any contact or group
|
|
238
|
+
|
|
239
|
+
**Available voices (28 total):**
|
|
240
|
+
|
|
241
|
+
| Category | Voices |
|
|
242
|
+
|----------|--------|
|
|
243
|
+
| American Female | `af_heart`, `af_alloy`, `af_aoede`, `af_bella`, `af_jessica`, `af_kore`, `af_nicole`, `af_nova`, `af_river`, `af_sarah`, `af_sky` |
|
|
244
|
+
| American Male | `am_adam`, `am_echo`, `am_eric`, `am_fenrir`, `am_liam`, `am_michael`, `am_onyx`, `am_puck`, `am_santa` |
|
|
245
|
+
| British Female | `bf_alice`, `bf_emma`, `bf_isabella`, `bf_lily` |
|
|
246
|
+
| British Male | `bm_daniel`, `bm_fable`, `bm_george`, `bm_lewis` |
|
|
247
|
+
|
|
248
|
+
Default voice: `bm_fable`
|
|
249
|
+
|
|
250
|
+
Parameters:
|
|
251
|
+
- `message` (required) — text to convert to speech
|
|
252
|
+
- `voice` (optional, default `bm_fable`) — voice name from the table above
|
|
253
|
+
- `recipient` (optional) — phone number, JID, or contact name; omit for self-chat
|
|
254
|
+
|
|
255
|
+
### whatsapp_speak
|
|
256
|
+
|
|
257
|
+
Same TTS engine as `whatsapp_tts`, but plays audio through the Mac's speakers instead of sending a WhatsApp voice note. No WhatsApp connection required. Audio plays in the background without blocking other operations.
|
|
258
|
+
|
|
259
|
+
Parameters:
|
|
260
|
+
- `message` (required) — text to speak aloud
|
|
261
|
+
- `voice` (optional, default `bm_fable`) — voice name (same list as `whatsapp_tts`)
|
|
262
|
+
|
|
263
|
+
### whatsapp_voice_config
|
|
264
|
+
|
|
265
|
+
Gets or sets the voice mode configuration. Configuration is persisted to `~/.whazaa/voice-config.json` and survives watcher restarts.
|
|
266
|
+
|
|
267
|
+
Parameters:
|
|
268
|
+
- `action` (required) — `'get'` to read current config, `'set'` to update it
|
|
269
|
+
- `voiceMode` (optional) — `true` to enable voice responses, `false` to use text
|
|
270
|
+
- `localMode` (optional) — when `true` and `voiceMode` is `true`, use `whatsapp_speak` (Mac speakers) instead of `whatsapp_tts` (WhatsApp voice notes)
|
|
271
|
+
- `defaultVoice` (optional) — default voice name (e.g. `'bm_fable'`)
|
|
272
|
+
- `personas` (optional) — map of names to voice IDs (e.g. `{"Nicole": "af_nicole", "George": "bm_george"}`)
|
|
273
|
+
|
|
274
|
+
Default personas: Nicole → `af_nicole`, George → `bm_george`, Daniel → `bm_daniel`, Fable → `bm_fable`
|
|
275
|
+
|
|
101
276
|
---
|
|
102
277
|
|
|
103
278
|
## CLI commands
|
|
@@ -164,7 +339,7 @@ Certain messages sent from your phone are intercepted by the watcher and handled
|
|
|
164
339
|
| Command | Description |
|
|
165
340
|
|---------|-------------|
|
|
166
341
|
| `/relocate <path>` or `/r <path>` | Open a new iTerm2 tab in the given directory and start Claude there |
|
|
167
|
-
| `/sessions` or `/s` | List open Claude sessions
|
|
342
|
+
| `/sessions` or `/s` | List open Claude sessions with names; reply `/N` to switch, `/N name` to switch and rename |
|
|
168
343
|
|
|
169
344
|
### /relocate
|
|
170
345
|
|
|
@@ -179,7 +354,9 @@ After relocating, subsequent messages are delivered to the new session.
|
|
|
179
354
|
|
|
180
355
|
### /sessions
|
|
181
356
|
|
|
182
|
-
Reply `/s` to get a numbered list of open Claude sessions with their working directories.
|
|
357
|
+
Reply `/s` to get a numbered list of open Claude sessions with their working directories and names. The currently active session is marked with `*`.
|
|
358
|
+
|
|
359
|
+
Switch to a session with `/1`, `/2`, etc. Switch and rename in one step with `/1 My Project`. Session names are stored as iTerm2 session variables and persist across watcher restarts.
|
|
183
360
|
|
|
184
361
|
---
|
|
185
362
|
|
|
@@ -189,6 +366,10 @@ Whazaa supports multiple simultaneous Claude Code windows. Each MCP server insta
|
|
|
189
366
|
|
|
190
367
|
The watcher maintains a separate incoming message queue for each registered session. If no session has sent a message yet, the first registered session is used.
|
|
191
368
|
|
|
369
|
+
Sessions register with a name derived from the working directory (e.g. a Claude session in `~/projects/myapp` registers as `myapp`). Use `/s` to see all sessions and `/N name` to assign a custom name.
|
|
370
|
+
|
|
371
|
+
Routing is sticky: only the `/N` command changes the active session, not sending a message. This means switching sessions from your phone requires an explicit `/N` command.
|
|
372
|
+
|
|
192
373
|
---
|
|
193
374
|
|
|
194
375
|
## Best practices for CLAUDE.md
|
|
@@ -231,6 +412,7 @@ messages that arrived while you were offline.
|
|
|
231
412
|
| Variable | Default | Description |
|
|
232
413
|
|----------|---------|-------------|
|
|
233
414
|
| `WHAZAA_AUTH_DIR` | `~/.whazaa/auth/` | Directory for WhatsApp session credentials |
|
|
415
|
+
| `WHAZAA_TTS_VOICE` | `bm_fable` | Default TTS voice (overridden by voice-config.json) |
|
|
234
416
|
|
|
235
417
|
---
|
|
236
418
|
|
|
@@ -303,6 +485,14 @@ This happens when multiple Whazaa MCP processes compete for the same WhatsApp se
|
|
|
303
485
|
|
|
304
486
|
Whazaa reconnects automatically with exponential backoff (1s to 60s). Check your network. If the issue persists, call `whatsapp_login` to re-establish the session.
|
|
305
487
|
|
|
488
|
+
**TTS fails with "ffmpeg not found"**
|
|
489
|
+
|
|
490
|
+
Install ffmpeg: `brew install ffmpeg`. The watcher searches `/opt/homebrew/bin/ffmpeg` and `/usr/local/bin/ffmpeg` before falling back to the system PATH, so Homebrew installs are found even in restricted launchd environments.
|
|
491
|
+
|
|
492
|
+
**First TTS call takes a long time**
|
|
493
|
+
|
|
494
|
+
The Kokoro model (~160 MB) is downloaded on first use and cached locally. Subsequent calls are fast. Check your network if the download stalls.
|
|
495
|
+
|
|
306
496
|
---
|
|
307
497
|
|
|
308
498
|
## Security
|
|
@@ -310,6 +500,7 @@ Whazaa reconnects automatically with exponential backoff (1s to 60s). Check your
|
|
|
310
500
|
- Session credentials are stored locally in `~/.whazaa/auth/`. Treat them like passwords — they grant full access to your WhatsApp Web session.
|
|
311
501
|
- Whazaa only reads and sends messages in your self-chat. It cannot access other conversations.
|
|
312
502
|
- No data is sent to any third-party service. All communication is directly with WhatsApp's servers via Baileys.
|
|
503
|
+
- TTS synthesis is fully local (Kokoro-js runs on-device). Audio never leaves your machine.
|
|
313
504
|
|
|
314
505
|
---
|
|
315
506
|
|
|
@@ -318,6 +509,7 @@ Whazaa reconnects automatically with exponential backoff (1s to 60s). Check your
|
|
|
318
509
|
- Node.js >= 18
|
|
319
510
|
- WhatsApp account (any — multi-device support is standard)
|
|
320
511
|
- macOS with [iTerm2](https://iterm2.com/) for the `watch` command and iTerm2 delivery
|
|
512
|
+
- [ffmpeg](https://ffmpeg.org/) for TTS voice note sending (`whatsapp_tts`)
|
|
321
513
|
|
|
322
514
|
---
|
|
323
515
|
|
package/dist/index.d.ts
CHANGED
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* index.ts — Whazaa MCP server entry point
|
|
4
4
|
*
|
|
5
|
-
* Exposes
|
|
5
|
+
* Exposes tools over the Model Context Protocol (stdio transport):
|
|
6
6
|
*
|
|
7
7
|
* whatsapp_status — Report connection state and phone number
|
|
8
|
-
* whatsapp_send — Send a message to your own WhatsApp number
|
|
8
|
+
* whatsapp_send — Send a message to your own WhatsApp number (with optional TTS voice)
|
|
9
|
+
* whatsapp_tts — Convert text to speech and send as a WhatsApp voice note
|
|
9
10
|
* whatsapp_receive — Drain queued incoming messages from your phone
|
|
10
11
|
* whatsapp_wait — Long-poll for the next incoming message
|
|
11
12
|
* whatsapp_login — Trigger a new QR pairing flow
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;GAuBG"}
|
package/dist/index.js
CHANGED
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* index.ts — Whazaa MCP server entry point
|
|
4
4
|
*
|
|
5
|
-
* Exposes
|
|
5
|
+
* Exposes tools over the Model Context Protocol (stdio transport):
|
|
6
6
|
*
|
|
7
7
|
* whatsapp_status — Report connection state and phone number
|
|
8
|
-
* whatsapp_send — Send a message to your own WhatsApp number
|
|
8
|
+
* whatsapp_send — Send a message to your own WhatsApp number (with optional TTS voice)
|
|
9
|
+
* whatsapp_tts — Convert text to speech and send as a WhatsApp voice note
|
|
9
10
|
* whatsapp_receive — Drain queued incoming messages from your phone
|
|
10
11
|
* whatsapp_wait — Long-poll for the next incoming message
|
|
11
12
|
* whatsapp_login — Trigger a new QR pairing flow
|
|
@@ -33,6 +34,7 @@ import { initialize, triggerLogin, waitForConnection, waitForLogout, waitForQR,
|
|
|
33
34
|
import { resolveAuthDir, enableSetupMode, cleanupQR, suppressQRDisplay, unsuppressQRDisplay } from "./auth.js";
|
|
34
35
|
import { watch } from "./watch.js";
|
|
35
36
|
import { WatcherClient } from "./ipc-client.js";
|
|
37
|
+
import { listVoices } from "./tts.js";
|
|
36
38
|
import { listChats, getMessages } from "./desktop-db.js";
|
|
37
39
|
// ---------------------------------------------------------------------------
|
|
38
40
|
// Setup wizard
|
|
@@ -225,6 +227,9 @@ server.tool("whatsapp_send", [
|
|
|
225
227
|
"Recipient can be a phone number with country code (e.g. '+41764502698'),",
|
|
226
228
|
"a WhatsApp JID (e.g. '41764502698@s.whatsapp.net'), or a contact name.",
|
|
227
229
|
"Supports basic Markdown: **bold**, *italic*, `code`.",
|
|
230
|
+
"Optionally set voice to send the message as a TTS voice note instead of text.",
|
|
231
|
+
"Use voice='true' or voice='default' for the default voice,",
|
|
232
|
+
"or a specific voice name like 'af_heart', 'bm_george', 'af_bella', etc.",
|
|
228
233
|
].join(" "), {
|
|
229
234
|
message: z
|
|
230
235
|
.string()
|
|
@@ -234,8 +239,29 @@ server.tool("whatsapp_send", [
|
|
|
234
239
|
.string()
|
|
235
240
|
.optional()
|
|
236
241
|
.describe("Optional recipient: phone number (e.g. '+41764502698'), WhatsApp JID, or contact name. Omit to send to self-chat."),
|
|
237
|
-
|
|
242
|
+
voice: z
|
|
243
|
+
.string()
|
|
244
|
+
.optional()
|
|
245
|
+
.describe("Optional: if set, send message as a TTS voice note using Kokoro. Use 'true' or 'default' for the default voice (bm_fable), or a specific voice name like 'bm_george', 'af_bella', 'af_nova'."),
|
|
246
|
+
}, async ({ message, recipient, voice }) => {
|
|
238
247
|
try {
|
|
248
|
+
// If voice is requested, delegate to TTS IPC method
|
|
249
|
+
if (voice !== undefined && voice !== "") {
|
|
250
|
+
const result = await watcher.tts({
|
|
251
|
+
text: message,
|
|
252
|
+
voice: voice,
|
|
253
|
+
jid: recipient,
|
|
254
|
+
});
|
|
255
|
+
const dest = result.targetJid ?? "self-chat";
|
|
256
|
+
return {
|
|
257
|
+
content: [
|
|
258
|
+
{
|
|
259
|
+
type: "text",
|
|
260
|
+
text: `Voice note sent to ${dest} (voice: ${result.voice}, ${result.bytesSent} bytes)`,
|
|
261
|
+
},
|
|
262
|
+
],
|
|
263
|
+
};
|
|
264
|
+
}
|
|
239
265
|
const result = await watcher.send(message, recipient);
|
|
240
266
|
const dest = result.targetJid ?? "self-chat";
|
|
241
267
|
return {
|
|
@@ -251,6 +277,55 @@ server.tool("whatsapp_send", [
|
|
|
251
277
|
}
|
|
252
278
|
});
|
|
253
279
|
// ---------------------------------------------------------------------------
|
|
280
|
+
// Tool: whatsapp_tts
|
|
281
|
+
// ---------------------------------------------------------------------------
|
|
282
|
+
server.tool("whatsapp_tts", [
|
|
283
|
+
"Convert text to speech and send as a WhatsApp voice note.",
|
|
284
|
+
"Uses Kokoro TTS — 100% local, no internet required after first run.",
|
|
285
|
+
"The model (~160 MB) is downloaded on first use and cached locally.",
|
|
286
|
+
`Available voices: ${listVoices().join(", ")}.`,
|
|
287
|
+
"Without a recipient, sends to your own self-chat.",
|
|
288
|
+
"With a recipient, sends to any contact or group.",
|
|
289
|
+
].join(" "), {
|
|
290
|
+
message: z
|
|
291
|
+
.string()
|
|
292
|
+
.min(1)
|
|
293
|
+
.describe("The text to convert to speech and send as a voice note"),
|
|
294
|
+
voice: z
|
|
295
|
+
.string()
|
|
296
|
+
.optional()
|
|
297
|
+
.default("bm_fable")
|
|
298
|
+
.describe("Kokoro voice to use (default: 'bm_fable'). Examples: 'af_bella', 'af_nova', 'bm_george', 'bm_daniel', 'bf_emma'."),
|
|
299
|
+
recipient: z
|
|
300
|
+
.string()
|
|
301
|
+
.optional()
|
|
302
|
+
.describe("Optional recipient: phone number (e.g. '+41764502698'), WhatsApp JID, or contact name. Omit to send to self-chat."),
|
|
303
|
+
}, async ({ message, voice, recipient }) => {
|
|
304
|
+
try {
|
|
305
|
+
const result = await watcher.tts({
|
|
306
|
+
text: message,
|
|
307
|
+
voice: voice,
|
|
308
|
+
jid: recipient,
|
|
309
|
+
});
|
|
310
|
+
const dest = result.targetJid ?? "self-chat";
|
|
311
|
+
return {
|
|
312
|
+
content: [
|
|
313
|
+
{
|
|
314
|
+
type: "text",
|
|
315
|
+
text: `Voice note sent to ${dest} (voice: ${result.voice}, ${result.bytesSent} bytes)`,
|
|
316
|
+
},
|
|
317
|
+
],
|
|
318
|
+
};
|
|
319
|
+
}
|
|
320
|
+
catch (err) {
|
|
321
|
+
const errMsg = err instanceof Error ? err.message : String(err);
|
|
322
|
+
return {
|
|
323
|
+
content: [{ type: "text", text: `Error: ${errMsg}` }],
|
|
324
|
+
isError: true,
|
|
325
|
+
};
|
|
326
|
+
}
|
|
327
|
+
});
|
|
328
|
+
// ---------------------------------------------------------------------------
|
|
254
329
|
// Tool: whatsapp_receive
|
|
255
330
|
// ---------------------------------------------------------------------------
|
|
256
331
|
server.tool("whatsapp_receive", [
|
|
@@ -551,6 +626,116 @@ server.tool("whatsapp_history", [
|
|
|
551
626
|
}
|
|
552
627
|
});
|
|
553
628
|
// ---------------------------------------------------------------------------
|
|
629
|
+
// Tool: whatsapp_voice_config
|
|
630
|
+
// ---------------------------------------------------------------------------
|
|
631
|
+
server.tool("whatsapp_voice_config", [
|
|
632
|
+
"Get or set voice mode configuration.",
|
|
633
|
+
"Actions: 'get' (read current config), 'set' (update config).",
|
|
634
|
+
"Voice mode controls whether PAI responds via voice notes or text.",
|
|
635
|
+
"Default voice is 'bm_fable'.",
|
|
636
|
+
"Personas map names to voices (e.g. 'Nicole' -> 'af_nicole').",
|
|
637
|
+
].join(" "), {
|
|
638
|
+
action: z
|
|
639
|
+
.enum(["get", "set"])
|
|
640
|
+
.describe("Action: 'get' to read config, 'set' to update it"),
|
|
641
|
+
defaultVoice: z
|
|
642
|
+
.string()
|
|
643
|
+
.optional()
|
|
644
|
+
.describe("Set the default PAI voice (e.g. 'bm_fable', 'af_nicole')"),
|
|
645
|
+
voiceMode: z
|
|
646
|
+
.boolean()
|
|
647
|
+
.optional()
|
|
648
|
+
.describe("Enable/disable voice mode. When true, PAI should respond with voice notes."),
|
|
649
|
+
localMode: z
|
|
650
|
+
.boolean()
|
|
651
|
+
.optional()
|
|
652
|
+
.describe("Enable/disable local speaker mode. When true AND voiceMode is true, PAI should use whatsapp_speak (local speakers) instead of whatsapp_tts (WhatsApp voice notes)."),
|
|
653
|
+
personas: z
|
|
654
|
+
.record(z.string())
|
|
655
|
+
.optional()
|
|
656
|
+
.describe("Map of persona names to voice IDs (e.g. {\"Nicole\": \"af_nicole\"})"),
|
|
657
|
+
}, async ({ action, defaultVoice, voiceMode, localMode, personas }) => {
|
|
658
|
+
try {
|
|
659
|
+
const updates = {};
|
|
660
|
+
if (defaultVoice !== undefined)
|
|
661
|
+
updates.defaultVoice = defaultVoice;
|
|
662
|
+
if (voiceMode !== undefined)
|
|
663
|
+
updates.voiceMode = voiceMode;
|
|
664
|
+
if (localMode !== undefined)
|
|
665
|
+
updates.localMode = localMode;
|
|
666
|
+
if (personas !== undefined)
|
|
667
|
+
updates.personas = personas;
|
|
668
|
+
const result = await watcher.voiceConfig(action, Object.keys(updates).length > 0 ? updates : undefined);
|
|
669
|
+
if (!result.success) {
|
|
670
|
+
return { content: [{ type: "text", text: `Error: ${result.error}` }] };
|
|
671
|
+
}
|
|
672
|
+
const c = result.config;
|
|
673
|
+
const personaList = Object.entries(c.personas)
|
|
674
|
+
.map(([name, voice]) => ` ${name} -> ${voice}`)
|
|
675
|
+
.join("\n");
|
|
676
|
+
const modeDesc = !c.voiceMode
|
|
677
|
+
? "OFF (text)"
|
|
678
|
+
: c.localMode
|
|
679
|
+
? "ON (local speakers)"
|
|
680
|
+
: "ON (WhatsApp voice notes)";
|
|
681
|
+
return {
|
|
682
|
+
content: [
|
|
683
|
+
{
|
|
684
|
+
type: "text",
|
|
685
|
+
text: `Voice config:\n Mode: ${modeDesc}\n Local mode: ${c.localMode ? "ON" : "OFF"}\n Default voice: ${c.defaultVoice}\n Personas:\n${personaList}`,
|
|
686
|
+
},
|
|
687
|
+
],
|
|
688
|
+
};
|
|
689
|
+
}
|
|
690
|
+
catch (err) {
|
|
691
|
+
const errMsg = err instanceof Error ? err.message : String(err);
|
|
692
|
+
return {
|
|
693
|
+
content: [{ type: "text", text: `Error: ${errMsg}` }],
|
|
694
|
+
isError: true,
|
|
695
|
+
};
|
|
696
|
+
}
|
|
697
|
+
});
|
|
698
|
+
// ---------------------------------------------------------------------------
|
|
699
|
+
// Tool: whatsapp_speak
|
|
700
|
+
// ---------------------------------------------------------------------------
|
|
701
|
+
server.tool("whatsapp_speak", [
|
|
702
|
+
"Speak text aloud through the Mac's speakers using Kokoro TTS.",
|
|
703
|
+
"100% local, no internet required. Same voices as whatsapp_tts.",
|
|
704
|
+
"Audio plays in the background without blocking other operations.",
|
|
705
|
+
"Use this when the user wants to hear responses locally instead of via WhatsApp voice notes.",
|
|
706
|
+
`Available voices: ${listVoices().join(", ")}.`,
|
|
707
|
+
].join(" "), {
|
|
708
|
+
message: z
|
|
709
|
+
.string()
|
|
710
|
+
.min(1)
|
|
711
|
+
.describe("The text to speak aloud"),
|
|
712
|
+
voice: z
|
|
713
|
+
.string()
|
|
714
|
+
.optional()
|
|
715
|
+
.default("bm_fable")
|
|
716
|
+
.describe("Kokoro voice to use (default: 'bm_fable'). Examples: 'af_bella', 'af_nova', 'bm_george', 'bm_daniel', 'bf_emma'."),
|
|
717
|
+
}, async ({ message, voice }) => {
|
|
718
|
+
try {
|
|
719
|
+
const result = await watcher.speak(message, voice);
|
|
720
|
+
if (!result.success) {
|
|
721
|
+
return {
|
|
722
|
+
content: [{ type: "text", text: `Error: ${result.error}` }],
|
|
723
|
+
isError: true,
|
|
724
|
+
};
|
|
725
|
+
}
|
|
726
|
+
return {
|
|
727
|
+
content: [{ type: "text", text: `Speaking aloud (voice: ${result.voice})` }],
|
|
728
|
+
};
|
|
729
|
+
}
|
|
730
|
+
catch (err) {
|
|
731
|
+
const errMsg = err instanceof Error ? err.message : String(err);
|
|
732
|
+
return {
|
|
733
|
+
content: [{ type: "text", text: `Error: ${errMsg}` }],
|
|
734
|
+
isError: true,
|
|
735
|
+
};
|
|
736
|
+
}
|
|
737
|
+
});
|
|
738
|
+
// ---------------------------------------------------------------------------
|
|
554
739
|
// Main
|
|
555
740
|
// ---------------------------------------------------------------------------
|
|
556
741
|
async function main() {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|