@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
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { type Streams } from "@wirecat/cli-base";
|
|
2
|
+
import type { Command } from "commander";
|
|
3
|
+
/** Something a person should do, with the command that does it. */
|
|
4
|
+
interface Problem {
|
|
5
|
+
what: string;
|
|
6
|
+
fix: string;
|
|
7
|
+
}
|
|
8
|
+
/** Everything memo needs, read from this computer only: no mail server, no messenger, no npm. */
|
|
9
|
+
export declare const diagnose: (env: NodeJS.ProcessEnv) => Promise<{
|
|
10
|
+
memo: {
|
|
11
|
+
version: string;
|
|
12
|
+
node: string;
|
|
13
|
+
installed_by: import("@wirecat/cli-base/update").Installer;
|
|
14
|
+
};
|
|
15
|
+
config: {
|
|
16
|
+
path: string;
|
|
17
|
+
exists: boolean;
|
|
18
|
+
};
|
|
19
|
+
state: string;
|
|
20
|
+
cache: string;
|
|
21
|
+
store: {
|
|
22
|
+
path: string;
|
|
23
|
+
exists: boolean;
|
|
24
|
+
error?: undefined;
|
|
25
|
+
} | {
|
|
26
|
+
path: string;
|
|
27
|
+
exists: boolean;
|
|
28
|
+
schema: number;
|
|
29
|
+
speaks: number;
|
|
30
|
+
writable: boolean;
|
|
31
|
+
chats?: number | undefined;
|
|
32
|
+
messages?: number | undefined;
|
|
33
|
+
} | {
|
|
34
|
+
path: string;
|
|
35
|
+
exists: boolean;
|
|
36
|
+
error: string;
|
|
37
|
+
};
|
|
38
|
+
notes: {
|
|
39
|
+
path: string;
|
|
40
|
+
exists: boolean;
|
|
41
|
+
bound: boolean;
|
|
42
|
+
}[];
|
|
43
|
+
mail: {
|
|
44
|
+
accounts: {
|
|
45
|
+
name: string;
|
|
46
|
+
address: string;
|
|
47
|
+
mode: "gmail" | "imap" | "mbox";
|
|
48
|
+
path?: string | null | undefined;
|
|
49
|
+
exists?: boolean | undefined;
|
|
50
|
+
/** Rules still in config.json; the next mail command moves them into the store. */
|
|
51
|
+
rules_in_config: number;
|
|
52
|
+
}[];
|
|
53
|
+
himalaya: string | null;
|
|
54
|
+
};
|
|
55
|
+
search_model: {
|
|
56
|
+
name: string;
|
|
57
|
+
path: string;
|
|
58
|
+
present: boolean;
|
|
59
|
+
};
|
|
60
|
+
timer: {
|
|
61
|
+
enabled: boolean;
|
|
62
|
+
every: string;
|
|
63
|
+
unit: string | null;
|
|
64
|
+
runs: string[];
|
|
65
|
+
failing: {
|
|
66
|
+
since: string;
|
|
67
|
+
runs: number;
|
|
68
|
+
reason: string | null;
|
|
69
|
+
} | null;
|
|
70
|
+
};
|
|
71
|
+
skills: {
|
|
72
|
+
target: "agents" | "claude";
|
|
73
|
+
path: string;
|
|
74
|
+
version: string | null;
|
|
75
|
+
}[];
|
|
76
|
+
problems: Problem[];
|
|
77
|
+
}>;
|
|
78
|
+
type Diagnosis = Awaited<ReturnType<typeof diagnose>>;
|
|
79
|
+
export declare const doctorText: (d: Diagnosis) => string;
|
|
80
|
+
export declare const doctorCommand: (program: Command, streams: Streams, env: NodeJS.ProcessEnv) => void;
|
|
81
|
+
export {};
|
|
82
|
+
//# sourceMappingURL=command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/doctor/command.ts"],"names":[],"mappings":"AAIA,OAAO,EAAgB,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAI9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAWxC,mEAAmE;AACnE,UAAU,OAAO;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;CACZ;AAsBD,iGAAiG;AACjG,eAAO,MAAM,QAAQ,QAAe,MAAM,CAAC,UAAU;;;;;;;QA4EvC,IAAI;QAAmB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YA9CvC,mFAAmF;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyDtF,CAAA;AAED,KAAK,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAA;AAIrD,eAAO,MAAM,UAAU,MAAO,SAAS,KAAG,MA6B5B,CAAA;AAEd,eAAO,MAAM,aAAa,YAAa,OAAO,WAAW,OAAO,OAAO,MAAM,CAAC,UAAU,KAAG,IAgB1F,CAAA"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { execFile } from "node:child_process";
|
|
2
|
+
import { existsSync, readdirSync, readFileSync } from "node:fs";
|
|
3
|
+
import { homedir } from "node:os";
|
|
4
|
+
import { join } from "node:path";
|
|
5
|
+
import { resolvePaths } from "@wirecat/cli-base";
|
|
6
|
+
import { SKILL_TARGETS, skillPath, skillVersion } from "@wirecat/cli-base/skill";
|
|
7
|
+
import { storeSummary } from "@wirecat/cli-core/cli";
|
|
8
|
+
import { sharedModelsDirectory } from "@wirecat/cli-core/speech";
|
|
9
|
+
import { answers, itemAnswer } from "../answer.js";
|
|
10
|
+
import { APP } from "../app.js";
|
|
11
|
+
import { configPath, loadConfig } from "../config.js";
|
|
12
|
+
import { noteFolders } from "../notes/folders.js";
|
|
13
|
+
import { autoState, lastAutoRun } from "../run/auto.js";
|
|
14
|
+
import { installer } from "../update.js";
|
|
15
|
+
import { VERSION } from "../version.js";
|
|
16
|
+
const TEXT_MODEL = "e5-small";
|
|
17
|
+
const himalayaVersion = (env) => new Promise((done) => execFile(env.MEMO_HIMALAYA ?? "himalaya", ["--version"], { env, timeout: 3000 }, (error, stdout) => done(error === null ? stdout.trim().split(/\r?\n/)[0] || "unknown" : null)));
|
|
18
|
+
const unitPaths = (unit) => [...(/^ExecStart=(.*)$/m.exec(unit)?.[1] ?? "").matchAll(/"((?:[^"\\]|\\.)*)"/g)]
|
|
19
|
+
.map(([, path]) => path?.replace(/\\(["\\])/g, "$1") ?? "")
|
|
20
|
+
.filter((path) => path.startsWith("/"));
|
|
21
|
+
const readConfig = (env) => {
|
|
22
|
+
try {
|
|
23
|
+
return { config: loadConfig(env) };
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
return { config: {}, error: error instanceof Error ? error.message : String(error) };
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
/** Everything memo needs, read from this computer only: no mail server, no messenger, no npm. */
|
|
30
|
+
export const diagnose = async (env) => {
|
|
31
|
+
const problems = [];
|
|
32
|
+
const paths = resolvePaths({ appName: APP.appName, prefix: APP.envPrefix, env });
|
|
33
|
+
const { config, error: configError } = readConfig(env);
|
|
34
|
+
if (configError)
|
|
35
|
+
problems.push({ what: `the config cannot be read: ${configError}`, fix: `fix ${configPath(env)}` });
|
|
36
|
+
const store = await storeSummary(env);
|
|
37
|
+
if ("error" in store && store.error)
|
|
38
|
+
problems.push({ what: `the store cannot be read: ${store.error}`, fix: "" });
|
|
39
|
+
if ("writable" in store && store.writable === false)
|
|
40
|
+
problems.push({ what: "the store is from a newer version than this memo", fix: "memo upgrade" });
|
|
41
|
+
const folders = noteFolders(config.notes).map(({ path, id }) => ({
|
|
42
|
+
path,
|
|
43
|
+
exists: existsSync(path),
|
|
44
|
+
bound: id !== null,
|
|
45
|
+
}));
|
|
46
|
+
for (const folder of folders) {
|
|
47
|
+
if (!folder.exists)
|
|
48
|
+
problems.push({ what: `the notes folder ${folder.path} is missing`, fix: "memo folders" });
|
|
49
|
+
else if (!folder.bound)
|
|
50
|
+
problems.push({
|
|
51
|
+
what: `the notes folder ${folder.path} has no folder id`,
|
|
52
|
+
fix: `memo folders add "${folder.path}"`,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
const accounts = (config.mail?.accounts ?? []).map(({ name, address, mode, path, rules }) => ({
|
|
56
|
+
name,
|
|
57
|
+
address,
|
|
58
|
+
mode: mode ?? "gmail",
|
|
59
|
+
...(mode === "mbox" ? { path: path ?? null, exists: path !== undefined && existsSync(path) } : {}),
|
|
60
|
+
/** Rules still in config.json; the next mail command moves them into the store. */
|
|
61
|
+
rules_in_config: rules?.length ?? 0,
|
|
62
|
+
}));
|
|
63
|
+
const imap = accounts.some(({ mode }) => mode !== "mbox");
|
|
64
|
+
const himalaya = imap ? await himalayaVersion(env) : null;
|
|
65
|
+
if (imap && himalaya === null)
|
|
66
|
+
problems.push({ what: "himalaya is not on PATH, so mail cannot be read", fix: "install Himalaya (docs/mail.md)" });
|
|
67
|
+
for (const account of accounts)
|
|
68
|
+
if ("exists" in account && !account.exists)
|
|
69
|
+
problems.push({ what: `the mbox file of mail account ${account.name} is missing`, fix: "check mail.accounts" });
|
|
70
|
+
const modelDir = join(sharedModelsDirectory("text", env), TEXT_MODEL);
|
|
71
|
+
const model = existsSync(modelDir) && readdirSync(modelDir).length > 0;
|
|
72
|
+
const state = autoState(config);
|
|
73
|
+
const unitFile = join(env.XDG_CONFIG_HOME ?? join(env.HOME ?? homedir(), ".config"), "systemd", "user", "memo-import.service");
|
|
74
|
+
const unit = existsSync(unitFile) ? readFileSync(unitFile, "utf8") : undefined;
|
|
75
|
+
const runs = unit ? unitPaths(unit) : [];
|
|
76
|
+
const missing = runs.filter((path) => !existsSync(path));
|
|
77
|
+
const last = lastAutoRun(env);
|
|
78
|
+
const failing = last && last.exitCode !== 0
|
|
79
|
+
? { since: last.failingSince ?? last.at, runs: last.failures ?? 1, reason: last.reason ?? null }
|
|
80
|
+
: null;
|
|
81
|
+
if (state.enabled && !unit)
|
|
82
|
+
problems.push({ what: "the timer is on in the config but not installed", fix: "memo auto start" });
|
|
83
|
+
if (missing.length > 0)
|
|
84
|
+
problems.push({ what: `the timer runs a program that is gone: ${missing.join(", ")}`, fix: "memo auto start" });
|
|
85
|
+
if (failing)
|
|
86
|
+
problems.push({ what: `the timer has failed ${failing.runs} runs since ${failing.since}`, fix: "memo auto status" });
|
|
87
|
+
const skills = SKILL_TARGETS.map((target) => {
|
|
88
|
+
const path = skillPath(target, APP.appName, env);
|
|
89
|
+
const version = existsSync(path) ? (skillVersion(readFileSync(path, "utf8")) ?? "unknown") : null;
|
|
90
|
+
return { target, path, version };
|
|
91
|
+
});
|
|
92
|
+
if (skills.some(({ version }) => version !== null && version !== VERSION))
|
|
93
|
+
problems.push({ what: "an installed skill is from another memo version", fix: "memo skill install --for all" });
|
|
94
|
+
return {
|
|
95
|
+
memo: { version: VERSION, node: process.version, installed_by: installer() },
|
|
96
|
+
config: { path: configPath(env), exists: existsSync(configPath(env)) },
|
|
97
|
+
state: paths.state,
|
|
98
|
+
cache: paths.cache,
|
|
99
|
+
store,
|
|
100
|
+
notes: folders,
|
|
101
|
+
mail: { accounts, himalaya },
|
|
102
|
+
search_model: { name: TEXT_MODEL, path: modelDir, present: model },
|
|
103
|
+
timer: { enabled: state.enabled, every: state.every, unit: unit ? unitFile : null, runs, failing },
|
|
104
|
+
skills,
|
|
105
|
+
problems,
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
const yes = (value) => (value ? "yes" : "no");
|
|
109
|
+
export const doctorText = (d) => [
|
|
110
|
+
`memo ${d.memo.version} on Node ${d.memo.node}, installed by ${d.memo.installed_by}`,
|
|
111
|
+
`config ${d.config.path}${d.config.exists ? "" : " (none yet)"}`,
|
|
112
|
+
`state ${d.state}`,
|
|
113
|
+
`cache ${d.cache}`,
|
|
114
|
+
`store ${d.store.path}${!d.store.exists
|
|
115
|
+
? " (none yet; the first memo sync makes it)"
|
|
116
|
+
: "schema" in d.store
|
|
117
|
+
? ` (schema ${d.store.schema}, memo speaks ${d.store.speaks})`
|
|
118
|
+
: ""}`,
|
|
119
|
+
...d.notes.map((f) => `notes ${f.path} — exists ${yes(f.exists)}, folder id ${yes(f.bound)}`),
|
|
120
|
+
...d.mail.accounts.map((a) => `mail ${a.name} <${a.address}> ${a.mode}` +
|
|
121
|
+
(a.rules_in_config
|
|
122
|
+
? `, ${a.rules_in_config} rules in the config, moved into the store by the next mail command`
|
|
123
|
+
: "")),
|
|
124
|
+
...(d.mail.accounts.some(({ mode }) => mode !== "mbox") ? [`himalaya ${d.mail.himalaya ?? "not found"}`] : []),
|
|
125
|
+
`search ${d.search_model.name} ${d.search_model.present ? "present" : "not downloaded — search is by words"}`,
|
|
126
|
+
`timer ${d.timer.enabled ? `on, every ${d.timer.every}` : "off"}`,
|
|
127
|
+
...d.skills.map((s) => `skill ${s.path} ${s.version === null ? "(not installed)" : `(${s.version})`}`),
|
|
128
|
+
"",
|
|
129
|
+
...(d.problems.length === 0
|
|
130
|
+
? ["nothing needs attention"]
|
|
131
|
+
: d.problems.map(({ what, fix }) => `! ${what}${fix ? ` — ${fix}` : ""}`)),
|
|
132
|
+
].join("\n");
|
|
133
|
+
export const doctorCommand = (program, streams, env) => {
|
|
134
|
+
const { print } = answers(program, streams, env);
|
|
135
|
+
program
|
|
136
|
+
.command("doctor")
|
|
137
|
+
.description("where memo keeps its files and what needs attention; connects to nothing")
|
|
138
|
+
.option("--json", "print JSON; --json=id,title keeps only those fields")
|
|
139
|
+
.addHelpText("after", "\nReads this computer only: the config, the store, the notes folders, Himalaya, the search model, the timer " +
|
|
140
|
+
"and the agent skill. Exits 1 when something needs attention, each with the command that fixes it.")
|
|
141
|
+
.action(async (options) => {
|
|
142
|
+
const diagnosis = await diagnose(env);
|
|
143
|
+
print(options.json, itemAnswer(diagnosis), doctorText(diagnosis));
|
|
144
|
+
if (diagnosis.problems.length > 0)
|
|
145
|
+
process.exitCode = 1;
|
|
146
|
+
});
|
|
147
|
+
};
|
|
148
|
+
//# sourceMappingURL=command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/doctor/command.ts"],"names":[],"mappings":"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"}
|
package/dist/effects.d.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
|
+
import { type CommandOutput } from "@wirecat/cli-base/commands";
|
|
1
2
|
import type { Effects } from "@wirecat/cli-base/standards";
|
|
2
3
|
import type { Command } from "commander";
|
|
3
4
|
export declare const EFFECTS: Readonly<Record<string, Effects>>;
|
|
4
|
-
/**
|
|
5
|
+
/** The cli-core entity each answer's items are, so `--json=<field>` is checked and the CLIs compare. */
|
|
6
|
+
export declare const OUTPUTS: Readonly<Record<string, CommandOutput>>;
|
|
7
|
+
/**
|
|
8
|
+
* Puts each leaf's effects and answer in `commands --json`, where retries, steps and MCP hints are judged from them.
|
|
9
|
+
*/
|
|
5
10
|
export declare const addEffects: (program: Command) => void;
|
|
6
11
|
//# sourceMappingURL=effects.d.ts.map
|
package/dist/effects.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effects.d.ts","sourceRoot":"","sources":["../src/effects.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"effects.d.ts","sourceRoot":"","sources":["../src/effects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AAE1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKxC,eAAO,MAAM,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA6FrD,CAAA;AAED,wGAAwG;AACxG,eAAO,MAAM,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAc3D,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,YAAa,OAAO,KAAG,IAM7C,CAAA"}
|
package/dist/effects.js
CHANGED
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
import { annotate } from "@wirecat/cli-base/commands";
|
|
2
|
+
import { FETCH, LOCAL_READ, LOCAL_WRITE, NO_EFFECTS, REMOTE_READ } from "@wirecat/cli-core/cli";
|
|
2
3
|
import { leaves } from "./examples.js";
|
|
3
|
-
// cli-core's FETCH, LOCAL_READ… spelled out: importing its CLI module would cost every memo command ~70 ms.
|
|
4
|
-
const REMOTE_READ = { remote: "read", local: "read" };
|
|
5
|
-
const FETCH = { remote: "read", local: "write" };
|
|
6
|
-
const LOCAL_READ = { remote: "none", local: "read" };
|
|
7
|
-
const LOCAL_WRITE = { remote: "none", local: "write" };
|
|
8
|
-
const NO_EFFECTS = { remote: "none", local: "none" };
|
|
9
4
|
// memo's remote side is the mail server and a configured model; it only ever reads there. Notes folders and the
|
|
10
5
|
// store are this machine. A command missing here counts as a write: never retried, never run as an unasked step.
|
|
11
6
|
export const EFFECTS = {
|
|
@@ -26,6 +21,8 @@ export const EFFECTS = {
|
|
|
26
21
|
"mail rules add": LOCAL_WRITE,
|
|
27
22
|
"mail rules remove": LOCAL_WRITE,
|
|
28
23
|
"mail rules apply": LOCAL_WRITE,
|
|
24
|
+
"mail rules export": LOCAL_READ,
|
|
25
|
+
"mail rules import": LOCAL_WRITE,
|
|
29
26
|
note: LOCAL_WRITE,
|
|
30
27
|
"tags add": LOCAL_WRITE,
|
|
31
28
|
"tags remove": LOCAL_WRITE,
|
|
@@ -94,16 +91,36 @@ export const EFFECTS = {
|
|
|
94
91
|
"auto start": LOCAL_WRITE,
|
|
95
92
|
"auto stop": LOCAL_WRITE,
|
|
96
93
|
"auto status": LOCAL_READ,
|
|
94
|
+
doctor: LOCAL_READ,
|
|
95
|
+
upgrade: FETCH,
|
|
97
96
|
commands: NO_EFFECTS,
|
|
98
97
|
"skill show": NO_EFFECTS,
|
|
99
98
|
"skill install": LOCAL_WRITE,
|
|
100
99
|
};
|
|
101
|
-
/**
|
|
100
|
+
/** The cli-core entity each answer's items are, so `--json=<field>` is checked and the CLIs compare. */
|
|
101
|
+
export const OUTPUTS = {
|
|
102
|
+
"search all": { entity: "hit" },
|
|
103
|
+
"search messages": { entity: "message", view: "hit" },
|
|
104
|
+
"search mail": { entity: "message", view: "hit" },
|
|
105
|
+
"search notes": { entity: "note", view: "hit" },
|
|
106
|
+
"search memories": { entity: "memory" },
|
|
107
|
+
"facts add": { entity: "fact" },
|
|
108
|
+
"facts show": { entity: "fact" },
|
|
109
|
+
"facts confirm": { entity: "fact" },
|
|
110
|
+
"facts reverse": { entity: "fact" },
|
|
111
|
+
"memories add": { entity: "memory" },
|
|
112
|
+
"memories show": { entity: "memory" },
|
|
113
|
+
"memories confirm": { entity: "memory" },
|
|
114
|
+
"memories stale": { entity: "memory" },
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* Puts each leaf's effects and answer in `commands --json`, where retries, steps and MCP hints are judged from them.
|
|
118
|
+
*/
|
|
102
119
|
export const addEffects = (program) => {
|
|
103
120
|
for (const [path, command] of leaves(program)) {
|
|
104
121
|
const effects = EFFECTS[path];
|
|
105
|
-
|
|
106
|
-
|
|
122
|
+
const output = OUTPUTS[path];
|
|
123
|
+
annotate(command, { ...(effects ? { effects } : {}), ...(output ? { output } : {}) });
|
|
107
124
|
}
|
|
108
125
|
};
|
|
109
126
|
//# sourceMappingURL=effects.js.map
|
package/dist/effects.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effects.js","sourceRoot":"","sources":["../src/effects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"effects.js","sourceRoot":"","sources":["../src/effects.ts"],"names":[],"mappings":"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"}
|
package/dist/examples.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"examples.d.ts","sourceRoot":"","sources":["../src/examples.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAExC,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"examples.d.ts","sourceRoot":"","sources":["../src/examples.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAExC,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CA6HhE,CAAA;AAED,eAAO,MAAM,MAAM,YAAa,OAAO,SAAQ,MAAM,EAAE,KAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,EAI5E,CAAA;AAEJ,qFAAqF;AACrF,eAAO,MAAM,WAAW,YAAa,OAAO,KAAG,IAO9C,CAAA"}
|
package/dist/examples.js
CHANGED
|
@@ -28,6 +28,8 @@ export const EXAMPLES = {
|
|
|
28
28
|
],
|
|
29
29
|
"mail rules remove": ["memo mail rules remove personal --domain news.example"],
|
|
30
30
|
"mail rules apply": ["memo mail rules apply personal", "memo mail rules apply personal --yes --json"],
|
|
31
|
+
"mail rules export": ["memo mail rules export personal"],
|
|
32
|
+
"mail rules import": ["memo mail rules import personal rules.json"],
|
|
31
33
|
note: ["memo note telegram:'Kai Sample' People/Kai.md", "memo note telegram:'Kai Sample' --clear"],
|
|
32
34
|
"tags add": ["memo tags add follow-up --note note:12", "memo tags add harbour --project HRB"],
|
|
33
35
|
"tags remove": ["memo tags remove follow-up --note note:12"],
|
|
@@ -80,14 +82,14 @@ export const EXAMPLES = {
|
|
|
80
82
|
"vocabulary aliases add": ["memo vocabulary aliases add project:2 Harbor --expected 3f9a"],
|
|
81
83
|
"vocabulary aliases remove": ["memo vocabulary aliases remove project:2 5 --expected 3f9a"],
|
|
82
84
|
"memories add": ["memo memories add 'Kai prefers Friday meetings' --kind preference --scope work --evidence note:12"],
|
|
83
|
-
"memories list": ["memo memories list
|
|
85
|
+
"memories list": ["memo memories list status:proposed kind:preference"],
|
|
84
86
|
"memories show": ["memo memories show memory:4"],
|
|
85
87
|
"memories confirm": ["memo memories confirm memory:4"],
|
|
86
88
|
"memories stale": ["memo memories stale memory:4"],
|
|
87
89
|
"facts add": [
|
|
88
|
-
"memo facts add 'We moved the launch to spring' --
|
|
90
|
+
"memo facts add 'We moved the launch to spring' --kind decision --evidence 'msg:telegram/1/77/42' --project HRB",
|
|
89
91
|
],
|
|
90
|
-
"facts list": ["memo facts list
|
|
92
|
+
"facts list": ["memo facts list kind:decision project:HRB"],
|
|
91
93
|
"facts show": ["memo facts show fact:4"],
|
|
92
94
|
"facts confirm": ["memo facts confirm fact:4"],
|
|
93
95
|
"facts reverse": ["memo facts reverse fact:4"],
|
|
@@ -117,6 +119,8 @@ export const EXAMPLES = {
|
|
|
117
119
|
"auto start": ["memo auto start --every 10m"],
|
|
118
120
|
"auto stop": ["memo auto stop"],
|
|
119
121
|
"auto status": ["memo auto status --json"],
|
|
122
|
+
doctor: ["memo doctor", "memo doctor --json"],
|
|
123
|
+
upgrade: ["memo upgrade --check", "memo upgrade"],
|
|
120
124
|
commands: ["memo commands --json", "memo commands tags add --json"],
|
|
121
125
|
"skill show": ["memo skill show"],
|
|
122
126
|
"skill install": ["memo skill install --for all"],
|
package/dist/examples.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"examples.js","sourceRoot":"","sources":["../src/examples.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"examples.js","sourceRoot":"","sources":["../src/examples.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAGrD,MAAM,CAAC,MAAM,QAAQ,GAAgD;IACnE,OAAO,EAAE,CAAC,oCAAoC,EAAE,qDAAqD,CAAC;IACtG,YAAY,EAAE,CAAC,yBAAyB,EAAE,8CAA8C,CAAC;IACzF,YAAY,EAAE;QACZ,+CAA+C;QAC/C,0DAA0D;QAC1D,8CAA8C;KAC/C;IACD,WAAW,EAAE;QACX,6EAA6E;QAC7E,mGAAmG;KACpG;IACD,YAAY,EAAE,CAAC,uEAAuE,CAAC;IACvF,cAAc,EAAE,CAAC,2BAA2B,CAAC;IAC7C,cAAc,EAAE,CAAC,uDAAuD,CAAC;IACzE,aAAa,EAAE,CAAC,0BAA0B,CAAC;IAC3C,gBAAgB,EAAE,CAAC,+BAA+B,CAAC;IACnD,cAAc,EAAE,CAAC,0BAA0B,CAAC;IAC5C,eAAe,EAAE,CAAC,oFAAoF,CAAC;IACvG,YAAY,EAAE,CAAC,4CAA4C,EAAE,+CAA+C,CAAC;IAC7G,aAAa,EAAE,CAAC,2BAA2B,EAAE,kCAAkC,CAAC;IAChF,iBAAiB,EAAE,CAAC,sCAAsC,CAAC;IAC3D,gBAAgB,EAAE;QAChB,sFAAsF;QACtF,2DAA2D;QAC3D,+DAA+D;KAChE;IACD,mBAAmB,EAAE,CAAC,uDAAuD,CAAC;IAC9E,kBAAkB,EAAE,CAAC,gCAAgC,EAAE,6CAA6C,CAAC;IACrG,mBAAmB,EAAE,CAAC,iCAAiC,CAAC;IACxD,mBAAmB,EAAE,CAAC,4CAA4C,CAAC;IACnE,IAAI,EAAE,CAAC,+CAA+C,EAAE,yCAAyC,CAAC;IAClG,UAAU,EAAE,CAAC,wCAAwC,EAAE,qCAAqC,CAAC;IAC7F,aAAa,EAAE,CAAC,2CAA2C,CAAC;IAC5D,WAAW,EAAE,CAAC,gCAAgC,EAAE,iEAAiE,CAAC;IAClH,YAAY,EAAE,CAAC,+CAA+C,CAAC;IAC/D,cAAc,EAAE,CAAC,iDAAiD,CAAC;IACnE,iBAAiB,EAAE,CAAC,mCAAmC,CAAC;IACxD,cAAc,EAAE,CAAC,yBAAyB,CAAC;IAC3C,WAAW,EAAE;QACX,sFAAsF;QACtF,wEAAwE;KACzE;IACD,YAAY,EAAE,CAAC,iDAAiD,EAAE,8CAA8C,CAAC;IACjH,aAAa,EAAE,CAAC,gGAAgG,CAAC;IACjH,cAAc,EAAE,CAAC,4DAA4D,CAAC;IAC9E,cAAc,EAAE,CAAC,8BAA8B,CAAC;IAChD,mBAAmB,EAAE,CAAC,qEAAqE,CAAC;IAC5F,oBAAoB,EAAE,CAAC,gCAAgC,CAAC;IACxD,uBAAuB,EAAE,CAAC,2CAA2C,CAAC;IACtE,wBAAwB,EAAE,CAAC,0EAA0E,CAAC;IACtG,wBAAwB,EAAE,CAAC,6EAA6E,CAAC;IACzG,cAAc,EAAE,CAAC,sEAAsE,CAAC;IACxF,eAAe,EAAE,CAAC,oBAAoB,CAAC;IACvC,kBAAkB,EAAE,CAAC,2BAA2B,EAAE,wCAAwC,CAAC;IAC3F,4BAA4B,EAAE,CAAC,kEAAkE,CAAC;IAClG,+BAA+B,EAAE,CAAC,gDAAgD,CAAC;IACnF,6BAA6B,EAAE,CAAC,sCAAsC,CAAC;IACvE,mBAAmB,EAAE;QACnB,2DAA2D;QAC3D,0FAA0F;KAC3F;IACD,oBAAoB,EAAE,CAAC,8CAA8C,CAAC;IACtE,sBAAsB,EAAE,CAAC,6BAA6B,CAAC;IACvD,uBAAuB,EAAE,CAAC,8BAA8B,CAAC;IACzD,uBAAuB,EAAE,CAAC,iFAAiF,CAAC;IAC5G,eAAe,EAAE;QACf,mHAAmH;KACpH;IACD,gBAAgB,EAAE,CAAC,qDAAqD,CAAC;IACzE,gBAAgB,EAAE,CAAC,4DAA4D,CAAC;IAChF,eAAe,EAAE,CAAC,0DAA0D,CAAC;IAC7E,kBAAkB,EAAE,CAAC,yDAAyD,CAAC;IAC/E,kBAAkB,EAAE;QAClB,0GAA0G;KAC3G;IACD,iBAAiB,EAAE,CAAC,iCAAiC,CAAC;IACtD,iBAAiB,EAAE,CAAC,6CAA6C,CAAC;IAClE,kBAAkB,EAAE,CAAC,8CAA8C,EAAE,yCAAyC,CAAC;IAC/G,mBAAmB,EAAE,CAAC,8DAA8D,CAAC;IACrF,wBAAwB,EAAE,CAAC,8DAA8D,CAAC;IAC1F,2BAA2B,EAAE,CAAC,4DAA4D,CAAC;IAC3F,cAAc,EAAE,CAAC,mGAAmG,CAAC;IACrH,eAAe,EAAE,CAAC,oDAAoD,CAAC;IACvE,eAAe,EAAE,CAAC,6BAA6B,CAAC;IAChD,kBAAkB,EAAE,CAAC,gCAAgC,CAAC;IACtD,gBAAgB,EAAE,CAAC,8BAA8B,CAAC;IAClD,WAAW,EAAE;QACX,gHAAgH;KACjH;IACD,YAAY,EAAE,CAAC,2CAA2C,CAAC;IAC3D,YAAY,EAAE,CAAC,wBAAwB,CAAC;IACxC,eAAe,EAAE,CAAC,2BAA2B,CAAC;IAC9C,eAAe,EAAE,CAAC,2BAA2B,CAAC;IAC9C,aAAa,EAAE;QACb,+IAA+I;KAChJ;IACD,cAAc,EAAE,CAAC,qCAAqC,CAAC;IACvD,cAAc,EAAE,CAAC,qBAAqB,CAAC;IACvC,iBAAiB,EAAE,CAAC,wBAAwB,CAAC;IAC7C,gBAAgB,EAAE,CAAC,uBAAuB,CAAC;IAC3C,YAAY,EAAE,CAAC,gDAAgD,CAAC;IAChE,GAAG,EAAE,CAAC,UAAU,CAAC;IACjB,YAAY,EAAE,CAAC,kCAAkC,EAAE,4DAA4D,CAAC;IAChH,iBAAiB,EAAE,CAAC,oDAAoD,CAAC;IACzE,aAAa,EAAE,CAAC,sEAAsE,CAAC;IACvF,cAAc,EAAE,CAAC,2CAA2C,EAAE,gDAAgD,CAAC;IAC/G,iBAAiB,EAAE,CAAC,mDAAmD,CAAC;IACxE,GAAG,EAAE;QACH,qDAAqD;QACrD,gEAAgE;KACjE;IACD,IAAI,EAAE;QACJ,WAAW;QACX,kDAAkD;QAClD,+CAA+C;KAChD;IACD,YAAY,EAAE,CAAC,6BAA6B,CAAC;IAC7C,WAAW,EAAE,CAAC,gBAAgB,CAAC;IAC/B,aAAa,EAAE,CAAC,yBAAyB,CAAC;IAC1C,MAAM,EAAE,CAAC,aAAa,EAAE,oBAAoB,CAAC;IAC7C,OAAO,EAAE,CAAC,sBAAsB,EAAE,cAAc,CAAC;IACjD,QAAQ,EAAE,CAAC,sBAAsB,EAAE,+BAA+B,CAAC;IACnE,YAAY,EAAE,CAAC,iBAAiB,CAAC;IACjC,eAAe,EAAE,CAAC,8BAA8B,CAAC;CAClD,CAAA;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAgB,EAAE,IAAI,GAAa,EAAE,EAAuB,EAAE,CACnF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;IACjC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IAClC,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,CAAsB,CAAC,CAAA;AACjG,CAAC,CAAC,CAAA;AAEJ,qFAAqF;AACrF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAgB,EAAQ,EAAE;IACpD,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC/B,IAAI,CAAC,QAAQ;YAAE,SAAQ;QACvB,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;QAC/B,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,gBAAgB,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACtG,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/facts/command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAEhD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/facts/command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAEhD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAoBxC,eAAO,MAAM,YAAY,YAAa,OAAO,WAAW,OAAO,OAAO,MAAM,CAAC,UAAU,KAAG,IAmEzF,CAAA"}
|
package/dist/facts/command.js
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FACT_TYPES, MEMORY_SCOPES } from "@wirecat/cli-core/store";
|
|
2
|
+
import { answers, itemAnswer } from "../answer.js";
|
|
2
3
|
import { authorOf, byOption } from "../author.js";
|
|
4
|
+
import { withQuery } from "../list-query.js";
|
|
3
5
|
import { oneOf, positive } from "../options.js";
|
|
4
|
-
import { pageOf } from "../page.js";
|
|
5
|
-
import { answering } from "../records/run.js";
|
|
6
6
|
import { canonicalProject } from "../vocabulary/project.js";
|
|
7
|
+
import { FACT_QUERY, factItem, listFacts } from "./fact.js";
|
|
7
8
|
export const factsCommand = (program, streams, env) => {
|
|
8
|
-
const run =
|
|
9
|
+
const { run } = answers(program, streams, env);
|
|
9
10
|
const facts = program.command("facts").description("what happened — said, asked, decided, promised — with evidence");
|
|
10
11
|
byOption(facts.command("add").description("record a fact; an agent's waits as proposed until you confirm it"))
|
|
11
12
|
.argument("<statement...>", "what happened, in one sentence")
|
|
12
|
-
.requiredOption("--
|
|
13
|
+
.requiredOption("--kind <kind>", FACT_TYPES.join(", "), oneOf(FACT_TYPES))
|
|
13
14
|
.option("--evidence <ref...>", "what shows it: msg:, note:, meeting:, person: or another reference")
|
|
14
15
|
.option("--project <project>", "the project it belongs to: its key or project:<id>")
|
|
15
16
|
.option("--subject <ref>", "what it is about, as a reference")
|
|
@@ -17,8 +18,8 @@ export const factsCommand = (program, streams, env) => {
|
|
|
17
18
|
.option("--scope <scope>", MEMORY_SCOPES.join(" or "), oneOf(MEMORY_SCOPES))
|
|
18
19
|
.option("--supersedes <ref>", "a decision only: the decision this one replaces")
|
|
19
20
|
.option("--json", "print JSON; --json=id,title keeps only those fields")
|
|
20
|
-
.action((words, options) => run(options.json, async (store) => store.facts.add({
|
|
21
|
-
type: options.
|
|
21
|
+
.action((words, options) => run(options.json, async (store) => itemAnswer(factItem(await store.facts.add({
|
|
22
|
+
type: options.kind,
|
|
22
23
|
statement: words.join(" "),
|
|
23
24
|
by: authorOf(env, options.asOwner),
|
|
24
25
|
...(options.evidence === undefined ? {} : { evidence: options.evidence }),
|
|
@@ -27,37 +28,28 @@ export const factsCommand = (program, streams, env) => {
|
|
|
27
28
|
...(options.occurred === undefined ? {} : { occurredAt: options.occurred }),
|
|
28
29
|
...(options.scope === undefined ? {} : { scope: options.scope }),
|
|
29
30
|
...(options.supersedes === undefined ? {} : { supersedes: options.supersedes }),
|
|
30
|
-
})));
|
|
31
|
-
facts
|
|
32
|
-
.command("list")
|
|
33
|
-
.description("facts, latest first")
|
|
34
|
-
.option("--type <type>", FACT_TYPES.join(", "), oneOf(FACT_TYPES))
|
|
35
|
-
.option("--status <status>", FACT_STATUSES.join(", "), oneOf(FACT_STATUSES))
|
|
36
|
-
.option("--project <project>", "only this project's: its key or project:<id>")
|
|
37
|
-
.option("--subject <ref>", "only facts about this reference")
|
|
31
|
+
})))));
|
|
32
|
+
withQuery(facts.command("list").description("facts, latest first"), FACT_QUERY)
|
|
38
33
|
.option("--limit <n>", "most facts, up to 500", positive, 100)
|
|
39
34
|
.option("--json", "print JSON; --json=id,title keeps only those fields")
|
|
40
|
-
.action(({ json,
|
|
41
|
-
const project = filters.project === undefined ? undefined : await canonicalProject(store, filters.project);
|
|
42
|
-
return pageOf(filters.limit, (limit) => store.facts.list({ ...filters, ...(project === undefined ? {} : { project }), limit }));
|
|
43
|
-
}));
|
|
35
|
+
.action((words, { json, limit }) => run(json, (store) => listFacts(store, words, limit)));
|
|
44
36
|
facts
|
|
45
37
|
.command("show")
|
|
46
38
|
.description("one fact with its evidence")
|
|
47
39
|
.argument("<ref>", "fact:<id>")
|
|
48
40
|
.option("--json", "print JSON; --json=id,title keeps only those fields")
|
|
49
|
-
.action((ref, options) => run(options.json, (store) => store.facts.get(ref)));
|
|
41
|
+
.action((ref, options) => run(options.json, async (store) => itemAnswer(factItem(await store.facts.get(ref)))));
|
|
50
42
|
facts
|
|
51
43
|
.command("confirm")
|
|
52
44
|
.description("stand behind a fact an agent proposed; a decision it supersedes stops holding")
|
|
53
45
|
.argument("<ref>", "fact:<id>")
|
|
54
46
|
.option("--json", "print JSON; --json=id,title keeps only those fields")
|
|
55
|
-
.action((ref, options) => run(options.json, (store) => store.facts.accept(ref)));
|
|
47
|
+
.action((ref, options) => run(options.json, async (store) => itemAnswer(factItem(await store.facts.accept(ref)))));
|
|
56
48
|
facts
|
|
57
49
|
.command("reverse")
|
|
58
50
|
.description("an accepted decision no longer holds, and nothing replaced it")
|
|
59
51
|
.argument("<ref>", "fact:<id>")
|
|
60
52
|
.option("--json", "print JSON; --json=id,title keeps only those fields")
|
|
61
|
-
.action((ref, options) => run(options.json, (store) => store.facts.reverse(ref)));
|
|
53
|
+
.action((ref, options) => run(options.json, async (store) => itemAnswer(factItem(await store.facts.reverse(ref)))));
|
|
62
54
|
};
|
|
63
55
|
//# sourceMappingURL=command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/facts/command.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/facts/command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { type Fact, type MessageStore } from "@wirecat/cli-core/store";
|
|
2
|
+
export declare const FACT_QUERY: {
|
|
3
|
+
readonly entity: "fact";
|
|
4
|
+
readonly backend: "native";
|
|
5
|
+
readonly fields: readonly [import("@wirecat/cli-base/query").FieldSpec, import("@wirecat/cli-base/query").FieldSpec, import("@wirecat/cli-base/query").FieldSpec, import("@wirecat/cli-base/query").FieldSpec];
|
|
6
|
+
};
|
|
7
|
+
/** A fact under cli-core's `fact` entity names; `confirmed_by` is memo's own beyond it. */
|
|
8
|
+
export declare const factItem: ({ type, statement, source, confirmedBy, ...fact }: Fact) => {
|
|
9
|
+
ref: string;
|
|
10
|
+
id: string;
|
|
11
|
+
kind: "decision" | "fact" | "promise" | "question" | "statement";
|
|
12
|
+
text: string;
|
|
13
|
+
status: "accepted" | "proposed" | "reversed" | "superseded";
|
|
14
|
+
project: string | null;
|
|
15
|
+
subject: string | null;
|
|
16
|
+
occurredAt: string | null;
|
|
17
|
+
supersedes: string | null;
|
|
18
|
+
author: {
|
|
19
|
+
type: "bot" | "person";
|
|
20
|
+
id: string;
|
|
21
|
+
name: string | null;
|
|
22
|
+
};
|
|
23
|
+
model: string | null;
|
|
24
|
+
scope: "personal" | "work" | null;
|
|
25
|
+
origin: string;
|
|
26
|
+
evidence: string[];
|
|
27
|
+
createdAt: string;
|
|
28
|
+
updatedAt: string;
|
|
29
|
+
confirmedBy: {
|
|
30
|
+
type: "bot" | "person";
|
|
31
|
+
id: string;
|
|
32
|
+
} | null;
|
|
33
|
+
};
|
|
34
|
+
/** Facts the store filters by the query's terms; CLI and MCP list through it. */
|
|
35
|
+
export declare const listFacts: (store: MessageStore, query: readonly string[] | string | undefined, limit?: number) => Promise<import("@wirecat/cli-core/cli").ListBody<unknown>>;
|
|
36
|
+
//# sourceMappingURL=fact.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fact.d.ts","sourceRoot":"","sources":["../../src/facts/fact.ts"],"names":[],"mappings":"AACA,OAAO,EAA6B,KAAK,IAAI,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAKjG,eAAO,MAAM,UAAU;qBACb,MAAM;sBACL,QAAQ;;CAOe,CAAA;AAElC,2FAA2F;AAC3F,eAAO,MAAM,QAAQ,sDAAuD,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;CAkB9E,CAAA;AAEF,iFAAiF;AACjF,eAAO,MAAM,SAAS,UAAiB,YAAY,SAAS,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,UAAU,MAAM,+DAYjH,CAAA"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { FACT_STATUSES, FACT_TYPES } from "@wirecat/cli-core/store";
|
|
2
|
+
import { queryField, queryTerms } from "../list-query.js";
|
|
3
|
+
import { pageOf } from "../page.js";
|
|
4
|
+
import { canonicalProject } from "../vocabulary/project.js";
|
|
5
|
+
export const FACT_QUERY = {
|
|
6
|
+
entity: "fact",
|
|
7
|
+
backend: "native",
|
|
8
|
+
fields: [
|
|
9
|
+
queryField("kind", "enum", "kind:decision", FACT_TYPES),
|
|
10
|
+
queryField("status", "enum", "status:proposed", FACT_STATUSES),
|
|
11
|
+
queryField("project", "kw", "project:SYH"),
|
|
12
|
+
queryField("subject", "ref", 'subject:"person:42"'),
|
|
13
|
+
],
|
|
14
|
+
};
|
|
15
|
+
/** A fact under cli-core's `fact` entity names; `confirmed_by` is memo's own beyond it. */
|
|
16
|
+
export const factItem = ({ type, statement, source, confirmedBy, ...fact }) => ({
|
|
17
|
+
ref: fact.ref,
|
|
18
|
+
id: fact.id,
|
|
19
|
+
kind: type,
|
|
20
|
+
text: statement,
|
|
21
|
+
status: fact.status,
|
|
22
|
+
project: fact.project,
|
|
23
|
+
subject: fact.subject,
|
|
24
|
+
occurredAt: fact.occurredAt,
|
|
25
|
+
supersedes: fact.supersedes,
|
|
26
|
+
author: fact.author,
|
|
27
|
+
model: fact.model,
|
|
28
|
+
scope: fact.scope,
|
|
29
|
+
origin: source,
|
|
30
|
+
evidence: fact.evidence,
|
|
31
|
+
createdAt: fact.createdAt,
|
|
32
|
+
updatedAt: fact.updatedAt,
|
|
33
|
+
confirmedBy,
|
|
34
|
+
});
|
|
35
|
+
/** Facts the store filters by the query's terms; CLI and MCP list through it. */
|
|
36
|
+
export const listFacts = async (store, query, limit) => {
|
|
37
|
+
const terms = queryTerms(query, FACT_QUERY, "facts list");
|
|
38
|
+
const project = terms.get("project");
|
|
39
|
+
const filters = {
|
|
40
|
+
...(terms.has("kind") ? { type: terms.get("kind") } : {}),
|
|
41
|
+
...(terms.has("status") ? { status: terms.get("status") } : {}),
|
|
42
|
+
...(project === undefined ? {} : { project: await canonicalProject(store, project) }),
|
|
43
|
+
...(terms.has("subject") ? { subject: terms.get("subject") } : {}),
|
|
44
|
+
};
|
|
45
|
+
return pageOf("facts list", limit, async (most) => (await store.facts.list({ ...filters, limit: most })).map(factItem));
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=fact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fact.js","sourceRoot":"","sources":["../../src/facts/fact.ts"],"names":[],"mappings":"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"}
|