@wirecat/cli-memo 0.54.0 → 0.56.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 (114) hide show
  1. package/README.md +4 -2
  2. package/dist/actions/command.d.ts.map +1 -1
  3. package/dist/actions/command.js +7 -9
  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 +4 -5
  7. package/dist/agents/command.js.map +1 -1
  8. package/dist/answers/command.d.ts +1 -1
  9. package/dist/answers/command.d.ts.map +1 -1
  10. package/dist/answers/command.js +4 -3
  11. package/dist/answers/command.js.map +1 -1
  12. package/dist/context/command.d.ts.map +1 -1
  13. package/dist/context/command.js +3 -2
  14. package/dist/context/command.js.map +1 -1
  15. package/dist/discovery/command.d.ts.map +1 -1
  16. package/dist/discovery/command.js +3 -3
  17. package/dist/discovery/command.js.map +1 -1
  18. package/dist/doctor/command.d.ts.map +1 -1
  19. package/dist/doctor/command.js +3 -3
  20. package/dist/doctor/command.js.map +1 -1
  21. package/dist/facts/command.d.ts.map +1 -1
  22. package/dist/facts/command.js +7 -9
  23. package/dist/facts/command.js.map +1 -1
  24. package/dist/failure.d.ts.map +1 -1
  25. package/dist/failure.js +5 -4
  26. package/dist/failure.js.map +1 -1
  27. package/dist/knowledge/command.d.ts.map +1 -1
  28. package/dist/knowledge/command.js +28 -36
  29. package/dist/knowledge/command.js.map +1 -1
  30. package/dist/knowledge/meeting-projects-command.d.ts.map +1 -1
  31. package/dist/knowledge/meeting-projects-command.js +4 -5
  32. package/dist/knowledge/meeting-projects-command.js.map +1 -1
  33. package/dist/mail/accounts.d.ts +6 -1
  34. package/dist/mail/accounts.d.ts.map +1 -1
  35. package/dist/mail/accounts.js +13 -1
  36. package/dist/mail/accounts.js.map +1 -1
  37. package/dist/mail/apply.js +1 -1
  38. package/dist/mail/apply.js.map +1 -1
  39. package/dist/mail/command.d.ts.map +1 -1
  40. package/dist/mail/command.js +15 -26
  41. package/dist/mail/command.js.map +1 -1
  42. package/dist/mail/import.d.ts.map +1 -1
  43. package/dist/mail/import.js +4 -4
  44. package/dist/mail/import.js.map +1 -1
  45. package/dist/mail/messages-command.d.ts.map +1 -1
  46. package/dist/mail/messages-command.js +3 -2
  47. package/dist/mail/messages-command.js.map +1 -1
  48. package/dist/mail/score.d.ts +4 -1
  49. package/dist/mail/score.d.ts.map +1 -1
  50. package/dist/mail/score.js +30 -5
  51. package/dist/mail/score.js.map +1 -1
  52. package/dist/mail/status.d.ts.map +1 -1
  53. package/dist/mail/status.js +5 -1
  54. package/dist/mail/status.js.map +1 -1
  55. package/dist/mcp/command.d.ts.map +1 -1
  56. package/dist/mcp/command.js +3 -2
  57. package/dist/mcp/command.js.map +1 -1
  58. package/dist/mcp/knowledge.js +1 -1
  59. package/dist/mcp/knowledge.js.map +1 -1
  60. package/dist/memories/command.d.ts.map +1 -1
  61. package/dist/memories/command.js +8 -11
  62. package/dist/memories/command.js.map +1 -1
  63. package/dist/notes/command.d.ts.map +1 -1
  64. package/dist/notes/command.js +8 -12
  65. package/dist/notes/command.js.map +1 -1
  66. package/dist/notes/folders-command.d.ts.map +1 -1
  67. package/dist/notes/folders-command.js +5 -6
  68. package/dist/notes/folders-command.js.map +1 -1
  69. package/dist/people/command.d.ts.map +1 -1
  70. package/dist/people/command.js +3 -2
  71. package/dist/people/command.js.map +1 -1
  72. package/dist/program.d.ts.map +1 -1
  73. package/dist/program.js +9 -5
  74. package/dist/program.js.map +1 -1
  75. package/dist/run/auto.d.ts.map +1 -1
  76. package/dist/run/auto.js +5 -6
  77. package/dist/run/auto.js.map +1 -1
  78. package/dist/run/import.d.ts.map +1 -1
  79. package/dist/run/import.js +3 -3
  80. package/dist/run/import.js.map +1 -1
  81. package/dist/search/command.d.ts +1 -63
  82. package/dist/search/command.d.ts.map +1 -1
  83. package/dist/search/command.js +8 -231
  84. package/dist/search/command.js.map +1 -1
  85. package/dist/search/search.d.ts +82 -0
  86. package/dist/search/search.d.ts.map +1 -0
  87. package/dist/search/search.js +227 -0
  88. package/dist/search/search.js.map +1 -0
  89. package/dist/tags/command.d.ts.map +1 -1
  90. package/dist/tags/command.js +4 -5
  91. package/dist/tags/command.js.map +1 -1
  92. package/dist/tasks/command.d.ts.map +1 -1
  93. package/dist/tasks/command.js +16 -86
  94. package/dist/tasks/command.js.map +1 -1
  95. package/dist/tasks/relations-command.d.ts.map +1 -1
  96. package/dist/tasks/relations-command.js +5 -6
  97. package/dist/tasks/relations-command.js.map +1 -1
  98. package/dist/tasks/tasks.d.ts +33 -0
  99. package/dist/tasks/tasks.d.ts.map +1 -0
  100. package/dist/tasks/tasks.js +82 -0
  101. package/dist/tasks/tasks.js.map +1 -0
  102. package/dist/update.d.ts.map +1 -1
  103. package/dist/update.js +4 -3
  104. package/dist/update.js.map +1 -1
  105. package/dist/version.d.ts +1 -1
  106. package/dist/version.js +1 -1
  107. package/dist/vocabulary/command.d.ts.map +1 -1
  108. package/dist/vocabulary/command.js +8 -12
  109. package/dist/vocabulary/command.js.map +1 -1
  110. package/package.json +1 -1
  111. package/dist/effects.d.ts +0 -11
  112. package/dist/effects.d.ts.map +0 -1
  113. package/dist/effects.js +0 -139
  114. package/dist/effects.js.map +0 -1
