@wirecat/cli-memo 0.30.0 → 0.32.0
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/README.md +1 -1
- package/dist/actions/command.d.ts.map +1 -1
- package/dist/actions/command.js +7 -7
- package/dist/actions/command.js.map +1 -1
- package/dist/agents/command.js +3 -3
- package/dist/agents/command.js.map +1 -1
- package/dist/answer.d.ts +23 -0
- package/dist/answer.d.ts.map +1 -0
- package/dist/answer.js +56 -0
- package/dist/answer.js.map +1 -0
- package/dist/answers/command.d.ts.map +1 -1
- package/dist/answers/command.js +6 -13
- package/dist/answers/command.js.map +1 -1
- package/dist/bin/memo.js +16 -2
- package/dist/bin/memo.js.map +1 -1
- package/dist/config.d.ts +8 -4
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +15 -7
- package/dist/config.js.map +1 -1
- package/dist/context/command.d.ts +1 -1
- package/dist/context/command.d.ts.map +1 -1
- package/dist/context/command.js +6 -14
- package/dist/context/command.js.map +1 -1
- package/dist/discovery/command.d.ts +1 -1
- package/dist/discovery/command.js +1 -1
- package/dist/doctor/command.d.ts +82 -0
- package/dist/doctor/command.d.ts.map +1 -0
- package/dist/doctor/command.js +148 -0
- package/dist/doctor/command.js.map +1 -0
- package/dist/effects.d.ts +6 -1
- package/dist/effects.d.ts.map +1 -1
- package/dist/effects.js +26 -9
- package/dist/effects.js.map +1 -1
- package/dist/examples.d.ts.map +1 -1
- package/dist/examples.js +7 -3
- package/dist/examples.js.map +1 -1
- package/dist/facts/command.d.ts.map +1 -1
- package/dist/facts/command.js +14 -22
- package/dist/facts/command.js.map +1 -1
- package/dist/facts/fact.d.ts +36 -0
- package/dist/facts/fact.d.ts.map +1 -0
- package/dist/facts/fact.js +47 -0
- package/dist/facts/fact.js.map +1 -0
- package/dist/failure.d.ts +5 -7
- package/dist/failure.d.ts.map +1 -1
- package/dist/failure.js +8 -27
- package/dist/failure.js.map +1 -1
- package/dist/knowledge/command.d.ts.map +1 -1
- package/dist/knowledge/command.js +33 -34
- package/dist/knowledge/command.js.map +1 -1
- package/dist/knowledge/meeting-projects-command.d.ts.map +1 -1
- package/dist/knowledge/meeting-projects-command.js +22 -12
- package/dist/knowledge/meeting-projects-command.js.map +1 -1
- package/dist/list-query.d.ts +18 -0
- package/dist/list-query.d.ts.map +1 -0
- package/dist/list-query.js +68 -0
- package/dist/list-query.js.map +1 -0
- package/dist/mail/apply.d.ts.map +1 -1
- package/dist/mail/apply.js +1 -0
- package/dist/mail/apply.js.map +1 -1
- package/dist/mail/command.d.ts.map +1 -1
- package/dist/mail/command.js +133 -108
- package/dist/mail/command.js.map +1 -1
- package/dist/mail/domain-age.d.ts +21 -0
- package/dist/mail/domain-age.d.ts.map +1 -0
- package/dist/mail/domain-age.js +99 -0
- package/dist/mail/domain-age.js.map +1 -0
- package/dist/mail/gmail.d.ts +1 -1
- package/dist/mail/gmail.d.ts.map +1 -1
- package/dist/mail/gmail.js +6 -1
- package/dist/mail/gmail.js.map +1 -1
- package/dist/mail/headers.d.ts +17 -3
- package/dist/mail/headers.d.ts.map +1 -1
- package/dist/mail/headers.js +32 -3
- package/dist/mail/headers.js.map +1 -1
- package/dist/mail/himalaya.d.ts +5 -0
- package/dist/mail/himalaya.d.ts.map +1 -1
- package/dist/mail/himalaya.js +34 -5
- package/dist/mail/himalaya.js.map +1 -1
- package/dist/mail/import.d.ts.map +1 -1
- package/dist/mail/import.js +4 -0
- package/dist/mail/import.js.map +1 -1
- package/dist/mail/messages-command.d.ts.map +1 -1
- package/dist/mail/messages-command.js +7 -13
- package/dist/mail/messages-command.js.map +1 -1
- package/dist/mail/probe.d.ts +7 -1
- package/dist/mail/probe.d.ts.map +1 -1
- package/dist/mail/probe.js +12 -1
- package/dist/mail/probe.js.map +1 -1
- package/dist/mail/resume.js +1 -1
- package/dist/mail/resume.js.map +1 -1
- package/dist/mail/rule-store.d.ts +33 -0
- package/dist/mail/rule-store.d.ts.map +1 -0
- package/dist/mail/rule-store.js +129 -0
- package/dist/mail/rule-store.js.map +1 -0
- package/dist/mail/rules.d.ts +6 -2
- package/dist/mail/rules.d.ts.map +1 -1
- package/dist/mail/rules.js +3 -3
- package/dist/mail/rules.js.map +1 -1
- package/dist/mail/score.d.ts +50 -0
- package/dist/mail/score.d.ts.map +1 -0
- package/dist/mail/score.js +118 -0
- package/dist/mail/score.js.map +1 -0
- package/dist/mcp/knowledge.d.ts.map +1 -1
- package/dist/mcp/knowledge.js +15 -9
- package/dist/mcp/knowledge.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +30 -36
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/task-relations.d.ts.map +1 -1
- package/dist/mcp/task-relations.js +9 -7
- package/dist/mcp/task-relations.js.map +1 -1
- package/dist/mcp/tool.d.ts +3 -2
- package/dist/mcp/tool.d.ts.map +1 -1
- package/dist/mcp/tool.js.map +1 -1
- package/dist/mcp/vocabulary.d.ts.map +1 -1
- package/dist/mcp/vocabulary.js +7 -6
- package/dist/mcp/vocabulary.js.map +1 -1
- package/dist/memories/command.d.ts.map +1 -1
- package/dist/memories/command.js +15 -19
- package/dist/memories/command.js.map +1 -1
- package/dist/memories/memory.d.ts +31 -0
- package/dist/memories/memory.d.ts.map +1 -0
- package/dist/memories/memory.js +43 -0
- package/dist/memories/memory.js.map +1 -0
- package/dist/notes/command.d.ts.map +1 -1
- package/dist/notes/command.js +39 -30
- package/dist/notes/command.js.map +1 -1
- package/dist/notes/embed.d.ts +2 -0
- package/dist/notes/embed.d.ts.map +1 -1
- package/dist/notes/embed.js +8 -0
- package/dist/notes/embed.js.map +1 -1
- package/dist/notes/folders-command.d.ts.map +1 -1
- package/dist/notes/folders-command.js +19 -26
- package/dist/notes/folders-command.js.map +1 -1
- package/dist/notes/search.d.ts.map +1 -1
- package/dist/notes/search.js +2 -8
- package/dist/notes/search.js.map +1 -1
- package/dist/output.d.ts +9 -7
- package/dist/output.d.ts.map +1 -1
- package/dist/output.js +11 -14
- package/dist/output.js.map +1 -1
- package/dist/page.d.ts +2 -5
- package/dist/page.d.ts.map +1 -1
- package/dist/page.js +7 -2
- package/dist/page.js.map +1 -1
- package/dist/people/command.d.ts.map +1 -1
- package/dist/people/command.js +3 -7
- package/dist/people/command.js.map +1 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +6 -0
- package/dist/program.js.map +1 -1
- package/dist/reasons.d.ts.map +1 -1
- package/dist/reasons.js +12 -0
- package/dist/reasons.js.map +1 -1
- package/dist/run/auto.d.ts +11 -1
- package/dist/run/auto.d.ts.map +1 -1
- package/dist/run/auto.js +46 -18
- package/dist/run/auto.js.map +1 -1
- package/dist/run/import.d.ts.map +1 -1
- package/dist/run/import.js +15 -17
- package/dist/run/import.js.map +1 -1
- package/dist/search/answers.d.ts +16 -0
- package/dist/search/answers.d.ts.map +1 -0
- package/dist/search/answers.js +48 -0
- package/dist/search/answers.js.map +1 -0
- package/dist/search/command.d.ts.map +1 -1
- package/dist/search/command.js +29 -35
- package/dist/search/command.js.map +1 -1
- package/dist/search/hits.d.ts +8 -0
- package/dist/search/hits.d.ts.map +1 -0
- package/dist/search/hits.js +68 -0
- package/dist/search/hits.js.map +1 -0
- package/dist/tags/command.d.ts.map +1 -1
- package/dist/tags/command.js +23 -31
- package/dist/tags/command.js.map +1 -1
- package/dist/tasks/command.d.ts.map +1 -1
- package/dist/tasks/command.js +29 -44
- package/dist/tasks/command.js.map +1 -1
- package/dist/tasks/relations-command.js +4 -4
- package/dist/tasks/relations-command.js.map +1 -1
- package/dist/terminal.d.ts +4 -0
- package/dist/terminal.d.ts.map +1 -0
- package/dist/terminal.js +8 -0
- package/dist/terminal.js.map +1 -0
- package/dist/update.d.ts +26 -0
- package/dist/update.d.ts.map +1 -0
- package/dist/update.js +67 -0
- package/dist/update.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/vocabulary/command.d.ts.map +1 -1
- package/dist/vocabulary/command.js +3 -3
- package/dist/vocabulary/command.js.map +1 -1
- package/package.json +4 -2
- package/skills/cli-memo/SKILL.md +14 -5
- package/dist/records/run.d.ts +0 -7
- package/dist/records/run.d.ts.map +0 -1
- package/dist/records/run.js +0 -24
- package/dist/records/run.js.map +0 -1
package/README.md
CHANGED
|
@@ -346,7 +346,7 @@ More: [security](https://github.com/WireCatLabs/cli-memo/blob/main/docs/security
|
|
|
346
346
|
reported, not read.
|
|
347
347
|
- Search by meaning embeds at most 600 chunks a run; the next run continues.
|
|
348
348
|
- `memo sync --mail` reads 200 new messages per account a run by default (`--limit`) and keeps up to 1,000,000
|
|
349
|
-
characters of a body and 200,000 of an attachment's text (`mail.
|
|
349
|
+
characters of a body and 200,000 of an attachment's text (`mail.max_body_chars`, `mail.max_attachment_chars`).
|
|
350
350
|
- Searches return at most 100 results; `tags list` shows 100 labels unless `--limit` says more.
|
|
351
351
|
- Tags are 1–32 letters a–z, digits or hyphens.
|
|
352
352
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/actions/command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAGhD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAOxC,eAAO,MAAM,cAAc,YAAa,OAAO,WAAW,OAAO,OAAO,MAAM,CAAC,UAAU,KAAG,
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/actions/command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAGhD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAOxC,eAAO,MAAM,cAAc,YAAa,OAAO,WAAW,OAAO,OAAO,MAAM,CAAC,UAAU,KAAG,IA+D3F,CAAA"}
|
package/dist/actions/command.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { approveAsTask } from "@wirecat/cli-core/services";
|
|
2
2
|
import { PROPOSAL_STATUSES } from "@wirecat/cli-core/store";
|
|
3
|
+
import { answers, itemAnswer } from "../answer.js";
|
|
3
4
|
import { authorOf, byOption } from "../author.js";
|
|
4
5
|
import { oneOf, positive } from "../options.js";
|
|
5
6
|
import { pageOf } from "../page.js";
|
|
6
|
-
import { answering } from "../records/run.js";
|
|
7
7
|
import { propose } from "./actions.js";
|
|
8
8
|
export const actionsCommand = (program, streams, env) => {
|
|
9
|
-
const run =
|
|
9
|
+
const { run } = answers(program, streams, env);
|
|
10
10
|
const actions = program
|
|
11
11
|
.command("actions")
|
|
12
12
|
.description("what an agent proposes to do; confirming one makes it your task, nothing is sent");
|
|
@@ -18,31 +18,31 @@ export const actionsCommand = (program, streams, env) => {
|
|
|
18
18
|
.option("--target <ref>", "what it acts on: msg:, chat:, contact:, person:, task:, …")
|
|
19
19
|
.option("--payload <json>", "what to do, as JSON, such as the reply's text")
|
|
20
20
|
.option("--json", "print JSON; --json=id,title keeps only those fields")
|
|
21
|
-
.action((kind, { asOwner, ...options }) => run(options.json, (store) => propose(store, { ...options, kind }, authorOf(env, asOwner))));
|
|
21
|
+
.action((kind, { asOwner, ...options }) => run(options.json, async (store) => itemAnswer(await propose(store, { ...options, kind }, authorOf(env, asOwner)))));
|
|
22
22
|
actions
|
|
23
23
|
.command("list")
|
|
24
24
|
.description("proposed actions, newest first")
|
|
25
25
|
.option("--status <status>", PROPOSAL_STATUSES.join(", "), oneOf(PROPOSAL_STATUSES))
|
|
26
26
|
.option("--limit <n>", "most actions, up to 500", positive, 100)
|
|
27
27
|
.option("--json", "print JSON; --json=id,title keeps only those fields")
|
|
28
|
-
.action((options) => run(options.json, (store) => pageOf(options.limit, (limit) => store.proposedActions.list({ limit, ...(options.status === undefined ? {} : { status: options.status }) }))));
|
|
28
|
+
.action((options) => run(options.json, (store) => pageOf("actions list", options.limit, (limit) => store.proposedActions.list({ limit, ...(options.status === undefined ? {} : { status: options.status }) }))));
|
|
29
29
|
actions
|
|
30
30
|
.command("show")
|
|
31
31
|
.description("one proposed action, with its payload")
|
|
32
32
|
.argument("<id>", "the action's id, as actions list gives it")
|
|
33
33
|
.option("--json", "print JSON; --json=id,title keeps only those fields")
|
|
34
|
-
.action((id, options) => run(options.json, (store) => store.proposedActions.get(id)));
|
|
34
|
+
.action((id, options) => run(options.json, async (store) => itemAnswer(await store.proposedActions.get(id))));
|
|
35
35
|
actions
|
|
36
36
|
.command("confirm")
|
|
37
37
|
.description("confirm it: it becomes a task in the account that would act; nothing is sent")
|
|
38
38
|
.argument("<id>", "the action's id, as actions list gives it")
|
|
39
39
|
.option("--json", "print JSON; --json=id,title keeps only those fields")
|
|
40
|
-
.action((id, options) => run(options.json, (store) => approveAsTask(store, id)));
|
|
40
|
+
.action((id, options) => run(options.json, async (store) => itemAnswer(await approveAsTask(store, id))));
|
|
41
41
|
actions
|
|
42
42
|
.command("reject")
|
|
43
43
|
.description("reject it; nothing is done")
|
|
44
44
|
.argument("<id>", "the action's id, as actions list gives it")
|
|
45
45
|
.option("--json", "print JSON; --json=id,title keeps only those fields")
|
|
46
|
-
.action((id, options) => run(options.json, (store) => store.proposedActions.reject(id)));
|
|
46
|
+
.action((id, options) => run(options.json, async (store) => itemAnswer(await store.proposedActions.reject(id))));
|
|
47
47
|
};
|
|
48
48
|
//# sourceMappingURL=command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/actions/command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAuB,MAAM,yBAAyB,CAAA;AAEhF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/actions/command.ts"],"names":[],"mappings":"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"}
|
package/dist/agents/command.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import { answers } from "../answer.js";
|
|
1
2
|
import { positive } from "../options.js";
|
|
2
3
|
import { pageOf } from "../page.js";
|
|
3
|
-
import { answering } from "../records/run.js";
|
|
4
4
|
export const agentsCommand = (program, streams, env) => {
|
|
5
|
-
const run =
|
|
5
|
+
const { run } = answers(program, streams, env);
|
|
6
6
|
program
|
|
7
7
|
.command("agents")
|
|
8
8
|
.description("what agents did through the MCP servers that share the store")
|
|
@@ -13,7 +13,7 @@ export const agentsCommand = (program, streams, env) => {
|
|
|
13
13
|
.option("--agent <name>", "only this agent, such as tg-mcp or memo-mcp")
|
|
14
14
|
.option("--limit <n>", "most rows, up to 500", positive, 100)
|
|
15
15
|
.option("--json", "print JSON; --json=id,title keeps only those fields")
|
|
16
|
-
.action((options) => run(options.json, (store) => pageOf(options.limit, (limit) => store.agentActions.list({
|
|
16
|
+
.action((options) => run(options.json, (store) => pageOf("agents log", options.limit, (limit) => store.agentActions.list({
|
|
17
17
|
...(options.tool === undefined ? {} : { tool: options.tool }),
|
|
18
18
|
...(options.agent === undefined ? {} : { agent: options.agent }),
|
|
19
19
|
limit,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/agents/command.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/agents/command.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEnC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAgB,EAAE,OAAgB,EAAE,GAAsB,EAAQ,EAAE;IAChG,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAA;IAC9C,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,8DAA8D,CAAC;SAC3E,OAAO,CAAC,KAAK,CAAC;SACd,OAAO,CAAC,qEAAqE,CAAC;SAC9E,WAAW,CAAC,gGAAgG,CAAC;SAC7G,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC;SACzC,MAAM,CAAC,gBAAgB,EAAE,6CAA6C,CAAC;SACvE,MAAM,CAAC,aAAa,EAAE,sBAAsB,EAAE,QAAQ,EAAE,GAAG,CAAC;SAC5D,MAAM,CAAC,QAAQ,EAAE,qDAAqD,CAAC;SACvE,MAAM,CAAC,CAAC,OAAyE,EAAE,EAAE,CACpF,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAC1B,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAC5C,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC;QACtB,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7D,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QAChE,KAAK;KACN,CAAC,CACH,CACF,CACF,CAAA;AACL,CAAC,CAAA"}
|
package/dist/answer.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type Streams } from "@wirecat/cli-base";
|
|
2
|
+
import { type Body, itemOf, type ListInput } from "@wirecat/cli-core/cli";
|
|
3
|
+
import { type MessageStore } from "@wirecat/cli-core/store";
|
|
4
|
+
import type { Command } from "commander";
|
|
5
|
+
export declare const itemAnswer: <T>(value: T, extra?: Parameters<typeof itemOf>[1]) => import("@wirecat/cli-core/cli").ItemBody<unknown>;
|
|
6
|
+
/**
|
|
7
|
+
* A list. One that takes neither `--cursor` nor `--page` shows more only by a higher `--limit`, so it names no
|
|
8
|
+
* next page and no `page.next` step: both would point at a flag the command does not have.
|
|
9
|
+
*/
|
|
10
|
+
export declare const listAnswer: <T>(command: string, input: ListInput<T>) => import("@wirecat/cli-core/cli").ListBody<unknown>;
|
|
11
|
+
export declare const wholeList: (command: string, items: unknown[]) => import("@wirecat/cli-core/cli").ListBody<unknown>;
|
|
12
|
+
export declare const withStore: <T>(env: NodeJS.ProcessEnv, work: (store: MessageStore) => Promise<T>) => Promise<T>;
|
|
13
|
+
/** The answer is judged by the command that ran — whether it may be partial — so the root remembers it. */
|
|
14
|
+
export declare const trackAnswers: (program: Command) => void;
|
|
15
|
+
/**
|
|
16
|
+
* Prints answers through cli-core's renderer: the whole envelope for `--json`, otherwise `text`, or the item or
|
|
17
|
+
* items as indented JSON where a command has no text view.
|
|
18
|
+
*/
|
|
19
|
+
export declare const answers: (program: Command, streams: Streams, env: NodeJS.ProcessEnv) => {
|
|
20
|
+
print: (json: boolean | undefined, body: Body, text?: string) => void;
|
|
21
|
+
run: (json: boolean | undefined, work: (store: MessageStore) => Promise<Body>) => Promise<void>;
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=answer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"answer.d.ts","sourceRoot":"","sources":["../src/answer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,EAAE,KAAK,IAAI,EAAc,MAAM,EAAE,KAAK,SAAS,EAAgC,MAAM,uBAAuB,CAAA;AACnH,OAAO,EAAE,KAAK,YAAY,EAAa,MAAM,yBAAyB,CAAA;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGxC,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,CAAC,UAAU,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,sDAAoC,CAAA;AAEhH;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,WAAW,MAAM,SAAS,SAAS,CAAC,CAAC,CAAC,sDAQjE,CAAA;AAED,eAAO,MAAM,SAAS,YAAa,MAAM,SAAS,OAAO,EAAE,sDACwB,CAAA;AAEnF,eAAO,MAAM,SAAS,GAAU,CAAC,OAAO,MAAM,CAAC,UAAU,QAAQ,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,CAO/G,CAAA;AAID,2GAA2G;AAC3G,eAAO,MAAM,YAAY,YAAa,OAAO,KAAG,IAK/C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,OAAO,YAAa,OAAO,WAAW,OAAO,OAAO,MAAM,CAAC,UAAU;kBAC3D,OAAO,GAAG,SAAS,QAAQ,IAAI,SAAS,MAAM,KAAG,IAAI;gBAYtD,OAAO,GAAG,SAAS,QAAQ,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC;CAGtF,CAAA"}
|
package/dist/answer.js
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { createRenderer } from "@wirecat/cli-base";
|
|
2
|
+
import { currentRun, itemOf, listOf, renderAnswer, rootOf } from "@wirecat/cli-core/cli";
|
|
3
|
+
import { openStore } from "@wirecat/cli-core/store";
|
|
4
|
+
import { snakeKeys } from "./output.js";
|
|
5
|
+
export const itemAnswer = (value, extra) => itemOf(snakeKeys(value), extra);
|
|
6
|
+
/**
|
|
7
|
+
* A list. One that takes neither `--cursor` nor `--page` shows more only by a higher `--limit`, so it names no
|
|
8
|
+
* next page and no `page.next` step: both would point at a flag the command does not have.
|
|
9
|
+
*/
|
|
10
|
+
export const listAnswer = (command, input) => {
|
|
11
|
+
const body = listOf(command, { ...input, items: snakeKeys(input.items) });
|
|
12
|
+
if (input.cursor !== undefined || input.page !== undefined)
|
|
13
|
+
return body;
|
|
14
|
+
if (body.page.mode === "page")
|
|
15
|
+
delete body.page.next_page;
|
|
16
|
+
const next = body.next?.filter(({ step }) => step !== "page.next") ?? [];
|
|
17
|
+
if (next.length > 0)
|
|
18
|
+
body.next = next;
|
|
19
|
+
else
|
|
20
|
+
delete body.next;
|
|
21
|
+
return body;
|
|
22
|
+
};
|
|
23
|
+
export const wholeList = (command, items) => listAnswer(command, { items, limit: Math.max(1, items.length), has_more: false });
|
|
24
|
+
export const withStore = async (env, work) => {
|
|
25
|
+
const store = await openStore({ env });
|
|
26
|
+
try {
|
|
27
|
+
return await work(store);
|
|
28
|
+
}
|
|
29
|
+
finally {
|
|
30
|
+
await store.close();
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
const running = new WeakMap();
|
|
34
|
+
/** The answer is judged by the command that ran — whether it may be partial — so the root remembers it. */
|
|
35
|
+
export const trackAnswers = (program) => {
|
|
36
|
+
currentRun();
|
|
37
|
+
program.hook("preAction", (root, leaf) => {
|
|
38
|
+
running.set(root, leaf);
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Prints answers through cli-core's renderer: the whole envelope for `--json`, otherwise `text`, or the item or
|
|
43
|
+
* items as indented JSON where a command has no text view.
|
|
44
|
+
*/
|
|
45
|
+
export const answers = (program, streams, env) => {
|
|
46
|
+
const print = (json, body, text) => {
|
|
47
|
+
const format = json ? "json" : "pretty";
|
|
48
|
+
const root = rootOf(program);
|
|
49
|
+
renderAnswer(running.get(root) ?? root, { renderer: createRenderer({ format, color: false, streams }), format, streams }, body, () => `${text ?? JSON.stringify("items" in body ? body.items : body.item, null, 2)}\n`);
|
|
50
|
+
};
|
|
51
|
+
return {
|
|
52
|
+
print,
|
|
53
|
+
run: async (json, work) => print(json, await withStore(env, work)),
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=answer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"answer.js","sourceRoot":"","sources":["../src/answer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/answers/command.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/answers/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAgB,MAAM,0BAA0B,CAAA;AAC5F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGxC,OAAO,EAAE,KAAK,YAAY,EAAiC,MAAM,sBAAsB,CAAA;AAGvF,UAAU,KAAK;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,IAAI,EAAE,WAAW,GAAG,YAAY,GAAG,WAAW,CAAA;CAC/C;AACD,UAAU,aAAa;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAA;IACpD,MAAM,EAAE,MAAM,CAAA;CACf;AAED,eAAO,MAAM,cAAc,aACf,MAAM,YACN,YAAY,EAAE,WACf;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;CAAE;;;;QAuD9F,QAAQ;QAAmB,IAAI;;;;;;;EAO3C,CAAA;AAED,eAAO,MAAM,UAAU,YAAa,OAAO,WAAW,OAAO,OAAO,MAAM,CAAC,UAAU,SAuEpF,CAAA"}
|
package/dist/answers/command.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { CliError
|
|
1
|
+
import { CliError } from "@wirecat/cli-base";
|
|
2
2
|
import { modelGateway } from "@wirecat/cli-core/models";
|
|
3
|
-
import {
|
|
3
|
+
import { answers, itemAnswer, withStore } from "../answer.js";
|
|
4
4
|
import { positive } from "../options.js";
|
|
5
|
-
import { snakeKeys } from "../output.js";
|
|
6
5
|
import { searchAccounts, unifiedSearch } from "../search/command.js";
|
|
7
6
|
export const answerEvidence = async (question, evidence, options) => {
|
|
8
7
|
const result = await modelGateway({
|
|
@@ -56,6 +55,7 @@ export const answerEvidence = async (question, evidence, options) => {
|
|
|
56
55
|
};
|
|
57
56
|
};
|
|
58
57
|
export const askCommand = (program, streams, env) => {
|
|
58
|
+
const { print } = answers(program, streams, env);
|
|
59
59
|
program
|
|
60
60
|
.command("ask")
|
|
61
61
|
.description("prepare cited evidence for your agent, or explicitly call a configured model")
|
|
@@ -69,8 +69,7 @@ export const askCommand = (program, streams, env) => {
|
|
|
69
69
|
.option("--allow-remote", "explicitly consent to sending this evidence to the configured model")
|
|
70
70
|
.option("--json", "print JSON; --json=id,title keeps only those fields")
|
|
71
71
|
.action(async (question, options) => {
|
|
72
|
-
|
|
73
|
-
try {
|
|
72
|
+
await withStore(env, async (store) => {
|
|
74
73
|
const found = await unifiedSearch(store, options.query ?? question, {
|
|
75
74
|
...(await searchAccounts(store, options)),
|
|
76
75
|
limit: options.limit,
|
|
@@ -105,14 +104,8 @@ export const askCommand = (program, streams, env) => {
|
|
|
105
104
|
})),
|
|
106
105
|
};
|
|
107
106
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
else
|
|
111
|
-
streams.data(`${JSON.stringify(snakeKeys(answer), null, 2)}\n`);
|
|
112
|
-
}
|
|
113
|
-
finally {
|
|
114
|
-
await store.close();
|
|
115
|
-
}
|
|
107
|
+
print(options.json, itemAnswer(answer));
|
|
108
|
+
});
|
|
116
109
|
});
|
|
117
110
|
};
|
|
118
111
|
//# sourceMappingURL=command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/answers/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/answers/command.ts"],"names":[],"mappings":"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"}
|
package/dist/bin/memo.js
CHANGED
|
@@ -4,7 +4,7 @@ import { migrateFolders } from "@wirecat/cli-core/background";
|
|
|
4
4
|
import { ensureSqlite } from "@wirecat/cli-core/sqlite-runtime";
|
|
5
5
|
import { CommanderError } from "commander";
|
|
6
6
|
import { APP } from "../app.js";
|
|
7
|
-
import { interactiveOf
|
|
7
|
+
import { interactiveOf } from "../terminal.js";
|
|
8
8
|
const args = process.argv.slice(2);
|
|
9
9
|
const tty = process.stdout.isTTY === true;
|
|
10
10
|
const release = catchCrashes({ cli: APP.command, interactive: interactiveOf(args, tty), reasons: APP.errors.reasons });
|
|
@@ -15,23 +15,37 @@ try {
|
|
|
15
15
|
await ensureSqlite();
|
|
16
16
|
// A static import would load the store's SQLite before ensureSqlite could swap it.
|
|
17
17
|
const { createProgram, refuseJoinedPath } = await import("../program.js");
|
|
18
|
+
const { throwParseFailures } = await import("../failure.js");
|
|
18
19
|
// `memo auto status` says it in full; everywhere else one line, until a timer run passes again.
|
|
19
20
|
if (args[0] !== "auto") {
|
|
20
21
|
const notice = (await import("../run/auto.js")).autoNotice(process.env);
|
|
21
22
|
if (notice)
|
|
22
23
|
processStreams.diagnostic(notice);
|
|
23
24
|
}
|
|
25
|
+
const { followInstall } = await import("../run/auto.js");
|
|
26
|
+
const { updateNotice } = await import("../update.js");
|
|
27
|
+
const notice = updateNotice(args);
|
|
24
28
|
program = createProgram();
|
|
25
29
|
throwParseFailures(program);
|
|
26
30
|
refuseJoinedPath(program, args);
|
|
27
31
|
await program.parseAsync(process.argv);
|
|
32
|
+
// After the command, so a broken systemctl never stands between the owner and the answer.
|
|
33
|
+
await followInstall(process.env).catch(() => undefined);
|
|
34
|
+
const line = await notice;
|
|
35
|
+
if (line && !process.exitCode)
|
|
36
|
+
processStreams.diagnostic(line);
|
|
28
37
|
}
|
|
29
38
|
catch (error) {
|
|
30
39
|
// Help and the version were printed already; only their exit code is left to give.
|
|
31
40
|
if (error instanceof CommanderError && (error.exitCode === 0 || error.code.startsWith("commander.help")))
|
|
32
41
|
process.exitCode = error.exitCode;
|
|
33
42
|
else
|
|
34
|
-
process.exitCode = await reportFailure(error, {
|
|
43
|
+
process.exitCode = (await import("../failure.js")).reportFailure(error, {
|
|
44
|
+
args,
|
|
45
|
+
program,
|
|
46
|
+
streams: processStreams,
|
|
47
|
+
tty,
|
|
48
|
+
});
|
|
35
49
|
}
|
|
36
50
|
finally {
|
|
37
51
|
release();
|
package/dist/bin/memo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memo.js","sourceRoot":"","sources":["../../src/bin/memo.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAC/D,OAAO,EAAgB,cAAc,EAAE,MAAM,WAAW,CAAA;AACxD,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"memo.js","sourceRoot":"","sources":["../../src/bin/memo.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAC/D,OAAO,EAAgB,cAAc,EAAE,MAAM,WAAW,CAAA;AACxD,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAE9C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAClC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAA;AACzC,MAAM,OAAO,GAAG,YAAY,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA;AACtH,IAAI,OAA4B,CAAA;AAChC,IAAI,CAAC;IACH,6FAA6F;IAC7F,cAAc,CAAC,GAAG,CAAC,CAAA;IACnB,MAAM,YAAY,EAAE,CAAA;IACpB,mFAAmF;IACnF,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAA;IACzE,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAA;IAC5D,gGAAgG;IAChG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACvE,IAAI,MAAM;YAAE,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IAC/C,CAAC;IACD,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAA;IACxD,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAA;IACrD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IACjC,OAAO,GAAG,aAAa,EAAE,CAAA;IACzB,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAC3B,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAC/B,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACtC,0FAA0F;IAC1F,MAAM,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAA;IACvD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAA;IACzB,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ;QAAE,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;AAChE,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,mFAAmF;IACnF,IAAI,KAAK,YAAY,cAAc,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QACtG,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;;QAEjC,OAAO,CAAC,QAAQ,GAAG,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE;YACtE,IAAI;YACJ,OAAO;YACP,OAAO,EAAE,cAAc;YACvB,GAAG;SACJ,CAAC,CAAA;AACN,CAAC;QAAS,CAAC;IACT,OAAO,EAAE,CAAA;AACX,CAAC"}
|
package/dist/config.d.ts
CHANGED
|
@@ -19,7 +19,11 @@ declare const ConfigSchema: v.ObjectSchema<{
|
|
|
19
19
|
readonly auto: v.OptionalSchema<v.ObjectSchema<{
|
|
20
20
|
readonly enabled: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
|
|
21
21
|
readonly every: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
22
|
+
/** MEMO_CONFIG_DIR, MESSAGING_STORE… as they were at `memo auto start`, passed to every timer run. */
|
|
23
|
+
readonly places: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.StringSchema<undefined>, undefined>, undefined>;
|
|
22
24
|
}, undefined>, undefined>;
|
|
25
|
+
/** `false` stops the once-a-day check for a newer memo. */
|
|
26
|
+
readonly update_check: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
|
|
23
27
|
readonly mail: v.OptionalSchema<v.ObjectSchema<{
|
|
24
28
|
readonly accounts: v.ArraySchema<v.ObjectSchema<{
|
|
25
29
|
readonly name: v.StringSchema<undefined>;
|
|
@@ -34,17 +38,17 @@ declare const ConfigSchema: v.ObjectSchema<{
|
|
|
34
38
|
readonly match: v.ObjectSchema<{
|
|
35
39
|
readonly from: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
36
40
|
readonly domain: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
37
|
-
readonly
|
|
41
|
+
readonly list_id: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
38
42
|
}, undefined>;
|
|
39
43
|
readonly action: v.PicklistSchema<["skip", "envelope", "keep"], undefined>;
|
|
40
44
|
readonly reason: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
|
|
41
|
-
readonly
|
|
45
|
+
readonly decided_at: v.StringSchema<undefined>;
|
|
42
46
|
}, undefined>, undefined>, undefined>;
|
|
43
47
|
}, undefined>, undefined>;
|
|
44
48
|
/** The most characters of an email body kept; 1,000,000 by default. */
|
|
45
|
-
readonly
|
|
49
|
+
readonly max_body_chars: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
|
|
46
50
|
/** The most characters of one attachment's extracted text kept; 200,000 by default. */
|
|
47
|
-
readonly
|
|
51
|
+
readonly max_attachment_chars: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>, undefined>;
|
|
48
52
|
}, undefined>, undefined>;
|
|
49
53
|
}, undefined>;
|
|
50
54
|
export type Config = v.InferOutput<typeof ConfigSchema>;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAG5B,QAAA,MAAM,YAAY;;QAGZ,4FAA4F;;;;;;;QAY5F,qFAAqF;;QAErF,6FAA6F;;;;;;;;;QAU7F,sGAAsG;;;IAI1G,2DAA2D;;;;;;YAQnD,8GAA8G;;;;;YAK9G,8GAA8G;;;;;;;;;;;;QAiBlH,uEAAuE;;QAEvE,uFAAuF;;;aAI3F,CAAA;AAEF,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,YAAY,CAAC,CAAA;AAEvD,eAAO,MAAM,UAAU,SAAS,MAAM,CAAC,UAAU,KAAiB,MACiB,CAAA;AAEnF,eAAO,MAAM,UAAU,SAAS,MAAM,CAAC,UAAU,KAAiB,MACF,CAAA;AAEhE,oEAAoE;AACpE,eAAO,MAAM,YAAY,WAAY,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,QAAO,MAAM,CAAC,UAAU,KAAiB,MAIvG,CAAA"}
|
package/dist/config.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { configFilePath,
|
|
1
|
+
import { configFilePath, resolvePaths, saveConfigFile } from "@wirecat/cli-base";
|
|
2
|
+
import { loadSnakeCaseConfig } from "@wirecat/cli-core/cli";
|
|
2
3
|
import * as v from "valibot";
|
|
3
4
|
import { DIALECTS } from "./notes/dialects/index.js";
|
|
4
5
|
const ConfigSchema = v.object({
|
|
@@ -18,7 +19,14 @@ const ConfigSchema = v.object({
|
|
|
18
19
|
/** Where `memo notes export` and `--export` write internal notes when no folder is given. */
|
|
19
20
|
export: v.optional(v.object({ dir: v.pipe(v.string(), v.minLength(1)), format: v.optional(v.picklist(DIALECTS)) })),
|
|
20
21
|
})),
|
|
21
|
-
auto: v.optional(v.object({
|
|
22
|
+
auto: v.optional(v.object({
|
|
23
|
+
enabled: v.optional(v.boolean()),
|
|
24
|
+
every: v.optional(v.string()),
|
|
25
|
+
/** MEMO_CONFIG_DIR, MESSAGING_STORE… as they were at `memo auto start`, passed to every timer run. */
|
|
26
|
+
places: v.optional(v.record(v.string(), v.string())),
|
|
27
|
+
})),
|
|
28
|
+
/** `false` stops the once-a-day check for a newer memo. */
|
|
29
|
+
update_check: v.optional(v.boolean()),
|
|
22
30
|
mail: v.optional(v.object({
|
|
23
31
|
accounts: v.array(v.object({
|
|
24
32
|
name: v.string(),
|
|
@@ -33,21 +41,21 @@ const ConfigSchema = v.object({
|
|
|
33
41
|
match: v.object({
|
|
34
42
|
from: v.optional(v.string()),
|
|
35
43
|
domain: v.optional(v.string()),
|
|
36
|
-
|
|
44
|
+
list_id: v.optional(v.string()),
|
|
37
45
|
}),
|
|
38
46
|
action: v.picklist(["skip", "envelope", "keep"]),
|
|
39
47
|
reason: v.optional(v.string()),
|
|
40
|
-
|
|
48
|
+
decided_at: v.string(),
|
|
41
49
|
}))),
|
|
42
50
|
})),
|
|
43
51
|
/** The most characters of an email body kept; 1,000,000 by default. */
|
|
44
|
-
|
|
52
|
+
max_body_chars: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
|
|
45
53
|
/** The most characters of one attachment's extracted text kept; 200,000 by default. */
|
|
46
|
-
|
|
54
|
+
max_attachment_chars: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1))),
|
|
47
55
|
})),
|
|
48
56
|
});
|
|
49
57
|
export const configPath = (env = process.env) => configFilePath(resolvePaths({ appName: "cli-memo", prefix: "MEMO", env }).config);
|
|
50
|
-
export const loadConfig = (env = process.env) =>
|
|
58
|
+
export const loadConfig = (env = process.env) => loadSnakeCaseConfig(configPath(env), ConfigSchema, () => ({}));
|
|
51
59
|
/** Changes one part of the config and keeps the rest as written. */
|
|
52
60
|
export const updateConfig = (change, env = process.env) => {
|
|
53
61
|
const next = change(loadConfig(env));
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Streams } from "@wirecat/cli-base";
|
|
2
2
|
import type { Command } from "commander";
|
|
3
3
|
import { type MemoContext } from "./context.js";
|
|
4
4
|
export declare const contextText: ({ messages, notes, notRead, tasks, yourNotes }: MemoContext) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/context/command.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/context/command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAEhD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKxC,OAAO,EAAE,KAAK,WAAW,EAAe,MAAM,cAAc,CAAA;AAc5D,eAAO,MAAM,WAAW,mDAAoD,WAAW,KAAG,MAyCzF,CAAA;AAED,eAAO,MAAM,cAAc,YAAa,OAAO,WAAW,OAAO,OAAO,MAAM,CAAC,UAAU,KAAG,IAsB3F,CAAA"}
|
package/dist/context/command.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { openStore } from "@wirecat/cli-core/store";
|
|
1
|
+
import { answers, itemAnswer, withStore } from "../answer.js";
|
|
3
2
|
import { boundFolders } from "../notes/bound.js";
|
|
4
3
|
import { positive } from "../options.js";
|
|
5
|
-
import { snakeKeys } from "../output.js";
|
|
6
4
|
import { importNotesMap } from "../people/notes-map.js";
|
|
7
5
|
import { memoContext } from "./context.js";
|
|
8
6
|
const MAX_TEXT = 160;
|
|
@@ -52,6 +50,7 @@ export const contextText = ({ messages, notes, notRead, tasks, yourNotes }) => {
|
|
|
52
50
|
].join("\n");
|
|
53
51
|
};
|
|
54
52
|
export const contextCommand = (program, streams, env) => {
|
|
53
|
+
const { print } = answers(program, streams, env);
|
|
55
54
|
program
|
|
56
55
|
.command("context")
|
|
57
56
|
.description("messages, mail and notes about a person, each with a link to its source")
|
|
@@ -60,21 +59,14 @@ export const contextCommand = (program, streams, env) => {
|
|
|
60
59
|
.option("--json", "print JSON; --json=id,title keeps only those fields")
|
|
61
60
|
.option("--account <account>", "the stored account to read; required when the store holds several of that messenger")
|
|
62
61
|
.action(async (person, options) => {
|
|
63
|
-
const
|
|
64
|
-
try {
|
|
62
|
+
const answer = await withStore(env, async (store) => {
|
|
65
63
|
await importNotesMap(store, env, await boundFolders(store, env, { strict: false }));
|
|
66
|
-
|
|
64
|
+
return memoContext(store, person, {
|
|
67
65
|
limit: options.limit,
|
|
68
66
|
...(options.account === undefined ? {} : { account: options.account }),
|
|
69
67
|
});
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
else
|
|
73
|
-
streams.data(`${contextText(answer)}\n`);
|
|
74
|
-
}
|
|
75
|
-
finally {
|
|
76
|
-
await store.close();
|
|
77
|
-
}
|
|
68
|
+
});
|
|
69
|
+
print(options.json, itemAnswer(answer), contextText(answer));
|
|
78
70
|
});
|
|
79
71
|
};
|
|
80
72
|
//# sourceMappingURL=command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/context/command.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/context/command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Streams } from "@wirecat/cli-base";
|
|
2
2
|
import type { Command } from "commander";
|
|
3
3
|
/** The major version of the JSON memo's commands print; raise it when a field is removed or renamed. */
|
|
4
|
-
export declare const CONTRACT =
|
|
4
|
+
export declare const CONTRACT = 4;
|
|
5
5
|
export declare const commandsCommand: (program: Command, streams: Streams) => void;
|
|
6
6
|
//# sourceMappingURL=command.d.ts.map
|
|
@@ -2,7 +2,7 @@ import { CliError, createRenderer } from "@wirecat/cli-base";
|
|
|
2
2
|
import { commandsDocument, flatten } from "@wirecat/cli-base/commands";
|
|
3
3
|
import { VERSION } from "../version.js";
|
|
4
4
|
/** The major version of the JSON memo's commands print; raise it when a field is removed or renamed. */
|
|
5
|
-
export const CONTRACT =
|
|
5
|
+
export const CONTRACT = 4;
|
|
6
6
|
export const commandsCommand = (program, streams) => {
|
|
7
7
|
program
|
|
8
8
|
.command("commands")
|