@wirecat/cli-memo 0.131.17 → 0.131.19

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 (179) hide show
  1. package/dist/bin/memo.js +2 -2
  2. package/dist/bundle/{all-profiles-T5FHXOPF.js → all-profiles-MVF2XGZK.js} +5 -4
  3. package/dist/bundle/{anthropic-PHVNLFRZ.js → anthropic-OPFHMF2S.js} +3 -3
  4. package/dist/bundle/{app-server-B3CY5NR7.js → app-server-VHVC55S3.js} +35 -34
  5. package/dist/bundle/auto-F53FUP45.js +82 -0
  6. package/dist/bundle/{bun-XU55PNTO.js → bun-P6TMDZGU.js} +2 -2
  7. package/dist/bundle/{bun-sqlite-KODHIZ3K.js → bun-sqlite-3G3NLK4O.js} +2 -2
  8. package/dist/bundle/{chunk-LQ5UAGPT.js → chunk-2KOVYXWK.js} +2291 -799
  9. package/dist/bundle/{chunk-XSILYUVP.js → chunk-2R25UBIH.js} +20 -20
  10. package/dist/bundle/{chunk-PBBADVLT.js → chunk-36ULPM2W.js} +2 -2
  11. package/dist/bundle/{chunk-EMI2IDP5.js → chunk-3ORDQ62F.js} +6 -6
  12. package/dist/bundle/{chunk-6ATZ453X.js → chunk-4MIPN37I.js} +459 -158
  13. package/dist/bundle/{chunk-GZ7QIMRX.js → chunk-4TERVG26.js} +7 -1
  14. package/dist/bundle/{chunk-SGVRFADD.js → chunk-4VKNUBD5.js} +5 -5
  15. package/dist/bundle/{chunk-47U4HRPP.js → chunk-57Q6NXQT.js} +3 -3
  16. package/dist/bundle/{chunk-CYFMLJRG.js → chunk-5KUPVC5M.js} +1 -1
  17. package/dist/bundle/{chunk-4WHPVXZ5.js → chunk-5XDYV2YT.js} +1 -1
  18. package/dist/bundle/{chunk-SSUQPDR7.js → chunk-63XICXGM.js} +1 -1
  19. package/dist/bundle/{chunk-OO5PSCYL.js → chunk-66YZUX2C.js} +4 -4
  20. package/dist/bundle/{chunk-7FCFK5A5.js → chunk-6DG7VK3H.js} +2 -2
  21. package/dist/bundle/{chunk-UXNGJ5KC.js → chunk-7J5HTZCM.js} +1 -1
  22. package/dist/bundle/{chunk-KLDHQWJ2.js → chunk-BINR6MJ5.js} +1 -1
  23. package/dist/bundle/{chunk-5VSLMXE2.js → chunk-BMHSGZNE.js} +4 -4
  24. package/dist/bundle/{chunk-JWZIP2UJ.js → chunk-BPYQYZXA.js} +10 -10
  25. package/dist/bundle/{chunk-S5HW37G6.js → chunk-D6G23NFJ.js} +1 -1
  26. package/dist/bundle/{chunk-JX2JC4VV.js → chunk-DLRLOGVU.js} +23 -4
  27. package/dist/bundle/{chunk-HR3GJMED.js → chunk-EFKEG2BA.js} +2 -2
  28. package/dist/bundle/{chunk-6N6FNKT4.js → chunk-EL4ZKQUN.js} +2 -2
  29. package/dist/bundle/{chunk-TPFPWZGB.js → chunk-EMKFG5BP.js} +2 -2
  30. package/dist/bundle/{chunk-G4H2CVWX.js → chunk-F5CQ2NVA.js} +10 -87
  31. package/dist/bundle/{chunk-Z7OTEPTP.js → chunk-FMSA2X3E.js} +1 -1
  32. package/dist/bundle/{chunk-DBSWX4D2.js → chunk-GJKM32WA.js} +20 -20
  33. package/dist/bundle/{chunk-XRXLLVM2.js → chunk-IW3U6XXI.js} +3 -3
  34. package/dist/bundle/chunk-JDJDNMCP.js +93 -0
  35. package/dist/bundle/{chunk-OFOATVS5.js → chunk-JHKTN6NL.js} +9 -9
  36. package/dist/bundle/{chunk-MP5VZZMR.js → chunk-KO455254.js} +12 -12
  37. package/dist/bundle/{chunk-5C6B3MNJ.js → chunk-KVVDRD7M.js} +1 -1
  38. package/dist/bundle/{chunk-2CDGVXXN.js → chunk-LDVU22MF.js} +5 -5
  39. package/dist/bundle/{chunk-QVM24RSA.js → chunk-LEUNYKL6.js} +2 -2
  40. package/dist/bundle/{chunk-ASULRGXI.js → chunk-LKYHSVQL.js} +7 -7
  41. package/dist/bundle/{chunk-PIIK4CAE.js → chunk-LQJ4KHXK.js} +8 -8
  42. package/dist/bundle/{chunk-EIJMXN2G.js → chunk-NKTAEBCU.js} +3 -3
  43. package/dist/bundle/{chunk-YTRGKGLT.js → chunk-OTHEM74Z.js} +5 -5
  44. package/dist/bundle/{chunk-QPARISUU.js → chunk-OVFMY6ZP.js} +1 -1
  45. package/dist/bundle/{chunk-X6BSGHTT.js → chunk-P22V2OLJ.js} +43 -9
  46. package/dist/bundle/{chunk-RXDMVHUB.js → chunk-P3TYFDMP.js} +4 -4
  47. package/dist/bundle/{chunk-HMPSGU4S.js → chunk-RFB5LOYR.js} +4 -4
  48. package/dist/bundle/{chunk-NZCKOPKU.js → chunk-RITXQKYG.js} +5 -5
  49. package/dist/bundle/{chunk-65VTPQQA.js → chunk-SHDZVM3B.js} +1 -1
  50. package/dist/bundle/{chunk-BXUDUNOK.js → chunk-SJLVBJ2L.js} +1 -1
  51. package/dist/bundle/{chunk-XJHY7NNU.js → chunk-SO6VNTF6.js} +1 -1
  52. package/dist/bundle/{chunk-YN4FBMXV.js → chunk-T557KUST.js} +2 -2
  53. package/dist/bundle/{chunk-KA2CKNGF.js → chunk-TQNQS6TR.js} +43 -43
  54. package/dist/bundle/{chunk-FITNKTJB.js → chunk-UC4IL2P7.js} +1 -1
  55. package/dist/bundle/{chunk-7AIR3RVV.js → chunk-V7DZG62U.js} +7 -7
  56. package/dist/bundle/{chunk-NCKQYO23.js → chunk-VQGVPDMH.js} +11 -11
  57. package/dist/bundle/{chunk-BNWPOSGL.js → chunk-VUWUSGSN.js} +4 -4
  58. package/dist/bundle/{chunk-RW2YXWQG.js → chunk-WOIRWVDJ.js} +644 -357
  59. package/dist/bundle/{chunk-LLC2SOAP.js → chunk-WRPRPVZF.js} +27 -27
  60. package/dist/bundle/{chunk-KPBZ6E3Q.js → chunk-XWS4PTES.js} +621 -466
  61. package/dist/bundle/{chunk-P4ALQIOM.js → chunk-XZWUBDBG.js} +1 -1
  62. package/dist/bundle/{chunk-365G3D33.js → chunk-Y3DGAYTD.js} +3 -3
  63. package/dist/bundle/{chunk-4LLG7DHY.js → chunk-YVECM7XA.js} +3 -3
  64. package/dist/bundle/{chunk-CUQA5KDN.js → chunk-Z54GPSVH.js} +82 -62
  65. package/dist/bundle/{chunk-EUIYRXNA.js → chunk-ZYM4M62Q.js} +1 -1
  66. package/dist/bundle/{command-contract-PX6KPRM4.js → command-contract-NMJKYTS4.js} +11 -10
  67. package/dist/bundle/{decode-5SW67NPU.js → decode-BUTF6VGO.js} +2 -2
  68. package/dist/bundle/{echarts-DGITZGC2.js → echarts-KH3YOWMK.js} +2 -2
  69. package/dist/bundle/{embed-ZNS6M27B.js → embed-WBVM7KQ2.js} +3 -3
  70. package/dist/bundle/{embedder-FJROMOX4.js → embedder-27HQIFHM.js} +6 -6
  71. package/dist/bundle/{entry-65WPL5AJ.js → entry-K2WWMF2B.js} +4 -4
  72. package/dist/bundle/failure-NHDQ5WEW.js +62 -0
  73. package/dist/bundle/{first-run-NRTHUTDT.js → first-run-7P5N72VR.js} +5 -5
  74. package/dist/bundle/{first-screen-RKNTSAJJ.js → first-screen-3GM5HC4Y.js} +12 -11
  75. package/dist/bundle/{instructions-AJ5VTQ2U.js → instructions-POJKHKRZ.js} +1 -1
  76. package/dist/bundle/mcp-YGWNSJUH.js +86 -0
  77. package/dist/bundle/memo.js +6 -6
  78. package/dist/bundle/{node-762GQ2RA.js → node-W245R2OP.js} +2 -2
  79. package/dist/bundle/{node-sqlite-4LKLWO2T.js → node-sqlite-FUYOXFW5.js} +3 -3
  80. package/dist/bundle/{oauth-P67IYAGN.js → oauth-ATB3NWQA.js} +4 -4
  81. package/dist/bundle/{open-ERD25J5M.js → open-HEBEWCYB.js} +2 -2
  82. package/dist/bundle/{openai-Z77SB2I5.js → openai-DN7NA2IU.js} +7 -7
  83. package/dist/bundle/{process-Q3NEJZWY.js → process-QTIDOJMF.js} +1 -1
  84. package/dist/bundle/{program-UF3YO2YK.js → program-WNFCYNGP.js} +3076 -1259
  85. package/dist/bundle/{prompt-7CVPYADG.js → prompt-RQXVPJ4A.js} +2 -2
  86. package/dist/bundle/{recognize-2TS3PRPO.js → recognize-G7NIZ3IT.js} +1 -1
  87. package/dist/bundle/{remote-NOBDTVJN.js → remote-H452UBSK.js} +4 -4
  88. package/dist/bundle/{rerank-ZQKXRS6O.js → rerank-77UYD2UD.js} +4 -4
  89. package/dist/bundle/{serve-BJGDW3AS.js → serve-L6R4ODZV.js} +6 -6
  90. package/dist/bundle/server-SWUSQSRW.js +44 -0
  91. package/dist/bundle/server-W4IKTTUY.js +57 -0
  92. package/dist/bundle/{server-XMDCBI42.js → server-ZBX4HFHT.js} +56 -50
  93. package/dist/bundle/{setup-L7OLXLWU.js → setup-ZGH5OZ7A.js} +39 -38
  94. package/dist/bundle/{state-Y2657WG3.js → state-KHMYDV4I.js} +3 -3
  95. package/dist/bundle/{store-YJBO6PVL.js → store-M7KGTLUG.js} +9 -8
  96. package/dist/bundle/store-maintenance-command-ZPN2ZUL4.js +44 -0
  97. package/dist/bundle/update-RFTADFRO.js +65 -0
  98. package/dist/context/command.d.ts +8 -1
  99. package/dist/context/command.d.ts.map +1 -1
  100. package/dist/context/command.js +15 -2
  101. package/dist/context/command.js.map +1 -1
  102. package/dist/discovery/command.d.ts.map +1 -1
  103. package/dist/discovery/command.js +3 -0
  104. package/dist/discovery/command.js.map +1 -1
  105. package/dist/examples.d.ts.map +1 -1
  106. package/dist/examples.js +44 -4
  107. package/dist/examples.js.map +1 -1
  108. package/dist/facts/fact.d.ts +1 -1
  109. package/dist/finance/command.d.ts +4 -0
  110. package/dist/finance/command.d.ts.map +1 -0
  111. package/dist/finance/command.js +126 -0
  112. package/dist/finance/command.js.map +1 -0
  113. package/dist/finance/finance.d.ts +38 -0
  114. package/dist/finance/finance.d.ts.map +1 -0
  115. package/dist/finance/finance.js +128 -0
  116. package/dist/finance/finance.js.map +1 -0
  117. package/dist/knowledge/command.js +1 -1
  118. package/dist/knowledge/command.js.map +1 -1
  119. package/dist/knowledge/project-actions-command.d.ts.map +1 -1
  120. package/dist/knowledge/project-actions-command.js +4 -1
  121. package/dist/knowledge/project-actions-command.js.map +1 -1
  122. package/dist/knowledge/project-actions.d.ts +1 -1
  123. package/dist/knowledge/project-context.d.ts +12 -2
  124. package/dist/knowledge/project-context.d.ts.map +1 -1
  125. package/dist/knowledge/project-context.js +6 -3
  126. package/dist/knowledge/project-context.js.map +1 -1
  127. package/dist/knowledge/project-status-command.d.ts.map +1 -1
  128. package/dist/knowledge/project-status-command.js +21 -10
  129. package/dist/knowledge/project-status-command.js.map +1 -1
  130. package/dist/mcp/catalogue.d.ts +3 -0
  131. package/dist/mcp/catalogue.d.ts.map +1 -1
  132. package/dist/mcp/catalogue.js +9 -2
  133. package/dist/mcp/catalogue.js.map +1 -1
  134. package/dist/program.d.ts.map +1 -1
  135. package/dist/program.js +75 -0
  136. package/dist/program.js.map +1 -1
  137. package/dist/reasons.d.ts.map +1 -1
  138. package/dist/reasons.js +6 -0
  139. package/dist/reasons.js.map +1 -1
  140. package/dist/records/import.d.ts +8 -0
  141. package/dist/records/import.d.ts.map +1 -0
  142. package/dist/records/import.js +72 -0
  143. package/dist/records/import.js.map +1 -0
  144. package/dist/review/command.d.ts +1 -0
  145. package/dist/review/command.d.ts.map +1 -1
  146. package/dist/review/command.js +49 -14
  147. package/dist/review/command.js.map +1 -1
  148. package/dist/review/kinds.d.ts +34 -0
  149. package/dist/review/kinds.d.ts.map +1 -0
  150. package/dist/review/kinds.js +230 -0
  151. package/dist/review/kinds.js.map +1 -0
  152. package/dist/review/review.d.ts +31 -7
  153. package/dist/review/review.d.ts.map +1 -1
  154. package/dist/review/review.js +69 -27
  155. package/dist/review/review.js.map +1 -1
  156. package/dist/review/status.d.ts +48 -0
  157. package/dist/review/status.d.ts.map +1 -0
  158. package/dist/review/status.js +88 -0
  159. package/dist/review/status.js.map +1 -0
  160. package/dist/rows.d.ts.map +1 -1
  161. package/dist/rows.js +19 -0
  162. package/dist/rows.js.map +1 -1
  163. package/dist/schedule/command.d.ts +7 -0
  164. package/dist/schedule/command.d.ts.map +1 -0
  165. package/dist/schedule/command.js +23 -0
  166. package/dist/schedule/command.js.map +1 -0
  167. package/dist/version.d.ts +1 -1
  168. package/dist/version.js +1 -1
  169. package/package.json +2 -2
  170. package/scenarios/project-state.md +1 -1
  171. package/skills/cli-memo/SKILL.md +22 -3
  172. package/dist/bundle/auto-C7ZWP3WY.js +0 -81
  173. package/dist/bundle/failure-7GV6RULH.js +0 -61
  174. package/dist/bundle/mcp-FOL2IELJ.js +0 -85
  175. package/dist/bundle/server-6UZ7GQAX.js +0 -56
  176. package/dist/bundle/server-ECXA5HKO.js +0 -43
  177. package/dist/bundle/store-maintenance-command-5SK354IH.js +0 -43
  178. package/dist/bundle/update-VSANDEPL.js +0 -64
  179. /package/dist/bundle/{chunk-TCOQYXGZ.js → chunk-7YF2MSEC.js} +0 -0
