@leemour/cli-messaging 0.166.0 → 0.168.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 (141) hide show
  1. package/README.md +3 -1
  2. package/dist/attachments/extract.d.ts +6 -2
  3. package/dist/attachments/extract.d.ts.map +1 -1
  4. package/dist/attachments/extract.js +1 -1
  5. package/dist/attachments/extract.js.map +1 -1
  6. package/dist/attachments/gateway-ocr.d.ts +15 -0
  7. package/dist/attachments/gateway-ocr.d.ts.map +1 -0
  8. package/dist/attachments/gateway-ocr.js +48 -0
  9. package/dist/attachments/gateway-ocr.js.map +1 -0
  10. package/dist/attachments/ocr.d.ts +9 -0
  11. package/dist/attachments/ocr.d.ts.map +1 -0
  12. package/dist/attachments/ocr.js +154 -0
  13. package/dist/attachments/ocr.js.map +1 -0
  14. package/dist/cli/command-contract.js +1 -1
  15. package/dist/cli/command-contract.js.map +1 -1
  16. package/dist/cli/index.d.ts +1 -1
  17. package/dist/cli/index.d.ts.map +1 -1
  18. package/dist/cli/index.js.map +1 -1
  19. package/dist/cli/messenger/attachments-command.d.ts.map +1 -1
  20. package/dist/cli/messenger/attachments-command.js +21 -2
  21. package/dist/cli/messenger/attachments-command.js.map +1 -1
  22. package/dist/cli/messenger/contacts-command.d.ts.map +1 -1
  23. package/dist/cli/messenger/contacts-command.js +2 -1
  24. package/dist/cli/messenger/contacts-command.js.map +1 -1
  25. package/dist/cli/messenger/messages-command.d.ts.map +1 -1
  26. package/dist/cli/messenger/messages-command.js +2 -0
  27. package/dist/cli/messenger/messages-command.js.map +1 -1
  28. package/dist/cli/messenger/messages-comments-command.d.ts +4 -0
  29. package/dist/cli/messenger/messages-comments-command.d.ts.map +1 -0
  30. package/dist/cli/messenger/messages-comments-command.js +34 -0
  31. package/dist/cli/messenger/messages-comments-command.js.map +1 -0
  32. package/dist/cli/messenger/messages-forward-command.d.ts.map +1 -1
  33. package/dist/cli/messenger/messages-forward-command.js +1 -1
  34. package/dist/cli/messenger/messages-forward-command.js.map +1 -1
  35. package/dist/cli/messenger/messages-send-command.d.ts.map +1 -1
  36. package/dist/cli/messenger/messages-send-command.js +7 -2
  37. package/dist/cli/messenger/messages-send-command.js.map +1 -1
  38. package/dist/cli/messenger/polls-command.d.ts.map +1 -1
  39. package/dist/cli/messenger/polls-command.js +1 -1
  40. package/dist/cli/messenger/polls-command.js.map +1 -1
  41. package/dist/cli/messenger/port.d.ts +14 -2
  42. package/dist/cli/messenger/port.d.ts.map +1 -1
  43. package/dist/cli/messenger/port.js.map +1 -1
  44. package/dist/domain/models.d.ts +21 -0
  45. package/dist/domain/models.d.ts.map +1 -1
  46. package/dist/domain/rankings-graph.d.ts +65 -0
  47. package/dist/domain/rankings-graph.d.ts.map +1 -0
  48. package/dist/domain/rankings-graph.js +240 -0
  49. package/dist/domain/rankings-graph.js.map +1 -0
  50. package/dist/domain/rankings-options.d.ts +38 -0
  51. package/dist/domain/rankings-options.d.ts.map +1 -0
  52. package/dist/domain/rankings-options.js +157 -0
  53. package/dist/domain/rankings-options.js.map +1 -0
  54. package/dist/domain/rankings-range.d.ts +5 -0
  55. package/dist/domain/rankings-range.d.ts.map +1 -0
  56. package/dist/domain/rankings-range.js +23 -0
  57. package/dist/domain/rankings-range.js.map +1 -0
  58. package/dist/index.d.ts +3 -0
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +1 -0
  61. package/dist/index.js.map +1 -1
  62. package/dist/mcp/tool.d.ts +1 -1
  63. package/dist/mcp/tool.d.ts.map +1 -1
  64. package/dist/mcp/tools/attachments.d.ts.map +1 -1
  65. package/dist/mcp/tools/attachments.js +18 -1
  66. package/dist/mcp/tools/attachments.js.map +1 -1
  67. package/dist/mcp/tools/contacts.d.ts.map +1 -1
  68. package/dist/mcp/tools/contacts.js +3 -1
  69. package/dist/mcp/tools/contacts.js.map +1 -1
  70. package/dist/mcp/tools/messages-actions.d.ts.map +1 -1
  71. package/dist/mcp/tools/messages-actions.js +1 -1
  72. package/dist/mcp/tools/messages-actions.js.map +1 -1
  73. package/dist/mcp/tools/messages-send.d.ts.map +1 -1
  74. package/dist/mcp/tools/messages-send.js +3 -1
  75. package/dist/mcp/tools/messages-send.js.map +1 -1
  76. package/dist/mcp/tools/messages.d.ts.map +1 -1
  77. package/dist/mcp/tools/messages.js +17 -0
  78. package/dist/mcp/tools/messages.js.map +1 -1
  79. package/dist/mcp/tools/polls.d.ts.map +1 -1
  80. package/dist/mcp/tools/polls.js +1 -1
  81. package/dist/mcp/tools/polls.js.map +1 -1
  82. package/dist/models/anthropic.d.ts.map +1 -1
  83. package/dist/models/anthropic.js +15 -1
  84. package/dist/models/anthropic.js.map +1 -1
  85. package/dist/models/index.d.ts +2 -2
  86. package/dist/models/index.d.ts.map +1 -1
  87. package/dist/models/index.js +12 -2
  88. package/dist/models/index.js.map +1 -1
  89. package/dist/models/openai.d.ts.map +1 -1
  90. package/dist/models/openai.js +16 -1
  91. package/dist/models/openai.js.map +1 -1
  92. package/dist/models/types.d.ts +8 -0
  93. package/dist/models/types.d.ts.map +1 -1
  94. package/dist/models/types.js +31 -1
  95. package/dist/models/types.js.map +1 -1
  96. package/dist/sends/permissions.d.ts.map +1 -1
  97. package/dist/sends/permissions.js +2 -0
  98. package/dist/sends/permissions.js.map +1 -1
  99. package/dist/sends/send-as.d.ts +4 -2
  100. package/dist/sends/send-as.d.ts.map +1 -1
  101. package/dist/sends/send-as.js +13 -3
  102. package/dist/sends/send-as.js.map +1 -1
  103. package/dist/services/attachments.d.ts +8 -1
  104. package/dist/services/attachments.d.ts.map +1 -1
  105. package/dist/services/attachments.js +121 -74
  106. package/dist/services/attachments.js.map +1 -1
  107. package/dist/services/messages.d.ts +10 -1
  108. package/dist/services/messages.d.ts.map +1 -1
  109. package/dist/services/messages.js +21 -2
  110. package/dist/services/messages.js.map +1 -1
  111. package/dist/services/person-profile.d.ts.map +1 -1
  112. package/dist/services/person-profile.js +12 -1
  113. package/dist/services/person-profile.js.map +1 -1
  114. package/dist/store/index.d.ts +1 -1
  115. package/dist/store/index.d.ts.map +1 -1
  116. package/dist/store/index.js.map +1 -1
  117. package/dist/store/sqlite/attachment-texts.d.ts +1 -0
  118. package/dist/store/sqlite/attachment-texts.d.ts.map +1 -1
  119. package/dist/store/sqlite/attachment-texts.js +2 -1
  120. package/dist/store/sqlite/attachment-texts.js.map +1 -1
  121. package/dist/store/sqlite/identities.d.ts +17 -3
  122. package/dist/store/sqlite/identities.d.ts.map +1 -1
  123. package/dist/store/sqlite/identities.js +113 -9
  124. package/dist/store/sqlite/identities.js.map +1 -1
  125. package/dist/store/sqlite/lucene.d.ts +8 -0
  126. package/dist/store/sqlite/lucene.d.ts.map +1 -1
  127. package/dist/store/sqlite/lucene.js +98 -6
  128. package/dist/store/sqlite/lucene.js.map +1 -1
  129. package/dist/store/sqlite/rankings.d.ts +42 -0
  130. package/dist/store/sqlite/rankings.d.ts.map +1 -0
  131. package/dist/store/sqlite/rankings.js +319 -0
  132. package/dist/store/sqlite/rankings.js.map +1 -0
  133. package/dist/store/sqlite/roster.d.ts.map +1 -1
  134. package/dist/store/sqlite/roster.js +5 -22
  135. package/dist/store/sqlite/roster.js.map +1 -1
  136. package/dist/store/store.d.ts +6 -1
  137. package/dist/store/store.d.ts.map +1 -1
  138. package/dist/store/store.js +6 -0
  139. package/dist/store/store.js.map +1 -1
  140. package/package.json +7 -1
  141. package/parity.json +61 -151
