@blueking/chat-helper 0.0.9 → 0.0.10-beta.2

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.
@@ -80,8 +80,8 @@ function _object_spread(target) {
80
80
  return target;
81
81
  }
82
82
  import { ref } from 'vue';
83
- import { AGUIProtocol } from '../event/index.ts.js';
84
- import { MessageRole, MessageStatus } from '../message/index.ts.js';
83
+ import { AGUIProtocol, ApprovalInterruptTicketStatus, RunFinishedOutcomeType } from '../event/index.ts.js';
84
+ import { MessageRole, MessageStatus, UserOperation } from '../message/index.ts.js';
85
85
  import { SessionStatus } from '../session/type.ts.js';
86
86
  /**
87
87
  * Agent 模块
@@ -121,19 +121,50 @@ import { SessionStatus } from '../session/type.ts.js';
121
121
  });
122
122
  }
123
123
  };
124
+ const userOperationStreamRequest = (sessionCode, operation, payload, config)=>{
125
+ var _mediator_http;
126
+ return (_mediator_http = mediator.http) === null || _mediator_http === void 0 ? void 0 : _mediator_http.message.userOperation(sessionCode, operation, payload, config).then(()=>{
127
+ if (operation !== UserOperation.ApprovalCancel) {
128
+ streamRequest({
129
+ sessionCode,
130
+ config
131
+ });
132
+ }
133
+ });
134
+ };
124
135
  const streamRequest = function() {
125
- var _ref = _async_to_generator(function*(sessionCode, url, config) {
136
+ var _ref = _async_to_generator(function*({ sessionCode, url, config, resume, input }) {
126
137
  var // 发起聊天
127
138
  _mediator_http;
128
139
  // ag-ui 协议需要注入消息模块
129
140
  if (usedProtocol instanceof AGUIProtocol) {
130
141
  usedProtocol.injectMessageModule(mediator.message);
131
142
  }
143
+ if (input) {
144
+ var // 列表新增一个用户消息
145
+ _mediator_message;
146
+ (_mediator_message = mediator.message) === null || _mediator_message === void 0 ? void 0 : _mediator_message.list.value.push({
147
+ role: MessageRole.User,
148
+ content: input,
149
+ status: MessageStatus.Complete,
150
+ sessionCode
151
+ });
152
+ }
132
153
  // 事件代理
133
154
  const onDone = ()=>{
134
155
  var _usedProtocol_onDone;
135
156
  isChatting.value = false;
136
157
  (_usedProtocol_onDone = usedProtocol.onDone) === null || _usedProtocol_onDone === void 0 ? void 0 : _usedProtocol_onDone.call(usedProtocol);
158
+ if (input) {
159
+ var // 刷新列表,获取前端 mock message 的 id,并更新到列表中
160
+ _mediator_http_message, _mediator_http;
161
+ (_mediator_http = mediator.http) === null || _mediator_http === void 0 ? void 0 : (_mediator_http_message = _mediator_http.message) === null || _mediator_http_message === void 0 ? void 0 : _mediator_http_message.getMessages(sessionCode).then((res)=>{
162
+ var _mediator_message;
163
+ const lastUserMessage = (_mediator_message = mediator.message) === null || _mediator_message === void 0 ? void 0 : _mediator_message.list.value.findLast((item)=>item.role === MessageRole.User);
164
+ const lastApiUserMessage = res.findLast((item)=>item.role === MessageRole.User);
165
+ lastUserMessage.id = lastApiUserMessage.id;
166
+ });
167
+ }
137
168
  };
138
169
  const onError = (error)=>{
139
170
  var _usedProtocol_onError;
@@ -156,8 +187,11 @@ import { SessionStatus } from '../session/type.ts.js';
156
187
  method: 'POST',
157
188
  data: {
158
189
  session_code: sessionCode,
190
+ resume,
191
+ input,
159
192
  execute_kwargs: {
160
- stream: true
193
+ stream: true,
194
+ persist_input: !!input
161
195
  }
162
196
  },
163
197
  controller: abortController,
@@ -167,7 +201,7 @@ import { SessionStatus } from '../session/type.ts.js';
167
201
  onStart
168
202
  }, config));
169
203
  });
170
- return function streamRequest(sessionCode, url, config) {
204
+ return function streamRequest(_) {
171
205
  return _ref.apply(this, arguments);
172
206
  };
173
207
  }();
@@ -191,7 +225,11 @@ import { SessionStatus } from '../session/type.ts.js';
191
225
  property
192
226
  }));
193
227
  // 发起聊天
194
- streamRequest(sessionCode, url, config);
228
+ streamRequest({
229
+ sessionCode,
230
+ url,
231
+ config
232
+ });
195
233
  });
196
234
  return function chat(userInput, sessionCode, url, config, property) {
197
235
  return _ref.apply(this, arguments);
@@ -206,7 +244,43 @@ import { SessionStatus } from '../session/type.ts.js';
206
244
  */ const resumeStreamingChat = (sessionCode, url, config)=>{
207
245
  var _mediator_session_current_value, _mediator_session;
208
246
  if (((_mediator_session = mediator.session) === null || _mediator_session === void 0 ? void 0 : (_mediator_session_current_value = _mediator_session.current.value) === null || _mediator_session_current_value === void 0 ? void 0 : _mediator_session_current_value.status) === SessionStatus.Running) {
209
- streamRequest(sessionCode, url, config);
247
+ streamRequest({
248
+ sessionCode,
249
+ url,
250
+ config
251
+ });
252
+ }
253
+ };
254
+ /**
255
+ * 轮询接口,判断是否可以继续聊天
256
+ * @param sessionCode - 会话编码
257
+ * @returns 是否可以继续聊天
258
+ */ const pollResumeSession = (sessionCode)=>{
259
+ var _mediator_message, _lastMessage_content_outcome, _lastMessage_content, _lastMessage_content_outcome_interrupts, _lastMessage_content_outcome1, _lastMessage_content1;
260
+ const lastMessage = (_mediator_message = mediator.message) === null || _mediator_message === void 0 ? void 0 : _mediator_message.list.value.at(-1);
261
+ const isInterruptMessage = (lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.role) === MessageRole.Interrupt;
262
+ const isTicketPending = (lastMessage === null || lastMessage === void 0 ? void 0 : (_lastMessage_content = lastMessage.content) === null || _lastMessage_content === void 0 ? void 0 : (_lastMessage_content_outcome = _lastMessage_content.outcome) === null || _lastMessage_content_outcome === void 0 ? void 0 : _lastMessage_content_outcome.type) === RunFinishedOutcomeType.Interrupt && (lastMessage === null || lastMessage === void 0 ? void 0 : (_lastMessage_content1 = lastMessage.content) === null || _lastMessage_content1 === void 0 ? void 0 : (_lastMessage_content_outcome1 = _lastMessage_content1.outcome) === null || _lastMessage_content_outcome1 === void 0 ? void 0 : (_lastMessage_content_outcome_interrupts = _lastMessage_content_outcome1.interrupts) === null || _lastMessage_content_outcome_interrupts === void 0 ? void 0 : _lastMessage_content_outcome_interrupts.some((interrupt)=>{
263
+ var _interrupt_metadata_ticket, _interrupt_metadata;
264
+ return ((_interrupt_metadata = interrupt.metadata) === null || _interrupt_metadata === void 0 ? void 0 : (_interrupt_metadata_ticket = _interrupt_metadata.ticket) === null || _interrupt_metadata_ticket === void 0 ? void 0 : _interrupt_metadata_ticket.status) === ApprovalInterruptTicketStatus.Pending;
265
+ }));
266
+ if (isInterruptMessage && isTicketPending) {
267
+ setTimeout(()=>{
268
+ var _mediator_session_current_value, _mediator_session_current, _mediator_session, // 轮询接口,判断是否可以继续聊天
269
+ _mediator_http;
270
+ // 如果会话不匹配,则不继续轮询
271
+ if (sessionCode !== ((_mediator_session = mediator.session) === null || _mediator_session === void 0 ? void 0 : (_mediator_session_current = _mediator_session.current) === null || _mediator_session_current === void 0 ? void 0 : (_mediator_session_current_value = _mediator_session_current.value) === null || _mediator_session_current_value === void 0 ? void 0 : _mediator_session_current_value.sessionCode)) return;
272
+ (_mediator_http = mediator.http) === null || _mediator_http === void 0 ? void 0 : _mediator_http.session.isResumeSession(sessionCode).then((res)=>{
273
+ if (res) {
274
+ // 可以继续聊天,重新发起聊天
275
+ streamRequest({
276
+ sessionCode
277
+ });
278
+ } else {
279
+ // 不可以继续聊天,继续轮询
280
+ pollResumeSession(sessionCode);
281
+ }
282
+ });
283
+ }, 30000);
210
284
  }
211
285
  };