@@ -0,0 +1,230 @@
1
+ import { CliError } from "@wirecat/cli-base";
2
+ import { MEETING_FINDINGS_KIND } from "@wirecat/cli-core/meetings";
3
+ import { FACT_SUMMARIES, proposalRegistry, } from "@wirecat/cli-core/services";
4
+ import { proposerOfAction, } from "@wirecat/cli-core/store";
5
+ import { closeTask } from "../tasks/tasks.js";
6
+ const ownerOnly = (row, source) => Object.assign(row, { source, ownerOnly: true });
7
+ const STORED_STATUS = {
8
+ proposed: "proposed",
9
+ approved: "confirmed",
10
+ executed: "confirmed",
11
+ failed: "confirmed",
12
+ rejected: "rejected",
13
+ };
14
+ const wanted = (row, filter) => ((filter.status ?? "proposed") === "all" || row.status === (filter.status ?? "proposed")) &&
15
+ (filter.project === undefined || row.project === filter.project);
16
+ const storedActions = (store, kind, filter) => store.proposedActions.list({
17
+ kinds: [kind],
18
+ ...((filter.status ?? "proposed") === "proposed" ? { status: "proposed" } : {}),
19
+ ...(filter.by === undefined ? {} : { proposedBy: filter.by }),
20
+ limit: Math.min(filter.offset + filter.limit, 500),
21
+ });
22
+ const accountName = (action) => action.account === null ? null : `${action.account.provider}:${action.account.account}`;
23
+ const meetingRow = (action, batch) => {
24
+ const findings = batch.input.findings;
25
+ const projects = [...new Set(findings.map((one) => ("project" in one ? one.project : undefined)))];
26
+ const outcome = (id) => batch.receipt?.items.find((item) => item.id === id)?.status ?? null;
27
+ const references = [...new Set(findings.flatMap((finding) => finding.evidence.map((one) => one.reference)))];
28
+ return ownerOnly({
29
+ id: action.id,
30
+ kind: "meeting_findings",
31
+ status: batch.status === "proposed" ? "proposed" : batch.receipt?.accepted.length ? "confirmed" : "rejected",
32
+ project: projects.length === 1 && typeof projects[0] === "string" ? projects[0] : null,
33
+ subject: references[0] ?? `meeting_findings:${action.id}`,
34
+ object: null,
35
+ summary: `${findings.length} finding${findings.length === 1 ? "" : "s"}`,
36
+ proposedBy: proposerOfAction(action),
37
+ reason: action.reason,
38
+ evidence: references.slice(0, 5),
39
+ score: null,
40
+ signals: null,
41
+ parts: findings.map((finding) => ({
42
+ id: finding.id,
43
+ kind: finding.kind,
44
+ summary: FACT_SUMMARIES[finding.kind]?.(finding) ?? finding.kind,
45
+ outcome: outcome(finding.id),
46
+ })),
47
+ createdAt: action.createdAt,
48
+ }, accountName(action));
49
+ };
50
+ /**
51
+ * A meeting's cited findings, staged by `meetings actions add`: the same review as `meetings actions confirm`, with
52
+ * the batch's current fingerprint. Owner only, as there.
53
+ */
54
+ export const meetingFindingsKind = (store) => {
55
+ const batchOf = async (action) => {
56
+ if (action.account === null)
57
+ throw new CliError("not_found", `meeting findings ${action.id} name no account`);
58
+ return { account: action.account, batch: await store.meetingFindings.get(action.account, action.id) };
59
+ };
60
+ return {
61
+ kind: "meeting_findings",
62
+ stored: [MEETING_FINDINGS_KIND],
63
+ parts: true,
64
+ list: async (filter) => {
65
+ const rows = [];
66
+ for (const action of await storedActions(store, MEETING_FINDINGS_KIND, filter)) {
67
+ const { batch } = await batchOf(action);
68
+ rows.push(meetingRow(action, batch));
69
+ }
70
+ return rows.filter((row) => wanted(row, filter)).slice(0, filter.offset + filter.limit);
71
+ },
72
+ get: async (id) => {
73
+ const action = await store.proposedActions.get(id);
74
+ return meetingRow(action, (await batchOf(action)).batch);
75
+ },
76
+ decide: async (id, { confirm, by, parts }) => {
77
+ const { account, batch } = await batchOf(await store.proposedActions.get(id));
78
+ const turnedDown = new Set(batch.previous.filter((one) => one.status === "rejected").map((one) => one.id));
79
+ const accept = !confirm
80
+ ? []
81
+ : (parts ?? batch.input.findings.map((finding) => finding.id).filter((one) => !turnedDown.has(one)));
82
+ const reviewed = await store.meetingFindings.review(account, id, { fingerprint: batch.fingerprint, accept, by });
83
+ const made = (reviewed.receipt?.items ?? []).flatMap((item) => item.status === "accepted" && item.reference && !item.reused ? [item.reference] : []);
84
+ return { id, kind: "meeting_findings", status: accept.length ? "confirmed" : "rejected", made };
85
+ },
86
+ };
87
+ };
88
+ /** `msg:telegram/1/77/42` → `telegram`, `1`: the account a task from a message is closed in. */
89
+ const accountOfSource = (source) => {
90
+ const match = /^msg:([a-z][a-z0-9-]*)\/([^/]+)\//.exec(source ?? "");
91
+ return match?.[1] && match[2] ? { provider: match[1], account: decodeURIComponent(match[2]) } : {};
92
+ };
93
+ const closeRow = (task) => {
94
+ const suggestion = task.closeSuggestion;
95
+ if (suggestion === null)
96
+ return undefined;
97
+ return ownerOnly({
98
+ id: `close:${task.key}`,
99
+ kind: "task_close",
100
+ status: "proposed",
101
+ project: task.project,
102
+ subject: task.ref,
103
+ object: null,
104
+ summary: `close as ${suggestion.as}: ${task.title}`,
105
+ proposedBy: { type: "bot", id: suggestion.by, name: suggestion.by, kind: "agent" },
106
+ reason: suggestion.reason,
107
+ evidence: task.source === null ? [] : [task.source],
108
+ score: suggestion.certainty,
109
+ signals: null,
110
+ parts: null,
111
+ createdAt: suggestion.at,
112
+ }, task.project);
113
+ };
114
+ /**
115
+ * An agent's close of an open task, waiting on the owner (`close_suggested_*`). Confirming closes it as suggested;
116
+ * rejecting clears the suggestion, as `tg tasks reject` does. Its id is `close:<task key>`.
117
+ */
118
+ export const taskCloseKind = (store, env) => {
119
+ const suggested = async (limit) => store.tasks.find({
120
+ status: "open",
121
+ where: { sql: "t.close_suggested_as IS NOT NULL", params: [] },
122
+ limit,
123
+ });
124
+ const taskOf = async (id) => {
125
+ const key = id.slice("close:".length);
126
+ const task = await store.tasks.details(key).catch(() => undefined);
127
+ const row = task && closeRow(task);
128
+ if (!task || !row)
129
+ throw new CliError("not_found", `no close waits on task ${key}`);
130
+ return { task, row };
131
+ };
132
+ return {
133
+ kind: "task_close",
134
+ prefix: "close",
135
+ list: async (filter) => {
136
+ if ((filter.status ?? "proposed") !== "proposed" && filter.status !== "all")
137
+ return [];
138
+ const rows = (await suggested(filter.offset + filter.limit)).flatMap((task) => closeRow(task) ?? []);
139
+ const by = filter.by;
140
+ return rows
141
+ .filter((row) => wanted(row, filter))
142
+ .filter((row) => by === undefined ||
143
+ by === "agent" ||
144
+ (typeof by === "object" && row.proposedBy.type === "bot" && row.proposedBy.name === by.bot))
145
+ .sort((a, b) => b.createdAt.localeCompare(a.createdAt));
146
+ },
147
+ get: async (id) => (await taskOf(id)).row,
148
+ decide: async (id, { confirm, reason }) => {
149
+ const { task } = await taskOf(id);
150
+ const suggestion = task.closeSuggestion;
151
+ if (!confirm || suggestion === null) {
152
+ await store.tasks.suggestClose(task.id, null, "owner");
153
+ return { id, kind: "task_close", status: "rejected", made: [] };
154
+ }
155
+ await closeTask(store, env, task.id, {
156
+ ...accountOfSource(task.source),
157
+ as: suggestion.as,
158
+ ...(reason === undefined ? {} : { reason }),
159
+ });
160
+ return { id, kind: "task_close", status: "confirmed", made: [task.ref] };
161
+ },
162
+ };
163
+ };
164
+ /**
165
+ * The kind M3's mail pipeline stages (`proposed_actions.kind = mail_findings`). Until cli-core ships its contract
166
+ * the batch is listed and kept from the generic action kind, whose confirm would turn it into a task, and nobody
167
+ * may decide it here yet. Once cli-core registers the kind itself, its registration wins: see `reviewRegistry`.
168
+ */
169
+ export const MAIL_FINDINGS_KIND = "mail_findings";
170
+ const mailFindingsKind = (store) => {
171
+ const rowOf = (action) => ownerOnly({
172
+ id: action.id,
173
+ kind: MAIL_FINDINGS_KIND,
174
+ status: STORED_STATUS[action.status],
175
+ project: null,
176
+ subject: action.target ?? `${MAIL_FINDINGS_KIND}:${action.id}`,
177
+ object: null,
178
+ summary: MAIL_FINDINGS_KIND,
179
+ proposedBy: proposerOfAction(action),
180
+ reason: action.reason,
181
+ evidence: [],
182
+ score: null,
183
+ signals: null,
184
+ parts: null,
185
+ createdAt: action.createdAt,
186
+ }, accountName(action));
187
+ return {
188
+ kind: MAIL_FINDINGS_KIND,
189
+ stored: [MAIL_FINDINGS_KIND],
190
+ list: async (filter) => (await storedActions(store, MAIL_FINDINGS_KIND, filter)).map(rowOf).filter((row) => wanted(row, filter)),
191
+ get: async (id) => rowOf(await store.proposedActions.get(id)),
192
+ decide: async () => {
193
+ throw new CliError("validation_error", "this memo cannot decide mail findings yet — memo upgrade", {
194
+ reason: "proposal.kind-unsupported",
195
+ });
196
+ },
197
+ };
198
+ };
199
+ /** Every kind `memo review` shows, as `kind:` takes them. */
200
+ export const REVIEW_KINDS = [
201
+ "relationship",
202
+ "relationship_update",
203
+ "key_document",
204
+ "fact",
205
+ "memory",
206
+ "findings",
207
+ "meeting_findings",
208
+ MAIL_FINDINGS_KIND,
209
+ "task_close",
210
+ "action",
211
+ "invoice",
212
+ "payment",
213
+ ];
214
+ /**
215
+ * cli-core's registry with the kinds memo reviews too. A new kind is one more entry here; a kind cli-core
216
+ * registers itself later is kept, and memo's own copy is dropped.
217
+ */
218
+ export const reviewRegistry = (store, env) => {
219
+ const registry = proposalRegistry(store);
220
+ for (const kind of [meetingFindingsKind(store), mailFindingsKind(store), taskCloseKind(store, env)])
221
+ try {
222
+ registry.register(kind);
223
+ }
224
+ catch (error) {
225
+ if (!(error instanceof CliError) || error.code !== "configuration_error")
226
+ throw error;
227
+ }
228
+ return registry;
229
+ };
230
+ //# sourceMappingURL=kinds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kinds.js","sourceRoot":"","sources":["../../src/review/kinds.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- import { type Decided, type Decision, type ProposalFilter, type ProposalRow } from "@wirecat/cli-core/services";
1
+ import { type Decided, type Decision, type ProposalFilter } from "@wirecat/cli-core/services";
2
2
  import type { Decider, MessageStore, Proposer } from "@wirecat/cli-core/store";
