@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.
@@ -89,9 +89,9 @@ function createSseClient({
89
89
  if (done) break;
90
90
  buffer += value;
91
91
  buffer = buffer.replace(/\r\n?/g, "\n");
92
- const chunks = buffer.split("\n\n");
93
- buffer = chunks.pop() ?? "";
94
- for (const chunk of chunks) {
92
+ const chunks2 = buffer.split("\n\n");
93
+ buffer = chunks2.pop() ?? "";
94
+ for (const chunk of chunks2) {
95
95
  const lines = chunk.split("\n");
96
96
  const dataLines = [];
97
97
  let eventName;
@@ -704,8 +704,8 @@ var createClient = (config = {}) => {
704
704
  data = await response[parseAs]();
705
705
  break;
706
706
  case "json": {
707
- const text12 = await response.text();
708
- data = text12 ? JSON.parse(text12) : {};
707
+ const text13 = await response.text();
708
+ data = text13 ? JSON.parse(text13) : {};
709
709
  break;
710
710
  }
711
711
  case "stream":
@@ -3977,8 +3977,8 @@ var ATTACHED_FILES_OPEN_TAG = "<attached_files>";
3977
3977
  var ATTACHED_FILES_CLOSE_TAG = "</attached_files>";
3978
3978
  var ATTACHED_FILES_PREFIX = `${ATTACHED_FILES_OPEN_TAG}
3979
3979
  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.`;
3980
- function isAttachedFilesText(text12) {
3981
- return typeof text12 === "string" && text12.startsWith(ATTACHED_FILES_PREFIX) && text12.endsWith(ATTACHED_FILES_CLOSE_TAG);
3980
+ function isAttachedFilesText(text13) {
3981
+ return typeof text13 === "string" && text13.startsWith(ATTACHED_FILES_PREFIX) && text13.endsWith(ATTACHED_FILES_CLOSE_TAG);
3982
3982
  }
3983
3983
  function buildAttachedFilesText(fileContext) {
3984
3984
  return `${ATTACHED_FILES_PREFIX}
@@ -4731,14 +4731,14 @@ async function updateMessageEmbeddingOp(ctx, uniqueId, vector, embeddingModel) {
4731
4731
  });
4732
4732
  return messageToStored(message, ctx.walletAddress, ctx.signMessage, ctx.embeddedWalletSigner);
4733
4733
  }
4734
- async function updateMessageChunksOp(ctx, uniqueId, chunks, embeddingModel) {
4734
+ async function updateMessageChunksOp(ctx, uniqueId, chunks2, embeddingModel) {
4735
4735
  let message;
4736
4736
  try {
4737
4737
  message = await ctx.messagesCollection.find(uniqueId);
4738
4738
  } catch {
4739
4739
  return null;
4740
4740
  }
4741
- const storedChunks = chunks.map(({ text: _text, ...rest }) => rest);
4741
+ const storedChunks = chunks2.map(({ text: _text, ...rest }) => rest);
4742
4742
  await ctx.database.write(async () => {
4743
4743
  await message.update((msg) => {
4744
4744
  msg._setRaw("chunks", JSON.stringify(storedChunks));
@@ -4782,12 +4782,12 @@ async function stripLegacyChunkTextOp(ctx) {
4782
4782
  const messages = await ctx.messagesCollection.query(Q.where("id", Q.oneOf(changedIds))).fetch();
4783
4783
  const updates = messages.flatMap((message) => {
4784
4784
  const raw = message._raw;
4785
- const chunks = chunksWithoutText(raw.chunks);
4786
- if (!chunks) return [];
4785
+ const chunks2 = chunksWithoutText(raw.chunks);
4786
+ if (!chunks2) return [];
4787
4787
  const updatedAt = raw.updated_at;
4788
4788
  return [
4789
4789
  message.prepareUpdate((msg) => {
4790
- msg._setRaw("chunks", JSON.stringify(chunks));
4790
+ msg._setRaw("chunks", JSON.stringify(chunks2));
4791
4791
  msg._setRaw("updated_at", updatedAt);
4792
4792
  })
4793
4793
  ];
@@ -4997,15 +4997,15 @@ async function searchChunksOp(ctx, queryVector, options) {
4997
4997
  }
4998
4998
  continue;
4999
4999
  }
5000
- const chunks = await readRawJsonField(message, "chunks", ctx.walletAddress);
5001
- if (chunks && chunks.length > 0) {
5002
- const vectors = chunks.map(
5000
+ const chunks2 = await readRawJsonField(message, "chunks", ctx.walletAddress);
5001
+ if (chunks2 && chunks2.length > 0) {
5002
+ const vectors = chunks2.map(
5003
5003
  (chunk) => decodeChunkVector(chunk.vector, () => {
5004
5004
  unreadableVectors++;
5005
5005
  })
5006
5006
  );
5007
5007
  chunkCache?.set(message.id, { version, chunks: vectors });
5008
- for (let ci = 0; ci < chunks.length; ci++) {
5008
+ for (let ci = 0; ci < chunks2.length; ci++) {
5009
5009
  const vec = vectors[ci];
5010
5010
  if (vec.length === 0) continue;
5011
5011
  const similarity = cosineSimilarity(queryVector, vec);
@@ -5013,7 +5013,7 @@ async function searchChunksOp(ctx, queryVector, options) {
5013
5013
  candidates.push({
5014
5014
  message,
5015
5015
  similarity,
5016
- chunkTextSource: { kind: "chunk", chunk: chunks[ci], siblings: chunks }
5016
+ chunkTextSource: { kind: "chunk", chunk: chunks2[ci], siblings: chunks2 }
5017
5017
  });
5018
5018
  }
5019
5019
  }
@@ -5154,49 +5154,49 @@ function makeSyntheticStoredConversation(opts, defaultTitle) {
5154
5154
  var DEFAULT_CHUNK_SIZE = 400;
5155
5155
  var DEFAULT_CHUNK_OVERLAP = 50;
5156
5156
  var DEFAULT_MIN_CHUNK_SIZE = 50;
5157
- function splitIntoSentences(text12) {
5157
+ function splitIntoSentences(text13) {
5158
5158
  const sentenceRegex = /[.!?]+[\s"')}\]]*(?=\s|$)/g;
5159
5159
  const sentences = [];
5160
5160
  let lastIndex = 0;
5161
5161
  let match;
5162
- while ((match = sentenceRegex.exec(text12)) !== null) {
5162
+ while ((match = sentenceRegex.exec(text13)) !== null) {
5163
5163
  const endIndex = match.index + match[0].length;
5164
- const sentence = text12.slice(lastIndex, endIndex).trim();
5164
+ const sentence = text13.slice(lastIndex, endIndex).trim();
5165
5165
  if (sentence) {
5166
5166
  sentences.push(sentence);
5167
5167
  }
5168
5168
  lastIndex = endIndex;
5169
5169
  }
5170
- const remaining = text12.slice(lastIndex).trim();
5170
+ const remaining = text13.slice(lastIndex).trim();
5171
5171
  if (remaining) {
5172
5172
  sentences.push(remaining);
5173
5173
  }
5174
5174
  return sentences;
5175
5175
  }
5176
- function chunkText(text12, options) {
5176
+ function chunkText(text13, options) {
5177
5177
  const {
5178
5178
  chunkSize = DEFAULT_CHUNK_SIZE,
5179
5179
  chunkOverlap: requestedOverlap = DEFAULT_CHUNK_OVERLAP,
5180
5180
  minChunkSize = DEFAULT_MIN_CHUNK_SIZE
5181
5181
  } = options ?? {};
5182
5182
  const chunkOverlap = Math.min(requestedOverlap, chunkSize - 1);
5183
- if (text12.length <= chunkSize) {
5183
+ if (text13.length <= chunkSize) {
5184
5184
  return [
5185
5185
  {
5186
- text: text12.trim(),
5186
+ text: text13.trim(),
5187
5187
  startOffset: 0,
5188
- endOffset: text12.length
5188
+ endOffset: text13.length
5189
5189
  }
5190
5190
  ];
5191
5191
  }
5192
- const sentences = splitIntoSentences(text12);
5193
- const chunks = [];
5192
+ const sentences = splitIntoSentences(text13);
5193
+ const chunks2 = [];
5194
5194
  let currentChunkSentences = [];
5195
5195
  let currentChunkStart = 0;
5196
5196
  let currentOffset = 0;
5197
5197
  for (let i = 0; i < sentences.length; i++) {
5198
5198
  const sentence = sentences[i];
5199
- let sentenceStart = text12.indexOf(sentence, currentOffset);
5199
+ let sentenceStart = text13.indexOf(sentence, currentOffset);
5200
5200
  if (sentenceStart === -1) {
5201
5201
  sentenceStart = currentOffset;
5202
5202
  }
@@ -5204,7 +5204,7 @@ function chunkText(text12, options) {
5204
5204
  if (sentence.length > chunkSize) {
5205
5205
  if (currentChunkSentences.length > 0) {
5206
5206
  const chunkText2 = currentChunkSentences.join(" ");
5207
- chunks.push({
5207
+ chunks2.push({
5208
5208
  text: chunkText2,
5209
5209
  startOffset: currentChunkStart,
5210
5210
  endOffset: currentOffset
@@ -5215,7 +5215,7 @@ function chunkText(text12, options) {
5215
5215
  const chunkEnd = Math.min(j + chunkSize, sentence.length);
5216
5216
  const chunk = sentence.slice(j, chunkEnd);
5217
5217
  if (chunk.length >= minChunkSize) {
5218
- chunks.push({
5218
+ chunks2.push({
5219
5219
  text: chunk,
5220
5220
  startOffset: sentenceStart + j,
5221
5221
  endOffset: sentenceStart + chunkEnd
@@ -5229,7 +5229,7 @@ function chunkText(text12, options) {
5229
5229
  const currentText = currentChunkSentences.join(" ");
5230
5230
  const potentialLength = currentText.length + (currentText ? 1 : 0) + sentence.length;
5231
5231
  if (potentialLength > chunkSize && currentChunkSentences.length > 0) {
5232
- chunks.push({
5232
+ chunks2.push({
5233
5233
  text: currentText,
5234
5234
  startOffset: currentChunkStart,
5235
5235
  endOffset: currentOffset
@@ -5243,7 +5243,7 @@ function chunkText(text12, options) {
5243
5243
  if (overlapSentences.length > 0) {
5244
5244
  currentChunkSentences = [...overlapSentences, sentence];
5245
5245
  const overlapText = overlapSentences[0];
5246
- const overlapStart = text12.lastIndexOf(overlapText, currentOffset);
5246
+ const overlapStart = text13.lastIndexOf(overlapText, currentOffset);
5247
5247
  currentChunkStart = overlapStart === -1 ? sentenceStart : overlapStart;
5248
5248
  } else {
5249
5249
  currentChunkSentences = [sentence];
@@ -5260,26 +5260,26 @@ function chunkText(text12, options) {
5260
5260
  if (currentChunkSentences.length > 0) {
5261
5261
  const chunkText2 = currentChunkSentences.join(" ");
5262
5262
  if (chunkText2.length >= minChunkSize) {
5263
- chunks.push({
5263
+ chunks2.push({
5264
5264
  text: chunkText2,
5265
5265
  startOffset: currentChunkStart,
5266
- endOffset: text12.length
5266
+ endOffset: text13.length
5267
5267
  });
5268
5268
  }
5269
5269
  }
5270
- if (chunks.length === 0) {
5271
- const trimmedText = text12.trim();
5270
+ if (chunks2.length === 0) {
5271
+ const trimmedText = text13.trim();
5272
5272
  if (trimmedText.length > 0) {
5273
5273
  return [
5274
5274
  {
5275
5275
  text: trimmedText,
5276
5276
  startOffset: 0,
5277
- endOffset: text12.length
5277
+ endOffset: text13.length
5278
5278
  }
5279
5279
  ];
5280
5280
  }
5281
5281
  }
5282
- return chunks;
5282
+ return chunks2;
5283
5283
  }
5284
5284
  function shouldChunkMessage(content, chunkSize = DEFAULT_CHUNK_SIZE) {
5285
5285
  return content.length > chunkSize;
@@ -5374,16 +5374,16 @@ function embeddingErrorFrom(response) {
5374
5374
  const message = typeof response.error === "object" && response.error && "error" in response.error ? response.error.error : "API embedding failed";
5375
5375
  return new EmbeddingHttpError(message, response.response?.status);
5376
5376
  }
5377
- async function generateEmbedding(text12, options) {
5377
+ async function generateEmbedding(text13, options) {
5378
5378
  const total = options.totalTimeoutMs;
5379
- if (total === void 0) return embedOne(text12, options, void 0);
5380
- return withDeadline((signal) => embedOne(text12, options, signal), total, "embedding");
5379
+ if (total === void 0) return embedOne(text13, options, void 0);
5380
+ return withDeadline((signal) => embedOne(text13, options, signal), total, "embedding");
5381
5381
  }
5382
- async function embedOne(text12, options, outer) {
5382
+ async function embedOne(text13, options, outer) {
5383
5383
  const { baseUrl = BASE_URL, model, cache } = options;
5384
5384
  const timeoutMs = options.timeoutMs ?? DEFAULT_EMBEDDING_REQUEST_TIMEOUT_MS;
5385
5385
  if (cache) {
5386
- const cached = cache.get(text12);
5386
+ const cached = cache.get(text13);
5387
5387
  if (cached) return Array.from(cached);
5388
5388
  }
5389
5389
  const headers = await resolveAuthHeaders(options, outer);
@@ -5392,7 +5392,7 @@ async function embedOne(text12, options, outer) {
5392
5392
  (signal) => postApiV1Embeddings({
5393
5393
  baseUrl,
5394
5394
  body: {
5395
- input: options.maskInput ? options.maskInput(text12) : text12,
5395
+ input: options.maskInput ? options.maskInput(text13) : text13,
5396
5396
  model: model ?? DEFAULT_API_EMBEDDING_MODEL
5397
5397
  },
5398
5398
  headers,
@@ -5419,7 +5419,7 @@ async function embedOne(text12, options, outer) {
5419
5419
  }
5420
5420
  const f32Embedding = Float32Array.from(embedding);
5421
5421
  if (cache) {
5422
- cache.set(text12, f32Embedding);
5422
+ cache.set(text13, f32Embedding);
5423
5423
  }
5424
5424
  return Array.from(f32Embedding);
5425
5425
  }
@@ -5497,18 +5497,18 @@ async function embedMany(texts, options, outer) {
5497
5497
  outer
5498
5498
  );
5499
5499
  } else {
5500
- const chunks = [];
5500
+ const chunks2 = [];
5501
5501
  for (let i = 0; i < uncachedTexts.length; i += chunkSize) {
5502
- chunks.push(uncachedTexts.slice(i, i + chunkSize));
5502
+ chunks2.push(uncachedTexts.slice(i, i + chunkSize));
5503
5503
  }
5504
- const allEmbeddings = new Array(chunks.length);
5504
+ const allEmbeddings = new Array(chunks2.length);
5505
5505
  let nextIndex = 0;
5506
5506
  const worker = async () => {
5507
- while (nextIndex < chunks.length) {
5507
+ while (nextIndex < chunks2.length) {
5508
5508
  if (outer?.aborted) throw outer.reason;
5509
5509
  const idx = nextIndex++;
5510
5510
  allEmbeddings[idx] = await generateEmbeddingsBatch(
5511
- chunks[idx],
5511
+ chunks2[idx],
5512
5512
  headers,
5513
5513
  baseUrl,
5514
5514
  embeddingModel,
@@ -5520,7 +5520,7 @@ async function embedMany(texts, options, outer) {
5520
5520
  }
5521
5521
  };
5522
5522
  const workers = Array.from(
5523
- { length: Math.min(DEFAULT_EMBEDDING_BATCH_CONCURRENCY, chunks.length) },
5523
+ { length: Math.min(DEFAULT_EMBEDDING_BATCH_CONCURRENCY, chunks2.length) },
5524
5524
  () => worker()
5525
5525
  );
5526
5526
  await Promise.all(workers);
@@ -5753,10 +5753,10 @@ var cryptoPriceCentroid = [0.025576787463333337, 0.0017598020599999997, -0.01339
5753
5753
  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];
5754
5754
 
5755
5755
  // src/lib/chat/preProcessor.ts
5756
- function wrapAsUserText(prefix, text12) {
5757
- if (!text12 || !text12.trim()) return [];
5756
+ function wrapAsUserText(prefix, text13) {
5757
+ if (!text13 || !text13.trim()) return [];
5758
5758
  return [{ role: "user", content: [{ type: "text", text: `${prefix}
5759
- ${text12}` }] }];
5759
+ ${text13}` }] }];
5760
5760
  }
5761
5761
 
5762
5762
  // src/lib/chat/cryptoPriceClassifier.ts
@@ -5795,8 +5795,122 @@ function createCryptoPricePreProcessor(options = {}) {
5795
5795
  };
5796
5796
  }
5797
5797
 
5798
+ // src/lib/chat/reservationReceipts.ts
5799
+ var ACTIONS = [
5800
+ {
5801
+ kind: "booking",
5802
+ tool: "anuma_book_restaurant",
5803
+ alreadyDone: /^Tool "[^"]*" failed: ALREADY_BOOKED:/
5804
+ },
5805
+ {
5806
+ kind: "cancel",
5807
+ tool: "anuma_cancel_reservation",
5808
+ alreadyDone: /^Tool "[^"]*" failed: ALREADY_CANCELLED:/
5809
+ }
5810
+ ];
5811
+ var NOT_AN_ATTEMPT = /^Tool "[^"]*" (has already been called|was already called)/;
5812
+ var BOOKING_OUTCOME_UNKNOWN = /^Tool "[^"]*" failed: BOOKING_OUTCOME_UNKNOWN:/;
5813
+ var CANCEL_OUTCOME_UNKNOWN = "CANCEL_OUTCOME_UNKNOWN";
5814
+ function extractReservationReceipts(toolCallEvents) {
5815
+ const latest = /* @__PURE__ */ new Map();
5816
+ for (const event of toolCallEvents ?? []) {
5817
+ const action = ACTIONS.find((a) => event.name?.endsWith(a.tool));
5818
+ const output = event.output ?? "";
5819
+ if (!action || !output || NOT_AN_ATTEMPT.test(output)) continue;
5820
+ const kept = latest.get(action.kind)?.status;
5821
+ if (kept === "made") continue;
5822
+ const receipt = toReceipt(action, event.arguments ?? "", output);
5823
+ if (kept === "unknown" && receipt.status !== "made") continue;
5824
+ latest.set(action.kind, receipt);
5825
+ }
5826
+ return [...latest.values()];
5827
+ }
5828
+ function toReceipt(action, argumentsJson, output) {
5829
+ const args = parseObject(argumentsJson);
5830
+ const result = parseObject(output);
5831
+ return {
5832
+ kind: action.kind,
5833
+ venueName: text(args.venue_name) ?? "",
5834
+ day: text(args.day) ?? "",
5835
+ time: text(args.time) ?? "",
5836
+ partySize: count(args.party_size),
5837
+ reservationId: text(result.reservation_id) ?? text(args.reservation_id),
5838
+ resyUrl: text(result.reservations_url),
5839
+ feeSummary: text(result.fee_summary),
5840
+ ...outcome(action, output, result)
5841
+ };
5842
+ }
5843
+ function outcome(action, output, result) {
5844
+ if (action.alreadyDone.test(output)) return { status: "already_done" };
5845
+ const reason = text(result.error);
5846
+ if (action.kind === "booking") {
5847
+ if (BOOKING_OUTCOME_UNKNOWN.test(output)) return { status: "unknown" };
5848
+ const held = result.success === true || text(result.reservation_id) !== void 0;
5849
+ return held ? { status: "made" } : { status: "not_made", reason };
5850
+ }
5851
+ if (result.error_code === CANCEL_OUTCOME_UNKNOWN) return { status: "unknown", reason };
5852
+ const cancelled = result.success === true && !result.error && !result.error_code;
5853
+ return cancelled ? { status: "made" } : { status: "not_made", reason };
5854
+ }
5855
+ function parseObject(json4) {
5856
+ try {
5857
+ const parsed = JSON.parse(json4);
5858
+ return parsed && typeof parsed === "object" ? parsed : {};
5859
+ } catch {
5860
+ return {};
5861
+ }
5862
+ }
5863
+ function text(value) {
5864
+ if (typeof value === "number") return String(value);
5865
+ return typeof value === "string" && value ? value : void 0;
5866
+ }
5867
+ function count(value) {
5868
+ const n = typeof value === "string" && value.trim() ? Number(value) : value;
5869
+ return typeof n === "number" && Number.isFinite(n) ? n : void 0;
5870
+ }
5871
+
5798
5872
  // src/tools/confirmConstants.ts
