@wirecat/cli-memo 0.131.23 → 0.131.25

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 (222) hide show
  1. package/README.md +9 -12
  2. package/dist/app.d.ts +1 -1
  3. package/dist/bin/memo.js +2 -2
  4. package/dist/bundle/{all-profiles-VIPS6NHI.js → all-profiles-L2T7PQ7S.js} +9 -9
  5. package/dist/bundle/{anthropic-2QZHSXBA.js → anthropic-KWI2B4O2.js} +6 -6
  6. package/dist/bundle/{app-server-NTSADYGW.js → app-server-GLDIS3HE.js} +42 -42
  7. package/dist/bundle/auto-QFG57LR6.js +86 -0
  8. package/dist/bundle/{bun-KF5QK2YN.js → bun-SMKYTOGI.js} +2 -2
  9. package/dist/bundle/{bun-sqlite-XUCC2PWC.js → bun-sqlite-PKY3JXMR.js} +5 -5
  10. package/dist/bundle/{chunk-V7Y5FOYJ.js → chunk-47EZNSMD.js} +2 -2
  11. package/dist/bundle/{chunk-4QY7XOVI.js → chunk-4AONXXP2.js} +45 -26
  12. package/dist/bundle/{chunk-XRJIQC6P.js → chunk-5ANNUWNM.js} +2 -2
  13. package/dist/bundle/{chunk-QZXHMQCM.js → chunk-5GMOYTJQ.js} +1 -1
  14. package/dist/bundle/{chunk-N5L6YYYW.js → chunk-5JYB6QKS.js} +3 -15
  15. package/dist/bundle/{chunk-24P36RXS.js → chunk-5SKYUS4U.js} +484 -312
  16. package/dist/bundle/{chunk-6EZ7XGRG.js → chunk-6OP743NB.js} +2 -2
  17. package/dist/bundle/{chunk-Z6YD3YK4.js → chunk-7Y6O4UQB.js} +22 -22
  18. package/dist/bundle/{chunk-G4GEARGN.js → chunk-BNF2ZUNS.js} +9 -9
  19. package/dist/bundle/{chunk-AHFMQAJT.js → chunk-BX7DVBWD.js} +15 -12
  20. package/dist/bundle/{chunk-PDQFWOR5.js → chunk-D5ZV7PRP.js} +3 -3
  21. package/dist/bundle/{chunk-QWRBAQZ7.js → chunk-E2WPSRCI.js} +1 -1
  22. package/dist/bundle/{chunk-CCHHEMPM.js → chunk-EB2IULWB.js} +3 -2
  23. package/dist/bundle/{chunk-7PQOYNMA.js → chunk-EEVUVWHW.js} +2 -2
  24. package/dist/bundle/{chunk-GQOFHKUX.js → chunk-EFTJ4RTT.js} +6 -6
  25. package/dist/bundle/{chunk-BSDOH7DN.js → chunk-ENU2556X.js} +3 -3
  26. package/dist/bundle/{chunk-KQ5P5NLL.js → chunk-ERQHZZNF.js} +1 -1
  27. package/dist/bundle/{chunk-5WCEWK2F.js → chunk-FS3ABWVX.js} +12 -12
  28. package/dist/bundle/{chunk-JY4LVWGZ.js → chunk-G2BB5WY5.js} +15 -8
  29. package/dist/bundle/{chunk-O7OI5V7W.js → chunk-H5QHU5LZ.js} +8 -8
  30. package/dist/bundle/{chunk-AETJWLHX.js → chunk-I5LIEFQR.js} +4 -4
  31. package/dist/bundle/{chunk-JCCL7RGH.js → chunk-I7PL5WX2.js} +4 -4
  32. package/dist/bundle/{chunk-37NN65PB.js → chunk-IE27DJP3.js} +10 -10
  33. package/dist/bundle/{chunk-DIP3ENSY.js → chunk-ILUTSRU3.js} +1 -1
  34. package/dist/bundle/{chunk-DIELPPLF.js → chunk-INA5WGY7.js} +2 -2
  35. package/dist/bundle/{chunk-STZMKXK5.js → chunk-J7T6RSR5.js} +4 -4
  36. package/dist/bundle/{chunk-BSR4QZW5.js → chunk-JDDLDKC7.js} +3 -3
  37. package/dist/bundle/{chunk-MJWFSOJN.js → chunk-JLBKAIVT.js} +371 -211
  38. package/dist/bundle/{chunk-UJEO3VWA.js → chunk-JVNSHN2J.js} +1 -1
  39. package/dist/bundle/{chunk-ZCPUKUST.js → chunk-KFZGI7BU.js} +1 -1
  40. package/dist/bundle/{chunk-ILHTNOIV.js → chunk-KV4267S4.js} +1 -1
  41. package/dist/bundle/{chunk-CTT5VK66.js → chunk-LFNJ6CG6.js} +6 -6
  42. package/dist/bundle/chunk-MAUKGKRA.js +428 -0
  43. package/dist/bundle/{chunk-44NQLD5C.js → chunk-MWX7UJCL.js} +7 -7
  44. package/dist/bundle/{chunk-IJI62T4U.js → chunk-MZS3LIMW.js} +29 -29
  45. package/dist/bundle/{chunk-JDNA36EX.js → chunk-NFTWNCEL.js} +9 -9
  46. package/dist/bundle/{chunk-RE5SEGSR.js → chunk-OGMTUMB7.js} +4 -4
  47. package/dist/bundle/{chunk-QFO6K6CW.js → chunk-ON5SHKHB.js} +46 -46
  48. package/dist/bundle/{chunk-JRJIFGU2.js → chunk-PCT2CIYR.js} +5 -5
  49. package/dist/bundle/{chunk-46WO42ZW.js → chunk-POXCMAM7.js} +448 -517
  50. package/dist/bundle/{chunk-6PXE6QSQ.js → chunk-QA674BMY.js} +1 -1
  51. package/dist/bundle/{chunk-QSN5NUVL.js → chunk-QJJSMLBR.js} +3 -3
  52. package/dist/bundle/{chunk-GDGY2KIX.js → chunk-QOWGFGG3.js} +5 -5
  53. package/dist/bundle/{chunk-6I7XGWGH.js → chunk-QYDCVWD4.js} +6 -6
  54. package/dist/bundle/{chunk-NY4IKP35.js → chunk-RKLZQVKL.js} +2 -2
  55. package/dist/bundle/{chunk-FXF34MI2.js → chunk-RTII6JWI.js} +3 -3
  56. package/dist/bundle/{chunk-V5ZID7KC.js → chunk-SBMBBVXF.js} +1 -1
  57. package/dist/bundle/{chunk-H76MIWB2.js → chunk-SW5YJCHC.js} +4 -4
  58. package/dist/bundle/{chunk-YKZNFSQE.js → chunk-T3R6QHD2.js} +2 -2
  59. package/dist/bundle/{chunk-T4LW6UYQ.js → chunk-TZ7WDQPD.js} +40 -34
  60. package/dist/bundle/{chunk-R4V63U6A.js → chunk-UQS6Y2A7.js} +4 -4
  61. package/dist/bundle/{chunk-UMWR5PKA.js → chunk-UWUP3A5H.js} +13 -13
  62. package/dist/bundle/{chunk-5M4KSMYN.js → chunk-VGYXKQJE.js} +155 -81
  63. package/dist/bundle/{chunk-Z7XHH2Q5.js → chunk-VZ3K7IYC.js} +35 -17
  64. package/dist/bundle/{chunk-XTARXRP6.js → chunk-WGHQXJHL.js} +10 -10
  65. package/dist/bundle/{chunk-2IKXEL4V.js → chunk-WHVH72AD.js} +2 -2
  66. package/dist/bundle/{chunk-EW3XTUPB.js → chunk-XBIPSSKI.js} +4 -4
  67. package/dist/bundle/{chunk-L6FKTS3L.js → chunk-XFDE6AL4.js} +8 -8
  68. package/dist/bundle/{chunk-W53TRO7J.js → chunk-YMAS7U5X.js} +650 -330
  69. package/dist/bundle/{chunk-PQLBPYJR.js → chunk-YPF6OS37.js} +1 -1
  70. package/dist/bundle/{chunk-HBXZ7WIV.js → chunk-ZKZT6PCF.js} +8 -8
  71. package/dist/bundle/{chunk-CKLCJ6O7.js → chunk-ZLB2CM7Z.js} +6 -6
  72. package/dist/bundle/{chunk-4DKMYDLT.js → chunk-ZUV337F2.js} +43 -30
  73. package/dist/bundle/{chunk-BIYSJBQR.js → chunk-ZVEGLXYB.js} +4 -4
  74. package/dist/bundle/command-contract-47EKA67S.js +32 -0
  75. package/dist/bundle/{decode-LFASKQPE.js → decode-EEDEXCHR.js} +5 -5
  76. package/dist/bundle/{dispatch-MELZFYOS.js → dispatch-CU5KGRQL.js} +8 -8
  77. package/dist/bundle/{echarts-5AB3LFVD.js → echarts-36MD3UZF.js} +2 -2
  78. package/dist/bundle/{embed-6KQN523T.js → embed-R6JZ4CDW.js} +6 -6
  79. package/dist/bundle/{embedder-7SGPMINO.js → embedder-XUIOKCH6.js} +9 -9
  80. package/dist/bundle/{entry-CNZGHHZB.js → entry-WOAZRQ5F.js} +7 -7
  81. package/dist/bundle/failure-BHRE5S75.js +66 -0
  82. package/dist/bundle/{failure-RBNZBCZJ.js → failure-TUXXI6JT.js} +2 -2
  83. package/dist/bundle/{first-run-UI6UT4OR.js → first-run-3ZUSIFQJ.js} +11 -11
  84. package/dist/bundle/first-screen-WQ2IDXDP.js +30 -0
  85. package/dist/bundle/{instructions-52W6ZQTU.js → instructions-7VMPJMUM.js} +1 -1
  86. package/dist/bundle/mcp-I7LL7AJG.js +90 -0
  87. package/dist/bundle/{mcp-MNI62HHE.js → mcp-PPVOM4SE.js} +2 -2
  88. package/dist/bundle/memo.js +16 -16
  89. package/dist/bundle/{node-TL2PBNKO.js → node-SBHCG4ZC.js} +2 -2
  90. package/dist/bundle/{node-sqlite-64QIEQ37.js → node-sqlite-EMKROM5U.js} +6 -6
  91. package/dist/bundle/{oauth-GH7GLGEJ.js → oauth-OJPTUA5K.js} +7 -7
  92. package/dist/bundle/{open-PCKU5XOH.js → open-XI2AVS5B.js} +5 -5
  93. package/dist/bundle/{openai-P5QVLTF6.js → openai-NCYTRZB6.js} +10 -10
  94. package/dist/bundle/{process-PWAGP6YY.js → process-373B2EBA.js} +1 -1
  95. package/dist/bundle/{chunk-32FPXLNY.js → program-VW7IJ755.js} +9893 -2081
  96. package/dist/bundle/{prompt-FNBKJZLM.js → prompt-L3KQBPNH.js} +5 -5
  97. package/dist/bundle/{recognize-5TKRMMA2.js → recognize-GFWZX4F6.js} +4 -4
  98. package/dist/bundle/{remote-XZJ7ZAKJ.js → remote-5IGAYQBB.js} +7 -7
  99. package/dist/bundle/{rerank-JUH3QHX7.js → rerank-6HWHGDFX.js} +7 -7
  100. package/dist/bundle/{serve-JP6U3PUO.js → serve-AA7RKEOM.js} +9 -9
  101. package/dist/bundle/server-MWUCYBJF.js +61 -0
  102. package/dist/bundle/server-XEY5AKKG.js +48 -0
  103. package/dist/bundle/{server-VXI43PF5.js → server-Z6L4U6HO.js} +57 -57
  104. package/dist/bundle/{state-G4NEN2OZ.js → state-3WTPOBXR.js} +6 -6
  105. package/dist/bundle/{store-NHFLFHD5.js → store-LNP5BXUL.js} +13 -13
  106. package/dist/bundle/store-maintenance-command-6HEGTKPL.js +48 -0
  107. package/dist/bundle/update-6GWVILUX.js +69 -0
  108. package/dist/config.d.ts +2 -28
  109. package/dist/config.d.ts.map +1 -1
  110. package/dist/config.js +2 -35
  111. package/dist/config.js.map +1 -1
  112. package/dist/doctor/command.d.ts +0 -12
  113. package/dist/doctor/command.d.ts.map +1 -1
  114. package/dist/doctor/command.js +19 -24
  115. package/dist/doctor/command.js.map +1 -1
  116. package/dist/examples.d.ts.map +1 -1
  117. package/dist/examples.js +1 -8
  118. package/dist/examples.js.map +1 -1
  119. package/dist/failure.d.ts +2 -2
  120. package/dist/mail/command.d.ts.map +1 -1
  121. package/dist/mail/command.js +2 -87
  122. package/dist/mail/command.js.map +1 -1
  123. package/dist/mail/findings-command.d.ts.map +1 -1
  124. package/dist/mail/findings-command.js +1 -1
  125. package/dist/mail/findings-command.js.map +1 -1
  126. package/dist/mail/moved.d.ts +1 -1
  127. package/dist/mail/moved.d.ts.map +1 -1
  128. package/dist/mail/moved.js +3 -0
  129. package/dist/mail/moved.js.map +1 -1
  130. package/dist/mail/review-command.d.ts +1 -1
  131. package/dist/mail/review-command.d.ts.map +1 -1
  132. package/dist/program.js +1 -1
  133. package/dist/program.js.map +1 -1
  134. package/dist/read-only.d.ts +1 -1
  135. package/dist/reasons.d.ts.map +1 -1
  136. package/dist/reasons.js +1 -13
  137. package/dist/reasons.js.map +1 -1
  138. package/dist/run/auto.js +3 -3
  139. package/dist/run/auto.js.map +1 -1
  140. package/dist/run/import.d.ts +2 -2
  141. package/dist/run/import.d.ts.map +1 -1
  142. package/dist/run/import.js +24 -121
  143. package/dist/run/import.js.map +1 -1
  144. package/dist/search/command.js +1 -1
  145. package/dist/store/source-list.d.ts +1 -6
  146. package/dist/store/source-list.d.ts.map +1 -1
  147. package/dist/store/source-list.js +11 -46
  148. package/dist/store/source-list.js.map +1 -1
  149. package/dist/tasks/command.js +1 -1
  150. package/dist/tasks/command.js.map +1 -1
  151. package/dist/version.d.ts +1 -1
  152. package/dist/version.js +1 -1
  153. package/package.json +4 -4
  154. package/scenarios/set-up.md +3 -3
  155. package/skills/cli-memo/SKILL.md +13 -21
  156. package/skills/mail-triage/SKILL.md +9 -5
  157. package/dist/bundle/auto-MJWSDIMF.js +0 -86
  158. package/dist/bundle/chunk-UQA5UFJ2.js +0 -103
  159. package/dist/bundle/command-contract-XBYNZVP5.js +0 -32
  160. package/dist/bundle/failure-LJAYEPTS.js +0 -66
  161. package/dist/bundle/first-screen-3WDPZZXV.js +0 -30
  162. package/dist/bundle/mcp-JIOYIKWO.js +0 -90
  163. package/dist/bundle/program-D7OTNHGU.js +0 -10947
  164. package/dist/bundle/server-5M4YI3V4.js +0 -48
  165. package/dist/bundle/server-XAHF22CQ.js +0 -61
  166. package/dist/bundle/setup-YLI4S4TW.js +0 -973
  167. package/dist/bundle/store-maintenance-command-6UEORZWI.js +0 -48
  168. package/dist/bundle/update-6SD2JZUC.js +0 -69
  169. package/dist/mail/accounts.d.ts +0 -7
  170. package/dist/mail/accounts.d.ts.map +0 -1
  171. package/dist/mail/accounts.js +0 -28
  172. package/dist/mail/accounts.js.map +0 -1
  173. package/dist/mail/backfill-headers.d.ts +0 -11
  174. package/dist/mail/backfill-headers.d.ts.map +0 -1
  175. package/dist/mail/backfill-headers.js +0 -84
  176. package/dist/mail/backfill-headers.js.map +0 -1
  177. package/dist/mail/domain-age.d.ts +0 -26
  178. package/dist/mail/domain-age.d.ts.map +0 -1
  179. package/dist/mail/domain-age.js +0 -151
  180. package/dist/mail/domain-age.js.map +0 -1
  181. package/dist/mail/gmail.d.ts +0 -39
  182. package/dist/mail/gmail.d.ts.map +0 -1
  183. package/dist/mail/gmail.js +0 -325
  184. package/dist/mail/gmail.js.map +0 -1
  185. package/dist/mail/himalaya.d.ts +0 -22
  186. package/dist/mail/himalaya.d.ts.map +0 -1
  187. package/dist/mail/himalaya.js +0 -113
  188. package/dist/mail/himalaya.js.map +0 -1
  189. package/dist/mail/mbox.d.ts +0 -9
  190. package/dist/mail/mbox.d.ts.map +0 -1
  191. package/dist/mail/mbox.js +0 -230
  192. package/dist/mail/mbox.js.map +0 -1
  193. package/dist/mail/repair.d.ts +0 -7
  194. package/dist/mail/repair.d.ts.map +0 -1
  195. package/dist/mail/repair.js +0 -54
  196. package/dist/mail/repair.js.map +0 -1
  197. package/dist/mail/rule-store.d.ts +0 -12
  198. package/dist/mail/rule-store.d.ts.map +0 -1
  199. package/dist/mail/rule-store.js +0 -83
  200. package/dist/mail/rule-store.js.map +0 -1
  201. package/dist/mail/setup-command.d.ts +0 -4
  202. package/dist/mail/setup-command.d.ts.map +0 -1
  203. package/dist/mail/setup-command.js +0 -41
  204. package/dist/mail/setup-command.js.map +0 -1
  205. package/dist/mail/setup.d.ts +0 -19
  206. package/dist/mail/setup.d.ts.map +0 -1
  207. package/dist/mail/setup.js +0 -95
  208. package/dist/mail/setup.js.map +0 -1
  209. package/dist/mail/slices.d.ts +0 -6
  210. package/dist/mail/slices.d.ts.map +0 -1
  211. package/dist/mail/slices.js +0 -7
  212. package/dist/mail/slices.js.map +0 -1
  213. package/dist/mail/source.d.ts +0 -7
  214. package/dist/mail/source.d.ts.map +0 -1
  215. package/dist/mail/source.js +0 -119
  216. package/dist/mail/source.js.map +0 -1
  217. package/dist/mail/sync.d.ts +0 -21
  218. package/dist/mail/sync.d.ts.map +0 -1
  219. package/dist/mail/sync.js +0 -24
  220. package/dist/mail/sync.js.map +0 -1
  221. /package/dist/bundle/{chunk-NUN6OGOV.js → chunk-LU3WKZBA.js} +0 -0
  222. /package/dist/bundle/{chunk-WX2WLEEF.js → chunk-MNDLWYNQ.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
314
  var leftOut = /* @__PURE__ */ __name((fields2) => fields2.filter((field) => field.negatable).map((field) => field.name), "leftOut");
316
315
  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");
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], > <)";
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], > <" : ""})`;
349
344
  const fields2 = 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
