@wirecat/cli-memo 0.131.52 → 0.131.54

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 (112) hide show
  1. package/dist/bin/memo.js +2 -2
  2. package/dist/bundle/{all-profiles-ZFVBLT2D.js → all-profiles-PJR2VHDP.js} +5 -5
  3. package/dist/bundle/{anthropic-UG2YHOT7.js → anthropic-ZUDIWREK.js} +3 -3
  4. package/dist/bundle/{app-server-AQYA4TB6.js → app-server-EYNQ4L2V.js} +35 -35
  5. package/dist/bundle/auto-3IGKVB3G.js +86 -0
  6. package/dist/bundle/{bun-QJUFWKEZ.js → bun-W2ZP6I6Z.js} +2 -2
  7. package/dist/bundle/{bun-sqlite-GWVRHYF4.js → bun-sqlite-T2CTJ6AR.js} +2 -2
  8. package/dist/bundle/{chunk-RYY4YRKQ.js → chunk-26QKDK5P.js} +5 -5
  9. package/dist/bundle/{chunk-EEEZGK2J.js → chunk-2NVP4FZH.js} +1 -1
  10. package/dist/bundle/{chunk-NNUP36UQ.js → chunk-34GJQ4ZR.js} +1 -1
  11. package/dist/bundle/{chunk-6PQIXQFD.js → chunk-3MWNNJII.js} +8 -8
  12. package/dist/bundle/{chunk-AU5GAMGM.js → chunk-4335SGVD.js} +2170 -1265
  13. package/dist/bundle/{chunk-M64NVDB4.js → chunk-4VQ7FPNW.js} +3 -3
  14. package/dist/bundle/{chunk-6BVWU2UM.js → chunk-5UM2OEOR.js} +2 -2
  15. package/dist/bundle/{chunk-S7X5ZMQN.js → chunk-643B3X4D.js} +2 -2
  16. package/dist/bundle/{chunk-G52Y3KOO.js → chunk-6NJ5OI2S.js} +1 -1
  17. package/dist/bundle/{chunk-X6XIW76O.js → chunk-7ZO2LAFF.js} +5 -5
  18. package/dist/bundle/{chunk-4ISZPK6D.js → chunk-AF2ZDP3M.js} +1 -1
  19. package/dist/bundle/{chunk-6GF4TIVM.js → chunk-AYY5CYJJ.js} +1 -1
  20. package/dist/bundle/{chunk-2CBOPOC7.js → chunk-B5VQSSL2.js} +12 -12
  21. package/dist/bundle/{chunk-G4Z4WSIG.js → chunk-BC7N6IQ6.js} +1 -1
  22. package/dist/bundle/{chunk-3O46NA2H.js → chunk-BEO6VJ2E.js} +47 -47
  23. package/dist/bundle/{chunk-NIUWQP7F.js → chunk-CADGAURO.js} +28 -28
  24. package/dist/bundle/{chunk-ETYAJPIT.js → chunk-DDD3CXHR.js} +20 -20
  25. package/dist/bundle/{chunk-ERZBEQAY.js → chunk-DIFRVXKQ.js} +297 -261
  26. package/dist/bundle/{chunk-U4ZD5SYO.js → chunk-FUINFNUC.js} +1 -1
  27. package/dist/bundle/{chunk-IALGFO44.js → chunk-GESLAB4N.js} +2 -2
  28. package/dist/bundle/{chunk-LUHMRW3P.js → chunk-HIF4YBD7.js} +4 -4
  29. package/dist/bundle/{chunk-FWCFEJWD.js → chunk-IRFHHNSX.js} +159 -151
  30. package/dist/bundle/{chunk-VOWEZBOJ.js → chunk-IVDBHH3N.js} +1 -1
  31. package/dist/bundle/{chunk-7SVHEGRO.js → chunk-JB43Q2QL.js} +1 -1
  32. package/dist/bundle/{chunk-ZVR6S4XB.js → chunk-JBQP2M7J.js} +7 -7
  33. package/dist/bundle/{chunk-MICF3K6S.js → chunk-JGY2PJ3N.js} +12 -12
  34. package/dist/bundle/{chunk-55GFDV24.js → chunk-JI4LJ563.js} +5 -5
  35. package/dist/bundle/{chunk-N5J6GT7C.js → chunk-K236JZLF.js} +4 -4
  36. package/dist/bundle/{chunk-NZKDNBYE.js → chunk-KK2ATSEC.js} +6 -6
  37. package/dist/bundle/{chunk-XIHQOSCT.js → chunk-KTVYCPJW.js} +1 -1
  38. package/dist/bundle/{chunk-ZKXIZD4C.js → chunk-LCE5LBZC.js} +4 -4
  39. package/dist/bundle/{chunk-EQUPZVV6.js → chunk-ME5RFKKD.js} +5 -5
  40. package/dist/bundle/{chunk-EKQNL6VJ.js → chunk-MFVZXEQN.js} +21 -21
  41. package/dist/bundle/{chunk-IKG2OPHU.js → chunk-MGDBKE7E.js} +6 -6
  42. package/dist/bundle/{chunk-6ZQK3L35.js → chunk-MU4MPJCU.js} +2 -2
  43. package/dist/bundle/{chunk-A36ASW3I.js → chunk-MV5W4FLV.js} +1 -1
  44. package/dist/bundle/{chunk-AGOUP5AH.js → chunk-O7CBAY6J.js} +4 -4
  45. package/dist/bundle/{chunk-I4LXP4HQ.js → chunk-OKERVM3M.js} +4 -4
  46. package/dist/bundle/{chunk-LX65W7IK.js → chunk-OQVLH2BS.js} +4 -4
  47. package/dist/bundle/{chunk-G7K4J3NS.js → chunk-OSPAMIIY.js} +3 -3
  48. package/dist/bundle/{chunk-5WT6SEXS.js → chunk-P3MKPY7D.js} +21 -9
  49. package/dist/bundle/{chunk-PKVXZZTM.js → chunk-P5UTNYA7.js} +2 -2
  50. package/dist/bundle/{chunk-2GEV2TXW.js → chunk-PHP3T567.js} +3 -3
  51. package/dist/bundle/{chunk-OIPJYDLZ.js → chunk-PSJB456T.js} +1 -1
  52. package/dist/bundle/{chunk-65576OCE.js → chunk-RSBROHX4.js} +1 -1
  53. package/dist/bundle/{chunk-NUQ3N3V3.js → chunk-RX6JTLKD.js} +7 -7
  54. package/dist/bundle/{chunk-KGPD3OCD.js → chunk-SR3ZNX24.js} +259 -154
  55. package/dist/bundle/{chunk-NOEXRGYH.js → chunk-T5WGWLY2.js} +10 -10
  56. package/dist/bundle/{chunk-ZVJAZXME.js → chunk-UBZN4EWJ.js} +4 -4
  57. package/dist/bundle/{chunk-OWS67HTV.js → chunk-VBYV6XQI.js} +2 -2
  58. package/dist/bundle/{chunk-ZYQEWB6P.js → chunk-VPCNLTME.js} +2 -2
  59. package/dist/bundle/{chunk-TM6R3Z45.js → chunk-VQTU4ILC.js} +1 -1
  60. package/dist/bundle/{chunk-PBM5GH7S.js → chunk-VXZ7FWKU.js} +2 -2
  61. package/dist/bundle/{chunk-TQS6ZKC3.js → chunk-WYZDNDQ5.js} +266 -265
  62. package/dist/bundle/{chunk-GJWNHWG7.js → chunk-YHHR7NQ3.js} +51 -36
  63. package/dist/bundle/{chunk-A7DXLOMS.js → chunk-ZRBXOHNH.js} +1 -1
  64. package/dist/bundle/{chunk-U6E3BGHO.js → chunk-ZTM4UUCP.js} +9 -9
  65. package/dist/bundle/{command-contract-7AADJ3UC.js → command-contract-EWPKHGAZ.js} +11 -11
  66. package/dist/bundle/{decode-XMIBTI5O.js → decode-UWT3Y66W.js} +2 -2
  67. package/dist/bundle/{echarts-W7DPDJA5.js → echarts-7VGTR45R.js} +2 -2
  68. package/dist/bundle/{embed-EP3KKO6Y.js → embed-CM2QSTNK.js} +3 -3
  69. package/dist/bundle/{embedder-ENGCALJ7.js → embedder-CDCAMVV7.js} +6 -6
  70. package/dist/bundle/{entry-BGSKREOS.js → entry-WHEWBNJL.js} +4 -4
  71. package/dist/bundle/failure-LGDSH47N.js +66 -0
  72. package/dist/bundle/{first-run-4EBMV2EM.js → first-run-ZBIQO5RZ.js} +5 -5
  73. package/dist/bundle/{first-screen-2TM3BF2Y.js → first-screen-CUAY5N6E.js} +12 -12
  74. package/dist/bundle/{instructions-A42XETMK.js → instructions-LYKSTUGQ.js} +1 -1
  75. package/dist/bundle/{mcp-5LAWRSJK.js → mcp-I72UY3QP.js} +35 -35
  76. package/dist/bundle/memo.js +6 -6
  77. package/dist/bundle/{node-IRL66JK2.js → node-LFRTSZBZ.js} +2 -2
  78. package/dist/bundle/{node-sqlite-SOGTH72B.js → node-sqlite-Y47T5FTT.js} +3 -3
  79. package/dist/bundle/{oauth-RB5W3AC7.js → oauth-YM5C6VS3.js} +4 -4
  80. package/dist/bundle/{open-552EJ4JC.js → open-WPA4DW5G.js} +2 -2
  81. package/dist/bundle/{openai-ZLOHEEDH.js → openai-RCPT23DA.js} +7 -7
  82. package/dist/bundle/{process-46SUXGWW.js → process-P2X2KFMR.js} +1 -1
  83. package/dist/bundle/{program-ZLWKMT65.js → program-AJPT7C4I.js} +190 -106
  84. package/dist/bundle/{prompt-2NHJSYKX.js → prompt-65WPTVYC.js} +2 -2
  85. package/dist/bundle/{recognize-2LDM6KHL.js → recognize-MEFMK7HT.js} +1 -1
  86. package/dist/bundle/{remote-DBYHHENF.js → remote-4XIR3ZYK.js} +4 -4
  87. package/dist/bundle/{rerank-N5T2TIIY.js → rerank-YRLAXFFL.js} +4 -4
  88. package/dist/bundle/{serve-S6B54R2F.js → serve-6SPZH6CY.js} +6 -6
  89. package/dist/bundle/server-FB75UHSF.js +48 -0
  90. package/dist/bundle/server-IELXA6S2.js +61 -0
  91. package/dist/bundle/{server-QH6AKPRV.js → server-ISFSZGGI.js} +50 -50
  92. package/dist/bundle/{state-ZXZGIIJW.js → state-G34NVZ7F.js} +3 -3
  93. package/dist/bundle/{store-PNJNDMQ4.js → store-6U4SYK4Q.js} +17 -9
  94. package/dist/bundle/store-maintenance-command-ONVPBZLT.js +48 -0
  95. package/dist/bundle/update-SAJHFRB2.js +69 -0
  96. package/dist/knowledge/relationships.d.ts +5 -1
  97. package/dist/knowledge/relationships.d.ts.map +1 -1
  98. package/dist/schedule/mail-triage-input.d.ts +21 -5
  99. package/dist/schedule/mail-triage-input.d.ts.map +1 -1
  100. package/dist/schedule/mail-triage-input.js +111 -12
  101. package/dist/schedule/mail-triage-input.js.map +1 -1
  102. package/dist/version.d.ts +1 -1
  103. package/dist/version.js +1 -1
  104. package/package.json +2 -2
  105. package/skills/morning-digest/SKILL.md +38 -13
  106. package/dist/bundle/auto-2AY6K6DI.js +0 -86
  107. package/dist/bundle/failure-ZKQVXWAB.js +0 -66
  108. package/dist/bundle/server-KZZHFPTZ.js +0 -61
  109. package/dist/bundle/server-WAIPBBM7.js +0 -48
  110. package/dist/bundle/store-maintenance-command-2ZVV3DGA.js +0 -48
  111. package/dist/bundle/update-6HXLLGTQ.js +0 -69
  112. /package/dist/bundle/{chunk-DPRGC5YX.js → chunk-2H36DXV7.js} +0 -0
