@unif/react-native-chat-sdk 0.4.1 → 0.5.0
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/hooks/useXModel.js.map +1 -1
- package/lib/commonjs/index.js +19 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/providers/AbstractChatProvider.js.map +1 -1
- package/lib/commonjs/providers/DeepSeekChatProvider.js.map +1 -1
- package/lib/commonjs/providers/OpenAIChatProvider.js +1 -1
- package/lib/commonjs/providers/OpenAIChatProvider.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/commonjs/tools/XRequest.js +1 -1
- package/lib/commonjs/tools/XRequest.js.map +1 -1
- package/lib/commonjs/tools/XStream.js +0 -1
- package/lib/commonjs/tools/XStream.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/hooks/useXModel.js.map +1 -1
- package/lib/module/index.js +2 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/providers/AbstractChatProvider.js.map +1 -1
- package/lib/module/providers/DeepSeekChatProvider.js.map +1 -1
- package/lib/module/providers/OpenAIChatProvider.js +1 -1
- package/lib/module/providers/OpenAIChatProvider.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/module/stores/modelStore.js.map +1 -1
- package/lib/module/stores/sessionStore.js.map +1 -1
- package/lib/module/tools/XRequest.js +1 -1
- package/lib/module/tools/XRequest.js.map +1 -1
- package/lib/module/tools/XStream.js +0 -1
- package/lib/module/tools/XStream.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 +3 -2
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/providers/AbstractChatProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/providers/DeepSeekChatProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/providers/OpenAIChatProvider.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/commonjs/tools/SSEParser.d.ts.map +1 -1
- package/lib/typescript/commonjs/tools/XStream.d.ts.map +1 -1
- package/lib/typescript/commonjs/types/provider.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 +3 -2
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/providers/AbstractChatProvider.d.ts.map +1 -1
- package/lib/typescript/module/providers/DeepSeekChatProvider.d.ts.map +1 -1
- package/lib/typescript/module/providers/OpenAIChatProvider.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/lib/typescript/module/tools/SSEParser.d.ts.map +1 -1
- package/lib/typescript/module/tools/XStream.d.ts.map +1 -1
- package/lib/typescript/module/types/provider.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/hooks/ChatProvider.tsx +24 -12
- package/src/hooks/useXChat.ts +11 -23
- package/src/hooks/useXConversations.ts +39 -10
- package/src/hooks/useXModel.ts +2 -2
- package/src/index.ts +31 -19
- package/src/providers/AbstractChatProvider.ts +7 -3
- package/src/providers/DeepSeekChatProvider.ts +4 -7
- package/src/providers/OpenAIChatProvider.ts +6 -6
- package/src/stores/chatStore.ts +29 -10
- package/src/stores/historyStore.ts +45 -8
- package/src/stores/modelStore.ts +1 -1
- package/src/stores/sessionStore.ts +1 -1
- package/src/tools/SSEParser.ts +1 -1
- package/src/tools/XRequest.ts +1 -1
- package/src/tools/XStream.ts +0 -1
- package/src/types/provider.ts +2 -2
- package/lib/commonjs/index.md +0 -188
- package/lib/module/index.md +0 -188
- package/src/index.md +0 -188
|
@@ -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":";;;;;;AAMA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AARA;AACA;AACA;AACA;AACA;;AAeO,SAASG,iBAAiBA,CAACC,OAAiC,EAAE;EACnE,MAAM;IAAEC;EAAQ,CAAC,GAAGD,OAAO;EAE3B,MAAME,UAAU,GAAG,IAAAC,aAAM,EAAC,IAAAC,gCAAkB,EAACH,OAAO,CAAC,CAAC;EACtD,MAAMI,OAAO,GAAGH,UAAU,CAACI,OAAO;EAElC,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAC,eAAQ,EAACJ,OAAO,CAACE,QAAQ,CAAC;EAC1D,MAAM,CAACG,QAAQ,EAAEC,gBAAgB,CAAC,GAAG,IAAAF,eAAQ,EAAC,EAAE,CAAC;;EAEjD;EACA,IAAAG,gBAAS,EAAC,MAAM;IACd;IACAP,OAAO,CAACQ,cAAc,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,CAACC,IAAI,CAAC,MAAM;MACpDT,OAAO,CAACU,aAAa,CAAC,UAAU,CAAC,CAACD,IAAI,CAAC,MAAM;QAC3CN,WAAW,CAAC,CAAC,GAAGH,OAAO,CAACE,QAAQ,CAAC,CAAC;MACpC,CAAC,CAAC;IACJ,CAAC,CAAC;IACF;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMS,WAAW,GAAG,IAAAC,kBAAW,EAAEC,EAAU,IAAK;IAC9CP,gBAAgB,CAACO,EAAE,CAAC;EACtB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,aAAa,GAAG,IAAAF,kBAAW,EAC/B,MAAOC,EAAU,IAA6B;IAC5CP,gBAAgB,CAACO,EAAE,CAAC;IACpB,OAAO,MAAMb,OAAO,CAACe,mBAAmB,CAACF,EAAE,CAAC;EAC9C,CAAC,EACD,CAACb,OAAO,CACV,CAAC;EAED,MAAMgB,UAAU,GAAG,IAAAJ,kBAAW,EAAC,MAAM;IACnCN,gBAAgB,CAAC,EAAE,CAAC;EACtB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMI,aAAa,GAAG,IAAAE,kBAAW,EAC/B,MAAOC,EAAU,IAAK;IACpB,MAAMb,OAAO,CAACU,aAAa,CAACG,EAAE,CAAC;IAC/BV,WAAW,CAAC,CAAC,GAAGH,OAAO,CAACE,QAAQ,CAAC,CAAC;IAClC,IAAIG,QAAQ,KAAKQ,EAAE,EAAE;MACnBP,gBAAgB,CAAC,EAAE,CAAC;IACtB;EACF,CAAC,EACD,CAACN,OAAO,EAAEK,QAAQ,CACpB,CAAC;EAED,MAAMG,cAAc,GAAG,IAAAI,kBAAW,EAChC,OAAOC,EAAU,EAAEI,KAAa,EAAEC,QAAuB,KAAK;IAC5D,MAAMlB,OAAO,CAACQ,cAAc,CAACK,EAAE,EAAEI,KAAK,EAAEC,QAAQ,CAAC;IACjDf,WAAW,CAAC,CAAC,GAAGH,OAAO,CAACE,QAAQ,CAAC,CAAC;EACpC,CAAC,EACD,CAACF,OAAO,CACV,CAAC;EAED,MAAMmB,WAAW,GAAG,IAAAP,kBAAW,EAC7B,OAAOC,EAAU,EAAEI,KAAa,EAAEC,QAAuB,KAAK;IAC5D,MAAMlB,OAAO,CAACmB,WAAW,CAACN,EAAE,EAAEI,KAAK,EAAEC,QAAQ,CAAC;IAC9Cf,WAAW,CAAC,CAAC,GAAGH,OAAO,CAACE,QAAQ,CAAC,CAAC;EACpC,CAAC,EACD,CAACF,OAAO,CACV,CAAC;EAED,MAAMe,mBAAmB,GAAG,IAAAH,kBAAW,EACrC,MAAOC,EAAU,IAA6B;IAC5C,MAAMO,IAAI,GAAG,MAAMpB,OAAO,CAACe,mBAAmB,CAACF,EAAE,CAAC;IAClD;IACA,IAAIO,IAAI,CAACC,MAAM,GAAG,CAAC,EAAE;MACnB,MAAMC,KAAK,GAAG,IAAAC,+BAAoB,EAACV,EAAE,CAAC;MACtCS,KAAK,CAACE,QAAQ,CAAC,CAAC,CAACC,WAAW,CAACL,IAAI,CAAC;IACpC;IACA,OAAOA,IAAI;EACb,CAAC,EACD,CAACpB,OAAO,CACV,CAAC;EAED,MAAM0B,aAAa,GAAG,IAAAd,kBAAW,EAC/B,CAACC,EAAU,EAAEc,IAAgC,KAAK;IAChD,MAAMC,OAAO,GAAG5B,OAAO,CAACE,QAAQ,CAAC2B,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACjB,EAAE,KAAKA,EAAE,CAAC;IACzD,IAAIe,OAAO,IAAID,IAAI,CAACV,KAAK,EAAE;MACzBW,OAAO,CAACX,KAAK,GAAGU,IAAI,CAACV,KAAK;MAC1Bd,WAAW,CAAC,CAAC,GAAGH,OAAO,CAACE,QAAQ,CAAC,CAAC;IACpC;EACF,CAAC,EACD,CAACF,OAAO,CACV,CAAC;EAED,OAAO;IACLE,QAAQ;IACRG,QAAQ;IACRM,WAAW;IACXG,aAAa;IACbE,UAAU;IACVN,aAAa;IACbF,cAAc;IACdW,WAAW;IACXJ,mBAAmB;IACnBW;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","useXModel","options","models","defaultModel","selectedModel","setSelected","useState","id","setSelectedModel","useCallback"],"sourceRoot":"../../../src","sources":["hooks/useXModel.ts"],"mappings":";;;;;;AAIA,IAAAA,MAAA,GAAAC,OAAA;AAJA;AACA;AACA;;AAeO,SAASC,SAASA,CAACC,OAAyB,EAAE;EACnD,MAAM;
|
|
1
|
+
{"version":3,"names":["_react","require","useXModel","options","models","defaultModel","selectedModel","setSelected","useState","id","setSelectedModel","useCallback"],"sourceRoot":"../../../src","sources":["hooks/useXModel.ts"],"mappings":";;;;;;AAIA,IAAAA,MAAA,GAAAC,OAAA;AAJA;AACA;AACA;;AAeO,SAASC,SAASA,CAACC,OAAyB,EAAE;EACnD,MAAM;IAAEC,MAAM;IAAEC;EAAa,CAAC,GAAGF,OAAO;EACxC,MAAM,CAACG,aAAa,EAAEC,WAAW,CAAC,GAAG,IAAAC,eAAQ,EAC3CH,YAAY,IAAID,MAAM,CAAC,CAAC,CAAC,EAAEK,EAAE,IAAI,EACnC,CAAC;EAED,MAAMC,gBAAgB,GAAG,IAAAC,kBAAW,EAAEF,EAAU,IAAK;IACnDF,WAAW,CAACE,EAAE,CAAC;EACjB,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IACLH,aAAa;IACbF,MAAM;IACNM;EACF,CAAC;AACH","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":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AbstractChatProvider","constructor","config","request","sendMessage","input","callbacks","params","transformParams","currentMessage","requestCallbacks","onStream","chunk","transformMessage","onUpdate","onSuccess","onError","error","Error","message","create","abort","exports"],"sourceRoot":"../../../src","sources":["providers/AbstractChatProvider.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;;
|
|
1
|
+
{"version":3,"names":["AbstractChatProvider","constructor","config","request","sendMessage","input","callbacks","params","transformParams","currentMessage","requestCallbacks","onStream","chunk","transformMessage","onUpdate","onSuccess","onError","error","Error","message","create","abort","exports"],"sourceRoot":"../../../src","sources":["providers/AbstractChatProvider.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;;AAUO,MAAeA,oBAAoB,CAIxC;EAGAC,WAAWA,CAACC,MAA6B,EAAE;IACzC,IAAI,CAACC,OAAO,GAAGD,MAAM,CAACC,OAAO;EAC/B;;EAEA;AACF;AACA;AACA;;EAGE;AACF;AACA;AACA;;EAGE;AACF;AACA;AACA;;EAGE;AACF;AACA;EACEC,WAAWA,CAACC,KAAY,EAAEC,SAAqC,EAAQ;IACrE,MAAMC,MAAM,GAAG,IAAI,CAACC,eAAe,CAACH,KAAK,CAAC;IAC1C,IAAII,cAAmC;IAEvC,MAAMC,gBAAmC,GAAG;MAC1CC,QAAQ,EAAGC,KAAK,IAAK;QACnBH,cAAc,GAAG,IAAI,CAACI,gBAAgB,CACpCD,KAAK,EACLH,cACF,CAAC;QACDH,SAAS,CAACQ,QAAQ,CAACL,cAAc,CAAC;MACpC,CAAC;MACDM,SAAS,EAAEA,CAAA,KAAM;QACf,IAAIN,cAAc,EAAE;UAClBH,SAAS,CAACS,SAAS,CAACN,cAAc,CAAC;QACrC;MACF,CAAC;MACDO,OAAO,EAAGC,KAAK,IAAK;QAClBX,SAAS,CAACU,OAAO,CAAC,IAAIE,KAAK,CAACD,KAAK,CAACE,OAAO,CAAC,CAAC;MAC7C;IACF,CAAC;IAED,IAAI,CAAChB,OAAO,CAACiB,MAAM,CAACb,MAAM,EAAEG,gBAAgB,CAAC;EAC/C;;EAEA;AACF;AACA;EACEW,KAAKA,CAAA,EAAS;IACZ,IAAI,CAAClB,OAAO,CAACkB,KAAK,CAAC,CAAC;EACtB;AACF;AAACC,OAAA,CAAAtB,oBAAA,GAAAA,oBAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_OpenAIChatProvider","require","DeepSeekChatProvider","OpenAIChatProvider","constructor","config","baseURL","apiKey","model","getToken","transformMessage","output","current","raw","data","trim","id","text","role","createdAt","Date","messageType","status","turnId","parsed","JSON","parse","delta","choices","content","reasoningContent","reasoning_content","finishReason","finish_reason","prevText","newText","includes","now","exports"],"sourceRoot":"../../../src","sources":["providers/DeepSeekChatProvider.ts"],"mappings":";;;;;;AAOA,IAAAA,mBAAA,GAAAC,OAAA;AAPA;AACA;AACA;AACA;AACA;AACA;;AAaO,MAAMC,oBAAoB,SAASC,sCAAkB,CAAC;EAC3DC,WAAWA,CAACC,MAAkC,EAAE;IAC9C,KAAK,CAAC;MACJC,OAAO,EAAED,MAAM,CAACC,OAAO,IAAI,0BAA0B;MACrDC,MAAM,EAAEF,MAAM,CAACE,MAAM;MACrBC,KAAK,EAAEH,MAAM,CAACG,KAAK,IAAI,eAAe;MACtCC,QAAQ,EAAEJ,MAAM,CAACI;IACnB,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;EACWC,gBAAgBA,CACvBC,MAAiB,EACjBC,OAAqB,EACR;IACb,MAAMC,GAAG,GAAGF,MAAM,CAACG,IAAI;IAEvB,IAAID,GAAG,CAACE,IAAI,CAAC,CAAC,KAAK,QAAQ,EAAE;MAC3B,OAAO;QACL,IAAIH,OAAO,IAAI;UACbI,EAAE,EAAE,EAAE;UACNC,IAAI,EAAE,EAAE;UACRC,IAAI,EAAE,WAAoB;UAC1BC,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC;UACrBC,WAAW,EAAE,MAAe;UAC5BC,MAAM,EAAE,SAAkB;UAC1BC,MAAM,EAAE;QACV,CAAC,CAAC;QACFD,MAAM,EAAE;MACV,CAAC;IACH;IAEA,IAAI;MACF,MAAME,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACb,GAAG,CAAC;MAC9B,MAAMc,KAAK,GAAGH,MAAM,CAACI,OAAO,GAAG,CAAC,CAAC,EAAED,KAAK;MACxC,MAAME,OAAO,GAAGF,KAAK,EAAEE,OAAO,IAAI,EAAE;MACpC,MAAMC,gBAAgB,GAAGH,KAAK,EAAEI,iBAAiB,IAAI,EAAE;MACvD,MAAMC,YAAY,GAAGR,MAAM,CAACI,OAAO,GAAG,CAAC,CAAC,EAAEK,aAAa;MAEvD,MAAMC,QAAQ,GAAGtB,OAAO,EAAEK,IAAI,IAAI,EAAE;MACpC,IAAIkB,OAAO,GAAGD,QAAQ;;MAEtB;MACA,IAAIJ,gBAAgB,EAAE;QACpB;QACA,IAAI,CAACI,QAAQ,CAACE,QAAQ,CAAC,SAAS,CAAC,EAAE;UACjCD,OAAO,IAAI,SAAS;QACtB;QACAA,OAAO,IAAIL,gBAAgB;MAC7B;MAEA,IAAID,OAAO,EAAE;QACX;QACA,
|
|
1
|
+
{"version":3,"names":["_OpenAIChatProvider","require","DeepSeekChatProvider","OpenAIChatProvider","constructor","config","baseURL","apiKey","model","getToken","transformMessage","output","current","raw","data","trim","id","text","role","createdAt","Date","messageType","status","turnId","parsed","JSON","parse","delta","choices","content","reasoningContent","reasoning_content","finishReason","finish_reason","prevText","newText","includes","now","exports"],"sourceRoot":"../../../src","sources":["providers/DeepSeekChatProvider.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -18,7 +18,7 @@ class OpenAIChatProvider extends _AbstractChatProvider.AbstractChatProvider {
|
|
|
18
18
|
constructor(config) {
|
|
19
19
|
const headers = {};
|
|
20
20
|
if (config.apiKey) {
|
|
21
|
-
headers
|
|
21
|
+
headers.Authorization = `Bearer ${config.apiKey}`;
|
|
22
22
|
}
|
|
23
23
|
const request = new _XRequest.XRequest({
|
|
24
24
|
baseURL: config.baseURL,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_AbstractChatProvider","require","_XRequest","_idCounter","genId","Date","now","OpenAIChatProvider","AbstractChatProvider","constructor","config","headers","apiKey","request","XRequest","baseURL","endpoint","getToken","model","transformParams","input","messages","map","m","role","content","text","push","message","stream","transformLocalMessage","id","createdAt","messageType","status","turnId","extra","transformMessage","output","current","raw","data","trim","createEmptyAssistant","parsed","JSON","parse","delta","choices","finishReason","finish_reason","prevText","exports"],"sourceRoot":"../../../src","sources":["providers/OpenAIChatProvider.ts"],"mappings":";;;;;;AAMA,IAAAA,qBAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAPA;AACA;AACA;AACA;AACA;;AAeA,IAAIE,UAAU,GAAG,CAAC;AAClB,MAAMC,KAAK,GAAGA,CAAA,KAAM,OAAOC,IAAI,CAACC,GAAG,CAAC,CAAC,IAAI,EAAEH,UAAU,EAAE;AAEhD,MAAMI,kBAAkB,SAASC,0CAAoB,CAI1D;EAGAC,WAAWA,CAACC,MAAgC,EAAE;IAC5C,MAAMC,OAA+B,GAAG,CAAC,CAAC;IAC1C,IAAID,MAAM,CAACE,MAAM,EAAE;MACjBD,OAAO,
|
|
1
|
+
{"version":3,"names":["_AbstractChatProvider","require","_XRequest","_idCounter","genId","Date","now","OpenAIChatProvider","AbstractChatProvider","constructor","config","headers","apiKey","Authorization","request","XRequest","baseURL","endpoint","getToken","model","transformParams","input","messages","map","m","role","content","text","push","message","stream","transformLocalMessage","id","createdAt","messageType","status","turnId","extra","transformMessage","output","current","raw","data","trim","createEmptyAssistant","parsed","JSON","parse","delta","choices","finishReason","finish_reason","prevText","exports"],"sourceRoot":"../../../src","sources":["providers/OpenAIChatProvider.ts"],"mappings":"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","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":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_XStream","require","_SSEParser","TAG","XRequest","stream","parser","SSEParser","constructor","config","create","params","callbacks","abort","reset","baseURL","endpoint","headers","timeout","getToken","reqHeaders","token","url","console","log","XStream","method","body","eventCount","heartbeatCount","connect","onMessage","output","envelopes","process","data","envelope","type","seq","onStream","JSON","stringify","event","onError","error","message","onComplete","onSuccess","dispose","exports"],"sourceRoot":"../../../src","sources":["tools/XRequest.ts"],"mappings":";;;;;;AAMA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAPA;AACA;AACA;AACA;AACA;;AAOA,MAAME,GAAG,GAAG,YAAY;AAkBjB,MAAMC,QAAQ,CAAC;EAEZC,MAAM,GAAmB,IAAI;EAC7BC,MAAM,GAAG,IAAIC,oBAAS,CAAC,CAAC;EAEhCC,WAAWA,CAACC,MAAsB,EAAE;IAClC,IAAI,CAACA,MAAM,GAAGA,MAAM;EACtB;EAEA,MAAMC,MAAMA,CACVC,MAA+B,EAC/BC,SAA4B,EACb;IACf,IAAI,CAACC,KAAK,CAAC,CAAC;IACZ,IAAI,CAACP,MAAM,CAACQ,KAAK,CAAC,CAAC;IAEnB,MAAM;MACJC,OAAO;MACPC,QAAQ,GAAG,sBAAsB;MACjCC,OAAO,GAAG,CAAC,CAAC;MACZC,OAAO;MACPC;IACF,CAAC,GAAG,IAAI,CAACV,MAAM;;IAEf;IACA,MAAMW,UAAU,GAAG;MAAE,GAAGH;IAAQ,CAAC;IACjC,IAAIE,QAAQ,EAAE;MACZ,IAAI;QACF,MAAME,KAAK,GAAG,MAAMF,QAAQ,CAAC,CAAC;QAC9B,IAAIE,KAAK,EAAE;UACTD,UAAU,
|
|
1
|
+
{"version":3,"names":["_XStream","require","_SSEParser","TAG","XRequest","stream","parser","SSEParser","constructor","config","create","params","callbacks","abort","reset","baseURL","endpoint","headers","timeout","getToken","reqHeaders","token","Authorization","url","console","log","XStream","method","body","eventCount","heartbeatCount","connect","onMessage","output","envelopes","process","data","envelope","type","seq","onStream","JSON","stringify","event","onError","error","message","onComplete","onSuccess","dispose","exports"],"sourceRoot":"../../../src","sources":["tools/XRequest.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -38,7 +38,6 @@ class XStream {
|
|
|
38
38
|
console.log(TAG, '连接', url, `timeout=${timeout}ms`);
|
|
39
39
|
|
|
40
40
|
// react-native-sse 动态 require,避免非 RN 环境报错
|
|
41
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
42
41
|
const RNEventSource = require('react-native-sse').default;
|
|
43
42
|
const es = new RNEventSource(url, {
|
|
44
43
|
method,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TAG","defaultTransform","event","data","XStream","es","timeoutTimer","msgCount","connectTime","constructor","config","connect","callbacks","abort","Date","now","url","method","headers","body","timeout","transformStream","console","log","RNEventSource","require","default","JSON","stringify","undefined","resetTimeout","clearTimer","setTimeout","elapsed","toFixed","warn","onError","Error","addEventListener","onOpen","length","output","onMessage","error","message","close","dispose","clearTimeout","exports"],"sourceRoot":"../../../src","sources":["tools/XStream.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;;AAKA,MAAMA,GAAG,GAAG,WAAW;AAkBvB,MAAMC,gBAAgB,GAAIC,KAGzB,KAAiB;EAChBC,IAAI,EAAED,KAAK,CAACC,IAAI;EAChBD,KAAK,EAAEA,KAAK,CAACA;AACf,CAAC,CAAC;AAEK,MAAME,OAAO,CAAC;EAEXC,EAAE,GAAuB,IAAI;EAC7BC,YAAY,GAAyC,IAAI;EACzDC,QAAQ,GAAG,CAAC;EACZC,WAAW,GAAG,CAAC;EAEvBC,WAAWA,CAACC,MAAqB,EAAE;IACjC,IAAI,CAACA,MAAM,GAAGA,MAAM;EACtB;EAEAC,OAAOA,CAACC,SAA2B,EAAQ;IACzC,IAAI,CAACC,KAAK,CAAC,CAAC;IACZ,IAAI,CAACN,QAAQ,GAAG,CAAC;IACjB,IAAI,CAACC,WAAW,GAAGM,IAAI,CAACC,GAAG,CAAC,CAAC;IAE7B,MAAM;MACJC,GAAG;MACHC,MAAM,GAAG,MAAM;MACfC,OAAO;MACPC,IAAI;MACJC,OAAO,GAAG,MAAM;MAChBC,eAAe,GAAGpB;IACpB,CAAC,GAAG,IAAI,CAACS,MAAM;IAEfY,OAAO,CAACC,GAAG,CAACvB,GAAG,EAAE,IAAI,EAAEgB,GAAG,EAAE,WAAWI,OAAO,IAAI,CAAC;;IAEnD;IACA
|
|
1
|
+
{"version":3,"names":["TAG","defaultTransform","event","data","XStream","es","timeoutTimer","msgCount","connectTime","constructor","config","connect","callbacks","abort","Date","now","url","method","headers","body","timeout","transformStream","console","log","RNEventSource","require","default","JSON","stringify","undefined","resetTimeout","clearTimer","setTimeout","elapsed","toFixed","warn","onError","Error","addEventListener","onOpen","length","output","onMessage","error","message","close","dispose","clearTimeout","exports"],"sourceRoot":"../../../src","sources":["tools/XStream.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,
|