@unif/react-native-chat-sdk 0.4.2 → 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.
Files changed (55) hide show
  1. package/lib/commonjs/hooks/ChatProvider.js +6 -5
  2. package/lib/commonjs/hooks/ChatProvider.js.map +1 -1
  3. package/lib/commonjs/hooks/useXChat.js +3 -11
  4. package/lib/commonjs/hooks/useXChat.js.map +1 -1
  5. package/lib/commonjs/hooks/useXConversations.js +24 -4
  6. package/lib/commonjs/hooks/useXConversations.js.map +1 -1
  7. package/lib/commonjs/index.js +19 -0
  8. package/lib/commonjs/index.js.map +1 -1
  9. package/lib/commonjs/stores/chatStore.js +19 -0
  10. package/lib/commonjs/stores/chatStore.js.map +1 -1
  11. package/lib/commonjs/stores/historyStore.js +26 -0
  12. package/lib/commonjs/stores/historyStore.js.map +1 -1
  13. package/lib/module/hooks/ChatProvider.js +6 -5
  14. package/lib/module/hooks/ChatProvider.js.map +1 -1
  15. package/lib/module/hooks/useXChat.js +5 -13
  16. package/lib/module/hooks/useXChat.js.map +1 -1
  17. package/lib/module/hooks/useXConversations.js +24 -4
  18. package/lib/module/hooks/useXConversations.js.map +1 -1
  19. package/lib/module/index.js +2 -0
  20. package/lib/module/index.js.map +1 -1
  21. package/lib/module/stores/chatStore.js +16 -0
  22. package/lib/module/stores/chatStore.js.map +1 -1
  23. package/lib/module/stores/historyStore.js +26 -0
  24. package/lib/module/stores/historyStore.js.map +1 -1
  25. package/lib/typescript/commonjs/hooks/ChatProvider.d.ts +3 -2
  26. package/lib/typescript/commonjs/hooks/ChatProvider.d.ts.map +1 -1
  27. package/lib/typescript/commonjs/hooks/useXChat.d.ts +1 -2
  28. package/lib/typescript/commonjs/hooks/useXChat.d.ts.map +1 -1
  29. package/lib/typescript/commonjs/hooks/useXConversations.d.ts +3 -0
  30. package/lib/typescript/commonjs/hooks/useXConversations.d.ts.map +1 -1
  31. package/lib/typescript/commonjs/index.d.ts +1 -0
  32. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  33. package/lib/typescript/commonjs/stores/chatStore.d.ts +3 -0
  34. package/lib/typescript/commonjs/stores/chatStore.d.ts.map +1 -1
  35. package/lib/typescript/commonjs/stores/historyStore.d.ts +1 -0
  36. package/lib/typescript/commonjs/stores/historyStore.d.ts.map +1 -1
  37. package/lib/typescript/module/hooks/ChatProvider.d.ts +3 -2
  38. package/lib/typescript/module/hooks/ChatProvider.d.ts.map +1 -1
  39. package/lib/typescript/module/hooks/useXChat.d.ts +1 -2
  40. package/lib/typescript/module/hooks/useXChat.d.ts.map +1 -1
  41. package/lib/typescript/module/hooks/useXConversations.d.ts +3 -0
  42. package/lib/typescript/module/hooks/useXConversations.d.ts.map +1 -1
  43. package/lib/typescript/module/index.d.ts +1 -0
  44. package/lib/typescript/module/index.d.ts.map +1 -1
  45. package/lib/typescript/module/stores/chatStore.d.ts +3 -0
  46. package/lib/typescript/module/stores/chatStore.d.ts.map +1 -1
  47. package/lib/typescript/module/stores/historyStore.d.ts +1 -0
  48. package/lib/typescript/module/stores/historyStore.d.ts.map +1 -1
  49. package/package.json +1 -1
  50. package/src/hooks/ChatProvider.tsx +21 -9
  51. package/src/hooks/useXChat.ts +8 -20
  52. package/src/hooks/useXConversations.ts +33 -4
  53. package/src/index.ts +5 -0
  54. package/src/stores/chatStore.ts +20 -0
  55. 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","chatConfig","useMemo","chat","useXChat","convOptions","conversations","useXConversations","model","useXModel","jsx","Provider","useChatContext","ctx","useContext","Error"],"sourceRoot":"../../../src","sources":["hooks/ChatProvider.tsx"],"mappings":";;;;;;;AAMA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,kBAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAAwC,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAD,wBAAAM,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAR,uBAAA,YAAAA,CAAAM,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AATxC;AACA;AACA;AACA;AACA;;AA2EA,MAAMkB,WAAW,gBAAG,IAAAC,oBAAa,EAA0B,IAAI,CAAC;AAEhE,MAAMC,aAA0B,GAAG;EACjCC,KAAK,EAAE,IAAIC,GAAG,CAAiB,CAAC;EAChC,MAAMC,OAAOA,CAACC,GAAW,EAAE;IACzB,OAAQ,IAAI,CAACH,KAAK,CAAyBV,GAAG,CAACa,GAAG,CAAC,IAAI,IAAI;EAC7D,CAAC;EACD,MAAMC,OAAOA,CAACD,GAAW,EAAEE,KAAa,EAAE;IACvC,IAAI,CAACL,KAAK,CAAyBT,GAAG,CAACY,GAAG,EAAEE,KAAK,CAAC;EACrD,CAAC;EACD,MAAMC,UAAUA,CAACH,GAAW,EAAE;IAC3B,IAAI,CAACH,KAAK,CAAyBO,MAAM,CAACJ,GAAG,CAAC;EACjD;AACF,CAAiD;AAE1C,SAASK,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,UAAkD,GAAG,IAAAC,cAAO,EAChE,OAAO;IACLT,QAAQ;IACRI,UAAU;IACVC,kBAAkB;IAClBC;EACF,CAAC,CAAC,EACF,CAACN,QAAQ,EAAEI,UAAU,EAAEC,kBAAkB,EAAEC,eAAe,CAC5D,CAAC;EAED,MAAMI,IAAI,GAAG,IAAAC,kBAAQ,EAACH,UAAU,CAAC;EAEjC,MAAMI,WAAqC,GAAG,IAAAH,cAAO,EACnD,OAAO;IAAER,OAAO,EAAEA,OAAO,IAAIZ;EAAc,CAAC,CAAC,EAC7C,CAACY,OAAO,CACV,CAAC;EACD,MAAMY,aAAa,GAAG,IAAAC,oCAAiB,EAACF,WAAW,CAAC;EAEpD,MAAMG,KAAK,GAAG,IAAAC,oBAAS,EAAC;IAAEd,MAAM;IAAEC;EAAa,CAAC,CAAC;EAEjD,MAAMR,KAAK,GAAG,IAAAc,cAAO,EACnB,OAAO;IACL,GAAGC,IAAI;IACP,GAAGG,aAAa;IAChB,GAAGE;EACL,CAAC,CAAC,EACF,CAACL,IAAI,EAAEG,aAAa,EAAEE,KAAK,CAC7B,CAAC;EAED,oBACE,IAAAhD,WAAA,CAAAkD,GAAA,EAAC9B,WAAW,CAAC+B,QAAQ;IAACvB,KAAK,EAAEA,KAAqC;IAAAY,QAAA,EAC/DA;EAAQ,CACW,CAAC;AAE3B;AAEO,SAASY,cAAcA,CAAA,EAEC;EAC7B,MAAMC,GAAG,GAAG,IAAAC,iBAAU,EAAClC,WAAW,CAAC;EACnC,IAAI,CAACiC,GAAG,EAAE;IACR,MAAM,IAAIE,KAAK,CAAC,mDAAmD,CAAC;EACtE;EACA,OAAOF,GAAG;AACZ","ignoreList":[]}
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 storeRef = (0, _react.useRef)((0, _chatStore.createChatStore)());
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","storeRef","useRef","createChatStore","store","current","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","resetChat","loadSession","clearError","onReload","targetIdx","findIndex","setMessages","messagesOrFn","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":[]}
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, setActiveId] = (0, _react.useState)('');
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
- setActiveId(id);
39
+ setActiveIdState(id);
36
40
  return await history.loadSessionMessages(id);
