@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.
@@ -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 count = (existingCount ?? 0) + 1;
358
- this.categoryCounters.set(category, count);
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}_${count}]`;
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(text12, pattern) {
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(text12)) !== null) {
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 = text12.slice(Math.max(0, m.index - 40), m.index);
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(text12, makeReplacement) {
397
+ scan(text13, makeReplacement) {
398
398
  const matches = [];
399
- let redacted = text12;
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(text12) {
421
- return this.scan(text12, (category, value) => this.getPlaceholder(category, value));
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(text12) {
431
- return this.scan(text12, (category) => `[${category}]`).text;
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(text12) {
435
+ collectRegexSpans(text13) {
436
436
  const spans = [];
437
437
  this.patterns.forEach((pattern, patternIndex) => {
438
- for (const { match, index } of this.findMatches(text12, pattern)) {
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(text12, raw) {
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), text12.length));
463
- let end = Math.max(0, Math.min(Math.trunc(s.end), text12.length));
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(text12[start - 1])) start--;
466
- while (end < text12.length && isWordChar(text12[end])) 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(text12) {
475
+ async detectNerSpans(text13) {
476
476
  if (!this.nerDetector) return [];
477
477
  try {
478
- return this.normalizeNerSpans(text12, await this.nerDetector.detect(text12));
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(text12, spans, makeReplacement) {
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 = text12.slice(s.start, s.end);
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 += text12.slice(cursor, s.start) + (placeholderByStart.get(s.start) ?? "");
524
+ result += text13.slice(cursor, s.start) + (placeholderByStart.get(s.start) ?? "");
525
525
  cursor = s.end;
526
526
  }
527
- result += text12.slice(cursor);
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(text12) {
532
- const nerPromise = this.detectNerSpans(text12);
533
- const regexSpans = this.collectRegexSpans(text12);
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(text12) {
543
- if (!this.nerDetector) return this.redactText(text12);
544
- const spans = await this.detectAllSpans(text12);
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
- text12,
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(text12) {
556
- if (!this.nerDetector) return this.maskText(text12);
557
- const spans = await this.detectAllSpans(text12);
558
- return this.rebuildSpans(text12, spans, (category) => `[${category}]`).text;
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(text12) {
645
- if (!text12.includes("[")) return text12;
646
- let restored = text12;
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(text12) {
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: text12, unresolved: false };
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 = text12.replace(
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 outcome = await attemptPortalJson(
895
+ const outcome2 = await attemptPortalJson(
896
896
  { ...attemptReq, transport },
897
897
  endpoint
898
898
  );
899
- if (outcome.kind === "ok") {
899
+ if (outcome2.kind === "ok") {
900
900
  req.onAttempt?.({ attempt, ok: true });
901
- return outcome.value;
901
+ return outcome2.value;
902
902
  }
903
903
  req.onAttempt?.({
904
904
  attempt,
905
905
  ok: false,
906
- reason: outcome.code,
907
- ...outcome.httpStatus !== void 0 && { httpStatus: outcome.httpStatus }
906
+ reason: outcome2.code,
907
+ ...outcome2.httpStatus !== void 0 && { httpStatus: outcome2.httpStatus }
908
908
  });
909
909
  lastFailure = {
910
- reason: outcome.code,
911
- ...outcome.httpStatus !== void 0 && { httpStatus: outcome.httpStatus },
910
+ reason: outcome2.code,
911
+ ...outcome2.httpStatus !== void 0 && { httpStatus: outcome2.httpStatus },
912
912
  attempts: attempt
913
913
  };
914
- if (outcome.code === "invalid-json" || outcome.code === "null-completion") reinforce = true;
915
- if (outcome.kind === "terminal") {
916
- log.warn(`[${req.tag}] ${outcome.reason}`);
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}] ${outcome.reason} \u2014 attempt ${attempt}/${maxAttempts}, giving up`);
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, outcome.retryAfterMs ?? 0);
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}] ${outcome.reason} \u2014 attempt ${attempt}/${maxAttempts}, over time budget, giving up`
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}] ${outcome.reason} \u2014 attempt ${attempt}/${maxAttempts}, retrying`);
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 text12 = 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 text12;
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 text12 = await response.text();
2529
- data = text12 ? JSON.parse(text12) : {};
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(text12) {
5814
- return typeof text12 === "string" && text12.startsWith(ATTACHED_FILES_PREFIX) && text12.endsWith(ATTACHED_FILES_CLOSE_TAG);
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, projection) {
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 = projection?.skipEmbeddings === true;
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, projection) {
6048
- const baseMessage = messageToStoredRaw(message, projection);
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, projection) {
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 = projection?.skipEmbeddings === true;
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, projection) {
6107
- const baseMessage = messageRawToStoredRaw(raw, projection);
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(text12) {
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(text12)) !== null) {
6999
+ while ((match = sentenceRegex.exec(text13)) !== null) {
6999
7000
  const endIndex = match.index + match[0].length;
7000
- const sentence = text12.slice(lastIndex, endIndex).trim();
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 = text12.slice(lastIndex).trim();
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(text12, options) {
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 (text12.length <= chunkSize) {
7020
+ if (text13.length <= chunkSize) {
7020
7021
  return [
7021
7022
  {
7022
- text: text12.trim(),
7023
+ text: text13.trim(),
7023
7024
  startOffset: 0,
7024
- endOffset: text12.length
7025
+ endOffset: text13.length
7025
7026
  }
7026
7027
  ];
7027
7028
  }
7028
- const sentences = splitIntoSentences(text12);
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 = text12.indexOf(sentence, currentOffset);
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 = text12.lastIndexOf(overlapText, currentOffset);
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: text12.length
7103
+ endOffset: text13.length
7103
7104
  });
7104
7105
  }
7105
7106
  }
