@wirecat/mail-cli 0.1.1 → 0.3.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.
Files changed (186) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/README.md +4 -3
  3. package/dist/bin/mail.js +2 -2
  4. package/dist/bundle/{all-profiles-TKMBELRZ.js → all-profiles-52LCOKSL.js} +5 -5
  5. package/dist/bundle/{anthropic-7LMUAEIZ.js → anthropic-HPW7PLTT.js} +3 -3
  6. package/dist/bundle/{app-server-JGMIJDD4.js → app-server-Y7XSPVHJ.js} +39 -39
  7. package/dist/bundle/{bun-XRO6XJHQ.js → bun-B7YXDIMT.js} +2 -2
  8. package/dist/bundle/{bun-sqlite-Z54LEHVM.js → bun-sqlite-TTTKY7H2.js} +2 -2
  9. package/dist/bundle/{chunk-52F5DWS5.js → chunk-37MSU5O6.js} +1 -1
  10. package/dist/bundle/{chunk-5NYMNSSO.js → chunk-3RDTVH3H.js} +3 -3
  11. package/dist/bundle/{chunk-4E7BN3TC.js → chunk-4PXWXI2U.js} +2 -2
  12. package/dist/bundle/{chunk-GN62YOT5.js → chunk-4UOEUEZZ.js} +4 -4
  13. package/dist/bundle/{chunk-TQFCPUIM.js → chunk-5LY3OS7U.js} +1 -1
  14. package/dist/bundle/{chunk-QLEUNU6G.js → chunk-5SSFYIFF.js} +4 -4
  15. package/dist/bundle/{chunk-IK5TH3O7.js → chunk-732GKOLO.js} +10 -10
  16. package/dist/bundle/{chunk-UH4DDRHA.js → chunk-C2THROZU.js} +42 -42
  17. package/dist/bundle/{chunk-OTUOZ33L.js → chunk-C6E3VFUX.js} +2 -2
  18. package/dist/bundle/{chunk-YPQQ5J4X.js → chunk-DKKCQMDM.js} +16 -16
  19. package/dist/bundle/{chunk-6MAZWSC3.js → chunk-FGNTGLWA.js} +3 -3
  20. package/dist/bundle/{chunk-GQQJOH7A.js → chunk-FUXSKWWJ.js} +58 -46
  21. package/dist/bundle/{chunk-3KEVLSNN.js → chunk-FX77WAQL.js} +46 -8
  22. package/dist/bundle/{chunk-VEIZZRQ5.js → chunk-GX2M3AOO.js} +12 -3
  23. package/dist/bundle/{chunk-CEW6KIFA.js → chunk-H2JVXO5V.js} +32 -22
  24. package/dist/bundle/{chunk-ZANYM66S.js → chunk-HS25KDT3.js} +1 -1
  25. package/dist/bundle/{chunk-KM7Q67Z3.js → chunk-I2ARI6FI.js} +1 -1
  26. package/dist/bundle/{chunk-TWPDVUBR.js → chunk-IXHLMSHV.js} +2 -2
  27. package/dist/bundle/{chunk-BTQX2ZSZ.js → chunk-JDOOPGKW.js} +2 -2
  28. package/dist/bundle/{chunk-GK4M2SUP.js → chunk-JHNLU42I.js} +1 -1
  29. package/dist/bundle/{chunk-KHTO2Q6E.js → chunk-JXYFIUVX.js} +4 -4
  30. package/dist/bundle/{chunk-F6D6PJ34.js → chunk-K6SIGXRS.js} +5 -5
  31. package/dist/bundle/{chunk-QQB7WT7R.js → chunk-KALDYMKJ.js} +3 -3
  32. package/dist/bundle/{chunk-NK7EB63L.js → chunk-KXVZ373I.js} +960 -496
  33. package/dist/bundle/{chunk-GAH7N7HO.js → chunk-LCA5KC34.js} +44 -44
  34. package/dist/bundle/{chunk-TVREDYX4.js → chunk-LJDOPCPW.js} +100 -91
  35. package/dist/bundle/{chunk-3KOA73LS.js → chunk-MHNEMDH3.js} +14 -14
  36. package/dist/bundle/{chunk-MS53RALV.js → chunk-MXUUQXMA.js} +5 -5
  37. package/dist/bundle/{chunk-YO4CUH5E.js → chunk-N5WIUNOT.js} +1 -1
  38. package/dist/bundle/{chunk-EOEDICIE.js → chunk-O2F54PUO.js} +1 -1
  39. package/dist/bundle/{chunk-2LLNPNMB.js → chunk-O3DRPTWF.js} +1 -1
  40. package/dist/bundle/{chunk-FZ5FXIG6.js → chunk-PL6UPJIL.js} +1 -1
  41. package/dist/bundle/{chunk-75CWWETH.js → chunk-PYIJCWCH.js} +11 -11
  42. package/dist/bundle/{chunk-GWDCKUBI.js → chunk-QTWIZKUI.js} +30 -29
  43. package/dist/bundle/{chunk-7SXGLT6T.js → chunk-RMYYKBFW.js} +9 -8
  44. package/dist/bundle/{chunk-JVMVLITS.js → chunk-RORC2FW7.js} +4 -2
  45. package/dist/bundle/{chunk-K4FVKPDQ.js → chunk-RVIMMCHF.js} +9 -9
  46. package/dist/bundle/{chunk-T6464KYA.js → chunk-RZCFEASJ.js} +205 -204
  47. package/dist/bundle/{chunk-Z34ICZA3.js → chunk-SRMJ6LLC.js} +5 -5
  48. package/dist/bundle/{chunk-TWTATDM7.js → chunk-TL7PE6JU.js} +6 -6
  49. package/dist/bundle/{chunk-4FEMINO2.js → chunk-TLZWUADZ.js} +5 -5
  50. package/dist/bundle/{chunk-3E3WA2L6.js → chunk-TNQOKGJS.js} +21 -21
  51. package/dist/bundle/{chunk-MNOIRJEO.js → chunk-V7NZTJKU.js} +7 -7
  52. package/dist/bundle/{chunk-TE5U5OAM.js → chunk-VTJDEWMB.js} +2 -2
  53. package/dist/bundle/{chunk-J6MSJLIW.js → chunk-X7TFD5SX.js} +1 -1
  54. package/dist/bundle/{chunk-FDCGTODC.js → chunk-XD3TL4BK.js} +1 -1
  55. package/dist/bundle/{chunk-WLFLBWNH.js → chunk-XQVGIW4R.js} +2 -2
  56. package/dist/bundle/{chunk-JBBZCTTF.js → chunk-Y2HGQK7A.js} +1 -1
  57. package/dist/bundle/{chunk-WXAXYJJ7.js → chunk-YVIX7FHL.js} +5 -5
  58. package/dist/bundle/{chunk-CH6RXYAX.js → chunk-ZIJJNH47.js} +1 -1
  59. package/dist/bundle/{command-contract-WU434ZUL.js → command-contract-3HA7CZEQ.js} +13 -13
  60. package/dist/bundle/{decode-YB3ZDTES.js → decode-VLI3MAXE.js} +2 -2
  61. package/dist/bundle/{dist-A6GKSKFC.js → dist-C7LAAMNF.js} +14 -14
  62. package/dist/bundle/{echarts-YNGCOYHW.js → echarts-POTU3SHN.js} +2 -2
  63. package/dist/bundle/{embed-LWNHIRBQ.js → embed-J2DEEEUF.js} +3 -3
  64. package/dist/bundle/{embedder-2LYD3U37.js → embedder-5N56V7YJ.js} +6 -6
  65. package/dist/bundle/{first-run-N3HJKGU7.js → first-run-XILZE4PI.js} +5 -5
  66. package/dist/bundle/{first-screen-4U2DMV3G.js → first-screen-43VLEDWZ.js} +14 -14
  67. package/dist/bundle/{instructions-GJHHFV64.js → instructions-B7AUZXPL.js} +1 -1
  68. package/dist/bundle/mail.js +2 -2
  69. package/dist/bundle/{node-GFOH6FKP.js → node-SZAO6HTA.js} +2 -2
  70. package/dist/bundle/{node-sqlite-NBXQXBIU.js → node-sqlite-O34FFLRV.js} +2 -2
  71. package/dist/bundle/{oauth-56EFO5AQ.js → oauth-YYTLIPJT.js} +4 -4
  72. package/dist/bundle/{open-2V7QZQJP.js → open-SWJGI6H4.js} +1 -1
  73. package/dist/bundle/{openai-V3SVACVL.js → openai-GYXWCQOV.js} +10 -10
  74. package/dist/bundle/{process-XVDX4SPD.js → process-GLVWCUMK.js} +1 -1
  75. package/dist/bundle/{program-JTJB26P3.js → program-HW73TGIF.js} +1725 -1467
  76. package/dist/bundle/{prompt-YKWAI222.js → prompt-OZLHHGCD.js} +2 -2
  77. package/dist/bundle/{recognize-PAR66KVM.js → recognize-RDQSGHC5.js} +1 -1
  78. package/dist/bundle/{remote-CE43TKXC.js → remote-BKU5P3GK.js} +4 -4
  79. package/dist/bundle/{rerank-M7S7P2TW.js → rerank-EQIXYHKB.js} +4 -4
  80. package/dist/bundle/{serve-ENPMIV6J.js → serve-S6K5HKWG.js} +6 -6
  81. package/dist/bundle/{server-MBEZLVKZ.js → server-4VRVHPQC.js} +31 -31
  82. package/dist/bundle/server-WK6DRJX2.js +63 -0
  83. package/dist/bundle/{sqlite-runtime-HVGDHBJJ.js → sqlite-runtime-OOE455YM.js} +2 -2
  84. package/dist/bundle/{state-QZSOSKBD.js → state-OLPOJ2TY.js} +3 -3
  85. package/dist/bundle/{store-2BUX6LVX.js → store-6AVCPLH4.js} +9 -9
  86. package/dist/bundle/{store-UJ7SNKXI.js → store-WFV26CWY.js} +30 -12
  87. package/dist/bundle/store-maintenance-command-S6235I3W.js +52 -0
  88. package/dist/commands/account.d.ts.map +1 -1
  89. package/dist/commands/account.js +6 -5
  90. package/dist/commands/account.js.map +1 -1
  91. package/dist/commands/context.d.ts +19 -8
  92. package/dist/commands/context.d.ts.map +1 -1
  93. package/dist/commands/context.js +14 -10
  94. package/dist/commands/context.js.map +1 -1
  95. package/dist/commands/folders.js +4 -4
  96. package/dist/commands/folders.js.map +1 -1
  97. package/dist/commands/login.d.ts +2 -2
  98. package/dist/commands/login.d.ts.map +1 -1
  99. package/dist/commands/login.js +3 -5
  100. package/dist/commands/login.js.map +1 -1
  101. package/dist/commands/mailbox.d.ts +2 -1
  102. package/dist/commands/mailbox.d.ts.map +1 -1
  103. package/dist/commands/mailbox.js.map +1 -1
  104. package/dist/commands/session-start.d.ts +3 -0
  105. package/dist/commands/session-start.d.ts.map +1 -0
  106. package/dist/commands/session-start.js +117 -0
  107. package/dist/commands/session-start.js.map +1 -0
  108. package/dist/commands/session.d.ts.map +1 -1
  109. package/dist/commands/session.js +9 -117
  110. package/dist/commands/session.js.map +1 -1
  111. package/dist/commands/status.d.ts.map +1 -1
  112. package/dist/commands/status.js +8 -20
  113. package/dist/commands/status.js.map +1 -1
  114. package/dist/commands/sync.d.ts.map +1 -1
  115. package/dist/commands/sync.js +49 -26
  116. package/dist/commands/sync.js.map +1 -1
  117. package/dist/config.d.ts +2 -0
  118. package/dist/config.d.ts.map +1 -1
  119. package/dist/config.js +4 -0
  120. package/dist/config.js.map +1 -1
  121. package/dist/discovery.d.ts +4 -15
  122. package/dist/discovery.d.ts.map +1 -1
  123. package/dist/discovery.js +19 -92
  124. package/dist/discovery.js.map +1 -1
  125. package/dist/mail/backend.d.ts +36 -0
  126. package/dist/mail/backend.d.ts.map +1 -0
  127. package/dist/mail/backend.js +2 -0
  128. package/dist/mail/backend.js.map +1 -0
  129. package/dist/mail/imap/account.d.ts +5 -0
  130. package/dist/mail/imap/account.d.ts.map +1 -0
  131. package/dist/mail/imap/account.js +41 -0
  132. package/dist/mail/imap/account.js.map +1 -0
  133. package/dist/mail/imap/connection.d.ts +62 -0
  134. package/dist/mail/imap/connection.d.ts.map +1 -0
  135. package/dist/mail/imap/connection.js +188 -0
  136. package/dist/mail/imap/connection.js.map +1 -0
  137. package/dist/mail/{imap-errors.d.ts → imap/errors.d.ts} +1 -1
  138. package/dist/mail/imap/errors.d.ts.map +1 -0
  139. package/dist/mail/{imap-errors.js → imap/errors.js} +1 -1
  140. package/dist/mail/imap/errors.js.map +1 -0
  141. package/dist/mail/imap/index.d.ts +7 -0
  142. package/dist/mail/imap/index.d.ts.map +1 -0
  143. package/dist/mail/imap/index.js +11 -0
  144. package/dist/mail/imap/index.js.map +1 -0
  145. package/dist/mail/{imap-messages.d.ts → imap/messages.d.ts} +9 -9
  146. package/dist/mail/imap/messages.d.ts.map +1 -0
  147. package/dist/mail/imap/messages.js +66 -0
  148. package/dist/mail/imap/messages.js.map +1 -0
  149. package/dist/mail/imap/read.d.ts +7 -0
  150. package/dist/mail/imap/read.d.ts.map +1 -0
  151. package/dist/mail/imap/read.js +164 -0
  152. package/dist/mail/imap/read.js.map +1 -0
  153. package/dist/mail/rethread.d.ts +15 -0
  154. package/dist/mail/rethread.d.ts.map +1 -0
  155. package/dist/mail/rethread.js +52 -0
  156. package/dist/mail/rethread.js.map +1 -0
  157. package/dist/profile.d.ts +2 -1
  158. package/dist/profile.d.ts.map +1 -1
  159. package/dist/profile.js +1 -0
  160. package/dist/profile.js.map +1 -1
  161. package/dist/program.d.ts.map +1 -1
  162. package/dist/program.js +8 -1
  163. package/dist/program.js.map +1 -1
  164. package/dist/providers.d.ts +126 -26
  165. package/dist/providers.d.ts.map +1 -1
  166. package/dist/providers.js +141 -72
  167. package/dist/providers.js.map +1 -1
  168. package/dist/secret.d.ts +2 -1
  169. package/dist/secret.d.ts.map +1 -1
  170. package/dist/secret.js +1 -0
  171. package/dist/secret.js.map +1 -1
  172. package/dist/version.d.ts +1 -1
  173. package/dist/version.js +1 -1
  174. package/package.json +3 -2
  175. package/skills/mail-cli/SKILL.md +8 -0
  176. package/dist/bundle/server-JRTHUCVY.js +0 -63
  177. package/dist/bundle/store-maintenance-command-I7V5C44K.js +0 -52
  178. package/dist/mail/imap-errors.d.ts.map +0 -1
  179. package/dist/mail/imap-errors.js.map +0 -1
  180. package/dist/mail/imap-messages.d.ts.map +0 -1
  181. package/dist/mail/imap-messages.js +0 -66
  182. package/dist/mail/imap-messages.js.map +0 -1
  183. package/dist/mail/imap.d.ts +0 -67
  184. package/dist/mail/imap.d.ts.map +0 -1
  185. package/dist/mail/imap.js +0 -348
  186. package/dist/mail/imap.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,57 @@
