@wirecat/cli-memo 0.131.20 → 0.131.22

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 (193) hide show
  1. package/README.md +5 -6
  2. package/dist/actions/command.d.ts +1 -1
  3. package/dist/actions/command.d.ts.map +1 -1
  4. package/dist/actions/command.js +12 -1
  5. package/dist/actions/command.js.map +1 -1
  6. package/dist/bin/memo.js +2 -2
  7. package/dist/bin/memo.js.map +1 -1
  8. package/dist/bundle/{all-profiles-MVF2XGZK.js → all-profiles-EZLU6CY7.js} +9 -7
  9. package/dist/bundle/{anthropic-OPFHMF2S.js → anthropic-XC34PJH5.js} +6 -4
  10. package/dist/bundle/{app-server-VHVC55S3.js → app-server-PRQVGA5X.js} +53 -48
  11. package/dist/bundle/auto-S3AYMAGB.js +86 -0
  12. package/dist/bundle/{bun-P6TMDZGU.js → bun-CKGKUKW5.js} +2 -2
  13. package/dist/bundle/{bun-sqlite-3G3NLK4O.js → bun-sqlite-S6KUSMTC.js} +5 -3
  14. package/dist/bundle/{chunk-XZWUBDBG.js → chunk-2NJUPIAO.js} +1 -1
  15. package/dist/bundle/{chunk-RFB5LOYR.js → chunk-2TBIVKBH.js} +8 -6
  16. package/dist/bundle/{chunk-LQJ4KHXK.js → chunk-3B645KUY.js} +15 -15
  17. package/dist/bundle/{chunk-3DVKC2XM.js → chunk-3V4WIGWC.js} +8 -19
  18. package/dist/bundle/{chunk-3BMUVKC7.js → chunk-4SGCOUQ6.js} +13 -9
  19. package/dist/bundle/{chunk-BMHSGZNE.js → chunk-5RBLNI6C.js} +4 -4
  20. package/dist/bundle/{chunk-D6G23NFJ.js → chunk-5UOOH7VG.js} +2 -2
  21. package/dist/bundle/{chunk-WOIRWVDJ.js → chunk-6JOT5KWM.js} +563 -351
  22. package/dist/bundle/{chunk-LKYHSVQL.js → chunk-7F6FGMCC.js} +8 -8
  23. package/dist/bundle/{chunk-FMSA2X3E.js → chunk-7MLWSUEK.js} +1 -1
  24. package/dist/bundle/{chunk-JHKTN6NL.js → chunk-7W3RCCRR.js} +13 -11
  25. package/dist/bundle/{chunk-SO6VNTF6.js → chunk-AIIQ7YU4.js} +1 -1
  26. package/dist/bundle/{chunk-IW3U6XXI.js → chunk-BB2MGFOZ.js} +6 -6
  27. package/dist/bundle/{chunk-TQNQS6TR.js → chunk-CBYZW5CC.js} +64 -60
  28. package/dist/bundle/chunk-CCHHEMPM.js +71 -0
  29. package/dist/bundle/{chunk-6DG7VK3H.js → chunk-CCOYC6HL.js} +5 -5
  30. package/dist/bundle/{chunk-MXP4J6BJ.js → chunk-CDZZ2DZO.js} +70 -2517
  31. package/dist/bundle/{chunk-VUWUSGSN.js → chunk-CP5N3KH3.js} +4 -4
  32. package/dist/bundle/{chunk-LPUFOWL3.js → chunk-D72URWJE.js} +1 -39
  33. package/dist/bundle/{chunk-BINR6MJ5.js → chunk-DNGHE2Q4.js} +1 -1
  34. package/dist/bundle/{chunk-KVVDRD7M.js → chunk-DZSWKA3K.js} +2 -2
  35. package/dist/bundle/{chunk-63XICXGM.js → chunk-E5FQ7U7L.js} +5 -3
  36. package/dist/bundle/chunk-EG2OMKWH.js +2423 -0
  37. package/dist/bundle/chunk-EW3XTUPB.js +166 -0
  38. package/dist/bundle/{chunk-3ORDQ62F.js → chunk-GV2FSWFS.js} +10 -8
  39. package/dist/bundle/{chunk-2R25UBIH.js → chunk-HXRIV2TV.js} +26 -24
  40. package/dist/bundle/{chunk-BPYQYZXA.js → chunk-IFWBFYXN.js} +14 -12
  41. package/dist/bundle/{chunk-4G46QFK5.js → chunk-ILC7NFS2.js} +7 -5
  42. package/dist/bundle/chunk-ILHTNOIV.js +23 -0
  43. package/dist/bundle/{chunk-OVFMY6ZP.js → chunk-IRDGD3QQ.js} +1 -1
  44. package/dist/bundle/{chunk-G7TF4E7B.js → chunk-J35OGOCI.js} +8 -2
  45. package/dist/bundle/{chunk-5KUPVC5M.js → chunk-KUNA6MQZ.js} +2 -2
  46. package/dist/bundle/{chunk-VQGVPDMH.js → chunk-KXERKAID.js} +20 -16
  47. package/dist/bundle/{chunk-LDVU22MF.js → chunk-LGNS4JVK.js} +8 -8
  48. package/dist/bundle/{chunk-57Q6NXQT.js → chunk-LR5EY5JY.js} +4 -4
  49. package/dist/bundle/{chunk-ZYM4M62Q.js → chunk-MCPDL5YU.js} +4 -4
  50. package/dist/bundle/{chunk-V7DZG62U.js → chunk-MHDLZCEO.js} +11 -9
  51. package/dist/bundle/{chunk-SHDZVM3B.js → chunk-NELE7AIX.js} +2 -2
  52. package/dist/bundle/{chunk-KIEBEYKH.js → chunk-OFYKXQMS.js} +10 -8
  53. package/dist/bundle/{chunk-UC4IL2P7.js → chunk-OJRLTJRS.js} +1 -1
  54. package/dist/bundle/{chunk-OTHEM74Z.js → chunk-OUF6RCRZ.js} +6 -6
  55. package/dist/bundle/{chunk-JDJDNMCP.js → chunk-PF3ALSAV.js} +1 -1
  56. package/dist/bundle/chunk-PQLBPYJR.js +46 -0
  57. package/dist/bundle/{chunk-66YZUX2C.js → chunk-QMMUPDRK.js} +10 -10
  58. package/dist/bundle/{chunk-F5CQ2NVA.js → chunk-RC7TIYUZ.js} +11 -9
  59. package/dist/bundle/{chunk-P22V2OLJ.js → chunk-RG6ITTLQ.js} +22 -16
  60. package/dist/bundle/{chunk-T557KUST.js → chunk-RHJC4PHV.js} +3 -3
  61. package/dist/bundle/{chunk-Z54GPSVH.js → chunk-RNXYDBQO.js} +186 -162
  62. package/dist/bundle/{chunk-YVECM7XA.js → chunk-SMDWUPXE.js} +4 -4
  63. package/dist/bundle/{chunk-WRPRPVZF.js → chunk-SO2YVKBK.js} +44 -42
  64. package/dist/bundle/{chunk-KO455254.js → chunk-SXGAIQ5X.js} +13 -13
  65. package/dist/bundle/{chunk-EMKFG5BP.js → chunk-THGFFQCK.js} +3 -3
  66. package/dist/bundle/{chunk-FRB4UXJG.js → chunk-UCINAEIA.js} +6 -6
  67. package/dist/bundle/{chunk-GJKM32WA.js → chunk-UG2V7BQY.js} +24 -22
  68. package/dist/bundle/{chunk-2MNEM2CH.js → chunk-VDBFSLHP.js} +9 -7
  69. package/dist/bundle/{chunk-EFKEG2BA.js → chunk-VECICKTE.js} +5 -5
  70. package/dist/bundle/{chunk-4MIPN37I.js → chunk-VQM3H422.js} +266 -176
  71. package/dist/bundle/chunk-VXHN3SWW.js +35 -0
  72. package/dist/bundle/{chunk-EL4ZKQUN.js → chunk-WEOFWTWZ.js} +6 -4
  73. package/dist/bundle/{chunk-LEUNYKL6.js → chunk-WUCQ56RP.js} +3 -3
  74. package/dist/bundle/{chunk-SJLVBJ2L.js → chunk-XA6YO24S.js} +2 -2
  75. package/dist/bundle/{chunk-36ULPM2W.js → chunk-XPRYBLTS.js} +6 -6
  76. package/dist/bundle/{chunk-NKTAEBCU.js → chunk-XW4KGSAA.js} +13 -9
  77. package/dist/bundle/{chunk-2KOVYXWK.js → chunk-YAUDFROV.js} +1243 -743
  78. package/dist/bundle/{chunk-5XDYV2YT.js → chunk-ZD3STMY7.js} +1 -1
  79. package/dist/bundle/{chunk-XWS4PTES.js → chunk-ZKWE5MCA.js} +968 -287
  80. package/dist/bundle/command-contract-TMVGYSQQ.js +32 -0
  81. package/dist/bundle/{decode-BUTF6VGO.js → decode-6XSZIZAA.js} +5 -3
  82. package/dist/bundle/dispatch-VUMQPYMA.js +411 -0
  83. package/dist/bundle/{echarts-KH3YOWMK.js → echarts-NGS4QG4E.js} +2 -2
  84. package/dist/bundle/{embed-WBVM7KQ2.js → embed-YNH5M6UL.js} +6 -4
  85. package/dist/bundle/{embedder-27HQIFHM.js → embedder-LLNK4JF4.js} +11 -9
  86. package/dist/bundle/{entry-K2WWMF2B.js → entry-L42C5CHF.js} +7 -5
  87. package/dist/bundle/failure-TQJGSWRU.js +66 -0
  88. package/dist/bundle/failure-Z2FXWIBY.js +24 -0
  89. package/dist/bundle/first-run-TT6KMHKA.js +27 -0
  90. package/dist/bundle/first-screen-56KZKY77.js +30 -0
  91. package/dist/bundle/{instructions-POJKHKRZ.js → instructions-4EJ4BBWD.js} +1 -1
  92. package/dist/bundle/{mcp-FUSDPAOL.js → mcp-MNI62HHE.js} +4 -2
  93. package/dist/bundle/mcp-PNC3TI7O.js +90 -0
  94. package/dist/bundle/memo.js +182 -39
  95. package/dist/bundle/{node-W245R2OP.js → node-QQXKQWNC.js} +2 -2
  96. package/dist/bundle/{node-sqlite-FUYOXFW5.js → node-sqlite-GJI2GMLW.js} +6 -4
  97. package/dist/bundle/{oauth-ATB3NWQA.js → oauth-Q5VGUPUR.js} +7 -5
  98. package/dist/bundle/{open-HEBEWCYB.js → open-NSXIYF3N.js} +5 -3
  99. package/dist/bundle/{openai-DN7NA2IU.js → openai-LHH7MSGQ.js} +10 -8
  100. package/dist/bundle/{process-QTIDOJMF.js → process-PI6XUJWP.js} +1 -1
  101. package/dist/bundle/{program-62ISSWCE.js → program-ZIRYOO2T.js} +8414 -8372
  102. package/dist/bundle/{prompt-RQXVPJ4A.js → prompt-VFXA7IKL.js} +5 -3
  103. package/dist/bundle/{recognize-G7NIZ3IT.js → recognize-UWAARXOH.js} +4 -2
  104. package/dist/bundle/{remote-H452UBSK.js → remote-KGEVCB2Q.js} +7 -5
  105. package/dist/bundle/{rerank-77UYD2UD.js → rerank-SCBTCBPO.js} +7 -5
  106. package/dist/bundle/{serve-L6R4ODZV.js → serve-WPVKVR24.js} +9 -7
  107. package/dist/bundle/server-F2PSE6LG.js +48 -0
  108. package/dist/bundle/server-K5JYA3ZT.js +61 -0
  109. package/dist/bundle/{server-NB3U4PPW.js → server-VO5SXU5A.js} +69 -63
  110. package/dist/bundle/{setup-ZGH5OZ7A.js → setup-X6OJ3K4F.js} +47 -43
  111. package/dist/bundle/{state-KHMYDV4I.js → state-KGHS4C6J.js} +6 -4
  112. package/dist/bundle/{store-M7KGTLUG.js → store-VCVOIQES.js} +12 -10
  113. package/dist/bundle/store-maintenance-command-R4CP6AZN.js +48 -0
  114. package/dist/bundle/update-M6AIJ2SZ.js +69 -0
  115. package/dist/config.d.ts +1 -1
  116. package/dist/config.d.ts.map +1 -1
  117. package/dist/config.js +2 -2
  118. package/dist/config.js.map +1 -1
  119. package/dist/contract-overrides/skill.d.ts.map +1 -1
  120. package/dist/contract-overrides/skill.js +14 -0
  121. package/dist/contract-overrides/skill.js.map +1 -1
  122. package/dist/examples.d.ts.map +1 -1
  123. package/dist/examples.js +31 -1
  124. package/dist/examples.js.map +1 -1
  125. package/dist/knowledge/command.d.ts.map +1 -1
  126. package/dist/knowledge/command.js +8 -52
  127. package/dist/knowledge/command.js.map +1 -1
  128. package/dist/knowledge/project-actions-command.js +1 -1
  129. package/dist/knowledge/project-actions-command.js.map +1 -1
  130. package/dist/knowledge/project-gather-command.d.ts.map +1 -1
  131. package/dist/knowledge/project-gather-command.js +32 -19
  132. package/dist/knowledge/project-gather-command.js.map +1 -1
  133. package/dist/knowledge/relationships-scan.d.ts +8 -0
  134. package/dist/knowledge/relationships-scan.d.ts.map +1 -0
  135. package/dist/knowledge/relationships-scan.js +95 -0
  136. package/dist/knowledge/relationships-scan.js.map +1 -0
  137. package/dist/mail/command.d.ts.map +1 -1
  138. package/dist/mail/command.js +11 -1
  139. package/dist/mail/command.js.map +1 -1
  140. package/dist/mail/findings-command.d.ts +8 -0
  141. package/dist/mail/findings-command.d.ts.map +1 -0
  142. package/dist/mail/findings-command.js +80 -0
  143. package/dist/mail/findings-command.js.map +1 -0
  144. package/dist/mail/messages-command.d.ts.map +1 -1
  145. package/dist/mail/messages-command.js +27 -3
  146. package/dist/mail/messages-command.js.map +1 -1
  147. package/dist/mail/review-command.d.ts +12 -0
  148. package/dist/mail/review-command.d.ts.map +1 -0
  149. package/dist/mail/review-command.js +46 -0
  150. package/dist/mail/review-command.js.map +1 -0
  151. package/dist/mcp/catalogue.d.ts.map +1 -1
  152. package/dist/mcp/catalogue.js +1 -1
  153. package/dist/mcp/catalogue.js.map +1 -1
  154. package/dist/mcp/server.js +1 -1
  155. package/dist/mcp/server.js.map +1 -1
  156. package/dist/program.d.ts.map +1 -1
  157. package/dist/program.js +1 -1
  158. package/dist/program.js.map +1 -1
  159. package/dist/read-only.d.ts +1 -1
  160. package/dist/reasons.d.ts.map +1 -1
  161. package/dist/reasons.js +6 -0
  162. package/dist/reasons.js.map +1 -1
  163. package/dist/review/kinds.d.ts +0 -6
  164. package/dist/review/kinds.d.ts.map +1 -1
  165. package/dist/review/kinds.js +14 -45
  166. package/dist/review/kinds.js.map +1 -1
  167. package/dist/review/status.d.ts +1 -0
  168. package/dist/review/status.d.ts.map +1 -1
  169. package/dist/schedule/command.d.ts +3 -1
  170. package/dist/schedule/command.d.ts.map +1 -1
  171. package/dist/schedule/command.js +6 -1
  172. package/dist/schedule/command.js.map +1 -1
  173. package/dist/store/source-list.d.ts +2 -0
  174. package/dist/store/source-list.d.ts.map +1 -1
  175. package/dist/store/source-list.js +6 -0
  176. package/dist/store/source-list.js.map +1 -1
  177. package/dist/version.d.ts +1 -1
  178. package/dist/version.js +1 -1
  179. package/package.json +4 -3
  180. package/skills/cli-memo/SKILL.md +13 -5
  181. package/skills/mail-triage/SKILL.md +120 -0
  182. package/dist/bundle/auto-GDLRYDYK.js +0 -82
  183. package/dist/bundle/chunk-7J5HTZCM.js +0 -18
  184. package/dist/bundle/command-contract-NMJKYTS4.js +0 -30
  185. package/dist/bundle/failure-OJI6C5JA.js +0 -62
  186. package/dist/bundle/first-run-7P5N72VR.js +0 -23
  187. package/dist/bundle/first-screen-3GM5HC4Y.js +0 -28
  188. package/dist/bundle/mcp-YGWNSJUH.js +0 -86
  189. package/dist/bundle/server-SWUSQSRW.js +0 -44
  190. package/dist/bundle/server-W4IKTTUY.js +0 -57
  191. package/dist/bundle/store-maintenance-command-ZPN2ZUL4.js +0 -44
  192. package/dist/bundle/update-2IYA7RJU.js +0 -65
  193. /package/dist/bundle/{chunk-7YF2MSEC.js → chunk-YYQN5ES2.js} +0 -0
