@unif/react-native-chat-sdk 0.4.2 → 0.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/hooks/ChatProvider.js +6 -5
- package/lib/commonjs/hooks/ChatProvider.js.map +1 -1
- package/lib/commonjs/hooks/useXChat.js +3 -11
- package/lib/commonjs/hooks/useXChat.js.map +1 -1
- package/lib/commonjs/hooks/useXConversations.js +24 -4
- package/lib/commonjs/hooks/useXConversations.js.map +1 -1
- package/lib/commonjs/index.js +19 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/stores/chatStore.js +19 -0
- package/lib/commonjs/stores/chatStore.js.map +1 -1
- package/lib/commonjs/stores/historyStore.js +26 -0
- package/lib/commonjs/stores/historyStore.js.map +1 -1
- package/lib/module/hooks/ChatProvider.js +6 -5
- package/lib/module/hooks/ChatProvider.js.map +1 -1
- package/lib/module/hooks/useXChat.js +5 -13
- package/lib/module/hooks/useXChat.js.map +1 -1
- package/lib/module/hooks/useXConversations.js +24 -4
- package/lib/module/hooks/useXConversations.js.map +1 -1
- package/lib/module/index.js +2 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/stores/chatStore.js +16 -0
- package/lib/module/stores/chatStore.js.map +1 -1
- package/lib/module/stores/historyStore.js +26 -0
- package/lib/module/stores/historyStore.js.map +1 -1
- package/lib/typescript/commonjs/hooks/ChatProvider.d.ts +3 -2
- package/lib/typescript/commonjs/hooks/ChatProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/hooks/useXChat.d.ts +1 -2
- package/lib/typescript/commonjs/hooks/useXChat.d.ts.map +1 -1
- package/lib/typescript/commonjs/hooks/useXConversations.d.ts +3 -0
- package/lib/typescript/commonjs/hooks/useXConversations.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +1 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/stores/chatStore.d.ts +3 -0
- package/lib/typescript/commonjs/stores/chatStore.d.ts.map +1 -1
- package/lib/typescript/commonjs/stores/historyStore.d.ts +1 -0
- package/lib/typescript/commonjs/stores/historyStore.d.ts.map +1 -1
- package/lib/typescript/module/hooks/ChatProvider.d.ts +3 -2
- package/lib/typescript/module/hooks/ChatProvider.d.ts.map +1 -1
- package/lib/typescript/module/hooks/useXChat.d.ts +1 -2
- package/lib/typescript/module/hooks/useXChat.d.ts.map +1 -1
- package/lib/typescript/module/hooks/useXConversations.d.ts +3 -0
- package/lib/typescript/module/hooks/useXConversations.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +1 -0
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/stores/chatStore.d.ts +3 -0
- package/lib/typescript/module/stores/chatStore.d.ts.map +1 -1
- package/lib/typescript/module/stores/historyStore.d.ts +1 -0
- package/lib/typescript/module/stores/historyStore.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/hooks/ChatProvider.tsx +21 -9
- package/src/hooks/useXChat.ts +8 -20
- package/src/hooks/useXConversations.ts +33 -4
- package/src/index.ts +5 -0
- package/src/stores/chatStore.ts +20 -0
- package/src/stores/historyStore.ts +41 -0
|
@@ -6,6 +6,22 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
import { create } from 'zustand';
|
|
9
|
+
// 全局 store 管理器 — 多会话内存常驻
|
|
10
|
+
const chatStoreMap = new Map();
|
|
11
|
+
export function getOrCreateChatStore(key) {
|
|
12
|
+
let store = chatStoreMap.get(key);
|
|
13
|
+
if (!store) {
|
|
14
|
+
store = createChatStore();
|
|
15
|
+
chatStoreMap.set(key, store);
|
|
16
|
+
}
|
|
17
|
+
return store;
|
|
18
|
+
}
|
|
19
|
+
export function deleteChatStore(key) {
|
|
20
|
+
chatStoreMap.delete(key);
|
|
21
|
+
}
|
|
22
|
+
export function getChatStoreMessages(key) {
|
|
23
|
+
return chatStoreMap.get(key)?.getState()?.messages;
|
|
24
|
+
}
|
|
9
25
|
export const createChatStore = () => create((set, get) => ({
|
|
10
26
|
messages: [],
|
|
11
27
|
streamingText: '',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["create","createChatStore","set","
|
|
1
|
+
{"version":3,"names":["create","chatStoreMap","Map","getOrCreateChatStore","key","store","get","createChatStore","set","deleteChatStore","delete","getChatStoreMessages","getState","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"],"sourceRoot":"../../../src","sources":["stores/chatStore.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -53,6 +53,32 @@ export function createHistoryStore(storage) {
|
|
|
53
53
|
}
|
|
54
54
|
await saveIndex();
|
|
55
55
|
},
|
|
56
|
+
saveSession: async (id, title, messages) => {
|
|
57
|
+
await loadIndex();
|
|
58
|
+
if (messages.length === 0) return;
|
|
59
|
+
await storage.setItem(`${MESSAGE_KEY_PREFIX}${id}`, JSON.stringify(messages));
|
|
60
|
+
const lastMsg = messages[0];
|
|
61
|
+
const summary = {
|
|
62
|
+
id,
|
|
63
|
+
title,
|
|
64
|
+
lastMessage: lastMsg?.text?.slice(0, 50) ?? '',
|
|
65
|
+
timestamp: Date.now(),
|
|
66
|
+
messageCount: messages.length
|
|
67
|
+
};
|
|
68
|
+
const idx = sessions.findIndex(s => s.id === id);
|
|
69
|
+
if (idx >= 0) {
|
|
70
|
+
sessions[idx] = summary;
|
|
71
|
+
} else {
|
|
72
|
+
sessions.unshift(summary);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// FIFO 淘汰
|
|
76
|
+
if (sessions.length > MAX_SESSIONS) {
|
|
77
|
+
const removed = sessions.splice(MAX_SESSIONS);
|
|
78
|
+
await Promise.all(removed.map(s => storage.removeItem(`${MESSAGE_KEY_PREFIX}${s.id}`)));
|
|
79
|
+
}
|
|
80
|
+
await saveIndex();
|
|
81
|
+
},
|
|
56
82
|
loadSessionMessages: async id => {
|
|
57
83
|
const raw = await storage.getItem(`${MESSAGE_KEY_PREFIX}${id}`);
|
|
58
84
|
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":[]}
|
|
@@ -32,18 +32,19 @@ interface ChatContextValue<Message = ChatMessage> {
|
|
|
32
32
|
onRequest: (input: unknown) => void;
|
|
33
33
|
onReload: (id: string, input: unknown) => void;
|
|
34
34
|
abort: () => void;
|
|
35
|
-
resetChat: () => void;
|
|
36
|
-
loadSession: (messages: ChatMessage[]) => void;
|
|
37
35
|
clearError: () => void;
|
|
38
36
|
setMessages: (messages: MessageInfo<Message>[] | ((prev: MessageInfo<Message>[]) => MessageInfo<Message>[])) => void;
|
|
39
37
|
setMessage: (id: string, partial: Partial<MessageInfo<Message>> | ((msg: MessageInfo<Message>) => Partial<MessageInfo<Message>>)) => void;
|
|
40
38
|
removeMessage: (id: string) => void;
|
|
41
39
|
sessions: SessionSummary[];
|
|
42
40
|
activeId: string;
|
|
41
|
+
setActiveId: (id: string) => void;
|
|
43
42
|
switchSession: (id: string) => Promise<Message[]>;
|
|
44
43
|
newSession: () => void;
|
|
45
44
|
deleteSession: (id: string) => Promise<void>;
|
|
46
45
|
archiveSession: (id: string, title: string, messages: Message[]) => Promise<void>;
|
|
46
|
+
saveSession: (id: string, title: string, messages: Message[]) => Promise<void>;
|
|
47
|
+
loadSessionMessages: (id: string) => Promise<Message[]>;
|
|
47
48
|
updateSession: (id: string, data: Partial<{
|
|
48
49
|
title: string;
|
|
49
50
|
}>) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatProvider.d.ts","sourceRoot":"","sources":["../../../../src/hooks/ChatProvider.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAA6C,MAAM,OAAO,CAAC;AAIlE,OAAO,KAAK,EAAkB,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,KAAK,EAEV,cAAc,EACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAE9E,MAAM,WAAW,iBAAiB,CAChC,OAAO,GAAG,WAAW,EACrB,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,EAC9B,MAAM,GAAG,SAAS;IAElB,QAAQ,EAAE,oBAAoB,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACvD,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;IAC/C,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,OAAO,CAAC;IACpE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,UAAU,gBAAgB,CAAC,OAAO,GAAG,WAAW;IAE9C,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,
|
|
1
|
+
{"version":3,"file":"ChatProvider.d.ts","sourceRoot":"","sources":["../../../../src/hooks/ChatProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ export interface MessageInfo<Message = ChatMessage> {
|
|
|
14
14
|
extra?: Record<string, unknown>;
|
|
15
15
|
}
|
|
16
16
|
export interface UseXChatConfig<Message = ChatMessage, Input = RequestParams<Message>, Output = SSEOutput> {
|
|
17
|
+
conversationKey: string;
|
|
17
18
|
provider: AbstractChatProvider<Message, Input, Output>;
|
|
18
19
|
requestPlaceholder?: (input: Input) => Message;
|
|
19
20
|
requestFallback?: (input: Input, info: {
|
|
@@ -29,8 +30,6 @@ export interface UseXChatReturn<Message = ChatMessage, Input = RequestParams<Mes
|
|
|
29
30
|
onRequest: (input: Input) => void;
|
|
30
31
|
onReload: (id: string, input: Input) => void;
|
|
31
32
|
abort: () => void;
|
|
32
|
-
resetChat: () => void;
|
|
33
|
-
loadSession: (messages: ChatMessage[]) => void;
|
|
34
33
|
clearError: () => void;
|
|
35
34
|
setMessages: (messages: MessageInfo<Message>[] | ((prev: MessageInfo<Message>[]) => MessageInfo<Message>[])) => void;
|
|
36
35
|
setMessage: (id: string, partial: Partial<MessageInfo<Message>> | ((msg: MessageInfo<Message>) => Partial<MessageInfo<Message>>)) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useXChat.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useXChat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,WAAW,WAAW,CAAC,OAAO,GAAG,WAAW;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,cAAc,CAC7B,OAAO,GAAG,WAAW,EACrB,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,EAC9B,MAAM,GAAG,SAAS;IAElB,QAAQ,EAAE,oBAAoB,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACvD,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;IAC/C,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,OAAO,CAAC;IACpE,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc,CAC7B,OAAO,GAAG,WAAW,EACrB,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC;IAE9B,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC7C,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,
|
|
1
|
+
{"version":3,"file":"useXChat.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useXChat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,WAAW,WAAW,CAAC,OAAO,GAAG,WAAW;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,cAAc,CAC7B,OAAO,GAAG,WAAW,EACrB,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,EAC9B,MAAM,GAAG,SAAS;IAElB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,oBAAoB,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACvD,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;IAC/C,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,OAAO,CAAC;IACpE,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc,CAC7B,OAAO,GAAG,WAAW,EACrB,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC;IAE9B,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC7C,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,WAAW,EAAE,CACX,QAAQ,EACJ,WAAW,CAAC,OAAO,CAAC,EAAE,GACtB,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,KAAK,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,KAC3D,IAAI,CAAC;IACV,UAAU,EAAE,CACV,EAAE,EAAE,MAAM,EACV,OAAO,EACH,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,GAC7B,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,KAC/D,IAAI,CAAC;IACV,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED,wBAAgB,QAAQ,CACtB,OAAO,GAAG,WAAW,EACrB,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,EAC9B,MAAM,GAAG,SAAS,EAElB,MAAM,EAAE,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,GAC7C,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAuOhC"}
|
|
@@ -13,10 +13,13 @@ export interface UseXConversationsOptions {
|
|
|
13
13
|
export declare function useXConversations(options: UseXConversationsOptions): {
|
|
14
14
|
sessions: import("./useXConversations").SessionSummary[];
|
|
15
15
|
activeId: string;
|
|
16
|
+
setActiveId: (id: string) => void;
|
|
16
17
|
switchSession: (id: string) => Promise<ChatMessage[]>;
|
|
17
18
|
newSession: () => void;
|
|
18
19
|
deleteSession: (id: string) => Promise<void>;
|
|
19
20
|
archiveSession: (id: string, title: string, messages: ChatMessage[]) => Promise<void>;
|
|
21
|
+
saveSession: (id: string, title: string, messages: ChatMessage[]) => Promise<void>;
|
|
22
|
+
loadSessionMessages: (id: string) => Promise<ChatMessage[]>;
|
|
20
23
|
updateSession: (id: string, data: Partial<{
|
|
21
24
|
title: string;
|
|
22
25
|
}>) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useXConversations.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useXConversations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"useXConversations.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useXConversations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,WAAW,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB;;;sBAoB5B,MAAM;wBAK9B,MAAM,KAAG,OAAO,CAAC,WAAW,EAAE,CAAC;;wBAY/B,MAAM;yBAWN,MAAM,SAAS,MAAM,YAAY,WAAW,EAAE;sBAQ9C,MAAM,SAAS,MAAM,YAAY,WAAW,EAAE;8BAQ9C,MAAM,KAAG,OAAO,CAAC,WAAW,EAAE,CAAC;wBAarC,MAAM,QAAQ,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;EAsBhD"}
|
|
@@ -16,6 +16,7 @@ export type { OpenAIChatProviderConfig } from './providers/OpenAIChatProvider';
|
|
|
16
16
|
export { DeepSeekChatProvider } from './providers/DeepSeekChatProvider';
|
|
17
17
|
export type { DeepSeekChatProviderConfig } from './providers/DeepSeekChatProvider';
|
|
18
18
|
export type { ChatStorage } from './stores/storage';
|
|
19
|
+
export { getOrCreateChatStore, deleteChatStore, getChatStoreMessages, } from './stores/chatStore';
|
|
19
20
|
export { useXChat } from './hooks/useXChat';
|
|
20
21
|
export type { UseXChatConfig, UseXChatReturn, MessageInfo, } from './hooks/useXChat';
|
|
21
22
|
export { useXConversations } from './hooks/useXConversations';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,aAAa,GACd,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,WAAW,EACX,cAAc,GACf,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,aAAa,EACb,SAAS,EACT,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1E,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,YAAY,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,YAAY,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAGnF,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,aAAa,GACd,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,WAAW,EACX,cAAc,GACf,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,aAAa,EACb,SAAS,EACT,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1E,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,YAAY,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,YAAY,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAGnF,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,YAAY,EACV,cAAc,EACd,cAAc,EACd,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,YAAY,EACV,wBAAwB,EACxB,cAAc,GACf,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACpE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -22,6 +22,9 @@ interface ChatState {
|
|
|
22
22
|
resetChat: () => void;
|
|
23
23
|
loadSession: (messages: ChatMessage[]) => void;
|
|
24
24
|
}
|
|
25
|
+
export declare function getOrCreateChatStore(key: string): import("zustand").UseBoundStore<import("zustand").StoreApi<ChatState>>;
|
|
26
|
+
export declare function deleteChatStore(key: string): void;
|
|
27
|
+
export declare function getChatStoreMessages(key: string): ChatMessage[] | undefined;
|
|
25
28
|
export declare const createChatStore: () => import("zustand").UseBoundStore<import("zustand").StoreApi<ChatState>>;
|
|
26
29
|
export {};
|
|
27
30
|
//# sourceMappingURL=chatStore.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatStore.d.ts","sourceRoot":"","sources":["../../../../src/stores/chatStore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,UAAU,SAAS;IACjB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAErB,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAC3C,aAAa,EAAE,CACb,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,WAAW,KACvC,IAAI,CAAC;IACV,aAAa,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAC9C,WAAW,EAAE,CACX,QAAQ,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,CAAC,KAC/D,IAAI,CAAC;IACV,UAAU,EAAE,CACV,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC,KACzE,IAAI,CAAC;IACV,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,cAAc,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;IAClD,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,WAAW,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;CAChD;AAED,eAAO,MAAM,eAAe,8EA2EvB,CAAC"}
|
|
1
|
+
{"version":3,"file":"chatStore.d.ts","sourceRoot":"","sources":["../../../../src/stores/chatStore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,UAAU,SAAS;IACjB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAErB,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAC3C,aAAa,EAAE,CACb,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,WAAW,KACvC,IAAI,CAAC;IACV,aAAa,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAC9C,WAAW,EAAE,CACX,QAAQ,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,CAAC,KAC/D,IAAI,CAAC;IACV,UAAU,EAAE,CACV,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC,KACzE,IAAI,CAAC;IACV,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,cAAc,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;IAClD,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,WAAW,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;CAChD;AAKD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,0EAO/C;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,QAE1C;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,6BAE/C;AAED,eAAO,MAAM,eAAe,8EA2EvB,CAAC"}
|
|
@@ -14,6 +14,7 @@ export interface SessionSummary {
|
|
|
14
14
|
export interface HistoryStore {
|
|
15
15
|
sessions: SessionSummary[];
|
|
16
16
|
archiveSession: (id: string, title: string, messages: ChatMessage[]) => Promise<void>;
|
|
17
|
+
saveSession: (id: string, title: string, messages: ChatMessage[]) => Promise<void>;
|
|
17
18
|
loadSessionMessages: (id: string) => Promise<ChatMessage[]>;
|
|
18
19
|
deleteSession: (id: string) => Promise<void>;
|
|
19
20
|
clearAll: () => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"historyStore.d.ts","sourceRoot":"","sources":["../../../../src/stores/historyStore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAK7C,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,cAAc,EAAE,CACd,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,WAAW,EAAE,KACpB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,mBAAmB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5D,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"historyStore.d.ts","sourceRoot":"","sources":["../../../../src/stores/historyStore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAK7C,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,cAAc,EAAE,CACd,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,WAAW,EAAE,KACpB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,WAAW,EAAE,CACX,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,WAAW,EAAE,KACpB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,mBAAmB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5D,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,YAAY,CAqHrE"}
|
|
@@ -32,18 +32,19 @@ interface ChatContextValue<Message = ChatMessage> {
|
|
|
32
32
|
onRequest: (input: unknown) => void;
|
|
33
33
|
onReload: (id: string, input: unknown) => void;
|
|
34
34
|
abort: () => void;
|
|
35
|
-
resetChat: () => void;
|
|
36
|
-
loadSession: (messages: ChatMessage[]) => void;
|
|
37
35
|
clearError: () => void;
|
|
38
36
|
setMessages: (messages: MessageInfo<Message>[] | ((prev: MessageInfo<Message>[]) => MessageInfo<Message>[])) => void;
|
|
39
37
|
setMessage: (id: string, partial: Partial<MessageInfo<Message>> | ((msg: MessageInfo<Message>) => Partial<MessageInfo<Message>>)) => void;
|
|
40
38
|
removeMessage: (id: string) => void;
|
|
41
39
|
sessions: SessionSummary[];
|
|
42
40
|
activeId: string;
|
|
41
|
+
setActiveId: (id: string) => void;
|
|
43
42
|
switchSession: (id: string) => Promise<Message[]>;
|
|
44
43
|
newSession: () => void;
|
|
45
44
|
deleteSession: (id: string) => Promise<void>;
|
|
46
45
|
archiveSession: (id: string, title: string, messages: Message[]) => Promise<void>;
|
|
46
|
+
saveSession: (id: string, title: string, messages: Message[]) => Promise<void>;
|
|
47
|
+
loadSessionMessages: (id: string) => Promise<Message[]>;
|
|
47
48
|
updateSession: (id: string, data: Partial<{
|
|
48
49
|
title: string;
|
|
49
50
|
}>) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatProvider.d.ts","sourceRoot":"","sources":["../../../../src/hooks/ChatProvider.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAA6C,MAAM,OAAO,CAAC;AAIlE,OAAO,KAAK,EAAkB,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,KAAK,EAEV,cAAc,EACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAE9E,MAAM,WAAW,iBAAiB,CAChC,OAAO,GAAG,WAAW,EACrB,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,EAC9B,MAAM,GAAG,SAAS;IAElB,QAAQ,EAAE,oBAAoB,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACvD,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;IAC/C,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,OAAO,CAAC;IACpE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,UAAU,gBAAgB,CAAC,OAAO,GAAG,WAAW;IAE9C,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,
|
|
1
|
+
{"version":3,"file":"ChatProvider.d.ts","sourceRoot":"","sources":["../../../../src/hooks/ChatProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ export interface MessageInfo<Message = ChatMessage> {
|
|
|
14
14
|
extra?: Record<string, unknown>;
|
|
15
15
|
}
|
|
16
16
|
export interface UseXChatConfig<Message = ChatMessage, Input = RequestParams<Message>, Output = SSEOutput> {
|
|
17
|
+
conversationKey: string;
|
|
17
18
|
provider: AbstractChatProvider<Message, Input, Output>;
|
|
18
19
|
requestPlaceholder?: (input: Input) => Message;
|
|
19
20
|
requestFallback?: (input: Input, info: {
|
|
@@ -29,8 +30,6 @@ export interface UseXChatReturn<Message = ChatMessage, Input = RequestParams<Mes
|
|
|
29
30
|
onRequest: (input: Input) => void;
|
|
30
31
|
onReload: (id: string, input: Input) => void;
|
|
31
32
|
abort: () => void;
|
|
32
|
-
resetChat: () => void;
|
|
33
|
-
loadSession: (messages: ChatMessage[]) => void;
|
|
34
33
|
clearError: () => void;
|
|
35
34
|
setMessages: (messages: MessageInfo<Message>[] | ((prev: MessageInfo<Message>[]) => MessageInfo<Message>[])) => void;
|
|
36
35
|
setMessage: (id: string, partial: Partial<MessageInfo<Message>> | ((msg: MessageInfo<Message>) => Partial<MessageInfo<Message>>)) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useXChat.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useXChat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,WAAW,WAAW,CAAC,OAAO,GAAG,WAAW;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,cAAc,CAC7B,OAAO,GAAG,WAAW,EACrB,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,EAC9B,MAAM,GAAG,SAAS;IAElB,QAAQ,EAAE,oBAAoB,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACvD,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;IAC/C,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,OAAO,CAAC;IACpE,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc,CAC7B,OAAO,GAAG,WAAW,EACrB,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC;IAE9B,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC7C,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,
|
|
1
|
+
{"version":3,"file":"useXChat.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useXChat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,WAAW,WAAW,CAAC,OAAO,GAAG,WAAW;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,cAAc,CAC7B,OAAO,GAAG,WAAW,EACrB,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,EAC9B,MAAM,GAAG,SAAS;IAElB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,oBAAoB,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACvD,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;IAC/C,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;QAAE,KAAK,EAAE,KAAK,CAAA;KAAE,KAAK,OAAO,CAAC;IACpE,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc,CAC7B,OAAO,GAAG,WAAW,EACrB,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC;IAE9B,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC7C,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,WAAW,EAAE,CACX,QAAQ,EACJ,WAAW,CAAC,OAAO,CAAC,EAAE,GACtB,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,KAAK,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,KAC3D,IAAI,CAAC;IACV,UAAU,EAAE,CACV,EAAE,EAAE,MAAM,EACV,OAAO,EACH,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,GAC7B,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,KAC/D,IAAI,CAAC;IACV,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED,wBAAgB,QAAQ,CACtB,OAAO,GAAG,WAAW,EACrB,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,EAC9B,MAAM,GAAG,SAAS,EAElB,MAAM,EAAE,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,GAC7C,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,CAuOhC"}
|
|
@@ -13,10 +13,13 @@ export interface UseXConversationsOptions {
|
|
|
13
13
|
export declare function useXConversations(options: UseXConversationsOptions): {
|
|
14
14
|
sessions: import("./useXConversations").SessionSummary[];
|
|
15
15
|
activeId: string;
|
|
16
|
+
setActiveId: (id: string) => void;
|
|
16
17
|
switchSession: (id: string) => Promise<ChatMessage[]>;
|
|
17
18
|
newSession: () => void;
|
|
18
19
|
deleteSession: (id: string) => Promise<void>;
|
|
19
20
|
archiveSession: (id: string, title: string, messages: ChatMessage[]) => Promise<void>;
|
|
21
|
+
saveSession: (id: string, title: string, messages: ChatMessage[]) => Promise<void>;
|
|
22
|
+
loadSessionMessages: (id: string) => Promise<ChatMessage[]>;
|
|
20
23
|
updateSession: (id: string, data: Partial<{
|
|
21
24
|
title: string;
|
|
22
25
|
}>) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useXConversations.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useXConversations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"useXConversations.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useXConversations.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,WAAW,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB;;;sBAoB5B,MAAM;wBAK9B,MAAM,KAAG,OAAO,CAAC,WAAW,EAAE,CAAC;;wBAY/B,MAAM;yBAWN,MAAM,SAAS,MAAM,YAAY,WAAW,EAAE;sBAQ9C,MAAM,SAAS,MAAM,YAAY,WAAW,EAAE;8BAQ9C,MAAM,KAAG,OAAO,CAAC,WAAW,EAAE,CAAC;wBAarC,MAAM,QAAQ,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;EAsBhD"}
|
|
@@ -16,6 +16,7 @@ export type { OpenAIChatProviderConfig } from './providers/OpenAIChatProvider';
|
|
|
16
16
|
export { DeepSeekChatProvider } from './providers/DeepSeekChatProvider';
|
|
17
17
|
export type { DeepSeekChatProviderConfig } from './providers/DeepSeekChatProvider';
|
|
18
18
|
export type { ChatStorage } from './stores/storage';
|
|
19
|
+
export { getOrCreateChatStore, deleteChatStore, getChatStoreMessages, } from './stores/chatStore';
|
|
19
20
|
export { useXChat } from './hooks/useXChat';
|
|
20
21
|
export type { UseXChatConfig, UseXChatReturn, MessageInfo, } from './hooks/useXChat';
|
|
21
22
|
export { useXConversations } from './hooks/useXConversations';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,aAAa,GACd,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,WAAW,EACX,cAAc,GACf,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,aAAa,EACb,SAAS,EACT,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1E,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,YAAY,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,YAAY,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAGnF,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,aAAa,GACd,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,WAAW,EACX,cAAc,GACf,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,aAAa,EACb,SAAS,EACT,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1E,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,YAAY,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,YAAY,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAGnF,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,YAAY,EACV,cAAc,EACd,cAAc,EACd,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,YAAY,EACV,wBAAwB,EACxB,cAAc,GACf,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACpE,YAAY,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -22,6 +22,9 @@ interface ChatState {
|
|
|
22
22
|
resetChat: () => void;
|
|
23
23
|
loadSession: (messages: ChatMessage[]) => void;
|
|
24
24
|
}
|
|
25
|
+
export declare function getOrCreateChatStore(key: string): import("zustand").UseBoundStore<import("zustand").StoreApi<ChatState>>;
|
|
26
|
+
export declare function deleteChatStore(key: string): void;
|
|
27
|
+
export declare function getChatStoreMessages(key: string): ChatMessage[] | undefined;
|
|
25
28
|
export declare const createChatStore: () => import("zustand").UseBoundStore<import("zustand").StoreApi<ChatState>>;
|
|
26
29
|
export {};
|
|
27
30
|
//# sourceMappingURL=chatStore.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatStore.d.ts","sourceRoot":"","sources":["../../../../src/stores/chatStore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,UAAU,SAAS;IACjB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAErB,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAC3C,aAAa,EAAE,CACb,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,WAAW,KACvC,IAAI,CAAC;IACV,aAAa,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAC9C,WAAW,EAAE,CACX,QAAQ,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,CAAC,KAC/D,IAAI,CAAC;IACV,UAAU,EAAE,CACV,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC,KACzE,IAAI,CAAC;IACV,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,cAAc,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;IAClD,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,WAAW,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;CAChD;AAED,eAAO,MAAM,eAAe,8EA2EvB,CAAC"}
|
|
1
|
+
{"version":3,"file":"chatStore.d.ts","sourceRoot":"","sources":["../../../../src/stores/chatStore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,UAAU,SAAS;IACjB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAErB,UAAU,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAC3C,aAAa,EAAE,CACb,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,WAAW,KACvC,IAAI,CAAC;IACV,aAAa,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAC9C,WAAW,EAAE,CACX,QAAQ,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,CAAC,KAC/D,IAAI,CAAC;IACV,UAAU,EAAE,CACV,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC,KACzE,IAAI,CAAC;IACV,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,cAAc,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;IAClD,aAAa,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACpC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,WAAW,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;CAChD;AAKD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,0EAO/C;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,QAE1C;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,6BAE/C;AAED,eAAO,MAAM,eAAe,8EA2EvB,CAAC"}
|
|
@@ -14,6 +14,7 @@ export interface SessionSummary {
|
|
|
14
14
|
export interface HistoryStore {
|
|
15
15
|
sessions: SessionSummary[];
|
|
16
16
|
archiveSession: (id: string, title: string, messages: ChatMessage[]) => Promise<void>;
|
|
17
|
+
saveSession: (id: string, title: string, messages: ChatMessage[]) => Promise<void>;
|
|
17
18
|
loadSessionMessages: (id: string) => Promise<ChatMessage[]>;
|
|
18
19
|
deleteSession: (id: string) => Promise<void>;
|
|
19
20
|
clearAll: () => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"historyStore.d.ts","sourceRoot":"","sources":["../../../../src/stores/historyStore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAK7C,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,cAAc,EAAE,CACd,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,WAAW,EAAE,KACpB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,mBAAmB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5D,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"historyStore.d.ts","sourceRoot":"","sources":["../../../../src/stores/historyStore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAK7C,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,cAAc,EAAE,CACd,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,WAAW,EAAE,KACpB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,WAAW,EAAE,CACX,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,WAAW,EAAE,KACpB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,mBAAmB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5D,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,YAAY,CAqHrE"}
|
package/package.json
CHANGED
|
@@ -44,8 +44,6 @@ interface ChatContextValue<Message = ChatMessage> {
|
|
|
44
44
|
onRequest: (input: unknown) => void;
|
|
45
45
|
onReload: (id: string, input: unknown) => void;
|
|
46
46
|
abort: () => void;
|
|
47
|
-
resetChat: () => void;
|
|
48
|
-
loadSession: (messages: ChatMessage[]) => void;
|
|
49
47
|
clearError: () => void;
|
|
50
48
|
setMessages: (
|
|
51
49
|
messages:
|
|
@@ -62,6 +60,7 @@ interface ChatContextValue<Message = ChatMessage> {
|
|
|
62
60
|
// useXConversations
|
|
63
61
|
sessions: SessionSummary[];
|
|
64
62
|
activeId: string;
|
|
63
|
+
setActiveId: (id: string) => void;
|
|
65
64
|
switchSession: (id: string) => Promise<Message[]>;
|
|
66
65
|
newSession: () => void;
|
|
67
66
|
deleteSession: (id: string) => Promise<void>;
|
|
@@ -70,6 +69,12 @@ interface ChatContextValue<Message = ChatMessage> {
|
|
|
70
69
|
title: string,
|
|
71
70
|
messages: Message[]
|
|
72
71
|
) => Promise<void>;
|
|
72
|
+
saveSession: (
|
|
73
|
+
id: string,
|
|
74
|
+
title: string,
|
|
75
|
+
messages: Message[]
|
|
76
|
+
) => Promise<void>;
|
|
77
|
+
loadSessionMessages: (id: string) => Promise<Message[]>;
|
|
73
78
|
updateSession: (id: string, data: Partial<{ title: string }>) => void;
|
|
74
79
|
// useXModel
|
|
75
80
|
selectedModel: string;
|
|
@@ -108,24 +113,31 @@ export function ChatProvider<
|
|
|
108
113
|
children,
|
|
109
114
|
} = props;
|
|
110
115
|
|
|
116
|
+
const convOptions: UseXConversationsOptions = useMemo(
|
|
117
|
+
() => ({ storage: storage ?? memoryStorage }),
|
|
118
|
+
[storage]
|
|
119
|
+
);
|
|
120
|
+
const conversations = useXConversations(convOptions);
|
|
121
|
+
|
|
111
122
|
const chatConfig: UseXChatConfig<Message, Input, Output> = useMemo(
|
|
112
123
|
() => ({
|
|
124
|
+
conversationKey: conversations.activeId,
|
|
113
125
|
provider,
|
|
114
126
|
generateId,
|
|
115
127
|
requestPlaceholder,
|
|
116
128
|
requestFallback,
|
|
117
129
|
}),
|
|
118
|
-
[
|
|
130
|
+
[
|
|
131
|
+
conversations.activeId,
|
|
132
|
+
provider,
|
|
133
|
+
generateId,
|
|
134
|
+
requestPlaceholder,
|
|
135
|
+
requestFallback,
|
|
136
|
+
]
|
|
119
137
|
);
|
|
120
138
|
|
|
121
139
|
const chat = useXChat(chatConfig);
|
|
122
140
|
|
|
123
|
-
const convOptions: UseXConversationsOptions = useMemo(
|
|
124
|
-
() => ({ storage: storage ?? memoryStorage }),
|
|
125
|
-
[storage]
|
|
126
|
-
);
|
|
127
|
-
const conversations = useXConversations(convOptions);
|
|
128
|
-
|
|
129
141
|
const model = useXModel({ models, defaultModel });
|
|
130
142
|
|
|
131
143
|
const value = useMemo(
|
package/src/hooks/useXChat.ts
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* 消费 ChatProvider,输出可渲染的 messages 列表
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { useCallback, useEffect,
|
|
8
|
-
import {
|
|
7
|
+
import { useCallback, useEffect, useMemo, useSyncExternalStore } from 'react';
|
|
8
|
+
import { getOrCreateChatStore } from '../stores/chatStore';
|
|
9
9
|
import type { AbstractChatProvider } from '../providers/AbstractChatProvider';
|
|
10
10
|
import type { ChatMessage, MessageStatus } from '../types/message';
|
|
11
11
|
import type { RequestParams, SSEOutput } from '../types/provider';
|
|
@@ -23,6 +23,7 @@ export interface UseXChatConfig<
|
|
|
23
23
|
Input = RequestParams<Message>,
|
|
24
24
|
Output = SSEOutput,
|
|
25
25
|
> {
|
|
26
|
+
conversationKey: string;
|
|
26
27
|
provider: AbstractChatProvider<Message, Input, Output>;
|
|
27
28
|
requestPlaceholder?: (input: Input) => Message;
|
|
28
29
|
requestFallback?: (input: Input, info: { error: Error }) => Message;
|
|
@@ -40,8 +41,6 @@ export interface UseXChatReturn<
|
|
|
40
41
|
onRequest: (input: Input) => void;
|
|
41
42
|
onReload: (id: string, input: Input) => void;
|
|
42
43
|
abort: () => void;
|
|
43
|
-
resetChat: () => void;
|
|
44
|
-
loadSession: (messages: ChatMessage[]) => void;
|
|
45
44
|
clearError: () => void;
|
|
46
45
|
setMessages: (
|
|
47
46
|
messages:
|
|
@@ -64,10 +63,12 @@ export function useXChat<
|
|
|
64
63
|
>(
|
|
65
64
|
config: UseXChatConfig<Message, Input, Output>
|
|
66
65
|
): UseXChatReturn<Message, Input> {
|
|
67
|
-
const { provider } = config;
|
|
66
|
+
const { provider, conversationKey } = config;
|
|
68
67
|
|
|
69
|
-
const
|
|
70
|
-
|
|
68
|
+
const store = useMemo(
|
|
69
|
+
() => getOrCreateChatStore(conversationKey),
|
|
70
|
+
[conversationKey]
|
|
71
|
+
);
|
|
71
72
|
|
|
72
73
|
// 使用 useSyncExternalStore 订阅 zustand store 变化
|
|
73
74
|
const state = useSyncExternalStore(
|
|
@@ -153,17 +154,6 @@ export function useXChat<
|
|
|
153
154
|
store.getState().setRequesting(false);
|
|
154
155
|
}, [provider, store]);
|
|
155
156
|
|
|
156
|
-
const resetChat = useCallback(() => {
|
|
157
|
-
store.getState().resetChat();
|
|
158
|
-
}, [store]);
|
|
159
|
-
|
|
160
|
-
const loadSession = useCallback(
|
|
161
|
-
(messages: ChatMessage[]) => {
|
|
162
|
-
store.getState().loadSession(messages);
|
|
163
|
-
},
|
|
164
|
-
[store]
|
|
165
|
-
);
|
|
166
|
-
|
|
167
157
|
const clearError = useCallback(() => {
|
|
168
158
|
store.getState().setError(null);
|
|
169
159
|
}, [store]);
|
|
@@ -298,8 +288,6 @@ export function useXChat<
|
|
|
298
288
|
onRequest,
|
|
299
289
|
onReload,
|
|
300
290
|
abort,
|
|
301
|
-
resetChat,
|
|
302
|
-
loadSession,
|
|
303
291
|
clearError,
|
|
304
292
|
setMessages,
|
|
305
293
|
setMessage,
|