wechat-claude-sessions 1.3.0 โ 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +70 -2
- package/README.md +48 -2
- package/dist/daemon.js +84 -14
- package/dist/daemon.js.map +1 -1
- package/dist/file-lock.d.ts +1 -0
- package/dist/file-lock.js +47 -0
- package/dist/file-lock.js.map +1 -0
- package/dist/i18n.d.ts +2 -0
- package/dist/i18n.js +12 -6
- package/dist/i18n.js.map +1 -1
- package/dist/ilink.d.ts +5 -4
- package/dist/ilink.js +77 -10
- package/dist/ilink.js.map +1 -1
- package/dist/inbox.js +4 -33
- package/dist/inbox.js.map +1 -1
- package/dist/outbox.d.ts +13 -0
- package/dist/outbox.js +64 -0
- package/dist/outbox.js.map +1 -0
- package/dist/paths.d.ts +2 -0
- package/dist/paths.js +7 -0
- package/dist/paths.js.map +1 -1
- package/dist/quote.d.ts +37 -0
- package/dist/quote.js +348 -0
- package/dist/quote.js.map +1 -0
- package/dist/routing.d.ts +5 -0
- package/dist/routing.js +14 -0
- package/dist/routing.js.map +1 -1
- package/dist/server.js +38 -4
- package/dist/server.js.map +1 -1
- package/dist/types.d.ts +11 -0
- package/package.json +1 -1
package/README.en.md
CHANGED
|
@@ -77,9 +77,10 @@ Send these from WeChat to control routing:
|
|
|
77
77
|
| Command | Description |
|
|
78
78
|
|---------|-------------|
|
|
79
79
|
| `/sessions` or `/ls` | List active Claude Code sessions (`๐` = monitoring, actively reading messages; `๐ bound` = your messages go here; `๐ฅ default` = plain messages go here). Two lines per entry: `๐ 5. fintary:main (fintary-69) ๐` and `dir: fintary/data-sync-field-mapping ยท active 3h ago`. The leading glyph is ๐ (bound) or ๐ฅ (default receiver) on the one row plain messages go to, and โ/โ (active in the last 2 min or not) elsewhere, so "where do my messages land" reads from the left column; same-named sessions carry the Claude Code cross-session name in parentheses; the directory is where Claude currently is (a worktree as `repo/worktree`). Idle sessions follow under `Idle (N):`. Two legend lines under the list: what the receiver glyph means, and how to `/s` (the example uses a number that is actually listed). Ends with a labelled version paragraph, `๐ฆ Running version: wechat-claude @ v1.2.0`; a dev build shows its full version (e.g. `v1.2.0-dev.session-naming.12.2f0809f`) so test builds can be told apart. When npm has a newer `latest`, an upgrade notice follows (npm is asked at most every 6 hours; the last answer is reused if it can't be reached, and a failed attempt is not retried for 30 minutes) |
|
|
80
|
-
| `/s <number> <message>` | Send message to session by its number. Numbers are stable for a session's lifetime โ they never shift when other sessions open or close (retired numbers aren't reused; numbering resets once all sessions are gone) |
|
|
80
|
+
| `/s <number> <message>`<br>`/<number> <message>` | Send message to session by its number (`/3 hi` is short for `/s 3 hi`; the shorthand is digits-only, so a mistyped command is never delivered as if the typo were a session name). Numbers are stable for a session's lifetime โ they never shift when other sessions open or close (retired numbers aren't reused; numbering resets once all sessions are gone) |
|
|
81
81
|
| `/use <number\|name\|pid>` | Bind your chat to one session: every plain message goes straight to it (survives daemon restarts). `/use off` unbinds; `/use` shows the current binding. Closing the bound session clears the binding automatically |
|
|
82
82
|
| `/s <name> <message>` | Send message to session by name (fuzzy match; if ambiguous, prefers the monitored / most recently active one) |
|
|
83
|
+
| *(quote a reply, then type)* | **Quote** a session's reply in WeChat and write your answer: the message goes to the session that wrote the quoted reply โ no `/s`, and your binding is left alone (see [Quoted replies](#quoted-replies)) |
|
|
83
84
|
| `/s <pid> <message>` | Send message to session by pid (duplicate names are listed as `name#pid`) |
|
|
84
85
|
| `/run [--safe] [dir] <task>` | Start a new Claude session in tmux to run a task. The launched session is instructed to send its result back to WeChat. Runs unattended by default (`--dangerously-skip-permissions`); pass `--safe` for `--permission-mode acceptEdits`, where bash commands wait for confirmation at the computer. The first unattended run accepts skip-permissions mode in `~/.claude.json` on your behalf โ a detached session cannot answer Claude Code's one-time dialog โ and says so in its reply; see [SECURITY.md](SECURITY.md) |
|
|
85
86
|
| `/runs` | List running `/run` task sessions |
|
|
@@ -207,6 +208,7 @@ with `SendMessage`, tells you on WeChat which session it went to and how to
|
|
|
207
208
|
โโโ session.json # ilink bot token (persisted login)
|
|
208
209
|
โโโ config.json # optional settings (e.g. repoDirs for /run)
|
|
209
210
|
โโโ bindings.json # /use bindings (WeChat user -> session)
|
|
211
|
+
โโโ outbox.json # recent replies per session (how a quoted reply finds its session; 24h; written via temp file + rename, so a reader never sees a partial file)
|
|
210
212
|
โโโ session-numbers.json # stable session number registry
|
|
211
213
|
โโโ media/ # downloaded incoming images (7-day retention)
|
|
212
214
|
โโโ context_tokens.json # shared context tokens (daemon โ MCP server)
|
|
@@ -270,6 +272,8 @@ server's pid.
|
|
|
270
272
|
2. Incoming messages are parsed and routed:
|
|
271
273
|
- Commands like `/sessions`, `/run`, `/close`, `/use` are handled by the daemon
|
|
272
274
|
- `/s <target> <msg>` routes to a specific session's inbox
|
|
275
|
+
- A message quoting a session's reply goes to that session (see
|
|
276
|
+
[Quoted replies](#quoted-replies))
|
|
273
277
|
- A plain message goes to your bound session (`/use`), else the most
|
|
274
278
|
recently active session that is `๐ monitoring`
|
|
275
279
|
3. When a message is routed, the daemon starts a "typing" indicator on WeChat
|
|
@@ -290,11 +294,75 @@ how to answer it directly:
|
|
|
290
294
|
โโ from naming (#4) ยท reply directly: /s 4 <message>
|
|
291
295
|
```
|
|
292
296
|
|
|
293
|
-
The number is the stable one from `/ls`, fixed for the session's lifetime.
|
|
297
|
+
The number is the stable one from `/ls`, fixed for the session's lifetime. It
|
|
298
|
+
doubles as the fallback for [quoted replies](#quoted-replies): a quote that kept
|
|
299
|
+
the footer names its session outright. When
|
|
294
300
|
several sessions answer into the same chat you no longer have to `/ls` and guess
|
|
295
301
|
who said what. To turn it off, add `"replyFooter": false` to
|
|
296
302
|
`~/.claude/wechat/config.json`.
|
|
297
303
|
|
|
304
|
+
## Quoted replies
|
|
305
|
+
|
|
306
|
+
With several sessions talking into one WeChat chat, `/s <number>` is precise but
|
|
307
|
+
wordy. The quick way is WeChat's own **quote**: long-press (or right-click) a
|
|
308
|
+
session's reply โ Quote โ type your answer. That message is delivered to the
|
|
309
|
+
session that wrote the quoted reply.
|
|
310
|
+
|
|
311
|
+
- It overrides both your binding (`/use`) and default routing, but **only for
|
|
312
|
+
that one message** โ quoting is "just this one, to you", not a rebinding
|
|
313
|
+
- The receiving session is shown a one-line excerpt of what you quoted, so a
|
|
314
|
+
reply like "make it blue" arrives with the context it needs
|
|
315
|
+
- Quoting a command's output (an `/ls` listing, say) routes nowhere special; the
|
|
316
|
+
usual rules apply
|
|
317
|
+
- Image replies can be quoted too (the send's message ids are recorded with it);
|
|
318
|
+
the excerpt shows your caption, or `[image]` when there was none
|
|
319
|
+
- Quoting *and* `/s <number>` together is fine: the explicit target wins, and the
|
|
320
|
+
quoted message still comes along as context
|
|
321
|
+
- If the session that wrote the quoted message is gone, WeChat tells you so and
|
|
322
|
+
the message is routed normally
|
|
323
|
+
|
|
324
|
+
**How it is recognised**: WeChat's quote is a `ref_msg` carrying the quoted
|
|
325
|
+
message's **id and timestamp โ and no text at all**. The send API does hand back
|
|
326
|
+
the id of each message we send, so whenever a session replies the MCP server
|
|
327
|
+
records that id along with the text in `outbox.json` (session id, name, text,
|
|
328
|
+
message ids โ kept 24 hours, 200 entries at most), and an incoming quote is
|
|
329
|
+
looked up by id.
|
|
330
|
+
|
|
331
|
+
(That id is 19 digits, past 2^53, so `JSON.parse` rounds its last digits away โ
|
|
332
|
+
it is read out of the raw response text with a regex instead. Once parsed it
|
|
333
|
+
cannot be recovered.)
|
|
334
|
+
|
|
335
|
+
Each record also keeps Claude Code's own name for the session. A session id is a
|
|
336
|
+
pid, and `/mcp` hands out a new one, but it is still the session you were
|
|
337
|
+
talking to โ that name follows it across the reconnect. The WeChat routing name
|
|
338
|
+
is deliberately *not* used for this: it is derived from repo and branch, so two
|
|
339
|
+
sessions in one checkout share it and an exited session's name passes to the
|
|
340
|
+
next one opened there โ following it would answer a stranger. When the identity
|
|
341
|
+
doesn't check out, the quote is reported as belonging to a session that's gone.
|
|
342
|
+
|
|
343
|
+
Match order: the quoted message's id, then the quoted text (some clients put the
|
|
344
|
+
quote in the message text; a truncated one matches on its prefix), then the
|
|
345
|
+
[reply footer](#reply-footer) inside that text, and finally a send whose time is
|
|
346
|
+
within 15 seconds of when the quoted message was created. So it still works with
|
|
347
|
+
the footer turned off (`"replyFooter": false`), or for a reply sent by a version
|
|
348
|
+
that recorded no id.
|
|
349
|
+
|
|
350
|
+
The footer is trusted for the **name** it carries, not its `#number`: retired
|
|
351
|
+
numbers are never reused, but the counter restarts at 1 once every session is
|
|
352
|
+
gone, so a day-old `#3` can lead to a session that never sent that message. When
|
|
353
|
+
the name doesn't check out, the quote is reported as belonging to a session
|
|
354
|
+
that's gone rather than guessed at. The timestamp is likewise a last resort,
|
|
355
|
+
used only when the reply recorded no id at all โ so quoting your own message
|
|
356
|
+
can't hand the reply to whichever session happened to be talking at the time.
|
|
357
|
+
|
|
358
|
+
Since WeChat sends no quoted text, the "you quoted this" excerpt handed to the
|
|
359
|
+
session is reconstructed from the text kept in `outbox.json`.
|
|
360
|
+
|
|
361
|
+
If a quote doesn't route where you expect, run the daemon with
|
|
362
|
+
`WECHAT_DEBUG_RAW=1`: every incoming message is dumped raw to
|
|
363
|
+
`~/.claude/wechat/raw.log`, so you can see what your WeChat client actually
|
|
364
|
+
sent.
|
|
365
|
+
|
|
298
366
|
## Language
|
|
299
367
|
|
|
300
368
|
Bot replies default to Chinese (the WeChat audience). To switch to English, set
|
package/README.md
CHANGED
|
@@ -70,9 +70,10 @@ wechat-claude daemon # ๅๅฐ่ฟ่ก / ไบค็ปไฝ ่ชๅทฑ็่ฟ็จ็ฎก็
|
|
|
70
70
|
| ๅฝไปค | ่ฏดๆ |
|
|
71
71
|
|------|------|
|
|
72
72
|
| `/sessions` ๆ `/ls` | ๅๅบๆดป่ท็ Claude Code session๏ผ`๐` = ็ๆงไธญ๏ผๆญฃๅจๅฎๆถ่ฏปๅๆถๆฏ๏ผ`๐ ๅทฒ็ปๅฎ` = ไฝ ็ๆถๆฏ้ฝๅๅฐ่ฟ้๏ผ`๐ฅ ้ป่ฎคๆฅๆถ` = ไธๅธฆๅ็ผ็ๆถๆฏๅๅฐ่ฟ้๏ผใๆฏๆกไธค่ก๏ผ`๐ 5. fintary:main (fintary-69) ๐` ๅ `็ฎๅฝ: fintary/data-sync-field-mapping ยท 3 ๅฐๆถๅๆดป่ท`ใ่ก้ฆๆฏ ๐๏ผๅทฒ็ปๅฎ๏ผๆ ๐ฅ๏ผ้ป่ฎคๆฅๆถ๏ผ๏ผๅ
ถไฝ่กๆฏ โ/โ๏ผ2 ๅ้ๅ
ๆฏๅฆๆๅจ้๏ผ๏ผๆไปฅ"ๆถๆฏๅๅฐๅช"ๅจๅทฆ่พนไธๅๅฐฑ่ฝ็ๅฐ๏ผๅๅ session ๅจๅๅญๅๆฌๅท้ๅ Claude Code ่ทจไผ่ฏๅ๏ผ็ฎๅฝๆฏ Claude ๅฝๅๆๅจ็ฎๅฝ๏ผworktree ๆพ็คบไธบ `ไปๅบ/worktreeๅ`๏ผใ็ฉบ้ฒ็ๅฆ่ตท `็ฉบ้ฒ (N):` ไธๆฎตใๅ่กจไธไธค่กๅพไพ๏ผๆฅๆถๆ ่ฎฐ็ๅซไน๏ผไปฅๅ `/s` ็จๆณ๏ผ็คบไพ็จๅ่กจ้็ๅฎๅญๅจ็็ผๅท๏ผใๆซๅฐพไธๆฎตๆฏๅฝๅ็ๆฌๆ ็ญพ๏ผ`๐ฆ ๅฝๅ็ๆฌ๏ผwechat-claude @ v1.2.0`๏ผ้ขๅๅธๆๅปบๆพ็คบๅฎๆด็ๆฌๅท๏ผๅฆ `v1.2.0-dev.session-naming.12.2f0809f`๏ผ๏ผๅฅฝๅบๅๆฏๅชไธชๆต่ฏๆๅปบใๅฆๆ npm ไธๆๆดๆฐ็ `latest`๏ผๅ้ไธๆฎตๅ็บงๆ็คบ๏ผๆๅคๆฏ 6 ๅฐๆถๆฅไธๆฌก npm๏ผๆฅไธๅฐๅฐฑๆฒฟ็จไธๆฌก็ปๆ๏ผๅคฑ่ดฅๅ 30 ๅ้ๅ
ไธๅ้่ฏ๏ผ |
|
|
73
|
-
| `/s <็ผๅท> <ๆถๆฏ>` | ๆ็ผๅทๅๆถๆฏ็ปๆไธช session
|
|
73
|
+
| `/s <็ผๅท> <ๆถๆฏ>`<br>`/<็ผๅท> <ๆถๆฏ>` | ๆ็ผๅทๅๆถๆฏ็ปๆไธช session๏ผ`/3 ไฝ ๅฅฝ` ๆฏ `/s 3 ไฝ ๅฅฝ` ็็ฎๅ๏ผ็ฎๅๅช่ฎค็บฏๆฐๅญ๏ผๆไปฅๆ้็ๅฝไปคไธไผ่ขซๅฝๆ session ๅๆ้ๅบๅป๏ผใ็ผๅทๅจ session ็ๅฝๅจๆๅ
ๅบๅฎไธๅ โโ ๅ
ถไป session ๅผๅฏๆๅ
ณ้ญ้ฝไธไผ่ฎฉๅฎ็งปไฝ๏ผ้ๅฝน็็ผๅทไธไผ่ขซๅค็จ๏ผๆๆ session ้ฝๆถๅคฑๅ็ผๅท้ๆฐ่ฎกๆฐ๏ผ |
|
|
74
74
|
| `/use <็ผๅท\|ๅๅญ\|pid>` | ๆไฝ ็่ๅคฉ็ปๅฎๅฐๆไธช session๏ผไนๅๆฏๆกไธๅธฆๅ็ผ็ๆถๆฏ้ฝ็ดๆฅๅ็ปๅฎ๏ผdaemon ้ๅฏๅไพ็ถๆๆ๏ผใ`/use off` ่งฃ็ป๏ผ`/use` ๆฅ็ๅฝๅ็ปๅฎใ่ขซ็ปๅฎ็ session ๅ
ณ้ญๆถไผ่ชๅจ่งฃ็ป |
|
|
75
75
|
| `/s <ๅๅญ> <ๆถๆฏ>` | ๆๅๅญๅๆถๆฏ๏ผๆจก็ณๅน้
๏ผๆๆญงไนๆถไผๅ
้ๆญฃๅจ็ๆง็ / ๆ่ฟๆดป่ท็๏ผ |
|
|
76
|
+
| *๏ผๅผ็จๆๆกๅๅคๅๆๅญ๏ผ* | ๅจๅพฎไฟก้**ๅผ็จ**ๆไธช session ็ๅๅค็ถๅ็ดๆฅๅไฝ ่ฆ่ฏด็่ฏ๏ผ่ฟๆกๆถๆฏๅฐฑไผๅ็ปๅ้ฃๆกๅๅค็ session โโ ไธ็จ `/s`๏ผไนไธ็จๆน็ปๅฎ๏ผ่ง[ๅผ็จๅๅค](#ๅผ็จๅๅค)๏ผ |
|
|
76
77
|
| `/s <pid> <ๆถๆฏ>` | ๆ pid ๅๆถๆฏ๏ผๅๅ็ไผไปฅ `ๅๅญ#pid` ๅฝขๅผๅๅบ๏ผ |
|
|
77
78
|
| `/run [--safe] [็ฎๅฝ] <ไปปๅก>` | ๅจ tmux ้่ตทไธไธชๆฐ็ Claude session ๆง่กไปปๅกใ่ขซๅฏๅจ็ session ไผ่ขซ่ฆๆฑๆ็ปๆๅๅๅพฎไฟกใ้ป่ฎคๆ ไบบๅผๅฎ่ฟ่ก๏ผ`--dangerously-skip-permissions`๏ผ๏ผๅ `--safe` ๅ็จ `--permission-mode acceptEdits`๏ผๆญคๆถ bash ๅฝไปคไผๅจ็ต่็ซฏ็ญๅพ
็กฎ่ฎคใ็ฌฌไธๆฌกๆ ไบบๅผๅฎ่ฟ่กๆถ๏ผไผๆฟไฝ ๅจ `~/.claude.json` ้ๆฅๅๅ
็กฎ่ฎคๆจกๅผ โโ detached ็ session ๆ ๆณๅ็ญ Claude Code ็ไธๆฌกๆงๅฏน่ฏๆก โโ ๅนถๅจๅๅค้่ฏดๆ๏ผ่ฏฆ่ง [SECURITY.md](SECURITY.md) |
|
|
78
79
|
| `/runs` | ๅๅบ่ฟ่กไธญ็ `/run` ไปปๅก session |
|
|
@@ -176,6 +177,7 @@ session ็จ `SendMessage` ๆพๅฎๆถ่ฆ็จ็๏ผ่ง `ListAgents`๏ผใ`wechat_sta
|
|
|
176
177
|
โโโ session.json # ilink ๆบๅจไบบ token๏ผๆไน
ๅ็ปๅฝ๏ผ
|
|
177
178
|
โโโ config.json # ๅฏ้้
็ฝฎ๏ผไพๅฆ /run ็จ็ repoDirs๏ผ
|
|
178
179
|
โโโ bindings.json # /use ็ปๅฎๅ
ณ็ณป๏ผๅพฎไฟก็จๆท -> session๏ผ
|
|
180
|
+
โโโ outbox.json # ๅ session ๆ่ฟๅๅบ็ๅๅค๏ผๅผ็จๅๅค้ ๅฎๅฎไฝ session๏ผ็ 24 ๅฐๆถ๏ผๅๅ
ฅ่ตฐไธดๆถๆไปถ+rename๏ผ่ฏป็ไบบไธไผ่ฏปๅฐๅๅฐไธๅ็ๅ
ๅฎน๏ผ
|
|
179
181
|
โโโ session-numbers.json # ็จณๅฎ session ็ผๅทๆณจๅ่กจ
|
|
180
182
|
โโโ media/ # ไธ่ฝฝ็ๅพ็๏ผไฟ็ 7 ๅคฉ๏ผ
|
|
181
183
|
โโโ context_tokens.json # ๅ
ฑไบซไธไธๆ token๏ผdaemon โ MCP server๏ผ
|
|
@@ -237,6 +239,7 @@ wechat-claude daemon restart
|
|
|
237
239
|
2. ๆถๅฐ็ๆถๆฏ่ขซ่งฃๆๅนถ่ทฏ็ฑ๏ผ
|
|
238
240
|
- `/sessions`ใ`/run`ใ`/close`ใ`/use` ่ฟ็ฑปๅฝไปค็ฑ daemon ่ชๅทฑๅค็
|
|
239
241
|
- `/s <็ฎๆ > <ๆถๆฏ>` ่ทฏ็ฑๅฐๆๅฎ session ็ inbox
|
|
242
|
+
- ๅผ็จๆไธช session ๅๅค็ๆถๆฏ๏ผๅ็ปๅ้ฃๆกๅๅค็ session๏ผ่ง[ๅผ็จๅๅค](#ๅผ็จๅๅค)๏ผ
|
|
240
243
|
- ไธๅธฆๅ็ผ็ๆถๆฏๅ็ปไฝ ็ปๅฎ็ session๏ผ`/use`๏ผ๏ผๅฆๅๅ็ปๆ่ฟๆดป่ทไธๅคไบ `๐ ็ๆงไธญ`
|
|
241
244
|
็้ฃไธช
|
|
242
245
|
3. ๆถๆฏ่ขซ่ทฏ็ฑๆถ๏ผdaemon ไผๅจๅพฎไฟกไธๆๅผ"ๆญฃๅจ่พๅ
ฅ"ๆ็คบ
|
|
@@ -255,10 +258,53 @@ session ๅๅฐๅพฎไฟก็ๆฏๆกๅๅค๏ผ`wechat_send_text`๏ผไปฅๅ `wechat_send_i
|
|
|
255
258
|
โโ ๆฅ่ช naming๏ผ#4๏ผยท ็ดๆฅๅๅค: /s 4 <ๆถๆฏ>
|
|
256
259
|
```
|
|
257
260
|
|
|
258
|
-
็ผๅทๅฐฑๆฏ `/ls` ้็็จณๅฎ็ผๅท๏ผๆดไธช session
|
|
261
|
+
็ผๅทๅฐฑๆฏ `/ls` ้็็จณๅฎ็ผๅท๏ผๆดไธช session ็ๅฝๅจๆๅ
ไธๅใๅฎๅๆถๆฏ[ๅผ็จๅๅค](#ๅผ็จๅๅค)
|
|
262
|
+
็ๅ
ๅบ็บฟ็ดข๏ผๅผ็จ้ๅธฆ็ๅฐพๆณจ๏ผdaemon ๅฐฑไธๅฎ่ฎคๅพๅบๆฏ่ฐ่ฏด็ใๅคไธช session ๅพๅไธไธช่ๅคฉ้
|
|
259
263
|
ๅๅคๆถ๏ผไธ็จๅ
`/ls` ๅ็ๆฏ่ฐ่ฏด็ใไธๆณ่ฆ็่ฏๅจ `~/.claude/wechat/config.json` ้ๅ
|
|
260
264
|
`"replyFooter": false`ใ
|
|
261
265
|
|
|
266
|
+
## ๅผ็จๅๅค
|
|
267
|
+
|
|
268
|
+
ๅคไธช session ๅจๅไธไธชๅพฎไฟก่ๅคฉ้่ฏด่ฏๆถ๏ผ`/s <็ผๅท>` ๆฏๅ็กฎไฝๅฐๅฆ็ๅๆณใๆดๅฟซ็ๅๆณๆฏ็จๅพฎไฟก
|
|
269
|
+
่ชๅธฆ็**ๅผ็จ**๏ผ้ฟๆ๏ผๆๅณ้ฎ๏ผๆไธช session ็ๅๅค โ ๅผ็จ โ ๅไธไฝ ่ฆ่ฏด็่ฏๅๅบๅปใ่ฟๆกๆถๆฏ
|
|
270
|
+
ๅฐฑ็ดๆฅๆ้็ปๅ้ฃๆกๅๅค็ sessionใ
|
|
271
|
+
|
|
272
|
+
- ็ปๅฎ๏ผ`/use`๏ผๅ้ป่ฎค่ทฏ็ฑ้ฝไผ่ขซ่ฟไธๆก่ฎฉ่ทฏ๏ผไฝ**ๅช่ฎฉ่ฟไธๆก** โโ ๅผ็จๆฏ"ๅฐฑ่ฟไธๆกๅ็ปๅฎ"๏ผ
|
|
273
|
+
ไธไผๆนๅไฝ ็็ปๅฎ
|
|
274
|
+
- ๆถๅฐ็ session ไผ็ๅฐไฝ ๅผ็จไบๅฎ็ๅชๅฅ่ฏ๏ผไธ่กๆ่ฆ๏ผ๏ผๆไปฅ"่ฟไธชๆนๆ่่ฒ"่ฟ็ง่ฏไนๆไธไธๆ
|
|
275
|
+
- ๅผ็จไธๆกๅฝไปค็่พๅบ๏ผๆฏๅฆ `/ls` ็ๅ่กจ๏ผไธไผ่ทฏ็ฑๅฐไปปไฝๅฐๆน๏ผๆๅๆฅ็่งๅ่ตฐ
|
|
276
|
+
- ๅพ็ๅๅคไน่ฝๅผ็จ๏ผๅๅพๆถ็ๆถๆฏ id ไธๅนถ่ฎฐไธ๏ผ๏ผๅผ็จๆ่ฆๆพ็คบไธบ `[ๅพ็]` ๆไฝ ๅ็่ฏดๆๆๅญ
|
|
277
|
+
- ๅผ็จ + `/s <็ผๅท>` ๅๆถ็จไนๅฏไปฅ๏ผ็ฎๆ ๅฌไฝ ็๏ผๅผ็จ็้ฃๅฅไป็ถไผไฝไธบไธไธๆๅธฆ็ปๅฎ
|
|
278
|
+
- ๅฆๆๅ้ฃๆกๅๅค็ session ๅทฒ็ป้ๅบไบ๏ผๅพฎไฟก้ไผ็ดๆฅๅ่ฏไฝ ๏ผๅนถๆ้ป่ฎค่ทฏ็ฑๆ้
|
|
279
|
+
|
|
280
|
+
**ๆฏๆไน่ฎคๅบๆฅ็**๏ผๅพฎไฟกๅ่ฟๆฅ็ๅผ็จๅชๆไธไธช `ref_msg`๏ผ้้ขๆฏ่ขซๅผ็จๆถๆฏ็ **id ๅๆถ้ด**๏ผ
|
|
281
|
+
**ๆฒกๆๅๆ**ใ่ๅๆถๆฏ็ๆฅๅฃไผๆๆฐๆถๆฏ็ id ่ฟๅ็ปๆไปฌ โโ ไบๆฏ session ๆฏๆฌกๅๅคๅพฎไฟกๆถ๏ผ
|
|
282
|
+
MCP server ๅฐฑๆ่ฟไธช id ่ฟๅๅๅบๅป็ๅ
ๅฎน่ฎฐ่ฟ `outbox.json`๏ผsession idใๅๅญใๅๆใๆถๆฏ
|
|
283
|
+
id๏ผ็ 24 ๅฐๆถใๆๅค 200 ๆก๏ผ๏ผๅผ็จ่ฟๆฅๆถๆ id ๅๆฅๆฏ่ฐ่ฏด็ใ
|
|
284
|
+
|
|
285
|
+
๏ผ่ฟไธช id ๆฏ 19 ไฝๆฐๅญใ่ถ
่ฟ 2^53๏ผ`JSON.parse` ไผๆๆซๅฐพๅ ไฝๆนๆ 0๏ผๆไปฅๅฎๆฏไปๅๅบ็ๅๅง
|
|
286
|
+
ๆๆฌ้ๆญฃๅๅๅบๆฅ็ โโ ่งฃๆ่ฟไธ้ๅฐฑๅไนๆไธๅๆฅไบใ๏ผ
|
|
287
|
+
|
|
288
|
+
่ฎฐๅฝ้่ฟๆ Claude Code ็ป่ฟไธช session ่ตท็ๅๅญใsession id ๅฐฑๆฏ pid๏ผ`/mcp` ้่ฟไผๆขไธไธช๏ผ
|
|
289
|
+
ไฝ้ฃ่ฟๆฏไฝ ๅๆๅจ่ฏด่ฏ็ๅไธไธช session โโ ่ฎค่ฟไธชๅๅญๅฐฑ่ฝ่ท่ฟๅปใ**ไธ่ฎคๅพฎไฟก่ทฏ็ฑๅ**๏ผ่ทฏ็ฑๅๆฏ
|
|
290
|
+
ๆ"ไปๅบ:ๅๆฏ"่ชๅจๅ็๏ผๅไธไธชไปๅบ้็ไธคไธช session ไผ้ๅ๏ผ้ๅบๅ่ฟไธชๅๅญไนไผ่ฝๅฐไธไธไธชๅจ้ฃ้
|
|
291
|
+
ๆๅผ็ session ่บซไธ๏ผ่ท่ฟๅปๅฐฑๆฏ็ญ้ไบไบบใ่ฎคไธๅบๆฅๅฐฑ็ด่ฏด"้ฃไธช session ๅทฒ็ป้ๅบไบ"ใ
|
|
292
|
+
|
|
293
|
+
ๅน้
้กบๅบ๏ผ่ขซๅผ็จๆถๆฏ็ id โ ่ขซๅผ็จ็ๅๆ๏ผๆ็ๅฎขๆท็ซฏไผๆๅผ็จๅก่ฟๆๅญ้๏ผๆชๆญ็ๆๅ็ผๅน้
๏ผ
|
|
294
|
+
โ ่ขซๅผ็จๅ
ๅฎน้็[ๅๅคๅฐพๆณจ](#ๅๅคๅฐพๆณจ) โ ๅ้ๆถ้ดไธ่ขซๅผ็จๆถๆฏๅๅปบๆถ้ด็ธๅทฎ 15 ็งๅ
็้ฃๆกใ
|
|
295
|
+
ๆไปฅๅฐพๆณจๅ
ณๆ๏ผ`"replyFooter": false`๏ผใๆ่
ๆๆกๅๅคๆฏๆง็ๆฌๅ็ๆฒก่ฎฐไธ id๏ผ้ฝ่ฟๆๅ
ๅบใ
|
|
296
|
+
|
|
297
|
+
ๅฐพๆณจ่ฎค็ๆฏ้้ข็**ๅๅญ**๏ผไธๆฏ `#็ผๅท`๏ผ็ผๅท่ฝ็ถไธไผ้ๅคไฝฟ็จ๏ผไฝๆๆ session ้ฝ้ๅบๅ
|
|
298
|
+
่ฎกๆฐไผไป 1 ้ๆฐๅผๅง๏ผๆไปฅ้ๅคฉ็ `#3` ๅฏ่ฝๆๅไธไธช่ท้ฃๆกๆถๆฏๆ ๅ
ณ็ๆฐ sessionใๅๅญๅฏนไธไธๅฐฑ
|
|
299
|
+
ๆ"้ฃไธช session ๅทฒ็ป้ๅบ"ๅค็๏ผไธ็ใๆถ้ดๅ
ๅบๅ็๏ผๅชๅจ่ฟๆกๅๅคๆ นๆฌๆฒก่ฎฐไธ id ๆถๆ็จ โโ
|
|
300
|
+
ไฝ ๅผ็จ่ชๅทฑๅ็ๆถๆฏๆถ๏ผไธไผ่ขซๅก็ปๅฝๆถๅๅฅฝๅจ่ฏด่ฏ็้ฃไธช sessionใ
|
|
301
|
+
|
|
302
|
+
ๅ ไธบๅพฎไฟกไธๅธฆๅๆ๏ผๆ้็ป session ็้ฃๅฅ"ไฝ ๅผ็จ็ๆฏ่ฟๆก"ๆ่ฆ๏ผๆฏ็จ `outbox.json` ้่ฎฐ็็
|
|
303
|
+
ๅๆ่ฟๅๅบๆฅ็ใ
|
|
304
|
+
|
|
305
|
+
ๅฆๆๅผ็จๆฒกๆๆ้ขๆ่ทฏ็ฑ๏ผๆ daemon ็จ `WECHAT_DEBUG_RAW=1` ่ท่ตทๆฅ๏ผๆฏๆกๆถๅฐ็ๅๅงๆถๆฏไผ
|
|
306
|
+
ๅ่ฟ `~/.claude/wechat/raw.log`๏ผๅฏไปฅ็ๅฐไฝ ็ๅพฎไฟกๅฎขๆท็ซฏๅฐๅบๅไบไปไนใ
|
|
307
|
+
|
|
262
308
|
## ่ฏญ่จ
|
|
263
309
|
|
|
264
310
|
ๆบๅจไบบๅๅค้ป่ฎค็จไธญๆ๏ผ้ขๅๅพฎไฟก็จๆท๏ผใ่ฆๅๆขๆ่ฑๆ๏ผๅจ
|
package/dist/daemon.js
CHANGED
|
@@ -10,10 +10,13 @@ import { nudgeSession } from "./nudge.js";
|
|
|
10
10
|
import { lastReplyAt, pruneReplies } from "./replies.js";
|
|
11
11
|
import { looksStalled } from "./transcripts.js";
|
|
12
12
|
import { probeUsageLimit, readUsageState, resetHint, shouldProbe, writeUsageState, } from "./usage.js";
|
|
13
|
-
import { CONFIG_FILE, CURSOR_FILE, DAEMON_PID_FILE, EXPIRED_FLAG_FILE, INBOX_DIR, MEDIA_DIR, SESSIONS_DIR, TYPING_DIR, WECHAT_DIR, ensureDirs as ensureWechatDirs, isProcessAlive, } from "./paths.js";
|
|
13
|
+
import { CONFIG_FILE, CURSOR_FILE, DAEMON_PID_FILE, EXPIRED_FLAG_FILE, INBOX_DIR, MEDIA_DIR, RAW_LOG_FILE, SESSIONS_DIR, TYPING_DIR, WECHAT_DIR, ensureDirs as ensureWechatDirs, isProcessAlive, } from "./paths.js";
|
|
14
14
|
import { assignSessionNumbers } from "./session-numbers.js";
|
|
15
15
|
import { findSession, getDefaultTarget, listSessions, matchSessions, cwdLabel, sessionLabel, sortedSessions, } from "./sessions.js";
|
|
16
16
|
import { peekInbox, writeToInbox } from "./inbox.js";
|
|
17
|
+
import { isBareRouteCommand, parseRouteCommand } from "./routing.js";
|
|
18
|
+
import { listOutbound } from "./outbox.js";
|
|
19
|
+
import { extractQuote, quoteExcerpt, resolveQuoteTarget, } from "./quote.js";
|
|
17
20
|
import { CLAUDE_CONFIG_FILE, ensureBypassAccepted } from "./claude-config.js";
|
|
18
21
|
import { formatAgo, getLang, marker, t } from "./i18n.js";
|
|
19
22
|
import { checkForUpdate } from "./version.js";
|
|
@@ -69,6 +72,16 @@ async function enrichImages(client, pending) {
|
|
|
69
72
|
}
|
|
70
73
|
}
|
|
71
74
|
}
|
|
75
|
+
// Append the untouched message to raw.log when WECHAT_DEBUG_RAW=1, before
|
|
76
|
+
// anything has interpreted it.
|
|
77
|
+
function logRaw(msg) {
|
|
78
|
+
if (process.env.WECHAT_DEBUG_RAW !== "1")
|
|
79
|
+
return;
|
|
80
|
+
try {
|
|
81
|
+
fs.appendFileSync(RAW_LOG_FILE, `${JSON.stringify(msg)}\n`, { mode: 0o600 });
|
|
82
|
+
}
|
|
83
|
+
catch { }
|
|
84
|
+
}
|
|
72
85
|
function getParentPid(pid) {
|
|
73
86
|
const r = spawnSync("ps", ["-o", "ppid=", "-p", String(pid)], {
|
|
74
87
|
stdio: ["ignore", "pipe", "ignore"],
|
|
@@ -647,6 +660,27 @@ function routeMessage(client, msg) {
|
|
|
647
660
|
log(`Reply failed: ${err}`);
|
|
648
661
|
});
|
|
649
662
|
};
|
|
663
|
+
// Resolved once, before any dispatch: plain routing wants the session the
|
|
664
|
+
// quote points at, and every path that delivers wants the quoted text, so
|
|
665
|
+
// the receiving session knows which of its own messages is being answered.
|
|
666
|
+
const quoteTarget = msg.quote
|
|
667
|
+
? resolveQuoteTarget(msg.quote, {
|
|
668
|
+
records: listOutbound(msg.fromUserId),
|
|
669
|
+
live: listSessions(),
|
|
670
|
+
find: (selector) => findSession(selector),
|
|
671
|
+
})
|
|
672
|
+
: undefined;
|
|
673
|
+
// WeChat's quote carries no text at all, so what the quoted message said
|
|
674
|
+
// comes from the outbox record it matched. Only the other source โ a client
|
|
675
|
+
// that put the quote in the message text โ has a "nickname:" prefix on it,
|
|
676
|
+
// and that distinction is what quoteExcerpt's flag is for.
|
|
677
|
+
const recovered = quoteTarget?.quotedText;
|
|
678
|
+
const excerpt = recovered !== undefined
|
|
679
|
+
? quoteExcerpt(recovered)
|
|
680
|
+
: quoteExcerpt(msg.quote?.quotedText ?? "", true);
|
|
681
|
+
// Nothing to excerpt (an image, or a quote we could not place) means nothing
|
|
682
|
+
// to add.
|
|
683
|
+
const withQuote = (body) => excerpt === "" ? body : m.quotedContext(excerpt, body);
|
|
650
684
|
if (text === "/usage" || text === "/limit" || text === "/็จ้") {
|
|
651
685
|
sendReply(m.usageChecking);
|
|
652
686
|
void (async () => {
|
|
@@ -890,21 +924,21 @@ function routeMessage(client, msg) {
|
|
|
890
924
|
].filter(Boolean));
|
|
891
925
|
return;
|
|
892
926
|
}
|
|
893
|
-
|
|
894
|
-
if (bareRoute) {
|
|
927
|
+
if (isBareRouteCommand(text)) {
|
|
895
928
|
sendReply(m.sListUsage);
|
|
896
929
|
return;
|
|
897
930
|
}
|
|
898
|
-
const routeMatch = text
|
|
931
|
+
const routeMatch = parseRouteCommand(text);
|
|
899
932
|
if (routeMatch) {
|
|
900
|
-
const selector = routeMatch
|
|
901
|
-
const message = routeMatch[2];
|
|
933
|
+
const { selector, message } = routeMatch;
|
|
902
934
|
const target = findSession(selector);
|
|
903
935
|
if (!target) {
|
|
904
936
|
sendReply(m.notFound(selector));
|
|
905
937
|
return;
|
|
906
938
|
}
|
|
907
|
-
|
|
939
|
+
// A quote alongside an explicit target is still context the session needs:
|
|
940
|
+
// the user can see the quote in their own chat.
|
|
941
|
+
const routed = { ...msg, text: withQuote(message) };
|
|
908
942
|
writeToInbox(target.id, routed);
|
|
909
943
|
trackDelivery(routed, target.id, target.name);
|
|
910
944
|
if (!isMonitoring(target.id)) {
|
|
@@ -917,9 +951,22 @@ function routeMessage(client, msg) {
|
|
|
917
951
|
return;
|
|
918
952
|
}
|
|
919
953
|
const sessions = listSessions();
|
|
954
|
+
// A quoted reply says which session it is for: the one that wrote the quoted
|
|
955
|
+
// message. That beats both the binding and the default target โ quoting is
|
|
956
|
+
// the user pointing at a session, and it is a one-off, so the binding is
|
|
957
|
+
// left alone.
|
|
958
|
+
let quoted;
|
|
959
|
+
if (quoteTarget?.kind === "session") {
|
|
960
|
+
quoted = quoteTarget.session;
|
|
961
|
+
}
|
|
962
|
+
else if (quoteTarget?.kind === "gone") {
|
|
963
|
+
// Only worth saying where the quote was the routing decision; with an
|
|
964
|
+
// explicit "/s <n>" the user already said where this goes.
|
|
965
|
+
sendReply(m.quoteSessionGone(quoteTarget.name));
|
|
966
|
+
}
|
|
920
967
|
// A bound session wins; otherwise prefer sessions that are actively
|
|
921
968
|
// monitoring their inbox and, among those, the most recently active one.
|
|
922
|
-
const boundId = getBinding(msg.fromUserId);
|
|
969
|
+
const boundId = quoted ? undefined : getBinding(msg.fromUserId);
|
|
923
970
|
let target = boundId
|
|
924
971
|
? sessions.find((s) => s.id === boundId)
|
|
925
972
|
: undefined;
|
|
@@ -927,20 +974,27 @@ function routeMessage(client, msg) {
|
|
|
927
974
|
clearBinding(msg.fromUserId);
|
|
928
975
|
sendReply(m.bindingCleared);
|
|
929
976
|
}
|
|
930
|
-
target = target ?? getDefaultTarget(sessions);
|
|
977
|
+
target = quoted ?? target ?? getDefaultTarget(sessions);
|
|
931
978
|
if (!target) {
|
|
932
979
|
sendReply(m.noSessionsDeliver);
|
|
933
980
|
return;
|
|
934
981
|
}
|
|
935
|
-
|
|
936
|
-
|
|
982
|
+
const delivered = { ...msg, text: withQuote(msg.text) };
|
|
983
|
+
writeToInbox(target.id, delivered);
|
|
984
|
+
trackDelivery(delivered, target.id, target.name);
|
|
937
985
|
if (!isMonitoring(target.id)) {
|
|
938
|
-
|
|
986
|
+
// A quote picked this session out, so the honest warning is about that one
|
|
987
|
+
// session, not about nobody monitoring anything.
|
|
988
|
+
sendReply(quoted
|
|
989
|
+
? m.deliveredUnmonitored(target.name)
|
|
990
|
+
: m.deliveredNoneMonitored(target.name));
|
|
939
991
|
}
|
|
940
992
|
noteUsageLimit(client, msg.fromUserId);
|
|
941
993
|
markTyping(msg.fromUserId);
|
|
942
994
|
client.startTypingKeepAlive(msg.fromUserId);
|
|
943
|
-
log(
|
|
995
|
+
log(quoted
|
|
996
|
+
? `Routed by quote to ${target.name} (${target.id})`
|
|
997
|
+
: `Routed to ${target.name} (${target.id})`);
|
|
944
998
|
}
|
|
945
999
|
function log(msg) {
|
|
946
1000
|
const time = new Date().toLocaleString("zh-CN");
|
|
@@ -1012,19 +1066,35 @@ async function main() {
|
|
|
1012
1066
|
clearedExpiredFlag = true;
|
|
1013
1067
|
}
|
|
1014
1068
|
for (const msg of rawMsgs) {
|
|
1069
|
+
logRaw(msg);
|
|
1015
1070
|
if (msg.message_type !== 1 || msg.message_state !== 2)
|
|
1016
1071
|
continue;
|
|
1017
1072
|
client.trackContextToken(msg.from_user_id, msg.context_token);
|
|
1018
1073
|
const text = extractText(msg, getLang());
|
|
1019
1074
|
if (!text)
|
|
1020
1075
|
continue;
|
|
1076
|
+
// A quoted reply carries the quoted message inside its text; the
|
|
1077
|
+
// session should be handed what the user typed, not the bubble around
|
|
1078
|
+
// it, and the quote itself decides where that goes (see routeMessage).
|
|
1079
|
+
const quote = extractQuote(msg, text);
|
|
1021
1080
|
const pending = {
|
|
1022
1081
|
id: msg.message_id,
|
|
1023
1082
|
fromUserId: msg.from_user_id,
|
|
1024
|
-
text,
|
|
1083
|
+
text: quote?.body ?? text,
|
|
1025
1084
|
contextToken: msg.context_token,
|
|
1026
1085
|
timestamp: msg.create_time_ms,
|
|
1027
1086
|
rawItems: msg.item_list,
|
|
1087
|
+
quote: quote
|
|
1088
|
+
? {
|
|
1089
|
+
quotedText: quote.quotedText,
|
|
1090
|
+
quotedMessageId: quote.quotedMessageId,
|
|
1091
|
+
// Dropping this would strand the timestamp fallback: it is
|
|
1092
|
+
// the only evidence left for a reply sent before ids were
|
|
1093
|
+
// recorded.
|
|
1094
|
+
quotedAt: quote.quotedAt,
|
|
1095
|
+
fromText: quote.fromText,
|
|
1096
|
+
}
|
|
1097
|
+
: undefined,
|
|
1028
1098
|
};
|
|
1029
1099
|
await enrichImages(client, pending);
|
|
1030
1100
|
log(`Message: ${pending.text.slice(0, 60)}`);
|
package/dist/daemon.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"daemon.js","sourceRoot":"","sources":["../src/daemon.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function withFileLock<T>(file: string, fn: () => T): T;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
// A lock nobody released within this is a crashed holder's, and may be stolen.
|
|
3
|
+
const LOCK_TIMEOUT_MS = 5000;
|
|
4
|
+
// Long enough to outlast that: a budget shorter than the stale threshold can
|
|
5
|
+
// never reach the steal, so every contender would give up and write unlocked โ
|
|
6
|
+
// exactly the concurrent read-modify-write the lock exists to prevent.
|
|
7
|
+
const LOCK_BUDGET_MS = LOCK_TIMEOUT_MS * 2;
|
|
8
|
+
const SPIN_MS = 20;
|
|
9
|
+
// Serialize access to a small JSON file across processes with an atomic mkdir
|
|
10
|
+
// lock, so a reader-modify-writer in one process can't interleave with another
|
|
11
|
+
// (which would lose or duplicate entries). Critical sections must stay tiny โ
|
|
12
|
+
// one file read plus one write.
|
|
13
|
+
//
|
|
14
|
+
// A lock nobody released within LOCK_TIMEOUT_MS is stolen: the holder is a
|
|
15
|
+
// crashed process, and waiting on it forever would wedge every writer.
|
|
16
|
+
export function withFileLock(file, fn) {
|
|
17
|
+
const lock = `${file}.lock`;
|
|
18
|
+
const deadline = Date.now() + LOCK_BUDGET_MS;
|
|
19
|
+
while (Date.now() < deadline) {
|
|
20
|
+
try {
|
|
21
|
+
fs.mkdirSync(lock);
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
try {
|
|
25
|
+
if (Date.now() - fs.statSync(lock).mtimeMs > LOCK_TIMEOUT_MS) {
|
|
26
|
+
fs.rmdirSync(lock);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
catch { }
|
|
30
|
+
Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, SPIN_MS);
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
try {
|
|
34
|
+
return fn();
|
|
35
|
+
}
|
|
36
|
+
finally {
|
|
37
|
+
try {
|
|
38
|
+
fs.rmdirSync(lock);
|
|
39
|
+
}
|
|
40
|
+
catch { }
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// Couldn't acquire within the budget โ proceed unlocked rather than drop the
|
|
44
|
+
// write entirely.
|
|
45
|
+
return fn();
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=file-lock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-lock.js","sourceRoot":"","sources":["../src/file-lock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,+EAA+E;AAC/E,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,6EAA6E;AAC7E,+EAA+E;AAC/E,uEAAuE;AACvE,MAAM,cAAc,GAAG,eAAe,GAAG,CAAC,CAAC;AAC3C,MAAM,OAAO,GAAG,EAAE,CAAC;AAEnB,8EAA8E;AAC9E,+EAA+E;AAC/E,8EAA8E;AAC9E,gCAAgC;AAChC,EAAE;AACF,2EAA2E;AAC3E,uEAAuE;AACvE,MAAM,UAAU,YAAY,CAAI,IAAY,EAAE,EAAW;IACvD,MAAM,IAAI,GAAG,GAAG,IAAI,OAAO,CAAC;IAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC;IAC7C,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,eAAe,EAAE,CAAC;oBAC7D,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;YACV,OAAO,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;YACtE,SAAS;QACX,CAAC;QACD,IAAI,CAAC;YACH,OAAO,EAAE,EAAE,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC;gBACH,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;IACH,CAAC;IACD,6EAA6E;IAC7E,kBAAkB;IAClB,OAAO,EAAE,EAAE,CAAC;AACd,CAAC"}
|