@wirecat/cli-memo 0.131.57 → 0.131.58
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/{auto-B7SEJAR5.js → auto-3TXQDVO6.js} +3 -3
- package/dist/bundle/{chunk-NFAF27AD.js → chunk-3R6YNDPC.js} +1 -1
- package/dist/bundle/{chunk-YC4KNMOZ.js → chunk-5T7BFCDJ.js} +1 -1
- package/dist/bundle/{chunk-IRTWA4KO.js → chunk-BRT6M2TW.js} +1 -1
- package/dist/bundle/{chunk-P7L4FG5S.js → chunk-HJWWZXVG.js} +1 -1
- package/dist/bundle/{chunk-QHZTKYHC.js → chunk-NSYTJAL6.js} +1 -1
- package/dist/bundle/{chunk-SMLBSPMG.js → chunk-XIZPMFEC.js} +1 -1
- package/dist/bundle/{failure-CMZXMZO6.js → failure-HKKLVEZA.js} +2 -2
- package/dist/bundle/memo.js +5 -5
- package/dist/bundle/{program-6ZIWHNZV.js → program-OM6GO5X2.js} +7 -7
- package/dist/bundle/{server-LXD7DXU3.js → server-KHFBSBCY.js} +4 -4
- package/dist/bundle/{update-63B3BTGO.js → update-DT4DCRXS.js} +2 -2
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/skills/morning-digest/SKILL.md +40 -33
package/dist/bin/memo.js
CHANGED
|
@@ -9,7 +9,7 @@ if (
|
|
|
9
9
|
(words[0] === "--version" || words[0] === "-V") &&
|
|
10
10
|
!Object.keys(process.env).some((key) => key.endsWith("_TEST_ARGV_LOG"))
|
|
11
11
|
) {
|
|
12
|
-
process.stdout.write("0.131.
|
|
12
|
+
process.stdout.write("0.131.58\n")
|
|
13
13
|
} else {
|
|
14
14
|
// Before the bundle compiles: the bundle's own call comes after its chunks.
|
|
15
15
|
module.enableCompileCache()
|
|
@@ -28,7 +28,7 @@ if (
|
|
|
28
28
|
: next(specifier, context),
|
|
29
29
|
})
|
|
30
30
|
}
|
|
31
|
-
const chunks = ["../bundle/all-profiles-XWRUFNP2.js","../bundle/anthropic-266QJJGV.js","../bundle/app-server-YV3D7PPC.js","../bundle/auto-
|
|
31
|
+
const chunks = ["../bundle/all-profiles-XWRUFNP2.js","../bundle/anthropic-266QJJGV.js","../bundle/app-server-YV3D7PPC.js","../bundle/auto-3TXQDVO6.js","../bundle/bun-22MM6T54.js","../bundle/bun-sqlite-V73FFF2C.js","../bundle/command-contract-DKK56GZX.js","../bundle/decode-JHVAOF3N.js","../bundle/dispatch-CRYB6Q2V.js","../bundle/dist-GZQWFMCL.js","../bundle/echarts-KCOXA225.js","../bundle/embed-4NYYOVNS.js","../bundle/embedder-SHPWEDIQ.js","../bundle/entry-VZE4CVPX.js","../bundle/failure-HKKLVEZA.js","../bundle/failure-ZMQJF3RO.js","../bundle/first-run-EKXME7UK.js","../bundle/first-screen-QS5PVWDZ.js","../bundle/instructions-ER3ONEOR.js","../bundle/mcp-3ABYEJI3.js","../bundle/mcp-RKJG22KM.js","../bundle/node-DBZKVPDA.js","../bundle/node-P4E63KXA.js","../bundle/node-TLZSIHIJ.js","../bundle/node-sqlite-UZVU7EXS.js","../bundle/oauth-VEFHKRWG.js","../bundle/open-XNRAMLOK.js","../bundle/openai-4XIX5RN2.js","../bundle/process-EIGF77RB.js","../bundle/program-OM6GO5X2.js","../bundle/prompt-V7RFTWTA.js","../bundle/recognize-7PWWI67V.js","../bundle/remote-NOKKQ2U5.js","../bundle/rerank-X7UWX2ZF.js","../bundle/serve-Z6YCLXXP.js","../bundle/server-AXMJBL6J.js","../bundle/server-KABSY3RL.js","../bundle/server-KHFBSBCY.js","../bundle/state-K5D3BMKT.js","../bundle/stdio-FRV4R7LJ.js","../bundle/store-6SZBCSUF.js","../bundle/store-maintenance-command-GTMZOLMZ.js","../bundle/update-DT4DCRXS.js"]
|
|
32
32
|
if (((words) => words
|
|
33
33
|
.filter((word) => !word.startsWith("-"))
|
|
34
34
|
.slice(0, 2)
|
|
@@ -15,8 +15,8 @@ import {
|
|
|
15
15
|
recordAutoRun,
|
|
16
16
|
serviceUnit,
|
|
17
17
|
timerUnit
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import "./chunk-
|
|
18
|
+
} from "./chunk-NSYTJAL6.js";
|
|
19
|
+
import "./chunk-BRT6M2TW.js";
|
|
20
20
|
import "./chunk-PHWJBFZ6.js";
|
|
21
21
|
import "./chunk-QP3KNC5D.js";
|
|
22
22
|
import "./chunk-MV6ZSBA3.js";
|
|
@@ -56,7 +56,7 @@ import "./chunk-NEWKSMXP.js";
|
|
|
56
56
|
import "./chunk-FU3XDL34.js";
|
|
57
57
|
import "./chunk-72ZEEKOJ.js";
|
|
58
58
|
import "./chunk-OROO3KYQ.js";
|
|
59
|
-
import "./chunk-
|
|
59
|
+
import "./chunk-HJWWZXVG.js";
|
|
60
60
|
import "./chunk-IK6KH3RE.js";
|
|
61
61
|
import "./chunk-SW6C6WH5.js";
|
|
62
62
|
import "./chunk-D72URWJE.js";
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
recognisable,
|
|
7
7
|
reportFailure,
|
|
8
8
|
throwParseFailures
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-XIZPMFEC.js";
|
|
10
10
|
import "./chunk-MV6ZSBA3.js";
|
|
11
11
|
import "./chunk-YTAQKOAW.js";
|
|
12
12
|
import "./chunk-RYDNM3K2.js";
|
|
@@ -45,7 +45,7 @@ import "./chunk-FU3XDL34.js";
|
|
|
45
45
|
import "./chunk-72ZEEKOJ.js";
|
|
46
46
|
import "./chunk-OROO3KYQ.js";
|
|
47
47
|
import "./chunk-BPGYTJNB.js";
|
|
48
|
-
import "./chunk-
|
|
48
|
+
import "./chunk-HJWWZXVG.js";
|
|
49
49
|
import "./chunk-IK6KH3RE.js";
|
|
50
50
|
import "./chunk-SW6C6WH5.js";
|
|
51
51
|
import "./chunk-D72URWJE.js";
|
package/dist/bundle/memo.js
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
} from "./chunk-BPGYTJNB.js";
|
|
7
7
|
import {
|
|
8
8
|
APP
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-HJWWZXVG.js";
|
|
10
10
|
import {
|
|
11
11
|
installerOf
|
|
12
12
|
} from "./chunk-IK6KH3RE.js";
|
|
@@ -197,15 +197,15 @@ if (wcat.code !== void 0) {
|
|
|
197
197
|
interactive: interactiveOf,
|
|
198
198
|
reasons: APP.errors.reasons,
|
|
199
199
|
run: /* @__PURE__ */ __name(async (entry) => {
|
|
200
|
-
failure = await import("./failure-
|
|
201
|
-
const { createProgram, refuseJoinedPath } = await import("./program-
|
|
202
|
-
const { autoNotice, followInstall } = await import("./auto-
|
|
200
|
+
failure = await import("./failure-HKKLVEZA.js");
|
|
201
|
+
const { createProgram, refuseJoinedPath } = await import("./program-OM6GO5X2.js");
|
|
202
|
+
const { autoNotice, followInstall } = await import("./auto-3TXQDVO6.js");
|
|
203
203
|
if (entry.args[0] !== "jobs") {
|
|
204
204
|
const notice2 = autoNotice(entry.env);
|
|
205
205
|
if (notice2)
|
|
206
206
|
processStreams.diagnostic(notice2);
|
|
207
207
|
}
|
|
208
|
-
const { updateNotice } = await import("./update-
|
|
208
|
+
const { updateNotice } = await import("./update-DT4DCRXS.js");
|
|
209
209
|
const notice = updateNotice(entry.args);
|
|
210
210
|
program = createProgram({ signal: entry.signal });
|
|
211
211
|
program.hook("preAction", (_root, command) => entry.atStart(command));
|
|
@@ -6,17 +6,17 @@ import {
|
|
|
6
6
|
autoState,
|
|
7
7
|
lastAutoRun,
|
|
8
8
|
recordAutoRun
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-NSYTJAL6.js";
|
|
10
10
|
import {
|
|
11
11
|
installer,
|
|
12
12
|
latest,
|
|
13
13
|
upgradeCommand
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-3R6YNDPC.js";
|
|
15
15
|
import {
|
|
16
16
|
mcpOwnerAllowed,
|
|
17
17
|
readOnlyAvailability,
|
|
18
18
|
refuseWritesUnderLock
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-5T7BFCDJ.js";
|
|
20
20
|
import {
|
|
21
21
|
answers,
|
|
22
22
|
atDetail,
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
trackAnswers,
|
|
27
27
|
wholeList,
|
|
28
28
|
withStore
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-BRT6M2TW.js";
|
|
30
30
|
import {
|
|
31
31
|
ATTACHMENT_CHARS,
|
|
32
32
|
DIALECTS,
|
|
@@ -64,7 +64,7 @@ import "./chunk-PBVG3KJR.js";
|
|
|
64
64
|
import {
|
|
65
65
|
errorObject,
|
|
66
66
|
recognisable
|
|
67
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-XIZPMFEC.js";
|
|
68
68
|
import {
|
|
69
69
|
AGENT_INPUT_MAX_CHARS,
|
|
70
70
|
DISCOVERY_DESCRIPTIONS,
|
|
@@ -339,7 +339,7 @@ import {
|
|
|
339
339
|
REASONS,
|
|
340
340
|
STORE_CLIENT,
|
|
341
341
|
VERSION
|
|
342
|
-
} from "./chunk-
|
|
342
|
+
} from "./chunk-HJWWZXVG.js";
|
|
343
343
|
import "./chunk-IK6KH3RE.js";
|
|
344
344
|
import "./chunk-SW6C6WH5.js";
|
|
345
345
|
import "./chunk-D72URWJE.js";
|
|
@@ -6924,7 +6924,7 @@ var mcpCommandDefinition = /* @__PURE__ */ __name((program, streams, env, create
|
|
|
6924
6924
|
}).summary("serve this profile's commands to an AI agent").description("serve memo commands over MCP on stdio or authenticated HTTP, limited by saved permissions").option("--permission <key=level>", "tighten one saved permission for this server; repeat for more keys", (value, previous = []) => [...previous, value]).option("--http", "serve on 127.0.0.1 behind an HTTPS tunnel with an owner access-code login").option("--port <port>", `local HTTP port (default ${DEFAULT_PORT}); requires --http`).option("--public-url <url>", "tunnel's HTTPS address without /mcp, or a path of it such as https://<name>.ts.net/memo; requires --http").action(async (options) => {
|
|
6925
6925
|
if (!options.http && (options.port !== void 0 || options.publicUrl !== void 0))
|
|
6926
6926
|
throw new CliError("validation_error", "--port and --public-url require --http");
|
|
6927
|
-
const { createMemoServer } = await import("./server-
|
|
6927
|
+
const { createMemoServer } = await import("./server-KHFBSBCY.js");
|
|
6928
6928
|
const build = /* @__PURE__ */ __name(() => createMemoServer(env, createProgram2, options.permission), "build");
|
|
6929
6929
|
if (options.http) {
|
|
6930
6930
|
const { httpLockFile, mcpUrlOf, portOf, publicUrlOf, serveOverHttp } = await import("./mcp-3ABYEJI3.js");
|
|
@@ -6,10 +6,10 @@ import {
|
|
|
6
6
|
memoLevels,
|
|
7
7
|
readOnly,
|
|
8
8
|
refuseUnknownPermissions
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-5T7BFCDJ.js";
|
|
10
10
|
import {
|
|
11
11
|
itemAnswer
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-BRT6M2TW.js";
|
|
13
13
|
import "./chunk-PHWJBFZ6.js";
|
|
14
14
|
import "./chunk-QP3KNC5D.js";
|
|
15
15
|
import "./chunk-G3QR3IYN.js";
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
errorObject,
|
|
18
18
|
mcpFailure,
|
|
19
19
|
throwParseFailures
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-XIZPMFEC.js";
|
|
21
21
|
import "./chunk-MV6ZSBA3.js";
|
|
22
22
|
import "./chunk-YTAQKOAW.js";
|
|
23
23
|
import "./chunk-DQWHLOKG.js";
|
|
@@ -90,7 +90,7 @@ import {
|
|
|
90
90
|
APP,
|
|
91
91
|
STORE_CLIENT,
|
|
92
92
|
VERSION
|
|
93
|
-
} from "./chunk-
|
|
93
|
+
} from "./chunk-HJWWZXVG.js";
|
|
94
94
|
import "./chunk-IK6KH3RE.js";
|
|
95
95
|
import "./chunk-SW6C6WH5.js";
|
|
96
96
|
import "./chunk-D72URWJE.js";
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
runUpdate,
|
|
8
8
|
updateNotice,
|
|
9
9
|
upgradeCommand
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-3R6YNDPC.js";
|
|
11
11
|
import "./chunk-PHWJBFZ6.js";
|
|
12
12
|
import "./chunk-QP3KNC5D.js";
|
|
13
13
|
import "./chunk-MV6ZSBA3.js";
|
|
@@ -47,7 +47,7 @@ import "./chunk-NEWKSMXP.js";
|
|
|
47
47
|
import "./chunk-FU3XDL34.js";
|
|
48
48
|
import "./chunk-72ZEEKOJ.js";
|
|
49
49
|
import "./chunk-OROO3KYQ.js";
|
|
50
|
-
import "./chunk-
|
|
50
|
+
import "./chunk-HJWWZXVG.js";
|
|
51
51
|
import "./chunk-IK6KH3RE.js";
|
|
52
52
|
import "./chunk-SW6C6WH5.js";
|
|
53
53
|
import "./chunk-D72URWJE.js";
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.131.
|
|
1
|
+
export declare const VERSION = "0.131.58";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = "0.131.
|
|
1
|
+
export const VERSION = "0.131.58";
|
|
2
2
|
//# sourceMappingURL=version.js.map
|
package/package.json
CHANGED
|
@@ -18,8 +18,8 @@ You run on a schedule with `Bash(memo:*)` under `MEMO_READ_ONLY`. Every write is
|
|
|
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
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
|
|
22
|
-
the person and the topic instead.
|
|
21
|
+
command, a flag, an agenda word (`owed`, `watch`, `STALE`, `coverage`) or a number of your own calls in a text
|
|
22
|
+
field. Name the person and the topic instead. References go only in `refs`, copied exactly as memo printed them.
|
|
23
23
|
- At most 12 memo calls after the first. Stop following leads when they run out; the agenda already counted what it
|
|
24
24
|
left out.
|
|
25
25
|
|
|
@@ -40,36 +40,43 @@ You run on a schedule with `Bash(memo:*)` under `MEMO_READ_ONLY`. Every write is
|
|
|
40
40
|
|
|
41
41
|
## Report
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
email and in Telegram. Address the owner politely ("вы" in Russian).
|
|
43
|
+
Answer with **one JSON object and nothing else**: no text before or after it (one ```json fence around it is
|
|
44
|
+
accepted). WireCat renders it for Telegram, mail and the terminal, with the headings, emoji, dates and layout; you
|
|
45
|
+
write only the content. A document that breaks this shape is not delivered: the owner gets one line saying so.
|
|
47
46
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"format": "wirecat.report/1",
|
|
50
|
+
"kind": "morning-digest",
|
|
51
|
+
"date": "2026-11-07",
|
|
52
|
+
"summary": "Три ответа ждут вас, один платёж просрочен.",
|
|
53
|
+
"sections": [
|
|
54
|
+
{ "kind": "today", "items": [
|
|
55
|
+
{ "type": "reply", "who": "Анна Котова", "topic": "аренда склада",
|
|
56
|
+
"action": "ответить, подходит ли подписание в пятницу", "since": "2026-11-06T09:12:00+01:00",
|
|
57
|
+
"quote": "Сможем подписать в пятницу?", "channel": "mail", "priority": "high", "refs": ["msg:…"] } ] }
|
|
58
|
+
],
|
|
59
|
+
"health": [ { "source": "MAX", "stale_hours": 49 } ]
|
|
60
|
+
}
|
|
61
|
+
```
|
|
51
62
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
-
|
|
70
|
-
|
|
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 дня.`
|
|
74
|
-
|
|
75
|
-
No long quotes: at most one line of anyone's text per item.
|
|
63
|
+
- `date`: today, `YYYY-MM-DD`. `summary`: at most one sentence (120 characters), or `null`.
|
|
64
|
+
- Every text field (`summary`, `who`, `topic`, `action`, `detail`, `quote`) is in the owner's language: the language
|
|
65
|
+
of their own recent messages, Russian when unclear. Keep names of people and companies as written. Address the
|
|
66
|
+
owner politely ("вы" in Russian). No Markdown in any field.
|
|
67
|
+
- `sections[].kind`, in this order, each only when it has items (an item goes in the first that fits):
|
|
68
|
+
`today` (replies owed, questions to the owner, tasks due or overdue, serious problems), `decisions` (proposals by
|
|
69
|
+
kind with a `count`, decisions someone asked for), `money` (invoices, payments due or received), `meetings` (today's,
|
|
70
|
+
and yesterday's with a transcript or an open follow-up), `projects` (one item per project that moved), `mail`
|
|
71
|
+
(personal mail worth a look that is not owed and not in a project). Order items by importance; send as many as
|
|
72
|
+
matter, WireCat keeps the first ones and counts the rest. `more`: how many you knew of and left out.
|
|
73
|
+
- `items[].type` and the fields each one needs (others are optional, `null` or left out):
|
|
74
|
+
`reply` who, topic, action, since · `question` who, topic, action · `task` topic, due · `fact` topic, detail ·
|
|
75
|
+
`risk` topic, detail, action · `money` who, topic, amount · `decision` topic, action · `meeting` topic, time.
|
|
76
|
+
- Times (`since`, `due`, `time`) are ISO 8601 with the offset, or a date. `amount`:
|
|
77
|
+
`{ "value": 48000, "currency": "RUB", "direction": "out" }`. `priority`: `"high"` for what is late or serious, else
|
|
78
|
+
leave it out. `channel`: `telegram`, `max`, `whatsapp`, `mail`, `meeting` or `task`. `quote`: at most one line of
|
|
79
|
+
someone's words (100 characters).
|
|
80
|
+
- `health`: one entry per source that saved nothing for more than 24 hours: `source` is the messenger or mailbox
|
|
81
|
+
word ("MAX", "почта Gmail"), never an account id; `stale_hours` how long. Empty when all are fresh.
|
|
82
|
+
- A quiet day is `"sections": []` with the `health` it has; WireCat writes the quiet-day line.
|