@wirecat/cli-memo 0.131.48 → 0.131.50

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 (153) hide show
  1. package/README.md +1 -1
  2. package/dist/bin/memo.js +2 -2
  3. package/dist/bundle/{all-profiles-5YVSKBEV.js → all-profiles-3HADTQZA.js} +5 -5
  4. package/dist/bundle/{anthropic-BMK6F36V.js → anthropic-RI4DWC3G.js} +3 -3
  5. package/dist/bundle/{app-server-PUBWKHUG.js → app-server-6EKWAYJI.js} +35 -35
  6. package/dist/bundle/auto-C7G3WVRU.js +86 -0
  7. package/dist/bundle/{bun-ZBM364I6.js → bun-HUHQD76Z.js} +2 -2
  8. package/dist/bundle/{bun-sqlite-YLBILWBE.js → bun-sqlite-RPSKGB4O.js} +2 -2
  9. package/dist/bundle/{chunk-DNZYXNMB.js → chunk-2HPYP3ZT.js} +4 -4
  10. package/dist/bundle/{chunk-ADV7DNGM.js → chunk-2MFBZ2UM.js} +3 -3
  11. package/dist/bundle/{chunk-T56R3TF2.js → chunk-2OIGV355.js} +47 -47
  12. package/dist/bundle/{chunk-RCEDN42Q.js → chunk-355PHJYX.js} +1 -1
  13. package/dist/bundle/{chunk-U2EFWFDN.js → chunk-3BG5VYMV.js} +7 -7
  14. package/dist/bundle/{chunk-QUQJZSRF.js → chunk-4VQPPX47.js} +289 -279
  15. package/dist/bundle/{chunk-QTBFV5RL.js → chunk-57LMWEDK.js} +2 -2
  16. package/dist/bundle/{chunk-C3I6L7JZ.js → chunk-5JVA43HX.js} +5 -5
  17. package/dist/bundle/{chunk-NWRITJ7F.js → chunk-5RVL7GYA.js} +1 -1
  18. package/dist/bundle/{chunk-LDHFV34C.js → chunk-5TWUUDKP.js} +7 -1
  19. package/dist/bundle/{chunk-TZROQCQ5.js → chunk-6N6BVPVX.js} +3 -3
  20. package/dist/bundle/{chunk-DGLSE6XA.js → chunk-7ZLOZGIC.js} +5 -5
  21. package/dist/bundle/{chunk-UK2MMZFW.js → chunk-AKD62EUH.js} +1 -1
  22. package/dist/bundle/{chunk-X3KMQW2Z.js → chunk-D5KGXYG6.js} +28 -21
  23. package/dist/bundle/{chunk-YZEIVLAG.js → chunk-DJRBSOWH.js} +3 -3
  24. package/dist/bundle/{chunk-H4726KFZ.js → chunk-DVA6MQWK.js} +1 -1
  25. package/dist/bundle/{chunk-UHWQ2YXW.js → chunk-EJDV5IIF.js} +1 -1
  26. package/dist/bundle/{chunk-F7S25YVA.js → chunk-FOM7WE2C.js} +7 -7
  27. package/dist/bundle/{chunk-IGYOKYG7.js → chunk-GIDZGGAD.js} +2 -2
  28. package/dist/bundle/{chunk-E4YCKC3F.js → chunk-GV6XJMUW.js} +10 -10
  29. package/dist/bundle/{chunk-TW643BIA.js → chunk-HCMXUHHF.js} +56 -56
  30. package/dist/bundle/{chunk-YBN7UF2Y.js → chunk-HXOAPH47.js} +1 -1
  31. package/dist/bundle/{chunk-MKLDUZ7N.js → chunk-IXXBPSXO.js} +1 -1
  32. package/dist/bundle/{chunk-CSPAEYKK.js → chunk-KVOHC4ZM.js} +21 -13
  33. package/dist/bundle/{chunk-3LA6OE35.js → chunk-LUPJB7ZD.js} +8 -8
  34. package/dist/bundle/{chunk-YO7AUGUT.js → chunk-LZWXGO3G.js} +1 -1
  35. package/dist/bundle/{chunk-EGVRMA2C.js → chunk-N6IHOYMT.js} +11 -11
  36. package/dist/bundle/{chunk-DHO2JWF7.js → chunk-ND6D4A6H.js} +1 -1
  37. package/dist/bundle/{chunk-C6UTJATA.js → chunk-NJDGZRF5.js} +10 -10
  38. package/dist/bundle/{chunk-5BDWOMH6.js → chunk-NTQUBSIJ.js} +5 -5
  39. package/dist/bundle/{chunk-PUZ2G2KS.js → chunk-O3KOW7RG.js} +6 -6
  40. package/dist/bundle/{chunk-DMI3SFLF.js → chunk-OT23U5LT.js} +1 -1
  41. package/dist/bundle/{chunk-VJJCF52V.js → chunk-P2LMXIHL.js} +323 -289
  42. package/dist/bundle/{chunk-RSJJGXZP.js → chunk-P2TISY3R.js} +1 -1
  43. package/dist/bundle/{chunk-MIMLBSUQ.js → chunk-PEYCLVIO.js} +2 -2
  44. package/dist/bundle/{chunk-4FDK7LVF.js → chunk-PJMGQJAX.js} +4 -4
  45. package/dist/bundle/{chunk-HE56X542.js → chunk-PUTGTW6W.js} +1 -1
  46. package/dist/bundle/{chunk-VOJU5FVA.js → chunk-PYRHU35W.js} +149 -149
  47. package/dist/bundle/{chunk-XR4N2MYB.js → chunk-QCPUC3HW.js} +12 -12
  48. package/dist/bundle/{chunk-66KZBRZN.js → chunk-QCRJNWJZ.js} +2 -2
  49. package/dist/bundle/{chunk-MN3SFFTU.js → chunk-RKFKRCOH.js} +274 -253
  50. package/dist/bundle/{chunk-FTRFN3MU.js → chunk-RYMYE5PF.js} +7 -7
  51. package/dist/bundle/{chunk-TYOZC3BU.js → chunk-S7F4ZDFU.js} +2 -2
  52. package/dist/bundle/{chunk-2O32QNK3.js → chunk-SLIF5EMS.js} +17 -8
  53. package/dist/bundle/{chunk-BRLVX4V6.js → chunk-SSPSNSC5.js} +1 -1
  54. package/dist/bundle/{chunk-SGDTAVMU.js → chunk-TSUNLSIN.js} +1 -1
  55. package/dist/bundle/{chunk-X7UITQ66.js → chunk-UAR6UMFL.js} +4 -4
  56. package/dist/bundle/{chunk-VICARVCN.js → chunk-UDJTRFRV.js} +1 -1
  57. package/dist/bundle/{chunk-LDXCFBIC.js → chunk-UJLYVXP6.js} +31 -31
  58. package/dist/bundle/{chunk-U64G664E.js → chunk-V2DMJ6ES.js} +4 -4
  59. package/dist/bundle/{chunk-J737T3RM.js → chunk-W6JQNNJ5.js} +2 -2
  60. package/dist/bundle/{chunk-3A3KPJHP.js → chunk-XH6K2B5L.js} +4 -4
  61. package/dist/bundle/{chunk-IWEL7QCT.js → chunk-XXGBXCBQ.js} +9 -9
  62. package/dist/bundle/{chunk-EQ237UYC.js → chunk-XZZFHQGM.js} +20 -20
  63. package/dist/bundle/{chunk-KNUUZW42.js → chunk-Y6VH7IRN.js} +27 -27
  64. package/dist/bundle/{chunk-DPQL5JK6.js → chunk-ZA7FKGB7.js} +2 -2
  65. package/dist/bundle/{chunk-IHFK634F.js → chunk-ZDHNEYKO.js} +5 -5
  66. package/dist/bundle/{command-contract-BRZAKY6L.js → command-contract-MRLLZQ4M.js} +11 -11
  67. package/dist/bundle/{decode-WW5ZMB5R.js → decode-IYWZ3X7X.js} +2 -2
  68. package/dist/bundle/{echarts-ODD3E2RQ.js → echarts-5LLJ6JXC.js} +2 -2
  69. package/dist/bundle/{embed-3ETM2WYU.js → embed-EGY2R4FN.js} +3 -3
  70. package/dist/bundle/{embedder-6YL3WFBR.js → embedder-K2BGPWNX.js} +6 -6
  71. package/dist/bundle/{entry-F2UGXKZ3.js → entry-NMAZNDNU.js} +4 -4
  72. package/dist/bundle/failure-FW4NJI7G.js +66 -0
  73. package/dist/bundle/{first-run-OHQHOP5U.js → first-run-QDCSWX3N.js} +5 -5
  74. package/dist/bundle/{first-screen-ULF26GYG.js → first-screen-YABO6OZ7.js} +12 -12
  75. package/dist/bundle/{instructions-RS5VERM7.js → instructions-P72XX4AK.js} +1 -1
  76. package/dist/bundle/{mcp-TS2UAN5I.js → mcp-QRZ2HSON.js} +35 -35
  77. package/dist/bundle/memo.js +6 -6
  78. package/dist/bundle/{node-BU6NHYHF.js → node-ZB4RNICS.js} +2 -2
  79. package/dist/bundle/{node-sqlite-WAF44CWS.js → node-sqlite-7XJ4J4E5.js} +3 -3
  80. package/dist/bundle/{oauth-T7RCNIYO.js → oauth-FMH3JIPT.js} +4 -4
  81. package/dist/bundle/{open-QLX2IVTC.js → open-PRCTOHHL.js} +2 -2
  82. package/dist/bundle/{openai-O25HCJEY.js → openai-VW4W6SIO.js} +7 -7
  83. package/dist/bundle/{process-SB2X3TKY.js → process-XNN4WG6N.js} +1 -1
  84. package/dist/bundle/{program-SDLIDODQ.js → program-TVT22XUQ.js} +180 -85
  85. package/dist/bundle/{prompt-OHVHUNV4.js → prompt-RT55UZGB.js} +2 -2
  86. package/dist/bundle/{recognize-SESVG7O3.js → recognize-AQ2UXUC2.js} +1 -1
  87. package/dist/bundle/{remote-DNGLVDYJ.js → remote-T3P5OWRR.js} +4 -4
  88. package/dist/bundle/{rerank-SF3OUPEB.js → rerank-743T3675.js} +4 -4
  89. package/dist/bundle/{serve-6RK7QFZ2.js → serve-BSKOU4FJ.js} +6 -6
  90. package/dist/bundle/{server-N6PCX7K7.js → server-ECOTCYJ3.js} +50 -50
  91. package/dist/bundle/server-VMWVYGK7.js +48 -0
  92. package/dist/bundle/server-ZFHSK6TT.js +61 -0
  93. package/dist/bundle/{state-J6WLL4TQ.js → state-MDMI3I2Z.js} +3 -3
  94. package/dist/bundle/{store-R2PHK3FR.js → store-I3DIZALN.js} +9 -9
  95. package/dist/bundle/store-maintenance-command-HZPQPOK7.js +48 -0
  96. package/dist/bundle/update-ZIZAU5RE.js +69 -0
  97. package/dist/examples.d.ts.map +1 -1
  98. package/dist/examples.js +1 -0
  99. package/dist/examples.js.map +1 -1
  100. package/dist/memories/memory.d.ts.map +1 -1
  101. package/dist/memories/memory.js +3 -1
  102. package/dist/memories/memory.js.map +1 -1
  103. package/dist/notes/about.js +2 -2
  104. package/dist/notes/about.js.map +1 -1
  105. package/dist/notes/dates.d.ts +3 -0
  106. package/dist/notes/dates.d.ts.map +1 -0
  107. package/dist/notes/dates.js +15 -0
  108. package/dist/notes/dates.js.map +1 -0
  109. package/dist/notes/folders-command.d.ts.map +1 -1
  110. package/dist/notes/folders-command.js +51 -1
  111. package/dist/notes/folders-command.js.map +1 -1
  112. package/dist/notes/folders.d.ts +1 -0
  113. package/dist/notes/folders.d.ts.map +1 -1
  114. package/dist/notes/folders.js +1 -0
  115. package/dist/notes/folders.js.map +1 -1
  116. package/dist/notes/import.d.ts +3 -1
  117. package/dist/notes/import.d.ts.map +1 -1
  118. package/dist/notes/import.js +20 -3
  119. package/dist/notes/import.js.map +1 -1
  120. package/dist/notes/state.d.ts +2 -0
  121. package/dist/notes/state.d.ts.map +1 -1
  122. package/dist/notes/state.js +3 -1
  123. package/dist/notes/state.js.map +1 -1
  124. package/dist/progress.d.ts +12 -0
  125. package/dist/progress.d.ts.map +1 -0
  126. package/dist/progress.js +19 -0
  127. package/dist/progress.js.map +1 -0
  128. package/dist/reasons.d.ts.map +1 -1
  129. package/dist/reasons.js +6 -0
  130. package/dist/reasons.js.map +1 -1
  131. package/dist/run/auto.d.ts +3 -0
  132. package/dist/run/auto.d.ts.map +1 -1
  133. package/dist/run/auto.js +16 -4
  134. package/dist/run/auto.js.map +1 -1
  135. package/dist/run/import.d.ts.map +1 -1
  136. package/dist/run/import.js +7 -1
  137. package/dist/run/import.js.map +1 -1
  138. package/dist/search/answers.d.ts.map +1 -1
  139. package/dist/search/answers.js +7 -2
  140. package/dist/search/answers.js.map +1 -1
  141. package/dist/search/search.d.ts.map +1 -1
  142. package/dist/search/search.js +5 -4
  143. package/dist/search/search.js.map +1 -1
  144. package/dist/version.d.ts +1 -1
  145. package/dist/version.js +1 -1
  146. package/package.json +2 -2
  147. package/dist/bundle/auto-FXCXORUF.js +0 -86
  148. package/dist/bundle/failure-X7CYCJWD.js +0 -66
  149. package/dist/bundle/server-JKWE764O.js +0 -61
  150. package/dist/bundle/server-RKGTOY4D.js +0 -48
  151. package/dist/bundle/store-maintenance-command-LRZ5R3UM.js +0 -48
  152. package/dist/bundle/update-RV2WSULI.js +0 -69
  153. /package/dist/bundle/{chunk-IO44XLFM.js → chunk-CDFNOKPG.js} +0 -0