212
286
  /**
@@ -269,7 +343,11 @@ import { SessionStatus } from '../session/type.ts.js';
269
343
  property: originalProperty
270
344
  }));
271
345
  // 6. 立即发起流式请求(不等待删除和创建的 API 完成)
272
- streamRequest(sessionCode, url, config);
346
+ streamRequest({
347
+ sessionCode,
348
+ url,
349
+ config
350
+ });
273
351
  // 7. 在后台等待 API 完成,处理可能的错误
274
352
  Promise.all([
275
353
  deletePromise,
@@ -299,6 +377,8 @@ import { SessionStatus } from '../session/type.ts.js';
299
377
  abortChat,
300
378
  stopChat,
301
379
  getAgentInfo,
302
- reset
380
+ reset,
381
+ pollResumeSession,
382
+ userOperationStreamRequest
303
383
  };
304
384
  };
@@ -43,6 +43,10 @@ export declare class AGUIProtocol implements ISSEProtocol {
43
43
  * 自定义事件 处理流程编排任务开始
44
44
  */
45
45
  handleFlowAgentStartCustomEvent(event: ICustomEvent): void;
46
+ /**
47
+ * 自定义事件 处理流程编排任务更新
48
+ */
49
+ handleFlowAgentUpdateCustomEvent(event: ICustomEvent): void;
46
50
  /**
47
51
  * 自定义事件 处理意图识别结束
48
52
  */