346
  return `${terms}; fields: ${fields2.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
  "+",
@@ -458,6 +453,10 @@ var tokensOf = /* @__PURE__ */ __name((text6, fail = queryError) => {
458
453
  break;
459
454
  at++;
460
455
  }
456
+ const [field, colon] = tokens.slice(-2);
457
+ if (field?.kind === "term" && colon?.kind === ":" && colon.span.end === start && text6[at] === ":" && /^[a-z][a-z_-]*$/u.test(text6.slice(start, at)) && /^:[^\s()"]/u.test(text6.slice(at)))
458
+ while (at < text6.length && !whitespace(text6[at] ?? "") && !["(", ")", '"'].includes(text6[at] ?? ""))
459
+ at++;
461
460
  const raw = text6.slice(start, at);
462
461
  kind = { AND: "AND", OR: "OR", NOT: "NOT", "&&": "AND", "||": "OR" }[raw] ?? (/^\d+(?:\.\d+)?$/u.test(raw) ? "number" : "term");
463
462
  }
@@ -656,7 +655,7 @@ var implicitTextTerms = /* @__PURE__ */ __name((text6) => {
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,
@@ -802,7 +801,7 @@ 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
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
806
805
  var wordsOf = /* @__PURE__ */ __name((text6) => text6.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");
@@ -857,7 +856,7 @@ var matches = /* @__PURE__ */ __name((node, item, byName, options) => {
857
856
  }, "matches");
858
857
  var evaluate = /* @__PURE__ */ __name((ast, fields2, item, options = {}) => matches(ast.root, item, new Map(fields2.map((field) => [field.name, field])), options), "evaluate");
859
858
 
860
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/reference.js
859
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/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)
@@ -894,7 +893,7 @@ var parseMeetingReference = /* @__PURE__ */ __name((text6) => {
894
893
  }, "parseMeetingReference");
895
894
  var canonicalMeetingReference = /* @__PURE__ */ __name((text6) => formatMeetingReference(parseMeetingReference(text6)), "canonicalMeetingReference");
896
895
 
897
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/item.js
896
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/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.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/join-key.js
961
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/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,7 +992,7 @@ var urlOf = /* @__PURE__ */ __name((url) => {
993
992
  }
994
993
  }, "urlOf");
995
994
 
996
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/calendar-text.js
995
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/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");
@@ -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.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/cue-fingerprint.js
1028
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/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.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/event-store.js
1042
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/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.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/answers.js
1065
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/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");
@@ -1298,7 +1297,7 @@ var meetingHitsList = /* @__PURE__ */ __name((found, limit, command = "search me
1298
1297
  };
1299
1298
  }, "meetingHitsList");
1300
1299
 
1301
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/participant-search.js
1300
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/participant-search.js
1302
1301
  var normalizeMeetingParticipantQuery = /* @__PURE__ */ __name((text6) => text6.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"))
@@ -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.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/reads.js
1324
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/reads.js
1326
1325
  var MeetingError = class extends CliError {
1327
1326
  static {
1328
1327
  __name(this, "MeetingError");
@@ -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.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/export.js
1456
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/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");
@@ -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.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/payment.js
1552
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/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.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/findings-rules.js
1646
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/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.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/timestamp.js
1649
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/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,7 +1657,7 @@ 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.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/findings-rules.js
1660
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/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);
@@ -1805,7 +1804,7 @@ var findingText = /* @__PURE__ */ __name((value, limit) => text3(value, limit),
1805
1804
  var findingFields = /* @__PURE__ */ __name((value, allowed, noun) => fields(value, allowed, noun), "findingFields");
1806
1805
  var findingFingerprint = /* @__PURE__ */ __name(({ id: _id, ...finding }) => findingHash(finding), "findingFingerprint");
1807
1806
 
1808
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/findings.js
1807
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/findings.js
1809
1808
  var MEETING_FINDINGS_KIND = "meeting_findings";
1810
1809
  var cue = /* @__PURE__ */ __name((raw) => {
1811
1810
  const reference2 = canonicalMeetingReference(raw);
@@ -1816,7 +1815,7 @@ var cue = /* @__PURE__ */ __name((raw) => {
1816
1815
  var validateMeetingFindings = /* @__PURE__ */ __name((input) => validateFindings(input, { plural: "meeting findings", singular: "meeting finding", cited: "cue", reference: cue }), "validateMeetingFindings");
1817
1816
  var meetingFindingFingerprint = findingFingerprint;
1818
1817
 
1819
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/result-items.js
1818
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/result-items.js
1820
1819
  var text4 = string();
1821
1820
  var identifier = pipe(text4, minLength(1));
1822
1821
  var nullableText = nullable(text4);
@@ -1949,7 +1948,7 @@ var MEETING_RESULT_ENTITIES = {
1949
1948
  meeting_repair: repair
1950
1949
  };
1951
1950
 
1952
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/event-query.js
1951
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/event-query.js
1953
1952
  var EVENT_QUERY = defineQuery({
1954
1953
  entity: "event",
1955
1954
  backend: "sql",
@@ -1965,7 +1964,7 @@ var EVENT_QUERY = defineQuery({
1965
1964
  ]
1966
1965
  });
1967
1966
 
1968
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/events.js
1967
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/events.js
1969
1968
  var linkEvent = /* @__PURE__ */ __name(async (store, details, now = Date.now()) => {
1970
1969
  const current = await store.meeting(details.meeting.id);
1971
1970
  if (!current)
@@ -2008,7 +2007,7 @@ var linkEvent = /* @__PURE__ */ __name(async (store, details, now = Date.now())
2008
2007
  return (await store.events()).find((e) => e.id === linked?.meeting.eventId) ?? null;
2009
2008
  }, "linkEvent");
2010
2009
 
2011
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/hit-query.js
2010
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/hit-query.js
2012
2011
  var context = {
2013
2012
  command: "search meetings",
2014
2013
  guide: "https://github.com/WireCatLabs/cli-core/blob/main/docs/search/query-language.md#\u0432\u0441\u0442\u0440\u0435\u0447\u0438"
@@ -2127,7 +2126,7 @@ var meetingWordsQuery = /* @__PURE__ */ __name((text6) => {
2127
2126
  return { version: 1, language: "lucene-v1", root };
2128
2127
  }, "meetingWordsQuery");
2129
2128
 
2130
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/language.js
2129
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/language.js
2131
2130
  var LATIN_WORDS = {
2132
2131
  en: ["the", "and", "is", "that", "you", "this", "what", "have", "with", "are"],
2133
2132
  es: ["el", "los", "las", "por", "pero", "para", "est\xE1", "muy", "tambi\xE9n", "hay"],
@@ -2176,7 +2175,7 @@ var transcriptLanguage = /* @__PURE__ */ __name((texts) => {
2176
2175
  return null;
2177
2176
  }, "transcriptLanguage");
2178
2177
 
2179
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/ingest.js
2178
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/ingest.js
2180
2179
  var contentHash = /* @__PURE__ */ __name(async (text6) => {
2181
2180
  const bytes = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(text6));
2182
2181
  return Array.from(new Uint8Array(bytes), (byte) => byte.toString(16).padStart(2, "0")).join("");
@@ -2213,7 +2212,7 @@ var timestamp2 = /* @__PURE__ */ __name((value) => {
2213
2212
  return time;
2214
2213
  }, "timestamp");
2215
2214
 
2216
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/transcript-text.js
2215
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/transcript-text.js
2217
2216
  var TranscriptTextError = class extends Error {
2218
2217
  static {
2219
2218
  __name(this, "TranscriptTextError");
@@ -2268,7 +2267,7 @@ var parseTranscriptText = /* @__PURE__ */ __name((input) => {
2268
2267
  return { header, lines };
2269
2268
  }, "parseTranscriptText");
2270
2269
 
2271
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/vtt.js
2270
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/vtt.js
2272
2271
  var VttError = class extends Error {
2273
2272
  static {
2274
2273
  __name(this, "VttError");
@@ -2320,7 +2319,7 @@ var parseVtt = /* @__PURE__ */ __name((input) => {
2320
2319
  return cues;
2321
2320
  }, "parseVtt");
2322
2321
 
2323
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/import.js
2322
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/import.js
2324
2323
  var importFiles = /* @__PURE__ */ __name(async (files, store, now = Date.now()) => {
2325
2324
  const report = { meetings: 0, participants: 0, transcriptRows: 0, summaries: 0, warnings: [] };
2326
2325
  for (const file of files) {
@@ -2353,10 +2352,10 @@ var importFiles = /* @__PURE__ */ __name(async (files, store, now = Date.now())
2353
2352
  return report;
2354
2353
  }, "importFiles");
2355
2354
 
2356
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/links.js
2355
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/links.js
2357
2356
  var CHAT_MESSAGES_READ = 1e5;
2358
2357
 
2359
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/provider.js
2358
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/provider.js
2360
2359
  var snapshotMeetingScope = /* @__PURE__ */ __name((scope2) => {
2361
2360
  const provider = scope2?.provider;
2362
2361
  const account = scope2?.account;
@@ -2365,7 +2364,7 @@ var snapshotMeetingScope = /* @__PURE__ */ __name((scope2) => {
2365
2364
  return Object.freeze({ provider, account });
2366
2365
  }, "snapshotMeetingScope");
2367
2366
 
2368
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/meeting-management.js
2367
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/meeting-management.js
2369
2368
  var nonempty = /* @__PURE__ */ __name((value, name) => {
2370
2369
  if (typeof value !== "string" || !value.trim())
2371
2370
  throw new CliError("validation_error", `${name} must be nonempty`);
@@ -2416,7 +2415,7 @@ var validateMeetingChange = /* @__PURE__ */ __name((change, create) => {
2416
2415
  return Object.freeze(result);
2417
2416
  }, "validateMeetingChange");
2418
2417
 
2419
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/passage.js
2418
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/passage.js
2420
2419
  var meetingHitContextLimits = /* @__PURE__ */ __name((options = {}) => {
2421
2420
  const { before = 3, after = 3, bytes = 65536, max_read_bytes = 4194304, expected_fingerprint } = options;
2422
2421
  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 +2428,7 @@ var validateMeetingPassage = /* @__PURE__ */ __name((reference2, options) => {
2429
2428
  throw new CliError("validation_error", "choose a cue reference and json, text or markdown output");
2430
2429
  }, "validateMeetingPassage");
2431
2430
 
2432
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/preparation-context.js
2431
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/preparation-context.js
2433
2432
  var validateMeetingPreparationContext = /* @__PURE__ */ __name((original) => {
2434
2433
  if (!original || typeof original !== "object" || Array.isArray(original))
2435
2434
  throw new CliError("validation_error", "meeting preparation context is required");
@@ -2454,7 +2453,7 @@ var validateMeetingPreparationContext = /* @__PURE__ */ __name((original) => {
2454
2453
  return { ...input, limit, maxReadBytes };
2455
2454
  }, "validateMeetingPreparationContext");
2456
2455
 
2457
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/project-evidence-answer.js
2456
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/project-evidence-answer.js
2458
2457
  var count4 = pipe(number(), integer(), minValue(0));
2459
2458
  var id = pipe(string(), minLength(1));
2460
2459
  var meetingProjectEvidence = strictObject({
@@ -2575,7 +2574,7 @@ var meetingProjectEvidenceAnswer = /* @__PURE__ */ __name((page, prepared, comma
2575
2574
  };
2576
2575
  }, "meetingProjectEvidenceAnswer");
2577
2576
 
2578
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/search-validation.js
2577
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/search-validation.js
2579
2578
  var validateMeetingHitSearch = /* @__PURE__ */ __name((query, options = {}) => {
2580
2579
  const integer3 = /* @__PURE__ */ __name((value, low, high) => Number.isSafeInteger(value) && value >= low && value <= high, "integer");
2581
2580
  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 +2594,7 @@ var validateMeetingHitSearch = /* @__PURE__ */ __name((query, options = {}) => {
2595
2594
  throw new CliError("validation_error", "choose one project selector and one tag or topic selector");
2596
2595
  }, "validateMeetingHitSearch");
2597
2596
 
2598
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/project-evidence-query.js
2597
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/project-evidence-query.js
2599
2598
  var ids = {
2600
2599
  meeting_id: "meetingId",
2601
2600
  identity_id: "participantIdentityId",
@@ -2686,7 +2685,7 @@ var prepareMeetingProjectEvidence = /* @__PURE__ */ __name((project, request = {
2686
2685
  return { project: project.trim(), options, query: frozen.join(" AND ") };
2687
2686
  }, "prepareMeetingProjectEvidence");
2688
2687
 
2689
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/project-evidence.js
2688
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/project-evidence.js
2690
2689
  var readMeetingProjectEvidence = /* @__PURE__ */ __name(async (read, project, request = {}, now = Date.now()) => {
2691
2690
  const prepared = prepareMeetingProjectEvidence(project, request, now);
2692
2691
  const page = await read(prepared.project, prepared.options);
@@ -2694,7 +2693,7 @@ var readMeetingProjectEvidence = /* @__PURE__ */ __name(async (read, project, re
2694
2693
  return meetingProjectEvidenceAnswer(page, prepared);
2695
2694
  }, "readMeetingProjectEvidence");
2696
2695
 
2697
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/pull.js
2696
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/pull.js
2698
2697
  var participantInput = /* @__PURE__ */ __name((p, provider, occurrenceId2, position, accountId) => {
2699
2698
  const { identityExternalId, ...fields2 } = p;
2700
2699
  const externalId = identityExternalId ?? (p.email ? `email:${p.email.toLowerCase()}` : p.externalId) ?? `name:${p.displayName ?? "unknown"}@${accountId}/${occurrenceId2}:${position}`;
@@ -2833,7 +2832,7 @@ unlinked`, format)],
2833
2832
  return report;
