@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
|
@@ -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": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAGO;AACP,uBAAoD;AACpD,iBAOO;AAEP,mBAA8B;AAY9B,IAAM,gBAAgB,CAAC,UACrB,OAAO,UAAU,aAAa,MAAM,IAAI;AAM1C,IAAM,uBAAuB,CAAC,YAAwB;AACpD,OAAI,mCAAS,UAAQ,mCAAS,SAAQ;AACpC,WAAO;AAAA,MACL,GAAG,QAAQ;AAAA,MACX,SAAS,QAAQ;AAAA,MACjB,cAAc,QAAQ,OAAO;AAAA,MAC7B,WAAW,QAAQ,OAAO;AAAA,MAC1B,IACE,QAAQ,KAAK,MACb,QAAQ,OAAO,MACf,QAAQ,OAAO,WACf,QAAQ,OAAO;AAAA,IACnB;AAAA,EACF;AACA,SAAO;AACT;AAQO,IAAM,+BAA+B,CAAC;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX;AACF,MAAuD;AACrD,QAAM,iBAAiB,MAAM;AAC3B,UAAM,aAAa,cAAc,KAAK;AACtC,WAAO,aAAa,EAAE,eAAe,UAAU,aAAa,IAAI,CAAC;AAAA,EACnE;AAEA,SAAO;AAAA,IACL,gBAAgB,YAAY;AAC1B,YAAM,EAAE,MAAM,OAAO,IAAI,UAAM,2BAAe,EAAE,KAAK,MAAM,CAAC;AAC5D,WAAI,iCAAQ,UAAS,mCAAkB;AACrC,cAAM,OAAO,OAAO,IAAI,OAAM,iCAAQ,YAAW,UAAU,GAAG;AAAA,UAC5D,MAAM,iCAAQ;AAAA,UACd,KAAK;AAAA,QACP,CAAC;AAAA,MACH;AACA,aAAO;AAAA,IACT;AAAA,IACA,eAAe,OAAO,WAAW;AAC/B,YAAM,EAAE,OAAO,CAAC,GAAG,YAAY,OAAO,IAAI,UAAM,6BAAiB;AAAA,QAC/D;AAAA,QACA;AAAA,QACA,OAAO,cAAc,KAAK,KAAK;AAAA,QAC/B,UAAS,iCAAQ,YAAW;AAAA,QAC5B,WAAU,iCAAQ,aAAY;AAAA,MAChC,CAAC;AACD,WAAI,iCAAQ,UAAS,mCAAkB;AACrC,cAAM,OAAO,OAAO,IAAI,OAAM,iCAAQ,YAAW,UAAU,GAAG;AAAA,UAC5D,MAAM,iCAAQ;AAAA,UACd,KAAK;AAAA,QACP,CAAC;AAAA,MACH;AACA,aAAO,EAAE,MAAmB,WAAW;AAAA,IACzC;AAAA,IACA,oBAAoB,OAAO,cAAc;AACvC,YAAM,EAAE,OAAO,CAAC,GAAG,OAAO,IAAI,UAAM,+BAAmB;AAAA,QACrD;AAAA,QACA;AAAA,QACA;AAAA,QACA,OAAO,cAAc,KAAK,KAAK;AAAA,MACjC,CAAC;AACD,WAAI,iCAAQ,UAAS,mCAAkB;AACrC,cAAM,OAAO,OAAO,IAAI,OAAM,iCAAQ,YAAW,UAAU,GAAG;AAAA,UAC5D,MAAM,iCAAQ;AAAA,UACd,KAAK;AAAA,QACP,CAAC;AAAA,MACH;AACA,aAAO;AAAA,IACT;AAAA,IACA,sBAAsB,CAAC,SAAS,aAC9B,IAAI,QAAc,CAAC,SAAS,WAAW;AACrC,eAAK;AAAA,QACH,GAAG,2CAA2C;AAAA,QAC9C;AAAA,UACE,QAAQ;AAAA,UACR,QAAQ,SAAS;AAAA,UACjB,MAAM,KAAK,UAAU,OAAO;AAAA,UAC5B,gBAAgB;AAAA,UAChB,SAAS;AAAA,YACP,gBAAgB;AAAA,YAChB,iBAAiB;AAAA,YACjB,QAAQ,QAAQ,WAAW,QAAQ,UAAU;AAAA,YAC7C,GAAG,eAAe;AAAA,UACpB;AAAA,UACA,MAAM,OAAO,UAAU;AA7HnC;AA8Hc,2BAAS,WAAT,kCAAkB;AAClB,gBACE,SAAS,MACT,SAAS,QAAQ,IAAI,cAAc,MAAM,kDACzC;AACA;AAAA,YACF;AACA,gBAAI,SAAS,WAAW,OAAO,SAAS,WAAW,KAAK;AACtD,yDAAc;AAAA,YAChB;AACA,kBAAM,OAAO;AAAA,cACX,IAAI,MAAM,WAAW,SAAS,SAAS;AAAA,cACvC,EAAE,QAAQ,SAAS,OAAO;AAAA,YAC5B;AAAA,UACF;AAAA,UACA,WAAW,CAAC,UAAU;AA7IlC;AA8Ic,kBAAM,cAAU,4BAAc,MAAM,MAAM,CAAC,CAAC;AAC5C,kBAAM,QAAQ,qBAAqB,OAAO;AAC1C,gBAAI,MAAM,OAAO;AAEf,6BAAS,YAAT,kCAAmB,MAAM;AACzB;AAAA,YACF;AACA,qBAAS,QAAQ,KAAK;AAAA,UACxB;AAAA,UACA,SAAS,MAAM;AAvJ3B;AAwJc,2BAAS,YAAT;AACA,oBAAQ;AAAA,UACV;AAAA,UACA,SAAS,CAAC,UAAU;AA3JhC;AA4Jc,2BAAS,YAAT,kCAAmB;AACnB,mBAAO,KAAK;AACZ,kBAAM;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAAA,IACH,cAAc,OAAO,cAAc;AACjC,YAAM,EAAE,OAAO,IAAI,UAAM,yBAAa;AAAA,QACpC;AAAA,QACA;AAAA,QACA;AAAA,QACA,OAAO,cAAc,KAAK,KAAK;AAAA,MACjC,CAAC;AACD,cAAO,iCAAQ,UAAS;AAAA,IAC1B;AAAA,IACA,oBAAoB,OAAO,WAAW,UAAU;AAC9C,YAAM,EAAE,OAAO,IAAI,UAAM,+BAAmB;AAAA,QAC1C;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,OAAO,cAAc,KAAK,KAAK;AAAA,MACjC,CAAC;AACD,cAAO,iCAAQ,UAAS;AAAA,IAC1B;AAAA,IACA,UAAU,OAAO,EAAE,cAAc,QAAQ,GAAG,aAAa,MAAM;AAC7D,YAAM,EAAE,OAAO,IAAI,UAAM,wBAAY;AAAA,QACnC;AAAA,QACA;AAAA,QACA,OAAO,cAAc,KAAK,KAAK;AAAA,QAC/B,WAAW;AAAA,QACX;AAAA,QACA,GAAG;AAAA,MACL,CAAC;AACD,cAAO,iCAAQ,UAAS;AAAA,IAC1B;AAAA,EACF;AACF;",
|
|
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
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { default as useAdkConversation } from "./useAdkConversation";
|
|
2
|
+
export type { UseAdkConversationResult } from "./useAdkConversation";
|
|
3
|
+
export { default as useADKChat } from "../hooks/useADKChat";
|
|
4
|
+
export { default as useEventStreamRequest } from "../hooks/useEventStreamRequest";
|
|
5
|
+
export { useChatActions, useChatState, useSession, } from "../components/XAdkProvider/context";
|
|
6
|
+
export type { ChatHookFactory, ChatHookResult } from "../types/ChatHook";
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
20
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
21
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
22
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
23
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
24
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
25
|
+
mod
|
|
26
|
+
));
|
|
27
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
+
|
|
29
|
+
// src/react/index.ts
|
|
30
|
+
var react_exports = {};
|
|
31
|
+
__export(react_exports, {
|
|
32
|
+
useADKChat: () => import_useADKChat.default,
|
|
33
|
+
useAdkConversation: () => import_useAdkConversation.default,
|
|
34
|
+
useChatActions: () => import_context.useChatActions,
|
|
35
|
+
useChatState: () => import_context.useChatState,
|
|
36
|
+
useEventStreamRequest: () => import_useEventStreamRequest.default,
|
|
37
|
+
useSession: () => import_context.useSession
|
|
38
|
+
});
|
|
39
|
+
module.exports = __toCommonJS(react_exports);
|
|
40
|
+
var import_useAdkConversation = __toESM(require("./useAdkConversation"));
|
|
41
|
+
var import_useADKChat = __toESM(require("../hooks/useADKChat"));
|
|
42
|
+
var import_useEventStreamRequest = __toESM(require("../hooks/useEventStreamRequest"));
|
|
43
|
+
var import_context = require("../components/XAdkProvider/context");
|
|
44
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
45
|
+
0 && (module.exports = {
|
|
46
|
+
useADKChat,
|
|
47
|
+
useAdkConversation,
|
|
48
|
+
useChatActions,
|
|
49
|
+
useChatState,
|
|
50
|
+
useEventStreamRequest,
|
|
51
|
+
useSession
|
|
52
|
+
});
|
|
53
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/react/index.ts"],
|
|
4
|
+
"sourcesContent": ["export { default as useAdkConversation } from \"./useAdkConversation\";\nexport type { UseAdkConversationResult } from \"./useAdkConversation\";\nexport { default as useADKChat } from \"@/hooks/useADKChat\";\nexport { default as useEventStreamRequest } from \"@/hooks/useEventStreamRequest\";\nexport {\n useChatActions,\n useChatState,\n useSession,\n} from \"@/components/XAdkProvider/context\";\nexport type { ChatHookFactory, ChatHookResult } from \"@/types/ChatHook\";\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAA8C;AAE9C,wBAAsC;AACtC,mCAAiD;AACjD,qBAIO;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type AdkConversationController, type AdkConversationOptions, type AdkConversationState } from "../core/runtime";
|
|
2
|
+
export interface UseAdkConversationResult extends AdkConversationState {
|
|
3
|
+
controller: AdkConversationController;
|
|
4
|
+
startChat: AdkConversationController["startChat"];
|
|
5
|
+
stopChat: AdkConversationController["stopChat"];
|
|
6
|
+
reChat: AdkConversationController["reChat"];
|
|
7
|
+
clearChat: AdkConversationController["clearChat"];
|
|
8
|
+
suggestChat: AdkConversationController["suggestChat"];
|
|
9
|
+
confirmFnCall: AdkConversationController["confirmFnCall"];
|
|
10
|
+
switchSession: AdkConversationController["switchSession"];
|
|
11
|
+
setCurrentSession: AdkConversationController["setCurrentSession"];
|
|
12
|
+
replaceSessionEvents: AdkConversationController["replaceSessionEvents"];
|
|
13
|
+
syncSessionEvents: AdkConversationController["syncSessionEvents"];
|
|
14
|
+
deleteSession: AdkConversationController["deleteSession"];
|
|
15
|
+
updateSession: AdkConversationController["updateSession"];
|
|
16
|
+
likeMessage: AdkConversationController["likeMessage"];
|
|
17
|
+
setMessages: AdkConversationController["setMessages"];
|
|
18
|
+
setStateDelta: AdkConversationController["setStateDelta"];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* React 绑定层:把无框架的 AdkConversationController 包装成 Hook。
|
|
22
|
+
*
|
|
23
|
+
* 注意:controller 只在首次渲染创建一次;如果业务需要切换 transport / requestBuilder,
|
|
24
|
+
* 建议在外层通过 key 重新挂载组件,避免对话进行中替换数据流内核。
|
|
25
|
+
*/
|
|
26
|
+
export declare const useAdkConversation: (options: AdkConversationOptions) => UseAdkConversationResult;
|
|
27
|
+
export default useAdkConversation;
|
|
@@ -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/react/useAdkConversation.ts
|
|
20
|
+
var useAdkConversation_exports = {};
|
|
21
|
+
__export(useAdkConversation_exports, {
|
|
22
|
+
default: () => useAdkConversation_default,
|
|
23
|
+
useAdkConversation: () => useAdkConversation
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(useAdkConversation_exports);
|
|
26
|
+
var import_react = require("react");
|
|
27
|
+
var import_runtime = require("../core/runtime");
|
|
28
|
+
var useAdkConversation = (options) => {
|
|
29
|
+
const controllerRef = (0, import_react.useRef)(null);
|
|
30
|
+
if (!controllerRef.current) {
|
|
31
|
+
controllerRef.current = (0, import_runtime.createAdkConversationController)(options);
|
|
32
|
+
}
|
|
33
|
+
const controller = controllerRef.current;
|
|
34
|
+
const [snapshot, setSnapshot] = (0, import_react.useState)(() => controller.getSnapshot());
|
|
35
|
+
(0, import_react.useEffect)(() => {
|
|
36
|
+
setSnapshot(controller.getSnapshot());
|
|
37
|
+
const unsubscribe = controller.subscribe(setSnapshot);
|
|
38
|
+
void controller.init();
|
|
39
|
+
return () => {
|
|
40
|
+
unsubscribe();
|
|
41
|
+
controller.destroy();
|
|
42
|
+
};
|
|
43
|
+
}, [controller]);
|
|
44
|
+
return {
|
|
45
|
+
...snapshot,
|
|
46
|
+
controller,
|
|
47
|
+
startChat: controller.startChat,
|
|
48
|
+
stopChat: controller.stopChat,
|
|
49
|
+
reChat: controller.reChat,
|
|
50
|
+
clearChat: controller.clearChat,
|
|
51
|
+
suggestChat: controller.suggestChat,
|
|
52
|
+
confirmFnCall: controller.confirmFnCall,
|
|
53
|
+
switchSession: controller.switchSession,
|
|
54
|
+
setCurrentSession: controller.setCurrentSession,
|
|
55
|
+
replaceSessionEvents: controller.replaceSessionEvents,
|
|
56
|
+
syncSessionEvents: controller.syncSessionEvents,
|
|
57
|
+
deleteSession: controller.deleteSession,
|
|
58
|
+
updateSession: controller.updateSession,
|
|
59
|
+
likeMessage: controller.likeMessage,
|
|
60
|
+
setMessages: controller.setMessages,
|
|
61
|
+
setStateDelta: controller.setStateDelta
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
var useAdkConversation_default = useAdkConversation;
|
|
65
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
66
|
+
0 && (module.exports = {
|
|
67
|
+
useAdkConversation
|
|
68
|
+
});
|
|
69
|
+
//# sourceMappingURL=useAdkConversation.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/react/useAdkConversation.ts"],
|
|
4
|
+
"sourcesContent": ["import { useEffect, useRef, useState } from \"react\";\nimport {\n createAdkConversationController,\n type AdkConversationController,\n type AdkConversationOptions,\n type AdkConversationState,\n} from \"@/core/runtime\";\n\nexport interface UseAdkConversationResult extends AdkConversationState {\n controller: AdkConversationController;\n startChat: AdkConversationController[\"startChat\"];\n stopChat: AdkConversationController[\"stopChat\"];\n reChat: AdkConversationController[\"reChat\"];\n clearChat: AdkConversationController[\"clearChat\"];\n suggestChat: AdkConversationController[\"suggestChat\"];\n confirmFnCall: AdkConversationController[\"confirmFnCall\"];\n switchSession: AdkConversationController[\"switchSession\"];\n setCurrentSession: AdkConversationController[\"setCurrentSession\"];\n replaceSessionEvents: AdkConversationController[\"replaceSessionEvents\"];\n syncSessionEvents: AdkConversationController[\"syncSessionEvents\"];\n deleteSession: AdkConversationController[\"deleteSession\"];\n updateSession: AdkConversationController[\"updateSession\"];\n likeMessage: AdkConversationController[\"likeMessage\"];\n setMessages: AdkConversationController[\"setMessages\"];\n setStateDelta: AdkConversationController[\"setStateDelta\"];\n}\n\n/**\n * React 绑定层:把无框架的 AdkConversationController 包装成 Hook。\n *\n * 注意:controller 只在首次渲染创建一次;如果业务需要切换 transport / requestBuilder,\n * 建议在外层通过 key 重新挂载组件,避免对话进行中替换数据流内核。\n */\nexport const useAdkConversation = (\n options: AdkConversationOptions,\n): UseAdkConversationResult => {\n const controllerRef = useRef<AdkConversationController | null>(null);\n if (!controllerRef.current) {\n controllerRef.current = createAdkConversationController(options);\n }\n const controller = controllerRef.current;\n const [snapshot, setSnapshot] = useState(() => controller.getSnapshot());\n\n useEffect(() => {\n // 订阅 controller 状态变化,并在组件卸载时销毁流式连接和轮询。\n setSnapshot(controller.getSnapshot());\n const unsubscribe = controller.subscribe(setSnapshot);\n void controller.init();\n return () => {\n unsubscribe();\n controller.destroy();\n };\n }, [controller]);\n\n return {\n ...snapshot,\n controller,\n startChat: controller.startChat,\n stopChat: controller.stopChat,\n reChat: controller.reChat,\n clearChat: controller.clearChat,\n suggestChat: controller.suggestChat,\n confirmFnCall: controller.confirmFnCall,\n switchSession: controller.switchSession,\n setCurrentSession: controller.setCurrentSession,\n replaceSessionEvents: controller.replaceSessionEvents,\n syncSessionEvents: controller.syncSessionEvents,\n deleteSession: controller.deleteSession,\n updateSession: controller.updateSession,\n likeMessage: controller.likeMessage,\n setMessages: controller.setMessages,\n setStateDelta: controller.setStateDelta,\n };\n};\n\nexport default useAdkConversation;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA4C;AAC5C,qBAKO;AA2BA,IAAM,qBAAqB,CAChC,YAC6B;AAC7B,QAAM,oBAAgB,qBAAyC,IAAI;AACnE,MAAI,CAAC,cAAc,SAAS;AAC1B,kBAAc,cAAU,gDAAgC,OAAO;AAAA,EACjE;AACA,QAAM,aAAa,cAAc;AACjC,QAAM,CAAC,UAAU,WAAW,QAAI,uBAAS,MAAM,WAAW,YAAY,CAAC;AAEvE,8BAAU,MAAM;AAEd,gBAAY,WAAW,YAAY,CAAC;AACpC,UAAM,cAAc,WAAW,UAAU,WAAW;AACpD,SAAK,WAAW,KAAK;AACrB,WAAO,MAAM;AACX,kBAAY;AACZ,iBAAW,QAAQ;AAAA,IACrB;AAAA,EACF,GAAG,CAAC,UAAU,CAAC;AAEf,SAAO;AAAA,IACL,GAAG;AAAA,IACH;AAAA,IACA,WAAW,WAAW;AAAA,IACtB,UAAU,WAAW;AAAA,IACrB,QAAQ,WAAW;AAAA,IACnB,WAAW,WAAW;AAAA,IACtB,aAAa,WAAW;AAAA,IACxB,eAAe,WAAW;AAAA,IAC1B,eAAe,WAAW;AAAA,IAC1B,mBAAmB,WAAW;AAAA,IAC9B,sBAAsB,WAAW;AAAA,IACjC,mBAAmB,WAAW;AAAA,IAC9B,eAAe,WAAW;AAAA,IAC1B,eAAe,WAAW;AAAA,IAC1B,aAAa,WAAW;AAAA,IACxB,aAAa,WAAW;AAAA,IACxB,eAAe,WAAW;AAAA,EAC5B;AACF;AAEA,IAAO,6BAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -11,7 +11,7 @@ import FunctionCallRender from "./components/FunctionCallRender";
|
|
|
11
11
|
import FileGallery from "../FileGallery";
|
|
12
12
|
import XAdkThoughtChain from "../XAdkThoughtChain";
|
|
13
13
|
import { parseAgentMessage } from "../../utils";
|
|
14
|
-
import { mergeChatStrategies } from "../../presets/
|
|
14
|
+
import { mergeChatStrategies } from "../../presets/xgroup";
|
|
15
15
|
import { defaultToolKindResolver } from "../../types/FunctionCallRender";
|
|
16
16
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
17
17
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|