@wirecat/cli-memo 0.131.73 → 0.131.75

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 (200) hide show
  1. package/dist/bin/memo.js +2 -2
  2. package/dist/bundle/{all-profiles-L5QBYI3V.js → all-profiles-LUGN5BHP.js} +9 -9
  3. package/dist/bundle/{anthropic-XXKHNCQS.js → anthropic-W7JXDZPL.js} +5 -5
  4. package/dist/bundle/{app-server-FDMP3IBP.js → app-server-TRRARE66.js} +50 -49
  5. package/dist/bundle/auto-AQAKW55Z.js +89 -0
  6. package/dist/bundle/{bun-VLN4HBWB.js → bun-S3JZIN4S.js} +2 -2
  7. package/dist/bundle/{bun-sqlite-KJCYXNMS.js → bun-sqlite-X3WQN3CV.js} +5 -5
  8. package/dist/bundle/{chunk-ZTONSM5X.js → chunk-2EZFUIL4.js} +2 -2
  9. package/dist/bundle/{chunk-HBP7AQXX.js → chunk-2QND7VJS.js} +12 -12
  10. package/dist/bundle/{chunk-2BH2RNFR.js → chunk-346PWQJF.js} +8 -8
  11. package/dist/bundle/{chunk-B7ATMWVO.js → chunk-4KDORB7C.js} +12 -37
  12. package/dist/bundle/{chunk-V3JOIUVB.js → chunk-4O2MYFYC.js} +4 -4
  13. package/dist/bundle/{chunk-I6MGDSYH.js → chunk-4QGUBKN5.js} +6 -6
  14. package/dist/bundle/{chunk-YDGZJK6U.js → chunk-4XI7S3PO.js} +24 -24
  15. package/dist/bundle/{chunk-XGXEWKR7.js → chunk-5CTOWPOL.js} +12 -12
  16. package/dist/bundle/{chunk-6OPZTBRR.js → chunk-5RLCKP5E.js} +59 -35
  17. package/dist/bundle/{chunk-VQUSPMYO.js → chunk-6AOPUQTC.js} +1 -1
  18. package/dist/bundle/chunk-6FTZ53TT.js +18 -0
  19. package/dist/bundle/{chunk-BTVND2RV.js → chunk-6I4DOBSD.js} +13 -13
  20. package/dist/bundle/{chunk-WJNLBQSV.js → chunk-6VMIMAZ2.js} +544 -586
  21. package/dist/bundle/{chunk-BBLT77AO.js → chunk-7Y4HUYI3.js} +26 -14
  22. package/dist/bundle/{chunk-JLC2RE4Y.js → chunk-AOHT5FNX.js} +82 -82
  23. package/dist/bundle/{chunk-VPR47AG4.js → chunk-BDVM5652.js} +1 -1
  24. package/dist/bundle/{chunk-MM3OMWST.js → chunk-C6MWOBEL.js} +24 -22
  25. package/dist/bundle/{chunk-LHZ4QBWB.js → chunk-E2PSOSTN.js} +2 -2
  26. package/dist/bundle/{chunk-J7ESMDVV.js → chunk-E74VWHZ2.js} +1 -1
  27. package/dist/bundle/{chunk-MLN4DPXN.js → chunk-EWRHTZD3.js} +17 -17
  28. package/dist/bundle/{chunk-FMSXN2N6.js → chunk-FGMFJUHR.js} +1058 -774
  29. package/dist/bundle/{chunk-A7QXBRUH.js → chunk-G45BLLDR.js} +4 -4
  30. package/dist/bundle/{chunk-KK3ZHBMI.js → chunk-GFVSZY4J.js} +26 -2
  31. package/dist/bundle/{chunk-IUEYR3TK.js → chunk-IQIM4UC7.js} +10 -10
  32. package/dist/bundle/{chunk-JABLJBXL.js → chunk-JINEHQ2T.js} +4927 -4920
  33. package/dist/bundle/chunk-KA5MDFLU.js +138 -0
  34. package/dist/bundle/{chunk-IKH4RCJO.js → chunk-KDBAY5JZ.js} +1 -1
  35. package/dist/bundle/{chunk-LJCT7YG6.js → chunk-KEBL3PY4.js} +4 -4
  36. package/dist/bundle/{chunk-C3UOKLIT.js → chunk-KUFOM3SB.js} +2 -2
  37. package/dist/bundle/{chunk-ZIGVDRSI.js → chunk-KYJBGCTC.js} +2 -2
  38. package/dist/bundle/{chunk-R3PK4Y7C.js → chunk-LPGE6ACC.js} +2 -2
  39. package/dist/bundle/{chunk-6ZRBQTKZ.js → chunk-LX3OSTBD.js} +4 -4
  40. package/dist/bundle/{chunk-NMOWIFH3.js → chunk-MPZBV5RL.js} +8 -8
  41. package/dist/bundle/{chunk-H74CWBSY.js → chunk-NR633L2N.js} +4 -4
  42. package/dist/bundle/{chunk-DSU6UR2X.js → chunk-NT5IOEEK.js} +1 -1
  43. package/dist/bundle/chunk-OWUEEVF6.js +177 -0
  44. package/dist/bundle/{chunk-L62FWN3Y.js → chunk-OYKQX4H3.js} +1 -1
  45. package/dist/bundle/{chunk-W6JPIP5C.js → chunk-QKWM4VK4.js} +6 -6
  46. package/dist/bundle/chunk-QYJJBE56.js +109 -0
  47. package/dist/bundle/{chunk-JPXDDRBD.js → chunk-RZS24U4N.js} +11 -11
  48. package/dist/bundle/{chunk-EI2P5E4C.js → chunk-SCYHDYLI.js} +3 -1
  49. package/dist/bundle/{chunk-OGUXOAOH.js → chunk-SIOPF2UG.js} +6 -6
  50. package/dist/bundle/{chunk-RB266FS6.js → chunk-SIQDO5DN.js} +4 -4
  51. package/dist/bundle/{chunk-O5KXCQE4.js → chunk-SJD4KTK2.js} +4 -4
  52. package/dist/bundle/{chunk-PAHBDQ5A.js → chunk-UIAGASGP.js} +6 -6
  53. package/dist/bundle/{chunk-ZI5Y2EUA.js → chunk-UU3OAPGO.js} +7 -7
  54. package/dist/bundle/{chunk-ON7ZROFP.js → chunk-V7BDQIZS.js} +2 -2
  55. package/dist/bundle/{chunk-EH7ACKFW.js → chunk-VB4OLJHK.js} +3 -3
  56. package/dist/bundle/{chunk-SILEPITK.js → chunk-VFKCZJFT.js} +25 -35
  57. package/dist/bundle/{chunk-HE2F4JII.js → chunk-VYCLOFPC.js} +24 -9
  58. package/dist/bundle/{chunk-UUBV5ATQ.js → chunk-W46O6RJ5.js} +20 -20
  59. package/dist/bundle/{chunk-QHLEMEF3.js → chunk-W64FO6DD.js} +53 -48
  60. package/dist/bundle/{chunk-LG5SQGNM.js → chunk-WKLF7CAM.js} +47 -45
  61. package/dist/bundle/{chunk-X35Q5CHE.js → chunk-WZHCQ4VZ.js} +8 -8
  62. package/dist/bundle/{chunk-PF6LXPK5.js → chunk-XMHWGHID.js} +4280 -4278
  63. package/dist/bundle/chunk-XPCTY6XV.js +116 -0
  64. package/dist/bundle/{chunk-E75LK7GD.js → chunk-XPSXVUZG.js} +3 -3
  65. package/dist/bundle/{chunk-XM6ZAPFW.js → chunk-XQ3RZU3J.js} +1 -1
  66. package/dist/bundle/{chunk-LOYI3STE.js → chunk-XQHOMQNZ.js} +4 -4
  67. package/dist/bundle/{chunk-K54MCZWM.js → chunk-YB4KGUXY.js} +3 -3
  68. package/dist/bundle/{chunk-US2HTCJA.js → chunk-YDTGYYOR.js} +4 -4
  69. package/dist/bundle/{chunk-EQLOQOIB.js → chunk-YLYZNPAZ.js} +2 -2
  70. package/dist/bundle/{chunk-BOZEBD3I.js → chunk-ZISVFVQU.js} +1445 -832
  71. package/dist/bundle/{chunk-IDCYBSML.js → chunk-ZL63GL3Y.js} +3 -3
  72. package/dist/bundle/{chunk-2C323QNQ.js → chunk-ZP2XI5DR.js} +9 -9
  73. package/dist/bundle/{chunk-3CANRF2G.js → chunk-ZTZLAGZA.js} +3 -3
  74. package/dist/bundle/{chunk-FSXQLNU4.js → chunk-ZXW5FPH2.js} +1 -1
  75. package/dist/bundle/command-contract-QQG343ZQ.js +32 -0
  76. package/dist/bundle/command-server-entry-XVUPTSSH.js +145 -0
  77. package/dist/bundle/{decode-OS6Y6ICA.js → decode-METZOSMG.js} +5 -5
  78. package/dist/bundle/{dispatch-VJSUBAUM.js → dispatch-PHB2Y6ZL.js} +8 -8
  79. package/dist/bundle/{echarts-JKGDUDYL.js → echarts-EBSP4VCK.js} +2 -2
  80. package/dist/bundle/{embed-UB4LH6MF.js → embed-GVVU7N7W.js} +6 -6
  81. package/dist/bundle/{embedder-TUQBG22Y.js → embedder-6BZOYAXV.js} +9 -9
  82. package/dist/bundle/entry-TBOYUMWB.js +21 -0
  83. package/dist/bundle/failure-EKMEAYZH.js +69 -0
  84. package/dist/bundle/{failure-GLF7OMMM.js → failure-OBT7CUVW.js} +2 -2
  85. package/dist/bundle/{first-run-VNJHZYGS.js → first-run-HQ4GA4EF.js} +11 -11
  86. package/dist/bundle/first-screen-6T65PQ37.js +30 -0
  87. package/dist/bundle/{instructions-Q6IZQUU7.js → instructions-VDKK3Y5Z.js} +1 -1
  88. package/dist/bundle/{mcp-H2WYFBNW.js → mcp-5275YLID.js} +2 -2
  89. package/dist/bundle/mcp-DEY765VA.js +90 -0
  90. package/dist/bundle/memo.js +16 -16
  91. package/dist/bundle/{node-ZSSIVKVC.js → node-HWGZYNUX.js} +2 -2
  92. package/dist/bundle/{node-sqlite-AUNJSQQL.js → node-sqlite-PSYENWGS.js} +6 -6
  93. package/dist/bundle/{oauth-2MTJFCMI.js → oauth-TQGMUJK2.js} +7 -7
  94. package/dist/bundle/{open-U7RC27MJ.js → open-KDDJDKCE.js} +5 -5
  95. package/dist/bundle/openai-QPGCUM4T.js +24 -0
  96. package/dist/bundle/{process-UEQX5STY.js → process-APNTXJJE.js} +1 -1
  97. package/dist/bundle/{program-G3F26HW7.js → program-OGDARQTX.js} +3060 -2547
  98. package/dist/bundle/{prompt-F23FC5PJ.js → prompt-BMBZCLGF.js} +5 -5
  99. package/dist/bundle/{recognize-ZVEGVD56.js → recognize-3SEY2MAR.js} +4 -4
  100. package/dist/bundle/{remote-CZXQS7PS.js → remote-ODH54UXO.js} +7 -7
  101. package/dist/bundle/{rerank-IRFXSVVO.js → rerank-JQHBNTUK.js} +7 -7
  102. package/dist/bundle/{serve-6CIMU5HP.js → serve-C22ZONSM.js} +9 -9
  103. package/dist/bundle/server-3UX245DY.js +62 -0
  104. package/dist/bundle/server-6G5XF3V5.js +48 -0
  105. package/dist/bundle/{server-H24MAUT2.js → server-ADPO4V4B.js} +70 -66
  106. package/dist/bundle/{state-TRWZWXB5.js → state-M3VGXSV4.js} +6 -6
  107. package/dist/bundle/{store-E4QUOOLX.js → store-GSZAXU3A.js} +13 -13
  108. package/dist/bundle/store-maintenance-command-QMTALGSQ.js +47 -0
  109. package/dist/bundle/update-HDJ23IV5.js +72 -0
  110. package/dist/context/context.d.ts.map +1 -1
  111. package/dist/context/context.js +4 -2
  112. package/dist/context/context.js.map +1 -1
  113. package/dist/contract-overrides/search.d.ts.map +1 -1
  114. package/dist/contract-overrides/search.js +6 -0
  115. package/dist/contract-overrides/search.js.map +1 -1
  116. package/dist/digest/backfill.d.ts +1 -1
  117. package/dist/digest/backfill.d.ts.map +1 -1
  118. package/dist/digest/backfill.js +71 -42
  119. package/dist/digest/backfill.js.map +1 -1
  120. package/dist/digest/brief.d.ts +14 -3
  121. package/dist/digest/brief.d.ts.map +1 -1
  122. package/dist/digest/brief.js +84 -34
  123. package/dist/digest/brief.js.map +1 -1
  124. package/dist/digest/command.d.ts +3 -0
  125. package/dist/digest/command.d.ts.map +1 -1
  126. package/dist/digest/command.js +23 -0
  127. package/dist/digest/command.js.map +1 -1
  128. package/dist/digest/digest-commands.d.ts +6 -0
  129. package/dist/digest/digest-commands.d.ts.map +1 -0
  130. package/dist/digest/digest-commands.js +241 -0
  131. package/dist/digest/digest-commands.js.map +1 -0
  132. package/dist/digest/digest.d.ts +5 -2
  133. package/dist/digest/digest.d.ts.map +1 -1
  134. package/dist/digest/digest.js +29 -8
  135. package/dist/digest/digest.js.map +1 -1
  136. package/dist/digest/digests.d.ts +72 -0
  137. package/dist/digest/digests.d.ts.map +1 -0
  138. package/dist/digest/digests.js +122 -0
  139. package/dist/digest/digests.js.map +1 -0
  140. package/dist/digest/tasks.d.ts +7 -4
  141. package/dist/digest/tasks.d.ts.map +1 -1
  142. package/dist/digest/tasks.js +13 -5
  143. package/dist/digest/tasks.js.map +1 -1
  144. package/dist/examples.d.ts.map +1 -1
  145. package/dist/examples.js +17 -1
  146. package/dist/examples.js.map +1 -1
  147. package/dist/people/command.d.ts +0 -1
  148. package/dist/people/command.d.ts.map +1 -1
  149. package/dist/people/command.js +114 -12
  150. package/dist/people/command.js.map +1 -1
  151. package/dist/program.d.ts +4 -1
  152. package/dist/program.d.ts.map +1 -1
  153. package/dist/program.js +9 -5
  154. package/dist/program.js.map +1 -1
  155. package/dist/reasons.d.ts.map +1 -1
  156. package/dist/reasons.js +24 -0
  157. package/dist/reasons.js.map +1 -1
  158. package/dist/rows.d.ts.map +1 -1
  159. package/dist/rows.js +13 -1
  160. package/dist/rows.js.map +1 -1
  161. package/dist/schedule/command.d.ts +8 -0
  162. package/dist/schedule/command.d.ts.map +1 -1
  163. package/dist/schedule/command.js +4 -2
  164. package/dist/schedule/command.js.map +1 -1
  165. package/dist/search/answers.d.ts +6 -1
  166. package/dist/search/answers.d.ts.map +1 -1
  167. package/dist/search/answers.js +17 -1
  168. package/dist/search/answers.js.map +1 -1
  169. package/dist/search/command.d.ts.map +1 -1
  170. package/dist/search/command.js +13 -2
  171. package/dist/search/command.js.map +1 -1
  172. package/dist/search/lane-gates.d.ts +4 -3
  173. package/dist/search/lane-gates.d.ts.map +1 -1
  174. package/dist/search/lane-gates.js +13 -7
  175. package/dist/search/lane-gates.js.map +1 -1
  176. package/dist/search/people.d.ts +2 -0
  177. package/dist/search/people.d.ts.map +1 -1
  178. package/dist/search/people.js +11 -4
  179. package/dist/search/people.js.map +1 -1
  180. package/dist/search/search.d.ts +5 -1
  181. package/dist/search/search.d.ts.map +1 -1
  182. package/dist/search/search.js +5 -1
  183. package/dist/search/search.js.map +1 -1
  184. package/dist/version.d.ts +1 -1
  185. package/dist/version.js +1 -1
  186. package/package.json +3 -3
  187. package/dist/bundle/auto-YQAECIZA.js +0 -85
  188. package/dist/bundle/chunk-KQTR6YA4.js +0 -262
  189. package/dist/bundle/command-contract-6HJ322BP.js +0 -32
  190. package/dist/bundle/entry-N4NCIQYH.js +0 -18
  191. package/dist/bundle/failure-BJEFFYH3.js +0 -65
  192. package/dist/bundle/first-screen-4XGF2NZ3.js +0 -30
  193. package/dist/bundle/mcp-REIASUJR.js +0 -90
  194. package/dist/bundle/openai-2SJCG6XM.js +0 -23
  195. package/dist/bundle/server-27KXLL4E.js +0 -61
  196. package/dist/bundle/server-TWMUWMFM.js +0 -48
  197. package/dist/bundle/store-maintenance-command-GLHRB2VZ.js +0 -47
  198. package/dist/bundle/update-QQEM73O5.js +0 -68
  199. /package/dist/bundle/{chunk-SYWHHQMC.js → chunk-G5GW3FFJ.js} +0 -0
  200. /package/dist/bundle/{chunk-ZOWQ5B33.js → chunk-IXSUVHW6.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"brief.js","sourceRoot":"","sources":["../../src/digest/brief.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brief.js","sourceRoot":"","sources":["../../src/digest/brief.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
1
  import { type Streams } from "@wirecat/cli-base";
2
2
  import type { Body } from "@wirecat/cli-core/cli";
3
3
  import type { Command } from "commander";
4
+ import { type DigestSource } from "./digests.js";
5
+ /** `--source telegram,mail`, repeatable: what the agenda reads; each one a part it can leave out. */
6
+ export declare const sourcesOf: (value: string, before?: DigestSource[]) => DigestSource[];
4
7
  export declare const sinceOf: (value: string, now?: number) => number;
5
8
  /** A past moment, as an ISO time or a date (its local midnight); it must not be in the future. */
6
9
  export declare const beforeOf: (value: string, now?: number) => number;
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/digest/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAEjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAqBxC,eAAO,MAAM,OAAO,UAAW,MAAM,mBAAqB,MAOzD,CAAA;AAED,kGAAkG;AAClG,eAAO,MAAM,QAAQ,UAAW,MAAM,mBAAqB,MAW1D,CAAA;AAED,KAAK,KAAK,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;AAE5D,8GAA8G;AAC9G,eAAO,MAAM,mBAAmB,WAAY,OAAO,SAAS,KAAK,WAAW,OAAO,OAAO,MAAM,CAAC,UAAU,KAAG,IAuD7G,CAAA"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/digest/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAEjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKxC,OAAO,EAAkB,KAAK,YAAY,EAA4B,MAAM,cAAc,CAAA;AAyB1F,qGAAqG;AACrG,eAAO,MAAM,SAAS,UAAW,MAAM,WAAU,YAAY,EAAE,KAAQ,YAAY,EAWlF,CAAA;AAED,eAAO,MAAM,OAAO,UAAW,MAAM,mBAAqB,MAOzD,CAAA;AAED,kGAAkG;AAClG,eAAO,MAAM,QAAQ,UAAW,MAAM,mBAAqB,MAW1D,CAAA;AAED,KAAK,KAAK,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;AAE5D,8GAA8G;AAC9G,eAAO,MAAM,mBAAmB,WAAY,OAAO,SAAS,KAAK,WAAW,OAAO,OAAO,MAAM,CAAC,UAAU,KAAG,IA8D7G,CAAA"}
@@ -2,14 +2,34 @@ import { CliError } from "@wirecat/cli-base";
2
2
  import { annotate } from "@wirecat/cli-base/commands";
3
3
  import { LOCAL_READ, parseDuration } from "@wirecat/cli-core/cli";
4
4
  import { itemAnswer, withStore } from "../answer.js";
5
+ import { APP } from "../app.js";
5
6
  import { positive } from "../options.js";
6
7
  import { gatherDigest, WATCH_TAG } from "./digest.js";
8
+ import { DIGEST_SOURCES, isDigest, readDefinition } from "./digests.js";
7
9
  import { digestText, fitDigest } from "./text.js";
8
10
  /** Roughly 10k tokens of mixed Russian and English: Cyrillic takes two bytes a letter and fewer letters a token. */
9
11
  const COMPACT_BYTES = 40_000;
10
12
  const FULL_BYTES = 80_000;
11
13
  /** An owed reply older than this is left to `tasks agenda` and `mail review`, which read further back. */
12
14
  const OWED_WITHIN = 7 * 86_400_000;
15
+ /** A digest's run keeps to the digest's sources even when its agent leaves out `--source`; other schedules do not. */
16
+ const scheduledSources = (env) => {
17
+ const scheduled = env[`${APP.envPrefix}_SCHEDULED`];
18
+ return scheduled && isDigest(env, scheduled) ? (readDefinition(env, scheduled)?.sources ?? []) : [];
19
+ };
20
+ /** `--source telegram,mail`, repeatable: what the agenda reads; each one a part it can leave out. */
21
+ export const sourcesOf = (value, before = []) => {
22
+ const words = value
23
+ .split(",")
24
+ .map((word) => word.trim().toLowerCase())
25
+ .filter(Boolean);
26
+ const unknown = words.filter((word) => !DIGEST_SOURCES.includes(word));
27
+ if (unknown.length)
28
+ throw new CliError("validation_error", `--source takes ${DIGEST_SOURCES.join(", ")}; not ${unknown.join(", ")}`, {
29
+ param: "source",
30
+ });
31
+ return [...new Set([...before, ...words])];
32
+ };
13
33
  export const sinceOf = (value, now = Date.now()) => {
14
34
  const since = /^\d{4}-\d{2}-\d{2}/.test(value) ? Date.parse(value) : now - parseDuration(value, "--since-time");
15
35
  if (Number.isNaN(since))
@@ -52,6 +72,8 @@ export const reviewAgendaCommand = (review, print, streams, env) => {
52
72
  .option("--since-time <time>", "how far back: hours or days (12h, 7d) or a start date (2026-11-01)", "1d")
53
73
  .option("--before-time <time>", "build it as of this past ISO time or date, for a past day's digest: --since-time counts back from it, and " +
54
74
  "what came later is left out; a chat or thread answered since reads as answered")
75
+ .option("--source <accounts>", `only these, comma-separated or repeated: ${DIGEST_SOURCES.join(", ")}; watched items, projects and proposals stay. ` +
76
+ "A digest's run reads the digest's own sources without it", sourcesOf)
55
77
  .option("--limit <n>", "items per section before the size budget", positive, 25)
56
78
  .option("--max-output-bytes <bytes>", "the text answer's size budget in bytes; 40000 with --compact, else 80000", positive)
57
79
  .option("--compact", "one line per item, shorter excerpts, the smaller budget: for an agent")
@@ -70,6 +92,7 @@ export const reviewAgendaCommand = (review, print, streams, env) => {
70
92
  limit: given.limit,
71
93
  excerpt: given.compact ? 100 : 200,
72
94
  owedWithin: OWED_WITHIN,
95
+ sources: given.source ?? scheduledSources(env),
73
96
  }));
74
97
  const digest = fitDigest(gathered, given.maxOutputBytes ?? (given.compact ? COMPACT_BYTES : FULL_BYTES));
75
98
  // Not `print` for the text: its compact renderer would draw the answer generically, without the sections.
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/digest/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/digest/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAgB,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAErD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAEjE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACrD,OAAO,EAAE,cAAc,EAAqB,QAAQ,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC1F,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAEjD,oHAAoH;AACpH,MAAM,aAAa,GAAG,MAAM,CAAA;AAC5B,MAAM,UAAU,GAAG,MAAM,CAAA;AACzB,0GAA0G;AAC1G,MAAM,WAAW,GAAG,CAAC,GAAG,UAAU,CAAA;AAYlC,sHAAsH;AACtH,MAAM,gBAAgB,GAAG,CAAC,GAAsB,EAAkB,EAAE;IAClE,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,SAAS,YAAY,CAAC,CAAA;IACnD,OAAO,SAAS,IAAI,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AACrG,CAAC,CAAA;AAED,qGAAqG;AACrG,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAa,EAAE,MAAM,GAAmB,EAAE,EAAkB,EAAE;IACtF,MAAM,KAAK,GAAG,KAAK;SAChB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SACxC,MAAM,CAAC,OAAO,CAAC,CAAA;IAClB,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE,cAAoC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;IAC7F,IAAI,OAAO,CAAC,MAAM;QAChB,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;YAC/G,KAAK,EAAE,QAAQ;SAChB,CAAC,CAAA;IACJ,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,GAAI,KAAwB,CAAC,CAAC,CAAC,CAAA;AAChE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAU,EAAE;IACjE,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,aAAa,CAAC,KAAK,EAAE,cAAc,CAAC,CAAA;IAC/G,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;QACrB,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,8CAA8C,KAAK,GAAG,EAAE;YAC7F,KAAK,EAAE,YAAY;SACpB,CAAC,CAAA;IACJ,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,kGAAkG;AAClG,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAU,EAAE;IAClE,MAAM,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC1G,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,mDAAmD,KAAK,GAAG,EAAE;YAClG,KAAK,EAAE,aAAa;SACrB,CAAC,CAAA;IACJ,IAAI,EAAE,GAAG,GAAG;QACV,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,sDAAsD,EAAE;YAC7F,KAAK,EAAE,aAAa;SACrB,CAAC,CAAA;IACJ,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAID,8GAA8G;AAC9G,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAe,EAAE,KAAY,EAAE,OAAgB,EAAE,GAAsB,EAAQ,EAAE;IACnH,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;SACxD,OAAO,CAAC,+EAA+E,CAAC;SACxF,WAAW,CACV,iGAAiG;QAC/F,GAAG,SAAS,6FAA6F;QACzG,2GAA2G;QAC3G,yGAAyG;QACzG,gFAAgF;QAChF,6GAA6G;QAC7G,uGAAuG;QACvG,4GAA4G;QAC5G,4GAA4G;QAC5G,2GAA2G;QAC3G,+GAA+G;QAC/G,2GAA2G;QAC3G,4GAA4G;QAC5G,gBAAgB,CACnB;SACA,MAAM,CAAC,qBAAqB,EAAE,oEAAoE,EAAE,IAAI,CAAC;SACzG,MAAM,CACL,sBAAsB,EACtB,4GAA4G;QAC1G,gFAAgF,CACnF;SACA,MAAM,CACL,qBAAqB,EACrB,4CAA4C,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,gDAAgD;QACnH,0DAA0D,EAC5D,SAAS,CACV;SACA,MAAM,CAAC,aAAa,EAAE,0CAA0C,EAAE,QAAQ,EAAE,EAAE,CAAC;SAC/E,MAAM,CACL,4BAA4B,EAC5B,0EAA0E,EAC1E,QAAQ,CACT;SACA,MAAM,CAAC,WAAW,EAAE,uEAAuE,CAAC;SAC5F,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC;SAC9B,MAAM,CAAC,KAAK,EAAE,KAAc,EAAE,EAAE;QAC/B,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI;YAC7B,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,0DAA0D,EAAE;gBACjG,MAAM,EAAE,iBAAiB;gBACzB,KAAK,EAAE,WAAW;aACnB,CAAC,CAAA;QACJ,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QACrF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QAC7C,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAC9C,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE;YACvB,KAAK;YACL,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;YACzC,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;YAClC,UAAU,EAAE,WAAW;YACvB,OAAO,EAAE,KAAK,CAAC,MAAM,IAAI,gBAAgB,CAAC,GAAG,CAAC;SAC/C,CAAC,CACH,CAAA;QACD,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAA;QACxG,0GAA0G;QAC1G,IAAI,KAAK,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAA;;YAC1C,OAAO,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;AACN,CAAC,CAAA"}
@@ -0,0 +1,6 @@
1
+ import { type Body } from "@wirecat/cli-core/cli";
2
+ import type { Command } from "commander";
3
+ type Print = (json: boolean | undefined, body: Body, text?: string) => void;
4
+ export declare const digestCommands: (digest: Command, print: Print, env: NodeJS.ProcessEnv) => void;
5
+ export {};
6
+ //# sourceMappingURL=digest-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digest-commands.d.ts","sourceRoot":"","sources":["../../src/digest/digest-commands.ts"],"names":[],"mappings":"AAKA,OAAO,EAIL,KAAK,IAAI,EAmBV,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAyBxC,KAAK,KAAK,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;AAoF3E,eAAO,MAAM,cAAc,WAAY,OAAO,SAAS,KAAK,OAAO,MAAM,CAAC,UAAU,KAAG,IAqPtF,CAAA"}
@@ -0,0 +1,241 @@
1
+ import { existsSync } from "node:fs";
2
+ import { CliError } from "@wirecat/cli-base";
3
+ import { annotate } from "@wirecat/cli-base/commands";
4
+ import { thisMachine } from "@wirecat/cli-core/background";
5
+ import { agentSchedule, calendarOf, environmentOf, grantsAuthority, LOCAL_READ, LOCAL_WRITE, parseRoute, pauseSchedule, queryTerms, removeSchedule, routeText, runScheduleNow, scheduleName, slotsOfAt, termField, withQuery, writeSchedule, } from "@wirecat/cli-core/cli";
6
+ import { itemAnswer, wholeList, withStore } from "../answer.js";
7
+ import { APP } from "../app.js";
8
+ import { fromAppOption, whoRuns } from "../author.js";
9
+ import { scheduleLimits } from "../config.js";
10
+ import { agentInputOf, MAIL_CLI } from "../schedule/command.js";
11
+ import { checkedBrief, readBrief, refuseAgent } from "./brief.js";
12
+ import { sourcesOf } from "./command.js";
13
+ import { briefAddress, DIGEST_PROMPT, DIGEST_SOURCES, digestNames, digestOf, digestScheduleFile, dropDefinition, MORNING_DIGEST, readDefinition, runCapOf, viewOf, writeDefinition, } from "./digests.js";
14
+ /** `--source all` and `--deliver-to none`: an edit's way to clear what an earlier one set. */
15
+ const ALL = "all";
16
+ const NONE = "none";
17
+ const usdOf = (flag, least) => (value) => {
18
+ const usd = Number(value);
19
+ if (!Number.isFinite(usd) || usd < 0 || (least === "above zero" && usd === 0))
20
+ throw new CliError("validation_error", `${flag} takes US dollars, ${least === "zero" ? "0 or more" : "more than 0"}; not "${value}"`, {
21
+ param: flag,
22
+ });
23
+ return usd;
24
+ };
25
+ const routeOf = (route, routes = []) => route === NONE ? [] : [...routes, routeText(parseRoute(route))];
26
+ const sourceOption = (value, before = []) => value.trim().toLowerCase() === ALL ? ALL : sourcesOf(value, before === ALL ? [] : before);
27
+ /** The options `add` and `edit` share; an edit replaces what each given option says and keeps the rest. */
28
+ const withDigestOptions = (command) => fromAppOption(command
29
+ .option("--title <title>", "the name the digest is shown under")
30
+ .option("--at <HH:MM>", "when it runs: HH:MM every day, or 'mon,fri 09:00' on those days; repeat it for more times, as 08:30 and 18:00", (at, all = []) => [...all, at])
31
+ .option("--source <accounts>", `what it reads, comma-separated or repeated: ${DIGEST_SOURCES.join(", ")}; ${ALL} (the default) reads everything`, sourceOption)
32
+ .option("--deliver-to <route>", `where each run is sent: telegram-bot:<profile>/<chat> or email:<profile>/<address>; repeat it for more, ${NONE} for nowhere`, routeOf)
33
+ .option("--text <text>", "your brief: what to collect, what to skip, how much; at most 4000 characters")
34
+ .option("--max-cost <usd>", "stop a run that costs more than this, in US dollars", usdOf("--max-cost", "above zero"))
35
+ .option("--max-cost-per-day <usd>", "start no run for the rest of the day once its runs cost this much, in US dollars; 0 for no cap", usdOf("--max-cost-per-day", "zero"))
36
+ .option("--json", "print JSON"));
37
+ /** The harness, model and per-run cap an existing schedule's argv was made with, so an edit keeps them. */
38
+ const kept = (schedule) => {
39
+ const { argv } = schedule;
40
+ const model = argv.indexOf("--model");
41
+ const cap = runCapOf(argv);
42
+ return {
43
+ harness: argv[1] === "exec" ? "codex" : "claude",
44
+ ...(model < 0 ? { model: "" } : { model: argv[model + 1] ?? "" }),
45
+ ...(cap === null ? {} : { maxCost: cap }),
46
+ };
47
+ };
48
+ export const digestCommands = (digest, print, env) => {
49
+ const siteOf = (command) => ({
50
+ app: APP,
51
+ system: environmentOf(command).system ?? thisMachine(),
52
+ env,
53
+ profile: "",
54
+ agentRuns: [MAIL_CLI],
55
+ limits: scheduleLimits(env),
56
+ });
57
+ // Each of these spends the owner's money, sets his timers or sends to his chats: he does it, never an agent.
58
+ const owner = async (command, question) => {
59
+ refuseAgent(env);
60
+ if ((await whoRuns(command, env, { question })) !== "owner")
61
+ throw new CliError("permission_error", "a digest spends your money and writes to your chats; you change or run it at a terminal or in WireCat Desktop", { reason: "digest.owner-only" });
62
+ };
63
+ const shown = async (name) => viewOf(env, name, { brief: (await readBrief(env, name)) ?? null, limits: scheduleLimits(env) });
64
+ const say = async (json, name, line) => print(json, itemAnswer(await shown(name)), line);
65
+ const saveBrief = async (name, text) => {
66
+ if (text === undefined)
67
+ return;
68
+ const body = checkedBrief(text);
69
+ await withStore(env, async (store) => store.templates.save(briefAddress(name), body, "memo"));
70
+ };
71
+ const listQuery = {
72
+ entity: "digest",
73
+ backend: "native",
74
+ fields: [termField("name", "kw", "name:weekly")],
75
+ };
76
+ withQuery(annotate(digest.command("list"), { effects: LOCAL_READ }).summary("your digests: when each runs, what it reads, where it goes, last and next run"), listQuery)
77
+ .option("--json", "print JSON")
78
+ .action(async (words, given) => {
79
+ const wanted = queryTerms(words, listQuery, "digest list").get("name");
80
+ const names = digestNames(env).filter((name) => wanted === undefined || name === wanted);
81
+ const items = await Promise.all(names.map(shown));
82
+ print(given.json, wholeList("digest list", items), items.length === 0
83
+ ? "No digests. `memo digest add <name> --title … --at 08:30` makes one."
84
+ : items
85
+ .map((one) => [
86
+ one.name,
87
+ one.title,
88
+ one.times.length
89
+ ? `${one.weekdays.length ? one.weekdays.join(",") : "daily"} ${one.times.join(", ")}`
90
+ : "no set time",
91
+ one.scheduled ? "on" : "paused",
92
+ one.sources.length ? `reads ${one.sources.join(", ")}` : "reads everything",
93
+ one.routes.length ? `to ${one.routes.join(", ")}` : "sent nowhere",
94
+ one.last ? `last ${one.last.at.slice(0, 16).replace("T", " ")} ${one.last.ok ? "ok" : "failed"}` : "",
95
+ ]
96
+ .filter(Boolean)
97
+ .join(" "))
98
+ .join("\n"));
99
+ });
100
+ withDigestOptions(grantsAuthority(annotate(digest.command("add"), { effects: LOCAL_WRITE }))
101
+ .summary("make a digest: its times, sources, routes and brief, on its timer")
102
+ .description("make a digest: an agent that runs memo's morning-digest skill at the given times, reading from its previous " +
103
+ "time (a weekly one reads the week) and only the sources given, and sends what it writes along the routes " +
104
+ "given. It runs read only. Each run is a paid model call; only you make one")
105
+ .argument("<name>", "lowercase letters, digits and dashes")
106
+ .option("--paused", "make it without putting it on its timer; `memo digest resume` does")).action(async (name, given, command) => {
107
+ const digestName = scheduleName(name);
108
+ if (existsSync(digestScheduleFile(env, digestName)))
109
+ throw new CliError("validation_error", `${digestName} already exists; \`memo digest edit ${digestName}\` changes it`, {
110
+ reason: "digest.exists",
111
+ });
112
+ if (!given.at?.length)
113
+ throw new CliError("validation_error", "say when: --at HH:MM, or --at 'mon 09:00'; repeat it for more times", {
114
+ param: "at",
115
+ });
116
+ const when = calendarOf(given.at.flatMap(slotsOfAt));
117
+ if (given.text !== undefined)
118
+ checkedBrief(given.text);
119
+ await owner(command, `make the digest ${digestName}, a paid model call at each of its times?`);
120
+ const site = siteOf(command);
121
+ const schedule = agentSchedule(site, {
122
+ name: digestName,
123
+ harness: "claude",
124
+ prompt: DIGEST_PROMPT,
125
+ when,
126
+ ...(given.maxCost ? { maxCost: given.maxCost } : {}),
127
+ ...(given.maxCostPerDay === undefined ? {} : { maxCostPerDay: given.maxCostPerDay }),
128
+ ...(given.deliverTo?.length ? { to: given.deliverTo } : {}),
129
+ ...(given.paused ? { paused: true } : {}),
130
+ });
131
+ writeDefinition(env, {
132
+ name: digestName,
133
+ title: given.title?.trim() || digestName,
134
+ sources: given.source === ALL || given.source === undefined ? [] : given.source,
135
+ createdAt: new Date().toISOString(),
136
+ });
137
+ await writeSchedule(site, schedule);
138
+ await saveBrief(digestName, given.text);
139
+ await say(given.json, digestName, `Added ${digestName}${given.paused ? ", paused" : ""}.`);
140
+ });
141
+ withDigestOptions(grantsAuthority(annotate(digest.command("edit"), { effects: LOCAL_WRITE }))
142
+ .summary("change a digest; each option given replaces what it says, the rest stays")
143
+ .description(`change a digest: each option given replaces what it set before (--at all its times, --source all its sources, ` +
144
+ `--deliver-to all its routes), and the rest stays as it was. --source ${ALL} reads everything again, ` +
145
+ `--deliver-to ${NONE} sends nowhere. A paused digest stays paused. Only you change one`)
146
+ .argument("<name>", "the digest's name, as `memo digest list` shows it")).action(async (name, given, command) => {
147
+ const { schedule } = digestOf(env, name);
148
+ if (!schedule.argv.includes(DIGEST_PROMPT))
149
+ throw new CliError("validation_error", `${name} runs a prompt of its own, made with \`memo schedule agent\`; an edit here would replace it — change it there`, { reason: "digest.own-prompt" });
150
+ const when = given.at?.length ? calendarOf(given.at.flatMap(slotsOfAt)) : schedule.when;
151
+ if (given.text !== undefined)
152
+ checkedBrief(given.text);
153
+ await owner(command, `change the digest ${name}?`);
154
+ const site = siteOf(command);
155
+ const previous = kept(schedule);
156
+ const maxCost = given.maxCost ?? previous.maxCost;
157
+ const to = given.deliverTo ?? schedule.to ?? [];
158
+ const maxCostPerDay = given.maxCostPerDay ?? schedule.maxCostPerDay;
159
+ const rebuilt = agentSchedule(site, {
160
+ name,
161
+ harness: previous.harness,
162
+ prompt: DIGEST_PROMPT,
163
+ when,
164
+ ...(previous.model === undefined ? {} : { model: previous.model }),
165
+ ...(maxCost ? { maxCost } : {}),
166
+ ...(maxCostPerDay === undefined ? {} : { maxCostPerDay }),
167
+ ...(schedule.notify ? { notify: schedule.notify } : {}),
168
+ ...(to.length ? { to } : {}),
169
+ ...(schedule.paused ? { paused: true } : {}),
170
+ });
171
+ const definition = readDefinition(env, name);
172
+ if (given.title !== undefined || given.source !== undefined || definition) {
173
+ writeDefinition(env, {
174
+ name,
175
+ title: given.title?.trim() || definition?.title || (name === MORNING_DIGEST ? "Morning digest" : name),
176
+ sources: given.source === ALL ? [] : (given.source ?? definition?.sources ?? []),
177
+ createdAt: definition?.createdAt || schedule.createdAt,
178
+ });
179
+ }
180
+ await writeSchedule(site, { ...rebuilt, createdAt: schedule.createdAt });
181
+ await saveBrief(name, given.text);
182
+ await say(given.json, name, `Changed ${name}.`);
183
+ });
184
+ fromAppOption(annotate(digest.command("run"), { effects: LOCAL_WRITE }))
185
+ .summary("build a digest now and send it along its routes, or only some, or none")
186
+ .description("build a digest now, as its timer would, paused or not, and keep the run with its others; it is sent along " +
187
+ "its routes, only along those --deliver-to names (each one of its own), or with --no-notify nowhere. A paid " +
188
+ "model call: the day's cost cap holds, and only you run it")
189
+ .argument("<name>", "the digest's name, as `memo digest list` shows it")
190
+ .option("--no-notify", "keep it here: send it nowhere")
191
+ .option("--deliver-to <route>", "send it only along this one of the digest's routes; repeat it for more", (route, routes = []) => [...routes, routeText(parseRoute(route))])
192
+ .option("--json", "print JSON")
193
+ .action(async (name, given, command) => {
194
+ const { file } = digestOf(env, name);
195
+ if (!given.notify && given.deliverTo)
196
+ throw new CliError("validation_error", "--no-notify sends nothing; leave out --deliver-to, or --no-notify", {
197
+ param: "deliver-to",
198
+ });
199
+ await owner(command, `run the digest ${name} now, a paid model call?`);
200
+ const routes = given.notify ? given.deliverTo : [];
201
+ const last = await runScheduleNow(command, siteOf(command), file, {
202
+ agentInput: agentInputOf(env),
203
+ ...(routes ? { routes } : {}),
204
+ });
205
+ if (!("exitCode" in last)) {
206
+ print(given.json, itemAnswer({ name, skipped: true, ...last.skipped }), `${name}: skipped — ${last.skipped.why}`);
207
+ return;
208
+ }
209
+ if (last.exitCode !== 0)
210
+ process.exitCode = 1;
211
+ print(given.json, itemAnswer({ name, ...last }), `${name}: ${last.exitCode === 0 ? "built" : `failed (exit ${last.exitCode})`} — ${last.output}`);
212
+ });
213
+ for (const [verb, paused] of [
214
+ ["pause", true],
215
+ ["resume", false],
216
+ ])
217
+ fromAppOption(grantsAuthority(annotate(digest.command(verb), { effects: LOCAL_WRITE })))
218
+ .summary(paused
219
+ ? "take a digest off its timer; it stays, and run still builds it"
220
+ : "put a paused digest back on its timer")
221
+ .argument("<name>", "the digest's name, as `memo digest list` shows it")
222
+ .option("--json", "print JSON")
223
+ .action(async (name, given, command) => {
224
+ digestOf(env, name);
225
+ await owner(command, `${verb} the digest ${name}?`);
226
+ await pauseSchedule(siteOf(command), name, paused);
227
+ await say(given.json, name, paused ? `Paused ${name}.` : `Resumed ${name}.`);
228
+ });
229
+ fromAppOption(grantsAuthority(annotate(digest.command("remove"), { effects: LOCAL_WRITE })))
230
+ .summary("remove a digest and its timer; its past runs, brief and templates stay")
231
+ .argument("<name>", "the digest's name, as `memo digest list` shows it")
232
+ .option("--json", "print JSON")
233
+ .action(async (name, given, command) => {
234
+ digestOf(env, name);
235
+ await owner(command, `remove the digest ${name}?`);
236
+ await removeSchedule(siteOf(command), name);
237
+ dropDefinition(env, name);
238
+ print(given.json, itemAnswer({ name, removed: true }), `Removed ${name}; its past runs stay.`);
239
+ });
240
+ };
241
+ //# sourceMappingURL=digest-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digest-commands.js","sourceRoot":"","sources":["../../src/digest/digest-commands.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { type MessageStore } from "@wirecat/cli-core/store";
2
+ import type { DigestSource } from "./digests.js";
2
3
  import { type Health } from "./sync-health.js";
3
4
  import { type TaskCounts } from "./tasks.js";
4
5
  /** The tag that puts a chat, mail thread, person, project or meeting series on the owner's watch list. */
@@ -80,13 +81,15 @@ export interface DigestOptions {
80
81
  excerpt: number;
81
82
  /** ms: an owed reply older than this is left to `tasks agenda` and `mail review`. */
82
83
  owedWithin: number;
83
- /** Tasks created after this are new; the previous morning-digest run when left out. */
84
+ /** Tasks created after this are new; the previous run of the running digest when left out. */
84
85
  newSince?: string;
86
+ /** Only these parts: messengers by provider, mail, meetings, tasks. Empty or absent: all of them. */
87
+ sources?: readonly DigestSource[];
85
88
  }
86
89
  /**
87
90
  * What the morning needs from the store alone, no model call and no network: the watch list, replies owed, new
88
91
  * personal mail, meetings that ended, tasks due, projects that moved, proposals waiting. Every item names its
89
92
  * reference, so an agent reads further only where it points.
90
93
  */
91
- export declare const gatherDigest: (store: MessageStore, env: NodeJS.ProcessEnv, { since, now: clock, until, limit, excerpt, owedWithin, newSince }: DigestOptions) => Promise<Digest>;
94
+ export declare const gatherDigest: (store: MessageStore, env: NodeJS.ProcessEnv, { since, now: clock, until, limit, excerpt, owedWithin, newSince, sources: only }: DigestOptions) => Promise<Digest>;
92
95
  //# sourceMappingURL=digest.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"digest.d.ts","sourceRoot":"","sources":["../../src/digest/digest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"digest.d.ts","sourceRoot":"","sources":["../../src/digest/digest.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,14 @@ import { digestRunBefore, gatherTasks, previousDigestAt } from "./tasks.js";
13
13
  export const WATCH_TAG = "watch";
14
14
  export const SECTIONS = ["watch", "owed", "mail", "meetings", "tasks", "projects", "sources", "proposals"];
15
15
  export const SCOPE_KINDS = ["telegram", "max", "whatsapp", "mail", "meeting", "task"];
16
+ /** The digest source an account belongs to; one that is none of them (a CRM) stays in. */
17
+ const sourceOf = (provider) => MESSENGERS.has(provider)
18
+ ? provider
19
+ : provider === "email"
20
+ ? "mail"
21
+ : kindOf(provider) === "meetings"
22
+ ? "meetings"
23
+ : undefined;
16
24
  const DAY = 86_400_000;
17
25
  const MESSENGERS = new Set(["telegram", "max", "whatsapp"]);
18
26
  const HEALTH_ORDER = HEALTH_REASONS;
@@ -111,13 +119,18 @@ const personal = (newest) => !newest.bulk && !newest.list && !newest.envelope &&
111
119
  * personal mail, meetings that ended, tasks due, projects that moved, proposals waiting. Every item names its
112
120
  * reference, so an agent reads further only where it points.
113
121
  */
114
- export const gatherDigest = async (store, env, { since, now: clock = Date.now(), until, limit, excerpt, owedWithin, newSince }) => {
122
+ export const gatherDigest = async (store, env, { since, now: clock = Date.now(), until, limit, excerpt, owedWithin, newSince, sources: only = [] }) => {
115
123
  const now = until ?? clock;
116
124
  const by = (at) => until === undefined || at <= until;
117
125
  const upTo = (found) => found.filter((one) => by(Date.parse(one.item.at)));
118
126
  const window = (now - since) / DAY;
119
127
  const days = `${Math.max(1, Math.ceil(window))}d`;
120
- const accounts = await scopedAccounts(store, env);
128
+ const reads = (source) => only.length === 0 || only.includes(source);
129
+ const scoped = await scopedAccounts(store, env);
130
+ const accounts = scoped.filter((key) => {
131
+ const source = sourceOf(key.provider);
132
+ return source === undefined || reads(source);
133
+ });
121
134
  const messengers = accounts.filter((key) => MESSENGERS.has(key.provider));
122
135
  const mailboxes = accounts.filter((key) => key.provider === "email");
123
136
  const owedSince = Math.min(since, now - owedWithin);
@@ -320,7 +333,7 @@ export const gatherDigest = async (store, env, { since, now: clock = Date.now(),
320
333
  }
321
334
  }
322
335
  const meetings = [];
323
- for (const meeting of await store.meetings.meetings({ since, limit: 100 })) {
336
+ for (const meeting of reads("meetings") ? await store.meetings.meetings({ since, limit: 100 }) : []) {
324
337
  const ended = meeting.endedAt ?? meeting.startedAt;
325
338
  if (ended === null || ended < since || meeting.deletedAt !== null)
326
339
  continue;
@@ -346,11 +359,19 @@ export const gatherDigest = async (store, env, { since, now: clock = Date.now(),
346
359
  },
347
360
  });
348
361
  }
349
- const hot = await gatherTasks(store, [...messengers, ...mailboxes], {
350
- now,
351
- newSince: newSince ?? (until === undefined ? previousDigestAt(env, now) : digestRunBefore(env, until)),
352
- ...(until === undefined ? {} : { until }),
353
- });
362
+ const tasksSince = newSince ?? (until === undefined ? previousDigestAt(env, now) : digestRunBefore(env, until));
363
+ const hot = reads("tasks")
364
+ ? // Tasks taken from chats and mail count under tasks, read or not their source.
365
+ await gatherTasks(store, scoped.filter((key) => MESSENGERS.has(key.provider) || key.provider === "email"), {
366
+ now,
367
+ newSince: tasksSince,
368
+ ...(until === undefined ? {} : { until }),
369
+ })
370
+ : {
371
+ tasks: [],
372
+ counts: { overdue: 0, today: 0, tomorrow: 0, new: 0, newSince: tasksSince, undated: 0 },
373
+ accounts: 0,
374
+ };
354
375
  const tasks = hot.tasks.map(({ task, groups, askedBy, for: doer }) => ({
355
376
  item: {
356
377
  ref: task.ref,