@ai-group/chat-sdk 3.6.12 → 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.
- package/dist/cjs/components/XAdkChatbot/index.js +2 -2
- package/dist/cjs/components/XAdkChatbot/index.js.map +2 -2
- package/dist/cjs/components/XAdkProvider/index.js +3 -3
- package/dist/cjs/components/XAdkProvider/index.js.map +2 -2
- package/dist/cjs/core/index.d.ts +2 -0
- package/dist/cjs/core/index.js +26 -0
- package/dist/cjs/core/index.js.map +7 -0
- package/dist/cjs/core/protocol/index.d.ts +3 -0
- package/dist/cjs/core/protocol/index.js +28 -0
- package/dist/cjs/core/protocol/index.js.map +7 -0
- package/dist/cjs/core/protocol/messages.d.ts +55 -0
- package/dist/cjs/core/protocol/messages.js +307 -0
- package/dist/cjs/core/protocol/messages.js.map +7 -0
- package/dist/cjs/core/protocol/parts.d.ts +24 -0
- package/dist/cjs/core/protocol/parts.js +106 -0
- package/dist/cjs/core/protocol/parts.js.map +7 -0
- package/dist/cjs/core/protocol/types.d.ts +57 -0
- package/dist/cjs/core/protocol/types.js +18 -0
- package/dist/cjs/core/protocol/types.js.map +7 -0
- package/dist/cjs/core/runtime/createAdkConversationController.d.ts +8 -0
- package/dist/cjs/core/runtime/createAdkConversationController.js +424 -0
- package/dist/cjs/core/runtime/createAdkConversationController.js.map +7 -0
- package/dist/cjs/core/runtime/index.d.ts +2 -0
- package/dist/cjs/core/runtime/index.js +26 -0
- package/dist/cjs/core/runtime/index.js.map +7 -0
- package/dist/cjs/core/runtime/types.d.ts +130 -0
- package/dist/cjs/core/runtime/types.js +18 -0
- package/dist/cjs/core/runtime/types.js.map +7 -0
- package/dist/{esm/utils/umdEntry.d.ts → cjs/entries/umd.d.ts} +7 -0
- package/dist/cjs/{utils/umdEntry.js → entries/umd.js} +19 -9
- package/dist/cjs/entries/umd.js.map +7 -0
- package/dist/cjs/index.d.ts +6 -1
- package/dist/cjs/index.js +19 -11
- package/dist/cjs/index.js.map +3 -3
- package/dist/cjs/presets/xgroup/index.d.ts +4 -0
- package/dist/cjs/presets/xgroup/index.js +30 -0
- package/dist/cjs/presets/xgroup/index.js.map +7 -0
- package/dist/cjs/presets/xgroup/preset.d.ts +15 -0
- package/dist/cjs/presets/xgroup/preset.js +69 -0
- package/dist/cjs/presets/xgroup/preset.js.map +7 -0
- package/dist/cjs/presets/xgroup/strategies.d.ts +8 -0
- package/dist/cjs/presets/xgroup/strategies.js +53 -0
- package/dist/cjs/presets/xgroup/strategies.js.map +7 -0
- package/dist/cjs/presets/xgroup/transport.d.ts +15 -0
- package/dist/cjs/presets/xgroup/transport.js +183 -0
- package/dist/cjs/presets/xgroup/transport.js.map +7 -0
- package/dist/cjs/presets/xgroup/upload.d.ts +8 -0
- package/dist/cjs/presets/xgroup/upload.js +65 -0
- package/dist/cjs/presets/xgroup/upload.js.map +7 -0
- package/dist/cjs/react/index.d.ts +6 -0
- package/dist/cjs/react/index.js +53 -0
- package/dist/cjs/react/index.js.map +7 -0
- package/dist/cjs/react/useAdkConversation.d.ts +27 -0
- package/dist/cjs/react/useAdkConversation.js +69 -0
- package/dist/cjs/react/useAdkConversation.js.map +7 -0
- package/dist/esm/components/XAdkChatbot/index.js +1 -1
- package/dist/esm/components/XAdkChatbot/index.js.map +1 -1
- package/dist/esm/components/XAdkProvider/index.js +1 -1
- package/dist/esm/components/XAdkProvider/index.js.map +1 -1
- package/dist/esm/core/index.d.ts +2 -0
- package/dist/esm/core/index.js +3 -0
- package/dist/esm/core/index.js.map +1 -0
- package/dist/esm/core/protocol/index.d.ts +3 -0
- package/dist/esm/core/protocol/index.js +4 -0
- package/dist/esm/core/protocol/index.js.map +1 -0
- package/dist/esm/core/protocol/messages.d.ts +55 -0
- package/dist/esm/core/protocol/messages.js +315 -0
- package/dist/esm/core/protocol/messages.js.map +1 -0
- package/dist/esm/core/protocol/parts.d.ts +24 -0
- package/dist/esm/core/protocol/parts.js +100 -0
- package/dist/esm/core/protocol/parts.js.map +1 -0
- package/dist/esm/core/protocol/types.d.ts +57 -0
- package/dist/esm/core/protocol/types.js +2 -0
- package/dist/esm/core/protocol/types.js.map +1 -0
- package/dist/esm/core/runtime/createAdkConversationController.d.ts +8 -0
- package/dist/esm/core/runtime/createAdkConversationController.js +742 -0
- package/dist/esm/core/runtime/createAdkConversationController.js.map +1 -0
- package/dist/esm/core/runtime/index.d.ts +2 -0
- package/dist/esm/core/runtime/index.js +3 -0
- package/dist/esm/core/runtime/index.js.map +1 -0
- package/dist/esm/core/runtime/types.d.ts +130 -0
- package/dist/esm/core/runtime/types.js +2 -0
- package/dist/esm/core/runtime/types.js.map +1 -0
- package/dist/{cjs/utils/umdEntry.d.ts → esm/entries/umd.d.ts} +7 -0
- package/dist/esm/{utils/umdEntry.js → entries/umd.js} +10 -1
- package/dist/esm/entries/umd.js.map +1 -0
- package/dist/esm/index.d.ts +6 -1
- package/dist/esm/index.js +6 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/presets/xgroup/index.d.ts +4 -0
- package/dist/esm/presets/xgroup/index.js +5 -0
- package/dist/esm/presets/xgroup/index.js.map +1 -0
- package/dist/esm/presets/xgroup/preset.d.ts +15 -0
- package/dist/esm/presets/xgroup/preset.js +44 -0
- package/dist/esm/presets/xgroup/preset.js.map +1 -0
- package/dist/esm/presets/xgroup/strategies.d.ts +8 -0
- package/dist/esm/presets/xgroup/strategies.js +30 -0
- package/dist/esm/presets/xgroup/strategies.js.map +1 -0
- package/dist/esm/presets/xgroup/transport.d.ts +15 -0
- package/dist/esm/presets/xgroup/transport.js +322 -0
- package/dist/esm/presets/xgroup/transport.js.map +1 -0
- package/dist/esm/presets/xgroup/upload.d.ts +8 -0
- package/dist/esm/presets/{xGroupAdk.js → xgroup/upload.js} +9 -63
- package/dist/esm/presets/xgroup/upload.js.map +1 -0
- package/dist/esm/react/index.d.ts +6 -0
- package/dist/esm/react/index.js +5 -0
- package/dist/esm/react/index.js.map +1 -0
- package/dist/esm/react/useAdkConversation.d.ts +27 -0
- package/dist/esm/react/useAdkConversation.js +53 -0
- package/dist/esm/react/useAdkConversation.js.map +1 -0
- package/dist/umd/chat-sdk.min.js +1 -1
- package/package.json +36 -2
- package/dist/cjs/presets/xGroupAdk.d.ts +0 -20
- package/dist/cjs/presets/xGroupAdk.js +0 -130
- package/dist/cjs/presets/xGroupAdk.js.map +0 -7
- package/dist/cjs/utils/umdEntry.js.map +0 -7
- package/dist/esm/presets/xGroupAdk.d.ts +0 -20
- package/dist/esm/presets/xGroupAdk.js.map +0 -1
- package/dist/esm/utils/umdEntry.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-group/chat-sdk",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.7.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "面向 AI 中台平台的前端集成 SDK,支持 OAuth2 安全认证、聊天机器人、智能编辑器、多模态对话,适配 SaaS / 私有化双场景。",
|
|
6
6
|
"main": "dist/cjs/index.js",
|
|
@@ -10,8 +10,34 @@
|
|
|
10
10
|
"types": "dist/esm/index.d.ts",
|
|
11
11
|
"exports": {
|
|
12
12
|
".": {
|
|
13
|
+
"types": "./dist/esm/index.d.ts",
|
|
13
14
|
"import": "./dist/esm/index.js",
|
|
14
15
|
"require": "./dist/cjs/index.js"
|
|
16
|
+
},
|
|
17
|
+
"./core": {
|
|
18
|
+
"types": "./dist/esm/core/index.d.ts",
|
|
19
|
+
"import": "./dist/esm/core/index.js",
|
|
20
|
+
"require": "./dist/cjs/core/index.js"
|
|
21
|
+
},
|
|
22
|
+
"./core/protocol": {
|
|
23
|
+
"types": "./dist/esm/core/protocol/index.d.ts",
|
|
24
|
+
"import": "./dist/esm/core/protocol/index.js",
|
|
25
|
+
"require": "./dist/cjs/core/protocol/index.js"
|
|
26
|
+
},
|
|
27
|
+
"./core/runtime": {
|
|
28
|
+
"types": "./dist/esm/core/runtime/index.d.ts",
|
|
29
|
+
"import": "./dist/esm/core/runtime/index.js",
|
|
30
|
+
"require": "./dist/cjs/core/runtime/index.js"
|
|
31
|
+
},
|
|
32
|
+
"./react": {
|
|
33
|
+
"types": "./dist/esm/react/index.d.ts",
|
|
34
|
+
"import": "./dist/esm/react/index.js",
|
|
35
|
+
"require": "./dist/cjs/react/index.js"
|
|
36
|
+
},
|
|
37
|
+
"./presets/xgroup": {
|
|
38
|
+
"types": "./dist/esm/presets/xgroup/index.d.ts",
|
|
39
|
+
"import": "./dist/esm/presets/xgroup/index.js",
|
|
40
|
+
"require": "./dist/cjs/presets/xgroup/index.js"
|
|
15
41
|
}
|
|
16
42
|
},
|
|
17
43
|
"keywords": [],
|
|
@@ -30,6 +56,7 @@
|
|
|
30
56
|
"devDependencies": {
|
|
31
57
|
"@ant-design/icons": "^5.6.1",
|
|
32
58
|
"@changesets/cli": "^2.29.8",
|
|
59
|
+
"@size-limit/preset-small-lib": "^13.0.2",
|
|
33
60
|
"@types/markdown-it": "^14.1.2",
|
|
34
61
|
"@types/node": "^24.10.1",
|
|
35
62
|
"@types/react": "^19.2.7",
|
|
@@ -37,9 +64,11 @@
|
|
|
37
64
|
"@types/react-html-parser": "^2.0.7",
|
|
38
65
|
"antd": "^6.4.4",
|
|
39
66
|
"father": "^4.6.8",
|
|
67
|
+
"size-limit": "^13.0.2",
|
|
40
68
|
"source-map-explorer": "^2.5.3",
|
|
41
69
|
"ts-loader": "^9.5.4",
|
|
42
|
-
"typescript": "^5.9.3"
|
|
70
|
+
"typescript": "^5.9.3",
|
|
71
|
+
"webpack-bundle-analyzer": "^5.3.1"
|
|
43
72
|
},
|
|
44
73
|
"dependencies": {
|
|
45
74
|
"@ant-design/x": "^2.7.0",
|
|
@@ -82,6 +111,11 @@
|
|
|
82
111
|
"optional": true
|
|
83
112
|
}
|
|
84
113
|
},
|
|
114
|
+
"sideEffects": [
|
|
115
|
+
"*.css",
|
|
116
|
+
"*.less",
|
|
117
|
+
"*.scss"
|
|
118
|
+
],
|
|
85
119
|
"scripts": {
|
|
86
120
|
"version": "echo 'Version updated'",
|
|
87
121
|
"dev": "father dev",
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { ChatPreset, ChatPresetInput, ChatStrategies, ToolRenderKind, UploadRequestFn } from "../types";
|
|
2
|
-
export declare const baseToolKindResolver: () => ToolRenderKind;
|
|
3
|
-
export declare const xGroupToolKindResolver: ({ name, }: {
|
|
4
|
-
name?: string | undefined;
|
|
5
|
-
}) => ToolRenderKind;
|
|
6
|
-
export declare const baseChatStrategies: Required<Pick<ChatStrategies, "resolveToolKind" | "createFunctionResponse" | "parseProcessMessage">>;
|
|
7
|
-
export declare const createXGroupUploadRequest: ({ url, token, appNo, }: {
|
|
8
|
-
url: string;
|
|
9
|
-
token?: string | undefined;
|
|
10
|
-
appNo?: string | undefined;
|
|
11
|
-
}) => UploadRequestFn | undefined;
|
|
12
|
-
export declare const xGroupAdkPreset: ChatPreset;
|
|
13
|
-
export declare const basePreset: ChatPreset;
|
|
14
|
-
export declare const resolveChatPreset: (preset: ChatPresetInput | undefined) => ChatPreset;
|
|
15
|
-
export declare const mergeChatStrategies: (preset: ChatPresetInput | undefined, overrides?: ChatStrategies) => ChatStrategies;
|
|
16
|
-
export declare const resolvePresetUploadRequest: (preset: ChatPresetInput | undefined, context: {
|
|
17
|
-
url: string;
|
|
18
|
-
token?: string;
|
|
19
|
-
appNo?: string;
|
|
20
|
-
}) => UploadRequestFn | undefined;
|
|
@@ -1,130 +0,0 @@
|
|
|
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/xGroupAdk.ts
|
|
20
|
-
var xGroupAdk_exports = {};
|
|
21
|
-
__export(xGroupAdk_exports, {
|
|
22
|
-
baseChatStrategies: () => baseChatStrategies,
|
|
23
|
-
basePreset: () => basePreset,
|
|
24
|
-
baseToolKindResolver: () => baseToolKindResolver,
|
|
25
|
-
createXGroupUploadRequest: () => createXGroupUploadRequest,
|
|
26
|
-
mergeChatStrategies: () => mergeChatStrategies,
|
|
27
|
-
resolveChatPreset: () => resolveChatPreset,
|
|
28
|
-
resolvePresetUploadRequest: () => resolvePresetUploadRequest,
|
|
29
|
-
xGroupAdkPreset: () => xGroupAdkPreset,
|
|
30
|
-
xGroupToolKindResolver: () => xGroupToolKindResolver
|
|
31
|
-
});
|
|
32
|
-
module.exports = __toCommonJS(xGroupAdk_exports);
|
|
33
|
-
var import_utils = require("../utils");
|
|
34
|
-
var baseToolKindResolver = () => "default";
|
|
35
|
-
var xGroupToolKindResolver = ({
|
|
36
|
-
name
|
|
37
|
-
}) => {
|
|
38
|
-
if (name === "adk_request_confirmation")
|
|
39
|
-
return "approval";
|
|
40
|
-
if (name === "transferToAgent")
|
|
41
|
-
return "handoff";
|
|
42
|
-
return "default";
|
|
43
|
-
};
|
|
44
|
-
var baseChatStrategies = {
|
|
45
|
-
resolveToolKind: () => "default",
|
|
46
|
-
createFunctionResponse: (fnCall, confirmed) => ({
|
|
47
|
-
id: fnCall.id,
|
|
48
|
-
name: fnCall.name,
|
|
49
|
-
response: { confirmed }
|
|
50
|
-
}),
|
|
51
|
-
parseProcessMessage: import_utils.parseAgentMessage
|
|
52
|
-
};
|
|
53
|
-
var createXGroupUploadRequest = ({
|
|
54
|
-
url,
|
|
55
|
-
token,
|
|
56
|
-
appNo
|
|
57
|
-
}) => {
|
|
58
|
-
if (!appNo || !token)
|
|
59
|
-
return void 0;
|
|
60
|
-
return async ({ file, onProgress, onSuccess, onError }) => {
|
|
61
|
-
try {
|
|
62
|
-
onProgress == null ? void 0 : onProgress({ percent: 0 });
|
|
63
|
-
const formData = new FormData();
|
|
64
|
-
formData.append("file", file);
|
|
65
|
-
const response = await fetch(
|
|
66
|
-
`${url}/api/gateway-web/openApi/v1/aizt/app/${appNo}/uploadMultiFile`,
|
|
67
|
-
{
|
|
68
|
-
method: "POST",
|
|
69
|
-
body: formData,
|
|
70
|
-
headers: {
|
|
71
|
-
Accept: "application/json, text/plain, */*",
|
|
72
|
-
Authorization: `Bearer ${token}`,
|
|
73
|
-
"Cache-Control": "no-cache"
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
);
|
|
77
|
-
const result = await response.json().catch(() => ({}));
|
|
78
|
-
if (!response.ok) {
|
|
79
|
-
throw new Error((result == null ? void 0 : result.message) || `文件上传失败 (${response.status})`);
|
|
80
|
-
}
|
|
81
|
-
const uploadedFile = Array.isArray(result == null ? void 0 : result.data) ? result.data[0] : (result == null ? void 0 : result.data) ?? result;
|
|
82
|
-
onProgress == null ? void 0 : onProgress({ percent: 100 });
|
|
83
|
-
onSuccess == null ? void 0 : onSuccess(uploadedFile);
|
|
84
|
-
} catch (error) {
|
|
85
|
-
onError == null ? void 0 : onError(error instanceof Error ? error : new Error("文件上传失败"));
|
|
86
|
-
}
|
|
87
|
-
};
|
|
88
|
-
};
|
|
89
|
-
var xGroupAdkPreset = {
|
|
90
|
-
name: "xgroup-adk",
|
|
91
|
-
strategies: {
|
|
92
|
-
resolveToolKind: xGroupToolKindResolver,
|
|
93
|
-
createFunctionResponse: baseChatStrategies.createFunctionResponse,
|
|
94
|
-
parseProcessMessage: (text, options) => (0, import_utils.parseAgentMessage)(text, { mode: "comment", ...options })
|
|
95
|
-
},
|
|
96
|
-
createUploadRequest: createXGroupUploadRequest
|
|
97
|
-
};
|
|
98
|
-
var basePreset = {
|
|
99
|
-
name: "base",
|
|
100
|
-
strategies: baseChatStrategies
|
|
101
|
-
};
|
|
102
|
-
var resolveChatPreset = (preset) => {
|
|
103
|
-
if (!preset || preset === "xgroup-adk")
|
|
104
|
-
return xGroupAdkPreset;
|
|
105
|
-
if (preset === "base")
|
|
106
|
-
return basePreset;
|
|
107
|
-
return preset;
|
|
108
|
-
};
|
|
109
|
-
var mergeChatStrategies = (preset, overrides) => ({
|
|
110
|
-
...baseChatStrategies,
|
|
111
|
-
...resolveChatPreset(preset).strategies,
|
|
112
|
-
...overrides
|
|
113
|
-
});
|
|
114
|
-
var resolvePresetUploadRequest = (preset, context) => {
|
|
115
|
-
var _a, _b;
|
|
116
|
-
return (_b = (_a = resolveChatPreset(preset)).createUploadRequest) == null ? void 0 : _b.call(_a, context);
|
|
117
|
-
};
|
|
118
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
119
|
-
0 && (module.exports = {
|
|
120
|
-
baseChatStrategies,
|
|
121
|
-
basePreset,
|
|
122
|
-
baseToolKindResolver,
|
|
123
|
-
createXGroupUploadRequest,
|
|
124
|
-
mergeChatStrategies,
|
|
125
|
-
resolveChatPreset,
|
|
126
|
-
resolvePresetUploadRequest,
|
|
127
|
-
xGroupAdkPreset,
|
|
128
|
-
xGroupToolKindResolver
|
|
129
|
-
});
|
|
130
|
-
//# sourceMappingURL=xGroupAdk.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/presets/xGroupAdk.ts"],
|
|
4
|
-
"sourcesContent": ["import { parseAgentMessage } from \"@/utils\";\nimport type {\n ChatPreset,\n ChatPresetInput,\n ChatStrategies,\n FunctionCall,\n FunctionResponse,\n ToolRenderKind,\n UploadRequestFn,\n} from \"@/types\";\n\nexport const baseToolKindResolver = (): ToolRenderKind => \"default\";\n\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\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\nexport const createXGroupUploadRequest = ({\n url,\n token,\n appNo,\n}: {\n url: string;\n token?: string;\n appNo?: string;\n}): 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\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\nexport const basePreset: ChatPreset = {\n name: \"base\",\n strategies: baseChatStrategies,\n};\n\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\nexport const mergeChatStrategies = (\n preset: ChatPresetInput | undefined,\n overrides?: ChatStrategies,\n): ChatStrategies => ({\n ...baseChatStrategies,\n ...resolveChatPreset(preset).strategies,\n ...overrides,\n});\n\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;AAAA;AAAA;AAAA;AAAA,mBAAkC;AAW3B,IAAM,uBAAuB,MAAsB;AAEnD,IAAM,yBAAyB,CAAC;AAAA,EACrC;AACF,MAEsB;AACpB,MAAI,SAAS;AAA4B,WAAO;AAChD,MAAI,SAAS;AAAmB,WAAO;AACvC,SAAO;AACT;AAEO,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;AAEO,IAAM,4BAA4B,CAAC;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AACF,MAImC;AACjC,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;AAEO,IAAM,kBAA8B;AAAA,EACzC,MAAM;AAAA,EACN,YAAY;AAAA,IACV,iBAAiB;AAAA,IACjB,wBAAwB,mBAAmB;AAAA,IAC3C,qBAAqB,CAAC,MAAM,gBAC1B,gCAAkB,MAAM,EAAE,MAAM,WAAW,GAAG,QAAQ,CAAC;AAAA,EAC3D;AAAA,EACA,qBAAqB;AACvB;AAEO,IAAM,aAAyB;AAAA,EACpC,MAAM;AAAA,EACN,YAAY;AACd;AAEO,IAAM,oBAAoB,CAC/B,WACe;AACf,MAAI,CAAC,UAAU,WAAW;AAAc,WAAO;AAC/C,MAAI,WAAW;AAAQ,WAAO;AAC9B,SAAO;AACT;AAEO,IAAM,sBAAsB,CACjC,QACA,eACoB;AAAA,EACpB,GAAG;AAAA,EACH,GAAG,kBAAkB,MAAM,EAAE;AAAA,EAC7B,GAAG;AACL;AAEO,IAAM,6BAA6B,CACxC,QACA,YAKgC;AAlIlC;AAmIE,UAAO,6BAAkB,MAAM,GAAE,wBAA1B,4BAAgD;AACzD;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/utils/umdEntry.tsx"],
|
|
4
|
-
"sourcesContent": ["import { createRef, useState, useImperativeHandle, forwardRef } from \"react\";\nimport ReactDOM from \"react-dom/client\";\nimport { XAdkSDKProps, XAdkProviderHandle, IMessage } from \"@/types\";\nimport XAdkProvider from \"@/components/XAdkProvider\";\nimport { SendContent } from \"@/types\";\n\n/**\n * 内部包装组件:管理 token 状态,支持运行时动态更新\n */\ninterface WrapperHandle extends XAdkProviderHandle {\n setToken: (token: string) => void;\n}\n\ninterface WrapperProps extends Omit<XAdkSDKProps, \"children\"> {\n showSessionList: boolean;\n allowUpload: boolean;\n draggable: boolean;\n clearBtnShow: boolean;\n}\n\nconst SDKWrapper = forwardRef<WrapperHandle, WrapperProps>(\n (\n {\n token: initialToken,\n showSessionList,\n allowUpload,\n draggable,\n clearBtnShow,\n ...rest\n },\n ref,\n ) => {\n const [token, setToken] = useState(initialToken);\n const providerRef = createRef<XAdkProviderHandle>();\n\n useImperativeHandle(\n ref,\n () => ({\n setToken,\n startChat: (content: SendContent) =>\n providerRef.current?.startChat(content),\n stopChat: () => providerRef.current?.stopChat(),\n reChat: () => providerRef.current?.reChat(),\n clearChat: () => providerRef.current?.clearChat(),\n deleteSession: (id: string) =>\n providerRef.current?.deleteSession(id),\n updateSession: (id: string, title: string) =>\n providerRef.current?.updateSession(id, title),\n getAppInfo: () => providerRef.current?.getAppInfo(),\n getMessages: () => providerRef.current?.getMessages() ?? [],\n getSessions: () => providerRef.current?.getSessions() ?? [],\n setMessages: (msgs: IMessage[]) =>\n providerRef.current?.setMessages(msgs),\n setCurrentSession: (id: string) =>\n providerRef.current?.setCurrentSession(id),\n setStateDelta: (delta: Record<string, any> | undefined) =>\n providerRef.current?.setStateDelta(delta),\n }),\n [providerRef],\n );\n\n return (\n <XAdkProvider ref={providerRef} {...rest} token={token}>\n <XAdkProvider.DefaultLayout\n showSessionList={showSessionList}\n allowUpload={allowUpload}\n draggable={draggable}\n clearBtnShow={clearBtnShow}\n showFnCallDetail={true}\n />\n </XAdkProvider>\n );\n },\n);\n\nSDKWrapper.displayName = \"SDKWrapper\";\n\n/**\n * XAiWebSDK - UMD 入口类\n *\n * 用于通过 <script> 标签引入 SDK 的场景\n *\n * @example\n * ```html\n * <script src=\"chat-sdk.min.js\"></script>\n * <script>\n * const sdk = XAiWebSDK.initChatbot({\n * url: 'https://api.example.com',\n * token: 'your-token',\n * config: {\n * appNo: 'your-app-no',\n * session: {\n * showSessionList: true\n * }\n * }\n * });\n *\n * // token 过期后动态更新\n * sdk.setToken('new-token');\n * </script>\n * ```\n */\nclass XAiWebSDK {\n container: HTMLElement;\n\n props: XAdkSDKProps;\n\n root: any;\n\n wrapperRef = createRef<WrapperHandle>();\n\n // ———— hook ————\n onError?: (error: any) => void;\n\n onSuccess?: (appInfo: any) => void;\n\n onMessage?: (content: string, data: IMessage) => void;\n\n constructor(container: HTMLElement, props: XAdkSDKProps) {\n this.container = container;\n this.props = props;\n this.onError = props.onError;\n this.onSuccess = props.onSuccess;\n this.onMessage = props.onMessage;\n this.mount();\n }\n\n mount() {\n // 提取配置\n const { config = {} } = this.props;\n const showSessionList = config.session?.showSessionList ?? false;\n const allowUpload = config.allowUpload ?? false;\n const draggable = config.draggable ?? true;\n const clearBtnShow = config.chatProps?.clearBtnShow ?? true;\n\n const element = (\n <div style={{ width: \"100%\", height: \"100%\" }}>\n <SDKWrapper\n ref={this.wrapperRef}\n {...this.props}\n showSessionList={showSessionList}\n allowUpload={allowUpload}\n draggable={draggable}\n clearBtnShow={clearBtnShow}\n />\n </div>\n );\n\n if (ReactDOM.createRoot) {\n this.root = ReactDOM.createRoot(this.container);\n this.root.render(element);\n } else {\n // 兼容 React 17\n // @ts-ignore\n ReactDOM.render(element, this.container);\n }\n }\n\n unmount() {\n if (this.root && this.root.unmount) {\n this.root.unmount();\n }\n }\n\n /**\n * 初始化聊天机器人(推荐方式)\n *\n * @param props - SDK 配置参数\n * @returns XAiWebSDK 实例\n *\n * @example\n * ```javascript\n * const sdk = XAiWebSDK.initChatbot({\n * url: 'https://api.example.com',\n * token: 'your-token',\n * config: {\n * appNo: 'your-app-no',\n * session: {\n * showSessionList: true // 显示会话列表\n * },\n * allowUpload: true, // 允许文件上传\n * chatProps: {\n * clearBtnShow: false // 隐藏清空按钮\n * }\n * },\n * componentProps: {\n * id: 'my-chatbot', // 容器 ID\n * width: '100%',\n * height: '600px'\n * }\n * });\n * ```\n */\n static initChatbot(props: XAdkSDKProps): XAiWebSDK {\n let container: HTMLElement;\n\n // 检查是否有指定的 componentProps.id\n if (props.componentProps?.id) {\n const existingContainer = document.getElementById(\n props.componentProps.id,\n );\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 * 兼容旧版本的静态方法\n * @deprecated 使用 initChatbot 替代\n */\n static create(props: XAdkSDKProps): XAiWebSDK {\n return this.initChatbot(props);\n }\n\n // ————对外暴露的方法————\n\n /**\n * 动态更新认证 token\n *\n * 用于 token 过期后刷新,更新后后续的 API 请求将使用新 token,无需重新初始化 SDK。\n *\n * @param token - 新的认证 token\n *\n * @example\n * ```javascript\n * // 监听到 token 过期后\n * const newToken = await refreshToken();\n * sdk.setToken(newToken);\n * ```\n */\n setToken(token: string) {\n this.wrapperRef.current?.setToken(token);\n }\n\n /**\n * 获取当前数据(聚合方法)\n * @returns 应用信息、消息列表、会话列表\n */\n getData() {\n return {\n appInfo: this.wrapperRef.current?.getAppInfo(),\n messages: this.wrapperRef.current?.getMessages(),\n sessions: this.wrapperRef.current?.getSessions(),\n };\n }\n\n /**\n * 获取应用信息\n * @returns 应用信息\n */\n getAppInfo() {\n return this.wrapperRef.current?.getAppInfo();\n }\n\n /**\n * 获取当前会话的消息列表\n * @returns 消息列表\n */\n getMessages() {\n return this.wrapperRef.current?.getMessages();\n }\n\n /**\n * 获取会话列表\n * @returns 会话列表\n */\n getSessions() {\n return this.wrapperRef.current?.getSessions();\n }\n\n /**\n * 设置消息列表\n * @param msgs - 要设置的消息数组\n */\n setMessages(msgs: IMessage[]) {\n this.wrapperRef.current?.setMessages(msgs);\n }\n\n /**\n * 发送消息\n * @param content - 消息内容\n *\n * @example\n * ```javascript\n * sdk.startChat({ text: 'Hello!' });\n * ```\n */\n startChat(content: SendContent) {\n this.wrapperRef.current?.startChat(content);\n }\n\n /**\n * 停止当前消息生成\n */\n stopChat() {\n this.wrapperRef.current?.stopChat();\n }\n\n /**\n * 重新生成最后一条回复\n */\n reChat() {\n this.wrapperRef.current?.reChat();\n }\n\n /**\n * 清空当前会话\n */\n clearChat() {\n this.wrapperRef.current?.clearChat();\n }\n\n /**\n * 切换到指定会话\n * @param sessionId - 会话 ID\n */\n setCurrentSession(sessionId: string) {\n this.wrapperRef.current?.setCurrentSession(sessionId);\n }\n\n /**\n * 删除指定会话\n * @param sessionId - 会话 ID\n */\n deleteSession(sessionId: string) {\n this.wrapperRef.current?.deleteSession(sessionId);\n }\n\n /**\n * 更新会话标题\n * @param sessionId - 会话 ID\n * @param title - 新标题\n */\n updateSession(sessionId: string, title: string) {\n this.wrapperRef.current?.updateSession(sessionId, title);\n }\n\n /**\n * 设置自定义业务参数 (stateDelta)\n * 设置后每次发送消息时会自动携带至后端\n * @param delta - 自定义参数,传入 undefined 可清除\n */\n setStateDelta(delta: Record<string, any> | undefined) {\n this.wrapperRef.current?.setStateDelta(delta);\n }\n}\n\n// 兼容 window 方式,也支持 new\n// @ts-ignore\nwindow.XAiWebSDK = XAiWebSDK;\n\n// 支持 ESModule/UMD 直接 import\nexport default XAiWebSDK;\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["XAdkProvider", "ReactDOM"]
|
|
7
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { ChatPreset, ChatPresetInput, ChatStrategies, ToolRenderKind, UploadRequestFn } from "../types";
|
|
2
|
-
export declare const baseToolKindResolver: () => ToolRenderKind;
|
|
3
|
-
export declare const xGroupToolKindResolver: ({ name, }: {
|
|
4
|
-
name?: string | undefined;
|
|
5
|
-
}) => ToolRenderKind;
|
|
6
|
-
export declare const baseChatStrategies: Required<Pick<ChatStrategies, "resolveToolKind" | "createFunctionResponse" | "parseProcessMessage">>;
|
|
7
|
-
export declare const createXGroupUploadRequest: ({ url, token, appNo, }: {
|
|
8
|
-
url: string;
|
|
9
|
-
token?: string | undefined;
|
|
10
|
-
appNo?: string | undefined;
|
|
11
|
-
}) => UploadRequestFn | undefined;
|
|
12
|
-
export declare const xGroupAdkPreset: ChatPreset;
|
|
13
|
-
export declare const basePreset: ChatPreset;
|
|
14
|
-
export declare const resolveChatPreset: (preset: ChatPresetInput | undefined) => ChatPreset;
|
|
15
|
-
export declare const mergeChatStrategies: (preset: ChatPresetInput | undefined, overrides?: ChatStrategies) => ChatStrategies;
|
|
16
|
-
export declare const resolvePresetUploadRequest: (preset: ChatPresetInput | undefined, context: {
|
|
17
|
-
url: string;
|
|
18
|
-
token?: string;
|
|
19
|
-
appNo?: string;
|
|
20
|
-
}) => UploadRequestFn | undefined;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["parseAgentMessage","baseToolKindResolver","xGroupToolKindResolver","_ref","name","baseChatStrategies","resolveToolKind","createFunctionResponse","fnCall","confirmed","id","response","parseProcessMessage","createXGroupUploadRequest","_ref2","url","token","appNo","undefined","_ref4","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref3","file","onProgress","onSuccess","onError","_result$data","formData","result","uploadedFile","wrap","_callee$","_context","prev","next","percent","FormData","append","fetch","concat","method","body","headers","Accept","Authorization","sent","json","catch","ok","Error","message","status","Array","isArray","data","t0","stop","_x","apply","arguments","xGroupAdkPreset","strategies","text","options","_objectSpread","mode","createUploadRequest","basePreset","resolveChatPreset","preset","mergeChatStrategies","overrides","resolvePresetUploadRequest","context","_resolveChatPreset$cr","_resolveChatPreset","call"],"sources":["../../../src/presets/xGroupAdk.ts"],"sourcesContent":["import { parseAgentMessage } from \"@/utils\";\nimport type {\n ChatPreset,\n ChatPresetInput,\n ChatStrategies,\n FunctionCall,\n FunctionResponse,\n ToolRenderKind,\n UploadRequestFn,\n} from \"@/types\";\n\nexport const baseToolKindResolver = (): ToolRenderKind => \"default\";\n\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\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\nexport const createXGroupUploadRequest = ({\n url,\n token,\n appNo,\n}: {\n url: string;\n token?: string;\n appNo?: string;\n}): 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\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\nexport const basePreset: ChatPreset = {\n name: \"base\",\n strategies: baseChatStrategies,\n};\n\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\nexport const mergeChatStrategies = (\n preset: ChatPresetInput | undefined,\n overrides?: ChatStrategies,\n): ChatStrategies => ({\n ...baseChatStrategies,\n ...resolveChatPreset(preset).strategies,\n ...overrides,\n});\n\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"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["createRef","useState","useImperativeHandle","forwardRef","ReactDOM","XAdkProvider","jsx","_jsx","SDKWrapper","_ref","ref","initialToken","token","showSessionList","allowUpload","draggable","clearBtnShow","rest","_objectWithoutProperties","_excluded","_useState","_useState2","_slicedToArray","setToken","providerRef","startChat","content","_providerRef$current","current","stopChat","_providerRef$current2","reChat","_providerRef$current3","clearChat","_providerRef$current4","deleteSession","id","_providerRef$current5","updateSession","title","_providerRef$current6","getAppInfo","_providerRef$current7","getMessages","_providerRef$current$","_providerRef$current8","getSessions","_providerRef$current$2","_providerRef$current9","setMessages","msgs","_providerRef$current10","setCurrentSession","_providerRef$current11","setStateDelta","delta","_providerRef$current12","_objectSpread","children","DefaultLayout","showFnCallDetail","displayName","XAiWebSDK","container","props","_classCallCheck","_defineProperty","onError","onSuccess","onMessage","mount","_createClass","key","value","_config$session$showS","_config$session","_config$allowUpload","_config$draggable","_config$chatProps$cle","_config$chatProps","_this$props$config","config","session","chatProps","element","style","width","height","wrapperRef","createRoot","root","render","unmount","_this$wrapperRef$curr","getData","_this$wrapperRef$curr2","_this$wrapperRef$curr3","_this$wrapperRef$curr4","appInfo","messages","sessions","_this$wrapperRef$curr5","_this$wrapperRef$curr6","_this$wrapperRef$curr7","_this$wrapperRef$curr8","_this$wrapperRef$curr9","_this$wrapperRef$curr10","_this$wrapperRef$curr11","_this$wrapperRef$curr12","sessionId","_this$wrapperRef$curr13","_this$wrapperRef$curr14","_this$wrapperRef$curr15","_this$wrapperRef$curr16","initChatbot","_props$componentProps","componentProps","existingContainer","document","getElementById","createElement","_props$componentProps2","styleProps","_excluded2","Object","assign","parentNode","body","appendChild","create","window"],"sources":["../../../src/utils/umdEntry.tsx"],"sourcesContent":["import { createRef, useState, useImperativeHandle, forwardRef } from \"react\";\nimport ReactDOM from \"react-dom/client\";\nimport { XAdkSDKProps, XAdkProviderHandle, IMessage } from \"@/types\";\nimport XAdkProvider from \"@/components/XAdkProvider\";\nimport { SendContent } from \"@/types\";\n\n/**\n * 内部包装组件:管理 token 状态,支持运行时动态更新\n */\ninterface WrapperHandle extends XAdkProviderHandle {\n setToken: (token: string) => void;\n}\n\ninterface WrapperProps extends Omit<XAdkSDKProps, \"children\"> {\n showSessionList: boolean;\n allowUpload: boolean;\n draggable: boolean;\n clearBtnShow: boolean;\n}\n\nconst SDKWrapper = forwardRef<WrapperHandle, WrapperProps>(\n (\n {\n token: initialToken,\n showSessionList,\n allowUpload,\n draggable,\n clearBtnShow,\n ...rest\n },\n ref,\n ) => {\n const [token, setToken] = useState(initialToken);\n const providerRef = createRef<XAdkProviderHandle>();\n\n useImperativeHandle(\n ref,\n () => ({\n setToken,\n startChat: (content: SendContent) =>\n providerRef.current?.startChat(content),\n stopChat: () => providerRef.current?.stopChat(),\n reChat: () => providerRef.current?.reChat(),\n clearChat: () => providerRef.current?.clearChat(),\n deleteSession: (id: string) =>\n providerRef.current?.deleteSession(id),\n updateSession: (id: string, title: string) =>\n providerRef.current?.updateSession(id, title),\n getAppInfo: () => providerRef.current?.getAppInfo(),\n getMessages: () => providerRef.current?.getMessages() ?? [],\n getSessions: () => providerRef.current?.getSessions() ?? [],\n setMessages: (msgs: IMessage[]) =>\n providerRef.current?.setMessages(msgs),\n setCurrentSession: (id: string) =>\n providerRef.current?.setCurrentSession(id),\n setStateDelta: (delta: Record<string, any> | undefined) =>\n providerRef.current?.setStateDelta(delta),\n }),\n [providerRef],\n );\n\n return (\n <XAdkProvider ref={providerRef} {...rest} token={token}>\n <XAdkProvider.DefaultLayout\n showSessionList={showSessionList}\n allowUpload={allowUpload}\n draggable={draggable}\n clearBtnShow={clearBtnShow}\n showFnCallDetail={true}\n />\n </XAdkProvider>\n );\n },\n);\n\nSDKWrapper.displayName = \"SDKWrapper\";\n\n/**\n * XAiWebSDK - UMD 入口类\n *\n * 用于通过 <script> 标签引入 SDK 的场景\n *\n * @example\n * ```html\n * <script src=\"chat-sdk.min.js\"></script>\n * <script>\n * const sdk = XAiWebSDK.initChatbot({\n * url: 'https://api.example.com',\n * token: 'your-token',\n * config: {\n * appNo: 'your-app-no',\n * session: {\n * showSessionList: true\n * }\n * }\n * });\n *\n * // token 过期后动态更新\n * sdk.setToken('new-token');\n * </script>\n * ```\n */\nclass XAiWebSDK {\n container: HTMLElement;\n\n props: XAdkSDKProps;\n\n root: any;\n\n wrapperRef = createRef<WrapperHandle>();\n\n // ———— hook ————\n onError?: (error: any) => void;\n\n onSuccess?: (appInfo: any) => void;\n\n onMessage?: (content: string, data: IMessage) => void;\n\n constructor(container: HTMLElement, props: XAdkSDKProps) {\n this.container = container;\n this.props = props;\n this.onError = props.onError;\n this.onSuccess = props.onSuccess;\n this.onMessage = props.onMessage;\n this.mount();\n }\n\n mount() {\n // 提取配置\n const { config = {} } = this.props;\n const showSessionList = config.session?.showSessionList ?? false;\n const allowUpload = config.allowUpload ?? false;\n const draggable = config.draggable ?? true;\n const clearBtnShow = config.chatProps?.clearBtnShow ?? true;\n\n const element = (\n <div style={{ width: \"100%\", height: \"100%\" }}>\n <SDKWrapper\n ref={this.wrapperRef}\n {...this.props}\n showSessionList={showSessionList}\n allowUpload={allowUpload}\n draggable={draggable}\n clearBtnShow={clearBtnShow}\n />\n </div>\n );\n\n if (ReactDOM.createRoot) {\n this.root = ReactDOM.createRoot(this.container);\n this.root.render(element);\n } else {\n // 兼容 React 17\n // @ts-ignore\n ReactDOM.render(element, this.container);\n }\n }\n\n unmount() {\n if (this.root && this.root.unmount) {\n this.root.unmount();\n }\n }\n\n /**\n * 初始化聊天机器人(推荐方式)\n *\n * @param props - SDK 配置参数\n * @returns XAiWebSDK 实例\n *\n * @example\n * ```javascript\n * const sdk = XAiWebSDK.initChatbot({\n * url: 'https://api.example.com',\n * token: 'your-token',\n * config: {\n * appNo: 'your-app-no',\n * session: {\n * showSessionList: true // 显示会话列表\n * },\n * allowUpload: true, // 允许文件上传\n * chatProps: {\n * clearBtnShow: false // 隐藏清空按钮\n * }\n * },\n * componentProps: {\n * id: 'my-chatbot', // 容器 ID\n * width: '100%',\n * height: '600px'\n * }\n * });\n * ```\n */\n static initChatbot(props: XAdkSDKProps): XAiWebSDK {\n let container: HTMLElement;\n\n // 检查是否有指定的 componentProps.id\n if (props.componentProps?.id) {\n const existingContainer = document.getElementById(\n props.componentProps.id,\n );\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 * 兼容旧版本的静态方法\n * @deprecated 使用 initChatbot 替代\n */\n static create(props: XAdkSDKProps): XAiWebSDK {\n return this.initChatbot(props);\n }\n\n // ————对外暴露的方法————\n\n /**\n * 动态更新认证 token\n *\n * 用于 token 过期后刷新,更新后后续的 API 请求将使用新 token,无需重新初始化 SDK。\n *\n * @param token - 新的认证 token\n *\n * @example\n * ```javascript\n * // 监听到 token 过期后\n * const newToken = await refreshToken();\n * sdk.setToken(newToken);\n * ```\n */\n setToken(token: string) {\n this.wrapperRef.current?.setToken(token);\n }\n\n /**\n * 获取当前数据(聚合方法)\n * @returns 应用信息、消息列表、会话列表\n */\n getData() {\n return {\n appInfo: this.wrapperRef.current?.getAppInfo(),\n messages: this.wrapperRef.current?.getMessages(),\n sessions: this.wrapperRef.current?.getSessions(),\n };\n }\n\n /**\n * 获取应用信息\n * @returns 应用信息\n */\n getAppInfo() {\n return this.wrapperRef.current?.getAppInfo();\n }\n\n /**\n * 获取当前会话的消息列表\n * @returns 消息列表\n */\n getMessages() {\n return this.wrapperRef.current?.getMessages();\n }\n\n /**\n * 获取会话列表\n * @returns 会话列表\n */\n getSessions() {\n return this.wrapperRef.current?.getSessions();\n }\n\n /**\n * 设置消息列表\n * @param msgs - 要设置的消息数组\n */\n setMessages(msgs: IMessage[]) {\n this.wrapperRef.current?.setMessages(msgs);\n }\n\n /**\n * 发送消息\n * @param content - 消息内容\n *\n * @example\n * ```javascript\n * sdk.startChat({ text: 'Hello!' });\n * ```\n */\n startChat(content: SendContent) {\n this.wrapperRef.current?.startChat(content);\n }\n\n /**\n * 停止当前消息生成\n */\n stopChat() {\n this.wrapperRef.current?.stopChat();\n }\n\n /**\n * 重新生成最后一条回复\n */\n reChat() {\n this.wrapperRef.current?.reChat();\n }\n\n /**\n * 清空当前会话\n */\n clearChat() {\n this.wrapperRef.current?.clearChat();\n }\n\n /**\n * 切换到指定会话\n * @param sessionId - 会话 ID\n */\n setCurrentSession(sessionId: string) {\n this.wrapperRef.current?.setCurrentSession(sessionId);\n }\n\n /**\n * 删除指定会话\n * @param sessionId - 会话 ID\n */\n deleteSession(sessionId: string) {\n this.wrapperRef.current?.deleteSession(sessionId);\n }\n\n /**\n * 更新会话标题\n * @param sessionId - 会话 ID\n * @param title - 新标题\n */\n updateSession(sessionId: string, title: string) {\n this.wrapperRef.current?.updateSession(sessionId, title);\n }\n\n /**\n * 设置自定义业务参数 (stateDelta)\n * 设置后每次发送消息时会自动携带至后端\n * @param delta - 自定义参数,传入 undefined 可清除\n */\n setStateDelta(delta: Record<string, any> | undefined) {\n this.wrapperRef.current?.setStateDelta(delta);\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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"}
|