@unif/react-native-chat-sdk 0.1.1 → 0.1.2

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 (161) hide show
  1. package/lib/commonjs/hooks/ChatProvider.js +76 -0
  2. package/lib/commonjs/hooks/ChatProvider.js.map +1 -0
  3. package/lib/commonjs/hooks/useXChat.js +95 -0
  4. package/lib/commonjs/hooks/useXChat.js.map +1 -0
  5. package/lib/commonjs/hooks/useXConversations.js +69 -0
  6. package/lib/commonjs/hooks/useXConversations.js.map +1 -0
  7. package/lib/commonjs/hooks/useXModel.js +27 -0
  8. package/lib/commonjs/hooks/useXModel.js.map +1 -0
  9. package/lib/commonjs/index.js +82 -0
  10. package/lib/commonjs/index.js.map +1 -0
  11. package/lib/commonjs/index.md +188 -0
  12. package/lib/commonjs/package.json +1 -0
  13. package/lib/commonjs/providers/AbstractChatProvider.js +64 -0
  14. package/lib/commonjs/providers/AbstractChatProvider.js.map +1 -0
  15. package/lib/commonjs/providers/DeepSeekChatProvider.js +88 -0
  16. package/lib/commonjs/providers/DeepSeekChatProvider.js.map +1 -0
  17. package/lib/commonjs/providers/OpenAIChatProvider.js +114 -0
  18. package/lib/commonjs/providers/OpenAIChatProvider.js.map +1 -0
  19. package/lib/commonjs/stores/chatStore.js +65 -0
  20. package/lib/commonjs/stores/chatStore.js.map +1 -0
  21. package/lib/commonjs/stores/historyStore.js +79 -0
  22. package/lib/commonjs/stores/historyStore.js.map +1 -0
  23. package/lib/commonjs/stores/modelStore.js +20 -0
  24. package/lib/commonjs/stores/modelStore.js.map +1 -0
  25. package/lib/commonjs/stores/sessionStore.js +24 -0
  26. package/lib/commonjs/stores/sessionStore.js.map +1 -0
  27. package/lib/commonjs/stores/storage.js +2 -0
  28. package/lib/commonjs/stores/storage.js.map +1 -0
  29. package/lib/commonjs/tools/SSEParser.js +56 -0
  30. package/lib/commonjs/tools/SSEParser.js.map +1 -0
  31. package/lib/commonjs/tools/XRequest.js +87 -0
  32. package/lib/commonjs/tools/XRequest.js.map +1 -0
  33. package/lib/commonjs/tools/XStream.js +84 -0
  34. package/lib/commonjs/tools/XStream.js.map +1 -0
  35. package/lib/commonjs/types/message.js +2 -0
  36. package/lib/commonjs/types/message.js.map +1 -0
  37. package/lib/commonjs/types/provider.js +6 -0
  38. package/lib/commonjs/types/provider.js.map +1 -0
  39. package/lib/commonjs/types/sse.js +2 -0
  40. package/lib/commonjs/types/sse.js.map +1 -0
  41. package/lib/module/hooks/ChatProvider.js +70 -0
  42. package/lib/module/hooks/ChatProvider.js.map +1 -0
  43. package/lib/module/hooks/useXChat.js +91 -0
  44. package/lib/module/hooks/useXChat.js.map +1 -0
  45. package/lib/module/hooks/useXConversations.js +65 -0
  46. package/lib/module/hooks/useXConversations.js.map +1 -0
  47. package/lib/module/hooks/useXModel.js +23 -0
  48. package/lib/module/hooks/useXModel.js.map +1 -0
  49. package/lib/module/index.js +27 -0
  50. package/lib/module/index.js.map +1 -0
  51. package/lib/module/index.md +188 -0
  52. package/lib/module/package.json +1 -0
  53. package/lib/module/providers/AbstractChatProvider.js +59 -0
  54. package/lib/module/providers/AbstractChatProvider.js.map +1 -0
  55. package/lib/module/providers/DeepSeekChatProvider.js +83 -0
  56. package/lib/module/providers/DeepSeekChatProvider.js.map +1 -0
  57. package/lib/module/providers/OpenAIChatProvider.js +109 -0
  58. package/lib/module/providers/OpenAIChatProvider.js.map +1 -0
  59. package/lib/module/stores/chatStore.js +60 -0
  60. package/lib/module/stores/chatStore.js.map +1 -0
  61. package/lib/module/stores/historyStore.js +75 -0
  62. package/lib/module/stores/historyStore.js.map +1 -0
  63. package/lib/module/stores/modelStore.js +15 -0
  64. package/lib/module/stores/modelStore.js.map +1 -0
  65. package/lib/module/stores/sessionStore.js +19 -0
  66. package/lib/module/stores/sessionStore.js.map +1 -0
  67. package/lib/module/stores/storage.js +2 -0
  68. package/lib/module/stores/storage.js.map +1 -0
  69. package/lib/module/tools/SSEParser.js +51 -0
  70. package/lib/module/tools/SSEParser.js.map +1 -0
  71. package/lib/module/tools/XRequest.js +82 -0
  72. package/lib/module/tools/XRequest.js.map +1 -0
  73. package/lib/module/tools/XStream.js +79 -0
  74. package/lib/module/tools/XStream.js.map +1 -0
  75. package/lib/module/types/message.js +2 -0
  76. package/lib/module/types/message.js.map +1 -0
  77. package/lib/module/types/provider.js +4 -0
  78. package/lib/module/types/provider.js.map +1 -0
  79. package/lib/module/types/sse.js +2 -0
  80. package/lib/module/types/sse.js.map +1 -0
  81. package/lib/typescript/commonjs/hooks/ChatProvider.d.ts +50 -0
  82. package/lib/typescript/commonjs/hooks/ChatProvider.d.ts.map +1 -0
  83. package/lib/typescript/commonjs/hooks/useXChat.d.ts +36 -0
  84. package/lib/typescript/commonjs/hooks/useXChat.d.ts.map +1 -0
  85. package/lib/typescript/commonjs/hooks/useXConversations.d.ts +24 -0
  86. package/lib/typescript/commonjs/hooks/useXConversations.d.ts.map +1 -0
  87. package/lib/typescript/commonjs/hooks/useXModel.d.ts +18 -0
  88. package/lib/typescript/commonjs/hooks/useXModel.d.ts.map +1 -0
  89. package/lib/typescript/commonjs/index.d.ts +27 -0
  90. package/lib/typescript/commonjs/index.d.ts.map +1 -0
  91. package/lib/typescript/commonjs/package.json +1 -0
  92. package/lib/typescript/commonjs/providers/AbstractChatProvider.d.ts +38 -0
  93. package/lib/typescript/commonjs/providers/AbstractChatProvider.d.ts.map +1 -0
  94. package/lib/typescript/commonjs/providers/DeepSeekChatProvider.d.ts +23 -0
  95. package/lib/typescript/commonjs/providers/DeepSeekChatProvider.d.ts.map +1 -0
  96. package/lib/typescript/commonjs/providers/OpenAIChatProvider.d.ts +33 -0
  97. package/lib/typescript/commonjs/providers/OpenAIChatProvider.d.ts.map +1 -0
  98. package/lib/typescript/commonjs/stores/chatStore.d.ts +24 -0
  99. package/lib/typescript/commonjs/stores/chatStore.d.ts.map +1 -0
  100. package/lib/typescript/commonjs/stores/historyStore.d.ts +22 -0
  101. package/lib/typescript/commonjs/stores/historyStore.d.ts.map +1 -0
  102. package/lib/typescript/commonjs/stores/modelStore.d.ts +11 -0
  103. package/lib/typescript/commonjs/stores/modelStore.d.ts.map +1 -0
  104. package/lib/typescript/commonjs/stores/sessionStore.d.ts +13 -0
  105. package/lib/typescript/commonjs/stores/sessionStore.d.ts.map +1 -0
  106. package/lib/typescript/commonjs/stores/storage.d.ts +10 -0
  107. package/lib/typescript/commonjs/stores/storage.d.ts.map +1 -0
  108. package/lib/typescript/commonjs/tools/SSEParser.d.ts +19 -0
  109. package/lib/typescript/commonjs/tools/SSEParser.d.ts.map +1 -0
  110. package/lib/typescript/commonjs/tools/XRequest.d.ts +33 -0
  111. package/lib/typescript/commonjs/tools/XRequest.d.ts.map +1 -0
  112. package/lib/typescript/commonjs/tools/XStream.d.ts +34 -0
  113. package/lib/typescript/commonjs/tools/XStream.d.ts.map +1 -0
  114. package/lib/typescript/commonjs/types/message.d.ts +22 -0
  115. package/lib/typescript/commonjs/types/message.d.ts.map +1 -0
  116. package/lib/typescript/commonjs/types/provider.d.ts +23 -0
  117. package/lib/typescript/commonjs/types/provider.d.ts.map +1 -0
  118. package/lib/typescript/commonjs/types/sse.d.ts +63 -0
  119. package/lib/typescript/commonjs/types/sse.d.ts.map +1 -0
  120. package/lib/typescript/module/hooks/ChatProvider.d.ts +50 -0
  121. package/lib/typescript/module/hooks/ChatProvider.d.ts.map +1 -0
  122. package/lib/typescript/module/hooks/useXChat.d.ts +36 -0
  123. package/lib/typescript/module/hooks/useXChat.d.ts.map +1 -0
  124. package/lib/typescript/module/hooks/useXConversations.d.ts +24 -0
  125. package/lib/typescript/module/hooks/useXConversations.d.ts.map +1 -0
  126. package/lib/typescript/module/hooks/useXModel.d.ts +18 -0
  127. package/lib/typescript/module/hooks/useXModel.d.ts.map +1 -0
  128. package/lib/typescript/module/index.d.ts +27 -0
  129. package/lib/typescript/module/index.d.ts.map +1 -0
  130. package/lib/typescript/module/package.json +1 -0
  131. package/lib/typescript/module/providers/AbstractChatProvider.d.ts +38 -0
  132. package/lib/typescript/module/providers/AbstractChatProvider.d.ts.map +1 -0
  133. package/lib/typescript/module/providers/DeepSeekChatProvider.d.ts +23 -0
  134. package/lib/typescript/module/providers/DeepSeekChatProvider.d.ts.map +1 -0
  135. package/lib/typescript/module/providers/OpenAIChatProvider.d.ts +33 -0
  136. package/lib/typescript/module/providers/OpenAIChatProvider.d.ts.map +1 -0
  137. package/lib/typescript/module/stores/chatStore.d.ts +24 -0
  138. package/lib/typescript/module/stores/chatStore.d.ts.map +1 -0
  139. package/lib/typescript/module/stores/historyStore.d.ts +22 -0
  140. package/lib/typescript/module/stores/historyStore.d.ts.map +1 -0
  141. package/lib/typescript/module/stores/modelStore.d.ts +11 -0
  142. package/lib/typescript/module/stores/modelStore.d.ts.map +1 -0
  143. package/lib/typescript/module/stores/sessionStore.d.ts +13 -0
  144. package/lib/typescript/module/stores/sessionStore.d.ts.map +1 -0
  145. package/lib/typescript/module/stores/storage.d.ts +10 -0
  146. package/lib/typescript/module/stores/storage.d.ts.map +1 -0
  147. package/lib/typescript/module/tools/SSEParser.d.ts +19 -0
  148. package/lib/typescript/module/tools/SSEParser.d.ts.map +1 -0
  149. package/lib/typescript/module/tools/XRequest.d.ts +33 -0
  150. package/lib/typescript/module/tools/XRequest.d.ts.map +1 -0
  151. package/lib/typescript/module/tools/XStream.d.ts +34 -0
  152. package/lib/typescript/module/tools/XStream.d.ts.map +1 -0
  153. package/lib/typescript/module/types/message.d.ts +22 -0
  154. package/lib/typescript/module/types/message.d.ts.map +1 -0
  155. package/lib/typescript/module/types/provider.d.ts +23 -0
  156. package/lib/typescript/module/types/provider.d.ts.map +1 -0
  157. package/lib/typescript/module/types/sse.d.ts +63 -0
  158. package/lib/typescript/module/types/sse.d.ts.map +1 -0
  159. package/package.json +40 -8
  160. package/src/hooks/ChatProvider.tsx +1 -1
  161. package/src/hooks/useXChat.ts +1 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../src/types/provider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,WAAW,CAAC;AAC3C,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,OAAO,CAAC;AAE1C,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,WAAW;IAC5C,OAAO,EAAE,CAAC,CAAC;IACX,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB,CAAC,OAAO,GAAG,WAAW;IACtD,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;CAClD"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * SSEEnvelope 协议类型定义