@@ -1,7 +1,6 @@
1
1
  import { createRequire as __bundleRequire } from "node:module";
2
2
  const require = __bundleRequire(import.meta.url);
3
3
  import {
4
- CliError,
5
4
  RegistryError,
6
5
  SNAKE_CASE,
7
6
  STEPS,
@@ -11,7 +10,6 @@ import {
11
10
  defineSteps,
12
11
  duplicates,
13
12
  integer,
14
- isCliError,
15
13
  isoTime,
16
14
  lazy,
17
15
  literal,
@@ -27,14 +25,18 @@ import {
27
25
  pipe,
28
26
  reference,
29
27
  safeParse,
30
- singleLine,
31
28
  stepOf,
32
29
  strictObject,
33
30
  string,
34
31
  union,
35
- variant,
32
+ variant
33
+ } from "./chunk-EG2OMKWH.js";
34
+ import {
35
+ CliError,
36
+ isCliError,
37
+ singleLine,
36
38
  visibleControls
37
- } from "./chunk-MXP4J6BJ.js";
39
+ } from "./chunk-CCHHEMPM.js";
38
40
  import {
39
41
  __name
40
42
  } from "./chunk-ZVVMGPBJ.js";
@@ -855,7 +857,7 @@ var matches = /* @__PURE__ */ __name((node, item, byName, options) => {
855
857
  }, "matches");
856
858
  var evaluate = /* @__PURE__ */ __name((ast, fields2, item, options = {}) => matches(ast.root, item, new Map(fields2.map((field) => [field.name, field])), options), "evaluate");
857
859
 
858
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/reference.js
860
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/reference.js
859
861
  var invalid = /* @__PURE__ */ __name(() => new CliError("validation_error", "expected meeting:<accountId>/<meetingId>[/<transcriptId>[/<cuePosition>]] with safe integer IDs"), "invalid");
860
862
  var integer2 = /* @__PURE__ */ __name((value, minimum = 1) => {
861
863
  if (!Number.isSafeInteger(value) || value < minimum)
@@ -892,7 +894,7 @@ var parseMeetingReference = /* @__PURE__ */ __name((text6) => {
892
894
  }, "parseMeetingReference");
893
895
  var canonicalMeetingReference = /* @__PURE__ */ __name((text6) => formatMeetingReference(parseMeetingReference(text6)), "canonicalMeetingReference");
894
896
 
895
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/item.js
897
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/item.js
896
898
  var text = string();
897
899
  var count = pipe(number(), integer(), minValue(0));
898
900
  var MEETING_ISSUES = ["time_without_zone"];
@@ -957,7 +959,7 @@ var MEETING_QUERY = {
957
959
  })
958
960
  };
959
961
 
960
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/join-key.js
962
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/join-key.js
961
963
  var joinKeyOf = /* @__PURE__ */ __name((url) => {
962
964
  const parsed = urlOf(url);
963
965
  if (!parsed)
@@ -991,7 +993,7 @@ var urlOf = /* @__PURE__ */ __name((url) => {
991
993
  }
992
994
  }, "urlOf");
993
995
 
994
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/calendar-text.js
996
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/calendar-text.js
995
997
  var ENTITIES = { amp: "&", lt: "<", gt: ">", quot: '"', "#39": "'", apos: "'", nbsp: " " };
996
998
  var SECRET_LINE = /(?<![\p{L}\p{N}])(pass ?codes?|passwords?|pwd|pins?|access ?codes?|meeting ?codes?|kennwort|пароль|пин-?код|код доступа)(?![\p{L}\p{N}])|pwd=/iu;
997
999
  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");
@@ -1024,7 +1026,7 @@ var entryMetadata = /* @__PURE__ */ __name((metadata) => {
1024
1026
  return kept;
1025
1027
  }, "entryMetadata");
1026
1028
 
1027
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/cue-fingerprint.js
1029
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/cue-fingerprint.js
1028
1030
  import { createHash } from "node:crypto";
1029
1031
  var meetingCueFingerprint = /* @__PURE__ */ __name((cue2) => createHash("sha256").update(JSON.stringify({
1030
1032
  reference: cue2.reference,
@@ -1038,7 +1040,7 @@ var meetingCueFingerprint = /* @__PURE__ */ __name((cue2) => createHash("sha256"
1038
1040
  text: cue2.text
1039
1041
  })).digest("hex"), "meetingCueFingerprint");
1040
1042
 
1041
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/event-store.js
1043
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/event-store.js
1042
1044
  var UNTIL = /(?:^|;)UNTIL=(\d{4})(\d{2})(\d{2})(?:T(\d{2})(\d{2})(\d{2})Z?)?(?:;|$)/iu;
1043
1045
  var seriesEnd = /* @__PURE__ */ __name((entry) => {
1044
1046
  if (entry.recurrenceEndsAt !== null)
@@ -1061,7 +1063,7 @@ var entryInWindow = /* @__PURE__ */ __name((entry, window) => {
1061
1063
  return Math.max(entry.endsAt ?? start, start + 1) > window.from;
1062
1064
  }, "entryInWindow");
1063
1065
 
1064
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/answers.js
1066
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/answers.js
1065
1067
  var text2 = string();
1066
1068
  var count2 = pipe(number(), integer(), minValue(0));
1067
1069
  var iso2 = /* @__PURE__ */ __name((ms) => ms === null ? null : new Date(ms).toISOString(), "iso");
@@ -1296,7 +1298,7 @@ var meetingHitsList = /* @__PURE__ */ __name((found, limit, command = "search me
1296
1298
  };
1297
1299
  }, "meetingHitsList");
1298
1300
 
1299
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/participant-search.js
1301
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/participant-search.js
1300
1302
  var normalizeMeetingParticipantQuery = /* @__PURE__ */ __name((text6) => text6.normalize("NFKC").toLowerCase(), "normalizeMeetingParticipantQuery");
1301
1303
  var validateMeetingParticipantQuery = /* @__PURE__ */ __name((query) => {
1302
1304
  if (typeof query !== "string" || !query.trim() || query.length > 500 || query.includes("\0"))
@@ -1320,7 +1322,7 @@ var validateMeetingParticipantSearch = /* @__PURE__ */ __name((query, input) =>
1320
1322
  };
1321
1323
  }, "validateMeetingParticipantSearch");
1322
1324
 
1323
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/reads.js
1325
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/reads.js
1324
1326
  var MeetingError = class extends CliError {
1325
1327
  static {
1326
1328
  __name(this, "MeetingError");
@@ -1452,7 +1454,7 @@ var meetingSummaryAnswer = /* @__PURE__ */ __name(async (store, id3, accountId)
1452
1454
  return wholeList(details.summaries.map((one) => meetingSummaryItem(details.meeting.accountId, one)));
1453
1455
  }, "meetingSummaryAnswer");
1454
1456
 
1455
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/export.js
1457
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/export.js
1456
1458
  var timestamp = /* @__PURE__ */ __name((milliseconds) => {
1457
1459
  if (!Number.isSafeInteger(milliseconds) || milliseconds < 0)
1458
1460
  throw new MeetingError("validation_error", "transcript times must be nonnegative integer milliseconds");
@@ -1548,7 +1550,7 @@ var exportMeeting = /* @__PURE__ */ __name(async (store, id3, options) => {
1548
1550
  };
1549
1551
  }, "exportMeeting");
1550
1552
 
1551
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/payment.js
1553
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/payment.js
1552
1554
  var FACT_TYPES = ["fact", "statement", "question", "decision", "promise"];
1553
1555
  var PAYMENT_DIRECTIONS = ["to_us", "from_us"];
1554
1556
  var PAYMENT_STATES = ["expected", "paid", "cancelled"];
@@ -1642,10 +1644,10 @@ var paymentTitle = /* @__PURE__ */ __name((fact) => {
1642
1644
  return `${grouped(payment.amount)} ${payment.currency} ${way}${party}${item}${due} (${payment.state})`;
1643
1645
  }, "paymentTitle");
1644
1646
 
1645
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/findings-rules.js
1647
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/findings-rules.js
1646
1648
  import { createHash as createHash2 } from "node:crypto";
1647
1649
 
1648
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/timestamp.js
1650
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/timestamp.js
1649
1651
  var meetingTimestamp = /* @__PURE__ */ __name((value, name) => {
1650
1652
  if (typeof value !== "string" || !/^\d{4}-\d{2}-\d{2}T.+(?:Z|[+-]\d{2}:\d{2})$/i.test(value) || !Number.isFinite(Date.parse(value)))
1651
1653
  throw new CliError("validation_error", `${name} must be an ISO timestamp with a timezone`);
@@ -1656,7 +1658,7 @@ var meetingTimestamp = /* @__PURE__ */ __name((value, name) => {
1656
1658
  return new Date(value).toISOString();
1657
1659
  }, "meetingTimestamp");
1658
1660
 
1659
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/findings-rules.js
1661
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/findings-rules.js
1660
1662
  var TASK_TYPES = ["bug", "feature", "chore"];
1661
1663
  var invalid3 = /* @__PURE__ */ __name((message) => {
1662
1664
  throw new CliError("validation_error", message);
@@ -1672,123 +1674,138 @@ var fields = /* @__PURE__ */ __name((value, allowed, noun) => {
1672
1674
  invalid3(`unknown ${noun} field`);
1673
1675
  }, "fields");
1674
1676
  var SUBJECT = /^(person|organization|project):[1-9]\d*$|^task:[A-Za-z0-9][A-Za-z0-9_.-]{0,63}$/;
1675
- var validateFindings = /* @__PURE__ */ __name((input, rules) => {
1677
+ var validEvidence = /* @__PURE__ */ __name((raw, rules) => {
1678
+ if (!Array.isArray(raw) || raw.length < 1 || raw.length > 8)
1679
+ return invalid3(`a finding requires 1\u20138 cited ${rules.cited}s`);
1680
+ const evidence = raw.map((item) => {
1681
+ if (!item || typeof item !== "object")
1682
+ return invalid3("finding evidence is a reference and fingerprint");
1683
+ fields(item, ["reference", "fingerprint"], rules.singular);
1684
+ if (typeof item.reference !== "string" || typeof item.fingerprint !== "string")
1685
+ return invalid3("evidence requires a reference and fingerprint");
1686
+ const reference2 = rules.reference(item.reference);
1687
+ if (!/^[a-f0-9]{64}$/.test(item.fingerprint))
1688
+ return invalid3(`finding evidence requires exact ${rules.cited} references and fingerprints`);
1689
+ return { reference: reference2, fingerprint: item.fingerprint };
1690
+ }).sort((a, b) => a.reference.localeCompare(b.reference));
1691
+ if (new Set(evidence.map((item) => item.reference)).size !== evidence.length)
1692
+ return invalid3(`duplicate evidence ${rules.cited}`);
1693
+ return evidence;
1694
+ }, "validEvidence");
1695
+ var findingId = /* @__PURE__ */ __name((raw, ids2) => {
1696
+ const id3 = findingText(raw, 64);
1697
+ if (!/^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$/.test(id3) || ids2.has(id3))
1698
+ return invalid3("finding IDs must be unique simple keys");
1699
+ ids2.add(id3);
1700
+ return id3;
1701
+ }, "findingId");
1702
+ var validateFinding = /* @__PURE__ */ __name((finding, rules, ids2) => {
1703
+ if (!finding || typeof finding !== "object")
1704
+ return invalid3("a finding is an object");
1705
+ const id3 = findingId(finding.id, ids2);
1706
+ const project = finding.project === void 0 && rules.anySubject ? void 0 : text3(finding.project, 64);
1707
+ if (project !== void 0 && !/^project:[1-9]\d*$/.test(project))
1708
+ return invalid3("a finding names a project reference");
1709
+ if (finding.subject !== void 0 && (!rules.anySubject || !SUBJECT.test(text3(finding.subject, 80))))
1710
+ return invalid3("a finding's subject is a person:, organization:, task: or project: reference");
1711
+ if (finding.kind === "task" && project === void 0 && !rules.inboxTasks)
1712
+ return invalid3("a task finding names the project the task goes in");
1713
+ const evidence = validEvidence(finding.evidence, rules);
1714
+ const base = {
1715
+ id: id3,
1716
+ ...project === void 0 ? {} : { project },
1717
+ ...finding.subject === void 0 ? {} : { subject: finding.subject },
1718
+ evidence
1719
+ };
1720
+ if (finding.kind === "fact") {
1721
+ fields(finding, ["id", "project", "subject", "evidence", "kind", "type", "statement"], rules.singular);
1722
+ if (finding.type === "payment")
1723
+ return invalid3("a payment is a finding of kind payment; money is a payments row, not a fact");
1724
+ if (!FACT_TYPES.includes(finding.type))
1725
+ return invalid3("unknown fact finding type");
1726
+ return { ...base, kind: "fact", type: finding.type, statement: text3(finding.statement, 2e3) };
1727
+ }
1728
+ if (finding.kind === "payment" && rules.payments) {
1729
+ fields(finding, ["id", "project", "subject", "evidence", "kind", "statement", "payment", "supersedes"], rules.singular);
1730
+ if (finding.supersedes !== void 0 && !/^invoice:[1-9]\d*$/.test(String(finding.supersedes)))
1731
+ return invalid3("a payment finding supersedes an invoice: reference, the expected payment it settles or voids");
1732
+ const payment = validatePayment(finding.payment);
1733
+ if (payment.state === "expected" && finding.supersedes !== void 0)
1734
+ return invalid3("an expected payment supersedes nothing; a paid or cancelled one supersedes its invoice");
1735
+ if (payment.state === "cancelled" && finding.supersedes === void 0)
1736
+ return invalid3("a cancelled payment names the invoice: it cancels in supersedes");
1737
+ if (payment.state === "expected" && !/^(person|organization):/.test(payment.counterparty ?? ""))
1738
+ return invalid3("an expected payment becomes an invoice, which names its counterparty as a person: or organization:");
1739
+ return {
1740
+ ...base,
1741
+ kind: "payment",
1742
+ ...finding.statement === void 0 ? {} : { statement: text3(finding.statement, 2e3) },
1743
+ payment,
1744
+ ...finding.supersedes === void 0 ? {} : { supersedes: finding.supersedes }
1745
+ };
1746
+ }
1747
+ if (finding.kind !== "task")
1748
+ return invalid3(`a finding is a fact${rules.payments ? ", payment" : ""} or task`);
1749
+ fields(finding, [
1750
+ "id",
1751
+ "project",
1752
+ "evidence",
1753
+ "kind",
1754
+ "type",
1755
+ "title",
1756
+ "reason",
1757
+ "commitment",
1758
+ "dueAt",
1759
+ "dueEvidence",
1760
+ "assignee",
1761
+ "assigneeEvidence"
1762
+ ], rules.singular);
1763
+ if (!TASK_TYPES.includes(finding.type))
1764
+ return invalid3("a task finding type is bug, chore or feature");
1765
+ if (!["explicit", "inferred"].includes(finding.commitment))
1766
+ return invalid3("task commitment must be explicit or inferred");
1767
+ if (finding.dueAt === void 0 !== (finding.dueEvidence === void 0) || finding.assignee === void 0 !== (finding.assigneeEvidence === void 0))
1768
+ return invalid3("optional dates and assignees require their supporting evidence");
1769
+ if (finding.assignee !== void 0 && (typeof finding.assignee !== "string" || !/^person:[1-9]\d*$/.test(finding.assignee)))
1770
+ return invalid3("an assignee must be a person reference");
1771
+ return {
1772
+ ...base,
1773
+ kind: "task",
1774
+ type: finding.type,
1775
+ title: text3(finding.title, 300),
1776
+ reason: text3(finding.reason, 2e3),
1777
+ commitment: finding.commitment,
1778
+ ...finding.dueAt === void 0 ? {} : {
1779
+ dueAt: meetingTimestamp(finding.dueAt, "finding due date"),
1780
+ dueEvidence: support(finding.dueEvidence, evidence)
1781
+ },
1782
+ ...finding.assignee === void 0 ? {} : { assignee: finding.assignee, assigneeEvidence: support(finding.assigneeEvidence, evidence) }
1783
+ };
1784
+ }, "validateFinding");
1785
+ var support = /* @__PURE__ */ __name((value, evidence) => {
1786
+ if (!Array.isArray(value) || value.length < 1 || value.length > 8 || value.some((ref) => typeof ref !== "string" || !evidence.some((item) => item.reference === ref)))
1787
+ return invalid3("date and assignee support must cite the finding's evidence");
1788
+ return [...new Set(value)].sort();
1789
+ }, "support");
1790
+ var validateBatch = /* @__PURE__ */ __name((input, rules, most, one) => {
1676
1791
  if (!input || typeof input !== "object" || Buffer.byteLength(JSON.stringify(input), "utf8") > 65536)
1677
1792
  return invalid3(`${rules.plural} take at most 65536 UTF-8 bytes`);
1678
1793
  fields(input, ["schemaVersion", "key", "extractor", "findings"], rules.singular);
1679
- if (input.schemaVersion !== 1 || !Array.isArray(input.findings) || input.findings.length < 1 || input.findings.length > 16)
1680
- return invalid3(`schemaVersion 1 takes 1\u201316 ${rules.plural}`);
1794
+ if (input.schemaVersion !== 1 || !Array.isArray(input.findings) || input.findings.length < 1 || input.findings.length > most)
1795
+ return invalid3(`schemaVersion 1 takes 1\u2013${most} ${rules.plural}`);
1681
1796
  const key = text3(input.key, 64);
1682
1797
  if (!/^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$/.test(key))
1683
1798
  return invalid3("a findings key uses letters, digits, dot, colon, underscore or hyphen");
1684
1799
  const ids2 = /* @__PURE__ */ new Set();
1685
- const findings = input.findings.map((finding) => {
1686
- if (!finding || typeof finding !== "object")
1687
- return invalid3("a finding is an object");
1688
- const id3 = text3(finding.id, 64);
1689
- if (!/^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$/.test(id3) || ids2.has(id3))
1690
- return invalid3("finding IDs must be unique simple keys");
1691
- ids2.add(id3);
1692
- const project = finding.project === void 0 && rules.anySubject ? void 0 : text3(finding.project, 64);
1693
- if (project !== void 0 && !/^project:[1-9]\d*$/.test(project))
1694
- return invalid3("a finding names a project reference");
1695
- if (finding.subject !== void 0 && (!rules.anySubject || !SUBJECT.test(text3(finding.subject, 80))))
1696
- return invalid3("a finding's subject is a person:, organization:, task: or project: reference");
1697
- if (finding.kind === "task" && project === void 0)
1698
- return invalid3("a task finding names the project the task goes in");
1699
- if (!Array.isArray(finding.evidence) || finding.evidence.length < 1 || finding.evidence.length > 8)
1700
- return invalid3(`a finding requires 1\u20138 cited ${rules.cited}s`);
1701
- const evidence = finding.evidence.map((item) => {
1702
- if (!item || typeof item !== "object")
1703
- return invalid3("finding evidence is a reference and fingerprint");
1704
- fields(item, ["reference", "fingerprint"], rules.singular);
1705
- if (typeof item.reference !== "string" || typeof item.fingerprint !== "string")
1706
- return invalid3("evidence requires a reference and fingerprint");
1707
- const reference2 = rules.reference(item.reference);
1708
- if (!/^[a-f0-9]{64}$/.test(item.fingerprint))
1709
- return invalid3(`finding evidence requires exact ${rules.cited} references and fingerprints`);
1710
- return { reference: reference2, fingerprint: item.fingerprint };
1711
- }).sort((a, b) => a.reference.localeCompare(b.reference));
1712
- if (new Set(evidence.map((item) => item.reference)).size !== evidence.length)
1713
- return invalid3(`duplicate evidence ${rules.cited}`);
1714
- const base = {
1715
- id: id3,
1716
- ...project === void 0 ? {} : { project },
1717
- ...finding.subject === void 0 ? {} : { subject: finding.subject },
1718
- evidence
1719
- };
1720
- if (finding.kind === "fact") {
1721
- fields(finding, ["id", "project", "subject", "evidence", "kind", "type", "statement"], rules.singular);
1722
- if (finding.type === "payment")
1723
- return invalid3("a payment is a finding of kind payment; money is a payments row, not a fact");
1724
- if (!FACT_TYPES.includes(finding.type))
1725
- return invalid3("unknown fact finding type");
1726
- return { ...base, kind: "fact", type: finding.type, statement: text3(finding.statement, 2e3) };
1727
- }
1728
- if (finding.kind === "payment" && rules.payments) {
1729
- fields(finding, ["id", "project", "subject", "evidence", "kind", "statement", "payment", "supersedes"], rules.singular);
1730
- if (finding.supersedes !== void 0 && !/^invoice:[1-9]\d*$/.test(String(finding.supersedes)))
1731
- return invalid3("a payment finding supersedes an invoice: reference, the expected payment it settles or voids");
1732
- const payment = validatePayment(finding.payment);
1733
- if (payment.state === "expected" && finding.supersedes !== void 0)
1734
- return invalid3("an expected payment supersedes nothing; a paid or cancelled one supersedes its invoice");
1735
- if (payment.state === "cancelled" && finding.supersedes === void 0)
1736
- return invalid3("a cancelled payment names the invoice: it cancels in supersedes");
1737
- if (payment.state === "expected" && !/^(person|organization):/.test(payment.counterparty ?? ""))
1738
- return invalid3("an expected payment becomes an invoice, which names its counterparty as a person: or organization:");
1739
- return {
1740
- ...base,
1741
- kind: "payment",
1742
- ...finding.statement === void 0 ? {} : { statement: text3(finding.statement, 2e3) },
1743
- payment,
1744
- ...finding.supersedes === void 0 ? {} : { supersedes: finding.supersedes }
1745
- };
1746
- }
1747
- if (finding.kind !== "task")
1748
- return invalid3(`a finding is a fact${rules.payments ? ", payment" : ""} or task`);
1749
- fields(finding, [
1750
- "id",
1751
- "project",
1752
- "evidence",
1753
- "kind",
1754
- "type",
1755
- "title",
1756
- "reason",
1757
- "commitment",
1758
- "dueAt",
1759
- "dueEvidence",
1760
- "assignee",
1761
- "assigneeEvidence"
1762
- ], rules.singular);
1763
- if (!TASK_TYPES.includes(finding.type))
1764
- return invalid3("a task finding type is bug, chore or feature");
1765
- if (!["explicit", "inferred"].includes(finding.commitment))
1766
- return invalid3("task commitment must be explicit or inferred");
1767
- const support = /* @__PURE__ */ __name((value) => {
1768
- if (!Array.isArray(value) || value.length < 1 || value.length > 8 || value.some((ref) => typeof ref !== "string" || !evidence.some((item) => item.reference === ref)))
1769
- return invalid3("date and assignee support must cite the finding's evidence");
1770
- return [...new Set(value)].sort();
1771
- }, "support");
1772
- if (finding.dueAt === void 0 !== (finding.dueEvidence === void 0) || finding.assignee === void 0 !== (finding.assigneeEvidence === void 0))
1773
- return invalid3("optional dates and assignees require their supporting evidence");
1774
- if (finding.assignee !== void 0 && (typeof finding.assignee !== "string" || !/^person:[1-9]\d*$/.test(finding.assignee)))
1775
- return invalid3("an assignee must be a person reference");
1776
- return {
1777
- ...base,
1778
- kind: "task",
1779
- type: finding.type,
1780
- title: text3(finding.title, 300),
1781
- reason: text3(finding.reason, 2e3),
1782
- commitment: finding.commitment,
1783
- ...finding.dueAt === void 0 ? {} : { dueAt: meetingTimestamp(finding.dueAt, "finding due date"), dueEvidence: support(finding.dueEvidence) },
1784
- ...finding.assignee === void 0 ? {} : { assignee: finding.assignee, assigneeEvidence: support(finding.assigneeEvidence) }
1785
- };
1786
- });
1800
+ const findings = input.findings.map((finding) => one(finding, ids2));
1787
1801
  return { schemaVersion: 1, key, extractor: text3(input.extractor, 200), findings };
1788
- }, "validateFindings");
1802
+ }, "validateBatch");
1803
+ 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");
1789
1806
  var findingFingerprint = /* @__PURE__ */ __name(({ id: _id, ...finding }) => findingHash(finding), "findingFingerprint");
1790
1807
 
1791
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/findings.js
1808
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/findings.js
1792
1809
  var MEETING_FINDINGS_KIND = "meeting_findings";
1793
1810
  var cue = /* @__PURE__ */ __name((raw) => {
1794
1811
  const reference2 = canonicalMeetingReference(raw);
@@ -1799,7 +1816,7 @@ var cue = /* @__PURE__ */ __name((raw) => {
1799
1816
  var validateMeetingFindings = /* @__PURE__ */ __name((input) => validateFindings(input, { plural: "meeting findings", singular: "meeting finding", cited: "cue", reference: cue }), "validateMeetingFindings");
1800
1817
  var meetingFindingFingerprint = findingFingerprint;
1801
1818
 
1802
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/result-items.js
1819
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/result-items.js
1803
1820
  var text4 = string();
1804
1821
  var identifier = pipe(text4, minLength(1));
1805
1822
  var nullableText = nullable(text4);
@@ -1932,7 +1949,7 @@ var MEETING_RESULT_ENTITIES = {
1932
1949
  meeting_repair: repair
1933
1950
  };
1934
1951
 
1935
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/event-query.js
1952
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/event-query.js
1936
1953
  var EVENT_QUERY = defineQuery({
1937
1954
  entity: "event",
1938
1955
  backend: "sql",
@@ -1948,7 +1965,7 @@ var EVENT_QUERY = defineQuery({
1948
1965
  ]
1949
1966
  });
1950
1967
 
1951
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/events.js
1968
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/events.js
1952
1969
  var linkEvent = /* @__PURE__ */ __name(async (store, details, now = Date.now()) => {
1953
1970
  const current = await store.meeting(details.meeting.id);
1954
1971
  if (!current)
@@ -1991,7 +2008,7 @@ var linkEvent = /* @__PURE__ */ __name(async (store, details, now = Date.now())
1991
2008
  return (await store.events()).find((e) => e.id === linked?.meeting.eventId) ?? null;
1992
2009
  }, "linkEvent");
1993
2010
 
1994
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/hit-query.js
2011
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/hit-query.js
1995
2012
  var context = {
1996
2013
  command: "search meetings",
1997
2014
  guide: "https://github.com/WireCatLabs/cli-core/blob/main/docs/search/query-language.md#\u0432\u0441\u0442\u0440\u0435\u0447\u0438"
@@ -2110,7 +2127,7 @@ var meetingWordsQuery = /* @__PURE__ */ __name((text6) => {
2110
2127
  return { version: 1, language: "lucene-v1", root };
2111
2128
  }, "meetingWordsQuery");
2112
2129
 
2113
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/language.js
2130
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/language.js
2114
2131
  var LATIN_WORDS = {
2115
2132
  en: ["the", "and", "is", "that", "you", "this", "what", "have", "with", "are"],
2116
2133
  es: ["el", "los", "las", "por", "pero", "para", "est\xE1", "muy", "tambi\xE9n", "hay"],
@@ -2159,7 +2176,7 @@ var transcriptLanguage = /* @__PURE__ */ __name((texts) => {
2159
2176
  return null;
2160
2177
  }, "transcriptLanguage");
2161
2178
 
2162
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/ingest.js
2179
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/ingest.js
2163
2180
  var contentHash = /* @__PURE__ */ __name(async (text6) => {
2164
2181
  const bytes = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(text6));
2165
2182
  return Array.from(new Uint8Array(bytes), (byte) => byte.toString(16).padStart(2, "0")).join("");
@@ -2196,7 +2213,7 @@ var timestamp2 = /* @__PURE__ */ __name((value) => {
2196
2213
  return time;
2197
2214
  }, "timestamp");
2198
2215
 
2199
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/transcript-text.js
2216
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/transcript-text.js
2200
2217
  var TranscriptTextError = class extends Error {
2201
2218
  static {
2202
2219
  __name(this, "TranscriptTextError");
@@ -2251,7 +2268,7 @@ var parseTranscriptText = /* @__PURE__ */ __name((input) => {
2251
2268
  return { header, lines };
2252
2269
  }, "parseTranscriptText");
2253
2270
 
2254
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/vtt.js
2271
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/vtt.js
2255
2272
  var VttError = class extends Error {
2256
2273
  static {
2257
2274
  __name(this, "VttError");
@@ -2303,7 +2320,7 @@ var parseVtt = /* @__PURE__ */ __name((input) => {
2303
2320
  return cues;
2304
2321
  }, "parseVtt");
2305
2322
 
2306
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/import.js
2323
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/import.js
2307
2324
  var importFiles = /* @__PURE__ */ __name(async (files, store, now = Date.now()) => {
2308
2325
  const report = { meetings: 0, participants: 0, transcriptRows: 0, summaries: 0, warnings: [] };
2309
2326
  for (const file of files) {
@@ -2336,10 +2353,10 @@ var importFiles = /* @__PURE__ */ __name(async (files, store, now = Date.now())
2336
2353
  return report;
2337
2354
  }, "importFiles");
2338
2355
 
2339
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/links.js
2356
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/links.js
2340
2357
  var CHAT_MESSAGES_READ = 1e5;
2341
2358
 
2342
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/provider.js
2359
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/provider.js
2343
2360
  var snapshotMeetingScope = /* @__PURE__ */ __name((scope2) => {
2344
2361
  const provider = scope2?.provider;
2345
2362
  const account = scope2?.account;
@@ -2348,7 +2365,7 @@ var snapshotMeetingScope = /* @__PURE__ */ __name((scope2) => {
2348
2365
  return Object.freeze({ provider, account });
2349
2366
  }, "snapshotMeetingScope");
2350
2367
 
2351
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/meeting-management.js
2368
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/meeting-management.js
2352
2369
  var nonempty = /* @__PURE__ */ __name((value, name) => {
2353
2370
  if (typeof value !== "string" || !value.trim())
2354
2371
  throw new CliError("validation_error", `${name} must be nonempty`);
@@ -2399,7 +2416,7 @@ var validateMeetingChange = /* @__PURE__ */ __name((change, create) => {
2399
2416
  return Object.freeze(result);
2400
2417
  }, "validateMeetingChange");
2401
2418
 
2402
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/passage.js
2419
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/passage.js
2403
2420
  var meetingHitContextLimits = /* @__PURE__ */ __name((options = {}) => {
2404
2421
  const { before = 3, after = 3, bytes = 65536, max_read_bytes = 4194304, expected_fingerprint } = options;
2405
2422
  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)))
@@ -2412,7 +2429,7 @@ var validateMeetingPassage = /* @__PURE__ */ __name((reference2, options) => {
2412
2429
  throw new CliError("validation_error", "choose a cue reference and json, text or markdown output");
2413
2430
  }, "validateMeetingPassage");
2414
2431
 
2415
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/preparation-context.js
2432
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/preparation-context.js
2416
2433
  var validateMeetingPreparationContext = /* @__PURE__ */ __name((original) => {
2417
2434
  if (!original || typeof original !== "object" || Array.isArray(original))
2418
2435
  throw new CliError("validation_error", "meeting preparation context is required");
@@ -2437,7 +2454,7 @@ var validateMeetingPreparationContext = /* @__PURE__ */ __name((original) => {
2437
2454
  return { ...input, limit, maxReadBytes };
2438
2455
  }, "validateMeetingPreparationContext");
2439
2456
 
2440
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/project-evidence-answer.js
2457
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/project-evidence-answer.js
2441
2458
  var count4 = pipe(number(), integer(), minValue(0));
2442
2459
  var id = pipe(string(), minLength(1));
2443
2460
  var meetingProjectEvidence = strictObject({
@@ -2558,7 +2575,7 @@ var meetingProjectEvidenceAnswer = /* @__PURE__ */ __name((page, prepared, comma
2558
2575
  };
2559
2576
  }, "meetingProjectEvidenceAnswer");
2560
2577
 
2561
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/search-validation.js
2578
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/search-validation.js
2562
2579
  var validateMeetingHitSearch = /* @__PURE__ */ __name((query, options = {}) => {
2563
2580
  const integer3 = /* @__PURE__ */ __name((value, low, high) => Number.isSafeInteger(value) && value >= low && value <= high, "integer");
2564
2581
  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) || [
@@ -2578,7 +2595,7 @@ var validateMeetingHitSearch = /* @__PURE__ */ __name((query, options = {}) => {
2578
2595
  throw new CliError("validation_error", "choose one project selector and one tag or topic selector");
2579
2596
  }, "validateMeetingHitSearch");
2580
2597
 
2581
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/project-evidence-query.js
2598
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/project-evidence-query.js
2582
2599
  var ids = {
2583
2600
  meeting_id: "meetingId",
2584
2601
  identity_id: "participantIdentityId",
@@ -2669,7 +2686,7 @@ var prepareMeetingProjectEvidence = /* @__PURE__ */ __name((project, request = {
2669
2686
  return { project: project.trim(), options, query: frozen.join(" AND ") };
2670
2687
  }, "prepareMeetingProjectEvidence");
2671
2688
 
2672
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/project-evidence.js
2689
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/project-evidence.js
2673
2690
  var readMeetingProjectEvidence = /* @__PURE__ */ __name(async (read, project, request = {}, now = Date.now()) => {
2674
2691
  const prepared = prepareMeetingProjectEvidence(project, request, now);
2675
2692
  const page = await read(prepared.project, prepared.options);
@@ -2677,7 +2694,7 @@ var readMeetingProjectEvidence = /* @__PURE__ */ __name(async (read, project, re
2677
2694
  return meetingProjectEvidenceAnswer(page, prepared);
2678
2695
  }, "readMeetingProjectEvidence");
2679
2696
 
2680
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/pull.js
2697
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/pull.js
2681
2698
  var participantInput = /* @__PURE__ */ __name((p, provider, occurrenceId2, position, accountId) => {
2682
2699
  const { identityExternalId, ...fields2 } = p;
2683
2700
  const externalId = identityExternalId ?? (p.email ? `email:${p.email.toLowerCase()}` : p.externalId) ?? `name:${p.displayName ?? "unknown"}@${accountId}/${occurrenceId2}:${position}`;
@@ -2816,7 +2833,7 @@ unlinked`, format)],
2816
2833
  return report;
2817
2834
  }, "pull");
2818
2835
 
2819
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/read-answers.js
2836
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/read-answers.js
2820
2837
  var text5 = string();
2821
2838
  var count5 = pipe(number(), integer(), minValue(0));
2822
2839
  var id2 = pipe(number(), integer(), minValue(1));
@@ -2993,10 +3010,10 @@ var eventItem = /* @__PURE__ */ __name((one) => ({
2993
3010
  updated_at: new Date(one.updatedAt).toISOString()
2994
3011
  }), "eventItem");
2995
3012
 
2996
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/recording-transfer.js
3013
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/recording-transfer.js
2997
3014
  var strongRecordingValidator = /* @__PURE__ */ __name((value) => typeof value === "string" && value.length <= 1024 && /^"[\x21\x23-\x7e\x80-\xff]*"$/.test(value), "strongRecordingValidator");
2998
3015
 
2999
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/related-history.js
3016
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/related-history.js
3000
3017
  var validateMeetingRelatedHistory = /* @__PURE__ */ __name((original) => {
3001
3018
  if (!original || typeof original !== "object" || Array.isArray(original))
3002
3019
  throw new CliError("validation_error", "related history request is required");
@@ -3026,14 +3043,14 @@ var validateMeetingRelatedHistory = /* @__PURE__ */ __name((original) => {
3026
3043
  return { ...input, anchorIds: [...new Set(input.anchorIds)], limit, maxReadBytes };
3027
3044
  }, "validateMeetingRelatedHistory");
3028
3045
 
3029
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/review.js
3046
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/review.js
3030
3047
  var REVIEW_LIMIT = { default: 50, most: 200 };
3031
3048
 
3032
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/save-hints.js
3049
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/save-hints.js
3033
3050
  var SAVE_HELP = `Worth keeping \u2014 a decision, a promise, a preference? Record it with \`memo facts add\` or
3034
3051
  \`memo memories add\`, citing the msg: locator or meeting: reference as --evidence.`;
3035
3052
 
3036
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/series-history.js
3053
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/series-history.js
3037
3054
  var validateMeetingSeriesHistory = /* @__PURE__ */ __name((input) => {
3038
3055
  input.signal?.throwIfAborted();
3039
3056
  if (!Number.isSafeInteger(input.accountId) || input.accountId <= 0)
@@ -3054,7 +3071,7 @@ var validateMeetingSeriesHistory = /* @__PURE__ */ __name((input) => {
3054
3071
  return { ...input, limit, maxReadBytes };
3055
3072
  }, "validateMeetingSeriesHistory");
3056
3073
 
3057
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/upcoming-validation.js
3074
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/upcoming-validation.js
3058
3075
  var invalid4 = /* @__PURE__ */ __name((field) => {
3059
3076
  throw new CliError("invalid_response", `meeting occurrence ${field} is invalid`);
3060
3077
  }, "invalid");
@@ -3123,7 +3140,7 @@ var readOccurrenceSchedule = /* @__PURE__ */ __name((input, meetingId, limit, ma
3123
3140
  return result;
3124
3141
  }, "readOccurrenceSchedule");
3125
3142
 
3126
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/series-inventory-validation.js
3143
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/series-inventory-validation.js
3127
3144
  function invalid5(field, response = false) {
3128
3145
  throw new CliError(response ? "invalid_response" : "validation_error", `invalid meeting inventory ${field}`);
3129
3146
  }
@@ -3152,7 +3169,7 @@ var validateMeetingSeriesInventoryCursor = /* @__PURE__ */ __name((value) => {
3152
3169
  cursorDetails(value);
3153
3170
  }, "validateMeetingSeriesInventoryCursor");
3154
3171
 
3155
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/stats.js
3172
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/stats.js
3156
3173
  var zoneOf = /* @__PURE__ */ __name((timeZone) => {
3157
3174
  const zone = timeZone ?? "UTC";
3158
3175
  try {
@@ -3231,7 +3248,7 @@ var aggregateMeetingStats = /* @__PURE__ */ __name((rows, timeZone) => {
3231
3248
  };
3232
3249
  }, "aggregateMeetingStats");
3233
3250
 
3234
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/meetings/upcoming.js
3251
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/meetings/upcoming.js
3235
3252
  var cancelled = /* @__PURE__ */ __name((signal) => {
3236
3253
  if (!signal?.aborted)
3237
3254
  return;
@@ -3301,7 +3318,7 @@ var createUpcomingMeetingReader = /* @__PURE__ */ __name((scope2, port) => {
3301
3318
  };
3302
3319
  }, "createUpcomingMeetingReader");
3303
3320
 
3304
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/domain/tags.js
3321
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/domain/tags.js
3305
3322
  var TAG_TYPES = ["chat", "contact", "message", "task"];
3306
3323
  var TAG = /^[a-z0-9-]{1,32}$/;
3307
3324
  var tagOf = /* @__PURE__ */ __name((value) => {
@@ -3315,7 +3332,7 @@ var normalizeTag = /* @__PURE__ */ __name((value) => {
3315
3332
  return tag;
3316
3333
  }, "normalizeTag");
3317
3334
 
3318
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/store/sqlite/link-kinds.js
3335
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/store/sqlite/link-kinds.js
3319
3336
  var LINK_KINDS = [
3320
3337
  "links-to",
3321
3338
  "blocked-by",
@@ -3336,7 +3353,7 @@ var LINK_SOURCES = [...LINK_ORIGINS, "calendar"];
3336
3353
  var RELATION_KINDS = ["member-of", "related-to"];
3337
3354
  var linkKind = /* @__PURE__ */ __name((kind) => `'${kind}'`, "linkKind");
3338
3355
 
3339
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/tasks/model.js
3356
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/tasks/model.js
3340
3357
  var TASK_KINDS = ["question", "request", "mention", "promise"];
3341
3358
  var TASK_STATES = ["open", "todo", "in_progress", "done", "dismissed"];
3342
3359
  var CLOSED_STATES = ["done", "dismissed"];
@@ -3351,7 +3368,7 @@ function closeTask(task, state, by, at, reason) {
3351
3368
  }
3352
3369
  __name(closeTask, "closeTask");
3353
3370
 
3354
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/tasks/priority.js
3371
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/tasks/priority.js
3355
3372
  var PRIORITY_LABELS = ["low", "medium", "high", "critical"];
3356
3373
  var MIDDLE = { low: 0.125, medium: 0.375, high: 0.625, critical: 0.875 };
3357
3374
  var LEGACY_PRIORITY_SCORES = [0.875, 0.625, 0.375, 0.1875, 0.0625];
@@ -3380,13 +3397,13 @@ var priorityOf = /* @__PURE__ */ __name((value) => {
3380
3397
  }, "priorityOf");
3381
3398
  var priorityOption = /* @__PURE__ */ __name((value) => priorityOf(value) ?? "none", "priorityOption");
3382
3399
 
3383
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/tasks/store.js
3400
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/tasks/store.js
3384
3401
  function matches2(task, filter) {
3385
3402
  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);
3386
3403
  }
3387
3404
  __name(matches2, "matches");
3388
3405
 
3389
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/tasks/service.js
3406
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/tasks/service.js
3390
3407
  function createTaskService({ store, now = /* @__PURE__ */ __name(() => /* @__PURE__ */ new Date(), "now"), newId = /* @__PURE__ */ __name(() => crypto.randomUUID(), "newId") }) {
3391
3408
  async function find(id3) {
3392
3409
  const task = await store.get(id3);
@@ -3446,7 +3463,7 @@ function median(values) {
3446
3463
  }
3447
3464
  __name(median, "median");
3448
3465
 
3449
- // node_modules/.pnpm/@wirecat+cli-core@0.559.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_907a8c00de2c01e4b50d7050f36772c6/node_modules/@wirecat/cli-core/dist/domain/knowledge.js
3466
+ // node_modules/.pnpm/@wirecat+cli-core@0.560.0_@wirecat+cli-base@0.75.0_commander@15.0.0_esbuild@0.28.2_type_5702f943a9224d209a94753f662cf36c/node_modules/@wirecat/cli-core/dist/domain/knowledge.js
3450
3467
  var FACT_STATUSES = ["proposed", "accepted", "superseded", "reversed", "rejected"];
3451
3468
  var MEMORY_KINDS = ["summary", "digest", "preference"];
3452
3469
  var MEMORY_STATUSES = ["proposed", "confirmed", "stale", "superseded"];
@@ -3509,8 +3526,15 @@ export {
3509
3526
  FACT_TYPES,
3510
3527
  validatePayment,
3511
3528
  paymentTitle,
3529
+ meetingTimestamp,
3512
3530
  findingHash,
3531
+ validEvidence,
3532
+ findingId,
3533
+ validateFinding,
3534
+ validateBatch,
3513
3535
  validateFindings,
3536
+ findingText,
3537
+ findingFields,
3514
3538
  findingFingerprint,
3515
3539
  MEETING_FINDINGS_KIND,
3516
3540
  validateMeetingFindings,