@@ -1,73 +1,11 @@
1
1
  import { type Streams } from "@wirecat/cli-base";
2
- import { type SearchAllFound, type SearchedResource, type SearchFound } from "@wirecat/cli-core/services";
3
- import type { AccountKey, MessageStore } from "@wirecat/cli-core/store";
2
+ import type { SearchFound } from "@wirecat/cli-core/services";
4
3
  import { type Command } from "commander";
5
- import { type AccountScope } from "../store/scope.js";
6
- import { taskPage } from "../tasks/context.js";
7
- export interface EvidenceItem {
8
- kind: "message" | "note" | "email" | "task";
9
- locator: string;
10
- provider: string;
11
- account: string;
12
- timestamp: string;
13
- text: string;
14
- match: "structured-words" | "note-text" | "task-source";
15
- source?: string;
16
- }
17
- export declare const unifiedSearch: (store: MessageStore, query: string, options: {
18
- keys: AccountKey[];
19
- notes?: boolean;
20
- limit?: number;
21
- offset?: number;
22
- noteText?: string;
23
- }) => Promise<{
24
- query: string;
25
- items: EvidenceItem[];
26
- hasMore: boolean;
27
- nextOffset?: number;
28
- incomplete: boolean;
29
- accounts: AccountKey[];
30
- coverage: unknown[];
31
- }>;
32
- /** Notes are no account's: `--all` takes them with every account, `--provider notes` alone. */
33
- export declare const searchAccounts: (store: MessageStore, options: AccountScope & {
34
- all?: boolean;
35
- }) => Promise<{
36
- keys: AccountKey[];
37
- notes: boolean;
38
- }>;
39
4
  export type Level = "brief" | "full";