@@ -6,17 +6,17 @@ import {
6
6
  autoState,
7
7
  lastAutoRun,
8
8
  recordAutoRun
9
- } from "./chunk-2O32QNK3.js";
9
+ } from "./chunk-SLIF5EMS.js";
10
10
  import {
11
11
  installer,
12
12
  latest,
13
13
  upgradeCommand
14
- } from "./chunk-IHFK634F.js";
14
+ } from "./chunk-ZDHNEYKO.js";
15
15
  import {
16
16
  mcpOwnerAllowed,
17
17
  readOnlyAvailability,
18
18
  refuseWritesUnderLock
19
- } from "./chunk-DGLSE6XA.js";
19
+ } from "./chunk-7ZLOZGIC.js";
20
20
  import {
21
21
  answers,
22
22
  atDetail,
@@ -26,7 +26,7 @@ import {
26
26
  trackAnswers,
27
27
  wholeList,
28
28
  withStore
29
- } from "./chunk-4FDK7LVF.js";
29
+ } from "./chunk-PJMGQJAX.js";
30
30
  import {
31
31
  ATTACHMENT_CHARS,
32
32
  DIALECTS,
@@ -56,15 +56,15 @@ import {
56
56
  showMail,
57
57
  unsetConfigKey,
58
58
  updateConfig
59
- } from "./chunk-LDXCFBIC.js";
59
+ } from "./chunk-UJLYVXP6.js";
60
60
  import "./chunk-QP3KNC5D.js";