@@ -0,0 +1,240 @@
1
+ import { CliError } from "@leemour/cli-core";
2
+ import { rankingQuestion } from "./rankings-options.js";
3
+ export const RANKING_GRAPH_LIMITS = { nodes: 50_000, depth: 256, work: 10_000_000, bytes: 8_388_608 };
4
+ const exhausted = (budget) => {
5
+ throw new CliError("validation_error", `ranking exceeded ${budget} — narrow its chat or date scope`, {
6
+ reason: "query_limit",
7
+ budget,
8
+ complete: false,
9
+ });
10
+ };
11
+ const key = (node) => JSON.stringify([node.account.provider, node.account.account, node.chatId, node.id]);
12
+ const record = (value) => value !== null && typeof value === "object" && !Array.isArray(value) ? value : undefined;
13
+ const link = (value) => {
14
+ const fields = record(value);
15
+ if (!fields ||
16
+ typeof fields.chatId !== "string" ||
17
+ typeof fields.messageId !== "string" ||
18
+ !fields.chatId ||
19
+ !fields.messageId ||
20
+ fields.chatId.length > 256 ||
21
+ fields.messageId.length > 256)
22
+ return undefined;
23
+ return { chatId: fields.chatId, messageId: fields.messageId };
24
+ };
25
+ /** Only explicit versioned linkage participates; old thread ids and ordinary forwards do not. */
26
+ export const rankingGraphEvidence = (value) => {
27
+ const fields = record(value);
28
+ if (fields?.version !== 1)
29
+ return undefined;
30
+ const reply = fields.reply === null ? null : link(fields.reply);
31
+ const source = link(fields.discussionSource);
32
+ const discussion = typeof fields.discussionChatId === "string" &&
33
+ fields.discussionChatId.length > 0 &&
34
+ fields.discussionChatId.length <= 256
35
+ ? fields.discussionChatId
36
+ : undefined;
37
+ return {
38
+ version: 1,
39
+ ...(reply === undefined ? {} : { reply }),
40
+ ...(source === undefined ? {} : { discussionSource: source }),
41
+ ...(discussion === undefined ? {} : { discussionChatId: discussion }),
42
+ };
43
+ };
44
+ /** The caller supplies a bounded, authorised graph, including structural ancestors outside the event period. */
45
+ export const rankReplyGraph = (nodes, check = () => { }) => {
46
+ if (nodes.length > RANKING_GRAPH_LIMITS.nodes)
47
+ exhausted("reply graph nodes");
48
+ const byKey = new Map();
49
+ const byPk = new Map();
50
+ const questions = new Set();
51
+ let bytes = 0;
52
+ for (const node of nodes) {
53
+ check();
54
+ bytes += Buffer.byteLength(node.text) + Buffer.byteLength(JSON.stringify(node.graph ?? null));
55
+ if (bytes > RANKING_GRAPH_LIMITS.bytes)
56
+ exhausted("reply graph bytes");
57
+ if (byKey.has(key(node)) || byPk.has(node.pk))
58
+ throw new Error("ranking graph contains duplicate message keys");
59
+ if (node.event && rankingQuestion(node.text))
60
+ questions.add(node.pk);
61
+ byKey.set(key(node), node);
62
+ byPk.set(node.pk, node);
63
+ }
64
+ const accountQuality = new Map();
65
+ const qualityFor = (node) => {
66
+ const accountKey = JSON.stringify([node.account.provider, node.account.account]);
67
+ let quality = accountQuality.get(accountKey);
68
+ if (!quality) {
69
+ quality = {
70
+ account: node.account,
71
+ unknownLinks: 0,
72
+ unknownAuthors: 0,
73
+ missingParents: 0,
74
+ cycles: 0,
75
+ complete: true,
76
+ };
77
+ accountQuality.set(accountKey, quality);
78
+ }
79
+ return quality;
80
+ };
81
+ for (const node of nodes)
82
+ qualityFor(node);
83
+ let unknownLinks = 0;
84
+ let unknownAuthors = 0;
85
+ let missingParents = 0;
86
+ let cycles = 0;
87
+ let work = 0;
88
+ const touch = () => {
89
+ check();
90
+ if (++work > RANKING_GRAPH_LIMITS.work)
91
+ exhausted("reply graph work");
92
+ };
93
+ const originOf = (node) => {
94
+ const source = node.graph?.discussionSource;
95
+ if (!source)
96
+ return undefined;
97
+ const origin = byKey.get(key({ account: node.account, chatId: source.chatId, id: source.messageId }));
98
+ return origin?.chatKind === "channel" && origin.graph?.discussionChatId === node.chatId ? origin : undefined;
99
+ };
100
+ const parents = new Map();
101
+ const result = new Map();
102
+ for (const node of nodes) {
103
+ touch();
104
+ result.set(node.pk, {
105
+ kind: null,
106
+ replies: 0,
107
+ selfReplies: 0,
108
+ otherReplies: 0,
109
+ descendants: 0,
110
+ thread: 0,
111
+ answerFor: null,
112
+ answerDelay: null,
113
+ });
114
+ if (node.graph?.discussionSource)
115
+ continue;
116
+ const reply = node.graph?.reply;
117
+ if (reply === undefined) {
118
+ if (node.event) {
119
+ unknownLinks++;
120
+ qualityFor(node).unknownLinks++;
121
+ }
122
+ continue;
123
+ }
124
+ if (reply === null)
125
+ continue;
126
+ let parent = byKey.get(key({ account: node.account, chatId: reply.chatId, id: reply.messageId }));
127
+ if (parent?.graph?.discussionSource)
128
+ parent = originOf(parent);
129
+ if (!parent) {
130
+ if (node.event) {
131
+ missingParents++;
132
+ qualityFor(node).missingParents++;
133
+ }
134
+ continue;
135
+ }
136
+ parents.set(node.pk, parent.pk);
137
+ }
138
+ const answers = new Map();
139
+ for (const node of nodes) {
140
+ touch();
141
+ const parentPk = parents.get(node.pk);
142
+ const parent = parentPk === undefined ? undefined : byPk.get(parentPk);
143
+ if (node.event && parent && parent.pk !== node.pk) {
144
+ const row = result.get(parent.pk);
145
+ row.replies++;
146
+ if (node.sender === null || parent.sender === null) {
147
+ unknownAuthors++;
148
+ qualityFor(node).unknownAuthors++;
149
+ }
150
+ else if (node.sender === parent.sender && Boolean(node.senderIsChat) === Boolean(parent.senderIsChat))
151
+ row.selfReplies++;
152
+ else if (!node.senderIsChat) {
153
+ row.otherReplies++;
154
+ if (!parent.senderIsChat && parent.event && questions.has(parent.pk) && node.timestamp >= parent.timestamp) {
155
+ const first = answers.get(parent.pk);
156
+ if (!first ||
157
+ node.timestamp < first.timestamp ||
158
+ (node.timestamp === first.timestamp && key(node) < key(first)))
159
+ answers.set(parent.pk, node);
160
+ }
161
+ }
162
+ }
163
+ const visited = new Set([node.pk]);
164
+ let current = node;
165
+ let depth = 0;
166
+ while (current) {
167
+ touch();
168
+ if (++depth > RANKING_GRAPH_LIMITS.depth)
169
+ exhausted("reply graph depth");
170
+ const row = result.get(node.pk);
171
+ if (!["group", "channel"].includes(current.chatKind)) {
172
+ row.kind = "other";
173
+ break;
174
+ }
175
+ if (current.graph?.discussionSource) {
176
+ row.kind = current.pk === node.pk ? "bridge" : originOf(current) ? "comments" : null;
177
+ break;
178
+ }
179
+ if (current.chatKind === "channel" || (current.chatKind === "group" && current.graph?.reply === null)) {
180
+ row.kind = current.pk === node.pk ? "posts" : "comments";
181
+ break;
182
+ }
183
+ const ancestorPk = parents.get(current.pk);
184
+ if (ancestorPk === undefined)
185
+ break;
186
+ if (visited.has(ancestorPk)) {
187
+ if (node.event) {
188
+ cycles++;
189
+ qualityFor(node).cycles++;
190
+ }
191
+ break;
192
+ }
193
+ visited.add(ancestorPk);
194
+ current = byPk.get(ancestorPk);
195
+ }
196
+ if (!node.event || node.graph?.discussionSource)
197
+ continue;
198
+ const counted = new Set([node.pk]);
199
+ let ancestor = parents.get(node.pk);
200
+ let depthCount = 0;
201
+ while (ancestor !== undefined && !counted.has(ancestor)) {
202
+ touch();
203
+ if (++depthCount > RANKING_GRAPH_LIMITS.depth)
204
+ exhausted("reply graph depth");
205
+ counted.add(ancestor);
206
+ const row = result.get(ancestor);
207
+ row.descendants++;
208
+ ancestor = parents.get(ancestor);
209
+ }
210
+ }
211
+ for (const [question, answer] of answers) {
212
+ if (!answer.selected)
213
+ continue;
214
+ const row = result.get(answer.pk);
215
+ row.answerFor = question;
216
+ row.answerDelay = answer.timestamp - byPk.get(question).timestamp;
217
+ }
218
+ for (const node of nodes) {
219
+ const row = result.get(node.pk);
220
+ row.thread =
221
+ node.graph?.reply === null && !node.graph?.discussionSource && !parents.has(node.pk) && row.descendants > 0
222
+ ? 1
223
+ : 0;
224
+ }
225
+ for (const quality of accountQuality.values())
226
+ quality.complete =
227
+ quality.unknownLinks === 0 && quality.unknownAuthors === 0 && quality.missingParents === 0 && quality.cycles === 0;
228
+ return {
229
+ accounts: [...accountQuality.values()],
230
+ rows: result,
231
+ quality: {
232
+ unknownLinks,
233
+ unknownAuthors,
234
+ missingParents,
235
+ cycles,
236
+ complete: unknownLinks === 0 && unknownAuthors === 0 && missingParents === 0 && cycles === 0,
237
+ },
238
+ };
239
+ };
240
+ //# sourceMappingURL=rankings-graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rankings-graph.js","sourceRoot":"","sources":["../../src/domain/rankings-graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ export declare const MESSAGE_MEASURES: readonly ["views", "reactions", "forwards", "comments", "replies", "thread-size"];
2
+ export declare const AUTHOR_MEASURES: readonly ["messages", "words", "reactions", "replies", "answers", "answer-time", "threads", "active-days"];
3
+ export type RankingTarget = "messages" | "contacts";
4
+ export type MessageKind = "all" | "posts" | "comments";
5
+ export type RankingMeasure = (typeof MESSAGE_MEASURES)[number] | (typeof AUTHOR_MEASURES)[number];
6
+ export type RankingComponent = Exclude<RankingMeasure, "answer-time"> | "replies-from-others" | "reactions-per-message" | "replies-from-others-per-message";
7
+ export type ScorePreset = "helpful" | "active" | "engaging";
8
+ export type RankingWeights = Partial<Record<RankingComponent, number>>;
9
+ export interface RankingInput {
10
+ measure?: string;
11
+ score?: string;
12
+ weights?: unknown;
13
+ minMessages?: number;
14
+ messageKind?: string;
15
+ }
16
+ export interface RankingOptions {
17
+ target: RankingTarget;
18
+ measure: RankingMeasure | "score";
19
+ order: "ascending" | "descending";
20
+ minMessages: number;
21
+ messageKind: MessageKind;
22
+ weights: RankingWeights | null;
23
+ preset: ScorePreset | "custom" | null;
24
+ components: (RankingMeasure | RankingComponent)[];
25
+ }
26
+ export declare const needsRankingContext: (options: RankingOptions) => boolean;
27
+ export declare const rankingOptions: (target: RankingTarget, input: RankingInput) => RankingOptions;
28
+ export interface ScoreComponents {
29
+ score: number;
30
+ normalized: Partial<Record<RankingComponent, number>>;
31
+ contributions: Partial<Record<RankingComponent, number>>;
32
+ }
33
+ /** Scale weights first so valid finite weights cannot overflow their sum. */
34
+ export declare const rankingScore: (raw: Partial<Record<RankingComponent, number | null>>, maxima: Partial<Record<RankingComponent, number>>, weights: RankingWeights) => ScoreComponents | null;
35
+ export declare const RANKING_TOKENIZER_VERSION = 1;
36
+ export declare const rankingWords: (text: string) => number;
37
+ export declare const rankingQuestion: (text: string) => boolean;
38
+ //# sourceMappingURL=rankings-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rankings-options.d.ts","sourceRoot":"","sources":["../../src/domain/rankings-options.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB,YAAI,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,CAAU,CAAA;AACjH,eAAO,MAAM,eAAe,YAC1B,UAAU,EACV,OAAO,EACP,WAAW,EACX,SAAS,EACT,SAAS,EACT,aAAa,EACb,SAAS,EACT,aAAa,CACL,CAAA;AACV,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,UAAU,CAAA;AACnD,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,OAAO,GAAG,UAAU,CAAA;AACtD,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAA;AACjG,MAAM,MAAM,gBAAgB,GACxB,OAAO,CAAC,cAAc,EAAE,aAAa,CAAC,GACtC,qBAAqB,GACrB,uBAAuB,GACvB,iCAAiC,CAAA;AACrC,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAA;AAC3D,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAA;AACtE,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AACD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,aAAa,CAAA;IACrB,OAAO,EAAE,cAAc,GAAG,OAAO,CAAA;IACjC,KAAK,EAAE,WAAW,GAAG,YAAY,CAAA;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,WAAW,CAAA;IACxB,OAAO,EAAE,cAAc,GAAG,IAAI,CAAA;IAC9B,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,IAAI,CAAA;IACrC,UAAU,EAAE,CAAC,cAAc,GAAG,gBAAgB,CAAC,EAAE,CAAA;CAClD;AAUD,eAAO,MAAM,mBAAmB,YAAa,cAAc,KAAG,OACR,CAAA;AAWtD,eAAO,MAAM,cAAc,WAAY,aAAa,SAAS,YAAY,KAAG,cAoE3E,CAAA;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAA;IACrD,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAA;CACzD;AAED,6EAA6E;AAC7E,eAAO,MAAM,YAAY,QAClB,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,UAC7C,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,WACxC,cAAc,KACtB,eAAe,GAAG,IA0BpB,CAAA;AAED,eAAO,MAAM,yBAAyB,IAAI,CAAA;AAwB1C,eAAO,MAAM,YAAY,SAAU,MAAM,KAAG,MAAiE,CAAA;AAC7G,eAAO,MAAM,eAAe,SAAU,MAAM,KAAG,OAA0C,CAAA"}
@@ -0,0 +1,157 @@
1
+ import { CliError } from "@leemour/cli-core";
2
+ export const MESSAGE_MEASURES = ["views", "reactions", "forwards", "comments", "replies", "thread-size"];
3
+ export const AUTHOR_MEASURES = [
4
+ "messages",
5
+ "words",
6
+ "reactions",
7
+ "replies",
8
+ "answers",
9
+ "answer-time",
10
+ "threads",
11
+ "active-days",
12
+ ];
13
+ const CONTEXT = new Set([
14
+ "replies",
15
+ "replies-from-others",
16
+ "replies-from-others-per-message",
17
+ "thread-size",
18
+ "threads",
19
+ "answers",
20
+ "answer-time",
21
+ ]);
22
+ export const needsRankingContext = (options) => options.components.some((name) => CONTEXT.has(name));
23
+ const presets = {
24
+ helpful: { answers: 0.5, "replies-from-others": 0.25, reactions: 0.25 },
25
+ active: { "active-days": 0.6, messages: 0.4 },
26
+ engaging: { "reactions-per-message": 0.5, "replies-from-others-per-message": 0.5 },
27
+ };
28
+ function invalid(message) {
29
+ throw new CliError("validation_error", message, { reason: "invalid_ranking" });
30
+ }
31
+ export const rankingOptions = (target, input) => {
32
+ const measures = target === "messages" ? MESSAGE_MEASURES : AUTHOR_MEASURES;
33
+ const { measure, score, weights: given, minMessages } = input;
34
+ const messageKind = input.messageKind ?? "all";
35
+ if (!["all", "posts", "comments"].includes(messageKind))
36
+ invalid("--message-kind takes all, posts or comments");
37
+ if (target === "messages" && minMessages !== undefined)
38
+ invalid("--min-messages applies to stats contacts top");
39
+ if (minMessages !== undefined && (!Number.isSafeInteger(minMessages) || minMessages < 1))
40
+ invalid("--min-messages takes a positive integer");
41
+ if (measure !== undefined && !measures.includes(measure))
42
+ invalid(`--measure takes ${measures.join(", ")}`);
43
+ if (measure !== undefined && (score !== undefined || given !== undefined))
44
+ invalid("--measure cannot be combined with --score or --weights");
45
+ if (score !== undefined && !["helpful", "active", "engaging"].includes(score))
46
+ invalid("--score takes helpful, active or engaging");
47
+ if (target === "messages" && score !== undefined && score !== "engaging")
48
+ invalid("helpful and active scores apply to authors only");
49
+ const scoring = score !== undefined || given !== undefined;
50
+ const preset = score;
51
+ let weights = null;
52
+ if (scoring) {
53
+ let raw = given !== undefined
54
+ ? given
55
+ : target === "messages"
56
+ ? { reactions: 0.5, "replies-from-others": 0.5 }
57
+ : presets[preset];
58
+ if (typeof raw === "string") {
59
+ try {
60
+ raw = JSON.parse(raw);
61
+ }
62
+ catch {
63
+ invalid("--weights takes a JSON object of component weights");
64
+ }
65
+ }
66
+ if (!raw || typeof raw !== "object" || Array.isArray(raw))
67
+ invalid("--weights takes a JSON object of component weights");
68
+ const allowed = target === "messages"
69
+ ? [...MESSAGE_MEASURES, "replies-from-others"]
70
+ : [
71
+ ...AUTHOR_MEASURES.filter((name) => name !== "answer-time"),
72
+ "replies-from-others",
73
+ "reactions-per-message",
74
+ "replies-from-others-per-message",
75
+ ];
76
+ const entries = Object.entries(raw);
77
+ for (const [name, weight] of entries) {
78
+ if (!allowed.includes(name))
79
+ invalid(`unknown ${target} score component: ${name}`);
80
+ if (typeof weight !== "number" || !Number.isFinite(weight) || weight < 0)
81
+ invalid(`weight for ${name} must be a finite nonnegative number`);
82
+ }
83
+ if (!entries.some(([, weight]) => weight > 0))
84
+ invalid("--weights needs at least one positive weight");
85
+ weights = Object.fromEntries(entries);
86
+ }
87
+ const selected = (measure ?? (target === "messages" ? "reactions" : "messages"));
88
+ return {
89
+ target,
90
+ messageKind: messageKind,
91
+ minMessages: minMessages ?? (target === "contacts" && score === "engaging" ? 5 : 1),
92
+ measure: scoring ? "score" : selected,
93
+ order: !scoring && selected === "answer-time" ? "ascending" : "descending",
94
+ weights,
95
+ preset: scoring ? (preset ?? "custom") : null,
96
+ components: weights === null
97
+ ? [selected]
98
+ : Object.entries(weights)
99
+ .filter(([, weight]) => weight > 0)
100
+ .map(([name]) => name),
101
+ };
102
+ };
103
+ /** Scale weights first so valid finite weights cannot overflow their sum. */
104
+ export const rankingScore = (raw, maxima, weights) => {
105
+ const entries = Object.entries(weights).filter(([, weight]) => weight > 0);
106
+ const scale = Math.max(...entries.map(([, weight]) => weight));
107
+ const denominator = entries.reduce((sum, [, weight]) => sum + weight / scale, 0);
108
+ if (!Number.isFinite(scale) || scale <= 0 || !Number.isFinite(denominator) || denominator <= 0)
109
+ return null;
110
+ const normalized = {};
111
+ const contributions = {};
112
+ let sum = 0;
113
+ for (const [name, weight] of entries) {
114
+ const value = raw[name];
115
+ const maximum = maxima[name];
116
+ if (value == null ||
117
+ !Number.isFinite(value) ||
118
+ value < 0 ||
119
+ maximum === undefined ||
120
+ !Number.isFinite(maximum) ||
121
+ maximum < value)
122
+ return null;
123
+ const part = maximum === 0 ? 0 : value / maximum;
124
+ normalized[name] = part;
125
+ contributions[name] = (100 * part * (weight / scale)) / denominator;
126
+ sum += contributions[name];
127
+ }
128
+ return { score: Math.min(100, sum), normalized, contributions };
129
+ };
130
+ export const RANKING_TOKENIZER_VERSION = 1;
131
+ const withoutUrls = (text) => text.replace(/\S+/gu, (token) => {
132
+ for (let offset = 0;;) {
133
+ const marker = token.indexOf("://", offset);
134
+ if (marker < 0)
135
+ break;
136
+ let start = marker;
137
+ while (start > 0 && /[a-z0-9+.-]/iu.test(token[start - 1]))
138
+ start--;
139
+ if (/^[a-z][a-z0-9+.-]*$/iu.test(token.slice(start, marker)) &&
140
+ (start === 0 || !/\w/u.test(token[start - 1])))
141
+ return token.slice(0, start);
142
+ offset = marker + 3;
143
+ }
144
+ const folded = token.toLowerCase();
145
+ for (let offset = 0;;) {
146
+ const start = folded.indexOf("www.", offset);
147
+ if (start < 0)
148
+ break;
149
+ if (start === 0 || !/\w/u.test(token[start - 1]))
150
+ return token.slice(0, start);
151
+ offset = start + 4;
152
+ }
153
+ return token;
154
+ });
155
+ export const rankingWords = (text) => withoutUrls(text).match(/[\p{L}\p{N}]+/gu)?.length ?? 0;
156
+ export const rankingQuestion = (text) => withoutUrls(text).includes("?");
157
+ //# sourceMappingURL=rankings-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rankings-options.js","sourceRoot":"","sources":["../../src/domain/rankings-options.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { DateRange } from "../search/lucene/dates.js";
2
+ import type { ResolvedNode } from "../search/lucene/resolved.js";
3
+ /** A common positive date range bounds reply events independently of author/body filters. */
4
+ export declare const rankingContextRange: (root: ResolvedNode) => DateRange | undefined;
5
+ //# sourceMappingURL=rankings-range.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rankings-range.d.ts","sourceRoot":"","sources":["../../src/domain/rankings-range.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAqB,MAAM,8BAA8B,CAAA;AAEnF,6FAA6F;AAC7F,eAAO,MAAM,mBAAmB,SAAU,YAAY,KAAG,SAAS,GAAG,SAwBpE,CAAA"}
@@ -0,0 +1,23 @@
1
+ import { CliError } from "@leemour/cli-core";
2
+ /** A common positive date range bounds reply events independently of author/body filters. */
3
+ export const rankingContextRange = (root) => {
4
+ const dates = [];
5
+ const visit = (node, required) => {
6
+ if (node.kind === "predicate") {
7
+ if (node.field === "date")
8
+ dates.push({ node, required });
9
+ return;
10
+ }
11
+ const must = node.clauses.some(({ occur }) => occur === "must");
12
+ const positive = node.clauses.filter(({ occur }) => occur === "should");
13
+ for (const clause of node.clauses)
14
+ visit(clause.node, required && (clause.occur === "must" || (!must && positive.length === 1 && clause.occur === "should")));
15
+ };
16
+ visit(root, true);
17
+ if (dates.length === 0)
18
+ return undefined;
19
+ if (dates.length !== 1 || !dates[0]?.required || !dates[0].node.resolution?.date)
20
+ throw new CliError("validation_error", "reply rankings need one common positive date range; move date: outside Boolean alternatives", { reason: "ambiguous_context_period" });
21
+ return dates[0].node.resolution.date;
22
+ };
23
+ //# sourceMappingURL=rankings-range.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rankings-range.js","sourceRoot":"","sources":["../../src/domain/rankings-range.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAI5C,6FAA6F;AAC7F,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAkB,EAAyB,EAAE;IAC/E,MAAM,KAAK,GAAqD,EAAE,CAAA;IAClE,MAAM,KAAK,GAAG,CAAC,IAAkB,EAAE,QAAiB,EAAE,EAAE;QACtD,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;YACzD,OAAM;QACR,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC,CAAA;QAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAA;QACvE,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO;YAC/B,KAAK,CACH,MAAM,CAAC,IAAI,EACX,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CACvG,CAAA;IACL,CAAC,CAAA;IACD,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACjB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IACxC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI;QAC9E,MAAM,IAAI,QAAQ,CAChB,kBAAkB,EAClB,6FAA6F,EAC7F,EAAE,MAAM,EAAE,0BAA0B,EAAE,CACvC,CAAA;IACH,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAA;AACtC,CAAC,CAAA"}
package/dist/index.d.ts CHANGED
@@ -3,6 +3,9 @@ export { formatLocator, isLocator, type MessageLocator, parseLocator } from "./d
3
3
  export { type Markup, parseMarkdown } from "./domain/markdown.js";
