@wirecat/cli-memo 0.131.38 → 0.131.39

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 (111) hide show
  1. package/dist/bin/memo.js +2 -2
  2. package/dist/bundle/{all-profiles-W26PFZ2J.js → all-profiles-5CXMPAOF.js} +5 -5
  3. package/dist/bundle/{anthropic-SY6QPTQW.js → anthropic-KJECM7MD.js} +3 -3
  4. package/dist/bundle/{app-server-WUXDTYU4.js → app-server-ZO7Z7RMA.js} +35 -35
  5. package/dist/bundle/auto-MA47DOER.js +86 -0
  6. package/dist/bundle/{bun-O3KE32D7.js → bun-V2HGEGFF.js} +2 -2
  7. package/dist/bundle/{bun-sqlite-5X2NBSLA.js → bun-sqlite-DSFSAFNQ.js} +2 -2
  8. package/dist/bundle/{chunk-TJXVMLK4.js → chunk-3ZEH35NH.js} +1 -1
  9. package/dist/bundle/{chunk-2EDP7PDR.js → chunk-4GA7IMXD.js} +279 -303
  10. package/dist/bundle/{chunk-QTLYWZXB.js → chunk-4MFNKTQQ.js} +3 -3
  11. package/dist/bundle/{chunk-DVHDIQBI.js → chunk-552IRBSA.js} +4 -4
  12. package/dist/bundle/{chunk-J7FP7PRV.js → chunk-5I75PUEK.js} +531 -583
  13. package/dist/bundle/{chunk-5ZKNRR6O.js → chunk-6BJPSIFE.js} +36 -36
  14. package/dist/bundle/{chunk-L2CXODLV.js → chunk-72DBFKCI.js} +1 -1
  15. package/dist/bundle/{chunk-ZP7F76D3.js → chunk-7DMTHV2P.js} +1 -1
  16. package/dist/bundle/{chunk-M3TUIVRK.js → chunk-7VBSW2RI.js} +5 -5
  17. package/dist/bundle/{chunk-CXWKBOKQ.js → chunk-AKLFOL4C.js} +3 -3
  18. package/dist/bundle/{chunk-F4BXYTIW.js → chunk-AX6AMVVY.js} +7 -7
  19. package/dist/bundle/{chunk-WVXTZWH3.js → chunk-B2YW6VOA.js} +1 -1
  20. package/dist/bundle/{chunk-WRZP6DJT.js → chunk-BHBLLZAO.js} +279 -210
  21. package/dist/bundle/{chunk-75QQ7MLH.js → chunk-CHAA2BOM.js} +8 -8
  22. package/dist/bundle/{chunk-GXCXOITM.js → chunk-CQJO22KN.js} +20 -20
  23. package/dist/bundle/{chunk-CEOXSWU3.js → chunk-D7JMUN36.js} +2 -2
  24. package/dist/bundle/{chunk-HJTDA7AE.js → chunk-DMY2YVJ7.js} +5 -5
  25. package/dist/bundle/{chunk-XCAGVFRC.js → chunk-DZBNKSE2.js} +487 -421
  26. package/dist/bundle/{chunk-4NJQJZRO.js → chunk-EP5U5WCQ.js} +1 -1
  27. package/dist/bundle/{chunk-CVCL77DZ.js → chunk-ER7SUNTY.js} +4 -4
  28. package/dist/bundle/{chunk-LV6FBPUQ.js → chunk-EY42TTWE.js} +11 -11
  29. package/dist/bundle/{chunk-374FSLTB.js → chunk-G35CZBBF.js} +5 -5
  30. package/dist/bundle/{chunk-SSQDA7X6.js → chunk-GANKKP5F.js} +4 -4
  31. package/dist/bundle/{chunk-B4LT2DHH.js → chunk-GRTELFME.js} +4 -4
  32. package/dist/bundle/{chunk-K3GMQLFM.js → chunk-H4DBYU2J.js} +2 -2
  33. package/dist/bundle/{chunk-S5KSC4B3.js → chunk-H4GQZLTW.js} +27 -27
  34. package/dist/bundle/{chunk-3G63U4VK.js → chunk-HB3YU52J.js} +9 -9
  35. package/dist/bundle/{chunk-JT36R23P.js → chunk-JQSFIPWA.js} +7 -7
  36. package/dist/bundle/{chunk-RS5WAI7D.js → chunk-KBDZG6XU.js} +3 -3
  37. package/dist/bundle/{chunk-UUD4QHAN.js → chunk-LXNWBHCK.js} +4 -4
  38. package/dist/bundle/{chunk-4OF64T67.js → chunk-O6ZLAFWQ.js} +1 -1
  39. package/dist/bundle/{chunk-QM5CNTGT.js → chunk-OJBM56FX.js} +20 -20
  40. package/dist/bundle/{chunk-5EBYGKZB.js → chunk-P357OGUL.js} +1 -1
  41. package/dist/bundle/{chunk-5J5RTJUJ.js → chunk-P3QBCCBA.js} +1 -1
  42. package/dist/bundle/{chunk-SDIKN2OR.js → chunk-PWVNSJBL.js} +10 -10
  43. package/dist/bundle/{chunk-FOQBIEL5.js → chunk-Q35DHKBZ.js} +1 -1
  44. package/dist/bundle/{chunk-AOFYLQK2.js → chunk-Q3O7N35U.js} +2 -2
  45. package/dist/bundle/{chunk-32WLB6I3.js → chunk-QAFJG52K.js} +1 -1
  46. package/dist/bundle/{chunk-2Q4DYGNU.js → chunk-QL2YLPB5.js} +2 -2
  47. package/dist/bundle/{chunk-UWJ3RJF4.js → chunk-QMDVWF3C.js} +2 -2
  48. package/dist/bundle/{chunk-ZMZVRVCK.js → chunk-QUJXYDYY.js} +2 -2
  49. package/dist/bundle/{chunk-2IST54UV.js → chunk-QZABT7XH.js} +9 -9
  50. package/dist/bundle/{chunk-CEENCS5P.js → chunk-RBLUTSSL.js} +6 -6
  51. package/dist/bundle/{chunk-AJ4SVCBD.js → chunk-S7W5GFOI.js} +249 -249
  52. package/dist/bundle/{chunk-TXJYVD5U.js → chunk-SANEKFUF.js} +1 -1
  53. package/dist/bundle/{chunk-S2K3FWLA.js → chunk-SB7V3HFM.js} +12 -12
  54. package/dist/bundle/{chunk-7P3PM3OL.js → chunk-TOZ2COFV.js} +7 -7
  55. package/dist/bundle/{chunk-4AXSD77N.js → chunk-TSGJRL2S.js} +1 -1
  56. package/dist/bundle/{chunk-XLUOKHFN.js → chunk-U5B2ORUM.js} +3 -3
  57. package/dist/bundle/{chunk-GSVNF5TX.js → chunk-UECWAAZ3.js} +4 -4
  58. package/dist/bundle/{chunk-4CADISNA.js → chunk-UIUMG7AY.js} +1 -1
  59. package/dist/bundle/{chunk-43CMY3YD.js → chunk-WBWFH7ZT.js} +1 -1
  60. package/dist/bundle/{chunk-TJNW4L7P.js → chunk-WDDYMCLD.js} +43 -43
  61. package/dist/bundle/{chunk-O762IE2F.js → chunk-WJCBQFEM.js} +1 -1
  62. package/dist/bundle/{chunk-L2M3LTQQ.js → chunk-XED6NO7E.js} +1 -1
  63. package/dist/bundle/{chunk-QP7BTVMT.js → chunk-YFBNICKS.js} +2 -2
  64. package/dist/bundle/{chunk-4CD37FZU.js → chunk-ZQTFPZ36.js} +5 -5
  65. package/dist/bundle/{command-contract-FRRW2Z4S.js → command-contract-JXLIGF3U.js} +11 -11
  66. package/dist/bundle/{decode-RVPTVZ3W.js → decode-HXMDIZKS.js} +2 -2
  67. package/dist/bundle/{echarts-CW6DTALT.js → echarts-MRWQC3FY.js} +2 -2
  68. package/dist/bundle/{embed-VXWYSZ7X.js → embed-IEJFYZ7N.js} +3 -3
  69. package/dist/bundle/{embedder-QX3GSPBN.js → embedder-N2TXC47Z.js} +6 -6
  70. package/dist/bundle/{entry-LBDVYMDG.js → entry-VX4RACD7.js} +4 -4
  71. package/dist/bundle/failure-LU3CYK3U.js +66 -0
  72. package/dist/bundle/{first-run-VPR5YFMD.js → first-run-2GXQUNFV.js} +5 -5
  73. package/dist/bundle/{first-screen-WRKQ4GAM.js → first-screen-JRKMDJPK.js} +12 -12
  74. package/dist/bundle/{instructions-2XLUHPQH.js → instructions-FR4H42RI.js} +1 -1
  75. package/dist/bundle/{mcp-RD54TNKO.js → mcp-IP3FEW24.js} +35 -35
  76. package/dist/bundle/memo.js +6 -6
  77. package/dist/bundle/{node-AQ7O3PGH.js → node-QWBBKDHE.js} +2 -2
  78. package/dist/bundle/{node-sqlite-RKDBK624.js → node-sqlite-GKJHUPHC.js} +3 -3
  79. package/dist/bundle/{oauth-ZQCL2HPA.js → oauth-ZQ7B32ZI.js} +4 -4
  80. package/dist/bundle/{open-ME6M3BWL.js → open-TDGXVXNV.js} +2 -2
  81. package/dist/bundle/{openai-PHW5QKNC.js → openai-3T4YGUZM.js} +7 -7
  82. package/dist/bundle/{process-4HJLMEHS.js → process-OBTDURL4.js} +1 -1
  83. package/dist/bundle/{program-EVPU3PMC.js → program-6UJEO4TI.js} +80 -59
  84. package/dist/bundle/{prompt-U5JMQJPC.js → prompt-JZIIKSM4.js} +2 -2
  85. package/dist/bundle/{recognize-OYKFXOLL.js → recognize-47F6WJYE.js} +1 -1
  86. package/dist/bundle/{remote-IXABNXVH.js → remote-NHSYSI2S.js} +4 -4
  87. package/dist/bundle/{rerank-6ASLHI5I.js → rerank-HONNCBTA.js} +4 -4
  88. package/dist/bundle/{serve-ZYQO2Z23.js → serve-63BFDEQS.js} +6 -6
  89. package/dist/bundle/server-I6M5QH5W.js +48 -0
  90. package/dist/bundle/{server-5XHYKDVY.js → server-QWJPOH7K.js} +50 -50
  91. package/dist/bundle/server-XYUNBCYP.js +61 -0
  92. package/dist/bundle/{state-5W7BQVQO.js → state-ZLODXERO.js} +3 -3
  93. package/dist/bundle/{store-6WW7XV2O.js → store-Q36VLED7.js} +9 -9
  94. package/dist/bundle/store-maintenance-command-EM53HVOY.js +48 -0
  95. package/dist/bundle/update-UKMV74FK.js +69 -0
  96. package/dist/examples.d.ts.map +1 -1
  97. package/dist/examples.js +5 -1
  98. package/dist/examples.js.map +1 -1
  99. package/dist/knowledge/command.d.ts.map +1 -1
  100. package/dist/knowledge/command.js +23 -1
  101. package/dist/knowledge/command.js.map +1 -1
  102. package/dist/version.d.ts +1 -1
  103. package/dist/version.js +1 -1
  104. package/package.json +2 -2
  105. package/dist/bundle/auto-2TNLCAEM.js +0 -86
  106. package/dist/bundle/failure-NBJBRA6G.js +0 -66
  107. package/dist/bundle/server-BMXFJO2T.js +0 -61
  108. package/dist/bundle/server-V7JU6YLA.js +0 -48
  109. package/dist/bundle/store-maintenance-command-YPNP663U.js +0 -48
  110. package/dist/bundle/update-CVHXLX72.js +0 -69
  111. /package/dist/bundle/{chunk-FEJOKQPV.js → chunk-TYQAAHHM.js} +0 -0