61
- import "./chunk-QTBFV5RL.js";
62
- import "./chunk-U2EFWFDN.js";
63
- import "./chunk-TZROQCQ5.js";
61
+ import "./chunk-57LMWEDK.js";
62
+ import "./chunk-3BG5VYMV.js";
63
+ import "./chunk-6N6BVPVX.js";
64
64
  import {
65
65
  errorObject,
66
66
  recognisable
67
- } from "./chunk-ADV7DNGM.js";
67
+ } from "./chunk-2MFBZ2UM.js";
68
68
  import {
69
69
  DISCOVERY_DESCRIPTIONS,
70
70
  DOCTOR_DEEP_OPTION,
@@ -101,23 +101,23 @@ import {
101
101
  tasksCommand,
102
102
  tasksStatsCommand,
103
103
  withSqliteSidecars
104
- } from "./chunk-MN3SFFTU.js";
105
- import "./chunk-RCEDN42Q.js";
106
- import "./chunk-BRLVX4V6.js";
104
+ } from "./chunk-RKFKRCOH.js";
105
+ import "./chunk-355PHJYX.js";
106
+ import "./chunk-SSPSNSC5.js";
107
107
  import {
108
108
  allHitItem,
109
109
  coverageGaps,
110
110
  messageHitItem,
111
111
  noteHitItem,
112
112
  shownOf
113
- } from "./chunk-X3KMQW2Z.js";
114
- import "./chunk-MKLDUZ7N.js";
113
+ } from "./chunk-D5KGXYG6.js";
114
+ import "./chunk-IXXBPSXO.js";
115
115
  import {
116
116
  SKILL_TARGETS,
117
117
  skillCommand,
118
118
  skillPath,
119
119
  skillVersion
120
- } from "./chunk-C6UTJATA.js";
120
+ } from "./chunk-NJDGZRF5.js";
121
121
  import {
122
122
  modelGateway,
123
123
  recoveryNotes,
@@ -125,8 +125,8 @@ import {
125
125
  storeRecoveryCheck,
126
126
  storeRecoveryRun,
127
127
  storeSummary
128
- } from "./chunk-T56R3TF2.js";
129
- import "./chunk-EQ237UYC.js";
128
+ } from "./chunk-2OIGV355.js";
129
+ import "./chunk-XZZFHQGM.js";
130
130
  import {
131
131
  LIST_QUERY_GUIDE,
132
132
  STATUS_SIGNALS,
@@ -178,18 +178,18 @@ import {
178
178
  termField,
179
179
  typedQuery,
180
180
  withQuery
181
- } from "./chunk-QUQJZSRF.js";
181
+ } from "./chunk-4VQPPX47.js";
182
182
  import {
183
183
  readBoundedUtf8File,
184
184
  writeFileAtomic
185
- } from "./chunk-XR4N2MYB.js";
185
+ } from "./chunk-QCPUC3HW.js";
186
186
  import {
187
187
  commandsText,
188
188
  inSection,
189
189
  installHelp
190
- } from "./chunk-PUZ2G2KS.js";
190
+ } from "./chunk-O3KOW7RG.js";
191
191
  import "./chunk-HTQTIKWP.js";
192
- import "./chunk-IGYOKYG7.js";
192
+ import "./chunk-GIDZGGAD.js";
193
193
  import {
194
194
  Command,
195
195
  FETCH,
@@ -220,22 +220,22 @@ import {
220
220
  settingRows,
221
221
  settingsFor,
222
222
  snakeKeys
223
- } from "./chunk-VOJU5FVA.js";
224
- import "./chunk-F7S25YVA.js";
225
- import "./chunk-E4YCKC3F.js";
223
+ } from "./chunk-PYRHU35W.js";
224
+ import "./chunk-FOM7WE2C.js";
225
+ import "./chunk-GV6XJMUW.js";
226
226
  import {
227
227
  isNewer
228
228
  } from "./chunk-7RNHFNHX.js";
229
229
  import "./chunk-VW6BF6M7.js";
