@blueking/chat-helper 0.0.12-beta.18 → 0.0.12-beta.19
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 +13 -5
- package/dist/agent/use-agent.ts.js +5 -3
- package/dist/event/ag-ui.d.ts +1 -1
- package/dist/event/ag-ui.ts.js +1 -1
- package/dist/http/index.d.ts +1 -1
- package/dist/http/module/index.d.ts +1 -1
- package/dist/http/module/message.d.ts +1 -1
- package/dist/http/module/message.ts.js +4 -3
- package/dist/index.d.ts +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -324,6 +324,17 @@ http.message; // Message API
|
|
|
324
324
|
|
|
325
325
|
一般情况下,您不需要直接使用 `http` 模块,因为 `agent`、`session` 和 `message` 模块已经封装了常用的业务逻辑。
|
|
326
326
|
|
|
327
|
+
**`http.message.getMessages`(可单独使用)**:
|
|
328
|
+
|
|
329
|
+
```typescript
|
|
330
|
+
// (sessionCode: string, limit?: number, config?: IRequestConfig, fuzzy?: string) => Promise<IMessage[]>
|
|
331
|
+
// GET session_content/content/ — 支持可选 fuzzy 模糊检索
|
|
332
|
+
const messages = await http.message.getMessages(sessionCode);
|
|
333
|
+
const filtered = await http.message.getMessages(sessionCode, undefined, undefined, '关键词');
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
> 业务层 `message.getMessages(sessionCode)` 未透传 `fuzzy`。需要模糊检索时请直接调用 `http.message.getMessages`。`fuzzy` 位于参数末尾,不影响既有 `limit` / `config` 调用。
|
|
337
|
+
|
|
327
338
|
## 配置选项
|
|
328
339
|
|
|
329
340
|
### requestData(必需)
|
|
@@ -416,7 +427,6 @@ useChatHelper({
|
|
|
416
427
|
**拦截器使用场景**:
|
|
417
428
|
|
|
418
429
|
1. **请求拦截器**:
|
|
419
|
-
|
|
420
430
|
- 添加认证 token
|
|
421
431
|
- 添加请求时间戳
|
|
422
432
|
- 添加请求 ID
|
|
@@ -994,8 +1004,8 @@ class SafeProtocol extends AGUIProtocol {
|
|
|
994
1004
|
mode.value === 'creative'
|
|
995
1005
|
? 'chat_completion_creative/'
|
|
996
1006
|
: mode.value === 'precise'
|
|
997
|
-
|
|
998
|
-
|
|
1007
|
+
? 'chat_completion_precise/'
|
|
1008
|
+
: undefined;
|
|
999
1009
|
|
|
1000
1010
|
// 自定义请求参数
|
|
1001
1011
|
agent.chat(userInput.value, session.current.sessionCode, endpoint, {
|
|
@@ -1555,13 +1565,11 @@ interface IToolMessage {
|
|
|
1555
1565
|
**参数:**
|
|
1556
1566
|
|
|
1557
1567
|
- `options.requestData` (必需)
|
|
1558
|
-
|
|
1559
1568
|
- `urlPrefix: string` - API 基础路径
|
|
1560
1569
|
- `data?: Record<string, unknown> | (() => Record<string, unknown>)` - 额外的请求数据
|
|
1561
1570
|
- `headers?: Record<string, string> | (() => Record<string, string>)` - 额外的请求头
|
|
1562
1571
|
|
|
1563
1572
|
- `options.interceptors` (可选)
|
|
1564
|
-
|
|
1565
1573
|
- `request?: (config: IRequestConfig) => IRequestConfig` - 请求拦截器
|
|
1566
1574
|
- `response?: (response: IResponse) => IResponse` - 响应拦截器
|
|
1567
1575
|
|
|
@@ -246,7 +246,7 @@ const getReconnectDelayMs = (attempt)=>Math.min(RECONNECT_BASE_DELAY_MS * Math.p
|
|
|
246
246
|
runFinished = false;
|
|
247
247
|
clearReconnectTimer(false);
|
|
248
248
|
};
|
|
249
|
-
/**
|
|
249
|
+
/** 裁掉尾部尚未完成的非用户消息,避免断线重放时重复气泡 */ const pruneTrailingIncompleteMessages = ()=>{
|
|
250
250
|
var _mediator_message;
|
|
251
251
|
const list = (_mediator_message = mediator.message) === null || _mediator_message === void 0 ? void 0 : _mediator_message.list.value;
|
|
252
252
|
if (!(list === null || list === void 0 ? void 0 : list.length)) {
|
|
@@ -401,7 +401,7 @@ const getReconnectDelayMs = (attempt)=>Math.min(RECONNECT_BASE_DELAY_MS * Math.p
|
|
|
401
401
|
finishSuccessfully();
|
|
402
402
|
return;
|
|
403
403
|
}
|
|
404
|
-
//
|
|
404
|
+
// 连接被干净掐断且未收到终端事件(RUN_FINISHED / RUN_ERROR):尝试静默重连
|
|
405
405
|
void attemptSilentReconnect(sessionCode, streamId).then((result)=>{
|
|
406
406
|
if (!isActiveStream()) {
|
|
407
407
|
return;
|
|
@@ -454,7 +454,9 @@ const getReconnectDelayMs = (attempt)=>Math.min(RECONNECT_BASE_DELAY_MS * Math.p
|
|
|
454
454
|
return;
|
|
455
455
|
}
|
|
456
456
|
const typedEvent = event;
|
|
457
|
-
|
|
457
|
+
// RUN_FINISHED / RUN_ERROR 均为终端事件:关流后走正常收尾,勿静默重连
|
|
458
|
+
// (用户 stop 后后端推 RUN_ERROR「用户已取消」,而非 RUN_FINISHED)
|
|
459
|
+
if ((typedEvent === null || typedEvent === void 0 ? void 0 : typedEvent.type) === EventType.RunFinished || (typedEvent === null || typedEvent === void 0 ? void 0 : typedEvent.type) === EventType.RunError) {
|
|
458
460
|
runFinished = true;
|
|
459
461
|
}
|
|
460
462
|
(_usedProtocol_onMessage = usedProtocol.onMessage) === null || _usedProtocol_onMessage === void 0 ? void 0 : _usedProtocol_onMessage.call(usedProtocol, event);
|
package/dist/event/ag-ui.d.ts
CHANGED
|
@@ -133,7 +133,7 @@ export declare class AGUIProtocol implements ISSEProtocol {
|
|
|
133
133
|
handleTextMessageEndEvent(event: ITextMessageEndEvent): void;
|
|
134
134
|
/**
|
|
135
135
|
* 处理文本消息开始事件
|
|
136
|
-
*
|
|
136
|
+
* 断线续传时会重放缓存事件:同 messageId 已存在则重置内容,避免重复气泡/文本翻倍
|
|
137
137
|
*/
|
|
138
138
|
handleTextMessageStartEvent(event: ITextMessageStartEvent): void;
|
|
139
139
|
/**
|
package/dist/event/ag-ui.ts.js
CHANGED
|
@@ -380,7 +380,7 @@ import { CustomEventName, EventType, FlowTaskState, RunFinishedOutcomeType } fro
|
|
|
380
380
|
}
|
|
381
381
|
/**
|
|
382
382
|
* 处理文本消息开始事件
|
|
383
|
-
*
|
|
383
|
+
* 断线续传时会重放缓存事件:同 messageId 已存在则重置内容,避免重复气泡/文本翻倍
|
|
384
384
|
*/ handleTextMessageStartEvent(event) {
|
|
385
385
|
const existing = this.messageModule.getMessageByMessageId(event.messageId);
|
|
386
386
|
if (existing) {
|
package/dist/http/index.d.ts
CHANGED
|
@@ -43,7 +43,7 @@ export declare const useHttp: (options: IUseChatHelperOptions) => {
|
|
|
43
43
|
isResumeSession: (sessionCode: string, config?: import("./fetch").IRequestConfig) => Promise<boolean>;
|
|
44
44
|
};
|
|
45
45
|
message: {
|
|
46
|
-
getMessages: (sessionCode: string, limit?: number, config?: import("./fetch").IRequestConfig) => Promise<import("..").IMessage[]>;
|
|
46
|
+
getMessages: (sessionCode: string, limit?: number, config?: import("./fetch").IRequestConfig, fuzzy?: string) => Promise<import("..").IMessage[]>;
|
|
47
47
|
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 | import("..").IInterruptMessage>;
|
|
48
48
|
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 | import("..").IInterruptMessage>;
|
|
49
49
|
deleteMessage: (id: string, config?: import("./fetch").IRequestConfig) => Promise<import("..").IMessage>;
|
|
@@ -38,7 +38,7 @@ export declare const useModule: (fetchClient: FetchClient) => {
|
|
|
38
38
|
isResumeSession: (sessionCode: string, config?: import("../fetch").IRequestConfig) => Promise<boolean>;
|
|
39
39
|
};
|
|
40
40
|
message: {
|
|
41
|
-
getMessages: (sessionCode: string, limit?: number, config?: import("../fetch").IRequestConfig) => Promise<import("../..").IMessage[]>;
|
|
41
|
+
getMessages: (sessionCode: string, limit?: number, config?: import("../fetch").IRequestConfig, fuzzy?: string) => Promise<import("../..").IMessage[]>;
|
|
42
42
|
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 | import("../..").IInterruptMessage>;
|
|
43
43
|
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 | import("../..").IInterruptMessage>;
|
|
44
44
|
deleteMessage: (id: string, config?: import("../fetch").IRequestConfig) => Promise<import("../..").IMessage>;
|
|
@@ -19,7 +19,7 @@ export interface IShareMessagesResponse {
|
|
|
19
19
|
* @returns message 相关 http 接口
|
|
20
20
|
*/
|
|
21
21
|
export declare const useMessage: (fetchClient: FetchClient) => {
|
|
22
|
-
getMessages: (sessionCode: string, limit?: number, config?: IRequestConfig) => Promise<IMessage[]>;
|
|
22
|
+
getMessages: (sessionCode: string, limit?: number, config?: IRequestConfig, fuzzy?: string) => Promise<IMessage[]>;
|
|
23
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 | import("../../message/type").IInterruptMessage>;
|
|
24
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 | import("../../message/type").IInterruptMessage>;
|
|
25
25
|
deleteMessage: (id: string, config?: IRequestConfig) => Promise<IMessage>;
|
|
@@ -56,10 +56,11 @@ import { transferMessage2MessageApi, transferMessageApi2Message } from '../trans
|
|
|
56
56
|
* @param fetchClient - 请求客户端
|
|
57
57
|
* @returns message 相关 http 接口
|
|
58
58
|
*/ export const useMessage = (fetchClient)=>{
|
|
59
|
-
//
|
|
60
|
-
const getMessages = (sessionCode, limit, config)=>fetchClient.get(`session_content/content/`, {
|
|
59
|
+
// 获取会话内容列表(fuzzy 置于末尾,避免影响既有 limit/config 调用)
|
|
60
|
+
const getMessages = (sessionCode, limit, config, fuzzy)=>fetchClient.get(`session_content/content/`, {
|
|
61
61
|
session_code: sessionCode,
|
|
62
|
-
limit
|
|
62
|
+
limit,
|
|
63
|
+
fuzzy
|
|
63
64
|
}, config).then((res)=>res.map(transferMessageApi2Message));
|
|
64
65
|
// 新增会话内容
|
|
65
66
|
const plusMessage = (data, config)=>fetchClient.post(`session_content/`, transferMessage2MessageApi(data), config).then(transferMessageApi2Message);
|
package/dist/index.d.ts
CHANGED
|
@@ -13380,7 +13380,7 @@ export declare const useChatHelper: (options: IUseChatHelperOptions) => {
|
|
|
13380
13380
|
isResumeSession: (sessionCode: string, config?: import("./http").IRequestConfig) => Promise<boolean>;
|
|
13381
13381
|
};
|
|
13382
13382
|
message: {
|
|
13383
|
-
getMessages: (sessionCode: string, limit?: number, config?: import("./http").IRequestConfig) => Promise<import("./message").IMessage[]>;
|
|
13383
|
+
getMessages: (sessionCode: string, limit?: number, config?: import("./http").IRequestConfig, fuzzy?: string) => Promise<import("./message").IMessage[]>;
|
|
13384
13384
|
plusMessage: (data: import("./message").IMessage, config?: import("./http").IRequestConfig) => Promise<import("./message").IActivityMessage | import("./message").IAssistantMessage | import("./message").IDeveloperMessage | import("./message").IGuideMessage | import("./message").IHiddenAssistantMessage | import("./message").IHiddenGuideMessage | import("./message").IHiddenMessage | import("./message").IHiddenSystemMessage | import("./message").IHiddenUserMessage | import("./message").IInfoMessage | import("./message").IPauseMessage | import("./message").IPlaceholderMessage | import("./message").IReasoningMessage | import("./message").ISystemMessage | import("./message").ITemplateAssistantMessage | import("./message").ITemplateGuideMessage | import("./message").ITemplateHiddenMessage | import("./message").ITemplateSystemMessage | import("./message").ITemplateUserMessage | import("./message").IToolMessage | import("./message").IUserMessage | import("./message").IInterruptMessage>;
|
|
13385
13385
|
modifyMessage: (data: import("./message").IMessage, config?: import("./http").IRequestConfig) => Promise<import("./message").IActivityMessage | import("./message").IAssistantMessage | import("./message").IDeveloperMessage | import("./message").IGuideMessage | import("./message").IHiddenAssistantMessage | import("./message").IHiddenGuideMessage | import("./message").IHiddenMessage | import("./message").IHiddenSystemMessage | import("./message").IHiddenUserMessage | import("./message").IInfoMessage | import("./message").IPauseMessage | import("./message").IPlaceholderMessage | import("./message").IReasoningMessage | import("./message").ISystemMessage | import("./message").ITemplateAssistantMessage | import("./message").ITemplateGuideMessage | import("./message").ITemplateHiddenMessage | import("./message").ITemplateSystemMessage | import("./message").ITemplateUserMessage | import("./message").IToolMessage | import("./message").IUserMessage | import("./message").IInterruptMessage>;
|
|
13386
13386
|
deleteMessage: (id: string, config?: import("./http").IRequestConfig) => Promise<import("./message").IMessage>;
|