@ai-group/chat-sdk 0.2.5 → 0.2.7

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 (149) hide show
  1. package/dist/cjs/assets/arrow-down.png +0 -0
  2. package/dist/cjs/assets/arrow-up.png +0 -0
  3. package/dist/cjs/assets/chatKnowledge.png +0 -0
  4. package/dist/cjs/assets/completed-black.png +0 -0
  5. package/dist/cjs/assets/completed.png +0 -0
  6. package/dist/cjs/assets/document-black.png +0 -0
  7. package/dist/cjs/assets/document.png +0 -0
  8. package/dist/cjs/assets/document.svg +16 -0
  9. package/dist/cjs/assets/empty.png +0 -0
  10. package/dist/cjs/assets/group.png +0 -0
  11. package/dist/cjs/assets/qa-black.png +0 -0
  12. package/dist/cjs/assets/qa.png +0 -0
  13. package/dist/cjs/assets/skillNo-black.png +0 -0
  14. package/dist/cjs/assets/skillNo.png +0 -0
  15. package/dist/cjs/assets/tools-black.png +0 -0
  16. package/dist/cjs/assets/tools.png +0 -0
  17. package/dist/cjs/assets/user.png +0 -0
  18. package/dist/cjs/client/base.d.ts +9 -0
  19. package/dist/cjs/client/base.js +18 -0
  20. package/dist/cjs/client/base.js.map +7 -0
  21. package/dist/cjs/client/restClient.d.ts +0 -0
  22. package/dist/cjs/client/restClient.js +1 -0
  23. package/dist/cjs/client/restClient.js.map +7 -0
  24. package/dist/cjs/client/wsClient.d.ts +0 -0
  25. package/dist/cjs/client/wsClient.js +1 -0
  26. package/dist/cjs/client/wsClient.js.map +7 -0
  27. package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.d.ts +10 -0
  28. package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js +484 -0
  29. package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js.map +7 -0
  30. package/dist/cjs/components/XAiChatbot/index.d.ts +12 -0
  31. package/dist/cjs/components/XAiChatbot/index.js +365 -0
  32. package/dist/cjs/components/XAiChatbot/index.js.map +7 -0
  33. package/dist/cjs/components/XAiChatbot/styles.d.ts +71 -0
  34. package/dist/cjs/components/XAiChatbot/styles.js +409 -0
  35. package/dist/cjs/components/XAiChatbot/styles.js.map +7 -0
  36. package/dist/cjs/components/XAiProvider/XAiProvider.stories.d.ts +7 -0
  37. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js +127 -0
  38. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js.map +7 -0
  39. package/dist/cjs/components/XAiProvider/index.d.ts +4 -0
  40. package/dist/cjs/components/XAiProvider/index.js +113 -0
  41. package/dist/cjs/components/XAiProvider/index.js.map +7 -0
  42. package/dist/cjs/components/XAiSDK.d.ts +10 -0
  43. package/dist/cjs/components/XAiSDK.js +53 -0
  44. package/dist/cjs/components/XAiSDK.js.map +7 -0
  45. package/dist/cjs/components/XAiWebSDKWrapper.d.ts +9 -0
  46. package/dist/cjs/components/XAiWebSDKWrapper.js +64 -0
  47. package/dist/cjs/components/XAiWebSDKWrapper.js.map +7 -0
  48. package/dist/cjs/context/AiProviderContext.d.ts +12 -0
  49. package/dist/cjs/context/AiProviderContext.js +74 -0
  50. package/dist/cjs/context/AiProviderContext.js.map +7 -0
  51. package/dist/cjs/context/ThemeContext.d.ts +20 -0
  52. package/dist/cjs/context/ThemeContext.js +37 -0
  53. package/dist/cjs/context/ThemeContext.js.map +7 -0
  54. package/dist/cjs/hooks/useAgentGenerator.d.ts +67 -0
  55. package/dist/cjs/hooks/useAgentGenerator.js +445 -0
  56. package/dist/cjs/hooks/useAgentGenerator.js.map +7 -0
  57. package/dist/cjs/hooks/useEventStreamRequest.d.ts +30 -0
  58. package/dist/cjs/hooks/useEventStreamRequest.js +188 -0
  59. package/dist/cjs/hooks/useEventStreamRequest.js.map +7 -0
  60. package/dist/cjs/hooks/useProviderContext.d.ts +33 -0
  61. package/dist/cjs/hooks/useProviderContext.js +105 -0
  62. package/dist/cjs/hooks/useProviderContext.js.map +7 -0
  63. package/dist/cjs/hooks/useXAiSDK.d.ts +14 -0
  64. package/dist/cjs/hooks/useXAiSDK.js +75 -0
  65. package/dist/cjs/hooks/useXAiSDK.js.map +7 -0
  66. package/dist/cjs/index.d.ts +9 -0
  67. package/dist/cjs/index.js +61 -0
  68. package/dist/cjs/index.js.map +7 -0
  69. package/dist/cjs/services/api.d.ts +40 -0
  70. package/dist/cjs/services/api.js +49 -0
  71. package/dist/cjs/services/api.js.map +7 -0
  72. package/dist/cjs/styles/common.d.ts +64 -0
  73. package/dist/cjs/styles/common.js +144 -0
  74. package/dist/cjs/styles/common.js.map +7 -0
  75. package/dist/cjs/styles/markdown.d.ts +3 -0
  76. package/dist/cjs/styles/markdown.js +193 -0
  77. package/dist/cjs/styles/markdown.js.map +7 -0
  78. package/dist/cjs/types/XAiChatbot.d.ts +159 -0
  79. package/dist/cjs/types/XAiChatbot.js +18 -0
  80. package/dist/cjs/types/XAiChatbot.js.map +7 -0
  81. package/dist/cjs/types/XAiMessage.d.ts +121 -0
  82. package/dist/cjs/types/XAiMessage.js +55 -0
  83. package/dist/cjs/types/XAiMessage.js.map +7 -0
  84. package/dist/cjs/types/XAiProvider.d.ts +32 -0
  85. package/dist/cjs/types/XAiProvider.js +41 -0
  86. package/dist/cjs/types/XAiProvider.js.map +7 -0
  87. package/dist/cjs/types/index.d.ts +3 -0
  88. package/dist/cjs/types/index.js +28 -0
  89. package/dist/cjs/types/index.js.map +7 -0
  90. package/dist/cjs/types/mdx.d.ts +18 -0
  91. package/dist/cjs/utils/chat.d.ts +34 -0
  92. package/dist/cjs/utils/chat.js +1 -0
  93. package/dist/cjs/utils/chat.js.map +7 -0
  94. package/dist/cjs/utils/index.d.ts +2 -0
  95. package/dist/cjs/utils/index.js +49 -0
  96. package/dist/cjs/utils/index.js.map +7 -0
  97. package/dist/cjs/utils/providerManager.d.ts +22 -0
  98. package/dist/cjs/utils/providerManager.js +73 -0
  99. package/dist/cjs/utils/providerManager.js.map +7 -0
  100. package/dist/cjs/utils/request.d.ts +78 -0
  101. package/dist/cjs/utils/request.example.d.ts +39 -0
  102. package/dist/cjs/utils/request.example.js +211 -0
  103. package/dist/cjs/utils/request.example.js.map +7 -0
  104. package/dist/cjs/utils/request.js +231 -0
  105. package/dist/cjs/utils/request.js.map +7 -0
  106. package/dist/cjs/utils/umdEntry.d.ts +11 -0
  107. package/dist/cjs/utils/umdEntry.js +95 -0
  108. package/dist/cjs/utils/umdEntry.js.map +7 -0
  109. package/dist/esm/assets/user.png +0 -0
  110. package/dist/esm/client/base.d.ts +9 -0
  111. package/dist/esm/client/restClient.d.ts +0 -0
  112. package/dist/esm/client/wsClient.d.ts +0 -0
  113. package/dist/esm/components/XAiChatbot/XAiChatbot.stories.d.ts +10 -0
  114. package/dist/esm/components/XAiChatbot/index.d.ts +12 -0
  115. package/dist/esm/components/XAiChatbot/index.js +11 -3
  116. package/dist/esm/components/XAiChatbot/index.js.map +1 -1
  117. package/dist/esm/components/XAiChatbot/styles.d.ts +71 -0
  118. package/dist/esm/components/XAiChatbot/styles.js +2 -2
  119. package/dist/esm/components/XAiChatbot/styles.js.map +1 -1
  120. package/dist/esm/components/XAiProvider/XAiProvider.stories.d.ts +7 -0
  121. package/dist/esm/components/XAiProvider/index.d.ts +4 -0
  122. package/dist/esm/components/XAiProvider/index.js +3 -0
  123. package/dist/esm/components/XAiProvider/index.js.map +1 -1
  124. package/dist/esm/components/XAiSDK.d.ts +10 -0
  125. package/dist/esm/components/XAiWebSDKWrapper.d.ts +9 -0
  126. package/dist/esm/context/AiProviderContext.d.ts +12 -0
  127. package/dist/esm/context/ThemeContext.d.ts +20 -0
  128. package/dist/esm/hooks/useAgentGenerator.d.ts +67 -0
  129. package/dist/esm/hooks/useAgentGenerator.js +50 -17
  130. package/dist/esm/hooks/useAgentGenerator.js.map +1 -1
  131. package/dist/esm/hooks/useEventStreamRequest.d.ts +30 -0
  132. package/dist/esm/hooks/useProviderContext.d.ts +33 -0
  133. package/dist/esm/hooks/useXAiSDK.d.ts +14 -0
  134. package/dist/esm/index.d.ts +9 -0
  135. package/dist/esm/services/api.d.ts +40 -0
  136. package/dist/esm/styles/common.d.ts +64 -0
  137. package/dist/esm/styles/markdown.d.ts +3 -0
  138. package/dist/esm/types/XAiChatbot.d.ts +159 -0
  139. package/dist/esm/types/XAiMessage.d.ts +121 -0
  140. package/dist/esm/types/XAiProvider.d.ts +32 -0
  141. package/dist/esm/types/index.d.ts +3 -0
  142. package/dist/esm/utils/chat.d.ts +34 -0
  143. package/dist/esm/utils/index.d.ts +2 -0
  144. package/dist/esm/utils/providerManager.d.ts +22 -0
  145. package/dist/esm/utils/request.d.ts +78 -0
  146. package/dist/esm/utils/request.example.d.ts +39 -0
  147. package/dist/esm/utils/umdEntry.d.ts +11 -0
  148. package/dist/umd/chat-sdk.min.js +1 -1
  149. package/package.json +1 -1
