@wirecat/cli-core 0.276.0 → 0.278.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 (86) hide show
  1. package/dist/cli/index.d.ts +1 -0
  2. package/dist/cli/index.d.ts.map +1 -1
  3. package/dist/cli/index.js +1 -0
  4. package/dist/cli/index.js.map +1 -1
  5. package/dist/cli/json-fields.d.ts +5 -3
  6. package/dist/cli/json-fields.d.ts.map +1 -1
  7. package/dist/cli/json-fields.js +8 -5
  8. package/dist/cli/json-fields.js.map +1 -1
  9. package/dist/meetings/index.d.ts +2 -0
  10. package/dist/meetings/index.d.ts.map +1 -1
  11. package/dist/meetings/index.js +2 -0
  12. package/dist/meetings/index.js.map +1 -1
  13. package/dist/meetings/preparation-context.d.ts +55 -0
  14. package/dist/meetings/preparation-context.d.ts.map +1 -0
  15. package/dist/meetings/preparation-context.js +25 -0
  16. package/dist/meetings/preparation-context.js.map +1 -0
  17. package/dist/meetings/series-history.d.ts +33 -0
  18. package/dist/meetings/series-history.d.ts.map +1 -0
  19. package/dist/meetings/series-history.js +24 -0
  20. package/dist/meetings/series-history.js.map +1 -0
  21. package/dist/services/index.d.ts +2 -0
  22. package/dist/services/index.d.ts.map +1 -1
  23. package/dist/services/index.js +1 -0
  24. package/dist/services/index.js.map +1 -1
  25. package/dist/services/meeting-preparation-types.d.ts +53 -0
  26. package/dist/services/meeting-preparation-types.d.ts.map +1 -0
  27. package/dist/services/meeting-preparation-types.js +2 -0
  28. package/dist/services/meeting-preparation-types.js.map +1 -0
  29. package/dist/services/meeting-preparation-validation.d.ts +23 -0
  30. package/dist/services/meeting-preparation-validation.d.ts.map +1 -0
  31. package/dist/services/meeting-preparation-validation.js +56 -0
  32. package/dist/services/meeting-preparation-validation.js.map +1 -0
  33. package/dist/services/meeting-preparation.d.ts +7 -0
  34. package/dist/services/meeting-preparation.d.ts.map +1 -0
  35. package/dist/services/meeting-preparation.js +125 -0
  36. package/dist/services/meeting-preparation.js.map +1 -0
  37. package/dist/store/index.d.ts +1 -0
  38. package/dist/store/index.d.ts.map +1 -1
  39. package/dist/store/index.js.map +1 -1
  40. package/dist/store/sqlite/email-index.d.ts +23 -0
  41. package/dist/store/sqlite/email-index.d.ts.map +1 -0
  42. package/dist/store/sqlite/email-index.js +160 -0
  43. package/dist/store/sqlite/email-index.js.map +1 -0
  44. package/dist/store/sqlite/emails.d.ts +10 -1
  45. package/dist/store/sqlite/emails.d.ts.map +1 -1
  46. package/dist/store/sqlite/emails.js +5 -157
  47. package/dist/store/sqlite/emails.js.map +1 -1
  48. package/dist/store/sqlite/mail-rules.d.ts +53 -0
  49. package/dist/store/sqlite/mail-rules.d.ts.map +1 -0
  50. package/dist/store/sqlite/mail-rules.js +80 -0
  51. package/dist/store/sqlite/mail-rules.js.map +1 -0
  52. package/dist/store/sqlite/manifest.d.ts.map +1 -1
  53. package/dist/store/sqlite/manifest.js +1 -0
  54. package/dist/store/sqlite/manifest.js.map +1 -1
  55. package/dist/store/sqlite/meeting-preparation-context.d.ts +4 -0
  56. package/dist/store/sqlite/meeting-preparation-context.d.ts.map +1 -0
  57. package/dist/store/sqlite/meeting-preparation-context.js +50 -0
  58. package/dist/store/sqlite/meeting-preparation-context.js.map +1 -0
  59. package/dist/store/sqlite/meeting-series-history.d.ts +4 -0
  60. package/dist/store/sqlite/meeting-series-history.d.ts.map +1 -0
  61. package/dist/store/sqlite/meeting-series-history.js +67 -0
  62. package/dist/store/sqlite/meeting-series-history.js.map +1 -0
  63. package/dist/store/sqlite/meetings.d.ts +3 -2
  64. package/dist/store/sqlite/meetings.d.ts.map +1 -1
  65. package/dist/store/sqlite/meetings.js +4 -0
  66. package/dist/store/sqlite/meetings.js.map +1 -1
  67. package/dist/store/sqlite/mentions.d.ts.map +1 -1
  68. package/dist/store/sqlite/mentions.js +4 -2
  69. package/dist/store/sqlite/mentions.js.map +1 -1
  70. package/dist/store/sqlite/migrations.generated.d.ts.map +1 -1
  71. package/dist/store/sqlite/migrations.generated.js +8 -0
  72. package/dist/store/sqlite/migrations.generated.js.map +1 -1
  73. package/dist/store/sqlite/preparation-context-queries.d.ts +51 -0
  74. package/dist/store/sqlite/preparation-context-queries.d.ts.map +1 -0
  75. package/dist/store/sqlite/preparation-context-queries.js +51 -0
  76. package/dist/store/sqlite/preparation-context-queries.js.map +1 -0
  77. package/dist/store/sqlite/schema.d.ts +183 -0
  78. package/dist/store/sqlite/schema.d.ts.map +1 -1
  79. package/dist/store/sqlite/schema.js +17 -0
  80. package/dist/store/sqlite/schema.js.map +1 -1
  81. package/dist/store/store.d.ts +2 -3
  82. package/dist/store/store.d.ts.map +1 -1
  83. package/dist/store/store.js +2 -1
  84. package/dist/store/store.js.map +1 -1
  85. package/package.json +1 -1
  86. package/parity.json +8 -24
