@ai-group/chat-sdk 0.2.5 → 0.2.8

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 (157) hide show
  1. package/README.md +93 -214
  2. package/dist/cjs/assets/arrow-down.png +0 -0
  3. package/dist/cjs/assets/arrow-up.png +0 -0
  4. package/dist/cjs/assets/chatKnowledge.png +0 -0
  5. package/dist/cjs/assets/completed-black.png +0 -0
  6. package/dist/cjs/assets/completed.png +0 -0
  7. package/dist/cjs/assets/document-black.png +0 -0
  8. package/dist/cjs/assets/document.png +0 -0
  9. package/dist/cjs/assets/document.svg +16 -0
  10. package/dist/cjs/assets/empty.png +0 -0
  11. package/dist/cjs/assets/group.png +0 -0
  12. package/dist/cjs/assets/qa-black.png +0 -0
  13. package/dist/cjs/assets/qa.png +0 -0
  14. package/dist/cjs/assets/skillNo-black.png +0 -0
  15. package/dist/cjs/assets/skillNo.png +0 -0
  16. package/dist/cjs/assets/tools-black.png +0 -0
  17. package/dist/cjs/assets/tools.png +0 -0
  18. package/dist/cjs/assets/user.png +0 -0
  19. package/dist/cjs/client/base.d.ts +9 -0
  20. package/dist/cjs/client/base.js +18 -0
  21. package/dist/cjs/client/base.js.map +7 -0
  22. package/dist/cjs/client/restClient.d.ts +0 -0
  23. package/dist/cjs/client/restClient.js +1 -0
  24. package/dist/cjs/client/restClient.js.map +7 -0
  25. package/dist/cjs/client/wsClient.d.ts +0 -0
  26. package/dist/cjs/client/wsClient.js +1 -0
  27. package/dist/cjs/client/wsClient.js.map +7 -0
  28. package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.d.ts +10 -0
  29. package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js +484 -0
  30. package/dist/cjs/components/XAiChatbot/XAiChatbot.stories.js.map +7 -0
  31. package/dist/cjs/components/XAiChatbot/index.d.ts +12 -0
  32. package/dist/cjs/components/XAiChatbot/index.js +365 -0
  33. package/dist/cjs/components/XAiChatbot/index.js.map +7 -0
  34. package/dist/cjs/components/XAiChatbot/styles.d.ts +72 -0
  35. package/dist/cjs/components/XAiChatbot/styles.js +426 -0
  36. package/dist/cjs/components/XAiChatbot/styles.js.map +7 -0
  37. package/dist/cjs/components/XAiProvider/XAiProvider.stories.d.ts +7 -0
  38. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js +127 -0
  39. package/dist/cjs/components/XAiProvider/XAiProvider.stories.js.map +7 -0
  40. package/dist/cjs/components/XAiProvider/index.d.ts +4 -0
  41. package/dist/cjs/components/XAiProvider/index.js +115 -0
  42. package/dist/cjs/components/XAiProvider/index.js.map +7 -0
  43. package/dist/cjs/components/XAiSDK.d.ts +10 -0
  44. package/dist/cjs/components/XAiSDK.js +53 -0
  45. package/dist/cjs/components/XAiSDK.js.map +7 -0
  46. package/dist/cjs/components/XAiWebSDKWrapper.d.ts +9 -0
  47. package/dist/cjs/components/XAiWebSDKWrapper.js +70 -0
  48. package/dist/cjs/components/XAiWebSDKWrapper.js.map +7 -0
  49. package/dist/cjs/context/AiProviderContext.d.ts +12 -0
  50. package/dist/cjs/context/AiProviderContext.js +74 -0
  51. package/dist/cjs/context/AiProviderContext.js.map +7 -0
  52. package/dist/cjs/context/ThemeContext.d.ts +20 -0
  53. package/dist/cjs/context/ThemeContext.js +37 -0
  54. package/dist/cjs/context/ThemeContext.js.map +7 -0
  55. package/dist/cjs/hooks/useAgentGenerator.d.ts +72 -0
  56. package/dist/cjs/hooks/useAgentGenerator.js +487 -0
  57. package/dist/cjs/hooks/useAgentGenerator.js.map +7 -0
  58. package/dist/cjs/hooks/useEventStreamRequest.d.ts +30 -0
  59. package/dist/cjs/hooks/useEventStreamRequest.js +188 -0
  60. package/dist/cjs/hooks/useEventStreamRequest.js.map +7 -0
  61. package/dist/cjs/hooks/useProviderContext.d.ts +33 -0
  62. package/dist/cjs/hooks/useProviderContext.js +105 -0
  63. package/dist/cjs/hooks/useProviderContext.js.map +7 -0
  64. package/dist/cjs/hooks/useXAiSDK.d.ts +14 -0
  65. package/dist/cjs/hooks/useXAiSDK.js +75 -0
  66. package/dist/cjs/hooks/useXAiSDK.js.map +7 -0
  67. package/dist/cjs/index.d.ts +9 -0
  68. package/dist/cjs/index.js +61 -0
  69. package/dist/cjs/index.js.map +7 -0
  70. package/dist/cjs/services/api.d.ts +69 -0
  71. package/dist/cjs/services/api.js +49 -0
  72. package/dist/cjs/services/api.js.map +7 -0
  73. package/dist/cjs/styles/common.d.ts +64 -0
  74. package/dist/cjs/styles/common.js +144 -0
  75. package/dist/cjs/styles/common.js.map +7 -0
  76. package/dist/cjs/styles/markdown.d.ts +3 -0
  77. package/dist/cjs/styles/markdown.js +193 -0
  78. package/dist/cjs/styles/markdown.js.map +7 -0
  79. package/dist/cjs/types/XAiChatbot.d.ts +159 -0
  80. package/dist/cjs/types/XAiChatbot.js +18 -0
  81. package/dist/cjs/types/XAiChatbot.js.map +7 -0
  82. package/dist/cjs/types/XAiMessage.d.ts +121 -0
  83. package/dist/cjs/types/XAiMessage.js +55 -0
  84. package/dist/cjs/types/XAiMessage.js.map +7 -0
  85. package/dist/cjs/types/XAiProvider.d.ts +46 -0
  86. package/dist/cjs/types/XAiProvider.js +50 -0
  87. package/dist/cjs/types/XAiProvider.js.map +7 -0
  88. package/dist/cjs/types/index.d.ts +3 -0
  89. package/dist/cjs/types/index.js +28 -0
  90. package/dist/cjs/types/index.js.map +7 -0
  91. package/dist/cjs/types/mdx.d.ts +18 -0
  92. package/dist/cjs/utils/chat.d.ts +34 -0
  93. package/dist/cjs/utils/chat.js +1 -0
  94. package/dist/cjs/utils/chat.js.map +7 -0
  95. package/dist/cjs/utils/index.d.ts +2 -0
  96. package/dist/cjs/utils/index.js +49 -0
  97. package/dist/cjs/utils/index.js.map +7 -0
  98. package/dist/cjs/utils/providerManager.d.ts +22 -0
  99. package/dist/cjs/utils/providerManager.js +73 -0
  100. package/dist/cjs/utils/providerManager.js.map +7 -0
  101. package/dist/cjs/utils/request.d.ts +78 -0
  102. package/dist/cjs/utils/request.example.d.ts +39 -0
  103. package/dist/cjs/utils/request.example.js +211 -0
  104. package/dist/cjs/utils/request.example.js.map +7 -0
  105. package/dist/cjs/utils/request.js +231 -0
  106. package/dist/cjs/utils/request.js.map +7 -0
  107. package/dist/cjs/utils/umdEntry.d.ts +14 -0
  108. package/dist/cjs/utils/umdEntry.js +97 -0
  109. package/dist/cjs/utils/umdEntry.js.map +7 -0
  110. package/dist/esm/assets/user.png +0 -0
  111. package/dist/esm/client/base.d.ts +9 -0
  112. package/dist/esm/client/restClient.d.ts +0 -0
  113. package/dist/esm/client/wsClient.d.ts +0 -0
  114. package/dist/esm/components/XAiChatbot/XAiChatbot.stories.d.ts +10 -0
  115. package/dist/esm/components/XAiChatbot/index.d.ts +12 -0
  116. package/dist/esm/components/XAiChatbot/index.js +17 -11
  117. package/dist/esm/components/XAiChatbot/index.js.map +1 -1
  118. package/dist/esm/components/XAiChatbot/styles.d.ts +72 -0
  119. package/dist/esm/components/XAiChatbot/styles.js +37 -38
  120. package/dist/esm/components/XAiChatbot/styles.js.map +1 -1
  121. package/dist/esm/components/XAiProvider/XAiProvider.stories.d.ts +7 -0
  122. package/dist/esm/components/XAiProvider/index.d.ts +4 -0
  123. package/dist/esm/components/XAiProvider/index.js +8 -1
  124. package/dist/esm/components/XAiProvider/index.js.map +1 -1
  125. package/dist/esm/components/XAiSDK.d.ts +10 -0
  126. package/dist/esm/components/XAiWebSDKWrapper.d.ts +9 -0
  127. package/dist/esm/components/XAiWebSDKWrapper.js +4 -1
  128. package/dist/esm/components/XAiWebSDKWrapper.js.map +1 -1
  129. package/dist/esm/context/AiProviderContext.d.ts +12 -0
  130. package/dist/esm/context/ThemeContext.d.ts +20 -0
  131. package/dist/esm/hooks/useAgentGenerator.d.ts +72 -0
  132. package/dist/esm/hooks/useAgentGenerator.js +113 -39
  133. package/dist/esm/hooks/useAgentGenerator.js.map +1 -1
  134. package/dist/esm/hooks/useEventStreamRequest.d.ts +30 -0
  135. package/dist/esm/hooks/useProviderContext.d.ts +33 -0
  136. package/dist/esm/hooks/useXAiSDK.d.ts +14 -0
  137. package/dist/esm/index.d.ts +9 -0
  138. package/dist/esm/services/api.d.ts +69 -0
  139. package/dist/esm/services/api.js.map +1 -1
  140. package/dist/esm/styles/common.d.ts +64 -0
  141. package/dist/esm/styles/markdown.d.ts +3 -0
  142. package/dist/esm/types/XAiChatbot.d.ts +159 -0
  143. package/dist/esm/types/XAiMessage.d.ts +121 -0
  144. package/dist/esm/types/XAiProvider.d.ts +46 -0
  145. package/dist/esm/types/XAiProvider.js +7 -0
  146. package/dist/esm/types/XAiProvider.js.map +1 -1
  147. package/dist/esm/types/index.d.ts +3 -0
  148. package/dist/esm/utils/chat.d.ts +34 -0
  149. package/dist/esm/utils/index.d.ts +2 -0
  150. package/dist/esm/utils/providerManager.d.ts +22 -0
  151. package/dist/esm/utils/request.d.ts +78 -0
  152. package/dist/esm/utils/request.example.d.ts +39 -0
  153. package/dist/esm/utils/umdEntry.d.ts +14 -0
  154. package/dist/esm/utils/umdEntry.js +22 -18
  155. package/dist/esm/utils/umdEntry.js.map +1 -1
  156. package/dist/umd/chat-sdk.min.js +1 -1
  157. package/package.json +1 -1