40
5
  /**
41
6
  * A found message or email for a reader: its reference first, then when and from whom, who else it went to and
42
7
  * where it is filed, its subject or chat, and an excerpt — the whole text only with --full.
43
8
  */
44
9
  export declare const found: (item: SearchFound["items"][number], level: Level | undefined) => string;
45
- export interface QueryInput {
46
- text: string;
47
- limit: number;
48
- exact?: boolean;
49
- timezone?: string;
50
- }
51
- export interface SearchedAccount {
52
- resource: SearchedResource;
53
- provider: string;
54
- account: string;
55
- }
56
- interface EverywhereExtras {
57
- accounts: SearchedAccount[];
58
- tasks: (Awaited<ReturnType<typeof taskPage>>["items"][number] & {
59
- heldBy: AccountKey;
60
- })[];
61
- tasksIncomplete: boolean;
62
- }
63
- /** Messages, mail and notes ranked together, with the open tasks that point at a hit and every account read. */
64
- export declare const searchEverywhere: (store: MessageStore, env: NodeJS.ProcessEnv, { text, limit, only, exact, timezone }: QueryInput & {
65
- only?: SearchedResource[];
66
- }) => Promise<SearchAllFound & EverywhereExtras>;
67
- /** One kind with all its fields: messenger messages from every messenger, or imported mail. */
68
- export declare const searchKind: (store: MessageStore, kind: "messages" | "mail", { text, limit, account, exact, timezone }: QueryInput & {
69
- account?: string;
70
- }) => Promise<SearchFound>;
71
10
  export declare const searchCommand: (program: Command, streams: Streams, env: NodeJS.ProcessEnv) => void;
72
- export {};
73
11
  //# sourceMappingURL=command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/search/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/search/command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAG1D,OAAO,KAAK,EAAoB,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAC/E,OAAO,EAAE,KAAK,OAAO,EAAwB,MAAM,WAAW,CAAA;AAiB9D,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,MAAM,CAAA;AASpC;;;GAGG;AACH,eAAO,MAAM,KAAK,SAAU,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,SAAS,KAAK,GAAG,SAAS,KAAG,MAqBpF,CAAA;AAMD,eAAO,MAAM,aAAa,YAAa,OAAO,WAAW,OAAO,OAAO,MAAM,CAAC,UAAU,SA0LvF,CAAA"}
@@ -1,163 +1,21 @@
1
- import { CliError, isCliError } from "@wirecat/cli-base";
1
+ import { CliError } from "@wirecat/cli-base";
2
2
  import { annotate } from "@wirecat/cli-base/commands";
3
- import { parseLucene } from "@wirecat/cli-base/query";
4
- import { parseLocator } from "@wirecat/cli-core";
5
- import { searchAll, searchNotesOf, searchNotesQuery, searchStore, } from "@wirecat/cli-core/services";
3
+ import { LOCAL_READ } from "@wirecat/cli-core/cli";
6
4
  import { InvalidArgumentError } from "commander";
7
5
  import { answers, withStore } from "../answer.js";
8
- import { APP } from "../app.js";
9
- import { loadConfig } from "../config.js";
10
- import { keyDocuments, keyFirst, projectOf } from "../knowledge/key-documents.js";
11
- import { mailAccounts } from "../mail/accounts.js";
12
6
  import { searchMemoriesCommand } from "../memories/command.js";
13
7
  import { modelHint } from "../notes/embed.js";
14
8
  import { searchText } from "../notes/search.js";
15
9
  import { positive } from "../options.js";