@@ -0,0 +1,23 @@
1
+ import type { MeetingPreparationRequest } from "./meeting-preparation-types.js";
2
+ export declare const preparationCancelled: (signal?: AbortSignal) => void;
3
+ export declare const preparationRequest: (accountId: number, externalId: string, original: MeetingPreparationRequest) => {
4
+ after: number;
5
+ until: number;
6
+ historyAfter: number;
7
+ signal?: AbortSignal;
8
+ meetings: number;
9
+ cues: number;
10
+ contextLimit: number;
11
+ bytes: number;
12
+ maxReadBytes: number;
13
+ history: {
14
+ accountId: number;
15
+ externalId: string;
16
+ after: number;
17
+ before: number;
18
+ signal?: AbortSignal;
19
+ limit: number;
20
+ maxReadBytes: number;
21
+ };
22
+ };
23
+ //# sourceMappingURL=meeting-preparation-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meeting-preparation-validation.d.ts","sourceRoot":"","sources":["../../src/services/meeting-preparation-validation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAE/E,eAAO,MAAM,oBAAoB,YAAa,WAAW,KAAG,IAO3D,CAAA;AACD,eAAO,MAAM,kBAAkB,cAAe,MAAM,cAAc,MAAM,YAAY,yBAAyB;;;;;;;;;;;;;;;;;;;CA8C5G,CAAA"}
@@ -0,0 +1,56 @@
1
+ import { CliError } from "@wirecat/cli-base";
2
+ import { validateMeetingSeriesHistory } from "../meetings/index.js";
3
+ export const preparationCancelled = (signal) => {
4
+ if (!signal?.aborted)
5
+ return;
6
+ if (signal.reason instanceof CliError)
7
+ throw signal.reason;
8
+ throw new CliError(signal.reason instanceof Error && signal.reason.name === "TimeoutError" ? "timeout" : "cancelled", "Meeting preparation was interrupted");
9
+ };
10
+ export const preparationRequest = (accountId, externalId, original) => {
11
+ if (!original || typeof original !== "object" || Array.isArray(original))
12
+ throw new CliError("validation_error", "meeting preparation request is required");
13
+ const input = { ...original };
14
+ for (const key of Object.keys(input))
15
+ if (![
16
+ "after",
17
+ "until",
18
+ "historyAfter",
19
+ "meetings",
20
+ "cues",
21
+ "contextLimit",
22
+ "maxReadBytes",
23
+ "bytes",
24
+ "signal",
25
+ ].includes(key))
26
+ throw new CliError("validation_error", `unknown preparation field: ${key}`);
27
+ if (input.signal !== undefined && !(input.signal instanceof AbortSignal))
28
+ throw new CliError("validation_error", "signal must be an AbortSignal");
29
+ preparationCancelled(input.signal);
30
+ const bounded = (value, fallback, max, name) => {
31
+ const result = value === undefined ? fallback : value;
32
+ if (!Number.isSafeInteger(result) || result < 1 || result > max)
33
+ throw new CliError("validation_error", `${name} must be an integer from 1 to ${max}`);
34
+ return result;
35
+ };
36
+ const meetings = bounded(input.meetings, 5, 20, "meetings");
37
+ const cues = bounded(input.cues, 10, 100, "cues");
38
+ const contextLimit = bounded(input.contextLimit, 20, 100, "contextLimit");
39
+ const bytes = bounded(input.bytes, 65536, 4194304, "bytes");
40
+ if (bytes < 4096)
41
+ throw new CliError("validation_error", "bytes must be at least 4096");
42
+ const history = validateMeetingSeriesHistory({
43
+ accountId,
44
+ externalId,
45
+ after: input.historyAfter,
46
+ before: input.after,
47
+ limit: meetings,
48
+ maxReadBytes: input.maxReadBytes,
49
+ signal: input.signal,
50
+ });
51
+ if (!Number.isSafeInteger(input.until) || Math.abs(input.until) > 8640000000000000 || input.until <= input.after)
52
+ throw new CliError("validation_error", "until must be an absolute timestamp later than after");
53
+ preparationCancelled(input.signal);
54
+ return { ...input, meetings, cues, contextLimit, bytes, maxReadBytes: history.maxReadBytes, history };
55
+ };
56
+ //# sourceMappingURL=meeting-preparation-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meeting-preparation-validation.js","sourceRoot":"","sources":["../../src/services/meeting-preparation-validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { type MeetingProviderScope } from "../meetings/index.js";
2
+ import type { MeetingPreparation, MeetingPreparationPorts, MeetingPreparationRequest } from "./meeting-preparation-types.js";
3
+ export declare const createMeetingPreparationService: (scope: MeetingProviderScope, accountId: number, ports: MeetingPreparationPorts) => {
4
+ scope: Readonly<MeetingProviderScope>;
5
+ prepare(externalId: string, original: MeetingPreparationRequest): Promise<MeetingPreparation>;
6
+ };
7
+ //# sourceMappingURL=meeting-preparation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meeting-preparation.d.ts","sourceRoot":"","sources":["../../src/services/meeting-preparation.ts"],"names":[],"mappings":"AACA,OAAO,EAA0B,KAAK,oBAAoB,EAAwB,MAAM,sBAAsB,CAAA;AAE9G,OAAO,KAAK,EACV,kBAAkB,EAClB,uBAAuB,EACvB,yBAAyB,EAC1B,MAAM,gCAAgC,CAAA;AAKvC,eAAO,MAAM,+BAA+B,UACnC,oBAAoB,aAChB,MAAM,SACV,uBAAuB;IA2B5B,KAAK;IACC,OAAO,aAAa,MAAM,YAAY,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAiGtG,CAAA"}
@@ -0,0 +1,125 @@
1
+ import { CliError } from "@wirecat/cli-base";
2
+ import { formatMeetingReference, snapshotMeetingScope } from "../meetings/index.js";
3
+ import { readMeetingEvidence } from "./meeting-evidence.js";
4
+ import { preparationCancelled, preparationRequest } from "./meeting-preparation-validation.js";
5
+ const size = (value) => Buffer.byteLength(JSON.stringify(value), "utf8");
6
+ export const createMeetingPreparationService = (scope, accountId, ports) => {
7
+ const fixed = snapshotMeetingScope(scope);
8
+ if (!Number.isSafeInteger(accountId) || accountId < 1)
9
+ throw new CliError("validation_error", "accountId must be a positive safe integer");
10
+ const store = ports?.meetings;
11
+ if (!store ||
12
+ [
13
+ "account",
14
+ "seriesHistory",
15
+ "preparationContext",
16
+ "meetingMetadata",
17
+ "transcriptMetadata",
18
+ "transcripts",
19
+ "transcriptRows",
20
+ ].some((key) => typeof store[key] !== "function") ||
21
+ typeof ports?.upcoming?.next !== "function")
22
+ throw new CliError("configuration_error", "Meeting preparation requires bounded meeting reads and an upcoming reader");
23
+ if (ports.upcoming.scope?.provider !== fixed.provider || ports.upcoming.scope?.account !== fixed.account)
24
+ throw new CliError("configuration_error", "The upcoming reader belongs to another provider or account");
25
+ const next = ports.upcoming.next.bind(ports.upcoming);
26
+ return {
27
+ scope: fixed,
28
+ async prepare(externalId, original) {
29
+ const input = preparationRequest(accountId, externalId, original);
30
+ const { signal, meetings, cues, contextLimit, maxReadBytes, bytes } = input;
31
+ const owner = await store.account(accountId);
32
+ preparationCancelled(signal);
33
+ if (!owner || owner.provider !== fixed.provider || owner.account !== fixed.account)
34
+ throw new CliError("not_found", "The selected meeting account is unavailable");
35
+ const upcoming = await next(externalId, { after: input.after, until: input.until, maxReadBytes, signal });
36
+ preparationCancelled(signal);
37
+ if (upcoming.scope.provider !== fixed.provider ||
38
+ upcoming.scope.account !== fixed.account ||
39
+ upcoming.meetingId !== externalId ||
40
+ upcoming.after !== input.after ||
41
+ upcoming.until !== input.until)
42
+ throw new CliError("invalid_response", "The upcoming reader returned another selection");
43
+ const history = await store.seriesHistory(input.history);
44
+ preparationCancelled(signal);
45
+ const result = {
46
+ schemaVersion: 1,
47
+ accountId,
48
+ upcoming,
49
+ series: history.series,
50
+ historyWindow: { after: input.historyAfter, before: input.after },
51
+ items: [],
52
+ limits: { meetings, cues, contextLimit, maxReadBytes, bytes },
53
+ coverage: {
54
+ archiveCompleteness: "unknown",
55
+ consistency: "live-reads",
56
+ historyHasMore: history.hasMore,
57
+ hasUndated: history.hasUndated,
58
+ skippedUnavailable: [],
59
+ outputLimited: false,
60
+ context: "observed-participants/confirmed-projects/accepted-meeting-subject-facts/direct-source-tasks",
61
+ factEvidence: "not-revalidated",
62
+ unqueried: ["person-history", "project-wide-context", "project-alias-candidates"],
63
+ },
64
+ };
65
+ if (history.items.length > meetings ||
66
+ (history.items.length && !history.series) ||
67
+ (history.series && history.series.externalId !== externalId))
68
+ throw new CliError("invalid_response", "The history reader returned another series or exceeded its bound");
69
+ if (size(result) > bytes)
70
+ throw new CliError("validation_error", "Preparation metadata exceeds bytes; increase the output budget");
71
+ if (!history.series)
72
+ return structuredClone(result);
73
+ const seriesId = history.series.id;
74
+ for (const meeting of history.items) {
75
+ preparationCancelled(signal);
76
+ const reference = formatMeetingReference({ type: "meeting", accountId, meetingId: meeting.id });
77
+ if (meeting.startedAt === null || meeting.startedAt < input.historyAfter || meeting.startedAt >= input.after)
78
+ throw new CliError("invalid_response", "A history entry is outside the selected window");
79
+ const remaining = bytes - size(result) - 512;
80
+ if (remaining < 2) {
81
+ result.coverage.outputLimited = true;
82
+ break;
83
+ }
84
+ try {
85
+ const evidence = await readMeetingEvidence(store, accountId, reference, {
86
+ cues,
87
+ bytes: remaining,
88
+ maxReadBytes,
89
+ maxTranscriptPages: 2,
90
+ signal,
91
+ });
92
+ preparationCancelled(signal);
93
+ const context = await store.preparationContext({
94
+ accountId,
95
+ meetingId: meeting.id,
96
+ seriesId,
97
+ updatedAt: meeting.updatedAt,
98
+ limit: contextLimit,
99
+ maxReadBytes,
100
+ signal,
101
+ });
102
+ preparationCancelled(signal);
103
+ const entry = { reference, meeting, evidence, context };
104
+ result.items.push(entry);
105
+ if (size(result) > bytes) {
106
+ result.items.pop();
107
+ result.coverage.outputLimited = true;
108
+ break;
109
+ }
110
+ }
111
+ catch (error) {
112
+ preparationCancelled(signal);
113
+ if (!(error instanceof CliError) || error.code !== "not_found")
114
+ throw error;
115
+ result.coverage.skippedUnavailable.push(reference);
116
+ }
117
+ }
118
+ preparationCancelled(signal);
119
+ if (size(result) > bytes)
120
+ throw new CliError("validation_error", "Preparation coverage exceeds bytes; increase the output budget");
121
+ return structuredClone(result);
122
+ },
123
+ };
124
+ };
125
+ //# sourceMappingURL=meeting-preparation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meeting-preparation.js","sourceRoot":"","sources":["../../src/services/meeting-preparation.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@ export { FACT_STATUSES, FACT_TYPES } from "./sqlite/facts.js";
17
17
  export type { Involvement, InvolvementStore } from "./sqlite/involvements.js";