@@ -15,8 +15,12 @@ var XAiWebSDK = /*#__PURE__*/function () {
15
15
  _defineProperty(this, "container", void 0);
16
16
  _defineProperty(this, "props", void 0);
17
17
  _defineProperty(this, "root", void 0);
18
+ _defineProperty(this, "onError", void 0);
19
+ _defineProperty(this, "onSuccess", void 0);
18
20
  this.container = container;
19
21
  this.props = props;
22
+ this.onError = props.onError;
23
+ this.onSuccess = props.onSuccess;
20
24
  this.mount();
21
25
  }
22
26
  _createClass(XAiWebSDK, [{
@@ -54,29 +58,22 @@ var XAiWebSDK = /*#__PURE__*/function () {
54
58
  }
55
59
  }
56
60
 
57
- // 支持两种调用方式
61
+ // 支持 Coze 风格的语法:new XAiWebSDK.initChatbot()
58
62
  }], [{
59
63
  key: "initChatbot",
60
- value: function initChatbot(containerOrProps, props) {
61
- var _sdkProps$componentPr;
62
- // 如果第一个参数是 HTMLElement
63
- if (containerOrProps instanceof HTMLElement) {
64
- return new XAiWebSDK(containerOrProps, props);
65
- }
66
-
67
- // 如果第一个参数是 props
68
- var sdkProps = containerOrProps;
64
+ value: function initChatbot(props) {
65
+ var _props$componentProps;
69
66
  var container;
70
67
 
71
68
  // 检查是否有指定的 componentProps.id
72
- if ((_sdkProps$componentPr = sdkProps.componentProps) !== null && _sdkProps$componentPr !== void 0 && _sdkProps$componentPr.id) {
73
- var existingContainer = document.getElementById(sdkProps.componentProps.id);
69
+ if ((_props$componentProps = props.componentProps) !== null && _props$componentProps !== void 0 && _props$componentProps.id) {
70
+ var existingContainer = document.getElementById(props.componentProps.id);
74
71
  if (existingContainer) {
75
72
  container = existingContainer;
76
73
  } else {
77
74
  // 如果指定的 ID 不存在,创建新元素
78
75
  container = document.createElement('div');
79
- container.id = sdkProps.componentProps.id;
76
+ container.id = props.componentProps.id;
80
77
  }
81
78
  } else {
82
79
  // 没有指定 ID,创建默认容器
@@ -85,10 +82,10 @@ var XAiWebSDK = /*#__PURE__*/function () {
85
82
  }
86
83
 
87
84
  // 设置容器样式 - 将除了 id 以外的所有属性都应用到容器
88
- if (sdkProps.componentProps) {
89
- var _sdkProps$componentPr2 = sdkProps.componentProps,
90
- id = _sdkProps$componentPr2.id,
91
- styleProps = _objectWithoutProperties(_sdkProps$componentPr2, _excluded);
85
+ if (props.componentProps) {
86
+ var _props$componentProps2 = props.componentProps,
87
+ id = _props$componentProps2.id,
88
+ styleProps = _objectWithoutProperties(_props$componentProps2, _excluded);
92
89
  Object.assign(container.style, styleProps);
93
90
  }
94
91
 
@@ -96,7 +93,14 @@ var XAiWebSDK = /*#__PURE__*/function () {
96
93
  if (!container.parentNode) {
97
94
  document.body.appendChild(container);
98
95
  }
99
- return new XAiWebSDK(container, sdkProps);
96
+ return new XAiWebSDK(container, props);
97
+ }
98
+
99
+ // 兼容旧版本的静态方法
100
+ }, {
101
+ key: "create",
102
+ value: function create(props) {
103
+ return this.initChatbot(props);
100
104
  }
101
105
  }]);
102
106
  return XAiWebSDK;
@@ -1 +1 @@
1
- {"version":3,"names":["React","ReactDOM","XAiProvider","XAiChatbot","jsx","_jsx","XAiWebSDK","container","props","_classCallCheck","_defineProperty","mount","_createClass","key","value","createRoot","root","render","_objectSpread","children","style","width","height","unmount","initChatbot","containerOrProps","_sdkProps$componentPr","HTMLElement","sdkProps","componentProps","id","existingContainer","document","getElementById","createElement","_sdkProps$componentPr2","styleProps","_objectWithoutProperties","_excluded","Object","assign","parentNode","body","appendChild","window"],"sources":["../../../src/utils/umdEntry.tsx"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport { XAiSDKProps } from '@/types/XAiProvider';\nimport XAiProvider from '@/components/XAiProvider';\nimport XAiChatbot from '../components/XAiChatbot';\n\nclass XAiWebSDK {\n container: HTMLElement;\n\n props: XAiSDKProps;\n\n root: any;\n\n constructor(container: HTMLElement, props: XAiSDKProps) {\n this.container = container;\n this.props = props;\n this.mount();\n }\n\n mount() {\n if (ReactDOM.createRoot) {\n this.root = ReactDOM.createRoot(this.container);\n this.root.render(\n <XAiProvider {...this.props}>\n <div style={{ width: '100%', height: '100%' }}>\n <XAiChatbot />\n </div>\n </XAiProvider>,\n );\n } else {\n // @ts-ignore\n ReactDOM.render(\n <XAiProvider {...this.props}>\n <div style={{ width: '100%', height: '100%' }}>\n <XAiChatbot />\n </div>\n </XAiProvider>,\n this.container,\n );\n }\n }\n\n unmount() {\n if (this.root && this.root.unmount) {\n this.root.unmount();\n }\n }\n\n // 支持两种调用方式\n static initChatbot(containerOrProps: HTMLElement | XAiSDKProps, props?: XAiSDKProps) {\n // 如果第一个参数是 HTMLElement\n if (containerOrProps instanceof HTMLElement) {\n return new XAiWebSDK(containerOrProps, props!);\n }\n\n // 如果第一个参数是 props\n const sdkProps = containerOrProps as XAiSDKProps;\n let container: HTMLElement;\n\n // 检查是否有指定的 componentProps.id\n if (sdkProps.componentProps?.id) {\n const existingContainer = document.getElementById(sdkProps.componentProps.id);\n if (existingContainer) {\n container = existingContainer;\n } else {\n // 如果指定的 ID 不存在,创建新元素\n container = document.createElement('div');\n container.id = sdkProps.componentProps.id;\n }\n } else {\n // 没有指定 ID,创建默认容器\n container = document.createElement('div');\n container.id = 'xai-chatbot-container';\n }\n\n // 设置容器样式 - 将除了 id 以外的所有属性都应用到容器\n if (sdkProps.componentProps) {\n const { id, ...styleProps } = sdkProps.componentProps;\n Object.assign(container.style, styleProps);\n }\n\n // 如果容器不在 DOM 中,添加到 body\n if (!container.parentNode) {\n document.body.appendChild(container);\n }\n\n return new XAiWebSDK(container, sdkProps);\n }\n}\n\n// 兼容 window 方式,也支持 new\n// @ts-ignore\nwindow.XAiWebSDK = XAiWebSDK;\n\n// 支持 ESModule/UMD 直接 import\nexport default XAiWebSDK;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","ReactDOM","XAiProvider","XAiChatbot","jsx","_jsx","XAiWebSDK","container","props","_classCallCheck","_defineProperty","onError","onSuccess","mount","_createClass","key","value","createRoot","root","render","_objectSpread","children","style","width","height","unmount","initChatbot","_props$componentProps","componentProps","id","existingContainer","document","getElementById","createElement","_props$componentProps2","styleProps","_objectWithoutProperties","_excluded","Object","assign","parentNode","body","appendChild","create","window"],"sources":["../../../src/utils/umdEntry.tsx"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport { XAiSDKProps } from '@/types/XAiProvider';\nimport XAiProvider from '@/components/XAiProvider';\nimport XAiChatbot from '../components/XAiChatbot';\n\nclass XAiWebSDK {\n container: HTMLElement;\n\n props: XAiSDKProps;\n\n root: any;\n\n onError?: (error: any) => void;\n\n onSuccess?: (appInfo: any) => void;\n\n constructor(container: HTMLElement, props: XAiSDKProps) {\n this.container = container;\n this.props = props;\n this.onError = props.onError;\n this.onSuccess = props.onSuccess;\n this.mount();\n }\n\n mount() {\n if (ReactDOM.createRoot) {\n this.root = ReactDOM.createRoot(this.container);\n this.root.render(\n <XAiProvider {...this.props}>\n <div style={{ width: '100%', height: '100%' }}>\n <XAiChatbot />\n </div>\n </XAiProvider>,\n );\n } else {\n // @ts-ignore\n ReactDOM.render(\n <XAiProvider {...this.props}>\n <div style={{ width: '100%', height: '100%' }}>\n <XAiChatbot />\n </div>\n </XAiProvider>,\n this.container,\n );\n }\n }\n\n unmount() {\n if (this.root && this.root.unmount) {\n this.root.unmount();\n }\n }\n\n // 支持 Coze 风格的语法:new XAiWebSDK.initChatbot()\n static initChatbot(props: XAiSDKProps): XAiWebSDK {\n let container: HTMLElement;\n\n // 检查是否有指定的 componentProps.id\n if (props.componentProps?.id) {\n const existingContainer = document.getElementById(props.componentProps.id);\n if (existingContainer) {\n container = existingContainer;\n } else {\n // 如果指定的 ID 不存在,创建新元素\n container = document.createElement('div');\n container.id = props.componentProps.id;\n }\n } else {\n // 没有指定 ID,创建默认容器\n container = document.createElement('div');\n container.id = 'xai-chatbot-container';\n }\n\n // 设置容器样式 - 将除了 id 以外的所有属性都应用到容器\n if (props.componentProps) {\n const { id, ...styleProps } = props.componentProps;\n Object.assign(container.style, styleProps);\n }\n\n // 如果容器不在 DOM 中,添加到 body\n if (!container.parentNode) {\n document.body.appendChild(container);\n }\n\n return new XAiWebSDK(container, props);\n }\n\n // 兼容旧版本的静态方法\n static create(props: XAiSDKProps): XAiWebSDK {\n return this.initChatbot(props);\n }\n}\n\n// 兼容 window 方式,也支持 new\n// @ts-ignore\nwindow.XAiWebSDK = XAiWebSDK;\n\n// 支持 ESModule/UMD 直接 import\nexport default XAiWebSDK;\n"],"mappings":"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"}