5799
5873
  var CONFIRM_TOOL_NAME = "prompt_user_confirm";
5874
+ var BOOK_RESTAURANT = {
5875
+ tool: "AnumaPaymentsMCP-anuma_book_restaurant",
5876
+ status: "confirmed_not_booked",
5877
+ fields: ["venue_id", "config_id", "party_size", "day", "venue_name", "time"]
5878
+ };
5879
+ var CANCEL_RESERVATION = {
5880
+ tool: "AnumaPaymentsMCP-anuma_cancel_reservation",
5881
+ status: "confirmed_not_cancelled",
5882
+ fields: [
5883
+ "reservation_id",
5884
+ "venue_name",
5885
+ "day",
5886
+ "time",
5887
+ "party_size",
5888
+ "fee_applies",
5889
+ "fee_amount"
5890
+ ]
5891
+ };
5892
+ var CONFIRM_REQUIRED_FIELDS = /* @__PURE__ */ new Map([
5893
+ ["book_restaurant", BOOK_RESTAURANT],
5894
+ ["anuma_book_restaurant", BOOK_RESTAURANT],
5895
+ ["anumapaymentsmcp-anuma_book_restaurant", BOOK_RESTAURANT],
5896
+ ["cancel_reservation", CANCEL_RESERVATION],
5897
+ ["anuma_cancel_reservation", CANCEL_RESERVATION],
5898
+ ["anumapaymentsmcp-anuma_cancel_reservation", CANCEL_RESERVATION]
5899
+ ]);
5900
+ function confirmRequirement(action) {
5901
+ if (typeof action !== "string") return void 0;
5902
+ return CONFIRM_REQUIRED_FIELDS.get(action.trim().toLowerCase());
5903
+ }
5904
+ function missingConfirmFields(action, parameters) {
5905
+ const requirement = confirmRequirement(action);
5906
+ if (!requirement) return [];
5907
+ const shown = /* @__PURE__ */ new Set();
5908
+ for (const parameter of Array.isArray(parameters) ? parameters : []) {
5909
+ const { name, value } = parameter ?? {};
5910
+ if (typeof name === "string" && typeof value === "string" && value.trim()) shown.add(name);
5911
+ }
5912
+ return requirement.fields.filter((field10) => !shown.has(field10));
5913
+ }
5800
5914
 
5801
5915
  // src/lib/storage/mcpImages.ts
