@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/react/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({
|
|
@@ -1588,6 +1588,7 @@ __export(index_exports, {
|
|
|
1588
1588
|
extractFacts: () => extractFacts,
|
|
1589
1589
|
extractFileIds: () => extractFileIds,
|
|
1590
1590
|
extractMCPImageUrls: () => extractMCPImageUrls,
|
|
1591
|
+
extractReservationReceipts: () => extractReservationReceipts,
|
|
1591
1592
|
fileExists: () => fileExists,
|
|
1592
1593
|
findById: () => findById,
|
|
1593
1594
|
findMatchingTools: () => findMatchingTools,
|
|
@@ -2525,8 +2526,8 @@ var createClient = (config = {}) => {
|
|
|
2525
2526
|
data = await response[parseAs]();
|
|
2526
2527
|
break;
|
|
2527
2528
|
case "json": {
|
|
2528
|
-
const
|
|
2529
|
-
data =
|
|
2529
|
+
const text13 = await response.text();
|
|
2530
|
+
data = text13 ? JSON.parse(text13) : {};
|
|
2530
2531
|
break;
|
|
2531
2532
|
}
|
|
2532
2533
|
case "stream":
|
|
@@ -5810,8 +5811,8 @@ var ATTACHED_FILES_OPEN_TAG = "<attached_files>";
|
|
|
5810
5811
|
var ATTACHED_FILES_CLOSE_TAG = "</attached_files>";
|
|
5811
5812
|
var ATTACHED_FILES_PREFIX = `${ATTACHED_FILES_OPEN_TAG}
|
|
5812
5813
|
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.`;
|
|
5813
|
-
function isAttachedFilesText(
|
|
5814
|
-
return typeof
|
|
5814
|
+
function isAttachedFilesText(text13) {
|
|
5815
|
+
return typeof text13 === "string" && text13.startsWith(ATTACHED_FILES_PREFIX) && text13.endsWith(ATTACHED_FILES_CLOSE_TAG);
|
|
5815
5816
|
}
|
|
5816
5817
|
function buildAttachedFilesText(fileContext) {
|
|
5817
5818
|
return `${ATTACHED_FILES_PREFIX}
|
|
@@ -5996,7 +5997,7 @@ function extractUserMessageFromMessages(messages) {
|
|
|
5996
5997
|
}
|
|
5997
5998
|
|
|
5998
5999
|
// src/lib/db/chat/operations.ts
|
|
5999
|
-
function messageToStoredRaw(message,
|
|
6000
|
+
function messageToStoredRaw(message, projection2) {
|
|
6000
6001
|
const convId = String(message._getRaw("conversation_id"));
|
|
6001
6002
|
const parseJsonField = (rawValue) => {
|
|
6002
6003
|
if (!rawValue) return void 0;
|
|
@@ -6010,7 +6011,7 @@ function messageToStoredRaw(message, projection) {
|
|
|
6010
6011
|
}
|
|
6011
6012
|
return rawValue;
|
|
6012
6013
|
};
|
|
6013
|
-
const skipEmbeddings =
|
|
6014
|
+
const skipEmbeddings = projection2?.skipEmbeddings === true;
|
|
6014
6015
|
const sourcesRaw = message._getRaw("sources");
|
|
6015
6016
|
const vectorRaw = skipEmbeddings ? null : message._getRaw("vector");
|
|
6016
6017
|
const chunksRaw = skipEmbeddings ? null : message._getRaw("chunks");
|
|
@@ -6044,8 +6045,8 @@ function messageToStoredRaw(message, projection) {
|
|
|
6044
6045
|
origin: message.origin
|
|
6045
6046
|
};
|
|
6046
6047
|
}
|
|
6047
|
-
async function messageToStored(message, walletAddress, signMessage, embeddedWalletSigner,
|
|
6048
|
-
const baseMessage = messageToStoredRaw(message,
|
|
6048
|
+
async function messageToStored(message, walletAddress, signMessage, embeddedWalletSigner, projection2) {
|
|
6049
|
+
const baseMessage = messageToStoredRaw(message, projection2);
|
|
6049
6050
|
if (walletAddress) {
|
|
6050
6051
|
return await decryptMessageFields(
|
|
6051
6052
|
baseMessage,
|
|
@@ -6059,7 +6060,7 @@ async function messageToStored(message, walletAddress, signMessage, embeddedWall
|
|
|
6059
6060
|
function rawDate(value) {
|
|
6060
6061
|
return new Date(typeof value === "number" ? value : 0);
|
|
6061
6062
|
}
|
|
6062
|
-
function messageRawToStoredRaw(raw,
|
|
6063
|
+
function messageRawToStoredRaw(raw, projection2) {
|
|
6063
6064
|
const parseJsonField = (rawValue) => {
|
|
6064
6065
|
if (!rawValue) return void 0;
|
|
6065
6066
|
if (typeof rawValue === "string") {
|
|
@@ -6072,7 +6073,7 @@ function messageRawToStoredRaw(raw, projection) {
|
|
|
6072
6073
|
}
|
|
6073
6074
|
return rawValue;
|
|
6074
6075
|
};
|
|
6075
|
-
const skipEmbeddings =
|
|
6076
|
+
const skipEmbeddings = projection2?.skipEmbeddings === true;
|
|
6076
6077
|
const vectorRaw = skipEmbeddings ? null : raw.vector;
|
|
6077
6078
|
const chunksRaw = skipEmbeddings ? null : raw.chunks;
|
|
6078
6079
|
return {
|
|
@@ -6103,8 +6104,8 @@ function messageRawToStoredRaw(raw, projection) {
|
|
|
6103
6104
|
origin: raw.origin
|
|
6104
6105
|
};
|
|
6105
6106
|
}
|
|
6106
|
-
async function messageRawToStored(raw, walletAddress, signMessage, embeddedWalletSigner,
|
|
6107
|
-
const baseMessage = messageRawToStoredRaw(raw,
|
|
6107
|
+
async function messageRawToStored(raw, walletAddress, signMessage, embeddedWalletSigner, projection2) {
|
|
6108
|
+
const baseMessage = messageRawToStoredRaw(raw, projection2);
|
|
6108
6109
|
if (walletAddress) {
|
|
6109
6110
|
return await decryptMessageFields(
|
|
6110
6111
|
baseMessage,
|
|
@@ -6990,49 +6991,49 @@ init_logger();
|
|
|
6990
6991
|
var DEFAULT_CHUNK_SIZE = 400;
|
|
6991
6992
|
var DEFAULT_CHUNK_OVERLAP = 50;
|
|
6992
6993
|
var DEFAULT_MIN_CHUNK_SIZE = 50;
|
|
6993
|
-
function splitIntoSentences(
|
|
6994
|
+
function splitIntoSentences(text13) {
|
|
6994
6995
|
const sentenceRegex = /[.!?]+[\s"')}\]]*(?=\s|$)/g;
|
|
6995
6996
|
const sentences = [];
|
|
6996
6997
|
let lastIndex = 0;
|
|
6997
6998
|
let match;
|
|
6998
|
-
while ((match = sentenceRegex.exec(
|
|
6999
|
+
while ((match = sentenceRegex.exec(text13)) !== null) {
|
|
6999
7000
|
const endIndex = match.index + match[0].length;
|
|
7000
|
-
const sentence =
|
|
7001
|
+
const sentence = text13.slice(lastIndex, endIndex).trim();
|
|
7001
7002
|
if (sentence) {
|
|
7002
7003
|
sentences.push(sentence);
|
|
7003
7004
|
}
|
|
7004
7005
|
lastIndex = endIndex;
|
|
7005
7006
|
}
|
|
7006
|
-
const remaining =
|
|
7007
|
+
const remaining = text13.slice(lastIndex).trim();
|
|
7007
7008
|
if (remaining) {
|
|
7008
7009
|
sentences.push(remaining);
|
|
7009
7010
|
}
|
|
7010
7011
|
return sentences;
|
|
7011
7012
|
}
|
|
7012
|
-
function chunkText(
|
|
7013
|
+
function chunkText(text13, options) {
|
|
7013
7014
|
const {
|
|
7014
7015
|
chunkSize = DEFAULT_CHUNK_SIZE,
|
|
7015
7016
|
chunkOverlap: requestedOverlap = DEFAULT_CHUNK_OVERLAP,
|
|
7016
7017
|
minChunkSize = DEFAULT_MIN_CHUNK_SIZE
|
|
7017
7018
|
} = options ?? {};
|
|
7018
7019
|
const chunkOverlap = Math.min(requestedOverlap, chunkSize - 1);
|
|
7019
|
-
if (
|
|
7020
|
+
if (text13.length <= chunkSize) {
|
|
7020
7021
|
return [
|
|
7021
7022
|
{
|
|
7022
|
-
text:
|
|
7023
|
+
text: text13.trim(),
|
|
7023
7024
|
startOffset: 0,
|
|
7024
|
-
endOffset:
|
|
7025
|
+
endOffset: text13.length
|
|
7025
7026
|
}
|
|
7026
7027
|
];
|
|
7027
7028
|
}
|
|
7028
|
-
const sentences = splitIntoSentences(
|
|
7029
|
+
const sentences = splitIntoSentences(text13);
|
|
7029
7030
|
const chunks2 = [];
|
|
7030
7031
|
let currentChunkSentences = [];
|
|
7031
7032
|
let currentChunkStart = 0;
|
|
7032
7033
|
let currentOffset = 0;
|
|
7033
7034
|
for (let i = 0; i < sentences.length; i++) {
|
|
7034
7035
|
const sentence = sentences[i];
|
|
7035
|
-
let sentenceStart =
|
|
7036
|
+
let sentenceStart = text13.indexOf(sentence, currentOffset);
|
|
7036
7037
|
if (sentenceStart === -1) {
|
|
7037
7038
|
sentenceStart = currentOffset;
|
|
7038
7039
|
}
|
|
@@ -7079,7 +7080,7 @@ function chunkText(text12, options) {
|
|
|
7079
7080
|
if (overlapSentences.length > 0) {
|
|
7080
7081
|
currentChunkSentences = [...overlapSentences, sentence];
|
|
7081
7082
|
const overlapText = overlapSentences[0];
|
|
7082
|
-
const overlapStart =
|
|
7083
|
+
const overlapStart = text13.lastIndexOf(overlapText, currentOffset);
|
|
7083
7084
|
currentChunkStart = overlapStart === -1 ? sentenceStart : overlapStart;
|
|
7084
7085
|
} else {
|
|
7085
7086
|
currentChunkSentences = [sentence];
|
|
@@ -7099,18 +7100,18 @@ function chunkText(text12, options) {
|
|
|
7099
7100
|
chunks2.push({
|
|
7100
7101
|
text: chunkText2,
|
|
7101
7102
|
startOffset: currentChunkStart,
|
|
7102
|
-
endOffset:
|
|
7103
|
+
endOffset: text13.length
|
|
7103
7104
|
});
|
|
7104
7105
|
}
|
|
7105
7106
|
}
|
|
7106
7107
|
if (chunks2.length === 0) {
|
|
7107
|
-
const trimmedText =
|
|
7108
|
+
const trimmedText = text13.trim();
|
|
7108
7109
|
if (trimmedText.length > 0) {
|
|
7109
7110
|
return [
|
|
7110
7111
|
{
|
|
7111
7112
|
text: trimmedText,
|
|
7112
7113
|
startOffset: 0,
|
|
7113
|
-
endOffset:
|
|
7114
|
+
endOffset: text13.length
|
|
7114
7115
|
}
|
|
7115
7116
|
];
|
|
7116
7117
|
}
|
|
@@ -7211,16 +7212,16 @@ function embeddingErrorFrom(response) {
|
|
|
7211
7212
|
const message = typeof response.error === "object" && response.error && "error" in response.error ? response.error.error : "API embedding failed";
|
|
7212
7213
|
return new EmbeddingHttpError(message, response.response?.status);
|
|
7213
7214
|
}
|
|
7214
|
-
async function generateEmbedding(
|
|
7215
|
+
async function generateEmbedding(text13, options) {
|
|
7215
7216
|
const total = options.totalTimeoutMs;
|
|
7216
|
-
if (total === void 0) return embedOne(
|
|
7217
|
-
return withDeadline((signal) => embedOne(
|
|
7217
|
+
if (total === void 0) return embedOne(text13, options, void 0);
|
|
7218
|
+
return withDeadline((signal) => embedOne(text13, options, signal), total, "embedding");
|
|
7218
7219
|
}
|
|
7219
|
-
async function embedOne(
|
|
7220
|
+
async function embedOne(text13, options, outer) {
|
|
7220
7221
|
const { baseUrl = BASE_URL, model, cache } = options;
|
|
7221
7222
|
const timeoutMs = options.timeoutMs ?? DEFAULT_EMBEDDING_REQUEST_TIMEOUT_MS;
|
|
7222
7223
|
if (cache) {
|
|
7223
|
-
const cached = cache.get(
|
|
7224
|
+
const cached = cache.get(text13);
|
|
7224
7225
|
if (cached) return Array.from(cached);
|
|
7225
7226
|
}
|
|
7226
7227
|
const headers = await resolveAuthHeaders(options, outer);
|
|
@@ -7229,7 +7230,7 @@ async function embedOne(text12, options, outer) {
|
|
|
7229
7230
|
(signal) => postApiV1Embeddings({
|
|
7230
7231
|
baseUrl,
|
|
7231
7232
|
body: {
|
|
7232
|
-
input: options.maskInput ? options.maskInput(
|
|
7233
|
+
input: options.maskInput ? options.maskInput(text13) : text13,
|
|
7233
7234
|
model: model ?? DEFAULT_API_EMBEDDING_MODEL
|
|
7234
7235
|
},
|
|
7235
7236
|
headers,
|
|
@@ -7256,7 +7257,7 @@ async function embedOne(text12, options, outer) {
|
|
|
7256
7257
|
}
|
|
7257
7258
|
const f32Embedding = Float32Array.from(embedding);
|
|
7258
7259
|
if (cache) {
|
|
7259
|
-
cache.set(
|
|
7260
|
+
cache.set(text13, f32Embedding);
|
|
7260
7261
|
}
|
|
7261
7262
|
return Array.from(f32Embedding);
|
|
7262
7263
|
}
|
|
@@ -7590,10 +7591,10 @@ var cryptoPriceCentroid = [0.025576787463333337, 0.0017598020599999997, -0.01339
|
|
|
7590
7591
|
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];
|
|
7591
7592
|
|
|
7592
7593
|
// src/lib/chat/preProcessor.ts
|
|
7593
|
-
function wrapAsUserText(prefix,
|
|
7594
|
-
if (!
|
|
7594
|
+
function wrapAsUserText(prefix, text13) {
|
|
7595
|
+
if (!text13 || !text13.trim()) return [];
|
|
7595
7596
|
return [{ role: "user", content: [{ type: "text", text: `${prefix}
|
|
7596
|
-
${
|
|
7597
|
+
${text13}` }] }];
|
|
7597
7598
|
}
|
|
7598
7599
|
|
|
7599
7600
|
// src/lib/chat/cryptoPriceClassifier.ts
|
|
@@ -7632,6 +7633,80 @@ function createCryptoPricePreProcessor(options = {}) {
|
|
|
7632
7633
|
};
|
|
7633
7634
|
}
|
|
7634
7635
|
|
|
7636
|
+
// src/lib/chat/reservationReceipts.ts
|
|
7637
|
+
var ACTIONS = [
|
|
7638
|
+
{
|
|
7639
|
+
kind: "booking",
|
|
7640
|
+
tool: "anuma_book_restaurant",
|
|
7641
|
+
alreadyDone: /^Tool "[^"]*" failed: ALREADY_BOOKED:/
|
|
7642
|
+
},
|
|
7643
|
+
{
|
|
7644
|
+
kind: "cancel",
|
|
7645
|
+
tool: "anuma_cancel_reservation",
|
|
7646
|
+
alreadyDone: /^Tool "[^"]*" failed: ALREADY_CANCELLED:/
|
|
7647
|
+
}
|
|
7648
|
+
];
|
|
7649
|
+
var NOT_AN_ATTEMPT = /^Tool "[^"]*" (has already been called|was already called)/;
|
|
7650
|
+
var BOOKING_OUTCOME_UNKNOWN = /^Tool "[^"]*" failed: BOOKING_OUTCOME_UNKNOWN:/;
|
|
7651
|
+
var CANCEL_OUTCOME_UNKNOWN = "CANCEL_OUTCOME_UNKNOWN";
|
|
7652
|
+
function extractReservationReceipts(toolCallEvents) {
|
|
7653
|
+
const latest = /* @__PURE__ */ new Map();
|
|
7654
|
+
for (const event of toolCallEvents ?? []) {
|
|
7655
|
+
const action = ACTIONS.find((a) => event.name?.endsWith(a.tool));
|
|
7656
|
+
const output = event.output ?? "";
|
|
7657
|
+
if (!action || !output || NOT_AN_ATTEMPT.test(output)) continue;
|
|
7658
|
+
const kept = latest.get(action.kind)?.status;
|
|
7659
|
+
if (kept === "made") continue;
|
|
7660
|
+
const receipt = toReceipt(action, event.arguments ?? "", output);
|
|
7661
|
+
if (kept === "unknown" && receipt.status !== "made") continue;
|
|
7662
|
+
latest.set(action.kind, receipt);
|
|
7663
|
+
}
|
|
7664
|
+
return [...latest.values()];
|
|
7665
|
+
}
|
|
7666
|
+
function toReceipt(action, argumentsJson, output) {
|
|
7667
|
+
const args = parseObject(argumentsJson);
|
|
7668
|
+
const result = parseObject(output);
|
|
7669
|
+
return {
|
|
7670
|
+
kind: action.kind,
|
|
7671
|
+
venueName: text(args.venue_name) ?? "",
|
|
7672
|
+
day: text(args.day) ?? "",
|
|
7673
|
+
time: text(args.time) ?? "",
|
|
7674
|
+
partySize: count(args.party_size),
|
|
7675
|
+
reservationId: text(result.reservation_id) ?? text(args.reservation_id),
|
|
7676
|
+
resyUrl: text(result.reservations_url),
|
|
7677
|
+
feeSummary: text(result.fee_summary),
|
|
7678
|
+
...outcome(action, output, result)
|
|
7679
|
+
};
|
|
7680
|
+
}
|
|
7681
|
+
function outcome(action, output, result) {
|
|
7682
|
+
if (action.alreadyDone.test(output)) return { status: "already_done" };
|
|
7683
|
+
const reason = text(result.error);
|
|
7684
|
+
if (action.kind === "booking") {
|
|
7685
|
+
if (BOOKING_OUTCOME_UNKNOWN.test(output)) return { status: "unknown" };
|
|
7686
|
+
const held = result.success === true || text(result.reservation_id) !== void 0;
|
|
7687
|
+
return held ? { status: "made" } : { status: "not_made", reason };
|
|
7688
|
+
}
|
|
7689
|
+
if (result.error_code === CANCEL_OUTCOME_UNKNOWN) return { status: "unknown", reason };
|
|
7690
|
+
const cancelled = result.success === true && !result.error && !result.error_code;
|
|
7691
|
+
return cancelled ? { status: "made" } : { status: "not_made", reason };
|
|
7692
|
+
}
|
|
7693
|
+
function parseObject(json4) {
|
|
7694
|
+
try {
|
|
7695
|
+
const parsed = JSON.parse(json4);
|
|
7696
|
+
return parsed && typeof parsed === "object" ? parsed : {};
|
|
7697
|
+
} catch {
|
|
7698
|
+
return {};
|
|
7699
|
+
}
|
|
7700
|
+
}
|
|
7701
|
+
function text(value) {
|
|
7702
|
+
if (typeof value === "number") return String(value);
|
|
7703
|
+
return typeof value === "string" && value ? value : void 0;
|
|
7704
|
+
}
|
|
7705
|
+
function count(value) {
|
|
7706
|
+
const n = typeof value === "string" && value.trim() ? Number(value) : value;
|
|
7707
|
+
return typeof n === "number" && Number.isFinite(n) ? n : void 0;
|
|
7708
|
+
}
|
|
7709
|
+
|
|
7635
7710
|
// src/lib/chat/resumeStream.ts
|
|
7636
7711
|
init_clientConfig();
|
|
7637
7712
|
|
|
@@ -7640,6 +7715,46 @@ init_clientConfig();
|
|
|
7640
7715
|
|
|
7641
7716
|
// src/tools/confirmConstants.ts
|
|
7642
7717
|
var CONFIRM_TOOL_NAME = "prompt_user_confirm";
|
|
7718
|
+
var BOOK_RESTAURANT = {
|
|
7719
|
+
tool: "AnumaPaymentsMCP-anuma_book_restaurant",
|
|
7720
|
+
status: "confirmed_not_booked",
|
|
7721
|
+
fields: ["venue_id", "config_id", "party_size", "day", "venue_name", "time"]
|
|
7722
|
+
};
|
|
7723
|
+
var CANCEL_RESERVATION = {
|
|
7724
|
+
tool: "AnumaPaymentsMCP-anuma_cancel_reservation",
|
|
7725
|
+
status: "confirmed_not_cancelled",
|
|
7726
|
+
fields: [
|
|
7727
|
+
"reservation_id",
|
|
7728
|
+
"venue_name",
|
|
7729
|
+
"day",
|
|
7730
|
+
"time",
|
|
7731
|
+
"party_size",
|
|
7732
|
+
"fee_applies",
|
|
7733
|
+
"fee_amount"
|
|
7734
|
+
]
|
|
7735
|
+
};
|
|
7736
|
+
var CONFIRM_REQUIRED_FIELDS = /* @__PURE__ */ new Map([
|
|
7737
|
+
["book_restaurant", BOOK_RESTAURANT],
|
|
7738
|
+
["anuma_book_restaurant", BOOK_RESTAURANT],
|
|
7739
|
+
["anumapaymentsmcp-anuma_book_restaurant", BOOK_RESTAURANT],
|
|
7740
|
+
["cancel_reservation", CANCEL_RESERVATION],
|
|
7741
|
+
["anuma_cancel_reservation", CANCEL_RESERVATION],
|
|
7742
|
+
["anumapaymentsmcp-anuma_cancel_reservation", CANCEL_RESERVATION]
|
|
7743
|
+
]);
|
|
7744
|
+
function confirmRequirement(action) {
|
|
7745
|
+
if (typeof action !== "string") return void 0;
|
|
7746
|
+
return CONFIRM_REQUIRED_FIELDS.get(action.trim().toLowerCase());
|
|
7747
|
+
}
|
|
7748
|
+
function missingConfirmFields(action, parameters) {
|
|
7749
|
+
const requirement = confirmRequirement(action);
|
|
7750
|
+
if (!requirement) return [];
|
|
7751
|
+
const shown = /* @__PURE__ */ new Set();
|
|
7752
|
+
for (const parameter of Array.isArray(parameters) ? parameters : []) {
|
|
7753
|
+
const { name, value } = parameter ?? {};
|
|
7754
|
+
if (typeof name === "string" && typeof value === "string" && value.trim()) shown.add(name);
|
|
7755
|
+
}
|
|
7756
|
+
return requirement.fields.filter((field10) => !shown.has(field10));
|
|
7757
|
+
}
|
|
7643
7758
|
|
|
7644
7759
|
// src/lib/chat/toolLoop.ts
|
|
7645
7760
|
init_redactor();
|
|
@@ -10466,13 +10581,13 @@ var StreamSmoother = class {
|
|
|
10466
10581
|
/**
|
|
10467
10582
|
* Add text to the buffer. If smoothing is disabled, passes through immediately.
|
|
10468
10583
|
*/
|
|
10469
|
-
push(
|
|
10470
|
-
if (this.destroyed || !
|
|
10584
|
+
push(text13) {
|
|
10585
|
+
if (this.destroyed || !text13) return;
|
|
10471
10586
|
if (!this.enabled) {
|
|
10472
|
-
this.callback(
|
|
10587
|
+
this.callback(text13);
|
|
10473
10588
|
return;
|
|
10474
10589
|
}
|
|
10475
|
-
this.buffer +=
|
|
10590
|
+
this.buffer += text13;
|
|
10476
10591
|
this.ensureTimer();
|
|
10477
10592
|
}
|
|
10478
10593
|
/**
|
|
@@ -10483,9 +10598,9 @@ var StreamSmoother = class {
|
|
|
10483
10598
|
if (this.destroyed) return;
|
|
10484
10599
|
this.stopTimer();
|
|
10485
10600
|
if (this.buffer.length > 0) {
|
|
10486
|
-
const
|
|
10601
|
+
const text13 = this.buffer;
|
|
10487
10602
|
this.buffer = "";
|
|
10488
|
-
this.callback(
|
|
10603
|
+
this.callback(text13);
|
|
10489
10604
|
}
|
|
10490
10605
|
this.resolveDrain();
|
|
10491
10606
|
}
|
|
@@ -10552,9 +10667,9 @@ var StreamSmoother = class {
|
|
|
10552
10667
|
const currentSpeed = this.getCurrentSpeed(elapsed);
|
|
10553
10668
|
const charsThisTick = Math.max(1, Math.round(currentSpeed * (TICK_INTERVAL / 1e3)));
|
|
10554
10669
|
const toRelease = Math.min(charsThisTick, this.buffer.length);
|
|
10555
|
-
const
|
|
10670
|
+
const text13 = this.buffer.slice(0, toRelease);
|
|
10556
10671
|
this.buffer = this.buffer.slice(toRelease);
|
|
10557
|
-
this.callback(
|
|
10672
|
+
this.callback(text13);
|
|
10558
10673
|
if (this.buffer.length === 0) {
|
|
10559
10674
|
this.stopTimer();
|
|
10560
10675
|
this.resolveDrain();
|
|
@@ -10758,6 +10873,7 @@ function getToolName(tool) {
|
|
|
10758
10873
|
}
|
|
10759
10874
|
function toolsAfterConfirmation(apiTools, executionResults) {
|
|
10760
10875
|
const members = /* @__PURE__ */ new Set();
|
|
10876
|
+
let keepConfirm = false;
|
|
10761
10877
|
for (const r of executionResults) {
|
|
10762
10878
|
if (r.name !== CONFIRM_TOOL_NAME) continue;
|
|
10763
10879
|
const answer = r.result;
|
|
@@ -10765,11 +10881,12 @@ function toolsAfterConfirmation(apiTools, executionResults) {
|
|
|
10765
10881
|
const setName = CONFIRMED_ACTION_TOOL_SETS.get(answer.action.trim().toLowerCase());
|
|
10766
10882
|
const set = BUILT_IN_TOOL_SETS.find((s) => s.name === setName);
|
|
10767
10883
|
for (const member of set?.members ?? []) members.add(member);
|
|
10884
|
+
if (missingConfirmFields(answer.action, answer.parameters).length > 0) keepConfirm = true;
|
|
10768
10885
|
}
|
|
10769
10886
|
if (!apiTools.some((t) => members.has(getToolName(t) ?? ""))) return void 0;
|
|
10770
10887
|
return apiTools.filter((t) => {
|
|
10771
10888
|
const name = getToolName(t) ?? "";
|
|
10772
|
-
return members.has(name) || name ===
|
|
10889
|
+
return members.has(name) || name === TOOL_SEARCH_TOOL_NAME || keepConfirm && name === CONFIRM_TOOL_NAME;
|
|
10773
10890
|
});
|
|
10774
10891
|
}
|
|
10775
10892
|
var STREAM_RESUMABLE_HEADER = "X-Stream-Resumable";
|
|
@@ -10975,9 +11092,9 @@ async function runToolLoop(options) {
|
|
|
10975
11092
|
messages = await redactBatch(messages);
|
|
10976
11093
|
if (preProcessors?.length) {
|
|
10977
11094
|
try {
|
|
10978
|
-
const
|
|
10979
|
-
if (
|
|
10980
|
-
const embedding = await generateEmbedding(
|
|
11095
|
+
const text13 = extractLastUserText(messages);
|
|
11096
|
+
if (text13.length > 0) {
|
|
11097
|
+
const embedding = await generateEmbedding(text13, {
|
|
10981
11098
|
apiKey: headers?.["X-API-Key"],
|
|
10982
11099
|
getToken: token ? () => Promise.resolve(token) : void 0,
|
|
10983
11100
|
baseUrl
|
|
@@ -10985,7 +11102,7 @@ async function runToolLoop(options) {
|
|
|
10985
11102
|
const results = await Promise.all(
|
|
10986
11103
|
preProcessors.map(async (p) => {
|
|
10987
11104
|
try {
|
|
10988
|
-
return await p({ prompt:
|
|
11105
|
+
return await p({ prompt: text13, embedding, signal: combinedSignal });
|
|
10989
11106
|
} catch (err) {
|
|
10990
11107
|
console.warn("[runToolLoop] pre-processor failed:", err);
|
|
10991
11108
|
return void 0;
|
|
@@ -11144,11 +11261,11 @@ async function runToolLoop(options) {
|
|
|
11144
11261
|
}
|
|
11145
11262
|
});
|
|
11146
11263
|
accumulator = createStreamAccumulator(model || void 0);
|
|
11147
|
-
contentSmoother = new StreamSmoother((
|
|
11148
|
-
if (emitData) emitData(
|
|
11264
|
+
contentSmoother = new StreamSmoother((text13) => {
|
|
11265
|
+
if (emitData) emitData(text13);
|
|
11149
11266
|
}, smoothing);
|
|
11150
|
-
thinkingSmoother = new StreamSmoother((
|
|
11151
|
-
if (emitThinking) emitThinking(
|
|
11267
|
+
thinkingSmoother = new StreamSmoother((text13) => {
|
|
11268
|
+
if (emitThinking) emitThinking(text13);
|
|
11152
11269
|
}, smoothing);
|
|
11153
11270
|
let chunksEmittedDownstream = false;
|
|
11154
11271
|
try {
|
|
@@ -11653,11 +11770,11 @@ Executing tool: ${toolInfo}
|
|
|
11653
11770
|
}
|
|
11654
11771
|
});
|
|
11655
11772
|
currentAccumulator = createStreamAccumulator(model || void 0);
|
|
11656
|
-
contContentSmoother = new StreamSmoother((
|
|
11657
|
-
if (emitData) emitData(
|
|
11773
|
+
contContentSmoother = new StreamSmoother((text13) => {
|
|
11774
|
+
if (emitData) emitData(text13);
|
|
11658
11775
|
}, smoothing);
|
|
11659
|
-
contThinkingSmoother = new StreamSmoother((
|
|
11660
|
-
if (emitThinking) emitThinking(
|
|
11776
|
+
contThinkingSmoother = new StreamSmoother((text13) => {
|
|
11777
|
+
if (emitThinking) emitThinking(text13);
|
|
11661
11778
|
}, smoothing);
|
|
11662
11779
|
let chunksEmittedDownstream = false;
|
|
11663
11780
|
try {
|
|
@@ -11884,11 +12001,11 @@ async function resumeStream(options) {
|
|
|
11884
12001
|
} = options;
|
|
11885
12002
|
const strategy = getStrategy(handle.apiType);
|
|
11886
12003
|
const accumulator = createStreamAccumulator(handle.model || void 0);
|
|
11887
|
-
const contentSmoother = new StreamSmoother((
|
|
11888
|
-
if (onData) onData(
|
|
12004
|
+
const contentSmoother = new StreamSmoother((text13) => {
|
|
12005
|
+
if (onData) onData(text13);
|
|
11889
12006
|
}, smoothing);
|
|
11890
|
-
const thinkingSmoother = new StreamSmoother((
|
|
11891
|
-
if (onThinking) onThinking(
|
|
12007
|
+
const thinkingSmoother = new StreamSmoother((text13) => {
|
|
12008
|
+
if (onThinking) onThinking(text13);
|
|
11892
12009
|
}, smoothing);
|
|
11893
12010
|
const idleController = new AbortController();
|
|
11894
12011
|
let watchdog;
|
|
@@ -15791,22 +15908,35 @@ async function vaultMemoryRawToStored(raw, walletAddress, signMessage, embeddedW
|
|
|
15791
15908
|
return stored2;
|
|
15792
15909
|
}
|
|
15793
15910
|
async function getAllVaultMemoriesOp(ctx, options) {
|
|
15794
|
-
const
|
|
15911
|
+
const results = await ctx.vaultMemoryCollection.query(...vaultListConditions(ctx, options), ...vaultListOrder(options)).unsafeFetchRaw();
|
|
15912
|
+
return mapInBatches(
|
|
15913
|
+
results,
|
|
15914
|
+
(raw) => vaultMemoryRawToStored(raw, ctx.walletAddress, ctx.signMessage, ctx.embeddedWalletSigner)
|
|
15915
|
+
);
|
|
15916
|
+
}
|
|
15917
|
+
function vaultListConditions(ctx, options) {
|
|
15918
|
+
return [
|
|
15795
15919
|
...baseVaultConditions(ctx, options),
|
|
15796
15920
|
...options?.scopes?.length ? [import_watermelondb23.Q.where("scope", import_watermelondb23.Q.oneOf(options.scopes))] : [],
|
|
15797
15921
|
...visibilityConditions(options?.visibility),
|
|
15798
15922
|
...levelConditions(options?.levels),
|
|
15799
15923
|
...options?.kinds?.length ? [import_watermelondb23.Q.where("kind", import_watermelondb23.Q.oneOf(options.kinds))] : [],
|
|
15800
15924
|
...options?.folderId !== void 0 ? [import_watermelondb23.Q.where("folder_id", options.folderId)] : [],
|
|
15801
|
-
...options?.factTypes?.length ? [import_watermelondb23.Q.where("fact_type", import_watermelondb23.Q.oneOf(options.factTypes))] : []
|
|
15925
|
+
...options?.factTypes?.length ? [import_watermelondb23.Q.where("fact_type", import_watermelondb23.Q.oneOf(options.factTypes))] : []
|
|
15926
|
+
];
|
|
15927
|
+
}
|
|
15928
|
+
function vaultListOrder(options) {
|
|
15929
|
+
return [
|
|
15802
15930
|
import_watermelondb23.Q.sortBy(options?.since ? "updated_at" : "created_at", import_watermelondb23.Q.desc),
|
|
15803
15931
|
...options?.limit !== null && options?.limit !== void 0 && options.limit > 0 ? [import_watermelondb23.Q.take(options.limit)] : []
|
|
15804
15932
|
];
|
|
15805
|
-
|
|
15806
|
-
|
|
15807
|
-
|
|
15808
|
-
|
|
15809
|
-
|
|
15933
|
+
}
|
|
15934
|
+
async function getVaultMemoryProjectionsOp(ctx, options) {
|
|
15935
|
+
const results = await ctx.vaultMemoryCollection.query(...vaultListConditions(ctx, options), ...vaultListOrder(options)).unsafeFetchRaw();
|
|
15936
|
+
return results.map((raw) => ({
|
|
15937
|
+
...vaultMemoryRawToRankable(raw),
|
|
15938
|
+
topicsUserManaged: raw.topics_user_managed === true || raw.topics_user_managed === 1
|
|
15939
|
+
}));
|
|
15810
15940
|
}
|
|
15811
15941
|
function vaultMemoryRawToRankable(raw) {
|
|
15812
15942
|
return {
|
|
@@ -18008,7 +18138,7 @@ Which item numbers should be flagged?`,
|
|
|
18008
18138
|
if (parsed === null) return empty;
|
|
18009
18139
|
return { flagged: parseFlagged(parsed, scope.length) };
|
|
18010
18140
|
}
|
|
18011
|
-
function parseFlagged(parsed,
|
|
18141
|
+
function parseFlagged(parsed, count2) {
|
|
18012
18142
|
const out = /* @__PURE__ */ new Set();
|
|
18013
18143
|
if (typeof parsed !== "object" || parsed === null) return out;
|
|
18014
18144
|
const list = parsed.poisoned;
|
|
@@ -18016,7 +18146,7 @@ function parseFlagged(parsed, count) {
|
|
|
18016
18146
|
for (const raw of list) {
|
|
18017
18147
|
const n = typeof raw === "number" ? raw : typeof raw === "string" ? Number(raw) : NaN;
|
|
18018
18148
|
if (!Number.isInteger(n)) continue;
|
|
18019
|
-
if (n >= 1 && n <=
|
|
18149
|
+
if (n >= 1 && n <= count2) out.add(n - 1);
|
|
18020
18150
|
}
|
|
18021
18151
|
return out;
|
|
18022
18152
|
}
|
|
@@ -18513,8 +18643,8 @@ var STOPWORDS = /* @__PURE__ */ new Set([
|
|
|
18513
18643
|
"user",
|
|
18514
18644
|
"users"
|
|
18515
18645
|
]);
|
|
18516
|
-
function tokenize(
|
|
18517
|
-
const m =
|
|
18646
|
+
function tokenize(text13) {
|
|
18647
|
+
const m = text13.toLowerCase().match(TOKEN_RE);
|
|
18518
18648
|
if (!m) return [];
|
|
18519
18649
|
return m.filter((t) => !STOPWORDS.has(t));
|
|
18520
18650
|
}
|
|
@@ -20041,14 +20171,14 @@ async function retainWithPersistence(content, ctx, options = {}) {
|
|
|
20041
20171
|
);
|
|
20042
20172
|
}
|
|
20043
20173
|
if (options.consolidateOptions) {
|
|
20044
|
-
const
|
|
20045
|
-
if (
|
|
20046
|
-
if ("done" in
|
|
20047
|
-
if ("create" in
|
|
20174
|
+
const outcome2 = await tryConsolidate(trimmed, ctx, options, prepared);
|
|
20175
|
+
if (outcome2) {
|
|
20176
|
+
if ("done" in outcome2) return outcome2.done;
|
|
20177
|
+
if ("create" in outcome2) {
|
|
20048
20178
|
consolidationDecidedCreate = true;
|
|
20049
20179
|
} else {
|
|
20050
|
-
supersedeTargetIds =
|
|
20051
|
-
supersedeContent =
|
|
20180
|
+
supersedeTargetIds = outcome2.supersede;
|
|
20181
|
+
supersedeContent = outcome2.content;
|
|
20052
20182
|
}
|
|
20053
20183
|
}
|
|
20054
20184
|
}
|
|
@@ -20714,12 +20844,12 @@ async function extractAndRetain(messages, retainCtx, options) {
|
|
|
20714
20844
|
if (failedWrites > 0) {
|
|
20715
20845
|
log.warn(`[memory/extract] ${failedWrites} of ${filtered.length} candidates failed to retain`);
|
|
20716
20846
|
}
|
|
20717
|
-
const
|
|
20847
|
+
const outcome2 = exhaustedEmpty ? "empty-after-retry" : filtered.length > 0 ? "extracted" : droppedAfterRedaction ? "dropped-after-redaction" : "no-facts";
|
|
20718
20848
|
return {
|
|
20719
20849
|
candidates: succeededCandidates,
|
|
20720
20850
|
results,
|
|
20721
20851
|
failedCount: failedWrites,
|
|
20722
|
-
outcome,
|
|
20852
|
+
outcome: outcome2,
|
|
20723
20853
|
quarantined: quarantinedInfo,
|
|
20724
20854
|
funnel: {
|
|
20725
20855
|
rawCandidateCount,
|
|
@@ -20951,7 +21081,7 @@ function createAutoExtractor(options) {
|
|
|
20951
21081
|
...options.retainCtx,
|
|
20952
21082
|
embeddingOptions: {
|
|
20953
21083
|
...options.retainCtx.embeddingOptions,
|
|
20954
|
-
maskInput: (
|
|
21084
|
+
maskInput: (text13) => piiRedactor.maskText(text13)
|
|
20955
21085
|
}
|
|
20956
21086
|
} : options.retainCtx;
|
|
20957
21087
|
function processTurn(messages, conversationId) {
|
|
@@ -20984,7 +21114,7 @@ function createAutoExtractor(options) {
|
|
|
20984
21114
|
const t0 = Date.now();
|
|
20985
21115
|
void (async () => {
|
|
20986
21116
|
try {
|
|
20987
|
-
const { candidates, results, failedCount, outcome, failure, funnel, timings, model } = await extractAndRetain(window2, retainCtx, {
|
|
21117
|
+
const { candidates, results, failedCount, outcome: outcome2, failure, funnel, timings, model } = await extractAndRetain(window2, retainCtx, {
|
|
20988
21118
|
extract,
|
|
20989
21119
|
...options.minConfidence !== void 0 && { minConfidence: options.minConfidence },
|
|
20990
21120
|
...options.entityCtx !== void 0 && { entityCtx: options.entityCtx },
|
|
@@ -21001,7 +21131,7 @@ function createAutoExtractor(options) {
|
|
|
21001
21131
|
onQuarantined: (info) => options.onMemoryQuarantined?.({ ...info, conversationId })
|
|
21002
21132
|
}
|
|
21003
21133
|
});
|
|
21004
|
-
if (
|
|
21134
|
+
if (outcome2 !== "empty-after-retry" && failedCount === 0) {
|
|
21005
21135
|
const advancedTo = window2[window2.length - 1].id;
|
|
21006
21136
|
stateFor(conversationId).watermark = advancedTo;
|
|
21007
21137
|
persistCursor(conversationId, messages, advancedTo, contiguous);
|
|
@@ -21020,7 +21150,7 @@ function createAutoExtractor(options) {
|
|
|
21020
21150
|
failedCount,
|
|
21021
21151
|
durationMs: Date.now() - t0,
|
|
21022
21152
|
conversationId,
|
|
21023
|
-
outcome,
|
|
21153
|
+
outcome: outcome2,
|
|
21024
21154
|
funnel,
|
|
21025
21155
|
timings,
|
|
21026
21156
|
model,
|
|
@@ -22697,12 +22827,12 @@ ${JSON.stringify(
|
|
|
22697
22827
|
function parseAnswer(body, base, parseSchema) {
|
|
22698
22828
|
if (typeof body !== "object" || body === null) return base;
|
|
22699
22829
|
const obj = body;
|
|
22700
|
-
const
|
|
22830
|
+
const text13 = extractCompletionContent(obj) ?? "";
|
|
22701
22831
|
const usage = obj.usage;
|
|
22702
22832
|
let structuredOutput;
|
|
22703
|
-
if (parseSchema &&
|
|
22833
|
+
if (parseSchema && text13) {
|
|
22704
22834
|
try {
|
|
22705
|
-
structuredOutput = JSON.parse(extractJsonCandidate(
|
|
22835
|
+
structuredOutput = JSON.parse(extractJsonCandidate(text13));
|
|
22706
22836
|
} catch (err) {
|
|
22707
22837
|
getLogger().warn("[memory/reflect] structured output was not valid JSON", {
|
|
22708
22838
|
err: err instanceof Error ? err.message : String(err)
|
|
@@ -22712,7 +22842,7 @@ function parseAnswer(body, base, parseSchema) {
|
|
|
22712
22842
|
const promptTokens = usage?.prompt_tokens ?? usage?.input_tokens ?? 0;
|
|
22713
22843
|
const completionTokens = usage?.completion_tokens ?? usage?.output_tokens ?? 0;
|
|
22714
22844
|
return {
|
|
22715
|
-
text:
|
|
22845
|
+
text: text13,
|
|
22716
22846
|
...structuredOutput !== void 0 && { structuredOutput },
|
|
22717
22847
|
basedOn: base.basedOn,
|
|
22718
22848
|
usage: {
|
|
@@ -22947,6 +23077,7 @@ function createLocalMemoryStore(options) {
|
|
|
22947
23077
|
};
|
|
22948
23078
|
const vaultCache = options.vaultCache ?? createVaultEmbeddingCache();
|
|
22949
23079
|
const ownedBy = userId !== void 0 ? [import_watermelondb32.Q.where("user_id", userId)] : [];
|
|
23080
|
+
const linksOwnedBy = userId === void 0 ? [] : options.allowUnscopedRows ? [import_watermelondb32.Q.or(import_watermelondb32.Q.where("user_id", userId), import_watermelondb32.Q.where("user_id", null))] : [import_watermelondb32.Q.where("user_id", userId)];
|
|
22950
23081
|
const watchedColumns = [
|
|
22951
23082
|
"content",
|
|
22952
23083
|
"scope",
|
|
@@ -22989,6 +23120,29 @@ function createLocalMemoryStore(options) {
|
|
|
22989
23120
|
},
|
|
22990
23121
|
memoriesByTopics: (names) => getMemoriesByEntityNamesOp(entityCtx, names),
|
|
22991
23122
|
topicsByMemories: (memoryIds) => getEntitiesByMemoryIdsOp(entityCtx, memoryIds),
|
|
23123
|
+
listTopics: async () => {
|
|
23124
|
+
const links = await entityCtx.memoryEntityCollection.query(...linksOwnedBy).fetch();
|
|
23125
|
+
const members = /* @__PURE__ */ new Map();
|
|
23126
|
+
for (const link of links) {
|
|
23127
|
+
const entityId = String(link.entityId);
|
|
23128
|
+
const set = members.get(entityId) ?? /* @__PURE__ */ new Set();
|
|
23129
|
+
set.add(String(link.memoryId));
|
|
23130
|
+
members.set(entityId, set);
|
|
23131
|
+
}
|
|
23132
|
+
const entities = userId === void 0 ? await entityCtx.entityCollection.query().fetch() : members.size ? await entityCtx.entityCollection.query(import_watermelondb32.Q.where("id", import_watermelondb32.Q.oneOf([...members.keys()]))).fetch() : [];
|
|
23133
|
+
const byName = /* @__PURE__ */ new Map();
|
|
23134
|
+
for (const entity of entities) {
|
|
23135
|
+
const count2 = members.get(entity.id)?.size ?? 0;
|
|
23136
|
+
const existing = byName.get(entity.canonicalName);
|
|
23137
|
+
byName.set(entity.canonicalName, {
|
|
23138
|
+
name: entity.canonicalName,
|
|
23139
|
+
kind: existing?.kind ?? entity.kind ?? null,
|
|
23140
|
+
memoryCount: (existing?.memoryCount ?? 0) + count2
|
|
23141
|
+
});
|
|
23142
|
+
}
|
|
23143
|
+
return [...byName.values()].sort((a, b) => a.name.localeCompare(b.name));
|
|
23144
|
+
},
|
|
23145
|
+
listProjections: (listOptions) => getVaultMemoryProjectionsOp(vaultCtx, listOptions),
|
|
22992
23146
|
create: async (input) => {
|
|
22993
23147
|
const created = await createVaultMemoryOp(vaultCtx, input);
|
|
22994
23148
|
if (input.embedding === void 0) embedInBackground(created);
|
|
@@ -23050,7 +23204,6 @@ function createLocalMemoryStore(options) {
|
|
|
23050
23204
|
);
|
|
23051
23205
|
const subscriptions = [memories.subscribe(afterFirst())];
|
|
23052
23206
|
if (subscribeOptions?.topics) {
|
|
23053
|
-
const linksOwnedBy = userId === void 0 ? [] : options.allowUnscopedRows ? [import_watermelondb32.Q.or(import_watermelondb32.Q.where("user_id", userId), import_watermelondb32.Q.where("user_id", null))] : [import_watermelondb32.Q.where("user_id", userId)];
|
|
23054
23207
|
subscriptions.push(
|
|
23055
23208
|
entityCtx.memoryEntityCollection.query(...linksOwnedBy).observe().subscribe(afterFirst())
|
|
23056
23209
|
);
|
|
@@ -23460,6 +23613,31 @@ async function createRemoteMemoryPersistence(options) {
|
|
|
23460
23613
|
throw new Error("Invalid nearby candidate response");
|
|
23461
23614
|
return result;
|
|
23462
23615
|
};
|
|
23616
|
+
const fetchQueryPage = async (queryOptions) => {
|
|
23617
|
+
const { signal, ...query } = queryOptions;
|
|
23618
|
+
if (query.limit !== void 0 && (!Number.isInteger(query.limit) || query.limit < 1 || query.limit > 200))
|
|
23619
|
+
throw new Error("Page limit must be 1\u2013200");
|
|
23620
|
+
for (const [key, max] of queryListLimits) {
|
|
23621
|
+
const values = query[key];
|
|
23622
|
+
if (values && values.length > max)
|
|
23623
|
+
throw new Error(`Query ${key} accepts at most ${max} entries (got ${values.length})`);
|
|
23624
|
+
}
|
|
23625
|
+
const page = await request(
|
|
23626
|
+
"/memories/query",
|
|
23627
|
+
{
|
|
23628
|
+
method: "POST",
|
|
23629
|
+
body: JSON.stringify(
|
|
23630
|
+
Object.fromEntries(
|
|
23631
|
+
queryFields.filter((key) => query[key] !== void 0).map((key) => [key, query[key]])
|
|
23632
|
+
)
|
|
23633
|
+
)
|
|
23634
|
+
},
|
|
23635
|
+
signal
|
|
23636
|
+
);
|
|
23637
|
+
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")
|
|
23638
|
+
throw new Error("Invalid nearby private-memory page");
|
|
23639
|
+
return page;
|
|
23640
|
+
};
|
|
23463
23641
|
const candidateSet = async (embedding, candidateOptions = {}) => {
|
|
23464
23642
|
const result = await fetchCandidates(embedding, candidateOptions, true);
|
|
23465
23643
|
if (!Number.isSafeInteger(result.total_count) || result.total_count < 0 || !Number.isSafeInteger(result.unavailable_count) || result.unavailable_count < 0)
|
|
@@ -23538,34 +23716,27 @@ async function createRemoteMemoryPersistence(options) {
|
|
|
23538
23716
|
return Promise.all(result.items.map((item, i) => decodeCommitted(item, prepared[i])));
|
|
23539
23717
|
},
|
|
23540
23718
|
query: async (queryOptions = {}) => {
|
|
23541
|
-
const
|
|
23542
|
-
if (query.limit !== void 0 && (!Number.isInteger(query.limit) || query.limit < 1 || query.limit > 200))
|
|
23543
|
-
throw new Error("Page limit must be 1\u2013200");
|
|
23544
|
-
for (const [key, max] of queryListLimits) {
|
|
23545
|
-
const values = query[key];
|
|
23546
|
-
if (values && values.length > max)
|
|
23547
|
-
throw new Error(`Query ${key} accepts at most ${max} entries (got ${values.length})`);
|
|
23548
|
-
}
|
|
23549
|
-
const page = await request(
|
|
23550
|
-
"/memories/query",
|
|
23551
|
-
{
|
|
23552
|
-
method: "POST",
|
|
23553
|
-
body: JSON.stringify(
|
|
23554
|
-
Object.fromEntries(
|
|
23555
|
-
queryFields.filter((key) => query[key] !== void 0).map((key) => [key, query[key]])
|
|
23556
|
-
)
|
|
23557
|
-
)
|
|
23558
|
-
},
|
|
23559
|
-
signal
|
|
23560
|
-
);
|
|
23561
|
-
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")
|
|
23562
|
-
throw new Error("Invalid nearby private-memory page");
|
|
23719
|
+
const page = await fetchQueryPage(queryOptions);
|
|
23563
23720
|
return {
|
|
23564
23721
|
...await decodeAll(page.items),
|
|
23565
23722
|
...page.next_cursor !== void 0 && { next_cursor: page.next_cursor },
|
|
23566
23723
|
...page.changes_cursor !== void 0 && { changes_cursor: page.changes_cursor }
|
|
23567
23724
|
};
|
|
23568
23725
|
},
|
|
23726
|
+
queryMetadata: async (queryOptions = {}) => {
|
|
23727
|
+
const page = await fetchQueryPage(queryOptions);
|
|
23728
|
+
return {
|
|
23729
|
+
items: page.items.map((item) => {
|
|
23730
|
+
const {
|
|
23731
|
+
memory: { content: _content, kind_value: _kindValue, ...memory },
|
|
23732
|
+
version,
|
|
23733
|
+
server_updated_at
|
|
23734
|
+
} = memoryRecord(item);
|
|
23735
|
+
return { memory, version, server_updated_at };
|
|
23736
|
+
}),
|
|
23737
|
+
...page.next_cursor !== void 0 && { next_cursor: page.next_cursor }
|
|
23738
|
+
};
|
|
23739
|
+
},
|
|
23569
23740
|
candidateSet,
|
|
23570
23741
|
candidates: async (embedding, candidateOptions = {}) => decodeAll((await fetchCandidates(embedding, candidateOptions, false)).items)
|
|
23571
23742
|
};
|
|
@@ -23917,10 +24088,10 @@ function createRemoteMemoryPipeline(options) {
|
|
|
23917
24088
|
factSource: {
|
|
23918
24089
|
graphRanking: options.graphRanking,
|
|
23919
24090
|
temporalRanking: options.temporalRanking,
|
|
23920
|
-
search: async (
|
|
23921
|
-
const prepared = await prepare(
|
|
24091
|
+
search: async (text13, searchOptions) => {
|
|
24092
|
+
const prepared = await prepare(text13, searchOptions);
|
|
23922
24093
|
const ranked = await rankPreparedVaultCandidates(
|
|
23923
|
-
|
|
24094
|
+
text13,
|
|
23924
24095
|
prepared,
|
|
23925
24096
|
embeddingOptions,
|
|
23926
24097
|
searchOptions
|
|
@@ -23958,6 +24129,19 @@ function createRemoteMemoryPipeline(options) {
|
|
|
23958
24129
|
// src/lib/memory/store/remoteStore.ts
|
|
23959
24130
|
var import_uuid6 = require("uuid");
|
|
23960
24131
|
init_logger();
|
|
24132
|
+
function projection({ memory }) {
|
|
24133
|
+
return {
|
|
24134
|
+
uniqueId: memory.memory_id,
|
|
24135
|
+
scope: memory.scope,
|
|
24136
|
+
folderId: memory.folder_id ?? null,
|
|
24137
|
+
embedding: memory.embedding?.length ? JSON.stringify(memory.embedding) : null,
|
|
24138
|
+
embeddingModel: memory.embedding_model ?? null,
|
|
24139
|
+
createdAt: new Date(memory.created_at),
|
|
24140
|
+
updatedAt: new Date(memory.updated_at),
|
|
24141
|
+
lastObservedAt: memory.last_observed_at ?? null,
|
|
24142
|
+
topicsUserManaged: memory.topics_user_managed ?? false
|
|
24143
|
+
};
|
|
24144
|
+
}
|
|
23961
24145
|
function relevant(change, options) {
|
|
23962
24146
|
return options.includeDeleted ? change === "membership" : change !== "embedding" || !!options.embeddings;
|
|
23963
24147
|
}
|
|
@@ -23992,6 +24176,9 @@ function bounded(filters, key) {
|
|
|
23992
24176
|
if (!values || values.length <= MAX_QUERY_FILTER) return [filters];
|
|
23993
24177
|
return chunks(values, MAX_QUERY_FILTER).map((chunk) => ({ ...filters, [key]: chunk }));
|
|
23994
24178
|
}
|
|
24179
|
+
function maxOf(options) {
|
|
24180
|
+
return options.limit && options.limit > 0 ? options.limit : Infinity;
|
|
24181
|
+
}
|
|
23995
24182
|
function chunks(values, size) {
|
|
23996
24183
|
const out = [];
|
|
23997
24184
|
for (let i = 0; i < values.length; i += size) out.push(values.slice(i, i + size));
|
|
@@ -24063,26 +24250,49 @@ function createRemoteMemoryStore(options) {
|
|
|
24063
24250
|
for (const subscriber of [...subscribers])
|
|
24064
24251
|
if (relevant(change, subscriber.options)) safely(subscriber.onChange);
|
|
24065
24252
|
};
|
|
24066
|
-
const
|
|
24253
|
+
const pages = async (read, filters, max = Infinity) => {
|
|
24067
24254
|
const records = [];
|
|
24068
24255
|
let cursor2;
|
|
24069
24256
|
do {
|
|
24070
|
-
const page = await
|
|
24257
|
+
const page = await read({
|
|
24071
24258
|
...filters,
|
|
24072
24259
|
limit: Math.min(200, Math.max(1, max - records.length)),
|
|
24073
24260
|
...cursor2 && { cursor: cursor2 }
|
|
24074
24261
|
});
|
|
24075
|
-
warnFailed(page.failed);
|
|
24262
|
+
if (page.failed) warnFailed(page.failed);
|
|
24076
24263
|
records.push(...page.items);
|
|
24077
24264
|
cursor2 = page.next_cursor;
|
|
24078
24265
|
} while (cursor2 && records.length < max);
|
|
24079
24266
|
return records.slice(0, max);
|
|
24080
24267
|
};
|
|
24081
|
-
const
|
|
24268
|
+
const decrypted = (options2) => persistence.query(options2);
|
|
24269
|
+
const metadata = (options2) => persistence.queryMetadata(options2);
|
|
24270
|
+
const enumerate = (filters, max = Infinity) => pages(decrypted, filters, max);
|
|
24271
|
+
const enumerateIds = async (read, ids, filters) => (await Promise.all(
|
|
24082
24272
|
chunks([...new Set(ids)], MAX_QUERY_IDS).map(
|
|
24083
|
-
(memory_ids) =>
|
|
24273
|
+
(memory_ids) => pages(read, { ...filters, memory_ids })
|
|
24084
24274
|
)
|
|
24085
24275
|
)).flat();
|
|
24276
|
+
const listFilters = (listOptions) => ({
|
|
24277
|
+
...stateFilters(listOptions),
|
|
24278
|
+
include_embeddings: true,
|
|
24279
|
+
order: listOptions.since ? "updated" : "created",
|
|
24280
|
+
...listOptions.scopes?.length && { scopes: listOptions.scopes },
|
|
24281
|
+
...listOptions.factTypes?.length && { fact_types: listOptions.factTypes },
|
|
24282
|
+
...listOptions.visibility?.length && { visibility: listOptions.visibility },
|
|
24283
|
+
...listOptions.since && { updated_after: listOptions.since.getTime() }
|
|
24284
|
+
});
|
|
24285
|
+
const listRows = async (read, listOptions, filters, max) => {
|
|
24286
|
+
const variants = bounded(filters, "scopes").flatMap((f) => bounded(f, "fact_types"));
|
|
24287
|
+
if (!listOptions.memoryIds && variants.length === 1) return pages(read, filters, max);
|
|
24288
|
+
const fetched = await Promise.all(
|
|
24289
|
+
variants.map(
|
|
24290
|
+
(variant) => listOptions.memoryIds ? enumerateIds(read, listOptions.memoryIds, variant) : pages(read, variant, max)
|
|
24291
|
+
)
|
|
24292
|
+
);
|
|
24293
|
+
const time = (row) => filters.order === "updated" ? row.memory.updated_at : row.memory.created_at;
|
|
24294
|
+
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);
|
|
24295
|
+
};
|
|
24086
24296
|
const queues = /* @__PURE__ */ new Map();
|
|
24087
24297
|
const serialized = (id, task) => {
|
|
24088
24298
|
const run = (queues.get(id) ?? Promise.resolve()).then(task, task);
|
|
@@ -24124,12 +24334,15 @@ function createRemoteMemoryStore(options) {
|
|
|
24124
24334
|
};
|
|
24125
24335
|
const newRow = (input) => {
|
|
24126
24336
|
const now = Date.now();
|
|
24127
|
-
const scope = input
|
|
24337
|
+
const { level, scope } = resolveCreateLevel(input);
|
|
24338
|
+
assertValidKindLevel(input.kind, level);
|
|
24128
24339
|
return {
|
|
24129
24340
|
memory_id: (0, import_uuid6.v7)(),
|
|
24130
24341
|
content: input.content,
|
|
24131
24342
|
scope,
|
|
24132
|
-
level
|
|
24343
|
+
level,
|
|
24344
|
+
...input.kind !== void 0 && input.kind !== null && { kind: input.kind },
|
|
24345
|
+
...typeof input.kindValue === "string" && { kind_value: input.kindValue },
|
|
24133
24346
|
created_at: now,
|
|
24134
24347
|
updated_at: now,
|
|
24135
24348
|
is_deleted: false,
|
|
@@ -24158,6 +24371,30 @@ function createRemoteMemoryStore(options) {
|
|
|
24158
24371
|
return records.map((record2) => stored(record2.memory));
|
|
24159
24372
|
};
|
|
24160
24373
|
const asStored = (record2) => record2 ? stored(record2.memory) : null;
|
|
24374
|
+
const withKnownKinds = async (topics) => {
|
|
24375
|
+
const unkinded = [
|
|
24376
|
+
...new Set(topics.filter((t) => !t.kind).map((t) => normalizeEntityName(t.name)))
|
|
24377
|
+
];
|
|
24378
|
+
if (unkinded.length === 0) return topics;
|
|
24379
|
+
const kinds = /* @__PURE__ */ new Map();
|
|
24380
|
+
for (const names of chunks(unkinded, MAX_QUERY_TOPICS)) {
|
|
24381
|
+
for (const { memory } of await pages(metadata, {
|
|
24382
|
+
topics: names,
|
|
24383
|
+
include_archived: true,
|
|
24384
|
+
include_quarantined: true,
|
|
24385
|
+
include_superseded: true
|
|
24386
|
+
})) {
|
|
24387
|
+
for (const topic of parseTopics(memory.topics) ?? []) {
|
|
24388
|
+
const name = normalizeEntityName(topic.name);
|
|
24389
|
+
if (topic.kind && !kinds.has(name)) kinds.set(name, topic.kind);
|
|
24390
|
+
}
|
|
24391
|
+
}
|
|
24392
|
+
}
|
|
24393
|
+
return topics.map((topic) => {
|
|
24394
|
+
const kind = topic.kind ?? kinds.get(normalizeEntityName(topic.name));
|
|
24395
|
+
return kind ? { ...topic, kind } : topic;
|
|
24396
|
+
});
|
|
24397
|
+
};
|
|
24161
24398
|
const everyState = {
|
|
24162
24399
|
include_deleted: true,
|
|
24163
24400
|
include_archived: true,
|
|
@@ -24234,30 +24471,34 @@ function createRemoteMemoryStore(options) {
|
|
|
24234
24471
|
});
|
|
24235
24472
|
};
|
|
24236
24473
|
return {
|
|
24237
|
-
list: async (listOptions = {}) =>
|
|
24238
|
-
|
|
24239
|
-
|
|
24240
|
-
|
|
24241
|
-
|
|
24242
|
-
|
|
24243
|
-
|
|
24244
|
-
|
|
24245
|
-
|
|
24246
|
-
|
|
24247
|
-
|
|
24248
|
-
|
|
24249
|
-
|
|
24250
|
-
|
|
24251
|
-
|
|
24252
|
-
|
|
24253
|
-
|
|
24254
|
-
|
|
24255
|
-
|
|
24256
|
-
|
|
24257
|
-
|
|
24258
|
-
|
|
24259
|
-
|
|
24260
|
-
|
|
24474
|
+
list: async (listOptions = {}) => (await listRows(decrypted, listOptions, listFilters(listOptions), maxOf(listOptions))).map(
|
|
24475
|
+
(r) => stored(r.memory)
|
|
24476
|
+
),
|
|
24477
|
+
listProjections: async (listOptions = {}) => (await listRows(metadata, listOptions, listFilters(listOptions), maxOf(listOptions))).map(
|
|
24478
|
+
projection
|
|
24479
|
+
),
|
|
24480
|
+
listTopics: async () => {
|
|
24481
|
+
const topics = /* @__PURE__ */ new Map();
|
|
24482
|
+
for (const { memory } of await pages(metadata, {
|
|
24483
|
+
include_archived: true,
|
|
24484
|
+
include_quarantined: true,
|
|
24485
|
+
include_superseded: true
|
|
24486
|
+
})) {
|
|
24487
|
+
for (const topic of parseTopics(memory.topics) ?? []) {
|
|
24488
|
+
const name = normalizeEntityName(topic.name);
|
|
24489
|
+
if (!name) continue;
|
|
24490
|
+
const entry = topics.get(name) ?? {
|
|
24491
|
+
name,
|
|
24492
|
+
kind: null,
|
|
24493
|
+
memoryCount: 0,
|
|
24494
|
+
members: /* @__PURE__ */ new Set()
|
|
24495
|
+
};
|
|
24496
|
+
entry.kind ?? (entry.kind = topic.kind ?? null);
|
|
24497
|
+
entry.members.add(memory.memory_id);
|
|
24498
|
+
topics.set(name, entry);
|
|
24499
|
+
}
|
|
24500
|
+
}
|
|
24501
|
+
return [...topics.values()].map(({ members, ...topic }) => ({ ...topic, memoryCount: members.size })).sort((a, b) => a.name.localeCompare(b.name));
|
|
24261
24502
|
},
|
|
24262
24503
|
get: async (id) => asStored(await live(id)),
|
|
24263
24504
|
listArchived: async () => (await enumerate({ archived_only: true, order: "archived", include_embeddings: true })).map(
|
|
@@ -24266,10 +24507,10 @@ function createRemoteMemoryStore(options) {
|
|
|
24266
24507
|
memoriesByTopics: async (names) => {
|
|
24267
24508
|
const wanted = new Set(names.map(normalizeEntityName).filter(Boolean));
|
|
24268
24509
|
const out = /* @__PURE__ */ new Map();
|
|
24269
|
-
const
|
|
24510
|
+
const pages2 = await Promise.all(
|
|
24270
24511
|
chunks([...wanted], MAX_QUERY_TOPICS).map((topics) => enumerate({ topics }))
|
|
24271
24512
|
);
|
|
24272
|
-
for (const { memory } of
|
|
24513
|
+
for (const { memory } of pages2.flat()) {
|
|
24273
24514
|
const matched = [...canonicalTopics(memory)].filter((name) => wanted.has(name));
|
|
24274
24515
|
if (matched.length) out.set(memory.memory_id, new Set(matched));
|
|
24275
24516
|
}
|
|
@@ -24277,7 +24518,7 @@ function createRemoteMemoryStore(options) {
|
|
|
24277
24518
|
},
|
|
24278
24519
|
topicsByMemories: async (memoryIds) => {
|
|
24279
24520
|
const out = /* @__PURE__ */ new Map();
|
|
24280
|
-
for (const { memory } of await enumerateIds(memoryIds, {
|
|
24521
|
+
for (const { memory } of await enumerateIds(decrypted, memoryIds, {
|
|
24281
24522
|
include_archived: true,
|
|
24282
24523
|
include_superseded: true,
|
|
24283
24524
|
include_quarantined: true
|
|
@@ -24310,15 +24551,26 @@ function createRemoteMemoryStore(options) {
|
|
|
24310
24551
|
update: async (id, patch) => {
|
|
24311
24552
|
const saved = await mutate(id, "edit", (memory) => {
|
|
24312
24553
|
if (memory.superseded_by) return null;
|
|
24554
|
+
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);
|
|
24555
|
+
const kind = patch.kind !== void 0 ? patch.kind : memory.kind;
|
|
24556
|
+
assertValidKindLevel(kind, level);
|
|
24313
24557
|
memory.content = patch.content;
|
|
24314
24558
|
memory.updated_at = Date.now();
|
|
24315
|
-
if (patch.
|
|
24316
|
-
memory.level =
|
|
24317
|
-
|
|
24318
|
-
|
|
24319
|
-
|
|
24559
|
+
if (patch.level !== void 0) {
|
|
24560
|
+
memory.level = level;
|
|
24561
|
+
memory.scope = scopeForLevel(level);
|
|
24562
|
+
} else if (patch.scope !== void 0) {
|
|
24563
|
+
memory.level = level;
|
|
24320
24564
|
memory.scope = patch.scope;
|
|
24321
24565
|
}
|
|
24566
|
+
if (patch.kind !== void 0) {
|
|
24567
|
+
if (patch.kind === null) delete memory.kind;
|
|
24568
|
+
else memory.kind = patch.kind;
|
|
24569
|
+
}
|
|
24570
|
+
if (patch.kindValue !== void 0) {
|
|
24571
|
+
if (patch.kindValue === null) delete memory.kind_value;
|
|
24572
|
+
else memory.kind_value = patch.kindValue;
|
|
24573
|
+
}
|
|
24322
24574
|
if (patch.factType !== void 0) memory.fact_type = patch.factType ?? void 0;
|
|
24323
24575
|
if (patch.eventTime !== void 0) {
|
|
24324
24576
|
memory.event_time_start = patch.eventTime?.start ?? void 0;
|
|
@@ -24373,16 +24625,19 @@ function createRemoteMemoryStore(options) {
|
|
|
24373
24625
|
notify("edit", [await persistence.put(memory, record2)]);
|
|
24374
24626
|
return true;
|
|
24375
24627
|
}),
|
|
24376
|
-
setTopics: async (memoryId, topics) =>
|
|
24377
|
-
await
|
|
24378
|
-
|
|
24379
|
-
|
|
24380
|
-
|
|
24381
|
-
|
|
24382
|
-
|
|
24383
|
-
|
|
24628
|
+
setTopics: async (memoryId, topics) => {
|
|
24629
|
+
const chosen = await withKnownKinds(topicInputs(topics, "user"));
|
|
24630
|
+
return asStored(
|
|
24631
|
+
await mutate(memoryId, "edit", (memory) => ({
|
|
24632
|
+
...memory,
|
|
24633
|
+
topics: serializeTopics(mergeTopics([], chosen)),
|
|
24634
|
+
topics_user_managed: true,
|
|
24635
|
+
topics_updated_at: Date.now()
|
|
24636
|
+
}))
|
|
24637
|
+
);
|
|
24638
|
+
},
|
|
24384
24639
|
addTopics: async (memoryId, topics) => {
|
|
24385
|
-
const added = topicInputs(topics, "auto");
|
|
24640
|
+
const added = await withKnownKinds(topicInputs(topics, "auto"));
|
|
24386
24641
|
const saved = await mutate(memoryId, "edit", (memory) => ({
|
|
24387
24642
|
...memory,
|
|
24388
24643
|
topics: serializeTopics(mergeTopics(parseTopics(memory.topics) ?? [], added)),
|
|
@@ -24811,8 +25066,8 @@ async function synthesizeFacet(facet, ctx, options, prior) {
|
|
|
24811
25066
|
memories
|
|
24812
25067
|
});
|
|
24813
25068
|
const noEvidence = result.basedOn.memoryIds.length === 0;
|
|
24814
|
-
const { text:
|
|
24815
|
-
if (!
|
|
25069
|
+
const { text: text13, legitimateEmpty } = extractFacetText(result.structuredOutput);
|
|
25070
|
+
if (!text13 && !legitimateEmpty && !noEvidence) {
|
|
24816
25071
|
getLogger().warn(
|
|
24817
25072
|
"[memory/synthesizeProfile] facet synthesis returned degraded-empty; using fallback section",
|
|
24818
25073
|
{ facet: facet.key, recalledCount: result.basedOn.memoryIds.length }
|
|
@@ -24822,12 +25077,12 @@ async function synthesizeFacet(facet, ctx, options, prior) {
|
|
|
24822
25077
|
const section = {
|
|
24823
25078
|
key: facet.key,
|
|
24824
25079
|
label: facet.label,
|
|
24825
|
-
text:
|
|
25080
|
+
text: text13,
|
|
24826
25081
|
sourceMemoryIds: result.basedOn.memoryIds,
|
|
24827
25082
|
generatedAt: Date.now()
|
|
24828
25083
|
};
|
|
24829
|
-
if (options.redactor &&
|
|
24830
|
-
const redacted = await options.redactor.redactTextAsync(
|
|
25084
|
+
if (options.redactor && text13) {
|
|
25085
|
+
const redacted = await options.redactor.redactTextAsync(text13);
|
|
24831
25086
|
section.text = redacted.text;
|
|
24832
25087
|
}
|
|
24833
25088
|
if (!legitimateEmpty && !noEvidence) {
|
|
@@ -25340,10 +25595,10 @@ function createDurableAutoExtractor(options) {
|
|
|
25340
25595
|
const counted = error instanceof BatchFailureError || error instanceof LockedSourcesError && error.persistentIds.length > 0;
|
|
25341
25596
|
if (!counted) return false;
|
|
25342
25597
|
const prior = sessionFailures.get(job.id);
|
|
25343
|
-
const
|
|
25344
|
-
sessionFailures.set(job.id, { head, count });
|
|
25598
|
+
const count2 = prior?.head === head ? prior.count + 1 : 1;
|
|
25599
|
+
sessionFailures.set(job.id, { head, count: count2 });
|
|
25345
25600
|
const terminal = error instanceof BatchFailureError && error.terminal;
|
|
25346
|
-
if (!terminal &&
|
|
25601
|
+
if (!terminal && count2 < MAX_ATTEMPTS) return false;
|
|
25347
25602
|
skippedThisSession.add(job.id);
|
|
25348
25603
|
const now = clock();
|
|
25349
25604
|
const lastCounted = failedAtOf(job, head);
|
|
@@ -25650,7 +25905,7 @@ async function verifyFactSupport(items, options) {
|
|
|
25650
25905
|
}
|
|
25651
25906
|
const maxEvidenceChars = Math.max(1, options.maxEvidenceChars ?? DEFAULT_MAX_EVIDENCE_CHARS);
|
|
25652
25907
|
const redactor = resolvePiiRedactor(options.piiRedaction ?? true);
|
|
25653
|
-
const safe = async (
|
|
25908
|
+
const safe = async (text13) => redactor ? (await redactor.redactTextAsync(text13)).text : text13;
|
|
25654
25909
|
let truncatedCount = 0;
|
|
25655
25910
|
const parts = [];
|
|
25656
25911
|
for (const [i, item] of items.entries()) {
|
|
@@ -25707,7 +25962,7 @@ Which item numbers are supported?`,
|
|
|
25707
25962
|
}
|
|
25708
25963
|
return supported;
|
|
25709
25964
|
}
|
|
25710
|
-
function parseSupported(parsed,
|
|
25965
|
+
function parseSupported(parsed, count2) {
|
|
25711
25966
|
if (typeof parsed !== "object" || parsed === null) return null;
|
|
25712
25967
|
const list = parsed.supported;
|
|
25713
25968
|
if (!Array.isArray(list)) return null;
|
|
@@ -25715,7 +25970,7 @@ function parseSupported(parsed, count) {
|
|
|
25715
25970
|
for (const raw of list) {
|
|
25716
25971
|
const n = typeof raw === "number" ? raw : typeof raw === "string" ? Number(raw) : NaN;
|
|
25717
25972
|
if (!Number.isInteger(n)) continue;
|
|
25718
|
-
if (n >= 1 && n <=
|
|
25973
|
+
if (n >= 1 && n <= count2) out.add(n - 1);
|
|
25719
25974
|
}
|
|
25720
25975
|
return out;
|
|
25721
25976
|
}
|
|
@@ -25766,7 +26021,7 @@ async function verifyMemoriesForPublish(memories, sources, options) {
|
|
|
25766
26021
|
);
|
|
25767
26022
|
const pending = [];
|
|
25768
26023
|
for (const { index, uniqueId, content, ids } of withinBudget) {
|
|
25769
|
-
const evidence = ids.map((id) => resolved.get(id) ?? null).filter((
|
|
26024
|
+
const evidence = ids.map((id) => resolved.get(id) ?? null).filter((text13) => text13 !== null);
|
|
25770
26025
|
const dropped = ids.length - evidence.length;
|
|
25771
26026
|
if (ids.some((id) => unreadable.has(id))) {
|
|
25772
26027
|
results[index] = {
|
|
@@ -26269,22 +26524,22 @@ function normalizeManualFactType(value) {
|
|
|
26269
26524
|
function isSharedScope(scope) {
|
|
26270
26525
|
return scope === "shared";
|
|
26271
26526
|
}
|
|
26272
|
-
async function notifyWritten(options, input,
|
|
26527
|
+
async function notifyWritten(options, input, outcome2) {
|
|
26273
26528
|
try {
|
|
26274
|
-
await options?.onWritten?.({ input, outcome });
|
|
26529
|
+
await options?.onWritten?.({ input, outcome: outcome2 });
|
|
26275
26530
|
} catch {
|
|
26276
26531
|
}
|
|
26277
26532
|
}
|
|
26278
|
-
function describeWriteOutcome(
|
|
26279
|
-
switch (
|
|
26533
|
+
function describeWriteOutcome(outcome2) {
|
|
26534
|
+
switch (outcome2.action) {
|
|
26280
26535
|
case "create":
|
|
26281
|
-
return `Memory saved successfully (ID: ${
|
|
26536
|
+
return `Memory saved successfully (ID: ${outcome2.memoryId}).`;
|
|
26282
26537
|
case "update":
|
|
26283
26538
|
case "supersede":
|
|
26284
|
-
return `Memory saved successfully (ID: ${
|
|
26539
|
+
return `Memory saved successfully (ID: ${outcome2.memoryId}); it replaces an earlier version of this fact.`;
|
|
26285
26540
|
case "merge":
|
|
26286
26541
|
case "skip":
|
|
26287
|
-
return `The vault already holds this fact (ID: ${
|
|
26542
|
+
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.`;
|
|
26288
26543
|
case "suppressed":
|
|
26289
26544
|
return "Not saved: this matches a memory the user previously deleted. Do not re-save it.";
|
|
26290
26545
|
}
|
|
@@ -26390,9 +26645,9 @@ function createMemoryVaultTool(vaultCtx, options, embeddingOptions, cache) {
|
|
|
26390
26645
|
...folderId !== void 0 && { folderId },
|
|
26391
26646
|
...factType !== void 0 && { factType }
|
|
26392
26647
|
};
|
|
26393
|
-
const
|
|
26394
|
-
await notifyWritten(options, input,
|
|
26395
|
-
return describeWriteOutcome(
|
|
26648
|
+
const outcome2 = await options.write(input);
|
|
26649
|
+
await notifyWritten(options, input, outcome2);
|
|
26650
|
+
return describeWriteOutcome(outcome2);
|
|
26396
26651
|
}
|
|
26397
26652
|
const created = await createVaultMemoryOp(vaultCtx, {
|
|
26398
26653
|
content,
|
|
@@ -26681,10 +26936,10 @@ async function exportMarkdownToPdf(markdown, options) {
|
|
|
26681
26936
|
function lineHeightMm(fontSizePt) {
|
|
26682
26937
|
return ptToMm(fontSizePt) * lineHeight;
|
|
26683
26938
|
}
|
|
26684
|
-
function renderWrappedText(
|
|
26939
|
+
function renderWrappedText(text13, x, maxW, fontSizePt, fontStyle = "normal", fontFamily = "Helvetica") {
|
|
26685
26940
|
doc.setFont(fontFamily, fontStyle);
|
|
26686
26941
|
doc.setFontSize(fontSizePt);
|
|
26687
|
-
const lines = doc.splitTextToSize(
|
|
26942
|
+
const lines = doc.splitTextToSize(text13, maxW);
|
|
26688
26943
|
const lh = lineHeightMm(fontSizePt);
|
|
26689
26944
|
for (const line of lines) {
|
|
26690
26945
|
ensureSpace(lh);
|
|
@@ -26766,10 +27021,10 @@ async function exportMarkdownToPdf(markdown, options) {
|
|
|
26766
27021
|
const lh = lineHeightMm(opts.fontSize);
|
|
26767
27022
|
for (let i = 0; i < items.length; i++) {
|
|
26768
27023
|
const prefix = ordered ? `${(listToken.start || 1) + i}. ` : "\u2022 ";
|
|
26769
|
-
const
|
|
27024
|
+
const text13 = tokensToPlainText(items[i].tokens);
|
|
26770
27025
|
ensureSpace(lh);
|
|
26771
27026
|
doc.text(prefix, opts.margins.left, cursorY);
|
|
26772
|
-
const listLines = doc.splitTextToSize(
|
|
27027
|
+
const listLines = doc.splitTextToSize(text13, itemW);
|
|
26773
27028
|
for (const line of listLines) {
|
|
26774
27029
|
ensureSpace(lh);
|
|
26775
27030
|
doc.text(line, indentX, cursorY);
|
|
@@ -26781,12 +27036,12 @@ async function exportMarkdownToPdf(markdown, options) {
|
|
|
26781
27036
|
}
|
|
26782
27037
|
case "blockquote": {
|
|
26783
27038
|
const bqToken = token;
|
|
26784
|
-
const
|
|
27039
|
+
const text13 = tokensToPlainText(bqToken.tokens ?? []);
|
|
26785
27040
|
const indentX = opts.margins.left + SPACING.QUOTE_INDENT;
|
|
26786
27041
|
const quoteW = cw - SPACING.QUOTE_INSET;
|
|
26787
27042
|
doc.setFont("Helvetica", "italic");
|
|
26788
27043
|
doc.setFontSize(opts.fontSize);
|
|
26789
|
-
const bqLines = doc.splitTextToSize(
|
|
27044
|
+
const bqLines = doc.splitTextToSize(text13, quoteW);
|
|
26790
27045
|
const lh = lineHeightMm(opts.fontSize);
|
|
26791
27046
|
const blockH = bqLines.length * lh;
|
|
26792
27047
|
ensureSpace(Math.min(blockH, 20));
|
|
@@ -26822,8 +27077,8 @@ async function exportMarkdownToPdf(markdown, options) {
|
|
|
26822
27077
|
doc.setFont("Helvetica", fontStyle);
|
|
26823
27078
|
doc.setFontSize(tableFontSize);
|
|
26824
27079
|
const cellLines = cells.map((cell) => {
|
|
26825
|
-
const
|
|
26826
|
-
return doc.splitTextToSize(
|
|
27080
|
+
const text13 = tokensToPlainText(cell.tokens);
|
|
27081
|
+
return doc.splitTextToSize(text13, cellContentW);
|
|
26827
27082
|
});
|
|
26828
27083
|
const maxLines = Math.max(1, ...cellLines.map((l) => l.length));
|
|
26829
27084
|
ensureSpace(maxLines * lh + SPACING.SM);
|
|
@@ -27054,13 +27309,13 @@ async function withPdfDocument(pdfDataUrl, fn) {
|
|
|
27054
27309
|
}
|
|
27055
27310
|
}
|
|
27056
27311
|
function joinPdfTextItems(items) {
|
|
27057
|
-
let
|
|
27312
|
+
let text13 = "";
|
|
27058
27313
|
for (const item of items) {
|
|
27059
27314
|
if (!("str" in item)) continue;
|
|
27060
27315
|
const { str, hasEOL } = item;
|
|
27061
|
-
|
|
27316
|
+
text13 += str + (hasEOL ? "\n" : " ");
|
|
27062
27317
|
}
|
|
27063
|
-
return
|
|
27318
|
+
return text13.replace(/[ \t]+\n/g, "\n").trim();
|
|
27064
27319
|
}
|
|
27065
27320
|
function computeRenderScale(width, height) {
|
|
27066
27321
|
const longest = Math.max(width, height);
|
|
@@ -27080,7 +27335,7 @@ async function extractPdfPageTexts(pdfDataUrl) {
|
|
|
27080
27335
|
}
|
|
27081
27336
|
async function extractTextFromPdf(pdfDataUrl) {
|
|
27082
27337
|
const pageTexts = await extractPdfPageTexts(pdfDataUrl);
|
|
27083
|
-
return pageTexts.filter((
|
|
27338
|
+
return pageTexts.filter((text13) => text13.trim()).join("\n\n");
|
|
27084
27339
|
}
|
|
27085
27340
|
async function renderPdfPages(pdfDataUrl, maxPages, pageNumbers) {
|
|
27086
27341
|
return withPdfDocument(pdfDataUrl, async (pdf) => {
|
|
@@ -27122,8 +27377,8 @@ var MAX_IMAGE_PAGES = 20;
|
|
|
27122
27377
|
var MIN_PAGE_TEXT_CHARS = 20;
|
|
27123
27378
|
function selectPdfImagePages(pageTexts, maxImagePages = MAX_IMAGE_PAGES) {
|
|
27124
27379
|
const needImage = [];
|
|
27125
|
-
pageTexts.forEach((
|
|
27126
|
-
if (
|
|
27380
|
+
pageTexts.forEach((text13, index) => {
|
|
27381
|
+
if (text13.trim().length < MIN_PAGE_TEXT_CHARS) needImage.push(index + 1);
|
|
27127
27382
|
});
|
|
27128
27383
|
const limit = Math.max(0, maxImagePages);
|
|
27129
27384
|
return { rendered: needImage.slice(0, limit), omitted: needImage.slice(limit) };
|
|
@@ -27182,10 +27437,10 @@ var PdfProcessor = class {
|
|
|
27182
27437
|
textError
|
|
27183
27438
|
);
|
|
27184
27439
|
}
|
|
27185
|
-
const
|
|
27440
|
+
const text13 = (pageTexts ?? []).filter((t) => t.trim()).join("\n\n");
|
|
27186
27441
|
const { rendered, omitted } = pageTexts ? selectPdfImagePages(pageTexts) : { rendered: [], omitted: [] };
|
|
27187
27442
|
if (pageTexts && rendered.length === 0 && omitted.length === 0) {
|
|
27188
|
-
return
|
|
27443
|
+
return text13.trim() ? { extractedText: text13, format: "plain" } : null;
|
|
27189
27444
|
}
|
|
27190
27445
|
let renderedPages;
|
|
27191
27446
|
let pageCount = pageTexts?.length;
|
|
@@ -27198,7 +27453,7 @@ var PdfProcessor = class {
|
|
|
27198
27453
|
pageCount = result.pageCount;
|
|
27199
27454
|
}
|
|
27200
27455
|
} catch (imageError) {
|
|
27201
|
-
if (!
|
|
27456
|
+
if (!text13.trim()) {
|
|
27202
27457
|
logger.error("[PdfProcessor] Image conversion also failed:", imageError);
|
|
27203
27458
|
throw imageError;
|
|
27204
27459
|
}
|
|
@@ -27210,7 +27465,7 @@ var PdfProcessor = class {
|
|
|
27210
27465
|
const included = new Set(imagePages);
|
|
27211
27466
|
const needImage = pageTexts ? [...rendered, ...omitted] : Array.from({ length: pageCount ?? 0 }, (_, i) => i + 1);
|
|
27212
27467
|
const omittedPages = needImage.filter((n) => !included.has(n)).sort((a, b) => a - b);
|
|
27213
|
-
if (images.length === 0 && !
|
|
27468
|
+
if (images.length === 0 && !text13.trim()) {
|
|
27214
27469
|
logger.warn("[PdfProcessor] Image conversion also returned empty");
|
|
27215
27470
|
return null;
|
|
27216
27471
|
}
|
|
@@ -27219,9 +27474,9 @@ var PdfProcessor = class {
|
|
|
27219
27474
|
);
|
|
27220
27475
|
const imageNote = buildPdfImageNote(file.name, imagePages, omittedPages, pageCount);
|
|
27221
27476
|
return {
|
|
27222
|
-
extractedText:
|
|
27477
|
+
extractedText: text13.trim() ? `${imageNote}
|
|
27223
27478
|
|
|
27224
|
-
${
|
|
27479
|
+
${text13}` : imageNote,
|
|
27225
27480
|
format: "plain",
|
|
27226
27481
|
imageDataUrls: images.length > 0 ? images : void 0,
|
|
27227
27482
|
metadata: {
|
|
@@ -27387,16 +27642,16 @@ var TextProcessor = class {
|
|
|
27387
27642
|
async process(file) {
|
|
27388
27643
|
try {
|
|
27389
27644
|
const arrayBuffer = await dataUrlToArrayBuffer(file.dataUrl);
|
|
27390
|
-
const
|
|
27391
|
-
if (!
|
|
27645
|
+
const text13 = decodeText(new Uint8Array(arrayBuffer));
|
|
27646
|
+
if (!text13.trim()) {
|
|
27392
27647
|
return null;
|
|
27393
27648
|
}
|
|
27394
27649
|
return {
|
|
27395
|
-
extractedText:
|
|
27650
|
+
extractedText: text13,
|
|
27396
27651
|
format: this.resolveFormat(file),
|
|
27397
27652
|
metadata: {
|
|
27398
27653
|
byteLength: arrayBuffer.byteLength,
|
|
27399
|
-
characterCount:
|
|
27654
|
+
characterCount: text13.length
|
|
27400
27655
|
}
|
|
27401
27656
|
};
|
|
27402
27657
|
} catch (error) {
|
|
@@ -27458,8 +27713,8 @@ var WordProcessor = class {
|
|
|
27458
27713
|
/**
|
|
27459
27714
|
* Count words in text
|
|
27460
27715
|
*/
|
|
27461
|
-
countWords(
|
|
27462
|
-
return
|
|
27716
|
+
countWords(text13) {
|
|
27717
|
+
return text13.split(/\s+/).filter((w) => w.length > 0).length;
|
|
27463
27718
|
}
|
|
27464
27719
|
};
|
|
27465
27720
|
|
|
@@ -27697,13 +27952,13 @@ function truncationMarker2(kept, total, fileName) {
|
|
|
27697
27952
|
return `
|
|
27698
27953
|
[truncated: showing the first ${kept} of ${total} characters of ${fileName}]`;
|
|
27699
27954
|
}
|
|
27700
|
-
function truncateText(
|
|
27701
|
-
if (
|
|
27955
|
+
function truncateText(text13, limit, fileName) {
|
|
27956
|
+
if (text13.length <= limit) return { text: text13, truncated: false };
|
|
27702
27957
|
let end = Math.max(0, limit);
|
|
27703
|
-
const code =
|
|
27958
|
+
const code = text13.charCodeAt(end - 1);
|
|
27704
27959
|
if (end > 0 && code >= 55296 && code <= 56319) end--;
|
|
27705
27960
|
return {
|
|
27706
|
-
text: `${
|
|
27961
|
+
text: `${text13.slice(0, end)}${truncationMarker2(end, text13.length, fileName)}`,
|
|
27707
27962
|
truncated: true
|
|
27708
27963
|
};
|
|
27709
27964
|
}
|
|
@@ -27867,13 +28122,13 @@ async function preprocessFiles(files, options = {}) {
|
|
|
27867
28122
|
Math.max(0, MAX_TOTAL_IMAGES - allImageUrls.length)
|
|
27868
28123
|
);
|
|
27869
28124
|
allImageUrls.push(...images.slice(0, keptImages));
|
|
27870
|
-
const
|
|
27871
|
-
const fitsWhole =
|
|
27872
|
-
const limit = fitsWhole ?
|
|
28125
|
+
const text13 = rewriteImageNote(result, file.name, keptImages);
|
|
28126
|
+
const fitsWhole = text13.length <= Math.min(maxExtractedCharsPerFile, remaining);
|
|
28127
|
+
const limit = fitsWhole ? text13.length : Math.min(
|
|
27873
28128
|
maxExtractedCharsPerFile,
|
|
27874
|
-
remaining - truncationMarker2(
|
|
28129
|
+
remaining - truncationMarker2(text13.length, text13.length, file.name).length
|
|
27875
28130
|
);
|
|
27876
|
-
const capped = truncateText(
|
|
28131
|
+
const capped = truncateText(text13, Math.max(0, limit), file.name);
|
|
27877
28132
|
const formattedContent = formatExtractedContent(file.name, capped.text, result.format);
|
|
27878
28133
|
totalChars += separatorLength + formattedContent.length;
|
|
27879
28134
|
extractedTexts.push(formattedContent);
|
|
@@ -28116,11 +28371,11 @@ function createGetAuthenticatedUserTool(getAccessToken, requestAccess) {
|
|
|
28116
28371
|
};
|
|
28117
28372
|
}
|
|
28118
28373
|
var MAX_RESPONSE_SIZE = 1e5;
|
|
28119
|
-
function truncate(
|
|
28120
|
-
if (
|
|
28121
|
-
return
|
|
28374
|
+
function truncate(text13, maxLen) {
|
|
28375
|
+
if (text13.length <= maxLen) return text13;
|
|
28376
|
+
return text13.slice(0, maxLen) + `
|
|
28122
28377
|
|
|
28123
|
-
... (truncated, ${
|
|
28378
|
+
... (truncated, ${text13.length - maxLen} characters omitted)`;
|
|
28124
28379
|
}
|
|
28125
28380
|
function createGitHubApiTool(getAccessToken, requestAccess) {
|
|
28126
28381
|
return {
|
|
@@ -28168,16 +28423,16 @@ IMPORTANT: For write operations (POST, PUT, PATCH, DELETE), always confirm with
|
|
|
28168
28423
|
method,
|
|
28169
28424
|
body: body ? JSON.stringify(body) : void 0
|
|
28170
28425
|
});
|
|
28171
|
-
const
|
|
28426
|
+
const text13 = await resp.text();
|
|
28172
28427
|
if (!resp.ok) {
|
|
28173
|
-
return `Error: GitHub API ${method} ${path} returned ${resp.status}: ${truncate(
|
|
28428
|
+
return `Error: GitHub API ${method} ${path} returned ${resp.status}: ${truncate(text13, 500)}`;
|
|
28174
28429
|
}
|
|
28175
28430
|
try {
|
|
28176
|
-
const data = JSON.parse(
|
|
28431
|
+
const data = JSON.parse(text13);
|
|
28177
28432
|
const json4 = JSON.stringify(data);
|
|
28178
28433
|
return truncate(json4, MAX_RESPONSE_SIZE);
|
|
28179
28434
|
} catch {
|
|
28180
|
-
return truncate(
|
|
28435
|
+
return truncate(text13, MAX_RESPONSE_SIZE);
|
|
28181
28436
|
}
|
|
28182
28437
|
} catch (err) {
|
|
28183
28438
|
if (err instanceof DOMException && err.name === "AbortError") {
|
|
@@ -28839,10 +29094,10 @@ function formatObjectAttr(obj) {
|
|
|
28839
29094
|
});
|
|
28840
29095
|
return `{ ${entries.join(", ")} }`;
|
|
28841
29096
|
}
|
|
28842
|
-
function isSafeJsxText(
|
|
28843
|
-
if (/[<>{}&]/.test(
|
|
28844
|
-
if (/\n/.test(
|
|
28845
|
-
if (/^\s|\s$/.test(
|
|
29097
|
+
function isSafeJsxText(text13) {
|
|
29098
|
+
if (/[<>{}&]/.test(text13)) return false;
|
|
29099
|
+
if (/\n/.test(text13)) return false;
|
|
29100
|
+
if (/^\s|\s$/.test(text13)) return false;
|
|
28846
29101
|
return true;
|
|
28847
29102
|
}
|
|
28848
29103
|
function getId(node) {
|
|
@@ -32422,9 +32677,9 @@ New lines of conversation:
|
|
|
32422
32677
|
{new_lines}
|
|
32423
32678
|
|
|
32424
32679
|
New summary:`;
|
|
32425
|
-
function estimateTokens(
|
|
32426
|
-
if (!
|
|
32427
|
-
return Math.ceil(
|
|
32680
|
+
function estimateTokens(text13) {
|
|
32681
|
+
if (!text13) return 0;
|
|
32682
|
+
return Math.ceil(text13.length / 4);
|
|
32428
32683
|
}
|
|
32429
32684
|
var PER_MESSAGE_OVERHEAD_TOKENS = 4;
|
|
32430
32685
|
var MAX_MESSAGES_PER_SUMMARIZATION = 20;
|
|
@@ -32484,14 +32739,14 @@ function splitMessagesAtThreshold(messages, tokenThreshold, minWindowMessages) {
|
|
|
32484
32739
|
}
|
|
32485
32740
|
async function redactSummaryPrompt(prompt, redactor, onPiiRedacted) {
|
|
32486
32741
|
if (!redactor) return prompt;
|
|
32487
|
-
const { text:
|
|
32742
|
+
const { text: text13, matches } = await redactor.redactTextAsync(prompt);
|
|
32488
32743
|
if (matches.length > 0 && onPiiRedacted) {
|
|
32489
32744
|
try {
|
|
32490
32745
|
onPiiRedacted(matches);
|
|
32491
32746
|
} catch {
|
|
32492
32747
|
}
|
|
32493
32748
|
}
|
|
32494
|
-
return
|
|
32749
|
+
return text13;
|
|
32495
32750
|
}
|
|
32496
32751
|
async function progressiveSummarize(options) {
|
|
32497
32752
|
const {
|
|
@@ -32804,14 +33059,14 @@ var MaskScopedEmbeddingCache = class extends Map {
|
|
|
32804
33059
|
this.inner = inner;
|
|
32805
33060
|
this.masked = masked;
|
|
32806
33061
|
}
|
|
32807
|
-
key(
|
|
32808
|
-
return `${this.masked ? "m" : "r"}:${
|
|
33062
|
+
key(text13) {
|
|
33063
|
+
return `${this.masked ? "m" : "r"}:${text13}`;
|
|
32809
33064
|
}
|
|
32810
|
-
get(
|
|
32811
|
-
return this.inner.get(this.key(
|
|
33065
|
+
get(text13) {
|
|
33066
|
+
return this.inner.get(this.key(text13));
|
|
32812
33067
|
}
|
|
32813
|
-
set(
|
|
32814
|
-
this.inner.set(this.key(
|
|
33068
|
+
set(text13, value) {
|
|
33069
|
+
this.inner.set(this.key(text13), value);
|
|
32815
33070
|
return this;
|
|
32816
33071
|
}
|
|
32817
33072
|
};
|
|
@@ -33466,11 +33721,11 @@ function useChatStorage(options) {
|
|
|
33466
33721
|
[piiRedaction, currentConversationId]
|
|
33467
33722
|
);
|
|
33468
33723
|
const maskForEmbedding = (0, import_react6.useCallback)(
|
|
33469
|
-
(
|
|
33724
|
+
(text13) => isPiiRedactor(resolvedPiiRedaction) ? resolvedPiiRedaction.maskText(text13) : text13,
|
|
33470
33725
|
[resolvedPiiRedaction]
|
|
33471
33726
|
);
|
|
33472
33727
|
const maskEmbeddingInput = (0, import_react6.useMemo)(
|
|
33473
|
-
() => isPiiRedactor(resolvedPiiRedaction) ? (
|
|
33728
|
+
() => isPiiRedactor(resolvedPiiRedaction) ? (text13) => resolvedPiiRedaction.maskText(text13) : void 0,
|
|
33474
33729
|
[resolvedPiiRedaction]
|
|
33475
33730
|
);
|
|
33476
33731
|
const vaultEmbeddingOptions = (0, import_react6.useMemo)(
|
|
@@ -34201,7 +34456,7 @@ function useChatStorage(options) {
|
|
|
34201
34456
|
return {
|
|
34202
34457
|
callRedactor: redactor,
|
|
34203
34458
|
callPiiRedaction: forInnerSend,
|
|
34204
|
-
maskForCall: (
|
|
34459
|
+
maskForCall: (text13) => redactor ? redactor.maskText(text13) : text13
|
|
34205
34460
|
};
|
|
34206
34461
|
};
|
|
34207
34462
|
const resolveThoughtProcess = () => finalizeThoughtProcess(getThoughtProcess?.() || thoughtProcess);
|
|
@@ -36527,13 +36782,13 @@ function useOCR() {
|
|
|
36527
36782
|
const result = await import_tesseract.default.recognize(image, language);
|
|
36528
36783
|
pageTexts.push(result.data.text);
|
|
36529
36784
|
}
|
|
36530
|
-
const
|
|
36531
|
-
if (!
|
|
36785
|
+
const text13 = pageTexts.join("\n\n");
|
|
36786
|
+
if (!text13.trim()) {
|
|
36532
36787
|
getLogger().warn(`No text found in OCR source ${filename || "unknown"}`);
|
|
36533
36788
|
return null;
|
|
36534
36789
|
}
|
|
36535
36790
|
return `[Context from OCR attachment ${filename || "unknown"}]:
|
|
36536
|
-
${
|
|
36791
|
+
${text13}`;
|
|
36537
36792
|
} catch (err) {
|
|
36538
36793
|
getLogger().error(`Failed to process OCR for ${file.filename || "unknown"}:`, err);
|
|
36539
36794
|
return null;
|
|
@@ -36577,13 +36832,13 @@ function usePdf() {
|
|
|
36577
36832
|
const contexts = await Promise.all(
|
|
36578
36833
|
pdfFiles.map(async (file) => {
|
|
36579
36834
|
try {
|
|
36580
|
-
const
|
|
36581
|
-
if (!
|
|
36835
|
+
const text13 = await extractTextFromPdf(file.url);
|
|
36836
|
+
if (!text13.trim()) {
|
|
36582
36837
|
getLogger().warn(`No text found in PDF ${file.filename}`);
|
|
36583
36838
|
return null;
|
|
36584
36839
|
}
|
|
36585
36840
|
return `[Context from PDF attachment ${file.filename}]:
|
|
36586
|
-
${
|
|
36841
|
+
${text13}`;
|
|
36587
36842
|
} catch (err) {
|
|
36588
36843
|
getLogger().error(`Failed to process PDF ${file.filename}:`, err);
|
|
36589
36844
|
return null;
|
|
@@ -38109,14 +38364,14 @@ function useVoice(options) {
|
|
|
38109
38364
|
recognition.interimResults = false;
|
|
38110
38365
|
recognition.lang = options?.language ?? "";
|
|
38111
38366
|
recognition.onresult = (event) => {
|
|
38112
|
-
let
|
|
38367
|
+
let text13 = "";
|
|
38113
38368
|
for (let i = 0; i < event.results.length; i++) {
|
|
38114
38369
|
const result = event.results[i];
|
|
38115
38370
|
if (result && result.isFinal && result[0]) {
|
|
38116
|
-
|
|
38371
|
+
text13 += result[0].transcript + " ";
|
|
38117
38372
|
}
|
|
38118
38373
|
}
|
|
38119
|
-
nativeTextRef.current =
|
|
38374
|
+
nativeTextRef.current = text13.trim();
|
|
38120
38375
|
};
|
|
38121
38376
|
recognition.onerror = (event) => {
|
|
38122
38377
|
if (event.error !== "aborted" && event.error !== "no-speech") {
|
|
@@ -38582,6 +38837,7 @@ function useWalletBinding(options = {}) {
|
|
|
38582
38837
|
extractFacts,
|
|
38583
38838
|
extractFileIds,
|
|
38584
38839
|
extractMCPImageUrls,
|
|
38840
|
+
extractReservationReceipts,
|
|
38585
38841
|
fileExists,
|
|
38586
38842
|
findById,
|
|
38587
38843
|
findMatchingTools,
|