@leemour/cli-messaging 0.177.0 → 0.178.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 (64) hide show
  1. package/README.md +5 -0
  2. package/dist/cli/messenger/admin-commands.d.ts.map +1 -1
  3. package/dist/cli/messenger/admin-commands.js +28 -26
  4. package/dist/cli/messenger/admin-commands.js.map +1 -1
  5. package/dist/cli/messenger/admin-statistics-command.d.ts +5 -0
  6. package/dist/cli/messenger/admin-statistics-command.d.ts.map +1 -0
  7. package/dist/cli/messenger/admin-statistics-command.js +59 -0
  8. package/dist/cli/messenger/admin-statistics-command.js.map +1 -0
  9. package/dist/cli/messenger/context.d.ts +4 -0
  10. package/dist/cli/messenger/context.d.ts.map +1 -1
  11. package/dist/cli/messenger/context.js.map +1 -1
  12. package/dist/cli/messenger/rankings-command.d.ts.map +1 -1
  13. package/dist/cli/messenger/rankings-command.js +2 -1
  14. package/dist/cli/messenger/rankings-command.js.map +1 -1
  15. package/dist/cli/messenger/searches-command.d.ts.map +1 -1
  16. package/dist/cli/messenger/searches-command.js +11 -8
  17. package/dist/cli/messenger/searches-command.js.map +1 -1
  18. package/dist/cli/messenger/stats-command.d.ts.map +1 -1
  19. package/dist/cli/messenger/stats-command.js +5 -0
  20. package/dist/cli/messenger/stats-command.js.map +1 -1
  21. package/dist/domain/admin-statistics.d.ts +77 -0
  22. package/dist/domain/admin-statistics.d.ts.map +1 -0
  23. package/dist/domain/admin-statistics.js +201 -0
  24. package/dist/domain/admin-statistics.js.map +1 -0
  25. package/dist/mcp/tools/admin-statistics.d.ts +4 -0
  26. package/dist/mcp/tools/admin-statistics.d.ts.map +1 -0
  27. package/dist/mcp/tools/admin-statistics.js +74 -0
  28. package/dist/mcp/tools/admin-statistics.js.map +1 -0
  29. package/dist/mcp/tools/admin.d.ts.map +1 -1
  30. package/dist/mcp/tools/admin.js +6 -1
  31. package/dist/mcp/tools/admin.js.map +1 -1
  32. package/dist/mcp/tools/rankings.d.ts.map +1 -1
  33. package/dist/mcp/tools/rankings.js +2 -1
  34. package/dist/mcp/tools/rankings.js.map +1 -1
  35. package/dist/mcp/tools/searches.d.ts.map +1 -1
  36. package/dist/mcp/tools/searches.js +3 -0
  37. package/dist/mcp/tools/searches.js.map +1 -1
  38. package/dist/mcp/tools.d.ts.map +1 -1
  39. package/dist/mcp/tools.js +2 -0
  40. package/dist/mcp/tools.js.map +1 -1
  41. package/dist/services/admin-statistics.d.ts +70 -0
  42. package/dist/services/admin-statistics.d.ts.map +1 -0
  43. package/dist/services/admin-statistics.js +275 -0
  44. package/dist/services/admin-statistics.js.map +1 -0
  45. package/dist/services/index.d.ts +4 -0
  46. package/dist/services/index.d.ts.map +1 -1
  47. package/dist/services/index.js +3 -0
  48. package/dist/services/index.js.map +1 -1
  49. package/dist/services/searches.d.ts +2 -0
  50. package/dist/services/searches.d.ts.map +1 -1
  51. package/dist/services/searches.js +22 -9
  52. package/dist/services/searches.js.map +1 -1
  53. package/dist/store/sqlite/admin-statistics.d.ts +52 -0
  54. package/dist/store/sqlite/admin-statistics.d.ts.map +1 -0
  55. package/dist/store/sqlite/admin-statistics.js +196 -0
  56. package/dist/store/sqlite/admin-statistics.js.map +1 -0
  57. package/dist/store/sqlite/searches.d.ts +1 -1
  58. package/dist/store/sqlite/searches.d.ts.map +1 -1
  59. package/dist/store/store.d.ts +3 -0
  60. package/dist/store/store.d.ts.map +1 -1
  61. package/dist/store/store.js +2 -0
  62. package/dist/store/store.js.map +1 -1
  63. package/package.json +1 -1
  64. package/parity.json +4 -0
