@ai-group/chat-sdk 3.6.11 → 3.7.0

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/components/XAdkChatbot/index.js +27 -15
  2. package/dist/cjs/components/XAdkChatbot/index.js.map +2 -2
  3. package/dist/cjs/components/XAdkProvider/compound/Sender.d.ts +2 -2
  4. package/dist/cjs/components/XAdkProvider/compound/Sender.js +20 -17
  5. package/dist/cjs/components/XAdkProvider/compound/Sender.js.map +2 -2
  6. package/dist/cjs/components/XAdkProvider/compound/Sidebar.js +6 -2
  7. package/dist/cjs/components/XAdkProvider/compound/Sidebar.js.map +2 -2
  8. package/dist/cjs/components/XAdkProvider/context/ChatSenderStateContext.d.ts +6 -2
  9. package/dist/cjs/components/XAdkProvider/context/ChatSenderStateContext.js.map +2 -2
  10. package/dist/cjs/components/XAdkProvider/index.js +8 -5
  11. package/dist/cjs/components/XAdkProvider/index.js.map +2 -2
  12. package/dist/cjs/components/XAdkSender/index.js +502 -496
  13. package/dist/cjs/components/XAdkSender/index.js.map +2 -2
  14. package/dist/cjs/components/XAdkSender/styles.js +0 -13
  15. package/dist/cjs/components/XAdkSender/styles.js.map +2 -2
  16. package/dist/cjs/core/index.d.ts +2 -0
  17. package/dist/cjs/core/index.js +26 -0
  18. package/dist/cjs/core/index.js.map +7 -0
  19. package/dist/cjs/core/protocol/index.d.ts +3 -0
  20. package/dist/cjs/core/protocol/index.js +28 -0
  21. package/dist/cjs/core/protocol/index.js.map +7 -0
  22. package/dist/cjs/core/protocol/messages.d.ts +55 -0
  23. package/dist/cjs/core/protocol/messages.js +307 -0
  24. package/dist/cjs/core/protocol/messages.js.map +7 -0
  25. package/dist/cjs/core/protocol/parts.d.ts +24 -0
  26. package/dist/cjs/core/protocol/parts.js +106 -0
  27. package/dist/cjs/core/protocol/parts.js.map +7 -0
  28. package/dist/cjs/core/protocol/types.d.ts +57 -0
  29. package/dist/cjs/core/protocol/types.js +18 -0
  30. package/dist/cjs/core/protocol/types.js.map +7 -0
  31. package/dist/cjs/core/runtime/createAdkConversationController.d.ts +8 -0
  32. package/dist/cjs/core/runtime/createAdkConversationController.js +424 -0
  33. package/dist/cjs/core/runtime/createAdkConversationController.js.map +7 -0
  34. package/dist/cjs/core/runtime/index.d.ts +2 -0
  35. package/dist/cjs/core/runtime/index.js +26 -0
  36. package/dist/cjs/core/runtime/index.js.map +7 -0
  37. package/dist/cjs/core/runtime/types.d.ts +130 -0
  38. package/dist/cjs/core/runtime/types.js +18 -0
  39. package/dist/cjs/core/runtime/types.js.map +7 -0
  40. package/dist/{esm/utils/umdEntry.d.ts → cjs/entries/umd.d.ts} +7 -0
  41. package/dist/cjs/{utils/umdEntry.js → entries/umd.js} +19 -9
  42. package/dist/cjs/entries/umd.js.map +7 -0
  43. package/dist/cjs/hooks/useADKChat.js +1 -0
  44. package/dist/cjs/hooks/useADKChat.js.map +2 -2
  45. package/dist/cjs/index.d.ts +6 -1
  46. package/dist/cjs/index.js +19 -11
  47. package/dist/cjs/index.js.map +3 -3
  48. package/dist/cjs/presets/xgroup/index.d.ts +4 -0
  49. package/dist/cjs/presets/xgroup/index.js +30 -0
  50. package/dist/cjs/presets/xgroup/index.js.map +7 -0
  51. package/dist/cjs/presets/xgroup/preset.d.ts +15 -0
  52. package/dist/cjs/presets/xgroup/preset.js +69 -0
  53. package/dist/cjs/presets/xgroup/preset.js.map +7 -0
  54. package/dist/cjs/presets/xgroup/strategies.d.ts +8 -0
  55. package/dist/cjs/presets/xgroup/strategies.js +53 -0
  56. package/dist/cjs/presets/xgroup/strategies.js.map +7 -0
  57. package/dist/cjs/presets/xgroup/transport.d.ts +15 -0
  58. package/dist/cjs/presets/xgroup/transport.js +183 -0
  59. package/dist/cjs/presets/xgroup/transport.js.map +7 -0
  60. package/dist/cjs/presets/xgroup/upload.d.ts +8 -0
  61. package/dist/cjs/presets/xgroup/upload.js +65 -0
  62. package/dist/cjs/presets/xgroup/upload.js.map +7 -0
  63. package/dist/cjs/react/index.d.ts +6 -0
  64. package/dist/cjs/react/index.js +53 -0
  65. package/dist/cjs/react/index.js.map +7 -0
  66. package/dist/cjs/react/useAdkConversation.d.ts +27 -0
  67. package/dist/cjs/react/useAdkConversation.js +69 -0
  68. package/dist/cjs/react/useAdkConversation.js.map +7 -0
  69. package/dist/cjs/types/XAdkSender.d.ts +0 -2
  70. package/dist/cjs/types/XAdkSender.js.map +1 -1
  71. package/dist/esm/components/XAdkChatbot/index.js +1 -1
  72. package/dist/esm/components/XAdkChatbot/index.js.map +1 -1
  73. package/dist/esm/components/XAdkProvider/compound/Sender.d.ts +2 -2
  74. package/dist/esm/components/XAdkProvider/compound/Sender.js +7 -4
  75. package/dist/esm/components/XAdkProvider/compound/Sender.js.map +1 -1
  76. package/dist/esm/components/XAdkProvider/compound/Sidebar.js +7 -2
  77. package/dist/esm/components/XAdkProvider/compound/Sidebar.js.map +1 -1
  78. package/dist/esm/components/XAdkProvider/context/ChatSenderStateContext.d.ts +6 -2
  79. package/dist/esm/components/XAdkProvider/context/ChatSenderStateContext.js.map +1 -1
  80. package/dist/esm/components/XAdkProvider/index.js +13 -4
  81. package/dist/esm/components/XAdkProvider/index.js.map +1 -1
  82. package/dist/esm/components/XAdkSender/index.js +2 -5
  83. package/dist/esm/components/XAdkSender/index.js.map +1 -1
  84. package/dist/esm/components/XAdkSender/styles.js +1 -1
  85. package/dist/esm/components/XAdkSender/styles.js.map +1 -1
  86. package/dist/esm/core/index.d.ts +2 -0
  87. package/dist/esm/core/index.js +3 -0
  88. package/dist/esm/core/index.js.map +1 -0
  89. package/dist/esm/core/protocol/index.d.ts +3 -0
  90. package/dist/esm/core/protocol/index.js +4 -0
  91. package/dist/esm/core/protocol/index.js.map +1 -0
  92. package/dist/esm/core/protocol/messages.d.ts +55 -0
  93. package/dist/esm/core/protocol/messages.js +315 -0
  94. package/dist/esm/core/protocol/messages.js.map +1 -0
  95. package/dist/esm/core/protocol/parts.d.ts +24 -0
  96. package/dist/esm/core/protocol/parts.js +100 -0
  97. package/dist/esm/core/protocol/parts.js.map +1 -0
  98. package/dist/esm/core/protocol/types.d.ts +57 -0
  99. package/dist/esm/core/protocol/types.js +2 -0
  100. package/dist/esm/core/protocol/types.js.map +1 -0
  101. package/dist/esm/core/runtime/createAdkConversationController.d.ts +8 -0
  102. package/dist/esm/core/runtime/createAdkConversationController.js +742 -0
  103. package/dist/esm/core/runtime/createAdkConversationController.js.map +1 -0
  104. package/dist/esm/core/runtime/index.d.ts +2 -0
  105. package/dist/esm/core/runtime/index.js +3 -0
  106. package/dist/esm/core/runtime/index.js.map +1 -0
  107. package/dist/esm/core/runtime/types.d.ts +130 -0
  108. package/dist/esm/core/runtime/types.js +2 -0
  109. package/dist/esm/core/runtime/types.js.map +1 -0
  110. package/dist/{cjs/utils/umdEntry.d.ts → esm/entries/umd.d.ts} +7 -0
  111. package/dist/esm/{utils/umdEntry.js → entries/umd.js} +10 -1
  112. package/dist/esm/entries/umd.js.map +1 -0
  113. package/dist/esm/hooks/useADKChat.js +2 -1
  114. package/dist/esm/hooks/useADKChat.js.map +1 -1
  115. package/dist/esm/index.d.ts +6 -1
  116. package/dist/esm/index.js +6 -1
  117. package/dist/esm/index.js.map +1 -1
  118. package/dist/esm/presets/xgroup/index.d.ts +4 -0
  119. package/dist/esm/presets/xgroup/index.js +5 -0
  120. package/dist/esm/presets/xgroup/index.js.map +1 -0
  121. package/dist/esm/presets/xgroup/preset.d.ts +15 -0
  122. package/dist/esm/presets/xgroup/preset.js +44 -0
  123. package/dist/esm/presets/xgroup/preset.js.map +1 -0
  124. package/dist/esm/presets/xgroup/strategies.d.ts +8 -0
  125. package/dist/esm/presets/xgroup/strategies.js +30 -0
  126. package/dist/esm/presets/xgroup/strategies.js.map +1 -0
  127. package/dist/esm/presets/xgroup/transport.d.ts +15 -0
  128. package/dist/esm/presets/xgroup/transport.js +322 -0
  129. package/dist/esm/presets/xgroup/transport.js.map +1 -0
  130. package/dist/esm/presets/xgroup/upload.d.ts +8 -0
  131. package/dist/esm/presets/{xGroupAdk.js → xgroup/upload.js} +9 -63
  132. package/dist/esm/presets/xgroup/upload.js.map +1 -0
  133. package/dist/esm/react/index.d.ts +6 -0
  134. package/dist/esm/react/index.js +5 -0
  135. package/dist/esm/react/index.js.map +1 -0
  136. package/dist/esm/react/useAdkConversation.d.ts +27 -0
  137. package/dist/esm/react/useAdkConversation.js +53 -0
  138. package/dist/esm/react/useAdkConversation.js.map +1 -0
  139. package/dist/esm/types/XAdkSender.d.ts +0 -2
  140. package/dist/esm/types/XAdkSender.js.map +1 -1
  141. package/dist/umd/chat-sdk.min.js +1 -1
  142. package/package.json +36 -2
  143. package/dist/cjs/presets/xGroupAdk.d.ts +0 -20
  144. package/dist/cjs/presets/xGroupAdk.js +0 -130
  145. package/dist/cjs/presets/xGroupAdk.js.map +0 -7
  146. package/dist/cjs/utils/umdEntry.js.map +0 -7
  147. package/dist/esm/presets/xGroupAdk.d.ts +0 -20
  148. package/dist/esm/presets/xGroupAdk.js.map +0 -1
  149. package/dist/esm/utils/umdEntry.js.map +0 -1
