@unif/react-native-chat-sdk 0.4.2 → 0.5.4
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/lib/commonjs/hooks/ChatProvider.js +6 -5
- package/lib/commonjs/hooks/ChatProvider.js.map +1 -1
- package/lib/commonjs/hooks/useXChat.js +3 -11
- package/lib/commonjs/hooks/useXChat.js.map +1 -1
- package/lib/commonjs/hooks/useXConversations.js +24 -4
- package/lib/commonjs/hooks/useXConversations.js.map +1 -1
- package/lib/commonjs/index.js +19 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/stores/chatStore.js +19 -0
- package/lib/commonjs/stores/chatStore.js.map +1 -1
- package/lib/commonjs/stores/historyStore.js +26 -0
- package/lib/commonjs/stores/historyStore.js.map +1 -1
- package/lib/module/hooks/ChatProvider.js +6 -5
- package/lib/module/hooks/ChatProvider.js.map +1 -1
- package/lib/module/hooks/useXChat.js +5 -13
- package/lib/module/hooks/useXChat.js.map +1 -1
- package/lib/module/hooks/useXConversations.js +24 -4
- package/lib/module/hooks/useXConversations.js.map +1 -1
- package/lib/module/index.js +2 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/stores/chatStore.js +16 -0
- package/lib/module/stores/chatStore.js.map +1 -1
- package/lib/module/stores/historyStore.js +26 -0
- package/lib/module/stores/historyStore.js.map +1 -1
- package/lib/typescript/commonjs/hooks/ChatProvider.d.ts +3 -2
- package/lib/typescript/commonjs/hooks/ChatProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/hooks/useXChat.d.ts +1 -2
- package/lib/typescript/commonjs/hooks/useXChat.d.ts.map +1 -1
- package/lib/typescript/commonjs/hooks/useXConversations.d.ts +3 -0
- package/lib/typescript/commonjs/hooks/useXConversations.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +1 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/stores/chatStore.d.ts +3 -0
- package/lib/typescript/commonjs/stores/chatStore.d.ts.map +1 -1
- package/lib/typescript/commonjs/stores/historyStore.d.ts +1 -0
- package/lib/typescript/commonjs/stores/historyStore.d.ts.map +1 -1
- package/lib/typescript/module/hooks/ChatProvider.d.ts +3 -2
- package/lib/typescript/module/hooks/ChatProvider.d.ts.map +1 -1
- package/lib/typescript/module/hooks/useXChat.d.ts +1 -2
- package/lib/typescript/module/hooks/useXChat.d.ts.map +1 -1
- package/lib/typescript/module/hooks/useXConversations.d.ts +3 -0
- package/lib/typescript/module/hooks/useXConversations.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +1 -0
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/stores/chatStore.d.ts +3 -0
- package/lib/typescript/module/stores/chatStore.d.ts.map +1 -1
- package/lib/typescript/module/stores/historyStore.d.ts +1 -0
- package/lib/typescript/module/stores/historyStore.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/hooks/ChatProvider.tsx +21 -9
- package/src/hooks/useXChat.ts +8 -20
- package/src/hooks/useXConversations.ts +33 -4
- package/src/index.ts +5 -0
- package/src/stores/chatStore.ts +20 -0
- package/src/stores/historyStore.ts +41 -0
|
@@ -41,17 +41,18 @@ function ChatProvider(props) {
|
|
|
41
41
|
requestFallback,
|
|
42
42
|
children
|
|
43
43
|
} = props;
|
|
44
|
+
const convOptions = (0, _react.useMemo)(() => ({
|
|
45
|
+
storage: storage ?? memoryStorage
|
|
46
|
+
}), [storage]);
|
|
47
|
+
const conversations = (0, _useXConversations.useXConversations)(convOptions);
|
|
44
48
|
const chatConfig = (0, _react.useMemo)(() => ({
|
|
49
|
+
conversationKey: conversations.activeId,
|
|
45
50
|
provider,
|
|
46
51
|
generateId,
|
|
47
52
|
requestPlaceholder,
|
|
48
53
|
requestFallback
|
|
49
|
-
}), [provider, generateId, requestPlaceholder, requestFallback]);
|
|
54
|
+
}), [conversations.activeId, provider, generateId, requestPlaceholder, requestFallback]);
|
|
50
55
|
const chat = (0, _useXChat.useXChat)(chatConfig);
|
|
51
|
-
const convOptions = (0, _react.useMemo)(() => ({
|
|
52
|
-
storage: storage ?? memoryStorage
|
|
53
|
-
}), [storage]);
|
|
54
|
-
const conversations = (0, _useXConversations.useXConversations)(convOptions);
|
|
55
56
|
const model = (0, _useXModel.useXModel)({
|
|
56
57
|
models,
|
|
57
58
|
defaultModel
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_useXChat","_useXConversations","_useXModel","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ChatContext","createContext","memoryStorage","_data","Map","getItem","key","setItem","value","removeItem","delete","ChatProvider","props","provider","storage","models","defaultModel","generateId","requestPlaceholder","requestFallback","children","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_useXChat","_useXConversations","_useXModel","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ChatContext","createContext","memoryStorage","_data","Map","getItem","key","setItem","value","removeItem","delete","ChatProvider","props","provider","storage","models","defaultModel","generateId","requestPlaceholder","requestFallback","children","convOptions","useMemo","conversations","useXConversations","chatConfig","conversationKey","activeId","chat","useXChat","model","useXModel","jsx","Provider","useChatContext","ctx","useContext","Error"],"sourceRoot":"../../../src","sources":["hooks/ChatProvider.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,10 +14,10 @@ var _chatStore = require("../stores/chatStore");
|
|
|
14
14
|
|
|
15
15
|
function useXChat(config) {
|
|
16
16
|
const {
|
|
17
|
-
provider
|
|
17
|
+
provider,
|
|
18
|
+
conversationKey
|
|
18
19
|
} = config;
|
|
19
|
-
const
|
|
20
|
-
const store = storeRef.current;
|
|
20
|
+
const store = (0, _react.useMemo)(() => (0, _chatStore.getOrCreateChatStore)(conversationKey), [conversationKey]);
|
|
21
21
|
|
|
22
22
|
// 使用 useSyncExternalStore 订阅 zustand store 变化
|
|
23
23
|
const state = (0, _react.useSyncExternalStore)(store.subscribe, store.getState, store.getState);
|
|
@@ -90,12 +90,6 @@ function useXChat(config) {
|
|
|
90
90
|
}
|
|
91
91
|
store.getState().setRequesting(false);
|
|
92
92
|
}, [provider, store]);
|
|
93
|
-
const resetChat = (0, _react.useCallback)(() => {
|
|
94
|
-
store.getState().resetChat();
|
|
95
|
-
}, [store]);
|
|
96
|
-
const loadSession = (0, _react.useCallback)(messages => {
|
|
97
|
-
store.getState().loadSession(messages);
|
|
98
|
-
}, [store]);
|
|
99
93
|
const clearError = (0, _react.useCallback)(() => {
|
|
100
94
|
store.getState().setError(null);
|
|
101
95
|
}, [store]);
|
|
@@ -192,8 +186,6 @@ function useXChat(config) {
|
|
|
192
186
|
onRequest,
|
|
193
187
|
onReload,
|
|
194
188
|
abort,
|
|
195
|
-
resetChat,
|
|
196
|
-
loadSession,
|
|
197
189
|
clearError,
|
|
198
190
|
setMessages,
|
|
199
191
|
setMessage,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_chatStore","useXChat","config","provider","
|
|
1
|
+
{"version":3,"names":["_react","require","_chatStore","useXChat","config","provider","conversationKey","store","useMemo","getOrCreateChatStore","state","useSyncExternalStore","subscribe","getState","onRequest","useCallback","input","s","isRequesting","setRequesting","setError","setSuggestions","localMessage","transformLocalMessage","localChatMessage","addMessage","loadingMessageId","id","loadingMessage","text","role","createdAt","Date","messageType","status","turnId","loadingRemoved","removeLoading","removeMessage","sendMessage","onUpdate","message","upsertMessage","onSuccess","m","onError","error","requestFallback","fallbackMsg","onSuggestion","items","abort","msgs","messages","loadingMsg","find","clearError","onReload","targetIdx","findIndex","setMessages","messagesOrFn","current","currentInfos","map","extra","next","info","setMessage","partialOrFn","partial","updated","undefined","Object","assign","useEffect","requesting","suggestions"],"sourceRoot":"../../../src","sources":["hooks/useXChat.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.useXConversations = useXConversations;
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _historyStore = require("../stores/historyStore");
|
|
9
|
+
var _chatStore = require("../stores/chatStore");
|
|
9
10
|
/**
|
|
10
11
|
* useXConversations — 会话管理 hook
|
|
11
12
|
*
|
|
@@ -19,7 +20,7 @@ function useXConversations(options) {
|
|
|
19
20
|
const historyRef = (0, _react.useRef)((0, _historyStore.createHistoryStore)(storage));
|
|
20
21
|
const history = historyRef.current;
|
|
21
22
|
const [sessions, setSessions] = (0, _react.useState)(history.sessions);
|
|
22
|
-
const [activeId,
|
|
23
|
+
const [activeId, setActiveIdState] = (0, _react.useState)('');
|
|
23
24
|
|
|
24
25
|
// 初始化加载
|
|
25
26
|
(0, _react.useEffect)(() => {
|
|
@@ -31,24 +32,40 @@ function useXConversations(options) {
|
|
|
31
32
|
});
|
|
32
33
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
33
34
|
}, []);
|
|
35
|
+
const setActiveId = (0, _react.useCallback)(id => {
|
|
36
|
+
setActiveIdState(id);
|
|
37
|
+
}, []);
|
|
34
38
|
const switchSession = (0, _react.useCallback)(async id => {
|
|
35
|
-
|
|
39
|
+
setActiveIdState(id);
|
|
36
40
|
return await history.loadSessionMessages(id);
|
|
37
41
|
}, [history]);
|
|
38
42
|
const newSession = (0, _react.useCallback)(() => {
|
|
39
|
-
|
|
43
|
+
setActiveIdState('');
|
|
40
44
|
}, []);
|
|
41
45
|
const deleteSession = (0, _react.useCallback)(async id => {
|
|
42
46
|
await history.deleteSession(id);
|
|
43
47
|
setSessions([...history.sessions]);
|
|
44
48
|
if (activeId === id) {
|
|
45
|
-
|
|
49
|
+
setActiveIdState('');
|
|
46
50
|
}
|
|
47
51
|
}, [history, activeId]);
|
|
48
52
|
const archiveSession = (0, _react.useCallback)(async (id, title, messages) => {
|
|
49
53
|
await history.archiveSession(id, title, messages);
|
|
50
54
|
setSessions([...history.sessions]);
|
|
51
55
|
}, [history]);
|
|
56
|
+
const saveSession = (0, _react.useCallback)(async (id, title, messages) => {
|
|
57
|
+
await history.saveSession(id, title, messages);
|
|
58
|
+
setSessions([...history.sessions]);
|
|
59
|
+
}, [history]);
|
|
60
|
+
const loadSessionMessages = (0, _react.useCallback)(async id => {
|
|
61
|
+
const msgs = await history.loadSessionMessages(id);
|
|
62
|
+
// 将消息加载到对应的内存 store
|
|
63
|
+
if (msgs.length > 0) {
|
|
64
|
+
const store = (0, _chatStore.getOrCreateChatStore)(id);
|
|
65
|
+
store.getState().loadSession(msgs);
|
|
66
|
+
}
|
|
67
|
+
return msgs;
|
|
68
|
+
}, [history]);
|
|
52
69
|
const updateSession = (0, _react.useCallback)((id, data) => {
|
|
53
70
|
const session = history.sessions.find(s => s.id === id);
|
|
54
71
|
if (session && data.title) {
|
|
@@ -59,10 +76,13 @@ function useXConversations(options) {
|
|
|
59
76
|
return {
|
|
60
77
|
sessions,
|
|
61
78
|
activeId,
|
|
79
|
+
setActiveId,
|
|
62
80
|
switchSession,
|
|
63
81
|
newSession,
|
|
64
82
|
deleteSession,
|
|
65
83
|
archiveSession,
|
|
84
|
+
saveSession,
|
|
85
|
+
loadSessionMessages,
|
|
66
86
|
updateSession
|
|
67
87
|
};
|
|
68
88
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_historyStore","useXConversations","options","storage","historyRef","useRef","createHistoryStore","history","current","sessions","setSessions","useState","activeId","
|
|
1
|
+
{"version":3,"names":["_react","require","_historyStore","_chatStore","useXConversations","options","storage","historyRef","useRef","createHistoryStore","history","current","sessions","setSessions","useState","activeId","setActiveIdState","useEffect","archiveSession","then","deleteSession","setActiveId","useCallback","id","switchSession","loadSessionMessages","newSession","title","messages","saveSession","msgs","length","store","getOrCreateChatStore","getState","loadSession","updateSession","data","session","find","s"],"sourceRoot":"../../../src","sources":["hooks/useXConversations.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -45,6 +45,24 @@ Object.defineProperty(exports, "XStream", {
|
|
|
45
45
|
return _XStream.XStream;
|
|
46
46
|
}
|
|
47
47
|
});
|
|
48
|
+
Object.defineProperty(exports, "deleteChatStore", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
get: function () {
|
|
51
|
+
return _chatStore.deleteChatStore;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
Object.defineProperty(exports, "getChatStoreMessages", {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function () {
|
|
57
|
+
return _chatStore.getChatStoreMessages;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
Object.defineProperty(exports, "getOrCreateChatStore", {
|
|
61
|
+
enumerable: true,
|
|
62
|
+
get: function () {
|
|
63
|
+
return _chatStore.getOrCreateChatStore;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
48
66
|
Object.defineProperty(exports, "useChatContext", {
|
|
49
67
|
enumerable: true,
|
|
50
68
|
get: function () {
|
|
@@ -75,6 +93,7 @@ var _SSEParser = require("./tools/SSEParser");
|
|
|
75
93
|
var _AbstractChatProvider = require("./providers/AbstractChatProvider");
|
|
76
94
|
var _OpenAIChatProvider = require("./providers/OpenAIChatProvider");
|
|
77
95
|
var _DeepSeekChatProvider = require("./providers/DeepSeekChatProvider");
|
|
96
|
+
var _chatStore = require("./stores/chatStore");
|
|
78
97
|
var _useXChat = require("./hooks/useXChat");
|
|
79
98
|
var _useXConversations = require("./hooks/useXConversations");
|
|
80
99
|
var _useXModel = require("./hooks/useXModel");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_XStream","require","_XRequest","_SSEParser","_AbstractChatProvider","_OpenAIChatProvider","_DeepSeekChatProvider","_useXChat","_useXConversations","_useXModel","_ChatProvider"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_XStream","require","_XRequest","_SSEParser","_AbstractChatProvider","_OpenAIChatProvider","_DeepSeekChatProvider","_chatStore","_useXChat","_useXConversations","_useXModel","_ChatProvider"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCA,IAAAA,QAAA,GAAAC,OAAA;AAGA,IAAAC,SAAA,GAAAD,OAAA;AAGA,IAAAE,UAAA,GAAAF,OAAA;AAGA,IAAAG,qBAAA,GAAAH,OAAA;AACA,IAAAI,mBAAA,GAAAJ,OAAA;AAEA,IAAAK,qBAAA,GAAAL,OAAA;AAKA,IAAAM,UAAA,GAAAN,OAAA;AAOA,IAAAO,SAAA,GAAAP,OAAA;AAOA,IAAAQ,kBAAA,GAAAR,OAAA;AAMA,IAAAS,UAAA,GAAAT,OAAA;AAGA,IAAAU,aAAA,GAAAV,OAAA","ignoreList":[]}
|
|
@@ -4,12 +4,31 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.createChatStore = void 0;
|
|
7
|
+
exports.deleteChatStore = deleteChatStore;
|
|
8
|
+
exports.getChatStoreMessages = getChatStoreMessages;
|
|
9
|
+
exports.getOrCreateChatStore = getOrCreateChatStore;
|
|
7
10
|
var _zustand = require("zustand");
|
|
8
11
|
/**
|
|
9
12
|
* Chat 消息状态管理(Zustand)
|
|
10
13
|
* 内部 store,通过 useXChat hook 封装后对外暴露
|
|
11
14
|
*/
|
|
12
15
|
|
|
16
|
+
// 全局 store 管理器 — 多会话内存常驻
|
|
17
|
+
const chatStoreMap = new Map();
|
|
18
|
+
function getOrCreateChatStore(key) {
|
|
19
|
+
let store = chatStoreMap.get(key);
|
|
20
|
+
if (!store) {
|
|
21
|
+
store = createChatStore();
|
|
22
|
+
chatStoreMap.set(key, store);
|
|
23
|
+
}
|
|
24
|
+
return store;
|
|
25
|
+
}
|
|
26
|
+
function deleteChatStore(key) {
|
|
27
|
+
chatStoreMap.delete(key);
|
|
28
|
+
}
|
|
29
|
+
function getChatStoreMessages(key) {
|
|
30
|
+
return chatStoreMap.get(key)?.getState()?.messages;
|
|
31
|
+
}
|
|
13
32
|
const createChatStore = () => (0, _zustand.create)((set, get) => ({
|
|
14
33
|
messages: [],
|
|
15
34
|
streamingText: '',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_zustand","require","
|
|
1
|
+
{"version":3,"names":["_zustand","require","chatStoreMap","Map","getOrCreateChatStore","key","store","get","createChatStore","set","deleteChatStore","delete","getChatStoreMessages","getState","messages","create","streamingText","suggestions","isRequesting","error","addMessage","message","state","updateMessage","id","updater","map","m","upsertMessage","existingIdx","findIndex","newMessages","setMessages","messagesOrFn","setMessage","partialOrFn","partial","removeMessage","filter","setSuggestions","items","setRequesting","v","setError","resetChat","loadSession","exports"],"sourceRoot":"../../../src","sources":["stores/chatStore.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -57,6 +57,32 @@ function createHistoryStore(storage) {
|
|
|
57
57
|
}
|
|
58
58
|
await saveIndex();
|
|
59
59
|
},
|
|
60
|
+
saveSession: async (id, title, messages) => {
|
|
61
|
+
await loadIndex();
|
|
62
|
+
if (messages.length === 0) return;
|
|
63
|
+
await storage.setItem(`${MESSAGE_KEY_PREFIX}${id}`, JSON.stringify(messages));
|
|
64
|
+
const lastMsg = messages[0];
|
|
65
|
+
const summary = {
|
|
66
|
+
id,
|
|
67
|
+
title,
|
|
68
|
+
lastMessage: lastMsg?.text?.slice(0, 50) ?? '',
|
|
69
|
+
timestamp: Date.now(),
|
|
70
|
+
messageCount: messages.length
|
|
71
|
+
};
|
|
72
|
+
const idx = sessions.findIndex(s => s.id === id);
|
|
73
|
+
if (idx >= 0) {
|
|
74
|
+
sessions[idx] = summary;
|
|
75
|
+
} else {
|
|
76
|
+
sessions.unshift(summary);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// FIFO 淘汰
|
|
80
|
+
if (sessions.length > MAX_SESSIONS) {
|
|
81
|
+
const removed = sessions.splice(MAX_SESSIONS);
|
|
82
|
+
await Promise.all(removed.map(s => storage.removeItem(`${MESSAGE_KEY_PREFIX}${s.id}`)));
|
|
83
|
+
}
|
|
84
|
+
await saveIndex();
|
|
85
|
+
},
|
|
60
86
|
loadSessionMessages: async id => {
|
|
61
87
|
const raw = await storage.getItem(`${MESSAGE_KEY_PREFIX}${id}`);
|
|
62
88
|
if (!raw) return [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MAX_SESSIONS","MESSAGE_KEY_PREFIX","createHistoryStore","storage","sessions","initialized","loadIndex","raw","getItem","JSON","parse","saveIndex","setItem","stringify","archiveSession","id","title","messages","length","lastMsg","summary","lastMessage","text","slice","timestamp","Date","now","messageCount","filter","s","removed","splice","Promise","all","map","removeItem","loadSessionMessages","deleteSession","clearAll"],"sourceRoot":"../../../src","sources":["stores/historyStore.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;;AAKA,MAAMA,YAAY,GAAG,EAAE;AACvB,MAAMC,kBAAkB,GAAG,eAAe;
|
|
1
|
+
{"version":3,"names":["MAX_SESSIONS","MESSAGE_KEY_PREFIX","createHistoryStore","storage","sessions","initialized","loadIndex","raw","getItem","JSON","parse","saveIndex","setItem","stringify","archiveSession","id","title","messages","length","lastMsg","summary","lastMessage","text","slice","timestamp","Date","now","messageCount","filter","s","removed","splice","Promise","all","map","removeItem","saveSession","idx","findIndex","unshift","loadSessionMessages","deleteSession","clearAll"],"sourceRoot":"../../../src","sources":["stores/historyStore.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -35,17 +35,18 @@ export function ChatProvider(props) {
|
|
|
35
35
|
requestFallback,
|
|
36
36
|
children
|
|
37
37
|
} = props;
|
|
38
|
+
const convOptions = useMemo(() => ({
|
|
39
|
+
storage: storage ?? memoryStorage
|
|
40
|
+
}), [storage]);
|
|
41
|
+
const conversations = useXConversations(convOptions);
|
|
38
42
|
const chatConfig = useMemo(() => ({
|
|
43
|
+
conversationKey: conversations.activeId,
|
|
39
44
|
provider,
|
|
40
45
|
generateId,
|
|
41
46
|
requestPlaceholder,
|
|
42
47
|
requestFallback
|
|
43
|
-
}), [provider, generateId, requestPlaceholder, requestFallback]);
|
|
48
|
+
}), [conversations.activeId, provider, generateId, requestPlaceholder, requestFallback]);
|
|
44
49
|
const chat = useXChat(chatConfig);
|
|
45
|
-
const convOptions = useMemo(() => ({
|
|
46
|
-
storage: storage ?? memoryStorage
|
|
47
|
-
}), [storage]);
|
|
48
|
-
const conversations = useXConversations(convOptions);
|
|
49
50
|
const model = useXModel({
|
|
50
51
|
models,
|
|
51
52
|
defaultModel
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","createContext","useContext","useMemo","useXChat","useXConversations","useXModel","jsx","_jsx","ChatContext","memoryStorage","_data","Map","getItem","key","get","setItem","value","set","removeItem","delete","ChatProvider","props","provider","storage","models","defaultModel","generateId","requestPlaceholder","requestFallback","children","chatConfig","
|
|
1
|
+
{"version":3,"names":["React","createContext","useContext","useMemo","useXChat","useXConversations","useXModel","jsx","_jsx","ChatContext","memoryStorage","_data","Map","getItem","key","get","setItem","value","set","removeItem","delete","ChatProvider","props","provider","storage","models","defaultModel","generateId","requestPlaceholder","requestFallback","children","convOptions","conversations","chatConfig","conversationKey","activeId","chat","model","Provider","useChatContext","ctx","Error"],"sourceRoot":"../../../src","sources":["hooks/ChatProvider.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,KAAK,IAAIC,aAAa,EAAEC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AACjE,SAASC,QAAQ,QAAQ,eAAY;AACrC,SAASC,iBAAiB,QAAQ,wBAAqB;AACvD,SAASC,SAAS,QAAQ,gBAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AA2ExC,MAAMC,WAAW,gBAAGR,aAAa,CAA0B,IAAI,CAAC;AAEhE,MAAMS,aAA0B,GAAG;EACjCC,KAAK,EAAE,IAAIC,GAAG,CAAiB,CAAC;EAChC,MAAMC,OAAOA,CAACC,GAAW,EAAE;IACzB,OAAQ,IAAI,CAACH,KAAK,CAAyBI,GAAG,CAACD,GAAG,CAAC,IAAI,IAAI;EAC7D,CAAC;EACD,MAAME,OAAOA,CAACF,GAAW,EAAEG,KAAa,EAAE;IACvC,IAAI,CAACN,KAAK,CAAyBO,GAAG,CAACJ,GAAG,EAAEG,KAAK,CAAC;EACrD,CAAC;EACD,MAAME,UAAUA,CAACL,GAAW,EAAE;IAC3B,IAAI,CAACH,KAAK,CAAyBS,MAAM,CAACN,GAAG,CAAC;EACjD;AACF,CAAiD;AAEjD,OAAO,SAASO,YAAYA,CAI1BC,KAAgD,EAAE;EAClD,MAAM;IACJC,QAAQ;IACRC,OAAO;IACPC,MAAM,GAAG,EAAE;IACXC,YAAY;IACZC,UAAU;IACVC,kBAAkB;IAClBC,eAAe;IACfC;EACF,CAAC,GAAGR,KAAK;EAET,MAAMS,WAAqC,GAAG5B,OAAO,CACnD,OAAO;IAAEqB,OAAO,EAAEA,OAAO,IAAId;EAAc,CAAC,CAAC,EAC7C,CAACc,OAAO,CACV,CAAC;EACD,MAAMQ,aAAa,GAAG3B,iBAAiB,CAAC0B,WAAW,CAAC;EAEpD,MAAME,UAAkD,GAAG9B,OAAO,CAChE,OAAO;IACL+B,eAAe,EAAEF,aAAa,CAACG,QAAQ;IACvCZ,QAAQ;IACRI,UAAU;IACVC,kBAAkB;IAClBC;EACF,CAAC,CAAC,EACF,CACEG,aAAa,CAACG,QAAQ,EACtBZ,QAAQ,EACRI,UAAU,EACVC,kBAAkB,EAClBC,eAAe,CAEnB,CAAC;EAED,MAAMO,IAAI,GAAGhC,QAAQ,CAAC6B,UAAU,CAAC;EAEjC,MAAMI,KAAK,GAAG/B,SAAS,CAAC;IAAEmB,MAAM;IAAEC;EAAa,CAAC,CAAC;EAEjD,MAAMT,KAAK,GAAGd,OAAO,CACnB,OAAO;IACL,GAAGiC,IAAI;IACP,GAAGJ,aAAa;IAChB,GAAGK;EACL,CAAC,CAAC,EACF,CAACD,IAAI,EAAEJ,aAAa,EAAEK,KAAK,CAC7B,CAAC;EAED,oBACE7B,IAAA,CAACC,WAAW,CAAC6B,QAAQ;IAACrB,KAAK,EAAEA,KAAqC;IAAAa,QAAA,EAC/DA;EAAQ,CACW,CAAC;AAE3B;AAEA,OAAO,SAASS,cAAcA,CAAA,EAEC;EAC7B,MAAMC,GAAG,GAAGtC,UAAU,CAACO,WAAW,CAAC;EACnC,IAAI,CAAC+B,GAAG,EAAE;IACR,MAAM,IAAIC,KAAK,CAAC,mDAAmD,CAAC;EACtE;EACA,OAAOD,GAAG;AACZ","ignoreList":[]}
|
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
* 消费 ChatProvider,输出可渲染的 messages 列表
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import { useCallback, useEffect,
|
|
10
|
-
import {
|
|
9
|
+
import { useCallback, useEffect, useMemo, useSyncExternalStore } from 'react';
|
|
10
|
+
import { getOrCreateChatStore } from "../stores/chatStore.js";
|
|
11
11
|
export function useXChat(config) {
|
|
12
12
|
const {
|
|
13
|
-
provider
|
|
13
|
+
provider,
|
|
14
|
+
conversationKey
|
|
14
15
|
} = config;
|
|
15
|
-
const
|
|
16
|
-
const store = storeRef.current;
|
|
16
|
+
const store = useMemo(() => getOrCreateChatStore(conversationKey), [conversationKey]);
|
|
17
17
|
|
|
18
18
|
// 使用 useSyncExternalStore 订阅 zustand store 变化
|
|
19
19
|
const state = useSyncExternalStore(store.subscribe, store.getState, store.getState);
|
|
@@ -86,12 +86,6 @@ export function useXChat(config) {
|
|
|
86
86
|
}
|
|
87
87
|
store.getState().setRequesting(false);
|
|
88
88
|
}, [provider, store]);
|
|
89
|
-
const resetChat = useCallback(() => {
|
|
90
|
-
store.getState().resetChat();
|
|
91
|
-
}, [store]);
|
|
92
|
-
const loadSession = useCallback(messages => {
|
|
93
|
-
store.getState().loadSession(messages);
|
|
94
|
-
}, [store]);
|
|
95
89
|
const clearError = useCallback(() => {
|
|
96
90
|
store.getState().setError(null);
|
|
97
91
|
}, [store]);
|
|
@@ -188,8 +182,6 @@ export function useXChat(config) {
|
|
|
188
182
|
onRequest,
|
|
189
183
|
onReload,
|
|
190
184
|
abort,
|
|
191
|
-
resetChat,
|
|
192
|
-
loadSession,
|
|
193
185
|
clearError,
|
|
194
186
|
setMessages,
|
|
195
187
|
setMessage,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useMemo","useSyncExternalStore","getOrCreateChatStore","useXChat","config","provider","conversationKey","store","state","subscribe","getState","onRequest","input","s","isRequesting","setRequesting","setError","setSuggestions","localMessage","transformLocalMessage","localChatMessage","addMessage","loadingMessageId","id","loadingMessage","text","role","createdAt","Date","messageType","status","turnId","loadingRemoved","removeLoading","removeMessage","sendMessage","onUpdate","message","upsertMessage","onSuccess","m","onError","error","requestFallback","fallbackMsg","onSuggestion","items","abort","msgs","messages","loadingMsg","find","clearError","onReload","targetIdx","findIndex","setMessages","messagesOrFn","current","currentInfos","map","extra","next","info","setMessage","partialOrFn","partial","updated","undefined","Object","assign","requesting","suggestions"],"sourceRoot":"../../../src","sources":["hooks/useXChat.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
import { useState, useCallback, useEffect, useRef } from 'react';
|
|
10
10
|
import { createHistoryStore } from "../stores/historyStore.js";
|
|
11
|
+
import { getOrCreateChatStore } from "../stores/chatStore.js";
|
|
11
12
|
export function useXConversations(options) {
|
|
12
13
|
const {
|
|
13
14
|
storage
|
|
@@ -15,7 +16,7 @@ export function useXConversations(options) {
|
|
|
15
16
|
const historyRef = useRef(createHistoryStore(storage));
|
|
16
17
|
const history = historyRef.current;
|
|
17
18
|
const [sessions, setSessions] = useState(history.sessions);
|
|
18
|
-
const [activeId,
|
|
19
|
+
const [activeId, setActiveIdState] = useState('');
|
|
19
20
|
|
|
20
21
|
// 初始化加载
|
|
21
22
|
useEffect(() => {
|
|
@@ -27,24 +28,40 @@ export function useXConversations(options) {
|
|
|
27
28
|
});
|
|
28
29
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
29
30
|
}, []);
|
|
31
|
+
const setActiveId = useCallback(id => {
|
|
32
|
+
setActiveIdState(id);
|
|
33
|
+
}, []);
|
|
30
34
|
const switchSession = useCallback(async id => {
|
|
31
|
-
|
|
35
|
+
setActiveIdState(id);
|
|
32
36
|
return await history.loadSessionMessages(id);
|
|
33
37
|
}, [history]);
|
|
34
38
|
const newSession = useCallback(() => {
|
|
35
|
-
|
|
39
|
+
setActiveIdState('');
|
|
36
40
|
}, []);
|
|
37
41
|
const deleteSession = useCallback(async id => {
|
|
38
42
|
await history.deleteSession(id);
|
|
39
43
|
setSessions([...history.sessions]);
|
|
40
44
|
if (activeId === id) {
|
|
41
|
-
|
|
45
|
+
setActiveIdState('');
|
|
42
46
|
}
|
|
43
47
|
}, [history, activeId]);
|
|
44
48
|
const archiveSession = useCallback(async (id, title, messages) => {
|
|
45
49
|
await history.archiveSession(id, title, messages);
|
|
46
50
|
setSessions([...history.sessions]);
|
|
47
51
|
}, [history]);
|
|
52
|
+
const saveSession = useCallback(async (id, title, messages) => {
|
|
53
|
+
await history.saveSession(id, title, messages);
|
|
54
|
+
setSessions([...history.sessions]);
|
|
55
|
+
}, [history]);
|
|
56
|
+
const loadSessionMessages = useCallback(async id => {
|
|
57
|
+
const msgs = await history.loadSessionMessages(id);
|
|
58
|
+
// 将消息加载到对应的内存 store
|
|
59
|
+
if (msgs.length > 0) {
|
|
60
|
+
const store = getOrCreateChatStore(id);
|
|
61
|
+
store.getState().loadSession(msgs);
|
|
62
|
+
}
|
|
63
|
+
return msgs;
|
|
64
|
+
}, [history]);
|
|
48
65
|
const updateSession = useCallback((id, data) => {
|
|
49
66
|
const session = history.sessions.find(s => s.id === id);
|
|
50
67
|
if (session && data.title) {
|
|
@@ -55,10 +72,13 @@ export function useXConversations(options) {
|
|
|
55
72
|
return {
|
|
56
73
|
sessions,
|
|
57
74
|
activeId,
|
|
75
|
+
setActiveId,
|
|
58
76
|
switchSession,
|
|
59
77
|
newSession,
|
|
60
78
|
deleteSession,
|
|
61
79
|
archiveSession,
|
|
80
|
+
saveSession,
|
|
81
|
+
loadSessionMessages,
|
|
62
82
|
updateSession
|
|
63
83
|
};
|
|
64
84
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useState","useCallback","useEffect","useRef","createHistoryStore","useXConversations","options","storage","historyRef","history","current","sessions","setSessions","activeId","
|
|
1
|
+
{"version":3,"names":["useState","useCallback","useEffect","useRef","createHistoryStore","getOrCreateChatStore","useXConversations","options","storage","historyRef","history","current","sessions","setSessions","activeId","setActiveIdState","archiveSession","then","deleteSession","setActiveId","id","switchSession","loadSessionMessages","newSession","title","messages","saveSession","msgs","length","store","getState","loadSession","updateSession","data","session","find","s"],"sourceRoot":"../../../src","sources":["hooks/useXConversations.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -19,6 +19,8 @@ export { DeepSeekChatProvider } from "./providers/DeepSeekChatProvider.js";
|
|
|
19
19
|
|
|
20
20
|
// Stores
|
|
21
21
|
|
|
22
|
+
export { getOrCreateChatStore, deleteChatStore, getChatStoreMessages } from "./stores/chatStore.js";
|
|
23
|
+
|
|
22
24
|
// Hooks
|
|
23
25
|
export { useXChat } from "./hooks/useXChat.js";
|
|
24
26
|
export { useXConversations } from "./hooks/useXConversations.js";
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["XStream","XRequest","SSEParser","AbstractChatProvider","OpenAIChatProvider","DeepSeekChatProvider","useXChat","useXConversations","useXModel","ChatProvider","useChatContext"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;;AAEA;;AA0BA;AACA,SAASA,OAAO,QAAQ,oBAAiB;AAGzC,SAASC,QAAQ,QAAQ,qBAAkB;AAG3C,SAASC,SAAS,QAAQ,sBAAmB;;AAE7C;AACA,SAASC,oBAAoB,QAAQ,qCAAkC;AACvE,SAASC,kBAAkB,QAAQ,mCAAgC;AAEnE,SAASC,oBAAoB,QAAQ,qCAAkC;;AAGvE;;
|
|
1
|
+
{"version":3,"names":["XStream","XRequest","SSEParser","AbstractChatProvider","OpenAIChatProvider","DeepSeekChatProvider","getOrCreateChatStore","deleteChatStore","getChatStoreMessages","useXChat","useXConversations","useXModel","ChatProvider","useChatContext"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;;AAEA;;AA0BA;AACA,SAASA,OAAO,QAAQ,oBAAiB;AAGzC,SAASC,QAAQ,QAAQ,qBAAkB;AAG3C,SAASC,SAAS,QAAQ,sBAAmB;;AAE7C;AACA,SAASC,oBAAoB,QAAQ,qCAAkC;AACvE,SAASC,kBAAkB,QAAQ,mCAAgC;AAEnE,SAASC,oBAAoB,QAAQ,qCAAkC;;AAGvE;;AAEA,SACEC,oBAAoB,EACpBC,eAAe,EACfC,oBAAoB,QACf,uBAAoB;;AAE3B;AACA,SAASC,QAAQ,QAAQ,qBAAkB;AAO3C,SAASC,iBAAiB,QAAQ,8BAA2B;AAM7D,SAASC,SAAS,QAAQ,sBAAmB;AAG7C,SAASC,YAAY,EAAEC,cAAc,QAAQ,yBAAsB","ignoreList":[]}
|