16
10
  import { SAVE_HELP } from "../save-help.js";
17
- import { selectAccount } from "../store/scope.js";
18
- import { taskPage } from "../tasks/context.js";
19
11
  import { allAnswer, kindAnswer, notesAnswer } from "./answers.js";
20
- const CHATS_CHECKED = 500;
21
- /**
22
- * The account memo's searches run as: its own notes, never a stored account picked for the owner. The scope comes
23
- * from the query alone, and every account it covers is named in the answer.
24
- */
25
- const MEMO = { provider: "notes", account: "internal" };
26
- export const unifiedSearch = async (store, query, options) => {
27
- const limit = options.limit ?? 20, offset = options.offset ?? 0;
28
- if (!Number.isInteger(limit) || limit < 1 || limit > 100 || !Number.isInteger(offset) || offset < 0 || offset > 1000)
29
- throw new CliError("validation_error", "limit takes 1–100; offset takes 0–1000");
30
- if ((!options.keys.length && !options.notes) || options.keys.length > 50)
31
- throw new CliError("validation_error", "select 1–50 accounts, or notes");
32
- const answer = options.keys.length
33
- ? await searchStore(store, MEMO, {
34
- text: query,
35
- accounts: options.keys,
36
- limit: Math.min(2000, offset + limit + 1),
37
- newest: true,
38
- })
39
- : { items: [], hasMore: false };
40
- const items = answer.items.map((hit) => {
41
- const key = parseLocator(hit.locator);
42
- return {
43
- kind: key.provider === "email" ? "email" : "message",
44
- locator: hit.locator,
45
- provider: key.provider,
46
- account: key.account,
47
- timestamp: hit.timestamp,
48
- text: hit.text.slice(0, 2000),
49
- match: "structured-words",
50
- };
51
- });
52
- const matched = new Set(items.map((hit) => hit.locator));
53
- const coverage = [];
54
- let incomplete = answer.hasMore;
55
- const noteItem = (note, match) => ({
56
- kind: "note",
57
- locator: note.ref,
58
- provider: "notes",
59
- account: note.folderId ?? "internal",
60
- timestamp: note.updatedAt,
61
- text: note.text.slice(0, 2000),
62
- match,
63
- });
64
- if (options.notes) {
65
- try {
66
- const notes = await searchNotesQuery(store, { text: query, limit: Math.min(500, offset + limit + 1) });
67
- incomplete ||= notes.hasMore;
68
- items.push(...notes.items.map(({ note }) => noteItem(note, "structured-words")));
69
- coverage.push({ notes: "searched" });
70
- }
71
- catch (error) {
72
- // A field only messages have (`from:`, `after:`) is refused by notes; the messages still answer.
73
- if (!isCliError(error) || error.code !== "validation_error" || !options.keys.length)
74
- throw error;
75
- coverage.push({ notes: `not searched: ${error.message}` });
76
- incomplete = true;
77
- }
78
- }
79
- if (options.noteText !== undefined) {
80
- const notes = await store.notes.notes({
81
- source: "internal",
82
- search: options.noteText,
83
- limit: Math.min(500, offset + limit + 1),
84
- });
85
- incomplete ||= notes.hasMore;
86
- items.push(...notes.items.map((note) => noteItem(note, "note-text")));
87
- }
88
- for (const item of items)
89
- matched.add(item.locator);
90
- for (const key of options.keys) {
91
- const taskResults = await taskPage(store, key, {
92
- state: "open",
93
- sources: [...matched],
94
- limit: Math.min(500, offset + limit + 1),
95
- });
96
- incomplete ||= taskResults.hasMore;
97
- for (const task of taskResults.items) {
98
- if (matched.has(task.source))
99
- items.push({
100
- kind: "task",
101
- locator: `task:${task.id}`,
102
- ...key,
103
- timestamp: task.createdAt.toISOString(),
104
- text: task.kind,
105
- source: task.source,
106
- match: "task-source",
107
- });
108
- }
109
- if (key.provider === "email")
110
- coverage.push({ ...key, mail: (await store.syncState(key, "mail_coverage"))?.value ?? null });
111
- else {
112
- // Counts, not one row per chat: an account of hundreds of chats made the rows most of an answer.
113
- const chats = await store.chats(key, { limit: CHATS_CHECKED });
114
- const archives = await store.chatCompleteness(key, chats.items.map((chat) => chat.id));
115
- const count = (test) => archives.filter(test).length;
116
- coverage.push({
117
- ...key,
118
- chats: {
119
- checked: archives.length,
120
- more: chats.hasMore,
121
- complete: count(({ state }) => state === "complete"),
122
- partial: count(({ state }) => state === "partial"),
123
- neverFetched: count(({ state }) => state === "unknown"),
124
- behind: count(({ upToDate }) => upToDate === false),
125
- withGaps: count(({ gaps }) => gaps),
126
- },
127
- });
128
- }
129
- }
130
- items.sort((a, b) => b.timestamp.localeCompare(a.timestamp) || a.kind.localeCompare(b.kind) || a.locator.localeCompare(b.locator));
131
- const unique = [...new Map(items.map((item) => [item.locator, item])).values()];
132
- const hasMore = unique.length > offset + limit;
133
- return {
134
- query,
135
- items: unique.slice(offset, offset + limit),
136
- hasMore,
137
- ...(hasMore && offset + limit <= 1000 ? { nextOffset: offset + limit } : {}),
138
- incomplete: incomplete || (hasMore && offset + limit > 1000),
139
- accounts: options.keys,
140
- coverage,
141
- };
142
- };
143
- /** Notes are no account's: `--all` takes them with every account, `--provider notes` alone. */
144
- export const searchAccounts = async (store, options) => {
145
- if (options.all && (options.provider !== undefined || options.account !== undefined))
146
- throw new CliError("validation_error", "use --all alone or select one provider/account");
147
- if (options.provider === "notes")
148
- return { keys: [], notes: true };
149
- const messengers = (await store.accounts()).filter(({ provider }) => provider !== "notes");
150
- return options.all ? { keys: messengers, notes: true } : { keys: [await selectAccount(store, options)], notes: false };
151
- };
12
+ import { keyDocumentsFirst, mailAddressOf, searchEverywhere, searchKind, searchNotes } from "./search.js";
152
13
  const onlyOf = (value) => {
153
14
  const selected = value.split(",").map((part) => part.trim());
154
15
  if (!selected.length || selected.some((part) => !["messages", "mail", "notes"].includes(part)))
155
16
  throw new InvalidArgumentError("choose messages,mail,notes, separated by commas");
156
17
  return [...new Set(selected)];
157
18
  };
