@myun/gimi-chat 0.0.2 → 0.0.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.
Files changed (206) hide show
  1. package/dist/apis/fetch.d.ts +64 -0
  2. package/dist/apis/fetch.js +512 -0
  3. package/dist/apis/useApi.d.ts +57 -0
  4. package/dist/apis/useApi.js +378 -0
  5. package/dist/assets/image/Subtract.png +0 -0
  6. package/dist/assets/image/ai-logo.png +0 -0
  7. package/dist/assets/image/copyIcon.png +0 -0
  8. package/dist/assets/image/deepthinkActive.png +0 -0
  9. package/dist/assets/image/empty-img-dark.png +0 -0
  10. package/dist/assets/image/empty-img.png +0 -0
  11. package/dist/assets/image/like_active.png +0 -0
  12. package/dist/assets/image/love.png +0 -0
  13. package/dist/assets/image/retry.png +0 -0
  14. package/dist/assets/image/soundOut.png +0 -0
  15. package/dist/assets/image/unlike_active.png +0 -0
  16. package/dist/assets/image/unlove.png +0 -0
  17. package/dist/assets/lottie/ai-bg.json +1704 -0
  18. package/dist/assets/lottie/ai-loading.json +192 -0
  19. package/dist/assets/lottie/ai-output-loading.json +272 -0
  20. package/dist/assets/lottie/ai-output-normal.json +17694 -0
  21. package/dist/assets/lottie/ai-output-strengthen.json +17321 -0
  22. package/dist/assets/lottie/ai-voice-play.json +1 -0
  23. package/dist/assets/lottie/living.json +705 -0
  24. package/dist/assets/lottie/myun-living.json +726 -0
  25. package/dist/assets/lottie/myun-loading.json +530 -0
  26. package/dist/components/ai-chat-dialogue/index.d.ts +16 -0
  27. package/dist/components/ai-chat-dialogue/index.js +1056 -0
  28. package/dist/components/ai-chat-dialogue/index.module.scss +272 -0
  29. package/dist/components/ai-chat-dialogue/message-parser.d.ts +36 -0
  30. package/dist/components/ai-chat-dialogue/message-parser.js +52 -0
  31. package/dist/components/ai-chat-dialogue/tlv.d.ts +7 -0
  32. package/dist/components/ai-chat-dialogue/tlv.js +32 -0
  33. package/dist/components/ai-chat-dialogue/volc-voice-call-client.d.ts +47 -0
  34. package/dist/components/ai-chat-dialogue/volc-voice-call-client.js +246 -0
  35. package/dist/components/ai-correction/index.d.ts +5 -0
  36. package/dist/components/ai-correction/index.js +45 -0
  37. package/dist/components/ai-loading/index.d.ts +3 -0
  38. package/dist/components/ai-loading/index.js +14 -0
  39. package/dist/components/ai-loading/index.module.scss +11 -0
  40. package/dist/components/answer-item/index.d.ts +27 -0
  41. package/dist/components/answer-item/index.js +194 -0
  42. package/dist/components/answer-item/index.module.scss +295 -0
  43. package/dist/components/ask-card/index.d.ts +10 -0
  44. package/dist/components/ask-card/index.js +76 -0
  45. package/dist/components/ask-card/index.module.scss +125 -0
  46. package/dist/components/chat-input/index.d.ts +31 -0
  47. package/dist/components/chat-input/index.js +433 -0
  48. package/dist/components/chat-input/index.module.scss +44 -0
  49. package/dist/components/chat-voice/VoiceCommunication.d.ts +7 -0
  50. package/dist/components/chat-voice/VoiceCommunication.js +69 -0
  51. package/dist/components/chat-voice/VoiceRecord.d.ts +7 -0
  52. package/dist/components/chat-voice/VoiceRecord.js +34 -0
  53. package/dist/components/conversation-delete/index.d.ts +5 -0
  54. package/dist/components/conversation-delete/index.js +24 -0
  55. package/dist/components/dots-loading/index.d.ts +2 -0
  56. package/dist/components/dots-loading/index.js +11 -0
  57. package/dist/components/dots-loading/index.module.scss +45 -0
  58. package/dist/components/empty/index.d.ts +9 -0
  59. package/dist/components/empty/index.js +32 -0
  60. package/dist/components/empty/index.module.scss +27 -0
  61. package/dist/components/excel-components/ExcelCard.d.ts +11 -0
  62. package/dist/components/excel-components/ExcelCard.js +35 -0
  63. package/dist/components/excel-components/ExcelExcuting.d.ts +10 -0
  64. package/dist/components/excel-components/ExcelExcuting.js +263 -0
  65. package/dist/components/excel-components/ExcelFailCard.d.ts +9 -0
  66. package/dist/components/excel-components/ExcelFailCard.js +20 -0
  67. package/dist/components/excel-components/ExcelSuccessCard.d.ts +5 -0
  68. package/dist/components/excel-components/ExcelSuccessCard.js +50 -0
  69. package/dist/components/excel-components/index.module.scss +210 -0
  70. package/dist/components/excel-components/styles.module.scss +186 -0
  71. package/dist/components/file-card/fileCardSidebar.d.ts +8 -0
  72. package/dist/components/file-card/fileCardSidebar.js +56 -0
  73. package/dist/components/file-card/index.d.ts +15 -0
  74. package/dist/components/file-card/index.js +97 -0
  75. package/dist/components/file-card/index.module.scss +139 -0
  76. package/dist/components/file-preview/index.d.ts +3 -0
  77. package/dist/components/file-preview/index.js +229 -0
  78. package/dist/components/file-preview/index.module.scss +120 -0
  79. package/dist/components/file-upload/index.d.ts +16 -0
  80. package/dist/components/file-upload/index.js +238 -0
  81. package/dist/components/file-upload/uploadV1.d.ts +16 -0
  82. package/dist/components/file-upload/uploadV1.js +267 -0
  83. package/dist/components/gimi-sidebar/index.d.ts +17 -0
  84. package/dist/components/gimi-sidebar/index.js +41 -0
  85. package/dist/components/gimi-sidebar/index.module.scss +136 -0
  86. package/dist/components/header/index.d.ts +5 -0
  87. package/dist/components/header/index.js +20 -0
  88. package/dist/components/header/index.module.scss +26 -0
  89. package/dist/components/iconfont-com/index.d.ts +11 -0
  90. package/dist/components/iconfont-com/index.js +29 -0
  91. package/dist/components/index.d.ts +1 -0
  92. package/dist/components/index.js +1 -0
  93. package/dist/components/knowledge-trace/KnowledgeIconComponent.d.ts +7 -0
  94. package/dist/components/knowledge-trace/KnowledgeIconComponent.js +101 -0
  95. package/dist/components/knowledge-trace/classList.d.ts +6 -0
  96. package/dist/components/knowledge-trace/classList.js +72 -0
  97. package/dist/components/knowledge-trace/documentList.d.ts +6 -0
  98. package/dist/components/knowledge-trace/documentList.js +75 -0
  99. package/dist/components/knowledge-trace/index.d.ts +18 -0
  100. package/dist/components/knowledge-trace/index.js +155 -0
  101. package/dist/components/knowledge-trace/index.module.scss +262 -0
  102. package/dist/components/knowledge-trace/interfaces.d.ts +166 -0
  103. package/dist/components/knowledge-trace/interfaces.js +1 -0
  104. package/dist/components/knowledge-trace/videoList.d.ts +6 -0
  105. package/dist/components/knowledge-trace/videoList.js +91 -0
  106. package/dist/components/lottie-img/index.d.ts +8 -0
  107. package/dist/components/lottie-img/index.js +99 -0
  108. package/dist/components/message-actions/CopyButton.d.ts +7 -0
  109. package/dist/components/message-actions/CopyButton.js +33 -0
  110. package/dist/components/message-actions/LikeButton.d.ts +7 -0
  111. package/dist/components/message-actions/LikeButton.js +34 -0
  112. package/dist/components/message-actions/RegenerateButton.d.ts +5 -0
  113. package/dist/components/message-actions/RegenerateButton.js +27 -0
  114. package/dist/components/message-actions/UnLikeButton.d.ts +7 -0
  115. package/dist/components/message-actions/UnLikeButton.js +34 -0
  116. package/dist/components/message-actions/VoicePlay.d.ts +10 -0
  117. package/dist/components/message-actions/VoicePlay.js +74 -0
  118. package/dist/components/message-list/index.d.ts +19 -0
  119. package/dist/components/message-list/index.js +167 -0
  120. package/dist/components/message-list/index.module.scss +304 -0
  121. package/dist/components/no-microphone-root/index.d.ts +6 -0
  122. package/dist/components/no-microphone-root/index.js +36 -0
  123. package/dist/components/no-microphone-root/index.module.scss +42 -0
  124. package/dist/components/preset-agent-content/index.d.ts +8 -0
  125. package/dist/components/preset-agent-content/index.js +24 -0
  126. package/dist/components/preset-agent-content/index.module.scss +48 -0
  127. package/dist/components/quoted-content/index.d.ts +0 -0
  128. package/dist/components/quoted-content/index.js +171 -0
  129. package/dist/components/quoted-content/index.module.scss +76 -0
  130. package/dist/components/reasoning-content/index.d.ts +6 -0
  131. package/dist/components/reasoning-content/index.js +116 -0
  132. package/dist/components/reasoning-content/index.module.scss +164 -0
  133. package/dist/components/reference-content/index.d.ts +28 -0
  134. package/dist/components/reference-content/index.js +125 -0
  135. package/dist/components/reference-content/index.module.scss +73 -0
  136. package/dist/components/templates/CommonChat.d.ts +5 -0
  137. package/dist/components/templates/CommonChat.js +218 -0
  138. package/dist/components/templates/GimiChatComponent.d.ts +4 -0
  139. package/dist/components/templates/GimiChatComponent.js +23 -0
  140. package/dist/components/templates/demo/demo.d.ts +2 -0
  141. package/dist/components/templates/demo/demo.js +110 -0
  142. package/dist/components/templates/index.module.scss +119 -0
  143. package/dist/components/upload-list/index.d.ts +15 -0
  144. package/dist/components/upload-list/index.js +90 -0
  145. package/dist/components/upload-list/index.module.scss +119 -0
  146. package/dist/components/voice-bars/index.d.ts +4 -0
  147. package/dist/components/voice-bars/index.js +174 -0
  148. package/dist/components/voice-check-dialog/index.d.ts +8 -0
  149. package/dist/components/voice-check-dialog/index.js +163 -0
  150. package/dist/components/voice-check-dialog/index.module.scss +9 -0
  151. package/dist/components/voice-recording/index.d.ts +9 -0
  152. package/dist/components/voice-recording/index.js +54 -0
  153. package/dist/components/voice-recording/index.module.scss +41 -0
  154. package/dist/components/work-flow-content/demo.d.ts +3 -0
  155. package/dist/components/work-flow-content/demo.js +11 -0
  156. package/dist/components/work-flow-content/index.d.ts +6 -0
  157. package/dist/components/work-flow-content/index.js +55 -0
  158. package/dist/components/work-flow-content/index.module.scss +23 -0
  159. package/dist/constants.d.ts +24 -0
  160. package/dist/constants.js +24 -0
  161. package/dist/hooks/useChatActions.d.ts +12 -0
  162. package/dist/hooks/useChatActions.js +207 -0
  163. package/dist/hooks/useChatHistory.d.ts +8 -0
  164. package/dist/hooks/useChatHistory.js +225 -0
  165. package/dist/hooks/useChatMessage.d.ts +49 -0
  166. package/dist/hooks/useChatMessage.js +87 -0
  167. package/dist/hooks/useChatRecommend.d.ts +8 -0
  168. package/dist/hooks/useChatRecommend.js +126 -0
  169. package/dist/hooks/useChatStream.d.ts +20 -0
  170. package/dist/hooks/useChatStream.js +244 -0
  171. package/dist/hooks/useChatUI.d.ts +32 -0
  172. package/dist/hooks/useChatUI.js +134 -0
  173. package/dist/hooks/useChatVoice.d.ts +11 -0
  174. package/dist/hooks/useChatVoice.js +379 -0
  175. package/dist/hooks/useCommonChatAPI.d.ts +27 -0
  176. package/dist/hooks/useCommonChatAPI.js +1276 -0
  177. package/dist/hooks/useFile.d.ts +13 -0
  178. package/dist/hooks/useFile.js +288 -0
  179. package/dist/hooks/useKnowledgeService.d.ts +17 -0
  180. package/dist/hooks/useKnowledgeService.js +210 -0
  181. package/dist/hooks/useLastEventId.d.ts +8 -0
  182. package/dist/hooks/useLastEventId.js +66 -0
  183. package/dist/hooks/useLongPoll.d.ts +3 -0
  184. package/dist/hooks/useLongPoll.js +111 -0
  185. package/dist/hooks/useScroll.d.ts +4 -0
  186. package/dist/hooks/useScroll.js +172 -0
  187. package/dist/index.d.ts +1 -0
  188. package/dist/index.js +1 -0
  189. package/dist/interfaces/chatMessage.d.ts +139 -0
  190. package/dist/interfaces/fileInterface.d.ts +10 -0
  191. package/dist/interfaces/fileInterface.js +11 -0
  192. package/dist/interfaces/knowledgeTrace.d.ts +177 -0
  193. package/dist/store/hooks.d.ts +4 -0
  194. package/dist/store/hooks.js +3 -0
  195. package/dist/store/index.d.ts +7 -0
  196. package/dist/store/index.js +7 -0
  197. package/dist/store/slices/gimiMenuSlice.d.ts +95 -0
  198. package/dist/store/slices/gimiMenuSlice.js +251 -0
  199. package/dist/utils/chatInputUtil.d.ts +19 -0
  200. package/dist/utils/chatInputUtil.js +45 -0
  201. package/dist/utils/tools.d.ts +50 -0
  202. package/dist/utils/tools.js +474 -0
  203. package/dist/utils/voice-stream.d.ts +119 -0
  204. package/dist/utils/voice-stream.js +1162 -0
  205. package/package.json +2 -3
  206. package/LICENSE +0 -21