4
4
  export type { MessageLink, MessagePermalink } from "./domain/message-link.js";
5
5
  export type * from "./domain/models.js";
6
+ export type { RankingGraphEvidence, RankingGraphLink } from "./domain/rankings-graph.js";
7
+ export type { RankingComponent, RankingInput, RankingMeasure, RankingOptions, RankingTarget, RankingWeights, ScorePreset, } from "./domain/rankings-options.js";
8
+ export { rankingOptions } from "./domain/rankings-options.js";
6
9
  export { normalizeTag, TAG_TYPES, type TagType } from "./domain/tags.js";
7
10
  export type { CheckRow, Finding, Moderator } from "./moderation/check.js";
8
11
  export { act, judge } from "./moderation/check.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,QAAQ,EACb,qBAAqB,GACtB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACjG,OAAO,EAAE,KAAK,MAAM,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACjE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC7E,mBAAmB,oBAAoB,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACxE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACzE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAClD,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACxF,OAAO,EAAE,KAAK,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAE,KAAK,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACxF,OAAO,EAAE,IAAI,EAAE,KAAK,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC5E,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,QAAQ,EACb,qBAAqB,GACtB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACjG,OAAO,EAAE,KAAK,MAAM,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACjE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC7E,mBAAmB,oBAAoB,CAAA;AACvC,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AACxF,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,aAAa,EACb,cAAc,EACd,WAAW,GACZ,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACxE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACzE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAClD,YAAY,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACxF,OAAO,EAAE,KAAK,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAE,KAAK,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACxF,OAAO,EAAE,IAAI,EAAE,KAAK,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC5E,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA"}
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  export { validateFormattedText, } from "./domain/formatting.js";
2
2
  export { formatLocator, isLocator, parseLocator } from "./domain/locator.js";
