@wirecat/cli-memo 0.22.0 → 0.24.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 +24 -21
- package/dist/actions/command.d.ts.map +1 -1
- package/dist/actions/command.js +14 -19
- package/dist/actions/command.js.map +1 -1
- package/dist/agents/command.d.ts.map +1 -1
- package/dist/agents/command.js +9 -9
- package/dist/agents/command.js.map +1 -1
- package/dist/answers/command.js +6 -6
- package/dist/answers/command.js.map +1 -1
- package/dist/author.d.ts +11 -0
- package/dist/author.d.ts.map +1 -0
- package/dist/author.js +16 -0
- package/dist/author.js.map +1 -0
- package/dist/bin/memo.js +4 -2
- package/dist/bin/memo.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/context/command.d.ts.map +1 -1
- package/dist/context/command.js +18 -12
- package/dist/context/command.js.map +1 -1
- package/dist/context/context.d.ts +1 -1
- package/dist/context/context.d.ts.map +1 -1
- package/dist/context/context.js +2 -2
- package/dist/context/context.js.map +1 -1
- package/dist/discovery/command.d.ts +2 -0
- package/dist/discovery/command.d.ts.map +1 -1
- package/dist/discovery/command.js +18 -10
- package/dist/discovery/command.js.map +1 -1
- package/dist/examples.d.ts +5 -0
- package/dist/examples.d.ts.map +1 -0
- package/dist/examples.js +128 -0
- package/dist/examples.js.map +1 -0
- package/dist/facts/command.d.ts.map +1 -1
- package/dist/facts/command.js +19 -17
- package/dist/facts/command.js.map +1 -1
- package/dist/install/postinstall.d.ts +7 -0
- package/dist/install/postinstall.d.ts.map +1 -0
- package/dist/install/postinstall.js +28 -0
- package/dist/install/postinstall.js.map +1 -0
- package/dist/knowledge/command.d.ts.map +1 -1
- package/dist/knowledge/command.js +109 -74
- package/dist/knowledge/command.js.map +1 -1
- package/dist/knowledge/key-documents.d.ts +29 -0
- package/dist/knowledge/key-documents.d.ts.map +1 -0
- package/dist/knowledge/key-documents.js +76 -0
- package/dist/knowledge/key-documents.js.map +1 -0
- package/dist/knowledge/meeting-projects-command.d.ts +1 -1
- package/dist/knowledge/meeting-projects-command.d.ts.map +1 -1
- package/dist/knowledge/meeting-projects-command.js +7 -20
- package/dist/knowledge/meeting-projects-command.js.map +1 -1
- package/dist/mail/messages-command.d.ts +4 -0
- package/dist/mail/messages-command.d.ts.map +1 -0
- package/dist/mail/messages-command.js +32 -0
- package/dist/mail/messages-command.js.map +1 -0
- package/dist/mcp/command.js +1 -1
- package/dist/mcp/command.js.map +1 -1
- package/dist/mcp/knowledge.js +3 -3
- package/dist/mcp/knowledge.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +27 -18
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/task-relations.d.ts +3 -3
- package/dist/mcp/task-relations.d.ts.map +1 -1
- package/dist/mcp/task-relations.js +18 -6
- package/dist/mcp/task-relations.js.map +1 -1
- package/dist/mcp/vocabulary.d.ts +2 -3
- package/dist/mcp/vocabulary.d.ts.map +1 -1
- package/dist/mcp/vocabulary.js +23 -18
- package/dist/mcp/vocabulary.js.map +1 -1
- package/dist/memories/command.d.ts +1 -0
- package/dist/memories/command.d.ts.map +1 -1
- package/dist/memories/command.js +24 -23
- package/dist/memories/command.js.map +1 -1
- package/dist/notes/about.d.ts +11 -2
- package/dist/notes/about.d.ts.map +1 -1
- package/dist/notes/about.js +34 -30
- package/dist/notes/about.js.map +1 -1
- package/dist/notes/bound.d.ts +3 -0
- package/dist/notes/bound.d.ts.map +1 -1
- package/dist/notes/bound.js +9 -1
- package/dist/notes/bound.js.map +1 -1
- package/dist/notes/command.d.ts.map +1 -1
- package/dist/notes/command.js +28 -68
- package/dist/notes/command.js.map +1 -1
- package/dist/notes/folders-command.d.ts.map +1 -1
- package/dist/notes/folders-command.js +15 -13
- package/dist/notes/folders-command.js.map +1 -1
- package/dist/notes/list.d.ts +22 -0
- package/dist/notes/list.d.ts.map +1 -0
- package/dist/notes/list.js +24 -0
- package/dist/notes/list.js.map +1 -0
- package/dist/notes/search.d.ts.map +1 -1
- package/dist/notes/search.js +2 -2
- package/dist/notes/search.js.map +1 -1
- package/dist/options.d.ts +2 -0
- package/dist/options.d.ts.map +1 -1
- package/dist/options.js +2 -0
- package/dist/options.js.map +1 -1
- package/dist/page.d.ts +12 -0
- package/dist/page.d.ts.map +1 -0
- package/dist/page.js +10 -0
- package/dist/page.js.map +1 -0
- package/dist/people/command.js +2 -2
- package/dist/program.d.ts +5 -0
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +35 -6
- package/dist/program.js.map +1 -1
- package/dist/records/run.d.ts +2 -0
- package/dist/records/run.d.ts.map +1 -1
- package/dist/records/run.js +18 -12
- package/dist/records/run.js.map +1 -1
- package/dist/run/auto.d.ts.map +1 -1
- package/dist/run/auto.js +11 -13
- package/dist/run/auto.js.map +1 -1
- package/dist/run/import.d.ts +2 -2
- package/dist/run/import.d.ts.map +1 -1
- package/dist/run/import.js +66 -27
- package/dist/run/import.js.map +1 -1
- package/dist/run/lock.d.ts +1 -1
- package/dist/run/lock.d.ts.map +1 -1
- package/dist/run/lock.js +1 -1
- package/dist/run/lock.js.map +1 -1
- package/dist/search/command.d.ts +15 -20
- package/dist/search/command.d.ts.map +1 -1
- package/dist/search/command.js +96 -47
- package/dist/search/command.js.map +1 -1
- package/dist/tags/command.d.ts.map +1 -1
- package/dist/tags/command.js +25 -18
- package/dist/tags/command.js.map +1 -1
- package/dist/tasks/command.d.ts.map +1 -1
- package/dist/tasks/command.js +21 -14
- package/dist/tasks/command.js.map +1 -1
- package/dist/tasks/relations-command.d.ts +1 -1
- package/dist/tasks/relations-command.d.ts.map +1 -1
- package/dist/tasks/relations-command.js +12 -33
- package/dist/tasks/relations-command.js.map +1 -1
- 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 +48 -47
- package/dist/vocabulary/command.js.map +1 -1
- package/install/postinstall.mjs +9 -0
- package/package.json +8 -4
- package/skills/cli-memo/SKILL.md +49 -0
- package/dist/mail/command.d.ts +0 -4
- package/dist/mail/command.d.ts.map +0 -1
- package/dist/mail/command.js +0 -105
- package/dist/mail/command.js.map +0 -1
package/dist/notes/about.js
CHANGED
|
@@ -11,60 +11,64 @@ const refOf = (note, anchor = null) => ({
|
|
|
11
11
|
modifiedAt: note.updatedAt,
|
|
12
12
|
...(anchor === null ? {} : { anchor }),
|
|
13
13
|
});
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
const PAGE = 500;
|
|
15
|
+
/** Every live note that reaches a subject through the links the store holds — never a name found in plain text. */
|
|
16
|
+
export const notesReaching = async (store, subject) => {
|
|
16
17
|
const refs = [
|
|
17
18
|
subject.ref,
|
|
18
19
|
...(subject.person?.identities.map((identity) => formatReference({ type: "contact", provider: identity.provider, id: identity.id })) ?? []),
|
|
19
20
|
];
|
|
20
|
-
const live = async (links) => {
|
|
21
|
+
const live = async (links, via) => {
|
|
21
22
|
const found = [];
|
|
22
23
|
for (const link of links) {
|
|
23
24
|
if (!isNoteReference(link.from))
|
|
24
25
|
continue;
|
|
25
26
|
const note = await store.notes.resolveNote(link.from);
|
|
26
27
|
if (note && note.deletedAt === null)
|
|
27
|
-
found.push({ note, anchor: link.anchor, text: link.targetText });
|
|
28
|
+
found.push({ note, anchor: link.anchor, text: link.targetText, via });
|
|
28
29
|
}
|
|
29
30
|
return found;
|
|
30
31
|
};
|
|
32
|
+
const aboutOne = async (ref) => {
|
|
33
|
+
const notes = [];
|
|
34
|
+
for (let offset = 0;; offset += PAGE) {
|
|
35
|
+
const page = await store.notes.notes({ about: ref, limit: PAGE, offset });
|
|
36
|
+
notes.push(...page.items);
|
|
37
|
+
if (!page.hasMore)
|
|
38
|
+
return notes;
|
|
39
|
+
}
|
|
40
|
+
};
|
|
31
41
|
// A written note's first subject is the note's own, not a link, so only `notes({ about })` sees all of them.
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
42
|
+
const about = (await Promise.all(refs.map(aboutOne)))
|
|
43
|
+
.flat()
|
|
44
|
+
.map((note) => ({ note, anchor: null, text: null, via: "about" }));
|
|
45
|
+
const linking = await live((await Promise.all(refs.map((to) => store.notes.links({ to })))).flat().filter((link) => link.kind === "links-to"), "link");
|
|
35
46
|
const through = await live((await Promise.all(about.map(({ note }) => store.notes.links({ to: note.ref }))))
|
|
36
47
|
.flat()
|
|
37
|
-
.filter((link) => link.kind === "links-to"));
|
|
48
|
+
.filter((link) => link.kind === "links-to"), "through");
|
|
38
49
|
const names = new Set([subject.person?.name, ...(subject.person?.identities.map(({ name }) => name) ?? [])]
|
|
39
50
|
.filter((name) => !!name?.trim())
|
|
40
51
|
.map(fold));
|
|
41
52
|
const waiting = names.size === 0
|
|
42
53
|
? []
|
|
43
|
-
: await live((await store.notes.links({ unresolved: true })).filter((link) => names.has(fold(link.targetText ?? ""))));
|
|
44
|
-
|
|
45
|
-
|
|
54
|
+
: await live((await store.notes.links({ unresolved: true })).filter((link) => names.has(fold(link.targetText ?? ""))), "name");
|
|
55
|
+
return [...about, ...linking, ...through, ...waiting];
|
|
56
|
+
};
|
|
57
|
+
/** What notes say about a subject, split by how each reaches it. */
|
|
58
|
+
export const notesAbout = async (store, subject, limit = 20) => {
|
|
59
|
+
const found = await notesReaching(store, subject);
|
|
60
|
+
const unique = (via) => [
|
|
61
|
+
...new Map(found.filter((item) => item.via === via).map((item) => [`${item.note.ref}#${item.anchor ?? ""}`, item])).values(),
|
|
62
|
+
].sort((a, b) => b.note.updatedAt.localeCompare(a.note.updatedAt));
|
|
63
|
+
const [about, linking, through, waiting] = ["about", "link", "through", "name"].map(unique);
|
|
46
64
|
return {
|
|
47
65
|
subject: subject.ref,
|
|
48
66
|
name: subject.person?.name ?? null,
|
|
49
|
-
about: (
|
|
50
|
-
linking: (
|
|
51
|
-
throughNotes: (
|
|
52
|
-
waiting: (
|
|
53
|
-
hasMore:
|
|
67
|
+
about: (about ?? []).slice(0, limit).map(({ note }) => refOf(note)),
|
|
68
|
+
linking: (linking ?? []).slice(0, limit).map(({ note, anchor }) => refOf(note, anchor)),
|
|
69
|
+
throughNotes: (through ?? []).slice(0, limit).map(({ note, anchor }) => refOf(note, anchor)),
|
|
70
|
+
waiting: (waiting ?? []).slice(0, limit).map(({ note, text }) => ({ ...refOf(note), text: text ?? "" })),
|
|
71
|
+
hasMore: [about, linking, through, waiting].some((list) => (list ?? []).length > limit),
|
|
54
72
|
};
|
|
55
73
|
};
|
|
56
|
-
export const aboutText = (answer) => {
|
|
57
|
-
const line = (note) => ` ${note.path ?? note.ref}${note.anchor ? ` ${note.anchor}` : ""}`;
|
|
58
|
-
const section = (title, notes) => (notes.length ? [title, ...notes.map(line), ""] : []);
|
|
59
|
-
const who = answer.name ?? answer.subject;
|
|
60
|
-
return [
|
|
61
|
-
...(answer.about.length ? section("About", answer.about) : [`No note about ${who}.`, ""]),
|
|
62
|
-
...section("Linking them", answer.linking),
|
|
63
|
-
...section("Linking a note about them", answer.throughNotes),
|
|
64
|
-
...section("Written with their name, but two people share it — link one with tg contacts link", answer.waiting),
|
|
65
|
-
...(answer.hasMore ? ["More were found; raise --limit to see them."] : []),
|
|
66
|
-
]
|
|
67
|
-
.join("\n")
|
|
68
|
-
.trimEnd();
|
|
69
|
-
};
|
|
70
74
|
//# sourceMappingURL=about.js.map
|
package/dist/notes/about.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"about.js","sourceRoot":"","sources":["../../src/notes/about.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAIxD,2EAA2E;AAC3E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,SAAiB,EAAW,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"about.js","sourceRoot":"","sources":["../../src/notes/about.ts"],"names":[],"mappings":"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"}
|
package/dist/notes/bound.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { type NoteFolder } from "./folders.js";
|
|
|
3
3
|
export type BoundFolder = NoteFolder & {
|
|
4
4
|
id: string;
|
|
5
5
|
};
|
|
6
|
+
export declare const unboundReason: (path: string) => string;
|
|
6
7
|
/**
|
|
7
8
|
* The configured folders the store knows; `only` narrows them by path or id.
|
|
8
9
|
* `strict` refuses a folder with no id — an import must not invent one — while a read just leaves it out.
|
|
@@ -11,6 +12,8 @@ export declare const boundFolders: (store: MessageStore, env: NodeJS.ProcessEnv,
|
|
|
11
12
|
only?: string[];
|
|
12
13
|
strict?: boolean;
|
|
13
14
|
}) => Promise<BoundFolder[]>;
|
|
15
|
+
/** Folder ids for folders named by id, even one only another computer has, or by a configured path. */
|
|
16
|
+
export declare const folderIds: (store: MessageStore, env: NodeJS.ProcessEnv, selected: string[]) => Promise<string[]>;
|
|
14
17
|
/** The folder a file lies in, and its path inside it. */
|
|
15
18
|
export declare const folderOfFile: (folders: BoundFolder[], file: string) => {
|
|
16
19
|
folder: BoundFolder;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bound.d.ts","sourceRoot":"","sources":["../../src/notes/bound.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAEhE,OAAO,EAAE,KAAK,UAAU,EAAe,MAAM,cAAc,CAAA;AAE3D,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"bound.d.ts","sourceRoot":"","sources":["../../src/notes/bound.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAEhE,OAAO,EAAE,KAAK,UAAU,EAAe,MAAM,cAAc,CAAA;AAE3D,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AAErD,eAAO,MAAM,aAAa,SAAU,MAAM,WAC+E,CAAA;AAIzH;;;GAGG;AACH,eAAO,MAAM,YAAY,UAChB,YAAY,OACd,MAAM,CAAC,UAAU,qBACG;IAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,KAC7D,OAAO,CAAC,WAAW,EAAE,CAgBvB,CAAA;AAED,uGAAuG;AACvG,eAAO,MAAM,SAAS,UAAiB,YAAY,OAAO,MAAM,CAAC,UAAU,YAAY,MAAM,EAAE,KAAG,OAAO,CAAC,MAAM,EAAE,CAKjH,CAAA;AAED,yDAAyD;AACzD,eAAO,MAAM,YAAY,YAAa,WAAW,EAAE,QAAQ,MAAM,KAAG;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAKtG,CAAA"}
|
package/dist/notes/bound.js
CHANGED
|
@@ -2,7 +2,8 @@ import { resolve } from "node:path";
|
|
|
2
2
|
import { CliError } from "@wirecat/cli-base";
|
|
3
3
|
import { loadConfig } from "../config.js";
|
|
4
4
|
import { noteFolders } from "./folders.js";
|
|
5
|
-
const
|
|
5
|
+
export const unboundReason = (path) => `${path} has no folder id — memo folders add ${path}, or memo folders attach <id> ${path} if another computer made one`;
|
|
6
|
+
const unbound = (path) => new CliError("configuration_error", unboundReason(path));
|
|
6
7
|
/**
|
|
7
8
|
* The configured folders the store knows; `only` narrows them by path or id.
|
|
8
9
|
* `strict` refuses a folder with no id — an import must not invent one — while a read just leaves it out.
|
|
@@ -26,6 +27,13 @@ export const boundFolders = async (store, env, { only, strict = true } = {}) =>
|
|
|
26
27
|
return [];
|
|
27
28
|
});
|
|
28
29
|
};
|
|
30
|
+
/** Folder ids for folders named by id, even one only another computer has, or by a configured path. */
|
|
31
|
+
export const folderIds = async (store, env, selected) => {
|
|
32
|
+
const known = new Set((await store.notes.folders()).map(({ id }) => id));
|
|
33
|
+
const paths = selected.filter((value) => !known.has(value));
|
|
34
|
+
const bound = paths.length ? await boundFolders(store, env, { only: paths }) : [];
|
|
35
|
+
return [...new Set([...selected.filter((value) => known.has(value)), ...bound.map(({ id }) => id)])];
|
|
36
|
+
};
|
|
29
37
|
/** The folder a file lies in, and its path inside it. */
|
|
30
38
|
export const folderOfFile = (folders, file) => {
|
|
31
39
|
const at = resolve(file);
|
package/dist/notes/bound.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bound.js","sourceRoot":"","sources":["../../src/notes/bound.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAmB,WAAW,EAAE,MAAM,cAAc,CAAA;AAI3D,MAAM,
|
|
1
|
+
{"version":3,"file":"bound.js","sourceRoot":"","sources":["../../src/notes/bound.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/notes/command.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/notes/command.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,EAAE,KAAK,OAAO,EAAwB,MAAM,WAAW,CAAA;AA2C9D,eAAO,MAAM,YAAY,YAAa,OAAO,WAAW,OAAO,OAAO,MAAM,CAAC,UAAU,KAAG,IAiNzF,CAAA"}
|
package/dist/notes/command.js
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import { readFileSync } from "node:fs";
|
|
2
|
-
import { CliError
|
|
2
|
+
import { CliError } from "@wirecat/cli-base";
|
|
3
3
|
import { openStore } from "@wirecat/cli-messaging/store";
|
|
4
4
|
import { InvalidArgumentError } from "commander";
|
|
5
5
|
import { loadConfig } from "../config.js";
|
|
6
|
-
import { positive } from "../options.js";
|
|
6
|
+
import { collect, positive } from "../options.js";
|
|
7
7
|
import { importNotesMap } from "../people/notes-map.js";
|
|
8
8
|
import { subjectOf } from "../people/subject.js";
|
|
9
|
+
import { printing } from "../records/run.js";
|
|
9
10
|
import { SAVE_HELP } from "../save-help.js";
|
|
10
11
|
import { meetingReference } from "../store/scope.js";
|
|
11
|
-
import {
|
|
12
|
+
import { isNoteReference } from "./about.js";
|
|
12
13
|
import { boundFolders, folderOfFile } from "./bound.js";
|
|
13
14
|
import { DIALECTS } from "./dialects/index.js";
|
|
14
|
-
import {
|
|
15
|
-
import { folderNotes, importNotes } from "./import.js";
|
|
15
|
+
import { folderNotes } from "./import.js";
|
|
16
16
|
import { exportInternal, exportTarget, internalNotes } from "./internal.js";
|
|
17
|
+
import { listNotes } from "./list.js";
|
|
17
18
|
import { loadFolderState } from "./state.js";
|
|
18
19
|
const formatOf = (value) => {
|
|
19
20
|
if (!DIALECTS.includes(value))
|
|
@@ -25,10 +26,6 @@ const sourceOf = (value) => {
|
|
|
25
26
|
throw new InvalidArgumentError("choose file or internal");
|
|
26
27
|
return value;
|
|
27
28
|
};
|
|
28
|
-
const importText = (results) => results
|
|
29
|
-
.map((result) => `${result.folder}: ${result.notes} notes, ${result.changed} changed, ${result.renamed} moved, ${result.deleted} gone` +
|
|
30
|
-
(result.deletionsSkipped === undefined ? "" : `\nDeletions skipped: ${result.deletionsSkipped}`))
|
|
31
|
-
.join("\n");
|
|
32
29
|
const textOf = (options, given) => {
|
|
33
30
|
const sources = [given, options.text, options.file].filter((value) => value !== undefined);
|
|
34
31
|
if (sources.length !== 1)
|
|
@@ -44,16 +41,11 @@ const noteOf = async (store, env, reference) => {
|
|
|
44
41
|
const { folder, path } = folderOfFile(await boundFolders(store, env, { strict: false }), reference);
|
|
45
42
|
const found = (await folderNotes(store, folder.id)).find((note) => note.path === path);
|
|
46
43
|
if (!found)
|
|
47
|
-
throw new CliError("not_found", `${reference} is not imported — memo notes
|
|
44
|
+
throw new CliError("not_found", `${reference} is not imported — memo sync --notes`);
|
|
48
45
|
return found;
|
|
49
46
|
};
|
|
50
47
|
export const notesCommand = (program, streams, env) => {
|
|
51
|
-
const print = (
|
|
52
|
-
if (json)
|
|
53
|
-
createRenderer({ format: "json", color: false, streams }).result(value);
|
|
54
|
-
else
|
|
55
|
-
streams.data(`${text}\n`);
|
|
56
|
-
};
|
|
48
|
+
const print = printing(streams);
|
|
57
49
|
const withStore = async (work) => {
|
|
58
50
|
const store = await openStore({ env });
|
|
59
51
|
try {
|
|
@@ -64,49 +56,10 @@ export const notesCommand = (program, streams, env) => {
|
|
|
64
56
|
await store.close();
|
|
65
57
|
}
|
|
66
58
|
};
|
|
67
|
-
const notes = program
|
|
68
|
-
.command("notes")
|
|
69
|
-
.description("Notes: files from your folders, and notes you write here about messages, people and projects");
|
|
70
|
-
notes
|
|
71
|
-
.command("import")
|
|
72
|
-
.description("Bring the folders' notes, their links and tags into the shared store — only what changed")
|
|
73
|
-
.option("--folder <path-or-id...>", "only these configured folders")
|
|
74
|
-
.option("--ignore <path...>", "files or folders inside them to skip, added to notes.ignore — a path or a glob")
|
|
75
|
-
.option("--no-embed", "skip embedding the notes for search by meaning this run")
|
|
76
|
-
.option("--json", "print JSON")
|
|
77
|
-
.action(async (options) => {
|
|
78
|
-
const results = await withStore(async (store) => {
|
|
79
|
-
const config = loadConfig(env).notes;
|
|
80
|
-
const folders = await boundFolders(store, env, options.folder === undefined ? {} : { only: options.folder });
|
|
81
|
-
if (folders.length === 0)
|
|
82
|
-
throw new CliError("configuration_error", "no folders of notes — memo folders add <path>");
|
|
83
|
-
const ignore = [...(config?.ignore ?? []), ...(options.ignore ?? [])];
|
|
84
|
-
const imported = [];
|
|
85
|
-
for (const folder of folders)
|
|
86
|
-
imported.push(await importNotes(store, folder, { ignore, env }));
|
|
87
|
-
await importNotesMap(store, env, folders);
|
|
88
|
-
const embedded = await embedNoteChunks(store, { embed: options.embed && config?.embed !== false, env });
|
|
89
|
-
if (embedded.notEmbedded !== undefined)
|
|
90
|
-
streams.diagnostic(`Not searchable by meaning: ${embedded.notEmbedded}\n`);
|
|
91
|
-
else if (embedded.left)
|
|
92
|
-
streams.diagnostic(`${embedded.chunks} chunks embedded; run again to embed the rest\n`);
|
|
93
|
-
return imported;
|
|
94
|
-
});
|
|
95
|
-
print(options.json, results, importText(results));
|
|
96
|
-
});
|
|
97
|
-
notes
|
|
98
|
-
.command("about")
|
|
99
|
-
.description("Notes about a person, project or note, and the notes that link them — through links, never a name in plain text")
|
|
100
|
-
.argument("<subject>", "<messenger>:<name or id>, person:<uid>, organization:<id>, project:<id>, note:<id> or document:<id>")
|
|
101
|
-
.option("--limit <n>", "most notes of each kind", positive, 20)
|
|
102
|
-
.option("--json", "print JSON")
|
|
103
|
-
.action(async (subject, options) => {
|
|
104
|
-
const answer = await withStore(async (store) => notesAbout(store, await subjectOf(store, subject), options.limit));
|
|
105
|
-
print(options.json, answer, aboutText(answer));
|
|
106
|
-
});
|
|
59
|
+
const notes = program.command("notes").description("notes from your folders, and notes you write here");
|
|
107
60
|
notes
|
|
108
61
|
.command("show")
|
|
109
|
-
.description("
|
|
62
|
+
.description("one note: its text, tags, what it links and what links it")
|
|
110
63
|
.addHelpText("after", SAVE_HELP)
|
|
111
64
|
.argument("<note>", "note:<id>, document:<id>, or a file in a configured folder")
|
|
112
65
|
.option("--json", "print JSON")
|
|
@@ -127,37 +80,44 @@ export const notesCommand = (program, streams, env) => {
|
|
|
127
80
|
: (loadFolderState(env, note.folderId)?.documents[note.path] ?? null),
|
|
128
81
|
};
|
|
129
82
|
});
|
|
130
|
-
print(options.json, answer,
|
|
83
|
+
print(options.json, answer, [
|
|
84
|
+
`${answer.ref} ${answer.path ?? answer.title ?? ""}`.trimEnd(),
|
|
85
|
+
` updated ${new Date(answer.updatedAt).toISOString().slice(0, 16).replace("T", " ")}${answer.tags.length ? ` tags: ${answer.tags.join(", ")}` : ""}`,
|
|
86
|
+
"",
|
|
87
|
+
answer.text,
|
|
88
|
+
...(answer.links.length ? ["", `links: ${answer.links.map(({ to }) => to).join(", ")}`] : []),
|
|
89
|
+
...(answer.backlinks.length ? [`linked from: ${answer.backlinks.map(({ from }) => from).join(", ")}`] : []),
|
|
90
|
+
].join("\n"));
|
|
131
91
|
});
|
|
132
92
|
notes
|
|
133
93
|
.command("list")
|
|
134
|
-
.description("
|
|
135
|
-
.option("--about <subject>", "only notes about this: <messenger>:<name or id> or a typed reference")
|
|
94
|
+
.description("notes, newest first")
|
|
95
|
+
.option("--about <subject>", "only notes about or linking this: <messenger>:<name or id> or a typed reference")
|
|
136
96
|
.option("--source <source>", "file or internal", sourceOf)
|
|
137
97
|
.option("--search <text>", "only notes holding this text, as written")
|
|
138
98
|
.option("--offset <n>", "skip this many", Number, 0)
|
|
139
99
|
.option("--limit <n>", "most notes, at most 500", positive, 20)
|
|
140
100
|
.option("--json", "print JSON")
|
|
141
101
|
.action(async (options) => {
|
|
142
|
-
const page = await withStore(async (store) => store
|
|
102
|
+
const page = await withStore(async (store) => listNotes(store, {
|
|
143
103
|
limit: options.limit,
|
|
144
104
|
offset: options.offset,
|
|
145
|
-
...(options.about === undefined ? {} : { about:
|
|
105
|
+
...(options.about === undefined ? {} : { about: await subjectOf(store, options.about) }),
|
|
146
106
|
...(options.source === undefined ? {} : { source: options.source }),
|
|
147
107
|
...(options.search === undefined ? {} : { search: options.search }),
|
|
148
108
|
}));
|
|
149
109
|
print(options.json, page, page.items
|
|
150
|
-
.map((note) => `${note.
|
|
110
|
+
.map((note) => `${note.ref} ${note.source}${note.via ? ` ${note.via}` : ""} ${note.path ?? note.title ?? note.text.split("\n")[0]}${note.anchors?.length ? ` ${note.anchors.join(" ")}` : ""}${note.linkText ? ` as "${note.linkText}"` : ""}`)
|
|
151
111
|
.join("\n") || "No notes.");
|
|
152
112
|
});
|
|
153
113
|
notes
|
|
154
114
|
.command("add")
|
|
155
|
-
.description("
|
|
115
|
+
.description("write a note of your own about messages, people, projects or other notes")
|
|
156
116
|
.argument("[text]", "the note; or --text, or --file")
|
|
157
117
|
.option("--text <text>", "the note")
|
|
158
118
|
.option("--file <path>", "read the note from a file; - reads stdin")
|
|
159
119
|
.option("--title <title>", "a title")
|
|
160
|
-
.option("--about <subject
|
|
120
|
+
.option("--about <subject>", "what it is about: <messenger>:<name or id>, msg:, chat:, person:, organization:, project:, task:, note:, document:, meeting:; repeat for more", collect)
|
|
161
121
|
.option("--meeting <id>", "also about this meeting, by its store id, with --provider and --account")
|
|
162
122
|
.option("--provider <provider>", "the meeting's provider")
|
|
163
123
|
.option("--account <account>", "the meeting's account")
|
|
@@ -186,7 +146,7 @@ export const notesCommand = (program, streams, env) => {
|
|
|
186
146
|
});
|
|
187
147
|
notes
|
|
188
148
|
.command("edit")
|
|
189
|
-
.description("
|
|
149
|
+
.description("change a note you wrote here; a file's note is edited in its file")
|
|
190
150
|
.argument("<id>", "note:<id> or its id")
|
|
191
151
|
.requiredOption("--revision <n>", "its current revision, so an edit made meanwhile is not lost", positive)
|
|
192
152
|
.option("--text <text>", "the new text")
|
|
@@ -207,7 +167,7 @@ export const notesCommand = (program, streams, env) => {
|
|
|
207
167
|
});
|
|
208
168
|
notes
|
|
209
169
|
.command("remove")
|
|
210
|
-
.description("
|
|
170
|
+
.description("delete a note you wrote here; a file it was exported to stays")
|
|
211
171
|
.argument("<id>", "note:<id> or its id")
|
|
212
172
|
.option("--json", "print JSON")
|
|
213
173
|
.action(async (id, options) => {
|
|
@@ -216,7 +176,7 @@ export const notesCommand = (program, streams, env) => {
|
|
|
216
176
|
});
|
|
217
177
|
notes
|
|
218
178
|
.command("export")
|
|
219
|
-
.description("
|
|
179
|
+
.description("write the notes you wrote here as files, never overwriting one you edited")
|
|
220
180
|
.option("--to <dir>", "the folder to write to (default: notes.export.dir)")
|
|
221
181
|
.option("--format <format>", `the files' format: ${DIALECTS.join(", ")}`, formatOf)
|
|
222
182
|
.option("--json", "print JSON")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/notes/command.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/notes/command.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"folders-command.d.ts","sourceRoot":"","sources":["../../src/notes/folders-command.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"folders-command.d.ts","sourceRoot":"","sources":["../../src/notes/folders-command.ts"],"names":[],"mappings":"AAEA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,EAAE,KAAK,OAAO,EAAwB,MAAM,WAAW,CAAA;AA2B9D,eAAO,MAAM,cAAc,YAAa,OAAO,WAAW,OAAO,OAAO,MAAM,CAAC,UAAU,KAAG,IA6F3F,CAAA"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { statSync } from "node:fs";
|
|
2
2
|
import { basename, resolve } from "node:path";
|
|
3
|
-
import { CliError
|
|
3
|
+
import { CliError } from "@wirecat/cli-base";
|
|
4
4
|
import { openStore } from "@wirecat/cli-messaging/store";
|
|
5
5
|
import { InvalidArgumentError } from "commander";
|
|
6
6
|
import { loadConfig, updateConfig } from "../config.js";
|
|
7
|
+
import { printing } from "../records/run.js";
|
|
7
8
|
import { DIALECTS } from "./dialects/index.js";
|
|
8
9
|
import { attachFolder, bindFolder, noteFolders } from "./folders.js";
|
|
9
10
|
const formatOf = (value) => {
|
|
@@ -22,14 +23,11 @@ const directory = (path) => {
|
|
|
22
23
|
throw new CliError("not_found", `${at} is not a folder`);
|
|
23
24
|
return at;
|
|
24
25
|
};
|
|
26
|
+
// drive-cli owns these folders; bound to a disk folder, an import would delete the Drive documents missing there.
|
|
27
|
+
const keptByDrive = (name) => name.startsWith("google-drive:");
|
|
25
28
|
const line = (folder) => `${folder.id ?? "(no id — memo folders add <path>)"} ${folder.format} ${folder.path}`;
|
|
26
29
|
export const foldersCommand = (program, streams, env) => {
|
|
27
|
-
const print = (
|
|
28
|
-
if (json)
|
|
29
|
-
createRenderer({ format: "json", color: false, streams }).result(value);
|
|
30
|
-
else
|
|
31
|
-
streams.data(`${text}\n`);
|
|
32
|
-
};
|
|
30
|
+
const print = printing(streams);
|
|
33
31
|
const withStore = async (work) => {
|
|
34
32
|
const store = await openStore({ env });
|
|
35
33
|
try {
|
|
@@ -41,10 +39,10 @@ export const foldersCommand = (program, streams, env) => {
|
|
|
41
39
|
};
|
|
42
40
|
const folders = program
|
|
43
41
|
.command("folders")
|
|
44
|
-
.description("
|
|
42
|
+
.description("folders of notes: the id links and the store use, and the path on this computer");
|
|
45
43
|
folders
|
|
46
44
|
.command("add")
|
|
47
|
-
.description("
|
|
45
|
+
.description("give a folder of notes an id, or show the one it has")
|
|
48
46
|
.argument("<path>", "the folder on this computer")
|
|
49
47
|
.option("--format <format>", `how its notes are written: ${DIALECTS.join(", ")} (default: obsidian)`, formatOf)
|
|
50
48
|
.option("--json", "print JSON")
|
|
@@ -69,7 +67,7 @@ export const foldersCommand = (program, streams, env) => {
|
|
|
69
67
|
});
|
|
70
68
|
folders
|
|
71
69
|
.command("attach")
|
|
72
|
-
.description("
|
|
70
|
+
.description("bind a folder id from another computer to the folder's path on this one")
|
|
73
71
|
.argument("<id>", "the folder's id, as memo folders add printed it")
|
|
74
72
|
.argument("<path>", "the same folder on this computer")
|
|
75
73
|
.option("--format <format>", `how its notes are written: ${DIALECTS.join(", ")}`, formatOf)
|
|
@@ -80,6 +78,8 @@ export const foldersCommand = (program, streams, env) => {
|
|
|
80
78
|
const stored = (await store.notes.folders()).find((candidate) => candidate.id === id);
|
|
81
79
|
if (!stored)
|
|
82
80
|
throw new CliError("not_found", `the store has no folder ${id} — memo folders list shows those it has`);
|
|
81
|
+
if (keptByDrive(stored.name))
|
|
82
|
+
throw new CliError("validation_error", `folder ${id} is Google Drive's (${stored.name}) — drive keeps it, and memo search already reads it`);
|
|
83
83
|
let bound;
|
|
84
84
|
updateConfig((config) => {
|
|
85
85
|
const result = attachFolder(config, id, at, options.format ?? stored.format);
|
|
@@ -92,19 +92,21 @@ export const foldersCommand = (program, streams, env) => {
|
|
|
92
92
|
});
|
|
93
93
|
folders
|
|
94
94
|
.command("list")
|
|
95
|
-
.description("
|
|
95
|
+
.description("folders of notes on this computer, and those the store knows from another")
|
|
96
96
|
.option("--json", "print JSON")
|
|
97
97
|
.action(async (options) => {
|
|
98
98
|
const answer = await withStore(async (store) => {
|
|
99
99
|
const here = noteFolders(loadConfig(env).notes);
|
|
100
100
|
const elsewhere = (await store.notes.folders())
|
|
101
101
|
.filter((folder) => !here.some((entry) => entry.id === folder.id))
|
|
102
|
-
.map(({ id, name, format }) => ({ id, name, format }));
|
|
102
|
+
.map(({ id, name, format }) => ({ id, name, format, ...(keptByDrive(name) ? { keptBy: "drive" } : {}) }));
|
|
103
103
|
return { items: here, elsewhere };
|
|
104
104
|
});
|
|
105
105
|
print(options.json, answer, [
|
|
106
106
|
...answer.items.map(line),
|
|
107
|
-
...answer.elsewhere.map(({ id, name }) =>
|
|
107
|
+
...answer.elsewhere.map(({ id, name, keptBy }) => keptBy
|
|
108
|
+
? `${id} kept by drive (${name})`
|
|
109
|
+
: `${id} not on this computer (${name}) — memo folders attach ${id} <path>`),
|
|
108
110
|
].join("\n") || "no folders: memo folders add <path>");
|
|
109
111
|
});
|
|
110
112
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"folders-command.js","sourceRoot":"","sources":["../../src/notes/folders-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"folders-command.js","sourceRoot":"","sources":["../../src/notes/folders-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { MessageStore, Note } from "@wirecat/cli-messaging/store";
|
|
2
|
+
import type { Subject } from "../people/subject.js";
|
|
3
|
+
import { type Via } from "./about.js";
|
|
4
|
+
export interface NotesFilter {
|
|
5
|
+
/** Notes about the subject, or linking it, or linking a note about it, or naming it in a link. */
|
|
6
|
+
about?: Subject;
|
|
7
|
+
source?: Note["source"];
|
|
8
|
+
search?: string;
|
|
9
|
+
offset: number;
|
|
10
|
+
limit: number;
|
|
11
|
+
}
|
|
12
|
+
/** `anchors`: the headings or blocks its links point at; `linkText`: the name a `name` link was written with. */
|
|
13
|
+
export type ListedNote = Note & {
|
|
14
|
+
via?: Via;
|
|
15
|
+
anchors?: string[];
|
|
16
|
+
linkText?: string;
|
|
17
|
+
};
|
|
18
|
+
export declare const listNotes: (store: MessageStore, filter: NotesFilter) => Promise<{
|
|
19
|
+
items: ListedNote[];
|
|
20
|
+
hasMore: boolean;
|
|
21
|
+
}>;
|
|
22
|
+
//# sourceMappingURL=list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/notes/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAA;AACtE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAiB,KAAK,GAAG,EAAE,MAAM,YAAY,CAAA;AAEpD,MAAM,WAAW,WAAW;IAC1B,kGAAkG;IAClG,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd;AAED,iHAAiH;AACjH,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG;IAAE,GAAG,CAAC,EAAE,GAAG,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAQpF,eAAO,MAAM,SAAS,UACb,YAAY,UACX,WAAW,KAClB,OAAO,CAAC;IAAE,KAAK,EAAE,UAAU,EAAE,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAgBnD,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { notesReaching } from "./about.js";
|
|
2
|
+
const PRIORITY = ["about", "link", "through", "name"];
|
|
3
|
+
const holds = (note, filter) => (filter.source === undefined || note.source === filter.source) &&
|
|
4
|
+
(filter.search === undefined || note.text.toLowerCase().includes(filter.search.toLowerCase()));
|
|
5
|
+
export const listNotes = async (store, filter) => {
|
|
6
|
+
const { about, offset, limit, ...rest } = filter;
|
|
7
|
+
if (about === undefined)
|
|
8
|
+
return store.notes.notes({ offset, limit, ...rest });
|
|
9
|
+
const byRef = new Map();
|
|
10
|
+
for (const { note, via, anchor, text } of await notesReaching(store, about)) {
|
|
11
|
+
const known = byRef.get(note.ref);
|
|
12
|
+
const row = !known || PRIORITY.indexOf(via) < PRIORITY.indexOf(known.via) ? { ...known, ...note, via } : known;
|
|
13
|
+
if (anchor !== null && !row.anchors?.includes(anchor))
|
|
14
|
+
row.anchors = [...(row.anchors ?? []), anchor];
|
|
15
|
+
if (via === "name" && text !== null)
|
|
16
|
+
row.linkText = text;
|
|
17
|
+
byRef.set(note.ref, row);
|
|
18
|
+
}
|
|
19
|
+
const all = [...byRef.values()]
|
|
20
|
+
.filter((note) => holds(note, filter))
|
|
21
|
+
.sort((a, b) => b.createdAt.localeCompare(a.createdAt) || b.ref.localeCompare(a.ref));
|
|
22
|
+
return { items: all.slice(offset, offset + limit), hasMore: all.length > offset + limit };
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=list.js.map
|