@@ -0,0 +1,275 @@
1
+ import { CliError } from "@leemour/cli-core";
2
+ import { parseLocator } from "../domain/locator.js";
3
+ import { hasStems } from "../search/lucene/resolved.js";
4
+ import { createStemmer, DEFAULT_STEMMERS } from "../search/stem.js";
5
+ import { prepareLucene } from "./messages-search.js";
6
+ import { momentOf } from "./moment.js";
7
+ import { rankingSelection, readRankingSelection } from "./rankings-selection.js";
8
+ import { searchRecordOf } from "./searches.js";
9
+ function invalid(message) {
10
+ throw new CliError("validation_error", message);
11
+ }
12
+ const duration = (text, flag) => {
13
+ if (!/^\d+(?:\.\d+)?[smhdw]$/.test(text))
14
+ invalid(`${flag} takes a positive duration such as 4h or 7d`);
15
+ const units = { s: 1000, m: 60_000, h: 3_600_000, d: 86_400_000, w: 604_800_000 };
16
+ const value = Number(text.slice(0, -1)) * (units[text.slice(-1)] ?? 0);
17
+ if (!Number.isSafeInteger(value) || value <= 0)
18
+ invalid(`${flag} takes a positive finite duration`);
19
+ return value;
20
+ };
21
+ const count = (value, flag) => {
22
+ if (!Number.isSafeInteger(value) || value < 0)
23
+ invalid(`${flag} takes a nonnegative integer`);
24
+ return value;
25
+ };
26
+ const answerers = (refs, accounts) => {
27
+ const found = refs.map((ref) => {
28
+ if (ref.startsWith("person:")) {
29
+ const parts = ref.slice(7).split("/");
30
+ if (parts.length !== 3 || parts.some((part) => !part))
31
+ invalid("answerer needs person:<provider>/<account>/<id>");
32
+ let decoded;
33
+ try {
34
+ decoded = parts.map(decodeURIComponent);
35
+ }
36
+ catch {
37
+ return invalid("invalid answerer encoding");
38
+ }
39
+ const [provider, account, id] = decoded;
40
+ if (!accounts.some((one) => one.provider === provider && one.account === account))
41
+ invalid("answerer account is outside this query");
42
+ return { provider, account, id };
43
+ }
44
+ if (accounts.length !== 1 || !ref || ref.length > 256)
45
+ invalid("bare answerer ids require one scoped account; use person:<provider>/<account>/<id>");
46
+ return { ...accounts[0], id: ref };
47
+ });
48
+ return [...new Map(found.map((one) => [JSON.stringify(one), one])).values()];
49
+ };
50
+ const requireStore = (store) => {
51
+ if (!store.adminStatisticsQuery)
52
+ invalid("this store does not support administrator statistics — upgrade cli-messaging");
53
+ return store.adminStatisticsQuery.bind(store);
54
+ };
55
+ export const isAdminSelection = (selection) => {
56
+ let raw = selection;
57
+ if (typeof raw === "string") {
58
+ try {
59
+ raw = JSON.parse(raw);
60
+ }
61
+ catch {
62
+ return false;
63
+ }
64
+ }
65
+ return !!raw && typeof raw === "object" && "kind" in raw && raw.kind === "admin-statistics";
66
+ };
67
+ export const readAdminSelection = async (store, input) => {
68
+ const encoded = typeof input === "string" ? input : JSON.stringify(input);
69
+ if (!encoded || Buffer.byteLength(encoded) > 64 * 1024)
70
+ invalid("report selection must fit within 64 KiB");
71
+ let raw;
72
+ try {
73
+ raw = JSON.parse(encoded);
74
+ }
75
+ catch {
76
+ return invalid("invalid report selection");
77
+ }
78
+ if (!raw ||
79
+ typeof raw !== "object" ||
80
+ raw.kind !== "admin-statistics" ||
81
+ raw.version !== 1 ||
82
+ !raw.options ||
83
+ !raw.entity)
84
+ invalid("invalid report selection version");
85
+ const base = await readRankingSelection(store, raw.base);
86
+ const o = raw.options;
87
+ if (!["unanswered", "responses", "newcomers", "discussion"].includes(o.report) || !Array.isArray(o.answerers))
88
+ invalid("invalid report options");
89
+ for (const key of ["cutoff", "olderThan", "within", "joinSince", "joinUntil", "minViews", "maxReplies"])
90
+ if (!Number.isSafeInteger(o[key]) ||
91
+ (["cutoff", "olderThan", "within", "minViews", "maxReplies"].includes(key) && o[key] < 0))
92
+ invalid("invalid report numeric options");
93
+ if (o.within <= 0 || o.olderThan <= 0 || o.joinSince > o.joinUntil || o.cutoff > Date.now())
94
+ invalid("invalid report cutoff or window");
95
+ for (const person of o.answerers) {
96
+ if (!person ||
97
+ typeof person.id !== "string" ||
98
+ !person.id ||
99
+ !base.execution.accounts.some((one) => one.provider === person.provider && one.account === person.account))
100
+ invalid("answerer is outside report scope");
101
+ }
102
+ const entity = raw.entity;
103
+ if (!entity.account ||
104
+ typeof entity.id !== "string" ||
105
+ !base.execution.accounts.some((one) => one.provider === entity.account.provider && one.account === entity.account.account))
106
+ invalid("evidence entity is outside report scope");
107
+ if ((o.report === "responses" && !o.answerers.length) || (o.report === "newcomers" && !base.execution.chat))
108
+ invalid("invalid report scope");
109
+ return { base, options: o, entity };
110
+ };
111
+ export const adminStatisticsService = (deps) => ({
112
+ report: async (report, query) => {
113
+ if (!["unanswered", "responses", "newcomers", "discussion"].includes(report))
114
+ invalid("unknown administrator report");
115
+ if (query.syncFirst || query.language === "legacy" || query.pattern || query.newest || query.context)
116
+ invalid("administrator reports read stored strict Lucene selections without sync/regex/newest/context");
117
+ if (!Number.isInteger(query.limit) || query.limit < 1 || query.limit > 100)
118
+ invalid("report limit must be 1–100");
119
+ const cutoff = Date.now(), store = await deps.store(), account = await deps.account();
120
+ if (report === "newcomers" && (!query.chat || query.text || query.ast))
121
+ invalid("newcomers requires one stored chat and join-date options, without a message query");
122
+ const saved = query.saved === undefined ? undefined : await store.storedSearch(query.saved);
123
+ if (query.saved !== undefined && !saved)
124
+ invalid("saved administrator report not found");
125
+ if (saved && saved.params.adminReport !== report)
126
+ invalid("saved report belongs to another report kind");
127
+ const pinned = saved ? await readAdminSelection(store, saved.params.selection) : undefined;
128
+ const prepared = pinned
129
+ ? {
130
+ execution: {
131
+ ...pinned.base.execution,
132
+ limit: query.limit,
133
+ ...(query.signal ? { signal: query.signal } : {}),
134
+ },
135
+ timezone: pinned.base.timezone,
136
+ selectedChat: pinned.base.contextChat ?? pinned.base.execution.chat,
137
+ }
138
+ : await prepareLucene(store, account, { ...query, language: "lucene" }, deps.messenger);
139
+ if (pinned && hasStems(prepared.execution.root))
140
+ prepared.execution.stemmer = createStemmer((await store.stemmers()) ?? DEFAULT_STEMMERS);
141
+ if (pinned && query.text?.trim()) {
142
+ const extra = await prepareLucene(store, account, {
143
+ text: query.text,
144
+ accounts: prepared.execution.accounts,
145
+ timezone: prepared.timezone,
146
+ limit: query.limit,
147
+ language: "lucene",
148
+ }, deps.messenger);
149
+ prepared.execution.root = {
150
+ kind: "boolean",
151
+ span: { start: 0, end: 0 },
152
+ clauses: [
153
+ { occur: "must", node: prepared.execution.root },
154
+ { occur: "must", node: extra.execution.root },
155
+ ],
156
+ };
157
+ }
158
+ if (pinned && query.chat) {
159
+ const explicit = await prepareLucene(store, account, { chat: query.chat, accounts: prepared.execution.accounts, limit: query.limit }, deps.messenger);
160
+ if (JSON.stringify(explicit.selectedChat) !== JSON.stringify(prepared.selectedChat))
161
+ invalid("a saved report keeps its resolved chat scope");
162
+ }
163
+ if (pinned &&
164
+ (query.source || query.ast || query.exact || (query.timezone && query.timezone !== prepared.timezone)))
165
+ invalid("a saved report keeps its resolved query, accounts and timezone");
166
+ const options = {
167
+ report,
168
+ cutoff,
169
+ olderThan: query.olderThan === undefined && pinned
170
+ ? pinned.options.olderThan
171
+ : duration(query.olderThan ?? "24h", "--older-than"),
172
+ within: query.within === undefined && pinned ? pinned.options.within : duration(query.within ?? "7d", "--within"),
173
+ joinSince: query.sinceTime
174
+ ? momentOf(query.sinceTime, "--since-time", cutoff)
175
+ : (pinned?.options.joinSince ?? cutoff - 30 * 86_400_000),
176
+ joinUntil: query.untilTime
177
+ ? momentOf(query.untilTime, "--until-time", cutoff)
178
+ : (pinned?.options.joinUntil ?? cutoff),
179
+ minViews: count(query.minViews ?? pinned?.options.minViews ?? 1, "--min-views"),
180
+ maxReplies: count(query.maxReplies ?? pinned?.options.maxReplies ?? 0, "--max-replies"),
181
+ answerers: query.answerers === undefined && pinned
182
+ ? pinned.options.answerers
183
+ : answerers(query.answerers ?? [], prepared.execution.accounts),
184
+ };
185
+ if (!Number.isSafeInteger(options.joinSince) || !Number.isSafeInteger(options.joinUntil))
186
+ invalid("invalid join dates");
187
+ if (options.joinSince > options.joinUntil)
188
+ invalid("join dates are reversed");
189
+ if (report === "responses" && !options.answerers.length)
190
+ invalid("responses requires at least one --answerer identity");
191
+ const result = await requireStore(store)(prepared.execution, { options });
192
+ const firstAccount = prepared.execution.accounts[0];
193
+ if (deps.history !== false && firstAccount) {
194
+ const entity = { account: firstAccount, id: "report" };
195
+ const base = rankingSelection("contacts", { measure: "messages" }, prepared.timezone, prepared.execution, entity, prepared.selectedChat);
196
+ const selection = { kind: "admin-statistics", version: 1, base, options, entity };
197
+ await store.recordSearch(searchRecordOf("admin-statistics", {
198
+ adminReport: report,
199
+ selection,
200
+ language: "lucene",
201
+ timezone: prepared.timezone,
202
+ }), saved ? { saved: saved.id } : {});
203
+ }
204
+ return {
205
+ ...result,
206
+ report,
207
+ detectorVersion: 1,
208
+ items: result.items.map((row) => {
209
+ const target = row.message ? "messages" : "contacts";
210
+ const base = rankingSelection(target, { measure: target === "messages" ? "views" : "messages" }, prepared.timezone, prepared.execution, {
211
+ account: row.account,
212
+ id: row.message ? parseLocator(row.message).message : row.id,
213
+ ...(row.chatId ? { chatId: row.chatId } : {}),
214
+ }, prepared.selectedChat);
215
+ const selection = {
216
+ kind: "admin-statistics",
217
+ version: 1,
218
+ base,
219
+ options,
220
+ entity: { account: row.account, id: row.id },
221
+ };
222
+ if (Buffer.byteLength(JSON.stringify(selection)) > 64 * 1024)
223
+ invalid("report evidence selection exceeds 64 KiB — narrow query selectors");
224
+ return {
225
+ ...row,
226
+ drilldown: {
227
+ command: `stats ${target} evidence`,
228
+ arguments: {
229
+ ...(row.message ? { message: row.message } : { person: row.id }),
230
+ component: "report",
231
+ selection,
232
+ },
233
+ },
234
+ };
235
+ }),
236
+ };
237
+ },
238
+ evidence: async (target, reference, input, request) => {
239
+ if (request.component !== "report")
240
+ invalid("administrator evidence component must be report");
241
+ if (!Number.isInteger(request.limit) || request.limit < 1 || request.limit > 100)
242
+ invalid("evidence limit must be 1–100");
243
+ const store = await deps.store();
244
+ const { base, options: o, entity } = await readAdminSelection(store, input);
245
+ if (base.target !== target)
246
+ invalid("report selection belongs to another evidence target");
247
+ if (reference !== entity.id ||
248
+ entity.account.provider !== base.entity.account.provider ||
249
+ entity.account.account !== base.entity.account.account ||
250
+ (target === "contacts" && entity.id !== base.entity.id))
251
+ invalid("report reference does not match its selection");
252
+ if (target === "messages") {
253
+ const locator = parseLocator(reference);
254
+ if (locator.provider !== entity.account.provider ||
255
+ locator.account !== entity.account.account ||
256
+ locator.message !== base.entity.id ||
257
+ locator.chat !== base.entity.chatId)
258
+ invalid("message reference does not match report scope");
259
+ }
260
+ const execution = {
261
+ ...base.execution,
262
+ limit: request.limit,
263
+ ...(request.signal ? { signal: request.signal } : {}),
264
+ };
265
+ if (hasStems(execution.root))
266
+ execution.stemmer = createStemmer((await store.stemmers()) ?? DEFAULT_STEMMERS);
267
+ const result = await requireStore(store)(execution, {
268
+ options: o,
269
+ evidence: { entity, ...(request.cursor ? { cursor: request.cursor } : {}) },
270
+ });
271
+ const { evidence, ...found } = result;
272
+ return { ...found, items: evidence ?? [], component: "report" };
273
+ },
274
+ });
275
+ //# sourceMappingURL=admin-statistics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-statistics.js","sourceRoot":"","sources":["../../src/services/admin-statistics.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { type BotCheckService } from "../botcheck/service.js";
2
2
  import { type AccountService } from "./account.js";