230
- import "./chunk-YZEIVLAG.js";
231
- import "./chunk-IWEL7QCT.js";
232
- import "./chunk-DMI3SFLF.js";
233
- import "./chunk-DNZYXNMB.js";
230
+ import "./chunk-DJRBSOWH.js";
231
+ import "./chunk-XXGBXCBQ.js";
232
+ import "./chunk-OT23U5LT.js";
233
+ import "./chunk-2HPYP3ZT.js";
234
234
  import {
235
235
  releaseLock,
236
236
  takeLock
237
- } from "./chunk-TYOZC3BU.js";
238
- import "./chunk-H4726KFZ.js";
237
+ } from "./chunk-S7F4ZDFU.js";
238
+ import "./chunk-DVA6MQWK.js";
239
239
  import {
240
240
  DEAL_KINDS,
241
241
  DEAL_ROLES,
@@ -271,9 +271,10 @@ import {
271
271
  openStore,
272
272
  parseLocator,
273
273
  parseReference,
274
+ plainQuery,
274
275
  providerNamed,
275
276
  refLabel
276
- } from "./chunk-VJJCF52V.js";
277
+ } from "./chunk-P2LMXIHL.js";
277
278
  import {
278
279
  FACT_STATUSES,
279
280
  FACT_TYPES,
@@ -307,22 +308,22 @@ import {
307
308
  timezoneOf,
308
309
  validateQuery,
309
310
  walkQuery
310
- } from "./chunk-TW643BIA.js";
311
- import "./chunk-UHWQ2YXW.js";
312
- import "./chunk-FTRFN3MU.js";
313
- import "./chunk-U64G664E.js";
314
- import "./chunk-J737T3RM.js";
315
- import "./chunk-UK2MMZFW.js";
316
- import "./chunk-DHO2JWF7.js";
317
- import "./chunk-NWRITJ7F.js";
318
- import "./chunk-66KZBRZN.js";
319
- import "./chunk-C3I6L7JZ.js";
311
+ } from "./chunk-HCMXUHHF.js";
312
+ import "./chunk-EJDV5IIF.js";
313
+ import "./chunk-RYMYE5PF.js";
314
+ import "./chunk-V2DMJ6ES.js";
315
+ import "./chunk-W6JQNNJ5.js";
316
+ import "./chunk-AKD62EUH.js";
317
+ import "./chunk-ND6D4A6H.js";
318
+ import "./chunk-5RVL7GYA.js";
319
+ import "./chunk-QCRJNWJZ.js";
320
+ import "./chunk-5JVA43HX.js";
320
321
  import {
321
322
  sharedModelsDirectory
322
- } from "./chunk-CSPAEYKK.js";
323
+ } from "./chunk-KVOHC4ZM.js";
323
324
  import {
324
325
  storePath
325
- } from "./chunk-YO7AUGUT.js";
326
+ } from "./chunk-LZWXGO3G.js";
326
327
  import {
327
328
  provideTerminal,
328
329
  terminalOf
@@ -332,12 +333,12 @@ import {
332
333
  REASONS,
333
334
  STORE_CLIENT,
334
335
  VERSION
335
- } from "./chunk-LDHFV34C.js";
336
+ } from "./chunk-5TWUUDKP.js";
336
337
  import "./chunk-P3ASN72F.js";
337
338
  import "./chunk-VOXIGICJ.js";
338
339
  import "./chunk-D72URWJE.js";