2834
2833
  }, "pull");
2835
2834
 
2836
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/read-answers.js
2835
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/read-answers.js
2837
2836
  var text5 = string();
2838
2837
  var count5 = pipe(number(), integer(), minValue(0));
2839
2838
  var id2 = pipe(number(), integer(), minValue(1));
@@ -2893,6 +2892,23 @@ var meetingStats = strictObject({
2893
2892
  weeks: array(strictObject({ week_start: text5, meetings: count5, talk_ms: count5 })),
2894
2893
  top_speakers: array(meetingSpeaker)
2895
2894
  });
2895
+ var meetingCountsRow = strictObject({
2896
+ key: text5,
2897
+ name: nullable(text5),
2898
+ meetings: count5,
2899
+ minutes: count5,
2900
+ mean_minutes: nullable(number()),
2901
+ transcripts: count5
2902
+ });
2903
+ var meetingCounts = strictObject({
2904
+ by: picklist(["day", "week", "series"]),
2905
+ meetings: count5,
2906
+ minutes: count5,
2907
+ mean_minutes: nullable(number()),
2908
+ transcripts: count5,
2909
+ rows: array(meetingCountsRow),
2910
+ has_more: boolean()
2911
+ });
2896
2912
  var truncated = /* @__PURE__ */ __name((...why) => nullable(picklist(why)), "truncated");
