@wirecat/cli-memo 0.131.58 → 0.131.60

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 (115) hide show
  1. package/dist/bin/memo.js +2 -2
  2. package/dist/bundle/{all-profiles-XWRUFNP2.js → all-profiles-NUBT2FJI.js} +5 -5
  3. package/dist/bundle/{anthropic-266QJJGV.js → anthropic-QNTKWSQT.js} +3 -3
  4. package/dist/bundle/{app-server-YV3D7PPC.js → app-server-6TXXVCSE.js} +35 -35
  5. package/dist/bundle/auto-4VLWHDG7.js +86 -0
  6. package/dist/bundle/{bun-22MM6T54.js → bun-3NYKD7YB.js} +2 -2
  7. package/dist/bundle/{bun-sqlite-V73FFF2C.js → bun-sqlite-IIJSZ5I2.js} +2 -2
  8. package/dist/bundle/{chunk-DUBGCFRO.js → chunk-25N2ZCXV.js} +2 -2
  9. package/dist/bundle/{chunk-5T7BFCDJ.js → chunk-3M237SBK.js} +5 -5
  10. package/dist/bundle/{chunk-4K2ECEHT.js → chunk-4II6DM7L.js} +10 -10
  11. package/dist/bundle/{chunk-OROO3KYQ.js → chunk-4RSPI6OR.js} +1 -1
  12. package/dist/bundle/{chunk-IY7GB2SJ.js → chunk-4VAKZH56.js} +2 -2
  13. package/dist/bundle/{chunk-TB4IRRAC.js → chunk-636FK3A6.js} +1 -1
  14. package/dist/bundle/{chunk-CQPMBTB6.js → chunk-67CIUJO6.js} +1 -1
  15. package/dist/bundle/{chunk-NSYTJAL6.js → chunk-67L6BQOD.js} +4 -4
  16. package/dist/bundle/{chunk-RTROEIYE.js → chunk-6NYZ32K5.js} +2 -2
  17. package/dist/bundle/{chunk-XXOWA66S.js → chunk-AEATD5XH.js} +32 -21
  18. package/dist/bundle/{chunk-RYDNM3K2.js → chunk-B6R7O3U5.js} +1 -1
  19. package/dist/bundle/{chunk-NEWKSMXP.js → chunk-BYIKFYRY.js} +2 -2
  20. package/dist/bundle/{chunk-QLCPRKFK.js → chunk-BZZRBJ2C.js} +28 -28
  21. package/dist/bundle/{chunk-YTAQKOAW.js → chunk-CZPAYIQR.js} +1 -1
  22. package/dist/bundle/{chunk-DQWHLOKG.js → chunk-CZUMANL4.js} +4 -4
  23. package/dist/bundle/{chunk-PHWJBFZ6.js → chunk-DZKTPOTJ.js} +31 -31
  24. package/dist/bundle/{chunk-Z6RSOFHK.js → chunk-EMU7UIUA.js} +2 -2
  25. package/dist/bundle/{chunk-2CF2R7SA.js → chunk-FH56EHWA.js} +6 -6
  26. package/dist/bundle/{chunk-3R6YNDPC.js → chunk-FXXXBLZD.js} +5 -5
  27. package/dist/bundle/{chunk-RJWL3NEL.js → chunk-G6P5NWIZ.js} +1 -1
  28. package/dist/bundle/{chunk-PBVG3KJR.js → chunk-GGGIUXKD.js} +3 -3
  29. package/dist/bundle/{chunk-XIZPMFEC.js → chunk-GLPSPFTP.js} +4 -4
  30. package/dist/bundle/{chunk-FG7ZGEZ6.js → chunk-HF2W6622.js} +4 -4
  31. package/dist/bundle/{chunk-ONJNZ2RJ.js → chunk-IJKXX7LB.js} +1 -1
  32. package/dist/bundle/{chunk-NDCURVJS.js → chunk-KMA63WO5.js} +4 -4
  33. package/dist/bundle/{chunk-WKMLLL2F.js → chunk-KOBVPWMU.js} +49 -49
  34. package/dist/bundle/{chunk-BRT6M2TW.js → chunk-L3G5UY2P.js} +4 -4
  35. package/dist/bundle/{chunk-G3QR3IYN.js → chunk-LXQ56N66.js} +8 -8
  36. package/dist/bundle/{chunk-MV6ZSBA3.js → chunk-LZFQZOAL.js} +256 -256
  37. package/dist/bundle/{chunk-V4BKQWDS.js → chunk-LZQ7QENQ.js} +227 -187
  38. package/dist/bundle/{chunk-HVHUHYNF.js → chunk-MCPHBBJL.js} +1 -1
  39. package/dist/bundle/{chunk-D7FZIH5H.js → chunk-MV6M3VR3.js} +9 -9
  40. package/dist/bundle/{chunk-72ZEEKOJ.js → chunk-MYVP4IFW.js} +3 -3
  41. package/dist/bundle/{chunk-XLYMVYMU.js → chunk-ND2PQA4X.js} +22 -4
  42. package/dist/bundle/{chunk-N2TGYTKE.js → chunk-NMWIWQ7J.js} +1 -1
  43. package/dist/bundle/{chunk-BLCYVRW3.js → chunk-NSEX4YST.js} +7 -7
  44. package/dist/bundle/{chunk-L3GFAQFP.js → chunk-NX4XCS64.js} +21 -21
  45. package/dist/bundle/{chunk-EUE76Q4D.js → chunk-NXV3USUU.js} +3 -3
  46. package/dist/bundle/{chunk-XEQPZBIH.js → chunk-O55ELCFO.js} +1 -1
  47. package/dist/bundle/{chunk-3BWYMNWP.js → chunk-PMGGNQHL.js} +1 -1
  48. package/dist/bundle/{chunk-4XKHXETB.js → chunk-PNIAEDGJ.js} +726 -517
  49. package/dist/bundle/{chunk-F5DOQOCK.js → chunk-RC2NAT7T.js} +12 -12
  50. package/dist/bundle/{chunk-2LPPNYOZ.js → chunk-RU34XFKL.js} +1 -1
  51. package/dist/bundle/{chunk-GBOES7QS.js → chunk-S2VXXF4H.js} +2 -2
  52. package/dist/bundle/{chunk-VEDOHZEU.js → chunk-S56CC44R.js} +7 -7
  53. package/dist/bundle/{chunk-XC6OYACL.js → chunk-SSKSRETJ.js} +13 -9
  54. package/dist/bundle/{chunk-PE7RYCI4.js → chunk-SU2EPGGH.js} +12 -12
  55. package/dist/bundle/{chunk-ATEHG5O6.js → chunk-SYJMQIIJ.js} +2 -2
  56. package/dist/bundle/{chunk-FU3XDL34.js → chunk-TLZEAHCB.js} +5 -5
  57. package/dist/bundle/{chunk-5FYDQEM7.js → chunk-VGLDBSGN.js} +5 -5
  58. package/dist/bundle/{chunk-JYUNAC6P.js → chunk-VUJANY4X.js} +6 -6
  59. package/dist/bundle/{chunk-EQQIUVLP.js → chunk-WUOQ7CQU.js} +4 -4
  60. package/dist/bundle/{chunk-6WWF4RST.js → chunk-XBSLZQY4.js} +418 -359
  61. package/dist/bundle/{chunk-6FABO4WB.js → chunk-XW4NE2NW.js} +1 -1
  62. package/dist/bundle/{chunk-KZDKFYIF.js → chunk-XXZ3WQSW.js} +156 -151
  63. package/dist/bundle/{chunk-3N7LEJRT.js → chunk-YXBMP74S.js} +1 -1
  64. package/dist/bundle/{chunk-HJWWZXVG.js → chunk-Z3SASH3J.js} +1 -1
  65. package/dist/bundle/{command-contract-DKK56GZX.js → command-contract-KE77NBYG.js} +11 -11
  66. package/dist/bundle/{decode-JHVAOF3N.js → decode-AD352TI2.js} +2 -2
  67. package/dist/bundle/{echarts-KCOXA225.js → echarts-VCQEG6RB.js} +2 -2
  68. package/dist/bundle/{embed-4NYYOVNS.js → embed-A2YCI5TM.js} +3 -3
  69. package/dist/bundle/{embedder-SHPWEDIQ.js → embedder-G35OKUR5.js} +6 -6
  70. package/dist/bundle/{entry-VZE4CVPX.js → entry-3Y2C4AAL.js} +4 -4
  71. package/dist/bundle/failure-GHNN2IIX.js +66 -0
  72. package/dist/bundle/{first-run-EKXME7UK.js → first-run-RDQFQ5MD.js} +5 -5
  73. package/dist/bundle/{first-screen-QS5PVWDZ.js → first-screen-XWHL4AEK.js} +12 -12
  74. package/dist/bundle/{instructions-ER3ONEOR.js → instructions-VWX5TPRM.js} +1 -1
  75. package/dist/bundle/{mcp-3ABYEJI3.js → mcp-JHDRZPSO.js} +35 -35
  76. package/dist/bundle/memo.js +6 -6
  77. package/dist/bundle/{node-DBZKVPDA.js → node-OCRAUHTJ.js} +2 -2
  78. package/dist/bundle/{node-sqlite-UZVU7EXS.js → node-sqlite-UIZIEENG.js} +3 -3
  79. package/dist/bundle/{oauth-VEFHKRWG.js → oauth-WZOYRQA4.js} +4 -4
  80. package/dist/bundle/{open-XNRAMLOK.js → open-ITE5EG22.js} +2 -2
  81. package/dist/bundle/{openai-4XIX5RN2.js → openai-S4TD7H5G.js} +7 -7
  82. package/dist/bundle/{process-EIGF77RB.js → process-Z7OS65OQ.js} +1 -1
  83. package/dist/bundle/{program-OM6GO5X2.js → program-PYCRRMXK.js} +82 -60
  84. package/dist/bundle/{prompt-V7RFTWTA.js → prompt-NW2KOEQS.js} +4 -2
  85. package/dist/bundle/{recognize-7PWWI67V.js → recognize-65IM7MS4.js} +1 -1
  86. package/dist/bundle/{remote-NOKKQ2U5.js → remote-4EOO533Z.js} +4 -4
  87. package/dist/bundle/{rerank-X7UWX2ZF.js → rerank-LKRFHRN6.js} +4 -4
  88. package/dist/bundle/{serve-Z6YCLXXP.js → serve-SIB2TBOF.js} +6 -6
  89. package/dist/bundle/server-DO3J7CR5.js +48 -0
  90. package/dist/bundle/{server-KHFBSBCY.js → server-JZAL3SRH.js} +50 -50
  91. package/dist/bundle/server-NQLMHLMU.js +61 -0
  92. package/dist/bundle/{state-K5D3BMKT.js → state-245GTWCO.js} +3 -3
  93. package/dist/bundle/{store-6SZBCSUF.js → store-2QSJI77T.js} +14 -9
  94. package/dist/bundle/store-maintenance-command-F7FSHWHW.js +48 -0
  95. package/dist/bundle/update-NENHRNFS.js +69 -0
  96. package/dist/examples.js +1 -1
  97. package/dist/examples.js.map +1 -1
  98. package/dist/knowledge/relationships-scan.d.ts.map +1 -1
  99. package/dist/knowledge/relationships-scan.js +23 -2
  100. package/dist/knowledge/relationships-scan.js.map +1 -1
  101. package/dist/review/review.d.ts +1 -1
  102. package/dist/review/review.d.ts.map +1 -1
  103. package/dist/review/review.js +5 -0
  104. package/dist/review/review.js.map +1 -1
  105. package/dist/version.d.ts +1 -1
  106. package/dist/version.js +1 -1
  107. package/package.json +2 -2
  108. package/skills/cli-memo/topics/projects.md +1 -1
  109. package/dist/bundle/auto-3TXQDVO6.js +0 -86
  110. package/dist/bundle/failure-HKKLVEZA.js +0 -66
  111. package/dist/bundle/server-AXMJBL6J.js +0 -61
  112. package/dist/bundle/server-KABSY3RL.js +0 -48
  113. package/dist/bundle/store-maintenance-command-GTMZOLMZ.js +0 -48
  114. package/dist/bundle/update-DT4DCRXS.js +0 -69
  115. /package/dist/bundle/{chunk-SO2HNIPX.js → chunk-GK2FRFM6.js} +0 -0
