@anuma/sdk 9.1.11 → 10.0.1
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/dist/expo/index.cjs +573 -239
- package/dist/expo/index.d.mts +86 -1
- package/dist/expo/index.d.ts +86 -1
- package/dist/expo/index.mjs +599 -265
- package/dist/index.cjs +444 -111
- package/dist/index.d.mts +86 -1
- package/dist/index.d.ts +86 -1
- package/dist/index.mjs +444 -111
- package/dist/react/index.cjs +620 -286
- package/dist/react/index.d.mts +86 -1
- package/dist/react/index.d.ts +86 -1
- package/dist/react/index.mjs +646 -312
- package/dist/server/index.cjs +1 -0
- package/dist/server/index.mjs +1 -0
- package/dist/tools/index.cjs +19 -13
- package/dist/tools/index.d.mts +8 -12
- package/dist/tools/index.d.ts +8 -12
- package/dist/tools/index.mjs +19 -13
- package/package.json +1 -1
package/dist/expo/index.cjs
CHANGED
|
@@ -382,15 +382,15 @@ var init_redactor = __esm({
|
|
|
382
382
|
* (sequential, per-pattern) and the async {@link collectRegexSpans} (span)
|
|
383
383
|
* paths so the detection rules live in exactly one place.
|
|
384
384
|
*/
|
|
385
|
-
findMatches(
|
|
385
|
+
findMatches(text15, pattern) {
|
|
386
386
|
const regex = new RegExp(pattern.regex.source, pattern.regex.flags);
|
|
387
387
|
const found = [];
|
|
388
388
|
let m;
|
|
389
|
-
while ((m = regex.exec(
|
|
389
|
+
while ((m = regex.exec(text15)) !== null) {
|
|
390
390
|
const value = m[0];
|
|
391
391
|
if (pattern.validate && !pattern.validate(value)) continue;
|
|
392
392
|
if (pattern.context) {
|
|
393
|
-
const before =
|
|
393
|
+
const before = text15.slice(Math.max(0, m.index - 40), m.index);
|
|
394
394
|
if (!pattern.context.test(before)) continue;
|
|
395
395
|
}
|
|
396
396
|
found.push({ match: value, index: m.index });
|
|
@@ -406,9 +406,9 @@ var init_redactor = __esm({
|
|
|
406
406
|
* earlier patterns, so an earlier (more specific) pattern claims a region
|
|
407
407
|
* before a later one can — placeholders are inert and match no pattern.
|
|
408
408
|
*/
|
|
409
|
-
scan(
|
|
409
|
+
scan(text15, makeReplacement) {
|
|
410
410
|
const matches = [];
|
|
411
|
-
let redacted =
|
|
411
|
+
let redacted = text15;
|
|
412
412
|
for (const pattern of this.patterns) {
|
|
413
413
|
const found = this.findMatches(redacted, pattern);
|
|
414
414
|
if (found.length === 0) continue;
|
|
@@ -429,8 +429,8 @@ var init_redactor = __esm({
|
|
|
429
429
|
* Scan and redact PII from a single text string, using numbered, reversible
|
|
430
430
|
* placeholders ([EMAIL_1], …) tracked on this instance.
|
|
431
431
|
*/
|
|
432
|
-
redactText(
|
|
433
|
-
return this.scan(
|
|
432
|
+
redactText(text15) {
|
|
433
|
+
return this.scan(text15, (category, value) => this.getPlaceholder(category, value));
|
|
434
434
|
}
|
|
435
435
|
/**
|
|
436
436
|
* Mask PII with unnumbered, NON-reversible tokens ([EMAIL], [SSN], …) without
|
|
@@ -439,15 +439,15 @@ var init_redactor = __esm({
|
|
|
439
439
|
* embeddings endpoint while staying deterministic, so the same content always
|
|
440
440
|
* masks identically and search stays consistent across conversations.
|
|
441
441
|
*/
|
|
442
|
-
maskText(
|
|
443
|
-
return this.scan(
|
|
442
|
+
maskText(text15) {
|
|
443
|
+
return this.scan(text15, (category) => `[${category}]`).text;
|
|
444
444
|
}
|
|
445
445
|
/** All regex matches as spans on the ORIGINAL text (priority 0). Uses the
|
|
446
446
|
* same {@link findMatches} guards as the sync scan. */
|
|
447
|
-
collectRegexSpans(
|
|
447
|
+
collectRegexSpans(text15) {
|
|
448
448
|
const spans = [];
|
|
449
449
|
this.patterns.forEach((pattern, patternIndex) => {
|
|
450
|
-
for (const { match, index } of this.findMatches(
|
|
450
|
+
for (const { match, index } of this.findMatches(text15, pattern)) {
|
|
451
451
|
spans.push({
|
|
452
452
|
start: index,
|
|
453
453
|
end: index + match.length,
|
|
@@ -466,16 +466,16 @@ var init_redactor = __esm({
|
|
|
466
466
|
* of "Stripe") from producing a corrupting partial placeholder like
|
|
467
467
|
* `[ORG_1]e`.
|
|
468
468
|
*/
|
|
469
|
-
normalizeNerSpans(
|
|
469
|
+
normalizeNerSpans(text15, raw) {
|
|
470
470
|
if (!Array.isArray(raw)) return [];
|
|
471
471
|
const out = [];
|
|
472
472
|
raw.forEach((s, i) => {
|
|
473
473
|
if (!Number.isFinite(s.start) || !Number.isFinite(s.end)) return;
|
|
474
|
-
let start = Math.max(0, Math.min(Math.trunc(s.start),
|
|
475
|
-
let end = Math.max(0, Math.min(Math.trunc(s.end),
|
|
474
|
+
let start = Math.max(0, Math.min(Math.trunc(s.start), text15.length));
|
|
475
|
+
let end = Math.max(0, Math.min(Math.trunc(s.end), text15.length));
|
|
476
476
|
if (end <= start) return;
|
|
477
|
-
while (start > 0 && isWordChar(
|
|
478
|
-
while (end <
|
|
477
|
+
while (start > 0 && isWordChar(text15[start - 1])) start--;
|
|
478
|
+
while (end < text15.length && isWordChar(text15[end])) end++;
|
|
479
479
|
const category = String(s.category ?? "").trim();
|
|
480
480
|
if (!category) return;
|
|
481
481
|
out.push({ start, end, category, priority: 1, order: i });
|
|
@@ -484,10 +484,10 @@ var init_redactor = __esm({
|
|
|
484
484
|
}
|
|
485
485
|
/** Run the configured detector defensively: failures degrade to regex-only
|
|
486
486
|
* (fail-open on detection, not on protection) with a one-time warning. */
|
|
487
|
-
async detectNerSpans(
|
|
487
|
+
async detectNerSpans(text15) {
|
|
488
488
|
if (!this.nerDetector) return [];
|
|
489
489
|
try {
|
|
490
|
-
return this.normalizeNerSpans(
|
|
490
|
+
return this.normalizeNerSpans(text15, await this.nerDetector.detect(text15));
|
|
491
491
|
} catch (err) {
|
|
492
492
|
this.warnNerFailure(err);
|
|
493
493
|
return [];
|
|
@@ -520,11 +520,11 @@ var init_redactor = __esm({
|
|
|
520
520
|
* in pattern then document order, matching the sync scan's numbering). The
|
|
521
521
|
* string is then EMITTED in document order.
|
|
522
522
|
*/
|
|
523
|
-
rebuildSpans(
|
|
523
|
+
rebuildSpans(text15, spans, makeReplacement) {
|
|
524
524
|
const placeholderByStart = /* @__PURE__ */ new Map();
|
|
525
525
|
const matches = [];
|
|
526
526
|
for (const s of spans) {
|
|
527
|
-
const value =
|
|
527
|
+
const value = text15.slice(s.start, s.end);
|
|
528
528
|
const placeholder = makeReplacement(s.category, value);
|
|
529
529
|
placeholderByStart.set(s.start, placeholder);
|
|
530
530
|
matches.push({ category: s.category, original: value, placeholder });
|
|
@@ -533,16 +533,16 @@ var init_redactor = __esm({
|
|
|
533
533
|
let result = "";
|
|
534
534
|
let cursor = 0;
|
|
535
535
|
for (const s of emitOrder) {
|
|
536
|
-
result +=
|
|
536
|
+
result += text15.slice(cursor, s.start) + (placeholderByStart.get(s.start) ?? "");
|
|
537
537
|
cursor = s.end;
|
|
538
538
|
}
|
|
539
|
-
result +=
|
|
539
|
+
result += text15.slice(cursor);
|
|
540
540
|
return { text: result, matches };
|
|
541
541
|
}
|
|
542
542
|
/** Merge regex + NER spans for `text` into a resolved, non-overlapping set. */
|
|
543
|
-
async detectAllSpans(
|
|
544
|
-
const nerPromise = this.detectNerSpans(
|
|
545
|
-
const regexSpans = this.collectRegexSpans(
|
|
543
|
+
async detectAllSpans(text15) {
|
|
544
|
+
const nerPromise = this.detectNerSpans(text15);
|
|
545
|
+
const regexSpans = this.collectRegexSpans(text15);
|
|
546
546
|
const ner = await nerPromise;
|
|
547
547
|
return this.resolveOverlaps([...regexSpans, ...ner]);
|
|
548
548
|
}
|
|
@@ -551,11 +551,11 @@ var init_redactor = __esm({
|
|
|
551
551
|
* unstructured PII (the configured {@link NerDetector}) with numbered,
|
|
552
552
|
* reversible placeholders. With no detector, identical to `redactText`.
|
|
553
553
|
*/
|
|
554
|
-
async redactTextAsync(
|
|
555
|
-
if (!this.nerDetector) return this.redactText(
|
|
556
|
-
const spans = await this.detectAllSpans(
|
|
554
|
+
async redactTextAsync(text15) {
|
|
555
|
+
if (!this.nerDetector) return this.redactText(text15);
|
|
556
|
+
const spans = await this.detectAllSpans(text15);
|
|
557
557
|
return this.rebuildSpans(
|
|
558
|
-
|
|
558
|
+
text15,
|
|
559
559
|
spans,
|
|
560
560
|
(category, value) => this.getPlaceholder(category, value)
|
|
561
561
|
);
|
|
@@ -564,10 +564,10 @@ var init_redactor = __esm({
|
|
|
564
564
|
* Async counterpart to {@link maskText}: stateless `[CATEGORY]` masking over
|
|
565
565
|
* regex + NER matches. With no detector, identical to `maskText`.
|
|
566
566
|
*/
|
|
567
|
-
async maskTextAsync(
|
|
568
|
-
if (!this.nerDetector) return this.maskText(
|
|
569
|
-
const spans = await this.detectAllSpans(
|
|
570
|
-
return this.rebuildSpans(
|
|
567
|
+
async maskTextAsync(text15) {
|
|
568
|
+
if (!this.nerDetector) return this.maskText(text15);
|
|
569
|
+
const spans = await this.detectAllSpans(text15);
|
|
570
|
+
return this.rebuildSpans(text15, spans, (category) => `[${category}]`).text;
|
|
571
571
|
}
|
|
572
572
|
/**
|
|
573
573
|
* Async counterpart to {@link redactMessages}. Text parts are redacted
|
|
@@ -653,9 +653,9 @@ var init_redactor = __esm({
|
|
|
653
653
|
* {@link restoreForStorage} instead, which tolerates the mangled echoes the
|
|
654
654
|
* extraction models produce.
|
|
655
655
|
*/
|
|
656
|
-
deAnonymize(
|
|
657
|
-
if (!
|
|
658
|
-
let restored =
|
|
656
|
+
deAnonymize(text15) {
|
|
657
|
+
if (!text15.includes("[")) return text15;
|
|
658
|
+
let restored = text15;
|
|
659
659
|
for (const [placeholder, original] of this.placeholderToValue) {
|
|
660
660
|
if (restored.includes(placeholder)) {
|
|
661
661
|
restored = restored.split(placeholder).join(original);
|
|
@@ -680,15 +680,15 @@ var init_redactor = __esm({
|
|
|
680
680
|
* - `unresolved` is derived from the lookup miss during this pass, not from a
|
|
681
681
|
* regex re-scan of the output — so it can't trip over a restored value.
|
|
682
682
|
*/
|
|
683
|
-
restoreForStorage(
|
|
683
|
+
restoreForStorage(text15) {
|
|
684
684
|
if (this.storagePattern === void 0) this.storagePattern = this.buildStoragePattern();
|
|
685
685
|
if (!this.storagePattern || this.placeholderToValue.size === 0) {
|
|
686
|
-
return { text:
|
|
686
|
+
return { text: text15, unresolved: false };
|
|
687
687
|
}
|
|
688
688
|
this.storageLookup ?? (this.storageLookup = this.buildStorageLookup());
|
|
689
689
|
const { exact, ci, ciCollisions } = this.storageLookup;
|
|
690
690
|
let unresolved = false;
|
|
691
|
-
const restored =
|
|
691
|
+
const restored = text15.replace(
|
|
692
692
|
this.storagePattern,
|
|
693
693
|
(match, bracketed, bare) => {
|
|
694
694
|
const body = bracketed ?? bare ?? "";
|
|
@@ -1155,8 +1155,8 @@ function extractResponsesContent(body) {
|
|
|
1155
1155
|
if (!root) return null;
|
|
1156
1156
|
if (typeof root.output_text === "string" && root.output_text !== "") return root.output_text;
|
|
1157
1157
|
if (!Array.isArray(root.output)) return null;
|
|
1158
|
-
const
|
|
1159
|
-
return
|
|
1158
|
+
const text15 = root.output.filter((item) => asRecord(item)?.type === "message").flatMap((item) => Array.isArray(item.content) ? item.content : []).map((part) => asRecord(part)?.text).filter((t) => typeof t === "string").join("");
|
|
1159
|
+
return text15;
|
|
1160
1160
|
}
|
|
1161
1161
|
var RESPONSE_FORMAT_OK, RESPONSE_SCHEMA_OK, JSON_CONTRACT_REMINDER, RESPONSES_ONLY_MODEL_PREFIXES, CHAT_TO_RESPONSES_FIELDS, FOREIGN_ENDPOINT_SUFFIX, TIME_BUDGET_EXHAUSTED, MAX_TIMER_DELAY_MS, RETRYABLE_HTTP;
|
|
1162
1162
|
var init_portalLlm = __esm({
|
|
@@ -2923,19 +2923,19 @@ function base64ToUint8Array(base64) {
|
|
|
2923
2923
|
// src/lib/memoryEngine/vectorEncoding.ts
|
|
2924
2924
|
var BYTES_PER_FLOAT32 = 4;
|
|
2925
2925
|
var CANONICAL_BASE64 = /^[A-Za-z0-9+/]+={0,2}$/;
|
|
2926
|
-
function encodeChunkVector(
|
|
2927
|
-
const f32 =
|
|
2926
|
+
function encodeChunkVector(vector2) {
|
|
2927
|
+
const f32 = vector2 instanceof Float32Array ? vector2 : Float32Array.from(vector2);
|
|
2928
2928
|
return uint8ArrayToBase64(new Uint8Array(f32.buffer, f32.byteOffset, f32.byteLength));
|
|
2929
2929
|
}
|
|
2930
|
-
function decodeChunkVector(
|
|
2931
|
-
if (!
|
|
2932
|
-
if (typeof
|
|
2933
|
-
if (
|
|
2930
|
+
function decodeChunkVector(vector2, onMalformed) {
|
|
2931
|
+
if (!vector2 || vector2.length === 0) return new Float32Array(0);
|
|
2932
|
+
if (typeof vector2 !== "string") return Float32Array.from(vector2);
|
|
2933
|
+
if (vector2.length % 4 !== 0 || !CANONICAL_BASE64.test(vector2)) {
|
|
2934
2934
|
onMalformed?.();
|
|
2935
2935
|
return new Float32Array(0);
|
|
2936
2936
|
}
|
|
2937
2937
|
try {
|
|
2938
|
-
const bytes2 = base64ToUint8Array(
|
|
2938
|
+
const bytes2 = base64ToUint8Array(vector2);
|
|
2939
2939
|
if (bytes2.byteLength === 0 || bytes2.byteLength % BYTES_PER_FLOAT32 !== 0) {
|
|
2940
2940
|
onMalformed?.();
|
|
2941
2941
|
return new Float32Array(0);
|
|
@@ -3422,8 +3422,8 @@ var ATTACHED_FILES_OPEN_TAG = "<attached_files>";
|
|
|
3422
3422
|
var ATTACHED_FILES_CLOSE_TAG = "</attached_files>";
|
|
3423
3423
|
var ATTACHED_FILES_PREFIX = `${ATTACHED_FILES_OPEN_TAG}
|
|
3424
3424
|
The user attached the following file(s) to this message. Their extracted contents are below; when the user refers to "the attached file", "this file" or "the document", they mean these.`;
|
|
3425
|
-
function isAttachedFilesText(
|
|
3426
|
-
return typeof
|
|
3425
|
+
function isAttachedFilesText(text15) {
|
|
3426
|
+
return typeof text15 === "string" && text15.startsWith(ATTACHED_FILES_PREFIX) && text15.endsWith(ATTACHED_FILES_CLOSE_TAG);
|
|
3427
3427
|
}
|
|
3428
3428
|
function buildAttachedFilesText(fileContext) {
|
|
3429
3429
|
return `${ATTACHED_FILES_PREFIX}
|
|
@@ -4141,7 +4141,7 @@ async function getMessageOp(ctx, uniqueId) {
|
|
|
4141
4141
|
}
|
|
4142
4142
|
return messageToStored(message, ctx.walletAddress, ctx.signMessage, ctx.embeddedWalletSigner);
|
|
4143
4143
|
}
|
|
4144
|
-
async function updateMessageEmbeddingOp(ctx, uniqueId,
|
|
4144
|
+
async function updateMessageEmbeddingOp(ctx, uniqueId, vector2, embeddingModel) {
|
|
4145
4145
|
let message;
|
|
4146
4146
|
try {
|
|
4147
4147
|
message = await ctx.messagesCollection.find(uniqueId);
|
|
@@ -4151,10 +4151,10 @@ async function updateMessageEmbeddingOp(ctx, uniqueId, vector, embeddingModel) {
|
|
|
4151
4151
|
const address = ctx.walletAddress;
|
|
4152
4152
|
await ctx.database.write(async () => {
|
|
4153
4153
|
const key = await resolveMessageEmbeddingKey(address, message.content);
|
|
4154
|
-
const storedVector2 = await serializeMessageEmbedding(key,
|
|
4154
|
+
const storedVector2 = await serializeMessageEmbedding(key, vector2);
|
|
4155
4155
|
await message.update((msg) => {
|
|
4156
4156
|
msg._setRaw("vector", storedVector2);
|
|
4157
|
-
if (msg.origin === "chunks_discarded" &&
|
|
4157
|
+
if (msg.origin === "chunks_discarded" && vector2.length > 0) {
|
|
4158
4158
|
msg._setRaw("origin", "message");
|
|
4159
4159
|
}
|
|
4160
4160
|
msg._setRaw("embedding_model", embeddingModel);
|
|
@@ -4822,49 +4822,49 @@ init_logger();
|
|
|
4822
4822
|
var DEFAULT_CHUNK_SIZE = 400;
|
|
4823
4823
|
var DEFAULT_CHUNK_OVERLAP = 50;
|
|
4824
4824
|
var DEFAULT_MIN_CHUNK_SIZE = 50;
|
|
4825
|
-
function splitIntoSentences(
|
|
4825
|
+
function splitIntoSentences(text15) {
|
|
4826
4826
|
const sentenceRegex = /[.!?]+[\s"')}\]]*(?=\s|$)/g;
|
|
4827
4827
|
const sentences = [];
|
|
4828
4828
|
let lastIndex = 0;
|
|
4829
4829
|
let match;
|
|
4830
|
-
while ((match = sentenceRegex.exec(
|
|
4830
|
+
while ((match = sentenceRegex.exec(text15)) !== null) {
|
|
4831
4831
|
const endIndex = match.index + match[0].length;
|
|
4832
|
-
const sentence =
|
|
4832
|
+
const sentence = text15.slice(lastIndex, endIndex).trim();
|
|
4833
4833
|
if (sentence) {
|
|
4834
4834
|
sentences.push(sentence);
|
|
4835
4835
|
}
|
|
4836
4836
|
lastIndex = endIndex;
|
|
4837
4837
|
}
|
|
4838
|
-
const remaining =
|
|
4838
|
+
const remaining = text15.slice(lastIndex).trim();
|
|
4839
4839
|
if (remaining) {
|
|
4840
4840
|
sentences.push(remaining);
|
|
4841
4841
|
}
|
|
4842
4842
|
return sentences;
|
|
4843
4843
|
}
|
|
4844
|
-
function chunkText(
|
|
4844
|
+
function chunkText(text15, options) {
|
|
4845
4845
|
const {
|
|
4846
4846
|
chunkSize = DEFAULT_CHUNK_SIZE,
|
|
4847
4847
|
chunkOverlap: requestedOverlap = DEFAULT_CHUNK_OVERLAP,
|
|
4848
4848
|
minChunkSize = DEFAULT_MIN_CHUNK_SIZE
|
|
4849
4849
|
} = options ?? {};
|
|
4850
4850
|
const chunkOverlap = Math.min(requestedOverlap, chunkSize - 1);
|
|
4851
|
-
if (
|
|
4851
|
+
if (text15.length <= chunkSize) {
|
|
4852
4852
|
return [
|
|
4853
4853
|
{
|
|
4854
|
-
text:
|
|
4854
|
+
text: text15.trim(),
|
|
4855
4855
|
startOffset: 0,
|
|
4856
|
-
endOffset:
|
|
4856
|
+
endOffset: text15.length
|
|
4857
4857
|
}
|
|
4858
4858
|
];
|
|
4859
4859
|
}
|
|
4860
|
-
const sentences = splitIntoSentences(
|
|
4860
|
+
const sentences = splitIntoSentences(text15);
|
|
4861
4861
|
const chunks3 = [];
|
|
4862
4862
|
let currentChunkSentences = [];
|
|
4863
4863
|
let currentChunkStart = 0;
|
|
4864
4864
|
let currentOffset = 0;
|
|
4865
4865
|
for (let i = 0; i < sentences.length; i++) {
|
|
4866
4866
|
const sentence = sentences[i];
|
|
4867
|
-
let sentenceStart =
|
|
4867
|
+
let sentenceStart = text15.indexOf(sentence, currentOffset);
|
|
4868
4868
|
if (sentenceStart === -1) {
|
|
4869
4869
|
sentenceStart = currentOffset;
|
|
4870
4870
|
}
|
|
@@ -4911,7 +4911,7 @@ function chunkText(text14, options) {
|
|
|
4911
4911
|
if (overlapSentences.length > 0) {
|
|
4912
4912
|
currentChunkSentences = [...overlapSentences, sentence];
|
|
4913
4913
|
const overlapText = overlapSentences[0];
|
|
4914
|
-
const overlapStart =
|
|
4914
|
+
const overlapStart = text15.lastIndexOf(overlapText, currentOffset);
|
|
4915
4915
|
currentChunkStart = overlapStart === -1 ? sentenceStart : overlapStart;
|
|
4916
4916
|
} else {
|
|
4917
4917
|
currentChunkSentences = [sentence];
|
|
@@ -4931,18 +4931,18 @@ function chunkText(text14, options) {
|
|
|
4931
4931
|
chunks3.push({
|
|
4932
4932
|
text: chunkText2,
|
|
4933
4933
|
startOffset: currentChunkStart,
|
|
4934
|
-
endOffset:
|
|
4934
|
+
endOffset: text15.length
|
|
4935
4935
|
});
|
|
4936
4936
|
}
|
|
4937
4937
|
}
|
|
4938
4938
|
if (chunks3.length === 0) {
|
|
4939
|
-
const trimmedText =
|
|
4939
|
+
const trimmedText = text15.trim();
|
|
4940
4940
|
if (trimmedText.length > 0) {
|
|
4941
4941
|
return [
|
|
4942
4942
|
{
|
|
4943
4943
|
text: trimmedText,
|
|
4944
4944
|
startOffset: 0,
|
|
4945
|
-
endOffset:
|
|
4945
|
+
endOffset: text15.length
|
|
4946
4946
|
}
|
|
4947
4947
|
];
|
|
4948
4948
|
}
|
|
@@ -5634,8 +5634,8 @@ var createClient = (config = {}) => {
|
|
|
5634
5634
|
data = await response[parseAs]();
|
|
5635
5635
|
break;
|
|
5636
5636
|
case "json": {
|
|
5637
|
-
const
|
|
5638
|
-
data =
|
|
5637
|
+
const text15 = await response.text();
|
|
5638
|
+
data = text15 ? JSON.parse(text15) : {};
|
|
5639
5639
|
break;
|
|
5640
5640
|
}
|
|
5641
5641
|
case "stream":
|
|
@@ -5876,22 +5876,22 @@ function embeddingErrorFrom(response) {
|
|
|
5876
5876
|
const message = typeof response.error === "object" && response.error && "error" in response.error ? response.error.error : "API embedding failed";
|
|
5877
5877
|
return new EmbeddingHttpError(message, response.response?.status);
|
|
5878
5878
|
}
|
|
5879
|
-
async function generateEmbedding(
|
|
5879
|
+
async function generateEmbedding(text15, options) {
|
|
5880
5880
|
const total = options.totalTimeoutMs;
|
|
5881
|
-
if (total === void 0) return embedOne(
|
|
5882
|
-
return withDeadline((signal) => embedOne(
|
|
5881
|
+
if (total === void 0) return embedOne(text15, options, void 0);
|
|
5882
|
+
return withDeadline((signal) => embedOne(text15, options, signal), total, "embedding");
|
|
5883
5883
|
}
|
|
5884
5884
|
var { inFlightByCache, cachedEmbeddingModels } = getEmbeddingCacheState();
|
|
5885
|
-
async function embedOne(
|
|
5885
|
+
async function embedOne(text15, options, outer) {
|
|
5886
5886
|
const { cache } = options;
|
|
5887
|
-
if (!cache) return Array.from(await requestEmbedding(
|
|
5887
|
+
if (!cache) return Array.from(await requestEmbedding(text15, options, outer));
|
|
5888
5888
|
const model = options.model ?? DEFAULT_API_EMBEDDING_MODEL;
|
|
5889
|
-
const cached = cache.get(
|
|
5889
|
+
const cached = cache.get(text15);
|
|
5890
5890
|
const cachedModel = cached && cachedEmbeddingModels.get(cached);
|
|
5891
5891
|
if (cached && (cachedModel === void 0 || cachedModel === model)) return Array.from(cached);
|
|
5892
5892
|
const inFlight = inFlightByCache.get(cache) ?? /* @__PURE__ */ new Map();
|
|
5893
5893
|
inFlightByCache.set(cache, inFlight);
|
|
5894
|
-
const requestKey = JSON.stringify([model,
|
|
5894
|
+
const requestKey = JSON.stringify([model, text15]);
|
|
5895
5895
|
const pending = inFlight.get(requestKey);
|
|
5896
5896
|
if (pending) {
|
|
5897
5897
|
try {
|
|
@@ -5900,18 +5900,18 @@ async function embedOne(text14, options, outer) {
|
|
|
5900
5900
|
if (outer?.aborted) throw err;
|
|
5901
5901
|
}
|
|
5902
5902
|
}
|
|
5903
|
-
const request = requestEmbedding(
|
|
5903
|
+
const request = requestEmbedding(text15, options, outer);
|
|
5904
5904
|
inFlight.set(requestKey, request);
|
|
5905
5905
|
try {
|
|
5906
5906
|
const embedding2 = await request;
|
|
5907
5907
|
cachedEmbeddingModels.set(embedding2, model);
|
|
5908
|
-
cache.set(
|
|
5908
|
+
cache.set(text15, embedding2);
|
|
5909
5909
|
return Array.from(embedding2);
|
|
5910
5910
|
} finally {
|
|
5911
5911
|
if (inFlight.get(requestKey) === request) inFlight.delete(requestKey);
|
|
5912
5912
|
}
|
|
5913
5913
|
}
|
|
5914
|
-
async function requestEmbedding(
|
|
5914
|
+
async function requestEmbedding(text15, options, outer) {
|
|
5915
5915
|
const { baseUrl = BASE_URL, model } = options;
|
|
5916
5916
|
const timeoutMs = options.timeoutMs ?? DEFAULT_EMBEDDING_REQUEST_TIMEOUT_MS;
|
|
5917
5917
|
const headers = {
|
|
@@ -5923,7 +5923,7 @@ async function requestEmbedding(text14, options, outer) {
|
|
|
5923
5923
|
(signal) => postApiV1Embeddings({
|
|
5924
5924
|
baseUrl,
|
|
5925
5925
|
body: {
|
|
5926
|
-
input: options.maskInput ? options.maskInput(
|
|
5926
|
+
input: options.maskInput ? options.maskInput(text15) : text15,
|
|
5927
5927
|
model: model ?? DEFAULT_API_EMBEDDING_MODEL
|
|
5928
5928
|
},
|
|
5929
5929
|
headers,
|
|
@@ -6184,10 +6184,10 @@ async function chunkAndEmbedMessage(ctx, messageId, options) {
|
|
|
6184
6184
|
}
|
|
6185
6185
|
const textChunks = chunkText(message.content, options);
|
|
6186
6186
|
const chunkTexts = textChunks.map((c) => c.text);
|
|
6187
|
-
const
|
|
6187
|
+
const embeddings2 = await generateEmbeddings(chunkTexts, options);
|
|
6188
6188
|
const messageChunks = textChunks.map((chunk, i) => ({
|
|
6189
6189
|
text: chunk.text,
|
|
6190
|
-
vector:
|
|
6190
|
+
vector: embeddings2[i],
|
|
6191
6191
|
startOffset: chunk.startOffset,
|
|
6192
6192
|
endOffset: chunk.endOffset
|
|
6193
6193
|
}));
|
|
@@ -6302,13 +6302,13 @@ async function chunkAndEmbedAllMessages(ctx, options, filter) {
|
|
|
6302
6302
|
if (shortMessages.length > 0) {
|
|
6303
6303
|
try {
|
|
6304
6304
|
const texts = shortMessages.map((m) => m.content);
|
|
6305
|
-
const
|
|
6305
|
+
const embeddings2 = await generateEmbeddings(texts, options);
|
|
6306
6306
|
for (let i = 0; i < shortMessages.length; i++) {
|
|
6307
6307
|
try {
|
|
6308
6308
|
await updateMessageEmbeddingOp(
|
|
6309
6309
|
ctx,
|
|
6310
6310
|
shortMessages[i].uniqueId,
|
|
6311
|
-
|
|
6311
|
+
embeddings2[i],
|
|
6312
6312
|
embeddingModel
|
|
6313
6313
|
);
|
|
6314
6314
|
embeddedCount++;
|
|
@@ -6327,10 +6327,10 @@ async function chunkAndEmbedAllMessages(ctx, options, filter) {
|
|
|
6327
6327
|
for (const msg of longMessages) {
|
|
6328
6328
|
try {
|
|
6329
6329
|
const chunkTexts = msg.textChunks.map((c) => c.text);
|
|
6330
|
-
const
|
|
6330
|
+
const embeddings2 = await generateEmbeddings(chunkTexts, options);
|
|
6331
6331
|
const messageChunks = msg.textChunks.map((chunk, i) => ({
|
|
6332
6332
|
text: chunk.text,
|
|
6333
|
-
vector:
|
|
6333
|
+
vector: embeddings2[i],
|
|
6334
6334
|
startOffset: chunk.startOffset,
|
|
6335
6335
|
endOffset: chunk.endOffset
|
|
6336
6336
|
}));
|
|
@@ -6349,10 +6349,10 @@ var cryptoPriceCentroid = [0.025576787463333337, 0.0017598020599999997, -0.01339
|
|
|
6349
6349
|
var noCryptoPriceCentroid = [0.015473095138684206, 0.0031634101517105263, -0.011257569272697374, -0.02186071628118421, 0.008889833600921049, -0.006683160151842105, -0.009353561542368423, 0.01352172231447368, -0.01804750482084211, -0.00367377302894737, -0.02944732364736842, -0.002762284484078947, 0.033265779919736845, -0.006296026233684209, 0.022671929989210516, -0.0011530866775394733, 0.007070449366500001, -0.0050351310097368415, 0.010799295548421052, 8887227547368423e-20, 0.016334833743289468, 0.014258147745263154, 0.009584979092368422, 0.003050773904342107, -0.013426355076315791, 0.03582639014592105, -0.01160198427105263, -0.012974957788421051, -0.0031303864967105266, 0.021372544676315785, -0.02374843410263159, -0.009223416682894739, 0.005602822635394739, 0.02924898819473684, -0.014123551471890794, 0.019027650408421047, -0.005074793619605263, -4600031255263159e-19, 0.010498459563947368, -0.011094227593421054, 0.010249076817105258, -5753623577631579e-19, -0.005674418818421051, -0.00447285064486842, -0.005516097867105263, -0.007470266562368424, -0.005471375803289476, -0.006780112021052632, 0.007059772195657894, 0.0021554959672368413, 0.004705735464473685, -0.02317132775394737, -0.011564555390789474, -0.002422056378552632, -0.006380764081578948, -0.004005146213289473, -0.00794062262769737, 0.01414054164342105, -0.01016237577355263, 0.003978143405131578, -0.03655277326578946, 0.006158242906276315, 0.004217046339078946, -0.008940671309210528, -0.00673433677186842, 0.010728261618421055, 0.005998754786184212, -0.012994214264868421, 0.01220040680802632, -0.010796953655434208, -0.006105011632500001, 0.008011191312894737, 0.006423354985394737, 0.0012142853823684213, 0.009146709284210528, 0.022887410982105266, -0.022682944046052637, -0.020356859009684213, 0.010394592805789476, 0.022593094030263154, -7750265294736841e-19, 0.010491877809868419, -0.00632094335789474, -0.00435166075344737, -0.0033312799659210527, -0.013687921215789472, -0.0021700710893421053, -0.009265354446052636, -0.007450454793684212, -0.01119890545223684, 0.01885215469736842, -0.0016829954880263156, 0.004660542770078946, 0.01614547219013159, 0.0012384379707105267, 0.0012953595593421052, -0.019026688374473685, -0.012046473879210519, -0.01890812402105263, -0.0013315808465131577, 0.011091345418421055, 0.021520818015789468, -0.005630902795947368, -0.0019751528094210527, 0.016361938930000004, -0.006861605829210528, -0.0028363347098684204, 0.008591381667894738, -0.009064190686052631, 0.0019356226038157898, 6169263489473686e-19, 0.005576595939605265, 0.01869662389342105, 0.001262012349342105, -0.005366806441447369, -0.016217105081578947, 0.0016831897417500007, -0.0018950253057894739, -0.002175052982236842, 0.015151523774342104, 0.009984357328157894, -0.008543766583157896, -0.00730858755781579, -0.005671754766447369, 0.016222894231578945, -0.006877592555789474, -0.00339728109881579, 0.002327833744078947, -0.007433236152460526, 0.003641817336996051, -22983315413157884e-20, -0.018579861956578948, -0.002013661149605263, -0.0012221983013157892, -0.005588193124592107, 0.0017740131994736844, -0.005087314752105264, -0.0024032324010526303, -0.021181957791973682, 0.015352973211842105, 0.0014077697809210523, 0.01886358938289474, 0.0034620092081578944, 0.001262707815105263, -0.016702094776315787, 0.0024528663467105263, -0.015399577423684214, 0.013716609889342105, 0.008007916322368419, 17873636657894727e-20, 0.012559814308552636, 0.004152347459210525, -0.007167261042105263, -0.010308009533421052, -0.0118209450956579, 0.0034850848647894755, -0.01689842138618421, 0.02312426354868421, 0.018107834585526318, -0.005113781234210525, 0.0036598878982894733, -0.002219674033289473, 0.010094555771578948, -0.004721280503184208, -4728102780263162e-19, -0.005741379793631579, 0.004688492021052632, -0.009298409537368421, 0.021306954543421058, 0.002625481324473684, 0.0021689222906578947, 0.0016470091790789468, 0.021918357023684207, 0.01859015762499999, 0.008736974258815788, -0.007575892959605263, 0.0012198560669736834, -0.013031221881184206, 0.005416682665447367, 0.014852952819736842, -27517017642368397e-20, 0.01096887469118421, -0.0013455180846052635, 0.022272436745131585, 0.0067934349073684175, 0.012959732387171052, -0.02075517668026316, -0.0064723936585, -0.0038070007211315794, 0.0012372250631578945, 0.0050306169430263175, -0.006763357246763157, -0.006772821312763157, 0.010125664042499998, 0.002038023320000001, 0.011549378190657895, 0.0029378070836842116, 0.010960937982500004, 0.010825824704473684, 0.0021591957962631583, 0.04206184268421052, -0.024262397277631575, 0.008255900677763156, 0.009695903923947372, -0.007390906788684211, -0.008087284358947368, -0.021996855926315787, 0.011287301983684214, -5568711708289474e-19, -0.014932725518421055, 0.009245778972302627, 0.0015213949119210516, 0.009132084528947367, 0.016006044472368423, 0.011636527018026314, 0.006784626309736844, 0.013307319816763155, -0.0027379106158421057, -0.0020452238106578946, -0.004009475287105262, 0.010760948439342109, -0.008745640049473686, -0.003213084865263158, -0.002908590922105263, -0.008224298627236842, -0.01243814725003421, 0.002076089559092105, -0.009891295528947368, 0.002955430833842103, -0.026389982763157894, 0.00307576746013158, -0.019563673766447378, 0.0016621273825, -0.008313485993421054, 0.004804929035789474, -0.00549750888473684, 0.00505214069705263, -0.011755459830263165, -0.0024296008852631576, 0.00875007432236842, -0.008075735610789475, -0.01105359596322368, 0.0039991457536842105, -0.010148718380263164, 0.0025960758788157894, -0.010566656651710528, 0.012436943196578952, -0.016535537697368412, 0.01290098068868421, -0.01656991388736842, -0.007831062019144736, 0.005940865221447369, -9759450793421052e-19, -0.008620581310184207, -0.003005893026447368, -0.002761302409605262, -0.0030793885886842114, -0.006974357054078946, 9721991617105264e-19, 0.010942189804473684, 0.002026653777631579, -0.012401945011578947, 0.0033469499360526318, 0.018924720229473682, -0.005991988553184208, 0.0033316007316315788, -0.015320591599605263, -0.02128828745542763, -0.0022622942237697373, 0.0069056783826315785, 0.004446302767763156, -0.016207595330789474, 11362097776315657e-20, 0.008954130263986842, -0.010221943235789475, 0.014461354018157896, 0.0028590932341973686, -0.010514913011447373, -0.015841919529473683, -0.01389901701263158, -0.009229765706842105, 2461921435526319e-19, 0.020577489130263162, -0.022800926136842106, -0.0015163221825394738, -0.013809464157236842, 0.004897803686315791, 0.018522811494736845, -0.009630460222828948, 0.011984547498157897, 0.0111937101125, 0.015270678807631577, 0.0019252811815789483, 0.014758101361842106, -0.005758524065263159, -0.0021391250729868427, -0.010472078178684207, -0.012900316256973682, -0.0014497102297763157, 0.006431885074342107, -0.003826420850657895, 0.004125123941578948, 7190557013157885e-20, 0.005760016457894736, -0.01029894582407894, -0.014202551836842109, -0.008429392661184212, -0.004542960022631579, 0.004390327258289474, -0.017841332352631578, -0.02092670811578947, -0.011721044171184207, 0.001154552708868421, -0.008358092435263156, -0.009767428120921056, 0.00617505359518421, 0.004506490673552631, 0.0020017606636842113, -0.00796983946092105, 0.020977802086842096, -0.0075353952266447415, -0.007463197555921055, -0.012128650817236842, 0.019736432668421053, 0.002261451146973684, 0.004720614210526316, -0.009998388954473686, -0.005624677788552632, -0.022545385379078953, -0.001583800878381579, -0.002379242887671053, -0.006442413411381578, -0.00695587538394737, 0.0011264698367105268, -0.0045705394853947385, -0.0015821324533815784, 0.023414226677631576, -0.0012724761923684214, 0.023761430540263154, 0.0029503868397894734, -0.0033352330858684217, -0.011512791865657892, 0.00981099949723684, -5708729797368422e-19, 8188937956578947e-19, 0.010694227110197371, 0.008592401465789476, -35825991868421067e-20, -0.004266100294447367, 0.005692018715789475, -0.0033002098638157907, 0.004866896994999999, 0.01000889828684211, 0.006752862654868419, 0.0026472819757499995, -0.005589931472697369, -0.017258877186842114, 0.01836197345605264, 0.003980058679868421, -0.0020851821997368417, -0.006682193140302631, 0.008638199788657895, 0.01154588990657895, -0.0014030509926710529, 0.00623447043604513, 0.016997480921671054, -0.0076195284961842105, 9118090571052634e-19, -0.01740562824342105, 0.001625513271842105, -0.012645379938157893, 0.010188843557894742, -0.012510250708026317, 0.0014163581344342104, 0.007640950823026323, 0.009030281375263157, -6778679552631581e-19, -0.021454867002973686, 0.001957897549473684, 0.001193311223026316, 0.0027351965483684215, -0.05114138984210526, 9931653628947367e-19, -0.0034956210430263156, -0.011831037061315788, 0.010289316701315792, -0.006878016126315793, 0.004890278758947368, 0.005483033461842105, -0.01275958679236842, -0.01331795716276316, 0.003143929424078947, -0.0022857318045394724, 0.007633577711973686, 0.0021747185855263158, 0.005520500721710526, 0.008252045688684212, -0.014708749063026315, -0.010071718517500002, 0.004989717453947367, 0.017077984349605266, -8273659215789473e-19, 0.005120420113328947, 0.007857212020657894, -0.007720276348289473, 0.002462438197763158, -55125038157895184e-21, 0.004356982750105262, -0.00700954478736842, 0.008855195414342104, -0.007593518517105262, 5683125496052636e-19, 0.006104346186842107, 0.0018523006100263158, 0.011868568778421053, 0.008818247002631579, 0.007355409463684211, 0.014110024566184213, -0.004139245012105264, -0.008042714513815788, -0.008814672356447366, 0.010348661143157892, 0.008645756135526317, -0.0039321516707894735, -0.018719250872499996, 0.016164309558789468, 0.011362069608157893, 0.012222493691973682, 0.009424688908947371, -0.00664402617118421, -0.007866664878289475, -0.012993650039078946, -0.018103016852631583, -0.0065906644863157875, 0.004789760346776317, -0.014935053199342104, 0.014902569211842109, 0.004785409491052631, 0.007345346444473684, 0.003159245409736842, 0.01312098370328947, 0.006301784642499999, 0.005022653047368423, -0.002849895648684211, -0.0032933022748421045, 0.004350993063026316, -0.007350343983026319, 0.010007334274736844, -0.0028172315381578953, -0.011997126834394734, -0.005281044011052631, 0.017256082294736845, -0.026231524928157893, 0.001482624986578947, -0.01504677556723684, -0.006961093627631583, -0.009158235009605265, -0.010464971171052636, -0.012205843889473683, 0.013581314933421051, 0.024057515715473682, -0.026571698318421058, -39512425210526327e-20, -0.008364490104342107, 0.01043953546486842, -0.006329244778157894, 0.00677121107763158, -0.006404679137105265, -0.008498417039605265, -0.011997726845921054, -0.00819236379276316, -0.008719842036447368, 2480567830263159e-19, -0.009615319662105265, 0.010179268672105262, 0.010257863497157897, -0.002203600034342105, -0.014915970727368411, 0.010107625643947371, -0.0016536920541710522, -0.006636945585526316, -0.016858044851315784, -0.020209110402631573, -0.007010765250131577, 0.0073754879921052625, 0.019676440628368427, 0.010058316429868416, -0.026224092562236838, -0.010421548158342108, 0.004843649796842105, -0.018334794059605263, 0.007321559153421053, 0.014406508708157897, -0.013035912961381586, 0.008222181527763156, -0.002566978908289474, 0.009497600043981577, -0.0056751013231578955, 0.004298258599210526, -0.00134152910618421, 0.0017198262138157904, -0.00527642314413158, -0.006738037163421052, 8391017913947374e-19, -0.011822055771453949, -0.0023647280209210526, 0.018581314182894736, 0.0013511696361842105, -0.008034561226052629, 0.0050400383831578945, 0.011289238419736843, -0.01018335548486842, -0.008891896734736842, 0.007739089927236841, -0.014787865826578945, -0.017835246043026314, 0.0056641722032894715, -0.0059957612642105255, -0.006282649575526315, 0.016645820401710514, 0.002203326760921053, 0.0022889429653157895, -0.008153908865789473, -0.009116433642894738, 0.014059073972894742, 0.006152197939947369, 0.01395997850157895, -0.012334291357763155, 0.017010570389868414, -0.0063333831828947355, -0.0025206653310921056, 0.006800531193421053, -0.004048019489342104, -0.006107880013157895, -0.011589549206710528, -0.0023016446209210527, 0.018917020458026318, -0.0018317876103026314, 0.007985371543710523, -0.009285482378157892, -0.007067705323684211, 0.011150805990789475, -0.009777598592105264, -0.008635949183289476, -0.004163104284868419, 0.010232138396315793, -0.0019257375613157897, -5739201986842089e-20, 0.013092055408684215, 0.01974871008065789, 0.005587073321842107, 0.025888940701315793, 0.016139226412631578, -0.0011026304183986845, -0.006448130678552632, 0.0013506662108157892, -0.00879462901421053, 0.0067748442927236825, -0.002999273877368421, 5861502590000002e-19, -31988263750131585e-20, -9557692903947368e-19, -0.005667702506315793, -0.006468547942684208, -0.017199129730526317, -0.019429718929210527, -0.003644407856578948, 0.004087335838671054, -0.003677765850855264, 0.007942120783605264, 6586344227631579e-19, -0.0037614600624999986, 0.0055129023461368415, 0.011244061396578945, 0.005010426876315791, 0.0072596023613157885, -0.008378387808157896, 0.01193223011842105, 0.002783704421578947, -0.0018955311381578942, 0.016495522016315784, 0.0010300654348684207, 0.0029166797853947372, 0.0019548181412, 0.0034482197978947357, -0.01597233675447369, -0.004172262047894737, 0.004349557685394737, 0.0057765581432894725, -0.017049438059999998, -0.004525430396052631, -28143429157894773e-20, 0.008926862911842108, -0.01706470510842106, -0.009343251894078945, -0.014551790916315796, 0.0037077234910526317, -0.024520926263157893, 0.005740144142368422, 0.0053956368143421056, -0.005766834186973687, -0.012353098134999999, 0.005150600744473685, -0.002591634655236843, -0.0034600672671052644, 0.020232129807894742, 0.0019706625393421055, -0.021094935969078955, 0.013562589856578945, -0.01982315960263158, 0.0022789787307368413, 0.0030350554696052627, -0.0023380354609868425, 0.0016429701249999996, 0.0013748243807894737, -0.011015212538802624, -0.01045923693026316, -0.010230515132368417, 0.0031865286891710532, 0.019525663493815786, -0.01229977110328947, -0.01392738180263158, 0.0047192255380921035, 0.009634271472381582, -0.0036637588399210516, 0.01367465738263158, -9074315167105264e-19, 0.009034615510460526, -0.013227085239526318, -0.008698134963421054, -0.005679745975289474, 0.016064328626710523, 6854882098684209e-19, -0.02409260117894737, -0.029390496973684222, -8429490286315783e-19, 0.017532396812105267, 0.003992892611842105, -0.015176699562894741, 0.017688143694565794, 0.015704753903289473, -0.006714242723157895, 0.006966373187026316, 0.014712872807894739, 0.0048426642788421065, 0.004560759092499999, 0.014764954930526316, 0.007755880210394735, -0.0063704605949999995, 0.013370230355131577, 0.006058873911578949, -0.007236065584644737, 0.02192650811447368, -0.0036055442649473683, 0.017262371172368424, -0.019675186598421057, 0.012352453031578945, -0.019395975741052625, -0.005476996759473683, -0.003981952255394738, -0.019128493134342103, -0.006420192784736843, 0.00663706127763158, -0.00931713626539474, -0.004438600155394738, -0.0074747220036842105, -3532221511315789e-19, 0.003786715305789473, 0.002143004024210527, -0.013259830103026315, -0.019481669799736843, 0.0063924609735921045, -0.006268689519868423, 0.011194401769210527, 0.014244597600921052, -0.009581357068684208, 0.015704279303947365, 0.002868509497368421, 0.009993456976842102, -0.009288659571184214, -0.00567008211111842, -0.0016774708461842105, -0.015881515857631583, -0.0031357240957894735, 0.009431347011250004, -0.02115866819605263, -0.002224235694342105, 0.016286955564605264, 0.007042988388157893, 0.002287434175, 0.010197640378157893, -0.005280943861578946, 0.0014105266302631581, 8359535263157892e-19, 0.0047502692026315805, 0.013299677349078947, -0.0023519426788157897, -0.004674174603421053, 0.018177119728907887, -0.0014176172173881575, 0.007134867282894738, -22741002690789458e-20, -0.022838398981578946, -0.003212089612105263, 2004287202631577e-19, -0.022176862091973677, -0.020671407409605266, 0.009063825494342106, -0.016635621425526326, -0.008275760027894737, -0.010347646235000002, 0.009041304183157893, 0.0051814241601315794, 0.005795941738552632, -0.006237753602210528, -0.004308292899078948, 0.027939477830263154, 0.0022927221325526313, -0.009122603172894738, -0.012685393528368422, 0.035720136647368415, 3721588992105262e-19, -0.015025574779078942, 0.0087486222525, -0.009074244906710525, -0.01173346431697368, 0.012090590483960533, 0.016366954857105268, 0.011179668721052633, -0.0073358287721842115, -0.007733899611315792, -0.003457529575921053, -0.006236338289078949, 0.005774385420526318, -0.018860930085526313, 0.01522345625828947, -0.012091792738157891, -0.004068704780263158, -0.004178824925921053, -0.013820312269210535, -0.01096366969644737, -0.004025642653947369, -0.024534325314078946, 0.006440052884473688, -0.016726629586052633, -3620708957894737e-19, 0.0047140585557894745, 0.0018035156026315793, 0.0048402487059210535, -0.00438187360013158, -6329667841710535e-19, 0.013023098627184216, -0.0015603331286578957, -0.0015727194086052627, 0.015044479001315789, 0.003913626584973687, -0.011406708371973688, 0.009567988548947368, 0.0048712744065789486, 8060304496052634e-19, -0.0027007557632499997, -0.007984334569848683, 0.0035786119902631594, 0.008549296575394733, 0.013448384334736838, 0.003980597008986842, 0.0027732479433552628, 0.0022548364651710537, 0.01305019627302631, -0.010885881758421052, 0.0046425705302631575, -0.006159144808684208, 0.0016908100748684212, 0.010177649750394735, -0.00148574499868421, -0.007758489989078948, -0.010132687943157893, 0.010328826282539472, -0.007675625043065791, 0.010875474622368417, -10961718381578953e-20, 2469314122368423e-19, 0.01456813955157895, -0.002258910603421052, -0.006317790170921054, 0.008751932444473686, -0.009791627398947367, 0.015247204259210523, 0.010811477365789473, 0.006444553805289473, -0.009046801008342103, 0.0030660862369736833, 0.020425601981842102, 1083259947368725e-21, 0.024182386267499998, -0.017303176044473685, 0.006597084168552631, 0.001865562837526316, 0.001028871313631579, 0.01472760354684211, -0.0075378481717105275, 0.010146784916184209, -0.007357307590657895, 0.015889662872500005, -0.0010280143740789473, 0.008057754063236841, -0.0017568669571052641, -0.004133698758421052, 0.007827215762368422, 0.03512832019999999, -0.00993780903394737, -0.004260993277631579, -0.008866919430526315, -0.012339414527631576, -45847830315789447e-20, 0.00838245042193421, -0.016904068641184215, -0.01032341292509211, -0.0179430145493421, -0.005017911380025, 0.004198584343289474, -0.012134608429342105, 0.02621189465, 0.021764919877236843, -0.0016967839548684218, 0.0064469595144736845, 0.0015113159294999998, 0.01449087951447368, 0.00908490776328947, 0.0021144275999999997, -0.0023710569351315784, -0.012429141851184206, -0.007313173065394735, -0.003165631556907895, -0.005191618546052632, -0.00811820481360526, 0.006263298302894738, -4727746834342098e-19, 0.01215529816414474, 0.005959134763223686, -0.003053097290263157, 0.0022509379385526307, -0.012437947575526312, -0.017363427211052634, -0.0044620109, 0.01702834882368421, -0.0014438623280263164, 0.007209018304078949, -0.005530027731842105, -0.006350269325728949, -1933061736184215e-19, -0.012560664186842102, 0.021907004355263156, -0.00368476647618421, -0.008714235420315792, 0.006064745458157897, 0.004239938750368421, -0.003381502998157895, -0.009450509392500002, 0.021473245165789474, -0.006664313856578946, -0.007727308110131578, 0.01755496648539474, -0.008046387513815787, 0.004243436594473684, -0.0018419240855263163, -0.002696314727236842, 0.00458863617605263, -0.009136615755921052, -0.01227240456026316, 0.007315492906276317, 0.001563661388157895, -0.005130049675394736, -0.002669057950473685, -0.0014561823650000002, -0.005081315489473683, -0.019940945634210522, 0.0020929494719736843, 0.004403723249342103, -0.03075529604868421, -0.008624309510289472, 0.01228930504118421, -0.009409504784473681, 0.0011323868934210513, -5501856157894726e-19, 0.011253276619736843, -0.005881537943934211, -0.009128014259078948, -0.002782203197434212, -0.00439761305381579, 0.018774566821052625, -0.011816556899605264, -0.019359096755263157, -0.009348714950473683, -0.0010719945900657896, 0.010479289703256579, -0.011939962278157891, 0.005665995433736843, 0.006774268349210528, 0.0034390900013157896, -0.008370486944868423, 0.017960268711842104, -0.0040098660762236836, 7006663912157889e-19, 0.0015448419175000006, 0.030164748171052642, -0.013288672209210527, -0.0194342324281579, -0.014333865537368415, -0.0010687613120394742, 0.006369927146184209, -0.02037403711921052, -0.0011595645836842109, 0.012291525279210526, -0.004659846724868422, 0.014351864156447373, 0.004539899117368421, -0.011356260933815792, 0.014434559298684207, 0.003388873248815791, 6091339384210531e-19, 0.009991929092763158, 0.019049285447499998, -0.007336658402000001, 0.01645323191407895, 0.011546428464605267, -0.003781113732894739, 0.01016362579592105, 0.003369438427763157, -0.012699591561842107, -0.027960629820000003, 0.006582685929197369, -0.0014268903726315791, 0.005638759550394738, -0.006515546567039474, -0.004676419364394737, 0.008950068268947365, -0.006762236009210526, 0.010658080675000004, -0.005891587223157895, -0.014665679521842107, -0.013644553504473684, 10368947013157792e-20, -0.007762898519210526, -0.01131838790855263, -0.00988497489276316, -0.0072114894752039445, 0.0027077467686842105, 7480073221052632e-19, 0.001175619631578947, 9005636573684216e-19, -0.017333229999605265, 5094909162236838e-19, 0.012029732047368418, 0.009794908618684218, -0.01157117548918421, -0.009239849182894735, 0.005636658962236845, -0.008340407034210524, -817503516907895e-18, 0.003921638921052632, 0.005545640947368417, 0.014569629413078954, -0.00717244047236842, 0.00835087193605263, -0.008531247800499998, -0.004064330462, 0.008101339765526315, -0.01701503037605263, 0.004955823044473687, -0.0022204531394868425, -0.01208521188631579, -0.002832061093026315, -0.002318643040434209, -0.007110677303947368, 0.001033564958947368, 0.027433827638157895, 0.010220588290263156, -0.007394786349605265, -0.006538531349210523, -0.0022718601860526317, -0.004229559157973685, 0.005938436034868422, 0.01048373804263158, 0.00986031018078947, 0.020336058257894734, 0.004668691585657895, -0.011039444343815792, -0.03195965501315791, 22211712236841965e-20, 0.004621380856581578, -0.0032872489723684223, 0.0022427985402631574, 0.009466410571710526, 0.017591113605263154, -0.004106379021052631, 0.006385616363748682, -0.0040017953515789455, 0.0012984135143552632, -0.0013681684519605262, 0.006150785983582896, 0.02349364751052632, -0.003507428290921053, -0.023245202525000005, 0.0073350322506578955, -0.012751762621973684, -0.009509772432105263, -0.011624634206315787, 0.008383111918289473, 0.008738430290394734, -0.0019306551646052629, 0.004987825924447366, 0.0067051984610657905, 0.010962145944078953, -0.006160766227763156, -0.01599381954276316, -0.005996254381473684, 0.013413042621052635, -0.016699554863157894, -0.00425797138263158, -0.002346582932368421, -0.003454997969210526, 0.015414278531447364, 0.0020144495526315796, 0.004778662968414474, 0.019607659189473686, -36090899996052645e-20, -0.008492139364605267, 0.007747498233499999, -0.0013514066389473686, -0.013021238629802628, 0.02135893455000001, 0.0050934569453947335, -0.005380931788039476, 0.0034462612061184213, 0.002471601183026315, 0.0018443146213815793, -0.005110344829342106, -0.014184218227105262, -0.0043937764976315795, -0.004010257807763158, 0.007609986475131577, -0.0017383072384999994, -0.008765348437499997, 0.006436899067289473, -0.005252098280921053, 0.0012666882906842106, 7271012838815791e-19, -0.012168801171973687, -0.006950649873815789, 0.006179354461447367, 0.008584705725921056, 6826743815789457e-20, 0.005478510884342106, -0.001656087406842105, 0.004353472659210527, -0.007852758323026314, 0.00774670264888684, -0.004548253065789474, -0.00872336939763158, 0.007497302493421052, -0.003937119212631579, 0.005084670148232898, -0.006804365856578951, -0.004160022079342104, -8716827518421054e-19, -0.0018917191575000003, -0.04542618686578948, -7962240394736886e-20, 0.005303945623421051, -0.0010489784114473685, 0.0040561710610526325, -0.005575023273947369, -0.014307941818026318, -0.005483095651842106, -0.0036865826026315804, -0.007326996465921051, -0.007258892687710523, -0.017002108826973682, 0.0026596006468421053, 0.007241479605526319, -0.006855145818736838, -0.007547068765263157, -0.011135433282763159, 0.015574704355921056, 0.015176253521052627, -0.006872319883815792, 0.0017937790452631581, 0.0012157494165789468, 0.007882637975789471, 0.003405427387894736, -0.004297595478375, 0.017864616917368424, 0.0030970381859210523, -0.0023354204692105267, 0.0017386867781578944, 0.02049815361294737, -0.00913410340657895, 0.01556748598855263, 0.0014741332142105261, 0.00888697265651316, -0.008259757955789475, 0.010162209150921054, -0.015258628212236844, 0.007913002543421052, 5999896474736846e-19, 0.010361211858157896, -0.005668571334210528, 0.009625429015263158, -0.0104467670125, 82077470868421e-17, -0.0016111464500000003, 0.011819657311842107, -0.010997043170815787, 0.026556267275000003, 0.006691072826710528, 0.020695954338157893, 0.003105390495, 0.007586750871802631, -0.006386726654605265, -0.02003319237539473, 4345854440394738e-19, -0.008994508450263157, -0.026183591028947364, -0.002199864392631578, -0.0028300363084210523, 0.008933973642105263, -0.004872168878026316, -0.010508434657894736, -0.030814126236842106, 0.003977499332947367, 0.003367798314605263, -0.008800812126184209, 0.03421133572763158, 0.036882231234210514, -0.009774976162894739, 0.014867376786052633, 0.01847335194828948, 0.004703114508157895, 0.004981278706842106, -20820300881578947e-20, 0.0023825047832894738, -0.006051949050131578, 0.005748253940526316, -0.048717287638157886, 0.006936276815973685, -0.00717120160088158, -0.0011371543828947368, -633878522763158e-18, -0.009472156436842108, 0.004011299037763159, -6579590755328946e-19, 0.006974676819078946, -0.005393841788815792, -0.004757979923842104, -0.0033050710856578945, 0.011350404267631583, -0.007076194413157896, 0.0017202756382894743, 0.012773173556842102, 0.0030848825621578946, 0.0027823394973684207, -0.00670719708276316, 0.005835784166710526, 0.006515324253026317, 0.008066022838947366, 0.001960170838894737, 0.0051619980871052615, 0.0026211382473684216, -5182459471052627e-19, -0.0027954785167105234, -0.004234536522631581, -0.009315601918947366, 0.008809953131578951, -6880571447368561e-21, -7682047319210527e-19, -4287664078947533e-21, -0.008450649188421052, -0.0035262061703947374, 0.012014457226315788, 0.00802163259636842, -0.014263569363815795, -0.001529443673157895, 0.0038201108919736853, -0.0021061006564999994, -0.006485662478921053, -4953983351315789e-19, -39382826565789427e-20, 0.0028122849150000006, -0.012065431929342112, -0.004557107439381579, -0.004202265546447372, -0.006648211306315786, -0.0026814599381578944, -0.004716990799535528, 0.011677914061486841, 0.0054311442510526315, -0.009687709625394739, -0.00401446957026316, 21303643315789461e-20, -0.004548820044210527, 0.001488740388592105, -0.008498280648552632, -0.009067142177105258, -0.001475207605789474, 0.003382969827236843, -0.003364108026184211, -0.015231927833026314, -25714068360526294e-20, -0.009678724665486842, 21494394868420982e-20, 0.0069928910540789455, -0.009154249508157892, -0.014927330287236848, -0.04244073076315791, -0.009253368699736841, -0.007564927833815789, -0.006217242748684212, -0.007667895968815788, 0.012352994166578951, 0.005073167429381579, -0.005000820531315791, -0.01045439083394737, 0.0015025571015789476, 0.0064443839557894724, -0.007921140097105263, 0.01298356292368421, 0.022927954959605267, -0.005738576246052634, 0.01002808020881579, -0.0017933789327631581, -0.0036308607342026324, 0.007852910432894737, 0.008723654298289477, 0.005285313737631579, 0.013029228591842109, 0.0033245363744736855, -0.00546107157763158, -0.01238937413552632, -0.014016715163947365, -0.00480338421131579, -0.017565224993223685, -0.0010297757147368421, 0.0190754480131579, -0.016528817848684218, -1554027478552634e-19, -0.0033909335259210555, -0.02275056143078949, -0.012455294898723683, -4695065194736842e-19, -0.019497075148026316, 29407749652631535e-20, -0.004932486893276316, 800515078947368e-20, -0.019466739034210534, 0.0011483287201315788, -0.006102988706842104, 0.004115763767592106, 0.004177756370252632, -0.002618433127763157, -0.00537044665544737, -0.011829460742671057, 0.00692578045657895, 0.006913495407763157, -0.0012394369451315791, 0.004177181062190789, -0.004855147448592105, -0.009354103443947366, 0.008475817234342108, -0.0060853426540789495, 0.017770833389999994, 0.010468942911184213, -0.006522560685973683, -0.015092426563342105, 0.008636236548684206, 0.004441229959605264, 0.005320611943289475, -9800074276184207e-19, -0.010191143523026322, -0.007796377074999998, 0.005595688935526317, -0.0016283605736842112, -0.012121330430263163, 0.008727131922578948, 0.002284515743368422, 0.002682018403026316, 0.02112667354078947, -0.013087226411842108, 0.011961740068421057, -0.0029621327447368426, -0.00711086599605263, -7157445806315789e-19, 0.00296389472118421, -0.002106245437236842, -2060961381578952e-19, -0.0023762942430657894, 0.0067748971048684214, 0.02305358949394737, 0.024209113952105267, -0.0010323672338157883, 5835666469736843e-19, 0.0011928865788157893, -0.013926641433421053, -0.0010454462015131592, -0.008992499685921052, 0.005833304399473685, 0.007247240086842105, 0.007005285494078946, 0.00532119499868421, -0.002409817022763158, -0.009118484332407894, 0.00902553582131579, 0.003644393953815789, -0.001458669926578947, -0.007759722557236839, -0.015974711869276317, 0.005593415395263159, -0.00699891096894737, 0.013671992413157898, 0.0030071592296052633, -0.00725996611631579, 0.00831834310973684, 15080351578947707e-21, 0.010492338298289472, -0.011587350163157897, 0.007662332826842105, 0.008755792813026311, 0.007074787369210524, 0.01825972633684211, 0.005628270758078947, 0.013933462579342108, 4695127519736841e-19, -0.016538577678947376, 0.013688757842105262, -0.00958296806763158, -0.01084689514210526, 0.004655695267894736, 0.002764839804828948, -0.008966435890710524, 0.01818742012328948, -0.002021167613421053, 0.011088005707894739, -0.003949641440789475, 0.016206056167105264, -0.018271099290000006, 0.012128778174342108, 0.016409871427894733, -0.005132905442789474, 0.013977325583552627, 0.0027061513397368423, -0.030432116805263153, 0.009202131592500001, -0.005219011863552631, -0.02768622942105263, 0.005146511143078947, 0.016741514684210528, 0.008617631309868421, 0.001446558946578948, -0.010973319831578945, -0.002393318402447369, 0.0025146223098815794, 0.002058704305, 0.009670727197499998, 0.006972026925486846, 0.007941592818026316, 0.006313998498157896, 0.004550358204605262, 0.019503475739868426, -0.00808706035526316, 0.0014521665658289477, 0.008814657770526316, -0.0034991419792894736, 0.001152647225789473, 0.0035165233944736848, -0.008015521834605265, 0.0030662299349999986, -0.008316208095789476, 0.0018460274468421055, 0.010874037769736845, 0.0019301458946052628, 0.014981398493289479, 0.0063040013951315785, 0.0011182811667105259, -0.001531185306381579, 0.007286755069710524, 0.007252432990381575, 0.005447569480263158, 0.005672717215565791, -0.011183678003684212, 0.0010281094409210528, 0.0037040489348026313, -0.018558228386052637, -0.0024118456417105264, 0.001912976863157895, 0.004824422551335526, -0.007085397379605263, 0.010146420386052636, -0.012797370635526323, 0.005280684883421054, -0.007430231397421052, 0.0012657216987105263, -0.003414122816315788, -0.001953577547894738, 0.004944337450526315, -0.009499839262763153, -0.007726497248157897, 0.02043591631578946, 0.005235241476657896, -0.016428867193421043, -0.02316521289473684, -5283661032894735e-19, 0.0039097042727631575, -33895851092105274e-20, 0.01083217157236842, -7426432255263161e-19, -0.00391929611618421, -0.007359749506882893, -0.0035571319606578938, 0.012559667453289472, 0.0058923027007894745, 0.015785403049999997, -0.013460644672368413, 8476099292105275e-19, -0.0033159500932236833, 0.008975023673552632, -0.01474813875868421, 0.01023825899394737, -0.01589566984736842, -7458934167105253e-19, 0.015296658677631575, 0.008350472782171053, -0.01303794148592105, 0.009825855495394734, -0.0031653390423157907, -0.0023992715984210533, 0.012867784544868418, -0.007730846508157893, -0.008233608065789473, -0.00578186875105263, 7660654657894731e-19, 0.007309484258749999, -0.004728002686184211, 0.024414807685526316, 0.07103057530263161, 138350805131579e-18, -0.0227730847868421, -0.002000239483157895, -2523412961842105e-19, 0.0036002593248947363, -0.00960461145763158, -0.014719047412763165, -0.010525172183026317, -0.008946292160657896, -0.00487614558486842, -0.015348885583552638, 0.005484280077631576, 0.0047399032012368425, -0.011332118468552635, 0.018375535672368423, 0.0028248364129736837, 0.002669773003710525, -0.013733811623947365, -0.012085463925657897, -0.005202895044802634, 0.0011071545386052636, 0.002822448957105263, -0.005775769501039475, -0.007958374655000005, -0.012961527270999999, 0.008736424775394736, 0.001623934084342105, -0.0029857376405, 0.006539750386447366, -921088730657895e-18, 0.01011317570105263, 0.004816758724236842, 0.01006797531394737, -0.024919923669736846, -0.013252434965131578, 0.004975805359868419, 0.0028436151710394737, 0.026767861371052633, 0.01679312495263158, 0.0029180558214473695, -0.01334025122631579, 0.006395531258157895, 0.012167909879868426, 0.0010437845743947376, 0.015899900866315795, -0.015891970886315786, -0.007016795418947369, 0.005720414304868421, 0.014279509605394737, 0.011842180225789475, 0.012174502878815788, -0.004032991572842103, -0.01191846249868421, 0.006569720230394738, -0.007758679420881577, 0.008243021787499999, -0.0056768207752631574, -0.010259304986710528, -0.005975154729605264, 0.022218811560526314, -0.01284212495, -0.0043886743385526325, -0.007587261113289475, -0.00100997453736842, 0.007466683218736842, 0.0017474622250000002, 0.011411024255263157, 0.007287669592105263, -0.011071793518989473, -0.007791523718026317, 0.0024424171717105266, 0.010883432589473684, 0.017893625253684212, 0.008674725273447368, 0.00948412372276316, 0.004439929401005265, -0.012966921410526314, -0.009952035897894734, -0.009481836221250003, 6631337719736842e-19, 0.013784739155921056, 0.01274559315868421, 0.015312255263157895, 0.014739994169736837, 0.001961665102973683, 0.016666361813815787, -0.01601210714707894, -0.003862630162710527, 0.0017456178976315803, 0.002383359211842105, 0.005658344708289475, 0.02028012731447368, 0.0038586854298289478, -0.003930425682236844, 0.005947570116842103, 0.006645788041973682, 0.00593962558863158, -0.0055098527475, -2709300878947366e-19, -0.02526451096052632, 0.0034957235959210526, -0.004797192927499998, 0.010852291108092103, -0.0024250138515789464, -0.008193180311052631, -0.006060304734868421, -0.005015898619736843, 0.009915213199078949, 0.0049576433317105265, 13137401934210517e-20, -0.011906290325000004, 0.005487915484868421, -0.0026353010490789476, -0.006053524171552631, -0.01679510672763158, 0.0019228737013157898, 0.01702610227171053, 0.007407213732763154, 0.001119691041315789, -0.0041095490676315806, -8301038464210527e-19, 0.0033998062114736845, 0.010597575788947365, 0.014257269136842107, 0.007372944618421052, -0.0035281079432894734, -0.017203723107131575, 0.004068165850842105, 0.00382046129631579, -0.011138788382368418, 0.01527541427763158, 0.01094105444394737, 0.003186118735263158, -0.011153858221842101, -0.001682062516447369, 1102902368421087e-20, -0.007634609815394738, -0.0024121695576315794, -0.004676494936184211, -0.004374885159342105, -0.004125291510394737, 8512605788947367e-19, -0.015911860113236847, -0.01630071632578947, 0.0075893821925000025, 0.016570409282894737, -0.0028060973136842106, -0.010812139536144735, -0.0035154795997368424, -0.007599472084868421, -0.0027118450077763152, 0.003790211149736841, -0.0016624428627631574, -0.006025105557500002, -0.00271212489868421, 0.004819238931578948, -2838972343421054e-19, 0.008508885079999997, 0.0037412741409736843, 0.003480958837938158, 0.01989113539539474, -0.007170555643552633, 0.007131082274999999, -0.00324891509618421, 0.017624990426578946, -0.008696587564605262, 0.009625076661710525, -0.003385572580052631, -0.0011940798148684204, 0.013382737070394736, -0.0019341717852631578, 0.014078404609210527, 0.006157531654513156, -0.00436843442881579, 0.010804814319078945, 0.016877812977368414, -0.004866282633157894, -0.004019908407105263, -0.008622002943026319, -0.001156913919736843, 0.00860937810460526, 0.00854736410960526, 0.006645876394210526, 0.006044397847105263, -0.0029129494269078955, 0.005728795454605264, 0.003868690374868421, 14415561068421056e-20, -0.011550837929210526, 0.0024273528732894744, 0.01675736555552631, 0.008618001551842105, -0.009086696278947369, -0.0019255664260000005, 0.017823474286842108, 0.023852092268289476, 0.005640211945657894, -0.0157103212696579, 0.002671248446973685, 5732126974736841e-19, -0.003747782739723685, -0.015167234880263156, -7942613815789339e-21, 20631670931578946e-20, 0.005739634929078944, 0.008089517185263155, -0.005618019369960528, -0.004716671923026316, 0.002440650008157895, -0.013887452536578948, 0.010245098745394738, 0.011824351372763156, -0.005547870031710528, -16388543065789472e-20, -0.0074466632465789466, 0.00498810127631579, 0.015039879665789478, -0.0040669246943421085, -0.005869341766447369, -0.024218201709868412, 0.001695024713552631, -0.005041553392631579, -0.00783228454736842, -0.005132145636842107, 579431247268421e-18, 0.0026811771932894746, -0.007146641212236844, -0.008457516277105264, -0.015692255188223682, 0.024690377132894726, 20765250613157882e-20, -0.0020539644646052624, -0.005768370673684211, 0.003702322850921053, 0.004201434479473683, 0.0028723328136842103, -0.014360589550263161, 0.003967806877105263, 0.004476002342671051, 0.004944308020131578, -0.01157276546618421, -0.009082047036973684, 0.0036693403972368425, 0.009826728072236843, 0.0074656336861842094, -6485088782894734e-19, -0.0014051343403289473, 0.007369758026842101, -0.010425479788289477, 0.01821328323157895, -0.012023113507986844, 0.001740522146710527, 0.005332594062894738, -0.001378770888421052, -0.015753834223815794, 0.0076369660996052635, -0.014926969834157896, 0.0038507784668157883, -0.0041886614165, 0.005354455710657894, -9931518065789487e-20, -0.002756159138157895, 0.014061157835657897, -13951124842105257e-20, -0.013132667226578947, -0.0019348305806052633, -0.009907254651973684, 0.009314450074276314, -0.006995864365000003, -0.004312180836447369, 0.004297729036710528, 0.0047553823486842116, -0.00931211325394737, 0.021702308997368424, 0.007112765311718424, -0.008150883757249996, -0.0015760545419210529, -16017972894736844e-20, 0.0012709232195131578, 0.008913342906302628, -0.009902096786842104, 0.03158665600926315, -0.0043072190056578944, 0.007661704021052634, 0.004888625593815791, 0.003962992540921054, 0.004328961708421054, -0.0062252458030263155, -0.0073411886288157905, -0.002077252053605263, -0.011778288789210526, -0.00824901193289474, -0.0036174059680000002, 0.008596170780328946, -0.007529505605394737, 0.00450591202768421, -0.016162284833421053, -0.006285099551315791, 0.01741020744342105, -0.004753392869697369, 0.004862889815131579, 0.008373598259, 0.007595550645657895, -0.007107993389473689, -0.008475462659473682, 5595674320263158e-19, -0.0034365798056578915, -0.016078184318421052, -0.010819015256052633, -0.0018932811597368428, -0.0060824286468421015, 0.009014217587631579, -0.005298673378684211, 0.0020203203051710524, 0.0023555486237763156, -0.011414600681763159, -0.029000318375131576, 0.012605560375, -0.015203555485526316, 0.013647403227894738, -0.008804857755526316, 0.008642128292289471, -7019206473684211e-19, 0.028421054261842115, 0.010750185311184211, 0.004273382298328947, 0.014962174191052634, -0.0091029727825, 0.004545577043947365, -0.005067943168815789, -0.008576309225131579, -0.009371516520921051, -0.003953041012539474, 0.0026335486594868413, 0.0010443595075789475, -0.006137380078947367, -0.019068207819210526, -0.0066171946843947395, 0.0154603859943421, -0.03956156613026316, -0.005423286051376317, 0.0064764647446052615, 0.017917068601973684, 0.018834929819078944, -0.023795076729473678, -0.005232680938421053, 0.007063256785526317, -0.002471332747368421, -0.005540072479078948, 0.0030247992273684196, -0.041372428210526314, -0.022792676082894738, 0.01496056775592105, 7162006171052637e-20, -0.0054049346089473675, -5917285729473686e-19, -0.006140541838736841, 0.01165498020263158, 7520184688157894e-19, -0.004048719246052633, -0.004093513149078948, 0.001113782621578947, -0.00515289844513158, -0.014532121503749999, -0.005462963103684211, 0.002013934241710526, 0.006934004597374998, 0.011849665684605267, -0.02845128821973684, -0.0027645604678947374, -0.029641802678947365, 0.005846543234157898, 0.004001273209868421, 0.009660376192697369, -0.01431830397552632, -0.0034636234957236833, -0.015780388346842117, -0.0061515257567105255, 0.011677517784078944, 0.011294756013947365, 0.009406988080263162, 0.02362260060394736, 0.006315555671052633, -0.00983715779947368, -0.012793336953947368, -0.010380582411513158, -0.005019749015, 0.004049450225131579, 0.017717702139473684, 0.012014558753947363, -0.004216072575789474, 0.012309840076065792, 0.003926167156578947, -0.011685566748684212, -25353602302631577e-22, -0.005299348902368422, 0.007730379013289471, -0.0027699679941184216, -0.0069104686293421065, -0.002654266115921053, -0.012859640121842106, -0.0107146154105921, 0.004399860249078947, -0.006205988169868421, -0.002287691709381579, 0.0022477117532631575, -0.011032372216710525, 0.0038386147140789476, 0.017001313835526322, 0.003409522446052632, 0.0038818556153947365, 0.0010723420983289483, 0.007902039610460527, 0.0023776093863157894, -0.006922669011657895, -0.012493596986842102, 5051128443421054e-19, -0.003519559938197369, 0.009428645297631578, -0.0010605874422368415, -0.008557814389473686, -7813989881578948e-19, -0.008372406573684214, 9731762513157829e-20, -0.008460361298552634, -0.0022174336363157904, -0.008624776876973684, 11917679249999991e-20, 0.006416730669828947, 0.008520198330263157, 0.012873614050657895, 0.011955042275394739, 0.01041146601725, -0.007033908750526316, -0.0016643551606578938, -0.011975207748157898, -0.010176406554210527, 0.0046722559355434215, -0.019248556189473687, 0.012035626013513158, 0.005876074411052633, 0.0023601008795000006, 0.0017393916595131586, -0.006760177633552631, 0.0037472353740789477, 0.08577118239473684, -0.004266319282368422, -0.0071308153913157875, 0.002913963492236842, -0.011218220720921051, 0.0016349006751315786, -0.0019050253921052633, -0.003319563322894737, -0.004499976557500002, 0.009833074842368417, 0.007605858973947369, 0.005772069280921054, -5503060188947367e-19, 0.013013069021578944, -0.0034565342047368423, -0.01143237421848684, 0.01110795669013158, -987561984539474e-18, -0.006423849459473684, 0.00217356449263158, 0.0010567873492894734, 0.014532239263815788, 0.010447370052631582, -0.00759626205513158, -0.0022266032110526313, -0.008538287243881578, -0.01131031077157895, -0.015313536264473682, 0.005158005157763159, 0.0030549536626315785, 0.004764115755657894, -0.012034718590789474, -0.006626763940263157, 0.009110119795921048, -0.002301413071921053, 0.015578638884210528, -0.005167726482500001, 0.02117604996315789, 0.008285337067996052, -0.007844231455157892, -0.01983585482868422, 0.008469638907236843, 3119132776315813e-20, -0.001960619750092105, -0.0174250582075, 0.0024971948229210532, -0.009844892709210526, -0.00997894878157895, 0.008923550396710523, -0.015006534729868421, 0.010365114785526321, -0.01453934758578947, -0.003352099966710527, 7359328694736843e-19, -0.010912618383552628, 0.00553644026263158, -0.0020364845940789474, 0.01638792804421053, -0.002702654283236842, 8317131059210523e-19, -0.0062164165, 0.01416901248881579, -0.001157289313026316, 0.0015120998847368426, 0.018197012598026318, 0.018230856374999993, 0.0013759326027105259, -0.0022414605464473685, 0.010594263889473684, 0.0032048177697368407, 0.0015967663478421053, 0.005898981746447367, 0.0026566908555921056, 0.007526576979868416, 0.006680355165921054, -0.010573069984868419, -0.0037745313918421054, 0.005754974540473685, 0.008721350822763157, -0.004220488521921052, 0.007543852856315786, 0.002001725290789474, 3765012028947365e-19, -0.005974376834473688, -0.007132448870578947, -0.008149476120263158, 0.020858640447368428, -0.0026150683706578945, 0.0025981752977631586, 0.011055772810526318, 0.006417484732236842, 0.02127346352631579, -0.010789793555, 0.0018354179835526315, 0.01635032267421053, -0.00914016103246053, 0.00721719150447368, -0.011749975486184212, 0.007983058785, -0.0025599285438157905, -0.02525250945921052, 0.016565419086578947, -0.0049727678667105275, 0.016954254666710526, 0.0072252290184210526, 0.00663506177881579, -0.016708790731052633, -0.019179279734736834, 0.0036575822153815793, -0.0036278681642105243, 9362055535526312e-19, 0.003667399366578948, -0.005599063442105262, -0.001710235229973684, -0.0020441094883684213, 0.008895651518289471, 0.011197020705263155, -0.0096675727705921, 0.0048109815131578935, -0.009713690278157895, -6161499026315836e-20, 0.013903376549342109, -0.0037505515171052627, -0.004402282192631579, -0.00803135064986842, -0.0022901599207236834, 0.0028172990298684225, 0.005441962186973684, 0.008157506930394737, -0.005246615045631578, 0.0017373259923157893, -0.011001224905657895, 0.0012983470696052632, -0.01309617162052632, 5287650694736846e-19, -0.012678124126447364, -0.004449979991315788, 0.013012943638552632, 0.002311609178421053, 0.00852208751355263, -0.0021326908651973695, 0.006498695877500001, -0.012073736925131582, 0.010822192646592104, 0.004732820625263159, -0.003690172558684211, -0.009818942454868423, -0.00727969328513158, -0.01263686636618421, -0.003183486671921052, -0.009880075140921055, 0.002198814761578948, 0.013470662695263156, 0.00607287450868421, -6002962989999996e-19, 0.008114174997552634, 0.011275753842105262, -0.005673379224736841, 0.0031662297654605257, 0.0028777117961842117, 0.008016936837894739, 0.0017901154897368426, -0.006646555544013159, -0.008096424208289474, -0.006122036452894737, -0.0057617752151315794, 0.0011516110418421056, 0.0033034063114473684, 0.001144898634342105, 0.015016336455263162, -0.005089427256578948, 0.011095485811210526, -0.01487947794381579, 2754231664473685e-19, 0.01434458742828948, 0.004142680879736844, -0.008173420285131577, 0.009047083722894741, 0.006638912060921054, -0.010928462396842106, 0.005584001594493421, -0.006758851203157896, 0.012239943157835526, 7178325472368416e-19, 0.004164529241644737, 0.006919659793157895, 0.0018766501502631577, 0.005851904381052632, 0.01649575659144737, 0.018543284467894737, -0.004570943860131577, -0.014199454217763158, -0.004522597645789472, 0.01323128955736842, 0.009430725228289473, 4302028357894734e-19, 0.014124286351315792, 0.0014682764307894735, 0.014347456733684217, -0.004273947661315787, -0.005397340513289473, 0.004777006242105263, 0.0014340101824815783, 0.004214361838684211, 0.004253698227473684, -0.005495129646250002, -0.004944426877631579, 0.001132264872631579, -0.025759664019736846, 0.01343974873236842, 0.007074848766842105, -0.017592669572894747, 0.0017375639004473685, 0.015513802537763154, -976651714342105e-18, 0.006099546812236844, 0.009297965083289474, -0.006545829302368422, 0.002187739041315791, 0.003335506018026315, 0.0021257748652631593, 0.007083832225526319, -0.00821666152184211, 0.008502307442157893, -0.0012726394867368417, 0.003975927348552632, 0.005120596614473684, 0.005579327967368418, -0.0076789852039473696, -0.021034838578947373, 0.007545610900131577, 0.011339017010394737, 0.01220300189605263, 0.012834558334486842, 23943841328947444e-20, -0.012060543739868423, -9013390900000001e-19, -0.007001447220394739, 0.001807072239342103, -0.007920413789473684, -0.014183284144078948, 0.0032435898167105224, 0.007661070786578948, -0.009576734622368422, -24735532930263165e-20, -3279625464473687e-19, 0.00592114891631579, -0.0031360228920394744, -0.004423669705131578, -0.006236715882473684, -0.01428929095, 0.0012041522547368432, 0.009992463885789478, 0.014660581713355257, -0.012100258024789475, -0.0041604909128947366, -0.0022737396475000005, -0.005318546005078945, -0.0019765347979631576, 0.001943228074394737, 0.01009488755486842, 0.006165831676578947, 0.0018300388325000001, -18122561157894723e-20, -0.020566950382894744, -0.006887413951872369, 0.004043231116447368, 0.014405956009276313, -0.004649199056078947, 0.016667253566842104, -0.012720103426315793, -0.004804016313157894, -4011695289473683e-19, 0.004846170921052631, -0.0016384565850263162, 0.017794608296052634, -0.007291804857605264, 5409149652631579e-19, -0.005412328068421052, 0.014002738125526317, 0.007782216855789474, 0.03379361171052632, -0.0037693036657894725, 0.006207439997131578, 0.011665550201763155, -0.002727257783815789, 0.006404820097236843, -0.007757448749342103, 0.00321114124381579, -0.005974114834342104, -0.017798501374999998, 0.008996167303710525, 0.004107372101447368, 0.007539583035263157, -0.0014233594372368415, 0.00381117836013158, 0.008256078101842102, -0.0018291068210526304, 0.0019358302312894743, -0.010674378317894738, 0.0065658293554078945, -0.007450003366710528, 0.004437219244605264, -0.024618154752631582, -0.015038326359078957, -0.00463826566381579, 0.007930537400131579, 0.004519121789078946, -21704581684210515e-20, -0.007922356677894737, -0.011271936131578942, 0.006213316302368421, -0.001811201335361843, -0.06298805399342101, -0.003931348754999999, -0.002375323733289475, 0.006955065128421053, 0.011551465797368423, 0.005049561330973682, -0.004226440632631578, 0.001415731466381579, -13998377784210452e-20, -0.0011909930659210531, -0.002045448113026316, -7439456209210522e-19, 0.008089150971763161, -0.007385254353552632, 0.0017794121346052629, -0.0021466796694736847, -0.007901907795526318, -0.006739856069736841, -0.0031380352994736845, 0.0076046099585000025, -0.011527594351315795, -0.0020396639011052635, 0.001525548389342105, -0.006094216933684211, -0.0014722651828947364, -4518903077631577e-19, 0.007140101749473689, -0.011676537059210524, -0.019966328755921053, -0.0024167389288157906, -0.008110973655078945, -0.010138389487328942, 0.004652459228947369, 0.003344180307855263, -0.00269698604401316, -0.006219439502236842, -0.012621290809263159, -0.010441855874605261, -0.001525004825868421, 3106502772368417e-19, -0.02632054453157896, 0.014578032460263153, -0.004134980474473683, 11510845465789741e-21, 0.0062397942408684215, -0.0063305206980263165, -0.0032845915709868406, -0.011880825206578951, -0.004127339640789471, -0.005412744576842107, 5791435789473685e-19, -0.005604593690263158, 0.01140999920789474, -0.0035105268881578944, -0.005644377784736843, 3777405411052633e-19, 0.006655294573118422, 0.012310034789868423, -0.012314680914342105, -0.004660671697236843, 0.019227642512499997, 0.012370556660526312, 0.0018540437435131578, 2843068044736842e-19, 0.0029149404551315795, 0.001349117293078947, 0.004231145650921054, 0.005014896011447368, 0.0030759806921052636, 0.002634996195394737, -0.02146838184355263, -0.023354627235526327, 0.007463801508881578, -0.044740355858815806, 16885995480789474e-21, 0.0018187605642105266, -0.0028608081773684206, -0.019586663092236847, -0.005291358396439473, -9306446955263162e-19, 9336062423026312e-19, 0.00640387573013158, -0.05765600515921052, -0.0010193050008289466, 0.0029813614198157894, 0.0017824373404078948, -0.006496215178552631, 0.024087691802631577, -0.010348639678947369, 503021751973684e-18, -0.009403571023947366, 0.012732326389460522, -0.005403565589605263, 10905120605263125e-20, -0.008504000929605262, 0.006370600620263157, 0.018242643109210525, 0.009379113575526317, -0.01214825572302631, -0.0015711109278947369, -0.0020749150806842107, 0.0051656843653947355, -0.015150247375526317, 0.0034633881215789457, -0.0023204803727631573, 0.0013554988172368421, -0.00916673603631579, -1386599248684208e-19, -0.011236653686842102, 0.01057515615355263, 0.0038270946907894747, 0.0032054099676315792, -718647992236842e-18, -8057763245394725e-19, -0.004644138220394738, 5584668676973688e-19, 0.004134472640657893, 0.003242992475139473, 0.004408569986710524, 0.006886769568421052, 0.0022040188868421057, 0.004717420271184211, -0.010944220514868425, -0.01496134418960526, -0.004904572456118423, -0.0029349479123026317, 5269890798684209e-19, -0.018642433568684214, -0.0014636822255263157, -0.0032874282358578933, -0.005220993034210527, -0.001006430675144737, 9930258057894734e-19, 0.01337606780197368, 0.009240478431184211, -0.01117918292618421, 0.015037270521710534, 0.00705424925763158, 0.004022910573421053, 0.004511536920394735, 7300990415789472e-19, 0.0025198337564868423, 0.004174408284605264, -0.006822327408157894, -0.012508884771973679, 0.0018977242146052643, 0.00169175941868421, 0.00914618583809211, 0.00616711017276316, -0.016066297167105267, -0.007600618392368421, -5936514901315801e-19, 0.009191851769736843, -0.01048495533644737, 0.0039003314751315785, 0.010082093744078946, -0.02150961690736843, -0.003076141387631579, 0.01795051239210526, -0.0016097397646052626, 0.006738568165394737, -0.01008712938552631, -0.0023239680332894736, -0.0023542645427631586, -0.007415254536973685, -0.0017370888950000002, -2142969864736847e-19, -0.0019526079594736842, 0.004812759554289475, -0.003177666265657895, -0.010193668303157894, -0.008950753272763155, -0.012276084238157898, -0.013801354708684207, 0.013260181611973685, 0.005137841782236843, -0.005623419413947369, 0.002380635332763157, 0.020261579571842093, 0.0025086264638157895, 23285078407894738e-20, -0.013896984565526316, -0.002813308350394737, 0.006464827561842104, -0.0017387912031578952, -0.009293710947368423, -0.002234433483973683, 0.0029236971019736837, -7009606947368418e-19, 0.004321338025526315, 0.011410774383157896, 0.0019641712277631575, -0.0032173488855263156, -9017514617105258e-19, 0.02536431413421052, -0.0036204208476315796, -0.0045066121440394714, 0.007895695332842106, 0.01375771906894737, 0.0016665629351973685, -0.009256044322434214, -0.010135795456671053, 0.008737079069078947, 0.0034428967317105263, -0.010638219975263161, -0.004573688986184211, -0.008506904400102367, 0.0025543856753947364, 0.004874314954210525, 0.010396809270921051, -0.0018452750817105265, 0.01090056822052632, 0.02098761590078947, 0.009814058689144733, -0.0029276505494736844, -0.010893099969697373, 0.01975842706710526, -0.010948870352592106, 0.0058412445308815815, 0.015515693848684214, 0.0020952677422368424, 0.008907295886842106, 0.00873527318223684, -0.006631097216973685, -0.01977647116223684, 0.010740387438947363, 0.008736050202499998, -6532119030263152e-19, -8522597289473685e-19, 0.007881729391184214, 0.007262564786315789, 0.009642556828684206, 0.009887033669644734, -0.00506204858236842, 0.00914667588671053, -0.005646160281184208, 0.0015682480643947365, 0.007187644667573682, -6413499337828947e-19, 0.0014132899411842103, 0.0017755321165263149, -0.007160940067000004, 0.012367878591973682, 22851084263157844e-20, -0.006308410619078947, -0.0015791580263157898, 0.00442315712593421, -0.006452675031118422, -0.009020969568421053, -0.011030041889539469, -8780194159210523e-19, 9627984798684214e-19, 0.00363151196994737, 0.02183342311710526, 0.02024013596973684, -0.012353824388684213, -764319970657895e-18, 0.002105059234210527, -0.0014566305570592104, 0.002706323287631579, 0.00607090862407895, -0.009545597578157896, -0.004247753485894737, -0.0176261248381579, -0.0031491103884210524, -0.003108941359539473, 0.015593445543815788, -0.04427306710881578, -0.0020792380994736847, 0.011489951907105264, 0.006966976375342106, 0.0015082572486578947, 0.007737702031710525, -0.00655683788473684, 0.007863643000657894, 0.002917634675013158, -0.004152638770789473, 0.005619210159473683, 0.005586618189342104, 0.010026886728421051, -0.004179918709473686, -0.005501686800131579, -0.00604261921421053, -0.0071300491338157895, 0.014459129589473686, -0.0037379425788157897, -0.0020940462386842117, -0.00957774127394737, -0.03357854765131578, 0.025668219275000004, 0.022622876078947373, 0.0022629713582894718, -0.0026858775323684216, -0.0017051095038157894, 0.003815842962894737, -3828872972368422e-19, 0.0026066615468157894, 0.012387053006578948, -0.006318214374868418, -0.007521578666315793, -0.01284997625631579, 0.012826012949078947, 0.0010223195625, -0.011615881295131579, 0.0022139161670263153, -0.002016348744078947, -0.0028064120447368417, -0.015572008834210525, -0.0019618904405263164, 0.00544554776289474, 0.009761993845921054, -0.012984902144736842, -0.014145811457894734, -0.008978529723144736, 0.004056017691315789, -0.011844596710394733, -0.0059587758225, 0.007508870492105264, -0.005443937433289474, 0.002935879441578947, 0.01486225123960526, -0.005532202826052629, 0.005462015192631581, -0.02565744589868421, -0.008383098813815791, 0.003647495577368422, 5357671111842098e-19, 0.01166961910486842, -0.006377186925131579, 0.0127008994825, -0.009436918356578944, 0.0020323967420921053, -0.008456428355526319, -2027747211842104e-19, -0.0030937144914473694, -0.011085721413078948, -0.009645654179210527, -0.014846991478947372, -0.0035684288476315797, -0.011654160063684214, -0.01581150187026316, -0.016840036789473687, 0.013057866414473684, -0.008234539141578947, 0.0053163960105263195, 0.020490004785526317, -0.00960410656486842, -0.006657243668236841, 0.010736420357105264, -0.01748494961973684, 0.0011016242359736844, 0.005718755139868422, 0.006338006613157893, 0.0038684128078947367, 0.005595157857631579, 0.017694987824210535, 0.017391755352355258, -0.003702699658552634, -0.005022188236513158, 0.01342638474771316, -0.0043205563098684206, -0.0028454328957894745, 2592531746052632e-19, -0.004767219290789473, 0.013560908384539477, 0.005906873550263159, -0.009617733145394736, 0.003591151950263157, 0.005010814367368423, 0.0012510964286842107, 0.0028993149072368417, -0.0051906266312368434, 0.00729437020368421, -0.012531499855657886, 0.020476676778750005, -0.009869155927894734, 0.0025973456112368416, -0.021903372915789476, 0.008153542140921052, -0.006835870289605262, -0.010486773017592106, 0.017626112727631586, -0.004606312977368421, -0.014957404596052633, 0.0020897874979618424, -0.004724369788980265, 0.021548606073684213, -0.0019029721914473681, 0.006200722453289475, -0.003450824262276317, -0.006826156169210524, -0.010176031075657897, 0.024789349911842107, 0.003143936896315789, -0.004955119694078948, 9158874664473686e-19, 0.0052856249526315804, 0.01390172287763158, 0.004978571828947366, -0.0032051206281578947, -0.007972612475236842, -0.007769723397631579, -0.00202725623381579, -0.003416697538776315, -0.002556709217407894, 0.0184408019, -0.01105052606855263, -0.014664148855789474, 0.003882449320657895, -0.012429670850921054, 0.013084466028552635, -0.04336451231578946, 0.0074979511960526326, -0.001663643616907895, 0.008059816289473682, -0.011445970542105267, -0.004167850928697367, -0.003230411173657895, 0.02097656965710526, -0.011578596098421053, 0.012013696860657893, 0.001233423443421052, -0.002649905661144737, -0.00883562393153947, 0.0015486095338157892, -0.010413099061842105, 0.013987708639236847, -0.0038697919174999996, 0.006219689598421055, 0.006652394345230264, -0.005381284718815789, -0.0037626181478947387, 0.01059816618401315, 0.003220842913421052, 0.0035804951468421044, 0.010183990906447369, -0.009547694365789472, 7697464371184215e-19, -0.011326520949342108, 0.036538593302236834, 9323258973684188e-20, -0.008973688185921053, 0.00706366331381579, 0.001107784416394737, -4910452642105268e-19, -6440596276315794e-19, -0.0036792987653684202, 0.003713873318157893, -0.004735835042960525, -9658112065789478e-19, -0.043979574686842084, -0.0016790318328947353, 9925788503157894e-19, 0.018722528654473682, -0.0021518665293421054, 0.0035296605411842103, 1413653897368415e-19, -0.017016988203947366, 0.004561038191973685, 0.015442165966184201, -0.007485759814473685, -0.017065918415000002, 0.009342482221710524, -0.0020734458669736835, -0.002520825664789474, -0.021231756026315784, -0.010013884122368423, 0.009265903680263157, 0.008139276791052632, -5609036057894738e-19, 0.015773905215697364, -0.001884182508960525, -0.0024270794468947356, -0.00422654353631579, 0.006008762833684209, -0.003698271740263158, 0.016081907390789473, 0.030718033629736848, -0.007108369866842106, 0.00527163336881579, -9271790684210529e-19, 0.0068789392490789456, -0.013093138075605264, -0.012924308120526315, 0.00556886656968421, 0.0033076618509210527, 0.0017935490473684217, -0.008094466807394738, -0.01079597931, 0.01151358625263158, 0.00893792486236842, 0.010344446836842108, -0.00719051074644737, 0.00572758606, 0.004846286956973685, 0.00814658403092105, -0.0010492790623684207, 0.0049120969460526315, -0.01486755767197368, 0.004852195027565792, -0.007043126832710525, 0.005356651270263156, -0.0035065615885723684, -0.005829078253026317, 0.025083412392631576, 0.0015541765726315804, -0.013320558341842105, -0.027978110792105267, -0.004866113275657896, 0.009822611491184208, -0.004338714495526316, 0.028622747207894733, 0.0056140354747368434, -0.012210432556184212, 0.0033045029190263164, -19000230480263145e-20, -0.0034141616881578937, -0.004623406075394737, 0.006392982858421052, 0.01835209741710526, 0.01747985185131579, 0.004233065692460527, 0.01626176455263158, 0.0032433631718421056, -0.011749469372421053, -0.012891163621052632, -0.01571628433157894, 0.002652207523026316, 0.004507458543026318, -0.01775668739868421, -0.03493414880657894, -0.016362935907894737, 7675142188157897e-19, 0.010285956762684217, -0.0014735680384210526, 0.011252831868552636, 9547897207894737e-19, 0.006510753468289477, 0.005189211297763158, -0.013117319414473682, 0.003801194065131578, -0.008176472670263162, -0.008538372863026316, 0.02108607474342105, 0.0037161164223684204, -0.004774306337894736, -0.0077946213527631605, 0.0024585640678947366, -0.012176232483421057, -0.012235060736184205, 0.001400212257894737, 0.0027084579294736843, 0.0068722990685526324, 0.013335502111842099, -0.005830226586052632, 0.011873504235263161, -0.013693625648026312, -0.010449696567302632, 0.011044927082500003, 0.015400494224552629, -0.009381916401355262, 0.006673642672368421, -0.0018263740446052626, -0.0021770728546052624, 0.016361497218421055, -0.01863254121315789, -0.003530500149210525, -0.03730359020723685, -0.004191118148289474, -0.0045071628236842114, 0.015596569568947373, 0.004240642962276315, -0.002759536991368422, 0.005148003131355265, -0.0069468455677631595, 0.012819585946447368, -0.003170211528815789, 0.01752115107447369, 0.009766708002105265, 0.01720768516973684, -0.01617324446578948, 0.012112183639473681, -0.021386946318421057, -19106013060526326e-20, 0.006491905236710525, 0.012694083912631583, -0.012121427248552632, 0.007453259151052631, -0.005300583340657895, -0.0034357232692105253, -0.008234549374210526, -0.0049134867761842105, -0.011864055638157895, -0.00727513381118421, -0.006225588572394736, -0.014474562209210527, -1696423735526317e-19, -0.009927942404210525, 0.005164234018026316, 0.0017515462315789469, 0.0015904607235526311, 0.007963644751578946, 0.012216724002631584, -0.009501306335068424, -0.003338244066407896, -0.013702270143026316, 3177477896842107e-19, -0.004519560832171056, 0.002465137685263159, 0.0021053644855789483, 0.01910074195263158, 0.012031324014473682, -0.0018186422331578943, 0.005212327788421051, -0.004785163042710527, 0.0021153964885526322, -0.00444928972188158, -0.0035029865, 0.0075856674897368396, -0.016637170858460525, -0.0049104649688157895, 0.004211803076513158, -8546719754210526e-19, -0.005023115469473685, 0.0029476111911842105, 0.002885427894921053, 0.004207519965584211, -0.0045995042944736875, 0.003015317669210526, -0.003959649376578948, -0.001799221694921052, -0.010122554486973682, -0.004602558039210528, 0.0013513901315789464, 3764912463157896e-19, 0.008489159527105262, 0.014707852295131572, 0.002345036650789474, -0.0032689961036842102, 0.04255329955263159, -0.014716855848684204, 0.008619987162236838, 0.008365918811578948, -0.005013759794736842, 0.004195959585499997, -0.008992120611710525, -0.009782703207236846, -0.0022335605896052625, 0.01287937127763158, -0.015554637754473693, 0.008397985909605265, 0.002251561622499998, -0.010050093168815789, 0.008956767632171053, 0.013687852065394742, 0.013600534268289477, 0.004365934441315789, -0.0030305592554868413, -0.00781057913469737, -0.004966902079605262, 0.01856187427644737, -0.0025631659986842118, 0.004677612719921054, 10226186131578904e-20, -0.014421684380263157, 0.016739205349605258, 0.0050146044172894744, 0.011911084407631578, -0.002687138399210526, 0.00960758048539474, -0.002726553521315789, -2118536161842109e-19, 0.013187813793947371, 0.009969895463026316, 0.006658861126052631, -0.0018322755946052636, -0.0017487937331578944, -0.011101524417894743, -0.032939431818421065, 0.01520578899605263, 0.0015081202571052632, -0.005066026860486843, 493556515986842e-18, 0.004060829064605263, -0.005561150131894735, 0.010997560033026309, 0.004095647503947369, 0.012622729288684204, -0.004958941837157896, 0.006538527521447367, -0.0010266161943421049, -0.004851542462973687, 0.0016268616459210535, 0.008403855759605262, -0.005476859455, -0.00812804427618421, 0.007041481924657892, 8838693684210528e-20, 0.00597193902618421, -0.00842409854263158, 0.0024697172419736856, 0.005663838686578944, 0.0036075020965789487, -0.0023292463477631578, -0.0032376719465789477, 0.021101475338026313, 26567486563157904e-20, 0.016493054231184204, -0.002458445587631579, 0.0010258956694736841, 0.00225805411368421, 0.0031990768135526323, 0.006263685490526316, -0.004572679283552632, 0.009529538310526317, -0.011298854067368422, -0.010216326432368422, -0.01634466709473685, -0.014281002560460524, 2702401223684224e-20, 0.005255444044671053, -5290619164473683e-19, 0.020079138140789477, -0.0017828449621052637, -0.012192540535789468, -0.007199579816184209, -0.00116835002625, 0.00958368675736842, 0.007733851895789477, 0.007963292808289474, 0.025216065143421052, 0.004103331857894736, 0.0030591781828947368, -0.009872114714473685, -0.004663548545, 0.004991833832105262, -0.006863926871710525, 0.001242838931578947, 0.020425079027802634, 0.012370465663815786, -0.012126274007894736, 0.010670443024473687, -0.01464566428460526, -0.0038673775906710524, 41958086710526394e-21, 0.01994244099210526, 0.015357990706842106, 0.0063989385026315794, -0.018309239200000004, 0.006747877917368419, -0.017506960167236837, 0.005670401942631581, -0.010581732321578946, 0.0011620065078947373, 0.012163235759210531, 0.006399715106223681, -0.006113071873210528, -0.0028651888345789466, 0.002149627898157895, -0.012140688709210527, -0.010713522528947373, 0.02737408816710527, 0.017518066717105266, -0.005137931570986841, 0.003589904351447368, 0.0010994190049210533, -0.004798525595026317, -4554749059210497e-20, -6981043210526358e-20, 0.017134092135131583, 0.012083527265789476, -0.049615527359210515, 0.005816751165736842, 0.01857131190000001, 0.02351225466336842, 0.01219104790131579, -0.0010487995125921048, -0.0044726659714473685, -0.001028941063157895, -0.005443464117499998, -0.00634262967868421, 0.010381099005263152, 0.001703392962105263, -0.009139037917894735, 0.009512460323684208, 0.008586436496315792, -0.025455710537105262, -0.009792295319078947, -7742059002744737e-19, 0.018877256644736842, 0.038857334956578955, 0.003912381590921053, -0.008361733056842105, 0.016590833038421057, -0.005869556491710525, 0.009990736888552633, 38346460510526274e-20, -0.016626637246578948, -0.012364668933289474, 0.0018547245361842113, 0.006512999228605265, -0.001085481154868421, -0.009963445404999997, 0.004301809971973684, 3661409990131576e-19, -4224867659394737e-19, 48160601578947393e-20, -0.007223044006763162, -0.026113254673289465, -0.0013004677222368422, -0.0017831314044736836, 0.01561539529144738, -0.0066719939618421036, -0.00877529002351316, 0.006605579253289475, 0.005603149853552632, -0.007193712031578948, -0.0016247132320263158, -0.012534181940394738, 0.017229109368421053, 0.00245370861631579, -0.006031722248552632, 0.0031117475930263158, 0.0043886369376315805, -0.0024453895729249996, 0.00690473798328947, 40740072210526353e-20, -0.0031424490643421057, 0.019926203121315794, 0.012182200482894739, 0.008118145491578951, -0.005559053631315788, -27164370357368446e-20, -0.003351124758092105, 0.005957678860368421, -0.008513101869473681, 0.007304541067499999, 0.019957336234210518, -0.0030209489469736834, 0.004469626572763158, 0.012090736671578948, 0.01514115723331579, 0.0042360726635526326, -0.010162506523684207, -0.002649304801184211, -0.007750173208749997, 0.0019587431771447374, -0.027095424518421053, 0.0066075871005263145, 0.00536601891631579, -0.0010357673420394737, -0.003466868494342106, 0.014316960686578954, 0.0023369776231578956, -0.0053653818119210545, -0.007858214859999999, -0.013146294391315785, -0.0018566735342105262, -0.009514895538421051, -0.0036132000074342112, 0.0034368430490789486, -8554010195394731e-19, -0.0032387031372368437, 0.00244777456131579, -0.006286163061842106, 0.011771267721710532, 0.023035620363157896, -0.0043442739443421054, -0.009922730226315792, -0.004276738937499999, -0.0035189323507894745, 0.0039030267724473704, 0.014395429023592102, -0.0012053757906578947, -2897619489473682e-19, 0.007045867771144736, 0.007517767199210526, 0.007418771915644738, 0.010169157498289476, 0.00706302323276316, 0.013311043676250002, 0.003038169512894737, 0.0033463043809210517, 0.001753204881197368, -0.0074550630986842115, -0.03247426388684211, -0.014712809272763156, -0.01257650307744737, -0.005583758863815789, -0.010988394333684212, -0.01094829823105263, 0.014527793146184208, -0.01726736960019736, -0.0011412191313157898, -0.003875160005921052, 0.0054491025328289484, 0.00764098283223684, -0.01397128377631579, 0.020156240986078953, -0.018178711318157893, 0.007760771186842106, -0.012693300230263159, 0.0034562666953947383, 0.017623470872368423, 0.01328646389205263, 0.006033057996184212, 0.0021477171030263157, 0.004209592630394737, 0.022607883206578958, 45995770960526315e-20, 0.004256902114473686, 0.007727120836526311, -0.011495399911315795, -0.006097572578026317, -0.003288532194342106, 23524967355263143e-20, -0.01843602415421052, -0.006332212189999999, -0.007104603521578947, -0.006046406687763155, 0.0031444280434210527, 0.011026709301315791, 0.007965343235657892, -7478460321052628e-19, 0.010399411723157894, -0.003222595633552633, 0.0013722621246052631, -9306063203684211e-19, -0.008244672536447365, 0.010224801592763153, 0.011236862973157893, 0.002438936607828946, -0.0011834995152631578, -0.007761896696973684, -0.006536142010526313, -0.004305835025789474, -0.006375306423552633, 0.002894340127526317, -0.007056530478157897, -0.006344087711473684, 0.012371267300526317, -0.008661172924210528, 0.016608231906578945, 0.006209598555605264, -0.0049610081385394736, -0.006289596580421053, -0.008653004873157896, 0.006589724684342105, 0.0042221396663157905, -0.024205309596052636, -0.007927559016842107, -0.0036796517148684213, -0.010860645916842101, -0.001776141146973683, -0.0066375001164473675, 0.002395305515921052, -0.014593319744736844, 0.00733454749668421, 0.0019130213015789476, -0.02945044170131579, 0.0021041659146052625, -0.002779561371539474, -0.020078335207894735, 0.003642550809710527, 5936502644736846e-19, 0.00325616999868421, 0.017399437181578953, -0.06370752007631578, -0.003701780296631579, 0.007564594753552632, -0.00405948423839737, 0.0015840840405263162, 0.005836310675263158, -0.012381032086315788, -0.004665367583947368, -0.0010173959317894734, 0.005156387308802632, -0.0165339495006579, 734178938157895e-18, 0.024508261125789473, 0.01724277075526316, 0.008913617889078948, 0.018123411353289477, 0.019972735151315802, -0.015223236485526315, -0.011504417352105265, 0.010046699026184209, -0.009774468743421052, 0.014051472367763159, -799595632236844e-19, 0.015914003425263158, -0.010235261282894738, -0.012426796318973685, -0.00529559477105263, 0.0032275154818421047, -0.012022474961184216, 0.004842165463157897, -0.012777494966842105, 0.007940708949736842, -0.010386868507894734, -0.012277893373289472, -0.01469461501513158, 6472758955460526e-19, 0.011309826192631581, 0.0014896182946052632, -0.0018290806492105261, 0.004781091154078948, 0.009413893570921053, 0.00916419533118421, -0.002920155307368421, -0.004322433785789473, 0.010922147476842106, -9692939010657897e-19, -0.00471161965105263, 0.0022456688428947364, -0.01511019358289474, 0.01469485253026316, -0.0034939871920921027, 0.005169176186973684, -0.004767383189802632, -0.004363123971710525, 0.008160435356184211, 0.008593854647631578, -0.014373928093157892, 0.012998453866184211, 0.012818183890921054, -0.0012967544054736846, 0.018860078121447365, 0.011299536434868421, 0.010162780092499995, 0.010768595093881578, 0.006929429669736845, -0.009301306071052631, -0.001229964434210526, 0.022915811622105268, 0.005473494591263157, 0.01684595049736842, 0.0068085582832894745, -0.009735548395394736, -0.008009809031052632, 0.00818278650394737, -0.00514607482631579, -0.0017882432596052638, -0.003795041893157895, -0.0028177598829473675, -0.009401223562894738, -0.015638386469736837, -0.013144470036842108, -0.0025362829124999987, -0.015570190517552634, 0.0072135779351315795, -0.0033293784007894737, 0.0033921677573684203, 0.0171126722368421, -0.016200724738157896, 0.002023070578552632, -0.005874176478421054, -0.007982894414539473, -0.01305297109342105, 0.013835959466144737, -0.007678114530657894, 0.0016565042665789473, -0.0029898593556578947, 0.018475673282499997, -0.004774599107368421, -0.01045985660768421, 5002329298684213e-19, 455613157105266e-19, 0.012770474667763154, 0.0036531933109210527, -0.006355904673157896, -0.00323254957336842, -28950164197368423e-20, -0.0016983754679473682, -6461348456578951e-19, 0.011579839645394736, 3174967802632419e-21, -0.009248690072105265, 0.010413905775572371, 0.00742944108473684, 0.00453180122631579, 0.01615883042802631, -0.0032757992935526312, -0.0038371938214394738, -0.002908959269342105, 0.009208926093951316, -0.0014955339189473683, -0.013758465006973683, -0.0063294295475, -0.005727852496578948, -0.005272904527105263, -0.001316834533684211, -0.01645172019144737, -0.007092707085578947, -0.003522257189605263, -0.013505265605263156, -0.011881032946052632, 0.011369551982828954, 44452595263157905e-21, -0.006352405066578949, 0.0052995613325, 0.009505844287763156, -0.006053228503013156, 0.006845024962368421, -0.011510292038552633, -0.0032177408799999997, -0.004505434028289475, 0.004123595264342105, 0.006593527555000002, -0.011078657794605259, -0.014011584826078945, 0.0029858133488157895, 4344722920789474e-19, 0.008640971361973684, 0.006481291948157893, -0.005891967694342105, 0.008448872632763157, 0.016859102106052633, 0.0014603208068421055, 0.005249472965605262, -0.00686901125013158, -0.010637044371578948, 0.011924648195789474, -0.0058005032065789495, 0.015501499024999997, -0.006453810105921054, -0.002997035320473683, 0.018575800172368425, -0.008515451444736838, 0.012462028264473679, -0.003774380357539475, -0.0019450062711842105, 0.00391133496173684, 0.004730433910526316, -0.001315982468776316, 3232796018157894e-19, -0.0066704201258026286, 0.00680665693223684, -39029438710526344e-20, 0.005489703965131578, 0.008671756791842107, -0.012851425032368417, 0.003147755206052631, 0.0026194010623684216, -0.007664137591973682, -0.011883636635, 0.004133208043763159, -8303924315789413e-20, 0.003270837395131579, -0.005892774992763157, 0.012238801593815785, 0.006942355931973683, 0.02878469881921053, 9479045131578946e-19, 0.0017351399474736847, 0.008778382914078947, 0.0010939997295263163, 0.0030465893436842097, 0.014783142862368417, 0.01642540962717105, 0.0036857923714473675, -0.015363344993026315, 0.009919231350263158, -0.011551756493421059, 0.0023134715465394744, 0.011385295549473687, 0.013802586752105264, -0.01116167753921053, -0.003641126586684211, -0.013648889441184206, 0.014234762527368418, 0.002806655006105263, -0.013499138960736849, 0.005006243019473683, 0.015739427460526312, -0.0027175753445131574, -0.010932971389473686, -0.010770135974552631, 890700216526316e-18, -0.012623942286842103, 0.016124839350000003, -0.002831514939934211, 0.012697006429342104, -0.007019076696973686, -0.006475317798065787, 0.007137869946052634, 0.006031961175105265, -0.00705848445763158, 0.0033737443014210527, -2768167815789512e-20, 0.017694467707894734, 0.006258390639605262, -0.002385706069394737, 0.003583886412894737, -7993168968421051e-19, -0.01620972400113158, 0.01370171146118421, 0.00461520679318421, -7547631113157896e-19, 0.002939954357631579, -0.006845462558289473, 0.007328082212763157, 0.007676322326467105, 0.004349595261973684, 0.015829044343197374, -0.00368448221881579, 5303418106447364e-19, 0.0026827215614473685, -0.008580460431710527, 0.005024989097499999, -0.003635687485394737, 0.002272944439315789, -0.006124602738289472, -0.016172138838026325, 0.015377584130394738, 0.010782426606184206, -0.021383269930657894, 0.005706450336052631, 0.0018523320315789475, 3522892494736843e-19, 0.004350316041157894, 0.005934959479144734, 0.01708160452131579, -0.007678650551447369, -0.0033582777418421053, -0.017157569269684224, 0.007354085403947371, 8351606031578944e-19, -0.005335390844342104, -0.002535301282368421, 0.014636234615921057, 0.004858749898355263, 0.007662922150526313, -0.0016256868378026308, 0.01556731267368421, -0.005104593538289476, -0.019748377389473677, -0.013980995652631582, 0.00946453539263158, -0.008415238208421055, -0.011370187082631577, -0.024026692542368423, -0.028569824043500013, -0.004478069888947369, 0.0031515005953947363, -0.002700122834605264, 0.00815917739855658, -0.00445320840494737, 0.006830579967631578, -0.006684497927105263, 0.010432664122105263, -0.014661140320368424, -0.006587801074605265, 0.007357709939078946, -0.005931698591973684, -7732484365789474e-19, -0.002239530471052632, 0.007788843097894735, 0.0064669147390789454, -0.0030537573617631575, 0.017894125887236843, 0.014577202200000002, 0.0015132674616710532, -0.0057732834064473685, -0.0027821142750131585, -0.01908095769276315, 0.009781772397894737, 0.009500178334210524, -0.08152622444736843, 0.008212754039473679, -0.01767476994144737, 0.0026395801725000003, 0.0014657673559210526, 0.007638076904605263, 0.004058115665973685, 0.0035145148113157896, -0.011827003826315791, -0.0027065570113157895, 0.0023756798456578943, 0.008448311618421052, 0.017983404865789466, 0.016279126637631577, -0.0012591387876315795, -0.01015563660263158, -0.007210258607868422, 5225580767105262e-19, 0.008399898934210526, 0.005169876301250003, -0.0054817867677631575, 0.004851883672052633, 8781897375131572e-19, -0.004407749175657896, -0.0037234890038684225, 0.010837226267236846, -0.008299530855789473, 0.012997853572105266, -0.017374133039473685, 0.01771941214802632, -0.010850383854999996, -0.0025922976049605273, -0.005014948546052633, 0.001572493777631579, -0.009683719784736844, 0.003544048853289474, -0.005399044507894736, 0.0019298673893421046, 0.008562550747213162, 0.007685438104276315, 9653876659736838e-19, 0.006209795067934209, -0.007815720736421053, 0.01339235502684211, -0.014595927550000002, -0.001961306322894736, 0.01755357029118421, 0.009892284107105262, -0.004357266436710526, -0.024933551971052636, -0.008265622360263156, 46308488684210446e-21, 0.008073451047105263, -0.006002720232921055, 0.00960784907105263, -0.008960232250921057, 0.009452138660526316, -1669984473684197e-19, 0.006347901398026315, 0.006253983917105261, -0.001933425444473684, -0.010605378191710526, 0.0017956876511842107, 0.010316846388552634, -0.006851734682407896, 0.017523879366710526, -0.003045540768026316, 0.021021487419736837, -0.00978115143263158, 0.007848767184210523, 0.008862482220921052, -0.01242224652736842, 0.0013790572871052633, 0.014478706237421052, -0.008613721365578947, 8338612144736844e-19, 0.003780419830131578, 0.00346602358868421, 0.01269026605723684, 0.009463772316851317, 0.012594825682894736, -0.0069123792341578925, 0.0013869928297368425, -0.012008816909210525, -0.005822936399078947, -0.016418475083815786, -0.010629006791973683, 0.008168218550394738, 0.00664607999610526, -5069868140000001e-19, 0.004181848071447371, -0.0011114877839473682, 0.02246608591315789, -0.0034439313037368416, -0.004351277874210527, 0.0014461106753947362, -0.009660680614197373, -0.005408365936052628, 0.01752714284907894, 0.008516543233210525, 0.002278526259736842, -0.006875266473026315, -0.0069421802624999975, 0.013035910887894736, 0.0015391923593421058, 0.0012664572747368423, 0.0011414591399473686, -0.0037214528182894745, 0.015104741671868427, -0.013068065997078947, -9741302530000001e-19, -0.0033918721798684216, 0.005097137174605263, 0.004477671593026316, 0.006166728530789473, -4620546571052633e-19, -0.00529603509618421, 8418184122421051e-19, -0.0012031493919868418, 15712514144736853e-20, -0.0019224767417105261, 0.005464992050000003, 0.004573905729556577, -0.005107717659999997, -0.001779724216276316, 0.0062555419631578945, 0.014157424513157893, -0.002229668639710526, -0.004112240003421051, -0.008737391783947368, -0.01772272931749999, -0.011969726380789475, 3489228665526319e-19, 0.008398761923223683, 0.006083781918289473, 0.0038491992196052634, 0.006757484750263158, -0.0033988848290789457, 0.010786320785381581, 0.007709229539986843, -0.0027759906160526315, 0.01513786151671053, -33675679921052606e-20, -9034154792105268e-19, -0.006730010358421051, -0.0038794277310526316, 0.011774508437552627, 0.0075108212575000005, -5415923363157894e-19, -0.010228818563289476, -0.004567732969605264, -0.006103785833947367, -0.007408031901286839, -0.0032699436107894737, -0.007860791874210528, 0.01599756300842105, -0.016585482788684217, -0.008410989815789471, -0.0024622896271447366, -31383816486842115e-20, -0.006790721234210526, 0.0037121541342105256, -0.009942839455, -0.012361527721052628, 0.019747696744736844, -0.004605994977907893, 0.0033676318580263156, 8737887935394738e-19, 0.002211198596144737, 0.010937877776315795, -0.01129901567118421, -8168034689473677e-19, -0.009641223938421057, 0.009402437952631576, 0.0056297516052631605, -0.0010065862368421055, -0.02594543341447368, -0.0011355776477631582, -0.011891248669605264, -0.00839228417031579, 0.007896343589210524, 0.007322515729342106, 0.0033040433167105263, 0.003778204579868421, 0.011096790547631581, -0.0015593353430263153, 0.014356465188157893, -0.006630788594118421, 4828352872894737e-19, 0.0010450569010473684, -0.007027775473815791, -0.006984254253157892, -0.00792534963342105, -0.00162584528, -0.006522221855263158, 0.01805963293197369, -0.004809070690789476, -0.01814591389078947, -0.005865267296828947, 0.003988285848684209, -0.008169152964999999, -0.008437095909210527, 0.009360843043815788, 0.030021375652105258, 0.007297060365657896, -0.0023612295406578963, -0.01073050399763947, 0.0019045162401315795, 0.00651718905263158, 0.0010275199546052635, -0.006277306921263158, 0.0012021913027105262, -0.011182417592105264, -0.002024020123421053, -0.006231476668342106, 4796000135526314e-19, 0.006449109247355262, 7456603261184208e-19, -0.005144762157460526, -0.0021357675948684212, -0.01883197047171053, -0.025576503247368407, -0.013539074083421053, -0.011034470814473686, 0.0024368244498684222, -0.002245899774736842, 0.007094408709210526, 0.0012029363072368422, -0.009510369465000001, -0.012366834156578943, 22163493250000016e-20, -864950124473684e-18, -0.0054156288555263134, 0.005750937247368423, 0.003270796098421053, 0.002449161180921053, 52041173618420834e-21, 0.010704513787500002, 0.001962141009605263, 0.004546446430526313, -0.009514348226710524, 0.013900074301842112, 0.007515311701355261, 0.0035688571342105263, -0.0031417825293421063, 0.013631733623026311, 0.004473217585789474, 0.022099065907894736, -0.010242928179605263, -0.021115605811315788, -0.0020430657981592103, -0.004960829025921049, 6026669513157779e-20, -0.004585000899605264, -0.004475863079315788, -0.004507509982368421, 0.012760686508684211, 0.0035079304818421055, 0.0043142242481578955, -0.0037753994023157884, 0.009972505233289472, 0.004257388717499998, 0.0037933767182894737, -0.003782828635039474, -0.016245113222631585, -0.0067635378846052615, 0.001699853626842106, 0.0049727823532894734, -0.0026726438017763156, 35606309460526324e-20, 0.0014221154155263163, -0.006753894785657897, -0.0021303370428947363, 0.0020290390381578942, 0.0065541381115789485, 0.005578077509210527, 0.00597834956631579, -0.015656070957894737, -0.005700937814868422, -0.003300278165210526, 0.0010437032015789478, -0.006081244438026316, -0.012030119331578949, 0.008609655173684212, -0.012421846317171054, 0.0038849181815789487, -0.003441401350921053, 0.005337632936842106, -0.00501430082631579, 0.007684295191355262, -0.018589622549210528, 0.0020294963380921055, -0.01736990133552631, -12342767794736842e-20, 0.013101640196631579, -19718100105263185e-20, 0.00191136175070921, 0.002991744120394736, 0.005360340401578948, -0.002541910205657895, -0.011420830478947371, 0.0025571802081578946, -0.007654641906842104, 1324760923026315e-19, 0.009839589908289474, 0.014137809323684214, 0.005973617257894737, 0.0044086344710526325, -0.007683909966710525, -0.014283573396973682, -0.015558832550000004, 0.006422352959605265, 0.0015610042364473677, 0.005954876463289471, 0.01747821746710526, 0.012649821948026316, -0.00588777466013158, 0.00278459120360921, -0.0027093084425131573, 0.00528561605, -0.0013567440365789465, -0.0036329947868421046, -0.027717547824078946, -0.009446810628947372, 0.0016673699111842107, 0.01964425766578947, -0.00695099289526316, 0.01540288453881579, -0.0017949823404736845, -0.0017532934771052637, 0.011818318206578948, 0.0014771281863157897, 0.010423521287236842, 7254289103947369e-19, -0.004566167288026315, -0.003529428743197369, 0.0011952240294736843, -0.003898400712605264, -0.010473680018684213, 0.00285922366139474, -0.006599853688026317, -0.02107415088815789, 0.0052880693118421045, 0.006744707181578948, -0.00798451460657895, -0.004557204219868423, -0.01156681187255263, 0.0076239759752631635, 0.0035902046968684207, -0.012573743979605262, -0.003764909397236842, 6335979498684211e-19, -0.003016045632947368, 0.0018927498906578949, 0.007497210715789474, -0.005934193091907899, 0.0035080823515789466, -0.0018217714548684216, -5523007649828952e-19, -7058270163815789e-19, 0.012370342157368423, -15139791644736762e-21, -0.013432961709210524, -4939559349999998e-19, 0.010054779912499996, -0.001919280470486842, -0.0013844150172368421, 0.007696783919605264, 0.008991117240473684, -0.007747281024078945, -0.004739962277894735, 0.007187543989473684, 0.003015955778815791, -0.001928289877644735, 0.004620562280552632, -0.0014514659089473684, -0.020361874824473686, 0.010851485952894735, -0.0048367870628947375, 7418370901184215e-19, 0.003954019490328949, -0.0036905010957894754, 0.005135467446315788, -7641653630263166e-19, 0.002803192092157894, 9011874512236843e-19, -0.006852827178236843, -0.009182144093157896, 6662634763552632e-19, 0.003859204278289474, 0.002627766069263158, 16687577934210564e-20, -0.004155122549868421, 0.007481256317894739, 0.010201827506842105, -0.02001931662526316, 0.008597913657499998, 0.009211417565, -0.003000300423684211, 48565491249999974e-20, -0.006839893910657894, -0.0024400726705263165, 0.0018072735346052636, -0.019441373660526323, 0.008917724683289475, 0.006977527517447371, 0.0012267423015789476, 37295210526322205e-22, -0.03201578951578947, 0.0014607340267894736, 0.010337255695263156, 0.002957082175947369, 0.009742125079473684, 0.0062952107691315795, 0.010293411451381573, 0.007467224718026317, -0.01702668064539474, 0.005315579784210528, -0.03403872432368421, -0.0036593492817105257, -0.013481478045789471, -0.005543817282105263, 0.0024990400036842106, -0.005272580224539472, 0.009082922817368418, -0.001777538198289474, -0.00401194444394737, 0.00793982549736842, 23839166631578926e-20, 0.005703706245131579, 0.0032615849919210536, 5623444232236841e-19, -0.009299548110394735, 0.0010441157952631576, -0.012694072275263158, 0.004126734016842105, -0.001088491213815789, -43924066513157913e-20, -0.006497900055789475, -0.008375932914473687, 0.006604953940657895, 0.008322977985131578, 0.0014929076139473686, -0.005037357923289473, 0.001687304174736842, 0.005036407010486843, 0.002468036690526316, 0.0014052489157894733, -0.0022257209973684214, 0.005458085299473683, 0.009009774955749998, 0.0858067330657895, -0.007581642367631578, 0.01083994584868421, -0.0022605711906578943, 21345696315789494e-20, -0.005091092415263156, -0.0064649052059342115, -0.0031673467632894734, 0.007837809513026317, -0.0048379660456749985, 0.003358471353947369, -0.007209436236315789, -0.004074764670526317, -0.002432236466131579, -0.001538101053328947, -0.003958276178197368, -0.001431222515394737, -0.002890863070263158, -0.005015565842105263, 0.006637256008947367, -0.01610401879026316, 16318058486842113e-20, 0.006704906538815789, -0.00704305531026316, -0.006291144144078946, 0.00933739933177632, 0.003039505811973684, -0.002349317244736842, 6161272673684213e-19, 0.011576436187894739, 19294986634210533e-20, -5418114680263158e-19, 0.002641153911184212, -0.00675274457026316, 0.008304665786171056, 0.001867557076842105, 0.007009144105789473, 37644492855263173e-20, 0.008968001444210526, 0.0015434073640789474, 0.005244117515263159, 0.0029953329880263156, 5347106021052633e-19, 0.004156591307368421, -0.0022211070997368424, 0.0034716415264473685, -0.0065318866889473685, 977989682631579e-18, -0.0014095522748684215, -0.006451674766447366, 0.0032100871473157893, -0.005529904199539473, 0.0059584155557894725, -9850399996052639e-19, 0.006995684919078948, -0.0022856163722368393, -0.01090589053710526, 0.009130581944078944, 0.00312594295013158, 0.007374450093421053, 0.0025797777251710522, 29641350526315737e-21, 0.001176881737763158, -0.014572063391447372, -2289824355263157e-19, -0.004469249211710526, 0.007769186374868425, -0.002506505231434211, 0.006041142717631577, -0.002120238433026316, -0.009695580013552628, -0.005020087666881578, 0.005143053156315791, 0.007150294719789475, 0.0023021195396710527, 0.003707133851447368, 0.006069693725921051, -0.00467861785710526, 0.02125906401236842, 9268083446052627e-19, -0.003634692288684209, -0.003680463652815789, 0.0040336247021052615, 0.0013372253536447368, 0.0021130635865789465, -4880915286842109e-19, -0.012233446567342104, -0.004310965072894738, -0.01132869828552632, -0.006841497305263159, -0.0016422147394736845, -0.002537146005289474, 0.003615671777368422, 0.00814799093118421, -0.005056491793263158, 0.013174237758684208, 3394553878157892e-19, -0.008489372885473684, -0.0027938550723684203, 0.0030627760844078957, 9348454796052637e-19, 0.004848255386842105, -0.0117739507, -6810965494736843e-19, -0.002880153715, 0.008861613728178947, 0.0033199058337500006, -0.003612675859078948, 0.002928360304065789, 0.0039185375651315775, -7332073442631576e-19, -0.0012935513150789466, 0.004886879997894738, 0.007781129023552632, -0.004267412731052632, -0.003639562495460526, 0.00523262424868421, -0.003657068880394737, 0.005125610617552631, -0.004419953952236842, -9843244355092107e-19, -2347114171052623e-20, 0.0016072527152631584, 0.003128275799539474, 4279722777368421e-19, 0.006050774428552632, -0.004237210059210528, -0.0025468053725000005, 0.0026924242311184205, -0.02019396686092105, -0.005761839523684209, -0.009751797271973686, 0.011594078876973685, 9348787827236843e-19, 0.014106164205263163, 6055481813026316e-19, -7440742407894764e-20, -0.005227106624868422, 0.013380218100789466, 0.008165820871447366, -4882895227631577e-19, -0.0010533377903157893, -0.0016510250091447362, 0.0018723641477631577, -0.004344320649736843, 0.002451466830486842, 0.003751309517368421, -1192675066447369e-19, 5871760036842106e-19, 0.00721447406936842, 0.003513352502315789, 0.009986706387763158, -0.003577922982105263, -0.006272508934210527, 0.00939798507907895, 0.005559408675131579, -0.004530027807368421, 0.008267799573289474, 9763903811842103e-19, 6323663030263157e-19, -0.018563745183684206, 0.003477922045657895, 0.0034454675522368416, 0.0022030032148815794, 9718481634210526e-19, -0.006363050955000002, 0.009044980506973683, -0.007551598236973688, -6711054927894736e-19, -0.0013286158334210524, 0.0017464641878947365, -0.011715851191973686, -0.005520589822500002, 8535201651315791e-19, 0.010038929649605262];
|
|
6350
6350
|
|
|
6351
6351
|
// src/lib/chat/preProcessor.ts
|
|
6352
|
-
function wrapAsUserText(prefix,
|
|
6353
|
-
if (!
|
|
6352
|
+
function wrapAsUserText(prefix, text15) {
|
|
6353
|
+
if (!text15 || !text15.trim()) return [];
|
|
6354
6354
|
return [{ role: "user", content: [{ type: "text", text: `${prefix}
|
|
6355
|
-
${
|
|
6355
|
+
${text15}` }] }];
|
|
6356
6356
|
}
|
|
6357
6357
|
|
|
6358
6358
|
// src/lib/chat/cryptoPriceClassifier.ts
|
|
@@ -6372,8 +6372,8 @@ async function classifyCryptoPrice(prompt, options) {
|
|
|
6372
6372
|
}
|
|
6373
6373
|
async function classifyCryptoPriceBatch(prompts, options) {
|
|
6374
6374
|
const { margin = 0.02, ...embeddingOptions } = options;
|
|
6375
|
-
const
|
|
6376
|
-
return
|
|
6375
|
+
const embeddings2 = await generateEmbeddings(prompts, embeddingOptions);
|
|
6376
|
+
return embeddings2.map((emb) => classify(emb, margin));
|
|
6377
6377
|
}
|
|
6378
6378
|
function createCryptoPricePreProcessor(options = {}) {
|
|
6379
6379
|
const margin = options.margin ?? 0.02;
|
|
@@ -7041,7 +7041,7 @@ function findMatchingTools(promptEmbeddings, tools, options) {
|
|
|
7041
7041
|
if (!tools || tools.length === 0) {
|
|
7042
7042
|
return [];
|
|
7043
7043
|
}
|
|
7044
|
-
const
|
|
7044
|
+
const embeddings2 = Array.isArray(promptEmbeddings[0]) ? promptEmbeddings : [promptEmbeddings];
|
|
7045
7045
|
const results = [];
|
|
7046
7046
|
for (const tool of tools) {
|
|
7047
7047
|
if (!tool.embedding || tool.embedding.length === 0) {
|
|
@@ -7049,7 +7049,7 @@ function findMatchingTools(promptEmbeddings, tools, options) {
|
|
|
7049
7049
|
}
|
|
7050
7050
|
try {
|
|
7051
7051
|
let maxSimilarity = -Infinity;
|
|
7052
|
-
for (const embedding2 of
|
|
7052
|
+
for (const embedding2 of embeddings2) {
|
|
7053
7053
|
const similarity = cosineSimilarity(embedding2, tool.embedding);
|
|
7054
7054
|
if (similarity > maxSimilarity) {
|
|
7055
7055
|
maxSimilarity = similarity;
|
|
@@ -7080,12 +7080,12 @@ function scoreTools(promptEmbeddings, tools) {
|
|
|
7080
7080
|
const scores = /* @__PURE__ */ new Map();
|
|
7081
7081
|
if (!promptEmbeddings || promptEmbeddings.length === 0) return scores;
|
|
7082
7082
|
if (!tools || tools.length === 0) return scores;
|
|
7083
|
-
const
|
|
7083
|
+
const embeddings2 = Array.isArray(promptEmbeddings[0]) ? promptEmbeddings : [promptEmbeddings];
|
|
7084
7084
|
for (const tool of tools) {
|
|
7085
7085
|
if (!tool.embedding || tool.embedding.length === 0) continue;
|
|
7086
7086
|
let maxSimilarity = -Infinity;
|
|
7087
7087
|
try {
|
|
7088
|
-
for (const embedding2 of
|
|
7088
|
+
for (const embedding2 of embeddings2) {
|
|
7089
7089
|
const similarity = cosineSimilarity(embedding2, tool.embedding);
|
|
7090
7090
|
if (similarity > maxSimilarity) maxSimilarity = similarity;
|
|
7091
7091
|
}
|
|
@@ -7296,13 +7296,13 @@ function createServerToolsFilter(options = {}) {
|
|
|
7296
7296
|
const exclude = new Set(options.excludeTools ?? []);
|
|
7297
7297
|
const sets = options.toolSets ?? [];
|
|
7298
7298
|
const matchOpts = options.matchOptions;
|
|
7299
|
-
const filter = (
|
|
7300
|
-
const matches = findMatchingTools(
|
|
7299
|
+
const filter = (embeddings2, tools) => {
|
|
7300
|
+
const matches = findMatchingTools(embeddings2, tools, matchOpts);
|
|
7301
7301
|
if (matches.length === 0) return [];
|
|
7302
7302
|
const matchedNames = new Set(matches.map((m) => m.tool.name));
|
|
7303
7303
|
let finalNames;
|
|
7304
7304
|
if (sets.length > 0) {
|
|
7305
|
-
const scores = scoreTools(
|
|
7305
|
+
const scores = scoreTools(embeddings2, tools);
|
|
7306
7306
|
const selectedScores = new Map(
|
|
7307
7307
|
[...scores].filter(([name]) => matchedNames.has(name) && !exclude.has(name))
|
|
7308
7308
|
);
|
|
@@ -9340,13 +9340,13 @@ var StreamSmoother = class {
|
|
|
9340
9340
|
/**
|
|
9341
9341
|
* Add text to the buffer. If smoothing is disabled, passes through immediately.
|
|
9342
9342
|
*/
|
|
9343
|
-
push(
|
|
9344
|
-
if (this.destroyed || !
|
|
9343
|
+
push(text15) {
|
|
9344
|
+
if (this.destroyed || !text15) return;
|
|
9345
9345
|
if (!this.enabled) {
|
|
9346
|
-
this.callback(
|
|
9346
|
+
this.callback(text15);
|
|
9347
9347
|
return;
|
|
9348
9348
|
}
|
|
9349
|
-
this.buffer +=
|
|
9349
|
+
this.buffer += text15;
|
|
9350
9350
|
this.ensureTimer();
|
|
9351
9351
|
}
|
|
9352
9352
|
/**
|
|
@@ -9357,9 +9357,9 @@ var StreamSmoother = class {
|
|
|
9357
9357
|
if (this.destroyed) return;
|
|
9358
9358
|
this.stopTimer();
|
|
9359
9359
|
if (this.buffer.length > 0) {
|
|
9360
|
-
const
|
|
9360
|
+
const text15 = this.buffer;
|
|
9361
9361
|
this.buffer = "";
|
|
9362
|
-
this.callback(
|
|
9362
|
+
this.callback(text15);
|
|
9363
9363
|
}
|
|
9364
9364
|
this.resolveDrain();
|
|
9365
9365
|
}
|
|
@@ -9426,9 +9426,9 @@ var StreamSmoother = class {
|
|
|
9426
9426
|
const currentSpeed = this.getCurrentSpeed(elapsed);
|
|
9427
9427
|
const charsThisTick = Math.max(1, Math.round(currentSpeed * (TICK_INTERVAL / 1e3)));
|
|
9428
9428
|
const toRelease = Math.min(charsThisTick, this.buffer.length);
|
|
9429
|
-
const
|
|
9429
|
+
const text15 = this.buffer.slice(0, toRelease);
|
|
9430
9430
|
this.buffer = this.buffer.slice(toRelease);
|
|
9431
|
-
this.callback(
|
|
9431
|
+
this.callback(text15);
|
|
9432
9432
|
if (this.buffer.length === 0) {
|
|
9433
9433
|
this.stopTimer();
|
|
9434
9434
|
this.resolveDrain();
|
|
@@ -9873,9 +9873,9 @@ async function runToolLoop(options) {
|
|
|
9873
9873
|
messages = await redactBatch(messages);
|
|
9874
9874
|
if (preProcessors?.length) {
|
|
9875
9875
|
try {
|
|
9876
|
-
const
|
|
9877
|
-
if (
|
|
9878
|
-
const embedding2 = await generateEmbedding(
|
|
9876
|
+
const text15 = extractLastUserText(messages);
|
|
9877
|
+
if (text15.length > 0) {
|
|
9878
|
+
const embedding2 = await generateEmbedding(text15, {
|
|
9879
9879
|
apiKey: headers?.["X-API-Key"],
|
|
9880
9880
|
getToken: token ? () => Promise.resolve(token) : void 0,
|
|
9881
9881
|
baseUrl
|
|
@@ -9883,7 +9883,7 @@ async function runToolLoop(options) {
|
|
|
9883
9883
|
const results = await Promise.all(
|
|
9884
9884
|
preProcessors.map(async (p) => {
|
|
9885
9885
|
try {
|
|
9886
|
-
return await p({ prompt:
|
|
9886
|
+
return await p({ prompt: text15, embedding: embedding2, signal: combinedSignal });
|
|
9887
9887
|
} catch (err) {
|
|
9888
9888
|
console.warn("[runToolLoop] pre-processor failed:", err);
|
|
9889
9889
|
return void 0;
|
|
@@ -10042,11 +10042,11 @@ async function runToolLoop(options) {
|
|
|
10042
10042
|
}
|
|
10043
10043
|
});
|
|
10044
10044
|
accumulator = createStreamAccumulator(model || void 0);
|
|
10045
|
-
contentSmoother = new StreamSmoother((
|
|
10046
|
-
if (emitData) emitData(
|
|
10045
|
+
contentSmoother = new StreamSmoother((text15) => {
|
|
10046
|
+
if (emitData) emitData(text15);
|
|
10047
10047
|
}, smoothing);
|
|
10048
|
-
thinkingSmoother = new StreamSmoother((
|
|
10049
|
-
if (emitThinking) emitThinking(
|
|
10048
|
+
thinkingSmoother = new StreamSmoother((text15) => {
|
|
10049
|
+
if (emitThinking) emitThinking(text15);
|
|
10050
10050
|
}, smoothing);
|
|
10051
10051
|
let chunksEmittedDownstream = false;
|
|
10052
10052
|
try {
|
|
@@ -10551,11 +10551,11 @@ Executing tool: ${toolInfo}
|
|
|
10551
10551
|
}
|
|
10552
10552
|
});
|
|
10553
10553
|
currentAccumulator = createStreamAccumulator(model || void 0);
|
|
10554
|
-
contContentSmoother = new StreamSmoother((
|
|
10555
|
-
if (emitData) emitData(
|
|
10554
|
+
contContentSmoother = new StreamSmoother((text15) => {
|
|
10555
|
+
if (emitData) emitData(text15);
|
|
10556
10556
|
}, smoothing);
|
|
10557
|
-
contThinkingSmoother = new StreamSmoother((
|
|
10558
|
-
if (emitThinking) emitThinking(
|
|
10557
|
+
contThinkingSmoother = new StreamSmoother((text15) => {
|
|
10558
|
+
if (emitThinking) emitThinking(text15);
|
|
10559
10559
|
}, smoothing);
|
|
10560
10560
|
let chunksEmittedDownstream = false;
|
|
10561
10561
|
try {
|
|
@@ -10782,11 +10782,11 @@ async function resumeStream(options) {
|
|
|
10782
10782
|
} = options;
|
|
10783
10783
|
const strategy = getStrategy(handle.apiType);
|
|
10784
10784
|
const accumulator = createStreamAccumulator(handle.model || void 0);
|
|
10785
|
-
const contentSmoother = new StreamSmoother((
|
|
10786
|
-
if (onData) onData(
|
|
10785
|
+
const contentSmoother = new StreamSmoother((text15) => {
|
|
10786
|
+
if (onData) onData(text15);
|
|
10787
10787
|
}, smoothing);
|
|
10788
|
-
const thinkingSmoother = new StreamSmoother((
|
|
10789
|
-
if (onThinking) onThinking(
|
|
10788
|
+
const thinkingSmoother = new StreamSmoother((text15) => {
|
|
10789
|
+
if (onThinking) onThinking(text15);
|
|
10790
10790
|
}, smoothing);
|
|
10791
10791
|
const idleController = new AbortController();
|
|
10792
10792
|
let watchdog;
|
|
@@ -10926,8 +10926,8 @@ async function classifyStockPrice(prompt, options) {
|
|
|
10926
10926
|
}
|
|
10927
10927
|
async function classifyStockPriceBatch(prompts, options) {
|
|
10928
10928
|
const { margin = 0.02, ...embeddingOptions } = options;
|
|
10929
|
-
const
|
|
10930
|
-
return
|
|
10929
|
+
const embeddings2 = await generateEmbeddings(prompts, embeddingOptions);
|
|
10930
|
+
return embeddings2.map((emb) => classify2(emb, margin));
|
|
10931
10931
|
}
|
|
10932
10932
|
function createStockPricePreProcessor(options = {}) {
|
|
10933
10933
|
const margin = options.margin ?? 0.02;
|
|
@@ -10966,8 +10966,8 @@ async function classifyWeather(prompt, options) {
|
|
|
10966
10966
|
}
|
|
10967
10967
|
async function classifyWeatherBatch(prompts, options) {
|
|
10968
10968
|
const { margin = 0.02, ...embeddingOptions } = options;
|
|
10969
|
-
const
|
|
10970
|
-
return
|
|
10969
|
+
const embeddings2 = await generateEmbeddings(prompts, embeddingOptions);
|
|
10970
|
+
return embeddings2.map((emb) => classify3(emb, margin));
|
|
10971
10971
|
}
|
|
10972
10972
|
function createWeatherPreProcessor(options = {}) {
|
|
10973
10973
|
const margin = options.margin ?? 0.02;
|
|
@@ -11006,8 +11006,8 @@ async function classifyWebSearch(prompt, options) {
|
|
|
11006
11006
|
}
|
|
11007
11007
|
async function classifyWebSearchBatch(prompts, options) {
|
|
11008
11008
|
const { margin = 0.02, ...embeddingOptions } = options;
|
|
11009
|
-
const
|
|
11010
|
-
return
|
|
11009
|
+
const embeddings2 = await generateEmbeddings(prompts, embeddingOptions);
|
|
11010
|
+
return embeddings2.map((emb) => classify4(emb, margin));
|
|
11011
11011
|
}
|
|
11012
11012
|
function createWebSearchPreProcessor(options = {}) {
|
|
11013
11013
|
const margin = options.margin ?? 0.02;
|
|
@@ -11031,8 +11031,8 @@ function sseFailureMessage(status, statusText, detail = "") {
|
|
|
11031
11031
|
}
|
|
11032
11032
|
function parseSseChunks(raw, incompleteBuffer) {
|
|
11033
11033
|
const chunks3 = [];
|
|
11034
|
-
const
|
|
11035
|
-
const lines =
|
|
11034
|
+
const text15 = incompleteBuffer + raw;
|
|
11035
|
+
const lines = text15.split("\n");
|
|
11036
11036
|
const remaining = raw.endsWith("\n") ? "" : lines.pop() ?? "";
|
|
11037
11037
|
for (const line of lines) {
|
|
11038
11038
|
if (!line.startsWith("data: ")) continue;
|
|
@@ -11532,6 +11532,7 @@ function createNearbyRequest(options, apiPath = "/api/private-memories") {
|
|
|
11532
11532
|
}
|
|
11533
11533
|
throw error;
|
|
11534
11534
|
}
|
|
11535
|
+
if (response.status === 204) return null;
|
|
11535
11536
|
return await response.json();
|
|
11536
11537
|
} catch (error) {
|
|
11537
11538
|
if (timedOut) throw new RemoteMemoryError("Nearby request timed out", 408, "timeout");
|
|
@@ -11907,6 +11908,16 @@ var ChatStoreError = class extends Error {
|
|
|
11907
11908
|
// src/lib/chatStore/remote.ts
|
|
11908
11909
|
var kinds = /* @__PURE__ */ new Set(["conversation", "message", "summary", "project", "memory_links"]);
|
|
11909
11910
|
var cipherPattern = /^enc:v\d+:(?:[0-9a-f]{2}){28,}$/i;
|
|
11911
|
+
var maxPayload = 2 * 1024 * 1024;
|
|
11912
|
+
var storedDims = 1536;
|
|
11913
|
+
var maxRequestCiphertext = 8 * 1024 * 1024;
|
|
11914
|
+
var maxGetRefs = 50;
|
|
11915
|
+
var maxImportRecords = 100;
|
|
11916
|
+
var maxVerifyRevisions = 1e3;
|
|
11917
|
+
var maxChunksPerRecord = 16;
|
|
11918
|
+
var maxChunksPerRequest = 200;
|
|
11919
|
+
var maxAttachmentBytes = 50 * 1024 * 1024;
|
|
11920
|
+
var attachmentIdPattern = /^[0-9a-f]{32}$/;
|
|
11910
11921
|
var metadata = [
|
|
11911
11922
|
"kind",
|
|
11912
11923
|
"id",
|
|
@@ -11949,7 +11960,62 @@ function validRecord(value) {
|
|
|
11949
11960
|
))
|
|
11950
11961
|
return false;
|
|
11951
11962
|
const root = value.kind === "conversation" || value.kind === "project";
|
|
11952
|
-
return root ? value.conversationId === ""
|
|
11963
|
+
return root ? value.conversationId === "" : id(value.conversationId);
|
|
11964
|
+
}
|
|
11965
|
+
function embeddings(write) {
|
|
11966
|
+
if (write.embeddings === void 0) return true;
|
|
11967
|
+
return Array.isArray(write.embeddings) && !write.record.isDeleted && (write.record.kind === "message" || write.record.kind === "summary") && write.embeddings.length <= maxChunksPerRecord && (write.embeddingModel === void 0 || typeof write.embeddingModel === "string" && write.embeddingModel.length <= 256) && Array.from({ length: write.embeddings.length }, (_, i) => i).every(
|
|
11968
|
+
(i) => vector(write.embeddings?.[i])
|
|
11969
|
+
);
|
|
11970
|
+
}
|
|
11971
|
+
function vector(v) {
|
|
11972
|
+
if (!Array.isArray(v) || v.length !== 1536 && v.length !== 4096) return false;
|
|
11973
|
+
let nonZero = false;
|
|
11974
|
+
for (let i = 0; i < v.length; i++) {
|
|
11975
|
+
const x = v[i];
|
|
11976
|
+
if (typeof x !== "number" || !Number.isFinite(x)) return false;
|
|
11977
|
+
if (i < storedDims && x !== 0) nonZero = true;
|
|
11978
|
+
}
|
|
11979
|
+
return nonZero;
|
|
11980
|
+
}
|
|
11981
|
+
function vectorFields(write) {
|
|
11982
|
+
return {
|
|
11983
|
+
...write.embeddings !== void 0 ? { embeddings: write.embeddings.map((v) => v.slice(0, storedDims)) } : {},
|
|
11984
|
+
...write.embeddingModel !== void 0 ? { embedding_model: write.embeddingModel } : {}
|
|
11985
|
+
};
|
|
11986
|
+
}
|
|
11987
|
+
function text2(value) {
|
|
11988
|
+
return typeof value === "string";
|
|
11989
|
+
}
|
|
11990
|
+
function timestamp(value) {
|
|
11991
|
+
return typeof value === "string" && Number.isFinite(Date.parse(value));
|
|
11992
|
+
}
|
|
11993
|
+
function presigned(value) {
|
|
11994
|
+
if (!object(value) || !text2(value.url) || !/^https:\/\//.test(value.url) || !text2(value.method) || !object(value.headers) || !Object.values(value.headers).every(text2) || !timestamp(value.expires_at))
|
|
11995
|
+
invalid();
|
|
11996
|
+
return {
|
|
11997
|
+
url: value.url,
|
|
11998
|
+
method: value.method,
|
|
11999
|
+
headers: value.headers,
|
|
12000
|
+
expiresAt: value.expires_at
|
|
12001
|
+
};
|
|
12002
|
+
}
|
|
12003
|
+
function attachment(value) {
|
|
12004
|
+
if (!object(value) || !text2(value.attachment_id) || !attachmentIdPattern.test(value.attachment_id) || !integer(value.size_bytes, 1) || value.state !== "pending" && value.state !== "committed" || value.owner_kind !== void 0 && value.owner_kind !== "message" && value.owner_kind !== "summary" || value.owner_id !== void 0 && !id(value.owner_id) || !timestamp(value.created_at) || value.committed_at !== void 0 && !timestamp(value.committed_at))
|
|
12005
|
+
invalid();
|
|
12006
|
+
return {
|
|
12007
|
+
id: value.attachment_id,
|
|
12008
|
+
sizeBytes: value.size_bytes,
|
|
12009
|
+
state: value.state,
|
|
12010
|
+
...value.owner_kind !== void 0 ? { ownerKind: value.owner_kind } : {},
|
|
12011
|
+
...value.owner_id !== void 0 ? { ownerId: value.owner_id } : {},
|
|
12012
|
+
createdAt: value.created_at,
|
|
12013
|
+
...value.committed_at !== void 0 ? { committedAt: value.committed_at } : {}
|
|
12014
|
+
};
|
|
12015
|
+
}
|
|
12016
|
+
function ref(value) {
|
|
12017
|
+
if (!object(value) || !text2(value.kind) || !kinds.has(value.kind) || !id(value.id)) invalid();
|
|
12018
|
+
return { kind: value.kind, id: value.id };
|
|
11953
12019
|
}
|
|
11954
12020
|
function sameMetadata(a, b) {
|
|
11955
12021
|
return metadata.every((key) => a[key] === b[key]);
|
|
@@ -12005,8 +12071,11 @@ async function createRemoteChatStore(options) {
|
|
|
12005
12071
|
isDeleted: r.is_deleted,
|
|
12006
12072
|
data: {}
|
|
12007
12073
|
};
|
|
12008
|
-
if (!validRecord(plain) || typeof r.payload !== "string" || r.payload.length >
|
|
12074
|
+
if (!validRecord(plain) || typeof r.payload !== "string" || r.payload.length > maxPayload)
|
|
12009
12075
|
invalid();
|
|
12076
|
+
if (plain.isDeleted && r.payload === "")
|
|
12077
|
+
return { record: plain, version: value.version, serverUpdatedAt: value.server_updated_at };
|
|
12078
|
+
if (!cipherPattern.test(r.payload)) invalid();
|
|
12010
12079
|
const envelope = JSON.parse(await decrypt(r.payload));
|
|
12011
12080
|
if (!object(envelope) || envelope.schema !== 1 || envelope.account_id !== accountId || envelope.key_id !== keyId || !validRecord(envelope.record) || !sameMetadata(plain, envelope.record))
|
|
12012
12081
|
invalid();
|
|
@@ -12016,30 +12085,46 @@ async function createRemoteChatStore(options) {
|
|
|
12016
12085
|
serverUpdatedAt: value.server_updated_at
|
|
12017
12086
|
};
|
|
12018
12087
|
};
|
|
12019
|
-
const
|
|
12020
|
-
if (
|
|
12088
|
+
const seal = async (record2, signal) => {
|
|
12089
|
+
if (record2.isDeleted) return "";
|
|
12090
|
+
const payload = await encrypt(
|
|
12091
|
+
JSON.stringify({ schema: 1, account_id: accountId, key_id: keyId, record: record2 })
|
|
12092
|
+
);
|
|
12093
|
+
signal?.throwIfAborted();
|
|
12094
|
+
if (!cipherPattern.test(payload) || payload.length > maxPayload) invalid();
|
|
12095
|
+
return payload;
|
|
12096
|
+
};
|
|
12097
|
+
const capture = (items, max, signal) => {
|
|
12098
|
+
if (!Array.isArray(items) || items.length < 1 || items.length > max) invalid();
|
|
12021
12099
|
const seen = /* @__PURE__ */ new Set();
|
|
12022
|
-
|
|
12100
|
+
let chunks3 = 0;
|
|
12101
|
+
return items.map((item) => {
|
|
12023
12102
|
signal?.throwIfAborted();
|
|
12024
|
-
if (!validRecord(
|
|
12025
|
-
|
|
12026
|
-
|
|
12103
|
+
if (!validRecord(item.record) || !embeddings(item)) invalid();
|
|
12104
|
+
chunks3 += item.embeddings?.length ?? 0;
|
|
12105
|
+
if (chunks3 > maxChunksPerRequest) invalid();
|
|
12106
|
+
const copy = JSON.parse(JSON.stringify(item));
|
|
12107
|
+
const recordKey = `${copy.record.kind}/${copy.record.id}`;
|
|
12027
12108
|
if (seen.has(recordKey)) invalid();
|
|
12028
12109
|
seen.add(recordKey);
|
|
12029
|
-
return
|
|
12110
|
+
return copy;
|
|
12030
12111
|
});
|
|
12112
|
+
};
|
|
12113
|
+
const putMany = async (writes, signal) => {
|
|
12114
|
+
if (Array.isArray(writes) && writes.some((w) => !integer(w.expectedVersion)))
|
|
12115
|
+
invalid();
|
|
12116
|
+
const captured = capture(writes, 25, signal);
|
|
12031
12117
|
let bytes2 = 0;
|
|
12032
12118
|
const prepared = [];
|
|
12033
12119
|
for (const write of captured) {
|
|
12034
|
-
const
|
|
12035
|
-
const payload = await encrypt(
|
|
12036
|
-
JSON.stringify({ schema: 1, account_id: accountId, key_id: keyId, record: record2 })
|
|
12037
|
-
);
|
|
12038
|
-
signal?.throwIfAborted();
|
|
12039
|
-
if (!cipherPattern.test(payload) || payload.length > 2 * 1024 * 1024) invalid();
|
|
12120
|
+
const payload = await seal(write.record, signal);
|
|
12040
12121
|
bytes2 += payload.length;
|
|
12041
|
-
if (bytes2 >
|
|
12042
|
-
prepared.push({
|
|
12122
|
+
if (bytes2 > maxRequestCiphertext) invalid();
|
|
12123
|
+
prepared.push({
|
|
12124
|
+
record: wire(write.record, payload),
|
|
12125
|
+
expected_version: write.expectedVersion,
|
|
12126
|
+
...vectorFields(write)
|
|
12127
|
+
});
|
|
12043
12128
|
}
|
|
12044
12129
|
const result = await request(
|
|
12045
12130
|
"/records/batch",
|
|
@@ -12054,7 +12139,8 @@ async function createRemoteChatStore(options) {
|
|
|
12054
12139
|
const out = [];
|
|
12055
12140
|
for (let i = 0; i < result.items.length; i++) {
|
|
12056
12141
|
const value = result.items[i];
|
|
12057
|
-
|
|
12142
|
+
const deleted = prepared[i].record.is_deleted;
|
|
12143
|
+
if (!object(value) || !object(value.record) || value.record.kind !== prepared[i].record.kind || value.record.id !== prepared[i].record.id || value.record.payload !== prepared[i].record.payload || (deleted ? value.record.is_deleted !== true || !integer(value.version, 1) : value.version !== prepared[i].expected_version + 1))
|
|
12058
12144
|
invalid();
|
|
12059
12145
|
out.push(await decode(value));
|
|
12060
12146
|
}
|
|
@@ -12083,7 +12169,7 @@ async function createRemoteChatStore(options) {
|
|
|
12083
12169
|
async list(query) {
|
|
12084
12170
|
const limit = query.limit ?? 20;
|
|
12085
12171
|
const parent = query.conversationId ?? "";
|
|
12086
|
-
if (!kinds.has(query.kind) || !integer(limit, 1) || query.includeDeleted !== void 0 && typeof query.includeDeleted !== "boolean" || limit > 50 || (query.cursor?.length ?? 0) > 2048 || (query.kind === "conversation" || query.kind === "project" ? parent !== "" : !id(parent)))
|
|
12172
|
+
if (!kinds.has(query.kind) || !integer(limit, 1) || query.includeDeleted !== void 0 && typeof query.includeDeleted !== "boolean" || limit > (query.kind === "message" ? 200 : 50) || (query.cursor?.length ?? 0) > 2048 || (query.kind === "conversation" || query.kind === "project" ? parent !== "" : !id(parent)))
|
|
12087
12173
|
invalid();
|
|
12088
12174
|
const params = new URLSearchParams({
|
|
12089
12175
|
account_id: String(accountId),
|
|
@@ -12094,7 +12180,7 @@ async function createRemoteChatStore(options) {
|
|
|
12094
12180
|
});
|
|
12095
12181
|
if (query.cursor) params.set("cursor", query.cursor);
|
|
12096
12182
|
const value = await request(`/records?${params}`, {}, query.signal);
|
|
12097
|
-
if (!object(value) || !Array.isArray(value.items) || value.items.length > limit || value.next_cursor !== void 0 && (typeof value.next_cursor !== "string" || value.next_cursor.length > 2048))
|
|
12183
|
+
if (!object(value) || !Array.isArray(value.items) || value.items.length > limit || value.next_cursor !== void 0 && (typeof value.next_cursor !== "string" || value.next_cursor.length > 2048) || value.total !== void 0 && !integer(value.total))
|
|
12098
12184
|
invalid();
|
|
12099
12185
|
const items = [];
|
|
12100
12186
|
for (const item of value.items) {
|
|
@@ -12104,11 +12190,258 @@ async function createRemoteChatStore(options) {
|
|
|
12104
12190
|
items.push(result);
|
|
12105
12191
|
}
|
|
12106
12192
|
query.signal?.throwIfAborted();
|
|
12107
|
-
return {
|
|
12193
|
+
return {
|
|
12194
|
+
items,
|
|
12195
|
+
...value.next_cursor ? { nextCursor: value.next_cursor } : {},
|
|
12196
|
+
...value.total !== void 0 ? { total: value.total } : {}
|
|
12197
|
+
};
|
|
12198
|
+
},
|
|
12199
|
+
putMany,
|
|
12200
|
+
async getMany(refs, signal) {
|
|
12201
|
+
if (!Array.isArray(refs)) invalid();
|
|
12202
|
+
const wanted = /* @__PURE__ */ new Map();
|
|
12203
|
+
for (const r of refs) {
|
|
12204
|
+
const checked = ref(r);
|
|
12205
|
+
wanted.set(`${checked.kind}/${checked.id}`, checked);
|
|
12206
|
+
}
|
|
12207
|
+
const found = /* @__PURE__ */ new Map();
|
|
12208
|
+
let pending = [...wanted.values()];
|
|
12209
|
+
while (pending.length > 0) {
|
|
12210
|
+
const batch = pending.slice(0, maxGetRefs);
|
|
12211
|
+
pending = pending.slice(maxGetRefs);
|
|
12212
|
+
const value = await request(
|
|
12213
|
+
"/records/get",
|
|
12214
|
+
{ method: "POST", body: JSON.stringify({ account_id: accountId, refs: batch }) },
|
|
12215
|
+
signal
|
|
12216
|
+
);
|
|
12217
|
+
if (!object(value) || !Array.isArray(value.items) || value.remaining !== void 0 && !Array.isArray(value.remaining))
|
|
12218
|
+
invalid();
|
|
12219
|
+
const asked = new Set(batch.map((r) => `${r.kind}/${r.id}`));
|
|
12220
|
+
for (const item of value.items) {
|
|
12221
|
+
const snapshot = await decode(item);
|
|
12222
|
+
const key = `${snapshot.record.kind}/${snapshot.record.id}`;
|
|
12223
|
+
if (!asked.has(key) || found.has(key)) invalid();
|
|
12224
|
+
found.set(key, snapshot);
|
|
12225
|
+
}
|
|
12226
|
+
const remaining = (value.remaining ?? []).map(ref);
|
|
12227
|
+
if (remaining.some((r) => !asked.has(`${r.kind}/${r.id}`) || found.has(`${r.kind}/${r.id}`)))
|
|
12228
|
+
invalid();
|
|
12229
|
+
if (remaining.length > 0 && value.items.length === 0) invalid();
|
|
12230
|
+
pending = [...remaining, ...pending];
|
|
12231
|
+
}
|
|
12232
|
+
signal?.throwIfAborted();
|
|
12233
|
+
return [...wanted.keys()].flatMap((key) => {
|
|
12234
|
+
const snapshot = found.get(key);
|
|
12235
|
+
return snapshot ? [snapshot] : [];
|
|
12236
|
+
});
|
|
12237
|
+
},
|
|
12238
|
+
async account(signal) {
|
|
12239
|
+
const value = await request("/account", {}, signal);
|
|
12240
|
+
if (!object(value) || value.account_id !== accountId || !text2(value.key_id) || value.state !== "none" && value.state !== "migrating" && value.state !== "active" || !integer(value.record_count) || !integer(value.storage_bytes) || !integer(value.vector_count))
|
|
12241
|
+
invalid();
|
|
12242
|
+
if (value.key_id && value.key_id !== keyId)
|
|
12243
|
+
throw new ChatStoreError("Canonical chat key does not match", 409, "key_mismatch");
|
|
12244
|
+
const out = {
|
|
12245
|
+
keyId: value.key_id,
|
|
12246
|
+
state: value.state,
|
|
12247
|
+
recordCount: value.record_count,
|
|
12248
|
+
storageBytes: value.storage_bytes,
|
|
12249
|
+
vectorCount: value.vector_count
|
|
12250
|
+
};
|
|
12251
|
+
return out;
|
|
12108
12252
|
},
|
|
12109
|
-
|
|
12253
|
+
async importRecords(records, signal) {
|
|
12254
|
+
const captured = capture(records, maxImportRecords, signal);
|
|
12255
|
+
let bytes2 = 0;
|
|
12256
|
+
const prepared = [];
|
|
12257
|
+
for (const item of captured) {
|
|
12258
|
+
const payload = await seal(item.record, signal);
|
|
12259
|
+
bytes2 += payload.length;
|
|
12260
|
+
if (bytes2 > maxRequestCiphertext) invalid();
|
|
12261
|
+
prepared.push({ record: wire(item.record, payload), ...vectorFields(item) });
|
|
12262
|
+
}
|
|
12263
|
+
const value = await request(
|
|
12264
|
+
"/import",
|
|
12265
|
+
{
|
|
12266
|
+
method: "POST",
|
|
12267
|
+
body: JSON.stringify({ account_id: accountId, key_id: keyId, records: prepared })
|
|
12268
|
+
},
|
|
12269
|
+
signal
|
|
12270
|
+
);
|
|
12271
|
+
if (!object(value) || !integer(value.written) || value.written > prepared.length) invalid();
|
|
12272
|
+
return value.written;
|
|
12273
|
+
},
|
|
12274
|
+
async verify(revisions, signal) {
|
|
12275
|
+
if (!Array.isArray(revisions) || revisions.length > maxVerifyRevisions) invalid();
|
|
12276
|
+
const asked = /* @__PURE__ */ new Set();
|
|
12277
|
+
const wireRevisions = revisions.map((r) => {
|
|
12278
|
+
const checked = ref(r);
|
|
12279
|
+
if (!integer(r.updatedAt, 1) || typeof r.isDeleted !== "boolean") invalid();
|
|
12280
|
+
asked.add(`${checked.kind}/${checked.id}`);
|
|
12281
|
+
return {
|
|
12282
|
+
kind: checked.kind,
|
|
12283
|
+
id: checked.id,
|
|
12284
|
+
updated_at: r.updatedAt,
|
|
12285
|
+
is_deleted: r.isDeleted
|
|
12286
|
+
};
|
|
12287
|
+
});
|
|
12288
|
+
if (wireRevisions.length === 0) return [];
|
|
12289
|
+
const value = await request(
|
|
12290
|
+
"/verify",
|
|
12291
|
+
{
|
|
12292
|
+
method: "POST",
|
|
12293
|
+
body: JSON.stringify({ account_id: accountId, revisions: wireRevisions })
|
|
12294
|
+
},
|
|
12295
|
+
signal
|
|
12296
|
+
);
|
|
12297
|
+
if (!object(value) || !Array.isArray(value.missing)) invalid();
|
|
12298
|
+
const missing = value.missing.map(ref);
|
|
12299
|
+
if (missing.some((r) => !asked.has(`${r.kind}/${r.id}`))) invalid();
|
|
12300
|
+
return missing;
|
|
12301
|
+
},
|
|
12302
|
+
async activate(signal) {
|
|
12303
|
+
const value = await request(
|
|
12304
|
+
"/account",
|
|
12305
|
+
{ method: "PUT", body: JSON.stringify({ account_id: accountId, state: "active" }) },
|
|
12306
|
+
signal
|
|
12307
|
+
);
|
|
12308
|
+
if (!object(value) || value.state !== "active" || typeof value.transitioned !== "boolean")
|
|
12309
|
+
invalid();
|
|
12310
|
+
return value.transitioned;
|
|
12311
|
+
},
|
|
12312
|
+
async changes(cursor, options2) {
|
|
12313
|
+
const limit = options2?.limit ?? 100;
|
|
12314
|
+
if (!integer(limit, 1) || limit > 200 || cursor !== void 0 && (!text2(cursor) || cursor.length > 2048))
|
|
12315
|
+
invalid();
|
|
12316
|
+
const params = new URLSearchParams({ account_id: String(accountId), limit: String(limit) });
|
|
12317
|
+
if (cursor) params.set("cursor", cursor);
|
|
12318
|
+
const value = await request(`/changes?${params}`, {}, options2?.signal);
|
|
12319
|
+
if (!object(value) || !Array.isArray(value.items) || value.items.length > limit || value.next_cursor !== void 0 && !text2(value.next_cursor) || value.changes_cursor !== void 0 && !text2(value.changes_cursor))
|
|
12320
|
+
invalid();
|
|
12321
|
+
const items = [];
|
|
12322
|
+
for (const item of value.items) items.push(await decode(item));
|
|
12323
|
+
options2?.signal?.throwIfAborted();
|
|
12324
|
+
return {
|
|
12325
|
+
items,
|
|
12326
|
+
...value.next_cursor ? { nextCursor: value.next_cursor } : {},
|
|
12327
|
+
changesCursor: value.changes_cursor ?? cursor ?? ""
|
|
12328
|
+
};
|
|
12329
|
+
},
|
|
12330
|
+
async search(embedding2, options2) {
|
|
12331
|
+
const limit = options2?.limit ?? 20;
|
|
12332
|
+
const kindsFilter = options2?.kinds;
|
|
12333
|
+
if (!Array.isArray(embedding2) || !embeddings({
|
|
12334
|
+
record: { ...emptyMessage, isDeleted: false },
|
|
12335
|
+
embeddings: [embedding2]
|
|
12336
|
+
}) || !integer(limit, 1) || limit > 50 || kindsFilter !== void 0 && (!Array.isArray(kindsFilter) || kindsFilter.length === 0 || kindsFilter.some((k) => k !== "message" && k !== "summary")) || options2?.conversationId !== void 0 && !id(options2.conversationId))
|
|
12337
|
+
invalid();
|
|
12338
|
+
const value = await request(
|
|
12339
|
+
"/search",
|
|
12340
|
+
{
|
|
12341
|
+
method: "POST",
|
|
12342
|
+
body: JSON.stringify({
|
|
12343
|
+
account_id: accountId,
|
|
12344
|
+
embedding: embedding2.slice(0, storedDims),
|
|
12345
|
+
limit,
|
|
12346
|
+
...kindsFilter ? { kinds: kindsFilter } : {},
|
|
12347
|
+
...options2?.conversationId ? { conversation_id: options2.conversationId } : {}
|
|
12348
|
+
})
|
|
12349
|
+
},
|
|
12350
|
+
options2?.signal
|
|
12351
|
+
);
|
|
12352
|
+
if (!object(value) || !Array.isArray(value.items) || value.items.length > limit) invalid();
|
|
12353
|
+
const hits = [];
|
|
12354
|
+
for (const item of value.items) {
|
|
12355
|
+
if (!object(item) || !integer(item.chunk) || typeof item.score !== "number" || !Number.isFinite(item.score))
|
|
12356
|
+
invalid();
|
|
12357
|
+
const snapshot = await decode(item);
|
|
12358
|
+
if (snapshot.record.isDeleted || kindsFilter !== void 0 && !kindsFilter.includes(snapshot.record.kind) || snapshot.record.kind !== "message" && snapshot.record.kind !== "summary" || options2?.conversationId !== void 0 && snapshot.record.conversationId !== options2.conversationId)
|
|
12359
|
+
invalid();
|
|
12360
|
+
hits.push({ ...snapshot, chunk: item.chunk, score: item.score });
|
|
12361
|
+
}
|
|
12362
|
+
options2?.signal?.throwIfAborted();
|
|
12363
|
+
return hits;
|
|
12364
|
+
},
|
|
12365
|
+
async deleteAll(signal) {
|
|
12366
|
+
const value = await request(`/records?account_id=${accountId}`, { method: "DELETE" }, signal);
|
|
12367
|
+
if (!object(value) || !integer(value.deleted)) invalid();
|
|
12368
|
+
return value.deleted;
|
|
12369
|
+
},
|
|
12370
|
+
attachments: {
|
|
12371
|
+
async create(sizeBytes, signal) {
|
|
12372
|
+
if (!integer(sizeBytes, 1) || sizeBytes > maxAttachmentBytes) invalid();
|
|
12373
|
+
const value = await request(
|
|
12374
|
+
"/attachments",
|
|
12375
|
+
{
|
|
12376
|
+
method: "POST",
|
|
12377
|
+
body: JSON.stringify({ account_id: accountId, size_bytes: sizeBytes })
|
|
12378
|
+
},
|
|
12379
|
+
signal
|
|
12380
|
+
);
|
|
12381
|
+
if (!object(value)) invalid();
|
|
12382
|
+
const created = attachment(value.attachment);
|
|
12383
|
+
if (created.sizeBytes !== sizeBytes || created.state !== "pending") invalid();
|
|
12384
|
+
return { attachment: created, upload: presigned(value.upload) };
|
|
12385
|
+
},
|
|
12386
|
+
async commit(attachmentId, owner, signal) {
|
|
12387
|
+
if (!attachmentIdPattern.test(attachmentId) || !object(owner) || owner.kind !== "message" && owner.kind !== "summary" || !id(owner.id))
|
|
12388
|
+
invalid();
|
|
12389
|
+
const value = await request(
|
|
12390
|
+
`/attachments/${attachmentId}/commit`,
|
|
12391
|
+
{
|
|
12392
|
+
method: "POST",
|
|
12393
|
+
body: JSON.stringify({
|
|
12394
|
+
account_id: accountId,
|
|
12395
|
+
owner_kind: owner.kind,
|
|
12396
|
+
owner_id: owner.id
|
|
12397
|
+
})
|
|
12398
|
+
},
|
|
12399
|
+
signal
|
|
12400
|
+
);
|
|
12401
|
+
if (!object(value)) invalid();
|
|
12402
|
+
const committed = attachment(value.attachment);
|
|
12403
|
+
if (committed.id !== attachmentId || committed.state !== "committed" || committed.ownerKind !== owner.kind || committed.ownerId !== owner.id)
|
|
12404
|
+
invalid();
|
|
12405
|
+
return committed;
|
|
12406
|
+
},
|
|
12407
|
+
async get(attachmentId, signal) {
|
|
12408
|
+
if (!attachmentIdPattern.test(attachmentId)) invalid();
|
|
12409
|
+
let value;
|
|
12410
|
+
try {
|
|
12411
|
+
value = await request(`/attachments/${attachmentId}?account_id=${accountId}`, {}, signal);
|
|
12412
|
+
} catch (error) {
|
|
12413
|
+
if (error instanceof ChatStoreError && error.status === 404) return null;
|
|
12414
|
+
throw error;
|
|
12415
|
+
}
|
|
12416
|
+
if (!object(value)) invalid();
|
|
12417
|
+
const found = attachment(value.attachment);
|
|
12418
|
+
if (found.id !== attachmentId) invalid();
|
|
12419
|
+
return {
|
|
12420
|
+
attachment: found,
|
|
12421
|
+
...value.download !== void 0 ? { download: presigned(value.download) } : {}
|
|
12422
|
+
};
|
|
12423
|
+
},
|
|
12424
|
+
async delete(attachmentId, signal) {
|
|
12425
|
+
if (!attachmentIdPattern.test(attachmentId)) invalid();
|
|
12426
|
+
await request(
|
|
12427
|
+
`/attachments/${attachmentId}?account_id=${accountId}`,
|
|
12428
|
+
{ method: "DELETE" },
|
|
12429
|
+
signal
|
|
12430
|
+
);
|
|
12431
|
+
}
|
|
12432
|
+
}
|
|
12110
12433
|
};
|
|
12111
12434
|
}
|
|
12435
|
+
var emptyMessage = {
|
|
12436
|
+
kind: "message",
|
|
12437
|
+
id: "query",
|
|
12438
|
+
conversationId: "query",
|
|
12439
|
+
sortKey: 0,
|
|
12440
|
+
createdAt: 1,
|
|
12441
|
+
updatedAt: 1,
|
|
12442
|
+
isDeleted: false,
|
|
12443
|
+
data: {}
|
|
12444
|
+
};
|
|
12112
12445
|
|
|
12113
12446
|
// src/lib/db/chat/lazyDecrypt.ts
|
|
12114
12447
|
var LRU_CAPACITY = 256;
|
|
@@ -12471,14 +12804,14 @@ var MaskScopedEmbeddingCache = class extends Map {
|
|
|
12471
12804
|
this.inner = inner;
|
|
12472
12805
|
this.masked = masked;
|
|
12473
12806
|
}
|
|
12474
|
-
key(
|
|
12475
|
-
return `${this.masked ? "m" : "r"}:${
|
|
12807
|
+
key(text15) {
|
|
12808
|
+
return `${this.masked ? "m" : "r"}:${text15}`;
|
|
12476
12809
|
}
|
|
12477
|
-
get(
|
|
12478
|
-
return this.inner.get(this.key(
|
|
12810
|
+
get(text15) {
|
|
12811
|
+
return this.inner.get(this.key(text15));
|
|
12479
12812
|
}
|
|
12480
|
-
set(
|
|
12481
|
-
this.inner.set(this.key(
|
|
12813
|
+
set(text15, value) {
|
|
12814
|
+
this.inner.set(this.key(text15), value);
|
|
12482
12815
|
return this;
|
|
12483
12816
|
}
|
|
12484
12817
|
};
|
|
@@ -17235,8 +17568,8 @@ var STOPWORDS = /* @__PURE__ */ new Set([
|
|
|
17235
17568
|
"user",
|
|
17236
17569
|
"users"
|
|
17237
17570
|
]);
|
|
17238
|
-
function tokenize(
|
|
17239
|
-
const m =
|
|
17571
|
+
function tokenize(text15) {
|
|
17572
|
+
const m = text15.toLowerCase().match(TOKEN_RE);
|
|
17240
17573
|
if (!m) return [];
|
|
17241
17574
|
return m.filter((t) => !STOPWORDS.has(t));
|
|
17242
17575
|
}
|
|
@@ -17448,13 +17781,13 @@ function embedVaultRows(ctx, options, rows, preparation) {
|
|
|
17448
17781
|
);
|
|
17449
17782
|
[...missing].forEach(([key, row], index) => {
|
|
17450
17783
|
const request = batch.then((vectors) => {
|
|
17451
|
-
const
|
|
17452
|
-
updateVaultMemoryEmbeddingOp(ctx, row.uniqueId, JSON.stringify(
|
|
17784
|
+
const vector2 = vectors[index];
|
|
17785
|
+
updateVaultMemoryEmbeddingOp(ctx, row.uniqueId, JSON.stringify(vector2), model, {
|
|
17453
17786
|
content: row.content,
|
|
17454
17787
|
updatedAt: row.updatedAt?.getTime()
|
|
17455
17788
|
}).catch(() => {
|
|
17456
17789
|
});
|
|
17457
|
-
return
|
|
17790
|
+
return vector2;
|
|
17458
17791
|
}).finally(() => {
|
|
17459
17792
|
entries.delete(key);
|
|
17460
17793
|
if (entries.size === 0) pendingRows.get(ctx)?.delete(options.maskInput);
|
|
@@ -18068,12 +18401,12 @@ async function preEmbedVaultMemories(vaultCtx, embeddingOptions, cache, options)
|
|
|
18068
18401
|
}
|
|
18069
18402
|
}
|
|
18070
18403
|
if (uncachedTexts.length > 0) {
|
|
18071
|
-
const
|
|
18404
|
+
const embeddings2 = await embedVaultRows(vaultCtx, embeddingOptions, uncachedRows);
|
|
18072
18405
|
for (let i = 0; i < uncachedKeys.length; i++) {
|
|
18073
18406
|
cacheRowVector(
|
|
18074
18407
|
cache,
|
|
18075
18408
|
uncachedKeys[i],
|
|
18076
|
-
Float32Array.from(
|
|
18409
|
+
Float32Array.from(embeddings2[i]),
|
|
18077
18410
|
uncachedVersions[i],
|
|
18078
18411
|
uncachedTexts[i]
|
|
18079
18412
|
);
|
|
@@ -19879,7 +20212,7 @@ function createAutoExtractor(options) {
|
|
|
19879
20212
|
...options.retainCtx,
|
|
19880
20213
|
embeddingOptions: {
|
|
19881
20214
|
...options.retainCtx.embeddingOptions,
|
|
19882
|
-
maskInput: (
|
|
20215
|
+
maskInput: (text15) => piiRedactor.maskText(text15)
|
|
19883
20216
|
}
|
|
19884
20217
|
} : options.retainCtx;
|
|
19885
20218
|
function processTurn(messages, conversationId) {
|
|
@@ -21817,12 +22150,12 @@ ${JSON.stringify(
|
|
|
21817
22150
|
function parseAnswer(body, base, parseSchema) {
|
|
21818
22151
|
if (typeof body !== "object" || body === null) return base;
|
|
21819
22152
|
const obj = body;
|
|
21820
|
-
const
|
|
22153
|
+
const text15 = extractCompletionContent(obj) ?? "";
|
|
21821
22154
|
const usage = obj.usage;
|
|
21822
22155
|
let structuredOutput;
|
|
21823
|
-
if (parseSchema &&
|
|
22156
|
+
if (parseSchema && text15) {
|
|
21824
22157
|
try {
|
|
21825
|
-
structuredOutput = JSON.parse(extractJsonCandidate(
|
|
22158
|
+
structuredOutput = JSON.parse(extractJsonCandidate(text15));
|
|
21826
22159
|
} catch (err) {
|
|
21827
22160
|
getLogger().warn("[memory/reflect] structured output was not valid JSON", {
|
|
21828
22161
|
err: err instanceof Error ? err.message : String(err)
|
|
@@ -21832,7 +22165,7 @@ function parseAnswer(body, base, parseSchema) {
|
|
|
21832
22165
|
const promptTokens = usage?.prompt_tokens ?? usage?.input_tokens ?? 0;
|
|
21833
22166
|
const completionTokens = usage?.completion_tokens ?? usage?.output_tokens ?? 0;
|
|
21834
22167
|
return {
|
|
21835
|
-
text:
|
|
22168
|
+
text: text15,
|
|
21836
22169
|
...structuredOutput !== void 0 && { structuredOutput },
|
|
21837
22170
|
basedOn: base.basedOn,
|
|
21838
22171
|
usage: {
|
|
@@ -22403,10 +22736,10 @@ init_logger();
|
|
|
22403
22736
|
// src/lib/memory/store/remotePipeline.ts
|
|
22404
22737
|
var import_uuid4 = require("uuid");
|
|
22405
22738
|
init_logger();
|
|
22406
|
-
function storedVector(
|
|
22407
|
-
if (!Array.isArray(
|
|
22739
|
+
function storedVector(vector2) {
|
|
22740
|
+
if (!Array.isArray(vector2) || vector2.length !== 1536 && vector2.length !== 4096 || vector2.some((v) => !Number.isFinite(v)))
|
|
22408
22741
|
throw new Error("Remote memories require a finite 1536/4096-dimensional vector");
|
|
22409
|
-
const out =
|
|
22742
|
+
const out = vector2.slice(0, 1536);
|
|
22410
22743
|
const norm = Math.sqrt(out.reduce((sum, v) => sum + v * v, 0));
|
|
22411
22744
|
if (!norm) throw new Error("Remote query/content vector has no direction after MRL truncation");
|
|
22412
22745
|
return out.map((v) => v / norm);
|
|
@@ -22765,7 +23098,7 @@ function createRemoteMemoryPipeline(options) {
|
|
|
22765
23098
|
const factSource = {
|
|
22766
23099
|
graphRanking: options.graphRanking,
|
|
22767
23100
|
temporalRanking: options.temporalRanking,
|
|
22768
|
-
search: async (
|
|
23101
|
+
search: async (text15, searchOptions, embeddingCache) => {
|
|
22769
23102
|
const queryOptions = {
|
|
22770
23103
|
...embeddingOptions,
|
|
22771
23104
|
taskType: "memory_recall_embed",
|
|
@@ -22774,8 +23107,8 @@ function createRemoteMemoryPipeline(options) {
|
|
|
22774
23107
|
}
|
|
22775
23108
|
};
|
|
22776
23109
|
const { prepare } = operation("recall", queryOptions);
|
|
22777
|
-
const prepared = await prepare(
|
|
22778
|
-
const ranked = await rankPreparedVaultCandidates(
|
|
23110
|
+
const prepared = await prepare(text15, searchOptions);
|
|
23111
|
+
const ranked = await rankPreparedVaultCandidates(text15, prepared, queryOptions, searchOptions);
|
|
22779
23112
|
return {
|
|
22780
23113
|
...ranked,
|
|
22781
23114
|
rankedOnCosine: prepared.memories.length > 0 && !prepared.embeddingsUnavailable,
|
|
@@ -22865,7 +23198,7 @@ var METADATA_FIELDS = [
|
|
|
22865
23198
|
"published_at",
|
|
22866
23199
|
"geohash"
|
|
22867
23200
|
];
|
|
22868
|
-
function
|
|
23201
|
+
function text14(value) {
|
|
22869
23202
|
return typeof value === "string" && value !== "" ? value : void 0;
|
|
22870
23203
|
}
|
|
22871
23204
|
function num(value) {
|
|
@@ -22886,14 +23219,14 @@ function revision(raw) {
|
|
|
22886
23219
|
};
|
|
22887
23220
|
}
|
|
22888
23221
|
function embedding(raw, model) {
|
|
22889
|
-
const value =
|
|
23222
|
+
const value = text14(raw.embedding);
|
|
22890
23223
|
if (!value) return void 0;
|
|
22891
23224
|
try {
|
|
22892
|
-
const
|
|
22893
|
-
const stored2 =
|
|
22894
|
-
if (stored2 === void 0 ?
|
|
23225
|
+
const vector2 = JSON.parse(value);
|
|
23226
|
+
const stored2 = text14(raw.embedding_model);
|
|
23227
|
+
if (stored2 === void 0 ? vector2.length !== LOCAL_VECTOR_DIMS : stored2 !== model)
|
|
22895
23228
|
return void 0;
|
|
22896
|
-
return storedVector(
|
|
23229
|
+
return storedVector(vector2);
|
|
22897
23230
|
} catch {
|
|
22898
23231
|
return void 0;
|
|
22899
23232
|
}
|
|
@@ -22907,7 +23240,7 @@ function stringArray(value) {
|
|
|
22907
23240
|
}
|
|
22908
23241
|
}
|
|
22909
23242
|
function sourceChunkIds(raw) {
|
|
22910
|
-
const value =
|
|
23243
|
+
const value = text14(raw.source_chunk_ids);
|
|
22911
23244
|
const ids = value && stringArray(value);
|
|
22912
23245
|
return ids ? serializeSourceChunkIds(ids) : value;
|
|
22913
23246
|
}
|
|
@@ -22919,39 +23252,39 @@ function fitsNearby(row) {
|
|
|
22919
23252
|
}
|
|
22920
23253
|
function invalid2(raw) {
|
|
22921
23254
|
const id2 = raw.id;
|
|
22922
|
-
return typeof id2 !== "string" || id2 === "" || bytes(id2) > MAX_ID_BYTES || !
|
|
23255
|
+
return typeof id2 !== "string" || id2 === "" || bytes(id2) > MAX_ID_BYTES || !text14(raw.scope) || (num(raw.created_at) ?? 0) <= 0 || (num(raw.updated_at) ?? 0) <= 0;
|
|
22923
23256
|
}
|
|
22924
23257
|
function metadata2(raw, model) {
|
|
22925
|
-
const
|
|
23258
|
+
const vector2 = embedding(raw, model);
|
|
22926
23259
|
return {
|
|
22927
23260
|
scope: raw.scope,
|
|
22928
|
-
kind:
|
|
22929
|
-
level:
|
|
22930
|
-
folder_id:
|
|
23261
|
+
kind: text14(raw.kind),
|
|
23262
|
+
level: text14(raw.level),
|
|
23263
|
+
folder_id: text14(raw.folder_id),
|
|
22931
23264
|
is_deleted: bool(raw.is_deleted) ?? false,
|
|
22932
|
-
...
|
|
23265
|
+
...vector2 && { embedding: vector2, embedding_model: model },
|
|
22933
23266
|
source_chunk_ids: sourceChunkIds(raw),
|
|
22934
23267
|
proof_count: num(raw.proof_count),
|
|
22935
|
-
source:
|
|
23268
|
+
source: text14(raw.source),
|
|
22936
23269
|
event_time_start: num(raw.event_time_start),
|
|
22937
23270
|
event_time_end: num(raw.event_time_end),
|
|
22938
|
-
event_time_kind:
|
|
23271
|
+
event_time_kind: text14(raw.event_time_kind),
|
|
22939
23272
|
topics_user_managed: bool(raw.topics_user_managed),
|
|
22940
|
-
topics:
|
|
23273
|
+
topics: text14(raw.topics),
|
|
22941
23274
|
topics_updated_at: num(raw.topics_updated_at),
|
|
22942
|
-
media:
|
|
23275
|
+
media: text14(raw.media),
|
|
22943
23276
|
topics_extracted_at: num(raw.topics_extracted_at),
|
|
22944
23277
|
topics_extracted_version: num(raw.topics_extracted_version),
|
|
22945
|
-
superseded_by:
|
|
23278
|
+
superseded_by: text14(raw.superseded_by),
|
|
22946
23279
|
superseded_at: num(raw.superseded_at),
|
|
22947
23280
|
last_observed_at: num(raw.last_observed_at),
|
|
22948
|
-
fact_type:
|
|
23281
|
+
fact_type: text14(raw.fact_type),
|
|
22949
23282
|
archived_at: num(raw.archived_at),
|
|
22950
|
-
trust_tier:
|
|
22951
|
-
visibility:
|
|
23283
|
+
trust_tier: text14(raw.trust_tier),
|
|
23284
|
+
visibility: text14(raw.visibility),
|
|
22952
23285
|
twin_opt_in: bool(raw.twin_opt_in),
|
|
22953
23286
|
published_at: num(raw.published_at),
|
|
22954
|
-
geohash:
|
|
23287
|
+
geohash: text14(raw.geohash)
|
|
22955
23288
|
};
|
|
22956
23289
|
}
|
|
22957
23290
|
function defined(value) {
|
|
@@ -22962,7 +23295,7 @@ function defined(value) {
|
|
|
22962
23295
|
async function prepareRow(raw, canonical, rings, model, updatedAt) {
|
|
22963
23296
|
const deleted = bool(raw.is_deleted) ?? false;
|
|
22964
23297
|
const { encrypt } = memoryCipher(canonical);
|
|
22965
|
-
const localKindValue =
|
|
23298
|
+
const localKindValue = text14(raw.kind_value);
|
|
22966
23299
|
let plaintext;
|
|
22967
23300
|
let kindValue;
|
|
22968
23301
|
try {
|
|
@@ -23106,7 +23439,7 @@ async function remoteMetadata(request, ids, signal) {
|
|
|
23106
23439
|
}
|
|
23107
23440
|
async function backfillTopics(ctx) {
|
|
23108
23441
|
if (!ctx.entityCtx) return;
|
|
23109
|
-
const topicless = (await getAllVaultMemoryRowsOp(ctx)).filter((raw) => !
|
|
23442
|
+
const topicless = (await getAllVaultMemoryRowsOp(ctx)).filter((raw) => !text14(raw.topics) && !bool(raw.is_deleted)).map((raw) => raw.id);
|
|
23110
23443
|
if (topicless.length > 0) await backfillMemoryTopicsOp(ctx, topicless);
|
|
23111
23444
|
}
|
|
23112
23445
|
async function migrateMemoriesToRemote(options) {
|
|
@@ -23217,7 +23550,7 @@ async function migrateMemoriesToRemote(options) {
|
|
|
23217
23550
|
track(reembedded, !!row.embedding && !usable.has(id2));
|
|
23218
23551
|
track(unembedded, !row.embedding);
|
|
23219
23552
|
track(placeholders, plaintext === void 0);
|
|
23220
|
-
track(truncated, row.source_chunk_ids !==
|
|
23553
|
+
track(truncated, row.source_chunk_ids !== text14(local.get(id2).source_chunk_ids));
|
|
23221
23554
|
}
|
|
23222
23555
|
let sent = 0;
|
|
23223
23556
|
options.onProgress?.({ imported: sent, toImport: upload.length });
|
|
@@ -23635,12 +23968,12 @@ function createRemoteMemoryStore(options) {
|
|
|
23635
23968
|
};
|
|
23636
23969
|
const embedInBackground = ({ memory: { memory_id: id2, content } }) => {
|
|
23637
23970
|
generateEmbedding(content, embeddingOptions).then(
|
|
23638
|
-
(
|
|
23971
|
+
(vector2) => serialized(id2, async () => {
|
|
23639
23972
|
const current = await live(id2);
|
|
23640
23973
|
if (!current || current.memory.content !== content || current.memory.embedding?.length)
|
|
23641
23974
|
return;
|
|
23642
23975
|
const saved = await persistence.put(
|
|
23643
|
-
{ ...current.memory, embedding: storedVector(
|
|
23976
|
+
{ ...current.memory, embedding: storedVector(vector2), embedding_model: model },
|
|
23644
23977
|
current
|
|
23645
23978
|
);
|
|
23646
23979
|
notify("embedding", [saved]);
|
|
@@ -24133,8 +24466,8 @@ function createRemoteMemoryStore(options) {
|
|
|
24133
24466
|
return finish();
|
|
24134
24467
|
}
|
|
24135
24468
|
const writes = targets.flatMap((record2, i) => {
|
|
24136
|
-
const
|
|
24137
|
-
if (!
|
|
24469
|
+
const vector2 = vectors[i];
|
|
24470
|
+
if (!vector2) {
|
|
24138
24471
|
result.failed++;
|
|
24139
24472
|
return [];
|
|
24140
24473
|
}
|
|
@@ -24143,7 +24476,7 @@ function createRemoteMemoryStore(options) {
|
|
|
24143
24476
|
{
|
|
24144
24477
|
memory: {
|
|
24145
24478
|
...record2.memory,
|
|
24146
|
-
embedding: storedVector(
|
|
24479
|
+
embedding: storedVector(vector2),
|
|
24147
24480
|
embedding_model: model
|
|
24148
24481
|
},
|
|
24149
24482
|
expectedVersion: record2
|
|
@@ -24223,10 +24556,10 @@ function createRemoteMemoryStore(options) {
|
|
|
24223
24556
|
if (!rejectsInput(error)) return null;
|
|
24224
24557
|
}
|
|
24225
24558
|
const vectors = [];
|
|
24226
|
-
for (const [i,
|
|
24559
|
+
for (const [i, text15] of texts.entries()) {
|
|
24227
24560
|
signal?.throwIfAborted();
|
|
24228
24561
|
try {
|
|
24229
|
-
[vectors[i]] = await generateEmbeddings([
|
|
24562
|
+
[vectors[i]] = await generateEmbeddings([text15], embeddingOptions, signal);
|
|
24230
24563
|
} catch (error) {
|
|
24231
24564
|
signal?.throwIfAborted();
|
|
24232
24565
|
if (!rejectsInput(error)) return null;
|
|
@@ -24882,6 +25215,7 @@ async function synthesizeFacet(facet, ctx, options, prior, vaultPreparation) {
|
|
|
24882
25215
|
vaultPreparation,
|
|
24883
25216
|
scopes,
|
|
24884
25217
|
limit: hasReviewGate ? RECALL_MAX_LIMIT : limit,
|
|
25218
|
+
...hasReviewGate && { memoryIds: [...reviewed] },
|
|
24885
25219
|
types: ["fact"],
|
|
24886
25220
|
factTypeWeights,
|
|
24887
25221
|
proofCountAlpha
|
|
@@ -24917,8 +25251,8 @@ async function synthesizeFacet(facet, ctx, options, prior, vaultPreparation) {
|
|
|
24917
25251
|
memories
|
|
24918
25252
|
});
|
|
24919
25253
|
const noEvidence = result.basedOn.memoryIds.length === 0;
|
|
24920
|
-
const { text:
|
|
24921
|
-
if (!
|
|
25254
|
+
const { text: text15, legitimateEmpty } = extractFacetText(result.structuredOutput);
|
|
25255
|
+
if (!text15 && !legitimateEmpty && !noEvidence) {
|
|
24922
25256
|
getLogger().warn(
|
|
24923
25257
|
"[memory/synthesizeProfile] facet synthesis returned degraded-empty; using fallback section",
|
|
24924
25258
|
{ facet: facet.key, recalledCount: result.basedOn.memoryIds.length }
|
|
@@ -24928,12 +25262,12 @@ async function synthesizeFacet(facet, ctx, options, prior, vaultPreparation) {
|
|
|
24928
25262
|
const section = {
|
|
24929
25263
|
key: facet.key,
|
|
24930
25264
|
label: facet.label,
|
|
24931
|
-
text:
|
|
25265
|
+
text: text15,
|
|
24932
25266
|
sourceMemoryIds: result.basedOn.memoryIds,
|
|
24933
25267
|
generatedAt: Date.now()
|
|
24934
25268
|
};
|
|
24935
|
-
if (options.redactor &&
|
|
24936
|
-
const redacted = await options.redactor.redactTextAsync(
|
|
25269
|
+
if (options.redactor && text15) {
|
|
25270
|
+
const redacted = await options.redactor.redactTextAsync(text15);
|
|
24937
25271
|
section.text = redacted.text;
|
|
24938
25272
|
}
|
|
24939
25273
|
if (!legitimateEmpty && !noEvidence) {
|
|
@@ -25158,9 +25492,9 @@ async function assembleMemoryContext(options) {
|
|
|
25158
25492
|
if (!refs.length) return [];
|
|
25159
25493
|
const rows = await loadFacts({ ...filters, memoryIds: refs.map((r) => r.memoryId) });
|
|
25160
25494
|
const byId = new Map(rows.filter(active).map((m) => [m.uniqueId, m]));
|
|
25161
|
-
return refs.flatMap((
|
|
25162
|
-
const m = byId.get(
|
|
25163
|
-
return m ? [asItem(m, "session",
|
|
25495
|
+
return refs.flatMap((ref2) => {
|
|
25496
|
+
const m = byId.get(ref2.memoryId);
|
|
25497
|
+
return m ? [asItem(m, "session", ref2.score)] : [];
|
|
25164
25498
|
});
|
|
25165
25499
|
},
|
|
25166
25500
|
[]
|
|
@@ -25922,7 +26256,7 @@ async function verifyFactSupport(items, options) {
|
|
|
25922
26256
|
}
|
|
25923
26257
|
const maxEvidenceChars = Math.max(1, options.maxEvidenceChars ?? DEFAULT_MAX_EVIDENCE_CHARS);
|
|
25924
26258
|
const redactor = resolvePiiRedactor(options.piiRedaction ?? true);
|
|
25925
|
-
const safe = async (
|
|
26259
|
+
const safe = async (text15) => redactor ? (await redactor.redactTextAsync(text15)).text : text15;
|
|
25926
26260
|
let truncatedCount = 0;
|
|
25927
26261
|
const parts = [];
|
|
25928
26262
|
for (const [i, item] of items.entries()) {
|
|
@@ -26038,7 +26372,7 @@ async function verifyMemoriesForPublish(memories, sources, options) {
|
|
|
26038
26372
|
);
|
|
26039
26373
|
const pending = [];
|
|
26040
26374
|
for (const { index, uniqueId, content, ids } of withinBudget) {
|
|
26041
|
-
const evidence = ids.map((id2) => resolved.get(id2) ?? null).filter((
|
|
26375
|
+
const evidence = ids.map((id2) => resolved.get(id2) ?? null).filter((text15) => text15 !== null);
|
|
26042
26376
|
const dropped = ids.length - evidence.length;
|
|
26043
26377
|
if (ids.some((id2) => unreadable.has(id2))) {
|
|
26044
26378
|
results[index] = {
|
|
@@ -26848,9 +27182,9 @@ async function autoFilterClientTools(clientTools, promptEmbeddings, cache, embed
|
|
|
26848
27182
|
if (toolsNeedingEmbeddings.length > 0) {
|
|
26849
27183
|
try {
|
|
26850
27184
|
const descriptions = toolsNeedingEmbeddings.map((t) => t.description);
|
|
26851
|
-
const
|
|
27185
|
+
const embeddings2 = await generateEmbeddings(descriptions, embeddingOptions);
|
|
26852
27186
|
for (let i = 0; i < toolsNeedingEmbeddings.length; i++) {
|
|
26853
|
-
cache.set(toolsNeedingEmbeddings[i].name,
|
|
27187
|
+
cache.set(toolsNeedingEmbeddings[i].name, embeddings2[i]);
|
|
26854
27188
|
}
|
|
26855
27189
|
} catch {
|
|
26856
27190
|
return { tools: clientTools, activatedSetNames: /* @__PURE__ */ new Set(), matchedSetNames: /* @__PURE__ */ new Set() };
|
|
@@ -27314,8 +27648,8 @@ var sessionCache = /* @__PURE__ */ new Map();
|
|
|
27314
27648
|
function generateRequestId() {
|
|
27315
27649
|
return ++requestIdCounter;
|
|
27316
27650
|
}
|
|
27317
|
-
function parseSSEResponse(
|
|
27318
|
-
const events =
|
|
27651
|
+
function parseSSEResponse(text15) {
|
|
27652
|
+
const events = text15.split(/\n\n+/);
|
|
27319
27653
|
let lastEventData = "";
|
|
27320
27654
|
for (const event of events) {
|
|
27321
27655
|
const dataLines = [];
|
|
@@ -27337,11 +27671,11 @@ function parseSSEResponse(text14) {
|
|
|
27337
27671
|
}
|
|
27338
27672
|
async function parseResponseBody(response) {
|
|
27339
27673
|
const contentType = response.headers.get("Content-Type") || "";
|
|
27340
|
-
const
|
|
27341
|
-
if (contentType.includes("text/event-stream") ||
|
|
27342
|
-
return parseSSEResponse(
|
|
27674
|
+
const text15 = await response.text();
|
|
27675
|
+
if (contentType.includes("text/event-stream") || text15.startsWith("event:") || text15.startsWith("data:")) {
|
|
27676
|
+
return parseSSEResponse(text15);
|
|
27343
27677
|
}
|
|
27344
|
-
return JSON.parse(
|
|
27678
|
+
return JSON.parse(text15);
|
|
27345
27679
|
}
|
|
27346
27680
|
async function initializeMCPSession(accessToken) {
|
|
27347
27681
|
const requestId = generateRequestId();
|
|
@@ -28664,9 +28998,9 @@ New lines of conversation:
|
|
|
28664
28998
|
{new_lines}
|
|
28665
28999
|
|
|
28666
29000
|
New summary:`;
|
|
28667
|
-
function estimateTokens(
|
|
28668
|
-
if (!
|
|
28669
|
-
return Math.ceil(
|
|
29001
|
+
function estimateTokens(text15) {
|
|
29002
|
+
if (!text15) return 0;
|
|
29003
|
+
return Math.ceil(text15.length / 4);
|
|
28670
29004
|
}
|
|
28671
29005
|
var PER_MESSAGE_OVERHEAD_TOKENS = 4;
|
|
28672
29006
|
var MAX_MESSAGES_PER_SUMMARIZATION = 20;
|
|
@@ -28726,14 +29060,14 @@ function splitMessagesAtThreshold(messages, tokenThreshold, minWindowMessages) {
|
|
|
28726
29060
|
}
|
|
28727
29061
|
async function redactSummaryPrompt(prompt, redactor, onPiiRedacted) {
|
|
28728
29062
|
if (!redactor) return prompt;
|
|
28729
|
-
const { text:
|
|
29063
|
+
const { text: text15, matches } = await redactor.redactTextAsync(prompt);
|
|
28730
29064
|
if (matches.length > 0 && onPiiRedacted) {
|
|
28731
29065
|
try {
|
|
28732
29066
|
onPiiRedacted(matches);
|
|
28733
29067
|
} catch {
|
|
28734
29068
|
}
|
|
28735
29069
|
}
|
|
28736
|
-
return
|
|
29070
|
+
return text15;
|
|
28737
29071
|
}
|
|
28738
29072
|
async function progressiveSummarize(options) {
|
|
28739
29073
|
const {
|
|
@@ -29471,7 +29805,7 @@ function useChatStorage(options) {
|
|
|
29471
29805
|
[piiRedaction, currentConversationId]
|
|
29472
29806
|
);
|
|
29473
29807
|
const maskForEmbedding = (0, import_react5.useCallback)(
|
|
29474
|
-
(
|
|
29808
|
+
(text15) => isPiiRedactor(resolvedPiiRedaction) ? resolvedPiiRedaction.maskText(text15) : text15,
|
|
29475
29809
|
[resolvedPiiRedaction]
|
|
29476
29810
|
);
|
|
29477
29811
|
const maskEmbeddingInput = isPiiRedactor(resolvedPiiRedaction) ? maskForEmbedding : void 0;
|
|
@@ -29674,13 +30008,13 @@ function useChatStorage(options) {
|
|
|
29674
30008
|
const opts = { getToken, baseUrl, model: embeddingModel };
|
|
29675
30009
|
if (shouldChunkMessage(message.content, DEFAULT_CHUNK_SIZE)) {
|
|
29676
30010
|
const textChunks = chunkText(message.content);
|
|
29677
|
-
const
|
|
30011
|
+
const embeddings2 = await generateEmbeddings(
|
|
29678
30012
|
textChunks.map((c) => mask(c.text)),
|
|
29679
30013
|
opts
|
|
29680
30014
|
);
|
|
29681
30015
|
const messageChunks = textChunks.map((chunk, i) => ({
|
|
29682
30016
|
text: chunk.text,
|
|
29683
|
-
vector:
|
|
30017
|
+
vector: embeddings2[i],
|
|
29684
30018
|
startOffset: chunk.startOffset,
|
|
29685
30019
|
endOffset: chunk.endOffset
|
|
29686
30020
|
}));
|
|
@@ -30317,7 +30651,7 @@ function useChatStorage(options) {
|
|
|
30317
30651
|
return {
|
|
30318
30652
|
callRedactor: redactor,
|
|
30319
30653
|
callPiiRedaction: forInnerSend,
|
|
30320
|
-
maskForCall: (
|
|
30654
|
+
maskForCall: (text15) => redactor ? redactor.maskText(text15) : text15
|
|
30321
30655
|
};
|
|
30322
30656
|
};
|
|
30323
30657
|
const retirementError = await retirePendingTurn();
|
|
@@ -30326,7 +30660,7 @@ function useChatStorage(options) {
|
|
|
30326
30660
|
getLogger().warn("[useChatStorage] detached partial not saved:", retirementError);
|
|
30327
30661
|
}
|
|
30328
30662
|
const effectiveAssistantUniqueId = assistantUniqueId ?? (resumable ? `msg_${(0, import_uuid7.v7)()}` : void 0);
|
|
30329
|
-
const embedToolText = (
|
|
30663
|
+
const embedToolText = (text15, mask, masked, token) => {
|
|
30330
30664
|
const opts = {
|
|
30331
30665
|
getToken: token,
|
|
30332
30666
|
baseUrl,
|
|
@@ -30334,10 +30668,10 @@ function useChatStorage(options) {
|
|
|
30334
30668
|
maskInput: mask,
|
|
30335
30669
|
cache: embeddingCache ? maskScopedEmbeddingCache(embeddingCache, masked) : void 0
|
|
30336
30670
|
};
|
|
30337
|
-
return shouldChunkMessage(
|
|
30338
|
-
chunkText(
|
|
30671
|
+
return shouldChunkMessage(text15, DEFAULT_CHUNK_SIZE) ? generateEmbeddings(
|
|
30672
|
+
chunkText(text15).map((c) => c.text),
|
|
30339
30673
|
opts
|
|
30340
|
-
) : generateEmbedding(
|
|
30674
|
+
) : generateEmbedding(text15, opts);
|
|
30341
30675
|
};
|
|
30342
30676
|
if (walletAddress && signMessage && !hasEncryptionKey(walletAddress)) {
|
|
30343
30677
|
try {
|