37
41
  }, [history]);
38
42
  const newSession = (0, _react.useCallback)(() => {
39
- setActiveId('');
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
- setActiveId('');
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","setActiveId","useEffect","archiveSession","then","deleteSession","switchSession","useCallback","id","loadSessionMessages","newSession","title","messages","updateSession","data","session","find","s"],"sourceRoot":"../../../src","sources":["hooks/useXConversations.ts"],"mappings":";;;;;;AAMA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AAPA;AACA;AACA;AACA;AACA;;AAcO,SAASE,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,WAAW,CAAC,GAAG,IAAAF,eAAQ,EAAC,EAAE,CAAC;;EAE5C;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,aAAa,GAAG,IAAAC,kBAAW,EAC/B,MAAOC,EAAU,IAA6B;IAC5CP,WAAW,CAACO,EAAE,CAAC;IACf,OAAO,MAAMb,OAAO,CAACc,mBAAmB,CAACD,EAAE,CAAC;EAC9C,CAAC,EACD,CAACb,OAAO,CACV,CAAC;EAED,MAAMe,UAAU,GAAG,IAAAH,kBAAW,EAAC,MAAM;IACnCN,WAAW,CAAC,EAAE,CAAC;EACjB,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,WAAW,CAAC,EAAE,CAAC;IACjB;EACF,CAAC,EACD,CAACN,OAAO,EAAEK,QAAQ,CACpB,CAAC;EAED,MAAMG,cAAc,GAAG,IAAAI,kBAAW,EAChC,OAAOC,EAAU,EAAEG,KAAa,EAAEC,QAAuB,KAAK;IAC5D,MAAMjB,OAAO,CAACQ,cAAc,CAACK,EAAE,EAAEG,KAAK,EAAEC,QAAQ,CAAC;IACjDd,WAAW,CAAC,CAAC,GAAGH,OAAO,CAACE,QAAQ,CAAC,CAAC;EACpC,CAAC,EACD,CAACF,OAAO,CACV,CAAC;EAED,MAAMkB,aAAa,GAAG,IAAAN,kBAAW,EAC/B,CAACC,EAAU,EAAEM,IAAgC,KAAK;IAChD,MAAMC,OAAO,GAAGpB,OAAO,CAACE,QAAQ,CAACmB,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACT,EAAE,KAAKA,EAAE,CAAC;IACzD,IAAIO,OAAO,IAAID,IAAI,CAACH,KAAK,EAAE;MACzBI,OAAO,CAACJ,KAAK,GAAGG,IAAI,CAACH,KAAK;MAC1Bb,WAAW,CAAC,CAAC,GAAGH,OAAO,CAACE,QAAQ,CAAC,CAAC;IACpC;EACF,CAAC,EACD,CAACF,OAAO,CACV,CAAC;EAED,OAAO;IACLE,QAAQ;IACRG,QAAQ;IACRM,aAAa;IACbI,UAAU;IACVL,aAAa;IACbF,cAAc;IACdU;EACF,CAAC;AACH","ignoreList":[]}
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":[]}
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;AAOA,IAAAM,SAAA,GAAAN,OAAA;AAOA,IAAAO,kBAAA,GAAAP,OAAA;AAMA,IAAAQ,UAAA,GAAAR,OAAA;AAGA,IAAAS,aAAA,GAAAT,OAAA","ignoreList":[]}
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","createChatStore","create","set","get","messages","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":[]}
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;AAsBnC,SAASC,kBAAkBA,CAACC,OAAoB,EAAgB;EACrE,IAAIC,QAA0B,GAAG,EAAE;EACnC,IAAIC,WAAW,GAAG,KAAK;EAEvB,MAAMC,SAAS,GAAG,MAAAA,CAAA,KAAY;IAC5B,IAAID,WAAW,EAAE;IACjB,IAAI;MACF,MAAME,GAAG,GAAG,MAAMJ,OAAO,CAACK,OAAO,CAAC,oBAAoB,CAAC;MACvD,IAAID,GAAG,EAAE;QACPH,QAAQ,GAAGK,IAAI,CAACC,KAAK,CAACH,GAAG,CAAC;MAC5B;IACF,CAAC,CAAC,MAAM;MACNH,QAAQ,GAAG,EAAE;IACf;IACAC,WAAW,GAAG,IAAI;EACpB,CAAC;EAED,MAAMM,SAAS,GAAG,MAAAA,CAAA,KAAY;IAC5B,MAAMR,OAAO,CAACS,OAAO,CAAC,oBAAoB,EAAEH,IAAI,CAACI,SAAS,CAACT,QAAQ,CAAC,CAAC;EACvE,CAAC;EAED,OAAO;IACL,IAAIA,QAAQA,CAAA,EAAG;MACb,OAAOA,QAAQ;IACjB,CAAC;IAEDU,cAAc,EAAE,MAAAA,CAAOC,EAAE,EAAEC,KAAK,EAAEC,QAAQ,KAAK;MAC7C,MAAMX,SAAS,CAAC,CAAC;MACjB,IAAIW,QAAQ,CAACC,MAAM,KAAK,CAAC,EAAE;MAE3B,MAAMf,OAAO,CAACS,OAAO,CACnB,GAAGX,kBAAkB,GAAGc,EAAE,EAAE,EAC5BN,IAAI,CAACI,SAAS,CAACI,QAAQ,CACzB,CAAC;MAED,MAAME,OAAO,GAAGF,QAAQ,CAAC,CAAC,CAAC;MAC3B,MAAMG,OAAuB,GAAG;QAC9BL,EAAE;QACFC,KAAK;QACLK,WAAW,EAAEF,OAAO,EAAEG,IAAI,EAAEC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE;QAC9CC,SAAS,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC;QACrBC,YAAY,EAAEV,QAAQ,CAACC;MACzB,CAAC;;MAED;MACAd,QAAQ,GAAGA,QAAQ,CAACwB,MAAM,CAAEC,CAAC,IAAKA,CAAC,CAACd,EAAE,KAAKA,EAAE,CAAC;MAC9CX,QAAQ,GAAG,CAACgB,OAAO,EAAE,GAAGhB,QAAQ,CAAC;;MAEjC;MACA,IAAIA,QAAQ,CAACc,MAAM,GAAGlB,YAAY,EAAE;QAClC,MAAM8B,OAAO,GAAG1B,QAAQ,CAAC2B,MAAM,CAAC/B,YAAY,CAAC;QAC7C,MAAMgC,OAAO,CAACC,GAAG,CACfH,OAAO,CAACI,GAAG,CAAEL,CAAC,IAAK1B,OAAO,CAACgC,UAAU,CAAC,GAAGlC,kBAAkB,GAAG4B,CAAC,CAACd,EAAE,EAAE,CAAC,CACvE,CAAC;MACH;MAEA,MAAMJ,SAAS,CAAC,CAAC;IACnB,CAAC;IAEDyB,mBAAmB,EAAE,MAAOrB,EAAE,IAAK;MACjC,MAAMR,GAAG,GAAG,MAAMJ,OAAO,CAACK,OAAO,CAAC,GAAGP,kBAAkB,GAAGc,EAAE,EAAE,CAAC;MAC/D,IAAI,CAACR,GAAG,EAAE,OAAO,EAAE;MACnB,OAAOE,IAAI,CAACC,KAAK,CAACH,GAAG,CAAC;IACxB,CAAC;IAED8B,aAAa,EAAE,MAAOtB,EAAE,IAAK;MAC3B,MAAMT,SAAS,CAAC,CAAC;MACjB,MAAMH,OAAO,CAACgC,UAAU,CAAC,GAAGlC,kBAAkB,GAAGc,EAAE,EAAE,CAAC;MACtDX,QAAQ,GAAGA,QAAQ,CAACwB,MAAM,CAAEC,CAAC,IAAKA,CAAC,CAACd,EAAE,KAAKA,EAAE,CAAC;MAC9C,MAAMJ,SAAS,CAAC,CAAC;IACnB,CAAC;IAED2B,QAAQ,EAAE,MAAAA,CAAA,KAAY;MACpB,MAAMhC,SAAS,CAAC,CAAC;MACjB,MAAM0B,OAAO,CAACC,GAAG,CACf7B,QAAQ,CAAC8B,GAAG,CAAEL,CAAC,IAAK1B,OAAO,CAACgC,UAAU,CAAC,GAAGlC,kBAAkB,GAAG4B,CAAC,CAACd,EAAE,EAAE,CAAC,CACxE,CAAC;MACDX,QAAQ,GAAG,EAAE;MACb,MAAMO,SAAS,CAAC,CAAC;IACnB;EACF,CAAC;AACH","ignoreList":[]}
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","chat","convOptions","conversations","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;AAsExC,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,UAAkD,GAAG5B,OAAO,CAChE,OAAO;IACLoB,QAAQ;IACRI,UAAU;IACVC,kBAAkB;IAClBC;EACF,CAAC,CAAC,EACF,CAACN,QAAQ,EAAEI,UAAU,EAAEC,kBAAkB,EAAEC,eAAe,CAC5D,CAAC;EAED,MAAMG,IAAI,GAAG5B,QAAQ,CAAC2B,UAAU,CAAC;EAEjC,MAAME,WAAqC,GAAG9B,OAAO,CACnD,OAAO;IAAEqB,OAAO,EAAEA,OAAO,IAAId;EAAc,CAAC,CAAC,EAC7C,CAACc,OAAO,CACV,CAAC;EACD,MAAMU,aAAa,GAAG7B,iBAAiB,CAAC4B,WAAW,CAAC;EAEpD,MAAME,KAAK,GAAG7B,SAAS,CAAC;IAAEmB,MAAM;IAAEC;EAAa,CAAC,CAAC;EAEjD,MAAMT,KAAK,GAAGd,OAAO,CACnB,OAAO;IACL,GAAG6B,IAAI;IACP,GAAGE,aAAa;IAChB,GAAGC;EACL,CAAC,CAAC,EACF,CAACH,IAAI,EAAEE,aAAa,EAAEC,KAAK,CAC7B,CAAC;EAED,oBACE3B,IAAA,CAACC,WAAW,CAAC2B,QAAQ;IAACnB,KAAK,EAAEA,KAAqC;IAAAa,QAAA,EAC/DA;EAAQ,CACW,CAAC;AAE3B;AAEA,OAAO,SAASO,cAAcA,CAAA,EAEC;EAC7B,MAAMC,GAAG,GAAGpC,UAAU,CAACO,WAAW,CAAC;EACnC,IAAI,CAAC6B,GAAG,EAAE;IACR,MAAM,IAAIC,KAAK,CAAC,mDAAmD,CAAC;EACtE;EACA,OAAOD,GAAG;AACZ","ignoreList":[]}
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, useRef, useSyncExternalStore } from 'react';
10
- import { createChatStore } from "../stores/chatStore.js";
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 storeRef = useRef(createChatStore());
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","useRef","useSyncExternalStore","createChatStore","useXChat","config","provider","storeRef","store","current","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","resetChat","loadSession","clearError","onReload","targetIdx","findIndex","setMessages","messagesOrFn","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":[]}
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":";;AAAA;AACA;AACA;AACA;AACA;;AAEA,SAASA,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,oBAAoB,QAAQ,OAAO;AAC7E,SAASC,oBAAoB,QAAQ,wBAAqB;AAmD1D,OAAO,SAASC,QAAQA,CAKtBC,MAA8C,EACd;EAChC,MAAM;IAAEC,QAAQ;IAAEC;EAAgB,CAAC,GAAGF,MAAM;EAE5C,MAAMG,KAAK,GAAGP,OAAO,CACnB,MAAME,oBAAoB,CAACI,eAAe,CAAC,EAC3C,CAACA,eAAe,CAClB,CAAC;;EAED;EACA,MAAME,KAAK,GAAGP,oBAAoB,CAChCM,KAAK,CAACE,SAAS,EACfF,KAAK,CAACG,QAAQ,EACdH,KAAK,CAACG,QACR,CAAC;EAED,MAAMC,SAAS,GAAGb,WAAW,CAC1Bc,KAAY,IAAK;IAChB,MAAMC,CAAC,GAAGN,KAAK,CAACG,QAAQ,CAAC,CAAC;IAC1B,IAAIG,CAAC,CAACC,YAAY,EAAE;IAEpBP,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACK,aAAa,CAAC,IAAI,CAAC;IACpCR,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACM,QAAQ,CAAC,IAAI,CAAC;IAC/BT,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACO,cAAc,CAAC,EAAE,CAAC;IAEnC,MAAMC,YAAY,GAAGb,QAAQ,CAACc,qBAAqB,CAACP,KAAK,CAAC;IAC1D,MAAMQ,gBAAgB,GAAGF,YAAsC;IAC/DX,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACW,UAAU,CAACD,gBAAgB,CAAC;;IAE7C;IACA,MAAME,gBAAgB,GAAG,WAAWF,gBAAgB,CAACG,EAAE,EAAE;IACzD,MAAMC,cAA2B,GAAG;MAClCD,EAAE,EAAED,gBAAgB;MACpBG,IAAI,EAAE,EAAE;MACRC,IAAI,EAAE,WAAW;MACjBC,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC;MACrBC,WAAW,EAAE,MAAM;MACnBC,MAAM,EAAE,SAAS;MACjBC,MAAM,EAAEX,gBAAgB,CAACW;IAC3B,CAAC;IACDxB,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACW,UAAU,CAACG,cAAc,CAAC;IAE3C,IAAIQ,cAAc,GAAG,KAAK;IAC1B,MAAMC,aAAa,GAAGA,CAAA,KAAM;MAC1B,IAAI,CAACD,cAAc,EAAE;QACnBA,cAAc,GAAG,IAAI;QACrBzB,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACwB,aAAa,CAACZ,gBAAgB,CAAC;MAClD;IACF,CAAC;IAEDjB,QAAQ,CAAC8B,WAAW,CAACvB,KAAK,EAAE;MAC1BwB,QAAQ,EAAGC,OAAO,IAAK;QACrBJ,aAAa,CAAC,CAAC;QACf1B,KAAK,CAACG,QAAQ,CAAC,CAAC,CAAC4B,aAAa,CAACD,OAAiC,CAAC;MACnE,CAAC;MACDE,SAAS,EAAGF,OAAO,IAAK;QACtBJ,aAAa,CAAC,CAAC;QACf,MAAMO,CAAC,GAAGH,OAAiC;QAC3C9B,KAAK,CAACG,QAAQ,CAAC,CAAC,CAAC4B,aAAa,CAAC;UAC7B,GAAGE,CAAC;UACJV,MAAM,EAAE;QACV,CAAC,CAAC;QACFvB,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACK,aAAa,CAAC,KAAK,CAAC;MACvC,CAAC;MACD0B,OAAO,EAAGC,KAAK,IAAK;QAClBT,aAAa,CAAC,CAAC;QACf1B,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACM,QAAQ,CAAC0B,KAAK,CAACL,OAAO,CAAC;QACxC9B,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACK,aAAa,CAAC,KAAK,CAAC;QAErC,IAAIX,MAAM,CAACuC,eAAe,EAAE;UAC1B,MAAMC,WAAW,GAAGxC,MAAM,CAACuC,eAAe,CAAC/B,KAAK,EAAE;YAAE8B;UAAM,CAAC,CAAC;UAC5DnC,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACW,UAAU,CAACuB,WAAqC,CAAC;QACpE;MACF,CAAC;MACDC,YAAY,EAAGC,KAAK,IAAK;QACvBvC,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACO,cAAc,CAAC6B,KAAK,CAAC;MACxC;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CAACzC,QAAQ,EAAEE,KAAK,EAAEH,MAAM,CAC1B,CAAC;EAED,MAAM2C,KAAK,GAAGjD,WAAW,CAAC,MAAM;IAC9BO,QAAQ,CAAC0C,KAAK,CAAC,CAAC;IAChB;IACA,MAAMC,IAAI,GAAGzC,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACuC,QAAQ;IACtC,MAAMC,UAAU,GAAGF,IAAI,CAACG,IAAI,CAAEX,CAAC,IAAKA,CAAC,CAACV,MAAM,KAAK,SAAS,CAAC;IAC3D,IAAIoB,UAAU,EAAE;MACd3C,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACwB,aAAa,CAACgB,UAAU,CAAC3B,EAAE,CAAC;IAC/C;IACAhB,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACK,aAAa,CAAC,KAAK,CAAC;EACvC,CAAC,EAAE,CAACV,QAAQ,EAAEE,KAAK,CAAC,CAAC;EAErB,MAAM6C,UAAU,GAAGtD,WAAW,CAAC,MAAM;IACnCS,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACM,QAAQ,CAAC,IAAI,CAAC;EACjC,CAAC,EAAE,CAACT,KAAK,CAAC,CAAC;EAEX,MAAM8C,QAAQ,GAAGvD,WAAW,CAC1B,CAACyB,EAAU,EAAEX,KAAY,KAAK;IAC5B,MAAMC,CAAC,GAAGN,KAAK,CAACG,QAAQ,CAAC,CAAC;IAC1B,IAAIG,CAAC,CAACC,YAAY,EAAE;;IAEpB;IACA,MAAMwC,SAAS,GAAGzC,CAAC,CAACoC,QAAQ,CAACM,SAAS,CAAEf,CAAC,IAAKA,CAAC,CAACjB,EAAE,KAAKA,EAAE,CAAC;IAC1D,IAAI+B,SAAS,GAAG,CAAC,EAAE;IAEnB/C,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACK,aAAa,CAAC,IAAI,CAAC;IACpCR,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACM,QAAQ,CAAC,IAAI,CAAC;IAC/BT,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACO,cAAc,CAAC,EAAE,CAAC;IAEnCZ,QAAQ,CAAC8B,WAAW,CAACvB,KAAK,EAAE;MAC1BwB,QAAQ,EAAGC,OAAO,IAAK;QACrB9B,KAAK,CAACG,QAAQ,CAAC,CAAC,CAAC4B,aAAa,CAACD,OAAiC,CAAC;MACnE,CAAC;MACDE,SAAS,EAAGF,OAAO,IAAK;QACtB,MAAMG,CAAC,GAAGH,OAAiC;QAC3C9B,KAAK,CAACG,QAAQ,CAAC,CAAC,CAAC4B,aAAa,CAAC;UAC7B,GAAGE,CAAC;UACJV,MAAM,EAAE;QACV,CAAC,CAAC;QACFvB,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACK,aAAa,CAAC,KAAK,CAAC;MACvC,CAAC;MACD0B,OAAO,EAAGC,KAAK,IAAK;QAClBnC,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACM,QAAQ,CAAC0B,KAAK,CAACL,OAAO,CAAC;QACxC9B,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACK,aAAa,CAAC,KAAK,CAAC;QAErC,IAAIX,MAAM,CAACuC,eAAe,EAAE;UAC1B,MAAMC,WAAW,GAAGxC,MAAM,CAACuC,eAAe,CAAC/B,KAAK,EAAE;YAAE8B;UAAM,CAAC,CAAC;UAC5DnC,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACW,UAAU,CAACuB,WAAqC,CAAC;QACpE;MACF,CAAC;MACDC,YAAY,EAAGC,KAAK,IAAK;QACvBvC,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACO,cAAc,CAAC6B,KAAK,CAAC;MACxC;IACF,CAAC,CAAC;EACJ,CAAC,EACD,CAACzC,QAAQ,EAAEE,KAAK,EAAEH,MAAM,CAC1B,CAAC;EAED,MAAMoD,WAAW,GAAG1D,WAAW,CAE3B2D,YAE8D,IAC3D;IACH,IAAI,OAAOA,YAAY,KAAK,UAAU,EAAE;MACtC,MAAMC,OAAO,GAAGnD,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACuC,QAAQ;MACzC,MAAMU,YAAoC,GAAGD,OAAO,CAACE,GAAG,CAAEpB,CAAC,KAAM;QAC/DjB,EAAE,EAAEiB,CAAC,CAACjB,EAAE;QACRc,OAAO,EAAEG,CAAuB;QAChCV,MAAM,EAAEU,CAAC,CAACV,MAAM;QAChB+B,KAAK,EAAErB,CAAC,CAACqB;MACX,CAAC,CAAC,CAAC;MACH,MAAMC,IAAI,GAAGL,YAAY,CAACE,YAAY,CAAC;MACvCpD,KAAK,CACFG,QAAQ,CAAC,CAAC,CACV8C,WAAW,CACVM,IAAI,CAACF,GAAG,CAAEG,IAAI,IAAKA,IAAI,CAAC1B,OAAiC,CAC3D,CAAC;IACL,CAAC,MAAM;MACL9B,KAAK,CACFG,QAAQ,CAAC,CAAC,CACV8C,WAAW,CACVC,YAAY,CAACG,GAAG,CAAEG,IAAI,IAAKA,IAAI,CAAC1B,OAAiC,CACnE,CAAC;IACL;EACF,CAAC,EACD,CAAC9B,KAAK,CACR,CAAC;EAED,MAAMyD,UAAU,GAAGlE,WAAW,CAC5B,CACEyB,EAAU,EACV0C,WAEkE,KAC/D;IACH1D,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACsD,UAAU,CAACzC,EAAE,EAAGiB,CAAC,IAAK;MACrC,MAAMuB,IAA0B,GAAG;QACjCxC,EAAE,EAAEiB,CAAC,CAACjB,EAAE;QACRc,OAAO,EAAEG,CAAuB;QAChCV,MAAM,EAAEU,CAAC,CAACV,MAAM;QAChB+B,KAAK,EAAErB,CAAC,CAACqB;MACX,CAAC;MACD,MAAMK,OAAO,GACX,OAAOD,WAAW,KAAK,UAAU,GAAGA,WAAW,CAACF,IAAI,CAAC,GAAGE,WAAW;MACrE,MAAME,OAA6B,GAAG,CAAC,CAAC;MACxC,IAAID,OAAO,CAAC7B,OAAO,KAAK+B,SAAS,EAAE;QACjCC,MAAM,CAACC,MAAM,CAACH,OAAO,EAAED,OAAO,CAAC7B,OAAO,CAAC;MACzC;MACA,IAAI6B,OAAO,CAACpC,MAAM,KAAKsC,SAAS,EAAE;QAChCD,OAAO,CAACrC,MAAM,GAAGoC,OAAO,CAACpC,MAAM;MACjC;MACA,OAAOqC,OAAO;IAChB,CAAC,CAAC;EACJ,CAAC,EACD,CAAC5D,KAAK,CACR,CAAC;EAED,MAAM2B,aAAa,GAAGpC,WAAW,CAC9ByB,EAAU,IAAK;IACdhB,KAAK,CAACG,QAAQ,CAAC,CAAC,CAACwB,aAAa,CAACX,EAAE,CAAC;EACpC,CAAC,EACD,CAAChB,KAAK,CACR,CAAC;EAEDR,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACXM,QAAQ,CAAC0C,KAAK,CAAC,CAAC;IAClB,CAAC;EACH,CAAC,EAAE,CAAC1C,QAAQ,CAAC,CAAC;EAEd,MAAM4C,QAAgC,GAAGzC,KAAK,CAACyC,QAAQ,CAACW,GAAG,CAAEpB,CAAC,KAAM;IAClEjB,EAAE,EAAEiB,CAAC,CAACjB,EAAE;IACRc,OAAO,EAAEG,CAAuB;IAChCV,MAAM,EAAEU,CAAC,CAACV,MAAM;IAChB+B,KAAK,EAAErB,CAAC,CAACqB;EACX,CAAC,CAAC,CAAC;EAEH,OAAO;IACLZ,QAAQ;IACRsB,UAAU,EAAE/D,KAAK,CAACM,YAAY;IAC9B0D,WAAW,EAAEhE,KAAK,CAACgE,WAAW;IAC9B9B,KAAK,EAAElC,KAAK,CAACkC,KAAK;IAClB/B,SAAS;IACT0C,QAAQ;IACRN,KAAK;IACLK,UAAU;IACVI,WAAW;IACXQ,UAAU;IACV9B;EACF,CAAC;AACH","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, setActiveId] = useState('');
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
- setActiveId(id);
35
+ setActiveIdState(id);
32
36
  return await history.loadSessionMessages(id);
