@anuma/sdk 6.35.0 → 6.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -354,10 +354,10 @@ var init_redactor = __esm({
354
354
  const existing = this.valueToPlaceholder.get(normalizedValue);
355
355
  if (existing) return existing;
356
356
  const existingCount = this.categoryCounters.get(category);
357
- const count = (existingCount ?? 0) + 1;
358
- this.categoryCounters.set(category, count);
357
+ const count2 = (existingCount ?? 0) + 1;
358
+ this.categoryCounters.set(category, count2);
359
359
  if (existingCount === void 0) this.storagePattern = void 0;
360
- const placeholder = `[${category}_${count}]`;
360
+ const placeholder = `[${category}_${count2}]`;
361
361
  this.valueToPlaceholder.set(normalizedValue, placeholder);
362
362
  this.placeholderToValue.set(placeholder, normalizedValue);
363
363
  this.storageLookup = null;
@@ -370,15 +370,15 @@ var init_redactor = __esm({
370
370
  * (sequential, per-pattern) and the async {@link collectRegexSpans} (span)
371
371
  * paths so the detection rules live in exactly one place.
372
372
  */
373
- findMatches(text12, pattern) {
373
+ findMatches(text13, pattern) {
374
374
  const regex = new RegExp(pattern.regex.source, pattern.regex.flags);
375
375
  const found = [];
376
376
  let m;
377
- while ((m = regex.exec(text12)) !== null) {
377
+ while ((m = regex.exec(text13)) !== null) {
378
378
  const value = m[0];
379
379
  if (pattern.validate && !pattern.validate(value)) continue;
380
380
  if (pattern.context) {
381
- const before = text12.slice(Math.max(0, m.index - 40), m.index);
381
+ const before = text13.slice(Math.max(0, m.index - 40), m.index);
382
382
  if (!pattern.context.test(before)) continue;
383
383
  }
384
384
  found.push({ match: value, index: m.index });
@@ -394,9 +394,9 @@ var init_redactor = __esm({
394
394
  * earlier patterns, so an earlier (more specific) pattern claims a region
395
395
  * before a later one can — placeholders are inert and match no pattern.
396
396
  */
397
- scan(text12, makeReplacement) {
397
+ scan(text13, makeReplacement) {
398
398
  const matches = [];
399
- let redacted = text12;
399
+ let redacted = text13;
400
400
  for (const pattern of this.patterns) {
401
401
  const found = this.findMatches(redacted, pattern);
402
402
  if (found.length === 0) continue;
@@ -417,8 +417,8 @@ var init_redactor = __esm({
417
417
  * Scan and redact PII from a single text string, using numbered, reversible
418
418
  * placeholders ([EMAIL_1], …) tracked on this instance.
419
419
  */
420
- redactText(text12) {
421
- return this.scan(text12, (category, value) => this.getPlaceholder(category, value));
420
+ redactText(text13) {
421
+ return this.scan(text13, (category, value) => this.getPlaceholder(category, value));
422
422
  }
423
423
  /**
424
424
  * Mask PII with unnumbered, NON-reversible tokens ([EMAIL], [SSN], …) without
@@ -427,15 +427,15 @@ var init_redactor = __esm({
427
427
  * embeddings endpoint while staying deterministic, so the same content always
428
428
  * masks identically and search stays consistent across conversations.
429
429
  */
430
- maskText(text12) {
431
- return this.scan(text12, (category) => `[${category}]`).text;
430
+ maskText(text13) {
431
+ return this.scan(text13, (category) => `[${category}]`).text;
432
432
  }
433
433
  /** All regex matches as spans on the ORIGINAL text (priority 0). Uses the
434
434
  * same {@link findMatches} guards as the sync scan. */
435
- collectRegexSpans(text12) {
435
+ collectRegexSpans(text13) {
436
436
  const spans = [];
437
437
  this.patterns.forEach((pattern, patternIndex) => {
438
- for (const { match, index } of this.findMatches(text12, pattern)) {
438
+ for (const { match, index } of this.findMatches(text13, pattern)) {
439
439
  spans.push({
440
440
  start: index,
441
441
  end: index + match.length,
@@ -454,16 +454,16 @@ var init_redactor = __esm({
454
454
  * of "Stripe") from producing a corrupting partial placeholder like
455
455
  * `[ORG_1]e`.
456
456
  */
457
- normalizeNerSpans(text12, raw) {
457
+ normalizeNerSpans(text13, raw) {
458
458
  if (!Array.isArray(raw)) return [];
459
459
  const out = [];
460
460
  raw.forEach((s, i) => {
461
461
  if (!Number.isFinite(s.start) || !Number.isFinite(s.end)) return;
462
- let start = Math.max(0, Math.min(Math.trunc(s.start), text12.length));
463
- let end = Math.max(0, Math.min(Math.trunc(s.end), text12.length));
462
+ let start = Math.max(0, Math.min(Math.trunc(s.start), text13.length));
463
+ let end = Math.max(0, Math.min(Math.trunc(s.end), text13.length));
464
464
  if (end <= start) return;
465
- while (start > 0 && isWordChar(text12[start - 1])) start--;
466
- while (end < text12.length && isWordChar(text12[end])) end++;
465
+ while (start > 0 && isWordChar(text13[start - 1])) start--;
466
+ while (end < text13.length && isWordChar(text13[end])) end++;
467
467
  const category = String(s.category ?? "").trim();
468
468
  if (!category) return;
469
469
  out.push({ start, end, category, priority: 1, order: i });
@@ -472,10 +472,10 @@ var init_redactor = __esm({
472
472
  }
473
473
  /** Run the configured detector defensively: failures degrade to regex-only
474
474
  * (fail-open on detection, not on protection) with a one-time warning. */
475
- async detectNerSpans(text12) {
475
+ async detectNerSpans(text13) {
476
476
  if (!this.nerDetector) return [];
477
477
  try {
478
- return this.normalizeNerSpans(text12, await this.nerDetector.detect(text12));
478
+ return this.normalizeNerSpans(text13, await this.nerDetector.detect(text13));
479
479
  } catch (err) {
480
480
  this.warnNerFailure(err);
481
481
  return [];
@@ -508,11 +508,11 @@ var init_redactor = __esm({
508
508
  * in pattern then document order, matching the sync scan's numbering). The
509
509
  * string is then EMITTED in document order.
510
510
  */
511
- rebuildSpans(text12, spans, makeReplacement) {
511
+ rebuildSpans(text13, spans, makeReplacement) {
512
512
  const placeholderByStart = /* @__PURE__ */ new Map();
513
513
  const matches = [];
514
514
  for (const s of spans) {
515
- const value = text12.slice(s.start, s.end);
515
+ const value = text13.slice(s.start, s.end);
516
516
  const placeholder = makeReplacement(s.category, value);
517
517
  placeholderByStart.set(s.start, placeholder);
518
518
  matches.push({ category: s.category, original: value, placeholder });
@@ -521,16 +521,16 @@ var init_redactor = __esm({
521
521
  let result = "";
522
522
  let cursor = 0;
523
523
  for (const s of emitOrder) {
524
- result += text12.slice(cursor, s.start) + (placeholderByStart.get(s.start) ?? "");
524
+ result += text13.slice(cursor, s.start) + (placeholderByStart.get(s.start) ?? "");
525
525
  cursor = s.end;
526
526
  }
527
- result += text12.slice(cursor);
527
+ result += text13.slice(cursor);
528
528
  return { text: result, matches };
529
529
  }
530
530
  /** Merge regex + NER spans for `text` into a resolved, non-overlapping set. */
531
- async detectAllSpans(text12) {
532
- const nerPromise = this.detectNerSpans(text12);
533
- const regexSpans = this.collectRegexSpans(text12);
531
+ async detectAllSpans(text13) {
532
+ const nerPromise = this.detectNerSpans(text13);
533
+ const regexSpans = this.collectRegexSpans(text13);
534
534
  const ner = await nerPromise;
535
535
  return this.resolveOverlaps([...regexSpans, ...ner]);
536
536
  }
@@ -539,11 +539,11 @@ var init_redactor = __esm({
539
539
  * unstructured PII (the configured {@link NerDetector}) with numbered,
540
540
  * reversible placeholders. With no detector, identical to `redactText`.
541
541
  */
542
- async redactTextAsync(text12) {
543
- if (!this.nerDetector) return this.redactText(text12);
544
- const spans = await this.detectAllSpans(text12);
542
+ async redactTextAsync(text13) {
543
+ if (!this.nerDetector) return this.redactText(text13);
544
+ const spans = await this.detectAllSpans(text13);
545
545
  return this.rebuildSpans(
546
- text12,
546
+ text13,
547
547
  spans,
548
548
  (category, value) => this.getPlaceholder(category, value)
549
549
  );
@@ -552,10 +552,10 @@ var init_redactor = __esm({
552
552
  * Async counterpart to {@link maskText}: stateless `[CATEGORY]` masking over
553
553
  * regex + NER matches. With no detector, identical to `maskText`.
554
554
  */
555
- async maskTextAsync(text12) {
556
- if (!this.nerDetector) return this.maskText(text12);
557
- const spans = await this.detectAllSpans(text12);
558
- return this.rebuildSpans(text12, spans, (category) => `[${category}]`).text;
555
+ async maskTextAsync(text13) {
556
+ if (!this.nerDetector) return this.maskText(text13);
557
+ const spans = await this.detectAllSpans(text13);
558
+ return this.rebuildSpans(text13, spans, (category) => `[${category}]`).text;
559
559
  }
560
560
  /**
561
561
  * Async counterpart to {@link redactMessages}. Text parts are redacted
@@ -641,9 +641,9 @@ var init_redactor = __esm({
641
641
  * {@link restoreForStorage} instead, which tolerates the mangled echoes the
642
642
  * extraction models produce.
643
643
  */
644
- deAnonymize(text12) {
645
- if (!text12.includes("[")) return text12;
646
- let restored = text12;
644
+ deAnonymize(text13) {
645
+ if (!text13.includes("[")) return text13;
646
+ let restored = text13;
647
647
  for (const [placeholder, original] of this.placeholderToValue) {
648
648
  if (restored.includes(placeholder)) {
649
649
  restored = restored.split(placeholder).join(original);
@@ -668,15 +668,15 @@ var init_redactor = __esm({
668
668
  * - `unresolved` is derived from the lookup miss during this pass, not from a
669
669
  * regex re-scan of the output — so it can't trip over a restored value.
670
670
  */
671
- restoreForStorage(text12) {
671
+ restoreForStorage(text13) {
672
672
  if (this.storagePattern === void 0) this.storagePattern = this.buildStoragePattern();
673
673
  if (!this.storagePattern || this.placeholderToValue.size === 0) {
674
- return { text: text12, unresolved: false };
674
+ return { text: text13, unresolved: false };
675
675
  }
676
676
  this.storageLookup ?? (this.storageLookup = this.buildStorageLookup());
677
677
  const { exact, ci, ciCollisions } = this.storageLookup;
678
678
  let unresolved = false;
679
- const restored = text12.replace(
679
+ const restored = text13.replace(
680
680
  this.storagePattern,
681
681
  (match, bracketed, bare) => {
682
682
  const body = bracketed ?? bare ?? "";
@@ -892,44 +892,44 @@ async function callPortalJsonCompletion(req) {
892
892
  ),
893
893
  ...reinforce && { reinforceJsonContract: true }
894
894
  } : reinforce ? { ...req, reinforceJsonContract: true } : req;
895
- const outcome = await attemptPortalJson(
895
+ const outcome2 = await attemptPortalJson(
896
896
  { ...attemptReq, transport },
897
897
  endpoint
898
898
  );
899
- if (outcome.kind === "ok") {
899
+ if (outcome2.kind === "ok") {
900
900
  req.onAttempt?.({ attempt, ok: true });
901
- return outcome.value;
901
+ return outcome2.value;
902
902
  }
903
903
  req.onAttempt?.({
904
904
  attempt,
905
905
  ok: false,
906
- reason: outcome.code,
907
- ...outcome.httpStatus !== void 0 && { httpStatus: outcome.httpStatus }
906
+ reason: outcome2.code,
907
+ ...outcome2.httpStatus !== void 0 && { httpStatus: outcome2.httpStatus }
908
908
  });
909
909
  lastFailure = {
910
- reason: outcome.code,
911
- ...outcome.httpStatus !== void 0 && { httpStatus: outcome.httpStatus },
910
+ reason: outcome2.code,
911
+ ...outcome2.httpStatus !== void 0 && { httpStatus: outcome2.httpStatus },
912
912
  attempts: attempt
913
913
  };
914
- if (outcome.code === "invalid-json" || outcome.code === "null-completion") reinforce = true;
915
- if (outcome.kind === "terminal") {
916
- log.warn(`[${req.tag}] ${outcome.reason}`);
914
+ if (outcome2.code === "invalid-json" || outcome2.code === "null-completion") reinforce = true;
915
+ if (outcome2.kind === "terminal") {
916
+ log.warn(`[${req.tag}] ${outcome2.reason}`);
917
917
  return giveUp();
918
918
  }
919
919
  if (attempt >= maxAttempts) {
920
- log.warn(`[${req.tag}] ${outcome.reason} \u2014 attempt ${attempt}/${maxAttempts}, giving up`);
920
+ log.warn(`[${req.tag}] ${outcome2.reason} \u2014 attempt ${attempt}/${maxAttempts}, giving up`);
921
921
  break;
922
922
  }
923
923
  const backoff = (req.backoffMs ?? defaultBackoffMs)(attempt);
924
- const delay = Math.max(backoff, outcome.retryAfterMs ?? 0);
924
+ const delay = Math.max(backoff, outcome2.retryAfterMs ?? 0);
925
925
  if (overBudget() || req.totalTimeoutMs !== void 0 && Date.now() - startedAt + delay >= req.totalTimeoutMs) {
926
926
  log.warn(
927
- `[${req.tag}] ${outcome.reason} \u2014 attempt ${attempt}/${maxAttempts}, over time budget, giving up`
927
+ `[${req.tag}] ${outcome2.reason} \u2014 attempt ${attempt}/${maxAttempts}, over time budget, giving up`
928
928
  );
929
929
  lastFailure = { reason: "time-budget-exhausted", attempts: attempt };
930
930
  break;
931
931
  }
932
- log.warn(`[${req.tag}] ${outcome.reason} \u2014 attempt ${attempt}/${maxAttempts}, retrying`);
932
+ log.warn(`[${req.tag}] ${outcome2.reason} \u2014 attempt ${attempt}/${maxAttempts}, retrying`);
933
933
  if (delay > 0) await sleep3(delay);
934
934
  }
935
935
  return giveUp();
@@ -1132,8 +1132,8 @@ function extractResponsesContent(body) {
1132
1132
  if (!root) return null;
1133
1133
  if (typeof root.output_text === "string" && root.output_text !== "") return root.output_text;
1134
1134
  if (!Array.isArray(root.output)) return null;
1135
- const text12 = root.output.filter((item) => asRecord(item)?.type === "message").flatMap((item) => Array.isArray(item.content) ? item.content : []).map((part) => asRecord(part)?.text).filter((t) => typeof t === "string").join("");
1136
- return text12;
1135
+ const text13 = root.output.filter((item) => asRecord(item)?.type === "message").flatMap((item) => Array.isArray(item.content) ? item.content : []).map((part) => asRecord(part)?.text).filter((t) => typeof t === "string").join("");
1136
+ return text13;
1137
1137
  }
1138
1138
  var RESPONSE_FORMAT_OK, RESPONSE_SCHEMA_OK, JSON_CONTRACT_REMINDER, RESPONSES_ONLY_MODEL_PREFIXES, CHAT_TO_RESPONSES_FIELDS, FOREIGN_ENDPOINT_SUFFIX, RETRYABLE_HTTP;
1139
1139
  var init_portalLlm = __esm({
@@ -1391,6 +1391,7 @@ __export(index_exports, {
1391
1391
  MEDIUM_TTL_MS: () => MEDIUM_TTL_MS,
1392
1392
  MEMORY_KINDS: () => MEMORY_KINDS,
1393
1393
  MEMORY_LEVELS: () => MEMORY_LEVELS,
1394
+ MemoryKeyError: () => MemoryKeyError,
1394
1395
  MemoryLevelError: () => MemoryLevelError,
1395
1396
  NEVER_TTL_MS: () => NEVER_TTL_MS,
1396
1397
  NODE_BUDGET: () => NODE_BUDGET,
@@ -1403,6 +1404,7 @@ __export(index_exports, {
1403
1404
  RECALL_MAX_LIMIT: () => RECALL_MAX_LIMIT,
1404
1405
  RECALL_TOOL_NAME: () => RECALL_TOOL_NAME,
1405
1406
  RemoteMemoryError: () => RemoteMemoryError,
1407
+ RemoteMemoryPartialCreateError: () => RemoteMemoryPartialCreateError,
1406
1408
  RerankerUnavailableError: () => RerankerUnavailableError,
1407
1409
  SDK_SCHEMA_VERSION: () => SDK_SCHEMA_VERSION,
1408
1410
  SHORT_TTL_MS: () => SHORT_TTL_MS,
@@ -1468,6 +1470,7 @@ __export(index_exports, {
1468
1470
  createRecallTool: () => createRecallTool,
1469
1471
  createRemoteMemoryPersistence: () => createRemoteMemoryPersistence,
1470
1472
  createRemoteMemoryPipeline: () => createRemoteMemoryPipeline,
1473
+ createRemoteMemoryStore: () => createRemoteMemoryStore,
1471
1474
  createStockPricePreProcessor: () => createStockPricePreProcessor,
1472
1475
  createStreamingDeAnonymizer: () => createStreamingDeAnonymizer,
1473
1476
  createVaultEmbeddingCache: () => createVaultEmbeddingCache,
@@ -1484,6 +1487,7 @@ __export(index_exports, {
1484
1487
  deleteVaultMemoryOp: () => deleteVaultMemoryOp,
1485
1488
  dequantizeEmbedding: () => dequantizeEmbedding,
1486
1489
  deriveKeyFromSignatureBytes: () => deriveKeyFromSignatureBytes,
1490
+ deriveMemoryKeyRing: () => deriveMemoryKeyRing,
1487
1491
  discoverNotionOAuthEndpoints: () => discoverNotionOAuthEndpoints,
1488
1492
  eagerEmbedContent: () => eagerEmbedContent,
1489
1493
  embedAllMessages: () => embedAllMessages,
@@ -1495,6 +1499,7 @@ __export(index_exports, {
1495
1499
  extractAndRetain: () => extractAndRetain,
1496
1500
  extractEntitiesForMemories: () => extractEntitiesForMemories,
1497
1501
  extractFacts: () => extractFacts,
1502
+ extractReservationReceipts: () => extractReservationReceipts,
1498
1503
  formatFileProcessingNotes: () => formatFileProcessingNotes,
1499
1504
  generateConversationId: () => generateConversationId,
1500
1505
  generateEmbedding: () => generateEmbedding,
@@ -1527,6 +1532,7 @@ __export(index_exports, {
1527
1532
  isPiiRedactor: () => isPiiRedactor,
1528
1533
  isRerankerAvailable: () => isRerankerAvailable,
1529
1534
  maskScopedEmbeddingCache: () => maskScopedEmbeddingCache,
1535
+ memoryCipher: () => memoryCipher,
1530
1536
  moveMemoriesToFolderOp: () => moveMemoriesToFolderOp,
1531
1537
  noopLogger: () => noopLogger,
1532
1538
  onKeyAvailable: () => onKeyAvailable,
@@ -1536,6 +1542,7 @@ __export(index_exports, {
1536
1542
  queueManager: () => queueManager,
1537
1543
  rankProfileCandidates: () => rankProfileCandidates,
1538
1544
  recall: () => recall,
1545
+ reencryptMemoryField: () => reencryptMemoryField,
1539
1546
  reflect: () => reflect,
1540
1547
  refreshEncryptionKeyIfMatches: () => refreshEncryptionKeyIfMatches,
1541
1548
  refreshNotionAccessToken: () => refreshNotionAccessToken,
@@ -3163,8 +3170,8 @@ var ATTACHED_FILES_OPEN_TAG = "<attached_files>";
3163
3170
  var ATTACHED_FILES_CLOSE_TAG = "</attached_files>";
3164
3171
  var ATTACHED_FILES_PREFIX = `${ATTACHED_FILES_OPEN_TAG}
3165
3172
  The user attached the following file(s) to this message. Their extracted contents are below; when the user refers to "the attached file", "this file" or "the document", they mean these.`;
3166
- function isAttachedFilesText(text12) {
3167
- return typeof text12 === "string" && text12.startsWith(ATTACHED_FILES_PREFIX) && text12.endsWith(ATTACHED_FILES_CLOSE_TAG);
3173
+ function isAttachedFilesText(text13) {
3174
+ return typeof text13 === "string" && text13.startsWith(ATTACHED_FILES_PREFIX) && text13.endsWith(ATTACHED_FILES_CLOSE_TAG);
3168
3175
  }
3169
3176
  function buildAttachedFilesText(fileContext) {
3170
3177
  return `${ATTACHED_FILES_PREFIX}
@@ -3919,14 +3926,14 @@ async function updateMessageEmbeddingOp(ctx, uniqueId, vector, embeddingModel) {
3919
3926
  });
3920
3927
  return messageToStored(message, ctx.walletAddress, ctx.signMessage, ctx.embeddedWalletSigner);
3921
3928
  }
3922
- async function updateMessageChunksOp(ctx, uniqueId, chunks, embeddingModel) {
3929
+ async function updateMessageChunksOp(ctx, uniqueId, chunks2, embeddingModel) {
3923
3930
  let message;
3924
3931
  try {
3925
3932
  message = await ctx.messagesCollection.find(uniqueId);
3926
3933
  } catch {
3927
3934
  return null;
3928
3935
  }
3929
- const storedChunks = chunks.map(({ text: _text, ...rest }) => rest);
3936
+ const storedChunks = chunks2.map(({ text: _text, ...rest }) => rest);
3930
3937
  await ctx.database.write(async () => {
3931
3938
  await message.update((msg) => {
3932
3939
  msg._setRaw("chunks", JSON.stringify(storedChunks));
@@ -3970,12 +3977,12 @@ async function stripLegacyChunkTextOp(ctx) {
3970
3977
  const messages = await ctx.messagesCollection.query(import_watermelondb2.Q.where("id", import_watermelondb2.Q.oneOf(changedIds))).fetch();
3971
3978
  const updates = messages.flatMap((message) => {
3972
3979
  const raw = message._raw;
3973
- const chunks = chunksWithoutText(raw.chunks);
3974
- if (!chunks) return [];
3980
+ const chunks2 = chunksWithoutText(raw.chunks);
3981
+ if (!chunks2) return [];
3975
3982
  const updatedAt = raw.updated_at;
3976
3983
  return [
3977
3984
  message.prepareUpdate((msg) => {
3978
- msg._setRaw("chunks", JSON.stringify(chunks));
3985
+ msg._setRaw("chunks", JSON.stringify(chunks2));
3979
3986
  msg._setRaw("updated_at", updatedAt);
3980
3987
  })
3981
3988
  ];
@@ -4136,15 +4143,15 @@ async function searchChunksOp(ctx, queryVector, options) {
4136
4143
  }
4137
4144
  continue;
4138
4145
  }
4139
- const chunks = await readRawJsonField(message, "chunks", ctx.walletAddress);
4140
- if (chunks && chunks.length > 0) {
4141
- const vectors = chunks.map(
4146
+ const chunks2 = await readRawJsonField(message, "chunks", ctx.walletAddress);
4147
+ if (chunks2 && chunks2.length > 0) {
4148
+ const vectors = chunks2.map(
4142
4149
  (chunk) => decodeChunkVector(chunk.vector, () => {
4143
4150
  unreadableVectors++;
4144
4151
  })
4145
4152
  );
4146
4153
  chunkCache?.set(message.id, { version, chunks: vectors });
4147
- for (let ci = 0; ci < chunks.length; ci++) {
4154
+ for (let ci = 0; ci < chunks2.length; ci++) {
4148
4155
  const vec = vectors[ci];
4149
4156
  if (vec.length === 0) continue;
4150
4157
  const similarity = cosineSimilarity(queryVector, vec);
@@ -4152,7 +4159,7 @@ async function searchChunksOp(ctx, queryVector, options) {
4152
4159
  candidates.push({
4153
4160
  message,
4154
4161
  similarity,
4155
- chunkTextSource: { kind: "chunk", chunk: chunks[ci], siblings: chunks }
4162
+ chunkTextSource: { kind: "chunk", chunk: chunks2[ci], siblings: chunks2 }
4156
4163
  });
4157
4164
  }
4158
4165
  }
@@ -4268,49 +4275,49 @@ init_logger();
4268
4275
  var DEFAULT_CHUNK_SIZE = 400;
4269
4276
  var DEFAULT_CHUNK_OVERLAP = 50;
4270
4277
  var DEFAULT_MIN_CHUNK_SIZE = 50;
4271
- function splitIntoSentences(text12) {
4278
+ function splitIntoSentences(text13) {
4272
4279
  const sentenceRegex = /[.!?]+[\s"')}\]]*(?=\s|$)/g;
4273
4280
  const sentences = [];
4274
4281
  let lastIndex = 0;
4275
4282
  let match;
4276
- while ((match = sentenceRegex.exec(text12)) !== null) {
4283
+ while ((match = sentenceRegex.exec(text13)) !== null) {
4277
4284
  const endIndex = match.index + match[0].length;
4278
- const sentence = text12.slice(lastIndex, endIndex).trim();
4285
+ const sentence = text13.slice(lastIndex, endIndex).trim();
4279
4286
  if (sentence) {
4280
4287
  sentences.push(sentence);
4281
4288
  }
4282
4289
  lastIndex = endIndex;
4283
4290
  }
4284
- const remaining = text12.slice(lastIndex).trim();
4291
+ const remaining = text13.slice(lastIndex).trim();
4285
4292
  if (remaining) {
4286
4293
  sentences.push(remaining);
4287
4294
  }
4288
4295
  return sentences;
4289
4296
  }
4290
- function chunkText(text12, options) {
4297
+ function chunkText(text13, options) {
4291
4298
  const {
4292
4299
  chunkSize = DEFAULT_CHUNK_SIZE,
4293
4300
  chunkOverlap: requestedOverlap = DEFAULT_CHUNK_OVERLAP,
4294
4301
  minChunkSize = DEFAULT_MIN_CHUNK_SIZE
4295
4302
  } = options ?? {};
4296
4303
  const chunkOverlap = Math.min(requestedOverlap, chunkSize - 1);
4297
- if (text12.length <= chunkSize) {
4304
+ if (text13.length <= chunkSize) {
4298
4305
  return [
4299
4306
  {
4300
- text: text12.trim(),
4307
+ text: text13.trim(),
4301
4308
  startOffset: 0,
4302
- endOffset: text12.length
4309
+ endOffset: text13.length
4303
4310
  }
4304
4311
  ];
4305
4312
  }
4306
- const sentences = splitIntoSentences(text12);
4307
- const chunks = [];
4313
+ const sentences = splitIntoSentences(text13);
4314
+ const chunks2 = [];
4308
4315
  let currentChunkSentences = [];
4309
4316
  let currentChunkStart = 0;
4310
4317
  let currentOffset = 0;
4311
4318
  for (let i = 0; i < sentences.length; i++) {
4312
4319
  const sentence = sentences[i];
4313
- let sentenceStart = text12.indexOf(sentence, currentOffset);
4320
+ let sentenceStart = text13.indexOf(sentence, currentOffset);
4314
4321
  if (sentenceStart === -1) {
4315
4322
  sentenceStart = currentOffset;
4316
4323
  }
@@ -4318,7 +4325,7 @@ function chunkText(text12, options) {
4318
4325
  if (sentence.length > chunkSize) {
4319
4326
  if (currentChunkSentences.length > 0) {
4320
4327
  const chunkText2 = currentChunkSentences.join(" ");
4321
- chunks.push({
4328
+ chunks2.push({
4322
4329
  text: chunkText2,
4323
4330
  startOffset: currentChunkStart,
4324
4331
  endOffset: currentOffset
@@ -4329,7 +4336,7 @@ function chunkText(text12, options) {
4329
4336
  const chunkEnd = Math.min(j + chunkSize, sentence.length);
4330
4337
  const chunk = sentence.slice(j, chunkEnd);
4331
4338
  if (chunk.length >= minChunkSize) {
4332
- chunks.push({
4339
+ chunks2.push({
4333
4340
  text: chunk,
4334
4341
  startOffset: sentenceStart + j,
4335
4342
  endOffset: sentenceStart + chunkEnd
@@ -4343,7 +4350,7 @@ function chunkText(text12, options) {
4343
4350
  const currentText = currentChunkSentences.join(" ");
4344
4351
  const potentialLength = currentText.length + (currentText ? 1 : 0) + sentence.length;
4345
4352
  if (potentialLength > chunkSize && currentChunkSentences.length > 0) {
4346
- chunks.push({
4353
+ chunks2.push({
4347
4354
  text: currentText,
4348
4355
  startOffset: currentChunkStart,
4349
4356
  endOffset: currentOffset
@@ -4357,7 +4364,7 @@ function chunkText(text12, options) {
4357
4364
  if (overlapSentences.length > 0) {
4358
4365
  currentChunkSentences = [...overlapSentences, sentence];
4359
4366
  const overlapText = overlapSentences[0];
4360
- const overlapStart = text12.lastIndexOf(overlapText, currentOffset);
4367
+ const overlapStart = text13.lastIndexOf(overlapText, currentOffset);
4361
4368
  currentChunkStart = overlapStart === -1 ? sentenceStart : overlapStart;
4362
4369
  } else {
4363
4370
  currentChunkSentences = [sentence];
@@ -4374,26 +4381,26 @@ function chunkText(text12, options) {
4374
4381
  if (currentChunkSentences.length > 0) {
4375
4382
  const chunkText2 = currentChunkSentences.join(" ");
4376
4383
  if (chunkText2.length >= minChunkSize) {
4377
- chunks.push({
4384
+ chunks2.push({
4378
4385
  text: chunkText2,
4379
4386
  startOffset: currentChunkStart,
4380
- endOffset: text12.length
4387
+ endOffset: text13.length
4381
4388
  });
4382
4389
  }
4383
4390
  }
4384
- if (chunks.length === 0) {
4385
- const trimmedText = text12.trim();
4391
+ if (chunks2.length === 0) {
4392
+ const trimmedText = text13.trim();
4386
4393
  if (trimmedText.length > 0) {
4387
4394
  return [
4388
4395
  {
4389
4396
  text: trimmedText,
4390
4397
  startOffset: 0,
4391
- endOffset: text12.length
4398
+ endOffset: text13.length
4392
4399
  }
4393
4400
  ];
4394
4401
  }
4395
4402
  }
4396
- return chunks;
4403
+ return chunks2;
4397
4404
  }
4398
4405
  function shouldChunkMessage(content, chunkSize = DEFAULT_CHUNK_SIZE) {
4399
4406
  return content.length > chunkSize;
@@ -4465,9 +4472,9 @@ function createSseClient({
4465
4472
  if (done) break;
4466
4473
  buffer += value;
4467
4474
  buffer = buffer.replace(/\r\n?/g, "\n");
4468
- const chunks = buffer.split("\n\n");
4469
- buffer = chunks.pop() ?? "";
4470
- for (const chunk of chunks) {
4475
+ const chunks2 = buffer.split("\n\n");
4476
+ buffer = chunks2.pop() ?? "";
4477
+ for (const chunk of chunks2) {
4471
4478
  const lines = chunk.split("\n");
4472
4479
  const dataLines = [];
4473
4480
  let eventName;
@@ -5080,8 +5087,8 @@ var createClient = (config = {}) => {
5080
5087
  data = await response[parseAs]();
5081
5088
  break;
5082
5089
  case "json": {
5083
- const text12 = await response.text();
5084
- data = text12 ? JSON.parse(text12) : {};
5090
+ const text13 = await response.text();
5091
+ data = text13 ? JSON.parse(text13) : {};
5085
5092
  break;
5086
5093
  }
5087
5094
  case "stream":
@@ -5291,16 +5298,16 @@ function embeddingErrorFrom(response) {
5291
5298
  const message = typeof response.error === "object" && response.error && "error" in response.error ? response.error.error : "API embedding failed";
5292
5299
  return new EmbeddingHttpError(message, response.response?.status);
5293
5300
  }
5294
- async function generateEmbedding(text12, options) {
5301
+ async function generateEmbedding(text13, options) {
5295
5302
  const total = options.totalTimeoutMs;
5296
- if (total === void 0) return embedOne(text12, options, void 0);
5297
- return withDeadline((signal) => embedOne(text12, options, signal), total, "embedding");
5303
+ if (total === void 0) return embedOne(text13, options, void 0);
5304
+ return withDeadline((signal) => embedOne(text13, options, signal), total, "embedding");
5298
5305
  }
5299
- async function embedOne(text12, options, outer) {
5306
+ async function embedOne(text13, options, outer) {
5300
5307
  const { baseUrl = BASE_URL, model, cache } = options;
5301
5308
  const timeoutMs = options.timeoutMs ?? DEFAULT_EMBEDDING_REQUEST_TIMEOUT_MS;
5302
5309
  if (cache) {
5303
- const cached = cache.get(text12);
5310
+ const cached = cache.get(text13);
5304
5311
  if (cached) return Array.from(cached);
5305
5312
  }
5306
5313
  const headers = await resolveAuthHeaders(options, outer);
@@ -5309,7 +5316,7 @@ async function embedOne(text12, options, outer) {
5309
5316
  (signal) => postApiV1Embeddings({
5310
5317
  baseUrl,
5311
5318
  body: {
5312
- input: options.maskInput ? options.maskInput(text12) : text12,
5319
+ input: options.maskInput ? options.maskInput(text13) : text13,
5313
5320
  model: model ?? DEFAULT_API_EMBEDDING_MODEL
5314
5321
  },
5315
5322
  headers,
@@ -5336,7 +5343,7 @@ async function embedOne(text12, options, outer) {
5336
5343
  }
5337
5344
  const f32Embedding = Float32Array.from(embedding);
5338
5345
  if (cache) {
5339
- cache.set(text12, f32Embedding);
5346
+ cache.set(text13, f32Embedding);
5340
5347
  }
5341
5348
  return Array.from(f32Embedding);
5342
5349
  }
@@ -5414,18 +5421,18 @@ async function embedMany(texts, options, outer) {
5414
5421
  outer
5415
5422
  );
5416
5423
  } else {
5417
- const chunks = [];
5424
+ const chunks2 = [];
5418
5425
  for (let i = 0; i < uncachedTexts.length; i += chunkSize) {
5419
- chunks.push(uncachedTexts.slice(i, i + chunkSize));
5426
+ chunks2.push(uncachedTexts.slice(i, i + chunkSize));
5420
5427
  }
5421
- const allEmbeddings = new Array(chunks.length);
5428
+ const allEmbeddings = new Array(chunks2.length);
5422
5429
  let nextIndex = 0;
5423
5430
  const worker = async () => {
5424
- while (nextIndex < chunks.length) {
5431
+ while (nextIndex < chunks2.length) {
5425
5432
  if (outer?.aborted) throw outer.reason;
5426
5433
  const idx = nextIndex++;
5427
5434
  allEmbeddings[idx] = await generateEmbeddingsBatch(
5428
- chunks[idx],
5435
+ chunks2[idx],
5429
5436
  headers,
5430
5437
  baseUrl,
5431
5438
  embeddingModel,
@@ -5437,7 +5444,7 @@ async function embedMany(texts, options, outer) {
5437
5444
  }
5438
5445
  };
5439
5446
  const workers = Array.from(
5440
- { length: Math.min(DEFAULT_EMBEDDING_BATCH_CONCURRENCY, chunks.length) },
5447
+ { length: Math.min(DEFAULT_EMBEDDING_BATCH_CONCURRENCY, chunks2.length) },
5441
5448
  () => worker()
5442
5449
  );
5443
5450
  await Promise.all(workers);
@@ -5670,10 +5677,10 @@ var cryptoPriceCentroid = [0.025576787463333337, 0.0017598020599999997, -0.01339
5670
5677
  var noCryptoPriceCentroid = [0.015473095138684206, 0.0031634101517105263, -0.011257569272697374, -0.02186071628118421, 0.008889833600921049, -0.006683160151842105, -0.009353561542368423, 0.01352172231447368, -0.01804750482084211, -0.00367377302894737, -0.02944732364736842, -0.002762284484078947, 0.033265779919736845, -0.006296026233684209, 0.022671929989210516, -0.0011530866775394733, 0.007070449366500001, -0.0050351310097368415, 0.010799295548421052, 8887227547368423e-20, 0.016334833743289468, 0.014258147745263154, 0.009584979092368422, 0.003050773904342107, -0.013426355076315791, 0.03582639014592105, -0.01160198427105263, -0.012974957788421051, -0.0031303864967105266, 0.021372544676315785, -0.02374843410263159, -0.009223416682894739, 0.005602822635394739, 0.02924898819473684, -0.014123551471890794, 0.019027650408421047, -0.005074793619605263, -4600031255263159e-19, 0.010498459563947368, -0.011094227593421054, 0.010249076817105258, -5753623577631579e-19, -0.005674418818421051, -0.00447285064486842, -0.005516097867105263, -0.007470266562368424, -0.005471375803289476, -0.006780112021052632, 0.007059772195657894, 0.0021554959672368413, 0.004705735464473685, -0.02317132775394737, -0.011564555390789474, -0.002422056378552632, -0.006380764081578948, -0.004005146213289473, -0.00794062262769737, 0.01414054164342105, -0.01016237577355263, 0.003978143405131578, -0.03655277326578946, 0.006158242906276315, 0.004217046339078946, -0.008940671309210528, -0.00673433677186842, 0.010728261618421055, 0.005998754786184212, -0.012994214264868421, 0.01220040680802632, -0.010796953655434208, -0.006105011632500001, 0.008011191312894737, 0.006423354985394737, 0.0012142853823684213, 0.009146709284210528, 0.022887410982105266, -0.022682944046052637, -0.020356859009684213, 0.010394592805789476, 0.022593094030263154, -7750265294736841e-19, 0.010491877809868419, -0.00632094335789474, -0.00435166075344737, -0.0033312799659210527, -0.013687921215789472, -0.0021700710893421053, -0.009265354446052636, -0.007450454793684212, -0.01119890545223684, 0.01885215469736842, -0.0016829954880263156, 0.004660542770078946, 0.01614547219013159, 0.0012384379707105267, 0.0012953595593421052, -0.019026688374473685, -0.012046473879210519, -0.01890812402105263, -0.0013315808465131577, 0.011091345418421055, 0.021520818015789468, -0.005630902795947368, -0.0019751528094210527, 0.016361938930000004, -0.006861605829210528, -0.0028363347098684204, 0.008591381667894738, -0.009064190686052631, 0.0019356226038157898, 6169263489473686e-19, 0.005576595939605265, 0.01869662389342105, 0.001262012349342105, -0.005366806441447369, -0.016217105081578947, 0.0016831897417500007, -0.0018950253057894739, -0.002175052982236842, 0.015151523774342104, 0.009984357328157894, -0.008543766583157896, -0.00730858755781579, -0.005671754766447369, 0.016222894231578945, -0.006877592555789474, -0.00339728109881579, 0.002327833744078947, -0.007433236152460526, 0.003641817336996051, -22983315413157884e-20, -0.018579861956578948, -0.002013661149605263, -0.0012221983013157892, -0.005588193124592107, 0.0017740131994736844, -0.005087314752105264, -0.0024032324010526303, -0.021181957791973682, 0.015352973211842105, 0.0014077697809210523, 0.01886358938289474, 0.0034620092081578944, 0.001262707815105263, -0.016702094776315787, 0.0024528663467105263, -0.015399577423684214, 0.013716609889342105, 0.008007916322368419, 17873636657894727e-20, 0.012559814308552636, 0.004152347459210525, -0.007167261042105263, -0.010308009533421052, -0.0118209450956579, 0.0034850848647894755, -0.01689842138618421, 0.02312426354868421, 0.018107834585526318, -0.005113781234210525, 0.0036598878982894733, -0.002219674033289473, 0.010094555771578948, -0.004721280503184208, -4728102780263162e-19, -0.005741379793631579, 0.004688492021052632, -0.009298409537368421, 0.021306954543421058, 0.002625481324473684, 0.0021689222906578947, 0.0016470091790789468, 0.021918357023684207, 0.01859015762499999, 0.008736974258815788, -0.007575892959605263, 0.0012198560669736834, -0.013031221881184206, 0.005416682665447367, 0.014852952819736842, -27517017642368397e-20, 0.01096887469118421, -0.0013455180846052635, 0.022272436745131585, 0.0067934349073684175, 0.012959732387171052, -0.02075517668026316, -0.0064723936585, -0.0038070007211315794, 0.0012372250631578945, 0.0050306169430263175, -0.006763357246763157, -0.006772821312763157, 0.010125664042499998, 0.002038023320000001, 0.011549378190657895, 0.0029378070836842116, 0.010960937982500004, 0.010825824704473684, 0.0021591957962631583, 0.04206184268421052, -0.024262397277631575, 0.008255900677763156, 0.009695903923947372, -0.007390906788684211, -0.008087284358947368, -0.021996855926315787, 0.011287301983684214, -5568711708289474e-19, -0.014932725518421055, 0.009245778972302627, 0.0015213949119210516, 0.009132084528947367, 0.016006044472368423, 0.011636527018026314, 0.006784626309736844, 0.013307319816763155, -0.0027379106158421057, -0.0020452238106578946, -0.004009475287105262, 0.010760948439342109, -0.008745640049473686, -0.003213084865263158, -0.002908590922105263, -0.008224298627236842, -0.01243814725003421, 0.002076089559092105, -0.009891295528947368, 0.002955430833842103, -0.026389982763157894, 0.00307576746013158, -0.019563673766447378, 0.0016621273825, -0.008313485993421054, 0.004804929035789474, -0.00549750888473684, 0.00505214069705263, -0.011755459830263165, -0.0024296008852631576, 0.00875007432236842, -0.008075735610789475, -0.01105359596322368, 0.0039991457536842105, -0.010148718380263164, 0.0025960758788157894, -0.010566656651710528, 0.012436943196578952, -0.016535537697368412, 0.01290098068868421, -0.01656991388736842, -0.007831062019144736, 0.005940865221447369, -9759450793421052e-19, -0.008620581310184207, -0.003005893026447368, -0.002761302409605262, -0.0030793885886842114, -0.006974357054078946, 9721991617105264e-19, 0.010942189804473684, 0.002026653777631579, -0.012401945011578947, 0.0033469499360526318, 0.018924720229473682, -0.005991988553184208, 0.0033316007316315788, -0.015320591599605263, -0.02128828745542763, -0.0022622942237697373, 0.0069056783826315785, 0.004446302767763156, -0.016207595330789474, 11362097776315657e-20, 0.008954130263986842, -0.010221943235789475, 0.014461354018157896, 0.0028590932341973686, -0.010514913011447373, -0.015841919529473683, -0.01389901701263158, -0.009229765706842105, 2461921435526319e-19, 0.020577489130263162, -0.022800926136842106, -0.0015163221825394738, -0.013809464157236842, 0.004897803686315791, 0.018522811494736845, -0.009630460222828948, 0.011984547498157897, 0.0111937101125, 0.015270678807631577, 0.0019252811815789483, 0.014758101361842106, -0.005758524065263159, -0.0021391250729868427, -0.010472078178684207, -0.012900316256973682, -0.0014497102297763157, 0.006431885074342107, -0.003826420850657895, 0.004125123941578948, 7190557013157885e-20, 0.005760016457894736, -0.01029894582407894, -0.014202551836842109, -0.008429392661184212, -0.004542960022631579, 0.004390327258289474, -0.017841332352631578, -0.02092670811578947, -0.011721044171184207, 0.001154552708868421, -0.008358092435263156, -0.009767428120921056, 0.00617505359518421, 0.004506490673552631, 0.0020017606636842113, -0.00796983946092105, 0.020977802086842096, -0.0075353952266447415, -0.007463197555921055, -0.012128650817236842, 0.019736432668421053, 0.002261451146973684, 0.004720614210526316, -0.009998388954473686, -0.005624677788552632, -0.022545385379078953, -0.001583800878381579, -0.002379242887671053, -0.006442413411381578, -0.00695587538394737, 0.0011264698367105268, -0.0045705394853947385, -0.0015821324533815784, 0.023414226677631576, -0.0012724761923684214, 0.023761430540263154, 0.0029503868397894734, -0.0033352330858684217, -0.011512791865657892, 0.00981099949723684, -5708729797368422e-19, 8188937956578947e-19, 0.010694227110197371, 0.008592401465789476, -35825991868421067e-20, -0.004266100294447367, 0.005692018715789475, -0.0033002098638157907, 0.004866896994999999, 0.01000889828684211, 0.006752862654868419, 0.0026472819757499995, -0.005589931472697369, -0.017258877186842114, 0.01836197345605264, 0.003980058679868421, -0.0020851821997368417, -0.006682193140302631, 0.008638199788657895, 0.01154588990657895, -0.0014030509926710529, 0.00623447043604513, 0.016997480921671054, -0.0076195284961842105, 9118090571052634e-19, -0.01740562824342105, 0.001625513271842105, -0.012645379938157893, 0.010188843557894742, -0.012510250708026317, 0.0014163581344342104, 0.007640950823026323, 0.009030281375263157, -6778679552631581e-19, -0.021454867002973686, 0.001957897549473684, 0.001193311223026316, 0.0027351965483684215, -0.05114138984210526, 9931653628947367e-19, -0.0034956210430263156, -0.011831037061315788, 0.010289316701315792, -0.006878016126315793, 0.004890278758947368, 0.005483033461842105, -0.01275958679236842, -0.01331795716276316, 0.003143929424078947, -0.0022857318045394724, 0.007633577711973686, 0.0021747185855263158, 0.005520500721710526, 0.008252045688684212, -0.014708749063026315, -0.010071718517500002, 0.004989717453947367, 0.017077984349605266, -8273659215789473e-19, 0.005120420113328947, 0.007857212020657894, -0.007720276348289473, 0.002462438197763158, -55125038157895184e-21, 0.004356982750105262, -0.00700954478736842, 0.008855195414342104, -0.007593518517105262, 5683125496052636e-19, 0.006104346186842107, 0.0018523006100263158, 0.011868568778421053, 0.008818247002631579, 0.007355409463684211, 0.014110024566184213, -0.004139245012105264, -0.008042714513815788, -0.008814672356447366, 0.010348661143157892, 0.008645756135526317, -0.0039321516707894735, -0.018719250872499996, 0.016164309558789468, 0.011362069608157893, 0.012222493691973682, 0.009424688908947371, -0.00664402617118421, -0.007866664878289475, -0.012993650039078946, -0.018103016852631583, -0.0065906644863157875, 0.004789760346776317, -0.014935053199342104, 0.014902569211842109, 0.004785409491052631, 0.007345346444473684, 0.003159245409736842, 0.01312098370328947, 0.006301784642499999, 0.005022653047368423, -0.002849895648684211, -0.0032933022748421045, 0.004350993063026316, -0.007350343983026319, 0.010007334274736844, -0.0028172315381578953, -0.011997126834394734, -0.005281044011052631, 0.017256082294736845, -0.026231524928157893, 0.001482624986578947, -0.01504677556723684, -0.006961093627631583, -0.009158235009605265, -0.010464971171052636, -0.012205843889473683, 0.013581314933421051, 0.024057515715473682, -0.026571698318421058, -39512425210526327e-20, -0.008364490104342107, 0.01043953546486842, -0.006329244778157894, 0.00677121107763158, -0.006404679137105265, -0.008498417039605265, -0.011997726845921054, -0.00819236379276316, -0.008719842036447368, 2480567830263159e-19, -0.009615319662105265, 0.010179268672105262, 0.010257863497157897, -0.002203600034342105, -0.014915970727368411, 0.010107625643947371, -0.0016536920541710522, -0.006636945585526316, -0.016858044851315784, -0.020209110402631573, -0.007010765250131577, 0.0073754879921052625, 0.019676440628368427, 0.010058316429868416, -0.026224092562236838, -0.010421548158342108, 0.004843649796842105, -0.018334794059605263, 0.007321559153421053, 0.014406508708157897, -0.013035912961381586, 0.008222181527763156, -0.002566978908289474, 0.009497600043981577, -0.0056751013231578955, 0.004298258599210526, -0.00134152910618421, 0.0017198262138157904, -0.00527642314413158, -0.006738037163421052, 8391017913947374e-19, -0.011822055771453949, -0.0023647280209210526, 0.018581314182894736, 0.0013511696361842105, -0.008034561226052629, 0.0050400383831578945, 0.011289238419736843, -0.01018335548486842, -0.008891896734736842, 0.007739089927236841, -0.014787865826578945, -0.017835246043026314, 0.0056641722032894715, -0.0059957612642105255, -0.006282649575526315, 0.016645820401710514, 0.002203326760921053, 0.0022889429653157895, -0.008153908865789473, -0.009116433642894738, 0.014059073972894742, 0.006152197939947369, 0.01395997850157895, -0.012334291357763155, 0.017010570389868414, -0.0063333831828947355, -0.0025206653310921056, 0.006800531193421053, -0.004048019489342104, -0.006107880013157895, -0.011589549206710528, -0.0023016446209210527, 0.018917020458026318, -0.0018317876103026314, 0.007985371543710523, -0.009285482378157892, -0.007067705323684211, 0.011150805990789475, -0.009777598592105264, -0.008635949183289476, -0.004163104284868419, 0.010232138396315793, -0.0019257375613157897, -5739201986842089e-20, 0.013092055408684215, 0.01974871008065789, 0.005587073321842107, 0.025888940701315793, 0.016139226412631578, -0.0011026304183986845, -0.006448130678552632, 0.0013506662108157892, -0.00879462901421053, 0.0067748442927236825, -0.002999273877368421, 5861502590000002e-19, -31988263750131585e-20, -9557692903947368e-19, -0.005667702506315793, -0.006468547942684208, -0.017199129730526317, -0.019429718929210527, -0.003644407856578948, 0.004087335838671054, -0.003677765850855264, 0.007942120783605264, 6586344227631579e-19, -0.0037614600624999986, 0.0055129023461368415, 0.011244061396578945, 0.005010426876315791, 0.0072596023613157885, -0.008378387808157896, 0.01193223011842105, 0.002783704421578947, -0.0018955311381578942, 0.016495522016315784, 0.0010300654348684207, 0.0029166797853947372, 0.0019548181412, 0.0034482197978947357, -0.01597233675447369, -0.004172262047894737, 0.004349557685394737, 0.0057765581432894725, -0.017049438059999998, -0.004525430396052631, -28143429157894773e-20, 0.008926862911842108, -0.01706470510842106, -0.009343251894078945, -0.014551790916315796, 0.0037077234910526317, -0.024520926263157893, 0.005740144142368422, 0.0053956368143421056, -0.005766834186973687, -0.012353098134999999, 0.005150600744473685, -0.002591634655236843, -0.0034600672671052644, 0.020232129807894742, 0.0019706625393421055, -0.021094935969078955, 0.013562589856578945, -0.01982315960263158, 0.0022789787307368413, 0.0030350554696052627, -0.0023380354609868425, 0.0016429701249999996, 0.0013748243807894737, -0.011015212538802624, -0.01045923693026316, -0.010230515132368417, 0.0031865286891710532, 0.019525663493815786, -0.01229977110328947, -0.01392738180263158, 0.0047192255380921035, 0.009634271472381582, -0.0036637588399210516, 0.01367465738263158, -9074315167105264e-19, 0.009034615510460526, -0.013227085239526318, -0.008698134963421054, -0.005679745975289474, 0.016064328626710523, 6854882098684209e-19, -0.02409260117894737, -0.029390496973684222, -8429490286315783e-19, 0.017532396812105267, 0.003992892611842105, -0.015176699562894741, 0.017688143694565794, 0.015704753903289473, -0.006714242723157895, 0.006966373187026316, 0.014712872807894739, 0.0048426642788421065, 0.004560759092499999, 0.014764954930526316, 0.007755880210394735, -0.0063704605949999995, 0.013370230355131577, 0.006058873911578949, -0.007236065584644737, 0.02192650811447368, -0.0036055442649473683, 0.017262371172368424, -0.019675186598421057, 0.012352453031578945, -0.019395975741052625, -0.005476996759473683, -0.003981952255394738, -0.019128493134342103, -0.006420192784736843, 0.00663706127763158, -0.00931713626539474, -0.004438600155394738, -0.0074747220036842105, -3532221511315789e-19, 0.003786715305789473, 0.002143004024210527, -0.013259830103026315, -0.019481669799736843, 0.0063924609735921045, -0.006268689519868423, 0.011194401769210527, 0.014244597600921052, -0.009581357068684208, 0.015704279303947365, 0.002868509497368421, 0.009993456976842102, -0.009288659571184214, -0.00567008211111842, -0.0016774708461842105, -0.015881515857631583, -0.0031357240957894735, 0.009431347011250004, -0.02115866819605263, -0.002224235694342105, 0.016286955564605264, 0.007042988388157893, 0.002287434175, 0.010197640378157893, -0.005280943861578946, 0.0014105266302631581, 8359535263157892e-19, 0.0047502692026315805, 0.013299677349078947, -0.0023519426788157897, -0.004674174603421053, 0.018177119728907887, -0.0014176172173881575, 0.007134867282894738, -22741002690789458e-20, -0.022838398981578946, -0.003212089612105263, 2004287202631577e-19, -0.022176862091973677, -0.020671407409605266, 0.009063825494342106, -0.016635621425526326, -0.008275760027894737, -0.010347646235000002, 0.009041304183157893, 0.0051814241601315794, 0.005795941738552632, -0.006237753602210528, -0.004308292899078948, 0.027939477830263154, 0.0022927221325526313, -0.009122603172894738, -0.012685393528368422, 0.035720136647368415, 3721588992105262e-19, -0.015025574779078942, 0.0087486222525, -0.009074244906710525, -0.01173346431697368, 0.012090590483960533, 0.016366954857105268, 0.011179668721052633, -0.0073358287721842115, -0.007733899611315792, -0.003457529575921053, -0.006236338289078949, 0.005774385420526318, -0.018860930085526313, 0.01522345625828947, -0.012091792738157891, -0.004068704780263158, -0.004178824925921053, -0.013820312269210535, -0.01096366969644737, -0.004025642653947369, -0.024534325314078946, 0.006440052884473688, -0.016726629586052633, -3620708957894737e-19, 0.0047140585557894745, 0.0018035156026315793, 0.0048402487059210535, -0.00438187360013158, -6329667841710535e-19, 0.013023098627184216, -0.0015603331286578957, -0.0015727194086052627, 0.015044479001315789, 0.003913626584973687, -0.011406708371973688, 0.009567988548947368, 0.0048712744065789486, 8060304496052634e-19, -0.0027007557632499997, -0.007984334569848683, 0.0035786119902631594, 0.008549296575394733, 0.013448384334736838, 0.003980597008986842, 0.0027732479433552628, 0.0022548364651710537, 0.01305019627302631, -0.010885881758421052, 0.0046425705302631575, -0.006159144808684208, 0.0016908100748684212, 0.010177649750394735, -0.00148574499868421, -0.007758489989078948, -0.010132687943157893, 0.010328826282539472, -0.007675625043065791, 0.010875474622368417, -10961718381578953e-20, 2469314122368423e-19, 0.01456813955157895, -0.002258910603421052, -0.006317790170921054, 0.008751932444473686, -0.009791627398947367, 0.015247204259210523, 0.010811477365789473, 0.006444553805289473, -0.009046801008342103, 0.0030660862369736833, 0.020425601981842102, 1083259947368725e-21, 0.024182386267499998, -0.017303176044473685, 0.006597084168552631, 0.001865562837526316, 0.001028871313631579, 0.01472760354684211, -0.0075378481717105275, 0.010146784916184209, -0.007357307590657895, 0.015889662872500005, -0.0010280143740789473, 0.008057754063236841, -0.0017568669571052641, -0.004133698758421052, 0.007827215762368422, 0.03512832019999999, -0.00993780903394737, -0.004260993277631579, -0.008866919430526315, -0.012339414527631576, -45847830315789447e-20, 0.00838245042193421, -0.016904068641184215, -0.01032341292509211, -0.0179430145493421, -0.005017911380025, 0.004198584343289474, -0.012134608429342105, 0.02621189465, 0.021764919877236843, -0.0016967839548684218, 0.0064469595144736845, 0.0015113159294999998, 0.01449087951447368, 0.00908490776328947, 0.0021144275999999997, -0.0023710569351315784, -0.012429141851184206, -0.007313173065394735, -0.003165631556907895, -0.005191618546052632, -0.00811820481360526, 0.006263298302894738, -4727746834342098e-19, 0.01215529816414474, 0.005959134763223686, -0.003053097290263157, 0.0022509379385526307, -0.012437947575526312, -0.017363427211052634, -0.0044620109, 0.01702834882368421, -0.0014438623280263164, 0.007209018304078949, -0.005530027731842105, -0.006350269325728949, -1933061736184215e-19, -0.012560664186842102, 0.021907004355263156, -0.00368476647618421, -0.008714235420315792, 0.006064745458157897, 0.004239938750368421, -0.003381502998157895, -0.009450509392500002, 0.021473245165789474, -0.006664313856578946, -0.007727308110131578, 0.01755496648539474, -0.008046387513815787, 0.004243436594473684, -0.0018419240855263163, -0.002696314727236842, 0.00458863617605263, -0.009136615755921052, -0.01227240456026316, 0.007315492906276317, 0.001563661388157895, -0.005130049675394736, -0.002669057950473685, -0.0014561823650000002, -0.005081315489473683, -0.019940945634210522, 0.0020929494719736843, 0.004403723249342103, -0.03075529604868421, -0.008624309510289472, 0.01228930504118421, -0.009409504784473681, 0.0011323868934210513, -5501856157894726e-19, 0.011253276619736843, -0.005881537943934211, -0.009128014259078948, -0.002782203197434212, -0.00439761305381579, 0.018774566821052625, -0.011816556899605264, -0.019359096755263157, -0.009348714950473683, -0.0010719945900657896, 0.010479289703256579, -0.011939962278157891, 0.005665995433736843, 0.006774268349210528, 0.0034390900013157896, -0.008370486944868423, 0.017960268711842104, -0.0040098660762236836, 7006663912157889e-19, 0.0015448419175000006, 0.030164748171052642, -0.013288672209210527, -0.0194342324281579, -0.014333865537368415, -0.0010687613120394742, 0.006369927146184209, -0.02037403711921052, -0.0011595645836842109, 0.012291525279210526, -0.004659846724868422, 0.014351864156447373, 0.004539899117368421, -0.011356260933815792, 0.014434559298684207, 0.003388873248815791, 6091339384210531e-19, 0.009991929092763158, 0.019049285447499998, -0.007336658402000001, 0.01645323191407895, 0.011546428464605267, -0.003781113732894739, 0.01016362579592105, 0.003369438427763157, -0.012699591561842107, -0.027960629820000003, 0.006582685929197369, -0.0014268903726315791, 0.005638759550394738, -0.006515546567039474, -0.004676419364394737, 0.008950068268947365, -0.006762236009210526, 0.010658080675000004, -0.005891587223157895, -0.014665679521842107, -0.013644553504473684, 10368947013157792e-20, -0.007762898519210526, -0.01131838790855263, -0.00988497489276316, -0.0072114894752039445, 0.0027077467686842105, 7480073221052632e-19, 0.001175619631578947, 9005636573684216e-19, -0.017333229999605265, 5094909162236838e-19, 0.012029732047368418, 0.009794908618684218, -0.01157117548918421, -0.009239849182894735, 0.005636658962236845, -0.008340407034210524, -817503516907895e-18, 0.003921638921052632, 0.005545640947368417, 0.014569629413078954, -0.00717244047236842, 0.00835087193605263, -0.008531247800499998, -0.004064330462, 0.008101339765526315, -0.01701503037605263, 0.004955823044473687, -0.0022204531394868425, -0.01208521188631579, -0.002832061093026315, -0.002318643040434209, -0.007110677303947368, 0.001033564958947368, 0.027433827638157895, 0.010220588290263156, -0.007394786349605265, -0.006538531349210523, -0.0022718601860526317, -0.004229559157973685, 0.005938436034868422, 0.01048373804263158, 0.00986031018078947, 0.020336058257894734, 0.004668691585657895, -0.011039444343815792, -0.03195965501315791, 22211712236841965e-20, 0.004621380856581578, -0.0032872489723684223, 0.0022427985402631574, 0.009466410571710526, 0.017591113605263154, -0.004106379021052631, 0.006385616363748682, -0.0040017953515789455, 0.0012984135143552632, -0.0013681684519605262, 0.006150785983582896, 0.02349364751052632, -0.003507428290921053, -0.023245202525000005, 0.0073350322506578955, -0.012751762621973684, -0.009509772432105263, -0.011624634206315787, 0.008383111918289473, 0.008738430290394734, -0.0019306551646052629, 0.004987825924447366, 0.0067051984610657905, 0.010962145944078953, -0.006160766227763156, -0.01599381954276316, -0.005996254381473684, 0.013413042621052635, -0.016699554863157894, -0.00425797138263158, -0.002346582932368421, -0.003454997969210526, 0.015414278531447364, 0.0020144495526315796, 0.004778662968414474, 0.019607659189473686, -36090899996052645e-20, -0.008492139364605267, 0.007747498233499999, -0.0013514066389473686, -0.013021238629802628, 0.02135893455000001, 0.0050934569453947335, -0.005380931788039476, 0.0034462612061184213, 0.002471601183026315, 0.0018443146213815793, -0.005110344829342106, -0.014184218227105262, -0.0043937764976315795, -0.004010257807763158, 0.007609986475131577, -0.0017383072384999994, -0.008765348437499997, 0.006436899067289473, -0.005252098280921053, 0.0012666882906842106, 7271012838815791e-19, -0.012168801171973687, -0.006950649873815789, 0.006179354461447367, 0.008584705725921056, 6826743815789457e-20, 0.005478510884342106, -0.001656087406842105, 0.004353472659210527, -0.007852758323026314, 0.00774670264888684, -0.004548253065789474, -0.00872336939763158, 0.007497302493421052, -0.003937119212631579, 0.005084670148232898, -0.006804365856578951, -0.004160022079342104, -8716827518421054e-19, -0.0018917191575000003, -0.04542618686578948, -7962240394736886e-20, 0.005303945623421051, -0.0010489784114473685, 0.0040561710610526325, -0.005575023273947369, -0.014307941818026318, -0.005483095651842106, -0.0036865826026315804, -0.007326996465921051, -0.007258892687710523, -0.017002108826973682, 0.0026596006468421053, 0.007241479605526319, -0.006855145818736838, -0.007547068765263157, -0.011135433282763159, 0.015574704355921056, 0.015176253521052627, -0.006872319883815792, 0.0017937790452631581, 0.0012157494165789468, 0.007882637975789471, 0.003405427387894736, -0.004297595478375, 0.017864616917368424, 0.0030970381859210523, -0.0023354204692105267, 0.0017386867781578944, 0.02049815361294737, -0.00913410340657895, 0.01556748598855263, 0.0014741332142105261, 0.00888697265651316, -0.008259757955789475, 0.010162209150921054, -0.015258628212236844, 0.007913002543421052, 5999896474736846e-19, 0.010361211858157896, -0.005668571334210528, 0.009625429015263158, -0.0104467670125, 82077470868421e-17, -0.0016111464500000003, 0.011819657311842107, -0.010997043170815787, 0.026556267275000003, 0.006691072826710528, 0.020695954338157893, 0.003105390495, 0.007586750871802631, -0.006386726654605265, -0.02003319237539473, 4345854440394738e-19, -0.008994508450263157, -0.026183591028947364, -0.002199864392631578, -0.0028300363084210523, 0.008933973642105263, -0.004872168878026316, -0.010508434657894736, -0.030814126236842106, 0.003977499332947367, 0.003367798314605263, -0.008800812126184209, 0.03421133572763158, 0.036882231234210514, -0.009774976162894739, 0.014867376786052633, 0.01847335194828948, 0.004703114508157895, 0.004981278706842106, -20820300881578947e-20, 0.0023825047832894738, -0.006051949050131578, 0.005748253940526316, -0.048717287638157886, 0.006936276815973685, -0.00717120160088158, -0.0011371543828947368, -633878522763158e-18, -0.009472156436842108, 0.004011299037763159, -6579590755328946e-19, 0.006974676819078946, -0.005393841788815792, -0.004757979923842104, -0.0033050710856578945, 0.011350404267631583, -0.007076194413157896, 0.0017202756382894743, 0.012773173556842102, 0.0030848825621578946, 0.0027823394973684207, -0.00670719708276316, 0.005835784166710526, 0.006515324253026317, 0.008066022838947366, 0.001960170838894737, 0.0051619980871052615, 0.0026211382473684216, -5182459471052627e-19, -0.0027954785167105234, -0.004234536522631581, -0.009315601918947366, 0.008809953131578951, -6880571447368561e-21, -7682047319210527e-19, -4287664078947533e-21, -0.008450649188421052, -0.0035262061703947374, 0.012014457226315788, 0.00802163259636842, -0.014263569363815795, -0.001529443673157895, 0.0038201108919736853, -0.0021061006564999994, -0.006485662478921053, -4953983351315789e-19, -39382826565789427e-20, 0.0028122849150000006, -0.012065431929342112, -0.004557107439381579, -0.004202265546447372, -0.006648211306315786, -0.0026814599381578944, -0.004716990799535528, 0.011677914061486841, 0.0054311442510526315, -0.009687709625394739, -0.00401446957026316, 21303643315789461e-20, -0.004548820044210527, 0.001488740388592105, -0.008498280648552632, -0.009067142177105258, -0.001475207605789474, 0.003382969827236843, -0.003364108026184211, -0.015231927833026314, -25714068360526294e-20, -0.009678724665486842, 21494394868420982e-20, 0.0069928910540789455, -0.009154249508157892, -0.014927330287236848, -0.04244073076315791, -0.009253368699736841, -0.007564927833815789, -0.006217242748684212, -0.007667895968815788, 0.012352994166578951, 0.005073167429381579, -0.005000820531315791, -0.01045439083394737, 0.0015025571015789476, 0.0064443839557894724, -0.007921140097105263, 0.01298356292368421, 0.022927954959605267, -0.005738576246052634, 0.01002808020881579, -0.0017933789327631581, -0.0036308607342026324, 0.007852910432894737, 0.008723654298289477, 0.005285313737631579, 0.013029228591842109, 0.0033245363744736855, -0.00546107157763158, -0.01238937413552632, -0.014016715163947365, -0.00480338421131579, -0.017565224993223685, -0.0010297757147368421, 0.0190754480131579, -0.016528817848684218, -1554027478552634e-19, -0.0033909335259210555, -0.02275056143078949, -0.012455294898723683, -4695065194736842e-19, -0.019497075148026316, 29407749652631535e-20, -0.004932486893276316, 800515078947368e-20, -0.019466739034210534, 0.0011483287201315788, -0.006102988706842104, 0.004115763767592106, 0.004177756370252632, -0.002618433127763157, -0.00537044665544737, -0.011829460742671057, 0.00692578045657895, 0.006913495407763157, -0.0012394369451315791, 0.004177181062190789, -0.004855147448592105, -0.009354103443947366, 0.008475817234342108, -0.0060853426540789495, 0.017770833389999994, 0.010468942911184213, -0.006522560685973683, -0.015092426563342105, 0.008636236548684206, 0.004441229959605264, 0.005320611943289475, -9800074276184207e-19, -0.010191143523026322, -0.007796377074999998, 0.005595688935526317, -0.0016283605736842112, -0.012121330430263163, 0.008727131922578948, 0.002284515743368422, 0.002682018403026316, 0.02112667354078947, -0.013087226411842108, 0.011961740068421057, -0.0029621327447368426, -0.00711086599605263, -7157445806315789e-19, 0.00296389472118421, -0.002106245437236842, -2060961381578952e-19, -0.0023762942430657894, 0.0067748971048684214, 0.02305358949394737, 0.024209113952105267, -0.0010323672338157883, 5835666469736843e-19, 0.0011928865788157893, -0.013926641433421053, -0.0010454462015131592, -0.008992499685921052, 0.005833304399473685, 0.007247240086842105, 0.007005285494078946, 0.00532119499868421, -0.002409817022763158, -0.009118484332407894, 0.00902553582131579, 0.003644393953815789, -0.001458669926578947, -0.007759722557236839, -0.015974711869276317, 0.005593415395263159, -0.00699891096894737, 0.013671992413157898, 0.0030071592296052633, -0.00725996611631579, 0.00831834310973684, 15080351578947707e-21, 0.010492338298289472, -0.011587350163157897, 0.007662332826842105, 0.008755792813026311, 0.007074787369210524, 0.01825972633684211, 0.005628270758078947, 0.013933462579342108, 4695127519736841e-19, -0.016538577678947376, 0.013688757842105262, -0.00958296806763158, -0.01084689514210526, 0.004655695267894736, 0.002764839804828948, -0.008966435890710524, 0.01818742012328948, -0.002021167613421053, 0.011088005707894739, -0.003949641440789475, 0.016206056167105264, -0.018271099290000006, 0.012128778174342108, 0.016409871427894733, -0.005132905442789474, 0.013977325583552627, 0.0027061513397368423, -0.030432116805263153, 0.009202131592500001, -0.005219011863552631, -0.02768622942105263, 0.005146511143078947, 0.016741514684210528, 0.008617631309868421, 0.001446558946578948, -0.010973319831578945, -0.002393318402447369, 0.0025146223098815794, 0.002058704305, 0.009670727197499998, 0.006972026925486846, 0.007941592818026316, 0.006313998498157896, 0.004550358204605262, 0.019503475739868426, -0.00808706035526316, 0.0014521665658289477, 0.008814657770526316, -0.0034991419792894736, 0.001152647225789473, 0.0035165233944736848, -0.008015521834605265, 0.0030662299349999986, -0.008316208095789476, 0.0018460274468421055, 0.010874037769736845, 0.0019301458946052628, 0.014981398493289479, 0.0063040013951315785, 0.0011182811667105259, -0.001531185306381579, 0.007286755069710524, 0.007252432990381575, 0.005447569480263158, 0.005672717215565791, -0.011183678003684212, 0.0010281094409210528, 0.0037040489348026313, -0.018558228386052637, -0.0024118456417105264, 0.001912976863157895, 0.004824422551335526, -0.007085397379605263, 0.010146420386052636, -0.012797370635526323, 0.005280684883421054, -0.007430231397421052, 0.0012657216987105263, -0.003414122816315788, -0.001953577547894738, 0.004944337450526315, -0.009499839262763153, -0.007726497248157897, 0.02043591631578946, 0.005235241476657896, -0.016428867193421043, -0.02316521289473684, -5283661032894735e-19, 0.0039097042727631575, -33895851092105274e-20, 0.01083217157236842, -7426432255263161e-19, -0.00391929611618421, -0.007359749506882893, -0.0035571319606578938, 0.012559667453289472, 0.0058923027007894745, 0.015785403049999997, -0.013460644672368413, 8476099292105275e-19, -0.0033159500932236833, 0.008975023673552632, -0.01474813875868421, 0.01023825899394737, -0.01589566984736842, -7458934167105253e-19, 0.015296658677631575, 0.008350472782171053, -0.01303794148592105, 0.009825855495394734, -0.0031653390423157907, -0.0023992715984210533, 0.012867784544868418, -0.007730846508157893, -0.008233608065789473, -0.00578186875105263, 7660654657894731e-19, 0.007309484258749999, -0.004728002686184211, 0.024414807685526316, 0.07103057530263161, 138350805131579e-18, -0.0227730847868421, -0.002000239483157895, -2523412961842105e-19, 0.0036002593248947363, -0.00960461145763158, -0.014719047412763165, -0.010525172183026317, -0.008946292160657896, -0.00487614558486842, -0.015348885583552638, 0.005484280077631576, 0.0047399032012368425, -0.011332118468552635, 0.018375535672368423, 0.0028248364129736837, 0.002669773003710525, -0.013733811623947365, -0.012085463925657897, -0.005202895044802634, 0.0011071545386052636, 0.002822448957105263, -0.005775769501039475, -0.007958374655000005, -0.012961527270999999, 0.008736424775394736, 0.001623934084342105, -0.0029857376405, 0.006539750386447366, -921088730657895e-18, 0.01011317570105263, 0.004816758724236842, 0.01006797531394737, -0.024919923669736846, -0.013252434965131578, 0.004975805359868419, 0.0028436151710394737, 0.026767861371052633, 0.01679312495263158, 0.0029180558214473695, -0.01334025122631579, 0.006395531258157895, 0.012167909879868426, 0.0010437845743947376, 0.015899900866315795, -0.015891970886315786, -0.007016795418947369, 0.005720414304868421, 0.014279509605394737, 0.011842180225789475, 0.012174502878815788, -0.004032991572842103, -0.01191846249868421, 0.006569720230394738, -0.007758679420881577, 0.008243021787499999, -0.0056768207752631574, -0.010259304986710528, -0.005975154729605264, 0.022218811560526314, -0.01284212495, -0.0043886743385526325, -0.007587261113289475, -0.00100997453736842, 0.007466683218736842, 0.0017474622250000002, 0.011411024255263157, 0.007287669592105263, -0.011071793518989473, -0.007791523718026317, 0.0024424171717105266, 0.010883432589473684, 0.017893625253684212, 0.008674725273447368, 0.00948412372276316, 0.004439929401005265, -0.012966921410526314, -0.009952035897894734, -0.009481836221250003, 6631337719736842e-19, 0.013784739155921056, 0.01274559315868421, 0.015312255263157895, 0.014739994169736837, 0.001961665102973683, 0.016666361813815787, -0.01601210714707894, -0.003862630162710527, 0.0017456178976315803, 0.002383359211842105, 0.005658344708289475, 0.02028012731447368, 0.0038586854298289478, -0.003930425682236844, 0.005947570116842103, 0.006645788041973682, 0.00593962558863158, -0.0055098527475, -2709300878947366e-19, -0.02526451096052632, 0.0034957235959210526, -0.004797192927499998, 0.010852291108092103, -0.0024250138515789464, -0.008193180311052631, -0.006060304734868421, -0.005015898619736843, 0.009915213199078949, 0.0049576433317105265, 13137401934210517e-20, -0.011906290325000004, 0.005487915484868421, -0.0026353010490789476, -0.006053524171552631, -0.01679510672763158, 0.0019228737013157898, 0.01702610227171053, 0.007407213732763154, 0.001119691041315789, -0.0041095490676315806, -8301038464210527e-19, 0.0033998062114736845, 0.010597575788947365, 0.014257269136842107, 0.007372944618421052, -0.0035281079432894734, -0.017203723107131575, 0.004068165850842105, 0.00382046129631579, -0.011138788382368418, 0.01527541427763158, 0.01094105444394737, 0.003186118735263158, -0.011153858221842101, -0.001682062516447369, 1102902368421087e-20, -0.007634609815394738, -0.0024121695576315794, -0.004676494936184211, -0.004374885159342105, -0.004125291510394737, 8512605788947367e-19, -0.015911860113236847, -0.01630071632578947, 0.0075893821925000025, 0.016570409282894737, -0.0028060973136842106, -0.010812139536144735, -0.0035154795997368424, -0.007599472084868421, -0.0027118450077763152, 0.003790211149736841, -0.0016624428627631574, -0.006025105557500002, -0.00271212489868421, 0.004819238931578948, -2838972343421054e-19, 0.008508885079999997, 0.0037412741409736843, 0.003480958837938158, 0.01989113539539474, -0.007170555643552633, 0.007131082274999999, -0.00324891509618421, 0.017624990426578946, -0.008696587564605262, 0.009625076661710525, -0.003385572580052631, -0.0011940798148684204, 0.013382737070394736, -0.0019341717852631578, 0.014078404609210527, 0.006157531654513156, -0.00436843442881579, 0.010804814319078945, 0.016877812977368414, -0.004866282633157894, -0.004019908407105263, -0.008622002943026319, -0.001156913919736843, 0.00860937810460526, 0.00854736410960526, 0.006645876394210526, 0.006044397847105263, -0.0029129494269078955, 0.005728795454605264, 0.003868690374868421, 14415561068421056e-20, -0.011550837929210526, 0.0024273528732894744, 0.01675736555552631, 0.008618001551842105, -0.009086696278947369, -0.0019255664260000005, 0.017823474286842108, 0.023852092268289476, 0.005640211945657894, -0.0157103212696579, 0.002671248446973685, 5732126974736841e-19, -0.003747782739723685, -0.015167234880263156, -7942613815789339e-21, 20631670931578946e-20, 0.005739634929078944, 0.008089517185263155, -0.005618019369960528, -0.004716671923026316, 0.002440650008157895, -0.013887452536578948, 0.010245098745394738, 0.011824351372763156, -0.005547870031710528, -16388543065789472e-20, -0.0074466632465789466, 0.00498810127631579, 0.015039879665789478, -0.0040669246943421085, -0.005869341766447369, -0.024218201709868412, 0.001695024713552631, -0.005041553392631579, -0.00783228454736842, -0.005132145636842107, 579431247268421e-18, 0.0026811771932894746, -0.007146641212236844, -0.008457516277105264, -0.015692255188223682, 0.024690377132894726, 20765250613157882e-20, -0.0020539644646052624, -0.005768370673684211, 0.003702322850921053, 0.004201434479473683, 0.0028723328136842103, -0.014360589550263161, 0.003967806877105263, 0.004476002342671051, 0.004944308020131578, -0.01157276546618421, -0.009082047036973684, 0.0036693403972368425, 0.009826728072236843, 0.0074656336861842094, -6485088782894734e-19, -0.0014051343403289473, 0.007369758026842101, -0.010425479788289477, 0.01821328323157895, -0.012023113507986844, 0.001740522146710527, 0.005332594062894738, -0.001378770888421052, -0.015753834223815794, 0.0076369660996052635, -0.014926969834157896, 0.0038507784668157883, -0.0041886614165, 0.005354455710657894, -9931518065789487e-20, -0.002756159138157895, 0.014061157835657897, -13951124842105257e-20, -0.013132667226578947, -0.0019348305806052633, -0.009907254651973684, 0.009314450074276314, -0.006995864365000003, -0.004312180836447369, 0.004297729036710528, 0.0047553823486842116, -0.00931211325394737, 0.021702308997368424, 0.007112765311718424, -0.008150883757249996, -0.0015760545419210529, -16017972894736844e-20, 0.0012709232195131578, 0.008913342906302628, -0.009902096786842104, 0.03158665600926315, -0.0043072190056578944, 0.007661704021052634, 0.004888625593815791, 0.003962992540921054, 0.004328961708421054, -0.0062252458030263155, -0.0073411886288157905, -0.002077252053605263, -0.011778288789210526, -0.00824901193289474, -0.0036174059680000002, 0.008596170780328946, -0.007529505605394737, 0.00450591202768421, -0.016162284833421053, -0.006285099551315791, 0.01741020744342105, -0.004753392869697369, 0.004862889815131579, 0.008373598259, 0.007595550645657895, -0.007107993389473689, -0.008475462659473682, 5595674320263158e-19, -0.0034365798056578915, -0.016078184318421052, -0.010819015256052633, -0.0018932811597368428, -0.0060824286468421015, 0.009014217587631579, -0.005298673378684211, 0.0020203203051710524, 0.0023555486237763156, -0.011414600681763159, -0.029000318375131576, 0.012605560375, -0.015203555485526316, 0.013647403227894738, -0.008804857755526316, 0.008642128292289471, -7019206473684211e-19, 0.028421054261842115, 0.010750185311184211, 0.004273382298328947, 0.014962174191052634, -0.0091029727825, 0.004545577043947365, -0.005067943168815789, -0.008576309225131579, -0.009371516520921051, -0.003953041012539474, 0.0026335486594868413, 0.0010443595075789475, -0.006137380078947367, -0.019068207819210526, -0.0066171946843947395, 0.0154603859943421, -0.03956156613026316, -0.005423286051376317, 0.0064764647446052615, 0.017917068601973684, 0.018834929819078944, -0.023795076729473678, -0.005232680938421053, 0.007063256785526317, -0.002471332747368421, -0.005540072479078948, 0.0030247992273684196, -0.041372428210526314, -0.022792676082894738, 0.01496056775592105, 7162006171052637e-20, -0.0054049346089473675, -5917285729473686e-19, -0.006140541838736841, 0.01165498020263158, 7520184688157894e-19, -0.004048719246052633, -0.004093513149078948, 0.001113782621578947, -0.00515289844513158, -0.014532121503749999, -0.005462963103684211, 0.002013934241710526, 0.006934004597374998, 0.011849665684605267, -0.02845128821973684, -0.0027645604678947374, -0.029641802678947365, 0.005846543234157898, 0.004001273209868421, 0.009660376192697369, -0.01431830397552632, -0.0034636234957236833, -0.015780388346842117, -0.0061515257567105255, 0.011677517784078944, 0.011294756013947365, 0.009406988080263162, 0.02362260060394736, 0.006315555671052633, -0.00983715779947368, -0.012793336953947368, -0.010380582411513158, -0.005019749015, 0.004049450225131579, 0.017717702139473684, 0.012014558753947363, -0.004216072575789474, 0.012309840076065792, 0.003926167156578947, -0.011685566748684212, -25353602302631577e-22, -0.005299348902368422, 0.007730379013289471, -0.0027699679941184216, -0.0069104686293421065, -0.002654266115921053, -0.012859640121842106, -0.0107146154105921, 0.004399860249078947, -0.006205988169868421, -0.002287691709381579, 0.0022477117532631575, -0.011032372216710525, 0.0038386147140789476, 0.017001313835526322, 0.003409522446052632, 0.0038818556153947365, 0.0010723420983289483, 0.007902039610460527, 0.0023776093863157894, -0.006922669011657895, -0.012493596986842102, 5051128443421054e-19, -0.003519559938197369, 0.009428645297631578, -0.0010605874422368415, -0.008557814389473686, -7813989881578948e-19, -0.008372406573684214, 9731762513157829e-20, -0.008460361298552634, -0.0022174336363157904, -0.008624776876973684, 11917679249999991e-20, 0.006416730669828947, 0.008520198330263157, 0.012873614050657895, 0.011955042275394739, 0.01041146601725, -0.007033908750526316, -0.0016643551606578938, -0.011975207748157898, -0.010176406554210527, 0.0046722559355434215, -0.019248556189473687, 0.012035626013513158, 0.005876074411052633, 0.0023601008795000006, 0.0017393916595131586, -0.006760177633552631, 0.0037472353740789477, 0.08577118239473684, -0.004266319282368422, -0.0071308153913157875, 0.002913963492236842, -0.011218220720921051, 0.0016349006751315786, -0.0019050253921052633, -0.003319563322894737, -0.004499976557500002, 0.009833074842368417, 0.007605858973947369, 0.005772069280921054, -5503060188947367e-19, 0.013013069021578944, -0.0034565342047368423, -0.01143237421848684, 0.01110795669013158, -987561984539474e-18, -0.006423849459473684, 0.00217356449263158, 0.0010567873492894734, 0.014532239263815788, 0.010447370052631582, -0.00759626205513158, -0.0022266032110526313, -0.008538287243881578, -0.01131031077157895, -0.015313536264473682, 0.005158005157763159, 0.0030549536626315785, 0.004764115755657894, -0.012034718590789474, -0.006626763940263157, 0.009110119795921048, -0.002301413071921053, 0.015578638884210528, -0.005167726482500001, 0.02117604996315789, 0.008285337067996052, -0.007844231455157892, -0.01983585482868422, 0.008469638907236843, 3119132776315813e-20, -0.001960619750092105, -0.0174250582075, 0.0024971948229210532, -0.009844892709210526, -0.00997894878157895, 0.008923550396710523, -0.015006534729868421, 0.010365114785526321, -0.01453934758578947, -0.003352099966710527, 7359328694736843e-19, -0.010912618383552628, 0.00553644026263158, -0.0020364845940789474, 0.01638792804421053, -0.002702654283236842, 8317131059210523e-19, -0.0062164165, 0.01416901248881579, -0.001157289313026316, 0.0015120998847368426, 0.018197012598026318, 0.018230856374999993, 0.0013759326027105259, -0.0022414605464473685, 0.010594263889473684, 0.0032048177697368407, 0.0015967663478421053, 0.005898981746447367, 0.0026566908555921056, 0.007526576979868416, 0.006680355165921054, -0.010573069984868419, -0.0037745313918421054, 0.005754974540473685, 0.008721350822763157, -0.004220488521921052, 0.007543852856315786, 0.002001725290789474, 3765012028947365e-19, -0.005974376834473688, -0.007132448870578947, -0.008149476120263158, 0.020858640447368428, -0.0026150683706578945, 0.0025981752977631586, 0.011055772810526318, 0.006417484732236842, 0.02127346352631579, -0.010789793555, 0.0018354179835526315, 0.01635032267421053, -0.00914016103246053, 0.00721719150447368, -0.011749975486184212, 0.007983058785, -0.0025599285438157905, -0.02525250945921052, 0.016565419086578947, -0.0049727678667105275, 0.016954254666710526, 0.0072252290184210526, 0.00663506177881579, -0.016708790731052633, -0.019179279734736834, 0.0036575822153815793, -0.0036278681642105243, 9362055535526312e-19, 0.003667399366578948, -0.005599063442105262, -0.001710235229973684, -0.0020441094883684213, 0.008895651518289471, 0.011197020705263155, -0.0096675727705921, 0.0048109815131578935, -0.009713690278157895, -6161499026315836e-20, 0.013903376549342109, -0.0037505515171052627, -0.004402282192631579, -0.00803135064986842, -0.0022901599207236834, 0.0028172990298684225, 0.005441962186973684, 0.008157506930394737, -0.005246615045631578, 0.0017373259923157893, -0.011001224905657895, 0.0012983470696052632, -0.01309617162052632, 5287650694736846e-19, -0.012678124126447364, -0.004449979991315788, 0.013012943638552632, 0.002311609178421053, 0.00852208751355263, -0.0021326908651973695, 0.006498695877500001, -0.012073736925131582, 0.010822192646592104, 0.004732820625263159, -0.003690172558684211, -0.009818942454868423, -0.00727969328513158, -0.01263686636618421, -0.003183486671921052, -0.009880075140921055, 0.002198814761578948, 0.013470662695263156, 0.00607287450868421, -6002962989999996e-19, 0.008114174997552634, 0.011275753842105262, -0.005673379224736841, 0.0031662297654605257, 0.0028777117961842117, 0.008016936837894739, 0.0017901154897368426, -0.006646555544013159, -0.008096424208289474, -0.006122036452894737, -0.0057617752151315794, 0.0011516110418421056, 0.0033034063114473684, 0.001144898634342105, 0.015016336455263162, -0.005089427256578948, 0.011095485811210526, -0.01487947794381579, 2754231664473685e-19, 0.01434458742828948, 0.004142680879736844, -0.008173420285131577, 0.009047083722894741, 0.006638912060921054, -0.010928462396842106, 0.005584001594493421, -0.006758851203157896, 0.012239943157835526, 7178325472368416e-19, 0.004164529241644737, 0.006919659793157895, 0.0018766501502631577, 0.005851904381052632, 0.01649575659144737, 0.018543284467894737, -0.004570943860131577, -0.014199454217763158, -0.004522597645789472, 0.01323128955736842, 0.009430725228289473, 4302028357894734e-19, 0.014124286351315792, 0.0014682764307894735, 0.014347456733684217, -0.004273947661315787, -0.005397340513289473, 0.004777006242105263, 0.0014340101824815783, 0.004214361838684211, 0.004253698227473684, -0.005495129646250002, -0.004944426877631579, 0.001132264872631579, -0.025759664019736846, 0.01343974873236842, 0.007074848766842105, -0.017592669572894747, 0.0017375639004473685, 0.015513802537763154, -976651714342105e-18, 0.006099546812236844, 0.009297965083289474, -0.006545829302368422, 0.002187739041315791, 0.003335506018026315, 0.0021257748652631593, 0.007083832225526319, -0.00821666152184211, 0.008502307442157893, -0.0012726394867368417, 0.003975927348552632, 0.005120596614473684, 0.005579327967368418, -0.0076789852039473696, -0.021034838578947373, 0.007545610900131577, 0.011339017010394737, 0.01220300189605263, 0.012834558334486842, 23943841328947444e-20, -0.012060543739868423, -9013390900000001e-19, -0.007001447220394739, 0.001807072239342103, -0.007920413789473684, -0.014183284144078948, 0.0032435898167105224, 0.007661070786578948, -0.009576734622368422, -24735532930263165e-20, -3279625464473687e-19, 0.00592114891631579, -0.0031360228920394744, -0.004423669705131578, -0.006236715882473684, -0.01428929095, 0.0012041522547368432, 0.009992463885789478, 0.014660581713355257, -0.012100258024789475, -0.0041604909128947366, -0.0022737396475000005, -0.005318546005078945, -0.0019765347979631576, 0.001943228074394737, 0.01009488755486842, 0.006165831676578947, 0.0018300388325000001, -18122561157894723e-20, -0.020566950382894744, -0.006887413951872369, 0.004043231116447368, 0.014405956009276313, -0.004649199056078947, 0.016667253566842104, -0.012720103426315793, -0.004804016313157894, -4011695289473683e-19, 0.004846170921052631, -0.0016384565850263162, 0.017794608296052634, -0.007291804857605264, 5409149652631579e-19, -0.005412328068421052, 0.014002738125526317, 0.007782216855789474, 0.03379361171052632, -0.0037693036657894725, 0.006207439997131578, 0.011665550201763155, -0.002727257783815789, 0.006404820097236843, -0.007757448749342103, 0.00321114124381579, -0.005974114834342104, -0.017798501374999998, 0.008996167303710525, 0.004107372101447368, 0.007539583035263157, -0.0014233594372368415, 0.00381117836013158, 0.008256078101842102, -0.0018291068210526304, 0.0019358302312894743, -0.010674378317894738, 0.0065658293554078945, -0.007450003366710528, 0.004437219244605264, -0.024618154752631582, -0.015038326359078957, -0.00463826566381579, 0.007930537400131579, 0.004519121789078946, -21704581684210515e-20, -0.007922356677894737, -0.011271936131578942, 0.006213316302368421, -0.001811201335361843, -0.06298805399342101, -0.003931348754999999, -0.002375323733289475, 0.006955065128421053, 0.011551465797368423, 0.005049561330973682, -0.004226440632631578, 0.001415731466381579, -13998377784210452e-20, -0.0011909930659210531, -0.002045448113026316, -7439456209210522e-19, 0.008089150971763161, -0.007385254353552632, 0.0017794121346052629, -0.0021466796694736847, -0.007901907795526318, -0.006739856069736841, -0.0031380352994736845, 0.0076046099585000025, -0.011527594351315795, -0.0020396639011052635, 0.001525548389342105, -0.006094216933684211, -0.0014722651828947364, -4518903077631577e-19, 0.007140101749473689, -0.011676537059210524, -0.019966328755921053, -0.0024167389288157906, -0.008110973655078945, -0.010138389487328942, 0.004652459228947369, 0.003344180307855263, -0.00269698604401316, -0.006219439502236842, -0.012621290809263159, -0.010441855874605261, -0.001525004825868421, 3106502772368417e-19, -0.02632054453157896, 0.014578032460263153, -0.004134980474473683, 11510845465789741e-21, 0.0062397942408684215, -0.0063305206980263165, -0.0032845915709868406, -0.011880825206578951, -0.004127339640789471, -0.005412744576842107, 5791435789473685e-19, -0.005604593690263158, 0.01140999920789474, -0.0035105268881578944, -0.005644377784736843, 3777405411052633e-19, 0.006655294573118422, 0.012310034789868423, -0.012314680914342105, -0.004660671697236843, 0.019227642512499997, 0.012370556660526312, 0.0018540437435131578, 2843068044736842e-19, 0.0029149404551315795, 0.001349117293078947, 0.004231145650921054, 0.005014896011447368, 0.0030759806921052636, 0.002634996195394737, -0.02146838184355263, -0.023354627235526327, 0.007463801508881578, -0.044740355858815806, 16885995480789474e-21, 0.0018187605642105266, -0.0028608081773684206, -0.019586663092236847, -0.005291358396439473, -9306446955263162e-19, 9336062423026312e-19, 0.00640387573013158, -0.05765600515921052, -0.0010193050008289466, 0.0029813614198157894, 0.0017824373404078948, -0.006496215178552631, 0.024087691802631577, -0.010348639678947369, 503021751973684e-18, -0.009403571023947366, 0.012732326389460522, -0.005403565589605263, 10905120605263125e-20, -0.008504000929605262, 0.006370600620263157, 0.018242643109210525, 0.009379113575526317, -0.01214825572302631, -0.0015711109278947369, -0.0020749150806842107, 0.0051656843653947355, -0.015150247375526317, 0.0034633881215789457, -0.0023204803727631573, 0.0013554988172368421, -0.00916673603631579, -1386599248684208e-19, -0.011236653686842102, 0.01057515615355263, 0.0038270946907894747, 0.0032054099676315792, -718647992236842e-18, -8057763245394725e-19, -0.004644138220394738, 5584668676973688e-19, 0.004134472640657893, 0.003242992475139473, 0.004408569986710524, 0.006886769568421052, 0.0022040188868421057, 0.004717420271184211, -0.010944220514868425, -0.01496134418960526, -0.004904572456118423, -0.0029349479123026317, 5269890798684209e-19, -0.018642433568684214, -0.0014636822255263157, -0.0032874282358578933, -0.005220993034210527, -0.001006430675144737, 9930258057894734e-19, 0.01337606780197368, 0.009240478431184211, -0.01117918292618421, 0.015037270521710534, 0.00705424925763158, 0.004022910573421053, 0.004511536920394735, 7300990415789472e-19, 0.0025198337564868423, 0.004174408284605264, -0.006822327408157894, -0.012508884771973679, 0.0018977242146052643, 0.00169175941868421, 0.00914618583809211, 0.00616711017276316, -0.016066297167105267, -0.007600618392368421, -5936514901315801e-19, 0.009191851769736843, -0.01048495533644737, 0.0039003314751315785, 0.010082093744078946, -0.02150961690736843, -0.003076141387631579, 0.01795051239210526, -0.0016097397646052626, 0.006738568165394737, -0.01008712938552631, -0.0023239680332894736, -0.0023542645427631586, -0.007415254536973685, -0.0017370888950000002, -2142969864736847e-19, -0.0019526079594736842, 0.004812759554289475, -0.003177666265657895, -0.010193668303157894, -0.008950753272763155, -0.012276084238157898, -0.013801354708684207, 0.013260181611973685, 0.005137841782236843, -0.005623419413947369, 0.002380635332763157, 0.020261579571842093, 0.0025086264638157895, 23285078407894738e-20, -0.013896984565526316, -0.002813308350394737, 0.006464827561842104, -0.0017387912031578952, -0.009293710947368423, -0.002234433483973683, 0.0029236971019736837, -7009606947368418e-19, 0.004321338025526315, 0.011410774383157896, 0.0019641712277631575, -0.0032173488855263156, -9017514617105258e-19, 0.02536431413421052, -0.0036204208476315796, -0.0045066121440394714, 0.007895695332842106, 0.01375771906894737, 0.0016665629351973685, -0.009256044322434214, -0.010135795456671053, 0.008737079069078947, 0.0034428967317105263, -0.010638219975263161, -0.004573688986184211, -0.008506904400102367, 0.0025543856753947364, 0.004874314954210525, 0.010396809270921051, -0.0018452750817105265, 0.01090056822052632, 0.02098761590078947, 0.009814058689144733, -0.0029276505494736844, -0.010893099969697373, 0.01975842706710526, -0.010948870352592106, 0.0058412445308815815, 0.015515693848684214, 0.0020952677422368424, 0.008907295886842106, 0.00873527318223684, -0.006631097216973685, -0.01977647116223684, 0.010740387438947363, 0.008736050202499998, -6532119030263152e-19, -8522597289473685e-19, 0.007881729391184214, 0.007262564786315789, 0.009642556828684206, 0.009887033669644734, -0.00506204858236842, 0.00914667588671053, -0.005646160281184208, 0.0015682480643947365, 0.007187644667573682, -6413499337828947e-19, 0.0014132899411842103, 0.0017755321165263149, -0.007160940067000004, 0.012367878591973682, 22851084263157844e-20, -0.006308410619078947, -0.0015791580263157898, 0.00442315712593421, -0.006452675031118422, -0.009020969568421053, -0.011030041889539469, -8780194159210523e-19, 9627984798684214e-19, 0.00363151196994737, 0.02183342311710526, 0.02024013596973684, -0.012353824388684213, -764319970657895e-18, 0.002105059234210527, -0.0014566305570592104, 0.002706323287631579, 0.00607090862407895, -0.009545597578157896, -0.004247753485894737, -0.0176261248381579, -0.0031491103884210524, -0.003108941359539473, 0.015593445543815788, -0.04427306710881578, -0.0020792380994736847, 0.011489951907105264, 0.006966976375342106, 0.0015082572486578947, 0.007737702031710525, -0.00655683788473684, 0.007863643000657894, 0.002917634675013158, -0.004152638770789473, 0.005619210159473683, 0.005586618189342104, 0.010026886728421051, -0.004179918709473686, -0.005501686800131579, -0.00604261921421053, -0.0071300491338157895, 0.014459129589473686, -0.0037379425788157897, -0.0020940462386842117, -0.00957774127394737, -0.03357854765131578, 0.025668219275000004, 0.022622876078947373, 0.0022629713582894718, -0.0026858775323684216, -0.0017051095038157894, 0.003815842962894737, -3828872972368422e-19, 0.0026066615468157894, 0.012387053006578948, -0.006318214374868418, -0.007521578666315793, -0.01284997625631579, 0.012826012949078947, 0.0010223195625, -0.011615881295131579, 0.0022139161670263153, -0.002016348744078947, -0.0028064120447368417, -0.015572008834210525, -0.0019618904405263164, 0.00544554776289474, 0.009761993845921054, -0.012984902144736842, -0.014145811457894734, -0.008978529723144736, 0.004056017691315789, -0.011844596710394733, -0.0059587758225, 0.007508870492105264, -0.005443937433289474, 0.002935879441578947, 0.01486225123960526, -0.005532202826052629, 0.005462015192631581, -0.02565744589868421, -0.008383098813815791, 0.003647495577368422, 5357671111842098e-19, 0.01166961910486842, -0.006377186925131579, 0.0127008994825, -0.009436918356578944, 0.0020323967420921053, -0.008456428355526319, -2027747211842104e-19, -0.0030937144914473694, -0.011085721413078948, -0.009645654179210527, -0.014846991478947372, -0.0035684288476315797, -0.011654160063684214, -0.01581150187026316, -0.016840036789473687, 0.013057866414473684, -0.008234539141578947, 0.0053163960105263195, 0.020490004785526317, -0.00960410656486842, -0.006657243668236841, 0.010736420357105264, -0.01748494961973684, 0.0011016242359736844, 0.005718755139868422, 0.006338006613157893, 0.0038684128078947367, 0.005595157857631579, 0.017694987824210535, 0.017391755352355258, -0.003702699658552634, -0.005022188236513158, 0.01342638474771316, -0.0043205563098684206, -0.0028454328957894745, 2592531746052632e-19, -0.004767219290789473, 0.013560908384539477, 0.005906873550263159, -0.009617733145394736, 0.003591151950263157, 0.005010814367368423, 0.0012510964286842107, 0.0028993149072368417, -0.0051906266312368434, 0.00729437020368421, -0.012531499855657886, 0.020476676778750005, -0.009869155927894734, 0.0025973456112368416, -0.021903372915789476, 0.008153542140921052, -0.006835870289605262, -0.010486773017592106, 0.017626112727631586, -0.004606312977368421, -0.014957404596052633, 0.0020897874979618424, -0.004724369788980265, 0.021548606073684213, -0.0019029721914473681, 0.006200722453289475, -0.003450824262276317, -0.006826156169210524, -0.010176031075657897, 0.024789349911842107, 0.003143936896315789, -0.004955119694078948, 9158874664473686e-19, 0.0052856249526315804, 0.01390172287763158, 0.004978571828947366, -0.0032051206281578947, -0.007972612475236842, -0.007769723397631579, -0.00202725623381579, -0.003416697538776315, -0.002556709217407894, 0.0184408019, -0.01105052606855263, -0.014664148855789474, 0.003882449320657895, -0.012429670850921054, 0.013084466028552635, -0.04336451231578946, 0.0074979511960526326, -0.001663643616907895, 0.008059816289473682, -0.011445970542105267, -0.004167850928697367, -0.003230411173657895, 0.02097656965710526, -0.011578596098421053, 0.012013696860657893, 0.001233423443421052, -0.002649905661144737, -0.00883562393153947, 0.0015486095338157892, -0.010413099061842105, 0.013987708639236847, -0.0038697919174999996, 0.006219689598421055, 0.006652394345230264, -0.005381284718815789, -0.0037626181478947387, 0.01059816618401315, 0.003220842913421052, 0.0035804951468421044, 0.010183990906447369, -0.009547694365789472, 7697464371184215e-19, -0.011326520949342108, 0.036538593302236834, 9323258973684188e-20, -0.008973688185921053, 0.00706366331381579, 0.001107784416394737, -4910452642105268e-19, -6440596276315794e-19, -0.0036792987653684202, 0.003713873318157893, -0.004735835042960525, -9658112065789478e-19, -0.043979574686842084, -0.0016790318328947353, 9925788503157894e-19, 0.018722528654473682, -0.0021518665293421054, 0.0035296605411842103, 1413653897368415e-19, -0.017016988203947366, 0.004561038191973685, 0.015442165966184201, -0.007485759814473685, -0.017065918415000002, 0.009342482221710524, -0.0020734458669736835, -0.002520825664789474, -0.021231756026315784, -0.010013884122368423, 0.009265903680263157, 0.008139276791052632, -5609036057894738e-19, 0.015773905215697364, -0.001884182508960525, -0.0024270794468947356, -0.00422654353631579, 0.006008762833684209, -0.003698271740263158, 0.016081907390789473, 0.030718033629736848, -0.007108369866842106, 0.00527163336881579, -9271790684210529e-19, 0.0068789392490789456, -0.013093138075605264, -0.012924308120526315, 0.00556886656968421, 0.0033076618509210527, 0.0017935490473684217, -0.008094466807394738, -0.01079597931, 0.01151358625263158, 0.00893792486236842, 0.010344446836842108, -0.00719051074644737, 0.00572758606, 0.004846286956973685, 0.00814658403092105, -0.0010492790623684207, 0.0049120969460526315, -0.01486755767197368, 0.004852195027565792, -0.007043126832710525, 0.005356651270263156, -0.0035065615885723684, -0.005829078253026317, 0.025083412392631576, 0.0015541765726315804, -0.013320558341842105, -0.027978110792105267, -0.004866113275657896, 0.009822611491184208, -0.004338714495526316, 0.028622747207894733, 0.0056140354747368434, -0.012210432556184212, 0.0033045029190263164, -19000230480263145e-20, -0.0034141616881578937, -0.004623406075394737, 0.006392982858421052, 0.01835209741710526, 0.01747985185131579, 0.004233065692460527, 0.01626176455263158, 0.0032433631718421056, -0.011749469372421053, -0.012891163621052632, -0.01571628433157894, 0.002652207523026316, 0.004507458543026318, -0.01775668739868421, -0.03493414880657894, -0.016362935907894737, 7675142188157897e-19, 0.010285956762684217, -0.0014735680384210526, 0.011252831868552636, 9547897207894737e-19, 0.006510753468289477, 0.005189211297763158, -0.013117319414473682, 0.003801194065131578, -0.008176472670263162, -0.008538372863026316, 0.02108607474342105, 0.0037161164223684204, -0.004774306337894736, -0.0077946213527631605, 0.0024585640678947366, -0.012176232483421057, -0.012235060736184205, 0.001400212257894737, 0.0027084579294736843, 0.0068722990685526324, 0.013335502111842099, -0.005830226586052632, 0.011873504235263161, -0.013693625648026312, -0.010449696567302632, 0.011044927082500003, 0.015400494224552629, -0.009381916401355262, 0.006673642672368421, -0.0018263740446052626, -0.0021770728546052624, 0.016361497218421055, -0.01863254121315789, -0.003530500149210525, -0.03730359020723685, -0.004191118148289474, -0.0045071628236842114, 0.015596569568947373, 0.004240642962276315, -0.002759536991368422, 0.005148003131355265, -0.0069468455677631595, 0.012819585946447368, -0.003170211528815789, 0.01752115107447369, 0.009766708002105265, 0.01720768516973684, -0.01617324446578948, 0.012112183639473681, -0.021386946318421057, -19106013060526326e-20, 0.006491905236710525, 0.012694083912631583, -0.012121427248552632, 0.007453259151052631, -0.005300583340657895, -0.0034357232692105253, -0.008234549374210526, -0.0049134867761842105, -0.011864055638157895, -0.00727513381118421, -0.006225588572394736, -0.014474562209210527, -1696423735526317e-19, -0.009927942404210525, 0.005164234018026316, 0.0017515462315789469, 0.0015904607235526311, 0.007963644751578946, 0.012216724002631584, -0.009501306335068424, -0.003338244066407896, -0.013702270143026316, 3177477896842107e-19, -0.004519560832171056, 0.002465137685263159, 0.0021053644855789483, 0.01910074195263158, 0.012031324014473682, -0.0018186422331578943, 0.005212327788421051, -0.004785163042710527, 0.0021153964885526322, -0.00444928972188158, -0.0035029865, 0.0075856674897368396, -0.016637170858460525, -0.0049104649688157895, 0.004211803076513158, -8546719754210526e-19, -0.005023115469473685, 0.0029476111911842105, 0.002885427894921053, 0.004207519965584211, -0.0045995042944736875, 0.003015317669210526, -0.003959649376578948, -0.001799221694921052, -0.010122554486973682, -0.004602558039210528, 0.0013513901315789464, 3764912463157896e-19, 0.008489159527105262, 0.014707852295131572, 0.002345036650789474, -0.0032689961036842102, 0.04255329955263159, -0.014716855848684204, 0.008619987162236838, 0.008365918811578948, -0.005013759794736842, 0.004195959585499997, -0.008992120611710525, -0.009782703207236846, -0.0022335605896052625, 0.01287937127763158, -0.015554637754473693, 0.008397985909605265, 0.002251561622499998, -0.010050093168815789, 0.008956767632171053, 0.013687852065394742, 0.013600534268289477, 0.004365934441315789, -0.0030305592554868413, -0.00781057913469737, -0.004966902079605262, 0.01856187427644737, -0.0025631659986842118, 0.004677612719921054, 10226186131578904e-20, -0.014421684380263157, 0.016739205349605258, 0.0050146044172894744, 0.011911084407631578, -0.002687138399210526, 0.00960758048539474, -0.002726553521315789, -2118536161842109e-19, 0.013187813793947371, 0.009969895463026316, 0.006658861126052631, -0.0018322755946052636, -0.0017487937331578944, -0.011101524417894743, -0.032939431818421065, 0.01520578899605263, 0.0015081202571052632, -0.005066026860486843, 493556515986842e-18, 0.004060829064605263, -0.005561150131894735, 0.010997560033026309, 0.004095647503947369, 0.012622729288684204, -0.004958941837157896, 0.006538527521447367, -0.0010266161943421049, -0.004851542462973687, 0.0016268616459210535, 0.008403855759605262, -0.005476859455, -0.00812804427618421, 0.007041481924657892, 8838693684210528e-20, 0.00597193902618421, -0.00842409854263158, 0.0024697172419736856, 0.005663838686578944, 0.0036075020965789487, -0.0023292463477631578, -0.0032376719465789477, 0.021101475338026313, 26567486563157904e-20, 0.016493054231184204, -0.002458445587631579, 0.0010258956694736841, 0.00225805411368421, 0.0031990768135526323, 0.006263685490526316, -0.004572679283552632, 0.009529538310526317, -0.011298854067368422, -0.010216326432368422, -0.01634466709473685, -0.014281002560460524, 2702401223684224e-20, 0.005255444044671053, -5290619164473683e-19, 0.020079138140789477, -0.0017828449621052637, -0.012192540535789468, -0.007199579816184209, -0.00116835002625, 0.00958368675736842, 0.007733851895789477, 0.007963292808289474, 0.025216065143421052, 0.004103331857894736, 0.0030591781828947368, -0.009872114714473685, -0.004663548545, 0.004991833832105262, -0.006863926871710525, 0.001242838931578947, 0.020425079027802634, 0.012370465663815786, -0.012126274007894736, 0.010670443024473687, -0.01464566428460526, -0.0038673775906710524, 41958086710526394e-21, 0.01994244099210526, 0.015357990706842106, 0.0063989385026315794, -0.018309239200000004, 0.006747877917368419, -0.017506960167236837, 0.005670401942631581, -0.010581732321578946, 0.0011620065078947373, 0.012163235759210531, 0.006399715106223681, -0.006113071873210528, -0.0028651888345789466, 0.002149627898157895, -0.012140688709210527, -0.010713522528947373, 0.02737408816710527, 0.017518066717105266, -0.005137931570986841, 0.003589904351447368, 0.0010994190049210533, -0.004798525595026317, -4554749059210497e-20, -6981043210526358e-20, 0.017134092135131583, 0.012083527265789476, -0.049615527359210515, 0.005816751165736842, 0.01857131190000001, 0.02351225466336842, 0.01219104790131579, -0.0010487995125921048, -0.0044726659714473685, -0.001028941063157895, -0.005443464117499998, -0.00634262967868421, 0.010381099005263152, 0.001703392962105263, -0.009139037917894735, 0.009512460323684208, 0.008586436496315792, -0.025455710537105262, -0.009792295319078947, -7742059002744737e-19, 0.018877256644736842, 0.038857334956578955, 0.003912381590921053, -0.008361733056842105, 0.016590833038421057, -0.005869556491710525, 0.009990736888552633, 38346460510526274e-20, -0.016626637246578948, -0.012364668933289474, 0.0018547245361842113, 0.006512999228605265, -0.001085481154868421, -0.009963445404999997, 0.004301809971973684, 3661409990131576e-19, -4224867659394737e-19, 48160601578947393e-20, -0.007223044006763162, -0.026113254673289465, -0.0013004677222368422, -0.0017831314044736836, 0.01561539529144738, -0.0066719939618421036, -0.00877529002351316, 0.006605579253289475, 0.005603149853552632, -0.007193712031578948, -0.0016247132320263158, -0.012534181940394738, 0.017229109368421053, 0.00245370861631579, -0.006031722248552632, 0.0031117475930263158, 0.0043886369376315805, -0.0024453895729249996, 0.00690473798328947, 40740072210526353e-20, -0.0031424490643421057, 0.019926203121315794, 0.012182200482894739, 0.008118145491578951, -0.005559053631315788, -27164370357368446e-20, -0.003351124758092105, 0.005957678860368421, -0.008513101869473681, 0.007304541067499999, 0.019957336234210518, -0.0030209489469736834, 0.004469626572763158, 0.012090736671578948, 0.01514115723331579, 0.0042360726635526326, -0.010162506523684207, -0.002649304801184211, -0.007750173208749997, 0.0019587431771447374, -0.027095424518421053, 0.0066075871005263145, 0.00536601891631579, -0.0010357673420394737, -0.003466868494342106, 0.014316960686578954, 0.0023369776231578956, -0.0053653818119210545, -0.007858214859999999, -0.013146294391315785, -0.0018566735342105262, -0.009514895538421051, -0.0036132000074342112, 0.0034368430490789486, -8554010195394731e-19, -0.0032387031372368437, 0.00244777456131579, -0.006286163061842106, 0.011771267721710532, 0.023035620363157896, -0.0043442739443421054, -0.009922730226315792, -0.004276738937499999, -0.0035189323507894745, 0.0039030267724473704, 0.014395429023592102, -0.0012053757906578947, -2897619489473682e-19, 0.007045867771144736, 0.007517767199210526, 0.007418771915644738, 0.010169157498289476, 0.00706302323276316, 0.013311043676250002, 0.003038169512894737, 0.0033463043809210517, 0.001753204881197368, -0.0074550630986842115, -0.03247426388684211, -0.014712809272763156, -0.01257650307744737, -0.005583758863815789, -0.010988394333684212, -0.01094829823105263, 0.014527793146184208, -0.01726736960019736, -0.0011412191313157898, -0.003875160005921052, 0.0054491025328289484, 0.00764098283223684, -0.01397128377631579, 0.020156240986078953, -0.018178711318157893, 0.007760771186842106, -0.012693300230263159, 0.0034562666953947383, 0.017623470872368423, 0.01328646389205263, 0.006033057996184212, 0.0021477171030263157, 0.004209592630394737, 0.022607883206578958, 45995770960526315e-20, 0.004256902114473686, 0.007727120836526311, -0.011495399911315795, -0.006097572578026317, -0.003288532194342106, 23524967355263143e-20, -0.01843602415421052, -0.006332212189999999, -0.007104603521578947, -0.006046406687763155, 0.0031444280434210527, 0.011026709301315791, 0.007965343235657892, -7478460321052628e-19, 0.010399411723157894, -0.003222595633552633, 0.0013722621246052631, -9306063203684211e-19, -0.008244672536447365, 0.010224801592763153, 0.011236862973157893, 0.002438936607828946, -0.0011834995152631578, -0.007761896696973684, -0.006536142010526313, -0.004305835025789474, -0.006375306423552633, 0.002894340127526317, -0.007056530478157897, -0.006344087711473684, 0.012371267300526317, -0.008661172924210528, 0.016608231906578945, 0.006209598555605264, -0.0049610081385394736, -0.006289596580421053, -0.008653004873157896, 0.006589724684342105, 0.0042221396663157905, -0.024205309596052636, -0.007927559016842107, -0.0036796517148684213, -0.010860645916842101, -0.001776141146973683, -0.0066375001164473675, 0.002395305515921052, -0.014593319744736844, 0.00733454749668421, 0.0019130213015789476, -0.02945044170131579, 0.0021041659146052625, -0.002779561371539474, -0.020078335207894735, 0.003642550809710527, 5936502644736846e-19, 0.00325616999868421, 0.017399437181578953, -0.06370752007631578, -0.003701780296631579, 0.007564594753552632, -0.00405948423839737, 0.0015840840405263162, 0.005836310675263158, -0.012381032086315788, -0.004665367583947368, -0.0010173959317894734, 0.005156387308802632, -0.0165339495006579, 734178938157895e-18, 0.024508261125789473, 0.01724277075526316, 0.008913617889078948, 0.018123411353289477, 0.019972735151315802, -0.015223236485526315, -0.011504417352105265, 0.010046699026184209, -0.009774468743421052, 0.014051472367763159, -799595632236844e-19, 0.015914003425263158, -0.010235261282894738, -0.012426796318973685, -0.00529559477105263, 0.0032275154818421047, -0.012022474961184216, 0.004842165463157897, -0.012777494966842105, 0.007940708949736842, -0.010386868507894734, -0.012277893373289472, -0.01469461501513158, 6472758955460526e-19, 0.011309826192631581, 0.0014896182946052632, -0.0018290806492105261, 0.004781091154078948, 0.009413893570921053, 0.00916419533118421, -0.002920155307368421, -0.004322433785789473, 0.010922147476842106, -9692939010657897e-19, -0.00471161965105263, 0.0022456688428947364, -0.01511019358289474, 0.01469485253026316, -0.0034939871920921027, 0.005169176186973684, -0.004767383189802632, -0.004363123971710525, 0.008160435356184211, 0.008593854647631578, -0.014373928093157892, 0.012998453866184211, 0.012818183890921054, -0.0012967544054736846, 0.018860078121447365, 0.011299536434868421, 0.010162780092499995, 0.010768595093881578, 0.006929429669736845, -0.009301306071052631, -0.001229964434210526, 0.022915811622105268, 0.005473494591263157, 0.01684595049736842, 0.0068085582832894745, -0.009735548395394736, -0.008009809031052632, 0.00818278650394737, -0.00514607482631579, -0.0017882432596052638, -0.003795041893157895, -0.0028177598829473675, -0.009401223562894738, -0.015638386469736837, -0.013144470036842108, -0.0025362829124999987, -0.015570190517552634, 0.0072135779351315795, -0.0033293784007894737, 0.0033921677573684203, 0.0171126722368421, -0.016200724738157896, 0.002023070578552632, -0.005874176478421054, -0.007982894414539473, -0.01305297109342105, 0.013835959466144737, -0.007678114530657894, 0.0016565042665789473, -0.0029898593556578947, 0.018475673282499997, -0.004774599107368421, -0.01045985660768421, 5002329298684213e-19, 455613157105266e-19, 0.012770474667763154, 0.0036531933109210527, -0.006355904673157896, -0.00323254957336842, -28950164197368423e-20, -0.0016983754679473682, -6461348456578951e-19, 0.011579839645394736, 3174967802632419e-21, -0.009248690072105265, 0.010413905775572371, 0.00742944108473684, 0.00453180122631579, 0.01615883042802631, -0.0032757992935526312, -0.0038371938214394738, -0.002908959269342105, 0.009208926093951316, -0.0014955339189473683, -0.013758465006973683, -0.0063294295475, -0.005727852496578948, -0.005272904527105263, -0.001316834533684211, -0.01645172019144737, -0.007092707085578947, -0.003522257189605263, -0.013505265605263156, -0.011881032946052632, 0.011369551982828954, 44452595263157905e-21, -0.006352405066578949, 0.0052995613325, 0.009505844287763156, -0.006053228503013156, 0.006845024962368421, -0.011510292038552633, -0.0032177408799999997, -0.004505434028289475, 0.004123595264342105, 0.006593527555000002, -0.011078657794605259, -0.014011584826078945, 0.0029858133488157895, 4344722920789474e-19, 0.008640971361973684, 0.006481291948157893, -0.005891967694342105, 0.008448872632763157, 0.016859102106052633, 0.0014603208068421055, 0.005249472965605262, -0.00686901125013158, -0.010637044371578948, 0.011924648195789474, -0.0058005032065789495, 0.015501499024999997, -0.006453810105921054, -0.002997035320473683, 0.018575800172368425, -0.008515451444736838, 0.012462028264473679, -0.003774380357539475, -0.0019450062711842105, 0.00391133496173684, 0.004730433910526316, -0.001315982468776316, 3232796018157894e-19, -0.0066704201258026286, 0.00680665693223684, -39029438710526344e-20, 0.005489703965131578, 0.008671756791842107, -0.012851425032368417, 0.003147755206052631, 0.0026194010623684216, -0.007664137591973682, -0.011883636635, 0.004133208043763159, -8303924315789413e-20, 0.003270837395131579, -0.005892774992763157, 0.012238801593815785, 0.006942355931973683, 0.02878469881921053, 9479045131578946e-19, 0.0017351399474736847, 0.008778382914078947, 0.0010939997295263163, 0.0030465893436842097, 0.014783142862368417, 0.01642540962717105, 0.0036857923714473675, -0.015363344993026315, 0.009919231350263158, -0.011551756493421059, 0.0023134715465394744, 0.011385295549473687, 0.013802586752105264, -0.01116167753921053, -0.003641126586684211, -0.013648889441184206, 0.014234762527368418, 0.002806655006105263, -0.013499138960736849, 0.005006243019473683, 0.015739427460526312, -0.0027175753445131574, -0.010932971389473686, -0.010770135974552631, 890700216526316e-18, -0.012623942286842103, 0.016124839350000003, -0.002831514939934211, 0.012697006429342104, -0.007019076696973686, -0.006475317798065787, 0.007137869946052634, 0.006031961175105265, -0.00705848445763158, 0.0033737443014210527, -2768167815789512e-20, 0.017694467707894734, 0.006258390639605262, -0.002385706069394737, 0.003583886412894737, -7993168968421051e-19, -0.01620972400113158, 0.01370171146118421, 0.00461520679318421, -7547631113157896e-19, 0.002939954357631579, -0.006845462558289473, 0.007328082212763157, 0.007676322326467105, 0.004349595261973684, 0.015829044343197374, -0.00368448221881579, 5303418106447364e-19, 0.0026827215614473685, -0.008580460431710527, 0.005024989097499999, -0.003635687485394737, 0.002272944439315789, -0.006124602738289472, -0.016172138838026325, 0.015377584130394738, 0.010782426606184206, -0.021383269930657894, 0.005706450336052631, 0.0018523320315789475, 3522892494736843e-19, 0.004350316041157894, 0.005934959479144734, 0.01708160452131579, -0.007678650551447369, -0.0033582777418421053, -0.017157569269684224, 0.007354085403947371, 8351606031578944e-19, -0.005335390844342104, -0.002535301282368421, 0.014636234615921057, 0.004858749898355263, 0.007662922150526313, -0.0016256868378026308, 0.01556731267368421, -0.005104593538289476, -0.019748377389473677, -0.013980995652631582, 0.00946453539263158, -0.008415238208421055, -0.011370187082631577, -0.024026692542368423, -0.028569824043500013, -0.004478069888947369, 0.0031515005953947363, -0.002700122834605264, 0.00815917739855658, -0.00445320840494737, 0.006830579967631578, -0.006684497927105263, 0.010432664122105263, -0.014661140320368424, -0.006587801074605265, 0.007357709939078946, -0.005931698591973684, -7732484365789474e-19, -0.002239530471052632, 0.007788843097894735, 0.0064669147390789454, -0.0030537573617631575, 0.017894125887236843, 0.014577202200000002, 0.0015132674616710532, -0.0057732834064473685, -0.0027821142750131585, -0.01908095769276315, 0.009781772397894737, 0.009500178334210524, -0.08152622444736843, 0.008212754039473679, -0.01767476994144737, 0.0026395801725000003, 0.0014657673559210526, 0.007638076904605263, 0.004058115665973685, 0.0035145148113157896, -0.011827003826315791, -0.0027065570113157895, 0.0023756798456578943, 0.008448311618421052, 0.017983404865789466, 0.016279126637631577, -0.0012591387876315795, -0.01015563660263158, -0.007210258607868422, 5225580767105262e-19, 0.008399898934210526, 0.005169876301250003, -0.0054817867677631575, 0.004851883672052633, 8781897375131572e-19, -0.004407749175657896, -0.0037234890038684225, 0.010837226267236846, -0.008299530855789473, 0.012997853572105266, -0.017374133039473685, 0.01771941214802632, -0.010850383854999996, -0.0025922976049605273, -0.005014948546052633, 0.001572493777631579, -0.009683719784736844, 0.003544048853289474, -0.005399044507894736, 0.0019298673893421046, 0.008562550747213162, 0.007685438104276315, 9653876659736838e-19, 0.006209795067934209, -0.007815720736421053, 0.01339235502684211, -0.014595927550000002, -0.001961306322894736, 0.01755357029118421, 0.009892284107105262, -0.004357266436710526, -0.024933551971052636, -0.008265622360263156, 46308488684210446e-21, 0.008073451047105263, -0.006002720232921055, 0.00960784907105263, -0.008960232250921057, 0.009452138660526316, -1669984473684197e-19, 0.006347901398026315, 0.006253983917105261, -0.001933425444473684, -0.010605378191710526, 0.0017956876511842107, 0.010316846388552634, -0.006851734682407896, 0.017523879366710526, -0.003045540768026316, 0.021021487419736837, -0.00978115143263158, 0.007848767184210523, 0.008862482220921052, -0.01242224652736842, 0.0013790572871052633, 0.014478706237421052, -0.008613721365578947, 8338612144736844e-19, 0.003780419830131578, 0.00346602358868421, 0.01269026605723684, 0.009463772316851317, 0.012594825682894736, -0.0069123792341578925, 0.0013869928297368425, -0.012008816909210525, -0.005822936399078947, -0.016418475083815786, -0.010629006791973683, 0.008168218550394738, 0.00664607999610526, -5069868140000001e-19, 0.004181848071447371, -0.0011114877839473682, 0.02246608591315789, -0.0034439313037368416, -0.004351277874210527, 0.0014461106753947362, -0.009660680614197373, -0.005408365936052628, 0.01752714284907894, 0.008516543233210525, 0.002278526259736842, -0.006875266473026315, -0.0069421802624999975, 0.013035910887894736, 0.0015391923593421058, 0.0012664572747368423, 0.0011414591399473686, -0.0037214528182894745, 0.015104741671868427, -0.013068065997078947, -9741302530000001e-19, -0.0033918721798684216, 0.005097137174605263, 0.004477671593026316, 0.006166728530789473, -4620546571052633e-19, -0.00529603509618421, 8418184122421051e-19, -0.0012031493919868418, 15712514144736853e-20, -0.0019224767417105261, 0.005464992050000003, 0.004573905729556577, -0.005107717659999997, -0.001779724216276316, 0.0062555419631578945, 0.014157424513157893, -0.002229668639710526, -0.004112240003421051, -0.008737391783947368, -0.01772272931749999, -0.011969726380789475, 3489228665526319e-19, 0.008398761923223683, 0.006083781918289473, 0.0038491992196052634, 0.006757484750263158, -0.0033988848290789457, 0.010786320785381581, 0.007709229539986843, -0.0027759906160526315, 0.01513786151671053, -33675679921052606e-20, -9034154792105268e-19, -0.006730010358421051, -0.0038794277310526316, 0.011774508437552627, 0.0075108212575000005, -5415923363157894e-19, -0.010228818563289476, -0.004567732969605264, -0.006103785833947367, -0.007408031901286839, -0.0032699436107894737, -0.007860791874210528, 0.01599756300842105, -0.016585482788684217, -0.008410989815789471, -0.0024622896271447366, -31383816486842115e-20, -0.006790721234210526, 0.0037121541342105256, -0.009942839455, -0.012361527721052628, 0.019747696744736844, -0.004605994977907893, 0.0033676318580263156, 8737887935394738e-19, 0.002211198596144737, 0.010937877776315795, -0.01129901567118421, -8168034689473677e-19, -0.009641223938421057, 0.009402437952631576, 0.0056297516052631605, -0.0010065862368421055, -0.02594543341447368, -0.0011355776477631582, -0.011891248669605264, -0.00839228417031579, 0.007896343589210524, 0.007322515729342106, 0.0033040433167105263, 0.003778204579868421, 0.011096790547631581, -0.0015593353430263153, 0.014356465188157893, -0.006630788594118421, 4828352872894737e-19, 0.0010450569010473684, -0.007027775473815791, -0.006984254253157892, -0.00792534963342105, -0.00162584528, -0.006522221855263158, 0.01805963293197369, -0.004809070690789476, -0.01814591389078947, -0.005865267296828947, 0.003988285848684209, -0.008169152964999999, -0.008437095909210527, 0.009360843043815788, 0.030021375652105258, 0.007297060365657896, -0.0023612295406578963, -0.01073050399763947, 0.0019045162401315795, 0.00651718905263158, 0.0010275199546052635, -0.006277306921263158, 0.0012021913027105262, -0.011182417592105264, -0.002024020123421053, -0.006231476668342106, 4796000135526314e-19, 0.006449109247355262, 7456603261184208e-19, -0.005144762157460526, -0.0021357675948684212, -0.01883197047171053, -0.025576503247368407, -0.013539074083421053, -0.011034470814473686, 0.0024368244498684222, -0.002245899774736842, 0.007094408709210526, 0.0012029363072368422, -0.009510369465000001, -0.012366834156578943, 22163493250000016e-20, -864950124473684e-18, -0.0054156288555263134, 0.005750937247368423, 0.003270796098421053, 0.002449161180921053, 52041173618420834e-21, 0.010704513787500002, 0.001962141009605263, 0.004546446430526313, -0.009514348226710524, 0.013900074301842112, 0.007515311701355261, 0.0035688571342105263, -0.0031417825293421063, 0.013631733623026311, 0.004473217585789474, 0.022099065907894736, -0.010242928179605263, -0.021115605811315788, -0.0020430657981592103, -0.004960829025921049, 6026669513157779e-20, -0.004585000899605264, -0.004475863079315788, -0.004507509982368421, 0.012760686508684211, 0.0035079304818421055, 0.0043142242481578955, -0.0037753994023157884, 0.009972505233289472, 0.004257388717499998, 0.0037933767182894737, -0.003782828635039474, -0.016245113222631585, -0.0067635378846052615, 0.001699853626842106, 0.0049727823532894734, -0.0026726438017763156, 35606309460526324e-20, 0.0014221154155263163, -0.006753894785657897, -0.0021303370428947363, 0.0020290390381578942, 0.0065541381115789485, 0.005578077509210527, 0.00597834956631579, -0.015656070957894737, -0.005700937814868422, -0.003300278165210526, 0.0010437032015789478, -0.006081244438026316, -0.012030119331578949, 0.008609655173684212, -0.012421846317171054, 0.0038849181815789487, -0.003441401350921053, 0.005337632936842106, -0.00501430082631579, 0.007684295191355262, -0.018589622549210528, 0.0020294963380921055, -0.01736990133552631, -12342767794736842e-20, 0.013101640196631579, -19718100105263185e-20, 0.00191136175070921, 0.002991744120394736, 0.005360340401578948, -0.002541910205657895, -0.011420830478947371, 0.0025571802081578946, -0.007654641906842104, 1324760923026315e-19, 0.009839589908289474, 0.014137809323684214, 0.005973617257894737, 0.0044086344710526325, -0.007683909966710525, -0.014283573396973682, -0.015558832550000004, 0.006422352959605265, 0.0015610042364473677, 0.005954876463289471, 0.01747821746710526, 0.012649821948026316, -0.00588777466013158, 0.00278459120360921, -0.0027093084425131573, 0.00528561605, -0.0013567440365789465, -0.0036329947868421046, -0.027717547824078946, -0.009446810628947372, 0.0016673699111842107, 0.01964425766578947, -0.00695099289526316, 0.01540288453881579, -0.0017949823404736845, -0.0017532934771052637, 0.011818318206578948, 0.0014771281863157897, 0.010423521287236842, 7254289103947369e-19, -0.004566167288026315, -0.003529428743197369, 0.0011952240294736843, -0.003898400712605264, -0.010473680018684213, 0.00285922366139474, -0.006599853688026317, -0.02107415088815789, 0.0052880693118421045, 0.006744707181578948, -0.00798451460657895, -0.004557204219868423, -0.01156681187255263, 0.0076239759752631635, 0.0035902046968684207, -0.012573743979605262, -0.003764909397236842, 6335979498684211e-19, -0.003016045632947368, 0.0018927498906578949, 0.007497210715789474, -0.005934193091907899, 0.0035080823515789466, -0.0018217714548684216, -5523007649828952e-19, -7058270163815789e-19, 0.012370342157368423, -15139791644736762e-21, -0.013432961709210524, -4939559349999998e-19, 0.010054779912499996, -0.001919280470486842, -0.0013844150172368421, 0.007696783919605264, 0.008991117240473684, -0.007747281024078945, -0.004739962277894735, 0.007187543989473684, 0.003015955778815791, -0.001928289877644735, 0.004620562280552632, -0.0014514659089473684, -0.020361874824473686, 0.010851485952894735, -0.0048367870628947375, 7418370901184215e-19, 0.003954019490328949, -0.0036905010957894754, 0.005135467446315788, -7641653630263166e-19, 0.002803192092157894, 9011874512236843e-19, -0.006852827178236843, -0.009182144093157896, 6662634763552632e-19, 0.003859204278289474, 0.002627766069263158, 16687577934210564e-20, -0.004155122549868421, 0.007481256317894739, 0.010201827506842105, -0.02001931662526316, 0.008597913657499998, 0.009211417565, -0.003000300423684211, 48565491249999974e-20, -0.006839893910657894, -0.0024400726705263165, 0.0018072735346052636, -0.019441373660526323, 0.008917724683289475, 0.006977527517447371, 0.0012267423015789476, 37295210526322205e-22, -0.03201578951578947, 0.0014607340267894736, 0.010337255695263156, 0.002957082175947369, 0.009742125079473684, 0.0062952107691315795, 0.010293411451381573, 0.007467224718026317, -0.01702668064539474, 0.005315579784210528, -0.03403872432368421, -0.0036593492817105257, -0.013481478045789471, -0.005543817282105263, 0.0024990400036842106, -0.005272580224539472, 0.009082922817368418, -0.001777538198289474, -0.00401194444394737, 0.00793982549736842, 23839166631578926e-20, 0.005703706245131579, 0.0032615849919210536, 5623444232236841e-19, -0.009299548110394735, 0.0010441157952631576, -0.012694072275263158, 0.004126734016842105, -0.001088491213815789, -43924066513157913e-20, -0.006497900055789475, -0.008375932914473687, 0.006604953940657895, 0.008322977985131578, 0.0014929076139473686, -0.005037357923289473, 0.001687304174736842, 0.005036407010486843, 0.002468036690526316, 0.0014052489157894733, -0.0022257209973684214, 0.005458085299473683, 0.009009774955749998, 0.0858067330657895, -0.007581642367631578, 0.01083994584868421, -0.0022605711906578943, 21345696315789494e-20, -0.005091092415263156, -0.0064649052059342115, -0.0031673467632894734, 0.007837809513026317, -0.0048379660456749985, 0.003358471353947369, -0.007209436236315789, -0.004074764670526317, -0.002432236466131579, -0.001538101053328947, -0.003958276178197368, -0.001431222515394737, -0.002890863070263158, -0.005015565842105263, 0.006637256008947367, -0.01610401879026316, 16318058486842113e-20, 0.006704906538815789, -0.00704305531026316, -0.006291144144078946, 0.00933739933177632, 0.003039505811973684, -0.002349317244736842, 6161272673684213e-19, 0.011576436187894739, 19294986634210533e-20, -5418114680263158e-19, 0.002641153911184212, -0.00675274457026316, 0.008304665786171056, 0.001867557076842105, 0.007009144105789473, 37644492855263173e-20, 0.008968001444210526, 0.0015434073640789474, 0.005244117515263159, 0.0029953329880263156, 5347106021052633e-19, 0.004156591307368421, -0.0022211070997368424, 0.0034716415264473685, -0.0065318866889473685, 977989682631579e-18, -0.0014095522748684215, -0.006451674766447366, 0.0032100871473157893, -0.005529904199539473, 0.0059584155557894725, -9850399996052639e-19, 0.006995684919078948, -0.0022856163722368393, -0.01090589053710526, 0.009130581944078944, 0.00312594295013158, 0.007374450093421053, 0.0025797777251710522, 29641350526315737e-21, 0.001176881737763158, -0.014572063391447372, -2289824355263157e-19, -0.004469249211710526, 0.007769186374868425, -0.002506505231434211, 0.006041142717631577, -0.002120238433026316, -0.009695580013552628, -0.005020087666881578, 0.005143053156315791, 0.007150294719789475, 0.0023021195396710527, 0.003707133851447368, 0.006069693725921051, -0.00467861785710526, 0.02125906401236842, 9268083446052627e-19, -0.003634692288684209, -0.003680463652815789, 0.0040336247021052615, 0.0013372253536447368, 0.0021130635865789465, -4880915286842109e-19, -0.012233446567342104, -0.004310965072894738, -0.01132869828552632, -0.006841497305263159, -0.0016422147394736845, -0.002537146005289474, 0.003615671777368422, 0.00814799093118421, -0.005056491793263158, 0.013174237758684208, 3394553878157892e-19, -0.008489372885473684, -0.0027938550723684203, 0.0030627760844078957, 9348454796052637e-19, 0.004848255386842105, -0.0117739507, -6810965494736843e-19, -0.002880153715, 0.008861613728178947, 0.0033199058337500006, -0.003612675859078948, 0.002928360304065789, 0.0039185375651315775, -7332073442631576e-19, -0.0012935513150789466, 0.004886879997894738, 0.007781129023552632, -0.004267412731052632, -0.003639562495460526, 0.00523262424868421, -0.003657068880394737, 0.005125610617552631, -0.004419953952236842, -9843244355092107e-19, -2347114171052623e-20, 0.0016072527152631584, 0.003128275799539474, 4279722777368421e-19, 0.006050774428552632, -0.004237210059210528, -0.0025468053725000005, 0.0026924242311184205, -0.02019396686092105, -0.005761839523684209, -0.009751797271973686, 0.011594078876973685, 9348787827236843e-19, 0.014106164205263163, 6055481813026316e-19, -7440742407894764e-20, -0.005227106624868422, 0.013380218100789466, 0.008165820871447366, -4882895227631577e-19, -0.0010533377903157893, -0.0016510250091447362, 0.0018723641477631577, -0.004344320649736843, 0.002451466830486842, 0.003751309517368421, -1192675066447369e-19, 5871760036842106e-19, 0.00721447406936842, 0.003513352502315789, 0.009986706387763158, -0.003577922982105263, -0.006272508934210527, 0.00939798507907895, 0.005559408675131579, -0.004530027807368421, 0.008267799573289474, 9763903811842103e-19, 6323663030263157e-19, -0.018563745183684206, 0.003477922045657895, 0.0034454675522368416, 0.0022030032148815794, 9718481634210526e-19, -0.006363050955000002, 0.009044980506973683, -0.007551598236973688, -6711054927894736e-19, -0.0013286158334210524, 0.0017464641878947365, -0.011715851191973686, -0.005520589822500002, 8535201651315791e-19, 0.010038929649605262];
5671
5678
 
5672
5679
  // src/lib/chat/preProcessor.ts
5673
- function wrapAsUserText(prefix, text12) {
5674
- if (!text12 || !text12.trim()) return [];
5680
+ function wrapAsUserText(prefix, text13) {
5681
+ if (!text13 || !text13.trim()) return [];
5675
5682
  return [{ role: "user", content: [{ type: "text", text: `${prefix}
5676
- ${text12}` }] }];
5683
+ ${text13}` }] }];
5677
5684
  }
5678
5685
 
5679
5686
  // src/lib/chat/cryptoPriceClassifier.ts
@@ -5712,6 +5719,80 @@ function createCryptoPricePreProcessor(options = {}) {
5712
5719
  };
5713
5720
  }
5714
5721
 
5722
+ // src/lib/chat/reservationReceipts.ts
5723
+ var ACTIONS = [
5724
+ {
5725
+ kind: "booking",
5726
+ tool: "anuma_book_restaurant",
5727
+ alreadyDone: /^Tool "[^"]*" failed: ALREADY_BOOKED:/
5728
+ },
5729
+ {
5730
+ kind: "cancel",
5731
+ tool: "anuma_cancel_reservation",
5732
+ alreadyDone: /^Tool "[^"]*" failed: ALREADY_CANCELLED:/
5733
+ }
5734
+ ];
5735
+ var NOT_AN_ATTEMPT = /^Tool "[^"]*" (has already been called|was already called)/;
5736
+ var BOOKING_OUTCOME_UNKNOWN = /^Tool "[^"]*" failed: BOOKING_OUTCOME_UNKNOWN:/;
5737
+ var CANCEL_OUTCOME_UNKNOWN = "CANCEL_OUTCOME_UNKNOWN";
5738
+ function extractReservationReceipts(toolCallEvents) {
5739
+ const latest = /* @__PURE__ */ new Map();
5740
+ for (const event of toolCallEvents ?? []) {
5741
+ const action = ACTIONS.find((a) => event.name?.endsWith(a.tool));
5742
+ const output = event.output ?? "";
5743
+ if (!action || !output || NOT_AN_ATTEMPT.test(output)) continue;
5744
+ const kept = latest.get(action.kind)?.status;
5745
+ if (kept === "made") continue;
5746
+ const receipt = toReceipt(action, event.arguments ?? "", output);
5747
+ if (kept === "unknown" && receipt.status !== "made") continue;
5748
+ latest.set(action.kind, receipt);
5749
+ }
5750
+ return [...latest.values()];
5751
+ }
5752
+ function toReceipt(action, argumentsJson, output) {
5753
+ const args = parseObject(argumentsJson);
5754
+ const result = parseObject(output);
5755
+ return {
5756
+ kind: action.kind,
5757
+ venueName: text(args.venue_name) ?? "",
5758
+ day: text(args.day) ?? "",
5759
+ time: text(args.time) ?? "",
5760
+ partySize: count(args.party_size),
5761
+ reservationId: text(result.reservation_id) ?? text(args.reservation_id),
5762
+ resyUrl: text(result.reservations_url),
5763
+ feeSummary: text(result.fee_summary),
5764
+ ...outcome(action, output, result)
5765
+ };
5766
+ }
5767
+ function outcome(action, output, result) {
5768
+ if (action.alreadyDone.test(output)) return { status: "already_done" };
5769
+ const reason = text(result.error);
5770
+ if (action.kind === "booking") {
5771
+ if (BOOKING_OUTCOME_UNKNOWN.test(output)) return { status: "unknown" };
5772
+ const held = result.success === true || text(result.reservation_id) !== void 0;
5773
+ return held ? { status: "made" } : { status: "not_made", reason };
5774
+ }
5775
+ if (result.error_code === CANCEL_OUTCOME_UNKNOWN) return { status: "unknown", reason };
5776
+ const cancelled = result.success === true && !result.error && !result.error_code;
5777
+ return cancelled ? { status: "made" } : { status: "not_made", reason };
5778
+ }
5779
+ function parseObject(json4) {
5780
+ try {
5781
+ const parsed = JSON.parse(json4);
5782
+ return parsed && typeof parsed === "object" ? parsed : {};
5783
+ } catch {
5784
+ return {};
5785
+ }
5786
+ }
5787
+ function text(value) {
5788
+ if (typeof value === "number") return String(value);
5789
+ return typeof value === "string" && value ? value : void 0;
5790
+ }
5791
+ function count(value) {
5792
+ const n = typeof value === "string" && value.trim() ? Number(value) : value;
5793
+ return typeof n === "number" && Number.isFinite(n) ? n : void 0;
5794
+ }
5795
+
5715
5796
  // src/lib/chat/resumeStream.ts
5716
5797
  init_clientConfig();
5717
5798
 
@@ -5720,6 +5801,46 @@ init_clientConfig();
5720
5801
 
5721
5802
  // src/tools/confirmConstants.ts
5722
5803
  var CONFIRM_TOOL_NAME = "prompt_user_confirm";
5804
+ var BOOK_RESTAURANT = {
5805
+ tool: "AnumaPaymentsMCP-anuma_book_restaurant",
5806
+ status: "confirmed_not_booked",
5807
+ fields: ["venue_id", "config_id", "party_size", "day", "venue_name", "time"]
5808
+ };
5809
+ var CANCEL_RESERVATION = {
5810
+ tool: "AnumaPaymentsMCP-anuma_cancel_reservation",
5811
+ status: "confirmed_not_cancelled",
5812
+ fields: [
5813
+ "reservation_id",
5814
+ "venue_name",
5815
+ "day",
5816
+ "time",
5817
+ "party_size",
5818
+ "fee_applies",
5819
+ "fee_amount"
5820
+ ]
5821
+ };
5822
+ var CONFIRM_REQUIRED_FIELDS = /* @__PURE__ */ new Map([
5823
+ ["book_restaurant", BOOK_RESTAURANT],
5824
+ ["anuma_book_restaurant", BOOK_RESTAURANT],
5825
+ ["anumapaymentsmcp-anuma_book_restaurant", BOOK_RESTAURANT],
5826
+ ["cancel_reservation", CANCEL_RESERVATION],
5827
+ ["anuma_cancel_reservation", CANCEL_RESERVATION],
5828
+ ["anumapaymentsmcp-anuma_cancel_reservation", CANCEL_RESERVATION]
5829
+ ]);
5830
+ function confirmRequirement(action) {
5831
+ if (typeof action !== "string") return void 0;
5832
+ return CONFIRM_REQUIRED_FIELDS.get(action.trim().toLowerCase());
5833
+ }
5834
+ function missingConfirmFields(action, parameters) {
5835
+ const requirement = confirmRequirement(action);
5836
+ if (!requirement) return [];
5837
+ const shown = /* @__PURE__ */ new Set();
5838
+ for (const parameter of Array.isArray(parameters) ? parameters : []) {
5839
+ const { name, value } = parameter ?? {};
5840
+ if (typeof name === "string" && typeof value === "string" && value.trim()) shown.add(name);
5841
+ }
5842
+ return requirement.fields.filter((field10) => !shown.has(field10));
5843
+ }
5723
5844
 
5724
5845
  // src/lib/chat/toolLoop.ts
5725
5846
  init_redactor();
@@ -8421,13 +8542,13 @@ var StreamSmoother = class {
8421
8542
  /**
8422
8543
  * Add text to the buffer. If smoothing is disabled, passes through immediately.
8423
8544
  */
8424
- push(text12) {
8425
- if (this.destroyed || !text12) return;
8545
+ push(text13) {
8546
+ if (this.destroyed || !text13) return;
8426
8547
  if (!this.enabled) {
8427
- this.callback(text12);
8548
+ this.callback(text13);
8428
8549
  return;
8429
8550
  }
8430
- this.buffer += text12;
8551
+ this.buffer += text13;
8431
8552
  this.ensureTimer();
8432
8553
  }
8433
8554
  /**
@@ -8438,9 +8559,9 @@ var StreamSmoother = class {
8438
8559
  if (this.destroyed) return;
8439
8560
  this.stopTimer();
8440
8561
  if (this.buffer.length > 0) {
8441
- const text12 = this.buffer;
8562
+ const text13 = this.buffer;
8442
8563
  this.buffer = "";
8443
- this.callback(text12);
8564
+ this.callback(text13);
8444
8565
  }
8445
8566
  this.resolveDrain();
8446
8567
  }
@@ -8507,9 +8628,9 @@ var StreamSmoother = class {
8507
8628
  const currentSpeed = this.getCurrentSpeed(elapsed);
8508
8629
  const charsThisTick = Math.max(1, Math.round(currentSpeed * (TICK_INTERVAL / 1e3)));
8509
8630
  const toRelease = Math.min(charsThisTick, this.buffer.length);
8510
- const text12 = this.buffer.slice(0, toRelease);
8631
+ const text13 = this.buffer.slice(0, toRelease);
8511
8632
  this.buffer = this.buffer.slice(toRelease);
8512
- this.callback(text12);
8633
+ this.callback(text13);
8513
8634
  if (this.buffer.length === 0) {
8514
8635
  this.stopTimer();
8515
8636
  this.resolveDrain();
@@ -8713,6 +8834,7 @@ function getToolName(tool) {
8713
8834
  }
8714
8835
  function toolsAfterConfirmation(apiTools, executionResults) {
8715
8836
  const members = /* @__PURE__ */ new Set();
8837
+ let keepConfirm = false;
8716
8838
  for (const r of executionResults) {
8717
8839
  if (r.name !== CONFIRM_TOOL_NAME) continue;
8718
8840
  const answer = r.result;
@@ -8720,11 +8842,12 @@ function toolsAfterConfirmation(apiTools, executionResults) {
8720
8842
  const setName = CONFIRMED_ACTION_TOOL_SETS.get(answer.action.trim().toLowerCase());
8721
8843
  const set = BUILT_IN_TOOL_SETS.find((s) => s.name === setName);
8722
8844
  for (const member of set?.members ?? []) members.add(member);
8845
+ if (missingConfirmFields(answer.action, answer.parameters).length > 0) keepConfirm = true;
8723
8846
  }
8724
8847
  if (!apiTools.some((t) => members.has(getToolName(t) ?? ""))) return void 0;
8725
8848
  return apiTools.filter((t) => {
8726
8849
  const name = getToolName(t) ?? "";
8727
- return members.has(name) || name === CONFIRM_TOOL_NAME || name === TOOL_SEARCH_TOOL_NAME;
8850
+ return members.has(name) || name === TOOL_SEARCH_TOOL_NAME || keepConfirm && name === CONFIRM_TOOL_NAME;
8728
8851
  });
8729
8852
  }
8730
8853
  var STREAM_RESUMABLE_HEADER = "X-Stream-Resumable";
@@ -8930,9 +9053,9 @@ async function runToolLoop(options) {
8930
9053
  messages = await redactBatch(messages);
8931
9054
  if (preProcessors?.length) {
8932
9055
  try {
8933
- const text12 = extractLastUserText(messages);
8934
- if (text12.length > 0) {
8935
- const embedding = await generateEmbedding(text12, {
9056
+ const text13 = extractLastUserText(messages);
9057
+ if (text13.length > 0) {
9058
+ const embedding = await generateEmbedding(text13, {
8936
9059
  apiKey: headers?.["X-API-Key"],
8937
9060
  getToken: token ? () => Promise.resolve(token) : void 0,
8938
9061
  baseUrl
@@ -8940,7 +9063,7 @@ async function runToolLoop(options) {
8940
9063
  const results = await Promise.all(
8941
9064
  preProcessors.map(async (p) => {
8942
9065
  try {
8943
- return await p({ prompt: text12, embedding, signal: combinedSignal });
9066
+ return await p({ prompt: text13, embedding, signal: combinedSignal });
8944
9067
  } catch (err) {
8945
9068
  console.warn("[runToolLoop] pre-processor failed:", err);
8946
9069
  return void 0;
@@ -9099,11 +9222,11 @@ async function runToolLoop(options) {
9099
9222
  }
9100
9223
  });
9101
9224
  accumulator = createStreamAccumulator(model || void 0);
9102
- contentSmoother = new StreamSmoother((text12) => {
9103
- if (emitData) emitData(text12);
9225
+ contentSmoother = new StreamSmoother((text13) => {
9226
+ if (emitData) emitData(text13);
9104
9227
  }, smoothing);
9105
- thinkingSmoother = new StreamSmoother((text12) => {
9106
- if (emitThinking) emitThinking(text12);
9228
+ thinkingSmoother = new StreamSmoother((text13) => {
9229
+ if (emitThinking) emitThinking(text13);
9107
9230
  }, smoothing);
9108
9231
  let chunksEmittedDownstream = false;
9109
9232
  try {
@@ -9608,11 +9731,11 @@ Executing tool: ${toolInfo}
9608
9731
  }
9609
9732
  });
9610
9733
  currentAccumulator = createStreamAccumulator(model || void 0);
9611
- contContentSmoother = new StreamSmoother((text12) => {
9612
- if (emitData) emitData(text12);
9734
+ contContentSmoother = new StreamSmoother((text13) => {
9735
+ if (emitData) emitData(text13);
9613
9736
  }, smoothing);
9614
- contThinkingSmoother = new StreamSmoother((text12) => {
9615
- if (emitThinking) emitThinking(text12);
9737
+ contThinkingSmoother = new StreamSmoother((text13) => {
9738
+ if (emitThinking) emitThinking(text13);
9616
9739
  }, smoothing);
9617
9740
  let chunksEmittedDownstream = false;
9618
9741
  try {
@@ -9839,11 +9962,11 @@ async function resumeStream(options) {
9839
9962
  } = options;
9840
9963
  const strategy = getStrategy(handle.apiType);
9841
9964
  const accumulator = createStreamAccumulator(handle.model || void 0);
9842
- const contentSmoother = new StreamSmoother((text12) => {
9843
- if (onData) onData(text12);
9965
+ const contentSmoother = new StreamSmoother((text13) => {
9966
+ if (onData) onData(text13);
9844
9967
  }, smoothing);
9845
- const thinkingSmoother = new StreamSmoother((text12) => {
9846
- if (onThinking) onThinking(text12);
9968
+ const thinkingSmoother = new StreamSmoother((text13) => {
9969
+ if (onThinking) onThinking(text13);
9847
9970
  }, smoothing);
9848
9971
  const idleController = new AbortController();
9849
9972
  let watchdog;
@@ -10087,20 +10210,20 @@ function sseFailureMessage(status, statusText, detail = "") {
10087
10210
  return `SSE failed: ${status} ${statusText}${detail}`;
10088
10211
  }
10089
10212
  function parseSseChunks(raw, incompleteBuffer) {
10090
- const chunks = [];
10091
- const text12 = incompleteBuffer + raw;
10092
- const lines = text12.split("\n");
10213
+ const chunks2 = [];
10214
+ const text13 = incompleteBuffer + raw;
10215
+ const lines = text13.split("\n");
10093
10216
  const remaining = raw.endsWith("\n") ? "" : lines.pop() ?? "";
10094
10217
  for (const line of lines) {
10095
10218
  if (!line.startsWith("data: ")) continue;
10096
10219
  const data = line.substring(6).trim();
10097
10220
  if (data === "[DONE]") continue;
10098
10221
  try {
10099
- chunks.push(JSON.parse(data));
10222
+ chunks2.push(JSON.parse(data));
10100
10223
  } catch {
10101
10224
  }
10102
10225
  }
10103
- return { chunks, remaining };
10226
+ return { chunks: chunks2, remaining };
10104
10227
  }
10105
10228
  var xhrTransport = (options) => {
10106
10229
  const queue = [];
@@ -10169,18 +10292,18 @@ var xhrTransport = (options) => {
10169
10292
  const newData = xhr.responseText.substring(lastProcessedIndex);
10170
10293
  lastProcessedIndex = xhr.responseText.length;
10171
10294
  if (newData.length > 0) options.onActivity?.();
10172
- const { chunks, remaining } = parseSseChunks(newData, incompleteBuffer);
10295
+ const { chunks: chunks2, remaining } = parseSseChunks(newData, incompleteBuffer);
10173
10296
  incompleteBuffer = remaining;
10174
- for (const chunk of chunks) {
10297
+ for (const chunk of chunks2) {
10175
10298
  push({ type: "data", value: chunk });
10176
10299
  }
10177
10300
  };
10178
10301
  xhr.onload = () => {
10179
10302
  options.signal?.removeEventListener("abort", abortHandler);
10180
10303
  if (incompleteBuffer) {
10181
- const { chunks } = parseSseChunks(incompleteBuffer + "\n", "");
10304
+ const { chunks: chunks2 } = parseSseChunks(incompleteBuffer + "\n", "");
10182
10305
  incompleteBuffer = "";
10183
- for (const chunk of chunks) {
10306
+ for (const chunk of chunks2) {
10184
10307
  push({ type: "data", value: chunk });
10185
10308
  }
10186
10309
  }
@@ -10585,14 +10708,14 @@ var MaskScopedEmbeddingCache = class extends Map {
10585
10708
  this.inner = inner;
10586
10709
  this.masked = masked;
10587
10710
  }
10588
- key(text12) {
10589
- return `${this.masked ? "m" : "r"}:${text12}`;
10711
+ key(text13) {
10712
+ return `${this.masked ? "m" : "r"}:${text13}`;
10590
10713
  }
10591
- get(text12) {
10592
- return this.inner.get(this.key(text12));
10714
+ get(text13) {
10715
+ return this.inner.get(this.key(text13));
10593
10716
  }
10594
- set(text12, value) {
10595
- this.inner.set(this.key(text12), value);
10717
+ set(text13, value) {
10718
+ this.inner.set(this.key(text13), value);
10596
10719
  return this;
10597
10720
  }
10598
10721
  };
@@ -14631,7 +14754,7 @@ Which item numbers should be flagged?`,
14631
14754
  if (parsed === null) return empty;
14632
14755
  return { flagged: parseFlagged(parsed, scope.length) };
14633
14756
  }
14634
- function parseFlagged(parsed, count) {
14757
+ function parseFlagged(parsed, count2) {
14635
14758
  const out = /* @__PURE__ */ new Set();
14636
14759
  if (typeof parsed !== "object" || parsed === null) return out;
14637
14760
  const list = parsed.poisoned;
@@ -14639,7 +14762,7 @@ function parseFlagged(parsed, count) {
14639
14762
  for (const raw of list) {
14640
14763
  const n = typeof raw === "number" ? raw : typeof raw === "string" ? Number(raw) : NaN;
14641
14764
  if (!Number.isInteger(n)) continue;
14642
- if (n >= 1 && n <= count) out.add(n - 1);
14765
+ if (n >= 1 && n <= count2) out.add(n - 1);
14643
14766
  }
14644
14767
  return out;
14645
14768
  }
@@ -15136,8 +15259,8 @@ var STOPWORDS = /* @__PURE__ */ new Set([
15136
15259
  "user",
15137
15260
  "users"
15138
15261
  ]);
15139
- function tokenize(text12) {
15140
- const m = text12.toLowerCase().match(TOKEN_RE);
15262
+ function tokenize(text13) {
15263
+ const m = text13.toLowerCase().match(TOKEN_RE);
15141
15264
  if (!m) return [];
15142
15265
  return m.filter((t) => !STOPWORDS.has(t));
15143
15266
  }
@@ -16664,14 +16787,14 @@ async function retainWithPersistence(content, ctx, options = {}) {
16664
16787
  );
16665
16788
  }
16666
16789
  if (options.consolidateOptions) {
16667
- const outcome = await tryConsolidate(trimmed, ctx, options, prepared);
16668
- if (outcome) {
16669
- if ("done" in outcome) return outcome.done;
16670
- if ("create" in outcome) {
16790
+ const outcome2 = await tryConsolidate(trimmed, ctx, options, prepared);
16791
+ if (outcome2) {
16792
+ if ("done" in outcome2) return outcome2.done;
16793
+ if ("create" in outcome2) {
16671
16794
  consolidationDecidedCreate = true;
16672
16795
  } else {
16673
- supersedeTargetIds = outcome.supersede;
16674
- supersedeContent = outcome.content;
16796
+ supersedeTargetIds = outcome2.supersede;
16797
+ supersedeContent = outcome2.content;
16675
16798
  }
16676
16799
  }
16677
16800
  }
@@ -17337,12 +17460,12 @@ async function extractAndRetain(messages, retainCtx, options) {
17337
17460
  if (failedWrites > 0) {
17338
17461
  log.warn(`[memory/extract] ${failedWrites} of ${filtered.length} candidates failed to retain`);
17339
17462
  }
17340
- const outcome = exhaustedEmpty ? "empty-after-retry" : filtered.length > 0 ? "extracted" : droppedAfterRedaction ? "dropped-after-redaction" : "no-facts";
17463
+ const outcome2 = exhaustedEmpty ? "empty-after-retry" : filtered.length > 0 ? "extracted" : droppedAfterRedaction ? "dropped-after-redaction" : "no-facts";
17341
17464
  return {
17342
17465
  candidates: succeededCandidates,
17343
17466
  results,
17344
17467
  failedCount: failedWrites,
17345
- outcome,
17468
+ outcome: outcome2,
17346
17469
  quarantined: quarantinedInfo,
17347
17470
  funnel: {
17348
17471
  rawCandidateCount,
@@ -17574,7 +17697,7 @@ function createAutoExtractor(options) {
17574
17697
  ...options.retainCtx,
17575
17698
  embeddingOptions: {
17576
17699
  ...options.retainCtx.embeddingOptions,
17577
- maskInput: (text12) => piiRedactor.maskText(text12)
17700
+ maskInput: (text13) => piiRedactor.maskText(text13)
17578
17701
  }
17579
17702
  } : options.retainCtx;
17580
17703
  function processTurn(messages, conversationId) {
@@ -17607,7 +17730,7 @@ function createAutoExtractor(options) {
17607
17730
  const t0 = Date.now();
17608
17731
  void (async () => {
17609
17732
  try {
17610
- const { candidates, results, failedCount, outcome, failure, funnel, timings, model } = await extractAndRetain(window2, retainCtx, {
17733
+ const { candidates, results, failedCount, outcome: outcome2, failure, funnel, timings, model } = await extractAndRetain(window2, retainCtx, {
17611
17734
  extract,
17612
17735
  ...options.minConfidence !== void 0 && { minConfidence: options.minConfidence },
17613
17736
  ...options.entityCtx !== void 0 && { entityCtx: options.entityCtx },
@@ -17624,7 +17747,7 @@ function createAutoExtractor(options) {
17624
17747
  onQuarantined: (info) => options.onMemoryQuarantined?.({ ...info, conversationId })
17625
17748
  }
17626
17749
  });
17627
- if (outcome !== "empty-after-retry" && failedCount === 0) {
17750
+ if (outcome2 !== "empty-after-retry" && failedCount === 0) {
17628
17751
  const advancedTo = window2[window2.length - 1].id;
17629
17752
  stateFor(conversationId).watermark = advancedTo;
17630
17753
  persistCursor(conversationId, messages, advancedTo, contiguous);
@@ -17643,7 +17766,7 @@ function createAutoExtractor(options) {
17643
17766
  failedCount,
17644
17767
  durationMs: Date.now() - t0,
17645
17768
  conversationId,
17646
- outcome,
17769
+ outcome: outcome2,
17647
17770
  funnel,
17648
17771
  timings,
17649
17772
  model,
@@ -19320,12 +19443,12 @@ ${JSON.stringify(
19320
19443
  function parseAnswer(body, base, parseSchema) {
19321
19444
  if (typeof body !== "object" || body === null) return base;
19322
19445
  const obj = body;
19323
- const text12 = extractCompletionContent(obj) ?? "";
19446
+ const text13 = extractCompletionContent(obj) ?? "";
19324
19447
  const usage = obj.usage;
19325
19448
  let structuredOutput;
19326
- if (parseSchema && text12) {
19449
+ if (parseSchema && text13) {
19327
19450
  try {
19328
- structuredOutput = JSON.parse(extractJsonCandidate(text12));
19451
+ structuredOutput = JSON.parse(extractJsonCandidate(text13));
19329
19452
  } catch (err) {
19330
19453
  getLogger().warn("[memory/reflect] structured output was not valid JSON", {
19331
19454
  err: err instanceof Error ? err.message : String(err)
@@ -19335,7 +19458,7 @@ function parseAnswer(body, base, parseSchema) {
19335
19458
  const promptTokens = usage?.prompt_tokens ?? usage?.input_tokens ?? 0;
19336
19459
  const completionTokens = usage?.completion_tokens ?? usage?.output_tokens ?? 0;
19337
19460
  return {
19338
- text: text12,
19461
+ text: text13,
19339
19462
  ...structuredOutput !== void 0 && { structuredOutput },
19340
19463
  basedOn: base.basedOn,
19341
19464
  usage: {
@@ -19691,6 +19814,65 @@ function createLocalMemoryStore(options) {
19691
19814
  };
19692
19815
  }
19693
19816
 
19817
+ // src/lib/memory/store/memoryKeys.ts
19818
+ var KEY_ID_DOMAIN = "anuma-private-memory-key-id-v1";
19819
+ var MemoryKeyError = class extends Error {
19820
+ constructor(message) {
19821
+ super(message);
19822
+ this.name = "MemoryKeyError";
19823
+ }
19824
+ };
19825
+ async function importAesKey(hex) {
19826
+ return crypto.subtle.importKey(
19827
+ "raw",
19828
+ hexToBytes(hex).buffer,
19829
+ { name: "AES-GCM" },
19830
+ false,
19831
+ ["encrypt", "decrypt"]
19832
+ );
19833
+ }
19834
+ async function deriveMemoryKeyRing(signatureHex) {
19835
+ const v3Hex = await deriveKeyFromSignatureV3(signatureHex);
19836
+ const digest = await crypto.subtle.digest(
19837
+ "SHA-256",
19838
+ new TextEncoder().encode(`${KEY_ID_DOMAIN}:${v3Hex}`)
19839
+ );
19840
+ const keyId = "v3:" + Array.from(new Uint8Array(digest), (byte) => byte.toString(16).padStart(2, "0")).join("");
19841
+ return {
19842
+ keyId,
19843
+ v3: await importAesKey(v3Hex),
19844
+ v2: await importAesKey(await deriveKeyFromSignature(signatureHex))
19845
+ };
19846
+ }
19847
+ async function decryptWith(value, rings) {
19848
+ const version = value.startsWith("enc:v3:") ? "v3" : "v2";
19849
+ for (const ring of rings) {
19850
+ try {
19851
+ return await decryptDataWithKey(value.slice(`enc:${version}:`.length), ring[version]);
19852
+ } catch {
19853
+ continue;
19854
+ }
19855
+ }
19856
+ throw new MemoryKeyError(`No supplied key decrypts this enc:${version} field`);
19857
+ }
19858
+ function memoryCipher(canonical) {
19859
+ return {
19860
+ encrypt: async (plaintext) => `enc:v3:${await encryptDataWithKey(plaintext, canonical.v3)}`,
19861
+ decrypt: async (ciphertext) => {
19862
+ if (!ciphertext.startsWith("enc:v3:") || !isEncrypted(ciphertext))
19863
+ throw new MemoryKeyError("Remote memory content must be enc:v3 ciphertext");
19864
+ return decryptWith(ciphertext, [canonical]);
19865
+ }
19866
+ };
19867
+ }
19868
+ async function reencryptMemoryField(value, canonical, fallbacks = []) {
19869
+ const { encrypt } = memoryCipher(canonical);
19870
+ if (!value.startsWith("enc:")) return encrypt(value);
19871
+ if (!isEncrypted(value))
19872
+ throw new MemoryKeyError("Field has an encryption prefix but an invalid payload");
19873
+ return encrypt(await decryptWith(value, [canonical, ...fallbacks]));
19874
+ }
19875
+
19694
19876
  // src/lib/memory/store/remotePersistence.ts
19695
19877
  var RemoteMemoryError = class extends Error {
19696
19878
  constructor(message, status, code) {
@@ -19743,6 +19925,30 @@ var candidateListLimits = [
19743
19925
  ["memory_ids", 1e3],
19744
19926
  ["force_ids", 100]
19745
19927
  ];
19928
+ var queryListLimits = [
19929
+ ["scopes", 20],
19930
+ ["fact_types", 20],
19931
+ ["visibility", 20],
19932
+ ["memory_ids", 1e3],
19933
+ ["topics", 100]
19934
+ ];
19935
+ var queryFields = [
19936
+ "include_deleted",
19937
+ "include_archived",
19938
+ "include_quarantined",
19939
+ "include_superseded",
19940
+ "archived_only",
19941
+ "scopes",
19942
+ "fact_types",
19943
+ "visibility",
19944
+ "memory_ids",
19945
+ "topics",
19946
+ "updated_after",
19947
+ "order",
19948
+ "cursor",
19949
+ "limit",
19950
+ "include_embeddings"
19951
+ ];
19746
19952
  function record(value) {
19747
19953
  return typeof value === "object" && value !== null && !Array.isArray(value);
19748
19954
  }
@@ -20077,6 +20283,35 @@ async function createRemoteMemoryPersistence(options) {
20077
20283
  throw new Error("Invalid nearby batch response");
20078
20284
  return Promise.all(result.items.map((item, i) => decodeCommitted(item, prepared[i])));
20079
20285
  },
20286
+ query: async (queryOptions = {}) => {
20287
+ const { signal, ...query } = queryOptions;
20288
+ if (query.limit !== void 0 && (!Number.isInteger(query.limit) || query.limit < 1 || query.limit > 200))
20289
+ throw new Error("Page limit must be 1\u2013200");
20290
+ for (const [key, max] of queryListLimits) {
20291
+ const values = query[key];
20292
+ if (values && values.length > max)
20293
+ throw new Error(`Query ${key} accepts at most ${max} entries (got ${values.length})`);
20294
+ }
20295
+ const page = await request(
20296
+ "/memories/query",
20297
+ {
20298
+ method: "POST",
20299
+ body: JSON.stringify(
20300
+ Object.fromEntries(
20301
+ queryFields.filter((key) => query[key] !== void 0).map((key) => [key, query[key]])
20302
+ )
20303
+ )
20304
+ },
20305
+ signal
20306
+ );
20307
+ if (!record(page) || !Array.isArray(page.items) || page.next_cursor !== void 0 && typeof page.next_cursor !== "string" || page.changes_cursor !== void 0 && typeof page.changes_cursor !== "string")
20308
+ throw new Error("Invalid nearby private-memory page");
20309
+ return {
20310
+ ...await decodeAll(page.items),
20311
+ ...page.next_cursor !== void 0 && { next_cursor: page.next_cursor },
20312
+ ...page.changes_cursor !== void 0 && { changes_cursor: page.changes_cursor }
20313
+ };
20314
+ },
20080
20315
  candidateSet,
20081
20316
  candidates: async (embedding, candidateOptions = {}) => decodeAll((await fetchCandidates(embedding, candidateOptions, false)).items)
20082
20317
  };
@@ -20428,10 +20663,10 @@ function createRemoteMemoryPipeline(options) {
20428
20663
  factSource: {
20429
20664
  graphRanking: options.graphRanking,
20430
20665
  temporalRanking: options.temporalRanking,
20431
- search: async (text12, searchOptions) => {
20432
- const prepared = await prepare(text12, searchOptions);
20666
+ search: async (text13, searchOptions) => {
20667
+ const prepared = await prepare(text13, searchOptions);
20433
20668
  const ranked = await rankPreparedVaultCandidates(
20434
- text12,
20669
+ text13,
20435
20670
  prepared,
20436
20671
  embeddingOptions,
20437
20672
  searchOptions
@@ -20466,6 +20701,490 @@ function createRemoteMemoryPipeline(options) {
20466
20701
  };
20467
20702
  }
20468
20703
 
20704
+ // src/lib/memory/store/remoteStore.ts
20705
+ var import_uuid5 = require("uuid");
20706
+ init_logger();
20707
+ function relevant(change, options) {
20708
+ return options.includeDeleted ? change === "membership" : change !== "embedding" || !!options.embeddings;
20709
+ }
20710
+ function safely(onChange) {
20711
+ try {
20712
+ onChange();
20713
+ } catch (error) {
20714
+ getLogger().warn("[memory/remote-store] Subscriber threw:", error);
20715
+ }
20716
+ }
20717
+ var MAX_BATCH = 50;
20718
+ var MAX_QUERY_IDS = 1e3;
20719
+ var MAX_QUERY_TOPICS = 100;
20720
+ var MAX_QUERY_FILTER = 20;
20721
+ var RemoteMemoryPartialCreateError = class extends Error {
20722
+ constructor(created, cause) {
20723
+ super(`createMany stored ${created.length} memories before a batch failed`);
20724
+ this.created = created;
20725
+ this.cause = cause;
20726
+ this.name = "RemoteMemoryPartialCreateError";
20727
+ }
20728
+ };
20729
+ function warnFailed(failed) {
20730
+ if (failed.length)
20731
+ getLogger().warn(
20732
+ `[memory/remote-store] Skipping ${failed.length} undecryptable row(s)`,
20733
+ failed.map((failure) => failure.memory_id)
20734
+ );
20735
+ }
20736
+ function bounded(filters, key) {
20737
+ const values = filters[key];
20738
+ if (!values || values.length <= MAX_QUERY_FILTER) return [filters];
20739
+ return chunks(values, MAX_QUERY_FILTER).map((chunk) => ({ ...filters, [key]: chunk }));
20740
+ }
20741
+ function chunks(values, size) {
20742
+ const out = [];
20743
+ for (let i = 0; i < values.length; i += size) out.push(values.slice(i, i + size));
20744
+ return out;
20745
+ }
20746
+ function stateFilters(options) {
20747
+ return {
20748
+ include_deleted: options.includeDeleted,
20749
+ include_archived: options.includeArchived,
20750
+ include_quarantined: options.includeQuarantined,
20751
+ include_superseded: options.includeSuperseded
20752
+ };
20753
+ }
20754
+ function hidden(memory, options) {
20755
+ if (memory.trust_tier === "quarantined") return true;
20756
+ if (options.includeDeleted) return false;
20757
+ return !!memory.is_deleted || memory.archived_at !== void 0 && memory.archived_at !== null || !!memory.superseded_by;
20758
+ }
20759
+ function subscriptionKey({ memory, version }, options) {
20760
+ if (hidden(memory, options)) return void 0;
20761
+ if (options.includeDeleted) return String(!!memory.is_deleted);
20762
+ return JSON.stringify([
20763
+ options.embeddings ? version : null,
20764
+ memory.content,
20765
+ memory.scope,
20766
+ memory.updated_at,
20767
+ memory.fact_type,
20768
+ memory.event_time_start,
20769
+ memory.event_time_end,
20770
+ memory.event_time_kind,
20771
+ memory.trust_tier,
20772
+ memory.visibility,
20773
+ memory.published_at,
20774
+ memory.geohash,
20775
+ memory.topics,
20776
+ memory.topics_user_managed,
20777
+ memory.media,
20778
+ memory.source
20779
+ ]);
20780
+ }
20781
+ function topicInputs(topics, source) {
20782
+ return topics.flatMap((topic) => {
20783
+ const name = (typeof topic === "string" ? topic : topic.name).trim();
20784
+ const kind = typeof topic === "string" ? void 0 : topic.kind;
20785
+ return name ? [{ name, ...kind && { kind }, source }] : [];
20786
+ });
20787
+ }
20788
+ function mergeTopics(existing, added) {
20789
+ const byName = /* @__PURE__ */ new Map();
20790
+ for (const topic of [...existing, ...added]) {
20791
+ const key = normalizeEntityName(topic.name);
20792
+ if (!byName.has(key)) byName.set(key, topic);
20793
+ }
20794
+ return [...byName.values()];
20795
+ }
20796
+ function canonicalTopics(row) {
20797
+ return new Set((parseTopics(row.topics) ?? []).map((topic) => normalizeEntityName(topic.name)));
20798
+ }
20799
+ function createRemoteMemoryStore(options) {
20800
+ const { persistence, embeddingOptions } = options;
20801
+ const model = embeddingOptions.model ?? DEFAULT_API_EMBEDDING_MODEL;
20802
+ const pollIntervalMs = options.pollIntervalMs ?? 6e4;
20803
+ const pipeline = createRemoteMemoryPipeline(options);
20804
+ const subscribers = /* @__PURE__ */ new Set();
20805
+ const seen = /* @__PURE__ */ new Map();
20806
+ let timer;
20807
+ const notify = (change, records = []) => {
20808
+ if (timer) for (const record2 of records) seen.set(record2.memory.memory_id, record2);
20809
+ for (const subscriber of [...subscribers])
20810
+ if (relevant(change, subscriber.options)) safely(subscriber.onChange);
20811
+ };
20812
+ const enumerate = async (filters, max = Infinity) => {
20813
+ const records = [];
20814
+ let cursor2;
20815
+ do {
20816
+ const page = await persistence.query({
20817
+ ...filters,
20818
+ limit: Math.min(200, Math.max(1, max - records.length)),
20819
+ ...cursor2 && { cursor: cursor2 }
20820
+ });
20821
+ warnFailed(page.failed);
20822
+ records.push(...page.items);
20823
+ cursor2 = page.next_cursor;
20824
+ } while (cursor2 && records.length < max);
20825
+ return records.slice(0, max);
20826
+ };
20827
+ const enumerateIds = async (ids, filters) => (await Promise.all(
20828
+ chunks([...new Set(ids)], MAX_QUERY_IDS).map(
20829
+ (memory_ids) => enumerate({ ...filters, memory_ids })
20830
+ )
20831
+ )).flat();
20832
+ const queues = /* @__PURE__ */ new Map();
20833
+ const serialized = (id, task) => {
20834
+ const run = (queues.get(id) ?? Promise.resolve()).then(task, task);
20835
+ const settled = run.catch(() => void 0);
20836
+ queues.set(id, settled);
20837
+ void settled.then(() => {
20838
+ if (queues.get(id) === settled) queues.delete(id);
20839
+ });
20840
+ return run;
20841
+ };
20842
+ const live = async (id) => {
20843
+ const record2 = await persistence.get(id);
20844
+ return record2 && !record2.memory.is_deleted ? record2 : null;
20845
+ };
20846
+ const mutate = async (id, change, edit) => serialized(id, async () => {
20847
+ const record2 = await live(id);
20848
+ if (!record2) return null;
20849
+ const next = edit(structuredClone(record2.memory));
20850
+ if (!next) return null;
20851
+ const saved = await persistence.put(next, record2);
20852
+ notify(change, [saved]);
20853
+ return saved;
20854
+ });
20855
+ const embedInBackground = ({ memory: { memory_id: id, content } }) => {
20856
+ generateEmbedding(content, embeddingOptions).then(
20857
+ (vector) => serialized(id, async () => {
20858
+ const current = await live(id);
20859
+ if (!current || current.memory.content !== content || current.memory.embedding?.length)
20860
+ return;
20861
+ const saved = await persistence.put(
20862
+ { ...current.memory, embedding: storedVector(vector), embedding_model: model },
20863
+ current
20864
+ );
20865
+ notify("embedding", [saved]);
20866
+ })
20867
+ ).catch((error) => {
20868
+ getLogger().warn("[memory/remote-store] Failed to embed memory:", error);
20869
+ });
20870
+ };
20871
+ const newRow = (input) => {
20872
+ const now = Date.now();
20873
+ const scope = input.scope ?? "private";
20874
+ return {
20875
+ memory_id: (0, import_uuid5.v7)(),
20876
+ content: input.content,
20877
+ scope,
20878
+ level: levelFromScope(scope),
20879
+ created_at: now,
20880
+ updated_at: now,
20881
+ is_deleted: false,
20882
+ ...input.embedding !== void 0 && {
20883
+ embedding: storedVector(JSON.parse(input.embedding)),
20884
+ embedding_model: input.embeddingModel ?? model
20885
+ },
20886
+ proof_count: 1,
20887
+ source: "manual",
20888
+ ...input.eventTime && {
20889
+ event_time_start: input.eventTime.start ?? void 0,
20890
+ event_time_end: input.eventTime.end ?? void 0,
20891
+ event_time_kind: input.eventTime.kind ?? void 0
20892
+ },
20893
+ fact_type: input.factType,
20894
+ geohash: input.geohash,
20895
+ visibility: "private",
20896
+ twin_opt_in: false
20897
+ };
20898
+ };
20899
+ const created = (records, inputs) => {
20900
+ records.forEach((record2, i) => {
20901
+ if (inputs[i].embedding === void 0) embedInBackground(record2);
20902
+ });
20903
+ notify("membership", records);
20904
+ return records.map((record2) => stored(record2.memory));
20905
+ };
20906
+ const asStored = (record2) => record2 ? stored(record2.memory) : null;
20907
+ const everyState = {
20908
+ include_deleted: true,
20909
+ include_archived: true,
20910
+ include_quarantined: true,
20911
+ include_superseded: true
20912
+ };
20913
+ const changesSince = async (cursor2, pending2) => {
20914
+ const records = [];
20915
+ const failed = /* @__PURE__ */ new Set();
20916
+ const collect = (page) => {
20917
+ warnFailed(page.failed);
20918
+ records.push(...page.items);
20919
+ for (const failure of page.failed) failed.add(failure.memory_id);
20920
+ };
20921
+ let resume = cursor2;
20922
+ let next;
20923
+ do {
20924
+ const page = await persistence.query({
20925
+ ...everyState,
20926
+ order: "changed",
20927
+ limit: 200,
20928
+ ...(next ?? resume) && { cursor: next ?? resume }
20929
+ });
20930
+ collect(page);
20931
+ resume = page.changes_cursor ?? resume;
20932
+ next = page.next_cursor;
20933
+ } while (next);
20934
+ for (const memory_ids of chunks([...pending2], MAX_QUERY_IDS)) {
20935
+ let retry;
20936
+ do {
20937
+ const page = await persistence.query({
20938
+ ...everyState,
20939
+ memory_ids,
20940
+ limit: 200,
20941
+ ...retry && { cursor: retry }
20942
+ });
20943
+ collect(page);
20944
+ retry = page.next_cursor;
20945
+ } while (retry);
20946
+ }
20947
+ return { records, resume, failed };
20948
+ };
20949
+ let generation = 0;
20950
+ let ready = false;
20951
+ let cursor;
20952
+ let pending = /* @__PURE__ */ new Set();
20953
+ let polling = false;
20954
+ const poll = () => {
20955
+ if (polling) return;
20956
+ polling = true;
20957
+ const current = generation;
20958
+ changesSince(cursor, pending).then(({ records, resume, failed }) => {
20959
+ if (current !== generation) return;
20960
+ const changed = /* @__PURE__ */ new Set();
20961
+ for (const record2 of records) {
20962
+ const id = record2.memory.memory_id;
20963
+ const previous = seen.get(id);
20964
+ seen.set(id, record2);
20965
+ if (!ready) continue;
20966
+ for (const subscriber of subscribers) {
20967
+ const before = previous && subscriptionKey(previous, subscriber.options);
20968
+ if (before !== subscriptionKey(record2, subscriber.options)) changed.add(subscriber);
20969
+ }
20970
+ }
20971
+ ready = true;
20972
+ cursor = resume;
20973
+ pending = failed;
20974
+ for (const subscriber of changed)
20975
+ if (subscribers.has(subscriber)) safely(subscriber.onChange);
20976
+ }).catch((error) => {
20977
+ getLogger().warn("[memory/remote-store] Subscription poll failed:", error);
20978
+ }).finally(() => {
20979
+ polling = false;
20980
+ });
20981
+ };
20982
+ return {
20983
+ list: async (listOptions = {}) => {
20984
+ const order = listOptions.since ? "updated" : "created";
20985
+ const filters = {
20986
+ ...stateFilters(listOptions),
20987
+ include_embeddings: true,
20988
+ order,
20989
+ ...listOptions.scopes?.length && { scopes: listOptions.scopes },
20990
+ ...listOptions.factTypes?.length && { fact_types: listOptions.factTypes },
20991
+ ...listOptions.visibility?.length && { visibility: listOptions.visibility },
20992
+ ...listOptions.since && { updated_after: listOptions.since.getTime() }
20993
+ };
20994
+ const max = listOptions.limit && listOptions.limit > 0 ? listOptions.limit : Infinity;
20995
+ const variants = bounded(filters, "scopes").flatMap((f) => bounded(f, "fact_types"));
20996
+ if (!listOptions.memoryIds && variants.length === 1)
20997
+ return (await enumerate(filters, max)).map((r) => stored(r.memory));
20998
+ const fetched = await Promise.all(
20999
+ variants.map(
21000
+ (variant) => listOptions.memoryIds ? enumerateIds(listOptions.memoryIds, variant) : enumerate(variant, max)
21001
+ )
21002
+ );
21003
+ const rows = [...new Map(fetched.flat().map((r) => [r.memory.memory_id, r])).values()].map((record2) => stored(record2.memory)).sort(
21004
+ (a, b) => order === "updated" ? b.updatedAt.getTime() - a.updatedAt.getTime() || (a.uniqueId < b.uniqueId ? 1 : -1) : b.createdAt.getTime() - a.createdAt.getTime() || (a.uniqueId < b.uniqueId ? 1 : -1)
21005
+ );
21006
+ return rows.slice(0, max);
21007
+ },
21008
+ get: async (id) => asStored(await live(id)),
21009
+ listArchived: async () => (await enumerate({ archived_only: true, order: "archived", include_embeddings: true })).map(
21010
+ (record2) => stored(record2.memory)
21011
+ ),
21012
+ memoriesByTopics: async (names) => {
21013
+ const wanted = new Set(names.map(normalizeEntityName).filter(Boolean));
21014
+ const out = /* @__PURE__ */ new Map();
21015
+ const pages = await Promise.all(
21016
+ chunks([...wanted], MAX_QUERY_TOPICS).map((topics) => enumerate({ topics }))
21017
+ );
21018
+ for (const { memory } of pages.flat()) {
21019
+ const matched = [...canonicalTopics(memory)].filter((name) => wanted.has(name));
21020
+ if (matched.length) out.set(memory.memory_id, new Set(matched));
21021
+ }
21022
+ return out;
21023
+ },
21024
+ topicsByMemories: async (memoryIds) => {
21025
+ const out = /* @__PURE__ */ new Map();
21026
+ for (const { memory } of await enumerateIds(memoryIds, {
21027
+ include_archived: true,
21028
+ include_superseded: true,
21029
+ include_quarantined: true
21030
+ })) {
21031
+ const topics = canonicalTopics(memory);
21032
+ if (topics.size) out.set(memory.memory_id, topics);
21033
+ }
21034
+ return out;
21035
+ },
21036
+ create: async (input) => {
21037
+ const record2 = await persistence.put(newRow(input), 0);
21038
+ return created([record2], [input])[0];
21039
+ },
21040
+ createMany: async (inputs) => {
21041
+ const out = [];
21042
+ for (const batch of chunks(inputs, MAX_BATCH)) {
21043
+ let records;
21044
+ try {
21045
+ records = await persistence.putMany(
21046
+ batch.map((input) => ({ memory: newRow(input), expectedVersion: 0 }))
21047
+ );
21048
+ } catch (error) {
21049
+ if (out.length === 0) throw error;
21050
+ throw new RemoteMemoryPartialCreateError(out, error);
21051
+ }
21052
+ out.push(...created(records, batch));
21053
+ }
21054
+ return out;
21055
+ },
21056
+ update: async (id, patch) => {
21057
+ const saved = await mutate(id, "edit", (memory) => {
21058
+ if (memory.superseded_by) return null;
21059
+ memory.content = patch.content;
21060
+ memory.updated_at = Date.now();
21061
+ if (patch.scope !== void 0) {
21062
+ memory.level = levelForScopeChange(
21063
+ { level: memory.level, scope: memory.scope },
21064
+ patch.scope
21065
+ );
21066
+ memory.scope = patch.scope;
21067
+ }
21068
+ if (patch.factType !== void 0) memory.fact_type = patch.factType ?? void 0;
21069
+ if (patch.eventTime !== void 0) {
21070
+ memory.event_time_start = patch.eventTime?.start ?? void 0;
21071
+ memory.event_time_end = patch.eventTime?.end ?? void 0;
21072
+ memory.event_time_kind = patch.eventTime?.kind ?? void 0;
21073
+ }
21074
+ if (patch.embedding === void 0 || patch.embedding === null) {
21075
+ memory.embedding = [];
21076
+ delete memory.embedding_model;
21077
+ } else {
21078
+ memory.embedding = storedVector(JSON.parse(patch.embedding));
21079
+ memory.embedding_model = patch.embeddingModel ?? model;
21080
+ }
21081
+ return memory;
21082
+ });
21083
+ if (saved && patch.embedding === void 0) embedInBackground(saved);
21084
+ return asStored(saved);
21085
+ },
21086
+ delete: async (id) => !!await mutate(id, "membership", (memory) => ({ ...memory, is_deleted: true })),
21087
+ supersede: async (id, supersededById) => {
21088
+ if (id === supersededById) return false;
21089
+ const [first, second] = [id, supersededById].sort();
21090
+ return serialized(
21091
+ first,
21092
+ () => serialized(second, async () => {
21093
+ const [old, next] = await Promise.all([live(id), live(supersededById)]);
21094
+ if (!old || !next || old.memory.superseded_by || next.memory.superseded_by) return false;
21095
+ if (old.memory.kind !== void 0 && old.memory.kind !== null) return false;
21096
+ const saved = await persistence.putMany([
21097
+ {
21098
+ memory: { ...old.memory, superseded_by: supersededById, superseded_at: Date.now() },
21099
+ expectedVersion: old
21100
+ },
21101
+ { memory: next.memory, expectedVersion: next }
21102
+ ]);
21103
+ notify("membership", saved);
21104
+ return true;
21105
+ })
21106
+ );
21107
+ },
21108
+ archive: async (id) => !!await mutate(
21109
+ id,
21110
+ "edit",
21111
+ (memory) => memory.archived_at === void 0 || memory.archived_at === null ? { ...memory, archived_at: Date.now() } : null
21112
+ ),
21113
+ restore: (id) => serialized(id, async () => {
21114
+ const record2 = await live(id);
21115
+ if (!record2) return false;
21116
+ if (record2.memory.archived_at === void 0 || record2.memory.archived_at === null)
21117
+ return true;
21118
+ const { archived_at: _archivedAt, ...memory } = record2.memory;
21119
+ notify("edit", [await persistence.put(memory, record2)]);
21120
+ return true;
21121
+ }),
21122
+ setTopics: async (memoryId, topics) => asStored(
21123
+ await mutate(memoryId, "edit", (memory) => ({
21124
+ ...memory,
21125
+ topics: serializeTopics(mergeTopics([], topicInputs(topics, "user"))),
21126
+ topics_user_managed: true,
21127
+ topics_updated_at: Date.now()
21128
+ }))
21129
+ ),
21130
+ addTopics: async (memoryId, topics) => {
21131
+ const added = topicInputs(topics, "auto");
21132
+ const saved = await mutate(memoryId, "edit", (memory) => ({
21133
+ ...memory,
21134
+ topics: serializeTopics(mergeTopics(parseTopics(memory.topics) ?? [], added)),
21135
+ topics_updated_at: Date.now()
21136
+ }));
21137
+ if (!saved) return [];
21138
+ const now = /* @__PURE__ */ new Date();
21139
+ return mergeTopics([], added).map(
21140
+ (topic) => ({
21141
+ uniqueId: normalizeEntityName(topic.name),
21142
+ canonicalName: normalizeEntityName(topic.name),
21143
+ kind: topic.kind ?? null,
21144
+ createdAt: now,
21145
+ updatedAt: now
21146
+ })
21147
+ );
21148
+ },
21149
+ setVisibility: async (id, visibility, visibilityOptions) => asStored(
21150
+ await mutate(id, "edit", (memory) => {
21151
+ memory.visibility = visibility;
21152
+ if (visibility === "private") delete memory.published_at;
21153
+ else memory.published_at ?? (memory.published_at = Date.now());
21154
+ if (visibilityOptions?.twinOptIn !== void 0)
21155
+ memory.twin_opt_in = visibilityOptions.twinOptIn;
21156
+ return memory;
21157
+ })
21158
+ ),
21159
+ recall: (query, recallOptions) => pipeline.recall(query, recallOptions),
21160
+ retain: async (content, retainOptions) => {
21161
+ const result = await pipeline.retain(content, retainOptions);
21162
+ if (result.action === "create" || result.action === "supersede") notify("membership");
21163
+ else if (result.action === "update" || result.action === "merge") notify("edit");
21164
+ return result;
21165
+ },
21166
+ subscribe: (onChange, subscribeOptions = {}) => {
21167
+ const subscriber = { onChange, options: subscribeOptions };
21168
+ subscribers.add(subscriber);
21169
+ if (pollIntervalMs > 0 && !timer) {
21170
+ timer = setInterval(poll, pollIntervalMs);
21171
+ poll();
21172
+ }
21173
+ return () => {
21174
+ subscribers.delete(subscriber);
21175
+ if (subscribers.size || !timer) return;
21176
+ clearInterval(timer);
21177
+ timer = void 0;
21178
+ generation++;
21179
+ seen.clear();
21180
+ ready = false;
21181
+ cursor = void 0;
21182
+ pending = /* @__PURE__ */ new Set();
21183
+ };
21184
+ }
21185
+ };
21186
+ }
21187
+
20469
21188
  // src/lib/memory/synthesizeProfile.ts
20470
21189
  init_internalFlowMarker();
20471
21190
  init_logger();
@@ -20838,8 +21557,8 @@ async function synthesizeFacet(facet, ctx, options, prior) {
20838
21557
  memories
20839
21558
  });
20840
21559
  const noEvidence = result.basedOn.memoryIds.length === 0;
20841
- const { text: text12, legitimateEmpty } = extractFacetText(result.structuredOutput);
20842
- if (!text12 && !legitimateEmpty && !noEvidence) {
21560
+ const { text: text13, legitimateEmpty } = extractFacetText(result.structuredOutput);
21561
+ if (!text13 && !legitimateEmpty && !noEvidence) {
20843
21562
  getLogger().warn(
20844
21563
  "[memory/synthesizeProfile] facet synthesis returned degraded-empty; using fallback section",
20845
21564
  { facet: facet.key, recalledCount: result.basedOn.memoryIds.length }
@@ -20849,12 +21568,12 @@ async function synthesizeFacet(facet, ctx, options, prior) {
20849
21568
  const section = {
20850
21569
  key: facet.key,
20851
21570
  label: facet.label,
20852
- text: text12,
21571
+ text: text13,
20853
21572
  sourceMemoryIds: result.basedOn.memoryIds,
20854
21573
  generatedAt: Date.now()
20855
21574
  };
20856
- if (options.redactor && text12) {
20857
- const redacted = await options.redactor.redactTextAsync(text12);
21575
+ if (options.redactor && text13) {
21576
+ const redacted = await options.redactor.redactTextAsync(text13);
20858
21577
  section.text = redacted.text;
20859
21578
  }
20860
21579
  if (!legitimateEmpty && !noEvidence) {
@@ -21367,10 +22086,10 @@ function createDurableAutoExtractor(options) {
21367
22086
  const counted = error instanceof BatchFailureError || error instanceof LockedSourcesError && error.persistentIds.length > 0;
21368
22087
  if (!counted) return false;
21369
22088
  const prior = sessionFailures.get(job.id);
21370
- const count = prior?.head === head ? prior.count + 1 : 1;
21371
- sessionFailures.set(job.id, { head, count });
22089
+ const count2 = prior?.head === head ? prior.count + 1 : 1;
22090
+ sessionFailures.set(job.id, { head, count: count2 });
21372
22091
  const terminal = error instanceof BatchFailureError && error.terminal;
21373
- if (!terminal && count < MAX_ATTEMPTS) return false;
22092
+ if (!terminal && count2 < MAX_ATTEMPTS) return false;
21374
22093
  skippedThisSession.add(job.id);
21375
22094
  const now = clock();
21376
22095
  const lastCounted = failedAtOf(job, head);
@@ -21677,7 +22396,7 @@ async function verifyFactSupport(items, options) {
21677
22396
  }
21678
22397
  const maxEvidenceChars = Math.max(1, options.maxEvidenceChars ?? DEFAULT_MAX_EVIDENCE_CHARS);
21679
22398
  const redactor = resolvePiiRedactor(options.piiRedaction ?? true);
21680
- const safe = async (text12) => redactor ? (await redactor.redactTextAsync(text12)).text : text12;
22399
+ const safe = async (text13) => redactor ? (await redactor.redactTextAsync(text13)).text : text13;
21681
22400
  let truncatedCount = 0;
21682
22401
  const parts = [];
21683
22402
  for (const [i, item] of items.entries()) {
@@ -21734,7 +22453,7 @@ Which item numbers are supported?`,
21734
22453
  }
21735
22454
  return supported;
21736
22455
  }
21737
- function parseSupported(parsed, count) {
22456
+ function parseSupported(parsed, count2) {
21738
22457
  if (typeof parsed !== "object" || parsed === null) return null;
21739
22458
  const list = parsed.supported;
21740
22459
  if (!Array.isArray(list)) return null;
@@ -21742,7 +22461,7 @@ function parseSupported(parsed, count) {
21742
22461
  for (const raw of list) {
21743
22462
  const n = typeof raw === "number" ? raw : typeof raw === "string" ? Number(raw) : NaN;
21744
22463
  if (!Number.isInteger(n)) continue;
21745
- if (n >= 1 && n <= count) out.add(n - 1);
22464
+ if (n >= 1 && n <= count2) out.add(n - 1);
21746
22465
  }
21747
22466
  return out;
21748
22467
  }
@@ -21793,7 +22512,7 @@ async function verifyMemoriesForPublish(memories, sources, options) {
21793
22512
  );
21794
22513
  const pending = [];
21795
22514
  for (const { index, uniqueId, content, ids } of withinBudget) {
21796
- const evidence = ids.map((id) => resolved.get(id) ?? null).filter((text12) => text12 !== null);
22515
+ const evidence = ids.map((id) => resolved.get(id) ?? null).filter((text13) => text13 !== null);
21797
22516
  const dropped = ids.length - evidence.length;
21798
22517
  if (ids.some((id) => unreadable.has(id))) {
21799
22518
  results[index] = {
@@ -22296,22 +23015,22 @@ function normalizeManualFactType(value) {
22296
23015
  function isSharedScope(scope) {
22297
23016
  return scope === "shared";
22298
23017
  }
22299
- async function notifyWritten(options, input, outcome) {
23018
+ async function notifyWritten(options, input, outcome2) {
22300
23019
  try {
22301
- await options?.onWritten?.({ input, outcome });
23020
+ await options?.onWritten?.({ input, outcome: outcome2 });
22302
23021
  } catch {
22303
23022
  }
22304
23023
  }
22305
- function describeWriteOutcome(outcome) {
22306
- switch (outcome.action) {
23024
+ function describeWriteOutcome(outcome2) {
23025
+ switch (outcome2.action) {
22307
23026
  case "create":
22308
- return `Memory saved successfully (ID: ${outcome.memoryId}).`;
23027
+ return `Memory saved successfully (ID: ${outcome2.memoryId}).`;
22309
23028
  case "update":
22310
23029
  case "supersede":
22311
- return `Memory saved successfully (ID: ${outcome.memoryId}); it replaces an earlier version of this fact.`;
23030
+ return `Memory saved successfully (ID: ${outcome2.memoryId}); it replaces an earlier version of this fact.`;
22312
23031
  case "merge":
22313
23032
  case "skip":
22314
- return `The vault already holds this fact (ID: ${outcome.memoryId}); it was noted as re-observed. Nothing new was created \u2014 do not save it again.`;
23033
+ return `The vault already holds this fact (ID: ${outcome2.memoryId}); it was noted as re-observed. Nothing new was created \u2014 do not save it again.`;
22315
23034
  case "suppressed":
22316
23035
  return "Not saved: this matches a memory the user previously deleted. Do not re-save it.";
22317
23036
  }
@@ -22417,9 +23136,9 @@ function createMemoryVaultTool(vaultCtx, options, embeddingOptions, cache) {
22417
23136
  ...folderId !== void 0 && { folderId },
22418
23137
  ...factType !== void 0 && { factType }
22419
23138
  };
22420
- const outcome = await options.write(input);
22421
- await notifyWritten(options, input, outcome);
22422
- return describeWriteOutcome(outcome);
23139
+ const outcome2 = await options.write(input);
23140
+ await notifyWritten(options, input, outcome2);
23141
+ return describeWriteOutcome(outcome2);
22423
23142
  }
22424
23143
  const created = await createVaultMemoryOp(vaultCtx, {
22425
23144
  content,
@@ -22903,8 +23622,8 @@ var sessionCache = /* @__PURE__ */ new Map();
22903
23622
  function generateRequestId() {
22904
23623
  return ++requestIdCounter;
22905
23624
  }
22906
- function parseSSEResponse(text12) {
22907
- const events = text12.split(/\n\n+/);
23625
+ function parseSSEResponse(text13) {
23626
+ const events = text13.split(/\n\n+/);
22908
23627
  let lastEventData = "";
22909
23628
  for (const event of events) {
22910
23629
  const dataLines = [];
@@ -22926,11 +23645,11 @@ function parseSSEResponse(text12) {
22926
23645
  }
22927
23646
  async function parseResponseBody(response) {
22928
23647
  const contentType = response.headers.get("Content-Type") || "";
22929
- const text12 = await response.text();
22930
- if (contentType.includes("text/event-stream") || text12.startsWith("event:") || text12.startsWith("data:")) {
22931
- return parseSSEResponse(text12);
23648
+ const text13 = await response.text();
23649
+ if (contentType.includes("text/event-stream") || text13.startsWith("event:") || text13.startsWith("data:")) {
23650
+ return parseSSEResponse(text13);
22932
23651
  }
22933
- return JSON.parse(text12);
23652
+ return JSON.parse(text13);
22934
23653
  }
22935
23654
  async function initializeMCPSession(accessToken) {
22936
23655
  const requestId = generateRequestId();
@@ -23891,7 +24610,7 @@ function useChat(options) {
23891
24610
 
23892
24611
  // src/expo/useChatStorage.ts
23893
24612
  var import_react5 = require("react");
23894
- var import_uuid6 = require("uuid");
24613
+ var import_uuid7 = require("uuid");
23895
24614
  init_clientConfig();
23896
24615
 
23897
24616
  // src/lib/chat/assembleMessages.ts
@@ -24067,9 +24786,9 @@ New lines of conversation:
24067
24786
  {new_lines}
24068
24787
 
24069
24788
  New summary:`;
24070
- function estimateTokens(text12) {
24071
- if (!text12) return 0;
24072
- return Math.ceil(text12.length / 4);
24789
+ function estimateTokens(text13) {
24790
+ if (!text13) return 0;
24791
+ return Math.ceil(text13.length / 4);
24073
24792
  }
24074
24793
  var PER_MESSAGE_OVERHEAD_TOKENS = 4;
24075
24794
  var MAX_MESSAGES_PER_SUMMARIZATION = 20;
@@ -24129,14 +24848,14 @@ function splitMessagesAtThreshold(messages, tokenThreshold, minWindowMessages) {
24129
24848
  }
24130
24849
  async function redactSummaryPrompt(prompt, redactor, onPiiRedacted) {
24131
24850
  if (!redactor) return prompt;
24132
- const { text: text12, matches } = await redactor.redactTextAsync(prompt);
24851
+ const { text: text13, matches } = await redactor.redactTextAsync(prompt);
24133
24852
  if (matches.length > 0 && onPiiRedacted) {
24134
24853
  try {
24135
24854
  onPiiRedacted(matches);
24136
24855
  } catch {
24137
24856
  }
24138
24857
  }
24139
- return text12;
24858
+ return text13;
24140
24859
  }
24141
24860
  async function progressiveSummarize(options) {
24142
24861
  const {
@@ -24554,9 +25273,9 @@ async function decryptMediaFields(media, address, signMessage, embeddedWalletSig
24554
25273
  }
24555
25274
 
24556
25275
  // src/lib/db/media/types.ts
24557
- var import_uuid5 = require("uuid");
25276
+ var import_uuid6 = require("uuid");
24558
25277
  function generateMediaId() {
24559
- return `media_${(0, import_uuid5.v7)()}`;
25278
+ return `media_${(0, import_uuid6.v7)()}`;
24560
25279
  }
24561
25280
 
24562
25281
  // src/lib/db/media/operations.ts
@@ -24868,7 +25587,7 @@ function useChatStorage(options) {
24868
25587
  [piiRedaction, currentConversationId]
24869
25588
  );
24870
25589
  const maskForEmbedding = (0, import_react5.useCallback)(
24871
- (text12) => isPiiRedactor(resolvedPiiRedaction) ? resolvedPiiRedaction.maskText(text12) : text12,
25590
+ (text13) => isPiiRedactor(resolvedPiiRedaction) ? resolvedPiiRedaction.maskText(text13) : text13,
24872
25591
  [resolvedPiiRedaction]
24873
25592
  );
24874
25593
  const maskEmbeddingInput = isPiiRedactor(resolvedPiiRedaction) ? maskForEmbedding : void 0;
@@ -25512,12 +26231,12 @@ function useChatStorage(options) {
25512
26231
  return {
25513
26232
  callRedactor: redactor,
25514
26233
  callPiiRedaction: forInnerSend,
25515
- maskForCall: (text12) => redactor ? redactor.maskText(text12) : text12
26234
+ maskForCall: (text13) => redactor ? redactor.maskText(text13) : text13
25516
26235
  };
25517
26236
  };
25518
26237
  pendingResumeRef.current = null;
25519
- const effectiveAssistantUniqueId = assistantUniqueId ?? (resumable ? `msg_${(0, import_uuid6.v7)()}` : void 0);
25520
- const embedToolText = (text12, mask, masked, token) => {
26238
+ const effectiveAssistantUniqueId = assistantUniqueId ?? (resumable ? `msg_${(0, import_uuid7.v7)()}` : void 0);
26239
+ const embedToolText = (text13, mask, masked, token) => {
25521
26240
  const opts = {
25522
26241
  getToken: token,
25523
26242
  baseUrl,
@@ -25525,10 +26244,10 @@ function useChatStorage(options) {
25525
26244
  maskInput: mask,
25526
26245
  cache: embeddingCache ? maskScopedEmbeddingCache(embeddingCache, masked) : void 0
25527
26246
  };
25528
- return shouldChunkMessage(text12, DEFAULT_CHUNK_SIZE) ? generateEmbeddings(
25529
- chunkText(text12).map((c) => c.text),
26247
+ return shouldChunkMessage(text13, DEFAULT_CHUNK_SIZE) ? generateEmbeddings(
26248
+ chunkText(text13).map((c) => c.text),
25530
26249
  opts
25531
- ) : generateEmbedding(text12, opts);
26250
+ ) : generateEmbedding(text13, opts);
25532
26251
  };
25533
26252
  if (walletAddress && signMessage && !hasEncryptionKey(walletAddress)) {
25534
26253
  try {
@@ -26034,7 +26753,7 @@ function useChatStorage(options) {
26034
26753
  const detachedResult = result;
26035
26754
  if (detachedResult.detached) {
26036
26755
  recordToolSetTurn(database, convId, matchedToolSets);
26037
- const rowId = effectiveAssistantUniqueId ?? `msg_${(0, import_uuid6.v7)()}`;
26756
+ const rowId = effectiveAssistantUniqueId ?? `msg_${(0, import_uuid7.v7)()}`;
26038
26757
  pendingResumeRef.current = {
26039
26758
  handle: detachedResult.resume ?? null,
26040
26759
  convId,
@@ -26546,6 +27265,7 @@ function useChatStorage(options) {
26546
27265
  MEDIUM_TTL_MS,
26547
27266
  MEMORY_KINDS,
26548
27267
  MEMORY_LEVELS,
27268
+ MemoryKeyError,
26549
27269
  MemoryLevelError,
26550
27270
  NEVER_TTL_MS,
26551
27271
  NODE_BUDGET,
@@ -26558,6 +27278,7 @@ function useChatStorage(options) {
26558
27278
  RECALL_MAX_LIMIT,
26559
27279
  RECALL_TOOL_NAME,
26560
27280
  RemoteMemoryError,
27281
+ RemoteMemoryPartialCreateError,
26561
27282
  RerankerUnavailableError,
26562
27283
  SDK_SCHEMA_VERSION,
26563
27284
  SHORT_TTL_MS,
@@ -26623,6 +27344,7 @@ function useChatStorage(options) {
26623
27344
  createRecallTool,
26624
27345
  createRemoteMemoryPersistence,
26625
27346
  createRemoteMemoryPipeline,
27347
+ createRemoteMemoryStore,
26626
27348
  createStockPricePreProcessor,
26627
27349
  createStreamingDeAnonymizer,
26628
27350
  createVaultEmbeddingCache,
@@ -26639,6 +27361,7 @@ function useChatStorage(options) {
26639
27361
  deleteVaultMemoryOp,
26640
27362
  dequantizeEmbedding,
26641
27363
  deriveKeyFromSignatureBytes,
27364
+ deriveMemoryKeyRing,
26642
27365
  discoverNotionOAuthEndpoints,
26643
27366
  eagerEmbedContent,
26644
27367
  embedAllMessages,
@@ -26650,6 +27373,7 @@ function useChatStorage(options) {
26650
27373
  extractAndRetain,
26651
27374
  extractEntitiesForMemories,
26652
27375
  extractFacts,
27376
+ extractReservationReceipts,
26653
27377
  formatFileProcessingNotes,
26654
27378
  generateConversationId,
26655
27379
  generateEmbedding,
@@ -26682,6 +27406,7 @@ function useChatStorage(options) {
26682
27406
  isPiiRedactor,
26683
27407
  isRerankerAvailable,
26684
27408
  maskScopedEmbeddingCache,
27409
+ memoryCipher,
26685
27410
  moveMemoriesToFolderOp,
26686
27411
  noopLogger,
26687
27412
  onKeyAvailable,
@@ -26691,6 +27416,7 @@ function useChatStorage(options) {
26691
27416
  queueManager,
26692
27417
  rankProfileCandidates,
26693
27418
  recall,
27419
+ reencryptMemoryField,
26694
27420
  reflect,
26695
27421
  refreshEncryptionKeyIfMatches,
26696
27422
  refreshNotionAccessToken,