package/dist/cjs/index.js CHANGED
@@ -45,26 +45,28 @@ __export(src_exports, {
45
45
  XAiProvider: () => import_XAiProvider.default,
46
46
  XAiSDK: () => import_XAiSDK.default,
47
47
  XAiSender: () => import_XAiSender.default,
48
- baseChatStrategies: () => import_xGroupAdk.baseChatStrategies,
49
- basePreset: () => import_xGroupAdk.basePreset,
50
- baseToolKindResolver: () => import_xGroupAdk.baseToolKindResolver,
51
- createXGroupUploadRequest: () => import_xGroupAdk.createXGroupUploadRequest,
48
+ baseChatStrategies: () => import_xgroup.baseChatStrategies,
49
+ basePreset: () => import_xgroup.basePreset,
50
+ baseToolKindResolver: () => import_xgroup.baseToolKindResolver,
51
+ createXGroupOpenApiTransport: () => import_xgroup2.createXGroupOpenApiTransport,
52
+ createXGroupUploadRequest: () => import_xgroup.createXGroupUploadRequest,
52
53
  cssVarStyle: () => import_tokens.cssVarStyle,
53
- mergeChatStrategies: () => import_xGroupAdk.mergeChatStrategies,
54
+ mergeChatStrategies: () => import_xgroup.mergeChatStrategies,
54
55
  request: () => import_request.default,
55
- resolveChatPreset: () => import_xGroupAdk.resolveChatPreset,
56
- resolvePresetUploadRequest: () => import_xGroupAdk.resolvePresetUploadRequest,
56
+ resolveChatPreset: () => import_xgroup.resolveChatPreset,
57
+ resolvePresetUploadRequest: () => import_xgroup.resolvePresetUploadRequest,
57
58
  token: () => import_tokens.token,
58
59
  tokenDefaults: () => import_tokens.tokenDefaults,
59
60
  tokens: () => import_tokens.tokens,
60
61
  useADKChat: () => import_useADKChat.default,
62
+ useAdkConversation: () => import_useAdkConversation.default,
61
63
  useChatActions: () => import_context.useChatActions,
62
64
  useChatState: () => import_context.useChatState,
63
65
  useSession: () => import_context.useSession,
64
66
  useXAi: () => import_AiProviderContext.useXAi,
65
67
  useXAiSDK: () => import_useXAiSDK.default,
66
- xGroupAdkPreset: () => import_xGroupAdk.xGroupAdkPreset,
67
- xGroupToolKindResolver: () => import_xGroupAdk.xGroupToolKindResolver
68
+ xGroupAdkPreset: () => import_xgroup.xGroupAdkPreset,
69
+ xGroupToolKindResolver: () => import_xgroup.xGroupToolKindResolver
68
70
  });
69
71
  module.exports = __toCommonJS(src_exports);
70
72
  var import_AiProviderContext = require("./context/AiProviderContext");
@@ -82,7 +84,7 @@ var import_XAdkChatbot = __toESM(require("./components/XAdkChatbot"));
82
84
  var import_XAdkSender = __toESM(require("./components/XAdkSender"));
83
85
  var import_Switch = __toESM(require("./components/XAdkSender/Switch"));
84
86
  var import_useADKChat = __toESM(require("./hooks/useADKChat"));
85
- var import_xGroupAdk = require("./presets/xGroupAdk");
87
+ var import_xgroup = require("./presets/xgroup");
86
88
  var import_context = require("./components/XAdkProvider/context");
87
89
  __reExport(src_exports, require("./types"), module.exports);
88
90
  var import_FolderTree = __toESM(require("./components/FolderTree"));
