@blueking/chat-helper 0.0.1-beta.9 → 0.0.3
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/README.md +631 -141
- package/dist/agent/type.d.ts +27 -2
- package/dist/agent/type.ts.js +1 -1
- package/dist/agent/use-agent.d.ts +464 -484
- package/dist/agent/use-agent.ts.js +191 -42
- package/dist/event/ag-ui.d.ts +37 -7
- package/dist/event/ag-ui.ts.js +225 -173
- package/dist/event/type.d.ts +99 -107
- package/dist/event/type.ts.js +34 -11
- package/dist/http/fetch/fetch.d.ts +5 -1
- package/dist/http/fetch/fetch.ts.js +40 -51
- package/dist/http/fetch/index.d.ts +1 -0
- package/dist/http/fetch/index.ts.js +133 -3
- package/dist/http/index.d.ts +14 -5
- package/dist/http/index.ts.js +59 -3
- package/dist/http/module/index.d.ts +13 -5
- package/dist/http/module/index.ts.js +2 -1
- package/dist/http/module/message.d.ts +22 -5
- package/dist/http/module/message.ts.js +51 -4
- package/dist/http/module/session.d.ts +4 -1
- package/dist/http/module/session.ts.js +66 -4
- package/dist/http/transform/agent.ts.js +11 -8
- package/dist/http/transform/message.d.ts +6 -6
- package/dist/http/transform/message.ts.js +566 -118
- package/dist/http/transform/session.ts.js +9 -1
- package/dist/index.d.ts +2983 -3314
- package/dist/index.ts.js +27 -5
- package/dist/mediator/index.d.ts +2 -0
- package/dist/mediator/index.ts.js +26 -0
- package/dist/mediator/type.d.ts +50 -0
- package/dist/mediator/type.ts.js +28 -0
- package/dist/mediator/use-mediator.d.ts +7 -0
- package/dist/mediator/use-mediator.ts.js +47 -0
- package/dist/message/type.d.ts +280 -146
- package/dist/message/type.ts.js +16 -15
- package/dist/message/use-message.d.ts +847 -963
- package/dist/message/use-message.ts.js +230 -37
- package/dist/session/type.d.ts +10 -0
- package/dist/session/use-session.d.ts +2006 -2214
- package/dist/session/use-session.ts.js +198 -33
- package/dist/type.d.ts +2 -0
- package/package.json +11 -6
|
@@ -132,7 +132,6 @@ class InterceptorManager {
|
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
134
|
export class FetchClient {
|
|
135
|
-
// 应用响应拦截器的错误处理
|
|
136
135
|
applyResponseErrorInterceptors(error) {
|
|
137
136
|
let rejectedError = error;
|
|
138
137
|
this.interceptors.response.forEach((interceptor)=>{
|
|
@@ -142,7 +141,6 @@ export class FetchClient {
|
|
|
142
141
|
});
|
|
143
142
|
return rejectedError;
|
|
144
143
|
}
|
|
145
|
-
// 创建新实例
|
|
146
144
|
create(config) {
|
|
147
145
|
return new FetchClient(mergeConfig(this.defaults, config || {}));
|
|
148
146
|
}
|
|
@@ -188,13 +186,9 @@ export class FetchClient {
|
|
|
188
186
|
data
|
|
189
187
|
}));
|
|
190
188
|
}
|
|
191
|
-
// 准备请求:合并配置、应用拦截器、构建 URL 和请求体
|
|
192
189
|
prepareRequest(config, isStream = false) {
|
|
193
|
-
// 合并配置
|
|
194
190
|
const mergedConfig = mergeConfig(this.defaults, config);
|
|
195
|
-
// 总的请求配置
|
|
196
191
|
let requestConfig = mergedConfig;
|
|
197
|
-
// 应用请求拦截器
|
|
198
192
|
this.interceptors.request.forEach((interceptor)=>{
|
|
199
193
|
if (interceptor.fulfilled) {
|
|
200
194
|
try {
|
|
@@ -207,20 +201,16 @@ export class FetchClient {
|
|
|
207
201
|
}
|
|
208
202
|
}
|
|
209
203
|
});
|
|
210
|
-
// 构建完整 URL
|
|
211
204
|
let url = requestConfig.url || '';
|
|
212
205
|
if (requestConfig.baseURL && !url.startsWith('http')) {
|
|
213
206
|
url = requestConfig.baseURL + url;
|
|
214
207
|
}
|
|
215
208
|
url = buildURL(url, requestConfig.params);
|
|
216
|
-
// 处理请求体
|
|
217
209
|
let body = getValue(requestConfig.data);
|
|
218
210
|
const headers = new Headers(getValue(requestConfig.headers));
|
|
219
|
-
// 流式请求设置 Accept 头
|
|
220
211
|
if (isStream && !headers.has('Accept')) {
|
|
221
212
|
headers.set('Accept', 'text/event-stream');
|
|
222
213
|
}
|
|
223
|
-
// 处理请求体
|
|
224
214
|
if (body !== undefined && body !== null) {
|
|
225
215
|
var _headers_get;
|
|
226
216
|
if (requestConfig.transformRequest) {
|
|
@@ -229,21 +219,21 @@ export class FetchClient {
|
|
|
229
219
|
body = JSON.stringify(body);
|
|
230
220
|
}
|
|
231
221
|
}
|
|
232
|
-
|
|
233
|
-
const controller = requestConfig.controller ?
|
|
234
|
-
// 请求配置
|
|
222
|
+
var _requestConfig_controller;
|
|
223
|
+
const controller = (_requestConfig_controller = requestConfig.controller) !== null && _requestConfig_controller !== void 0 ? _requestConfig_controller : new AbortController();
|
|
235
224
|
const fetchConfig = {
|
|
236
225
|
method: requestConfig.method,
|
|
237
226
|
credentials: requestConfig.credentials,
|
|
238
227
|
mode: requestConfig.mode,
|
|
239
228
|
headers,
|
|
240
229
|
body,
|
|
241
|
-
controller
|
|
230
|
+
signal: controller.signal
|
|
242
231
|
};
|
|
243
232
|
return {
|
|
244
233
|
url,
|
|
245
234
|
requestConfig,
|
|
246
|
-
fetchConfig
|
|
235
|
+
fetchConfig,
|
|
236
|
+
controller
|
|
247
237
|
};
|
|
248
238
|
}
|
|
249
239
|
put(url, data, config) {
|
|
@@ -256,18 +246,13 @@ export class FetchClient {
|
|
|
256
246
|
request(config) {
|
|
257
247
|
var _this = this;
|
|
258
248
|
return _async_to_generator(function*() {
|
|
259
|
-
|
|
260
|
-
const
|
|
261
|
-
// 创建超时控制
|
|
262
|
-
const timeoutId = requestConfig.timeout && requestConfig.timeout > 0 ? setTimeout(()=>fetchConfig.controller.abort(), requestConfig.timeout) : undefined;
|
|
249
|
+
const { url, fetchConfig, requestConfig, controller } = _this.prepareRequest(config);
|
|
250
|
+
const timeoutId = requestConfig.timeout && requestConfig.timeout > 0 ? setTimeout(()=>controller.abort(), requestConfig.timeout) : undefined;
|
|
263
251
|
try {
|
|
264
|
-
// 发送请求
|
|
265
252
|
const fetchResponse = yield fetch(url, fetchConfig);
|
|
266
|
-
// 清除超时定时器
|
|
267
253
|
if (timeoutId) {
|
|
268
254
|
clearTimeout(timeoutId);
|
|
269
255
|
}
|
|
270
|
-
// 解析响应数据
|
|
271
256
|
let data;
|
|
272
257
|
const responseType = requestConfig.responseType || 'json';
|
|
273
258
|
try {
|
|
@@ -293,11 +278,9 @@ export class FetchClient {
|
|
|
293
278
|
} catch (_error) {
|
|
294
279
|
data = null;
|
|
295
280
|
}
|
|
296
|
-
// 应用响应转换
|
|
297
281
|
if (requestConfig.transformResponse) {
|
|
298
282
|
data = requestConfig.transformResponse(data);
|
|
299
283
|
}
|
|
300
|
-
// 构建响应对象
|
|
301
284
|
const response = {
|
|
302
285
|
data: data,
|
|
303
286
|
status: fetchResponse.status,
|
|
@@ -305,12 +288,12 @@ export class FetchClient {
|
|
|
305
288
|
headers: fetchResponse.headers,
|
|
306
289
|
config: requestConfig
|
|
307
290
|
};
|
|
308
|
-
// 验证状态码
|
|
309
291
|
const validateStatus = requestConfig.validateStatus || _this.defaults.validateStatus;
|
|
310
292
|
if (!validateStatus(fetchResponse.status)) {
|
|
311
|
-
|
|
293
|
+
var _response_data_error, _response_data;
|
|
294
|
+
const message = ((_response_data = response.data) === null || _response_data === void 0 ? void 0 : (_response_data_error = _response_data.error) === null || _response_data_error === void 0 ? void 0 : _response_data_error.message) || `Request failed with status code ${fetchResponse.status}`;
|
|
295
|
+
throw createError(message, requestConfig, `ERR_BAD_RESPONSE`, response);
|
|
312
296
|
}
|
|
313
|
-
// 应用响应拦截器
|
|
314
297
|
let finalResponse = response;
|
|
315
298
|
_this.interceptors.response.forEach((interceptor)=>{
|
|
316
299
|
if (interceptor.fulfilled) {
|
|
@@ -324,11 +307,10 @@ export class FetchClient {
|
|
|
324
307
|
}
|
|
325
308
|
}
|
|
326
309
|
});
|
|
327
|
-
// 等待所有异步拦截器完成
|
|
328
310
|
if (finalResponse instanceof Promise) {
|
|
329
311
|
finalResponse = yield finalResponse;
|
|
330
312
|
}
|
|
331
|
-
//
|
|
313
|
+
// 检查业务状态码(区别于 HTTP 状态码)
|
|
332
314
|
const apiResponse = finalResponse.data;
|
|
333
315
|
if (![
|
|
334
316
|
0,
|
|
@@ -338,48 +320,48 @@ export class FetchClient {
|
|
|
338
320
|
}
|
|
339
321
|
return apiResponse.data;
|
|
340
322
|
} catch (error) {
|
|
341
|
-
// 清除超时定时器
|
|
342
323
|
if (timeoutId) {
|
|
343
324
|
clearTimeout(timeoutId);
|
|
344
325
|
}
|
|
345
|
-
// 处理中断错误
|
|
346
326
|
if (error instanceof Error && error.name === 'AbortError') {
|
|
347
327
|
const requestError = createError('Request timeout', requestConfig, 'ECONNABORTED', undefined);
|
|
348
328
|
throw _this.applyResponseErrorInterceptors(requestError);
|
|
349
329
|
}
|
|
350
|
-
// 处理其他错误
|
|
351
330
|
const requestError = error.isAxiosError === true ? error : createError(error.message, requestConfig, error.code, undefined);
|
|
352
331
|
throw _this.applyResponseErrorInterceptors(requestError);
|
|
353
332
|
}
|
|
354
333
|
})();
|
|
355
334
|
}
|
|
356
|
-
// SSE 流式请求便捷方法
|
|
357
335
|
stream(url, config) {
|
|
358
336
|
return this.streamRequest(_object_spread_props(_object_spread({}, config), {
|
|
359
337
|
url
|
|
360
338
|
}));
|
|
361
339
|
}
|
|
362
|
-
// SSE 流式请求
|
|
363
340
|
streamRequest(config) {
|
|
364
341
|
var _this = this;
|
|
365
342
|
return _async_to_generator(function*() {
|
|
366
|
-
// 准备请求(标记为流式请求)
|
|
367
343
|
const { url, fetchConfig, requestConfig } = _this.prepareRequest(config, true);
|
|
368
344
|
try {
|
|
369
|
-
var
|
|
370
|
-
_config_onStart, _fetchResponse_body;
|
|
371
|
-
// 发送请求
|
|
345
|
+
var _config_onStart, _fetchResponse_body;
|
|
372
346
|
const fetchResponse = yield fetch(url, fetchConfig);
|
|
373
|
-
// 验证状态码
|
|
374
347
|
const validateStatus = requestConfig.validateStatus || _this.defaults.validateStatus;
|
|
375
348
|
if (!validateStatus(fetchResponse.status)) {
|
|
376
349
|
var _config_onError;
|
|
377
|
-
|
|
350
|
+
let message = `Request failed with status code ${fetchResponse.status}`;
|
|
351
|
+
try {
|
|
352
|
+
var _errorData_error;
|
|
353
|
+
const errorData = yield fetchResponse.json();
|
|
354
|
+
if (errorData === null || errorData === void 0 ? void 0 : (_errorData_error = errorData.error) === null || _errorData_error === void 0 ? void 0 : _errorData_error.message) {
|
|
355
|
+
message = errorData.error.message;
|
|
356
|
+
}
|
|
357
|
+
} catch (_error) {
|
|
358
|
+
message = `Request failed with status code ${fetchResponse.status}`;
|
|
359
|
+
}
|
|
360
|
+
const error = createError(message, requestConfig, `ERR_BAD_RESPONSE`, undefined);
|
|
378
361
|
(_config_onError = config.onError) === null || _config_onError === void 0 ? void 0 : _config_onError.call(config, error);
|
|
379
362
|
return;
|
|
380
363
|
}
|
|
381
364
|
(_config_onStart = config.onStart) === null || _config_onStart === void 0 ? void 0 : _config_onStart.call(config);
|
|
382
|
-
// 获取 reader
|
|
383
365
|
const reader = (_fetchResponse_body = fetchResponse.body) === null || _fetchResponse_body === void 0 ? void 0 : _fetchResponse_body.pipeThrough(new window.TextDecoderStream()).getReader();
|
|
384
366
|
if (!reader) {
|
|
385
367
|
var _config_onError1;
|
|
@@ -387,12 +369,19 @@ export class FetchClient {
|
|
|
387
369
|
(_config_onError1 = config.onError) === null || _config_onError1 === void 0 ? void 0 : _config_onError1.call(config, error);
|
|
388
370
|
return;
|
|
389
371
|
}
|
|
390
|
-
//
|
|
372
|
+
// 缓存跨行分片数据
|
|
391
373
|
let temp = '';
|
|
374
|
+
const isJson = (str)=>{
|
|
375
|
+
try {
|
|
376
|
+
JSON.parse(str);
|
|
377
|
+
return true;
|
|
378
|
+
} catch (_error) {
|
|
379
|
+
return false;
|
|
380
|
+
}
|
|
381
|
+
};
|
|
392
382
|
// eslint-disable-next-line no-constant-condition
|
|
393
383
|
while(true){
|
|
394
384
|
const { value, done } = yield reader.read();
|
|
395
|
-
// 接口完成
|
|
396
385
|
if (done) {
|
|
397
386
|
var _config_onDone;
|
|
398
387
|
(_config_onDone = config.onDone) === null || _config_onDone === void 0 ? void 0 : _config_onDone.call(config);
|
|
@@ -401,10 +390,11 @@ export class FetchClient {
|
|
|
401
390
|
const values = (temp + value.toString()).split('\n');
|
|
402
391
|
values.forEach((value)=>{
|
|
403
392
|
const item = value.replace('data:', '').trim();
|
|
404
|
-
if (item
|
|
393
|
+
if (isJson(item)) {
|
|
405
394
|
var _config_onMessage;
|
|
406
395
|
const json = JSON.parse(item);
|
|
407
396
|
(_config_onMessage = config.onMessage) === null || _config_onMessage === void 0 ? void 0 : _config_onMessage.call(config, json);
|
|
397
|
+
temp = '';
|
|
408
398
|
} else if (item) {
|
|
409
399
|
temp = item;
|
|
410
400
|
}
|
|
@@ -444,7 +434,6 @@ export class FetchClient {
|
|
|
444
434
|
};
|
|
445
435
|
}
|
|
446
436
|
}
|
|
447
|
-
// 构建完整 URL
|
|
448
437
|
function buildURL(url, params) {
|
|
449
438
|
if (!params) return url;
|
|
450
439
|
const searchParams = new URLSearchParams();
|
|
@@ -465,7 +454,6 @@ function buildURL(url, params) {
|
|
|
465
454
|
}
|
|
466
455
|
return url;
|
|
467
456
|
}
|
|
468
|
-
// 创建错误对象
|
|
469
457
|
function createError(message, config, code, response) {
|
|
470
458
|
const error = new Error(message);
|
|
471
459
|
error.config = config;
|
|
@@ -474,16 +462,19 @@ function createError(message, config, code, response) {
|
|
|
474
462
|
error.isAxiosError = true;
|
|
475
463
|
return error;
|
|
476
464
|
}
|
|
477
|
-
// 获取值
|
|
478
465
|
function getValue(value) {
|
|
479
466
|
return typeof value === 'function' ? value() : value;
|
|
480
467
|
}
|
|
481
|
-
|
|
468
|
+
/** 排除 AbortController、Headers 等类实例,只对普通对象深度合并 */ function isPlainObject(value) {
|
|
469
|
+
if (!value || typeof value !== 'object') return false;
|
|
470
|
+
const proto = Object.getPrototypeOf(value);
|
|
471
|
+
return proto === Object.prototype || proto === null;
|
|
472
|
+
}
|
|
482
473
|
function mergeConfig(config1, config2) {
|
|
483
474
|
const output = _object_spread({}, config1);
|
|
484
475
|
for(const key in config2){
|
|
485
476
|
const value2 = config2[key];
|
|
486
|
-
if (
|
|
477
|
+
if (isPlainObject(value2)) {
|
|
487
478
|
const value1 = config1[key];
|
|
488
479
|
output[key] = mergeConfig(value1 || {}, value2);
|
|
489
480
|
} else {
|
|
@@ -492,7 +483,5 @@ function mergeConfig(config1, config2) {
|
|
|
492
483
|
}
|
|
493
484
|
return output;
|
|
494
485
|
}
|
|
495
|
-
// 创建默认实例
|
|
496
486
|
const fetchClient = new FetchClient();
|
|
497
|
-
// 导出默认实例
|
|
498
487
|
export default fetchClient;
|
|
@@ -22,20 +22,150 @@
|
|
|
22
22
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
|
23
23
|
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
|
24
24
|
* IN THE SOFTWARE.
|
|
25
|
-
*/
|
|
25
|
+
*/ function _define_property(obj, key, value) {
|
|
26
|
+
if (key in obj) {
|
|
27
|
+
Object.defineProperty(obj, key, {
|
|
28
|
+
value: value,
|
|
29
|
+
enumerable: true,
|
|
30
|
+
configurable: true,
|
|
31
|
+
writable: true
|
|
32
|
+
});
|
|
33
|
+
} else {
|
|
34
|
+
obj[key] = value;
|
|
35
|
+
}
|
|
36
|
+
return obj;
|
|
37
|
+
}
|
|
38
|
+
function _object_spread(target) {
|
|
39
|
+
for(var i = 1; i < arguments.length; i++){
|
|
40
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
41
|
+
var ownKeys = Object.keys(source);
|
|
42
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
43
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
44
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
45
|
+
}));
|
|
46
|
+
}
|
|
47
|
+
ownKeys.forEach(function(key) {
|
|
48
|
+
_define_property(target, key, source[key]);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
return target;
|
|
52
|
+
}
|
|
53
|
+
function ownKeys(object, enumerableOnly) {
|
|
54
|
+
var keys = Object.keys(object);
|
|
55
|
+
if (Object.getOwnPropertySymbols) {
|
|
56
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
57
|
+
if (enumerableOnly) {
|
|
58
|
+
symbols = symbols.filter(function(sym) {
|
|
59
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
keys.push.apply(keys, symbols);
|
|
63
|
+
}
|
|
64
|
+
return keys;
|
|
65
|
+
}
|
|
66
|
+
function _object_spread_props(target, source) {
|
|
67
|
+
source = source != null ? source : {};
|
|
68
|
+
if (Object.getOwnPropertyDescriptors) {
|
|
69
|
+
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
70
|
+
} else {
|
|
71
|
+
ownKeys(Object(source)).forEach(function(key) {
|
|
72
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
return target;
|
|
76
|
+
}
|
|
77
|
+
import { FetchClient } from './fetch.ts.js';
|
|
78
|
+
/** 仅支持 body 的 HTTP 方法 */ const BODY_METHODS = new Set([
|
|
79
|
+
'POST',
|
|
80
|
+
'PUT',
|
|
81
|
+
'PATCH',
|
|
82
|
+
'DELETE'
|
|
83
|
+
]);
|
|
84
|
+
/** 排除 FormData / Blob / ArrayBuffer 等,只对普通对象展开合并 */ function isPlainObject(value) {
|
|
85
|
+
if (!value || typeof value !== 'object') return false;
|
|
86
|
+
const proto = Object.getPrototypeOf(value);
|
|
87
|
+
return proto === Object.prototype || proto === null;
|
|
88
|
+
}
|
|
89
|
+
/** 解析「函数 | 值」两种形式,支持延迟求值(如响应式 token) */ function resolveValue(value) {
|
|
90
|
+
return typeof value === 'function' ? value() : value;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* 注册全局默认请求配置拦截器,将 `requestData.headers/data` 自动合并到每次请求。
|
|
94
|
+
* - `headers` 注入所有请求;`data` 仅注入 POST/PUT/PATCH/DELETE,避免 GET/HEAD body 报错。
|
|
95
|
+
* - 优先级最低(单次 IRequestConfig > 用户拦截器 > 本拦截器)。
|
|
96
|
+
*/ function registerRequestDataInterceptor(client, opts) {
|
|
97
|
+
const { headers: extraHeadersFn, data: extraDataFn } = opts.requestData;
|
|
98
|
+
if (!extraHeadersFn && !extraDataFn) return;
|
|
99
|
+
client.interceptors.request.use((config)=>{
|
|
100
|
+
let result = config;
|
|
101
|
+
if (extraHeadersFn) {
|
|
102
|
+
const extra = resolveValue(extraHeadersFn);
|
|
103
|
+
if (extra && Object.keys(extra).length > 0) {
|
|
104
|
+
var _resolveValue;
|
|
105
|
+
const existing = (_resolveValue = resolveValue(config.headers)) !== null && _resolveValue !== void 0 ? _resolveValue : {};
|
|
106
|
+
result = _object_spread_props(_object_spread({}, result), {
|
|
107
|
+
headers: _object_spread({}, existing, extra)
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
var _config_method;
|
|
112
|
+
const method = ((_config_method = config.method) !== null && _config_method !== void 0 ? _config_method : 'GET').toUpperCase();
|
|
113
|
+
if (extraDataFn && BODY_METHODS.has(method)) {
|
|
114
|
+
const extra = resolveValue(extraDataFn);
|
|
115
|
+
if (extra && Object.keys(extra).length > 0) {
|
|
116
|
+
const existing = resolveValue(config.data);
|
|
117
|
+
if (existing == null) {
|
|
118
|
+
// body 为空(如 clearSession POST undefined):直接用 extra 作为 body
|
|
119
|
+
result = _object_spread_props(_object_spread({}, result), {
|
|
120
|
+
data: extra
|
|
121
|
+
});
|
|
122
|
+
} else if (isPlainObject(existing)) {
|
|
123
|
+
// body 是普通对象:浅合并,extra 字段优先级更低(existing 已有同名字段时保留)
|
|
124
|
+
result = _object_spread_props(_object_spread({}, result), {
|
|
125
|
+
data: _object_spread({}, extra, existing)
|
|
126
|
+
});
|
|
127
|
+
} else {
|
|
128
|
+
// body 是 FormData / Blob / string 等:跳过注入,避免破坏原始 body
|
|
129
|
+
console.warn('[chat-helper] requestData.data 无法注入:当前请求体不是普通对象(FormData/Blob/string 等),已跳过合并。', {
|
|
130
|
+
method,
|
|
131
|
+
existingType: typeof existing
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return result;
|
|
137
|
+
});
|
|
138
|
+
}
|
|
26
139
|
export const useFetch = (options)=>{
|
|
27
140
|
var _options_interceptors, _options_interceptors1;
|
|
28
141
|
const fetchClient = new FetchClient({
|
|
29
142
|
baseURL: options.requestData.urlPrefix
|
|
30
143
|
});
|
|
31
|
-
//
|
|
144
|
+
// 先注册默认拦截器(优先级低),再注册用户拦截器(优先级高)
|
|
145
|
+
registerRequestDataInterceptor(fetchClient, options);
|
|
32
146
|
if ((_options_interceptors = options.interceptors) === null || _options_interceptors === void 0 ? void 0 : _options_interceptors.request) {
|
|
33
147
|
fetchClient.interceptors.request.use(options.interceptors.request);
|
|
34
148
|
}
|
|
35
149
|
if ((_options_interceptors1 = options.interceptors) === null || _options_interceptors1 === void 0 ? void 0 : _options_interceptors1.response) {
|
|
36
150
|
fetchClient.interceptors.response.use(options.interceptors.response);
|
|
37
151
|
}
|
|
152
|
+
// 重置 fetchClient 配置
|
|
153
|
+
const reset = (newOptions)=>{
|
|
154
|
+
var _newOptions_interceptors, _newOptions_interceptors1;
|
|
155
|
+
fetchClient.defaults.baseURL = newOptions.requestData.urlPrefix;
|
|
156
|
+
// 清空并重新注册所有拦截器
|
|
157
|
+
fetchClient.interceptors.request.clear();
|
|
158
|
+
fetchClient.interceptors.response.clear();
|
|
159
|
+
registerRequestDataInterceptor(fetchClient, newOptions);
|
|
160
|
+
if ((_newOptions_interceptors = newOptions.interceptors) === null || _newOptions_interceptors === void 0 ? void 0 : _newOptions_interceptors.request) {
|
|
161
|
+
fetchClient.interceptors.request.use(newOptions.interceptors.request);
|
|
162
|
+
}
|
|
163
|
+
if ((_newOptions_interceptors1 = newOptions.interceptors) === null || _newOptions_interceptors1 === void 0 ? void 0 : _newOptions_interceptors1.response) {
|
|
164
|
+
fetchClient.interceptors.response.use(newOptions.interceptors.response);
|
|
165
|
+
}
|
|
166
|
+
};
|
|
38
167
|
return {
|
|
39
|
-
fetchClient
|
|
168
|
+
fetchClient,
|
|
169
|
+
reset
|
|
40
170
|
};
|
|
41
171
|
};
|
package/dist/http/index.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export * from './transform';
|
|
|
7
7
|
* @returns HTTP 模块
|
|
8
8
|
*/
|
|
9
9
|
export declare const useHttp: (options: IUseChatHelperOptions) => {
|
|
10
|
+
reset: (newOptions: IUseChatHelperOptions) => void;
|
|
10
11
|
agent: {
|
|
11
12
|
getAgentInfo: (config?: import("./fetch").IRequestConfig) => Promise<import("..").IAgentInfo>;
|
|
12
13
|
};
|
|
@@ -25,15 +26,23 @@ export declare const useHttp: (options: IUseChatHelperOptions) => {
|
|
|
25
26
|
comment: string;
|
|
26
27
|
labels: string[];
|
|
27
28
|
}>;
|
|
28
|
-
|
|
29
|
+
getSessionFeedbackReasons: (rate: number, config?: import("./fetch").IRequestConfig) => Promise<string[]>;
|
|
29
30
|
renameSession: (sessionCode: string, config?: import("./fetch").IRequestConfig) => Promise<import("..").ISession<unknown, unknown>>;
|
|
31
|
+
uploadFile: (sessionCode: string, file: File, config?: import("./fetch").IRequestConfig) => Promise<{
|
|
32
|
+
download_url?: string;
|
|
33
|
+
}>;
|
|
30
34
|
};
|
|
31
35
|
message: {
|
|
32
36
|
getMessages: (sessionCode: string, limit?: number, config?: import("./fetch").IRequestConfig) => Promise<import("..").IMessage[]>;
|
|
33
|
-
plusMessage: (data: import("..").IMessage, config?: import("./fetch").IRequestConfig) => Promise<import("..").IAssistantMessage | import("..").IGuideMessage | import("..").IHiddenAssistantMessage | import("..").IHiddenGuideMessage | import("..").IHiddenMessage | import("..").IHiddenSystemMessage | import("..").IHiddenUserMessage | import("..").IInfoMessage | import("..").IPauseMessage | import("..").IPlaceholderMessage | import("..").ISystemMessage | import("..").ITemplateAssistantMessage | import("..").ITemplateGuideMessage | import("..").ITemplateHiddenMessage | import("..").ITemplateSystemMessage | import("..").ITemplateUserMessage | import("..").IUserMessage>;
|
|
34
|
-
modifyMessage: (data: import("..").IMessage, config?: import("./fetch").IRequestConfig) => Promise<import("..").IAssistantMessage | import("..").IGuideMessage | import("..").IHiddenAssistantMessage | import("..").IHiddenGuideMessage | import("..").IHiddenMessage | import("..").IHiddenSystemMessage | import("..").IHiddenUserMessage | import("..").IInfoMessage | import("..").IPauseMessage | import("..").IPlaceholderMessage | import("..").ISystemMessage | import("..").ITemplateAssistantMessage | import("..").ITemplateGuideMessage | import("..").ITemplateHiddenMessage | import("..").ITemplateSystemMessage | import("..").ITemplateUserMessage | import("..").IUserMessage>;
|
|
35
|
-
deleteMessage: (id:
|
|
36
|
-
batchDeleteMessages: (ids:
|
|
37
|
+
plusMessage: (data: import("..").IMessage, config?: import("./fetch").IRequestConfig) => Promise<import("..").IActivityMessage | import("..").IAssistantMessage | import("..").IDeveloperMessage | import("..").IGuideMessage | import("..").IHiddenAssistantMessage | import("..").IHiddenGuideMessage | import("..").IHiddenMessage | import("..").IHiddenSystemMessage | import("..").IHiddenUserMessage | import("..").IInfoMessage | import("..").IPauseMessage | import("..").IPlaceholderMessage | import("..").IReasoningMessage | import("..").ISystemMessage | import("..").ITemplateAssistantMessage | import("..").ITemplateGuideMessage | import("..").ITemplateHiddenMessage | import("..").ITemplateSystemMessage | import("..").ITemplateUserMessage | import("..").IToolMessage | import("..").IUserMessage>;
|
|
38
|
+
modifyMessage: (data: import("..").IMessage, config?: import("./fetch").IRequestConfig) => Promise<import("..").IActivityMessage | import("..").IAssistantMessage | import("..").IDeveloperMessage | import("..").IGuideMessage | import("..").IHiddenAssistantMessage | import("..").IHiddenGuideMessage | import("..").IHiddenMessage | import("..").IHiddenSystemMessage | import("..").IHiddenUserMessage | import("..").IInfoMessage | import("..").IPauseMessage | import("..").IPlaceholderMessage | import("..").IReasoningMessage | import("..").ISystemMessage | import("..").ITemplateAssistantMessage | import("..").ITemplateGuideMessage | import("..").ITemplateHiddenMessage | import("..").ITemplateSystemMessage | import("..").ITemplateUserMessage | import("..").IToolMessage | import("..").IUserMessage>;
|
|
39
|
+
deleteMessage: (id: string, config?: import("./fetch").IRequestConfig) => Promise<import("..").IMessage>;
|
|
40
|
+
batchDeleteMessages: (ids: string[], config?: import("./fetch").IRequestConfig) => Promise<number>;
|
|
41
|
+
shareMessages: (sessionCode: string, contentIds: string[], expiredAt?: number, config?: import("./fetch").IRequestConfig) => Promise<import("./module/message").IShareMessagesResponse>;
|
|
42
|
+
stopChat: (sessionCode: string, config?: import("./fetch").IRequestConfig) => Promise<void>;
|
|
43
|
+
getFlowAgentTaskInfo: (taskId: number, config?: import("./fetch").IRequestConfig) => Promise<unknown>;
|
|
44
|
+
getFlowAgentTaskNodeInfo: (taskId: number, nodeId: string, config?: import("./fetch").IRequestConfig) => Promise<import("..").IFlowAgentTaskNodeInfo>;
|
|
37
45
|
};
|
|
46
|
+
fetchClient: import("./fetch").FetchClient;
|
|
38
47
|
};
|
|
39
48
|
export type IHttpModule = ReturnType<typeof useHttp>;
|
package/dist/http/index.ts.js
CHANGED
|
@@ -22,7 +22,59 @@
|
|
|
22
22
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
|
23
23
|
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
|
24
24
|
* IN THE SOFTWARE.
|
|
25
|
-
*/
|
|
25
|
+
*/ function _define_property(obj, key, value) {
|
|
26
|
+
if (key in obj) {
|
|
27
|
+
Object.defineProperty(obj, key, {
|
|
28
|
+
value: value,
|
|
29
|
+
enumerable: true,
|
|
30
|
+
configurable: true,
|
|
31
|
+
writable: true
|
|
32
|
+
});
|
|
33
|
+
} else {
|
|
34
|
+
obj[key] = value;
|
|
35
|
+
}
|
|
36
|
+
return obj;
|
|
37
|
+
}
|
|
38
|
+
function _object_spread(target) {
|
|
39
|
+
for(var i = 1; i < arguments.length; i++){
|
|
40
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
41
|
+
var ownKeys = Object.keys(source);
|
|
42
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
43
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
44
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
45
|
+
}));
|
|
46
|
+
}
|
|
47
|
+
ownKeys.forEach(function(key) {
|
|
48
|
+
_define_property(target, key, source[key]);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
return target;
|
|
52
|
+
}
|
|
53
|
+
function ownKeys(object, enumerableOnly) {
|
|
54
|
+
var keys = Object.keys(object);
|
|
55
|
+
if (Object.getOwnPropertySymbols) {
|
|
56
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
57
|
+
if (enumerableOnly) {
|
|
58
|
+
symbols = symbols.filter(function(sym) {
|
|
59
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
keys.push.apply(keys, symbols);
|
|
63
|
+
}
|
|
64
|
+
return keys;
|
|
65
|
+
}
|
|
66
|
+
function _object_spread_props(target, source) {
|
|
67
|
+
source = source != null ? source : {};
|
|
68
|
+
if (Object.getOwnPropertyDescriptors) {
|
|
69
|
+
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
70
|
+
} else {
|
|
71
|
+
ownKeys(Object(source)).forEach(function(key) {
|
|
72
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
return target;
|
|
76
|
+
}
|
|
77
|
+
import { useFetch } from './fetch/index.ts.js';
|
|
26
78
|
import { useModule } from './module/index.ts.js';
|
|
27
79
|
export * from './fetch/index.ts.js';
|
|
28
80
|
export * from './transform/index.ts.js';
|
|
@@ -31,7 +83,11 @@ export * from './transform/index.ts.js';
|
|
|
31
83
|
* @param options - 选项
|
|
32
84
|
* @returns HTTP 模块
|
|
33
85
|
*/ export const useHttp = (options)=>{
|
|
34
|
-
|
|
86
|
+
// 创建 fetchClient
|
|
87
|
+
const { fetchClient, reset } = useFetch(options);
|
|
88
|
+
// 创建 http 模块
|
|
35
89
|
const http = useModule(fetchClient);
|
|
36
|
-
return http
|
|
90
|
+
return _object_spread_props(_object_spread({}, http), {
|
|
91
|
+
reset
|
|
92
|
+
});
|
|
37
93
|
};
|
|
@@ -23,14 +23,22 @@ export declare const useModule: (fetchClient: FetchClient) => {
|
|
|
23
23
|
comment: string;
|
|
24
24
|
labels: string[];
|
|
25
25
|
}>;
|
|
26
|
-
|
|
26
|
+
getSessionFeedbackReasons: (rate: number, config?: import("../fetch").IRequestConfig) => Promise<string[]>;
|
|
27
27
|
renameSession: (sessionCode: string, config?: import("../fetch").IRequestConfig) => Promise<import("../..").ISession<unknown, unknown>>;
|
|
28
|
+
uploadFile: (sessionCode: string, file: File, config?: import("../fetch").IRequestConfig) => Promise<{
|
|
29
|
+
download_url?: string;
|
|
30
|
+
}>;
|
|
28
31
|
};
|
|
29
32
|
message: {
|
|
30
33
|
getMessages: (sessionCode: string, limit?: number, config?: import("../fetch").IRequestConfig) => Promise<import("../..").IMessage[]>;
|
|
31
|
-
plusMessage: (data: import("../..").IMessage, config?: import("../fetch").IRequestConfig) => Promise<import("../..").IAssistantMessage | import("../..").IGuideMessage | import("../..").IHiddenAssistantMessage | import("../..").IHiddenGuideMessage | import("../..").IHiddenMessage | import("../..").IHiddenSystemMessage | import("../..").IHiddenUserMessage | import("../..").IInfoMessage | import("../..").IPauseMessage | import("../..").IPlaceholderMessage | import("../..").ISystemMessage | import("../..").ITemplateAssistantMessage | import("../..").ITemplateGuideMessage | import("../..").ITemplateHiddenMessage | import("../..").ITemplateSystemMessage | import("../..").ITemplateUserMessage | import("../..").IUserMessage>;
|
|
32
|
-
modifyMessage: (data: import("../..").IMessage, config?: import("../fetch").IRequestConfig) => Promise<import("../..").IAssistantMessage | import("../..").IGuideMessage | import("../..").IHiddenAssistantMessage | import("../..").IHiddenGuideMessage | import("../..").IHiddenMessage | import("../..").IHiddenSystemMessage | import("../..").IHiddenUserMessage | import("../..").IInfoMessage | import("../..").IPauseMessage | import("../..").IPlaceholderMessage | import("../..").ISystemMessage | import("../..").ITemplateAssistantMessage | import("../..").ITemplateGuideMessage | import("../..").ITemplateHiddenMessage | import("../..").ITemplateSystemMessage | import("../..").ITemplateUserMessage | import("../..").IUserMessage>;
|
|
33
|
-
deleteMessage: (id:
|
|
34
|
-
batchDeleteMessages: (ids:
|
|
34
|
+
plusMessage: (data: import("../..").IMessage, config?: import("../fetch").IRequestConfig) => Promise<import("../..").IActivityMessage | import("../..").IAssistantMessage | import("../..").IDeveloperMessage | import("../..").IGuideMessage | import("../..").IHiddenAssistantMessage | import("../..").IHiddenGuideMessage | import("../..").IHiddenMessage | import("../..").IHiddenSystemMessage | import("../..").IHiddenUserMessage | import("../..").IInfoMessage | import("../..").IPauseMessage | import("../..").IPlaceholderMessage | import("../..").IReasoningMessage | import("../..").ISystemMessage | import("../..").ITemplateAssistantMessage | import("../..").ITemplateGuideMessage | import("../..").ITemplateHiddenMessage | import("../..").ITemplateSystemMessage | import("../..").ITemplateUserMessage | import("../..").IToolMessage | import("../..").IUserMessage>;
|
|
35
|
+
modifyMessage: (data: import("../..").IMessage, config?: import("../fetch").IRequestConfig) => Promise<import("../..").IActivityMessage | import("../..").IAssistantMessage | import("../..").IDeveloperMessage | import("../..").IGuideMessage | import("../..").IHiddenAssistantMessage | import("../..").IHiddenGuideMessage | import("../..").IHiddenMessage | import("../..").IHiddenSystemMessage | import("../..").IHiddenUserMessage | import("../..").IInfoMessage | import("../..").IPauseMessage | import("../..").IPlaceholderMessage | import("../..").IReasoningMessage | import("../..").ISystemMessage | import("../..").ITemplateAssistantMessage | import("../..").ITemplateGuideMessage | import("../..").ITemplateHiddenMessage | import("../..").ITemplateSystemMessage | import("../..").ITemplateUserMessage | import("../..").IToolMessage | import("../..").IUserMessage>;
|
|
36
|
+
deleteMessage: (id: string, config?: import("../fetch").IRequestConfig) => Promise<import("../..").IMessage>;
|
|
37
|
+
batchDeleteMessages: (ids: string[], config?: import("../fetch").IRequestConfig) => Promise<number>;
|
|
38
|
+
shareMessages: (sessionCode: string, contentIds: string[], expiredAt?: number, config?: import("../fetch").IRequestConfig) => Promise<import("./message").IShareMessagesResponse>;
|
|
39
|
+
stopChat: (sessionCode: string, config?: import("../fetch").IRequestConfig) => Promise<void>;
|
|
40
|
+
getFlowAgentTaskInfo: (taskId: number, config?: import("../fetch").IRequestConfig) => Promise<unknown>;
|
|
41
|
+
getFlowAgentTaskNodeInfo: (taskId: number, nodeId: string, config?: import("../fetch").IRequestConfig) => Promise<import("../..").IFlowAgentTaskNodeInfo>;
|
|
35
42
|
};
|
|
43
|
+
fetchClient: FetchClient;
|
|
36
44
|
};
|
|
@@ -1,5 +1,18 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IFlowAgentTaskNodeInfo, IMessage } from '../../message/type';
|
|
2
2
|
import type { FetchClient, IRequestConfig } from '../fetch';
|
|
3
|
+
/**
|
|
4
|
+
* 分享消息接口返回数据
|
|
5
|
+
*/
|
|
6
|
+
export interface IShareMessagesResponse {
|
|
7
|
+
agent_code: string;
|
|
8
|
+
agent_version: string;
|
|
9
|
+
content_count: number;
|
|
10
|
+
created_at: string;
|
|
11
|
+
created_by: string;
|
|
12
|
+
session_code: string;
|
|
13
|
+
share_page: string;
|
|
14
|
+
share_token: string;
|
|
15
|
+
}
|
|
3
16
|
/**
|
|
4
17
|
* message 相关 http 接口
|
|
5
18
|
* @param fetchClient - 请求客户端
|
|
@@ -7,8 +20,12 @@ import type { FetchClient, IRequestConfig } from '../fetch';
|
|
|
7
20
|
*/
|
|
8
21
|
export declare const useMessage: (fetchClient: FetchClient) => {
|
|
9
22
|
getMessages: (sessionCode: string, limit?: number, config?: IRequestConfig) => Promise<IMessage[]>;
|
|
10
|
-
plusMessage: (data: IMessage, config?: IRequestConfig) => Promise<import("../../message/type").IAssistantMessage | import("../../message/type").IGuideMessage | import("../../message/type").IHiddenAssistantMessage | import("../../message/type").IHiddenGuideMessage | import("../../message/type").IHiddenMessage | import("../../message/type").IHiddenSystemMessage | import("../../message/type").IHiddenUserMessage | import("../../message/type").IInfoMessage | import("../../message/type").IPauseMessage | import("../../message/type").IPlaceholderMessage | import("../../message/type").ISystemMessage | import("../../message/type").ITemplateAssistantMessage | import("../../message/type").ITemplateGuideMessage | import("../../message/type").ITemplateHiddenMessage | import("../../message/type").ITemplateSystemMessage | import("../../message/type").ITemplateUserMessage | import("../../message/type").IUserMessage>;
|
|
11
|
-
modifyMessage: (data: IMessage, config?: IRequestConfig) => Promise<import("../../message/type").IAssistantMessage | import("../../message/type").IGuideMessage | import("../../message/type").IHiddenAssistantMessage | import("../../message/type").IHiddenGuideMessage | import("../../message/type").IHiddenMessage | import("../../message/type").IHiddenSystemMessage | import("../../message/type").IHiddenUserMessage | import("../../message/type").IInfoMessage | import("../../message/type").IPauseMessage | import("../../message/type").IPlaceholderMessage | import("../../message/type").ISystemMessage | import("../../message/type").ITemplateAssistantMessage | import("../../message/type").ITemplateGuideMessage | import("../../message/type").ITemplateHiddenMessage | import("../../message/type").ITemplateSystemMessage | import("../../message/type").ITemplateUserMessage | import("../../message/type").IUserMessage>;
|
|
12
|
-
deleteMessage: (id:
|
|
13
|
-
batchDeleteMessages: (ids:
|
|
23
|
+
plusMessage: (data: IMessage, config?: IRequestConfig) => Promise<import("../../message/type").IActivityMessage | import("../../message/type").IAssistantMessage | import("../../message/type").IDeveloperMessage | import("../../message/type").IGuideMessage | import("../../message/type").IHiddenAssistantMessage | import("../../message/type").IHiddenGuideMessage | import("../../message/type").IHiddenMessage | import("../../message/type").IHiddenSystemMessage | import("../../message/type").IHiddenUserMessage | import("../../message/type").IInfoMessage | import("../../message/type").IPauseMessage | import("../../message/type").IPlaceholderMessage | import("../../message/type").IReasoningMessage | import("../../message/type").ISystemMessage | import("../../message/type").ITemplateAssistantMessage | import("../../message/type").ITemplateGuideMessage | import("../../message/type").ITemplateHiddenMessage | import("../../message/type").ITemplateSystemMessage | import("../../message/type").ITemplateUserMessage | import("../../message/type").IToolMessage | import("../../message/type").IUserMessage>;
|
|
24
|
+
modifyMessage: (data: IMessage, config?: IRequestConfig) => Promise<import("../../message/type").IActivityMessage | import("../../message/type").IAssistantMessage | import("../../message/type").IDeveloperMessage | import("../../message/type").IGuideMessage | import("../../message/type").IHiddenAssistantMessage | import("../../message/type").IHiddenGuideMessage | import("../../message/type").IHiddenMessage | import("../../message/type").IHiddenSystemMessage | import("../../message/type").IHiddenUserMessage | import("../../message/type").IInfoMessage | import("../../message/type").IPauseMessage | import("../../message/type").IPlaceholderMessage | import("../../message/type").IReasoningMessage | import("../../message/type").ISystemMessage | import("../../message/type").ITemplateAssistantMessage | import("../../message/type").ITemplateGuideMessage | import("../../message/type").ITemplateHiddenMessage | import("../../message/type").ITemplateSystemMessage | import("../../message/type").ITemplateUserMessage | import("../../message/type").IToolMessage | import("../../message/type").IUserMessage>;
|
|
25
|
+
deleteMessage: (id: string, config?: IRequestConfig) => Promise<IMessage>;
|
|
26
|
+
batchDeleteMessages: (ids: string[], config?: IRequestConfig) => Promise<number>;
|
|
27
|
+
shareMessages: (sessionCode: string, contentIds: string[], expiredAt?: number, config?: IRequestConfig) => Promise<IShareMessagesResponse>;
|
|
28
|
+
stopChat: (sessionCode: string, config?: IRequestConfig) => Promise<void>;
|
|
29
|
+
getFlowAgentTaskInfo: (taskId: number, config?: IRequestConfig) => Promise<unknown>;
|
|
30
|
+
getFlowAgentTaskNodeInfo: (taskId: number, nodeId: string, config?: IRequestConfig) => Promise<IFlowAgentTaskNodeInfo>;
|
|
14
31
|
};
|