158
- const hasSource = (node) => node.kind === "predicate"
159
- ? node.field === "in"
160
- : node.clauses.some(({ occur, node }) => occur !== "must_not" && hasSource(node));
161
19
  const levelOf = ({ brief, full }) => {
162
20
  if (brief && full)
163
21
  throw new CliError("validation_error", "--brief and --full ask for opposite things — pick one");
@@ -189,72 +47,8 @@ export const found = (item, level) => {
189
47
  ];
190
48
  return lines.join("\n");
191
49
  };
192
- /** Messages, mail and notes ranked together, with the open tasks that point at a hit and every account read. */
193
- export const searchEverywhere = async (store, env, { text, limit, only, exact, timezone }) => {
194
- const accounts = await store.accounts();
195
- // The shared search names this command only in the model hint, and the model comes from tg.
196
- const messenger = { app: { ...APP, command: "tg" } };
197
- let messageAccounts = [];
198
- const found = await searchAll(store, MEMO, {
199
- text,
200
- limit,
201
- env,
202
- ...(only === undefined ? {} : { only }),
203
- ...(exact ? { exact: true } : {}),
204
- ...(timezone === undefined ? {} : { timezone }),
205
- }, messenger, async (query) => {
206
- const read = await searchStore(store, MEMO, query, messenger);
207
- messageAccounts = read.coverage?.accounts ?? [];
208
- return read;
209
- });
210
- const searched = [];
211
- for (const resource of found.searched) {
212
- if (resource === "messages")
213
- searched.push(...messageAccounts.map(({ provider, account }) => ({ resource, provider, account })));
214
- if (resource === "mail")
215
- searched.push(...accounts
216
- .filter(({ provider }) => provider === "email")
217
- .map(({ provider, account }) => ({ resource, provider, account })));
218
- if (resource === "notes")
219
- searched.push({ resource, provider: "notes", account: "internal" }, ...(await store.notes.folders()).map(({ id }) => ({ resource, provider: "notes", account: id })));
220
- }
221
- const tasks = [];
222
- let tasksIncomplete = false;
223
- const sources = found.items.map((item) => item.ref);
224
- for (const account of accounts) {
225
- const page = await taskPage(store, account, { state: "open", sources, limit: Math.min(limit, 500) });
226
- tasks.push(...page.items.map((task) => ({ ...task, heldBy: account })));
227
- tasksIncomplete ||= page.hasMore;
228
- }
229
- return {
230
- ...found,
231
- accounts: searched,
232
- tasks: tasks.slice(0, limit),
233
- tasksIncomplete: tasksIncomplete || tasks.length > limit,
234
- };
235
- };
236
- /** One kind with all its fields: messenger messages from every messenger, or imported mail. */
237
- export const searchKind = async (store, kind, { text, limit, account, exact, timezone }) => {
238
- const held = (await store.accounts()).some(({ provider }) => provider !== "notes" && (kind === "mail" ? provider === "email" : provider !== "email"));
239
- if (!held)
240
- throw new CliError("not_found", kind === "mail" ? "no imported mail; run memo sync --only mail" : "no stored messenger messages");
241
- return searchStore(store, MEMO, {
242
- text,
243
- kind,
244
- ...(kind === "messages" && !hasSource(parseLucene(text).root) ? { source: "all" } : {}),
245
- limit,
246
- ...(account === undefined ? {} : { mailAccount: account }),
247
- ...(exact ? { exact: true } : {}),
248
- ...(timezone === undefined ? {} : { timezone }),
249
- }, { app: APP });
250
- };
251
- /** The rules and `memo mail status` take an account's name; search takes it too, or the address. */
252
- const mailAddressOf = (env, account) => account.includes("@")
253
- ? account
254
- : (mailAccounts(loadConfig(env).mail?.accounts ?? [], [account])[0]?.address ?? account);
255
50
  const PROJECT_HELP = "rank the key documents of this project (id, key or project:<id>) first, labelled key; nothing is left out";
