@leemour/cli-messaging 0.161.0 → 0.162.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 (145) hide show
  1. package/dist/attachments/directory.d.ts +3 -0
  2. package/dist/attachments/directory.d.ts.map +1 -0
  3. package/dist/attachments/directory.js +74 -0
  4. package/dist/attachments/directory.js.map +1 -0
  5. package/dist/cli/command-contract.d.ts.map +1 -1
  6. package/dist/cli/command-contract.js +1 -1
  7. package/dist/cli/command-contract.js.map +1 -1
  8. package/dist/cli/index.d.ts +1 -1
  9. package/dist/cli/index.d.ts.map +1 -1
  10. package/dist/cli/index.js.map +1 -1
  11. package/dist/cli/messenger/archive-commands.d.ts.map +1 -1
  12. package/dist/cli/messenger/archive-commands.js +2 -0
  13. package/dist/cli/messenger/archive-commands.js.map +1 -1
  14. package/dist/cli/messenger/attachments-command.d.ts.map +1 -1
  15. package/dist/cli/messenger/attachments-command.js +8 -2
  16. package/dist/cli/messenger/attachments-command.js.map +1 -1
  17. package/dist/cli/messenger/backfill-command.d.ts.map +1 -1
  18. package/dist/cli/messenger/backfill-command.js +31 -3
  19. package/dist/cli/messenger/backfill-command.js.map +1 -1
  20. package/dist/cli/messenger/backfill-jobs.d.ts +1 -39
  21. package/dist/cli/messenger/backfill-jobs.d.ts.map +1 -1
  22. package/dist/cli/messenger/backfill-jobs.js +1 -61
  23. package/dist/cli/messenger/backfill-jobs.js.map +1 -1
  24. package/dist/cli/messenger/context.d.ts +3 -0
  25. package/dist/cli/messenger/context.d.ts.map +1 -1
  26. package/dist/cli/messenger/context.js +5 -0
  27. package/dist/cli/messenger/context.js.map +1 -1
  28. package/dist/cli/messenger/download-command.d.ts +1 -31
  29. package/dist/cli/messenger/download-command.d.ts.map +1 -1
  30. package/dist/cli/messenger/download-command.js +45 -119
  31. package/dist/cli/messenger/download-command.js.map +1 -1
  32. package/dist/cli/messenger/gaps-command.d.ts +4 -0
  33. package/dist/cli/messenger/gaps-command.d.ts.map +1 -0
  34. package/dist/cli/messenger/gaps-command.js +147 -0
  35. package/dist/cli/messenger/gaps-command.js.map +1 -0
  36. package/dist/cli/messenger/official-stats-command.d.ts +4 -0
  37. package/dist/cli/messenger/official-stats-command.d.ts.map +1 -0
  38. package/dist/cli/messenger/official-stats-command.js +44 -0
  39. package/dist/cli/messenger/official-stats-command.js.map +1 -0
  40. package/dist/cli/messenger/port.d.ts +11 -3
  41. package/dist/cli/messenger/port.d.ts.map +1 -1
  42. package/dist/cli/messenger/port.js.map +1 -1
  43. package/dist/cli/messenger/stats-command.d.ts.map +1 -1
  44. package/dist/cli/messenger/stats-command.js +5 -1
  45. package/dist/cli/messenger/stats-command.js.map +1 -1
  46. package/dist/cli/program.js +2 -2
  47. package/dist/cli/program.js.map +1 -1
  48. package/dist/cli/settings.d.ts +3 -0
  49. package/dist/cli/settings.d.ts.map +1 -1
  50. package/dist/cli/settings.js +4 -0
  51. package/dist/cli/settings.js.map +1 -1
  52. package/dist/conversations/chunks.d.ts +2 -2
  53. package/dist/conversations/chunks.d.ts.map +1 -1
  54. package/dist/conversations/chunks.js +5 -3
  55. package/dist/conversations/chunks.js.map +1 -1
  56. package/dist/conversations/link.d.ts +2 -1
  57. package/dist/conversations/link.d.ts.map +1 -1
  58. package/dist/conversations/link.js +2 -1
  59. package/dist/conversations/link.js.map +1 -1
  60. package/dist/domain/models.d.ts +82 -0
  61. package/dist/domain/models.d.ts.map +1 -1
  62. package/dist/mcp/server.d.ts +3 -1
  63. package/dist/mcp/server.d.ts.map +1 -1
  64. package/dist/mcp/server.js +1 -0
  65. package/dist/mcp/server.js.map +1 -1
  66. package/dist/mcp/tool.d.ts +2 -1
  67. package/dist/mcp/tool.d.ts.map +1 -1
  68. package/dist/mcp/tool.js.map +1 -1
  69. package/dist/mcp/tools/attachments.d.ts.map +1 -1
  70. package/dist/mcp/tools/attachments.js +50 -0
  71. package/dist/mcp/tools/attachments.js.map +1 -1
  72. package/dist/mcp/tools/store.d.ts +4 -0
  73. package/dist/mcp/tools/store.d.ts.map +1 -0
  74. package/dist/mcp/tools/store.js +152 -0
  75. package/dist/mcp/tools/store.js.map +1 -0
  76. package/dist/mcp/tools.d.ts.map +1 -1
  77. package/dist/mcp/tools.js +2 -0
  78. package/dist/mcp/tools.js.map +1 -1
  79. package/dist/sends/permissions.d.ts +1 -1
  80. package/dist/sends/permissions.d.ts.map +1 -1
  81. package/dist/sends/permissions.js +6 -0
  82. package/dist/sends/permissions.js.map +1 -1
  83. package/dist/services/archive-gaps.d.ts +64 -0
  84. package/dist/services/archive-gaps.d.ts.map +1 -0
  85. package/dist/services/archive-gaps.js +146 -0
  86. package/dist/services/archive-gaps.js.map +1 -0
  87. package/dist/services/archive.d.ts +12 -1
  88. package/dist/services/archive.d.ts.map +1 -1
  89. package/dist/services/archive.js +60 -14
  90. package/dist/services/archive.js.map +1 -1
  91. package/dist/services/attachments.d.ts +7 -1
  92. package/dist/services/attachments.d.ts.map +1 -1
  93. package/dist/services/attachments.js +47 -14
  94. package/dist/services/attachments.js.map +1 -1
  95. package/dist/services/backfill-jobs.d.ts +51 -0
  96. package/dist/services/backfill-jobs.d.ts.map +1 -0
  97. package/dist/services/backfill-jobs.js +90 -0
  98. package/dist/services/backfill-jobs.js.map +1 -0
  99. package/dist/services/chats.d.ts +1 -0
  100. package/dist/services/chats.d.ts.map +1 -1
  101. package/dist/services/chats.js +10 -5
  102. package/dist/services/chats.js.map +1 -1
  103. package/dist/services/conversations.d.ts +4 -1
  104. package/dist/services/conversations.d.ts.map +1 -1
  105. package/dist/services/conversations.js +9 -2
  106. package/dist/services/conversations.js.map +1 -1
  107. package/dist/services/deps.d.ts +1 -0
  108. package/dist/services/deps.d.ts.map +1 -1
  109. package/dist/services/deps.js.map +1 -1
  110. package/dist/services/embeddings.d.ts +2 -0
  111. package/dist/services/embeddings.d.ts.map +1 -1
  112. package/dist/services/embeddings.js +9 -4
  113. package/dist/services/embeddings.js.map +1 -1
  114. package/dist/services/file-download.d.ts +37 -0
  115. package/dist/services/file-download.d.ts.map +1 -0
  116. package/dist/services/file-download.js +111 -0
  117. package/dist/services/file-download.js.map +1 -0
  118. package/dist/services/index.d.ts +4 -0
  119. package/dist/services/index.d.ts.map +1 -1
  120. package/dist/services/index.js +4 -0
  121. package/dist/services/index.js.map +1 -1
  122. package/dist/services/search-catchup.d.ts +22 -0
  123. package/dist/services/search-catchup.d.ts.map +1 -0
  124. package/dist/services/search-catchup.js +55 -0
  125. package/dist/services/search-catchup.js.map +1 -0
  126. package/dist/store/sqlite/attachment-texts.d.ts +3 -1
  127. package/dist/store/sqlite/attachment-texts.d.ts.map +1 -1
  128. package/dist/store/sqlite/attachment-texts.js +5 -4
  129. package/dist/store/sqlite/attachment-texts.js.map +1 -1
  130. package/dist/store/sqlite/conversations.d.ts +1 -1
  131. package/dist/store/sqlite/conversations.d.ts.map +1 -1
  132. package/dist/store/sqlite/conversations.js +10 -1
  133. package/dist/store/sqlite/conversations.js.map +1 -1
  134. package/dist/store/sqlite/messages.d.ts.map +1 -1
  135. package/dist/store/sqlite/messages.js +1 -0
  136. package/dist/store/sqlite/messages.js.map +1 -1
  137. package/dist/store/sqlite/vectors.d.ts +2 -1
  138. package/dist/store/sqlite/vectors.d.ts.map +1 -1
  139. package/dist/store/sqlite/vectors.js +35 -16
  140. package/dist/store/sqlite/vectors.js.map +1 -1
  141. package/dist/store/store.d.ts +2 -0
  142. package/dist/store/store.d.ts.map +1 -1
  143. package/dist/store/store.js.map +1 -1
  144. package/package.json +1 -1
  145. package/parity.json +236 -25