3
3
  export { parseMarkdown } from "./domain/markdown.js";
4
+ export { rankingOptions } from "./domain/rankings-options.js";
4
5
  export { normalizeTag, TAG_TYPES } from "./domain/tags.js";
5
6
  export { act, judge } from "./moderation/check.js";
6
7
  export { defaultRules, ModerationRules, moderationPathFor } from "./moderation/rules.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,qBAAqB,GACtB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAE,SAAS,EAAuB,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACjG,OAAO,EAAe,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAGjE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAgB,MAAM,kBAAkB,CAAA;AAExE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAElD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACxF,OAAO,EAAsB,aAAa,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAsB,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACxF,OAAO,EAAE,IAAI,EAAqB,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC5E,OAAO,EAAE,UAAU,EAAoB,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,qBAAqB,GACtB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAE,SAAS,EAAuB,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACjG,OAAO,EAAe,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAajE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,SAAS,EAAgB,MAAM,kBAAkB,CAAA;AAExE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAElD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACxF,OAAO,EAAsB,aAAa,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAsB,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACxF,OAAO,EAAE,IAAI,EAAqB,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC5E,OAAO,EAAE,UAAU,EAAoB,MAAM,sBAAsB,CAAA;AACnE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA"}
@@ -31,7 +31,7 @@ export interface Defaults {
31
31
  limit: number;
32
32
  guard: SendGuard;
33
33
  /** The profile's own entries, for a tool reading a setting of its own — `transcribeWith`. */
34
- settings: Pick<Settings, "configured" | "shared" | "profile"> & Partial<Pick<Settings, "permissions" | "searchCatchUp">> & AISettings;
34
+ settings: Pick<Settings, "configured" | "shared" | "profile"> & Partial<Pick<Settings, "permissions" | "searchCatchUp" | "offline">> & AISettings;
35
35
  env: NodeJS.ProcessEnv;
36
36
  /** The server's open models, kept between `conversations_search` calls. */
37
37
  embedders?: WarmEmbedders;
@@ -1 +1 @@
1
- {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/mcp/tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/mcp/tool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"attachments.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/attachments.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAK/D,OAAO,EAAE,KAAK,OAAO,EAA8B,MAAM,YAAY,CAAA;AAIrE,eAAO,MAAM,gBAAgB,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAiH7E,CAAA"}
1
+ {"version":3,"file":"attachments.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/attachments.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAK/D,OAAO,EAAE,KAAK,OAAO,EAA8B,MAAM,YAAY,CAAA;AAIrE,eAAO,MAAM,gBAAgB,cAAe,SAAS,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAgI7E,CAAA"}