256
51
  const PROJECT_ORDER_HELP = "rank the key documents of this project (id, key or project:<id>) first; nothing is left out";
257
- const keyRefs = async (store, project) => new Set((await keyDocuments(store, await projectOf(store, project))).map((item) => item.ref));
258
52
  export const searchCommand = (program, streams, env) => {
259
53
  const group = program
260
54
  .command("search")
@@ -274,8 +68,7 @@ export const searchCommand = (program, streams, env) => {
274
68
  .option("--json", "print JSON; --json=id,title keeps only those fields")
275
69
  .option("--brief", "each message or email as reference, time, sender and excerpt only")
276
70
  .option("--full", "each message or email with its whole text; --json keeps the excerpt, messages show the text");
277
- queryOptions(group
278
- .command("all")
71
+ queryOptions(annotate(group.command("all"), { effects: LOCAL_READ, output: { entity: "hit" } })
279
72
  .description("messages, mail and notes ranked together; not people, memories, projects or decisions. A kind you know " +
280
73
  "reads better with its own search, with all its fields")
281
74
  .summary("messages, mail and notes ranked together"))
@@ -293,9 +86,7 @@ content: narrows a search to the text of files, transcript: to voice transcripts
293
86
  ...(options.exact ? { exact: true } : {}),
294
87
  ...(options.timezone === undefined ? {} : { timezone: options.timezone }),
295
88
  });
296
- return options.project === undefined
297
- ? found
298
- : { ...found, items: keyFirst(found.items, await keyRefs(store, options.project)) };
89
+ return { ...found, items: await keyDocumentsFirst(store, found.items, options.project) };
299
90
  });