18
18
  export type { Annotation, KnowledgeRelation, KnowledgeStore, KnowledgeTarget, LabelledType, Organization, Project, Reminder, } from "./sqlite/knowledge.js";
19
19
  export { ORGANIZATION_KINDS, PROJECT_TYPES, SCOPES } from "./sqlite/knowledge.js";
20
+ export type { MailRule, MailRuleCount, MailRuleInput, MailRulesStore } from "./sqlite/mail-rules.js";
20
21
  export type { MeetingProjectLink, MeetingProjectsStore } from "./sqlite/meeting-projects.js";
21
22
  export type { MeetingContextReadCapabilities, MeetingReadCapabilities, MeetingReadScope, TranscriptContextInput, TranscriptContextPage, TranscriptPage, TranscriptReadScope, TranscriptRowPage, } from "./sqlite/meeting-reads.js";
22
23
  export type { MeetingVectorHit, MeetingVectors } from "./sqlite/meeting-vectors.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACpF,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACxF,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,KAAK,SAAS,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AACjG,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC/E,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAC/G,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,YAAY,EACV,KAAK,EACL,YAAY,EACZ,eAAe,EACf,WAAW,EACX,UAAU,EACV,aAAa,EACb,cAAc,EACd,QAAQ,EACR,WAAW,EACX,cAAc,EACd,OAAO,EACP,YAAY,EACZ,UAAU,EACV,SAAS,EACT,aAAa,EACb,UAAU,GACX,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACpE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC7D,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC7E,YAAY,EACV,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,QAAQ,GACT,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AACjF,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACpG,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAC5F,YAAY,EACV,8BAA8B,EAC9B,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,2BAA2B,CAAA;AAClC,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AACnF,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACtF,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACnF,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EACL,KAAK,WAAW,EAChB,WAAW,EACX,KAAK,gBAAgB,EACrB,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,UAAU,GAChB,MAAM,yBAAyB,CAAA;AAChC,YAAY,EACV,aAAa,EACb,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,UAAU,EACV,UAAU,EACV,OAAO,GACR,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpF,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACvG,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,gBAAgB,GACjB,MAAM,0BAA0B,CAAA;AACjC,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AACrF,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACvD,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpG,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AACvD,YAAY,EACV,YAAY,EACZ,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,GACjB,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EACV,WAAW,EACX,cAAc,EACd,WAAW,EACX,SAAS,EACT,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,YAAY,GACb,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAClG,OAAO,EACL,KAAK,UAAU,EACf,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,KAAK,EACV,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,SAAS,EACT,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,KAAK,EACV,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,UAAU,GAChB,MAAM,YAAY,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAkB,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAG/E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAqBnD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAY7D,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAejF,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEnF,OAAO,EAEL,WAAW,GAKZ,MAAM,yBAAyB,CAAA;AAYhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EACL,eAAe,EACf,gBAAgB,EAGhB,gBAAgB,GACjB,MAAM,0BAA0B,CAAA;AAIjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AA0BhE,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAClG,OAAO,EAeL,SAAS,GAqBV,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/store/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrC,OAAO,EAAE,UAAU,EAAkB,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAG/E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAqBnD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAY7D,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAgBjF,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEnF,OAAO,EAEL,WAAW,GAKZ,MAAM,yBAAyB,CAAA;AAYhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EACL,eAAe,EACf,gBAAgB,EAGhB,gBAAgB,GACjB,MAAM,0BAA0B,CAAA;AAIjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AA0BhE,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAClG,OAAO,EAeL,SAAS,GAqBV,MAAM,YAAY,CAAA"}