3
3
  import { type AdminService } from "./admin.js";
4
+ import { type AdminStatisticsService } from "./admin-statistics.js";
4
5
  import { type ArchiveService } from "./archive.js";
5
6
  import { gapsService } from "./archive-gaps.js";
6
7
  import { type AttachmentsService } from "./attachments.js";
@@ -64,6 +65,7 @@ export { type TopicsService, topicsService } from "./topics.js";
64
65
  export interface Services {
65
66
  metadata: ReturnType<typeof metadataService>;
66
67
  privatePeople: ReturnType<typeof privatePeopleService>;
68
+ adminStatistics: AdminStatisticsService;
67
69
  rankings: RankingsService;
68
70
  topics: TopicsService;
69
71
  messages: MessagesService;
@@ -95,6 +97,8 @@ export { migrateLegacyQuery, type QueryMigration, type SavedQuery } from "../sea
95
97
  export { parseLucene } from "../search/lucene/parser.js";
96
98
  export { FIELD_VERSION, QUERY_FIELDS, QUERY_OPERATORS, validateAst } from "../search/lucene/registry.js";
97
99
  export { type Predicate, QUERY_LIMITS, QUERY_VERSION, type QueryAst, type QueryNode } from "../search/lucene/types.js";
100
+ export type { AdminFound, AdminQuery, AdminSelection, AdminStatisticsService } from "./admin-statistics.js";
101
+ export { adminStatisticsService } from "./admin-statistics.js";
98
102
  export { GAP_BOUNDS, type GapPlan, type GapRepair, gapsService, type RepairOptions } from "./archive-gaps.js";
99
103
  export type { QueryMetadata, SearchCoverage } from "./messages-search.js";
100
104
  export { metadataService } from "./metadata.js";
@@ -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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"}
@@ -1,6 +1,7 @@
1
1
  import { botCheckService } from "../botcheck/service.js";
2
2
  import { accountService } from "./account.js";
3
3
  import { adminService } from "./admin.js";
4
+ import { adminStatisticsService } from "./admin-statistics.js";
4
5
  import { archiveService } from "./archive.js";
5
6
  import { gapsService } from "./archive-gaps.js";
6
7
  import { attachmentsService } from "./attachments.js";
@@ -45,6 +46,7 @@ export const servicesFor = (deps) => {
45
46
  const base = {
46
47
  metadata: metadataService(deps),
47
48
  privatePeople: privatePeopleService(deps),
49
+ adminStatistics: adminStatisticsService(deps),
48
50
  rankings: rankingsService(deps),
49
51
  topics: topicsService(deps),
50
52
  messages: messagesService(deps),
@@ -71,6 +73,7 @@ export { migrateLegacyQuery } from "../search/lucene/migration.js";
71
73
  export { parseLucene } from "../search/lucene/parser.js";
72
74
  export { FIELD_VERSION, QUERY_FIELDS, QUERY_OPERATORS, validateAst } from "../search/lucene/registry.js";
73
75
  export { QUERY_LIMITS, QUERY_VERSION } from "../search/lucene/types.js";
76
+ export { adminStatisticsService } from "./admin-statistics.js";
74
77
  export { GAP_BOUNDS, gapsService } from "./archive-gaps.js";
75
78
  export { metadataService } from "./metadata.js";
76
79
  export { upgradePackage, } from "./package-upgrade.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
+ import type { AdminReport } from "../domain/admin-statistics.js";
1
2
  import type { RankingInput, RankingTarget } from "../domain/rankings-options.js";
2
3
  import type { SearchCommand, SearchRecord, StoredSearch } from "../store/store.js";
3
4
  import type { ServiceDeps } from "./deps.js";
4
5
  import type { StatsGrouping } from "./messages-search.js";
5
6
  /** What a run or a saved search keeps: the query and options as given, never a message or a result. */
6
7
  export interface SearchParams extends RankingInput {
8
+ adminReport?: AdminReport;
7
9
  selection?: unknown;
8
10
  target?: RankingTarget;
9
11
  text?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"searches.d.ts","sourceRoot":"","sources":["../../src/services/searches.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAIhF,OAAO,KAAK,EAAgB,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEzD,uGAAuG;AACvG,MAAM,WAAW,YAAa,SAAQ,YAAY;IAChD,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,sEAAsE;IACtE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,qEAAqE;IACrE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,EAAE,CAAC,EAAE,aAAa,CAAA;CACnB;AAED,qGAAqG;AACrG,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,MAAM,EAAE,YAAY,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,kGAAkG;IAClG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IAClG,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IAC9C,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAA;IAC/B,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,YAAY,EAAE,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IAC5E,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IAChD,KAAK,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACrC;;;OAGG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;CACzE;AA2BD,wGAAwG;AACxG,eAAO,MAAM,cAAc,YAAa,aAAa,UAAU,YAAY,KAAG,YAM5E,CAAA;AAmDF,eAAO,MAAM,eAAe,SAAU,WAAW,KAAG,eAgFnD,CAAA"}
1
+ {"version":3,"file":"searches.d.ts","sourceRoot":"","sources":["../../src/services/searches.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAIhF,OAAO,KAAK,EAAgB,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEzD,uGAAuG;AACvG,MAAM,WAAW,YAAa,SAAQ,YAAY;IAChD,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,sEAAsE;IACtE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,qEAAqE;IACrE,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,EAAE,CAAC,EAAE,aAAa,CAAA;CACnB;AAED,qGAAqG;AACrG,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,MAAM,EAAE,YAAY,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,kGAAkG;IAClG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IAClG,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IAC9C,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAA;IAC/B,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,YAAY,EAAE,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;IAC5E,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;IAChD,KAAK,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACrC;;;OAGG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;CACzE;AA2BD,wGAAwG;AACxG,eAAO,MAAM,cAAc,YAAa,aAAa,UAAU,YAAY,KAAG,YAM5E,CAAA;AAmDF,eAAO,MAAM,eAAe,SAAU,WAAW,KAAG,eA8FnD,CAAA"}
@@ -2,6 +2,7 @@ import { CliError, singleLine } from "@leemour/cli-core";
2
2
  import { parseLucene } from "../search/lucene/parser.js";
3
3
  import { FIELD_VERSION, validateAst, validateFields } from "../search/lucene/registry.js";
4
4
  import { QUERY_VERSION } from "../search/lucene/types.js";
5
+ import { isAdminSelection, readAdminSelection } from "./admin-statistics.js";
5
6
  const NAME = /^[a-z0-9][a-z0-9-]{0,63}$/;
6
7
  const nameOf = (value) => {
7
8
  const name = value.trim().toLowerCase();
@@ -83,15 +84,27 @@ export const searchesService = (deps) => {
83
84
  return search;
84
85
  };
85
86
  return {
86
- create: (name, params, { replace = false } = {}) => inStore((store) => store.saveSearch(nameOf(name), searchRecordOf(params.target
87
- ? params.target === "messages"
88
- ? "message-top"
89
- : "author-top"
90
- : params.by === undefined
91
- ? "search"
92
- : "stats", checked(params)), {
93
- replace,
94
- })),
87
+ create: (name, params, { replace = false } = {}) => inStore(async (store) => {
88
+ if (isAdminSelection(params.selection)) {
89
+ const selected = await readAdminSelection(store, params.selection);
90
+ const normalized = typeof params.selection === "string" ? JSON.parse(params.selection) : params.selection;
91
+ return store.saveSearch(nameOf(name), searchRecordOf("admin-statistics", {
92
+ adminReport: selected.options.report,
93
+ selection: normalized,
94
+ language: "lucene",
95
+ timezone: selected.base.timezone,
96
+ }), { replace });
97
+ }
98
+ return store.saveSearch(nameOf(name), searchRecordOf(params.target
99
+ ? params.target === "messages"
100
+ ? "message-top"
101
+ : "author-top"
102
+ : params.by === undefined
103
+ ? "search"
104
+ : "stats", checked(params)), {
105
+ replace,
106
+ });
107
+ }),
95
108
  show: (reference) => inStore((store) => found(store, reference)),
96
109
  list: () => inStore((store) => store.savedSearches()),
97
110
  history: (limit) => inStore(async (store) => {
@@ -1 +1 @@
1
- {"version":3,"file":"searches.js","sourceRoot":"","sources":["../../src/services/searches.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"searches.js","sourceRoot":"","sources":["../../src/services/searches.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import { type AdminOptions, type AdminRow, calculateAdminStatistics } from "../../domain/admin-statistics.js";
2
+ import type { QueryExecution } from "../../search/lucene/resolved.js";
3
+ import type { StoredHit } from "../store.js";
4
+ import type { StoreContext } from "./open.js";
5
+ export interface AdminStoreRequest {
6
+ options: AdminOptions;
7
+ evidence?: {
8
+ entity: {
9
+ account: {
10
+ provider: string;
11
+ account: string;
12
+ };
13
+ id: string;
14
+ };
15
+ cursor?: string;
16
+ };
17
+ }
18
+ export interface AdminEvidenceItem {
19
+ message: StoredHit;
20
+ related?: StoredHit;
21
+ contribution: number | null;
22
+ }
23
+ export interface AdminStoreResult {
24
+ items: AdminRow[];
25
+ total: number;
26
+ included: number;
27
+ hasMore: boolean;
28
+ cutoff: string;
29
+ summary: ReturnType<typeof calculateAdminStatistics>["summary"];
30
+ quality: {
31
+ graph: ReturnType<typeof calculateAdminStatistics>["graph"];
32
+ archives: {
33
+ account: {
34
+ provider: string;
35
+ account: string;
36
+ };
37
+ chatId: string;
38
+ state: string;
39
+ fetchedAt: string | null;
40
+ }[];
41
+ membership: "observed_stays_only" | "not_used";
42
+ archivesTotal: number;
43
+ counterFreshness: "unknown";
44
+ answererRoles: "user_selected_identities";
45
+ };
46
+ evidence?: AdminEvidenceItem[];
47
+ nextCursor?: string | null;
48
+ fingerprint: string;
49
+ byteLimit: number;
50
+ }
51
+ export declare const adminStatisticsQuery: (context: StoreContext, execution: QueryExecution, request: AdminStoreRequest) => AdminStoreResult;
52
+ //# sourceMappingURL=admin-statistics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-statistics.d.ts","sourceRoot":"","sources":["../../../src/store/sqlite/admin-statistics.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,QAAQ,EAGb,wBAAwB,EACzB,MAAM,kCAAkC,CAAA;AAEzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAErE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAG5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAI7C,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,YAAY,CAAA;IACrB,QAAQ,CAAC,EAAE;QAAE,MAAM,EAAE;YAAE,OAAO,EAAE;gBAAE,QAAQ,EAAE,MAAM,CAAC;gBAAC,OAAO,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACvG;AACD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,SAAS,CAAA;IAClB,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B;AACD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,QAAQ,EAAE,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC,SAAS,CAAC,CAAA;IAC/D,OAAO,EAAE;QACP,KAAK,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC,OAAO,CAAC,CAAA;QAC3D,QAAQ,EAAE;YACR,OAAO,EAAE;gBAAE,QAAQ,EAAE,MAAM,CAAC;gBAAC,OAAO,EAAE,MAAM,CAAA;aAAE,CAAA;YAC9C,MAAM,EAAE,MAAM,CAAA;YACd,KAAK,EAAE,MAAM,CAAA;YACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;SACzB,EAAE,CAAA;QACH,UAAU,EAAE,qBAAqB,GAAG,UAAU,CAAA;QAC9C,aAAa,EAAE,MAAM,CAAA;QACrB,gBAAgB,EAAE,SAAS,CAAA;QAC3B,aAAa,EAAE,0BAA0B,CAAA;KAC1C,CAAA;IACD,QAAQ,CAAC,EAAE,iBAAiB,EAAE,CAAA;IAC9B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CAClB;AASD,eAAO,MAAM,oBAAoB,YACtB,YAAY,aACV,cAAc,WAChB,iBAAiB,KACzB,gBAyMC,CAAA"}