339
- import "./chunk-5BDWOMH6.js";
340
- import "./chunk-HE56X542.js";
340
+ import "./chunk-NTQUBSIJ.js";
341
+ import "./chunk-PUTGTW6W.js";
341
342
  import {
342
343
  createDeadline,
343
344
  createRenderer,
@@ -376,7 +377,7 @@ import {
376
377
  errorCodes,
377
378
  isCliError
378
379
  } from "./chunk-BXTDAGM4.js";
379
- import "./chunk-RSJJGXZP.js";
380
+ import "./chunk-P2TISY3R.js";
380
381
  import {
381
382
  __name
382
383
  } from "./chunk-ZVVMGPBJ.js";
@@ -658,7 +659,7 @@ var collect = /* @__PURE__ */ __name((value, previous = []) => [...previous, val
658
659
  var readScope = /* @__PURE__ */ __name((command, help = ONE_ACCOUNT_HELP) => sourceOptions(command, help).option("--json", "print JSON; --json=id,title keeps only those fields"), "readScope");
659
660
  var writeScope = /* @__PURE__ */ __name((command, help) => writeOptions(command, help).option("--json", "print JSON; --json=id,title keeps only those fields"), "writeScope");
660
661
 
661
- // node_modules/.pnpm/@wirecat+cli-core@0.602.0_@wirecat+cli-base@0.80.8_commander@15.0.0_esbuild@0.28.2_type_87bcf484fc0706f541e30693101b5a29/node_modules/@wirecat/cli-core/dist/mail/sender-scores.js
662
+ // node_modules/.pnpm/@wirecat+cli-core@0.604.0_@wirecat+cli-base@0.80.8_commander@15.0.0_esbuild@0.28.2_type_90db47d7f41d7a563eea7bc9cc13c345/node_modules/@wirecat/cli-core/dist/mail/sender-scores.js
662
663
  var SCORED = "mail_sender_scores";
663
664
  var DAY = 864e5;
664
665
  var RECENT = 2 * 365 * DAY;
@@ -674,7 +675,7 @@ var demotedSenders = /* @__PURE__ */ __name(async (store) => {
674
675
  return senders;
675
676
  }, "demotedSenders");
676
677
 
677
- // node_modules/.pnpm/@wirecat+cli-core@0.602.0_@wirecat+cli-base@0.80.8_commander@15.0.0_esbuild@0.28.2_type_87bcf484fc0706f541e30693101b5a29/node_modules/@wirecat/cli-core/dist/mail/sync.js
678
+ // node_modules/.pnpm/@wirecat+cli-core@0.604.0_@wirecat+cli-base@0.80.8_commander@15.0.0_esbuild@0.28.2_type_90db47d7f41d7a563eea7bc9cc13c345/node_modules/@wirecat/cli-core/dist/mail/sync.js
678
679
  var DAY2 = 864e5;
679
680
  var EDGE = 2 * DAY2;
680
681
 
@@ -1389,7 +1390,7 @@ var refOf = /* @__PURE__ */ __name((note, anchor = null) => ({
1389
1390
  folderId: note.folderId,
1390
1391
  path: note.path,
1391
1392
  title: note.title,
1392
- modifiedAt: note.updatedAt,
1393
+ modifiedAt: note.modifiedAt ?? note.updatedAt,
1393
1394
  ...anchor === null ? {} : { anchor }
1394
1395
  }), "refOf");
1395
1396
  var PAGE = 500;
@@ -1429,7 +1430,7 @@ var notesAbout = /* @__PURE__ */ __name(async (store, subject, limit = 20) => {
1429
1430
  const found = await notesReaching(store, subject);
1430
1431
  const unique = /* @__PURE__ */ __name((via) => [
1431
1432
  ...new Map(found.filter((item) => item.via === via).map((item) => [`${item.note.ref}#${item.anchor ?? ""}`, item])).values()
1432
- ].sort((a, b) => b.note.updatedAt.localeCompare(a.note.updatedAt)), "unique");
1433
+ ].sort((a, b) => refOf(b.note).modifiedAt.localeCompare(refOf(a.note).modifiedAt)), "unique");
1433
1434
  const [about, linking, through, waiting2] = ["about", "link", "through", "name"].map(unique);
1434
1435
  return {
1435
1436
  subject: subject.ref,
@@ -1542,7 +1543,7 @@ var unifiedSearch = /* @__PURE__ */ __name(async (store, query, options) => {
1542
1543
  locator: note.ref,
1543
1544
  provider: "notes",
1544
1545
  account: note.folderId ?? "internal",
1545
- timestamp: note.updatedAt,
1546
+ timestamp: note.modifiedAt ?? note.updatedAt,
1546
1547
  text: note.text.slice(0, 2e3),
1547
1548
  match
1548
1549
  }), "noteItem");
@@ -1696,14 +1697,15 @@ var searchKind = /* @__PURE__ */ __name(async (store, kind, { text: text3, limit
1696
1697
  ...account2 === void 0 ? {} : { mailAccount: account2 },
1697
1698
  ...plainOrder ? { plainOrder: true } : {}
1698
1699
  }, { app: APP });
1700
+ const plain = plainQuery(text3);
1699
1701
  return searchStore(store, MEMO, {
1700
1702
  text: text3,
1701
1703
  kind,
1702
- ...hasSource(parseLucene(text3).root) ? {} : { source: "all" },
1704
+ ...hasSource(parseLucene(plain).root) ? {} : { source: "all" },
1703
1705
  limit,
1704
1706
  ...scope,
1705
1707
  // As search all does: a question finds a short reply by the message it answers, and records holding some words.
1706
- ...!exact && questionLookup(text3) !== void 0 ? { discover: true } : {}
1708
+ ...!exact && questionLookup(plain) !== void 0 ? { discover: true } : {}
1707
1709
  }, { app: APP });
1708
1710
  }, "searchKind");
1709
1711
  var keyRefs = /* @__PURE__ */ __name(async (store, project) => new Set((await keyDocuments(store, await projectOf(store, project))).map((item) => item.ref)), "keyRefs");
@@ -1866,6 +1868,7 @@ var attachFolder = /* @__PURE__ */ __name((config, id, path, format) => {
1866
1868
  const kept = folders.filter((other) => other.id !== id && other.path !== at);
1867
1869
  return { config: withFolders(config, [...kept, folder]), folder };
1868
1870
  }, "attachFolder");
1871
+ var unbindFolder = /* @__PURE__ */ __name((config, path) => withFolders(config, noteFolders(config.notes).filter((folder) => folder.path !== resolve(path))), "unbindFolder");
1869
1872
 
1870
1873
  // dist/notes/bound.js
1871
1874
  var UNBOUND = "folder.unbound";
@@ -1911,7 +1914,7 @@ import { createHash } from "node:crypto";
1911
1914
  import { existsSync, readFileSync as readFileSync2, statSync } from "node:fs";
1912
1915
  import { basename, extname, relative, sep } from "node:path";
1913
1916
 
1914
- // node_modules/.pnpm/@wirecat+cli-core@0.602.0_@wirecat+cli-base@0.80.8_commander@15.0.0_esbuild@0.28.2_type_87bcf484fc0706f541e30693101b5a29/node_modules/@wirecat/cli-core/dist/services/documents/extraction.js
1917
+ // node_modules/.pnpm/@wirecat+cli-core@0.604.0_@wirecat+cli-base@0.80.8_commander@15.0.0_esbuild@0.28.2_type_90db47d7f41d7a563eea7bc9cc13c345/node_modules/@wirecat/cli-core/dist/services/documents/extraction.js
1915
1918
  var Proposal = object({
1916
1919
  kind: picklist(["summary", "digest", "fact", "preference"]),
1917
1920
  body: pipe(string(), trim(), minLength(1), maxLength(15e3)),
@@ -1919,12 +1922,26 @@ var Proposal = object({
1919
1922
  });
1920
1923
  var Proposals = object({ items: pipe(array(Proposal), maxLength(20)) });
1921
1924
 
1922
- // node_modules/.pnpm/@wirecat+cli-core@0.602.0_@wirecat+cli-base@0.80.8_commander@15.0.0_esbuild@0.28.2_type_87bcf484fc0706f541e30693101b5a29/node_modules/@wirecat/cli-core/dist/services/documents/mirrors.js
1925
+ // node_modules/.pnpm/@wirecat+cli-core@0.604.0_@wirecat+cli-base@0.80.8_commander@15.0.0_esbuild@0.28.2_type_90db47d7f41d7a563eea7bc9cc13c345/node_modules/@wirecat/cli-core/dist/services/documents/mirrors.js
1923
1926
  var ID = pipe(string(), regex(/^[A-Za-z0-9_-]{1,200}$/));
1924
1927
 
1925
- // node_modules/.pnpm/@wirecat+cli-core@0.602.0_@wirecat+cli-base@0.80.8_commander@15.0.0_esbuild@0.28.2_type_87bcf484fc0706f541e30693101b5a29/node_modules/@wirecat/cli-core/dist/services/documents/sync.js
1928
+ // node_modules/.pnpm/@wirecat+cli-core@0.604.0_@wirecat+cli-base@0.80.8_commander@15.0.0_esbuild@0.28.2_type_90db47d7f41d7a563eea7bc9cc13c345/node_modules/@wirecat/cli-core/dist/services/documents/sync.js
1926
1929
  var MAX_PICTURE_BYTES = 25 * 1024 * 1024;
1927
1930
 
1931
+ // dist/notes/dates.js
1932
+ var BARE_DAY = /^(\d{4})-(\d{2})-(\d{2})$/;
1933
+ var frontMatterTime = /* @__PURE__ */ __name((frontMatter) => {
1934
+ const value = frontMatter?.date;
1935
+ if (value instanceof Date)
1936
+ return value.getTime();
1937
+ if (typeof value !== "string")
1938
+ return void 0;
1939
+ const day2 = BARE_DAY.exec(value.trim());
1940
+ const time = day2 ? new Date(Number(day2[1]), Number(day2[2]) - 1, Number(day2[3])).getTime() : Date.parse(value);
1941
+ return Number.isFinite(time) ? time : void 0;
1942
+ }, "frontMatterTime");
1943
+ var noteFileTime = /* @__PURE__ */ __name((frontMatter, mtimeMs) => new Date(frontMatterTime(frontMatter) ?? mtimeMs).toISOString(), "noteFileTime");
1944
+
1928
1945
  // dist/notes/links.js
1929
1946
  import { posix } from "node:path";
1930
1947
  var fold2 = /* @__PURE__ */ __name((value) => value.normalize("NFC").toLocaleLowerCase("en"), "fold");
@@ -1979,7 +1996,7 @@ var detectRenames = /* @__PURE__ */ __name((before, after) => {
1979
1996
  }, "detectRenames");
1980
1997
 
1981
1998
  // dist/notes/state.js
1982
- import { mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
1999
+ import { mkdirSync, readFileSync, renameSync, rmSync, writeFileSync } from "node:fs";
1983
2000
  import { join } from "node:path";
1984
2001
  var empty = /* @__PURE__ */ __name(() => ({ files: {}, documents: {} }), "empty");
1985
2002
  var fileOf = /* @__PURE__ */ __name((env, id) => join(resolvePaths({ appName: "cli-memo", prefix: "MEMO", env }).state, "folders", `${id}.json`), "fileOf");
@@ -1996,6 +2013,7 @@ var saveFolderState = /* @__PURE__ */ __name((env, id, state) => {
1996
2013
  writeFileSync(`${file}.tmp`, JSON.stringify(state));
1997
2014
  renameSync(`${file}.tmp`, file);
1998
2015
  }, "saveFolderState");
2016
+ var dropFolderState = /* @__PURE__ */ __name((env, id) => rmSync(fileOf(env, id), { force: true }), "dropFolderState");
1999
2017
 
2000
2018
  // dist/notes/import.js
2001
2019
  var MAX_TEXT = 2e5;
@@ -2024,7 +2042,8 @@ var storable = /* @__PURE__ */ __name((tags) => [
2024
2042
  }
2025
2043
  }))
2026
2044
  ].sort(), "storable");
2027
- var importNotes = /* @__PURE__ */ __name(async (store, folder, { ignore = [], skip = [], env = process.env, loadEngine = importEngine } = {}) => {
2045
+ var importNotes = /* @__PURE__ */ __name(async (store, folder, { ignore = [], skip = [], env = process.env, loadEngine = importEngine, onFile = /* @__PURE__ */ __name(() => {
2046
+ }, "onFile") } = {}) => {
2028
2047
  if (!existsSync(folder.path))
2029
2048
  throw new CliError("not_found", missingFolder(folder.path), {
2030
2049
  reason: "notes.folder-missing",
@@ -2041,6 +2060,7 @@ var importNotes = /* @__PURE__ */ __name(async (store, folder, { ignore = [], sk
2041
2060
  const truncated = [];
2042
2061
  const unreadable = [];
2043
2062
  const read = [];
2063
+ const mtimes = /* @__PURE__ */ new Map();
2044
2064
  const notReadAs = /* @__PURE__ */ __name((path, status, engine) => {
2045
2065
  const entry = { status, ...engine === void 0 ? {} : { engine } };
2046
2066
  notRead.push({ path, ...entry });
@@ -2048,7 +2068,10 @@ var importNotes = /* @__PURE__ */ __name(async (store, folder, { ignore = [], sk
2048
2068
  unreadable.push(path);
2049
2069
  }, "notReadAs");
2050
2070
  const files = noteFiles(folder.path, ignore, NOTE_EXTENSIONS, { skipExported: false });
2051
- for (const path of files) {
2071
+ onFile(0, files.length);
2072
+ for (const [index, path] of files.entries()) {
2073
+ if (index > 0)
2074
+ onFile(index - read.length, files.length);
2052
2075
  const id = inside(folder.path, path);
2053
2076
  const previous = before?.files[id];
2054
2077
  const wasNotRead = before?.notRead?.[id];
@@ -2061,6 +2084,7 @@ var importNotes = /* @__PURE__ */ __name(async (store, folder, { ignore = [], sk
2061
2084
  continue;
2062
2085
  }
2063
2086
  const stat = statSync(path);
2087
+ mtimes.set(id, stat.mtimeMs);
2064
2088
  const stamp = `${stat.mtimeMs}:${stat.size}:`;
2065
2089
  const exported = previous?.startsWith(`${MEMO2}${stamp}`);
2066
2090
  const settled = stored.has(id) || wasNotRead !== void 0 && wasNotRead.status !== "engine-missing";
@@ -2100,7 +2124,8 @@ var importNotes = /* @__PURE__ */ __name(async (store, folder, { ignore = [], sk
2100
2124
  const parsed = /* @__PURE__ */ new Map();
2101
2125
  let changed = 0;
2102
2126
  let added = 0;
2103
- for (const { id, path, bytes, hash } of read) {
2127
+ for (const [index, { id, path, bytes, hash }] of read.entries()) {
2128
+ onFile(files.length - read.length + index, files.length);
2104
2129
  if (stored.get(id)?.contentHash === hash)
2105
2130
  continue;
2106
2131
  const extraction = await extractText(bytes, { kind: "file", name: basename(path), mime: null, path }, loadEngine);
@@ -2136,6 +2161,7 @@ var importNotes = /* @__PURE__ */ __name(async (store, folder, { ignore = [], sk
2136
2161
  if (saved.changed)
2137
2162
  changed++;
2138
2163
  }
2164
+ onFile(files.length, files.length);
2139
2165
  const gone = [...stored.keys()].filter((id) => !listed.has(id));
2140
2166
  let deleted = 0;
2141
2167
  let deletionsSkipped;
@@ -2154,6 +2180,13 @@ var importNotes = /* @__PURE__ */ __name(async (store, folder, { ignore = [], sk
2154
2180
  for (const id of dropped)
2155
2181
  stored.delete(id);
2156
2182
  }
2183
+ const dates = [...stored].flatMap(([id, note]) => {
2184
+ const mtime = mtimes.get(id);
2185
+ const modifiedAt = mtime === void 0 ? void 0 : noteFileTime(note.frontMatter, mtime);
2186
+ return modifiedAt === void 0 || modifiedAt === note.modifiedAt ? [] : [{ path: id, modifiedAt }];
2187
+ });
2188
+ if (dates.length)
2189
+ await store.notes.dateFileNotes(folder.id, dates);
2157
2190
  const documents = [...stored.values()].map(documentOf);
2158
2191
  const relink = new Map(parsed);
2159
2192
  if (renamed + deleted + added > 0) {
@@ -4226,6 +4259,7 @@ var EXAMPLES = {
4226
4259
  "notes export": ["memo notes export --output-dir ~/notes/memo --format obsidian"],
4227
4260
  "folders add": ["memo folders add ~/notes"],
4228
4261
  "folders update": ["memo folders update 1 ~/notes"],
4262
+ "folders remove": ["memo folders remove 1", "memo folders remove 1 --allow-delete --yes"],
4229
4263
  "folders list": ["memo folders list --json"],
4230
4264
  "config show": ["memo config show", "memo config show --json"],
4231
4265
  "config migrate": ["memo config migrate"],
@@ -4631,8 +4665,9 @@ var listMemories = /* @__PURE__ */ __name(async (store, query, limit) => {
4631
4665
  return pageOf("memories list", limit, async (most) => (await store.memories.list({ ...filters, limit: most })).map(memoryItem));
4632
4666
  }, "listMemories");
4633
4667
  var SEARCH = { command: "search memories", guide: LIST_QUERY_GUIDE };
4668
+ var MEMORY_FIELDS = /* @__PURE__ */ new Set(["text", ...MEMORY_QUERY.fields.map(({ name: name2 }) => name2)]);
4634
4669
  var searchMemories = /* @__PURE__ */ __name((store, query, limit) => {
4635
- const { root } = parseLucene(typedQuery(query), { ...SEARCH, defaultField: "text" });
4670
+ const { root } = parseLucene(plainQuery(typedQuery(query), MEMORY_FIELDS), { ...SEARCH, defaultField: "text" });
4636
4671
  const clauses = [];
4637
4672
  if (root.kind === "predicate")
4638
4673
  clauses.push(root);
@@ -6867,10 +6902,10 @@ var mcpCommandDefinition = /* @__PURE__ */ __name((program, streams, env, create
6867
6902
  }).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) => {
6868
6903
  if (!options.http && (options.port !== void 0 || options.publicUrl !== void 0))
6869
6904
  throw new CliError("validation_error", "--port and --public-url require --http");
6870
- const { createMemoServer } = await import("./server-N6PCX7K7.js");
6905
+ const { createMemoServer } = await import("./server-ECOTCYJ3.js");
6871
6906
  const build = /* @__PURE__ */ __name(() => createMemoServer(env, createProgram2, options.permission), "build");
6872
6907
  if (options.http) {
6873
- const { httpLockFile, mcpUrlOf, portOf, publicUrlOf, serveOverHttp } = await import("./mcp-TS2UAN5I.js");
6908
+ const { httpLockFile, mcpUrlOf, portOf, publicUrlOf, serveOverHttp } = await import("./mcp-QRZ2HSON.js");
6874
6909
  const publicUrl = publicUrlOf(options.publicUrl, {
6875
6910
  missing: "--http",
6876
6911
  reaches: "the browser apps reach memo",
@@ -6922,7 +6957,7 @@ var mcpCommandDefinition = /* @__PURE__ */ __name((program, streams, env, create
6922
6957
  });
6923
6958
  });
6924
6959
  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() {
6925
- const { revokeAll } = await import("./mcp-TS2UAN5I.js");
6960
+ const { revokeAll } = await import("./mcp-QRZ2HSON.js");
6926
6961
  revokeAll(httpTokenFile(env));
6927
6962
  out.print(this.opts().json, itemAnswer({ revoked: true }));
6928
6963
  });
@@ -7545,6 +7580,25 @@ var notesCommand = /* @__PURE__ */ __name((...args) => {
7545
7580
  // dist/notes/folders-command.js
7546
7581
  import { statSync as statSync4 } from "node:fs";
7547
7582
  import { basename as basename2, resolve as resolve4 } from "node:path";
7583
+
7584
+ // dist/run/lock.js
7585
+ import { join as join7 } from "node:path";
7586
+ var withImportLock = /* @__PURE__ */ __name(async (env, work) => {
7587
+ const lock = join7(resolvePaths({ appName: "cli-memo", prefix: "MEMO", env }).state, "import.lock");
7588
+ const holder = takeLock(lock, { pid: process.pid, startedAt: (/* @__PURE__ */ new Date()).toISOString() });
7589
+ if (holder !== void 0)
7590
+ throw new CliError("rate_limited", `another memo sync is running (process ${holder.pid}); try again when it ends`, {
7591
+ reason: "sync.running",
7592
+ pid: holder.pid
7593
+ });
7594
+ try {
7595
+ return await work();
7596
+ } finally {
7597
+ releaseLock(lock, process.pid);
7598
+ }
7599
+ }, "withImportLock");
7600
+
7601
+ // dist/notes/folders-command.js
7548
7602
  var formatOf2 = /* @__PURE__ */ __name((value) => {
7549
7603
  if (!DIALECTS.includes(value))
7550
7604
  throw new InvalidArgumentError(`choose ${DIALECTS.join(", ")}`);
@@ -7610,6 +7664,39 @@ var foldersCommand = /* @__PURE__ */ __name((program, streams, env) => {
7610
7664
  });
7611
7665
  print(options.json, itemAnswer(folder), line2(folder));
7612
7666
  });
7667
+ grantsAuthority(annotate(folders.command("remove"), {
7668
+ effects: LOCAL_WRITE,
7669
+ examples: ["memo folders remove ~/notes", "memo folders remove 3 --allow-delete --yes --json"]
7670
+ })).description("stop reading a notes folder here; its notes stay unless --allow-delete").argument("<folder>", "the folder's id or its path, as memo folders list prints them").option("--allow-delete", "also delete the folder's notes from the store, their text included").option("--yes", "confirm --allow-delete").option("--json", "print JSON; --json=id,title keeps only those fields").action(async (target, options) => {
7671
+ const here = noteFolders(loadConfig(env).notes);
7672
+ const bound = here.find(({ id }) => id !== null && id === target) ?? here.find(({ path }) => path === resolve4(target));
7673
+ const removed = await withImportLock(env, () => withStore(env, async (store) => {
7674
+ const elsewhere = bound ? void 0 : (await store.notes.folders()).find(({ id: id2, name: name2 }) => id2 === target && !keptByDrive(name2));
7675
+ if (!bound && !(elsewhere && options.allowDelete))
7676
+ throw new CliError("not_found", elsewhere ? `folder ${target} is not on this computer; memo folders remove ${target} --allow-delete --yes deletes its notes` : `no notes folder ${target} on this computer \u2014 memo folders list shows them`, { reason: "folder.not-found" });
7677
+ const id = bound ? bound.id : target;
7678
+ let notesDeleted = 0;
7679
+ if (options.allowDelete && id !== null) {
7680
+ const paths = (await folderNotes(store, id)).map((note) => note.path);
7681
+ if (options.yes !== true)
7682
+ throw new CliError("confirmation_required", `this deletes ${paths.length} notes of folder ${id} from the store, their text included; nothing was changed \u2014 add --yes`, { reason: "folder.delete-notes", notes: paths.length });
7683
+ if (paths.length)
7684
+ notesDeleted = await store.notes.deleteFileNotes(id, paths);
7685
+ dropFolderState(env, id);
7686
+ }
7687
+ if (bound)
7688
+ updateConfig((config) => unbindFolder(config, bound.path), env);
7689
+ return {
7690
+ id,
7691
+ path: bound?.path ?? null,
7692
+ format: bound?.format ?? elsewhere?.format ?? "obsidian",
7693
+ removed: true,
7694
+ notesDeleted
7695
+ };
7696
+ }));
7697
+ const kept = removed.id === null ? "" : ` (memo folders remove ${removed.id} --allow-delete --yes deletes them)`;
7698
+ print(options.json, itemAnswer(removed), options.allowDelete ? `${removed.path ?? `folder ${removed.id}`}: ${removed.notesDeleted} notes deleted from the store` : `${removed.path} removed from this computer; its notes stay in the store${kept}`);
7699
+ });
7613
7700
  withQuery(annotate(folders.command("list"), { effects: LOCAL_READ, output: { entity: "notes_folder" } }).description("folders of notes on this computer, and those the store knows from another"), FOLDERS_QUERY).option("--json", "print JSON; --json=id,title keeps only those fields").action(async (words, options) => {
7614
7701
  queryTerms(words, FOLDERS_QUERY, "folders list");
7615
7702
  const here = noteFolders(loadConfig(env).notes);
@@ -7628,7 +7715,7 @@ var foldersCommand = /* @__PURE__ */ __name((program, streams, env) => {
7628
7715
  }, "foldersCommand");
7629
7716
 
7630
7717
  // dist/people/command.js
7631
- import { join as join7 } from "node:path";
7718
+ import { join as join8 } from "node:path";
7632
7719
  var noteCommand = /* @__PURE__ */ __name((program, streams, env) => {
7633
7720
  const notes2 = program.commands.find((command) => command.name() === "notes") ?? program.command("notes");
7634
7721
  const links = notes2.command("links").description("imported note files linked to the person behind an identity");
@@ -7679,7 +7766,7 @@ var noteCommand = /* @__PURE__ */ __name((program, streams, env) => {
7679
7766
  }
7680
7767
  const paths = (await files()).map(({ note }) => {
7681
7768
  const folder = folders.find((candidate) => candidate.id === note.folderId);
7682
- return folder ? join7(folder.path, note.path) : note.ref;
7769
+ return folder ? join8(folder.path, note.path) : note.ref;
7683
7770
  });
7684
7771
  return { person: to, name: person.name ?? person.uid, files: paths };
7685
7772
  });
@@ -8397,22 +8484,20 @@ var embedMailChunks = /* @__PURE__ */ __name(async (store, { maxChunks = EMBED_P
8397
8484
  }
8398
8485
  }, "embedMailChunks");
8399
8486
 
8400
- // dist/run/lock.js
8401
- import { join as join8 } from "node:path";
8402
- var withImportLock = /* @__PURE__ */ __name(async (env, work) => {
8403
- const lock = join8(resolvePaths({ appName: "cli-memo", prefix: "MEMO", env }).state, "import.lock");
8404
- const holder = takeLock(lock, { pid: process.pid, startedAt: (/* @__PURE__ */ new Date()).toISOString() });
8405
- if (holder !== void 0)
8406
- throw new CliError("rate_limited", `another memo sync is running (process ${holder.pid}); try again when it ends`, {
8407
- reason: "sync.running",
8408
- pid: holder.pid
8409
- });
8410
- try {
8411
- return await work();
8412
- } finally {
8413
- releaseLock(lock, process.pid);
8414
- }
8415
- }, "withImportLock");
8487
+ // dist/progress.js
8488
+ var EVERY_MS = 500;
8489
+ var progressLine = /* @__PURE__ */ __name((diagnostic, json7, { step, unit, label }) => {
8490
+ let last = Number.NEGATIVE_INFINITY;
8491
+ return (done, total) => {
8492
+ if (!json7)
8493
+ return;
8494
+ const now = Date.now();
8495
+ if (done !== total && now - last < EVERY_MS)
8496
+ return;
8497
+ last = now;
8498
+ diagnostic(JSON.stringify({ event: "progress", step, done, total, unit, ...label === void 0 ? {} : { label } }));
8499
+ };
8500
+ }, "progressLine");
8416
8501
 
8417
8502
  // dist/run/import.js
8418
8503
  var issuesOf = /* @__PURE__ */ __name((failed) => failed.flatMap(({ code, source }) => errorCodes.includes(code) ? [{ code, source }] : []), "issuesOf");
@@ -8528,7 +8613,12 @@ var syncCommand = /* @__PURE__ */ __name((program, streams, env, signal) => {
8528
8613
  const skip = options.ignore ?? [];
8529
8614
  for (const folder of folders)
8530
8615
  await attempt(`notes ${folder.path}`, async () => {
8531
- run.notes.push(await importNotes(store, folder, { ignore, skip, env }));
8616
+ const onFile = progressLine(streams.diagnostic, Boolean(options.json), {
8617
+ step: "notes",
8618
+ unit: "files",
8619
+ label: folder.id
8620
+ });
8621
+ run.notes.push(await importNotes(store, folder, { ignore, skip, env, onFile }));
8532
8622
  });
8533
8623
  if (folders.length > 0)
8534
8624
  await attempt("notes by meaning", async () => {
@@ -8662,7 +8752,12 @@ var named3 = /* @__PURE__ */ __name((accounts) => [
8662
8752
  ...new Set(accounts.map(({ provider, account: account2 }) => `${provider}:${account2}`))
8663
8753
  ], "named");
8664
8754
  var metaOf2 = /* @__PURE__ */ __name((accounts, skipped = [], heldInPart = false) => {
8665
- const issues = skipped.map((one2) => ({ code: one2.code, source: one2.source ?? one2.resource ?? "" }));
8755
+ const issues = skipped.map((one2) => ({
8756
+ code: one2.code,
8757
+ // The output standard takes a dotted reason only, as cli-core's search all does.
8758
+ ...one2.why && /^[a-z][a-z0-9-]*(\.[a-z][a-z0-9-]*)+$/u.test(one2.why) ? { reason: one2.why } : {},
8759
+ source: one2.source ?? one2.resource ?? ""
8760
+ }));
8666
8761
  return {
8667
8762
  accounts: named3(accounts),
8668
8763
  ...heldInPart ? { complete: false } : {},
@@ -2,8 +2,8 @@ import { createRequire as __bundleRequire } from "node:module";
2
2
  const require = __bundleRequire(import.meta.url);
3
3
  import {
4
4
  readSecret
5
- } from "./chunk-J737T3RM.js";
6
- import "./chunk-UK2MMZFW.js";
5
+ } from "./chunk-W6JQNNJ5.js";
6
+ import "./chunk-AKD62EUH.js";
7
7
  import "./chunk-O3ZOYXH3.js";
8
8
  import "./chunk-EBNNONF5.js";
9
9
  import "./chunk-Y5E2WNWB.js";
@@ -8,7 +8,7 @@ import {
8
8
  openRecognizer,
9
9
  openSpeechCutter,
10
10
  toModelRate
11
- } from "./chunk-TZROQCQ5.js";
11
+ } from "./chunk-6N6BVPVX.js";
12
12
  import "./chunk-O3ZOYXH3.js";
13
13
  import "./chunk-EBNNONF5.js";
14
14
  import "./chunk-Y5E2WNWB.js";
@@ -8,10 +8,10 @@ import {
8
8
  openRemote,
9
9
  remoteKey,
10
10
  remoteModel
11
- } from "./chunk-66KZBRZN.js";
12
- import "./chunk-C3I6L7JZ.js";
13
- import "./chunk-CSPAEYKK.js";
14
- import "./chunk-YO7AUGUT.js";
11
+ } from "./chunk-QCRJNWJZ.js";
12
+ import "./chunk-5JVA43HX.js";
13
+ import "./chunk-KVOHC4ZM.js";
14
+ import "./chunk-LZWXGO3G.js";
15
15
  import "./chunk-O3ZOYXH3.js";
16
16
  import "./chunk-EBNNONF5.js";
17
17
  import "./chunk-Y5E2WNWB.js";
@@ -4,9 +4,9 @@ import {
4
4
  defaultThreads,
5
5
  loadModel,
6
6
  truncated
7
- } from "./chunk-C3I6L7JZ.js";
8
- import "./chunk-CSPAEYKK.js";
9
- import "./chunk-YO7AUGUT.js";
7
+ } from "./chunk-5JVA43HX.js";
8
+ import "./chunk-KVOHC4ZM.js";
9
+ import "./chunk-LZWXGO3G.js";
10
10
  import "./chunk-O3ZOYXH3.js";
11
11
  import "./chunk-EBNNONF5.js";
12
12
  import "./chunk-Y5E2WNWB.js";
@@ -15,7 +15,7 @@ import {
15
15
  __name
16
16
  } from "./chunk-ZVVMGPBJ.js";
17
17
 
18
- // node_modules/.pnpm/@wirecat+cli-core@0.602.0_@wirecat+cli-base@0.80.8_commander@15.0.0_esbuild@0.28.2_type_87bcf484fc0706f541e30693101b5a29/node_modules/@wirecat/cli-core/dist/embeddings/rerank.js
18
+ // node_modules/.pnpm/@wirecat+cli-core@0.604.0_@wirecat+cli-base@0.80.8_commander@15.0.0_esbuild@0.28.2_type_90db47d7f41d7a563eea7bc9cc13c345/node_modules/@wirecat/cli-core/dist/embeddings/rerank.js
19
19
  var openReranker = /* @__PURE__ */ __name(async (model, directory, { threads = defaultThreads() } = {}) => {
20
20
  const { ort, tokenizer, session } = await loadModel(model, directory, threads);
21
21
  const typeIds = session.inputNames.includes("token_type_ids");