@leemour/cli-messaging 0.126.0 → 0.127.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/THIRD_PARTY_NOTICES +711 -0
- package/dist/cli/messenger/messages-command.d.ts.map +1 -1
- package/dist/cli/messenger/messages-command.js +2 -79
- package/dist/cli/messenger/messages-command.js.map +1 -1
- package/dist/cli/messenger/messages-search-command.d.ts +4 -0
- package/dist/cli/messenger/messages-search-command.d.ts.map +1 -0
- package/dist/cli/messenger/messages-search-command.js +99 -0
- package/dist/cli/messenger/messages-search-command.js.map +1 -0
- package/dist/mcp/tool.d.ts +1 -0
- package/dist/mcp/tool.d.ts.map +1 -1
- package/dist/mcp/tool.js +3 -1
- package/dist/mcp/tool.js.map +1 -1
- package/dist/mcp/tools/messages.d.ts.map +1 -1
- package/dist/mcp/tools/messages.js +14 -10
- package/dist/mcp/tools/messages.js.map +1 -1
- package/dist/search/legacy-regex.d.ts +7 -0
- package/dist/search/legacy-regex.d.ts.map +1 -0
- package/dist/search/legacy-regex.js +48 -0
- package/dist/search/legacy-regex.js.map +1 -0
- package/dist/search/lucene/automaton.d.ts +12 -0
- package/dist/search/lucene/automaton.d.ts.map +1 -0
- package/dist/search/lucene/automaton.js +295 -0
- package/dist/search/lucene/automaton.js.map +1 -0
- package/dist/search/lucene/dates.d.ts +15 -0
- package/dist/search/lucene/dates.d.ts.map +1 -0
- package/dist/search/lucene/dates.js +82 -0
- package/dist/search/lucene/dates.js.map +1 -0
- package/dist/search/lucene/migration.d.ts +21 -0
- package/dist/search/lucene/migration.d.ts.map +1 -0
- package/dist/search/lucene/migration.js +30 -0
- package/dist/search/lucene/migration.js.map +1 -0
- package/dist/search/lucene/parser.d.ts +3 -0
- package/dist/search/lucene/parser.d.ts.map +1 -0
- package/dist/search/lucene/parser.js +271 -0
- package/dist/search/lucene/parser.js.map +1 -0
- package/dist/search/lucene/presets.d.ts +6 -0
- package/dist/search/lucene/presets.d.ts.map +1 -0
- package/dist/search/lucene/presets.js +53 -0
- package/dist/search/lucene/presets.js.map +1 -0
- package/dist/search/lucene/registry.d.ts +201 -0
- package/dist/search/lucene/registry.d.ts.map +1 -0
- package/dist/search/lucene/registry.js +309 -0
- package/dist/search/lucene/registry.js.map +1 -0
- package/dist/search/lucene/resolved.d.ts +43 -0
- package/dist/search/lucene/resolved.d.ts.map +1 -0
- package/dist/search/lucene/resolved.js +2 -0
- package/dist/search/lucene/resolved.js.map +1 -0
- package/dist/search/lucene/types.d.ts +46 -0
- package/dist/search/lucene/types.d.ts.map +1 -0
- package/dist/search/lucene/types.js +31 -0
- package/dist/search/lucene/types.js.map +1 -0
- package/dist/services/index.d.ts +5 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +4 -0
- package/dist/services/index.js.map +1 -1
- package/dist/services/messages-search.d.ts +21 -0
- package/dist/services/messages-search.d.ts.map +1 -0
- package/dist/services/messages-search.js +165 -0
- package/dist/services/messages-search.js.map +1 -0
- package/dist/services/messages.d.ts +18 -1
- package/dist/services/messages.d.ts.map +1 -1
- package/dist/services/messages.js +16 -3
- package/dist/services/messages.js.map +1 -1
- package/dist/store/sqlite/legacy-regex.d.ts +7 -0
- package/dist/store/sqlite/legacy-regex.d.ts.map +1 -0
- package/dist/store/sqlite/legacy-regex.js +42 -0
- package/dist/store/sqlite/legacy-regex.js.map +1 -0
- package/dist/store/sqlite/lucene.d.ts +6 -0
- package/dist/store/sqlite/lucene.d.ts.map +1 -0
- package/dist/store/sqlite/lucene.js +318 -0
- package/dist/store/sqlite/lucene.js.map +1 -0
- package/dist/store/sqlite/search.d.ts.map +1 -1
- package/dist/store/sqlite/search.js +6 -30
- package/dist/store/sqlite/search.js.map +1 -1
- package/dist/store/store.d.ts +3 -0
- package/dist/store/store.d.ts.map +1 -1
- package/dist/store/store.js +4 -1
- package/dist/store/store.js.map +1 -1
- package/package.json +6 -4
- package/parity.json +1 -4
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
import { QUERY_LIMITS, queryError, walkQuery, } from "./types.js";
|
|
2
|
+
export const FIELD_VERSION = 1;
|
|
3
|
+
const terms = ["term", "phrase"];
|
|
4
|
+
export const QUERY_FIELDS = [
|
|
5
|
+
{
|
|
6
|
+
name: "text",
|
|
7
|
+
example: "invoice",
|
|
8
|
+
index: "message_words",
|
|
9
|
+
aliases: [],
|
|
10
|
+
type: "tokens",
|
|
11
|
+
operators: ["term", "phrase", "wildcard", "regex"],
|
|
12
|
+
normalization: "NFKD/marks/NFC/lowercase v1",
|
|
13
|
+
support: "A1",
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
name: "body",
|
|
17
|
+
example: "body:/.*invoice.*/",
|
|
18
|
+
index: "messages.text / bounded postfilter",
|
|
19
|
+
aliases: [],
|
|
20
|
+
type: "keyword",
|
|
21
|
+
operators: ["term", "phrase", "wildcard", "regex"],
|
|
22
|
+
normalization: "raw, case-sensitive",
|
|
23
|
+
support: "A1",
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
name: "from",
|
|
27
|
+
example: 'from:"Alice Synthetic"',
|
|
28
|
+
index: "identities / sender index",
|
|
29
|
+
aliases: [],
|
|
30
|
+
type: "person",
|
|
31
|
+
operators: terms,
|
|
32
|
+
normalization: "account-scoped resolution",
|
|
33
|
+
support: "A1",
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
name: "chat",
|
|
37
|
+
example: 'chat:"Work fixture"',
|
|
38
|
+
index: "chats / message time index",
|
|
39
|
+
aliases: [],
|
|
40
|
+
type: "chat",
|
|
41
|
+
operators: terms,
|
|
42
|
+
normalization: "account-scoped resolution",
|
|
43
|
+
support: "A1",
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: "date",
|
|
47
|
+
example: "date:[2026-01-01 TO 2026-02-01}",
|
|
48
|
+
index: "messages.sent_at",
|
|
49
|
+
aliases: [],
|
|
50
|
+
type: "timestamp",
|
|
51
|
+
operators: [...terms, "range"],
|
|
52
|
+
normalization: "ISO/calendar timezone",
|
|
53
|
+
support: "A1",
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
name: "kind",
|
|
57
|
+
example: "kind:private",
|
|
58
|
+
index: "chats.kind / peerKind metadata",
|
|
59
|
+
aliases: [],
|
|
60
|
+
type: "enum",
|
|
61
|
+
operators: terms,
|
|
62
|
+
normalization: "lowercase",
|
|
63
|
+
support: "A1",
|
|
64
|
+
values: ["private", "saved", "bot", "service", "group", "channel", "unknown"],
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
name: "has",
|
|
68
|
+
example: "has:file",
|
|
69
|
+
index: "attachments / messages_fts links",
|
|
70
|
+
aliases: [],
|
|
71
|
+
type: "enum",
|
|
72
|
+
operators: terms,
|
|
73
|
+
normalization: "lowercase",
|
|
74
|
+
support: "A1",
|
|
75
|
+
values: [
|
|
76
|
+
"attachment",
|
|
77
|
+
"link",
|
|
78
|
+
"file",
|
|
79
|
+
"photo",
|
|
80
|
+
"image",
|
|
81
|
+
"video",
|
|
82
|
+
"audio",
|
|
83
|
+
"voice",
|
|
84
|
+
"sticker",
|
|
85
|
+
"contact",
|
|
86
|
+
"location",
|
|
87
|
+
"poll",
|
|
88
|
+
],
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
name: "topic",
|
|
92
|
+
example: "chat:7 AND topic:42",
|
|
93
|
+
index: "messages.thread_native_id",
|
|
94
|
+
aliases: [],
|
|
95
|
+
type: "id",
|
|
96
|
+
operators: terms,
|
|
97
|
+
normalization: "string id, one chat required",
|
|
98
|
+
support: "A1",
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
name: "in",
|
|
102
|
+
example: "in:bots",
|
|
103
|
+
index: "accounts.provider",
|
|
104
|
+
aliases: [],
|
|
105
|
+
type: "source",
|
|
106
|
+
operators: terms,
|
|
107
|
+
normalization: "lowercase provider/account class",
|
|
108
|
+
support: "A1",
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
name: "preset",
|
|
112
|
+
example: "preset:secret",
|
|
113
|
+
index: "bounded local candidate detector",
|
|
114
|
+
aliases: [],
|
|
115
|
+
type: "enum",
|
|
116
|
+
operators: terms,
|
|
117
|
+
normalization: "versioned candidate detector",
|
|
118
|
+
support: "A1",
|
|
119
|
+
values: [
|
|
120
|
+
"password",
|
|
121
|
+
"code",
|
|
122
|
+
"api-key",
|
|
123
|
+
"secret",
|
|
124
|
+
"card",
|
|
125
|
+
"bank",
|
|
126
|
+
"passport",
|
|
127
|
+
"phone",
|
|
128
|
+
"email",
|
|
129
|
+
"telegram-link",
|
|
130
|
+
"url",
|
|
131
|
+
"contact",
|
|
132
|
+
"location",
|
|
133
|
+
],
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
name: "filename",
|
|
137
|
+
example: "filename:*.pdf",
|
|
138
|
+
index: "planned",
|
|
139
|
+
aliases: [],
|
|
140
|
+
type: "keyword",
|
|
141
|
+
operators: [...terms, "wildcard", "regex"],
|
|
142
|
+
normalization: "planned",
|
|
143
|
+
support: "planned",
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
name: "mime",
|
|
147
|
+
example: "mime:application/pdf",
|
|
148
|
+
index: "planned",
|
|
149
|
+
aliases: [],
|
|
150
|
+
type: "keyword",
|
|
151
|
+
operators: [...terms, "wildcard"],
|
|
152
|
+
normalization: "planned",
|
|
153
|
+
support: "planned",
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
name: "size",
|
|
157
|
+
example: "size:[1024 TO 4096]",
|
|
158
|
+
index: "planned",
|
|
159
|
+
aliases: [],
|
|
160
|
+
type: "bytes",
|
|
161
|
+
operators: [...terms, "range"],
|
|
162
|
+
normalization: "planned",
|
|
163
|
+
support: "planned",
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
name: "tag",
|
|
167
|
+
example: "tag:work",
|
|
168
|
+
index: "planned",
|
|
169
|
+
aliases: [],
|
|
170
|
+
type: "local-tag",
|
|
171
|
+
operators: terms,
|
|
172
|
+
normalization: "planned",
|
|
173
|
+
support: "planned",
|
|
174
|
+
},
|
|
175
|
+
];
|
|
176
|
+
export const validatePredicate = (node) => {
|
|
177
|
+
const field = QUERY_FIELDS.find(({ name }) => name === node.field);
|
|
178
|
+
if (!field && ["after", "before"].includes(node.field))
|
|
179
|
+
queryError("legacy_date_field", node.span, "use --language legacy or standard date ranges");
|
|
180
|
+
if (!field)
|
|
181
|
+
queryError("unknown_field", node.span, "use a field from the search field reference");
|
|
182
|
+
if (field.support === "planned")
|
|
183
|
+
queryError("unsupported_field", node.span, `${field.name} is planned for the next archive phase`);
|
|
184
|
+
if (!field.operators.includes(node.operator))
|
|
185
|
+
queryError("unsupported_operator", node.span, `${field.name} takes ${field.operators.join(", ")}`);
|
|
186
|
+
if (node.value === "" && !["text", "body"].includes(node.field))
|
|
187
|
+
queryError("missing_value", node.span);
|
|
188
|
+
if ("values" in field && !field.values.includes(node.value.toLowerCase()))
|
|
189
|
+
queryError("unknown_value", node.span, `${field.name} takes ${field.values.join(", ")}`);
|
|
190
|
+
if (field.name === "topic" && !/^\d+$/u.test(node.value))
|
|
191
|
+
queryError("invalid_topic", node.span, "use a thread id in one chat");
|
|
192
|
+
};
|
|
193
|
+
const record = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
194
|
+
const validSpan = (value) => record(value) &&
|
|
195
|
+
Number.isInteger(value.start) &&
|
|
196
|
+
Number.isInteger(value.end) &&
|
|
197
|
+
Number(value.start) >= 0 &&
|
|
198
|
+
Number(value.end) >= Number(value.start) &&
|
|
199
|
+
Number(value.end) <= QUERY_LIMITS.bytes;
|
|
200
|
+
export const validateAst = (input) => {
|
|
201
|
+
const failure = { start: 0, end: 0 };
|
|
202
|
+
if (!record(input) || input.version !== 1 || input.language !== "lucene-v1")
|
|
203
|
+
queryError("unsupported_version", failure);
|
|
204
|
+
let count = 0;
|
|
205
|
+
let bytes = 0;
|
|
206
|
+
const read = (value, depth) => {
|
|
207
|
+
if (++count > QUERY_LIMITS.nodes || depth > QUERY_LIMITS.depth)
|
|
208
|
+
queryError("query_limit", failure);
|
|
209
|
+
if (!record(value) || !validSpan(value.span))
|
|
210
|
+
queryError("invalid_ast", failure);
|
|
211
|
+
const span = { start: value.span.start, end: value.span.end };
|
|
212
|
+
if (value.kind === "boolean") {
|
|
213
|
+
if (!Array.isArray(value.clauses) || value.clauses.length === 0 || value.clauses.length > QUERY_LIMITS.nodes)
|
|
214
|
+
queryError("invalid_ast", span);
|
|
215
|
+
const clauses = value.clauses.map((clause) => {
|
|
216
|
+
if (!record(clause) || !["must", "should", "mustNot"].includes(String(clause.occur)))
|
|
217
|
+
queryError("invalid_ast", span);
|
|
218
|
+
const occur = clause.occur;
|
|
219
|
+
return { occur, node: read(clause.node, depth + 1) };
|
|
220
|
+
});
|
|
221
|
+
return { kind: "boolean", clauses, span };
|
|
222
|
+
}
|
|
223
|
+
if (value.kind !== "predicate" ||
|
|
224
|
+
typeof value.field !== "string" ||
|
|
225
|
+
typeof value.value !== "string" ||
|
|
226
|
+
!["term", "phrase", "wildcard", "regex", "range"].includes(String(value.operator)))
|
|
227
|
+
queryError("invalid_ast", span);
|
|
228
|
+
if (value.value.length + value.field.length > QUERY_LIMITS.bytes)
|
|
229
|
+
queryError("query_limit", span);
|
|
230
|
+
bytes += new TextEncoder().encode(value.value).length + value.field.length;
|
|
231
|
+
if (bytes > QUERY_LIMITS.bytes)
|
|
232
|
+
queryError("query_limit", span);
|
|
233
|
+
const operator = value.operator;
|
|
234
|
+
if (operator === "range" &&
|
|
235
|
+
(typeof value.upper !== "string" ||
|
|
236
|
+
typeof value.lowerInclusive !== "boolean" ||
|
|
237
|
+
typeof value.upperInclusive !== "boolean"))
|
|
238
|
+
queryError("invalid_ast", span);
|
|
239
|
+
if (typeof value.upper === "string") {
|
|
240
|
+
if (value.upper.length > QUERY_LIMITS.bytes)
|
|
241
|
+
queryError("query_limit", span);
|
|
242
|
+
bytes += new TextEncoder().encode(value.upper).length;
|
|
243
|
+
if (bytes > QUERY_LIMITS.bytes)
|
|
244
|
+
queryError("query_limit", span);
|
|
245
|
+
}
|
|
246
|
+
const node = {
|
|
247
|
+
kind: "predicate",
|
|
248
|
+
field: value.field,
|
|
249
|
+
operator,
|
|
250
|
+
value: value.value,
|
|
251
|
+
span,
|
|
252
|
+
...(operator === "range"
|
|
253
|
+
? {
|
|
254
|
+
upper: String(value.upper),
|
|
255
|
+
lowerInclusive: Boolean(value.lowerInclusive),
|
|
256
|
+
upperInclusive: Boolean(value.upperInclusive),
|
|
257
|
+
}
|
|
258
|
+
: {}),
|
|
259
|
+
};
|
|
260
|
+
validatePredicate(node);
|
|
261
|
+
return node;
|
|
262
|
+
};
|
|
263
|
+
const root = read(input.root, 1);
|
|
264
|
+
return { version: 1, language: "lucene-v1", root };
|
|
265
|
+
};
|
|
266
|
+
export const validateFields = (ast) => {
|
|
267
|
+
for (const node of walkQuery(ast.root))
|
|
268
|
+
validatePredicate(node);
|
|
269
|
+
return ast;
|
|
270
|
+
};
|
|
271
|
+
export const QUERY_OPERATORS = [
|
|
272
|
+
{
|
|
273
|
+
name: "term",
|
|
274
|
+
example: "invoice",
|
|
275
|
+
semantics: "Точное совпадение анализированного текста; без автоматического prefix",
|
|
276
|
+
},
|
|
277
|
+
{ name: "phrase", example: '"invoice paid"', semantics: "Последовательность анализированных слов" },
|
|
278
|
+
{
|
|
279
|
+
name: "implicit AND",
|
|
280
|
+
example: "invoice paid",
|
|
281
|
+
semantics: "Оба clauses обязательны; adjacency группируется по upstream grammar",
|
|
282
|
+
},
|
|
283
|
+
{ name: "AND / &&", example: "alpha AND beta", semantics: "Оба условия обязательны" },
|
|
284
|
+
{ name: "OR / ||", example: "alpha OR beta", semantics: "Любой optional clause, если нет required clause" },
|
|
285
|
+
{
|
|
286
|
+
name: "NOT / ! / -",
|
|
287
|
+
example: "alpha NOT beta",
|
|
288
|
+
semantics: "Исключить beta; чистое отрицание не выбирает весь архив",
|
|
289
|
+
},
|
|
290
|
+
{ name: "+", example: "+alpha OR beta", semantics: "alpha обязателен, beta optional" },
|
|
291
|
+
{ name: "group", example: "(alpha OR beta) gamma", semantics: "Скобки фиксируют grouping" },
|
|
292
|
+
{ name: "field group", example: "from:(alice OR bob)", semantics: "Поле наследуется внутри группы" },
|
|
293
|
+
{ name: "field equality", example: "kind=group", semantics: "Стандартный синоним записи kind:group" },
|
|
294
|
+
{
|
|
295
|
+
name: "range",
|
|
296
|
+
example: "date:[2026-01-01 TO 2026-02-01}",
|
|
297
|
+
semantics: "Inclusive [ ], exclusive { }, смешанные границы и *",
|
|
298
|
+
},
|
|
299
|
+
{ name: "comparison", example: "date>=2026-01-01", semantics: "Стандартный typed open range" },
|
|
300
|
+
{ name: "wildcard", example: "text:invo*", semantics: "Полный term; * — любое число символов, ? — один" },
|
|
301
|
+
{ name: "regex", example: "text:/pass(port)?/", semantics: "Полный term; bounded subset Lucene RegExp" },
|
|
302
|
+
{
|
|
303
|
+
name: "fuzzy / proximity",
|
|
304
|
+
example: "invoice~1",
|
|
305
|
+
semantics: "unsupported_operator; используйте legacy discovery либо точные слова",
|
|
306
|
+
},
|
|
307
|
+
{ name: "boost / minimum / intervals", example: "invoice^2", semantics: "unsupported_operator" },
|
|
308
|
+
];
|
|
309
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/search/lucene/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { AccountKey } from "../../store/store.js";
|
|
2
|
+
import type { DateRange } from "./dates.js";
|
|
3
|
+
import type { Predicate, QueryNode, Span } from "./types.js";
|
|
4
|
+
export type ResolvedPredicate = Predicate & {
|
|
5
|
+
resolution?: {
|
|
6
|
+
chat?: {
|
|
7
|
+
account: AccountKey;
|
|
8
|
+
chatId: string;
|
|
9
|
+
};
|
|
10
|
+
sender?: {
|
|
11
|
+
provider: string;
|
|
12
|
+
id: string;
|
|
13
|
+
};
|
|
14
|
+
outgoing?: boolean;
|
|
15
|
+
date?: DateRange;
|
|
16
|
+
source?: string;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
export type ResolvedNode = ResolvedPredicate | {
|
|
20
|
+
kind: "boolean";
|
|
21
|
+
clauses: {
|
|
22
|
+
occur: "must" | "should" | "mustNot";
|
|
23
|
+
node: ResolvedNode;
|
|
24
|
+
}[];
|
|
25
|
+
span: Span;
|
|
26
|
+
};
|
|
27
|
+
export interface QueryExecution {
|
|
28
|
+
root: ResolvedNode;
|
|
29
|
+
accounts: AccountKey[];
|
|
30
|
+
chat?: {
|
|
31
|
+
account: AccountKey;
|
|
32
|
+
chatId: string;
|
|
33
|
+
};
|
|
34
|
+
senders?: {
|
|
35
|
+
provider: string;
|
|
36
|
+
id: string;
|
|
37
|
+
}[];
|
|
38
|
+
limit: number;
|
|
39
|
+
newest?: boolean;
|
|
40
|
+
signal?: AbortSignal;
|
|
41
|
+
}
|
|
42
|
+
export declare const hasText: (node: QueryNode) => boolean;
|
|
43
|
+
//# sourceMappingURL=resolved.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolved.d.ts","sourceRoot":"","sources":["../../../src/search/lucene/resolved.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAE5D,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG;IAC1C,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,EAAE;YAAE,OAAO,EAAE,UAAU,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAA;QAC9C,MAAM,CAAC,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,EAAE,EAAE,MAAM,CAAA;SAAE,CAAA;QACzC,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,IAAI,CAAC,EAAE,SAAS,CAAA;QAChB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;CACF,CAAA;AACD,MAAM,MAAM,YAAY,GACpB,iBAAiB,GACjB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;QAAC,IAAI,EAAE,YAAY,CAAA;KAAE,EAAE,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAA;AAC5G,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,YAAY,CAAA;IAClB,QAAQ,EAAE,UAAU,EAAE,CAAA;IACtB,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,UAAU,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9C,OAAO,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC5C,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AACD,eAAO,MAAM,OAAO,SAAU,SAAS,KAAG,OAC0D,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolved.js","sourceRoot":"","sources":["../../../src/search/lucene/resolved.ts"],"names":[],"mappings":"AAyBA,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAe,EAAW,EAAE,CAClD,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export declare const QUERY_VERSION = 1;
|
|
2
|
+
export declare const QUERY_LIMITS: {
|
|
3
|
+
readonly bytes: 8192;
|
|
4
|
+
readonly depth: 32;
|
|
5
|
+
readonly nodes: 256;
|
|
6
|
+
readonly pattern: 1024;
|
|
7
|
+
readonly states: 10000;
|
|
8
|
+
readonly expansions: 10000;
|
|
9
|
+
readonly candidates: 50000;
|
|
10
|
+
readonly bodyBytes: 8388608;
|
|
11
|
+
readonly milliseconds: 2000;
|
|
12
|
+
readonly work: 10000000;
|
|
13
|
+
};
|
|
14
|
+
export type Span = {
|
|
15
|
+
start: number;
|
|
16
|
+
end: number;
|
|
17
|
+
};
|
|
18
|
+
export type Occur = "must" | "should" | "mustNot";
|
|
19
|
+
export type Operator = "term" | "phrase" | "wildcard" | "regex" | "range";
|
|
20
|
+
export interface Predicate {
|
|
21
|
+
kind: "predicate";
|
|
22
|
+
field: string;
|
|
23
|
+
operator: Operator;
|
|
24
|
+
value: string;
|
|
25
|
+
upper?: string;
|
|
26
|
+
lowerInclusive?: boolean;
|
|
27
|
+
upperInclusive?: boolean;
|
|
28
|
+
span: Span;
|
|
29
|
+
}
|
|
30
|
+
export type QueryNode = Predicate | {
|
|
31
|
+
kind: "boolean";
|
|
32
|
+
clauses: {
|
|
33
|
+
occur: Occur;
|
|
34
|
+
node: QueryNode;
|
|
35
|
+
}[];
|
|
36
|
+
span: Span;
|
|
37
|
+
};
|
|
38
|
+
export interface QueryAst {
|
|
39
|
+
version: 1;
|
|
40
|
+
language: "lucene-v1";
|
|
41
|
+
root: QueryNode;
|
|
42
|
+
}
|
|
43
|
+
export declare function queryError(reason: string, span: Span, alternative?: string): never;
|
|
44
|
+
export declare function exhausted(budget: string): never;
|
|
45
|
+
export declare const walkQuery: (node: QueryNode) => Predicate[];
|
|
46
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/search/lucene/types.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,IAAI,CAAA;AAC9B,eAAO,MAAM,YAAY;aACvB,KAAK,EAAE,IAAI;aACX,KAAK,EAAE,EAAE;aACT,KAAK,EAAE,GAAG;aACV,OAAO,EAAE,IAAI;aACb,MAAM,EAAE,KAAM;aACd,UAAU,EAAE,KAAM;aAClB,UAAU,EAAE,KAAM;aAClB,SAAS,EAAE,OAAS;aACpB,YAAY,EAAE,IAAI;aAClB,IAAI,EAAE,QAAU;CACR,CAAA;AACV,MAAM,MAAM,IAAI,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AACjD,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAA;AACjD,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,CAAA;AACzE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,WAAW,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,QAAQ,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,IAAI,EAAE,IAAI,CAAA;CACX;AACD,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE,EAAE,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAA;AACjH,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,CAAC,CAAA;IACV,QAAQ,EAAE,WAAW,CAAA;IACrB,IAAI,EAAE,SAAS,CAAA;CAChB;AACD,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,KAAK,CAWlF;AACD,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAM/C;AACD,eAAO,MAAM,SAAS,SAAU,SAAS,KAAG,SAAS,EACqC,CAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { CliError } from "@leemour/cli-core";
|
|
2
|
+
export const QUERY_VERSION = 1;
|
|
3
|
+
export const QUERY_LIMITS = {
|
|
4
|
+
bytes: 8192,
|
|
5
|
+
depth: 32,
|
|
6
|
+
nodes: 256,
|
|
7
|
+
pattern: 1024,
|
|
8
|
+
states: 10_000,
|
|
9
|
+
expansions: 10_000,
|
|
10
|
+
candidates: 50_000,
|
|
11
|
+
bodyBytes: 8_388_608,
|
|
12
|
+
milliseconds: 2000,
|
|
13
|
+
work: 10_000_000,
|
|
14
|
+
};
|
|
15
|
+
export function queryError(reason, span, alternative) {
|
|
16
|
+
throw new CliError("validation_error", `search: ${reason} at position ${span.start + 1}${alternative ? ` — ${alternative}` : ""}`, {
|
|
17
|
+
reason,
|
|
18
|
+
span,
|
|
19
|
+
...(alternative ? { alternative } : {}),
|
|
20
|
+
guide: "https://github.com/leemour/cli-messaging/blob/main/docs/search/query-language.md",
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
export function exhausted(budget) {
|
|
24
|
+
throw new CliError("validation_error", `search exceeded its ${budget} budget — narrow the chat or date range`, {
|
|
25
|
+
reason: "query_limit",
|
|
26
|
+
budget,
|
|
27
|
+
complete: false,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
export const walkQuery = (node) => node.kind === "predicate" ? [node] : node.clauses.flatMap(({ node }) => walkQuery(node));
|
|
31
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/search/lucene/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE5C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAA;AAC9B,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,GAAG;IACV,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,MAAM;IACd,UAAU,EAAE,MAAM;IAClB,UAAU,EAAE,MAAM;IAClB,SAAS,EAAE,SAAS;IACpB,YAAY,EAAE,IAAI;IAClB,IAAI,EAAE,UAAU;CACR,CAAA;AAoBV,MAAM,UAAU,UAAU,CAAC,MAAc,EAAE,IAAU,EAAE,WAAoB;IACzE,MAAM,IAAI,QAAQ,CAChB,kBAAkB,EAClB,WAAW,MAAM,gBAAgB,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAC1F;QACE,MAAM;QACN,IAAI;QACJ,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,KAAK,EAAE,kFAAkF;KAC1F,CACF,CAAA;AACH,CAAC;AACD,MAAM,UAAU,SAAS,CAAC,MAAc;IACtC,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,uBAAuB,MAAM,yCAAyC,EAAE;QAC7G,MAAM,EAAE,aAAa;QACrB,MAAM;QACN,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAA;AACJ,CAAC;AACD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAe,EAAe,EAAE,CACxD,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA"}
|
package/dist/services/index.d.ts
CHANGED
|
@@ -61,4 +61,9 @@ export interface Services {
|
|
|
61
61
|
export type Override = (base: Services, deps: ServiceDeps) => Partial<Services>;
|
|
62
62
|
/** The shared services, with the messenger's `services` override applied — commands and MCP tools alike. */
|
|
63
63
|
export declare const servicesFor: (deps: ServiceDeps) => Services;
|
|
64
|
+
export { migrateLegacyQuery, type QueryMigration, type SavedQuery } from "../search/lucene/migration.js";
|
|
65
|
+
export { parseLucene } from "../search/lucene/parser.js";
|
|
66
|
+
export { FIELD_VERSION, QUERY_FIELDS, QUERY_OPERATORS, validateAst } from "../search/lucene/registry.js";
|
|
67
|
+
export { type Predicate, QUERY_LIMITS, QUERY_VERSION, type QueryAst, type QueryNode } from "../search/lucene/types.js";
|
|
68
|
+
export type { QueryMetadata, SearchCoverage } from "./messages-search.js";
|
|
64
69
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"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"}
|
package/dist/services/index.js
CHANGED
|
@@ -43,4 +43,8 @@ export const servicesFor = (deps) => {
|
|
|
43
43
|
};
|
|
44
44
|
return deps.messenger.services ? { ...base, ...deps.messenger.services(base, deps) } : base;
|
|
45
45
|
};
|
|
46
|
+
export { migrateLegacyQuery } from "../search/lucene/migration.js";
|
|
47
|
+
export { parseLucene } from "../search/lucene/parser.js";
|
|
48
|
+
export { FIELD_VERSION, QUERY_FIELDS, QUERY_OPERATORS, validateAst } from "../search/lucene/registry.js";
|
|
49
|
+
export { QUERY_LIMITS, QUERY_VERSION } from "../search/lucene/types.js";
|
|
46
50
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,cAAc,EAAE,MAAM,cAAc,CAAA;AAClE,OAAO,EAAqB,YAAY,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAuB,cAAc,EAAE,MAAM,cAAc,CAAA;AAClE,OAAO,EAAqB,YAAY,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EAA6B,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAEpF,OAAO,EAA0B,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC3E,OAAO,EAAuB,cAAc,EAAE,MAAM,cAAc,CAAA;AAClE,OAAO,EAAqB,YAAY,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAwB,eAAe,EAAE,MAAM,eAAe,CAAA;AACrE,OAAO,EAA0B,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC3E,OAAO,EAAsB,aAAa,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAsB,aAAa,EAAE,MAAM,aAAa,CAAA;AAG/D,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAEjE,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAErE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAE3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAErD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAEvD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAazC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEnD,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAEpD,OAAO,EAAsB,aAAa,EAAE,MAAM,aAAa,CAAA;AAuB/D,4GAA4G;AAC5G,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAiB,EAAY,EAAE;IACzD,MAAM,IAAI,GAAa;QACrB,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC;QAC3B,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC;QAC/B,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;QACzB,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC;QAC3B,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;QACzB,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;QAC7B,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;QACzB,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;QAC7B,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC;QAC7B,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC;QACnC,aAAa,EAAE,oBAAoB,CAAC,IAAI,CAAC;QACzC,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC;KACpC,CAAA;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AAC7F,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Messenger } from "../cli/messenger/context.js";
|
|
2
|
+
import type { AccountKey, MessageStore } from "../store/store.js";
|
|
3
|
+
import { type SearchFound, type SearchQuery } from "./messages.js";
|
|
4
|
+
export interface QueryMetadata {
|
|
5
|
+
language: "lucene-v1";
|
|
6
|
+
version: 1;
|
|
7
|
+
fieldsVersion: number;
|
|
8
|
+
presetVersion: number;
|
|
9
|
+
timezone: string;
|
|
10
|
+
order: "newest" | "relevance";
|
|
11
|
+
}
|
|
12
|
+
export interface SearchCoverage {
|
|
13
|
+
state: "complete" | "partial" | "unknown";
|
|
14
|
+
lastSyncedAt: string | null;
|
|
15
|
+
inventoryComplete: false;
|
|
16
|
+
accounts: AccountKey[];
|
|
17
|
+
chat?: string;
|
|
18
|
+
coveredChats: number;
|
|
19
|
+
}
|
|
20
|
+
export declare const searchLucene: (store: MessageStore, account: AccountKey, request: SearchQuery, messenger?: Partial<Pick<Messenger, "savedChatId">>) => Promise<SearchFound>;
|
|
21
|
+
//# sourceMappingURL=messages-search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages-search.d.ts","sourceRoot":"","sources":["../../src/services/messages-search.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAS5D,OAAO,KAAK,EAAE,UAAU,EAAoB,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACnF,OAAO,EAAa,KAAK,WAAW,EAAE,KAAK,WAAW,EAAe,MAAM,eAAe,CAAA;AAE1F,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,WAAW,CAAA;IACrB,OAAO,EAAE,CAAC,CAAA;IACV,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,QAAQ,GAAG,WAAW,CAAA;CAC9B;AACD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAA;IACzC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,iBAAiB,EAAE,KAAK,CAAA;IACxB,QAAQ,EAAE,UAAU,EAAE,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;CACrB;AAOD,eAAO,MAAM,YAAY,UAChB,YAAY,WACV,UAAU,WACV,WAAW,cACT,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,KACjD,OAAO,CAAC,WAAW,CA8JrB,CAAA"}
|