2
2
 
3
3
  Notable changes to `@wirecat/mail-cli`. One section per version, newest first.
4
4
 
5
+ ## 0.3.0 — 01.11.2026
6
+
7
+ ### Added
8
+
9
+ - **`mail <profile> schedule`** runs a mail command on a timer through systemd, launchd or Task Scheduler, as `tg`
10
+ does: `mail ya schedule command mail-ya --every 5m -- sync`. `doctor` says when a scheduled run keeps failing.
11
+
12
+ ## 0.2.0 — 01.11.2026
13
+
14
+ ### Added
15
+
16
+ - **The skill on ClawHub names its program and npm package**, so an OpenClaw user is told to install `@wirecat/mail-cli`
17
+ before the skill works, as with the other WireCat skills.
18
+ - **mail's MCP server is listed in the official MCP Registry** as `dev.wirecat/mail-cli`.
19
+ - **`session start` prints the server it found before it sends the password**: host, port, security and login, so
20
+ a wrong guess of discovery is seen before the password goes to it.
21
+ - **A new profile saves how it signs in (`auth`).** A profile saved before keeps working with its `imap_*` settings and
22
+ signs in with an app password, with nothing to migrate.
23
+
24
+ ### Changed — may break callers
25
+
26
+ - **`sync` reads All Mail on Gmail when the profile names no folders.** Archived Gmail mail leaves INBOX, so a sync of
27
+ INBOX alone took it for deleted. All Mail is found by its role, so a Gmail account in another language works too.
28
+ - **Headers are read as memo reads them.** A mailing list's `List-Id` is stored without its angle
29
+ brackets and in lower case, and Reply-To, Gmail's SPF, DKIM and DMARC verdicts and the attachment hint are read at
30
+ list time, so the owner's rules see the same fields in both tools.
31
+
32
+ ### Fixed
33
+
34
+ - **`sync` applies the account's stored mail rules, as memo does.** A skip or envelope rule decided in memo now holds
35
+ for `mail sync` too, and both tools keep the same saved position, which holds a fingerprint of the rules. A Gmail
36
+ profile syncs in Gmail mode, as memo does.
37
+ - **Gmail labels are named as memo names them** (`Inbox`, `Sent`, `Starred`, decoded names), so stored `label:Inbox`
38
+ mailboxes keep matching and nothing is stored as `label:\Inbox`.
39
+ - **`sync --rescan` moves replies stored by 0.1 into their thread** on a server without thread ids, such as Yandex.
40
+ The answer says how many in `rethreaded`. Gmail's threads are not touched.
41
+ - **A reply is stored in its conversation on servers without thread ids, such as Yandex and Mail.ru.** The thread is
42
+ the first email named in References, else in In-Reply-To. Mail stored before moves with `sync --rescan`
43
+ (above). Gmail keeps its own ids.
44
+ - **Every command that asks the server is bound by the run's deadline and Ctrl-C.** `session start` and
45
+ `session status --check` opened the mailbox on their own, without the deadline or the abort the other commands
46
+ had, and a source could reconnect after it was closed.
47
+ - **`sync` asks for at most 20 MB of message bodies in one request**, as well as at most 15 messages, so a batch of
48
+ large attachments does not hold a connection for minutes or fill memory.
49
+ - **The schemas of `account check` and `session status` name `file` as a password source.** A password kept in the
50
+ private file was answered as `file` while the published schema allowed only `environment`, `keyring` and
51
+ `himalaya`, so a client that checks answers against the schema refused it.
52
+ - **A `sync` that `--limit` stopped says so.** It answers `stopped: "limit"` and how many new emails it left in
53
+ `remaining`, and its next step says the run saved the emails `--limit` allows, instead of saying it stopped to
54
+ answer in time.
55
+
5
56
  ## 0.1.1 — 01.11.2026