2897
2913
  var meetingParticipants = strictObject({
2898
2914
  schema_version: literal(1),
@@ -3010,10 +3026,10 @@ var eventItem = /* @__PURE__ */ __name((one) => ({
3010
3026
  updated_at: new Date(one.updatedAt).toISOString()
3011
3027
  }), "eventItem");
3012
3028
 
3013
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/recording-transfer.js
3029
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/recording-transfer.js
3014
3030
  var strongRecordingValidator = /* @__PURE__ */ __name((value) => typeof value === "string" && value.length <= 1024 && /^"[\x21\x23-\x7e\x80-\xff]*"$/.test(value), "strongRecordingValidator");
3015
3031
 
3016
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/related-history.js
3032
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/related-history.js
3017
3033
  var validateMeetingRelatedHistory = /* @__PURE__ */ __name((original) => {
3018
3034
  if (!original || typeof original !== "object" || Array.isArray(original))
3019
3035
  throw new CliError("validation_error", "related history request is required");
@@ -3043,14 +3059,14 @@ var validateMeetingRelatedHistory = /* @__PURE__ */ __name((original) => {
3043
3059
  return { ...input, anchorIds: [...new Set(input.anchorIds)], limit, maxReadBytes };
3044
3060
  }, "validateMeetingRelatedHistory");
3045
3061
 
3046
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/review.js
3062
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/review.js
3047
3063
  var REVIEW_LIMIT = { default: 50, most: 200 };
3048
3064
 
3049
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/save-hints.js
3065
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/save-hints.js
3050
3066
  var SAVE_HELP = `Worth keeping \u2014 a decision, a promise, a preference? Record it with \`memo facts add\` or
3051
3067
  \`memo memories add\`, citing the msg: locator or meeting: reference as --evidence.`;
3052
3068
 
3053
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/series-history.js
3069
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/series-history.js
3054
3070
  var validateMeetingSeriesHistory = /* @__PURE__ */ __name((input) => {
3055
3071
  input.signal?.throwIfAborted();
3056
3072
  if (!Number.isSafeInteger(input.accountId) || input.accountId <= 0)
@@ -3071,7 +3087,7 @@ var validateMeetingSeriesHistory = /* @__PURE__ */ __name((input) => {
3071
3087
  return { ...input, limit, maxReadBytes };
3072
3088
  }, "validateMeetingSeriesHistory");
3073
3089
 
3074
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/upcoming-validation.js
3090
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/upcoming-validation.js
3075
3091
  var invalid4 = /* @__PURE__ */ __name((field) => {
3076
3092
  throw new CliError("invalid_response", `meeting occurrence ${field} is invalid`);
3077
3093
  }, "invalid");
@@ -3140,7 +3156,7 @@ var readOccurrenceSchedule = /* @__PURE__ */ __name((input, meetingId, limit, ma
3140
3156
  return result;
3141
3157
  }, "readOccurrenceSchedule");
3142
3158
 
3143
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/series-inventory-validation.js
3159
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/series-inventory-validation.js
3144
3160
  function invalid5(field, response = false) {
3145
3161
  throw new CliError(response ? "invalid_response" : "validation_error", `invalid meeting inventory ${field}`);
3146
3162
  }
@@ -3169,7 +3185,8 @@ var validateMeetingSeriesInventoryCursor = /* @__PURE__ */ __name((value) => {
3169
3185
  cursorDetails(value);
3170
3186
  }, "validateMeetingSeriesInventoryCursor");
3171
3187
 
3172
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/stats.js
3188
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/stats.js
3189
+ var MEETING_COUNTS_GROUPINGS = ["day", "week", "series"];
3173
3190
  var zoneOf = /* @__PURE__ */ __name((timeZone) => {
3174
3191
  const zone = timeZone ?? "UTC";
3175
3192
  try {
@@ -3185,17 +3202,72 @@ var weekStart = /* @__PURE__ */ __name((at, format) => {
3185
3202
  const day = Date.UTC(Number(parts.year), Number(parts.month) - 1, Number(parts.day));
3186
3203
  return new Date(day - DAYS.indexOf(parts.weekday ?? "Mon") * 864e5).toISOString().slice(0, 10);
3187
3204
  }, "weekStart");
3205
+ var dayKey = /* @__PURE__ */ __name((at, format) => {
3206
+ const parts = Object.fromEntries(format.formatToParts(new Date(at)).map((part) => [part.type, part.value]));
3207
+ return `${parts.year}-${parts.month}-${parts.day}`;
3208
+ }, "dayKey");
3209
+ var zoneFormat = /* @__PURE__ */ __name((zone) => new Intl.DateTimeFormat("en-US", {
3210
+ timeZone: zone,
3211
+ year: "numeric",
3212
+ month: "2-digit",
3213
+ day: "2-digit",
3214
+ weekday: "short"
3215
+ }), "zoneFormat");
3216
+ var NO_SERIES = "no-series";
3217
+ var MOST_COUNT_ROWS = 100;
3218
+ var minutesOf = /* @__PURE__ */ __name((ms) => Math.round(ms / 6e4), "minutesOf");
3219
+ var meanOf = /* @__PURE__ */ __name((ms, timed) => timed === 0 ? null : Math.round(ms / timed / 6e3) / 10, "meanOf");
3220
+ var aggregateMeetingCounts = /* @__PURE__ */ __name((meetings, by, timeZone, limit = MOST_COUNT_ROWS) => {
3221
+ if (!MEETING_COUNTS_GROUPINGS.includes(by))
3222
+ throw new CliError("validation_error", `--by takes ${MEETING_COUNTS_GROUPINGS.join(", ")}`);
3223
+ if (!Number.isSafeInteger(limit) || limit < 1)
3224
+ throw new CliError("validation_error", "--limit is a positive number");
3225
+ const zone = zoneOf(timeZone);
3226
+ const format = zoneFormat(zone);
3227
+ const sum = /* @__PURE__ */ __name(() => ({ meetings: 0, ms: 0, timed: 0, transcripts: 0 }), "sum");
3228
+ const add = /* @__PURE__ */ __name((into, meeting2) => {
3229
+ into.meetings += 1;
3230
+ if (meeting2.durationMs !== null) {
3231
+ into.ms += Math.max(0, meeting2.durationMs);
3232
+ into.timed += 1;
3233
+ }
3234
+ if (meeting2.transcribed)
3235
+ into.transcripts += 1;
3236
+ }, "add");
3237
+ const total = { ...sum(), name: null };
3238
+ const groups = /* @__PURE__ */ new Map();
3239
+ for (const meeting2 of meetings) {
3240
+ add(total, meeting2);
3241
+ const key = by === "series" ? meeting2.seriesKey === null ? NO_SERIES : `series:${meeting2.seriesKey}` : meeting2.startedAt === null ? null : by === "day" ? dayKey(meeting2.startedAt, format) : weekStart(meeting2.startedAt, format);
3242
+ if (key === null)
3243
+ continue;
3244
+ const group = groups.get(key) ?? { ...sum(), name: by === "series" ? meeting2.seriesTitle : null };
3245
+ add(group, meeting2);
3246
+ groups.set(key, group);
3247
+ }
3248
+ const ordered = [...groups.entries()].sort(([a, one], [b, other]) => by === "series" ? other.ms - one.ms || other.meetings - one.meetings || a.localeCompare(b) : b.localeCompare(a));
3249
+ const kept = ordered.slice(0, limit);
3250
+ if (by !== "series")
3251
+ kept.reverse();
3252
+ const counted = /* @__PURE__ */ __name(({ meetings: count6, ms, timed, transcripts }) => ({
3253
+ meetings: count6,
3254
+ minutes: minutesOf(ms),
3255
+ meanMinutes: meanOf(ms, timed),
3256
+ transcripts
3257
+ }), "counted");
3258
+ return {
3259
+ by,
3260
+ timeZone: zone,
3261
+ ...counted(total),
3262
+ rows: kept.map(([key, group]) => ({ key, name: group.name, ...counted(group) })),
3263
+ hasMore: ordered.length > limit
3264
+ };
3265
+ }, "aggregateMeetingCounts");
3188
3266
  var UNKNOWN_SPEAKER = "unknown";
3189
3267
  var speakerOf = /* @__PURE__ */ __name((row) => row.personId !== null ? { key: `person:${row.personId}`, name: row.personName ?? row.identityName ?? row.speakerName } : row.identityId !== null ? { key: `identity:${row.identityId}`, name: row.identityName ?? row.speakerName } : row.speakerName?.trim() ? { key: `name:${row.speakerName.trim().toLowerCase()}`, name: row.speakerName.trim() } : { key: UNKNOWN_SPEAKER, name: null }, "speakerOf");
3190
3268
  var aggregateMeetingStats = /* @__PURE__ */ __name((rows, timeZone) => {
3191
3269
  const zone = zoneOf(timeZone);
3192
- const format = new Intl.DateTimeFormat("en-US", {
3193
- timeZone: zone,
3194
- year: "numeric",
3195
- month: "2-digit",
3196
- day: "2-digit",
3197
- weekday: "short"
3198
- });
3270
+ const format = zoneFormat(zone);
3199
3271
  const speakers = /* @__PURE__ */ new Map();
3200
3272
  const weeks = /* @__PURE__ */ new Map();
3201
3273
  const meetings = /* @__PURE__ */ new Set();
@@ -3248,7 +3320,7 @@ var aggregateMeetingStats = /* @__PURE__ */ __name((rows, timeZone) => {
3248
3320
  };
3249
3321
  }, "aggregateMeetingStats");
3250
3322
 
3251
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/meetings/upcoming.js
3323
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/meetings/upcoming.js
3252
3324
  var cancelled = /* @__PURE__ */ __name((signal) => {
3253
3325
  if (!signal?.aborted)
3254
3326
  return;
@@ -3318,7 +3390,7 @@ var createUpcomingMeetingReader = /* @__PURE__ */ __name((scope2, port) => {
3318
3390
  };
3319
3391
  }, "createUpcomingMeetingReader");
3320
3392
 
3321
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/domain/tags.js
3393
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/domain/tags.js
3322
3394
  var TAG_TYPES = ["chat", "contact", "message", "task"];
3323
3395
  var TAG = /^[a-z0-9-]{1,32}$/;
3324
3396
  var tagOf = /* @__PURE__ */ __name((value) => {
@@ -3332,7 +3404,7 @@ var normalizeTag = /* @__PURE__ */ __name((value) => {
3332
3404
  return tag;
3333
3405
  }, "normalizeTag");
3334
3406
 
3335
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/store/sqlite/link-kinds.js
3407
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/store/sqlite/link-kinds.js
3336
3408
  var LINK_KINDS = [
3337
3409
  "links-to",
3338
3410
  "blocked-by",
@@ -3353,7 +3425,7 @@ var LINK_SOURCES = [...LINK_ORIGINS, "calendar"];
3353
3425
  var RELATION_KINDS = ["member-of", "related-to"];
3354
3426
  var linkKind = /* @__PURE__ */ __name((kind) => `'${kind}'`, "linkKind");
3355
3427
 
3356
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/tasks/model.js
3428
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/tasks/model.js
3357
3429
  var TASK_KINDS = ["question", "request", "mention", "promise"];
3358
3430
  var TASK_STATES = ["open", "todo", "in_progress", "done", "dismissed"];
3359
3431
  var CLOSED_STATES = ["done", "dismissed"];
@@ -3368,7 +3440,7 @@ function closeTask(task, state, by, at, reason) {
3368
3440
  }
3369
3441
  __name(closeTask, "closeTask");
3370
3442
 
3371
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/tasks/priority.js
3443
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/tasks/priority.js
3372
3444
  var PRIORITY_LABELS = ["low", "medium", "high", "critical"];
3373
3445
  var MIDDLE = { low: 0.125, medium: 0.375, high: 0.625, critical: 0.875 };
3374
3446
  var LEGACY_PRIORITY_SCORES = [0.875, 0.625, 0.375, 0.1875, 0.0625];
@@ -3397,13 +3469,13 @@ var priorityOf = /* @__PURE__ */ __name((value) => {
3397
3469
  }, "priorityOf");
3398
3470
  var priorityOption = /* @__PURE__ */ __name((value) => priorityOf(value) ?? "none", "priorityOption");
3399
3471
 
3400
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/tasks/store.js
3472
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/tasks/store.js
3401
3473
  function matches2(task, filter) {
3402
3474
  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);
3403
3475
  }
3404
3476
  __name(matches2, "matches");
3405
3477
 
3406
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/tasks/service.js
3478
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/tasks/service.js
3407
3479
  function createTaskService({ store, now = /* @__PURE__ */ __name(() => /* @__PURE__ */ new Date(), "now"), newId = /* @__PURE__ */ __name(() => crypto.randomUUID(), "newId") }) {
3408
3480
  async function find(id3) {
3409
3481
  const task = await store.get(id3);
@@ -3463,7 +3535,7 @@ function median(values) {
3463
3535
  }
3464
3536
  __name(median, "median");
3465
3537
 
3466
- // node_modules/.pnpm/@wirecat+cli-core@0.563.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5d65fbd76a6eee16c9e760ce5c7a276b/node_modules/@wirecat/cli-core/dist/domain/knowledge.js
3538
+ // node_modules/.pnpm/@wirecat+cli-core@0.567.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_90104be51d88dd1f434885448f73ba7c/node_modules/@wirecat/cli-core/dist/domain/knowledge.js
3467
3539
  var FACT_STATUSES = ["proposed", "accepted", "superseded", "reversed", "rejected"];
3468
3540
  var MEMORY_KINDS = ["summary", "digest", "preference"];
3469
3541
  var MEMORY_STATUSES = ["proposed", "confirmed", "stale", "superseded"];
@@ -3561,6 +3633,7 @@ export {
3561
3633
  meetingLink,
3562
3634
  meetingSpeaker,
3563
3635
  meetingStats,
3636
+ meetingCounts,
3564
3637
  meetingParticipants,
3565
3638
  meetingPassage,
3566
3639
  event,
@@ -3572,6 +3645,7 @@ export {
3572
3645
  SAVE_HELP,
3573
3646
  validateMeetingSeriesHistory,
3574
3647
  validateMeetingSeriesInventoryCursor,
3648
+ aggregateMeetingCounts,
3575
3649
  aggregateMeetingStats,
3576
3650
  createUpcomingMeetingReader,
3577
3651
  TAG_TYPES,