@@ -0,0 +1,23 @@
1
+ import { type Chunk } from "../../conversations/chunks.js";
2
+ import type { Stemmer, Stemmers } from "../../search/stem.js";
3
+ import type { CacheDatabase } from "../driver.js";
4
+ export declare const titleOf: (subject: string | null) => string | null;
5
+ /**
6
+ * Every piece of mail: a stretch of a thread, or of one email's attachment. A thread piece holds no email of its
7
+ * own; `threadPieces` cuts the thread again to find which emails it spans.
8
+ */
9
+ export declare const MAIL_PIECES = "(SELECT k.id, k.content_hash, k.chunkable_type AS type, k.chunkable_id AS owner, k.position,\n k.start_offset, k.end_offset, k.account_id, k.occurred_at, a.attachable_id AS email_id,\n CASE k.chunkable_type WHEN 'email_thread' THEN k.chunkable_id\n ELSE (SELECT email_thread_id FROM emails WHERE id = a.attachable_id) END AS thread_id\n FROM chunks k LEFT JOIN attachments a ON k.chunkable_type = 'attachment' AND a.id = k.chunkable_id\n AND a.attachable_type = 'email'\n WHERE k.chunkable_type = 'email_thread' OR a.id IS NOT NULL) p";
10
+ /**
11
+ * A thread's pieces, email by email: a piece never spans two emails, so a hit names the email that holds it
12
+ * (bench/mail-quality). A new reply adds its own pieces; every earlier one keeps its hash and so its vector.
13
+ */
14
+ export declare const threadPieces: (database: CacheDatabase, threadId: number) => Chunk[];
15
+ export declare const queueThreads: (database: CacheDatabase, ids: Iterable<number>) => void;
16
+ /** Drops the pieces of an email's attachment texts; answers their hashes, for `purgeUnused` once new ones are in. */
17
+ export declare const dropAttachmentChunks: (database: CacheDatabase, emailId: number) => string[];
18
+ /** Vectors are keyed by text alone, so one goes only when no piece of anything holds that text any more. */
19
+ export declare const purgeUnused: (database: CacheDatabase, hashes: string[]) => void;
20
+ /** Each attachment's extracted text, in pieces for search by meaning, as an email's own text is. */
21
+ export declare const chunkAttachments: (database: CacheDatabase, accountId: number, emailId: number, now: number) => void;
22
+ export declare const drainEmailIndex: (database: CacheDatabase, stemmerFor: (stemmers: Stemmers) => Stemmer) => number;
23
+ //# sourceMappingURL=email-index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-index.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/email-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,KAAK,EAAmD,MAAM,+BAA+B,CAAA;AAExH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAKjD,eAAO,MAAM,OAAO,YAAa,MAAM,GAAG,IAAI,KAAG,MAAM,GAAG,IACa,CAAA;AAEvE;;;GAGG;AACH,eAAO,MAAM,WAAW,gjBAM0C,CAAA;AA8BlE;;;GAGG;AACH,eAAO,MAAM,YAAY,aAAc,aAAa,YAAY,MAAM,KAAG,KAAK,EAC7B,CAAA;AAoCjD,eAAO,MAAM,YAAY,aAAc,aAAa,OAAO,QAAQ,CAAC,MAAM,CAAC,SAK1E,CAAA;AAID,qHAAqH;AACrH,eAAO,MAAM,oBAAoB,aAAc,aAAa,WAAW,MAAM,KAAG,MAAM,EAWrF,CAAA;AAED,4GAA4G;AAC5G,eAAO,MAAM,WAAW,aAAc,aAAa,UAAU,MAAM,EAAE,SAKpE,CAAA;AAED,oGAAoG;AACpG,eAAO,MAAM,gBAAgB,aAAc,aAAa,aAAa,MAAM,WAAW,MAAM,OAAO,MAAM,SA6BxG,CAAA;AAKD,eAAO,MAAM,eAAe,aAAc,aAAa,cAAc,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,KAAG,MA+DtG,CAAA"}
@@ -0,0 +1,160 @@
1
+ import { CHUNK_CHARS, chunkHash, cutChunks, splitText } from "../../conversations/chunks.js";
2
+ import { mailCore } from "../../conversations/mail-text.js";
3
+ import { int, str } from "./events.js";
4
+ import { CORPORA, drainCorpus } from "./note-index.js";
5
+ import { inBatch } from "./search-index.js";
6
+ export const titleOf = (subject) => subject?.replace(/^\s*((re|fwd?|aw|wg)\s*:\s*)+/i, "").trim() || null;
7
+ /**
8
+ * Every piece of mail: a stretch of a thread, or of one email's attachment. A thread piece holds no email of its
9
+ * own; `threadPieces` cuts the thread again to find which emails it spans.
10
+ */
11
+ export const MAIL_PIECES = `(SELECT k.id, k.content_hash, k.chunkable_type AS type, k.chunkable_id AS owner, k.position,
12
+ k.start_offset, k.end_offset, k.account_id, k.occurred_at, a.attachable_id AS email_id,
13
+ CASE k.chunkable_type WHEN 'email_thread' THEN k.chunkable_id
14
+ ELSE (SELECT email_thread_id FROM emails WHERE id = a.attachable_id) END AS thread_id
15
+ FROM chunks k LEFT JOIN attachments a ON k.chunkable_type = 'attachment' AND a.id = k.chunkable_id
16
+ AND a.attachable_type = 'email'
17
+ WHERE k.chunkable_type = 'email_thread' OR a.id IS NOT NULL) p`;
18
+ /** A thread's live emails, oldest first, each as what it adds: its subject, then its own text. */
19
+ const threadText = (database, threadId) => {
20
+ const rows = database
21
+ .prepare(`SELECT id, subject, coalesce(body_text, '') AS body, coalesce(from_name, from_address) AS sender,
22
+ coalesce(received_at, sent_at) AS at
23
+ FROM emails WHERE email_thread_id = ? AND deleted_at IS NULL ORDER BY coalesce(sent_at, received_at), id`)
24
+ .all(threadId);
25
+ const earlier = [];
26
+ const at = new Map();
27
+ const lines = rows.map((row) => {
28
+ const body = String(row.body);
29
+ const core = mailCore(body, earlier);
30
+ earlier.push(body);
31
+ const subject = titleOf(str(row.subject));
32
+ const text = subject ? `${subject}\n\n${core}` : core;
33
+ at.set(String(row.id), int(row.at) ?? null);
34
+ return { id: String(row.id), sender: str(row.sender), text };
35
+ });
36
+ return { lines, at };
37
+ };
38
+ /**
39
+ * A thread's pieces, email by email: a piece never spans two emails, so a hit names the email that holds it
40
+ * (bench/mail-quality). A new reply adds its own pieces; every earlier one keeps its hash and so its vector.
41
+ */
42
+ export const threadPieces = (database, threadId) => cutThread(threadText(database, threadId).lines);
43
+ /** The one cut of a thread: what is stored, what is embedded and what a hit is read back from must agree. */
44
+ const cutThread = (lines) => lines.flatMap((line) => cutChunks([line], CHUNK_CHARS));
45
+ const chunkThread = (database, threadId, now) => {
46
+ const before = database
47
+ .prepare("SELECT content_hash AS hash FROM chunks WHERE chunkable_type = 'email_thread' AND chunkable_id = ?")
48
+ .all(threadId)
49
+ .map(({ hash }) => String(hash));
50
+ database.prepare("DELETE FROM chunks WHERE chunkable_type = 'email_thread' AND chunkable_id = ?").run(threadId);
51
+ const thread = database
52
+ .prepare("SELECT t.account_id, a.scope FROM email_threads t JOIN accounts a ON a.id = t.account_id WHERE t.id = ?")
53
+ .get(threadId);
54
+ if (thread) {
55
+ const { lines, at } = threadText(database, threadId);
56
+ const insert = database.prepare(`INSERT INTO chunks (chunkable_type, chunkable_id, position, start_offset, end_offset, content_hash, scope, account_id,
57
+ occurred_at, created_at, updated_at) VALUES ('email_thread', ?, ?, 0, ?, ?, ?, ?, ?, ?, ?)`);
58
+ for (const [position, piece] of cutThread(lines).entries())
59
+ insert.run(threadId, position, piece.text.length, piece.hash, str(thread.scope), Number(thread.account_id), at.get(piece.lastId) ?? null, now, now);
60
+ }
61
+ purgeUnused(database, before);
62
+ };
63
+ export const queueThreads = (database, ids) => {
64
+ const queue = database.prepare("INSERT OR IGNORE INTO email_index_pending (indexable_type, id) VALUES ('email_thread', ?)");
65
+ for (const id of ids)
66
+ queue.run(id);
67
+ };
68
+ const ATTACHMENTS_OF_EMAIL = "SELECT id FROM attachments WHERE attachable_type = 'email' AND attachable_id = ?";
69
+ /** Drops the pieces of an email's attachment texts; answers their hashes, for `purgeUnused` once new ones are in. */
70
+ export const dropAttachmentChunks = (database, emailId) => {
71
+ const hashes = database
72
+ .prepare(`SELECT content_hash AS hash FROM chunks WHERE chunkable_type = 'attachment' AND chunkable_id IN (${ATTACHMENTS_OF_EMAIL})`)
73
+ .all(emailId)
74
+ .map(({ hash }) => String(hash));
75
+ database
76
+ .prepare(`DELETE FROM chunks WHERE chunkable_type = 'attachment' AND chunkable_id IN (${ATTACHMENTS_OF_EMAIL})`)
77
+ .run(emailId);
78
+ return hashes;
79
+ };
80
+ /** Vectors are keyed by text alone, so one goes only when no piece of anything holds that text any more. */
81
+ export const purgeUnused = (database, hashes) => {
82
+ const purge = database.prepare("DELETE FROM embeddings WHERE content_hash = ? AND NOT EXISTS (SELECT 1 FROM chunks WHERE content_hash = ?)");
83
+ for (const hash of new Set(hashes))
84
+ purge.run(hash, hash);
85
+ };
86
+ /** Each attachment's extracted text, in pieces for search by meaning, as an email's own text is. */
87
+ export const chunkAttachments = (database, accountId, emailId, now) => {
88
+ const email = database
89
+ .prepare("SELECT a.scope, coalesce(e.received_at, e.sent_at) AS at FROM emails e JOIN accounts a ON a.id = e.account_id WHERE e.id = ?")
90
+ .get(emailId);
91
+ const insert = database.prepare(`INSERT INTO chunks (chunkable_type, chunkable_id, position, start_offset, end_offset, content_hash, scope, account_id,
92
+ occurred_at, created_at, updated_at) VALUES ('attachment', ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`);
93
+ const files = database
94
+ .prepare("SELECT id, text FROM attachments WHERE attachable_type = 'email' AND attachable_id = ? AND text <> ''")
95
+ .all(emailId);
96
+ for (const file of files) {
97
+ const text = String(file.text);
98
+ for (const [position, { start, end }] of splitText(text, CHUNK_CHARS).entries())
99
+ insert.run(Number(file.id), position, start, end, chunkHash(text.slice(start, end)), str(email?.scope), accountId, int(email?.at), now, now);
100
+ }
101
+ };
102
+ const MAIL_CUT = "mail_pieces_cut";
103
+ const CUT = "email";
104
+ export const drainEmailIndex = (database, stemmerFor) => {
105
+ // Mail was once cut without cleaning, then across the emails of a thread; a store cut either way is cut again.
106
+ if (database.prepare("SELECT value FROM store_settings WHERE key = ?").get(MAIL_CUT)?.value !== CUT)
107
+ inBatch(database, () => {
108
+ const single = database
109
+ .prepare("SELECT DISTINCT content_hash AS hash FROM chunks WHERE chunkable_type = 'email'")
110
+ .all()
111
+ .map(({ hash }) => String(hash));
112
+ database.prepare("DELETE FROM chunks WHERE chunkable_type = 'email'").run();
113
+ queueThreads(database, database
114
+ .prepare("SELECT id FROM email_threads")
115
+ .all()
116
+ .map(({ id }) => Number(id)));
117
+ purgeUnused(database, single);
118
+ database
119
+ .prepare("INSERT OR REPLACE INTO store_settings (key, value, at) VALUES (?, ?, ?)")
120
+ .run(MAIL_CUT, CUT, Date.now());
121
+ });
122
+ database
123
+ .prepare(`INSERT OR IGNORE INTO email_index_pending (indexable_type, id)
124
+ SELECT DISTINCT 'email_thread', e.email_thread_id FROM email_index_pending q JOIN emails e ON e.id = q.id
125
+ WHERE q.indexable_type = 'email' AND e.email_thread_id IS NOT NULL`)
126
+ .run();
127
+ // Attachments saved before their text was cut into pieces get them here, once.
128
+ const unchunked = database
129
+ .prepare(`SELECT DISTINCT e.id, e.account_id FROM attachments a JOIN emails e ON a.attachable_type = 'email' AND e.id = a.attachable_id
130
+ WHERE a.text <> '' AND e.deleted_at IS NULL
131
+ AND NOT EXISTS (SELECT 1 FROM chunks k WHERE k.chunkable_type = 'attachment' AND k.chunkable_id = a.id)`)
132
+ .all();
133
+ if (unchunked.length)
134
+ inBatch(database, () => {
135
+ for (const row of unchunked) {
136
+ const before = dropAttachmentChunks(database, Number(row.id));
137
+ chunkAttachments(database, Number(row.account_id), Number(row.id), Date.now());
138
+ purgeUnused(database, before);
139
+ }
140
+ });
141
+ const emails = drainCorpus(database, CORPORA.email, stemmerFor);
142
+ const next = database.prepare("SELECT id FROM email_index_pending WHERE indexable_type = 'email_thread' ORDER BY id LIMIT 50");
143
+ const done = database.prepare("DELETE FROM email_index_pending WHERE indexable_type = 'email_thread' AND id = ?");
144
+ let threads = 0;
145
+ for (;;) {
146
+ const count = inBatch(database, () => {
147
+ const ids = next.all().map(({ id }) => Number(id));
148
+ for (const id of ids) {
149
+ chunkThread(database, id, Date.now());
150
+ done.run(id);
151
+ }
152
+ return ids.length;
153
+ });
154
+ if (count === 0)
155
+ break;
156
+ threads += count;
157
+ }
158
+ return emails + threads;
159
+ };
160
+ //# sourceMappingURL=email-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-index.js","sourceRoot":"","sources":["../../../src/store/sqlite/email-index.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import type { Attachment, Metadata } from "../../meetings/index.js";
3
3
  import type { Stemmer, Stemmers } from "../../search/stem.js";