6
57
 
7
58
  ### Fixed
package/README.md CHANGED
@@ -35,8 +35,8 @@ You need Node.js 22.16 or a later 22.x, or 24 or later. To try it with no instal
35
35
 
36
36
  ## What you can do
37
37
 
38
- - **Sync a mailbox into the shared store.** `sync` reads INBOX and Sent, or the folders you name, newest first, and
39
- skips what is already stored. `--since-time 2026-10-01` reads from local midnight of that day.
38
+ - **Sync a mailbox into the shared store.** `sync` reads INBOX and Sent (All Mail on Gmail), or the folders you name,
39
+ newest first, and skips what is already stored. `--since-time 2026-10-01` reads from local midnight of that day.
40
40
  - **Search and read the mail with memo.** `mail` only fills the store;
41
41
  [memo](https://github.com/WireCatLabs/cli-memo) searches your mail together with your messages and notes.
42
42
  - **Sync a big mailbox in parts.** A run stops before its deadline, keeps what it read and tells you to run it again;
@@ -53,7 +53,8 @@ mail ya mcp config # the entry for Claude Desktop, Curso
53
53
  ```
54
54
 
55
55
  `mcp add` stops until you pass `--allow-writes`, because the server's `write` tool runs commands that change local
56
- data, such as `sync`, which writes into the store and never into the mailbox. Check the profile's permissions first.
56
+ settings, such as `config set` and `skill install`. `sync` runs through `read`: it writes only into the store, never
57
+ into the mailbox. Check the profile's permissions first.
57
58
 
58
59
  Every command except `mcp serve` takes `--json` and answers one JSON value on stdout; errors are JSON on stderr with a code to branch
59
60
  on. Over MCP an agent finds the commands with a search tool and runs them through a `read` and a `write` tool; the
package/dist/bin/mail.js CHANGED
@@ -9,7 +9,7 @@ if (
9
9
  (words[0] === "--version" || words[0] === "-V") &&
10
10
  !Object.keys(process.env).some((key) => key.endsWith("_TEST_ARGV_LOG"))
11
11
  ) {
12
- process.stdout.write("0.1.1\n")
12
+ process.stdout.write("0.3.0\n")
13
13
  } else {
14
14
  // Before the bundle compiles: the bundle's own call comes after its chunks.
15
15
  module.enableCompileCache()
@@ -29,7 +29,7 @@ if (
29
29
  })
30
30
  }
31
31
  const running = import("../bundle/mail.js")
32
- const chunks = ["../bundle/all-profiles-TKMBELRZ.js","../bundle/anthropic-7LMUAEIZ.js","../bundle/app-server-JGMIJDD4.js","../bundle/bun-XRO6XJHQ.js","../bundle/bun-sqlite-Z54LEHVM.js","../bundle/decode-YB3ZDTES.js","../bundle/dispatch-EUKKT3PD.js","../bundle/dist-A6GKSKFC.js","../bundle/dist-HFUVURJG.js","../bundle/echarts-YNGCOYHW.js","../bundle/embed-LWNHIRBQ.js","../bundle/embedder-2LYD3U37.js","../bundle/failure-OAIC5VAP.js","../bundle/first-screen-4U2DMV3G.js","../bundle/instructions-GJHHFV64.js","../bundle/mcp-L7SRVDRN.js","../bundle/node-GFOH6FKP.js","../bundle/node-KM3CUABH.js","../bundle/node-TLZSIHIJ.js","../bundle/node-sqlite-NBXQXBIU.js","../bundle/oauth-56EFO5AQ.js","../bundle/open-2V7QZQJP.js","../bundle/openai-V3SVACVL.js","../bundle/process-XVDX4SPD.js","../bundle/program-JTJB26P3.js","../bundle/prompt-YKWAI222.js","../bundle/recognize-PAR66KVM.js","../bundle/remote-CE43TKXC.js","../bundle/rerank-M7S7P2TW.js","../bundle/serve-ENPMIV6J.js","../bundle/server-JRTHUCVY.js","../bundle/server-MBEZLVKZ.js","../bundle/sqlite-runtime-HVGDHBJJ.js","../bundle/state-QZSOSKBD.js","../bundle/store-2BUX6LVX.js","../bundle/store-UJ7SNKXI.js","../bundle/store-maintenance-command-I7V5C44K.js"]
32
+ const chunks = ["../bundle/all-profiles-52LCOKSL.js","../bundle/anthropic-HPW7PLTT.js","../bundle/app-server-Y7XSPVHJ.js","../bundle/bun-B7YXDIMT.js","../bundle/bun-sqlite-TTTKY7H2.js","../bundle/decode-VLI3MAXE.js","../bundle/dispatch-EUKKT3PD.js","../bundle/dist-C7LAAMNF.js","../bundle/dist-HFUVURJG.js","../bundle/echarts-POTU3SHN.js","../bundle/embed-J2DEEEUF.js","../bundle/embedder-5N56V7YJ.js","../bundle/failure-OAIC5VAP.js","../bundle/first-screen-43VLEDWZ.js","../bundle/instructions-B7AUZXPL.js","../bundle/mcp-L7SRVDRN.js","../bundle/node-KM3CUABH.js","../bundle/node-SZAO6HTA.js","../bundle/node-TLZSIHIJ.js","../bundle/node-sqlite-O34FFLRV.js","../bundle/oauth-YYTLIPJT.js","../bundle/open-SWJGI6H4.js","../bundle/openai-GYXWCQOV.js","../bundle/process-GLVWCUMK.js","../bundle/program-HW73TGIF.js","../bundle/prompt-OZLHHGCD.js","../bundle/recognize-RDQSGHC5.js","../bundle/remote-BKU5P3GK.js","../bundle/rerank-EQIXYHKB.js","../bundle/serve-S6K5HKWG.js","../bundle/server-4VRVHPQC.js","../bundle/server-WK6DRJX2.js","../bundle/sqlite-runtime-OOE455YM.js","../bundle/state-OLPOJ2TY.js","../bundle/store-6AVCPLH4.js","../bundle/store-WFV26CWY.js","../bundle/store-maintenance-command-S6235I3W.js"]
33
33
  // After the server answers its first request, so it starts no later.
34
34
  if (serves) setTimeout(() => void Promise.allSettled(chunks.map((chunk) => import(chunk))), 2000).unref()
35
35
  await running
@@ -2,18 +2,18 @@ import { createRequire as __bundleRequire } from "node:module";
2
2
  const require = __bundleRequire(import.meta.url);
3
3
  import {
4
4
  answeredWire
5
- } from "./chunk-JBBZCTTF.js";
5
+ } from "./chunk-Y2HGQK7A.js";
6
6
  import {
7
7
  CALLER_META_KEY,
8
8
  PROXY_CLIENT_NAME,
9
9
  StdioServerTransport,
10
10
  callerOf,
11
11
  serveStdio
12
- } from "./chunk-VEIZZRQ5.js";
12
+ } from "./chunk-GX2M3AOO.js";
13
13
  import {
14
14
  McpServer
15
15
  } from "./chunk-5D4AEUVA.js";
16
- import "./chunk-7SXGLT6T.js";
16
+ import "./chunk-RMYYKBFW.js";
17
17
  import "./chunk-NPGVOZVK.js";
18
18
  import "./chunk-J3QXTBD2.js";
19
19
  import "./chunk-LQ37ALDJ.js";
@@ -23,7 +23,7 @@ import {
23
23
  __name
24
24
  } from "./chunk-ZVVMGPBJ.js";
25
25
 
26
- // node_modules/.pnpm/@wirecat+cli-core@0.507.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_d5beb0101c7a90701cc33879a5be8d28/node_modules/@wirecat/cli-core/dist/mcp/all-profiles.js
26
+ // node_modules/.pnpm/@wirecat+cli-core@0.519.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_3a77a7242330d89656a32c8be893f1d1/node_modules/@wirecat/cli-core/dist/mcp/all-profiles.js
27
27
  import { spawn } from "node:child_process";
28
28
  import { randomUUID } from "node:crypto";
29
29
  var PROTOCOL = "2025-06-18";
@@ -257,7 +257,7 @@ var serveAllProfilesOverStdio = /* @__PURE__ */ __name(async (options, io = {})
257
257
  }, "serveAllProfilesOverStdio");
258
258
  var serveAllProfilesOverHttp = /* @__PURE__ */ __name(async (options, http) => {
259
259
  const { build, close } = allProfilesServer(options);
260
- const { serveOverHttp } = await import("./serve-ENPMIV6J.js");
260
+ const { serveOverHttp } = await import("./serve-S6K5HKWG.js");
261
261
  const listening = await serveOverHttp(build, {
262
262
  ...http,
263
263
  appName: options.command,
@@ -5,11 +5,11 @@ import {
5
5
  } from "./chunk-XQUUANA2.js";
6
6
  import {
7
7
  checkedOptions
8
- } from "./chunk-YO4CUH5E.js";
8
+ } from "./chunk-N5WIUNOT.js";
9
9
  import {
10
10
  messagesFor,
11
11
  systemFor
12
- } from "./chunk-J6MSJLIW.js";
12
+ } from "./chunk-X7TFD5SX.js";
13
13
  import "./chunk-J3QXTBD2.js";
14
14
  import {
15
15
  array,
@@ -23,7 +23,7 @@ import {
23
23
  __name
24
24
  } from "./chunk-ZVVMGPBJ.js";
25
25
 
26
- // node_modules/.pnpm/@wirecat+cli-core@0.507.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_d5beb0101c7a90701cc33879a5be8d28/node_modules/@wirecat/cli-core/dist/models/anthropic.js
26
+ // node_modules/.pnpm/@wirecat+cli-core@0.519.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_3a77a7242330d89656a32c8be893f1d1/node_modules/@wirecat/cli-core/dist/models/anthropic.js
27
27
  var options = strictObject({
28
28
  stop_sequences: optional(array(string()))
29
29
  });
@@ -3,43 +3,43 @@ const require = __bundleRequire(import.meta.url);
3
3
  import {
4
4
  PER_RUN,
5
5
  envelope
6
- } from "./chunk-GWDCKUBI.js";
6
+ } from "./chunk-QTWIZKUI.js";
7
7
  import {
8
8
  answered,
9
9
  failed,
10
10
  registerCommands,
11
11
  runCommandForAgent,
12
12
  toolsFromCommands
13
- } from "./chunk-3KOA73LS.js";
13
+ } from "./chunk-MHNEMDH3.js";
14
14
  import {
15
15
  mcpUrlOf
16
- } from "./chunk-CEW6KIFA.js";
16
+ } from "./chunk-H2JVXO5V.js";
17
17
  import {
18
18
  agentJson,
19
19
  skillResource
20
- } from "./chunk-K4FVKPDQ.js";
21
- import "./chunk-JVMVLITS.js";
20
+ } from "./chunk-RVIMMCHF.js";
21
+ import "./chunk-RORC2FW7.js";
22
22
  import {
23
23
  appInstructions
24
- } from "./chunk-TQFCPUIM.js";
24
+ } from "./chunk-5LY3OS7U.js";
25
25
  import {
26
26
  answeredWire
27
- } from "./chunk-JBBZCTTF.js";
27
+ } from "./chunk-Y2HGQK7A.js";
28
28
  import {
29
29
  StdioServerTransport,
30
30
  serveStdio
31
- } from "./chunk-VEIZZRQ5.js";
31
+ } from "./chunk-GX2M3AOO.js";
32
32
  import {
33
33
  McpServer
34
34
  } from "./chunk-5D4AEUVA.js";
35
- import "./chunk-3E3WA2L6.js";
36
- import "./chunk-T6464KYA.js";
37
- import "./chunk-75CWWETH.js";
38
- import "./chunk-WXAXYJJ7.js";
39
- import "./chunk-J6MSJLIW.js";
40
- import "./chunk-CH6RXYAX.js";
41
- import "./chunk-MS53RALV.js";
42
- import "./chunk-TVREDYX4.js";
35
+ import "./chunk-TNQOKGJS.js";
36
+ import "./chunk-RZCFEASJ.js";
37
+ import "./chunk-PYIJCWCH.js";
38
+ import "./chunk-YVIX7FHL.js";
39
+ import "./chunk-X7TFD5SX.js";
40
+ import "./chunk-ZIJJNH47.js";
41
+ import "./chunk-MXUUQXMA.js";
42
+ import "./chunk-LJDOPCPW.js";
43
43
  import {
44
44
  DEFAULT_OUTPUT_BYTES,
45
45
  changesAuthorityAt,
@@ -49,34 +49,34 @@ import {
49
49
  judgedTargets,
50
50
  readOnlyLockOf,
51
51
  rootOf2 as rootOf
52
- } from "./chunk-GQQJOH7A.js";
53
- import "./chunk-QLEUNU6G.js";
54
- import "./chunk-7SXGLT6T.js";
52
+ } from "./chunk-FUXSKWWJ.js";
53
+ import "./chunk-5SSFYIFF.js";
54
+ import "./chunk-RMYYKBFW.js";
55
55
  import "./chunk-ZD3WUGR2.js";
56
56
  import "./chunk-P7P5MNAU.js";
57
- import "./chunk-WLFLBWNH.js";
57
+ import "./chunk-XQVGIW4R.js";
58
58
  import {
59
59
  mcpHttpMarker
60
- } from "./chunk-GN62YOT5.js";
61
- import "./chunk-TE5U5OAM.js";
62
- import "./chunk-KM7Q67Z3.js";
63
- import "./chunk-4E7BN3TC.js";
64
- import "./chunk-YPQQ5J4X.js";
65
- import "./chunk-6MAZWSC3.js";
66
- import "./chunk-NK7EB63L.js";
67
- import "./chunk-4FEMINO2.js";
68
- import "./chunk-3KEVLSNN.js";
69
- import "./chunk-UH4DDRHA.js";
60
+ } from "./chunk-4UOEUEZZ.js";
61
+ import "./chunk-VTJDEWMB.js";
62
+ import "./chunk-I2ARI6FI.js";
63
+ import "./chunk-4PXWXI2U.js";
64
+ import "./chunk-DKKCQMDM.js";
65
+ import "./chunk-FGNTGLWA.js";
66
+ import "./chunk-KXVZ373I.js";
67
+ import "./chunk-TLZWUADZ.js";
68
+ import "./chunk-FX77WAQL.js";
69
+ import "./chunk-C2THROZU.js";
70
70
  import "./chunk-NPGVOZVK.js";
71
- import "./chunk-MNOIRJEO.js";
72
- import "./chunk-KHTO2Q6E.js";
73
- import "./chunk-F6D6PJ34.js";
74
- import "./chunk-EOEDICIE.js";
71
+ import "./chunk-V7NZTJKU.js";
72
+ import "./chunk-JXYFIUVX.js";
73
+ import "./chunk-K6SIGXRS.js";
74
+ import "./chunk-O2F54PUO.js";
75
75
  import "./chunk-QX7RCLRS.js";
76
76
  import "./chunk-D72URWJE.js";
77
- import "./chunk-Z34ICZA3.js";
78
- import "./chunk-5NYMNSSO.js";
79
- import "./chunk-FZ5FXIG6.js";
77
+ import "./chunk-SRMJ6LLC.js";
78
+ import "./chunk-3RDTVH3H.js";
79
+ import "./chunk-PL6UPJIL.js";
80
80
  import "./chunk-J3QXTBD2.js";
81
81
  import {
82
82
  mcpErrorResult
@@ -89,7 +89,7 @@ import {
89
89
  __name
90
90
  } from "./chunk-ZVVMGPBJ.js";
91
91
 
92
- // node_modules/.pnpm/@wirecat+cli-core@0.507.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_d5beb0101c7a90701cc33879a5be8d28/node_modules/@wirecat/cli-core/dist/mcp/app-server.js
92
+ // node_modules/.pnpm/@wirecat+cli-core@0.519.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_3a77a7242330d89656a32c8be893f1d1/node_modules/@wirecat/cli-core/dist/mcp/app-server.js
93
93
  var EXCLUDED = [["mcp"]];
94
94
  var createAppServer = /* @__PURE__ */ __name((command, context, options) => {
95
95
  const { app } = options;
@@ -204,7 +204,7 @@ var serveAppOverStdio = /* @__PURE__ */ __name(async (command, context, options)
204
204
  var serveAppOverHttp = /* @__PURE__ */ __name(async (command, context, options, http) => {
205
205
  const { app } = options;
206
206
  const { build } = createAppServer(command, context, options);
207
- const { serveOverHttp } = await import("./serve-ENPMIV6J.js");
207
+ const { serveOverHttp } = await import("./serve-S6K5HKWG.js");
208
208
  const listening = await serveOverHttp(build, {
209
209
  ...http,
210
210
  appName: app.command,
@@ -18,12 +18,12 @@ import {
18
18
  jitCompatCheck,
19
19
  refineSqliteCodecs,
20
20
  sql
21
- } from "./chunk-EOEDICIE.js";
21
+ } from "./chunk-O2F54PUO.js";
22
22
  import {
23
23
  __name
24
24
  } from "./chunk-ZVVMGPBJ.js";
25
25
 
26
- // node_modules/.pnpm/@wirecat+cli-core@0.507.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_d5beb0101c7a90701cc33879a5be8d28/node_modules/@wirecat/cli-core/dist/store/sqlite/drizzle/bun.js
26
+ // node_modules/.pnpm/@wirecat+cli-core@0.519.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_3a77a7242330d89656a32c8be893f1d1/node_modules/@wirecat/cli-core/dist/store/sqlite/drizzle/bun.js
27
27
  import { Database } from "bun:sqlite";
28
28
  var bunSQLiteCodecs = refineSqliteCodecs({
29
29
  "integer:boolean": { normalize: booleanFromInteger },
@@ -3,7 +3,7 @@ const require = __bundleRequire(import.meta.url);
3
3
  import {
4
4
  loadVectorExtension,
5
5
  vectorExtension
6
- } from "./chunk-ZANYM66S.js";
6
+ } from "./chunk-HS25KDT3.js";
7
7
  import "./chunk-J3QXTBD2.js";
8
8
  import "./chunk-LQ37ALDJ.js";
9
9
  import {
@@ -14,7 +14,7 @@ import {
14
14
  __name
15
15
  } from "./chunk-ZVVMGPBJ.js";
16
16
 
17
- // node_modules/.pnpm/@wirecat+cli-core@0.507.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_d5beb0101c7a90701cc33879a5be8d28/node_modules/@wirecat/cli-core/dist/store/drivers/bun-sqlite.js
17
+ // node_modules/.pnpm/@wirecat+cli-core@0.519.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_3a77a7242330d89656a32c8be893f1d1/node_modules/@wirecat/cli-core/dist/store/drivers/bun-sqlite.js
18
18
  var customised = false;
19
19
  var ownLibrary = /* @__PURE__ */ __name(async () => {
20
20
  try {
@@ -2,7 +2,7 @@ import { createRequire as __bundleRequire } from "node:module";
2
2
  const require = __bundleRequire(import.meta.url);
3
3
 
4
4
  // dist/version.js
5
- var VERSION = "0.1.1";
5
+ var VERSION = "0.3.0";
6
6
 
7
7
  // dist/identity.js
8
8
  var PACKAGE = "@wirecat/mail-cli";
@@ -2,7 +2,7 @@ import { createRequire as __bundleRequire } from "node:module";
2
2
  const require = __bundleRequire(import.meta.url);
3
3
  import {
4
4
  wirecatDirectory
5
- } from "./chunk-FZ5FXIG6.js";
5
+ } from "./chunk-PL6UPJIL.js";
6
6
  import {
7
7
  CliError
8
8
  } from "./chunk-5BVIWP3S.js";
@@ -10,7 +10,7 @@ import {
10
10
  __name
11
11
  } from "./chunk-ZVVMGPBJ.js";
12
12
 
13
- // node_modules/.pnpm/@wirecat+cli-core@0.507.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_d5beb0101c7a90701cc33879a5be8d28/node_modules/@wirecat/cli-core/dist/speech/models.js
13
+ // node_modules/.pnpm/@wirecat+cli-core@0.519.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_3a77a7242330d89656a32c8be893f1d1/node_modules/@wirecat/cli-core/dist/speech/models.js
14
14
  var huggingFace = /* @__PURE__ */ __name((repository, commit) => (name) => `https://huggingface.co/csukuangfj/${repository}/resolve/${commit}/${name}`, "huggingFace");
15
15
  var gigaam = huggingFace("sherpa-onnx-nemo-transducer-punct-giga-am-v3-russian-2025-12-16", "a6039be7cee829a9044a69ac0ebaf1c191217c97");
16
16
  var gigaamCtc = huggingFace("sherpa-onnx-nemo-ctc-punct-giga-am-v3-russian-2025-12-16", "4fb5407ff028a69fec516cdf4c10fac9ddea7c16");
@@ -135,7 +135,7 @@ var speechModel = /* @__PURE__ */ __name((id) => {
135
135
  return model;
136
136
  }, "speechModel");
137
137
 
138
- // node_modules/.pnpm/@wirecat+cli-core@0.507.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_d5beb0101c7a90701cc33879a5be8d28/node_modules/@wirecat/cli-core/dist/speech/install.js
138
+ // node_modules/.pnpm/@wirecat+cli-core@0.519.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_3a77a7242330d89656a32c8be893f1d1/node_modules/@wirecat/cli-core/dist/speech/install.js
139
139
  import { createHash, randomUUID } from "node:crypto";
140
140
  import { createReadStream, createWriteStream, mkdirSync, statSync } from "node:fs";
141
141
  import { rename, rm } from "node:fs/promises";
@@ -2,7 +2,7 @@ import { createRequire as __bundleRequire } from "node:module";
2
2
  const require = __bundleRequire(import.meta.url);
3
3
  import {
4
4
  unit
5
- } from "./chunk-Z34ICZA3.js";
5
+ } from "./chunk-SRMJ6LLC.js";
6
6
  import {
7
7
  CliError
8
8
  } from "./chunk-5BVIWP3S.js";
