@ai-group/chat-sdk 3.6.2 → 3.6.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/dist/cjs/components/FileGallery/index.d.ts +0 -30
- package/dist/cjs/components/FileGallery/index.js +287 -209
- package/dist/cjs/components/FileGallery/index.js.map +2 -2
- package/dist/cjs/components/FileGallery/styles.d.ts +5 -0
- package/dist/cjs/components/FileGallery/styles.js +106 -0
- package/dist/cjs/components/FileGallery/styles.js.map +2 -2
- package/dist/cjs/components/XAdkProvider/compound/Sender.js +3 -2
- package/dist/cjs/components/XAdkProvider/compound/Sender.js.map +2 -2
- package/dist/cjs/components/XAdkSender/index.js +1 -0
- package/dist/cjs/components/XAdkSender/index.js.map +2 -2
- package/dist/cjs/hooks/useADKChat.js +365 -167
- package/dist/cjs/hooks/useADKChat.js.map +3 -3
- package/dist/cjs/hooks/useAgentGenerator.js +4 -3
- package/dist/cjs/hooks/useAgentGenerator.js.map +2 -2
- package/dist/cjs/types/FileGallery.d.ts +41 -0
- package/dist/cjs/types/FileGallery.js.map +1 -1
- package/dist/cjs/types/XAdkProvider.d.ts +4 -0
- package/dist/cjs/types/XAdkProvider.js.map +1 -1
- package/dist/cjs/types/XAiProvider.d.ts +13 -46
- package/dist/cjs/types/XAiProvider.js +2 -25
- package/dist/cjs/types/XAiProvider.js.map +3 -3
- package/dist/esm/components/FileGallery/index.d.ts +0 -30
- package/dist/esm/components/FileGallery/index.js +362 -364
- package/dist/esm/components/FileGallery/index.js.map +1 -1
- package/dist/esm/components/FileGallery/styles.d.ts +5 -0
- package/dist/esm/components/FileGallery/styles.js +10 -2
- package/dist/esm/components/FileGallery/styles.js.map +1 -1
- package/dist/esm/components/XAdkProvider/compound/Sender.js +5 -3
- package/dist/esm/components/XAdkProvider/compound/Sender.js.map +1 -1
- package/dist/esm/components/XAdkSender/index.js +1 -0
- package/dist/esm/components/XAdkSender/index.js.map +1 -1
- package/dist/esm/hooks/useADKChat.js +314 -133
- package/dist/esm/hooks/useADKChat.js.map +1 -1
- package/dist/esm/hooks/useAgentGenerator.js +4 -3
- package/dist/esm/hooks/useAgentGenerator.js.map +1 -1
- package/dist/esm/types/FileGallery.d.ts +41 -0
- package/dist/esm/types/FileGallery.js.map +1 -1
- package/dist/esm/types/XAdkProvider.d.ts +4 -0
- package/dist/esm/types/XAdkProvider.js.map +1 -1
- package/dist/esm/types/XAiProvider.d.ts +13 -46
- package/dist/esm/types/XAiProvider.js +7 -39
- package/dist/esm/types/XAiProvider.js.map +1 -1
- package/dist/umd/chat-sdk.min.js +1 -1
- package/package.json +1 -1
|
@@ -19,6 +19,14 @@ export interface FileItem {
|
|
|
19
19
|
tempUrl?: string;
|
|
20
20
|
response?: any;
|
|
21
21
|
}
|
|
22
|
+
/** 文件图标类型 */
|
|
23
|
+
export type FileIconType = "pdf" | "word" | "excel" | "ppt" | "audio" | "video" | "zip" | "markdown" | "image" | "default";
|
|
24
|
+
/** 图片展示模式 */
|
|
25
|
+
export type ImageDisplayMode = "thumbnail" | "preview" | "full";
|
|
26
|
+
/** 音视频展示模式 */
|
|
27
|
+
export type MediaDisplayMode = "inline" | "card";
|
|
28
|
+
/** 文件卡片类型:不传则自动推断(图片/音频/视频用原生渲染),传 'file' 强制附件卡片展示 */
|
|
29
|
+
export type FileCardType = "file" | "image" | "audio" | "video";
|
|
22
30
|
export interface FileGalleryProps {
|
|
23
31
|
file: FileItem;
|
|
24
32
|
align?: "left" | "right";
|
|
@@ -28,6 +36,39 @@ export interface FileGalleryProps {
|
|
|
28
36
|
style?: React.CSSProperties;
|
|
29
37
|
/** 点击文件卡片回调(非图片、非音视频文件) */
|
|
30
38
|
onClick?: (file: FileItem) => void;
|
|
39
|
+
/**
|
|
40
|
+
* 文件卡片类型
|
|
41
|
+
* - 不传:自动根据文件扩展名/MIME推断,图片/音频/视频使用原生渲染
|
|
42
|
+
* - 'file':强制以附件卡片展示(音视频不可播放)
|
|
43
|
+
* - 'image' / 'audio' / 'video':强制指定类型
|
|
44
|
+
*/
|
|
45
|
+
type?: FileCardType;
|
|
46
|
+
/** 图片展示模式: thumbnail(缩略图) | preview(中等预览) | full(全宽) */
|
|
47
|
+
imageDisplayMode?: ImageDisplayMode;
|
|
48
|
+
/** 图片自定义宽度 */
|
|
49
|
+
imageWidth?: number | string;
|
|
50
|
+
/** 图片自定义高度 */
|
|
51
|
+
imageHeight?: number | string;
|
|
52
|
+
/** 图片加载策略 */
|
|
53
|
+
imageLoading?: "lazy" | "eager";
|
|
54
|
+
/** 图片 alt 文本 */
|
|
55
|
+
imageAlt?: string;
|
|
56
|
+
/** 自动播放(仅音频) */
|
|
57
|
+
mediaAutoPlay?: boolean;
|
|
58
|
+
/** 循环播放 */
|
|
59
|
+
mediaLoop?: boolean;
|
|
60
|
+
/** 静音 */
|
|
61
|
+
mediaMuted?: boolean;
|
|
62
|
+
/** 视频封面图 URL */
|
|
63
|
+
mediaPoster?: string;
|
|
64
|
+
/** 透传给原生 video 标签的属性 */
|
|
65
|
+
videoProps?: Partial<React.JSX.IntrinsicElements["video"]>;
|
|
66
|
+
/** 透传给原生 audio 标签的属性 */
|
|
67
|
+
audioProps?: Partial<React.JSX.IntrinsicElements["audio"]>;
|
|
68
|
+
/** 按文件类型自定义图标映射 */
|
|
69
|
+
iconMap?: Partial<Record<FileIconType, React.ReactNode>>;
|
|
70
|
+
/** 完全自定义图标(优先级最高,覆盖所有类型) */
|
|
71
|
+
customIcon?: React.ReactNode;
|
|
31
72
|
}
|
|
32
73
|
export interface FileItemComponentProps {
|
|
33
74
|
file: FileItem;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/types/FileGallery.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * 统一的文件数据接口\n * 兼容 LocalFile (XAdkSender) 和 FileData (XadkChatbot)\n */\nexport interface FileItem {\n // 基础字段\n id?: string;\n uid?: string;\n name?: string;\n displayName?: string;\n size?: number;\n type?: string;\n mimeType?: string;\n\n // 本地文件对象 (XAdkSender)\n file?: File;\n\n // 上传状态 (XAdkSender)\n status?: \"pending\" | \"uploading\" | \"success\" | \"error\";\n progress?: number;\n errorMessage?: string;\n\n // URL 字段\n fileUri?: string; // XadkChatbot\n tempUrl?: string; // XAdkSender\n response?: any;\n}\n\nexport interface FileGalleryProps {\n file: FileItem;\n align?: \"left\" | \"right\"; // 卡片内部布局:图标在左(默认)或右\n removable?: boolean;\n onRemove?: (id: string) => void;\n className?: string;\n style?: React.CSSProperties;\n /** 点击文件卡片回调(非图片、非音视频文件) */\n onClick?: (file: FileItem) => void;\n}\n\nexport interface FileItemComponentProps {\n file: FileItem;\n removable: boolean;\n onRemove: (id: string) => void;\n}\n"],
|
|
4
|
+
"sourcesContent": ["/**\n * 统一的文件数据接口\n * 兼容 LocalFile (XAdkSender) 和 FileData (XadkChatbot)\n */\nexport interface FileItem {\n // 基础字段\n id?: string;\n uid?: string;\n name?: string;\n displayName?: string;\n size?: number;\n type?: string;\n mimeType?: string;\n\n // 本地文件对象 (XAdkSender)\n file?: File;\n\n // 上传状态 (XAdkSender)\n status?: \"pending\" | \"uploading\" | \"success\" | \"error\";\n progress?: number;\n errorMessage?: string;\n\n // URL 字段\n fileUri?: string; // XadkChatbot\n tempUrl?: string; // XAdkSender\n response?: any;\n}\n\n/** 文件图标类型 */\nexport type FileIconType =\n | \"pdf\"\n | \"word\"\n | \"excel\"\n | \"ppt\"\n | \"audio\"\n | \"video\"\n | \"zip\"\n | \"markdown\"\n | \"image\"\n | \"default\";\n\n/** 图片展示模式 */\nexport type ImageDisplayMode = \"thumbnail\" | \"preview\" | \"full\";\n\n/** 音视频展示模式 */\nexport type MediaDisplayMode = \"inline\" | \"card\";\n\n/** 文件卡片类型:不传则自动推断(图片/音频/视频用原生渲染),传 'file' 强制附件卡片展示 */\nexport type FileCardType = \"file\" | \"image\" | \"audio\" | \"video\";\n\nexport interface FileGalleryProps {\n file: FileItem;\n align?: \"left\" | \"right\"; // 卡片内部布局:图标在左(默认)或右\n removable?: boolean;\n onRemove?: (id: string) => void;\n className?: string;\n style?: React.CSSProperties;\n /** 点击文件卡片回调(非图片、非音视频文件) */\n onClick?: (file: FileItem) => void;\n\n /**\n * 文件卡片类型\n * - 不传:自动根据文件扩展名/MIME推断,图片/音频/视频使用原生渲染\n * - 'file':强制以附件卡片展示(音视频不可播放)\n * - 'image' / 'audio' / 'video':强制指定类型\n */\n type?: FileCardType;\n\n // ========== 图片相关 ==========\n /** 图片展示模式: thumbnail(缩略图) | preview(中等预览) | full(全宽) */\n imageDisplayMode?: ImageDisplayMode;\n /** 图片自定义宽度 */\n imageWidth?: number | string;\n /** 图片自定义高度 */\n imageHeight?: number | string;\n /** 图片加载策略 */\n imageLoading?: \"lazy\" | \"eager\";\n /** 图片 alt 文本 */\n imageAlt?: string;\n\n // ========== 音视频相关 ==========\n /** 自动播放(仅音频) */\n mediaAutoPlay?: boolean;\n /** 循环播放 */\n mediaLoop?: boolean;\n /** 静音 */\n mediaMuted?: boolean;\n /** 视频封面图 URL */\n mediaPoster?: string;\n /** 透传给原生 video 标签的属性 */\n videoProps?: Partial<React.JSX.IntrinsicElements[\"video\"]>;\n /** 透传给原生 audio 标签的属性 */\n audioProps?: Partial<React.JSX.IntrinsicElements[\"audio\"]>;\n\n // ========== 自定义图标 ==========\n /** 按文件类型自定义图标映射 */\n iconMap?: Partial<Record<FileIconType, React.ReactNode>>;\n /** 完全自定义图标(优先级最高,覆盖所有类型) */\n customIcon?: React.ReactNode;\n}\n\nexport interface FileItemComponentProps {\n file: FileItem;\n removable: boolean;\n onRemove: (id: string) => void;\n}\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -103,6 +103,10 @@ export interface ChatConfig {
|
|
|
103
103
|
export interface XAdkProviderConfig {
|
|
104
104
|
session?: {
|
|
105
105
|
showSessionList?: boolean;
|
|
106
|
+
/** 是否轮询会话详情并主动补入异步任务消息,默认 true */
|
|
107
|
+
pollSessionEvents?: boolean;
|
|
108
|
+
/** 会话详情轮询间隔,单位毫秒,默认 10000,最小 1000 */
|
|
109
|
+
sessionEventsPollingInterval?: number;
|
|
106
110
|
};
|
|
107
111
|
/**
|
|
108
112
|
* 初始化后是否默认展示第一条会话内容
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/types/XAdkProvider.ts"],
|
|
4
|
-
"sourcesContent": ["import { ReactNode } from \"react\";\nimport {\n IMessage,\n Success,\n Event,\n Error,\n SendContent,\n ThemeType,\n FileItem,\n UploadRequestFn,\n} from \"@/types\";\nimport type { ChatPresetInput, ChatStrategies } from \"./ChatStrategies\";\n\nexport interface DebugOptions {\n url: string;\n sessionId?: string;\n config: any;\n token: string;\n type?: \"agentDebug\" | \"appDebug\";\n /**\n * 是否启用 Hook\n * 当使用自定义 chatData 时,应设置为 false 以避免内部 Hook 初始化\n * @default true\n */\n enabled?: boolean;\n strategies?: ChatStrategies;\n onError?: (error: Error) => void;\n onSuccess?: (data: Success) => void;\n onStream?: (data: Event) => void;\n onMessage?: (content: string, data: IMessage) => void;\n}\n\n/**\n * 事件状态码枚举\n * @enum {string}\n * @version 1.0.0\n */\nexport enum EventCode {\n /** 切换会话 */\n SESSION_SWITCH = \"SESSION_SWITCH\",\n /** 开启新会话 */\n SESSION_CREATE = \"SESSION_CREATE\",\n}\n\nexport type handleEvent = {\n code: EventCode;\n message: string;\n data?: any;\n};\n/**\n * renderFooter insert 参数说明\n */\nexport interface FooterRenderArgs {\n message: IMessage;\n isLastBotMsg: boolean;\n isLastMsg: boolean;\n}\n\n/**\n * Provider 可通过 ref 暴露的方法句柄\n */\nexport interface XAdkProviderHandle {\n startChat: (content: SendContent) => void;\n stopChat: () => void;\n reChat: () => void;\n clearChat: () => void;\n deleteSession: (id: string) => void;\n updateSession: (id: string, title: string) => void;\n getAppInfo: () => any;\n getMessages: () => IMessage[];\n getSessions: () => any[];\n setMessages: (msgs: IMessage[]) => void;\n setCurrentSession: (id: string) => void;\n /**\n * 设置自定义业务参数 (stateDelta)\n * 设置后每次发送消息时会自动携带该参数至后端\n * 传入 undefined 可清除已设置的参数\n *\n * @example\n * providerRef.current.setStateDelta({ userId: '123', bizType: 'order' });\n * // 之后发送消息,请求体会携带 stateDelta: { userId: '123', bizType: 'order' }\n *\n * @example\n * // 清除自定义参数\n * providerRef.current.setStateDelta(undefined);\n */\n setStateDelta: (delta: Record<string, any> | undefined) => void;\n}\n\n/**\n * config.chatProps 中的配置\n */\nexport interface ChatConfig {\n /**\n * 是否展示清空按钮\n * @type {boolean}\n * @default false\n */\n clearBtnShow?: boolean;\n /**\n * 是否展示输入框\n * @type {boolean}\n * @default true\n */\n inputShow?: boolean;\n /**\n * 打字机效果速度(单位:毫秒)\n * @type {number}\n * @default 60\n * @version 1.0.0\n */\n textSpeed?: number;\n}\n\n/**\n * Provider config 整体配置结构\n */\nexport interface XAdkProviderConfig {\n session?: {\n showSessionList?: boolean;\n };\n /**\n * 初始化后是否默认展示第一条会话内容\n * @type {boolean}\n * @default false\n */\n showFirstSession?: boolean;\n allowUpload?: boolean;\n /**\n * 是否启用拖拽上传(需 allowUpload 为 true 时生效)\n * 拖拽区域为整个聊天区域(不含侧边栏)\n * @default true\n */\n draggable?: boolean;\n appNo?: string;\n chatProps?: ChatConfig;\n debug?: boolean;\n /**\n * 是否展示点赞/点踩按钮\n * @default true\n */\n showFeedback?: boolean;\n /**\n * 点击对话中附件卡片的回调(非图片、非音视频文件)\n */\n onFileClick?: (file: FileItem) => void;\n /**\n * 自定义文件上传函数\n */\n uploadRequest?: UploadRequestFn;\n /**\n * 预设策略。默认 xgroup-adk,用于兼容众安信科现有 ADK 协议。\n * 传入 base 可获得更中立的组件默认行为。\n */\n preset?: ChatPresetInput;\n /**\n * 覆盖或补充当前 preset 的局部策略。\n */\n strategies?: ChatStrategies;\n}\n\n/**\n * XAdkProvider Props\n */\nexport interface XAdkProviderProps {\n /**\n * AI 服务基础地址\n */\n url?: string;\n /**\n * 认证 token\n */\n token: string;\n /**\n * 组件功能配置\n */\n config?: XAdkProviderConfig;\n /**\n * Provider 级预设策略,优先级高于 config.preset。\n */\n preset?: ChatPresetInput;\n /**\n * Provider 级策略覆盖,优先级高于 config.strategies。\n */\n strategies?: ChatStrategies;\n /**\n * Provider 唯一标识\n */\n providerId?: string;\n /**\n * 消息成功回调\n */\n onSuccess?: (success: any) => void;\n /**\n * 流式消息回调\n */\n onStream?: (data: Event) => void;\n /**\n * 错误回调\n */\n onError?: (err: any) => void;\n /**\n * 每条消息回调\n */\n onMessage?: (content: string, data: IMessage) => void;\n /**\n * 事件回调\n */\n onEvent?: (event: handleEvent) => void;\n /**\n * React 子元素 - 支持 Compound Components\n */\n children?: ReactNode;\n}\n\n// XAiSDKProps 继承 XAdkProviderProps\nexport interface XAdkSDKProps extends XAdkProviderProps {\n /**\n * 主题类型\n * @type {ThemeType}\n * @default 'default'\n * @version 1.0.0\n */\n theme?: ThemeType;\n\n /**\n * 组件属性配置\n * @type {object}\n * @default undefined\n * @version 1.0.0\n */\n componentProps?: {\n /**\n * 组件ID\n * @type {string}\n * @default undefined\n * @version 1.0.0\n */\n id?: string;\n /** 支持任意 CSS 属性 */\n [key: string]: any;\n };\n}\n"],
|
|
4
|
+
"sourcesContent": ["import { ReactNode } from \"react\";\nimport {\n IMessage,\n Success,\n Event,\n Error,\n SendContent,\n ThemeType,\n FileItem,\n UploadRequestFn,\n} from \"@/types\";\nimport type { ChatPresetInput, ChatStrategies } from \"./ChatStrategies\";\n\nexport interface DebugOptions {\n url: string;\n sessionId?: string;\n config: any;\n token: string;\n type?: \"agentDebug\" | \"appDebug\";\n /**\n * 是否启用 Hook\n * 当使用自定义 chatData 时,应设置为 false 以避免内部 Hook 初始化\n * @default true\n */\n enabled?: boolean;\n strategies?: ChatStrategies;\n onError?: (error: Error) => void;\n onSuccess?: (data: Success) => void;\n onStream?: (data: Event) => void;\n onMessage?: (content: string, data: IMessage) => void;\n}\n\n/**\n * 事件状态码枚举\n * @enum {string}\n * @version 1.0.0\n */\nexport enum EventCode {\n /** 切换会话 */\n SESSION_SWITCH = \"SESSION_SWITCH\",\n /** 开启新会话 */\n SESSION_CREATE = \"SESSION_CREATE\",\n}\n\nexport type handleEvent = {\n code: EventCode;\n message: string;\n data?: any;\n};\n/**\n * renderFooter insert 参数说明\n */\nexport interface FooterRenderArgs {\n message: IMessage;\n isLastBotMsg: boolean;\n isLastMsg: boolean;\n}\n\n/**\n * Provider 可通过 ref 暴露的方法句柄\n */\nexport interface XAdkProviderHandle {\n startChat: (content: SendContent) => void;\n stopChat: () => void;\n reChat: () => void;\n clearChat: () => void;\n deleteSession: (id: string) => void;\n updateSession: (id: string, title: string) => void;\n getAppInfo: () => any;\n getMessages: () => IMessage[];\n getSessions: () => any[];\n setMessages: (msgs: IMessage[]) => void;\n setCurrentSession: (id: string) => void;\n /**\n * 设置自定义业务参数 (stateDelta)\n * 设置后每次发送消息时会自动携带该参数至后端\n * 传入 undefined 可清除已设置的参数\n *\n * @example\n * providerRef.current.setStateDelta({ userId: '123', bizType: 'order' });\n * // 之后发送消息,请求体会携带 stateDelta: { userId: '123', bizType: 'order' }\n *\n * @example\n * // 清除自定义参数\n * providerRef.current.setStateDelta(undefined);\n */\n setStateDelta: (delta: Record<string, any> | undefined) => void;\n}\n\n/**\n * config.chatProps 中的配置\n */\nexport interface ChatConfig {\n /**\n * 是否展示清空按钮\n * @type {boolean}\n * @default false\n */\n clearBtnShow?: boolean;\n /**\n * 是否展示输入框\n * @type {boolean}\n * @default true\n */\n inputShow?: boolean;\n /**\n * 打字机效果速度(单位:毫秒)\n * @type {number}\n * @default 60\n * @version 1.0.0\n */\n textSpeed?: number;\n}\n\n/**\n * Provider config 整体配置结构\n */\nexport interface XAdkProviderConfig {\n session?: {\n showSessionList?: boolean;\n /** 是否轮询会话详情并主动补入异步任务消息,默认 true */\n pollSessionEvents?: boolean;\n /** 会话详情轮询间隔,单位毫秒,默认 10000,最小 1000 */\n sessionEventsPollingInterval?: number;\n };\n /**\n * 初始化后是否默认展示第一条会话内容\n * @type {boolean}\n * @default false\n */\n showFirstSession?: boolean;\n allowUpload?: boolean;\n /**\n * 是否启用拖拽上传(需 allowUpload 为 true 时生效)\n * 拖拽区域为整个聊天区域(不含侧边栏)\n * @default true\n */\n draggable?: boolean;\n appNo?: string;\n chatProps?: ChatConfig;\n debug?: boolean;\n /**\n * 是否展示点赞/点踩按钮\n * @default true\n */\n showFeedback?: boolean;\n /**\n * 点击对话中附件卡片的回调(非图片、非音视频文件)\n */\n onFileClick?: (file: FileItem) => void;\n /**\n * 自定义文件上传函数\n */\n uploadRequest?: UploadRequestFn;\n /**\n * 预设策略。默认 xgroup-adk,用于兼容众安信科现有 ADK 协议。\n * 传入 base 可获得更中立的组件默认行为。\n */\n preset?: ChatPresetInput;\n /**\n * 覆盖或补充当前 preset 的局部策略。\n */\n strategies?: ChatStrategies;\n}\n\n/**\n * XAdkProvider Props\n */\nexport interface XAdkProviderProps {\n /**\n * AI 服务基础地址\n */\n url?: string;\n /**\n * 认证 token\n */\n token: string;\n /**\n * 组件功能配置\n */\n config?: XAdkProviderConfig;\n /**\n * Provider 级预设策略,优先级高于 config.preset。\n */\n preset?: ChatPresetInput;\n /**\n * Provider 级策略覆盖,优先级高于 config.strategies。\n */\n strategies?: ChatStrategies;\n /**\n * Provider 唯一标识\n */\n providerId?: string;\n /**\n * 消息成功回调\n */\n onSuccess?: (success: any) => void;\n /**\n * 流式消息回调\n */\n onStream?: (data: Event) => void;\n /**\n * 错误回调\n */\n onError?: (err: any) => void;\n /**\n * 每条消息回调\n */\n onMessage?: (content: string, data: IMessage) => void;\n /**\n * 事件回调\n */\n onEvent?: (event: handleEvent) => void;\n /**\n * React 子元素 - 支持 Compound Components\n */\n children?: ReactNode;\n}\n\n// XAiSDKProps 继承 XAdkProviderProps\nexport interface XAdkSDKProps extends XAdkProviderProps {\n /**\n * 主题类型\n * @type {ThemeType}\n * @default 'default'\n * @version 1.0.0\n */\n theme?: ThemeType;\n\n /**\n * 组件属性配置\n * @type {object}\n * @default undefined\n * @version 1.0.0\n */\n componentProps?: {\n /**\n * 组件ID\n * @type {string}\n * @default undefined\n * @version 1.0.0\n */\n id?: string;\n /** 支持任意 CSS 属性 */\n [key: string]: any;\n };\n}\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAqCO,IAAK,YAAL,kBAAKA,eAAL;AAEL,EAAAA,WAAA,oBAAiB;AAEjB,EAAAA,WAAA,oBAAiB;AAJP,SAAAA;AAAA,GAAA;",
|
|
6
6
|
"names": ["EventCode"]
|
|
7
7
|
}
|
|
@@ -3,54 +3,19 @@ import { AiClient } from '../client/base';
|
|
|
3
3
|
import type { ChatbotMessageFields } from './XAiChatbot';
|
|
4
4
|
import type { Messages, SendContent, SessionData, ChatConfig, ThemeType } from "./";
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* SDK 内部错误码(仅用于 SDK 自身可确定的错误场景)
|
|
7
|
+
* 服务端返回的业务错误码会原样透传,接入方在 onError 中自行判断
|
|
7
8
|
* @enum {string}
|
|
8
|
-
* @version 1.0.0
|
|
9
|
-
*/
|
|
10
|
-
export declare enum ErrorCodeNum {
|
|
11
|
-
/** 应用下架 */
|
|
12
|
-
APP_NOT_ENABLE = "client_50017",
|
|
13
|
-
/** 应用删除 */
|
|
14
|
-
APP_DELETED = "client_50017",
|
|
15
|
-
/** 无该应用 */
|
|
16
|
-
APP_NOT_FOUND = "client_59999",
|
|
17
|
-
/** 接口报错 */
|
|
18
|
-
API_ERROR = "client_50054"
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* 错误码枚举
|
|
22
|
-
* @enum {string}
|
|
23
|
-
* @version 1.0.0
|
|
24
9
|
*/
|
|
25
10
|
export declare enum ErrorCode {
|
|
26
|
-
/**
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
|
|
30
|
-
/** 应用未找到 */
|
|
31
|
-
APP_NOT_FOUND = "APP_NOT_FOUND",
|
|
32
|
-
/** API 错误 */
|
|
33
|
-
API_ERROR = "API_ERROR"
|
|
11
|
+
/** 网络异常 / HTTP 错误 / 超时等 */
|
|
12
|
+
NETWORK_ERROR = "NETWORK_ERROR",
|
|
13
|
+
/** HTTP 401/403 认证失败 */
|
|
14
|
+
AUTH_ERROR = "AUTH_ERROR"
|
|
34
15
|
}
|
|
35
16
|
/**
|
|
36
|
-
*
|
|
37
|
-
* @type {Record<string, {code: ErrorCode, message: string}>}
|
|
38
|
-
* @version 1.0.0
|
|
39
|
-
*/
|
|
40
|
-
export declare const ErrorCodeMap: {
|
|
41
|
-
client_50017: {
|
|
42
|
-
code: ErrorCode;
|
|
43
|
-
message: string;
|
|
44
|
-
};
|
|
45
|
-
client_50054: {
|
|
46
|
-
code: ErrorCode;
|
|
47
|
-
message: string;
|
|
48
|
-
};
|
|
49
|
-
};
|
|
50
|
-
/**
|
|
51
|
-
* 成功状态码枚举
|
|
17
|
+
* 成功状态码枚举(SDK 内部生命周期事件)
|
|
52
18
|
* @enum {string}
|
|
53
|
-
* @version 1.0.0
|
|
54
19
|
*/
|
|
55
20
|
export declare enum SuccessCode {
|
|
56
21
|
/** 应用配置初始化成功 */
|
|
@@ -60,14 +25,16 @@ export declare enum SuccessCode {
|
|
|
60
25
|
}
|
|
61
26
|
/**
|
|
62
27
|
* 错误信息接口
|
|
63
|
-
*
|
|
64
|
-
*
|
|
28
|
+
* - SDK 自身错误:code 为 ErrorCode 枚举值
|
|
29
|
+
* - 服务端业务错误:code 为服务端原始 code(如 "XS010016"),由接入方自行解读
|
|
65
30
|
*/
|
|
66
31
|
export interface Error {
|
|
67
|
-
/**
|
|
68
|
-
code:
|
|
32
|
+
/** 错误码:SDK 内部 ErrorCode 或服务端原始 code */
|
|
33
|
+
code: string;
|
|
69
34
|
/** 错误信息 */
|
|
70
35
|
message: string;
|
|
36
|
+
/** 服务端原始响应(仅服务端业务错误时携带) */
|
|
37
|
+
raw?: Record<string, any>;
|
|
71
38
|
}
|
|
72
39
|
/**
|
|
73
40
|
* 成功信息接口
|
|
@@ -30,37 +30,16 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
30
30
|
var XAiProvider_exports = {};
|
|
31
31
|
__export(XAiProvider_exports, {
|
|
32
32
|
ErrorCode: () => ErrorCode,
|
|
33
|
-
ErrorCodeMap: () => ErrorCodeMap,
|
|
34
|
-
ErrorCodeNum: () => ErrorCodeNum,
|
|
35
33
|
SuccessCode: () => SuccessCode,
|
|
36
34
|
XAiContext: () => XAiContext
|
|
37
35
|
});
|
|
38
36
|
module.exports = __toCommonJS(XAiProvider_exports);
|
|
39
37
|
var import_react = __toESM(require("react"));
|
|
40
|
-
var ErrorCodeNum = /* @__PURE__ */ ((ErrorCodeNum2) => {
|
|
41
|
-
ErrorCodeNum2["APP_NOT_ENABLE"] = "client_50017";
|
|
42
|
-
ErrorCodeNum2["APP_DELETED"] = "client_50017";
|
|
43
|
-
ErrorCodeNum2["APP_NOT_FOUND"] = "client_59999";
|
|
44
|
-
ErrorCodeNum2["API_ERROR"] = "client_50054";
|
|
45
|
-
return ErrorCodeNum2;
|
|
46
|
-
})(ErrorCodeNum || {});
|
|
47
38
|
var ErrorCode = /* @__PURE__ */ ((ErrorCode2) => {
|
|
48
|
-
ErrorCode2["
|
|
49
|
-
ErrorCode2["
|
|
50
|
-
ErrorCode2["APP_NOT_FOUND"] = "APP_NOT_FOUND";
|
|
51
|
-
ErrorCode2["API_ERROR"] = "API_ERROR";
|
|
39
|
+
ErrorCode2["NETWORK_ERROR"] = "NETWORK_ERROR";
|
|
40
|
+
ErrorCode2["AUTH_ERROR"] = "AUTH_ERROR";
|
|
52
41
|
return ErrorCode2;
|
|
53
42
|
})(ErrorCode || {});
|
|
54
|
-
var ErrorCodeMap = {
|
|
55
|
-
client_50017: {
|
|
56
|
-
code: "APP_NOT_ENABLE" /* APP_NOT_ENABLE */,
|
|
57
|
-
message: "该应用已删除或已下架"
|
|
58
|
-
},
|
|
59
|
-
client_50054: {
|
|
60
|
-
code: "API_ERROR" /* API_ERROR */,
|
|
61
|
-
message: "应用服务端出错"
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
43
|
var SuccessCode = /* @__PURE__ */ ((SuccessCode2) => {
|
|
65
44
|
SuccessCode2["APP_CONFIG_INIT_SUCCESS"] = "APP_CONFIG_INIT_SUCCESS";
|
|
66
45
|
SuccessCode2["APP_MESSAGES_INIT_SUCCESS"] = "APP_MESSAGES_INIT_SUCCESS";
|
|
@@ -70,8 +49,6 @@ var XAiContext = import_react.default.createContext(null);
|
|
|
70
49
|
// Annotate the CommonJS export names for ESM import in node:
|
|
71
50
|
0 && (module.exports = {
|
|
72
51
|
ErrorCode,
|
|
73
|
-
ErrorCodeMap,
|
|
74
|
-
ErrorCodeNum,
|
|
75
52
|
SuccessCode,
|
|
76
53
|
XAiContext
|
|
77
54
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/types/XAiProvider.ts"],
|
|
4
|
-
"sourcesContent": ["// context/ProviderContext.ts\nimport React, { ReactNode } from 'react';\nimport { AiClient } from '../client/base';\nimport type { ChatbotMessageFields } from './XAiChatbot';\nimport type { Messages, SendContent, SessionData, ChatConfig, ThemeType } from '@/types';\n\n/**\n *
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
6
|
-
"names": ["
|
|
4
|
+
"sourcesContent": ["// context/ProviderContext.ts\nimport React, { ReactNode } from 'react';\nimport { AiClient } from '../client/base';\nimport type { ChatbotMessageFields } from './XAiChatbot';\nimport type { Messages, SendContent, SessionData, ChatConfig, ThemeType } from '@/types';\n\n/**\n * SDK 内部错误码(仅用于 SDK 自身可确定的错误场景)\n * 服务端返回的业务错误码会原样透传,接入方在 onError 中自行判断\n * @enum {string}\n */\nexport enum ErrorCode {\n /** 网络异常 / HTTP 错误 / 超时等 */\n NETWORK_ERROR = 'NETWORK_ERROR',\n /** HTTP 401/403 认证失败 */\n AUTH_ERROR = 'AUTH_ERROR',\n}\n\n/**\n * 成功状态码枚举(SDK 内部生命周期事件)\n * @enum {string}\n */\nexport enum SuccessCode {\n /** 应用配置初始化成功 */\n APP_CONFIG_INIT_SUCCESS = 'APP_CONFIG_INIT_SUCCESS',\n /** 应用消息初始化成功 */\n APP_MESSAGES_INIT_SUCCESS = 'APP_MESSAGES_INIT_SUCCESS',\n}\n\n/**\n * 错误信息接口\n * - SDK 自身错误:code 为 ErrorCode 枚举值\n * - 服务端业务错误:code 为服务端原始 code(如 \"XS010016\"),由接入方自行解读\n */\nexport interface Error {\n /** 错误码:SDK 内部 ErrorCode 或服务端原始 code */\n code: string;\n /** 错误信息 */\n message: string;\n /** 服务端原始响应(仅服务端业务错误时携带) */\n raw?: Record<string, any>;\n}\n\n/**\n * 成功信息接口\n * @interface Success\n * @version 1.0.0\n */\nexport interface Success {\n /** 成功状态码 */\n code: SuccessCode;\n /** 成功信息 */\n message: string;\n /** 成功数据 */\n data?: any;\n}\n\n/**\n * XAiProvider 操作句柄接口\n * @interface XAiProviderHandle\n * @version 1.0.0\n */\nexport interface XAiProviderHandle {\n /**\n * 发送聊天消息\n * @param content - 消息内容\n * @type {(content: string) => void}\n * @version 1.0.0\n */\n chat: (content: SendContent) => void;\n\n /**\n * 停止聊天\n * @type {() => void}\n * @version 1.0.0\n */\n stopChat: () => void;\n\n /**\n * 重新发送聊天\n * @type {() => void}\n * @version 1.0.0\n */\n reChat: () => void;\n\n /**\n * 获取应用信息\n * @returns {any} 应用信息对象\n * @type {() => any}\n * @version 1.0.0\n */\n getAppInfo: () => any;\n\n /**\n * 获取消息列表\n * @returns {Messages[]} 消息数组\n * @type {() => Messages[]}\n * @version 1.0.0\n */\n getMessages: () => Messages[];\n\n /**\n * 获取会话列表\n * @returns {}\n */\n getSessions: () => SessionData[];\n\n /**\n * 重新设置当前会话\n * @param id - 会话ID\n * @type {(id: string) => void}\n * @version 1.0.0\n */\n setCurrentSession: (id: string) => void;\n}\n\nexport interface sessionConfig {\n /**\n * 是否展示会话列表\n * @type {boolean}\n * @default false\n */\n showSessionList?: boolean;\n}\n\n\n/**\n * XAiProvider 配置接口\n * @interface XAiProviderConfig\n * @version 1.0.0\n */\nexport interface XAiProviderConfig {\n /**\n * 应用唯一编号\n * @type {string}\n * @default undefined\n * @version 1.0.0\n */\n appNo?: string;\n\n /**\n * 会话配置\n * @type {sessionConfig}\n */\n session?: sessionConfig;\n\n /**\n * 对话框配置\n * @type {ChatConfig}\n */\n chatProps?: ChatConfig;\n\n /**\n * 是否启用调试模式\n * @type {boolean}\n * @default false\n * @version 1.0.0\n */\n debug?: boolean;\n}\n\n/**\n * XAiProvider 组件属性接口\n * @interface XAiProviderProps\n * @version 1.0.0\n */\nexport interface XAiProviderProps {\n /**\n * AI 服务地址\n * @type {string}\n * @version 1.0.0\n */\n url: string;\n\n /**\n * 认证 token\n * @type {string}\n * @version 1.0.0\n */\n token: string;\n\n /**\n * 配置信息\n * @type {XAiProviderConfig}\n * @default undefined\n * @version 1.0.0\n */\n config?: XAiProviderConfig;\n\n /**\n * Provider 唯一标识,用于区分多个 Provider 实例\n * @type {string}\n * @default undefined\n * @version 1.0.0\n */\n providerId?: string;\n\n /**\n * Token 刷新回调\n * @type {() => Promise<string>}\n * @default undefined\n * @version 1.0.0\n */\n onRefreshToken?: () => Promise<string>;\n\n /**\n * 应用无法正常渲染回调\n * @type {(error: Error) => void}\n * @default undefined\n * @version 1.0.0\n */\n onError?: (error: Error) => void;\n\n /**\n * 应用正常渲染回调\n * @type {(success: Success) => void}\n * @default undefined\n * @version 1.0.0\n */\n onSuccess?: (success: Success) => void;\n\n /**\n * 消息返回回调\n * @type {(data: Messages) => void}\n * @default undefined\n * @version 1.0.0\n */\n onMessage?: (content: string, data: Messages) => void;\n\n /**\n * 子组件\n * @type {ReactNode}\n * @version 1.0.0\n */\n children: ReactNode;\n}\n\n/**\n * XAiSDK 组件属性接口\n * @interface XAiSDKProps\n * @extends XAiProviderProps\n * @version 1.0.0\n */\nexport interface XAiSDKProps extends XAiProviderProps {\n /**\n * 主题类型\n * @type {ThemeType}\n * @default 'default'\n * @version 1.0.0\n */\n theme?: ThemeType;\n\n /**\n * 组件属性配置\n * @type {object}\n * @default undefined\n * @version 1.0.0\n */\n componentProps?: {\n /**\n * 组件ID\n * @type {string}\n * @default undefined\n * @version 1.0.0\n */\n id?: string;\n /** 支持任意 CSS 属性 */\n [key: string]: any;\n };\n}\n\n/**\n * XAi 上下文类型接口\n * @interface XAiContextType\n * @extends Required<ChatbotMessageFields>\n * @version 1.0.0\n */\nexport interface XAiContextType extends Required<ChatbotMessageFields> {\n /**\n * AI 客户端实例\n * @type {AiClient | null}\n * @default null\n * @version 1.0.0\n */\n client: AiClient | null;\n\n /**\n * 认证令牌\n * @type {string}\n * @version 1.0.0\n */\n token: string;\n\n /**\n * 加载状态\n * @type {boolean}\n * @default false\n * @version 1.0.0\n */\n loading: boolean;\n\n /**\n * 错误信息\n * @type {string | null}\n * @default null\n * @version 1.0.0\n */\n error: string | null;\n}\n\n/**\n * XAi 上下文对象\n * @type {React.Context<XAiContextType | null>}\n * @version 1.0.0\n */\nexport const XAiContext = React.createContext<XAiContextType | null>(null);\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAAiC;AAU1B,IAAK,YAAL,kBAAKA,eAAL;AAEL,EAAAA,WAAA,mBAAgB;AAEhB,EAAAA,WAAA,gBAAa;AAJH,SAAAA;AAAA,GAAA;AAWL,IAAK,cAAL,kBAAKC,iBAAL;AAEL,EAAAA,aAAA,6BAA0B;AAE1B,EAAAA,aAAA,+BAA4B;AAJlB,SAAAA;AAAA,GAAA;AAqSL,IAAM,aAAa,aAAAC,QAAM,cAAqC,IAAI;",
|
|
6
|
+
"names": ["ErrorCode", "SuccessCode", "React"]
|
|
7
7
|
}
|
|
@@ -1,34 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { FileGalleryProps } from "../../types";
|
|
3
|
-
/**
|
|
4
|
-
* FileGallery - 单文件展示组件
|
|
5
|
-
*
|
|
6
|
-
* 功能特性:
|
|
7
|
-
* - 📁 支持多种文件类型展示 (图片、音频、视频、文档等)
|
|
8
|
-
* - 🖼️ 图片支持预览和缩略图
|
|
9
|
-
* - 🎵 音频文件支持内联播放
|
|
10
|
-
* - 🎬 视频文件支持内联播放
|
|
11
|
-
* - 📊 显示文件大小、类型图标
|
|
12
|
-
* - 🗑️ 支持删除操作
|
|
13
|
-
* - 📤 支持上传进度显示
|
|
14
|
-
* - 🎨 支持卡片内部布局控制(align:图标和信息的排列方式)
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* // XAdkSender 场景 - 可删除的本地文件
|
|
18
|
-
* {files.map(file => (
|
|
19
|
-
* <FileGallery
|
|
20
|
-
* key={file.id}
|
|
21
|
-
* file={file}
|
|
22
|
-
* removable
|
|
23
|
-
* onRemove={handleRemove}
|
|
24
|
-
* />
|
|
25
|
-
* ))}
|
|
26
|
-
*
|
|
27
|
-
* @example
|
|
28
|
-
* // XadkChatbot 场景 - 只读的远程文件
|
|
29
|
-
* {files.map(file => (
|
|
30
|
-
* <FileGallery key={file.id} file={file} />
|
|
31
|
-
* ))}
|
|
32
|
-
*/
|
|
33
3
|
declare const FileGallery: React.FC<FileGalleryProps>;
|
|
34
4
|
export default FileGallery;
|