7106
7107
  if (chunks2.length === 0) {
7107
- const trimmedText = text12.trim();
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: text12.length
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(text12, options) {
7215
+ async function generateEmbedding(text13, options) {
7215
7216
  const total = options.totalTimeoutMs;
7216
- if (total === void 0) return embedOne(text12, options, void 0);
7217
- return withDeadline((signal) => embedOne(text12, options, signal), total, "embedding");
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(text12, options, outer) {
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(text12);
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(text12) : text12,
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(text12, f32Embedding);
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, text12) {
7594
- if (!text12 || !text12.trim()) return [];
7594
+ function wrapAsUserText(prefix, text13) {
7595
+ if (!text13 || !text13.trim()) return [];
7595
7596
  return [{ role: "user", content: [{ type: "text", text: `${prefix}
7596
- ${text12}` }] }];
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(text12) {
10470
- if (this.destroyed || !text12) return;
10584
+ push(text13) {
10585
+ if (this.destroyed || !text13) return;
10471
10586
  if (!this.enabled) {
10472
- this.callback(text12);
10587
+ this.callback(text13);
10473
10588
  return;
10474
10589
  }
10475
- this.buffer += text12;
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 text12 = this.buffer;
10601
+ const text13 = this.buffer;
10487
10602
  this.buffer = "";
10488
- this.callback(text12);
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 text12 = this.buffer.slice(0, toRelease);
10670
+ const text13 = this.buffer.slice(0, toRelease);
10556
10671
  this.buffer = this.buffer.slice(toRelease);
10557
- this.callback(text12);
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 === CONFIRM_TOOL_NAME || name === TOOL_SEARCH_TOOL_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 text12 = extractLastUserText(messages);
10979
- if (text12.length > 0) {
10980
- const embedding = await generateEmbedding(text12, {
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: text12, embedding, signal: combinedSignal });
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((text12) => {
11148
- if (emitData) emitData(text12);
11264
+ contentSmoother = new StreamSmoother((text13) => {
11265
+ if (emitData) emitData(text13);
11149
11266
  }, smoothing);
11150
- thinkingSmoother = new StreamSmoother((text12) => {
11151
- if (emitThinking) emitThinking(text12);
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((text12) => {
11657
- if (emitData) emitData(text12);
11773
+ contContentSmoother = new StreamSmoother((text13) => {
11774
+ if (emitData) emitData(text13);
11658
11775
  }, smoothing);
11659
- contThinkingSmoother = new StreamSmoother((text12) => {
11660
- if (emitThinking) emitThinking(text12);
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((text12) => {
11888
- if (onData) onData(text12);
12004
+ const contentSmoother = new StreamSmoother((text13) => {
12005
+ if (onData) onData(text13);
11889
12006
  }, smoothing);
11890
- const thinkingSmoother = new StreamSmoother((text12) => {
11891
- if (onThinking) onThinking(text12);
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 conditions = [
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
- const results = await ctx.vaultMemoryCollection.query(...conditions).unsafeFetchRaw();
15806
- return mapInBatches(
15807
- results,
15808
- (raw) => vaultMemoryRawToStored(raw, ctx.walletAddress, ctx.signMessage, ctx.embeddedWalletSigner)
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, count) {
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 <= count) out.add(n - 1);
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(text12) {
18517
- const m = text12.toLowerCase().match(TOKEN_RE);
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 outcome = await tryConsolidate(trimmed, ctx, options, prepared);
20045
- if (outcome) {
20046
- if ("done" in outcome) return outcome.done;
20047
- if ("create" in outcome) {
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 = outcome.supersede;
20051
- supersedeContent = outcome.content;
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 outcome = exhaustedEmpty ? "empty-after-retry" : filtered.length > 0 ? "extracted" : droppedAfterRedaction ? "dropped-after-redaction" : "no-facts";
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: (text12) => piiRedactor.maskText(text12)
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 (outcome !== "empty-after-retry" && failedCount === 0) {
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 text12 = extractCompletionContent(obj) ?? "";
22830
+ const text13 = extractCompletionContent(obj) ?? "";
22701
22831
  const usage = obj.usage;
22702
22832
  let structuredOutput;
22703
- if (parseSchema && text12) {
22833
+ if (parseSchema && text13) {
22704
22834
  try {
22705
- structuredOutput = JSON.parse(extractJsonCandidate(text12));
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: text12,
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 { signal, ...query } = queryOptions;
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 (text12, searchOptions) => {
23921
- const prepared = await prepare(text12, searchOptions);
24091
+ search: async (text13, searchOptions) => {
24092
+ const prepared = await prepare(text13, searchOptions);
23922
24093
  const ranked = await rankPreparedVaultCandidates(
23923
- text12,
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 enumerate = async (filters, max = Infinity) => {
24253
+ const pages = async (read, filters, max = Infinity) => {
24067
24254
  const records = [];
24068
24255
  let cursor2;
24069
24256
  do {
24070
- const page = await persistence.query({
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 enumerateIds = async (ids, filters) => (await Promise.all(
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) => enumerate({ ...filters, 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.scope ?? "private";
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: levelFromScope(scope),
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
- const order = listOptions.since ? "updated" : "created";
24239
- const filters = {
24240
- ...stateFilters(listOptions),
24241
- include_embeddings: true,
24242
- order,
24243
- ...listOptions.scopes?.length && { scopes: listOptions.scopes },
24244
- ...listOptions.factTypes?.length && { fact_types: listOptions.factTypes },
24245
- ...listOptions.visibility?.length && { visibility: listOptions.visibility },
24246
- ...listOptions.since && { updated_after: listOptions.since.getTime() }
24247
- };
24248
- const max = listOptions.limit && listOptions.limit > 0 ? listOptions.limit : Infinity;
24249
- const variants = bounded(filters, "scopes").flatMap((f) => bounded(f, "fact_types"));
24250
- if (!listOptions.memoryIds && variants.length === 1)
24251
- return (await enumerate(filters, max)).map((r) => stored(r.memory));
24252
- const fetched = await Promise.all(
24253
- variants.map(
24254
- (variant) => listOptions.memoryIds ? enumerateIds(listOptions.memoryIds, variant) : enumerate(variant, max)
24255
- )
24256
- );
24257
- const rows = [...new Map(fetched.flat().map((r) => [r.memory.memory_id, r])).values()].map((record2) => stored(record2.memory)).sort(
24258
- (a, b) => order === "updated" ? b.updatedAt.getTime() - a.updatedAt.getTime() || (a.uniqueId < b.uniqueId ? 1 : -1) : b.createdAt.getTime() - a.createdAt.getTime() || (a.uniqueId < b.uniqueId ? 1 : -1)
24259
- );
24260
- return rows.slice(0, max);
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 pages = await Promise.all(
24510
+ const pages2 = await Promise.all(
24270
24511
  chunks([...wanted], MAX_QUERY_TOPICS).map((topics) => enumerate({ topics }))
24271
24512
  );
24272
- for (const { memory } of pages.flat()) {
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.scope !== void 0) {
24316
- memory.level = levelForScopeChange(
24317
- { level: memory.level, scope: memory.scope },
24318
- patch.scope
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) => asStored(
24377
- await mutate(memoryId, "edit", (memory) => ({
24378
- ...memory,
24379
- topics: serializeTopics(mergeTopics([], topicInputs(topics, "user"))),
24380
- topics_user_managed: true,
24381
- topics_updated_at: Date.now()
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: text12, legitimateEmpty } = extractFacetText(result.structuredOutput);
24815
- if (!text12 && !legitimateEmpty && !noEvidence) {
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: text12,
25080
+ text: text13,
24826
25081
  sourceMemoryIds: result.basedOn.memoryIds,
24827
25082
  generatedAt: Date.now()
24828
25083
  };
24829
- if (options.redactor && text12) {
24830
- const redacted = await options.redactor.redactTextAsync(text12);
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 count = prior?.head === head ? prior.count + 1 : 1;
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 && count < MAX_ATTEMPTS) return false;
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 (text12) => redactor ? (await redactor.redactTextAsync(text12)).text : text12;
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, count) {
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 <= count) out.add(n - 1);
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((text12) => text12 !== null);
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, outcome) {
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(outcome) {
26279
- switch (outcome.action) {
26533
+ function describeWriteOutcome(outcome2) {
26534
+ switch (outcome2.action) {
26280
26535
  case "create":
26281
- return `Memory saved successfully (ID: ${outcome.memoryId}).`;
26536
+ return `Memory saved successfully (ID: ${outcome2.memoryId}).`;
26282
26537
  case "update":
26283
26538
  case "supersede":
26284
- return `Memory saved successfully (ID: ${outcome.memoryId}); it replaces an earlier version of this fact.`;
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: ${outcome.memoryId}); it was noted as re-observed. Nothing new was created \u2014 do not save it again.`;
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 outcome = await options.write(input);
26394
- await notifyWritten(options, input, outcome);
26395
- return describeWriteOutcome(outcome);
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(text12, x, maxW, fontSizePt, fontStyle = "normal", fontFamily = "Helvetica") {
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(text12, maxW);
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 text12 = tokensToPlainText(items[i].tokens);
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(text12, itemW);
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 text12 = tokensToPlainText(bqToken.tokens ?? []);
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(text12, quoteW);
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 text12 = tokensToPlainText(cell.tokens);
26826
- return doc.splitTextToSize(text12, cellContentW);
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 text12 = "";
27312
+ let text13 = "";
27058
27313
  for (const item of items) {
27059
27314
  if (!("str" in item)) continue;
27060
27315
  const { str, hasEOL } = item;
27061
- text12 += str + (hasEOL ? "\n" : " ");
27316
+ text13 += str + (hasEOL ? "\n" : " ");
27062
27317
  }
27063
- return text12.replace(/[ \t]+\n/g, "\n").trim();
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((text12) => text12.trim()).join("\n\n");
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((text12, index) => {
27126
- if (text12.trim().length < MIN_PAGE_TEXT_CHARS) needImage.push(index + 1);
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 text12 = (pageTexts ?? []).filter((t) => t.trim()).join("\n\n");
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 text12.trim() ? { extractedText: text12, format: "plain" } : null;
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 (!text12.trim()) {
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 && !text12.trim()) {
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: text12.trim() ? `${imageNote}
27477
+ extractedText: text13.trim() ? `${imageNote}
27223
27478
 
27224
- ${text12}` : imageNote,
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 text12 = decodeText(new Uint8Array(arrayBuffer));
27391
- if (!text12.trim()) {
27645
+ const text13 = decodeText(new Uint8Array(arrayBuffer));
27646
+ if (!text13.trim()) {
27392
27647
  return null;
27393
27648
  }
27394
27649
  return {
27395
- extractedText: text12,
27650
+ extractedText: text13,
27396
27651
  format: this.resolveFormat(file),
27397
27652
  metadata: {
27398
27653
  byteLength: arrayBuffer.byteLength,
27399
- characterCount: text12.length
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(text12) {
27462
- return text12.split(/\s+/).filter((w) => w.length > 0).length;
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(text12, limit, fileName) {
27701
- if (text12.length <= limit) return { text: text12, truncated: false };
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 = text12.charCodeAt(end - 1);
27958
+ const code = text13.charCodeAt(end - 1);
27704
27959
  if (end > 0 && code >= 55296 && code <= 56319) end--;
27705
27960
  return {
27706
- text: `${text12.slice(0, end)}${truncationMarker2(end, text12.length, fileName)}`,
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 text12 = rewriteImageNote(result, file.name, keptImages);
27871
- const fitsWhole = text12.length <= Math.min(maxExtractedCharsPerFile, remaining);
27872
- const limit = fitsWhole ? text12.length : Math.min(
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(text12.length, text12.length, file.name).length
28129
+ remaining - truncationMarker2(text13.length, text13.length, file.name).length
27875
28130
  );
27876
- const capped = truncateText(text12, Math.max(0, limit), file.name);
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(text12, maxLen) {
28120
- if (text12.length <= maxLen) return text12;
28121
- return text12.slice(0, maxLen) + `
28374
+ function truncate(text13, maxLen) {
28375
+ if (text13.length <= maxLen) return text13;
28376
+ return text13.slice(0, maxLen) + `
28122
28377
 
28123
- ... (truncated, ${text12.length - maxLen} characters omitted)`;
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 text12 = await resp.text();
28426
+ const text13 = await resp.text();
28172
28427
  if (!resp.ok) {
28173
- return `Error: GitHub API ${method} ${path} returned ${resp.status}: ${truncate(text12, 500)}`;
28428
+ return `Error: GitHub API ${method} ${path} returned ${resp.status}: ${truncate(text13, 500)}`;
28174
28429
  }
28175
28430
  try {
28176
- const data = JSON.parse(text12);
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(text12, MAX_RESPONSE_SIZE);
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(text12) {
28843
- if (/[<>{}&]/.test(text12)) return false;
28844
- if (/\n/.test(text12)) return false;
28845
- if (/^\s|\s$/.test(text12)) return false;
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(text12) {
32426
- if (!text12) return 0;
32427
- return Math.ceil(text12.length / 4);
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: text12, matches } = await redactor.redactTextAsync(prompt);
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 text12;
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(text12) {
32808
- return `${this.masked ? "m" : "r"}:${text12}`;
33062
+ key(text13) {
33063
+ return `${this.masked ? "m" : "r"}:${text13}`;
32809
33064
  }
32810
- get(text12) {
32811
- return this.inner.get(this.key(text12));
33065
+ get(text13) {
33066
+ return this.inner.get(this.key(text13));
32812
33067
  }
32813
- set(text12, value) {
32814
- this.inner.set(this.key(text12), value);
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
- (text12) => isPiiRedactor(resolvedPiiRedaction) ? resolvedPiiRedaction.maskText(text12) : text12,
33724
+ (text13) => isPiiRedactor(resolvedPiiRedaction) ? resolvedPiiRedaction.maskText(text13) : text13,
33470
33725
  [resolvedPiiRedaction]
33471
33726
  );
33472
33727
  const maskEmbeddingInput = (0, import_react6.useMemo)(
33473
- () => isPiiRedactor(resolvedPiiRedaction) ? (text12) => resolvedPiiRedaction.maskText(text12) : void 0,
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: (text12) => redactor ? redactor.maskText(text12) : text12
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 text12 = pageTexts.join("\n\n");
36531
- if (!text12.trim()) {
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
- ${text12}`;
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 text12 = await extractTextFromPdf(file.url);
36581
- if (!text12.trim()) {
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
- ${text12}`;
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 text12 = "";
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
- text12 += result[0].transcript + " ";
38371
+ text13 += result[0].transcript + " ";
38117
38372
  }
38118
38373
  }
38119
- nativeTextRef.current = text12.trim();
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,