@wirecat/cli-memo 0.131.24 → 0.131.26

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 (258) hide show
  1. package/README.md +9 -12
  2. package/dist/actions/actions.d.ts +1 -1
  3. package/dist/actions/actions.d.ts.map +1 -1
  4. package/dist/actions/actions.js +27 -8
  5. package/dist/actions/actions.js.map +1 -1
  6. package/dist/actions/command.d.ts +1 -1
  7. package/dist/actions/command.d.ts.map +1 -1
  8. package/dist/actions/command.js +1 -12
  9. package/dist/actions/command.js.map +1 -1
  10. package/dist/app.d.ts +1 -1
  11. package/dist/bin/memo.js +2 -2
  12. package/dist/bundle/{all-profiles-ZCJTYGOL.js → all-profiles-VULFSNYE.js} +9 -9
  13. package/dist/bundle/{anthropic-7WVLAKTX.js → anthropic-VXQ6ST2U.js} +6 -6
  14. package/dist/bundle/{app-server-6G3SXEHO.js → app-server-HQPELIPY.js} +42 -42
  15. package/dist/bundle/auto-3R4RFJGK.js +86 -0
  16. package/dist/bundle/{bun-JVBDJKBB.js → bun-2NMWL5YB.js} +2 -2
  17. package/dist/bundle/{bun-sqlite-P4I7NVMQ.js → bun-sqlite-CT544OXO.js} +5 -5
  18. package/dist/bundle/{chunk-EGG3PGCM.js → chunk-254TXVLA.js} +2 -2
  19. package/dist/bundle/{chunk-FXHN2UZW.js → chunk-2ND2XYME.js} +33 -17
  20. package/dist/bundle/{chunk-5YCNCXL5.js → chunk-3CVDHJER.js} +1 -1
  21. package/dist/bundle/{chunk-ALGIPJ6L.js → chunk-3ZJE5TIG.js} +2 -2
  22. package/dist/bundle/{chunk-3KNXQZMO.js → chunk-4ENVJFRM.js} +29 -29
  23. package/dist/bundle/{chunk-NAH473ZR.js → chunk-5FPQGUJA.js} +1 -1
  24. package/dist/bundle/{chunk-ZOYGY2PN.js → chunk-6PRRZC7Z.js} +3 -3
  25. package/dist/bundle/{chunk-CM2H7NRC.js → chunk-6TJCRDNZ.js} +4 -4
  26. package/dist/bundle/{chunk-AWGV4VOA.js → chunk-7ISENDNK.js} +12 -12
  27. package/dist/bundle/{chunk-UY2VH3QK.js → chunk-7LMTWOTP.js} +2 -2
  28. package/dist/bundle/{chunk-2IRCJT4O.js → chunk-A4NZ2XOG.js} +8 -8
  29. package/dist/bundle/{chunk-R3LNQ3I4.js → chunk-A6PITALJ.js} +4 -2
  30. package/dist/bundle/{chunk-EACY2ULS.js → chunk-AGMYCYSG.js} +306 -187
  31. package/dist/bundle/{chunk-EB7LKK4K.js → chunk-ARDUJR5Z.js} +1 -1
  32. package/dist/bundle/{chunk-UA2C4BCH.js → chunk-BELLQAWL.js} +9 -9
  33. package/dist/bundle/{chunk-LWIMGWKB.js → chunk-BO4FN4UB.js} +3 -3
  34. package/dist/bundle/{chunk-3MER7NE6.js → chunk-CRC3AW6N.js} +4 -4
  35. package/dist/bundle/{chunk-UVR6U55E.js → chunk-CUWI6JIX.js} +6 -6
  36. package/dist/bundle/{chunk-VLPMB3UU.js → chunk-CW3NJ764.js} +4 -4
  37. package/dist/bundle/{chunk-ND3GBFEY.js → chunk-DKKWZMR7.js} +2 -2
  38. package/dist/bundle/{chunk-BTQSFPIM.js → chunk-DUHXWFCB.js} +5 -5
  39. package/dist/bundle/{chunk-CCHHEMPM.js → chunk-EB2IULWB.js} +3 -2
  40. package/dist/bundle/{chunk-R2LJDDZP.js → chunk-FHY664YS.js} +4 -4
  41. package/dist/bundle/{chunk-JY4LVWGZ.js → chunk-G2BB5WY5.js} +15 -8
  42. package/dist/bundle/chunk-GJBK3M6X.js +452 -0
  43. package/dist/bundle/{chunk-ZDOVR4PA.js → chunk-GOEHJK2R.js} +7 -7
  44. package/dist/bundle/{chunk-GQOXFZBX.js → chunk-GPYGMETC.js} +286 -282
  45. package/dist/bundle/{chunk-DIMX5AEE.js → chunk-H6O6IQND.js} +5 -5
  46. package/dist/bundle/{chunk-ELKYINWL.js → chunk-HN3EDDVX.js} +13 -13
  47. package/dist/bundle/{chunk-GSEDSGJF.js → chunk-HVVBSM2C.js} +753 -648
  48. package/dist/bundle/{chunk-JCCL7RGH.js → chunk-I7PL5WX2.js} +4 -4
  49. package/dist/bundle/{chunk-LNXFM4FD.js → chunk-IJ34FAES.js} +45 -26
  50. package/dist/bundle/{chunk-MPVW7BQZ.js → chunk-IUM5XZWV.js} +6 -6
  51. package/dist/bundle/{chunk-GRXVN2X7.js → chunk-J57DDKF4.js} +1 -1
  52. package/dist/bundle/{chunk-INTF3YPV.js → chunk-KFDPW2AR.js} +2 -2
  53. package/dist/bundle/{chunk-AIGMYGEL.js → chunk-KMZRXGTF.js} +1 -1
  54. package/dist/bundle/{chunk-MROFZXAB.js → chunk-KTDNFSXC.js} +22 -22
  55. package/dist/bundle/{chunk-ILHTNOIV.js → chunk-KV4267S4.js} +1 -1
  56. package/dist/bundle/{chunk-VVEFQEWP.js → chunk-LJZFMXDC.js} +22 -22
  57. package/dist/bundle/{chunk-OQK2IKPB.js → chunk-LMN7SYX4.js} +1 -1
  58. package/dist/bundle/{chunk-RTESJ5O2.js → chunk-M4QN77GH.js} +4 -4
  59. package/dist/bundle/{chunk-M43DAAZ7.js → chunk-M6O4DH5F.js} +1 -1
  60. package/dist/bundle/{chunk-UXCDBNAY.js → chunk-MQAHMAJB.js} +2 -2
  61. package/dist/bundle/{chunk-XF3LZ32F.js → chunk-NAM2Y63Z.js} +3 -3
  62. package/dist/bundle/{chunk-UPXUE27A.js → chunk-NH2JSH24.js} +6 -6
  63. package/dist/bundle/{chunk-3U7OUQV2.js → chunk-OYB3FUYQ.js} +1 -1
  64. package/dist/bundle/{chunk-J6D34BFP.js → chunk-PWA3RNXN.js} +260 -263
  65. package/dist/bundle/{chunk-KQSHIQSV.js → chunk-QFW4MJIH.js} +239 -242
  66. package/dist/bundle/{chunk-CPJEQK4V.js → chunk-QKQ7A4L7.js} +46 -46
  67. package/dist/bundle/{chunk-N5H6I7WQ.js → chunk-S3RBWUUA.js} +6 -6
  68. package/dist/bundle/{chunk-Q6MFBH6Q.js → chunk-SY7M2DLJ.js} +9 -9
  69. package/dist/bundle/{chunk-EKTZEF3Q.js → chunk-TKVRZZE3.js} +3 -27
  70. package/dist/bundle/{chunk-SKTGBVYC.js → chunk-TPFWNOPG.js} +4 -4
  71. package/dist/bundle/{chunk-F2ED6KG6.js → chunk-TXANQZEG.js} +3 -3
  72. package/dist/bundle/{chunk-T4LW6UYQ.js → chunk-TZ7WDQPD.js} +40 -34
  73. package/dist/bundle/{chunk-AIVUS6WA.js → chunk-UZXCBBDC.js} +15 -12
  74. package/dist/bundle/{chunk-XSI5NYGB.js → chunk-VL3YCTZD.js} +8 -8
  75. package/dist/bundle/{chunk-ZLZE5P6M.js → chunk-WRZ7JDA2.js} +8 -8
  76. package/dist/bundle/{chunk-EW3XTUPB.js → chunk-XBIPSSKI.js} +4 -4
  77. package/dist/bundle/{chunk-JDDVGGUV.js → chunk-XKGXVVYV.js} +10 -10
  78. package/dist/bundle/{chunk-ITQBXFMC.js → chunk-YFBKS5BW.js} +3 -3
  79. package/dist/bundle/{chunk-PQLBPYJR.js → chunk-YPF6OS37.js} +1 -1
  80. package/dist/bundle/{chunk-IC2TL7RW.js → chunk-Z3YGDBBS.js} +2 -2
  81. package/dist/bundle/{chunk-IJC6MFLP.js → chunk-ZR3BPBS6.js} +10 -10
  82. package/dist/bundle/command-contract-RQMIQKBS.js +32 -0
  83. package/dist/bundle/{decode-YHX3DQG2.js → decode-7VB3CHK2.js} +5 -5
  84. package/dist/bundle/{dispatch-MELZFYOS.js → dispatch-CU5KGRQL.js} +8 -8
  85. package/dist/bundle/{echarts-FBVAP7BR.js → echarts-45D6USAX.js} +2 -2
  86. package/dist/bundle/{embed-CQJ42S5C.js → embed-KU2RGB24.js} +6 -6
  87. package/dist/bundle/{embedder-EDXLEJ27.js → embedder-E7YZDZ5Y.js} +9 -9
  88. package/dist/bundle/{entry-HZEA7QFK.js → entry-N42HJMIN.js} +7 -7
  89. package/dist/bundle/failure-R355OCVE.js +66 -0
  90. package/dist/bundle/{failure-RBNZBCZJ.js → failure-TUXXI6JT.js} +2 -2
  91. package/dist/bundle/{first-run-JZQN7R6M.js → first-run-Y5YNAAO3.js} +11 -11
  92. package/dist/bundle/first-screen-SNPGBQFZ.js +30 -0
  93. package/dist/bundle/{instructions-NYVYNWVU.js → instructions-6EFSPC7C.js} +1 -1
  94. package/dist/bundle/mcp-6Z7UKX7E.js +90 -0
  95. package/dist/bundle/{mcp-MNI62HHE.js → mcp-PPVOM4SE.js} +2 -2
  96. package/dist/bundle/memo.js +16 -16
  97. package/dist/bundle/{node-2QE6UPGS.js → node-OXC26QXO.js} +2 -2
  98. package/dist/bundle/{node-sqlite-SDHZJNY7.js → node-sqlite-FNTICDEN.js} +6 -6
  99. package/dist/bundle/{oauth-FFUJREKS.js → oauth-4JFOFCBB.js} +7 -7
  100. package/dist/bundle/{open-NT2GYX6N.js → open-WXFCCY7S.js} +5 -5
  101. package/dist/bundle/{openai-IQA2XR6Z.js → openai-TPQKQNM7.js} +10 -10
  102. package/dist/bundle/{process-HIEJXYW6.js → process-YWPAOI6G.js} +1 -1
  103. package/dist/bundle/{chunk-DMQ3342A.js → program-WFUPN7XO.js} +9769 -2059
  104. package/dist/bundle/{prompt-IOZAME2R.js → prompt-HJUH4EP4.js} +5 -5
  105. package/dist/bundle/{recognize-2XOAZJ5N.js → recognize-DAIRHALM.js} +4 -4
  106. package/dist/bundle/{remote-2LE7OTDA.js → remote-MJLWTLAX.js} +7 -7
  107. package/dist/bundle/{rerank-UKOVVZM6.js → rerank-VAK5HSJE.js} +7 -7
  108. package/dist/bundle/{serve-S2UHPEBP.js → serve-M2A66WOW.js} +9 -9
  109. package/dist/bundle/server-33FB7QXW.js +48 -0
  110. package/dist/bundle/server-AIPDQO57.js +61 -0
  111. package/dist/bundle/{server-BG4WWQHY.js → server-NN2CBVSX.js} +57 -57
  112. package/dist/bundle/{state-F5KT3CBD.js → state-6TBUXJOX.js} +6 -6
  113. package/dist/bundle/{store-WBUUS7FO.js → store-TJCL3QBY.js} +13 -13
  114. package/dist/bundle/store-maintenance-command-NKJV5A3G.js +48 -0
  115. package/dist/bundle/update-OXR3SNM2.js +69 -0
  116. package/dist/config.d.ts +15 -29
  117. package/dist/config.d.ts.map +1 -1
  118. package/dist/config.js +23 -36
  119. package/dist/config.js.map +1 -1
  120. package/dist/context/command.d.ts.map +1 -1
  121. package/dist/context/command.js +6 -2
  122. package/dist/context/command.js.map +1 -1
  123. package/dist/context/context.d.ts +2 -0
  124. package/dist/context/context.d.ts.map +1 -1
  125. package/dist/context/context.js +15 -0
  126. package/dist/context/context.js.map +1 -1
  127. package/dist/doctor/command.d.ts +0 -12
  128. package/dist/doctor/command.d.ts.map +1 -1
  129. package/dist/doctor/command.js +19 -24
  130. package/dist/doctor/command.js.map +1 -1
  131. package/dist/examples.d.ts.map +1 -1
  132. package/dist/examples.js +3 -9
  133. package/dist/examples.js.map +1 -1
  134. package/dist/failure.d.ts +2 -2
  135. package/dist/mail/command.d.ts.map +1 -1
  136. package/dist/mail/command.js +2 -87
  137. package/dist/mail/command.js.map +1 -1
  138. package/dist/mail/findings-command.d.ts.map +1 -1
  139. package/dist/mail/findings-command.js +1 -1
  140. package/dist/mail/findings-command.js.map +1 -1
  141. package/dist/mail/messages-command.d.ts.map +1 -1
  142. package/dist/mail/messages-command.js +9 -2
  143. package/dist/mail/messages-command.js.map +1 -1
  144. package/dist/mail/moved.d.ts +1 -1
  145. package/dist/mail/moved.d.ts.map +1 -1
  146. package/dist/mail/moved.js +3 -0
  147. package/dist/mail/moved.js.map +1 -1
  148. package/dist/mail/review-command.d.ts +1 -1
  149. package/dist/mail/review-command.d.ts.map +1 -1
  150. package/dist/mail/review-command.js +5 -8
  151. package/dist/mail/review-command.js.map +1 -1
  152. package/dist/program.js +1 -1
  153. package/dist/program.js.map +1 -1
  154. package/dist/read-only.d.ts +1 -1
  155. package/dist/reasons.d.ts.map +1 -1
  156. package/dist/reasons.js +1 -25
  157. package/dist/reasons.js.map +1 -1
  158. package/dist/review/command.d.ts +0 -1
  159. package/dist/review/command.d.ts.map +1 -1
  160. package/dist/review/command.js +2 -10
  161. package/dist/review/command.js.map +1 -1
  162. package/dist/review/kinds.d.ts +4 -21
  163. package/dist/review/kinds.d.ts.map +1 -1
  164. package/dist/review/kinds.js +13 -174
  165. package/dist/review/kinds.js.map +1 -1
  166. package/dist/review/review.js +2 -2
  167. package/dist/review/review.js.map +1 -1
  168. package/dist/review/status.js +2 -2
  169. package/dist/review/status.js.map +1 -1
  170. package/dist/run/auto.js +3 -3
  171. package/dist/run/auto.js.map +1 -1
  172. package/dist/run/import.d.ts +2 -2
  173. package/dist/run/import.d.ts.map +1 -1
  174. package/dist/run/import.js +24 -121
  175. package/dist/run/import.js.map +1 -1
  176. package/dist/schedule/command.d.ts +2 -2
  177. package/dist/schedule/command.d.ts.map +1 -1
  178. package/dist/schedule/command.js +9 -4
  179. package/dist/schedule/command.js.map +1 -1
  180. package/dist/search/command.js +1 -1
  181. package/dist/store/source-list.d.ts +1 -6
  182. package/dist/store/source-list.d.ts.map +1 -1
  183. package/dist/store/source-list.js +11 -46
  184. package/dist/store/source-list.js.map +1 -1
  185. package/dist/tasks/command.js +1 -1
  186. package/dist/tasks/command.js.map +1 -1
  187. package/dist/version.d.ts +1 -1
  188. package/dist/version.js +1 -1
  189. package/package.json +3 -3
  190. package/scenarios/set-up.md +3 -3
  191. package/skills/cli-memo/SKILL.md +13 -21
  192. package/skills/mail-triage/SKILL.md +28 -16
  193. package/dist/bundle/auto-JWPM5654.js +0 -86
  194. package/dist/bundle/chunk-MLMSQK76.js +0 -103
  195. package/dist/bundle/command-contract-543RRFNU.js +0 -32
  196. package/dist/bundle/failure-62G7QSPX.js +0 -66
  197. package/dist/bundle/first-screen-56V3UOQE.js +0 -30
  198. package/dist/bundle/mcp-Y6IPYDS2.js +0 -90
  199. package/dist/bundle/program-DEMRKCZY.js +0 -10972
  200. package/dist/bundle/server-3YNOEPWU.js +0 -61
  201. package/dist/bundle/server-EZWQ5KP4.js +0 -48
  202. package/dist/bundle/setup-2X7ADKFH.js +0 -973
  203. package/dist/bundle/store-maintenance-command-KLST56XF.js +0 -48
  204. package/dist/bundle/update-WH4CGJGP.js +0 -69
  205. package/dist/mail/accounts.d.ts +0 -7
  206. package/dist/mail/accounts.d.ts.map +0 -1
  207. package/dist/mail/accounts.js +0 -28
  208. package/dist/mail/accounts.js.map +0 -1
  209. package/dist/mail/backfill-headers.d.ts +0 -11
  210. package/dist/mail/backfill-headers.d.ts.map +0 -1
  211. package/dist/mail/backfill-headers.js +0 -84
  212. package/dist/mail/backfill-headers.js.map +0 -1
  213. package/dist/mail/domain-age.d.ts +0 -26
  214. package/dist/mail/domain-age.d.ts.map +0 -1
  215. package/dist/mail/domain-age.js +0 -151
  216. package/dist/mail/domain-age.js.map +0 -1
  217. package/dist/mail/gmail.d.ts +0 -39
  218. package/dist/mail/gmail.d.ts.map +0 -1
  219. package/dist/mail/gmail.js +0 -325
  220. package/dist/mail/gmail.js.map +0 -1
  221. package/dist/mail/himalaya.d.ts +0 -22
  222. package/dist/mail/himalaya.d.ts.map +0 -1
  223. package/dist/mail/himalaya.js +0 -113
  224. package/dist/mail/himalaya.js.map +0 -1
  225. package/dist/mail/mbox.d.ts +0 -9
  226. package/dist/mail/mbox.d.ts.map +0 -1
  227. package/dist/mail/mbox.js +0 -230
  228. package/dist/mail/mbox.js.map +0 -1
  229. package/dist/mail/repair.d.ts +0 -7
  230. package/dist/mail/repair.d.ts.map +0 -1
  231. package/dist/mail/repair.js +0 -54
  232. package/dist/mail/repair.js.map +0 -1
  233. package/dist/mail/rule-store.d.ts +0 -12
  234. package/dist/mail/rule-store.d.ts.map +0 -1
  235. package/dist/mail/rule-store.js +0 -83
  236. package/dist/mail/rule-store.js.map +0 -1
  237. package/dist/mail/setup-command.d.ts +0 -4
  238. package/dist/mail/setup-command.d.ts.map +0 -1
  239. package/dist/mail/setup-command.js +0 -41
  240. package/dist/mail/setup-command.js.map +0 -1
  241. package/dist/mail/setup.d.ts +0 -19
  242. package/dist/mail/setup.d.ts.map +0 -1
  243. package/dist/mail/setup.js +0 -95
  244. package/dist/mail/setup.js.map +0 -1
  245. package/dist/mail/slices.d.ts +0 -6
  246. package/dist/mail/slices.d.ts.map +0 -1
  247. package/dist/mail/slices.js +0 -7
  248. package/dist/mail/slices.js.map +0 -1
  249. package/dist/mail/source.d.ts +0 -7
  250. package/dist/mail/source.d.ts.map +0 -1
  251. package/dist/mail/source.js +0 -119
  252. package/dist/mail/source.js.map +0 -1
  253. package/dist/mail/sync.d.ts +0 -21
  254. package/dist/mail/sync.d.ts.map +0 -1
  255. package/dist/mail/sync.js +0 -24
  256. package/dist/mail/sync.js.map +0 -1
  257. /package/dist/bundle/{chunk-CWOKGEL3.js → chunk-DF7NE4ZG.js} +0 -0
  258. /package/dist/bundle/{chunk-NUN6OGOV.js → chunk-LU3WKZBA.js} +0 -0
