@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.
Files changed (150) hide show
  1. package/README.md +24 -21
  2. package/dist/actions/command.d.ts.map +1 -1
  3. package/dist/actions/command.js +14 -19
  4. package/dist/actions/command.js.map +1 -1
  5. package/dist/agents/command.d.ts.map +1 -1
  6. package/dist/agents/command.js +9 -9
  7. package/dist/agents/command.js.map +1 -1
  8. package/dist/answers/command.js +6 -6
  9. package/dist/answers/command.js.map +1 -1
  10. package/dist/author.d.ts +11 -0
  11. package/dist/author.d.ts.map +1 -0
  12. package/dist/author.js +16 -0
  13. package/dist/author.js.map +1 -0
  14. package/dist/bin/memo.js +4 -2
  15. package/dist/bin/memo.js.map +1 -1
  16. package/dist/config.d.ts +1 -1
  17. package/dist/config.d.ts.map +1 -1
  18. package/dist/config.js +1 -1
  19. package/dist/config.js.map +1 -1
  20. package/dist/context/command.d.ts.map +1 -1
  21. package/dist/context/command.js +18 -12
  22. package/dist/context/command.js.map +1 -1
  23. package/dist/context/context.d.ts +1 -1
  24. package/dist/context/context.d.ts.map +1 -1
  25. package/dist/context/context.js +2 -2
  26. package/dist/context/context.js.map +1 -1
  27. package/dist/discovery/command.d.ts +2 -0
  28. package/dist/discovery/command.d.ts.map +1 -1
  29. package/dist/discovery/command.js +18 -10
  30. package/dist/discovery/command.js.map +1 -1
  31. package/dist/examples.d.ts +5 -0
  32. package/dist/examples.d.ts.map +1 -0
  33. package/dist/examples.js +128 -0
  34. package/dist/examples.js.map +1 -0
  35. package/dist/facts/command.d.ts.map +1 -1
  36. package/dist/facts/command.js +19 -17
  37. package/dist/facts/command.js.map +1 -1
  38. package/dist/install/postinstall.d.ts +7 -0
  39. package/dist/install/postinstall.d.ts.map +1 -0
  40. package/dist/install/postinstall.js +28 -0
  41. package/dist/install/postinstall.js.map +1 -0
  42. package/dist/knowledge/command.d.ts.map +1 -1
  43. package/dist/knowledge/command.js +109 -74
  44. package/dist/knowledge/command.js.map +1 -1
  45. package/dist/knowledge/key-documents.d.ts +29 -0
  46. package/dist/knowledge/key-documents.d.ts.map +1 -0
  47. package/dist/knowledge/key-documents.js +76 -0
  48. package/dist/knowledge/key-documents.js.map +1 -0
  49. package/dist/knowledge/meeting-projects-command.d.ts +1 -1
  50. package/dist/knowledge/meeting-projects-command.d.ts.map +1 -1
  51. package/dist/knowledge/meeting-projects-command.js +7 -20
  52. package/dist/knowledge/meeting-projects-command.js.map +1 -1
  53. package/dist/mail/messages-command.d.ts +4 -0
  54. package/dist/mail/messages-command.d.ts.map +1 -0
  55. package/dist/mail/messages-command.js +32 -0
  56. package/dist/mail/messages-command.js.map +1 -0
  57. package/dist/mcp/command.js +1 -1
  58. package/dist/mcp/command.js.map +1 -1
  59. package/dist/mcp/knowledge.js +3 -3
  60. package/dist/mcp/knowledge.js.map +1 -1
  61. package/dist/mcp/server.d.ts.map +1 -1
  62. package/dist/mcp/server.js +27 -18
  63. package/dist/mcp/server.js.map +1 -1
  64. package/dist/mcp/task-relations.d.ts +3 -3
  65. package/dist/mcp/task-relations.d.ts.map +1 -1
  66. package/dist/mcp/task-relations.js +18 -6
  67. package/dist/mcp/task-relations.js.map +1 -1
  68. package/dist/mcp/vocabulary.d.ts +2 -3
  69. package/dist/mcp/vocabulary.d.ts.map +1 -1
  70. package/dist/mcp/vocabulary.js +23 -18
  71. package/dist/mcp/vocabulary.js.map +1 -1
  72. package/dist/memories/command.d.ts +1 -0
  73. package/dist/memories/command.d.ts.map +1 -1
  74. package/dist/memories/command.js +24 -23
  75. package/dist/memories/command.js.map +1 -1
  76. package/dist/notes/about.d.ts +11 -2
  77. package/dist/notes/about.d.ts.map +1 -1
  78. package/dist/notes/about.js +34 -30
  79. package/dist/notes/about.js.map +1 -1
  80. package/dist/notes/bound.d.ts +3 -0
  81. package/dist/notes/bound.d.ts.map +1 -1
  82. package/dist/notes/bound.js +9 -1
  83. package/dist/notes/bound.js.map +1 -1
  84. package/dist/notes/command.d.ts.map +1 -1
  85. package/dist/notes/command.js +28 -68
  86. package/dist/notes/command.js.map +1 -1
  87. package/dist/notes/folders-command.d.ts.map +1 -1
  88. package/dist/notes/folders-command.js +15 -13
  89. package/dist/notes/folders-command.js.map +1 -1
  90. package/dist/notes/list.d.ts +22 -0
  91. package/dist/notes/list.d.ts.map +1 -0
  92. package/dist/notes/list.js +24 -0
  93. package/dist/notes/list.js.map +1 -0
  94. package/dist/notes/search.d.ts.map +1 -1
  95. package/dist/notes/search.js +2 -2
  96. package/dist/notes/search.js.map +1 -1
  97. package/dist/options.d.ts +2 -0
  98. package/dist/options.d.ts.map +1 -1
  99. package/dist/options.js +2 -0
  100. package/dist/options.js.map +1 -1
  101. package/dist/page.d.ts +12 -0
  102. package/dist/page.d.ts.map +1 -0
  103. package/dist/page.js +10 -0
  104. package/dist/page.js.map +1 -0
  105. package/dist/people/command.js +2 -2
  106. package/dist/program.d.ts +5 -0
  107. package/dist/program.d.ts.map +1 -1
  108. package/dist/program.js +35 -6
  109. package/dist/program.js.map +1 -1
  110. package/dist/records/run.d.ts +2 -0
  111. package/dist/records/run.d.ts.map +1 -1
  112. package/dist/records/run.js +18 -12
  113. package/dist/records/run.js.map +1 -1
  114. package/dist/run/auto.d.ts.map +1 -1
  115. package/dist/run/auto.js +11 -13
  116. package/dist/run/auto.js.map +1 -1
  117. package/dist/run/import.d.ts +2 -2
  118. package/dist/run/import.d.ts.map +1 -1
  119. package/dist/run/import.js +66 -27
  120. package/dist/run/import.js.map +1 -1
  121. package/dist/run/lock.d.ts +1 -1
  122. package/dist/run/lock.d.ts.map +1 -1
  123. package/dist/run/lock.js +1 -1
  124. package/dist/run/lock.js.map +1 -1
  125. package/dist/search/command.d.ts +15 -20
  126. package/dist/search/command.d.ts.map +1 -1
  127. package/dist/search/command.js +96 -47
  128. package/dist/search/command.js.map +1 -1
  129. package/dist/tags/command.d.ts.map +1 -1
  130. package/dist/tags/command.js +25 -18
  131. package/dist/tags/command.js.map +1 -1
  132. package/dist/tasks/command.d.ts.map +1 -1
  133. package/dist/tasks/command.js +21 -14
  134. package/dist/tasks/command.js.map +1 -1
  135. package/dist/tasks/relations-command.d.ts +1 -1
  136. package/dist/tasks/relations-command.d.ts.map +1 -1
  137. package/dist/tasks/relations-command.js +12 -33
  138. package/dist/tasks/relations-command.js.map +1 -1
  139. package/dist/version.d.ts +1 -1
  140. package/dist/version.js +1 -1
  141. package/dist/vocabulary/command.d.ts.map +1 -1
  142. package/dist/vocabulary/command.js +48 -47
  143. package/dist/vocabulary/command.js.map +1 -1
  144. package/install/postinstall.mjs +9 -0
  145. package/package.json +8 -4
  146. package/skills/cli-memo/SKILL.md +49 -0
  147. package/dist/mail/command.d.ts +0 -4
  148. package/dist/mail/command.d.ts.map +0 -1
  149. package/dist/mail/command.js +0 -105
  150. package/dist/mail/command.js.map +0 -1
