@anuma/sdk 3.13.1 → 3.13.2
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 +37 -7
- package/dist/expo/index.mjs +35 -7
- package/dist/react/index.cjs +90 -54
- package/dist/react/index.d.mts +7 -0
- package/dist/react/index.d.ts +7 -0
- package/dist/react/index.mjs +88 -54
- package/dist/server/{chunk-ME6ZQN52.mjs → chunk-WZE6ZVKE.mjs} +4 -4
- package/dist/server/index.cjs +38 -38
- package/dist/server/index.mjs +1 -1
- package/dist/server/{recall-RMCSM6L6.mjs → recall-YZWIV6IH.mjs} +1 -1
- package/package.json +1 -1
package/dist/expo/index.cjs
CHANGED
|
@@ -17563,6 +17563,31 @@ function createMemoryEngineTool(storageCtx, embeddingOptions, searchOptions, cal
|
|
|
17563
17563
|
// src/expo/useChatStorage.ts
|
|
17564
17564
|
init_constants();
|
|
17565
17565
|
|
|
17566
|
+
// src/lib/memoryVault/embeddingCacheRegistry.ts
|
|
17567
|
+
init_useEncryption();
|
|
17568
|
+
init_lruCache();
|
|
17569
|
+
var registry = /* @__PURE__ */ new WeakMap();
|
|
17570
|
+
function buildKey(walletAddress, model) {
|
|
17571
|
+
return JSON.stringify([walletAddress ?? null, model]);
|
|
17572
|
+
}
|
|
17573
|
+
function getVaultEmbeddingCache(database, walletAddress, model) {
|
|
17574
|
+
let perDb = registry.get(database);
|
|
17575
|
+
if (!perDb) {
|
|
17576
|
+
perDb = /* @__PURE__ */ new Map();
|
|
17577
|
+
registry.set(database, perDb);
|
|
17578
|
+
}
|
|
17579
|
+
const key = buildKey(walletAddress, model);
|
|
17580
|
+
let cache = perDb.get(key);
|
|
17581
|
+
if (!cache) {
|
|
17582
|
+
cache = createVaultEmbeddingCache();
|
|
17583
|
+
perDb.set(key, cache);
|
|
17584
|
+
}
|
|
17585
|
+
return cache;
|
|
17586
|
+
}
|
|
17587
|
+
onClearAllEncryptionState(() => {
|
|
17588
|
+
registry = /* @__PURE__ */ new WeakMap();
|
|
17589
|
+
});
|
|
17590
|
+
|
|
17566
17591
|
// src/lib/memoryVault/index.ts
|
|
17567
17592
|
init_searchTool();
|
|
17568
17593
|
|
|
@@ -19024,14 +19049,17 @@ function useChatStorage(options) {
|
|
|
19024
19049
|
},
|
|
19025
19050
|
[vaultCtx]
|
|
19026
19051
|
);
|
|
19027
|
-
const
|
|
19052
|
+
const vaultEmbeddingCache = (0, import_react4.useMemo)(
|
|
19053
|
+
() => getVaultEmbeddingCache(database, walletAddress, embeddingModel),
|
|
19054
|
+
[database, walletAddress, embeddingModel]
|
|
19055
|
+
);
|
|
19028
19056
|
const chunkVectorCacheRef = (0, import_react4.useRef)(createChunkVectorCache());
|
|
19029
19057
|
(0, import_react4.useEffect)(() => {
|
|
19030
19058
|
return onClearAllEncryptionState(() => {
|
|
19031
|
-
|
|
19059
|
+
vaultEmbeddingCache.clear();
|
|
19032
19060
|
chunkVectorCacheRef.current.clear();
|
|
19033
19061
|
});
|
|
19034
|
-
}, []);
|
|
19062
|
+
}, [vaultEmbeddingCache]);
|
|
19035
19063
|
const createRecallTool2 = (0, import_react4.useCallback)(
|
|
19036
19064
|
(toolOptions, callbacks) => {
|
|
19037
19065
|
if (!getToken) {
|
|
@@ -19048,7 +19076,7 @@ function useChatStorage(options) {
|
|
|
19048
19076
|
model: embeddingModel,
|
|
19049
19077
|
maskInput: maskEmbeddingInput
|
|
19050
19078
|
},
|
|
19051
|
-
vaultCache:
|
|
19079
|
+
vaultCache: vaultEmbeddingCache,
|
|
19052
19080
|
chunkCache: chunkVectorCacheRef.current
|
|
19053
19081
|
// entityCtx is intentionally omitted on Expo for now — the
|
|
19054
19082
|
// W5 graph lane is a no-op without it (recall falls through
|
|
@@ -19066,7 +19094,8 @@ function useChatStorage(options) {
|
|
|
19066
19094
|
baseUrl,
|
|
19067
19095
|
embeddingModel,
|
|
19068
19096
|
currentConversationId,
|
|
19069
|
-
maskEmbeddingInput
|
|
19097
|
+
maskEmbeddingInput,
|
|
19098
|
+
vaultEmbeddingCache
|
|
19070
19099
|
]
|
|
19071
19100
|
);
|
|
19072
19101
|
const recallFn = (0, import_react4.useCallback)(
|
|
@@ -19091,7 +19120,7 @@ function useChatStorage(options) {
|
|
|
19091
19120
|
model: embeddingModel,
|
|
19092
19121
|
maskInput: maskEmbeddingInput
|
|
19093
19122
|
},
|
|
19094
|
-
vaultCache:
|
|
19123
|
+
vaultCache: vaultEmbeddingCache,
|
|
19095
19124
|
chunkCache: chunkVectorCacheRef.current
|
|
19096
19125
|
},
|
|
19097
19126
|
resolvedOptions
|
|
@@ -19104,7 +19133,8 @@ function useChatStorage(options) {
|
|
|
19104
19133
|
baseUrl,
|
|
19105
19134
|
embeddingModel,
|
|
19106
19135
|
currentConversationId,
|
|
19107
|
-
maskEmbeddingInput
|
|
19136
|
+
maskEmbeddingInput,
|
|
19137
|
+
vaultEmbeddingCache
|
|
19108
19138
|
]
|
|
19109
19139
|
);
|
|
19110
19140
|
const getVaultMemories = (0, import_react4.useCallback)(
|
package/dist/expo/index.mjs
CHANGED
|
@@ -8829,6 +8829,29 @@ function createMemoryEngineTool(storageCtx, embeddingOptions, searchOptions, cal
|
|
|
8829
8829
|
};
|
|
8830
8830
|
}
|
|
8831
8831
|
|
|
8832
|
+
// src/lib/memoryVault/embeddingCacheRegistry.ts
|
|
8833
|
+
var registry = /* @__PURE__ */ new WeakMap();
|
|
8834
|
+
function buildKey(walletAddress, model) {
|
|
8835
|
+
return JSON.stringify([walletAddress ?? null, model]);
|
|
8836
|
+
}
|
|
8837
|
+
function getVaultEmbeddingCache(database, walletAddress, model) {
|
|
8838
|
+
let perDb = registry.get(database);
|
|
8839
|
+
if (!perDb) {
|
|
8840
|
+
perDb = /* @__PURE__ */ new Map();
|
|
8841
|
+
registry.set(database, perDb);
|
|
8842
|
+
}
|
|
8843
|
+
const key = buildKey(walletAddress, model);
|
|
8844
|
+
let cache = perDb.get(key);
|
|
8845
|
+
if (!cache) {
|
|
8846
|
+
cache = createVaultEmbeddingCache();
|
|
8847
|
+
perDb.set(key, cache);
|
|
8848
|
+
}
|
|
8849
|
+
return cache;
|
|
8850
|
+
}
|
|
8851
|
+
onClearAllEncryptionState(() => {
|
|
8852
|
+
registry = /* @__PURE__ */ new WeakMap();
|
|
8853
|
+
});
|
|
8854
|
+
|
|
8832
8855
|
// src/lib/memoryVault/tool.ts
|
|
8833
8856
|
var MANUAL_FACT_TYPES = [
|
|
8834
8857
|
"identity",
|
|
@@ -10275,14 +10298,17 @@ function useChatStorage(options) {
|
|
|
10275
10298
|
},
|
|
10276
10299
|
[vaultCtx]
|
|
10277
10300
|
);
|
|
10278
|
-
const
|
|
10301
|
+
const vaultEmbeddingCache = useMemo(
|
|
10302
|
+
() => getVaultEmbeddingCache(database, walletAddress, embeddingModel),
|
|
10303
|
+
[database, walletAddress, embeddingModel]
|
|
10304
|
+
);
|
|
10279
10305
|
const chunkVectorCacheRef = useRef4(createChunkVectorCache());
|
|
10280
10306
|
useEffect4(() => {
|
|
10281
10307
|
return onClearAllEncryptionState(() => {
|
|
10282
|
-
|
|
10308
|
+
vaultEmbeddingCache.clear();
|
|
10283
10309
|
chunkVectorCacheRef.current.clear();
|
|
10284
10310
|
});
|
|
10285
|
-
}, []);
|
|
10311
|
+
}, [vaultEmbeddingCache]);
|
|
10286
10312
|
const createRecallTool2 = useCallback4(
|
|
10287
10313
|
(toolOptions, callbacks) => {
|
|
10288
10314
|
if (!getToken) {
|
|
@@ -10299,7 +10325,7 @@ function useChatStorage(options) {
|
|
|
10299
10325
|
model: embeddingModel,
|
|
10300
10326
|
maskInput: maskEmbeddingInput
|
|
10301
10327
|
},
|
|
10302
|
-
vaultCache:
|
|
10328
|
+
vaultCache: vaultEmbeddingCache,
|
|
10303
10329
|
chunkCache: chunkVectorCacheRef.current
|
|
10304
10330
|
// entityCtx is intentionally omitted on Expo for now — the
|
|
10305
10331
|
// W5 graph lane is a no-op without it (recall falls through
|
|
@@ -10317,7 +10343,8 @@ function useChatStorage(options) {
|
|
|
10317
10343
|
baseUrl,
|
|
10318
10344
|
embeddingModel,
|
|
10319
10345
|
currentConversationId,
|
|
10320
|
-
maskEmbeddingInput
|
|
10346
|
+
maskEmbeddingInput,
|
|
10347
|
+
vaultEmbeddingCache
|
|
10321
10348
|
]
|
|
10322
10349
|
);
|
|
10323
10350
|
const recallFn = useCallback4(
|
|
@@ -10342,7 +10369,7 @@ function useChatStorage(options) {
|
|
|
10342
10369
|
model: embeddingModel,
|
|
10343
10370
|
maskInput: maskEmbeddingInput
|
|
10344
10371
|
},
|
|
10345
|
-
vaultCache:
|
|
10372
|
+
vaultCache: vaultEmbeddingCache,
|
|
10346
10373
|
chunkCache: chunkVectorCacheRef.current
|
|
10347
10374
|
},
|
|
10348
10375
|
resolvedOptions
|
|
@@ -10355,7 +10382,8 @@ function useChatStorage(options) {
|
|
|
10355
10382
|
baseUrl,
|
|
10356
10383
|
embeddingModel,
|
|
10357
10384
|
currentConversationId,
|
|
10358
|
-
maskEmbeddingInput
|
|
10385
|
+
maskEmbeddingInput,
|
|
10386
|
+
vaultEmbeddingCache
|
|
10359
10387
|
]
|
|
10360
10388
|
);
|
|
10361
10389
|
const getVaultMemories = useCallback4(
|
package/dist/react/index.cjs
CHANGED
|
@@ -18890,6 +18890,31 @@ function createMemoryEngineTool(storageCtx, embeddingOptions, searchOptions, cal
|
|
|
18890
18890
|
// src/react/useChatStorage.ts
|
|
18891
18891
|
init_constants();
|
|
18892
18892
|
|
|
18893
|
+
// src/lib/memoryVault/embeddingCacheRegistry.ts
|
|
18894
|
+
init_useEncryption();
|
|
18895
|
+
init_lruCache();
|
|
18896
|
+
var registry = /* @__PURE__ */ new WeakMap();
|
|
18897
|
+
function buildKey(walletAddress, model) {
|
|
18898
|
+
return JSON.stringify([walletAddress ?? null, model]);
|
|
18899
|
+
}
|
|
18900
|
+
function getVaultEmbeddingCache(database, walletAddress, model) {
|
|
18901
|
+
let perDb = registry.get(database);
|
|
18902
|
+
if (!perDb) {
|
|
18903
|
+
perDb = /* @__PURE__ */ new Map();
|
|
18904
|
+
registry.set(database, perDb);
|
|
18905
|
+
}
|
|
18906
|
+
const key = buildKey(walletAddress, model);
|
|
18907
|
+
let cache = perDb.get(key);
|
|
18908
|
+
if (!cache) {
|
|
18909
|
+
cache = createVaultEmbeddingCache();
|
|
18910
|
+
perDb.set(key, cache);
|
|
18911
|
+
}
|
|
18912
|
+
return cache;
|
|
18913
|
+
}
|
|
18914
|
+
onClearAllEncryptionState(() => {
|
|
18915
|
+
registry = /* @__PURE__ */ new WeakMap();
|
|
18916
|
+
});
|
|
18917
|
+
|
|
18893
18918
|
// src/lib/memoryVault/index.ts
|
|
18894
18919
|
init_searchTool();
|
|
18895
18920
|
|
|
@@ -19411,8 +19436,8 @@ var ZipProcessor = class {
|
|
|
19411
19436
|
* Set the processor registry for handling nested files
|
|
19412
19437
|
* This must be called before processing if you want nested file support
|
|
19413
19438
|
*/
|
|
19414
|
-
setRegistry(
|
|
19415
|
-
this.registry =
|
|
19439
|
+
setRegistry(registry2) {
|
|
19440
|
+
this.registry = registry2;
|
|
19416
19441
|
}
|
|
19417
19442
|
async process(file) {
|
|
19418
19443
|
try {
|
|
@@ -19651,15 +19676,15 @@ var ProcessorRegistry = class {
|
|
|
19651
19676
|
init_logger();
|
|
19652
19677
|
var MAX_TOTAL_IMAGES = 20;
|
|
19653
19678
|
function createDefaultRegistry() {
|
|
19654
|
-
const
|
|
19655
|
-
|
|
19656
|
-
|
|
19657
|
-
|
|
19658
|
-
|
|
19679
|
+
const registry2 = new ProcessorRegistry();
|
|
19680
|
+
registry2.register(new PdfProcessor());
|
|
19681
|
+
registry2.register(new ExcelProcessor());
|
|
19682
|
+
registry2.register(new WordProcessor());
|
|
19683
|
+
registry2.register(new TextProcessor());
|
|
19659
19684
|
const zipProcessor = new ZipProcessor();
|
|
19660
|
-
zipProcessor.setRegistry(
|
|
19661
|
-
|
|
19662
|
-
return
|
|
19685
|
+
zipProcessor.setRegistry(registry2);
|
|
19686
|
+
registry2.register(zipProcessor);
|
|
19687
|
+
return registry2;
|
|
19663
19688
|
}
|
|
19664
19689
|
var cachedDefaultRegistry = null;
|
|
19665
19690
|
function getDefaultRegistry() {
|
|
@@ -19672,10 +19697,10 @@ function isSupportedFile(file) {
|
|
|
19672
19697
|
return getDefaultRegistry().isSupported(file);
|
|
19673
19698
|
}
|
|
19674
19699
|
function getSupportedFileTypes() {
|
|
19675
|
-
const
|
|
19700
|
+
const registry2 = getDefaultRegistry();
|
|
19676
19701
|
return {
|
|
19677
|
-
mimeTypes:
|
|
19678
|
-
extensions:
|
|
19702
|
+
mimeTypes: registry2.getSupportedMimeTypes(),
|
|
19703
|
+
extensions: registry2.getSupportedExtensions()
|
|
19679
19704
|
};
|
|
19680
19705
|
}
|
|
19681
19706
|
function formatExtractedContent(fileName, content, format) {
|
|
@@ -19731,16 +19756,16 @@ async function preprocessFiles(files, options = {}) {
|
|
|
19731
19756
|
metadata: { processedCount: 0, skippedCount: 0, errorCount: 0 }
|
|
19732
19757
|
};
|
|
19733
19758
|
}
|
|
19734
|
-
let
|
|
19759
|
+
let registry2;
|
|
19735
19760
|
if (processors === void 0) {
|
|
19736
|
-
|
|
19761
|
+
registry2 = getDefaultRegistry();
|
|
19737
19762
|
} else {
|
|
19738
|
-
|
|
19763
|
+
registry2 = new ProcessorRegistry();
|
|
19739
19764
|
processors.forEach((p) => {
|
|
19740
19765
|
if (p instanceof ZipProcessor) {
|
|
19741
|
-
p.setRegistry(
|
|
19766
|
+
p.setRegistry(registry2);
|
|
19742
19767
|
}
|
|
19743
|
-
|
|
19768
|
+
registry2.register(p);
|
|
19744
19769
|
});
|
|
19745
19770
|
}
|
|
19746
19771
|
const extractedTexts = [];
|
|
@@ -19759,7 +19784,7 @@ async function preprocessFiles(files, options = {}) {
|
|
|
19759
19784
|
skippedCount++;
|
|
19760
19785
|
continue;
|
|
19761
19786
|
}
|
|
19762
|
-
const processor =
|
|
19787
|
+
const processor = registry2.findProcessor(file);
|
|
19763
19788
|
if (!processor) {
|
|
19764
19789
|
skippedCount++;
|
|
19765
19790
|
continue;
|
|
@@ -21412,6 +21437,10 @@ function useChatStorage(options) {
|
|
|
21412
21437
|
}),
|
|
21413
21438
|
[database, vaultMemoryCollection, walletAddress, signMessage, embeddedWalletSigner]
|
|
21414
21439
|
);
|
|
21440
|
+
const vaultEmbeddingCache = (0, import_react5.useMemo)(
|
|
21441
|
+
() => getVaultEmbeddingCache(database, walletAddress, embeddingModel),
|
|
21442
|
+
[database, walletAddress, embeddingModel]
|
|
21443
|
+
);
|
|
21415
21444
|
const entityCollection = (0, import_react5.useMemo)(() => database.get("entity"), [database]);
|
|
21416
21445
|
const memoryEntityCollection = (0, import_react5.useMemo)(
|
|
21417
21446
|
() => database.get("memory_entity"),
|
|
@@ -21637,10 +21666,10 @@ function useChatStorage(options) {
|
|
|
21637
21666
|
vaultCtx,
|
|
21638
21667
|
options2,
|
|
21639
21668
|
embOpts,
|
|
21640
|
-
embOpts ?
|
|
21669
|
+
embOpts ? vaultEmbeddingCache : void 0
|
|
21641
21670
|
);
|
|
21642
21671
|
},
|
|
21643
|
-
[vaultCtx, getToken, vaultEmbeddingOptions]
|
|
21672
|
+
[vaultCtx, getToken, vaultEmbeddingOptions, vaultEmbeddingCache]
|
|
21644
21673
|
);
|
|
21645
21674
|
const getVaultMemories = (0, import_react5.useCallback)(
|
|
21646
21675
|
(options2) => {
|
|
@@ -21655,7 +21684,7 @@ function useChatStorage(options) {
|
|
|
21655
21684
|
eagerEmbedContent(
|
|
21656
21685
|
content,
|
|
21657
21686
|
vaultEmbeddingOptions,
|
|
21658
|
-
|
|
21687
|
+
vaultEmbeddingCache,
|
|
21659
21688
|
vaultCtx,
|
|
21660
21689
|
result.uniqueId
|
|
21661
21690
|
).catch((err) => {
|
|
@@ -21664,7 +21693,7 @@ function useChatStorage(options) {
|
|
|
21664
21693
|
}
|
|
21665
21694
|
return result;
|
|
21666
21695
|
},
|
|
21667
|
-
[vaultCtx, getToken, vaultEmbeddingOptions]
|
|
21696
|
+
[vaultCtx, getToken, vaultEmbeddingOptions, vaultEmbeddingCache]
|
|
21668
21697
|
);
|
|
21669
21698
|
const updateVaultMemory = (0, import_react5.useCallback)(
|
|
21670
21699
|
async (id, content, scope) => {
|
|
@@ -21672,55 +21701,46 @@ function useChatStorage(options) {
|
|
|
21672
21701
|
const result = await updateVaultMemoryOp(vaultCtx, id, { content, scope, embedding: null });
|
|
21673
21702
|
if (result && getToken) {
|
|
21674
21703
|
if (existing) {
|
|
21675
|
-
|
|
21704
|
+
vaultEmbeddingCache.delete(id);
|
|
21676
21705
|
}
|
|
21677
|
-
eagerEmbedContent(
|
|
21678
|
-
|
|
21679
|
-
|
|
21680
|
-
|
|
21681
|
-
|
|
21682
|
-
id
|
|
21683
|
-
).catch((err) => {
|
|
21684
|
-
getLogger().warn("[useChatStorage] Failed to eagerly embed updated vault memory:", err);
|
|
21685
|
-
});
|
|
21706
|
+
eagerEmbedContent(content, vaultEmbeddingOptions, vaultEmbeddingCache, vaultCtx, id).catch(
|
|
21707
|
+
(err) => {
|
|
21708
|
+
getLogger().warn("[useChatStorage] Failed to eagerly embed updated vault memory:", err);
|
|
21709
|
+
}
|
|
21710
|
+
);
|
|
21686
21711
|
}
|
|
21687
21712
|
return result;
|
|
21688
21713
|
},
|
|
21689
|
-
[vaultCtx, getToken, vaultEmbeddingOptions]
|
|
21714
|
+
[vaultCtx, getToken, vaultEmbeddingOptions, vaultEmbeddingCache]
|
|
21690
21715
|
);
|
|
21691
21716
|
const deleteVaultMemory = (0, import_react5.useCallback)(
|
|
21692
21717
|
async (id) => {
|
|
21693
21718
|
const existing = await getVaultMemoryOp(vaultCtx, id);
|
|
21694
21719
|
const result = await deleteVaultMemoryOp(vaultCtx, id);
|
|
21695
21720
|
if (result && existing) {
|
|
21696
|
-
|
|
21721
|
+
vaultEmbeddingCache.delete(id);
|
|
21697
21722
|
}
|
|
21698
21723
|
return result;
|
|
21699
21724
|
},
|
|
21700
|
-
[vaultCtx]
|
|
21725
|
+
[vaultCtx, vaultEmbeddingCache]
|
|
21701
21726
|
);
|
|
21702
|
-
const vaultEmbeddingCacheRef = (0, import_react5.useRef)(createVaultEmbeddingCache());
|
|
21703
21727
|
const chunkVectorCacheRef = (0, import_react5.useRef)(createChunkVectorCache());
|
|
21704
21728
|
const clientToolEmbeddingsCacheRef = (0, import_react5.useRef)(/* @__PURE__ */ new Map());
|
|
21705
21729
|
(0, import_react5.useEffect)(() => {
|
|
21706
21730
|
if (!getToken) return;
|
|
21707
21731
|
void (async () => {
|
|
21708
21732
|
try {
|
|
21709
|
-
await preEmbedVaultMemories(
|
|
21710
|
-
vaultCtx,
|
|
21711
|
-
vaultEmbeddingOptions,
|
|
21712
|
-
vaultEmbeddingCacheRef.current
|
|
21713
|
-
);
|
|
21733
|
+
await preEmbedVaultMemories(vaultCtx, vaultEmbeddingOptions, vaultEmbeddingCache);
|
|
21714
21734
|
} catch {
|
|
21715
21735
|
}
|
|
21716
21736
|
})();
|
|
21717
|
-
}, [vaultCtx, getToken, vaultEmbeddingOptions]);
|
|
21737
|
+
}, [vaultCtx, getToken, vaultEmbeddingOptions, vaultEmbeddingCache]);
|
|
21718
21738
|
(0, import_react5.useEffect)(() => {
|
|
21719
21739
|
return onClearAllEncryptionState(() => {
|
|
21720
|
-
|
|
21740
|
+
vaultEmbeddingCache.clear();
|
|
21721
21741
|
chunkVectorCacheRef.current.clear();
|
|
21722
21742
|
});
|
|
21723
|
-
}, []);
|
|
21743
|
+
}, [vaultEmbeddingCache]);
|
|
21724
21744
|
const createMemoryVaultSearchTool2 = (0, import_react5.useCallback)(
|
|
21725
21745
|
(searchOptions) => {
|
|
21726
21746
|
if (!getToken) {
|
|
@@ -21729,11 +21749,11 @@ function useChatStorage(options) {
|
|
|
21729
21749
|
return createMemoryVaultSearchTool(
|
|
21730
21750
|
vaultCtx,
|
|
21731
21751
|
vaultEmbeddingOptions,
|
|
21732
|
-
|
|
21752
|
+
vaultEmbeddingCache,
|
|
21733
21753
|
searchOptions
|
|
21734
21754
|
);
|
|
21735
21755
|
},
|
|
21736
|
-
[vaultCtx, getToken, vaultEmbeddingOptions]
|
|
21756
|
+
[vaultCtx, getToken, vaultEmbeddingOptions, vaultEmbeddingCache]
|
|
21737
21757
|
);
|
|
21738
21758
|
const createRecallTool2 = (0, import_react5.useCallback)(
|
|
21739
21759
|
(toolOptions, callbacks) => {
|
|
@@ -21746,7 +21766,7 @@ function useChatStorage(options) {
|
|
|
21746
21766
|
vaultCtx,
|
|
21747
21767
|
storageCtx,
|
|
21748
21768
|
embeddingOptions: vaultEmbeddingOptions,
|
|
21749
|
-
vaultCache:
|
|
21769
|
+
vaultCache: vaultEmbeddingCache,
|
|
21750
21770
|
chunkCache: chunkVectorCacheRef.current,
|
|
21751
21771
|
// Graph lane fires when entityCtx is present and the query
|
|
21752
21772
|
// contains extractable entities. Empty memory_entity (e.g.
|
|
@@ -21758,7 +21778,15 @@ function useChatStorage(options) {
|
|
|
21758
21778
|
callbacks
|
|
21759
21779
|
);
|
|
21760
21780
|
},
|
|
21761
|
-
[
|
|
21781
|
+
[
|
|
21782
|
+
vaultCtx,
|
|
21783
|
+
storageCtx,
|
|
21784
|
+
entityCtx,
|
|
21785
|
+
getToken,
|
|
21786
|
+
vaultEmbeddingOptions,
|
|
21787
|
+
vaultEmbeddingCache,
|
|
21788
|
+
currentConversationId
|
|
21789
|
+
]
|
|
21762
21790
|
);
|
|
21763
21791
|
const searchVaultMemoriesFn = (0, import_react5.useCallback)(
|
|
21764
21792
|
async (query, searchOptions) => {
|
|
@@ -21767,11 +21795,11 @@ function useChatStorage(options) {
|
|
|
21767
21795
|
query,
|
|
21768
21796
|
vaultCtx,
|
|
21769
21797
|
vaultEmbeddingOptions,
|
|
21770
|
-
|
|
21798
|
+
vaultEmbeddingCache,
|
|
21771
21799
|
searchOptions
|
|
21772
21800
|
);
|
|
21773
21801
|
},
|
|
21774
|
-
[vaultCtx, getToken, vaultEmbeddingOptions]
|
|
21802
|
+
[vaultCtx, getToken, vaultEmbeddingOptions, vaultEmbeddingCache]
|
|
21775
21803
|
);
|
|
21776
21804
|
const recallFn = (0, import_react5.useCallback)(
|
|
21777
21805
|
async (query, options2) => {
|
|
@@ -21794,7 +21822,7 @@ function useChatStorage(options) {
|
|
|
21794
21822
|
// createRecallTool / searchVaultMemoriesFn. Without this, recall()
|
|
21795
21823
|
// would embed the raw query (often containing the user's PII).
|
|
21796
21824
|
embeddingOptions: vaultEmbeddingOptions,
|
|
21797
|
-
vaultCache:
|
|
21825
|
+
vaultCache: vaultEmbeddingCache,
|
|
21798
21826
|
chunkCache: chunkVectorCacheRef.current,
|
|
21799
21827
|
// Graph lane fires only when entityCtx is present and the query
|
|
21800
21828
|
// has extractable entities; empty memory_entity is a graceful
|
|
@@ -21804,7 +21832,15 @@ function useChatStorage(options) {
|
|
|
21804
21832
|
resolvedOptions
|
|
21805
21833
|
);
|
|
21806
21834
|
},
|
|
21807
|
-
[
|
|
21835
|
+
[
|
|
21836
|
+
vaultCtx,
|
|
21837
|
+
storageCtx,
|
|
21838
|
+
entityCtx,
|
|
21839
|
+
getToken,
|
|
21840
|
+
currentConversationId,
|
|
21841
|
+
vaultEmbeddingOptions,
|
|
21842
|
+
vaultEmbeddingCache
|
|
21843
|
+
]
|
|
21808
21844
|
);
|
|
21809
21845
|
const {
|
|
21810
21846
|
isLoading,
|
|
@@ -22914,7 +22950,7 @@ Based on these results, continue with the task.`;
|
|
|
22914
22950
|
createRecallTool: createRecallTool2,
|
|
22915
22951
|
recall: recallFn,
|
|
22916
22952
|
searchVaultMemories: searchVaultMemoriesFn,
|
|
22917
|
-
vaultEmbeddingCache
|
|
22953
|
+
vaultEmbeddingCache,
|
|
22918
22954
|
getVaultMemories,
|
|
22919
22955
|
createVaultMemory,
|
|
22920
22956
|
updateVaultMemory,
|
package/dist/react/index.d.mts
CHANGED
|
@@ -9752,6 +9752,13 @@ interface UseChatStorageResult extends BaseUseChatStorageResult {
|
|
|
9752
9752
|
/**
|
|
9753
9753
|
* The shared vault embedding cache. Use this to eagerly embed content
|
|
9754
9754
|
* when saving vault memories (via eagerEmbedContent).
|
|
9755
|
+
*
|
|
9756
|
+
* Shared per `(database, walletAddress, embeddingModel)` rather than owned by
|
|
9757
|
+
* this hook instance: every `useChatStorage` on the same three gets this exact
|
|
9758
|
+
* object, and it outlives their unmounts. Writes and evictions are therefore
|
|
9759
|
+
* visible to all of them — which is the point (a memory deleted through one
|
|
9760
|
+
* hook stops being served by the others) but does mean `clear()` clears for
|
|
9761
|
+
* everyone.
|
|
9755
9762
|
*/
|
|
9756
9763
|
vaultEmbeddingCache: VaultEmbeddingCache;
|
|
9757
9764
|
/**
|
package/dist/react/index.d.ts
CHANGED
|
@@ -9752,6 +9752,13 @@ interface UseChatStorageResult extends BaseUseChatStorageResult {
|
|
|
9752
9752
|
/**
|
|
9753
9753
|
* The shared vault embedding cache. Use this to eagerly embed content
|
|
9754
9754
|
* when saving vault memories (via eagerEmbedContent).
|
|
9755
|
+
*
|
|
9756
|
+
* Shared per `(database, walletAddress, embeddingModel)` rather than owned by
|
|
9757
|
+
* this hook instance: every `useChatStorage` on the same three gets this exact
|
|
9758
|
+
* object, and it outlives their unmounts. Writes and evictions are therefore
|
|
9759
|
+
* visible to all of them — which is the point (a memory deleted through one
|
|
9760
|
+
* hook stops being served by the others) but does mean `clear()` clears for
|
|
9761
|
+
* everyone.
|
|
9755
9762
|
*/
|
|
9756
9763
|
vaultEmbeddingCache: VaultEmbeddingCache;
|
|
9757
9764
|
/**
|
package/dist/react/index.mjs
CHANGED
|
@@ -9646,6 +9646,29 @@ function createMemoryEngineTool(storageCtx, embeddingOptions, searchOptions, cal
|
|
|
9646
9646
|
};
|
|
9647
9647
|
}
|
|
9648
9648
|
|
|
9649
|
+
// src/lib/memoryVault/embeddingCacheRegistry.ts
|
|
9650
|
+
var registry = /* @__PURE__ */ new WeakMap();
|
|
9651
|
+
function buildKey(walletAddress, model) {
|
|
9652
|
+
return JSON.stringify([walletAddress ?? null, model]);
|
|
9653
|
+
}
|
|
9654
|
+
function getVaultEmbeddingCache(database, walletAddress, model) {
|
|
9655
|
+
let perDb = registry.get(database);
|
|
9656
|
+
if (!perDb) {
|
|
9657
|
+
perDb = /* @__PURE__ */ new Map();
|
|
9658
|
+
registry.set(database, perDb);
|
|
9659
|
+
}
|
|
9660
|
+
const key = buildKey(walletAddress, model);
|
|
9661
|
+
let cache = perDb.get(key);
|
|
9662
|
+
if (!cache) {
|
|
9663
|
+
cache = createVaultEmbeddingCache();
|
|
9664
|
+
perDb.set(key, cache);
|
|
9665
|
+
}
|
|
9666
|
+
return cache;
|
|
9667
|
+
}
|
|
9668
|
+
onClearAllEncryptionState(() => {
|
|
9669
|
+
registry = /* @__PURE__ */ new WeakMap();
|
|
9670
|
+
});
|
|
9671
|
+
|
|
9649
9672
|
// src/lib/memoryVault/tool.ts
|
|
9650
9673
|
var MANUAL_FACT_TYPES = [
|
|
9651
9674
|
"identity",
|
|
@@ -10150,8 +10173,8 @@ var ZipProcessor = class {
|
|
|
10150
10173
|
* Set the processor registry for handling nested files
|
|
10151
10174
|
* This must be called before processing if you want nested file support
|
|
10152
10175
|
*/
|
|
10153
|
-
setRegistry(
|
|
10154
|
-
this.registry =
|
|
10176
|
+
setRegistry(registry2) {
|
|
10177
|
+
this.registry = registry2;
|
|
10155
10178
|
}
|
|
10156
10179
|
async process(file) {
|
|
10157
10180
|
try {
|
|
@@ -10389,15 +10412,15 @@ var ProcessorRegistry = class {
|
|
|
10389
10412
|
// src/lib/processors/preprocessor.ts
|
|
10390
10413
|
var MAX_TOTAL_IMAGES = 20;
|
|
10391
10414
|
function createDefaultRegistry() {
|
|
10392
|
-
const
|
|
10393
|
-
|
|
10394
|
-
|
|
10395
|
-
|
|
10396
|
-
|
|
10415
|
+
const registry2 = new ProcessorRegistry();
|
|
10416
|
+
registry2.register(new PdfProcessor());
|
|
10417
|
+
registry2.register(new ExcelProcessor());
|
|
10418
|
+
registry2.register(new WordProcessor());
|
|
10419
|
+
registry2.register(new TextProcessor());
|
|
10397
10420
|
const zipProcessor = new ZipProcessor();
|
|
10398
|
-
zipProcessor.setRegistry(
|
|
10399
|
-
|
|
10400
|
-
return
|
|
10421
|
+
zipProcessor.setRegistry(registry2);
|
|
10422
|
+
registry2.register(zipProcessor);
|
|
10423
|
+
return registry2;
|
|
10401
10424
|
}
|
|
10402
10425
|
var cachedDefaultRegistry = null;
|
|
10403
10426
|
function getDefaultRegistry() {
|
|
@@ -10410,10 +10433,10 @@ function isSupportedFile(file) {
|
|
|
10410
10433
|
return getDefaultRegistry().isSupported(file);
|
|
10411
10434
|
}
|
|
10412
10435
|
function getSupportedFileTypes() {
|
|
10413
|
-
const
|
|
10436
|
+
const registry2 = getDefaultRegistry();
|
|
10414
10437
|
return {
|
|
10415
|
-
mimeTypes:
|
|
10416
|
-
extensions:
|
|
10438
|
+
mimeTypes: registry2.getSupportedMimeTypes(),
|
|
10439
|
+
extensions: registry2.getSupportedExtensions()
|
|
10417
10440
|
};
|
|
10418
10441
|
}
|
|
10419
10442
|
function formatExtractedContent(fileName, content, format) {
|
|
@@ -10469,16 +10492,16 @@ async function preprocessFiles(files, options = {}) {
|
|
|
10469
10492
|
metadata: { processedCount: 0, skippedCount: 0, errorCount: 0 }
|
|
10470
10493
|
};
|
|
10471
10494
|
}
|
|
10472
|
-
let
|
|
10495
|
+
let registry2;
|
|
10473
10496
|
if (processors === void 0) {
|
|
10474
|
-
|
|
10497
|
+
registry2 = getDefaultRegistry();
|
|
10475
10498
|
} else {
|
|
10476
|
-
|
|
10499
|
+
registry2 = new ProcessorRegistry();
|
|
10477
10500
|
processors.forEach((p) => {
|
|
10478
10501
|
if (p instanceof ZipProcessor) {
|
|
10479
|
-
p.setRegistry(
|
|
10502
|
+
p.setRegistry(registry2);
|
|
10480
10503
|
}
|
|
10481
|
-
|
|
10504
|
+
registry2.register(p);
|
|
10482
10505
|
});
|
|
10483
10506
|
}
|
|
10484
10507
|
const extractedTexts = [];
|
|
@@ -10497,7 +10520,7 @@ async function preprocessFiles(files, options = {}) {
|
|
|
10497
10520
|
skippedCount++;
|
|
10498
10521
|
continue;
|
|
10499
10522
|
}
|
|
10500
|
-
const processor =
|
|
10523
|
+
const processor = registry2.findProcessor(file);
|
|
10501
10524
|
if (!processor) {
|
|
10502
10525
|
skippedCount++;
|
|
10503
10526
|
continue;
|
|
@@ -12139,6 +12162,10 @@ function useChatStorage(options) {
|
|
|
12139
12162
|
}),
|
|
12140
12163
|
[database, vaultMemoryCollection, walletAddress, signMessage, embeddedWalletSigner]
|
|
12141
12164
|
);
|
|
12165
|
+
const vaultEmbeddingCache = useMemo3(
|
|
12166
|
+
() => getVaultEmbeddingCache(database, walletAddress, embeddingModel),
|
|
12167
|
+
[database, walletAddress, embeddingModel]
|
|
12168
|
+
);
|
|
12142
12169
|
const entityCollection = useMemo3(() => database.get("entity"), [database]);
|
|
12143
12170
|
const memoryEntityCollection = useMemo3(
|
|
12144
12171
|
() => database.get("memory_entity"),
|
|
@@ -12364,10 +12391,10 @@ function useChatStorage(options) {
|
|
|
12364
12391
|
vaultCtx,
|
|
12365
12392
|
options2,
|
|
12366
12393
|
embOpts,
|
|
12367
|
-
embOpts ?
|
|
12394
|
+
embOpts ? vaultEmbeddingCache : void 0
|
|
12368
12395
|
);
|
|
12369
12396
|
},
|
|
12370
|
-
[vaultCtx, getToken, vaultEmbeddingOptions]
|
|
12397
|
+
[vaultCtx, getToken, vaultEmbeddingOptions, vaultEmbeddingCache]
|
|
12371
12398
|
);
|
|
12372
12399
|
const getVaultMemories = useCallback4(
|
|
12373
12400
|
(options2) => {
|
|
@@ -12382,7 +12409,7 @@ function useChatStorage(options) {
|
|
|
12382
12409
|
eagerEmbedContent(
|
|
12383
12410
|
content,
|
|
12384
12411
|
vaultEmbeddingOptions,
|
|
12385
|
-
|
|
12412
|
+
vaultEmbeddingCache,
|
|
12386
12413
|
vaultCtx,
|
|
12387
12414
|
result.uniqueId
|
|
12388
12415
|
).catch((err) => {
|
|
@@ -12391,7 +12418,7 @@ function useChatStorage(options) {
|
|
|
12391
12418
|
}
|
|
12392
12419
|
return result;
|
|
12393
12420
|
},
|
|
12394
|
-
[vaultCtx, getToken, vaultEmbeddingOptions]
|
|
12421
|
+
[vaultCtx, getToken, vaultEmbeddingOptions, vaultEmbeddingCache]
|
|
12395
12422
|
);
|
|
12396
12423
|
const updateVaultMemory = useCallback4(
|
|
12397
12424
|
async (id, content, scope) => {
|
|
@@ -12399,55 +12426,46 @@ function useChatStorage(options) {
|
|
|
12399
12426
|
const result = await updateVaultMemoryOp(vaultCtx, id, { content, scope, embedding: null });
|
|
12400
12427
|
if (result && getToken) {
|
|
12401
12428
|
if (existing) {
|
|
12402
|
-
|
|
12429
|
+
vaultEmbeddingCache.delete(id);
|
|
12403
12430
|
}
|
|
12404
|
-
eagerEmbedContent(
|
|
12405
|
-
|
|
12406
|
-
|
|
12407
|
-
|
|
12408
|
-
|
|
12409
|
-
id
|
|
12410
|
-
).catch((err) => {
|
|
12411
|
-
getLogger().warn("[useChatStorage] Failed to eagerly embed updated vault memory:", err);
|
|
12412
|
-
});
|
|
12431
|
+
eagerEmbedContent(content, vaultEmbeddingOptions, vaultEmbeddingCache, vaultCtx, id).catch(
|
|
12432
|
+
(err) => {
|
|
12433
|
+
getLogger().warn("[useChatStorage] Failed to eagerly embed updated vault memory:", err);
|
|
12434
|
+
}
|
|
12435
|
+
);
|
|
12413
12436
|
}
|
|
12414
12437
|
return result;
|
|
12415
12438
|
},
|
|
12416
|
-
[vaultCtx, getToken, vaultEmbeddingOptions]
|
|
12439
|
+
[vaultCtx, getToken, vaultEmbeddingOptions, vaultEmbeddingCache]
|
|
12417
12440
|
);
|
|
12418
12441
|
const deleteVaultMemory = useCallback4(
|
|
12419
12442
|
async (id) => {
|
|
12420
12443
|
const existing = await getVaultMemoryOp(vaultCtx, id);
|
|
12421
12444
|
const result = await deleteVaultMemoryOp(vaultCtx, id);
|
|
12422
12445
|
if (result && existing) {
|
|
12423
|
-
|
|
12446
|
+
vaultEmbeddingCache.delete(id);
|
|
12424
12447
|
}
|
|
12425
12448
|
return result;
|
|
12426
12449
|
},
|
|
12427
|
-
[vaultCtx]
|
|
12450
|
+
[vaultCtx, vaultEmbeddingCache]
|
|
12428
12451
|
);
|
|
12429
|
-
const vaultEmbeddingCacheRef = useRef4(createVaultEmbeddingCache());
|
|
12430
12452
|
const chunkVectorCacheRef = useRef4(createChunkVectorCache());
|
|
12431
12453
|
const clientToolEmbeddingsCacheRef = useRef4(/* @__PURE__ */ new Map());
|
|
12432
12454
|
useEffect3(() => {
|
|
12433
12455
|
if (!getToken) return;
|
|
12434
12456
|
void (async () => {
|
|
12435
12457
|
try {
|
|
12436
|
-
await preEmbedVaultMemories(
|
|
12437
|
-
vaultCtx,
|
|
12438
|
-
vaultEmbeddingOptions,
|
|
12439
|
-
vaultEmbeddingCacheRef.current
|
|
12440
|
-
);
|
|
12458
|
+
await preEmbedVaultMemories(vaultCtx, vaultEmbeddingOptions, vaultEmbeddingCache);
|
|
12441
12459
|
} catch {
|
|
12442
12460
|
}
|
|
12443
12461
|
})();
|
|
12444
|
-
}, [vaultCtx, getToken, vaultEmbeddingOptions]);
|
|
12462
|
+
}, [vaultCtx, getToken, vaultEmbeddingOptions, vaultEmbeddingCache]);
|
|
12445
12463
|
useEffect3(() => {
|
|
12446
12464
|
return onClearAllEncryptionState(() => {
|
|
12447
|
-
|
|
12465
|
+
vaultEmbeddingCache.clear();
|
|
12448
12466
|
chunkVectorCacheRef.current.clear();
|
|
12449
12467
|
});
|
|
12450
|
-
}, []);
|
|
12468
|
+
}, [vaultEmbeddingCache]);
|
|
12451
12469
|
const createMemoryVaultSearchTool2 = useCallback4(
|
|
12452
12470
|
(searchOptions) => {
|
|
12453
12471
|
if (!getToken) {
|
|
@@ -12456,11 +12474,11 @@ function useChatStorage(options) {
|
|
|
12456
12474
|
return createMemoryVaultSearchTool(
|
|
12457
12475
|
vaultCtx,
|
|
12458
12476
|
vaultEmbeddingOptions,
|
|
12459
|
-
|
|
12477
|
+
vaultEmbeddingCache,
|
|
12460
12478
|
searchOptions
|
|
12461
12479
|
);
|
|
12462
12480
|
},
|
|
12463
|
-
[vaultCtx, getToken, vaultEmbeddingOptions]
|
|
12481
|
+
[vaultCtx, getToken, vaultEmbeddingOptions, vaultEmbeddingCache]
|
|
12464
12482
|
);
|
|
12465
12483
|
const createRecallTool2 = useCallback4(
|
|
12466
12484
|
(toolOptions, callbacks) => {
|
|
@@ -12473,7 +12491,7 @@ function useChatStorage(options) {
|
|
|
12473
12491
|
vaultCtx,
|
|
12474
12492
|
storageCtx,
|
|
12475
12493
|
embeddingOptions: vaultEmbeddingOptions,
|
|
12476
|
-
vaultCache:
|
|
12494
|
+
vaultCache: vaultEmbeddingCache,
|
|
12477
12495
|
chunkCache: chunkVectorCacheRef.current,
|
|
12478
12496
|
// Graph lane fires when entityCtx is present and the query
|
|
12479
12497
|
// contains extractable entities. Empty memory_entity (e.g.
|
|
@@ -12485,7 +12503,15 @@ function useChatStorage(options) {
|
|
|
12485
12503
|
callbacks
|
|
12486
12504
|
);
|
|
12487
12505
|
},
|
|
12488
|
-
[
|
|
12506
|
+
[
|
|
12507
|
+
vaultCtx,
|
|
12508
|
+
storageCtx,
|
|
12509
|
+
entityCtx,
|
|
12510
|
+
getToken,
|
|
12511
|
+
vaultEmbeddingOptions,
|
|
12512
|
+
vaultEmbeddingCache,
|
|
12513
|
+
currentConversationId
|
|
12514
|
+
]
|
|
12489
12515
|
);
|
|
12490
12516
|
const searchVaultMemoriesFn = useCallback4(
|
|
12491
12517
|
async (query, searchOptions) => {
|
|
@@ -12494,11 +12520,11 @@ function useChatStorage(options) {
|
|
|
12494
12520
|
query,
|
|
12495
12521
|
vaultCtx,
|
|
12496
12522
|
vaultEmbeddingOptions,
|
|
12497
|
-
|
|
12523
|
+
vaultEmbeddingCache,
|
|
12498
12524
|
searchOptions
|
|
12499
12525
|
);
|
|
12500
12526
|
},
|
|
12501
|
-
[vaultCtx, getToken, vaultEmbeddingOptions]
|
|
12527
|
+
[vaultCtx, getToken, vaultEmbeddingOptions, vaultEmbeddingCache]
|
|
12502
12528
|
);
|
|
12503
12529
|
const recallFn = useCallback4(
|
|
12504
12530
|
async (query, options2) => {
|
|
@@ -12521,7 +12547,7 @@ function useChatStorage(options) {
|
|
|
12521
12547
|
// createRecallTool / searchVaultMemoriesFn. Without this, recall()
|
|
12522
12548
|
// would embed the raw query (often containing the user's PII).
|
|
12523
12549
|
embeddingOptions: vaultEmbeddingOptions,
|
|
12524
|
-
vaultCache:
|
|
12550
|
+
vaultCache: vaultEmbeddingCache,
|
|
12525
12551
|
chunkCache: chunkVectorCacheRef.current,
|
|
12526
12552
|
// Graph lane fires only when entityCtx is present and the query
|
|
12527
12553
|
// has extractable entities; empty memory_entity is a graceful
|
|
@@ -12531,7 +12557,15 @@ function useChatStorage(options) {
|
|
|
12531
12557
|
resolvedOptions
|
|
12532
12558
|
);
|
|
12533
12559
|
},
|
|
12534
|
-
[
|
|
12560
|
+
[
|
|
12561
|
+
vaultCtx,
|
|
12562
|
+
storageCtx,
|
|
12563
|
+
entityCtx,
|
|
12564
|
+
getToken,
|
|
12565
|
+
currentConversationId,
|
|
12566
|
+
vaultEmbeddingOptions,
|
|
12567
|
+
vaultEmbeddingCache
|
|
12568
|
+
]
|
|
12535
12569
|
);
|
|
12536
12570
|
const {
|
|
12537
12571
|
isLoading,
|
|
@@ -13641,7 +13675,7 @@ Based on these results, continue with the task.`;
|
|
|
13641
13675
|
createRecallTool: createRecallTool2,
|
|
13642
13676
|
recall: recallFn,
|
|
13643
13677
|
searchVaultMemories: searchVaultMemoriesFn,
|
|
13644
|
-
vaultEmbeddingCache
|
|
13678
|
+
vaultEmbeddingCache,
|
|
13645
13679
|
getVaultMemories,
|
|
13646
13680
|
createVaultMemory,
|
|
13647
13681
|
updateVaultMemory,
|
|
@@ -20310,7 +20310,7 @@ function createMemoryVaultSearchTool(vaultCtx, embeddingOptions, cache, searchOp
|
|
|
20310
20310
|
legacy.map((r) => ({ id: r.uniqueId, content: r.content, score: r.similarity }))
|
|
20311
20311
|
);
|
|
20312
20312
|
}
|
|
20313
|
-
const { recall: recall2 } = await import("./recall-
|
|
20313
|
+
const { recall: recall2 } = await import("./recall-YZWIV6IH.mjs");
|
|
20314
20314
|
let recallDegraded = [];
|
|
20315
20315
|
const result = await recall2(
|
|
20316
20316
|
query,
|
|
@@ -21357,14 +21357,14 @@ export {
|
|
|
21357
21357
|
embedAllMessages,
|
|
21358
21358
|
chunkAndEmbedMessage,
|
|
21359
21359
|
chunkAndEmbedAllMessages,
|
|
21360
|
+
DEFAULT_VAULT_CACHE_SIZE,
|
|
21361
|
+
LRUCache,
|
|
21362
|
+
createVaultEmbeddingCache,
|
|
21360
21363
|
RECALL_TOOL_NAME,
|
|
21361
21364
|
RECALL_MAX_LIMIT,
|
|
21362
21365
|
EMBEDDINGS_DEGRADED_EMPTY,
|
|
21363
21366
|
RerankerUnavailableError,
|
|
21364
21367
|
isRerankerAvailable,
|
|
21365
|
-
DEFAULT_VAULT_CACHE_SIZE,
|
|
21366
|
-
LRUCache,
|
|
21367
|
-
createVaultEmbeddingCache,
|
|
21368
21368
|
MAX_HOPS,
|
|
21369
21369
|
ENTITY_FANOUT,
|
|
21370
21370
|
NODE_BUDGET,
|
package/dist/server/index.cjs
CHANGED
|
@@ -19576,6 +19576,44 @@ var init_embeddings = __esm({
|
|
|
19576
19576
|
}
|
|
19577
19577
|
});
|
|
19578
19578
|
|
|
19579
|
+
// src/lib/memoryVault/lruCache.ts
|
|
19580
|
+
function createVaultEmbeddingCache(maxSize = DEFAULT_VAULT_CACHE_SIZE) {
|
|
19581
|
+
return new LRUCache(maxSize);
|
|
19582
|
+
}
|
|
19583
|
+
var DEFAULT_VAULT_CACHE_SIZE, LRUCache;
|
|
19584
|
+
var init_lruCache = __esm({
|
|
19585
|
+
"src/lib/memoryVault/lruCache.ts"() {
|
|
19586
|
+
"use strict";
|
|
19587
|
+
DEFAULT_VAULT_CACHE_SIZE = 5e3;
|
|
19588
|
+
LRUCache = class extends Map {
|
|
19589
|
+
constructor(maxSize) {
|
|
19590
|
+
super();
|
|
19591
|
+
this.maxSize = maxSize;
|
|
19592
|
+
}
|
|
19593
|
+
get(key) {
|
|
19594
|
+
if (!super.has(key)) return void 0;
|
|
19595
|
+
const value = super.get(key);
|
|
19596
|
+
super.delete(key);
|
|
19597
|
+
super.set(key, value);
|
|
19598
|
+
return value;
|
|
19599
|
+
}
|
|
19600
|
+
set(key, value) {
|
|
19601
|
+
if (super.has(key)) {
|
|
19602
|
+
super.delete(key);
|
|
19603
|
+
}
|
|
19604
|
+
super.set(key, value);
|
|
19605
|
+
if (this.size > this.maxSize) {
|
|
19606
|
+
const oldest = this.keys().next().value;
|
|
19607
|
+
if (oldest !== void 0) {
|
|
19608
|
+
super.delete(oldest);
|
|
19609
|
+
}
|
|
19610
|
+
}
|
|
19611
|
+
return this;
|
|
19612
|
+
}
|
|
19613
|
+
};
|
|
19614
|
+
}
|
|
19615
|
+
});
|
|
19616
|
+
|
|
19579
19617
|
// src/lib/memory/mmr.ts
|
|
19580
19618
|
function applyMMR(candidates, k, lambda = 0.5) {
|
|
19581
19619
|
if (candidates.length === 0 || k <= 0) return [];
|
|
@@ -20355,44 +20393,6 @@ Output strict JSON. No prose.`;
|
|
|
20355
20393
|
}
|
|
20356
20394
|
});
|
|
20357
20395
|
|
|
20358
|
-
// src/lib/memoryVault/lruCache.ts
|
|
20359
|
-
function createVaultEmbeddingCache(maxSize = DEFAULT_VAULT_CACHE_SIZE) {
|
|
20360
|
-
return new LRUCache(maxSize);
|
|
20361
|
-
}
|
|
20362
|
-
var DEFAULT_VAULT_CACHE_SIZE, LRUCache;
|
|
20363
|
-
var init_lruCache = __esm({
|
|
20364
|
-
"src/lib/memoryVault/lruCache.ts"() {
|
|
20365
|
-
"use strict";
|
|
20366
|
-
DEFAULT_VAULT_CACHE_SIZE = 5e3;
|
|
20367
|
-
LRUCache = class extends Map {
|
|
20368
|
-
constructor(maxSize) {
|
|
20369
|
-
super();
|
|
20370
|
-
this.maxSize = maxSize;
|
|
20371
|
-
}
|
|
20372
|
-
get(key) {
|
|
20373
|
-
if (!super.has(key)) return void 0;
|
|
20374
|
-
const value = super.get(key);
|
|
20375
|
-
super.delete(key);
|
|
20376
|
-
super.set(key, value);
|
|
20377
|
-
return value;
|
|
20378
|
-
}
|
|
20379
|
-
set(key, value) {
|
|
20380
|
-
if (super.has(key)) {
|
|
20381
|
-
super.delete(key);
|
|
20382
|
-
}
|
|
20383
|
-
super.set(key, value);
|
|
20384
|
-
if (this.size > this.maxSize) {
|
|
20385
|
-
const oldest = this.keys().next().value;
|
|
20386
|
-
if (oldest !== void 0) {
|
|
20387
|
-
super.delete(oldest);
|
|
20388
|
-
}
|
|
20389
|
-
}
|
|
20390
|
-
return this;
|
|
20391
|
-
}
|
|
20392
|
-
};
|
|
20393
|
-
}
|
|
20394
|
-
});
|
|
20395
|
-
|
|
20396
20396
|
// src/lib/memory/queryEntities.ts
|
|
20397
20397
|
function hasMeaningfulCandidate(candidates) {
|
|
20398
20398
|
for (const candidate of candidates) {
|
package/dist/server/index.mjs
CHANGED