5802
5916
  var IMAGE_TOOL_NAMES = /* @__PURE__ */ new Set([
@@ -8615,13 +8729,13 @@ var StreamSmoother = class {
8615
8729
  /**
8616
8730
  * Add text to the buffer. If smoothing is disabled, passes through immediately.
8617
8731
  */
8618
- push(text12) {
8619
- if (this.destroyed || !text12) return;
8732
+ push(text13) {
8733
+ if (this.destroyed || !text13) return;
8620
8734
  if (!this.enabled) {
8621
- this.callback(text12);
8735
+ this.callback(text13);
8622
8736
  return;
8623
8737
  }
8624
- this.buffer += text12;
8738
+ this.buffer += text13;
8625
8739
  this.ensureTimer();
8626
8740
  }
8627
8741
  /**
@@ -8632,9 +8746,9 @@ var StreamSmoother = class {
8632
8746
  if (this.destroyed) return;
8633
8747
  this.stopTimer();
8634
8748
  if (this.buffer.length > 0) {
8635
- const text12 = this.buffer;
8749
+ const text13 = this.buffer;
8636
8750
  this.buffer = "";
8637
- this.callback(text12);
8751
+ this.callback(text13);
8638
8752
  }
8639
8753
  this.resolveDrain();
8640
8754
  }
@@ -8701,9 +8815,9 @@ var StreamSmoother = class {
8701
8815
  const currentSpeed = this.getCurrentSpeed(elapsed);
8702
8816
  const charsThisTick = Math.max(1, Math.round(currentSpeed * (TICK_INTERVAL / 1e3)));
8703
8817
  const toRelease = Math.min(charsThisTick, this.buffer.length);
8704
- const text12 = this.buffer.slice(0, toRelease);
8818
+ const text13 = this.buffer.slice(0, toRelease);
8705
8819
  this.buffer = this.buffer.slice(toRelease);
8706
- this.callback(text12);
8820
+ this.callback(text13);
8707
8821
  if (this.buffer.length === 0) {
8708
8822
  this.stopTimer();
8709
8823
  this.resolveDrain();
@@ -8907,6 +9021,7 @@ function getToolName(tool) {
8907
9021
  }
8908
9022
  function toolsAfterConfirmation(apiTools, executionResults) {
8909
9023
  const members = /* @__PURE__ */ new Set();
9024
+ let keepConfirm = false;
8910
9025
  for (const r of executionResults) {
8911
9026
  if (r.name !== CONFIRM_TOOL_NAME) continue;
8912
9027
  const answer = r.result;
@@ -8914,11 +9029,12 @@ function toolsAfterConfirmation(apiTools, executionResults) {
8914
9029
  const setName = CONFIRMED_ACTION_TOOL_SETS.get(answer.action.trim().toLowerCase());
8915
9030
  const set = BUILT_IN_TOOL_SETS.find((s) => s.name === setName);
8916
9031
  for (const member of set?.members ?? []) members.add(member);
9032
+ if (missingConfirmFields(answer.action, answer.parameters).length > 0) keepConfirm = true;
8917
9033
  }
8918
9034
  if (!apiTools.some((t) => members.has(getToolName(t) ?? ""))) return void 0;
8919
9035
  return apiTools.filter((t) => {
8920
9036
  const name = getToolName(t) ?? "";
8921
- return members.has(name) || name === CONFIRM_TOOL_NAME || name === TOOL_SEARCH_TOOL_NAME;
9037
+ return members.has(name) || name === TOOL_SEARCH_TOOL_NAME || keepConfirm && name === CONFIRM_TOOL_NAME;
8922
9038
  });
8923
9039
  }
8924
9040
  var STREAM_RESUMABLE_HEADER = "X-Stream-Resumable";
@@ -9124,9 +9240,9 @@ async function runToolLoop(options) {
9124
9240
  messages = await redactBatch(messages);
9125
9241
  if (preProcessors?.length) {
9126
9242
  try {
9127
- const text12 = extractLastUserText(messages);
9128
- if (text12.length > 0) {
9129
- const embedding = await generateEmbedding(text12, {
9243
+ const text13 = extractLastUserText(messages);
9244
+ if (text13.length > 0) {
9245
+ const embedding = await generateEmbedding(text13, {
9130
9246
  apiKey: headers?.["X-API-Key"],
9131
9247
  getToken: token ? () => Promise.resolve(token) : void 0,
9132
9248
  baseUrl
@@ -9134,7 +9250,7 @@ async function runToolLoop(options) {
9134
9250
  const results = await Promise.all(
9135
9251
  preProcessors.map(async (p) => {
9136
9252
  try {
9137
- return await p({ prompt: text12, embedding, signal: combinedSignal });
9253
+ return await p({ prompt: text13, embedding, signal: combinedSignal });
9138
9254
  } catch (err) {
9139
9255
  console.warn("[runToolLoop] pre-processor failed:", err);
9140
9256
  return void 0;
@@ -9293,11 +9409,11 @@ async function runToolLoop(options) {
9293
9409
  }
9294
9410
  });
9295
9411
  accumulator = createStreamAccumulator(model || void 0);
9296
- contentSmoother = new StreamSmoother((text12) => {
9297
- if (emitData) emitData(text12);
9412
+ contentSmoother = new StreamSmoother((text13) => {
9413
+ if (emitData) emitData(text13);
9298
9414
  }, smoothing);
9299
- thinkingSmoother = new StreamSmoother((text12) => {
9300
- if (emitThinking) emitThinking(text12);
9415
+ thinkingSmoother = new StreamSmoother((text13) => {
9416
+ if (emitThinking) emitThinking(text13);
9301
9417
  }, smoothing);
9302
9418
  let chunksEmittedDownstream = false;
9303
9419
  try {
@@ -9802,11 +9918,11 @@ Executing tool: ${toolInfo}
9802
9918
  }
9803
9919
  });
9804
9920
  currentAccumulator = createStreamAccumulator(model || void 0);
9805
- contContentSmoother = new StreamSmoother((text12) => {
9806
- if (emitData) emitData(text12);
9921
+ contContentSmoother = new StreamSmoother((text13) => {
9922
+ if (emitData) emitData(text13);
9807
9923
  }, smoothing);
9808
- contThinkingSmoother = new StreamSmoother((text12) => {
9809
- if (emitThinking) emitThinking(text12);
9924
+ contThinkingSmoother = new StreamSmoother((text13) => {
9925
+ if (emitThinking) emitThinking(text13);
9810
9926
  }, smoothing);
9811
9927
  let chunksEmittedDownstream = false;
9812
9928
  try {
@@ -10033,11 +10149,11 @@ async function resumeStream(options) {
10033
10149
  } = options;
10034
10150
  const strategy = getStrategy(handle.apiType);
10035
10151
  const accumulator = createStreamAccumulator(handle.model || void 0);
10036
- const contentSmoother = new StreamSmoother((text12) => {
10037
- if (onData) onData(text12);
10152
+ const contentSmoother = new StreamSmoother((text13) => {
10153
+ if (onData) onData(text13);
10038
10154
  }, smoothing);
10039
- const thinkingSmoother = new StreamSmoother((text12) => {
10040
- if (onThinking) onThinking(text12);
10155
+ const thinkingSmoother = new StreamSmoother((text13) => {
10156
+ if (onThinking) onThinking(text13);
10041
10157
  }, smoothing);
10042
10158
  const idleController = new AbortController();
10043
10159
  let watchdog;
@@ -10278,19 +10394,19 @@ function createWebSearchPreProcessor(options = {}) {
10278
10394
 
10279
10395
  // src/lib/db/appFiles/models.ts
10280
10396
  import { Model as Model2 } from "@nozbe/watermelondb";
10281
- import { date, readonly, text } from "@nozbe/watermelondb/decorators";
10397
+ import { date, readonly, text as text2 } from "@nozbe/watermelondb/decorators";
10282
10398
  var AppFile = class extends Model2 {
10283
10399
  };
10284
10400
  AppFile.table = "app_files";
10285
10401
  AppFile.associations = {};
10286
10402
  __decorateClass([
10287
- text("conversation_id")
10403
+ text2("conversation_id")
10288
10404
  ], AppFile.prototype, "conversationId", 2);
10289
10405
  __decorateClass([
10290
- text("path")
10406
+ text2("path")
10291
10407
  ], AppFile.prototype, "path", 2);
10292
10408
  __decorateClass([
10293
- text("content")
10409
+ text2("content")
10294
10410
  ], AppFile.prototype, "content", 2);
10295
10411
  __decorateClass([
10296
10412
  readonly,
@@ -10444,7 +10560,7 @@ async function decryptConversationTitle(encryptedTitle, address) {
10444
10560
 
10445
10561
  // src/lib/db/chat/models.ts
10446
10562
  import { Model as Model3 } from "@nozbe/watermelondb";
10447
- import { date as date2, field, json, text as text2 } from "@nozbe/watermelondb/decorators";
10563
+ import { date as date2, field, json, text as text3 } from "@nozbe/watermelondb/decorators";
10448
10564
  var Message = class extends Model3 {
10449
10565
  };
10450
10566
  Message.table = "history";
@@ -10456,19 +10572,19 @@ __decorateClass([
10456
10572
  field("message_id")
10457
10573
  ], Message.prototype, "messageId", 2);
10458
10574
  __decorateClass([
10459
- text2("conversation_id")
10575
+ text3("conversation_id")
10460
10576
  ], Message.prototype, "conversationId", 2);
10461
10577
  __decorateClass([
10462
- text2("role")
10578
+ text3("role")
10463
10579
  ], Message.prototype, "role", 2);
10464
10580
  __decorateClass([
10465
- text2("content")
10581
+ text3("content")
10466
10582
  ], Message.prototype, "content", 2);
10467
10583
  __decorateClass([
10468
- text2("model")
10584
+ text3("model")
10469
10585
  ], Message.prototype, "model", 2);
10470
10586
  __decorateClass([
10471
- text2("image_model")
10587
+ text3("image_model")
10472
10588
  ], Message.prototype, "imageModel", 2);
10473
10589
  __decorateClass([
10474
10590
  json("files", (raw) => raw)
@@ -10486,7 +10602,7 @@ __decorateClass([
10486
10602
  json("vector", (raw) => raw)
10487
10603
  ], Message.prototype, "vector", 2);
10488
10604
  __decorateClass([
10489
- text2("embedding_model")
10605
+ text3("embedding_model")
10490
10606
  ], Message.prototype, "embeddingModel", 2);
10491
10607
  __decorateClass([
10492
10608
  json("chunks", (raw) => raw)
@@ -10504,25 +10620,25 @@ __decorateClass([
10504
10620
  field("was_stopped")
10505
10621
  ], Message.prototype, "wasStopped", 2);
10506
10622
  __decorateClass([
10507
- text2("error")
10623
+ text3("error")
10508
10624
  ], Message.prototype, "error", 2);
10509
10625
  __decorateClass([
10510
10626
  json("thought_process", (raw) => raw)
10511
10627
  ], Message.prototype, "thoughtProcess", 2);
10512
10628
  __decorateClass([
10513
- text2("thinking")
10629
+ text3("thinking")
10514
10630
  ], Message.prototype, "thinking", 2);
10515
10631
  __decorateClass([
10516
- text2("parent_message_id")
10632
+ text3("parent_message_id")
10517
10633
  ], Message.prototype, "parentMessageId", 2);
10518
10634
  __decorateClass([
10519
- text2("feedback")
10635
+ text3("feedback")
10520
10636
  ], Message.prototype, "feedback", 2);
10521
10637
  __decorateClass([
10522
10638
  json("tool_call_events", (raw) => raw)
10523
10639
  ], Message.prototype, "toolCallEvents", 2);
10524
10640
  __decorateClass([
10525
- text2("origin")
10641
+ text3("origin")
10526
10642
  ], Message.prototype, "origin", 2);
10527
10643
  var Conversation = class extends Model3 {
10528
10644
  };
@@ -10532,13 +10648,13 @@ Conversation.associations = {
10532
10648
  projects: { type: "belongs_to", key: "project_id" }
10533
10649
  };
10534
10650
  __decorateClass([
10535
- text2("conversation_id")
10651
+ text3("conversation_id")
10536
10652
  ], Conversation.prototype, "conversationId", 2);
10537
10653
  __decorateClass([
10538
- text2("title")
10654
+ text3("title")
10539
10655
  ], Conversation.prototype, "title", 2);
10540
10656
  __decorateClass([
10541
- text2("project_id")
10657
+ text3("project_id")
10542
10658
  ], Conversation.prototype, "projectId", 2);
10543
10659
  __decorateClass([
10544
10660
  date2("created_at")
@@ -10559,13 +10675,13 @@ ConversationSummary.associations = {
10559
10675
  conversations: { type: "belongs_to", key: "conversation_id" }
10560
10676
  };
10561
10677
  __decorateClass([
10562
- text2("conversation_id")
10678
+ text3("conversation_id")
10563
10679
  ], ConversationSummary.prototype, "conversationId", 2);
10564
10680
  __decorateClass([
10565
- text2("summary")
10681
+ text3("summary")
10566
10682
  ], ConversationSummary.prototype, "summary", 2);
10567
10683
  __decorateClass([
10568
- text2("summarized_up_to")
10684
+ text3("summarized_up_to")
10569
10685
  ], ConversationSummary.prototype, "summarizedUpTo", 2);
10570
10686
  __decorateClass([
10571
10687
  field("token_count")
@@ -10734,16 +10850,16 @@ async function deleteConversationSummaryOp(ctx, conversationId) {
10734
10850
 
10735
10851
  // src/lib/db/conversationMemory/models.ts
10736
10852
  import { Model as Model4 } from "@nozbe/watermelondb";
10737
- import { date as date3, field as field2, readonly as readonly2, text as text3 } from "@nozbe/watermelondb/decorators";
10853
+ import { date as date3, field as field2, readonly as readonly2, text as text4 } from "@nozbe/watermelondb/decorators";
10738
10854
  var ConversationMemory = class extends Model4 {
10739
10855
  };
10740
10856
  ConversationMemory.table = "conversation_memory";
10741
10857
  ConversationMemory.associations = {};
10742
10858
  __decorateClass([
10743
- text3("conversation_id")
10859
+ text4("conversation_id")
10744
10860
  ], ConversationMemory.prototype, "conversationId", 2);
10745
10861
  __decorateClass([
10746
- text3("memory_id")
10862
+ text4("memory_id")
10747
10863
  ], ConversationMemory.prototype, "memoryId", 2);
10748
10864
  __decorateClass([
10749
10865
  field2("score")
@@ -10813,12 +10929,12 @@ async function clearConversationMemoriesOp(ctx, conversationId) {
10813
10929
 
10814
10930
  // src/lib/db/entities/models.ts
10815
10931
  import { Model as Model5 } from "@nozbe/watermelondb";
10816
- import { date as date4, field as field3, readonly as readonly3, text as text4 } from "@nozbe/watermelondb/decorators";
10932
+ import { date as date4, field as field3, readonly as readonly3, text as text5 } from "@nozbe/watermelondb/decorators";
10817
10933
  var Entity = class extends Model5 {
10818
10934
  };
10819
10935
  Entity.table = "entity";
10820
10936
  __decorateClass([
10821
- text4("canonical_name")
10937
+ text5("canonical_name")
10822
10938
  ], Entity.prototype, "canonicalName", 2);
10823
10939
  __decorateClass([
10824
10940
  field3("kind")
@@ -10834,10 +10950,10 @@ var MemoryEntity = class extends Model5 {
10834
10950
  };
10835
10951
  MemoryEntity.table = "memory_entity";
10836
10952
  __decorateClass([
10837
- text4("memory_id")
10953
+ text5("memory_id")
10838
10954
  ], MemoryEntity.prototype, "memoryId", 2);
10839
10955
  __decorateClass([
10840
- text4("entity_id")
10956
+ text5("entity_id")
10841
10957
  ], MemoryEntity.prototype, "entityId", 2);
10842
10958
  __decorateClass([
10843
10959
  field3("user_id")
@@ -11245,7 +11361,7 @@ import {
11245
11361
 
11246
11362
  // src/lib/db/media/models.ts
11247
11363
  import { Model as Model6 } from "@nozbe/watermelondb";
11248
- import { date as date5, field as field4, json as json2, readonly as readonly4, text as text5 } from "@nozbe/watermelondb/decorators";
11364
+ import { date as date5, field as field4, json as json2, readonly as readonly4, text as text6 } from "@nozbe/watermelondb/decorators";
11249
11365
  var Media = class extends Model6 {
11250
11366
  };
11251
11367
  Media.table = "media";
@@ -11254,37 +11370,37 @@ Media.associations = {
11254
11370
  conversations: { type: "belongs_to", key: "conversation_id" }
11255
11371
  };
11256
11372
  __decorateClass([
11257
- text5("media_id")
11373
+ text6("media_id")
11258
11374
  ], Media.prototype, "mediaId", 2);
11259
11375
  __decorateClass([
11260
- text5("wallet_address")
11376
+ text6("wallet_address")
11261
11377
  ], Media.prototype, "walletAddress", 2);
11262
11378
  __decorateClass([
11263
- text5("message_id")
11379
+ text6("message_id")
11264
11380
  ], Media.prototype, "messageId", 2);
11265
11381
  __decorateClass([
11266
- text5("conversation_id")
11382
+ text6("conversation_id")
11267
11383
  ], Media.prototype, "conversationId", 2);
11268
11384
  __decorateClass([
11269
- text5("name")
11385
+ text6("name")
11270
11386
  ], Media.prototype, "name", 2);
11271
11387
  __decorateClass([
11272
- text5("mime_type")
11388
+ text6("mime_type")
11273
11389
  ], Media.prototype, "mimeType", 2);
11274
11390
  __decorateClass([
11275
- text5("media_type")
11391
+ text6("media_type")
11276
11392
  ], Media.prototype, "mediaType", 2);
11277
11393
  __decorateClass([
11278
11394
  field4("size")
11279
11395
  ], Media.prototype, "size", 2);
11280
11396
  __decorateClass([
11281
- text5("role")
11397
+ text6("role")
11282
11398
  ], Media.prototype, "role", 2);
11283
11399
  __decorateClass([
11284
- text5("model")
11400
+ text6("model")
11285
11401
  ], Media.prototype, "model", 2);
11286
11402
  __decorateClass([
11287
- text5("source_url")
11403
+ text6("source_url")
11288
11404
  ], Media.prototype, "sourceUrl", 2);
11289
11405
  __decorateClass([
11290
11406
  json2("dimensions", (raw) => raw)
@@ -11308,15 +11424,15 @@ __decorateClass([
11308
11424
 
11309
11425
  // src/lib/db/memoryVault/models.ts
11310
11426
  import { Model as Model7 } from "@nozbe/watermelondb";
11311
- import { date as date6, field as field5, readonly as readonly5, text as text6 } from "@nozbe/watermelondb/decorators";
11427
+ import { date as date6, field as field5, readonly as readonly5, text as text7 } from "@nozbe/watermelondb/decorators";
11312
11428
  var VaultMemory = class extends Model7 {
11313
11429
  };
11314
11430
  VaultMemory.table = "memory_vault";
11315
11431
  __decorateClass([
11316
- text6("content")
11432
+ text7("content")
11317
11433
  ], VaultMemory.prototype, "content", 2);
11318
11434
  __decorateClass([
11319
- text6("scope")
11435
+ text7("scope")
11320
11436
  ], VaultMemory.prototype, "scope", 2);
11321
11437
  __decorateClass([
11322
11438
  field5("kind")
@@ -11418,7 +11534,7 @@ __decorateClass([
11418
11534
 
11419
11535
  // src/lib/db/project/models.ts
11420
11536
  import { Model as Model8 } from "@nozbe/watermelondb";
11421
- import { date as date7, field as field6, text as text7 } from "@nozbe/watermelondb/decorators";
11537
+ import { date as date7, field as field6, text as text8 } from "@nozbe/watermelondb/decorators";
11422
11538
  var Project = class extends Model8 {
11423
11539
  };
11424
11540
  Project.table = "projects";
@@ -11426,10 +11542,10 @@ Project.associations = {
11426
11542
  conversations: { type: "has_many", foreignKey: "project_id" }
11427
11543
  };
11428
11544
  __decorateClass([
11429
- text7("project_id")
11545
+ text8("project_id")
11430
11546
  ], Project.prototype, "projectId", 2);
11431
11547
  __decorateClass([
11432
- text7("name")
11548
+ text8("name")
11433
11549
  ], Project.prototype, "name", 2);
11434
11550
  __decorateClass([
11435
11551
  date7("created_at")
@@ -11443,29 +11559,29 @@ __decorateClass([
11443
11559
 
11444
11560
  // src/lib/db/savedTools/models.ts
11445
11561
  import { Model as Model9 } from "@nozbe/watermelondb";
11446
- import { date as date8, field as field7, json as json3, readonly as readonly6, text as text8 } from "@nozbe/watermelondb/decorators";
11562
+ import { date as date8, field as field7, json as json3, readonly as readonly6, text as text9 } from "@nozbe/watermelondb/decorators";
11447
11563
  var sanitizeParameters = (raw) => raw ?? {};
11448
11564
  var SavedTool = class extends Model9 {
11449
11565
  };
11450
11566
  SavedTool.table = "saved_tools";
11451
11567
  SavedTool.associations = {};
11452
11568
  __decorateClass([
11453
- text8("name")
11569
+ text9("name")
11454
11570
  ], SavedTool.prototype, "name", 2);
11455
11571
  __decorateClass([
11456
- text8("display_name")
11572
+ text9("display_name")
11457
11573
  ], SavedTool.prototype, "displayName", 2);
11458
11574
  __decorateClass([
11459
- text8("description")
11575
+ text9("description")
11460
11576
  ], SavedTool.prototype, "description", 2);
11461
11577
  __decorateClass([
11462
11578
  json3("parameters", sanitizeParameters)
11463
11579
  ], SavedTool.prototype, "parameters", 2);
11464
11580
  __decorateClass([
11465
- text8("html")
11581
+ text9("html")
11466
11582
  ], SavedTool.prototype, "html", 2);
11467
11583
  __decorateClass([
11468
- text8("conversation_id")
11584
+ text9("conversation_id")
11469
11585
  ], SavedTool.prototype, "conversationId", 2);
11470
11586
  __decorateClass([
11471
11587
  readonly6,
@@ -11480,40 +11596,40 @@ __decorateClass([
11480
11596
 
11481
11597
  // src/lib/db/settings/models.ts
11482
11598
  import { Model as Model10 } from "@nozbe/watermelondb";
11483
- import { text as text9 } from "@nozbe/watermelondb/decorators";
11599
+ import { text as text10 } from "@nozbe/watermelondb/decorators";
11484
11600
  var ModelPreference = class extends Model10 {
11485
11601
  };
11486
11602
  ModelPreference.table = "modelPreferences";
11487
11603
  __decorateClass([
11488
- text9("wallet_address")
11604
+ text10("wallet_address")
11489
11605
  ], ModelPreference.prototype, "walletAddress", 2);
11490
11606
  __decorateClass([
11491
- text9("models")
11607
+ text10("models")
11492
11608
  ], ModelPreference.prototype, "models", 2);
11493
11609
 
11494
11610
  // src/lib/db/userPreferences/models.ts
11495
11611
  import { Model as Model11 } from "@nozbe/watermelondb";
11496
- import { field as field8, text as text10 } from "@nozbe/watermelondb/decorators";
11612
+ import { field as field8, text as text11 } from "@nozbe/watermelondb/decorators";
11497
11613
  var UserPreference = class extends Model11 {
11498
11614
  };
11499
11615
  UserPreference.table = "userPreferences";
11500
11616
  __decorateClass([
11501
- text10("wallet_address")
11617
+ text11("wallet_address")
11502
11618
  ], UserPreference.prototype, "walletAddress", 2);
11503
11619
  __decorateClass([
11504
- text10("nickname")
11620
+ text11("nickname")
11505
11621
  ], UserPreference.prototype, "nickname", 2);
11506
11622
  __decorateClass([
11507
- text10("occupation")
11623
+ text11("occupation")
11508
11624
  ], UserPreference.prototype, "occupation", 2);
11509
11625
  __decorateClass([
11510
- text10("description")
11626
+ text11("description")
11511
11627
  ], UserPreference.prototype, "description", 2);
11512
11628
  __decorateClass([
11513
- text10("models")
11629
+ text11("models")
11514
11630
  ], UserPreference.prototype, "models", 2);
11515
11631
  __decorateClass([
11516
- text10("personality")
11632
+ text11("personality")
11517
11633
  ], UserPreference.prototype, "personality", 2);
11518
11634
  __decorateClass([
11519
11635
  field8("created_at")
@@ -11524,15 +11640,15 @@ __decorateClass([
11524
11640
 
11525
11641
  // src/lib/db/vaultFolders/models.ts
11526
11642
  import { Model as Model12 } from "@nozbe/watermelondb";
11527
- import { date as date9, field as field9, readonly as readonly7, text as text11 } from "@nozbe/watermelondb/decorators";
11643
+ import { date as date9, field as field9, readonly as readonly7, text as text12 } from "@nozbe/watermelondb/decorators";
11528
11644
  var VaultFolder = class extends Model12 {
11529
11645
  };
11530
11646
  VaultFolder.table = "vault_folders";
11531
11647
  __decorateClass([
11532
- text11("name")
11648
+ text12("name")
11533
11649
  ], VaultFolder.prototype, "name", 2);
11534
11650
  __decorateClass([
11535
- text11("scope")
11651
+ text12("scope")
11536
11652
  ], VaultFolder.prototype, "scope", 2);
11537
11653
  __decorateClass([
11538
11654
  readonly7,
@@ -11548,7 +11664,7 @@ __decorateClass([
11548
11664
  field9("is_system")
11549
11665
  ], VaultFolder.prototype, "isSystem", 2);
11550
11666
  __decorateClass([
11551
- text11("context")
11667
+ text12("context")
11552
11668
  ], VaultFolder.prototype, "context", 2);
11553
11669
 
11554
11670
  // src/lib/db/schema.ts
@@ -12863,8 +12979,8 @@ var WatermelonChatStorageAdapter = class {
12863
12979
  updateMessageEmbedding(uniqueId, vector, embeddingModel) {
12864
12980
  return updateMessageEmbeddingOp(this.ctx, uniqueId, vector, embeddingModel);
12865
12981
  }
12866
- updateMessageChunks(uniqueId, chunks, embeddingModel) {
12867
- return updateMessageChunksOp(this.ctx, uniqueId, chunks, embeddingModel);
12982
+ updateMessageChunks(uniqueId, chunks2, embeddingModel) {
12983
+ return updateMessageChunksOp(this.ctx, uniqueId, chunks2, embeddingModel);
12868
12984
  }
12869
12985
  updateMessageError(uniqueId, error) {
12870
12986
  return updateMessageErrorOp(this.ctx, uniqueId, error);
@@ -16144,7 +16260,7 @@ Which item numbers should be flagged?`,
16144
16260
  if (parsed === null) return empty;
16145
16261
  return { flagged: parseFlagged(parsed, scope.length) };
16146
16262
  }
16147
- function parseFlagged(parsed, count) {
16263
+ function parseFlagged(parsed, count2) {
16148
16264
  const out = /* @__PURE__ */ new Set();
16149
16265
  if (typeof parsed !== "object" || parsed === null) return out;
16150
16266
  const list = parsed.poisoned;
@@ -16152,7 +16268,7 @@ function parseFlagged(parsed, count) {
16152
16268
  for (const raw of list) {
16153
16269
  const n = typeof raw === "number" ? raw : typeof raw === "string" ? Number(raw) : NaN;
16154
16270
  if (!Number.isInteger(n)) continue;
16155
- if (n >= 1 && n <= count) out.add(n - 1);
16271
+ if (n >= 1 && n <= count2) out.add(n - 1);
16156
16272
  }
16157
16273
  return out;
16158
16274
  }
@@ -16638,8 +16754,8 @@ var STOPWORDS = /* @__PURE__ */ new Set([
16638
16754
  "user",
16639
16755
  "users"
16640
16756
  ]);
16641
- function tokenize(text12) {
16642
- const m = text12.toLowerCase().match(TOKEN_RE);
16757
+ function tokenize(text13) {
16758
+ const m = text13.toLowerCase().match(TOKEN_RE);
16643
16759
  if (!m) return [];
16644
16760
  return m.filter((t) => !STOPWORDS.has(t));
16645
16761
  }
@@ -18163,14 +18279,14 @@ async function retainWithPersistence(content, ctx, options = {}) {
18163
18279
  );
18164
18280
  }
18165
18281
  if (options.consolidateOptions) {
18166
- const outcome = await tryConsolidate(trimmed, ctx, options, prepared);
18167
- if (outcome) {
18168
- if ("done" in outcome) return outcome.done;
18169
- if ("create" in outcome) {
18282
+ const outcome2 = await tryConsolidate(trimmed, ctx, options, prepared);
18283
+ if (outcome2) {
18284
+ if ("done" in outcome2) return outcome2.done;
18285
+ if ("create" in outcome2) {
18170
18286
  consolidationDecidedCreate = true;
18171
18287
  } else {
18172
- supersedeTargetIds = outcome.supersede;
18173
- supersedeContent = outcome.content;
18288
+ supersedeTargetIds = outcome2.supersede;
18289
+ supersedeContent = outcome2.content;
18174
18290
  }
18175
18291
  }
18176
18292
  }
@@ -18836,12 +18952,12 @@ async function extractAndRetain(messages, retainCtx, options) {
18836
18952
  if (failedWrites > 0) {
18837
18953
  log.warn(`[memory/extract] ${failedWrites} of ${filtered.length} candidates failed to retain`);
18838
18954
  }
18839
- const outcome = exhaustedEmpty ? "empty-after-retry" : filtered.length > 0 ? "extracted" : droppedAfterRedaction ? "dropped-after-redaction" : "no-facts";
18955
+ const outcome2 = exhaustedEmpty ? "empty-after-retry" : filtered.length > 0 ? "extracted" : droppedAfterRedaction ? "dropped-after-redaction" : "no-facts";
18840
18956
  return {
18841
18957
  candidates: succeededCandidates,
18842
18958
  results,
18843
18959
  failedCount: failedWrites,
18844
- outcome,
18960
+ outcome: outcome2,
18845
18961
  quarantined: quarantinedInfo,
18846
18962
  funnel: {
18847
18963
  rawCandidateCount,
@@ -19071,7 +19187,7 @@ function createAutoExtractor(options) {
19071
19187
  ...options.retainCtx,
19072
19188
  embeddingOptions: {
19073
19189
  ...options.retainCtx.embeddingOptions,
19074
- maskInput: (text12) => piiRedactor.maskText(text12)
19190
+ maskInput: (text13) => piiRedactor.maskText(text13)
19075
19191
  }
19076
19192
  } : options.retainCtx;
19077
19193
  function processTurn(messages, conversationId) {
@@ -19104,7 +19220,7 @@ function createAutoExtractor(options) {
19104
19220
  const t0 = Date.now();
19105
19221
  void (async () => {
19106
19222
  try {
19107
- const { candidates, results, failedCount, outcome, failure, funnel, timings, model } = await extractAndRetain(window2, retainCtx, {
19223
+ const { candidates, results, failedCount, outcome: outcome2, failure, funnel, timings, model } = await extractAndRetain(window2, retainCtx, {
19108
19224
  extract,
19109
19225
  ...options.minConfidence !== void 0 && { minConfidence: options.minConfidence },
19110
19226
  ...options.entityCtx !== void 0 && { entityCtx: options.entityCtx },
@@ -19121,7 +19237,7 @@ function createAutoExtractor(options) {
19121
19237
  onQuarantined: (info) => options.onMemoryQuarantined?.({ ...info, conversationId })
19122
19238
  }
19123
19239
  });
19124
- if (outcome !== "empty-after-retry" && failedCount === 0) {
19240
+ if (outcome2 !== "empty-after-retry" && failedCount === 0) {
19125
19241
  const advancedTo = window2[window2.length - 1].id;
19126
19242
  stateFor(conversationId).watermark = advancedTo;
19127
19243
  persistCursor(conversationId, messages, advancedTo, contiguous);
@@ -19140,7 +19256,7 @@ function createAutoExtractor(options) {
19140
19256
  failedCount,
19141
19257
  durationMs: Date.now() - t0,
19142
19258
  conversationId,
19143
- outcome,
19259
+ outcome: outcome2,
19144
19260
  funnel,
19145
19261
  timings,
19146
19262
  model,
@@ -20802,12 +20918,12 @@ ${JSON.stringify(
20802
20918
  function parseAnswer(body, base, parseSchema) {
20803
20919
  if (typeof body !== "object" || body === null) return base;
20804
20920
  const obj = body;
20805
- const text12 = extractCompletionContent(obj) ?? "";
20921
+ const text13 = extractCompletionContent(obj) ?? "";
20806
20922
  const usage = obj.usage;
20807
20923
  let structuredOutput;
20808
- if (parseSchema && text12) {
20924
+ if (parseSchema && text13) {
20809
20925
  try {
20810
- structuredOutput = JSON.parse(extractJsonCandidate(text12));
20926
+ structuredOutput = JSON.parse(extractJsonCandidate(text13));
20811
20927
  } catch (err) {
20812
20928
  getLogger().warn("[memory/reflect] structured output was not valid JSON", {
20813
20929
  err: err instanceof Error ? err.message : String(err)
@@ -20817,7 +20933,7 @@ function parseAnswer(body, base, parseSchema) {
20817
20933
  const promptTokens = usage?.prompt_tokens ?? usage?.input_tokens ?? 0;
20818
20934
  const completionTokens = usage?.completion_tokens ?? usage?.output_tokens ?? 0;
20819
20935
  return {
20820
- text: text12,
20936
+ text: text13,
20821
20937
  ...structuredOutput !== void 0 && { structuredOutput },
20822
20938
  basedOn: base.basedOn,
20823
20939
  usage: {
@@ -21169,6 +21285,65 @@ function createLocalMemoryStore(options) {
21169
21285
  };
21170
21286
  }
21171
21287
 
21288
+ // src/lib/memory/store/memoryKeys.ts
21289
+ var KEY_ID_DOMAIN = "anuma-private-memory-key-id-v1";
21290
+ var MemoryKeyError = class extends Error {
21291
+ constructor(message) {
21292
+ super(message);
21293
+ this.name = "MemoryKeyError";
21294
+ }
21295
+ };
21296
+ async function importAesKey(hex) {
21297
+ return crypto.subtle.importKey(
21298
+ "raw",
21299
+ hexToBytes(hex).buffer,
21300
+ { name: "AES-GCM" },
21301
+ false,
21302
+ ["encrypt", "decrypt"]
21303
+ );
21304
+ }
21305
+ async function deriveMemoryKeyRing(signatureHex) {
21306
+ const v3Hex = await deriveKeyFromSignatureV3(signatureHex);
21307
+ const digest = await crypto.subtle.digest(
21308
+ "SHA-256",
21309
+ new TextEncoder().encode(`${KEY_ID_DOMAIN}:${v3Hex}`)
21310
+ );
21311
+ const keyId = "v3:" + Array.from(new Uint8Array(digest), (byte) => byte.toString(16).padStart(2, "0")).join("");
21312
+ return {
21313
+ keyId,
21314
+ v3: await importAesKey(v3Hex),
21315
+ v2: await importAesKey(await deriveKeyFromSignature(signatureHex))
21316
+ };
21317
+ }
21318
+ async function decryptWith(value, rings) {
21319
+ const version = value.startsWith("enc:v3:") ? "v3" : "v2";
21320
+ for (const ring of rings) {
21321
+ try {
21322
+ return await decryptDataWithKey(value.slice(`enc:${version}:`.length), ring[version]);
21323
+ } catch {
21324
+ continue;
21325
+ }
21326
+ }
21327
+ throw new MemoryKeyError(`No supplied key decrypts this enc:${version} field`);
21328
+ }
21329
+ function memoryCipher(canonical) {
21330
+ return {
21331
+ encrypt: async (plaintext) => `enc:v3:${await encryptDataWithKey(plaintext, canonical.v3)}`,
21332
+ decrypt: async (ciphertext) => {
21333
+ if (!ciphertext.startsWith("enc:v3:") || !isEncrypted(ciphertext))
21334
+ throw new MemoryKeyError("Remote memory content must be enc:v3 ciphertext");
21335
+ return decryptWith(ciphertext, [canonical]);
21336
+ }
21337
+ };
21338
+ }
21339
+ async function reencryptMemoryField(value, canonical, fallbacks = []) {
21340
+ const { encrypt } = memoryCipher(canonical);
21341
+ if (!value.startsWith("enc:")) return encrypt(value);
21342
+ if (!isEncrypted(value))
21343
+ throw new MemoryKeyError("Field has an encryption prefix but an invalid payload");
21344
+ return encrypt(await decryptWith(value, [canonical, ...fallbacks]));
21345
+ }
21346
+
21172
21347
  // src/lib/memory/store/remotePersistence.ts
21173
21348
  var RemoteMemoryError = class extends Error {
21174
21349
  constructor(message, status, code) {
@@ -21221,6 +21396,30 @@ var candidateListLimits = [
21221
21396
  ["memory_ids", 1e3],
21222
21397
  ["force_ids", 100]
21223
21398
  ];
21399
+ var queryListLimits = [
21400
+ ["scopes", 20],
21401
+ ["fact_types", 20],
21402
+ ["visibility", 20],
21403
+ ["memory_ids", 1e3],
21404
+ ["topics", 100]
21405
+ ];
21406
+ var queryFields = [
21407
+ "include_deleted",
21408
+ "include_archived",
21409
+ "include_quarantined",
21410
+ "include_superseded",
21411
+ "archived_only",
21412
+ "scopes",
21413
+ "fact_types",
21414
+ "visibility",
21415
+ "memory_ids",
21416
+ "topics",
21417
+ "updated_after",
21418
+ "order",
21419
+ "cursor",
21420
+ "limit",
21421
+ "include_embeddings"
21422
+ ];
21224
21423
  function record(value) {
21225
21424
  return typeof value === "object" && value !== null && !Array.isArray(value);
21226
21425
  }
@@ -21555,6 +21754,35 @@ async function createRemoteMemoryPersistence(options) {
21555
21754
  throw new Error("Invalid nearby batch response");
21556
21755
  return Promise.all(result.items.map((item, i) => decodeCommitted(item, prepared[i])));
21557
21756
  },
21757
+ query: async (queryOptions = {}) => {
21758
+ const { signal, ...query } = queryOptions;
21759
+ if (query.limit !== void 0 && (!Number.isInteger(query.limit) || query.limit < 1 || query.limit > 200))
21760
+ throw new Error("Page limit must be 1\u2013200");
21761
+ for (const [key, max] of queryListLimits) {
21762
+ const values = query[key];
21763
+ if (values && values.length > max)
21764
+ throw new Error(`Query ${key} accepts at most ${max} entries (got ${values.length})`);
21765
+ }
21766
+ const page = await request(
21767
+ "/memories/query",
21768
+ {
21769
+ method: "POST",
21770
+ body: JSON.stringify(
21771
+ Object.fromEntries(
21772
+ queryFields.filter((key) => query[key] !== void 0).map((key) => [key, query[key]])
21773
+ )
21774
+ )
21775
+ },
21776
+ signal
21777
+ );
21778
+ 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")
21779
+ throw new Error("Invalid nearby private-memory page");
21780
+ return {
21781
+ ...await decodeAll(page.items),
21782
+ ...page.next_cursor !== void 0 && { next_cursor: page.next_cursor },
21783
+ ...page.changes_cursor !== void 0 && { changes_cursor: page.changes_cursor }
21784
+ };
21785
+ },
21558
21786
  candidateSet,
21559
21787
  candidates: async (embedding, candidateOptions = {}) => decodeAll((await fetchCandidates(embedding, candidateOptions, false)).items)
21560
21788
  };
@@ -21905,10 +22133,10 @@ function createRemoteMemoryPipeline(options) {
21905
22133
  factSource: {
21906
22134
  graphRanking: options.graphRanking,
21907
22135
  temporalRanking: options.temporalRanking,
21908
- search: async (text12, searchOptions) => {
21909
- const prepared = await prepare(text12, searchOptions);
22136
+ search: async (text13, searchOptions) => {
22137
+ const prepared = await prepare(text13, searchOptions);
21910
22138
  const ranked = await rankPreparedVaultCandidates(
21911
- text12,
22139
+ text13,
21912
22140
  prepared,
21913
22141
  embeddingOptions,
21914
22142
  searchOptions
@@ -21943,6 +22171,489 @@ function createRemoteMemoryPipeline(options) {
21943
22171
  };
21944
22172
  }
21945
22173
 
22174
+ // src/lib/memory/store/remoteStore.ts
22175
+ import { v7 as uuidv76 } from "uuid";
22176
+ function relevant(change, options) {
22177
+ return options.includeDeleted ? change === "membership" : change !== "embedding" || !!options.embeddings;
22178
+ }
22179
+ function safely(onChange) {
22180
+ try {
22181
+ onChange();
22182
+ } catch (error) {
22183
+ getLogger().warn("[memory/remote-store] Subscriber threw:", error);
22184
+ }
22185
+ }
22186
+ var MAX_BATCH = 50;
22187
+ var MAX_QUERY_IDS = 1e3;
22188
+ var MAX_QUERY_TOPICS = 100;
22189
+ var MAX_QUERY_FILTER = 20;
22190
+ var RemoteMemoryPartialCreateError = class extends Error {
22191
+ constructor(created, cause) {
22192
+ super(`createMany stored ${created.length} memories before a batch failed`);
22193
+ this.created = created;
22194
+ this.cause = cause;
22195
+ this.name = "RemoteMemoryPartialCreateError";
22196
+ }
22197
+ };
22198
+ function warnFailed(failed) {
22199
+ if (failed.length)
22200
+ getLogger().warn(
22201
+ `[memory/remote-store] Skipping ${failed.length} undecryptable row(s)`,
22202
+ failed.map((failure) => failure.memory_id)
22203
+ );
22204
+ }
22205
+ function bounded(filters, key) {
22206
+ const values = filters[key];
22207
+ if (!values || values.length <= MAX_QUERY_FILTER) return [filters];
22208
+ return chunks(values, MAX_QUERY_FILTER).map((chunk) => ({ ...filters, [key]: chunk }));
22209
+ }
22210
+ function chunks(values, size) {
22211
+ const out = [];
22212
+ for (let i = 0; i < values.length; i += size) out.push(values.slice(i, i + size));
22213
+ return out;
22214
+ }
22215
+ function stateFilters(options) {
22216
+ return {
22217
+ include_deleted: options.includeDeleted,
22218
+ include_archived: options.includeArchived,
22219
+ include_quarantined: options.includeQuarantined,
22220
+ include_superseded: options.includeSuperseded
22221
+ };
22222
+ }
22223
+ function hidden(memory, options) {
22224
+ if (memory.trust_tier === "quarantined") return true;
22225
+ if (options.includeDeleted) return false;
22226
+ return !!memory.is_deleted || memory.archived_at !== void 0 && memory.archived_at !== null || !!memory.superseded_by;
22227
+ }
22228
+ function subscriptionKey({ memory, version }, options) {
22229
+ if (hidden(memory, options)) return void 0;
22230
+ if (options.includeDeleted) return String(!!memory.is_deleted);
22231
+ return JSON.stringify([
22232
+ options.embeddings ? version : null,
22233
+ memory.content,
22234
+ memory.scope,
22235
+ memory.updated_at,
22236
+ memory.fact_type,
22237
+ memory.event_time_start,
22238
+ memory.event_time_end,
22239
+ memory.event_time_kind,
22240
+ memory.trust_tier,
22241
+ memory.visibility,
22242
+ memory.published_at,
22243
+ memory.geohash,
22244
+ memory.topics,
22245
+ memory.topics_user_managed,
22246
+ memory.media,
22247
+ memory.source
22248
+ ]);
22249
+ }
22250
+ function topicInputs(topics, source) {
22251
+ return topics.flatMap((topic) => {
22252
+ const name = (typeof topic === "string" ? topic : topic.name).trim();
22253
+ const kind = typeof topic === "string" ? void 0 : topic.kind;
22254
+ return name ? [{ name, ...kind && { kind }, source }] : [];
22255
+ });
22256
+ }
22257
+ function mergeTopics(existing, added) {
22258
+ const byName = /* @__PURE__ */ new Map();
22259
+ for (const topic of [...existing, ...added]) {
22260
+ const key = normalizeEntityName(topic.name);
22261
+ if (!byName.has(key)) byName.set(key, topic);
22262
+ }
22263
+ return [...byName.values()];
22264
+ }
22265
+ function canonicalTopics(row) {
22266
+ return new Set((parseTopics(row.topics) ?? []).map((topic) => normalizeEntityName(topic.name)));
22267
+ }
22268
+ function createRemoteMemoryStore(options) {
22269
+ const { persistence, embeddingOptions } = options;
22270
+ const model = embeddingOptions.model ?? DEFAULT_API_EMBEDDING_MODEL;
22271
+ const pollIntervalMs = options.pollIntervalMs ?? 6e4;
22272
+ const pipeline = createRemoteMemoryPipeline(options);
22273
+ const subscribers = /* @__PURE__ */ new Set();
22274
+ const seen = /* @__PURE__ */ new Map();
22275
+ let timer;
22276
+ const notify = (change, records = []) => {
22277
+ if (timer) for (const record2 of records) seen.set(record2.memory.memory_id, record2);
22278
+ for (const subscriber of [...subscribers])
22279
+ if (relevant(change, subscriber.options)) safely(subscriber.onChange);
22280
+ };
22281
+ const enumerate = async (filters, max = Infinity) => {
22282
+ const records = [];
22283
+ let cursor2;
22284
+ do {
22285
+ const page = await persistence.query({
22286
+ ...filters,
22287
+ limit: Math.min(200, Math.max(1, max - records.length)),
22288
+ ...cursor2 && { cursor: cursor2 }
22289
+ });
22290
+ warnFailed(page.failed);
22291
+ records.push(...page.items);
22292
+ cursor2 = page.next_cursor;
22293
+ } while (cursor2 && records.length < max);
22294
+ return records.slice(0, max);
22295
+ };
22296
+ const enumerateIds = async (ids, filters) => (await Promise.all(
22297
+ chunks([...new Set(ids)], MAX_QUERY_IDS).map(
22298
+ (memory_ids) => enumerate({ ...filters, memory_ids })
22299
+ )
22300
+ )).flat();
22301
+ const queues = /* @__PURE__ */ new Map();
22302
+ const serialized = (id, task) => {
22303
+ const run = (queues.get(id) ?? Promise.resolve()).then(task, task);
22304
+ const settled = run.catch(() => void 0);
22305
+ queues.set(id, settled);
22306
+ void settled.then(() => {
22307
+ if (queues.get(id) === settled) queues.delete(id);
22308
+ });
22309
+ return run;
22310
+ };
22311
+ const live = async (id) => {
22312
+ const record2 = await persistence.get(id);
22313
+ return record2 && !record2.memory.is_deleted ? record2 : null;
22314
+ };
22315
+ const mutate = async (id, change, edit) => serialized(id, async () => {
22316
+ const record2 = await live(id);
22317
+ if (!record2) return null;
22318
+ const next = edit(structuredClone(record2.memory));
22319
+ if (!next) return null;
22320
+ const saved = await persistence.put(next, record2);
22321
+ notify(change, [saved]);
22322
+ return saved;
22323
+ });
22324
+ const embedInBackground = ({ memory: { memory_id: id, content } }) => {
22325
+ generateEmbedding(content, embeddingOptions).then(
22326
+ (vector) => serialized(id, async () => {
22327
+ const current = await live(id);
22328
+ if (!current || current.memory.content !== content || current.memory.embedding?.length)
22329
+ return;
22330
+ const saved = await persistence.put(
22331
+ { ...current.memory, embedding: storedVector(vector), embedding_model: model },
22332
+ current
22333
+ );
22334
+ notify("embedding", [saved]);
22335
+ })
22336
+ ).catch((error) => {
22337
+ getLogger().warn("[memory/remote-store] Failed to embed memory:", error);
22338
+ });
22339
+ };
22340
+ const newRow = (input) => {
22341
+ const now = Date.now();
22342
+ const scope = input.scope ?? "private";
22343
+ return {
22344
+ memory_id: uuidv76(),
22345
+ content: input.content,
22346
+ scope,
22347
+ level: levelFromScope(scope),
22348
+ created_at: now,
22349
+ updated_at: now,
22350
+ is_deleted: false,
22351
+ ...input.embedding !== void 0 && {
22352
+ embedding: storedVector(JSON.parse(input.embedding)),
22353
+ embedding_model: input.embeddingModel ?? model
22354
+ },
22355
+ proof_count: 1,
22356
+ source: "manual",
22357
+ ...input.eventTime && {
22358
+ event_time_start: input.eventTime.start ?? void 0,
22359
+ event_time_end: input.eventTime.end ?? void 0,
22360
+ event_time_kind: input.eventTime.kind ?? void 0
22361
+ },
22362
+ fact_type: input.factType,
22363
+ geohash: input.geohash,
22364
+ visibility: "private",
22365
+ twin_opt_in: false
22366
+ };
22367
+ };
22368
+ const created = (records, inputs) => {
22369
+ records.forEach((record2, i) => {
22370
+ if (inputs[i].embedding === void 0) embedInBackground(record2);
22371
+ });
22372
+ notify("membership", records);
22373
+ return records.map((record2) => stored(record2.memory));
22374
+ };
22375
+ const asStored = (record2) => record2 ? stored(record2.memory) : null;
22376
+ const everyState = {
22377
+ include_deleted: true,
22378
+ include_archived: true,
22379
+ include_quarantined: true,
22380
+ include_superseded: true
22381
+ };
22382
+ const changesSince = async (cursor2, pending2) => {
22383
+ const records = [];
22384
+ const failed = /* @__PURE__ */ new Set();
22385
+ const collect = (page) => {
22386
+ warnFailed(page.failed);
22387
+ records.push(...page.items);
22388
+ for (const failure of page.failed) failed.add(failure.memory_id);
22389
+ };
22390
+ let resume = cursor2;
22391
+ let next;
22392
+ do {
22393
+ const page = await persistence.query({
22394
+ ...everyState,
22395
+ order: "changed",
22396
+ limit: 200,
22397
+ ...(next ?? resume) && { cursor: next ?? resume }
22398
+ });
22399
+ collect(page);
22400
+ resume = page.changes_cursor ?? resume;
22401
+ next = page.next_cursor;
22402
+ } while (next);
22403
+ for (const memory_ids of chunks([...pending2], MAX_QUERY_IDS)) {
22404
+ let retry;
22405
+ do {
22406
+ const page = await persistence.query({
22407
+ ...everyState,
22408
+ memory_ids,
22409
+ limit: 200,
22410
+ ...retry && { cursor: retry }
22411
+ });
22412
+ collect(page);
22413
+ retry = page.next_cursor;
22414
+ } while (retry);
22415
+ }
22416
+ return { records, resume, failed };
22417
+ };
22418
+ let generation = 0;
22419
+ let ready = false;
22420
+ let cursor;
22421
+ let pending = /* @__PURE__ */ new Set();
22422
+ let polling = false;
22423
+ const poll = () => {
22424
+ if (polling) return;
22425
+ polling = true;
22426
+ const current = generation;
22427
+ changesSince(cursor, pending).then(({ records, resume, failed }) => {
22428
+ if (current !== generation) return;
22429
+ const changed = /* @__PURE__ */ new Set();
22430
+ for (const record2 of records) {
22431
+ const id = record2.memory.memory_id;
22432
+ const previous = seen.get(id);
22433
+ seen.set(id, record2);
22434
+ if (!ready) continue;
22435
+ for (const subscriber of subscribers) {
22436
+ const before = previous && subscriptionKey(previous, subscriber.options);
22437
+ if (before !== subscriptionKey(record2, subscriber.options)) changed.add(subscriber);
22438
+ }
22439
+ }
22440
+ ready = true;
22441
+ cursor = resume;
22442
+ pending = failed;
22443
+ for (const subscriber of changed)
22444
+ if (subscribers.has(subscriber)) safely(subscriber.onChange);
22445
+ }).catch((error) => {
22446
+ getLogger().warn("[memory/remote-store] Subscription poll failed:", error);
22447
+ }).finally(() => {
22448
+ polling = false;
22449
+ });
22450
+ };
22451
+ return {
22452
+ list: async (listOptions = {}) => {
22453
+ const order = listOptions.since ? "updated" : "created";
22454
+ const filters = {
22455
+ ...stateFilters(listOptions),
22456
+ include_embeddings: true,
22457
+ order,
22458
+ ...listOptions.scopes?.length && { scopes: listOptions.scopes },
22459
+ ...listOptions.factTypes?.length && { fact_types: listOptions.factTypes },
22460
+ ...listOptions.visibility?.length && { visibility: listOptions.visibility },
22461
+ ...listOptions.since && { updated_after: listOptions.since.getTime() }
22462
+ };
22463
+ const max = listOptions.limit && listOptions.limit > 0 ? listOptions.limit : Infinity;
22464
+ const variants = bounded(filters, "scopes").flatMap((f) => bounded(f, "fact_types"));
22465
+ if (!listOptions.memoryIds && variants.length === 1)
22466
+ return (await enumerate(filters, max)).map((r) => stored(r.memory));
22467
+ const fetched = await Promise.all(
22468
+ variants.map(
22469
+ (variant) => listOptions.memoryIds ? enumerateIds(listOptions.memoryIds, variant) : enumerate(variant, max)
22470
+ )
22471
+ );
22472
+ const rows = [...new Map(fetched.flat().map((r) => [r.memory.memory_id, r])).values()].map((record2) => stored(record2.memory)).sort(
22473
+ (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)
22474
+ );
22475
+ return rows.slice(0, max);
22476
+ },
22477
+ get: async (id) => asStored(await live(id)),
22478
+ listArchived: async () => (await enumerate({ archived_only: true, order: "archived", include_embeddings: true })).map(
22479
+ (record2) => stored(record2.memory)
22480
+ ),
22481
+ memoriesByTopics: async (names) => {
22482
+ const wanted = new Set(names.map(normalizeEntityName).filter(Boolean));
22483
+ const out = /* @__PURE__ */ new Map();
22484
+ const pages = await Promise.all(
22485
+ chunks([...wanted], MAX_QUERY_TOPICS).map((topics) => enumerate({ topics }))
22486
+ );
22487
+ for (const { memory } of pages.flat()) {
22488
+ const matched = [...canonicalTopics(memory)].filter((name) => wanted.has(name));
22489
+ if (matched.length) out.set(memory.memory_id, new Set(matched));
22490
+ }
22491
+ return out;
22492
+ },
22493
+ topicsByMemories: async (memoryIds) => {
22494
+ const out = /* @__PURE__ */ new Map();
22495
+ for (const { memory } of await enumerateIds(memoryIds, {
22496
+ include_archived: true,
22497
+ include_superseded: true,
22498
+ include_quarantined: true
22499
+ })) {
22500
+ const topics = canonicalTopics(memory);
22501
+ if (topics.size) out.set(memory.memory_id, topics);
22502
+ }
22503
+ return out;
22504
+ },
22505
+ create: async (input) => {
22506
+ const record2 = await persistence.put(newRow(input), 0);
22507
+ return created([record2], [input])[0];
22508
+ },
22509
+ createMany: async (inputs) => {
22510
+ const out = [];
22511
+ for (const batch of chunks(inputs, MAX_BATCH)) {
22512
+ let records;
22513
+ try {
22514
+ records = await persistence.putMany(
22515
+ batch.map((input) => ({ memory: newRow(input), expectedVersion: 0 }))
22516
+ );
22517
+ } catch (error) {
22518
+ if (out.length === 0) throw error;
22519
+ throw new RemoteMemoryPartialCreateError(out, error);
22520
+ }
22521
+ out.push(...created(records, batch));
22522
+ }
22523
+ return out;
22524
+ },
22525
+ update: async (id, patch) => {
22526
+ const saved = await mutate(id, "edit", (memory) => {
22527
+ if (memory.superseded_by) return null;
22528
+ memory.content = patch.content;
22529
+ memory.updated_at = Date.now();
22530
+ if (patch.scope !== void 0) {
22531
+ memory.level = levelForScopeChange(
22532
+ { level: memory.level, scope: memory.scope },
22533
+ patch.scope
22534
+ );
22535
+ memory.scope = patch.scope;
22536
+ }
22537
+ if (patch.factType !== void 0) memory.fact_type = patch.factType ?? void 0;
22538
+ if (patch.eventTime !== void 0) {
22539
+ memory.event_time_start = patch.eventTime?.start ?? void 0;
22540
+ memory.event_time_end = patch.eventTime?.end ?? void 0;
22541
+ memory.event_time_kind = patch.eventTime?.kind ?? void 0;
22542
+ }
22543
+ if (patch.embedding === void 0 || patch.embedding === null) {
22544
+ memory.embedding = [];
22545
+ delete memory.embedding_model;
22546
+ } else {
22547
+ memory.embedding = storedVector(JSON.parse(patch.embedding));
22548
+ memory.embedding_model = patch.embeddingModel ?? model;
22549
+ }
22550
+ return memory;
22551
+ });
22552
+ if (saved && patch.embedding === void 0) embedInBackground(saved);
22553
+ return asStored(saved);
22554
+ },
22555
+ delete: async (id) => !!await mutate(id, "membership", (memory) => ({ ...memory, is_deleted: true })),
22556
+ supersede: async (id, supersededById) => {
22557
+ if (id === supersededById) return false;
22558
+ const [first, second] = [id, supersededById].sort();
22559
+ return serialized(
22560
+ first,
22561
+ () => serialized(second, async () => {
22562
+ const [old, next] = await Promise.all([live(id), live(supersededById)]);
22563
+ if (!old || !next || old.memory.superseded_by || next.memory.superseded_by) return false;
22564
+ if (old.memory.kind !== void 0 && old.memory.kind !== null) return false;
22565
+ const saved = await persistence.putMany([
22566
+ {
22567
+ memory: { ...old.memory, superseded_by: supersededById, superseded_at: Date.now() },
22568
+ expectedVersion: old
22569
+ },
22570
+ { memory: next.memory, expectedVersion: next }
22571
+ ]);
22572
+ notify("membership", saved);
22573
+ return true;
22574
+ })
22575
+ );
22576
+ },
22577
+ archive: async (id) => !!await mutate(
22578
+ id,
22579
+ "edit",
22580
+ (memory) => memory.archived_at === void 0 || memory.archived_at === null ? { ...memory, archived_at: Date.now() } : null
22581
+ ),
22582
+ restore: (id) => serialized(id, async () => {
22583
+ const record2 = await live(id);
22584
+ if (!record2) return false;
22585
+ if (record2.memory.archived_at === void 0 || record2.memory.archived_at === null)
22586
+ return true;
22587
+ const { archived_at: _archivedAt, ...memory } = record2.memory;
22588
+ notify("edit", [await persistence.put(memory, record2)]);
22589
+ return true;
22590
+ }),
22591
+ setTopics: async (memoryId, topics) => asStored(
22592
+ await mutate(memoryId, "edit", (memory) => ({
22593
+ ...memory,
22594
+ topics: serializeTopics(mergeTopics([], topicInputs(topics, "user"))),
22595
+ topics_user_managed: true,
22596
+ topics_updated_at: Date.now()
22597
+ }))
22598
+ ),
22599
+ addTopics: async (memoryId, topics) => {
22600
+ const added = topicInputs(topics, "auto");
22601
+ const saved = await mutate(memoryId, "edit", (memory) => ({
22602
+ ...memory,
22603
+ topics: serializeTopics(mergeTopics(parseTopics(memory.topics) ?? [], added)),
22604
+ topics_updated_at: Date.now()
22605
+ }));
22606
+ if (!saved) return [];
22607
+ const now = /* @__PURE__ */ new Date();
22608
+ return mergeTopics([], added).map(
22609
+ (topic) => ({
22610
+ uniqueId: normalizeEntityName(topic.name),
22611
+ canonicalName: normalizeEntityName(topic.name),
22612
+ kind: topic.kind ?? null,
22613
+ createdAt: now,
22614
+ updatedAt: now
22615
+ })
22616
+ );
22617
+ },
22618
+ setVisibility: async (id, visibility, visibilityOptions) => asStored(
22619
+ await mutate(id, "edit", (memory) => {
22620
+ memory.visibility = visibility;
22621
+ if (visibility === "private") delete memory.published_at;
22622
+ else memory.published_at ?? (memory.published_at = Date.now());
22623
+ if (visibilityOptions?.twinOptIn !== void 0)
22624
+ memory.twin_opt_in = visibilityOptions.twinOptIn;
22625
+ return memory;
22626
+ })
22627
+ ),
22628
+ recall: (query, recallOptions) => pipeline.recall(query, recallOptions),
22629
+ retain: async (content, retainOptions) => {
22630
+ const result = await pipeline.retain(content, retainOptions);
22631
+ if (result.action === "create" || result.action === "supersede") notify("membership");
22632
+ else if (result.action === "update" || result.action === "merge") notify("edit");
22633
+ return result;
22634
+ },
22635
+ subscribe: (onChange, subscribeOptions = {}) => {
22636
+ const subscriber = { onChange, options: subscribeOptions };
22637
+ subscribers.add(subscriber);
22638
+ if (pollIntervalMs > 0 && !timer) {
22639
+ timer = setInterval(poll, pollIntervalMs);
22640
+ poll();
22641
+ }
22642
+ return () => {
22643
+ subscribers.delete(subscriber);
22644
+ if (subscribers.size || !timer) return;
22645
+ clearInterval(timer);
22646
+ timer = void 0;
22647
+ generation++;
22648
+ seen.clear();
22649
+ ready = false;
22650
+ cursor = void 0;
22651
+ pending = /* @__PURE__ */ new Set();
22652
+ };
22653
+ }
22654
+ };
22655
+ }
22656
+
21946
22657
  // src/lib/memory/synthesizeProfile.ts
21947
22658
  var DEFAULT_SYNTHESIS_MODEL = "inclusionai/ling-2.6-flash";
21948
22659
  var DEFAULT_FACET_RECALL_LIMIT = 20;
@@ -22313,8 +23024,8 @@ async function synthesizeFacet(facet, ctx, options, prior) {
22313
23024
  memories
22314
23025
  });
22315
23026
  const noEvidence = result.basedOn.memoryIds.length === 0;
22316
- const { text: text12, legitimateEmpty } = extractFacetText(result.structuredOutput);
22317
- if (!text12 && !legitimateEmpty && !noEvidence) {
23027
+ const { text: text13, legitimateEmpty } = extractFacetText(result.structuredOutput);
23028
+ if (!text13 && !legitimateEmpty && !noEvidence) {
22318
23029
  getLogger().warn(
22319
23030
  "[memory/synthesizeProfile] facet synthesis returned degraded-empty; using fallback section",
22320
23031
  { facet: facet.key, recalledCount: result.basedOn.memoryIds.length }
@@ -22324,12 +23035,12 @@ async function synthesizeFacet(facet, ctx, options, prior) {
22324
23035
  const section = {
22325
23036
  key: facet.key,
22326
23037
  label: facet.label,
22327
- text: text12,
23038
+ text: text13,
22328
23039
  sourceMemoryIds: result.basedOn.memoryIds,
22329
23040
  generatedAt: Date.now()
22330
23041
  };
22331
- if (options.redactor && text12) {
22332
- const redacted = await options.redactor.redactTextAsync(text12);
23042
+ if (options.redactor && text13) {
23043
+ const redacted = await options.redactor.redactTextAsync(text13);
22333
23044
  section.text = redacted.text;
22334
23045
  }
22335
23046
  if (!legitimateEmpty && !noEvidence) {
@@ -22842,10 +23553,10 @@ function createDurableAutoExtractor(options) {
22842
23553
  const counted = error instanceof BatchFailureError || error instanceof LockedSourcesError && error.persistentIds.length > 0;
22843
23554
  if (!counted) return false;
22844
23555
  const prior = sessionFailures.get(job.id);
22845
- const count = prior?.head === head ? prior.count + 1 : 1;
22846
- sessionFailures.set(job.id, { head, count });
23556
+ const count2 = prior?.head === head ? prior.count + 1 : 1;
23557
+ sessionFailures.set(job.id, { head, count: count2 });
22847
23558
  const terminal = error instanceof BatchFailureError && error.terminal;
22848
- if (!terminal && count < MAX_ATTEMPTS) return false;
23559
+ if (!terminal && count2 < MAX_ATTEMPTS) return false;
22849
23560
  skippedThisSession.add(job.id);
22850
23561
  const now = clock();
22851
23562
  const lastCounted = failedAtOf(job, head);
@@ -23149,7 +23860,7 @@ async function verifyFactSupport(items, options) {
23149
23860
  }
23150
23861
  const maxEvidenceChars = Math.max(1, options.maxEvidenceChars ?? DEFAULT_MAX_EVIDENCE_CHARS);
23151
23862
  const redactor = resolvePiiRedactor(options.piiRedaction ?? true);
23152
- const safe = async (text12) => redactor ? (await redactor.redactTextAsync(text12)).text : text12;
23863
+ const safe = async (text13) => redactor ? (await redactor.redactTextAsync(text13)).text : text13;
23153
23864
  let truncatedCount = 0;
23154
23865
  const parts = [];
23155
23866
  for (const [i, item] of items.entries()) {
@@ -23206,7 +23917,7 @@ Which item numbers are supported?`,
23206
23917
  }
23207
23918
  return supported;
23208
23919
  }
23209
- function parseSupported(parsed, count) {
23920
+ function parseSupported(parsed, count2) {
23210
23921
  if (typeof parsed !== "object" || parsed === null) return null;
23211
23922
  const list = parsed.supported;
23212
23923
  if (!Array.isArray(list)) return null;
@@ -23214,7 +23925,7 @@ function parseSupported(parsed, count) {
23214
23925
  for (const raw of list) {
23215
23926
  const n = typeof raw === "number" ? raw : typeof raw === "string" ? Number(raw) : NaN;
23216
23927
  if (!Number.isInteger(n)) continue;
23217
- if (n >= 1 && n <= count) out.add(n - 1);
23928
+ if (n >= 1 && n <= count2) out.add(n - 1);
23218
23929
  }
23219
23930
  return out;
23220
23931
  }
@@ -23265,7 +23976,7 @@ async function verifyMemoriesForPublish(memories, sources, options) {
23265
23976
  );
23266
23977
  const pending = [];
23267
23978
  for (const { index, uniqueId, content, ids } of withinBudget) {
23268
- const evidence = ids.map((id) => resolved.get(id) ?? null).filter((text12) => text12 !== null);
23979
+ const evidence = ids.map((id) => resolved.get(id) ?? null).filter((text13) => text13 !== null);
23269
23980
  const dropped = ids.length - evidence.length;
23270
23981
  if (ids.some((id) => unreadable.has(id))) {
23271
23982
  results[index] = {
@@ -23768,22 +24479,22 @@ function normalizeManualFactType(value) {
23768
24479
  function isSharedScope(scope) {
23769
24480
  return scope === "shared";
23770
24481
  }
23771
- async function notifyWritten(options, input, outcome) {
24482
+ async function notifyWritten(options, input, outcome2) {
23772
24483
  try {
23773
- await options?.onWritten?.({ input, outcome });
24484
+ await options?.onWritten?.({ input, outcome: outcome2 });
23774
24485
  } catch {
23775
24486
  }
23776
24487
  }
23777
- function describeWriteOutcome(outcome) {
23778
- switch (outcome.action) {
24488
+ function describeWriteOutcome(outcome2) {
24489
+ switch (outcome2.action) {
23779
24490
  case "create":
23780
- return `Memory saved successfully (ID: ${outcome.memoryId}).`;
24491
+ return `Memory saved successfully (ID: ${outcome2.memoryId}).`;
23781
24492
  case "update":
23782
24493
  case "supersede":
23783
- return `Memory saved successfully (ID: ${outcome.memoryId}); it replaces an earlier version of this fact.`;
24494
+ return `Memory saved successfully (ID: ${outcome2.memoryId}); it replaces an earlier version of this fact.`;
23784
24495
  case "merge":
23785
24496
  case "skip":
23786
- 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.`;
24497
+ 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.`;
23787
24498
  case "suppressed":
23788
24499
  return "Not saved: this matches a memory the user previously deleted. Do not re-save it.";
23789
24500
  }
@@ -23889,9 +24600,9 @@ function createMemoryVaultTool(vaultCtx, options, embeddingOptions, cache) {
23889
24600
  ...folderId !== void 0 && { folderId },
23890
24601
  ...factType !== void 0 && { factType }
23891
24602
  };
23892
- const outcome = await options.write(input);
23893
- await notifyWritten(options, input, outcome);
23894
- return describeWriteOutcome(outcome);
24603
+ const outcome2 = await options.write(input);
24604
+ await notifyWritten(options, input, outcome2);
24605
+ return describeWriteOutcome(outcome2);
23895
24606
  }
23896
24607
  const created = await createVaultMemoryOp(vaultCtx, {
23897
24608
  content,
@@ -24180,10 +24891,10 @@ async function exportMarkdownToPdf(markdown, options) {
24180
24891
  function lineHeightMm(fontSizePt) {
24181
24892
  return ptToMm(fontSizePt) * lineHeight;
24182
24893
  }
24183
- function renderWrappedText(text12, x, maxW, fontSizePt, fontStyle = "normal", fontFamily = "Helvetica") {
24894
+ function renderWrappedText(text13, x, maxW, fontSizePt, fontStyle = "normal", fontFamily = "Helvetica") {
24184
24895
  doc.setFont(fontFamily, fontStyle);
24185
24896
  doc.setFontSize(fontSizePt);
24186
- const lines = doc.splitTextToSize(text12, maxW);
24897
+ const lines = doc.splitTextToSize(text13, maxW);
24187
24898
  const lh = lineHeightMm(fontSizePt);
24188
24899
  for (const line of lines) {
24189
24900
  ensureSpace(lh);
@@ -24265,10 +24976,10 @@ async function exportMarkdownToPdf(markdown, options) {
24265
24976
  const lh = lineHeightMm(opts.fontSize);
24266
24977
  for (let i = 0; i < items.length; i++) {
24267
24978
  const prefix = ordered ? `${(listToken.start || 1) + i}. ` : "\u2022 ";
24268
- const text12 = tokensToPlainText(items[i].tokens);
24979
+ const text13 = tokensToPlainText(items[i].tokens);
24269
24980
  ensureSpace(lh);
24270
24981
  doc.text(prefix, opts.margins.left, cursorY);
24271
- const listLines = doc.splitTextToSize(text12, itemW);
24982
+ const listLines = doc.splitTextToSize(text13, itemW);
24272
24983
  for (const line of listLines) {
24273
24984
  ensureSpace(lh);
24274
24985
  doc.text(line, indentX, cursorY);
@@ -24280,12 +24991,12 @@ async function exportMarkdownToPdf(markdown, options) {
24280
24991
  }
24281
24992
  case "blockquote": {
24282
24993
  const bqToken = token;
24283
- const text12 = tokensToPlainText(bqToken.tokens ?? []);
24994
+ const text13 = tokensToPlainText(bqToken.tokens ?? []);
24284
24995
  const indentX = opts.margins.left + SPACING.QUOTE_INDENT;
24285
24996
  const quoteW = cw - SPACING.QUOTE_INSET;
24286
24997
  doc.setFont("Helvetica", "italic");
24287
24998
  doc.setFontSize(opts.fontSize);
24288
- const bqLines = doc.splitTextToSize(text12, quoteW);
24999
+ const bqLines = doc.splitTextToSize(text13, quoteW);
24289
25000
  const lh = lineHeightMm(opts.fontSize);
24290
25001
  const blockH = bqLines.length * lh;
24291
25002
  ensureSpace(Math.min(blockH, 20));
@@ -24321,8 +25032,8 @@ async function exportMarkdownToPdf(markdown, options) {
24321
25032
  doc.setFont("Helvetica", fontStyle);
24322
25033
  doc.setFontSize(tableFontSize);
24323
25034
  const cellLines = cells.map((cell) => {
24324
- const text12 = tokensToPlainText(cell.tokens);
24325
- return doc.splitTextToSize(text12, cellContentW);
25035
+ const text13 = tokensToPlainText(cell.tokens);
25036
+ return doc.splitTextToSize(text13, cellContentW);
24326
25037
  });
24327
25038
  const maxLines = Math.max(1, ...cellLines.map((l) => l.length));
24328
25039
  ensureSpace(maxLines * lh + SPACING.SM);
@@ -24549,13 +25260,13 @@ async function withPdfDocument(pdfDataUrl, fn) {
24549
25260
  }
24550
25261
  }
24551
25262
  function joinPdfTextItems(items) {
24552
- let text12 = "";
25263
+ let text13 = "";
24553
25264
  for (const item of items) {
24554
25265
  if (!("str" in item)) continue;
24555
25266
  const { str, hasEOL } = item;
24556
- text12 += str + (hasEOL ? "\n" : " ");
25267
+ text13 += str + (hasEOL ? "\n" : " ");
24557
25268
  }
24558
- return text12.replace(/[ \t]+\n/g, "\n").trim();
25269
+ return text13.replace(/[ \t]+\n/g, "\n").trim();
24559
25270
  }
24560
25271
  function computeRenderScale(width, height) {
24561
25272
  const longest = Math.max(width, height);
@@ -24575,7 +25286,7 @@ async function extractPdfPageTexts(pdfDataUrl) {
24575
25286
  }
24576
25287
  async function extractTextFromPdf(pdfDataUrl) {
24577
25288
  const pageTexts = await extractPdfPageTexts(pdfDataUrl);
24578
- return pageTexts.filter((text12) => text12.trim()).join("\n\n");
25289
+ return pageTexts.filter((text13) => text13.trim()).join("\n\n");
24579
25290
  }
24580
25291
  async function renderPdfPages(pdfDataUrl, maxPages, pageNumbers) {
24581
25292
  return withPdfDocument(pdfDataUrl, async (pdf) => {
@@ -24617,8 +25328,8 @@ var MAX_IMAGE_PAGES = 20;
24617
25328
  var MIN_PAGE_TEXT_CHARS = 20;
24618
25329
  function selectPdfImagePages(pageTexts, maxImagePages = MAX_IMAGE_PAGES) {
24619
25330
  const needImage = [];
24620
- pageTexts.forEach((text12, index) => {
24621
- if (text12.trim().length < MIN_PAGE_TEXT_CHARS) needImage.push(index + 1);
25331
+ pageTexts.forEach((text13, index) => {
25332
+ if (text13.trim().length < MIN_PAGE_TEXT_CHARS) needImage.push(index + 1);
24622
25333
  });
24623
25334
  const limit = Math.max(0, maxImagePages);
24624
25335
  return { rendered: needImage.slice(0, limit), omitted: needImage.slice(limit) };
@@ -24677,10 +25388,10 @@ var PdfProcessor = class {
24677
25388
  textError
24678
25389
  );
24679
25390
  }
24680
- const text12 = (pageTexts ?? []).filter((t) => t.trim()).join("\n\n");
25391
+ const text13 = (pageTexts ?? []).filter((t) => t.trim()).join("\n\n");
24681
25392
  const { rendered, omitted } = pageTexts ? selectPdfImagePages(pageTexts) : { rendered: [], omitted: [] };
24682
25393
  if (pageTexts && rendered.length === 0 && omitted.length === 0) {
24683
- return text12.trim() ? { extractedText: text12, format: "plain" } : null;
25394
+ return text13.trim() ? { extractedText: text13, format: "plain" } : null;
24684
25395
  }
24685
25396
  let renderedPages;
24686
25397
  let pageCount = pageTexts?.length;
@@ -24693,7 +25404,7 @@ var PdfProcessor = class {
24693
25404
  pageCount = result.pageCount;
24694
25405
  }
24695
25406
  } catch (imageError) {
24696
- if (!text12.trim()) {
25407
+ if (!text13.trim()) {
24697
25408
  logger.error("[PdfProcessor] Image conversion also failed:", imageError);
24698
25409
  throw imageError;
24699
25410
  }
@@ -24705,7 +25416,7 @@ var PdfProcessor = class {
24705
25416
  const included = new Set(imagePages);
24706
25417
  const needImage = pageTexts ? [...rendered, ...omitted] : Array.from({ length: pageCount ?? 0 }, (_, i) => i + 1);
24707
25418
  const omittedPages = needImage.filter((n) => !included.has(n)).sort((a, b) => a - b);
24708
- if (images.length === 0 && !text12.trim()) {
25419
+ if (images.length === 0 && !text13.trim()) {
24709
25420
  logger.warn("[PdfProcessor] Image conversion also returned empty");
24710
25421
  return null;
24711
25422
  }
@@ -24714,9 +25425,9 @@ var PdfProcessor = class {
24714
25425
  );
24715
25426
  const imageNote = buildPdfImageNote(file.name, imagePages, omittedPages, pageCount);
24716
25427
  return {
24717
- extractedText: text12.trim() ? `${imageNote}
25428
+ extractedText: text13.trim() ? `${imageNote}
24718
25429
 
24719
- ${text12}` : imageNote,
25430
+ ${text13}` : imageNote,
24720
25431
  format: "plain",
24721
25432
  imageDataUrls: images.length > 0 ? images : void 0,
24722
25433
  metadata: {
@@ -24878,16 +25589,16 @@ var TextProcessor = class {
24878
25589
  async process(file) {
24879
25590
  try {
24880
25591
  const arrayBuffer = await dataUrlToArrayBuffer(file.dataUrl);
24881
- const text12 = decodeText(new Uint8Array(arrayBuffer));
24882
- if (!text12.trim()) {
25592
+ const text13 = decodeText(new Uint8Array(arrayBuffer));
25593
+ if (!text13.trim()) {
24883
25594
  return null;
24884
25595
  }
24885
25596
  return {
24886
- extractedText: text12,
25597
+ extractedText: text13,
24887
25598
  format: this.resolveFormat(file),
24888
25599
  metadata: {
24889
25600
  byteLength: arrayBuffer.byteLength,
24890
- characterCount: text12.length
25601
+ characterCount: text13.length
24891
25602
  }
24892
25603
  };
24893
25604
  } catch (error) {
@@ -24948,8 +25659,8 @@ var WordProcessor = class {
24948
25659
  /**
24949
25660
  * Count words in text
24950
25661
  */
24951
- countWords(text12) {
24952
- return text12.split(/\s+/).filter((w) => w.length > 0).length;
25662
+ countWords(text13) {
25663
+ return text13.split(/\s+/).filter((w) => w.length > 0).length;
24953
25664
  }
24954
25665
  };
24955
25666
 
@@ -25186,13 +25897,13 @@ function truncationMarker2(kept, total, fileName) {
25186
25897
  return `
25187
25898
  [truncated: showing the first ${kept} of ${total} characters of ${fileName}]`;
25188
25899
  }
25189
- function truncateText(text12, limit, fileName) {
25190
- if (text12.length <= limit) return { text: text12, truncated: false };
25900
+ function truncateText(text13, limit, fileName) {
25901
+ if (text13.length <= limit) return { text: text13, truncated: false };
25191
25902
  let end = Math.max(0, limit);
25192
- const code = text12.charCodeAt(end - 1);
25903
+ const code = text13.charCodeAt(end - 1);
25193
25904
  if (end > 0 && code >= 55296 && code <= 56319) end--;
25194
25905
  return {
25195
- text: `${text12.slice(0, end)}${truncationMarker2(end, text12.length, fileName)}`,
25906
+ text: `${text13.slice(0, end)}${truncationMarker2(end, text13.length, fileName)}`,
25196
25907
  truncated: true
25197
25908
  };
25198
25909
  }
@@ -25356,13 +26067,13 @@ async function preprocessFiles(files, options = {}) {
25356
26067
  Math.max(0, MAX_TOTAL_IMAGES - allImageUrls.length)
25357
26068
  );
25358
26069
  allImageUrls.push(...images.slice(0, keptImages));
25359
- const text12 = rewriteImageNote(result, file.name, keptImages);
25360
- const fitsWhole = text12.length <= Math.min(maxExtractedCharsPerFile, remaining);
25361
- const limit = fitsWhole ? text12.length : Math.min(
26070
+ const text13 = rewriteImageNote(result, file.name, keptImages);
26071
+ const fitsWhole = text13.length <= Math.min(maxExtractedCharsPerFile, remaining);
26072
+ const limit = fitsWhole ? text13.length : Math.min(
25362
26073
  maxExtractedCharsPerFile,
25363
- remaining - truncationMarker2(text12.length, text12.length, file.name).length
26074
+ remaining - truncationMarker2(text13.length, text13.length, file.name).length
25364
26075
  );
25365
- const capped = truncateText(text12, Math.max(0, limit), file.name);
26076
+ const capped = truncateText(text13, Math.max(0, limit), file.name);
25366
26077
  const formattedContent = formatExtractedContent(file.name, capped.text, result.format);
25367
26078
  totalChars += separatorLength + formattedContent.length;
25368
26079
  extractedTexts.push(formattedContent);
@@ -25604,11 +26315,11 @@ function createGetAuthenticatedUserTool(getAccessToken, requestAccess) {
25604
26315
  };
25605
26316
  }
25606
26317
  var MAX_RESPONSE_SIZE = 1e5;
25607
- function truncate(text12, maxLen) {
25608
- if (text12.length <= maxLen) return text12;
25609
- return text12.slice(0, maxLen) + `
26318
+ function truncate(text13, maxLen) {
26319
+ if (text13.length <= maxLen) return text13;
26320
+ return text13.slice(0, maxLen) + `
25610
26321
 
25611
- ... (truncated, ${text12.length - maxLen} characters omitted)`;
26322
+ ... (truncated, ${text13.length - maxLen} characters omitted)`;
25612
26323
  }
25613
26324
  function createGitHubApiTool(getAccessToken, requestAccess) {
25614
26325
  return {
@@ -25656,16 +26367,16 @@ IMPORTANT: For write operations (POST, PUT, PATCH, DELETE), always confirm with
25656
26367
  method,
25657
26368
  body: body ? JSON.stringify(body) : void 0
25658
26369
  });
25659
- const text12 = await resp.text();
26370
+ const text13 = await resp.text();
25660
26371
  if (!resp.ok) {
25661
- return `Error: GitHub API ${method} ${path} returned ${resp.status}: ${truncate(text12, 500)}`;
26372
+ return `Error: GitHub API ${method} ${path} returned ${resp.status}: ${truncate(text13, 500)}`;
25662
26373
  }
25663
26374
  try {
25664
- const data = JSON.parse(text12);
26375
+ const data = JSON.parse(text13);
25665
26376
  const json4 = JSON.stringify(data);
25666
26377
  return truncate(json4, MAX_RESPONSE_SIZE);
25667
26378
  } catch {
25668
- return truncate(text12, MAX_RESPONSE_SIZE);
26379
+ return truncate(text13, MAX_RESPONSE_SIZE);
25669
26380
  }
25670
26381
  } catch (err) {
25671
26382
  if (err instanceof DOMException && err.name === "AbortError") {
@@ -26327,10 +27038,10 @@ function formatObjectAttr(obj) {
26327
27038
  });
26328
27039
  return `{ ${entries.join(", ")} }`;
26329
27040
  }
26330
- function isSafeJsxText(text12) {
26331
- if (/[<>{}&]/.test(text12)) return false;
26332
- if (/\n/.test(text12)) return false;
26333
- if (/^\s|\s$/.test(text12)) return false;
27041
+ function isSafeJsxText(text13) {
27042
+ if (/[<>{}&]/.test(text13)) return false;
27043
+ if (/\n/.test(text13)) return false;
27044
+ if (/^\s|\s$/.test(text13)) return false;
26334
27045
  return true;
26335
27046
  }
26336
27047
  function getId(node) {
@@ -29914,9 +30625,9 @@ New lines of conversation:
29914
30625
  {new_lines}
29915
30626
 
29916
30627
  New summary:`;
29917
- function estimateTokens(text12) {
29918
- if (!text12) return 0;
29919
- return Math.ceil(text12.length / 4);
30628
+ function estimateTokens(text13) {
30629
+ if (!text13) return 0;
30630
+ return Math.ceil(text13.length / 4);
29920
30631
  }
29921
30632
  var PER_MESSAGE_OVERHEAD_TOKENS = 4;
29922
30633
  var MAX_MESSAGES_PER_SUMMARIZATION = 20;
@@ -29976,14 +30687,14 @@ function splitMessagesAtThreshold(messages, tokenThreshold, minWindowMessages) {
29976
30687
  }
29977
30688
  async function redactSummaryPrompt(prompt, redactor, onPiiRedacted) {
29978
30689
  if (!redactor) return prompt;
29979
- const { text: text12, matches } = await redactor.redactTextAsync(prompt);
30690
+ const { text: text13, matches } = await redactor.redactTextAsync(prompt);
29980
30691
  if (matches.length > 0 && onPiiRedacted) {
29981
30692
  try {
29982
30693
  onPiiRedacted(matches);
29983
30694
  } catch {
29984
30695
  }
29985
30696
  }
29986
- return text12;
30697
+ return text13;
29987
30698
  }
29988
30699
  async function progressiveSummarize(options) {
29989
30700
  const {
@@ -30296,14 +31007,14 @@ var MaskScopedEmbeddingCache = class extends Map {
30296
31007
  this.inner = inner;
30297
31008
  this.masked = masked;
30298
31009
  }
30299
- key(text12) {
30300
- return `${this.masked ? "m" : "r"}:${text12}`;
31010
+ key(text13) {
31011
+ return `${this.masked ? "m" : "r"}:${text13}`;
30301
31012
  }
30302
- get(text12) {
30303
- return this.inner.get(this.key(text12));
31013
+ get(text13) {
31014
+ return this.inner.get(this.key(text13));
30304
31015
  }
30305
- set(text12, value) {
30306
- this.inner.set(this.key(text12), value);
31016
+ set(text13, value) {
31017
+ this.inner.set(this.key(text13), value);
30307
31018
  return this;
30308
31019
  }
30309
31020
  };
@@ -30953,11 +31664,11 @@ function useChatStorage(options) {
30953
31664
  [piiRedaction, currentConversationId]
30954
31665
  );
30955
31666
  const maskForEmbedding = useCallback5(
30956
- (text12) => isPiiRedactor(resolvedPiiRedaction) ? resolvedPiiRedaction.maskText(text12) : text12,
31667
+ (text13) => isPiiRedactor(resolvedPiiRedaction) ? resolvedPiiRedaction.maskText(text13) : text13,
30957
31668
  [resolvedPiiRedaction]
30958
31669
  );
30959
31670
  const maskEmbeddingInput = useMemo4(
30960
- () => isPiiRedactor(resolvedPiiRedaction) ? (text12) => resolvedPiiRedaction.maskText(text12) : void 0,
31671
+ () => isPiiRedactor(resolvedPiiRedaction) ? (text13) => resolvedPiiRedaction.maskText(text13) : void 0,
30961
31672
  [resolvedPiiRedaction]
30962
31673
  );
30963
31674
  const vaultEmbeddingOptions = useMemo4(
@@ -31688,7 +32399,7 @@ function useChatStorage(options) {
31688
32399
  return {
31689
32400
  callRedactor: redactor,
31690
32401
  callPiiRedaction: forInnerSend,
31691
- maskForCall: (text12) => redactor ? redactor.maskText(text12) : text12
32402
+ maskForCall: (text13) => redactor ? redactor.maskText(text13) : text13
31692
32403
  };
31693
32404
  };
31694
32405
  const resolveThoughtProcess = () => finalizeThoughtProcess(getThoughtProcess?.() || thoughtProcess);
@@ -34029,13 +34740,13 @@ function useOCR() {
34029
34740
  const result = await Tesseract.recognize(image, language);
34030
34741
  pageTexts.push(result.data.text);
34031
34742
  }
34032
- const text12 = pageTexts.join("\n\n");
34033
- if (!text12.trim()) {
34743
+ const text13 = pageTexts.join("\n\n");
34744
+ if (!text13.trim()) {
34034
34745
  getLogger().warn(`No text found in OCR source ${filename || "unknown"}`);
34035
34746
  return null;
34036
34747
  }
34037
34748
  return `[Context from OCR attachment ${filename || "unknown"}]:
34038
- ${text12}`;
34749
+ ${text13}`;
34039
34750
  } catch (err) {
34040
34751
  getLogger().error(`Failed to process OCR for ${file.filename || "unknown"}:`, err);
34041
34752
  return null;
@@ -34078,13 +34789,13 @@ function usePdf() {
34078
34789
  const contexts = await Promise.all(
34079
34790
  pdfFiles.map(async (file) => {
34080
34791
  try {
34081
- const text12 = await extractTextFromPdf(file.url);
34082
- if (!text12.trim()) {
34792
+ const text13 = await extractTextFromPdf(file.url);
34793
+ if (!text13.trim()) {
34083
34794
  getLogger().warn(`No text found in PDF ${file.filename}`);
34084
34795
  return null;
34085
34796
  }
34086
34797
  return `[Context from PDF attachment ${file.filename}]:
34087
- ${text12}`;
34798
+ ${text13}`;
34088
34799
  } catch (err) {
34089
34800
  getLogger().error(`Failed to process PDF ${file.filename}:`, err);
34090
34801
  return null;
@@ -35614,14 +36325,14 @@ function useVoice(options) {
35614
36325
  recognition.interimResults = false;
35615
36326
  recognition.lang = options?.language ?? "";
35616
36327
  recognition.onresult = (event) => {
35617
- let text12 = "";
36328
+ let text13 = "";
35618
36329
  for (let i = 0; i < event.results.length; i++) {
35619
36330
  const result = event.results[i];
35620
36331
  if (result && result.isFinal && result[0]) {
35621
- text12 += result[0].transcript + " ";
36332
+ text13 += result[0].transcript + " ";
35622
36333
  }
35623
36334
  }
35624
- nativeTextRef.current = text12.trim();
36335
+ nativeTextRef.current = text13.trim();
35625
36336
  };
35626
36337
  recognition.onerror = (event) => {
35627
36338
  if (event.error !== "aborted" && event.error !== "no-speech") {
@@ -35924,6 +36635,7 @@ export {
35924
36635
  MEMORY_KINDS,
35925
36636
  MEMORY_LEVELS,
35926
36637
  MemoryEntity as MemoryEntityModel,
36638
+ MemoryKeyError,
35927
36639
  MemoryLevelError,
35928
36640
  NEVER_TTL_MS,
35929
36641
  NODE_BUDGET,
@@ -35938,6 +36650,7 @@ export {
35938
36650
  RECALL_MAX_LIMIT,
35939
36651
  RECALL_TOOL_NAME,
35940
36652
  RemoteMemoryError,
36653
+ RemoteMemoryPartialCreateError,
35941
36654
  RerankerUnavailableError,
35942
36655
  SDK_SCHEMA_VERSION,
35943
36656
  SERVER_TOOL_DEPENDENCY_SETS,
@@ -36031,6 +36744,7 @@ export {
36031
36744
  createRecallTool,
36032
36745
  createRemoteMemoryPersistence,
36033
36746
  createRemoteMemoryPipeline,
36747
+ createRemoteMemoryStore,
36034
36748
  createSavedToolOp,
36035
36749
  createServerToolsFilter,
36036
36750
  createStockPricePreProcessor,
@@ -36062,6 +36776,7 @@ export {
36062
36776
  deleteVaultMemoryOp,
36063
36777
  dequantizeEmbedding,
36064
36778
  deriveKeyFromSignatureBytes,
36779
+ deriveMemoryKeyRing,
36065
36780
  eagerEmbedContent,
36066
36781
  embedAllMessages,
36067
36782
  embedMessage,
@@ -36081,6 +36796,7 @@ export {
36081
36796
  extractFacts,
36082
36797
  extractFileIds,
36083
36798
  extractMCPImageUrls,
36799
+ extractReservationReceipts,
36084
36800
  fileExists,
36085
36801
  findById,
36086
36802
  findMatchingTools,
@@ -36201,6 +36917,7 @@ export {
36201
36917
  linkMemoryEntitiesOp,
36202
36918
  maskScopedEmbeddingCache,
36203
36919
  mediaToStored,
36920
+ memoryCipher,
36204
36921
  migrateCalendarToken,
36205
36922
  migrateDisplayResult,
36206
36923
  migrateDriveToken,
@@ -36222,6 +36939,7 @@ export {
36222
36939
  rankProfileCandidates,
36223
36940
  readEncryptedFile,
36224
36941
  recall,
36942
+ reencryptMemoryField,
36225
36943
  reflect,
36226
36944
  refreshCalendarToken,
36227
36945
  refreshDriveToken,