4
4
  import type { CacheDatabase } from "../driver.js";
5
5
  import type { ConversationSummary, StoredHit } from "../store.js";
6
+ import { type MailRulesStore } from "./mail-rules.js";
6
7
  import { type AttachmentInput } from "./meetings.js";
7
8
  import type { StoreContext } from "./open.js";
8
9
  export interface EmailAddress {
@@ -38,6 +39,8 @@ export interface EmailInput {
38
39
  size?: number | null;
39
40
  headers?: Metadata;
40
41
  metadata?: Metadata;
42
+ /** The `mail_rules` row that decided how this email is stored; `null` clears it. */
43
+ mailRuleId?: number | null;
41
44
  /** Added to the mailboxes the email is already in; one scan sees one folder, so none is taken away. */
42
45
  mailboxes?: MailboxInput[];
43
46
  /** Replaced when given; the text is word-indexed. */
@@ -104,6 +107,7 @@ export interface Email {
104
107
  size: number | null;
105
108
  headers: Metadata;
106
109
  metadata: Metadata;
110
+ mailRuleId: number | null;
107
111
  recipients: EmailRecipient[];
108
112
  mailboxes: Mailbox[];
109
113
  attachments: EmailAttachment[];
@@ -206,11 +210,16 @@ export interface MailStore {
206
210
  threadExternalId?: string;
207
211
  since?: number;
208
212
  }): Promise<EmailVectorHit[]>;
213
+ /** The account's mail rules, and which rule decided each email. */
214
+ readonly rules: MailRulesStore;
209
215
  }
210
216
  /** An email as a message of its thread, the shape mail had when it was stored as messages. */
211
217
  export declare const messageOfEmail: (email: Email, thread: string) => Message;
212
218
  /** Emails as search hits, in the order of `pks`: the thread is the chat, so a hit's locator is the one mail had as messages. */
213
219
  export declare const emailHitsByPk: (database: CacheDatabase, pks: number[]) => StoredHit[];
214
- export declare const drainEmailIndex: (database: CacheDatabase, stemmerFor: (stemmers: Stemmers) => Stemmer) => number;
220
+ /**
221
+ * Indexes the queued emails as the notes are indexed, words and stems of the subject, then the body; then cuts
222
+ * the threads they belong to into pieces for search by meaning.
223
+ */
215
224
  export declare const mailStoreOver: ({ database, orm }: Pick<StoreContext, "database" | "orm">, stemmerFor?: (stemmers: Stemmers) => Stemmer) => MailStore;
216
225
  //# sourceMappingURL=emails.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"emails.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/emails.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emails.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/emails.ts"],"names":[],"mappings":"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"}