300
91
  if (!options.json) {
301
92
  streams.diagnostic(`searched: ${answer.accounts.map(({ provider, account }) => `${provider}:${account}`).join(", ") || "nothing"}\n`);
@@ -310,7 +101,7 @@ content: narrows a search to the text of files, transcript: to voice transcripts
310
101
  ].join("\n"));
311
102
  });
312
103
  for (const kind of ["messages", "mail"]) {
313
- const leaf = queryOptions(group.command(kind).description(kind === "mail" ? "imported emails only" : "stored messenger messages only"));
104
+ const leaf = queryOptions(annotate(group.command(kind), { effects: LOCAL_READ, output: { entity: "message", view: "hit" } }).description(kind === "mail" ? "imported emails only" : "stored messenger messages only"));
314
105
  if (kind === "mail")
315
106
  leaf.option("--account <account>", "only this mail account, by its name in mail.accounts or its address (default: every mail account)");
316
107
  leaf.addHelpText("after", kind === "messages"
@@ -337,7 +128,7 @@ Mail sent to many is in the mailbox bulk; NOT mailbox:bulk leaves it out, and bi
337
128
  print(options.json, kindAnswer(kind, answer, options.limit, level, words.join(" ")), answer.items.map((item) => found(item, level)).join("\n"));
338
129
  });
339
130
  }