@@ -11,60 +11,64 @@ const refOf = (note, anchor = null) => ({
11
11
  modifiedAt: note.updatedAt,
12
12
  ...(anchor === null ? {} : { anchor }),
13
13
  });
14
- /** What notes say about a subject, through the links the store holds — never a name found in plain text. */
15
- export const notesAbout = async (store, subject, limit = 20) => {
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 pages = await Promise.all(refs.map((ref) => store.notes.notes({ about: ref, limit: 500 })));
33
- const about = pages.flatMap(({ items }) => items.map((note) => ({ note, anchor: null, text: null })));
34
- const linking = await live((await Promise.all(refs.map((to) => store.notes.links({ to })))).flat().filter((link) => link.kind === "links-to"));
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
- const unique = (items) => [...new Map(items.map((item) => [`${item.note.ref}#${item.anchor ?? ""}`, item])).values()].sort((a, b) => b.note.updatedAt.localeCompare(a.note.updatedAt));
45
- const lists = [about, linking, through, waiting].map(unique);
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: (lists[0] ?? []).slice(0, limit).map(({ note }) => refOf(note)),
50
- linking: (lists[1] ?? []).slice(0, limit).map(({ note, anchor }) => refOf(note, anchor)),
51
- throughNotes: (lists[2] ?? []).slice(0, limit).map(({ note, anchor }) => refOf(note, anchor)),
52
- waiting: (lists[3] ?? []).slice(0, limit).map(({ note, text }) => ({ ...refOf(note), text: text ?? "" })),
53
- hasMore: pages.some((page) => page.hasMore) || lists.some((list) => list.length > limit),
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
@@ -1 +1 @@
1
- {"version":3,"file":"about.js","sourceRoot":"","sources":["../../src/notes/about.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"about.js","sourceRoot":"","sources":["../../src/notes/about.ts"],"names":[],"mappings":"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"}
@@ -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;AAQrD;;;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,yDAAyD;AACzD,eAAO,MAAM,YAAY,YAAa,WAAW,EAAE,QAAQ,MAAM,KAAG;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAKtG,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"}
@@ -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 unbound = (path) => new CliError("configuration_error", `${path} has no folder id — memo folders add ${path}, or memo folders attach <id> ${path} if another computer made one`);
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);
@@ -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,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CAC/B,IAAI,QAAQ,CACV,qBAAqB,EACrB,GAAG,IAAI,wCAAwC,IAAI,iCAAiC,IAAI,+BAA+B,CACxH,CAAA;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,KAAmB,EACnB,GAAsB,EACtB,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,GAA0C,EAAE,EAC3C,EAAE;IAC1B,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACxE,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAA;IACrD,MAAM,MAAM,GACV,IAAI,KAAK,SAAS;QAChB,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAChB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;YAC9F,IAAI,CAAC,KAAK;gBAAE,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;YACxC,OAAO,KAAK,CAAA;QACd,CAAC,CAAC,CAAA;IACR,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAC/B,IAAI,MAAM,CAAC,EAAE,KAAK,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAAE,OAAO,CAAC,MAAqB,CAAC,CAAA;QAC9E,IAAI,MAAM;YAAE,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACtC,OAAO,EAAE,CAAA;IACX,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,yDAAyD;AACzD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAsB,EAAE,IAAY,EAAyC,EAAE;IAC1G,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACxB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,CAAA;IAC/E,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE,sCAAsC,CAAC,CAAA;IACzF,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAA;AAC3D,CAAC,CAAA"}
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,CAAC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,EAAE,CAC5C,GAAG,IAAI,wCAAwC,IAAI,iCAAiC,IAAI,+BAA+B,CAAA;AAEzH,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,qBAAqB,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAA;AAE1F;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,KAAmB,EACnB,GAAsB,EACtB,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,GAA0C,EAAE,EAC3C,EAAE;IAC1B,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACxE,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAA;IACrD,MAAM,MAAM,GACV,IAAI,KAAK,SAAS;QAChB,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAChB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;YAC9F,IAAI,CAAC,KAAK;gBAAE,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;YACxC,OAAO,KAAK,CAAA;QACd,CAAC,CAAC,CAAA;IACR,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;QAC/B,IAAI,MAAM,CAAC,EAAE,KAAK,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAAE,OAAO,CAAC,MAAqB,CAAC,CAAA;QAC9E,IAAI,MAAM;YAAE,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACtC,OAAO,EAAE,CAAA;IACX,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,uGAAuG;AACvG,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAAE,KAAmB,EAAE,GAAsB,EAAE,QAAkB,EAAqB,EAAE;IACpH,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACxE,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACjF,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AACtG,CAAC,CAAA;AAED,yDAAyD;AACzD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAsB,EAAE,IAAY,EAAyC,EAAE;IAC1G,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACxB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,CAAA;IAC/E,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE,sCAAsC,CAAC,CAAA;IACzF,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAA;AAC3D,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/notes/command.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAE1E,OAAO,EAAE,KAAK,OAAO,EAAwB,MAAM,WAAW,CAAA;AAmD9D,eAAO,MAAM,YAAY,YAAa,OAAO,WAAW,OAAO,OAAO,MAAM,CAAC,UAAU,KAAG,IAiPzF,CAAA"}
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"}
@@ -1,19 +1,20 @@
1
1
  import { readFileSync } from "node:fs";
2
- import { CliError, createRenderer } from "@wirecat/cli-base";
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 { aboutText, isNoteReference, notesAbout } from "./about.js";
12
+ import { isNoteReference } from "./about.js";
12
13
  import { boundFolders, folderOfFile } from "./bound.js";
13
14
  import { DIALECTS } from "./dialects/index.js";
14
- import { embedNoteChunks } from "./embed.js";
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 import`);
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 = (json, value, text) => {
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("One note: its text, tags, what it links and what links it")
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, answer.text);
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("Notes, newest first")
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.notes.notes({
102
+ const page = await withStore(async (store) => listNotes(store, {
143
103
  limit: options.limit,
144
104
  offset: options.offset,
145
- ...(options.about === undefined ? {} : { about: (await subjectOf(store, options.about)).ref }),
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.id} ${note.source} ${note.path ?? note.title ?? note.text.split("\n")[0]}`)
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("Write a note of your own about messages, people, projects or other notes")
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...>", "what it is about: <messenger>:<name or id>, msg:, chat:, person:, organization:, project:, task:, note:, document:, meeting:")
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("Change a note you wrote here; a file's note is edited in its file")
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("Delete a note you wrote here; a file it was exported to stays")
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("Write the notes you wrote here as files, never overwriting one you edited")
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,EAA4B,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAE1E,OAAO,EAAE,KAAK,OAAO,EAAwB,MAAM,WAAW,CAAA;AAuB9D,eAAO,MAAM,cAAc,YAAa,OAAO,WAAW,OAAO,OAAO,MAAM,CAAC,UAAU,KAAG,IAyF3F,CAAA"}
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, createRenderer } from "@wirecat/cli-base";
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 = (json, value, text) => {
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("Folders of notes: an id that links and the store use, and where the folder is on this computer");
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("Give a folder of notes an id, or show the one it has")
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("Bind a folder id from another computer to the folder's path on this one")
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("The folders of notes: those on this computer, and those the store has from another")
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 }) => `${id} not on this computer (${name}) — memo folders attach ${id} <path>`),
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":"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"}
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