@@ -80,7 +84,7 @@ export declare class AGUIProtocol implements ISSEProtocol {
80
84
  /**
81
85
  * 处理运行完成事件
82
86
  */
83
- handleRunFinishedEvent(_event: IRunFinishedEvent): void;
87
+ handleRunFinishedEvent(event: IRunFinishedEvent): void;
84
88
  /**
85
89
  * 处理运行开始事件
86
90
  */
@@ -105,6 +109,10 @@ export declare class AGUIProtocol implements ISSEProtocol {
105
109
  * 自定义事件 处理临时消息,转换为 AI 文本消息
106
110
  */
107
111
  handleTempMessageCustomEvent(event: ICustomEvent): void;
112
+ /**
113
+ * 自定义事件 处理审批结果
114
+ */
115
+ handleApprovalResultCustomEvent(event: ICustomEvent): void;
108
116
  /**
109
117
  * 处理文本消息块事件
110
118
  */
@@ -37,7 +37,7 @@
37
37
  }
38
38
  import { transferMessageApi2Message } from '../http/transform/index.ts.js';
39
39
  import { ActivityType, MessageRole, MessageStatus, MessageType } from '../message/index.ts.js';
40
- import { CustomEventName, EventType, FlowTaskState } from './type.ts.js';
40
+ import { CustomEventName, EventType, FlowTaskState, RunFinishedOutcomeType } from './type.ts.js';
41
41
  /**
42
42
  * AGUI 协议
43
43
  * @param message - 消息模块
@@ -81,6 +81,12 @@ import { CustomEventName, EventType, FlowTaskState } from './type.ts.js';
81
81
  case CustomEventName.TempMessage:
82
82
  this.handleTempMessageCustomEvent(event);
83
83
  break;
84
+ case CustomEventName.ApprovalResult:
85
+ this.handleApprovalResultCustomEvent(event);
86
+ break;
87
+ case CustomEventName.FlowAgentUpdate:
88
+ this.handleFlowAgentUpdateCustomEvent(event);
89
+ break;
84
90
  default:
85
91
  break;
86
92
  }
@@ -127,6 +133,20 @@ import { CustomEventName, EventType, FlowTaskState } from './type.ts.js';
127
133
  });
128
134
  }
129
135
  /**
136
+ * 自定义事件 处理流程编排任务更新
137
+ */ handleFlowAgentUpdateCustomEvent(event) {
138
+ const value = event.value;
139
+ this.messageModule.list.value.forEach((item)=>{
140
+ if (item.role === MessageRole.Activity && item.activityType === ActivityType.FlowAgent) {
141
+ const isSameTask = item.content[0].task_id === value[0].task_id;
142
+ // 通过第一个 task_id 判断是否是同一个任务,是的话直接更新消息内容
143
+ if (isSameTask) {
144
+ item.content = value;
145
+ }
146
+ }
147
+ });
148
+ }
149
+ /**
130
150
  * 自定义事件 处理意图识别结束
131
151
  */ handleKnowledgeRagEndCustomEvent(_event) {
132
152
  const message = this.messageModule.getCurrentLoadingMessage();
@@ -206,11 +226,24 @@ import { CustomEventName, EventType, FlowTaskState } from './type.ts.js';
206
226
  }
207
227
  /**
208
228
  * 处理运行完成事件
209
- */ handleRunFinishedEvent(_event) {
229
+ */ handleRunFinishedEvent(event) {
230
+ var _event_outcome, _event_outcome1;
210
231
  const message = this.messageModule.getCurrentLoadingMessage();
211
232
  if (message) {
212
233
  message.status = MessageStatus.Complete;
213
234
  }
235
+ // 如果是中断消息,则创建一个中断消息
236
+ if (((_event_outcome = event.outcome) === null || _event_outcome === void 0 ? void 0 : _event_outcome.type) === RunFinishedOutcomeType.Interrupt) {
237
+ this.messageModule.plusMessage({
238
+ role: MessageRole.Interrupt,
239
+ content: event,
240
+ status: MessageStatus.Pending
241
+ });
242
+ }
243
+ // 二次返回,直接更新消息内容
244
+ if (((_event_outcome1 = event.outcome) === null || _event_outcome1 === void 0 ? void 0 : _event_outcome1.type) === RunFinishedOutcomeType.Success) {
245
+ message.content = event;
246
+ }
214
247
  }
215
248
  /**
216
249
  * 处理运行开始事件
@@ -249,6 +282,16 @@ import { CustomEventName, EventType, FlowTaskState } from './type.ts.js';
249
282
  });
250
283
  }
251
284
  /**
285
+ * 自定义事件 处理审批结果
286
+ */ handleApprovalResultCustomEvent(event) {
287
+ const value = event.value;
288
+ const message = this.messageModule.getCurrentLoadingMessage();
289
+ if (message) {
290
+ message.content = value;
291
+ message.status = MessageStatus.Complete;
292
+ }
293
+ }
294
+ /**
252
295
  * 处理文本消息块事件
253
296
  */ handleTextMessageChunkEvent(event) {
254
297
  const message = this.messageModule.getCurrentLoadingMessage();
@@ -1,14 +1,17 @@
1
1
  import { type IMessageApi, type MessageRole, type MessageStatus } from '../message/type';
2
+ import type { JSONSchema4 } from 'json-schema';
2
3
  export declare enum CustomEventName {
3
4
  FlowAgentEnd = "flow_agent_end",
4
5
  FlowAgentResult = "flow_agent_result",
5
6
  FlowAgentStart = "flow_agent_start",
7
+ FlowAgentUpdate = "flow_agent_update",
6
8
  KnowledgeRagEnd = "knowledge_rag_end",
7
9
  KnowledgeRagResult = "knowledge_rag_result",
8
10
  KnowledgeRagStart = "knowledge_rag_start",
9
11
  KnowledgeRagTextContent = "knowledge_rag_text_content",
10
12
  ReferenceDocument = "reference_document",
11
- TempMessage = "temp_message"
13
+ TempMessage = "temp_message",
14
+ ApprovalResult = "approval_result"
12
15
  }
13
16
  export declare enum EventType {
14
17
  ActivityDelta = "ACTIVITY_DELTA",
@@ -40,42 +43,51 @@ export declare enum EventType {
40
43
  }
41
44
  /** BKFlow 收敛后的节点状态 - task.node 的状态枚举 */
42
45
  export declare enum FlowNodeState {
43
- /** 失败 */
44
46
  Failed = "failed",
45
- /** 执行中 */
46
47
  Running = "running",
47
- /** 成功 */
48
48
  Success = "success",
49
- /** 挂起 */
50
49
  Suspended = "suspended"
51
50
  }
52
51
  /** BKFLOW 原始状态 - task 的状态枚举 */
53
52
  export declare enum FlowTaskState {
54
- /** 执行中 */
55
53
  Blocked = "BLOCKED",
56
- /** 执行中 */
57
54
  Created = "CREATED",
58
- /** 失败 */
59
55
  Failed = "FAILED",
60
- /** 成功 */
61
56
  Finished = "FINISHED",
62
- /** 执行中 */
63
57
  LoopReady = "LOOP_READY",
64
- /** 执行中 */
65
58
  Ready = "READY",
66
- /** 失败 */
67
59
  Revoked = "REVOKED",
68
- /** 失败 */
69
60
  RollBackFailed = "ROLL_BACK_FAILED",
70
- /** 执行中 */
71
61
  RollBackSuccess = "ROLL_BACK_SUCCESS",
72
- /** 执行中 */
73
62
  RollingBack = "ROLLING_BACK",
74
- /** 执行中 */
75
63
  Running = "RUNNING",
76
- /** 挂起 */
77
64
  Suspended = "SUSPENDED"
78
65
  }
66
+ /** 运行完成结果 */
67
+ export declare enum RunFinishedOutcomeType {
68
+ Success = "success",
69
+ Interrupt = "interrupt"
70
+ }
71
+ /** 审批状态 */
72
+ export declare enum ApprovalInterruptTicketStatus {
73
+ Abandoned = "abandoned",
74
+ Approved = "approved",
75
+ Cancelled = "cancelled",
76
+ Draft = "draft",
77
+ Expired = "expired",
78
+ Rejected = "rejected",
79
+ Pending = "pending"
80
+ }
81
+ /** 中断原因 */
82
+ export declare enum InterruptReason {
83
+ AIDevToolApproval = "aidev:tool_approval",
84
+ UserQuestion = "aidev:user_question"
85
+ }
86
+ /** 恢复状态 */
87
+ export declare enum ResumeStatus {
88
+ Resolved = "resolved",
89
+ Cancelled = "cancelled"
90
+ }
79
91
  /**
80
92
  * Activity 代表 Agent 执行过程中的活动/动作/任务,可能包含结构化数据
81
93
  * 活动状态的增量更新
@@ -112,21 +124,21 @@ export interface IBaseEvent {
112
124
  export interface ICustomEvent extends IBaseEvent {
113
125
  name: CustomEventName;
114
126
  type: EventType.Custom;
115
- value: IFlowAgentEndCustomValue | IFlowAgentResultCustomValue | IFlowAgentStartCustomValue | IKnowledgeRagResultCustomValue | IKnowledgeRagTextContentCustomValue | IReferenceDocumentCustomValue | ITempMessageCustomValue;
127
+ value: IFlowAgentEndCustomValue | IFlowAgentResultCustomValue | IFlowAgentStartCustomValue | IKnowledgeRagResultCustomValue | IKnowledgeRagTextContentCustomValue | IReferenceDocumentCustomValue | ITempMessageCustomValue | IApprovalResultCustomValue;
116
128
  }
117
129
  export type IEvent = IActivityDeltaEvent | IActivitySnapshotEvent | ICustomEvent | IMessagesSnapshotEvent | IRawEvent | IRunErrorEvent | IRunFinishedEvent | IRunStartedEvent | IStateDeltaEvent | IStateSnapshotEvent | IStepFinishedEvent | IStepStartedEvent | ITextMessageChunkEvent | ITextMessageContentEvent | ITextMessageEndEvent | ITextMessageStartEvent | IThinkingEndEvent | IThinkingStartEvent | IThinkingTextMessageContentEvent | IThinkingTextMessageEndEvent | IThinkingTextMessageStartEvent | IToolCallArgsEvent | IToolCallChunkEvent | IToolCallEndEvent | IToolCallResultEvent | IToolCallStartEvent;
118
130
  export type IFlowAgentEndCustomValue = {
119
131
  task_outputs: string[];
120
132
  }[];
121
133
  export interface IFlowAgentNode {
122
- /** 耗时(s) */
123
134
  elapsed_time: number;
124
- /** 节点id */
125
135
  id: string;
126
- /** 节点名称 */
127
136
  name: string;
128
- /** 节点状态 */
129
137
  state: FlowNodeState;
138
+ retry: number;
139
+ skip: boolean;
140
+ retryable: boolean;
141
+ skippable: boolean;
130
142
  }
131
143
  export type IFlowAgentResultCustomValue = {
132
144
  nodes: Record<string, IFlowAgentNode>;
@@ -173,15 +185,66 @@ export interface IRunErrorEvent extends IBaseEvent {
173
185
  message: string;
174
186
  type: EventType.RunError;
175
187
  }
188
+ export interface IInterrupt<T extends InterruptReason, P extends Record<string, unknown>> {
189
+ id: string;
190
+ reason: T;
191
+ message?: string;
192
+ toolCallId?: string;
193
+ responseSchema?: JSONSchema4;
194
+ expiresAt?: string;
195
+ metadata?: P;
196
+ }
197
+ export type IApprovalInterrupt = IInterrupt<InterruptReason.AIDevToolApproval, {
198
+ ticket: {
199
+ approvers: string[];
200
+ sn: string;
201
+ status: ApprovalInterruptTicketStatus;
202
+ submit_time: string;
203
+ title: string;
204
+ url: string;
205
+ };
206
+ }>;
207
+ export type IUserQuestionInterrupt = IInterrupt<InterruptReason.UserQuestion, {
208
+ questions: {
209
+ header: string;
210
+ multiSelect?: boolean;
211
+ options?: {
212
+ description: string;
213
+ label: string;
214
+ }[];
215
+ question: string;
216
+ }[];
217
+ }>;
218
+ export interface IResume {
219
+ interruptId: string;
220
+ status: ResumeStatus;
221
+ payload: {
222
+ answers: {
223
+ answer: {
224
+ description: string;
225
+ label: string;
226
+ }[];
227
+ multiSelect?: boolean;
228
+ question: string;
229
+ }[];
230
+ };
231
+ }
232
+ export type IRunFinishedOutcome = {
233
+ type: RunFinishedOutcomeType.Success;
234
+ } | {
235
+ type: RunFinishedOutcomeType.Interrupt;
236
+ interrupts: Array<IApprovalInterrupt | IUserQuestionInterrupt>;
237
+ };
176
238
  /**
177
239
  * 标记 Agent 运行正常结束
178
240
  * 返回最终结果 result
179
241
  */
180
242
  export interface IRunFinishedEvent extends IBaseEvent {
181
- result?: unknown;
243
+ result?: IResume;
182
244
  runId: number;
183
245
  threadId: string;
184
246
  type: EventType.RunFinished;
247
+ outcome?: IRunFinishedOutcome;
185
248
  }
186
249
  /**
187
250
  * 标记一次完整的 Agent 执行开始
@@ -234,6 +297,7 @@ export interface ITempMessageCustomValue {
234
297
  message: string;
235
298
  status: MessageStatus;
236
299
  }
300
+ export type IApprovalResultCustomValue = IRunFinishedEvent;
237
301
  export interface ITextMessageChunkEvent extends IBaseEvent {
238
302
  delta?: string;
239
303
  messageId: string;
@@ -27,12 +27,14 @@
27
27
  CustomEventName["FlowAgentEnd"] = "flow_agent_end";
28
28
  CustomEventName["FlowAgentResult"] = "flow_agent_result";
29
29
  CustomEventName["FlowAgentStart"] = "flow_agent_start";
30
+ CustomEventName["FlowAgentUpdate"] = "flow_agent_update";
30
31
  CustomEventName["KnowledgeRagEnd"] = "knowledge_rag_end";
31
32
  CustomEventName["KnowledgeRagResult"] = "knowledge_rag_result";
32
33
  CustomEventName["KnowledgeRagStart"] = "knowledge_rag_start";
33
34
  CustomEventName["KnowledgeRagTextContent"] = "knowledge_rag_text_content";
34
35
  CustomEventName["ReferenceDocument"] = "reference_document";
35
36
  CustomEventName["TempMessage"] = "temp_message";
37
+ CustomEventName["ApprovalResult"] = "approval_result";
36
38
  })(CustomEventName || (CustomEventName = {}));
37
39
  export var EventType;
38
40
  (function(EventType) {
@@ -65,23 +67,48 @@ export var EventType;
65
67
  })(EventType || (EventType = {}));
66
68
  export var FlowNodeState;
67
69
  (function(FlowNodeState) {
68
- /** 失败 */ FlowNodeState["Failed"] = "failed";
69
- /** 执行中 */ FlowNodeState["Running"] = "running";
70
- /** 成功 */ FlowNodeState["Success"] = "success";
71
- /** 挂起 */ FlowNodeState["Suspended"] = "suspended";
70
+ FlowNodeState["Failed"] = "failed";
71
+ FlowNodeState["Running"] = "running";
72
+ FlowNodeState["Success"] = "success";
73
+ FlowNodeState["Suspended"] = "suspended";
72
74
  })(FlowNodeState || (FlowNodeState = {}));
73
75
  export var FlowTaskState;
74
76
  (function(FlowTaskState) {
75
- /** 执行中 */ FlowTaskState["Blocked"] = "BLOCKED";
76
- /** 执行中 */ FlowTaskState["Created"] = "CREATED";
77
- /** 失败 */ FlowTaskState["Failed"] = "FAILED";
78
- /** 成功 */ FlowTaskState["Finished"] = "FINISHED";
79
- /** 执行中 */ FlowTaskState["LoopReady"] = "LOOP_READY";
80
- /** 执行中 */ FlowTaskState["Ready"] = "READY";
81
- /** 失败 */ FlowTaskState["Revoked"] = "REVOKED";
82
- /** 失败 */ FlowTaskState["RollBackFailed"] = "ROLL_BACK_FAILED";
83
- /** 执行中 */ FlowTaskState["RollBackSuccess"] = "ROLL_BACK_SUCCESS";
84
- /** 执行中 */ FlowTaskState["RollingBack"] = "ROLLING_BACK";
85
- /** 执行中 */ FlowTaskState["Running"] = "RUNNING";
86
- /** 挂起 */ FlowTaskState["Suspended"] = "SUSPENDED";
77
+ FlowTaskState["Blocked"] = "BLOCKED";
78
+ FlowTaskState["Created"] = "CREATED";
79
+ FlowTaskState["Failed"] = "FAILED";
80
+ FlowTaskState["Finished"] = "FINISHED";
81
+ FlowTaskState["LoopReady"] = "LOOP_READY";
82
+ FlowTaskState["Ready"] = "READY";
83
+ FlowTaskState["Revoked"] = "REVOKED";
84
+ FlowTaskState["RollBackFailed"] = "ROLL_BACK_FAILED";
85
+ FlowTaskState["RollBackSuccess"] = "ROLL_BACK_SUCCESS";
86
+ FlowTaskState["RollingBack"] = "ROLLING_BACK";
87
+ FlowTaskState["Running"] = "RUNNING";
88
+ FlowTaskState["Suspended"] = "SUSPENDED";
87
89
  })(FlowTaskState || (FlowTaskState = {}));
90
+ export var RunFinishedOutcomeType;
91
+ (function(RunFinishedOutcomeType) {
92
+ RunFinishedOutcomeType["Success"] = "success";
93
+ RunFinishedOutcomeType["Interrupt"] = "interrupt";
94
+ })(RunFinishedOutcomeType || (RunFinishedOutcomeType = {}));
95
+ export var ApprovalInterruptTicketStatus;
96
+ (function(ApprovalInterruptTicketStatus) {
97
+ ApprovalInterruptTicketStatus["Abandoned"] = "abandoned";
98
+ ApprovalInterruptTicketStatus["Approved"] = "approved";
99
+ ApprovalInterruptTicketStatus["Cancelled"] = "cancelled";
100
+ ApprovalInterruptTicketStatus["Draft"] = "draft";
101
+ ApprovalInterruptTicketStatus["Expired"] = "expired";
102
+ ApprovalInterruptTicketStatus["Rejected"] = "rejected";
103
+ ApprovalInterruptTicketStatus["Pending"] = "pending";
104
+ })(ApprovalInterruptTicketStatus || (ApprovalInterruptTicketStatus = {}));
105
+ export var InterruptReason;
106
+ (function(InterruptReason) {
107
+ InterruptReason["AIDevToolApproval"] = "aidev:tool_approval";
108
+ InterruptReason["UserQuestion"] = "aidev:user_question";
109
+ })(InterruptReason || (InterruptReason = {}));
110
+ export var ResumeStatus;
111
+ (function(ResumeStatus) {
112
+ ResumeStatus["Resolved"] = "resolved";
113
+ ResumeStatus["Cancelled"] = "cancelled";
114
+ })(ResumeStatus || (ResumeStatus = {}));
@@ -31,17 +31,21 @@ export declare const useHttp: (options: IUseChatHelperOptions) => {
31
31
  uploadFile: (sessionCode: string, file: File, config?: import("./fetch").IRequestConfig) => Promise<{
32
32
  download_url?: string;
33
33
  }>;
34
+ isResumeSession: (sessionCode: string, config?: import("./fetch").IRequestConfig) => Promise<boolean>;
34
35
  };
35
36
  message: {
36
37
  getMessages: (sessionCode: string, limit?: number, config?: import("./fetch").IRequestConfig) => Promise<import("..").IMessage[]>;
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>;
38
+ plusMessage: (data: import("..").IMessage, config?: import("./fetch").IRequestConfig) => Promise<import("..").IActivityMessage | import("..").IAssistantMessage | import("..").IDeveloperMessage | import("..").IInterruptMessage | 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
+ modifyMessage: (data: import("..").IMessage, config?: import("./fetch").IRequestConfig) => Promise<import("..").IActivityMessage | import("..").IAssistantMessage | import("..").IDeveloperMessage | import("..").IInterruptMessage | 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
40
  deleteMessage: (id: string, config?: import("./fetch").IRequestConfig) => Promise<import("..").IMessage>;
40
41
  batchDeleteMessages: (ids: string[], config?: import("./fetch").IRequestConfig) => Promise<number>;
41
42
  shareMessages: (sessionCode: string, contentIds: string[], expiredAt?: number, config?: import("./fetch").IRequestConfig) => Promise<import("./module/message").IShareMessagesResponse>;
42
43
  stopChat: (sessionCode: string, config?: import("./fetch").IRequestConfig) => Promise<void>;
43
44
  getFlowAgentTaskInfo: (taskId: number, config?: import("./fetch").IRequestConfig) => Promise<unknown>;
44
45
  getFlowAgentTaskNodeInfo: (taskId: number, nodeId: string, config?: import("./fetch").IRequestConfig) => Promise<import("..").IFlowAgentTaskNodeInfo>;
46
+ retryFlowAgentTaskNode: (sessionCode: string, nodeId: string, taskId: number, config?: import("./fetch").IRequestConfig) => Promise<void>;
47
+ skipFlowAgentTaskNode: (sessionCode: string, nodeId: string, taskId: number, config?: import("./fetch").IRequestConfig) => Promise<void>;
48
+ userOperation: (sessionCode: string, operation: import("..").UserOperation, payload: import("..").IUserOperationPayload, config?: import("./fetch").IRequestConfig) => Promise<void>;
45
49
  };
46
50
  fetchClient: import("./fetch").FetchClient;
47
51
  };
@@ -28,17 +28,21 @@ export declare const useModule: (fetchClient: FetchClient) => {
28
28
  uploadFile: (sessionCode: string, file: File, config?: import("../fetch").IRequestConfig) => Promise<{
29
29
  download_url?: string;
30
30
  }>;
31
+ isResumeSession: (sessionCode: string, config?: import("../fetch").IRequestConfig) => Promise<boolean>;
31
32
  };
32
33
  message: {
33
34
  getMessages: (sessionCode: string, limit?: number, config?: import("../fetch").IRequestConfig) => Promise<import("../..").IMessage[]>;
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>;
35
+ plusMessage: (data: import("../..").IMessage, config?: import("../fetch").IRequestConfig) => Promise<import("../..").IActivityMessage | import("../..").IAssistantMessage | import("../..").IDeveloperMessage | import("../..").IInterruptMessage | 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
+ modifyMessage: (data: import("../..").IMessage, config?: import("../fetch").IRequestConfig) => Promise<import("../..").IActivityMessage | import("../..").IAssistantMessage | import("../..").IDeveloperMessage | import("../..").IInterruptMessage | 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
37
  deleteMessage: (id: string, config?: import("../fetch").IRequestConfig) => Promise<import("../..").IMessage>;
37
38
  batchDeleteMessages: (ids: string[], config?: import("../fetch").IRequestConfig) => Promise<number>;
38
39
  shareMessages: (sessionCode: string, contentIds: string[], expiredAt?: number, config?: import("../fetch").IRequestConfig) => Promise<import("./message").IShareMessagesResponse>;
39
40
  stopChat: (sessionCode: string, config?: import("../fetch").IRequestConfig) => Promise<void>;
40
41
  getFlowAgentTaskInfo: (taskId: number, config?: import("../fetch").IRequestConfig) => Promise<unknown>;
41
42
  getFlowAgentTaskNodeInfo: (taskId: number, nodeId: string, config?: import("../fetch").IRequestConfig) => Promise<import("../..").IFlowAgentTaskNodeInfo>;
43
+ retryFlowAgentTaskNode: (sessionCode: string, nodeId: string, taskId: number, config?: import("../fetch").IRequestConfig) => Promise<void>;
44
+ skipFlowAgentTaskNode: (sessionCode: string, nodeId: string, taskId: number, config?: import("../fetch").IRequestConfig) => Promise<void>;
45
+ userOperation: (sessionCode: string, operation: import("../..").UserOperation, payload: import("../..").IUserOperationPayload, config?: import("../fetch").IRequestConfig) => Promise<void>;
42
46
  };
43
47
  fetchClient: FetchClient;
44
48
  };