@@ -11,6 +11,7 @@ import {
11
11
  duplicates,
12
12
  integer,
13
13
  isoTime,
14
+ isoTimestamp,
14
15
  lazy,
15
16
  literal,
16
17
  maxValue,
@@ -23,12 +24,14 @@ import {
23
24
  pageSchema,
24
25
  picklist,
25
26
  pipe,
27
+ record,
26
28
  reference,
27
29
  safeParse,
28
30
  stepOf,
29
31
  strictObject,
30
32
  string,
31
33
  union,
34
+ unknown,
32
35
  variant
33
36
  } from "./chunk-SN63VOE6.js";
34
37
  import {
@@ -118,8 +121,8 @@ var dayBoundary = /* @__PURE__ */ __name((value, zone, next, span) => {
118
121
  day: "2-digit",
119
122
  era: "short"
120
123
  });
121
- const dayAt = /* @__PURE__ */ __name((time) => {
122
- const parts = formatter.formatToParts(time);
124
+ const dayAt = /* @__PURE__ */ __name((time2) => {
125
+ const parts = formatter.formatToParts(time2);
123
126
  const value2 = /* @__PURE__ */ __name((name) => Number(parts.find((p) => p.type === name)?.value), "value");
124
127
  const year = parts.find((p) => p.type === "era")?.value === "BC" ? 1 - value2("year") : value2("year");
125
128
  return year * 1e4 + value2("month") * 100 + value2("day");
@@ -175,11 +178,11 @@ var zonedMoment = /* @__PURE__ */ __name((value, zone, span, { end = false } = {
175
178
  return dayBoundary(value, zone, end, span) - (end ? 1 : 0);
176
179
  if (!ZONED.test(value))
177
180
  return wallTime(value, zone, span);
178
- const time = Date.parse(value);
179
- if (!/^\d{4}-\d{2}-\d{2}T/u.test(value) || !Number.isFinite(time))
181
+ const time2 = Date.parse(value);
182
+ if (!/^\d{4}-\d{2}-\d{2}T/u.test(value) || !Number.isFinite(time2))
180
183
  queryError("query.invalid-date", span);
181
184
  calendar(value.slice(0, 10), span);
182
- return time;
185
+ return time2;
183
186
  }, "zonedMoment");
184
187
  var AGO = /^(\d+)(m|h|d)$/u;
185
188
  var AGO_MS = { m: 6e4, h: 36e5, d: 864e5 };
@@ -213,10 +216,10 @@ var dateEndpoint = /* @__PURE__ */ __name((value, zone, side, inclusive, span, n
213
216
  if (!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?(?:Z|[+-]\d{2}:\d{2})$/u.test(value))
214
217
  queryError("query.invalid-date", span, "use an ISO date, today, yesterday, 30m/2h/7d ago, or a quoted timestamp with offset");
215
218
  calendar(value.slice(0, 10), span);
216
- const time = Date.parse(value);
217
- if (!Number.isFinite(time) || Number(value.slice(11, 13)) > 23 || Number(value.slice(14, 16)) > 59 || Number(value.slice(17, 19)) > 59)
219
+ const time2 = Date.parse(value);
220
+ if (!Number.isFinite(time2) || Number(value.slice(11, 13)) > 23 || Number(value.slice(14, 16)) > 59 || Number(value.slice(17, 19)) > 59)
218
221
  queryError("query.invalid-date", span);
219
- return { time, inclusive };
222
+ return { time: time2, inclusive };
220
223
  }, "dateEndpoint");
221
224
  var dateRange = /* @__PURE__ */ __name((lower, upper, lowerInclusive, upperInclusive, zone, span, now = Date.now()) => {
222
225
  const since = lower === upper && AGO.test(lower.toLowerCase());
@@ -389,13 +392,13 @@ var decodeEscapes = /* @__PURE__ */ __name((raw, span, fail) => {
389
392
  }
390
393
  return out;
391
394
  }, "decodeEscapes");
392
- var tokensOf = /* @__PURE__ */ __name((text5, fail = queryError) => {
395
+ var tokensOf = /* @__PURE__ */ __name((text6, fail = queryError) => {
393
396
  const tokens = [];
394
397
  let at = 0;
395
398
  let range = false;
396
- while (at < text5.length) {
399
+ while (at < text6.length) {
397
400
  const start = at;
398
- const c = text5[at] ?? "";
401
+ const c = text6[at] ?? "";
399
402
  if (whitespace(c)) {
400
403
  at++;
401
404
  continue;
@@ -403,30 +406,30 @@ var tokensOf = /* @__PURE__ */ __name((text5, fail = queryError) => {
403
406
  let kind = c;
404
407
  if (c === '"' || !range && c === "/") {
405
408
  at++;
406
- while (at < text5.length && text5[at] !== c) {
407
- if (text5[at] === "\\" && (c === '"' || text5[at + 1] === "/"))
409
+ while (at < text6.length && text6[at] !== c) {
410
+ if (text6[at] === "\\" && (c === '"' || text6[at + 1] === "/"))
408
411
  at++;
409
412
  at++;
410
413
  }
411
- if (at >= text5.length)
412
- fail("query.unclosed-literal", { start, end: at }, c === "/" ? regexHint(text5, start) : void 0);
414
+ if (at >= text6.length)
415
+ fail("query.unclosed-literal", { start, end: at }, c === "/" ? regexHint(text6, start) : void 0);
413
416
  at++;
414
- if (c === "/" && /^[dgimsuvy]+(?:$|[ \t\n\r)])/.test(text5.slice(at)))
417
+ if (c === "/" && /^[dgimsuvy]+(?:$|[ \t\n\r)])/.test(text6.slice(at)))
415
418
  fail("query.unsupported-regex-flags", { start: at, end: at + 1 }, "Lucene regex does not take JavaScript flags");
416
419
  kind = c === '"' ? "quoted" : "regex";
417
420
  } else if (range && c !== "]" && c !== "}") {
418
- while (at < text5.length && !whitespace(text5[at] ?? "") && !["]", "}"].includes(text5[at] ?? ""))
421
+ while (at < text6.length && !whitespace(text6[at] ?? "") && !["]", "}"].includes(text6[at] ?? ""))
419
422
  at++;
420
423
  kind = "rangeValue";
421
424
  } else if (reserved.has(c)) {
422
425
  if (c === "\\") {
423
426
  at += 2;
424
- while (at < text5.length && !whitespace(text5[at] ?? "") && (!reserved.has(text5[at] ?? "") || ["+", "-"].includes(text5[at] ?? "")))
427
+ while (at < text6.length && !whitespace(text6[at] ?? "") && (!reserved.has(text6[at] ?? "") || ["+", "-"].includes(text6[at] ?? "")))
425
428
  at++;
426
429
  kind = "term";
427
430
  } else {
428
431
  at++;
429
- if ((c === "<" || c === ">") && text5[at] === "=") {
432
+ if ((c === "<" || c === ">") && text6[at] === "=") {
430
433
  at++;
431
434
  kind += "=";
432
435
  }
@@ -437,15 +440,15 @@ var tokensOf = /* @__PURE__ */ __name((text5, fail = queryError) => {
437
440
  }
438
441
  } else {
439
442
  at++;
440
- while (at < text5.length) {
441
- const next = text5[at] ?? "";
443
+ while (at < text6.length) {
444
+ const next = text6[at] ?? "";
442
445
  if (next === "\\") {
443
- if (at + 1 >= text5.length)
446
+ if (at + 1 >= text6.length)
444
447
  fail("query.invalid-escape", { start: at, end: at + 1 });
445
448
  at += 2;
446
449
  continue;
447
450
  }
448
- if (next === "@" && new RegExp("^@(?:\\p{L}|[\\p{L}\\p{N}][^\\s@]*\\.[\\p{L}\\p{N}])", "u").test(text5.slice(at))) {
451
+ if (next === "@" && new RegExp("^@(?:\\p{L}|[\\p{L}\\p{N}][^\\s@]*\\.[\\p{L}\\p{N}])", "u").test(text6.slice(at))) {
449
452
  at++;
450
453
  continue;
451
454
  }
@@ -454,19 +457,19 @@ var tokensOf = /* @__PURE__ */ __name((text5, fail = queryError) => {
454
457
  at++;
455
458
  }
456
459
  const [field, colon] = tokens.slice(-2);
457
- if (field?.kind === "term" && colon?.kind === ":" && colon.span.end === start && text5[at] === ":" && /^[a-z][a-z_-]*$/u.test(text5.slice(start, at)) && /^:[^\s()"]/u.test(text5.slice(at)))
458
- while (at < text5.length && !whitespace(text5[at] ?? "") && !["(", ")", '"'].includes(text5[at] ?? ""))
460
+ 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)))
461
+ while (at < text6.length && !whitespace(text6[at] ?? "") && !["(", ")", '"'].includes(text6[at] ?? ""))
459
462
  at++;
460
- const raw = text5.slice(start, at);
463
+ const raw = text6.slice(start, at);
461
464
  kind = { AND: "AND", OR: "OR", NOT: "NOT", "&&": "AND", "||": "OR" }[raw] ?? (/^\d+(?:\.\d+)?$/u.test(raw) ? "number" : "term");
462
465
  }
463
- tokens.push({ kind, raw: text5.slice(start, at), span: { start, end: at } });
466
+ tokens.push({ kind, raw: text6.slice(start, at), span: { start, end: at } });
464
467
  }
465
468
  tokens.push({ kind: "EOF", raw: "", span: { start: at, end: at } });
466
469
  return tokens;
467
470
  }, "tokensOf");
468
- var quoteHint = /* @__PURE__ */ __name((text5, at) => {
469
- for (const match of text5.matchAll(/(?<=^|[\s(])([\p{L}\p{N}_.-]+):([^\s"()]+)/gu)) {
471
+ var quoteHint = /* @__PURE__ */ __name((text6, at) => {
472
+ for (const match of text6.matchAll(/(?<=^|[\s(])([\p{L}\p{N}_.-]+):([^\s"()]+)/gu)) {
470
473
  const [whole, field, value = ""] = match;
471
474
  if (at < match.index || at > match.index + whole.length)
472
475
  continue;
@@ -474,17 +477,17 @@ var quoteHint = /* @__PURE__ */ __name((text5, at) => {
474
477
  }
475
478
  return void 0;
476
479
  }, "quoteHint");
477
- var regexHint = /* @__PURE__ */ __name((text5, at) => {
478
- const word = `${/[^\s()"]*$/u.exec(text5.slice(0, at))?.[0] ?? ""}${/^[^\s()"]*/u.exec(text5.slice(at))?.[0] ?? ""}`;
479
- return quoteHint(text5, at) ?? `/ starts a regular expression; put the value in quotes: "${word}"`;
480
+ var regexHint = /* @__PURE__ */ __name((text6, at) => {
481
+ const word = `${/[^\s()"]*$/u.exec(text6.slice(0, at))?.[0] ?? ""}${/^[^\s()"]*/u.exec(text6.slice(at))?.[0] ?? ""}`;
482
+ return quoteHint(text6, at) ?? `/ starts a regular expression; put the value in quotes: "${word}"`;
480
483
  }, "regexHint");
481
- var parseLucene = /* @__PURE__ */ __name((text5, { defaultField = "text", proximity = false, ...context3 } = {}) => {
482
- const fail = /* @__PURE__ */ __name((reason, span, alternative) => queryError(reason, span, alternative ?? quoteHint(text5, span.start), context3), "fail");
483
- if (text5.length > QUERY_LIMITS.bytes || new TextEncoder().encode(text5).length > QUERY_LIMITS.bytes)
484
- fail("query.too-large", { start: 0, end: text5.length });
485
- const tokens = tokensOf(text5, fail);
484
+ var parseLucene = /* @__PURE__ */ __name((text6, { defaultField = "text", proximity = false, ...context3 } = {}) => {
485
+ const fail = /* @__PURE__ */ __name((reason, span, alternative) => queryError(reason, span, alternative ?? quoteHint(text6, span.start), context3), "fail");
486
+ if (text6.length > QUERY_LIMITS.bytes || new TextEncoder().encode(text6).length > QUERY_LIMITS.bytes)
487
+ fail("query.too-large", { start: 0, end: text6.length });
488
+ const tokens = tokensOf(text6, fail);
486
489
  let at = 0;
487
- let count6 = 0;
490
+ let count7 = 0;
488
491
  let depth = 0;
489
492
  const peek = /* @__PURE__ */ __name(() => tokens[at], "peek");
490
493
  const take = /* @__PURE__ */ __name(() => tokens[at++], "take");
@@ -494,7 +497,7 @@ var parseLucene = /* @__PURE__ */ __name((text5, { defaultField = "text", proxim
494
497
  return take();
495
498
  }, "expect");
496
499
  const built = /* @__PURE__ */ __name((node) => {
497
- if (++count6 > QUERY_LIMITS.nodes)
500
+ if (++count7 > QUERY_LIMITS.nodes)
498
501
  fail("query.too-large", node.span);
499
502
  return node;
500
503
  }, "built");
@@ -648,8 +651,8 @@ var parseLucene = /* @__PURE__ */ __name((text5, { defaultField = "text", proxim
648
651
  }
649
652
  return { version: 1, language: "lucene-v1", root };
650
653
  }, "parseLucene");
651
- var implicitTextTerms = /* @__PURE__ */ __name((text5) => {
652
- const tokens = tokensOf(text5);
654
+ var implicitTextTerms = /* @__PURE__ */ __name((text6) => {
655
+ const tokens = tokensOf(text6);
653
656
  if (tokens.some(({ kind }) => ["AND", "OR", "NOT", "+", "-", "!", "(", ")"].includes(kind)))
654
657
  return /* @__PURE__ */ new Set();
655
658
  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] : []));
@@ -739,14 +742,14 @@ var describeQuery = /* @__PURE__ */ __name((registry) => ({
739
742
  }), "describeQuery");
740
743
  var exampleProblems = /* @__PURE__ */ __name((registry) => {
741
744
  const syntaxOnly = { ...registry, backend: "sql" };
742
- const problem = /* @__PURE__ */ __name((text5, field) => {
745
+ const problem = /* @__PURE__ */ __name((text6, field) => {
743
746
  try {
744
- const named = walkQuery(validateQuery(parseLucene(text5, { defaultField: "none" }), syntaxOnly).root);
745
- return named.every((node) => node.field === field) ? void 0 : `"${text5}" does not name ${field}`;
747
+ const named = walkQuery(validateQuery(parseLucene(text6, { defaultField: "none" }), syntaxOnly).root);
748
+ return named.every((node) => node.field === field) ? void 0 : `"${text6}" does not name ${field}`;
746
749
  } catch (failure) {
747
750
  if (!isCliError(failure))
748
751
  throw failure;
749
- return `"${text5}": ${failure.message}`;
752
+ return `"${text6}": ${failure.message}`;
750
753
  }
751
754
  }, "problem");
752
755
  const defaults = (registry.defaults ?? []).map((term) => {
@@ -802,7 +805,7 @@ var QUERY_REASONS = defineReasons([
802
805
  })));
803
806
 
804
807
  // node_modules/.pnpm/@wirecat+cli-base@0.78.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
805
- var wordsOf = /* @__PURE__ */ __name((text5) => text5.toLowerCase().match(/[\p{L}\p{N}]+/gu) ?? [], "wordsOf");
808
+ var wordsOf = /* @__PURE__ */ __name((text6) => text6.toLowerCase().match(/[\p{L}\p{N}]+/gu) ?? [], "wordsOf");
806
809
  var pattern = /* @__PURE__ */ __name((value) => new RegExp(`^${[...value].map((char) => char === "*" ? ".*" : char === "?" ? "." : char.replace(/[.+^${}()|[\]\\]/, "\\$&")).join("")}$`, "iu"), "pattern");
807
810
  var present = /* @__PURE__ */ __name((value) => value !== void 0 && value !== null && value !== "", "present");
808
811
  var matchOne = /* @__PURE__ */ __name((field, node, value, options) => {
@@ -810,10 +813,10 @@ var matchOne = /* @__PURE__ */ __name((field, node, value, options) => {
810
813
  return false;
811
814
  if (node.operator === "wildcard" && node.value === "*")
812
815
  return true;
813
- const text5 = String(value);
816
+ const text6 = String(value);
814
817
  switch (field.type) {
815
818
  case "txt": {
816
- const words2 = wordsOf(text5);
819
+ const words2 = wordsOf(text6);
817
820
  if (node.operator === "wildcard")
818
821
  return words2.some((word) => pattern(node.value).test(word));
819
822
  const wanted = wordsOf(node.value);
@@ -827,13 +830,13 @@ var matchOne = /* @__PURE__ */ __name((field, node, value, options) => {
827
830
  return (lower === "*" || (lowerInclusive ? number2 >= Number(lower) : number2 > Number(lower))) && (upper === "*" || (upperInclusive ? number2 <= Number(upper) : number2 < Number(upper)));
828
831
  }
829
832
  case "time": {
830
- const time = Date.parse(text5);
833
+ const time2 = Date.parse(text6);
831
834
  const [lower, upper, lowerInclusive, upperInclusive] = node.operator === "range" ? [node.value, node.upper ?? "*", node.lower_inclusive ?? true, node.upper_inclusive ?? true] : [node.value, node.value, true, true];
832
835
  const range = dateRange(lower, upper, lowerInclusive, upperInclusive, options.zone ?? "UTC", node.span, options.now);
833
- return (range.lower === void 0 || (range.lower_inclusive ? time >= range.lower : time > range.lower)) && (range.upper === void 0 || (range.upper_inclusive ? time <= range.upper : time < range.upper));
836
+ return (range.lower === void 0 || (range.lower_inclusive ? time2 >= range.lower : time2 > range.lower)) && (range.upper === void 0 || (range.upper_inclusive ? time2 <= range.upper : time2 < range.upper));
834
837
  }
835
838
  default:
836
- return node.operator === "wildcard" ? pattern(node.value).test(text5) : text5.toLowerCase() === node.value.toLowerCase();
839
+ return node.operator === "wildcard" ? pattern(node.value).test(text6) : text6.toLowerCase() === node.value.toLowerCase();
837
840
  }
838
841
  }, "matchOne");
839
842
  var matches = /* @__PURE__ */ __name((node, item, byName, options) => {
@@ -856,7 +859,7 @@ var matches = /* @__PURE__ */ __name((node, item, byName, options) => {
856
859
  }, "matches");
857
860
  var evaluate = /* @__PURE__ */ __name((ast, fields, item, options = {}) => matches(ast.root, item, new Map(fields.map((field) => [field.name, field])), options), "evaluate");
858
861
 
859
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/reference.js
862
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/reference.js
860
863
  var invalid = /* @__PURE__ */ __name(() => new CliError("validation_error", "expected meeting:<accountId>/<meetingId>[/<transcriptId>[/<cuePosition>]] with safe integer IDs"), "invalid");
861
864
  var integer2 = /* @__PURE__ */ __name((value, minimum = 1) => {
862
865
  if (!Number.isSafeInteger(value) || value < minimum)
@@ -874,8 +877,8 @@ var formatMeetingReference = /* @__PURE__ */ __name((reference2) => {
874
877
  }
875
878
  return `meeting:${parts.join("/")}`;
876
879
  }, "formatMeetingReference");
877
- var parseMeetingReference = /* @__PURE__ */ __name((text5) => {
878
- const value = text5.trim();
880
+ var parseMeetingReference = /* @__PURE__ */ __name((text6) => {
881
+ const value = text6.trim();
879
882
  if (!value.startsWith("meeting:"))
880
883
  throw invalid();
881
884
  const parts = value.slice(8).split("/");
@@ -891,9 +894,9 @@ var parseMeetingReference = /* @__PURE__ */ __name((text5) => {
891
894
  };
892
895
  return reference2;
893
896
  }, "parseMeetingReference");
894
- var canonicalMeetingReference = /* @__PURE__ */ __name((text5) => formatMeetingReference(parseMeetingReference(text5)), "canonicalMeetingReference");
897
+ var canonicalMeetingReference = /* @__PURE__ */ __name((text6) => formatMeetingReference(parseMeetingReference(text6)), "canonicalMeetingReference");
895
898
 
896
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/item.js
899
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/item.js
897
900
  var text = string();
898
901
  var count = pipe(number(), integer(), minValue(0));
899
902
  var MEETING_ISSUES = ["time_without_zone"];
@@ -958,7 +961,7 @@ var MEETING_QUERY = {
958
961
  })
959
962
  };
960
963
 
961
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/join-key.js
964
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/join-key.js
962
965
  var joinKeyOf = /* @__PURE__ */ __name((url) => {
963
966
  const parsed = urlOf(url);
964
967
  if (!parsed)
@@ -992,15 +995,15 @@ var urlOf = /* @__PURE__ */ __name((url) => {
992
995
  }
993
996
  }, "urlOf");
994
997
 
995
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/calendar-text.js
998
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/calendar-text.js
996
999
  var ENTITIES = { amp: "&", lt: "<", gt: ">", quot: '"', "#39": "'", apos: "'", nbsp: " " };
997
1000
  var SECRET_LINE = /(?<![\p{L}\p{N}])(pass ?codes?|passwords?|pwd|pins?|access ?codes?|meeting ?codes?|kennwort|пароль|пин-?код|код доступа)(?![\p{L}\p{N}])|pwd=/iu;
998
1001
  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");
999
- var withoutLinkQueries = /* @__PURE__ */ __name((text5) => text5.replace(/https?:\/\/[^\s<>"')\]]+/giu, (url) => joinUrlWithoutQuery(url) ?? ""), "withoutLinkQueries");
1000
- var calendarText = /* @__PURE__ */ __name((text5, { dropSecretLines = true } = {}) => {
1001
- if (!text5)
1002
+ var withoutLinkQueries = /* @__PURE__ */ __name((text6) => text6.replace(/https?:\/\/[^\s<>"')\]]+/giu, (url) => joinUrlWithoutQuery(url) ?? ""), "withoutLinkQueries");
1003
+ var calendarText = /* @__PURE__ */ __name((text6, { dropSecretLines = true } = {}) => {
1004
+ if (!text6)
1002
1005
  return null;
1003
- const kept = htmlToText(text5).split(/\r?\n/u).map((line2) => withoutLinkQueries(line2).replace(/[ \t]+/gu, " ").trim()).filter((line2) => !dropSecretLines || !SECRET_LINE.test(line2));
1006
+ const kept = htmlToText(text6).split(/\r?\n/u).map((line2) => withoutLinkQueries(line2).replace(/[ \t]+/gu, " ").trim()).filter((line2) => !dropSecretLines || !SECRET_LINE.test(line2));
1004
1007
  const joined = kept.join("\n").replace(/\n{3,}/gu, "\n\n").trim();
1005
1008
  return joined || null;
1006
1009
  }, "calendarText");
@@ -1025,7 +1028,7 @@ var entryMetadata = /* @__PURE__ */ __name((metadata) => {
1025
1028
  return kept;
1026
1029
  }, "entryMetadata");
1027
1030
 
1028
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/cue-fingerprint.js
1031
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/cue-fingerprint.js
1029
1032
  import { createHash } from "node:crypto";
1030
1033
  var meetingCueFingerprint = /* @__PURE__ */ __name((cue2) => createHash("sha256").update(JSON.stringify({
1031
1034
  reference: cue2.reference,
@@ -1039,7 +1042,7 @@ var meetingCueFingerprint = /* @__PURE__ */ __name((cue2) => createHash("sha256"
1039
1042
  text: cue2.text
1040
1043
  })).digest("hex"), "meetingCueFingerprint");
1041
1044
 
1042
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/event-store.js
1045
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/event-store.js
1043
1046
  var UNTIL = /(?:^|;)UNTIL=(\d{4})(\d{2})(\d{2})(?:T(\d{2})(\d{2})(\d{2})Z?)?(?:;|$)/iu;
1044
1047
  var seriesEnd = /* @__PURE__ */ __name((entry) => {
1045
1048
  if (entry.recurrenceEndsAt !== null)
@@ -1062,7 +1065,7 @@ var entryInWindow = /* @__PURE__ */ __name((entry, window) => {
1062
1065
  return Math.max(entry.endsAt ?? start, start + 1) > window.from;
1063
1066
  }, "entryInWindow");
1064
1067
 
1065
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/answers.js
1068
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/answers.js
1066
1069
  var text2 = string();
1067
1070
  var count2 = pipe(number(), integer(), minValue(0));
1068
1071
  var iso2 = /* @__PURE__ */ __name((ms) => ms === null ? null : new Date(ms).toISOString(), "iso");
@@ -1176,7 +1179,7 @@ var meetingSummaryItem = /* @__PURE__ */ __name((accountId, summary) => ({
1176
1179
  source: summary.source,
1177
1180
  title: summary.title,
1178
1181
  overview: summary.overview,
1179
- sections: summary.sections.map(({ label, text: text5 }) => ({ label, text: text5 })),
1182
+ sections: summary.sections.map(({ label, text: text6 }) => ({ label, text: text6 })),
1180
1183
  next_steps: summary.nextSteps,
1181
1184
  content: summary.content,
1182
1185
  url: summary.docUrl,
@@ -1297,8 +1300,8 @@ var meetingHitsList = /* @__PURE__ */ __name((found, limit, command = "search me
1297
1300
  };
1298
1301
  }, "meetingHitsList");
1299
1302
 
1300
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/participant-search.js
1301
- var normalizeMeetingParticipantQuery = /* @__PURE__ */ __name((text5) => text5.normalize("NFKC").toLowerCase(), "normalizeMeetingParticipantQuery");
1303
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/participant-search.js
1304
+ var normalizeMeetingParticipantQuery = /* @__PURE__ */ __name((text6) => text6.normalize("NFKC").toLowerCase(), "normalizeMeetingParticipantQuery");
1302
1305
  var validateMeetingParticipantQuery = /* @__PURE__ */ __name((query) => {
1303
1306
  if (typeof query !== "string" || !query.trim() || query.length > 500 || query.includes("\0"))
1304
1307
  throw new CliError("validation_error", "participant query must contain 1\u2013500 characters without NUL");
@@ -1321,7 +1324,7 @@ var validateMeetingParticipantSearch = /* @__PURE__ */ __name((query, input) =>
1321
1324
  };
1322
1325
  }, "validateMeetingParticipantSearch");
1323
1326
 
1324
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/reads.js
1327
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/reads.js
1325
1328
  var MeetingError = class extends CliError {
1326
1329
  static {
1327
1330
  __name(this, "MeetingError");
@@ -1348,8 +1351,8 @@ var validateFilter = /* @__PURE__ */ __name((filter) => {
1348
1351
  if (value !== void 0 && (!Number.isSafeInteger(value) || value < 0))
1349
1352
  throw new MeetingError("validation_error", "expected a nonnegative integer");
1350
1353
  }, "validateFilter");
1351
- var meetingShow = /* @__PURE__ */ __name(async (store, id3, accountId) => {
1352
- const details = await store.meeting(positiveInteger(id3));
1354
+ var meetingShow = /* @__PURE__ */ __name(async (store, id4, accountId) => {
1355
+ const details = await store.meeting(positiveInteger(id4));
1353
1356
  if (!details || accountId !== void 0 && details.meeting.accountId !== accountId)
1354
1357
  throw new MeetingError("not_found", "meeting not found");
1355
1358
  return details;
@@ -1425,11 +1428,11 @@ var meetingsList = /* @__PURE__ */ __name(async (store, filter = {}, page = 1) =
1425
1428
  } : {}
1426
1429
  };
1427
1430
  }, "meetingsList");
1428
- var meetingsQuery = /* @__PURE__ */ __name((text5) => {
1429
- if (text5 === void 0 || text5.trim() === "")
1431
+ var meetingsQuery = /* @__PURE__ */ __name((text6) => {
1432
+ if (text6 === void 0 || text6.trim() === "")
1430
1433
  return void 0;
1431
1434
  const context3 = { command: "meetings list", guide: MEETING_QUERY_GUIDE };
1432
- const query = parseLucene(text5, { defaultField: "none", ...context3 });
1435
+ const query = parseLucene(text6, { defaultField: "none", ...context3 });
1433
1436
  validateQuery(query, MEETING_QUERY, context3);
1434
1437
  return query;
1435
1438
  }, "meetingsQuery");
@@ -1440,20 +1443,20 @@ var ownerOf = /* @__PURE__ */ __name(async (store, accountId) => {
1440
1443
  throw new MeetingError("not_found", `meeting account ${accountId} is not in the store`);
1441
1444
  return owner;
1442
1445
  }, "ownerOf");
1443
- var meetingDetailsAnswer = /* @__PURE__ */ __name(async (store, id3, accountId) => {
1444
- const details = await meetingShow(store, id3, accountId);
1446
+ var meetingDetailsAnswer = /* @__PURE__ */ __name(async (store, id4, accountId) => {
1447
+ const details = await meetingShow(store, id4, accountId);
1445
1448
  return { item: meetingDetailsItem(details, await ownerOf(store, details.meeting.accountId)) };
1446
1449
  }, "meetingDetailsAnswer");
1447
- var meetingTranscriptAnswer = /* @__PURE__ */ __name(async (store, id3, accountId, options = {}) => {
1448
- const details = await meetingShow(store, id3, accountId);
1450
+ var meetingTranscriptAnswer = /* @__PURE__ */ __name(async (store, id4, accountId, options = {}) => {
1451
+ const details = await meetingShow(store, id4, accountId);
1449
1452
  return wholeList(details.transcripts.filter((t) => (options.history || t.transcript.supersededAt === null) && t.transcript.deletedAt === null).map((t) => meetingTranscriptItem(details.meeting.accountId, t.transcript, t.rows)));
1450
1453
  }, "meetingTranscriptAnswer");
1451
- var meetingSummaryAnswer = /* @__PURE__ */ __name(async (store, id3, accountId) => {
1452
- const details = await meetingShow(store, id3, accountId);
1454
+ var meetingSummaryAnswer = /* @__PURE__ */ __name(async (store, id4, accountId) => {
1455
+ const details = await meetingShow(store, id4, accountId);
1453
1456
  return wholeList(details.summaries.map((one) => meetingSummaryItem(details.meeting.accountId, one)));
1454
1457
  }, "meetingSummaryAnswer");
1455
1458
 
1456
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/export.js
1459
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/export.js
1457
1460
  var timestamp = /* @__PURE__ */ __name((milliseconds) => {
1458
1461
  if (!Number.isSafeInteger(milliseconds) || milliseconds < 0)
1459
1462
  throw new MeetingError("validation_error", "transcript times must be nonnegative integer milliseconds");
@@ -1462,10 +1465,10 @@ var timestamp = /* @__PURE__ */ __name((milliseconds) => {
1462
1465
  const seconds = Math.floor(milliseconds % 6e4 / 1e3);
1463
1466
  return `${String(hours).padStart(2, "0")}:${String(minutes).padStart(2, "0")}:${String(seconds).padStart(2, "0")}.${String(milliseconds % 1e3).padStart(3, "0")}`;
1464
1467
  }, "timestamp");
1465
- var vttText = /* @__PURE__ */ __name((text5) => {
1466
- if (visibleControls(text5) !== text5 || /\n\s*\n/.test(text5))
1468
+ var vttText = /* @__PURE__ */ __name((text6) => {
1469
+ if (visibleControls(text6) !== text6 || /\n\s*\n/.test(text6))
1467
1470
  throw new MeetingError("validation_error", "cue paragraphs or control characters require Markdown export");
1468
- return text5.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;");
1471
+ return text6.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;");
1469
1472
  }, "vttText");
1470
1473
  var serializeVtt = /* @__PURE__ */ __name((lines) => `WEBVTT
1471
1474
 
@@ -1483,9 +1486,9 @@ ${speaker}${vttText(line2.text)}
1483
1486
 
1484
1487
  `;
1485
1488
  }).join("")}`, "serializeVtt");
1486
- var markdown = /* @__PURE__ */ __name((text5) => visibleControls(text5).replace(/[\\`*_{}[\]()<>#+.!|~]/g, "\\$&"), "markdown");
1487
- var heading = /* @__PURE__ */ __name((text5) => markdown(singleLine(text5)), "heading");
1488
- var quote = /* @__PURE__ */ __name((text5) => markdown(text5).split(/\r\n|\r|\n/).map((line2) => `> ${line2}`).join("\n"), "quote");
1489
+ var markdown = /* @__PURE__ */ __name((text6) => visibleControls(text6).replace(/[\\`*_{}[\]()<>#+.!|~]/g, "\\$&"), "markdown");
1490
+ var heading = /* @__PURE__ */ __name((text6) => markdown(singleLine(text6)), "heading");
1491
+ var quote = /* @__PURE__ */ __name((text6) => markdown(text6).split(/\r\n|\r|\n/).map((line2) => `> ${line2}`).join("\n"), "quote");
1489
1492
  var transcriptsOf = /* @__PURE__ */ __name((details, transcriptId) => {
1490
1493
  if (transcriptId !== void 0) {
1491
1494
  positiveInteger(transcriptId);
@@ -1496,10 +1499,10 @@ var transcriptsOf = /* @__PURE__ */ __name((details, transcriptId) => {
1496
1499
  }
1497
1500
  return details.transcripts.filter((part) => part.transcript.supersededAt === null && part.transcript.deletedAt === null);
1498
1501
  }, "transcriptsOf");
1499
- var exportMeeting = /* @__PURE__ */ __name(async (store, id3, options) => {
1502
+ var exportMeeting = /* @__PURE__ */ __name(async (store, id4, options) => {
1500
1503
  if (options.format !== "markdown" && options.format !== "vtt")
1501
1504
  throw new MeetingError("validation_error", "export format must be markdown or vtt");
1502
- const details = await meetingShow(store, id3, options.accountId);
1505
+ const details = await meetingShow(store, id4, options.accountId);
1503
1506
  const transcripts = transcriptsOf(details, options.transcriptId);
1504
1507
  let content;
1505
1508
  if (options.format === "vtt") {
@@ -1549,7 +1552,7 @@ var exportMeeting = /* @__PURE__ */ __name(async (store, id3, options) => {
1549
1552
  };
1550
1553
  }, "exportMeeting");
1551
1554
 
1552
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/payment.js
1555
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/payment.js
1553
1556
  var FACT_TYPES = ["fact", "statement", "question", "decision", "promise"];
1554
1557
  var PAYMENT_DIRECTIONS = ["to_us", "from_us"];
1555
1558
  var PAYMENT_STATES = ["expected", "paid", "cancelled"];
@@ -1601,9 +1604,9 @@ var validatePayment = /* @__PURE__ */ __name((input) => {
1601
1604
  if (!input || typeof input !== "object" || Array.isArray(input))
1602
1605
  return invalid2("a payment is an object");
1603
1606
  const raw = input;
1604
- const unknown = Object.keys(raw).filter((key) => !FIELDS.includes(key));
1605
- if (unknown.length)
1606
- return invalid2(`a payment has no field ${unknown.join(", ")}; its fields are ${FIELDS.join(", ")}`);
1607
+ const unknown2 = Object.keys(raw).filter((key) => !FIELDS.includes(key));
1608
+ if (unknown2.length)
1609
+ return invalid2(`a payment has no field ${unknown2.join(", ")}; its fields are ${FIELDS.join(", ")}`);
1607
1610
  const currency = typeof raw.currency === "string" ? raw.currency.trim().toUpperCase() : "";
1608
1611
  if (!/^[A-Z]{3}$/.test(currency) || !CURRENCIES.has(currency))
1609
1612
  return invalid2("a payment's currency is an ISO 4217 code, such as EUR or RUB");
@@ -1643,10 +1646,10 @@ var paymentTitle = /* @__PURE__ */ __name((fact) => {
1643
1646
  return `${grouped(payment.amount)} ${payment.currency} ${way}${party}${item}${due} (${payment.state})`;
1644
1647
  }, "paymentTitle");
1645
1648
 
1646
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/findings-rules.js
1649
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/findings-rules.js
1647
1650
  import { createHash as createHash2 } from "node:crypto";
1648
1651
 
1649
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/timestamp.js
1652
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/timestamp.js
1650
1653
  var meetingTimestamp = /* @__PURE__ */ __name((value, name) => {
1651
1654
  if (typeof value !== "string" || !/^\d{4}-\d{2}-\d{2}T.+(?:Z|[+-]\d{2}:\d{2})$/i.test(value) || !Number.isFinite(Date.parse(value)))
1652
1655
  throw new CliError("validation_error", `${name} must be an ISO timestamp with a timezone`);
@@ -1657,7 +1660,7 @@ var meetingTimestamp = /* @__PURE__ */ __name((value, name) => {
1657
1660
  return new Date(value).toISOString();
1658
1661
  }, "meetingTimestamp");
1659
1662
 
1660
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/findings-rules.js
1663
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/findings-rules.js
1661
1664
  var TASK_TYPES = ["bug", "feature", "chore"];
1662
1665
  var invalid3 = /* @__PURE__ */ __name((message) => {
1663
1666
  throw new CliError("validation_error", message);
@@ -1670,19 +1673,19 @@ var findingText = /* @__PURE__ */ __name((value, limit) => {
1670
1673
  var findingHash = /* @__PURE__ */ __name((value) => createHash2("sha256").update(JSON.stringify(value)).digest("hex"), "findingHash");
1671
1674
  var snakeCase = /* @__PURE__ */ __name((key) => key.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`), "snakeCase");
1672
1675
  var findingFields = /* @__PURE__ */ __name((value, allowed, noun, of = value) => {
1673
- const unknown = Object.keys(value).filter((key) => !allowed.includes(key));
1674
- if (!unknown.length)
1676
+ const unknown2 = Object.keys(value).filter((key) => !allowed.includes(key));
1677
+ if (!unknown2.length)
1675
1678
  return;
1676
- const fields = unknown.map(snakeCase);
1679
+ const fields = unknown2.map(snakeCase);
1677
1680
  const takes = allowed.map(snakeCase);
1678
- const id3 = typeof of.id === "string" ? of.id : null;
1681
+ const id4 = typeof of.id === "string" ? of.id : null;
1679
1682
  const kind = typeof of.kind === "string" ? of.kind : null;
1680
- const where = id3 || kind ? ` in ${[id3, kind && `(${kind})`].filter(Boolean).join(" ")}` : "";
1683
+ const where = id4 || kind ? ` in ${[id4, kind && `(${kind})`].filter(Boolean).join(" ")}` : "";
1681
1684
  throw new CliError("validation_error", `unknown ${noun} field${fields.length > 1 ? "s" : ""} ${fields.join(", ")}${where}; it takes ${takes.join(", ")}`, {
1682
1685
  reason: "finding.unknown-field",
1683
1686
  fields,
1684
1687
  allowed: takes,
1685
- ...id3 ? { finding: id3 } : {},
1688
+ ...id4 ? { finding: id4 } : {},
1686
1689
  ...kind ? { kind } : {}
1687
1690
  });
1688
1691
  }, "findingFields");
@@ -1706,27 +1709,27 @@ var validEvidence = /* @__PURE__ */ __name((raw, rules) => {
1706
1709
  return evidence;
1707
1710
  }, "validEvidence");
1708
1711
  var findingId = /* @__PURE__ */ __name((raw, ids2) => {
1709
- const id3 = findingText(raw, 64);
1710
- if (!/^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$/.test(id3) || ids2.has(id3))
1712
+ const id4 = findingText(raw, 64);
1713
+ if (!/^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$/.test(id4) || ids2.has(id4))
1711
1714
  return invalid3("finding IDs must be unique simple keys");
1712
- ids2.add(id3);
1713
- return id3;
1715
+ ids2.add(id4);
1716
+ return id4;
1714
1717
  }, "findingId");
1715
1718
  var validateFinding = /* @__PURE__ */ __name((finding, rules, ids2) => {
1716
1719
  if (!finding || typeof finding !== "object")
1717
1720
  return invalid3("a finding is an object");
1718
- const id3 = findingId(finding.id, ids2);
1719
- const project = finding.project === void 0 && rules.anySubject ? void 0 : findingText(finding.project, 64);
1720
- if (project !== void 0 && !/^project:[1-9]\d*$/.test(project))
1721
+ const id4 = findingId(finding.id, ids2);
1722
+ const project2 = finding.project === void 0 && rules.anySubject ? void 0 : findingText(finding.project, 64);
1723
+ if (project2 !== void 0 && !/^project:[1-9]\d*$/.test(project2))
1721
1724
  return invalid3("a finding names a project reference");
1722
1725
  if (finding.subject !== void 0 && (!rules.anySubject || !SUBJECT.test(findingText(finding.subject, 80))))
1723
1726
  return invalid3("a finding's subject is a person:, organization:, task: or project: reference");
1724
- if (finding.kind === "task" && project === void 0 && !rules.inboxTasks)
1727
+ if (finding.kind === "task" && project2 === void 0 && !rules.inboxTasks)
1725
1728
  return invalid3("a task finding names the project the task goes in");
1726
1729
  const evidence = validEvidence(finding.evidence, rules);
1727
1730
  const base = {
1728
- id: id3,
1729
- ...project === void 0 ? {} : { project },
1731
+ id: id4,
1732
+ ...project2 === void 0 ? {} : { project: project2 },
1730
1733
  ...finding.subject === void 0 ? {} : { subject: finding.subject },
1731
1734
  evidence
1732
1735
  };
@@ -1816,7 +1819,7 @@ var validateBatch = /* @__PURE__ */ __name((input, rules, most, one) => {
1816
1819
  var validateFindings = /* @__PURE__ */ __name((input, rules) => validateBatch(input, rules, 16, (finding, ids2) => validateFinding(finding, rules, ids2)), "validateFindings");
1817
1820
  var findingFingerprint = /* @__PURE__ */ __name(({ id: _id, ...finding }) => findingHash(finding), "findingFingerprint");
1818
1821
 
1819
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/findings.js
1822
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/findings.js
1820
1823
  var MEETING_FINDINGS_KIND = "meeting_findings";
1821
1824
  var cue = /* @__PURE__ */ __name((raw) => {
1822
1825
  const reference2 = canonicalMeetingReference(raw);
@@ -1827,7 +1830,7 @@ var cue = /* @__PURE__ */ __name((raw) => {
1827
1830
  var validateMeetingFindings = /* @__PURE__ */ __name((input) => validateFindings(input, { plural: "meeting findings", singular: "meeting finding", cited: "cue", reference: cue }), "validateMeetingFindings");
1828
1831
  var meetingFindingFingerprint = findingFingerprint;
1829
1832
 
1830
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/result-items.js
1833
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/result-items.js
1831
1834
  var text3 = string();
1832
1835
  var identifier = pipe(text3, minLength(1));
1833
1836
  var nullableText = nullable(text3);
@@ -1960,7 +1963,7 @@ var MEETING_RESULT_ENTITIES = {
1960
1963
  meeting_repair: repair
1961
1964
  };
1962
1965
 
1963
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/event-query.js
1966
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/event-query.js
1964
1967
  var EVENT_QUERY = defineQuery({
1965
1968
  entity: "event",
1966
1969
  backend: "sql",
@@ -1976,7 +1979,7 @@ var EVENT_QUERY = defineQuery({
1976
1979
  ]
1977
1980
  });
1978
1981
 
1979
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/events.js
1982
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/events.js
1980
1983
  var linkEvent = /* @__PURE__ */ __name(async (store, details, now = Date.now()) => {
1981
1984
  const current = await store.meeting(details.meeting.id);
1982
1985
  if (!current)
@@ -1991,7 +1994,7 @@ var linkEvent = /* @__PURE__ */ __name(async (store, details, now = Date.now())
1991
1994
  endsAt: meeting2.endedAt ?? meeting2.startedAt
1992
1995
  });
1993
1996
  if (candidates.length > 1) {
1994
- await store.reviewMeetingLink?.(meeting2.id, candidates.map(({ id: id3 }) => id3), now);
1997
+ await store.reviewMeetingLink?.(meeting2.id, candidates.map(({ id: id4 }) => id4), now);
1995
1998
  return null;
1996
1999
  }
1997
2000
  let event2 = candidates[0];
@@ -2019,7 +2022,7 @@ var linkEvent = /* @__PURE__ */ __name(async (store, details, now = Date.now())
2019
2022
  return (await store.events()).find((e) => e.id === linked?.meeting.eventId) ?? null;
2020
2023
  }, "linkEvent");
2021
2024
 
2022
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/hit-query.js
2025
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/hit-query.js
2023
2026
  var context = {
2024
2027
  command: "search meetings",
2025
2028
  guide: "https://github.com/WireCatLabs/cli-core/blob/main/docs/search/query-language.md#\u0432\u0441\u0442\u0440\u0435\u0447\u0438"
@@ -2127,9 +2130,9 @@ var liftMeetingFields = /* @__PURE__ */ __name((query, request, now) => {
2127
2130
  return { query: rest, request: next };
2128
2131
  }, "liftMeetingFields");
2129
2132
  var parseMeetingQuery = /* @__PURE__ */ __name((query) => validateQuery(parseLucene(query, { defaultField: "text", proximity: true, ...context }), MEETING_HIT_QUERY, context), "parseMeetingQuery");
2130
- var meetingWordsQuery = /* @__PURE__ */ __name((text5) => {
2131
- const found = text5.match(/[\p{L}\p{N}\p{M}]+/gu) ?? [];
2132
- const span = { start: 0, end: text5.length };
2133
+ var meetingWordsQuery = /* @__PURE__ */ __name((text6) => {
2134
+ const found = text6.match(/[\p{L}\p{N}\p{M}]+/gu) ?? [];
2135
+ const span = { start: 0, end: text6.length };
2133
2136
  const clauses = found.map((value) => ({
2134
2137
  occur: "must",
2135
2138
  node: { kind: "predicate", field: "text", operator: "term", value, span }
@@ -2138,7 +2141,7 @@ var meetingWordsQuery = /* @__PURE__ */ __name((text5) => {
2138
2141
  return { version: 1, language: "lucene-v1", root };
2139
2142
  }, "meetingWordsQuery");
2140
2143
 
2141
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/language.js
2144
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/language.js
2142
2145
  var LATIN_WORDS = {
2143
2146
  en: ["the", "and", "is", "that", "you", "this", "what", "have", "with", "are"],
2144
2147
  es: ["el", "los", "las", "por", "pero", "para", "est\xE1", "muy", "tambi\xE9n", "hay"],
@@ -2153,11 +2156,11 @@ var CYRILLIC = new RegExp("\\p{Script=Cyrillic}", "gu");
2153
2156
  var LATIN = new RegExp("\\p{Script=Latin}", "gu");
2154
2157
  var MIN_LETTERS = 20;
2155
2158
  var DOMINANT = 0.75;
2156
- var countOf = /* @__PURE__ */ __name((text5, pattern2) => text5.match(pattern2)?.length ?? 0, "countOf");
2159
+ var countOf = /* @__PURE__ */ __name((text6, pattern2) => text6.match(pattern2)?.length ?? 0, "countOf");
2157
2160
  var latinLanguage = /* @__PURE__ */ __name((texts) => {
2158
2161
  const votes = /* @__PURE__ */ new Map();
2159
- for (const text5 of texts)
2160
- for (const word of text5.toLowerCase().split(/[^\p{L}]+/u)) {
2162
+ for (const text6 of texts)
2163
+ for (const word of text6.toLowerCase().split(/[^\p{L}]+/u)) {
2161
2164
  const language = LATIN_LANGUAGE.get(word);
2162
2165
  if (language)
2163
2166
  votes.set(language, (votes.get(language) ?? 0) + 1);
@@ -2172,10 +2175,10 @@ var transcriptLanguage = /* @__PURE__ */ __name((texts) => {
2172
2175
  let cyrillic = 0;
2173
2176
  let latin = 0;
2174
2177
  let ukrainian = 0;
2175
- for (const text5 of all) {
2176
- cyrillic += countOf(text5, CYRILLIC);
2177
- latin += countOf(text5, LATIN);
2178
- ukrainian += countOf(text5, UKRAINIAN);
2178
+ for (const text6 of all) {
2179
+ cyrillic += countOf(text6, CYRILLIC);
2180
+ latin += countOf(text6, LATIN);
2181
+ ukrainian += countOf(text6, UKRAINIAN);
2179
2182
  }
2180
2183
  const letters = cyrillic + latin;
2181
2184
  if (letters < MIN_LETTERS)
@@ -2187,9 +2190,9 @@ var transcriptLanguage = /* @__PURE__ */ __name((texts) => {
2187
2190
  return null;
2188
2191
  }, "transcriptLanguage");
2189
2192
 
2190
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/ingest.js
2191
- var contentHash = /* @__PURE__ */ __name(async (text5) => {
2192
- const bytes = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(text5));
2193
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/ingest.js
2194
+ var contentHash = /* @__PURE__ */ __name(async (text6) => {
2195
+ const bytes = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(text6));
2193
2196
  return Array.from(new Uint8Array(bytes), (byte) => byte.toString(16).padStart(2, "0")).join("");
2194
2197
  }, "contentHash");
2195
2198
  var speakerPosition = /* @__PURE__ */ __name((name, participants) => {
@@ -2218,13 +2221,13 @@ var transcriptInput = /* @__PURE__ */ __name(async (lines, participants, source,
2218
2221
  }))
2219
2222
  }), "transcriptInput");
2220
2223
  var timestamp2 = /* @__PURE__ */ __name((value) => {
2221
- const time = Date.parse(value);
2222
- if (!Number.isFinite(time))
2224
+ const time2 = Date.parse(value);
2225
+ if (!Number.isFinite(time2))
2223
2226
  throw new Error("Invalid meeting timestamp");
2224
- return time;
2227
+ return time2;
2225
2228
  }, "timestamp");
2226
2229
 
2227
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/transcript-text.js
2230
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/transcript-text.js
2228
2231
  var TranscriptTextError = class extends Error {
2229
2232
  static {
2230
2233
  __name(this, "TranscriptTextError");
@@ -2241,10 +2244,10 @@ var LINE = /^\[(\d{2,}):([0-5]\d):([0-5]\d)\]\s*(?:([^:\n]{1,60}):\s*)?([\s\S]*)
2241
2244
  var RULE = /^[—–-]{10,}[^\n]*(?:\n|$)/;
2242
2245
  var EMPTY = /* @__PURE__ */ new Set(["", "\u2014", "-"]);
2243
2246
  var parseTranscriptText = /* @__PURE__ */ __name((input) => {
2244
- const text5 = input.replace(/^/, "").replace(/\r\n?/g, "\n");
2247
+ const text6 = input.replace(/^/, "").replace(/\r\n?/g, "\n");
2245
2248
  const header = { title: null, date: null, meetingId: null, speakers: [] };
2246
2249
  let sawHeader = false;
2247
- for (const line2 of text5.split("\n")) {
2250
+ for (const line2 of text6.split("\n")) {
2248
2251
  if (!line2.trim())
2249
2252
  break;
2250
2253
  for (const [prefix, key] of Object.entries(HEADER)) {
@@ -2261,7 +2264,7 @@ var parseTranscriptText = /* @__PURE__ */ __name((input) => {
2261
2264
  if (!sawHeader)
2262
2265
  throw new TranscriptTextError('a text transcript starts with a header such as "\u0412\u0441\u0442\u0440\u0435\u0447\u0430: \u2026"');
2263
2266
  const found = [];
2264
- for (const block of text5.split(/\n\s*\n/)) {
2267
+ for (const block of text6.split(/\n\s*\n/)) {
2265
2268
  const match = LINE.exec(block.trim().replace(RULE, ""));
2266
2269
  if (!match)
2267
2270
  continue;
@@ -2279,7 +2282,7 @@ var parseTranscriptText = /* @__PURE__ */ __name((input) => {
2279
2282
  return { header, lines };
2280
2283
  }, "parseTranscriptText");
2281
2284
 
2282
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/vtt.js
2285
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/vtt.js
2283
2286
  var VttError = class extends Error {
2284
2287
  static {
2285
2288
  __name(this, "VttError");
@@ -2295,12 +2298,12 @@ var millis = /* @__PURE__ */ __name((stamp, lineNo) => {
2295
2298
  const [, hours = "0", minutes = "0", seconds = "0", ms = "0"] = match;
2296
2299
  return ((Number(hours) * 60 + Number(minutes)) * 60 + Number(seconds)) * 1e3 + Number(ms);
2297
2300
  }, "millis");
2298
- var splitSpeaker = /* @__PURE__ */ __name((text5) => {
2299
- const firstLine = text5.split("\n", 1)[0] ?? "";
2301
+ var splitSpeaker = /* @__PURE__ */ __name((text6) => {
2302
+ const firstLine = text6.split("\n", 1)[0] ?? "";
2300
2303
  const at = firstLine.indexOf(": ");
2301
2304
  if (at <= 0)
2302
- return { speaker: null, text: text5 };
2303
- return { speaker: firstLine.slice(0, at).trim(), text: text5.slice(at + 2) };
2305
+ return { speaker: null, text: text6 };
2306
+ return { speaker: firstLine.slice(0, at).trim(), text: text6.slice(at + 2) };
2304
2307
  }, "splitSpeaker");
2305
2308
  var parseVtt = /* @__PURE__ */ __name((input) => {
2306
2309
  const lines = input.replace(/^/, "").split(/\r\n|\r|\n/);
@@ -2325,13 +2328,13 @@ var parseVtt = /* @__PURE__ */ __name((input) => {
2325
2328
  const lineNo = start + timingAt + 1;
2326
2329
  const [from = "", rest = ""] = (block[timingAt] ?? "").split("-->");
2327
2330
  const to = rest.trim().split(/\s+/)[0] ?? "";
2328
- const text5 = block.slice(timingAt + 1).join("\n").trim();
2329
- cues.push({ startMs: millis(from.trim(), lineNo), endMs: millis(to, lineNo), ...splitSpeaker(text5) });
2331
+ const text6 = block.slice(timingAt + 1).join("\n").trim();
2332
+ cues.push({ startMs: millis(from.trim(), lineNo), endMs: millis(to, lineNo), ...splitSpeaker(text6) });
2330
2333
  }
2331
2334
  return cues;
2332
2335
  }, "parseVtt");
2333
2336
 
2334
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/import.js
2337
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/import.js
2335
2338
  var importFiles = /* @__PURE__ */ __name(async (files, store, now = Date.now()) => {
2336
2339
  const report = { meetings: 0, participants: 0, transcriptRows: 0, summaries: 0, warnings: [] };
2337
2340
  for (const file of files) {
@@ -2364,10 +2367,10 @@ var importFiles = /* @__PURE__ */ __name(async (files, store, now = Date.now())
2364
2367
  return report;
2365
2368
  }, "importFiles");
2366
2369
 
2367
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/links.js
2370
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/links.js
2368
2371
  var CHAT_MESSAGES_READ = 1e5;
2369
2372
 
2370
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/provider.js
2373
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/provider.js
2371
2374
  var snapshotMeetingScope = /* @__PURE__ */ __name((scope2) => {
2372
2375
  const provider = scope2?.provider;
2373
2376
  const account = scope2?.account;
@@ -2376,7 +2379,7 @@ var snapshotMeetingScope = /* @__PURE__ */ __name((scope2) => {
2376
2379
  return Object.freeze({ provider, account });
2377
2380
  }, "snapshotMeetingScope");
2378
2381
 
2379
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/meeting-management.js
2382
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/meeting-management.js
2380
2383
  var nonempty = /* @__PURE__ */ __name((value, name) => {
2381
2384
  if (typeof value !== "string" || !value.trim())
2382
2385
  throw new CliError("validation_error", `${name} must be nonempty`);
@@ -2427,7 +2430,7 @@ var validateMeetingChange = /* @__PURE__ */ __name((change, create) => {
2427
2430
  return Object.freeze(result);
2428
2431
  }, "validateMeetingChange");
2429
2432
 
2430
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/passage.js
2433
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/passage.js
2431
2434
  var meetingHitContextLimits = /* @__PURE__ */ __name((options = {}) => {
2432
2435
  const { before = 3, after = 3, bytes = 65536, max_read_bytes = 4194304, expected_fingerprint } = options;
2433
2436
  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)))
@@ -2440,7 +2443,7 @@ var validateMeetingPassage = /* @__PURE__ */ __name((reference2, options) => {
2440
2443
  throw new CliError("validation_error", "choose a cue reference and json, text or markdown output");
2441
2444
  }, "validateMeetingPassage");
2442
2445
 
2443
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/preparation-context.js
2446
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/preparation-context.js
2444
2447
  var validateMeetingPreparationContext = /* @__PURE__ */ __name((original) => {
2445
2448
  if (!original || typeof original !== "object" || Array.isArray(original))
2446
2449
  throw new CliError("validation_error", "meeting preparation context is required");
@@ -2465,7 +2468,7 @@ var validateMeetingPreparationContext = /* @__PURE__ */ __name((original) => {
2465
2468
  return { ...input, limit, maxReadBytes };
2466
2469
  }, "validateMeetingPreparationContext");
2467
2470
 
2468
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/project-evidence-answer.js
2471
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/project-evidence-answer.js
2469
2472
  var count4 = pipe(number(), integer(), minValue(0));
2470
2473
  var id = pipe(string(), minLength(1));
2471
2474
  var meetingProjectEvidence = strictObject({
@@ -2586,7 +2589,7 @@ var meetingProjectEvidenceAnswer = /* @__PURE__ */ __name((page, prepared, comma
2586
2589
  };
2587
2590
  }, "meetingProjectEvidenceAnswer");
2588
2591
 
2589
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/search-validation.js
2592
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/search-validation.js
2590
2593
  var validateMeetingHitSearch = /* @__PURE__ */ __name((query, options = {}) => {
2591
2594
  const integer3 = /* @__PURE__ */ __name((value, low, high) => Number.isSafeInteger(value) && value >= low && value <= high, "integer");
2592
2595
  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) || [
@@ -2606,7 +2609,7 @@ var validateMeetingHitSearch = /* @__PURE__ */ __name((query, options = {}) => {
2606
2609
  throw new CliError("validation_error", "choose one project selector and one tag or topic selector");
2607
2610
  }, "validateMeetingHitSearch");
2608
2611
 
2609
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/project-evidence-query.js
2612
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/project-evidence-query.js
2610
2613
  var ids = {
2611
2614
  meeting_id: "meetingId",
2612
2615
  identity_id: "participantIdentityId",
@@ -2642,8 +2645,8 @@ var MEETING_PROJECT_EVIDENCE_QUERY = defineQuery({
2642
2645
  ]
2643
2646
  });
2644
2647
  var requestKeys = /* @__PURE__ */ new Set(["query", "limit", "cursor", "maxReadBytes", "signal"]);
2645
- var prepareMeetingProjectEvidence = /* @__PURE__ */ __name((project, request = {}, now = Date.now()) => {
2646
- if (!request || typeof request !== "object" || Array.isArray(request) || Object.keys(request).some((key) => !requestKeys.has(key)) || typeof project !== "string" || !project.trim() || project.length > 200 || /[\p{Cc}\p{Cf}]/u.test(project) || request.query !== void 0 && typeof request.query !== "string")
2648
+ var prepareMeetingProjectEvidence = /* @__PURE__ */ __name((project2, request = {}, now = Date.now()) => {
2649
+ if (!request || typeof request !== "object" || Array.isArray(request) || Object.keys(request).some((key) => !requestKeys.has(key)) || typeof project2 !== "string" || !project2.trim() || project2.length > 200 || /[\p{Cc}\p{Cf}]/u.test(project2) || request.query !== void 0 && typeof request.query !== "string")
2647
2650
  throw new CliError("validation_error", "expected an existing project and bounded evidence arguments");
2648
2651
  if (request.query !== void 0 && new TextEncoder().encode(request.query).byteLength > 8192 || [request.limit, request.maxReadBytes].some((value) => value !== void 0 && typeof value !== "number"))
2649
2652
  throw new CliError("validation_error", "invalid project evidence query or budget");
@@ -2691,21 +2694,21 @@ var prepareMeetingProjectEvidence = /* @__PURE__ */ __name((project, request = {
2691
2694
  options.until = range.upper - (range.upper_inclusive ? 0 : 1);
2692
2695
  frozen.push(`started_at:[${options.since === void 0 ? "*" : `"${new Date(options.since).toISOString()}"`} TO ${options.until === void 0 ? "*" : `"${new Date(options.until).toISOString()}"`}]`);
2693
2696
  }
2694
- validateMeetingHitSearch(project, options);
2697
+ validateMeetingHitSearch(project2, options);
2695
2698
  if (options.cursor !== void 0 && (typeof options.cursor !== "string" || !/^[A-Za-z0-9_-]{1,4096}$/.test(options.cursor)))
2696
2699
  throw new CliError("validation_error", "invalid project evidence cursor");
2697
- return { project: project.trim(), options, query: frozen.join(" AND ") };
2700
+ return { project: project2.trim(), options, query: frozen.join(" AND ") };
2698
2701
  }, "prepareMeetingProjectEvidence");
2699
2702
 
2700
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/project-evidence.js
2701
- var readMeetingProjectEvidence = /* @__PURE__ */ __name(async (read, project, request = {}, now = Date.now()) => {
2702
- const prepared = prepareMeetingProjectEvidence(project, request, now);
2703
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/project-evidence.js
2704
+ var readMeetingProjectEvidence = /* @__PURE__ */ __name(async (read, project2, request = {}, now = Date.now()) => {
2705
+ const prepared = prepareMeetingProjectEvidence(project2, request, now);
2703
2706
  const page = await read(prepared.project, prepared.options);
2704
2707
  prepared.options.signal?.throwIfAborted();
2705
2708
  return meetingProjectEvidenceAnswer(page, prepared);
2706
2709
  }, "readMeetingProjectEvidence");
2707
2710
 
2708
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/pull.js
2711
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/pull.js
2709
2712
  var participantInput = /* @__PURE__ */ __name((p, provider, occurrenceId2, position, accountId) => {
2710
2713
  const { identityExternalId, ...fields } = p;
2711
2714
  const externalId = identityExternalId ?? (p.email ? `email:${p.email.toLowerCase()}` : p.externalId) ?? `name:${p.displayName ?? "unknown"}@${accountId}/${occurrenceId2}:${position}`;
@@ -2732,20 +2735,20 @@ var pull = /* @__PURE__ */ __name(async (source, store, options) => {
2732
2735
  const from = timestamp2(since) - lookbackMs;
2733
2736
  const meetings = await source.meetings(lookbackMs === 0 ? since : new Date(from).toISOString());
2734
2737
  for (const m of meetings) {
2735
- const id3 = m.occurrence.id;
2738
+ const id4 = m.occurrence.id;
2736
2739
  const read = /* @__PURE__ */ __name(async (part, call) => {
2737
2740
  try {
2738
2741
  return await call();
2739
2742
  } catch (error) {
2740
2743
  failed = true;
2741
2744
  const message = error instanceof Error ? error.message : "could not be read";
2742
- report.warnings.push({ externalId: id3, message: `${part}: ${message}` });
2745
+ report.warnings.push({ externalId: id4, message: `${part}: ${message}` });
2743
2746
  return void 0;
2744
2747
  }
2745
2748
  }, "read");
2746
2749
  try {
2747
- const sourceParticipants = await read("participants", () => source.participants(id3));
2748
- const participants = (sourceParticipants ?? []).map((p, i) => participantInput(p, source.provider, id3, i, options.accountId));
2750
+ const sourceParticipants = await read("participants", () => source.participants(id4));
2751
+ const participants = (sourceParticipants ?? []).map((p, i) => participantInput(p, source.provider, id4, i, options.accountId));
2749
2752
  const names = /* @__PURE__ */ new Map();
2750
2753
  for (const p of participants)
2751
2754
  if (p.displayName !== null) {
@@ -2754,18 +2757,18 @@ var pull = /* @__PURE__ */ __name(async (source, store, options) => {
2754
2757
  names.set(p.displayName, identities);
2755
2758
  }
2756
2759
  if ([...names.values()].some((ids2) => ids2.size > 1))
2757
- report.warnings.push({ externalId: id3, message: "Participant names are ambiguous" });
2758
- const lines = await read("transcript", () => source.transcript(id3));
2759
- const chat = await read("chat", () => source.chat(id3));
2760
- const summary = await read("summary", () => source.summary(id3));
2761
- const attachments = await read("files", () => source.files(id3));
2760
+ report.warnings.push({ externalId: id4, message: "Participant names are ambiguous" });
2761
+ const lines = await read("transcript", () => source.transcript(id4));
2762
+ const chat = await read("chat", () => source.chat(id4));
2763
+ const summary = await read("summary", () => source.summary(id4));
2764
+ const attachments = await read("files", () => source.files(id4));
2762
2765
  const startedAt = timestamp2(m.occurrence.startedAt);
2763
2766
  const endedAt = m.occurrence.endedAt === null ? null : timestamp2(m.occurrence.endedAt);
2764
2767
  if (endedAt !== null && endedAt < startedAt)
2765
2768
  throw new Error("Meeting ends before it starts");
2766
2769
  const meeting2 = {
2767
2770
  accountId: options.accountId,
2768
- externalId: id3,
2771
+ externalId: id4,
2769
2772
  title: m.occurrence.title,
2770
2773
  description: m.description ?? null,
2771
2774
  location: m.location ?? null,
@@ -2836,7 +2839,7 @@ unlinked`, format)],
2836
2839
  report.summaries += summary ? 1 : 0;
2837
2840
  } catch (error) {
2838
2841
  failed = true;
2839
- report.warnings.push({ externalId: id3, message: error instanceof Error ? error.message : "Meeting pull failed" });
2842
+ report.warnings.push({ externalId: id4, message: error instanceof Error ? error.message : "Meeting pull failed" });
2840
2843
  }
2841
2844
  }
2842
2845
  if (!failed)
@@ -2844,7 +2847,7 @@ unlinked`, format)],
2844
2847
  return report;
2845
2848
  }, "pull");
2846
2849
 
2847
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/read-answers.js
2850
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/read-answers.js
2848
2851
  var text4 = string();
2849
2852
  var count5 = pipe(number(), integer(), minValue(0));
2850
2853
  var id2 = pipe(number(), integer(), minValue(1));
@@ -3038,10 +3041,10 @@ var eventItem = /* @__PURE__ */ __name((one) => ({
3038
3041
  updated_at: new Date(one.updatedAt).toISOString()
3039
3042
  }), "eventItem");
3040
3043
 
3041
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/recording-transfer.js
3044
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/recording-transfer.js
3042
3045
  var strongRecordingValidator = /* @__PURE__ */ __name((value) => typeof value === "string" && value.length <= 1024 && /^"[\x21\x23-\x7e\x80-\xff]*"$/.test(value), "strongRecordingValidator");
3043
3046
 
3044
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/related-history.js
3047
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/related-history.js
3045
3048
  var validateMeetingRelatedHistory = /* @__PURE__ */ __name((original) => {
3046
3049
  if (!original || typeof original !== "object" || Array.isArray(original))
3047
3050
  throw new CliError("validation_error", "related history request is required");
@@ -3052,7 +3055,7 @@ var validateMeetingRelatedHistory = /* @__PURE__ */ __name((original) => {
3052
3055
  const positive = /* @__PURE__ */ __name((value) => Number.isSafeInteger(value) && value > 0, "positive");
3053
3056
  if (!positive(input.accountId) || !positive(input.seriesId))
3054
3057
  throw new CliError("validation_error", "accountId and seriesId must be positive safe integers");
3055
- if (!Array.isArray(input.anchorIds) || input.anchorIds.length > 20 || input.anchorIds.some((id3) => !positive(id3)))
3058
+ if (!Array.isArray(input.anchorIds) || input.anchorIds.length > 20 || input.anchorIds.some((id4) => !positive(id4)))
3056
3059
  throw new CliError("validation_error", "anchorIds must contain at most 20 positive safe integers");
3057
3060
  for (const key of ["after", "before"])
3058
3061
  if (!Number.isSafeInteger(input[key]) || Math.abs(input[key]) > 864e13)
@@ -3071,14 +3074,14 @@ var validateMeetingRelatedHistory = /* @__PURE__ */ __name((original) => {
3071
3074
  return { ...input, anchorIds: [...new Set(input.anchorIds)], limit, maxReadBytes };
3072
3075
  }, "validateMeetingRelatedHistory");
3073
3076
 
3074
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/review.js
3077
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/review.js
3075
3078
  var REVIEW_LIMIT = { default: 50, most: 200 };
3076
3079
 
3077
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/save-hints.js
3080
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/save-hints.js
3078
3081
  var SAVE_HELP = `Worth keeping \u2014 a decision, a promise, a preference? Record it with \`memo facts add\` or
3079
3082
  \`memo memories add\`, citing the msg: locator or meeting: reference as --evidence.`;
3080
3083
 
3081
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/series-history.js
3084
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/series-history.js
3082
3085
  var validateMeetingSeriesHistory = /* @__PURE__ */ __name((input) => {
3083
3086
  input.signal?.throwIfAborted();
3084
3087
  if (!Number.isSafeInteger(input.accountId) || input.accountId <= 0)
@@ -3099,7 +3102,7 @@ var validateMeetingSeriesHistory = /* @__PURE__ */ __name((input) => {
3099
3102
  return { ...input, limit, maxReadBytes };
3100
3103
  }, "validateMeetingSeriesHistory");
3101
3104
 
3102
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/upcoming-validation.js
3105
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/upcoming-validation.js
3103
3106
  var invalid4 = /* @__PURE__ */ __name((field) => {
3104
3107
  throw new CliError("invalid_response", `meeting occurrence ${field} is invalid`);
3105
3108
  }, "invalid");
@@ -3168,7 +3171,7 @@ var readOccurrenceSchedule = /* @__PURE__ */ __name((input, meetingId, limit, ma
3168
3171
  return result;
3169
3172
  }, "readOccurrenceSchedule");
3170
3173
 
3171
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/series-inventory-validation.js
3174
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/series-inventory-validation.js
3172
3175
  function invalid5(field, response = false) {
3173
3176
  throw new CliError(response ? "invalid_response" : "validation_error", `invalid meeting inventory ${field}`);
3174
3177
  }
@@ -3197,7 +3200,7 @@ var validateMeetingSeriesInventoryCursor = /* @__PURE__ */ __name((value) => {
3197
3200
  cursorDetails(value);
3198
3201
  }, "validateMeetingSeriesInventoryCursor");
3199
3202
 
3200
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/stats.js
3203
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/stats.js
3201
3204
  var MEETING_COUNTS_GROUPINGS = ["day", "week", "series"];
3202
3205
  var zoneOf = /* @__PURE__ */ __name((timeZone) => {
3203
3206
  const zone = timeZone ?? "UTC";
@@ -3261,8 +3264,8 @@ var aggregateMeetingCounts = /* @__PURE__ */ __name((meetings, by, timeZone, lim
3261
3264
  const kept = ordered.slice(0, limit);
3262
3265
  if (by !== "series")
3263
3266
  kept.reverse();
3264
- const counted = /* @__PURE__ */ __name(({ meetings: count6, ms, timed, transcripts }) => ({
3265
- meetings: count6,
3267
+ const counted = /* @__PURE__ */ __name(({ meetings: count7, ms, timed, transcripts }) => ({
3268
+ meetings: count7,
3266
3269
  minutes: minutesOf(ms),
3267
3270
  meanMinutes: meanOf(ms, timed),
3268
3271
  transcripts
@@ -3332,7 +3335,7 @@ var aggregateMeetingStats = /* @__PURE__ */ __name((rows, timeZone) => {
3332
3335
  };
3333
3336
  }, "aggregateMeetingStats");
3334
3337
 
3335
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/meetings/upcoming.js
3338
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/meetings/upcoming.js
3336
3339
  var cancelled = /* @__PURE__ */ __name((signal) => {
3337
3340
  if (!signal?.aborted)
3338
3341
  return;
@@ -3402,7 +3405,7 @@ var createUpcomingMeetingReader = /* @__PURE__ */ __name((scope2, port) => {
3402
3405
  };
3403
3406
  }, "createUpcomingMeetingReader");
3404
3407
 
3405
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/domain/tags.js
3408
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/domain/tags.js
3406
3409
  var TAG_TYPES = ["chat", "contact", "message", "task"];
3407
3410
  var TAG = /^[a-z0-9-]{1,32}$/;
3408
3411
  var tagOf = /* @__PURE__ */ __name((value) => {
@@ -3416,7 +3419,7 @@ var normalizeTag = /* @__PURE__ */ __name((value) => {
3416
3419
  return tag;
3417
3420
  }, "normalizeTag");
3418
3421
 
3419
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/store/sqlite/link-kinds.js
3422
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/store/sqlite/link-kinds.js
3420
3423
  var LINK_KINDS = [
3421
3424
  "links-to",
3422
3425
  "blocked-by",
@@ -3437,7 +3440,7 @@ var LINK_SOURCES = [...LINK_ORIGINS, "calendar"];
3437
3440
  var RELATION_KINDS = ["member-of", "related-to"];
3438
3441
  var linkKind = /* @__PURE__ */ __name((kind) => `'${kind}'`, "linkKind");
3439
3442
 
3440
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/tasks/model.js
3443
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/tasks/model.js
3441
3444
  var TASK_KINDS = ["question", "request", "mention", "promise"];
3442
3445
  var TASK_STATES = ["open", "todo", "in_progress", "done", "dismissed"];
3443
3446
  var CLOSED_STATES = ["done", "dismissed"];
@@ -3452,7 +3455,7 @@ function closeTask(task, state, by, at, reason) {
3452
3455
  }
3453
3456
  __name(closeTask, "closeTask");
3454
3457
 
3455
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/tasks/priority.js
3458
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/tasks/priority.js
3456
3459
  var PRIORITY_LABELS = ["low", "medium", "high", "critical"];
3457
3460
  var MIDDLE = { low: 0.125, medium: 0.375, high: 0.625, critical: 0.875 };
3458
3461
  var LEGACY_PRIORITY_SCORES = [0.875, 0.625, 0.375, 0.1875, 0.0625];
@@ -3481,18 +3484,18 @@ var priorityOf = /* @__PURE__ */ __name((value) => {
3481
3484
  }, "priorityOf");
3482
3485
  var priorityOption = /* @__PURE__ */ __name((value) => priorityOf(value) ?? "none", "priorityOption");
3483
3486
 
3484
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/tasks/store.js
3487
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/tasks/store.js
3485
3488
  function matches2(task, filter) {
3486
3489
  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);
3487
3490
  }
3488
3491
  __name(matches2, "matches");
3489
3492
 
3490
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/tasks/service.js
3493
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/tasks/service.js
3491
3494
  function createTaskService({ store, now = /* @__PURE__ */ __name(() => /* @__PURE__ */ new Date(), "now"), newId = /* @__PURE__ */ __name(() => crypto.randomUUID(), "newId") }) {
3492
- async function find(id3) {
3493
- const task = await store.get(id3);
3495
+ async function find(id4) {
3496
+ const task = await store.get(id4);
3494
3497
  if (!task)
3495
- throw new CliError("not_found", `no task ${id3}`);
3498
+ throw new CliError("not_found", `no task ${id4}`);
3496
3499
  return task;
3497
3500
  }
3498
3501
  __name(find, "find");
@@ -3514,8 +3517,8 @@ function createTaskService({ store, now = /* @__PURE__ */ __name(() => /* @__PUR
3514
3517
  return { task, created: true };
3515
3518
  return { task, created: true, review: await store.reviewDuplicates(task.id) };
3516
3519
  },
3517
- async close(id3, { as, by, reason }) {
3518
- const task = closeTask(await find(id3), as, by, now(), reason);
3520
+ async close(id4, { as, by, reason }) {
3521
+ const task = closeTask(await find(id4), as, by, now(), reason);
3519
3522
  await store.update(task);
3520
3523
  return task;
3521
3524
  },
@@ -3547,7 +3550,7 @@ function median(values) {
3547
3550
  }
3548
3551
  __name(median, "median");
3549
3552
 
3550
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/domain/knowledge.js
3553
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/domain/knowledge.js
3551
3554
  var FACT_STATUSES = ["proposed", "accepted", "superseded", "reversed", "rejected"];
3552
3555
  var MEMORY_KINDS = ["summary", "digest", "preference"];
3553
3556
  var MEMORY_STATUSES = ["proposed", "confirmed", "stale", "superseded"];
@@ -3555,7 +3558,7 @@ var MEMORY_SCOPES = ["personal", "work"];
3555
3558
  var WORK_TASK_TYPES = ["bug", "feature", "chore"];
3556
3559
  var TASK_TYPES2 = [...WORK_TASK_TYPES, ...TASK_KINDS];
3557
3560
 
3558
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/domain/money.js
3561
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/domain/money.js
3559
3562
  var CURRENCY_SCALES = {
3560
3563
  AED: 2,
3561
3564
  AMD: 2,
@@ -3596,8 +3599,8 @@ var refuse = /* @__PURE__ */ __name((message, reason) => {
3596
3599
  throw new CliError("validation_error", message, { reason });
3597
3600
  }, "refuse");
3598
3601
  var DECIMAL = /^(\d{1,15})(?:\.(\d+))?$/;
3599
- var parseDecimal = /* @__PURE__ */ __name((text5, scale) => {
3600
- const match = DECIMAL.exec(text5.trim());
3602
+ var parseDecimal = /* @__PURE__ */ __name((text6, scale) => {
3603
+ const match = DECIMAL.exec(text6.trim());
3601
3604
  if (!match || (match[2] ?? "").length > scale)
3602
3605
  return void 0;
3603
3606
  return BigInt(`${match[1]}${(match[2] ?? "").padEnd(scale, "0")}`);
@@ -3611,10 +3614,10 @@ var groupDigits = /* @__PURE__ */ __name((decimal) => {
3611
3614
  const grouped2 = whole.replace(/\B(?=(\d{3})+(?!\d))/g, " ");
3612
3615
  return fraction === void 0 ? grouped2 : `${grouped2}.${fraction}`;
3613
3616
  }, "groupDigits");
3614
- var currencyOf = /* @__PURE__ */ __name((text5) => {
3615
- const code = typeof text5 === "string" ? text5.trim().toUpperCase() : "";
3617
+ var currencyOf = /* @__PURE__ */ __name((text6) => {
3618
+ const code = typeof text6 === "string" ? text6.trim().toUpperCase() : "";
3616
3619
  if (CURRENCY_SCALES[code] === void 0)
3617
- return refuse(`${typeof text5 === "string" && text5.trim() ? text5.trim() : "an empty currency"} is not a currency the store keeps; use one of ${Object.keys(CURRENCY_SCALES).join(", ")}`, "money.currency");
3620
+ return refuse(`${typeof text6 === "string" && text6.trim() ? text6.trim() : "an empty currency"} is not a currency the store keeps; use one of ${Object.keys(CURRENCY_SCALES).join(", ")}`, "money.currency");
3618
3621
  return code;
3619
3622
  }, "currencyOf");
3620
3623
  var scaleOf = /* @__PURE__ */ __name((currency) => CURRENCY_SCALES[currencyOf(currency)], "scaleOf");
@@ -3631,8 +3634,8 @@ var moneyOf = /* @__PURE__ */ __name((units, currency) => ({
3631
3634
  }), "moneyOf");
3632
3635
  var moneyLabel = /* @__PURE__ */ __name((units, currency) => `${groupDigits(formatDecimal(units, scaleOf(currency)))} ${currency}`, "moneyLabel");
3633
3636
  var QUANTITY_SCALE = 3;
3634
- var quantityOf = /* @__PURE__ */ __name((text5) => {
3635
- const thousandths = typeof text5 === "string" ? parseDecimal(text5, QUANTITY_SCALE) : void 0;
3637
+ var quantityOf = /* @__PURE__ */ __name((text6) => {
3638
+ const thousandths = typeof text6 === "string" ? parseDecimal(text6, QUANTITY_SCALE) : void 0;
3636
3639
  if (thousandths === void 0 || thousandths === 0n)
3637
3640
  return refuse('a quantity is a decimal string above 0 with at most 3 decimals, such as "1.5"', "money.quantity");
3638
3641
  const plain = formatDecimal(thousandths, QUANTITY_SCALE).replace(/\.?0+$/, "");
@@ -3640,7 +3643,7 @@ var quantityOf = /* @__PURE__ */ __name((text5) => {
3640
3643
  }, "quantityOf");
3641
3644
  var lineUnits = /* @__PURE__ */ __name((thousandths, unitPrice) => Number((thousandths * BigInt(unitPrice) + 500n) / 1000n), "lineUnits");
3642
3645
 
3643
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/domain/finance.js
3646
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/domain/finance.js
3644
3647
  var INVOICE_DIRECTIONS = ["receivable", "payable"];
3645
3648
  var INVOICE_STATUSES = ["draft", "issued", "partly_paid", "paid", "void"];
3646
3649
  var MONEY_DIRECTIONS = ["in", "out"];
@@ -3669,7 +3672,7 @@ var paymentLine = /* @__PURE__ */ __name((payment) => {
3669
3672
  var invoiceTitle = /* @__PURE__ */ __name((invoice) => `Invoice ${invoiceLine(invoice)}`, "invoiceTitle");
3670
3673
  var paymentEntryTitle = /* @__PURE__ */ __name((payment) => `Payment \xB7 ${paymentLine(payment)}`, "paymentEntryTitle");
3671
3674
 
3672
- // node_modules/.pnpm/@wirecat+cli-core@0.581.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_36341de5bb3d58122cbf3036ff7c0d66/node_modules/@wirecat/cli-core/dist/domain/orders.js
3675
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/domain/orders.js
3673
3676
  var ORDER_STATUSES = ["placed", "shipped", "delivered", "cancelled", "returned"];
3674
3677
  var ORDER_PURPOSES = ["personal", "business", "client", "other"];
3675
3678
  var orderLine = /* @__PURE__ */ __name((order) => {
@@ -3679,6 +3682,60 @@ var orderLine = /* @__PURE__ */ __name((order) => {
3679
3682
  }, "orderLine");
3680
3683
  var orderTitle = /* @__PURE__ */ __name((order) => `Order ${orderLine(order)}`, "orderTitle");
3681
3684
 
3685
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/entities/fields.js
3686
+ var text5 = string();
3687
+ var id3 = pipe(string(), minLength(1));
3688
+ var time = isoTime;
3689
+ var zonedTime = pipe(string(), isoTimestamp("an ISO 8601 time with a zone"));
3690
+ var count6 = pipe(number(), integer(), minValue(0));
3691
+ var untrusted = optional(array(text5));
3692
+ var providerMetadata = optional(record(string(), unknown()));
3693
+ var evidenceSource = strictObject({
3694
+ ref: nullable(reference),
3695
+ kind: text5,
3696
+ title: nullable(text5),
3697
+ sender: nullable(text5),
3698
+ at: nullable(time),
3699
+ excerpt: nullable(text5),
3700
+ tool: nullable(text5),
3701
+ missing: boolean()
3702
+ });
3703
+ var author = strictObject({
3704
+ type: picklist(["person", "bot"]),
3705
+ id: id3,
3706
+ name: nullable(text5)
3707
+ });
3708
+
3709
+ // node_modules/.pnpm/@wirecat+cli-core@0.582.0_@wirecat+cli-base@0.78.0_commander@15.0.0_esbuild@0.28.2_type_97f64d51523dd4ecc03951217aefe0ba/node_modules/@wirecat/cli-core/dist/entities/knowledge-lists.js
3710
+ var organization = strictObject({
3711
+ id: id3,
3712
+ ref: reference,
3713
+ kind: picklist(["company", "team", "family", "community"]),
3714
+ name: text5,
3715
+ scope: picklist(["personal", "work"]),
3716
+ created_at: time
3717
+ });
3718
+ var project = strictObject({
3719
+ id: id3,
3720
+ ref: reference,
3721
+ key: text5,
3722
+ name: text5,
3723
+ kind: picklist(["project", "inbox"]),
3724
+ type: picklist(["work", "client", "personal", "oss", "other"]),
3725
+ organization_id: nullable(id3),
3726
+ scope: picklist(["personal", "work"]),
3727
+ created_at: time
3728
+ });
3729
+ var reminder = strictObject({
3730
+ id: id3,
3731
+ task: text5,
3732
+ due_at: time,
3733
+ timezone: text5,
3734
+ state: picklist(["pending", "leased", "delivered", "cancelled"]),
3735
+ revision: number(),
3736
+ receipt: nullable(text5)
3737
+ });
3738
+
3682
3739
  export {
3683
3740
  QUERY_LIMITS,
3684
3741
  queryAstSchema,
@@ -3833,5 +3890,17 @@ export {
3833
3890
  ORDER_STATUSES,
3834
3891
  ORDER_PURPOSES,
3835
3892
  orderLine,
3836
- orderTitle
3893
+ orderTitle,
3894
+ text5 as text,
3895
+ id3 as id,
3896
+ time,
3897
+ zonedTime,
3898
+ count6 as count,
3899
+ untrusted,
3900
+ providerMetadata,
3901
+ evidenceSource,
3902
+ author,
3903
+ organization,
3904
+ project,
3905
+ reminder
3837
3906
  };