@wirecat/cli-memo 0.131.61 → 0.131.63
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.
- package/dist/bin/memo.js +2 -2
- package/dist/bundle/{all-profiles-WPBMSWJF.js → all-profiles-L6EBORCV.js} +5 -5
- package/dist/bundle/{anthropic-FZRVISSX.js → anthropic-42PADP4V.js} +2 -2
- package/dist/bundle/{app-server-QGIZPU4R.js → app-server-QBJG7OGQ.js} +35 -35
- package/dist/bundle/auto-LGA3VXKQ.js +85 -0
- package/dist/bundle/{bun-AO76624P.js → bun-NYSNYHAD.js} +2 -2
- package/dist/bundle/{bun-sqlite-HYBE66QU.js → bun-sqlite-B46U7KI7.js} +2 -2
- package/dist/bundle/{chunk-233N77WN.js → chunk-2UCLF4AO.js} +273 -272
- package/dist/bundle/{chunk-YRHLPKTG.js → chunk-2XVXF4RW.js} +2 -2
- package/dist/bundle/{chunk-IZZU4NS6.js → chunk-347UBASY.js} +3 -3
- package/dist/bundle/{chunk-RRHSJ7CR.js → chunk-37E74SKW.js} +62 -62
- package/dist/bundle/{chunk-7DPHHUSZ.js → chunk-3ZXWLFUG.js} +21 -21
- package/dist/bundle/{chunk-6YK3RZZJ.js → chunk-4BKSE3CG.js} +4 -4
- package/dist/bundle/{chunk-WFDGEREJ.js → chunk-4GTZSCUE.js} +2 -2
- package/dist/bundle/{chunk-OFERGS4J.js → chunk-4SUROBD4.js} +2 -2
- package/dist/bundle/{chunk-5ZVWDMDT.js → chunk-5D7BPC33.js} +1 -1
- package/dist/bundle/{chunk-CTRVHHBK.js → chunk-5Q534L4I.js} +5 -5
- package/dist/bundle/{chunk-RRPUM4RS.js → chunk-6OZ2WI7Y.js} +2 -2
- package/dist/bundle/{chunk-B4VCZOLF.js → chunk-724DPWN6.js} +1 -1
- package/dist/bundle/{chunk-4WKZ3UIZ.js → chunk-A524HPDV.js} +1 -1
- package/dist/bundle/{chunk-2Q55K5HY.js → chunk-ACG5QN77.js} +2 -2
- package/dist/bundle/{chunk-WMRR2SNG.js → chunk-B3SERZMP.js} +1 -1
- package/dist/bundle/{chunk-XT7EJLA4.js → chunk-BOMHJR2E.js} +4 -4
- package/dist/bundle/{chunk-SSX6S3EG.js → chunk-DKO7WEXJ.js} +1 -1
- package/dist/bundle/{chunk-YVCNJKDA.js → chunk-E5JQFEIQ.js} +42 -42
- package/dist/bundle/{chunk-LIW42UCX.js → chunk-EGI6JHIA.js} +9 -9
- package/dist/bundle/{chunk-2UXFM5GE.js → chunk-FC5PK6M6.js} +12 -12
- package/dist/bundle/{chunk-HLTGPK6P.js → chunk-FG4Q6T72.js} +4 -4
- package/dist/bundle/{chunk-ETYD55QD.js → chunk-FH4P5UQA.js} +3 -3
- package/dist/bundle/{chunk-7CKXTTZG.js → chunk-FWRBJAQZ.js} +2 -2
- package/dist/bundle/{chunk-F6E7DSJO.js → chunk-GNHDE7FH.js} +1738 -32
- package/dist/bundle/{chunk-6NHJ4TTJ.js → chunk-HGNWJJDT.js} +336 -335
- package/dist/bundle/{chunk-OQSOQYSQ.js → chunk-HKC7GDJD.js} +4 -4
- package/dist/bundle/{chunk-XYFYZP2N.js → chunk-I5L7MLZ6.js} +1 -1
- package/dist/bundle/{chunk-KZRBIHQL.js → chunk-K4WCDPDL.js} +5 -5
- package/dist/bundle/{chunk-3FPF5DBU.js → chunk-K5VF47E2.js} +5 -5
- package/dist/bundle/{chunk-K6FQVROA.js → chunk-LK6D26RK.js} +21 -21
- package/dist/bundle/{chunk-6AEQACVV.js → chunk-MWAXS4BX.js} +7 -7
- package/dist/bundle/{chunk-D4PK5OXW.js → chunk-NZJUMLTD.js} +1 -1
- package/dist/bundle/{chunk-UTUUXAPS.js → chunk-O2NQCWRM.js} +28 -28
- package/dist/bundle/{chunk-35OBIX5A.js → chunk-OXBETHGN.js} +8 -8
- package/dist/bundle/{chunk-OIHKFGHK.js → chunk-PKUBC2ME.js} +3 -3
- package/dist/bundle/{chunk-7ETYPYIN.js → chunk-Q3VEUHC7.js} +12 -12
- package/dist/bundle/{chunk-RT476OFI.js → chunk-RGZUDHAQ.js} +7 -7
- package/dist/bundle/{chunk-UTSMQ7KI.js → chunk-RLX5SC2X.js} +1 -1
- package/dist/bundle/{chunk-PSYZ33UQ.js → chunk-RP6VV35S.js} +1 -1
- package/dist/bundle/{chunk-R7ZD7TNI.js → chunk-RSG7BRXI.js} +1 -1
- package/dist/bundle/{chunk-37ILRM2G.js → chunk-RTLQHLHG.js} +4 -4
- package/dist/bundle/{chunk-4HLYKLGJ.js → chunk-SIBQ34LX.js} +1 -1
- package/dist/bundle/{chunk-JAJSTFBB.js → chunk-SIJA2UYC.js} +6 -6
- package/dist/bundle/{chunk-MQCBJGXA.js → chunk-SJ55SMBE.js} +9 -9
- package/dist/bundle/{chunk-I6LNI45S.js → chunk-SOQGV3ZM.js} +5 -5
- package/dist/bundle/{chunk-5SD4CV2D.js → chunk-TBSWOVM3.js} +571 -293
- package/dist/bundle/{chunk-STXMSLU6.js → chunk-TKPIS4G2.js} +1 -1
- package/dist/bundle/{chunk-XU7UER3B.js → chunk-TSKGEK2S.js} +10 -10
- package/dist/bundle/{chunk-2VMZLQ5K.js → chunk-V7TJSYFK.js} +2 -2
- package/dist/bundle/{chunk-KGZM5WYK.js → chunk-VTKLHYCZ.js} +4 -4
- package/dist/bundle/{chunk-7E46JN6V.js → chunk-VX4HNQLN.js} +2 -2
- package/dist/bundle/{chunk-OEPBIWHI.js → chunk-WDWKG7FJ.js} +150 -150
- package/dist/bundle/{chunk-OWVHNTY6.js → chunk-WDZOEBTE.js} +6 -6
- package/dist/bundle/{chunk-7NKBX7FC.js → chunk-XVREIQ2N.js} +2 -2
- package/dist/bundle/chunk-YVJAD5E7.js +268 -0
- package/dist/bundle/{chunk-Y264FW55.js → chunk-ZUQXDJ7A.js} +1 -1
- package/dist/bundle/{command-contract-4TGN6GSP.js → command-contract-SIXWLKAS.js} +11 -11
- package/dist/bundle/{decode-S3PPQHID.js → decode-2Z4GCIGA.js} +2 -2
- package/dist/bundle/{echarts-AH6U7X2S.js → echarts-JADCSUD7.js} +2 -2
- package/dist/bundle/{embed-4NSZECMB.js → embed-ZLEPINEK.js} +3 -3
- package/dist/bundle/{embedder-EGRA7YEY.js → embedder-E3DHPZCK.js} +6 -6
- package/dist/bundle/{entry-O3V72WZP.js → entry-SFLEGFSN.js} +4 -4
- package/dist/bundle/failure-OGSLUNT6.js +65 -0
- package/dist/bundle/{first-run-S7RRDIGX.js → first-run-ZKDGFY6P.js} +5 -5
- package/dist/bundle/{first-screen-YKJAQUVE.js → first-screen-IQEU7XF2.js} +12 -12
- package/dist/bundle/{instructions-ETUUZKBM.js → instructions-ECXOBMWS.js} +1 -1
- package/dist/bundle/{mcp-J3K7RC5W.js → mcp-Y4XMDC5Q.js} +35 -35
- package/dist/bundle/memo.js +6 -6
- package/dist/bundle/{node-O4XVOEGO.js → node-A6363DJ4.js} +2 -2
- package/dist/bundle/{node-sqlite-PC3K43U7.js → node-sqlite-FA2P77PW.js} +3 -3
- package/dist/bundle/{oauth-MBJUEG2Z.js → oauth-DBGARGR7.js} +4 -4
- package/dist/bundle/{open-5FAYV6JM.js → open-5YYG2VWH.js} +2 -2
- package/dist/bundle/{openai-57CRSGLH.js → openai-BPVP7TZ7.js} +7 -7
- package/dist/bundle/{process-NAW4COYH.js → process-DGPZRHQA.js} +1 -1
- package/dist/bundle/{program-CFJAGFYD.js → program-ZHLCEVWB.js} +618 -290
- package/dist/bundle/{prompt-FT2MMVS7.js → prompt-NTAZWPWA.js} +2 -2
- package/dist/bundle/{recognize-PEYPOI3Q.js → recognize-OGEP5VD3.js} +1 -1
- package/dist/bundle/{remote-FQAXACFW.js → remote-DER2PFH6.js} +4 -4
- package/dist/bundle/{rerank-4KEB4X6T.js → rerank-PB5ACFHS.js} +4 -4
- package/dist/bundle/{serve-LCTIHO37.js → serve-KNEY4BXK.js} +6 -6
- package/dist/bundle/{server-XQLRMM73.js → server-I5BPRS5C.js} +55 -52
- package/dist/bundle/server-IQILK5YP.js +61 -0
- package/dist/bundle/server-NKI7SVK5.js +48 -0
- package/dist/bundle/{state-YF4M4RHC.js → state-JMCWHHZM.js} +3 -3
- package/dist/bundle/{store-EQEMYMCC.js → store-6H4FPFTX.js} +9 -9
- package/dist/bundle/store-maintenance-command-IFVWSQMJ.js +47 -0
- package/dist/bundle/update-YMILPFRY.js +68 -0
- package/dist/config-issues.d.ts +4 -1
- package/dist/config-issues.d.ts.map +1 -1
- package/dist/config-issues.js +6 -2
- package/dist/config-issues.js.map +1 -1
- package/dist/contract-overrides/search.js +2 -2
- package/dist/contract-overrides/search.js.map +1 -1
- package/dist/digest/command.d.ts.map +1 -1
- package/dist/digest/command.js +11 -7
- package/dist/digest/command.js.map +1 -1
- package/dist/digest/digest.d.ts +29 -4
- package/dist/digest/digest.d.ts.map +1 -1
- package/dist/digest/digest.js +124 -39
- package/dist/digest/digest.js.map +1 -1
- package/dist/digest/sync-health.d.ts +51 -0
- package/dist/digest/sync-health.d.ts.map +1 -0
- package/dist/digest/sync-health.js +116 -0
- package/dist/digest/sync-health.js.map +1 -0
- package/dist/digest/tasks.d.ts +38 -0
- package/dist/digest/tasks.d.ts.map +1 -0
- package/dist/digest/tasks.js +108 -0
- package/dist/digest/tasks.js.map +1 -0
- package/dist/digest/text.d.ts.map +1 -1
- package/dist/digest/text.js +9 -2
- package/dist/digest/text.js.map +1 -1
- package/dist/knowledge/messenger-sync.d.ts +5 -0
- package/dist/knowledge/messenger-sync.d.ts.map +1 -1
- package/dist/knowledge/messenger-sync.js +12 -9
- package/dist/knowledge/messenger-sync.js.map +1 -1
- package/dist/mcp/catalogue.d.ts.map +1 -1
- package/dist/mcp/catalogue.js +5 -3
- package/dist/mcp/catalogue.js.map +1 -1
- package/dist/mcp/granted.d.ts +13 -0
- package/dist/mcp/granted.d.ts.map +1 -0
- package/dist/mcp/granted.js +19 -0
- package/dist/mcp/granted.js.map +1 -0
- package/dist/search/command.d.ts.map +1 -1
- package/dist/search/command.js +19 -7
- package/dist/search/command.js.map +1 -1
- package/dist/search/lane-gates.d.ts +33 -0
- package/dist/search/lane-gates.d.ts.map +1 -0
- package/dist/search/lane-gates.js +65 -0
- package/dist/search/lane-gates.js.map +1 -0
- package/dist/search/search.d.ts +5 -2
- package/dist/search/search.d.ts.map +1 -1
- package/dist/search/search.js +24 -2
- package/dist/search/search.js.map +1 -1
- package/dist/show/command.d.ts +3 -1
- package/dist/show/command.d.ts.map +1 -1
- package/dist/show/command.js +28 -3
- package/dist/show/command.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -2
- package/skills/morning-digest/SKILL.md +24 -10
- package/dist/bundle/auto-5VPCO4DD.js +0 -85
- package/dist/bundle/chunk-3FDJSMLJ.js +0 -1900
- package/dist/bundle/failure-CFGWWTV5.js +0 -65
- package/dist/bundle/server-AQTWRRAJ.js +0 -61
- package/dist/bundle/server-JIFODLCU.js +0 -48
- package/dist/bundle/store-maintenance-command-7IC3LTYY.js +0 -47
- package/dist/bundle/update-T237KLFA.js +0 -68
- /package/dist/bundle/{chunk-GFNWVGLD.js → chunk-C3XNJQD7.js} +0 -0
|
@@ -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;AAoBxC,eAAO,MAAM,OAAO,UAAW,MAAM,mBAAqB,MAOzD,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,
|
|
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;AAoBxC,eAAO,MAAM,OAAO,UAAW,MAAM,mBAAqB,MAOzD,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,IA8C7G,CAAA"}
|
package/dist/digest/command.js
CHANGED
|
@@ -23,13 +23,17 @@ export const reviewAgendaCommand = (review, print, streams, env) => {
|
|
|
23
23
|
annotate(review.command("agenda"), { effects: LOCAL_READ })
|
|
24
24
|
.summary("the morning digest: watch list, owed replies, mail, meetings, tasks, projects")
|
|
25
25
|
.description("the morning digest, from the store alone with no model call: everything new in what you tagged " +
|
|
26
|
-
`${WATCH_TAG} (chats, mail threads, people, projects, a meeting's series), replies you owe
|
|
27
|
-
"personal mail, new personal mail, meetings that ended, tasks
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
26
|
+
`${WATCH_TAG} (chats, mail threads, people, projects, a meeting's series), replies you owe to people in ` +
|
|
27
|
+
"messengers and personal mail (not bots or service chats), new personal mail, meetings that ended, tasks, " +
|
|
28
|
+
"projects that moved, proposals waiting. Tasks are the open ones created since the last morning-digest run (a " +
|
|
29
|
+
"day back when none ran) and those overdue, due today or due tomorrow, each with who asked and who does it. " +
|
|
30
|
+
"Replies owed reach back 7 days; owed mail lists only senders you know (linked to a person with other " +
|
|
31
|
+
"identities, or written to before), and mail from new senders is one count with the command that lists it. " +
|
|
32
|
+
"Each item has its reference, who, when, one line of text and why it is there; a section cut by --limit or " +
|
|
33
|
+
"--max-output-bytes says how many it left out and the command that reads them. `scope` says what was read " +
|
|
34
|
+
"(the window, sources, counts), `tasks` counts each task group, and `health` names each account whose sync " +
|
|
35
|
+
"failed, that nothing syncs, or that is quiet for longer than usual, so an unsynced account does not read " +
|
|
36
|
+
"as a quiet day")
|
|
33
37
|
.option("--since-time <time>", "how far back: hours or days (12h, 7d) or a start date (2026-11-01)", "1d")
|
|
34
38
|
.option("--limit <n>", "items per section before the size budget", positive, 25)
|
|
35
39
|
.option("--max-output-bytes <bytes>", "the text answer's size budget in bytes; 40000 with --compact, else 80000", positive)
|
|
@@ -1 +1 @@
|
|
|
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,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACrD,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;AAUlC,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;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,
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/digest/command.ts"],"names":[],"mappings":"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"}
|
package/dist/digest/digest.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { MessageStore } from "@wirecat/cli-core/store";
|
|
2
|
+
import { type Health } from "./sync-health.js";
|
|
3
|
+
import { type TaskCounts } from "./tasks.js";
|
|
2
4
|
/** The tag that puts a chat, mail thread, person, project or meeting series on the owner's watch list. */
|
|
3
5
|
export declare const WATCH_TAG = "watch";
|
|
4
6
|
export interface DigestItem {
|
|
@@ -8,6 +10,10 @@ export interface DigestItem {
|
|
|
8
10
|
/** One line of what was written, quoted as data. */
|
|
9
11
|
excerpt: string | null;
|
|
10
12
|
why: string;
|
|
13
|
+
/** A task's: when it is due, `null` for none. */
|
|
14
|
+
due?: string | null;
|
|
15
|
+
/** A task's: who does it. */
|
|
16
|
+
for?: string | null;
|
|
11
17
|
}
|
|
12
18
|
export interface DigestSection {
|
|
13
19
|
name: SectionName;
|
|
@@ -26,18 +32,35 @@ export declare const SECTIONS: readonly ["watch", "owed", "mail", "meetings", "t
|
|
|
26
32
|
export type SectionName = (typeof SECTIONS)[number];
|
|
27
33
|
export interface Coverage {
|
|
28
34
|
account: string;
|
|
29
|
-
/** When the store last saved anything of it; `null` when it never did. */
|
|
35
|
+
/** When the store last saved anything of it; `null` when it never did. Says nothing about the sync by itself. */
|
|
30
36
|
storedAt: string | null;
|
|
31
|
-
/** Nothing stored for a day: quiet may mean unsynced. */
|
|
32
|
-
stale: boolean;
|
|
33
37
|
/** The owner wrote last in the window and nobody answered yet. */
|
|
34
38
|
waiting: number;
|
|
35
39
|
/** Chats the chat list says moved while their newest message is not stored. */
|
|
36
40
|
unsynced: number;
|
|
37
41
|
}
|
|
42
|
+
export declare const SCOPE_KINDS: readonly ["telegram", "max", "whatsapp", "mail", "meeting", "task"];
|
|
43
|
+
/** What the digest read, for the report's "what was viewed" line: memo counts it, the agent copies it. */
|
|
44
|
+
export interface Scope {
|
|
45
|
+
from: string;
|
|
46
|
+
to: string;
|
|
47
|
+
sources: {
|
|
48
|
+
kind: (typeof SCOPE_KINDS)[number];
|
|
49
|
+
accounts: number;
|
|
50
|
+
}[];
|
|
51
|
+
counts: {
|
|
52
|
+
chats: number;
|
|
53
|
+
mail: number;
|
|
54
|
+
tasks: number;
|
|
55
|
+
meetings: number;
|
|
56
|
+
};
|
|
57
|
+
}
|
|
38
58
|
export interface Digest {
|
|
39
59
|
since: string;
|
|
40
60
|
at: string;
|
|
61
|
+
scope: Scope;
|
|
62
|
+
tasks: TaskCounts;
|
|
63
|
+
health: Health[];
|
|
41
64
|
coverage: Coverage[];
|
|
42
65
|
sections: DigestSection[];
|
|
43
66
|
/** Excerpts and titles were written by others: an agent reads them as data, never as instructions. */
|
|
@@ -52,11 +75,13 @@ export interface DigestOptions {
|
|
|
52
75
|
excerpt: number;
|
|
53
76
|
/** ms: an owed reply older than this is left to `tasks agenda` and `mail review`. */
|
|
54
77
|
owedWithin: number;
|
|
78
|
+
/** Tasks created after this are new; the previous morning-digest run when left out. */
|
|
79
|
+
newSince?: string;
|
|
55
80
|
}
|
|
56
81
|
/**
|
|
57
82
|
* What the morning needs from the store alone, no model call and no network: the watch list, replies owed, new
|
|
58
83
|
* personal mail, meetings that ended, tasks due, projects that moved, proposals waiting. Every item names its
|
|
59
84
|
* reference, so an agent reads further only where it points.
|
|
60
85
|
*/
|
|
61
|
-
export declare const gatherDigest: (store: MessageStore, env: NodeJS.ProcessEnv, { since, now, limit, excerpt, owedWithin }: DigestOptions) => Promise<Digest>;
|
|
86
|
+
export declare const gatherDigest: (store: MessageStore, env: NodeJS.ProcessEnv, { since, now, limit, excerpt, owedWithin, newSince }: DigestOptions) => Promise<Digest>;
|
|
62
87
|
//# sourceMappingURL=digest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"digest.d.ts","sourceRoot":"","sources":["../../src/digest/digest.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAc,YAAY,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"digest.d.ts","sourceRoot":"","sources":["../../src/digest/digest.ts"],"names":[],"mappings":"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"}
|
package/dist/digest/digest.js
CHANGED
|
@@ -1,16 +1,71 @@
|
|
|
1
|
-
import { formatReference } from "@wirecat/cli-core";
|
|
1
|
+
import { formatReference, kindOf } from "@wirecat/cli-core";
|
|
2
2
|
import { mailTurn, OWED_DAYS } from "@wirecat/cli-core/mail";
|
|
3
3
|
import { formatMeetingReference } from "@wirecat/cli-core/meetings";
|
|
4
|
-
import { projectStatus
|
|
5
|
-
import { APP } from "../app.js";
|
|
4
|
+
import { projectStatus } from "@wirecat/cli-core/services";
|
|
6
5
|
import { listReview } from "../review/review.js";
|
|
7
6
|
import { counted } from "../review/status.js";
|
|
8
7
|
import { knownSenders } from "./known.js";
|
|
8
|
+
import { HEALTH_REASONS, healthOf, SOURCE_WORDS, syncRunsOf } from "./sync-health.js";
|
|
9
|
+
import { gatherTasks, previousDigestAt } from "./tasks.js";
|
|
9
10
|
/** The tag that puts a chat, mail thread, person, project or meeting series on the owner's watch list. */
|
|
10
11
|
export const WATCH_TAG = "watch";
|
|
11
12
|
export const SECTIONS = ["watch", "owed", "mail", "meetings", "tasks", "projects", "proposals"];
|
|
13
|
+
export const SCOPE_KINDS = ["telegram", "max", "whatsapp", "mail", "meeting", "task"];
|
|
12
14
|
const DAY = 86_400_000;
|
|
13
15
|
const MESSENGERS = new Set(["telegram", "max", "whatsapp"]);
|
|
16
|
+
const HEALTH_ORDER = HEALTH_REASONS;
|
|
17
|
+
const UNNAMED = "unnamed account";
|
|
18
|
+
/** Dialogs with a messenger's own service account: no person there is owed a reply. */
|
|
19
|
+
const SERVICE_CHATS = { telegram: new Set(["777000"]) };
|
|
20
|
+
/** The dialogs of an account that are not with a person: bots, as the messenger marks them, and service chats. */
|
|
21
|
+
const notPeopleOf = async (store, key) => {
|
|
22
|
+
const found = new Set(SERVICE_CHATS[key.provider] ?? []);
|
|
23
|
+
for (let offset = 0;; offset += 500) {
|
|
24
|
+
const page = await store.chats.chats(key, { limit: 500, offset });
|
|
25
|
+
for (const chat of page.items)
|
|
26
|
+
if (chat.kind === "dialog" && chat.providerMetadata?.isBot === true)
|
|
27
|
+
found.add(chat.id);
|
|
28
|
+
if (!page.hasMore)
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
return found;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* What a person calls each account: its name and username, a mailbox its address. Never the raw id; an account with
|
|
35
|
+
* neither is named by the profile that signs in to it, and two of a provider with one name get theirs added.
|
|
36
|
+
*/
|
|
37
|
+
const labelsOf = async (store, keys) => {
|
|
38
|
+
const stored = new Map((await store.accounts.storedAccounts()).map((one) => [name(one), one.name]));
|
|
39
|
+
const profiles = Object.values(await store.accounts.profiles()).flatMap((byProfile) => Object.entries(byProfile));
|
|
40
|
+
const profileOf = (key) => profiles.find(([, held]) => held.provider === key.provider && held.account === key.account)?.[0];
|
|
41
|
+
const labels = new Map();
|
|
42
|
+
for (const key of keys) {
|
|
43
|
+
if (key.provider === "email") {
|
|
44
|
+
labels.set(name(key), key.account);
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
const person = await store.people.personOf({ provider: key.provider, id: key.account });
|
|
48
|
+
const username = person?.identities.find((one) => one.provider === key.provider && one.id === key.account)?.username;
|
|
49
|
+
const given = stored.get(name(key));
|
|
50
|
+
const label = [given && given !== key.account ? given : null, username ? `@${username}` : null]
|
|
51
|
+
.filter(Boolean)
|
|
52
|
+
.join(" ");
|
|
53
|
+
const profile = profileOf(key);
|
|
54
|
+
labels.set(name(key), label || (profile ? `profile ${profile}` : UNNAMED));
|
|
55
|
+
}
|
|
56
|
+
const taken = new Map();
|
|
57
|
+
for (const [account, label] of labels) {
|
|
58
|
+
const word = `${account.split(":")[0]}|${label}`;
|
|
59
|
+
taken.set(word, (taken.get(word) ?? 0) + 1);
|
|
60
|
+
}
|
|
61
|
+
for (const key of keys) {
|
|
62
|
+
const label = labels.get(name(key)) ?? UNNAMED;
|
|
63
|
+
const profile = profileOf(key);
|
|
64
|
+
if ((taken.get(`${key.provider}|${label}`) ?? 0) > 1 && profile && !label.startsWith("profile "))
|
|
65
|
+
labels.set(name(key), `${label} (profile ${profile})`);
|
|
66
|
+
}
|
|
67
|
+
return labels;
|
|
68
|
+
};
|
|
14
69
|
const oneLine = (text, size) => {
|
|
15
70
|
const flat = (text ?? "").replace(/\s+/g, " ").trim();
|
|
16
71
|
if (!flat)
|
|
@@ -54,7 +109,7 @@ const personal = (newest) => !newest.bulk && !newest.list && !newest.envelope &&
|
|
|
54
109
|
* personal mail, meetings that ended, tasks due, projects that moved, proposals waiting. Every item names its
|
|
55
110
|
* reference, so an agent reads further only where it points.
|
|
56
111
|
*/
|
|
57
|
-
export const gatherDigest = async (store, env, { since, now = Date.now(), limit, excerpt, owedWithin }) => {
|
|
112
|
+
export const gatherDigest = async (store, env, { since, now = Date.now(), limit, excerpt, owedWithin, newSince }) => {
|
|
58
113
|
const window = (now - since) / DAY;
|
|
59
114
|
const days = `${Math.max(1, Math.ceil(window))}d`;
|
|
60
115
|
const accounts = await store.accounts.accounts();
|
|
@@ -96,21 +151,41 @@ export const gatherDigest = async (store, env, { since, now = Date.now(), limit,
|
|
|
96
151
|
let bulk = 0;
|
|
97
152
|
let olderMail = 0;
|
|
98
153
|
const unknown = { count: 0, next: [] };
|
|
154
|
+
const syncRuns = syncRunsOf(env);
|
|
155
|
+
const labels = await labelsOf(store, [...messengers, ...mailboxes]);
|
|
156
|
+
const health = [];
|
|
157
|
+
const checkHealth = (key, activity) => {
|
|
158
|
+
const found = healthOf(syncRuns(key), activity, now);
|
|
159
|
+
if (found)
|
|
160
|
+
health.push({
|
|
161
|
+
source: SOURCE_WORDS[key.provider] ?? key.provider,
|
|
162
|
+
account: labels.get(name(key)) ?? UNNAMED,
|
|
163
|
+
...found,
|
|
164
|
+
refs: [],
|
|
165
|
+
});
|
|
166
|
+
};
|
|
167
|
+
let chatsMoved = 0;
|
|
168
|
+
let mailMoved = 0;
|
|
99
169
|
for (const key of messengers) {
|
|
100
170
|
const { chats, storedAt } = await store.chats.chatActivity(key, owedSince);
|
|
171
|
+
const month = (await store.chats.chatActivity(key, now - 30 * DAY)).chats;
|
|
172
|
+
checkHealth(key, {
|
|
173
|
+
newest: month.reduce((most, chat) => Math.max(most ?? 0, Date.parse(chat.lastMessageAt)), null),
|
|
174
|
+
moved30d: month.length,
|
|
175
|
+
});
|
|
101
176
|
const ref = (chat) => formatReference({ type: "chat", provider: key.provider, account: key.account, chat });
|
|
177
|
+
chatsMoved += chats.filter((chat) => Date.parse(chat.lastMessageAt) >= since).length;
|
|
102
178
|
coverage.push({
|
|
103
179
|
account: name(key),
|
|
104
180
|
storedAt,
|
|
105
|
-
stale: storedAt === null || Date.parse(storedAt) < now - DAY,
|
|
106
181
|
waiting: chats.filter((chat) => chat.lastFromOwner === true && Date.parse(chat.lastMessageAt) >= since).length,
|
|
107
182
|
unsynced: chats.filter((chat) => chat.lastMessageId === null && Date.parse(chat.lastMessageAt) >= since).length,
|
|
108
183
|
});
|
|
184
|
+
const owedChats = chats.filter((chat) => !isWatchedChat(key, chat.chatId) && chat.kind === "dialog" && chat.lastFromOwner === false);
|
|
185
|
+
const notPeople = owedChats.length ? await notPeopleOf(store, key) : new Set();
|
|
109
186
|
let owedHere = 0;
|
|
110
|
-
for (const chat of
|
|
111
|
-
if (
|
|
112
|
-
continue;
|
|
113
|
-
if (chat.kind !== "dialog" || chat.lastFromOwner !== false)
|
|
187
|
+
for (const chat of owedChats) {
|
|
188
|
+
if (notPeople.has(chat.chatId))
|
|
114
189
|
continue;
|
|
115
190
|
owed.push({
|
|
116
191
|
item: { ref: ref(chat.chatId), who: chat.title, at: chat.lastMessageAt, excerpt: null, why: "owed reply" },
|
|
@@ -145,10 +220,14 @@ export const gatherDigest = async (store, env, { since, now = Date.now(), limit,
|
|
|
145
220
|
const threads = await store.mail.threadActivity(stored.id, Math.min(owedSince, now - OWED_DAYS * DAY));
|
|
146
221
|
const ref = (thread) => formatReference({ type: "chat", provider: "email", account: key.account, chat: thread });
|
|
147
222
|
const newest = threads.reduce((most, thread) => Math.max(most, thread.lastEmailAt), 0);
|
|
223
|
+
checkHealth(key, {
|
|
224
|
+
newest: newest || null,
|
|
225
|
+
moved30d: threads.filter((thread) => thread.lastEmailAt >= now - 30 * DAY).length,
|
|
226
|
+
});
|
|
227
|
+
mailMoved += threads.filter((thread) => thread.lastEmailAt >= since && thread.newest !== null && personal(thread.newest)).length;
|
|
148
228
|
coverage.push({
|
|
149
229
|
account: name(key),
|
|
150
230
|
storedAt: newest ? iso(newest) : null,
|
|
151
|
-
stale: newest < now - DAY,
|
|
152
231
|
waiting: threads.filter((thread) => mailTurn(thread.newest) === "waiting" && thread.lastEmailAt >= since).length,
|
|
153
232
|
unsynced: 0,
|
|
154
233
|
});
|
|
@@ -256,30 +335,21 @@ export const gatherDigest = async (store, env, { since, now = Date.now(), limit,
|
|
|
256
335
|
},
|
|
257
336
|
});
|
|
258
337
|
}
|
|
259
|
-
const
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
ref: `task:${task.key ?? task.id}`,
|
|
275
|
-
who: null,
|
|
276
|
-
at: task.dueAt ?? task.nextCheckAt ?? task.createdAt,
|
|
277
|
-
excerpt: oneLine(task.title, excerpt),
|
|
278
|
-
why: reasons.join(", "),
|
|
279
|
-
},
|
|
280
|
-
});
|
|
281
|
-
}
|
|
282
|
-
}
|
|
338
|
+
const hot = await gatherTasks(store, [...messengers, ...mailboxes], {
|
|
339
|
+
now,
|
|
340
|
+
newSince: newSince ?? previousDigestAt(env, now),
|
|
341
|
+
});
|
|
342
|
+
const tasks = hot.tasks.map(({ task, groups, askedBy, for: doer }) => ({
|
|
343
|
+
item: {
|
|
344
|
+
ref: task.ref,
|
|
345
|
+
who: askedBy,
|
|
346
|
+
at: task.dueAt ?? task.createdAt,
|
|
347
|
+
excerpt: oneLine(task.title, excerpt),
|
|
348
|
+
why: groups.join(", "),
|
|
349
|
+
due: task.dueAt,
|
|
350
|
+
for: doer,
|
|
351
|
+
},
|
|
352
|
+
}));
|
|
283
353
|
const projects = [];
|
|
284
354
|
const projectNext = [];
|
|
285
355
|
for (const project of await store.knowledge.projects()) {
|
|
@@ -329,19 +399,34 @@ export const gatherDigest = async (store, env, { since, now = Date.now(), limit,
|
|
|
329
399
|
},
|
|
330
400
|
await section("mail", mail, limit, [...mailNext, ...(bulk ? [`# ${bulk} bulk or list threads left out`] : [])]),
|
|
331
401
|
await section("meetings", meetings, limit, ["memo search meetings <words>"]),
|
|
332
|
-
await section("tasks",
|
|
333
|
-
"memo tasks list",
|
|
334
|
-
...(unplanned ? [`# ${unplanned} open tasks without a date left out`] : []),
|
|
335
|
-
]),
|
|
402
|
+
await section("tasks", tasks, limit, ["memo tasks list"]),
|
|
336
403
|
await section("projects", projects, limit, projectNext),
|
|
337
404
|
await section("proposals", proposals, limit, ["memo review list"], waiting.total),
|
|
338
405
|
];
|
|
406
|
+
const providerCount = (provider) => accounts.filter((key) => key.provider === provider).length;
|
|
407
|
+
const meetingAccounts = accounts.filter((key) => kindOf(key.provider) === "meetings").length;
|
|
408
|
+
const sources = [
|
|
409
|
+
{ kind: "telegram", accounts: providerCount("telegram") },
|
|
410
|
+
{ kind: "max", accounts: providerCount("max") },
|
|
411
|
+
{ kind: "whatsapp", accounts: providerCount("whatsapp") },
|
|
412
|
+
{ kind: "mail", accounts: mailboxes.length },
|
|
413
|
+
{ kind: "meeting", accounts: meetingAccounts },
|
|
414
|
+
{ kind: "task", accounts: hot.accounts },
|
|
415
|
+
];
|
|
339
416
|
return {
|
|
340
417
|
since: iso(since),
|
|
341
418
|
at: iso(now),
|
|
419
|
+
scope: {
|
|
420
|
+
from: iso(since),
|
|
421
|
+
to: iso(now),
|
|
422
|
+
sources: sources.filter((one) => one.accounts > 0),
|
|
423
|
+
counts: { chats: chatsMoved, mail: mailMoved, tasks: hot.tasks.length, meetings: meetings.length },
|
|
424
|
+
},
|
|
425
|
+
tasks: hot.counts,
|
|
426
|
+
health: health.sort((a, b) => HEALTH_ORDER.indexOf(a.reason) - HEALTH_ORDER.indexOf(b.reason)),
|
|
342
427
|
coverage,
|
|
343
428
|
sections,
|
|
344
|
-
untrusted: ["sections.items.who", "sections.items.excerpt"],
|
|
429
|
+
untrusted: ["sections.items.who", "sections.items.excerpt", "sections.items.for"],
|
|
345
430
|
};
|
|
346
431
|
};
|
|
347
432
|
//# sourceMappingURL=digest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"digest.js","sourceRoot":"","sources":["../../src/digest/digest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAEtF,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEzC,0GAA0G;AAC1G,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,CAAA;AAsBhC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,CAAU,CAAA;AAmCxG,MAAM,GAAG,GAAG,UAAU,CAAA;AACtB,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAA;AAE3D,MAAM,OAAO,GAAG,CAAC,IAA+B,EAAE,IAAY,EAAiB,EAAE;IAC/E,MAAM,IAAI,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;IACrD,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IACtB,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;AAClE,CAAC,CAAA;AAED,MAAM,GAAG,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;AACtD,MAAM,IAAI,GAAG,CAAC,GAAe,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,OAAO,EAAE,CAAA;AAQlE,MAAM,OAAO,GAAG,KAAK,EACnB,IAAiB,EACjB,KAAgB,EAChB,KAAa,EACb,IAAc,EACd,KAAK,GAAG,KAAK,CAAC,MAAM,EACI,EAAE;IAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACrF,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACpG,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;AACrC,CAAC,CAAA;AAED,MAAM,WAAW,GACf,CAAC,KAAmB,EAAE,GAAe,EAAE,MAAc,EAAE,SAAwB,EAAE,IAAY,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE;IAC3G,IAAI,SAAS,KAAK,IAAI;QAAE,OAAO,EAAE,CAAA;IACjC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IACxE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAA;AAC/G,CAAC,CAAA;AAEH,MAAM,QAAQ,GAAG,CAAC,KAAmB,EAAE,SAAiB,EAAE,UAAkB,EAAE,IAAY,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE;IACxG,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;IAC3D,OAAO;QACL,GAAG,EAAE,KAAK,EAAE,QAAQ,IAAI,KAAK,EAAE,WAAW,IAAI,IAAI;QAClD,OAAO,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;KACrF,CAAA;AACH,CAAC,CAAA;AAED,oFAAoF;AACpF,MAAM,UAAU,GAAG,CAAC,IAA6B,EAAU,EAAE;IAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAA;IACvC,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IACzC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;QAC3B,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC3F,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;IAClG,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,MAAM,QAAQ,GAAG,CAAC,MAA6E,EAAE,EAAE,CACjG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAA;AAErE;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,KAAmB,EACnB,GAAsB,EACtB,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAiB,EACrD,EAAE;IACnB,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,GAAG,CAAA;IAClC,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAA;IACjD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAA;IAChD,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;IACzE,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAA;IACpE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,UAAU,CAAC,CAAA;IAEnD,MAAM,OAAO,GAAG;QACd,KAAK,EAAE,IAAI,GAAG,EAAoB;QAClC,MAAM,EAAE,IAAI,GAAG,EAAU;QACzB,QAAQ,EAAE,IAAI,GAAG,EAAU;QAC3B,MAAM,EAAE,IAAI,GAAG,EAAU;KAC1B,CAAA;IACD,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,UAAU,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAA;QACzE,IAAI,IAAI,CAAC,MAAM;YACb,OAAO,CAAC,KAAK,CAAC,GAAG,CACf,IAAI,CAAC,GAAG,CAAC,EACT,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CACtC,CAAA;IACL,CAAC;IACD,2EAA2E;IAC3E,KAAK,MAAM,KAAK,IAAI,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC;QACrC,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;YAChG,MAAM,MAAM,GAAG,GAAG,CAAC,MAAsC,CAAA;YACzD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YAC3D,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YAC9D,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;gBAC/D,IAAI,OAAO,EAAE,OAAO,CAAC,eAAe;oBAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;YAC3F,CAAC;QACH,CAAC;IACH,MAAM,aAAa,GAAG,CAAC,GAAe,EAAE,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,CAAA;IAE9G,MAAM,QAAQ,GAAe,EAAE,CAAA;IAC/B,MAAM,KAAK,GAAc,EAAE,CAAA;IAC3B,MAAM,IAAI,GAAc,EAAE,CAAA;IAC1B,MAAM,IAAI,GAAc,EAAE,CAAA;IAC1B,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAc,EAAE,CAAA;IAElD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;QAC1E,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QACnH,QAAQ,CAAC,IAAI,CAAC;YACZ,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC;YAClB,QAAQ;YACR,KAAK,EAAE,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,GAAG;YAC5D,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM;YAC9G,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM;SAChH,CAAC,CAAA;QACF,IAAI,QAAQ,GAAG,CAAC,CAAA;QAChB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC;gBAAE,SAAQ;YAC7C,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK;gBAAE,SAAQ;YACpE,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE;gBAC1G,IAAI,EAAE,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC;aACxE,CAAC,CAAA;YACF,QAAQ,EAAE,CAAA;QACZ,CAAC;QACD,IAAI,QAAQ;YACV,QAAQ,CAAC,IAAI,CAAC,8BAA8B,IAAI,CAAC,GAAG,CAAC,6BAA6B,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;QACnH,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACxD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACrF,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,KAAK;gBAC9B,KAAK,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE;wBACJ,GAAG,EAAE,eAAe,CAAC;4BACnB,IAAI,EAAE,SAAS;4BACf,QAAQ,EAAE,GAAG,CAAC,QAAQ;4BACtB,OAAO,EAAE,GAAG,CAAC,OAAO;4BACpB,IAAI,EAAE,MAAM;4BACZ,OAAO,EAAE,OAAO,CAAC,EAAE;yBACpB,CAAC;wBACF,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU;wBAClD,EAAE,EAAE,OAAO,CAAC,SAAS;wBACrB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;wBACvC,GAAG,EAAE,cAAc;qBACpB;iBACF,CAAC,CAAA;QACN,CAAC;IACH,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;QACtD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,GAAG,SAAS,GAAG,GAAG,CAAC,CAAC,CAAA;QACtG,MAAM,GAAG,GAAG,CAAC,MAAc,EAAE,EAAE,CAC7B,eAAe,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;QAC1F,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAA;QACtF,QAAQ,CAAC,IAAI,CAAC;YACZ,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC;YAClB,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;YACrC,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,GAAG;YACzB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,WAAW,IAAI,KAAK,CAAC,CAAC,MAAM;YAChH,QAAQ,EAAE,CAAC;SACZ,CAAC,CAAA;QACF,IAAI,QAAQ,GAAG,CAAC,CAAA;QAChB,IAAI,OAAO,GAAG,CAAC,CAAA;QACf,MAAM,QAAQ,GAA+C,EAAE,CAAA;QAC/D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAA;YAC1B,IAAI,IAAI,KAAK,IAAI;gBAAE,SAAQ;YAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,IAAI,KAAK,CAAA;YAC5C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpB,IAAI,QAAQ;oBAAE,IAAI,EAAE,CAAA;gBACpB,SAAQ;YACV,CAAC;YACD,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC;gBAChC,IAAI,EAAE;oBACJ,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;oBACzB,GAAG,EAAE,IAAI;oBACT,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC;oBAC3B,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;oBACzC,GAAG;iBACJ;gBACD,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;aAC3D,CAAC,CAAA;YACF,IAAI,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxC,IAAI,QAAQ;oBAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAA;YACrD,CAAC;iBAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC;gBACrC,qGAAqG;gBACrG,IAAI,QAAQ;oBAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;qBACvF,IAAI,MAAM,CAAC,WAAW,IAAI,SAAS;oBAAE,SAAS,EAAE,CAAA;gBACrD,QAAQ,EAAE,CAAA;YACZ,CAAC;iBAAM,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACtC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAA;gBAC9B,OAAO,EAAE,CAAA;YACX,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,YAAY,CAC9B,KAAK,EACL,MAAM,CAAC,EAAE,EACT,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CACtC,CAAA;QACD,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;QACtE,KAAK,MAAM,GAAG,IAAI,QAAQ;YAAE,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACjF,OAAO,CAAC,KAAK,IAAI,SAAS,CAAC,MAAM,CAAA;QACjC,IAAI,QAAQ;YAAE,QAAQ,CAAC,IAAI,CAAC,6BAA6B,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;QAChG,IAAI,SAAS,CAAC,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;QAC5G,IAAI,OAAO;YAAE,QAAQ,CAAC,IAAI,CAAC,6BAA6B,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,aAAa,CAAC,CAAA;IAC9F,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAClD,IAAI,CAAC,MAAM;YAAE,SAAQ;QACrB,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,UAAU;YACtC,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACxC,MAAM,GAAG,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAA;gBACpD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAAE,SAAQ;gBAC3C,KAAK,MAAM,KAAK,IAAI,MAAM,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;oBACvE,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK;wBAAE,SAAQ;oBACvE,KAAK,CAAC,IAAI,CAAC;wBACT,IAAI,EAAE;4BACJ,GAAG,EAAE,eAAe,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;4BAC3F,GAAG,EAAE,MAAM,CAAC,IAAI;4BAChB,EAAE,EAAE,KAAK,CAAC,MAAM;4BAChB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC;4BACtC,GAAG,EAAE,kBAAkB,GAAG,QAAQ;yBACnC;qBACF,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;IACL,CAAC;IAED,MAAM,QAAQ,GAAc,EAAE,CAAA;IAC9B,KAAK,MAAM,OAAO,IAAI,MAAM,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QAC3E,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,CAAA;QAClD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,GAAG,KAAK,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI;YAAE,SAAQ;QAC3E,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE;gBACJ,GAAG,EAAE,sBAAsB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;gBACrG,GAAG,EAAE,IAAI;gBACT,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC;gBACd,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC;gBACxC,GAAG,EACD,OAAO,CAAC,eAAe,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC;oBAC7E,CAAC,CAAC,gBAAgB;oBAClB,CAAC,CAAC,SAAS;aAChB;YACD,IAAI,EAAE,KAAK,IAAI,EAAE;gBACf,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;gBACxD,MAAM,OAAO,GAAG,OAAO,EAAE,SAAS,CAAC,CAAC,CAAyC,CAAA;gBAC7E,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,CAAC,MAAM,IAAI,CAAC,CAAA;gBACpD,OAAO;oBACL,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC,IAAI;oBAC7D,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;oBACrF,GAAG,EAAE,GAAG,OAAO,CAAC,eAAe,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,GAC/G,WAAW,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,eACtC,EAAE;iBACH,CAAA;YACH,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAA;IACxC,IAAI,SAAS,GAAG,CAAC,CAAA;IACjB,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,UAAU,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;YACzF,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,GAAG;SACf,CAAC,CAAA;QACF,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,WAAW,CAAC,CAAA;YACvE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,SAAS,EAAE,CAAA;gBACX,SAAQ;YACV,CAAC;YACD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE;gBACjB,IAAI,EAAE;oBACJ,GAAG,EAAE,QAAQ,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE;oBAClC,GAAG,EAAE,IAAI;oBACT,EAAE,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS;oBACpD,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;oBACrC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;iBACxB;aACF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAc,EAAE,CAAA;IAC9B,MAAM,WAAW,GAAa,EAAE,CAAA;IAChC,KAAK,MAAM,OAAO,IAAI,MAAM,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC;QACvD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;QACjF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAC/B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,CACzF,CAAA;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACvF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS;YAAE,SAAQ;QAC9C,WAAW,CAAC,IAAI,CAAC,wBAAwB,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,iBAAiB,IAAI,EAAE,CAAC,CAAA;QAC3F,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YACpB,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,wBAAwB,EAAE;aAC5G,CAAC,CAAA;QACJ,KAAK,MAAM,IAAI,IAAI,KAAK;YACtB,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE;oBACJ,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG;oBACtD,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC;oBACvD,EAAE,EAAE,IAAI,CAAC,EAAY;oBACrB,OAAO,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC;oBACrF,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE;iBAC7D;aACF,CAAC,CAAA;IACN,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAA;IACjE,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;IACrE,MAAM,SAAS,GAAc,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACxD,IAAI,EAAE;YACJ,GAAG,EAAE,GAAG,CAAC,EAAE;YACX,GAAG,EAAE,GAAG,CAAC,QAAQ;YACjB,EAAE,EAAE,GAAG,CAAC,SAAS;YACjB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC;YACpC,GAAG,EAAE,GAAG,CAAC,IAAI;SACd;KACF,CAAC,CAAC,CAAA;IAEH,MAAM,QAAQ,GAAG;QACf,MAAM,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE;YACnC,0BAA0B;YAC1B,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,uBAAuB,GAAG,EAAE,CAAC;SAClE,CAAC;QACF;YACE,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;gBACrC,GAAG,QAAQ;gBACX,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,oDAAoD,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aAC3F,CAAC,CAAC;YACH,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtC;QACD,MAAM,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,gCAAgC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/G,MAAM,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,8BAA8B,CAAC,CAAC;QAC5E,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE;YACjD,iBAAiB;YACjB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,qCAAqC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5E,CAAC;QACF,MAAM,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC;QACvD,MAAM,OAAO,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC;KAClF,CAAA;IACD,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC;QACjB,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC;QACZ,QAAQ;QACR,QAAQ;QACR,SAAS,EAAE,CAAC,oBAAoB,EAAE,wBAAwB,CAAC;KAC5D,CAAA;AACH,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"digest.js","sourceRoot":"","sources":["../../src/digest/digest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { type LastRun } from "@wirecat/cli-core/background";
|
|
2
|
+
import type { AccountKey } from "@wirecat/cli-core/store";
|
|
3
|
+
export declare const HEALTH_REASONS: readonly ["sync-failed", "no-schedule", "quiet"];
|
|
4
|
+
export type HealthReason = (typeof HEALTH_REASONS)[number];
|
|
5
|
+
/** One account whose sync needs a look; the shape `wirecat.report/1`'s `health[]` takes. */
|
|
6
|
+
export interface Health {
|
|
7
|
+
/** The messenger or mailbox word: `Telegram`, `MAX`, `WhatsApp`, `mail`. */
|
|
8
|
+
source: string;
|
|
9
|
+
/** The account's name, username or address; never its raw id. */
|
|
10
|
+
account: string;
|
|
11
|
+
reason: HealthReason;
|
|
12
|
+
/** `sync-failed`: the first failure in a row. `quiet`: the newest message stored. `no-schedule`: `null`. */
|
|
13
|
+
since: string | null;
|
|
14
|
+
staleHours: number;
|
|
15
|
+
/** `sync-failed` only: the failure's code and reason id, as the schedule's `last.json` keeps it. */
|
|
16
|
+
failure?: string;
|
|
17
|
+
refs: string[];
|
|
18
|
+
}
|
|
19
|
+
export declare const SOURCE_WORDS: Record<string, string>;
|
|
20
|
+
interface Scheduled {
|
|
21
|
+
name: string;
|
|
22
|
+
kind: string;
|
|
23
|
+
argv: string[];
|
|
24
|
+
environment: Record<string, string>;
|
|
25
|
+
last: LastRun | undefined;
|
|
26
|
+
}
|
|
27
|
+
/** A CLI's schedules with their last runs; cli-core exports the last runs, and the schedule file is its documented JSON. */
|
|
28
|
+
export declare const schedulesOf: (state: string) => Scheduled[];
|
|
29
|
+
export interface SyncRuns {
|
|
30
|
+
/** The newest run of each sync schedule that names this account's profile. */
|
|
31
|
+
runs: LastRun[];
|
|
32
|
+
scheduled: boolean;
|
|
33
|
+
/** A `serve` keeps it synced live, as WhatsApp's does. */
|
|
34
|
+
serving: boolean;
|
|
35
|
+
}
|
|
36
|
+
/** How each tool keeps an account synced: its scheduled `sync` runs, by the profile each names, and its live serves. */
|
|
37
|
+
export declare const syncRunsOf: (env: NodeJS.ProcessEnv) => (key: AccountKey) => SyncRuns;
|
|
38
|
+
/** An account that syncs is quiet only after this long without anything new, ... */
|
|
39
|
+
export declare const QUIET_AFTER: number;
|
|
40
|
+
/** ... and after this many of its usual gaps: 30 days over the chats or threads that moved in them. */
|
|
41
|
+
export declare const QUIET_GAPS = 3;
|
|
42
|
+
/**
|
|
43
|
+
* Why an account's sync needs a look, or `undefined`. "Stored" alone never says it: an account that syncs fine and
|
|
44
|
+
* hears nothing is quiet only when that is long for it.
|
|
45
|
+
*/
|
|
46
|
+
export declare const healthOf: (sync: SyncRuns, activity: {
|
|
47
|
+
newest: number | null;
|
|
48
|
+
moved30d: number;
|
|
49
|
+
}, now: number) => Pick<Health, "reason" | "since" | "staleHours" | "failure"> | undefined;
|
|
50
|
+
export {};
|
|
51
|
+
//# sourceMappingURL=sync-health.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-health.d.ts","sourceRoot":"","sources":["../../src/digest/sync-health.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,OAAO,EAAkC,MAAM,8BAA8B,CAAA;AAC3F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAIzD,eAAO,MAAM,cAAc,YAAI,aAAa,EAAE,aAAa,EAAE,OAAO,CAAU,CAAA;AAC9E,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAE1D,4FAA4F;AAC5F,MAAM,WAAW,MAAM;IACrB,4EAA4E;IAC5E,MAAM,EAAE,MAAM,CAAA;IACd,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,YAAY,CAAA;IACpB,4GAA4G;IAC5G,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,oGAAoG;IACpG,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,EAAE,CAAA;CACf;AASD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAK/C,CAAA;AAOD,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACnC,IAAI,EAAE,OAAO,GAAG,SAAS,CAAA;CAC1B;AAED,4HAA4H;AAC5H,eAAO,MAAM,WAAW,UAAW,MAAM,KAAG,SAAS,EAoBpD,CAAA;AAcD,MAAM,WAAW,QAAQ;IACvB,8EAA8E;IAC9E,IAAI,EAAE,OAAO,EAAE,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;IAClB,0DAA0D;IAC1D,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,wHAAwH;AACxH,eAAO,MAAM,UAAU,QAAS,MAAM,CAAC,UAAU,WAelC,UAAU,KAAG,QAe3B,CAAA;AAID,oFAAoF;AACpF,eAAO,MAAM,WAAW,QAAU,CAAA;AAClC,uGAAuG;AACvG,eAAO,MAAM,UAAU,IAAI,CAAA;AAI3B;;;GAGG;AACH,eAAO,MAAM,QAAQ,SACb,QAAQ,YACJ;IAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,OAChD,MAAM,KACV,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,YAAY,GAAG,SAAS,CAAC,GAAG,SAuBhE,CAAA"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { existsSync, readdirSync, readFileSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { configFilePath, resolvePaths } from "@wirecat/cli-base";
|
|
4
|
+
import { scheduledRuns, servingProfiles } from "@wirecat/cli-core/background";
|
|
5
|
+
import { APP } from "../app.js";
|
|
6
|
+
import { messengerToolOf, signedInAccount } from "../knowledge/messenger-sync.js";
|
|
7
|
+
export const HEALTH_REASONS = ["sync-failed", "no-schedule", "quiet"];
|
|
8
|
+
const MAIL = { appName: "mail-cli", envPrefix: "MAIL" };
|
|
9
|
+
export const SOURCE_WORDS = {
|
|
10
|
+
telegram: "Telegram",
|
|
11
|
+
max: "MAX",
|
|
12
|
+
whatsapp: "WhatsApp",
|
|
13
|
+
email: "mail",
|
|
14
|
+
};
|
|
15
|
+
const toolOf = (provider) => (provider === "email" ? MAIL : messengerToolOf(provider));
|
|
16
|
+
const stateDirs = (tool, env) => resolvePaths({ appName: tool.appName, prefix: tool.envPrefix, env });
|
|
17
|
+
/** A CLI's schedules with their last runs; cli-core exports the last runs, and the schedule file is its documented JSON. */
|
|
18
|
+
export const schedulesOf = (state) => {
|
|
19
|
+
const dir = join(state, "schedules");
|
|
20
|
+
if (!existsSync(dir))
|
|
21
|
+
return [];
|
|
22
|
+
const last = new Map(scheduledRuns(state).map((one) => [one.job, one.last]));
|
|
23
|
+
return readdirSync(dir).flatMap((name) => {
|
|
24
|
+
try {
|
|
25
|
+
const schedule = JSON.parse(readFileSync(join(dir, name, "schedule.json"), "utf8"));
|
|
26
|
+
return [
|
|
27
|
+
{
|
|
28
|
+
name: String(schedule.name),
|
|
29
|
+
kind: String(schedule.kind),
|
|
30
|
+
argv: Array.isArray(schedule.argv) ? schedule.argv.map(String) : [],
|
|
31
|
+
environment: schedule.environment ?? {},
|
|
32
|
+
last: last.get(String(schedule.name)),
|
|
33
|
+
},
|
|
34
|
+
];
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return [];
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
const mailAddress = (profile, env) => {
|
|
42
|
+
try {
|
|
43
|
+
const config = JSON.parse(readFileSync(configFilePath(stateDirs(MAIL, env).config), "utf8"));
|
|
44
|
+
return config?.profiles?.[profile]?.address;
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
const accountOfProfile = (provider, tool, profile, env) => provider === "email" ? mailAddress(profile, env) : signedInAccount(tool, profile, env);
|
|
51
|
+
/** How each tool keeps an account synced: its scheduled `sync` runs, by the profile each names, and its live serves. */
|
|
52
|
+
export const syncRunsOf = (env) => {
|
|
53
|
+
const cache = new Map();
|
|
54
|
+
const read = (tool) => {
|
|
55
|
+
const known = cache.get(tool.appName);
|
|
56
|
+
if (known)
|
|
57
|
+
return known;
|
|
58
|
+
const app = { ...APP, appName: tool.appName, envPrefix: tool.envPrefix };
|
|
59
|
+
const fresh = {
|
|
60
|
+
schedules: schedulesOf(stateDirs(tool, env).state).filter((one) => one.kind === "command" && one.argv.includes("sync")),
|
|
61
|
+
serving: servingProfiles(app, env),
|
|
62
|
+
};
|
|
63
|
+
cache.set(tool.appName, fresh);
|
|
64
|
+
return fresh;
|
|
65
|
+
};
|
|
66
|
+
return (key) => {
|
|
67
|
+
const tool = toolOf(key.provider);
|
|
68
|
+
if (!tool)
|
|
69
|
+
return { runs: [], scheduled: false, serving: false };
|
|
70
|
+
const { schedules, serving } = read(tool);
|
|
71
|
+
const mine = schedules.filter((one) => accountOfProfile(key.provider, tool, one.environment[`${tool.envPrefix}_PROFILE`] ?? "default", env) ===
|
|
72
|
+
key.account);
|
|
73
|
+
return {
|
|
74
|
+
runs: mine.flatMap((one) => (one.last ? [one.last] : [])),
|
|
75
|
+
scheduled: mine.length > 0,
|
|
76
|
+
serving: serving.some((profile) => accountOfProfile(key.provider, tool, profile, env) === key.account),
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
const HOUR = 3_600_000;
|
|
81
|
+
const DAY = 24 * HOUR;
|
|
82
|
+
/** An account that syncs is quiet only after this long without anything new, ... */
|
|
83
|
+
export const QUIET_AFTER = 3 * DAY;
|
|
84
|
+
/** ... and after this many of its usual gaps: 30 days over the chats or threads that moved in them. */
|
|
85
|
+
export const QUIET_GAPS = 3;
|
|
86
|
+
const hours = (from, now) => Math.max(0, Math.floor((now - from) / HOUR));
|
|
87
|
+
/**
|
|
88
|
+
* Why an account's sync needs a look, or `undefined`. "Stored" alone never says it: an account that syncs fine and
|
|
89
|
+
* hears nothing is quiet only when that is long for it.
|
|
90
|
+
*/
|
|
91
|
+
export const healthOf = (sync, activity, now) => {
|
|
92
|
+
// One sync that still succeeds, or a live serve, keeps the account fresh whatever another schedule says.
|
|
93
|
+
if (!sync.serving && sync.runs.length > 0 && sync.runs.every((run) => run.exitCode !== 0)) {
|
|
94
|
+
const first = [...sync.runs].sort((a, b) => (a.failingSince ?? a.at).localeCompare(b.failingSince ?? b.at))[0];
|
|
95
|
+
const since = first?.failingSince ?? first?.at ?? new Date(now).toISOString();
|
|
96
|
+
return {
|
|
97
|
+
reason: "sync-failed",
|
|
98
|
+
since,
|
|
99
|
+
staleHours: hours(Date.parse(since), now),
|
|
100
|
+
...(first?.reason ? { failure: first.reason } : {}),
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
if (!sync.scheduled && !sync.serving)
|
|
104
|
+
return {
|
|
105
|
+
reason: "no-schedule",
|
|
106
|
+
since: null,
|
|
107
|
+
staleHours: activity.newest === null ? 0 : hours(activity.newest, now),
|
|
108
|
+
};
|
|
109
|
+
if (activity.newest === null || activity.moved30d === 0)
|
|
110
|
+
return undefined;
|
|
111
|
+
const usual = Math.max(QUIET_AFTER, (QUIET_GAPS * 30 * DAY) / activity.moved30d);
|
|
112
|
+
if (activity.newest < now - usual)
|
|
113
|
+
return { reason: "quiet", since: new Date(activity.newest).toISOString(), staleHours: hours(activity.newest, now) };
|
|
114
|
+
return undefined;
|
|
115
|
+
};
|
|
116
|
+
//# sourceMappingURL=sync-health.js.map
|