@cmdoss/memwal-sdk 0.6.0 → 0.6.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/ARCHITECTURE.md +86 -2
- package/BENCHMARKS.md +2 -2
- package/README.md +43 -4
- package/dist/ai-sdk/types.d.ts +2 -2
- package/dist/ai-sdk/types.d.ts.map +1 -1
- package/dist/browser.d.ts +9 -9
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +16 -11
- package/dist/browser.js.map +1 -1
- package/dist/client/PersonalDataWallet.d.ts.map +1 -1
- package/dist/client/SimplePDWClient.d.ts.map +1 -1
- package/dist/client/SimplePDWClient.js +4 -4
- package/dist/client/SimplePDWClient.js.map +1 -1
- package/dist/client/namespaces/BatchNamespace.js +2 -2
- package/dist/client/namespaces/BatchNamespace.js.map +1 -1
- package/dist/client/namespaces/MemoryNamespace.js +3 -3
- package/dist/client/namespaces/MemoryNamespace.js.map +1 -1
- package/dist/client/namespaces/StorageNamespace.js +4 -4
- package/dist/client/namespaces/StorageNamespace.js.map +1 -1
- package/dist/client/namespaces/consolidated/StorageNamespace.js +2 -2
- package/dist/client/namespaces/consolidated/StorageNamespace.js.map +1 -1
- package/dist/client/signers/DappKitSigner.d.ts +136 -0
- package/dist/client/signers/DappKitSigner.d.ts.map +1 -0
- package/dist/client/signers/DappKitSigner.js +128 -0
- package/dist/client/signers/DappKitSigner.js.map +1 -0
- package/dist/client/signers/KeypairSigner.d.ts +4 -0
- package/dist/client/signers/KeypairSigner.d.ts.map +1 -1
- package/dist/client/signers/KeypairSigner.js +6 -0
- package/dist/client/signers/KeypairSigner.js.map +1 -1
- package/dist/client/signers/UnifiedSigner.d.ts +10 -0
- package/dist/client/signers/UnifiedSigner.d.ts.map +1 -1
- package/dist/client/signers/WalletAdapterSigner.d.ts +7 -0
- package/dist/client/signers/WalletAdapterSigner.d.ts.map +1 -1
- package/dist/client/signers/WalletAdapterSigner.js +9 -0
- package/dist/client/signers/WalletAdapterSigner.js.map +1 -1
- package/dist/client/signers/index.d.ts +3 -0
- package/dist/client/signers/index.d.ts.map +1 -1
- package/dist/client/signers/index.js +2 -0
- package/dist/client/signers/index.js.map +1 -1
- package/dist/generated/utils/index.js +1 -1
- package/dist/generated/utils/index.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/services/CapabilityService.js +1 -1
- package/dist/services/CapabilityService.js.map +1 -1
- package/dist/services/EncryptionService.js +1 -1
- package/dist/services/EncryptionService.js.map +1 -1
- package/dist/services/StorageService.d.ts +8 -8
- package/dist/services/StorageService.d.ts.map +1 -1
- package/dist/services/StorageService.js.map +1 -1
- package/dist/services/VectorService.js +2 -2
- package/dist/services/VectorService.js.map +1 -1
- package/dist/services/storage/BlobAttributesManager.d.ts +4 -4
- package/dist/services/storage/BlobAttributesManager.d.ts.map +1 -1
- package/dist/services/storage/BlobAttributesManager.js +6 -15
- package/dist/services/storage/BlobAttributesManager.js.map +1 -1
- package/dist/services/storage/QuiltBatchManager.d.ts +23 -5
- package/dist/services/storage/QuiltBatchManager.d.ts.map +1 -1
- package/dist/services/storage/QuiltBatchManager.js +118 -35
- package/dist/services/storage/QuiltBatchManager.js.map +1 -1
- package/dist/services/storage/WalrusMetadataManager.d.ts +2 -2
- package/dist/services/storage/WalrusMetadataManager.d.ts.map +1 -1
- package/dist/services/storage/WalrusMetadataManager.js +2 -5
- package/dist/services/storage/WalrusMetadataManager.js.map +1 -1
- package/dist/services/storage/WalrusStorageManager.d.ts +2 -2
- package/dist/services/storage/WalrusStorageManager.d.ts.map +1 -1
- package/dist/services/storage/WalrusStorageManager.js +7 -11
- package/dist/services/storage/WalrusStorageManager.js.map +1 -1
- package/dist/wallet/MainWalletService.js +1 -1
- package/dist/wallet/MainWalletService.js.map +1 -1
- package/package.json +10 -3
- package/src/ai-sdk/types.ts +2 -2
- package/src/browser.ts +19 -20
- package/src/client/SimplePDWClient.ts +18 -14
- package/src/client/namespaces/BatchNamespace.ts +2 -2
- package/src/client/namespaces/MemoryNamespace.ts +3 -3
- package/src/client/namespaces/StorageNamespace.ts +4 -4
- package/src/client/namespaces/consolidated/StorageNamespace.ts +2 -2
- package/src/client/signers/DappKitSigner.ts +207 -0
- package/src/client/signers/KeypairSigner.ts +7 -0
- package/src/client/signers/UnifiedSigner.ts +11 -0
- package/src/client/signers/WalletAdapterSigner.ts +10 -0
- package/src/client/signers/index.ts +7 -0
- package/src/generated/pdw/deps/sui/object.ts +12 -12
- package/src/generated/pdw/deps/sui/vec_map.ts +32 -32
- package/src/generated/pdw/memory.ts +1087 -1087
- package/src/generated/pdw/wallet.ts +123 -123
- package/src/generated/utils/index.ts +159 -159
- package/src/index.ts +16 -0
- package/src/services/CapabilityService.ts +1 -1
- package/src/services/EncryptionService.ts +1 -1
- package/src/services/StorageService.ts +8 -8
- package/src/services/VectorService.ts +2 -2
- package/src/services/storage/BlobAttributesManager.ts +10 -19
- package/src/services/storage/QuiltBatchManager.ts +139 -37
- package/src/services/storage/WalrusMetadataManager.ts +4 -7
- package/src/services/storage/WalrusStorageManager.ts +10 -13
- package/src/wallet/MainWalletService.ts +1 -1
- package/dist/api/client.d.ts +0 -43
- package/dist/api/client.d.ts.map +0 -1
- package/dist/api/client.js +0 -136
- package/dist/api/client.js.map +0 -1
- package/dist/chat/index.d.ts +0 -13
- package/dist/chat/index.d.ts.map +0 -1
- package/dist/chat/index.js +0 -14
- package/dist/chat/index.js.map +0 -1
- package/dist/client/namespaces/ChatNamespace.d.ts +0 -110
- package/dist/client/namespaces/ChatNamespace.d.ts.map +0 -1
- package/dist/client/namespaces/ChatNamespace.js +0 -123
- package/dist/client/namespaces/ChatNamespace.js.map +0 -1
- package/dist/encryption/index.d.ts +0 -14
- package/dist/encryption/index.d.ts.map +0 -1
- package/dist/encryption/index.js +0 -14
- package/dist/encryption/index.js.map +0 -1
- package/dist/graph/BrowserKnowledgeGraphManager.d.ts +0 -101
- package/dist/graph/BrowserKnowledgeGraphManager.d.ts.map +0 -1
- package/dist/graph/BrowserKnowledgeGraphManager.js +0 -411
- package/dist/graph/BrowserKnowledgeGraphManager.js.map +0 -1
- package/dist/hooks.wip/index.d.ts +0 -55
- package/dist/hooks.wip/index.d.ts.map +0 -1
- package/dist/hooks.wip/index.js +0 -58
- package/dist/hooks.wip/index.js.map +0 -1
- package/dist/hooks.wip/useCreateMemory.d.ts +0 -111
- package/dist/hooks.wip/useCreateMemory.d.ts.map +0 -1
- package/dist/hooks.wip/useCreateMemory.js +0 -149
- package/dist/hooks.wip/useCreateMemory.js.map +0 -1
- package/dist/hooks.wip/useCreateMemoryBatch.d.ts +0 -122
- package/dist/hooks.wip/useCreateMemoryBatch.d.ts.map +0 -1
- package/dist/hooks.wip/useCreateMemoryBatch.js +0 -221
- package/dist/hooks.wip/useCreateMemoryBatch.js.map +0 -1
- package/dist/hooks.wip/useKnowledgeGraph.d.ts +0 -66
- package/dist/hooks.wip/useKnowledgeGraph.d.ts.map +0 -1
- package/dist/hooks.wip/useKnowledgeGraph.js +0 -229
- package/dist/hooks.wip/useKnowledgeGraph.js.map +0 -1
- package/dist/hooks.wip/useMemoryChat.d.ts +0 -106
- package/dist/hooks.wip/useMemoryChat.d.ts.map +0 -1
- package/dist/hooks.wip/useMemoryChat.js +0 -284
- package/dist/hooks.wip/useMemoryChat.js.map +0 -1
- package/dist/hooks.wip/useMemoryIndex.d.ts +0 -90
- package/dist/hooks.wip/useMemoryIndex.d.ts.map +0 -1
- package/dist/hooks.wip/useMemoryIndex.js +0 -218
- package/dist/hooks.wip/useMemoryIndex.js.map +0 -1
- package/dist/hooks.wip/useMemoryManager.d.ts +0 -35
- package/dist/hooks.wip/useMemoryManager.d.ts.map +0 -1
- package/dist/hooks.wip/useMemoryManager.js +0 -86
- package/dist/hooks.wip/useMemoryManager.js.map +0 -1
- package/dist/hooks.wip/useMemorySearch.d.ts +0 -100
- package/dist/hooks.wip/useMemorySearch.d.ts.map +0 -1
- package/dist/hooks.wip/useMemorySearch.js +0 -278
- package/dist/hooks.wip/useMemorySearch.js.map +0 -1
- package/dist/hooks.wip/useMemoryServices.d.ts +0 -80
- package/dist/hooks.wip/useMemoryServices.d.ts.map +0 -1
- package/dist/hooks.wip/useMemoryServices.js +0 -264
- package/dist/hooks.wip/useMemoryServices.js.map +0 -1
- package/dist/hooks.wip/usePDWRAG.d.ts +0 -112
- package/dist/hooks.wip/usePDWRAG.d.ts.map +0 -1
- package/dist/hooks.wip/usePDWRAG.js +0 -121
- package/dist/hooks.wip/usePDWRAG.js.map +0 -1
- package/dist/hooks.wip/usePDWVectorStore.d.ts +0 -68
- package/dist/hooks.wip/usePDWVectorStore.d.ts.map +0 -1
- package/dist/hooks.wip/usePDWVectorStore.js +0 -102
- package/dist/hooks.wip/usePDWVectorStore.js.map +0 -1
- package/dist/hooks.wip/useRetrieveEmbedding.d.ts +0 -138
- package/dist/hooks.wip/useRetrieveEmbedding.d.ts.map +0 -1
- package/dist/hooks.wip/useRetrieveEmbedding.js +0 -121
- package/dist/hooks.wip/useRetrieveEmbedding.js.map +0 -1
- package/dist/hooks.wip/useSearchMemories.d.ts +0 -103
- package/dist/hooks.wip/useSearchMemories.d.ts.map +0 -1
- package/dist/hooks.wip/useSearchMemories.js +0 -146
- package/dist/hooks.wip/useSearchMemories.js.map +0 -1
- package/dist/hooks.wip/useStoreEmbedding.d.ts +0 -174
- package/dist/hooks.wip/useStoreEmbedding.d.ts.map +0 -1
- package/dist/hooks.wip/useStoreEmbedding.js +0 -167
- package/dist/hooks.wip/useStoreEmbedding.js.map +0 -1
- package/dist/hooks.wip/useWalletMemories.d.ts +0 -119
- package/dist/hooks.wip/useWalletMemories.d.ts.map +0 -1
- package/dist/hooks.wip/useWalletMemories.js +0 -166
- package/dist/hooks.wip/useWalletMemories.js.map +0 -1
- package/dist/hooks.wip/utils/cache.d.ts +0 -25
- package/dist/hooks.wip/utils/cache.d.ts.map +0 -1
- package/dist/hooks.wip/utils/cache.js +0 -38
- package/dist/hooks.wip/utils/cache.js.map +0 -1
- package/dist/hooks.wip/utils/types.d.ts +0 -138
- package/dist/hooks.wip/utils/types.d.ts.map +0 -1
- package/dist/hooks.wip/utils/types.js +0 -5
- package/dist/hooks.wip/utils/types.js.map +0 -1
- package/dist/infrastructure/ai/EmbeddingService.d.ts +0 -101
- package/dist/infrastructure/ai/EmbeddingService.d.ts.map +0 -1
- package/dist/infrastructure/ai/EmbeddingService.js +0 -242
- package/dist/infrastructure/ai/EmbeddingService.js.map +0 -1
- package/dist/infrastructure/ai/GeminiAIService.d.ts +0 -84
- package/dist/infrastructure/ai/GeminiAIService.d.ts.map +0 -1
- package/dist/infrastructure/ai/GeminiAIService.js +0 -300
- package/dist/infrastructure/ai/GeminiAIService.js.map +0 -1
- package/dist/infrastructure/ai/index.d.ts +0 -8
- package/dist/infrastructure/ai/index.d.ts.map +0 -1
- package/dist/infrastructure/ai/index.js +0 -8
- package/dist/infrastructure/ai/index.js.map +0 -1
- package/dist/memory/index.d.ts +0 -13
- package/dist/memory/index.d.ts.map +0 -1
- package/dist/memory/index.js +0 -14
- package/dist/memory/index.js.map +0 -1
- package/dist/services/ChatService.d.ts +0 -89
- package/dist/services/ChatService.d.ts.map +0 -1
- package/dist/services/ChatService.js +0 -319
- package/dist/services/ChatService.js.map +0 -1
- package/dist/transactions/index.d.ts +0 -13
- package/dist/transactions/index.d.ts.map +0 -1
- package/dist/transactions/index.js +0 -14
- package/dist/transactions/index.js.map +0 -1
- package/dist/types/wallet.d.ts +0 -12
- package/dist/types/wallet.d.ts.map +0 -1
- package/dist/types/wallet.js +0 -13
- package/dist/types/wallet.js.map +0 -1
- package/dist/view/ViewService.d.ts +0 -136
- package/dist/view/ViewService.d.ts.map +0 -1
- package/dist/view/ViewService.js +0 -325
- package/dist/view/ViewService.js.map +0 -1
- package/dist/view/index.d.ts +0 -7
- package/dist/view/index.d.ts.map +0 -1
- package/dist/view/index.js +0 -7
- package/dist/view/index.js.map +0 -1
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* useMemoryIndex - Hook for indexing memories
|
|
3
|
-
*
|
|
4
|
-
* Provides interface for adding memories to vector index and knowledge graph.
|
|
5
|
-
* Handles embedding generation, batching, and persistence automatically.
|
|
6
|
-
*/
|
|
7
|
-
import { type MemoryServicesConfig } from './useMemoryServices';
|
|
8
|
-
export interface AddMemoryOptions {
|
|
9
|
-
/** Memory content (will be embedded) */
|
|
10
|
-
content: string;
|
|
11
|
-
/** Category for filtering */
|
|
12
|
-
category: string;
|
|
13
|
-
/** Importance score (1-10) */
|
|
14
|
-
importance?: number;
|
|
15
|
-
/** Custom metadata */
|
|
16
|
-
metadata?: Record<string, any>;
|
|
17
|
-
/** Entities to extract/add to graph */
|
|
18
|
-
entities?: Array<{
|
|
19
|
-
id: string;
|
|
20
|
-
label: string;
|
|
21
|
-
type: string;
|
|
22
|
-
confidence?: number;
|
|
23
|
-
}>;
|
|
24
|
-
/** Relationships to add to graph */
|
|
25
|
-
relationships?: Array<{
|
|
26
|
-
source: string;
|
|
27
|
-
target: string;
|
|
28
|
-
label: string;
|
|
29
|
-
confidence?: number;
|
|
30
|
-
}>;
|
|
31
|
-
}
|
|
32
|
-
export interface IndexedMemory {
|
|
33
|
-
memoryId: string;
|
|
34
|
-
vectorId: number;
|
|
35
|
-
embedding: number[];
|
|
36
|
-
indexed: boolean;
|
|
37
|
-
indexedAt: Date;
|
|
38
|
-
}
|
|
39
|
-
export interface IndexStats {
|
|
40
|
-
totalMemories: number;
|
|
41
|
-
pendingVectors: number;
|
|
42
|
-
cacheSize: number;
|
|
43
|
-
lastFlush?: Date;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Add and manage memories in the vector index
|
|
47
|
-
*
|
|
48
|
-
* @param userAddress - User's blockchain address
|
|
49
|
-
* @param config - Optional services configuration
|
|
50
|
-
* @returns Functions for indexing memories and stats
|
|
51
|
-
*
|
|
52
|
-
* @example
|
|
53
|
-
* ```tsx
|
|
54
|
-
* function AddMemoryForm() {
|
|
55
|
-
* const account = useCurrentAccount();
|
|
56
|
-
* const { addMemory, flush, isIndexing, stats } = useMemoryIndex(account?.address);
|
|
57
|
-
*
|
|
58
|
-
* const handleSubmit = async (content: string) => {
|
|
59
|
-
* const result = await addMemory({
|
|
60
|
-
* content,
|
|
61
|
-
* category: 'personal',
|
|
62
|
-
* importance: 7,
|
|
63
|
-
* entities: [{ id: 'paris', label: 'Paris', type: 'location' }]
|
|
64
|
-
* });
|
|
65
|
-
* console.log('Indexed:', result);
|
|
66
|
-
* };
|
|
67
|
-
*
|
|
68
|
-
* return (
|
|
69
|
-
* <div>
|
|
70
|
-
* <textarea onChange={(e) => handleSubmit(e.target.value)} />
|
|
71
|
-
* <p>Pending: {stats.pendingVectors}</p>
|
|
72
|
-
* <button onClick={flush}>Save Now</button>
|
|
73
|
-
* </div>
|
|
74
|
-
* );
|
|
75
|
-
* }
|
|
76
|
-
* ```
|
|
77
|
-
*/
|
|
78
|
-
export declare function useMemoryIndex(userAddress?: string, config?: MemoryServicesConfig): {
|
|
79
|
-
addMemory: (options: AddMemoryOptions) => Promise<IndexedMemory>;
|
|
80
|
-
addBatch: (memories: AddMemoryOptions[]) => Promise<IndexedMemory[]>;
|
|
81
|
-
flush: () => Promise<void>;
|
|
82
|
-
removeMemory: (memoryId: string, vectorId: number) => Promise<boolean>;
|
|
83
|
-
isIndexing: boolean;
|
|
84
|
-
isReady: boolean;
|
|
85
|
-
error: Error | null;
|
|
86
|
-
lastIndexed: IndexedMemory | null;
|
|
87
|
-
stats: IndexStats;
|
|
88
|
-
getDetailedStats: () => import("../vector").BatchStats | null;
|
|
89
|
-
};
|
|
90
|
-
//# sourceMappingURL=useMemoryIndex.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useMemoryIndex.d.ts","sourceRoot":"","sources":["../../src/hooks.wip/useMemoryIndex.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAqB,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEnF,MAAM,WAAW,gBAAgB;IAC/B,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,uCAAuC;IACvC,QAAQ,CAAC,EAAE,KAAK,CAAC;QACf,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,oCAAoC;IACpC,aAAa,CAAC,EAAE,KAAK,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,cAAc,CAC5B,WAAW,CAAC,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,oBAAoB;yBAkBlB,gBAAgB,KACxB,OAAO,CAAC,aAAa,CAAC;yBAuFb,gBAAgB,EAAE,KAC3B,OAAO,CAAC,aAAa,EAAE,CAAC;iBAuBS,OAAO,CAAC,IAAI,CAAC;6BAuBrC,MAAM,YACN,MAAM,KACf,OAAO,CAAC,OAAO,CAAC;;;;;;;EAqDpB"}
|
|
@@ -1,218 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* useMemoryIndex - Hook for indexing memories
|
|
3
|
-
*
|
|
4
|
-
* Provides interface for adding memories to vector index and knowledge graph.
|
|
5
|
-
* Handles embedding generation, batching, and persistence automatically.
|
|
6
|
-
*/
|
|
7
|
-
import { useState, useCallback } from 'react';
|
|
8
|
-
import { useMemoryServices } from './useMemoryServices.js';
|
|
9
|
-
/**
|
|
10
|
-
* Add and manage memories in the vector index
|
|
11
|
-
*
|
|
12
|
-
* @param userAddress - User's blockchain address
|
|
13
|
-
* @param config - Optional services configuration
|
|
14
|
-
* @returns Functions for indexing memories and stats
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```tsx
|
|
18
|
-
* function AddMemoryForm() {
|
|
19
|
-
* const account = useCurrentAccount();
|
|
20
|
-
* const { addMemory, flush, isIndexing, stats } = useMemoryIndex(account?.address);
|
|
21
|
-
*
|
|
22
|
-
* const handleSubmit = async (content: string) => {
|
|
23
|
-
* const result = await addMemory({
|
|
24
|
-
* content,
|
|
25
|
-
* category: 'personal',
|
|
26
|
-
* importance: 7,
|
|
27
|
-
* entities: [{ id: 'paris', label: 'Paris', type: 'location' }]
|
|
28
|
-
* });
|
|
29
|
-
* console.log('Indexed:', result);
|
|
30
|
-
* };
|
|
31
|
-
*
|
|
32
|
-
* return (
|
|
33
|
-
* <div>
|
|
34
|
-
* <textarea onChange={(e) => handleSubmit(e.target.value)} />
|
|
35
|
-
* <p>Pending: {stats.pendingVectors}</p>
|
|
36
|
-
* <button onClick={flush}>Save Now</button>
|
|
37
|
-
* </div>
|
|
38
|
-
* );
|
|
39
|
-
* }
|
|
40
|
-
* ```
|
|
41
|
-
*/
|
|
42
|
-
export function useMemoryIndex(userAddress, config) {
|
|
43
|
-
const { embeddingService, hnswService, graphManager, isReady, error: servicesError } = useMemoryServices(userAddress, config);
|
|
44
|
-
const [isIndexing, setIsIndexing] = useState(false);
|
|
45
|
-
const [error, setError] = useState(null);
|
|
46
|
-
const [lastIndexed, setLastIndexed] = useState(null);
|
|
47
|
-
const [stats, setStats] = useState({
|
|
48
|
-
totalMemories: 0,
|
|
49
|
-
pendingVectors: 0,
|
|
50
|
-
cacheSize: 0
|
|
51
|
-
});
|
|
52
|
-
/**
|
|
53
|
-
* Add a memory to the index
|
|
54
|
-
*/
|
|
55
|
-
const addMemory = useCallback(async (options) => {
|
|
56
|
-
if (!embeddingService || !hnswService || !userAddress) {
|
|
57
|
-
throw new Error('Services not initialized');
|
|
58
|
-
}
|
|
59
|
-
if (!options.content || options.content.trim().length === 0) {
|
|
60
|
-
throw new Error('Memory content cannot be empty');
|
|
61
|
-
}
|
|
62
|
-
try {
|
|
63
|
-
setIsIndexing(true);
|
|
64
|
-
setError(null);
|
|
65
|
-
// Generate unique memory ID
|
|
66
|
-
const memoryId = generateMemoryId();
|
|
67
|
-
// 1. Generate embedding
|
|
68
|
-
const embeddingResult = await embeddingService.embedText({
|
|
69
|
-
text: options.content,
|
|
70
|
-
type: 'content'
|
|
71
|
-
});
|
|
72
|
-
// 2. Generate vector ID
|
|
73
|
-
const vectorId = Date.now() + Math.floor(Math.random() * 1000);
|
|
74
|
-
// 3. Prepare metadata
|
|
75
|
-
const metadata = {
|
|
76
|
-
memoryId,
|
|
77
|
-
category: options.category,
|
|
78
|
-
importance: options.importance || 5,
|
|
79
|
-
createdTimestamp: Date.now(),
|
|
80
|
-
contentType: 'text/plain',
|
|
81
|
-
contentSize: options.content.length,
|
|
82
|
-
...(options.metadata || {})
|
|
83
|
-
};
|
|
84
|
-
// 4. Add to HNSW index (batched)
|
|
85
|
-
hnswService.addVectorToIndexBatched(userAddress, vectorId, embeddingResult.vector, metadata);
|
|
86
|
-
// 5. Add to knowledge graph (if entities/relationships provided)
|
|
87
|
-
if ((options.entities || options.relationships) && graphManager) {
|
|
88
|
-
try {
|
|
89
|
-
await graphManager.addToGraph(userAddress, options.entities || [], options.relationships || [], memoryId);
|
|
90
|
-
}
|
|
91
|
-
catch (graphError) {
|
|
92
|
-
console.warn('Failed to add to knowledge graph:', graphError);
|
|
93
|
-
// Continue without graph (non-fatal)
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
const indexed = {
|
|
97
|
-
memoryId,
|
|
98
|
-
vectorId,
|
|
99
|
-
embedding: embeddingResult.vector,
|
|
100
|
-
indexed: true,
|
|
101
|
-
indexedAt: new Date()
|
|
102
|
-
};
|
|
103
|
-
setLastIndexed(indexed);
|
|
104
|
-
// Update stats
|
|
105
|
-
updateStats();
|
|
106
|
-
return indexed;
|
|
107
|
-
}
|
|
108
|
-
catch (err) {
|
|
109
|
-
const error = err;
|
|
110
|
-
setError(error);
|
|
111
|
-
throw error;
|
|
112
|
-
}
|
|
113
|
-
finally {
|
|
114
|
-
setIsIndexing(false);
|
|
115
|
-
}
|
|
116
|
-
}, [userAddress, embeddingService, hnswService, graphManager]);
|
|
117
|
-
/**
|
|
118
|
-
* Add multiple memories in batch
|
|
119
|
-
*/
|
|
120
|
-
const addBatch = useCallback(async (memories) => {
|
|
121
|
-
const results = [];
|
|
122
|
-
const errors = [];
|
|
123
|
-
for (const memory of memories) {
|
|
124
|
-
try {
|
|
125
|
-
const result = await addMemory(memory);
|
|
126
|
-
results.push(result);
|
|
127
|
-
}
|
|
128
|
-
catch (err) {
|
|
129
|
-
errors.push(err);
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
if (errors.length > 0) {
|
|
133
|
-
console.warn(`Failed to index ${errors.length}/${memories.length} memories`);
|
|
134
|
-
}
|
|
135
|
-
return results;
|
|
136
|
-
}, [addMemory]);
|
|
137
|
-
/**
|
|
138
|
-
* Force flush pending vectors to IndexedDB
|
|
139
|
-
*/
|
|
140
|
-
const flush = useCallback(async () => {
|
|
141
|
-
if (!hnswService || !userAddress) {
|
|
142
|
-
throw new Error('Services not initialized');
|
|
143
|
-
}
|
|
144
|
-
try {
|
|
145
|
-
setIsIndexing(true);
|
|
146
|
-
await hnswService.forceFlush(userAddress);
|
|
147
|
-
updateStats();
|
|
148
|
-
console.log('✅ Index flushed to IndexedDB');
|
|
149
|
-
}
|
|
150
|
-
catch (err) {
|
|
151
|
-
const error = err;
|
|
152
|
-
setError(error);
|
|
153
|
-
throw error;
|
|
154
|
-
}
|
|
155
|
-
finally {
|
|
156
|
-
setIsIndexing(false);
|
|
157
|
-
}
|
|
158
|
-
}, [userAddress, hnswService]);
|
|
159
|
-
/**
|
|
160
|
-
* Remove a memory from the index
|
|
161
|
-
*/
|
|
162
|
-
const removeMemory = useCallback(async (memoryId, vectorId) => {
|
|
163
|
-
if (!hnswService || !userAddress) {
|
|
164
|
-
throw new Error('Services not initialized');
|
|
165
|
-
}
|
|
166
|
-
try {
|
|
167
|
-
hnswService.clearUserIndex(userAddress);
|
|
168
|
-
// Note: HNSW doesn't support deletion, would need to rebuild index
|
|
169
|
-
// For now, just mark as removed in metadata
|
|
170
|
-
console.warn('Memory removal requires index rebuild (not yet implemented)');
|
|
171
|
-
return false;
|
|
172
|
-
}
|
|
173
|
-
catch (err) {
|
|
174
|
-
const error = err;
|
|
175
|
-
setError(error);
|
|
176
|
-
throw error;
|
|
177
|
-
}
|
|
178
|
-
}, [userAddress, hnswService]);
|
|
179
|
-
/**
|
|
180
|
-
* Update statistics
|
|
181
|
-
*/
|
|
182
|
-
const updateStats = useCallback(() => {
|
|
183
|
-
if (!hnswService)
|
|
184
|
-
return;
|
|
185
|
-
const hnswStats = hnswService.getCacheStats();
|
|
186
|
-
setStats({
|
|
187
|
-
totalMemories: hnswStats.totalUsers,
|
|
188
|
-
pendingVectors: hnswStats.totalPendingVectors,
|
|
189
|
-
cacheSize: hnswStats.totalUsers,
|
|
190
|
-
lastFlush: undefined // TODO: Track last flush time
|
|
191
|
-
});
|
|
192
|
-
}, [hnswService]);
|
|
193
|
-
/**
|
|
194
|
-
* Get detailed index statistics
|
|
195
|
-
*/
|
|
196
|
-
const getDetailedStats = useCallback(() => {
|
|
197
|
-
if (!hnswService)
|
|
198
|
-
return null;
|
|
199
|
-
return hnswService.getCacheStats();
|
|
200
|
-
}, [hnswService]);
|
|
201
|
-
return {
|
|
202
|
-
addMemory,
|
|
203
|
-
addBatch,
|
|
204
|
-
flush,
|
|
205
|
-
removeMemory,
|
|
206
|
-
isIndexing,
|
|
207
|
-
isReady,
|
|
208
|
-
error: error || servicesError,
|
|
209
|
-
lastIndexed,
|
|
210
|
-
stats,
|
|
211
|
-
getDetailedStats
|
|
212
|
-
};
|
|
213
|
-
}
|
|
214
|
-
// ==================== HELPER FUNCTIONS ====================
|
|
215
|
-
function generateMemoryId() {
|
|
216
|
-
return `mem_${Date.now()}_${Math.random().toString(36).substring(2, 15)}`;
|
|
217
|
-
}
|
|
218
|
-
//# sourceMappingURL=useMemoryIndex.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useMemoryIndex.js","sourceRoot":"","sources":["../../src/hooks.wip/useMemoryIndex.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* useMemoryManager - Foundation hook for Personal Data Wallet
|
|
3
|
-
*
|
|
4
|
-
* Creates and maintains a stable ClientMemoryManager instance.
|
|
5
|
-
* Auto-configured from environment variables with optional overrides.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* ```tsx
|
|
9
|
-
* import { useMemoryManager } from 'personal-data-wallet-sdk/hooks';
|
|
10
|
-
* import { useCurrentAccount } from '@mysten/dapp-kit';
|
|
11
|
-
*
|
|
12
|
-
* function MyComponent() {
|
|
13
|
-
* const account = useCurrentAccount();
|
|
14
|
-
* const manager = useMemoryManager({
|
|
15
|
-
* packageId: process.env.NEXT_PUBLIC_PACKAGE_ID
|
|
16
|
-
* });
|
|
17
|
-
*
|
|
18
|
-
* if (!manager) return <div>Connect wallet to continue</div>;
|
|
19
|
-
*
|
|
20
|
-
* return <div>Manager ready!</div>;
|
|
21
|
-
* }
|
|
22
|
-
* ```
|
|
23
|
-
*/
|
|
24
|
-
import { ClientMemoryManager } from '../client/ClientMemoryManager';
|
|
25
|
-
import type { MemoryManagerConfig } from './utils/types';
|
|
26
|
-
export type { MemoryManagerConfig };
|
|
27
|
-
/**
|
|
28
|
-
* Initialize and provide access to ClientMemoryManager instance
|
|
29
|
-
*
|
|
30
|
-
* @param config - Optional configuration (uses env vars as defaults)
|
|
31
|
-
* @returns ClientMemoryManager instance or null if wallet not connected
|
|
32
|
-
*/
|
|
33
|
-
export declare function useMemoryManager(config?: MemoryManagerConfig): ClientMemoryManager | null;
|
|
34
|
-
export default useMemoryManager;
|
|
35
|
-
//# sourceMappingURL=useMemoryManager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useMemoryManager.d.ts","sourceRoot":"","sources":["../../src/hooks.wip/useMemoryManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD,YAAY,EAAE,mBAAmB,EAAE,CAAC;AAYpC;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,GAAG,IAAI,CA8CzF;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* useMemoryManager - Foundation hook for Personal Data Wallet
|
|
3
|
-
*
|
|
4
|
-
* Creates and maintains a stable ClientMemoryManager instance.
|
|
5
|
-
* Auto-configured from environment variables with optional overrides.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* ```tsx
|
|
9
|
-
* import { useMemoryManager } from 'personal-data-wallet-sdk/hooks';
|
|
10
|
-
* import { useCurrentAccount } from '@mysten/dapp-kit';
|
|
11
|
-
*
|
|
12
|
-
* function MyComponent() {
|
|
13
|
-
* const account = useCurrentAccount();
|
|
14
|
-
* const manager = useMemoryManager({
|
|
15
|
-
* packageId: process.env.NEXT_PUBLIC_PACKAGE_ID
|
|
16
|
-
* });
|
|
17
|
-
*
|
|
18
|
-
* if (!manager) return <div>Connect wallet to continue</div>;
|
|
19
|
-
*
|
|
20
|
-
* return <div>Manager ready!</div>;
|
|
21
|
-
* }
|
|
22
|
-
* ```
|
|
23
|
-
*/
|
|
24
|
-
import { useMemo } from 'react';
|
|
25
|
-
import { ClientMemoryManager } from '../client/ClientMemoryManager.js';
|
|
26
|
-
/**
|
|
27
|
-
* Get environment variable with fallback
|
|
28
|
-
*/
|
|
29
|
-
function getEnvVar(key, fallback) {
|
|
30
|
-
if (typeof process !== 'undefined' && process.env) {
|
|
31
|
-
return process.env[key] || fallback;
|
|
32
|
-
}
|
|
33
|
-
return fallback;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Initialize and provide access to ClientMemoryManager instance
|
|
37
|
-
*
|
|
38
|
-
* @param config - Optional configuration (uses env vars as defaults)
|
|
39
|
-
* @returns ClientMemoryManager instance or null if wallet not connected
|
|
40
|
-
*/
|
|
41
|
-
export function useMemoryManager(config) {
|
|
42
|
-
// Merge config with environment variables
|
|
43
|
-
const memoizedConfig = useMemo(() => {
|
|
44
|
-
const packageId = config?.packageId || getEnvVar('NEXT_PUBLIC_PACKAGE_ID');
|
|
45
|
-
const accessRegistryId = config?.accessRegistryId || getEnvVar('NEXT_PUBLIC_ACCESS_REGISTRY_ID');
|
|
46
|
-
const walrusAggregator = config?.walrusAggregator || getEnvVar('NEXT_PUBLIC_WALRUS_AGGREGATOR');
|
|
47
|
-
const geminiApiKey = config?.geminiApiKey || getEnvVar('NEXT_PUBLIC_GEMINI_API_KEY');
|
|
48
|
-
// Validate required config
|
|
49
|
-
if (!packageId || !accessRegistryId || !walrusAggregator || !geminiApiKey) {
|
|
50
|
-
console.warn('⚠️ Missing required configuration for ClientMemoryManager');
|
|
51
|
-
return null;
|
|
52
|
-
}
|
|
53
|
-
return {
|
|
54
|
-
packageId,
|
|
55
|
-
accessRegistryId,
|
|
56
|
-
walrusAggregator,
|
|
57
|
-
geminiApiKey,
|
|
58
|
-
sealServerObjectIds: config?.sealServerObjectIds,
|
|
59
|
-
walrusNetwork: config?.walrusNetwork || 'testnet',
|
|
60
|
-
categories: config?.categories,
|
|
61
|
-
};
|
|
62
|
-
}, [
|
|
63
|
-
config?.packageId,
|
|
64
|
-
config?.accessRegistryId,
|
|
65
|
-
config?.walrusAggregator,
|
|
66
|
-
config?.geminiApiKey,
|
|
67
|
-
config?.sealServerObjectIds,
|
|
68
|
-
config?.walrusNetwork,
|
|
69
|
-
config?.categories,
|
|
70
|
-
]);
|
|
71
|
-
// Create stable manager instance
|
|
72
|
-
const manager = useMemo(() => {
|
|
73
|
-
if (!memoizedConfig)
|
|
74
|
-
return null;
|
|
75
|
-
try {
|
|
76
|
-
return new ClientMemoryManager(memoizedConfig);
|
|
77
|
-
}
|
|
78
|
-
catch (error) {
|
|
79
|
-
console.error('Failed to create ClientMemoryManager:', error);
|
|
80
|
-
return null;
|
|
81
|
-
}
|
|
82
|
-
}, [memoizedConfig]);
|
|
83
|
-
return manager;
|
|
84
|
-
}
|
|
85
|
-
export default useMemoryManager;
|
|
86
|
-
//# sourceMappingURL=useMemoryManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useMemoryManager.js","sourceRoot":"","sources":["../../src/hooks.wip/useMemoryManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAKpE;;GAEG;AACH,SAAS,SAAS,CAAC,GAAW,EAAE,QAAiB;IAC/C,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAClD,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC;IACtC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAA4B;IAC3D,0CAA0C;IAC1C,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE;QAClC,MAAM,SAAS,GAAG,MAAM,EAAE,SAAS,IAAI,SAAS,CAAC,wBAAwB,CAAC,CAAC;QAC3E,MAAM,gBAAgB,GAAG,MAAM,EAAE,gBAAgB,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;QACjG,MAAM,gBAAgB,GAAG,MAAM,EAAE,gBAAgB,IAAI,SAAS,CAAC,+BAA+B,CAAC,CAAC;QAChG,MAAM,YAAY,GAAG,MAAM,EAAE,YAAY,IAAI,SAAS,CAAC,4BAA4B,CAAC,CAAC;QAErF,2BAA2B;QAC3B,IAAI,CAAC,SAAS,IAAI,CAAC,gBAAgB,IAAI,CAAC,gBAAgB,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;YAC1E,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,SAAS;YACT,gBAAgB;YAChB,gBAAgB;YAChB,YAAY;YACZ,mBAAmB,EAAE,MAAM,EAAE,mBAAmB;YAChD,aAAa,EAAE,MAAM,EAAE,aAAa,IAAI,SAAS;YACjD,UAAU,EAAE,MAAM,EAAE,UAAU;SAC/B,CAAC;IACJ,CAAC,EAAE;QACD,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,gBAAgB;QACxB,MAAM,EAAE,gBAAgB;QACxB,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,mBAAmB;QAC3B,MAAM,EAAE,aAAa;QACrB,MAAM,EAAE,UAAU;KACnB,CAAC,CAAC;IAEH,iCAAiC;IACjC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3B,IAAI,CAAC,cAAc;YAAE,OAAO,IAAI,CAAC;QAEjC,IAAI,CAAC;YACH,OAAO,IAAI,mBAAmB,CAAC,cAAc,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAErB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* useMemorySearch - Hook for searching memories with vector similarity
|
|
3
|
-
*
|
|
4
|
-
* Provides high-level interface for semantic memory search combining:
|
|
5
|
-
* - Vector similarity (HNSW)
|
|
6
|
-
* - Knowledge graph expansion
|
|
7
|
-
* - Metadata filtering
|
|
8
|
-
* - Relevance scoring
|
|
9
|
-
*/
|
|
10
|
-
import { type MemoryServicesConfig } from './useMemoryServices';
|
|
11
|
-
import type { HNSWSearchResult } from '../embedding/types';
|
|
12
|
-
export interface SearchOptions {
|
|
13
|
-
/** Number of results to return */
|
|
14
|
-
k?: number;
|
|
15
|
-
/** Similarity threshold (0-1) */
|
|
16
|
-
threshold?: number;
|
|
17
|
-
/** Search mode */
|
|
18
|
-
mode?: 'semantic' | 'hybrid' | 'exact';
|
|
19
|
-
/** Filter by categories */
|
|
20
|
-
categories?: string[];
|
|
21
|
-
/** Date range filter */
|
|
22
|
-
dateRange?: {
|
|
23
|
-
start?: Date;
|
|
24
|
-
end?: Date;
|
|
25
|
-
};
|
|
26
|
-
/** Importance range filter */
|
|
27
|
-
importanceRange?: {
|
|
28
|
-
min?: number;
|
|
29
|
-
max?: number;
|
|
30
|
-
};
|
|
31
|
-
/** Include knowledge graph expansion */
|
|
32
|
-
includeGraph?: boolean;
|
|
33
|
-
/** Boost recent memories */
|
|
34
|
-
boostRecent?: boolean;
|
|
35
|
-
/** Result diversity factor (0-1) */
|
|
36
|
-
diversityFactor?: number;
|
|
37
|
-
}
|
|
38
|
-
export interface SearchResult {
|
|
39
|
-
/** Vector search results */
|
|
40
|
-
vectorResults: {
|
|
41
|
-
ids: number[];
|
|
42
|
-
distances: number[];
|
|
43
|
-
similarities: number[];
|
|
44
|
-
};
|
|
45
|
-
/** Graph search results (if enabled) */
|
|
46
|
-
graphResults?: {
|
|
47
|
-
entities: any[];
|
|
48
|
-
relationships: any[];
|
|
49
|
-
relatedMemories: string[];
|
|
50
|
-
};
|
|
51
|
-
/** Search metadata */
|
|
52
|
-
metadata: {
|
|
53
|
-
queryTime: number;
|
|
54
|
-
totalResults: number;
|
|
55
|
-
mode: string;
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Search memories using semantic vector similarity
|
|
60
|
-
*
|
|
61
|
-
* @param userAddress - User's blockchain address
|
|
62
|
-
* @param config - Optional services configuration
|
|
63
|
-
* @returns Search function and state
|
|
64
|
-
*
|
|
65
|
-
* @example
|
|
66
|
-
* ```tsx
|
|
67
|
-
* function SearchComponent() {
|
|
68
|
-
* const account = useCurrentAccount();
|
|
69
|
-
* const { search, results, isSearching, error } = useMemorySearch(account?.address);
|
|
70
|
-
*
|
|
71
|
-
* const handleSearch = async () => {
|
|
72
|
-
* const results = await search('memories about Paris', {
|
|
73
|
-
* k: 10,
|
|
74
|
-
* categories: ['travel'],
|
|
75
|
-
* includeGraph: true
|
|
76
|
-
* });
|
|
77
|
-
* };
|
|
78
|
-
*
|
|
79
|
-
* return (
|
|
80
|
-
* <div>
|
|
81
|
-
* <button onClick={handleSearch} disabled={isSearching}>
|
|
82
|
-
* Search
|
|
83
|
-
* </button>
|
|
84
|
-
* {results && <ResultsList results={results} />}
|
|
85
|
-
* </div>
|
|
86
|
-
* );
|
|
87
|
-
* }
|
|
88
|
-
* ```
|
|
89
|
-
*/
|
|
90
|
-
export declare function useMemorySearch(userAddress?: string, config?: MemoryServicesConfig): {
|
|
91
|
-
search: (query: string, options?: SearchOptions) => Promise<SearchResult>;
|
|
92
|
-
searchByVector: (vector: number[], options?: Omit<SearchOptions, "includeGraph">) => Promise<HNSWSearchResult>;
|
|
93
|
-
results: SearchResult | null;
|
|
94
|
-
isSearching: boolean;
|
|
95
|
-
isReady: boolean;
|
|
96
|
-
error: Error | null;
|
|
97
|
-
lastQuery: string;
|
|
98
|
-
clearResults: () => void;
|
|
99
|
-
};
|
|
100
|
-
//# sourceMappingURL=useMemorySearch.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useMemorySearch.d.ts","sourceRoot":"","sources":["../../src/hooks.wip/useMemorySearch.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAqB,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACnF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,MAAM,WAAW,aAAa;IAC5B,kCAAkC;IAClC,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB;IAClB,IAAI,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;IACvC,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,wBAAwB;IACxB,SAAS,CAAC,EAAE;QACV,KAAK,CAAC,EAAE,IAAI,CAAC;QACb,GAAG,CAAC,EAAE,IAAI,CAAC;KACZ,CAAC;IACF,8BAA8B;IAC9B,eAAe,CAAC,EAAE;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;IACF,wCAAwC;IACxC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oCAAoC;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,4BAA4B;IAC5B,aAAa,EAAE;QACb,GAAG,EAAE,MAAM,EAAE,CAAC;QACd,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;IACF,wCAAwC;IACxC,YAAY,CAAC,EAAE;QACb,QAAQ,EAAE,GAAG,EAAE,CAAC;QAChB,aAAa,EAAE,GAAG,EAAE,CAAC;QACrB,eAAe,EAAE,MAAM,EAAE,CAAC;KAC3B,CAAC;IACF,sBAAsB;IACtB,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,eAAe,CAC7B,WAAW,CAAC,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,oBAAoB;oBAcpB,MAAM,YACJ,aAAa,KACrB,OAAO,CAAC,YAAY,CAAC;6BAwJd,MAAM,EAAE,YACP,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,KAC3C,OAAO,CAAC,gBAAgB,CAAC;;;;;;;EAoD7B"}
|