@wirecat/cli-core 0.283.0 → 0.285.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/attachments/markup.d.ts.map +1 -1
- package/dist/attachments/markup.js +54 -19
- package/dist/attachments/markup.js.map +1 -1
- package/dist/background/units.d.ts.map +1 -1
- package/dist/background/units.js +1 -0
- package/dist/background/units.js.map +1 -1
- package/dist/cli/config-command.d.ts.map +1 -1
- package/dist/cli/config-command.js +7 -1
- package/dist/cli/config-command.js.map +1 -1
- package/dist/cli/index.d.ts +3 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +3 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/list-query.d.ts +9 -2
- package/dist/cli/list-query.d.ts.map +1 -1
- package/dist/cli/list-query.js +39 -13
- package/dist/cli/list-query.js.map +1 -1
- package/dist/cli/meeting-preparation-answer.d.ts +61 -1
- package/dist/cli/meeting-preparation-answer.d.ts.map +1 -1
- package/dist/cli/meeting-preparation-answer.js +39 -20
- package/dist/cli/meeting-preparation-answer.js.map +1 -1
- package/dist/cli/meeting-preparation-command.js +1 -1
- package/dist/cli/meeting-preparation-command.js.map +1 -1
- package/dist/cli/meeting-preparation-read.d.ts +61 -1
- package/dist/cli/meeting-preparation-read.d.ts.map +1 -1
- package/dist/cli/messenger/backfill-command.d.ts.map +1 -1
- package/dist/cli/messenger/backfill-command.js +17 -6
- package/dist/cli/messenger/backfill-command.js.map +1 -1
- package/dist/cli/messenger/mention-points.d.ts +13 -0
- package/dist/cli/messenger/mention-points.d.ts.map +1 -0
- package/dist/cli/messenger/mention-points.js +31 -0
- package/dist/cli/messenger/mention-points.js.map +1 -0
- package/dist/cli/messenger/mentions-command.d.ts.map +1 -1
- package/dist/cli/messenger/mentions-command.js +54 -6
- package/dist/cli/messenger/mentions-command.js.map +1 -1
- package/dist/cli/messenger/messages-search-command.d.ts +2 -3
- package/dist/cli/messenger/messages-search-command.d.ts.map +1 -1
- package/dist/cli/messenger/messages-search-command.js +24 -54
- package/dist/cli/messenger/messages-search-command.js.map +1 -1
- package/dist/cli/messenger/review.js +2 -1
- package/dist/cli/messenger/review.js.map +1 -1
- package/dist/cli/messenger/search-answers.d.ts +3 -0
- package/dist/cli/messenger/search-answers.d.ts.map +1 -1
- package/dist/cli/messenger/search-answers.js +2 -0
- package/dist/cli/messenger/search-answers.js.map +1 -1
- package/dist/cli/messenger/search-command.d.ts.map +1 -1
- package/dist/cli/messenger/search-command.js +15 -15
- package/dist/cli/messenger/search-command.js.map +1 -1
- package/dist/cli/messenger/serve-command.js +3 -2
- package/dist/cli/messenger/serve-command.js.map +1 -1
- package/dist/cli/messenger/store-maintenance-command.d.ts +1 -1
- package/dist/cli/messenger/tasks-command.d.ts.map +1 -1
- package/dist/cli/messenger/tasks-command.js +107 -9
- package/dist/cli/messenger/tasks-command.js.map +1 -1
- package/dist/cli/moved.d.ts +13 -0
- package/dist/cli/moved.d.ts.map +1 -0
- package/dist/cli/moved.js +18 -0
- package/dist/cli/moved.js.map +1 -0
- package/dist/cli/program.d.ts.map +1 -1
- package/dist/cli/program.js +16 -0
- package/dist/cli/program.js.map +1 -1
- package/dist/cli/reasons.d.ts.map +1 -1
- package/dist/cli/reasons.js +3 -0
- package/dist/cli/reasons.js.map +1 -1
- package/dist/cli/steps.d.ts.map +1 -1
- package/dist/cli/steps.js +12 -0
- package/dist/cli/steps.js.map +1 -1
- package/dist/cli/store-settings.d.ts +8 -0
- package/dist/cli/store-settings.d.ts.map +1 -1
- package/dist/cli/store-settings.js +91 -4
- package/dist/cli/store-settings.js.map +1 -1
- package/dist/domain/mentions.d.ts +28 -2
- package/dist/domain/mentions.d.ts.map +1 -1
- package/dist/domain/mentions.js +79 -26
- package/dist/domain/mentions.js.map +1 -1
- package/dist/domain/models.d.ts +1 -0
- package/dist/domain/models.d.ts.map +1 -1
- package/dist/domain/phone-plans.generated.d.ts +331 -0
- package/dist/domain/phone-plans.generated.d.ts.map +1 -0
- package/dist/domain/phone-plans.generated.js +381 -0
- package/dist/domain/phone-plans.generated.js.map +1 -0
- package/dist/domain/phones.d.ts +23 -0
- package/dist/domain/phones.d.ts.map +1 -0
- package/dist/domain/phones.js +53 -0
- package/dist/domain/phones.js.map +1 -0
- package/dist/domain/task-categories.d.ts +25 -0
- package/dist/domain/task-categories.d.ts.map +1 -0
- package/dist/domain/task-categories.js +155 -0
- package/dist/domain/task-categories.js.map +1 -0
- package/dist/entities/fact.d.ts +5 -0
- package/dist/entities/fact.d.ts.map +1 -1
- package/dist/entities/fact.js +2 -0
- package/dist/entities/fact.js.map +1 -1
- package/dist/entities/index.d.ts +79 -2
- package/dist/entities/index.d.ts.map +1 -1
- package/dist/entities/index.js +3 -1
- package/dist/entities/index.js.map +1 -1
- package/dist/entities/meeting-preparation-parts.d.ts +9 -0
- package/dist/entities/meeting-preparation-parts.d.ts.map +1 -1
- package/dist/entities/meeting-preparation-parts.js +9 -0
- package/dist/entities/meeting-preparation-parts.js.map +1 -1
- package/dist/entities/meeting-preparation.d.ts +61 -1
- package/dist/entities/meeting-preparation.d.ts.map +1 -1
- package/dist/entities/meeting-preparation.js +22 -15
- package/dist/entities/meeting-preparation.js.map +1 -1
- package/dist/entities/relationship.d.ts +16 -0
- package/dist/entities/relationship.d.ts.map +1 -0
- package/dist/entities/relationship.js +18 -0
- package/dist/entities/relationship.js.map +1 -0
- package/dist/mcp/http/oauth.d.ts.map +1 -1
- package/dist/mcp/http/oauth.js +1 -0
- package/dist/mcp/http/oauth.js.map +1 -1
- package/dist/mcp/instructions.d.ts.map +1 -1
- package/dist/mcp/instructions.js +3 -2
- package/dist/mcp/instructions.js.map +1 -1
- package/dist/mcp/meeting-preparation.d.ts +68 -4
- package/dist/mcp/meeting-preparation.d.ts.map +1 -1
- package/dist/mcp/meeting-preparation.js +7 -3
- package/dist/mcp/meeting-preparation.js.map +1 -1
- package/dist/mcp/surface.d.ts.map +1 -1
- package/dist/mcp/surface.js +4 -0
- package/dist/mcp/surface.js.map +1 -1
- package/dist/mcp/text.d.ts +1 -2
- package/dist/mcp/text.d.ts.map +1 -1
- package/dist/mcp/text.js +2 -9
- package/dist/mcp/text.js.map +1 -1
- package/dist/mcp/tool.d.ts +1 -3
- package/dist/mcp/tool.d.ts.map +1 -1
- package/dist/mcp/tool.js +2 -3
- package/dist/mcp/tool.js.map +1 -1
- package/dist/mcp/tools/search-tools.d.ts.map +1 -1
- package/dist/mcp/tools/search-tools.js +21 -36
- package/dist/mcp/tools/search-tools.js.map +1 -1
- package/dist/mcp/tools/search.d.ts +0 -12
- package/dist/mcp/tools/search.d.ts.map +1 -1
- package/dist/mcp/tools/search.js +0 -12
- package/dist/mcp/tools/search.js.map +1 -1
- package/dist/mcp/tools/tasks.d.ts.map +1 -1
- package/dist/mcp/tools/tasks.js +138 -7
- package/dist/mcp/tools/tasks.js.map +1 -1
- package/dist/meetings/index.d.ts +1 -0
- package/dist/meetings/index.d.ts.map +1 -1
- package/dist/meetings/index.js +1 -0
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/mcp/agent-text.d.ts +23 -0
- package/dist/meetings/mcp/agent-text.d.ts.map +1 -0
- package/dist/meetings/mcp/agent-text.js +43 -0
- package/dist/meetings/mcp/agent-text.js.map +1 -0
- package/dist/meetings/mcp/index.d.ts +3 -38
- package/dist/meetings/mcp/index.d.ts.map +1 -1
- package/dist/meetings/mcp/index.js +9 -3
- package/dist/meetings/mcp/index.js.map +1 -1
- package/dist/meetings/mcp/passage.d.ts +7 -3
- package/dist/meetings/mcp/passage.d.ts.map +1 -1
- package/dist/meetings/mcp/passage.js +4 -3
- package/dist/meetings/mcp/passage.js.map +1 -1
- package/dist/meetings/mcp/project-evidence.d.ts +7 -3
- package/dist/meetings/mcp/project-evidence.d.ts.map +1 -1
- package/dist/meetings/mcp/project-evidence.js +7 -3
- package/dist/meetings/mcp/project-evidence.js.map +1 -1
- package/dist/meetings/mcp/search.d.ts +7 -3
- package/dist/meetings/mcp/search.d.ts.map +1 -1
- package/dist/meetings/mcp/search.js +7 -3
- package/dist/meetings/mcp/search.js.map +1 -1
- package/dist/meetings/related-history.d.ts +34 -0
- package/dist/meetings/related-history.d.ts.map +1 -0
- package/dist/meetings/related-history.js +30 -0
- package/dist/meetings/related-history.js.map +1 -0
- package/dist/parity/manifest.d.ts.map +1 -1
- package/dist/parity/manifest.js +4 -0
- package/dist/parity/manifest.js.map +1 -1
- package/dist/readers/doc/index.d.ts.map +1 -1
- package/dist/readers/doc/index.js +1 -0
- package/dist/readers/doc/index.js.map +1 -1
- package/dist/readers/html/index.d.ts.map +1 -1
- package/dist/readers/html/index.js +16 -1
- package/dist/readers/html/index.js.map +1 -1
- package/dist/search/account-list.js +1 -1
- package/dist/search/account-list.js.map +1 -1
- package/dist/search/lucene/registry.js +1 -1
- package/dist/search/lucene/registry.js.map +1 -1
- package/dist/search/task-similarity.d.ts +4 -0
- package/dist/search/task-similarity.d.ts.map +1 -1
- package/dist/search/task-similarity.js +5 -2
- package/dist/search/task-similarity.js.map +1 -1
- package/dist/sends/permissions.d.ts.map +1 -1
- package/dist/sends/permissions.js +4 -0
- package/dist/sends/permissions.js.map +1 -1
- package/dist/services/agenda.d.ts +4 -0
- package/dist/services/agenda.d.ts.map +1 -1
- package/dist/services/agenda.js +6 -1
- package/dist/services/agenda.js.map +1 -1
- package/dist/services/inbox.d.ts.map +1 -1
- package/dist/services/inbox.js +5 -1
- package/dist/services/inbox.js.map +1 -1
- package/dist/services/meeting-preparation-types.d.ts +13 -3
- package/dist/services/meeting-preparation-types.d.ts.map +1 -1
- package/dist/services/meeting-preparation.d.ts.map +1 -1
- package/dist/services/meeting-preparation.js +10 -0
- package/dist/services/meeting-preparation.js.map +1 -1
- package/dist/services/meeting-related-preparation.d.ts +5 -0
- package/dist/services/meeting-related-preparation.d.ts.map +1 -0
- package/dist/services/meeting-related-preparation.js +85 -0
- package/dist/services/meeting-related-preparation.js.map +1 -0
- package/dist/services/mentions.d.ts +24 -2
- package/dist/services/mentions.d.ts.map +1 -1
- package/dist/services/mentions.js +41 -3
- package/dist/services/mentions.js.map +1 -1
- package/dist/services/messages-search.d.ts.map +1 -1
- package/dist/services/messages-search.js +1 -1
- package/dist/services/messages-search.js.map +1 -1
- package/dist/services/search-kind.js +2 -2
- package/dist/services/search-kind.js.map +1 -1
- package/dist/services/task-categories.d.ts +2 -12
- package/dist/services/task-categories.d.ts.map +1 -1
- package/dist/services/task-categories.js +2 -74
- package/dist/services/task-categories.js.map +1 -1
- package/dist/services/task-rules.d.ts +5 -1
- package/dist/services/task-rules.d.ts.map +1 -1
- package/dist/services/task-rules.js +13 -13
- package/dist/services/task-rules.js.map +1 -1
- package/dist/services/tasks.d.ts +45 -3
- package/dist/services/tasks.d.ts.map +1 -1
- package/dist/services/tasks.js +91 -9
- package/dist/services/tasks.js.map +1 -1
- package/dist/store/index.d.ts +3 -0
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +1 -0
- package/dist/store/index.js.map +1 -1
- package/dist/store/sqlite/lucene.d.ts.map +1 -1
- package/dist/store/sqlite/lucene.js +15 -22
- package/dist/store/sqlite/lucene.js.map +1 -1
- package/dist/store/sqlite/manifest.d.ts.map +1 -1
- package/dist/store/sqlite/manifest.js +4 -0
- package/dist/store/sqlite/manifest.js.map +1 -1
- package/dist/store/sqlite/meeting-related-history.d.ts +4 -0
- package/dist/store/sqlite/meeting-related-history.d.ts.map +1 -0
- package/dist/store/sqlite/meeting-related-history.js +77 -0
- package/dist/store/sqlite/meeting-related-history.js.map +1 -0
- package/dist/store/sqlite/meetings.d.ts +2 -2
- package/dist/store/sqlite/meetings.d.ts.map +1 -1
- package/dist/store/sqlite/meetings.js +2 -0
- package/dist/store/sqlite/meetings.js.map +1 -1
- package/dist/store/sqlite/mention-drain.d.ts +24 -1
- package/dist/store/sqlite/mention-drain.d.ts.map +1 -1
- package/dist/store/sqlite/mention-drain.js +64 -9
- package/dist/store/sqlite/mention-drain.js.map +1 -1
- package/dist/store/sqlite/mentions.d.ts +10 -4
- package/dist/store/sqlite/mentions.d.ts.map +1 -1
- package/dist/store/sqlite/mentions.js +42 -19
- package/dist/store/sqlite/mentions.js.map +1 -1
- package/dist/store/sqlite/migrations.generated.d.ts.map +1 -1
- package/dist/store/sqlite/migrations.generated.js +42 -0
- package/dist/store/sqlite/migrations.generated.js.map +1 -1
- package/dist/store/sqlite/note-index.d.ts +17 -1
- package/dist/store/sqlite/note-index.d.ts.map +1 -1
- package/dist/store/sqlite/note-index.js +14 -2
- package/dist/store/sqlite/note-index.js.map +1 -1
- package/dist/store/sqlite/note-search.d.ts.map +1 -1
- package/dist/store/sqlite/note-search.js +11 -2
- package/dist/store/sqlite/note-search.js.map +1 -1
- package/dist/store/sqlite/phone-countries.d.ts +16 -0
- package/dist/store/sqlite/phone-countries.d.ts.map +1 -0
- package/dist/store/sqlite/phone-countries.js +42 -0
- package/dist/store/sqlite/phone-countries.js.map +1 -0
- package/dist/store/sqlite/schema.d.ts +270 -0
- package/dist/store/sqlite/schema.d.ts.map +1 -1
- package/dist/store/sqlite/schema.js +27 -0
- package/dist/store/sqlite/schema.js.map +1 -1
- package/dist/store/sqlite/task-candidates.d.ts +47 -0
- package/dist/store/sqlite/task-candidates.d.ts.map +1 -0
- package/dist/store/sqlite/task-candidates.js +193 -0
- package/dist/store/sqlite/task-candidates.js.map +1 -0
- package/dist/store/sqlite/task-category-settings.d.ts +9 -0
- package/dist/store/sqlite/task-category-settings.d.ts.map +1 -0
- package/dist/store/sqlite/task-category-settings.js +21 -0
- package/dist/store/sqlite/task-category-settings.js.map +1 -0
- package/dist/store/sqlite/task-pairs.d.ts +69 -0
- package/dist/store/sqlite/task-pairs.d.ts.map +1 -0
- package/dist/store/sqlite/task-pairs.js +262 -0
- package/dist/store/sqlite/task-pairs.js.map +1 -0
- package/dist/store/sqlite/task-relations.d.ts.map +1 -1
- package/dist/store/sqlite/task-relations.js +20 -8
- package/dist/store/sqlite/task-relations.js.map +1 -1
- package/dist/store/sqlite/tasks.d.ts +8 -1
- package/dist/store/sqlite/tasks.d.ts.map +1 -1
- package/dist/store/sqlite/tasks.js +24 -2
- package/dist/store/sqlite/tasks.js.map +1 -1
- package/dist/store/store.d.ts +6 -3
- package/dist/store/store.d.ts.map +1 -1
- package/dist/store/store.js +2 -0
- package/dist/store/store.js.map +1 -1
- package/dist/store/ulid.d.ts.map +1 -1
- package/dist/store/ulid.js +1 -0
- package/dist/store/ulid.js.map +1 -1
- package/dist/tasks/service.d.ts +3 -1
- package/dist/tasks/service.d.ts.map +1 -1
- package/dist/tasks/service.js +8 -4
- package/dist/tasks/service.js.map +1 -1
- package/dist/tasks/store.d.ts +9 -1
- package/dist/tasks/store.d.ts.map +1 -1
- package/dist/tasks/store.js.map +1 -1
- package/package.json +2 -1
- package/parity.json +97 -20
- package/skills/follow-ups/SKILL.md +2 -0
|
@@ -1,9 +1,25 @@
|
|
|
1
|
-
import { findMentions, MENTION_KINDS, MENTION_VERSIONS } from "../../domain/mentions.js";
|
|
1
|
+
import { findMentions, MENTION_KINDS, MENTION_VERSIONS, telegramTarget, } from "../../domain/mentions.js";
|
|
2
2
|
import { findNames, nameIndex } from "../../domain/person-names.js";
|
|
3
3
|
import { createStemmer } from "../../search/stem.js";
|
|
4
|
+
import { storePhoneCountries } from "./phone-countries.js";
|
|
4
5
|
/** Mentions a store write finds before it commits: an older binary may have queued thousands. */
|
|
5
6
|
export const DRAIN_ON_WRITE = 500;
|
|
6
7
|
const METHOD = "rules";
|
|
8
|
+
/** The stored chat or Telegram account a `t.me` link names, as a rules decision; nothing for any other link. */
|
|
9
|
+
export const telegramLink = (database) => {
|
|
10
|
+
const chat = database.prepare("SELECT 'linked' AS status, 'chat' AS target_type, id AS target_id, 'rules' AS author FROM chats " +
|
|
11
|
+
"WHERE (? IS NOT NULL AND lower(username) = lower(?)) OR external_id = ? ORDER BY id LIMIT 1");
|
|
12
|
+
const account = database.prepare("SELECT 'linked' AS status, 'identity' AS target_type, id AS target_id, 'rules' AS author FROM identities " +
|
|
13
|
+
"WHERE provider = 'telegram' AND lower(username) = lower(?) ORDER BY id LIMIT 1");
|
|
14
|
+
return (value) => {
|
|
15
|
+
const target = telegramTarget(value);
|
|
16
|
+
if (!target)
|
|
17
|
+
return undefined;
|
|
18
|
+
const username = "username" in target ? target.username : null;
|
|
19
|
+
return (chat.get(username, username, "chatId" in target ? target.chatId : null) ??
|
|
20
|
+
(username ? account.get(username) : undefined));
|
|
21
|
+
};
|
|
22
|
+
};
|
|
7
23
|
/**
|
|
8
24
|
* What a new mention starts as when nothing was decided where it was written: dismissed if its value was
|
|
9
25
|
* dismissed anywhere, linked when the value already has an original — an identity a person or an organization owns for a phone
|
|
@@ -15,6 +31,7 @@ const originalOf = (database) => {
|
|
|
15
31
|
const identity = database.prepare("SELECT 'linked' AS status, 'identity' AS target_type, i.id AS target_id, 'rules' AS author FROM identities i " +
|
|
16
32
|
"WHERE i.provider = ? AND i.external_id = ? AND (EXISTS (SELECT 1 FROM identity_links l WHERE l.identity_id = i.id) " +
|
|
17
33
|
"OR EXISTS (SELECT 1 FROM organization_identities o WHERE o.identity_id = i.id))");
|
|
34
|
+
const telegram = telegramLink(database);
|
|
18
35
|
const document = database.prepare("SELECT 'linked' AS status, 'document' AS target_type, id AS target_id, 'rules' AS author FROM documents " +
|
|
19
36
|
"WHERE json_extract(front_matter, '$.fileId') = ? AND deleted_at IS NULL ORDER BY id LIMIT 1");
|
|
20
37
|
return (kind, value) => dismissed.get(kind, value) ??
|
|
@@ -22,7 +39,9 @@ const originalOf = (database) => {
|
|
|
22
39
|
? identity.get(kind, value)
|
|
23
40
|
: kind === "document"
|
|
24
41
|
? document.get(value)
|
|
25
|
-
:
|
|
42
|
+
: kind === "url"
|
|
43
|
+
? telegram(value)
|
|
44
|
+
: undefined);
|
|
26
45
|
};
|
|
27
46
|
/**
|
|
28
47
|
* People whose names are looked for: not the owner, and only people met in a messenger, a meeting or a confirmed
|
|
@@ -57,7 +76,7 @@ export const participants = (database) => {
|
|
|
57
76
|
return known;
|
|
58
77
|
};
|
|
59
78
|
};
|
|
60
|
-
/** Where mentions are read from: a message's own text,
|
|
79
|
+
/** Where mentions are read from: a message's own text, its files and voice notes, documents, notes and mail. */
|
|
61
80
|
export const SOURCES = {
|
|
62
81
|
message: {
|
|
63
82
|
count: "SELECT count(*) AS n FROM messages WHERE deleted_at IS NULL",
|
|
@@ -74,23 +93,50 @@ export const SOURCES = {
|
|
|
74
93
|
"m.chat_id FROM attachments a JOIN messages m ON m.id = a.attachable_id WHERE a.id = ? AND a.attachable_type = 'message' " +
|
|
75
94
|
"AND a.text IS NOT NULL AND m.deleted_at IS NULL",
|
|
76
95
|
},
|
|
96
|
+
// Texts outside a chat: no one wrote them in a chat, so a name in them is never linked by rule.
|
|
97
|
+
document: {
|
|
98
|
+
count: "SELECT count(*) AS n FROM documents WHERE deleted_at IS NULL AND coalesce(body, '') <> ''",
|
|
99
|
+
page: "SELECT id, body AS text, 'text' AS field, NULL AS chat_id FROM documents WHERE id > ? AND deleted_at IS NULL " +
|
|
100
|
+
"AND coalesce(body, '') <> '' ORDER BY id LIMIT ?",
|
|
101
|
+
one: "SELECT body AS text, 'text' AS field, NULL AS chat_id FROM documents WHERE id = ? AND deleted_at IS NULL",
|
|
102
|
+
},
|
|
103
|
+
note: {
|
|
104
|
+
count: "SELECT count(*) AS n FROM notes WHERE deleted_at IS NULL AND coalesce(body, '') <> ''",
|
|
105
|
+
page: "SELECT id, body AS text, 'text' AS field, NULL AS chat_id FROM notes WHERE id > ? AND deleted_at IS NULL " +
|
|
106
|
+
"AND coalesce(body, '') <> '' ORDER BY id LIMIT ?",
|
|
107
|
+
one: "SELECT body AS text, 'text' AS field, NULL AS chat_id FROM notes WHERE id = ? AND deleted_at IS NULL",
|
|
108
|
+
},
|
|
109
|
+
email: {
|
|
110
|
+
count: "SELECT count(*) AS n FROM emails WHERE deleted_at IS NULL AND coalesce(body_text, '') <> ''",
|
|
111
|
+
page: "SELECT id, body_text AS text, 'text' AS field, NULL AS chat_id FROM emails WHERE id > ? AND deleted_at IS NULL " +
|
|
112
|
+
"AND coalesce(body_text, '') <> '' ORDER BY id LIMIT ?",
|
|
113
|
+
one: "SELECT body_text AS text, 'text' AS field, NULL AS chat_id FROM emails WHERE id = ? AND deleted_at IS NULL",
|
|
114
|
+
},
|
|
77
115
|
};
|
|
78
116
|
export const SOURCE_TYPES = Object.keys(SOURCES);
|
|
79
117
|
export const writer = (database, now, kinds) => {
|
|
80
118
|
// Only the kinds this build finds: a later build's kinds stay when this one reads the text again.
|
|
81
119
|
const scope = kinds ?? MENTION_KINDS;
|
|
82
120
|
const only = ` AND kind IN (${scope.map(() => "?").join(", ")})`;
|
|
83
|
-
const
|
|
84
|
-
`WHERE source_type = ? AND source_id =
|
|
121
|
+
const existing = database.prepare("SELECT kind, value, start_offset, status, target_type, target_id, author, created_at FROM mentions " +
|
|
122
|
+
`WHERE source_type = ? AND source_id = ?${only}`);
|
|
123
|
+
// A decision on a number written without `+` was keyed on its old value; once `phone_countries` reads it as
|
|
124
|
+
// +34…, its identity moves to the new value with it.
|
|
125
|
+
const rekey = database.prepare("UPDATE identities SET external_id = ? WHERE id = ? AND provider = 'phone' AND external_id = ? " +
|
|
126
|
+
"AND NOT EXISTS (SELECT 1 FROM identities WHERE provider = 'phone' AND external_id = ?)");
|
|
85
127
|
const remove = database.prepare(`DELETE FROM mentions WHERE source_type = ? AND source_id = ?${only}`);
|
|
86
128
|
const insert = database.prepare("INSERT OR IGNORE INTO mentions (kind, source_type, source_id, source_field, start_offset, end_offset, value, " +
|
|
87
129
|
"domain, method, version, confidence, status, target_type, target_id, author, created_at, updated_at) " +
|
|
88
130
|
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
|
|
89
131
|
const original = originalOf(database);
|
|
132
|
+
const phoneCountries = storePhoneCountries(database);
|
|
90
133
|
const names = !kinds || kinds.includes("person-name") ? nameIndex(knownPeople(database), createStemmer()) : undefined;
|
|
91
134
|
const chatPeople = participants(database);
|
|
92
135
|
const found = (source) => [
|
|
93
|
-
...findMentions(source.text).map((one) => ({
|
|
136
|
+
...findMentions(source.text, { phoneCountries }).map((one) => ({
|
|
137
|
+
...one,
|
|
138
|
+
decision: undefined,
|
|
139
|
+
})),
|
|
94
140
|
...(names
|
|
95
141
|
? findNames(source.text, names).map(({ people, ...one }) => {
|
|
96
142
|
// One person can be a row per messenger until merged, so a name often fits several: the one who wrote
|
|
@@ -110,7 +156,12 @@ export const writer = (database, now, kinds) => {
|
|
|
110
156
|
: []),
|
|
111
157
|
];
|
|
112
158
|
return (type, pk, source) => {
|
|
113
|
-
const
|
|
159
|
+
const rows = existing.all(type, pk, ...scope);
|
|
160
|
+
const decided = rows.filter((row) => row.status !== "found" && row.author !== METHOD);
|
|
161
|
+
const kept = new Map(decided.map((row) => [`${row.kind}\u0000${row.value}`, row]));
|
|
162
|
+
const keptHere = new Map(decided.map((row) => [`${row.kind}\u0000${row.start_offset}`, row]));
|
|
163
|
+
// A row found again keeps when it was first found, so a rebuild does not make it new for `mentions list --new`.
|
|
164
|
+
const firstFound = new Map(rows.map((row) => [`${row.kind}\u0000${row.start_offset}`, Number(row.created_at)]));
|
|
114
165
|
remove.run(type, pk, ...scope);
|
|
115
166
|
if (source === null)
|
|
116
167
|
return 0;
|
|
@@ -118,8 +169,12 @@ export const writer = (database, now, kinds) => {
|
|
|
118
169
|
for (const one of found(source)) {
|
|
119
170
|
if (kinds && !kinds.includes(one.kind))
|
|
120
171
|
continue;
|
|
121
|
-
const
|
|
122
|
-
|
|
172
|
+
const here = `${one.kind}\u0000${one.start}`;
|
|
173
|
+
const moved = one.kind === "phone" && !kept.has(`${one.kind}\u0000${one.value}`) ? keptHere.get(here) : undefined;
|
|
174
|
+
if (moved?.target_type === "identity")
|
|
175
|
+
rekey.run(one.value, Number(moved.target_id), String(moved.value), one.value);
|
|
176
|
+
const decision = kept.get(`${one.kind}\u0000${one.value}`) ?? moved ?? one.decision ?? original(one.kind, one.value);
|
|
177
|
+
written += Number(insert.run(one.kind, type, pk, source.field, one.start, one.end, one.value, one.domain, METHOD, MENTION_VERSIONS[one.kind], one.confidence, decision ? String(decision.status) : "found", decision?.target_type == null ? null : String(decision.target_type), decision?.target_id == null ? null : Number(decision.target_id), decision?.author == null ? null : String(decision.author), firstFound.get(here) ?? now, now).changes);
|
|
123
178
|
}
|
|
124
179
|
return written;
|
|
125
180
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mention-drain.js","sourceRoot":"","sources":["../../../src/store/sqlite/mention-drain.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"mention-drain.js","sourceRoot":"","sources":["../../../src/store/sqlite/mention-drain.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type QueryAst } from "@wirecat/cli-base/query";
|
|
2
|
-
import { type MentionKind } from "../../domain/mentions.js";
|
|
2
|
+
import { type Decider, type MentionKind } from "../../domain/mentions.js";
|
|
3
3
|
import type { CacheDatabase } from "../driver.js";
|
|
4
4
|
import type { StoreContext } from "./open.js";
|
|
5
5
|
/** A stored mention of a message's text, with what `mentions list` and `show` need to point at it. */
|
|
@@ -20,6 +20,8 @@ export interface StoredMention {
|
|
|
20
20
|
chatId: string;
|
|
21
21
|
messageId: string;
|
|
22
22
|
sentAt: string;
|
|
23
|
+
/** When the rules first found it here; a rebuild keeps it. `mentions list --new` starts after the last one shown. */
|
|
24
|
+
foundAt: string;
|
|
23
25
|
/** What was written, read back from the message: never copied into the mention. */
|
|
24
26
|
written: string;
|
|
25
27
|
}
|
|
@@ -37,6 +39,9 @@ export interface MentionsRebuild {
|
|
|
37
39
|
messages: number;
|
|
38
40
|
/** Files and voice notes of messages whose text was read. */
|
|
39
41
|
attachments: number;
|
|
42
|
+
documents: number;
|
|
43
|
+
notes: number;
|
|
44
|
+
emails: number;
|
|
40
45
|
mentions: number;
|
|
41
46
|
}
|
|
42
47
|
/**
|
|
@@ -51,9 +56,10 @@ export declare const rebuildMentions: (database: CacheDatabase, { now, kinds, on
|
|
|
51
56
|
}) => MentionsRebuild;
|
|
52
57
|
export declare const mentionsState: (database: CacheDatabase) => MentionsState;
|
|
53
58
|
/** One account's mentions that match the query, newest message first. `limit` absent is every row. */
|
|
54
|
-
export declare const listMentions: (database: CacheDatabase, accountPk: number, query: QueryAst | undefined, { limit, offset }: {
|
|
59
|
+
export declare const listMentions: (database: CacheDatabase, accountPk: number, query: QueryAst | undefined, { limit, offset, foundAfter }: {
|
|
55
60
|
limit?: number;
|
|
56
61
|
offset: number;
|
|
62
|
+
foundAfter?: number;
|
|
57
63
|
}) => {
|
|
58
64
|
items: StoredMention[];
|
|
59
65
|
hasMore: boolean;
|
|
@@ -84,7 +90,7 @@ export declare const confirmMention: (context: StoreContext, accountPk: number,
|
|
|
84
90
|
person: number;
|
|
85
91
|
} | {
|
|
86
92
|
organization: number;
|
|
87
|
-
} | undefined, by:
|
|
93
|
+
} | undefined, by: Decider) => MentionDecision;
|
|
88
94
|
/** Not a real mention, or not worth keeping: every place the value is written, now and on later syncs. */
|
|
89
|
-
export declare const rejectMention: (context: StoreContext, accountPk: number, id: number, by:
|
|
95
|
+
export declare const rejectMention: (context: StoreContext, accountPk: number, id: number, by: Decider) => MentionDecision;
|
|
90
96
|
//# sourceMappingURL=mentions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mentions.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/mentions.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AACpE,OAAO,EAAiB,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"mentions.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/mentions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { CliError } from "@wirecat/cli-base";
|
|
2
2
|
import { defineQuery } from "@wirecat/cli-base/query";
|
|
3
|
-
import { MENTION_KINDS,
|
|
3
|
+
import { MENTION_KINDS, siteOf } from "../../domain/mentions.js";
|
|
4
4
|
import { findNames, nameIndex } from "../../domain/person-names.js";
|
|
5
5
|
import { createStemmer } from "../../search/stem.js";
|
|
6
|
-
import { knownPeople, participants, SOURCE_TYPES, SOURCES, sourceOf, writer } from "./mention-drain.js";
|
|
6
|
+
import { knownPeople, participants, SOURCE_TYPES, SOURCES, sourceOf, telegramLink, writer, } from "./mention-drain.js";
|
|
7
7
|
import { linkIdentityToPerson } from "./person-links.js";
|
|
8
|
+
import { valueMatch } from "./phone-countries.js";
|
|
8
9
|
import { queryFilter } from "./query-filter.js";
|
|
9
10
|
import { writeBatch } from "./transaction.js";
|
|
10
11
|
export const MENTION_STATUSES = ["found", "linked", "dismissed"];
|
|
@@ -31,12 +32,12 @@ export const MENTION_QUERY = defineQuery({
|
|
|
31
32
|
},
|
|
32
33
|
],
|
|
33
34
|
});
|
|
34
|
-
const
|
|
35
|
+
const columnsOf = (database) => ({
|
|
35
36
|
kind: { type: "enum", sql: "mn.kind" },
|
|
36
37
|
status: { type: "enum", sql: "mn.status" },
|
|
37
38
|
domain: { where: (node) => ({ sql: "mn.domain = ?", params: [siteOf(node.value.toLowerCase())] }) },
|
|
38
|
-
value: { where: (node) => (
|
|
39
|
-
};
|
|
39
|
+
value: { where: (node) => valueMatch(database, node.value) },
|
|
40
|
+
});
|
|
40
41
|
const REBUILD_BATCH = 1000;
|
|
41
42
|
const REBUILT_AT = "mentionsRebuiltAt";
|
|
42
43
|
/**
|
|
@@ -46,7 +47,7 @@ const REBUILT_AT = "mentionsRebuiltAt";
|
|
|
46
47
|
*/
|
|
47
48
|
export const rebuildMentions = (database, { now, kinds, onBatch, }) => {
|
|
48
49
|
const total = SOURCE_TYPES.reduce((sum, type) => sum + Number(database.prepare(SOURCES[type].count).get()?.n), 0);
|
|
49
|
-
const read = { message: 0, attachment: 0 };
|
|
50
|
+
const read = { message: 0, attachment: 0, document: 0, note: 0, email: 0 };
|
|
50
51
|
let mentions = 0;
|
|
51
52
|
for (const type of SOURCE_TYPES) {
|
|
52
53
|
const batch = database.prepare(SOURCES[type].page);
|
|
@@ -66,7 +67,7 @@ export const rebuildMentions = (database, { now, kinds, onBatch, }) => {
|
|
|
66
67
|
});
|
|
67
68
|
read[type] += rows.length;
|
|
68
69
|
after = Number(rows.at(-1)?.id);
|
|
69
|
-
onBatch?.(read.
|
|
70
|
+
onBatch?.(Object.values(read).reduce((sum, one) => sum + one, 0), total);
|
|
70
71
|
}
|
|
71
72
|
}
|
|
72
73
|
if (!kinds) {
|
|
@@ -75,7 +76,14 @@ export const rebuildMentions = (database, { now, kinds, onBatch, }) => {
|
|
|
75
76
|
"ON CONFLICT (key) DO UPDATE SET value = excluded.value, at = excluded.at")
|
|
76
77
|
.run(REBUILT_AT, JSON.stringify(new Date(now).toISOString()), now);
|
|
77
78
|
}
|
|
78
|
-
return {
|
|
79
|
+
return {
|
|
80
|
+
messages: read.message,
|
|
81
|
+
attachments: read.attachment,
|
|
82
|
+
documents: read.document,
|
|
83
|
+
notes: read.note,
|
|
84
|
+
emails: read.email,
|
|
85
|
+
mentions,
|
|
86
|
+
};
|
|
79
87
|
};
|
|
80
88
|
export const mentionsState = (database) => {
|
|
81
89
|
const pending = Number(database.prepare("SELECT count(*) AS n FROM mention_pending").get()?.n);
|
|
@@ -84,7 +92,7 @@ export const mentionsState = (database) => {
|
|
|
84
92
|
};
|
|
85
93
|
// A mention in a file or a voice note belongs to that attachment's message, and is listed with it.
|
|
86
94
|
const SELECT = "SELECT mn.id, mn.kind, mn.value, mn.domain, mn.confidence, mn.status, mn.author, mn.source_field, " +
|
|
87
|
-
"mn.target_type, mn.target_id, " +
|
|
95
|
+
"mn.target_type, mn.target_id, mn.created_at, " +
|
|
88
96
|
"mn.start_offset, mn.end_offset, CASE WHEN mn.source_type = 'attachment' THEN att.text ELSE m.text END AS text, " +
|
|
89
97
|
"m.external_id AS message_id, m.sent_at, m.chat_id AS chat_pk, c.external_id AS chat_id FROM mentions mn " +
|
|
90
98
|
"LEFT JOIN attachments att ON mn.source_type = 'attachment' AND att.id = mn.source_id AND att.attachable_type = 'message' " +
|
|
@@ -103,14 +111,19 @@ const stored = (row) => ({
|
|
|
103
111
|
chatId: String(row.chat_id),
|
|
104
112
|
messageId: String(row.message_id),
|
|
105
113
|
sentAt: new Date(Number(row.sent_at)).toISOString(),
|
|
114
|
+
foundAt: new Date(Number(row.created_at)).toISOString(),
|
|
106
115
|
written: String(row.text).slice(Number(row.start_offset), Number(row.end_offset)),
|
|
107
116
|
});
|
|
108
117
|
/** One account's mentions that match the query, newest message first. `limit` absent is every row. */
|
|
109
|
-
export const listMentions = (database, accountPk, query, { limit, offset }) => {
|
|
118
|
+
export const listMentions = (database, accountPk, query, { limit, offset, foundAfter }) => {
|
|
110
119
|
const where = ["m.account_id = ?"];
|
|
111
120
|
const params = [accountPk];
|
|
121
|
+
if (foundAfter !== undefined) {
|
|
122
|
+
where.push("mn.created_at > ?");
|
|
123
|
+
params.push(foundAfter);
|
|
124
|
+
}
|
|
112
125
|
if (query) {
|
|
113
|
-
const compiled = queryFilter(query,
|
|
126
|
+
const compiled = queryFilter(query, columnsOf(database));
|
|
114
127
|
if (compiled.sql) {
|
|
115
128
|
where.push(`(${compiled.sql})`);
|
|
116
129
|
params.push(...compiled.params);
|
|
@@ -156,18 +169,25 @@ const mentionOfAccount = (database, accountPk, id) => {
|
|
|
156
169
|
const row = database.prepare(`${SELECT}WHERE mn.id = ? AND m.account_id = ?`).get(id, accountPk);
|
|
157
170
|
if (!row)
|
|
158
171
|
throw new CliError("not_found", `no mention ${id} in this account`);
|
|
159
|
-
return { id, kind: String(row.kind), value: String(row.value) };
|
|
172
|
+
return { id, kind: String(row.kind), value: String(row.value), chat: Number(row.chat_pk) };
|
|
160
173
|
};
|
|
161
174
|
/**
|
|
162
175
|
* A phone, an address, a link or a document is decided once for its value, everywhere it is written. A name is
|
|
163
176
|
* decided where it is written: «Ольга» in two chats can be two people.
|
|
164
177
|
*/
|
|
165
|
-
const decide = (database, { id, kind, value }, status, target, by, now) => {
|
|
178
|
+
const decide = (database, { id, kind, value, chat }, status, target, { by, inChat }, now) => {
|
|
166
179
|
const set = "UPDATE mentions SET status = ?, target_type = ?, target_id = ?, author = ?, updated_at = ? ";
|
|
167
180
|
const decision = [status, target?.type ?? null, target?.id ?? null, by, now];
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
181
|
+
// The same name in one chat, still undecided or decided only by the rules: what someone decided stays.
|
|
182
|
+
const sameChat = "WHERE id = ? OR id IN (SELECT mn.id FROM mentions mn LEFT JOIN attachments att ON mn.source_type = 'attachment' " +
|
|
183
|
+
"AND att.id = mn.source_id AND att.attachable_type = 'message' JOIN messages m ON m.id = CASE WHEN " +
|
|
184
|
+
"mn.source_type = 'attachment' THEN att.attachable_id ELSE mn.source_id END WHERE m.chat_id = ? " +
|
|
185
|
+
"AND mn.kind = 'person-name' AND mn.value = ? AND (mn.status = 'found' OR mn.author = 'rules'))";
|
|
186
|
+
const changed = (kind !== "person-name"
|
|
187
|
+
? database.prepare(`${set}WHERE kind = ? AND value = ?`).run(...decision, kind, value)
|
|
188
|
+
: inChat
|
|
189
|
+
? database.prepare(`${set}${sameChat}`).run(...decision, id, chat, value)
|
|
190
|
+
: database.prepare(`${set}WHERE id = ?`).run(...decision, id)).changes;
|
|
171
191
|
return { kind, value, status, target: target ? `${target.type}:${target.id}` : null, mentions: Number(changed) };
|
|
172
192
|
};
|
|
173
193
|
/**
|
|
@@ -191,12 +211,12 @@ export const confirmMention = (context, accountPk, id, owner, by) => {
|
|
|
191
211
|
.prepare("SELECT id FROM identities WHERE provider = ? AND external_id = ?")
|
|
192
212
|
.get(mention.kind, mention.value)?.id);
|
|
193
213
|
if ("person" in owner)
|
|
194
|
-
linkIdentityToPerson(context, identity, owner.person, { method: "mention", by });
|
|
214
|
+
linkIdentityToPerson(context, identity, owner.person, { method: "mention", by: by.by });
|
|
195
215
|
else
|
|
196
216
|
database
|
|
197
217
|
.prepare("INSERT INTO organization_identities (identity_id, organization_id, method, author, created_at, updated_at) " +
|
|
198
218
|
"VALUES (?, ?, 'mention', ?, ?, ?) ON CONFLICT (identity_id, organization_id) DO NOTHING")
|
|
199
|
-
.run(identity, owner.organization, by, now, now);
|
|
219
|
+
.run(identity, owner.organization, by.by, now, now);
|
|
200
220
|
return decide(database, mention, "linked", { type: "identity", id: identity }, by, now);
|
|
201
221
|
}
|
|
202
222
|
if (mention.kind === "document") {
|
|
@@ -213,7 +233,10 @@ export const confirmMention = (context, accountPk, id, owner, by) => {
|
|
|
213
233
|
throw new CliError("validation_error", "a name is confirmed to the person it means — person:<uid>");
|
|
214
234
|
return decide(database, mention, "linked", { type: "person", id: owner.person }, by, now);
|
|
215
235
|
}
|
|
216
|
-
|
|
236
|
+
const named = mention.kind === "url" ? telegramLink(database)(mention.value) : undefined;
|
|
237
|
+
if (named)
|
|
238
|
+
return decide(database, mention, "linked", { type: String(named.target_type), id: Number(named.target_id) }, by, now);
|
|
239
|
+
throw new CliError("validation_error", "a link is linked only to a stored Telegram chat or account it names (t.me/…); reject it if it is not worth keeping");
|
|
217
240
|
};
|
|
218
241
|
/** Not a real mention, or not worth keeping: every place the value is written, now and on later syncs. */
|
|
219
242
|
export const rejectMention = (context, accountPk, id, by) => decide(context.database, mentionOfAccount(context.database, accountPk, id), "dismissed", null, by, context.now());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mentions.js","sourceRoot":"","sources":["../../../src/store/sqlite/mentions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mentions.js","sourceRoot":"","sources":["../../../src/store/sqlite/mentions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.generated.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/migrations.generated.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,SAAS,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"migrations.generated.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/migrations.generated.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,SAAS,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,EAwd7D,CAAA"}
|
|
@@ -428,6 +428,48 @@ export const GENERATED = [
|
|
|
428
428
|
"ALTER TABLE `tasks` ADD `claimed_by` text;",
|
|
429
429
|
"ALTER TABLE `tasks` ADD `claimed_until` integer;"
|
|
430
430
|
]
|
|
431
|
+
},
|
|
432
|
+
{
|
|
433
|
+
"name": "20261014222837_version-14-task-words",
|
|
434
|
+
"statements": [
|
|
435
|
+
"CREATE TABLE `task_index_pending` (\n\t`id` integer NOT NULL,\n\t`indexable_type` text NOT NULL,\n\tCONSTRAINT `task_index_pending_pk` PRIMARY KEY(`indexable_type`, `id`)\n);"
|
|
436
|
+
]
|
|
437
|
+
},
|
|
438
|
+
{
|
|
439
|
+
"name": "20261014222841_version-14-task-words-triggers",
|
|
440
|
+
"statements": [
|
|
441
|
+
"-- Words and stems of a task's title and description, rowid = task id, for the duplicate check's candidate lookup.\n-- Stemming needs JS, so the triggers only queue the task and the next lookup indexes it, as notes do.\nCREATE VIRTUAL TABLE task_words USING fts5(\n normalized_text, scope,\n content = '', contentless_delete = 1,\n tokenize = 'unicode61 remove_diacritics 2', prefix = '3');",
|
|
442
|
+
"CREATE VIRTUAL TABLE task_words_vocab USING fts5vocab(task_words, 'col');",
|
|
443
|
+
"CREATE VIRTUAL TABLE task_stems USING fts5(\n stems, scope,\n content = '', contentless_delete = 1,\n tokenize = 'unicode61 remove_diacritics 2');",
|
|
444
|
+
"CREATE TRIGGER task_index_ai AFTER INSERT ON tasks BEGIN\n INSERT OR IGNORE INTO task_index_pending (indexable_type, id) VALUES ('task', new.id);\nEND;",
|
|
445
|
+
"CREATE TRIGGER task_index_au AFTER UPDATE OF title, description, deleted_at ON tasks\n WHEN old.title IS NOT new.title OR old.description IS NOT new.description OR old.deleted_at IS NOT new.deleted_at BEGIN\n INSERT OR IGNORE INTO task_index_pending (indexable_type, id) VALUES ('task', new.id);\nEND;",
|
|
446
|
+
"CREATE TRIGGER task_index_ad AFTER DELETE ON tasks BEGIN\n DELETE FROM task_words WHERE rowid = old.id;\n DELETE FROM task_stems WHERE rowid = old.id;\n DELETE FROM task_index_pending WHERE indexable_type = 'task' AND id = old.id;\nEND;",
|
|
447
|
+
"INSERT OR IGNORE INTO search_index_state (name, watermark, filled_through, terms_through, normalizer_version, built_at, analyzer)\n VALUES ('task_index', 0, 0, 0, 1, NULL, NULL);",
|
|
448
|
+
"INSERT OR IGNORE INTO task_index_pending (indexable_type, id) SELECT 'task', id FROM tasks;"
|
|
449
|
+
]
|
|
450
|
+
},
|
|
451
|
+
{
|
|
452
|
+
"name": "20261015010543_version-15-task-pairs",
|
|
453
|
+
"statements": [
|
|
454
|
+
"CREATE TABLE `task_pairs` (\n\t`id` integer PRIMARY KEY,\n\t`task_id` integer,\n\t`source_locator` text,\n\t`other_id` integer NOT NULL,\n\t`score` integer NOT NULL,\n\t`band` text NOT NULL,\n\t`levels` text NOT NULL,\n\t`reasons` text NOT NULL,\n\t`decision` text NOT NULL,\n\t`decided_by_type` text,\n\t`decided_by_id` integer,\n\t`decided_at` integer,\n\t`created_at` integer NOT NULL,\n\t`updated_at` integer NOT NULL,\n\tCONSTRAINT `fk_task_pairs_task_id_tasks_id_fk` FOREIGN KEY (`task_id`) REFERENCES `tasks`(`id`),\n\tCONSTRAINT `fk_task_pairs_other_id_tasks_id_fk` FOREIGN KEY (`other_id`) REFERENCES `tasks`(`id`),\n\tCONSTRAINT `task_pairs_task_id_other_id_unique` UNIQUE(`task_id`,`other_id`)\n);",
|
|
455
|
+
"CREATE INDEX `task_pairs_by_decision_created_at` ON `task_pairs` (`decision`,`created_at`);",
|
|
456
|
+
"CREATE INDEX `task_pairs_by_other_id` ON `task_pairs` (`other_id`);",
|
|
457
|
+
"CREATE INDEX `task_pairs_by_decided_by_type_decided_by_id` ON `task_pairs` (`decided_by_type`,`decided_by_id`);"
|
|
458
|
+
]
|
|
459
|
+
},
|
|
460
|
+
{
|
|
461
|
+
"name": "20261015014428_version-16-mentions-in-other-texts",
|
|
462
|
+
"statements": [
|
|
463
|
+
"-- Documents, notes and mail have text of their own: queue it for mentions as a message's text is, again when it\n-- changes or is deleted (a soft delete too, so its mentions go), and drop its mentions with the row. Rows stored\n-- before version 16 wait for `mentions rebuild`, as messages stored before version 7 do.\nCREATE TRIGGER mention_pending_document_ai AFTER INSERT ON documents WHEN coalesce(new.body, '') <> '' BEGIN\n INSERT OR IGNORE INTO mention_pending (source_type, source_id) VALUES ('document', new.id);\nEND;",
|
|
464
|
+
"CREATE TRIGGER mention_pending_document_au AFTER UPDATE OF body, deleted_at ON documents\n WHEN old.body IS NOT new.body OR old.deleted_at IS NOT new.deleted_at BEGIN\n INSERT OR IGNORE INTO mention_pending (source_type, source_id) VALUES ('document', new.id);\nEND;",
|
|
465
|
+
"CREATE TRIGGER mentions_document_ad AFTER DELETE ON documents BEGIN\n DELETE FROM mentions WHERE source_type = 'document' AND source_id = old.id;\n DELETE FROM mention_pending WHERE source_type = 'document' AND source_id = old.id;\nEND;",
|
|
466
|
+
"CREATE TRIGGER mention_pending_note_ai AFTER INSERT ON notes WHEN coalesce(new.body, '') <> '' BEGIN\n INSERT OR IGNORE INTO mention_pending (source_type, source_id) VALUES ('note', new.id);\nEND;",
|
|
467
|
+
"CREATE TRIGGER mention_pending_note_au AFTER UPDATE OF body, deleted_at ON notes\n WHEN old.body IS NOT new.body OR old.deleted_at IS NOT new.deleted_at BEGIN\n INSERT OR IGNORE INTO mention_pending (source_type, source_id) VALUES ('note', new.id);\nEND;",
|
|
468
|
+
"CREATE TRIGGER mentions_note_ad AFTER DELETE ON notes BEGIN\n DELETE FROM mentions WHERE source_type = 'note' AND source_id = old.id;\n DELETE FROM mention_pending WHERE source_type = 'note' AND source_id = old.id;\nEND;",
|
|
469
|
+
"CREATE TRIGGER mention_pending_email_ai AFTER INSERT ON emails WHEN coalesce(new.body_text, '') <> '' BEGIN\n INSERT OR IGNORE INTO mention_pending (source_type, source_id) VALUES ('email', new.id);\nEND;",
|
|
470
|
+
"CREATE TRIGGER mention_pending_email_au AFTER UPDATE OF body_text, deleted_at ON emails\n WHEN old.body_text IS NOT new.body_text OR old.deleted_at IS NOT new.deleted_at BEGIN\n INSERT OR IGNORE INTO mention_pending (source_type, source_id) VALUES ('email', new.id);\nEND;",
|
|
471
|
+
"CREATE TRIGGER mentions_email_ad AFTER DELETE ON emails BEGIN\n DELETE FROM mentions WHERE source_type = 'email' AND source_id = old.id;\n DELETE FROM mention_pending WHERE source_type = 'email' AND source_id = old.id;\nEND;"
|
|
472
|
+
]
|
|
431
473
|
}
|
|
432
474
|
];
|
|
433
475
|
//# sourceMappingURL=migrations.generated.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.generated.js","sourceRoot":"","sources":["../../../src/store/sqlite/migrations.generated.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"migrations.generated.js","sourceRoot":"","sources":["../../../src/store/sqlite/migrations.generated.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@ export interface NoteIndexState {
|
|
|
15
15
|
*/
|
|
16
16
|
export interface Corpus {
|
|
17
17
|
/** The singular table name: `indexable_type` in the queue, `chunkable_type` in chunks. */
|
|
18
|
-
type: "document" | "note" | "memory" | "email";
|
|
18
|
+
type: "document" | "note" | "memory" | "email" | "task";
|
|
19
19
|
/** Its row in `search_index_state`. */
|
|
20
20
|
index: string;
|
|
21
21
|
table: string;
|
|
@@ -23,6 +23,11 @@ export interface Corpus {
|
|
|
23
23
|
read: string;
|
|
24
24
|
/** False when the corpus cuts its own pieces for search by meaning, as mail does by thread. */
|
|
25
25
|
pieces?: false;
|
|
26
|
+
/** The words and stems rows, when the corpus cleans its text its own way; `normalize` and `indexText` otherwise. */
|
|
27
|
+
terms?: (text: string, stemmer: Stemmer) => {
|
|
28
|
+
words: string;
|
|
29
|
+
stems: string;
|
|
30
|
+
};
|
|
26
31
|
}
|
|
27
32
|
export declare const CORPORA: {
|
|
28
33
|
readonly document: {
|
|
@@ -50,6 +55,17 @@ export declare const CORPORA: {
|
|
|
50
55
|
readonly read: string;
|
|
51
56
|
readonly pieces: false;
|
|
52
57
|
};
|
|
58
|
+
readonly task: {
|
|
59
|
+
readonly type: "task";
|
|
60
|
+
readonly index: "task_index";
|
|
61
|
+
readonly table: "tasks";
|
|
62
|
+
readonly read: string;
|
|
63
|
+
readonly pieces: false;
|
|
64
|
+
readonly terms: (text: string, stemmer: Stemmer) => {
|
|
65
|
+
words: string;
|
|
66
|
+
stems: string;
|
|
67
|
+
};
|
|
68
|
+
};
|
|
53
69
|
};
|
|
54
70
|
/** What a row is indexed as: its title, then its text. Chunk offsets point into this. */
|
|
55
71
|
export declare const noteIndexText: (title: string | null, text: string) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"note-index.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/note-index.ts"],"names":[],"mappings":"AACA,OAAO,EAAsC,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"note-index.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/note-index.ts"],"names":[],"mappings":"AACA,OAAO,EAAsC,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAEtG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAQjD,MAAM,WAAW,cAAc;IAC7B,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAA;IACf,iFAAiF;IACjF,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,mFAAmF;IACnF,KAAK,EAAE,OAAO,CAAA;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,0FAA0F;IAC1F,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAA;IACvD,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,gGAAgG;IAChG,IAAI,EAAE,MAAM,CAAA;IACZ,+FAA+F;IAC/F,MAAM,CAAC,EAAE,KAAK,CAAA;IACd,oHAAoH;IACpH,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;CAC7E;AAED,eAAO,MAAM,OAAO;;iBAEhB,IAAI,EAAE,UAAU;iBAChB,KAAK,EAAE,gBAAgB;iBACvB,KAAK,EAAE,WAAW;iBAClB,IAAI;;;iBAKJ,IAAI,EAAE,MAAM;iBACZ,KAAK,EAAE,YAAY;iBACnB,KAAK,EAAE,OAAO;iBACd,IAAI,EAAE,6FAA6F;;;iBAGnG,IAAI,EAAE,QAAQ;iBACd,KAAK,EAAE,cAAc;iBACrB,KAAK,EAAE,UAAU;iBACjB,IAAI,EAAE,8FAA8F;;;iBAGpG,IAAI,EAAE,OAAO;iBACb,KAAK,EAAE,aAAa;iBACpB,KAAK,EAAE,QAAQ;iBACf,IAAI;iBAGJ,MAAM;;;uBAGA,MAAM;wBACL,YAAY;wBACZ,OAAO;;;;;;;;CAQyB,CAAA;AAE3C,yFAAyF;AACzF,eAAO,MAAM,aAAa,UAAW,MAAM,GAAG,IAAI,QAAQ,MAAM,KAAG,MAAgD,CAAA;AAEnH,eAAO,MAAM,gBAAgB,aAAc,aAAa,UAAU,MAAM,KAAG,cAU1E,CAAA;AAED,+DAA+D;AAC/D,eAAO,MAAM,cAAc,aAAc,aAAa,KAAG,cASxD,CAAA;AAiED;;;GAGG;AACH,eAAO,MAAM,WAAW,aACZ,aAAa,UACf,MAAM,cACF,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,qBACL;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,OAAO,CAAA;CAAE,KAC9E,MA2CF,CAAA;AAED,wDAAwD;AACxD,eAAO,MAAM,cAAc,aACf,aAAa,cACX,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,YAClC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,OAAO,CAAA;CAAE,KACjD,MAEuD,CAAA;AAE1D,0EAA0E;AAC1E,eAAO,MAAM,cAAc,aAAc,aAAa,KAAG,OAUxD,CAAA"}
|