3
- export declare const REVIEW_KINDS: readonly ["relationship", "relationship_update", "key_document", "fact", "memory", "findings", "action"];
3
+ import { REVIEW_KINDS, type ReviewRow } from "./kinds.js";
4
+ export { REVIEW_KINDS };
4
5
  export declare const REVIEW_QUERY: {
5
6
  readonly entity: "memo_proposal";
6
7
  readonly backend: "native";
@@ -11,13 +12,15 @@ export declare const proposerName: (proposer: Proposer) => string;
11
12
  type Labels = (ref: string | null) => string | null;
12
13
  /** Titles for every ref a page names, read in one batch; a ref the store does not know has none. */
13
14
  export declare const labelsFor: (store: MessageStore, refs: readonly (string | null)[]) => Promise<Labels>;
14
- export declare const reviewItem: (row: ProposalRow, label: Labels) => {
15
+ export declare const reviewItem: (row: ReviewRow, label: Labels) => {
15
16
  id: string;
16
17
  kind: string;
17
18
  status: "confirmed" | "proposed" | "rejected";
18
19
  title: string;
19
20
  project: string | null;
20
21
  projectTitle: string | null;
22
+ source: string | null;
23
+ ownerOnly: boolean;
21
24
  subject: string;
22
25
  object: string | null;
23
26
  summary: string | null;
@@ -40,7 +43,7 @@ export declare const reviewItem: (row: ProposalRow, label: Labels) => {
40
43
  createdAt: string;
41
44
  };
42
45
  export type ReviewItem = ReturnType<typeof reviewItem>;
43
- export declare const listReview: (store: MessageStore, words: readonly string[], { limit, page }: {
46
+ export declare const listReview: (store: MessageStore, env: NodeJS.ProcessEnv, words: readonly string[], { limit, page }: {
44
47
  limit: number;
45
48
  page: number;
46
49
  }) => Promise<{
@@ -51,6 +54,8 @@ export declare const listReview: (store: MessageStore, words: readonly string[],
51
54
  title: string;
52
55
  project: string | null;
53
56
  projectTitle: string | null;
57
+ source: string | null;
58
+ ownerOnly: boolean;
54
59
  subject: string;
55
60
  object: string | null;
56
61
  summary: string | null;
@@ -74,13 +79,15 @@ export declare const listReview: (store: MessageStore, words: readonly string[],
74
79
  }[];
75
80
  hasMore: boolean;
76
81
  }>;
77
- export declare const showReview: (store: MessageStore, id: string) => Promise<{
82
+ export declare const showReview: (store: MessageStore, env: NodeJS.ProcessEnv, id: string) => Promise<{
78
83
  id: string;
79
84
  kind: string;
80
85
  status: "confirmed" | "proposed" | "rejected";
81
86
  title: string;
82
87
  project: string | null;
83
88
  projectTitle: string | null;
89
+ source: string | null;
90
+ ownerOnly: boolean;
84
91
  subject: string;
85
92
  object: string | null;
86
93
  summary: string | null;
@@ -105,6 +112,21 @@ export declare const showReview: (store: MessageStore, id: string) => Promise<{
105
112
  title: string | null;
106
113
  }[];
107
114
  }>;
115
+ /** Evidence text is written by others: an agent reads it as data, never as instructions. */
116
+ export declare const EVIDENCE_UNTRUSTED: string[];
117
+ /**
118
+ * Who sent an email cited as evidence: the sender's score, and whether the address is known — linked to a person
119
+ * who has another identity — so a stranger's "I am your accountant" stands out. `null` for anything not an email.
120
+ */
121
+ export declare const senderOf: (store: MessageStore, ref: string) => Promise<{
122
+ address: string;
123
+ name: string | null;
124
+ person: string | null;
125
+ known: boolean;
126
+ score: number | null;
127
+ signals: string[];
128
+ demoted: boolean;
129
+ } | null>;
108
130
  /** `17078,17079,17080,fact:5` → `17078-17080,fact:5`: what a confirm step names, short enough to read. */
109
131
  export declare const idRanges: (ids: readonly string[]) => string;
110
132
  export declare const reviewSteps: (items: readonly ReviewItem[]) => ({
@@ -123,7 +145,10 @@ export declare const reviewSteps: (items: readonly ReviewItem[]) => ({
123
145
  why: string;
124
146
  safe_to_auto_execute: false;
125
147
  })[];
126
- /** Two lines a proposal: what it is, then why and the first evidence. */
148
+ /**
149
+ * Grouped by where each proposal came from, the group of the newest first; two lines a proposal, what it is, then
150
+ * why and the first evidence, and a batch's findings under it.
151
+ */
127
152
  export declare const reviewText: (items: readonly ReviewItem[], hasMore: boolean) => string;
128
153
  export declare const decidedText: ({ decided, refused, }: {
129
154
  decided: Decided[];
@@ -140,5 +165,4 @@ export declare const decisionOf: (confirm: boolean, by: Decider, reason?: string
140
165
  * thrown as the error the store would have raised.
141
166
  */
142
167
  export declare const decideOne: (store: MessageStore, id: string, decision: Decision) => Promise<Decided>;
143
- export {};
144
168
  //# sourceMappingURL=review.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../src/review/review.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,WAAW,EAEjB,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAG9E,eAAO,MAAM,YAAY,YACvB,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,MAAM,EACN,QAAQ,EACR,UAAU,EACV,QAAQ,CACA,CAAA;AAIV,eAAO,MAAM,YAAY;qBACf,eAAe;sBACd,QAAQ;;CAOe,CAAA;AAElC,eAAO,MAAM,QAAQ,UACZ,YAAY,SACZ,SAAS,MAAM,EAAE,KACvB,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,QAAQ,CAAC,CAoBlD,CAAA;AAED,eAAO,MAAM,YAAY,aAAc,QAAQ,WAC2C,CAAA;AAE1F,KAAK,MAAM,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,GAAG,IAAI,CAAA;AAEnD,oGAAoG;AACpG,eAAO,MAAM,SAAS,UAAiB,YAAY,QAAQ,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,KAAG,OAAO,CAAC,MAAM,CAUrG,CAAA;AAuBD,eAAO,MAAM,UAAU,QAAS,WAAW,SAAS,MAAM;IACxD,EAAE;IACF,IAAI;IACJ,MAAM;IACN,KAAK;IACL,OAAO;IACP,YAAY;IACZ,OAAO;IACP,MAAM;IACN,OAAO;IACP,QAAQ;IACR,UAAU;IACV,MAAM;IACN,KAAK;IACL,OAAO;;;;;IACP,QAAQ;IACR,KAAK;;;;;;IACL,SAAS;CACT,CAAA;AAEF,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAA;AAItD,eAAO,MAAM,UAAU,UACd,YAAY,SACZ,SAAS,MAAM,EAAE,mBACP;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMjD,CAAA;AAED,eAAO,MAAM,UAAU,UAAiB,YAAY,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO/D,CAAA;AAED,0GAA0G;AAC1G,eAAO,MAAM,QAAQ,QAAS,SAAS,MAAM,EAAE,WAa9C,CAAA;AAkBD,eAAO,MAAM,WAAW,UAAW,SAAS,UAAU,EAAE;;;;;;;;;;;;;;;IAWvD,CAAA;AAQD,yEAAyE;AACzE,eAAO,MAAM,UAAU,UAAW,SAAS,UAAU,EAAE,WAAW,OAAO,WAiBxE,CAAA;AAED,eAAO,MAAM,WAAW,0BAGrB;IACD,OAAO,EAAE,OAAO,EAAE,CAAA;IAClB,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAC3D,WAIkC,CAAA;AAEnC,kGAAkG;AAClG,eAAO,MAAM,UAAU,YAAa,OAAO,MAAM,OAAO,WAAW,MAAM,KAAG,QAG3E,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,UAAiB,YAAY,MAAM,MAAM,YAAY,QAAQ,KAAG,OAAO,CAAC,OAAO,CAKpG,CAAA"}
1
+ {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../src/review/review.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,cAAc,EAGpB,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAE9E,OAAO,EAAE,YAAY,EAAE,KAAK,SAAS,EAAkB,MAAM,YAAY,CAAA;AAEzE,OAAO,EAAE,YAAY,EAAE,CAAA;AAIvB,eAAO,MAAM,YAAY;qBACf,eAAe;sBACd,QAAQ;;CAOe,CAAA;AAElC,eAAO,MAAM,QAAQ,UACZ,YAAY,SACZ,SAAS,MAAM,EAAE,KACvB,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,QAAQ,CAAC,CAoBlD,CAAA;AAED,eAAO,MAAM,YAAY,aAAc,QAAQ,WAC2C,CAAA;AAE1F,KAAK,MAAM,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,KAAK,MAAM,GAAG,IAAI,CAAA;AAEnD,oGAAoG;AACpG,eAAO,MAAM,SAAS,UAAiB,YAAY,QAAQ,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,KAAG,OAAO,CAAC,MAAM,CAUrG,CAAA;AA8BD,eAAO,MAAM,UAAU,QAAS,SAAS,SAAS,MAAM;IACtD,EAAE;IACF,IAAI;IACJ,MAAM;IACN,KAAK;IACL,OAAO;IACP,YAAY;IACZ,MAAM;IACN,SAAS;IACT,OAAO;IACP,MAAM;IACN,OAAO;IACP,QAAQ;IACR,UAAU;IACV,MAAM;IACN,KAAK;IACL,OAAO;;;;;IACP,QAAQ;IACR,KAAK;;;;;;IACL,SAAS;CACT,CAAA;AAEF,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAA;AAItD,eAAO,MAAM,UAAU,UACd,YAAY,OACd,MAAM,CAAC,UAAU,SACf,SAAS,MAAM,EAAE,mBACP;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMjD,CAAA;AAED,eAAO,MAAM,UAAU,UAAiB,YAAY,OAAO,MAAM,CAAC,UAAU,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOvF,CAAA;AAED,4FAA4F;AAC5F,eAAO,MAAM,kBAAkB,UAA6C,CAAA;AAE5E;;;GAGG;AACH,eAAO,MAAM,QAAQ,UAAiB,YAAY,OAAO,MAAM;;;;;;;;SAgB9D,CAAA;AAED,0GAA0G;AAC1G,eAAO,MAAM,QAAQ,QAAS,SAAS,MAAM,EAAE,WAa9C,CAAA;AAkBD,eAAO,MAAM,WAAW,UAAW,SAAS,UAAU,EAAE;;;;;;;;;;;;;;;IAWvD,CAAA;AAUD;;;GAGG;AACH,eAAO,MAAM,UAAU,UAAW,SAAS,UAAU,EAAE,WAAW,OAAO,WA6BxE,CAAA;AAED,eAAO,MAAM,WAAW,0BAGrB;IACD,OAAO,EAAE,OAAO,EAAE,CAAA;IAClB,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAC3D,WAIkC,CAAA;AAEnC,kGAAkG;AAClG,eAAO,MAAM,UAAU,YAAa,OAAO,MAAM,OAAO,WAAW,MAAM,KAAG,QAG3E,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,UAAiB,YAAY,MAAM,MAAM,YAAY,QAAQ,KAAG,OAAO,CAAC,OAAO,CAKpG,CAAA"}
@@ -1,17 +1,11 @@
1
1
  import { CliError } from "@wirecat/cli-base";
2
2
  import { stepOf } from "@wirecat/cli-base/standards";
3
3
  import { queryTerms, refLabel, termField } from "@wirecat/cli-core/cli";
4
+ import { showMail } from "@wirecat/cli-core/mail";
4
5
  import { proposalRegistry, } from "@wirecat/cli-core/services";
5
6
  import { canonicalProject } from "../vocabulary/project.js";
6
- export const REVIEW_KINDS = [
7
- "relationship",
8
- "relationship_update",
9
- "key_document",
10
- "fact",
11
- "memory",
12
- "findings",
13
- "action",
14
- ];
7
+ import { REVIEW_KINDS, reviewRegistry } from "./kinds.js";
8
+ export { REVIEW_KINDS };
15
9
  const STATUSES = ["proposed", "confirmed", "rejected", "all"];
16
10
  export const REVIEW_QUERY = {
17
11
  entity: "memo_proposal",
@@ -71,9 +65,16 @@ const titleOf = (row, label) => {
71
65
  case "fact":
72
66
  return row.summary === null ? subject : `"${row.summary}"`;
73
67
  case "findings":
68
+ case "meeting_findings":
69
+ case "mail_findings":
74
70
  return `${row.summary ?? "findings"}${row.parts?.length ? `: ${row.parts.map((part) => part.kind).join(" · ")}` : ""}`;
71
+ case "task_close":
72
+ return row.summary ?? subject;
75
73
  case "action":
76
74
  return `${row.summary ?? "action"} ${subject}`;
75
+ case "invoice":
76
+ case "payment":
77
+ return row.summary ?? subject;
77
78
  default:
78
79
  return object === null ? subject : `${subject} → ${object}`;
79
80
  }
@@ -85,6 +86,8 @@ export const reviewItem = (row, label) => ({
85
86
  title: titleOf(row, label),
86
87
  project: row.project,
87
88
  projectTitle: label(row.project),
89
+ source: row.source ?? row.project,
90
+ ownerOnly: row.ownerOnly === true,
88
91
  subject: row.subject,
89
92
  object: row.object,
90
93
  summary: row.summary,
@@ -98,20 +101,45 @@ export const reviewItem = (row, label) => ({
98
101
  createdAt: row.createdAt,
99
102
  });
100
103
  const rowRefs = (row) => [row.subject, row.object, row.project];
101
- export const listReview = async (store, words, { limit, page }) => {
104
+ export const listReview = async (store, env, words, { limit, page }) => {
102
105
  const filter = await filterOf(store, words);
103
- const found = await proposalRegistry(store).list({ ...filter, limit, offset: (page - 1) * limit });
106
+ const found = await reviewRegistry(store, env).list({ ...filter, limit, offset: (page - 1) * limit });
104
107
  const label = await labelsFor(store, found.items.flatMap(rowRefs));
105
108
  return { items: found.items.map((row) => reviewItem(row, label)), hasMore: found.hasMore };
106
109
  };
107
- export const showReview = async (store, id) => {
108
- const row = await proposalRegistry(store).get(id);
110
+ export const showReview = async (store, env, id) => {
111
+ const row = await reviewRegistry(store, env).get(id);
109
112
  const label = await labelsFor(store, [...rowRefs(row), ...row.evidence]);
110
113
  return {
111
114
  ...reviewItem(row, label),
112
115
  evidence: row.evidence.map((ref) => ({ ref, title: label(ref) })),
113
116
  };
114
117
  };
118
+ /** Evidence text is written by others: an agent reads it as data, never as instructions. */
119
+ export const EVIDENCE_UNTRUSTED = ["title", "text", "around", "sender.name"];
120
+ /**
121
+ * Who sent an email cited as evidence: the sender's score, and whether the address is known — linked to a person
122
+ * who has another identity — so a stranger's "I am your accountant" stands out. `null` for anything not an email.
123
+ */
124
+ export const senderOf = async (store, ref) => {
125
+ if (!ref.startsWith("msg:email/"))
126
+ return null;
127
+ const email = (await showMail(store, ref).catch(() => []))[0]?.email;
128
+ const from = email?.from;
129
+ if (!from)
130
+ return null;
131
+ const person = from.ref?.startsWith("person:") ? await store.people.personByUid(from.ref.slice(7)) : undefined;
132
+ const identities = person?.identities ?? [];
133
+ return {
134
+ address: from.address,
135
+ name: from.name,
136
+ person: from.ref,
137
+ known: identities.length > 1 || identities.some((one) => one.provider !== "email"),
138
+ score: email.senderScore?.score ?? null,
139
+ signals: email.senderScore?.signals ?? [],
140
+ demoted: email.senderScore?.demoted === true,
141
+ };
142
+ };
115
143
  /** `17078,17079,17080,fact:5` → `17078-17080,fact:5`: what a confirm step names, short enough to read. */
116
144
  export const idRanges = (ids) => {
117
145
  const numbers = ids
@@ -160,24 +188,38 @@ const cut = (text, width) => {
160
188
  const flat = text.replace(/\s+/g, " ").trim();
161
189
  return flat.length > width ? `${flat.slice(0, width - 1)}…` : flat;
162
190
  };
163
- /** Two lines a proposal: what it is, then why and the first evidence. */
191
+ const sourceOf = (item) => item.projectTitle ?? item.source ?? "no project or account";
192
+ /**
193
+ * Grouped by where each proposal came from, the group of the newest first; two lines a proposal, what it is, then
194
+ * why and the first evidence, and a batch's findings under it.
195
+ */
164
196
  export const reviewText = (items, hasMore) => {
165
197
  if (!items.length)
166
198
  return "nothing waits for a decision";
167
199
  const width = items.reduce((most, item) => Math.max(most, item.id.length), 0);
168
- const lines = items.flatMap((item) => {
169
- const head = [
170
- item.id.padEnd(width),
171
- item.kind,
172
- cut(item.title, 90),
173
- ...(item.score === null ? [] : [item.score.toFixed(2)]),
174
- item.proposer,
175
- day(item.createdAt),
176
- ...(item.status === "proposed" ? [] : [item.status]),
177
- ].join(" ");
178
- const why = [item.reason && cut(item.reason, 100), item.evidence[0]].filter(Boolean).join(" · ");
179
- return why ? [head, `${" ".repeat(width)} ${why}`] : [head];
180
- });
200
+ const groups = new Map();
201
+ for (const item of items)
202
+ groups.set(sourceOf(item), [...(groups.get(sourceOf(item)) ?? []), item]);
203
+ const pad = " ".repeat(width);
204
+ const lines = [...groups].flatMap(([source, group], at) => [
205
+ ...(at === 0 ? [] : [""]),
206
+ source,
207
+ ...group.flatMap((item) => {
208
+ const head = [
209
+ item.id.padEnd(width),
210
+ item.kind,
211
+ cut(item.title, 90),
212
+ ...(item.score === null ? [] : [item.score.toFixed(2)]),
213
+ item.proposer,
214
+ day(item.createdAt),
215
+ ...(item.ownerOnly ? ["owner only"] : []),
216
+ ...(item.status === "proposed" ? [] : [item.status]),
217
+ ].join(" ");
218
+ const why = [item.reason && cut(item.reason, 100), item.evidence[0]].filter(Boolean).join(" · ");
219
+ const parts = (item.parts ?? []).map((part) => `${pad} ${item.id}/${part.id} ${part.kind} ${cut(part.summary, 80)}${part.outcome ? ` ${part.outcome}` : ""}`);
220
+ return [head, ...(why ? [`${pad} ${why}`] : []), ...parts];
221
+ }),
222
+ ]);
181
223
  return [...lines, `${items.length} shown${hasMore ? ", more with --page" : ""}`].join("\n");
182
224
  };
183
225
  export const decidedText = ({ decided, refused, }) => [
@@ -1 +1 @@
1
- {"version":3,"file":"review.js","sourceRoot":"","sources":["../../src/review/review.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE5C,OAAO,EAAuB,MAAM,EAAE,MAAM,6BAA6B,CAAA;AACzE,OAAO,EAAE,UAAU,EAAmB,QAAQ,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACxF,OAAO,EAKL,gBAAgB,GACjB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAE3D,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,cAAc;IACd,qBAAqB;IACrB,cAAc;IACd,MAAM;IACN,QAAQ;IACR,UAAU;IACV,QAAQ;CACA,CAAA;AAEV,MAAM,QAAQ,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,CAAU,CAAA;AAEtE,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,MAAM,EAAE,eAAe;IACvB,OAAO,EAAE,QAAQ;IACjB,MAAM,EAAE;QACN,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,aAAa,CAAC;QACzC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,wBAAwB,CAAC;QACjD,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC;QACjC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;KACrE;CAC+B,CAAA;AAElC,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAC3B,KAAmB,EACnB,KAAwB,EAC2B,EAAE;IACrD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAA;IACvD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACpC,MAAM,KAAK,GAAG,KAAK;SAChB,GAAG,CAAC,MAAM,CAAC;QACZ,EAAE,KAAK,CAAC,GAAG,CAAC;SACX,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;SACxB,MAAM,CAAC,OAAO,CAAC,CAAA;IAClB,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAE,YAAkC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;IACxF,IAAI,OAAO,KAAK,SAAS;QACvB,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,OAAO,YAAY,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;YACvG,KAAK,EAAE,MAAM;SACd,CAAC,CAAA;IACJ,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC1B,OAAO;QACL,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;QACrF,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,OAAO,IAAI,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC;QACvF,MAAM,EAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAA2C,IAAI,UAAU;KACrF,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAkB,EAAE,EAAE,CACjD,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AAI1F,oGAAoG;AACpG,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,KAAmB,EAAE,IAAgC,EAAmB,EAAE;IACxG,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAiB,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAA;IACvG,MAAM,SAAS,GAA4B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAA;IACzG,OAAO,CAAC,GAAG,EAAE,EAAE;QACb,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,IAAI,CAAA;QAC7B,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAClC,OAAO,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,aAAa;YAC3F,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IACvB,CAAC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,OAAO,GAAG,CAAC,GAAgB,EAAE,KAAa,EAAE,EAAE;IAClD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,OAAO,CAAA;IACjD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAA;IAC9C,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,cAAc;YACjB,OAAO,GAAG,OAAO,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;QAC3E,KAAK,qBAAqB;YACxB,OAAO,GAAG,OAAO,KAAK,GAAG,CAAC,OAAO,IAAI,QAAQ,EAAE,CAAA;QACjD,KAAK,cAAc;YACjB,OAAO,GAAG,OAAO,sBAAsB,MAAM,EAAE,CAAA;QACjD,KAAK,MAAM;YACT,OAAO,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,GAAG,CAAA;QAC5D,KAAK,UAAU;YACb,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,UAAU,GAAG,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;QACxH,KAAK,QAAQ;YACX,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,QAAQ,IAAI,OAAO,EAAE,CAAA;QAChD;YACE,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,MAAM,MAAM,EAAE,CAAA;IAC/D,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAgB,EAAE,KAAa,EAAE,EAAE,CAAC,CAAC;IAC9D,EAAE,EAAE,GAAG,CAAC,EAAE;IACV,IAAI,EAAE,GAAG,CAAC,IAAI;IACd,MAAM,EAAE,GAAG,CAAC,MAAM;IAClB,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC;IAC1B,OAAO,EAAE,GAAG,CAAC,OAAO;IACpB,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;IAChC,OAAO,EAAE,GAAG,CAAC,OAAO;IACpB,MAAM,EAAE,GAAG,CAAC,MAAM;IAClB,OAAO,EAAE,GAAG,CAAC,OAAO;IACpB,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC;IACtC,UAAU,EAAE,GAAG,CAAC,UAAU;IAC1B,MAAM,EAAE,GAAG,CAAC,MAAM;IAClB,KAAK,EAAE,GAAG,CAAC,KAAK;IAChB,OAAO,EAAE,GAAG,CAAC,OAAO;IACpB,QAAQ,EAAE,GAAG,CAAC,QAAQ;IACtB,KAAK,EAAE,GAAG,CAAC,KAAK;IAChB,SAAS,EAAE,GAAG,CAAC,SAAS;CACzB,CAAC,CAAA;AAIF,MAAM,OAAO,GAAG,CAAC,GAAgB,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;AAE5E,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAC7B,KAAmB,EACnB,KAAwB,EACxB,EAAE,KAAK,EAAE,IAAI,EAAmC,EAChD,EAAE;IACF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IAC3C,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,CAAA;IAClG,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;IAClE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAA;AAC5F,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,KAAmB,EAAE,EAAU,EAAE,EAAE;IAClE,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACjD,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;IACxE,OAAO;QACL,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;QACzB,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;KAClE,CAAA;AACH,CAAC,CAAA;AAED,0GAA0G;AAC1G,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAsB,EAAE,EAAE;IACjD,MAAM,OAAO,GAAG,GAAG;SAChB,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAChC,GAAG,CAAC,MAAM,CAAC;SACX,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IACxB,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,GAAI,CAAC;QACvC,IAAI,GAAG,GAAG,EAAE,CAAA;QACZ,OAAO,GAAG,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,KAAM,OAAO,CAAC,GAAG,CAAY,GAAG,CAAC;YAAE,GAAG,EAAE,CAAA;QAC3F,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC/E,EAAE,GAAG,GAAG,GAAG,CAAC,CAAA;IACd,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACvE,CAAC,CAAA;AAED,MAAM,YAAY,GAAmB;IACnC,EAAE,EAAE,gBAAgB;IACpB,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,gBAAgB;IACzB,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACvC,GAAG,EAAE,yEAAyE;CAC/E,CAAA;AAED,MAAM,SAAS,GAAmB;IAChC,EAAE,EAAE,aAAa;IACjB,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,aAAa;IACtB,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACtC,GAAG,EAAE,gCAAgC;CACtC,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAA4B,EAAE,EAAE;IAC1D,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,CAAA;IAClE,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IACxB,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAA;IAClC,OAAO;QACL,MAAM,CAAC,YAAY,EAAE;YACnB,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE;YACvD,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE;SAClC,CAAC;QACF,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;KAC9C,CAAA;AACH,CAAC,CAAA;AAED,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AAC7C,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,EAAE;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;IAC7C,OAAO,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;AACpE,CAAC,CAAA;AAED,yEAAyE;AACzE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAA4B,EAAE,OAAgB,EAAE,EAAE;IAC3E,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,8BAA8B,CAAA;IACxD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;IAC7E,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACnC,MAAM,IAAI,GAAG;YACX,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;YACrB,IAAI,CAAC,IAAI;YACT,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;YACnB,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,IAAI,CAAC,QAAQ;YACb,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;YACnB,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACrD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACZ,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAChG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAC9D,CAAC,CAAC,CAAA;IACF,OAAO,CAAC,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC,MAAM,SAAS,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC7F,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,OAAO,EACP,OAAO,GAIR,EAAE,EAAE,CACH;IACE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAChH,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC;CAC7F,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAA;AAEnC,kGAAkG;AAClG,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAgB,EAAE,EAAW,EAAE,MAAe,EAAY,EAAE;IACrF,MAAM,GAAG,GAAG,MAAM,EAAE,IAAI,EAAE,CAAA;IAC1B,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;AAC3E,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,KAAmB,EAAE,EAAU,EAAE,QAAkB,EAAoB,EAAE;IACvG,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAA;IACjF,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;IAC1B,IAAI,OAAO;QAAE,MAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAC1F,OAAO,OAAO,CAAC,CAAC,CAAY,CAAA;AAC9B,CAAC,CAAA"}
1
+ {"version":3,"file":"review.js","sourceRoot":"","sources":["../../src/review/review.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import type { MessageStore } from "@wirecat/cli-core/store";
2
+ /** How many proposals wait for the owner about these references: as subject, linked object or project. */
3
+ export declare const waitingAbout: (store: MessageStore, env: NodeJS.ProcessEnv, refs: readonly string[]) => Promise<{
4
+ count: number;
5
+ complete: boolean;
6
+ }>;
7
+ /**
8
+ * The owner's morning look, with no model call: per mail account the threads with new mail since `since`, what
9
+ * is owed and waiting now, and how far each agent has processed it; then what was proposed since, and what waits.
10
+ */
11
+ export declare const reviewStatus: (store: MessageStore, env: NodeJS.ProcessEnv, since: number, now?: number) => Promise<{
12
+ since: string;
13
+ at: string;
14
+ mail: {
15
+ account: string;
16
+ threads: number;
17
+ owed: number;
18
+ waiting: number;
19
+ coverage: {
20
+ holder: string;
21
+ through_id: number;
22
+ through_received_at: string | null;
23
+ held: number;
24
+ read: number;
25
+ skipped: {
26
+ bulk: number;
27
+ envelope: number;
28
+ partial: number;
29
+ draft: number;
30
+ };
31
+ updated_at: string;
32
+ }[];
33
+ }[];
34
+ proposed: {
35
+ count: number;
36
+ kinds: Record<string, number>;
37
+ complete: boolean;
38
+ };
39
+ waiting: {
40
+ count: number;
41
+ kinds: Record<string, number>;
42
+ complete: boolean;
43
+ };
44
+ quiet: boolean;
45
+ }>;
46
+ export type ReviewStatus = Awaited<ReturnType<typeof reviewStatus>>;
47
+ export declare const reviewStatusText: (status: ReviewStatus) => string;
48
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/review/status.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAyB3D,0GAA0G;AAC1G,eAAO,MAAM,YAAY,UAAiB,YAAY,OAAO,MAAM,CAAC,UAAU,QAAQ,SAAS,MAAM,EAAE;;;EAYtG,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,UAAiB,YAAY,OAAO,MAAM,CAAC,UAAU,SAAS,MAAM;;;;;;;;;;;;;;;;;;;;;;;;QAsB7E,KAAK;QAAkB,KAAK;QAAmB,QAAQ;;;QACxD,KAAK;QAAiB,KAAK;QAAkB,QAAQ;;;EAMnE,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAA;AAUnE,eAAO,MAAM,gBAAgB,WAAY,YAAY,KAAG,MA0BvD,CAAA"}