@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,112 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* usePDWRAG - React Hook for RAG with PDWVectorStore
|
|
3
|
-
*
|
|
4
|
-
* Convenience hook for building RAG applications in React.
|
|
5
|
-
* Combines usePDWVectorStore with RAG chain creation.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* ```typescript
|
|
9
|
-
* import { usePDWRAG } from 'personal-data-wallet-sdk/hooks';
|
|
10
|
-
* import { useCurrentAccount } from '@mysten/dapp-kit';
|
|
11
|
-
* import { ChatGoogleGenerativeAI } from '@langchain/google-genai';
|
|
12
|
-
*
|
|
13
|
-
* function MyRAGApp() {
|
|
14
|
-
* const account = useCurrentAccount();
|
|
15
|
-
* const llm = new ChatGoogleGenerativeAI({ apiKey: geminiApiKey });
|
|
16
|
-
*
|
|
17
|
-
* const { query, isProcessing, answer, sources, error } = usePDWRAG({
|
|
18
|
-
* userAddress: account?.address,
|
|
19
|
-
* packageId: '0x...',
|
|
20
|
-
* geminiApiKey: process.env.NEXT_PUBLIC_GEMINI_API_KEY!,
|
|
21
|
-
* llm,
|
|
22
|
-
* });
|
|
23
|
-
*
|
|
24
|
-
* const handleAsk = () => {
|
|
25
|
-
* query('What did I do last week?');
|
|
26
|
-
* };
|
|
27
|
-
*
|
|
28
|
-
* return (
|
|
29
|
-
* <div>
|
|
30
|
-
* <button onClick={handleAsk} disabled={isProcessing}>
|
|
31
|
-
* Ask AI
|
|
32
|
-
* </button>
|
|
33
|
-
* {answer && <p>{answer}</p>}
|
|
34
|
-
* </div>
|
|
35
|
-
* );
|
|
36
|
-
* }
|
|
37
|
-
* ```
|
|
38
|
-
*/
|
|
39
|
-
import type { Runnable } from '@langchain/core/runnables';
|
|
40
|
-
import type { BaseMessage } from '@langchain/core/messages';
|
|
41
|
-
import { type UsePDWVectorStoreOptions } from './usePDWVectorStore';
|
|
42
|
-
export interface UsePDWRAGOptions extends UsePDWVectorStoreOptions {
|
|
43
|
-
/**
|
|
44
|
-
* LangChain LLM for generation (any chat model like ChatOpenAI, ChatAnthropic, ChatGoogleGenerativeAI, etc.)
|
|
45
|
-
*/
|
|
46
|
-
llm: Runnable<any, BaseMessage>;
|
|
47
|
-
/**
|
|
48
|
-
* System prompt for the RAG chain
|
|
49
|
-
*/
|
|
50
|
-
systemPrompt?: string;
|
|
51
|
-
/**
|
|
52
|
-
* Number of documents to retrieve
|
|
53
|
-
* @default 5
|
|
54
|
-
*/
|
|
55
|
-
k?: number;
|
|
56
|
-
/**
|
|
57
|
-
* Minimum similarity threshold
|
|
58
|
-
* @default 0.5
|
|
59
|
-
*/
|
|
60
|
-
minSimilarity?: number;
|
|
61
|
-
/**
|
|
62
|
-
* Whether to return source documents
|
|
63
|
-
* @default false
|
|
64
|
-
*/
|
|
65
|
-
returnSourceDocuments?: boolean;
|
|
66
|
-
/**
|
|
67
|
-
* Metadata filters for retrieval
|
|
68
|
-
*/
|
|
69
|
-
filter?: Record<string, any>;
|
|
70
|
-
}
|
|
71
|
-
export interface UsePDWRAGReturn {
|
|
72
|
-
/**
|
|
73
|
-
* Query function - ask a question
|
|
74
|
-
*/
|
|
75
|
-
query: (question: string) => Promise<void>;
|
|
76
|
-
/**
|
|
77
|
-
* Whether a query is currently processing
|
|
78
|
-
*/
|
|
79
|
-
isProcessing: boolean;
|
|
80
|
-
/**
|
|
81
|
-
* Latest answer from the RAG chain
|
|
82
|
-
*/
|
|
83
|
-
answer: string | null;
|
|
84
|
-
/**
|
|
85
|
-
* Source documents (if returnSourceDocuments is true)
|
|
86
|
-
*/
|
|
87
|
-
sources: Array<{
|
|
88
|
-
content: string;
|
|
89
|
-
metadata: any;
|
|
90
|
-
similarity?: number;
|
|
91
|
-
}> | null;
|
|
92
|
-
/**
|
|
93
|
-
* Error if query failed
|
|
94
|
-
*/
|
|
95
|
-
error: Error | null;
|
|
96
|
-
/**
|
|
97
|
-
* Whether the RAG system is ready
|
|
98
|
-
*/
|
|
99
|
-
isReady: boolean;
|
|
100
|
-
/**
|
|
101
|
-
* Clear current answer and sources
|
|
102
|
-
*/
|
|
103
|
-
clear: () => void;
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* React hook for RAG with PDWVectorStore
|
|
107
|
-
*
|
|
108
|
-
* Combines vector store initialization with RAG chain creation
|
|
109
|
-
* and provides a simple query interface.
|
|
110
|
-
*/
|
|
111
|
-
export declare function usePDWRAG(options: UsePDWRAGOptions): UsePDWRAGReturn;
|
|
112
|
-
//# sourceMappingURL=usePDWRAG.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usePDWRAG.d.ts","sourceRoot":"","sources":["../../src/hooks.wip/usePDWRAG.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAqB,KAAK,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAIvF,MAAM,WAAW,gBAAiB,SAAQ,wBAAwB;IAChE;;OAEG;IACH,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAEhC;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,CAAC,CAAC,EAAE,MAAM,CAAC;IAEX;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3C;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtB;;OAEG;IACH,OAAO,EAAE,KAAK,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,GAAG,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC,GAAG,IAAI,CAAC;IAEV;;OAEG;IACH,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,eAAe,CAyFpE"}
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* usePDWRAG - React Hook for RAG with PDWVectorStore
|
|
3
|
-
*
|
|
4
|
-
* Convenience hook for building RAG applications in React.
|
|
5
|
-
* Combines usePDWVectorStore with RAG chain creation.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* ```typescript
|
|
9
|
-
* import { usePDWRAG } from 'personal-data-wallet-sdk/hooks';
|
|
10
|
-
* import { useCurrentAccount } from '@mysten/dapp-kit';
|
|
11
|
-
* import { ChatGoogleGenerativeAI } from '@langchain/google-genai';
|
|
12
|
-
*
|
|
13
|
-
* function MyRAGApp() {
|
|
14
|
-
* const account = useCurrentAccount();
|
|
15
|
-
* const llm = new ChatGoogleGenerativeAI({ apiKey: geminiApiKey });
|
|
16
|
-
*
|
|
17
|
-
* const { query, isProcessing, answer, sources, error } = usePDWRAG({
|
|
18
|
-
* userAddress: account?.address,
|
|
19
|
-
* packageId: '0x...',
|
|
20
|
-
* geminiApiKey: process.env.NEXT_PUBLIC_GEMINI_API_KEY!,
|
|
21
|
-
* llm,
|
|
22
|
-
* });
|
|
23
|
-
*
|
|
24
|
-
* const handleAsk = () => {
|
|
25
|
-
* query('What did I do last week?');
|
|
26
|
-
* };
|
|
27
|
-
*
|
|
28
|
-
* return (
|
|
29
|
-
* <div>
|
|
30
|
-
* <button onClick={handleAsk} disabled={isProcessing}>
|
|
31
|
-
* Ask AI
|
|
32
|
-
* </button>
|
|
33
|
-
* {answer && <p>{answer}</p>}
|
|
34
|
-
* </div>
|
|
35
|
-
* );
|
|
36
|
-
* }
|
|
37
|
-
* ```
|
|
38
|
-
*/
|
|
39
|
-
import { useState, useCallback } from 'react';
|
|
40
|
-
import { usePDWVectorStore } from './usePDWVectorStore.js';
|
|
41
|
-
import { createPDWRAG, createPDWRAGWithSources } from '../langchain/createPDWRAG.js';
|
|
42
|
-
/**
|
|
43
|
-
* React hook for RAG with PDWVectorStore
|
|
44
|
-
*
|
|
45
|
-
* Combines vector store initialization with RAG chain creation
|
|
46
|
-
* and provides a simple query interface.
|
|
47
|
-
*/
|
|
48
|
-
export function usePDWRAG(options) {
|
|
49
|
-
const { llm, systemPrompt, k = 5, minSimilarity = 0.5, returnSourceDocuments = false, filter, ...vectorStoreOptions } = options;
|
|
50
|
-
// Initialize vector store
|
|
51
|
-
const { vectorStore, isReady: vectorStoreReady, error: vectorStoreError } = usePDWVectorStore(vectorStoreOptions);
|
|
52
|
-
// Query state
|
|
53
|
-
const [isProcessing, setIsProcessing] = useState(false);
|
|
54
|
-
const [answer, setAnswer] = useState(null);
|
|
55
|
-
const [sources, setSources] = useState(null);
|
|
56
|
-
const [error, setError] = useState(vectorStoreError);
|
|
57
|
-
// Query function
|
|
58
|
-
const query = useCallback(async (question) => {
|
|
59
|
-
if (!vectorStore || !vectorStoreReady) {
|
|
60
|
-
setError(new Error('Vector store not ready'));
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
setIsProcessing(true);
|
|
64
|
-
setError(null);
|
|
65
|
-
try {
|
|
66
|
-
const ragConfig = {
|
|
67
|
-
vectorStore,
|
|
68
|
-
llm,
|
|
69
|
-
systemPrompt,
|
|
70
|
-
k,
|
|
71
|
-
minSimilarity,
|
|
72
|
-
filter,
|
|
73
|
-
};
|
|
74
|
-
if (returnSourceDocuments) {
|
|
75
|
-
// Use RAG with sources
|
|
76
|
-
const chain = await createPDWRAGWithSources(ragConfig);
|
|
77
|
-
const result = await chain.invoke({ question });
|
|
78
|
-
if (typeof result === 'object' && 'answer' in result) {
|
|
79
|
-
setAnswer(result.answer);
|
|
80
|
-
setSources(result.sourceDocuments || null);
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
setAnswer(String(result));
|
|
84
|
-
setSources(null);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
// Use regular RAG
|
|
89
|
-
const chain = await createPDWRAG(ragConfig);
|
|
90
|
-
const result = await chain.invoke({ question });
|
|
91
|
-
setAnswer(String(result));
|
|
92
|
-
setSources(null);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
catch (err) {
|
|
96
|
-
const errorObj = err instanceof Error ? err : new Error(String(err));
|
|
97
|
-
setError(errorObj);
|
|
98
|
-
setAnswer(null);
|
|
99
|
-
setSources(null);
|
|
100
|
-
}
|
|
101
|
-
finally {
|
|
102
|
-
setIsProcessing(false);
|
|
103
|
-
}
|
|
104
|
-
}, [vectorStore, vectorStoreReady, llm, systemPrompt, k, minSimilarity, returnSourceDocuments, filter]);
|
|
105
|
-
// Clear function
|
|
106
|
-
const clear = useCallback(() => {
|
|
107
|
-
setAnswer(null);
|
|
108
|
-
setSources(null);
|
|
109
|
-
setError(null);
|
|
110
|
-
}, []);
|
|
111
|
-
return {
|
|
112
|
-
query,
|
|
113
|
-
isProcessing,
|
|
114
|
-
answer,
|
|
115
|
-
sources,
|
|
116
|
-
error: error || vectorStoreError,
|
|
117
|
-
isReady: vectorStoreReady && !isProcessing,
|
|
118
|
-
clear,
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
//# sourceMappingURL=usePDWRAG.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usePDWRAG.js","sourceRoot":"","sources":["../../src/hooks.wip/usePDWRAG.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAG9C,OAAO,EAAE,iBAAiB,EAAiC,MAAM,qBAAqB,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AA+ElF;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,OAAyB;IACjD,MAAM,EACJ,GAAG,EACH,YAAY,EACZ,CAAC,GAAG,CAAC,EACL,aAAa,GAAG,GAAG,EACnB,qBAAqB,GAAG,KAAK,EAC7B,MAAM,EACN,GAAG,kBAAkB,EACtB,GAAG,OAAO,CAAC;IAEZ,0BAA0B;IAC1B,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,gBAAgB,EAAE,GACvE,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IAExC,cAAc;IACd,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC1D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAC3D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,gBAAgB,CAAC,CAAC;IAEnE,iBAAiB;IACjB,MAAM,KAAK,GAAG,WAAW,CACvB,KAAK,EAAE,QAAgB,EAAE,EAAE;QACzB,IAAI,CAAC,WAAW,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtC,QAAQ,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEf,IAAI,CAAC;YACH,MAAM,SAAS,GAAiB;gBAC9B,WAAW;gBACX,GAAG;gBACH,YAAY;gBACZ,CAAC;gBACD,aAAa;gBACb,MAAM;aACP,CAAC;YAEF,IAAI,qBAAqB,EAAE,CAAC;gBAC1B,uBAAuB;gBACvB,MAAM,KAAK,GAAG,MAAM,uBAAuB,CAAC,SAAS,CAAC,CAAC;gBACvD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAEhD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;oBACrD,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBACzB,UAAU,CAAC,MAAM,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC;gBAC7C,CAAC;qBAAM,CAAC;oBACN,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;oBAC1B,UAAU,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,kBAAkB;gBAClB,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC;gBAC5C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAChD,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC1B,UAAU,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACrE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACnB,SAAS,CAAC,IAAI,CAAC,CAAC;YAChB,UAAU,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;gBAAS,CAAC;YACT,eAAe,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,EACD,CAAC,WAAW,EAAE,gBAAgB,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,CAAC,CACpG,CAAC;IAEF,iBAAiB;IACjB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC7B,SAAS,CAAC,IAAI,CAAC,CAAC;QAChB,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,KAAK;QACL,YAAY;QACZ,MAAM;QACN,OAAO;QACP,KAAK,EAAE,KAAK,IAAI,gBAAgB;QAChC,OAAO,EAAE,gBAAgB,IAAI,CAAC,YAAY;QAC1C,KAAK;KACN,CAAC;AACJ,CAAC"}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* usePDWVectorStore - React Hook for PDWVectorStore
|
|
3
|
-
*
|
|
4
|
-
* Convenience hook for initializing and managing PDWVectorStore in React applications.
|
|
5
|
-
* Handles initialization, lifecycle, and provides easy access to the vector store.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* ```typescript
|
|
9
|
-
* import { usePDWVectorStore } from 'personal-data-wallet-sdk/hooks';
|
|
10
|
-
* import { useCurrentAccount } from '@mysten/dapp-kit';
|
|
11
|
-
*
|
|
12
|
-
* function MyComponent() {
|
|
13
|
-
* const account = useCurrentAccount();
|
|
14
|
-
*
|
|
15
|
-
* const { vectorStore, isReady, error } = usePDWVectorStore({
|
|
16
|
-
* userAddress: account?.address,
|
|
17
|
-
* packageId: '0x...',
|
|
18
|
-
* walrusAggregator: 'https://...',
|
|
19
|
-
* geminiApiKey: process.env.NEXT_PUBLIC_GEMINI_API_KEY!
|
|
20
|
-
* });
|
|
21
|
-
*
|
|
22
|
-
* if (!isReady) return <div>Initializing...</div>;
|
|
23
|
-
* if (error) return <div>Error: {error.message}</div>;
|
|
24
|
-
*
|
|
25
|
-
* // Use vectorStore...
|
|
26
|
-
* }
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
import { PDWEmbeddings } from '../langchain/PDWEmbeddings';
|
|
30
|
-
import { PDWVectorStore } from '../langchain/PDWVectorStore';
|
|
31
|
-
import type { PDWVectorStoreConfig } from '../langchain/PDWVectorStore';
|
|
32
|
-
export interface UsePDWVectorStoreOptions extends PDWVectorStoreConfig {
|
|
33
|
-
/**
|
|
34
|
-
* Whether to initialize immediately
|
|
35
|
-
* @default true
|
|
36
|
-
*/
|
|
37
|
-
enabled?: boolean;
|
|
38
|
-
}
|
|
39
|
-
export interface UsePDWVectorStoreReturn {
|
|
40
|
-
/**
|
|
41
|
-
* Initialized PDWVectorStore instance
|
|
42
|
-
*/
|
|
43
|
-
vectorStore: PDWVectorStore | null;
|
|
44
|
-
/**
|
|
45
|
-
* PDWEmbeddings instance
|
|
46
|
-
*/
|
|
47
|
-
embeddings: PDWEmbeddings | null;
|
|
48
|
-
/**
|
|
49
|
-
* Whether the vector store is ready to use
|
|
50
|
-
*/
|
|
51
|
-
isReady: boolean;
|
|
52
|
-
/**
|
|
53
|
-
* Initialization error if any
|
|
54
|
-
*/
|
|
55
|
-
error: Error | null;
|
|
56
|
-
/**
|
|
57
|
-
* Manually reinitialize the vector store
|
|
58
|
-
*/
|
|
59
|
-
reinitialize: () => void;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* React hook for managing PDWVectorStore
|
|
63
|
-
*
|
|
64
|
-
* Automatically initializes PDWEmbeddings and PDWVectorStore,
|
|
65
|
-
* handles lifecycle, and provides ready state.
|
|
66
|
-
*/
|
|
67
|
-
export declare function usePDWVectorStore(options: UsePDWVectorStoreOptions): UsePDWVectorStoreReturn;
|
|
68
|
-
//# sourceMappingURL=usePDWVectorStore.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usePDWVectorStore.d.ts","sourceRoot":"","sources":["../../src/hooks.wip/usePDWVectorStore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAExE,MAAM,WAAW,wBAAyB,SAAQ,oBAAoB;IACpE;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,WAAW,EAAE,cAAc,GAAG,IAAI,CAAC;IAEnC;;OAEG;IACH,UAAU,EAAE,aAAa,GAAG,IAAI,CAAC;IAEjC;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB;;OAEG;IACH,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,wBAAwB,GAChC,uBAAuB,CA+EzB"}
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* usePDWVectorStore - React Hook for PDWVectorStore
|
|
3
|
-
*
|
|
4
|
-
* Convenience hook for initializing and managing PDWVectorStore in React applications.
|
|
5
|
-
* Handles initialization, lifecycle, and provides easy access to the vector store.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* ```typescript
|
|
9
|
-
* import { usePDWVectorStore } from 'personal-data-wallet-sdk/hooks';
|
|
10
|
-
* import { useCurrentAccount } from '@mysten/dapp-kit';
|
|
11
|
-
*
|
|
12
|
-
* function MyComponent() {
|
|
13
|
-
* const account = useCurrentAccount();
|
|
14
|
-
*
|
|
15
|
-
* const { vectorStore, isReady, error } = usePDWVectorStore({
|
|
16
|
-
* userAddress: account?.address,
|
|
17
|
-
* packageId: '0x...',
|
|
18
|
-
* walrusAggregator: 'https://...',
|
|
19
|
-
* geminiApiKey: process.env.NEXT_PUBLIC_GEMINI_API_KEY!
|
|
20
|
-
* });
|
|
21
|
-
*
|
|
22
|
-
* if (!isReady) return <div>Initializing...</div>;
|
|
23
|
-
* if (error) return <div>Error: {error.message}</div>;
|
|
24
|
-
*
|
|
25
|
-
* // Use vectorStore...
|
|
26
|
-
* }
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
import { useState, useEffect, useMemo } from 'react';
|
|
30
|
-
import { PDWEmbeddings } from '../langchain/PDWEmbeddings.js';
|
|
31
|
-
import { PDWVectorStore } from '../langchain/PDWVectorStore.js';
|
|
32
|
-
/**
|
|
33
|
-
* React hook for managing PDWVectorStore
|
|
34
|
-
*
|
|
35
|
-
* Automatically initializes PDWEmbeddings and PDWVectorStore,
|
|
36
|
-
* handles lifecycle, and provides ready state.
|
|
37
|
-
*/
|
|
38
|
-
export function usePDWVectorStore(options) {
|
|
39
|
-
const { enabled = true, ...config } = options;
|
|
40
|
-
const [vectorStore, setVectorStore] = useState(null);
|
|
41
|
-
const [embeddings, setEmbeddings] = useState(null);
|
|
42
|
-
const [isReady, setIsReady] = useState(false);
|
|
43
|
-
const [error, setError] = useState(null);
|
|
44
|
-
const [initTrigger, setInitTrigger] = useState(0);
|
|
45
|
-
// Memoize config to avoid recreating on every render
|
|
46
|
-
const stableConfig = useMemo(() => config, [
|
|
47
|
-
config.userAddress,
|
|
48
|
-
config.packageId,
|
|
49
|
-
config.geminiApiKey,
|
|
50
|
-
config.walrusAggregator,
|
|
51
|
-
// Add other config dependencies as needed
|
|
52
|
-
]);
|
|
53
|
-
useEffect(() => {
|
|
54
|
-
if (!enabled || !stableConfig.userAddress || !stableConfig.geminiApiKey) {
|
|
55
|
-
setIsReady(false);
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
let cancelled = false;
|
|
59
|
-
const initialize = async () => {
|
|
60
|
-
try {
|
|
61
|
-
setError(null);
|
|
62
|
-
setIsReady(false);
|
|
63
|
-
// Initialize embeddings
|
|
64
|
-
const embeddingsInstance = new PDWEmbeddings({
|
|
65
|
-
geminiApiKey: stableConfig.geminiApiKey,
|
|
66
|
-
model: stableConfig.embeddingModel,
|
|
67
|
-
dimensions: stableConfig.embeddingDimensions,
|
|
68
|
-
});
|
|
69
|
-
if (cancelled)
|
|
70
|
-
return;
|
|
71
|
-
// Initialize vector store
|
|
72
|
-
const vectorStoreInstance = new PDWVectorStore(embeddingsInstance, stableConfig);
|
|
73
|
-
if (cancelled)
|
|
74
|
-
return;
|
|
75
|
-
setEmbeddings(embeddingsInstance);
|
|
76
|
-
setVectorStore(vectorStoreInstance);
|
|
77
|
-
setIsReady(true);
|
|
78
|
-
}
|
|
79
|
-
catch (err) {
|
|
80
|
-
if (cancelled)
|
|
81
|
-
return;
|
|
82
|
-
setError(err instanceof Error ? err : new Error(String(err)));
|
|
83
|
-
setIsReady(false);
|
|
84
|
-
}
|
|
85
|
-
};
|
|
86
|
-
initialize();
|
|
87
|
-
return () => {
|
|
88
|
-
cancelled = true;
|
|
89
|
-
};
|
|
90
|
-
}, [enabled, stableConfig, initTrigger]);
|
|
91
|
-
const reinitialize = () => {
|
|
92
|
-
setInitTrigger(prev => prev + 1);
|
|
93
|
-
};
|
|
94
|
-
return {
|
|
95
|
-
vectorStore,
|
|
96
|
-
embeddings,
|
|
97
|
-
isReady,
|
|
98
|
-
error,
|
|
99
|
-
reinitialize,
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
//# sourceMappingURL=usePDWVectorStore.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usePDWVectorStore.js","sourceRoot":"","sources":["../../src/hooks.wip/usePDWVectorStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* useRetrieveEmbedding - Hook for retrieving stored vector embeddings
|
|
3
|
-
*
|
|
4
|
-
* Fetches embedding data from Walrus storage with automatic:
|
|
5
|
-
* - Walrus blob retrieval
|
|
6
|
-
* - JSON parsing
|
|
7
|
-
* - Caching with React Query
|
|
8
|
-
* - Loading and error states
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* ```tsx
|
|
12
|
-
* import { useRetrieveEmbedding } from 'personal-data-wallet-sdk/hooks';
|
|
13
|
-
*
|
|
14
|
-
* function EmbeddingViewer({ blobId }: { blobId: string }) {
|
|
15
|
-
* const { data, isLoading, error, refetch } = useRetrieveEmbedding(blobId, {
|
|
16
|
-
* enabled: !!blobId // Only fetch when blobId is available
|
|
17
|
-
* });
|
|
18
|
-
*
|
|
19
|
-
* if (isLoading) return <div>Loading embedding...</div>;
|
|
20
|
-
* if (error) return <div>Error: {error.message}</div>;
|
|
21
|
-
* if (!data) return null;
|
|
22
|
-
*
|
|
23
|
-
* return (
|
|
24
|
-
* <div>
|
|
25
|
-
* <p>Dimension: {data.dimension}</p>
|
|
26
|
-
* <p>Model: {data.model}</p>
|
|
27
|
-
* <p>Vector length: {data.vector.length}</p>
|
|
28
|
-
* <button onClick={() => refetch()}>Refresh</button>
|
|
29
|
-
* </div>
|
|
30
|
-
* );
|
|
31
|
-
* }
|
|
32
|
-
* ```
|
|
33
|
-
*/
|
|
34
|
-
export interface RetrievedEmbedding {
|
|
35
|
-
/**
|
|
36
|
-
* The vector embedding (768 dimensions)
|
|
37
|
-
*/
|
|
38
|
-
vector: number[];
|
|
39
|
-
/**
|
|
40
|
-
* Embedding dimension
|
|
41
|
-
*/
|
|
42
|
-
dimension: number;
|
|
43
|
-
/**
|
|
44
|
-
* Model used for embedding generation
|
|
45
|
-
*/
|
|
46
|
-
model: string;
|
|
47
|
-
/**
|
|
48
|
-
* Preview of the original content (first 200 chars)
|
|
49
|
-
*/
|
|
50
|
-
contentPreview: string;
|
|
51
|
-
/**
|
|
52
|
-
* Original content length
|
|
53
|
-
*/
|
|
54
|
-
contentLength: number;
|
|
55
|
-
/**
|
|
56
|
-
* Type of embedding
|
|
57
|
-
*/
|
|
58
|
-
embeddingType: 'document' | 'query' | 'metadata';
|
|
59
|
-
/**
|
|
60
|
-
* Additional metadata stored with the embedding
|
|
61
|
-
*/
|
|
62
|
-
metadata: Record<string, any>;
|
|
63
|
-
/**
|
|
64
|
-
* Timestamp when embedding was created
|
|
65
|
-
*/
|
|
66
|
-
timestamp: number;
|
|
67
|
-
}
|
|
68
|
-
export interface UseRetrieveEmbeddingOptions {
|
|
69
|
-
/**
|
|
70
|
-
* PDW package ID for StorageService
|
|
71
|
-
*/
|
|
72
|
-
packageId?: string;
|
|
73
|
-
/**
|
|
74
|
-
* Sui RPC URL for StorageService
|
|
75
|
-
*/
|
|
76
|
-
suiRpcUrl?: string;
|
|
77
|
-
/**
|
|
78
|
-
* Walrus network ('mainnet' | 'testnet')
|
|
79
|
-
*/
|
|
80
|
-
network?: 'mainnet' | 'testnet';
|
|
81
|
-
/**
|
|
82
|
-
* Whether to fetch immediately (default: true)
|
|
83
|
-
*/
|
|
84
|
-
enabled?: boolean;
|
|
85
|
-
/**
|
|
86
|
-
* Stale time in milliseconds (default: 5 minutes)
|
|
87
|
-
* How long before cached data is considered stale
|
|
88
|
-
*/
|
|
89
|
-
staleTime?: number;
|
|
90
|
-
/**
|
|
91
|
-
* Cache time in milliseconds (default: 10 minutes)
|
|
92
|
-
* How long to keep cached data before garbage collection
|
|
93
|
-
*/
|
|
94
|
-
cacheTime?: number;
|
|
95
|
-
/**
|
|
96
|
-
* Callback when data is successfully fetched
|
|
97
|
-
*/
|
|
98
|
-
onSuccess?: (data: RetrievedEmbedding) => void;
|
|
99
|
-
/**
|
|
100
|
-
* Callback when an error occurs
|
|
101
|
-
*/
|
|
102
|
-
onError?: (error: Error) => void;
|
|
103
|
-
}
|
|
104
|
-
export interface UseRetrieveEmbeddingReturn {
|
|
105
|
-
/**
|
|
106
|
-
* Retrieved embedding data
|
|
107
|
-
*/
|
|
108
|
-
data?: RetrievedEmbedding;
|
|
109
|
-
/**
|
|
110
|
-
* Whether the query is loading
|
|
111
|
-
*/
|
|
112
|
-
isLoading: boolean;
|
|
113
|
-
/**
|
|
114
|
-
* Whether the query is fetching (including background refetch)
|
|
115
|
-
*/
|
|
116
|
-
isFetching: boolean;
|
|
117
|
-
/**
|
|
118
|
-
* Whether the query succeeded
|
|
119
|
-
*/
|
|
120
|
-
isSuccess: boolean;
|
|
121
|
-
/**
|
|
122
|
-
* Whether the query failed
|
|
123
|
-
*/
|
|
124
|
-
isError: boolean;
|
|
125
|
-
/**
|
|
126
|
-
* Error if query failed
|
|
127
|
-
*/
|
|
128
|
-
error: Error | null;
|
|
129
|
-
/**
|
|
130
|
-
* Manually refetch the embedding
|
|
131
|
-
*/
|
|
132
|
-
refetch: () => Promise<any>;
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Hook for retrieving vector embeddings from Walrus
|
|
136
|
-
*/
|
|
137
|
-
export declare function useRetrieveEmbedding(blobId: string | undefined, options?: UseRetrieveEmbeddingOptions): UseRetrieveEmbeddingReturn;
|
|
138
|
-
//# sourceMappingURL=useRetrieveEmbedding.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useRetrieveEmbedding.d.ts","sourceRoot":"","sources":["../../src/hooks.wip/useRetrieveEmbedding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAMH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,aAAa,EAAE,UAAU,GAAG,OAAO,GAAG,UAAU,CAAC;IACjD;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,2BAA2B;IAC1C;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC/C;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB;;OAEG;IACH,OAAO,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;CAC7B;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,OAAO,GAAE,2BAAgC,GACxC,0BAA0B,CAkG5B"}
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* useRetrieveEmbedding - Hook for retrieving stored vector embeddings
|
|
3
|
-
*
|
|
4
|
-
* Fetches embedding data from Walrus storage with automatic:
|
|
5
|
-
* - Walrus blob retrieval
|
|
6
|
-
* - JSON parsing
|
|
7
|
-
* - Caching with React Query
|
|
8
|
-
* - Loading and error states
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* ```tsx
|
|
12
|
-
* import { useRetrieveEmbedding } from 'personal-data-wallet-sdk/hooks';
|
|
13
|
-
*
|
|
14
|
-
* function EmbeddingViewer({ blobId }: { blobId: string }) {
|
|
15
|
-
* const { data, isLoading, error, refetch } = useRetrieveEmbedding(blobId, {
|
|
16
|
-
* enabled: !!blobId // Only fetch when blobId is available
|
|
17
|
-
* });
|
|
18
|
-
*
|
|
19
|
-
* if (isLoading) return <div>Loading embedding...</div>;
|
|
20
|
-
* if (error) return <div>Error: {error.message}</div>;
|
|
21
|
-
* if (!data) return null;
|
|
22
|
-
*
|
|
23
|
-
* return (
|
|
24
|
-
* <div>
|
|
25
|
-
* <p>Dimension: {data.dimension}</p>
|
|
26
|
-
* <p>Model: {data.model}</p>
|
|
27
|
-
* <p>Vector length: {data.vector.length}</p>
|
|
28
|
-
* <button onClick={() => refetch()}>Refresh</button>
|
|
29
|
-
* </div>
|
|
30
|
-
* );
|
|
31
|
-
* }
|
|
32
|
-
* ```
|
|
33
|
-
*/
|
|
34
|
-
import { useQuery } from '@tanstack/react-query';
|
|
35
|
-
import { StorageService } from '../services/StorageService.js';
|
|
36
|
-
import { SuiClient } from '@mysten/sui/client';
|
|
37
|
-
/**
|
|
38
|
-
* Hook for retrieving vector embeddings from Walrus
|
|
39
|
-
*/
|
|
40
|
-
export function useRetrieveEmbedding(blobId, options = {}) {
|
|
41
|
-
const packageId = options.packageId || process.env.NEXT_PUBLIC_PACKAGE_ID;
|
|
42
|
-
const suiRpcUrl = options.suiRpcUrl ||
|
|
43
|
-
process.env.NEXT_PUBLIC_SUI_RPC_URL ||
|
|
44
|
-
'https://fullnode.testnet.sui.io:443';
|
|
45
|
-
const network = options.network || 'testnet';
|
|
46
|
-
const query = useQuery({
|
|
47
|
-
queryKey: ['embedding', blobId],
|
|
48
|
-
queryFn: async () => {
|
|
49
|
-
if (!blobId) {
|
|
50
|
-
throw new Error('Blob ID is required');
|
|
51
|
-
}
|
|
52
|
-
if (!packageId) {
|
|
53
|
-
throw new Error('Package ID is required. Provide via options.packageId or NEXT_PUBLIC_PACKAGE_ID env variable');
|
|
54
|
-
}
|
|
55
|
-
console.log('🔍 Retrieving embedding from Walrus:', blobId);
|
|
56
|
-
// Initialize StorageService
|
|
57
|
-
const suiClient = new SuiClient({ url: suiRpcUrl });
|
|
58
|
-
const storageService = new StorageService({
|
|
59
|
-
packageId,
|
|
60
|
-
suiClient,
|
|
61
|
-
network
|
|
62
|
-
});
|
|
63
|
-
// Fetch blob from Walrus
|
|
64
|
-
const startTime = Date.now();
|
|
65
|
-
const data = await storageService.getBlob(blobId);
|
|
66
|
-
const fetchTime = Date.now() - startTime;
|
|
67
|
-
console.log('✅ Blob fetched:', {
|
|
68
|
-
blobId,
|
|
69
|
-
size: data.byteLength,
|
|
70
|
-
time: fetchTime + 'ms'
|
|
71
|
-
});
|
|
72
|
-
// Parse JSON data
|
|
73
|
-
const text = new TextDecoder().decode(data);
|
|
74
|
-
const parsed = JSON.parse(text);
|
|
75
|
-
// Validate structure
|
|
76
|
-
if (!parsed.vector || !Array.isArray(parsed.vector)) {
|
|
77
|
-
throw new Error('Invalid embedding data: missing or invalid vector');
|
|
78
|
-
}
|
|
79
|
-
if (!parsed.dimension || typeof parsed.dimension !== 'number') {
|
|
80
|
-
throw new Error('Invalid embedding data: missing or invalid dimension');
|
|
81
|
-
}
|
|
82
|
-
console.log('✅ Embedding parsed:', {
|
|
83
|
-
dimension: parsed.dimension,
|
|
84
|
-
model: parsed.model,
|
|
85
|
-
type: parsed.embeddingType
|
|
86
|
-
});
|
|
87
|
-
return {
|
|
88
|
-
vector: parsed.vector,
|
|
89
|
-
dimension: parsed.dimension,
|
|
90
|
-
model: parsed.model || 'unknown',
|
|
91
|
-
contentPreview: parsed.contentPreview || '',
|
|
92
|
-
contentLength: parsed.contentLength || 0,
|
|
93
|
-
embeddingType: parsed.embeddingType || 'document',
|
|
94
|
-
metadata: parsed.metadata || {},
|
|
95
|
-
timestamp: parsed.timestamp || 0
|
|
96
|
-
};
|
|
97
|
-
},
|
|
98
|
-
enabled: options.enabled !== false && !!blobId,
|
|
99
|
-
staleTime: options.staleTime ?? 5 * 60 * 1000, // 5 minutes
|
|
100
|
-
gcTime: options.cacheTime ?? 10 * 60 * 1000, // 10 minutes
|
|
101
|
-
retry: 2,
|
|
102
|
-
retryDelay: (attemptIndex) => Math.min(1000 * 2 ** attemptIndex, 5000),
|
|
103
|
-
});
|
|
104
|
-
// Call callbacks
|
|
105
|
-
if (query.isSuccess && query.data && options.onSuccess) {
|
|
106
|
-
options.onSuccess(query.data);
|
|
107
|
-
}
|
|
108
|
-
if (query.isError && query.error && options.onError) {
|
|
109
|
-
options.onError(query.error);
|
|
110
|
-
}
|
|
111
|
-
return {
|
|
112
|
-
data: query.data,
|
|
113
|
-
isLoading: query.isLoading,
|
|
114
|
-
isFetching: query.isFetching,
|
|
115
|
-
isSuccess: query.isSuccess,
|
|
116
|
-
isError: query.isError,
|
|
117
|
-
error: query.error,
|
|
118
|
-
refetch: query.refetch
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
//# sourceMappingURL=useRetrieveEmbedding.js.map
|