@@ -90,6 +92,9 @@ var import_MarkdownRender = __toESM(require("./components/XAdkChatbot/components
90
92
  var import_FunctionCallRender = __toESM(require("./components/XAdkChatbot/components/FunctionCallRender"));
91
93
  var import_ThinkRender = __toESM(require("./components/XAdkChatbot/components/ThinkRender"));
92
94
  var import_tokens = require("./styles/tokens");
95
+ __reExport(src_exports, require("./core"), module.exports);
96
+ var import_useAdkConversation = __toESM(require("./react/useAdkConversation"));
97
+ var import_xgroup2 = require("./presets/xgroup");
93
98
  // Annotate the CommonJS export names for ESM import in node:
94
99
  0 && (module.exports = {
95
100
  FileGallery,
@@ -110,6 +115,7 @@ var import_tokens = require("./styles/tokens");
110
115
  baseChatStrategies,
111
116
  basePreset,
112
117
  baseToolKindResolver,
118
+ createXGroupOpenApiTransport,
113
119
  createXGroupUploadRequest,
114
120
  cssVarStyle,
115
121
  mergeChatStrategies,
@@ -120,6 +126,7 @@ var import_tokens = require("./styles/tokens");
120
126
  tokenDefaults,
121
127
  tokens,
122
128
  useADKChat,
129
+ useAdkConversation,
123
130
  useChatActions,
124
131
  useChatState,
125
132
  useSession,
@@ -127,6 +134,7 @@ var import_tokens = require("./styles/tokens");
127
134
  useXAiSDK,
128
135
  xGroupAdkPreset,
129
136
  xGroupToolKindResolver,
130
- ...require("./types")
137
+ ...require("./types"),
138
+ ...require("./core")
131
139
  });
132
140
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "sourcesContent": ["// index.ts\nimport { useXAi } from \"./context/AiProviderContext\";\nimport XAiProvider from \"./components/XAiProvider\";\nimport XAiChatbot from \"./components/XAiChatbot\";\nimport XAiSDK from \"./components/XAiSDK\";\nimport XAiSender from \"./components/XAiSender\";\nimport FileGallery from \"./components/FileGallery\";\nimport XAiConversations from \"./components/XAiConversations\";\nimport XAdkThoughtChain from \"./components/XAdkThoughtChain\";\nimport useXAiSDK from \"./hooks/useXAiSDK\";\nimport request from \"./utils/request\";\n\n// 新的 Compound Components 架构\nimport XAdkProvider from \"./components/XAdkProvider\";\nimport XAdkChatbot from \"./components/XAdkChatbot\";\nimport XAdkSender from \"./components/XAdkSender\";\nimport XAdkSenderSwitch from \"./components/XAdkSender/Switch\";\nimport useADKChat from \"./hooks/useADKChat\";\nimport {\n baseChatStrategies,\n basePreset,\n baseToolKindResolver,\n mergeChatStrategies,\n resolvePresetUploadRequest,\n resolveChatPreset,\n createXGroupUploadRequest,\n xGroupAdkPreset,\n xGroupToolKindResolver,\n} from \"./presets/xGroupAdk\";\n\n// 导出新的 Context Hooks\nexport {\n useChatState,\n useChatActions,\n useSession,\n} from \"./components/XAdkProvider/context\";\n\nexport * from \"./types\";\n\n// 导出自定义 Hook 相关类型\nexport type { ChatHookResult, ChatHookFactory } from \"./types/ChatHook\";\n\n// 旧 API - 保持向后兼容\nexport {\n useXAi,\n XAiProvider,\n XAiChatbot,\n XAiSDK,\n XAiSender,\n XAiConversations,\n useXAiSDK,\n request,\n};\n\n// 新 API - 推荐使用\nexport {\n XAdkProvider,\n XAdkChatbot,\n XAdkSender,\n XAdkSenderSwitch,\n FileGallery,\n XAdkThoughtChain,\n useADKChat,\n baseChatStrategies,\n basePreset,\n baseToolKindResolver,\n createXGroupUploadRequest,\n mergeChatStrategies,\n resolvePresetUploadRequest,\n resolveChatPreset,\n xGroupAdkPreset,\n xGroupToolKindResolver,\n};\n\n// FolderTree 文件树组件\nimport FolderTree from \"./components/FolderTree\";\nexport { FolderTree };\nexport type {\n FolderTreeProps,\n FolderTreeData,\n FileContentService,\n FolderTreeRef,\n} from \"./components/FolderTree\";\n\n// 基础组件导出 - 供高级用户和业务侧使用\nexport { default as MarkdownRender } from \"./components/XAdkChatbot/components/MarkdownRender\";\nexport { default as FunctionCallRender } from \"./components/XAdkChatbot/components/FunctionCallRender\";\nexport { default as ThinkRender } from \"./components/XAdkChatbot/components/ThinkRender\";\n\n// 基础组件类型导出\nexport type { MarkdownRenderProps } from \"./components/XAdkChatbot/components/MarkdownRender\";\nexport type { FunctionCallRenderProps } from \"./types/FunctionCallRender\";\nexport type {\n XAdkThoughtChainProps,\n ThoughtChainItemType,\n ThoughtChainStatus,\n} from \"./types/XAdkThoughtChain\";\n\n// 设计令牌导出 - 供引用方覆盖样式\nexport { tokens, tokenDefaults, token, cssVarStyle } from \"./styles/tokens\";\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,wCAAAA;AAAA,EAAA,oCAAAC;AAAA,EAAA;AAAA;AAAA;AAAA,wCAAAC;AAAA,EAAA,wCAAAC;AAAA,EAAA,oCAAAC;AAAA,EAAA,sCAAAC;AAAA,EAAA,gDAAAC;AAAA,EAAA,oCAAAC;AAAA,EAAA,gDAAAC;AAAA,EAAA,sCAAAC;AAAA,EAAA,4BAAAC;AAAA,EAAA,kCAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sCAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA,oCAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AACA,+BAAuB;AACvB,yBAAwB;AACxB,wBAAuB;AACvB,oBAAmB;AACnB,uBAAsB;AACtB,yBAAwB;AACxB,8BAA6B;AAC7B,8BAA6B;AAC7B,uBAAsB;AACtB,qBAAoB;AAGpB,0BAAyB;AACzB,yBAAwB;AACxB,wBAAuB;AACvB,oBAA6B;AAC7B,wBAAuB;AACvB,uBAUO;AAGP,qBAIO;AAEP,wBAAc,oBArCd;AA2EA,wBAAuB;AAUvB,4BAA0C;AAC1C,gCAA8C;AAC9C,yBAAuC;AAYvC,oBAA0D;",
6
- "names": ["FileGallery", "FolderTree", "XAdkChatbot", "XAdkProvider", "XAdkSender", "XAdkSenderSwitch", "XAdkThoughtChain", "XAiChatbot", "XAiConversations", "XAiProvider", "XAiSDK", "XAiSender", "request", "useADKChat", "useXAiSDK"]
4
+ "sourcesContent": ["// index.ts\nimport { useXAi } from \"./context/AiProviderContext\";\nimport XAiProvider from \"./components/XAiProvider\";\nimport XAiChatbot from \"./components/XAiChatbot\";\nimport XAiSDK from \"./components/XAiSDK\";\nimport XAiSender from \"./components/XAiSender\";\nimport FileGallery from \"./components/FileGallery\";\nimport XAiConversations from \"./components/XAiConversations\";\nimport XAdkThoughtChain from \"./components/XAdkThoughtChain\";\nimport useXAiSDK from \"./hooks/useXAiSDK\";\nimport request from \"./utils/request\";\n\n// 新的 Compound Components 架构\nimport XAdkProvider from \"./components/XAdkProvider\";\nimport XAdkChatbot from \"./components/XAdkChatbot\";\nimport XAdkSender from \"./components/XAdkSender\";\nimport XAdkSenderSwitch from \"./components/XAdkSender/Switch\";\nimport useADKChat from \"./hooks/useADKChat\";\nimport {\n baseChatStrategies,\n basePreset,\n baseToolKindResolver,\n mergeChatStrategies,\n resolvePresetUploadRequest,\n resolveChatPreset,\n createXGroupUploadRequest,\n xGroupAdkPreset,\n xGroupToolKindResolver,\n} from \"./presets/xgroup\";\n\n// 导出新的 Context Hooks\nexport {\n useChatState,\n useChatActions,\n useSession,\n} from \"./components/XAdkProvider/context\";\n\nexport * from \"./types\";\n\n// 导出自定义 Hook 相关类型\nexport type { ChatHookResult, ChatHookFactory } from \"./types/ChatHook\";\n\n// 旧 API - 保持向后兼容\nexport {\n useXAi,\n XAiProvider,\n XAiChatbot,\n XAiSDK,\n XAiSender,\n XAiConversations,\n useXAiSDK,\n request,\n};\n\n// 新 API - 推荐使用\nexport {\n XAdkProvider,\n XAdkChatbot,\n XAdkSender,\n XAdkSenderSwitch,\n FileGallery,\n XAdkThoughtChain,\n useADKChat,\n baseChatStrategies,\n basePreset,\n baseToolKindResolver,\n createXGroupUploadRequest,\n mergeChatStrategies,\n resolvePresetUploadRequest,\n resolveChatPreset,\n xGroupAdkPreset,\n xGroupToolKindResolver,\n};\n\n// FolderTree 文件树组件\nimport FolderTree from \"./components/FolderTree\";\nexport { FolderTree };\nexport type {\n FolderTreeProps,\n FolderTreeData,\n FileContentService,\n FolderTreeRef,\n} from \"./components/FolderTree\";\n\n// 基础组件导出 - 供高级用户和业务侧使用\nexport { default as MarkdownRender } from \"./components/XAdkChatbot/components/MarkdownRender\";\nexport { default as FunctionCallRender } from \"./components/XAdkChatbot/components/FunctionCallRender\";\nexport { default as ThinkRender } from \"./components/XAdkChatbot/components/ThinkRender\";\n\n// 基础组件类型导出\nexport type { MarkdownRenderProps } from \"./components/XAdkChatbot/components/MarkdownRender\";\nexport type { FunctionCallRenderProps } from \"./types/FunctionCallRender\";\nexport type {\n XAdkThoughtChainProps,\n ThoughtChainItemType,\n ThoughtChainStatus,\n} from \"./types/XAdkThoughtChain\";\n\n// 设计令牌导出 - 供引用方覆盖样式\nexport { tokens, tokenDefaults, token, cssVarStyle } from \"./styles/tokens\";\n\n// Headless ADK data-flow APIs\nexport * from \"./core\";\nexport { default as useAdkConversation } from \"./react/useAdkConversation\";\nexport type { UseAdkConversationResult } from \"./react/useAdkConversation\";\nexport { createXGroupOpenApiTransport } from \"./presets/xgroup\";\nexport type { XGroupOpenApiTransportOptions } from \"./presets/xgroup\";\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,wCAAAA;AAAA,EAAA,oCAAAC;AAAA,EAAA;AAAA;AAAA;AAAA,wCAAAC;AAAA,EAAA,wCAAAC;AAAA,EAAA,oCAAAC;AAAA,EAAA,sCAAAC;AAAA,EAAA,gDAAAC;AAAA,EAAA,oCAAAC;AAAA,EAAA,gDAAAC;AAAA,EAAA,sCAAAC;AAAA,EAAA,4BAAAC;AAAA,EAAA,kCAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sCAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oCAAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AACA,+BAAuB;AACvB,yBAAwB;AACxB,wBAAuB;AACvB,oBAAmB;AACnB,uBAAsB;AACtB,yBAAwB;AACxB,8BAA6B;AAC7B,8BAA6B;AAC7B,uBAAsB;AACtB,qBAAoB;AAGpB,0BAAyB;AACzB,yBAAwB;AACxB,wBAAuB;AACvB,oBAA6B;AAC7B,wBAAuB;AACvB,oBAUO;AAGP,qBAIO;AAEP,wBAAc,oBArCd;AA2EA,wBAAuB;AAUvB,4BAA0C;AAC1C,gCAA8C;AAC9C,yBAAuC;AAYvC,oBAA0D;AAG1D,wBAAc,mBAtGd;AAuGA,gCAA8C;AAE9C,IAAAC,iBAA6C;",
6
+ "names": ["FileGallery", "FolderTree", "XAdkChatbot", "XAdkProvider", "XAdkSender", "XAdkSenderSwitch", "XAdkThoughtChain", "XAiChatbot", "XAiConversations", "XAiProvider", "XAiSDK", "XAiSender", "request", "useADKChat", "useXAiSDK", "import_xgroup"]
7
7
  }
@@ -0,0 +1,4 @@
1
+ export * from "./preset";
2
+ export * from "./strategies";
3
+ export * from "./transport";
4
+ export * from "./upload";
@@ -0,0 +1,30 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __copyProps = (to, from, except, desc) => {
6
+ if (from && typeof from === "object" || typeof from === "function") {
7
+ for (let key of __getOwnPropNames(from))
8
+ if (!__hasOwnProp.call(to, key) && key !== except)
9
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
+ }
11
+ return to;
12
+ };
13
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+
16
+ // src/presets/xgroup/index.ts
17
+ var xgroup_exports = {};
18
+ module.exports = __toCommonJS(xgroup_exports);
19
+ __reExport(xgroup_exports, require("./preset"), module.exports);
20
+ __reExport(xgroup_exports, require("./strategies"), module.exports);
21
+ __reExport(xgroup_exports, require("./transport"), module.exports);
22
+ __reExport(xgroup_exports, require("./upload"), module.exports);
23
+ // Annotate the CommonJS export names for ESM import in node:
24
+ 0 && (module.exports = {
25
+ ...require("./preset"),
26
+ ...require("./strategies"),
27
+ ...require("./transport"),
28
+ ...require("./upload")
29
+ });
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/presets/xgroup/index.ts"],
4
+ "sourcesContent": ["export * from \"./preset\";\nexport * from \"./strategies\";\nexport * from \"./transport\";\nexport * from \"./upload\";\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,2BAAc,qBAAd;AACA,2BAAc,yBADd;AAEA,2BAAc,wBAFd;AAGA,2BAAc,qBAHd;",
6
+ "names": []
7
+ }
@@ -0,0 +1,15 @@
1
+ import type { ChatPreset, ChatPresetInput, ChatStrategies, UploadRequestFn } from "../../types";
2
+ /** 众安信科 ADK 官方预设:聚合工具展示、消息解析、确认响应和默认上传等业务策略。 */
3
+ export declare const xGroupAdkPreset: ChatPreset;
4
+ /** 基础预设用于完全通用的 SDK 行为,不绑定众安信科后端协议。 */
5
+ export declare const basePreset: ChatPreset;
6
+ /** 统一解析字符串预设和对象预设,默认保持历史行为使用 xgroup-adk。 */
7
+ export declare const resolveChatPreset: (preset: ChatPresetInput | undefined) => ChatPreset;
8
+ /** 将预设策略与局部覆盖合并,供组件和业务侧按需覆盖单个函数。 */
9
+ export declare const mergeChatStrategies: (preset: ChatPresetInput | undefined, overrides?: ChatStrategies) => ChatStrategies;
10
+ /** 从当前预设中解析上传实现,业务显式传入 uploadRequest 时仍然优先使用业务实现。 */
11
+ export declare const resolvePresetUploadRequest: (preset: ChatPresetInput | undefined, context: {
12
+ url: string;
13
+ token?: string;
14
+ appNo?: string;
15
+ }) => UploadRequestFn | undefined;
@@ -0,0 +1,69 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/presets/xgroup/preset.ts
20
+ var preset_exports = {};
21
+ __export(preset_exports, {
22
+ basePreset: () => basePreset,
23
+ mergeChatStrategies: () => mergeChatStrategies,
24
+ resolveChatPreset: () => resolveChatPreset,
25
+ resolvePresetUploadRequest: () => resolvePresetUploadRequest,
26
+ xGroupAdkPreset: () => xGroupAdkPreset
27
+ });
28
+ module.exports = __toCommonJS(preset_exports);
29
+ var import_utils = require("../../utils");
30
+ var import_strategies = require("./strategies");
31
+ var import_upload = require("./upload");
32
+ var xGroupAdkPreset = {
33
+ name: "xgroup-adk",
34
+ strategies: {
35
+ resolveToolKind: import_strategies.xGroupToolKindResolver,
36
+ createFunctionResponse: import_strategies.baseChatStrategies.createFunctionResponse,
37
+ parseProcessMessage: (text, options) => (0, import_utils.parseAgentMessage)(text, { mode: "comment", ...options })
38
+ },
39
+ createUploadRequest: import_upload.createXGroupUploadRequest
40
+ };
41
+ var basePreset = {
42
+ name: "base",
43
+ strategies: import_strategies.baseChatStrategies
44
+ };
45
+ var resolveChatPreset = (preset) => {
46
+ if (!preset || preset === "xgroup-adk")
47
+ return xGroupAdkPreset;
48
+ if (preset === "base")
49
+ return basePreset;
50
+ return preset;
51
+ };
52
+ var mergeChatStrategies = (preset, overrides) => ({
53
+ ...import_strategies.baseChatStrategies,
54
+ ...resolveChatPreset(preset).strategies,
55
+ ...overrides
56
+ });
57
+ var resolvePresetUploadRequest = (preset, context) => {
58
+ var _a, _b;
59
+ return (_b = (_a = resolveChatPreset(preset)).createUploadRequest) == null ? void 0 : _b.call(_a, context);
60
+ };
61
+ // Annotate the CommonJS export names for ESM import in node:
62
+ 0 && (module.exports = {
63
+ basePreset,
64
+ mergeChatStrategies,
65
+ resolveChatPreset,
66
+ resolvePresetUploadRequest,
67
+ xGroupAdkPreset
68
+ });
69
+ //# sourceMappingURL=preset.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/presets/xgroup/preset.ts"],
4
+ "sourcesContent": ["import { parseAgentMessage } from \"@/utils\";\nimport type {\n ChatPreset,\n ChatPresetInput,\n ChatStrategies,\n UploadRequestFn,\n} from \"@/types\";\nimport {\n baseChatStrategies,\n xGroupToolKindResolver,\n} from \"./strategies\";\nimport { createXGroupUploadRequest } from \"./upload\";\n\n/** 众安信科 ADK 官方预设:聚合工具展示、消息解析、确认响应和默认上传等业务策略。 */\nexport const xGroupAdkPreset: ChatPreset = {\n name: \"xgroup-adk\",\n strategies: {\n resolveToolKind: xGroupToolKindResolver,\n createFunctionResponse: baseChatStrategies.createFunctionResponse,\n parseProcessMessage: (text, options) =>\n parseAgentMessage(text, { mode: \"comment\", ...options }),\n },\n createUploadRequest: createXGroupUploadRequest,\n};\n\n/** 基础预设用于完全通用的 SDK 行为,不绑定众安信科后端协议。 */\nexport const basePreset: ChatPreset = {\n name: \"base\",\n strategies: baseChatStrategies,\n};\n\n/** 统一解析字符串预设和对象预设,默认保持历史行为使用 xgroup-adk。 */\nexport const resolveChatPreset = (\n preset: ChatPresetInput | undefined,\n): ChatPreset => {\n if (!preset || preset === \"xgroup-adk\") return xGroupAdkPreset;\n if (preset === \"base\") return basePreset;\n return preset;\n};\n\n/** 将预设策略与局部覆盖合并,供组件和业务侧按需覆盖单个函数。 */\nexport const mergeChatStrategies = (\n preset: ChatPresetInput | undefined,\n overrides?: ChatStrategies,\n): ChatStrategies => ({\n ...baseChatStrategies,\n ...resolveChatPreset(preset).strategies,\n ...overrides,\n});\n\n/** 从当前预设中解析上传实现,业务显式传入 uploadRequest 时仍然优先使用业务实现。 */\nexport const resolvePresetUploadRequest = (\n preset: ChatPresetInput | undefined,\n context: {\n url: string;\n token?: string;\n appNo?: string;\n },\n): UploadRequestFn | undefined => {\n return resolveChatPreset(preset).createUploadRequest?.(context);\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkC;AAOlC,wBAGO;AACP,oBAA0C;AAGnC,IAAM,kBAA8B;AAAA,EACzC,MAAM;AAAA,EACN,YAAY;AAAA,IACV,iBAAiB;AAAA,IACjB,wBAAwB,qCAAmB;AAAA,IAC3C,qBAAqB,CAAC,MAAM,gBAC1B,gCAAkB,MAAM,EAAE,MAAM,WAAW,GAAG,QAAQ,CAAC;AAAA,EAC3D;AAAA,EACA,qBAAqB;AACvB;AAGO,IAAM,aAAyB;AAAA,EACpC,MAAM;AAAA,EACN,YAAY;AACd;AAGO,IAAM,oBAAoB,CAC/B,WACe;AACf,MAAI,CAAC,UAAU,WAAW;AAAc,WAAO;AAC/C,MAAI,WAAW;AAAQ,WAAO;AAC9B,SAAO;AACT;AAGO,IAAM,sBAAsB,CACjC,QACA,eACoB;AAAA,EACpB,GAAG;AAAA,EACH,GAAG,kBAAkB,MAAM,EAAE;AAAA,EAC7B,GAAG;AACL;AAGO,IAAM,6BAA6B,CACxC,QACA,YAKgC;AA1DlC;AA2DE,UAAO,6BAAkB,MAAM,GAAE,wBAA1B,4BAAgD;AACzD;",
6
+ "names": []
7
+ }
@@ -0,0 +1,8 @@
1
+ import type { ChatStrategies, ToolRenderKind } from "../../types";
2
+ export declare const baseToolKindResolver: () => ToolRenderKind;
3
+ /** 众安信科预设的工具类型映射,集中处理当前后端约定的 tool name。 */
4
+ export declare const xGroupToolKindResolver: ({ name, }: {
5
+ name?: string | undefined;
6
+ }) => ToolRenderKind;
7
+ /** SDK 基础策略:不带业务协议偏好的最小行为集合。 */
8
+ export declare const baseChatStrategies: Required<Pick<ChatStrategies, "resolveToolKind" | "createFunctionResponse" | "parseProcessMessage">>;
@@ -0,0 +1,53 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/presets/xgroup/strategies.ts
20
+ var strategies_exports = {};
21
+ __export(strategies_exports, {
22
+ baseChatStrategies: () => baseChatStrategies,
23
+ baseToolKindResolver: () => baseToolKindResolver,
24
+ xGroupToolKindResolver: () => xGroupToolKindResolver
25
+ });
26
+ module.exports = __toCommonJS(strategies_exports);
27
+ var import_utils = require("../../utils");
28
+ var baseToolKindResolver = () => "default";
29
+ var xGroupToolKindResolver = ({
30
+ name
31
+ }) => {
32
+ if (name === "adk_request_confirmation")
33
+ return "approval";
34
+ if (name === "transferToAgent")
35
+ return "handoff";
36
+ return "default";
37
+ };
38
+ var baseChatStrategies = {
39
+ resolveToolKind: () => "default",
40
+ createFunctionResponse: (fnCall, confirmed) => ({
41
+ id: fnCall.id,
42
+ name: fnCall.name,
43
+ response: { confirmed }
44
+ }),
45
+ parseProcessMessage: import_utils.parseAgentMessage
46
+ };
47
+ // Annotate the CommonJS export names for ESM import in node:
48
+ 0 && (module.exports = {
49
+ baseChatStrategies,
50
+ baseToolKindResolver,
51
+ xGroupToolKindResolver
52
+ });
53
+ //# sourceMappingURL=strategies.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/presets/xgroup/strategies.ts"],
4
+ "sourcesContent": ["import { parseAgentMessage } from \"@/utils\";\nimport type {\n ChatStrategies,\n FunctionCall,\n FunctionResponse,\n ToolRenderKind,\n} from \"@/types\";\n\nexport const baseToolKindResolver = (): ToolRenderKind => \"default\";\n\n/** 众安信科预设的工具类型映射,集中处理当前后端约定的 tool name。 */\nexport const xGroupToolKindResolver = ({\n name,\n}: {\n name?: string;\n}): ToolRenderKind => {\n if (name === \"adk_request_confirmation\") return \"approval\";\n if (name === \"transferToAgent\") return \"handoff\";\n return \"default\";\n};\n\n/** SDK 基础策略:不带业务协议偏好的最小行为集合。 */\nexport const baseChatStrategies: Required<\n Pick<\n ChatStrategies,\n \"resolveToolKind\" | \"createFunctionResponse\" | \"parseProcessMessage\"\n >\n> = {\n resolveToolKind: () => \"default\",\n createFunctionResponse: (\n fnCall: FunctionCall,\n confirmed: boolean,\n ): FunctionResponse => ({\n id: fnCall.id,\n name: fnCall.name,\n response: { confirmed },\n }),\n parseProcessMessage: parseAgentMessage,\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkC;AAQ3B,IAAM,uBAAuB,MAAsB;AAGnD,IAAM,yBAAyB,CAAC;AAAA,EACrC;AACF,MAEsB;AACpB,MAAI,SAAS;AAA4B,WAAO;AAChD,MAAI,SAAS;AAAmB,WAAO;AACvC,SAAO;AACT;AAGO,IAAM,qBAKT;AAAA,EACF,iBAAiB,MAAM;AAAA,EACvB,wBAAwB,CACtB,QACA,eACsB;AAAA,IACtB,IAAI,OAAO;AAAA,IACX,MAAM,OAAO;AAAA,IACb,UAAU,EAAE,UAAU;AAAA,EACxB;AAAA,EACA,qBAAqB;AACvB;",
6
+ "names": []
7
+ }
@@ -0,0 +1,15 @@
1
+ import type { AdkChatTransport } from "../../core/runtime";
2
+ export interface XGroupOpenApiTransportOptions {
3
+ url: string;
4
+ appNo: string;
5
+ token?: string | (() => string | undefined);
6
+ pageSize?: number;
7
+ onAuthError?: (response: Response) => void;
8
+ }
9
+ /**
10
+ * 众安信科 openApi 默认 transport。
11
+ *
12
+ * 这层只负责把 SDK 标准 transport 接口映射到当前网关接口;
13
+ * 其它业务项目不要复制 useADKChat,只需要实现自己的 transport 即可。
14
+ */
15
+ export declare const createXGroupOpenApiTransport: ({ url, appNo, token, pageSize, onAuthError, }: XGroupOpenApiTransportOptions) => AdkChatTransport;
@@ -0,0 +1,183 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/presets/xgroup/transport.ts
20
+ var transport_exports = {};
21
+ __export(transport_exports, {
22
+ createXGroupOpenApiTransport: () => createXGroupOpenApiTransport
23
+ });
24
+ module.exports = __toCommonJS(transport_exports);
25
+ var import_fetch_event_source = require("@microsoft/fetch-event-source");
26
+ var import_constants = require("../../constants");
27
+ var import_api = require("../../services/api");
28
+ var import_utils = require("../../utils");
29
+ var getTokenValue = (token) => typeof token === "function" ? token() : token;
30
+ var normalizeStreamEvent = (rawData) => {
31
+ if ((rawData == null ? void 0 : rawData.data) && (rawData == null ? void 0 : rawData.result)) {
32
+ return {
33
+ ...rawData.data,
34
+ content: rawData.data,
35
+ invocationId: rawData.result.invocationId,
36
+ sessionId: rawData.result.sessionId,
37
+ id: rawData.data.id || rawData.result.id || rawData.result.eventId || rawData.result.invocationId
38
+ };
39
+ }
40
+ return rawData;
41
+ };
42
+ var createXGroupOpenApiTransport = ({
43
+ url,
44
+ appNo,
45
+ token,
46
+ pageSize = import_constants.SESSION_PAGE_SIZE,
47
+ onAuthError
48
+ }) => {
49
+ const getAuthHeaders = () => {
50
+ const tokenValue = getTokenValue(token);
51
+ return tokenValue ? { Authorization: `Bearer ${tokenValue}` } : {};
52
+ };
53
+ return {
54
+ fetchAppConfig: async () => {
55
+ const { data, result } = await (0, import_api.fetchAppConfig)({ url, appNo });
56
+ if ((result == null ? void 0 : result.code) !== import_constants.API_SUCCESS_CODE) {
57
+ throw Object.assign(new Error((result == null ? void 0 : result.message) || "获取应用配置失败"), {
58
+ code: result == null ? void 0 : result.code,
59
+ raw: result
60
+ });
61
+ }
62
+ return data;
63
+ },
64
+ fetchSessions: async (params) => {
65
+ const { data = [], pagination, result } = await (0, import_api.fetchSessionList)({
66
+ url,
67
+ appNo,
68
+ token: getTokenValue(token) || "",
69
+ pageNum: (params == null ? void 0 : params.pageNum) || 1,
70
+ pageSize: (params == null ? void 0 : params.pageSize) || pageSize
71
+ });
72
+ if ((result == null ? void 0 : result.code) !== import_constants.API_SUCCESS_CODE) {
73
+ throw Object.assign(new Error((result == null ? void 0 : result.message) || "获取会话列表失败"), {
74
+ code: result == null ? void 0 : result.code,
75
+ raw: result
76
+ });
77
+ }
78
+ return { data, pagination };
79
+ },
80
+ fetchSessionEvents: async (sessionId) => {
81
+ const { data = [], result } = await (0, import_api.fetchSessionDetail)({
82
+ url,
83
+ appNo,
84
+ sessionId,
85
+ token: getTokenValue(token) || ""
86
+ });
87
+ if ((result == null ? void 0 : result.code) !== import_constants.API_SUCCESS_CODE) {
88
+ throw Object.assign(new Error((result == null ? void 0 : result.message) || "获取会话详情失败"), {
89
+ code: result == null ? void 0 : result.code,
90
+ raw: result
91
+ });
92
+ }
93
+ return data;
94
+ },
95
+ sendMessageStreaming: (payload, handlers) => new Promise((resolve, reject) => {
96
+ void (0, import_fetch_event_source.fetchEventSource)(
97
+ `${url}/api/gateway-web/openApi/v1/aizt/app/${appNo}/sendMsgStreaming`,
98
+ {
99
+ method: "POST",
100
+ signal: handlers.signal,
101
+ body: JSON.stringify(payload),
102
+ openWhenHidden: true,
103
+ headers: {
104
+ "Content-Type": "application/json",
105
+ "Cache-Control": "no-cache",
106
+ stream: payload.stream === false ? "false" : "true",
107
+ ...getAuthHeaders()
108
+ },
109
+ async onopen(response) {
110
+ var _a;
111
+ (_a = handlers.onOpen) == null ? void 0 : _a.call(handlers, response);
112
+ if (response.ok && response.headers.get("content-type") === import_fetch_event_source.EventStreamContentType) {
113
+ return;
114
+ }
115
+ if (response.status === 401 || response.status === 403) {
116
+ onAuthError == null ? void 0 : onAuthError(response);
117
+ }
118
+ throw Object.assign(
119
+ new Error(`流式请求失败 (${response.status})`),
120
+ { status: response.status }
121
+ );
122
+ },
123
+ onmessage: (event) => {
124
+ var _a;
125
+ const rawData = (0, import_utils.safeJsonParse)(event.data, {});
126
+ const chunk = normalizeStreamEvent(rawData);
127
+ if (chunk.error) {
128
+ (_a = handlers.onError) == null ? void 0 : _a.call(handlers, chunk.error);
129
+ return;
130
+ }
131
+ handlers.onEvent(chunk);
132
+ },
133
+ onclose: () => {
134
+ var _a;
135
+ (_a = handlers.onClose) == null ? void 0 : _a.call(handlers);
136
+ resolve();
137
+ },
138
+ onerror: (error) => {
139
+ var _a;
140
+ (_a = handlers.onError) == null ? void 0 : _a.call(handlers, error);
141
+ reject(error);
142
+ throw error;
143
+ }
144
+ }
145
+ );
146
+ }),
147
+ closeSession: async (sessionId) => {
148
+ const { result } = await (0, import_api.closeSession)({
149
+ url,
150
+ appNo,
151
+ sessionId,
152
+ token: getTokenValue(token) || ""
153
+ });
154
+ return (result == null ? void 0 : result.code) === import_constants.API_SUCCESS_CODE;
155
+ },
156
+ updateSessionTitle: async (sessionId, title) => {
157
+ const { result } = await (0, import_api.updateSessionTitle)({
158
+ url,
159
+ appNo,
160
+ sessionId,
161
+ title,
162
+ token: getTokenValue(token) || ""
163
+ });
164
+ return (result == null ? void 0 : result.code) === import_constants.API_SUCCESS_CODE;
165
+ },
166
+ feedback: async ({ invocationId, isLike, ...feedbackData }) => {
167
+ const { result } = await (0, import_api.addFeedback)({
168
+ url,
169
+ appNo,
170
+ token: getTokenValue(token) || "",
171
+ requestId: invocationId,
172
+ isLike,
173
+ ...feedbackData
174
+ });
175
+ return (result == null ? void 0 : result.code) === import_constants.API_SUCCESS_CODE;
176
+ }
177
+ };
178
+ };
179
+ // Annotate the CommonJS export names for ESM import in node:
180
+ 0 && (module.exports = {
181
+ createXGroupOpenApiTransport
182
+ });
183
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/presets/xgroup/transport.ts"],
4
+ "sourcesContent": ["import {\n EventStreamContentType,\n fetchEventSource,\n} from \"@microsoft/fetch-event-source\";\nimport { API_SUCCESS_CODE, SESSION_PAGE_SIZE } from \"@/constants\";\nimport {\n addFeedback,\n closeSession,\n fetchAppConfig,\n fetchSessionDetail,\n fetchSessionList,\n updateSessionTitle,\n} from \"@/services/api\";\nimport type { Event } from \"@/types\";\nimport { safeJsonParse } from \"@/utils\";\nimport type { AdkChatTransport } from \"@/core/runtime\";\n\nexport interface XGroupOpenApiTransportOptions {\n url: string;\n appNo: string;\n token?: string | (() => string | undefined);\n pageSize?: number;\n onAuthError?: (response: Response) => void;\n}\n\n/** 支持传入 token 字符串或 token getter,便于业务侧刷新 token 后无需重建 transport。 */\nconst getTokenValue = (token?: string | (() => string | undefined)) =>\n typeof token === \"function\" ? token() : token;\n\n/**\n * 兼容后端新旧两种 stream 包装格式。\n * 新格式通常是 { data, result },runtime 只消费标准 ADK Event。\n */\nconst normalizeStreamEvent = (rawData: any): Event => {\n if (rawData?.data && rawData?.result) {\n return {\n ...rawData.data,\n content: rawData.data,\n invocationId: rawData.result.invocationId,\n sessionId: rawData.result.sessionId,\n id:\n rawData.data.id ||\n rawData.result.id ||\n rawData.result.eventId ||\n rawData.result.invocationId,\n };\n }\n return rawData;\n};\n\n/**\n * 众安信科 openApi 默认 transport。\n *\n * 这层只负责把 SDK 标准 transport 接口映射到当前网关接口;\n * 其它业务项目不要复制 useADKChat,只需要实现自己的 transport 即可。\n */\nexport const createXGroupOpenApiTransport = ({\n url,\n appNo,\n token,\n pageSize = SESSION_PAGE_SIZE,\n onAuthError,\n}: XGroupOpenApiTransportOptions): AdkChatTransport => {\n const getAuthHeaders = () => {\n const tokenValue = getTokenValue(token);\n return tokenValue ? { Authorization: `Bearer ${tokenValue}` } : {};\n };\n\n return {\n fetchAppConfig: async () => {\n const { data, result } = await fetchAppConfig({ url, appNo });\n if (result?.code !== API_SUCCESS_CODE) {\n throw Object.assign(new Error(result?.message || \"获取应用配置失败\"), {\n code: result?.code,\n raw: result,\n });\n }\n return data as any;\n },\n fetchSessions: async (params) => {\n const { data = [], pagination, result } = await fetchSessionList({\n url,\n appNo,\n token: getTokenValue(token) || \"\",\n pageNum: params?.pageNum || 1,\n pageSize: params?.pageSize || pageSize,\n });\n if (result?.code !== API_SUCCESS_CODE) {\n throw Object.assign(new Error(result?.message || \"获取会话列表失败\"), {\n code: result?.code,\n raw: result,\n });\n }\n return { data: data as any, pagination };\n },\n fetchSessionEvents: async (sessionId) => {\n const { data = [], result } = await fetchSessionDetail({\n url,\n appNo,\n sessionId,\n token: getTokenValue(token) || \"\",\n });\n if (result?.code !== API_SUCCESS_CODE) {\n throw Object.assign(new Error(result?.message || \"获取会话详情失败\"), {\n code: result?.code,\n raw: result,\n });\n }\n return data as Event[];\n },\n sendMessageStreaming: (payload, handlers) =>\n new Promise<void>((resolve, reject) => {\n void fetchEventSource(\n `${url}/api/gateway-web/openApi/v1/aizt/app/${appNo}/sendMsgStreaming`,\n {\n method: \"POST\",\n signal: handlers.signal,\n body: JSON.stringify(payload),\n openWhenHidden: true,\n headers: {\n \"Content-Type\": \"application/json\",\n \"Cache-Control\": \"no-cache\",\n stream: payload.stream === false ? \"false\" : \"true\",\n ...getAuthHeaders(),\n } as Record<string, string>,\n async onopen(response) {\n handlers.onOpen?.(response);\n if (\n response.ok &&\n response.headers.get(\"content-type\") === EventStreamContentType\n ) {\n return;\n }\n if (response.status === 401 || response.status === 403) {\n onAuthError?.(response);\n }\n throw Object.assign(\n new Error(`流式请求失败 (${response.status})`),\n { status: response.status },\n );\n },\n onmessage: (event) => {\n const rawData = safeJsonParse(event.data, {});\n const chunk = normalizeStreamEvent(rawData);\n if (chunk.error) {\n // transport 不直接弹 UI,错误交给 runtime callbacks 或业务层处理。\n handlers.onError?.(chunk.error);\n return;\n }\n handlers.onEvent(chunk);\n },\n onclose: () => {\n handlers.onClose?.();\n resolve();\n },\n onerror: (error) => {\n handlers.onError?.(error);\n reject(error);\n throw error;\n },\n },\n );\n }),\n closeSession: async (sessionId) => {\n const { result } = await closeSession({\n url,\n appNo,\n sessionId,\n token: getTokenValue(token) || \"\",\n });\n return result?.code === API_SUCCESS_CODE;\n },\n updateSessionTitle: async (sessionId, title) => {\n const { result } = await updateSessionTitle({\n url,\n appNo,\n sessionId,\n title,\n token: getTokenValue(token) || \"\",\n });\n return result?.code === API_SUCCESS_CODE;\n },\n feedback: async ({ invocationId, isLike, ...feedbackData }) => {\n const { result } = await addFeedback({\n url,\n appNo,\n token: getTokenValue(token) || \"\",\n requestId: invocationId,\n isLike,\n ...feedbackData,\n });\n return result?.code === API_SUCCESS_CODE;\n },\n };\n};\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,8 @@
1
+ import type { UploadRequestFn } from "../../types";
2
+ export interface XGroupUploadRequestOptions {
3
+ url: string;
4
+ token?: string;
5
+ appNo?: string;
6
+ }
7
+ /** 众安信科预设上传:upload=true 且具备 appNo/token 时可自动接入默认附件接口。 */
8
+ export declare const createXGroupUploadRequest: ({ url, token, appNo, }: XGroupUploadRequestOptions) => UploadRequestFn | undefined;
@@ -0,0 +1,65 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/presets/xgroup/upload.ts
20
+ var upload_exports = {};
21
+ __export(upload_exports, {
22
+ createXGroupUploadRequest: () => createXGroupUploadRequest
23
+ });
24
+ module.exports = __toCommonJS(upload_exports);
25
+ var createXGroupUploadRequest = ({
26
+ url,
27
+ token,
28
+ appNo
29
+ }) => {
30
+ if (!appNo || !token)
31
+ return void 0;
32
+ return async ({ file, onProgress, onSuccess, onError }) => {
33
+ try {
34
+ onProgress == null ? void 0 : onProgress({ percent: 0 });
35
+ const formData = new FormData();
36
+ formData.append("file", file);
37
+ const response = await fetch(
38
+ `${url}/api/gateway-web/openApi/v1/aizt/app/${appNo}/uploadMultiFile`,
39
+ {
40
+ method: "POST",
41
+ body: formData,
42
+ headers: {
43
+ Accept: "application/json, text/plain, */*",
44
+ Authorization: `Bearer ${token}`,
45
+ "Cache-Control": "no-cache"
46
+ }
47
+ }
48
+ );
49
+ const result = await response.json().catch(() => ({}));
50
+ if (!response.ok) {
51
+ throw new Error((result == null ? void 0 : result.message) || `文件上传失败 (${response.status})`);
52
+ }
53
+ const uploadedFile = Array.isArray(result == null ? void 0 : result.data) ? result.data[0] : (result == null ? void 0 : result.data) ?? result;
54
+ onProgress == null ? void 0 : onProgress({ percent: 100 });
55
+ onSuccess == null ? void 0 : onSuccess(uploadedFile);
56
+ } catch (error) {
57
+ onError == null ? void 0 : onError(error instanceof Error ? error : new Error("文件上传失败"));
58
+ }
59
+ };
60
+ };
61
+ // Annotate the CommonJS export names for ESM import in node:
62
+ 0 && (module.exports = {
63
+ createXGroupUploadRequest
64
+ });
65
+ //# sourceMappingURL=upload.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/presets/xgroup/upload.ts"],
4
+ "sourcesContent": ["import type { UploadRequestFn } from \"@/types\";\n\nexport interface XGroupUploadRequestOptions {\n url: string;\n token?: string;\n appNo?: string;\n}\n\n/** 众安信科预设上传:upload=true 且具备 appNo/token 时可自动接入默认附件接口。 */\nexport const createXGroupUploadRequest = ({\n url,\n token,\n appNo,\n}: XGroupUploadRequestOptions): UploadRequestFn | undefined => {\n if (!appNo || !token) return undefined;\n\n return async ({ file, onProgress, onSuccess, onError }) => {\n try {\n onProgress?.({ percent: 0 });\n\n const formData = new FormData();\n formData.append(\"file\", file);\n\n const response = await fetch(\n `${url}/api/gateway-web/openApi/v1/aizt/app/${appNo}/uploadMultiFile`,\n {\n method: \"POST\",\n body: formData,\n headers: {\n Accept: \"application/json, text/plain, */*\",\n Authorization: `Bearer ${token}`,\n \"Cache-Control\": \"no-cache\",\n },\n },\n );\n\n const result = await response.json().catch(() => ({}));\n\n if (!response.ok) {\n throw new Error(result?.message || `文件上传失败 (${response.status})`);\n }\n\n const uploadedFile = Array.isArray(result?.data)\n ? result.data[0]\n : (result?.data ?? result);\n\n onProgress?.({ percent: 100 });\n onSuccess?.(uploadedFile);\n } catch (error) {\n onError?.(error instanceof Error ? error : new Error(\"文件上传失败\"));\n }\n };\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AASO,IAAM,4BAA4B,CAAC;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AACF,MAA+D;AAC7D,MAAI,CAAC,SAAS,CAAC;AAAO,WAAO;AAE7B,SAAO,OAAO,EAAE,MAAM,YAAY,WAAW,QAAQ,MAAM;AACzD,QAAI;AACF,+CAAa,EAAE,SAAS,EAAE;AAE1B,YAAM,WAAW,IAAI,SAAS;AAC9B,eAAS,OAAO,QAAQ,IAAI;AAE5B,YAAM,WAAW,MAAM;AAAA,QACrB,GAAG,2CAA2C;AAAA,QAC9C;AAAA,UACE,QAAQ;AAAA,UACR,MAAM;AAAA,UACN,SAAS;AAAA,YACP,QAAQ;AAAA,YACR,eAAe,UAAU;AAAA,YACzB,iBAAiB;AAAA,UACnB;AAAA,QACF;AAAA,MACF;AAEA,YAAM,SAAS,MAAM,SAAS,KAAK,EAAE,MAAM,OAAO,CAAC,EAAE;AAErD,UAAI,CAAC,SAAS,IAAI;AAChB,cAAM,IAAI,OAAM,iCAAQ,YAAW,WAAW,SAAS,SAAS;AAAA,MAClE;AAEA,YAAM,eAAe,MAAM,QAAQ,iCAAQ,IAAI,IAC3C,OAAO,KAAK,CAAC,KACZ,iCAAQ,SAAQ;AAErB,+CAAa,EAAE,SAAS,IAAI;AAC5B,6CAAY;AAAA,IACd,SAAS,OAAP;AACA,yCAAU,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,QAAQ;AAAA,IAC/D;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }