@wirecat/cli-memo 0.131.79 → 0.131.80

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 (133) hide show
  1. package/dist/bin/memo.js +2 -2
  2. package/dist/bundle/{all-profiles-ZMIHTBZD.js → all-profiles-RVKEGURX.js} +5 -5
  3. package/dist/bundle/{anthropic-PNRUKJHS.js → anthropic-FC6XUSWM.js} +2 -2
  4. package/dist/bundle/{app-server-RNASTWZO.js → app-server-IRNKU3IF.js} +36 -36
  5. package/dist/bundle/auto-GTL4YGZX.js +91 -0
  6. package/dist/bundle/{bun-QU4I5GWB.js → bun-TYBGE5BX.js} +2 -2
  7. package/dist/bundle/{bun-sqlite-J4KG5VML.js → bun-sqlite-YENHHNPL.js} +3 -3
  8. package/dist/bundle/{chunk-GJ7KTKIP.js → chunk-2CJIZZSI.js} +12 -12
  9. package/dist/bundle/{chunk-XO6RP5FV.js → chunk-2FICCBKH.js} +1 -1
  10. package/dist/bundle/{chunk-IU2QDYBO.js → chunk-3H56E3VI.js} +4 -4
  11. package/dist/bundle/{chunk-VIZBCX3C.js → chunk-4IKO3JAA.js} +4 -4
  12. package/dist/bundle/{chunk-5YS4WS74.js → chunk-666J5H2Z.js} +1 -1
  13. package/dist/bundle/{chunk-U3VXKVKI.js → chunk-6W6CLZKX.js} +12 -12
  14. package/dist/bundle/{chunk-TBCHID7L.js → chunk-BS5JBNGX.js} +591 -509
  15. package/dist/bundle/{chunk-CY7WACM7.js → chunk-C2FE62E5.js} +29 -29
  16. package/dist/bundle/{chunk-QOFD6JSB.js → chunk-C4TAEYDQ.js} +5 -5
  17. package/dist/bundle/{chunk-PI42ZHZQ.js → chunk-CEGA7A35.js} +2 -2
  18. package/dist/bundle/{chunk-Q5YM3JWV.js → chunk-CUWTYE5A.js} +2 -2
  19. package/dist/bundle/{chunk-UYKKJOND.js → chunk-CVQJ7L4C.js} +4 -4
  20. package/dist/bundle/{chunk-6ZO2ZVKV.js → chunk-DS5SA5QP.js} +5 -5
  21. package/dist/bundle/{chunk-J2KPUG2X.js → chunk-EOXWI2EX.js} +4 -4
  22. package/dist/bundle/{chunk-OP5MKU7T.js → chunk-F62N6QMI.js} +1 -1
  23. package/dist/bundle/{chunk-4XOAQ5EQ.js → chunk-FIJTCBPQ.js} +8 -8
  24. package/dist/bundle/{chunk-GDSCR5BG.js → chunk-FR646D4S.js} +1 -1
  25. package/dist/bundle/{chunk-BBJBWSGN.js → chunk-GHYJW4ZH.js} +2 -2
  26. package/dist/bundle/{chunk-PB4ZGGR4.js → chunk-GNII3UL7.js} +1 -1
  27. package/dist/bundle/{chunk-2C536VQW.js → chunk-HFQXEMRG.js} +1 -1
  28. package/dist/bundle/{chunk-RMKJWDVT.js → chunk-HHZMDFE2.js} +45 -45
  29. package/dist/bundle/{chunk-4FPSZCWN.js → chunk-HKXACNLD.js} +2 -2
  30. package/dist/bundle/{chunk-2TIK6LHL.js → chunk-HXPU3ABX.js} +362 -299
  31. package/dist/bundle/{chunk-GTYESBB2.js → chunk-IJUXHUNZ.js} +2 -2
  32. package/dist/bundle/{chunk-VSSWVVOZ.js → chunk-IW6O2SAG.js} +10 -10
  33. package/dist/bundle/{chunk-FCHVDLEL.js → chunk-JDQSL2EY.js} +2 -2
  34. package/dist/bundle/{chunk-ZIDR2CSX.js → chunk-JJ6ODCVQ.js} +2 -2
  35. package/dist/bundle/{chunk-4BSNHOEV.js → chunk-JPC7GSJO.js} +9 -9
  36. package/dist/bundle/{chunk-UC5YCXKS.js → chunk-JTQAMVZH.js} +13 -13
  37. package/dist/bundle/{chunk-46Z7UUCG.js → chunk-K3JEAMTT.js} +1 -1
  38. package/dist/bundle/{chunk-SM7PB5CU.js → chunk-KDLOSANT.js} +5 -5
  39. package/dist/bundle/{chunk-DAJEINOF.js → chunk-KNRYIHUJ.js} +281 -281
  40. package/dist/bundle/{chunk-QNI3Q7XS.js → chunk-KVQY7R66.js} +2 -2
  41. package/dist/bundle/{chunk-IE6AEPW3.js → chunk-MDIXXKVU.js} +9 -9
  42. package/dist/bundle/{chunk-SEIRBXJT.js → chunk-MLYPJ4EC.js} +6 -6
  43. package/dist/bundle/{chunk-DP2RZ6FO.js → chunk-NH7KIGIS.js} +2 -2
  44. package/dist/bundle/{chunk-H6QELEPY.js → chunk-NUKMYB65.js} +4 -4
  45. package/dist/bundle/{chunk-CLZHPHKI.js → chunk-OFRIG3CX.js} +3 -3
  46. package/dist/bundle/{chunk-WN7BSOD2.js → chunk-OH4AIBZF.js} +1 -1
  47. package/dist/bundle/{chunk-7SGURCSQ.js → chunk-OSE7GXAR.js} +1 -1
  48. package/dist/bundle/{chunk-LQBVQX47.js → chunk-PX55CRD3.js} +83 -78
  49. package/dist/bundle/{chunk-MQ6XB6BV.js → chunk-Q46O7KXY.js} +5 -5
  50. package/dist/bundle/{chunk-A5TSIMI2.js → chunk-R4XCBPD2.js} +1 -1
  51. package/dist/bundle/{chunk-YJUVVYS6.js → chunk-RUM4GGHP.js} +4 -4
  52. package/dist/bundle/{chunk-R24Q24U5.js → chunk-RWVB7SLQ.js} +20 -20
  53. package/dist/bundle/{chunk-CQPXUMIS.js → chunk-S2KXO7MO.js} +1 -1
  54. package/dist/bundle/{chunk-IHWPNLCI.js → chunk-SGV2Z4BO.js} +148 -148
  55. package/dist/bundle/{chunk-3GOMBG55.js → chunk-SKX3BNTE.js} +7 -7
  56. package/dist/bundle/{chunk-O4ZIN4AY.js → chunk-SULQCO3Y.js} +5 -5
  57. package/dist/bundle/{chunk-JDI7CKLO.js → chunk-TJ2B36VK.js} +7 -7
  58. package/dist/bundle/{chunk-3HCGK4FN.js → chunk-UBUCTVHB.js} +1 -1
  59. package/dist/bundle/{chunk-CX3D6D43.js → chunk-UTYGPWUY.js} +3 -3
  60. package/dist/bundle/{chunk-ZFUYVQII.js → chunk-VQJDYQ55.js} +32 -32
  61. package/dist/bundle/{chunk-RUHFWDHD.js → chunk-VTBIVTS5.js} +3 -3
  62. package/dist/bundle/{chunk-24FOGKJI.js → chunk-W26VONC6.js} +5 -5
  63. package/dist/bundle/{chunk-JX4YNSYT.js → chunk-X3NHAO6T.js} +1 -1
  64. package/dist/bundle/{chunk-TH3LLEA2.js → chunk-XZJUAG7B.js} +3 -3
  65. package/dist/bundle/{chunk-HKOHKYDY.js → chunk-ZMLDVE22.js} +6 -6
  66. package/dist/bundle/{chunk-AWUANCLC.js → chunk-ZMSEKQQQ.js} +1 -1
  67. package/dist/bundle/{command-contract-4ZJOMSQ2.js → command-contract-SR6ONYV4.js} +11 -11
  68. package/dist/bundle/{command-server-entry-VSWZ5K2Q.js → command-server-entry-2WXZVYIX.js} +17 -17
  69. package/dist/bundle/{decode-OPD4OHCW.js → decode-U7VFYQAA.js} +2 -2
  70. package/dist/bundle/{echarts-AXYKRYU7.js → echarts-2PXBBLLJ.js} +2 -2
  71. package/dist/bundle/{embed-6DBZRTQ7.js → embed-DPA5QOIR.js} +3 -3
  72. package/dist/bundle/{embedder-SQI6IDZC.js → embedder-IGI2UTFK.js} +6 -6
  73. package/dist/bundle/{entry-RV5QAV44.js → entry-7PAYGIQO.js} +5 -5
  74. package/dist/bundle/{entry-2GKNMGW6.js → entry-IFOQTBXC.js} +5 -5
  75. package/dist/bundle/failure-NAM37T2T.js +71 -0
  76. package/dist/bundle/{first-run-BBMUDHYX.js → first-run-WHDDKA4V.js} +5 -5
  77. package/dist/bundle/{first-screen-4BS5M4JW.js → first-screen-P5C57USR.js} +12 -12
  78. package/dist/bundle/{instructions-JNAROG65.js → instructions-W7F7OQZS.js} +1 -1
  79. package/dist/bundle/{mcp-3MBYSBNS.js → mcp-3LAFWOGW.js} +35 -35
  80. package/dist/bundle/memo.js +3 -3
  81. package/dist/bundle/{node-6OTEDFSP.js → node-K6MWX3SW.js} +2 -2
  82. package/dist/bundle/{node-sqlite-HBHJOJX6.js → node-sqlite-WV6GCPEC.js} +4 -4
  83. package/dist/bundle/{oauth-PVQSSPPE.js → oauth-EH2Y54DG.js} +4 -4
  84. package/dist/bundle/{open-ARBTD4LX.js → open-PB4W3UAM.js} +2 -2
  85. package/dist/bundle/{openai-2JRFTWUA.js → openai-76OKHXWR.js} +7 -7
  86. package/dist/bundle/{process-4ERCV4WX.js → process-FMQ7Q7AI.js} +1 -1
  87. package/dist/bundle/{program-5KVHPFJU.js → program-BR2QHF36.js} +174 -78
  88. package/dist/bundle/{prompt-4I34VBPK.js → prompt-AW4T6CC2.js} +2 -2
  89. package/dist/bundle/{recognize-22BJ7RWB.js → recognize-X5DMT3HH.js} +1 -1
  90. package/dist/bundle/{remote-BON3MKY5.js → remote-HVKKXNYZ.js} +4 -4
  91. package/dist/bundle/{rerank-6CCCIZDS.js → rerank-IXMWD7JV.js} +4 -4
  92. package/dist/bundle/{serve-FB54DFIV.js → serve-42XTYB26.js} +6 -6
  93. package/dist/bundle/server-HUEXB5QL.js +64 -0
  94. package/dist/bundle/{server-TL5WPR3I.js → server-NNE7MUYT.js} +52 -52
  95. package/dist/bundle/server-YLXOJOTR.js +50 -0
  96. package/dist/bundle/{state-23IF45K6.js → state-EOU37GAH.js} +3 -3
  97. package/dist/bundle/{store-FGNXSGJU.js → store-F3REYMA6.js} +9 -9
  98. package/dist/bundle/store-maintenance-command-TOBBH3ZK.js +49 -0
  99. package/dist/bundle/update-3QB752NL.js +74 -0
  100. package/dist/examples.d.ts.map +1 -1
  101. package/dist/examples.js +1 -0
  102. package/dist/examples.js.map +1 -1
  103. package/dist/knowledge/command.d.ts.map +1 -1
  104. package/dist/knowledge/command.js +2 -0
  105. package/dist/knowledge/command.js.map +1 -1
  106. package/dist/knowledge/document-context.d.ts +14 -0
  107. package/dist/knowledge/document-context.d.ts.map +1 -0
  108. package/dist/knowledge/document-context.js +33 -0
  109. package/dist/knowledge/document-context.js.map +1 -0
  110. package/dist/knowledge/project-activity-command.d.ts +5 -0
  111. package/dist/knowledge/project-activity-command.d.ts.map +1 -0
  112. package/dist/knowledge/project-activity-command.js +71 -0
  113. package/dist/knowledge/project-activity-command.js.map +1 -0
  114. package/dist/knowledge/relationships.d.ts +4 -0
  115. package/dist/knowledge/relationships.d.ts.map +1 -1
  116. package/dist/knowledge/relationships.js +14 -0
  117. package/dist/knowledge/relationships.js.map +1 -1
  118. package/dist/knowledge/roles-command.d.ts.map +1 -1
  119. package/dist/knowledge/roles-command.js +7 -4
  120. package/dist/knowledge/roles-command.js.map +1 -1
  121. package/dist/program.d.ts.map +1 -1
  122. package/dist/program.js +1 -0
  123. package/dist/program.js.map +1 -1
  124. package/dist/version.d.ts +1 -1
  125. package/dist/version.js +1 -1
  126. package/package.json +2 -2
  127. package/dist/bundle/auto-TRSJQGJH.js +0 -91
  128. package/dist/bundle/failure-7RJ4HOL4.js +0 -71
  129. package/dist/bundle/server-SG4BOF6U.js +0 -64
  130. package/dist/bundle/server-UYEXFEEB.js +0 -50
  131. package/dist/bundle/store-maintenance-command-PDLIZ4J2.js +0 -49
  132. package/dist/bundle/update-QTZREQD6.js +0 -74
  133. /package/dist/bundle/{chunk-2AFREBSM.js → chunk-ID2I2X2Z.js} +0 -0
@@ -6,18 +6,18 @@ import {
6
6
  autoState,
7
7
  lastAutoRun,
8
8
  recordAutoRun
9
- } from "./chunk-IU2QDYBO.js";
9
+ } from "./chunk-3H56E3VI.js";
10
10
  import {
11
11
  installer,
12
12
  latest,
13
13
  upgradeCommand
14
- } from "./chunk-SM7PB5CU.js";
14
+ } from "./chunk-KDLOSANT.js";
15
15
  import {
16
16
  mcpOwnerAllowed,
17
17
  memoLevels,
18
18
  readOnlyAvailability,
19
19
  refuseWritesUnderLock
20
- } from "./chunk-MQ6XB6BV.js";
20
+ } from "./chunk-Q46O7KXY.js";
21
21
  import {
22
22
  answers,
23
23
  atDetail,
@@ -29,7 +29,7 @@ import {
29
29
  trackAnswers,
30
30
  wholeList,
31
31
  withStore
32
- } from "./chunk-24FOGKJI.js";
32
+ } from "./chunk-W26VONC6.js";
33
33
  import {
34
34
  ATTACHMENT_CHARS,
35
35
  DIALECTS,
@@ -66,15 +66,15 @@ import {
66
66
  showMail,
67
67
  unsetConfigKey,
68
68
  updateConfig
69
- } from "./chunk-ZFUYVQII.js";
69
+ } from "./chunk-VQJDYQ55.js";
70
70
  import "./chunk-QP3KNC5D.js";
71
- import "./chunk-Q5YM3JWV.js";
72
- import "./chunk-3GOMBG55.js";
73
- import "./chunk-CLZHPHKI.js";
71
+ import "./chunk-CUWTYE5A.js";
72
+ import "./chunk-SKX3BNTE.js";
73
+ import "./chunk-OFRIG3CX.js";
74
74
  import {
75
75
  errorObject,
76
76
  recognisable
77
- } from "./chunk-H6QELEPY.js";
77
+ } from "./chunk-NUKMYB65.js";
78
78
  import {
79
79
  provideTerminal,
80
80
  terminalOf
@@ -151,34 +151,34 @@ import {
151
151
  thisMachine,
152
152
  withSqliteSidecars,
153
153
  writeSchedule
154
- } from "./chunk-DAJEINOF.js";
155
- import "./chunk-GDSCR5BG.js";
154
+ } from "./chunk-KNRYIHUJ.js";
155
+ import "./chunk-FR646D4S.js";
156
156
  import "./chunk-A3QZXQI3.js";
157
- import "./chunk-PB4ZGGR4.js";
157
+ import "./chunk-GNII3UL7.js";
158
158
  import {
159
159
  allHitItem,
160
160
  coverageGaps,
161
161
  messageHitItem,
162
162
  noteHitItem,
163
163
  shownOf
164
- } from "./chunk-R24Q24U5.js";
165
- import "./chunk-2C536VQW.js";
164
+ } from "./chunk-RWVB7SLQ.js";
165
+ import "./chunk-HFQXEMRG.js";
166
166
  import {
167
167
  REASONS as REASONS2,
168
168
  SKILL_TARGETS,
169
169
  skillCommand,
170
170
  skillPath,
171
171
  skillVersion
172
- } from "./chunk-4BSNHOEV.js";
173
- import "./chunk-UYKKJOND.js";
172
+ } from "./chunk-JPC7GSJO.js";
173
+ import "./chunk-CVQJ7L4C.js";
174
174
  import {
175
175
  recoveryNotes,
176
176
  storeInfo,
177
177
  storeRecoveryCheck,
178
178
  storeRecoveryRun,
179
179
  storeSummary
180
- } from "./chunk-RMKJWDVT.js";
181
- import "./chunk-UC5YCXKS.js";
180
+ } from "./chunk-HHZMDFE2.js";
181
+ import "./chunk-JTQAMVZH.js";
182
182
  import {
183
183
  LIST_QUERY_GUIDE,
184
184
  RESOURCES_SEARCHED,
@@ -229,6 +229,7 @@ import {
229
229
  personBusiness,
230
230
  personContext,
231
231
  previewProjectAnnotationSnapshot,
232
+ projectActivity,
232
233
  projectStatus,
233
234
  proposalRegistry,
234
235
  purposeList,
@@ -255,31 +256,31 @@ import {
255
256
  timeLimit,
256
257
  typedQuery,
257
258
  withQuery
258
- } from "./chunk-2TIK6LHL.js";
259
+ } from "./chunk-HXPU3ABX.js";
259
260
  import {
260
261
  readBoundedUtf8File,
261
262
  writeFileAtomic
262
- } from "./chunk-U3VXKVKI.js";
263
+ } from "./chunk-6W6CLZKX.js";
263
264
  import {
264
265
  releaseLock,
265
266
  servingProfiles,
266
267
  takeLock
267
- } from "./chunk-FCHVDLEL.js";
268
- import "./chunk-BBJBWSGN.js";
268
+ } from "./chunk-JDQSL2EY.js";
269
+ import "./chunk-GHYJW4ZH.js";
269
270
  import {
270
271
  commandsText,
271
272
  inSection,
272
273
  installHelp
273
- } from "./chunk-HKOHKYDY.js";
274
+ } from "./chunk-ZMLDVE22.js";
274
275
  import "./chunk-HTQTIKWP.js";
275
- import "./chunk-VSSWVVOZ.js";
276
+ import "./chunk-IW6O2SAG.js";
276
277
  import {
277
278
  isNewer
278
279
  } from "./chunk-2EGS6BXF.js";
279
280
  import "./chunk-OYKQX4H3.js";
280
- import "./chunk-IE6AEPW3.js";
281
- import "./chunk-4FPSZCWN.js";
282
- import "./chunk-3HCGK4FN.js";
281
+ import "./chunk-MDIXXKVU.js";
282
+ import "./chunk-HKXACNLD.js";
283
+ import "./chunk-UBUCTVHB.js";
283
284
  import {
284
285
  EVIDENCE_FINDINGS_KIND,
285
286
  IDENTITY_LINK_KIND,
@@ -321,25 +322,25 @@ import {
321
322
  refLabel,
322
323
  storedProfilesFor,
323
324
  writesWithOf
324
- } from "./chunk-TBCHID7L.js";
325
- import "./chunk-JDI7CKLO.js";
326
- import "./chunk-5YS4WS74.js";
327
- import "./chunk-GTYESBB2.js";
328
- import "./chunk-QOFD6JSB.js";
325
+ } from "./chunk-BS5JBNGX.js";
326
+ import "./chunk-TJ2B36VK.js";
327
+ import "./chunk-666J5H2Z.js";
328
+ import "./chunk-IJUXHUNZ.js";
329
+ import "./chunk-C4TAEYDQ.js";
329
330
  import {
330
331
  APP,
331
332
  REASONS,
332
333
  STORE_CLIENT,
333
334
  VERSION
334
- } from "./chunk-XO6RP5FV.js";
335
+ } from "./chunk-2FICCBKH.js";
335
336
  import "./chunk-NT5IOEEK.js";
336
337
  import "./chunk-D72URWJE.js";
337
- import "./chunk-O4ZIN4AY.js";
338
- import "./chunk-OP5MKU7T.js";
339
- import "./chunk-TH3LLEA2.js";
340
- import "./chunk-6ZO2ZVKV.js";
341
- import "./chunk-CQPXUMIS.js";
342
- import "./chunk-DP2RZ6FO.js";
338
+ import "./chunk-SULQCO3Y.js";
339
+ import "./chunk-F62N6QMI.js";
340
+ import "./chunk-XZJUAG7B.js";
341
+ import "./chunk-DS5SA5QP.js";
342
+ import "./chunk-S2KXO7MO.js";
343
+ import "./chunk-NH7KIGIS.js";
343
344
  import {
344
345
  Command,
345
346
  DEFAULT_TEXT_MODEL,
@@ -379,11 +380,11 @@ import {
379
380
  snakeKeys,
380
381
  textModels,
381
382
  textModelsFile
382
- } from "./chunk-IHWPNLCI.js";
383
- import "./chunk-SEIRBXJT.js";
384
- import "./chunk-46Z7UUCG.js";
385
- import "./chunk-RUHFWDHD.js";
386
- import "./chunk-AWUANCLC.js";
383
+ } from "./chunk-SGV2Z4BO.js";
384
+ import "./chunk-MLYPJ4EC.js";
385
+ import "./chunk-K3JEAMTT.js";
386
+ import "./chunk-VTBIVTS5.js";
387
+ import "./chunk-ZMSEKQQQ.js";
387
388
  import {
388
389
  CATALOG_KINDS,
389
390
  CATEGORIES,
@@ -410,6 +411,7 @@ import {
410
411
  PROJECT_ROLES,
411
412
  REF_KINDS,
412
413
  RELATION_KINDS,
414
+ ROLE_LISTS,
413
415
  SOURCE_REVIEW_KIND,
414
416
  STANDINGS,
415
417
  SUBSCRIPTION_STATUSES,
@@ -456,16 +458,16 @@ import {
456
458
  timezoneOf,
457
459
  validateQuery,
458
460
  walkQuery
459
- } from "./chunk-LQBVQX47.js";
460
- import "./chunk-ZIDR2CSX.js";
461
- import "./chunk-YJUVVYS6.js";
461
+ } from "./chunk-PX55CRD3.js";
462
+ import "./chunk-JJ6ODCVQ.js";
463
+ import "./chunk-RUM4GGHP.js";
462
464
  import {
463
465
  sharedModelsDirectory
464
- } from "./chunk-CX3D6D43.js";
466
+ } from "./chunk-UTYGPWUY.js";
465
467
  import "./chunk-G5GW3FFJ.js";