@@ -1,11 +1,61 @@
1
+ import { CliError } from "@leemour/cli-core";
1
2
  import * as v from "valibot";
2
3
  import { MAX_TEXT_CHARS } from "../../attachments/extract.js";
4
+ import { levelFor } from "../../sends/permissions.js";
5
+ import { onlineDeps } from "../../services/deps.js";
6
+ import { downloadMessage } from "../../services/file-download.js";
3
7
  import { servicesFor, storedDeps } from "../../services/index.js";
4
8
  import { chatOf, paging, READ, tool } from "../tool.js";
5
9
  const ITEM = "{ locator, attachment, kind, name, localPath, text: { origin, extractor, chars, error } | null }";
6
10
  export const attachmentsTools = (messenger) => {
7
11
  const command = messenger.app.command;
8
12
  return {
13
+ attachments_extract: tool({
14
+ title: "Extract text from saved files",
15
+ description: "Keep plain text, DOCX or PDF text layers in the local content index; returns counts and statuses, never text. from_dir needs chat. Only explicit download connects and needs output_dir. Pass cursor to continue a bounded scan.",
16
+ key: "attachments.extract",
17
+ input: v.object({
18
+ chat: v.optional(chatOf(messenger)),
19
+ from_dir: v.optional(v.pipe(v.string(), v.minLength(1))),
20
+ download: v.optional(v.boolean()),
21
+ output_dir: v.optional(v.pipe(v.string(), v.minLength(1))),
22
+ limit: v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(500))),
23
+ cursor: v.optional(v.pipe(v.string(), v.regex(/^[1-9][0-9]*$/))),
24
+ }),
25
+ annotations: { readOnlyHint: false, idempotentHint: true, openWorldHint: true, destructiveHint: false },
26
+ stored: async (store, account, args, defaults, connect) => {
27
+ if (args.download && (!args.output_dir || !connect))
28
+ throw new CliError("validation_error", "download needs output_dir and an online session");
29
+ if (args.output_dir && !args.download)
30
+ throw new CliError("validation_error", "output_dir requires download");
31
+ if (args.from_dir && (!args.chat || args.download || args.output_dir))
32
+ throw new CliError("validation_error", "from_dir needs chat and cannot be combined with download or output_dir");
33
+ if (levelFor(defaults.settings.permissions ?? {}, "messages").level === "deny" ||
34
+ (args.download && levelFor(defaults.settings.permissions ?? {}, "messages.download").level === "deny"))
35
+ throw new CliError("permission_error", "this profile does not allow reading these message files");
36
+ return servicesFor(storedDeps(messenger, store, account, defaults.guard)).attachments.extract({
37
+ ...(args.chat === undefined ? {} : { chat: args.chat }),
38
+ ...(args.from_dir === undefined ? {} : { fromDir: args.from_dir }),
39
+ ...(args.cursor === undefined ? {} : { cursor: args.cursor }),
40
+ limit: args.limit ?? 100,
41
+ scanLimit: 500,
42
+ signal: defaults.signal,
43
+ ...(args.download
44
+ ? {
45
+ download: async (chatId, messageId) => {
46
+ await connect?.(async (adapter) => {
47
+ const deps = onlineDeps(messenger, adapter, defaults.guard, {
48
+ env: defaults.env,
49
+ profile: defaults.settings.profile,
50
+ });
51
+ await downloadMessage(servicesFor({ ...deps, store: async () => store, account: async () => account }).messages, chatId, messageId, args.output_dir, () => { });
52
+ });
53
+ },
54
+ }
55
+ : {}),
56
+ });
57
+ },
58
+ }),
9
59
  attachments_list: tool({
10
60
  title: "List files of stored messages",
11
61
  description: "Files of this account's stored messages, newest first: where each was saved on this machine and whether " +
@@ -1 +1 @@
1
- {"version":3,"file":"attachments.js","sourceRoot":"","sources":["../../../src/mcp/tools/attachments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attachments.js","sourceRoot":"","sources":["../../../src/mcp/tools/attachments.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { Messenger } from "../../cli/messenger/context.js";
2
+ import { type AnyTool } from "../tool.js";
3
+ export declare const storeTools: (messenger: Messenger) => Record<string, AnyTool>;
4
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAQ/D,OAAO,EAAE,KAAK,OAAO,EAAsB,MAAM,YAAY,CAAA;AAG7D,eAAO,MAAM,UAAU,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAwJtE,CAAA"}
@@ -0,0 +1,152 @@
1
+ import { CliError } from "@leemour/cli-core";
2
+ import * as v from "valibot";
3
+ import { parseDuration } from "../../cli/settings.js";
4
+ import { levelFor } from "../../sends/permissions.js";
5
+ import { FETCHING } from "../../services/archive.js";
6
+ import { GAP_BOUNDS, gapsService, validateRepair } from "../../services/archive-gaps.js";
7
+ import { jobsDir, listJobs, readJob, startArchiveJob, stateOf } from "../../services/backfill-jobs.js";
8
+ import { storedDeps } from "../../services/deps.js";
9
+ import { validateCatchUp } from "../../services/search-catchup.js";
10
+ import { chatOf, READ, tool } from "../tool.js";
11
+ const count = (maximum) => v.optional(v.pipe(v.number(), v.integer(), v.minValue(1), v.maxValue(maximum)));
12
+ export const storeTools = (messenger) => ({
13
+ store_gaps_plan: tool({
14
+ title: "Plan interior archive gaps",
15
+ description: "Local recorded coverage only: returns inclusive uncovered ranges, ordering units, unknown edges and fingerprint. Missing message ids alone are not gaps.",
16
+ input: v.object({ chat: chatOf(messenger) }),
17
+ annotations: { ...READ, openWorldHint: false },
18
+ stored: (store, account, args, defaults) => gapsService(storedDeps(messenger, store, account, defaults.guard)).plan(args.chat),
19
+ }),
20
+ store_gaps_repair: tool({
21
+ title: "Repair interior archive gaps",
22
+ description: "Explicit bounded history fetch and coverage recheck; never deletes unseen messages. Defaults5gaps,500messages,30seconds; unknown edges remain unknown. Background uses store jobs show/list.",
23
+ key: "store.gaps.repair",
24
+ input: v.object({
25
+ chat: chatOf(messenger),
26
+ catch_up: v.optional(v.boolean()),
27
+ catch_up_chunks: count(20_000),
28
+ catch_up_messages: count(100_000),
29
+ catch_up_time: v.optional(v.string()),
30
+ limit: count(10_000),
31
+ max_gaps: count(100),
32
+ page_size: count(100),
33
+ repair_time: v.optional(v.string()),
34
+ pause: v.optional(v.string()),
35
+ fingerprint: v.optional(v.pipe(v.string(), v.regex(/^[a-f0-9]{64}$/))),
36
+ background: v.optional(v.boolean()),
37
+ }),
38
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true },
39
+ stored: async (store, account, args, defaults, connect) => {
40
+ const fetching = messenger.fetching ?? FETCHING;
41
+ const deps = {
42
+ ...storedDeps(messenger, store, account, defaults.guard),
43
+ offline: false,
44
+ reads: messenger.history ?? "server",
45
+ withConnection: connect,
46
+ env: defaults.env,
47
+ profile: defaults.settings.profile,
48
+ searchCatchUp: defaults.settings.searchCatchUp,
49
+ };
50
+ const options = {
51
+ limit: args.limit,
52
+ maxGaps: args.max_gaps,
53
+ pageSize: args.page_size,
54
+ timeMs: args.repair_time === undefined ? undefined : parseDuration(args.repair_time, "repair_time"),
55
+ pauseMs: parseDuration(args.pause ?? fetching.pause, "pause"),
56
+ fingerprint: args.fingerprint,
57
+ signal: defaults.signal,
58
+ };
59
+ const prepare = args.catch_up ?? defaults.settings.searchCatchUp ?? false;
60
+ const preparation = {
61
+ maxChunks: args.catch_up_chunks,
62
+ maxMessages: args.catch_up_messages,
63
+ ...(args.catch_up_time === undefined ? {} : { timeMs: parseDuration(args.catch_up_time, "catch_up_time") }),
64
+ };
65
+ if (!prepare &&
66
+ (args.catch_up_chunks !== undefined || args.catch_up_messages !== undefined || args.catch_up_time !== undefined))
67
+ throw new CliError("validation_error", "catch-up budgets need catch_up or searchCatchUp true");
68
+ if (prepare) {
69
+ for (const key of ["conversations.build", "conversations.embed"]) {
70
+ const level = levelFor(defaults.settings.permissions ?? {}, key).level;
71
+ if (level === "deny" || level === "readonly")
72
+ throw new CliError("permission_error", `profile does not let ${key} prepare search`, { permission: key });
73
+ }
74
+ validateCatchUp(deps, preparation);
75
+ }
76
+ validateRepair(messenger, options);
77
+ defaults.guard.check({ chatId: null, key: "store.gaps.repair" }, { reserve: false });
78
+ const service = gapsService(deps);
79
+ if (args.background) {
80
+ const plan = await service.plan(args.chat);
81
+ if (args.fingerprint && args.fingerprint !== plan.fingerprint)
82
+ throw new CliError("validation_error", "the gap plan changed; inspect it again");
83
+ const argv = [
84
+ "store",
85
+ "gaps",
86
+ "repair",
87
+ plan.chat,
88
+ "--fingerprint",
89
+ plan.fingerprint,
90
+ "--limit",
91
+ String(args.limit ?? GAP_BOUNDS.limit),
92
+ "--max-gaps",
93
+ String(args.max_gaps ?? GAP_BOUNDS.maxGaps),
94
+ "--page-size",
95
+ String(args.page_size ?? fetching.page),
96
+ "--repair-time",
97
+ args.repair_time ?? "30s",
98
+ "--pause",
99
+ args.pause ?? fetching.pause,
100
+ prepare ? "--catch-up" : "--no-catch-up",
101
+ ...(args.catch_up_chunks === undefined ? [] : ["--catch-up-chunks", String(args.catch_up_chunks)]),
102
+ ...(args.catch_up_messages === undefined ? [] : ["--catch-up-messages", String(args.catch_up_messages)]),
103
+ ...(args.catch_up_time === undefined ? [] : ["--catch-up-time", args.catch_up_time]),
104
+ "--json",
105
+ "--timeout",
106
+ "0",
107
+ ];
108
+ return startArchiveJob(messenger.app, defaults.env, defaults.settings.profile, { chat: plan.chat, argv, limit: args.limit ?? GAP_BOUNDS.limit, pageSize: args.page_size ?? fetching.page }, defaults.spawnJob);
109
+ }
110
+ return service.repair(args.chat, {
111
+ catchUp: prepare ? preparation : false,
112
+ limit: args.limit,
113
+ maxGaps: args.max_gaps,
114
+ pageSize: args.page_size,
115
+ timeMs: args.repair_time === undefined ? undefined : parseDuration(args.repair_time, "repair_time"),
116
+ pauseMs: parseDuration(args.pause ?? fetching.pause, "pause"),
117
+ fingerprint: args.fingerprint,
118
+ signal: defaults.signal,
119
+ });
120
+ },
121
+ }),
122
+ store_jobs_show: tool({
123
+ title: "Show a store job",
124
+ description: "The selected profile's own fetch/repair job metadata and result, without opening its log.",
125
+ input: v.object({ job: v.pipe(v.string(), v.minLength(1)) }),
126
+ annotations: { ...READ, openWorldHint: false },
127
+ local: async (args, defaults) => {
128
+ const job = readJob(jobsDir(messenger.app, defaults.env), args.job);
129
+ if (!job || job.profile !== defaults.settings.profile)
130
+ throw new CliError("not_found", "no such job in this profile");
131
+ return { ...job, state: stateOf(job) };
132
+ },
133
+ }),
134
+ store_jobs_list: tool({
135
+ title: "List store jobs",
136
+ description: "The selected profile's own fetch/repair jobs, newest first.",
137
+ input: v.object({ limit: count(100), page: count(10_000) }),
138
+ annotations: { ...READ, openWorldHint: false },
139
+ local: async (args, defaults) => {
140
+ const limit = args.limit ?? 20;
141
+ const page = args.page ?? 1;
142
+ const rows = listJobs(jobsDir(messenger.app, defaults.env)).filter((job) => job.profile === defaults.settings.profile);
143
+ return {
144
+ items: rows.slice((page - 1) * limit, page * limit).map((job) => ({ ...job, state: stateOf(job) })),
145
+ page,
146
+ limit,
147
+ hasMore: rows.length > page * limit,
148
+ };
149
+ },
150
+ }),
151
+ });
152
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/mcp/tools/store.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA2BxC;;;GAGG;AACH,eAAO,MAAM,SAAS,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAarE,CAAA;AAEF,sFAAsF;AACtF,eAAO,MAAM,aAAa,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAA8B,CAAA;AAEzG,8EAA8E;AAC9E,eAAO,MAAM,WAAW,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAkC,CAAA;AAE3G,oFAAoF;AACpF,eAAO,MAAM,SAAS,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAUrE,CAAA;AAEF,qHAAqH;AACrH,eAAO,MAAM,UAAU,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAKtE,CAAA"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA4BxC;;;GAGG;AACH,eAAO,MAAM,SAAS,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAcrE,CAAA;AAEF,sFAAsF;AACtF,eAAO,MAAM,aAAa,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAA8B,CAAA;AAEzG,8EAA8E;AAC9E,eAAO,MAAM,WAAW,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAkC,CAAA;AAE3G,oFAAoF;AACpF,eAAO,MAAM,SAAS,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAUrE,CAAA;AAEF,qHAAqH;AACrH,eAAO,MAAM,UAAU,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAKtE,CAAA"}
package/dist/mcp/tools.js CHANGED
@@ -20,6 +20,7 @@ import { reactionTools } from "./tools/reactions.js";
20
20
  import { reviewTools } from "./tools/review.js";
21
21
  import { searchesTools } from "./tools/searches.js";
22
22
  import { statsTools } from "./tools/stats.js";
23
+ import { storeTools } from "./tools/store.js";
23
24
  import { tagsTools } from "./tools/tags.js";
24
25
  import { tasksTools } from "./tools/tasks.js";
25
26
  import { topicsTools, topicWriteTools } from "./tools/topics.js";
@@ -34,6 +35,7 @@ export const readTools = (messenger) => ({
34
35
  ...accountTools(messenger),
35
36
  ...chatsTools(messenger),
36
37
  ...statsTools(messenger),
38
+ ...storeTools(messenger),
37
39
  ...contactsTools(messenger),
38
40
  ...messagesTools(messenger),
39
41
  ...conversationsTools(messenger),
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ export type PermissionKey = string;
16
16
  /** Only what cannot be undone asks; the tool is meant to work without questions (owner, NEED-460). */
17
17
  export declare const DEFAULT_PERMISSIONS: Readonly<Record<PermissionKey, Level>>;
18
18
  /** The resources at the top of the command tree, which `readOnly` and `allow` turn read-only as a whole. */
19
- export declare const RESOURCES: readonly ["messages", "reactions", "polls", "topics", "chats", "contacts", "account", "bot", "conversations", "tags", "searches", "tasks", "replies", "attachments", "stats"];
19
+ export declare const RESOURCES: readonly ["messages", "reactions", "polls", "topics", "chats", "contacts", "account", "bot", "conversations", "tags", "searches", "tasks", "replies", "attachments", "stats", "store"];
20
20
  /** The command path an old `allow` word stood for, as one key — what an MCP tool's `permission` is checked against. */
21
21
  export declare const keyOfWord: (word: Permission) => PermissionKey;
22
22
  /** `bot` translates a bot's `readOnly` and `allow`, which only ever covered the bot. */
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/sends/permissions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,QAAQ,EAAE,MAAM,cAAc,CAAA;AAE3D;;;;;GAKG;AACH,eAAO,MAAM,WAAW,YACtB,MAAM,EACN,SAAS,EACT,UAAU,EACV,MAAM,EACN,KAAK,EACL,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,SAAS,EACT,SAAS,EACT,UAAU,CACF,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA;AAgBrD,eAAO,MAAM,aAAa,SAAU,QAAQ,WAAW,MAAM,KAAG,UAc/D,CAAA;AAED,kFAAkF;AAClF,eAAO,MAAM,MAAM,YAAI,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAU,CAAA;AAEnE,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,CAAC,CAAA;AAE3C,qFAAqF;AACrF,MAAM,MAAM,aAAa,GAAG,MAAM,CAAA;AAElC,sGAAsG;AACtG,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAOtE,CAAA;AAED,4GAA4G;AAC5G,eAAO,MAAM,SAAS,YACpB,UAAU,EACV,WAAW,EACX,OAAO,EACP,QAAQ,EACR,OAAO,EACP,UAAU,EACV,SAAS,EACT,KAAK,EACL,eAAe,EACf,MAAM,EACN,UAAU,EACV,OAAO,EACP,SAAS,EACT,aAAa,EACb,OAAO,CACC,CAAA;AA6BV,uHAAuH;AACvH,eAAO,MAAM,SAAS,SAAU,UAAU,KAAG,aAAoD,CAAA;AAajG,wFAAwF;AACxF,eAAO,MAAM,eAAe,aAChB,OAAO,SACV,SAAS,UAAU,EAAE,GAAG,SAAS,YACvB;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,KACjC,MAAM,CAAC,aAAa,EAAE,KAAK,CAW7B,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,WAAY,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE;;;CAY/G,CAAA;AAeD;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,gBACN,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,OAC9C,aAAa,aACR,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,KAC/C;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAAA;CAM3C,CAAA;AA4BD,oFAAoF;AACpF,eAAO,MAAM,WAAW,SAAU,QAAQ,WAAW,MAAM,KAAG,aAQ7D,CAAA;AA2CD,kFAAkF;AAClF,eAAO,MAAM,UAAU,EAAE,SAAS,aAAa,EAS9C,CAAA;AA8BD,eAAO,MAAM,6BAA6B,SAClC,SAAS,MAAM,EAAE,eACV,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,KAC3C,IAYF,CAAA;AAED,eAAO,MAAM,kBAAkB,SAAU,SAAS,MAAM,EAAE,KAAG,aAAa,EAazE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,SAAU,SAAS,MAAM,EAAE,KAAG,aAAa,GAAG,IAAI,GAAG,SAkB9E,CAAA;AAED,iGAAiG;AACjG,eAAO,MAAM,mBAAmB,aAAa,SAAS,MAAM,EAAE,KAAQ,MAAM,CAAC,aAAa,EAAE,KAAK,CAahG,CAAA"}
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/sends/permissions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAiB,QAAQ,EAAE,MAAM,cAAc,CAAA;AAE3D;;;;;GAKG;AACH,eAAO,MAAM,WAAW,YACtB,MAAM,EACN,SAAS,EACT,UAAU,EACV,MAAM,EACN,KAAK,EACL,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,SAAS,EACT,SAAS,EACT,UAAU,CACF,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA;AAgBrD,eAAO,MAAM,aAAa,SAAU,QAAQ,WAAW,MAAM,KAAG,UAc/D,CAAA;AAED,kFAAkF;AAClF,eAAO,MAAM,MAAM,YAAI,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAU,CAAA;AAEnE,MAAM,MAAM,KAAK,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,CAAC,CAAA;AAE3C,qFAAqF;AACrF,MAAM,MAAM,aAAa,GAAG,MAAM,CAAA;AAElC,sGAAsG;AACtG,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAOtE,CAAA;AAED,4GAA4G;AAC5G,eAAO,MAAM,SAAS,YACpB,UAAU,EACV,WAAW,EACX,OAAO,EACP,QAAQ,EACR,OAAO,EACP,UAAU,EACV,SAAS,EACT,KAAK,EACL,eAAe,EACf,MAAM,EACN,UAAU,EACV,OAAO,EACP,SAAS,EACT,aAAa,EACb,OAAO,EACP,OAAO,CACC,CAAA;AA6BV,uHAAuH;AACvH,eAAO,MAAM,SAAS,SAAU,UAAU,KAAG,aAAoD,CAAA;AAajG,wFAAwF;AACxF,eAAO,MAAM,eAAe,aAChB,OAAO,SACV,SAAS,UAAU,EAAE,GAAG,SAAS,YACvB;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,KACjC,MAAM,CAAC,aAAa,EAAE,KAAK,CAW7B,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,WAAY,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE;;;CAY/G,CAAA;AAeD;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,gBACN,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,OAC9C,aAAa,aACR,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,KAC/C;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAAA;CAM3C,CAAA;AA4BD,oFAAoF;AACpF,eAAO,MAAM,WAAW,SAAU,QAAQ,WAAW,MAAM,KAAG,aAQ7D,CAAA;AA4CD,kFAAkF;AAClF,eAAO,MAAM,UAAU,EAAE,SAAS,aAAa,EAS9C,CAAA;AA8BD,eAAO,MAAM,6BAA6B,SAClC,SAAS,MAAM,EAAE,eACV,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,KAC3C,IAYF,CAAA;AAED,eAAO,MAAM,kBAAkB,SAAU,SAAS,MAAM,EAAE,KAAG,aAAa,EAczE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,aAAa,SAAU,SAAS,MAAM,EAAE,KAAG,aAAa,GAAG,IAAI,GAAG,SAmB9E,CAAA;AAED,iGAAiG;AACjG,eAAO,MAAM,mBAAmB,aAAa,SAAS,MAAM,EAAE,KAAQ,MAAM,CAAC,aAAa,EAAE,KAAK,CAahG,CAAA"}
@@ -76,6 +76,7 @@ export const RESOURCES = [
76
76
  "replies",
77
77
  "attachments",
78
78
  "stats",
79
+ "store",
79
80
  ];
80
81
  const OLD_WORDS = {
81
82
  send: ["messages.send", "polls.create"],
@@ -215,6 +216,7 @@ export const keyForWrite = (kind, action) => {
215
216
  };
216
217
  /** Write keys written out where a write is checked; `permission-keys.test.ts` keeps this list whole. */
217
218
  const NAMED_WRITE_KEYS = [
219
+ "store.gaps.repair",
218
220
  "messages.sync-first",
219
221
  "stats.messages.show.sync-first",
220
222
  "account.sessions.list",
@@ -304,6 +306,8 @@ export const readKeysForCommand = (path) => {
304
306
  const key = keyForCommand(path);
305
307
  if (!key)
306
308
  return [];
309
+ if (path[0] === "store" && path[1] === "gaps" && path[2] === "repair")
310
+ return [key, "messages"];
307
311
  if (path[0] !== "stats")
308
312
  return [key];
309
313
  const resource = path[1] === "charts" ? "chats" : path[1];
@@ -340,6 +344,8 @@ export const keyForCommand = (path) => {
340
344
  // Which files a message has, and where they are saved, tells as much as a message does.
341
345
  if (top === "attachments" && next === "list")
342
346
  return "messages";
347
+ if (top === "store" && (next === "gaps" || next === "jobs"))
348
+ return path.join(".");
343
349
  if (SHOW_MESSAGES.has(top) || (top === "contacts" && next === "context"))
344
350
  return "messages";
345
351
  if (RESOURCES.includes(top))
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/sends/permissions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../src/sends/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAG5C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM;IACN,SAAS;IACT,UAAU;IACV,MAAM;IACN,KAAK;IACL,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,SAAS;IACT,SAAS;IACT,UAAU;CACF,CAAA;AAIV,MAAM,OAAO,GAAsC;IACjD,aAAa,EAAE,UAAU;IACzB,gBAAgB,EAAE,UAAU;IAC5B,gBAAgB,EAAE,UAAU;IAC5B,gBAAgB,EAAE,UAAU;IAC5B,eAAe,EAAE,UAAU;IAC3B,iBAAiB,EAAE,UAAU;IAC7B,OAAO,EAAE,SAAS;IAClB,eAAe,EAAE,SAAS;IAC1B,eAAe,EAAE,SAAS;IAC1B,eAAe,EAAE,SAAS;IAC1B,cAAc,EAAE,UAAU;CAC3B,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAc,EAAE,MAAe,EAAc,EAAE;IAC3E,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,SAAS;YACZ,OAAO,MAAM,CAAA;QACf,KAAK,MAAM;YACT,OAAO,QAAQ,CAAA;QACjB,KAAK,SAAS,EAAE,CAAC;YACf,MAAM,UAAU,GAAG,OAAO,CAAC,MAAuB,CAAC,CAAA;YACnD,IAAI,CAAC,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,MAAM,EAAE,CAAC,CAAA;YACvF,OAAO,UAAU,CAAA;QACnB,CAAC;QACD;YACE,OAAO,IAAI,CAAA;IACf,CAAC;AACH,CAAC,CAAA;AAED,kFAAkF;AAClF,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAU,CAAA;AAOnE,sGAAsG;AACtG,MAAM,CAAC,MAAM,mBAAmB,GAA2C;IACzE,iBAAiB,EAAE,KAAK;IACxB,sBAAsB,EAAE,KAAK;IAC7B,qBAAqB,EAAE,KAAK;IAC5B,eAAe,EAAE,KAAK;IACtB,sGAAsG;IACtG,cAAc,EAAE,MAAM;CACvB,CAAA;AAED,4GAA4G;AAC5G,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,UAAU;IACV,WAAW;IACX,OAAO;IACP,QAAQ;IACR,OAAO;IACP,UAAU;IACV,SAAS;IACT,KAAK;IACL,eAAe;IACf,MAAM;IACN,UAAU;IACV,OAAO;IACP,SAAS;IACT,aAAa;IACb,OAAO;IACP,OAAO;CACC,CAAA;AAEV,MAAM,SAAS,GAAwC;IACrD,IAAI,EAAE,CAAC,eAAe,EAAE,cAAc,CAAC;IACvC,OAAO,EAAE,CAAC,kBAAkB,CAAC;IAC7B,QAAQ,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC;IACrC,IAAI,EAAE,CAAC,eAAe,EAAE,aAAa,CAAC;IACtC,GAAG,EAAE,CAAC,cAAc,EAAE,gBAAgB,CAAC;IACvC,IAAI,EAAE,CAAC,iBAAiB,CAAC;IACzB,MAAM,EAAE,CAAC,iBAAiB,CAAC;IAC3B,MAAM,EAAE;QACN,cAAc;QACd,cAAc;QACd,YAAY;QACZ,aAAa;QACb,eAAe;QACf,cAAc;QACd,YAAY;QACZ,gBAAgB;QAChB,gBAAgB;QAChB,eAAe;QACf,eAAe;KAChB;IACD,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,OAAO,EAAE,CAAC,gBAAgB,CAAC;IAC3B,OAAO,EAAE,CAAC,eAAe,CAAC;IAC1B,QAAQ,EAAE,CAAC,sBAAsB,CAAC;CACnC,CAAA;AAED,uHAAuH;AACvH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAgB,EAAiB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAkB,CAAA;AAEjG,4GAA4G;AAC5G;;;GAGG;AACH,MAAM,SAAS,GAAG,CAAC,IAAgB,EAAmB,EAAE;IACtD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IAC/C,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,EAAE,CAAA;IAC9B,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAA;AACnD,CAAC,CAAA;AAED,wFAAwF;AACxF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,QAAiB,EACjB,KAAwC,EACxC,EAAE,GAAG,GAAG,KAAK,EAAE,GAAsB,EAAE,EACT,EAAE;IAChC,IAAI,CAAC,QAAQ,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAA;IAC/C,MAAM,MAAM,GAAiC,GAAG;QAC9C,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE;QACrB,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;IACpH,IAAI,QAAQ;QAAE,OAAO,MAAM,CAAA;IAC3B,wEAAwE;IACxE,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QAC/B,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,OAAO,CAAA;IAC9G,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAA+E,EAAE,EAAE;IAClH,MAAM,MAAM,GAAiC,EAAE,CAAA;IAC/C,MAAM,OAAO,GAAkC,EAAE,CAAA;IACjD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAClC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;YACvD,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,KAAK,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;gBAAE,SAAQ;YAClF,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;YACnB,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;QACrB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;AAC5B,CAAC,CAAA;AAED,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAW,CAAA;AAEtD,MAAM,KAAK,GAA0B,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;AAE/E,MAAM,OAAO,GAAG,CAAC,MAA8C,EAAE,GAAkB,EAAE,EAAE;IACrF,KAAK,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3B,IAAI,KAAK;YAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAA;IAC9D,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,WAAmD,EACnD,GAAkB,EAClB,QAAQ,GAA2C,mBAAmB,EACzB,EAAE;IAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;IACrC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;IACtC,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAA;IAC9G,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAA;IACvG,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAA;AAC3C,CAAC,CAAA;AAED,MAAM,SAAS,GAA2C,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAA;AAEtF,MAAM,YAAY,GAAyC;IACzD,aAAa,EAAE,cAAc;IAC7B,gBAAgB,EAAE,iBAAiB;IACnC,gBAAgB,EAAE,iBAAiB;IACnC,gBAAgB,EAAE,iBAAiB;IACnC,eAAe,EAAE,gBAAgB;IACjC,iBAAiB,EAAE,kBAAkB;IACrC,OAAO,EAAE,gBAAgB;IACzB,eAAe,EAAE,sBAAsB;IACvC,eAAe,EAAE,sBAAsB;IACvC,eAAe,EAAE,sBAAsB;IACvC,cAAc,EAAE,sBAAsB;CACvC,CAAA;AAED,MAAM,SAAS,GAAiE;IAC9E,OAAO,EAAE,eAAe;IACxB,OAAO,EAAE,kBAAkB;IAC3B,IAAI,EAAE,eAAe;IACrB,GAAG,EAAE,cAAc;IACnB,QAAQ,EAAE,WAAW;IACrB,IAAI,EAAE,iBAAiB;IACvB,MAAM,EAAE,iBAAiB;CAC1B,CAAA;AAED,oFAAoF;AACpF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAc,EAAE,MAAe,EAAiB,EAAE;IAC5E,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,SAAS,MAAM,IAAI,QAAQ,EAAE,CAAA;IACpF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,YAAY,CAAC,MAAuB,CAAC,CAAA;QACjD,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,MAAM,EAAE,CAAC,CAAA;QAChF,OAAO,GAAG,CAAA;IACZ,CAAC;IACD,OAAO,SAAS,CAAC,IAAI,CAAC,CAAA;AACxB,CAAC,CAAA;AAED,wGAAwG;AACxG,MAAM,gBAAgB,GAAG;IACvB,mBAAmB;IACnB,qBAAqB;IACrB,gCAAgC;IAChC,uBAAuB;IACvB,qBAAqB;IACrB,sBAAsB;IACtB,sBAAsB;IACtB,kBAAkB;IAClB,sBAAsB;IACtB,yBAAyB;IACzB,iBAAiB;IACjB,0BAA0B;IAC1B,oBAAoB;IACpB,qBAAqB;IACrB,mBAAmB;IACnB,kBAAkB;IAClB,mBAAmB;IACnB,oBAAoB;IACpB,kBAAkB;IAClB,qBAAqB;IACrB,kBAAkB;IAClB,mBAAmB;IACnB,sBAAsB;IACtB,gBAAgB;IAChB,qBAAqB;IACrB,qBAAqB;IACrB,aAAa;IACb,cAAc;IACd,YAAY;IACZ,gBAAgB;IAChB,iBAAiB;IACjB,iBAAiB;IACjB,UAAU;IACV,aAAa;IACb,WAAW;IACX,aAAa;IACb,eAAe;IACf,eAAe;CAChB,CAAA;AAED,kFAAkF;AAClF,MAAM,CAAC,MAAM,UAAU,GAA6B;IAClD,GAAG,IAAI,GAAG,CAAC;QACT,GAAG,gBAAgB;QACnB,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC;QACnC,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;QAC3B,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;QAC9B,GAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAqB;QAChD,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;KAC3E,CAAC;CACH,CAAA;AAED,qGAAqG;AACrG,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;IAC3B,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,UAAU;IACV,UAAU;IACV,SAAS;IACT,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,OAAO;IACP,YAAY;IACZ,OAAO;IACP,KAAK;IACL,wGAAwG;IACxG,SAAS;CACV,CAAC,CAAA;AAEF,uEAAuE;AACvE,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAA;AAEhF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;AAExG,qGAAqG;AACrG,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAA;AAE9F,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC3C,IAAuB,EACvB,WAA4C,EACtC,EAAE;IACR,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;QACtB,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAA;QACzD,OAAM;IACR,CAAC;IACD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO;QAAE,OAAM;IAC/B,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,gDAAgD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpG,MAAM,IAAI,QAAQ,CAChB,qBAAqB,EACrB,uFAAuF,EACvF,EAAE,SAAS,EAAE,KAAK,EAAE,CACrB,CAAA;AACL,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAuB,EAAmB,EAAE;IAC7E,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK;QAAE,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAA;IAC1F,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;IAC/B,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAA;IACnB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;IAC/F,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO;QAAE,OAAO,CAAC,GAAG,CAAC,CAAA;IACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACzD,OAAO;QACL,GAAG,IAAI,GAAG,CAAC;YACT,GAAG;YACH,UAAU;YACV,GAAG,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACzF,CAAC;KACH,CAAA;AACH,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAuB,EAAoC,EAAE;IACzF,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,CAAA;IACxB,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;QAClB,IAAI,IAAI,KAAK,SAAS,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAA;QACjE,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAC1C,OAAO,OAAO,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;IAClD,CAAC;IACD,IAAI,GAAG,KAAK,SAAS,IAAI,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IAC3D,IAAI,GAAG,KAAK,OAAO,IAAI,IAAI,KAAK,SAAS,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IACrF,wHAAwH;IACxH,IAAI,GAAG,KAAK,eAAe,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,qBAAqB,CAAA;IAC7E,oGAAoG;IACpG,IAAI,GAAG,KAAK,eAAe,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,qBAAqB,CAAA;IAC7E,wFAAwF;IACxF,IAAI,GAAG,KAAK,aAAa,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,UAAU,CAAA;IAC/D,IAAI,GAAG,KAAK,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAClF,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,IAAI,IAAI,KAAK,SAAS,CAAC;QAAE,OAAO,UAAU,CAAA;IAC3F,IAAK,SAA+B,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACzE,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,iGAAiG;AACjG,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAO,GAAsB,EAAE,EAAgC,EAAE;IACnG,MAAM,MAAM,GAAiC,EAAE,CAAA;IAC/C,MAAM,IAAI,GAAG,IAAI,MAAM,CAAC,KAAK,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;IACvE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QACtD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAE,MAA4B,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,SAAS;YAC1F,MAAM,IAAI,QAAQ,CAChB,kBAAkB,EAClB,oGAAoG,CACrG,CAAA;QACH,MAAM,CAAC,GAAG,CAAC,GAAG,KAAc,CAAA;IAC9B,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA"}
@@ -0,0 +1,64 @@
1
+ import type { Id } from "../domain/models.js";
2
+ import { type AccountKey, type Range } from "../store/store.js";
3
+ import type { ServiceDeps } from "./deps.js";
4
+ import { type CatchUpOptions, type CatchUpResult } from "./search-catchup.js";
5
+ export declare const GAP_BOUNDS: {
6
+ maxGaps: number;
7
+ limit: number;
8
+ timeMs: number;
9
+ };
10
+ export interface GapPlan {
11
+ version: 1;
12
+ scope: "interior";
13
+ account: AccountKey;
14
+ chat: Id;
15
+ ordering: "id" | "time";
16
+ held: Range[];
17
+ gaps: Range[];
18
+ unknown: {
19
+ older: boolean;
20
+ newer: true;
21
+ };
22
+ fingerprint: string;
23
+ limits: {
24
+ maxGaps: number;
25
+ limit: number;
26
+ timeMs: number;
27
+ pageSize: number;
28
+ };
29
+ }
30
+ export interface RepairOptions {
31
+ catchUp?: CatchUpOptions | false;
32
+ maxGaps?: number;
33
+ limit?: number;
34
+ timeMs?: number;
35
+ pageSize?: number;
36
+ pauseMs?: number;
37
+ fingerprint?: string;
38
+ signal?: AbortSignal;
39
+ note?: (line: string) => void;
40
+ onPage?: (progress: {
41
+ fetched: number;
42
+ chatId: string;
43
+ oldest: number;
44
+ }) => void;
45
+ }
46
+ export interface GapRepair {
47
+ version: 1;
48
+ scope: "interior";
49
+ chat: Id;
50
+ before: GapPlan;
51
+ after: GapPlan;
52
+ repaired: Range[];
53
+ fetched: number;
54
+ requests: number;
55
+ complete: boolean;
56
+ prepared?: CatchUpResult;
57
+ stopped?: "bound" | "partial_or_inaccessible" | "fetch_failed";
58
+ }
59
+ export declare const validateRepair: (messenger: ServiceDeps["messenger"], options: RepairOptions) => void;
60
+ export declare const gapsService: (deps: ServiceDeps) => {
61
+ plan: (chat: string) => Promise<GapPlan>;
62
+ repair: (chat: string, options?: RepairOptions) => Promise<GapRepair>;
63
+ };
64
+ //# sourceMappingURL=archive-gaps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archive-gaps.d.ts","sourceRoot":"","sources":["../../src/services/archive-gaps.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,KAAK,UAAU,EAAmB,KAAK,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEhF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE5C,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAkC,MAAM,qBAAqB,CAAA;AAE7G,eAAO,MAAM,UAAU;IAAK,OAAO;IAAK,KAAK;IAAO,MAAM;CAAU,CAAA;AACpE,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,CAAC,CAAA;IACV,KAAK,EAAE,UAAU,CAAA;IACjB,OAAO,EAAE,UAAU,CAAA;IACnB,IAAI,EAAE,EAAE,CAAA;IACR,QAAQ,EAAE,IAAI,GAAG,MAAM,CAAA;IACvB,IAAI,EAAE,KAAK,EAAE,CAAA;IACb,IAAI,EAAE,KAAK,EAAE,CAAA;IACb,OAAO,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,IAAI,CAAA;KAAE,CAAA;IACxC,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CAC7E;AACD,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,cAAc,GAAG,KAAK,CAAA;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7B,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;CACjF;AACD,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,CAAC,CAAA;IACV,KAAK,EAAE,UAAU,CAAA;IACjB,IAAI,EAAE,EAAE,CAAA;IACR,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,EAAE,KAAK,EAAE,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,aAAa,CAAA;IACxB,OAAO,CAAC,EAAE,OAAO,GAAG,yBAAyB,GAAG,cAAc,CAAA;CAC/D;AACD,eAAO,MAAM,cAAc,cAAe,WAAW,CAAC,WAAW,CAAC,WAAW,aAAa,SAgBzF,CAAA;AAED,eAAO,MAAM,WAAW,SAAU,WAAW;iBACjB,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC;mBAwBvB,MAAM,YAAW,aAAa,KAAQ,OAAO,CAAC,SAAS,CAAC;CAoGrF,CAAA"}
@@ -0,0 +1,146 @@
1
+ import { createHash, randomUUID } from "node:crypto";
2
+ import { CliError } from "@leemour/cli-core";
3
+ import { historyStartKey } from "../store/store.js";
4
+ import { abortable, archiveService, FETCHING } from "./archive.js";
5
+ import { storedChatId } from "./messages.js";
6
+ import { catchUpSearch, validateCatchUp } from "./search-catchup.js";
7
+ export const GAP_BOUNDS = { maxGaps: 5, limit: 500, timeMs: 30_000 };
8
+ export const validateRepair = (messenger, options) => {
9
+ const maxGaps = options.maxGaps ?? GAP_BOUNDS.maxGaps;
10
+ const limit = options.limit ?? GAP_BOUNDS.limit;
11
+ const timeMs = options.timeMs ?? GAP_BOUNDS.timeMs;
12
+ const fetching = messenger.fetching ?? FETCHING;
13
+ const pageSize = options.pageSize ?? fetching.page;
14
+ for (const [name, value, maximum] of [
15
+ ["max-gaps", maxGaps, 100],
16
+ ["limit", limit, 10_000],
17
+ ["repair-time", timeMs, 300_000],
18
+ ["page-size", pageSize, fetching.maxPageSize ?? fetching.page],
19
+ ])
20
+ if (!Number.isSafeInteger(value) || value < 1 || value > maximum)
21
+ throw new CliError("validation_error", `${name} must be between 1 and ${maximum}`);
22
+ if (!Number.isSafeInteger(options.pauseMs ?? 0) || (options.pauseMs ?? 0) < 0)
23
+ throw new CliError("validation_error", "pause must not be negative");
24
+ };
25
+ export const gapsService = (deps) => {
26
+ const plan = async (chat) => {
27
+ const store = await deps.store();
28
+ const account = await deps.account();
29
+ const chatId = await storedChatId(deps.messenger, chat, store, account);
30
+ const ordering = (deps.messenger.fetching ?? FETCHING).orderBy ?? "id";
31
+ const held = await store.ranges(account, chatId);
32
+ const gaps = held.slice(1).flatMap((range, index) => {
33
+ const prior = held[index];
34
+ return prior && prior.to + 1 < range.from ? [{ from: prior.to + 1, to: range.from - 1 }] : [];
35
+ });
36
+ const knownStart = await store.syncState(account, historyStartKey(chatId));
37
+ const start = knownStart === null ? NaN : Number(knownStart?.value);
38
+ const unknown = { older: !Number.isSafeInteger(start) || !held[0] || held[0].from > start, newer: true };
39
+ const identity = { account, chat: chatId, ordering, held };
40
+ return {
41
+ version: 1,
42
+ scope: "interior",
43
+ ...identity,
44
+ limits: { ...GAP_BOUNDS, pageSize: (deps.messenger.fetching ?? FETCHING).page },
45
+ gaps,
46
+ unknown,
47
+ fingerprint: createHash("sha256").update(JSON.stringify(identity)).digest("hex"),
48
+ };
49
+ };
50
+ const repair = async (chat, options = {}) => {
51
+ const maxGaps = options.maxGaps ?? GAP_BOUNDS.maxGaps;
52
+ const limit = options.limit ?? GAP_BOUNDS.limit;
53
+ const timeMs = options.timeMs ?? GAP_BOUNDS.timeMs;
54
+ const fetching = deps.messenger.fetching ?? FETCHING;
55
+ const pageSize = options.pageSize ?? fetching.page;
56
+ validateRepair(deps.messenger, options);
57
+ const prepare = options.catchUp ?? (deps.searchCatchUp ? {} : false);
58
+ if (prepare)
59
+ validateCatchUp(deps, prepare);
60
+ deps.guard.check({ chatId: null, key: "store.gaps.repair" }, { reserve: false });
61
+ const before = await plan(chat);
62
+ if (options.fingerprint !== undefined && options.fingerprint !== before.fingerprint)
63
+ throw new CliError("validation_error", "the gap plan changed; inspect it again before repairing");
64
+ const store = await deps.store();
65
+ const holder = randomUUID();
66
+ if (!(await store.claim(before.account, before.chat, "gaps", holder, timeMs + 5000)))
67
+ throw new CliError("validation_error", "another gap repair holds this chat; retry after it finishes");
68
+ const started = Date.now();
69
+ const controller = new AbortController();
70
+ const timer = setTimeout(() => controller.abort(), timeMs);
71
+ const signal = options.signal ? AbortSignal.any([options.signal, controller.signal]) : controller.signal;
72
+ let fetched = 0;
73
+ let requests = 0;
74
+ const repaired = [];
75
+ let stopped;
76
+ try {
77
+ for (let round = 0; round < maxGaps; round += 1) {
78
+ const current = await plan(before.chat);
79
+ const gap = current.gaps.at(-1);
80
+ if (!gap)
81
+ break;
82
+ if (signal.aborted || fetched >= limit) {
83
+ stopped = "bound";
84
+ break;
85
+ }
86
+ let result;
87
+ let windowFetched = 0;
88
+ try {
89
+ result = await abortable(() => archiveService(deps).fetch(before.chat, {
90
+ window: gap,
91
+ onRequest: () => {
92
+ requests += 1;
93
+ },
94
+ limit: limit - fetched,
95
+ pageSize,
96
+ pauseMs: options.pauseMs ?? 1000,
97
+ catchUp: false,
98
+ stop: signal,
99
+ note: options.note ?? (() => { }),
100
+ onPage: (progress) => {
101
+ windowFetched = progress.fetched;
102
+ options.onPage?.({ ...progress, fetched: fetched + windowFetched });
103
+ },
104
+ }), signal);
105
+ }
106
+ catch {
107
+ fetched += windowFetched;
108
+ stopped = signal.aborted ? "bound" : "fetch_failed";
109
+ break;
110
+ }
111
+ fetched += result.fetched;
112
+ if (!result.windowComplete) {
113
+ stopped = signal.aborted || fetched >= limit ? "bound" : "partial_or_inaccessible";
114
+ break;
115
+ }
116
+ repaired.push(gap);
117
+ }
118
+ const after = await plan(before.chat);
119
+ const remainingMs = timeMs - (Date.now() - started);
120
+ const prepared = !prepare
121
+ ? undefined
122
+ : remainingMs <= 0 || signal.aborted
123
+ ? { complete: false, reason: "time_or_abort_bound" }
124
+ : await catchUpSearch(deps, before.chat, { ...prepare, timeMs: Math.min(prepare.timeMs ?? 30_000, remainingMs) }, signal);
125
+ return {
126
+ version: 1,
127
+ scope: "interior",
128
+ chat: before.chat,
129
+ before,
130
+ after,
131
+ repaired,
132
+ fetched,
133
+ requests,
134
+ complete: after.gaps.length === 0,
135
+ ...(prepared === undefined ? {} : { prepared }),
136
+ ...(stopped ? { stopped } : after.gaps.length ? { stopped: "bound" } : {}),
137
+ };
138
+ }
139
+ finally {
140
+ clearTimeout(timer);
141
+ await store.release(before.account, before.chat, "gaps", holder);
142
+ }
143
+ };
144
+ return { plan, repair };
145
+ };
146
+ //# sourceMappingURL=archive-gaps.js.map