@@ -1,4 +1,7 @@
1
+ import { AGENT_INPUT_MAX_CHARS } from "@wirecat/cli-core/cli";
1
2
  const SKILL = "mail-triage";
3
+ /** cli-core cuts past its cap mid-text; this input stays under it with room for the lines the cut itself adds. */
4
+ export const INPUT_BUDGET = AGENT_INPUT_MAX_CHARS - 1_000;
2
5
  const FIELDS = [
3
6
  "ref",
4
7
  "chat_id",
@@ -11,43 +14,139 @@ const FIELDS = [
11
14
  "email.sender_identities",
12
15
  "email.bulk",
13
16
  "email.excerpt_only",
17
+ "email.cursor",
18
+ "email.findings_key",
14
19
  ].join(",");
15
20
  const stepArg = (review, step, arg) => review.next?.find((one) => one.step === step)?.args?.[arg];
16
- /** One mailbox, compactly: the key and cursor the skill's steps 1 and 6 name, then one JSON line per email. */
17
- export const mailboxBlock = (source, review) => {
18
- const items = review.items ?? [];
19
- const key = stepArg(review, "mail-findings.add", "key");
20
- const cursor = stepArg(review, "mail-messages.acknowledge", "cursor");
21
+ /** The email as the agent sees it: the per-email cursor and key are this file's, not the agent's. */
22
+ const shown = (item) => {
23
+ if (!item.email)
24
+ return JSON.stringify(item);
25
+ const { cursor: _cursor, findings_key: _key, ...email } = item.email;
26
+ return JSON.stringify({ ...item, email });
27
+ };
28
+ const cutsOf = (items) => {
29
+ const cuts = new Map();
30
+ for (const item of items) {
31
+ const cursor = item.email?.cursor;
32
+ if (!cursor)
33
+ return undefined;
34
+ const cut = cuts.get(cursor) ?? { cursor, key: item.email?.findings_key, items: [] };
35
+ cut.items.push(item);
36
+ cuts.set(cursor, cut);
37
+ }
38
+ // A cursor is `<store id>.<read time>`, and one read gives one read time: the id orders them.
39
+ return [...cuts.values()].sort((a, b) => Number.parseInt(a.cursor, 10) - Number.parseInt(b.cursor, 10));
40
+ };
41
+ const lines = (source, review, { key, cursor, items, waiting }) => {
21
42
  const left = (review.missing ?? []).map((one) => one.why).filter(Boolean);
22
43
  return [
23
44
  `## ${source}`,
24
45
  ...(key ? [`key: ${key}`] : []),
25
46
  `cursor: ${cursor ?? "none"}`,
26
- `more mail waits past the cursor: ${review.meta?.complete === false}`,
47
+ waiting > 0
48
+ ? `more mail waits past the cursor: true — ${waiting} emails did not fit this input; the next run reads them, ` +
49
+ "do not review this mailbox again now"
50
+ : `more mail waits past the cursor: ${review.meta?.complete === false}`,
27
51
  ...(left.length ? [`left out: ${left.join("; ")}`] : []),
52
+ ...(items.some((item) => item.text_cut)
53
+ ? [
54
+ "text_cut: only the start of that email's text fits here; read it whole with " +
55
+ "`memo messages show '<ref>' --trimmed --json` before you stage a finding from it",
56
+ ]
57
+ : []),
28
58
  items.length ? "emails, one JSON per line:" : "no emails; acknowledge the cursor.",
29
- ...items.map((item) => JSON.stringify(item)),
59
+ ...items.map(shown),
30
60
  ].join("\n");
31
61
  };
62
+ /** Text shorter than this tells the agent too little to act on; past the first mailbox it waits for a run with room. */
63
+ const LEAST_TEXT = 300;
64
+ const startOf = (text, length) => {
65
+ const end = /[\uD800-\uDBFF]/.test(text.charAt(length - 1)) ? length - 1 : length;
66
+ return text.slice(0, Math.max(0, end));
67
+ };
68
+ /** The group with every text cut to one share of the room, or `undefined` when a share is under `least`. */
69
+ const shortened = (items, room, least, block) => {
70
+ const longest = items.reduce((most, item) => Math.max(most, item.text?.length ?? 0), 0);
71
+ const cut = (share) => items.map((item) => (item.text?.length ?? 0) <= share ? item : { ...item, text: startOf(item.text ?? "", share), text_cut: true });
72
+ let share = longest;
73
+ for (let over = block(cut(share)).length - room; over > 0; over = block(cut(share)).length - room) {
74
+ if (share === 0)
75
+ return undefined;
76
+ share = Math.max(0, share - Math.ceil(over / items.length));
77
+ }
78
+ return share < Math.min(least, longest) ? undefined : cut(share);
79
+ };
80
+ /**
81
+ * One mailbox, compactly: the key and cursor the skill's steps 1 and 6 name, then one JSON line per email. Past
82
+ * `room` it keeps the emails up to a cut in store order and gives that cut's cursor and key, so acknowledging them
83
+ * never moves the mark past an email left out. When even the first cut does not fit, its texts are shortened to fit;
84
+ * `alone` (nothing else shown yet) lets them go below `LEAST_TEXT`, so some mailbox always moves on.
85
+ */
86
+ export const mailboxBlock = (source, review, room = Number.POSITIVE_INFINITY, alone = false) => {
87
+ const items = review.items ?? [];
88
+ const key = stepArg(review, "mail-findings.add", "key");
89
+ const cursor = stepArg(review, "mail-messages.acknowledge", "cursor");
90
+ const whole = lines(source, review, { key, cursor, items, waiting: 0 });
91
+ if (whole.length <= room)
92
+ return whole;
93
+ const cuts = cutsOf(items) ?? [];
94
+ let fit;
95
+ for (let end = 1; end < cuts.length; end++) {
96
+ const kept = new Set(cuts.slice(0, end).flatMap((cut) => cut.items));
97
+ const at = cuts[end - 1];
98
+ const block = lines(source, review, {
99
+ key: at?.key,
100
+ cursor: at?.cursor,
101
+ items: items.filter((item) => kept.has(item)),
102
+ waiting: items.length - kept.size,
103
+ });
104
+ if (block.length > room)
105
+ break;
106
+ fit = block;
107
+ }
108
+ if (fit)
109
+ return fit;
110
+ const [first] = cuts;
111
+ if (first) {
112
+ const block = (group) => lines(source, review, {
113
+ key: first.key,
114
+ cursor: first.cursor,
115
+ items: group,
116
+ waiting: items.length - group.length,
117
+ });
118
+ const group = shortened(first.items, room, alone ? 0 : LEAST_TEXT, block);
119
+ if (group)
120
+ return block(group);
121
+ }
122
+ return `## ${source}\nno room in this input: do not acknowledge this mailbox and do not review it now; the next run reads it.`;
123
+ };
32
124
  const PREAMBLE = "Your first reads are below, already done: the mail-triage skill and each mailbox's review. Do not run " +
33
125
  "`memo skill show` or `memo mail review`. Start at step 2 of the skill. Stage each mailbox's findings in ONE " +
34
126
  "`memo mail findings add` call, all mailboxes in the same turn, without `--dry-run`. Then acknowledge each " +
35
- "mailbox's cursor (also a mailbox with nothing to stage), then write the report.";
127
+ 'mailbox\'s cursor (also a mailbox with nothing to stage) except one marked "do not acknowledge", then write the report.';
36
128
  /**
37
129
  * What the scheduled mail-triage agent gets on its stdin: the skill and each mailbox's review, so it starts at the
38
- * triage and spends no turns reading them.
130
+ * triage and spends no turns reading them. It stays under `INPUT_BUDGET` by leaving whole emails out.
39
131
  */
40
132
  export const mailTriageInput = (mailboxes) => async (schedule, run) => {
41
133
  const holder = schedule.onNewMail;
42
134
  if (!holder)
43
135
  return undefined;
44
136
  const skill = await run(["skill", "show", SKILL]);
45
- const blocks = [];
137
+ const parts = [PREAMBLE, "# The skill", skill.trim(), "# The review"];
138
+ const separator = "\n\n";
139
+ let used = parts.join(separator).length + separator.length * 2;
140
+ let alone = true;
46
141
  for (const address of await mailboxes()) {
47
142
  const source = `email:${address}`;
48
143
  const review = JSON.parse(await run(["mail", "review", "--holder", holder, "--source", source, `--json=${FIELDS}`]));
49
- blocks.push(mailboxBlock(source, review));
144
+ const block = mailboxBlock(source, review, INPUT_BUDGET - used - separator.length, alone);
145
+ parts.push(block);
146
+ used += block.length + separator.length;
147
+ if (block.includes("\nemails, one JSON per line:"))
148
+ alone = false;
50
149
  }
51
- return [PREAMBLE, "# The skill", skill.trim(), "# The review", ...blocks, ""].join("\n\n");
150
+ return [...parts, ""].join(separator);
52
151
  };
53
152
  //# sourceMappingURL=mail-triage-input.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mail-triage-input.js","sourceRoot":"","sources":["../../src/schedule/mail-triage-input.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mail-triage-input.js","sourceRoot":"","sources":["../../src/schedule/mail-triage-input.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.131.52";
1
+ export declare const VERSION = "0.131.54";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = "0.131.52";
1
+ export const VERSION = "0.131.54";
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wirecat/cli-memo",
3
- "version": "0.131.52",
3
+ "version": "0.131.54",
4
4
  "description": "Context about people across messengers, notes and mail, from a local store",
5
5
  "mcpName": "dev.wirecat/cli-memo",
6
6
  "license": "Apache-2.0",
@@ -61,7 +61,7 @@
61
61
  "dependencies": {
62
62
  "@modelcontextprotocol/server": "2.4.0",
63
63
  "@wirecat/cli-base": "0.82.0",
64
- "@wirecat/cli-core": "0.605.0",
64
+ "@wirecat/cli-core": "0.606.0",
65
65
  "commander": "15.0.0",
66
66
  "disposable-email-domains-js": "1.26.0",
67
67
  "postal-mime": "4.1.4",
@@ -2,7 +2,7 @@
2
2
  name: morning-digest
3
3
  description: >-
4
4
  Write the owner's morning report from memo's store: read `memo review agenda --compact` once, follow only the
5
- lines it points at (projects that moved, people owed a reply, sections it cut), and list as gaps what searching
5
+ lines it points at (projects that moved, people owed a reply, sections it cut), and add what searching
6
6
  found that the agenda did not show. Use for the scheduled morning run; it reads only and never decides.
7
7
  ---
8
8
 
@@ -17,7 +17,9 @@ You run on a schedule with `Bash(memo:*)` under `MEMO_READ_ONLY`. Every write is
17
17
  - Never confirm, reject, send, reply, tag or stage anything. Never use `--as-owner` or `--from-app`.
18
18
  - Never write message text to a file. Every Bash call is one memo command and nothing else: no pipe, no `cd`, no
19
19
  output sent to a file. Replace every `<…>` placeholder with its value.
20
- - Copy every reference (`chat:…`, `msg:…`, `meeting:…`, `task:…`, `project:…`) exactly as memo printed it.
20
+ - The report is for a person: never put a reference (`chat:…`, `msg:…`, `meeting:…`, `task:…`, `project:…`), a
21
+ command, a flag, an agenda word (`owed`, `watch`, `STALE`, `coverage`) or a number of your own calls in it. Name
22
+ the person and the topic instead.
21
23
  - At most 12 memo calls after the first. Stop following leads when they run out; the agenda already counted what it
22
24
  left out.
23
25
 
@@ -26,25 +28,48 @@ You run on a schedule with `Bash(memo:*)` under `MEMO_READ_ONLY`. Every write is
26
28
  1. `memo review agenda --compact`. Its sections come in this order: `watch` (what the owner tagged `watch`), `owed`
27
29
  (replies he owes; mail from new senders is one counted line, run its `next:` only if a new client is plausible), `mail` (new personal mail), `meetings` (ended, with or without a transcript), `tasks` (due,
28
30
  overdue, to check), `projects` (what moved), `proposals` (waiting for his decision). The `coverage` line says how
29
- fresh each account is: an account marked STALE was not synced for a day, so say so instead of calling it quiet.
31
+ fresh each account is: an account marked STALE was not synced for a day, so give it a sync line (see Report) instead of calling the day quiet.
30
32
  2. Follow only where it points, in this order, and only while calls remain:
31
33
  - each project in `projects`: `memo projects status <key> --since-time 1d --compact`;
32
34
  - each person behind a `watch` or `owed` item who appears more than once: `memo context <person>`;
33
35
  - each `next:` line under a section that says "not shown": run it once, as printed;
34
36
  - a meeting with "transcript stored" that matters to a project: `memo search meetings "<two or three words>"`.
35
- 3. For each lead, ask: did this show something the owner must act on today that the agenda did not list? That is a
36
- **gap**: name the reference, what it was and which section should have caught it (watch, owed, mail, meetings,
37
- tasks, projects). A gap says what ingestion or tagging should record next time, so be specific.
37
+ 3. For each lead, ask: did this show something the owner must act on today that the agenda did not list? If so, it
38
+ goes into the report like any other item. Never write what you could not check, what failed or what the agenda
39
+ missed: that is not for the owner.
38
40
 
39
41
  ## Report
40
42
 
41
- Short, scannable, addressed to the owner as "you". Write all of it, the headings included, in one language: the
42
- language of the owner's recent messages, Russian if unsure. Translate the headings below; never mix languages:
43
+ Plain text in one language, the owner's: the language of their own recent messages, Russian when unclear. Every word is
44
+ in it, headings and status words included; translate the Russian headings below when the language differs. Keep names
45
+ of people and companies as written. No Markdown: no `**`, no backticks, no tables. It must read the same raw in an
46
+ email and in Telegram. Address the owner politely ("вы" in Russian).
43
47
 
44
- 1. **Today** — at most 7 lines: what you must answer, decide or do, each with its reference and who.
45
- 2. **Moving** — projects and meetings in one line each.
46
- 3. **Waiting on you** — proposals by kind with the count, and `memo review list` as the place to decide.
47
- 4. **Gaps** — what the agenda missed, one line each, as above; "none" when there were none.
48
- 5. **Coverage** — stale accounts, by name; nothing when all are fresh.
48
+ Start with the title line `☀️ Сводка на <weekday>, <day month>`. Then these sections, in this order. Leave out a
49
+ section with no items, heading included. An item sits in the first matching section only. Order items by importance.
50
+ Each section is a heading line (emoji, then the words below), then one item per line:
51
+
52
+ 1. 🔥 Сегодня — at most 7: replies you owe, questions to you, tasks due or overdue, serious problems.
53
+ 2. 🗳 Ждут вашего решения — at most 5: proposals by kind with the count, decisions someone asked for.
54
+ 3. 💰 Деньги — at most 5: invoices, payments due or received.
55
+ 4. 📅 Встречи — at most 5: today's meetings, and yesterday's with a transcript or an open follow-up.
56
+ 5. 🚀 Проекты в движении — at most 5: one line per project that moved, as a fact, a risk or a next step.
57
+ 6. 📬 Новая почта — at most 5: personal mail worth a look that is not owed and not in a project.
58
+ 7. 🛠 Синхронизация — only when a source has saved nothing for more than 24 hours: one line per source, such as
59
+ `🛠 MAX не обновлялся 2 дня`. Name the messenger or mailbox, never an account id. Say nothing when all are fresh.
60
+
61
+ Each item is one line, starting with its type emoji (never a section emoji), saying who, what about and what to do:
62
+
63
+ - 💬 Анна Котова · аренда склада — ответить, подходит ли подписание в пятницу (ждёт 2 дня, почта)
64
+ - ❓ Игорь Лапин спрашивает: какой срок поставки плитки (Telegram)
65
+ - 📌 Подписать акт — срок сегодня (⏰ when overdue)
66
+ - ℹ️ Проект «Склад»: договор согласован
67
+ - ⚠️ Проект «Склад»: риск сорвать срок → уточнить у подрядчика (🔴 when serious)
68
+ - 📥 +120 000 ₽ · ООО «Вектор» · счёт за март (📤 for money out) — сверить оплату
69
+ - ☑️ Три предложения связать контакты — решить
70
+ - 👥 15:00 · созвон по проекту «Склад» · Игорь Лапин
71
+
72
+ If the day has no items and every source is fresh, write one line: `Тихое утро: ничего срочного.` If a source is stale, it
73
+ is `Новых дел нет, но MAX не обновлялся 2 дня.`
49
74
 
50
75
  No long quotes: at most one line of anyone's text per item.
@@ -1,86 +0,0 @@
1
- import { createRequire as __bundleRequire } from "node:module";
2
- const require = __bundleRequire(import.meta.url);
3
- import {
4
- DEFAULT_EVERY,
5
- PLACE_VARIABLES,
6
- applyAuto,
7
- autoCommand,
8
- autoNotice,
9
- autoState,
10
- followInstall,
11
- globalRoots,
12
- interval,
13
- lastAutoRun,
14
- placesOf,
15
- recordAutoRun,
16
- serviceUnit,
17
- timerUnit
18
- } from "./chunk-LX65W7IK.js";
19
- import "./chunk-N5J6GT7C.js";
20
- import "./chunk-GJWNHWG7.js";
21
- import "./chunk-QP3KNC5D.js";
22
- import "./chunk-ERZBEQAY.js";
23
- import "./chunk-NNUP36UQ.js";
24
- import "./chunk-7SVHEGRO.js";
25
- import "./chunk-ETYAJPIT.js";
26
- import "./chunk-G4Z4WSIG.js";
27
- import "./chunk-5WT6SEXS.js";
28
- import "./chunk-3O46NA2H.js";
29
- import "./chunk-EKQNL6VJ.js";
30
- import "./chunk-TQS6ZKC3.js";
31
- import "./chunk-MICF3K6S.js";
32
- import "./chunk-NZKDNBYE.js";
33
- import "./chunk-HTQTIKWP.js";
34
- import "./chunk-PBM5GH7S.js";
35
- import "./chunk-FWCFEJWD.js";
36
- import "./chunk-IKG2OPHU.js";
37
- import "./chunk-NOEXRGYH.js";
38
- import "./chunk-MZMJALJT.js";
39
- import "./chunk-6G53ZFUT.js";
40
- import "./chunk-M64NVDB4.js";
41
- import "./chunk-U6E3BGHO.js";
42
- import "./chunk-G52Y3KOO.js";
43
- import "./chunk-I4LXP4HQ.js";
44
- import "./chunk-6ZQK3L35.js";
45
- import "./chunk-6GF4TIVM.js";
46
- import "./chunk-AU5GAMGM.js";
47
- import "./chunk-KGPD3OCD.js";
48
- import "./chunk-PKVXZZTM.js";
49
- import "./chunk-NUQ3N3V3.js";
50
- import "./chunk-ZVJAZXME.js";
51
- import "./chunk-S7X5ZMQN.js";
52
- import "./chunk-OIPJYDLZ.js";
53
- import "./chunk-EEEZGK2J.js";
54
- import "./chunk-XIHQOSCT.js";
55
- import "./chunk-ZYQEWB6P.js";
56
- import "./chunk-RYY4YRKQ.js";
57
- import "./chunk-G7K4J3NS.js";
58
- import "./chunk-65576OCE.js";
59
- import "./chunk-A7DXLOMS.js";
60
- import "./chunk-IK6KH3RE.js";
61
- import "./chunk-SW6C6WH5.js";
62
- import "./chunk-D72URWJE.js";
63
- import "./chunk-X6XIW76O.js";
64
- import "./chunk-A36ASW3I.js";
65
- import "./chunk-WLKDS65F.js";
66
- import "./chunk-64JCY7XJ.js";
67
- import "./chunk-Y5E2WNWB.js";
68
- import "./chunk-4ZW6ZJ2V.js";
69
- import "./chunk-TM6R3Z45.js";
70
- import "./chunk-ZVVMGPBJ.js";
71
- export {
72
- DEFAULT_EVERY,
73
- PLACE_VARIABLES,
74
- applyAuto,
75
- autoCommand,
76
- autoNotice,
77
- autoState,
78
- followInstall,
79
- globalRoots,
80
- interval,
81
- lastAutoRun,
82
- placesOf,
83
- recordAutoRun,
84
- serviceUnit,
85
- timerUnit
86
- };
@@ -1,66 +0,0 @@
1
- import { createRequire as __bundleRequire } from "node:module";
2
- const require = __bundleRequire(import.meta.url);
3
- import {
4
- errorObject,
5
- mcpFailure,
6
- recognisable,
7
- reportFailure,
8
- throwParseFailures
9
- } from "./chunk-LUHMRW3P.js";
10
- import "./chunk-ERZBEQAY.js";
11
- import "./chunk-NNUP36UQ.js";
12
- import "./chunk-7SVHEGRO.js";
13
- import "./chunk-ETYAJPIT.js";
14
- import "./chunk-G4Z4WSIG.js";
15
- import "./chunk-5WT6SEXS.js";
16
- import "./chunk-3O46NA2H.js";
17
- import "./chunk-EKQNL6VJ.js";
18
- import "./chunk-TQS6ZKC3.js";
19
- import "./chunk-MICF3K6S.js";
20
- import "./chunk-NZKDNBYE.js";
21
- import "./chunk-HTQTIKWP.js";
22
- import "./chunk-PBM5GH7S.js";
23
- import "./chunk-FWCFEJWD.js";
24
- import "./chunk-IKG2OPHU.js";
25
- import "./chunk-NOEXRGYH.js";
26
- import "./chunk-MZMJALJT.js";
27
- import "./chunk-6G53ZFUT.js";
28
- import "./chunk-M64NVDB4.js";
29
- import "./chunk-U6E3BGHO.js";
30
- import "./chunk-G52Y3KOO.js";
31
- import "./chunk-I4LXP4HQ.js";
32
- import "./chunk-6ZQK3L35.js";
33
- import "./chunk-6GF4TIVM.js";
34
- import "./chunk-AU5GAMGM.js";
35
- import "./chunk-KGPD3OCD.js";
36
- import "./chunk-PKVXZZTM.js";
37
- import "./chunk-NUQ3N3V3.js";
38
- import "./chunk-ZVJAZXME.js";
39
- import "./chunk-S7X5ZMQN.js";
40
- import "./chunk-OIPJYDLZ.js";
41
- import "./chunk-EEEZGK2J.js";
42
- import "./chunk-XIHQOSCT.js";
43
- import "./chunk-ZYQEWB6P.js";
44
- import "./chunk-RYY4YRKQ.js";
45
- import "./chunk-G7K4J3NS.js";
46
- import "./chunk-65576OCE.js";
47
- import "./chunk-BPGYTJNB.js";
48
- import "./chunk-A7DXLOMS.js";
49
- import "./chunk-IK6KH3RE.js";
50
- import "./chunk-SW6C6WH5.js";
51
- import "./chunk-D72URWJE.js";
52
- import "./chunk-X6XIW76O.js";
53
- import "./chunk-A36ASW3I.js";
54
- import "./chunk-WLKDS65F.js";
55
- import "./chunk-64JCY7XJ.js";
56
- import "./chunk-Y5E2WNWB.js";
57
- import "./chunk-4ZW6ZJ2V.js";
58
- import "./chunk-TM6R3Z45.js";
59
- import "./chunk-ZVVMGPBJ.js";
60
- export {
61
- errorObject,
62
- mcpFailure,
63
- recognisable,
64
- reportFailure,
65
- throwParseFailures
66
- };
@@ -1,61 +0,0 @@
1
- import { createRequire as __bundleRequire } from "node:module";
2
- const require = __bundleRequire(import.meta.url);
3
- import {
4
- PER_RUN,
5
- createServer,
6
- envelope,
7
- serveOverHttpUntilStopped,
8
- serveOverStdio
9
- } from "./chunk-NIUWQP7F.js";
10
- import "./chunk-2CBOPOC7.js";
11
- import "./chunk-ETYAJPIT.js";
12
- import "./chunk-G4Z4WSIG.js";
13
- import "./chunk-5WT6SEXS.js";
14
- import "./chunk-4ISZPK6D.js";
15
- import "./chunk-VOWEZBOJ.js";
16
- import "./chunk-IALGFO44.js";
17
- import "./chunk-MM5NVP7F.js";
18
- import "./chunk-3X4JM3ZR.js";
19
- import "./chunk-H3ZN4YLB.js";
20
- import "./chunk-EKQNL6VJ.js";
21
- import "./chunk-TQS6ZKC3.js";
22
- import "./chunk-MICF3K6S.js";
23
- import "./chunk-PBM5GH7S.js";
24
- import "./chunk-FWCFEJWD.js";
25
- import "./chunk-IKG2OPHU.js";
26
- import "./chunk-MZMJALJT.js";
27
- import "./chunk-6G53ZFUT.js";
28
- import "./chunk-M64NVDB4.js";
29
- import "./chunk-G52Y3KOO.js";
30
- import "./chunk-I4LXP4HQ.js";
31
- import "./chunk-6ZQK3L35.js";
32
- import "./chunk-6GF4TIVM.js";
33
- import "./chunk-AU5GAMGM.js";
34
- import "./chunk-KGPD3OCD.js";
35
- import "./chunk-PKVXZZTM.js";
36
- import "./chunk-NUQ3N3V3.js";
37
- import "./chunk-ZVJAZXME.js";
38
- import "./chunk-OIPJYDLZ.js";
39
- import "./chunk-XIHQOSCT.js";
40
- import "./chunk-ZYQEWB6P.js";
41
- import "./chunk-RYY4YRKQ.js";
42
- import "./chunk-G7K4J3NS.js";
43
- import "./chunk-65576OCE.js";
44
- import "./chunk-IK6KH3RE.js";
45
- import "./chunk-SW6C6WH5.js";
46
- import "./chunk-D72URWJE.js";
47
- import "./chunk-X6XIW76O.js";
48
- import "./chunk-A36ASW3I.js";
49
- import "./chunk-WLKDS65F.js";
50
- import "./chunk-64JCY7XJ.js";
51
- import "./chunk-Y5E2WNWB.js";
52
- import "./chunk-4ZW6ZJ2V.js";
53
- import "./chunk-TM6R3Z45.js";
54
- import "./chunk-ZVVMGPBJ.js";
55
- export {
56
- PER_RUN,
57
- createServer,
58
- envelope,
59
- serveOverHttpUntilStopped,
60
- serveOverStdio
61
- };
@@ -1,48 +0,0 @@
1
- import { createRequire as __bundleRequire } from "node:module";
2
- const require = __bundleRequire(import.meta.url);
3
- import {
4
- createBotServer,
5
- serveBotOverStdio
6
- } from "./chunk-6PQIXQFD.js";
7
- import "./chunk-NNUP36UQ.js";
8
- import "./chunk-2CBOPOC7.js";
9
- import "./chunk-5WT6SEXS.js";
10
- import "./chunk-IALGFO44.js";
11
- import "./chunk-MM5NVP7F.js";
12
- import "./chunk-3X4JM3ZR.js";
13
- import "./chunk-H3ZN4YLB.js";
14
- import "./chunk-TQS6ZKC3.js";
15
- import "./chunk-MICF3K6S.js";
16
- import "./chunk-FWCFEJWD.js";
17
- import "./chunk-IKG2OPHU.js";
18
- import "./chunk-MZMJALJT.js";
19
- import "./chunk-6G53ZFUT.js";
20
- import "./chunk-M64NVDB4.js";
21
- import "./chunk-G52Y3KOO.js";
22
- import "./chunk-6GF4TIVM.js";
23
- import "./chunk-AU5GAMGM.js";
24
- import "./chunk-KGPD3OCD.js";
25
- import "./chunk-PKVXZZTM.js";
26
- import "./chunk-NUQ3N3V3.js";
27
- import "./chunk-ZVJAZXME.js";
28
- import "./chunk-OIPJYDLZ.js";
29
- import "./chunk-XIHQOSCT.js";
30
- import "./chunk-ZYQEWB6P.js";
31
- import "./chunk-RYY4YRKQ.js";
32
- import "./chunk-G7K4J3NS.js";
33
- import "./chunk-65576OCE.js";
34
- import "./chunk-IK6KH3RE.js";
35
- import "./chunk-SW6C6WH5.js";
36
- import "./chunk-D72URWJE.js";
37
- import "./chunk-X6XIW76O.js";
38
- import "./chunk-A36ASW3I.js";
39
- import "./chunk-WLKDS65F.js";
40
- import "./chunk-64JCY7XJ.js";
41
- import "./chunk-Y5E2WNWB.js";
42
- import "./chunk-4ZW6ZJ2V.js";
43
- import "./chunk-TM6R3Z45.js";
44
- import "./chunk-ZVVMGPBJ.js";
45
- export {
46
- createBotServer,
47
- serveBotOverStdio
48
- };
@@ -1,48 +0,0 @@
1
- import { createRequire as __bundleRequire } from "node:module";
2
- const require = __bundleRequire(import.meta.url);
3
- import {
4
- buildStems,
5
- storeMaintenanceCommands,
6
- storeSummary
7
- } from "./chunk-3O46NA2H.js";
8
- import "./chunk-EKQNL6VJ.js";
9
- import "./chunk-TQS6ZKC3.js";
10
- import "./chunk-MICF3K6S.js";
11
- import "./chunk-HTQTIKWP.js";
12
- import "./chunk-FWCFEJWD.js";
13
- import "./chunk-IKG2OPHU.js";
14
- import "./chunk-MZMJALJT.js";
15
- import "./chunk-6G53ZFUT.js";
16
- import "./chunk-M64NVDB4.js";
17
- import "./chunk-G52Y3KOO.js";
18
- import "./chunk-6ZQK3L35.js";
19
- import "./chunk-6GF4TIVM.js";
20
- import "./chunk-AU5GAMGM.js";
21
- import "./chunk-KGPD3OCD.js";
22
- import "./chunk-PKVXZZTM.js";
23
- import "./chunk-NUQ3N3V3.js";
24
- import "./chunk-ZVJAZXME.js";
25
- import "./chunk-S7X5ZMQN.js";
26
- import "./chunk-OIPJYDLZ.js";
27
- import "./chunk-EEEZGK2J.js";
28
- import "./chunk-XIHQOSCT.js";
29
- import "./chunk-ZYQEWB6P.js";
30
- import "./chunk-RYY4YRKQ.js";
31
- import "./chunk-G7K4J3NS.js";
32
- import "./chunk-65576OCE.js";
33
- import "./chunk-IK6KH3RE.js";
34
- import "./chunk-SW6C6WH5.js";
35
- import "./chunk-D72URWJE.js";
36
- import "./chunk-X6XIW76O.js";
37
- import "./chunk-A36ASW3I.js";
38
- import "./chunk-WLKDS65F.js";
39
- import "./chunk-64JCY7XJ.js";
40
- import "./chunk-Y5E2WNWB.js";
41
- import "./chunk-4ZW6ZJ2V.js";
42
- import "./chunk-TM6R3Z45.js";
43
- import "./chunk-ZVVMGPBJ.js";
44
- export {
45
- buildStems,
46
- storeMaintenanceCommands,
47
- storeSummary
48
- };