@@ -10,7 +10,7 @@ import {
10
10
  __name
11
11
  } from "./chunk-ZVVMGPBJ.js";
12
12
 
13
- // node_modules/.pnpm/@wirecat+cli-core@0.507.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_d5beb0101c7a90701cc33879a5be8d28/node_modules/@wirecat/cli-core/dist/embeddings/remote.js
13
+ // node_modules/.pnpm/@wirecat+cli-core@0.519.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_3a77a7242330d89656a32c8be893f1d1/node_modules/@wirecat/cli-core/dist/embeddings/remote.js
14
14
  import { setTimeout } from "node:timers/promises";
15
15
  var OPENAI_URL = "https://api.openai.com/v1";
16
16
  var OPENAI_MODELS = {
@@ -5,15 +5,15 @@ import {
5
5
  readLock,
6
6
  releaseLock,
7
7
  takeLock
8
- } from "./chunk-TE5U5OAM.js";
8
+ } from "./chunk-VTJDEWMB.js";
9
9
  import {
10
10
  __name
11
11
  } from "./chunk-ZVVMGPBJ.js";
12
12
 
13
- // node_modules/.pnpm/@wirecat+cli-core@0.507.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_d5beb0101c7a90701cc33879a5be8d28/node_modules/@wirecat/cli-core/dist/mcp/http/state.js
13
+ // node_modules/.pnpm/@wirecat+cli-core@0.519.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_3a77a7242330d89656a32c8be893f1d1/node_modules/@wirecat/cli-core/dist/mcp/http/state.js
14
14
  import { existsSync as existsSync2, readFileSync as readFileSync2 } from "node:fs";