33
37
  }, [history]);
34
38
  const newSession = useCallback(() => {
35
- setActiveId('');
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
- setActiveId('');
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","setActiveId","archiveSession","then","deleteSession","switchSession","id","loadSessionMessages","newSession","title","messages","updateSession","data","session","find","s"],"sourceRoot":"../../../src","sources":["hooks/useXConversations.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAEA,SAASA,QAAQ,EAAEC,WAAW,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAChE,SAASC,kBAAkB,QAAQ,2BAAwB;AAW3D,OAAO,SAASC,iBAAiBA,CAACC,OAAiC,EAAE;EACnE,MAAM;IAAEC;EAAQ,CAAC,GAAGD,OAAO;EAE3B,MAAME,UAAU,GAAGL,MAAM,CAACC,kBAAkB,CAACG,OAAO,CAAC,CAAC;EACtD,MAAME,OAAO,GAAGD,UAAU,CAACE,OAAO;EAElC,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGZ,QAAQ,CAACS,OAAO,CAACE,QAAQ,CAAC;EAC1D,MAAM,CAACE,QAAQ,EAAEC,WAAW,CAAC,GAAGd,QAAQ,CAAC,EAAE,CAAC;;EAE5C;EACAE,SAAS,CAAC,MAAM;IACd;IACAO,OAAO,CAACM,cAAc,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,CAACC,IAAI,CAAC,MAAM;MACpDP,OAAO,CAACQ,aAAa,CAAC,UAAU,CAAC,CAACD,IAAI,CAAC,MAAM;QAC3CJ,WAAW,CAAC,CAAC,GAAGH,OAAO,CAACE,QAAQ,CAAC,CAAC;MACpC,CAAC,CAAC;IACJ,CAAC,CAAC;IACF;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMO,aAAa,GAAGjB,WAAW,CAC/B,MAAOkB,EAAU,IAA6B;IAC5CL,WAAW,CAACK,EAAE,CAAC;IACf,OAAO,MAAMV,OAAO,CAACW,mBAAmB,CAACD,EAAE,CAAC;EAC9C,CAAC,EACD,CAACV,OAAO,CACV,CAAC;EAED,MAAMY,UAAU,GAAGpB,WAAW,CAAC,MAAM;IACnCa,WAAW,CAAC,EAAE,CAAC;EACjB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMG,aAAa,GAAGhB,WAAW,CAC/B,MAAOkB,EAAU,IAAK;IACpB,MAAMV,OAAO,CAACQ,aAAa,CAACE,EAAE,CAAC;IAC/BP,WAAW,CAAC,CAAC,GAAGH,OAAO,CAACE,QAAQ,CAAC,CAAC;IAClC,IAAIE,QAAQ,KAAKM,EAAE,EAAE;MACnBL,WAAW,CAAC,EAAE,CAAC;IACjB;EACF,CAAC,EACD,CAACL,OAAO,EAAEI,QAAQ,CACpB,CAAC;EAED,MAAME,cAAc,GAAGd,WAAW,CAChC,OAAOkB,EAAU,EAAEG,KAAa,EAAEC,QAAuB,KAAK;IAC5D,MAAMd,OAAO,CAACM,cAAc,CAACI,EAAE,EAAEG,KAAK,EAAEC,QAAQ,CAAC;IACjDX,WAAW,CAAC,CAAC,GAAGH,OAAO,CAACE,QAAQ,CAAC,CAAC;EACpC,CAAC,EACD,CAACF,OAAO,CACV,CAAC;EAED,MAAMe,aAAa,GAAGvB,WAAW,CAC/B,CAACkB,EAAU,EAAEM,IAAgC,KAAK;IAChD,MAAMC,OAAO,GAAGjB,OAAO,CAACE,QAAQ,CAACgB,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACT,EAAE,KAAKA,EAAE,CAAC;IACzD,IAAIO,OAAO,IAAID,IAAI,CAACH,KAAK,EAAE;MACzBI,OAAO,CAACJ,KAAK,GAAGG,IAAI,CAACH,KAAK;MAC1BV,WAAW,CAAC,CAAC,GAAGH,OAAO,CAACE,QAAQ,CAAC,CAAC;IACpC;EACF,CAAC,EACD,CAACF,OAAO,CACV,CAAC;EAED,OAAO;IACLE,QAAQ;IACRE,QAAQ;IACRK,aAAa;IACbG,UAAU;IACVJ,aAAa;IACbF,cAAc;IACdS;EACF,CAAC;AACH","ignoreList":[]}
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":[]}
@@ -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";
@@ -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;;AAGA;AACA,SAASC,QAAQ,QAAQ,qBAAkB;AAO3C,SAASC,iBAAiB,QAAQ,8BAA2B;AAM7D,SAASC,SAAS,QAAQ,sBAAmB;AAG7C,SAASC,YAAY,EAAEC,cAAc,QAAQ,yBAAsB","ignoreList":[]}
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":[]}