466
468
  import {
467
469
  storePath
468
- } from "./chunk-A5TSIMI2.js";
470
+ } from "./chunk-R4XCBPD2.js";
469
471
  import {
470
472
  Credentials,
471
473
  configFilePath,
@@ -889,7 +891,7 @@ var readScope = /* @__PURE__ */ __name((command, help = ONE_ACCOUNT_HELP) => sou
889
891
  var writeScope = /* @__PURE__ */ __name((command, help) => writeOptions(command, help).option("--json", "print JSON; --json=id,title keeps only those fields"), "writeScope");
890
892
  var jsonOption = /* @__PURE__ */ __name((command, fields = "ref,title") => command.option("--json", `print JSON; --json=${fields} keeps only those fields`), "jsonOption");
891
893
 
892
- // node_modules/.pnpm/@wirecat+cli-core@0.633.0_@wirecat+cli-base@0.95.0_commander@15.0.0_esbuild@0.28.2_type_6b55a08b64e6f66e5ab3a99b7d6b1e87/node_modules/@wirecat/cli-core/dist/mail/sender-scores.js
894
+ // node_modules/.pnpm/@wirecat+cli-core@0.634.0_@wirecat+cli-base@0.95.0_commander@15.0.0_esbuild@0.28.2_type_c47469194f2825719a552db4a380e89c/node_modules/@wirecat/cli-core/dist/mail/sender-scores.js
893
895
  var SCORED = "mail_sender_scores";
894
896
  var DAY = 864e5;
895
897
  var RECENT = 2 * 365 * DAY;
@@ -905,7 +907,7 @@ var demotedSenders = /* @__PURE__ */ __name(async (store) => {
905
907
  return senders;
906
908
  }, "demotedSenders");
907
909
 
908
- // node_modules/.pnpm/@wirecat+cli-core@0.633.0_@wirecat+cli-base@0.95.0_commander@15.0.0_esbuild@0.28.2_type_6b55a08b64e6f66e5ab3a99b7d6b1e87/node_modules/@wirecat/cli-core/dist/mail/sync.js
910
+ // node_modules/.pnpm/@wirecat+cli-core@0.634.0_@wirecat+cli-base@0.95.0_commander@15.0.0_esbuild@0.28.2_type_c47469194f2825719a552db4a380e89c/node_modules/@wirecat/cli-core/dist/mail/sync.js
909
911
  var DAY2 = 864e5;
910
912
  var EDGE = 2 * DAY2;
911
913
 
@@ -2351,7 +2353,7 @@ import { createHash } from "node:crypto";
2351
2353
  import { existsSync, readFileSync as readFileSync2, statSync } from "node:fs";
2352
2354
  import { basename, extname, relative, sep } from "node:path";
2353
2355
 
2354
- // node_modules/.pnpm/@wirecat+cli-core@0.633.0_@wirecat+cli-base@0.95.0_commander@15.0.0_esbuild@0.28.2_type_6b55a08b64e6f66e5ab3a99b7d6b1e87/node_modules/@wirecat/cli-core/dist/services/documents/extraction.js
2356
+ // node_modules/.pnpm/@wirecat+cli-core@0.634.0_@wirecat+cli-base@0.95.0_commander@15.0.0_esbuild@0.28.2_type_c47469194f2825719a552db4a380e89c/node_modules/@wirecat/cli-core/dist/services/documents/extraction.js
2355
2357
  var Proposal = object({
2356
2358
  kind: picklist(["summary", "digest", "fact", "preference"]),
2357
2359
  body: pipe(string(), trim(), minLength(1), maxLength(15e3)),
@@ -2359,13 +2361,13 @@ var Proposal = object({
2359
2361
  });
2360
2362
  var Proposals = object({ items: pipe(array(Proposal), maxLength(20)) });
2361
2363
 
2362
- // node_modules/.pnpm/@wirecat+cli-core@0.633.0_@wirecat+cli-base@0.95.0_commander@15.0.0_esbuild@0.28.2_type_6b55a08b64e6f66e5ab3a99b7d6b1e87/node_modules/@wirecat/cli-core/dist/services/documents/mirrors.js
2364
+ // node_modules/.pnpm/@wirecat+cli-core@0.634.0_@wirecat+cli-base@0.95.0_commander@15.0.0_esbuild@0.28.2_type_c47469194f2825719a552db4a380e89c/node_modules/@wirecat/cli-core/dist/services/documents/mirrors.js
2363
2365
  var ID = pipe(string(), regex(/^[A-Za-z0-9_-]{1,200}$/));
2364
2366
 
2365
- // node_modules/.pnpm/@wirecat+cli-core@0.633.0_@wirecat+cli-base@0.95.0_commander@15.0.0_esbuild@0.28.2_type_6b55a08b64e6f66e5ab3a99b7d6b1e87/node_modules/@wirecat/cli-core/dist/services/documents/sync.js
2367
+ // node_modules/.pnpm/@wirecat+cli-core@0.634.0_@wirecat+cli-base@0.95.0_commander@15.0.0_esbuild@0.28.2_type_c47469194f2825719a552db4a380e89c/node_modules/@wirecat/cli-core/dist/services/documents/sync.js
2366
2368
  var MAX_PICTURE_BYTES = 25 * 1024 * 1024;
2367
2369
 
2368
- // node_modules/.pnpm/@wirecat+cli-core@0.633.0_@wirecat+cli-base@0.95.0_commander@15.0.0_esbuild@0.28.2_type_6b55a08b64e6f66e5ab3a99b7d6b1e87/node_modules/@wirecat/cli-core/dist/fetch/addresses.js
2370
+ // node_modules/.pnpm/@wirecat+cli-core@0.634.0_@wirecat+cli-base@0.95.0_commander@15.0.0_esbuild@0.28.2_type_c47469194f2825719a552db4a380e89c/node_modules/@wirecat/cli-core/dist/fetch/addresses.js
2369
2371
  import { isIP } from "node:net";
2370
2372
  var within3 = /* @__PURE__ */ __name((address, [prefix, bits]) => {
2371
2373
  for (let bit = 0; bit < bits; bit++) {
@@ -2436,7 +2438,7 @@ var isPublicAddress = /* @__PURE__ */ __name((address) => {
2436
2438
  return within3(bytes, [[32], 3]) && !V6_PRIVATE.some((prefix) => within3(bytes, prefix));
2437
2439
  }, "isPublicAddress");
2438
2440
 
2439
- // node_modules/.pnpm/@wirecat+cli-core@0.633.0_@wirecat+cli-base@0.95.0_commander@15.0.0_esbuild@0.28.2_type_6b55a08b64e6f66e5ab3a99b7d6b1e87/node_modules/@wirecat/cli-core/dist/fetch/page.js
2441
+ // node_modules/.pnpm/@wirecat+cli-core@0.634.0_@wirecat+cli-base@0.95.0_commander@15.0.0_esbuild@0.28.2_type_c47469194f2825719a552db4a380e89c/node_modules/@wirecat/cli-core/dist/fetch/page.js
2440
2442
  import { lookup as dnsLookup } from "node:dns/promises";
2441
2443
  import { request as httpRequest } from "node:http";
2442
2444
  import { request as httpsRequest } from "node:https";
@@ -6971,7 +6973,7 @@ var doctorCommand = /* @__PURE__ */ __name((...args) => {
6971
6973
  }, SHELL_OVERRIDES.doctor);
6972
6974
  }, "doctorCommand");
6973
6975
 
6974
- // node_modules/.pnpm/@wirecat+cli-core@0.633.0_@wirecat+cli-base@0.95.0_commander@15.0.0_esbuild@0.28.2_type_6b55a08b64e6f66e5ab3a99b7d6b1e87/node_modules/@wirecat/cli-core/dist/calendar/sync.js
6976
+ // node_modules/.pnpm/@wirecat+cli-core@0.634.0_@wirecat+cli-base@0.95.0_commander@15.0.0_esbuild@0.28.2_type_c47469194f2825719a552db4a380e89c/node_modules/@wirecat/cli-core/dist/calendar/sync.js
6975
6977
  var DAY8 = 864e5;
6976
6978
  var SLOTS_EVERY = 7 * DAY8;
6977
6979
  var isWindow = /* @__PURE__ */ __name((value) => typeof value?.from === "number" && typeof value.to === "number", "isWindow");
@@ -7051,10 +7053,10 @@ var calendarStatus = /* @__PURE__ */ __name(async (store, accountId, { profile,
7051
7053
  return { items, page: 1, limit: Math.max(1, items.length), hasMore: false };
7052
7054
  }, "calendarStatus");
7053
7055
 
7054
- // node_modules/.pnpm/@wirecat+cli-core@0.633.0_@wirecat+cli-base@0.95.0_commander@15.0.0_esbuild@0.28.2_type_6b55a08b64e6f66e5ab3a99b7d6b1e87/node_modules/@wirecat/cli-core/dist/calendar/feeds.js
7056
+ // node_modules/.pnpm/@wirecat+cli-core@0.634.0_@wirecat+cli-base@0.95.0_commander@15.0.0_esbuild@0.28.2_type_c47469194f2825719a552db4a380e89c/node_modules/@wirecat/cli-core/dist/calendar/feeds.js
7055
7057
  var FEED_LIMITS = { maxBytes: 10 * 1024 * 1024, timeoutMs: 3e4, redirects: 5 };
7056
7058
 
7057
- // node_modules/.pnpm/@wirecat+cli-core@0.633.0_@wirecat+cli-base@0.95.0_commander@15.0.0_esbuild@0.28.2_type_6b55a08b64e6f66e5ab3a99b7d6b1e87/node_modules/@wirecat/cli-core/dist/calendar/reads.js
7059
+ // node_modules/.pnpm/@wirecat+cli-core@0.634.0_@wirecat+cli-base@0.95.0_commander@15.0.0_esbuild@0.28.2_type_c47469194f2825719a552db4a380e89c/node_modules/@wirecat/cli-core/dist/calendar/reads.js
7058
7060
  var LIST = "events list";
7059
7061
  var EVENT_TYPES = [
7060
7062
  "default",
@@ -7131,7 +7133,7 @@ var accountsMeta = /* @__PURE__ */ __name(async (store, accounts, skipped, now)
7131
7133
  };
7132
7134
  }, "accountsMeta");
7133
7135
 
7134
- // node_modules/.pnpm/@wirecat+cli-core@0.633.0_@wirecat+cli-base@0.95.0_commander@15.0.0_esbuild@0.28.2_type_6b55a08b64e6f66e5ab3a99b7d6b1e87/node_modules/@wirecat/cli-core/dist/calendar/writer.js
7136
+ // node_modules/.pnpm/@wirecat+cli-core@0.634.0_@wirecat+cli-base@0.95.0_commander@15.0.0_esbuild@0.28.2_type_c47469194f2825719a552db4a380e89c/node_modules/@wirecat/cli-core/dist/calendar/writer.js
7135
7137
  var EVENTS_NOTIFY_KEY = "events.notify";
7136
7138
  var EVENTS_DELETE_SERIES_KEY = "events.delete.series";
7137
7139
  var EVENTS_REMIND_HOOK_KEY = "events.remind.hook";
@@ -7527,6 +7529,7 @@ var EXAMPLES = {
7527
7529
  "tasks claim": ["memo tasks claim HRB-1 --lease 2h --account telegram:1"],
7528
7530
  "tasks release": ["memo tasks release HRB-1 --account telegram:1"],
7529
7531
  "tasks show": ["memo tasks show 1a2b3c4d --source telegram:1 --json"],
7532
+ "stats projects show": ["memo stats projects show", "memo stats projects show --since-time 7d --json"],
7530
7533
  "stats tasks show": [
7531
7534
  "memo stats tasks show --source telegram:1",
7532
7535
  "memo stats tasks show --type question --source telegram:1 --json"
@@ -9639,6 +9642,52 @@ var projectActionsCommand = /* @__PURE__ */ __name((projects, streams, env) => {
9639
9642
  }
9640
9643
  }, "projectActionsCommand");
9641
9644
 
9645
+ // dist/knowledge/project-activity-command.js
9646
+ var DAY9 = 864e5;
9647
+ var sinceOf2 = /* @__PURE__ */ __name((value, now) => {
9648
+ if (value.trim().toLowerCase() === "all")
9649
+ return 0;
9650
+ const window = projectWindowOf(value);
9651
+ return "days" in window ? now - window.days * DAY9 : window.after;
9652
+ }, "sinceOf");
9653
+ var textOf = /* @__PURE__ */ __name((one2) => [
9654
+ `${one2.key ?? one2.ref} ${one2.name} \xB7 ${one2.chats} chats${one2.muted ? ` (${one2.muted} muted, not counted)` : ""} \xB7 ${one2.messages} messages (${one2.sent} yours)${one2.lastAt ? ` \xB7 last ${one2.lastAt.slice(0, 10)}` : ""}` + (one2.partial ? " \xB7 some sub-projects not counted" : ""),
9655
+ ...one2.top.map((chat) => ` ${chat.messages} ${chat.title ?? chat.ref}`)
9656
+ ].join("\n"), "textOf");
9657
+ var projectActivityCommand = /* @__PURE__ */ __name((program, streams, env) => {
9658
+ const { print } = answers(program, streams, env);
9659
+ const stats = program.commands.find((command) => command.name() === "stats") ?? program.command("stats").description("statistics about what the store holds");
9660
+ const projects = new Command("projects").description("project statistics");
9661
+ stats.addCommand(projects);
9662
+ annotate(projects.command("show"), { effects: LOCAL_READ }).summary("each project's linked chats: messages in a period, last activity, busiest chats").description("for each of your projects, the chats linked to it or its child projects (every confirmed link, any purpose, no chat limit, unlike projects status): how many, how many are muted, messages and yours in the period by when they were sent, the newest message and the three busiest chats; a muted chat's messages are not counted. Busiest first. One read for all projects; projects status <project> says where one stands").option("--since-time <time>", "how far back: days (30d, at most 730d), a start date (2026-09-01) or all", "30d").option("--limit <n>", "most projects on a page, up to 200", positive, 20).option("--page <n>", "which page, from 1", positive, 1).option("--json", "print JSON; --json=id,title keeps only those fields").action(async (options) => {
9663
+ const now = Date.now();
9664
+ const since = sinceOf2(options.sinceTime, now);
9665
+ const limit = Math.min(options.limit, 200);
9666
+ const found = await withStore(env, async (store) => {
9667
+ const scope = await groupScopeOf(store, env);
9668
+ return projectActivity(store, {
9669
+ since,
9670
+ until: now,
9671
+ limit,
9672
+ offset: (options.page - 1) * limit,
9673
+ ...scope === void 0 ? {} : { accounts: scope.accounts }
9674
+ });
9675
+ });
9676
+ print(options.json, listAnswer("stats projects show", {
9677
+ items: found.items,
9678
+ limit,
9679
+ page: options.page,
9680
+ has_more: found.hasMore,
9681
+ total: { value: found.total, relation: "eq" },
9682
+ args: { since_time: options.sinceTime, limit }
9683
+ }), [
9684
+ since === 0 ? "all time" : `since ${new Date(since).toISOString().slice(0, 10)}`,
9685
+ ...found.items.length ? found.items.map(textOf) : [options.page > 1 ? "no projects on this page" : "no projects"],
9686
+ ...found.hasMore ? [`more: --since-time ${options.sinceTime} --limit ${limit} --page ${options.page + 1}`] : []
9687
+ ].join("\n\n"));
9688
+ });
9689
+ }, "projectActivityCommand");
9690
+
9642
9691
  // dist/knowledge/project-findings.js
9643
9692
  var projectFindings = /* @__PURE__ */ __name(async (store, project, links) => {
9644
9693
  const ids = /* @__PURE__ */ new Set();
@@ -9756,7 +9805,7 @@ var projectContextText = /* @__PURE__ */ __name((context) => {
9756
9805
  }, "projectContextText");
9757
9806
 
9758
9807
  // dist/knowledge/relationships-scan.js
9759
- var DAY9 = 864e5;
9808
+ var DAY10 = 864e5;
9760
9809
  var SCAN_STEP = {
9761
9810
  id: "relationships.scan",
9762
9811
  kind: "command",
@@ -9830,7 +9879,7 @@ var relationshipsScanCommand = /* @__PURE__ */ __name((relations, print, env, wa
9830
9879
  if (options.limit > 50)
9831
9880
  throw new CliError("validation_error", "--limit is at most 50", { param: "limit" });
9832
9881
  const window = projectWindowOf(options.sinceTime);
9833
- const since = new Date("days" in window ? Date.now() - window.days * DAY9 : window.after).toISOString();
9882
+ const since = new Date("days" in window ? Date.now() - window.days * DAY10 : window.after).toISOString();
9834
9883
  const written2 = options.yes === true;
9835
9884
  const { body, text: text3 } = await withStore(env, async (store) => {
9836
9885
  const sources = await namedAccounts(store, env, options, warn);
@@ -10100,6 +10149,38 @@ var projectTransferCommand = /* @__PURE__ */ __name((projects, streams, env) =>
10100
10149
  }
10101
10150
  }, "projectTransferCommand");
10102
10151
 
10152
+ // dist/knowledge/document-context.js
10153
+ var MAX_DEPTH = 20;
10154
+ var documentContext = /* @__PURE__ */ __name(async (store, ref) => {
10155
+ const note = await store.notes.note(ref).catch(() => null);
10156
+ if (!note || note.deletedAt)
10157
+ return null;
10158
+ const { folderId } = note;
10159
+ const entryOf2 = /* @__PURE__ */ __name(async (externalId) => folderId === null ? void 0 : await store.catalog.get(folderId, externalId).catch(() => void 0), "entryOf");
10160
+ const entry = note.path === null ? void 0 : await entryOf2(note.path);
10161
+ if (!entry)
10162
+ return { ref: note.ref, title: note.title, path: null, url: null, modifiedAt: note.modifiedAt, mime: null };
10163
+ const names = [entry.name];
10164
+ const seen = /* @__PURE__ */ new Set([note.path]);
10165
+ let parent = entry.parents[0];
10166
+ for (let depth = 0; parent !== void 0 && !seen.has(parent) && depth < MAX_DEPTH; depth++) {
10167
+ seen.add(parent);
10168
+ const folder = await entryOf2(parent);
10169
+ if (!folder)
10170
+ break;
10171
+ names.unshift(folder.name);
10172
+ parent = folder.parents[0];
10173
+ }
10174
+ return {
10175
+ ref: note.ref,
10176
+ title: entry.name,
10177
+ path: names.join("/"),
10178
+ url: entry.url ?? null,
10179
+ modifiedAt: entry.modifiedAt ?? note.modifiedAt,
10180
+ mime: entry.mime ?? null
10181
+ };
10182
+ }, "documentContext");
10183
+
10103
10184
  // dist/knowledge/relationships.js
10104
10185
  var RELATIONSHIP_QUERY = {
10105
10186
  entity: "relationship",
@@ -10118,10 +10199,10 @@ var RELATIONSHIP_QUERY = {
10118
10199
  termField("include", "enum", "include:ended", { values: ["ended"] })
10119
10200
  ]
10120
10201
  };
10121
- var DAY10 = /^\d{4}-\d{2}-\d{2}$/;
10202
+ var DAY11 = /^\d{4}-\d{2}-\d{2}$/;
10122
10203
  var atOf = /* @__PURE__ */ __name((day2) => {
10123
10204
  const at2 = Date.parse(`${day2}T00:00:00Z`);
10124
- if (!DAY10.test(day2) || Number.isNaN(at2))
10205
+ if (!DAY11.test(day2) || Number.isNaN(at2))
10125
10206
  throw new CliError("validation_error", `at: takes a day, such as at:2026-10-01 \u2014 not "${day2}"`, {
10126
10207
  reason: "input.invalid"
10127
10208
  });
@@ -10152,6 +10233,18 @@ var listRelationships = /* @__PURE__ */ __name(async (store, env, words, { limit
10152
10233
  if (guard === void 0 || await guard.visible(one2.from) && await guard.visible(one2.to))
10153
10234
  rows.push(one2);
10154
10235
  const label = await labelsFor(store, rows.flatMap((one2) => [one2.from, one2.to]));
10236
+ const documents = /* @__PURE__ */ new Map();
10237
+ const documentOf2 = /* @__PURE__ */ __name((ref) => {
10238
+ if (!ref.startsWith("document:"))
10239
+ return void 0;
10240
+ if (!documents.has(ref))
10241
+ documents.set(ref, documentContext(store, ref));
10242
+ return documents.get(ref);
10243
+ }, "documentOf");
10244
+ const ends = /* @__PURE__ */ __name(async (one2) => {
10245
+ const [from, to] = await Promise.all([documentOf2(one2.from), documentOf2(one2.to)]);
10246
+ return { ...from === void 0 ? {} : { fromDocument: from }, ...to === void 0 ? {} : { toDocument: to } };
10247
+ }, "ends");
10155
10248
  return {
10156
10249
  hasMore: found.hasMore,
10157
10250
  limit,
@@ -10162,7 +10255,8 @@ var listRelationships = /* @__PURE__ */ __name(async (store, env, words, { limit
10162
10255
  // Who proposed it is the review's to name; the list says it beside the proposal.
10163
10256
  ...one2.source === "proposal" ? { proposer: proposerName((await store.proposedActions.get(one2.id)).proposedBy) } : {},
10164
10257
  fromTitle: label(one2.from),
10165
- toTitle: label(one2.to)
10258
+ toTitle: label(one2.to),
10259
+ ...await ends(one2)
10166
10260
  })))
10167
10261
  };
10168
10262
  }, "listRelationships");
@@ -10181,13 +10275,13 @@ var relationshipsText = /* @__PURE__ */ __name((items) => items.length ? items.m
10181
10275
  ].filter(Boolean).join(" ")).join("\n") : "no relationships", "relationshipsText");
10182
10276
 
10183
10277
  // dist/knowledge/roles-command.js
10184
- var LISTS = ["organization", "project", "deal"];
10278
+ var LISTS = Object.keys(ROLE_LISTS);
10185
10279
  var ROLES_QUERY = {
10186
10280
  entity: "relationship_role",
10187
10281
  backend: "native",
10188
10282
  fields: [termField("list", "enum", "list:organization", { values: LISTS })]
10189
10283
  };
10190
- var LIST_HELP = "organization (roles in an organization), project or deal (a deal's or a lead's)";
10284
+ var LIST_HELP = "organization (roles in an organization), project, deal (a deal's or a lead's), contract (a party's) or related (what a person or an organization is to another)";
10191
10285
  var ownerOnly = /* @__PURE__ */ __name(async (command, env, asOwner2, question) => {
10192
10286
  if (await whoRuns(command, env, { asOwner: asOwner2, question }) !== "owner")
10193
10287
  throw new CliError("permission_error", "only the owner changes the role lists; an agent uses the roles they hold", {
@@ -10199,9 +10293,9 @@ var relationshipRolesCommand = /* @__PURE__ */ __name((relations, { print }, env
10199
10293
  const rows = /* @__PURE__ */ __name(async (lists) => withStore(env, async (store) => (await Promise.all(lists.map(async (list) => (await store.knowledge.roles(list)).map((one2) => ({ list, ...one2 }))))).flat()), "rows");
10200
10294
  const show = /* @__PURE__ */ __name(async (json5, command, lists) => {
10201
10295
  const items = await rows(lists);
10202
- print(json5, listAnswer(command, { items, limit: Math.max(1, items.length), has_more: false }), items.map(({ list, id, label, builtIn }) => `${list} ${id}${label ? ` ${label}` : ""}${builtIn ? "" : " (yours)"}`).join("\n"));
10296
+ print(json5, listAnswer(command, { items, limit: Math.max(1, items.length), has_more: false }), items.map(({ list, id, label, labels, builtIn }) => `${list} ${id}${label ?? labels?.en ? ` ${label ?? labels?.en}` : ""}${builtIn ? "" : " (yours)"}`).join("\n"));
10203
10297
  }, "show");
10204
- withQuery(annotate(roles.command("list"), { effects: LOCAL_READ, output: { entity: "relationship_role" } }), ROLES_QUERY).description("the roles of every list, or of one with list:organization, list:project or list:deal; each built in or yours").summary("the roles a relationship may take").option("--json", "print JSON; --json=id,title keeps only those fields").action((words, options) => {
10298
+ withQuery(annotate(roles.command("list"), { effects: LOCAL_READ, output: { entity: "relationship_role" } }), ROLES_QUERY).description("the roles of every list, or of one with list:<name>; each built in (with labels in English, Russian and Spanish) or yours").summary("the roles a relationship may take").option("--json", "print JSON; --json=id,title keeps only those fields").action((words, options) => {
10205
10299
  const list = queryTerms(words, ROLES_QUERY, "relationships roles list").get("list");
10206
10300
  return show(options.json, "relationships roles list", list === void 0 ? LISTS : [list]);
10207
10301
  });
@@ -10325,6 +10419,7 @@ var knowledgeCommands = /* @__PURE__ */ __name((program, streams, env) => {
10325
10419
  });
10326
10420
  projectGatherCommand(projects, print, env, warn);
10327
10421
  projectStatusCommand(projects, print, env);
10422
+ projectActivityCommand(program, streams, env);
10328
10423
  projectActionsCommand(projects, streams, env);
10329
10424
  projectTransferCommand(projects, streams, env);
10330
10425
  const keys = projects.command("key-documents").description("the notes, files and messages to read first about a project, each with why");
@@ -10876,10 +10971,10 @@ var mcpCommandDefinition = /* @__PURE__ */ __name((program, streams, env, create
10876
10971
  }).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) => {
10877
10972
  if (!options.http && (options.port !== void 0 || options.publicUrl !== void 0))
10878
10973
  throw new CliError("validation_error", "--port and --public-url require --http");
10879
- const { createMemoServer } = await import("./server-TL5WPR3I.js");
10974
+ const { createMemoServer } = await import("./server-NNE7MUYT.js");
10880
10975
  const build = /* @__PURE__ */ __name(() => createMemoServer(env, createProgram2, options.permission), "build");
10881
10976
  if (options.http) {
10882
- const { httpLockFile, mcpUrlOf, portOf, publicUrlOf, serveOverHttp } = await import("./mcp-3MBYSBNS.js");
10977
+ const { httpLockFile, mcpUrlOf, portOf, publicUrlOf, serveOverHttp } = await import("./mcp-3LAFWOGW.js");
10883
10978
  const publicUrl = publicUrlOf(options.publicUrl, {
10884
10979
  missing: "--http",
10885
10980
  reaches: "the browser apps reach memo",
@@ -10931,7 +11026,7 @@ var mcpCommandDefinition = /* @__PURE__ */ __name((program, streams, env, create
10931
11026
  });
10932
11027
  });
10933
11028
  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() {
10934
- const { revokeAll } = await import("./mcp-3MBYSBNS.js");
11029
+ const { revokeAll } = await import("./mcp-3LAFWOGW.js");
10935
11030
  revokeAll(httpTokenFile(env));
10936
11031
  out.print(this.opts().json, itemAnswer({ revoked: true }));
10937
11032
  });
@@ -11426,7 +11521,7 @@ var refuseOverMcp = /* @__PURE__ */ __name((options, mcp2) => {
11426
11521
  param: "export"
11427
11522
  });
11428
11523
  }, "refuseOverMcp");
11429
- var textOf = /* @__PURE__ */ __name((options, given2) => {
11524
+ var textOf2 = /* @__PURE__ */ __name((options, given2) => {
11430
11525
  const sources = [given2, options.text, options.textFile].filter((value) => value !== void 0);
11431
11526
  if (sources.length !== 1)
11432
11527
  throw new CliError("validation_error", "give the text once: as an argument, --text or --text-file");
@@ -11522,7 +11617,7 @@ var notesCommandDefinition = /* @__PURE__ */ __name((program, streams, env) => {
11522
11617
  }).description("write a note of your own about messages, people, projects or other notes").argument("[text]", "the note; or --text, or --text-file").option("--text <text>", "the note").option("--text-file <path>", "read the note from a file; - reads stdin").option("--title <title>", "a title").option("--subject <ref>", "what it is about: <messenger>:<name or id>, msg:, chat:, person:, organization:, project:, task:, note:, document:, meeting:; repeat for more", collect).option("--meeting <id>", "also about this meeting, by its store id, with --account");
11523
11618
  writeOptions(noteAdd, `the account of --meeting: ${MEETING_WRITE_HELP}`).option("--export [dir]", "also write it as a file \u2014 to this folder, or notes.export.dir").option("--format <format>", `the file's format: ${DIALECTS.join(", ")}`, formatOf).option("--json", "print JSON; --json=id,title keeps only those fields").action(async (given2, options, command) => {
11524
11619
  refuseOverMcp(options, isMcpRun(command, env));
11525
- const body = textOf(options, given2);
11620
+ const body = textOf2(options, given2);
11526
11621
  const value = writeAccountOf(options, (text3) => streams.diagnostic(text3));
11527
11622
  if (options.meeting === void 0 && value !== void 0)
11528
11623
  throw new CliError("validation_error", "--account selects the account of --meeting");
@@ -11544,7 +11639,7 @@ var notesCommandDefinition = /* @__PURE__ */ __name((program, streams, env) => {
11544
11639
  });
11545
11640
  annotate(notes2.command("edit"), { effects: LOCAL_WRITE, output: { entity: "note" }, literal_after_dashes: true }).description("change a note you wrote here; a file's note is edited in its file").argument("<id>", "note:<id>").requiredOption("--revision <n>", "its current revision, so an edit made meanwhile is not lost", positive).option("--text <text>", "the new text").option("--text-file <path>", "read the new text from a file; - reads stdin").option("--export [dir]", "also rewrite its file \u2014 in this folder, or notes.export.dir").option("--format <format>", `the file's format: ${DIALECTS.join(", ")}`, formatOf).option("--json", "print JSON; --json=id,title keeps only those fields").action(async (id, options, command) => {
11546
11641
  refuseOverMcp(options, isMcpRun(command, env));
11547
- const body = textOf(options);
11642
+ const body = textOf2(options);
11548
11643
  const answer = await withNotes(async (store) => {
11549
11644
  await refuseBareNumber(store, id, ["note"]);
11550
11645
  const note = await store.notes.editNote(id.replace(/^note:/, ""), body, options.revision);
@@ -11726,7 +11821,7 @@ var foldersCommand = /* @__PURE__ */ __name((program, streams, env) => {
11726
11821
  import { join as join13 } from "node:path";
11727
11822
 
11728
11823
  // dist/people/doubts-command.js
11729
- var textOf2 = /* @__PURE__ */ __name((doubt) => [
11824
+ var textOf3 = /* @__PURE__ */ __name((doubt) => [
11730
11825
  `${doubt.person}${doubt.name ? ` ${doubt.name}` : ""}${doubt.owner ? " (you)" : ""} \xB7 ${doubt.reason}`,
11731
11826
  ` ${doubt.why}`,
11732
11827
  ...doubt.identities.map(({ identity, name: name2, method, by, at: at2 }) => ` ${identity}${name2 ? ` ${name2}` : ""} (${method} by ${by}, ${at2.slice(0, 10)})`),
@@ -11749,7 +11844,7 @@ var doubtsCommand = /* @__PURE__ */ __name((people, program, streams, env) => {
11749
11844
  has_more: found.hasMore,
11750
11845
  ...counted3 ? { total: { value: found.total, relation: "eq" } } : {}
11751
11846
  }), [
11752
- found.items.map(textOf2).join("\n\n") || (found.hasMore ? "none on this page" : "no person looks wrong"),
11847
+ found.items.map(textOf3).join("\n\n") || (found.hasMore ? "none on this page" : "no person looks wrong"),
11753
11848
  ...found.hasMore ? [`more: --page ${options.page + 1}`] : []
11754
11849
  ].join("\n\n"));
11755
11850
  });
@@ -15983,7 +16078,8 @@ var GROUP_AWARE = [
15983
16078
  "projects add",
15984
16079
  "projects context",
15985
16080
  "projects status",
15986
- "projects key-documents"
16081
+ "projects key-documents",
16082
+ "stats projects show"
15987
16083
  ];
15988
16084
  var isSimpleKind = /* @__PURE__ */ __name((name2) => REF_KINDS.some(({ type }) => type === name2), "isSimpleKind");
15989
16085
  var REF_KINDS_OF = {
@@ -3,8 +3,8 @@ const require = __bundleRequire(import.meta.url);
3
3
  import {
4
4
  pasteHint,
5
5
  readSecret
6
- } from "./chunk-4FPSZCWN.js";
7
- import "./chunk-3HCGK4FN.js";
6
+ } from "./chunk-HKXACNLD.js";
7
+ import "./chunk-UBUCTVHB.js";
8
8
  import "./chunk-SB3AOH3M.js";
9
9
  import "./chunk-DCK5AT3D.js";
10
10
  import "./chunk-RK24IARI.js";
@@ -8,7 +8,7 @@ import {
8
8
  openRecognizer,
9
9
  openSpeechCutter,
10
10
  toModelRate
11
- } from "./chunk-CLZHPHKI.js";
11
+ } from "./chunk-OFRIG3CX.js";
12
12
  import "./chunk-SB3AOH3M.js";
13
13
  import "./chunk-DCK5AT3D.js";
14
14
  import "./chunk-RK24IARI.js";
@@ -8,10 +8,10 @@ import {
8
8
  openRemote,
9
9
  remoteKey,
10
10
  remoteModel
11
- } from "./chunk-BBJBWSGN.js";
12
- import "./chunk-QOFD6JSB.js";
13
- import "./chunk-CX3D6D43.js";
14
- import "./chunk-A5TSIMI2.js";
11
+ } from "./chunk-GHYJW4ZH.js";
12
+ import "./chunk-C4TAEYDQ.js";
13
+ import "./chunk-UTYGPWUY.js";
14
+ import "./chunk-R4XCBPD2.js";
15
15
  import "./chunk-SB3AOH3M.js";
16
16
  import "./chunk-DCK5AT3D.js";
17
17
  import "./chunk-RK24IARI.js";
@@ -4,9 +4,9 @@ import {
4
4
  defaultThreads,
5
5
  loadModel,
6
6
  truncated
7
- } from "./chunk-QOFD6JSB.js";
8
- import "./chunk-CX3D6D43.js";
9
- import "./chunk-A5TSIMI2.js";
7
+ } from "./chunk-C4TAEYDQ.js";
8
+ import "./chunk-UTYGPWUY.js";
9
+ import "./chunk-R4XCBPD2.js";
10
10
  import "./chunk-SB3AOH3M.js";
11
11
  import "./chunk-DCK5AT3D.js";
12
12
  import "./chunk-RK24IARI.js";
@@ -17,7 +17,7 @@ import {
17
17
  __name
18
18
  } from "./chunk-ZVVMGPBJ.js";
19
19
 
20
- // node_modules/.pnpm/@wirecat+cli-core@0.633.0_@wirecat+cli-base@0.95.0_commander@15.0.0_esbuild@0.28.2_type_6b55a08b64e6f66e5ab3a99b7d6b1e87/node_modules/@wirecat/cli-core/dist/embeddings/rerank.js
20
+ // node_modules/.pnpm/@wirecat+cli-core@0.634.0_@wirecat+cli-base@0.95.0_commander@15.0.0_esbuild@0.28.2_type_c47469194f2825719a552db4a380e89c/node_modules/@wirecat/cli-core/dist/embeddings/rerank.js
21
21
  var openReranker = /* @__PURE__ */ __name(async (model, directory, { threads = defaultThreads() } = {}) => {
22
22
  const { ort, tokenizer, session } = await loadModel(model, directory, threads);
23
23
  const typeIds = session.inputNames.includes("token_type_ids");