340
- queryOptions(group.command("notes").description("native notes by words and, with the local model, meaning"))
131
+ queryOptions(annotate(group.command("notes"), { effects: LOCAL_READ, output: { entity: "note", view: "hit" } }).description("native notes by words and, with the local model, meaning"))
341
132
  .addHelpText("after", "\nsource:internal keeps the notes written in memo, source:file the notes from a folder — 'budget source:internal'." +
342
133
  "\n--source notes:<folder id> is different: it chooses which notes accounts are read." +
343
134
  "\ntag: in --filter keeps the notes with that tag and leaves the search by meaning as it is — --filter 'tag:work'." +
@@ -348,21 +139,7 @@ Mail sent to many is in the mailbox bulk; NOT mailbox:bulk leaves it out, and bi
348
139
  .option("--page <n>", "which page, from 1", positive, 1)
349
140
  .option("--project <project>", PROJECT_HELP)
350
141
  .action(async (words, options) => {
351
- const answer = await withStore(env, async (store) => {
352
- const found = await searchNotesOf(store, MEMO, words.join(" "), {
353
- limit: options.limit,
354
- offset: (options.page - 1) * options.limit,
355
- env,
356
- app: APP,
357
- ...(options.filter === undefined ? {} : { filter: options.filter }),
358
- ...(options.source === undefined ? {} : { accounts: options.source }),
359
- ...(options.exact ? { exact: true } : {}),
360
- ...(options.timezone === undefined ? {} : { timezone: options.timezone }),
361
- });
362
- return options.project === undefined
363
- ? found
364
- : { ...found, hits: keyFirst(found.hits, await keyRefs(store, options.project)) };
365
- });
142
+ const answer = await withStore(env, (store) => searchNotes(store, env, words.join(" "), options));
366
143
  if (answer.meaning_skipped && !options.json)
367
144
  streams.diagnostic(`Searched by words only: ${modelHint(answer.meaning_skipped)}\n`);
368
145
  for (const { source, reason } of answer.skipped)
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/search/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/search/command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import { type SearchAllFound, type SearchedResource } from "@wirecat/cli-core/services";
2
+ import type { AccountKey, MessageStore } from "@wirecat/cli-core/store";
3
+ import { type AccountScope } from "../store/scope.js";
4
+ import { taskPage } from "../tasks/context.js";
5
+ export interface EvidenceItem {
6
+ kind: "message" | "note" | "email" | "task";
7
+ locator: string;
8
+ provider: string;
9
+ account: string;
10
+ timestamp: string;
11
+ text: string;
12
+ match: "structured-words" | "note-text" | "task-source";
13
+ source?: string;
14
+ }
15
+ export declare const unifiedSearch: (store: MessageStore, query: string, options: {
16
+ keys: AccountKey[];
17
+ notes?: boolean;
18
+ limit?: number;
19
+ offset?: number;
20
+ noteText?: string;
21
+ }) => Promise<{
22
+ query: string;
23
+ items: EvidenceItem[];
24
+ hasMore: boolean;
25
+ nextOffset?: number;
26
+ incomplete: boolean;
27
+ accounts: AccountKey[];
28
+ coverage: unknown[];
29
+ }>;
30
+ /** Notes are no account's: `--all` takes them with every account, `--provider notes` alone. */
31
+ export declare const searchAccounts: (store: MessageStore, options: AccountScope & {
32
+ all?: boolean;
33
+ }) => Promise<{
34
+ keys: AccountKey[];
35
+ notes: boolean;
36
+ }>;
37
+ export interface QueryInput {
38
+ text: string;
39
+ limit: number;
40
+ exact?: boolean;
41
+ timezone?: string;
42
+ }
43
+ export interface SearchedAccount {
44
+ resource: SearchedResource;
45
+ provider: string;
46
+ account: string;
47
+ }
48
+ interface EverywhereExtras {
49
+ accounts: SearchedAccount[];
50
+ tasks: (Awaited<ReturnType<typeof taskPage>>["items"][number] & {
51
+ heldBy: AccountKey;
52
+ })[];
53
+ tasksIncomplete: boolean;
54
+ }
55
+ /** Messages, mail and notes ranked together, with the open tasks that point at a hit and every account read. */
56
+ export declare const searchEverywhere: (store: MessageStore, env: NodeJS.ProcessEnv, { text, limit, only, exact, timezone }: QueryInput & {
57
+ only?: SearchedResource[];
58
+ }) => Promise<SearchAllFound & EverywhereExtras>;
59
+ /** One kind with all its fields: messenger messages from every messenger, or imported mail. */
60
+ export declare const searchKind: (store: MessageStore, kind: "messages" | "mail", { text, limit, account, exact, timezone }: QueryInput & {
61
+ account?: string;
62
+ }) => Promise<import("@wirecat/cli-core/services").SearchFound>;
63
+ /** The rules and `memo mail status` take an account's name; search takes it too, or the address. */
64
+ export declare const mailAddressOf: (env: NodeJS.ProcessEnv, account: string) => string;
65
+ /** A project's key documents first, labelled key; nothing is left out. */
66
+ export declare const keyDocumentsFirst: <T extends {
67
+ ref: string;
68
+ }>(store: MessageStore, items: T[], project: string | undefined) => Promise<(T & {
69
+ key?: true;
70
+ })[]>;
71
+ export interface NotesQuery {
72
+ limit: number;
73
+ page: number;
74
+ filter?: string;
75
+ source?: string;
76
+ project?: string;
77
+ exact?: boolean;
78
+ timezone?: string;
79
+ }
80
+ export declare const searchNotes: (store: MessageStore, env: NodeJS.ProcessEnv, text: string, options: NotesQuery) => Promise<import("@wirecat/cli-core/services").NotesFoundOf>;
81
+ export {};
82
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/search/search.ts"],"names":[],"mappings":"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"}