@@ -0,0 +1,159 @@
1
+ import React, { ReactNode, RefObject, ChangeEvent, FocusEvent, MouseEvent } from 'react';
2
+ import type { PromptProps } from '@ant-design/x';
3
+ import type { MessageType } from 'src/client/base';
4
+ import type { Messages } from './XAiMessage';
5
+ export interface User {
6
+ id: string;
7
+ name: string;
8
+ avatar?: string;
9
+ }
10
+ export interface MessageProps {
11
+ _id: string;
12
+ type: string;
13
+ content: Record<string, any>;
14
+ createdAt: number;
15
+ user: User;
16
+ position?: 'left' | 'right' | 'center' | 'pop';
17
+ hasTime?: boolean;
18
+ status?: 'pending' | 'sent' | 'fail';
19
+ }
20
+ export interface QuickReplyItemProps {
21
+ name: string;
22
+ code: string;
23
+ icon?: string;
24
+ img?: string;
25
+ isNew?: boolean;
26
+ isHighlight?: boolean;
27
+ }
28
+ export interface ComposerHandle {
29
+ setText: (text: string) => void;
30
+ }
31
+ export interface ScrollToEndOptions {
32
+ animated?: boolean;
33
+ force?: boolean;
34
+ }
35
+ export interface MessageContainerHandle {
36
+ scrollToEnd: (options?: ScrollToEndOptions) => void;
37
+ }
38
+ export interface NavbarProps {
39
+ title?: string;
40
+ subtitle?: string;
41
+ avatar?: string;
42
+ }
43
+ export interface ToolbarItemProps {
44
+ id: string;
45
+ icon: string;
46
+ label: string;
47
+ disabled?: boolean;
48
+ }
49
+ export interface IconButtonProps {
50
+ icon: string;
51
+ onClick: () => void;
52
+ disabled?: boolean;
53
+ }
54
+ export interface RecorderProps {
55
+ onStart?: () => void;
56
+ onStop?: (audioBlob: Blob) => void;
57
+ onError?: (error: Error) => void;
58
+ }
59
+ export type InputType = 'text' | 'voice';
60
+ export interface ChatbotMessageFields {
61
+ messages?: MessageType[];
62
+ setMessages?: React.Dispatch<React.SetStateAction<MessageType[]>>;
63
+ /** 发送消息回调 */
64
+ onSend?: (type: string, content: string) => void;
65
+ /** 清空消息回调 */
66
+ onClear?: () => void;
67
+ /** 停止生成回调 */
68
+ onStop?: () => void;
69
+ }
70
+ export interface ActionItem {
71
+ key?: string;
72
+ icon: React.ReactNode;
73
+ tooltip?: string;
74
+ }
75
+ /**
76
+ * AI 聊天机器人组件
77
+ */
78
+ export interface XAiChatbotProps extends ChatbotMessageFields {
79
+ /** 宽屏断点 */
80
+ wideBreakpoint?: string;
81
+ /** 导航栏展示 */
82
+ navbarShow?: boolean;
83
+ /** 导航栏配置 */
84
+ navbar?: NavbarProps;
85
+ /** 导航栏渲染函数,会覆盖 navbar */
86
+ renderNavbar?: () => ReactNode;
87
+ /** 是否加载中 */
88
+ loading?: boolean;
89
+ /** 加载更多文案 */
90
+ loadMoreText?: string;
91
+ /** 在消息列表上面的渲染函数 */
92
+ renderBeforeMessageList?: () => ReactNode;
93
+ /** 消息列表 ref */
94
+ messagesRef?: RefObject<MessageContainerHandle>;
95
+ /** 下拉加载回调 */
96
+ onRefresh?: () => Promise<any>;
97
+ /** 滚动消息列表回调 */
98
+ onScroll?: (event: React.UIEvent<HTMLDivElement, UIEvent>) => void;
99
+ /** 消息内容渲染函数 */
100
+ renderMessageContent?: (message: MessageProps) => ReactNode;
101
+ /** 快捷短语列表 */
102
+ quickReplies?: QuickReplyItemProps[];
103
+ /** 快捷短语是否可见 */
104
+ quickRepliesVisible?: boolean;
105
+ /** 点击快速回复回调 */
106
+ onQuickReplyClick?: (item: QuickReplyItemProps, index: number) => void;
107
+ /** 快捷短语的滚动回调 */
108
+ onQuickReplyScroll?: () => void;
109
+ /** 快捷短语渲染函数,会覆盖 quickReplies */
110
+ renderQuickReplies?: () => ReactNode;
111
+ /** 输入区 ref */
112
+ composerRef?: RefObject<ComposerHandle>;
113
+ /** 输入框初始内容 */
114
+ text?: string;
115
+ /** 空状态图片 */
116
+ emptyStateImage?: string;
117
+ /** 空状态文案 */
118
+ emptyStateText?: string;
119
+ /** 输入框占位符 */
120
+ placeholder?: string;
121
+ /** 输入框聚焦回调 */
122
+ onInputFocus?: (event: FocusEvent) => void;
123
+ /** 输入框更新回调 */
124
+ onInputChange?: (value: string, event: ChangeEvent) => void;
125
+ /** 输入框失去焦点回调 */
126
+ onInputBlur?: (event: FocusEvent) => void;
127
+ /** 输入框粘贴图片后的回调 */
128
+ onImageSend?: (file: File) => Promise<any>;
129
+ /** 输入方式 */
130
+ inputType?: InputType;
131
+ /** 输入方式切换回调 */
132
+ onInputTypeChange?: (inputType: InputType) => void;
133
+ /** 语音输入配置 */
134
+ recorder?: RecorderProps;
135
+ /** 工具栏配置 */
136
+ toolbar?: ToolbarItemProps[];
137
+ /** AI头像 */
138
+ avatar?: ReactNode;
139
+ /** 用户头像 */
140
+ userAvatar?: ReactNode;
141
+ /** 工具栏点击回调 */
142
+ onToolbarClick?: (item: ToolbarItemProps, event: MouseEvent) => void;
143
+ /** 工具栏打开/关闭回调 */
144
+ onAccessoryToggle?: (isAccessoryOpen: boolean) => void;
145
+ /** 输入框右边图标按钮配置 */
146
+ rightAction?: IconButtonProps;
147
+ /** 上传按钮是否显示 */
148
+ uploadBtnShow?: boolean;
149
+ /** 帮助消息点击回调 */
150
+ onSuggestMessageClick?: (item: PromptProps, id: string) => void;
151
+ /** 消息左下角展示字段 */
152
+ messageTooltip?: (msg: Messages) => React.ReactNode;
153
+ /** 消息右下角功能区 */
154
+ messageActions?: ActionItem[];
155
+ /** 消息右下角功能区点击回调 */
156
+ onMessagesActionsCallback?: (index: number, data: Messages) => void;
157
+ /** 输入组件 */
158
+ Composer?: React.ElementType;
159
+ }
@@ -0,0 +1,121 @@
1
+ import type { PromptsProps } from '@ant-design/x';
2
+ export type MessageType = 'TextMessage' | 'ActionExecutionMessage' | 'ResultMessage' | 'AgentStateMessage' | 'ImageMessage' | 'SuggestionMessage';
3
+ export declare enum MessageRole {
4
+ user = "user",// 用户
5
+ assistant = "assistant",// AI助手
6
+ suggestion = "suggestion",// 建议
7
+ system = "system"
8
+ }
9
+ export declare enum MessageStatus {
10
+ init = "init",
11
+ pending = "pending",// 生成中/接收中
12
+ done = "done",// 已完成
13
+ failed = "failed",// 失败
14
+ recalled = "recalled",// 已撤回
15
+ deleted = "deleted"
16
+ }
17
+ /**
18
+ * 所有消息的基础结构
19
+ */
20
+ export interface BaseMessage {
21
+ id: string;
22
+ type: MessageType;
23
+ createdAt: Date;
24
+ status?: MessageStatus;
25
+ thinks?: ActionExecutionMessage[];
26
+ extra?: any;
27
+ }
28
+ /**
29
+ * 文本消息
30
+ */
31
+ export interface TextMessage extends BaseMessage {
32
+ type: 'TextMessage';
33
+ role: MessageRole;
34
+ content: {
35
+ text: string;
36
+ };
37
+ parentMessageId?: string;
38
+ }
39
+ /**
40
+ * 工具/动作执行消息
41
+ */
42
+ export interface ActionExecutionMessage extends BaseMessage {
43
+ type: 'ActionExecutionMessage';
44
+ name: string;
45
+ arguments?: Record<string, any>;
46
+ parentMessageId?: string;
47
+ extra?: any;
48
+ }
49
+ /**
50
+ * 工具/动作执行结果消息
51
+ */
52
+ export interface ResultMessage extends BaseMessage {
53
+ type: 'ResultMessage';
54
+ actionExecutionId: string;
55
+ actionName: string;
56
+ result: string;
57
+ }
58
+ /**
59
+ * 智能体状态消息
60
+ */
61
+ export interface AgentStateMessage extends BaseMessage {
62
+ type: 'AgentStateMessage';
63
+ threadId: string;
64
+ agentName: string;
65
+ nodeName: string;
66
+ runId: string;
67
+ active: boolean;
68
+ role: MessageRole;
69
+ state: any;
70
+ running: boolean;
71
+ }
72
+ /**
73
+ * 图片消息
74
+ */
75
+ export interface ImageMessage extends BaseMessage {
76
+ type: 'ImageMessage';
77
+ content: {
78
+ format: string;
79
+ bytes: string;
80
+ thinks?: ActionExecutionMessage[];
81
+ };
82
+ role: MessageRole;
83
+ parentMessageId?: string;
84
+ }
85
+ /**
86
+ * 提示消息
87
+ */
88
+ export interface SuggestionMessage extends BaseMessage {
89
+ type: 'SuggestionMessage';
90
+ content: PromptsProps['items'];
91
+ role: MessageRole;
92
+ }
93
+ /**
94
+ * 消息输入类型(用于前端输入/组装)
95
+ * 可选地包含不同类型的消息体
96
+ */
97
+ export interface MessageInput extends BaseMessage {
98
+ textMessage?: Omit<TextMessage, 'id' | 'createdAt' | 'type'>;
99
+ actionExecutionMessage?: Omit<ActionExecutionMessage, 'id' | 'createdAt' | 'type'>;
100
+ resultMessage?: Omit<ResultMessage, 'id' | 'createdAt' | 'type'>;
101
+ agentStateMessage?: Omit<AgentStateMessage, 'id' | 'createdAt' | 'type'>;
102
+ imageMessage?: Omit<ImageMessage, 'id' | 'createdAt' | 'type'>;
103
+ }
104
+ /**
105
+ * 消息列表中消息格式
106
+ */
107
+ export type Messages = TextMessage | ImageMessage | SuggestionMessage;
108
+ export declare enum ActionAvailability {
109
+ disabled = "disabled",// 不可用
110
+ enabled = "enabled",// 可用
111
+ remote = "remote"
112
+ }
113
+ /**
114
+ * 工具/动作定义
115
+ */
116
+ export interface Action {
117
+ name: string;
118
+ description: string;
119
+ jsonSchema: string;
120
+ available?: ActionAvailability;
121
+ }
@@ -0,0 +1,32 @@
1
+ import React, { ReactNode } from 'react';
2
+ import { AiClient } from 'src/client/base';
3
+ import type { ChatbotMessageFields } from './XAiChatbot';
4
+ export type ThemeType = 'default';
5
+ export interface XAiProviderProps {
6
+ /** AI 服务地址 */
7
+ url: string;
8
+ /** 认证 token */
9
+ token: string;
10
+ /** 配置信息 */
11
+ config?: any;
12
+ /** Provider 唯一标识,用于区分多个 Provider 实例 */
13
+ providerId?: string;
14
+ /** Token 刷新回调 */
15
+ onRefreshToken?: () => Promise<string>;
16
+ /** 子组件 */
17
+ children: ReactNode;
18
+ }
19
+ export interface XAiSDKProps extends XAiProviderProps {
20
+ theme?: ThemeType;
21
+ componentProps?: {
22
+ id?: string;
23
+ [key: string]: any;
24
+ };
25
+ }
26
+ export interface XAiContextType extends Required<ChatbotMessageFields> {
27
+ client: AiClient | null;
28
+ token: string;
29
+ loading: boolean;
30
+ error: string | null;
31
+ }
32
+ export declare const XAiContext: React.Context<XAiContextType | null>;
@@ -0,0 +1,3 @@
1
+ export * from './XAiChatbot';
2
+ export * from './XAiMessage';
3
+ export * from './XAiProvider';
@@ -0,0 +1,34 @@
1
+ /**
2
+ * 处理发送消息并接收流式响应
3
+ * @param {Object} params - 参数对象
4
+ * @param {string} params.message - 用户输入的消息
5
+ * @param {Array} params.files - 上传的文件列表
6
+ * @param {string} params.botNo - 机器人编号
7
+ * @param {string} params.agentNo - 代理编号
8
+ * @param {string} params.agentVersionNo - 代理版本编号
9
+ * @param {string} params.sessionId - 会话ID
10
+ * @param {string} params.botPrefix - API前缀
11
+ * @param {string} params.mode - 模式
12
+ * @param {Function} params.setMessages - 设置消息列表的函数
13
+ * @param {Function} params.setLoading - 设置加载状态的函数
14
+ * @param {Function} params.setContent - 设置输入内容的函数
15
+ * @param {Function} params.setSessionId - 设置会话ID的函数
16
+ * @param {Function} params.scrollToBottom - 滚动到底部的函数
17
+ * @param {Object} params.controllerRef - AbortController引用
18
+ * @param {Object} params.timeoutRef - 超时计时器引用
19
+ * @param {Function} params.setServerTime - 设置服务器时间的函数
20
+ * @param {Function} params.processActionData - 处理动作数据的函数
21
+ * @param {Function} params.handleNeedApprove - 处理需要授权的回调函数
22
+ * @param {boolean} params.isJsonMode - 是否为JSON模式
23
+ * @param {boolean} params.skipUserMessage - 是否跳过添加用户消息(用于授权后重新发送)
24
+ * @param {string} params.aiMessageId - 已创建的AI消息ID(配合skipUserMessage使用)
25
+ * @returns {Promise<void>}
26
+ */
27
+ /**
28
+ * 停止生成响应
29
+ * @param {Object} params - 参数对象
30
+ * @param {Object} params.controllerRef - AbortController引用
31
+ * @param {Object} params.timeoutRef - 超时计时器引用
32
+ * @param {Function} params.setLoading - 设置加载状态的函数
33
+ * @param {Function} params.setMessages - 设置消息列表的函数
34
+ */
@@ -0,0 +1,2 @@
1
+ export declare const safeJsonParse: <T = any>(str?: string, defaultValue?: any) => T;
2
+ export declare const safeJsonStringify: <T = any>(obj?: T, defaultValue?: any) => string;
@@ -0,0 +1,22 @@
1
+ import { MessageType } from 'src/client/base';
2
+ declare class ProviderManager {
3
+ private providers;
4
+ register(providerId: string, data: {
5
+ client: any;
6
+ token: string;
7
+ url: string;
8
+ }): void;
9
+ unregister(providerId: string): void;
10
+ getProvider(providerId: string): {
11
+ client: any;
12
+ messages: import("src/client/base").MessageType[];
13
+ token: string;
14
+ url: string;
15
+ } | undefined;
16
+ addMessage(providerId: string, message: MessageType): void;
17
+ clearMessages(providerId: string): void;
18
+ getProviderIds(): string[];
19
+ }
20
+ export declare const providerManager: ProviderManager;
21
+ export declare const useProviderManager: () => ProviderManager;
22
+ export {};
@@ -0,0 +1,78 @@
1
+ import { AxiosInstance, AxiosRequestConfig, AxiosResponse, AxiosError, InternalAxiosRequestConfig } from 'axios';
2
+ export interface RequestConfig extends AxiosRequestConfig {
3
+ showError?: boolean;
4
+ retry?: number;
5
+ retryDelay?: number;
6
+ }
7
+ export interface ApiResponse<T = any> {
8
+ code: number;
9
+ message: string;
10
+ data: T;
11
+ success: boolean;
12
+ }
13
+ export interface RequestError {
14
+ code: number;
15
+ message: string;
16
+ details?: any;
17
+ }
18
+ export interface RequestInterceptor {
19
+ onRequest?: (config: InternalAxiosRequestConfig) => InternalAxiosRequestConfig | Promise<InternalAxiosRequestConfig>;
20
+ onRequestError?: (error: AxiosError) => Promise<AxiosError>;
21
+ }
22
+ export interface ResponseInterceptor {
23
+ onResponse?: <T>(response: AxiosResponse<ApiResponse<T>>) => AxiosResponse<ApiResponse<T>> | Promise<AxiosResponse<ApiResponse<T>>>;
24
+ onResponseError?: (error: AxiosError) => Promise<AxiosError>;
25
+ }
26
+ export interface CreateRequestConfig {
27
+ baseURL?: string;
28
+ timeout?: number;
29
+ headers?: Record<string, string>;
30
+ requestInterceptor?: RequestInterceptor;
31
+ responseInterceptor?: ResponseInterceptor;
32
+ onError?: (error: RequestError) => void;
33
+ }
34
+ /**
35
+ * 创建请求实例
36
+ */
37
+ export declare function createRequest(config?: CreateRequestConfig): AxiosInstance;
38
+ /**
39
+ * 通用 GET 请求
40
+ */
41
+ export declare function get<T = any>(url: string, params?: any, config?: RequestConfig): Promise<ApiResponse<T>>;
42
+ /**
43
+ * 通用 POST 请求
44
+ */
45
+ export declare function post<T = any>(url: string, data?: any, config?: RequestConfig): Promise<ApiResponse<T>>;
46
+ /**
47
+ * 通用 PUT 请求
48
+ */
49
+ export declare function put<T = any>(url: string, data?: any, config?: RequestConfig): Promise<ApiResponse<T>>;
50
+ /**
51
+ * 通用 DELETE 请求
52
+ */
53
+ export declare function del<T = any>(url: string, config?: RequestConfig): Promise<ApiResponse<T>>;
54
+ /**
55
+ * 通用 PATCH 请求
56
+ */
57
+ export declare function patch<T = any>(url: string, data?: any, config?: RequestConfig): Promise<ApiResponse<T>>;
58
+ /**
59
+ * 文件上传
60
+ */
61
+ export declare function upload<T = any>(url: string, file: File, onProgress?: (progress: number) => void, config?: RequestConfig): Promise<ApiResponse<T>>;
62
+ /**
63
+ * 下载文件
64
+ */
65
+ export declare function download(url: string, filename?: string, config?: RequestConfig): Promise<void>;
66
+ export declare const request: AxiosInstance;
67
+ declare const _default: {
68
+ createRequest: typeof createRequest;
69
+ get: typeof get;
70
+ post: typeof post;
71
+ put: typeof put;
72
+ del: typeof del;
73
+ patch: typeof patch;
74
+ upload: typeof upload;
75
+ download: typeof download;
76
+ request: AxiosInstance;
77
+ };
78
+ export default _default;
@@ -0,0 +1,39 @@
1
+ declare function getUserInfo(userId: string): Promise<{
2
+ id: string;
3
+ name: string;
4
+ email: string;
5
+ } | undefined>;
6
+ declare function createUser(userData: {
7
+ name: string;
8
+ email: string;
9
+ password: string;
10
+ }): Promise<{
11
+ id: string;
12
+ name: string;
13
+ email: string;
14
+ } | undefined>;
15
+ declare function updateUser(userId: string, userData: {
16
+ name?: string;
17
+ email?: string;
18
+ }): Promise<{
19
+ id: string;
20
+ name: string;
21
+ email: string;
22
+ } | undefined>;
23
+ declare function deleteUser(userId: string): Promise<true | undefined>;
24
+ declare function updateUserProfile(userId: string, profileData: {
25
+ avatar?: string;
26
+ bio?: string;
27
+ }): Promise<{
28
+ id: string;
29
+ avatar: string;
30
+ bio: string;
31
+ } | undefined>;
32
+ declare function uploadAvatar(userId: string, file: File): Promise<{
33
+ url: string;
34
+ } | undefined>;
35
+ declare function downloadReport(reportId: string, filename?: string): Promise<void>;
36
+ declare function getProtectedData(): Promise<any>;
37
+ declare function handleErrors(): Promise<import("./request").ApiResponse<any> | undefined>;
38
+ declare function batchRequests(): Promise<import("./request").ApiResponse<any>[] | undefined>;
39
+ export { getUserInfo, createUser, updateUser, deleteUser, updateUserProfile, uploadAvatar, downloadReport, getProtectedData, handleErrors, batchRequests, };
@@ -0,0 +1,11 @@
1
+ import { XAiSDKProps } from "../types/XAiProvider";
2
+ declare class XAiWebSDK {
3
+ container: HTMLElement;
4
+ props: XAiSDKProps;
5
+ root: any;
6
+ constructor(container: HTMLElement, props: XAiSDKProps);
7
+ mount(): void;
8
+ unmount(): void;
9
+ static initChatbot(containerOrProps: HTMLElement | XAiSDKProps, props?: XAiSDKProps): XAiWebSDK;
10
+ }
11
+ export default XAiWebSDK;