@@ -3,10 +3,10 @@ const require = __bundleRequire(import.meta.url);
3
3
  import {
4
4
  isCliFailure,
5
5
  isStoreDamage
6
- } from "./chunk-IY7GB2SJ.js";
6
+ } from "./chunk-4VAKZH56.js";
7
7
  import {
8
8
  refuseOwnerStoreInTests
9
- } from "./chunk-OROO3KYQ.js";
9
+ } from "./chunk-4RSPI6OR.js";
10
10
  import {
11
11
  RegistryError,
12
12
  SNAKE_CASE,
@@ -51,7 +51,158 @@ import {
51
51
  __name
52
52
  } from "./chunk-ZVVMGPBJ.js";
53
53
 
54
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/store/marks.js
54
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/domain/money.js
55
+ var CURRENCY_SCALES = {
56
+ AED: 2,
57
+ AMD: 2,
58
+ AUD: 2,
59
+ BHD: 3,
60
+ BYN: 2,
61
+ CAD: 2,
62
+ CHF: 2,
63
+ CLP: 0,
64
+ CNY: 2,
65
+ CZK: 2,
66
+ DKK: 2,
67
+ EUR: 2,
68
+ GBP: 2,
69
+ GEL: 2,
70
+ HUF: 2,
71
+ ILS: 2,
72
+ INR: 2,
73
+ ISK: 0,
74
+ JPY: 0,
75
+ KGS: 2,
76
+ KRW: 0,
77
+ KWD: 3,
78
+ KZT: 2,
79
+ NOK: 2,
80
+ PLN: 2,
81
+ RSD: 2,
82
+ RUB: 2,
83
+ SEK: 2,
84
+ THB: 2,
85
+ TRY: 2,
86
+ UAH: 2,
87
+ USD: 2,
88
+ UZS: 2,
89
+ VND: 0
90
+ };
91
+ var refuse = /* @__PURE__ */ __name((message, reason) => {
92
+ throw new CliError("validation_error", message, { reason });
93
+ }, "refuse");
94
+ var DECIMAL = /^(\d{1,15})(?:\.(\d+))?$/;
95
+ var parseDecimal = /* @__PURE__ */ __name((text6, scale) => {
96
+ const match = DECIMAL.exec(text6.trim());
97
+ if (!match || (match[2] ?? "").length > scale)
98
+ return void 0;
99
+ return BigInt(`${match[1]}${(match[2] ?? "").padEnd(scale, "0")}`);
100
+ }, "parseDecimal");
101
+ var formatDecimal = /* @__PURE__ */ __name((units, scale) => {
102
+ const value = BigInt(units);
103
+ if (value < 0n)
104
+ return `-${formatDecimal(-value, scale)}`;
105
+ const digits = value.toString().padStart(scale + 1, "0");
106
+ return scale === 0 ? digits : `${digits.slice(0, -scale)}.${digits.slice(-scale)}`;
107
+ }, "formatDecimal");
108
+ var groupDigits = /* @__PURE__ */ __name((decimal) => {
109
+ const [whole = "0", fraction] = decimal.split(".");
110
+ const grouped2 = whole.replace(/\B(?=(\d{3})+(?!\d))/g, " ");
111
+ return fraction === void 0 ? grouped2 : `${grouped2}.${fraction}`;
112
+ }, "groupDigits");
113
+ var currencyOf = /* @__PURE__ */ __name((text6) => {
114
+ const code = typeof text6 === "string" ? text6.trim().toUpperCase() : "";
115
+ if (CURRENCY_SCALES[code] === void 0)
116
+ 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");
117
+ return code;
118
+ }, "currencyOf");
119
+ var scaleOf = /* @__PURE__ */ __name((currency) => CURRENCY_SCALES[currencyOf(currency)], "scaleOf");
120
+ var minorUnits = /* @__PURE__ */ __name((amount, currency, what = "an amount") => {
121
+ const scale = scaleOf(currency);
122
+ const units = typeof amount === "string" ? parseDecimal(amount, scale) : void 0;
123
+ if (units === void 0 || units > BigInt(Number.MAX_SAFE_INTEGER))
124
+ return refuse(`${what} is a decimal string with at most ${scale} decimal${scale === 1 ? "" : "s"} for ${currency}, such as "${formatDecimal(5e3 * 10 ** scale, scale)}"`, "money.amount");
125
+ return Number(units);
126
+ }, "minorUnits");
127
+ var signedMinorUnits = /* @__PURE__ */ __name((amount, currency, what = "an amount") => {
128
+ if (typeof amount !== "string" || !amount.trim().startsWith("-"))
129
+ return minorUnits(amount, currency, what);
130
+ const units = minorUnits(amount.trim().slice(1), currency, what);
131
+ return units === 0 ? 0 : -units;
132
+ }, "signedMinorUnits");
133
+ var moneyOf = /* @__PURE__ */ __name((units, currency) => ({
134
+ amount: formatDecimal(units, scaleOf(currency)),
135
+ currency
136
+ }), "moneyOf");
137
+ var moneyLabel = /* @__PURE__ */ __name((units, currency) => `${groupDigits(formatDecimal(units, scaleOf(currency)))} ${currency}`, "moneyLabel");
138
+ var QUANTITY_SCALE = 3;
139
+ var quantityOf = /* @__PURE__ */ __name((text6) => {
140
+ const thousandths = typeof text6 === "string" ? parseDecimal(text6, QUANTITY_SCALE) : void 0;
141
+ if (thousandths === void 0 || thousandths === 0n)
142
+ return refuse('a quantity is a decimal string above 0 with at most 3 decimals, such as "1.5"', "money.quantity");
143
+ const plain = formatDecimal(thousandths, QUANTITY_SCALE).replace(/\.?0+$/, "");
144
+ return { text: plain, thousandths };
145
+ }, "quantityOf");
146
+ var lineUnits = /* @__PURE__ */ __name((thousandths, unitPrice) => Number((thousandths * BigInt(unitPrice) + 500n) / 1000n), "lineUnits");
147
+
148
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/domain/finance.js
149
+ var INVOICE_DIRECTIONS = ["receivable", "payable"];
150
+ var INVOICE_STATUSES = ["draft", "issued", "partly_paid", "paid", "void"];
151
+ var MONEY_DIRECTIONS = ["in", "out"];
152
+ var FINANCE_REVIEWS = ["proposed", "confirmed", "rejected"];
153
+ var settledStatus = /* @__PURE__ */ __name((current, total, paid) => {
154
+ if (current === "draft" || current === "void")
155
+ return current;
156
+ if (paid <= 0)
157
+ return "issued";
158
+ return paid < total ? "partly_paid" : "paid";
159
+ }, "settledStatus");
160
+ var dayMonth = /* @__PURE__ */ __name((date) => date === null ? null : `${date.slice(8, 10)}.${date.slice(5, 7)}`, "dayMonth");
161
+ var notes = /* @__PURE__ */ __name((...words2) => {
162
+ const kept = words2.filter((word) => word !== null);
163
+ return kept.length === 0 ? "" : ` (${kept.join(", ")})`;
164
+ }, "notes");
165
+ var invoiceLine = /* @__PURE__ */ __name((invoice) => {
166
+ const party = invoice.counterpartyName === null ? "" : `${invoice.direction === "receivable" ? " to" : " from"} ${invoice.counterpartyName}`;
167
+ const due = invoice.dueDate === null ? "" : `, due ${dayMonth(invoice.dueDate)}`;
168
+ return `${invoice.number ?? `#${invoice.id}`} \xB7 ${moneyLabel(invoice.total, invoice.currency)}${party}${due}` + notes(invoice.status.replace("_", " "), invoice.review === "confirmed" ? null : invoice.review);
169
+ }, "invoiceLine");
170
+ var paymentLine = /* @__PURE__ */ __name((payment) => {
171
+ const party = payment.partyName === null ? "" : `${payment.direction === "in" ? " from" : " to"} ${payment.partyName}`;
172
+ return `${moneyLabel(payment.amount, payment.currency)}${party}, ${dayMonth(payment.date)}` + notes(payment.review === "confirmed" ? null : payment.review);
173
+ }, "paymentLine");
174
+ var invoiceTitle = /* @__PURE__ */ __name((invoice) => `Invoice ${invoiceLine(invoice)}`, "invoiceTitle");
175
+ var paymentEntryTitle = /* @__PURE__ */ __name((payment) => `Payment \xB7 ${paymentLine(payment)}`, "paymentEntryTitle");
176
+
177
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/domain/business.js
178
+ var CATALOG_KINDS = ["product", "service"];
179
+ var BUSINESS_KINDS = ["invoice", "payment", "order", "contract", "subscription", "product", "wallet"];
180
+ var CONTRACT_KINDS = ["sale", "purchase", "service", "lease", "employment", "nda", "license", "other"];
181
+ var CONTRACT_STATUSES = ["draft", "active", "ended", "terminated"];
182
+ var SUBSCRIPTION_STATUSES = ["trial", "active", "paused", "cancelled", "ended"];
183
+ var WALLET_KINDS = ["bank", "card", "cash", "wallet", "other"];
184
+ var TRANSACTION_STATUSES = ["pending", "booked"];
185
+ var ORDER_DIRECTIONS = ["purchase", "sale"];
186
+ var intervalOf = /* @__PURE__ */ __name((text6, reason = "subscription.interval") => {
187
+ const match = typeof text6 === "string" ? /^(?:([1-9]\d{0,2})-)?(day|week|month|year)$/.exec(text6.trim()) : null;
188
+ if (!match)
189
+ throw new CliError("validation_error", "an interval is a count and a unit, such as 1-month or 2-week", { reason });
190
+ return { count: match[1] === void 0 ? 1 : Number(match[1]), unit: match[2] };
191
+ }, "intervalOf");
192
+ var intervalText = /* @__PURE__ */ __name(({ count: count7, unit }) => `${count7}-${unit}`, "intervalText");
193
+ var priced = /* @__PURE__ */ __name((units, currency) => units === null || currency === null ? "" : `, ${moneyLabel(units, currency)}`, "priced");
194
+ var pending = /* @__PURE__ */ __name((review) => review === "confirmed" ? null : review, "pending");
195
+ var productLine = /* @__PURE__ */ __name((product) => {
196
+ const price = product.unitPrice === null || product.currency === null ? "" : moneyLabel(product.unitPrice, product.currency);
197
+ const per = price && product.unit !== null ? ` per ${product.unit}` : "";
198
+ return `${product.name}${price ? ` \xB7 ${price}${per}` : ""}${notes(product.kind, product.archived ? "archived" : null)}`;
199
+ }, "productLine");
200
+ var contractLine = /* @__PURE__ */ __name((contract) => `${contract.number ?? `#${contract.id}`} \xB7 ${contract.name}${priced(contract.value, contract.currency)}` + notes(contract.status, pending(contract.review)), "contractLine");
201
+ var subscriptionLine = /* @__PURE__ */ __name((subscription) => `${subscription.name}${priced(subscription.price, subscription.currency)} every ${intervalText(subscription.interval)}` + notes(subscription.status, pending(subscription.review)), "subscriptionLine");
202
+ var walletLine = /* @__PURE__ */ __name((wallet) => `${wallet.name} \xB7 ${wallet.kind}, ${wallet.currency}${wallet.numberHint === null ? "" : `, \u2026${wallet.numberHint}`}` + notes(wallet.closed ? "closed" : null), "walletLine");
203
+ var transactionLine = /* @__PURE__ */ __name((transaction) => `${moneyLabel(transaction.amount, transaction.currency)} ${transaction.direction}${transaction.label === null ? "" : ` \xB7 ${transaction.label}`}, ${dayMonth(transaction.date)}` + notes(transaction.status === "pending" ? "pending" : null, pending(transaction.review)), "transactionLine");
204
+
205
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/store/marks.js
55
206
  import { readFileSync, rmSync, statSync, writeFileSync } from "node:fs";
56
207
  var damageMarkPath = /* @__PURE__ */ __name((store) => `${store}.damaged.json`, "damageMarkPath");
57
208
  var healthMarkPath = /* @__PURE__ */ __name((store) => `${store}.health.json`, "healthMarkPath");
@@ -967,7 +1118,7 @@ var matches = /* @__PURE__ */ __name((node, item, byName, options) => {
967
1118
  }, "matches");
968
1119
  var evaluate = /* @__PURE__ */ __name((ast, fields, item, options = {}) => matches(ast.root, item, new Map(fields.map((field) => [field.name, field])), options), "evaluate");
969
1120
 
970
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/reference.js
1121
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/reference.js
971
1122
  var invalid = /* @__PURE__ */ __name(() => new CliError("validation_error", "expected meeting:<accountId>/<meetingId>[/<transcriptId>[/<cuePosition>]] with safe integer IDs"), "invalid");
972
1123
  var integer2 = /* @__PURE__ */ __name((value, minimum = 1) => {
973
1124
  if (!Number.isSafeInteger(value) || value < minimum)
@@ -1004,7 +1155,7 @@ var parseMeetingReference = /* @__PURE__ */ __name((text6) => {
1004
1155
  }, "parseMeetingReference");
1005
1156
  var canonicalMeetingReference = /* @__PURE__ */ __name((text6) => formatMeetingReference(parseMeetingReference(text6)), "canonicalMeetingReference");
1006
1157
 
1007
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/item.js
1158
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/item.js
1008
1159
  var text = string();
1009
1160
  var count = pipe(number(), integer(), minValue(0));
1010
1161
  var MEETING_ISSUES = ["time_without_zone"];
@@ -1069,7 +1220,7 @@ var MEETING_QUERY = {
1069
1220
  })
1070
1221
  };
1071
1222
 
1072
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/join-key.js
1223
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/join-key.js
1073
1224
  var joinKeyOf = /* @__PURE__ */ __name((url) => {
1074
1225
  const parsed = urlOf(url);
1075
1226
  if (!parsed)
@@ -1103,7 +1254,7 @@ var urlOf = /* @__PURE__ */ __name((url) => {
1103
1254
  }
1104
1255
  }, "urlOf");
1105
1256
 
1106
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/calendar-text.js
1257
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/calendar-text.js
1107
1258
  var ENTITIES = { amp: "&", lt: "<", gt: ">", quot: '"', "#39": "'", apos: "'", nbsp: " " };
1108
1259
  var SECRET_LINE = /(?<![\p{L}\p{N}])(pass ?codes?|passwords?|pwd|pins?|access ?codes?|meeting ?codes?|kennwort|пароль|пин-?код|код доступа)(?![\p{L}\p{N}])|pwd=/iu;
1109
1260
  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");
@@ -1140,7 +1291,7 @@ var entryMetadata = /* @__PURE__ */ __name((metadata) => {
1140
1291
  return kept;
1141
1292
  }, "entryMetadata");
1142
1293
 
1143
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/cue-fingerprint.js
1294
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/cue-fingerprint.js
1144
1295
  import { createHash } from "node:crypto";
1145
1296
  var meetingCueFingerprint = /* @__PURE__ */ __name((cue2) => createHash("sha256").update(JSON.stringify({
1146
1297
  reference: cue2.reference,
@@ -1154,7 +1305,7 @@ var meetingCueFingerprint = /* @__PURE__ */ __name((cue2) => createHash("sha256"
1154
1305
  text: cue2.text
1155
1306
  })).digest("hex"), "meetingCueFingerprint");
1156
1307
 
1157
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/event-store.js
1308
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/event-store.js
1158
1309
  var UNTIL = /(?:^|;)UNTIL=(\d{4})(\d{2})(\d{2})(?:T(\d{2})(\d{2})(\d{2})Z?)?(?:;|$)/iu;
1159
1310
  var seriesEnd = /* @__PURE__ */ __name((entry) => {
1160
1311
  if (entry.recurrenceEndsAt !== null)
@@ -1177,7 +1328,7 @@ var entryInWindow = /* @__PURE__ */ __name((entry, window) => {
1177
1328
  return Math.max(entry.endsAt ?? start, start + 1) > window.from;
1178
1329
  }, "entryInWindow");
1179
1330
 
1180
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/answers.js
1331
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/answers.js
1181
1332
  var text2 = string();
1182
1333
  var count2 = pipe(number(), integer(), minValue(0));
1183
1334
  var iso2 = /* @__PURE__ */ __name((ms) => ms === null ? null : new Date(ms).toISOString(), "iso");
@@ -1380,10 +1531,10 @@ var meetingHitItem = /* @__PURE__ */ __name((hit) => ({
1380
1531
  var meetingHitsList = /* @__PURE__ */ __name((found, limit, command = "search meetings", args = {}, meta = {}) => {
1381
1532
  const items = found.items.map(meetingHitItem);
1382
1533
  const cursor = found.hasMore && found.nextCursor !== null ? found.nextCursor : void 0;
1383
- const pending = found.coverage.indexing === "pending";
1534
+ const pending2 = found.coverage.indexing === "pending";
1384
1535
  const next = [
1385
1536
  ...cursor === void 0 ? [] : [stepOf(PAGE_NEXT, { command, args: { ...args, cursor, limit }, values: { shown: items.length } })],
1386
- ...pending ? [
1537
+ ...pending2 ? [
1387
1538
  stepOf(SEARCH_AGAIN, {
1388
1539
  command,
1389
1540
  args: Object.fromEntries(Object.entries(args).filter(([key]) => key !== "cursor"))
@@ -1399,7 +1550,7 @@ var meetingHitsList = /* @__PURE__ */ __name((found, limit, command = "search me
1399
1550
  ...cursor === void 0 ? {} : { next_cursor: cursor }
1400
1551
  },
1401
1552
  ...next.length > 0 ? { next } : {},
1402
- ...pending ? {
1553
+ ...pending2 ? {
1403
1554
  missing: [
1404
1555
  {
1405
1556
  field: "excerpt",
@@ -1412,7 +1563,7 @@ var meetingHitsList = /* @__PURE__ */ __name((found, limit, command = "search me
1412
1563
  };
1413
1564
  }, "meetingHitsList");
1414
1565
 
1415
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/participant-search.js
1566
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/participant-search.js
1416
1567
  var normalizeMeetingParticipantQuery = /* @__PURE__ */ __name((text6) => text6.normalize("NFKC").toLowerCase(), "normalizeMeetingParticipantQuery");
1417
1568
  var validateMeetingParticipantQuery = /* @__PURE__ */ __name((query) => {
1418
1569
  if (typeof query !== "string" || !query.trim() || query.length > 500 || query.includes("\0"))
@@ -1436,7 +1587,7 @@ var validateMeetingParticipantSearch = /* @__PURE__ */ __name((query, input) =>
1436
1587
  };
1437
1588
  }, "validateMeetingParticipantSearch");
1438
1589
 
1439
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/reads.js
1590
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/reads.js
1440
1591
  var MeetingError = class extends CliError {
1441
1592
  static {
1442
1593
  __name(this, "MeetingError");
@@ -1568,7 +1719,7 @@ var meetingSummaryAnswer = /* @__PURE__ */ __name(async (store, id4, accountId)
1568
1719
  return wholeList(details.summaries.map((one) => meetingSummaryItem(details.meeting.accountId, one)));
1569
1720
  }, "meetingSummaryAnswer");
1570
1721
 
1571
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/export.js
1722
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/export.js
1572
1723
  var timestamp = /* @__PURE__ */ __name((milliseconds) => {
1573
1724
  if (!Number.isSafeInteger(milliseconds) || milliseconds < 0)
1574
1725
  throw new MeetingError("validation_error", "transcript times must be nonnegative integer milliseconds");
@@ -1664,7 +1815,7 @@ var exportMeeting = /* @__PURE__ */ __name(async (store, id4, options) => {
1664
1815
  };
1665
1816
  }, "exportMeeting");
1666
1817
 
1667
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/payment.js
1818
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/payment.js
1668
1819
  var FACT_TYPES = ["fact", "statement", "question", "decision", "promise"];
1669
1820
  var PAYMENT_DIRECTIONS = ["to_us", "from_us"];
1670
1821
  var PAYMENT_STATES = ["expected", "paid", "cancelled"];
@@ -1758,10 +1909,10 @@ var paymentTitle = /* @__PURE__ */ __name((fact) => {
1758
1909
  return `${grouped(payment.amount)} ${payment.currency} ${way}${party}${item}${due} (${payment.state})`;
1759
1910
  }, "paymentTitle");
1760
1911
 
1761
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/findings-rules.js
1912
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/findings-rules.js
1762
1913
  import { createHash as createHash2 } from "node:crypto";
1763
1914
 
1764
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/timestamp.js
1915
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/timestamp.js
1765
1916
  var meetingTimestamp = /* @__PURE__ */ __name((value, name) => {
1766
1917
  if (typeof value !== "string" || !/^\d{4}-\d{2}-\d{2}T.+(?:Z|[+-]\d{2}:\d{2})$/i.test(value) || !Number.isFinite(Date.parse(value)))
1767
1918
  throw new CliError("validation_error", `${name} must be an ISO timestamp with a timezone, such as 2026-11-09T09:00:00Z`);
@@ -1772,7 +1923,7 @@ var meetingTimestamp = /* @__PURE__ */ __name((value, name) => {
1772
1923
  return new Date(value).toISOString();
1773
1924
  }, "meetingTimestamp");
1774
1925
 
1775
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/findings-rules.js
1926
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/findings-rules.js
1776
1927
  var TASK_TYPES = ["bug", "feature", "chore"];
1777
1928
  var invalid3 = /* @__PURE__ */ __name((message) => {
1778
1929
  throw new CliError("validation_error", message);
@@ -1945,7 +2096,7 @@ var validateBatch = /* @__PURE__ */ __name((input, rules, most, one) => {
1945
2096
  var validateFindings = /* @__PURE__ */ __name((input, rules) => validateBatch(input, rules, 16, (finding, ids2) => validateFinding(finding, rules, ids2)), "validateFindings");
1946
2097
  var findingFingerprint = /* @__PURE__ */ __name(({ id: _id, ...finding }) => findingHash(finding), "findingFingerprint");
1947
2098
 
1948
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/findings.js
2099
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/findings.js
1949
2100
  var MEETING_FINDINGS_KIND = "meeting_findings";
1950
2101
  var cue = /* @__PURE__ */ __name((raw) => {
1951
2102
  const reference2 = canonicalMeetingReference(raw);
@@ -1956,7 +2107,7 @@ var cue = /* @__PURE__ */ __name((raw) => {
1956
2107
  var validateMeetingFindings = /* @__PURE__ */ __name((input) => validateFindings(input, { plural: "meeting findings", singular: "meeting finding", cited: "cue", reference: cue }), "validateMeetingFindings");
1957
2108
  var meetingFindingFingerprint = findingFingerprint;
1958
2109
 
1959
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/result-items.js
2110
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/result-items.js
1960
2111
  var text3 = string();
1961
2112
  var identifier = pipe(text3, minLength(1));
1962
2113
  var nullableText = nullable(text3);
@@ -2089,7 +2240,7 @@ var MEETING_RESULT_ENTITIES = {
2089
2240
  meeting_repair: repair
2090
2241
  };
2091
2242
 
2092
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/event-query.js
2243
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/event-query.js
2093
2244
  var EVENT_QUERY = defineQuery({
2094
2245
  entity: "event",
2095
2246
  backend: "sql",
@@ -2105,7 +2256,7 @@ var EVENT_QUERY = defineQuery({
2105
2256
  ]
2106
2257
  });
2107
2258
 
2108
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/events.js
2259
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/events.js
2109
2260
  var linkEvent = /* @__PURE__ */ __name(async (store, details, now = Date.now()) => {
2110
2261
  const current = await store.meeting(details.meeting.id);
2111
2262
  if (!current)
@@ -2148,7 +2299,7 @@ var linkEvent = /* @__PURE__ */ __name(async (store, details, now = Date.now())
2148
2299
  return (await store.events()).find((e) => e.id === linked?.meeting.eventId) ?? null;
2149
2300
  }, "linkEvent");
2150
2301
 
2151
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/hit-query.js
2302
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/hit-query.js
2152
2303
  var context = {
2153
2304
  command: "search meetings",
2154
2305
  guide: "https://github.com/WireCatLabs/cli-core/blob/main/docs/search/query-language.md#\u0432\u0441\u0442\u0440\u0435\u0447\u0438"
@@ -2268,7 +2419,7 @@ var meetingWordsQuery = /* @__PURE__ */ __name((text6) => {
2268
2419
  return { version: 1, language: "lucene-v1", root };
2269
2420
  }, "meetingWordsQuery");
2270
2421
 
2271
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/language.js
2422
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/language.js
2272
2423
  var LATIN_WORDS = {
2273
2424
  en: ["the", "and", "is", "that", "you", "this", "what", "have", "with", "are"],
2274
2425
  es: ["el", "los", "las", "por", "pero", "para", "est\xE1", "muy", "tambi\xE9n", "hay"],
@@ -2317,7 +2468,7 @@ var transcriptLanguage = /* @__PURE__ */ __name((texts) => {
2317
2468
  return null;
2318
2469
  }, "transcriptLanguage");
2319
2470
 
2320
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/ingest.js
2471
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/ingest.js
2321
2472
  var contentHash = /* @__PURE__ */ __name(async (text6) => {
2322
2473
  const bytes = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(text6));
2323
2474
  return Array.from(new Uint8Array(bytes), (byte) => byte.toString(16).padStart(2, "0")).join("");
@@ -2354,7 +2505,7 @@ var timestamp2 = /* @__PURE__ */ __name((value) => {
2354
2505
  return time2;
2355
2506
  }, "timestamp");
2356
2507
 
2357
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/transcript-text.js
2508
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/transcript-text.js
2358
2509
  var TranscriptTextError = class extends Error {
2359
2510
  static {
2360
2511
  __name(this, "TranscriptTextError");
@@ -2409,7 +2560,7 @@ var parseTranscriptText = /* @__PURE__ */ __name((input) => {
2409
2560
  return { header, lines };
2410
2561
  }, "parseTranscriptText");
2411
2562
 
2412
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/vtt.js
2563
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/vtt.js
2413
2564
  var VttError = class extends Error {
2414
2565
  static {
2415
2566
  __name(this, "VttError");
@@ -2461,7 +2612,7 @@ var parseVtt = /* @__PURE__ */ __name((input) => {
2461
2612
  return cues;
2462
2613
  }, "parseVtt");
2463
2614
 
2464
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/import.js
2615
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/import.js
2465
2616
  var importFiles = /* @__PURE__ */ __name(async (files, store, now = Date.now()) => {
2466
2617
  const report = { meetings: 0, participants: 0, transcriptRows: 0, summaries: 0, warnings: [] };
2467
2618
  for (const file of files) {
@@ -2494,10 +2645,10 @@ var importFiles = /* @__PURE__ */ __name(async (files, store, now = Date.now())
2494
2645
  return report;
2495
2646
  }, "importFiles");
2496
2647
 
2497
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/links.js
2648
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/links.js
2498
2649
  var CHAT_MESSAGES_READ = 1e5;
2499
2650
 
2500
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/provider.js
2651
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/provider.js
2501
2652
  var snapshotMeetingScope = /* @__PURE__ */ __name((scope2) => {
2502
2653
  const provider = scope2?.provider;
2503
2654
  const account = scope2?.account;
@@ -2506,7 +2657,7 @@ var snapshotMeetingScope = /* @__PURE__ */ __name((scope2) => {
2506
2657
  return Object.freeze({ provider, account });
2507
2658
  }, "snapshotMeetingScope");
2508
2659
 
2509
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/meeting-management.js
2660
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/meeting-management.js
2510
2661
  var nonempty = /* @__PURE__ */ __name((value, name) => {
2511
2662
  if (typeof value !== "string" || !value.trim())
2512
2663
  throw new CliError("validation_error", `${name} must be nonempty`);
@@ -2557,7 +2708,7 @@ var validateMeetingChange = /* @__PURE__ */ __name((change, create) => {
2557
2708
  return Object.freeze(result);
2558
2709
  }, "validateMeetingChange");
2559
2710
 
2560
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/passage.js
2711
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/passage.js
2561
2712
  var meetingHitContextLimits = /* @__PURE__ */ __name((options = {}) => {
2562
2713
  const { before = 3, after = 3, bytes = 65536, max_read_bytes = 4194304, expected_fingerprint } = options;
2563
2714
  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)))
@@ -2570,7 +2721,7 @@ var validateMeetingPassage = /* @__PURE__ */ __name((reference2, options) => {
2570
2721
  throw new CliError("validation_error", "choose a cue reference and json, text or markdown output");
2571
2722
  }, "validateMeetingPassage");
2572
2723
 
2573
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/preparation-context.js
2724
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/preparation-context.js
2574
2725
  var validateMeetingPreparationContext = /* @__PURE__ */ __name((original) => {
2575
2726
  if (!original || typeof original !== "object" || Array.isArray(original))
2576
2727
  throw new CliError("validation_error", "meeting preparation context is required");
@@ -2595,7 +2746,7 @@ var validateMeetingPreparationContext = /* @__PURE__ */ __name((original) => {
2595
2746
  return { ...input, limit, maxReadBytes };
2596
2747
  }, "validateMeetingPreparationContext");
2597
2748
 
2598
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/project-evidence-answer.js
2749
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/project-evidence-answer.js
2599
2750
  var count4 = pipe(number(), integer(), minValue(0));
2600
2751
  var id = pipe(string(), minLength(1));
2601
2752
  var meetingProjectEvidence = strictObject({
@@ -2716,7 +2867,7 @@ var meetingProjectEvidenceAnswer = /* @__PURE__ */ __name((page, prepared, comma
2716
2867
  };
2717
2868
  }, "meetingProjectEvidenceAnswer");
2718
2869
 
2719
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/search-validation.js
2870
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/search-validation.js
2720
2871
  var validateMeetingHitSearch = /* @__PURE__ */ __name((query, options = {}) => {
2721
2872
  const integer3 = /* @__PURE__ */ __name((value, low, high) => Number.isSafeInteger(value) && value >= low && value <= high, "integer");
2722
2873
  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) || [
@@ -2736,7 +2887,7 @@ var validateMeetingHitSearch = /* @__PURE__ */ __name((query, options = {}) => {
2736
2887
  throw new CliError("validation_error", "choose one project selector and one tag or topic selector");
2737
2888
  }, "validateMeetingHitSearch");
2738
2889
 
2739
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/project-evidence-query.js
2890
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/project-evidence-query.js
2740
2891
  var ids = {
2741
2892
  meeting_id: "meetingId",
2742
2893
  identity_id: "participantIdentityId",
@@ -2827,7 +2978,7 @@ var prepareMeetingProjectEvidence = /* @__PURE__ */ __name((project2, request =
2827
2978
  return { project: project2.trim(), options, query: frozen.join(" AND ") };
2828
2979
  }, "prepareMeetingProjectEvidence");
2829
2980
 
2830
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/project-evidence.js
2981
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/project-evidence.js
2831
2982
  var readMeetingProjectEvidence = /* @__PURE__ */ __name(async (read, project2, request = {}, now = Date.now()) => {
2832
2983
  const prepared = prepareMeetingProjectEvidence(project2, request, now);
2833
2984
  const page = await read(prepared.project, prepared.options);
@@ -2835,7 +2986,7 @@ var readMeetingProjectEvidence = /* @__PURE__ */ __name(async (read, project2, r
2835
2986
  return meetingProjectEvidenceAnswer(page, prepared);
2836
2987
  }, "readMeetingProjectEvidence");
2837
2988
 
2838
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/pull.js
2989
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/pull.js
2839
2990
  var participantInput = /* @__PURE__ */ __name((p, provider, occurrenceId2, position, accountId) => {
2840
2991
  const { identityExternalId, ...fields } = p;
2841
2992
  const externalId = identityExternalId ?? (p.email ? `email:${p.email.toLowerCase()}` : p.externalId) ?? `name:${p.displayName ?? "unknown"}@${accountId}/${occurrenceId2}:${position}`;
@@ -2997,7 +3148,7 @@ unlinked`, format)],
2997
3148
  return report;
2998
3149
  }, "pull");
2999
3150
 
3000
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/read-answers.js
3151
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/read-answers.js
3001
3152
  var text4 = string();
3002
3153
  var count5 = pipe(number(), integer(), minValue(0));
3003
3154
  var id2 = pipe(number(), integer(), minValue(1));
@@ -3191,10 +3342,10 @@ var eventItem = /* @__PURE__ */ __name((one) => ({
3191
3342
  updated_at: new Date(one.updatedAt).toISOString()
3192
3343
  }), "eventItem");
3193
3344
 
3194
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/recording-transfer.js
3345
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/recording-transfer.js
3195
3346
  var strongRecordingValidator = /* @__PURE__ */ __name((value) => typeof value === "string" && value.length <= 1024 && /^"[\x21\x23-\x7e\x80-\xff]*"$/.test(value), "strongRecordingValidator");
3196
3347
 
3197
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/related-history.js
3348
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/related-history.js
3198
3349
  var validateMeetingRelatedHistory = /* @__PURE__ */ __name((original) => {
3199
3350
  if (!original || typeof original !== "object" || Array.isArray(original))
3200
3351
  throw new CliError("validation_error", "related history request is required");
@@ -3224,14 +3375,14 @@ var validateMeetingRelatedHistory = /* @__PURE__ */ __name((original) => {
3224
3375
  return { ...input, anchorIds: [...new Set(input.anchorIds)], limit, maxReadBytes };
3225
3376
  }, "validateMeetingRelatedHistory");
3226
3377
 
3227
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/review.js
3378
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/review.js
3228
3379
  var REVIEW_LIMIT = { default: 50, most: 200 };
3229
3380
 
3230
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/save-hints.js
3381
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/save-hints.js
3231
3382
  var SAVE_HELP = `Worth keeping \u2014 a decision, a promise, a preference? Record it with \`memo facts add\` or
3232
3383
  \`memo memories add\`, citing the msg: locator or meeting: reference as --evidence.`;
3233
3384
 
3234
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/series-history.js
3385
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/series-history.js
3235
3386
  var validateMeetingSeriesHistory = /* @__PURE__ */ __name((input) => {
3236
3387
  input.signal?.throwIfAborted();
3237
3388
  if (!Number.isSafeInteger(input.accountId) || input.accountId <= 0)
@@ -3252,7 +3403,7 @@ var validateMeetingSeriesHistory = /* @__PURE__ */ __name((input) => {
3252
3403
  return { ...input, limit, maxReadBytes };
3253
3404
  }, "validateMeetingSeriesHistory");
3254
3405
 
3255
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/upcoming-validation.js
3406
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/upcoming-validation.js
3256
3407
  var invalid4 = /* @__PURE__ */ __name((field) => {
3257
3408
  throw new CliError("invalid_response", `meeting occurrence ${field} is invalid`);
3258
3409
  }, "invalid");
@@ -3321,7 +3472,7 @@ var readOccurrenceSchedule = /* @__PURE__ */ __name((input, meetingId, limit, ma
3321
3472
  return result;
3322
3473
  }, "readOccurrenceSchedule");
3323
3474
 
3324
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/series-inventory-validation.js
3475
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/series-inventory-validation.js
3325
3476
  function invalid5(field, response = false) {
3326
3477
  throw new CliError(response ? "invalid_response" : "validation_error", `invalid meeting inventory ${field}`);
3327
3478
  }
@@ -3350,7 +3501,7 @@ var validateMeetingSeriesInventoryCursor = /* @__PURE__ */ __name((value) => {
3350
3501
  cursorDetails(value);
3351
3502
  }, "validateMeetingSeriesInventoryCursor");
3352
3503
 
3353
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/stats.js
3504
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/stats.js
3354
3505
  var MEETING_COUNTS_GROUPINGS = ["day", "week", "series"];
3355
3506
  var zoneOf = /* @__PURE__ */ __name((timeZone) => {
3356
3507
  const zone = timeZone ?? "UTC";
@@ -3485,7 +3636,7 @@ var aggregateMeetingStats = /* @__PURE__ */ __name((rows, timeZone) => {
3485
3636
  };
3486
3637
  }, "aggregateMeetingStats");
3487
3638
 
3488
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/meetings/upcoming.js
3639
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/meetings/upcoming.js
3489
3640
  var cancelled = /* @__PURE__ */ __name((signal) => {
3490
3641
  if (!signal?.aborted)
3491
3642
  return;
@@ -3555,130 +3706,7 @@ var createUpcomingMeetingReader = /* @__PURE__ */ __name((scope2, port) => {
3555
3706
  };
3556
3707
  }, "createUpcomingMeetingReader");
3557
3708
 
3558
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/domain/money.js
3559
- var CURRENCY_SCALES = {
3560
- AED: 2,
3561
- AMD: 2,
3562
- AUD: 2,
3563
- BHD: 3,
3564
- BYN: 2,
3565
- CAD: 2,
3566
- CHF: 2,
3567
- CLP: 0,
3568
- CNY: 2,
3569
- CZK: 2,
3570
- DKK: 2,
3571
- EUR: 2,
3572
- GBP: 2,
3573
- GEL: 2,
3574
- HUF: 2,
3575
- ILS: 2,
3576
- INR: 2,
3577
- ISK: 0,
3578
- JPY: 0,
3579
- KGS: 2,
3580
- KRW: 0,
3581
- KWD: 3,
3582
- KZT: 2,
3583
- NOK: 2,
3584
- PLN: 2,
3585
- RSD: 2,
3586
- RUB: 2,
3587
- SEK: 2,
3588
- THB: 2,
3589
- TRY: 2,
3590
- UAH: 2,
3591
- USD: 2,
3592
- UZS: 2,
3593
- VND: 0
3594
- };
3595
- var refuse = /* @__PURE__ */ __name((message, reason) => {
3596
- throw new CliError("validation_error", message, { reason });
3597
- }, "refuse");
3598
- var DECIMAL = /^(\d{1,15})(?:\.(\d+))?$/;
3599
- var parseDecimal = /* @__PURE__ */ __name((text6, scale) => {
3600
- const match = DECIMAL.exec(text6.trim());
3601
- if (!match || (match[2] ?? "").length > scale)
3602
- return void 0;
3603
- return BigInt(`${match[1]}${(match[2] ?? "").padEnd(scale, "0")}`);
3604
- }, "parseDecimal");
3605
- var formatDecimal = /* @__PURE__ */ __name((units, scale) => {
3606
- const value = BigInt(units);
3607
- if (value < 0n)
3608
- return `-${formatDecimal(-value, scale)}`;
3609
- const digits = value.toString().padStart(scale + 1, "0");
3610
- return scale === 0 ? digits : `${digits.slice(0, -scale)}.${digits.slice(-scale)}`;
3611
- }, "formatDecimal");
3612
- var groupDigits = /* @__PURE__ */ __name((decimal) => {
3613
- const [whole = "0", fraction] = decimal.split(".");
3614
- const grouped2 = whole.replace(/\B(?=(\d{3})+(?!\d))/g, " ");
3615
- return fraction === void 0 ? grouped2 : `${grouped2}.${fraction}`;
3616
- }, "groupDigits");
3617
- var currencyOf = /* @__PURE__ */ __name((text6) => {
3618
- const code = typeof text6 === "string" ? text6.trim().toUpperCase() : "";
3619
- if (CURRENCY_SCALES[code] === void 0)
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");
3621
- return code;
3622
- }, "currencyOf");
3623
- var scaleOf = /* @__PURE__ */ __name((currency) => CURRENCY_SCALES[currencyOf(currency)], "scaleOf");
3624
- var minorUnits = /* @__PURE__ */ __name((amount, currency, what = "an amount") => {
3625
- const scale = scaleOf(currency);
3626
- const units = typeof amount === "string" ? parseDecimal(amount, scale) : void 0;
3627
- if (units === void 0 || units > BigInt(Number.MAX_SAFE_INTEGER))
3628
- return refuse(`${what} is a decimal string with at most ${scale} decimal${scale === 1 ? "" : "s"} for ${currency}, such as "${formatDecimal(5e3 * 10 ** scale, scale)}"`, "money.amount");
3629
- return Number(units);
3630
- }, "minorUnits");
3631
- var signedMinorUnits = /* @__PURE__ */ __name((amount, currency, what = "an amount") => {
3632
- if (typeof amount !== "string" || !amount.trim().startsWith("-"))
3633
- return minorUnits(amount, currency, what);
3634
- const units = minorUnits(amount.trim().slice(1), currency, what);
3635
- return units === 0 ? 0 : -units;
3636
- }, "signedMinorUnits");
3637
- var moneyOf = /* @__PURE__ */ __name((units, currency) => ({
3638
- amount: formatDecimal(units, scaleOf(currency)),
3639
- currency
3640
- }), "moneyOf");
3641
- var moneyLabel = /* @__PURE__ */ __name((units, currency) => `${groupDigits(formatDecimal(units, scaleOf(currency)))} ${currency}`, "moneyLabel");
3642
- var QUANTITY_SCALE = 3;
3643
- var quantityOf = /* @__PURE__ */ __name((text6) => {
3644
- const thousandths = typeof text6 === "string" ? parseDecimal(text6, QUANTITY_SCALE) : void 0;
3645
- if (thousandths === void 0 || thousandths === 0n)
3646
- return refuse('a quantity is a decimal string above 0 with at most 3 decimals, such as "1.5"', "money.quantity");
3647
- const plain = formatDecimal(thousandths, QUANTITY_SCALE).replace(/\.?0+$/, "");
3648
- return { text: plain, thousandths };
3649
- }, "quantityOf");
3650
- var lineUnits = /* @__PURE__ */ __name((thousandths, unitPrice) => Number((thousandths * BigInt(unitPrice) + 500n) / 1000n), "lineUnits");
3651
-
3652
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/domain/finance.js
3653
- var INVOICE_DIRECTIONS = ["receivable", "payable"];
3654
- var INVOICE_STATUSES = ["draft", "issued", "partly_paid", "paid", "void"];
3655
- var MONEY_DIRECTIONS = ["in", "out"];
3656
- var FINANCE_REVIEWS = ["proposed", "confirmed", "rejected"];
3657
- var settledStatus = /* @__PURE__ */ __name((current, total, paid) => {
3658
- if (current === "draft" || current === "void")
3659
- return current;
3660
- if (paid <= 0)
3661
- return "issued";
3662
- return paid < total ? "partly_paid" : "paid";
3663
- }, "settledStatus");
3664
- var dayMonth = /* @__PURE__ */ __name((date) => date === null ? null : `${date.slice(8, 10)}.${date.slice(5, 7)}`, "dayMonth");
3665
- var notes = /* @__PURE__ */ __name((...words2) => {
3666
- const kept = words2.filter((word) => word !== null);
3667
- return kept.length === 0 ? "" : ` (${kept.join(", ")})`;
3668
- }, "notes");
3669
- var invoiceLine = /* @__PURE__ */ __name((invoice) => {
3670
- const party = invoice.counterpartyName === null ? "" : `${invoice.direction === "receivable" ? " to" : " from"} ${invoice.counterpartyName}`;
3671
- const due = invoice.dueDate === null ? "" : `, due ${dayMonth(invoice.dueDate)}`;
3672
- return `${invoice.number ?? `#${invoice.id}`} \xB7 ${moneyLabel(invoice.total, invoice.currency)}${party}${due}` + notes(invoice.status.replace("_", " "), invoice.review === "confirmed" ? null : invoice.review);
3673
- }, "invoiceLine");
3674
- var paymentLine = /* @__PURE__ */ __name((payment) => {
3675
- const party = payment.partyName === null ? "" : `${payment.direction === "in" ? " from" : " to"} ${payment.partyName}`;
3676
- return `${moneyLabel(payment.amount, payment.currency)}${party}, ${dayMonth(payment.date)}` + notes(payment.review === "confirmed" ? null : payment.review);
3677
- }, "paymentLine");
3678
- var invoiceTitle = /* @__PURE__ */ __name((invoice) => `Invoice ${invoiceLine(invoice)}`, "invoiceTitle");
3679
- var paymentEntryTitle = /* @__PURE__ */ __name((payment) => `Payment \xB7 ${paymentLine(payment)}`, "paymentEntryTitle");
3680
-
3681
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/domain/deals.js
3709
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/domain/deals.js
3682
3710
  var DEAL_KINDS = ["deal", "lead"];
3683
3711
  var DEAL_STATUSES = ["open", "won", "lost"];
3684
3712
  var STAGE_OUTCOMES = DEAL_STATUSES;
@@ -3688,7 +3716,7 @@ var dealLine = /* @__PURE__ */ __name((deal) => {
3688
3716
  return `${deal.title} \xB7 ${deal.stage}${money}${deal.status === "open" ? "" : ` (${deal.status})`}`;
3689
3717
  }, "dealLine");
3690
3718
 
3691
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/domain/orders.js
3719
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/domain/orders.js
3692
3720
  var ORDER_STATUSES = ["placed", "shipped", "delivered", "cancelled", "returned"];
3693
3721
  var ORDER_PURPOSES = ["personal", "business", "client", "other"];
3694
3722
  var orderLine = /* @__PURE__ */ __name((order) => {
@@ -3698,7 +3726,7 @@ var orderLine = /* @__PURE__ */ __name((order) => {
3698
3726
  }, "orderLine");
3699
3727
  var orderTitle = /* @__PURE__ */ __name((order) => `Order ${orderLine(order)}`, "orderTitle");
3700
3728
 
3701
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/domain/relations.js
3729
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/domain/relations.js
3702
3730
  var ORGANIZATION_ROLES = [
3703
3731
  "employee",
3704
3732
  "contractor",
@@ -3773,7 +3801,7 @@ var isUsable = /* @__PURE__ */ __name((standing) => standing === "confirmed" ||
3773
3801
  var notOverriddenSql = /* @__PURE__ */ __name((alias) => `NOT EXISTS (SELECT 1 FROM links override WHERE override.kind = ${alias}.kind AND override.from_type = ${alias}.from_type AND override.from_id = ${alias}.from_id AND override.to_type = ${alias}.to_type AND override.to_id = ${alias}.to_id AND json_extract(override.metadata, '$.overrides') = ${alias}.id)`, "notOverriddenSql");
3774
3802
  var usableLinkSql = /* @__PURE__ */ __name((alias, now) => `(${alias}.confirmed = 1 OR (${alias}.account_id IS NOT NULL AND ${alias}.deleted_at IS NULL))` + (now === void 0 ? "" : ` AND (${alias}.ends_at IS NULL OR ${alias}.ends_at > ${Math.trunc(now)})`), "usableLinkSql");
3775
3803
 
3776
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/domain/tags.js
3804
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/domain/tags.js
3777
3805
  var TAG_TYPES = ["chat", "contact", "message", "task"];
3778
3806
  var TAG = /^[a-z0-9-]{1,32}$/;
3779
3807
  var tagOf = /* @__PURE__ */ __name((value) => {
@@ -3787,7 +3815,7 @@ var normalizeTag = /* @__PURE__ */ __name((value) => {
3787
3815
  return tag;
3788
3816
  }, "normalizeTag");
3789
3817
 
3790
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/store/sqlite/link-kinds.js
3818
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/store/sqlite/link-kinds.js
3791
3819
  var LINK_KINDS = [
3792
3820
  "links-to",
3793
3821
  "blocked-by",
@@ -3811,7 +3839,7 @@ var LINK_SOURCES = [...LINK_ORIGINS, "calendar"];
3811
3839
  var linkKind = /* @__PURE__ */ __name((kind) => `'${kind}'`, "linkKind");
3812
3840
  var COUNTERPART_ROLE = "counterpart";
3813
3841
 
3814
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/tasks/model.js
3842
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/tasks/model.js
3815
3843
  var TASK_KINDS = ["question", "request", "mention", "promise"];
3816
3844
  var TASK_STATES = ["open", "todo", "in_progress", "done", "dismissed"];
3817
3845
  var CLOSED_STATES = ["done", "dismissed"];
@@ -3826,7 +3854,7 @@ function closeTask(task, state, by, at, reason) {
3826
3854
  }
3827
3855
  __name(closeTask, "closeTask");
3828
3856
 
3829
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/tasks/priority.js
3857
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/tasks/priority.js
3830
3858
  var PRIORITY_LABELS = ["low", "medium", "high", "critical"];
3831
3859
  var MIDDLE = { low: 0.125, medium: 0.375, high: 0.625, critical: 0.875 };
3832
3860
  var LEGACY_PRIORITY_SCORES = [0.875, 0.625, 0.375, 0.1875, 0.0625];
@@ -3855,13 +3883,13 @@ var priorityOf = /* @__PURE__ */ __name((value) => {
3855
3883
  }, "priorityOf");
3856
3884
  var priorityOption = /* @__PURE__ */ __name((value) => priorityOf(value) ?? "none", "priorityOption");
3857
3885
 
3858
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/tasks/store.js
3886
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/tasks/store.js
3859
3887
  function matches2(task, filter) {
3860
3888
  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);
3861
3889
  }
3862
3890
  __name(matches2, "matches");
3863
3891
 
3864
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/tasks/service.js
3892
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/tasks/service.js
3865
3893
  function createTaskService({ store, now = /* @__PURE__ */ __name(() => /* @__PURE__ */ new Date(), "now"), newId = /* @__PURE__ */ __name(() => crypto.randomUUID(), "newId") }) {
3866
3894
  async function find(id4) {
3867
3895
  const task = await store.get(id4);
@@ -3921,7 +3949,7 @@ function median(values) {
3921
3949
  }
3922
3950
  __name(median, "median");
3923
3951
 
3924
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/domain/knowledge.js
3952
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/domain/knowledge.js
3925
3953
  var FACT_STATUSES = ["proposed", "accepted", "superseded", "reversed", "rejected"];
3926
3954
  var MEMORY_KINDS = ["summary", "digest", "preference"];
3927
3955
  var MEMORY_STATUSES = ["proposed", "confirmed", "stale", "superseded"];
@@ -3929,7 +3957,7 @@ var MEMORY_SCOPES = ["personal", "work"];
3929
3957
  var WORK_TASK_TYPES = ["bug", "feature", "chore"];
3930
3958
  var TASK_TYPES2 = [...WORK_TASK_TYPES, ...TASK_KINDS];
3931
3959
 
3932
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/entities/fields.js
3960
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/entities/fields.js
3933
3961
  var text5 = string();
3934
3962
  var id3 = pipe(string(), minLength(1));
3935
3963
  var time = isoTime;
@@ -3953,7 +3981,7 @@ var author = strictObject({
3953
3981
  name: nullable(text5)
3954
3982
  });
3955
3983
 
3956
- // node_modules/.pnpm/@wirecat+cli-core@0.609.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_cc90521890eb0d504a7d45d35f643969/node_modules/@wirecat/cli-core/dist/entities/knowledge-lists.js
3984
+ // node_modules/.pnpm/@wirecat+cli-core@0.611.0_@wirecat+cli-base@0.82.0_commander@15.0.0_esbuild@0.28.2_type_019e5129f390ba1047db736f75b19440/node_modules/@wirecat/cli-core/dist/entities/knowledge-lists.js
3957
3985
  var organization = strictObject({
3958
3986
  id: id3,
3959
3987
  ref: reference,
@@ -4106,12 +4134,24 @@ export {
4106
4134
  MONEY_DIRECTIONS,
4107
4135
  FINANCE_REVIEWS,
4108
4136
  settledStatus,
4109
- dayMonth,
4110
- notes,
4111
4137
  invoiceLine,
4112
4138
  paymentLine,
4113
4139
  invoiceTitle,
4114
4140
  paymentEntryTitle,
4141
+ CATALOG_KINDS,
4142
+ BUSINESS_KINDS,
4143
+ CONTRACT_KINDS,
4144
+ CONTRACT_STATUSES,
4145
+ SUBSCRIPTION_STATUSES,
4146
+ WALLET_KINDS,
4147
+ TRANSACTION_STATUSES,
4148
+ ORDER_DIRECTIONS,
4149
+ intervalOf,
4150
+ productLine,
4151
+ contractLine,
4152
+ subscriptionLine,
4153
+ walletLine,
4154
+ transactionLine,
4115
4155
  DEAL_KINDS,
4116
4156
  DEAL_STATUSES,
4117
4157
  STAGE_OUTCOMES,