@wirecat/cli-memo 0.131.29 → 0.131.30

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 (129) hide show
  1. package/dist/bin/memo.js +2 -2
  2. package/dist/bundle/{all-profiles-HXT2KPB6.js → all-profiles-4XCG2A54.js} +5 -5
  3. package/dist/bundle/{anthropic-C6H35WZP.js → anthropic-MAVIW4DJ.js} +3 -3
  4. package/dist/bundle/{app-server-Y6JGICRB.js → app-server-LGSYLIB3.js} +35 -35
  5. package/dist/bundle/auto-72Y6UJWK.js +86 -0
  6. package/dist/bundle/{bun-K5H33WQK.js → bun-XWUEHWDW.js} +2 -2
  7. package/dist/bundle/{bun-sqlite-2NGQT7HH.js → bun-sqlite-OSAC45TI.js} +2 -2
  8. package/dist/bundle/{chunk-7OYQFT5N.js → chunk-2NEXX3EI.js} +1 -1
  9. package/dist/bundle/{chunk-WI7KTIMF.js → chunk-3DXTHN5C.js} +7 -7
  10. package/dist/bundle/{chunk-P5FETWRW.js → chunk-3V5JXPGK.js} +1 -1
  11. package/dist/bundle/{chunk-WFQPCCM2.js → chunk-5CKE7LAP.js} +1 -1
  12. package/dist/bundle/{chunk-ERRC42BB.js → chunk-5R3OXHIN.js} +1 -1
  13. package/dist/bundle/{chunk-H6JNEHUC.js → chunk-6SE6ZDBF.js} +1 -1
  14. package/dist/bundle/{chunk-7PH33JE4.js → chunk-6ZVN4S36.js} +2 -2
  15. package/dist/bundle/{chunk-RGPCN63U.js → chunk-76MMXZ3W.js} +4 -4
  16. package/dist/bundle/{chunk-PUQYCAEP.js → chunk-7VJZKUN3.js} +9 -9
  17. package/dist/bundle/{chunk-HBKYPSX3.js → chunk-B6S42B6J.js} +11 -11
  18. package/dist/bundle/{chunk-XNV2JTJ4.js → chunk-CNAOMV43.js} +1 -1
  19. package/dist/bundle/{chunk-MJF6VGW4.js → chunk-CYUP7HQG.js} +421 -360
  20. package/dist/bundle/{chunk-BWQMZNDC.js → chunk-D6BK3H4D.js} +4 -4
  21. package/dist/bundle/{chunk-R7XIZMM5.js → chunk-DIQAOLWH.js} +1 -1
  22. package/dist/bundle/{chunk-5ZWRS2JY.js → chunk-DIT5NA73.js} +5 -5
  23. package/dist/bundle/{chunk-SQ6OFUHW.js → chunk-DYNSZDXG.js} +20 -20
  24. package/dist/bundle/{chunk-2O2RWKUT.js → chunk-EEKOBGQ7.js} +1 -1
  25. package/dist/bundle/{chunk-QVFB2MVU.js → chunk-EJZKYJKO.js} +2 -2
  26. package/dist/bundle/{chunk-KFSZAV5L.js → chunk-GACW4GZZ.js} +4 -4
  27. package/dist/bundle/{chunk-DXCBZT4T.js → chunk-GN3U74DV.js} +12 -12
  28. package/dist/bundle/{chunk-MPNDEGMC.js → chunk-GSCFCNGO.js} +7 -7
  29. package/dist/bundle/{chunk-46ACMQUU.js → chunk-GW2KCP4G.js} +27 -27
  30. package/dist/bundle/{chunk-65YDJ3Z4.js → chunk-H52RNBPU.js} +2 -2
  31. package/dist/bundle/{chunk-FUMGREBO.js → chunk-HWJHWNBW.js} +3 -3
  32. package/dist/bundle/{chunk-XHHSQ4FN.js → chunk-IIXZMACE.js} +14 -9
  33. package/dist/bundle/{chunk-G62DN6QY.js → chunk-JHLGFPMK.js} +2 -2
  34. package/dist/bundle/{chunk-XUHVJGIL.js → chunk-K6Z6B2CW.js} +10 -10
  35. package/dist/bundle/{chunk-H3NMOWPB.js → chunk-KJE2KFYH.js} +198 -52
  36. package/dist/bundle/{chunk-UZUNSDGN.js → chunk-M3REIIOH.js} +1 -1
  37. package/dist/bundle/{chunk-HVD2CTPH.js → chunk-MHHLYRRD.js} +1 -1
  38. package/dist/bundle/{chunk-2WGR73KL.js → chunk-MLDBSKW6.js} +8 -8
  39. package/dist/bundle/{chunk-GVYOICNB.js → chunk-N4AWIP4D.js} +5 -5
  40. package/dist/bundle/{chunk-6YDPWVDH.js → chunk-NUEIRBKY.js} +1 -1
  41. package/dist/bundle/{chunk-M3VBB37S.js → chunk-PJM4QQBT.js} +2 -2
  42. package/dist/bundle/{chunk-NIEWG4OY.js → chunk-Q3XFJOAY.js} +1 -1
  43. package/dist/bundle/{chunk-IQEEOXBV.js → chunk-QQBRNKHQ.js} +51 -50
  44. package/dist/bundle/{chunk-IIM3FF5L.js → chunk-RCPP2Q5O.js} +6 -6
  45. package/dist/bundle/{chunk-6IJ7XNK5.js → chunk-RUWY43XR.js} +252 -246
  46. package/dist/bundle/{chunk-KJEJOWJY.js → chunk-S34FLB7K.js} +2 -2
  47. package/dist/bundle/{chunk-6BS3FHTC.js → chunk-SIY75R4D.js} +5 -5
  48. package/dist/bundle/{chunk-FJXFU7NN.js → chunk-SQHIXN2N.js} +2 -2
  49. package/dist/bundle/{chunk-KIJ7UJHD.js → chunk-TIQUMRSO.js} +215 -151
  50. package/dist/bundle/{chunk-SZUYOU6U.js → chunk-TIU2N2SP.js} +20 -20
  51. package/dist/bundle/{chunk-YZKHWANJ.js → chunk-U5PEYBQT.js} +4 -4
  52. package/dist/bundle/{chunk-YLVSSQJP.js → chunk-U6NL7SAX.js} +5 -5
  53. package/dist/bundle/{chunk-7ACGYEGV.js → chunk-UBYCWQSV.js} +4 -4
  54. package/dist/bundle/{chunk-S67KFN67.js → chunk-UGV57SZH.js} +1 -1
  55. package/dist/bundle/{chunk-5FEJKSQJ.js → chunk-USLIHXWA.js} +3 -3
  56. package/dist/bundle/{chunk-KCAELZXB.js → chunk-UVO7UNYH.js} +1 -1
  57. package/dist/bundle/{chunk-Q63L5WS2.js → chunk-UXGQXP5U.js} +3 -3
  58. package/dist/bundle/{chunk-ERZLVE54.js → chunk-VDGKBAS2.js} +1038 -670
  59. package/dist/bundle/{chunk-6NGLATFQ.js → chunk-WUV5O5HN.js} +4 -4
  60. package/dist/bundle/{chunk-W7T2JSKY.js → chunk-XDQIJSJE.js} +1 -1
  61. package/dist/bundle/{chunk-KCQPEY6C.js → chunk-XV7YW65Y.js} +4 -4
  62. package/dist/bundle/{chunk-ZW44VJNY.js → chunk-YJSCSLAT.js} +3 -3
  63. package/dist/bundle/{chunk-HAC3CWPB.js → chunk-YUEAM6ZP.js} +7 -7
  64. package/dist/bundle/{chunk-FBSY3DVN.js → chunk-Z7J7SVZJ.js} +1 -1
  65. package/dist/bundle/{command-contract-AFUDV7JM.js → command-contract-ZLDRM6DG.js} +11 -11
  66. package/dist/bundle/{decode-P5SEK56D.js → decode-Y2DWOSOW.js} +2 -2
  67. package/dist/bundle/{echarts-CLHJYMDK.js → echarts-2ZHQHZ4R.js} +2 -2
  68. package/dist/bundle/{embed-X6H74LGP.js → embed-JEER47U6.js} +3 -3
  69. package/dist/bundle/{embedder-H5SWOSEL.js → embedder-BJQEGCE5.js} +6 -6
  70. package/dist/bundle/{entry-66SEZMKI.js → entry-YKH7GAX7.js} +4 -4
  71. package/dist/bundle/failure-JE2JCLGO.js +66 -0
  72. package/dist/bundle/{first-run-S7EW77F6.js → first-run-ESH5B55J.js} +5 -5
  73. package/dist/bundle/{first-screen-6GA36WQT.js → first-screen-RTATNK4S.js} +12 -12
  74. package/dist/bundle/{instructions-IUUSY6DO.js → instructions-NJYYRMYK.js} +1 -1
  75. package/dist/bundle/{mcp-7SDVTKCE.js → mcp-ZRKYZLNM.js} +35 -35
  76. package/dist/bundle/memo.js +6 -6
  77. package/dist/bundle/{node-6T5LUBAE.js → node-DBNZMTJO.js} +2 -2
  78. package/dist/bundle/{node-sqlite-ZTDWPRJU.js → node-sqlite-CCNVCZSG.js} +3 -3
  79. package/dist/bundle/{oauth-G4TCULLQ.js → oauth-UV7KBQFP.js} +4 -4
  80. package/dist/bundle/{open-DRJ24C7U.js → open-VTOLLLS4.js} +2 -2
  81. package/dist/bundle/{openai-3DSR7Z4Z.js → openai-RTJNHBCG.js} +7 -7
  82. package/dist/bundle/{process-IPM3OJDN.js → process-TAFRBB53.js} +1 -1
  83. package/dist/bundle/{program-6E2SWPCU.js → program-4UU6HJQM.js} +215 -110
  84. package/dist/bundle/{prompt-XKR6EQAT.js → prompt-ESMCTEJI.js} +2 -2
  85. package/dist/bundle/{recognize-GZXAXTEH.js → recognize-V53GEY6R.js} +1 -1
  86. package/dist/bundle/{remote-Y5ML6KR4.js → remote-KGKRAGA6.js} +4 -4
  87. package/dist/bundle/{rerank-FNNXUTMN.js → rerank-DTD24I7Y.js} +4 -4
  88. package/dist/bundle/{serve-BGU5ERNX.js → serve-2DVSIKM7.js} +6 -6
  89. package/dist/bundle/server-ODWZJIRX.js +48 -0
  90. package/dist/bundle/{server-3L4FHYFM.js → server-UBMV5OI7.js} +50 -50
  91. package/dist/bundle/server-V5YRZZID.js +61 -0
  92. package/dist/bundle/{state-WAMVO34N.js → state-ONT6T6PY.js} +3 -3
  93. package/dist/bundle/{store-PVY4UTTR.js → store-TOYBDMML.js} +9 -9
  94. package/dist/bundle/store-maintenance-command-HIMIMWFU.js +48 -0
  95. package/dist/bundle/update-AO5UWEBY.js +69 -0
  96. package/dist/discovery/command.d.ts.map +1 -1
  97. package/dist/discovery/command.js +1 -0
  98. package/dist/discovery/command.js.map +1 -1
  99. package/dist/examples.d.ts.map +1 -1
  100. package/dist/examples.js +6 -0
  101. package/dist/examples.js.map +1 -1
  102. package/dist/finance/orders-command.d.ts +12 -0
  103. package/dist/finance/orders-command.d.ts.map +1 -0
  104. package/dist/finance/orders-command.js +92 -0
  105. package/dist/finance/orders-command.js.map +1 -0
  106. package/dist/mail/findings-command.d.ts.map +1 -1
  107. package/dist/mail/findings-command.js +7 -2
  108. package/dist/mail/findings-command.js.map +1 -1
  109. package/dist/program.d.ts.map +1 -1
  110. package/dist/program.js +30 -0
  111. package/dist/program.js.map +1 -1
  112. package/dist/review/kinds.d.ts +1 -1
  113. package/dist/review/kinds.d.ts.map +1 -1
  114. package/dist/review/kinds.js +1 -0
  115. package/dist/review/kinds.js.map +1 -1
  116. package/dist/review/review.d.ts.map +1 -1
  117. package/dist/review/review.js +1 -0
  118. package/dist/review/review.js.map +1 -1
  119. package/dist/version.d.ts +1 -1
  120. package/dist/version.js +1 -1
  121. package/package.json +2 -2
  122. package/skills/mail-triage/SKILL.md +30 -4
  123. package/dist/bundle/auto-A2Y225YZ.js +0 -86
  124. package/dist/bundle/failure-PNTFMNKK.js +0 -66
  125. package/dist/bundle/server-5F3GJPG3.js +0 -48
  126. package/dist/bundle/server-JX5TWAAW.js +0 -61
  127. package/dist/bundle/store-maintenance-command-RGZJWNE2.js +0 -48
  128. package/dist/bundle/update-VJLZT6ER.js +0 -69
  129. /package/dist/bundle/{chunk-XGTIABPY.js → chunk-G6I5A2N3.js} +0 -0
