@rackbops/docket-types 0.21.0 → 0.23.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 +56 -0
- package/dist/index.d.ts +8 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -6
- package/dist/index.js.map +1 -1
- package/dist/news.d.ts +52 -0
- package/dist/news.d.ts.map +1 -1
- package/dist/news.js +243 -24
- package/dist/news.js.map +1 -1
- package/dist/research-answer.d.ts +138 -7
- package/dist/research-answer.d.ts.map +1 -1
- package/dist/research-answer.js +167 -12
- package/dist/research-answer.js.map +1 -1
- package/dist/research-social.d.ts +108 -0
- package/dist/research-social.d.ts.map +1 -0
- package/dist/research-social.js +320 -0
- package/dist/research-social.js.map +1 -0
- package/dist/research.d.ts +28 -0
- package/dist/research.d.ts.map +1 -1
- package/dist/research.js +55 -16
- package/dist/research.js.map +1 -1
- package/dist/social-links.d.ts +30 -0
- package/dist/social-links.d.ts.map +1 -0
- package/dist/social-links.js +129 -0
- package/dist/social-links.js.map +1 -0
- package/dist/want-ebay.d.ts +6 -3
- package/dist/want-ebay.d.ts.map +1 -1
- package/dist/want-ebay.js +77 -30
- package/dist/want-ebay.js.map +1 -1
- package/dist/want-sources.d.ts +21 -0
- package/dist/want-sources.d.ts.map +1 -1
- package/dist/want-sources.js +7 -0
- package/dist/want-sources.js.map +1 -1
- package/dist/wantjudge.d.ts +32 -3
- package/dist/wantjudge.d.ts.map +1 -1
- package/dist/wantjudge.js +207 -14
- package/dist/wantjudge.js.map +1 -1
- package/dist/wantlist.d.ts +7 -0
- package/dist/wantlist.d.ts.map +1 -1
- package/dist/wantlist.js +1 -0
- package/dist/wantlist.js.map +1 -1
- package/package.json +2 -2
|
@@ -6,13 +6,36 @@
|
|
|
6
6
|
* carry an instruction; the most it can do here is be quoted as text.
|
|
7
7
|
*/
|
|
8
8
|
import { clean, ZWSP } from "@rackbops/docket-core";
|
|
9
|
+
import { type SocialPlatform } from "./social-links.js";
|
|
9
10
|
/** The cleaner lives in core, so the dispatcher's own messages use it too; re-exported here. */
|
|
10
11
|
export { clean, ZWSP };
|
|
11
12
|
/** One claim and the pages it rests on. */
|
|
12
13
|
export interface ResearchFinding {
|
|
13
14
|
claim: string;
|
|
14
|
-
/**
|
|
15
|
+
/**
|
|
16
|
+
* http(s) URLs the run says it opened; a social post link as one post (`canonicalSocialUrl`,
|
|
17
|
+
* 0.23.0), so a repost counts once.
|
|
18
|
+
*/
|
|
15
19
|
sources: string[];
|
|
20
|
+
/**
|
|
21
|
+
* The platform the sources are posts on (0.23.0), as the run set it or as every source's host
|
|
22
|
+
* says; absent for a web page. The two fields below are kept only with it.
|
|
23
|
+
*/
|
|
24
|
+
platform?: SocialPlatform;
|
|
25
|
+
/** When the post was published, as the run read it: an instant, "about <date>", or "undated". */
|
|
26
|
+
publishedAt?: string;
|
|
27
|
+
/** `read`: the transcript, the comments or the post itself was opened; `snippet`: a caption or a search result only. */
|
|
28
|
+
evidence?: "read" | "snippet";
|
|
29
|
+
}
|
|
30
|
+
/** What a run did on one platform (0.23.0): the DM's "Social:" line is built from these. */
|
|
31
|
+
export declare const COVERAGE_STATUSES: readonly ["searched", "empty", "unavailable", "skipped"];
|
|
32
|
+
export type CoverageStatus = (typeof COVERAGE_STATUSES)[number];
|
|
33
|
+
export interface Coverage {
|
|
34
|
+
/** The platform's id, lower-cased: youtube, tiktok, instagram, bluesky, reddit, or another. */
|
|
35
|
+
platform: string;
|
|
36
|
+
status: CoverageStatus;
|
|
37
|
+
/** A few words: what was found, or why not. */
|
|
38
|
+
note?: string;
|
|
16
39
|
}
|
|
17
40
|
/**
|
|
18
41
|
* A page the run needed but could not open (0.9.0): refused, a 403, a CAPTCHA, a sign-in wall.
|
|
@@ -31,6 +54,11 @@ export interface ResearchAnswer {
|
|
|
31
54
|
uncertain: string[];
|
|
32
55
|
/** Pages the run needed but could not open; absent when there were none. Never rendered. */
|
|
33
56
|
blocked?: BlockedPage[];
|
|
57
|
+
/**
|
|
58
|
+
* What the run did on each social platform (0.23.0); absent when none was in scope. Rendered
|
|
59
|
+
* as the DM's "Social:" line.
|
|
60
|
+
*/
|
|
61
|
+
coverage?: Coverage[];
|
|
34
62
|
}
|
|
35
63
|
export declare const MAX_SUMMARY_CHARS = 1200;
|
|
36
64
|
export declare const MAX_CLAIM_CHARS = 400;
|
|
@@ -42,6 +70,13 @@ export declare const MAX_UNCERTAIN_CHARS = 300;
|
|
|
42
70
|
export declare const MAX_BLOCKED = 6;
|
|
43
71
|
export declare const MAX_BLOCKED_SITE_CHARS = 100;
|
|
44
72
|
export declare const MAX_BLOCKED_WHY_CHARS = 200;
|
|
73
|
+
/** A post's `publishedAt` as kept: an instant, "about 2026-10-19" or "undated" all fit. */
|
|
74
|
+
export declare const MAX_PUBLISHED_CHARS = 40;
|
|
75
|
+
export declare const MAX_COVERAGE = 8;
|
|
76
|
+
export declare const MAX_COVERAGE_PLATFORM_CHARS = 30;
|
|
77
|
+
export declare const MAX_COVERAGE_NOTE_CHARS = 120;
|
|
78
|
+
/** The DM's "Social:" line, kept whole like the "Couldn't open:" tail, so it is bounded here. */
|
|
79
|
+
export declare const MAX_COVERAGE_LINE_CHARS = 500;
|
|
45
80
|
/** Discord's DM limit is 2000 characters; the rest is headroom for the host's own framing. */
|
|
46
81
|
export declare const MAX_MESSAGE_CHARS = 1900;
|
|
47
82
|
/** The JSON schema the research run answers in: the spike's (docket-runner spike/cases.json). */
|
|
@@ -64,9 +99,23 @@ export declare const ANSWER_SCHEMA: {
|
|
|
64
99
|
readonly type: "array";
|
|
65
100
|
readonly items: {
|
|
66
101
|
readonly type: "string";
|
|
67
|
-
readonly description: "A URL you opened.";
|
|
102
|
+
readonly description: "A URL you opened; for a post marked snippet, the post's own page.";
|
|
68
103
|
};
|
|
69
104
|
};
|
|
105
|
+
readonly platform: {
|
|
106
|
+
readonly type: "string";
|
|
107
|
+
readonly enum: readonly ["youtube", "tiktok", "instagram", "bluesky"];
|
|
108
|
+
readonly description: string;
|
|
109
|
+
};
|
|
110
|
+
readonly publishedAt: {
|
|
111
|
+
readonly type: "string";
|
|
112
|
+
readonly description: string;
|
|
113
|
+
};
|
|
114
|
+
readonly evidence: {
|
|
115
|
+
readonly type: "string";
|
|
116
|
+
readonly enum: readonly ["read", "snippet"];
|
|
117
|
+
readonly description: string;
|
|
118
|
+
};
|
|
70
119
|
};
|
|
71
120
|
readonly required: readonly ["claim", "sources"];
|
|
72
121
|
};
|
|
@@ -99,6 +148,29 @@ export declare const ANSWER_SCHEMA: {
|
|
|
99
148
|
readonly required: readonly ["site", "why"];
|
|
100
149
|
};
|
|
101
150
|
};
|
|
151
|
+
readonly coverage: {
|
|
152
|
+
readonly type: "array";
|
|
153
|
+
readonly description: string;
|
|
154
|
+
readonly items: {
|
|
155
|
+
readonly type: "object";
|
|
156
|
+
readonly properties: {
|
|
157
|
+
readonly platform: {
|
|
158
|
+
readonly type: "string";
|
|
159
|
+
readonly description: "youtube, tiktok, instagram, bluesky or reddit.";
|
|
160
|
+
};
|
|
161
|
+
readonly status: {
|
|
162
|
+
readonly type: "string";
|
|
163
|
+
readonly enum: readonly ["searched", "empty", "unavailable", "skipped"];
|
|
164
|
+
readonly description: string;
|
|
165
|
+
};
|
|
166
|
+
readonly note: {
|
|
167
|
+
readonly type: "string";
|
|
168
|
+
readonly description: "A few words: what was found, or why not.";
|
|
169
|
+
};
|
|
170
|
+
};
|
|
171
|
+
readonly required: readonly ["platform", "status"];
|
|
172
|
+
};
|
|
173
|
+
};
|
|
102
174
|
};
|
|
103
175
|
readonly required: readonly ["summary", "findings", "uncertain"];
|
|
104
176
|
};
|
|
@@ -107,9 +179,19 @@ export declare function safeUrl(value: unknown): string | null;
|
|
|
107
179
|
/**
|
|
108
180
|
* The answer in `value`, capped and cleaned, or null when it is not one. A claim with no usable
|
|
109
181
|
* source is not a finding: it moves to `uncertain`, marked, since every claim a reader might act
|
|
110
|
-
* on needs a source the run opened.
|
|
182
|
+
* on needs a source the run opened. A source on a social platform is kept as one post
|
|
183
|
+
* (`canonicalSocialUrl`), so a `youtu.be` link and its watch page are one (0.23.0).
|
|
111
184
|
*/
|
|
112
185
|
export declare function parseAnswer(value: unknown): ResearchAnswer | null;
|
|
186
|
+
/**
|
|
187
|
+
* The coverage rows in `value` (0.23.0), cleaned: a lower-cased one-line platform id, a status in
|
|
188
|
+
* `COVERAGE_STATUSES`, a one-line note when given; the first row per platform, at most
|
|
189
|
+
* `MAX_COVERAGE`. A row with no platform or an unknown status is dropped; anything not a list is
|
|
190
|
+
* none.
|
|
191
|
+
*/
|
|
192
|
+
export declare function parseCoverage(value: unknown): Coverage[];
|
|
193
|
+
/** A claim as compared for repeats: case, spacing and a trailing stop do not count. */
|
|
194
|
+
export declare function sameClaim(claim: string): string;
|
|
113
195
|
/**
|
|
114
196
|
* The blocked pages in `value`, cleaned: a one-line site and reason, the URL only when `safeUrl`
|
|
115
197
|
* takes it, at most `MAX_BLOCKED`. An entry with no site is dropped; anything not a list is none.
|
|
@@ -162,9 +244,23 @@ export declare const REVIEW_SCHEMA: {
|
|
|
162
244
|
readonly type: "array";
|
|
163
245
|
readonly items: {
|
|
164
246
|
readonly type: "string";
|
|
165
|
-
readonly description: "A URL you opened.";
|
|
247
|
+
readonly description: "A URL you opened; for a post marked snippet, the post's own page.";
|
|
166
248
|
};
|
|
167
249
|
};
|
|
250
|
+
readonly platform: {
|
|
251
|
+
readonly type: "string";
|
|
252
|
+
readonly enum: readonly ["youtube", "tiktok", "instagram", "bluesky"];
|
|
253
|
+
readonly description: string;
|
|
254
|
+
};
|
|
255
|
+
readonly publishedAt: {
|
|
256
|
+
readonly type: "string";
|
|
257
|
+
readonly description: string;
|
|
258
|
+
};
|
|
259
|
+
readonly evidence: {
|
|
260
|
+
readonly type: "string";
|
|
261
|
+
readonly enum: readonly ["read", "snippet"];
|
|
262
|
+
readonly description: string;
|
|
263
|
+
};
|
|
168
264
|
};
|
|
169
265
|
readonly required: readonly ["claim", "sources"];
|
|
170
266
|
};
|
|
@@ -197,6 +293,29 @@ export declare const REVIEW_SCHEMA: {
|
|
|
197
293
|
readonly required: readonly ["site", "why"];
|
|
198
294
|
};
|
|
199
295
|
};
|
|
296
|
+
readonly coverage: {
|
|
297
|
+
readonly type: "array";
|
|
298
|
+
readonly description: string;
|
|
299
|
+
readonly items: {
|
|
300
|
+
readonly type: "object";
|
|
301
|
+
readonly properties: {
|
|
302
|
+
readonly platform: {
|
|
303
|
+
readonly type: "string";
|
|
304
|
+
readonly description: "youtube, tiktok, instagram, bluesky or reddit.";
|
|
305
|
+
};
|
|
306
|
+
readonly status: {
|
|
307
|
+
readonly type: "string";
|
|
308
|
+
readonly enum: readonly ["searched", "empty", "unavailable", "skipped"];
|
|
309
|
+
readonly description: string;
|
|
310
|
+
};
|
|
311
|
+
readonly note: {
|
|
312
|
+
readonly type: "string";
|
|
313
|
+
readonly description: "A few words: what was found, or why not.";
|
|
314
|
+
};
|
|
315
|
+
};
|
|
316
|
+
readonly required: readonly ["platform", "status"];
|
|
317
|
+
};
|
|
318
|
+
};
|
|
200
319
|
};
|
|
201
320
|
readonly required: readonly ["summary", "findings", "uncertain"];
|
|
202
321
|
readonly description: "The corrected answer, on revise only; left out on approve and reject.";
|
|
@@ -213,11 +332,23 @@ export declare const REVIEW_SCHEMA: {
|
|
|
213
332
|
export declare function parseReview(value: unknown, draft?: ResearchAnswer): Review | null;
|
|
214
333
|
/** Lines as one DM of at most `MAX_MESSAGE_CHARS`, whole lines dropped from the end. */
|
|
215
334
|
export declare function fitMessage(lines: string[]): string;
|
|
335
|
+
/**
|
|
336
|
+
* A finding's line in a DM: the claim, for a post its platform, date and "snippet only" when it
|
|
337
|
+
* was not opened (0.23.0), then its first source in <...> so Discord shows the link without an
|
|
338
|
+
* embed.
|
|
339
|
+
*/
|
|
340
|
+
export declare function findingLine(f: ResearchFinding): string;
|
|
341
|
+
/**
|
|
342
|
+
* The DM's "Social:" line (0.23.0): each platform's status, with its note in brackets, in one
|
|
343
|
+
* line of at most `MAX_COVERAGE_LINE_CHARS`.
|
|
344
|
+
*/
|
|
345
|
+
export declare function coverageLine(coverage: readonly Coverage[]): string;
|
|
216
346
|
/**
|
|
217
347
|
* The DM a reviewed answer goes out as, at most `MAX_MESSAGE_CHARS`. Every piece of it was
|
|
218
|
-
* cleaned by `parseAnswer`; the title is the owner's own and is cleaned here.
|
|
219
|
-
*
|
|
220
|
-
*
|
|
348
|
+
* cleaned by `parseAnswer`; the title is the owner's own and is cleaned here. The "Social:" line
|
|
349
|
+
* (0.23.0, when the answer has `coverage`), the reviewer's note and `tail` are kept whole, in
|
|
350
|
+
* that order: `tail`, when given, is bounded by the caller (the "couldn't open" list and the
|
|
351
|
+
* queued line, 0.9.0). Without coverage or a tail the DM is what it was before 0.9.0.
|
|
221
352
|
*/
|
|
222
353
|
export declare function renderAnswer(title: string, answer: ResearchAnswer, review: Review, tail?: string): string;
|
|
223
354
|
/** Lines fitted into at most `max` characters, whole lines dropped from the end. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"research-answer.d.ts","sourceRoot":"","sources":["../src/research-answer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"research-answer.d.ts","sourceRoot":"","sources":["../src/research-answer.ts"],"names":[],"mappings":"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"}
|
package/dist/research-answer.js
CHANGED
|
@@ -6,8 +6,11 @@
|
|
|
6
6
|
* carry an instruction; the most it can do here is be quoted as text.
|
|
7
7
|
*/
|
|
8
8
|
import { clean, ZWSP } from "@rackbops/docket-core";
|
|
9
|
+
import { canonicalSocialUrl, isSocialPlatform, platformName, platformOf, SOCIAL_PLATFORMS, } from "./social-links.js";
|
|
9
10
|
/** The cleaner lives in core, so the dispatcher's own messages use it too; re-exported here. */
|
|
10
11
|
export { clean, ZWSP };
|
|
12
|
+
/** What a run did on one platform (0.23.0): the DM's "Social:" line is built from these. */
|
|
13
|
+
export const COVERAGE_STATUSES = ["searched", "empty", "unavailable", "skipped"];
|
|
11
14
|
export const MAX_SUMMARY_CHARS = 1200;
|
|
12
15
|
export const MAX_CLAIM_CHARS = 400;
|
|
13
16
|
export const MAX_URL_CHARS = 400;
|
|
@@ -18,6 +21,13 @@ export const MAX_UNCERTAIN_CHARS = 300;
|
|
|
18
21
|
export const MAX_BLOCKED = 6;
|
|
19
22
|
export const MAX_BLOCKED_SITE_CHARS = 100;
|
|
20
23
|
export const MAX_BLOCKED_WHY_CHARS = 200;
|
|
24
|
+
/** A post's `publishedAt` as kept: an instant, "about 2026-10-19" or "undated" all fit. */
|
|
25
|
+
export const MAX_PUBLISHED_CHARS = 40;
|
|
26
|
+
export const MAX_COVERAGE = 8;
|
|
27
|
+
export const MAX_COVERAGE_PLATFORM_CHARS = 30;
|
|
28
|
+
export const MAX_COVERAGE_NOTE_CHARS = 120;
|
|
29
|
+
/** The DM's "Social:" line, kept whole like the "Couldn't open:" tail, so it is bounded here. */
|
|
30
|
+
export const MAX_COVERAGE_LINE_CHARS = 500;
|
|
21
31
|
/** Discord's DM limit is 2000 characters; the rest is headroom for the host's own framing. */
|
|
22
32
|
export const MAX_MESSAGE_CHARS = 1900;
|
|
23
33
|
/** The JSON schema the research run answers in: the spike's (docket-runner spike/cases.json). */
|
|
@@ -33,7 +43,27 @@ export const ANSWER_SCHEMA = {
|
|
|
33
43
|
claim: { type: "string" },
|
|
34
44
|
sources: {
|
|
35
45
|
type: "array",
|
|
36
|
-
items: {
|
|
46
|
+
items: {
|
|
47
|
+
type: "string",
|
|
48
|
+
description: "A URL you opened; for a post marked snippet, the post's own page.",
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
platform: {
|
|
52
|
+
type: "string",
|
|
53
|
+
enum: [...SOCIAL_PLATFORMS],
|
|
54
|
+
description: "For a finding from a social post: the platform it is on. Leave it out for a web " +
|
|
55
|
+
"page.",
|
|
56
|
+
},
|
|
57
|
+
publishedAt: {
|
|
58
|
+
type: "string",
|
|
59
|
+
description: "For a finding from a post: when it was published -- the instant the platform " +
|
|
60
|
+
'gave, "about <date>" worked out from a relative time, or "undated".',
|
|
61
|
+
},
|
|
62
|
+
evidence: {
|
|
63
|
+
type: "string",
|
|
64
|
+
enum: ["read", "snippet"],
|
|
65
|
+
description: "For a finding from a post: read when you opened the transcript, the comments or " +
|
|
66
|
+
"the post itself; snippet when you have only its caption or a search result.",
|
|
37
67
|
},
|
|
38
68
|
},
|
|
39
69
|
required: ["claim", "sources"],
|
|
@@ -55,6 +85,28 @@ export const ANSWER_SCHEMA = {
|
|
|
55
85
|
required: ["site", "why"],
|
|
56
86
|
},
|
|
57
87
|
},
|
|
88
|
+
coverage: {
|
|
89
|
+
type: "array",
|
|
90
|
+
description: "When social platforms were in scope: one entry per platform, and one for Reddit; " +
|
|
91
|
+
"leave it out otherwise.",
|
|
92
|
+
items: {
|
|
93
|
+
type: "object",
|
|
94
|
+
properties: {
|
|
95
|
+
platform: {
|
|
96
|
+
type: "string",
|
|
97
|
+
description: "youtube, tiktok, instagram, bluesky or reddit.",
|
|
98
|
+
},
|
|
99
|
+
status: {
|
|
100
|
+
type: "string",
|
|
101
|
+
enum: [...COVERAGE_STATUSES],
|
|
102
|
+
description: "searched: something found; empty: nothing found; unavailable: the call failed " +
|
|
103
|
+
"(say which); skipped: not searched (say why).",
|
|
104
|
+
},
|
|
105
|
+
note: { type: "string", description: "A few words: what was found, or why not." },
|
|
106
|
+
},
|
|
107
|
+
required: ["platform", "status"],
|
|
108
|
+
},
|
|
109
|
+
},
|
|
58
110
|
},
|
|
59
111
|
required: ["summary", "findings", "uncertain"],
|
|
60
112
|
};
|
|
@@ -98,10 +150,39 @@ function decodeURIComponentSafe(text) {
|
|
|
98
150
|
function isObj(v) {
|
|
99
151
|
return typeof v === "object" && v !== null && !Array.isArray(v);
|
|
100
152
|
}
|
|
153
|
+
/**
|
|
154
|
+
* The platform every source of a finding is on, when they agree (0.23.0); null when any is a web
|
|
155
|
+
* page, or they differ.
|
|
156
|
+
*/
|
|
157
|
+
function platformOfAll(sources) {
|
|
158
|
+
const platforms = new Set(sources.map(platformOf));
|
|
159
|
+
const [only] = platforms;
|
|
160
|
+
return platforms.size === 1 && only ? only : null;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* A finding's post fields (0.23.0): `platform` as the run set it (one of `SOCIAL_PLATFORMS`, and
|
|
164
|
+
* a source is on it) or as every source's host says; with one, `publishedAt` (one line, capped)
|
|
165
|
+
* and `evidence` when usable. A finding on web pages alone gets none, whatever the run set.
|
|
166
|
+
*/
|
|
167
|
+
function postFields(f, sources) {
|
|
168
|
+
const given = isSocialPlatform(f.platform) && sources.some((u) => platformOf(u) === f.platform)
|
|
169
|
+
? f.platform
|
|
170
|
+
: null;
|
|
171
|
+
const platform = given ?? platformOfAll(sources);
|
|
172
|
+
if (!platform)
|
|
173
|
+
return {};
|
|
174
|
+
const when = typeof f.publishedAt === "string" ? clean(f.publishedAt, MAX_PUBLISHED_CHARS, true) : "";
|
|
175
|
+
return {
|
|
176
|
+
platform,
|
|
177
|
+
...(when.length > 0 ? { publishedAt: when } : {}),
|
|
178
|
+
...(f.evidence === "read" || f.evidence === "snippet" ? { evidence: f.evidence } : {}),
|
|
179
|
+
};
|
|
180
|
+
}
|
|
101
181
|
/**
|
|
102
182
|
* The answer in `value`, capped and cleaned, or null when it is not one. A claim with no usable
|
|
103
183
|
* source is not a finding: it moves to `uncertain`, marked, since every claim a reader might act
|
|
104
|
-
* on needs a source the run opened.
|
|
184
|
+
* on needs a source the run opened. A source on a social platform is kept as one post
|
|
185
|
+
* (`canonicalSocialUrl`), so a `youtu.be` link and its watch page are one (0.23.0).
|
|
105
186
|
*/
|
|
106
187
|
export function parseAnswer(value) {
|
|
107
188
|
if (!isObj(value) || typeof value.summary !== "string" || !Array.isArray(value.findings)) {
|
|
@@ -119,11 +200,18 @@ export function parseAnswer(value) {
|
|
|
119
200
|
if (claim.length === 0)
|
|
120
201
|
continue;
|
|
121
202
|
const raw = Array.isArray(f.sources) ? f.sources : [];
|
|
122
|
-
const sources = [
|
|
203
|
+
const sources = [
|
|
204
|
+
...new Set(raw
|
|
205
|
+
.map(safeUrl)
|
|
206
|
+
.filter((u) => u !== null)
|
|
207
|
+
.map(canonicalSocialUrl)),
|
|
208
|
+
];
|
|
123
209
|
if (sources.length === 0)
|
|
124
210
|
unsourced.push(`${claim} (no source given)`);
|
|
125
|
-
else
|
|
126
|
-
|
|
211
|
+
else {
|
|
212
|
+
const kept = sources.slice(0, MAX_SOURCES_PER_FINDING);
|
|
213
|
+
findings.push({ claim, sources: kept, ...postFields(f, kept) });
|
|
214
|
+
}
|
|
127
215
|
}
|
|
128
216
|
// The model's own lines come first, so the cap drops markers before them: `withBarredSites`
|
|
129
217
|
// reads these lines to tell a site was not opened.
|
|
@@ -138,13 +226,49 @@ export function parseAnswer(value) {
|
|
|
138
226
|
}
|
|
139
227
|
uncertain.push(...unsourced);
|
|
140
228
|
const blocked = parseBlocked(value.blocked);
|
|
229
|
+
const coverage = parseCoverage(value.coverage);
|
|
141
230
|
return {
|
|
142
231
|
summary,
|
|
143
232
|
findings: findings.slice(0, MAX_FINDINGS),
|
|
144
233
|
uncertain: uncertain.slice(0, MAX_UNCERTAIN),
|
|
145
234
|
...(blocked.length > 0 ? { blocked } : {}),
|
|
235
|
+
...(coverage.length > 0 ? { coverage } : {}),
|
|
146
236
|
};
|
|
147
237
|
}
|
|
238
|
+
/**
|
|
239
|
+
* The coverage rows in `value` (0.23.0), cleaned: a lower-cased one-line platform id, a status in
|
|
240
|
+
* `COVERAGE_STATUSES`, a one-line note when given; the first row per platform, at most
|
|
241
|
+
* `MAX_COVERAGE`. A row with no platform or an unknown status is dropped; anything not a list is
|
|
242
|
+
* none.
|
|
243
|
+
*/
|
|
244
|
+
export function parseCoverage(value) {
|
|
245
|
+
if (!Array.isArray(value))
|
|
246
|
+
return [];
|
|
247
|
+
const out = [];
|
|
248
|
+
for (const c of value) {
|
|
249
|
+
if (out.length >= MAX_COVERAGE)
|
|
250
|
+
break;
|
|
251
|
+
if (!isObj(c) || typeof c.platform !== "string" || typeof c.status !== "string")
|
|
252
|
+
continue;
|
|
253
|
+
const platform = clean(c.platform, MAX_COVERAGE_PLATFORM_CHARS, true).toLowerCase();
|
|
254
|
+
const status = COVERAGE_STATUSES.includes(c.status)
|
|
255
|
+
? c.status
|
|
256
|
+
: null;
|
|
257
|
+
if (platform.length === 0 || !status || out.some((o) => o.platform === platform))
|
|
258
|
+
continue;
|
|
259
|
+
const note = typeof c.note === "string" ? clean(c.note, MAX_COVERAGE_NOTE_CHARS, true) : "";
|
|
260
|
+
out.push({ platform, status, ...(note.length > 0 ? { note } : {}) });
|
|
261
|
+
}
|
|
262
|
+
return out;
|
|
263
|
+
}
|
|
264
|
+
/** A claim as compared for repeats: case, spacing and a trailing stop do not count. */
|
|
265
|
+
export function sameClaim(claim) {
|
|
266
|
+
return claim
|
|
267
|
+
.toLowerCase()
|
|
268
|
+
.replace(/\s+/g, " ")
|
|
269
|
+
.trim()
|
|
270
|
+
.replace(/[.!]+$/, "");
|
|
271
|
+
}
|
|
148
272
|
/**
|
|
149
273
|
* The blocked pages in `value`, cleaned: a one-line site and reason, the URL only when `safeUrl`
|
|
150
274
|
* takes it, at most `MAX_BLOCKED`. An entry with no site is dropped; anything not a list is none.
|
|
@@ -242,19 +366,49 @@ function fit(lines, max) {
|
|
|
242
366
|
export function fitMessage(lines) {
|
|
243
367
|
return fit(lines, MAX_MESSAGE_CHARS);
|
|
244
368
|
}
|
|
369
|
+
/**
|
|
370
|
+
* A finding's line in a DM: the claim, for a post its platform, date and "snippet only" when it
|
|
371
|
+
* was not opened (0.23.0), then its first source in <...> so Discord shows the link without an
|
|
372
|
+
* embed.
|
|
373
|
+
*/
|
|
374
|
+
export function findingLine(f) {
|
|
375
|
+
const parts = f.platform
|
|
376
|
+
? [
|
|
377
|
+
platformName(f.platform),
|
|
378
|
+
...(f.publishedAt ? [f.publishedAt] : []),
|
|
379
|
+
...(f.evidence === "snippet" ? ["snippet only"] : []),
|
|
380
|
+
]
|
|
381
|
+
: [];
|
|
382
|
+
const post = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
383
|
+
return `- ${f.claim}${post} <${f.sources[0]}>`;
|
|
384
|
+
}
|
|
385
|
+
const STATUS_WORDS = {
|
|
386
|
+
searched: "searched",
|
|
387
|
+
empty: "nothing found",
|
|
388
|
+
unavailable: "unavailable",
|
|
389
|
+
skipped: "skipped",
|
|
390
|
+
};
|
|
391
|
+
/**
|
|
392
|
+
* The DM's "Social:" line (0.23.0): each platform's status, with its note in brackets, in one
|
|
393
|
+
* line of at most `MAX_COVERAGE_LINE_CHARS`.
|
|
394
|
+
*/
|
|
395
|
+
export function coverageLine(coverage) {
|
|
396
|
+
const items = coverage.map((c) => `${platformName(c.platform)} ${STATUS_WORDS[c.status]}${c.note ? ` (${c.note})` : ""}`);
|
|
397
|
+
return clean(`Social: ${items.join("; ")}.`, MAX_COVERAGE_LINE_CHARS, true);
|
|
398
|
+
}
|
|
245
399
|
/**
|
|
246
400
|
* The DM a reviewed answer goes out as, at most `MAX_MESSAGE_CHARS`. Every piece of it was
|
|
247
|
-
* cleaned by `parseAnswer`; the title is the owner's own and is cleaned here.
|
|
248
|
-
*
|
|
249
|
-
*
|
|
401
|
+
* cleaned by `parseAnswer`; the title is the owner's own and is cleaned here. The "Social:" line
|
|
402
|
+
* (0.23.0, when the answer has `coverage`), the reviewer's note and `tail` are kept whole, in
|
|
403
|
+
* that order: `tail`, when given, is bounded by the caller (the "couldn't open" list and the
|
|
404
|
+
* queued line, 0.9.0). Without coverage or a tail the DM is what it was before 0.9.0.
|
|
250
405
|
*/
|
|
251
406
|
export function renderAnswer(title, answer, review, tail = "") {
|
|
252
407
|
const lines = [`Research: ${clean(title, 200, true)}`, "", answer.summary];
|
|
253
408
|
if (answer.findings.length > 0) {
|
|
254
409
|
lines.push("", "Findings:");
|
|
255
|
-
// Sources in <...> so Discord shows the link without an embed.
|
|
256
410
|
for (const f of answer.findings)
|
|
257
|
-
lines.push(
|
|
411
|
+
lines.push(findingLine(f));
|
|
258
412
|
}
|
|
259
413
|
if (answer.uncertain.length > 0) {
|
|
260
414
|
lines.push("", "Uncertain:");
|
|
@@ -264,7 +418,8 @@ export function renderAnswer(title, answer, review, tail = "") {
|
|
|
264
418
|
const note = review.verdict === "approve"
|
|
265
419
|
? "Checked by a reviewer run."
|
|
266
420
|
: `Checked and corrected by a reviewer run (${review.problems.length} problem(s) fixed).`;
|
|
267
|
-
const
|
|
421
|
+
const social = answer.coverage && answer.coverage.length > 0 ? coverageLine(answer.coverage) : "";
|
|
422
|
+
const after = [social, note, tail].filter((s) => s.length > 0).join("\n\n");
|
|
268
423
|
return `${fit(lines, MAX_MESSAGE_CHARS - after.length - 2)}\n\n${after}`;
|
|
269
424
|
}
|
|
270
425
|
/** Lines fitted into at most `max` characters, whole lines dropped from the end. */
|
|
@@ -283,7 +438,7 @@ export function renderUpdate(title, update, review) {
|
|
|
283
438
|
}
|
|
284
439
|
const lines = [head, "", update.summary, "", "New or corrected:"];
|
|
285
440
|
for (const f of update.findings)
|
|
286
|
-
lines.push(
|
|
441
|
+
lines.push(findingLine(f));
|
|
287
442
|
const note = review.verdict === "approve"
|
|
288
443
|
? "Checked by a reviewer run."
|
|
289
444
|
: `Checked and corrected by a reviewer run (${review.problems.length} problem(s) fixed).`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"research-answer.js","sourceRoot":"","sources":["../src/research-answer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAEnD,gGAAgG;AAChG,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;AA6BtB,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAA;AAClC,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAA;AAChC,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAA;AAC9B,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAA;AACxC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAA;AAC9B,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAA;AACtC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAA;AAC5B,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAA;AACzC,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAA;AACxC,8FAA8F;AAC9F,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAA;AAErC,iGAAiG;AACjG,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kCAAkC,EAAE;QAC5E,QAAQ,EAAE;YACR,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,OAAO,EAAE;wBACP,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE;qBAC5D;iBACF;gBACD,QAAQ,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;aAC/B;SACF;QACD,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QACvD,OAAO,EAAE;YACP,IAAI,EAAE,OAAO;YACb,WAAW,EACT,qFAAqF;gBACrF,mFAAmF;gBACnF,uBAAuB;YACzB,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sCAAsC,EAAE;oBAC7E,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAE;oBACvE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mCAAmC,EAAE;iBAC1E;gBACD,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;aAC1B;SACF;KACF;IACD,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC;CACtC,CAAA;AAEV,2FAA2F;AAC3F,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAClD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,aAAa;QAAE,OAAO,IAAI,CAAA;IACvE,IAAI,GAAQ,CAAA;IACZ,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO,IAAI,CAAA;IACtE,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAA;IAC7C,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAA;IAC3B,MAAM,OAAO,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAA;IAC5C,kFAAkF;IAClF,IAAI,2BAA2B,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAA;IAC1D,6FAA6F;IAC7F,4EAA4E;IAC5E,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IACvC,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY;IAC1C,IAAI,CAAC;QACH,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,CAAU;IACvB,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;AACjE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzF,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAA;IACvD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IACrC,MAAM,QAAQ,GAAsB,EAAE,CAAA;IACtC,MAAM,SAAS,GAAa,EAAE,CAAA;IAC9B,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;YAAE,SAAQ;QACtD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,CAAC,CAAA;QACnD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAQ;QAChC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;QACrD,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAA;QACrF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,oBAAoB,CAAC,CAAA;;YACjE,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,uBAAuB,CAAC,EAAE,CAAC,CAAA;IACnF,CAAC;IACD,4FAA4F;IAC5F,mDAAmD;IACnD,MAAM,SAAS,GAAa,EAAE,CAAA;IAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAA;IAClE,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,SAAQ;QACnC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAA;QAChD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3C,CAAC;IACD,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAA;IAC5B,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAC3C,OAAO;QACL,OAAO;QACP,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC;QACzC,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC;QAC5C,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3C,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IACpC,MAAM,GAAG,GAAkB,EAAE,CAAA;IAC7B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,GAAG,CAAC,MAAM,IAAI,WAAW;YAAE,MAAK;QACpC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,SAAQ;QACrD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,sBAAsB,EAAE,IAAI,CAAC,CAAA;QACxD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,SAAQ;QAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,qBAAqB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACtF,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAC1B,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IAClD,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,qCAAqC;AACrC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAA;AAYhE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAA;AAC7B,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAA;AAEpC,+CAA+C;AAC/C,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC;YACnB,WAAW,EACT,uFAAuF;gBACvF,wFAAwF;gBACxF,qCAAqC;SACxC;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACzB,WAAW,EAAE,+DAA+D;SAC7E;QACD,MAAM,EAAE;YACN,GAAG,aAAa;YAChB,WAAW,EAAE,uEAAuE;SACrF;KACF;IACD,QAAQ,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;CACzB,CAAA;AAEV;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,KAAsB;IAChE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IACnE,MAAM,OAAO,GAAI,QAA8B,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;QACrE,CAAC,CAAE,KAAK,CAAC,OAAmB;QAC5B,CAAC,CAAC,IAAI,CAAA;IACR,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAA;IACzB,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;SACnE,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;SACjD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;SAC7C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;SAC3B,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAA;IACzB,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAC5F,6FAA6F;IAC7F,uBAAuB;IACvB,IAAI,OAAO,KAAK,QAAQ,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IAChD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAA;AAC5E,CAAC;AAED,2FAA2F;AAC3F,SAAS,GAAG,CAAC,KAAe,EAAE,GAAW;IACvC,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,wBAAwB,CAAA;QACzD,gEAAgE;QAChE,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC1D,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,GAAG,EAAE,CAAC;YAC7C,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACd,MAAK;QACP,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACd,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;IAC3B,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3B,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;AAClE,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,UAAU,CAAC,KAAe;IACxC,OAAO,GAAG,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAA;AACtC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAa,EACb,MAAsB,EACtB,MAAc,EACd,IAAI,GAAG,EAAE;IAET,MAAM,KAAK,GAAG,CAAC,aAAa,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;IAC1E,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAA;QAC3B,+DAA+D;QAC/D,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IAC/E,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,CAAA;QAC5B,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACxD,CAAC;IACD,MAAM,IAAI,GACR,MAAM,CAAC,OAAO,KAAK,SAAS;QAC1B,CAAC,CAAC,4BAA4B;QAC9B,CAAC,CAAC,4CAA4C,MAAM,CAAC,QAAQ,CAAC,MAAM,qBAAqB,CAAA;IAC7F,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;IAC3D,OAAO,GAAG,GAAG,CAAC,KAAK,EAAE,iBAAiB,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,OAAO,KAAK,EAAE,CAAA;AAC1E,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,QAAQ,CAAC,KAAe,EAAE,GAAW;IACnD,OAAO,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AACxB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa,EAAE,MAAsB,EAAE,MAAc;IAChF,MAAM,IAAI,GAAG,aAAa,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAA;IACpD,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,GAAG,IAAI,2DAA2D,CAAA;IAC3E,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,EAAE,mBAAmB,CAAC,CAAA;IACjE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IAC7E,MAAM,IAAI,GACR,MAAM,CAAC,OAAO,KAAK,SAAS;QAC1B,CAAC,CAAC,4BAA4B;QAC9B,CAAC,CAAC,4CAA4C,MAAM,CAAC,QAAQ,CAAC,MAAM,qBAAqB,CAAA;IAC7F,OAAO,GAAG,GAAG,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,OAAO,IAAI,EAAE,CAAA;AACxE,CAAC"}
|
|
1
|
+
{"version":3,"file":"research-answer.js","sourceRoot":"","sources":["../src/research-answer.ts"],"names":[],"mappings":"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"}
|