3
+ */
4
+ export type SSEEventType = 'text' | 'card_data' | 'suggestion' | 'error' | 'done';
5
+ export interface SSEEnvelopeBase {
6
+ event_id: string;
7
+ turn_id: string;
8
+ seq: number;
9
+ ts: string;
10
+ session_id: string;
11
+ }
12
+ export interface SSETextEvent extends SSEEnvelopeBase {
13
+ type: 'text';
14
+ payload: {
15
+ content: string;
16
+ };
17
+ }
18
+ export interface SSECardDataEvent extends SSEEnvelopeBase {
19
+ type: 'card_data';
20
+ payload: {
21
+ cardType: string;
22
+ payload: CardPayload;
23
+ };
24
+ }
25
+ export interface SSESuggestionEvent extends SSEEnvelopeBase {
26
+ type: 'suggestion';
27
+ payload: {
28
+ items: SuggestionItem[];
29
+ };
30
+ }
31
+ export interface SSEErrorEvent extends SSEEnvelopeBase {
32
+ type: 'error';
33
+ payload: {
34
+ code: string;
35
+ message: string;
36
+ retryable: boolean;
37
+ recover_actions?: ActionPayload[];
38
+ };
39
+ }
40
+ export interface SSEDoneEvent extends SSEEnvelopeBase {
41
+ type: 'done';
42
+ payload: {
43
+ messageId: string;
44
+ reason: 'ok' | 'abort' | 'error';
45
+ };
46
+ }
47
+ export type SSEEnvelope = SSETextEvent | SSECardDataEvent | SSESuggestionEvent | SSEErrorEvent | SSEDoneEvent;
48
+ export interface SuggestionItem {
49
+ id: string;
50
+ label: string;
51
+ action?: ActionPayload;
52
+ mode?: 'action' | 'input_focus';
53
+ }
54
+ export type ActionType = 'confirm_order' | 'select_product' | 'reorder' | 'add_product' | 'clear_draft' | 'push_dealer' | 'new_order' | 'view_detail' | 'add_to_order' | 'browse_products' | 'retry_order';
55
+ export interface ActionPayload {
56
+ type: ActionType;
57
+ payload?: Record<string, unknown>;
58
+ }
59
+ export interface CardPayload {
60
+ data: Record<string, unknown>;
61
+ actions: string[];
62
+ }
63
+ //# sourceMappingURL=sse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../../../src/types/sse.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,WAAW,GACX,YAAY,GACZ,OAAO,GACP,MAAM,CAAC;AAEX,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAa,SAAQ,eAAe;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9B;AAED,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,WAAW,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACzD,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE;QACP,KAAK,EAAE,cAAc,EAAE,CAAC;KACzB,CAAC;CACH;AAED,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;KACnC,CAAC;CACH;AAED,MAAM,WAAW,YAAa,SAAQ,eAAe;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC;KAClC,CAAC;CACH;AAED,MAAM,MAAM,WAAW,GACnB,YAAY,GACZ,gBAAgB,GAChB,kBAAkB,GAClB,aAAa,GACb,YAAY,CAAC;AAEjB,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,IAAI,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAC;CACjC;AAED,MAAM,MAAM,UAAU,GAClB,eAAe,GACf,gBAAgB,GAChB,SAAS,GACT,aAAa,GACb,aAAa,GACb,aAAa,GACb,WAAW,GACX,aAAa,GACb,cAAc,GACd,iBAAiB,GACjB,aAAa,CAAC;AAElB,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB"}
package/package.json CHANGED
@@ -1,14 +1,24 @@
1
1
  {
2
2
  "name": "@unif/react-native-chat-sdk",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "UNIF React Native Chat SDK — 流式通信、Provider、状态管理",
5
- "main": "./src/index.ts",
6
- "types": "./src/index.ts",
5
+ "main": "./lib/commonjs/index.js",
6
+ "module": "./lib/module/index.js",
7
+ "types": "./lib/typescript/commonjs/index.d.ts",
8
+ "react-native": "./src/index.ts",
9
+ "source": "./src/index.ts",
7
10
  "exports": {
8
11
  ".": {
9
12
  "source": "./src/index.ts",
10
- "types": "./src/index.ts",
11
- "default": "./src/index.ts"
13
+ "react-native": "./src/index.ts",
14
+ "import": {
15
+ "types": "./lib/typescript/module/index.d.ts",
16
+ "default": "./lib/module/index.js"
17
+ },
18
+ "require": {
19
+ "types": "./lib/typescript/commonjs/index.d.ts",
20
+ "default": "./lib/commonjs/index.js"
21
+ }
12
22
  },
13
23
  "./package.json": "./package.json"
14
24
  },
@@ -22,14 +32,25 @@
22
32
  "scripts": {
23
33
  "build": "bob build",
24
34
  "clean": "del-cli lib",
35
+ "prepublishOnly": "bob build",
25
36
  "typecheck": "tsc"
26
37
  },
27
- "keywords": ["react-native", "chat", "sdk", "sse", "streaming"],
38
+ "keywords": [
39
+ "react-native",
40
+ "chat",
41
+ "sdk",
42
+ "sse",
43
+ "streaming"
44
+ ],
28
45
  "author": "qq382724935 <liulijun@pec.com.cn>",
29
46
  "license": "MIT",
30
47
  "publishConfig": {
31
48
  "registry": "https://registry.npmjs.org/"
32
49
  },
50
+ "devDependencies": {
51
+ "react-native-sse": "^1.2.1",
52
+ "typescript": "^5.9.2"
53
+ },
33
54
  "dependencies": {
34
55
  "zustand": "^4.5.0"
35
56
  },
@@ -42,8 +63,19 @@
42
63
  "source": "src",
43
64
  "output": "lib",
44
65
  "targets": [
45
- ["module", { "esm": true }],
46
- ["typescript", { "project": "tsconfig.build.json" }]
66
+ "commonjs",
67
+ [
68
+ "module",
69
+ {
70
+ "esm": true
71
+ }
72
+ ],
73
+ [
74
+ "typescript",
75
+ {
76
+ "project": "tsconfig.build.json"
77
+ }
78
+ ]
47
79
  ]
48
80
  }
49
81
  }
@@ -107,7 +107,7 @@ export function ChatProvider<
107
107
 
108
108
  const model = useXModel({ models, defaultModel });
109
109
 
110
- const value: ChatContextValue<Message> = useMemo(
110
+ const value = useMemo(
111
111
  () => ({
112
112
  ...chat,
113
113
  ...conversations,
@@ -44,9 +44,6 @@ export interface UseXChatReturn<
44
44
  clearError: () => void;
45
45
  }
46
46
 
47
- let _idCounter = 0;
48
- const defaultGenId = () => `xc-${Date.now()}-${++_idCounter}`;
49
-
50
47
  export function useXChat<
51
48
  Message = ChatMessage,
52
49
  Input = RequestParams<Message>,
@@ -54,7 +51,7 @@ export function useXChat<
54
51
  >(
55
52
  config: UseXChatConfig<Message, Input, Output>
56
53
  ): UseXChatReturn<Message, Input> {
57
- const { provider, generateId = defaultGenId } = config;
54
+ const { provider } = config;
58
55
 
59
56
  const storeRef = useRef(createChatStore());
60
57
  const store = storeRef.current;