@@ -6,17 +6,17 @@ import {
6
6
  autoState,
7
7
  lastAutoRun,
8
8
  recordAutoRun
9
- } from "./chunk-YZKHWANJ.js";
9
+ } from "./chunk-U5PEYBQT.js";
10
10
  import {
11
11
  installer,
12
12
  latest,
13
13
  upgradeCommand
14
- } from "./chunk-YLVSSQJP.js";
14
+ } from "./chunk-U6NL7SAX.js";
15
15
  import {
16
16
  mcpOwnerAllowed,
17
17
  readOnlyAvailability,
18
18
  refuseWritesUnderLock
19
- } from "./chunk-GVYOICNB.js";
19
+ } from "./chunk-N4AWIP4D.js";
20
20
  import {
21
21
  answers,
22
22
  atDetail as atDetail2,
@@ -26,7 +26,7 @@ import {
26
26
  trackAnswers,
27
27
  wholeList,
28
28
  withStore
29
- } from "./chunk-KCQPEY6C.js";
29
+ } from "./chunk-XV7YW65Y.js";
30
30
  import {
31
31
  DIALECTS,
32
32
  MEMO_SETTINGS,
@@ -45,15 +45,15 @@ import {
45
45
  scheduleLimits,
46
46
  unsetConfigKey,
47
47
  updateConfig
48
- } from "./chunk-KFSZAV5L.js";
48
+ } from "./chunk-GACW4GZZ.js";
49
49
  import "./chunk-QP3KNC5D.js";
50
- import "./chunk-FJXFU7NN.js";
51
- import "./chunk-MPNDEGMC.js";
52
- import "./chunk-5FEJKSQJ.js";
50
+ import "./chunk-SQHIXN2N.js";
51
+ import "./chunk-GSCFCNGO.js";
52
+ import "./chunk-USLIHXWA.js";
53
53
  import {
54
54
  errorObject,
55
55
  recognisable
56
- } from "./chunk-Q63L5WS2.js";
56
+ } from "./chunk-UXGQXP5U.js";
57
57
  import {
58
58
  DISCOVERY_DESCRIPTIONS,
59
59
  SUMMARY_UNTRUSTED,
@@ -100,9 +100,9 @@ import {
100
100
  tasksStatsCommand,
101
101
  unansweredHours,
102
102
  withSqliteSidecars
103
- } from "./chunk-6IJ7XNK5.js";
104
- import "./chunk-7OYQFT5N.js";
105
- import "./chunk-WFQPCCM2.js";
103
+ } from "./chunk-RUWY43XR.js";
104
+ import "./chunk-2NEXX3EI.js";
105
+ import "./chunk-5CKE7LAP.js";
106
106
  import {
107
107
  MAIL_HIT_UNTRUSTED,
108
108
  allHitItem,
@@ -112,21 +112,21 @@ import {
112
112
  noteHitItem,
113
113
  offsetOf,
114
114
  shownOf
115
- } from "./chunk-SQ6OFUHW.js";
116
- import "./chunk-6YDPWVDH.js";
115
+ } from "./chunk-DYNSZDXG.js";
116
+ import "./chunk-NUEIRBKY.js";
117
117
  import {
118
118
  SKILL_TARGETS,
119
119
  skillCommand,
120
120
  skillPath,
121
121
  skillVersion
122
- } from "./chunk-XHHSQ4FN.js";
122
+ } from "./chunk-IIXZMACE.js";
123
123
  import {
124
124
  messageItem,
125
125
  modelGateway,
126
126
  storeInfo,
127
127
  storeSummary
128
- } from "./chunk-IQEEOXBV.js";
129
- import "./chunk-SZUYOU6U.js";
128
+ } from "./chunk-QQBRNKHQ.js";
129
+ import "./chunk-TIU2N2SP.js";
130
130
  import {
131
131
  AGENDA_DEFAULTS,
132
132
  DEFAULT_BACKEND,
@@ -192,18 +192,18 @@ import {
192
192
  termField,
193
193
  typedQuery,
194
194
  withQuery
195
- } from "./chunk-MJF6VGW4.js";
195
+ } from "./chunk-CYUP7HQG.js";
196
196
  import {
197
197
  readBoundedUtf8File,
198
198
  writeFileAtomic
199
- } from "./chunk-DXCBZT4T.js";
199
+ } from "./chunk-GN3U74DV.js";
200
200
  import {
201
201
  commandsText,
202
202
  inSection,
203
203
  installHelp
204
- } from "./chunk-IIM3FF5L.js";
204
+ } from "./chunk-RCPP2Q5O.js";
205
205
  import "./chunk-HTQTIKWP.js";
206
- import "./chunk-7PH33JE4.js";
206
+ import "./chunk-6ZVN4S36.js";
207
207
  import {
208
208
  Command,
209
209
  FETCH,
@@ -244,35 +244,31 @@ import {
244
244
  text,
245
245
  time,
246
246
  untrusted
247
- } from "./chunk-KIJ7UJHD.js";
248
- import "./chunk-WI7KTIMF.js";
249
- import "./chunk-XUHVJGIL.js";
247
+ } from "./chunk-TIQUMRSO.js";
248
+ import "./chunk-3DXTHN5C.js";
249
+ import "./chunk-K6Z6B2CW.js";
250
250
  import {
251
251
  isNewer
252
252
  } from "./chunk-I7PL5WX2.js";
253
253
  import "./chunk-YPF6OS37.js";
254
- import "./chunk-ZW44VJNY.js";
255
- import "./chunk-PUQYCAEP.js";
254
+ import "./chunk-YJSCSLAT.js";
255
+ import "./chunk-7VJZKUN3.js";
256
256
  import {
257
257
  mailHolderVariable,
258
258
  readOnlyLockOf
259
- } from "./chunk-XNV2JTJ4.js";
260
- import "./chunk-RGPCN63U.js";
259
+ } from "./chunk-CNAOMV43.js";
260
+ import "./chunk-76MMXZ3W.js";
261
261
  import {
262
262
  releaseLock,
263
263
  takeLock
264
- } from "./chunk-KJEJOWJY.js";
265
- import "./chunk-2O2RWKUT.js";
264
+ } from "./chunk-S34FLB7K.js";
265
+ import "./chunk-EEKOBGQ7.js";
266
266
  import {
267
267
  EVIDENCE_FINDINGS_KIND,
268
- FINANCE_REVIEWS,
269
- INVOICE_DIRECTIONS,
270
- INVOICE_STATUSES,
271
268
  MAIL_FINDINGS_KIND,
272
269
  MAX_FILE_BYTES,
273
270
  MENTION_QUERY,
274
271
  MESSAGE_PARSING,
275
- MONEY_DIRECTIONS,
276
272
  ORGANIZATION_KINDS,
277
273
  PROJECT_ANNOTATIONS_MAX_BYTES,
278
274
  PROJECT_TASK_FIELDS,
@@ -293,8 +289,6 @@ import {
293
289
  isFolderProvider,
294
290
  looksLikeReference,
295
291
  mailOwnText,
296
- minorUnits,
297
- moneyOf,
298
292
  openOf,
299
293
  openStore,
300
294
  parseLocator,
@@ -303,14 +297,20 @@ import {
303
297
  queryFilter,
304
298
  refLabel,
305
299
  validateFields
306
- } from "./chunk-ERZLVE54.js";
300
+ } from "./chunk-VDGKBAS2.js";
307
301
  import {
308
302
  FACT_STATUSES,
309
303
  FACT_TYPES,
304
+ FINANCE_REVIEWS,
305
+ INVOICE_DIRECTIONS,
306
+ INVOICE_STATUSES,
310
307
  MEETING_FINDINGS_KIND,
311
308
  MEMORY_KINDS,
312
309
  MEMORY_SCOPES,
313
310
  MEMORY_STATUSES,
311
+ MONEY_DIRECTIONS,
312
+ ORDER_PURPOSES,
313
+ ORDER_STATUSES,
314
314
  PRIORITY_LABELS,
315
315
  TASK_STATES,
316
316
  TASK_TYPES,
@@ -320,6 +320,8 @@ import {
320
320
  defineQuery,
321
321
  isClosedState,
322
322
  meetingHitsList,
323
+ minorUnits,
324
+ moneyOf,
323
325
  normalizeTag,
324
326
  parseLucene,
325
327
  parseMeetingReference,
@@ -330,22 +332,22 @@ import {
330
332
  timezoneOf,
331
333
  validateQuery,
332
334
  walkQuery
333
- } from "./chunk-H3NMOWPB.js";
334
- import "./chunk-NIEWG4OY.js";
335
- import "./chunk-HAC3CWPB.js";
336
- import "./chunk-7ACGYEGV.js";
337
- import "./chunk-65YDJ3Z4.js";
338
- import "./chunk-HVD2CTPH.js";
339
- import "./chunk-P5FETWRW.js";
340
- import "./chunk-S67KFN67.js";
341
- import "./chunk-G62DN6QY.js";
342
- import "./chunk-5ZWRS2JY.js";
335
+ } from "./chunk-KJE2KFYH.js";
336
+ import "./chunk-Q3XFJOAY.js";
337
+ import "./chunk-YUEAM6ZP.js";
338
+ import "./chunk-UBYCWQSV.js";
339
+ import "./chunk-H52RNBPU.js";
340
+ import "./chunk-MHHLYRRD.js";
341
+ import "./chunk-3V5JXPGK.js";
342
+ import "./chunk-UGV57SZH.js";
343
+ import "./chunk-JHLGFPMK.js";
344
+ import "./chunk-DIT5NA73.js";
343
345
  import {
344
346
  sharedModelsDirectory
345
- } from "./chunk-FUMGREBO.js";
347
+ } from "./chunk-HWJHWNBW.js";
346
348
  import {
347
349
  storePath
348
- } from "./chunk-R7XIZMM5.js";
350
+ } from "./chunk-DIQAOLWH.js";
349
351
  import {
350
352
  provideTerminal,
351
353
  terminalOf
@@ -355,12 +357,12 @@ import {
355
357
  REASONS,
356
358
  STORE_CLIENT,
357
359
  VERSION
358
- } from "./chunk-W7T2JSKY.js";
360
+ } from "./chunk-XDQIJSJE.js";
359
361
  import "./chunk-KV4267S4.js";