@@ -1,4 +1,4 @@
1
- import type { IFlowAgentTaskNodeInfo, IMessage } from '../../message/type';
1
+ import type { IFlowAgentTaskNodeInfo, IMessage, IUserOperationPayload, UserOperation } from '../../message/type';
2
2
  import type { FetchClient, IRequestConfig } from '../fetch';
3
3
  /**
4
4
  * 分享消息接口返回数据
@@ -20,12 +20,15 @@ export interface IShareMessagesResponse {
20
20
  */
21
21
  export declare const useMessage: (fetchClient: FetchClient) => {
22
22
  getMessages: (sessionCode: string, limit?: number, config?: IRequestConfig) => Promise<IMessage[]>;
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>;
23
+ plusMessage: (data: IMessage, config?: IRequestConfig) => Promise<import("../../message/type").IActivityMessage | import("../../message/type").IAssistantMessage | import("../../message/type").IDeveloperMessage | import("../../message/type").IInterruptMessage | 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").IInterruptMessage | 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
25
  deleteMessage: (id: string, config?: IRequestConfig) => Promise<IMessage>;
26
26
  batchDeleteMessages: (ids: string[], config?: IRequestConfig) => Promise<number>;
27
27
  shareMessages: (sessionCode: string, contentIds: string[], expiredAt?: number, config?: IRequestConfig) => Promise<IShareMessagesResponse>;
28
28
  stopChat: (sessionCode: string, config?: IRequestConfig) => Promise<void>;
29
29
  getFlowAgentTaskInfo: (taskId: number, config?: IRequestConfig) => Promise<unknown>;
30
30
  getFlowAgentTaskNodeInfo: (taskId: number, nodeId: string, config?: IRequestConfig) => Promise<IFlowAgentTaskNodeInfo>;
31
+ retryFlowAgentTaskNode: (sessionCode: string, nodeId: string, taskId: number, config?: IRequestConfig) => Promise<void>;
32
+ skipFlowAgentTaskNode: (sessionCode: string, nodeId: string, taskId: number, config?: IRequestConfig) => Promise<void>;
33
+ userOperation: (sessionCode: string, operation: UserOperation, payload: IUserOperationPayload, config?: IRequestConfig) => Promise<void>;
31
34
  };