15
15
 
16
- // node_modules/.pnpm/@wirecat+cli-core@0.507.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_d5beb0101c7a90701cc33879a5be8d28/node_modules/@wirecat/cli-core/dist/mcp/http/activity.js
16
+ // node_modules/.pnpm/@wirecat+cli-core@0.519.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_3a77a7242330d89656a32c8be893f1d1/node_modules/@wirecat/cli-core/dist/mcp/http/activity.js
17
17
  import { randomBytes } from "node:crypto";
18
18
  import { chmodSync, existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
19
19
  import { dirname } from "node:path";
@@ -86,7 +86,7 @@ var activityRecorder = /* @__PURE__ */ __name((path, now = Date.now) => {
86
86
  };
87
87
  }, "activityRecorder");
88
88
 
89
- // node_modules/.pnpm/@wirecat+cli-core@0.507.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_d5beb0101c7a90701cc33879a5be8d28/node_modules/@wirecat/cli-core/dist/mcp/http/state.js
89
+ // node_modules/.pnpm/@wirecat+cli-core@0.519.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_3a77a7242330d89656a32c8be893f1d1/node_modules/@wirecat/cli-core/dist/mcp/http/state.js
90
90
  var ACCESS_SECONDS = 60 * 60;
91
91
  var REFRESH_SECONDS = 30 * 24 * 60 * 60;
