@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.
- package/README.md +3 -1
- package/dist/attachments/extract.d.ts +6 -2
- package/dist/attachments/extract.d.ts.map +1 -1
- package/dist/attachments/extract.js +1 -1
- package/dist/attachments/extract.js.map +1 -1
- package/dist/attachments/gateway-ocr.d.ts +15 -0
- package/dist/attachments/gateway-ocr.d.ts.map +1 -0
- package/dist/attachments/gateway-ocr.js +48 -0
- package/dist/attachments/gateway-ocr.js.map +1 -0
- package/dist/attachments/ocr.d.ts +9 -0
- package/dist/attachments/ocr.d.ts.map +1 -0
- package/dist/attachments/ocr.js +154 -0
- package/dist/attachments/ocr.js.map +1 -0
- package/dist/cli/command-contract.js +1 -1
- package/dist/cli/command-contract.js.map +1 -1
- package/dist/cli/index.d.ts +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/messenger/attachments-command.d.ts.map +1 -1
- package/dist/cli/messenger/attachments-command.js +21 -2
- package/dist/cli/messenger/attachments-command.js.map +1 -1
- package/dist/cli/messenger/contacts-command.d.ts.map +1 -1
- package/dist/cli/messenger/contacts-command.js +2 -1
- package/dist/cli/messenger/contacts-command.js.map +1 -1
- package/dist/cli/messenger/messages-command.d.ts.map +1 -1
- package/dist/cli/messenger/messages-command.js +2 -0
- package/dist/cli/messenger/messages-command.js.map +1 -1
- package/dist/cli/messenger/messages-comments-command.d.ts +4 -0
- package/dist/cli/messenger/messages-comments-command.d.ts.map +1 -0
- package/dist/cli/messenger/messages-comments-command.js +34 -0
- package/dist/cli/messenger/messages-comments-command.js.map +1 -0
- package/dist/cli/messenger/messages-forward-command.d.ts.map +1 -1
- package/dist/cli/messenger/messages-forward-command.js +1 -1
- package/dist/cli/messenger/messages-forward-command.js.map +1 -1
- package/dist/cli/messenger/messages-send-command.d.ts.map +1 -1
- package/dist/cli/messenger/messages-send-command.js +7 -2
- package/dist/cli/messenger/messages-send-command.js.map +1 -1
- package/dist/cli/messenger/polls-command.d.ts.map +1 -1
- package/dist/cli/messenger/polls-command.js +1 -1
- package/dist/cli/messenger/polls-command.js.map +1 -1
- package/dist/cli/messenger/port.d.ts +14 -2
- package/dist/cli/messenger/port.d.ts.map +1 -1
- package/dist/cli/messenger/port.js.map +1 -1
- package/dist/domain/models.d.ts +21 -0
- package/dist/domain/models.d.ts.map +1 -1
- package/dist/domain/rankings-graph.d.ts +65 -0
- package/dist/domain/rankings-graph.d.ts.map +1 -0
- package/dist/domain/rankings-graph.js +240 -0
- package/dist/domain/rankings-graph.js.map +1 -0
- package/dist/domain/rankings-options.d.ts +38 -0
- package/dist/domain/rankings-options.d.ts.map +1 -0
- package/dist/domain/rankings-options.js +157 -0
- package/dist/domain/rankings-options.js.map +1 -0
- package/dist/domain/rankings-range.d.ts +5 -0
- package/dist/domain/rankings-range.d.ts.map +1 -0
- package/dist/domain/rankings-range.js +23 -0
- package/dist/domain/rankings-range.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/tool.d.ts +1 -1
- package/dist/mcp/tool.d.ts.map +1 -1
- package/dist/mcp/tools/attachments.d.ts.map +1 -1
- package/dist/mcp/tools/attachments.js +18 -1
- package/dist/mcp/tools/attachments.js.map +1 -1
- package/dist/mcp/tools/contacts.d.ts.map +1 -1
- package/dist/mcp/tools/contacts.js +3 -1
- package/dist/mcp/tools/contacts.js.map +1 -1
- package/dist/mcp/tools/messages-actions.d.ts.map +1 -1
- package/dist/mcp/tools/messages-actions.js +1 -1
- package/dist/mcp/tools/messages-actions.js.map +1 -1
- package/dist/mcp/tools/messages-send.d.ts.map +1 -1
- package/dist/mcp/tools/messages-send.js +3 -1
- package/dist/mcp/tools/messages-send.js.map +1 -1
- package/dist/mcp/tools/messages.d.ts.map +1 -1
- package/dist/mcp/tools/messages.js +17 -0
- package/dist/mcp/tools/messages.js.map +1 -1
- package/dist/mcp/tools/polls.d.ts.map +1 -1
- package/dist/mcp/tools/polls.js +1 -1
- package/dist/mcp/tools/polls.js.map +1 -1
- package/dist/models/anthropic.d.ts.map +1 -1
- package/dist/models/anthropic.js +15 -1
- package/dist/models/anthropic.js.map +1 -1
- package/dist/models/index.d.ts +2 -2
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js +12 -2
- package/dist/models/index.js.map +1 -1
- package/dist/models/openai.d.ts.map +1 -1
- package/dist/models/openai.js +16 -1
- package/dist/models/openai.js.map +1 -1
- package/dist/models/types.d.ts +8 -0
- package/dist/models/types.d.ts.map +1 -1
- package/dist/models/types.js +31 -1
- package/dist/models/types.js.map +1 -1
- package/dist/sends/permissions.d.ts.map +1 -1
- package/dist/sends/permissions.js +2 -0
- package/dist/sends/permissions.js.map +1 -1
- package/dist/sends/send-as.d.ts +4 -2
- package/dist/sends/send-as.d.ts.map +1 -1
- package/dist/sends/send-as.js +13 -3
- package/dist/sends/send-as.js.map +1 -1
- package/dist/services/attachments.d.ts +8 -1
- package/dist/services/attachments.d.ts.map +1 -1
- package/dist/services/attachments.js +121 -74
- package/dist/services/attachments.js.map +1 -1
- package/dist/services/messages.d.ts +10 -1
- package/dist/services/messages.d.ts.map +1 -1
- package/dist/services/messages.js +21 -2
- package/dist/services/messages.js.map +1 -1
- package/dist/services/person-profile.d.ts.map +1 -1
- package/dist/services/person-profile.js +12 -1
- package/dist/services/person-profile.js.map +1 -1
- package/dist/store/index.d.ts +1 -1
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js.map +1 -1
- package/dist/store/sqlite/attachment-texts.d.ts +1 -0
- package/dist/store/sqlite/attachment-texts.d.ts.map +1 -1
- package/dist/store/sqlite/attachment-texts.js +2 -1
- package/dist/store/sqlite/attachment-texts.js.map +1 -1
- package/dist/store/sqlite/identities.d.ts +17 -3
- package/dist/store/sqlite/identities.d.ts.map +1 -1
- package/dist/store/sqlite/identities.js +113 -9
- package/dist/store/sqlite/identities.js.map +1 -1
- package/dist/store/sqlite/lucene.d.ts +8 -0
- package/dist/store/sqlite/lucene.d.ts.map +1 -1
- package/dist/store/sqlite/lucene.js +98 -6
- package/dist/store/sqlite/lucene.js.map +1 -1
- package/dist/store/sqlite/rankings.d.ts +42 -0
- package/dist/store/sqlite/rankings.d.ts.map +1 -0
- package/dist/store/sqlite/rankings.js +319 -0
- package/dist/store/sqlite/rankings.js.map +1 -0
- package/dist/store/sqlite/roster.d.ts.map +1 -1
- package/dist/store/sqlite/roster.js +5 -22
- package/dist/store/sqlite/roster.js.map +1 -1
- package/dist/store/store.d.ts +6 -1
- package/dist/store/store.d.ts.map +1 -1
- package/dist/store/store.js +6 -0
- package/dist/store/store.js.map +1 -1
- package/package.json +7 -1
- 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";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/mcp/tool.d.ts
CHANGED
|
@@ -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;
|
package/dist/mcp/tool.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/mcp/tool.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AAE7G,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAIzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,aAAa,EAEnB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,KAAK,QAAQ,EAAe,MAAM,sBAAsB,CAAA;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAEpD,eAAO,MAAM,KAAK,oPAEjB,CAAA;AACD,eAAO,MAAM,IAAI,oNAAkG,CAAA;AACnH,0DAA0D;AAC1D,eAAO,MAAM,OAAO,yNAMnB,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,eAAqF,CAAA;AACxG,eAAO,MAAM,KAAK,EAAE,eAKnB,CAAA;AAED,4GAA4G;AAC5G,eAAO,MAAM,SAAS,0FAAgF,CAAA;AAEtG,KAAK,KAAK,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;AAE1G,2GAA2G;AAC3G,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;AAExF,iDAAiD;AACjD,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,OAAO,8BAA8B,EAAE,QAAQ,CAAA;IAC1D,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,SAAS,CAAA;IAChB,6FAA6F;IAC7F,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,GAAG,QAAQ,GAAG,SAAS,CAAC,GAC3D,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,GAAG,eAAe,CAAC,CAAC,
|
|
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":"
|
|
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"}
|