@@ -0,0 +1,272 @@
1
+ .aiChat {
2
+ z-index: 99999;
3
+
4
+ position: fixed;
5
+ inset: 0;
6
+
7
+ .bgImg {
8
+ position: absolute;
9
+ top: 0;
10
+ left: 0;
11
+ right: 0;
12
+ bottom: 0;
13
+ }
14
+
15
+ .back {
16
+ position: absolute;
17
+ top: 30px;
18
+ left: 20px;
19
+ z-index: 2;
20
+ display: flex;
21
+ align-items: center;
22
+ justify-content: center;
23
+ width: 30px;
24
+ height: 30px;
25
+ border-radius: 50%;
26
+ background: #ffffff;
27
+ box-shadow: 0px 0px 10px 0px rgba(153, 167, 191, 0.2);
28
+ border: 1px solid #ebf2ff;
29
+ cursor: pointer;
30
+ }
31
+
32
+ .rightWrap {
33
+ position: absolute;
34
+ right: 20px;
35
+ top: 30px;
36
+ z-index: 3;
37
+ display: flex;
38
+ align-items: center;
39
+
40
+ .iconWrap {
41
+ margin-right: 40px;
42
+ }
43
+ }
44
+
45
+ .introWrap {
46
+ position: absolute;
47
+ top: 60px;
48
+ right: -420px;
49
+ width: 400px;
50
+ height: calc(100vh - 100px);
51
+ padding: 20px 20px 15px;
52
+ background: #f7faff;
53
+ box-shadow: -6px 2px 20px 0px rgba(153, 167, 191, 0.15);
54
+ border-radius: 12px;
55
+ z-index: 2;
56
+ // overflow-y: scroll;
57
+ transition: all 0.3s ease;
58
+
59
+ &.block {
60
+ right: 20px;
61
+ }
62
+
63
+ .loading {
64
+ display: flex;
65
+ flex-direction: column;
66
+ justify-content: center;
67
+ height: 80%;
68
+ text-align: center;
69
+ }
70
+
71
+ .introHeader {
72
+ display: flex;
73
+ justify-content: space-between;
74
+ align-items: center;
75
+ margin-bottom: 20px;
76
+
77
+ .title {
78
+ font-size: 18px;
79
+ font-weight: 600;
80
+ }
81
+ }
82
+
83
+ .introContent {
84
+ height: calc(100% - 60px);
85
+ overflow-y: scroll;
86
+ padding-right: 10px;
87
+ }
88
+ }
89
+
90
+ .main {
91
+ position: relative;
92
+ height: 100%;
93
+
94
+ display: flex;
95
+ flex-direction: column;
96
+ transition: all 0.3s ease;
97
+
98
+ &.translate {
99
+ transform: translateX(-160px);
100
+ }
101
+
102
+ .content {
103
+ height: calc(100% - 380px);
104
+ overflow-y: scroll;
105
+ overflow-x: hidden;
106
+
107
+ .container {
108
+ width: 800px;
109
+ margin: 0 auto;
110
+ height: 100%;
111
+ }
112
+ }
113
+
114
+ .header {
115
+ display: flex;
116
+ justify-content: center;
117
+ margin-bottom: 30px;
118
+ height: 26px;
119
+
120
+ .logo {
121
+ width: 18px;
122
+ height: 18px;
123
+ margin-right: 8px;
124
+ flex-shrink: 0;
125
+ margin-top: 3px;
126
+ }
127
+
128
+ .title {
129
+ font-size: 18px;
130
+ text-align: center;
131
+ }
132
+ }
133
+
134
+ .tips {
135
+ font-weight: 400;
136
+ color: #54698c;
137
+ font-size: 17px;
138
+ }
139
+
140
+ .item {
141
+ margin-bottom: 10px;
142
+ font-weight: 400;
143
+ color: #333;
144
+ font-size: 17px;
145
+ line-height: 28px;
146
+ word-break: break-all;
147
+ /* 强制换行 */
148
+ overflow-wrap: break-word;
149
+ /* 在适当位置换行 */
150
+ white-space: pre-wrap;
151
+
152
+ &.answer {
153
+ font-size: 16;
154
+ color: #b0b0b0;
155
+ }
156
+ }
157
+
158
+ .voiceWrap {
159
+ height: 100%;
160
+ display: flex;
161
+ align-items: center;
162
+ }
163
+
164
+ .bottom {
165
+ display: flex;
166
+ flex-direction: column;
167
+ align-items: center;
168
+ position: absolute;
169
+ bottom: 60px;
170
+ left: 50%;
171
+ transform: translateX(-50%);
172
+ text-align: center;
173
+
174
+ .pointer {
175
+ cursor: pointer;
176
+ }
177
+
178
+ .status {
179
+ display: flex;
180
+ flex-direction: column;
181
+ width: 220px;
182
+ margin-bottom: 30px;
183
+
184
+ .iconOutside {
185
+ width: 30px;
186
+ height: 30px;
187
+ display: flex;
188
+ justify-content: center;
189
+ align-items: center;
190
+ border: 3px solid #000000;
191
+ border-radius: 50%;
192
+ }
193
+
194
+ .iconInside {
195
+ width: 13px;
196
+ height: 13px;
197
+ background-color: #000000;
198
+ }
199
+
200
+ .statusImg {
201
+ width: 24px;
202
+ height: 24px;
203
+ border-radius: 8px;
204
+ margin: 0 auto;
205
+ margin-bottom: 15px;
206
+ }
207
+
208
+ .statusText {
209
+ font-size: 16px;
210
+ color: #7d91b3;
211
+
212
+ &.danger {
213
+ color: red;
214
+ }
215
+ }
216
+ }
217
+
218
+ .btnWrap {
219
+ display: flex;
220
+ justify-content: center;
221
+
222
+ .btnItem {
223
+ display: flex;
224
+ align-items: center;
225
+ justify-content: center;
226
+ width: 76px;
227
+ height: 76px;
228
+ border-radius: 50%;
229
+ margin-right: 118px;
230
+ background: #ffffff;
231
+ box-shadow: 0px 2px 10px 0px rgba(153, 167, 191, 0.1);
232
+ cursor: pointer;
233
+
234
+ &.disable {
235
+ pointer-events: none;
236
+ opacity: 0.5;
237
+ cursor: not-allowed;
238
+ }
239
+
240
+ &:last-child {
241
+ margin-right: 0;
242
+ }
243
+ }
244
+ }
245
+ }
246
+ }
247
+ }
248
+
249
+ :global {
250
+ .out-tooltip {
251
+ .ant-tooltip-content {
252
+ .ant-tooltip-arrow {
253
+ left: 55px;
254
+ }
255
+ }
256
+ }
257
+
258
+ .ai-chat-tooltip {
259
+ z-index: 100000 !important;
260
+ }
261
+ }
262
+
263
+ :global(.ant-message) {
264
+ position: fixed !important;
265
+ z-index: 99999999 !important;
266
+ }
267
+
268
+ .disable {
269
+ opacity: 0.4;
270
+ pointer-events: none;
271
+ cursor: not-allowed;
272
+ }
@@ -0,0 +1,36 @@
1
+ export declare enum MESSAGE_TYPE {
2
+ /** AI 状态消息(说话中/结束/被打断)*/
3
+ BRIEF = "conv",
4
+ /** 语音字幕消息(AI/用户的语音转文字) */
5
+ SUBTITLE = "subv",
6
+ /** 扩展:函数调用消息 */
7
+ FUNCTION_CALL = "tool"
8
+ }
9
+ export declare enum AGENT_BRIEF {
10
+ /** 未知状态 */
11
+ UNKNOWN = 0,
12
+ /** 正在聆听 */
13
+ LISTENING = 1,
14
+ /** 思考中(AI 处理用户问题) */
15
+ THINKING = 2,
16
+ /** 正在说话 */
17
+ SPEAKING = 3,
18
+ /** 被打断 */
19
+ INTERRUPTED = 4,
20
+ /** 说话结束 */
21
+ FINISHED = 5
22
+ }
23
+ export declare type VolcSubtitleEvent = {
24
+ kind: 'subtitle';
25
+ text: string;
26
+ userId?: string;
27
+ definite?: boolean;
28
+ paragraph?: string | number;
29
+ };
30
+ export declare type VolcBriefEvent = {
31
+ kind: 'brief';
32
+ stageCode?: number;
33
+ stageDescription?: string;
34
+ };
35
+ export declare type VolcParsedEvent = VolcSubtitleEvent | VolcBriefEvent;
36
+ export declare function parseVolcBinaryMessage(buffer: ArrayBuffer): VolcParsedEvent | null;
@@ -0,0 +1,52 @@
1
+ import { tlv2String } from "./tlv";
2
+ export var MESSAGE_TYPE = /*#__PURE__*/function (MESSAGE_TYPE) {
3
+ MESSAGE_TYPE["BRIEF"] = "conv";
4
+ MESSAGE_TYPE["SUBTITLE"] = "subv";
5
+ MESSAGE_TYPE["FUNCTION_CALL"] = "tool";
6
+ return MESSAGE_TYPE;
7
+ }({});
8
+
9
+ // 2. AI 状态枚举:定义 BRIEF 消息中“状态码”的语义
10
+ export var AGENT_BRIEF = /*#__PURE__*/function (AGENT_BRIEF) {
11
+ AGENT_BRIEF[AGENT_BRIEF["UNKNOWN"] = 0] = "UNKNOWN";
12
+ AGENT_BRIEF[AGENT_BRIEF["LISTENING"] = 1] = "LISTENING";
13
+ AGENT_BRIEF[AGENT_BRIEF["THINKING"] = 2] = "THINKING";
14
+ AGENT_BRIEF[AGENT_BRIEF["SPEAKING"] = 3] = "SPEAKING";
15
+ AGENT_BRIEF[AGENT_BRIEF["INTERRUPTED"] = 4] = "INTERRUPTED";
16
+ AGENT_BRIEF[AGENT_BRIEF["FINISHED"] = 5] = "FINISHED";
17
+ return AGENT_BRIEF;
18
+ }({});
19
+ // 解析TLV 格式的二进制 buffer
20
+ export function parseVolcBinaryMessage(buffer) {
21
+ try {
22
+ var _tlv2String = tlv2String(buffer),
23
+ type = _tlv2String.type,
24
+ value = _tlv2String.value;
25
+ // 解析字幕消息(SUBTITLE)
26
+ if (type === MESSAGE_TYPE.SUBTITLE) {
27
+ var _parsed$data;
28
+ var parsed = JSON.parse(value);
29
+ var data = (parsed === null || parsed === void 0 || (_parsed$data = parsed.data) === null || _parsed$data === void 0 ? void 0 : _parsed$data[0]) || {};
30
+ return {
31
+ kind: 'subtitle',
32
+ text: data.text || '',
33
+ userId: data.userId,
34
+ definite: data.definite,
35
+ paragraph: data.paragraph
36
+ };
37
+ }
38
+ // 解析 AI 状态消息(BRIEF)
39
+ if (type === MESSAGE_TYPE.BRIEF) {
40
+ var _parsed = JSON.parse(value);
41
+ var stage = (_parsed === null || _parsed === void 0 ? void 0 : _parsed.Stage) || {};
42
+ return {
43
+ kind: 'brief',
44
+ stageCode: stage === null || stage === void 0 ? void 0 : stage.Code,
45
+ stageDescription: stage === null || stage === void 0 ? void 0 : stage.Description
46
+ };
47
+ }
48
+ return null;
49
+ } catch (_unused) {
50
+ return null;
51
+ }
52
+ }
@@ -0,0 +1,7 @@
1
+ /** 字符串转换成 TLV 二进制 前端指令符合 RTC 传输格式*/
2
+ export declare const string2tlv: (str: string, type: string) => ArrayBufferLike;
3
+ /** TLV 二进制 → 字符串 前端读取 RTC 收到的二进制消息 */
4
+ export declare const tlv2String: (tlvBuffer: ArrayBufferLike) => {
5
+ type: string;
6
+ value: string;
7
+ };
@@ -0,0 +1,32 @@
1
+ /** 字符串转换成 TLV 二进制 前端指令符合 RTC 传输格式*/
2
+ export var string2tlv = function string2tlv(str, type) {
3
+ // 1. 读取 Type:前 4 字节转字符串(比如 0x63 0x6f 0x6e 0x76 → 'conv')
4
+ var typeBuffer = new Uint8Array(4);
5
+ for (var i = 0; i < type.length; i++) typeBuffer[i] = type.charCodeAt(i);
6
+ var lengthBuffer = new Uint32Array(1);
7
+ var valueBuffer = new TextEncoder().encode(str);
8
+ lengthBuffer[0] = valueBuffer.length;
9
+ var tlvBuffer = new Uint8Array(typeBuffer.length + 4 + valueBuffer.length);
10
+ tlvBuffer.set(typeBuffer, 0);
11
+ tlvBuffer[4] = lengthBuffer[0] >> 24 & 0xff;
12
+ tlvBuffer[5] = lengthBuffer[0] >> 16 & 0xff;
13
+ tlvBuffer[6] = lengthBuffer[0] >> 8 & 0xff;
14
+ tlvBuffer[7] = lengthBuffer[0] & 0xff;
15
+ tlvBuffer.set(valueBuffer, 8);
16
+ return tlvBuffer.buffer;
17
+ };
18
+
19
+ /** TLV 二进制 → 字符串 前端读取 RTC 收到的二进制消息 */
20
+ export var tlv2String = function tlv2String(tlvBuffer) {
21
+ var typeBuffer = new Uint8Array(tlvBuffer, 0, 4);
22
+ var lengthBuffer = new Uint8Array(tlvBuffer, 4, 4);
23
+ var valueBuffer = new Uint8Array(tlvBuffer, 8);
24
+ var type = '';
25
+ for (var i = 0; i < typeBuffer.length; i++) type += String.fromCharCode(typeBuffer[i]);
26
+ var length = lengthBuffer[0] << 24 | lengthBuffer[1] << 16 | lengthBuffer[2] << 8 | lengthBuffer[3];
27
+ var value = new TextDecoder().decode(valueBuffer.subarray(0, length));
28
+ return {
29
+ type: type,
30
+ value: value
31
+ };
32
+ };
@@ -0,0 +1,47 @@
1
+ export declare enum COMMAND {
2
+ /** 指令打断ai发言 */
3
+ INTERRUPT = "interrupt"
4
+ }
5
+ export declare enum INTERRUPT_PRIORITY {
6
+ /** 无优先级 */
7
+ NONE = 0,
8
+ /** 高优先级 */
9
+ HIGH = 1,
10
+ /** 中优先级 */
11
+ MEDIUM = 2,
12
+ /** 低优先级 */
13
+ LOW = 3
14
+ }
15
+ export declare type RtcConfig = {
16
+ appId: string;
17
+ roomId: string;
18
+ userId: string;
19
+ token: string;
20
+ agentName: string;
21
+ };
22
+ export declare type VoiceChatStartParams = Record<string, any>;
23
+ export declare type VoiceChatStopParams = Record<string, any>;
24
+ export declare class VolcVoiceCallClient {
25
+ private engine;
26
+ private cfg;
27
+ private handlers;
28
+ private startVoiceChat;
29
+ private stopVoiceChat;
30
+ private startVoiceChatParams?;
31
+ private stopVoiceChatParams?;
32
+ constructor(opts: {
33
+ rtcConfig: RtcConfig;
34
+ startVoiceChat: (p: VoiceChatStartParams) => Promise<any>;
35
+ stopVoiceChat: (p: VoiceChatStopParams) => Promise<any>;
36
+ startVoiceChatParams?: VoiceChatStartParams;
37
+ stopVoiceChatParams?: VoiceChatStopParams;
38
+ });
39
+ onBinaryMessage(cb: (buffer: ArrayBuffer) => void): void;
40
+ onError(cb: (e: any) => void): void;
41
+ private bindEvents;
42
+ connect(): Promise<void>;
43
+ disconnect(): Promise<void>;
44
+ setAudioEnable(enable: boolean): Promise<void>;
45
+ mutePlayback(): void;
46
+ interrupt(interruptMode?: INTERRUPT_PRIORITY, message?: string): void;
47
+ }