@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.
- package/dist/expo/index.cjs +945 -219
- package/dist/expo/index.d.mts +103 -1
- package/dist/expo/index.d.ts +103 -1
- package/dist/expo/index.mjs +945 -227
- package/dist/index.cjs +150 -74
- package/dist/index.d.mts +30 -1
- package/dist/index.d.ts +30 -1
- package/dist/index.mjs +149 -74
- package/dist/react/index.cjs +980 -254
- package/dist/react/index.d.mts +103 -1
- package/dist/react/index.d.ts +103 -1
- package/dist/react/index.mjs +980 -262
- package/dist/server/index.cjs +43 -1
- package/dist/server/index.mjs +43 -1
- package/dist/tools/index.cjs +74 -12
- package/dist/tools/index.d.mts +16 -3
- package/dist/tools/index.d.ts +16 -3
- package/dist/tools/index.mjs +73 -12
- package/package.json +1 -1
package/dist/expo/index.mjs
CHANGED
|
@@ -1602,8 +1602,8 @@ var ATTACHED_FILES_OPEN_TAG = "<attached_files>";
|
|
|
1602
1602
|
var ATTACHED_FILES_CLOSE_TAG = "</attached_files>";
|
|
1603
1603
|
var ATTACHED_FILES_PREFIX = `${ATTACHED_FILES_OPEN_TAG}
|
|
1604
1604
|
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.`;
|
|
1605
|
-
function isAttachedFilesText(
|
|
1606
|
-
return typeof
|
|
1605
|
+
function isAttachedFilesText(text13) {
|
|
1606
|
+
return typeof text13 === "string" && text13.startsWith(ATTACHED_FILES_PREFIX) && text13.endsWith(ATTACHED_FILES_CLOSE_TAG);
|
|
1607
1607
|
}
|
|
1608
1608
|
function buildAttachedFilesText(fileContext) {
|
|
1609
1609
|
return `${ATTACHED_FILES_PREFIX}
|
|
@@ -2358,14 +2358,14 @@ async function updateMessageEmbeddingOp(ctx, uniqueId, vector, embeddingModel) {
|
|
|
2358
2358
|
});
|
|
2359
2359
|
return messageToStored(message, ctx.walletAddress, ctx.signMessage, ctx.embeddedWalletSigner);
|
|
2360
2360
|
}
|
|
2361
|
-
async function updateMessageChunksOp(ctx, uniqueId,
|
|
2361
|
+
async function updateMessageChunksOp(ctx, uniqueId, chunks2, embeddingModel) {
|
|
2362
2362
|
let message;
|
|
2363
2363
|
try {
|
|
2364
2364
|
message = await ctx.messagesCollection.find(uniqueId);
|
|
2365
2365
|
} catch {
|
|
2366
2366
|
return null;
|
|
2367
2367
|
}
|
|
2368
|
-
const storedChunks =
|
|
2368
|
+
const storedChunks = chunks2.map(({ text: _text, ...rest }) => rest);
|
|
2369
2369
|
await ctx.database.write(async () => {
|
|
2370
2370
|
await message.update((msg) => {
|
|
2371
2371
|
msg._setRaw("chunks", JSON.stringify(storedChunks));
|
|
@@ -2409,12 +2409,12 @@ async function stripLegacyChunkTextOp(ctx) {
|
|
|
2409
2409
|
const messages = await ctx.messagesCollection.query(Q.where("id", Q.oneOf(changedIds))).fetch();
|
|
2410
2410
|
const updates = messages.flatMap((message) => {
|
|
2411
2411
|
const raw = message._raw;
|
|
2412
|
-
const
|
|
2413
|
-
if (!
|
|
2412
|
+
const chunks2 = chunksWithoutText(raw.chunks);
|
|
2413
|
+
if (!chunks2) return [];
|
|
2414
2414
|
const updatedAt = raw.updated_at;
|
|
2415
2415
|
return [
|
|
2416
2416
|
message.prepareUpdate((msg) => {
|
|
2417
|
-
msg._setRaw("chunks", JSON.stringify(
|
|
2417
|
+
msg._setRaw("chunks", JSON.stringify(chunks2));
|
|
2418
2418
|
msg._setRaw("updated_at", updatedAt);
|
|
2419
2419
|
})
|
|
2420
2420
|
];
|
|
@@ -2575,15 +2575,15 @@ async function searchChunksOp(ctx, queryVector, options) {
|
|
|
2575
2575
|
}
|
|
2576
2576
|
continue;
|
|
2577
2577
|
}
|
|
2578
|
-
const
|
|
2579
|
-
if (
|
|
2580
|
-
const vectors =
|
|
2578
|
+
const chunks2 = await readRawJsonField(message, "chunks", ctx.walletAddress);
|
|
2579
|
+
if (chunks2 && chunks2.length > 0) {
|
|
2580
|
+
const vectors = chunks2.map(
|
|
2581
2581
|
(chunk) => decodeChunkVector(chunk.vector, () => {
|
|
2582
2582
|
unreadableVectors++;
|
|
2583
2583
|
})
|
|
2584
2584
|
);
|
|
2585
2585
|
chunkCache?.set(message.id, { version, chunks: vectors });
|
|
2586
|
-
for (let ci = 0; ci <
|
|
2586
|
+
for (let ci = 0; ci < chunks2.length; ci++) {
|
|
2587
2587
|
const vec = vectors[ci];
|
|
2588
2588
|
if (vec.length === 0) continue;
|
|
2589
2589
|
const similarity = cosineSimilarity(queryVector, vec);
|
|
@@ -2591,7 +2591,7 @@ async function searchChunksOp(ctx, queryVector, options) {
|
|
|
2591
2591
|
candidates.push({
|
|
2592
2592
|
message,
|
|
2593
2593
|
similarity,
|
|
2594
|
-
chunkTextSource: { kind: "chunk", chunk:
|
|
2594
|
+
chunkTextSource: { kind: "chunk", chunk: chunks2[ci], siblings: chunks2 }
|
|
2595
2595
|
});
|
|
2596
2596
|
}
|
|
2597
2597
|
}
|
|
@@ -2704,49 +2704,49 @@ function makeSyntheticStoredConversation(opts, defaultTitle) {
|
|
|
2704
2704
|
var DEFAULT_CHUNK_SIZE = 400;
|
|
2705
2705
|
var DEFAULT_CHUNK_OVERLAP = 50;
|
|
2706
2706
|
var DEFAULT_MIN_CHUNK_SIZE = 50;
|
|
2707
|
-
function splitIntoSentences(
|
|
2707
|
+
function splitIntoSentences(text13) {
|
|
2708
2708
|
const sentenceRegex = /[.!?]+[\s"')}\]]*(?=\s|$)/g;
|
|
2709
2709
|
const sentences = [];
|
|
2710
2710
|
let lastIndex = 0;
|
|
2711
2711
|
let match;
|
|
2712
|
-
while ((match = sentenceRegex.exec(
|
|
2712
|
+
while ((match = sentenceRegex.exec(text13)) !== null) {
|
|
2713
2713
|
const endIndex = match.index + match[0].length;
|
|
2714
|
-
const sentence =
|
|
2714
|
+
const sentence = text13.slice(lastIndex, endIndex).trim();
|
|
2715
2715
|
if (sentence) {
|
|
2716
2716
|
sentences.push(sentence);
|
|
2717
2717
|
}
|
|
2718
2718
|
lastIndex = endIndex;
|
|
2719
2719
|
}
|
|
2720
|
-
const remaining =
|
|
2720
|
+
const remaining = text13.slice(lastIndex).trim();
|
|
2721
2721
|
if (remaining) {
|
|
2722
2722
|
sentences.push(remaining);
|
|
2723
2723
|
}
|
|
2724
2724
|
return sentences;
|
|
2725
2725
|
}
|
|
2726
|
-
function chunkText(
|
|
2726
|
+
function chunkText(text13, options) {
|
|
2727
2727
|
const {
|
|
2728
2728
|
chunkSize = DEFAULT_CHUNK_SIZE,
|
|
2729
2729
|
chunkOverlap: requestedOverlap = DEFAULT_CHUNK_OVERLAP,
|
|
2730
2730
|
minChunkSize = DEFAULT_MIN_CHUNK_SIZE
|
|
2731
2731
|
} = options ?? {};
|
|
2732
2732
|
const chunkOverlap = Math.min(requestedOverlap, chunkSize - 1);
|
|
2733
|
-
if (
|
|
2733
|
+
if (text13.length <= chunkSize) {
|
|
2734
2734
|
return [
|
|
2735
2735
|
{
|
|
2736
|
-
text:
|
|
2736
|
+
text: text13.trim(),
|
|
2737
2737
|
startOffset: 0,
|
|
2738
|
-
endOffset:
|
|
2738
|
+
endOffset: text13.length
|
|
2739
2739
|
}
|
|
2740
2740
|
];
|
|
2741
2741
|
}
|
|
2742
|
-
const sentences = splitIntoSentences(
|
|
2743
|
-
const
|
|
2742
|
+
const sentences = splitIntoSentences(text13);
|
|
2743
|
+
const chunks2 = [];
|
|
2744
2744
|
let currentChunkSentences = [];
|
|
2745
2745
|
let currentChunkStart = 0;
|
|
2746
2746
|
let currentOffset = 0;
|
|
2747
2747
|
for (let i = 0; i < sentences.length; i++) {
|
|
2748
2748
|
const sentence = sentences[i];
|
|
2749
|
-
let sentenceStart =
|
|
2749
|
+
let sentenceStart = text13.indexOf(sentence, currentOffset);
|
|
2750
2750
|
if (sentenceStart === -1) {
|
|
2751
2751
|
sentenceStart = currentOffset;
|
|
2752
2752
|
}
|
|
@@ -2754,7 +2754,7 @@ function chunkText(text12, options) {
|
|
|
2754
2754
|
if (sentence.length > chunkSize) {
|
|
2755
2755
|
if (currentChunkSentences.length > 0) {
|
|
2756
2756
|
const chunkText2 = currentChunkSentences.join(" ");
|
|
2757
|
-
|
|
2757
|
+
chunks2.push({
|
|
2758
2758
|
text: chunkText2,
|
|
2759
2759
|
startOffset: currentChunkStart,
|
|
2760
2760
|
endOffset: currentOffset
|
|
@@ -2765,7 +2765,7 @@ function chunkText(text12, options) {
|
|
|
2765
2765
|
const chunkEnd = Math.min(j + chunkSize, sentence.length);
|
|
2766
2766
|
const chunk = sentence.slice(j, chunkEnd);
|
|
2767
2767
|
if (chunk.length >= minChunkSize) {
|
|
2768
|
-
|
|
2768
|
+
chunks2.push({
|
|
2769
2769
|
text: chunk,
|
|
2770
2770
|
startOffset: sentenceStart + j,
|
|
2771
2771
|
endOffset: sentenceStart + chunkEnd
|
|
@@ -2779,7 +2779,7 @@ function chunkText(text12, options) {
|
|
|
2779
2779
|
const currentText = currentChunkSentences.join(" ");
|
|
2780
2780
|
const potentialLength = currentText.length + (currentText ? 1 : 0) + sentence.length;
|
|
2781
2781
|
if (potentialLength > chunkSize && currentChunkSentences.length > 0) {
|
|
2782
|
-
|
|
2782
|
+
chunks2.push({
|
|
2783
2783
|
text: currentText,
|
|
2784
2784
|
startOffset: currentChunkStart,
|
|
2785
2785
|
endOffset: currentOffset
|
|
@@ -2793,7 +2793,7 @@ function chunkText(text12, options) {
|
|
|
2793
2793
|
if (overlapSentences.length > 0) {
|
|
2794
2794
|
currentChunkSentences = [...overlapSentences, sentence];
|
|
2795
2795
|
const overlapText = overlapSentences[0];
|
|
2796
|
-
const overlapStart =
|
|
2796
|
+
const overlapStart = text13.lastIndexOf(overlapText, currentOffset);
|
|
2797
2797
|
currentChunkStart = overlapStart === -1 ? sentenceStart : overlapStart;
|
|
2798
2798
|
} else {
|
|
2799
2799
|
currentChunkSentences = [sentence];
|
|
@@ -2810,26 +2810,26 @@ function chunkText(text12, options) {
|
|
|
2810
2810
|
if (currentChunkSentences.length > 0) {
|
|
2811
2811
|
const chunkText2 = currentChunkSentences.join(" ");
|
|
2812
2812
|
if (chunkText2.length >= minChunkSize) {
|
|
2813
|
-
|
|
2813
|
+
chunks2.push({
|
|
2814
2814
|
text: chunkText2,
|
|
2815
2815
|
startOffset: currentChunkStart,
|
|
2816
|
-
endOffset:
|
|
2816
|
+
endOffset: text13.length
|
|
2817
2817
|
});
|
|
2818
2818
|
}
|
|
2819
2819
|
}
|
|
2820
|
-
if (
|
|
2821
|
-
const trimmedText =
|
|
2820
|
+
if (chunks2.length === 0) {
|
|
2821
|
+
const trimmedText = text13.trim();
|
|
2822
2822
|
if (trimmedText.length > 0) {
|
|
2823
2823
|
return [
|
|
2824
2824
|
{
|
|
2825
2825
|
text: trimmedText,
|
|
2826
2826
|
startOffset: 0,
|
|
2827
|
-
endOffset:
|
|
2827
|
+
endOffset: text13.length
|
|
2828
2828
|
}
|
|
2829
2829
|
];
|
|
2830
2830
|
}
|
|
2831
2831
|
}
|
|
2832
|
-
return
|
|
2832
|
+
return chunks2;
|
|
2833
2833
|
}
|
|
2834
2834
|
function shouldChunkMessage(content, chunkSize = DEFAULT_CHUNK_SIZE) {
|
|
2835
2835
|
return content.length > chunkSize;
|
|
@@ -2901,9 +2901,9 @@ function createSseClient({
|
|
|
2901
2901
|
if (done) break;
|
|
2902
2902
|
buffer += value;
|
|
2903
2903
|
buffer = buffer.replace(/\r\n?/g, "\n");
|
|
2904
|
-
const
|
|
2905
|
-
buffer =
|
|
2906
|
-
for (const chunk of
|
|
2904
|
+
const chunks2 = buffer.split("\n\n");
|
|
2905
|
+
buffer = chunks2.pop() ?? "";
|
|
2906
|
+
for (const chunk of chunks2) {
|
|
2907
2907
|
const lines = chunk.split("\n");
|
|
2908
2908
|
const dataLines = [];
|
|
2909
2909
|
let eventName;
|
|
@@ -3516,8 +3516,8 @@ var createClient = (config = {}) => {
|
|
|
3516
3516
|
data = await response[parseAs]();
|
|
3517
3517
|
break;
|
|
3518
3518
|
case "json": {
|
|
3519
|
-
const
|
|
3520
|
-
data =
|
|
3519
|
+
const text13 = await response.text();
|
|
3520
|
+
data = text13 ? JSON.parse(text13) : {};
|
|
3521
3521
|
break;
|
|
3522
3522
|
}
|
|
3523
3523
|
case "stream":
|
|
@@ -3725,16 +3725,16 @@ function embeddingErrorFrom(response) {
|
|
|
3725
3725
|
const message = typeof response.error === "object" && response.error && "error" in response.error ? response.error.error : "API embedding failed";
|
|
3726
3726
|
return new EmbeddingHttpError(message, response.response?.status);
|
|
3727
3727
|
}
|
|
3728
|
-
async function generateEmbedding(
|
|
3728
|
+
async function generateEmbedding(text13, options) {
|
|
3729
3729
|
const total = options.totalTimeoutMs;
|
|
3730
|
-
if (total === void 0) return embedOne(
|
|
3731
|
-
return withDeadline((signal) => embedOne(
|
|
3730
|
+
if (total === void 0) return embedOne(text13, options, void 0);
|
|
3731
|
+
return withDeadline((signal) => embedOne(text13, options, signal), total, "embedding");
|
|
3732
3732
|
}
|
|
3733
|
-
async function embedOne(
|
|
3733
|
+
async function embedOne(text13, options, outer) {
|
|
3734
3734
|
const { baseUrl = BASE_URL, model, cache } = options;
|
|
3735
3735
|
const timeoutMs = options.timeoutMs ?? DEFAULT_EMBEDDING_REQUEST_TIMEOUT_MS;
|
|
3736
3736
|
if (cache) {
|
|
3737
|
-
const cached = cache.get(
|
|
3737
|
+
const cached = cache.get(text13);
|
|
3738
3738
|
if (cached) return Array.from(cached);
|
|
3739
3739
|
}
|
|
3740
3740
|
const headers = await resolveAuthHeaders(options, outer);
|
|
@@ -3743,7 +3743,7 @@ async function embedOne(text12, options, outer) {
|
|
|
3743
3743
|
(signal) => postApiV1Embeddings({
|
|
3744
3744
|
baseUrl,
|
|
3745
3745
|
body: {
|
|
3746
|
-
input: options.maskInput ? options.maskInput(
|
|
3746
|
+
input: options.maskInput ? options.maskInput(text13) : text13,
|
|
3747
3747
|
model: model ?? DEFAULT_API_EMBEDDING_MODEL
|
|
3748
3748
|
},
|
|
3749
3749
|
headers,
|
|
@@ -3770,7 +3770,7 @@ async function embedOne(text12, options, outer) {
|
|
|
3770
3770
|
}
|
|
3771
3771
|
const f32Embedding = Float32Array.from(embedding);
|
|
3772
3772
|
if (cache) {
|
|
3773
|
-
cache.set(
|
|
3773
|
+
cache.set(text13, f32Embedding);
|
|
3774
3774
|
}
|
|
3775
3775
|
return Array.from(f32Embedding);
|
|
3776
3776
|
}
|
|
@@ -3848,18 +3848,18 @@ async function embedMany(texts, options, outer) {
|
|
|
3848
3848
|
outer
|
|
3849
3849
|
);
|
|
3850
3850
|
} else {
|
|
3851
|
-
const
|
|
3851
|
+
const chunks2 = [];
|
|
3852
3852
|
for (let i = 0; i < uncachedTexts.length; i += chunkSize) {
|
|
3853
|
-
|
|
3853
|
+
chunks2.push(uncachedTexts.slice(i, i + chunkSize));
|
|
3854
3854
|
}
|
|
3855
|
-
const allEmbeddings = new Array(
|
|
3855
|
+
const allEmbeddings = new Array(chunks2.length);
|
|
3856
3856
|
let nextIndex = 0;
|
|
3857
3857
|
const worker = async () => {
|
|
3858
|
-
while (nextIndex <
|
|
3858
|
+
while (nextIndex < chunks2.length) {
|
|
3859
3859
|
if (outer?.aborted) throw outer.reason;
|
|
3860
3860
|
const idx = nextIndex++;
|
|
3861
3861
|
allEmbeddings[idx] = await generateEmbeddingsBatch(
|
|
3862
|
-
|
|
3862
|
+
chunks2[idx],
|
|
3863
3863
|
headers,
|
|
3864
3864
|
baseUrl,
|
|
3865
3865
|
embeddingModel,
|
|
@@ -3871,7 +3871,7 @@ async function embedMany(texts, options, outer) {
|
|
|
3871
3871
|
}
|
|
3872
3872
|
};
|
|
3873
3873
|
const workers = Array.from(
|
|
3874
|
-
{ length: Math.min(DEFAULT_EMBEDDING_BATCH_CONCURRENCY,
|
|
3874
|
+
{ length: Math.min(DEFAULT_EMBEDDING_BATCH_CONCURRENCY, chunks2.length) },
|
|
3875
3875
|
() => worker()
|
|
3876
3876
|
);
|
|
3877
3877
|
await Promise.all(workers);
|
|
@@ -4104,10 +4104,10 @@ var cryptoPriceCentroid = [0.025576787463333337, 0.0017598020599999997, -0.01339
|
|
|
4104
4104
|
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];
|
|
4105
4105
|
|
|
4106
4106
|
// src/lib/chat/preProcessor.ts
|
|
4107
|
-
function wrapAsUserText(prefix,
|
|
4108
|
-
if (!
|
|
4107
|
+
function wrapAsUserText(prefix, text13) {
|
|
4108
|
+
if (!text13 || !text13.trim()) return [];
|
|
4109
4109
|
return [{ role: "user", content: [{ type: "text", text: `${prefix}
|
|
4110
|
-
${
|
|
4110
|
+
${text13}` }] }];
|
|
4111
4111
|
}
|
|
4112
4112
|
|
|
4113
4113
|
// src/lib/chat/cryptoPriceClassifier.ts
|
|
@@ -4146,8 +4146,122 @@ function createCryptoPricePreProcessor(options = {}) {
|
|
|
4146
4146
|
};
|
|
4147
4147
|
}
|
|
4148
4148
|
|
|
4149
|
+
// src/lib/chat/reservationReceipts.ts
|
|
4150
|
+
var ACTIONS = [
|
|
4151
|
+
{
|
|
4152
|
+
kind: "booking",
|
|
4153
|
+
tool: "anuma_book_restaurant",
|
|
4154
|
+
alreadyDone: /^Tool "[^"]*" failed: ALREADY_BOOKED:/
|
|
4155
|
+
},
|
|
4156
|
+
{
|
|
4157
|
+
kind: "cancel",
|
|
4158
|
+
tool: "anuma_cancel_reservation",
|
|
4159
|
+
alreadyDone: /^Tool "[^"]*" failed: ALREADY_CANCELLED:/
|
|
4160
|
+
}
|
|
4161
|
+
];
|
|
4162
|
+
var NOT_AN_ATTEMPT = /^Tool "[^"]*" (has already been called|was already called)/;
|
|
4163
|
+
var BOOKING_OUTCOME_UNKNOWN = /^Tool "[^"]*" failed: BOOKING_OUTCOME_UNKNOWN:/;
|
|
4164
|
+
var CANCEL_OUTCOME_UNKNOWN = "CANCEL_OUTCOME_UNKNOWN";
|
|
4165
|
+
function extractReservationReceipts(toolCallEvents) {
|
|
4166
|
+
const latest = /* @__PURE__ */ new Map();
|
|
4167
|
+
for (const event of toolCallEvents ?? []) {
|
|
4168
|
+
const action = ACTIONS.find((a) => event.name?.endsWith(a.tool));
|
|
4169
|
+
const output = event.output ?? "";
|
|
4170
|
+
if (!action || !output || NOT_AN_ATTEMPT.test(output)) continue;
|
|
4171
|
+
const kept = latest.get(action.kind)?.status;
|
|
4172
|
+
if (kept === "made") continue;
|
|
4173
|
+
const receipt = toReceipt(action, event.arguments ?? "", output);
|
|
4174
|
+
if (kept === "unknown" && receipt.status !== "made") continue;
|
|
4175
|
+
latest.set(action.kind, receipt);
|
|
4176
|
+
}
|
|
4177
|
+
return [...latest.values()];
|
|
4178
|
+
}
|
|
4179
|
+
function toReceipt(action, argumentsJson, output) {
|
|
4180
|
+
const args = parseObject(argumentsJson);
|
|
4181
|
+
const result = parseObject(output);
|
|
4182
|
+
return {
|
|
4183
|
+
kind: action.kind,
|
|
4184
|
+
venueName: text(args.venue_name) ?? "",
|
|
4185
|
+
day: text(args.day) ?? "",
|
|
4186
|
+
time: text(args.time) ?? "",
|
|
4187
|
+
partySize: count(args.party_size),
|
|
4188
|
+
reservationId: text(result.reservation_id) ?? text(args.reservation_id),
|
|
4189
|
+
resyUrl: text(result.reservations_url),
|
|
4190
|
+
feeSummary: text(result.fee_summary),
|
|
4191
|
+
...outcome(action, output, result)
|
|
4192
|
+
};
|
|
4193
|
+
}
|
|
4194
|
+
function outcome(action, output, result) {
|
|
4195
|
+
if (action.alreadyDone.test(output)) return { status: "already_done" };
|
|
4196
|
+
const reason = text(result.error);
|
|
4197
|
+
if (action.kind === "booking") {
|
|
4198
|
+
if (BOOKING_OUTCOME_UNKNOWN.test(output)) return { status: "unknown" };
|
|
4199
|
+
const held = result.success === true || text(result.reservation_id) !== void 0;
|
|
4200
|
+
return held ? { status: "made" } : { status: "not_made", reason };
|
|
4201
|
+
}
|
|
4202
|
+
if (result.error_code === CANCEL_OUTCOME_UNKNOWN) return { status: "unknown", reason };
|
|
4203
|
+
const cancelled = result.success === true && !result.error && !result.error_code;
|
|
4204
|
+
return cancelled ? { status: "made" } : { status: "not_made", reason };
|
|
4205
|
+
}
|
|
4206
|
+
function parseObject(json4) {
|
|
4207
|
+
try {
|
|
4208
|
+
const parsed = JSON.parse(json4);
|
|
4209
|
+
return parsed && typeof parsed === "object" ? parsed : {};
|
|
4210
|
+
} catch {
|
|
4211
|
+
return {};
|
|
4212
|
+
}
|
|
4213
|
+
}
|
|
4214
|
+
function text(value) {
|
|
4215
|
+
if (typeof value === "number") return String(value);
|
|
4216
|
+
return typeof value === "string" && value ? value : void 0;
|
|
4217
|
+
}
|
|
4218
|
+
function count(value) {
|
|
4219
|
+
const n = typeof value === "string" && value.trim() ? Number(value) : value;
|
|
4220
|
+
return typeof n === "number" && Number.isFinite(n) ? n : void 0;
|
|
4221
|
+
}
|
|
4222
|
+
|
|
4149
4223
|
// src/tools/confirmConstants.ts
|
|
4150
4224
|
var CONFIRM_TOOL_NAME = "prompt_user_confirm";
|
|
4225
|
+
var BOOK_RESTAURANT = {
|
|
4226
|
+
tool: "AnumaPaymentsMCP-anuma_book_restaurant",
|
|
4227
|
+
status: "confirmed_not_booked",
|
|
4228
|
+
fields: ["venue_id", "config_id", "party_size", "day", "venue_name", "time"]
|
|
4229
|
+
};
|
|
4230
|
+
var CANCEL_RESERVATION = {
|
|
4231
|
+
tool: "AnumaPaymentsMCP-anuma_cancel_reservation",
|
|
4232
|
+
status: "confirmed_not_cancelled",
|
|
4233
|
+
fields: [
|
|
4234
|
+
"reservation_id",
|
|
4235
|
+
"venue_name",
|
|
4236
|
+
"day",
|
|
4237
|
+
"time",
|
|
4238
|
+
"party_size",
|
|
4239
|
+
"fee_applies",
|
|
4240
|
+
"fee_amount"
|
|
4241
|
+
]
|
|
4242
|
+
};
|
|
4243
|
+
var CONFIRM_REQUIRED_FIELDS = /* @__PURE__ */ new Map([
|
|
4244
|
+
["book_restaurant", BOOK_RESTAURANT],
|
|
4245
|
+
["anuma_book_restaurant", BOOK_RESTAURANT],
|
|
4246
|
+
["anumapaymentsmcp-anuma_book_restaurant", BOOK_RESTAURANT],
|
|
4247
|
+
["cancel_reservation", CANCEL_RESERVATION],
|
|
4248
|
+
["anuma_cancel_reservation", CANCEL_RESERVATION],
|
|
4249
|
+
["anumapaymentsmcp-anuma_cancel_reservation", CANCEL_RESERVATION]
|
|
4250
|
+
]);
|
|
4251
|
+
function confirmRequirement(action) {
|
|
4252
|
+
if (typeof action !== "string") return void 0;
|
|
4253
|
+
return CONFIRM_REQUIRED_FIELDS.get(action.trim().toLowerCase());
|
|
4254
|
+
}
|
|
4255
|
+
function missingConfirmFields(action, parameters) {
|
|
4256
|
+
const requirement = confirmRequirement(action);
|
|
4257
|
+
if (!requirement) return [];
|
|
4258
|
+
const shown = /* @__PURE__ */ new Set();
|
|
4259
|
+
for (const parameter of Array.isArray(parameters) ? parameters : []) {
|
|
4260
|
+
const { name, value } = parameter ?? {};
|
|
4261
|
+
if (typeof name === "string" && typeof value === "string" && value.trim()) shown.add(name);
|
|
4262
|
+
}
|
|
4263
|
+
return requirement.fields.filter((field10) => !shown.has(field10));
|
|
4264
|
+
}
|
|
4151
4265
|
|
|
4152
4266
|
// src/lib/storage/mcpImages.ts
|
|
4153
4267
|
var IMAGE_TOOL_NAMES = /* @__PURE__ */ new Set([
|
|
@@ -6841,13 +6955,13 @@ var StreamSmoother = class {
|
|
|
6841
6955
|
/**
|
|
6842
6956
|
* Add text to the buffer. If smoothing is disabled, passes through immediately.
|
|
6843
6957
|
*/
|
|
6844
|
-
push(
|
|
6845
|
-
if (this.destroyed || !
|
|
6958
|
+
push(text13) {
|
|
6959
|
+
if (this.destroyed || !text13) return;
|
|
6846
6960
|
if (!this.enabled) {
|
|
6847
|
-
this.callback(
|
|
6961
|
+
this.callback(text13);
|
|
6848
6962
|
return;
|
|
6849
6963
|
}
|
|
6850
|
-
this.buffer +=
|
|
6964
|
+
this.buffer += text13;
|
|
6851
6965
|
this.ensureTimer();
|
|
6852
6966
|
}
|
|
6853
6967
|
/**
|
|
@@ -6858,9 +6972,9 @@ var StreamSmoother = class {
|
|
|
6858
6972
|
if (this.destroyed) return;
|
|
6859
6973
|
this.stopTimer();
|
|
6860
6974
|
if (this.buffer.length > 0) {
|
|
6861
|
-
const
|
|
6975
|
+
const text13 = this.buffer;
|
|
6862
6976
|
this.buffer = "";
|
|
6863
|
-
this.callback(
|
|
6977
|
+
this.callback(text13);
|
|
6864
6978
|
}
|
|
6865
6979
|
this.resolveDrain();
|
|
6866
6980
|
}
|
|
@@ -6927,9 +7041,9 @@ var StreamSmoother = class {
|
|
|
6927
7041
|
const currentSpeed = this.getCurrentSpeed(elapsed);
|
|
6928
7042
|
const charsThisTick = Math.max(1, Math.round(currentSpeed * (TICK_INTERVAL / 1e3)));
|
|
6929
7043
|
const toRelease = Math.min(charsThisTick, this.buffer.length);
|
|
6930
|
-
const
|
|
7044
|
+
const text13 = this.buffer.slice(0, toRelease);
|
|
6931
7045
|
this.buffer = this.buffer.slice(toRelease);
|
|
6932
|
-
this.callback(
|
|
7046
|
+
this.callback(text13);
|
|
6933
7047
|
if (this.buffer.length === 0) {
|
|
6934
7048
|
this.stopTimer();
|
|
6935
7049
|
this.resolveDrain();
|
|
@@ -7133,6 +7247,7 @@ function getToolName(tool) {
|
|
|
7133
7247
|
}
|
|
7134
7248
|
function toolsAfterConfirmation(apiTools, executionResults) {
|
|
7135
7249
|
const members = /* @__PURE__ */ new Set();
|
|
7250
|
+
let keepConfirm = false;
|
|
7136
7251
|
for (const r of executionResults) {
|
|
7137
7252
|
if (r.name !== CONFIRM_TOOL_NAME) continue;
|
|
7138
7253
|
const answer = r.result;
|
|
@@ -7140,11 +7255,12 @@ function toolsAfterConfirmation(apiTools, executionResults) {
|
|
|
7140
7255
|
const setName = CONFIRMED_ACTION_TOOL_SETS.get(answer.action.trim().toLowerCase());
|
|
7141
7256
|
const set = BUILT_IN_TOOL_SETS.find((s) => s.name === setName);
|
|
7142
7257
|
for (const member of set?.members ?? []) members.add(member);
|
|
7258
|
+
if (missingConfirmFields(answer.action, answer.parameters).length > 0) keepConfirm = true;
|
|
7143
7259
|
}
|
|
7144
7260
|
if (!apiTools.some((t) => members.has(getToolName(t) ?? ""))) return void 0;
|
|
7145
7261
|
return apiTools.filter((t) => {
|
|
7146
7262
|
const name = getToolName(t) ?? "";
|
|
7147
|
-
return members.has(name) || name ===
|
|
7263
|
+
return members.has(name) || name === TOOL_SEARCH_TOOL_NAME || keepConfirm && name === CONFIRM_TOOL_NAME;
|
|
7148
7264
|
});
|
|
7149
7265
|
}
|
|
7150
7266
|
var STREAM_RESUMABLE_HEADER = "X-Stream-Resumable";
|
|
@@ -7350,9 +7466,9 @@ async function runToolLoop(options) {
|
|
|
7350
7466
|
messages = await redactBatch(messages);
|
|
7351
7467
|
if (preProcessors?.length) {
|
|
7352
7468
|
try {
|
|
7353
|
-
const
|
|
7354
|
-
if (
|
|
7355
|
-
const embedding = await generateEmbedding(
|
|
7469
|
+
const text13 = extractLastUserText(messages);
|
|
7470
|
+
if (text13.length > 0) {
|
|
7471
|
+
const embedding = await generateEmbedding(text13, {
|
|
7356
7472
|
apiKey: headers?.["X-API-Key"],
|
|
7357
7473
|
getToken: token ? () => Promise.resolve(token) : void 0,
|
|
7358
7474
|
baseUrl
|
|
@@ -7360,7 +7476,7 @@ async function runToolLoop(options) {
|
|
|
7360
7476
|
const results = await Promise.all(
|
|
7361
7477
|
preProcessors.map(async (p) => {
|
|
7362
7478
|
try {
|
|
7363
|
-
return await p({ prompt:
|
|
7479
|
+
return await p({ prompt: text13, embedding, signal: combinedSignal });
|
|
7364
7480
|
} catch (err) {
|
|
7365
7481
|
console.warn("[runToolLoop] pre-processor failed:", err);
|
|
7366
7482
|
return void 0;
|
|
@@ -7519,11 +7635,11 @@ async function runToolLoop(options) {
|
|
|
7519
7635
|
}
|
|
7520
7636
|
});
|
|
7521
7637
|
accumulator = createStreamAccumulator(model || void 0);
|
|
7522
|
-
contentSmoother = new StreamSmoother((
|
|
7523
|
-
if (emitData) emitData(
|
|
7638
|
+
contentSmoother = new StreamSmoother((text13) => {
|
|
7639
|
+
if (emitData) emitData(text13);
|
|
7524
7640
|
}, smoothing);
|
|
7525
|
-
thinkingSmoother = new StreamSmoother((
|
|
7526
|
-
if (emitThinking) emitThinking(
|
|
7641
|
+
thinkingSmoother = new StreamSmoother((text13) => {
|
|
7642
|
+
if (emitThinking) emitThinking(text13);
|
|
7527
7643
|
}, smoothing);
|
|
7528
7644
|
let chunksEmittedDownstream = false;
|
|
7529
7645
|
try {
|
|
@@ -8028,11 +8144,11 @@ Executing tool: ${toolInfo}
|
|
|
8028
8144
|
}
|
|
8029
8145
|
});
|
|
8030
8146
|
currentAccumulator = createStreamAccumulator(model || void 0);
|
|
8031
|
-
contContentSmoother = new StreamSmoother((
|
|
8032
|
-
if (emitData) emitData(
|
|
8147
|
+
contContentSmoother = new StreamSmoother((text13) => {
|
|
8148
|
+
if (emitData) emitData(text13);
|
|
8033
8149
|
}, smoothing);
|
|
8034
|
-
contThinkingSmoother = new StreamSmoother((
|
|
8035
|
-
if (emitThinking) emitThinking(
|
|
8150
|
+
contThinkingSmoother = new StreamSmoother((text13) => {
|
|
8151
|
+
if (emitThinking) emitThinking(text13);
|
|
8036
8152
|
}, smoothing);
|
|
8037
8153
|
let chunksEmittedDownstream = false;
|
|
8038
8154
|
try {
|
|
@@ -8259,11 +8375,11 @@ async function resumeStream(options) {
|
|
|
8259
8375
|
} = options;
|
|
8260
8376
|
const strategy = getStrategy(handle.apiType);
|
|
8261
8377
|
const accumulator = createStreamAccumulator(handle.model || void 0);
|
|
8262
|
-
const contentSmoother = new StreamSmoother((
|
|
8263
|
-
if (onData) onData(
|
|
8378
|
+
const contentSmoother = new StreamSmoother((text13) => {
|
|
8379
|
+
if (onData) onData(text13);
|
|
8264
8380
|
}, smoothing);
|
|
8265
|
-
const thinkingSmoother = new StreamSmoother((
|
|
8266
|
-
if (onThinking) onThinking(
|
|
8381
|
+
const thinkingSmoother = new StreamSmoother((text13) => {
|
|
8382
|
+
if (onThinking) onThinking(text13);
|
|
8267
8383
|
}, smoothing);
|
|
8268
8384
|
const idleController = new AbortController();
|
|
8269
8385
|
let watchdog;
|
|
@@ -8507,20 +8623,20 @@ function sseFailureMessage(status, statusText, detail = "") {
|
|
|
8507
8623
|
return `SSE failed: ${status} ${statusText}${detail}`;
|
|
8508
8624
|
}
|
|
8509
8625
|
function parseSseChunks(raw, incompleteBuffer) {
|
|
8510
|
-
const
|
|
8511
|
-
const
|
|
8512
|
-
const lines =
|
|
8626
|
+
const chunks2 = [];
|
|
8627
|
+
const text13 = incompleteBuffer + raw;
|
|
8628
|
+
const lines = text13.split("\n");
|
|
8513
8629
|
const remaining = raw.endsWith("\n") ? "" : lines.pop() ?? "";
|
|
8514
8630
|
for (const line of lines) {
|
|
8515
8631
|
if (!line.startsWith("data: ")) continue;
|
|
8516
8632
|
const data = line.substring(6).trim();
|
|
8517
8633
|
if (data === "[DONE]") continue;
|
|
8518
8634
|
try {
|
|
8519
|
-
|
|
8635
|
+
chunks2.push(JSON.parse(data));
|
|
8520
8636
|
} catch {
|
|
8521
8637
|
}
|
|
8522
8638
|
}
|
|
8523
|
-
return { chunks, remaining };
|
|
8639
|
+
return { chunks: chunks2, remaining };
|
|
8524
8640
|
}
|
|
8525
8641
|
var xhrTransport = (options) => {
|
|
8526
8642
|
const queue = [];
|
|
@@ -8589,18 +8705,18 @@ var xhrTransport = (options) => {
|
|
|
8589
8705
|
const newData = xhr.responseText.substring(lastProcessedIndex);
|
|
8590
8706
|
lastProcessedIndex = xhr.responseText.length;
|
|
8591
8707
|
if (newData.length > 0) options.onActivity?.();
|
|
8592
|
-
const { chunks, remaining } = parseSseChunks(newData, incompleteBuffer);
|
|
8708
|
+
const { chunks: chunks2, remaining } = parseSseChunks(newData, incompleteBuffer);
|
|
8593
8709
|
incompleteBuffer = remaining;
|
|
8594
|
-
for (const chunk of
|
|
8710
|
+
for (const chunk of chunks2) {
|
|
8595
8711
|
push({ type: "data", value: chunk });
|
|
8596
8712
|
}
|
|
8597
8713
|
};
|
|
8598
8714
|
xhr.onload = () => {
|
|
8599
8715
|
options.signal?.removeEventListener("abort", abortHandler);
|
|
8600
8716
|
if (incompleteBuffer) {
|
|
8601
|
-
const { chunks } = parseSseChunks(incompleteBuffer + "\n", "");
|
|
8717
|
+
const { chunks: chunks2 } = parseSseChunks(incompleteBuffer + "\n", "");
|
|
8602
8718
|
incompleteBuffer = "";
|
|
8603
|
-
for (const chunk of
|
|
8719
|
+
for (const chunk of chunks2) {
|
|
8604
8720
|
push({ type: "data", value: chunk });
|
|
8605
8721
|
}
|
|
8606
8722
|
}
|
|
@@ -8710,7 +8826,7 @@ async function decryptConversationTitle(encryptedTitle, address) {
|
|
|
8710
8826
|
|
|
8711
8827
|
// src/lib/db/chat/models.ts
|
|
8712
8828
|
import { Model as Model2 } from "@nozbe/watermelondb";
|
|
8713
|
-
import { date, field, json, text } from "@nozbe/watermelondb/decorators";
|
|
8829
|
+
import { date, field, json, text as text2 } from "@nozbe/watermelondb/decorators";
|
|
8714
8830
|
var Message = class extends Model2 {
|
|
8715
8831
|
};
|
|
8716
8832
|
Message.table = "history";
|
|
@@ -8722,19 +8838,19 @@ __decorateClass([
|
|
|
8722
8838
|
field("message_id")
|
|
8723
8839
|
], Message.prototype, "messageId", 2);
|
|
8724
8840
|
__decorateClass([
|
|
8725
|
-
|
|
8841
|
+
text2("conversation_id")
|
|
8726
8842
|
], Message.prototype, "conversationId", 2);
|
|
8727
8843
|
__decorateClass([
|
|
8728
|
-
|
|
8844
|
+
text2("role")
|
|
8729
8845
|
], Message.prototype, "role", 2);
|
|
8730
8846
|
__decorateClass([
|
|
8731
|
-
|
|
8847
|
+
text2("content")
|
|
8732
8848
|
], Message.prototype, "content", 2);
|
|
8733
8849
|
__decorateClass([
|
|
8734
|
-
|
|
8850
|
+
text2("model")
|
|
8735
8851
|
], Message.prototype, "model", 2);
|
|
8736
8852
|
__decorateClass([
|
|
8737
|
-
|
|
8853
|
+
text2("image_model")
|
|
8738
8854
|
], Message.prototype, "imageModel", 2);
|
|
8739
8855
|
__decorateClass([
|
|
8740
8856
|
json("files", (raw) => raw)
|
|
@@ -8752,7 +8868,7 @@ __decorateClass([
|
|
|
8752
8868
|
json("vector", (raw) => raw)
|
|
8753
8869
|
], Message.prototype, "vector", 2);
|
|
8754
8870
|
__decorateClass([
|
|
8755
|
-
|
|
8871
|
+
text2("embedding_model")
|
|
8756
8872
|
], Message.prototype, "embeddingModel", 2);
|
|
8757
8873
|
__decorateClass([
|
|
8758
8874
|
json("chunks", (raw) => raw)
|
|
@@ -8770,25 +8886,25 @@ __decorateClass([
|
|
|
8770
8886
|
field("was_stopped")
|
|
8771
8887
|
], Message.prototype, "wasStopped", 2);
|
|
8772
8888
|
__decorateClass([
|
|
8773
|
-
|
|
8889
|
+
text2("error")
|
|
8774
8890
|
], Message.prototype, "error", 2);
|
|
8775
8891
|
__decorateClass([
|
|
8776
8892
|
json("thought_process", (raw) => raw)
|
|
8777
8893
|
], Message.prototype, "thoughtProcess", 2);
|
|
8778
8894
|
__decorateClass([
|
|
8779
|
-
|
|
8895
|
+
text2("thinking")
|
|
8780
8896
|
], Message.prototype, "thinking", 2);
|
|
8781
8897
|
__decorateClass([
|
|
8782
|
-
|
|
8898
|
+
text2("parent_message_id")
|
|
8783
8899
|
], Message.prototype, "parentMessageId", 2);
|
|
8784
8900
|
__decorateClass([
|
|
8785
|
-
|
|
8901
|
+
text2("feedback")
|
|
8786
8902
|
], Message.prototype, "feedback", 2);
|
|
8787
8903
|
__decorateClass([
|
|
8788
8904
|
json("tool_call_events", (raw) => raw)
|
|
8789
8905
|
], Message.prototype, "toolCallEvents", 2);
|
|
8790
8906
|
__decorateClass([
|
|
8791
|
-
|
|
8907
|
+
text2("origin")
|
|
8792
8908
|
], Message.prototype, "origin", 2);
|
|
8793
8909
|
var Conversation = class extends Model2 {
|
|
8794
8910
|
};
|
|
@@ -8798,13 +8914,13 @@ Conversation.associations = {
|
|
|
8798
8914
|
projects: { type: "belongs_to", key: "project_id" }
|
|
8799
8915
|
};
|
|
8800
8916
|
__decorateClass([
|
|
8801
|
-
|
|
8917
|
+
text2("conversation_id")
|
|
8802
8918
|
], Conversation.prototype, "conversationId", 2);
|
|
8803
8919
|
__decorateClass([
|
|
8804
|
-
|
|
8920
|
+
text2("title")
|
|
8805
8921
|
], Conversation.prototype, "title", 2);
|
|
8806
8922
|
__decorateClass([
|
|
8807
|
-
|
|
8923
|
+
text2("project_id")
|
|
8808
8924
|
], Conversation.prototype, "projectId", 2);
|
|
8809
8925
|
__decorateClass([
|
|
8810
8926
|
date("created_at")
|
|
@@ -8825,13 +8941,13 @@ ConversationSummary.associations = {
|
|
|
8825
8941
|
conversations: { type: "belongs_to", key: "conversation_id" }
|
|
8826
8942
|
};
|
|
8827
8943
|
__decorateClass([
|
|
8828
|
-
|
|
8944
|
+
text2("conversation_id")
|
|
8829
8945
|
], ConversationSummary.prototype, "conversationId", 2);
|
|
8830
8946
|
__decorateClass([
|
|
8831
|
-
|
|
8947
|
+
text2("summary")
|
|
8832
8948
|
], ConversationSummary.prototype, "summary", 2);
|
|
8833
8949
|
__decorateClass([
|
|
8834
|
-
|
|
8950
|
+
text2("summarized_up_to")
|
|
8835
8951
|
], ConversationSummary.prototype, "summarizedUpTo", 2);
|
|
8836
8952
|
__decorateClass([
|
|
8837
8953
|
field("token_count")
|
|
@@ -9005,14 +9121,14 @@ var MaskScopedEmbeddingCache = class extends Map {
|
|
|
9005
9121
|
this.inner = inner;
|
|
9006
9122
|
this.masked = masked;
|
|
9007
9123
|
}
|
|
9008
|
-
key(
|
|
9009
|
-
return `${this.masked ? "m" : "r"}:${
|
|
9124
|
+
key(text13) {
|
|
9125
|
+
return `${this.masked ? "m" : "r"}:${text13}`;
|
|
9010
9126
|
}
|
|
9011
|
-
get(
|
|
9012
|
-
return this.inner.get(this.key(
|
|
9127
|
+
get(text13) {
|
|
9128
|
+
return this.inner.get(this.key(text13));
|
|
9013
9129
|
}
|
|
9014
|
-
set(
|
|
9015
|
-
this.inner.set(this.key(
|
|
9130
|
+
set(text13, value) {
|
|
9131
|
+
this.inner.set(this.key(text13), value);
|
|
9016
9132
|
return this;
|
|
9017
9133
|
}
|
|
9018
9134
|
};
|
|
@@ -9022,16 +9138,16 @@ function maskScopedEmbeddingCache(cache, masked) {
|
|
|
9022
9138
|
|
|
9023
9139
|
// src/lib/db/conversationMemory/models.ts
|
|
9024
9140
|
import { Model as Model3 } from "@nozbe/watermelondb";
|
|
9025
|
-
import { date as date2, field as field2, readonly, text as
|
|
9141
|
+
import { date as date2, field as field2, readonly, text as text3 } from "@nozbe/watermelondb/decorators";
|
|
9026
9142
|
var ConversationMemory = class extends Model3 {
|
|
9027
9143
|
};
|
|
9028
9144
|
ConversationMemory.table = "conversation_memory";
|
|
9029
9145
|
ConversationMemory.associations = {};
|
|
9030
9146
|
__decorateClass([
|
|
9031
|
-
|
|
9147
|
+
text3("conversation_id")
|
|
9032
9148
|
], ConversationMemory.prototype, "conversationId", 2);
|
|
9033
9149
|
__decorateClass([
|
|
9034
|
-
|
|
9150
|
+
text3("memory_id")
|
|
9035
9151
|
], ConversationMemory.prototype, "memoryId", 2);
|
|
9036
9152
|
__decorateClass([
|
|
9037
9153
|
field2("score")
|
|
@@ -9113,19 +9229,19 @@ import {
|
|
|
9113
9229
|
|
|
9114
9230
|
// src/lib/db/appFiles/models.ts
|
|
9115
9231
|
import { Model as Model4 } from "@nozbe/watermelondb";
|
|
9116
|
-
import { date as date3, readonly as readonly2, text as
|
|
9232
|
+
import { date as date3, readonly as readonly2, text as text4 } from "@nozbe/watermelondb/decorators";
|
|
9117
9233
|
var AppFile = class extends Model4 {
|
|
9118
9234
|
};
|
|
9119
9235
|
AppFile.table = "app_files";
|
|
9120
9236
|
AppFile.associations = {};
|
|
9121
9237
|
__decorateClass([
|
|
9122
|
-
|
|
9238
|
+
text4("conversation_id")
|
|
9123
9239
|
], AppFile.prototype, "conversationId", 2);
|
|
9124
9240
|
__decorateClass([
|
|
9125
|
-
|
|
9241
|
+
text4("path")
|
|
9126
9242
|
], AppFile.prototype, "path", 2);
|
|
9127
9243
|
__decorateClass([
|
|
9128
|
-
|
|
9244
|
+
text4("content")
|
|
9129
9245
|
], AppFile.prototype, "content", 2);
|
|
9130
9246
|
__decorateClass([
|
|
9131
9247
|
readonly2,
|
|
@@ -9137,12 +9253,12 @@ __decorateClass([
|
|
|
9137
9253
|
|
|
9138
9254
|
// src/lib/db/entities/models.ts
|
|
9139
9255
|
import { Model as Model5 } from "@nozbe/watermelondb";
|
|
9140
|
-
import { date as date4, field as field3, readonly as readonly3, text as
|
|
9256
|
+
import { date as date4, field as field3, readonly as readonly3, text as text5 } from "@nozbe/watermelondb/decorators";
|
|
9141
9257
|
var Entity = class extends Model5 {
|
|
9142
9258
|
};
|
|
9143
9259
|
Entity.table = "entity";
|
|
9144
9260
|
__decorateClass([
|
|
9145
|
-
|
|
9261
|
+
text5("canonical_name")
|
|
9146
9262
|
], Entity.prototype, "canonicalName", 2);
|
|
9147
9263
|
__decorateClass([
|
|
9148
9264
|
field3("kind")
|
|
@@ -9158,10 +9274,10 @@ var MemoryEntity = class extends Model5 {
|
|
|
9158
9274
|
};
|
|
9159
9275
|
MemoryEntity.table = "memory_entity";
|
|
9160
9276
|
__decorateClass([
|
|
9161
|
-
|
|
9277
|
+
text5("memory_id")
|
|
9162
9278
|
], MemoryEntity.prototype, "memoryId", 2);
|
|
9163
9279
|
__decorateClass([
|
|
9164
|
-
|
|
9280
|
+
text5("entity_id")
|
|
9165
9281
|
], MemoryEntity.prototype, "entityId", 2);
|
|
9166
9282
|
__decorateClass([
|
|
9167
9283
|
field3("user_id")
|
|
@@ -9173,7 +9289,7 @@ __decorateClass([
|
|
|
9173
9289
|
|
|
9174
9290
|
// src/lib/db/media/models.ts
|
|
9175
9291
|
import { Model as Model6 } from "@nozbe/watermelondb";
|
|
9176
|
-
import { date as date5, field as field4, json as json2, readonly as readonly4, text as
|
|
9292
|
+
import { date as date5, field as field4, json as json2, readonly as readonly4, text as text6 } from "@nozbe/watermelondb/decorators";
|
|
9177
9293
|
var Media = class extends Model6 {
|
|
9178
9294
|
};
|
|
9179
9295
|
Media.table = "media";
|
|
@@ -9182,37 +9298,37 @@ Media.associations = {
|
|
|
9182
9298
|
conversations: { type: "belongs_to", key: "conversation_id" }
|
|
9183
9299
|
};
|
|
9184
9300
|
__decorateClass([
|
|
9185
|
-
|
|
9301
|
+
text6("media_id")
|
|
9186
9302
|
], Media.prototype, "mediaId", 2);
|
|
9187
9303
|
__decorateClass([
|
|
9188
|
-
|
|
9304
|
+
text6("wallet_address")
|
|
9189
9305
|
], Media.prototype, "walletAddress", 2);
|
|
9190
9306
|
__decorateClass([
|
|
9191
|
-
|
|
9307
|
+
text6("message_id")
|
|
9192
9308
|
], Media.prototype, "messageId", 2);
|
|
9193
9309
|
__decorateClass([
|
|
9194
|
-
|
|
9310
|
+
text6("conversation_id")
|
|
9195
9311
|
], Media.prototype, "conversationId", 2);
|
|
9196
9312
|
__decorateClass([
|
|
9197
|
-
|
|
9313
|
+
text6("name")
|
|
9198
9314
|
], Media.prototype, "name", 2);
|
|
9199
9315
|
__decorateClass([
|
|
9200
|
-
|
|
9316
|
+
text6("mime_type")
|
|
9201
9317
|
], Media.prototype, "mimeType", 2);
|
|
9202
9318
|
__decorateClass([
|
|
9203
|
-
|
|
9319
|
+
text6("media_type")
|
|
9204
9320
|
], Media.prototype, "mediaType", 2);
|
|
9205
9321
|
__decorateClass([
|
|
9206
9322
|
field4("size")
|
|
9207
9323
|
], Media.prototype, "size", 2);
|
|
9208
9324
|
__decorateClass([
|
|
9209
|
-
|
|
9325
|
+
text6("role")
|
|
9210
9326
|
], Media.prototype, "role", 2);
|
|
9211
9327
|
__decorateClass([
|
|
9212
|
-
|
|
9328
|
+
text6("model")
|
|
9213
9329
|
], Media.prototype, "model", 2);
|
|
9214
9330
|
__decorateClass([
|
|
9215
|
-
|
|
9331
|
+
text6("source_url")
|
|
9216
9332
|
], Media.prototype, "sourceUrl", 2);
|
|
9217
9333
|
__decorateClass([
|
|
9218
9334
|
json2("dimensions", (raw) => raw)
|
|
@@ -9236,15 +9352,15 @@ __decorateClass([
|
|
|
9236
9352
|
|
|
9237
9353
|
// src/lib/db/memoryVault/models.ts
|
|
9238
9354
|
import { Model as Model7 } from "@nozbe/watermelondb";
|
|
9239
|
-
import { date as date6, field as field5, readonly as readonly5, text as
|
|
9355
|
+
import { date as date6, field as field5, readonly as readonly5, text as text7 } from "@nozbe/watermelondb/decorators";
|
|
9240
9356
|
var VaultMemory = class extends Model7 {
|
|
9241
9357
|
};
|
|
9242
9358
|
VaultMemory.table = "memory_vault";
|
|
9243
9359
|
__decorateClass([
|
|
9244
|
-
|
|
9360
|
+
text7("content")
|
|
9245
9361
|
], VaultMemory.prototype, "content", 2);
|
|
9246
9362
|
__decorateClass([
|
|
9247
|
-
|
|
9363
|
+
text7("scope")
|
|
9248
9364
|
], VaultMemory.prototype, "scope", 2);
|
|
9249
9365
|
__decorateClass([
|
|
9250
9366
|
field5("kind")
|
|
@@ -9346,7 +9462,7 @@ __decorateClass([
|
|
|
9346
9462
|
|
|
9347
9463
|
// src/lib/db/project/models.ts
|
|
9348
9464
|
import { Model as Model8 } from "@nozbe/watermelondb";
|
|
9349
|
-
import { date as date7, field as field6, text as
|
|
9465
|
+
import { date as date7, field as field6, text as text8 } from "@nozbe/watermelondb/decorators";
|
|
9350
9466
|
var Project = class extends Model8 {
|
|
9351
9467
|
};
|
|
9352
9468
|
Project.table = "projects";
|
|
@@ -9354,10 +9470,10 @@ Project.associations = {
|
|
|
9354
9470
|
conversations: { type: "has_many", foreignKey: "project_id" }
|
|
9355
9471
|
};
|
|
9356
9472
|
__decorateClass([
|
|
9357
|
-
|
|
9473
|
+
text8("project_id")
|
|
9358
9474
|
], Project.prototype, "projectId", 2);
|
|
9359
9475
|
__decorateClass([
|
|
9360
|
-
|
|
9476
|
+
text8("name")
|
|
9361
9477
|
], Project.prototype, "name", 2);
|
|
9362
9478
|
__decorateClass([
|
|
9363
9479
|
date7("created_at")
|
|
@@ -9371,29 +9487,29 @@ __decorateClass([
|
|
|
9371
9487
|
|
|
9372
9488
|
// src/lib/db/savedTools/models.ts
|
|
9373
9489
|
import { Model as Model9 } from "@nozbe/watermelondb";
|
|
9374
|
-
import { date as date8, field as field7, json as json3, readonly as readonly6, text as
|
|
9490
|
+
import { date as date8, field as field7, json as json3, readonly as readonly6, text as text9 } from "@nozbe/watermelondb/decorators";
|
|
9375
9491
|
var sanitizeParameters = (raw) => raw ?? {};
|
|
9376
9492
|
var SavedTool = class extends Model9 {
|
|
9377
9493
|
};
|
|
9378
9494
|
SavedTool.table = "saved_tools";
|
|
9379
9495
|
SavedTool.associations = {};
|
|
9380
9496
|
__decorateClass([
|
|
9381
|
-
|
|
9497
|
+
text9("name")
|
|
9382
9498
|
], SavedTool.prototype, "name", 2);
|
|
9383
9499
|
__decorateClass([
|
|
9384
|
-
|
|
9500
|
+
text9("display_name")
|
|
9385
9501
|
], SavedTool.prototype, "displayName", 2);
|
|
9386
9502
|
__decorateClass([
|
|
9387
|
-
|
|
9503
|
+
text9("description")
|
|
9388
9504
|
], SavedTool.prototype, "description", 2);
|
|
9389
9505
|
__decorateClass([
|
|
9390
9506
|
json3("parameters", sanitizeParameters)
|
|
9391
9507
|
], SavedTool.prototype, "parameters", 2);
|
|
9392
9508
|
__decorateClass([
|
|
9393
|
-
|
|
9509
|
+
text9("html")
|
|
9394
9510
|
], SavedTool.prototype, "html", 2);
|
|
9395
9511
|
__decorateClass([
|
|
9396
|
-
|
|
9512
|
+
text9("conversation_id")
|
|
9397
9513
|
], SavedTool.prototype, "conversationId", 2);
|
|
9398
9514
|
__decorateClass([
|
|
9399
9515
|
readonly6,
|
|
@@ -9408,40 +9524,40 @@ __decorateClass([
|
|
|
9408
9524
|
|
|
9409
9525
|
// src/lib/db/settings/models.ts
|
|
9410
9526
|
import { Model as Model10 } from "@nozbe/watermelondb";
|
|
9411
|
-
import { text as
|
|
9527
|
+
import { text as text10 } from "@nozbe/watermelondb/decorators";
|
|
9412
9528
|
var ModelPreference = class extends Model10 {
|
|
9413
9529
|
};
|
|
9414
9530
|
ModelPreference.table = "modelPreferences";
|
|
9415
9531
|
__decorateClass([
|
|
9416
|
-
|
|
9532
|
+
text10("wallet_address")
|
|
9417
9533
|
], ModelPreference.prototype, "walletAddress", 2);
|
|
9418
9534
|
__decorateClass([
|
|
9419
|
-
|
|
9535
|
+
text10("models")
|
|
9420
9536
|
], ModelPreference.prototype, "models", 2);
|
|
9421
9537
|
|
|
9422
9538
|
// src/lib/db/userPreferences/models.ts
|
|
9423
9539
|
import { Model as Model11 } from "@nozbe/watermelondb";
|
|
9424
|
-
import { field as field8, text as
|
|
9540
|
+
import { field as field8, text as text11 } from "@nozbe/watermelondb/decorators";
|
|
9425
9541
|
var UserPreference = class extends Model11 {
|
|
9426
9542
|
};
|
|
9427
9543
|
UserPreference.table = "userPreferences";
|
|
9428
9544
|
__decorateClass([
|
|
9429
|
-
|
|
9545
|
+
text11("wallet_address")
|
|
9430
9546
|
], UserPreference.prototype, "walletAddress", 2);
|
|
9431
9547
|
__decorateClass([
|
|
9432
|
-
|
|
9548
|
+
text11("nickname")
|
|
9433
9549
|
], UserPreference.prototype, "nickname", 2);
|
|
9434
9550
|
__decorateClass([
|
|
9435
|
-
|
|
9551
|
+
text11("occupation")
|
|
9436
9552
|
], UserPreference.prototype, "occupation", 2);
|
|
9437
9553
|
__decorateClass([
|
|
9438
|
-
|
|
9554
|
+
text11("description")
|
|
9439
9555
|
], UserPreference.prototype, "description", 2);
|
|
9440
9556
|
__decorateClass([
|
|
9441
|
-
|
|
9557
|
+
text11("models")
|
|
9442
9558
|
], UserPreference.prototype, "models", 2);
|
|
9443
9559
|
__decorateClass([
|
|
9444
|
-
|
|
9560
|
+
text11("personality")
|
|
9445
9561
|
], UserPreference.prototype, "personality", 2);
|
|
9446
9562
|
__decorateClass([
|
|
9447
9563
|
field8("created_at")
|
|
@@ -9452,15 +9568,15 @@ __decorateClass([
|
|
|
9452
9568
|
|
|
9453
9569
|
// src/lib/db/vaultFolders/models.ts
|
|
9454
9570
|
import { Model as Model12 } from "@nozbe/watermelondb";
|
|
9455
|
-
import { date as date9, field as field9, readonly as readonly7, text as
|
|
9571
|
+
import { date as date9, field as field9, readonly as readonly7, text as text12 } from "@nozbe/watermelondb/decorators";
|
|
9456
9572
|
var VaultFolder = class extends Model12 {
|
|
9457
9573
|
};
|
|
9458
9574
|
VaultFolder.table = "vault_folders";
|
|
9459
9575
|
__decorateClass([
|
|
9460
|
-
|
|
9576
|
+
text12("name")
|
|
9461
9577
|
], VaultFolder.prototype, "name", 2);
|
|
9462
9578
|
__decorateClass([
|
|
9463
|
-
|
|
9579
|
+
text12("scope")
|
|
9464
9580
|
], VaultFolder.prototype, "scope", 2);
|
|
9465
9581
|
__decorateClass([
|
|
9466
9582
|
readonly7,
|
|
@@ -9476,7 +9592,7 @@ __decorateClass([
|
|
|
9476
9592
|
field9("is_system")
|
|
9477
9593
|
], VaultFolder.prototype, "isSystem", 2);
|
|
9478
9594
|
__decorateClass([
|
|
9479
|
-
|
|
9595
|
+
text12("context")
|
|
9480
9596
|
], VaultFolder.prototype, "context", 2);
|
|
9481
9597
|
|
|
9482
9598
|
// src/lib/db/schema.ts
|
|
@@ -13044,7 +13160,7 @@ Which item numbers should be flagged?`,
|
|
|
13044
13160
|
if (parsed === null) return empty;
|
|
13045
13161
|
return { flagged: parseFlagged(parsed, scope.length) };
|
|
13046
13162
|
}
|
|
13047
|
-
function parseFlagged(parsed,
|
|
13163
|
+
function parseFlagged(parsed, count2) {
|
|
13048
13164
|
const out = /* @__PURE__ */ new Set();
|
|
13049
13165
|
if (typeof parsed !== "object" || parsed === null) return out;
|
|
13050
13166
|
const list = parsed.poisoned;
|
|
@@ -13052,7 +13168,7 @@ function parseFlagged(parsed, count) {
|
|
|
13052
13168
|
for (const raw of list) {
|
|
13053
13169
|
const n = typeof raw === "number" ? raw : typeof raw === "string" ? Number(raw) : NaN;
|
|
13054
13170
|
if (!Number.isInteger(n)) continue;
|
|
13055
|
-
if (n >= 1 && n <=
|
|
13171
|
+
if (n >= 1 && n <= count2) out.add(n - 1);
|
|
13056
13172
|
}
|
|
13057
13173
|
return out;
|
|
13058
13174
|
}
|
|
@@ -13538,8 +13654,8 @@ var STOPWORDS = /* @__PURE__ */ new Set([
|
|
|
13538
13654
|
"user",
|
|
13539
13655
|
"users"
|
|
13540
13656
|
]);
|
|
13541
|
-
function tokenize(
|
|
13542
|
-
const m =
|
|
13657
|
+
function tokenize(text13) {
|
|
13658
|
+
const m = text13.toLowerCase().match(TOKEN_RE);
|
|
13543
13659
|
if (!m) return [];
|
|
13544
13660
|
return m.filter((t) => !STOPWORDS.has(t));
|
|
13545
13661
|
}
|
|
@@ -15063,14 +15179,14 @@ async function retainWithPersistence(content, ctx, options = {}) {
|
|
|
15063
15179
|
);
|
|
15064
15180
|
}
|
|
15065
15181
|
if (options.consolidateOptions) {
|
|
15066
|
-
const
|
|
15067
|
-
if (
|
|
15068
|
-
if ("done" in
|
|
15069
|
-
if ("create" in
|
|
15182
|
+
const outcome2 = await tryConsolidate(trimmed, ctx, options, prepared);
|
|
15183
|
+
if (outcome2) {
|
|
15184
|
+
if ("done" in outcome2) return outcome2.done;
|
|
15185
|
+
if ("create" in outcome2) {
|
|
15070
15186
|
consolidationDecidedCreate = true;
|
|
15071
15187
|
} else {
|
|
15072
|
-
supersedeTargetIds =
|
|
15073
|
-
supersedeContent =
|
|
15188
|
+
supersedeTargetIds = outcome2.supersede;
|
|
15189
|
+
supersedeContent = outcome2.content;
|
|
15074
15190
|
}
|
|
15075
15191
|
}
|
|
15076
15192
|
}
|
|
@@ -15736,12 +15852,12 @@ async function extractAndRetain(messages, retainCtx, options) {
|
|
|
15736
15852
|
if (failedWrites > 0) {
|
|
15737
15853
|
log.warn(`[memory/extract] ${failedWrites} of ${filtered.length} candidates failed to retain`);
|
|
15738
15854
|
}
|
|
15739
|
-
const
|
|
15855
|
+
const outcome2 = exhaustedEmpty ? "empty-after-retry" : filtered.length > 0 ? "extracted" : droppedAfterRedaction ? "dropped-after-redaction" : "no-facts";
|
|
15740
15856
|
return {
|
|
15741
15857
|
candidates: succeededCandidates,
|
|
15742
15858
|
results,
|
|
15743
15859
|
failedCount: failedWrites,
|
|
15744
|
-
outcome,
|
|
15860
|
+
outcome: outcome2,
|
|
15745
15861
|
quarantined: quarantinedInfo,
|
|
15746
15862
|
funnel: {
|
|
15747
15863
|
rawCandidateCount,
|
|
@@ -15971,7 +16087,7 @@ function createAutoExtractor(options) {
|
|
|
15971
16087
|
...options.retainCtx,
|
|
15972
16088
|
embeddingOptions: {
|
|
15973
16089
|
...options.retainCtx.embeddingOptions,
|
|
15974
|
-
maskInput: (
|
|
16090
|
+
maskInput: (text13) => piiRedactor.maskText(text13)
|
|
15975
16091
|
}
|
|
15976
16092
|
} : options.retainCtx;
|
|
15977
16093
|
function processTurn(messages, conversationId) {
|
|
@@ -16004,7 +16120,7 @@ function createAutoExtractor(options) {
|
|
|
16004
16120
|
const t0 = Date.now();
|
|
16005
16121
|
void (async () => {
|
|
16006
16122
|
try {
|
|
16007
|
-
const { candidates, results, failedCount, outcome, failure, funnel, timings, model } = await extractAndRetain(window2, retainCtx, {
|
|
16123
|
+
const { candidates, results, failedCount, outcome: outcome2, failure, funnel, timings, model } = await extractAndRetain(window2, retainCtx, {
|
|
16008
16124
|
extract,
|
|
16009
16125
|
...options.minConfidence !== void 0 && { minConfidence: options.minConfidence },
|
|
16010
16126
|
...options.entityCtx !== void 0 && { entityCtx: options.entityCtx },
|
|
@@ -16021,7 +16137,7 @@ function createAutoExtractor(options) {
|
|
|
16021
16137
|
onQuarantined: (info) => options.onMemoryQuarantined?.({ ...info, conversationId })
|
|
16022
16138
|
}
|
|
16023
16139
|
});
|
|
16024
|
-
if (
|
|
16140
|
+
if (outcome2 !== "empty-after-retry" && failedCount === 0) {
|
|
16025
16141
|
const advancedTo = window2[window2.length - 1].id;
|
|
16026
16142
|
stateFor(conversationId).watermark = advancedTo;
|
|
16027
16143
|
persistCursor(conversationId, messages, advancedTo, contiguous);
|
|
@@ -16040,7 +16156,7 @@ function createAutoExtractor(options) {
|
|
|
16040
16156
|
failedCount,
|
|
16041
16157
|
durationMs: Date.now() - t0,
|
|
16042
16158
|
conversationId,
|
|
16043
|
-
outcome,
|
|
16159
|
+
outcome: outcome2,
|
|
16044
16160
|
funnel,
|
|
16045
16161
|
timings,
|
|
16046
16162
|
model,
|
|
@@ -17702,12 +17818,12 @@ ${JSON.stringify(
|
|
|
17702
17818
|
function parseAnswer(body, base, parseSchema) {
|
|
17703
17819
|
if (typeof body !== "object" || body === null) return base;
|
|
17704
17820
|
const obj = body;
|
|
17705
|
-
const
|
|
17821
|
+
const text13 = extractCompletionContent(obj) ?? "";
|
|
17706
17822
|
const usage = obj.usage;
|
|
17707
17823
|
let structuredOutput;
|
|
17708
|
-
if (parseSchema &&
|
|
17824
|
+
if (parseSchema && text13) {
|
|
17709
17825
|
try {
|
|
17710
|
-
structuredOutput = JSON.parse(extractJsonCandidate(
|
|
17826
|
+
structuredOutput = JSON.parse(extractJsonCandidate(text13));
|
|
17711
17827
|
} catch (err) {
|
|
17712
17828
|
getLogger().warn("[memory/reflect] structured output was not valid JSON", {
|
|
17713
17829
|
err: err instanceof Error ? err.message : String(err)
|
|
@@ -17717,7 +17833,7 @@ function parseAnswer(body, base, parseSchema) {
|
|
|
17717
17833
|
const promptTokens = usage?.prompt_tokens ?? usage?.input_tokens ?? 0;
|
|
17718
17834
|
const completionTokens = usage?.completion_tokens ?? usage?.output_tokens ?? 0;
|
|
17719
17835
|
return {
|
|
17720
|
-
text:
|
|
17836
|
+
text: text13,
|
|
17721
17837
|
...structuredOutput !== void 0 && { structuredOutput },
|
|
17722
17838
|
basedOn: base.basedOn,
|
|
17723
17839
|
usage: {
|
|
@@ -18069,6 +18185,65 @@ function createLocalMemoryStore(options) {
|
|
|
18069
18185
|
};
|
|
18070
18186
|
}
|
|
18071
18187
|
|
|
18188
|
+
// src/lib/memory/store/memoryKeys.ts
|
|
18189
|
+
var KEY_ID_DOMAIN = "anuma-private-memory-key-id-v1";
|
|
18190
|
+
var MemoryKeyError = class extends Error {
|
|
18191
|
+
constructor(message) {
|
|
18192
|
+
super(message);
|
|
18193
|
+
this.name = "MemoryKeyError";
|
|
18194
|
+
}
|
|
18195
|
+
};
|
|
18196
|
+
async function importAesKey(hex) {
|
|
18197
|
+
return crypto.subtle.importKey(
|
|
18198
|
+
"raw",
|
|
18199
|
+
hexToBytes(hex).buffer,
|
|
18200
|
+
{ name: "AES-GCM" },
|
|
18201
|
+
false,
|
|
18202
|
+
["encrypt", "decrypt"]
|
|
18203
|
+
);
|
|
18204
|
+
}
|
|
18205
|
+
async function deriveMemoryKeyRing(signatureHex) {
|
|
18206
|
+
const v3Hex = await deriveKeyFromSignatureV3(signatureHex);
|
|
18207
|
+
const digest = await crypto.subtle.digest(
|
|
18208
|
+
"SHA-256",
|
|
18209
|
+
new TextEncoder().encode(`${KEY_ID_DOMAIN}:${v3Hex}`)
|
|
18210
|
+
);
|
|
18211
|
+
const keyId = "v3:" + Array.from(new Uint8Array(digest), (byte) => byte.toString(16).padStart(2, "0")).join("");
|
|
18212
|
+
return {
|
|
18213
|
+
keyId,
|
|
18214
|
+
v3: await importAesKey(v3Hex),
|
|
18215
|
+
v2: await importAesKey(await deriveKeyFromSignature(signatureHex))
|
|
18216
|
+
};
|
|
18217
|
+
}
|
|
18218
|
+
async function decryptWith(value, rings) {
|
|
18219
|
+
const version = value.startsWith("enc:v3:") ? "v3" : "v2";
|
|
18220
|
+
for (const ring of rings) {
|
|
18221
|
+
try {
|
|
18222
|
+
return await decryptDataWithKey(value.slice(`enc:${version}:`.length), ring[version]);
|
|
18223
|
+
} catch {
|
|
18224
|
+
continue;
|
|
18225
|
+
}
|
|
18226
|
+
}
|
|
18227
|
+
throw new MemoryKeyError(`No supplied key decrypts this enc:${version} field`);
|
|
18228
|
+
}
|
|
18229
|
+
function memoryCipher(canonical) {
|
|
18230
|
+
return {
|
|
18231
|
+
encrypt: async (plaintext) => `enc:v3:${await encryptDataWithKey(plaintext, canonical.v3)}`,
|
|
18232
|
+
decrypt: async (ciphertext) => {
|
|
18233
|
+
if (!ciphertext.startsWith("enc:v3:") || !isEncrypted(ciphertext))
|
|
18234
|
+
throw new MemoryKeyError("Remote memory content must be enc:v3 ciphertext");
|
|
18235
|
+
return decryptWith(ciphertext, [canonical]);
|
|
18236
|
+
}
|
|
18237
|
+
};
|
|
18238
|
+
}
|
|
18239
|
+
async function reencryptMemoryField(value, canonical, fallbacks = []) {
|
|
18240
|
+
const { encrypt } = memoryCipher(canonical);
|
|
18241
|
+
if (!value.startsWith("enc:")) return encrypt(value);
|
|
18242
|
+
if (!isEncrypted(value))
|
|
18243
|
+
throw new MemoryKeyError("Field has an encryption prefix but an invalid payload");
|
|
18244
|
+
return encrypt(await decryptWith(value, [canonical, ...fallbacks]));
|
|
18245
|
+
}
|
|
18246
|
+
|
|
18072
18247
|
// src/lib/memory/store/remotePersistence.ts
|
|
18073
18248
|
var RemoteMemoryError = class extends Error {
|
|
18074
18249
|
constructor(message, status, code) {
|
|
@@ -18121,6 +18296,30 @@ var candidateListLimits = [
|
|
|
18121
18296
|
["memory_ids", 1e3],
|
|
18122
18297
|
["force_ids", 100]
|
|
18123
18298
|
];
|
|
18299
|
+
var queryListLimits = [
|
|
18300
|
+
["scopes", 20],
|
|
18301
|
+
["fact_types", 20],
|
|
18302
|
+
["visibility", 20],
|
|
18303
|
+
["memory_ids", 1e3],
|
|
18304
|
+
["topics", 100]
|
|
18305
|
+
];
|
|
18306
|
+
var queryFields = [
|
|
18307
|
+
"include_deleted",
|
|
18308
|
+
"include_archived",
|
|
18309
|
+
"include_quarantined",
|
|
18310
|
+
"include_superseded",
|
|
18311
|
+
"archived_only",
|
|
18312
|
+
"scopes",
|
|
18313
|
+
"fact_types",
|
|
18314
|
+
"visibility",
|
|
18315
|
+
"memory_ids",
|
|
18316
|
+
"topics",
|
|
18317
|
+
"updated_after",
|
|
18318
|
+
"order",
|
|
18319
|
+
"cursor",
|
|
18320
|
+
"limit",
|
|
18321
|
+
"include_embeddings"
|
|
18322
|
+
];
|
|
18124
18323
|
function record(value) {
|
|
18125
18324
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
18126
18325
|
}
|
|
@@ -18455,6 +18654,35 @@ async function createRemoteMemoryPersistence(options) {
|
|
|
18455
18654
|
throw new Error("Invalid nearby batch response");
|
|
18456
18655
|
return Promise.all(result.items.map((item, i) => decodeCommitted(item, prepared[i])));
|
|
18457
18656
|
},
|
|
18657
|
+
query: async (queryOptions = {}) => {
|
|
18658
|
+
const { signal, ...query } = queryOptions;
|
|
18659
|
+
if (query.limit !== void 0 && (!Number.isInteger(query.limit) || query.limit < 1 || query.limit > 200))
|
|
18660
|
+
throw new Error("Page limit must be 1\u2013200");
|
|
18661
|
+
for (const [key, max] of queryListLimits) {
|
|
18662
|
+
const values = query[key];
|
|
18663
|
+
if (values && values.length > max)
|
|
18664
|
+
throw new Error(`Query ${key} accepts at most ${max} entries (got ${values.length})`);
|
|
18665
|
+
}
|
|
18666
|
+
const page = await request(
|
|
18667
|
+
"/memories/query",
|
|
18668
|
+
{
|
|
18669
|
+
method: "POST",
|
|
18670
|
+
body: JSON.stringify(
|
|
18671
|
+
Object.fromEntries(
|
|
18672
|
+
queryFields.filter((key) => query[key] !== void 0).map((key) => [key, query[key]])
|
|
18673
|
+
)
|
|
18674
|
+
)
|
|
18675
|
+
},
|
|
18676
|
+
signal
|
|
18677
|
+
);
|
|
18678
|
+
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")
|
|
18679
|
+
throw new Error("Invalid nearby private-memory page");
|
|
18680
|
+
return {
|
|
18681
|
+
...await decodeAll(page.items),
|
|
18682
|
+
...page.next_cursor !== void 0 && { next_cursor: page.next_cursor },
|
|
18683
|
+
...page.changes_cursor !== void 0 && { changes_cursor: page.changes_cursor }
|
|
18684
|
+
};
|
|
18685
|
+
},
|
|
18458
18686
|
candidateSet,
|
|
18459
18687
|
candidates: async (embedding, candidateOptions = {}) => decodeAll((await fetchCandidates(embedding, candidateOptions, false)).items)
|
|
18460
18688
|
};
|
|
@@ -18805,10 +19033,10 @@ function createRemoteMemoryPipeline(options) {
|
|
|
18805
19033
|
factSource: {
|
|
18806
19034
|
graphRanking: options.graphRanking,
|
|
18807
19035
|
temporalRanking: options.temporalRanking,
|
|
18808
|
-
search: async (
|
|
18809
|
-
const prepared = await prepare(
|
|
19036
|
+
search: async (text13, searchOptions) => {
|
|
19037
|
+
const prepared = await prepare(text13, searchOptions);
|
|
18810
19038
|
const ranked = await rankPreparedVaultCandidates(
|
|
18811
|
-
|
|
19039
|
+
text13,
|
|
18812
19040
|
prepared,
|
|
18813
19041
|
embeddingOptions,
|
|
18814
19042
|
searchOptions
|
|
@@ -18843,6 +19071,489 @@ function createRemoteMemoryPipeline(options) {
|
|
|
18843
19071
|
};
|
|
18844
19072
|
}
|
|
18845
19073
|
|
|
19074
|
+
// src/lib/memory/store/remoteStore.ts
|
|
19075
|
+
import { v7 as uuidv75 } from "uuid";
|
|
19076
|
+
function relevant(change, options) {
|
|
19077
|
+
return options.includeDeleted ? change === "membership" : change !== "embedding" || !!options.embeddings;
|
|
19078
|
+
}
|
|
19079
|
+
function safely(onChange) {
|
|
19080
|
+
try {
|
|
19081
|
+
onChange();
|
|
19082
|
+
} catch (error) {
|
|
19083
|
+
getLogger().warn("[memory/remote-store] Subscriber threw:", error);
|
|
19084
|
+
}
|
|
19085
|
+
}
|
|
19086
|
+
var MAX_BATCH = 50;
|
|
19087
|
+
var MAX_QUERY_IDS = 1e3;
|
|
19088
|
+
var MAX_QUERY_TOPICS = 100;
|
|
19089
|
+
var MAX_QUERY_FILTER = 20;
|
|
19090
|
+
var RemoteMemoryPartialCreateError = class extends Error {
|
|
19091
|
+
constructor(created, cause) {
|
|
19092
|
+
super(`createMany stored ${created.length} memories before a batch failed`);
|
|
19093
|
+
this.created = created;
|
|
19094
|
+
this.cause = cause;
|
|
19095
|
+
this.name = "RemoteMemoryPartialCreateError";
|
|
19096
|
+
}
|
|
19097
|
+
};
|
|
19098
|
+
function warnFailed(failed) {
|
|
19099
|
+
if (failed.length)
|
|
19100
|
+
getLogger().warn(
|
|
19101
|
+
`[memory/remote-store] Skipping ${failed.length} undecryptable row(s)`,
|
|
19102
|
+
failed.map((failure) => failure.memory_id)
|
|
19103
|
+
);
|
|
19104
|
+
}
|
|
19105
|
+
function bounded(filters, key) {
|
|
19106
|
+
const values = filters[key];
|
|
19107
|
+
if (!values || values.length <= MAX_QUERY_FILTER) return [filters];
|
|
19108
|
+
return chunks(values, MAX_QUERY_FILTER).map((chunk) => ({ ...filters, [key]: chunk }));
|
|
19109
|
+
}
|
|
19110
|
+
function chunks(values, size) {
|
|
19111
|
+
const out = [];
|
|
19112
|
+
for (let i = 0; i < values.length; i += size) out.push(values.slice(i, i + size));
|
|
19113
|
+
return out;
|
|
19114
|
+
}
|
|
19115
|
+
function stateFilters(options) {
|
|
19116
|
+
return {
|
|
19117
|
+
include_deleted: options.includeDeleted,
|
|
19118
|
+
include_archived: options.includeArchived,
|
|
19119
|
+
include_quarantined: options.includeQuarantined,
|
|
19120
|
+
include_superseded: options.includeSuperseded
|
|
19121
|
+
};
|
|
19122
|
+
}
|
|
19123
|
+
function hidden(memory, options) {
|
|
19124
|
+
if (memory.trust_tier === "quarantined") return true;
|
|
19125
|
+
if (options.includeDeleted) return false;
|
|
19126
|
+
return !!memory.is_deleted || memory.archived_at !== void 0 && memory.archived_at !== null || !!memory.superseded_by;
|
|
19127
|
+
}
|
|
19128
|
+
function subscriptionKey({ memory, version }, options) {
|
|
19129
|
+
if (hidden(memory, options)) return void 0;
|
|
19130
|
+
if (options.includeDeleted) return String(!!memory.is_deleted);
|
|
19131
|
+
return JSON.stringify([
|
|
19132
|
+
options.embeddings ? version : null,
|
|
19133
|
+
memory.content,
|
|
19134
|
+
memory.scope,
|
|
19135
|
+
memory.updated_at,
|
|
19136
|
+
memory.fact_type,
|
|
19137
|
+
memory.event_time_start,
|
|
19138
|
+
memory.event_time_end,
|
|
19139
|
+
memory.event_time_kind,
|
|
19140
|
+
memory.trust_tier,
|
|
19141
|
+
memory.visibility,
|
|
19142
|
+
memory.published_at,
|
|
19143
|
+
memory.geohash,
|
|
19144
|
+
memory.topics,
|
|
19145
|
+
memory.topics_user_managed,
|
|
19146
|
+
memory.media,
|
|
19147
|
+
memory.source
|
|
19148
|
+
]);
|
|
19149
|
+
}
|
|
19150
|
+
function topicInputs(topics, source) {
|
|
19151
|
+
return topics.flatMap((topic) => {
|
|
19152
|
+
const name = (typeof topic === "string" ? topic : topic.name).trim();
|
|
19153
|
+
const kind = typeof topic === "string" ? void 0 : topic.kind;
|
|
19154
|
+
return name ? [{ name, ...kind && { kind }, source }] : [];
|
|
19155
|
+
});
|
|
19156
|
+
}
|
|
19157
|
+
function mergeTopics(existing, added) {
|
|
19158
|
+
const byName = /* @__PURE__ */ new Map();
|
|
19159
|
+
for (const topic of [...existing, ...added]) {
|
|
19160
|
+
const key = normalizeEntityName(topic.name);
|
|
19161
|
+
if (!byName.has(key)) byName.set(key, topic);
|
|
19162
|
+
}
|
|
19163
|
+
return [...byName.values()];
|
|
19164
|
+
}
|
|
19165
|
+
function canonicalTopics(row) {
|
|
19166
|
+
return new Set((parseTopics(row.topics) ?? []).map((topic) => normalizeEntityName(topic.name)));
|
|
19167
|
+
}
|
|
19168
|
+
function createRemoteMemoryStore(options) {
|
|
19169
|
+
const { persistence, embeddingOptions } = options;
|
|
19170
|
+
const model = embeddingOptions.model ?? DEFAULT_API_EMBEDDING_MODEL;
|
|
19171
|
+
const pollIntervalMs = options.pollIntervalMs ?? 6e4;
|
|
19172
|
+
const pipeline = createRemoteMemoryPipeline(options);
|
|
19173
|
+
const subscribers = /* @__PURE__ */ new Set();
|
|
19174
|
+
const seen = /* @__PURE__ */ new Map();
|
|
19175
|
+
let timer;
|
|
19176
|
+
const notify = (change, records = []) => {
|
|
19177
|
+
if (timer) for (const record2 of records) seen.set(record2.memory.memory_id, record2);
|
|
19178
|
+
for (const subscriber of [...subscribers])
|
|
19179
|
+
if (relevant(change, subscriber.options)) safely(subscriber.onChange);
|
|
19180
|
+
};
|
|
19181
|
+
const enumerate = async (filters, max = Infinity) => {
|
|
19182
|
+
const records = [];
|
|
19183
|
+
let cursor2;
|
|
19184
|
+
do {
|
|
19185
|
+
const page = await persistence.query({
|
|
19186
|
+
...filters,
|
|
19187
|
+
limit: Math.min(200, Math.max(1, max - records.length)),
|
|
19188
|
+
...cursor2 && { cursor: cursor2 }
|
|
19189
|
+
});
|
|
19190
|
+
warnFailed(page.failed);
|
|
19191
|
+
records.push(...page.items);
|
|
19192
|
+
cursor2 = page.next_cursor;
|
|
19193
|
+
} while (cursor2 && records.length < max);
|
|
19194
|
+
return records.slice(0, max);
|
|
19195
|
+
};
|
|
19196
|
+
const enumerateIds = async (ids, filters) => (await Promise.all(
|
|
19197
|
+
chunks([...new Set(ids)], MAX_QUERY_IDS).map(
|
|
19198
|
+
(memory_ids) => enumerate({ ...filters, memory_ids })
|
|
19199
|
+
)
|
|
19200
|
+
)).flat();
|
|
19201
|
+
const queues = /* @__PURE__ */ new Map();
|
|
19202
|
+
const serialized = (id, task) => {
|
|
19203
|
+
const run = (queues.get(id) ?? Promise.resolve()).then(task, task);
|
|
19204
|
+
const settled = run.catch(() => void 0);
|
|
19205
|
+
queues.set(id, settled);
|
|
19206
|
+
void settled.then(() => {
|
|
19207
|
+
if (queues.get(id) === settled) queues.delete(id);
|
|
19208
|
+
});
|
|
19209
|
+
return run;
|
|
19210
|
+
};
|
|
19211
|
+
const live = async (id) => {
|
|
19212
|
+
const record2 = await persistence.get(id);
|
|
19213
|
+
return record2 && !record2.memory.is_deleted ? record2 : null;
|
|
19214
|
+
};
|
|
19215
|
+
const mutate = async (id, change, edit) => serialized(id, async () => {
|
|
19216
|
+
const record2 = await live(id);
|
|
19217
|
+
if (!record2) return null;
|
|
19218
|
+
const next = edit(structuredClone(record2.memory));
|
|
19219
|
+
if (!next) return null;
|
|
19220
|
+
const saved = await persistence.put(next, record2);
|
|
19221
|
+
notify(change, [saved]);
|
|
19222
|
+
return saved;
|
|
19223
|
+
});
|
|
19224
|
+
const embedInBackground = ({ memory: { memory_id: id, content } }) => {
|
|
19225
|
+
generateEmbedding(content, embeddingOptions).then(
|
|
19226
|
+
(vector) => serialized(id, async () => {
|
|
19227
|
+
const current = await live(id);
|
|
19228
|
+
if (!current || current.memory.content !== content || current.memory.embedding?.length)
|
|
19229
|
+
return;
|
|
19230
|
+
const saved = await persistence.put(
|
|
19231
|
+
{ ...current.memory, embedding: storedVector(vector), embedding_model: model },
|
|
19232
|
+
current
|
|
19233
|
+
);
|
|
19234
|
+
notify("embedding", [saved]);
|
|
19235
|
+
})
|
|
19236
|
+
).catch((error) => {
|
|
19237
|
+
getLogger().warn("[memory/remote-store] Failed to embed memory:", error);
|
|
19238
|
+
});
|
|
19239
|
+
};
|
|
19240
|
+
const newRow = (input) => {
|
|
19241
|
+
const now = Date.now();
|
|
19242
|
+
const scope = input.scope ?? "private";
|
|
19243
|
+
return {
|
|
19244
|
+
memory_id: uuidv75(),
|
|
19245
|
+
content: input.content,
|
|
19246
|
+
scope,
|
|
19247
|
+
level: levelFromScope(scope),
|
|
19248
|
+
created_at: now,
|
|
19249
|
+
updated_at: now,
|
|
19250
|
+
is_deleted: false,
|
|
19251
|
+
...input.embedding !== void 0 && {
|
|
19252
|
+
embedding: storedVector(JSON.parse(input.embedding)),
|
|
19253
|
+
embedding_model: input.embeddingModel ?? model
|
|
19254
|
+
},
|
|
19255
|
+
proof_count: 1,
|
|
19256
|
+
source: "manual",
|
|
19257
|
+
...input.eventTime && {
|
|
19258
|
+
event_time_start: input.eventTime.start ?? void 0,
|
|
19259
|
+
event_time_end: input.eventTime.end ?? void 0,
|
|
19260
|
+
event_time_kind: input.eventTime.kind ?? void 0
|
|
19261
|
+
},
|
|
19262
|
+
fact_type: input.factType,
|
|
19263
|
+
geohash: input.geohash,
|
|
19264
|
+
visibility: "private",
|
|
19265
|
+
twin_opt_in: false
|
|
19266
|
+
};
|
|
19267
|
+
};
|
|
19268
|
+
const created = (records, inputs) => {
|
|
19269
|
+
records.forEach((record2, i) => {
|
|
19270
|
+
if (inputs[i].embedding === void 0) embedInBackground(record2);
|
|
19271
|
+
});
|
|
19272
|
+
notify("membership", records);
|
|
19273
|
+
return records.map((record2) => stored(record2.memory));
|
|
19274
|
+
};
|
|
19275
|
+
const asStored = (record2) => record2 ? stored(record2.memory) : null;
|
|
19276
|
+
const everyState = {
|
|
19277
|
+
include_deleted: true,
|
|
19278
|
+
include_archived: true,
|
|
19279
|
+
include_quarantined: true,
|
|
19280
|
+
include_superseded: true
|
|
19281
|
+
};
|
|
19282
|
+
const changesSince = async (cursor2, pending2) => {
|
|
19283
|
+
const records = [];
|
|
19284
|
+
const failed = /* @__PURE__ */ new Set();
|
|
19285
|
+
const collect = (page) => {
|
|
19286
|
+
warnFailed(page.failed);
|
|
19287
|
+
records.push(...page.items);
|
|
19288
|
+
for (const failure of page.failed) failed.add(failure.memory_id);
|
|
19289
|
+
};
|
|
19290
|
+
let resume = cursor2;
|
|
19291
|
+
let next;
|
|
19292
|
+
do {
|
|
19293
|
+
const page = await persistence.query({
|
|
19294
|
+
...everyState,
|
|
19295
|
+
order: "changed",
|
|
19296
|
+
limit: 200,
|
|
19297
|
+
...(next ?? resume) && { cursor: next ?? resume }
|
|
19298
|
+
});
|
|
19299
|
+
collect(page);
|
|
19300
|
+
resume = page.changes_cursor ?? resume;
|
|
19301
|
+
next = page.next_cursor;
|
|
19302
|
+
} while (next);
|
|
19303
|
+
for (const memory_ids of chunks([...pending2], MAX_QUERY_IDS)) {
|
|
19304
|
+
let retry;
|
|
19305
|
+
do {
|
|
19306
|
+
const page = await persistence.query({
|
|
19307
|
+
...everyState,
|
|
19308
|
+
memory_ids,
|
|
19309
|
+
limit: 200,
|
|
19310
|
+
...retry && { cursor: retry }
|
|
19311
|
+
});
|
|
19312
|
+
collect(page);
|
|
19313
|
+
retry = page.next_cursor;
|
|
19314
|
+
} while (retry);
|
|
19315
|
+
}
|
|
19316
|
+
return { records, resume, failed };
|
|
19317
|
+
};
|
|
19318
|
+
let generation = 0;
|
|
19319
|
+
let ready = false;
|
|
19320
|
+
let cursor;
|
|
19321
|
+
let pending = /* @__PURE__ */ new Set();
|
|
19322
|
+
let polling = false;
|
|
19323
|
+
const poll = () => {
|
|
19324
|
+
if (polling) return;
|
|
19325
|
+
polling = true;
|
|
19326
|
+
const current = generation;
|
|
19327
|
+
changesSince(cursor, pending).then(({ records, resume, failed }) => {
|
|
19328
|
+
if (current !== generation) return;
|
|
19329
|
+
const changed = /* @__PURE__ */ new Set();
|
|
19330
|
+
for (const record2 of records) {
|
|
19331
|
+
const id = record2.memory.memory_id;
|
|
19332
|
+
const previous = seen.get(id);
|
|
19333
|
+
seen.set(id, record2);
|
|
19334
|
+
if (!ready) continue;
|
|
19335
|
+
for (const subscriber of subscribers) {
|
|
19336
|
+
const before = previous && subscriptionKey(previous, subscriber.options);
|
|
19337
|
+
if (before !== subscriptionKey(record2, subscriber.options)) changed.add(subscriber);
|
|
19338
|
+
}
|
|
19339
|
+
}
|
|
19340
|
+
ready = true;
|
|
19341
|
+
cursor = resume;
|
|
19342
|
+
pending = failed;
|
|
19343
|
+
for (const subscriber of changed)
|
|
19344
|
+
if (subscribers.has(subscriber)) safely(subscriber.onChange);
|
|
19345
|
+
}).catch((error) => {
|
|
19346
|
+
getLogger().warn("[memory/remote-store] Subscription poll failed:", error);
|
|
19347
|
+
}).finally(() => {
|
|
19348
|
+
polling = false;
|
|
19349
|
+
});
|
|
19350
|
+
};
|
|
19351
|
+
return {
|
|
19352
|
+
list: async (listOptions = {}) => {
|
|
19353
|
+
const order = listOptions.since ? "updated" : "created";
|
|
19354
|
+
const filters = {
|
|
19355
|
+
...stateFilters(listOptions),
|
|
19356
|
+
include_embeddings: true,
|
|
19357
|
+
order,
|
|
19358
|
+
...listOptions.scopes?.length && { scopes: listOptions.scopes },
|
|
19359
|
+
...listOptions.factTypes?.length && { fact_types: listOptions.factTypes },
|
|
19360
|
+
...listOptions.visibility?.length && { visibility: listOptions.visibility },
|
|
19361
|
+
...listOptions.since && { updated_after: listOptions.since.getTime() }
|
|
19362
|
+
};
|
|
19363
|
+
const max = listOptions.limit && listOptions.limit > 0 ? listOptions.limit : Infinity;
|
|
19364
|
+
const variants = bounded(filters, "scopes").flatMap((f) => bounded(f, "fact_types"));
|
|
19365
|
+
if (!listOptions.memoryIds && variants.length === 1)
|
|
19366
|
+
return (await enumerate(filters, max)).map((r) => stored(r.memory));
|
|
19367
|
+
const fetched = await Promise.all(
|
|
19368
|
+
variants.map(
|
|
19369
|
+
(variant) => listOptions.memoryIds ? enumerateIds(listOptions.memoryIds, variant) : enumerate(variant, max)
|
|
19370
|
+
)
|
|
19371
|
+
);
|
|
19372
|
+
const rows = [...new Map(fetched.flat().map((r) => [r.memory.memory_id, r])).values()].map((record2) => stored(record2.memory)).sort(
|
|
19373
|
+
(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)
|
|
19374
|
+
);
|
|
19375
|
+
return rows.slice(0, max);
|
|
19376
|
+
},
|
|
19377
|
+
get: async (id) => asStored(await live(id)),
|
|
19378
|
+
listArchived: async () => (await enumerate({ archived_only: true, order: "archived", include_embeddings: true })).map(
|
|
19379
|
+
(record2) => stored(record2.memory)
|
|
19380
|
+
),
|
|
19381
|
+
memoriesByTopics: async (names) => {
|
|
19382
|
+
const wanted = new Set(names.map(normalizeEntityName).filter(Boolean));
|
|
19383
|
+
const out = /* @__PURE__ */ new Map();
|
|
19384
|
+
const pages = await Promise.all(
|
|
19385
|
+
chunks([...wanted], MAX_QUERY_TOPICS).map((topics) => enumerate({ topics }))
|
|
19386
|
+
);
|
|
19387
|
+
for (const { memory } of pages.flat()) {
|
|
19388
|
+
const matched = [...canonicalTopics(memory)].filter((name) => wanted.has(name));
|
|
19389
|
+
if (matched.length) out.set(memory.memory_id, new Set(matched));
|
|
19390
|
+
}
|
|
19391
|
+
return out;
|
|
19392
|
+
},
|
|
19393
|
+
topicsByMemories: async (memoryIds) => {
|
|
19394
|
+
const out = /* @__PURE__ */ new Map();
|
|
19395
|
+
for (const { memory } of await enumerateIds(memoryIds, {
|
|
19396
|
+
include_archived: true,
|
|
19397
|
+
include_superseded: true,
|
|
19398
|
+
include_quarantined: true
|
|
19399
|
+
})) {
|
|
19400
|
+
const topics = canonicalTopics(memory);
|
|
19401
|
+
if (topics.size) out.set(memory.memory_id, topics);
|
|
19402
|
+
}
|
|
19403
|
+
return out;
|
|
19404
|
+
},
|
|
19405
|
+
create: async (input) => {
|
|
19406
|
+
const record2 = await persistence.put(newRow(input), 0);
|
|
19407
|
+
return created([record2], [input])[0];
|
|
19408
|
+
},
|
|
19409
|
+
createMany: async (inputs) => {
|
|
19410
|
+
const out = [];
|
|
19411
|
+
for (const batch of chunks(inputs, MAX_BATCH)) {
|
|
19412
|
+
let records;
|
|
19413
|
+
try {
|
|
19414
|
+
records = await persistence.putMany(
|
|
19415
|
+
batch.map((input) => ({ memory: newRow(input), expectedVersion: 0 }))
|
|
19416
|
+
);
|
|
19417
|
+
} catch (error) {
|
|
19418
|
+
if (out.length === 0) throw error;
|
|
19419
|
+
throw new RemoteMemoryPartialCreateError(out, error);
|
|
19420
|
+
}
|
|
19421
|
+
out.push(...created(records, batch));
|
|
19422
|
+
}
|
|
19423
|
+
return out;
|
|
19424
|
+
},
|
|
19425
|
+
update: async (id, patch) => {
|
|
19426
|
+
const saved = await mutate(id, "edit", (memory) => {
|
|
19427
|
+
if (memory.superseded_by) return null;
|
|
19428
|
+
memory.content = patch.content;
|
|
19429
|
+
memory.updated_at = Date.now();
|
|
19430
|
+
if (patch.scope !== void 0) {
|
|
19431
|
+
memory.level = levelForScopeChange(
|
|
19432
|
+
{ level: memory.level, scope: memory.scope },
|
|
19433
|
+
patch.scope
|
|
19434
|
+
);
|
|
19435
|
+
memory.scope = patch.scope;
|
|
19436
|
+
}
|
|
19437
|
+
if (patch.factType !== void 0) memory.fact_type = patch.factType ?? void 0;
|
|
19438
|
+
if (patch.eventTime !== void 0) {
|
|
19439
|
+
memory.event_time_start = patch.eventTime?.start ?? void 0;
|
|
19440
|
+
memory.event_time_end = patch.eventTime?.end ?? void 0;
|
|
19441
|
+
memory.event_time_kind = patch.eventTime?.kind ?? void 0;
|
|
19442
|
+
}
|
|
19443
|
+
if (patch.embedding === void 0 || patch.embedding === null) {
|
|
19444
|
+
memory.embedding = [];
|
|
19445
|
+
delete memory.embedding_model;
|
|
19446
|
+
} else {
|
|
19447
|
+
memory.embedding = storedVector(JSON.parse(patch.embedding));
|
|
19448
|
+
memory.embedding_model = patch.embeddingModel ?? model;
|
|
19449
|
+
}
|
|
19450
|
+
return memory;
|
|
19451
|
+
});
|
|
19452
|
+
if (saved && patch.embedding === void 0) embedInBackground(saved);
|
|
19453
|
+
return asStored(saved);
|
|
19454
|
+
},
|
|
19455
|
+
delete: async (id) => !!await mutate(id, "membership", (memory) => ({ ...memory, is_deleted: true })),
|
|
19456
|
+
supersede: async (id, supersededById) => {
|
|
19457
|
+
if (id === supersededById) return false;
|
|
19458
|
+
const [first, second] = [id, supersededById].sort();
|
|
19459
|
+
return serialized(
|
|
19460
|
+
first,
|
|
19461
|
+
() => serialized(second, async () => {
|
|
19462
|
+
const [old, next] = await Promise.all([live(id), live(supersededById)]);
|
|
19463
|
+
if (!old || !next || old.memory.superseded_by || next.memory.superseded_by) return false;
|
|
19464
|
+
if (old.memory.kind !== void 0 && old.memory.kind !== null) return false;
|
|
19465
|
+
const saved = await persistence.putMany([
|
|
19466
|
+
{
|
|
19467
|
+
memory: { ...old.memory, superseded_by: supersededById, superseded_at: Date.now() },
|
|
19468
|
+
expectedVersion: old
|
|
19469
|
+
},
|
|
19470
|
+
{ memory: next.memory, expectedVersion: next }
|
|
19471
|
+
]);
|
|
19472
|
+
notify("membership", saved);
|
|
19473
|
+
return true;
|
|
19474
|
+
})
|
|
19475
|
+
);
|
|
19476
|
+
},
|
|
19477
|
+
archive: async (id) => !!await mutate(
|
|
19478
|
+
id,
|
|
19479
|
+
"edit",
|
|
19480
|
+
(memory) => memory.archived_at === void 0 || memory.archived_at === null ? { ...memory, archived_at: Date.now() } : null
|
|
19481
|
+
),
|
|
19482
|
+
restore: (id) => serialized(id, async () => {
|
|
19483
|
+
const record2 = await live(id);
|
|
19484
|
+
if (!record2) return false;
|
|
19485
|
+
if (record2.memory.archived_at === void 0 || record2.memory.archived_at === null)
|
|
19486
|
+
return true;
|
|
19487
|
+
const { archived_at: _archivedAt, ...memory } = record2.memory;
|
|
19488
|
+
notify("edit", [await persistence.put(memory, record2)]);
|
|
19489
|
+
return true;
|
|
19490
|
+
}),
|
|
19491
|
+
setTopics: async (memoryId, topics) => asStored(
|
|
19492
|
+
await mutate(memoryId, "edit", (memory) => ({
|
|
19493
|
+
...memory,
|
|
19494
|
+
topics: serializeTopics(mergeTopics([], topicInputs(topics, "user"))),
|
|
19495
|
+
topics_user_managed: true,
|
|
19496
|
+
topics_updated_at: Date.now()
|
|
19497
|
+
}))
|
|
19498
|
+
),
|
|
19499
|
+
addTopics: async (memoryId, topics) => {
|
|
19500
|
+
const added = topicInputs(topics, "auto");
|
|
19501
|
+
const saved = await mutate(memoryId, "edit", (memory) => ({
|
|
19502
|
+
...memory,
|
|
19503
|
+
topics: serializeTopics(mergeTopics(parseTopics(memory.topics) ?? [], added)),
|
|
19504
|
+
topics_updated_at: Date.now()
|
|
19505
|
+
}));
|
|
19506
|
+
if (!saved) return [];
|
|
19507
|
+
const now = /* @__PURE__ */ new Date();
|
|
19508
|
+
return mergeTopics([], added).map(
|
|
19509
|
+
(topic) => ({
|
|
19510
|
+
uniqueId: normalizeEntityName(topic.name),
|
|
19511
|
+
canonicalName: normalizeEntityName(topic.name),
|
|
19512
|
+
kind: topic.kind ?? null,
|
|
19513
|
+
createdAt: now,
|
|
19514
|
+
updatedAt: now
|
|
19515
|
+
})
|
|
19516
|
+
);
|
|
19517
|
+
},
|
|
19518
|
+
setVisibility: async (id, visibility, visibilityOptions) => asStored(
|
|
19519
|
+
await mutate(id, "edit", (memory) => {
|
|
19520
|
+
memory.visibility = visibility;
|
|
19521
|
+
if (visibility === "private") delete memory.published_at;
|
|
19522
|
+
else memory.published_at ?? (memory.published_at = Date.now());
|
|
19523
|
+
if (visibilityOptions?.twinOptIn !== void 0)
|
|
19524
|
+
memory.twin_opt_in = visibilityOptions.twinOptIn;
|
|
19525
|
+
return memory;
|
|
19526
|
+
})
|
|
19527
|
+
),
|
|
19528
|
+
recall: (query, recallOptions) => pipeline.recall(query, recallOptions),
|
|
19529
|
+
retain: async (content, retainOptions) => {
|
|
19530
|
+
const result = await pipeline.retain(content, retainOptions);
|
|
19531
|
+
if (result.action === "create" || result.action === "supersede") notify("membership");
|
|
19532
|
+
else if (result.action === "update" || result.action === "merge") notify("edit");
|
|
19533
|
+
return result;
|
|
19534
|
+
},
|
|
19535
|
+
subscribe: (onChange, subscribeOptions = {}) => {
|
|
19536
|
+
const subscriber = { onChange, options: subscribeOptions };
|
|
19537
|
+
subscribers.add(subscriber);
|
|
19538
|
+
if (pollIntervalMs > 0 && !timer) {
|
|
19539
|
+
timer = setInterval(poll, pollIntervalMs);
|
|
19540
|
+
poll();
|
|
19541
|
+
}
|
|
19542
|
+
return () => {
|
|
19543
|
+
subscribers.delete(subscriber);
|
|
19544
|
+
if (subscribers.size || !timer) return;
|
|
19545
|
+
clearInterval(timer);
|
|
19546
|
+
timer = void 0;
|
|
19547
|
+
generation++;
|
|
19548
|
+
seen.clear();
|
|
19549
|
+
ready = false;
|
|
19550
|
+
cursor = void 0;
|
|
19551
|
+
pending = /* @__PURE__ */ new Set();
|
|
19552
|
+
};
|
|
19553
|
+
}
|
|
19554
|
+
};
|
|
19555
|
+
}
|
|
19556
|
+
|
|
18846
19557
|
// src/lib/memory/synthesizeProfile.ts
|
|
18847
19558
|
var DEFAULT_SYNTHESIS_MODEL = "inclusionai/ling-2.6-flash";
|
|
18848
19559
|
var DEFAULT_FACET_RECALL_LIMIT = 20;
|
|
@@ -19213,8 +19924,8 @@ async function synthesizeFacet(facet, ctx, options, prior) {
|
|
|
19213
19924
|
memories
|
|
19214
19925
|
});
|
|
19215
19926
|
const noEvidence = result.basedOn.memoryIds.length === 0;
|
|
19216
|
-
const { text:
|
|
19217
|
-
if (!
|
|
19927
|
+
const { text: text13, legitimateEmpty } = extractFacetText(result.structuredOutput);
|
|
19928
|
+
if (!text13 && !legitimateEmpty && !noEvidence) {
|
|
19218
19929
|
getLogger().warn(
|
|
19219
19930
|
"[memory/synthesizeProfile] facet synthesis returned degraded-empty; using fallback section",
|
|
19220
19931
|
{ facet: facet.key, recalledCount: result.basedOn.memoryIds.length }
|
|
@@ -19224,12 +19935,12 @@ async function synthesizeFacet(facet, ctx, options, prior) {
|
|
|
19224
19935
|
const section = {
|
|
19225
19936
|
key: facet.key,
|
|
19226
19937
|
label: facet.label,
|
|
19227
|
-
text:
|
|
19938
|
+
text: text13,
|
|
19228
19939
|
sourceMemoryIds: result.basedOn.memoryIds,
|
|
19229
19940
|
generatedAt: Date.now()
|
|
19230
19941
|
};
|
|
19231
|
-
if (options.redactor &&
|
|
19232
|
-
const redacted = await options.redactor.redactTextAsync(
|
|
19942
|
+
if (options.redactor && text13) {
|
|
19943
|
+
const redacted = await options.redactor.redactTextAsync(text13);
|
|
19233
19944
|
section.text = redacted.text;
|
|
19234
19945
|
}
|
|
19235
19946
|
if (!legitimateEmpty && !noEvidence) {
|
|
@@ -19742,10 +20453,10 @@ function createDurableAutoExtractor(options) {
|
|
|
19742
20453
|
const counted = error instanceof BatchFailureError || error instanceof LockedSourcesError && error.persistentIds.length > 0;
|
|
19743
20454
|
if (!counted) return false;
|
|
19744
20455
|
const prior = sessionFailures.get(job.id);
|
|
19745
|
-
const
|
|
19746
|
-
sessionFailures.set(job.id, { head, count });
|
|
20456
|
+
const count2 = prior?.head === head ? prior.count + 1 : 1;
|
|
20457
|
+
sessionFailures.set(job.id, { head, count: count2 });
|
|
19747
20458
|
const terminal = error instanceof BatchFailureError && error.terminal;
|
|
19748
|
-
if (!terminal &&
|
|
20459
|
+
if (!terminal && count2 < MAX_ATTEMPTS) return false;
|
|
19749
20460
|
skippedThisSession.add(job.id);
|
|
19750
20461
|
const now = clock();
|
|
19751
20462
|
const lastCounted = failedAtOf(job, head);
|
|
@@ -20049,7 +20760,7 @@ async function verifyFactSupport(items, options) {
|
|
|
20049
20760
|
}
|
|
20050
20761
|
const maxEvidenceChars = Math.max(1, options.maxEvidenceChars ?? DEFAULT_MAX_EVIDENCE_CHARS);
|
|
20051
20762
|
const redactor = resolvePiiRedactor(options.piiRedaction ?? true);
|
|
20052
|
-
const safe = async (
|
|
20763
|
+
const safe = async (text13) => redactor ? (await redactor.redactTextAsync(text13)).text : text13;
|
|
20053
20764
|
let truncatedCount = 0;
|
|
20054
20765
|
const parts = [];
|
|
20055
20766
|
for (const [i, item] of items.entries()) {
|
|
@@ -20106,7 +20817,7 @@ Which item numbers are supported?`,
|
|
|
20106
20817
|
}
|
|
20107
20818
|
return supported;
|
|
20108
20819
|
}
|
|
20109
|
-
function parseSupported(parsed,
|
|
20820
|
+
function parseSupported(parsed, count2) {
|
|
20110
20821
|
if (typeof parsed !== "object" || parsed === null) return null;
|
|
20111
20822
|
const list = parsed.supported;
|
|
20112
20823
|
if (!Array.isArray(list)) return null;
|
|
@@ -20114,7 +20825,7 @@ function parseSupported(parsed, count) {
|
|
|
20114
20825
|
for (const raw of list) {
|
|
20115
20826
|
const n = typeof raw === "number" ? raw : typeof raw === "string" ? Number(raw) : NaN;
|
|
20116
20827
|
if (!Number.isInteger(n)) continue;
|
|
20117
|
-
if (n >= 1 && n <=
|
|
20828
|
+
if (n >= 1 && n <= count2) out.add(n - 1);
|
|
20118
20829
|
}
|
|
20119
20830
|
return out;
|
|
20120
20831
|
}
|
|
@@ -20165,7 +20876,7 @@ async function verifyMemoriesForPublish(memories, sources, options) {
|
|
|
20165
20876
|
);
|
|
20166
20877
|
const pending = [];
|
|
20167
20878
|
for (const { index, uniqueId, content, ids } of withinBudget) {
|
|
20168
|
-
const evidence = ids.map((id) => resolved.get(id) ?? null).filter((
|
|
20879
|
+
const evidence = ids.map((id) => resolved.get(id) ?? null).filter((text13) => text13 !== null);
|
|
20169
20880
|
const dropped = ids.length - evidence.length;
|
|
20170
20881
|
if (ids.some((id) => unreadable.has(id))) {
|
|
20171
20882
|
results[index] = {
|
|
@@ -20668,22 +21379,22 @@ function normalizeManualFactType(value) {
|
|
|
20668
21379
|
function isSharedScope(scope) {
|
|
20669
21380
|
return scope === "shared";
|
|
20670
21381
|
}
|
|
20671
|
-
async function notifyWritten(options, input,
|
|
21382
|
+
async function notifyWritten(options, input, outcome2) {
|
|
20672
21383
|
try {
|
|
20673
|
-
await options?.onWritten?.({ input, outcome });
|
|
21384
|
+
await options?.onWritten?.({ input, outcome: outcome2 });
|
|
20674
21385
|
} catch {
|
|
20675
21386
|
}
|
|
20676
21387
|
}
|
|
20677
|
-
function describeWriteOutcome(
|
|
20678
|
-
switch (
|
|
21388
|
+
function describeWriteOutcome(outcome2) {
|
|
21389
|
+
switch (outcome2.action) {
|
|
20679
21390
|
case "create":
|
|
20680
|
-
return `Memory saved successfully (ID: ${
|
|
21391
|
+
return `Memory saved successfully (ID: ${outcome2.memoryId}).`;
|
|
20681
21392
|
case "update":
|
|
20682
21393
|
case "supersede":
|
|
20683
|
-
return `Memory saved successfully (ID: ${
|
|
21394
|
+
return `Memory saved successfully (ID: ${outcome2.memoryId}); it replaces an earlier version of this fact.`;
|
|
20684
21395
|
case "merge":
|
|
20685
21396
|
case "skip":
|
|
20686
|
-
return `The vault already holds this fact (ID: ${
|
|
21397
|
+
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.`;
|
|
20687
21398
|
case "suppressed":
|
|
20688
21399
|
return "Not saved: this matches a memory the user previously deleted. Do not re-save it.";
|
|
20689
21400
|
}
|
|
@@ -20789,9 +21500,9 @@ function createMemoryVaultTool(vaultCtx, options, embeddingOptions, cache) {
|
|
|
20789
21500
|
...folderId !== void 0 && { folderId },
|
|
20790
21501
|
...factType !== void 0 && { factType }
|
|
20791
21502
|
};
|
|
20792
|
-
const
|
|
20793
|
-
await notifyWritten(options, input,
|
|
20794
|
-
return describeWriteOutcome(
|
|
21503
|
+
const outcome2 = await options.write(input);
|
|
21504
|
+
await notifyWritten(options, input, outcome2);
|
|
21505
|
+
return describeWriteOutcome(outcome2);
|
|
20795
21506
|
}
|
|
20796
21507
|
const created = await createVaultMemoryOp(vaultCtx, {
|
|
20797
21508
|
content,
|
|
@@ -21268,8 +21979,8 @@ var sessionCache = /* @__PURE__ */ new Map();
|
|
|
21268
21979
|
function generateRequestId() {
|
|
21269
21980
|
return ++requestIdCounter;
|
|
21270
21981
|
}
|
|
21271
|
-
function parseSSEResponse(
|
|
21272
|
-
const events =
|
|
21982
|
+
function parseSSEResponse(text13) {
|
|
21983
|
+
const events = text13.split(/\n\n+/);
|
|
21273
21984
|
let lastEventData = "";
|
|
21274
21985
|
for (const event of events) {
|
|
21275
21986
|
const dataLines = [];
|
|
@@ -21291,11 +22002,11 @@ function parseSSEResponse(text12) {
|
|
|
21291
22002
|
}
|
|
21292
22003
|
async function parseResponseBody(response) {
|
|
21293
22004
|
const contentType = response.headers.get("Content-Type") || "";
|
|
21294
|
-
const
|
|
21295
|
-
if (contentType.includes("text/event-stream") ||
|
|
21296
|
-
return parseSSEResponse(
|
|
22005
|
+
const text13 = await response.text();
|
|
22006
|
+
if (contentType.includes("text/event-stream") || text13.startsWith("event:") || text13.startsWith("data:")) {
|
|
22007
|
+
return parseSSEResponse(text13);
|
|
21297
22008
|
}
|
|
21298
|
-
return JSON.parse(
|
|
22009
|
+
return JSON.parse(text13);
|
|
21299
22010
|
}
|
|
21300
22011
|
async function initializeMCPSession(accessToken) {
|
|
21301
22012
|
const requestId = generateRequestId();
|
|
@@ -22253,7 +22964,7 @@ function useChat(options) {
|
|
|
22253
22964
|
|
|
22254
22965
|
// src/expo/useChatStorage.ts
|
|
22255
22966
|
import { useCallback as useCallback4, useEffect as useEffect4, useMemo, useRef as useRef4, useState as useState4 } from "react";
|
|
22256
|
-
import { v7 as
|
|
22967
|
+
import { v7 as uuidv77 } from "uuid";
|
|
22257
22968
|
|
|
22258
22969
|
// src/lib/chat/assembleMessages.ts
|
|
22259
22970
|
function assembleMessagesWithHistory(historyMessages, callerMessages, summarySystemMessage) {
|
|
@@ -22424,9 +23135,9 @@ New lines of conversation:
|
|
|
22424
23135
|
{new_lines}
|
|
22425
23136
|
|
|
22426
23137
|
New summary:`;
|
|
22427
|
-
function estimateTokens(
|
|
22428
|
-
if (!
|
|
22429
|
-
return Math.ceil(
|
|
23138
|
+
function estimateTokens(text13) {
|
|
23139
|
+
if (!text13) return 0;
|
|
23140
|
+
return Math.ceil(text13.length / 4);
|
|
22430
23141
|
}
|
|
22431
23142
|
var PER_MESSAGE_OVERHEAD_TOKENS = 4;
|
|
22432
23143
|
var MAX_MESSAGES_PER_SUMMARIZATION = 20;
|
|
@@ -22486,14 +23197,14 @@ function splitMessagesAtThreshold(messages, tokenThreshold, minWindowMessages) {
|
|
|
22486
23197
|
}
|
|
22487
23198
|
async function redactSummaryPrompt(prompt, redactor, onPiiRedacted) {
|
|
22488
23199
|
if (!redactor) return prompt;
|
|
22489
|
-
const { text:
|
|
23200
|
+
const { text: text13, matches } = await redactor.redactTextAsync(prompt);
|
|
22490
23201
|
if (matches.length > 0 && onPiiRedacted) {
|
|
22491
23202
|
try {
|
|
22492
23203
|
onPiiRedacted(matches);
|
|
22493
23204
|
} catch {
|
|
22494
23205
|
}
|
|
22495
23206
|
}
|
|
22496
|
-
return
|
|
23207
|
+
return text13;
|
|
22497
23208
|
}
|
|
22498
23209
|
async function progressiveSummarize(options) {
|
|
22499
23210
|
const {
|
|
@@ -22910,9 +23621,9 @@ async function decryptMediaFields(media, address, signMessage, embeddedWalletSig
|
|
|
22910
23621
|
}
|
|
22911
23622
|
|
|
22912
23623
|
// src/lib/db/media/types.ts
|
|
22913
|
-
import { v7 as
|
|
23624
|
+
import { v7 as uuidv76 } from "uuid";
|
|
22914
23625
|
function generateMediaId() {
|
|
22915
|
-
return `media_${
|
|
23626
|
+
return `media_${uuidv76()}`;
|
|
22916
23627
|
}
|
|
22917
23628
|
|
|
22918
23629
|
// src/lib/db/media/operations.ts
|
|
@@ -23220,7 +23931,7 @@ function useChatStorage(options) {
|
|
|
23220
23931
|
[piiRedaction, currentConversationId]
|
|
23221
23932
|
);
|
|
23222
23933
|
const maskForEmbedding = useCallback4(
|
|
23223
|
-
(
|
|
23934
|
+
(text13) => isPiiRedactor(resolvedPiiRedaction) ? resolvedPiiRedaction.maskText(text13) : text13,
|
|
23224
23935
|
[resolvedPiiRedaction]
|
|
23225
23936
|
);
|
|
23226
23937
|
const maskEmbeddingInput = isPiiRedactor(resolvedPiiRedaction) ? maskForEmbedding : void 0;
|
|
@@ -23864,12 +24575,12 @@ function useChatStorage(options) {
|
|
|
23864
24575
|
return {
|
|
23865
24576
|
callRedactor: redactor,
|
|
23866
24577
|
callPiiRedaction: forInnerSend,
|
|
23867
|
-
maskForCall: (
|
|
24578
|
+
maskForCall: (text13) => redactor ? redactor.maskText(text13) : text13
|
|
23868
24579
|
};
|
|
23869
24580
|
};
|
|
23870
24581
|
pendingResumeRef.current = null;
|
|
23871
|
-
const effectiveAssistantUniqueId = assistantUniqueId ?? (resumable ? `msg_${
|
|
23872
|
-
const embedToolText = (
|
|
24582
|
+
const effectiveAssistantUniqueId = assistantUniqueId ?? (resumable ? `msg_${uuidv77()}` : void 0);
|
|
24583
|
+
const embedToolText = (text13, mask, masked, token) => {
|
|
23873
24584
|
const opts = {
|
|
23874
24585
|
getToken: token,
|
|
23875
24586
|
baseUrl,
|
|
@@ -23877,10 +24588,10 @@ function useChatStorage(options) {
|
|
|
23877
24588
|
maskInput: mask,
|
|
23878
24589
|
cache: embeddingCache ? maskScopedEmbeddingCache(embeddingCache, masked) : void 0
|
|
23879
24590
|
};
|
|
23880
|
-
return shouldChunkMessage(
|
|
23881
|
-
chunkText(
|
|
24591
|
+
return shouldChunkMessage(text13, DEFAULT_CHUNK_SIZE) ? generateEmbeddings(
|
|
24592
|
+
chunkText(text13).map((c) => c.text),
|
|
23882
24593
|
opts
|
|
23883
|
-
) : generateEmbedding(
|
|
24594
|
+
) : generateEmbedding(text13, opts);
|
|
23884
24595
|
};
|
|
23885
24596
|
if (walletAddress && signMessage && !hasEncryptionKey(walletAddress)) {
|
|
23886
24597
|
try {
|
|
@@ -24386,7 +25097,7 @@ function useChatStorage(options) {
|
|
|
24386
25097
|
const detachedResult = result;
|
|
24387
25098
|
if (detachedResult.detached) {
|
|
24388
25099
|
recordToolSetTurn(database, convId, matchedToolSets);
|
|
24389
|
-
const rowId = effectiveAssistantUniqueId ?? `msg_${
|
|
25100
|
+
const rowId = effectiveAssistantUniqueId ?? `msg_${uuidv77()}`;
|
|
24390
25101
|
pendingResumeRef.current = {
|
|
24391
25102
|
handle: detachedResult.resume ?? null,
|
|
24392
25103
|
convId,
|
|
@@ -24897,6 +25608,7 @@ export {
|
|
|
24897
25608
|
MEDIUM_TTL_MS,
|
|
24898
25609
|
MEMORY_KINDS,
|
|
24899
25610
|
MEMORY_LEVELS,
|
|
25611
|
+
MemoryKeyError,
|
|
24900
25612
|
MemoryLevelError,
|
|
24901
25613
|
NEVER_TTL_MS,
|
|
24902
25614
|
NODE_BUDGET,
|
|
@@ -24909,6 +25621,7 @@ export {
|
|
|
24909
25621
|
RECALL_MAX_LIMIT,
|
|
24910
25622
|
RECALL_TOOL_NAME,
|
|
24911
25623
|
RemoteMemoryError,
|
|
25624
|
+
RemoteMemoryPartialCreateError,
|
|
24912
25625
|
RerankerUnavailableError,
|
|
24913
25626
|
SDK_SCHEMA_VERSION,
|
|
24914
25627
|
SHORT_TTL_MS,
|
|
@@ -24974,6 +25687,7 @@ export {
|
|
|
24974
25687
|
createRecallTool,
|
|
24975
25688
|
createRemoteMemoryPersistence,
|
|
24976
25689
|
createRemoteMemoryPipeline,
|
|
25690
|
+
createRemoteMemoryStore,
|
|
24977
25691
|
createStockPricePreProcessor,
|
|
24978
25692
|
createStreamingDeAnonymizer,
|
|
24979
25693
|
createVaultEmbeddingCache,
|
|
@@ -24990,6 +25704,7 @@ export {
|
|
|
24990
25704
|
deleteVaultMemoryOp,
|
|
24991
25705
|
dequantizeEmbedding,
|
|
24992
25706
|
deriveKeyFromSignatureBytes,
|
|
25707
|
+
deriveMemoryKeyRing,
|
|
24993
25708
|
discoverNotionOAuthEndpoints,
|
|
24994
25709
|
eagerEmbedContent,
|
|
24995
25710
|
embedAllMessages,
|
|
@@ -25001,6 +25716,7 @@ export {
|
|
|
25001
25716
|
extractAndRetain,
|
|
25002
25717
|
extractEntitiesForMemories,
|
|
25003
25718
|
extractFacts,
|
|
25719
|
+
extractReservationReceipts,
|
|
25004
25720
|
formatFileProcessingNotes,
|
|
25005
25721
|
generateConversationId,
|
|
25006
25722
|
generateEmbedding,
|
|
@@ -25033,6 +25749,7 @@ export {
|
|
|
25033
25749
|
isPiiRedactor,
|
|
25034
25750
|
isRerankerAvailable,
|
|
25035
25751
|
maskScopedEmbeddingCache,
|
|
25752
|
+
memoryCipher,
|
|
25036
25753
|
moveMemoriesToFolderOp,
|
|
25037
25754
|
noopLogger,
|
|
25038
25755
|
onKeyAvailable,
|
|
@@ -25042,6 +25759,7 @@ export {
|
|
|
25042
25759
|
queueManager,
|
|
25043
25760
|
rankProfileCandidates,
|
|
25044
25761
|
recall,
|
|
25762
|
+
reencryptMemoryField,
|
|
25045
25763
|
reflect,
|
|
25046
25764
|
refreshEncryptionKeyIfMatches,
|
|
25047
25765
|
refreshNotionAccessToken,
|