@anuma/sdk 9.1.11 → 10.0.1
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 +573 -239
- package/dist/expo/index.d.mts +86 -1
- package/dist/expo/index.d.ts +86 -1
- package/dist/expo/index.mjs +599 -265
- package/dist/index.cjs +444 -111
- package/dist/index.d.mts +86 -1
- package/dist/index.d.ts +86 -1
- package/dist/index.mjs +444 -111
- package/dist/react/index.cjs +620 -286
- package/dist/react/index.d.mts +86 -1
- package/dist/react/index.d.ts +86 -1
- package/dist/react/index.mjs +646 -312
- package/dist/server/index.cjs +1 -0
- package/dist/server/index.mjs +1 -0
- package/dist/tools/index.cjs +19 -13
- package/dist/tools/index.d.mts +8 -12
- package/dist/tools/index.d.ts +8 -12
- package/dist/tools/index.mjs +19 -13
- package/package.json +1 -1
package/dist/react/index.mjs
CHANGED
|
@@ -1804,19 +1804,19 @@ function base64ToUint8Array(base64) {
|
|
|
1804
1804
|
// src/lib/memoryEngine/vectorEncoding.ts
|
|
1805
1805
|
var BYTES_PER_FLOAT32 = 4;
|
|
1806
1806
|
var CANONICAL_BASE64 = /^[A-Za-z0-9+/]+={0,2}$/;
|
|
1807
|
-
function encodeChunkVector(
|
|
1808
|
-
const f32 =
|
|
1807
|
+
function encodeChunkVector(vector2) {
|
|
1808
|
+
const f32 = vector2 instanceof Float32Array ? vector2 : Float32Array.from(vector2);
|
|
1809
1809
|
return uint8ArrayToBase64(new Uint8Array(f32.buffer, f32.byteOffset, f32.byteLength));
|
|
1810
1810
|
}
|
|
1811
|
-
function decodeChunkVector(
|
|
1812
|
-
if (!
|
|
1813
|
-
if (typeof
|
|
1814
|
-
if (
|
|
1811
|
+
function decodeChunkVector(vector2, onMalformed) {
|
|
1812
|
+
if (!vector2 || vector2.length === 0) return new Float32Array(0);
|
|
1813
|
+
if (typeof vector2 !== "string") return Float32Array.from(vector2);
|
|
1814
|
+
if (vector2.length % 4 !== 0 || !CANONICAL_BASE64.test(vector2)) {
|
|
1815
1815
|
onMalformed?.();
|
|
1816
1816
|
return new Float32Array(0);
|
|
1817
1817
|
}
|
|
1818
1818
|
try {
|
|
1819
|
-
const bytes2 = base64ToUint8Array(
|
|
1819
|
+
const bytes2 = base64ToUint8Array(vector2);
|
|
1820
1820
|
if (bytes2.byteLength === 0 || bytes2.byteLength % BYTES_PER_FLOAT32 !== 0) {
|
|
1821
1821
|
onMalformed?.();
|
|
1822
1822
|
return new Float32Array(0);
|
|
@@ -2300,8 +2300,8 @@ var ATTACHED_FILES_OPEN_TAG = "<attached_files>";
|
|
|
2300
2300
|
var ATTACHED_FILES_CLOSE_TAG = "</attached_files>";
|
|
2301
2301
|
var ATTACHED_FILES_PREFIX = `${ATTACHED_FILES_OPEN_TAG}
|
|
2302
2302
|
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.`;
|
|
2303
|
-
function isAttachedFilesText(
|
|
2304
|
-
return typeof
|
|
2303
|
+
function isAttachedFilesText(text15) {
|
|
2304
|
+
return typeof text15 === "string" && text15.startsWith(ATTACHED_FILES_PREFIX) && text15.endsWith(ATTACHED_FILES_CLOSE_TAG);
|
|
2305
2305
|
}
|
|
2306
2306
|
function buildAttachedFilesText(fileContext) {
|
|
2307
2307
|
return `${ATTACHED_FILES_PREFIX}
|
|
@@ -3017,7 +3017,7 @@ async function getMessageOp(ctx, uniqueId) {
|
|
|
3017
3017
|
}
|
|
3018
3018
|
return messageToStored(message, ctx.walletAddress, ctx.signMessage, ctx.embeddedWalletSigner);
|
|
3019
3019
|
}
|
|
3020
|
-
async function updateMessageEmbeddingOp(ctx, uniqueId,
|
|
3020
|
+
async function updateMessageEmbeddingOp(ctx, uniqueId, vector2, embeddingModel) {
|
|
3021
3021
|
let message;
|
|
3022
3022
|
try {
|
|
3023
3023
|
message = await ctx.messagesCollection.find(uniqueId);
|
|
@@ -3027,10 +3027,10 @@ async function updateMessageEmbeddingOp(ctx, uniqueId, vector, embeddingModel) {
|
|
|
3027
3027
|
const address = ctx.walletAddress;
|
|
3028
3028
|
await ctx.database.write(async () => {
|
|
3029
3029
|
const key = await resolveMessageEmbeddingKey(address, message.content);
|
|
3030
|
-
const storedVector2 = await serializeMessageEmbedding(key,
|
|
3030
|
+
const storedVector2 = await serializeMessageEmbedding(key, vector2);
|
|
3031
3031
|
await message.update((msg) => {
|
|
3032
3032
|
msg._setRaw("vector", storedVector2);
|
|
3033
|
-
if (msg.origin === "chunks_discarded" &&
|
|
3033
|
+
if (msg.origin === "chunks_discarded" && vector2.length > 0) {
|
|
3034
3034
|
msg._setRaw("origin", "message");
|
|
3035
3035
|
}
|
|
3036
3036
|
msg._setRaw("embedding_model", embeddingModel);
|
|
@@ -3772,49 +3772,49 @@ function makeSyntheticStoredConversation(opts, defaultTitle) {
|
|
|
3772
3772
|
var DEFAULT_CHUNK_SIZE = 400;
|
|
3773
3773
|
var DEFAULT_CHUNK_OVERLAP = 50;
|
|
3774
3774
|
var DEFAULT_MIN_CHUNK_SIZE = 50;
|
|
3775
|
-
function splitIntoSentences(
|
|
3775
|
+
function splitIntoSentences(text15) {
|
|
3776
3776
|
const sentenceRegex = /[.!?]+[\s"')}\]]*(?=\s|$)/g;
|
|
3777
3777
|
const sentences = [];
|
|
3778
3778
|
let lastIndex = 0;
|
|
3779
3779
|
let match;
|
|
3780
|
-
while ((match = sentenceRegex.exec(
|
|
3780
|
+
while ((match = sentenceRegex.exec(text15)) !== null) {
|
|
3781
3781
|
const endIndex = match.index + match[0].length;
|
|
3782
|
-
const sentence =
|
|
3782
|
+
const sentence = text15.slice(lastIndex, endIndex).trim();
|
|
3783
3783
|
if (sentence) {
|
|
3784
3784
|
sentences.push(sentence);
|
|
3785
3785
|
}
|
|
3786
3786
|
lastIndex = endIndex;
|
|
3787
3787
|
}
|
|
3788
|
-
const remaining =
|
|
3788
|
+
const remaining = text15.slice(lastIndex).trim();
|
|
3789
3789
|
if (remaining) {
|
|
3790
3790
|
sentences.push(remaining);
|
|
3791
3791
|
}
|
|
3792
3792
|
return sentences;
|
|
3793
3793
|
}
|
|
3794
|
-
function chunkText(
|
|
3794
|
+
function chunkText(text15, options) {
|
|
3795
3795
|
const {
|
|
3796
3796
|
chunkSize = DEFAULT_CHUNK_SIZE,
|
|
3797
3797
|
chunkOverlap: requestedOverlap = DEFAULT_CHUNK_OVERLAP,
|
|
3798
3798
|
minChunkSize = DEFAULT_MIN_CHUNK_SIZE
|
|
3799
3799
|
} = options ?? {};
|
|
3800
3800
|
const chunkOverlap = Math.min(requestedOverlap, chunkSize - 1);
|
|
3801
|
-
if (
|
|
3801
|
+
if (text15.length <= chunkSize) {
|
|
3802
3802
|
return [
|
|
3803
3803
|
{
|
|
3804
|
-
text:
|
|
3804
|
+
text: text15.trim(),
|
|
3805
3805
|
startOffset: 0,
|
|
3806
|
-
endOffset:
|
|
3806
|
+
endOffset: text15.length
|
|
3807
3807
|
}
|
|
3808
3808
|
];
|
|
3809
3809
|
}
|
|
3810
|
-
const sentences = splitIntoSentences(
|
|
3810
|
+
const sentences = splitIntoSentences(text15);
|
|
3811
3811
|
const chunks3 = [];
|
|
3812
3812
|
let currentChunkSentences = [];
|
|
3813
3813
|
let currentChunkStart = 0;
|
|
3814
3814
|
let currentOffset = 0;
|
|
3815
3815
|
for (let i = 0; i < sentences.length; i++) {
|
|
3816
3816
|
const sentence = sentences[i];
|
|
3817
|
-
let sentenceStart =
|
|
3817
|
+
let sentenceStart = text15.indexOf(sentence, currentOffset);
|
|
3818
3818
|
if (sentenceStart === -1) {
|
|
3819
3819
|
sentenceStart = currentOffset;
|
|
3820
3820
|
}
|
|
@@ -3861,7 +3861,7 @@ function chunkText(text14, options) {
|
|
|
3861
3861
|
if (overlapSentences.length > 0) {
|
|
3862
3862
|
currentChunkSentences = [...overlapSentences, sentence];
|
|
3863
3863
|
const overlapText = overlapSentences[0];
|
|
3864
|
-
const overlapStart =
|
|
3864
|
+
const overlapStart = text15.lastIndexOf(overlapText, currentOffset);
|
|
3865
3865
|
currentChunkStart = overlapStart === -1 ? sentenceStart : overlapStart;
|
|
3866
3866
|
} else {
|
|
3867
3867
|
currentChunkSentences = [sentence];
|
|
@@ -3881,18 +3881,18 @@ function chunkText(text14, options) {
|
|
|
3881
3881
|
chunks3.push({
|
|
3882
3882
|
text: chunkText2,
|
|
3883
3883
|
startOffset: currentChunkStart,
|
|
3884
|
-
endOffset:
|
|
3884
|
+
endOffset: text15.length
|
|
3885
3885
|
});
|
|
3886
3886
|
}
|
|
3887
3887
|
}
|
|
3888
3888
|
if (chunks3.length === 0) {
|
|
3889
|
-
const trimmedText =
|
|
3889
|
+
const trimmedText = text15.trim();
|
|
3890
3890
|
if (trimmedText.length > 0) {
|
|
3891
3891
|
return [
|
|
3892
3892
|
{
|
|
3893
3893
|
text: trimmedText,
|
|
3894
3894
|
startOffset: 0,
|
|
3895
|
-
endOffset:
|
|
3895
|
+
endOffset: text15.length
|
|
3896
3896
|
}
|
|
3897
3897
|
];
|
|
3898
3898
|
}
|
|
@@ -4584,8 +4584,8 @@ var createClient = (config = {}) => {
|
|
|
4584
4584
|
data = await response[parseAs]();
|
|
4585
4585
|
break;
|
|
4586
4586
|
case "json": {
|
|
4587
|
-
const
|
|
4588
|
-
data =
|
|
4587
|
+
const text15 = await response.text();
|
|
4588
|
+
data = text15 ? JSON.parse(text15) : {};
|
|
4589
4589
|
break;
|
|
4590
4590
|
}
|
|
4591
4591
|
case "stream":
|
|
@@ -4868,22 +4868,22 @@ function embeddingErrorFrom(response) {
|
|
|
4868
4868
|
const message = typeof response.error === "object" && response.error && "error" in response.error ? response.error.error : "API embedding failed";
|
|
4869
4869
|
return new EmbeddingHttpError(message, response.response?.status);
|
|
4870
4870
|
}
|
|
4871
|
-
async function generateEmbedding(
|
|
4871
|
+
async function generateEmbedding(text15, options) {
|
|
4872
4872
|
const total = options.totalTimeoutMs;
|
|
4873
|
-
if (total === void 0) return embedOne(
|
|
4874
|
-
return withDeadline((signal) => embedOne(
|
|
4873
|
+
if (total === void 0) return embedOne(text15, options, void 0);
|
|
4874
|
+
return withDeadline((signal) => embedOne(text15, options, signal), total, "embedding");
|
|
4875
4875
|
}
|
|
4876
4876
|
var { inFlightByCache, cachedEmbeddingModels } = getEmbeddingCacheState();
|
|
4877
|
-
async function embedOne(
|
|
4877
|
+
async function embedOne(text15, options, outer) {
|
|
4878
4878
|
const { cache } = options;
|
|
4879
|
-
if (!cache) return Array.from(await requestEmbedding(
|
|
4879
|
+
if (!cache) return Array.from(await requestEmbedding(text15, options, outer));
|
|
4880
4880
|
const model = options.model ?? DEFAULT_API_EMBEDDING_MODEL;
|
|
4881
|
-
const cached = cache.get(
|
|
4881
|
+
const cached = cache.get(text15);
|
|
4882
4882
|
const cachedModel = cached && cachedEmbeddingModels.get(cached);
|
|
4883
4883
|
if (cached && (cachedModel === void 0 || cachedModel === model)) return Array.from(cached);
|
|
4884
4884
|
const inFlight = inFlightByCache.get(cache) ?? /* @__PURE__ */ new Map();
|
|
4885
4885
|
inFlightByCache.set(cache, inFlight);
|
|
4886
|
-
const requestKey = JSON.stringify([model,
|
|
4886
|
+
const requestKey = JSON.stringify([model, text15]);
|
|
4887
4887
|
const pending = inFlight.get(requestKey);
|
|
4888
4888
|
if (pending) {
|
|
4889
4889
|
try {
|
|
@@ -4892,18 +4892,18 @@ async function embedOne(text14, options, outer) {
|
|
|
4892
4892
|
if (outer?.aborted) throw err;
|
|
4893
4893
|
}
|
|
4894
4894
|
}
|
|
4895
|
-
const request = requestEmbedding(
|
|
4895
|
+
const request = requestEmbedding(text15, options, outer);
|
|
4896
4896
|
inFlight.set(requestKey, request);
|
|
4897
4897
|
try {
|
|
4898
4898
|
const embedding2 = await request;
|
|
4899
4899
|
cachedEmbeddingModels.set(embedding2, model);
|
|
4900
|
-
cache.set(
|
|
4900
|
+
cache.set(text15, embedding2);
|
|
4901
4901
|
return Array.from(embedding2);
|
|
4902
4902
|
} finally {
|
|
4903
4903
|
if (inFlight.get(requestKey) === request) inFlight.delete(requestKey);
|
|
4904
4904
|
}
|
|
4905
4905
|
}
|
|
4906
|
-
async function requestEmbedding(
|
|
4906
|
+
async function requestEmbedding(text15, options, outer) {
|
|
4907
4907
|
const { baseUrl = BASE_URL, model } = options;
|
|
4908
4908
|
const timeoutMs = options.timeoutMs ?? DEFAULT_EMBEDDING_REQUEST_TIMEOUT_MS;
|
|
4909
4909
|
const headers = {
|
|
@@ -4915,7 +4915,7 @@ async function requestEmbedding(text14, options, outer) {
|
|
|
4915
4915
|
(signal) => postApiV1Embeddings({
|
|
4916
4916
|
baseUrl,
|
|
4917
4917
|
body: {
|
|
4918
|
-
input: options.maskInput ? options.maskInput(
|
|
4918
|
+
input: options.maskInput ? options.maskInput(text15) : text15,
|
|
4919
4919
|
model: model ?? DEFAULT_API_EMBEDDING_MODEL
|
|
4920
4920
|
},
|
|
4921
4921
|
headers,
|
|
@@ -5176,10 +5176,10 @@ async function chunkAndEmbedMessage(ctx, messageId, options) {
|
|
|
5176
5176
|
}
|
|
5177
5177
|
const textChunks = chunkText(message.content, options);
|
|
5178
5178
|
const chunkTexts = textChunks.map((c) => c.text);
|
|
5179
|
-
const
|
|
5179
|
+
const embeddings2 = await generateEmbeddings(chunkTexts, options);
|
|
5180
5180
|
const messageChunks = textChunks.map((chunk, i) => ({
|
|
5181
5181
|
text: chunk.text,
|
|
5182
|
-
vector:
|
|
5182
|
+
vector: embeddings2[i],
|
|
5183
5183
|
startOffset: chunk.startOffset,
|
|
5184
5184
|
endOffset: chunk.endOffset
|
|
5185
5185
|
}));
|
|
@@ -5294,13 +5294,13 @@ async function chunkAndEmbedAllMessages(ctx, options, filter) {
|
|
|
5294
5294
|
if (shortMessages.length > 0) {
|
|
5295
5295
|
try {
|
|
5296
5296
|
const texts = shortMessages.map((m) => m.content);
|
|
5297
|
-
const
|
|
5297
|
+
const embeddings2 = await generateEmbeddings(texts, options);
|
|
5298
5298
|
for (let i = 0; i < shortMessages.length; i++) {
|
|
5299
5299
|
try {
|
|
5300
5300
|
await updateMessageEmbeddingOp(
|
|
5301
5301
|
ctx,
|
|
5302
5302
|
shortMessages[i].uniqueId,
|
|
5303
|
-
|
|
5303
|
+
embeddings2[i],
|
|
5304
5304
|
embeddingModel
|
|
5305
5305
|
);
|
|
5306
5306
|
embeddedCount++;
|
|
@@ -5319,10 +5319,10 @@ async function chunkAndEmbedAllMessages(ctx, options, filter) {
|
|
|
5319
5319
|
for (const msg of longMessages) {
|
|
5320
5320
|
try {
|
|
5321
5321
|
const chunkTexts = msg.textChunks.map((c) => c.text);
|
|
5322
|
-
const
|
|
5322
|
+
const embeddings2 = await generateEmbeddings(chunkTexts, options);
|
|
5323
5323
|
const messageChunks = msg.textChunks.map((chunk, i) => ({
|
|
5324
5324
|
text: chunk.text,
|
|
5325
|
-
vector:
|
|
5325
|
+
vector: embeddings2[i],
|
|
5326
5326
|
startOffset: chunk.startOffset,
|
|
5327
5327
|
endOffset: chunk.endOffset
|
|
5328
5328
|
}));
|
|
@@ -5341,10 +5341,10 @@ var cryptoPriceCentroid = [0.025576787463333337, 0.0017598020599999997, -0.01339
|
|
|
5341
5341
|
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];
|
|
5342
5342
|
|
|
5343
5343
|
// src/lib/chat/preProcessor.ts
|
|
5344
|
-
function wrapAsUserText(prefix,
|
|
5345
|
-
if (!
|
|
5344
|
+
function wrapAsUserText(prefix, text15) {
|
|
5345
|
+
if (!text15 || !text15.trim()) return [];
|
|
5346
5346
|
return [{ role: "user", content: [{ type: "text", text: `${prefix}
|
|
5347
|
-
${
|
|
5347
|
+
${text15}` }] }];
|
|
5348
5348
|
}
|
|
5349
5349
|
|
|
5350
5350
|
// src/lib/chat/cryptoPriceClassifier.ts
|
|
@@ -5364,8 +5364,8 @@ async function classifyCryptoPrice(prompt, options) {
|
|
|
5364
5364
|
}
|
|
5365
5365
|
async function classifyCryptoPriceBatch(prompts, options) {
|
|
5366
5366
|
const { margin = 0.02, ...embeddingOptions } = options;
|
|
5367
|
-
const
|
|
5368
|
-
return
|
|
5367
|
+
const embeddings2 = await generateEmbeddings(prompts, embeddingOptions);
|
|
5368
|
+
return embeddings2.map((emb) => classify(emb, margin));
|
|
5369
5369
|
}
|
|
5370
5370
|
function createCryptoPricePreProcessor(options = {}) {
|
|
5371
5371
|
const margin = options.margin ?? 0.02;
|
|
@@ -6100,7 +6100,7 @@ function findMatchingTools(promptEmbeddings, tools, options) {
|
|
|
6100
6100
|
if (!tools || tools.length === 0) {
|
|
6101
6101
|
return [];
|
|
6102
6102
|
}
|
|
6103
|
-
const
|
|
6103
|
+
const embeddings2 = Array.isArray(promptEmbeddings[0]) ? promptEmbeddings : [promptEmbeddings];
|
|
6104
6104
|
const results = [];
|
|
6105
6105
|
for (const tool of tools) {
|
|
6106
6106
|
if (!tool.embedding || tool.embedding.length === 0) {
|
|
@@ -6108,7 +6108,7 @@ function findMatchingTools(promptEmbeddings, tools, options) {
|
|
|
6108
6108
|
}
|
|
6109
6109
|
try {
|
|
6110
6110
|
let maxSimilarity = -Infinity;
|
|
6111
|
-
for (const embedding2 of
|
|
6111
|
+
for (const embedding2 of embeddings2) {
|
|
6112
6112
|
const similarity = cosineSimilarity(embedding2, tool.embedding);
|
|
6113
6113
|
if (similarity > maxSimilarity) {
|
|
6114
6114
|
maxSimilarity = similarity;
|
|
@@ -6139,12 +6139,12 @@ function scoreTools(promptEmbeddings, tools) {
|
|
|
6139
6139
|
const scores = /* @__PURE__ */ new Map();
|
|
6140
6140
|
if (!promptEmbeddings || promptEmbeddings.length === 0) return scores;
|
|
6141
6141
|
if (!tools || tools.length === 0) return scores;
|
|
6142
|
-
const
|
|
6142
|
+
const embeddings2 = Array.isArray(promptEmbeddings[0]) ? promptEmbeddings : [promptEmbeddings];
|
|
6143
6143
|
for (const tool of tools) {
|
|
6144
6144
|
if (!tool.embedding || tool.embedding.length === 0) continue;
|
|
6145
6145
|
let maxSimilarity = -Infinity;
|
|
6146
6146
|
try {
|
|
6147
|
-
for (const embedding2 of
|
|
6147
|
+
for (const embedding2 of embeddings2) {
|
|
6148
6148
|
const similarity = cosineSimilarity(embedding2, tool.embedding);
|
|
6149
6149
|
if (similarity > maxSimilarity) maxSimilarity = similarity;
|
|
6150
6150
|
}
|
|
@@ -6355,13 +6355,13 @@ function createServerToolsFilter(options = {}) {
|
|
|
6355
6355
|
const exclude = new Set(options.excludeTools ?? []);
|
|
6356
6356
|
const sets = options.toolSets ?? [];
|
|
6357
6357
|
const matchOpts = options.matchOptions;
|
|
6358
|
-
const filter = (
|
|
6359
|
-
const matches = findMatchingTools(
|
|
6358
|
+
const filter = (embeddings2, tools) => {
|
|
6359
|
+
const matches = findMatchingTools(embeddings2, tools, matchOpts);
|
|
6360
6360
|
if (matches.length === 0) return [];
|
|
6361
6361
|
const matchedNames = new Set(matches.map((m) => m.tool.name));
|
|
6362
6362
|
let finalNames;
|
|
6363
6363
|
if (sets.length > 0) {
|
|
6364
|
-
const scores = scoreTools(
|
|
6364
|
+
const scores = scoreTools(embeddings2, tools);
|
|
6365
6365
|
const selectedScores = new Map(
|
|
6366
6366
|
[...scores].filter(([name]) => matchedNames.has(name) && !exclude.has(name))
|
|
6367
6367
|
);
|
|
@@ -8443,13 +8443,13 @@ var StreamSmoother = class {
|
|
|
8443
8443
|
/**
|
|
8444
8444
|
* Add text to the buffer. If smoothing is disabled, passes through immediately.
|
|
8445
8445
|
*/
|
|
8446
|
-
push(
|
|
8447
|
-
if (this.destroyed || !
|
|
8446
|
+
push(text15) {
|
|
8447
|
+
if (this.destroyed || !text15) return;
|
|
8448
8448
|
if (!this.enabled) {
|
|
8449
|
-
this.callback(
|
|
8449
|
+
this.callback(text15);
|
|
8450
8450
|
return;
|
|
8451
8451
|
}
|
|
8452
|
-
this.buffer +=
|
|
8452
|
+
this.buffer += text15;
|
|
8453
8453
|
this.ensureTimer();
|
|
8454
8454
|
}
|
|
8455
8455
|
/**
|
|
@@ -8460,9 +8460,9 @@ var StreamSmoother = class {
|
|
|
8460
8460
|
if (this.destroyed) return;
|
|
8461
8461
|
this.stopTimer();
|
|
8462
8462
|
if (this.buffer.length > 0) {
|
|
8463
|
-
const
|
|
8463
|
+
const text15 = this.buffer;
|
|
8464
8464
|
this.buffer = "";
|
|
8465
|
-
this.callback(
|
|
8465
|
+
this.callback(text15);
|
|
8466
8466
|
}
|
|
8467
8467
|
this.resolveDrain();
|
|
8468
8468
|
}
|
|
@@ -8529,9 +8529,9 @@ var StreamSmoother = class {
|
|
|
8529
8529
|
const currentSpeed = this.getCurrentSpeed(elapsed);
|
|
8530
8530
|
const charsThisTick = Math.max(1, Math.round(currentSpeed * (TICK_INTERVAL / 1e3)));
|
|
8531
8531
|
const toRelease = Math.min(charsThisTick, this.buffer.length);
|
|
8532
|
-
const
|
|
8532
|
+
const text15 = this.buffer.slice(0, toRelease);
|
|
8533
8533
|
this.buffer = this.buffer.slice(toRelease);
|
|
8534
|
-
this.callback(
|
|
8534
|
+
this.callback(text15);
|
|
8535
8535
|
if (this.buffer.length === 0) {
|
|
8536
8536
|
this.stopTimer();
|
|
8537
8537
|
this.resolveDrain();
|
|
@@ -8976,9 +8976,9 @@ async function runToolLoop(options) {
|
|
|
8976
8976
|
messages = await redactBatch(messages);
|
|
8977
8977
|
if (preProcessors?.length) {
|
|
8978
8978
|
try {
|
|
8979
|
-
const
|
|
8980
|
-
if (
|
|
8981
|
-
const embedding2 = await generateEmbedding(
|
|
8979
|
+
const text15 = extractLastUserText(messages);
|
|
8980
|
+
if (text15.length > 0) {
|
|
8981
|
+
const embedding2 = await generateEmbedding(text15, {
|
|
8982
8982
|
apiKey: headers?.["X-API-Key"],
|
|
8983
8983
|
getToken: token ? () => Promise.resolve(token) : void 0,
|
|
8984
8984
|
baseUrl
|
|
@@ -8986,7 +8986,7 @@ async function runToolLoop(options) {
|
|
|
8986
8986
|
const results = await Promise.all(
|
|
8987
8987
|
preProcessors.map(async (p) => {
|
|
8988
8988
|
try {
|
|
8989
|
-
return await p({ prompt:
|
|
8989
|
+
return await p({ prompt: text15, embedding: embedding2, signal: combinedSignal });
|
|
8990
8990
|
} catch (err) {
|
|
8991
8991
|
console.warn("[runToolLoop] pre-processor failed:", err);
|
|
8992
8992
|
return void 0;
|
|
@@ -9145,11 +9145,11 @@ async function runToolLoop(options) {
|
|
|
9145
9145
|
}
|
|
9146
9146
|
});
|
|
9147
9147
|
accumulator = createStreamAccumulator(model || void 0);
|
|
9148
|
-
contentSmoother = new StreamSmoother((
|
|
9149
|
-
if (emitData) emitData(
|
|
9148
|
+
contentSmoother = new StreamSmoother((text15) => {
|
|
9149
|
+
if (emitData) emitData(text15);
|
|
9150
9150
|
}, smoothing);
|
|
9151
|
-
thinkingSmoother = new StreamSmoother((
|
|
9152
|
-
if (emitThinking) emitThinking(
|
|
9151
|
+
thinkingSmoother = new StreamSmoother((text15) => {
|
|
9152
|
+
if (emitThinking) emitThinking(text15);
|
|
9153
9153
|
}, smoothing);
|
|
9154
9154
|
let chunksEmittedDownstream = false;
|
|
9155
9155
|
try {
|
|
@@ -9654,11 +9654,11 @@ Executing tool: ${toolInfo}
|
|
|
9654
9654
|
}
|
|
9655
9655
|
});
|
|
9656
9656
|
currentAccumulator = createStreamAccumulator(model || void 0);
|
|
9657
|
-
contContentSmoother = new StreamSmoother((
|
|
9658
|
-
if (emitData) emitData(
|
|
9657
|
+
contContentSmoother = new StreamSmoother((text15) => {
|
|
9658
|
+
if (emitData) emitData(text15);
|
|
9659
9659
|
}, smoothing);
|
|
9660
|
-
contThinkingSmoother = new StreamSmoother((
|
|
9661
|
-
if (emitThinking) emitThinking(
|
|
9660
|
+
contThinkingSmoother = new StreamSmoother((text15) => {
|
|
9661
|
+
if (emitThinking) emitThinking(text15);
|
|
9662
9662
|
}, smoothing);
|
|
9663
9663
|
let chunksEmittedDownstream = false;
|
|
9664
9664
|
try {
|
|
@@ -9885,11 +9885,11 @@ async function resumeStream(options) {
|
|
|
9885
9885
|
} = options;
|
|
9886
9886
|
const strategy = getStrategy(handle.apiType);
|
|
9887
9887
|
const accumulator = createStreamAccumulator(handle.model || void 0);
|
|
9888
|
-
const contentSmoother = new StreamSmoother((
|
|
9889
|
-
if (onData) onData(
|
|
9888
|
+
const contentSmoother = new StreamSmoother((text15) => {
|
|
9889
|
+
if (onData) onData(text15);
|
|
9890
9890
|
}, smoothing);
|
|
9891
|
-
const thinkingSmoother = new StreamSmoother((
|
|
9892
|
-
if (onThinking) onThinking(
|
|
9891
|
+
const thinkingSmoother = new StreamSmoother((text15) => {
|
|
9892
|
+
if (onThinking) onThinking(text15);
|
|
9893
9893
|
}, smoothing);
|
|
9894
9894
|
const idleController = new AbortController();
|
|
9895
9895
|
let watchdog;
|
|
@@ -10029,8 +10029,8 @@ async function classifyStockPrice(prompt, options) {
|
|
|
10029
10029
|
}
|
|
10030
10030
|
async function classifyStockPriceBatch(prompts, options) {
|
|
10031
10031
|
const { margin = 0.02, ...embeddingOptions } = options;
|
|
10032
|
-
const
|
|
10033
|
-
return
|
|
10032
|
+
const embeddings2 = await generateEmbeddings(prompts, embeddingOptions);
|
|
10033
|
+
return embeddings2.map((emb) => classify2(emb, margin));
|
|
10034
10034
|
}
|
|
10035
10035
|
function createStockPricePreProcessor(options = {}) {
|
|
10036
10036
|
const margin = options.margin ?? 0.02;
|
|
@@ -10069,8 +10069,8 @@ async function classifyWeather(prompt, options) {
|
|
|
10069
10069
|
}
|
|
10070
10070
|
async function classifyWeatherBatch(prompts, options) {
|
|
10071
10071
|
const { margin = 0.02, ...embeddingOptions } = options;
|
|
10072
|
-
const
|
|
10073
|
-
return
|
|
10072
|
+
const embeddings2 = await generateEmbeddings(prompts, embeddingOptions);
|
|
10073
|
+
return embeddings2.map((emb) => classify3(emb, margin));
|
|
10074
10074
|
}
|
|
10075
10075
|
function createWeatherPreProcessor(options = {}) {
|
|
10076
10076
|
const margin = options.margin ?? 0.02;
|
|
@@ -10109,8 +10109,8 @@ async function classifyWebSearch(prompt, options) {
|
|
|
10109
10109
|
}
|
|
10110
10110
|
async function classifyWebSearchBatch(prompts, options) {
|
|
10111
10111
|
const { margin = 0.02, ...embeddingOptions } = options;
|
|
10112
|
-
const
|
|
10113
|
-
return
|
|
10112
|
+
const embeddings2 = await generateEmbeddings(prompts, embeddingOptions);
|
|
10113
|
+
return embeddings2.map((emb) => classify4(emb, margin));
|
|
10114
10114
|
}
|
|
10115
10115
|
function createWebSearchPreProcessor(options = {}) {
|
|
10116
10116
|
const margin = options.margin ?? 0.02;
|
|
@@ -10489,6 +10489,7 @@ function createNearbyRequest(options, apiPath = "/api/private-memories") {
|
|
|
10489
10489
|
}
|
|
10490
10490
|
throw error;
|
|
10491
10491
|
}
|
|
10492
|
+
if (response.status === 204) return null;
|
|
10492
10493
|
return await response.json();
|
|
10493
10494
|
} catch (error) {
|
|
10494
10495
|
if (timedOut) throw new RemoteMemoryError("Nearby request timed out", 408, "timeout");
|
|
@@ -10864,6 +10865,16 @@ var ChatStoreError = class extends Error {
|
|
|
10864
10865
|
// src/lib/chatStore/remote.ts
|
|
10865
10866
|
var kinds = /* @__PURE__ */ new Set(["conversation", "message", "summary", "project", "memory_links"]);
|
|
10866
10867
|
var cipherPattern = /^enc:v\d+:(?:[0-9a-f]{2}){28,}$/i;
|
|
10868
|
+
var maxPayload = 2 * 1024 * 1024;
|
|
10869
|
+
var storedDims = 1536;
|
|
10870
|
+
var maxRequestCiphertext = 8 * 1024 * 1024;
|
|
10871
|
+
var maxGetRefs = 50;
|
|
10872
|
+
var maxImportRecords = 100;
|
|
10873
|
+
var maxVerifyRevisions = 1e3;
|
|
10874
|
+
var maxChunksPerRecord = 16;
|
|
10875
|
+
var maxChunksPerRequest = 200;
|
|
10876
|
+
var maxAttachmentBytes = 50 * 1024 * 1024;
|
|
10877
|
+
var attachmentIdPattern = /^[0-9a-f]{32}$/;
|
|
10867
10878
|
var metadata = [
|
|
10868
10879
|
"kind",
|
|
10869
10880
|
"id",
|
|
@@ -10906,7 +10917,62 @@ function validRecord(value) {
|
|
|
10906
10917
|
))
|
|
10907
10918
|
return false;
|
|
10908
10919
|
const root = value.kind === "conversation" || value.kind === "project";
|
|
10909
|
-
return root ? value.conversationId === ""
|
|
10920
|
+
return root ? value.conversationId === "" : id(value.conversationId);
|
|
10921
|
+
}
|
|
10922
|
+
function embeddings(write) {
|
|
10923
|
+
if (write.embeddings === void 0) return true;
|
|
10924
|
+
return Array.isArray(write.embeddings) && !write.record.isDeleted && (write.record.kind === "message" || write.record.kind === "summary") && write.embeddings.length <= maxChunksPerRecord && (write.embeddingModel === void 0 || typeof write.embeddingModel === "string" && write.embeddingModel.length <= 256) && Array.from({ length: write.embeddings.length }, (_, i) => i).every(
|
|
10925
|
+
(i) => vector(write.embeddings?.[i])
|
|
10926
|
+
);
|
|
10927
|
+
}
|
|
10928
|
+
function vector(v) {
|
|
10929
|
+
if (!Array.isArray(v) || v.length !== 1536 && v.length !== 4096) return false;
|
|
10930
|
+
let nonZero = false;
|
|
10931
|
+
for (let i = 0; i < v.length; i++) {
|
|
10932
|
+
const x = v[i];
|
|
10933
|
+
if (typeof x !== "number" || !Number.isFinite(x)) return false;
|
|
10934
|
+
if (i < storedDims && x !== 0) nonZero = true;
|
|
10935
|
+
}
|
|
10936
|
+
return nonZero;
|
|
10937
|
+
}
|
|
10938
|
+
function vectorFields(write) {
|
|
10939
|
+
return {
|
|
10940
|
+
...write.embeddings !== void 0 ? { embeddings: write.embeddings.map((v) => v.slice(0, storedDims)) } : {},
|
|
10941
|
+
...write.embeddingModel !== void 0 ? { embedding_model: write.embeddingModel } : {}
|
|
10942
|
+
};
|
|
10943
|
+
}
|
|
10944
|
+
function text2(value) {
|
|
10945
|
+
return typeof value === "string";
|
|
10946
|
+
}
|
|
10947
|
+
function timestamp(value) {
|
|
10948
|
+
return typeof value === "string" && Number.isFinite(Date.parse(value));
|
|
10949
|
+
}
|
|
10950
|
+
function presigned(value) {
|
|
10951
|
+
if (!object(value) || !text2(value.url) || !/^https:\/\//.test(value.url) || !text2(value.method) || !object(value.headers) || !Object.values(value.headers).every(text2) || !timestamp(value.expires_at))
|
|
10952
|
+
invalid();
|
|
10953
|
+
return {
|
|
10954
|
+
url: value.url,
|
|
10955
|
+
method: value.method,
|
|
10956
|
+
headers: value.headers,
|
|
10957
|
+
expiresAt: value.expires_at
|
|
10958
|
+
};
|
|
10959
|
+
}
|
|
10960
|
+
function attachment(value) {
|
|
10961
|
+
if (!object(value) || !text2(value.attachment_id) || !attachmentIdPattern.test(value.attachment_id) || !integer(value.size_bytes, 1) || value.state !== "pending" && value.state !== "committed" || value.owner_kind !== void 0 && value.owner_kind !== "message" && value.owner_kind !== "summary" || value.owner_id !== void 0 && !id(value.owner_id) || !timestamp(value.created_at) || value.committed_at !== void 0 && !timestamp(value.committed_at))
|
|
10962
|
+
invalid();
|
|
10963
|
+
return {
|
|
10964
|
+
id: value.attachment_id,
|
|
10965
|
+
sizeBytes: value.size_bytes,
|
|
10966
|
+
state: value.state,
|
|
10967
|
+
...value.owner_kind !== void 0 ? { ownerKind: value.owner_kind } : {},
|
|
10968
|
+
...value.owner_id !== void 0 ? { ownerId: value.owner_id } : {},
|
|
10969
|
+
createdAt: value.created_at,
|
|
10970
|
+
...value.committed_at !== void 0 ? { committedAt: value.committed_at } : {}
|
|
10971
|
+
};
|
|
10972
|
+
}
|
|
10973
|
+
function ref(value) {
|
|
10974
|
+
if (!object(value) || !text2(value.kind) || !kinds.has(value.kind) || !id(value.id)) invalid();
|
|
10975
|
+
return { kind: value.kind, id: value.id };
|
|
10910
10976
|
}
|
|
10911
10977
|
function sameMetadata(a, b) {
|
|
10912
10978
|
return metadata.every((key) => a[key] === b[key]);
|
|
@@ -10962,8 +11028,11 @@ async function createRemoteChatStore(options) {
|
|
|
10962
11028
|
isDeleted: r.is_deleted,
|
|
10963
11029
|
data: {}
|
|
10964
11030
|
};
|
|
10965
|
-
if (!validRecord(plain) || typeof r.payload !== "string" || r.payload.length >
|
|
11031
|
+
if (!validRecord(plain) || typeof r.payload !== "string" || r.payload.length > maxPayload)
|
|
10966
11032
|
invalid();
|
|
11033
|
+
if (plain.isDeleted && r.payload === "")
|
|
11034
|
+
return { record: plain, version: value.version, serverUpdatedAt: value.server_updated_at };
|
|
11035
|
+
if (!cipherPattern.test(r.payload)) invalid();
|
|
10967
11036
|
const envelope = JSON.parse(await decrypt(r.payload));
|
|
10968
11037
|
if (!object(envelope) || envelope.schema !== 1 || envelope.account_id !== accountId || envelope.key_id !== keyId || !validRecord(envelope.record) || !sameMetadata(plain, envelope.record))
|
|
10969
11038
|
invalid();
|
|
@@ -10973,30 +11042,46 @@ async function createRemoteChatStore(options) {
|
|
|
10973
11042
|
serverUpdatedAt: value.server_updated_at
|
|
10974
11043
|
};
|
|
10975
11044
|
};
|
|
10976
|
-
const
|
|
10977
|
-
if (
|
|
11045
|
+
const seal = async (record2, signal) => {
|
|
11046
|
+
if (record2.isDeleted) return "";
|
|
11047
|
+
const payload = await encrypt(
|
|
11048
|
+
JSON.stringify({ schema: 1, account_id: accountId, key_id: keyId, record: record2 })
|
|
11049
|
+
);
|
|
11050
|
+
signal?.throwIfAborted();
|
|
11051
|
+
if (!cipherPattern.test(payload) || payload.length > maxPayload) invalid();
|
|
11052
|
+
return payload;
|
|
11053
|
+
};
|
|
11054
|
+
const capture = (items, max, signal) => {
|
|
11055
|
+
if (!Array.isArray(items) || items.length < 1 || items.length > max) invalid();
|
|
10978
11056
|
const seen = /* @__PURE__ */ new Set();
|
|
10979
|
-
|
|
11057
|
+
let chunks3 = 0;
|
|
11058
|
+
return items.map((item) => {
|
|
10980
11059
|
signal?.throwIfAborted();
|
|
10981
|
-
if (!validRecord(
|
|
10982
|
-
|
|
10983
|
-
|
|
11060
|
+
if (!validRecord(item.record) || !embeddings(item)) invalid();
|
|
11061
|
+
chunks3 += item.embeddings?.length ?? 0;
|
|
11062
|
+
if (chunks3 > maxChunksPerRequest) invalid();
|
|
11063
|
+
const copy = JSON.parse(JSON.stringify(item));
|
|
11064
|
+
const recordKey = `${copy.record.kind}/${copy.record.id}`;
|
|
10984
11065
|
if (seen.has(recordKey)) invalid();
|
|
10985
11066
|
seen.add(recordKey);
|
|
10986
|
-
return
|
|
11067
|
+
return copy;
|
|
10987
11068
|
});
|
|
11069
|
+
};
|
|
11070
|
+
const putMany = async (writes, signal) => {
|
|
11071
|
+
if (Array.isArray(writes) && writes.some((w) => !integer(w.expectedVersion)))
|
|
11072
|
+
invalid();
|
|
11073
|
+
const captured = capture(writes, 25, signal);
|
|
10988
11074
|
let bytes2 = 0;
|
|
10989
11075
|
const prepared = [];
|
|
10990
11076
|
for (const write of captured) {
|
|
10991
|
-
const
|
|
10992
|
-
const payload = await encrypt(
|
|
10993
|
-
JSON.stringify({ schema: 1, account_id: accountId, key_id: keyId, record: record2 })
|
|
10994
|
-
);
|
|
10995
|
-
signal?.throwIfAborted();
|
|
10996
|
-
if (!cipherPattern.test(payload) || payload.length > 2 * 1024 * 1024) invalid();
|
|
11077
|
+
const payload = await seal(write.record, signal);
|
|
10997
11078
|
bytes2 += payload.length;
|
|
10998
|
-
if (bytes2 >
|
|
10999
|
-
prepared.push({
|
|
11079
|
+
if (bytes2 > maxRequestCiphertext) invalid();
|
|
11080
|
+
prepared.push({
|
|
11081
|
+
record: wire(write.record, payload),
|
|
11082
|
+
expected_version: write.expectedVersion,
|
|
11083
|
+
...vectorFields(write)
|
|
11084
|
+
});
|
|
11000
11085
|
}
|
|
11001
11086
|
const result = await request(
|
|
11002
11087
|
"/records/batch",
|
|
@@ -11011,7 +11096,8 @@ async function createRemoteChatStore(options) {
|
|
|
11011
11096
|
const out = [];
|
|
11012
11097
|
for (let i = 0; i < result.items.length; i++) {
|
|
11013
11098
|
const value = result.items[i];
|
|
11014
|
-
|
|
11099
|
+
const deleted = prepared[i].record.is_deleted;
|
|
11100
|
+
if (!object(value) || !object(value.record) || value.record.kind !== prepared[i].record.kind || value.record.id !== prepared[i].record.id || value.record.payload !== prepared[i].record.payload || (deleted ? value.record.is_deleted !== true || !integer(value.version, 1) : value.version !== prepared[i].expected_version + 1))
|
|
11015
11101
|
invalid();
|
|
11016
11102
|
out.push(await decode(value));
|
|
11017
11103
|
}
|
|
@@ -11040,7 +11126,7 @@ async function createRemoteChatStore(options) {
|
|
|
11040
11126
|
async list(query) {
|
|
11041
11127
|
const limit = query.limit ?? 20;
|
|
11042
11128
|
const parent = query.conversationId ?? "";
|
|
11043
|
-
if (!kinds.has(query.kind) || !integer(limit, 1) || query.includeDeleted !== void 0 && typeof query.includeDeleted !== "boolean" || limit > 50 || (query.cursor?.length ?? 0) > 2048 || (query.kind === "conversation" || query.kind === "project" ? parent !== "" : !id(parent)))
|
|
11129
|
+
if (!kinds.has(query.kind) || !integer(limit, 1) || query.includeDeleted !== void 0 && typeof query.includeDeleted !== "boolean" || limit > (query.kind === "message" ? 200 : 50) || (query.cursor?.length ?? 0) > 2048 || (query.kind === "conversation" || query.kind === "project" ? parent !== "" : !id(parent)))
|
|
11044
11130
|
invalid();
|
|
11045
11131
|
const params = new URLSearchParams({
|
|
11046
11132
|
account_id: String(accountId),
|
|
@@ -11051,7 +11137,7 @@ async function createRemoteChatStore(options) {
|
|
|
11051
11137
|
});
|
|
11052
11138
|
if (query.cursor) params.set("cursor", query.cursor);
|
|
11053
11139
|
const value = await request(`/records?${params}`, {}, query.signal);
|
|
11054
|
-
if (!object(value) || !Array.isArray(value.items) || value.items.length > limit || value.next_cursor !== void 0 && (typeof value.next_cursor !== "string" || value.next_cursor.length > 2048))
|
|
11140
|
+
if (!object(value) || !Array.isArray(value.items) || value.items.length > limit || value.next_cursor !== void 0 && (typeof value.next_cursor !== "string" || value.next_cursor.length > 2048) || value.total !== void 0 && !integer(value.total))
|
|
11055
11141
|
invalid();
|
|
11056
11142
|
const items = [];
|
|
11057
11143
|
for (const item of value.items) {
|
|
@@ -11061,27 +11147,274 @@ async function createRemoteChatStore(options) {
|
|
|
11061
11147
|
items.push(result);
|
|
11062
11148
|
}
|
|
11063
11149
|
query.signal?.throwIfAborted();
|
|
11064
|
-
return {
|
|
11150
|
+
return {
|
|
11151
|
+
items,
|
|
11152
|
+
...value.next_cursor ? { nextCursor: value.next_cursor } : {},
|
|
11153
|
+
...value.total !== void 0 ? { total: value.total } : {}
|
|
11154
|
+
};
|
|
11155
|
+
},
|
|
11156
|
+
putMany,
|
|
11157
|
+
async getMany(refs, signal) {
|
|
11158
|
+
if (!Array.isArray(refs)) invalid();
|
|
11159
|
+
const wanted = /* @__PURE__ */ new Map();
|
|
11160
|
+
for (const r of refs) {
|
|
11161
|
+
const checked = ref(r);
|
|
11162
|
+
wanted.set(`${checked.kind}/${checked.id}`, checked);
|
|
11163
|
+
}
|
|
11164
|
+
const found = /* @__PURE__ */ new Map();
|
|
11165
|
+
let pending = [...wanted.values()];
|
|
11166
|
+
while (pending.length > 0) {
|
|
11167
|
+
const batch = pending.slice(0, maxGetRefs);
|
|
11168
|
+
pending = pending.slice(maxGetRefs);
|
|
11169
|
+
const value = await request(
|
|
11170
|
+
"/records/get",
|
|
11171
|
+
{ method: "POST", body: JSON.stringify({ account_id: accountId, refs: batch }) },
|
|
11172
|
+
signal
|
|
11173
|
+
);
|
|
11174
|
+
if (!object(value) || !Array.isArray(value.items) || value.remaining !== void 0 && !Array.isArray(value.remaining))
|
|
11175
|
+
invalid();
|
|
11176
|
+
const asked = new Set(batch.map((r) => `${r.kind}/${r.id}`));
|
|
11177
|
+
for (const item of value.items) {
|
|
11178
|
+
const snapshot = await decode(item);
|
|
11179
|
+
const key = `${snapshot.record.kind}/${snapshot.record.id}`;
|
|
11180
|
+
if (!asked.has(key) || found.has(key)) invalid();
|
|
11181
|
+
found.set(key, snapshot);
|
|
11182
|
+
}
|
|
11183
|
+
const remaining = (value.remaining ?? []).map(ref);
|
|
11184
|
+
if (remaining.some((r) => !asked.has(`${r.kind}/${r.id}`) || found.has(`${r.kind}/${r.id}`)))
|
|
11185
|
+
invalid();
|
|
11186
|
+
if (remaining.length > 0 && value.items.length === 0) invalid();
|
|
11187
|
+
pending = [...remaining, ...pending];
|
|
11188
|
+
}
|
|
11189
|
+
signal?.throwIfAborted();
|
|
11190
|
+
return [...wanted.keys()].flatMap((key) => {
|
|
11191
|
+
const snapshot = found.get(key);
|
|
11192
|
+
return snapshot ? [snapshot] : [];
|
|
11193
|
+
});
|
|
11194
|
+
},
|
|
11195
|
+
async account(signal) {
|
|
11196
|
+
const value = await request("/account", {}, signal);
|
|
11197
|
+
if (!object(value) || value.account_id !== accountId || !text2(value.key_id) || value.state !== "none" && value.state !== "migrating" && value.state !== "active" || !integer(value.record_count) || !integer(value.storage_bytes) || !integer(value.vector_count))
|
|
11198
|
+
invalid();
|
|
11199
|
+
if (value.key_id && value.key_id !== keyId)
|
|
11200
|
+
throw new ChatStoreError("Canonical chat key does not match", 409, "key_mismatch");
|
|
11201
|
+
const out = {
|
|
11202
|
+
keyId: value.key_id,
|
|
11203
|
+
state: value.state,
|
|
11204
|
+
recordCount: value.record_count,
|
|
11205
|
+
storageBytes: value.storage_bytes,
|
|
11206
|
+
vectorCount: value.vector_count
|
|
11207
|
+
};
|
|
11208
|
+
return out;
|
|
11209
|
+
},
|
|
11210
|
+
async importRecords(records, signal) {
|
|
11211
|
+
const captured = capture(records, maxImportRecords, signal);
|
|
11212
|
+
let bytes2 = 0;
|
|
11213
|
+
const prepared = [];
|
|
11214
|
+
for (const item of captured) {
|
|
11215
|
+
const payload = await seal(item.record, signal);
|
|
11216
|
+
bytes2 += payload.length;
|
|
11217
|
+
if (bytes2 > maxRequestCiphertext) invalid();
|
|
11218
|
+
prepared.push({ record: wire(item.record, payload), ...vectorFields(item) });
|
|
11219
|
+
}
|
|
11220
|
+
const value = await request(
|
|
11221
|
+
"/import",
|
|
11222
|
+
{
|
|
11223
|
+
method: "POST",
|
|
11224
|
+
body: JSON.stringify({ account_id: accountId, key_id: keyId, records: prepared })
|
|
11225
|
+
},
|
|
11226
|
+
signal
|
|
11227
|
+
);
|
|
11228
|
+
if (!object(value) || !integer(value.written) || value.written > prepared.length) invalid();
|
|
11229
|
+
return value.written;
|
|
11230
|
+
},
|
|
11231
|
+
async verify(revisions, signal) {
|
|
11232
|
+
if (!Array.isArray(revisions) || revisions.length > maxVerifyRevisions) invalid();
|
|
11233
|
+
const asked = /* @__PURE__ */ new Set();
|
|
11234
|
+
const wireRevisions = revisions.map((r) => {
|
|
11235
|
+
const checked = ref(r);
|
|
11236
|
+
if (!integer(r.updatedAt, 1) || typeof r.isDeleted !== "boolean") invalid();
|
|
11237
|
+
asked.add(`${checked.kind}/${checked.id}`);
|
|
11238
|
+
return {
|
|
11239
|
+
kind: checked.kind,
|
|
11240
|
+
id: checked.id,
|
|
11241
|
+
updated_at: r.updatedAt,
|
|
11242
|
+
is_deleted: r.isDeleted
|
|
11243
|
+
};
|
|
11244
|
+
});
|
|
11245
|
+
if (wireRevisions.length === 0) return [];
|
|
11246
|
+
const value = await request(
|
|
11247
|
+
"/verify",
|
|
11248
|
+
{
|
|
11249
|
+
method: "POST",
|
|
11250
|
+
body: JSON.stringify({ account_id: accountId, revisions: wireRevisions })
|
|
11251
|
+
},
|
|
11252
|
+
signal
|
|
11253
|
+
);
|
|
11254
|
+
if (!object(value) || !Array.isArray(value.missing)) invalid();
|
|
11255
|
+
const missing = value.missing.map(ref);
|
|
11256
|
+
if (missing.some((r) => !asked.has(`${r.kind}/${r.id}`))) invalid();
|
|
11257
|
+
return missing;
|
|
11258
|
+
},
|
|
11259
|
+
async activate(signal) {
|
|
11260
|
+
const value = await request(
|
|
11261
|
+
"/account",
|
|
11262
|
+
{ method: "PUT", body: JSON.stringify({ account_id: accountId, state: "active" }) },
|
|
11263
|
+
signal
|
|
11264
|
+
);
|
|
11265
|
+
if (!object(value) || value.state !== "active" || typeof value.transitioned !== "boolean")
|
|
11266
|
+
invalid();
|
|
11267
|
+
return value.transitioned;
|
|
11065
11268
|
},
|
|
11066
|
-
|
|
11269
|
+
async changes(cursor, options2) {
|
|
11270
|
+
const limit = options2?.limit ?? 100;
|
|
11271
|
+
if (!integer(limit, 1) || limit > 200 || cursor !== void 0 && (!text2(cursor) || cursor.length > 2048))
|
|
11272
|
+
invalid();
|
|
11273
|
+
const params = new URLSearchParams({ account_id: String(accountId), limit: String(limit) });
|
|
11274
|
+
if (cursor) params.set("cursor", cursor);
|
|
11275
|
+
const value = await request(`/changes?${params}`, {}, options2?.signal);
|
|
11276
|
+
if (!object(value) || !Array.isArray(value.items) || value.items.length > limit || value.next_cursor !== void 0 && !text2(value.next_cursor) || value.changes_cursor !== void 0 && !text2(value.changes_cursor))
|
|
11277
|
+
invalid();
|
|
11278
|
+
const items = [];
|
|
11279
|
+
for (const item of value.items) items.push(await decode(item));
|
|
11280
|
+
options2?.signal?.throwIfAborted();
|
|
11281
|
+
return {
|
|
11282
|
+
items,
|
|
11283
|
+
...value.next_cursor ? { nextCursor: value.next_cursor } : {},
|
|
11284
|
+
changesCursor: value.changes_cursor ?? cursor ?? ""
|
|
11285
|
+
};
|
|
11286
|
+
},
|
|
11287
|
+
async search(embedding2, options2) {
|
|
11288
|
+
const limit = options2?.limit ?? 20;
|
|
11289
|
+
const kindsFilter = options2?.kinds;
|
|
11290
|
+
if (!Array.isArray(embedding2) || !embeddings({
|
|
11291
|
+
record: { ...emptyMessage, isDeleted: false },
|
|
11292
|
+
embeddings: [embedding2]
|
|
11293
|
+
}) || !integer(limit, 1) || limit > 50 || kindsFilter !== void 0 && (!Array.isArray(kindsFilter) || kindsFilter.length === 0 || kindsFilter.some((k) => k !== "message" && k !== "summary")) || options2?.conversationId !== void 0 && !id(options2.conversationId))
|
|
11294
|
+
invalid();
|
|
11295
|
+
const value = await request(
|
|
11296
|
+
"/search",
|
|
11297
|
+
{
|
|
11298
|
+
method: "POST",
|
|
11299
|
+
body: JSON.stringify({
|
|
11300
|
+
account_id: accountId,
|
|
11301
|
+
embedding: embedding2.slice(0, storedDims),
|
|
11302
|
+
limit,
|
|
11303
|
+
...kindsFilter ? { kinds: kindsFilter } : {},
|
|
11304
|
+
...options2?.conversationId ? { conversation_id: options2.conversationId } : {}
|
|
11305
|
+
})
|
|
11306
|
+
},
|
|
11307
|
+
options2?.signal
|
|
11308
|
+
);
|
|
11309
|
+
if (!object(value) || !Array.isArray(value.items) || value.items.length > limit) invalid();
|
|
11310
|
+
const hits = [];
|
|
11311
|
+
for (const item of value.items) {
|
|
11312
|
+
if (!object(item) || !integer(item.chunk) || typeof item.score !== "number" || !Number.isFinite(item.score))
|
|
11313
|
+
invalid();
|
|
11314
|
+
const snapshot = await decode(item);
|
|
11315
|
+
if (snapshot.record.isDeleted || kindsFilter !== void 0 && !kindsFilter.includes(snapshot.record.kind) || snapshot.record.kind !== "message" && snapshot.record.kind !== "summary" || options2?.conversationId !== void 0 && snapshot.record.conversationId !== options2.conversationId)
|
|
11316
|
+
invalid();
|
|
11317
|
+
hits.push({ ...snapshot, chunk: item.chunk, score: item.score });
|
|
11318
|
+
}
|
|
11319
|
+
options2?.signal?.throwIfAborted();
|
|
11320
|
+
return hits;
|
|
11321
|
+
},
|
|
11322
|
+
async deleteAll(signal) {
|
|
11323
|
+
const value = await request(`/records?account_id=${accountId}`, { method: "DELETE" }, signal);
|
|
11324
|
+
if (!object(value) || !integer(value.deleted)) invalid();
|
|
11325
|
+
return value.deleted;
|
|
11326
|
+
},
|
|
11327
|
+
attachments: {
|
|
11328
|
+
async create(sizeBytes, signal) {
|
|
11329
|
+
if (!integer(sizeBytes, 1) || sizeBytes > maxAttachmentBytes) invalid();
|
|
11330
|
+
const value = await request(
|
|
11331
|
+
"/attachments",
|
|
11332
|
+
{
|
|
11333
|
+
method: "POST",
|
|
11334
|
+
body: JSON.stringify({ account_id: accountId, size_bytes: sizeBytes })
|
|
11335
|
+
},
|
|
11336
|
+
signal
|
|
11337
|
+
);
|
|
11338
|
+
if (!object(value)) invalid();
|
|
11339
|
+
const created = attachment(value.attachment);
|
|
11340
|
+
if (created.sizeBytes !== sizeBytes || created.state !== "pending") invalid();
|
|
11341
|
+
return { attachment: created, upload: presigned(value.upload) };
|
|
11342
|
+
},
|
|
11343
|
+
async commit(attachmentId, owner, signal) {
|
|
11344
|
+
if (!attachmentIdPattern.test(attachmentId) || !object(owner) || owner.kind !== "message" && owner.kind !== "summary" || !id(owner.id))
|
|
11345
|
+
invalid();
|
|
11346
|
+
const value = await request(
|
|
11347
|
+
`/attachments/${attachmentId}/commit`,
|
|
11348
|
+
{
|
|
11349
|
+
method: "POST",
|
|
11350
|
+
body: JSON.stringify({
|
|
11351
|
+
account_id: accountId,
|
|
11352
|
+
owner_kind: owner.kind,
|
|
11353
|
+
owner_id: owner.id
|
|
11354
|
+
})
|
|
11355
|
+
},
|
|
11356
|
+
signal
|
|
11357
|
+
);
|
|
11358
|
+
if (!object(value)) invalid();
|
|
11359
|
+
const committed = attachment(value.attachment);
|
|
11360
|
+
if (committed.id !== attachmentId || committed.state !== "committed" || committed.ownerKind !== owner.kind || committed.ownerId !== owner.id)
|
|
11361
|
+
invalid();
|
|
11362
|
+
return committed;
|
|
11363
|
+
},
|
|
11364
|
+
async get(attachmentId, signal) {
|
|
11365
|
+
if (!attachmentIdPattern.test(attachmentId)) invalid();
|
|
11366
|
+
let value;
|
|
11367
|
+
try {
|
|
11368
|
+
value = await request(`/attachments/${attachmentId}?account_id=${accountId}`, {}, signal);
|
|
11369
|
+
} catch (error) {
|
|
11370
|
+
if (error instanceof ChatStoreError && error.status === 404) return null;
|
|
11371
|
+
throw error;
|
|
11372
|
+
}
|
|
11373
|
+
if (!object(value)) invalid();
|
|
11374
|
+
const found = attachment(value.attachment);
|
|
11375
|
+
if (found.id !== attachmentId) invalid();
|
|
11376
|
+
return {
|
|
11377
|
+
attachment: found,
|
|
11378
|
+
...value.download !== void 0 ? { download: presigned(value.download) } : {}
|
|
11379
|
+
};
|
|
11380
|
+
},
|
|
11381
|
+
async delete(attachmentId, signal) {
|
|
11382
|
+
if (!attachmentIdPattern.test(attachmentId)) invalid();
|
|
11383
|
+
await request(
|
|
11384
|
+
`/attachments/${attachmentId}?account_id=${accountId}`,
|
|
11385
|
+
{ method: "DELETE" },
|
|
11386
|
+
signal
|
|
11387
|
+
);
|
|
11388
|
+
}
|
|
11389
|
+
}
|
|
11067
11390
|
};
|
|
11068
11391
|
}
|
|
11392
|
+
var emptyMessage = {
|
|
11393
|
+
kind: "message",
|
|
11394
|
+
id: "query",
|
|
11395
|
+
conversationId: "query",
|
|
11396
|
+
sortKey: 0,
|
|
11397
|
+
createdAt: 1,
|
|
11398
|
+
updatedAt: 1,
|
|
11399
|
+
isDeleted: false,
|
|
11400
|
+
data: {}
|
|
11401
|
+
};
|
|
11069
11402
|
|
|
11070
11403
|
// src/lib/db/appFiles/models.ts
|
|
11071
11404
|
import { Model as Model2 } from "@nozbe/watermelondb";
|
|
11072
|
-
import { date, readonly, text as
|
|
11405
|
+
import { date, readonly, text as text3 } from "@nozbe/watermelondb/decorators";
|
|
11073
11406
|
var AppFile = class extends Model2 {
|
|
11074
11407
|
};
|
|
11075
11408
|
AppFile.table = "app_files";
|
|
11076
11409
|
AppFile.associations = {};
|
|
11077
11410
|
__decorateClass([
|
|
11078
|
-
|
|
11411
|
+
text3("conversation_id")
|
|
11079
11412
|
], AppFile.prototype, "conversationId", 2);
|
|
11080
11413
|
__decorateClass([
|
|
11081
|
-
|
|
11414
|
+
text3("path")
|
|
11082
11415
|
], AppFile.prototype, "path", 2);
|
|
11083
11416
|
__decorateClass([
|
|
11084
|
-
|
|
11417
|
+
text3("content")
|
|
11085
11418
|
], AppFile.prototype, "content", 2);
|
|
11086
11419
|
__decorateClass([
|
|
11087
11420
|
readonly,
|
|
@@ -11235,7 +11568,7 @@ async function decryptConversationTitle(encryptedTitle, address) {
|
|
|
11235
11568
|
|
|
11236
11569
|
// src/lib/db/chat/models.ts
|
|
11237
11570
|
import { Model as Model3 } from "@nozbe/watermelondb";
|
|
11238
|
-
import { date as date2, field, json as json2, text as
|
|
11571
|
+
import { date as date2, field, json as json2, text as text4 } from "@nozbe/watermelondb/decorators";
|
|
11239
11572
|
var Message = class extends Model3 {
|
|
11240
11573
|
};
|
|
11241
11574
|
Message.table = "history";
|
|
@@ -11247,19 +11580,19 @@ __decorateClass([
|
|
|
11247
11580
|
field("message_id")
|
|
11248
11581
|
], Message.prototype, "messageId", 2);
|
|
11249
11582
|
__decorateClass([
|
|
11250
|
-
|
|
11583
|
+
text4("conversation_id")
|
|
11251
11584
|
], Message.prototype, "conversationId", 2);
|
|
11252
11585
|
__decorateClass([
|
|
11253
|
-
|
|
11586
|
+
text4("role")
|
|
11254
11587
|
], Message.prototype, "role", 2);
|
|
11255
11588
|
__decorateClass([
|
|
11256
|
-
|
|
11589
|
+
text4("content")
|
|
11257
11590
|
], Message.prototype, "content", 2);
|
|
11258
11591
|
__decorateClass([
|
|
11259
|
-
|
|
11592
|
+
text4("model")
|
|
11260
11593
|
], Message.prototype, "model", 2);
|
|
11261
11594
|
__decorateClass([
|
|
11262
|
-
|
|
11595
|
+
text4("image_model")
|
|
11263
11596
|
], Message.prototype, "imageModel", 2);
|
|
11264
11597
|
__decorateClass([
|
|
11265
11598
|
json2("files", (raw) => raw)
|
|
@@ -11277,7 +11610,7 @@ __decorateClass([
|
|
|
11277
11610
|
json2("vector", (raw) => raw)
|
|
11278
11611
|
], Message.prototype, "vector", 2);
|
|
11279
11612
|
__decorateClass([
|
|
11280
|
-
|
|
11613
|
+
text4("embedding_model")
|
|
11281
11614
|
], Message.prototype, "embeddingModel", 2);
|
|
11282
11615
|
__decorateClass([
|
|
11283
11616
|
json2("chunks", (raw) => raw)
|
|
@@ -11295,25 +11628,25 @@ __decorateClass([
|
|
|
11295
11628
|
field("was_stopped")
|
|
11296
11629
|
], Message.prototype, "wasStopped", 2);
|
|
11297
11630
|
__decorateClass([
|
|
11298
|
-
|
|
11631
|
+
text4("error")
|
|
11299
11632
|
], Message.prototype, "error", 2);
|
|
11300
11633
|
__decorateClass([
|
|
11301
11634
|
json2("thought_process", (raw) => raw)
|
|
11302
11635
|
], Message.prototype, "thoughtProcess", 2);
|
|
11303
11636
|
__decorateClass([
|
|
11304
|
-
|
|
11637
|
+
text4("thinking")
|
|
11305
11638
|
], Message.prototype, "thinking", 2);
|
|
11306
11639
|
__decorateClass([
|
|
11307
|
-
|
|
11640
|
+
text4("parent_message_id")
|
|
11308
11641
|
], Message.prototype, "parentMessageId", 2);
|
|
11309
11642
|
__decorateClass([
|
|
11310
|
-
|
|
11643
|
+
text4("feedback")
|
|
11311
11644
|
], Message.prototype, "feedback", 2);
|
|
11312
11645
|
__decorateClass([
|
|
11313
11646
|
json2("tool_call_events", (raw) => raw)
|
|
11314
11647
|
], Message.prototype, "toolCallEvents", 2);
|
|
11315
11648
|
__decorateClass([
|
|
11316
|
-
|
|
11649
|
+
text4("origin")
|
|
11317
11650
|
], Message.prototype, "origin", 2);
|
|
11318
11651
|
var Conversation = class extends Model3 {
|
|
11319
11652
|
};
|
|
@@ -11323,13 +11656,13 @@ Conversation.associations = {
|
|
|
11323
11656
|
projects: { type: "belongs_to", key: "project_id" }
|
|
11324
11657
|
};
|
|
11325
11658
|
__decorateClass([
|
|
11326
|
-
|
|
11659
|
+
text4("conversation_id")
|
|
11327
11660
|
], Conversation.prototype, "conversationId", 2);
|
|
11328
11661
|
__decorateClass([
|
|
11329
|
-
|
|
11662
|
+
text4("title")
|
|
11330
11663
|
], Conversation.prototype, "title", 2);
|
|
11331
11664
|
__decorateClass([
|
|
11332
|
-
|
|
11665
|
+
text4("project_id")
|
|
11333
11666
|
], Conversation.prototype, "projectId", 2);
|
|
11334
11667
|
__decorateClass([
|
|
11335
11668
|
date2("created_at")
|
|
@@ -11350,13 +11683,13 @@ ConversationSummary.associations = {
|
|
|
11350
11683
|
conversations: { type: "belongs_to", key: "conversation_id" }
|
|
11351
11684
|
};
|
|
11352
11685
|
__decorateClass([
|
|
11353
|
-
|
|
11686
|
+
text4("conversation_id")
|
|
11354
11687
|
], ConversationSummary.prototype, "conversationId", 2);
|
|
11355
11688
|
__decorateClass([
|
|
11356
|
-
|
|
11689
|
+
text4("summary")
|
|
11357
11690
|
], ConversationSummary.prototype, "summary", 2);
|
|
11358
11691
|
__decorateClass([
|
|
11359
|
-
|
|
11692
|
+
text4("summarized_up_to")
|
|
11360
11693
|
], ConversationSummary.prototype, "summarizedUpTo", 2);
|
|
11361
11694
|
__decorateClass([
|
|
11362
11695
|
field("token_count")
|
|
@@ -11525,16 +11858,16 @@ async function deleteConversationSummaryOp(ctx, conversationId) {
|
|
|
11525
11858
|
|
|
11526
11859
|
// src/lib/db/conversationMemory/models.ts
|
|
11527
11860
|
import { Model as Model4 } from "@nozbe/watermelondb";
|
|
11528
|
-
import { date as date3, field as field2, readonly as readonly2, text as
|
|
11861
|
+
import { date as date3, field as field2, readonly as readonly2, text as text5 } from "@nozbe/watermelondb/decorators";
|
|
11529
11862
|
var ConversationMemory = class extends Model4 {
|
|
11530
11863
|
};
|
|
11531
11864
|
ConversationMemory.table = "conversation_memory";
|
|
11532
11865
|
ConversationMemory.associations = {};
|
|
11533
11866
|
__decorateClass([
|
|
11534
|
-
|
|
11867
|
+
text5("conversation_id")
|
|
11535
11868
|
], ConversationMemory.prototype, "conversationId", 2);
|
|
11536
11869
|
__decorateClass([
|
|
11537
|
-
|
|
11870
|
+
text5("memory_id")
|
|
11538
11871
|
], ConversationMemory.prototype, "memoryId", 2);
|
|
11539
11872
|
__decorateClass([
|
|
11540
11873
|
field2("score")
|
|
@@ -11604,12 +11937,12 @@ async function clearConversationMemoriesOp(ctx, conversationId) {
|
|
|
11604
11937
|
|
|
11605
11938
|
// src/lib/db/entities/models.ts
|
|
11606
11939
|
import { Model as Model5 } from "@nozbe/watermelondb";
|
|
11607
|
-
import { date as date4, field as field3, readonly as readonly3, text as
|
|
11940
|
+
import { date as date4, field as field3, readonly as readonly3, text as text6 } from "@nozbe/watermelondb/decorators";
|
|
11608
11941
|
var Entity = class extends Model5 {
|
|
11609
11942
|
};
|
|
11610
11943
|
Entity.table = "entity";
|
|
11611
11944
|
__decorateClass([
|
|
11612
|
-
|
|
11945
|
+
text6("canonical_name")
|
|
11613
11946
|
], Entity.prototype, "canonicalName", 2);
|
|
11614
11947
|
__decorateClass([
|
|
11615
11948
|
field3("kind")
|
|
@@ -11625,10 +11958,10 @@ var MemoryEntity = class extends Model5 {
|
|
|
11625
11958
|
};
|
|
11626
11959
|
MemoryEntity.table = "memory_entity";
|
|
11627
11960
|
__decorateClass([
|
|
11628
|
-
|
|
11961
|
+
text6("memory_id")
|
|
11629
11962
|
], MemoryEntity.prototype, "memoryId", 2);
|
|
11630
11963
|
__decorateClass([
|
|
11631
|
-
|
|
11964
|
+
text6("entity_id")
|
|
11632
11965
|
], MemoryEntity.prototype, "entityId", 2);
|
|
11633
11966
|
__decorateClass([
|
|
11634
11967
|
field3("user_id")
|
|
@@ -12095,7 +12428,7 @@ import {
|
|
|
12095
12428
|
|
|
12096
12429
|
// src/lib/db/media/models.ts
|
|
12097
12430
|
import { Model as Model6 } from "@nozbe/watermelondb";
|
|
12098
|
-
import { date as date5, field as field4, json as json3, readonly as readonly4, text as
|
|
12431
|
+
import { date as date5, field as field4, json as json3, readonly as readonly4, text as text7 } from "@nozbe/watermelondb/decorators";
|
|
12099
12432
|
var Media = class extends Model6 {
|
|
12100
12433
|
};
|
|
12101
12434
|
Media.table = "media";
|
|
@@ -12104,37 +12437,37 @@ Media.associations = {
|
|
|
12104
12437
|
conversations: { type: "belongs_to", key: "conversation_id" }
|
|
12105
12438
|
};
|
|
12106
12439
|
__decorateClass([
|
|
12107
|
-
|
|
12440
|
+
text7("media_id")
|
|
12108
12441
|
], Media.prototype, "mediaId", 2);
|
|
12109
12442
|
__decorateClass([
|
|
12110
|
-
|
|
12443
|
+
text7("wallet_address")
|
|
12111
12444
|
], Media.prototype, "walletAddress", 2);
|
|
12112
12445
|
__decorateClass([
|
|
12113
|
-
|
|
12446
|
+
text7("message_id")
|
|
12114
12447
|
], Media.prototype, "messageId", 2);
|
|
12115
12448
|
__decorateClass([
|
|
12116
|
-
|
|
12449
|
+
text7("conversation_id")
|
|
12117
12450
|
], Media.prototype, "conversationId", 2);
|
|
12118
12451
|
__decorateClass([
|
|
12119
|
-
|
|
12452
|
+
text7("name")
|
|
12120
12453
|
], Media.prototype, "name", 2);
|
|
12121
12454
|
__decorateClass([
|
|
12122
|
-
|
|
12455
|
+
text7("mime_type")
|
|
12123
12456
|
], Media.prototype, "mimeType", 2);
|
|
12124
12457
|
__decorateClass([
|
|
12125
|
-
|
|
12458
|
+
text7("media_type")
|
|
12126
12459
|
], Media.prototype, "mediaType", 2);
|
|
12127
12460
|
__decorateClass([
|
|
12128
12461
|
field4("size")
|
|
12129
12462
|
], Media.prototype, "size", 2);
|
|
12130
12463
|
__decorateClass([
|
|
12131
|
-
|
|
12464
|
+
text7("role")
|
|
12132
12465
|
], Media.prototype, "role", 2);
|
|
12133
12466
|
__decorateClass([
|
|
12134
|
-
|
|
12467
|
+
text7("model")
|
|
12135
12468
|
], Media.prototype, "model", 2);
|
|
12136
12469
|
__decorateClass([
|
|
12137
|
-
|
|
12470
|
+
text7("source_url")
|
|
12138
12471
|
], Media.prototype, "sourceUrl", 2);
|
|
12139
12472
|
__decorateClass([
|
|
12140
12473
|
json3("dimensions", (raw) => raw)
|
|
@@ -12158,15 +12491,15 @@ __decorateClass([
|
|
|
12158
12491
|
|
|
12159
12492
|
// src/lib/db/memoryVault/models.ts
|
|
12160
12493
|
import { Model as Model7 } from "@nozbe/watermelondb";
|
|
12161
|
-
import { date as date6, field as field5, readonly as readonly5, text as
|
|
12494
|
+
import { date as date6, field as field5, readonly as readonly5, text as text8 } from "@nozbe/watermelondb/decorators";
|
|
12162
12495
|
var VaultMemory = class extends Model7 {
|
|
12163
12496
|
};
|
|
12164
12497
|
VaultMemory.table = "memory_vault";
|
|
12165
12498
|
__decorateClass([
|
|
12166
|
-
|
|
12499
|
+
text8("content")
|
|
12167
12500
|
], VaultMemory.prototype, "content", 2);
|
|
12168
12501
|
__decorateClass([
|
|
12169
|
-
|
|
12502
|
+
text8("scope")
|
|
12170
12503
|
], VaultMemory.prototype, "scope", 2);
|
|
12171
12504
|
__decorateClass([
|
|
12172
12505
|
field5("kind")
|
|
@@ -12268,7 +12601,7 @@ __decorateClass([
|
|
|
12268
12601
|
|
|
12269
12602
|
// src/lib/db/project/models.ts
|
|
12270
12603
|
import { Model as Model8 } from "@nozbe/watermelondb";
|
|
12271
|
-
import { date as date7, field as field6, text as
|
|
12604
|
+
import { date as date7, field as field6, text as text9 } from "@nozbe/watermelondb/decorators";
|
|
12272
12605
|
var Project = class extends Model8 {
|
|
12273
12606
|
};
|
|
12274
12607
|
Project.table = "projects";
|
|
@@ -12276,10 +12609,10 @@ Project.associations = {
|
|
|
12276
12609
|
conversations: { type: "has_many", foreignKey: "project_id" }
|
|
12277
12610
|
};
|
|
12278
12611
|
__decorateClass([
|
|
12279
|
-
|
|
12612
|
+
text9("project_id")
|
|
12280
12613
|
], Project.prototype, "projectId", 2);
|
|
12281
12614
|
__decorateClass([
|
|
12282
|
-
|
|
12615
|
+
text9("name")
|
|
12283
12616
|
], Project.prototype, "name", 2);
|
|
12284
12617
|
__decorateClass([
|
|
12285
12618
|
date7("created_at")
|
|
@@ -12293,29 +12626,29 @@ __decorateClass([
|
|
|
12293
12626
|
|
|
12294
12627
|
// src/lib/db/savedTools/models.ts
|
|
12295
12628
|
import { Model as Model9 } from "@nozbe/watermelondb";
|
|
12296
|
-
import { date as date8, field as field7, json as json4, readonly as readonly6, text as
|
|
12629
|
+
import { date as date8, field as field7, json as json4, readonly as readonly6, text as text10 } from "@nozbe/watermelondb/decorators";
|
|
12297
12630
|
var sanitizeParameters = (raw) => raw ?? {};
|
|
12298
12631
|
var SavedTool = class extends Model9 {
|
|
12299
12632
|
};
|
|
12300
12633
|
SavedTool.table = "saved_tools";
|
|
12301
12634
|
SavedTool.associations = {};
|
|
12302
12635
|
__decorateClass([
|
|
12303
|
-
|
|
12636
|
+
text10("name")
|
|
12304
12637
|
], SavedTool.prototype, "name", 2);
|
|
12305
12638
|
__decorateClass([
|
|
12306
|
-
|
|
12639
|
+
text10("display_name")
|
|
12307
12640
|
], SavedTool.prototype, "displayName", 2);
|
|
12308
12641
|
__decorateClass([
|
|
12309
|
-
|
|
12642
|
+
text10("description")
|
|
12310
12643
|
], SavedTool.prototype, "description", 2);
|
|
12311
12644
|
__decorateClass([
|
|
12312
12645
|
json4("parameters", sanitizeParameters)
|
|
12313
12646
|
], SavedTool.prototype, "parameters", 2);
|
|
12314
12647
|
__decorateClass([
|
|
12315
|
-
|
|
12648
|
+
text10("html")
|
|
12316
12649
|
], SavedTool.prototype, "html", 2);
|
|
12317
12650
|
__decorateClass([
|
|
12318
|
-
|
|
12651
|
+
text10("conversation_id")
|
|
12319
12652
|
], SavedTool.prototype, "conversationId", 2);
|
|
12320
12653
|
__decorateClass([
|
|
12321
12654
|
readonly6,
|
|
@@ -12330,43 +12663,43 @@ __decorateClass([
|
|
|
12330
12663
|
|
|
12331
12664
|
// src/lib/db/settings/models.ts
|
|
12332
12665
|
import { Model as Model10 } from "@nozbe/watermelondb";
|
|
12333
|
-
import { text as
|
|
12666
|
+
import { text as text11 } from "@nozbe/watermelondb/decorators";
|
|
12334
12667
|
var ModelPreference = class extends Model10 {
|
|
12335
12668
|
};
|
|
12336
12669
|
ModelPreference.table = "modelPreferences";
|
|
12337
12670
|
__decorateClass([
|
|
12338
|
-
|
|
12671
|
+
text11("wallet_address")
|
|
12339
12672
|
], ModelPreference.prototype, "walletAddress", 2);
|
|
12340
12673
|
__decorateClass([
|
|
12341
|
-
|
|
12674
|
+
text11("models")
|
|
12342
12675
|
], ModelPreference.prototype, "models", 2);
|
|
12343
12676
|
|
|
12344
12677
|
// src/lib/db/userPreferences/models.ts
|
|
12345
12678
|
import { Model as Model11 } from "@nozbe/watermelondb";
|
|
12346
|
-
import { field as field8, text as
|
|
12679
|
+
import { field as field8, text as text12 } from "@nozbe/watermelondb/decorators";
|
|
12347
12680
|
var UserPreference = class extends Model11 {
|
|
12348
12681
|
};
|
|
12349
12682
|
UserPreference.table = "userPreferences";
|
|
12350
12683
|
__decorateClass([
|
|
12351
|
-
|
|
12684
|
+
text12("wallet_address")
|
|
12352
12685
|
], UserPreference.prototype, "walletAddress", 2);
|
|
12353
12686
|
__decorateClass([
|
|
12354
|
-
|
|
12687
|
+
text12("nickname")
|
|
12355
12688
|
], UserPreference.prototype, "nickname", 2);
|
|
12356
12689
|
__decorateClass([
|
|
12357
|
-
|
|
12690
|
+
text12("occupation")
|
|
12358
12691
|
], UserPreference.prototype, "occupation", 2);
|
|
12359
12692
|
__decorateClass([
|
|
12360
|
-
|
|
12693
|
+
text12("description")
|
|
12361
12694
|
], UserPreference.prototype, "description", 2);
|
|
12362
12695
|
__decorateClass([
|
|
12363
|
-
|
|
12696
|
+
text12("models")
|
|
12364
12697
|
], UserPreference.prototype, "models", 2);
|
|
12365
12698
|
__decorateClass([
|
|
12366
|
-
|
|
12699
|
+
text12("personality")
|
|
12367
12700
|
], UserPreference.prototype, "personality", 2);
|
|
12368
12701
|
__decorateClass([
|
|
12369
|
-
|
|
12702
|
+
text12("external_wallets")
|
|
12370
12703
|
], UserPreference.prototype, "externalWallets", 2);
|
|
12371
12704
|
__decorateClass([
|
|
12372
12705
|
field8("created_at")
|
|
@@ -12377,15 +12710,15 @@ __decorateClass([
|
|
|
12377
12710
|
|
|
12378
12711
|
// src/lib/db/vaultFolders/models.ts
|
|
12379
12712
|
import { Model as Model12 } from "@nozbe/watermelondb";
|
|
12380
|
-
import { date as date9, field as field9, readonly as readonly7, text as
|
|
12713
|
+
import { date as date9, field as field9, readonly as readonly7, text as text13 } from "@nozbe/watermelondb/decorators";
|
|
12381
12714
|
var VaultFolder = class extends Model12 {
|
|
12382
12715
|
};
|
|
12383
12716
|
VaultFolder.table = "vault_folders";
|
|
12384
12717
|
__decorateClass([
|
|
12385
|
-
|
|
12718
|
+
text13("name")
|
|
12386
12719
|
], VaultFolder.prototype, "name", 2);
|
|
12387
12720
|
__decorateClass([
|
|
12388
|
-
|
|
12721
|
+
text13("scope")
|
|
12389
12722
|
], VaultFolder.prototype, "scope", 2);
|
|
12390
12723
|
__decorateClass([
|
|
12391
12724
|
readonly7,
|
|
@@ -12401,7 +12734,7 @@ __decorateClass([
|
|
|
12401
12734
|
field9("is_system")
|
|
12402
12735
|
], VaultFolder.prototype, "isSystem", 2);
|
|
12403
12736
|
__decorateClass([
|
|
12404
|
-
|
|
12737
|
+
text13("context")
|
|
12405
12738
|
], VaultFolder.prototype, "context", 2);
|
|
12406
12739
|
|
|
12407
12740
|
// src/lib/db/schema.ts
|
|
@@ -13723,8 +14056,8 @@ var WatermelonChatStorageAdapter = class {
|
|
|
13723
14056
|
createMessage(options) {
|
|
13724
14057
|
return createMessageOp(this.ctx, options);
|
|
13725
14058
|
}
|
|
13726
|
-
updateMessageEmbedding(uniqueId,
|
|
13727
|
-
return updateMessageEmbeddingOp(this.ctx, uniqueId,
|
|
14059
|
+
updateMessageEmbedding(uniqueId, vector2, embeddingModel) {
|
|
14060
|
+
return updateMessageEmbeddingOp(this.ctx, uniqueId, vector2, embeddingModel);
|
|
13728
14061
|
}
|
|
13729
14062
|
updateMessageChunks(uniqueId, chunks3, embeddingModel) {
|
|
13730
14063
|
return updateMessageChunksOp(this.ctx, uniqueId, chunks3, embeddingModel);
|
|
@@ -17649,8 +17982,8 @@ var STOPWORDS = /* @__PURE__ */ new Set([
|
|
|
17649
17982
|
"user",
|
|
17650
17983
|
"users"
|
|
17651
17984
|
]);
|
|
17652
|
-
function tokenize(
|
|
17653
|
-
const m =
|
|
17985
|
+
function tokenize(text15) {
|
|
17986
|
+
const m = text15.toLowerCase().match(TOKEN_RE);
|
|
17654
17987
|
if (!m) return [];
|
|
17655
17988
|
return m.filter((t) => !STOPWORDS.has(t));
|
|
17656
17989
|
}
|
|
@@ -17860,13 +18193,13 @@ function embedVaultRows(ctx, options, rows, preparation) {
|
|
|
17860
18193
|
);
|
|
17861
18194
|
[...missing].forEach(([key, row], index) => {
|
|
17862
18195
|
const request = batch.then((vectors) => {
|
|
17863
|
-
const
|
|
17864
|
-
updateVaultMemoryEmbeddingOp(ctx, row.uniqueId, JSON.stringify(
|
|
18196
|
+
const vector2 = vectors[index];
|
|
18197
|
+
updateVaultMemoryEmbeddingOp(ctx, row.uniqueId, JSON.stringify(vector2), model, {
|
|
17865
18198
|
content: row.content,
|
|
17866
18199
|
updatedAt: row.updatedAt?.getTime()
|
|
17867
18200
|
}).catch(() => {
|
|
17868
18201
|
});
|
|
17869
|
-
return
|
|
18202
|
+
return vector2;
|
|
17870
18203
|
}).finally(() => {
|
|
17871
18204
|
entries.delete(key);
|
|
17872
18205
|
if (entries.size === 0) pendingRows.get(ctx)?.delete(options.maskInput);
|
|
@@ -18480,12 +18813,12 @@ async function preEmbedVaultMemories(vaultCtx, embeddingOptions, cache, options)
|
|
|
18480
18813
|
}
|
|
18481
18814
|
}
|
|
18482
18815
|
if (uncachedTexts.length > 0) {
|
|
18483
|
-
const
|
|
18816
|
+
const embeddings2 = await embedVaultRows(vaultCtx, embeddingOptions, uncachedRows);
|
|
18484
18817
|
for (let i = 0; i < uncachedKeys.length; i++) {
|
|
18485
18818
|
cacheRowVector(
|
|
18486
18819
|
cache,
|
|
18487
18820
|
uncachedKeys[i],
|
|
18488
|
-
Float32Array.from(
|
|
18821
|
+
Float32Array.from(embeddings2[i]),
|
|
18489
18822
|
uncachedVersions[i],
|
|
18490
18823
|
uncachedTexts[i]
|
|
18491
18824
|
);
|
|
@@ -20288,7 +20621,7 @@ function createAutoExtractor(options) {
|
|
|
20288
20621
|
...options.retainCtx,
|
|
20289
20622
|
embeddingOptions: {
|
|
20290
20623
|
...options.retainCtx.embeddingOptions,
|
|
20291
|
-
maskInput: (
|
|
20624
|
+
maskInput: (text15) => piiRedactor.maskText(text15)
|
|
20292
20625
|
}
|
|
20293
20626
|
} : options.retainCtx;
|
|
20294
20627
|
function processTurn(messages, conversationId) {
|
|
@@ -21031,14 +21364,14 @@ var MaskScopedEmbeddingCache = class extends Map {
|
|
|
21031
21364
|
this.inner = inner;
|
|
21032
21365
|
this.masked = masked;
|
|
21033
21366
|
}
|
|
21034
|
-
key(
|
|
21035
|
-
return `${this.masked ? "m" : "r"}:${
|
|
21367
|
+
key(text15) {
|
|
21368
|
+
return `${this.masked ? "m" : "r"}:${text15}`;
|
|
21036
21369
|
}
|
|
21037
|
-
get(
|
|
21038
|
-
return this.inner.get(this.key(
|
|
21370
|
+
get(text15) {
|
|
21371
|
+
return this.inner.get(this.key(text15));
|
|
21039
21372
|
}
|
|
21040
|
-
set(
|
|
21041
|
-
this.inner.set(this.key(
|
|
21373
|
+
set(text15, value) {
|
|
21374
|
+
this.inner.set(this.key(text15), value);
|
|
21042
21375
|
return this;
|
|
21043
21376
|
}
|
|
21044
21377
|
};
|
|
@@ -22237,12 +22570,12 @@ ${JSON.stringify(
|
|
|
22237
22570
|
function parseAnswer(body, base, parseSchema) {
|
|
22238
22571
|
if (typeof body !== "object" || body === null) return base;
|
|
22239
22572
|
const obj = body;
|
|
22240
|
-
const
|
|
22573
|
+
const text15 = extractCompletionContent(obj) ?? "";
|
|
22241
22574
|
const usage = obj.usage;
|
|
22242
22575
|
let structuredOutput;
|
|
22243
|
-
if (parseSchema &&
|
|
22576
|
+
if (parseSchema && text15) {
|
|
22244
22577
|
try {
|
|
22245
|
-
structuredOutput = JSON.parse(extractJsonCandidate(
|
|
22578
|
+
structuredOutput = JSON.parse(extractJsonCandidate(text15));
|
|
22246
22579
|
} catch (err) {
|
|
22247
22580
|
getLogger().warn("[memory/reflect] structured output was not valid JSON", {
|
|
22248
22581
|
err: err instanceof Error ? err.message : String(err)
|
|
@@ -22252,7 +22585,7 @@ function parseAnswer(body, base, parseSchema) {
|
|
|
22252
22585
|
const promptTokens = usage?.prompt_tokens ?? usage?.input_tokens ?? 0;
|
|
22253
22586
|
const completionTokens = usage?.completion_tokens ?? usage?.output_tokens ?? 0;
|
|
22254
22587
|
return {
|
|
22255
|
-
text:
|
|
22588
|
+
text: text15,
|
|
22256
22589
|
...structuredOutput !== void 0 && { structuredOutput },
|
|
22257
22590
|
basedOn: base.basedOn,
|
|
22258
22591
|
usage: {
|
|
@@ -22815,10 +23148,10 @@ async function decryptMemoryField(value, rings) {
|
|
|
22815
23148
|
|
|
22816
23149
|
// src/lib/memory/store/remotePipeline.ts
|
|
22817
23150
|
import { v7 as uuidv75 } from "uuid";
|
|
22818
|
-
function storedVector(
|
|
22819
|
-
if (!Array.isArray(
|
|
23151
|
+
function storedVector(vector2) {
|
|
23152
|
+
if (!Array.isArray(vector2) || vector2.length !== 1536 && vector2.length !== 4096 || vector2.some((v) => !Number.isFinite(v)))
|
|
22820
23153
|
throw new Error("Remote memories require a finite 1536/4096-dimensional vector");
|
|
22821
|
-
const out =
|
|
23154
|
+
const out = vector2.slice(0, 1536);
|
|
22822
23155
|
const norm = Math.sqrt(out.reduce((sum, v) => sum + v * v, 0));
|
|
22823
23156
|
if (!norm) throw new Error("Remote query/content vector has no direction after MRL truncation");
|
|
22824
23157
|
return out.map((v) => v / norm);
|
|
@@ -23177,7 +23510,7 @@ function createRemoteMemoryPipeline(options) {
|
|
|
23177
23510
|
const factSource = {
|
|
23178
23511
|
graphRanking: options.graphRanking,
|
|
23179
23512
|
temporalRanking: options.temporalRanking,
|
|
23180
|
-
search: async (
|
|
23513
|
+
search: async (text15, searchOptions, embeddingCache) => {
|
|
23181
23514
|
const queryOptions = {
|
|
23182
23515
|
...embeddingOptions,
|
|
23183
23516
|
taskType: "memory_recall_embed",
|
|
@@ -23186,8 +23519,8 @@ function createRemoteMemoryPipeline(options) {
|
|
|
23186
23519
|
}
|
|
23187
23520
|
};
|
|
23188
23521
|
const { prepare } = operation("recall", queryOptions);
|
|
23189
|
-
const prepared = await prepare(
|
|
23190
|
-
const ranked = await rankPreparedVaultCandidates(
|
|
23522
|
+
const prepared = await prepare(text15, searchOptions);
|
|
23523
|
+
const ranked = await rankPreparedVaultCandidates(text15, prepared, queryOptions, searchOptions);
|
|
23191
23524
|
return {
|
|
23192
23525
|
...ranked,
|
|
23193
23526
|
rankedOnCosine: prepared.memories.length > 0 && !prepared.embeddingsUnavailable,
|
|
@@ -23277,7 +23610,7 @@ var METADATA_FIELDS = [
|
|
|
23277
23610
|
"published_at",
|
|
23278
23611
|
"geohash"
|
|
23279
23612
|
];
|
|
23280
|
-
function
|
|
23613
|
+
function text14(value) {
|
|
23281
23614
|
return typeof value === "string" && value !== "" ? value : void 0;
|
|
23282
23615
|
}
|
|
23283
23616
|
function num(value) {
|
|
@@ -23298,14 +23631,14 @@ function revision(raw) {
|
|
|
23298
23631
|
};
|
|
23299
23632
|
}
|
|
23300
23633
|
function embedding(raw, model) {
|
|
23301
|
-
const value =
|
|
23634
|
+
const value = text14(raw.embedding);
|
|
23302
23635
|
if (!value) return void 0;
|
|
23303
23636
|
try {
|
|
23304
|
-
const
|
|
23305
|
-
const stored2 =
|
|
23306
|
-
if (stored2 === void 0 ?
|
|
23637
|
+
const vector2 = JSON.parse(value);
|
|
23638
|
+
const stored2 = text14(raw.embedding_model);
|
|
23639
|
+
if (stored2 === void 0 ? vector2.length !== LOCAL_VECTOR_DIMS : stored2 !== model)
|
|
23307
23640
|
return void 0;
|
|
23308
|
-
return storedVector(
|
|
23641
|
+
return storedVector(vector2);
|
|
23309
23642
|
} catch {
|
|
23310
23643
|
return void 0;
|
|
23311
23644
|
}
|
|
@@ -23319,7 +23652,7 @@ function stringArray(value) {
|
|
|
23319
23652
|
}
|
|
23320
23653
|
}
|
|
23321
23654
|
function sourceChunkIds(raw) {
|
|
23322
|
-
const value =
|
|
23655
|
+
const value = text14(raw.source_chunk_ids);
|
|
23323
23656
|
const ids = value && stringArray(value);
|
|
23324
23657
|
return ids ? serializeSourceChunkIds(ids) : value;
|
|
23325
23658
|
}
|
|
@@ -23331,39 +23664,39 @@ function fitsNearby(row) {
|
|
|
23331
23664
|
}
|
|
23332
23665
|
function invalid2(raw) {
|
|
23333
23666
|
const id2 = raw.id;
|
|
23334
|
-
return typeof id2 !== "string" || id2 === "" || bytes(id2) > MAX_ID_BYTES || !
|
|
23667
|
+
return typeof id2 !== "string" || id2 === "" || bytes(id2) > MAX_ID_BYTES || !text14(raw.scope) || (num(raw.created_at) ?? 0) <= 0 || (num(raw.updated_at) ?? 0) <= 0;
|
|
23335
23668
|
}
|
|
23336
23669
|
function metadata2(raw, model) {
|
|
23337
|
-
const
|
|
23670
|
+
const vector2 = embedding(raw, model);
|
|
23338
23671
|
return {
|
|
23339
23672
|
scope: raw.scope,
|
|
23340
|
-
kind:
|
|
23341
|
-
level:
|
|
23342
|
-
folder_id:
|
|
23673
|
+
kind: text14(raw.kind),
|
|
23674
|
+
level: text14(raw.level),
|
|
23675
|
+
folder_id: text14(raw.folder_id),
|
|
23343
23676
|
is_deleted: bool(raw.is_deleted) ?? false,
|
|
23344
|
-
...
|
|
23677
|
+
...vector2 && { embedding: vector2, embedding_model: model },
|
|
23345
23678
|
source_chunk_ids: sourceChunkIds(raw),
|
|
23346
23679
|
proof_count: num(raw.proof_count),
|
|
23347
|
-
source:
|
|
23680
|
+
source: text14(raw.source),
|
|
23348
23681
|
event_time_start: num(raw.event_time_start),
|
|
23349
23682
|
event_time_end: num(raw.event_time_end),
|
|
23350
|
-
event_time_kind:
|
|
23683
|
+
event_time_kind: text14(raw.event_time_kind),
|
|
23351
23684
|
topics_user_managed: bool(raw.topics_user_managed),
|
|
23352
|
-
topics:
|
|
23685
|
+
topics: text14(raw.topics),
|
|
23353
23686
|
topics_updated_at: num(raw.topics_updated_at),
|
|
23354
|
-
media:
|
|
23687
|
+
media: text14(raw.media),
|
|
23355
23688
|
topics_extracted_at: num(raw.topics_extracted_at),
|
|
23356
23689
|
topics_extracted_version: num(raw.topics_extracted_version),
|
|
23357
|
-
superseded_by:
|
|
23690
|
+
superseded_by: text14(raw.superseded_by),
|
|
23358
23691
|
superseded_at: num(raw.superseded_at),
|
|
23359
23692
|
last_observed_at: num(raw.last_observed_at),
|
|
23360
|
-
fact_type:
|
|
23693
|
+
fact_type: text14(raw.fact_type),
|
|
23361
23694
|
archived_at: num(raw.archived_at),
|
|
23362
|
-
trust_tier:
|
|
23363
|
-
visibility:
|
|
23695
|
+
trust_tier: text14(raw.trust_tier),
|
|
23696
|
+
visibility: text14(raw.visibility),
|
|
23364
23697
|
twin_opt_in: bool(raw.twin_opt_in),
|
|
23365
23698
|
published_at: num(raw.published_at),
|
|
23366
|
-
geohash:
|
|
23699
|
+
geohash: text14(raw.geohash)
|
|
23367
23700
|
};
|
|
23368
23701
|
}
|
|
23369
23702
|
function defined(value) {
|
|
@@ -23374,7 +23707,7 @@ function defined(value) {
|
|
|
23374
23707
|
async function prepareRow(raw, canonical, rings, model, updatedAt) {
|
|
23375
23708
|
const deleted = bool(raw.is_deleted) ?? false;
|
|
23376
23709
|
const { encrypt } = memoryCipher(canonical);
|
|
23377
|
-
const localKindValue =
|
|
23710
|
+
const localKindValue = text14(raw.kind_value);
|
|
23378
23711
|
let plaintext;
|
|
23379
23712
|
let kindValue;
|
|
23380
23713
|
try {
|
|
@@ -23518,7 +23851,7 @@ async function remoteMetadata(request, ids, signal) {
|
|
|
23518
23851
|
}
|
|
23519
23852
|
async function backfillTopics(ctx) {
|
|
23520
23853
|
if (!ctx.entityCtx) return;
|
|
23521
|
-
const topicless = (await getAllVaultMemoryRowsOp(ctx)).filter((raw) => !
|
|
23854
|
+
const topicless = (await getAllVaultMemoryRowsOp(ctx)).filter((raw) => !text14(raw.topics) && !bool(raw.is_deleted)).map((raw) => raw.id);
|
|
23522
23855
|
if (topicless.length > 0) await backfillMemoryTopicsOp(ctx, topicless);
|
|
23523
23856
|
}
|
|
23524
23857
|
async function migrateMemoriesToRemote(options) {
|
|
@@ -23629,7 +23962,7 @@ async function migrateMemoriesToRemote(options) {
|
|
|
23629
23962
|
track(reembedded, !!row.embedding && !usable.has(id2));
|
|
23630
23963
|
track(unembedded, !row.embedding);
|
|
23631
23964
|
track(placeholders, plaintext === void 0);
|
|
23632
|
-
track(truncated, row.source_chunk_ids !==
|
|
23965
|
+
track(truncated, row.source_chunk_ids !== text14(local.get(id2).source_chunk_ids));
|
|
23633
23966
|
}
|
|
23634
23967
|
let sent = 0;
|
|
23635
23968
|
options.onProgress?.({ imported: sent, toImport: upload.length });
|
|
@@ -24046,12 +24379,12 @@ function createRemoteMemoryStore(options) {
|
|
|
24046
24379
|
};
|
|
24047
24380
|
const embedInBackground = ({ memory: { memory_id: id2, content } }) => {
|
|
24048
24381
|
generateEmbedding(content, embeddingOptions).then(
|
|
24049
|
-
(
|
|
24382
|
+
(vector2) => serialized(id2, async () => {
|
|
24050
24383
|
const current = await live(id2);
|
|
24051
24384
|
if (!current || current.memory.content !== content || current.memory.embedding?.length)
|
|
24052
24385
|
return;
|
|
24053
24386
|
const saved = await persistence.put(
|
|
24054
|
-
{ ...current.memory, embedding: storedVector(
|
|
24387
|
+
{ ...current.memory, embedding: storedVector(vector2), embedding_model: model },
|
|
24055
24388
|
current
|
|
24056
24389
|
);
|
|
24057
24390
|
notify("embedding", [saved]);
|
|
@@ -24544,8 +24877,8 @@ function createRemoteMemoryStore(options) {
|
|
|
24544
24877
|
return finish();
|
|
24545
24878
|
}
|
|
24546
24879
|
const writes = targets.flatMap((record2, i) => {
|
|
24547
|
-
const
|
|
24548
|
-
if (!
|
|
24880
|
+
const vector2 = vectors[i];
|
|
24881
|
+
if (!vector2) {
|
|
24549
24882
|
result.failed++;
|
|
24550
24883
|
return [];
|
|
24551
24884
|
}
|
|
@@ -24554,7 +24887,7 @@ function createRemoteMemoryStore(options) {
|
|
|
24554
24887
|
{
|
|
24555
24888
|
memory: {
|
|
24556
24889
|
...record2.memory,
|
|
24557
|
-
embedding: storedVector(
|
|
24890
|
+
embedding: storedVector(vector2),
|
|
24558
24891
|
embedding_model: model
|
|
24559
24892
|
},
|
|
24560
24893
|
expectedVersion: record2
|
|
@@ -24634,10 +24967,10 @@ function createRemoteMemoryStore(options) {
|
|
|
24634
24967
|
if (!rejectsInput(error)) return null;
|
|
24635
24968
|
}
|
|
24636
24969
|
const vectors = [];
|
|
24637
|
-
for (const [i,
|
|
24970
|
+
for (const [i, text15] of texts.entries()) {
|
|
24638
24971
|
signal?.throwIfAborted();
|
|
24639
24972
|
try {
|
|
24640
|
-
[vectors[i]] = await generateEmbeddings([
|
|
24973
|
+
[vectors[i]] = await generateEmbeddings([text15], embeddingOptions, signal);
|
|
24641
24974
|
} catch (error) {
|
|
24642
24975
|
signal?.throwIfAborted();
|
|
24643
24976
|
if (!rejectsInput(error)) return null;
|
|
@@ -25291,6 +25624,7 @@ async function synthesizeFacet(facet, ctx, options, prior, vaultPreparation) {
|
|
|
25291
25624
|
vaultPreparation,
|
|
25292
25625
|
scopes,
|
|
25293
25626
|
limit: hasReviewGate ? RECALL_MAX_LIMIT : limit,
|
|
25627
|
+
...hasReviewGate && { memoryIds: [...reviewed] },
|
|
25294
25628
|
types: ["fact"],
|
|
25295
25629
|
factTypeWeights,
|
|
25296
25630
|
proofCountAlpha
|
|
@@ -25326,8 +25660,8 @@ async function synthesizeFacet(facet, ctx, options, prior, vaultPreparation) {
|
|
|
25326
25660
|
memories
|
|
25327
25661
|
});
|
|
25328
25662
|
const noEvidence = result.basedOn.memoryIds.length === 0;
|
|
25329
|
-
const { text:
|
|
25330
|
-
if (!
|
|
25663
|
+
const { text: text15, legitimateEmpty } = extractFacetText(result.structuredOutput);
|
|
25664
|
+
if (!text15 && !legitimateEmpty && !noEvidence) {
|
|
25331
25665
|
getLogger().warn(
|
|
25332
25666
|
"[memory/synthesizeProfile] facet synthesis returned degraded-empty; using fallback section",
|
|
25333
25667
|
{ facet: facet.key, recalledCount: result.basedOn.memoryIds.length }
|
|
@@ -25337,12 +25671,12 @@ async function synthesizeFacet(facet, ctx, options, prior, vaultPreparation) {
|
|
|
25337
25671
|
const section = {
|
|
25338
25672
|
key: facet.key,
|
|
25339
25673
|
label: facet.label,
|
|
25340
|
-
text:
|
|
25674
|
+
text: text15,
|
|
25341
25675
|
sourceMemoryIds: result.basedOn.memoryIds,
|
|
25342
25676
|
generatedAt: Date.now()
|
|
25343
25677
|
};
|
|
25344
|
-
if (options.redactor &&
|
|
25345
|
-
const redacted = await options.redactor.redactTextAsync(
|
|
25678
|
+
if (options.redactor && text15) {
|
|
25679
|
+
const redacted = await options.redactor.redactTextAsync(text15);
|
|
25346
25680
|
section.text = redacted.text;
|
|
25347
25681
|
}
|
|
25348
25682
|
if (!legitimateEmpty && !noEvidence) {
|
|
@@ -25567,9 +25901,9 @@ async function assembleMemoryContext(options) {
|
|
|
25567
25901
|
if (!refs.length) return [];
|
|
25568
25902
|
const rows = await loadFacts({ ...filters, memoryIds: refs.map((r) => r.memoryId) });
|
|
25569
25903
|
const byId = new Map(rows.filter(active).map((m) => [m.uniqueId, m]));
|
|
25570
|
-
return refs.flatMap((
|
|
25571
|
-
const m = byId.get(
|
|
25572
|
-
return m ? [asItem(m, "session",
|
|
25904
|
+
return refs.flatMap((ref2) => {
|
|
25905
|
+
const m = byId.get(ref2.memoryId);
|
|
25906
|
+
return m ? [asItem(m, "session", ref2.score)] : [];
|
|
25573
25907
|
});
|
|
25574
25908
|
},
|
|
25575
25909
|
[]
|
|
@@ -26328,7 +26662,7 @@ async function verifyFactSupport(items, options) {
|
|
|
26328
26662
|
}
|
|
26329
26663
|
const maxEvidenceChars = Math.max(1, options.maxEvidenceChars ?? DEFAULT_MAX_EVIDENCE_CHARS);
|
|
26330
26664
|
const redactor = resolvePiiRedactor(options.piiRedaction ?? true);
|
|
26331
|
-
const safe = async (
|
|
26665
|
+
const safe = async (text15) => redactor ? (await redactor.redactTextAsync(text15)).text : text15;
|
|
26332
26666
|
let truncatedCount = 0;
|
|
26333
26667
|
const parts = [];
|
|
26334
26668
|
for (const [i, item] of items.entries()) {
|
|
@@ -26444,7 +26778,7 @@ async function verifyMemoriesForPublish(memories, sources, options) {
|
|
|
26444
26778
|
);
|
|
26445
26779
|
const pending = [];
|
|
26446
26780
|
for (const { index, uniqueId, content, ids } of withinBudget) {
|
|
26447
|
-
const evidence = ids.map((id2) => resolved.get(id2) ?? null).filter((
|
|
26781
|
+
const evidence = ids.map((id2) => resolved.get(id2) ?? null).filter((text15) => text15 !== null);
|
|
26448
26782
|
const dropped = ids.length - evidence.length;
|
|
26449
26783
|
if (ids.some((id2) => unreadable.has(id2))) {
|
|
26450
26784
|
results[index] = {
|
|
@@ -27421,10 +27755,10 @@ async function exportMarkdownToPdf(markdown, options) {
|
|
|
27421
27755
|
function lineHeightMm(fontSizePt) {
|
|
27422
27756
|
return ptToMm(fontSizePt) * lineHeight;
|
|
27423
27757
|
}
|
|
27424
|
-
function renderWrappedText(
|
|
27758
|
+
function renderWrappedText(text15, x, maxW, fontSizePt, fontStyle = "normal", fontFamily = "Helvetica") {
|
|
27425
27759
|
doc.setFont(fontFamily, fontStyle);
|
|
27426
27760
|
doc.setFontSize(fontSizePt);
|
|
27427
|
-
const lines = doc.splitTextToSize(
|
|
27761
|
+
const lines = doc.splitTextToSize(text15, maxW);
|
|
27428
27762
|
const lh = lineHeightMm(fontSizePt);
|
|
27429
27763
|
for (const line of lines) {
|
|
27430
27764
|
ensureSpace(lh);
|
|
@@ -27506,10 +27840,10 @@ async function exportMarkdownToPdf(markdown, options) {
|
|
|
27506
27840
|
const lh = lineHeightMm(opts.fontSize);
|
|
27507
27841
|
for (let i = 0; i < items.length; i++) {
|
|
27508
27842
|
const prefix = ordered ? `${(listToken.start || 1) + i}. ` : "\u2022 ";
|
|
27509
|
-
const
|
|
27843
|
+
const text15 = tokensToPlainText(items[i].tokens);
|
|
27510
27844
|
ensureSpace(lh);
|
|
27511
27845
|
doc.text(prefix, opts.margins.left, cursorY);
|
|
27512
|
-
const listLines = doc.splitTextToSize(
|
|
27846
|
+
const listLines = doc.splitTextToSize(text15, itemW);
|
|
27513
27847
|
for (const line of listLines) {
|
|
27514
27848
|
ensureSpace(lh);
|
|
27515
27849
|
doc.text(line, indentX, cursorY);
|
|
@@ -27521,12 +27855,12 @@ async function exportMarkdownToPdf(markdown, options) {
|
|
|
27521
27855
|
}
|
|
27522
27856
|
case "blockquote": {
|
|
27523
27857
|
const bqToken = token;
|
|
27524
|
-
const
|
|
27858
|
+
const text15 = tokensToPlainText(bqToken.tokens ?? []);
|
|
27525
27859
|
const indentX = opts.margins.left + SPACING.QUOTE_INDENT;
|
|
27526
27860
|
const quoteW = cw - SPACING.QUOTE_INSET;
|
|
27527
27861
|
doc.setFont("Helvetica", "italic");
|
|
27528
27862
|
doc.setFontSize(opts.fontSize);
|
|
27529
|
-
const bqLines = doc.splitTextToSize(
|
|
27863
|
+
const bqLines = doc.splitTextToSize(text15, quoteW);
|
|
27530
27864
|
const lh = lineHeightMm(opts.fontSize);
|
|
27531
27865
|
const blockH = bqLines.length * lh;
|
|
27532
27866
|
ensureSpace(Math.min(blockH, 20));
|
|
@@ -27562,8 +27896,8 @@ async function exportMarkdownToPdf(markdown, options) {
|
|
|
27562
27896
|
doc.setFont("Helvetica", fontStyle);
|
|
27563
27897
|
doc.setFontSize(tableFontSize);
|
|
27564
27898
|
const cellLines = cells.map((cell) => {
|
|
27565
|
-
const
|
|
27566
|
-
return doc.splitTextToSize(
|
|
27899
|
+
const text15 = tokensToPlainText(cell.tokens);
|
|
27900
|
+
return doc.splitTextToSize(text15, cellContentW);
|
|
27567
27901
|
});
|
|
27568
27902
|
const maxLines = Math.max(1, ...cellLines.map((l) => l.length));
|
|
27569
27903
|
ensureSpace(maxLines * lh + SPACING.SM);
|
|
@@ -27791,13 +28125,13 @@ async function withPdfDocument(pdfDataUrl, fn) {
|
|
|
27791
28125
|
}
|
|
27792
28126
|
}
|
|
27793
28127
|
function joinPdfTextItems(items) {
|
|
27794
|
-
let
|
|
28128
|
+
let text15 = "";
|
|
27795
28129
|
for (const item of items) {
|
|
27796
28130
|
if (!("str" in item)) continue;
|
|
27797
28131
|
const { str, hasEOL } = item;
|
|
27798
|
-
|
|
28132
|
+
text15 += str + (hasEOL ? "\n" : " ");
|
|
27799
28133
|
}
|
|
27800
|
-
return
|
|
28134
|
+
return text15.replace(/[ \t]+\n/g, "\n").trim();
|
|
27801
28135
|
}
|
|
27802
28136
|
function computeRenderScale(width, height) {
|
|
27803
28137
|
const longest = Math.max(width, height);
|
|
@@ -27817,7 +28151,7 @@ async function extractPdfPageTexts(pdfDataUrl) {
|
|
|
27817
28151
|
}
|
|
27818
28152
|
async function extractTextFromPdf(pdfDataUrl) {
|
|
27819
28153
|
const pageTexts = await extractPdfPageTexts(pdfDataUrl);
|
|
27820
|
-
return pageTexts.filter((
|
|
28154
|
+
return pageTexts.filter((text15) => text15.trim()).join("\n\n");
|
|
27821
28155
|
}
|
|
27822
28156
|
async function renderPdfPages(pdfDataUrl, maxPages, pageNumbers) {
|
|
27823
28157
|
return withPdfDocument(pdfDataUrl, async (pdf) => {
|
|
@@ -27859,8 +28193,8 @@ var MAX_IMAGE_PAGES = 20;
|
|
|
27859
28193
|
var MIN_PAGE_TEXT_CHARS = 20;
|
|
27860
28194
|
function selectPdfImagePages(pageTexts, maxImagePages = MAX_IMAGE_PAGES) {
|
|
27861
28195
|
const needImage = [];
|
|
27862
|
-
pageTexts.forEach((
|
|
27863
|
-
if (
|
|
28196
|
+
pageTexts.forEach((text15, index) => {
|
|
28197
|
+
if (text15.trim().length < MIN_PAGE_TEXT_CHARS) needImage.push(index + 1);
|
|
27864
28198
|
});
|
|
27865
28199
|
const limit = Math.max(0, maxImagePages);
|
|
27866
28200
|
return { rendered: needImage.slice(0, limit), omitted: needImage.slice(limit) };
|
|
@@ -27919,10 +28253,10 @@ var PdfProcessor = class {
|
|
|
27919
28253
|
textError
|
|
27920
28254
|
);
|
|
27921
28255
|
}
|
|
27922
|
-
const
|
|
28256
|
+
const text15 = (pageTexts ?? []).filter((t) => t.trim()).join("\n\n");
|
|
27923
28257
|
const { rendered, omitted } = pageTexts ? selectPdfImagePages(pageTexts) : { rendered: [], omitted: [] };
|
|
27924
28258
|
if (pageTexts && rendered.length === 0 && omitted.length === 0) {
|
|
27925
|
-
return
|
|
28259
|
+
return text15.trim() ? { extractedText: text15, format: "plain" } : null;
|
|
27926
28260
|
}
|
|
27927
28261
|
let renderedPages;
|
|
27928
28262
|
let pageCount = pageTexts?.length;
|
|
@@ -27935,7 +28269,7 @@ var PdfProcessor = class {
|
|
|
27935
28269
|
pageCount = result.pageCount;
|
|
27936
28270
|
}
|
|
27937
28271
|
} catch (imageError) {
|
|
27938
|
-
if (!
|
|
28272
|
+
if (!text15.trim()) {
|
|
27939
28273
|
logger.error("[PdfProcessor] Image conversion also failed:", imageError);
|
|
27940
28274
|
throw imageError;
|
|
27941
28275
|
}
|
|
@@ -27947,7 +28281,7 @@ var PdfProcessor = class {
|
|
|
27947
28281
|
const included = new Set(imagePages);
|
|
27948
28282
|
const needImage = pageTexts ? [...rendered, ...omitted] : Array.from({ length: pageCount ?? 0 }, (_, i) => i + 1);
|
|
27949
28283
|
const omittedPages = needImage.filter((n) => !included.has(n)).sort((a, b) => a - b);
|
|
27950
|
-
if (images.length === 0 && !
|
|
28284
|
+
if (images.length === 0 && !text15.trim()) {
|
|
27951
28285
|
logger.warn("[PdfProcessor] Image conversion also returned empty");
|
|
27952
28286
|
return null;
|
|
27953
28287
|
}
|
|
@@ -27956,9 +28290,9 @@ var PdfProcessor = class {
|
|
|
27956
28290
|
);
|
|
27957
28291
|
const imageNote = buildPdfImageNote(file.name, imagePages, omittedPages, pageCount);
|
|
27958
28292
|
return {
|
|
27959
|
-
extractedText:
|
|
28293
|
+
extractedText: text15.trim() ? `${imageNote}
|
|
27960
28294
|
|
|
27961
|
-
${
|
|
28295
|
+
${text15}` : imageNote,
|
|
27962
28296
|
format: "plain",
|
|
27963
28297
|
imageDataUrls: images.length > 0 ? images : void 0,
|
|
27964
28298
|
metadata: {
|
|
@@ -28120,16 +28454,16 @@ var TextProcessor = class {
|
|
|
28120
28454
|
async process(file) {
|
|
28121
28455
|
try {
|
|
28122
28456
|
const arrayBuffer = await dataUrlToArrayBuffer(file.dataUrl);
|
|
28123
|
-
const
|
|
28124
|
-
if (!
|
|
28457
|
+
const text15 = decodeText(new Uint8Array(arrayBuffer));
|
|
28458
|
+
if (!text15.trim()) {
|
|
28125
28459
|
return null;
|
|
28126
28460
|
}
|
|
28127
28461
|
return {
|
|
28128
|
-
extractedText:
|
|
28462
|
+
extractedText: text15,
|
|
28129
28463
|
format: this.resolveFormat(file),
|
|
28130
28464
|
metadata: {
|
|
28131
28465
|
byteLength: arrayBuffer.byteLength,
|
|
28132
|
-
characterCount:
|
|
28466
|
+
characterCount: text15.length
|
|
28133
28467
|
}
|
|
28134
28468
|
};
|
|
28135
28469
|
} catch (error) {
|
|
@@ -28190,8 +28524,8 @@ var WordProcessor = class {
|
|
|
28190
28524
|
/**
|
|
28191
28525
|
* Count words in text
|
|
28192
28526
|
*/
|
|
28193
|
-
countWords(
|
|
28194
|
-
return
|
|
28527
|
+
countWords(text15) {
|
|
28528
|
+
return text15.split(/\s+/).filter((w) => w.length > 0).length;
|
|
28195
28529
|
}
|
|
28196
28530
|
};
|
|
28197
28531
|
|
|
@@ -28428,13 +28762,13 @@ function truncationMarker2(kept, total, fileName) {
|
|
|
28428
28762
|
return `
|
|
28429
28763
|
[truncated: showing the first ${kept} of ${total} characters of ${fileName}]`;
|
|
28430
28764
|
}
|
|
28431
|
-
function truncateText(
|
|
28432
|
-
if (
|
|
28765
|
+
function truncateText(text15, limit, fileName) {
|
|
28766
|
+
if (text15.length <= limit) return { text: text15, truncated: false };
|
|
28433
28767
|
let end = Math.max(0, limit);
|
|
28434
|
-
const code =
|
|
28768
|
+
const code = text15.charCodeAt(end - 1);
|
|
28435
28769
|
if (end > 0 && code >= 55296 && code <= 56319) end--;
|
|
28436
28770
|
return {
|
|
28437
|
-
text: `${
|
|
28771
|
+
text: `${text15.slice(0, end)}${truncationMarker2(end, text15.length, fileName)}`,
|
|
28438
28772
|
truncated: true
|
|
28439
28773
|
};
|
|
28440
28774
|
}
|
|
@@ -28599,13 +28933,13 @@ async function preprocessFiles(files, options = {}) {
|
|
|
28599
28933
|
Math.max(0, MAX_TOTAL_IMAGES - allImageUrls.length)
|
|
28600
28934
|
);
|
|
28601
28935
|
allImageUrls.push(...images.slice(0, keptImages));
|
|
28602
|
-
const
|
|
28603
|
-
const fitsWhole =
|
|
28604
|
-
const limit = fitsWhole ?
|
|
28936
|
+
const text15 = rewriteImageNote(result, file.name, keptImages);
|
|
28937
|
+
const fitsWhole = text15.length <= Math.min(maxExtractedCharsPerFile, remaining);
|
|
28938
|
+
const limit = fitsWhole ? text15.length : Math.min(
|
|
28605
28939
|
maxExtractedCharsPerFile,
|
|
28606
|
-
remaining - truncationMarker2(
|
|
28940
|
+
remaining - truncationMarker2(text15.length, text15.length, file.name).length
|
|
28607
28941
|
);
|
|
28608
|
-
const capped = truncateText(
|
|
28942
|
+
const capped = truncateText(text15, Math.max(0, limit), file.name);
|
|
28609
28943
|
const formattedContent = formatExtractedContent(file.name, capped.text, result.format);
|
|
28610
28944
|
totalChars += separatorLength + formattedContent.length;
|
|
28611
28945
|
extractedTexts.push(formattedContent);
|
|
@@ -28709,9 +29043,9 @@ async function autoFilterClientTools(clientTools, promptEmbeddings, cache, embed
|
|
|
28709
29043
|
if (toolsNeedingEmbeddings.length > 0) {
|
|
28710
29044
|
try {
|
|
28711
29045
|
const descriptions = toolsNeedingEmbeddings.map((t) => t.description);
|
|
28712
|
-
const
|
|
29046
|
+
const embeddings2 = await generateEmbeddings(descriptions, embeddingOptions);
|
|
28713
29047
|
for (let i = 0; i < toolsNeedingEmbeddings.length; i++) {
|
|
28714
|
-
cache.set(toolsNeedingEmbeddings[i].name,
|
|
29048
|
+
cache.set(toolsNeedingEmbeddings[i].name, embeddings2[i]);
|
|
28715
29049
|
}
|
|
28716
29050
|
} catch {
|
|
28717
29051
|
return { tools: clientTools, activatedSetNames: /* @__PURE__ */ new Set(), matchedSetNames: /* @__PURE__ */ new Set() };
|
|
@@ -28847,11 +29181,11 @@ function createGetAuthenticatedUserTool(getAccessToken, requestAccess) {
|
|
|
28847
29181
|
};
|
|
28848
29182
|
}
|
|
28849
29183
|
var MAX_RESPONSE_SIZE = 1e5;
|
|
28850
|
-
function truncate(
|
|
28851
|
-
if (
|
|
28852
|
-
return
|
|
29184
|
+
function truncate(text15, maxLen) {
|
|
29185
|
+
if (text15.length <= maxLen) return text15;
|
|
29186
|
+
return text15.slice(0, maxLen) + `
|
|
28853
29187
|
|
|
28854
|
-
... (truncated, ${
|
|
29188
|
+
... (truncated, ${text15.length - maxLen} characters omitted)`;
|
|
28855
29189
|
}
|
|
28856
29190
|
function createGitHubApiTool(getAccessToken, requestAccess) {
|
|
28857
29191
|
return {
|
|
@@ -28899,16 +29233,16 @@ IMPORTANT: For write operations (POST, PUT, PATCH, DELETE), always confirm with
|
|
|
28899
29233
|
method,
|
|
28900
29234
|
body: body ? JSON.stringify(body) : void 0
|
|
28901
29235
|
});
|
|
28902
|
-
const
|
|
29236
|
+
const text15 = await resp.text();
|
|
28903
29237
|
if (!resp.ok) {
|
|
28904
|
-
return `Error: GitHub API ${method} ${path} returned ${resp.status}: ${truncate(
|
|
29238
|
+
return `Error: GitHub API ${method} ${path} returned ${resp.status}: ${truncate(text15, 500)}`;
|
|
28905
29239
|
}
|
|
28906
29240
|
try {
|
|
28907
|
-
const data = JSON.parse(
|
|
29241
|
+
const data = JSON.parse(text15);
|
|
28908
29242
|
const json5 = JSON.stringify(data);
|
|
28909
29243
|
return truncate(json5, MAX_RESPONSE_SIZE);
|
|
28910
29244
|
} catch {
|
|
28911
|
-
return truncate(
|
|
29245
|
+
return truncate(text15, MAX_RESPONSE_SIZE);
|
|
28912
29246
|
}
|
|
28913
29247
|
} catch (err) {
|
|
28914
29248
|
if (err instanceof DOMException && err.name === "AbortError") {
|
|
@@ -29570,10 +29904,10 @@ function formatObjectAttr(obj) {
|
|
|
29570
29904
|
});
|
|
29571
29905
|
return `{ ${entries.join(", ")} }`;
|
|
29572
29906
|
}
|
|
29573
|
-
function isSafeJsxText(
|
|
29574
|
-
if (/[<>{}&]/.test(
|
|
29575
|
-
if (/\n/.test(
|
|
29576
|
-
if (/^\s|\s$/.test(
|
|
29907
|
+
function isSafeJsxText(text15) {
|
|
29908
|
+
if (/[<>{}&]/.test(text15)) return false;
|
|
29909
|
+
if (/\n/.test(text15)) return false;
|
|
29910
|
+
if (/^\s|\s$/.test(text15)) return false;
|
|
29577
29911
|
return true;
|
|
29578
29912
|
}
|
|
29579
29913
|
function getId(node) {
|
|
@@ -31804,9 +32138,9 @@ New lines of conversation:
|
|
|
31804
32138
|
{new_lines}
|
|
31805
32139
|
|
|
31806
32140
|
New summary:`;
|
|
31807
|
-
function estimateTokens(
|
|
31808
|
-
if (!
|
|
31809
|
-
return Math.ceil(
|
|
32141
|
+
function estimateTokens(text15) {
|
|
32142
|
+
if (!text15) return 0;
|
|
32143
|
+
return Math.ceil(text15.length / 4);
|
|
31810
32144
|
}
|
|
31811
32145
|
var PER_MESSAGE_OVERHEAD_TOKENS = 4;
|
|
31812
32146
|
var MAX_MESSAGES_PER_SUMMARIZATION = 20;
|
|
@@ -31866,14 +32200,14 @@ function splitMessagesAtThreshold(messages, tokenThreshold, minWindowMessages) {
|
|
|
31866
32200
|
}
|
|
31867
32201
|
async function redactSummaryPrompt(prompt, redactor, onPiiRedacted) {
|
|
31868
32202
|
if (!redactor) return prompt;
|
|
31869
|
-
const { text:
|
|
32203
|
+
const { text: text15, matches } = await redactor.redactTextAsync(prompt);
|
|
31870
32204
|
if (matches.length > 0 && onPiiRedacted) {
|
|
31871
32205
|
try {
|
|
31872
32206
|
onPiiRedacted(matches);
|
|
31873
32207
|
} catch {
|
|
31874
32208
|
}
|
|
31875
32209
|
}
|
|
31876
|
-
return
|
|
32210
|
+
return text15;
|
|
31877
32211
|
}
|
|
31878
32212
|
async function progressiveSummarize(options) {
|
|
31879
32213
|
const {
|
|
@@ -32830,11 +33164,11 @@ function useChatStorage(options) {
|
|
|
32830
33164
|
[piiRedaction, currentConversationId]
|
|
32831
33165
|
);
|
|
32832
33166
|
const maskForEmbedding = useCallback5(
|
|
32833
|
-
(
|
|
33167
|
+
(text15) => isPiiRedactor(resolvedPiiRedaction) ? resolvedPiiRedaction.maskText(text15) : text15,
|
|
32834
33168
|
[resolvedPiiRedaction]
|
|
32835
33169
|
);
|
|
32836
33170
|
const maskEmbeddingInput = useMemo4(
|
|
32837
|
-
() => isPiiRedactor(resolvedPiiRedaction) ? (
|
|
33171
|
+
() => isPiiRedactor(resolvedPiiRedaction) ? (text15) => resolvedPiiRedaction.maskText(text15) : void 0,
|
|
32838
33172
|
[resolvedPiiRedaction]
|
|
32839
33173
|
);
|
|
32840
33174
|
const vaultEmbeddingOptions = useMemo4(
|
|
@@ -33090,10 +33424,10 @@ function useChatStorage(options) {
|
|
|
33090
33424
|
if (shouldChunkMessage(message.content, DEFAULT_CHUNK_SIZE)) {
|
|
33091
33425
|
const textChunks = chunkText(message.content);
|
|
33092
33426
|
const chunkTexts = textChunks.map((c) => mask(c.text));
|
|
33093
|
-
const
|
|
33427
|
+
const embeddings2 = await generateEmbeddings(chunkTexts, embeddingOptions);
|
|
33094
33428
|
const messageChunks = textChunks.map((chunk, i) => ({
|
|
33095
33429
|
text: chunk.text,
|
|
33096
|
-
vector:
|
|
33430
|
+
vector: embeddings2[i],
|
|
33097
33431
|
startOffset: chunk.startOffset,
|
|
33098
33432
|
endOffset: chunk.endOffset
|
|
33099
33433
|
}));
|
|
@@ -33639,7 +33973,7 @@ function useChatStorage(options) {
|
|
|
33639
33973
|
return {
|
|
33640
33974
|
callRedactor: redactor,
|
|
33641
33975
|
callPiiRedaction: forInnerSend,
|
|
33642
|
-
maskForCall: (
|
|
33976
|
+
maskForCall: (text15) => redactor ? redactor.maskText(text15) : text15
|
|
33643
33977
|
};
|
|
33644
33978
|
};
|
|
33645
33979
|
const resolveThoughtProcess = () => finalizeThoughtProcess(getThoughtProcess?.() || thoughtProcess);
|
|
@@ -35714,13 +36048,13 @@ function useOCR() {
|
|
|
35714
36048
|
const result = await Tesseract.recognize(image, language);
|
|
35715
36049
|
pageTexts.push(result.data.text);
|
|
35716
36050
|
}
|
|
35717
|
-
const
|
|
35718
|
-
if (!
|
|
36051
|
+
const text15 = pageTexts.join("\n\n");
|
|
36052
|
+
if (!text15.trim()) {
|
|
35719
36053
|
getLogger().warn(`No text found in OCR source ${filename || "unknown"}`);
|
|
35720
36054
|
return null;
|
|
35721
36055
|
}
|
|
35722
36056
|
return `[Context from OCR attachment ${filename || "unknown"}]:
|
|
35723
|
-
${
|
|
36057
|
+
${text15}`;
|
|
35724
36058
|
} catch (err) {
|
|
35725
36059
|
getLogger().error(`Failed to process OCR for ${file.filename || "unknown"}:`, err);
|
|
35726
36060
|
return null;
|
|
@@ -35763,13 +36097,13 @@ function usePdf() {
|
|
|
35763
36097
|
const contexts = await Promise.all(
|
|
35764
36098
|
pdfFiles.map(async (file) => {
|
|
35765
36099
|
try {
|
|
35766
|
-
const
|
|
35767
|
-
if (!
|
|
36100
|
+
const text15 = await extractTextFromPdf(file.url);
|
|
36101
|
+
if (!text15.trim()) {
|
|
35768
36102
|
getLogger().warn(`No text found in PDF ${file.filename}`);
|
|
35769
36103
|
return null;
|
|
35770
36104
|
}
|
|
35771
36105
|
return `[Context from PDF attachment ${file.filename}]:
|
|
35772
|
-
${
|
|
36106
|
+
${text15}`;
|
|
35773
36107
|
} catch (err) {
|
|
35774
36108
|
getLogger().error(`Failed to process PDF ${file.filename}:`, err);
|
|
35775
36109
|
return null;
|
|
@@ -37302,14 +37636,14 @@ function useVoice(options) {
|
|
|
37302
37636
|
recognition.interimResults = false;
|
|
37303
37637
|
recognition.lang = options?.language ?? "";
|
|
37304
37638
|
recognition.onresult = (event) => {
|
|
37305
|
-
let
|
|
37639
|
+
let text15 = "";
|
|
37306
37640
|
for (let i = 0; i < event.results.length; i++) {
|
|
37307
37641
|
const result = event.results[i];
|
|
37308
37642
|
if (result && result.isFinal && result[0]) {
|
|
37309
|
-
|
|
37643
|
+
text15 += result[0].transcript + " ";
|
|
37310
37644
|
}
|
|
37311
37645
|
}
|
|
37312
|
-
nativeTextRef.current =
|
|
37646
|
+
nativeTextRef.current = text15.trim();
|
|
37313
37647
|
};
|
|
37314
37648
|
recognition.onerror = (event) => {
|
|
37315
37649
|
if (event.error !== "aborted" && event.error !== "no-speech") {
|