@anuma/sdk 9.1.10 → 10.0.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.
@@ -382,15 +382,15 @@ var init_redactor = __esm({
382
382
  * (sequential, per-pattern) and the async {@link collectRegexSpans} (span)
383
383
  * paths so the detection rules live in exactly one place.
384
384
  */
385
- findMatches(text14, pattern) {
385
+ findMatches(text15, pattern) {
386
386
  const regex = new RegExp(pattern.regex.source, pattern.regex.flags);
387
387
  const found = [];
388
388
  let m;
389
- while ((m = regex.exec(text14)) !== null) {
389
+ while ((m = regex.exec(text15)) !== null) {
390
390
  const value = m[0];
391
391
  if (pattern.validate && !pattern.validate(value)) continue;
392
392
  if (pattern.context) {
393
- const before = text14.slice(Math.max(0, m.index - 40), m.index);
393
+ const before = text15.slice(Math.max(0, m.index - 40), m.index);
394
394
  if (!pattern.context.test(before)) continue;
395
395
  }
396
396
  found.push({ match: value, index: m.index });
@@ -406,9 +406,9 @@ var init_redactor = __esm({
406
406
  * earlier patterns, so an earlier (more specific) pattern claims a region
407
407
  * before a later one can — placeholders are inert and match no pattern.
408
408
  */
409
- scan(text14, makeReplacement) {
409
+ scan(text15, makeReplacement) {
410
410
  const matches = [];
411
- let redacted = text14;
411
+ let redacted = text15;
412
412
  for (const pattern of this.patterns) {
413
413
  const found = this.findMatches(redacted, pattern);
414
414
  if (found.length === 0) continue;
@@ -429,8 +429,8 @@ var init_redactor = __esm({
429
429
  * Scan and redact PII from a single text string, using numbered, reversible
430
430
  * placeholders ([EMAIL_1], …) tracked on this instance.
431
431
  */
432
- redactText(text14) {
433
- return this.scan(text14, (category, value) => this.getPlaceholder(category, value));
432
+ redactText(text15) {
433
+ return this.scan(text15, (category, value) => this.getPlaceholder(category, value));
434
434
  }
435
435
  /**
436
436
  * Mask PII with unnumbered, NON-reversible tokens ([EMAIL], [SSN], …) without
@@ -439,15 +439,15 @@ var init_redactor = __esm({
439
439
  * embeddings endpoint while staying deterministic, so the same content always
440
440
  * masks identically and search stays consistent across conversations.
441
441
  */
442
- maskText(text14) {
443
- return this.scan(text14, (category) => `[${category}]`).text;
442
+ maskText(text15) {
443
+ return this.scan(text15, (category) => `[${category}]`).text;
444
444
  }
445
445
  /** All regex matches as spans on the ORIGINAL text (priority 0). Uses the
446
446
  * same {@link findMatches} guards as the sync scan. */
447
- collectRegexSpans(text14) {
447
+ collectRegexSpans(text15) {
448
448
  const spans = [];
449
449
  this.patterns.forEach((pattern, patternIndex) => {
450
- for (const { match, index } of this.findMatches(text14, pattern)) {
450
+ for (const { match, index } of this.findMatches(text15, pattern)) {
451
451
  spans.push({
452
452
  start: index,
453
453
  end: index + match.length,
@@ -466,16 +466,16 @@ var init_redactor = __esm({
466
466
  * of "Stripe") from producing a corrupting partial placeholder like
467
467
  * `[ORG_1]e`.
468
468
  */
469
- normalizeNerSpans(text14, raw) {
469
+ normalizeNerSpans(text15, raw) {
470
470
  if (!Array.isArray(raw)) return [];
471
471
  const out = [];
472
472
  raw.forEach((s, i) => {
473
473
  if (!Number.isFinite(s.start) || !Number.isFinite(s.end)) return;
474
- let start = Math.max(0, Math.min(Math.trunc(s.start), text14.length));
475
- let end = Math.max(0, Math.min(Math.trunc(s.end), text14.length));
474
+ let start = Math.max(0, Math.min(Math.trunc(s.start), text15.length));
475
+ let end = Math.max(0, Math.min(Math.trunc(s.end), text15.length));
476
476
  if (end <= start) return;
477
- while (start > 0 && isWordChar(text14[start - 1])) start--;
478
- while (end < text14.length && isWordChar(text14[end])) end++;
477
+ while (start > 0 && isWordChar(text15[start - 1])) start--;
478
+ while (end < text15.length && isWordChar(text15[end])) end++;
479
479
  const category = String(s.category ?? "").trim();
480
480
  if (!category) return;
481
481
  out.push({ start, end, category, priority: 1, order: i });
@@ -484,10 +484,10 @@ var init_redactor = __esm({
484
484
  }
485
485
  /** Run the configured detector defensively: failures degrade to regex-only
486
486
  * (fail-open on detection, not on protection) with a one-time warning. */
487
- async detectNerSpans(text14) {
487
+ async detectNerSpans(text15) {
488
488
  if (!this.nerDetector) return [];
489
489
  try {
490
- return this.normalizeNerSpans(text14, await this.nerDetector.detect(text14));
490
+ return this.normalizeNerSpans(text15, await this.nerDetector.detect(text15));
491
491
  } catch (err) {
492
492
  this.warnNerFailure(err);
493
493
  return [];
@@ -520,11 +520,11 @@ var init_redactor = __esm({
520
520
  * in pattern then document order, matching the sync scan's numbering). The
521
521
  * string is then EMITTED in document order.
522
522
  */
523
- rebuildSpans(text14, spans, makeReplacement) {
523
+ rebuildSpans(text15, spans, makeReplacement) {
524
524
  const placeholderByStart = /* @__PURE__ */ new Map();
525
525
  const matches = [];
526
526
  for (const s of spans) {
527
- const value = text14.slice(s.start, s.end);
527
+ const value = text15.slice(s.start, s.end);
528
528
  const placeholder = makeReplacement(s.category, value);
529
529
  placeholderByStart.set(s.start, placeholder);
530
530
  matches.push({ category: s.category, original: value, placeholder });
@@ -533,16 +533,16 @@ var init_redactor = __esm({
533
533
  let result = "";
534
534
  let cursor = 0;
535
535
  for (const s of emitOrder) {
536
- result += text14.slice(cursor, s.start) + (placeholderByStart.get(s.start) ?? "");
536
+ result += text15.slice(cursor, s.start) + (placeholderByStart.get(s.start) ?? "");
537
537
  cursor = s.end;
538
538
  }
539
- result += text14.slice(cursor);
539
+ result += text15.slice(cursor);
540
540
  return { text: result, matches };
541
541
  }
542
542
  /** Merge regex + NER spans for `text` into a resolved, non-overlapping set. */
543
- async detectAllSpans(text14) {
544
- const nerPromise = this.detectNerSpans(text14);
545
- const regexSpans = this.collectRegexSpans(text14);
543
+ async detectAllSpans(text15) {
544
+ const nerPromise = this.detectNerSpans(text15);
545
+ const regexSpans = this.collectRegexSpans(text15);
546
546
  const ner = await nerPromise;
547
547
  return this.resolveOverlaps([...regexSpans, ...ner]);
548
548
  }
@@ -551,11 +551,11 @@ var init_redactor = __esm({
551
551
  * unstructured PII (the configured {@link NerDetector}) with numbered,
552
552
  * reversible placeholders. With no detector, identical to `redactText`.
553
553
  */
554
- async redactTextAsync(text14) {
555
- if (!this.nerDetector) return this.redactText(text14);
556
- const spans = await this.detectAllSpans(text14);
554
+ async redactTextAsync(text15) {
555
+ if (!this.nerDetector) return this.redactText(text15);
556
+ const spans = await this.detectAllSpans(text15);
557
557
  return this.rebuildSpans(
558
- text14,
558
+ text15,
559
559
  spans,
560
560
  (category, value) => this.getPlaceholder(category, value)
561
561
  );
@@ -564,10 +564,10 @@ var init_redactor = __esm({
564
564
  * Async counterpart to {@link maskText}: stateless `[CATEGORY]` masking over
565
565
  * regex + NER matches. With no detector, identical to `maskText`.
566
566
  */
567
- async maskTextAsync(text14) {
568
- if (!this.nerDetector) return this.maskText(text14);
569
- const spans = await this.detectAllSpans(text14);
570
- return this.rebuildSpans(text14, spans, (category) => `[${category}]`).text;
567
+ async maskTextAsync(text15) {
568
+ if (!this.nerDetector) return this.maskText(text15);
569
+ const spans = await this.detectAllSpans(text15);
570
+ return this.rebuildSpans(text15, spans, (category) => `[${category}]`).text;
571
571
  }
572
572
  /**
573
573
  * Async counterpart to {@link redactMessages}. Text parts are redacted
@@ -653,9 +653,9 @@ var init_redactor = __esm({
653
653
  * {@link restoreForStorage} instead, which tolerates the mangled echoes the
654
654
  * extraction models produce.
655
655
  */
656
- deAnonymize(text14) {
657
- if (!text14.includes("[")) return text14;
658
- let restored = text14;
656
+ deAnonymize(text15) {
657
+ if (!text15.includes("[")) return text15;
658
+ let restored = text15;
659
659
  for (const [placeholder, original] of this.placeholderToValue) {
660
660
  if (restored.includes(placeholder)) {
661
661
  restored = restored.split(placeholder).join(original);
@@ -680,15 +680,15 @@ var init_redactor = __esm({
680
680
  * - `unresolved` is derived from the lookup miss during this pass, not from a
681
681
  * regex re-scan of the output — so it can't trip over a restored value.
682
682
  */
683
- restoreForStorage(text14) {
683
+ restoreForStorage(text15) {
684
684
  if (this.storagePattern === void 0) this.storagePattern = this.buildStoragePattern();
685
685
  if (!this.storagePattern || this.placeholderToValue.size === 0) {
686
- return { text: text14, unresolved: false };
686
+ return { text: text15, unresolved: false };
687
687
  }
688
688
  this.storageLookup ?? (this.storageLookup = this.buildStorageLookup());
689
689
  const { exact, ci, ciCollisions } = this.storageLookup;
690
690
  let unresolved = false;
691
- const restored = text14.replace(
691
+ const restored = text15.replace(
692
692
  this.storagePattern,
693
693
  (match, bracketed, bare) => {
694
694
  const body = bracketed ?? bare ?? "";
@@ -1155,8 +1155,8 @@ function extractResponsesContent(body) {
1155
1155
  if (!root) return null;
1156
1156
  if (typeof root.output_text === "string" && root.output_text !== "") return root.output_text;
1157
1157
  if (!Array.isArray(root.output)) return null;
1158
- const text14 = root.output.filter((item) => asRecord(item)?.type === "message").flatMap((item) => Array.isArray(item.content) ? item.content : []).map((part) => asRecord(part)?.text).filter((t) => typeof t === "string").join("");
1159
- return text14;
1158
+ const text15 = root.output.filter((item) => asRecord(item)?.type === "message").flatMap((item) => Array.isArray(item.content) ? item.content : []).map((part) => asRecord(part)?.text).filter((t) => typeof t === "string").join("");
1159
+ return text15;
1160
1160
  }
1161
1161
  var RESPONSE_FORMAT_OK, RESPONSE_SCHEMA_OK, JSON_CONTRACT_REMINDER, RESPONSES_ONLY_MODEL_PREFIXES, CHAT_TO_RESPONSES_FIELDS, FOREIGN_ENDPOINT_SUFFIX, TIME_BUDGET_EXHAUSTED, MAX_TIMER_DELAY_MS, RETRYABLE_HTTP;
1162
1162
  var init_portalLlm = __esm({
@@ -3631,19 +3631,19 @@ function base64ToUint8Array(base64) {
3631
3631
  // src/lib/memoryEngine/vectorEncoding.ts
3632
3632
  var BYTES_PER_FLOAT32 = 4;
3633
3633
  var CANONICAL_BASE64 = /^[A-Za-z0-9+/]+={0,2}$/;
3634
- function encodeChunkVector(vector) {
3635
- const f32 = vector instanceof Float32Array ? vector : Float32Array.from(vector);
3634
+ function encodeChunkVector(vector2) {
3635
+ const f32 = vector2 instanceof Float32Array ? vector2 : Float32Array.from(vector2);
3636
3636
  return uint8ArrayToBase64(new Uint8Array(f32.buffer, f32.byteOffset, f32.byteLength));
3637
3637
  }
3638
- function decodeChunkVector(vector, onMalformed) {
3639
- if (!vector || vector.length === 0) return new Float32Array(0);
3640
- if (typeof vector !== "string") return Float32Array.from(vector);
3641
- if (vector.length % 4 !== 0 || !CANONICAL_BASE64.test(vector)) {
3638
+ function decodeChunkVector(vector2, onMalformed) {
3639
+ if (!vector2 || vector2.length === 0) return new Float32Array(0);
3640
+ if (typeof vector2 !== "string") return Float32Array.from(vector2);
3641
+ if (vector2.length % 4 !== 0 || !CANONICAL_BASE64.test(vector2)) {
3642
3642
  onMalformed?.();
3643
3643
  return new Float32Array(0);
3644
3644
  }
3645
3645
  try {
3646
- const bytes2 = base64ToUint8Array(vector);
3646
+ const bytes2 = base64ToUint8Array(vector2);
3647
3647
  if (bytes2.byteLength === 0 || bytes2.byteLength % BYTES_PER_FLOAT32 !== 0) {
3648
3648
  onMalformed?.();
3649
3649
  return new Float32Array(0);
@@ -4130,8 +4130,8 @@ var ATTACHED_FILES_OPEN_TAG = "<attached_files>";
4130
4130
  var ATTACHED_FILES_CLOSE_TAG = "</attached_files>";
4131
4131
  var ATTACHED_FILES_PREFIX = `${ATTACHED_FILES_OPEN_TAG}
4132
4132
  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.`;
4133
- function isAttachedFilesText(text14) {
4134
- return typeof text14 === "string" && text14.startsWith(ATTACHED_FILES_PREFIX) && text14.endsWith(ATTACHED_FILES_CLOSE_TAG);
4133
+ function isAttachedFilesText(text15) {
4134
+ return typeof text15 === "string" && text15.startsWith(ATTACHED_FILES_PREFIX) && text15.endsWith(ATTACHED_FILES_CLOSE_TAG);
4135
4135
  }
4136
4136
  function buildAttachedFilesText(fileContext) {
4137
4137
  return `${ATTACHED_FILES_PREFIX}
@@ -4847,7 +4847,7 @@ async function getMessageOp(ctx, uniqueId) {
4847
4847
  }
4848
4848
  return messageToStored(message, ctx.walletAddress, ctx.signMessage, ctx.embeddedWalletSigner);
4849
4849
  }
4850
- async function updateMessageEmbeddingOp(ctx, uniqueId, vector, embeddingModel) {
4850
+ async function updateMessageEmbeddingOp(ctx, uniqueId, vector2, embeddingModel) {
4851
4851
  let message;
4852
4852
  try {
4853
4853
  message = await ctx.messagesCollection.find(uniqueId);
@@ -4857,10 +4857,10 @@ async function updateMessageEmbeddingOp(ctx, uniqueId, vector, embeddingModel) {
4857
4857
  const address = ctx.walletAddress;
4858
4858
  await ctx.database.write(async () => {
4859
4859
  const key = await resolveMessageEmbeddingKey(address, message.content);
4860
- const storedVector2 = await serializeMessageEmbedding(key, vector);
4860
+ const storedVector2 = await serializeMessageEmbedding(key, vector2);
4861
4861
  await message.update((msg) => {
4862
4862
  msg._setRaw("vector", storedVector2);
4863
- if (msg.origin === "chunks_discarded" && vector.length > 0) {
4863
+ if (msg.origin === "chunks_discarded" && vector2.length > 0) {
4864
4864
  msg._setRaw("origin", "message");
4865
4865
  }
4866
4866
  msg._setRaw("embedding_model", embeddingModel);
@@ -5605,49 +5605,49 @@ init_logger();
5605
5605
  var DEFAULT_CHUNK_SIZE = 400;
5606
5606
  var DEFAULT_CHUNK_OVERLAP = 50;
5607
5607
  var DEFAULT_MIN_CHUNK_SIZE = 50;
5608
- function splitIntoSentences(text14) {
5608
+ function splitIntoSentences(text15) {
5609
5609
  const sentenceRegex = /[.!?]+[\s"')}\]]*(?=\s|$)/g;
5610
5610
  const sentences = [];
5611
5611
  let lastIndex = 0;
5612
5612
  let match;
5613
- while ((match = sentenceRegex.exec(text14)) !== null) {
5613
+ while ((match = sentenceRegex.exec(text15)) !== null) {
5614
5614
  const endIndex = match.index + match[0].length;
5615
- const sentence = text14.slice(lastIndex, endIndex).trim();
5615
+ const sentence = text15.slice(lastIndex, endIndex).trim();
5616
5616
  if (sentence) {
5617
5617
  sentences.push(sentence);
5618
5618
  }
5619
5619
  lastIndex = endIndex;
5620
5620
  }
5621
- const remaining = text14.slice(lastIndex).trim();
5621
+ const remaining = text15.slice(lastIndex).trim();
5622
5622
  if (remaining) {
5623
5623
  sentences.push(remaining);
5624
5624
  }
5625
5625
  return sentences;
5626
5626
  }
5627
- function chunkText(text14, options) {
5627
+ function chunkText(text15, options) {
5628
5628
  const {
5629
5629
  chunkSize = DEFAULT_CHUNK_SIZE,
5630
5630
  chunkOverlap: requestedOverlap = DEFAULT_CHUNK_OVERLAP,
5631
5631
  minChunkSize = DEFAULT_MIN_CHUNK_SIZE
5632
5632
  } = options ?? {};
5633
5633
  const chunkOverlap = Math.min(requestedOverlap, chunkSize - 1);
5634
- if (text14.length <= chunkSize) {
5634
+ if (text15.length <= chunkSize) {
5635
5635
  return [
5636
5636
  {
5637
- text: text14.trim(),
5637
+ text: text15.trim(),
5638
5638
  startOffset: 0,
5639
- endOffset: text14.length
5639
+ endOffset: text15.length
5640
5640
  }
5641
5641
  ];
5642
5642
  }
5643
- const sentences = splitIntoSentences(text14);
5643
+ const sentences = splitIntoSentences(text15);
5644
5644
  const chunks3 = [];
5645
5645
  let currentChunkSentences = [];
5646
5646
  let currentChunkStart = 0;
5647
5647
  let currentOffset = 0;
5648
5648
  for (let i = 0; i < sentences.length; i++) {
5649
5649
  const sentence = sentences[i];
5650
- let sentenceStart = text14.indexOf(sentence, currentOffset);
5650
+ let sentenceStart = text15.indexOf(sentence, currentOffset);
5651
5651
  if (sentenceStart === -1) {
5652
5652
  sentenceStart = currentOffset;
5653
5653
  }
@@ -5694,7 +5694,7 @@ function chunkText(text14, options) {
5694
5694
  if (overlapSentences.length > 0) {
5695
5695
  currentChunkSentences = [...overlapSentences, sentence];
5696
5696
  const overlapText = overlapSentences[0];
5697
- const overlapStart = text14.lastIndexOf(overlapText, currentOffset);
5697
+ const overlapStart = text15.lastIndexOf(overlapText, currentOffset);
5698
5698
  currentChunkStart = overlapStart === -1 ? sentenceStart : overlapStart;
5699
5699
  } else {
5700
5700
  currentChunkSentences = [sentence];
@@ -5714,18 +5714,18 @@ function chunkText(text14, options) {
5714
5714
  chunks3.push({
5715
5715
  text: chunkText2,
5716
5716
  startOffset: currentChunkStart,
5717
- endOffset: text14.length
5717
+ endOffset: text15.length
5718
5718
  });
5719
5719
  }
5720
5720
  }
5721
5721
  if (chunks3.length === 0) {
5722
- const trimmedText = text14.trim();
5722
+ const trimmedText = text15.trim();
5723
5723
  if (trimmedText.length > 0) {
5724
5724
  return [
5725
5725
  {
5726
5726
  text: trimmedText,
5727
5727
  startOffset: 0,
5728
- endOffset: text14.length
5728
+ endOffset: text15.length
5729
5729
  }
5730
5730
  ];
5731
5731
  }
@@ -6417,8 +6417,8 @@ var createClient = (config = {}) => {
6417
6417
  data = await response[parseAs]();
6418
6418
  break;
6419
6419
  case "json": {
6420
- const text14 = await response.text();
6421
- data = text14 ? JSON.parse(text14) : {};
6420
+ const text15 = await response.text();
6421
+ data = text15 ? JSON.parse(text15) : {};
6422
6422
  break;
6423
6423
  }
6424
6424
  case "stream":
@@ -6706,22 +6706,22 @@ function embeddingErrorFrom(response) {
6706
6706
  const message = typeof response.error === "object" && response.error && "error" in response.error ? response.error.error : "API embedding failed";
6707
6707
  return new EmbeddingHttpError(message, response.response?.status);
6708
6708
  }
6709
- async function generateEmbedding(text14, options) {
6709
+ async function generateEmbedding(text15, options) {
6710
6710
  const total = options.totalTimeoutMs;
6711
- if (total === void 0) return embedOne(text14, options, void 0);
6712
- return withDeadline((signal) => embedOne(text14, options, signal), total, "embedding");
6711
+ if (total === void 0) return embedOne(text15, options, void 0);
6712
+ return withDeadline((signal) => embedOne(text15, options, signal), total, "embedding");
6713
6713
  }
6714
6714
  var { inFlightByCache, cachedEmbeddingModels } = getEmbeddingCacheState();
6715
- async function embedOne(text14, options, outer) {
6715
+ async function embedOne(text15, options, outer) {
6716
6716
  const { cache } = options;
6717
- if (!cache) return Array.from(await requestEmbedding(text14, options, outer));
6717
+ if (!cache) return Array.from(await requestEmbedding(text15, options, outer));
6718
6718
  const model = options.model ?? DEFAULT_API_EMBEDDING_MODEL;
6719
- const cached = cache.get(text14);
6719
+ const cached = cache.get(text15);
6720
6720
  const cachedModel = cached && cachedEmbeddingModels.get(cached);
6721
6721
  if (cached && (cachedModel === void 0 || cachedModel === model)) return Array.from(cached);
6722
6722
  const inFlight = inFlightByCache.get(cache) ?? /* @__PURE__ */ new Map();
6723
6723
  inFlightByCache.set(cache, inFlight);
6724
- const requestKey = JSON.stringify([model, text14]);
6724
+ const requestKey = JSON.stringify([model, text15]);
6725
6725
  const pending = inFlight.get(requestKey);
6726
6726
  if (pending) {
6727
6727
  try {
@@ -6730,18 +6730,18 @@ async function embedOne(text14, options, outer) {
6730
6730
  if (outer?.aborted) throw err;
6731
6731
  }
6732
6732
  }
6733
- const request = requestEmbedding(text14, options, outer);
6733
+ const request = requestEmbedding(text15, options, outer);
6734
6734
  inFlight.set(requestKey, request);
6735
6735
  try {
6736
6736
  const embedding2 = await request;
6737
6737
  cachedEmbeddingModels.set(embedding2, model);
6738
- cache.set(text14, embedding2);
6738
+ cache.set(text15, embedding2);
6739
6739
  return Array.from(embedding2);
6740
6740
  } finally {
6741
6741
  if (inFlight.get(requestKey) === request) inFlight.delete(requestKey);
6742
6742
  }
6743
6743
  }
6744
- async function requestEmbedding(text14, options, outer) {
6744
+ async function requestEmbedding(text15, options, outer) {
6745
6745
  const { baseUrl = BASE_URL, model } = options;
6746
6746
  const timeoutMs = options.timeoutMs ?? DEFAULT_EMBEDDING_REQUEST_TIMEOUT_MS;
6747
6747
  const headers = {
@@ -6753,7 +6753,7 @@ async function requestEmbedding(text14, options, outer) {
6753
6753
  (signal) => postApiV1Embeddings({
6754
6754
  baseUrl,
6755
6755
  body: {
6756
- input: options.maskInput ? options.maskInput(text14) : text14,
6756
+ input: options.maskInput ? options.maskInput(text15) : text15,
6757
6757
  model: model ?? DEFAULT_API_EMBEDDING_MODEL
6758
6758
  },
6759
6759
  headers,
@@ -7014,10 +7014,10 @@ async function chunkAndEmbedMessage(ctx, messageId, options) {
7014
7014
  }
7015
7015
  const textChunks = chunkText(message.content, options);
7016
7016
  const chunkTexts = textChunks.map((c) => c.text);
7017
- const embeddings = await generateEmbeddings(chunkTexts, options);
7017
+ const embeddings2 = await generateEmbeddings(chunkTexts, options);
7018
7018
  const messageChunks = textChunks.map((chunk, i) => ({
7019
7019
  text: chunk.text,
7020
- vector: embeddings[i],
7020
+ vector: embeddings2[i],
7021
7021
  startOffset: chunk.startOffset,
7022
7022
  endOffset: chunk.endOffset
7023
7023
  }));
@@ -7132,13 +7132,13 @@ async function chunkAndEmbedAllMessages(ctx, options, filter) {
7132
7132
  if (shortMessages.length > 0) {
7133
7133
  try {
7134
7134
  const texts = shortMessages.map((m) => m.content);
7135
- const embeddings = await generateEmbeddings(texts, options);
7135
+ const embeddings2 = await generateEmbeddings(texts, options);
7136
7136
  for (let i = 0; i < shortMessages.length; i++) {
7137
7137
  try {
7138
7138
  await updateMessageEmbeddingOp(
7139
7139
  ctx,
7140
7140
  shortMessages[i].uniqueId,
7141
- embeddings[i],
7141
+ embeddings2[i],
7142
7142
  embeddingModel
7143
7143
  );
7144
7144
  embeddedCount++;
@@ -7157,10 +7157,10 @@ async function chunkAndEmbedAllMessages(ctx, options, filter) {
7157
7157
  for (const msg of longMessages) {
7158
7158
  try {
7159
7159
  const chunkTexts = msg.textChunks.map((c) => c.text);
7160
- const embeddings = await generateEmbeddings(chunkTexts, options);
7160
+ const embeddings2 = await generateEmbeddings(chunkTexts, options);
7161
7161
  const messageChunks = msg.textChunks.map((chunk, i) => ({
7162
7162
  text: chunk.text,
7163
- vector: embeddings[i],
7163
+ vector: embeddings2[i],
7164
7164
  startOffset: chunk.startOffset,
7165
7165
  endOffset: chunk.endOffset
7166
7166
  }));
@@ -7179,10 +7179,10 @@ var cryptoPriceCentroid = [0.025576787463333337, 0.0017598020599999997, -0.01339
7179
7179
  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];
7180
7180
 
7181
7181
  // src/lib/chat/preProcessor.ts
7182
- function wrapAsUserText(prefix, text14) {
7183
- if (!text14 || !text14.trim()) return [];
7182
+ function wrapAsUserText(prefix, text15) {
7183
+ if (!text15 || !text15.trim()) return [];
7184
7184
  return [{ role: "user", content: [{ type: "text", text: `${prefix}
7185
- ${text14}` }] }];
7185
+ ${text15}` }] }];
7186
7186
  }
7187
7187
 
7188
7188
  // src/lib/chat/cryptoPriceClassifier.ts
@@ -7202,8 +7202,8 @@ async function classifyCryptoPrice(prompt, options) {
7202
7202
  }
7203
7203
  async function classifyCryptoPriceBatch(prompts, options) {
7204
7204
  const { margin = 0.02, ...embeddingOptions } = options;
7205
- const embeddings = await generateEmbeddings(prompts, embeddingOptions);
7206
- return embeddings.map((emb) => classify(emb, margin));
7205
+ const embeddings2 = await generateEmbeddings(prompts, embeddingOptions);
7206
+ return embeddings2.map((emb) => classify(emb, margin));
7207
7207
  }
7208
7208
  function createCryptoPricePreProcessor(options = {}) {
7209
7209
  const margin = options.margin ?? 0.02;
@@ -7948,7 +7948,7 @@ function findMatchingTools(promptEmbeddings, tools, options) {
7948
7948
  if (!tools || tools.length === 0) {
7949
7949
  return [];
7950
7950
  }
7951
- const embeddings = Array.isArray(promptEmbeddings[0]) ? promptEmbeddings : [promptEmbeddings];
7951
+ const embeddings2 = Array.isArray(promptEmbeddings[0]) ? promptEmbeddings : [promptEmbeddings];
7952
7952
  const results = [];
7953
7953
  for (const tool of tools) {
7954
7954
  if (!tool.embedding || tool.embedding.length === 0) {
@@ -7956,7 +7956,7 @@ function findMatchingTools(promptEmbeddings, tools, options) {
7956
7956
  }
7957
7957
  try {
7958
7958
  let maxSimilarity = -Infinity;
7959
- for (const embedding2 of embeddings) {
7959
+ for (const embedding2 of embeddings2) {
7960
7960
  const similarity = cosineSimilarity(embedding2, tool.embedding);
7961
7961
  if (similarity > maxSimilarity) {
7962
7962
  maxSimilarity = similarity;
@@ -7987,12 +7987,12 @@ function scoreTools(promptEmbeddings, tools) {
7987
7987
  const scores = /* @__PURE__ */ new Map();
7988
7988
  if (!promptEmbeddings || promptEmbeddings.length === 0) return scores;
7989
7989
  if (!tools || tools.length === 0) return scores;
7990
- const embeddings = Array.isArray(promptEmbeddings[0]) ? promptEmbeddings : [promptEmbeddings];
7990
+ const embeddings2 = Array.isArray(promptEmbeddings[0]) ? promptEmbeddings : [promptEmbeddings];
7991
7991
  for (const tool of tools) {
7992
7992
  if (!tool.embedding || tool.embedding.length === 0) continue;
7993
7993
  let maxSimilarity = -Infinity;
7994
7994
  try {
7995
- for (const embedding2 of embeddings) {
7995
+ for (const embedding2 of embeddings2) {
7996
7996
  const similarity = cosineSimilarity(embedding2, tool.embedding);
7997
7997
  if (similarity > maxSimilarity) maxSimilarity = similarity;
7998
7998
  }
@@ -8203,13 +8203,13 @@ function createServerToolsFilter(options = {}) {
8203
8203
  const exclude = new Set(options.excludeTools ?? []);
8204
8204
  const sets = options.toolSets ?? [];
8205
8205
  const matchOpts = options.matchOptions;
8206
- const filter = (embeddings, tools) => {
8207
- const matches = findMatchingTools(embeddings, tools, matchOpts);
8206
+ const filter = (embeddings2, tools) => {
8207
+ const matches = findMatchingTools(embeddings2, tools, matchOpts);
8208
8208
  if (matches.length === 0) return [];
8209
8209
  const matchedNames = new Set(matches.map((m) => m.tool.name));
8210
8210
  let finalNames;
8211
8211
  if (sets.length > 0) {
8212
- const scores = scoreTools(embeddings, tools);
8212
+ const scores = scoreTools(embeddings2, tools);
8213
8213
  const selectedScores = new Map(
8214
8214
  [...scores].filter(([name]) => matchedNames.has(name) && !exclude.has(name))
8215
8215
  );
@@ -10295,13 +10295,13 @@ var StreamSmoother = class {
10295
10295
  /**
10296
10296
  * Add text to the buffer. If smoothing is disabled, passes through immediately.
10297
10297
  */
10298
- push(text14) {
10299
- if (this.destroyed || !text14) return;
10298
+ push(text15) {
10299
+ if (this.destroyed || !text15) return;
10300
10300
  if (!this.enabled) {
10301
- this.callback(text14);
10301
+ this.callback(text15);
10302
10302
  return;
10303
10303
  }
10304
- this.buffer += text14;
10304
+ this.buffer += text15;
10305
10305
  this.ensureTimer();
10306
10306
  }
10307
10307
  /**
@@ -10312,9 +10312,9 @@ var StreamSmoother = class {
10312
10312
  if (this.destroyed) return;
10313
10313
  this.stopTimer();
10314
10314
  if (this.buffer.length > 0) {
10315
- const text14 = this.buffer;
10315
+ const text15 = this.buffer;
10316
10316
  this.buffer = "";
10317
- this.callback(text14);
10317
+ this.callback(text15);
10318
10318
  }
10319
10319
  this.resolveDrain();
10320
10320
  }
@@ -10381,9 +10381,9 @@ var StreamSmoother = class {
10381
10381
  const currentSpeed = this.getCurrentSpeed(elapsed);
10382
10382
  const charsThisTick = Math.max(1, Math.round(currentSpeed * (TICK_INTERVAL / 1e3)));
10383
10383
  const toRelease = Math.min(charsThisTick, this.buffer.length);
10384
- const text14 = this.buffer.slice(0, toRelease);
10384
+ const text15 = this.buffer.slice(0, toRelease);
10385
10385
  this.buffer = this.buffer.slice(toRelease);
10386
- this.callback(text14);
10386
+ this.callback(text15);
10387
10387
  if (this.buffer.length === 0) {
10388
10388
  this.stopTimer();
10389
10389
  this.resolveDrain();
@@ -10828,9 +10828,9 @@ async function runToolLoop(options) {
10828
10828
  messages = await redactBatch(messages);
10829
10829
  if (preProcessors?.length) {
10830
10830
  try {
10831
- const text14 = extractLastUserText(messages);
10832
- if (text14.length > 0) {
10833
- const embedding2 = await generateEmbedding(text14, {
10831
+ const text15 = extractLastUserText(messages);
10832
+ if (text15.length > 0) {
10833
+ const embedding2 = await generateEmbedding(text15, {
10834
10834
  apiKey: headers?.["X-API-Key"],
10835
10835
  getToken: token ? () => Promise.resolve(token) : void 0,
10836
10836
  baseUrl
@@ -10838,7 +10838,7 @@ async function runToolLoop(options) {
10838
10838
  const results = await Promise.all(
10839
10839
  preProcessors.map(async (p) => {
10840
10840
  try {
10841
- return await p({ prompt: text14, embedding: embedding2, signal: combinedSignal });
10841
+ return await p({ prompt: text15, embedding: embedding2, signal: combinedSignal });
10842
10842
  } catch (err) {
10843
10843
  console.warn("[runToolLoop] pre-processor failed:", err);
10844
10844
  return void 0;
@@ -10997,11 +10997,11 @@ async function runToolLoop(options) {
10997
10997
  }
10998
10998
  });
10999
10999
  accumulator = createStreamAccumulator(model || void 0);
11000
- contentSmoother = new StreamSmoother((text14) => {
11001
- if (emitData) emitData(text14);
11000
+ contentSmoother = new StreamSmoother((text15) => {
11001
+ if (emitData) emitData(text15);
11002
11002
  }, smoothing);
11003
- thinkingSmoother = new StreamSmoother((text14) => {
11004
- if (emitThinking) emitThinking(text14);
11003
+ thinkingSmoother = new StreamSmoother((text15) => {
11004
+ if (emitThinking) emitThinking(text15);
11005
11005
  }, smoothing);
11006
11006
  let chunksEmittedDownstream = false;
11007
11007
  try {
@@ -11506,11 +11506,11 @@ Executing tool: ${toolInfo}
11506
11506
  }
11507
11507
  });
11508
11508
  currentAccumulator = createStreamAccumulator(model || void 0);
11509
- contContentSmoother = new StreamSmoother((text14) => {
11510
- if (emitData) emitData(text14);
11509
+ contContentSmoother = new StreamSmoother((text15) => {
11510
+ if (emitData) emitData(text15);
11511
11511
  }, smoothing);
11512
- contThinkingSmoother = new StreamSmoother((text14) => {
11513
- if (emitThinking) emitThinking(text14);
11512
+ contThinkingSmoother = new StreamSmoother((text15) => {
11513
+ if (emitThinking) emitThinking(text15);
11514
11514
  }, smoothing);
11515
11515
  let chunksEmittedDownstream = false;
11516
11516
  try {
@@ -11737,11 +11737,11 @@ async function resumeStream(options) {
11737
11737
  } = options;
11738
11738
  const strategy = getStrategy(handle.apiType);
11739
11739
  const accumulator = createStreamAccumulator(handle.model || void 0);
11740
- const contentSmoother = new StreamSmoother((text14) => {
11741
- if (onData) onData(text14);
11740
+ const contentSmoother = new StreamSmoother((text15) => {
11741
+ if (onData) onData(text15);
11742
11742
  }, smoothing);
11743
- const thinkingSmoother = new StreamSmoother((text14) => {
11744
- if (onThinking) onThinking(text14);
11743
+ const thinkingSmoother = new StreamSmoother((text15) => {
11744
+ if (onThinking) onThinking(text15);
11745
11745
  }, smoothing);
11746
11746
  const idleController = new AbortController();
11747
11747
  let watchdog;
@@ -11881,8 +11881,8 @@ async function classifyStockPrice(prompt, options) {
11881
11881
  }
11882
11882
  async function classifyStockPriceBatch(prompts, options) {
11883
11883
  const { margin = 0.02, ...embeddingOptions } = options;
11884
- const embeddings = await generateEmbeddings(prompts, embeddingOptions);
11885
- return embeddings.map((emb) => classify2(emb, margin));
11884
+ const embeddings2 = await generateEmbeddings(prompts, embeddingOptions);
11885
+ return embeddings2.map((emb) => classify2(emb, margin));
11886
11886
  }
11887
11887
  function createStockPricePreProcessor(options = {}) {
11888
11888
  const margin = options.margin ?? 0.02;
@@ -11921,8 +11921,8 @@ async function classifyWeather(prompt, options) {
11921
11921
  }
11922
11922
  async function classifyWeatherBatch(prompts, options) {
11923
11923
  const { margin = 0.02, ...embeddingOptions } = options;
11924
- const embeddings = await generateEmbeddings(prompts, embeddingOptions);
11925
- return embeddings.map((emb) => classify3(emb, margin));
11924
+ const embeddings2 = await generateEmbeddings(prompts, embeddingOptions);
11925
+ return embeddings2.map((emb) => classify3(emb, margin));
11926
11926
  }
11927
11927
  function createWeatherPreProcessor(options = {}) {
11928
11928
  const margin = options.margin ?? 0.02;
@@ -11961,8 +11961,8 @@ async function classifyWebSearch(prompt, options) {
11961
11961
  }
11962
11962
  async function classifyWebSearchBatch(prompts, options) {
11963
11963
  const { margin = 0.02, ...embeddingOptions } = options;
11964
- const embeddings = await generateEmbeddings(prompts, embeddingOptions);
11965
- return embeddings.map((emb) => classify4(emb, margin));
11964
+ const embeddings2 = await generateEmbeddings(prompts, embeddingOptions);
11965
+ return embeddings2.map((emb) => classify4(emb, margin));
11966
11966
  }
11967
11967
  function createWebSearchPreProcessor(options = {}) {
11968
11968
  const margin = options.margin ?? 0.02;
@@ -12345,6 +12345,7 @@ function createNearbyRequest(options, apiPath = "/api/private-memories") {
12345
12345
  }
12346
12346
  throw error;
12347
12347
  }
12348
+ if (response.status === 204) return null;
12348
12349
  return await response.json();
12349
12350
  } catch (error) {
12350
12351
  if (timedOut) throw new RemoteMemoryError("Nearby request timed out", 408, "timeout");
@@ -12720,6 +12721,16 @@ var ChatStoreError = class extends Error {
12720
12721
  // src/lib/chatStore/remote.ts
12721
12722
  var kinds = /* @__PURE__ */ new Set(["conversation", "message", "summary", "project", "memory_links"]);
12722
12723
  var cipherPattern = /^enc:v\d+:(?:[0-9a-f]{2}){28,}$/i;
12724
+ var maxPayload = 2 * 1024 * 1024;
12725
+ var storedDims = 1536;
12726
+ var maxRequestCiphertext = 8 * 1024 * 1024;
12727
+ var maxGetRefs = 50;
12728
+ var maxImportRecords = 100;
12729
+ var maxVerifyRevisions = 1e3;
12730
+ var maxChunksPerRecord = 16;
12731
+ var maxChunksPerRequest = 200;
12732
+ var maxAttachmentBytes = 50 * 1024 * 1024;
12733
+ var attachmentIdPattern = /^[0-9a-f]{32}$/;
12723
12734
  var metadata = [
12724
12735
  "kind",
12725
12736
  "id",
@@ -12762,7 +12773,62 @@ function validRecord(value) {
12762
12773
  ))
12763
12774
  return false;
12764
12775
  const root = value.kind === "conversation" || value.kind === "project";
12765
- return root ? value.conversationId === "" && value.sortKey === 0 : id(value.conversationId);
12776
+ return root ? value.conversationId === "" : id(value.conversationId);
12777
+ }
12778
+ function embeddings(write) {
12779
+ if (write.embeddings === void 0) return true;
12780
+ return Array.isArray(write.embeddings) && !write.record.isDeleted && (write.record.kind === "message" || write.record.kind === "summary") && write.embeddings.length <= maxChunksPerRecord && (write.embeddingModel === void 0 || typeof write.embeddingModel === "string" && write.embeddingModel.length <= 256) && Array.from({ length: write.embeddings.length }, (_, i) => i).every(
12781
+ (i) => vector(write.embeddings?.[i])
12782
+ );
12783
+ }
12784
+ function vector(v) {
12785
+ if (!Array.isArray(v) || v.length !== 1536 && v.length !== 4096) return false;
12786
+ let nonZero = false;
12787
+ for (let i = 0; i < v.length; i++) {
12788
+ const x = v[i];
12789
+ if (typeof x !== "number" || !Number.isFinite(x)) return false;
12790
+ if (i < storedDims && x !== 0) nonZero = true;
12791
+ }
12792
+ return nonZero;
12793
+ }
12794
+ function vectorFields(write) {
12795
+ return {
12796
+ ...write.embeddings !== void 0 ? { embeddings: write.embeddings.map((v) => v.slice(0, storedDims)) } : {},
12797
+ ...write.embeddingModel !== void 0 ? { embedding_model: write.embeddingModel } : {}
12798
+ };
12799
+ }
12800
+ function text2(value) {
12801
+ return typeof value === "string";
12802
+ }
12803
+ function timestamp(value) {
12804
+ return typeof value === "string" && Number.isFinite(Date.parse(value));
12805
+ }
12806
+ function presigned(value) {
12807
+ if (!object(value) || !text2(value.url) || !/^https:\/\//.test(value.url) || !text2(value.method) || !object(value.headers) || !Object.values(value.headers).every(text2) || !timestamp(value.expires_at))
12808
+ invalid();
12809
+ return {
12810
+ url: value.url,
12811
+ method: value.method,
12812
+ headers: value.headers,
12813
+ expiresAt: value.expires_at
12814
+ };
12815
+ }
12816
+ function attachment(value) {
12817
+ if (!object(value) || !text2(value.attachment_id) || !attachmentIdPattern.test(value.attachment_id) || !integer(value.size_bytes, 1) || value.state !== "pending" && value.state !== "committed" || value.owner_kind !== void 0 && value.owner_kind !== "message" && value.owner_kind !== "summary" || value.owner_id !== void 0 && !id(value.owner_id) || !timestamp(value.created_at) || value.committed_at !== void 0 && !timestamp(value.committed_at))
12818
+ invalid();
12819
+ return {
12820
+ id: value.attachment_id,
12821
+ sizeBytes: value.size_bytes,
12822
+ state: value.state,
12823
+ ...value.owner_kind !== void 0 ? { ownerKind: value.owner_kind } : {},
12824
+ ...value.owner_id !== void 0 ? { ownerId: value.owner_id } : {},
12825
+ createdAt: value.created_at,
12826
+ ...value.committed_at !== void 0 ? { committedAt: value.committed_at } : {}
12827
+ };
12828
+ }
12829
+ function ref(value) {
12830
+ if (!object(value) || !text2(value.kind) || !kinds.has(value.kind) || !id(value.id)) invalid();
12831
+ return { kind: value.kind, id: value.id };
12766
12832
  }
12767
12833
  function sameMetadata(a, b) {
12768
12834
  return metadata.every((key) => a[key] === b[key]);
@@ -12818,8 +12884,11 @@ async function createRemoteChatStore(options) {
12818
12884
  isDeleted: r.is_deleted,
12819
12885
  data: {}
12820
12886
  };
12821
- if (!validRecord(plain) || typeof r.payload !== "string" || r.payload.length > 2 * 1024 * 1024 || !cipherPattern.test(r.payload))
12887
+ if (!validRecord(plain) || typeof r.payload !== "string" || r.payload.length > maxPayload)
12822
12888
  invalid();
12889
+ if (plain.isDeleted && r.payload === "")
12890
+ return { record: plain, version: value.version, serverUpdatedAt: value.server_updated_at };
12891
+ if (!cipherPattern.test(r.payload)) invalid();
12823
12892
  const envelope = JSON.parse(await decrypt(r.payload));
12824
12893
  if (!object(envelope) || envelope.schema !== 1 || envelope.account_id !== accountId || envelope.key_id !== keyId || !validRecord(envelope.record) || !sameMetadata(plain, envelope.record))
12825
12894
  invalid();
@@ -12829,30 +12898,46 @@ async function createRemoteChatStore(options) {
12829
12898
  serverUpdatedAt: value.server_updated_at
12830
12899
  };
12831
12900
  };
12832
- const putMany = async (writes, signal) => {
12833
- if (!Array.isArray(writes) || writes.length < 1 || writes.length > 25) invalid();
12901
+ const seal = async (record2, signal) => {
12902
+ if (record2.isDeleted) return "";
12903
+ const payload = await encrypt(
12904
+ JSON.stringify({ schema: 1, account_id: accountId, key_id: keyId, record: record2 })
12905
+ );
12906
+ signal?.throwIfAborted();
12907
+ if (!cipherPattern.test(payload) || payload.length > maxPayload) invalid();
12908
+ return payload;
12909
+ };
12910
+ const capture = (items, max, signal) => {
12911
+ if (!Array.isArray(items) || items.length < 1 || items.length > max) invalid();
12834
12912
  const seen = /* @__PURE__ */ new Set();
12835
- const captured = writes.map((write) => {
12913
+ let chunks3 = 0;
12914
+ return items.map((item) => {
12836
12915
  signal?.throwIfAborted();
12837
- if (!validRecord(write.record) || !integer(write.expectedVersion)) invalid();
12838
- const record2 = JSON.parse(JSON.stringify(write.record));
12839
- const recordKey = `${record2.kind}/${record2.id}`;
12916
+ if (!validRecord(item.record) || !embeddings(item)) invalid();
12917
+ chunks3 += item.embeddings?.length ?? 0;
12918
+ if (chunks3 > maxChunksPerRequest) invalid();
12919
+ const copy = JSON.parse(JSON.stringify(item));
12920
+ const recordKey = `${copy.record.kind}/${copy.record.id}`;
12840
12921
  if (seen.has(recordKey)) invalid();
12841
12922
  seen.add(recordKey);
12842
- return { record: record2, expectedVersion: write.expectedVersion };
12923
+ return copy;
12843
12924
  });
12925
+ };
12926
+ const putMany = async (writes, signal) => {
12927
+ if (Array.isArray(writes) && writes.some((w) => !integer(w.expectedVersion)))
12928
+ invalid();
12929
+ const captured = capture(writes, 25, signal);
12844
12930
  let bytes2 = 0;
12845
12931
  const prepared = [];
12846
12932
  for (const write of captured) {
12847
- const record2 = write.record;
12848
- const payload = await encrypt(
12849
- JSON.stringify({ schema: 1, account_id: accountId, key_id: keyId, record: record2 })
12850
- );
12851
- signal?.throwIfAborted();
12852
- if (!cipherPattern.test(payload) || payload.length > 2 * 1024 * 1024) invalid();
12933
+ const payload = await seal(write.record, signal);
12853
12934
  bytes2 += payload.length;
12854
- if (bytes2 > 8 * 1024 * 1024) invalid();
12855
- prepared.push({ record: wire(record2, payload), expected_version: write.expectedVersion });
12935
+ if (bytes2 > maxRequestCiphertext) invalid();
12936
+ prepared.push({
12937
+ record: wire(write.record, payload),
12938
+ expected_version: write.expectedVersion,
12939
+ ...vectorFields(write)
12940
+ });
12856
12941
  }
12857
12942
  const result = await request(
12858
12943
  "/records/batch",
@@ -12867,7 +12952,8 @@ async function createRemoteChatStore(options) {
12867
12952
  const out = [];
12868
12953
  for (let i = 0; i < result.items.length; i++) {
12869
12954
  const value = result.items[i];
12870
- if (!object(value) || value.version !== prepared[i].expected_version + 1 || !object(value.record) || value.record.payload !== prepared[i].record.payload)
12955
+ const deleted = prepared[i].record.is_deleted;
12956
+ if (!object(value) || !object(value.record) || value.record.kind !== prepared[i].record.kind || value.record.id !== prepared[i].record.id || value.record.payload !== prepared[i].record.payload || (deleted ? value.record.is_deleted !== true || !integer(value.version, 1) : value.version !== prepared[i].expected_version + 1))
12871
12957
  invalid();
12872
12958
  out.push(await decode(value));
12873
12959
  }
@@ -12896,7 +12982,7 @@ async function createRemoteChatStore(options) {
12896
12982
  async list(query) {
12897
12983
  const limit = query.limit ?? 20;
12898
12984
  const parent = query.conversationId ?? "";
12899
- if (!kinds.has(query.kind) || !integer(limit, 1) || query.includeDeleted !== void 0 && typeof query.includeDeleted !== "boolean" || limit > 50 || (query.cursor?.length ?? 0) > 2048 || (query.kind === "conversation" || query.kind === "project" ? parent !== "" : !id(parent)))
12985
+ if (!kinds.has(query.kind) || !integer(limit, 1) || query.includeDeleted !== void 0 && typeof query.includeDeleted !== "boolean" || limit > (query.kind === "message" ? 200 : 50) || (query.cursor?.length ?? 0) > 2048 || (query.kind === "conversation" || query.kind === "project" ? parent !== "" : !id(parent)))
12900
12986
  invalid();
12901
12987
  const params = new URLSearchParams({
12902
12988
  account_id: String(accountId),
@@ -12907,7 +12993,7 @@ async function createRemoteChatStore(options) {
12907
12993
  });
12908
12994
  if (query.cursor) params.set("cursor", query.cursor);
12909
12995
  const value = await request(`/records?${params}`, {}, query.signal);
12910
- if (!object(value) || !Array.isArray(value.items) || value.items.length > limit || value.next_cursor !== void 0 && (typeof value.next_cursor !== "string" || value.next_cursor.length > 2048))
12996
+ if (!object(value) || !Array.isArray(value.items) || value.items.length > limit || value.next_cursor !== void 0 && (typeof value.next_cursor !== "string" || value.next_cursor.length > 2048) || value.total !== void 0 && !integer(value.total))
12911
12997
  invalid();
12912
12998
  const items = [];
12913
12999
  for (const item of value.items) {
@@ -12917,11 +13003,258 @@ async function createRemoteChatStore(options) {
12917
13003
  items.push(result);
12918
13004
  }
12919
13005
  query.signal?.throwIfAborted();
12920
- return { items, ...value.next_cursor ? { nextCursor: value.next_cursor } : {} };
13006
+ return {
13007
+ items,
13008
+ ...value.next_cursor ? { nextCursor: value.next_cursor } : {},
13009
+ ...value.total !== void 0 ? { total: value.total } : {}
13010
+ };
13011
+ },
13012
+ putMany,
13013
+ async getMany(refs, signal) {
13014
+ if (!Array.isArray(refs)) invalid();
13015
+ const wanted = /* @__PURE__ */ new Map();
13016
+ for (const r of refs) {
13017
+ const checked = ref(r);
13018
+ wanted.set(`${checked.kind}/${checked.id}`, checked);
13019
+ }
13020
+ const found = /* @__PURE__ */ new Map();
13021
+ let pending = [...wanted.values()];
13022
+ while (pending.length > 0) {
13023
+ const batch = pending.slice(0, maxGetRefs);
13024
+ pending = pending.slice(maxGetRefs);
13025
+ const value = await request(
13026
+ "/records/get",
13027
+ { method: "POST", body: JSON.stringify({ account_id: accountId, refs: batch }) },
13028
+ signal
13029
+ );
13030
+ if (!object(value) || !Array.isArray(value.items) || value.remaining !== void 0 && !Array.isArray(value.remaining))
13031
+ invalid();
13032
+ const asked = new Set(batch.map((r) => `${r.kind}/${r.id}`));
13033
+ for (const item of value.items) {
13034
+ const snapshot = await decode(item);
13035
+ const key = `${snapshot.record.kind}/${snapshot.record.id}`;
13036
+ if (!asked.has(key) || found.has(key)) invalid();
13037
+ found.set(key, snapshot);
13038
+ }
13039
+ const remaining = (value.remaining ?? []).map(ref);
13040
+ if (remaining.some((r) => !asked.has(`${r.kind}/${r.id}`) || found.has(`${r.kind}/${r.id}`)))
13041
+ invalid();
13042
+ if (remaining.length > 0 && value.items.length === 0) invalid();
13043
+ pending = [...remaining, ...pending];
13044
+ }
13045
+ signal?.throwIfAborted();
13046
+ return [...wanted.keys()].flatMap((key) => {
13047
+ const snapshot = found.get(key);
13048
+ return snapshot ? [snapshot] : [];
13049
+ });
13050
+ },
13051
+ async account(signal) {
13052
+ const value = await request("/account", {}, signal);
13053
+ if (!object(value) || value.account_id !== accountId || !text2(value.key_id) || value.state !== "none" && value.state !== "migrating" && value.state !== "active" || !integer(value.record_count) || !integer(value.storage_bytes) || !integer(value.vector_count))
13054
+ invalid();
13055
+ if (value.key_id && value.key_id !== keyId)
13056
+ throw new ChatStoreError("Canonical chat key does not match", 409, "key_mismatch");
13057
+ const out = {
13058
+ keyId: value.key_id,
13059
+ state: value.state,
13060
+ recordCount: value.record_count,
13061
+ storageBytes: value.storage_bytes,
13062
+ vectorCount: value.vector_count
13063
+ };
13064
+ return out;
12921
13065
  },
12922
- putMany
13066
+ async importRecords(records, signal) {
13067
+ const captured = capture(records, maxImportRecords, signal);
13068
+ let bytes2 = 0;
13069
+ const prepared = [];
13070
+ for (const item of captured) {
13071
+ const payload = await seal(item.record, signal);
13072
+ bytes2 += payload.length;
13073
+ if (bytes2 > maxRequestCiphertext) invalid();
13074
+ prepared.push({ record: wire(item.record, payload), ...vectorFields(item) });
13075
+ }
13076
+ const value = await request(
13077
+ "/import",
13078
+ {
13079
+ method: "POST",
13080
+ body: JSON.stringify({ account_id: accountId, key_id: keyId, records: prepared })
13081
+ },
13082
+ signal
13083
+ );
13084
+ if (!object(value) || !integer(value.written) || value.written > prepared.length) invalid();
13085
+ return value.written;
13086
+ },
13087
+ async verify(revisions, signal) {
13088
+ if (!Array.isArray(revisions) || revisions.length > maxVerifyRevisions) invalid();
13089
+ const asked = /* @__PURE__ */ new Set();
13090
+ const wireRevisions = revisions.map((r) => {
13091
+ const checked = ref(r);
13092
+ if (!integer(r.updatedAt, 1) || typeof r.isDeleted !== "boolean") invalid();
13093
+ asked.add(`${checked.kind}/${checked.id}`);
13094
+ return {
13095
+ kind: checked.kind,
13096
+ id: checked.id,
13097
+ updated_at: r.updatedAt,
13098
+ is_deleted: r.isDeleted
13099
+ };
13100
+ });
13101
+ if (wireRevisions.length === 0) return [];
13102
+ const value = await request(
13103
+ "/verify",
13104
+ {
13105
+ method: "POST",
13106
+ body: JSON.stringify({ account_id: accountId, revisions: wireRevisions })
13107
+ },
13108
+ signal
13109
+ );
13110
+ if (!object(value) || !Array.isArray(value.missing)) invalid();
13111
+ const missing = value.missing.map(ref);
13112
+ if (missing.some((r) => !asked.has(`${r.kind}/${r.id}`))) invalid();
13113
+ return missing;
13114
+ },
13115
+ async activate(signal) {
13116
+ const value = await request(
13117
+ "/account",
13118
+ { method: "PUT", body: JSON.stringify({ account_id: accountId, state: "active" }) },
13119
+ signal
13120
+ );
13121
+ if (!object(value) || value.state !== "active" || typeof value.transitioned !== "boolean")
13122
+ invalid();
13123
+ return value.transitioned;
13124
+ },
13125
+ async changes(cursor, options2) {
13126
+ const limit = options2?.limit ?? 100;
13127
+ if (!integer(limit, 1) || limit > 200 || cursor !== void 0 && (!text2(cursor) || cursor.length > 2048))
13128
+ invalid();
13129
+ const params = new URLSearchParams({ account_id: String(accountId), limit: String(limit) });
13130
+ if (cursor) params.set("cursor", cursor);
13131
+ const value = await request(`/changes?${params}`, {}, options2?.signal);
13132
+ if (!object(value) || !Array.isArray(value.items) || value.items.length > limit || value.next_cursor !== void 0 && !text2(value.next_cursor) || value.changes_cursor !== void 0 && !text2(value.changes_cursor))
13133
+ invalid();
13134
+ const items = [];
13135
+ for (const item of value.items) items.push(await decode(item));
13136
+ options2?.signal?.throwIfAborted();
13137
+ return {
13138
+ items,
13139
+ ...value.next_cursor ? { nextCursor: value.next_cursor } : {},
13140
+ changesCursor: value.changes_cursor ?? cursor ?? ""
13141
+ };
13142
+ },
13143
+ async search(embedding2, options2) {
13144
+ const limit = options2?.limit ?? 20;
13145
+ const kindsFilter = options2?.kinds;
13146
+ if (!Array.isArray(embedding2) || !embeddings({
13147
+ record: { ...emptyMessage, isDeleted: false },
13148
+ embeddings: [embedding2]
13149
+ }) || !integer(limit, 1) || limit > 50 || kindsFilter !== void 0 && (!Array.isArray(kindsFilter) || kindsFilter.length === 0 || kindsFilter.some((k) => k !== "message" && k !== "summary")) || options2?.conversationId !== void 0 && !id(options2.conversationId))
13150
+ invalid();
13151
+ const value = await request(
13152
+ "/search",
13153
+ {
13154
+ method: "POST",
13155
+ body: JSON.stringify({
13156
+ account_id: accountId,
13157
+ embedding: embedding2.slice(0, storedDims),
13158
+ limit,
13159
+ ...kindsFilter ? { kinds: kindsFilter } : {},
13160
+ ...options2?.conversationId ? { conversation_id: options2.conversationId } : {}
13161
+ })
13162
+ },
13163
+ options2?.signal
13164
+ );
13165
+ if (!object(value) || !Array.isArray(value.items) || value.items.length > limit) invalid();
13166
+ const hits = [];
13167
+ for (const item of value.items) {
13168
+ if (!object(item) || !integer(item.chunk) || typeof item.score !== "number" || !Number.isFinite(item.score))
13169
+ invalid();
13170
+ const snapshot = await decode(item);
13171
+ if (snapshot.record.isDeleted || kindsFilter !== void 0 && !kindsFilter.includes(snapshot.record.kind) || snapshot.record.kind !== "message" && snapshot.record.kind !== "summary" || options2?.conversationId !== void 0 && snapshot.record.conversationId !== options2.conversationId)
13172
+ invalid();
13173
+ hits.push({ ...snapshot, chunk: item.chunk, score: item.score });
13174
+ }
13175
+ options2?.signal?.throwIfAborted();
13176
+ return hits;
13177
+ },
13178
+ async deleteAll(signal) {
13179
+ const value = await request(`/records?account_id=${accountId}`, { method: "DELETE" }, signal);
13180
+ if (!object(value) || !integer(value.deleted)) invalid();
13181
+ return value.deleted;
13182
+ },
13183
+ attachments: {
13184
+ async create(sizeBytes, signal) {
13185
+ if (!integer(sizeBytes, 1) || sizeBytes > maxAttachmentBytes) invalid();
13186
+ const value = await request(
13187
+ "/attachments",
13188
+ {
13189
+ method: "POST",
13190
+ body: JSON.stringify({ account_id: accountId, size_bytes: sizeBytes })
13191
+ },
13192
+ signal
13193
+ );
13194
+ if (!object(value)) invalid();
13195
+ const created = attachment(value.attachment);
13196
+ if (created.sizeBytes !== sizeBytes || created.state !== "pending") invalid();
13197
+ return { attachment: created, upload: presigned(value.upload) };
13198
+ },
13199
+ async commit(attachmentId, owner, signal) {
13200
+ if (!attachmentIdPattern.test(attachmentId) || !object(owner) || owner.kind !== "message" && owner.kind !== "summary" || !id(owner.id))
13201
+ invalid();
13202
+ const value = await request(
13203
+ `/attachments/${attachmentId}/commit`,
13204
+ {
13205
+ method: "POST",
13206
+ body: JSON.stringify({
13207
+ account_id: accountId,
13208
+ owner_kind: owner.kind,
13209
+ owner_id: owner.id
13210
+ })
13211
+ },
13212
+ signal
13213
+ );
13214
+ if (!object(value)) invalid();
13215
+ const committed = attachment(value.attachment);
13216
+ if (committed.id !== attachmentId || committed.state !== "committed" || committed.ownerKind !== owner.kind || committed.ownerId !== owner.id)
13217
+ invalid();
13218
+ return committed;
13219
+ },
13220
+ async get(attachmentId, signal) {
13221
+ if (!attachmentIdPattern.test(attachmentId)) invalid();
13222
+ let value;
13223
+ try {
13224
+ value = await request(`/attachments/${attachmentId}?account_id=${accountId}`, {}, signal);
13225
+ } catch (error) {
13226
+ if (error instanceof ChatStoreError && error.status === 404) return null;
13227
+ throw error;
13228
+ }
13229
+ if (!object(value)) invalid();
13230
+ const found = attachment(value.attachment);
13231
+ if (found.id !== attachmentId) invalid();
13232
+ return {
13233
+ attachment: found,
13234
+ ...value.download !== void 0 ? { download: presigned(value.download) } : {}
13235
+ };
13236
+ },
13237
+ async delete(attachmentId, signal) {
13238
+ if (!attachmentIdPattern.test(attachmentId)) invalid();
13239
+ await request(
13240
+ `/attachments/${attachmentId}?account_id=${accountId}`,
13241
+ { method: "DELETE" },
13242
+ signal
13243
+ );
13244
+ }
13245
+ }
12923
13246
  };
12924
13247
  }
13248
+ var emptyMessage = {
13249
+ kind: "message",
13250
+ id: "query",
13251
+ conversationId: "query",
13252
+ sortKey: 0,
13253
+ createdAt: 1,
13254
+ updatedAt: 1,
13255
+ isDeleted: false,
13256
+ data: {}
13257
+ };
12925
13258
 
12926
13259
  // src/lib/db/appFiles/models.ts
12927
13260
  var import_watermelondb4 = require("@nozbe/watermelondb");
@@ -15576,8 +15909,8 @@ var WatermelonChatStorageAdapter = class {
15576
15909
  createMessage(options) {
15577
15910
  return createMessageOp(this.ctx, options);
15578
15911
  }
15579
- updateMessageEmbedding(uniqueId, vector, embeddingModel) {
15580
- return updateMessageEmbeddingOp(this.ctx, uniqueId, vector, embeddingModel);
15912
+ updateMessageEmbedding(uniqueId, vector2, embeddingModel) {
15913
+ return updateMessageEmbeddingOp(this.ctx, uniqueId, vector2, embeddingModel);
15581
15914
  }
15582
15915
  updateMessageChunks(uniqueId, chunks3, embeddingModel) {
15583
15916
  return updateMessageChunksOp(this.ctx, uniqueId, chunks3, embeddingModel);
@@ -19529,8 +19862,8 @@ var STOPWORDS = /* @__PURE__ */ new Set([
19529
19862
  "user",
19530
19863
  "users"
19531
19864
  ]);
19532
- function tokenize(text14) {
19533
- const m = text14.toLowerCase().match(TOKEN_RE);
19865
+ function tokenize(text15) {
19866
+ const m = text15.toLowerCase().match(TOKEN_RE);
19534
19867
  if (!m) return [];
19535
19868
  return m.filter((t) => !STOPWORDS.has(t));
19536
19869
  }
@@ -19742,13 +20075,13 @@ function embedVaultRows(ctx, options, rows, preparation) {
19742
20075
  );
19743
20076
  [...missing].forEach(([key, row], index) => {
19744
20077
  const request = batch.then((vectors) => {
19745
- const vector = vectors[index];
19746
- updateVaultMemoryEmbeddingOp(ctx, row.uniqueId, JSON.stringify(vector), model, {
20078
+ const vector2 = vectors[index];
20079
+ updateVaultMemoryEmbeddingOp(ctx, row.uniqueId, JSON.stringify(vector2), model, {
19747
20080
  content: row.content,
19748
20081
  updatedAt: row.updatedAt?.getTime()
19749
20082
  }).catch(() => {
19750
20083
  });
19751
- return vector;
20084
+ return vector2;
19752
20085
  }).finally(() => {
19753
20086
  entries.delete(key);
19754
20087
  if (entries.size === 0) pendingRows.get(ctx)?.delete(options.maskInput);
@@ -20362,12 +20695,12 @@ async function preEmbedVaultMemories(vaultCtx, embeddingOptions, cache, options)
20362
20695
  }
20363
20696
  }
20364
20697
  if (uncachedTexts.length > 0) {
20365
- const embeddings = await embedVaultRows(vaultCtx, embeddingOptions, uncachedRows);
20698
+ const embeddings2 = await embedVaultRows(vaultCtx, embeddingOptions, uncachedRows);
20366
20699
  for (let i = 0; i < uncachedKeys.length; i++) {
20367
20700
  cacheRowVector(
20368
20701
  cache,
20369
20702
  uncachedKeys[i],
20370
- Float32Array.from(embeddings[i]),
20703
+ Float32Array.from(embeddings2[i]),
20371
20704
  uncachedVersions[i],
20372
20705
  uncachedTexts[i]
20373
20706
  );
@@ -22173,7 +22506,7 @@ function createAutoExtractor(options) {
22173
22506
  ...options.retainCtx,
22174
22507
  embeddingOptions: {
22175
22508
  ...options.retainCtx.embeddingOptions,
22176
- maskInput: (text14) => piiRedactor.maskText(text14)
22509
+ maskInput: (text15) => piiRedactor.maskText(text15)
22177
22510
  }
22178
22511
  } : options.retainCtx;
22179
22512
  function processTurn(messages, conversationId) {
@@ -22924,14 +23257,14 @@ var MaskScopedEmbeddingCache = class extends Map {
22924
23257
  this.inner = inner;
22925
23258
  this.masked = masked;
22926
23259
  }
22927
- key(text14) {
22928
- return `${this.masked ? "m" : "r"}:${text14}`;
23260
+ key(text15) {
23261
+ return `${this.masked ? "m" : "r"}:${text15}`;
22929
23262
  }
22930
- get(text14) {
22931
- return this.inner.get(this.key(text14));
23263
+ get(text15) {
23264
+ return this.inner.get(this.key(text15));
22932
23265
  }
22933
- set(text14, value) {
22934
- this.inner.set(this.key(text14), value);
23266
+ set(text15, value) {
23267
+ this.inner.set(this.key(text15), value);
22935
23268
  return this;
22936
23269
  }
22937
23270
  };
@@ -24137,12 +24470,12 @@ ${JSON.stringify(
24137
24470
  function parseAnswer(body, base, parseSchema) {
24138
24471
  if (typeof body !== "object" || body === null) return base;
24139
24472
  const obj = body;
24140
- const text14 = extractCompletionContent(obj) ?? "";
24473
+ const text15 = extractCompletionContent(obj) ?? "";
24141
24474
  const usage = obj.usage;
24142
24475
  let structuredOutput;
24143
- if (parseSchema && text14) {
24476
+ if (parseSchema && text15) {
24144
24477
  try {
24145
- structuredOutput = JSON.parse(extractJsonCandidate(text14));
24478
+ structuredOutput = JSON.parse(extractJsonCandidate(text15));
24146
24479
  } catch (err) {
24147
24480
  getLogger().warn("[memory/reflect] structured output was not valid JSON", {
24148
24481
  err: err instanceof Error ? err.message : String(err)
@@ -24152,7 +24485,7 @@ function parseAnswer(body, base, parseSchema) {
24152
24485
  const promptTokens = usage?.prompt_tokens ?? usage?.input_tokens ?? 0;
24153
24486
  const completionTokens = usage?.completion_tokens ?? usage?.output_tokens ?? 0;
24154
24487
  return {
24155
- text: text14,
24488
+ text: text15,
24156
24489
  ...structuredOutput !== void 0 && { structuredOutput },
24157
24490
  basedOn: base.basedOn,
24158
24491
  usage: {
@@ -24723,10 +25056,10 @@ init_logger();
24723
25056
  // src/lib/memory/store/remotePipeline.ts
24724
25057
  var import_uuid5 = require("uuid");
24725
25058
  init_logger();
24726
- function storedVector(vector) {
24727
- if (!Array.isArray(vector) || vector.length !== 1536 && vector.length !== 4096 || vector.some((v) => !Number.isFinite(v)))
25059
+ function storedVector(vector2) {
25060
+ if (!Array.isArray(vector2) || vector2.length !== 1536 && vector2.length !== 4096 || vector2.some((v) => !Number.isFinite(v)))
24728
25061
  throw new Error("Remote memories require a finite 1536/4096-dimensional vector");
24729
- const out = vector.slice(0, 1536);
25062
+ const out = vector2.slice(0, 1536);
24730
25063
  const norm = Math.sqrt(out.reduce((sum, v) => sum + v * v, 0));
24731
25064
  if (!norm) throw new Error("Remote query/content vector has no direction after MRL truncation");
24732
25065
  return out.map((v) => v / norm);
@@ -25085,7 +25418,7 @@ function createRemoteMemoryPipeline(options) {
25085
25418
  const factSource = {
25086
25419
  graphRanking: options.graphRanking,
25087
25420
  temporalRanking: options.temporalRanking,
25088
- search: async (text14, searchOptions, embeddingCache) => {
25421
+ search: async (text15, searchOptions, embeddingCache) => {
25089
25422
  const queryOptions = {
25090
25423
  ...embeddingOptions,
25091
25424
  taskType: "memory_recall_embed",
@@ -25094,8 +25427,8 @@ function createRemoteMemoryPipeline(options) {
25094
25427
  }
25095
25428
  };
25096
25429
  const { prepare } = operation("recall", queryOptions);
25097
- const prepared = await prepare(text14, searchOptions);
25098
- const ranked = await rankPreparedVaultCandidates(text14, prepared, queryOptions, searchOptions);
25430
+ const prepared = await prepare(text15, searchOptions);
25431
+ const ranked = await rankPreparedVaultCandidates(text15, prepared, queryOptions, searchOptions);
25099
25432
  return {
25100
25433
  ...ranked,
25101
25434
  rankedOnCosine: prepared.memories.length > 0 && !prepared.embeddingsUnavailable,
@@ -25185,7 +25518,7 @@ var METADATA_FIELDS = [
25185
25518
  "published_at",
25186
25519
  "geohash"
25187
25520
  ];
25188
- function text13(value) {
25521
+ function text14(value) {
25189
25522
  return typeof value === "string" && value !== "" ? value : void 0;
25190
25523
  }
25191
25524
  function num(value) {
@@ -25206,14 +25539,14 @@ function revision(raw) {
25206
25539
  };
25207
25540
  }
25208
25541
  function embedding(raw, model) {
25209
- const value = text13(raw.embedding);
25542
+ const value = text14(raw.embedding);
25210
25543
  if (!value) return void 0;
25211
25544
  try {
25212
- const vector = JSON.parse(value);
25213
- const stored2 = text13(raw.embedding_model);
25214
- if (stored2 === void 0 ? vector.length !== LOCAL_VECTOR_DIMS : stored2 !== model)
25545
+ const vector2 = JSON.parse(value);
25546
+ const stored2 = text14(raw.embedding_model);
25547
+ if (stored2 === void 0 ? vector2.length !== LOCAL_VECTOR_DIMS : stored2 !== model)
25215
25548
  return void 0;
25216
- return storedVector(vector);
25549
+ return storedVector(vector2);
25217
25550
  } catch {
25218
25551
  return void 0;
25219
25552
  }
@@ -25227,7 +25560,7 @@ function stringArray(value) {
25227
25560
  }
25228
25561
  }
25229
25562
  function sourceChunkIds(raw) {
25230
- const value = text13(raw.source_chunk_ids);
25563
+ const value = text14(raw.source_chunk_ids);
25231
25564
  const ids = value && stringArray(value);
25232
25565
  return ids ? serializeSourceChunkIds(ids) : value;
25233
25566
  }
@@ -25239,39 +25572,39 @@ function fitsNearby(row) {
25239
25572
  }
25240
25573
  function invalid2(raw) {
25241
25574
  const id2 = raw.id;
25242
- return typeof id2 !== "string" || id2 === "" || bytes(id2) > MAX_ID_BYTES || !text13(raw.scope) || (num(raw.created_at) ?? 0) <= 0 || (num(raw.updated_at) ?? 0) <= 0;
25575
+ return typeof id2 !== "string" || id2 === "" || bytes(id2) > MAX_ID_BYTES || !text14(raw.scope) || (num(raw.created_at) ?? 0) <= 0 || (num(raw.updated_at) ?? 0) <= 0;
25243
25576
  }
25244
25577
  function metadata2(raw, model) {
25245
- const vector = embedding(raw, model);
25578
+ const vector2 = embedding(raw, model);
25246
25579
  return {
25247
25580
  scope: raw.scope,
25248
- kind: text13(raw.kind),
25249
- level: text13(raw.level),
25250
- folder_id: text13(raw.folder_id),
25581
+ kind: text14(raw.kind),
25582
+ level: text14(raw.level),
25583
+ folder_id: text14(raw.folder_id),
25251
25584
  is_deleted: bool(raw.is_deleted) ?? false,
25252
- ...vector && { embedding: vector, embedding_model: model },
25585
+ ...vector2 && { embedding: vector2, embedding_model: model },
25253
25586
  source_chunk_ids: sourceChunkIds(raw),
25254
25587
  proof_count: num(raw.proof_count),
25255
- source: text13(raw.source),
25588
+ source: text14(raw.source),
25256
25589
  event_time_start: num(raw.event_time_start),
25257
25590
  event_time_end: num(raw.event_time_end),
25258
- event_time_kind: text13(raw.event_time_kind),
25591
+ event_time_kind: text14(raw.event_time_kind),
25259
25592
  topics_user_managed: bool(raw.topics_user_managed),
25260
- topics: text13(raw.topics),
25593
+ topics: text14(raw.topics),
25261
25594
  topics_updated_at: num(raw.topics_updated_at),
25262
- media: text13(raw.media),
25595
+ media: text14(raw.media),
25263
25596
  topics_extracted_at: num(raw.topics_extracted_at),
25264
25597
  topics_extracted_version: num(raw.topics_extracted_version),
25265
- superseded_by: text13(raw.superseded_by),
25598
+ superseded_by: text14(raw.superseded_by),
25266
25599
  superseded_at: num(raw.superseded_at),
25267
25600
  last_observed_at: num(raw.last_observed_at),
25268
- fact_type: text13(raw.fact_type),
25601
+ fact_type: text14(raw.fact_type),
25269
25602
  archived_at: num(raw.archived_at),
25270
- trust_tier: text13(raw.trust_tier),
25271
- visibility: text13(raw.visibility),
25603
+ trust_tier: text14(raw.trust_tier),
25604
+ visibility: text14(raw.visibility),
25272
25605
  twin_opt_in: bool(raw.twin_opt_in),
25273
25606
  published_at: num(raw.published_at),
25274
- geohash: text13(raw.geohash)
25607
+ geohash: text14(raw.geohash)
25275
25608
  };
25276
25609
  }
25277
25610
  function defined(value) {
@@ -25282,7 +25615,7 @@ function defined(value) {
25282
25615
  async function prepareRow(raw, canonical, rings, model, updatedAt) {
25283
25616
  const deleted = bool(raw.is_deleted) ?? false;
25284
25617
  const { encrypt } = memoryCipher(canonical);
25285
- const localKindValue = text13(raw.kind_value);
25618
+ const localKindValue = text14(raw.kind_value);
25286
25619
  let plaintext;
25287
25620
  let kindValue;
25288
25621
  try {
@@ -25426,7 +25759,7 @@ async function remoteMetadata(request, ids, signal) {
25426
25759
  }
25427
25760
  async function backfillTopics(ctx) {
25428
25761
  if (!ctx.entityCtx) return;
25429
- const topicless = (await getAllVaultMemoryRowsOp(ctx)).filter((raw) => !text13(raw.topics) && !bool(raw.is_deleted)).map((raw) => raw.id);
25762
+ const topicless = (await getAllVaultMemoryRowsOp(ctx)).filter((raw) => !text14(raw.topics) && !bool(raw.is_deleted)).map((raw) => raw.id);
25430
25763
  if (topicless.length > 0) await backfillMemoryTopicsOp(ctx, topicless);
25431
25764
  }
25432
25765
  async function migrateMemoriesToRemote(options) {
@@ -25537,7 +25870,7 @@ async function migrateMemoriesToRemote(options) {
25537
25870
  track(reembedded, !!row.embedding && !usable.has(id2));
25538
25871
  track(unembedded, !row.embedding);
25539
25872
  track(placeholders, plaintext === void 0);
25540
- track(truncated, row.source_chunk_ids !== text13(local.get(id2).source_chunk_ids));
25873
+ track(truncated, row.source_chunk_ids !== text14(local.get(id2).source_chunk_ids));
25541
25874
  }
25542
25875
  let sent = 0;
25543
25876
  options.onProgress?.({ imported: sent, toImport: upload.length });
@@ -25955,12 +26288,12 @@ function createRemoteMemoryStore(options) {
25955
26288
  };
25956
26289
  const embedInBackground = ({ memory: { memory_id: id2, content } }) => {
25957
26290
  generateEmbedding(content, embeddingOptions).then(
25958
- (vector) => serialized(id2, async () => {
26291
+ (vector2) => serialized(id2, async () => {
25959
26292
  const current = await live(id2);
25960
26293
  if (!current || current.memory.content !== content || current.memory.embedding?.length)
25961
26294
  return;
25962
26295
  const saved = await persistence.put(
25963
- { ...current.memory, embedding: storedVector(vector), embedding_model: model },
26296
+ { ...current.memory, embedding: storedVector(vector2), embedding_model: model },
25964
26297
  current
25965
26298
  );
25966
26299
  notify("embedding", [saved]);
@@ -26453,8 +26786,8 @@ function createRemoteMemoryStore(options) {
26453
26786
  return finish();
26454
26787
  }
26455
26788
  const writes = targets.flatMap((record2, i) => {
26456
- const vector = vectors[i];
26457
- if (!vector) {
26789
+ const vector2 = vectors[i];
26790
+ if (!vector2) {
26458
26791
  result.failed++;
26459
26792
  return [];
26460
26793
  }
@@ -26463,7 +26796,7 @@ function createRemoteMemoryStore(options) {
26463
26796
  {
26464
26797
  memory: {
26465
26798
  ...record2.memory,
26466
- embedding: storedVector(vector),
26799
+ embedding: storedVector(vector2),
26467
26800
  embedding_model: model
26468
26801
  },
26469
26802
  expectedVersion: record2
@@ -26543,10 +26876,10 @@ function createRemoteMemoryStore(options) {
26543
26876
  if (!rejectsInput(error)) return null;
26544
26877
  }
26545
26878
  const vectors = [];
26546
- for (const [i, text14] of texts.entries()) {
26879
+ for (const [i, text15] of texts.entries()) {
26547
26880
  signal?.throwIfAborted();
26548
26881
  try {
26549
- [vectors[i]] = await generateEmbeddings([text14], embeddingOptions, signal);
26882
+ [vectors[i]] = await generateEmbeddings([text15], embeddingOptions, signal);
26550
26883
  } catch (error) {
26551
26884
  signal?.throwIfAborted();
26552
26885
  if (!rejectsInput(error)) return null;
@@ -27237,8 +27570,8 @@ async function synthesizeFacet(facet, ctx, options, prior, vaultPreparation) {
27237
27570
  memories
27238
27571
  });
27239
27572
  const noEvidence = result.basedOn.memoryIds.length === 0;
27240
- const { text: text14, legitimateEmpty } = extractFacetText(result.structuredOutput);
27241
- if (!text14 && !legitimateEmpty && !noEvidence) {
27573
+ const { text: text15, legitimateEmpty } = extractFacetText(result.structuredOutput);
27574
+ if (!text15 && !legitimateEmpty && !noEvidence) {
27242
27575
  getLogger().warn(
27243
27576
  "[memory/synthesizeProfile] facet synthesis returned degraded-empty; using fallback section",
27244
27577
  { facet: facet.key, recalledCount: result.basedOn.memoryIds.length }
@@ -27248,12 +27581,12 @@ async function synthesizeFacet(facet, ctx, options, prior, vaultPreparation) {
27248
27581
  const section = {
27249
27582
  key: facet.key,
27250
27583
  label: facet.label,
27251
- text: text14,
27584
+ text: text15,
27252
27585
  sourceMemoryIds: result.basedOn.memoryIds,
27253
27586
  generatedAt: Date.now()
27254
27587
  };
27255
- if (options.redactor && text14) {
27256
- const redacted = await options.redactor.redactTextAsync(text14);
27588
+ if (options.redactor && text15) {
27589
+ const redacted = await options.redactor.redactTextAsync(text15);
27257
27590
  section.text = redacted.text;
27258
27591
  }
27259
27592
  if (!legitimateEmpty && !noEvidence) {
@@ -27478,9 +27811,9 @@ async function assembleMemoryContext(options) {
27478
27811
  if (!refs.length) return [];
27479
27812
  const rows = await loadFacts({ ...filters, memoryIds: refs.map((r) => r.memoryId) });
27480
27813
  const byId = new Map(rows.filter(active).map((m) => [m.uniqueId, m]));
27481
- return refs.flatMap((ref) => {
27482
- const m = byId.get(ref.memoryId);
27483
- return m ? [asItem(m, "session", ref.score)] : [];
27814
+ return refs.flatMap((ref2) => {
27815
+ const m = byId.get(ref2.memoryId);
27816
+ return m ? [asItem(m, "session", ref2.score)] : [];
27484
27817
  });
27485
27818
  },
27486
27819
  []
@@ -28242,7 +28575,7 @@ async function verifyFactSupport(items, options) {
28242
28575
  }
28243
28576
  const maxEvidenceChars = Math.max(1, options.maxEvidenceChars ?? DEFAULT_MAX_EVIDENCE_CHARS);
28244
28577
  const redactor = resolvePiiRedactor(options.piiRedaction ?? true);
28245
- const safe = async (text14) => redactor ? (await redactor.redactTextAsync(text14)).text : text14;
28578
+ const safe = async (text15) => redactor ? (await redactor.redactTextAsync(text15)).text : text15;
28246
28579
  let truncatedCount = 0;
28247
28580
  const parts = [];
28248
28581
  for (const [i, item] of items.entries()) {
@@ -28358,7 +28691,7 @@ async function verifyMemoriesForPublish(memories, sources, options) {
28358
28691
  );
28359
28692
  const pending = [];
28360
28693
  for (const { index, uniqueId, content, ids } of withinBudget) {
28361
- const evidence = ids.map((id2) => resolved.get(id2) ?? null).filter((text14) => text14 !== null);
28694
+ const evidence = ids.map((id2) => resolved.get(id2) ?? null).filter((text15) => text15 !== null);
28362
28695
  const dropped = ids.length - evidence.length;
28363
28696
  if (ids.some((id2) => unreadable.has(id2))) {
28364
28697
  results[index] = {
@@ -29335,10 +29668,10 @@ async function exportMarkdownToPdf(markdown, options) {
29335
29668
  function lineHeightMm(fontSizePt) {
29336
29669
  return ptToMm(fontSizePt) * lineHeight;
29337
29670
  }
29338
- function renderWrappedText(text14, x, maxW, fontSizePt, fontStyle = "normal", fontFamily = "Helvetica") {
29671
+ function renderWrappedText(text15, x, maxW, fontSizePt, fontStyle = "normal", fontFamily = "Helvetica") {
29339
29672
  doc.setFont(fontFamily, fontStyle);
29340
29673
  doc.setFontSize(fontSizePt);
29341
- const lines = doc.splitTextToSize(text14, maxW);
29674
+ const lines = doc.splitTextToSize(text15, maxW);
29342
29675
  const lh = lineHeightMm(fontSizePt);
29343
29676
  for (const line of lines) {
29344
29677
  ensureSpace(lh);
@@ -29420,10 +29753,10 @@ async function exportMarkdownToPdf(markdown, options) {
29420
29753
  const lh = lineHeightMm(opts.fontSize);
29421
29754
  for (let i = 0; i < items.length; i++) {
29422
29755
  const prefix = ordered ? `${(listToken.start || 1) + i}. ` : "\u2022 ";
29423
- const text14 = tokensToPlainText(items[i].tokens);
29756
+ const text15 = tokensToPlainText(items[i].tokens);
29424
29757
  ensureSpace(lh);
29425
29758
  doc.text(prefix, opts.margins.left, cursorY);
29426
- const listLines = doc.splitTextToSize(text14, itemW);
29759
+ const listLines = doc.splitTextToSize(text15, itemW);
29427
29760
  for (const line of listLines) {
29428
29761
  ensureSpace(lh);
29429
29762
  doc.text(line, indentX, cursorY);
@@ -29435,12 +29768,12 @@ async function exportMarkdownToPdf(markdown, options) {
29435
29768
  }
29436
29769
  case "blockquote": {
29437
29770
  const bqToken = token;
29438
- const text14 = tokensToPlainText(bqToken.tokens ?? []);
29771
+ const text15 = tokensToPlainText(bqToken.tokens ?? []);
29439
29772
  const indentX = opts.margins.left + SPACING.QUOTE_INDENT;
29440
29773
  const quoteW = cw - SPACING.QUOTE_INSET;
29441
29774
  doc.setFont("Helvetica", "italic");
29442
29775
  doc.setFontSize(opts.fontSize);
29443
- const bqLines = doc.splitTextToSize(text14, quoteW);
29776
+ const bqLines = doc.splitTextToSize(text15, quoteW);
29444
29777
  const lh = lineHeightMm(opts.fontSize);
29445
29778
  const blockH = bqLines.length * lh;
29446
29779
  ensureSpace(Math.min(blockH, 20));
@@ -29476,8 +29809,8 @@ async function exportMarkdownToPdf(markdown, options) {
29476
29809
  doc.setFont("Helvetica", fontStyle);
29477
29810
  doc.setFontSize(tableFontSize);
29478
29811
  const cellLines = cells.map((cell) => {
29479
- const text14 = tokensToPlainText(cell.tokens);
29480
- return doc.splitTextToSize(text14, cellContentW);
29812
+ const text15 = tokensToPlainText(cell.tokens);
29813
+ return doc.splitTextToSize(text15, cellContentW);
29481
29814
  });
29482
29815
  const maxLines = Math.max(1, ...cellLines.map((l) => l.length));
29483
29816
  ensureSpace(maxLines * lh + SPACING.SM);
@@ -29709,13 +30042,13 @@ async function withPdfDocument(pdfDataUrl, fn) {
29709
30042
  }
29710
30043
  }
29711
30044
  function joinPdfTextItems(items) {
29712
- let text14 = "";
30045
+ let text15 = "";
29713
30046
  for (const item of items) {
29714
30047
  if (!("str" in item)) continue;
29715
30048
  const { str, hasEOL } = item;
29716
- text14 += str + (hasEOL ? "\n" : " ");
30049
+ text15 += str + (hasEOL ? "\n" : " ");
29717
30050
  }
29718
- return text14.replace(/[ \t]+\n/g, "\n").trim();
30051
+ return text15.replace(/[ \t]+\n/g, "\n").trim();
29719
30052
  }
29720
30053
  function computeRenderScale(width, height) {
29721
30054
  const longest = Math.max(width, height);
@@ -29735,7 +30068,7 @@ async function extractPdfPageTexts(pdfDataUrl) {
29735
30068
  }
29736
30069
  async function extractTextFromPdf(pdfDataUrl) {
29737
30070
  const pageTexts = await extractPdfPageTexts(pdfDataUrl);
29738
- return pageTexts.filter((text14) => text14.trim()).join("\n\n");
30071
+ return pageTexts.filter((text15) => text15.trim()).join("\n\n");
29739
30072
  }
29740
30073
  async function renderPdfPages(pdfDataUrl, maxPages, pageNumbers) {
29741
30074
  return withPdfDocument(pdfDataUrl, async (pdf) => {
@@ -29777,8 +30110,8 @@ var MAX_IMAGE_PAGES = 20;
29777
30110
  var MIN_PAGE_TEXT_CHARS = 20;
29778
30111
  function selectPdfImagePages(pageTexts, maxImagePages = MAX_IMAGE_PAGES) {
29779
30112
  const needImage = [];
29780
- pageTexts.forEach((text14, index) => {
29781
- if (text14.trim().length < MIN_PAGE_TEXT_CHARS) needImage.push(index + 1);
30113
+ pageTexts.forEach((text15, index) => {
30114
+ if (text15.trim().length < MIN_PAGE_TEXT_CHARS) needImage.push(index + 1);
29782
30115
  });
29783
30116
  const limit = Math.max(0, maxImagePages);
29784
30117
  return { rendered: needImage.slice(0, limit), omitted: needImage.slice(limit) };
@@ -29837,10 +30170,10 @@ var PdfProcessor = class {
29837
30170
  textError
29838
30171
  );
29839
30172
  }
29840
- const text14 = (pageTexts ?? []).filter((t) => t.trim()).join("\n\n");
30173
+ const text15 = (pageTexts ?? []).filter((t) => t.trim()).join("\n\n");
29841
30174
  const { rendered, omitted } = pageTexts ? selectPdfImagePages(pageTexts) : { rendered: [], omitted: [] };
29842
30175
  if (pageTexts && rendered.length === 0 && omitted.length === 0) {
29843
- return text14.trim() ? { extractedText: text14, format: "plain" } : null;
30176
+ return text15.trim() ? { extractedText: text15, format: "plain" } : null;
29844
30177
  }
29845
30178
  let renderedPages;
29846
30179
  let pageCount = pageTexts?.length;
@@ -29853,7 +30186,7 @@ var PdfProcessor = class {
29853
30186
  pageCount = result.pageCount;
29854
30187
  }
29855
30188
  } catch (imageError) {
29856
- if (!text14.trim()) {
30189
+ if (!text15.trim()) {
29857
30190
  logger.error("[PdfProcessor] Image conversion also failed:", imageError);
29858
30191
  throw imageError;
29859
30192
  }
@@ -29865,7 +30198,7 @@ var PdfProcessor = class {
29865
30198
  const included = new Set(imagePages);
29866
30199
  const needImage = pageTexts ? [...rendered, ...omitted] : Array.from({ length: pageCount ?? 0 }, (_, i) => i + 1);
29867
30200
  const omittedPages = needImage.filter((n) => !included.has(n)).sort((a, b) => a - b);
29868
- if (images.length === 0 && !text14.trim()) {
30201
+ if (images.length === 0 && !text15.trim()) {
29869
30202
  logger.warn("[PdfProcessor] Image conversion also returned empty");
29870
30203
  return null;
29871
30204
  }
@@ -29874,9 +30207,9 @@ var PdfProcessor = class {
29874
30207
  );
29875
30208
  const imageNote = buildPdfImageNote(file.name, imagePages, omittedPages, pageCount);
29876
30209
  return {
29877
- extractedText: text14.trim() ? `${imageNote}
30210
+ extractedText: text15.trim() ? `${imageNote}
29878
30211
 
29879
- ${text14}` : imageNote,
30212
+ ${text15}` : imageNote,
29880
30213
  format: "plain",
29881
30214
  imageDataUrls: images.length > 0 ? images : void 0,
29882
30215
  metadata: {
@@ -30042,16 +30375,16 @@ var TextProcessor = class {
30042
30375
  async process(file) {
30043
30376
  try {
30044
30377
  const arrayBuffer = await dataUrlToArrayBuffer(file.dataUrl);
30045
- const text14 = decodeText(new Uint8Array(arrayBuffer));
30046
- if (!text14.trim()) {
30378
+ const text15 = decodeText(new Uint8Array(arrayBuffer));
30379
+ if (!text15.trim()) {
30047
30380
  return null;
30048
30381
  }
30049
30382
  return {
30050
- extractedText: text14,
30383
+ extractedText: text15,
30051
30384
  format: this.resolveFormat(file),
30052
30385
  metadata: {
30053
30386
  byteLength: arrayBuffer.byteLength,
30054
- characterCount: text14.length
30387
+ characterCount: text15.length
30055
30388
  }
30056
30389
  };
30057
30390
  } catch (error) {
@@ -30113,8 +30446,8 @@ var WordProcessor = class {
30113
30446
  /**
30114
30447
  * Count words in text
30115
30448
  */
30116
- countWords(text14) {
30117
- return text14.split(/\s+/).filter((w) => w.length > 0).length;
30449
+ countWords(text15) {
30450
+ return text15.split(/\s+/).filter((w) => w.length > 0).length;
30118
30451
  }
30119
30452
  };
30120
30453
 
@@ -30352,13 +30685,13 @@ function truncationMarker2(kept, total, fileName) {
30352
30685
  return `
30353
30686
  [truncated: showing the first ${kept} of ${total} characters of ${fileName}]`;
30354
30687
  }
30355
- function truncateText(text14, limit, fileName) {
30356
- if (text14.length <= limit) return { text: text14, truncated: false };
30688
+ function truncateText(text15, limit, fileName) {
30689
+ if (text15.length <= limit) return { text: text15, truncated: false };
30357
30690
  let end = Math.max(0, limit);
30358
- const code = text14.charCodeAt(end - 1);
30691
+ const code = text15.charCodeAt(end - 1);
30359
30692
  if (end > 0 && code >= 55296 && code <= 56319) end--;
30360
30693
  return {
30361
- text: `${text14.slice(0, end)}${truncationMarker2(end, text14.length, fileName)}`,
30694
+ text: `${text15.slice(0, end)}${truncationMarker2(end, text15.length, fileName)}`,
30362
30695
  truncated: true
30363
30696
  };
30364
30697
  }
@@ -30523,13 +30856,13 @@ async function preprocessFiles(files, options = {}) {
30523
30856
  Math.max(0, MAX_TOTAL_IMAGES - allImageUrls.length)
30524
30857
  );
30525
30858
  allImageUrls.push(...images.slice(0, keptImages));
30526
- const text14 = rewriteImageNote(result, file.name, keptImages);
30527
- const fitsWhole = text14.length <= Math.min(maxExtractedCharsPerFile, remaining);
30528
- const limit = fitsWhole ? text14.length : Math.min(
30859
+ const text15 = rewriteImageNote(result, file.name, keptImages);
30860
+ const fitsWhole = text15.length <= Math.min(maxExtractedCharsPerFile, remaining);
30861
+ const limit = fitsWhole ? text15.length : Math.min(
30529
30862
  maxExtractedCharsPerFile,
30530
- remaining - truncationMarker2(text14.length, text14.length, file.name).length
30863
+ remaining - truncationMarker2(text15.length, text15.length, file.name).length
30531
30864
  );
30532
- const capped = truncateText(text14, Math.max(0, limit), file.name);
30865
+ const capped = truncateText(text15, Math.max(0, limit), file.name);
30533
30866
  const formattedContent = formatExtractedContent(file.name, capped.text, result.format);
30534
30867
  totalChars += separatorLength + formattedContent.length;
30535
30868
  extractedTexts.push(formattedContent);
@@ -30633,9 +30966,9 @@ async function autoFilterClientTools(clientTools, promptEmbeddings, cache, embed
30633
30966
  if (toolsNeedingEmbeddings.length > 0) {
30634
30967
  try {
30635
30968
  const descriptions = toolsNeedingEmbeddings.map((t) => t.description);
30636
- const embeddings = await generateEmbeddings(descriptions, embeddingOptions);
30969
+ const embeddings2 = await generateEmbeddings(descriptions, embeddingOptions);
30637
30970
  for (let i = 0; i < toolsNeedingEmbeddings.length; i++) {
30638
- cache.set(toolsNeedingEmbeddings[i].name, embeddings[i]);
30971
+ cache.set(toolsNeedingEmbeddings[i].name, embeddings2[i]);
30639
30972
  }
30640
30973
  } catch {
30641
30974
  return { tools: clientTools, activatedSetNames: /* @__PURE__ */ new Set(), matchedSetNames: /* @__PURE__ */ new Set() };
@@ -30772,11 +31105,11 @@ function createGetAuthenticatedUserTool(getAccessToken, requestAccess) {
30772
31105
  };
30773
31106
  }
30774
31107
  var MAX_RESPONSE_SIZE = 1e5;
30775
- function truncate(text14, maxLen) {
30776
- if (text14.length <= maxLen) return text14;
30777
- return text14.slice(0, maxLen) + `
31108
+ function truncate(text15, maxLen) {
31109
+ if (text15.length <= maxLen) return text15;
31110
+ return text15.slice(0, maxLen) + `
30778
31111
 
30779
- ... (truncated, ${text14.length - maxLen} characters omitted)`;
31112
+ ... (truncated, ${text15.length - maxLen} characters omitted)`;
30780
31113
  }
30781
31114
  function createGitHubApiTool(getAccessToken, requestAccess) {
30782
31115
  return {
@@ -30824,16 +31157,16 @@ IMPORTANT: For write operations (POST, PUT, PATCH, DELETE), always confirm with
30824
31157
  method,
30825
31158
  body: body ? JSON.stringify(body) : void 0
30826
31159
  });
30827
- const text14 = await resp.text();
31160
+ const text15 = await resp.text();
30828
31161
  if (!resp.ok) {
30829
- return `Error: GitHub API ${method} ${path} returned ${resp.status}: ${truncate(text14, 500)}`;
31162
+ return `Error: GitHub API ${method} ${path} returned ${resp.status}: ${truncate(text15, 500)}`;
30830
31163
  }
30831
31164
  try {
30832
- const data = JSON.parse(text14);
31165
+ const data = JSON.parse(text15);
30833
31166
  const json5 = JSON.stringify(data);
30834
31167
  return truncate(json5, MAX_RESPONSE_SIZE);
30835
31168
  } catch {
30836
- return truncate(text14, MAX_RESPONSE_SIZE);
31169
+ return truncate(text15, MAX_RESPONSE_SIZE);
30837
31170
  }
30838
31171
  } catch (err) {
30839
31172
  if (err instanceof DOMException && err.name === "AbortError") {
@@ -31495,10 +31828,10 @@ function formatObjectAttr(obj) {
31495
31828
  });
31496
31829
  return `{ ${entries.join(", ")} }`;
31497
31830
  }
31498
- function isSafeJsxText(text14) {
31499
- if (/[<>{}&]/.test(text14)) return false;
31500
- if (/\n/.test(text14)) return false;
31501
- if (/^\s|\s$/.test(text14)) return false;
31831
+ function isSafeJsxText(text15) {
31832
+ if (/[<>{}&]/.test(text15)) return false;
31833
+ if (/\n/.test(text15)) return false;
31834
+ if (/^\s|\s$/.test(text15)) return false;
31502
31835
  return true;
31503
31836
  }
31504
31837
  function getId(node) {
@@ -33719,9 +34052,9 @@ New lines of conversation:
33719
34052
  {new_lines}
33720
34053
 
33721
34054
  New summary:`;
33722
- function estimateTokens(text14) {
33723
- if (!text14) return 0;
33724
- return Math.ceil(text14.length / 4);
34055
+ function estimateTokens(text15) {
34056
+ if (!text15) return 0;
34057
+ return Math.ceil(text15.length / 4);
33725
34058
  }
33726
34059
  var PER_MESSAGE_OVERHEAD_TOKENS = 4;
33727
34060
  var MAX_MESSAGES_PER_SUMMARIZATION = 20;
@@ -33781,14 +34114,14 @@ function splitMessagesAtThreshold(messages, tokenThreshold, minWindowMessages) {
33781
34114
  }
33782
34115
  async function redactSummaryPrompt(prompt, redactor, onPiiRedacted) {
33783
34116
  if (!redactor) return prompt;
33784
- const { text: text14, matches } = await redactor.redactTextAsync(prompt);
34117
+ const { text: text15, matches } = await redactor.redactTextAsync(prompt);
33785
34118
  if (matches.length > 0 && onPiiRedacted) {
33786
34119
  try {
33787
34120
  onPiiRedacted(matches);
33788
34121
  } catch {
33789
34122
  }
33790
34123
  }
33791
- return text14;
34124
+ return text15;
33792
34125
  }
33793
34126
  async function progressiveSummarize(options) {
33794
34127
  const {
@@ -34750,11 +35083,11 @@ function useChatStorage(options) {
34750
35083
  [piiRedaction, currentConversationId]
34751
35084
  );
34752
35085
  const maskForEmbedding = (0, import_react6.useCallback)(
34753
- (text14) => isPiiRedactor(resolvedPiiRedaction) ? resolvedPiiRedaction.maskText(text14) : text14,
35086
+ (text15) => isPiiRedactor(resolvedPiiRedaction) ? resolvedPiiRedaction.maskText(text15) : text15,
34754
35087
  [resolvedPiiRedaction]
34755
35088
  );
34756
35089
  const maskEmbeddingInput = (0, import_react6.useMemo)(
34757
- () => isPiiRedactor(resolvedPiiRedaction) ? (text14) => resolvedPiiRedaction.maskText(text14) : void 0,
35090
+ () => isPiiRedactor(resolvedPiiRedaction) ? (text15) => resolvedPiiRedaction.maskText(text15) : void 0,
34758
35091
  [resolvedPiiRedaction]
34759
35092
  );
34760
35093
  const vaultEmbeddingOptions = (0, import_react6.useMemo)(
@@ -35010,10 +35343,10 @@ function useChatStorage(options) {
35010
35343
  if (shouldChunkMessage(message.content, DEFAULT_CHUNK_SIZE)) {
35011
35344
  const textChunks = chunkText(message.content);
35012
35345
  const chunkTexts = textChunks.map((c) => mask(c.text));
35013
- const embeddings = await generateEmbeddings(chunkTexts, embeddingOptions);
35346
+ const embeddings2 = await generateEmbeddings(chunkTexts, embeddingOptions);
35014
35347
  const messageChunks = textChunks.map((chunk, i) => ({
35015
35348
  text: chunk.text,
35016
- vector: embeddings[i],
35349
+ vector: embeddings2[i],
35017
35350
  startOffset: chunk.startOffset,
35018
35351
  endOffset: chunk.endOffset
35019
35352
  }));
@@ -35559,7 +35892,7 @@ function useChatStorage(options) {
35559
35892
  return {
35560
35893
  callRedactor: redactor,
35561
35894
  callPiiRedaction: forInnerSend,
35562
- maskForCall: (text14) => redactor ? redactor.maskText(text14) : text14
35895
+ maskForCall: (text15) => redactor ? redactor.maskText(text15) : text15
35563
35896
  };
35564
35897
  };
35565
35898
  const resolveThoughtProcess = () => finalizeThoughtProcess(getThoughtProcess?.() || thoughtProcess);
@@ -37631,13 +37964,13 @@ function useOCR() {
37631
37964
  const result = await import_tesseract.default.recognize(image, language);
37632
37965
  pageTexts.push(result.data.text);
37633
37966
  }
37634
- const text14 = pageTexts.join("\n\n");
37635
- if (!text14.trim()) {
37967
+ const text15 = pageTexts.join("\n\n");
37968
+ if (!text15.trim()) {
37636
37969
  getLogger().warn(`No text found in OCR source ${filename || "unknown"}`);
37637
37970
  return null;
37638
37971
  }
37639
37972
  return `[Context from OCR attachment ${filename || "unknown"}]:
37640
- ${text14}`;
37973
+ ${text15}`;
37641
37974
  } catch (err) {
37642
37975
  getLogger().error(`Failed to process OCR for ${file.filename || "unknown"}:`, err);
37643
37976
  return null;
@@ -37681,13 +38014,13 @@ function usePdf() {
37681
38014
  const contexts = await Promise.all(
37682
38015
  pdfFiles.map(async (file) => {
37683
38016
  try {
37684
- const text14 = await extractTextFromPdf(file.url);
37685
- if (!text14.trim()) {
38017
+ const text15 = await extractTextFromPdf(file.url);
38018
+ if (!text15.trim()) {
37686
38019
  getLogger().warn(`No text found in PDF ${file.filename}`);
37687
38020
  return null;
37688
38021
  }
37689
38022
  return `[Context from PDF attachment ${file.filename}]:
37690
- ${text14}`;
38023
+ ${text15}`;
37691
38024
  } catch (err) {
37692
38025
  getLogger().error(`Failed to process PDF ${file.filename}:`, err);
37693
38026
  return null;
@@ -39216,14 +39549,14 @@ function useVoice(options) {
39216
39549
  recognition.interimResults = false;
39217
39550
  recognition.lang = options?.language ?? "";
39218
39551
  recognition.onresult = (event) => {
39219
- let text14 = "";
39552
+ let text15 = "";
39220
39553
  for (let i = 0; i < event.results.length; i++) {
39221
39554
  const result = event.results[i];
39222
39555
  if (result && result.isFinal && result[0]) {
39223
- text14 += result[0].transcript + " ";
39556
+ text15 += result[0].transcript + " ";
39224
39557
  }
39225
39558
  }
39226
- nativeTextRef.current = text14.trim();
39559
+ nativeTextRef.current = text15.trim();
39227
39560
  };
39228
39561
  recognition.onerror = (event) => {
39229
39562
  if (event.error !== "aborted" && event.error !== "no-speech") {