whazaa 0.5.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +99 -28
- package/dist/index.js +49 -1
- package/dist/index.js.map +1 -1
- package/dist/watch.d.ts +19 -0
- package/dist/watch.d.ts.map +1 -0
- package/dist/watch.js +262 -0
- package/dist/watch.js.map +1 -0
- package/dist/whatsapp.d.ts.map +1 -1
- package/dist/whatsapp.js +10 -4
- package/dist/whatsapp.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Whazaa
|
|
2
2
|
|
|
3
|
-
WhatsApp MCP server for Claude Code — bidirectional self-chat messaging.
|
|
3
|
+
WhatsApp MCP server for Claude Code — bidirectional self-chat messaging with terminal integration.
|
|
4
4
|
|
|
5
5
|
You message yourself on WhatsApp, Claude receives it. Claude responds, you see it on WhatsApp. Your phone becomes a parallel terminal.
|
|
6
6
|
|
|
@@ -9,6 +9,7 @@ You message yourself on WhatsApp, Claude receives it. Claude responds, you see i
|
|
|
9
9
|
## Features
|
|
10
10
|
|
|
11
11
|
- **Bidirectional messaging** — send from Claude, receive from your phone
|
|
12
|
+
- **Terminal watcher** — incoming messages are typed directly into your Claude Code session via iTerm2
|
|
12
13
|
- **Zero configuration** — auto-detects your phone number after first scan
|
|
13
14
|
- **First-run QR pairing** — scan once, connects automatically thereafter
|
|
14
15
|
- **Markdown support** — `**bold**`, `*italic*`, `` `code` `` converted to WhatsApp format
|
|
@@ -51,7 +52,7 @@ Messages go through your WhatsApp self-chat — the chat with yourself (sometime
|
|
|
51
52
|
Just say something like:
|
|
52
53
|
- "Message me on WhatsApp when you're done"
|
|
53
54
|
- "Continue on WhatsApp"
|
|
54
|
-
- "Listen on WhatsApp" — Claude will
|
|
55
|
+
- "Listen on WhatsApp" — Claude will start the watcher and receive your messages as terminal input
|
|
55
56
|
|
|
56
57
|
**Example:**
|
|
57
58
|
1. In Claude Code: "Refactor the auth module and message me on WhatsApp when done"
|
|
@@ -62,6 +63,52 @@ Just say something like:
|
|
|
62
63
|
|
|
63
64
|
---
|
|
64
65
|
|
|
66
|
+
## Terminal Watcher (macOS + iTerm2)
|
|
67
|
+
|
|
68
|
+
> **Platform:** The watcher currently requires **macOS** with **iTerm2**. It uses AppleScript (`osascript`) to type into a specific iTerm2 session. Terminal.app and non-macOS platforms are not yet supported — contributions welcome.
|
|
69
|
+
|
|
70
|
+
The `watch` command bridges WhatsApp messages directly into a Claude Code terminal session. Incoming messages are typed into the terminal via AppleScript automation — Claude sees them as regular user input.
|
|
71
|
+
|
|
72
|
+
### How it works
|
|
73
|
+
|
|
74
|
+
1. Whazaa MCP server writes incoming messages to a log file
|
|
75
|
+
2. The watcher polls the log for new lines (every 2 seconds)
|
|
76
|
+
3. The watcher resolves the target iTerm2 session (see below)
|
|
77
|
+
4. New messages are typed into that session via `osascript`
|
|
78
|
+
5. Claude Code processes them as regular user input
|
|
79
|
+
|
|
80
|
+
### Session resolution
|
|
81
|
+
|
|
82
|
+
The watcher uses a fallback chain to find a usable iTerm2 session:
|
|
83
|
+
|
|
84
|
+
1. **Try the specified session ID** — uses the session ID passed on the command line
|
|
85
|
+
2. **Search by tab name** — if that session is gone, scans all iTerm2 sessions for one whose tab name contains "claude"
|
|
86
|
+
3. **Retry after 2 seconds** — if still not found, waits and tries again (AppleScript may need a moment to connect when the watcher starts fresh from launchd)
|
|
87
|
+
4. **Create a new tab** — if no session is found after the retry, opens a new iTerm2 tab, runs `claude`, waits for it to boot, then uses that session
|
|
88
|
+
|
|
89
|
+
This means the watcher can recover automatically if you close and reopen your Claude Code tab, or if it was started before iTerm2 was fully ready.
|
|
90
|
+
|
|
91
|
+
### Managing the watcher
|
|
92
|
+
|
|
93
|
+
Claude Code manages the watcher automatically — when you say "listen on WhatsApp" or use `/whatsapp on`, it starts the watcher as a macOS launchd agent targeting the current iTerm2 session. The control script is at `scripts/watcher-ctl.sh`:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
scripts/watcher-ctl.sh start # Install and start as launchd agent
|
|
97
|
+
scripts/watcher-ctl.sh stop # Stop and unload the agent
|
|
98
|
+
scripts/watcher-ctl.sh status # Show whether the agent is running
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
The launchd agent is configured with `KeepAlive: true`, so macOS automatically restarts the watcher if it crashes. It also uses `ProcessType: Interactive` and `LimitLoadToSessionType: Aqua`, which gives the agent access to the macOS GUI session. This is required because AppleScript needs a GUI context to control iTerm2 — without it, `osascript` calls from a launchd background agent would fail silently or be refused by the system.
|
|
102
|
+
|
|
103
|
+
### Configuration
|
|
104
|
+
|
|
105
|
+
| Variable | Default | Description |
|
|
106
|
+
|----------|---------|-------------|
|
|
107
|
+
| `WHAZAA_LOG` | `/tmp/whazaa-incoming.log` | Path to the incoming message log file |
|
|
108
|
+
| `WHAZAA_POLL_INTERVAL` | `2` | Seconds between file checks |
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
65
112
|
## Uninstall
|
|
66
113
|
|
|
67
114
|
```bash
|
|
@@ -83,8 +130,7 @@ If you prefer to configure manually, add Whazaa to `~/.claude/.mcp.json` (or you
|
|
|
83
130
|
"mcpServers": {
|
|
84
131
|
"whazaa": {
|
|
85
132
|
"command": "npx",
|
|
86
|
-
"args": ["whazaa"]
|
|
87
|
-
"description": "Whazaa — WhatsApp self-chat MCP server for Claude Code"
|
|
133
|
+
"args": ["whazaa"]
|
|
88
134
|
}
|
|
89
135
|
}
|
|
90
136
|
}
|
|
@@ -97,8 +143,7 @@ If you prefer to configure manually, add Whazaa to `~/.claude/.mcp.json` (or you
|
|
|
97
143
|
"mcpServers": {
|
|
98
144
|
"whazaa": {
|
|
99
145
|
"command": "bunx",
|
|
100
|
-
"args": ["whazaa"]
|
|
101
|
-
"description": "Whazaa — WhatsApp self-chat MCP server for Claude Code"
|
|
146
|
+
"args": ["whazaa"]
|
|
102
147
|
}
|
|
103
148
|
}
|
|
104
149
|
}
|
|
@@ -111,31 +156,55 @@ If you prefer to configure manually, add Whazaa to `~/.claude/.mcp.json` (or you
|
|
|
111
156
|
"mcpServers": {
|
|
112
157
|
"whazaa": {
|
|
113
158
|
"command": "node",
|
|
114
|
-
"args": ["/path/to/whazaa/dist/index.js"]
|
|
115
|
-
"description": "Whazaa — WhatsApp self-chat MCP server for Claude Code"
|
|
159
|
+
"args": ["/path/to/whazaa/dist/index.js"]
|
|
116
160
|
}
|
|
117
161
|
}
|
|
118
162
|
}
|
|
119
163
|
```
|
|
120
164
|
|
|
121
|
-
After updating the MCP config, restart Claude Code. On first run, Whazaa prints a QR code to the Claude Code logs (check Settings
|
|
165
|
+
After updating the MCP config, restart Claude Code. On first run, Whazaa prints a QR code to the Claude Code logs (check Settings → Developer → MCP Logs, or run it manually from a terminal first to complete pairing).
|
|
122
166
|
|
|
123
167
|
---
|
|
124
168
|
|
|
125
|
-
##
|
|
169
|
+
## MCP Tools
|
|
126
170
|
|
|
127
171
|
| Tool | Description |
|
|
128
172
|
|------|-------------|
|
|
129
173
|
| `whatsapp_status` | Report connection state and phone number |
|
|
130
174
|
| `whatsapp_send` | Send a message to your own WhatsApp self-chat |
|
|
131
175
|
| `whatsapp_receive` | Drain queued incoming messages from your phone |
|
|
176
|
+
| `whatsapp_wait` | Block until a message arrives (up to timeout) |
|
|
132
177
|
| `whatsapp_login` | Trigger a new QR pairing flow |
|
|
133
178
|
|
|
179
|
+
## CLI Commands
|
|
180
|
+
|
|
181
|
+
| Command | Description |
|
|
182
|
+
|---------|-------------|
|
|
183
|
+
| `whazaa setup` | Interactive setup — configures MCP, pairs with WhatsApp |
|
|
184
|
+
| `whazaa watch <session-id>` | Start terminal watcher for iTerm2 session |
|
|
185
|
+
| `whazaa uninstall` | Remove MCP config and stored credentials |
|
|
186
|
+
|
|
134
187
|
---
|
|
135
188
|
|
|
136
189
|
## How It Works
|
|
137
190
|
|
|
138
|
-
Whazaa uses the [Baileys](https://github.com/WhiskeySockets/Baileys) library to maintain a persistent WebSocket connection to WhatsApp's servers using the same multi-device protocol as WhatsApp Web. It exposes
|
|
191
|
+
Whazaa uses the [Baileys](https://github.com/WhiskeySockets/Baileys) library to maintain a persistent WebSocket connection to WhatsApp's servers using the same multi-device protocol as WhatsApp Web. It exposes MCP tools over stdin/stdout and routes all Baileys output to stderr to keep the JSON-RPC stream clean.
|
|
192
|
+
|
|
193
|
+
**Stale instance cleanup:**
|
|
194
|
+
When a new MCP server starts, it automatically finds and kills any existing Whazaa MCP processes (excluding watch processes and itself). This prevents multiple instances from competing for the same WhatsApp auth credentials, which would otherwise cause frequent disconnects as each instance races to own the session.
|
|
195
|
+
|
|
196
|
+
**Message flow (incoming):**
|
|
197
|
+
1. You type a message on your phone in the self-chat
|
|
198
|
+
2. Baileys receives it via WebSocket
|
|
199
|
+
3. Whazaa queues it in memory and writes it to the log file
|
|
200
|
+
4. The `watch` process detects the new line and types it into your terminal
|
|
201
|
+
5. Claude Code processes it as user input
|
|
202
|
+
|
|
203
|
+
**Message flow (outgoing):**
|
|
204
|
+
1. Claude calls `whatsapp_send` via MCP
|
|
205
|
+
2. Whazaa converts Markdown to WhatsApp formatting
|
|
206
|
+
3. Baileys sends it via WebSocket
|
|
207
|
+
4. The message appears on your phone
|
|
139
208
|
|
|
140
209
|
---
|
|
141
210
|
|
|
@@ -144,22 +213,8 @@ Whazaa uses the [Baileys](https://github.com/WhiskeySockets/Baileys) library to
|
|
|
144
213
|
| Variable | Default | Description |
|
|
145
214
|
|----------|---------|-------------|
|
|
146
215
|
| `WHAZAA_AUTH_DIR` | `~/.whazaa/auth/` | Directory for WhatsApp session credentials |
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
```json
|
|
151
|
-
{
|
|
152
|
-
"mcpServers": {
|
|
153
|
-
"whazaa": {
|
|
154
|
-
"command": "node",
|
|
155
|
-
"args": ["/path/to/whazaa/dist/index.js"],
|
|
156
|
-
"env": {
|
|
157
|
-
"WHAZAA_AUTH_DIR": "/custom/path/whatsapp-creds"
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
```
|
|
216
|
+
| `WHAZAA_LOG` | `/tmp/whazaa-incoming.log` | Incoming message log file (used by `watch`) |
|
|
217
|
+
| `WHAZAA_POLL_INTERVAL` | `2` | Watcher poll interval in seconds |
|
|
163
218
|
|
|
164
219
|
---
|
|
165
220
|
|
|
@@ -171,7 +226,15 @@ Your session was invalidated (e.g. you unlinked the device in WhatsApp). Run `np
|
|
|
171
226
|
|
|
172
227
|
**Messages not received**
|
|
173
228
|
|
|
174
|
-
Call `whatsapp_receive` to drain the queue. Only messages sent to your own number (the self-chat / "Saved Messages" chat) are captured.
|
|
229
|
+
Call `whatsapp_receive` to drain the queue. Only messages sent to your own number (the self-chat / "Saved Messages" chat) are captured. If using the watcher, check that it's running: `ps aux | grep "whazaa.*watch"`.
|
|
230
|
+
|
|
231
|
+
**"iTerm2 wants to control..." security prompt**
|
|
232
|
+
|
|
233
|
+
On first use, macOS will show a security dialog asking whether to allow the watcher (or `osascript`) to control iTerm2. Click "OK" to allow it. If you accidentally clicked "Don't Allow", go to System Settings → Privacy & Security → Automation and enable iTerm2 for the relevant app. Without this permission, the watcher cannot type messages into your terminal.
|
|
234
|
+
|
|
235
|
+
**Watcher not typing into terminal**
|
|
236
|
+
|
|
237
|
+
Verify the session ID matches your Claude Code tab: `echo $ITERM_SESSION_ID`. The watcher requires iTerm2 on macOS.
|
|
175
238
|
|
|
176
239
|
**Connection keeps dropping**
|
|
177
240
|
|
|
@@ -183,6 +246,14 @@ Set `WHAZAA_AUTH_DIR` to a different directory for each account and run separate
|
|
|
183
246
|
|
|
184
247
|
---
|
|
185
248
|
|
|
249
|
+
## Requirements
|
|
250
|
+
|
|
251
|
+
- Node.js >= 18
|
|
252
|
+
- WhatsApp account with multi-device support
|
|
253
|
+
- **For the `watch` command:** macOS with [iTerm2](https://iterm2.com/) (uses AppleScript to type into terminal sessions)
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
186
257
|
## Security Notes
|
|
187
258
|
|
|
188
259
|
- Session credentials are stored locally in `~/.whazaa/auth/`. Treat them like passwords.
|
package/dist/index.js
CHANGED
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
* the script runs an interactive setup wizard instead of starting the MCP server.
|
|
18
18
|
* In setup mode stdout is the terminal — console.log is safe to use.
|
|
19
19
|
*/
|
|
20
|
+
import { execSync } from "node:child_process";
|
|
20
21
|
import { existsSync, mkdirSync, readFileSync, readdirSync, rmSync, writeFileSync } from "node:fs";
|
|
21
22
|
import { homedir } from "node:os";
|
|
22
23
|
import { dirname, join } from "node:path";
|
|
@@ -25,6 +26,7 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
|
|
|
25
26
|
import { z } from "zod";
|
|
26
27
|
import { initialize, getStatus, sendMessage, drainMessages, waitForMessages, triggerLogin, waitForConnection, waitForLogout, } from "./whatsapp.js";
|
|
27
28
|
import { resolveAuthDir, enableSetupMode, cleanupQR } from "./auth.js";
|
|
29
|
+
import { watch } from "./watch.js";
|
|
28
30
|
// ---------------------------------------------------------------------------
|
|
29
31
|
// Setup wizard
|
|
30
32
|
// ---------------------------------------------------------------------------
|
|
@@ -294,6 +296,36 @@ server.tool("whatsapp_login", [
|
|
|
294
296
|
}
|
|
295
297
|
});
|
|
296
298
|
// ---------------------------------------------------------------------------
|
|
299
|
+
// Stale instance cleanup
|
|
300
|
+
// ---------------------------------------------------------------------------
|
|
301
|
+
/**
|
|
302
|
+
* Kill any other Whazaa MCP server processes (not watch mode, not ourselves).
|
|
303
|
+
* Multiple instances compete for the same WhatsApp auth credentials and cause
|
|
304
|
+
* connection failures. This ensures only one MCP server is active at a time.
|
|
305
|
+
*/
|
|
306
|
+
function killStaleInstances() {
|
|
307
|
+
const myPid = process.pid;
|
|
308
|
+
try {
|
|
309
|
+
// Find all node processes running Whazaa's index.js (excluding watch mode)
|
|
310
|
+
const output = execSync(`ps ax -o pid,args | grep '[d]ist/index.js' | grep -v ' watch '`, { encoding: "utf-8", timeout: 5_000 });
|
|
311
|
+
for (const line of output.trim().split("\n")) {
|
|
312
|
+
const pid = parseInt(line.trim(), 10);
|
|
313
|
+
if (!pid || pid === myPid)
|
|
314
|
+
continue;
|
|
315
|
+
try {
|
|
316
|
+
process.kill(pid, "SIGTERM");
|
|
317
|
+
process.stderr.write(`[whazaa] Killed stale instance (PID ${pid})\n`);
|
|
318
|
+
}
|
|
319
|
+
catch {
|
|
320
|
+
// Process already exited — ignore
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
catch {
|
|
325
|
+
// No matches or command failed — nothing to clean up
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
// ---------------------------------------------------------------------------
|
|
297
329
|
// Main
|
|
298
330
|
// ---------------------------------------------------------------------------
|
|
299
331
|
async function main() {
|
|
@@ -307,7 +339,23 @@ async function main() {
|
|
|
307
339
|
await uninstall();
|
|
308
340
|
return;
|
|
309
341
|
}
|
|
310
|
-
|
|
342
|
+
if (process.argv.includes("watch")) {
|
|
343
|
+
const watchIdx = process.argv.indexOf("watch");
|
|
344
|
+
const sessionId = process.argv[watchIdx + 1];
|
|
345
|
+
if (!sessionId) {
|
|
346
|
+
console.error("Usage: whazaa watch <iterm-session-id>");
|
|
347
|
+
console.error("");
|
|
348
|
+
console.error("The session ID is available as $ITERM_SESSION_ID in iTerm2.");
|
|
349
|
+
console.error("Example: whazaa watch w1t1p0:9E273A47-BAAF-499E-9AF4-AAC5997FFF5E");
|
|
350
|
+
process.exit(1);
|
|
351
|
+
}
|
|
352
|
+
await watch(sessionId);
|
|
353
|
+
return;
|
|
354
|
+
}
|
|
355
|
+
// Kill stale Whazaa MCP server instances before starting.
|
|
356
|
+
// Multiple instances compete for the same WhatsApp auth and cause disconnects.
|
|
357
|
+
killStaleInstances();
|
|
358
|
+
// Start WhatsApp connection in the background.
|
|
311
359
|
// initialize() resolves once connected OR once a QR code has been emitted,
|
|
312
360
|
// so the MCP server is immediately available for tool calls in both cases.
|
|
313
361
|
initialize().catch((err) => {
|
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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"}
|
package/dist/watch.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* watch.ts — Smart terminal watcher for Claude Code integration
|
|
3
|
+
*
|
|
4
|
+
* Monitors the Whazaa incoming message log and types new messages
|
|
5
|
+
* into an iTerm2 session running Claude Code.
|
|
6
|
+
*
|
|
7
|
+
* Smart session resolution (in order):
|
|
8
|
+
* 1. Try the specified session ID (from /whatsapp on)
|
|
9
|
+
* 2. If gone, find any iTerm2 session running claude
|
|
10
|
+
* 3. If none, open a new iTerm2 tab, start claude, use that
|
|
11
|
+
*
|
|
12
|
+
* Usage: npx whazaa watch <session-id>
|
|
13
|
+
*
|
|
14
|
+
* Environment variables:
|
|
15
|
+
* WHAZAA_LOG Path to incoming message log (default: /tmp/whazaa-incoming.log)
|
|
16
|
+
* WHAZAA_POLL_INTERVAL Seconds between checks (default: 2)
|
|
17
|
+
*/
|
|
18
|
+
export declare function watch(rawSessionId: string): Promise<void>;
|
|
19
|
+
//# sourceMappingURL=watch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../src/watch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAgLH,wBAAsB,KAAK,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA8H/D"}
|
package/dist/watch.js
ADDED
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* watch.ts — Smart terminal watcher for Claude Code integration
|
|
3
|
+
*
|
|
4
|
+
* Monitors the Whazaa incoming message log and types new messages
|
|
5
|
+
* into an iTerm2 session running Claude Code.
|
|
6
|
+
*
|
|
7
|
+
* Smart session resolution (in order):
|
|
8
|
+
* 1. Try the specified session ID (from /whatsapp on)
|
|
9
|
+
* 2. If gone, find any iTerm2 session running claude
|
|
10
|
+
* 3. If none, open a new iTerm2 tab, start claude, use that
|
|
11
|
+
*
|
|
12
|
+
* Usage: npx whazaa watch <session-id>
|
|
13
|
+
*
|
|
14
|
+
* Environment variables:
|
|
15
|
+
* WHAZAA_LOG Path to incoming message log (default: /tmp/whazaa-incoming.log)
|
|
16
|
+
* WHAZAA_POLL_INTERVAL Seconds between checks (default: 2)
|
|
17
|
+
*/
|
|
18
|
+
import { existsSync, readFileSync, writeFileSync } from "node:fs";
|
|
19
|
+
import { spawnSync } from "node:child_process";
|
|
20
|
+
import { homedir } from "node:os";
|
|
21
|
+
function resolveConfig(sessionId) {
|
|
22
|
+
return {
|
|
23
|
+
sessionId,
|
|
24
|
+
logFile: process.env.WHAZAA_LOG || "/tmp/whazaa-incoming.log",
|
|
25
|
+
pollInterval: (parseInt(process.env.WHAZAA_POLL_INTERVAL || "2", 10) || 2) * 1_000,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
// --- Terminal adapters -------------------------------------------------------
|
|
29
|
+
/**
|
|
30
|
+
* Run an AppleScript and return its stdout, or null on failure.
|
|
31
|
+
*/
|
|
32
|
+
function runAppleScript(script) {
|
|
33
|
+
const result = spawnSync("osascript", [], {
|
|
34
|
+
input: script,
|
|
35
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
36
|
+
timeout: 10_000,
|
|
37
|
+
});
|
|
38
|
+
if (result.status !== 0)
|
|
39
|
+
return null;
|
|
40
|
+
return result.stdout?.toString().trim() ?? null;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Type text into a specific iTerm2 session and press Enter.
|
|
44
|
+
* Returns true if the session was found and text was typed.
|
|
45
|
+
*/
|
|
46
|
+
function typeIntoSession(sessionId, text) {
|
|
47
|
+
const escaped = text.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
48
|
+
const script = `
|
|
49
|
+
tell application "iTerm2"
|
|
50
|
+
repeat with aWindow in windows
|
|
51
|
+
repeat with aTab in tabs of aWindow
|
|
52
|
+
repeat with aSession in sessions of aTab
|
|
53
|
+
if id of aSession is "${sessionId}" then
|
|
54
|
+
tell aSession to write text "${escaped}" newline no
|
|
55
|
+
tell aSession to write text (ASCII character 13) newline no
|
|
56
|
+
return "ok"
|
|
57
|
+
end if
|
|
58
|
+
end repeat
|
|
59
|
+
end repeat
|
|
60
|
+
end repeat
|
|
61
|
+
return "not_found"
|
|
62
|
+
end tell`;
|
|
63
|
+
const result = runAppleScript(script);
|
|
64
|
+
return result === "ok";
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Search all iTerm2 sessions for one whose name contains "claude" (case-insensitive).
|
|
68
|
+
* The session name typically reflects the running process or tab title.
|
|
69
|
+
* Returns the session ID if found, null otherwise.
|
|
70
|
+
*/
|
|
71
|
+
function findClaudeSession() {
|
|
72
|
+
// Get all sessions as "id\tname" lines
|
|
73
|
+
const script = `
|
|
74
|
+
tell application "iTerm2"
|
|
75
|
+
set output to ""
|
|
76
|
+
repeat with aWindow in windows
|
|
77
|
+
repeat with aTab in tabs of aWindow
|
|
78
|
+
repeat with aSession in sessions of aTab
|
|
79
|
+
set sessionId to id of aSession
|
|
80
|
+
set sessionName to name of aSession
|
|
81
|
+
set output to output & sessionId & tab & sessionName & linefeed
|
|
82
|
+
end repeat
|
|
83
|
+
end repeat
|
|
84
|
+
end repeat
|
|
85
|
+
return output
|
|
86
|
+
end tell`;
|
|
87
|
+
const result = runAppleScript(script);
|
|
88
|
+
if (!result)
|
|
89
|
+
return null;
|
|
90
|
+
const lines = result.split("\n").filter(Boolean);
|
|
91
|
+
for (const line of lines) {
|
|
92
|
+
const tabIdx = line.indexOf("\t");
|
|
93
|
+
if (tabIdx < 0)
|
|
94
|
+
continue;
|
|
95
|
+
const id = line.substring(0, tabIdx);
|
|
96
|
+
const name = line.substring(tabIdx + 1).toLowerCase();
|
|
97
|
+
// Match Claude Code in the tab title (covers "claude", "(claude)", "Claude Code")
|
|
98
|
+
if (name.includes("claude")) {
|
|
99
|
+
process.stderr.write(`[whazaa-watch] Found claude session: ${id} ("${line.substring(tabIdx + 1)}")\n`);
|
|
100
|
+
return id;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Check if iTerm2 is running.
|
|
107
|
+
*/
|
|
108
|
+
function isItermRunning() {
|
|
109
|
+
const result = spawnSync("pgrep", ["-x", "iTerm2"], {
|
|
110
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
111
|
+
timeout: 3_000,
|
|
112
|
+
});
|
|
113
|
+
return result.status === 0;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Create a new iTerm2 tab, cd to home, run `claude`, and return the new session ID.
|
|
117
|
+
*
|
|
118
|
+
* The `claude` command is executed via the shell, so it resolves whatever the user
|
|
119
|
+
* has configured — alias, function, or PATH binary. No hardcoded paths.
|
|
120
|
+
*
|
|
121
|
+
* Returns the session ID of the new tab, or null on failure.
|
|
122
|
+
*/
|
|
123
|
+
function createClaudeSession() {
|
|
124
|
+
const home = homedir();
|
|
125
|
+
// If iTerm2 isn't running, launch it first
|
|
126
|
+
if (!isItermRunning()) {
|
|
127
|
+
process.stderr.write("[whazaa-watch] iTerm2 not running, launching...\n");
|
|
128
|
+
spawnSync("open", ["-a", "iTerm"], { timeout: 10_000 });
|
|
129
|
+
// Wait for iTerm2 to be ready
|
|
130
|
+
for (let i = 0; i < 10; i++) {
|
|
131
|
+
spawnSync("sleep", ["1"]);
|
|
132
|
+
if (isItermRunning())
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
// Create new tab and get its session ID
|
|
137
|
+
const createScript = `
|
|
138
|
+
tell application "iTerm2"
|
|
139
|
+
tell current window
|
|
140
|
+
set newTab to (create tab with default profile)
|
|
141
|
+
tell current session of newTab
|
|
142
|
+
write text "cd ${home}"
|
|
143
|
+
delay 0.5
|
|
144
|
+
write text "claude"
|
|
145
|
+
return id
|
|
146
|
+
end tell
|
|
147
|
+
end tell
|
|
148
|
+
end tell`;
|
|
149
|
+
const sessionId = runAppleScript(createScript);
|
|
150
|
+
if (!sessionId) {
|
|
151
|
+
process.stderr.write("[whazaa-watch] Failed to create new iTerm2 tab\n");
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
process.stderr.write(`[whazaa-watch] Created new claude session: ${sessionId}\n`);
|
|
155
|
+
// Wait for Claude Code to start up (it takes a few seconds)
|
|
156
|
+
process.stderr.write("[whazaa-watch] Waiting for Claude Code to start...\n");
|
|
157
|
+
spawnSync("sleep", ["8"]);
|
|
158
|
+
return sessionId;
|
|
159
|
+
}
|
|
160
|
+
// --- Main loop ---------------------------------------------------------------
|
|
161
|
+
export async function watch(rawSessionId) {
|
|
162
|
+
// Strip the iTerm2 prefix (e.g. "w1t1p0:GUID" → "GUID")
|
|
163
|
+
let activeSessionId = rawSessionId.includes(":")
|
|
164
|
+
? rawSessionId.split(":").pop()
|
|
165
|
+
: rawSessionId;
|
|
166
|
+
const config = resolveConfig(activeSessionId);
|
|
167
|
+
// Ensure log file exists and is empty
|
|
168
|
+
writeFileSync(config.logFile, "");
|
|
169
|
+
console.log(`Whazaa Watch`);
|
|
170
|
+
console.log(` Session: ${activeSessionId}`);
|
|
171
|
+
console.log(` Log file: ${config.logFile}`);
|
|
172
|
+
console.log(` Interval: ${config.pollInterval / 1_000}s`);
|
|
173
|
+
console.log(` Mode: Smart (auto-find/create claude sessions)`);
|
|
174
|
+
console.log(`\nWaiting for messages...\n`);
|
|
175
|
+
let seen = 0;
|
|
176
|
+
let consecutiveFailures = 0;
|
|
177
|
+
// Graceful shutdown
|
|
178
|
+
const cleanup = (signal) => {
|
|
179
|
+
console.log(`\n[whazaa-watch] ${signal} received. Stopping.`);
|
|
180
|
+
process.exit(0);
|
|
181
|
+
};
|
|
182
|
+
process.on("SIGINT", () => cleanup("SIGINT"));
|
|
183
|
+
process.on("SIGTERM", () => cleanup("SIGTERM"));
|
|
184
|
+
/**
|
|
185
|
+
* Smart delivery: try to type into a session, with fallback chain.
|
|
186
|
+
* 1. Try active session
|
|
187
|
+
* 2. Find any claude session
|
|
188
|
+
* 3. Create new claude session
|
|
189
|
+
*/
|
|
190
|
+
function deliverMessage(text) {
|
|
191
|
+
// Attempt 1: try current active session
|
|
192
|
+
if (typeIntoSession(activeSessionId, text)) {
|
|
193
|
+
consecutiveFailures = 0;
|
|
194
|
+
return true;
|
|
195
|
+
}
|
|
196
|
+
process.stderr.write(`[whazaa-watch] Session ${activeSessionId} not found. Searching for claude...\n`);
|
|
197
|
+
// Attempt 2: find any existing claude session
|
|
198
|
+
const found = findClaudeSession();
|
|
199
|
+
if (found) {
|
|
200
|
+
activeSessionId = found;
|
|
201
|
+
process.stderr.write(`[whazaa-watch] Retargeted to session: ${activeSessionId}\n`);
|
|
202
|
+
if (typeIntoSession(activeSessionId, text)) {
|
|
203
|
+
consecutiveFailures = 0;
|
|
204
|
+
return true;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
// Attempt 2b: retry after a short delay (AppleScript may need time after launchd start)
|
|
208
|
+
process.stderr.write("[whazaa-watch] Retrying session search after delay...\n");
|
|
209
|
+
spawnSync("sleep", ["2"]);
|
|
210
|
+
const retryFound = findClaudeSession();
|
|
211
|
+
if (retryFound) {
|
|
212
|
+
activeSessionId = retryFound;
|
|
213
|
+
process.stderr.write(`[whazaa-watch] Retargeted to session: ${activeSessionId}\n`);
|
|
214
|
+
if (typeIntoSession(activeSessionId, text)) {
|
|
215
|
+
consecutiveFailures = 0;
|
|
216
|
+
return true;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
// Attempt 3: create a new claude session
|
|
220
|
+
process.stderr.write("[whazaa-watch] No claude session found. Starting new one...\n");
|
|
221
|
+
const created = createClaudeSession();
|
|
222
|
+
if (created) {
|
|
223
|
+
activeSessionId = created;
|
|
224
|
+
if (typeIntoSession(activeSessionId, text)) {
|
|
225
|
+
consecutiveFailures = 0;
|
|
226
|
+
return true;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
// All attempts failed
|
|
230
|
+
consecutiveFailures++;
|
|
231
|
+
process.stderr.write(`[whazaa-watch] Failed to deliver message (attempt ${consecutiveFailures})\n`);
|
|
232
|
+
return false;
|
|
233
|
+
}
|
|
234
|
+
// Poll loop
|
|
235
|
+
setInterval(() => {
|
|
236
|
+
if (!existsSync(config.logFile))
|
|
237
|
+
return;
|
|
238
|
+
let content;
|
|
239
|
+
try {
|
|
240
|
+
content = readFileSync(config.logFile, "utf-8");
|
|
241
|
+
}
|
|
242
|
+
catch {
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
const lines = content.split("\n").filter(Boolean);
|
|
246
|
+
if (lines.length <= seen)
|
|
247
|
+
return;
|
|
248
|
+
const newLines = lines.slice(seen);
|
|
249
|
+
for (const line of newLines) {
|
|
250
|
+
// Strip timestamp prefix: "[2026-02-21T18:43:04.000Z] message"
|
|
251
|
+
const msg = line.replace(/^\[[^\]]*\]\s*/, "");
|
|
252
|
+
if (!msg)
|
|
253
|
+
continue;
|
|
254
|
+
console.log(`[whazaa-watch] → ${msg}`);
|
|
255
|
+
deliverMessage(msg);
|
|
256
|
+
}
|
|
257
|
+
seen = lines.length;
|
|
258
|
+
}, config.pollInterval);
|
|
259
|
+
// Keep process alive
|
|
260
|
+
await new Promise(() => { });
|
|
261
|
+
}
|
|
262
|
+
//# sourceMappingURL=watch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../src/watch.ts"],"names":[],"mappings":"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"}
|
package/dist/whatsapp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whatsapp.d.ts","sourceRoot":"","sources":["../src/whatsapp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"whatsapp.d.ts","sourceRoot":"","sources":["../src/whatsapp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAiBH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,8DAA8D;IAC9D,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,0DAA0D;IAC1D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,wEAAwE;IACxE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,8CAA8C;IAC9C,UAAU,EAAE,OAAO,CAAC;CACrB;AAwPD;;;;GAIG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAQhD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAOnD;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAO7C;AAED;;;;GAIG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CA4BlD;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,cAAc,CAE1C;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BhE;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,aAAa,EAAE,CAI/C;AAgBD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAkB3E"}
|
package/dist/whatsapp.js
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* - Markdown -> WhatsApp format conversion
|
|
10
10
|
* - All Baileys output silenced to avoid MCP stdio pollution
|
|
11
11
|
*/
|
|
12
|
+
import { appendFileSync } from "node:fs";
|
|
12
13
|
import makeWASocket, { DisconnectReason, fetchLatestBaileysVersion, makeCacheableSignalKeyStore, useMultiFileAuthState, } from "@whiskeysockets/baileys";
|
|
13
14
|
import pino from "pino";
|
|
14
15
|
import { resolveAuthDir, printQR } from "./auth.js";
|
|
@@ -194,11 +195,16 @@ async function connect() {
|
|
|
194
195
|
continue;
|
|
195
196
|
}
|
|
196
197
|
if (body) {
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
timestamp: Number(msg.messageTimestamp) * 1_000,
|
|
200
|
-
});
|
|
198
|
+
const ts = Number(msg.messageTimestamp) * 1_000;
|
|
199
|
+
messageQueue.push({ body, timestamp: ts });
|
|
201
200
|
notifyMessageWaiters();
|
|
201
|
+
// Write to signal file so background watchers can detect new messages
|
|
202
|
+
const signalFile = "/tmp/whazaa-incoming.log";
|
|
203
|
+
const line = `[${new Date(ts).toISOString()}] ${body}\n`;
|
|
204
|
+
try {
|
|
205
|
+
appendFileSync(signalFile, line);
|
|
206
|
+
}
|
|
207
|
+
catch { /* ignore */ }
|
|
202
208
|
}
|
|
203
209
|
}
|
|
204
210
|
});
|
package/dist/whatsapp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whatsapp.js","sourceRoot":"","sources":["../src/whatsapp.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"whatsapp.js","sourceRoot":"","sources":["../src/whatsapp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAIzC,OAAO,YAAY,EAAE,EACnB,gBAAgB,EAChB,yBAAyB,EACzB,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpD,gFAAgF;AAEhF,yDAAyD;AACzD,IAAI,IAAI,GAA2C,IAAI,CAAC;AAExD,6DAA6D;AAC7D,MAAM,YAAY,GAAoB,EAAE,CAAC;AAEzC,wEAAwE;AACxE,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;AAEzC,oDAAoD;AACpD,IAAI,MAAM,GAAmB;IAC3B,SAAS,EAAE,KAAK;IAChB,WAAW,EAAE,IAAI;IACjB,OAAO,EAAE,IAAI;IACb,OAAO,EAAE,IAAI;IACb,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF,2BAA2B;AAC3B,IAAI,cAAc,GAAyC,IAAI,CAAC;AAChE,IAAI,iBAAiB,GAAG,CAAC,CAAC;AAC1B,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAEtC,8DAA8D;AAC9D,IAAI,oBAAoB,GAAG,KAAK,CAAC;AAEjC,oFAAoF;AACpF,IAAI,WAAW,GAAwB,IAAI,CAAC;AAE5C,qEAAqE;AACrE,IAAI,gBAAgB,GAA2C,IAAI,CAAC;AAEpE,qEAAqE;AACrE,IAAI,aAAa,GAAwB,IAAI,CAAC;AAE9C,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AAEzC;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,IAAY;IACtC,OAAO,IAAI;SACR,OAAO,CAAC,iBAAiB,EAAE,MAAM,CAAC;SAClC,OAAO,CAAC,uCAAuC,EAAE,MAAM,CAAC;SACxD,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB;IACxB,IAAI,oBAAoB;QAAE,OAAO;IACjC,IAAI,cAAc;QAAE,OAAO,CAAC,oBAAoB;IAEhD,iBAAiB,EAAE,CAAC;IACpB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACpB,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,iBAAiB,GAAG,CAAC,CAAC,EAC1C,sBAAsB,CACvB,CAAC;IAEF,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,4BAA4B,KAAK,GAAG,KAAK,cAAc,iBAAiB,QAAQ,CACjF,CAAC;IAEF,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;QAC/B,cAAc,GAAG,IAAI,CAAC;QACtB,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,GAAG,IAAI,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,KAAK,CAAC,CAAC;AACZ,CAAC;AAED,gFAAgF;AAEhF;;;;;GAKG;AACH,KAAK,UAAU,OAAO;IACpB,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC7E,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,yBAAyB,EAAE,CAAC;IAEtD,IAAI,GAAG,YAAY,CAAC;QAClB,IAAI,EAAE;YACJ,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,IAAI,EAAE,2BAA2B,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC;SAC1D;QACD,OAAO;QACP,yDAAyD;QACzD,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC;QACnC,iBAAiB,EAAE,KAAK,EAAE,2CAA2C;QACrE,eAAe,EAAE,KAAK;QACtB,mBAAmB,EAAE,KAAK;QAC1B,MAAM;KACP,CAAC,CAAC;IAEH,gDAAgD;IAChD,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAEtC,8BAA8B;IAC9B,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,EAAE;QACrE,yCAAyC;QACzC,IAAI,EAAE,EAAE,CAAC;YACP,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;YACzB,OAAO,CAAC,EAAE,CAAC,CAAC;YAEZ,wEAAwE;YACxE,IAAI,WAAW,EAAE,CAAC;gBAChB,WAAW,EAAE,CAAC;gBACd,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;QACH,CAAC;QAED,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;YAC1B,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;YAC1B,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;YACxB,iBAAiB,GAAG,CAAC,CAAC;YAEtB,0DAA0D;YAC1D,MAAM,GAAG,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,IAAI,CAAC;YACnC,IAAI,GAAG,EAAE,CAAC;gBACR,4EAA4E;gBAC5E,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/C,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC;gBAC5B,MAAM,CAAC,OAAO,GAAG,GAAG,MAAM,iBAAiB,CAAC;YAC9C,CAAC;YACD,6DAA6D;YAC7D,MAAM,GAAG,GAAI,IAAI,EAAE,IAA2C,EAAE,GAAyB,CAAC;YAC1F,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC;YACvB,CAAC;YAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,+BAA+B,MAAM,CAAC,WAAW,IAAI,SAAS,IAAI,CACnE,CAAC;YAEF,gDAAgD;YAChD,IAAI,WAAW,EAAE,CAAC;gBAChB,WAAW,EAAE,CAAC;gBACd,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;YAED,2DAA2D;YAC3D,IAAI,gBAAgB,EAAE,CAAC;gBACrB,gBAAgB,CAAC,MAAM,CAAC,WAAW,IAAI,SAAS,CAAC,CAAC;gBAClD,gBAAgB,GAAG,IAAI,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;YAC3B,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;YAEzB,MAAM,UAAU,GACb,cAAc,EAAE,KAA8C,EAAE,MAAM;gBACrE,EAAE,UAAU,CAAC;YAEjB,IAAI,UAAU,KAAK,gBAAgB,CAAC,SAAS,EAAE,CAAC;gBAC9C,gEAAgE;gBAChE,oBAAoB,GAAG,IAAI,CAAC;gBAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,6DAA6D,CAC9D,CAAC;gBAEF,IAAI,aAAa,EAAE,CAAC;oBAClB,aAAa,EAAE,CAAC;oBAChB,aAAa,GAAG,IAAI,CAAC;gBACvB,CAAC;gBAED,IAAI,WAAW,EAAE,CAAC;oBAChB,WAAW,EAAE,CAAC;oBACd,WAAW,GAAG,IAAI,CAAC;gBACrB,CAAC;gBACD,OAAO;YACT,CAAC;YAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACxE,iBAAiB,EAAE,CAAC;QACtB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,gEAAgE;IAChE,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,iBAAiB,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;QACnD,2EAA2E;QAC3E,8DAA8D;QAE9D,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC;YACrC,MAAM,IAAI,GACR,GAAG,CAAC,OAAO,EAAE,YAAY;gBACzB,GAAG,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI;gBACtC,IAAI,CAAC;YAEP,2EAA2E;YAC3E,0DAA0D;YAC1D,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC/D,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;YACtC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACpE,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAChE,MAAM,UAAU,GACd,CAAC,MAAM,CAAC,OAAO,IAAI,aAAa,KAAK,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACjE,CAAC,OAAO,IAAI,aAAa,KAAK,OAAO,CAAC;gBACtC,CAAC,UAAU,IAAI,SAAS,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;YAEpD,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,SAAS;YACX,CAAC;YAED,kDAAkD;YAClD,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC;YAC1B,IAAI,KAAK,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC7B,SAAS;YACX,CAAC;YAED,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC;gBAChD,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC3C,oBAAoB,EAAE,CAAC;gBAEvB,sEAAsE;gBACtE,MAAM,UAAU,GAAG,0BAA0B,CAAC;gBAC9C,MAAM,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,IAAI,IAAI,CAAC;gBACzD,IAAI,CAAC;oBAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,gFAAgF;AAEhF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAClC,WAAW,GAAG,OAAO,CAAC;QACtB,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAAC;YACtD,OAAO,EAAE,CAAC,CAAC,gDAAgD;QAC7D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;IAC/B,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QAC3C,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;QACrC,gBAAgB,GAAG,OAAO,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,IAAI,oBAAoB,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IACD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACnC,aAAa,GAAG,OAAO,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,oBAAoB,GAAG,KAAK,CAAC;IAC7B,iBAAiB,GAAG,CAAC,CAAC;IAEtB,IAAI,cAAc,EAAE,CAAC;QACnB,YAAY,CAAC,cAAc,CAAC,CAAC;QAC7B,cAAc,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;QACD,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;IAED,MAAM,GAAG;QACP,SAAS,EAAE,KAAK;QAChB,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,KAAK;KAClB,CAAC;IAEF,6DAA6D;IAC7D,MAAM,OAAO,EAAE,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAe;IAC/C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CACb,0DAA0D,CAC3D,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhE,iDAAiD;IACjD,IAAI,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QACpB,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvB,2DAA2D;QAC3D,UAAU,CAAC,GAAG,EAAE;YACd,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC,EAAE,MAAM,CAAC,CAAC;IACb,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,QAAQ,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;IACnC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IACxB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,qDAAqD;AACrD,IAAI,cAAc,GAA2C,EAAE,CAAC;AAEhE,oDAAoD;AACpD,SAAS,oBAAoB;IAC3B,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzD,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACzC,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;YAC9B,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,oDAAoD;IACpD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,IAAI,OAAO,CAAkB,CAAC,OAAO,EAAE,EAAE;QAC9C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,gCAAgC;YAChC,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;YAC7D,OAAO,CAAC,EAAE,CAAC,CAAC;QACd,CAAC,EAAE,SAAS,CAAC,CAAC;QAEd,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3B,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,gFAAgF;AAEhF,SAAS,QAAQ,CAAC,MAAc;IAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,MAAM,sBAAsB,CAAC,CAAC;IAExE,IAAI,cAAc,EAAE,CAAC;QACnB,YAAY,CAAC,cAAc,CAAC,CAAC;QAC7B,cAAc,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC/C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC"}
|