@@ -30,18 +30,18 @@ import {
30
30
  string,
31
31
  union,
32
32
  variant
33
- } from "./chunk-JY4LVWGZ.js";
33
+ } from "./chunk-G2BB5WY5.js";
34
34
  import {
35
35
  CliError,
36
36
  isCliError,
37
37
  singleLine,
38
38
  visibleControls
39
- } from "./chunk-CCHHEMPM.js";
39
+ } from "./chunk-EB2IULWB.js";
40
40
  import {
41
41
  __name
42
42
  } from "./chunk-ZVVMGPBJ.js";
43
43
 
44
- // node_modules/.pnpm/@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/query/types.js
44
+ // node_modules/.pnpm/@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/query/types.js
45
45
  var QUERY_LIMITS = {
46
46
  bytes: 8192,
47
47
  depth: 32,
@@ -85,7 +85,7 @@ function queryError(reason, span, alternative, context3 = {}, details = {}) {
85
85
  __name(queryError, "queryError");
86
86
  var walkQuery = /* @__PURE__ */ __name((node) => node.kind === "predicate" ? [node] : node.clauses.flatMap(({ node: node2 }) => walkQuery(node2)), "walkQuery");
87
87
 
88
- // node_modules/.pnpm/@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/query/dates.js
88
+ // node_modules/.pnpm/@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/query/dates.js
89
89
  var timezoneOf = /* @__PURE__ */ __name((given) => {
90
90
  const zone = given ?? Intl.DateTimeFormat().resolvedOptions().timeZone ?? "UTC";
91
91
  try {
@@ -230,7 +230,7 @@ var dateRange = /* @__PURE__ */ __name((lower, upper, lowerInclusive, upperInclu
230
230
  };
231
231
  }, "dateRange");
232
232
 
233
- // node_modules/.pnpm/@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/query/fields.js
233
+ // node_modules/.pnpm/@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/query/fields.js
234
234
  var FIELD_TYPES = ["kw", "txt", "enum", "num", "time", "bool", "ref"];
235
235
  var OPERATORS_BY_TYPE = {
236
236
  kw: ["term", "phrase", "wildcard"],
@@ -309,22 +309,17 @@ var queryFieldsOf = /* @__PURE__ */ __name((schema, annotations = {}) => {
309
309
  return [...own, ...relations, ...states];
310
310
  }, "queryFieldsOf");
311
311
 
312
- // node_modules/.pnpm/@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/query/help.js
313
- var QUERY_SYNTAX = 'field:value \xB7 "a phrase" \xB7 word* \xB7 AND OR NOT \xB7 ( ) \xB7 [a TO b] \xB7 > >= < <=';
312
+ // node_modules/.pnpm/@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/query/help.js
314
313
  var shownOf = /* @__PURE__ */ __name((registry) => registry.backend === "native" ? registry.fields.filter((field) => field.native) : registry.fields, "shownOf");
315
- var leftOut = /* @__PURE__ */ __name((fields2) => fields2.filter((field) => field.negatable).map((field) => field.name), "leftOut");
316
- var has = /* @__PURE__ */ __name((fields2, operator) => fields2.some((field) => field.operators.includes(operator)), "has");
317
- var syntaxOf = /* @__PURE__ */ __name((shown, backend) => {
318
- if (backend !== "native")
319
- return QUERY_SYNTAX;
320
- return [
321
- "field:value",
322
- ...has(shown, "phrase") ? ['"a phrase"'] : [],
323
- ...has(shown, "wildcard") ? ["word*"] : [],
324
- "terms joined by AND",
325
- ...has(shown, "range") ? ["[a TO b] \xB7 > >= < <="] : []
326
- ].join(" \xB7 ");
327
- }, "syntaxOf");
314
+ var leftOut = /* @__PURE__ */ __name((fields) => fields.filter((field) => field.negatable).map((field) => field.name), "leftOut");
315
+ var has = /* @__PURE__ */ __name((fields, operator) => fields.some((field) => field.operators.includes(operator)), "has");
316
+ var syntaxOf = /* @__PURE__ */ __name((shown, backend) => [
317
+ "field:value",
318
+ ...has(shown, "phrase") ? ['"a phrase"'] : [],
319
+ ...has(shown, "wildcard") ? ["word*"] : [],
320
+ ...backend === "native" ? ["terms joined by AND"] : ["AND OR NOT", "( )"],
321
+ ...has(shown, "range") ? ["[a TO b] \xB7 > >= < <="] : []
322
+ ].join(" \xB7 "), "syntaxOf");
328
323
  var kindOf = /* @__PURE__ */ __name((field) => field.values ? `${field.type}: ${field.values.join("|")}` : `${field.type}: ${field.operators.join(", ")}`, "kindOf");
329
324
  var fieldsHelp = /* @__PURE__ */ __name((registry, guide) => {
330
325
  const shown = shownOf(registry);
@@ -345,13 +340,13 @@ var queryDescription = /* @__PURE__ */ __name((registry) => {
345
340
  if (shown.length === 0)
346
341
  return "field:value terms; this list filters by none yet, so any term is refused";
347
342
  const negatable = leftOut(shown);
348
- const terms = registry.backend === "native" ? `field:value terms joined by AND that narrow the list${negatable.length > 0 ? `; -field:value or NOT field:value leaves out what matches, for ${negatable.join(", ")} only` : ""}` : "field:value terms that narrow the list (Lucene: AND OR NOT, -field:value, [a TO b], > <)";
349
- const fields2 = shown.map((field) => field.values ? `${field.name} (${field.values.join("|")})` : field.name);
343
+ const terms = registry.backend === "native" ? `field:value terms joined by AND that narrow the list${negatable.length > 0 ? `; -field:value or NOT field:value leaves out what matches, for ${negatable.join(", ")} only` : ""}` : `field:value terms that narrow the list (Lucene: AND OR NOT, -field:value${has(shown, "range") ? ", [a TO b], > <" : ""})`;
344
+ const fields = shown.map((field) => field.values ? `${field.name} (${field.values.join("|")})` : field.name);
350
345
  const defaults = registry.defaults?.length ? `; unless named: ${registry.defaults.join(" ")}` : "";
351
- return `${terms}; fields: ${fields2.join(", ")}; e.g. ${shown[0]?.example ?? ""}${defaults}`;
346
+ return `${terms}; fields: ${fields.join(", ")}; e.g. ${shown[0]?.example ?? ""}${defaults}`;
352
347
  }, "queryDescription");
353
348
 
354
- // node_modules/.pnpm/@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/query/parser.js
349
+ // node_modules/.pnpm/@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/query/parser.js
355
350
  var whitespace = /* @__PURE__ */ __name((c) => /[ \t\n\r\u3000]/u.test(c), "whitespace");
356
351
  var reserved = /* @__PURE__ */ new Set([
357
352
  "+",
@@ -394,13 +389,13 @@ var decodeEscapes = /* @__PURE__ */ __name((raw, span, fail) => {
394
389
  }
395
390
  return out;
396
391
  }, "decodeEscapes");
397
- var tokensOf = /* @__PURE__ */ __name((text6, fail = queryError) => {
392
+ var tokensOf = /* @__PURE__ */ __name((text5, fail = queryError) => {
398
393
  const tokens = [];
399
394
  let at = 0;
400
395
  let range = false;
401
- while (at < text6.length) {
396
+ while (at < text5.length) {
402
397
  const start = at;
403
- const c = text6[at] ?? "";
398
+ const c = text5[at] ?? "";
404
399
  if (whitespace(c)) {
405
400
  at++;
406
401
  continue;
@@ -408,30 +403,30 @@ var tokensOf = /* @__PURE__ */ __name((text6, fail = queryError) => {
408
403
  let kind = c;
409
404
  if (c === '"' || !range && c === "/") {
410
405
  at++;
411
- while (at < text6.length && text6[at] !== c) {
412
- if (text6[at] === "\\" && (c === '"' || text6[at + 1] === "/"))
406
+ while (at < text5.length && text5[at] !== c) {
407
+ if (text5[at] === "\\" && (c === '"' || text5[at + 1] === "/"))
413
408
  at++;
414
409
  at++;
415
410
  }
416
- if (at >= text6.length)
417
- fail("query.unclosed-literal", { start, end: at }, c === "/" ? regexHint(text6, start) : void 0);
411
+ if (at >= text5.length)
412
+ fail("query.unclosed-literal", { start, end: at }, c === "/" ? regexHint(text5, start) : void 0);
418
413
  at++;
419
- if (c === "/" && /^[dgimsuvy]+(?:$|[ \t\n\r)])/.test(text6.slice(at)))
414
+ if (c === "/" && /^[dgimsuvy]+(?:$|[ \t\n\r)])/.test(text5.slice(at)))
420
415
  fail("query.unsupported-regex-flags", { start: at, end: at + 1 }, "Lucene regex does not take JavaScript flags");
421
416
  kind = c === '"' ? "quoted" : "regex";
422
417
  } else if (range && c !== "]" && c !== "}") {
423
- while (at < text6.length && !whitespace(text6[at] ?? "") && !["]", "}"].includes(text6[at] ?? ""))
418
+ while (at < text5.length && !whitespace(text5[at] ?? "") && !["]", "}"].includes(text5[at] ?? ""))
424
419
  at++;
425
420
  kind = "rangeValue";
426
421
  } else if (reserved.has(c)) {
427
422
  if (c === "\\") {
428
423
  at += 2;
429
- while (at < text6.length && !whitespace(text6[at] ?? "") && (!reserved.has(text6[at] ?? "") || ["+", "-"].includes(text6[at] ?? "")))
424
+ while (at < text5.length && !whitespace(text5[at] ?? "") && (!reserved.has(text5[at] ?? "") || ["+", "-"].includes(text5[at] ?? "")))
430
425
  at++;
431
426
  kind = "term";
432
427
  } else {
433
428
  at++;
434
- if ((c === "<" || c === ">") && text6[at] === "=") {
429
+ if ((c === "<" || c === ">") && text5[at] === "=") {
435
430
  at++;
436
431
  kind += "=";
437
432
  }
@@ -442,15 +437,15 @@ var tokensOf = /* @__PURE__ */ __name((text6, fail = queryError) => {
442
437
  }
443
438
  } else {
444
439
  at++;
445
- while (at < text6.length) {
446
- const next = text6[at] ?? "";
440
+ while (at < text5.length) {
441
+ const next = text5[at] ?? "";
447
442
  if (next === "\\") {
448
- if (at + 1 >= text6.length)
443
+ if (at + 1 >= text5.length)
449
444
  fail("query.invalid-escape", { start: at, end: at + 1 });
450
445
  at += 2;
451
446
  continue;
452
447
  }
453
- if (next === "@" && new RegExp("^@(?:\\p{L}|[\\p{L}\\p{N}][^\\s@]*\\.[\\p{L}\\p{N}])", "u").test(text6.slice(at))) {
448
+ if (next === "@" && new RegExp("^@(?:\\p{L}|[\\p{L}\\p{N}][^\\s@]*\\.[\\p{L}\\p{N}])", "u").test(text5.slice(at))) {
454
449
  at++;
455
450
  continue;
456
451
  }
@@ -458,16 +453,20 @@ var tokensOf = /* @__PURE__ */ __name((text6, fail = queryError) => {
458
453
  break;
459
454
  at++;
460
455
  }
461
- const raw = text6.slice(start, at);
456
+ const [field, colon] = tokens.slice(-2);
457
+ if (field?.kind === "term" && colon?.kind === ":" && colon.span.end === start && text5[at] === ":" && /^[a-z][a-z_-]*$/u.test(text5.slice(start, at)) && /^:[^\s()"]/u.test(text5.slice(at)))
458
+ while (at < text5.length && !whitespace(text5[at] ?? "") && !["(", ")", '"'].includes(text5[at] ?? ""))
459
+ at++;
460
+ const raw = text5.slice(start, at);
462
461
  kind = { AND: "AND", OR: "OR", NOT: "NOT", "&&": "AND", "||": "OR" }[raw] ?? (/^\d+(?:\.\d+)?$/u.test(raw) ? "number" : "term");
463
462
  }
464
- tokens.push({ kind, raw: text6.slice(start, at), span: { start, end: at } });
463
+ tokens.push({ kind, raw: text5.slice(start, at), span: { start, end: at } });
465
464
  }
466
465
  tokens.push({ kind: "EOF", raw: "", span: { start: at, end: at } });
467
466
  return tokens;
468
467
  }, "tokensOf");
469
- var quoteHint = /* @__PURE__ */ __name((text6, at) => {
470
- for (const match of text6.matchAll(/(?<=^|[\s(])([\p{L}\p{N}_.-]+):([^\s"()]+)/gu)) {
468
+ var quoteHint = /* @__PURE__ */ __name((text5, at) => {
469
+ for (const match of text5.matchAll(/(?<=^|[\s(])([\p{L}\p{N}_.-]+):([^\s"()]+)/gu)) {
471
470
  const [whole, field, value = ""] = match;
472
471
  if (at < match.index || at > match.index + whole.length)
473
472
  continue;
@@ -475,15 +474,15 @@ var quoteHint = /* @__PURE__ */ __name((text6, at) => {
475
474
  }
476
475
  return void 0;
477
476
  }, "quoteHint");
478
- var regexHint = /* @__PURE__ */ __name((text6, at) => {
479
- const word = `${/[^\s()"]*$/u.exec(text6.slice(0, at))?.[0] ?? ""}${/^[^\s()"]*/u.exec(text6.slice(at))?.[0] ?? ""}`;
480
- return quoteHint(text6, at) ?? `/ starts a regular expression; put the value in quotes: "${word}"`;
477
+ var regexHint = /* @__PURE__ */ __name((text5, at) => {
478
+ const word = `${/[^\s()"]*$/u.exec(text5.slice(0, at))?.[0] ?? ""}${/^[^\s()"]*/u.exec(text5.slice(at))?.[0] ?? ""}`;
479
+ return quoteHint(text5, at) ?? `/ starts a regular expression; put the value in quotes: "${word}"`;
481
480
  }, "regexHint");
482
- var parseLucene = /* @__PURE__ */ __name((text6, { defaultField = "text", proximity = false, ...context3 } = {}) => {
483
- const fail = /* @__PURE__ */ __name((reason, span, alternative) => queryError(reason, span, alternative ?? quoteHint(text6, span.start), context3), "fail");
484
- if (text6.length > QUERY_LIMITS.bytes || new TextEncoder().encode(text6).length > QUERY_LIMITS.bytes)
485
- fail("query.too-large", { start: 0, end: text6.length });
486
- const tokens = tokensOf(text6, fail);
481
+ var parseLucene = /* @__PURE__ */ __name((text5, { defaultField = "text", proximity = false, ...context3 } = {}) => {
482
+ const fail = /* @__PURE__ */ __name((reason, span, alternative) => queryError(reason, span, alternative ?? quoteHint(text5, span.start), context3), "fail");
483
+ if (text5.length > QUERY_LIMITS.bytes || new TextEncoder().encode(text5).length > QUERY_LIMITS.bytes)
484
+ fail("query.too-large", { start: 0, end: text5.length });
485
+ const tokens = tokensOf(text5, fail);
487
486
  let at = 0;
488
487
  let count6 = 0;
489
488
  let depth = 0;
@@ -649,14 +648,14 @@ var parseLucene = /* @__PURE__ */ __name((text6, { defaultField = "text", proxim
649
648
  }
650
649
  return { version: 1, language: "lucene-v1", root };
651
650
  }, "parseLucene");
652
- var implicitTextTerms = /* @__PURE__ */ __name((text6) => {
653
- const tokens = tokensOf(text6);
651
+ var implicitTextTerms = /* @__PURE__ */ __name((text5) => {
652
+ const tokens = tokensOf(text5);
654
653
  if (tokens.some(({ kind }) => ["AND", "OR", "NOT", "+", "-", "!", "(", ")"].includes(kind)))
655
654
  return /* @__PURE__ */ new Set();
656
655
  return new Set(tokens.flatMap((token, index) => (token.kind === "term" || token.kind === "number") && ![":", "=", "<", ">", "<=", ">="].includes(tokens[index - 1]?.kind ?? "") && ![":", "=", "<", ">", "<=", ">="].includes(tokens[index + 1]?.kind ?? "") ? [token.span.start] : []));
657
656
  }, "implicitTextTerms");
658
657
 
659
- // node_modules/.pnpm/@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/query/validate.js
658
+ // node_modules/.pnpm/@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/query/validate.js
660
659
  var inContext = /* @__PURE__ */ __name((context3, run2) => {
661
660
  try {
662
661
  run2();
@@ -731,7 +730,7 @@ var validateQuery = /* @__PURE__ */ __name((ast, registry, options = {}) => {
731
730
  }, "validateQuery");
732
731
  var fieldsNamed = /* @__PURE__ */ __name((ast) => new Set(walkQuery(ast.root).map((node) => node.field)), "fieldsNamed");
733
732
 
734
- // node_modules/.pnpm/@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/query/registry.js
733
+ // node_modules/.pnpm/@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/query/registry.js
735
734
  var describeQuery = /* @__PURE__ */ __name((registry) => ({
736
735
  entity: registry.entity,
737
736
  backend: registry.backend,
@@ -740,14 +739,14 @@ var describeQuery = /* @__PURE__ */ __name((registry) => ({
740
739
  }), "describeQuery");
741
740
  var exampleProblems = /* @__PURE__ */ __name((registry) => {
742
741
  const syntaxOnly = { ...registry, backend: "sql" };
743
- const problem = /* @__PURE__ */ __name((text6, field) => {
742
+ const problem = /* @__PURE__ */ __name((text5, field) => {
744
743
  try {
745
- const named = walkQuery(validateQuery(parseLucene(text6, { defaultField: "none" }), syntaxOnly).root);
746
- return named.every((node) => node.field === field) ? void 0 : `"${text6}" does not name ${field}`;
744
+ const named = walkQuery(validateQuery(parseLucene(text5, { defaultField: "none" }), syntaxOnly).root);
745
+ return named.every((node) => node.field === field) ? void 0 : `"${text5}" does not name ${field}`;
747
746
  } catch (failure) {
748
747
  if (!isCliError(failure))
749
748
  throw failure;
750
- return `"${text6}": ${failure.message}`;
749
+ return `"${text5}": ${failure.message}`;
751
750
  }
752
751
  }, "problem");
753
752
  const defaults = (registry.defaults ?? []).map((term) => {
@@ -802,8 +801,8 @@ var QUERY_REASONS = defineReasons([
802
801
  details: [...SPAN, ...details]
803
802
  })));
804
803
 
805
- // node_modules/.pnpm/@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/query/evaluate.js
806
- var wordsOf = /* @__PURE__ */ __name((text6) => text6.toLowerCase().match(/[\p{L}\p{N}]+/gu) ?? [], "wordsOf");
804
+ // node_modules/.pnpm/@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_typescript@7.0.2_vitest@5.0.5/node_modules/@wirecat/cli-base/dist/query/evaluate.js
805
+ var wordsOf = /* @__PURE__ */ __name((text5) => text5.toLowerCase().match(/[\p{L}\p{N}]+/gu) ?? [], "wordsOf");
807
806
  var pattern = /* @__PURE__ */ __name((value) => new RegExp(`^${[...value].map((char) => char === "*" ? ".*" : char === "?" ? "." : char.replace(/[.+^${}()|[\]\\]/, "\\$&")).join("")}$`, "iu"), "pattern");
808
807
  var present = /* @__PURE__ */ __name((value) => value !== void 0 && value !== null && value !== "", "present");
809
808
  var matchOne = /* @__PURE__ */ __name((field, node, value, options) => {
@@ -811,10 +810,10 @@ var matchOne = /* @__PURE__ */ __name((field, node, value, options) => {
811
810
  return false;
812
811
  if (node.operator === "wildcard" && node.value === "*")
813
812
  return true;
814
- const text6 = String(value);
813
+ const text5 = String(value);
815
814
  switch (field.type) {
816
815
  case "txt": {
817
- const words2 = wordsOf(text6);
816
+ const words2 = wordsOf(text5);
818
817
  if (node.operator === "wildcard")
819
818
  return words2.some((word) => pattern(node.value).test(word));
820
819
  const wanted = wordsOf(node.value);
@@ -828,13 +827,13 @@ var matchOne = /* @__PURE__ */ __name((field, node, value, options) => {
828
827
  return (lower === "*" || (lowerInclusive ? number2 >= Number(lower) : number2 > Number(lower))) && (upper === "*" || (upperInclusive ? number2 <= Number(upper) : number2 < Number(upper)));
829
828
  }
830
829
  case "time": {
831
- const time = Date.parse(text6);
830
+ const time = Date.parse(text5);
832
831
  const [lower, upper, lowerInclusive, upperInclusive] = node.operator === "range" ? [node.value, node.upper ?? "*", node.lower_inclusive ?? true, node.upper_inclusive ?? true] : [node.value, node.value, true, true];
833
832
  const range = dateRange(lower, upper, lowerInclusive, upperInclusive, options.zone ?? "UTC", node.span, options.now);
834
833
  return (range.lower === void 0 || (range.lower_inclusive ? time >= range.lower : time > range.lower)) && (range.upper === void 0 || (range.upper_inclusive ? time <= range.upper : time < range.upper));
835
834
  }
836
835
  default:
837
- return node.operator === "wildcard" ? pattern(node.value).test(text6) : text6.toLowerCase() === node.value.toLowerCase();
836
+ return node.operator === "wildcard" ? pattern(node.value).test(text5) : text5.toLowerCase() === node.value.toLowerCase();
838
837
  }
839
838
  }, "matchOne");
840
839
  var matches = /* @__PURE__ */ __name((node, item, byName, options) => {
@@ -855,9 +854,9 @@ var matches = /* @__PURE__ */ __name((node, item, byName, options) => {
855
854
  const value = item[node.field];
856
855
  return Array.isArray(value) ? value.some((one) => matchOne(field, node, one, options)) : matchOne(field, node, value, options);
857
856
  }, "matches");
858
- var evaluate = /* @__PURE__ */ __name((ast, fields2, item, options = {}) => matches(ast.root, item, new Map(fields2.map((field) => [field.name, field])), options), "evaluate");
857
+ var evaluate = /* @__PURE__ */ __name((ast, fields, item, options = {}) => matches(ast.root, item, new Map(fields.map((field) => [field.name, field])), options), "evaluate");
859
858
 
860
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/reference.js
859
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/reference.js
861
860
  var invalid = /* @__PURE__ */ __name(() => new CliError("validation_error", "expected meeting:<accountId>/<meetingId>[/<transcriptId>[/<cuePosition>]] with safe integer IDs"), "invalid");
862
861
  var integer2 = /* @__PURE__ */ __name((value, minimum = 1) => {
863
862
  if (!Number.isSafeInteger(value) || value < minimum)
@@ -875,8 +874,8 @@ var formatMeetingReference = /* @__PURE__ */ __name((reference2) => {
875
874
  }
876
875
  return `meeting:${parts.join("/")}`;
877
876
  }, "formatMeetingReference");
878
- var parseMeetingReference = /* @__PURE__ */ __name((text6) => {
879
- const value = text6.trim();
877
+ var parseMeetingReference = /* @__PURE__ */ __name((text5) => {
878
+ const value = text5.trim();
880
879
  if (!value.startsWith("meeting:"))
881
880
  throw invalid();
882
881
  const parts = value.slice(8).split("/");
@@ -892,9 +891,9 @@ var parseMeetingReference = /* @__PURE__ */ __name((text6) => {
892
891
  };
893
892
  return reference2;
894
893
  }, "parseMeetingReference");
895
- var canonicalMeetingReference = /* @__PURE__ */ __name((text6) => formatMeetingReference(parseMeetingReference(text6)), "canonicalMeetingReference");
894
+ var canonicalMeetingReference = /* @__PURE__ */ __name((text5) => formatMeetingReference(parseMeetingReference(text5)), "canonicalMeetingReference");
896
895
 
897
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/item.js
896
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/item.js
898
897
  var text = string();
899
898
  var count = pipe(number(), integer(), minValue(0));
900
899
  var MEETING_ISSUES = ["time_without_zone"];
@@ -959,7 +958,7 @@ var MEETING_QUERY = {
959
958
  })
960
959
  };
961
960
 
962
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/join-key.js
961
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/join-key.js
963
962
  var joinKeyOf = /* @__PURE__ */ __name((url) => {
964
963
  const parsed = urlOf(url);
965
964
  if (!parsed)
@@ -993,15 +992,15 @@ var urlOf = /* @__PURE__ */ __name((url) => {
993
992
  }
994
993
  }, "urlOf");
995
994
 
996
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/calendar-text.js
995
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/calendar-text.js
997
996
  var ENTITIES = { amp: "&", lt: "<", gt: ">", quot: '"', "#39": "'", apos: "'", nbsp: " " };
998
997
  var SECRET_LINE = /(?<![\p{L}\p{N}])(pass ?codes?|passwords?|pwd|pins?|access ?codes?|meeting ?codes?|kennwort|пароль|пин-?код|код доступа)(?![\p{L}\p{N}])|pwd=/iu;
999
998
  var htmlToText = /* @__PURE__ */ __name((html) => html.replace(/<\s*br\s*\/?>/giu, "\n").replace(/<\/\s*(p|div|li|tr|h[1-6])\s*>/giu, "\n").replace(/<a\s[^>]*href\s*=\s*"([^"]*)"[^>]*>/giu, " $1 ").replace(/<[^>]+>/gu, "").replace(/&(amp|lt|gt|quot|#39|apos|nbsp);/gu, (_, name) => ENTITIES[name] ?? ""), "htmlToText");
1000
- var withoutLinkQueries = /* @__PURE__ */ __name((text6) => text6.replace(/https?:\/\/[^\s<>"')\]]+/giu, (url) => joinUrlWithoutQuery(url) ?? ""), "withoutLinkQueries");
1001
- var calendarText = /* @__PURE__ */ __name((text6, { dropSecretLines = true } = {}) => {
1002
- if (!text6)
999
+ var withoutLinkQueries = /* @__PURE__ */ __name((text5) => text5.replace(/https?:\/\/[^\s<>"')\]]+/giu, (url) => joinUrlWithoutQuery(url) ?? ""), "withoutLinkQueries");
1000
+ var calendarText = /* @__PURE__ */ __name((text5, { dropSecretLines = true } = {}) => {
1001
+ if (!text5)
1003
1002
  return null;
1004
- const kept = htmlToText(text6).split(/\r?\n/u).map((line2) => withoutLinkQueries(line2).replace(/[ \t]+/gu, " ").trim()).filter((line2) => !dropSecretLines || !SECRET_LINE.test(line2));
1003
+ const kept = htmlToText(text5).split(/\r?\n/u).map((line2) => withoutLinkQueries(line2).replace(/[ \t]+/gu, " ").trim()).filter((line2) => !dropSecretLines || !SECRET_LINE.test(line2));
1005
1004
  const joined = kept.join("\n").replace(/\n{3,}/gu, "\n\n").trim();
1006
1005
  return joined || null;
1007
1006
  }, "calendarText");
@@ -1026,7 +1025,7 @@ var entryMetadata = /* @__PURE__ */ __name((metadata) => {
1026
1025
  return kept;
1027
1026
  }, "entryMetadata");
1028
1027
 
1029
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/cue-fingerprint.js
1028
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/cue-fingerprint.js
1030
1029
  import { createHash } from "node:crypto";
1031
1030
  var meetingCueFingerprint = /* @__PURE__ */ __name((cue2) => createHash("sha256").update(JSON.stringify({
1032
1031
  reference: cue2.reference,
@@ -1040,7 +1039,7 @@ var meetingCueFingerprint = /* @__PURE__ */ __name((cue2) => createHash("sha256"
1040
1039
  text: cue2.text
1041
1040
  })).digest("hex"), "meetingCueFingerprint");
1042
1041
 
1043
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/event-store.js
1042
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/event-store.js
1044
1043
  var UNTIL = /(?:^|;)UNTIL=(\d{4})(\d{2})(\d{2})(?:T(\d{2})(\d{2})(\d{2})Z?)?(?:;|$)/iu;
1045
1044
  var seriesEnd = /* @__PURE__ */ __name((entry) => {
1046
1045
  if (entry.recurrenceEndsAt !== null)
@@ -1063,7 +1062,7 @@ var entryInWindow = /* @__PURE__ */ __name((entry, window) => {
1063
1062
  return Math.max(entry.endsAt ?? start, start + 1) > window.from;
1064
1063
  }, "entryInWindow");
1065
1064
 
1066
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/answers.js
1065
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/answers.js
1067
1066
  var text2 = string();
1068
1067
  var count2 = pipe(number(), integer(), minValue(0));
1069
1068
  var iso2 = /* @__PURE__ */ __name((ms) => ms === null ? null : new Date(ms).toISOString(), "iso");
@@ -1177,7 +1176,7 @@ var meetingSummaryItem = /* @__PURE__ */ __name((accountId, summary) => ({
1177
1176
  source: summary.source,
1178
1177
  title: summary.title,
1179
1178
  overview: summary.overview,
1180
- sections: summary.sections.map(({ label, text: text6 }) => ({ label, text: text6 })),
1179
+ sections: summary.sections.map(({ label, text: text5 }) => ({ label, text: text5 })),
1181
1180
  next_steps: summary.nextSteps,
1182
1181
  content: summary.content,
1183
1182
  url: summary.docUrl,
@@ -1298,8 +1297,8 @@ var meetingHitsList = /* @__PURE__ */ __name((found, limit, command = "search me
1298
1297
  };
1299
1298
  }, "meetingHitsList");
1300
1299
 
1301
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/participant-search.js
1302
- var normalizeMeetingParticipantQuery = /* @__PURE__ */ __name((text6) => text6.normalize("NFKC").toLowerCase(), "normalizeMeetingParticipantQuery");
1300
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/participant-search.js
1301
+ var normalizeMeetingParticipantQuery = /* @__PURE__ */ __name((text5) => text5.normalize("NFKC").toLowerCase(), "normalizeMeetingParticipantQuery");
1303
1302
  var validateMeetingParticipantQuery = /* @__PURE__ */ __name((query) => {
1304
1303
  if (typeof query !== "string" || !query.trim() || query.length > 500 || query.includes("\0"))
1305
1304
  throw new CliError("validation_error", "participant query must contain 1\u2013500 characters without NUL");
@@ -1322,7 +1321,7 @@ var validateMeetingParticipantSearch = /* @__PURE__ */ __name((query, input) =>
1322
1321
  };
1323
1322
  }, "validateMeetingParticipantSearch");
1324
1323
 
1325
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/reads.js
1324
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/reads.js
1326
1325
  var MeetingError = class extends CliError {
1327
1326
  static {
1328
1327
  __name(this, "MeetingError");
@@ -1426,11 +1425,11 @@ var meetingsList = /* @__PURE__ */ __name(async (store, filter = {}, page = 1) =
1426
1425
  } : {}
1427
1426
  };
1428
1427
  }, "meetingsList");
1429
- var meetingsQuery = /* @__PURE__ */ __name((text6) => {
1430
- if (text6 === void 0 || text6.trim() === "")
1428
+ var meetingsQuery = /* @__PURE__ */ __name((text5) => {
1429
+ if (text5 === void 0 || text5.trim() === "")
1431
1430
  return void 0;
1432
1431
  const context3 = { command: "meetings list", guide: MEETING_QUERY_GUIDE };
1433
- const query = parseLucene(text6, { defaultField: "none", ...context3 });
1432
+ const query = parseLucene(text5, { defaultField: "none", ...context3 });
1434
1433
  validateQuery(query, MEETING_QUERY, context3);
1435
1434
  return query;
1436
1435
  }, "meetingsQuery");
@@ -1454,7 +1453,7 @@ var meetingSummaryAnswer = /* @__PURE__ */ __name(async (store, id3, accountId)
1454
1453
  return wholeList(details.summaries.map((one) => meetingSummaryItem(details.meeting.accountId, one)));
1455
1454
  }, "meetingSummaryAnswer");
1456
1455
 
1457
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/export.js
1456
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/export.js
1458
1457
  var timestamp = /* @__PURE__ */ __name((milliseconds) => {
1459
1458
  if (!Number.isSafeInteger(milliseconds) || milliseconds < 0)
1460
1459
  throw new MeetingError("validation_error", "transcript times must be nonnegative integer milliseconds");
@@ -1463,10 +1462,10 @@ var timestamp = /* @__PURE__ */ __name((milliseconds) => {
1463
1462
  const seconds = Math.floor(milliseconds % 6e4 / 1e3);
1464
1463
  return `${String(hours).padStart(2, "0")}:${String(minutes).padStart(2, "0")}:${String(seconds).padStart(2, "0")}.${String(milliseconds % 1e3).padStart(3, "0")}`;
1465
1464
  }, "timestamp");
1466
- var vttText = /* @__PURE__ */ __name((text6) => {
1467
- if (visibleControls(text6) !== text6 || /\n\s*\n/.test(text6))
1465
+ var vttText = /* @__PURE__ */ __name((text5) => {
1466
+ if (visibleControls(text5) !== text5 || /\n\s*\n/.test(text5))
1468
1467
  throw new MeetingError("validation_error", "cue paragraphs or control characters require Markdown export");
1469
- return text6.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;");
1468
+ return text5.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;");
1470
1469
  }, "vttText");
1471
1470
  var serializeVtt = /* @__PURE__ */ __name((lines) => `WEBVTT
1472
1471
 
@@ -1484,9 +1483,9 @@ ${speaker}${vttText(line2.text)}
1484
1483
 
1485
1484
  `;
1486
1485
  }).join("")}`, "serializeVtt");
1487
- var markdown = /* @__PURE__ */ __name((text6) => visibleControls(text6).replace(/[\\`*_{}[\]()<>#+.!|~]/g, "\\$&"), "markdown");
1488
- var heading = /* @__PURE__ */ __name((text6) => markdown(singleLine(text6)), "heading");
1489
- var quote = /* @__PURE__ */ __name((text6) => markdown(text6).split(/\r\n|\r|\n/).map((line2) => `> ${line2}`).join("\n"), "quote");
1486
+ var markdown = /* @__PURE__ */ __name((text5) => visibleControls(text5).replace(/[\\`*_{}[\]()<>#+.!|~]/g, "\\$&"), "markdown");
1487
+ var heading = /* @__PURE__ */ __name((text5) => markdown(singleLine(text5)), "heading");
1488
+ var quote = /* @__PURE__ */ __name((text5) => markdown(text5).split(/\r\n|\r|\n/).map((line2) => `> ${line2}`).join("\n"), "quote");
1490
1489
  var transcriptsOf = /* @__PURE__ */ __name((details, transcriptId) => {
1491
1490
  if (transcriptId !== void 0) {
1492
1491
  positiveInteger(transcriptId);
@@ -1550,7 +1549,7 @@ var exportMeeting = /* @__PURE__ */ __name(async (store, id3, options) => {
1550
1549
  };
1551
1550
  }, "exportMeeting");
1552
1551
 
1553
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/payment.js
1552
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/payment.js
1554
1553
  var FACT_TYPES = ["fact", "statement", "question", "decision", "promise"];
1555
1554
  var PAYMENT_DIRECTIONS = ["to_us", "from_us"];
1556
1555
  var PAYMENT_STATES = ["expected", "paid", "cancelled"];
@@ -1644,10 +1643,10 @@ var paymentTitle = /* @__PURE__ */ __name((fact) => {
1644
1643
  return `${grouped(payment.amount)} ${payment.currency} ${way}${party}${item}${due} (${payment.state})`;
1645
1644
  }, "paymentTitle");
1646
1645
 
1647
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/findings-rules.js
1646
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/findings-rules.js
1648
1647
  import { createHash as createHash2 } from "node:crypto";
1649
1648
 
1650
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/timestamp.js
1649
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/timestamp.js
1651
1650
  var meetingTimestamp = /* @__PURE__ */ __name((value, name) => {
1652
1651
  if (typeof value !== "string" || !/^\d{4}-\d{2}-\d{2}T.+(?:Z|[+-]\d{2}:\d{2})$/i.test(value) || !Number.isFinite(Date.parse(value)))
1653
1652
  throw new CliError("validation_error", `${name} must be an ISO timestamp with a timezone`);
@@ -1658,21 +1657,21 @@ var meetingTimestamp = /* @__PURE__ */ __name((value, name) => {
1658
1657
  return new Date(value).toISOString();
1659
1658
  }, "meetingTimestamp");
1660
1659
 
1661
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/findings-rules.js
1660
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/findings-rules.js
1662
1661
  var TASK_TYPES = ["bug", "feature", "chore"];
1663
1662
  var invalid3 = /* @__PURE__ */ __name((message) => {
1664
1663
  throw new CliError("validation_error", message);
1665
1664
  }, "invalid");
1666
- var text3 = /* @__PURE__ */ __name((value, limit) => {
1665
+ var findingText = /* @__PURE__ */ __name((value, limit) => {
1667
1666
  if (typeof value !== "string" || !value.trim() || value.includes("\0") || value.length > limit)
1668
1667
  return invalid3(`finding text must contain 1\u2013${limit} characters without NUL`);
1669
1668
  return value.trim();
1670
- }, "text");
1669
+ }, "findingText");
1671
1670
  var findingHash = /* @__PURE__ */ __name((value) => createHash2("sha256").update(JSON.stringify(value)).digest("hex"), "findingHash");
1672
- var fields = /* @__PURE__ */ __name((value, allowed, noun) => {
1671
+ var findingFields = /* @__PURE__ */ __name((value, allowed, noun) => {
1673
1672
  if (Object.keys(value).some((key) => !allowed.includes(key)))
1674
1673
  invalid3(`unknown ${noun} field`);
1675
- }, "fields");
1674
+ }, "findingFields");
1676
1675
  var SUBJECT = /^(person|organization|project):[1-9]\d*$|^task:[A-Za-z0-9][A-Za-z0-9_.-]{0,63}$/;
1677
1676
  var validEvidence = /* @__PURE__ */ __name((raw, rules) => {
1678
1677
  if (!Array.isArray(raw) || raw.length < 1 || raw.length > 8)
@@ -1680,7 +1679,7 @@ var validEvidence = /* @__PURE__ */ __name((raw, rules) => {
1680
1679
  const evidence = raw.map((item) => {
1681
1680
  if (!item || typeof item !== "object")
1682
1681
  return invalid3("finding evidence is a reference and fingerprint");
1683
- fields(item, ["reference", "fingerprint"], rules.singular);
1682
+ findingFields(item, ["reference", "fingerprint"], rules.singular);
1684
1683
  if (typeof item.reference !== "string" || typeof item.fingerprint !== "string")
1685
1684
  return invalid3("evidence requires a reference and fingerprint");
1686
1685
  const reference2 = rules.reference(item.reference);
@@ -1703,10 +1702,10 @@ var validateFinding = /* @__PURE__ */ __name((finding, rules, ids2) => {
1703
1702
  if (!finding || typeof finding !== "object")
1704
1703
  return invalid3("a finding is an object");
1705
1704
  const id3 = findingId(finding.id, ids2);
1706
- const project = finding.project === void 0 && rules.anySubject ? void 0 : text3(finding.project, 64);
1705
+ const project = finding.project === void 0 && rules.anySubject ? void 0 : findingText(finding.project, 64);
1707
1706
  if (project !== void 0 && !/^project:[1-9]\d*$/.test(project))
1708
1707
  return invalid3("a finding names a project reference");
1709
- if (finding.subject !== void 0 && (!rules.anySubject || !SUBJECT.test(text3(finding.subject, 80))))
1708
+ if (finding.subject !== void 0 && (!rules.anySubject || !SUBJECT.test(findingText(finding.subject, 80))))
1710
1709
  return invalid3("a finding's subject is a person:, organization:, task: or project: reference");
1711
1710
  if (finding.kind === "task" && project === void 0 && !rules.inboxTasks)
1712
1711
  return invalid3("a task finding names the project the task goes in");
@@ -1718,15 +1717,15 @@ var validateFinding = /* @__PURE__ */ __name((finding, rules, ids2) => {
1718
1717
  evidence
1719
1718
  };
1720
1719
  if (finding.kind === "fact") {
1721
- fields(finding, ["id", "project", "subject", "evidence", "kind", "type", "statement"], rules.singular);
1720
+ findingFields(finding, ["id", "project", "subject", "evidence", "kind", "type", "statement"], rules.singular);
1722
1721
  if (finding.type === "payment")
1723
1722
  return invalid3("a payment is a finding of kind payment; money is a payments row, not a fact");
1724
1723
  if (!FACT_TYPES.includes(finding.type))
1725
1724
  return invalid3("unknown fact finding type");
1726
- return { ...base, kind: "fact", type: finding.type, statement: text3(finding.statement, 2e3) };
1725
+ return { ...base, kind: "fact", type: finding.type, statement: findingText(finding.statement, 2e3) };
1727
1726
  }
1728
1727
  if (finding.kind === "payment" && rules.payments) {
1729
- fields(finding, ["id", "project", "subject", "evidence", "kind", "statement", "payment", "supersedes"], rules.singular);
1728
+ findingFields(finding, ["id", "project", "subject", "evidence", "kind", "statement", "payment", "supersedes"], rules.singular);
1730
1729
  if (finding.supersedes !== void 0 && !/^invoice:[1-9]\d*$/.test(String(finding.supersedes)))
1731
1730
  return invalid3("a payment finding supersedes an invoice: reference, the expected payment it settles or voids");
1732
1731
  const payment = validatePayment(finding.payment);
@@ -1739,14 +1738,14 @@ var validateFinding = /* @__PURE__ */ __name((finding, rules, ids2) => {
1739
1738
  return {
1740
1739
  ...base,
1741
1740
  kind: "payment",
1742
- ...finding.statement === void 0 ? {} : { statement: text3(finding.statement, 2e3) },
1741
+ ...finding.statement === void 0 ? {} : { statement: findingText(finding.statement, 2e3) },
1743
1742
  payment,
1744
1743
  ...finding.supersedes === void 0 ? {} : { supersedes: finding.supersedes }
1745
1744
  };
1746
1745
  }
1747
1746
  if (finding.kind !== "task")
1748
1747
  return invalid3(`a finding is a fact${rules.payments ? ", payment" : ""} or task`);
1749
- fields(finding, [
1748
+ findingFields(finding, [
1750
1749
  "id",
1751
1750
  "project",
1752
1751
  "evidence",
@@ -1772,8 +1771,8 @@ var validateFinding = /* @__PURE__ */ __name((finding, rules, ids2) => {
1772
1771
  ...base,
1773
1772
  kind: "task",
1774
1773
  type: finding.type,
1775
- title: text3(finding.title, 300),
1776
- reason: text3(finding.reason, 2e3),
1774
+ title: findingText(finding.title, 300),
1775
+ reason: findingText(finding.reason, 2e3),
1777
1776
  commitment: finding.commitment,
1778
1777
  ...finding.dueAt === void 0 ? {} : {
1779
1778
  dueAt: meetingTimestamp(finding.dueAt, "finding due date"),
@@ -1790,22 +1789,20 @@ var support = /* @__PURE__ */ __name((value, evidence) => {
1790
1789
  var validateBatch = /* @__PURE__ */ __name((input, rules, most, one) => {
1791
1790
  if (!input || typeof input !== "object" || Buffer.byteLength(JSON.stringify(input), "utf8") > 65536)
1792
1791
  return invalid3(`${rules.plural} take at most 65536 UTF-8 bytes`);
1793
- fields(input, ["schemaVersion", "key", "extractor", "findings"], rules.singular);
1792
+ findingFields(input, ["schemaVersion", "key", "extractor", "findings"], rules.singular);
1794
1793
  if (input.schemaVersion !== 1 || !Array.isArray(input.findings) || input.findings.length < 1 || input.findings.length > most)
1795
1794
  return invalid3(`schemaVersion 1 takes 1\u2013${most} ${rules.plural}`);
1796
- const key = text3(input.key, 64);
1795
+ const key = findingText(input.key, 64);
1797
1796
  if (!/^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$/.test(key))
1798
1797
  return invalid3("a findings key uses letters, digits, dot, colon, underscore or hyphen");
1799
1798
  const ids2 = /* @__PURE__ */ new Set();
1800
1799
  const findings = input.findings.map((finding) => one(finding, ids2));
1801
- return { schemaVersion: 1, key, extractor: text3(input.extractor, 200), findings };
1800
+ return { schemaVersion: 1, key, extractor: findingText(input.extractor, 200), findings };
1802
1801
  }, "validateBatch");
1803
1802
  var validateFindings = /* @__PURE__ */ __name((input, rules) => validateBatch(input, rules, 16, (finding, ids2) => validateFinding(finding, rules, ids2)), "validateFindings");
1804
- var findingText = /* @__PURE__ */ __name((value, limit) => text3(value, limit), "findingText");
1805
- var findingFields = /* @__PURE__ */ __name((value, allowed, noun) => fields(value, allowed, noun), "findingFields");
1806
1803
  var findingFingerprint = /* @__PURE__ */ __name(({ id: _id, ...finding }) => findingHash(finding), "findingFingerprint");
1807
1804
 
1808
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/findings.js
1805
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/findings.js
1809
1806
  var MEETING_FINDINGS_KIND = "meeting_findings";
1810
1807
  var cue = /* @__PURE__ */ __name((raw) => {
1811
1808
  const reference2 = canonicalMeetingReference(raw);
@@ -1816,24 +1813,24 @@ var cue = /* @__PURE__ */ __name((raw) => {
1816
1813
  var validateMeetingFindings = /* @__PURE__ */ __name((input) => validateFindings(input, { plural: "meeting findings", singular: "meeting finding", cited: "cue", reference: cue }), "validateMeetingFindings");
1817
1814
  var meetingFindingFingerprint = findingFingerprint;
1818
1815
 
1819
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/result-items.js
1820
- var text4 = string();
1821
- var identifier = pipe(text4, minLength(1));
1822
- var nullableText = nullable(text4);
1816
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/result-items.js
1817
+ var text3 = string();
1818
+ var identifier = pipe(text3, minLength(1));
1819
+ var nullableText = nullable(text3);
1823
1820
  var count3 = pipe(number(), integer(), minValue(0));
1824
1821
  var flag = boolean();
1825
- var scope = strictObject({ provider: text4, account: text4 });
1822
+ var scope = strictObject({ provider: text3, account: text3 });
1826
1823
  var run = strictObject({
1827
1824
  meetings: count3,
1828
1825
  participants: count3,
1829
1826
  transcript_rows: count3,
1830
1827
  summaries: count3,
1831
- warnings: array(strictObject({ external_id: text4, message: text4 })),
1832
- timezone: optional(text4)
1828
+ warnings: array(strictObject({ external_id: text3, message: text3 })),
1829
+ timezone: optional(text3)
1833
1830
  });
1834
1831
  var exported = union([
1835
- strictObject({ meeting_id: identifier, format: picklist(["markdown", "vtt"]), filename: text4, content: text4 }),
1836
- strictObject({ meeting_id: identifier, format: picklist(["markdown", "vtt"]), output: text4 })
1832
+ strictObject({ meeting_id: identifier, format: picklist(["markdown", "vtt"]), filename: text3, content: text3 }),
1833
+ strictObject({ meeting_id: identifier, format: picklist(["markdown", "vtt"]), output: text3 })
1837
1834
  ]);
1838
1835
  var eventChange = strictObject({
1839
1836
  action: literal("event.link"),
@@ -1843,7 +1840,7 @@ var eventChange = strictObject({
1843
1840
  var personChange = strictObject({
1844
1841
  action: literal("person.link"),
1845
1842
  participant_id: identifier,
1846
- person_uid: text4,
1843
+ person_uid: text3,
1847
1844
  expected_person_uid: optional(nullableText),
1848
1845
  target_account_ids: optional(array(identifier))
1849
1846
  });
@@ -1856,7 +1853,7 @@ var eventResult = strictObject({
1856
1853
  var personResult = strictObject({
1857
1854
  meeting_id: identifier,
1858
1855
  participant_id: identifier,
1859
- person_uid: text4,
1856
+ person_uid: text3,
1860
1857
  previous_person_uid: nullableText,
1861
1858
  changed: flag
1862
1859
  });
@@ -1869,23 +1866,23 @@ var meetingChange = strictObject({
1869
1866
  result: optional(union([eventResult, personResult]))
1870
1867
  });
1871
1868
  var recognition = strictObject({
1872
- engine: text4,
1873
- model: text4,
1874
- version: optional(text4),
1869
+ engine: text3,
1870
+ model: text3,
1871
+ version: optional(text3),
1875
1872
  timing: optional(picklist(["fixed-windows", "recognition-segments"]))
1876
1873
  });
1877
1874
  var transcription = union([
1878
1875
  strictObject({
1879
1876
  applied: literal(false),
1880
1877
  account_id: identifier,
1881
- external_id: text4,
1878
+ external_id: text3,
1882
1879
  segments: count3,
1883
1880
  media: strictObject({
1884
- id: text4,
1885
- content_hash: text4,
1881
+ id: text3,
1882
+ content_hash: text3,
1886
1883
  size: count3,
1887
1884
  duration_ms: count3,
1888
- format: text4,
1885
+ format: text3,
1889
1886
  sample_rate: count3,
1890
1887
  channels: count3,
1891
1888
  recognition
@@ -1894,21 +1891,21 @@ var transcription = union([
1894
1891
  strictObject({
1895
1892
  applied: literal(true),
1896
1893
  account_id: identifier,
1897
- external_id: text4,
1894
+ external_id: text3,
1898
1895
  meeting_id: identifier,
1899
1896
  created: flag,
1900
1897
  inserted_transcripts: count3,
1901
1898
  replayed_transcripts: count3,
1902
1899
  superseded_transcripts: count3,
1903
1900
  segments: count3,
1904
- media_sha256: text4,
1905
- engine: text4,
1906
- model: text4,
1901
+ media_sha256: text3,
1902
+ engine: text3,
1903
+ model: text3,
1907
1904
  model_version: nullableText,
1908
1905
  timing: picklist(["fixed-windows", "recognition-segments"])
1909
1906
  })
1910
1907
  ]);
1911
- var embeddingModel = strictObject({ key: text4, dims: count3, kind: picklist(["local", "remote"]), model: text4 });
1908
+ var embeddingModel = strictObject({ key: text3, dims: count3, kind: picklist(["local", "remote"]), model: text3 });
1912
1909
  var embedding = union([
1913
1910
  strictObject({
1914
1911
  account_id: identifier,
@@ -1924,7 +1921,7 @@ var embedding = union([
1924
1921
  saved: count3,
1925
1922
  skipped: count3,
1926
1923
  has_more: flag,
1927
- next_hash: optional(text4),
1924
+ next_hash: optional(text3),
1928
1925
  applied: literal(true),
1929
1926
  rebuild: strictObject({
1930
1927
  transcripts: count3,
@@ -1949,7 +1946,7 @@ var MEETING_RESULT_ENTITIES = {
1949
1946
  meeting_repair: repair
1950
1947
  };
1951
1948
 
1952
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/event-query.js
1949
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/event-query.js
1953
1950
  var EVENT_QUERY = defineQuery({
1954
1951
  entity: "event",
1955
1952
  backend: "sql",
@@ -1965,7 +1962,7 @@ var EVENT_QUERY = defineQuery({
1965
1962
  ]
1966
1963
  });
1967
1964
 
1968
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/events.js
1965
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/events.js
1969
1966
  var linkEvent = /* @__PURE__ */ __name(async (store, details, now = Date.now()) => {
1970
1967
  const current = await store.meeting(details.meeting.id);
1971
1968
  if (!current)
@@ -2008,7 +2005,7 @@ var linkEvent = /* @__PURE__ */ __name(async (store, details, now = Date.now())
2008
2005
  return (await store.events()).find((e) => e.id === linked?.meeting.eventId) ?? null;
2009
2006
  }, "linkEvent");
2010
2007
 
2011
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/hit-query.js
2008
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/hit-query.js
2012
2009
  var context = {
2013
2010
  command: "search meetings",
2014
2011
  guide: "https://github.com/WireCatLabs/cli-core/blob/main/docs/search/query-language.md#\u0432\u0441\u0442\u0440\u0435\u0447\u0438"
@@ -2116,9 +2113,9 @@ var liftMeetingFields = /* @__PURE__ */ __name((query, request, now) => {
2116
2113
  return { query: rest, request: next };
2117
2114
  }, "liftMeetingFields");
2118
2115
  var parseMeetingQuery = /* @__PURE__ */ __name((query) => validateQuery(parseLucene(query, { defaultField: "text", proximity: true, ...context }), MEETING_HIT_QUERY, context), "parseMeetingQuery");
2119
- var meetingWordsQuery = /* @__PURE__ */ __name((text6) => {
2120
- const found = text6.match(/[\p{L}\p{N}\p{M}]+/gu) ?? [];
2121
- const span = { start: 0, end: text6.length };
2116
+ var meetingWordsQuery = /* @__PURE__ */ __name((text5) => {
2117
+ const found = text5.match(/[\p{L}\p{N}\p{M}]+/gu) ?? [];
2118
+ const span = { start: 0, end: text5.length };
2122
2119
  const clauses = found.map((value) => ({
2123
2120
  occur: "must",
2124
2121
  node: { kind: "predicate", field: "text", operator: "term", value, span }
@@ -2127,7 +2124,7 @@ var meetingWordsQuery = /* @__PURE__ */ __name((text6) => {
2127
2124
  return { version: 1, language: "lucene-v1", root };
2128
2125
  }, "meetingWordsQuery");
2129
2126
 
2130
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/language.js
2127
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/language.js
2131
2128
  var LATIN_WORDS = {
2132
2129
  en: ["the", "and", "is", "that", "you", "this", "what", "have", "with", "are"],
2133
2130
  es: ["el", "los", "las", "por", "pero", "para", "est\xE1", "muy", "tambi\xE9n", "hay"],
@@ -2142,11 +2139,11 @@ var CYRILLIC = new RegExp("\\p{Script=Cyrillic}", "gu");
2142
2139
  var LATIN = new RegExp("\\p{Script=Latin}", "gu");
2143
2140
  var MIN_LETTERS = 20;
2144
2141
  var DOMINANT = 0.75;
2145
- var countOf = /* @__PURE__ */ __name((text6, pattern2) => text6.match(pattern2)?.length ?? 0, "countOf");
2142
+ var countOf = /* @__PURE__ */ __name((text5, pattern2) => text5.match(pattern2)?.length ?? 0, "countOf");
2146
2143
  var latinLanguage = /* @__PURE__ */ __name((texts) => {
2147
2144
  const votes = /* @__PURE__ */ new Map();
2148
- for (const text6 of texts)
2149
- for (const word of text6.toLowerCase().split(/[^\p{L}]+/u)) {
2145
+ for (const text5 of texts)
2146
+ for (const word of text5.toLowerCase().split(/[^\p{L}]+/u)) {
2150
2147
  const language = LATIN_LANGUAGE.get(word);
2151
2148
  if (language)
2152
2149
  votes.set(language, (votes.get(language) ?? 0) + 1);
@@ -2161,10 +2158,10 @@ var transcriptLanguage = /* @__PURE__ */ __name((texts) => {
2161
2158
  let cyrillic = 0;
2162
2159
  let latin = 0;
2163
2160
  let ukrainian = 0;
2164
- for (const text6 of all) {
2165
- cyrillic += countOf(text6, CYRILLIC);
2166
- latin += countOf(text6, LATIN);
2167
- ukrainian += countOf(text6, UKRAINIAN);
2161
+ for (const text5 of all) {
2162
+ cyrillic += countOf(text5, CYRILLIC);
2163
+ latin += countOf(text5, LATIN);
2164
+ ukrainian += countOf(text5, UKRAINIAN);
2168
2165
  }
2169
2166
  const letters = cyrillic + latin;
2170
2167
  if (letters < MIN_LETTERS)
@@ -2176,9 +2173,9 @@ var transcriptLanguage = /* @__PURE__ */ __name((texts) => {
2176
2173
  return null;
2177
2174
  }, "transcriptLanguage");
2178
2175
 
2179
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/ingest.js
2180
- var contentHash = /* @__PURE__ */ __name(async (text6) => {
2181
- const bytes = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(text6));
2176
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/ingest.js
2177
+ var contentHash = /* @__PURE__ */ __name(async (text5) => {
2178
+ const bytes = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(text5));
2182
2179
  return Array.from(new Uint8Array(bytes), (byte) => byte.toString(16).padStart(2, "0")).join("");
2183
2180
  }, "contentHash");
2184
2181
  var speakerPosition = /* @__PURE__ */ __name((name, participants) => {
@@ -2213,7 +2210,7 @@ var timestamp2 = /* @__PURE__ */ __name((value) => {
2213
2210
  return time;
2214
2211
  }, "timestamp");
2215
2212
 
2216
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/transcript-text.js
2213
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/transcript-text.js
2217
2214
  var TranscriptTextError = class extends Error {
2218
2215
  static {
2219
2216
  __name(this, "TranscriptTextError");
@@ -2230,10 +2227,10 @@ var LINE = /^\[(\d{2,}):([0-5]\d):([0-5]\d)\]\s*(?:([^:\n]{1,60}):\s*)?([\s\S]*)
2230
2227
  var RULE = /^[—–-]{10,}[^\n]*(?:\n|$)/;
2231
2228
  var EMPTY = /* @__PURE__ */ new Set(["", "\u2014", "-"]);
2232
2229
  var parseTranscriptText = /* @__PURE__ */ __name((input) => {
2233
- const text6 = input.replace(/^/, "").replace(/\r\n?/g, "\n");
2230
+ const text5 = input.replace(/^/, "").replace(/\r\n?/g, "\n");
2234
2231
  const header = { title: null, date: null, meetingId: null, speakers: [] };
2235
2232
  let sawHeader = false;
2236
- for (const line2 of text6.split("\n")) {
2233
+ for (const line2 of text5.split("\n")) {
2237
2234
  if (!line2.trim())
2238
2235
  break;
2239
2236
  for (const [prefix, key] of Object.entries(HEADER)) {
@@ -2250,7 +2247,7 @@ var parseTranscriptText = /* @__PURE__ */ __name((input) => {
2250
2247
  if (!sawHeader)
2251
2248
  throw new TranscriptTextError('a text transcript starts with a header such as "\u0412\u0441\u0442\u0440\u0435\u0447\u0430: \u2026"');
2252
2249
  const found = [];
2253
- for (const block of text6.split(/\n\s*\n/)) {
2250
+ for (const block of text5.split(/\n\s*\n/)) {
2254
2251
  const match = LINE.exec(block.trim().replace(RULE, ""));
2255
2252
  if (!match)
2256
2253
  continue;
@@ -2268,7 +2265,7 @@ var parseTranscriptText = /* @__PURE__ */ __name((input) => {
2268
2265
  return { header, lines };
2269
2266
  }, "parseTranscriptText");
2270
2267
 
2271
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/vtt.js
2268
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/vtt.js
2272
2269
  var VttError = class extends Error {
2273
2270
  static {
2274
2271
  __name(this, "VttError");
@@ -2284,12 +2281,12 @@ var millis = /* @__PURE__ */ __name((stamp, lineNo) => {
2284
2281
  const [, hours = "0", minutes = "0", seconds = "0", ms = "0"] = match;
2285
2282
  return ((Number(hours) * 60 + Number(minutes)) * 60 + Number(seconds)) * 1e3 + Number(ms);
2286
2283
  }, "millis");
2287
- var splitSpeaker = /* @__PURE__ */ __name((text6) => {
2288
- const firstLine = text6.split("\n", 1)[0] ?? "";
2284
+ var splitSpeaker = /* @__PURE__ */ __name((text5) => {
2285
+ const firstLine = text5.split("\n", 1)[0] ?? "";
2289
2286
  const at = firstLine.indexOf(": ");
2290
2287
  if (at <= 0)
2291
- return { speaker: null, text: text6 };
2292
- return { speaker: firstLine.slice(0, at).trim(), text: text6.slice(at + 2) };
2288
+ return { speaker: null, text: text5 };
2289
+ return { speaker: firstLine.slice(0, at).trim(), text: text5.slice(at + 2) };
2293
2290
  }, "splitSpeaker");
2294
2291
  var parseVtt = /* @__PURE__ */ __name((input) => {
2295
2292
  const lines = input.replace(/^/, "").split(/\r\n|\r|\n/);
@@ -2314,13 +2311,13 @@ var parseVtt = /* @__PURE__ */ __name((input) => {
2314
2311
  const lineNo = start + timingAt + 1;
2315
2312
  const [from = "", rest = ""] = (block[timingAt] ?? "").split("-->");
2316
2313
  const to = rest.trim().split(/\s+/)[0] ?? "";
2317
- const text6 = block.slice(timingAt + 1).join("\n").trim();
2318
- cues.push({ startMs: millis(from.trim(), lineNo), endMs: millis(to, lineNo), ...splitSpeaker(text6) });
2314
+ const text5 = block.slice(timingAt + 1).join("\n").trim();
2315
+ cues.push({ startMs: millis(from.trim(), lineNo), endMs: millis(to, lineNo), ...splitSpeaker(text5) });
2319
2316
  }
2320
2317
  return cues;
2321
2318
  }, "parseVtt");
2322
2319
 
2323
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/import.js
2320
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/import.js
2324
2321
  var importFiles = /* @__PURE__ */ __name(async (files, store, now = Date.now()) => {
2325
2322
  const report = { meetings: 0, participants: 0, transcriptRows: 0, summaries: 0, warnings: [] };
2326
2323
  for (const file of files) {
@@ -2353,10 +2350,10 @@ var importFiles = /* @__PURE__ */ __name(async (files, store, now = Date.now())
2353
2350
  return report;
2354
2351
  }, "importFiles");
2355
2352
 
2356
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/links.js
2353
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/links.js
2357
2354
  var CHAT_MESSAGES_READ = 1e5;
2358
2355
 
2359
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/provider.js
2356
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/provider.js
2360
2357
  var snapshotMeetingScope = /* @__PURE__ */ __name((scope2) => {
2361
2358
  const provider = scope2?.provider;
2362
2359
  const account = scope2?.account;
@@ -2365,7 +2362,7 @@ var snapshotMeetingScope = /* @__PURE__ */ __name((scope2) => {
2365
2362
  return Object.freeze({ provider, account });
2366
2363
  }, "snapshotMeetingScope");
2367
2364
 
2368
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/meeting-management.js
2365
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/meeting-management.js
2369
2366
  var nonempty = /* @__PURE__ */ __name((value, name) => {
2370
2367
  if (typeof value !== "string" || !value.trim())
2371
2368
  throw new CliError("validation_error", `${name} must be nonempty`);
@@ -2416,7 +2413,7 @@ var validateMeetingChange = /* @__PURE__ */ __name((change, create) => {
2416
2413
  return Object.freeze(result);
2417
2414
  }, "validateMeetingChange");
2418
2415
 
2419
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/passage.js
2416
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/passage.js
2420
2417
  var meetingHitContextLimits = /* @__PURE__ */ __name((options = {}) => {
2421
2418
  const { before = 3, after = 3, bytes = 65536, max_read_bytes = 4194304, expected_fingerprint } = options;
2422
2419
  if (![before, after].every((value) => Number.isSafeInteger(value) && value >= 0) || before + after > 999 || !Number.isSafeInteger(bytes) || bytes < 2 || bytes > 4194304 || !Number.isSafeInteger(max_read_bytes) || max_read_bytes < 1 || max_read_bytes > 67108864 || expected_fingerprint !== void 0 && (typeof expected_fingerprint !== "string" || !/^[a-f0-9]{64}$/.test(expected_fingerprint)))
@@ -2429,7 +2426,7 @@ var validateMeetingPassage = /* @__PURE__ */ __name((reference2, options) => {
2429
2426
  throw new CliError("validation_error", "choose a cue reference and json, text or markdown output");
2430
2427
  }, "validateMeetingPassage");
2431
2428
 
2432
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/preparation-context.js
2429
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/preparation-context.js
2433
2430
  var validateMeetingPreparationContext = /* @__PURE__ */ __name((original) => {
2434
2431
  if (!original || typeof original !== "object" || Array.isArray(original))
2435
2432
  throw new CliError("validation_error", "meeting preparation context is required");
@@ -2454,7 +2451,7 @@ var validateMeetingPreparationContext = /* @__PURE__ */ __name((original) => {
2454
2451
  return { ...input, limit, maxReadBytes };
2455
2452
  }, "validateMeetingPreparationContext");
2456
2453
 
2457
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/project-evidence-answer.js
2454
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/project-evidence-answer.js
2458
2455
  var count4 = pipe(number(), integer(), minValue(0));
2459
2456
  var id = pipe(string(), minLength(1));
2460
2457
  var meetingProjectEvidence = strictObject({
@@ -2575,7 +2572,7 @@ var meetingProjectEvidenceAnswer = /* @__PURE__ */ __name((page, prepared, comma
2575
2572
  };
2576
2573
  }, "meetingProjectEvidenceAnswer");
2577
2574
 
2578
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/search-validation.js
2575
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/search-validation.js
2579
2576
  var validateMeetingHitSearch = /* @__PURE__ */ __name((query, options = {}) => {
2580
2577
  const integer3 = /* @__PURE__ */ __name((value, low, high) => Number.isSafeInteger(value) && value >= low && value <= high, "integer");
2581
2578
  if (typeof query !== "string" || !query.trim() || query.includes("\0") || new TextEncoder().encode(query).byteLength > 65536 || !integer3(options.limit ?? 100, 1, 1e3) || !integer3(options.maxReadBytes ?? 4194304, 1, 67108864) || [
@@ -2595,7 +2592,7 @@ var validateMeetingHitSearch = /* @__PURE__ */ __name((query, options = {}) => {
2595
2592
  throw new CliError("validation_error", "choose one project selector and one tag or topic selector");
2596
2593
  }, "validateMeetingHitSearch");
2597
2594
 
2598
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/project-evidence-query.js
2595
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/project-evidence-query.js
2599
2596
  var ids = {
2600
2597
  meeting_id: "meetingId",
2601
2598
  identity_id: "participantIdentityId",
@@ -2686,7 +2683,7 @@ var prepareMeetingProjectEvidence = /* @__PURE__ */ __name((project, request = {
2686
2683
  return { project: project.trim(), options, query: frozen.join(" AND ") };
2687
2684
  }, "prepareMeetingProjectEvidence");
2688
2685
 
2689
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/project-evidence.js
2686
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/project-evidence.js
2690
2687
  var readMeetingProjectEvidence = /* @__PURE__ */ __name(async (read, project, request = {}, now = Date.now()) => {
2691
2688
  const prepared = prepareMeetingProjectEvidence(project, request, now);
2692
2689
  const page = await read(prepared.project, prepared.options);
@@ -2694,12 +2691,12 @@ var readMeetingProjectEvidence = /* @__PURE__ */ __name(async (read, project, re
2694
2691
  return meetingProjectEvidenceAnswer(page, prepared);
2695
2692
  }, "readMeetingProjectEvidence");
2696
2693
 
2697
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/pull.js
2694
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/pull.js
2698
2695
  var participantInput = /* @__PURE__ */ __name((p, provider, occurrenceId2, position, accountId) => {
2699
- const { identityExternalId, ...fields2 } = p;
2696
+ const { identityExternalId, ...fields } = p;
2700
2697
  const externalId = identityExternalId ?? (p.email ? `email:${p.email.toLowerCase()}` : p.externalId) ?? `name:${p.displayName ?? "unknown"}@${accountId}/${occurrenceId2}:${position}`;
2701
2698
  return {
2702
- ...fields2,
2699
+ ...fields,
2703
2700
  identity: {
2704
2701
  provider,
2705
2702
  externalId,
@@ -2833,47 +2830,47 @@ unlinked`, format)],
2833
2830
  return report;
2834
2831
  }, "pull");
2835
2832
 
2836
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/read-answers.js
2837
- var text5 = string();
2833
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/read-answers.js
2834
+ var text4 = string();
2838
2835
  var count5 = pipe(number(), integer(), minValue(0));
2839
2836
  var id2 = pipe(number(), integer(), minValue(1));
2840
2837
  var iso3 = /* @__PURE__ */ __name((ms) => ms === null ? null : new Date(ms).toISOString(), "iso");
2841
2838
  var meetingReview = strictObject({
2842
2839
  ref: reference,
2843
2840
  id: pipe(string(), minLength(1)),
2844
- title: nullable(text5),
2841
+ title: nullable(text4),
2845
2842
  started_at: nullable(isoTime),
2846
2843
  duration_ms: nullable(count5),
2847
2844
  participants_count: nullable(count5),
2848
- projects: array(text5),
2845
+ projects: array(text4),
2849
2846
  /** Null when the meeting has no current transcript. */
2850
2847
  transcript: nullable(strictObject({ lines: count5, words: count5 })),
2851
2848
  /** The three who talked longest. */
2852
- speakers: array(strictObject({ name: nullable(text5), talk_ms: count5 })),
2849
+ speakers: array(strictObject({ name: nullable(text4), talk_ms: count5 })),
2853
2850
  /** The newest stored summary; null when there is none. */
2854
2851
  summary: nullable(strictObject({
2855
- source: text5,
2856
- title: nullable(text5),
2857
- overview: nullable(text5),
2858
- next_steps: array(text5),
2859
- url: nullable(text5)
2852
+ source: text4,
2853
+ title: nullable(text4),
2854
+ overview: nullable(text4),
2855
+ next_steps: array(text4),
2856
+ url: nullable(text4)
2860
2857
  }))
2861
2858
  });
2862
2859
  var meetingLink = strictObject({
2863
- url: text5,
2864
- domain: nullable(text5),
2860
+ url: text4,
2861
+ domain: nullable(text4),
2865
2862
  /** The Google Docs, Sheets, Slides, Forms or Drive file it names. */
2866
- document_id: nullable(text5),
2863
+ document_id: nullable(text4),
2867
2864
  count: count5,
2868
2865
  first_at: isoTime,
2869
2866
  last_at: isoTime,
2870
- senders: array(text5),
2871
- meetings: array(strictObject({ ref: reference, title: nullable(text5) }))
2867
+ senders: array(text4),
2868
+ meetings: array(strictObject({ ref: reference, title: nullable(text4) }))
2872
2869
  });
2873
2870
  var meetingSpeaker = strictObject({
2874
2871
  /** `person:<id>`, `identity:<id>`, `name:<lowercased name>` or `unknown`. */
2875
- key: text5,
2876
- name: nullable(text5),
2872
+ key: text4,
2873
+ name: nullable(text4),
2877
2874
  person_id: nullable(id2),
2878
2875
  identity_id: nullable(id2),
2879
2876
  meetings: count5,
@@ -2884,18 +2881,18 @@ var meetingSpeaker = strictObject({
2884
2881
  share: pipe(number(), minValue(0), maxValue(1))
2885
2882
  });
2886
2883
  var meetingStats = strictObject({
2887
- time_zone: text5,
2884
+ time_zone: text4,
2888
2885
  meetings: count5,
2889
2886
  lines: count5,
2890
2887
  words: count5,
2891
2888
  talk_ms: count5,
2892
2889
  /** `week_start` is the Monday, as a date in `time_zone`. */
2893
- weeks: array(strictObject({ week_start: text5, meetings: count5, talk_ms: count5 })),
2890
+ weeks: array(strictObject({ week_start: text4, meetings: count5, talk_ms: count5 })),
2894
2891
  top_speakers: array(meetingSpeaker)
2895
2892
  });
2896
2893
  var meetingCountsRow = strictObject({
2897
- key: text5,
2898
- name: nullable(text5),
2894
+ key: text4,
2895
+ name: nullable(text4),
2899
2896
  meetings: count5,
2900
2897
  minutes: count5,
2901
2898
  mean_minutes: nullable(number()),
@@ -2915,13 +2912,13 @@ var meetingParticipants = strictObject({
2915
2912
  schema_version: literal(1),
2916
2913
  kind: literal("meeting_participants"),
2917
2914
  account_id: id2,
2918
- query: text5,
2915
+ query: text4,
2919
2916
  items: array(strictObject({
2920
2917
  participant_id: id2,
2921
2918
  meeting_id: id2,
2922
2919
  identity_id: id2,
2923
- display_name: nullable(text5),
2924
- email: nullable(text5)
2920
+ display_name: nullable(text4),
2921
+ email: nullable(text4)
2925
2922
  })),
2926
2923
  /** Several identities on one page are observations, never speaker attribution or person links. */
2927
2924
  ambiguity: strictObject({ scope: literal("page"), multiple_identities: boolean(), identity_ids: array(id2) }),
@@ -2935,7 +2932,7 @@ var meetingParticipants = strictObject({
2935
2932
  mode: literal("cursor"),
2936
2933
  limit: count5,
2937
2934
  has_more: boolean(),
2938
- next_cursor: optional(text5)
2935
+ next_cursor: optional(text4)
2939
2936
  })
2940
2937
  });
2941
2938
  var revision = picklist(["current", "superseded"]);
@@ -2944,8 +2941,8 @@ var meetingPassage = strictObject({
2944
2941
  kind: literal("meeting_context"),
2945
2942
  source: reference,
2946
2943
  target_ref: reference,
2947
- target_fingerprint: text5,
2948
- fingerprint: text5,
2944
+ target_fingerprint: text4,
2945
+ fingerprint: text4,
2949
2946
  revision,
2950
2947
  limits: strictObject({ before: count5, after: count5, bytes: count5, max_read_bytes: count5 }),
2951
2948
  content_bytes: count5,
@@ -2964,30 +2961,30 @@ var meetingPassage = strictObject({
2964
2961
  }),
2965
2962
  items: array(strictObject({
2966
2963
  ref: reference,
2967
- fingerprint: text5,
2964
+ fingerprint: text4,
2968
2965
  transcript_id: id2,
2969
- content_hash: nullable(text5),
2966
+ content_hash: nullable(text4),
2970
2967
  position: count5,
2971
2968
  start_ms: count5,
2972
2969
  end_ms: count5,
2973
2970
  speaker_participant_id: nullable(id2),
2974
- speaker_name: nullable(text5),
2975
- text: text5,
2971
+ speaker_name: nullable(text4),
2972
+ text: text4,
2976
2973
  revision
2977
2974
  }))
2978
2975
  });
2979
2976
  var event = strictObject({
2980
2977
  id: pipe(string(), minLength(1)),
2981
- event_series_id: nullable(text5),
2982
- title: nullable(text5),
2983
- description: nullable(text5),
2984
- location: nullable(text5),
2978
+ event_series_id: nullable(text4),
2979
+ title: nullable(text4),
2980
+ description: nullable(text4),
2981
+ location: nullable(text4),
2985
2982
  starts_at: nullable(isoTime),
2986
2983
  ends_at: nullable(isoTime),
2987
- timezone: nullable(text5),
2984
+ timezone: nullable(text4),
2988
2985
  /** `auto`: made from a meeting; `owner`: made by hand; `calendar`: from a calendar's entries. */
2989
2986
  origin: picklist(["auto", "owner", "calendar"]),
2990
- status: nullable(text5),
2987
+ status: nullable(text4),
2991
2988
  all_day: boolean(),
2992
2989
  /** When its calendar deleted it: shown as "deleted in Google", kept as history. */
2993
2990
  source_deleted_at: nullable(isoTime),
@@ -2995,7 +2992,7 @@ var event = strictObject({
2995
2992
  created_at: isoTime,
2996
2993
  updated_at: isoTime,
2997
2994
  /** The fields whoever sent the invitation wrote, on a calendar CLI's `events list`: an agent reads them as data. */
2998
- untrusted: optional(array(text5)),
2995
+ untrusted: optional(array(text4)),
2999
2996
  /** On a calendar CLI's `events list changed:<date>`: what changed since then, and when the store saw it. */
3000
2997
  change: optional(picklist(["new", "moved", "cancelled"])),
3001
2998
  changed_at: optional(nullable(isoTime)),
@@ -3007,7 +3004,7 @@ var event = strictObject({
3007
3004
  */
3008
3005
  overlapping: optional(boolean()),
3009
3006
  /** With `overlapping:true`: the events it overlaps, as `event:<id>`. */
3010
- overlaps: optional(array(text5))
3007
+ overlaps: optional(array(text4))
3011
3008
  });
3012
3009
  var eventItem = /* @__PURE__ */ __name((one) => ({
3013
3010
  id: String(one.id),
@@ -3027,10 +3024,10 @@ var eventItem = /* @__PURE__ */ __name((one) => ({
3027
3024
  updated_at: new Date(one.updatedAt).toISOString()
3028
3025
  }), "eventItem");
3029
3026
 
3030
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/recording-transfer.js
3027
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/recording-transfer.js
3031
3028
  var strongRecordingValidator = /* @__PURE__ */ __name((value) => typeof value === "string" && value.length <= 1024 && /^"[\x21\x23-\x7e\x80-\xff]*"$/.test(value), "strongRecordingValidator");
3032
3029
 
3033
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/related-history.js
3030
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/related-history.js
3034
3031
  var validateMeetingRelatedHistory = /* @__PURE__ */ __name((original) => {
3035
3032
  if (!original || typeof original !== "object" || Array.isArray(original))
3036
3033
  throw new CliError("validation_error", "related history request is required");
@@ -3060,14 +3057,14 @@ var validateMeetingRelatedHistory = /* @__PURE__ */ __name((original) => {
3060
3057
  return { ...input, anchorIds: [...new Set(input.anchorIds)], limit, maxReadBytes };
3061
3058
  }, "validateMeetingRelatedHistory");
3062
3059
 
3063
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/review.js
3060
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/review.js
3064
3061
  var REVIEW_LIMIT = { default: 50, most: 200 };
3065
3062
 
3066
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/save-hints.js
3063
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/save-hints.js
3067
3064
  var SAVE_HELP = `Worth keeping \u2014 a decision, a promise, a preference? Record it with \`memo facts add\` or
3068
3065
  \`memo memories add\`, citing the msg: locator or meeting: reference as --evidence.`;
3069
3066
 
3070
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/series-history.js
3067
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/series-history.js
3071
3068
  var validateMeetingSeriesHistory = /* @__PURE__ */ __name((input) => {
3072
3069
  input.signal?.throwIfAborted();
3073
3070
  if (!Number.isSafeInteger(input.accountId) || input.accountId <= 0)
@@ -3088,7 +3085,7 @@ var validateMeetingSeriesHistory = /* @__PURE__ */ __name((input) => {
3088
3085
  return { ...input, limit, maxReadBytes };
3089
3086
  }, "validateMeetingSeriesHistory");
3090
3087
 
3091
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/upcoming-validation.js
3088
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/upcoming-validation.js
3092
3089
  var invalid4 = /* @__PURE__ */ __name((field) => {
3093
3090
  throw new CliError("invalid_response", `meeting occurrence ${field} is invalid`);
3094
3091
  }, "invalid");
@@ -3157,16 +3154,16 @@ var readOccurrenceSchedule = /* @__PURE__ */ __name((input, meetingId, limit, ma
3157
3154
  return result;
3158
3155
  }, "readOccurrenceSchedule");
3159
3156
 
3160
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/series-inventory-validation.js
3157
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/series-inventory-validation.js
3161
3158
  function invalid5(field, response = false) {
3162
3159
  throw new CliError(response ? "invalid_response" : "validation_error", `invalid meeting inventory ${field}`);
3163
3160
  }
3164
3161
  __name(invalid5, "invalid");
3165
- var object2 = /* @__PURE__ */ __name((value, fields2, field, response = false) => {
3162
+ var object2 = /* @__PURE__ */ __name((value, fields, field, response = false) => {
3166
3163
  if (!value || typeof value !== "object" || Array.isArray(value))
3167
3164
  invalid5(field, response);
3168
3165
  for (const key of Object.keys(value))
3169
- if (!fields2.includes(key))
3166
+ if (!fields.includes(key))
3170
3167
  invalid5(`${field}.${key}`, response);
3171
3168
  }, "object");
3172
3169
  var cursorDetails = /* @__PURE__ */ __name((value) => {
@@ -3186,7 +3183,7 @@ var validateMeetingSeriesInventoryCursor = /* @__PURE__ */ __name((value) => {
3186
3183
  cursorDetails(value);
3187
3184
  }, "validateMeetingSeriesInventoryCursor");
3188
3185
 
3189
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/stats.js
3186
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/stats.js
3190
3187
  var MEETING_COUNTS_GROUPINGS = ["day", "week", "series"];
3191
3188
  var zoneOf = /* @__PURE__ */ __name((timeZone) => {
3192
3189
  const zone = timeZone ?? "UTC";
@@ -3321,7 +3318,7 @@ var aggregateMeetingStats = /* @__PURE__ */ __name((rows, timeZone) => {
3321
3318
  };
3322
3319
  }, "aggregateMeetingStats");
3323
3320
 
3324
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/meetings/upcoming.js
3321
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/meetings/upcoming.js
3325
3322
  var cancelled = /* @__PURE__ */ __name((signal) => {
3326
3323
  if (!signal?.aborted)
3327
3324
  return;
@@ -3391,7 +3388,7 @@ var createUpcomingMeetingReader = /* @__PURE__ */ __name((scope2, port) => {
3391
3388
  };
3392
3389
  }, "createUpcomingMeetingReader");
3393
3390
 
3394
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/domain/tags.js
3391
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/domain/tags.js
3395
3392
  var TAG_TYPES = ["chat", "contact", "message", "task"];
3396
3393
  var TAG = /^[a-z0-9-]{1,32}$/;
3397
3394
  var tagOf = /* @__PURE__ */ __name((value) => {
@@ -3405,7 +3402,7 @@ var normalizeTag = /* @__PURE__ */ __name((value) => {
3405
3402
  return tag;
3406
3403
  }, "normalizeTag");
3407
3404
 
3408
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/store/sqlite/link-kinds.js
3405
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/store/sqlite/link-kinds.js
3409
3406
  var LINK_KINDS = [
3410
3407
  "links-to",
3411
3408
  "blocked-by",
@@ -3426,7 +3423,7 @@ var LINK_SOURCES = [...LINK_ORIGINS, "calendar"];
3426
3423
  var RELATION_KINDS = ["member-of", "related-to"];
3427
3424
  var linkKind = /* @__PURE__ */ __name((kind) => `'${kind}'`, "linkKind");
3428
3425
 
3429
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/tasks/model.js
3426
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/tasks/model.js
3430
3427
  var TASK_KINDS = ["question", "request", "mention", "promise"];
3431
3428
  var TASK_STATES = ["open", "todo", "in_progress", "done", "dismissed"];
3432
3429
  var CLOSED_STATES = ["done", "dismissed"];
@@ -3441,7 +3438,7 @@ function closeTask(task, state, by, at, reason) {
3441
3438
  }
3442
3439
  __name(closeTask, "closeTask");
3443
3440
 
3444
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/tasks/priority.js
3441
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/tasks/priority.js
3445
3442
  var PRIORITY_LABELS = ["low", "medium", "high", "critical"];
3446
3443
  var MIDDLE = { low: 0.125, medium: 0.375, high: 0.625, critical: 0.875 };
3447
3444
  var LEGACY_PRIORITY_SCORES = [0.875, 0.625, 0.375, 0.1875, 0.0625];
@@ -3470,13 +3467,13 @@ var priorityOf = /* @__PURE__ */ __name((value) => {
3470
3467
  }, "priorityOf");
3471
3468
  var priorityOption = /* @__PURE__ */ __name((value) => priorityOf(value) ?? "none", "priorityOption");
3472
3469
 
3473
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/tasks/store.js
3470
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/tasks/store.js
3474
3471
  function matches2(task, filter) {
3475
3472
  return (filter.account === void 0 || task.account === filter.account) && (filter.state === void 0 || task.state === filter.state) && (filter.group === void 0 || task.group === filter.group) && (filter.kind === void 0 || task.kind === filter.kind) && (filter.createdBefore === void 0 || task.createdAt < filter.createdBefore);
3476
3473
  }
3477
3474
  __name(matches2, "matches");
3478
3475
 
3479
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/tasks/service.js
3476
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/tasks/service.js
3480
3477
  function createTaskService({ store, now = /* @__PURE__ */ __name(() => /* @__PURE__ */ new Date(), "now"), newId = /* @__PURE__ */ __name(() => crypto.randomUUID(), "newId") }) {
3481
3478
  async function find(id3) {
3482
3479
  const task = await store.get(id3);
@@ -3536,7 +3533,7 @@ function median(values) {
3536
3533
  }
3537
3534
  __name(median, "median");
3538
3535
 
3539
- // node_modules/.pnpm/@wirecat+cli-core@0.564.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_0a4d79b5da58b1179a36aa928f36b150/node_modules/@wirecat/cli-core/dist/domain/knowledge.js
3536
+ // node_modules/.pnpm/@wirecat+cli-core@0.569.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_8785fed449bbc2a6b34fc086f24a8413/node_modules/@wirecat/cli-core/dist/domain/knowledge.js
3540
3537
  var FACT_STATUSES = ["proposed", "accepted", "superseded", "reversed", "rejected"];
3541
3538
  var MEMORY_KINDS = ["summary", "digest", "preference"];
3542
3539
  var MEMORY_STATUSES = ["proposed", "confirmed", "stale", "superseded"];
@@ -3600,14 +3597,14 @@ export {
3600
3597
  validatePayment,
3601
3598
  paymentTitle,
3602
3599
  meetingTimestamp,
3600
+ findingText,
3603
3601
  findingHash,
3602
+ findingFields,
3604
3603
  validEvidence,
3605
3604
  findingId,
3606
3605
  validateFinding,
3607
3606
  validateBatch,
3608
3607
  validateFindings,
3609
- findingText,
3610
- findingFields,
3611
3608
  findingFingerprint,
3612
3609
  MEETING_FINDINGS_KIND,
3613
3610
  validateMeetingFindings,