360
362
  import "./chunk-LU3WKZBA.js";
361
363
  import "./chunk-D72URWJE.js";
362
- import "./chunk-6BS3FHTC.js";
363
- import "./chunk-H6JNEHUC.js";
364
+ import "./chunk-SIY75R4D.js";
365
+ import "./chunk-6SE6ZDBF.js";
364
366
  import {
365
367
  createDeadline,
366
368
  createRenderer,
@@ -401,7 +403,7 @@ import {
401
403
  errorCodes,
402
404
  isCliError
403
405
  } from "./chunk-EB2IULWB.js";
404
- import "./chunk-ERRC42BB.js";
406
+ import "./chunk-5R3OXHIN.js";
405
407
  import {
406
408
  __commonJS,
407
409
  __name,
@@ -10422,10 +10424,10 @@ var collect = /* @__PURE__ */ __name((value, previous = []) => [...previous, val
10422
10424
  var readScope = /* @__PURE__ */ __name((command, help = ONE_ACCOUNT_HELP) => sourceOptions(command, help).option("--json", "print JSON; --json=id,title keeps only those fields"), "readScope");
10423
10425
  var writeScope = /* @__PURE__ */ __name((command, help) => writeOptions(command, help).option("--json", "print JSON; --json=id,title keeps only those fields"), "writeScope");
10424
10426
 
10425
- // node_modules/.pnpm/@wirecat+cli-core@0.573.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ebc00d7fcc6d9dd842f7c9d3c7667e19/node_modules/@wirecat/cli-core/dist/mail/account-key.js
10427
+ // node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/account-key.js
10426
10428
  var mailAccountKey = /* @__PURE__ */ __name((address) => ({ provider: "email", account: address.toLowerCase() }), "mailAccountKey");
10427
10429
 
10428
- // node_modules/.pnpm/@wirecat+cli-core@0.573.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ebc00d7fcc6d9dd842f7c9d3c7667e19/node_modules/@wirecat/cli-core/dist/mail/attachments.js
10430
+ // node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/attachments.js
10429
10431
  var MAX_ATTACHMENT_CHARS = 2e5;
10430
10432
  var DEFAULT_ATTACHMENT_POLICY = { read: true, maxBytes: 10 * 1024 * 1024 };
10431
10433
  var POLICY_SKIPS = ["not-read", "too-large"];
@@ -10464,11 +10466,11 @@ var readAttachments = /* @__PURE__ */ __name(async (mail, messageId, { loadEngin
10464
10466
  return files;
10465
10467
  }, "readAttachments");
10466
10468
 
10467
- // node_modules/.pnpm/@wirecat+cli-core@0.573.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ebc00d7fcc6d9dd842f7c9d3c7667e19/node_modules/@wirecat/cli-core/dist/mail/bulk.js
10469
+ // node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/bulk.js
10468
10470
  var BULK = "bulk";
10469
10471
  var bulkBox = { externalId: "memo:bulk", name: "bulk", kind: BULK };
10470
10472
 
10471
- // node_modules/.pnpm/@wirecat+cli-core@0.573.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ebc00d7fcc6d9dd842f7c9d3c7667e19/node_modules/@wirecat/cli-core/dist/mail/score.js
10473
+ // node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/score.js
10472
10474
  var import_disposable_email_domains_js = __toESM(require_dist(), 1);
10473
10475
  var import_tldts = __toESM(require_cjs(), 1);
10474
10476
  var WEIGHTS = {
@@ -10576,7 +10578,7 @@ var scoreGroup = /* @__PURE__ */ __name((items, context) => {
10576
10578
  return { score: kept.reduce((sum, signal) => sum + WEIGHTS[signal], 0), signals: kept };
10577
10579
  }, "scoreGroup");
10578
10580
 
10579
- // node_modules/.pnpm/@wirecat+cli-core@0.573.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ebc00d7fcc6d9dd842f7c9d3c7667e19/node_modules/@wirecat/cli-core/dist/mail/presets.js
10581
+ // node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/presets.js
10580
10582
  var PRESETS = {
10581
10583
  social: {
10582
10584
  about: "notifications from social networks",
@@ -10668,7 +10670,7 @@ var presetMatches = /* @__PURE__ */ __name((name, facts) => {
10668
10670
  return false;
10669
10671
  }, "presetMatches");
10670
10672
 
10671
- // node_modules/.pnpm/@wirecat+cli-core@0.573.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ebc00d7fcc6d9dd842f7c9d3c7667e19/node_modules/@wirecat/cli-core/dist/mail/probe.js
10673
+ // node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/probe.js
10672
10674
  var share = /* @__PURE__ */ __name((part, whole2) => Math.round(part / whole2 * 100) / 100, "share");
10673
10675
  var isSent = /* @__PURE__ */ __name((item) => item.labels?.includes("Sent") || /(^|\/)sent\b/i.test(item.folder ?? ""), "isSent");
10674
10676
  var groupKey = /* @__PURE__ */ __name((headers) => headers.listId === void 0 ? `from:${headers.from}` : `list:${headers.listId}`, "groupKey");
@@ -10736,7 +10738,7 @@ var probeMail = /* @__PURE__ */ __name((items, limit, ages = /* @__PURE__ */ new
10736
10738
  };
10737
10739
  }, "probeMail");
10738
10740
 
10739
- // node_modules/.pnpm/@wirecat+cli-core@0.573.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ebc00d7fcc6d9dd842f7c9d3c7667e19/node_modules/@wirecat/cli-core/dist/mail/facts.js
10741
+ // node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/facts.js
10740
10742
  var factsOf = /* @__PURE__ */ __name((listed, rules, ages = /* @__PURE__ */ new Map()) => {
10741
10743
  const grouped = rules.some(({ match }) => match.score_at_least !== void 0 || match.preset !== void 0);
10742
10744
  if (!grouped)
@@ -16007,7 +16009,7 @@ var PostalMime = class _PostalMime {
16007
16009
  }
16008
16010
  };
16009
16011
 
16010
- // node_modules/.pnpm/@wirecat+cli-core@0.573.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ebc00d7fcc6d9dd842f7c9d3c7667e19/node_modules/@wirecat/cli-core/dist/mail/headers.js
16012
+ // node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/headers.js
16011
16013
  var unfold = /* @__PURE__ */ __name((text3) => text3.replace(/\r?\n[ \t]+/g, " "), "unfold");
16012
16014
  var field = /* @__PURE__ */ __name((unfolded, name) => new RegExp(`^${name}:[ \\t]*(.*?)\\r?$`, "im").exec(unfolded)?.[1], "field");
16013
16015
  var fieldsOf2 = /* @__PURE__ */ __name((unfolded, name) => [...unfolded.matchAll(new RegExp(`^${name}:[ \\t]*(.*?)\\r?$`, "gim"))].map(([, value]) => value), "fieldsOf");
@@ -16054,7 +16056,7 @@ var mailHeadersOf = /* @__PURE__ */ __name((raw) => {
16054
16056
  };
16055
16057
  }, "mailHeadersOf");
16056
16058
 
16057
- // node_modules/.pnpm/@wirecat+cli-core@0.573.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ebc00d7fcc6d9dd842f7c9d3c7667e19/node_modules/@wirecat/cli-core/dist/mail/parse.js
16059
+ // node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/parse.js
16058
16060
  var MAX_BODY_CHARS = 1e6;
16059
16061
  var MAX_ATTACHMENTS = 50;
16060
16062
  var BRACKETED_ID = /<[^<>\s]+>/g;
@@ -16119,7 +16121,7 @@ var parseMail = /* @__PURE__ */ __name(async (raw, maxBodyChars = MAX_BODY_CHARS
16119
16121
  };
16120
16122
  }, "parseMail");
16121
16123
 
16122
- // node_modules/.pnpm/@wirecat+cli-core@0.573.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ebc00d7fcc6d9dd842f7c9d3c7667e19/node_modules/@wirecat/cli-core/dist/mail/email-input.js
16124
+ // node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/email-input.js
16123
16125
  var sentAtOf = /* @__PURE__ */ __name((date, receivedAt) => {
16124
16126
  const sent = date === null ? Number.NaN : Date.parse(date);
16125
16127
  return Number.isNaN(sent) ? Date.parse(receivedAt) : sent;
@@ -16139,10 +16141,10 @@ var parsedEmail = /* @__PURE__ */ __name((mail, item, header, address) => ({
16139
16141
  outgoing: mail.from === null ? null : mail.from.email === address
16140
16142
  }), "parsedEmail");
16141
16143
 
16142
- // node_modules/.pnpm/@wirecat+cli-core@0.573.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ebc00d7fcc6d9dd842f7c9d3c7667e19/node_modules/@wirecat/cli-core/dist/mail/partial.js
16144
+ // node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/partial.js
16143
16145
  var PARTIAL = "partial";
16144
16146
 
16145
- // node_modules/.pnpm/@wirecat+cli-core@0.573.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ebc00d7fcc6d9dd842f7c9d3c7667e19/node_modules/@wirecat/cli-core/dist/mail/read.js
16147
+ // node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/read.js
16146
16148
  var lowerSuspicious = /* @__PURE__ */ __name((items, suspicious) => [
16147
16149
  ...items.filter((item) => !suspicious(item)),
16148
16150
  ...items.filter(suspicious)
@@ -16229,7 +16231,7 @@ var attachmentsText = /* @__PURE__ */ __name((hit) => (hit.attachments ?? []).ma
16229
16231
  ${file.text.replace(/\n/g, "\n ")}`;
16230
16232
  }).join("\n"), "attachmentsText");
16231
16233
 
16232
- // node_modules/.pnpm/@wirecat+cli-core@0.573.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ebc00d7fcc6d9dd842f7c9d3c7667e19/node_modules/@wirecat/cli-core/dist/mail/review.js
16234
+ // node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/review.js
16233
16235
  var REVIEW_THREADS = 50;
16234
16236
  var REVIEW_PER_THREAD = 50;
16235
16237
  var OWED_DAYS = 30;
@@ -16327,7 +16329,7 @@ var reviewMail = /* @__PURE__ */ __name(async (store, mailbox, options) => {
16327
16329
  };
16328
16330
  }, "reviewMail");
16329
16331
 
16330
- // node_modules/.pnpm/@wirecat+cli-core@0.573.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ebc00d7fcc6d9dd842f7c9d3c7667e19/node_modules/@wirecat/cli-core/dist/mail/rules.js
16332
+ // node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/rules.js
16331
16333
  var DAY_MS2 = 24 * 60 * 60 * 1e3;
16332
16334
  var domainOf = /* @__PURE__ */ __name((address) => address.slice(address.lastIndexOf("@") + 1), "domainOf");
16333
16335
  var domainMatches = /* @__PURE__ */ __name((wanted2, sender) => {
@@ -16399,7 +16401,7 @@ var tagsOf = /* @__PURE__ */ __name((rules, facts) => {
16399
16401
  }, "tagsOf");
16400
16402
  var conditionKeys = /* @__PURE__ */ __name((match) => Object.keys(match).filter((key) => match[key] !== void 0).sort(), "conditionKeys");
16401
16403
 
16402
- // node_modules/.pnpm/@wirecat+cli-core@0.573.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ebc00d7fcc6d9dd842f7c9d3c7667e19/node_modules/@wirecat/cli-core/dist/mail/rule-input.js
16404
+ // node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/rule-input.js
16403
16405
  var STORE_ACTION = { keep: "full", envelope: "envelope", skip: "skip" };
16404
16406
  var LOWER = ["from", "domain", "list_id", "subject"];
16405
16407
  var conditionsOf = /* @__PURE__ */ __name((match) => Object.fromEntries(conditionKeys(match).map((key) => {
@@ -16429,7 +16431,7 @@ var ruleInput = /* @__PURE__ */ __name((rule, source = rule.source ?? "owner") =
16429
16431
  decidedAt: decidedAtOf(rule.decided_at)
16430
16432
  }), "ruleInput");
16431
16433
 
16432
- // node_modules/.pnpm/@wirecat+cli-core@0.573.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ebc00d7fcc6d9dd842f7c9d3c7667e19/node_modules/@wirecat/cli-core/dist/mail/rule-stored.js
16434
+ // node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/rule-stored.js
16433
16435
  var ACTION_OF = { full: "keep", envelope: "envelope", skip: "skip" };
16434
16436
  var KINDS = {
16435
16437
  from: "string",
@@ -16498,7 +16500,7 @@ var storedMailRuleSet = /* @__PURE__ */ __name(async (store, account2, query) =>
16498
16500
  }, "storedMailRuleSet");
16499
16501
  var storedMailRules = /* @__PURE__ */ __name(async (store, account2, query) => (await storedMailRuleSet(store, account2, query)).rules, "storedMailRules");
16500
16502
 
16501
- // node_modules/.pnpm/@wirecat+cli-core@0.573.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ebc00d7fcc6d9dd842f7c9d3c7667e19/node_modules/@wirecat/cli-core/dist/mail/rule-tags.js
16503
+ // node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/rule-tags.js
16502
16504
  var reuseOf = /* @__PURE__ */ __name((error) => {
16503
16505
  const { details } = error;
16504
16506
  return details?.reason === "tag-review.required" ? details.candidates?.[0]?.name : void 0;
@@ -16559,7 +16561,7 @@ var settleRuleTags = /* @__PURE__ */ __name(async (store, accountId, rules, outc
16559
16561
  }
16560
16562
  }, "settleRuleTags");
16561
16563
 
16562
- // node_modules/.pnpm/@wirecat+cli-core@0.573.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ebc00d7fcc6d9dd842f7c9d3c7667e19/node_modules/@wirecat/cli-core/dist/mail/sender-scores.js
16564
+ // node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/sender-scores.js
16563
16565
  var SCORED = "mail_sender_scores";
16564
16566
  var DAY = 864e5;
16565
16567
  var RECENT = 2 * 365 * DAY;
@@ -16575,7 +16577,7 @@ var demotedSenders = /* @__PURE__ */ __name(async (store) => {
16575
16577
  return senders;
16576
16578
  }, "demotedSenders");
16577
16579
 
16578
- // node_modules/.pnpm/@wirecat+cli-core@0.573.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ebc00d7fcc6d9dd842f7c9d3c7667e19/node_modules/@wirecat/cli-core/dist/mail/server-query.js
16580
+ // node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/server-query.js
16579
16581
  var DAY2 = 864e5;
16580
16582
  var empty = /* @__PURE__ */ __name(() => ({ words: [], from: [], to: [], cc: [], subject: [], body: [] }), "empty");
16581
16583
  var narrows = /* @__PURE__ */ __name((criteria) => criteria.words.length + criteria.from.length + criteria.to.length + criteria.cc.length + criteria.subject.length + criteria.body.length > 0 || criteria.since !== void 0 || criteria.before !== void 0 || criteria.seen !== void 0 || criteria.flagged !== void 0, "narrows");
@@ -16648,7 +16650,7 @@ var mailCriteriaOf = /* @__PURE__ */ __name((text3, { exact, timezone } = {}) =>
16648
16650
  };
16649
16651
  }, "mailCriteriaOf");
16650
16652
 
16651
- // node_modules/.pnpm/@wirecat+cli-core@0.573.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ebc00d7fcc6d9dd842f7c9d3c7667e19/node_modules/@wirecat/cli-core/dist/mail/server-search.js
16653
+ // node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/server-search.js
16652
16654
  var refusal = {
16653
16655
  unsupported: "this mailbox's server cannot be searched \u2014 use --backend archive",
16654
16656
  offline: "--backend server needs the network \u2014 not with --offline",
@@ -16863,7 +16865,7 @@ var searchMailServer = /* @__PURE__ */ __name(async (store, mailbox, access, req
16863
16865
  return { report, sources };
16864
16866
  }, "searchMailServer");
16865
16867
 
16866
- // node_modules/.pnpm/@wirecat+cli-core@0.573.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ebc00d7fcc6d9dd842f7c9d3c7667e19/node_modules/@wirecat/cli-core/dist/mail/sync.js
16868
+ // node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/sync.js
16867
16869
  var DAY3 = 864e5;
16868
16870
  var EDGE = 2 * DAY3;
16869
16871
 
@@ -16897,7 +16899,8 @@ var REVIEW_KINDS = [
16897
16899
  "task_close",
16898
16900
  "action",
16899
16901
  "invoice",
16900
- "payment"
16902
+ "payment",
16903
+ "order"
16901
16904
  ];
16902
16905
  var BY_ACCOUNT = [MEETING_FINDINGS_KIND, MAIL_FINDINGS_KIND];
16903
16906
  var reviewRegistry = /* @__PURE__ */ __name((store) => {
@@ -16980,6 +16983,7 @@ var titleOf = /* @__PURE__ */ __name((row, label) => {
16980
16983
  return `${row.summary ?? "action"} ${subject}`;
16981
16984
  case "invoice":
16982
16985
  case "payment":
16986
+ case "order":
16983
16987
  return row.summary ?? subject;
16984
16988
  default:
16985
16989
  return object2 === null ? subject : `${subject} \u2192 ${object2}`;
@@ -18090,7 +18094,7 @@ import { createHash } from "node:crypto";
18090
18094
  import { existsSync, readFileSync as readFileSync2, statSync } from "node:fs";
18091
18095
  import { basename, extname, relative, sep } from "node:path";
18092
18096
 
18093
- // node_modules/.pnpm/@wirecat+cli-core@0.573.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ebc00d7fcc6d9dd842f7c9d3c7667e19/node_modules/@wirecat/cli-core/dist/services/documents/extraction.js
18097
+ // node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/services/documents/extraction.js
18094
18098
  var Proposal = object({
18095
18099
  kind: picklist(["summary", "digest", "fact", "preference"]),
18096
18100
  body: pipe(string(), trim(), minLength(1), maxLength(15e3)),
@@ -18098,10 +18102,10 @@ var Proposal = object({
18098
18102
  });
18099
18103
  var Proposals = object({ items: pipe(array(Proposal), maxLength(20)) });
18100
18104
 
18101
- // node_modules/.pnpm/@wirecat+cli-core@0.573.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ebc00d7fcc6d9dd842f7c9d3c7667e19/node_modules/@wirecat/cli-core/dist/services/documents/mirrors.js
18105
+ // node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/services/documents/mirrors.js
18102
18106
  var ID = pipe(string(), regex(/^[A-Za-z0-9_-]{1,200}$/));
18103
18107
 
18104
- // node_modules/.pnpm/@wirecat+cli-core@0.573.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ebc00d7fcc6d9dd842f7c9d3c7667e19/node_modules/@wirecat/cli-core/dist/services/documents/sync.js
18108
+ // node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/services/documents/sync.js
18105
18109
  var MAX_PICTURE_BYTES = 25 * 1024 * 1024;
18106
18110
 
18107
18111
  // dist/notes/links.js
@@ -18407,7 +18411,7 @@ var importNotesMap = /* @__PURE__ */ __name(async (store, env, folders) => {
18407
18411
  return linked2;
18408
18412
  }, "importNotesMap");
18409
18413
 
18410
- // node_modules/.pnpm/@wirecat+cli-core@0.573.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ebc00d7fcc6d9dd842f7c9d3c7667e19/node_modules/@wirecat/cli-core/dist/mail/cli/marks.js
18414
+ // node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/cli/marks.js
18411
18415
  var iso = /* @__PURE__ */ __name((ms) => ms === null ? null : new Date(ms).toISOString(), "iso");
18412
18416
  var mailMark = strictObject({
18413
18417
  holder: string(),
@@ -18451,7 +18455,7 @@ var acknowledgeCommand = /* @__PURE__ */ __name((mail) => answerEntity(proposesO
18451
18455
  renderAnswer(this, outputFor(this), itemOf(markItem(mark)), () => markText(mark));
18452
18456
  }), "acknowledgeCommand");
18453
18457
 
18454
- // node_modules/.pnpm/@wirecat+cli-core@0.573.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ebc00d7fcc6d9dd842f7c9d3c7667e19/node_modules/@wirecat/cli-core/dist/mail/cli/review.js
18458
+ // node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/cli/review.js
18455
18459
  var DAY4 = 864e5;
18456
18460
  var REVIEW_UNTRUSTED = [...SUMMARY_UNTRUSTED, ...MAIL_HIT_UNTRUSTED];
18457
18461
  var MAIL_REVIEW_QUERY = defineQuery({
@@ -18681,7 +18685,7 @@ an agent over MCP, and each scheduled run.`).action(async function(query) {
18681
18685
  saved?.save(found.checked ?? {}, found.complete ? { through: found.until } : {});
18682
18686
  }), "mailReviewCommand");
18683
18687
 
18684
- // node_modules/.pnpm/@wirecat+cli-core@0.573.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_ebc00d7fcc6d9dd842f7c9d3c7667e19/node_modules/@wirecat/cli-core/dist/mail/cli/index.js
18688
+ // node_modules/.pnpm/@wirecat+cli-core@0.575.0_@wirecat+cli-base@0.77.1_commander@15.0.0_esbuild@0.28.2_type_aade55a841395570862eef10edb10226/node_modules/@wirecat/cli-core/dist/mail/cli/index.js
18685
18689
  var absentAccount = /* @__PURE__ */ __name((error) => {
18686
18690
  if (error instanceof CliError && error.code === "not_found")
18687
18691
  return void 0;
@@ -20747,6 +20751,7 @@ var SECTIONS = [
20747
20751
  ["notes links", "organise"],
20748
20752
  ["organizations", "organise"],
20749
20753
  ["invoices", "organise"],
20754
+ ["orders", "organise"],
20750
20755
  ["payments", "organise"],
20751
20756
  ["records", "organise"],
20752
20757
  ["projects", "organise"],
@@ -21106,6 +21111,12 @@ var EXAMPLES = {
21106
21111
  "memo facts add 'We moved the launch to spring' --kind decision --evidence 'msg:telegram/1/77/42' --project HRB"
21107
21112
  ],
21108
21113
  "facts list": ["memo facts list kind:decision project:HRB"],
21114
+ "orders list": ["memo orders list status:shipped", `memo orders list number:A-1042 'supplier:"Shop One"' --json`],
21115
+ "orders show": ["memo orders show order:3"],
21116
+ "orders add": [
21117
+ "memo orders add 'Shop One' 2499.00 RUB --kind personal --title A-1042",
21118
+ "memo orders add 'Office Supply' --kind client --organization organization:3"
21119
+ ],
21109
21120
  "invoices list": ["memo invoices list project:HRB open:true", "memo invoices list review:proposed --json"],
21110
21121
  "invoices show": ["memo invoices show invoice:4"],
21111
21122
  "invoices add": [
@@ -21353,7 +21364,7 @@ var memoriesCommand = /* @__PURE__ */ __name((program, streams, env) => {
21353
21364
  ...options.supersedes === void 0 ? {} : { supersedes: options.supersedes }
21354
21365
  }, await by))));
21355
21366
  });
21356
- withQuery(annotate(memories.command("list"), { effects: LOCAL_READ }).description("memories, newest first"), MEMORY_QUERY).option("--limit <n>", "most memories, up to 500", positive, 100).option("--json", "print JSON; --json=id,title keeps only those fields").action((words2, { json: json5, limit }) => run(json5, (store) => listMemories(store, words2, limit)));
21367
+ withQuery(annotate(memories.command("list"), { effects: LOCAL_READ }).description("memories, newest first"), MEMORY_QUERY).option("--limit <n>", "most memories, up to 500", positive, 100).option("--json", "print JSON; --json=id,title keeps only those fields").action((words2, { json: json6, limit }) => run(json6, (store) => listMemories(store, words2, limit)));
21357
21368
  annotate(memories.command("show"), { effects: LOCAL_READ, output: { entity: "memory" } }).description("one memory with its evidence").argument("<ref>", "memory:<id>").option("--sources", "read each piece of evidence back: who, when, a short excerpt, and whether it is gone").option("--json", "print JSON; --json=id,title keeps only those fields").action((ref, options) => run(options.json, async (store) => itemAnswer({
21358
21369
  ...memoryItem(await store.memories.get(ref)),
21359
21370
  ...options.sources ? { sources: await store.memories.sources(ref) } : {}
@@ -21471,7 +21482,7 @@ var factsCommand = /* @__PURE__ */ __name((program, streams, env) => {
21471
21482
  ...options.supersedes === void 0 ? {} : { supersedes: options.supersedes }
21472
21483
  }))));
21473
21484
  });
21474
- withQuery(annotate(facts.command("list"), { effects: LOCAL_READ }).description("facts, latest first"), FACT_QUERY).option("--limit <n>", "most facts, up to 500", positive, 100).option("--json", "print JSON; --json=id,title keeps only those fields").action((words2, { json: json5, limit }) => run(json5, (store) => listFacts(store, words2, limit)));
21485
+ withQuery(annotate(facts.command("list"), { effects: LOCAL_READ }).description("facts, latest first"), FACT_QUERY).option("--limit <n>", "most facts, up to 500", positive, 100).option("--json", "print JSON; --json=id,title keeps only those fields").action((words2, { json: json6, limit }) => run(json6, (store) => listFacts(store, words2, limit)));
21475
21486
  annotate(facts.command("show"), { effects: LOCAL_READ, output: { entity: "fact" } }).description("one fact with its evidence").argument("<ref>", "fact:<id>").option("--sources", "read each piece of evidence back: who, when, a short excerpt, and whether it is gone").option("--json", "print JSON; --json=id,title keeps only those fields").action((ref, options) => run(options.json, async (store) => itemAnswer({
21476
21487
  ...factItem(await store.facts.get(ref)),
21477
21488
  ...options.sources ? { sources: await store.facts.sources(ref) } : {}
@@ -21633,7 +21644,7 @@ var writeMeta = /* @__PURE__ */ __name((command) => byOption(command.option("--p
21633
21644
  var financeCommands = /* @__PURE__ */ __name((program, streams, env) => {
21634
21645
  const { run } = answers(program, streams, env);
21635
21646
  const invoices = program.command("invoices").description("invoices you issued or received, with their lines and what paid them; amounts per currency").summary("invoices you issued or received, and what paid them");
21636
- withQuery(json(annotate(invoices.command("list"), { effects: LOCAL_READ })).description("invoices, newest first; review:proposed lists what waits for you"), INVOICE_QUERY).option("--limit <n>", "most invoices, up to 500", positive, 100).action((words2, { json: json5, limit }) => run(json5, (store) => listInvoices(store, words2, limit)));
21647
+ withQuery(json(annotate(invoices.command("list"), { effects: LOCAL_READ })).description("invoices, newest first; review:proposed lists what waits for you"), INVOICE_QUERY).option("--limit <n>", "most invoices, up to 500", positive, 100).action((words2, { json: json6, limit }) => run(json6, (store) => listInvoices(store, words2, limit)));
21637
21648
  json(annotate(invoices.command("show"), { effects: LOCAL_READ, output: { entity: "invoice" } })).description("one invoice with its lines and the payments allocated to it").argument("<ref>", "invoice:<id>").action((ref, options) => run(options.json, async (store) => itemAnswer(await store.finance.invoice(ref))));
21638
21649
  json(writeMeta(party(annotate(invoices.command("add"), {
21639
21650
  effects: LOCAL_WRITE,
@@ -21657,7 +21668,7 @@ var financeCommands = /* @__PURE__ */ __name((program, streams, env) => {
21657
21668
  });
21658
21669
  });
21659
21670
  const payments = program.command("payments").description("money paid to you or by you, and the invoices each payment settles; amounts per currency").summary("money paid to you or by you, and what it settles");
21660
- withQuery(json(annotate(payments.command("list"), { effects: LOCAL_READ })).description("payments, newest first; review:proposed lists what waits for you"), PAYMENT_QUERY).option("--limit <n>", "most payments, up to 500", positive, 100).action((words2, { json: json5, limit }) => run(json5, (store) => listPayments(store, words2, limit)));
21671
+ withQuery(json(annotate(payments.command("list"), { effects: LOCAL_READ })).description("payments, newest first; review:proposed lists what waits for you"), PAYMENT_QUERY).option("--limit <n>", "most payments, up to 500", positive, 100).action((words2, { json: json6, limit }) => run(json6, (store) => listPayments(store, words2, limit)));
21661
21672
  json(annotate(payments.command("show"), { effects: LOCAL_READ, output: { entity: "payment" } })).description("one payment with the invoices it is allocated to").argument("<ref>", "payment:<id>").action((ref, options) => run(options.json, async (store) => itemAnswer(await store.finance.payment(ref))));
21662
21673
  json(writeMeta(party(annotate(payments.command("add"), { effects: LOCAL_WRITE, output: { entity: "payment" } }), "who paid or was paid").option("--kind <kind>", "in (paid to you) or out (paid by you)").option("--title <title>", "the payment's reference, such as the bank's purpose line").option("--occurred-time <time>", "the day it was paid, such as 2026-11-01; today when left out"))).description(`record a payment; ${PROPOSES}. payments allocate matches it to an invoice`).summary("record a payment; an agent's waits for your review").argument("<amount>", "a decimal, such as 50000.00").argument("<currency>", "ISO 4217, such as RUB").action(async (amount, currency, options, command) => {
21663
21674
  const by = await whoRuns(command, env, { asOwner: options.asOwner, question: "record this payment as yours?" });
@@ -21688,6 +21699,66 @@ var financeCommands = /* @__PURE__ */ __name((program, streams, env) => {
21688
21699
  });
21689
21700
  }, "financeCommands");
21690
21701
 
21702
+ // dist/finance/orders-command.js
21703
+ var ORDER_QUERY = {
21704
+ entity: "order",
21705
+ backend: "native",
21706
+ fields: [
21707
+ termField("project", "kw", "project:PMED"),
21708
+ termField("status", "enum", "status:shipped", { values: ORDER_STATUSES }),
21709
+ termField("purpose", "enum", "purpose:personal", { values: ORDER_PURPOSES }),
21710
+ termField("review", "enum", "review:proposed", { values: FINANCE_REVIEWS }),
21711
+ termField("customer", "ref", 'customer:"organization:3"'),
21712
+ termField("supplier", "kw", 'supplier:"Shop One"'),
21713
+ termField("number", "kw", "number:A-1042")
21714
+ ]
21715
+ };
21716
+ var listOrders = /* @__PURE__ */ __name(async (store, words2, limit) => {
21717
+ const terms = queryTerms(words2, ORDER_QUERY, "orders list");
21718
+ const filter = {
21719
+ ...terms.has("project") ? { project: await canonicalProject(store, terms.get("project")) } : {},
21720
+ ...terms.has("status") ? { status: terms.get("status") } : {},
21721
+ ...terms.has("purpose") ? { purpose: terms.get("purpose") } : {},
21722
+ ...terms.has("review") ? { review: terms.get("review") } : {},
21723
+ ...terms.has("customer") ? { customer: terms.get("customer") } : {},
21724
+ ...terms.has("supplier") ? { supplierName: terms.get("supplier") } : {},
21725
+ ...terms.has("number") ? { number: terms.get("number") } : {}
21726
+ };
21727
+ return pageOf("orders list", limit, (most2) => store.orders.list({ ...filter, limit: most2 }));
21728
+ }, "listOrders");
21729
+ var oneOf2 = /* @__PURE__ */ __name((value, allowed, flag) => {
21730
+ if (value === void 0 || !allowed.includes(value))
21731
+ throw new CliError("validation_error", `${flag} is one of ${allowed.join(", ")}`, { param: flag });
21732
+ return value;
21733
+ }, "oneOf");
21734
+ var json2 = /* @__PURE__ */ __name((command) => command.option("--json", "print JSON; --json=ref,title keeps only those fields"), "json");
21735
+ var orderCommands = /* @__PURE__ */ __name((program, streams, env) => {
21736
+ const { run } = answers(program, streams, env);
21737
+ const orders = program.command("orders").description("orders you placed or took, for whom, from which shop, and how far delivery got").summary("orders you placed or took, and how far delivery got");
21738
+ withQuery(json2(annotate(orders.command("list"), { effects: LOCAL_READ })).description("orders, newest first; review:proposed is what waits for you"), ORDER_QUERY).option("--limit <n>", "most orders, up to 500", positive, 100).action((words2, { json: json6, limit }) => run(json6, (store) => listOrders(store, words2, limit)));
21739
+ json2(annotate(orders.command("show"), { effects: LOCAL_READ, output: { entity: "order" } })).description("one order with its customer, shop, amount, status and the mail it was read from").argument("<ref>", "order:<id>").action((ref, options) => run(options.json, async (store) => itemAnswer(await store.orders.get(ref))));
21740
+ json2(byOption(annotate(orders.command("add"), { effects: LOCAL_WRITE, output: { entity: "order" }, literal_after_dashes: true }).option("--kind <kind>", `why it was ordered: ${ORDER_PURPOSES.join(", ")}`).option("--person <uid>", "whom it is for, when not you: person:<id>").option("--organization <organization>", "whom it is for, when not you: organization:<id>").option("--title <title>", "the shop's order number").option("--occurred-time <time>", "the day it was ordered, such as 2026-11-01").option("--project <project>", "the project it belongs to: its key or project:<id>").option("--reason <text>", "why an agent proposes it, for the owner who decides").option("--evidence <ref...>", "what shows it, up to 8: msg:, note:, document: or another reference"))).description("record a placed order; yours is confirmed at once, an agent's waits as proposed for you in memo review").summary("record an order; an agent's waits for your review").argument("<shop>", "the shop or supplier, as its mail names it").argument("[amount]", "the order's amount, a decimal such as 2499.00").argument("[currency]", "ISO 4217, such as RUB; given with the amount").action(async (shop, amount, currency, options, command) => {
21741
+ const by = await whoRuns(command, env, { asOwner: options.asOwner, question: "record this order as yours?" });
21742
+ await run(options.json, async (store) => {
21743
+ const customer = partyOf(options, false);
21744
+ const orderDate = dayOf(options.occurredTime);
21745
+ return itemAnswer(await store.orders.add({
21746
+ by,
21747
+ purpose: oneOf2(options.kind, ORDER_PURPOSES, "--kind"),
21748
+ supplierName: shop,
21749
+ ...customer === void 0 ? {} : { customer },
21750
+ ...options.title === void 0 ? {} : { number: options.title },
21751
+ ...amount === void 0 ? {} : { total: amount },
21752
+ ...currency === void 0 ? {} : { currency },
21753
+ ...orderDate === void 0 ? {} : { orderDate },
21754
+ ...options.project === void 0 ? {} : { project: await canonicalProject(store, options.project) },
21755
+ ...by !== "owner" && options.reason !== void 0 ? { reason: options.reason } : {},
21756
+ ...options.evidence === void 0 ? {} : { evidence: options.evidence }
21757
+ }));
21758
+ });
21759
+ });
21760
+ }, "orderCommands");
21761
+
21691
21762
  // dist/findings/command.js
21692
21763
  import { createReadStream } from "node:fs";
21693
21764
  var FINDINGS_QUERY = {
@@ -21941,18 +22012,18 @@ var ACTIONS_QUERY = {
21941
22012
  fields: [termField("status", "enum", "status:proposed", { values: ["proposed", "reviewed"] })],
21942
22013
  defaults: ["status:proposed"]
21943
22014
  };
21944
- var json2 = /* @__PURE__ */ __name((command) => command.option("--json", "print JSON; --json=id,status keeps only those fields"), "json");
22015
+ var json3 = /* @__PURE__ */ __name((command) => command.option("--json", "print JSON; --json=id,status keeps only those fields"), "json");
21945
22016
  var projectActionsCommand = /* @__PURE__ */ __name((projects, streams, env) => {
21946
22017
  const group = projects.command("actions").description("cited key documents and findings an agent proposed for a project, with the evidence to decide them").summary("an agent's proposals for a project, and deciding them");
21947
22018
  const { run } = answers(projects, streams, env);
21948
- json2(annotate(group.command("add"), { effects: LOCAL_WRITE })).description("stage an agent's cited facts and follow-ups about one project for review").argument("<file>", "JSON findings file, or - for stdin; at most 65536 UTF-8 bytes").addHelpText("after", "\nInput: schema_version 1, key, extractor, findings. Every finding names id, kind and evidence: 1\u20138 msg:, document: or note: references with the fingerprint projects evidence or notes show gives. A fact may name a project and a subject (person:, organization:, task: or project:), or neither; a task names its project. Facts name type and statement; tasks name type, title, reason and commitment (explicit or inferred). A due_at or assignee needs due_evidence or assignee_evidence citing this finding's references. A payment names payment {amount, currency, direction to_us|from_us, state paid|expected|cancelled, counterparty, paid_at}: an expected one becomes an invoice and needs a person: or organization: counterparty; a paid or cancelled one names in supersedes the invoice: it settles or voids. At most one project per batch. The same key and input returns the same batch; actions confirm and reject decide it by its id.\n").action(async (file, given, command) => {
22019
+ json3(annotate(group.command("add"), { effects: LOCAL_WRITE })).description("stage an agent's cited facts and follow-ups about one project for review").argument("<file>", "JSON findings file, or - for stdin; at most 65536 UTF-8 bytes").addHelpText("after", "\nInput: schema_version 1, key, extractor, findings. Every finding names id, kind and evidence: 1\u20138 msg:, document: or note: references with the fingerprint projects evidence or notes show gives. A fact may name a project and a subject (person:, organization:, task: or project:), or neither; a task names its project. Facts name type and statement; tasks name type, title, reason and commitment (explicit or inferred). A due_at or assignee needs due_evidence or assignee_evidence citing this finding's references. A payment names payment {amount, currency, direction to_us|from_us, state paid|expected|cancelled, counterparty, paid_at}: an expected one becomes an invoice and needs a person: or organization: counterparty; a paid or cancelled one names in supersedes the invoice: it settles or voids. At most one project per batch. The same key and input returns the same batch; actions confirm and reject decide it by its id.\n").action(async (file, given, command) => {
21949
22020
  const input = parseEvidenceFindingsJson(await readBatchInput(file === "-" ? environmentOf(projects).stdin ?? process.stdin : createReadStream2(file)));
21950
22021
  const author = await whoRuns(command, env, { question: "" });
21951
22022
  if (author === "owner")
21952
22023
  throw new CliError("validation_error", "findings are an agent's proposals; record your own with memo facts add");
21953
22024
  await run(given.json, async (store) => itemAnswer(await store.evidenceFindings.stage(input, author)));
21954
22025
  });
21955
- withQuery(json2(answerEntity(annotate(group.command("list"), { effects: LOCAL_READ }), "project_action", union([
22026
+ withQuery(json3(answerEntity(annotate(group.command("list"), { effects: LOCAL_READ }), "project_action", union([
21956
22027
  strictObject({
21957
22028
  kind: literal("key_document"),
21958
22029
  id: string(),
@@ -21993,7 +22064,7 @@ var projectActionsCommand = /* @__PURE__ */ __name((projects, streams, env) => {
21993
22064
  });
21994
22065
  }));
21995
22066
  for (const name of ["confirm", "reject"]) {
21996
- const command = byOption(json2(annotate(group.command(name), { effects: LOCAL_WRITE })).description(name === "confirm" ? "confirm a suggested key document, or create the named findings of a batch and reject its other new ones; an agent decides for you only when agent_decisions is true, and with --reason" : "reject a suggested key document, or every new finding of a batch").summary(name === "confirm" ? "confirm a proposal, yours or an agent's with --reason" : "reject a proposal").argument("<project>", "the project's id, project:<id>, key, exact name or alias").argument("<id>", "key:<id> for a key document, or a findings batch number, as projects actions list gives them"));
22067
+ const command = byOption(json3(annotate(group.command(name), { effects: LOCAL_WRITE })).description(name === "confirm" ? "confirm a suggested key document, or create the named findings of a batch and reject its other new ones; an agent decides for you only when agent_decisions is true, and with --reason" : "reject a suggested key document, or every new finding of a batch").summary(name === "confirm" ? "confirm a proposal, yours or an agent's with --reason" : "reject a proposal").argument("<project>", "the project's id, project:<id>, key, exact name or alias").argument("<id>", "key:<id> for a key document, or a findings batch number, as projects actions list gives them"));
21997
22068
  if (name === "confirm")
21998
22069
  command.argument("[findings...]", "the finding IDs of a batch to create");
21999
22070
  command.option("--fingerprint <hash>", "a findings batch's fingerprint, as projects actions list gives it").option("--reason <text>", "why, in a few words; required when an agent decides for you").action(async (reference3, id, ...rest) => {
@@ -22946,23 +23017,28 @@ due_evidence, assignee with assignee_evidence; no project means the mailbox's in
22946
23017
  change close|due|detail, reason; due needs due_at, detail needs detail) \xB7 fact (type, statement, subject or project)
22947
23018
  \xB7 memory (memory_kind, scope, body, subject or project) \xB7 link (from, to, reason: contact:email/<address> \u2192 person:N,
22948
23019
  person:N \u2192 organization:N, chat:email/\u2026 \u2192 project:N) \xB7 new_contact (address of a cited email's sender or recipient,
22949
- name, reason).
23020
+ name, reason) \xB7 invoice (direction receivable|payable, counterparty person:N|organization:N, currency, lines of
23021
+ description and amount, optional total, number, issue_date, due_date, project) \xB7 payment (direction in|out, amount,
23022
+ currency, date, optional payer, payee, reference, allocations of stored invoices) \xB7 order (purpose
23023
+ personal|business|client|other, supplier_name, optional customer, supplier, number, total with currency, status,
23024
+ order_date, invoice, payment) \xB7 order_update (supplier_name and number of a stored order, status, date when delivered).
23025
+ An invoice, payment or order is checked as memo invoices|payments|orders add checks yours; a refusal names why.
22950
23026
  A cited email that changed since review refuses the batch (mail-findings.stale), one still partial too
22951
23027
  (mail-findings.partial). Nothing is created until the owner confirms: memo review confirm <batch>/<finding>.
22952
23028
  `;
22953
- var json3 = /* @__PURE__ */ __name((command) => command.option("--json", "print JSON; --json=id,status keeps only those fields"), "json");
23029
+ var json4 = /* @__PURE__ */ __name((command) => command.option("--json", "print JSON; --json=id,status keeps only those fields"), "json");
22954
23030
  var mailFindingsCommand = /* @__PURE__ */ __name((program, mail, streams, env) => {
22955
23031
  const { run } = answers(program, streams, env);
22956
- const findings = mail.command("findings").description("cited tasks, task updates, facts, memories, links and contacts an agent read in new mail").summary("what an agent read in new mail, cited, waiting for the owner");
22957
- json3(proposesOnly(annotate(findings.command("add"), { effects: LOCAL_WRITE, output: { entity: "mail_findings" } }))).description("stage one mailbox's findings for the owner; nothing is created until the owner confirms").summary("stage one mailbox's findings; the owner confirms them").argument("<file>", "JSON findings file, or - for stdin; at most 65536 UTF-8 bytes").option("--source <accounts>", MAILBOX_HELP).addHelpText("after", INPUT_HELP).action(async (file, given) => {
23032
+ const findings = mail.command("findings").description("cited tasks, task updates, facts, memories, links, contacts, invoices, payments and orders an agent read in new mail").summary("what an agent read in new mail, cited, waiting for the owner");
23033
+ json4(proposesOnly(annotate(findings.command("add"), { effects: LOCAL_WRITE, output: { entity: "mail_findings" } }))).description("stage one mailbox's findings for the owner; nothing is created until the owner confirms").summary("stage one mailbox's findings; the owner confirms them").argument("<file>", "JSON findings file, or - for stdin; at most 65536 UTF-8 bytes").option("--source <accounts>", MAILBOX_HELP).addHelpText("after", INPUT_HELP).action(async (file, given) => {
22958
23034
  const text3 = await readBatchInput(file === "-" ? environmentOf(program).stdin ?? process.stdin : createReadStream3(file));
22959
23035
  const input = parseMailFindingsJson(text3);
22960
23036
  const author = await whoRuns(program, env, { question: "" });
22961
23037
  const agent = author === "owner" ? { bot: "memo-mail-findings" } : author;
22962
23038
  await run(given.json, async (store) => itemAnswer(await store.mailFindings.stage(await oneMailboxOf(store, env, given.source), input, agent)));
22963
23039
  });
22964
- json3(annotate(findings.command("show"), { effects: LOCAL_READ, output: { entity: "mail_findings" } })).description("one findings batch: its findings with their evidence, earlier decisions and the review receipt").summary("one findings batch with its evidence and decisions").argument("<id>", "the batch id `mail findings add` or `list` gave").action((id, given) => run(given.json, async (store) => itemAnswer(await store.mailFindings.get(id))));
22965
- withQuery(json3(annotate(findings.command("list"), { effects: LOCAL_READ, output: { entity: "mail_findings" } })), FINDINGS_QUERY2).description("mail findings batches, newest first; status:proposed is what waits for the owner").option("--source <accounts>", "only this mailbox's batches: email:<address>").option("--limit <n>", "batches per page, at most 50", positive, 20).option("--page <n>", "which page, from 1", positive, 1).action((words2, given) => run(given.json, async (store) => {
23040
+ json4(annotate(findings.command("show"), { effects: LOCAL_READ, output: { entity: "mail_findings" } })).description("one findings batch: its findings with their evidence, earlier decisions and the review receipt").summary("one findings batch with its evidence and decisions").argument("<id>", "the batch id `mail findings add` or `list` gave").action((id, given) => run(given.json, async (store) => itemAnswer(await store.mailFindings.get(id))));
23041
+ withQuery(json4(annotate(findings.command("list"), { effects: LOCAL_READ, output: { entity: "mail_findings" } })), FINDINGS_QUERY2).description("mail findings batches, newest first; status:proposed is what waits for the owner").option("--source <accounts>", "only this mailbox's batches: email:<address>").option("--limit <n>", "batches per page, at most 50", positive, 20).option("--page <n>", "which page, from 1", positive, 1).action((words2, given) => run(given.json, async (store) => {
22966
23042
  const status = queryTerms(words2, FINDINGS_QUERY2, "mail findings list").get("status");
22967
23043
  const account2 = given.source ? await oneMailboxOf(store, env, given.source) : void 0;
22968
23044
  const found = await store.mailFindings.list({
@@ -23102,10 +23178,10 @@ var mcpCommandDefinition = /* @__PURE__ */ __name((program, streams, env, create
23102
23178
  }).summary("serve this profile's commands to an AI agent").description("serve memo commands over MCP on stdio or authenticated HTTP, limited by saved permissions").option("--permission <key=level>", "tighten one saved permission for this server; repeat for more keys", (value, previous = []) => [...previous, value]).option("--http", "serve on 127.0.0.1 behind an HTTPS tunnel with an owner access-code login").option("--port <port>", `local HTTP port (default ${DEFAULT_PORT}); requires --http`).option("--public-url <url>", "tunnel's HTTPS address without /mcp, or a path of it such as https://<name>.ts.net/memo; requires --http").action(async (options) => {
23103
23179
  if (!options.http && (options.port !== void 0 || options.publicUrl !== void 0))
23104
23180
  throw new CliError("validation_error", "--port and --public-url require --http");
23105
- const { createMemoServer } = await import("./server-3L4FHYFM.js");
23181
+ const { createMemoServer } = await import("./server-UBMV5OI7.js");
23106
23182
  const build = /* @__PURE__ */ __name(() => createMemoServer(env, createProgram2, options.permission), "build");
23107
23183
  if (options.http) {
23108
- const { httpLockFile, mcpUrlOf, portOf, publicUrlOf, serveOverHttp } = await import("./mcp-7SDVTKCE.js");
23184
+ const { httpLockFile, mcpUrlOf, portOf, publicUrlOf, serveOverHttp } = await import("./mcp-ZRKYZLNM.js");
23109
23185
  const publicUrl = publicUrlOf(options.publicUrl, {
23110
23186
  missing: "--http",
23111
23187
  reaches: "the browser apps reach memo",
@@ -23157,7 +23233,7 @@ var mcpCommandDefinition = /* @__PURE__ */ __name((program, streams, env, create
23157
23233
  });
23158
23234
  });
23159
23235
  annotate(mcp2.command("revoke"), { effects: LOCAL_WRITE, mcp: false, examples: ["memo mcp revoke --json"] }).summary("forget every login given to a browser app").description("forget every login `memo mcp serve --http` gave a browser app; each app must log in again").option("--json", "print JSON").action(async function() {
23160
- const { revokeAll } = await import("./mcp-7SDVTKCE.js");
23236
+ const { revokeAll } = await import("./mcp-ZRKYZLNM.js");
23161
23237
  revokeAll(httpTokenFile(env));
23162
23238
  out.print(this.opts().json, itemAnswer({ revoked: true }));
23163
23239
  });
@@ -23688,14 +23764,14 @@ var notesCommandDefinition = /* @__PURE__ */ __name((program, streams, env) => {
23688
23764
  ...answer.backlinks.length ? [`linked from: ${answer.backlinks.map(({ from }) => from).join(", ")}`] : []
23689
23765
  ].join("\n"));
23690
23766
  });
23691
- withQuery(annotate(notes2.command("list"), { effects: LOCAL_READ }).description("notes, newest first"), NOTES_LIST_QUERY).option("--limit <n>", "most notes, at most 500", positive, 20).option("--page <n>", "which page, from 1", positive, 1).option("--json", "print JSON; --json=id,title keeps only those fields").action(async (words2, { json: json5, ...paging }) => {
23767
+ withQuery(annotate(notes2.command("list"), { effects: LOCAL_READ }).description("notes, newest first"), NOTES_LIST_QUERY).option("--limit <n>", "most notes, at most 500", positive, 20).option("--page <n>", "which page, from 1", positive, 1).option("--json", "print JSON; --json=id,title keeps only those fields").action(async (words2, { json: json6, ...paging }) => {
23692
23768
  const terms = queryTerms(words2, NOTES_LIST_QUERY, "notes list");
23693
23769
  const about = terms.get("about");
23694
23770
  const source = terms.get("source");
23695
23771
  const search2 = terms.get("text");
23696
23772
  if (about !== void 0 && terms.size > 1)
23697
23773
  throw new CliError("validation_error", "about: stands alone in notes list: its notes are found through links");
23698
- const options = { ...paging, json: json5 };
23774
+ const options = { ...paging, json: json6 };
23699
23775
  const page = await withNotes(async (store) => listNotes(store, {
23700
23776
  limit: options.limit,
23701
23777
  offset: (options.page - 1) * options.limit,
@@ -24077,11 +24153,11 @@ var ROW = {
24077
24153
  ],
24078
24154
  text: ["reason"]
24079
24155
  };
24080
- var json4 = /* @__PURE__ */ __name((command) => command.option("--json", "print JSON; --json=id,title keeps only those fields"), "json");
24156
+ var json5 = /* @__PURE__ */ __name((command) => command.option("--json", "print JSON; --json=id,title keeps only those fields"), "json");
24081
24157
  var reviewCommand = /* @__PURE__ */ __name((program, streams, env) => {
24082
24158
  const { print } = answers(program, streams, env);
24083
24159
  const review = program.command("review").description("every proposal waiting for your decision, across projects: links, key documents, facts, invoices, payments and more").summary("every proposal waiting for your decision, across projects");
24084
- json4(answerEntity(withQuery(annotate(review.command("list", { isDefault: true }), { effects: LOCAL_READ }).description("what waits for the owner's decision, newest first, with titles, who proposed it, why and the evidence").summary("what waits for your decision, newest first, with titles and evidence"), REVIEW_QUERY), "memo_proposal", PROPOSAL, { row: ROW })).option("--limit <n>", "proposals per page, at most 50", positive, 20).option("--page <n>", "which page, from 1", positive, 1).option("--compact", "one line per proposal").action(async (words2, given) => {
24160
+ json5(answerEntity(withQuery(annotate(review.command("list", { isDefault: true }), { effects: LOCAL_READ }).description("what waits for the owner's decision, newest first, with titles, who proposed it, why and the evidence").summary("what waits for your decision, newest first, with titles and evidence"), REVIEW_QUERY), "memo_proposal", PROPOSAL, { row: ROW })).option("--limit <n>", "proposals per page, at most 50", positive, 20).option("--page <n>", "which page, from 1", positive, 1).option("--compact", "one line per proposal").action(async (words2, given) => {
24085
24161
  if (given.limit > 50)
24086
24162
  throw new CliError("validation_error", "--limit is at most 50", { param: "limit" });
24087
24163
  const found = await withStore(env, (store) => listReview(store, env, words2, given));
@@ -24096,7 +24172,7 @@ var reviewCommand = /* @__PURE__ */ __name((program, streams, env) => {
24096
24172
  });
24097
24173
  print(given.json, body, reviewText(found.items, found.hasMore), given.compact);
24098
24174
  });
24099
- json4(annotate(review.command("show"), { effects: LOCAL_READ })).description("one proposal with its titles, signals and the text around each piece of evidence").argument("<id>", "the proposal's id, as review lists it: 17070, fact:512, memory:88, link:17, payment:4, close:Q-15").option("--brief", "only references and their titles, without excerpts or nearby text").option("--before-n <n>", "messages or document paragraphs before the evidence, at most 5", whole, 2).option("--after-n <n>", "messages or document paragraphs after the evidence, at most 5", whole, 2).option("--compact", "one line, as review prints it").action(async (id, given) => {
24175
+ json5(annotate(review.command("show"), { effects: LOCAL_READ })).description("one proposal with its titles, signals and the text around each piece of evidence").argument("<id>", "the proposal's id, as review lists it: 17070, fact:512, memory:88, link:17, payment:4, close:Q-15").option("--brief", "only references and their titles, without excerpts or nearby text").option("--before-n <n>", "messages or document paragraphs before the evidence, at most 5", whole, 2).option("--after-n <n>", "messages or document paragraphs after the evidence, at most 5", whole, 2).option("--compact", "one line, as review prints it").action(async (id, given) => {
24100
24176
  const body = await withStore(env, async (store) => {
24101
24177
  const shown = await showReview(store, env, id);
24102
24178
  const window = {
@@ -24118,7 +24194,7 @@ var reviewCommand = /* @__PURE__ */ __name((program, streams, env) => {
24118
24194
  print(given.json, body, void 0, given.compact);
24119
24195
  });
24120
24196
  for (const name of ["confirm", "reject"]) {
24121
- const command = byOption(json4(annotate(review.command(name), { effects: LOCAL_WRITE }))).description(name === "confirm" ? "confirm proposals by id or range (17070-17079,fact:500-502,17080/f1); each is decided on its own, so a refusal leaves the others decided. An agent decides only with --reason, never its own or a scan's" : "turn proposals down by id or range, with why; each is decided on its own").summary(name === "confirm" ? "confirm proposals by id or range; each on its own" : "turn proposals down, with why").argument("<ids...>", name === "confirm" ? "ids or ranges as review lists them; 17080/f1 accepts that finding and rejects the batch's others" : "ids or ranges as review lists them; a batch is turned down whole");
24197
+ const command = byOption(json5(annotate(review.command(name), { effects: LOCAL_WRITE }))).description(name === "confirm" ? "confirm proposals by id or range (17070-17079,fact:500-502,17080/f1); each is decided on its own, so a refusal leaves the others decided. An agent decides only with --reason, never its own or a scan's" : "turn proposals down by id or range, with why; each is decided on its own").summary(name === "confirm" ? "confirm proposals by id or range; each on its own" : "turn proposals down, with why").argument("<ids...>", name === "confirm" ? "ids or ranges as review lists them; 17080/f1 accepts that finding and rejects the batch's others" : "ids or ranges as review lists them; a batch is turned down whole");
24122
24198
  if (name === "confirm")
24123
24199
  command.option("--reason <text>", "why, in a few words; required when an agent decides");
24124
24200
  else
@@ -24139,7 +24215,7 @@ var reviewCommand = /* @__PURE__ */ __name((program, streams, env) => {
24139
24215
  print(given.json, itemAnswer(result, issues.length ? { meta: { complete: false, issues } } : void 0), decidedText(result), given.compact);
24140
24216
  });
24141
24217
  }
24142
- json4(annotate(review.command("status"), { effects: LOCAL_READ, output: { entity: "review_status" } })).summary("since yesterday: new mail, what is owed and waiting, what agents proposed").description("the owner's daily look, with no model call: per mail account the threads with new mail, what you owe and wait for, and how far each agent's processing mark has read; then what was proposed and what waits").option("--since-time <time>", "how far back: hours or days (12h, 7d) or a start date (2026-11-01)", "1d").action(async (given) => {
24218
+ json5(annotate(review.command("status"), { effects: LOCAL_READ, output: { entity: "review_status" } })).summary("since yesterday: new mail, what is owed and waiting, what agents proposed").description("the owner's daily look, with no model call: per mail account the threads with new mail, what you owe and wait for, and how far each agent's processing mark has read; then what was proposed and what waits").option("--since-time <time>", "how far back: hours or days (12h, 7d) or a start date (2026-11-01)", "1d").action(async (given) => {
24143
24219
  const since = /^\d{4}-\d{2}-\d{2}/.test(given.sinceTime) ? Date.parse(given.sinceTime) : Date.now() - parseDuration(given.sinceTime, "--since-time");
24144
24220
  if (Number.isNaN(since))
24145
24221
  throw new CliError("validation_error", `--since-time takes 12h, 7d or a date, not "${given.sinceTime}"`, {
@@ -24643,8 +24719,8 @@ For an agent: read with --compact, one line per hit with its reference. Never wr
24643
24719
  for (const { source, reason } of answer.skipped)
24644
24720
  streams.diagnostic(`${source} not searched: ${reason}
24645
24721
  `);
24646
- const { limit, page, json: json5, ...rest } = options;
24647
- print(json5, notesAnswer(answer, limit, page, { query: words2.join(" "), ...rest }), searchText(answer, (page - 1) * limit));
24722
+ const { limit, page, json: json6, ...rest } = options;
24723
+ print(json6, notesAnswer(answer, limit, page, { query: words2.join(" "), ...rest }), searchText(answer, (page - 1) * limit));
24648
24724
  });
24649
24725
  searchMemoriesCommand(group, streams, env);
24650
24726
  annotate(group.command("people"), { effects: LOCAL_READ, output: { entity: "person" } }).description("people whose name, username or alias holds every word, in every account unless --source narrows it; each with its person:<id> for --contact and its identities").summary("people by name across every account").argument("<name...>", "parts of the name, username or alias; case and accents do not matter").option("--source <accounts>", ACCOUNTS_HELP).option("--limit <n>", "most people, at most 100", (value) => {
@@ -25583,6 +25659,34 @@ var OWN_ENTITIES = entityFields({
25583
25659
  agent_action: ["id", "actor", "tool", "tier", "target", "status", "error", "started_at", "finished_at"],
25584
25660
  meeting_project: ["id", "meeting", "project", "confirmed", "provenance", "fingerprint"],
25585
25661
  notes_folder: ["id", "name", "path", "format", "kept_by"],
25662
+ order: [
25663
+ "id",
25664
+ "ref",
25665
+ "title",
25666
+ "customer",
25667
+ "purpose",
25668
+ "supplier",
25669
+ "supplier_name",
25670
+ "number",
25671
+ "currency",
25672
+ "total",
25673
+ "status",
25674
+ "order_date",
25675
+ "fulfilled_date",
25676
+ "invoice",
25677
+ "payment",
25678
+ "review",
25679
+ "author",
25680
+ "model",
25681
+ "confirmed_by",
25682
+ "source",
25683
+ "reason",
25684
+ "project",
25685
+ "project_name",
25686
+ "created_at",
25687
+ "updated_at",
25688
+ "evidence"
25689
+ ],
25586
25690
  invoice: [
25587
25691
  "id",
25588
25692
  "ref",
@@ -25716,6 +25820,7 @@ var createProgram = /* @__PURE__ */ __name(({ streams: raw = processStreams, env
25716
25820
  mentionsCommand(program, streams, env);
25717
25821
  factsCommand(program, streams, env);
25718
25822
  financeCommands(program, streams, env);
25823
+ orderCommands(program, streams, env);
25719
25824
  recordsCommand(program, streams, env);
25720
25825
  findingsCommand(program, streams, env);
25721
25826
  actionsCommand(program, streams, env);
@@ -25738,10 +25843,10 @@ var createProgram = /* @__PURE__ */ __name(({ streams: raw = processStreams, env
25738
25843
  const skill2 = customizeSharedCommand(skillCommand2(APP, new URL("../skills/cli-memo/SKILL.md", new URL("../program.js", import.meta.url).href)), "Memo installs its own stored-data instructions through its environment, prints the packaged primary skill without filesystem effects, and takes --json on each skill command because it has no global one.", () => {
25739
25844
  const out = answers(program, streams, env);
25740
25845
  const skill3 = skillCommand(APP, new URL("../skills/cli-memo/SKILL.md", new URL("../program.js", import.meta.url).href), (command) => {
25741
- const json5 = command.opts().json === true;
25742
- const renderer = createRenderer({ format: json5 ? "json" : "pretty", color: false, streams });
25846
+ const json6 = command.opts().json === true;
25847
+ const renderer = createRenderer({ format: json6 ? "json" : "pretty", color: false, streams });
25743
25848
  return {
25744
- renderer: json5 ? { ...renderer, result: /* @__PURE__ */ __name((value) => out.print(true, itemAnswer(value)), "result") } : renderer,
25849
+ renderer: json6 ? { ...renderer, result: /* @__PURE__ */ __name((value) => out.print(true, itemAnswer(value)), "result") } : renderer,
25745
25850
  streams,
25746
25851
  env
25747
25852
  };