@anuma/sdk 6.36.0 → 6.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/expo/index.cjs +523 -267
- package/dist/expo/index.d.mts +62 -3
- package/dist/expo/index.d.ts +62 -3
- package/dist/expo/index.mjs +530 -275
- package/dist/index.cjs +150 -74
- package/dist/index.d.mts +30 -1
- package/dist/index.d.ts +30 -1
- package/dist/index.mjs +149 -74
- package/dist/react/index.cjs +568 -312
- package/dist/react/index.d.mts +62 -3
- package/dist/react/index.d.ts +62 -3
- package/dist/react/index.mjs +575 -320
- package/dist/server/index.cjs +87 -9
- package/dist/server/index.d.mts +58 -3
- package/dist/server/index.d.ts +58 -3
- package/dist/server/index.mjs +87 -9
- package/dist/tools/index.cjs +74 -12
- package/dist/tools/index.d.mts +16 -3
- package/dist/tools/index.d.ts +16 -3
- package/dist/tools/index.mjs +73 -12
- package/package.json +1 -1
package/dist/expo/index.cjs
CHANGED
|
@@ -354,10 +354,10 @@ var init_redactor = __esm({
|
|
|
354
354
|
const existing = this.valueToPlaceholder.get(normalizedValue);
|
|
355
355
|
if (existing) return existing;
|
|
356
356
|
const existingCount = this.categoryCounters.get(category);
|
|
357
|
-
const
|
|
358
|
-
this.categoryCounters.set(category,
|
|
357
|
+
const count2 = (existingCount ?? 0) + 1;
|
|
358
|
+
this.categoryCounters.set(category, count2);
|
|
359
359
|
if (existingCount === void 0) this.storagePattern = void 0;
|
|
360
|
-
const placeholder = `[${category}_${
|
|
360
|
+
const placeholder = `[${category}_${count2}]`;
|
|
361
361
|
this.valueToPlaceholder.set(normalizedValue, placeholder);
|
|
362
362
|
this.placeholderToValue.set(placeholder, normalizedValue);
|
|
363
363
|
this.storageLookup = null;
|
|
@@ -370,15 +370,15 @@ var init_redactor = __esm({
|
|
|
370
370
|
* (sequential, per-pattern) and the async {@link collectRegexSpans} (span)
|
|
371
371
|
* paths so the detection rules live in exactly one place.
|
|
372
372
|
*/
|
|
373
|
-
findMatches(
|
|
373
|
+
findMatches(text13, pattern) {
|
|
374
374
|
const regex = new RegExp(pattern.regex.source, pattern.regex.flags);
|
|
375
375
|
const found = [];
|
|
376
376
|
let m;
|
|
377
|
-
while ((m = regex.exec(
|
|
377
|
+
while ((m = regex.exec(text13)) !== null) {
|
|
378
378
|
const value = m[0];
|
|
379
379
|
if (pattern.validate && !pattern.validate(value)) continue;
|
|
380
380
|
if (pattern.context) {
|
|
381
|
-
const before =
|
|
381
|
+
const before = text13.slice(Math.max(0, m.index - 40), m.index);
|
|
382
382
|
if (!pattern.context.test(before)) continue;
|
|
383
383
|
}
|
|
384
384
|
found.push({ match: value, index: m.index });
|
|
@@ -394,9 +394,9 @@ var init_redactor = __esm({
|
|
|
394
394
|
* earlier patterns, so an earlier (more specific) pattern claims a region
|
|
395
395
|
* before a later one can — placeholders are inert and match no pattern.
|
|
396
396
|
*/
|
|
397
|
-
scan(
|
|
397
|
+
scan(text13, makeReplacement) {
|
|
398
398
|
const matches = [];
|
|
399
|
-
let redacted =
|
|
399
|
+
let redacted = text13;
|
|
400
400
|
for (const pattern of this.patterns) {
|
|
401
401
|
const found = this.findMatches(redacted, pattern);
|
|
402
402
|
if (found.length === 0) continue;
|
|
@@ -417,8 +417,8 @@ var init_redactor = __esm({
|
|
|
417
417
|
* Scan and redact PII from a single text string, using numbered, reversible
|
|
418
418
|
* placeholders ([EMAIL_1], …) tracked on this instance.
|
|
419
419
|
*/
|
|
420
|
-
redactText(
|
|
421
|
-
return this.scan(
|
|
420
|
+
redactText(text13) {
|
|
421
|
+
return this.scan(text13, (category, value) => this.getPlaceholder(category, value));
|
|
422
422
|
}
|
|
423
423
|
/**
|
|
424
424
|
* Mask PII with unnumbered, NON-reversible tokens ([EMAIL], [SSN], …) without
|
|
@@ -427,15 +427,15 @@ var init_redactor = __esm({
|
|
|
427
427
|
* embeddings endpoint while staying deterministic, so the same content always
|
|
428
428
|
* masks identically and search stays consistent across conversations.
|
|
429
429
|
*/
|
|
430
|
-
maskText(
|
|
431
|
-
return this.scan(
|
|
430
|
+
maskText(text13) {
|
|
431
|
+
return this.scan(text13, (category) => `[${category}]`).text;
|
|
432
432
|
}
|
|
433
433
|
/** All regex matches as spans on the ORIGINAL text (priority 0). Uses the
|
|
434
434
|
* same {@link findMatches} guards as the sync scan. */
|
|
435
|
-
collectRegexSpans(
|
|
435
|
+
collectRegexSpans(text13) {
|
|
436
436
|
const spans = [];
|
|
437
437
|
this.patterns.forEach((pattern, patternIndex) => {
|
|
438
|
-
for (const { match, index } of this.findMatches(
|
|
438
|
+
for (const { match, index } of this.findMatches(text13, pattern)) {
|
|
439
439
|
spans.push({
|
|
440
440
|
start: index,
|
|
441
441
|
end: index + match.length,
|
|
@@ -454,16 +454,16 @@ var init_redactor = __esm({
|
|
|
454
454
|
* of "Stripe") from producing a corrupting partial placeholder like
|
|
455
455
|
* `[ORG_1]e`.
|
|
456
456
|
*/
|
|
457
|
-
normalizeNerSpans(
|
|
457
|
+
normalizeNerSpans(text13, raw) {
|
|
458
458
|
if (!Array.isArray(raw)) return [];
|
|
459
459
|
const out = [];
|
|
460
460
|
raw.forEach((s, i) => {
|
|
461
461
|
if (!Number.isFinite(s.start) || !Number.isFinite(s.end)) return;
|
|
462
|
-
let start = Math.max(0, Math.min(Math.trunc(s.start),
|
|
463
|
-
let end = Math.max(0, Math.min(Math.trunc(s.end),
|
|
462
|
+
let start = Math.max(0, Math.min(Math.trunc(s.start), text13.length));
|
|
463
|
+
let end = Math.max(0, Math.min(Math.trunc(s.end), text13.length));
|
|
464
464
|
if (end <= start) return;
|
|
465
|
-
while (start > 0 && isWordChar(
|
|
466
|
-
while (end <
|
|
465
|
+
while (start > 0 && isWordChar(text13[start - 1])) start--;
|
|
466
|
+
while (end < text13.length && isWordChar(text13[end])) end++;
|
|
467
467
|
const category = String(s.category ?? "").trim();
|
|
468
468
|
if (!category) return;
|
|
469
469
|
out.push({ start, end, category, priority: 1, order: i });
|
|
@@ -472,10 +472,10 @@ var init_redactor = __esm({
|
|
|
472
472
|
}
|
|
473
473
|
/** Run the configured detector defensively: failures degrade to regex-only
|
|
474
474
|
* (fail-open on detection, not on protection) with a one-time warning. */
|
|
475
|
-
async detectNerSpans(
|
|
475
|
+
async detectNerSpans(text13) {
|
|
476
476
|
if (!this.nerDetector) return [];
|
|
477
477
|
try {
|
|
478
|
-
return this.normalizeNerSpans(
|
|
478
|
+
return this.normalizeNerSpans(text13, await this.nerDetector.detect(text13));
|
|
479
479
|
} catch (err) {
|
|
480
480
|
this.warnNerFailure(err);
|
|
481
481
|
return [];
|
|
@@ -508,11 +508,11 @@ var init_redactor = __esm({
|
|
|
508
508
|
* in pattern then document order, matching the sync scan's numbering). The
|
|
509
509
|
* string is then EMITTED in document order.
|
|
510
510
|
*/
|
|
511
|
-
rebuildSpans(
|
|
511
|
+
rebuildSpans(text13, spans, makeReplacement) {
|
|
512
512
|
const placeholderByStart = /* @__PURE__ */ new Map();
|
|
513
513
|
const matches = [];
|
|
514
514
|
for (const s of spans) {
|
|
515
|
-
const value =
|
|
515
|
+
const value = text13.slice(s.start, s.end);
|
|
516
516
|
const placeholder = makeReplacement(s.category, value);
|
|
517
517
|
placeholderByStart.set(s.start, placeholder);
|
|
518
518
|
matches.push({ category: s.category, original: value, placeholder });
|
|
@@ -521,16 +521,16 @@ var init_redactor = __esm({
|
|
|
521
521
|
let result = "";
|
|
522
522
|
let cursor = 0;
|
|
523
523
|
for (const s of emitOrder) {
|
|
524
|
-
result +=
|
|
524
|
+
result += text13.slice(cursor, s.start) + (placeholderByStart.get(s.start) ?? "");
|
|
525
525
|
cursor = s.end;
|
|
526
526
|
}
|
|
527
|
-
result +=
|
|
527
|
+
result += text13.slice(cursor);
|
|
528
528
|
return { text: result, matches };
|
|
529
529
|
}
|
|
530
530
|
/** Merge regex + NER spans for `text` into a resolved, non-overlapping set. */
|
|
531
|
-
async detectAllSpans(
|
|
532
|
-
const nerPromise = this.detectNerSpans(
|
|
533
|
-
const regexSpans = this.collectRegexSpans(
|
|
531
|
+
async detectAllSpans(text13) {
|
|
532
|
+
const nerPromise = this.detectNerSpans(text13);
|
|
533
|
+
const regexSpans = this.collectRegexSpans(text13);
|
|
534
534
|
const ner = await nerPromise;
|
|
535
535
|
return this.resolveOverlaps([...regexSpans, ...ner]);
|
|
536
536
|
}
|
|
@@ -539,11 +539,11 @@ var init_redactor = __esm({
|
|
|
539
539
|
* unstructured PII (the configured {@link NerDetector}) with numbered,
|
|
540
540
|
* reversible placeholders. With no detector, identical to `redactText`.
|
|
541
541
|
*/
|
|
542
|
-
async redactTextAsync(
|
|
543
|
-
if (!this.nerDetector) return this.redactText(
|
|
544
|
-
const spans = await this.detectAllSpans(
|
|
542
|
+
async redactTextAsync(text13) {
|
|
543
|
+
if (!this.nerDetector) return this.redactText(text13);
|
|
544
|
+
const spans = await this.detectAllSpans(text13);
|
|
545
545
|
return this.rebuildSpans(
|
|
546
|
-
|
|
546
|
+
text13,
|
|
547
547
|
spans,
|
|
548
548
|
(category, value) => this.getPlaceholder(category, value)
|
|
549
549
|
);
|
|
@@ -552,10 +552,10 @@ var init_redactor = __esm({
|
|
|
552
552
|
* Async counterpart to {@link maskText}: stateless `[CATEGORY]` masking over
|
|
553
553
|
* regex + NER matches. With no detector, identical to `maskText`.
|
|
554
554
|
*/
|
|
555
|
-
async maskTextAsync(
|
|
556
|
-
if (!this.nerDetector) return this.maskText(
|
|
557
|
-
const spans = await this.detectAllSpans(
|
|
558
|
-
return this.rebuildSpans(
|
|
555
|
+
async maskTextAsync(text13) {
|
|
556
|
+
if (!this.nerDetector) return this.maskText(text13);
|
|
557
|
+
const spans = await this.detectAllSpans(text13);
|
|
558
|
+
return this.rebuildSpans(text13, spans, (category) => `[${category}]`).text;
|
|
559
559
|
}
|
|
560
560
|
/**
|
|
561
561
|
* Async counterpart to {@link redactMessages}. Text parts are redacted
|
|
@@ -641,9 +641,9 @@ var init_redactor = __esm({
|
|
|
641
641
|
* {@link restoreForStorage} instead, which tolerates the mangled echoes the
|
|
642
642
|
* extraction models produce.
|
|
643
643
|
*/
|
|
644
|
-
deAnonymize(
|
|
645
|
-
if (!
|
|
646
|
-
let restored =
|
|
644
|
+
deAnonymize(text13) {
|
|
645
|
+
if (!text13.includes("[")) return text13;
|
|
646
|
+
let restored = text13;
|
|
647
647
|
for (const [placeholder, original] of this.placeholderToValue) {
|
|
648
648
|
if (restored.includes(placeholder)) {
|
|
649
649
|
restored = restored.split(placeholder).join(original);
|
|
@@ -668,15 +668,15 @@ var init_redactor = __esm({
|
|
|
668
668
|
* - `unresolved` is derived from the lookup miss during this pass, not from a
|
|
669
669
|
* regex re-scan of the output — so it can't trip over a restored value.
|
|
670
670
|
*/
|
|
671
|
-
restoreForStorage(
|
|
671
|
+
restoreForStorage(text13) {
|
|
672
672
|
if (this.storagePattern === void 0) this.storagePattern = this.buildStoragePattern();
|
|
673
673
|
if (!this.storagePattern || this.placeholderToValue.size === 0) {
|
|
674
|
-
return { text:
|
|
674
|
+
return { text: text13, unresolved: false };
|
|
675
675
|
}
|
|
676
676
|
this.storageLookup ?? (this.storageLookup = this.buildStorageLookup());
|
|
677
677
|
const { exact, ci, ciCollisions } = this.storageLookup;
|
|
678
678
|
let unresolved = false;
|
|
679
|
-
const restored =
|
|
679
|
+
const restored = text13.replace(
|
|
680
680
|
this.storagePattern,
|
|
681
681
|
(match, bracketed, bare) => {
|
|
682
682
|
const body = bracketed ?? bare ?? "";
|
|
@@ -892,44 +892,44 @@ async function callPortalJsonCompletion(req) {
|
|
|
892
892
|
),
|
|
893
893
|
...reinforce && { reinforceJsonContract: true }
|
|
894
894
|
} : reinforce ? { ...req, reinforceJsonContract: true } : req;
|
|
895
|
-
const
|
|
895
|
+
const outcome2 = await attemptPortalJson(
|
|
896
896
|
{ ...attemptReq, transport },
|
|
897
897
|
endpoint
|
|
898
898
|
);
|
|
899
|
-
if (
|
|
899
|
+
if (outcome2.kind === "ok") {
|
|
900
900
|
req.onAttempt?.({ attempt, ok: true });
|
|
901
|
-
return
|
|
901
|
+
return outcome2.value;
|
|
902
902
|
}
|
|
903
903
|
req.onAttempt?.({
|
|
904
904
|
attempt,
|
|
905
905
|
ok: false,
|
|
906
|
-
reason:
|
|
907
|
-
...
|
|
906
|
+
reason: outcome2.code,
|
|
907
|
+
...outcome2.httpStatus !== void 0 && { httpStatus: outcome2.httpStatus }
|
|
908
908
|
});
|
|
909
909
|
lastFailure = {
|
|
910
|
-
reason:
|
|
911
|
-
...
|
|
910
|
+
reason: outcome2.code,
|
|
911
|
+
...outcome2.httpStatus !== void 0 && { httpStatus: outcome2.httpStatus },
|
|
912
912
|
attempts: attempt
|
|
913
913
|
};
|
|
914
|
-
if (
|
|
915
|
-
if (
|
|
916
|
-
log.warn(`[${req.tag}] ${
|
|
914
|
+
if (outcome2.code === "invalid-json" || outcome2.code === "null-completion") reinforce = true;
|
|
915
|
+
if (outcome2.kind === "terminal") {
|
|
916
|
+
log.warn(`[${req.tag}] ${outcome2.reason}`);
|
|
917
917
|
return giveUp();
|
|
918
918
|
}
|
|
919
919
|
if (attempt >= maxAttempts) {
|
|
920
|
-
log.warn(`[${req.tag}] ${
|
|
920
|
+
log.warn(`[${req.tag}] ${outcome2.reason} \u2014 attempt ${attempt}/${maxAttempts}, giving up`);
|
|
921
921
|
break;
|
|
922
922
|
}
|
|
923
923
|
const backoff = (req.backoffMs ?? defaultBackoffMs)(attempt);
|
|
924
|
-
const delay = Math.max(backoff,
|
|
924
|
+
const delay = Math.max(backoff, outcome2.retryAfterMs ?? 0);
|
|
925
925
|
if (overBudget() || req.totalTimeoutMs !== void 0 && Date.now() - startedAt + delay >= req.totalTimeoutMs) {
|
|
926
926
|
log.warn(
|
|
927
|
-
`[${req.tag}] ${
|
|
927
|
+
`[${req.tag}] ${outcome2.reason} \u2014 attempt ${attempt}/${maxAttempts}, over time budget, giving up`
|
|
928
928
|
);
|
|
929
929
|
lastFailure = { reason: "time-budget-exhausted", attempts: attempt };
|
|
930
930
|
break;
|
|
931
931
|
}
|
|
932
|
-
log.warn(`[${req.tag}] ${
|
|
932
|
+
log.warn(`[${req.tag}] ${outcome2.reason} \u2014 attempt ${attempt}/${maxAttempts}, retrying`);
|
|
933
933
|
if (delay > 0) await sleep3(delay);
|
|
934
934
|
}
|
|
935
935
|
return giveUp();
|
|
@@ -1132,8 +1132,8 @@ function extractResponsesContent(body) {
|
|
|
1132
1132
|
if (!root) return null;
|
|
1133
1133
|
if (typeof root.output_text === "string" && root.output_text !== "") return root.output_text;
|
|
1134
1134
|
if (!Array.isArray(root.output)) return null;
|
|
1135
|
-
const
|
|
1136
|
-
return
|
|
1135
|
+
const text13 = 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("");
|
|
1136
|
+
return text13;
|
|
1137
1137
|
}
|
|
1138
1138
|
var RESPONSE_FORMAT_OK, RESPONSE_SCHEMA_OK, JSON_CONTRACT_REMINDER, RESPONSES_ONLY_MODEL_PREFIXES, CHAT_TO_RESPONSES_FIELDS, FOREIGN_ENDPOINT_SUFFIX, RETRYABLE_HTTP;
|
|
1139
1139
|
var init_portalLlm = __esm({
|
|
@@ -1499,6 +1499,7 @@ __export(index_exports, {
|
|
|
1499
1499
|
extractAndRetain: () => extractAndRetain,
|
|
1500
1500
|
extractEntitiesForMemories: () => extractEntitiesForMemories,
|
|
1501
1501
|
extractFacts: () => extractFacts,
|
|
1502
|
+
extractReservationReceipts: () => extractReservationReceipts,
|
|
1502
1503
|
formatFileProcessingNotes: () => formatFileProcessingNotes,
|
|
1503
1504
|
generateConversationId: () => generateConversationId,
|
|
1504
1505
|
generateEmbedding: () => generateEmbedding,
|
|
@@ -3169,8 +3170,8 @@ var ATTACHED_FILES_OPEN_TAG = "<attached_files>";
|
|
|
3169
3170
|
var ATTACHED_FILES_CLOSE_TAG = "</attached_files>";
|
|
3170
3171
|
var ATTACHED_FILES_PREFIX = `${ATTACHED_FILES_OPEN_TAG}
|
|
3171
3172
|
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.`;
|
|
3172
|
-
function isAttachedFilesText(
|
|
3173
|
-
return typeof
|
|
3173
|
+
function isAttachedFilesText(text13) {
|
|
3174
|
+
return typeof text13 === "string" && text13.startsWith(ATTACHED_FILES_PREFIX) && text13.endsWith(ATTACHED_FILES_CLOSE_TAG);
|
|
3174
3175
|
}
|
|
3175
3176
|
function buildAttachedFilesText(fileContext) {
|
|
3176
3177
|
return `${ATTACHED_FILES_PREFIX}
|
|
@@ -3355,7 +3356,7 @@ function extractUserMessageFromMessages(messages) {
|
|
|
3355
3356
|
}
|
|
3356
3357
|
|
|
3357
3358
|
// src/lib/db/chat/operations.ts
|
|
3358
|
-
function messageToStoredRaw(message,
|
|
3359
|
+
function messageToStoredRaw(message, projection2) {
|
|
3359
3360
|
const convId = String(message._getRaw("conversation_id"));
|
|
3360
3361
|
const parseJsonField = (rawValue) => {
|
|
3361
3362
|
if (!rawValue) return void 0;
|
|
@@ -3369,7 +3370,7 @@ function messageToStoredRaw(message, projection) {
|
|
|
3369
3370
|
}
|
|
3370
3371
|
return rawValue;
|
|
3371
3372
|
};
|
|
3372
|
-
const skipEmbeddings =
|
|
3373
|
+
const skipEmbeddings = projection2?.skipEmbeddings === true;
|
|
3373
3374
|
const sourcesRaw = message._getRaw("sources");
|
|
3374
3375
|
const vectorRaw = skipEmbeddings ? null : message._getRaw("vector");
|
|
3375
3376
|
const chunksRaw = skipEmbeddings ? null : message._getRaw("chunks");
|
|
@@ -3403,8 +3404,8 @@ function messageToStoredRaw(message, projection) {
|
|
|
3403
3404
|
origin: message.origin
|
|
3404
3405
|
};
|
|
3405
3406
|
}
|
|
3406
|
-
async function messageToStored(message, walletAddress, signMessage, embeddedWalletSigner,
|
|
3407
|
-
const baseMessage = messageToStoredRaw(message,
|
|
3407
|
+
async function messageToStored(message, walletAddress, signMessage, embeddedWalletSigner, projection2) {
|
|
3408
|
+
const baseMessage = messageToStoredRaw(message, projection2);
|
|
3408
3409
|
if (walletAddress) {
|
|
3409
3410
|
return await decryptMessageFields(
|
|
3410
3411
|
baseMessage,
|
|
@@ -3418,7 +3419,7 @@ async function messageToStored(message, walletAddress, signMessage, embeddedWall
|
|
|
3418
3419
|
function rawDate(value) {
|
|
3419
3420
|
return new Date(typeof value === "number" ? value : 0);
|
|
3420
3421
|
}
|
|
3421
|
-
function messageRawToStoredRaw(raw,
|
|
3422
|
+
function messageRawToStoredRaw(raw, projection2) {
|
|
3422
3423
|
const parseJsonField = (rawValue) => {
|
|
3423
3424
|
if (!rawValue) return void 0;
|
|
3424
3425
|
if (typeof rawValue === "string") {
|
|
@@ -3431,7 +3432,7 @@ function messageRawToStoredRaw(raw, projection) {
|
|
|
3431
3432
|
}
|
|
3432
3433
|
return rawValue;
|
|
3433
3434
|
};
|
|
3434
|
-
const skipEmbeddings =
|
|
3435
|
+
const skipEmbeddings = projection2?.skipEmbeddings === true;
|
|
3435
3436
|
const vectorRaw = skipEmbeddings ? null : raw.vector;
|
|
3436
3437
|
const chunksRaw = skipEmbeddings ? null : raw.chunks;
|
|
3437
3438
|
return {
|
|
@@ -3462,8 +3463,8 @@ function messageRawToStoredRaw(raw, projection) {
|
|
|
3462
3463
|
origin: raw.origin
|
|
3463
3464
|
};
|
|
3464
3465
|
}
|
|
3465
|
-
async function messageRawToStored(raw, walletAddress, signMessage, embeddedWalletSigner,
|
|
3466
|
-
const baseMessage = messageRawToStoredRaw(raw,
|
|
3466
|
+
async function messageRawToStored(raw, walletAddress, signMessage, embeddedWalletSigner, projection2) {
|
|
3467
|
+
const baseMessage = messageRawToStoredRaw(raw, projection2);
|
|
3467
3468
|
if (walletAddress) {
|
|
3468
3469
|
return await decryptMessageFields(
|
|
3469
3470
|
baseMessage,
|
|
@@ -4274,49 +4275,49 @@ init_logger();
|
|
|
4274
4275
|
var DEFAULT_CHUNK_SIZE = 400;
|
|
4275
4276
|
var DEFAULT_CHUNK_OVERLAP = 50;
|
|
4276
4277
|
var DEFAULT_MIN_CHUNK_SIZE = 50;
|
|
4277
|
-
function splitIntoSentences(
|
|
4278
|
+
function splitIntoSentences(text13) {
|
|
4278
4279
|
const sentenceRegex = /[.!?]+[\s"')}\]]*(?=\s|$)/g;
|
|
4279
4280
|
const sentences = [];
|
|
4280
4281
|
let lastIndex = 0;
|
|
4281
4282
|
let match;
|
|
4282
|
-
while ((match = sentenceRegex.exec(
|
|
4283
|
+
while ((match = sentenceRegex.exec(text13)) !== null) {
|
|
4283
4284
|
const endIndex = match.index + match[0].length;
|
|
4284
|
-
const sentence =
|
|
4285
|
+
const sentence = text13.slice(lastIndex, endIndex).trim();
|
|
4285
4286
|
if (sentence) {
|
|
4286
4287
|
sentences.push(sentence);
|
|
4287
4288
|
}
|
|
4288
4289
|
lastIndex = endIndex;
|
|
4289
4290
|
}
|
|
4290
|
-
const remaining =
|
|
4291
|
+
const remaining = text13.slice(lastIndex).trim();
|
|
4291
4292
|
if (remaining) {
|
|
4292
4293
|
sentences.push(remaining);
|
|
4293
4294
|
}
|
|
4294
4295
|
return sentences;
|
|
4295
4296
|
}
|
|
4296
|
-
function chunkText(
|
|
4297
|
+
function chunkText(text13, options) {
|
|
4297
4298
|
const {
|
|
4298
4299
|
chunkSize = DEFAULT_CHUNK_SIZE,
|
|
4299
4300
|
chunkOverlap: requestedOverlap = DEFAULT_CHUNK_OVERLAP,
|
|
4300
4301
|
minChunkSize = DEFAULT_MIN_CHUNK_SIZE
|
|
4301
4302
|
} = options ?? {};
|
|
4302
4303
|
const chunkOverlap = Math.min(requestedOverlap, chunkSize - 1);
|
|
4303
|
-
if (
|
|
4304
|
+
if (text13.length <= chunkSize) {
|
|
4304
4305
|
return [
|
|
4305
4306
|
{
|
|
4306
|
-
text:
|
|
4307
|
+
text: text13.trim(),
|
|
4307
4308
|
startOffset: 0,
|
|
4308
|
-
endOffset:
|
|
4309
|
+
endOffset: text13.length
|
|
4309
4310
|
}
|
|
4310
4311
|
];
|
|
4311
4312
|
}
|
|
4312
|
-
const sentences = splitIntoSentences(
|
|
4313
|
+
const sentences = splitIntoSentences(text13);
|
|
4313
4314
|
const chunks2 = [];
|
|
4314
4315
|
let currentChunkSentences = [];
|
|
4315
4316
|
let currentChunkStart = 0;
|
|
4316
4317
|
let currentOffset = 0;
|
|
4317
4318
|
for (let i = 0; i < sentences.length; i++) {
|
|
4318
4319
|
const sentence = sentences[i];
|
|
4319
|
-
let sentenceStart =
|
|
4320
|
+
let sentenceStart = text13.indexOf(sentence, currentOffset);
|
|
4320
4321
|
if (sentenceStart === -1) {
|
|
4321
4322
|
sentenceStart = currentOffset;
|
|
4322
4323
|
}
|
|
@@ -4363,7 +4364,7 @@ function chunkText(text12, options) {
|
|
|
4363
4364
|
if (overlapSentences.length > 0) {
|
|
4364
4365
|
currentChunkSentences = [...overlapSentences, sentence];
|
|
4365
4366
|
const overlapText = overlapSentences[0];
|
|
4366
|
-
const overlapStart =
|
|
4367
|
+
const overlapStart = text13.lastIndexOf(overlapText, currentOffset);
|
|
4367
4368
|
currentChunkStart = overlapStart === -1 ? sentenceStart : overlapStart;
|
|
4368
4369
|
} else {
|
|
4369
4370
|
currentChunkSentences = [sentence];
|
|
@@ -4383,18 +4384,18 @@ function chunkText(text12, options) {
|
|
|
4383
4384
|
chunks2.push({
|
|
4384
4385
|
text: chunkText2,
|
|
4385
4386
|
startOffset: currentChunkStart,
|
|
4386
|
-
endOffset:
|
|
4387
|
+
endOffset: text13.length
|
|
4387
4388
|
});
|
|
4388
4389
|
}
|
|
4389
4390
|
}
|
|
4390
4391
|
if (chunks2.length === 0) {
|
|
4391
|
-
const trimmedText =
|
|
4392
|
+
const trimmedText = text13.trim();
|
|
4392
4393
|
if (trimmedText.length > 0) {
|
|
4393
4394
|
return [
|
|
4394
4395
|
{
|
|
4395
4396
|
text: trimmedText,
|
|
4396
4397
|
startOffset: 0,
|
|
4397
|
-
endOffset:
|
|
4398
|
+
endOffset: text13.length
|
|
4398
4399
|
}
|
|
4399
4400
|
];
|
|
4400
4401
|
}
|
|
@@ -5086,8 +5087,8 @@ var createClient = (config = {}) => {
|
|
|
5086
5087
|
data = await response[parseAs]();
|
|
5087
5088
|
break;
|
|
5088
5089
|
case "json": {
|
|
5089
|
-
const
|
|
5090
|
-
data =
|
|
5090
|
+
const text13 = await response.text();
|
|
5091
|
+
data = text13 ? JSON.parse(text13) : {};
|
|
5091
5092
|
break;
|
|
5092
5093
|
}
|
|
5093
5094
|
case "stream":
|
|
@@ -5297,16 +5298,16 @@ function embeddingErrorFrom(response) {
|
|
|
5297
5298
|
const message = typeof response.error === "object" && response.error && "error" in response.error ? response.error.error : "API embedding failed";
|
|
5298
5299
|
return new EmbeddingHttpError(message, response.response?.status);
|
|
5299
5300
|
}
|
|
5300
|
-
async function generateEmbedding(
|
|
5301
|
+
async function generateEmbedding(text13, options) {
|
|
5301
5302
|
const total = options.totalTimeoutMs;
|
|
5302
|
-
if (total === void 0) return embedOne(
|
|
5303
|
-
return withDeadline((signal) => embedOne(
|
|
5303
|
+
if (total === void 0) return embedOne(text13, options, void 0);
|
|
5304
|
+
return withDeadline((signal) => embedOne(text13, options, signal), total, "embedding");
|
|
5304
5305
|
}
|
|
5305
|
-
async function embedOne(
|
|
5306
|
+
async function embedOne(text13, options, outer) {
|
|
5306
5307
|
const { baseUrl = BASE_URL, model, cache } = options;
|
|
5307
5308
|
const timeoutMs = options.timeoutMs ?? DEFAULT_EMBEDDING_REQUEST_TIMEOUT_MS;
|
|
5308
5309
|
if (cache) {
|
|
5309
|
-
const cached = cache.get(
|
|
5310
|
+
const cached = cache.get(text13);
|
|
5310
5311
|
if (cached) return Array.from(cached);
|
|
5311
5312
|
}
|
|
5312
5313
|
const headers = await resolveAuthHeaders(options, outer);
|
|
@@ -5315,7 +5316,7 @@ async function embedOne(text12, options, outer) {
|
|
|
5315
5316
|
(signal) => postApiV1Embeddings({
|
|
5316
5317
|
baseUrl,
|
|
5317
5318
|
body: {
|
|
5318
|
-
input: options.maskInput ? options.maskInput(
|
|
5319
|
+
input: options.maskInput ? options.maskInput(text13) : text13,
|
|
5319
5320
|
model: model ?? DEFAULT_API_EMBEDDING_MODEL
|
|
5320
5321
|
},
|
|
5321
5322
|
headers,
|
|
@@ -5342,7 +5343,7 @@ async function embedOne(text12, options, outer) {
|
|
|
5342
5343
|
}
|
|
5343
5344
|
const f32Embedding = Float32Array.from(embedding);
|
|
5344
5345
|
if (cache) {
|
|
5345
|
-
cache.set(
|
|
5346
|
+
cache.set(text13, f32Embedding);
|
|
5346
5347
|
}
|
|
5347
5348
|
return Array.from(f32Embedding);
|
|
5348
5349
|
}
|
|
@@ -5676,10 +5677,10 @@ var cryptoPriceCentroid = [0.025576787463333337, 0.0017598020599999997, -0.01339
|
|
|
5676
5677
|
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];
|
|
5677
5678
|
|
|
5678
5679
|
// src/lib/chat/preProcessor.ts
|
|
5679
|
-
function wrapAsUserText(prefix,
|
|
5680
|
-
if (!
|
|
5680
|
+
function wrapAsUserText(prefix, text13) {
|
|
5681
|
+
if (!text13 || !text13.trim()) return [];
|
|
5681
5682
|
return [{ role: "user", content: [{ type: "text", text: `${prefix}
|
|
5682
|
-
${
|
|
5683
|
+
${text13}` }] }];
|
|
5683
5684
|
}
|
|
5684
5685
|
|
|
5685
5686
|
// src/lib/chat/cryptoPriceClassifier.ts
|
|
@@ -5718,6 +5719,80 @@ function createCryptoPricePreProcessor(options = {}) {
|
|
|
5718
5719
|
};
|
|
5719
5720
|
}
|
|
5720
5721
|
|
|
5722
|
+
// src/lib/chat/reservationReceipts.ts
|
|
5723
|
+
var ACTIONS = [
|
|
5724
|
+
{
|
|
5725
|
+
kind: "booking",
|
|
5726
|
+
tool: "anuma_book_restaurant",
|
|
5727
|
+
alreadyDone: /^Tool "[^"]*" failed: ALREADY_BOOKED:/
|
|
5728
|
+
},
|
|
5729
|
+
{
|
|
5730
|
+
kind: "cancel",
|
|
5731
|
+
tool: "anuma_cancel_reservation",
|
|
5732
|
+
alreadyDone: /^Tool "[^"]*" failed: ALREADY_CANCELLED:/
|
|
5733
|
+
}
|
|
5734
|
+
];
|
|
5735
|
+
var NOT_AN_ATTEMPT = /^Tool "[^"]*" (has already been called|was already called)/;
|
|
5736
|
+
var BOOKING_OUTCOME_UNKNOWN = /^Tool "[^"]*" failed: BOOKING_OUTCOME_UNKNOWN:/;
|
|
5737
|
+
var CANCEL_OUTCOME_UNKNOWN = "CANCEL_OUTCOME_UNKNOWN";
|
|
5738
|
+
function extractReservationReceipts(toolCallEvents) {
|
|
5739
|
+
const latest = /* @__PURE__ */ new Map();
|
|
5740
|
+
for (const event of toolCallEvents ?? []) {
|
|
5741
|
+
const action = ACTIONS.find((a) => event.name?.endsWith(a.tool));
|
|
5742
|
+
const output = event.output ?? "";
|
|
5743
|
+
if (!action || !output || NOT_AN_ATTEMPT.test(output)) continue;
|
|
5744
|
+
const kept = latest.get(action.kind)?.status;
|
|
5745
|
+
if (kept === "made") continue;
|
|
5746
|
+
const receipt = toReceipt(action, event.arguments ?? "", output);
|
|
5747
|
+
if (kept === "unknown" && receipt.status !== "made") continue;
|
|
5748
|
+
latest.set(action.kind, receipt);
|
|
5749
|
+
}
|
|
5750
|
+
return [...latest.values()];
|
|
5751
|
+
}
|
|
5752
|
+
function toReceipt(action, argumentsJson, output) {
|
|
5753
|
+
const args = parseObject(argumentsJson);
|
|
5754
|
+
const result = parseObject(output);
|
|
5755
|
+
return {
|
|
5756
|
+
kind: action.kind,
|
|
5757
|
+
venueName: text(args.venue_name) ?? "",
|
|
5758
|
+
day: text(args.day) ?? "",
|
|
5759
|
+
time: text(args.time) ?? "",
|
|
5760
|
+
partySize: count(args.party_size),
|
|
5761
|
+
reservationId: text(result.reservation_id) ?? text(args.reservation_id),
|
|
5762
|
+
resyUrl: text(result.reservations_url),
|
|
5763
|
+
feeSummary: text(result.fee_summary),
|
|
5764
|
+
...outcome(action, output, result)
|
|
5765
|
+
};
|
|
5766
|
+
}
|
|
5767
|
+
function outcome(action, output, result) {
|
|
5768
|
+
if (action.alreadyDone.test(output)) return { status: "already_done" };
|
|
5769
|
+
const reason = text(result.error);
|
|
5770
|
+
if (action.kind === "booking") {
|
|
5771
|
+
if (BOOKING_OUTCOME_UNKNOWN.test(output)) return { status: "unknown" };
|
|
5772
|
+
const held = result.success === true || text(result.reservation_id) !== void 0;
|
|
5773
|
+
return held ? { status: "made" } : { status: "not_made", reason };
|
|
5774
|
+
}
|
|
5775
|
+
if (result.error_code === CANCEL_OUTCOME_UNKNOWN) return { status: "unknown", reason };
|
|
5776
|
+
const cancelled = result.success === true && !result.error && !result.error_code;
|
|
5777
|
+
return cancelled ? { status: "made" } : { status: "not_made", reason };
|
|
5778
|
+
}
|
|
5779
|
+
function parseObject(json4) {
|
|
5780
|
+
try {
|
|
5781
|
+
const parsed = JSON.parse(json4);
|
|
5782
|
+
return parsed && typeof parsed === "object" ? parsed : {};
|
|
5783
|
+
} catch {
|
|
5784
|
+
return {};
|
|
5785
|
+
}
|
|
5786
|
+
}
|
|
5787
|
+
function text(value) {
|
|
5788
|
+
if (typeof value === "number") return String(value);
|
|
5789
|
+
return typeof value === "string" && value ? value : void 0;
|
|
5790
|
+
}
|
|
5791
|
+
function count(value) {
|
|
5792
|
+
const n = typeof value === "string" && value.trim() ? Number(value) : value;
|
|
5793
|
+
return typeof n === "number" && Number.isFinite(n) ? n : void 0;
|
|
5794
|
+
}
|
|
5795
|
+
|
|
5721
5796
|
// src/lib/chat/resumeStream.ts
|
|
5722
5797
|
init_clientConfig();
|
|
5723
5798
|
|
|
@@ -5726,6 +5801,46 @@ init_clientConfig();
|
|
|
5726
5801
|
|
|
5727
5802
|
// src/tools/confirmConstants.ts
|
|
5728
5803
|
var CONFIRM_TOOL_NAME = "prompt_user_confirm";
|
|
5804
|
+
var BOOK_RESTAURANT = {
|
|
5805
|
+
tool: "AnumaPaymentsMCP-anuma_book_restaurant",
|
|
5806
|
+
status: "confirmed_not_booked",
|
|
5807
|
+
fields: ["venue_id", "config_id", "party_size", "day", "venue_name", "time"]
|
|
5808
|
+
};
|
|
5809
|
+
var CANCEL_RESERVATION = {
|
|
5810
|
+
tool: "AnumaPaymentsMCP-anuma_cancel_reservation",
|
|
5811
|
+
status: "confirmed_not_cancelled",
|
|
5812
|
+
fields: [
|
|
5813
|
+
"reservation_id",
|
|
5814
|
+
"venue_name",
|
|
5815
|
+
"day",
|
|
5816
|
+
"time",
|
|
5817
|
+
"party_size",
|
|
5818
|
+
"fee_applies",
|
|
5819
|
+
"fee_amount"
|
|
5820
|
+
]
|
|
5821
|
+
};
|
|
5822
|
+
var CONFIRM_REQUIRED_FIELDS = /* @__PURE__ */ new Map([
|
|
5823
|
+
["book_restaurant", BOOK_RESTAURANT],
|
|
5824
|
+
["anuma_book_restaurant", BOOK_RESTAURANT],
|
|
5825
|
+
["anumapaymentsmcp-anuma_book_restaurant", BOOK_RESTAURANT],
|
|
5826
|
+
["cancel_reservation", CANCEL_RESERVATION],
|
|
5827
|
+
["anuma_cancel_reservation", CANCEL_RESERVATION],
|
|
5828
|
+
["anumapaymentsmcp-anuma_cancel_reservation", CANCEL_RESERVATION]
|
|
5829
|
+
]);
|
|
5830
|
+
function confirmRequirement(action) {
|
|
5831
|
+
if (typeof action !== "string") return void 0;
|
|
5832
|
+
return CONFIRM_REQUIRED_FIELDS.get(action.trim().toLowerCase());
|
|
5833
|
+
}
|
|
5834
|
+
function missingConfirmFields(action, parameters) {
|
|
5835
|
+
const requirement = confirmRequirement(action);
|
|
5836
|
+
if (!requirement) return [];
|
|
5837
|
+
const shown = /* @__PURE__ */ new Set();
|
|
5838
|
+
for (const parameter of Array.isArray(parameters) ? parameters : []) {
|
|
5839
|
+
const { name, value } = parameter ?? {};
|
|
5840
|
+
if (typeof name === "string" && typeof value === "string" && value.trim()) shown.add(name);
|
|
5841
|
+
}
|
|
5842
|
+
return requirement.fields.filter((field10) => !shown.has(field10));
|
|
5843
|
+
}
|
|
5729
5844
|
|
|
5730
5845
|
// src/lib/chat/toolLoop.ts
|
|
5731
5846
|
init_redactor();
|
|
@@ -8427,13 +8542,13 @@ var StreamSmoother = class {
|
|
|
8427
8542
|
/**
|
|
8428
8543
|
* Add text to the buffer. If smoothing is disabled, passes through immediately.
|
|
8429
8544
|
*/
|
|
8430
|
-
push(
|
|
8431
|
-
if (this.destroyed || !
|
|
8545
|
+
push(text13) {
|
|
8546
|
+
if (this.destroyed || !text13) return;
|
|
8432
8547
|
if (!this.enabled) {
|
|
8433
|
-
this.callback(
|
|
8548
|
+
this.callback(text13);
|
|
8434
8549
|
return;
|
|
8435
8550
|
}
|
|
8436
|
-
this.buffer +=
|
|
8551
|
+
this.buffer += text13;
|
|
8437
8552
|
this.ensureTimer();
|
|
8438
8553
|
}
|
|
8439
8554
|
/**
|
|
@@ -8444,9 +8559,9 @@ var StreamSmoother = class {
|
|
|
8444
8559
|
if (this.destroyed) return;
|
|
8445
8560
|
this.stopTimer();
|
|
8446
8561
|
if (this.buffer.length > 0) {
|
|
8447
|
-
const
|
|
8562
|
+
const text13 = this.buffer;
|
|
8448
8563
|
this.buffer = "";
|
|
8449
|
-
this.callback(
|
|
8564
|
+
this.callback(text13);
|
|
8450
8565
|
}
|
|
8451
8566
|
this.resolveDrain();
|
|
8452
8567
|
}
|
|
@@ -8513,9 +8628,9 @@ var StreamSmoother = class {
|
|
|
8513
8628
|
const currentSpeed = this.getCurrentSpeed(elapsed);
|
|
8514
8629
|
const charsThisTick = Math.max(1, Math.round(currentSpeed * (TICK_INTERVAL / 1e3)));
|
|
8515
8630
|
const toRelease = Math.min(charsThisTick, this.buffer.length);
|
|
8516
|
-
const
|
|
8631
|
+
const text13 = this.buffer.slice(0, toRelease);
|
|
8517
8632
|
this.buffer = this.buffer.slice(toRelease);
|
|
8518
|
-
this.callback(
|
|
8633
|
+
this.callback(text13);
|
|
8519
8634
|
if (this.buffer.length === 0) {
|
|
8520
8635
|
this.stopTimer();
|
|
8521
8636
|
this.resolveDrain();
|
|
@@ -8719,6 +8834,7 @@ function getToolName(tool) {
|
|
|
8719
8834
|
}
|
|
8720
8835
|
function toolsAfterConfirmation(apiTools, executionResults) {
|
|
8721
8836
|
const members = /* @__PURE__ */ new Set();
|
|
8837
|
+
let keepConfirm = false;
|
|
8722
8838
|
for (const r of executionResults) {
|
|
8723
8839
|
if (r.name !== CONFIRM_TOOL_NAME) continue;
|
|
8724
8840
|
const answer = r.result;
|
|
@@ -8726,11 +8842,12 @@ function toolsAfterConfirmation(apiTools, executionResults) {
|
|
|
8726
8842
|
const setName = CONFIRMED_ACTION_TOOL_SETS.get(answer.action.trim().toLowerCase());
|
|
8727
8843
|
const set = BUILT_IN_TOOL_SETS.find((s) => s.name === setName);
|
|
8728
8844
|
for (const member of set?.members ?? []) members.add(member);
|
|
8845
|
+
if (missingConfirmFields(answer.action, answer.parameters).length > 0) keepConfirm = true;
|
|
8729
8846
|
}
|
|
8730
8847
|
if (!apiTools.some((t) => members.has(getToolName(t) ?? ""))) return void 0;
|
|
8731
8848
|
return apiTools.filter((t) => {
|
|
8732
8849
|
const name = getToolName(t) ?? "";
|
|
8733
|
-
return members.has(name) || name ===
|
|
8850
|
+
return members.has(name) || name === TOOL_SEARCH_TOOL_NAME || keepConfirm && name === CONFIRM_TOOL_NAME;
|
|
8734
8851
|
});
|
|
8735
8852
|
}
|
|
8736
8853
|
var STREAM_RESUMABLE_HEADER = "X-Stream-Resumable";
|
|
@@ -8936,9 +9053,9 @@ async function runToolLoop(options) {
|
|
|
8936
9053
|
messages = await redactBatch(messages);
|
|
8937
9054
|
if (preProcessors?.length) {
|
|
8938
9055
|
try {
|
|
8939
|
-
const
|
|
8940
|
-
if (
|
|
8941
|
-
const embedding = await generateEmbedding(
|
|
9056
|
+
const text13 = extractLastUserText(messages);
|
|
9057
|
+
if (text13.length > 0) {
|
|
9058
|
+
const embedding = await generateEmbedding(text13, {
|
|
8942
9059
|
apiKey: headers?.["X-API-Key"],
|
|
8943
9060
|
getToken: token ? () => Promise.resolve(token) : void 0,
|
|
8944
9061
|
baseUrl
|
|
@@ -8946,7 +9063,7 @@ async function runToolLoop(options) {
|
|
|
8946
9063
|
const results = await Promise.all(
|
|
8947
9064
|
preProcessors.map(async (p) => {
|
|
8948
9065
|
try {
|
|
8949
|
-
return await p({ prompt:
|
|
9066
|
+
return await p({ prompt: text13, embedding, signal: combinedSignal });
|
|
8950
9067
|
} catch (err) {
|
|
8951
9068
|
console.warn("[runToolLoop] pre-processor failed:", err);
|
|
8952
9069
|
return void 0;
|
|
@@ -9105,11 +9222,11 @@ async function runToolLoop(options) {
|
|
|
9105
9222
|
}
|
|
9106
9223
|
});
|
|
9107
9224
|
accumulator = createStreamAccumulator(model || void 0);
|
|
9108
|
-
contentSmoother = new StreamSmoother((
|
|
9109
|
-
if (emitData) emitData(
|
|
9225
|
+
contentSmoother = new StreamSmoother((text13) => {
|
|
9226
|
+
if (emitData) emitData(text13);
|
|
9110
9227
|
}, smoothing);
|
|
9111
|
-
thinkingSmoother = new StreamSmoother((
|
|
9112
|
-
if (emitThinking) emitThinking(
|
|
9228
|
+
thinkingSmoother = new StreamSmoother((text13) => {
|
|
9229
|
+
if (emitThinking) emitThinking(text13);
|
|
9113
9230
|
}, smoothing);
|
|
9114
9231
|
let chunksEmittedDownstream = false;
|
|
9115
9232
|
try {
|
|
@@ -9614,11 +9731,11 @@ Executing tool: ${toolInfo}
|
|
|
9614
9731
|
}
|
|
9615
9732
|
});
|
|
9616
9733
|
currentAccumulator = createStreamAccumulator(model || void 0);
|
|
9617
|
-
contContentSmoother = new StreamSmoother((
|
|
9618
|
-
if (emitData) emitData(
|
|
9734
|
+
contContentSmoother = new StreamSmoother((text13) => {
|
|
9735
|
+
if (emitData) emitData(text13);
|
|
9619
9736
|
}, smoothing);
|
|
9620
|
-
contThinkingSmoother = new StreamSmoother((
|
|
9621
|
-
if (emitThinking) emitThinking(
|
|
9737
|
+
contThinkingSmoother = new StreamSmoother((text13) => {
|
|
9738
|
+
if (emitThinking) emitThinking(text13);
|
|
9622
9739
|
}, smoothing);
|
|
9623
9740
|
let chunksEmittedDownstream = false;
|
|
9624
9741
|
try {
|
|
@@ -9845,11 +9962,11 @@ async function resumeStream(options) {
|
|
|
9845
9962
|
} = options;
|
|
9846
9963
|
const strategy = getStrategy(handle.apiType);
|
|
9847
9964
|
const accumulator = createStreamAccumulator(handle.model || void 0);
|
|
9848
|
-
const contentSmoother = new StreamSmoother((
|
|
9849
|
-
if (onData) onData(
|
|
9965
|
+
const contentSmoother = new StreamSmoother((text13) => {
|
|
9966
|
+
if (onData) onData(text13);
|
|
9850
9967
|
}, smoothing);
|
|
9851
|
-
const thinkingSmoother = new StreamSmoother((
|
|
9852
|
-
if (onThinking) onThinking(
|
|
9968
|
+
const thinkingSmoother = new StreamSmoother((text13) => {
|
|
9969
|
+
if (onThinking) onThinking(text13);
|
|
9853
9970
|
}, smoothing);
|
|
9854
9971
|
const idleController = new AbortController();
|
|
9855
9972
|
let watchdog;
|
|
@@ -10094,8 +10211,8 @@ function sseFailureMessage(status, statusText, detail = "") {
|
|
|
10094
10211
|
}
|
|
10095
10212
|
function parseSseChunks(raw, incompleteBuffer) {
|
|
10096
10213
|
const chunks2 = [];
|
|
10097
|
-
const
|
|
10098
|
-
const lines =
|
|
10214
|
+
const text13 = incompleteBuffer + raw;
|
|
10215
|
+
const lines = text13.split("\n");
|
|
10099
10216
|
const remaining = raw.endsWith("\n") ? "" : lines.pop() ?? "";
|
|
10100
10217
|
for (const line of lines) {
|
|
10101
10218
|
if (!line.startsWith("data: ")) continue;
|
|
@@ -10591,14 +10708,14 @@ var MaskScopedEmbeddingCache = class extends Map {
|
|
|
10591
10708
|
this.inner = inner;
|
|
10592
10709
|
this.masked = masked;
|
|
10593
10710
|
}
|
|
10594
|
-
key(
|
|
10595
|
-
return `${this.masked ? "m" : "r"}:${
|
|
10711
|
+
key(text13) {
|
|
10712
|
+
return `${this.masked ? "m" : "r"}:${text13}`;
|
|
10596
10713
|
}
|
|
10597
|
-
get(
|
|
10598
|
-
return this.inner.get(this.key(
|
|
10714
|
+
get(text13) {
|
|
10715
|
+
return this.inner.get(this.key(text13));
|
|
10599
10716
|
}
|
|
10600
|
-
set(
|
|
10601
|
-
this.inner.set(this.key(
|
|
10717
|
+
set(text13, value) {
|
|
10718
|
+
this.inner.set(this.key(text13), value);
|
|
10602
10719
|
return this;
|
|
10603
10720
|
}
|
|
10604
10721
|
};
|
|
@@ -12880,22 +12997,35 @@ async function vaultMemoryRawToStored(raw, walletAddress, signMessage, embeddedW
|
|
|
12880
12997
|
return stored2;
|
|
12881
12998
|
}
|
|
12882
12999
|
async function getAllVaultMemoriesOp(ctx, options) {
|
|
12883
|
-
const
|
|
13000
|
+
const results = await ctx.vaultMemoryCollection.query(...vaultListConditions(ctx, options), ...vaultListOrder(options)).unsafeFetchRaw();
|
|
13001
|
+
return mapInBatches(
|
|
13002
|
+
results,
|
|
13003
|
+
(raw) => vaultMemoryRawToStored(raw, ctx.walletAddress, ctx.signMessage, ctx.embeddedWalletSigner)
|
|
13004
|
+
);
|
|
13005
|
+
}
|
|
13006
|
+
function vaultListConditions(ctx, options) {
|
|
13007
|
+
return [
|
|
12884
13008
|
...baseVaultConditions(ctx, options),
|
|
12885
13009
|
...options?.scopes?.length ? [import_watermelondb20.Q.where("scope", import_watermelondb20.Q.oneOf(options.scopes))] : [],
|
|
12886
13010
|
...visibilityConditions(options?.visibility),
|
|
12887
13011
|
...levelConditions(options?.levels),
|
|
12888
13012
|
...options?.kinds?.length ? [import_watermelondb20.Q.where("kind", import_watermelondb20.Q.oneOf(options.kinds))] : [],
|
|
12889
13013
|
...options?.folderId !== void 0 ? [import_watermelondb20.Q.where("folder_id", options.folderId)] : [],
|
|
12890
|
-
...options?.factTypes?.length ? [import_watermelondb20.Q.where("fact_type", import_watermelondb20.Q.oneOf(options.factTypes))] : []
|
|
13014
|
+
...options?.factTypes?.length ? [import_watermelondb20.Q.where("fact_type", import_watermelondb20.Q.oneOf(options.factTypes))] : []
|
|
13015
|
+
];
|
|
13016
|
+
}
|
|
13017
|
+
function vaultListOrder(options) {
|
|
13018
|
+
return [
|
|
12891
13019
|
import_watermelondb20.Q.sortBy(options?.since ? "updated_at" : "created_at", import_watermelondb20.Q.desc),
|
|
12892
13020
|
...options?.limit !== null && options?.limit !== void 0 && options.limit > 0 ? [import_watermelondb20.Q.take(options.limit)] : []
|
|
12893
13021
|
];
|
|
12894
|
-
|
|
12895
|
-
|
|
12896
|
-
|
|
12897
|
-
|
|
12898
|
-
|
|
13022
|
+
}
|
|
13023
|
+
async function getVaultMemoryProjectionsOp(ctx, options) {
|
|
13024
|
+
const results = await ctx.vaultMemoryCollection.query(...vaultListConditions(ctx, options), ...vaultListOrder(options)).unsafeFetchRaw();
|
|
13025
|
+
return results.map((raw) => ({
|
|
13026
|
+
...vaultMemoryRawToRankable(raw),
|
|
13027
|
+
topicsUserManaged: raw.topics_user_managed === true || raw.topics_user_managed === 1
|
|
13028
|
+
}));
|
|
12899
13029
|
}
|
|
12900
13030
|
function vaultMemoryRawToRankable(raw) {
|
|
12901
13031
|
return {
|
|
@@ -14637,7 +14767,7 @@ Which item numbers should be flagged?`,
|
|
|
14637
14767
|
if (parsed === null) return empty;
|
|
14638
14768
|
return { flagged: parseFlagged(parsed, scope.length) };
|
|
14639
14769
|
}
|
|
14640
|
-
function parseFlagged(parsed,
|
|
14770
|
+
function parseFlagged(parsed, count2) {
|
|
14641
14771
|
const out = /* @__PURE__ */ new Set();
|
|
14642
14772
|
if (typeof parsed !== "object" || parsed === null) return out;
|
|
14643
14773
|
const list = parsed.poisoned;
|
|
@@ -14645,7 +14775,7 @@ function parseFlagged(parsed, count) {
|
|
|
14645
14775
|
for (const raw of list) {
|
|
14646
14776
|
const n = typeof raw === "number" ? raw : typeof raw === "string" ? Number(raw) : NaN;
|
|
14647
14777
|
if (!Number.isInteger(n)) continue;
|
|
14648
|
-
if (n >= 1 && n <=
|
|
14778
|
+
if (n >= 1 && n <= count2) out.add(n - 1);
|
|
14649
14779
|
}
|
|
14650
14780
|
return out;
|
|
14651
14781
|
}
|
|
@@ -15142,8 +15272,8 @@ var STOPWORDS = /* @__PURE__ */ new Set([
|
|
|
15142
15272
|
"user",
|
|
15143
15273
|
"users"
|
|
15144
15274
|
]);
|
|
15145
|
-
function tokenize(
|
|
15146
|
-
const m =
|
|
15275
|
+
function tokenize(text13) {
|
|
15276
|
+
const m = text13.toLowerCase().match(TOKEN_RE);
|
|
15147
15277
|
if (!m) return [];
|
|
15148
15278
|
return m.filter((t) => !STOPWORDS.has(t));
|
|
15149
15279
|
}
|
|
@@ -16670,14 +16800,14 @@ async function retainWithPersistence(content, ctx, options = {}) {
|
|
|
16670
16800
|
);
|
|
16671
16801
|
}
|
|
16672
16802
|
if (options.consolidateOptions) {
|
|
16673
|
-
const
|
|
16674
|
-
if (
|
|
16675
|
-
if ("done" in
|
|
16676
|
-
if ("create" in
|
|
16803
|
+
const outcome2 = await tryConsolidate(trimmed, ctx, options, prepared);
|
|
16804
|
+
if (outcome2) {
|
|
16805
|
+
if ("done" in outcome2) return outcome2.done;
|
|
16806
|
+
if ("create" in outcome2) {
|
|
16677
16807
|
consolidationDecidedCreate = true;
|
|
16678
16808
|
} else {
|
|
16679
|
-
supersedeTargetIds =
|
|
16680
|
-
supersedeContent =
|
|
16809
|
+
supersedeTargetIds = outcome2.supersede;
|
|
16810
|
+
supersedeContent = outcome2.content;
|
|
16681
16811
|
}
|
|
16682
16812
|
}
|
|
16683
16813
|
}
|
|
@@ -17343,12 +17473,12 @@ async function extractAndRetain(messages, retainCtx, options) {
|
|
|
17343
17473
|
if (failedWrites > 0) {
|
|
17344
17474
|
log.warn(`[memory/extract] ${failedWrites} of ${filtered.length} candidates failed to retain`);
|
|
17345
17475
|
}
|
|
17346
|
-
const
|
|
17476
|
+
const outcome2 = exhaustedEmpty ? "empty-after-retry" : filtered.length > 0 ? "extracted" : droppedAfterRedaction ? "dropped-after-redaction" : "no-facts";
|
|
17347
17477
|
return {
|
|
17348
17478
|
candidates: succeededCandidates,
|
|
17349
17479
|
results,
|
|
17350
17480
|
failedCount: failedWrites,
|
|
17351
|
-
outcome,
|
|
17481
|
+
outcome: outcome2,
|
|
17352
17482
|
quarantined: quarantinedInfo,
|
|
17353
17483
|
funnel: {
|
|
17354
17484
|
rawCandidateCount,
|
|
@@ -17580,7 +17710,7 @@ function createAutoExtractor(options) {
|
|
|
17580
17710
|
...options.retainCtx,
|
|
17581
17711
|
embeddingOptions: {
|
|
17582
17712
|
...options.retainCtx.embeddingOptions,
|
|
17583
|
-
maskInput: (
|
|
17713
|
+
maskInput: (text13) => piiRedactor.maskText(text13)
|
|
17584
17714
|
}
|
|
17585
17715
|
} : options.retainCtx;
|
|
17586
17716
|
function processTurn(messages, conversationId) {
|
|
@@ -17613,7 +17743,7 @@ function createAutoExtractor(options) {
|
|
|
17613
17743
|
const t0 = Date.now();
|
|
17614
17744
|
void (async () => {
|
|
17615
17745
|
try {
|
|
17616
|
-
const { candidates, results, failedCount, outcome, failure, funnel, timings, model } = await extractAndRetain(window2, retainCtx, {
|
|
17746
|
+
const { candidates, results, failedCount, outcome: outcome2, failure, funnel, timings, model } = await extractAndRetain(window2, retainCtx, {
|
|
17617
17747
|
extract,
|
|
17618
17748
|
...options.minConfidence !== void 0 && { minConfidence: options.minConfidence },
|
|
17619
17749
|
...options.entityCtx !== void 0 && { entityCtx: options.entityCtx },
|
|
@@ -17630,7 +17760,7 @@ function createAutoExtractor(options) {
|
|
|
17630
17760
|
onQuarantined: (info) => options.onMemoryQuarantined?.({ ...info, conversationId })
|
|
17631
17761
|
}
|
|
17632
17762
|
});
|
|
17633
|
-
if (
|
|
17763
|
+
if (outcome2 !== "empty-after-retry" && failedCount === 0) {
|
|
17634
17764
|
const advancedTo = window2[window2.length - 1].id;
|
|
17635
17765
|
stateFor(conversationId).watermark = advancedTo;
|
|
17636
17766
|
persistCursor(conversationId, messages, advancedTo, contiguous);
|
|
@@ -17649,7 +17779,7 @@ function createAutoExtractor(options) {
|
|
|
17649
17779
|
failedCount,
|
|
17650
17780
|
durationMs: Date.now() - t0,
|
|
17651
17781
|
conversationId,
|
|
17652
|
-
outcome,
|
|
17782
|
+
outcome: outcome2,
|
|
17653
17783
|
funnel,
|
|
17654
17784
|
timings,
|
|
17655
17785
|
model,
|
|
@@ -19326,12 +19456,12 @@ ${JSON.stringify(
|
|
|
19326
19456
|
function parseAnswer(body, base, parseSchema) {
|
|
19327
19457
|
if (typeof body !== "object" || body === null) return base;
|
|
19328
19458
|
const obj = body;
|
|
19329
|
-
const
|
|
19459
|
+
const text13 = extractCompletionContent(obj) ?? "";
|
|
19330
19460
|
const usage = obj.usage;
|
|
19331
19461
|
let structuredOutput;
|
|
19332
|
-
if (parseSchema &&
|
|
19462
|
+
if (parseSchema && text13) {
|
|
19333
19463
|
try {
|
|
19334
|
-
structuredOutput = JSON.parse(extractJsonCandidate(
|
|
19464
|
+
structuredOutput = JSON.parse(extractJsonCandidate(text13));
|
|
19335
19465
|
} catch (err) {
|
|
19336
19466
|
getLogger().warn("[memory/reflect] structured output was not valid JSON", {
|
|
19337
19467
|
err: err instanceof Error ? err.message : String(err)
|
|
@@ -19341,7 +19471,7 @@ function parseAnswer(body, base, parseSchema) {
|
|
|
19341
19471
|
const promptTokens = usage?.prompt_tokens ?? usage?.input_tokens ?? 0;
|
|
19342
19472
|
const completionTokens = usage?.completion_tokens ?? usage?.output_tokens ?? 0;
|
|
19343
19473
|
return {
|
|
19344
|
-
text:
|
|
19474
|
+
text: text13,
|
|
19345
19475
|
...structuredOutput !== void 0 && { structuredOutput },
|
|
19346
19476
|
basedOn: base.basedOn,
|
|
19347
19477
|
usage: {
|
|
@@ -19576,6 +19706,7 @@ function createLocalMemoryStore(options) {
|
|
|
19576
19706
|
};
|
|
19577
19707
|
const vaultCache = options.vaultCache ?? createVaultEmbeddingCache();
|
|
19578
19708
|
const ownedBy = userId !== void 0 ? [import_watermelondb23.Q.where("user_id", userId)] : [];
|
|
19709
|
+
const linksOwnedBy = userId === void 0 ? [] : options.allowUnscopedRows ? [import_watermelondb23.Q.or(import_watermelondb23.Q.where("user_id", userId), import_watermelondb23.Q.where("user_id", null))] : [import_watermelondb23.Q.where("user_id", userId)];
|
|
19579
19710
|
const watchedColumns = [
|
|
19580
19711
|
"content",
|
|
19581
19712
|
"scope",
|
|
@@ -19618,6 +19749,29 @@ function createLocalMemoryStore(options) {
|
|
|
19618
19749
|
},
|
|
19619
19750
|
memoriesByTopics: (names) => getMemoriesByEntityNamesOp(entityCtx, names),
|
|
19620
19751
|
topicsByMemories: (memoryIds) => getEntitiesByMemoryIdsOp(entityCtx, memoryIds),
|
|
19752
|
+
listTopics: async () => {
|
|
19753
|
+
const links = await entityCtx.memoryEntityCollection.query(...linksOwnedBy).fetch();
|
|
19754
|
+
const members = /* @__PURE__ */ new Map();
|
|
19755
|
+
for (const link of links) {
|
|
19756
|
+
const entityId = String(link.entityId);
|
|
19757
|
+
const set = members.get(entityId) ?? /* @__PURE__ */ new Set();
|
|
19758
|
+
set.add(String(link.memoryId));
|
|
19759
|
+
members.set(entityId, set);
|
|
19760
|
+
}
|
|
19761
|
+
const entities = userId === void 0 ? await entityCtx.entityCollection.query().fetch() : members.size ? await entityCtx.entityCollection.query(import_watermelondb23.Q.where("id", import_watermelondb23.Q.oneOf([...members.keys()]))).fetch() : [];
|
|
19762
|
+
const byName = /* @__PURE__ */ new Map();
|
|
19763
|
+
for (const entity of entities) {
|
|
19764
|
+
const count2 = members.get(entity.id)?.size ?? 0;
|
|
19765
|
+
const existing = byName.get(entity.canonicalName);
|
|
19766
|
+
byName.set(entity.canonicalName, {
|
|
19767
|
+
name: entity.canonicalName,
|
|
19768
|
+
kind: existing?.kind ?? entity.kind ?? null,
|
|
19769
|
+
memoryCount: (existing?.memoryCount ?? 0) + count2
|
|
19770
|
+
});
|
|
19771
|
+
}
|
|
19772
|
+
return [...byName.values()].sort((a, b) => a.name.localeCompare(b.name));
|
|
19773
|
+
},
|
|
19774
|
+
listProjections: (listOptions) => getVaultMemoryProjectionsOp(vaultCtx, listOptions),
|
|
19621
19775
|
create: async (input) => {
|
|
19622
19776
|
const created = await createVaultMemoryOp(vaultCtx, input);
|
|
19623
19777
|
if (input.embedding === void 0) embedInBackground(created);
|
|
@@ -19679,7 +19833,6 @@ function createLocalMemoryStore(options) {
|
|
|
19679
19833
|
);
|
|
19680
19834
|
const subscriptions = [memories.subscribe(afterFirst())];
|
|
19681
19835
|
if (subscribeOptions?.topics) {
|
|
19682
|
-
const linksOwnedBy = userId === void 0 ? [] : options.allowUnscopedRows ? [import_watermelondb23.Q.or(import_watermelondb23.Q.where("user_id", userId), import_watermelondb23.Q.where("user_id", null))] : [import_watermelondb23.Q.where("user_id", userId)];
|
|
19683
19836
|
subscriptions.push(
|
|
19684
19837
|
entityCtx.memoryEntityCollection.query(...linksOwnedBy).observe().subscribe(afterFirst())
|
|
19685
19838
|
);
|
|
@@ -20089,6 +20242,31 @@ async function createRemoteMemoryPersistence(options) {
|
|
|
20089
20242
|
throw new Error("Invalid nearby candidate response");
|
|
20090
20243
|
return result;
|
|
20091
20244
|
};
|
|
20245
|
+
const fetchQueryPage = async (queryOptions) => {
|
|
20246
|
+
const { signal, ...query } = queryOptions;
|
|
20247
|
+
if (query.limit !== void 0 && (!Number.isInteger(query.limit) || query.limit < 1 || query.limit > 200))
|
|
20248
|
+
throw new Error("Page limit must be 1\u2013200");
|
|
20249
|
+
for (const [key, max] of queryListLimits) {
|
|
20250
|
+
const values = query[key];
|
|
20251
|
+
if (values && values.length > max)
|
|
20252
|
+
throw new Error(`Query ${key} accepts at most ${max} entries (got ${values.length})`);
|
|
20253
|
+
}
|
|
20254
|
+
const page = await request(
|
|
20255
|
+
"/memories/query",
|
|
20256
|
+
{
|
|
20257
|
+
method: "POST",
|
|
20258
|
+
body: JSON.stringify(
|
|
20259
|
+
Object.fromEntries(
|
|
20260
|
+
queryFields.filter((key) => query[key] !== void 0).map((key) => [key, query[key]])
|
|
20261
|
+
)
|
|
20262
|
+
)
|
|
20263
|
+
},
|
|
20264
|
+
signal
|
|
20265
|
+
);
|
|
20266
|
+
if (!record(page) || !Array.isArray(page.items) || page.next_cursor !== void 0 && typeof page.next_cursor !== "string" || page.changes_cursor !== void 0 && typeof page.changes_cursor !== "string")
|
|
20267
|
+
throw new Error("Invalid nearby private-memory page");
|
|
20268
|
+
return page;
|
|
20269
|
+
};
|
|
20092
20270
|
const candidateSet = async (embedding, candidateOptions = {}) => {
|
|
20093
20271
|
const result = await fetchCandidates(embedding, candidateOptions, true);
|
|
20094
20272
|
if (!Number.isSafeInteger(result.total_count) || result.total_count < 0 || !Number.isSafeInteger(result.unavailable_count) || result.unavailable_count < 0)
|
|
@@ -20167,34 +20345,27 @@ async function createRemoteMemoryPersistence(options) {
|
|
|
20167
20345
|
return Promise.all(result.items.map((item, i) => decodeCommitted(item, prepared[i])));
|
|
20168
20346
|
},
|
|
20169
20347
|
query: async (queryOptions = {}) => {
|
|
20170
|
-
const
|
|
20171
|
-
if (query.limit !== void 0 && (!Number.isInteger(query.limit) || query.limit < 1 || query.limit > 200))
|
|
20172
|
-
throw new Error("Page limit must be 1\u2013200");
|
|
20173
|
-
for (const [key, max] of queryListLimits) {
|
|
20174
|
-
const values = query[key];
|
|
20175
|
-
if (values && values.length > max)
|
|
20176
|
-
throw new Error(`Query ${key} accepts at most ${max} entries (got ${values.length})`);
|
|
20177
|
-
}
|
|
20178
|
-
const page = await request(
|
|
20179
|
-
"/memories/query",
|
|
20180
|
-
{
|
|
20181
|
-
method: "POST",
|
|
20182
|
-
body: JSON.stringify(
|
|
20183
|
-
Object.fromEntries(
|
|
20184
|
-
queryFields.filter((key) => query[key] !== void 0).map((key) => [key, query[key]])
|
|
20185
|
-
)
|
|
20186
|
-
)
|
|
20187
|
-
},
|
|
20188
|
-
signal
|
|
20189
|
-
);
|
|
20190
|
-
if (!record(page) || !Array.isArray(page.items) || page.next_cursor !== void 0 && typeof page.next_cursor !== "string" || page.changes_cursor !== void 0 && typeof page.changes_cursor !== "string")
|
|
20191
|
-
throw new Error("Invalid nearby private-memory page");
|
|
20348
|
+
const page = await fetchQueryPage(queryOptions);
|
|
20192
20349
|
return {
|
|
20193
20350
|
...await decodeAll(page.items),
|
|
20194
20351
|
...page.next_cursor !== void 0 && { next_cursor: page.next_cursor },
|
|
20195
20352
|
...page.changes_cursor !== void 0 && { changes_cursor: page.changes_cursor }
|
|
20196
20353
|
};
|
|
20197
20354
|
},
|
|
20355
|
+
queryMetadata: async (queryOptions = {}) => {
|
|
20356
|
+
const page = await fetchQueryPage(queryOptions);
|
|
20357
|
+
return {
|
|
20358
|
+
items: page.items.map((item) => {
|
|
20359
|
+
const {
|
|
20360
|
+
memory: { content: _content, kind_value: _kindValue, ...memory },
|
|
20361
|
+
version,
|
|
20362
|
+
server_updated_at
|
|
20363
|
+
} = memoryRecord(item);
|
|
20364
|
+
return { memory, version, server_updated_at };
|
|
20365
|
+
}),
|
|
20366
|
+
...page.next_cursor !== void 0 && { next_cursor: page.next_cursor }
|
|
20367
|
+
};
|
|
20368
|
+
},
|
|
20198
20369
|
candidateSet,
|
|
20199
20370
|
candidates: async (embedding, candidateOptions = {}) => decodeAll((await fetchCandidates(embedding, candidateOptions, false)).items)
|
|
20200
20371
|
};
|
|
@@ -20546,10 +20717,10 @@ function createRemoteMemoryPipeline(options) {
|
|
|
20546
20717
|
factSource: {
|
|
20547
20718
|
graphRanking: options.graphRanking,
|
|
20548
20719
|
temporalRanking: options.temporalRanking,
|
|
20549
|
-
search: async (
|
|
20550
|
-
const prepared = await prepare(
|
|
20720
|
+
search: async (text13, searchOptions) => {
|
|
20721
|
+
const prepared = await prepare(text13, searchOptions);
|
|
20551
20722
|
const ranked = await rankPreparedVaultCandidates(
|
|
20552
|
-
|
|
20723
|
+
text13,
|
|
20553
20724
|
prepared,
|
|
20554
20725
|
embeddingOptions,
|
|
20555
20726
|
searchOptions
|
|
@@ -20587,6 +20758,19 @@ function createRemoteMemoryPipeline(options) {
|
|
|
20587
20758
|
// src/lib/memory/store/remoteStore.ts
|
|
20588
20759
|
var import_uuid5 = require("uuid");
|
|
20589
20760
|
init_logger();
|
|
20761
|
+
function projection({ memory }) {
|
|
20762
|
+
return {
|
|
20763
|
+
uniqueId: memory.memory_id,
|
|
20764
|
+
scope: memory.scope,
|
|
20765
|
+
folderId: memory.folder_id ?? null,
|
|
20766
|
+
embedding: memory.embedding?.length ? JSON.stringify(memory.embedding) : null,
|
|
20767
|
+
embeddingModel: memory.embedding_model ?? null,
|
|
20768
|
+
createdAt: new Date(memory.created_at),
|
|
20769
|
+
updatedAt: new Date(memory.updated_at),
|
|
20770
|
+
lastObservedAt: memory.last_observed_at ?? null,
|
|
20771
|
+
topicsUserManaged: memory.topics_user_managed ?? false
|
|
20772
|
+
};
|
|
20773
|
+
}
|
|
20590
20774
|
function relevant(change, options) {
|
|
20591
20775
|
return options.includeDeleted ? change === "membership" : change !== "embedding" || !!options.embeddings;
|
|
20592
20776
|
}
|
|
@@ -20621,6 +20805,9 @@ function bounded(filters, key) {
|
|
|
20621
20805
|
if (!values || values.length <= MAX_QUERY_FILTER) return [filters];
|
|
20622
20806
|
return chunks(values, MAX_QUERY_FILTER).map((chunk) => ({ ...filters, [key]: chunk }));
|
|
20623
20807
|
}
|
|
20808
|
+
function maxOf(options) {
|
|
20809
|
+
return options.limit && options.limit > 0 ? options.limit : Infinity;
|
|
20810
|
+
}
|
|
20624
20811
|
function chunks(values, size) {
|
|
20625
20812
|
const out = [];
|
|
20626
20813
|
for (let i = 0; i < values.length; i += size) out.push(values.slice(i, i + size));
|
|
@@ -20692,26 +20879,49 @@ function createRemoteMemoryStore(options) {
|
|
|
20692
20879
|
for (const subscriber of [...subscribers])
|
|
20693
20880
|
if (relevant(change, subscriber.options)) safely(subscriber.onChange);
|
|
20694
20881
|
};
|
|
20695
|
-
const
|
|
20882
|
+
const pages = async (read, filters, max = Infinity) => {
|
|
20696
20883
|
const records = [];
|
|
20697
20884
|
let cursor2;
|
|
20698
20885
|
do {
|
|
20699
|
-
const page = await
|
|
20886
|
+
const page = await read({
|
|
20700
20887
|
...filters,
|
|
20701
20888
|
limit: Math.min(200, Math.max(1, max - records.length)),
|
|
20702
20889
|
...cursor2 && { cursor: cursor2 }
|
|
20703
20890
|
});
|
|
20704
|
-
warnFailed(page.failed);
|
|
20891
|
+
if (page.failed) warnFailed(page.failed);
|
|
20705
20892
|
records.push(...page.items);
|
|
20706
20893
|
cursor2 = page.next_cursor;
|
|
20707
20894
|
} while (cursor2 && records.length < max);
|
|
20708
20895
|
return records.slice(0, max);
|
|
20709
20896
|
};
|
|
20710
|
-
const
|
|
20897
|
+
const decrypted = (options2) => persistence.query(options2);
|
|
20898
|
+
const metadata = (options2) => persistence.queryMetadata(options2);
|
|
20899
|
+
const enumerate = (filters, max = Infinity) => pages(decrypted, filters, max);
|
|
20900
|
+
const enumerateIds = async (read, ids, filters) => (await Promise.all(
|
|
20711
20901
|
chunks([...new Set(ids)], MAX_QUERY_IDS).map(
|
|
20712
|
-
(memory_ids) =>
|
|
20902
|
+
(memory_ids) => pages(read, { ...filters, memory_ids })
|
|
20713
20903
|
)
|
|
20714
20904
|
)).flat();
|
|
20905
|
+
const listFilters = (listOptions) => ({
|
|
20906
|
+
...stateFilters(listOptions),
|
|
20907
|
+
include_embeddings: true,
|
|
20908
|
+
order: listOptions.since ? "updated" : "created",
|
|
20909
|
+
...listOptions.scopes?.length && { scopes: listOptions.scopes },
|
|
20910
|
+
...listOptions.factTypes?.length && { fact_types: listOptions.factTypes },
|
|
20911
|
+
...listOptions.visibility?.length && { visibility: listOptions.visibility },
|
|
20912
|
+
...listOptions.since && { updated_after: listOptions.since.getTime() }
|
|
20913
|
+
});
|
|
20914
|
+
const listRows = async (read, listOptions, filters, max) => {
|
|
20915
|
+
const variants = bounded(filters, "scopes").flatMap((f) => bounded(f, "fact_types"));
|
|
20916
|
+
if (!listOptions.memoryIds && variants.length === 1) return pages(read, filters, max);
|
|
20917
|
+
const fetched = await Promise.all(
|
|
20918
|
+
variants.map(
|
|
20919
|
+
(variant) => listOptions.memoryIds ? enumerateIds(read, listOptions.memoryIds, variant) : pages(read, variant, max)
|
|
20920
|
+
)
|
|
20921
|
+
);
|
|
20922
|
+
const time = (row) => filters.order === "updated" ? row.memory.updated_at : row.memory.created_at;
|
|
20923
|
+
return [...new Map(fetched.flat().map((r) => [r.memory.memory_id, r])).values()].sort((a, b) => time(b) - time(a) || (a.memory.memory_id < b.memory.memory_id ? 1 : -1)).slice(0, max);
|
|
20924
|
+
};
|
|
20715
20925
|
const queues = /* @__PURE__ */ new Map();
|
|
20716
20926
|
const serialized = (id, task) => {
|
|
20717
20927
|
const run = (queues.get(id) ?? Promise.resolve()).then(task, task);
|
|
@@ -20753,12 +20963,15 @@ function createRemoteMemoryStore(options) {
|
|
|
20753
20963
|
};
|
|
20754
20964
|
const newRow = (input) => {
|
|
20755
20965
|
const now = Date.now();
|
|
20756
|
-
const scope = input
|
|
20966
|
+
const { level, scope } = resolveCreateLevel(input);
|
|
20967
|
+
assertValidKindLevel(input.kind, level);
|
|
20757
20968
|
return {
|
|
20758
20969
|
memory_id: (0, import_uuid5.v7)(),
|
|
20759
20970
|
content: input.content,
|
|
20760
20971
|
scope,
|
|
20761
|
-
level
|
|
20972
|
+
level,
|
|
20973
|
+
...input.kind !== void 0 && input.kind !== null && { kind: input.kind },
|
|
20974
|
+
...typeof input.kindValue === "string" && { kind_value: input.kindValue },
|
|
20762
20975
|
created_at: now,
|
|
20763
20976
|
updated_at: now,
|
|
20764
20977
|
is_deleted: false,
|
|
@@ -20787,6 +21000,30 @@ function createRemoteMemoryStore(options) {
|
|
|
20787
21000
|
return records.map((record2) => stored(record2.memory));
|
|
20788
21001
|
};
|
|
20789
21002
|
const asStored = (record2) => record2 ? stored(record2.memory) : null;
|
|
21003
|
+
const withKnownKinds = async (topics) => {
|
|
21004
|
+
const unkinded = [
|
|
21005
|
+
...new Set(topics.filter((t) => !t.kind).map((t) => normalizeEntityName(t.name)))
|
|
21006
|
+
];
|
|
21007
|
+
if (unkinded.length === 0) return topics;
|
|
21008
|
+
const kinds = /* @__PURE__ */ new Map();
|
|
21009
|
+
for (const names of chunks(unkinded, MAX_QUERY_TOPICS)) {
|
|
21010
|
+
for (const { memory } of await pages(metadata, {
|
|
21011
|
+
topics: names,
|
|
21012
|
+
include_archived: true,
|
|
21013
|
+
include_quarantined: true,
|
|
21014
|
+
include_superseded: true
|
|
21015
|
+
})) {
|
|
21016
|
+
for (const topic of parseTopics(memory.topics) ?? []) {
|
|
21017
|
+
const name = normalizeEntityName(topic.name);
|
|
21018
|
+
if (topic.kind && !kinds.has(name)) kinds.set(name, topic.kind);
|
|
21019
|
+
}
|
|
21020
|
+
}
|
|
21021
|
+
}
|
|
21022
|
+
return topics.map((topic) => {
|
|
21023
|
+
const kind = topic.kind ?? kinds.get(normalizeEntityName(topic.name));
|
|
21024
|
+
return kind ? { ...topic, kind } : topic;
|
|
21025
|
+
});
|
|
21026
|
+
};
|
|
20790
21027
|
const everyState = {
|
|
20791
21028
|
include_deleted: true,
|
|
20792
21029
|
include_archived: true,
|
|
@@ -20863,30 +21100,34 @@ function createRemoteMemoryStore(options) {
|
|
|
20863
21100
|
});
|
|
20864
21101
|
};
|
|
20865
21102
|
return {
|
|
20866
|
-
list: async (listOptions = {}) =>
|
|
20867
|
-
|
|
20868
|
-
|
|
20869
|
-
|
|
20870
|
-
|
|
20871
|
-
|
|
20872
|
-
|
|
20873
|
-
|
|
20874
|
-
|
|
20875
|
-
|
|
20876
|
-
|
|
20877
|
-
|
|
20878
|
-
|
|
20879
|
-
|
|
20880
|
-
|
|
20881
|
-
|
|
20882
|
-
|
|
20883
|
-
|
|
20884
|
-
|
|
20885
|
-
|
|
20886
|
-
|
|
20887
|
-
|
|
20888
|
-
|
|
20889
|
-
|
|
21103
|
+
list: async (listOptions = {}) => (await listRows(decrypted, listOptions, listFilters(listOptions), maxOf(listOptions))).map(
|
|
21104
|
+
(r) => stored(r.memory)
|
|
21105
|
+
),
|
|
21106
|
+
listProjections: async (listOptions = {}) => (await listRows(metadata, listOptions, listFilters(listOptions), maxOf(listOptions))).map(
|
|
21107
|
+
projection
|
|
21108
|
+
),
|
|
21109
|
+
listTopics: async () => {
|
|
21110
|
+
const topics = /* @__PURE__ */ new Map();
|
|
21111
|
+
for (const { memory } of await pages(metadata, {
|
|
21112
|
+
include_archived: true,
|
|
21113
|
+
include_quarantined: true,
|
|
21114
|
+
include_superseded: true
|
|
21115
|
+
})) {
|
|
21116
|
+
for (const topic of parseTopics(memory.topics) ?? []) {
|
|
21117
|
+
const name = normalizeEntityName(topic.name);
|
|
21118
|
+
if (!name) continue;
|
|
21119
|
+
const entry = topics.get(name) ?? {
|
|
21120
|
+
name,
|
|
21121
|
+
kind: null,
|
|
21122
|
+
memoryCount: 0,
|
|
21123
|
+
members: /* @__PURE__ */ new Set()
|
|
21124
|
+
};
|
|
21125
|
+
entry.kind ?? (entry.kind = topic.kind ?? null);
|
|
21126
|
+
entry.members.add(memory.memory_id);
|
|
21127
|
+
topics.set(name, entry);
|
|
21128
|
+
}
|
|
21129
|
+
}
|
|
21130
|
+
return [...topics.values()].map(({ members, ...topic }) => ({ ...topic, memoryCount: members.size })).sort((a, b) => a.name.localeCompare(b.name));
|
|
20890
21131
|
},
|
|
20891
21132
|
get: async (id) => asStored(await live(id)),
|
|
20892
21133
|
listArchived: async () => (await enumerate({ archived_only: true, order: "archived", include_embeddings: true })).map(
|
|
@@ -20895,10 +21136,10 @@ function createRemoteMemoryStore(options) {
|
|
|
20895
21136
|
memoriesByTopics: async (names) => {
|
|
20896
21137
|
const wanted = new Set(names.map(normalizeEntityName).filter(Boolean));
|
|
20897
21138
|
const out = /* @__PURE__ */ new Map();
|
|
20898
|
-
const
|
|
21139
|
+
const pages2 = await Promise.all(
|
|
20899
21140
|
chunks([...wanted], MAX_QUERY_TOPICS).map((topics) => enumerate({ topics }))
|
|
20900
21141
|
);
|
|
20901
|
-
for (const { memory } of
|
|
21142
|
+
for (const { memory } of pages2.flat()) {
|
|
20902
21143
|
const matched = [...canonicalTopics(memory)].filter((name) => wanted.has(name));
|
|
20903
21144
|
if (matched.length) out.set(memory.memory_id, new Set(matched));
|
|
20904
21145
|
}
|
|
@@ -20906,7 +21147,7 @@ function createRemoteMemoryStore(options) {
|
|
|
20906
21147
|
},
|
|
20907
21148
|
topicsByMemories: async (memoryIds) => {
|
|
20908
21149
|
const out = /* @__PURE__ */ new Map();
|
|
20909
|
-
for (const { memory } of await enumerateIds(memoryIds, {
|
|
21150
|
+
for (const { memory } of await enumerateIds(decrypted, memoryIds, {
|
|
20910
21151
|
include_archived: true,
|
|
20911
21152
|
include_superseded: true,
|
|
20912
21153
|
include_quarantined: true
|
|
@@ -20939,15 +21180,26 @@ function createRemoteMemoryStore(options) {
|
|
|
20939
21180
|
update: async (id, patch) => {
|
|
20940
21181
|
const saved = await mutate(id, "edit", (memory) => {
|
|
20941
21182
|
if (memory.superseded_by) return null;
|
|
21183
|
+
const level = patch.level !== void 0 ? patch.level : patch.scope !== void 0 ? levelForScopeChange({ level: memory.level, scope: memory.scope }, patch.scope) : resolveMemoryLevel(memory.level, memory.scope);
|
|
21184
|
+
const kind = patch.kind !== void 0 ? patch.kind : memory.kind;
|
|
21185
|
+
assertValidKindLevel(kind, level);
|
|
20942
21186
|
memory.content = patch.content;
|
|
20943
21187
|
memory.updated_at = Date.now();
|
|
20944
|
-
if (patch.
|
|
20945
|
-
memory.level =
|
|
20946
|
-
|
|
20947
|
-
|
|
20948
|
-
|
|
21188
|
+
if (patch.level !== void 0) {
|
|
21189
|
+
memory.level = level;
|
|
21190
|
+
memory.scope = scopeForLevel(level);
|
|
21191
|
+
} else if (patch.scope !== void 0) {
|
|
21192
|
+
memory.level = level;
|
|
20949
21193
|
memory.scope = patch.scope;
|
|
20950
21194
|
}
|
|
21195
|
+
if (patch.kind !== void 0) {
|
|
21196
|
+
if (patch.kind === null) delete memory.kind;
|
|
21197
|
+
else memory.kind = patch.kind;
|
|
21198
|
+
}
|
|
21199
|
+
if (patch.kindValue !== void 0) {
|
|
21200
|
+
if (patch.kindValue === null) delete memory.kind_value;
|
|
21201
|
+
else memory.kind_value = patch.kindValue;
|
|
21202
|
+
}
|
|
20951
21203
|
if (patch.factType !== void 0) memory.fact_type = patch.factType ?? void 0;
|
|
20952
21204
|
if (patch.eventTime !== void 0) {
|
|
20953
21205
|
memory.event_time_start = patch.eventTime?.start ?? void 0;
|
|
@@ -21002,16 +21254,19 @@ function createRemoteMemoryStore(options) {
|
|
|
21002
21254
|
notify("edit", [await persistence.put(memory, record2)]);
|
|
21003
21255
|
return true;
|
|
21004
21256
|
}),
|
|
21005
|
-
setTopics: async (memoryId, topics) =>
|
|
21006
|
-
await
|
|
21007
|
-
|
|
21008
|
-
|
|
21009
|
-
|
|
21010
|
-
|
|
21011
|
-
|
|
21012
|
-
|
|
21257
|
+
setTopics: async (memoryId, topics) => {
|
|
21258
|
+
const chosen = await withKnownKinds(topicInputs(topics, "user"));
|
|
21259
|
+
return asStored(
|
|
21260
|
+
await mutate(memoryId, "edit", (memory) => ({
|
|
21261
|
+
...memory,
|
|
21262
|
+
topics: serializeTopics(mergeTopics([], chosen)),
|
|
21263
|
+
topics_user_managed: true,
|
|
21264
|
+
topics_updated_at: Date.now()
|
|
21265
|
+
}))
|
|
21266
|
+
);
|
|
21267
|
+
},
|
|
21013
21268
|
addTopics: async (memoryId, topics) => {
|
|
21014
|
-
const added = topicInputs(topics, "auto");
|
|
21269
|
+
const added = await withKnownKinds(topicInputs(topics, "auto"));
|
|
21015
21270
|
const saved = await mutate(memoryId, "edit", (memory) => ({
|
|
21016
21271
|
...memory,
|
|
21017
21272
|
topics: serializeTopics(mergeTopics(parseTopics(memory.topics) ?? [], added)),
|
|
@@ -21440,8 +21695,8 @@ async function synthesizeFacet(facet, ctx, options, prior) {
|
|
|
21440
21695
|
memories
|
|
21441
21696
|
});
|
|
21442
21697
|
const noEvidence = result.basedOn.memoryIds.length === 0;
|
|
21443
|
-
const { text:
|
|
21444
|
-
if (!
|
|
21698
|
+
const { text: text13, legitimateEmpty } = extractFacetText(result.structuredOutput);
|
|
21699
|
+
if (!text13 && !legitimateEmpty && !noEvidence) {
|
|
21445
21700
|
getLogger().warn(
|
|
21446
21701
|
"[memory/synthesizeProfile] facet synthesis returned degraded-empty; using fallback section",
|
|
21447
21702
|
{ facet: facet.key, recalledCount: result.basedOn.memoryIds.length }
|
|
@@ -21451,12 +21706,12 @@ async function synthesizeFacet(facet, ctx, options, prior) {
|
|
|
21451
21706
|
const section = {
|
|
21452
21707
|
key: facet.key,
|
|
21453
21708
|
label: facet.label,
|
|
21454
|
-
text:
|
|
21709
|
+
text: text13,
|
|
21455
21710
|
sourceMemoryIds: result.basedOn.memoryIds,
|
|
21456
21711
|
generatedAt: Date.now()
|
|
21457
21712
|
};
|
|
21458
|
-
if (options.redactor &&
|
|
21459
|
-
const redacted = await options.redactor.redactTextAsync(
|
|
21713
|
+
if (options.redactor && text13) {
|
|
21714
|
+
const redacted = await options.redactor.redactTextAsync(text13);
|
|
21460
21715
|
section.text = redacted.text;
|
|
21461
21716
|
}
|
|
21462
21717
|
if (!legitimateEmpty && !noEvidence) {
|
|
@@ -21969,10 +22224,10 @@ function createDurableAutoExtractor(options) {
|
|
|
21969
22224
|
const counted = error instanceof BatchFailureError || error instanceof LockedSourcesError && error.persistentIds.length > 0;
|
|
21970
22225
|
if (!counted) return false;
|
|
21971
22226
|
const prior = sessionFailures.get(job.id);
|
|
21972
|
-
const
|
|
21973
|
-
sessionFailures.set(job.id, { head, count });
|
|
22227
|
+
const count2 = prior?.head === head ? prior.count + 1 : 1;
|
|
22228
|
+
sessionFailures.set(job.id, { head, count: count2 });
|
|
21974
22229
|
const terminal = error instanceof BatchFailureError && error.terminal;
|
|
21975
|
-
if (!terminal &&
|
|
22230
|
+
if (!terminal && count2 < MAX_ATTEMPTS) return false;
|
|
21976
22231
|
skippedThisSession.add(job.id);
|
|
21977
22232
|
const now = clock();
|
|
21978
22233
|
const lastCounted = failedAtOf(job, head);
|
|
@@ -22279,7 +22534,7 @@ async function verifyFactSupport(items, options) {
|
|
|
22279
22534
|
}
|
|
22280
22535
|
const maxEvidenceChars = Math.max(1, options.maxEvidenceChars ?? DEFAULT_MAX_EVIDENCE_CHARS);
|
|
22281
22536
|
const redactor = resolvePiiRedactor(options.piiRedaction ?? true);
|
|
22282
|
-
const safe = async (
|
|
22537
|
+
const safe = async (text13) => redactor ? (await redactor.redactTextAsync(text13)).text : text13;
|
|
22283
22538
|
let truncatedCount = 0;
|
|
22284
22539
|
const parts = [];
|
|
22285
22540
|
for (const [i, item] of items.entries()) {
|
|
@@ -22336,7 +22591,7 @@ Which item numbers are supported?`,
|
|
|
22336
22591
|
}
|
|
22337
22592
|
return supported;
|
|
22338
22593
|
}
|
|
22339
|
-
function parseSupported(parsed,
|
|
22594
|
+
function parseSupported(parsed, count2) {
|
|
22340
22595
|
if (typeof parsed !== "object" || parsed === null) return null;
|
|
22341
22596
|
const list = parsed.supported;
|
|
22342
22597
|
if (!Array.isArray(list)) return null;
|
|
@@ -22344,7 +22599,7 @@ function parseSupported(parsed, count) {
|
|
|
22344
22599
|
for (const raw of list) {
|
|
22345
22600
|
const n = typeof raw === "number" ? raw : typeof raw === "string" ? Number(raw) : NaN;
|
|
22346
22601
|
if (!Number.isInteger(n)) continue;
|
|
22347
|
-
if (n >= 1 && n <=
|
|
22602
|
+
if (n >= 1 && n <= count2) out.add(n - 1);
|
|
22348
22603
|
}
|
|
22349
22604
|
return out;
|
|
22350
22605
|
}
|
|
@@ -22395,7 +22650,7 @@ async function verifyMemoriesForPublish(memories, sources, options) {
|
|
|
22395
22650
|
);
|
|
22396
22651
|
const pending = [];
|
|
22397
22652
|
for (const { index, uniqueId, content, ids } of withinBudget) {
|
|
22398
|
-
const evidence = ids.map((id) => resolved.get(id) ?? null).filter((
|
|
22653
|
+
const evidence = ids.map((id) => resolved.get(id) ?? null).filter((text13) => text13 !== null);
|
|
22399
22654
|
const dropped = ids.length - evidence.length;
|
|
22400
22655
|
if (ids.some((id) => unreadable.has(id))) {
|
|
22401
22656
|
results[index] = {
|
|
@@ -22898,22 +23153,22 @@ function normalizeManualFactType(value) {
|
|
|
22898
23153
|
function isSharedScope(scope) {
|
|
22899
23154
|
return scope === "shared";
|
|
22900
23155
|
}
|
|
22901
|
-
async function notifyWritten(options, input,
|
|
23156
|
+
async function notifyWritten(options, input, outcome2) {
|
|
22902
23157
|
try {
|
|
22903
|
-
await options?.onWritten?.({ input, outcome });
|
|
23158
|
+
await options?.onWritten?.({ input, outcome: outcome2 });
|
|
22904
23159
|
} catch {
|
|
22905
23160
|
}
|
|
22906
23161
|
}
|
|
22907
|
-
function describeWriteOutcome(
|
|
22908
|
-
switch (
|
|
23162
|
+
function describeWriteOutcome(outcome2) {
|
|
23163
|
+
switch (outcome2.action) {
|
|
22909
23164
|
case "create":
|
|
22910
|
-
return `Memory saved successfully (ID: ${
|
|
23165
|
+
return `Memory saved successfully (ID: ${outcome2.memoryId}).`;
|
|
22911
23166
|
case "update":
|
|
22912
23167
|
case "supersede":
|
|
22913
|
-
return `Memory saved successfully (ID: ${
|
|
23168
|
+
return `Memory saved successfully (ID: ${outcome2.memoryId}); it replaces an earlier version of this fact.`;
|
|
22914
23169
|
case "merge":
|
|
22915
23170
|
case "skip":
|
|
22916
|
-
return `The vault already holds this fact (ID: ${
|
|
23171
|
+
return `The vault already holds this fact (ID: ${outcome2.memoryId}); it was noted as re-observed. Nothing new was created \u2014 do not save it again.`;
|
|
22917
23172
|
case "suppressed":
|
|
22918
23173
|
return "Not saved: this matches a memory the user previously deleted. Do not re-save it.";
|
|
22919
23174
|
}
|
|
@@ -23019,9 +23274,9 @@ function createMemoryVaultTool(vaultCtx, options, embeddingOptions, cache) {
|
|
|
23019
23274
|
...folderId !== void 0 && { folderId },
|
|
23020
23275
|
...factType !== void 0 && { factType }
|
|
23021
23276
|
};
|
|
23022
|
-
const
|
|
23023
|
-
await notifyWritten(options, input,
|
|
23024
|
-
return describeWriteOutcome(
|
|
23277
|
+
const outcome2 = await options.write(input);
|
|
23278
|
+
await notifyWritten(options, input, outcome2);
|
|
23279
|
+
return describeWriteOutcome(outcome2);
|
|
23025
23280
|
}
|
|
23026
23281
|
const created = await createVaultMemoryOp(vaultCtx, {
|
|
23027
23282
|
content,
|
|
@@ -23505,8 +23760,8 @@ var sessionCache = /* @__PURE__ */ new Map();
|
|
|
23505
23760
|
function generateRequestId() {
|
|
23506
23761
|
return ++requestIdCounter;
|
|
23507
23762
|
}
|
|
23508
|
-
function parseSSEResponse(
|
|
23509
|
-
const events =
|
|
23763
|
+
function parseSSEResponse(text13) {
|
|
23764
|
+
const events = text13.split(/\n\n+/);
|
|
23510
23765
|
let lastEventData = "";
|
|
23511
23766
|
for (const event of events) {
|
|
23512
23767
|
const dataLines = [];
|
|
@@ -23528,11 +23783,11 @@ function parseSSEResponse(text12) {
|
|
|
23528
23783
|
}
|
|
23529
23784
|
async function parseResponseBody(response) {
|
|
23530
23785
|
const contentType = response.headers.get("Content-Type") || "";
|
|
23531
|
-
const
|
|
23532
|
-
if (contentType.includes("text/event-stream") ||
|
|
23533
|
-
return parseSSEResponse(
|
|
23786
|
+
const text13 = await response.text();
|
|
23787
|
+
if (contentType.includes("text/event-stream") || text13.startsWith("event:") || text13.startsWith("data:")) {
|
|
23788
|
+
return parseSSEResponse(text13);
|
|
23534
23789
|
}
|
|
23535
|
-
return JSON.parse(
|
|
23790
|
+
return JSON.parse(text13);
|
|
23536
23791
|
}
|
|
23537
23792
|
async function initializeMCPSession(accessToken) {
|
|
23538
23793
|
const requestId = generateRequestId();
|
|
@@ -24669,9 +24924,9 @@ New lines of conversation:
|
|
|
24669
24924
|
{new_lines}
|
|
24670
24925
|
|
|
24671
24926
|
New summary:`;
|
|
24672
|
-
function estimateTokens(
|
|
24673
|
-
if (!
|
|
24674
|
-
return Math.ceil(
|
|
24927
|
+
function estimateTokens(text13) {
|
|
24928
|
+
if (!text13) return 0;
|
|
24929
|
+
return Math.ceil(text13.length / 4);
|
|
24675
24930
|
}
|
|
24676
24931
|
var PER_MESSAGE_OVERHEAD_TOKENS = 4;
|
|
24677
24932
|
var MAX_MESSAGES_PER_SUMMARIZATION = 20;
|
|
@@ -24731,14 +24986,14 @@ function splitMessagesAtThreshold(messages, tokenThreshold, minWindowMessages) {
|
|
|
24731
24986
|
}
|
|
24732
24987
|
async function redactSummaryPrompt(prompt, redactor, onPiiRedacted) {
|
|
24733
24988
|
if (!redactor) return prompt;
|
|
24734
|
-
const { text:
|
|
24989
|
+
const { text: text13, matches } = await redactor.redactTextAsync(prompt);
|
|
24735
24990
|
if (matches.length > 0 && onPiiRedacted) {
|
|
24736
24991
|
try {
|
|
24737
24992
|
onPiiRedacted(matches);
|
|
24738
24993
|
} catch {
|
|
24739
24994
|
}
|
|
24740
24995
|
}
|
|
24741
|
-
return
|
|
24996
|
+
return text13;
|
|
24742
24997
|
}
|
|
24743
24998
|
async function progressiveSummarize(options) {
|
|
24744
24999
|
const {
|
|
@@ -25470,7 +25725,7 @@ function useChatStorage(options) {
|
|
|
25470
25725
|
[piiRedaction, currentConversationId]
|
|
25471
25726
|
);
|
|
25472
25727
|
const maskForEmbedding = (0, import_react5.useCallback)(
|
|
25473
|
-
(
|
|
25728
|
+
(text13) => isPiiRedactor(resolvedPiiRedaction) ? resolvedPiiRedaction.maskText(text13) : text13,
|
|
25474
25729
|
[resolvedPiiRedaction]
|
|
25475
25730
|
);
|
|
25476
25731
|
const maskEmbeddingInput = isPiiRedactor(resolvedPiiRedaction) ? maskForEmbedding : void 0;
|
|
@@ -26114,12 +26369,12 @@ function useChatStorage(options) {
|
|
|
26114
26369
|
return {
|
|
26115
26370
|
callRedactor: redactor,
|
|
26116
26371
|
callPiiRedaction: forInnerSend,
|
|
26117
|
-
maskForCall: (
|
|
26372
|
+
maskForCall: (text13) => redactor ? redactor.maskText(text13) : text13
|
|
26118
26373
|
};
|
|
26119
26374
|
};
|
|
26120
26375
|
pendingResumeRef.current = null;
|
|
26121
26376
|
const effectiveAssistantUniqueId = assistantUniqueId ?? (resumable ? `msg_${(0, import_uuid7.v7)()}` : void 0);
|
|
26122
|
-
const embedToolText = (
|
|
26377
|
+
const embedToolText = (text13, mask, masked, token) => {
|
|
26123
26378
|
const opts = {
|
|
26124
26379
|
getToken: token,
|
|
26125
26380
|
baseUrl,
|
|
@@ -26127,10 +26382,10 @@ function useChatStorage(options) {
|
|
|
26127
26382
|
maskInput: mask,
|
|
26128
26383
|
cache: embeddingCache ? maskScopedEmbeddingCache(embeddingCache, masked) : void 0
|
|
26129
26384
|
};
|
|
26130
|
-
return shouldChunkMessage(
|
|
26131
|
-
chunkText(
|
|
26385
|
+
return shouldChunkMessage(text13, DEFAULT_CHUNK_SIZE) ? generateEmbeddings(
|
|
26386
|
+
chunkText(text13).map((c) => c.text),
|
|
26132
26387
|
opts
|
|
26133
|
-
) : generateEmbedding(
|
|
26388
|
+
) : generateEmbedding(text13, opts);
|
|
26134
26389
|
};
|
|
26135
26390
|
if (walletAddress && signMessage && !hasEncryptionKey(walletAddress)) {
|
|
26136
26391
|
try {
|
|
@@ -27256,6 +27511,7 @@ function useChatStorage(options) {
|
|
|
27256
27511
|
extractAndRetain,
|
|
27257
27512
|
extractEntitiesForMemories,
|
|
27258
27513
|
extractFacts,
|
|
27514
|
+
extractReservationReceipts,
|
|
27259
27515
|
formatFileProcessingNotes,
|
|
27260
27516
|
generateConversationId,
|
|
27261
27517
|
generateEmbedding,
|