92
92
  var readStored = /* @__PURE__ */ __name((path) => existsSync2(path) ? JSON.parse(readFileSync2(path, "utf8")) : { clients: [], tokens: [] }, "readStored");
@@ -4,7 +4,7 @@ import {
4
4
  __name
5
5
  } from "./chunk-ZVVMGPBJ.js";
6
6
 
7
- // node_modules/.pnpm/@wirecat+cli-core@0.507.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_d5beb0101c7a90701cc33879a5be8d28/node_modules/@wirecat/cli-core/dist/mcp/instructions.js
7
+ // node_modules/.pnpm/@wirecat+cli-core@0.519.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_3a77a7242330d89656a32c8be893f1d1/node_modules/@wirecat/cli-core/dist/mcp/instructions.js
8
8
  var instructions = /* @__PURE__ */ __name(({ command, name, profile, writes, skill }) => {
9
9
  const all = typeof profile !== "string";
10
10
  const offers = /* @__PURE__ */ __name((key) => all || writes.includes(key), "offers");
@@ -14,7 +14,7 @@ import {
14
14
  __name
15
15
  } from "./chunk-ZVVMGPBJ.js";
16
16
 
17
- // node_modules/.pnpm/@wirecat+cli-core@0.507.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_d5beb0101c7a90701cc33879a5be8d28/node_modules/@wirecat/cli-core/dist/sends/permissions.js
17
+ // node_modules/.pnpm/@wirecat+cli-core@0.519.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_3a77a7242330d89656a32c8be893f1d1/node_modules/@wirecat/cli-core/dist/sends/permissions.js
18
18
  var LEVELS = ["deny", "readonly", "ask", "allow"];
19
19
  var DANGEROUS = /* @__PURE__ */ new Set(["messages.delete", "bot.messages.delete", "topics.delete", "chats.delete", "chats.clear"]);
20
20
  var skipFlagFor = /* @__PURE__ */ __name((key) => DANGEROUS.has(key) ? "--allow-dangerous" : "--yes", "skipFlagFor");
@@ -403,7 +403,7 @@ var assertRetentionEvidenceRead = /* @__PURE__ */ __name((permissions) => {
403
403
  }
404
404
  }, "assertRetentionEvidenceRead");
405
405
 
406
- // node_modules/.pnpm/@wirecat+cli-core@0.507.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_d5beb0101c7a90701cc33879a5be8d28/node_modules/@wirecat/cli-core/dist/cli/result-fields.js
406
+ // node_modules/.pnpm/@wirecat+cli-core@0.519.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_3a77a7242330d89656a32c8be893f1d1/node_modules/@wirecat/cli-core/dist/cli/result-fields.js
407
407
  var named = /* @__PURE__ */ __name((work) => {
408
408
  try {
409
409
  return work();
@@ -430,7 +430,7 @@ var projectFields2 = /* @__PURE__ */ __name((value, fields) => named(() => {
430
430
  return projectFields(value, fields);
431
431
  }), "projectFields");
432
432
 
433
- // node_modules/.pnpm/@wirecat+cli-core@0.507.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_d5beb0101c7a90701cc33879a5be8d28/node_modules/@wirecat/cli-core/dist/output-detail.js
433
+ // node_modules/.pnpm/@wirecat+cli-core@0.519.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_3a77a7242330d89656a32c8be893f1d1/node_modules/@wirecat/cli-core/dist/output-detail.js
434
434
  var RARELY_SET = ["editedAt", "replyTo", "forwardedFrom", "reactions"];
435
435
  var BRIEF = ["locator", "chatTitle", "timestamp", "senderName", "excerpt", "score"];
436
436
  var isHit = /* @__PURE__ */ __name((value) => typeof value === "object" && value !== null && typeof value.locator === "string" && typeof value.text === "string", "isHit");
@@ -460,7 +460,7 @@ var atDetail = /* @__PURE__ */ __name((value, detail = "default") => {
460
460
  return value;
461
461
  }, "atDetail");
462
462
 
463
- // node_modules/.pnpm/@wirecat+cli-core@0.507.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_d5beb0101c7a90701cc33879a5be8d28/node_modules/@wirecat/cli-core/dist/output.js
463
+ // node_modules/.pnpm/@wirecat+cli-core@0.519.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_3a77a7242330d89656a32c8be893f1d1/node_modules/@wirecat/cli-core/dist/output.js
464
464
  var resolveOutput = /* @__PURE__ */ __name(({ json, jsonl, quiet, streams = processStreams, tty, color, fields, hitDetail, env = process.env, capture } = {}) => {
465
465
  const interactive = tty ?? process.stdout.isTTY === true;
466
466
  const format = jsonl ? "jsonl" : json || !interactive ? "json" : "pretty";
@@ -8,25 +8,25 @@ import {
8
8
  readSetupAnswers,
9
9
  unanswered,
10
10
  writeSetupAnswers
11
- } from "./chunk-WLFLBWNH.js";
11
+ } from "./chunk-XQVGIW4R.js";
12
12
  import {
13
13
  DEFAULT_STEMMERS,
14
14
  LANGUAGES
15
- } from "./chunk-MNOIRJEO.js";
15
+ } from "./chunk-V7NZTJKU.js";
16
16
  import {
17
17
  sharedConfigPath
18
- } from "./chunk-KHTO2Q6E.js";
18
+ } from "./chunk-JXYFIUVX.js";
19
19
  import {
20
20
  installerOf
21
21
  } from "./chunk-QX7RCLRS.js";
22
22
  import {
23
23
  storePath
24
- } from "./chunk-FZ5FXIG6.js";
24
+ } from "./chunk-PL6UPJIL.js";
25
25
  import {
26
26
  __name
27
27
  } from "./chunk-ZVVMGPBJ.js";
28
28
 
29
- // node_modules/.pnpm/@wirecat+cli-core@0.507.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_d5beb0101c7a90701cc33879a5be8d28/node_modules/@wirecat/cli-core/dist/cli/first-run.js
29
+ // node_modules/.pnpm/@wirecat+cli-core@0.519.0_@wirecat+cli-base@0.68.1_commander@15.0.0_esbuild@0.28.2_type_3a77a7242330d89656a32c8be893f1d1/node_modules/@wirecat/cli-core/dist/cli/first-run.js
30
30
  import { spawnSync } from "node:child_process";
31
31
  import { accessSync, constants, realpathSync } from "node:fs";
32
32
  import { delimiter, join } from "node:path";
@@ -84,7 +84,7 @@ var suggested = /* @__PURE__ */ __name((env, contentLanguages) => {
84
84
  return (own.length ? own : LANGUAGES.filter(({ code }) => code === "en" || code === system)).map(({ name }) => name);
85
85
  }, "suggested");
86
86
  var askLanguages = /* @__PURE__ */ __name(async ({ command, env, io, contentLanguages }) => {
87
- const { openStore } = await import("./store-2BUX6LVX.js");
87
+ const { openStore } = await import("./store-6AVCPLH4.js");
88
88
  const store = await openStore({ env });
89
89
  let rebuild = false;
90
90
  try {
@@ -113,8 +113,8 @@ var askLanguages = /* @__PURE__ */ __name(async ({ command, env, io, contentLang
113
113
  if (!rebuild)
114
114
  return;
115
115
  const [{ openCache }, { buildStems }] = await Promise.all([
116
- import("./open-2V7QZQJP.js"),
117
- import("./store-maintenance-command-I7V5C44K.js")
116
+ import("./open-SWJGI6H4.js"),
117
+ import("./store-maintenance-command-S6235I3W.js")
118
118
  ]);
119
119
  const database = await openCache(storePath(env));
120
120
  try {
@@ -126,7 +126,7 @@ var askLanguages = /* @__PURE__ */ __name(async ({ command, env, io, contentLang
126
126
  var askTools = /* @__PURE__ */ __name(async (run) => {
127
127
  const { command, env, io } = run;
128
128
  const installed = run.installed ?? ((name) => onPath(name, env));
129
- const { WIRECAT_TOOLS } = await import("./first-screen-4U2DMV3G.js");
129
+ const { WIRECAT_TOOLS } = await import("./first-screen-43VLEDWZ.js");
130
130
  const others = WIRECAT_TOOLS.filter((tool) => tool.command !== command);
131
131
  const missing = others.filter((tool) => !installed(tool.command));
132
132
  io.say("Other WireCat tools \u2014 they share this store, so one search finds everything:");
@@ -199,7 +199,7 @@ var setupAtStart = /* @__PURE__ */ __name(async (start) => {
199
199
  contentLanguages: start.contentLanguages,
200
200
  all: start.path[0] === "setup",
201
201
  io: {
202
- ask: /* @__PURE__ */ __name(async (prompt) => (await import("./prompt-YKWAI222.js")).readSecret(prompt, { input, echo: true }), "ask"),
202
+ ask: /* @__PURE__ */ __name(async (prompt) => (await import("./prompt-OZLHHGCD.js")).readSecret(prompt, { input, echo: true }), "ask"),
203
203
  say: /* @__PURE__ */ __name((text) => process.stderr.write(`${text}
204
204
  `), "say")
205
205
  }