@cicctencent/agent-core 0.1.72 → 0.1.73

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.
@@ -14,6 +14,10 @@ export declare class InteractionService {
14
14
  private waiters;
15
15
  private defaultTimeoutMs;
16
16
  constructor(store: InteractionStore, defaultTimeoutMs?: number);
17
+ /**
18
+ * 清理 waiter:清除超时和轮询定时器,从 map 中删除并返回
19
+ */
20
+ private clearWaiter;
17
21
  /**
18
22
  * 创建交互请求并返回 Promise,等待用户回答
19
23
  */
@@ -32,6 +36,8 @@ export declare class InteractionService {
32
36
  timeoutMs?: number;
33
37
  /** 创建请求后的回调(用于发送 SSE 事件通知前端) */
34
38
  emit?: (request: InteractionRequest) => void;
39
+ /** 会话/工具中止信号 */
40
+ abortSignal?: AbortSignal;
35
41
  /** 扩展字段(如 permissionId 用于权限审批联动) */
36
42
  meta?: Record<string, unknown>;
37
43
  }): Promise<InteractionAnswer>;
@@ -57,10 +63,14 @@ export declare class InteractionService {
57
63
  }): InteractionRequest;
58
64
  /**
59
65
  * 回答交互请求
66
+ * 先更新 store(跨进程可见),再尝试 resolve 本地 waiter。
67
+ * 即使本地 waiter 不存在(跨进程场景),store 已更新,轮询方会检测到。
60
68
  */
61
69
  answerInteraction(requestId: string, answer: InteractionAnswer): boolean;
62
70
  /**
63
71
  * 取消交互请求
72
+ * 先更新 store(跨进程可见),再尝试 reject 本地 waiter。
73
+ * 即使本地 waiter 不存在(跨进程场景),store 已更新,轮询方会检测到。
64
74
  */
65
75
  cancelInteraction(requestId: string): boolean;
66
76
  /**
@@ -75,6 +85,10 @@ export declare class InteractionService {
75
85
  * 取消会话下所有 pending 请求
76
86
  */
77
87
  cancelAllForSession(sessionId: string): void;
88
+ /**
89
+ * 取消线程下所有 pending 请求(包含使用子会话 ID 创建的交互)
90
+ */
91
+ cancelAllForThread(threadId: string | number): void;
78
92
  /**
79
93
  * 清理已完成/已过期/已取消的请求
80
94
  */
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/interaction/service.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAEjB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAepB;;;;;;;;;GASG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,gBAAgB,CAAS;gBAErB,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,GAAE,MAAsB;IAK7E;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE;QACzB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,MAAM,EAAE,iBAAiB,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,eAAe,CAAC;QACtB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACxC,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,gCAAgC;QAChC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;QAC7C,oCAAoC;QACpC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAsB9B;;;OAGG;IACH,iBAAiB,CAAC,MAAM,EAAE;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,MAAM,EAAE,iBAAiB,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,eAAe,CAAC;QACtB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACxC,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,oCAAoC;QACpC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,GAAG,kBAAkB;IA2BtB;;OAEG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO;IAqBxE;;OAEG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAiB7C;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAIpD;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAI7D;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAO5C;;OAEG;IACH,OAAO,CAAC,WAAW,GAAE,MAAuB,GAAG,MAAM;CA4BtD"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/interaction/service.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAwBpB;;;;;;;;;GASG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,gBAAgB,CAAS;gBAErB,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,GAAE,MAAsB;IAK7E;;OAEG;IACH,OAAO,CAAC,WAAW;IAanB;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE;QACzB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,MAAM,EAAE,iBAAiB,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,eAAe,CAAC;QACtB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACxC,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,gCAAgC;QAChC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;QAC7C,gBAAgB;QAChB,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,oCAAoC;QACpC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA0E9B;;;OAGG;IACH,iBAAiB,CAAC,MAAM,EAAE;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,MAAM,EAAE,iBAAiB,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,eAAe,CAAC;QACtB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACxC,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,oCAAoC;QACpC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,GAAG,kBAAkB;IA2BtB;;;;OAIG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO;IAiBxE;;;;OAIG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAgB7C;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAIpD;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAI7D;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAO5C;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAOnD;;OAEG;IACH,OAAO,CAAC,WAAW,GAAE,MAAuB,GAAG,MAAM;CAmCtD"}
@@ -5,6 +5,8 @@
5
5
  // ============================================================
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.InteractionService = void 0;
8
+ /** 跨进程轮询间隔(毫秒) */
9
+ const CROSS_PROCESS_POLL_INTERVAL_MS = 1000;
8
10
  /**
9
11
  * InteractionService — 管理用户交互请求的生命周期
10
12
  *
@@ -23,19 +25,85 @@ class InteractionService {
23
25
  this.store = store;
24
26
  this.defaultTimeoutMs = defaultTimeoutMs;
25
27
  }
28
+ /**
29
+ * 清理 waiter:清除超时和轮询定时器,从 map 中删除并返回
30
+ */
31
+ clearWaiter(requestId) {
32
+ const waiter = this.waiters.get(requestId);
33
+ if (waiter) {
34
+ clearTimeout(waiter.timeout);
35
+ clearInterval(waiter.pollInterval);
36
+ if (waiter.abortSignal && waiter.abortListener) {
37
+ waiter.abortSignal.removeEventListener('abort', waiter.abortListener);
38
+ }
39
+ this.waiters.delete(requestId);
40
+ }
41
+ return waiter;
42
+ }
26
43
  /**
27
44
  * 创建交互请求并返回 Promise,等待用户回答
28
45
  */
29
46
  requestInteraction(params) {
30
47
  const request = this.createInteraction(params);
31
48
  return new Promise((resolve, reject) => {
49
+ let settled = false;
50
+ // 包装 resolve/reject:调用时自动清理 timeout、pollInterval 和 abortListener,保证资源一定释放
51
+ const safeResolve = (answer) => {
52
+ if (settled)
53
+ return;
54
+ settled = true;
55
+ this.clearWaiter(request.requestId);
56
+ resolve(answer);
57
+ };
58
+ const safeReject = (reason) => {
59
+ if (settled)
60
+ return;
61
+ settled = true;
62
+ this.clearWaiter(request.requestId);
63
+ reject(reason);
64
+ };
65
+ if (params.abortSignal?.aborted) {
66
+ this.store.update(request.requestId, { status: 'cancelled' });
67
+ safeReject(new Error(`Interaction request ${request.requestId} was cancelled by abort`));
68
+ return;
69
+ }
32
70
  const timeout = setTimeout(() => {
33
- this.waiters.delete(request.requestId);
34
- request.status = 'expired';
35
71
  this.store.update(request.requestId, { status: 'expired' });
36
- reject(new Error(`Interaction request ${request.requestId} timed out after ${request.timeoutMs}ms`));
72
+ safeReject(new Error(`Interaction request ${request.requestId} timed out after ${request.timeoutMs}ms`));
37
73
  }, request.timeoutMs);
38
- this.waiters.set(request.requestId, { resolve, reject, timeout });
74
+ // 跨进程轮询:定期检测 store 中状态变化(其他进程 answer/cancel 后触发)
75
+ const pollInterval = setInterval(() => {
76
+ const current = this.store.get(request.requestId);
77
+ if (!current)
78
+ return; // 可能还未写入,忽略
79
+ if (current.status === 'answered') {
80
+ safeResolve(current.answer ?? { requestId: request.requestId, action: 'submit' });
81
+ }
82
+ else if (current.status === 'cancelled') {
83
+ safeReject(new Error(`Interaction request ${request.requestId} was cancelled`));
84
+ }
85
+ else if (current.status === 'expired') {
86
+ safeReject(new Error(`Interaction request ${request.requestId} expired`));
87
+ }
88
+ }, CROSS_PROCESS_POLL_INTERVAL_MS);
89
+ const abortListener = params.abortSignal
90
+ ? () => {
91
+ this.store.update(request.requestId, { status: 'cancelled' });
92
+ safeReject(new Error(`Interaction request ${request.requestId} was cancelled by abort`));
93
+ }
94
+ : undefined;
95
+ if (params.abortSignal && abortListener) {
96
+ params.abortSignal.addEventListener('abort', abortListener, { once: true });
97
+ }
98
+ // 存入 waiter 的是 safeResolve/safeReject,外部调用时自动清理定时器
99
+ this.waiters.set(request.requestId, {
100
+ resolve: safeResolve,
101
+ reject: safeReject,
102
+ timeout,
103
+ pollInterval,
104
+ abortSignal: params.abortSignal,
105
+ abortListener,
106
+ });
39
107
  // 通知前端:创建请求后立即触发 emit 回调,将 interaction-request 事件推送到 SSE,
40
108
  // 否则前端永远收不到交互请求,用户无法作答,最终工具执行超时。
41
109
  try {
@@ -76,40 +144,39 @@ class InteractionService {
76
144
  }
77
145
  /**
78
146
  * 回答交互请求
147
+ * 先更新 store(跨进程可见),再尝试 resolve 本地 waiter。
148
+ * 即使本地 waiter 不存在(跨进程场景),store 已更新,轮询方会检测到。
79
149
  */
80
150
  answerInteraction(requestId, answer) {
81
151
  const request = this.store.get(requestId);
82
152
  if (!request || request.status !== 'pending')
83
153
  return false;
154
+ // 先更新 store(跨进程可见),包含 answer 数据供轮询方读取
155
+ this.store.update(requestId, { status: 'answered', answeredAt: Date.now(), answer });
156
+ // 尝试 resolve 本地 waiter(同进程立即响应);safeResolve 会自动清理定时器
84
157
  const waiter = this.waiters.get(requestId);
85
- if (!waiter)
86
- return false;
87
- // 清除超时
88
- clearTimeout(waiter.timeout);
89
- this.waiters.delete(requestId);
90
- // 更新状态
91
- request.status = 'answered';
92
- request.answeredAt = Date.now();
93
- this.store.update(requestId, { status: 'answered', answeredAt: Date.now() });
94
- // 解析 Promise
95
- waiter.resolve(answer);
158
+ if (waiter) {
159
+ waiter.resolve(answer);
160
+ }
161
+ // 即使没有本地 waiter(跨进程场景),store 已更新,轮询方会检测到
96
162
  return true;
97
163
  }
98
164
  /**
99
165
  * 取消交互请求
166
+ * 先更新 store(跨进程可见),再尝试 reject 本地 waiter。
167
+ * 即使本地 waiter 不存在(跨进程场景),store 已更新,轮询方会检测到。
100
168
  */
101
169
  cancelInteraction(requestId) {
102
170
  const request = this.store.get(requestId);
103
171
  if (!request || request.status !== 'pending')
104
172
  return false;
105
- const waiter = this.waiters.get(requestId);
106
- if (!waiter)
107
- return false;
108
- clearTimeout(waiter.timeout);
109
- this.waiters.delete(requestId);
110
- request.status = 'cancelled';
173
+ // 先更新 store
111
174
  this.store.update(requestId, { status: 'cancelled' });
112
- waiter.reject(new Error(`Interaction request ${requestId} was cancelled`));
175
+ // 尝试 reject 本地 waiter;safeReject 会自动清理定时器
176
+ const waiter = this.waiters.get(requestId);
177
+ if (waiter) {
178
+ waiter.reject(new Error(`Interaction request ${requestId} was cancelled`));
179
+ }
113
180
  return true;
114
181
  }
115
182
  /**
@@ -133,6 +200,15 @@ class InteractionService {
133
200
  this.cancelInteraction(req.requestId);
134
201
  }
135
202
  }
203
+ /**
204
+ * 取消线程下所有 pending 请求(包含使用子会话 ID 创建的交互)
205
+ */
206
+ cancelAllForThread(threadId) {
207
+ const pending = this.store.listPendingByThread(threadId);
208
+ for (const req of pending) {
209
+ this.cancelInteraction(req.requestId);
210
+ }
211
+ }
136
212
  /**
137
213
  * 清理已完成/已过期/已取消的请求
138
214
  */
@@ -140,25 +216,32 @@ class InteractionService {
140
216
  let count = 0;
141
217
  const now = Date.now();
142
218
  // 遍历所有 waiter(它们对应的都是 pending 请求)
143
- for (const [requestId, waiter] of this.waiters) {
219
+ for (const [requestId] of this.waiters) {
144
220
  const request = this.store.get(requestId);
145
221
  if (!request) {
146
- clearTimeout(waiter.timeout);
147
- this.waiters.delete(requestId);
222
+ // 请求已被删除,reject 并自动清理定时器
223
+ this.waiters.get(requestId)?.reject(new Error(`Interaction request ${requestId} not found during cleanup`));
224
+ count++;
225
+ continue;
226
+ }
227
+ if (request.status === 'answered') {
228
+ this.waiters.get(requestId)?.resolve(request.answer ?? { requestId, action: 'submit' });
229
+ count++;
230
+ continue;
231
+ }
232
+ if (request.status === 'cancelled') {
233
+ this.waiters.get(requestId)?.reject(new Error(`Interaction request ${requestId} was cancelled`));
148
234
  count++;
149
235
  continue;
150
236
  }
151
- if (request.status !== 'pending') {
152
- clearTimeout(waiter.timeout);
153
- this.waiters.delete(requestId);
237
+ if (request.status === 'expired') {
238
+ this.waiters.get(requestId)?.reject(new Error(`Interaction request ${requestId} expired`));
154
239
  count++;
155
240
  continue;
156
241
  }
157
242
  if (now - request.createdAt > olderThanMs) {
158
- clearTimeout(waiter.timeout);
159
- this.waiters.delete(requestId);
160
243
  this.store.update(requestId, { status: 'expired' });
161
- waiter.reject(new Error(`Interaction request ${requestId} expired during cleanup`));
244
+ this.waiters.get(requestId)?.reject(new Error(`Interaction request ${requestId} expired during cleanup`));
162
245
  count++;
163
246
  }
164
247
  }
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/interaction/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/interaction/service.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export declare class InMemoryInteractionStore implements InteractionStore {
4
4
  save(request: InteractionRequest): void;
5
5
  get(requestId: string): InteractionRequest | undefined;
6
6
  listPending(sessionId: string): InteractionRequest[];
7
+ listPendingByThread(threadId: string | number): InteractionRequest[];
7
8
  update(requestId: string, updates: Partial<InteractionRequest>): void;
8
9
  delete(requestId: string): void;
9
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/interaction/store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEvE,qBAAa,wBAAyB,YAAW,gBAAgB;IAC/D,OAAO,CAAC,QAAQ,CAAyC;IAEzD,IAAI,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAIvC,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAKtD,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAUpD,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI;IAOrE,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;CAGhC"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/interaction/store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEvE,qBAAa,wBAAyB,YAAW,gBAAgB;IAC/D,OAAO,CAAC,QAAQ,CAAyC;IAEzD,IAAI,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAIvC,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAKtD,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAUpD,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,kBAAkB,EAAE;IAWpE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI;IAOrE,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;CAGhC"}
@@ -22,6 +22,16 @@ class InMemoryInteractionStore {
22
22
  }
23
23
  return results.sort((a, b) => b.createdAt - a.createdAt);
24
24
  }
25
+ listPendingByThread(threadId) {
26
+ const normalizedThreadId = String(threadId);
27
+ const results = [];
28
+ for (const r of this.requests.values()) {
29
+ if (r.threadId != null && String(r.threadId) === normalizedThreadId && r.status === 'pending') {
30
+ results.push({ ...r });
31
+ }
32
+ }
33
+ return results.sort((a, b) => b.createdAt - a.createdAt);
34
+ }
25
35
  update(requestId, updates) {
26
36
  const existing = this.requests.get(requestId);
27
37
  if (existing) {
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/interaction/store.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,kCAAkC;AAClC,+DAA+D;;;AAI/D,MAAa,wBAAwB;IAC3B,QAAQ,GAAG,IAAI,GAAG,EAA8B,CAAC;IAEzD,IAAI,CAAC,OAA2B;QAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,GAAG,CAAC,SAAiB;QACnB,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAClC,CAAC;IAED,WAAW,CAAC,SAAiB;QAC3B,MAAM,OAAO,GAAyB,EAAE,CAAC;QACzC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACxD,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,CAAC,SAAiB,EAAE,OAAoC;QAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,MAAM,CAAC,SAAiB;QACtB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;CACF;AAhCD,4DAgCC"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/interaction/store.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,kCAAkC;AAClC,+DAA+D;;;AAI/D,MAAa,wBAAwB;IAC3B,QAAQ,GAAG,IAAI,GAAG,EAA8B,CAAC;IAEzD,IAAI,CAAC,OAA2B;QAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,GAAG,CAAC,SAAiB;QACnB,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAClC,CAAC;IAED,WAAW,CAAC,SAAiB;QAC3B,MAAM,OAAO,GAAyB,EAAE,CAAC;QACzC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACxD,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;IAED,mBAAmB,CAAC,QAAyB;QAC3C,MAAM,kBAAkB,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAyB,EAAE,CAAC;QACzC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,kBAAkB,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC9F,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,CAAC,SAAiB,EAAE,OAAoC;QAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,MAAM,CAAC,SAAiB;QACtB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;CACF;AA3CD,4DA2CC"}
@@ -51,6 +51,8 @@ export interface InteractionRequest {
51
51
  createdAt: number;
52
52
  /** 回答时间(毫秒时间戳) */
53
53
  answeredAt?: number;
54
+ /** 用户回答(answered 状态时存在,跨进程轮询方通过此字段获取答案) */
55
+ answer?: InteractionAnswer;
54
56
  /** 扩展字段(上层可附加任意数据,如 permissionId 用于权限审批联动) */
55
57
  meta?: Record<string, unknown>;
56
58
  }
@@ -68,7 +70,7 @@ export interface InteractionAnswer {
68
70
  /** 交互请求事件(SSE 发送给前端) */
69
71
  export interface InteractionRequestEvent {
70
72
  type: 'interaction-request';
71
- data: Omit<InteractionRequest, 'status' | 'createdAt' | 'answeredAt'>;
73
+ data: Omit<InteractionRequest, 'status' | 'createdAt' | 'answeredAt' | 'answer'>;
72
74
  }
73
75
  /** 交互回答事件(SSE 发送给前端,通知前端该请求已处理) */
74
76
  export interface InteractionAnswerEvent {
@@ -87,6 +89,8 @@ export interface InteractionStore {
87
89
  get(requestId: string): InteractionRequest | undefined;
88
90
  /** 获取会话下所有 pending 请求 */
89
91
  listPending(sessionId: string): InteractionRequest[];
92
+ /** 获取线程下所有 pending 请求(用于取消主会话及子会话交互) */
93
+ listPendingByThread(threadId: string | number): InteractionRequest[];
90
94
  /** 更新交互请求状态 */
91
95
  update(requestId: string, updates: Partial<InteractionRequest>): void;
92
96
  /** 删除交互请求 */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/interaction/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/interaction/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/interaction/types.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,4BAA4B;AAC5B,6BAA6B;AAC7B,+DAA+D;;;AAyG/D,kBAAkB;AACL,QAAA,8BAA8B,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/interaction/types.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,4BAA4B;AAC5B,6BAA6B;AAC7B,+DAA+D;;;AA6G/D,kBAAkB;AACL,QAAA,8BAA8B,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ask-user.d.ts","sourceRoot":"","sources":["../../../src/tool/ask-user.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAe,MAAM,YAAY,CAAC;AAC9E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAqB,eAAe,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAErG,qBAAqB;AACrB,MAAM,WAAW,WAAW;IAC1B,SAAS;IACT,KAAK,EAAE,MAAM,CAAC;IACd,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,IAAI,EAAE,eAAe,CAAC;IACtB,qCAAqC;IACrC,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9B,iBAAiB;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,oBAAoB;AACpB,eAAO,MAAM,wBAAwB,EAAE,cA2CtC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,cAAc,CAuFxF"}
1
+ {"version":3,"file":"ask-user.d.ts","sourceRoot":"","sources":["../../../src/tool/ask-user.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAe,MAAM,YAAY,CAAC;AAC9E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAqB,eAAe,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAErG,qBAAqB;AACrB,MAAM,WAAW,WAAW;IAC1B,SAAS;IACT,KAAK,EAAE,MAAM,CAAC;IACd,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,IAAI,EAAE,eAAe,CAAC;IACtB,qCAAqC;IACrC,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9B,iBAAiB;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,oBAAoB;AACpB,eAAO,MAAM,wBAAwB,EAAE,cA2CtC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,cAAc,CAyFxF"}
@@ -80,6 +80,7 @@ function createAskUserTool(interactionService) {
80
80
  try {
81
81
  const answer = await interactionService.requestInteraction({
82
82
  sessionId: ctx.sessionId,
83
+ threadId: ctx.custom?.threadId,
83
84
  parentToolCallId: ctx.currentToolCallId,
84
85
  source: 'tool',
85
86
  type: typedArgs.type,
@@ -87,6 +88,7 @@ function createAskUserTool(interactionService) {
87
88
  message: typedArgs.message,
88
89
  options: options.length > 0 ? options : undefined,
89
90
  allowFreeText: typedArgs.allowFreeText ?? false,
91
+ abortSignal: ctx.abortSignal,
90
92
  emit: (request) => {
91
93
  const emitFn = ctx.custom?.emitInteractionRequest;
92
94
  emitFn?.({
@@ -1 +1 @@
1
- {"version":3,"file":"ask-user.js","sourceRoot":"","sources":["../../../src/tool/ask-user.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ask-user.js","sourceRoot":"","sources":["../../../src/tool/ask-user.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,10 @@ export declare class InteractionService {
14
14
  private waiters;
15
15
  private defaultTimeoutMs;
16
16
  constructor(store: InteractionStore, defaultTimeoutMs?: number);
17
+ /**
18
+ * 清理 waiter:清除超时和轮询定时器,从 map 中删除并返回
19
+ */
20
+ private clearWaiter;
17
21
  /**
18
22
  * 创建交互请求并返回 Promise,等待用户回答
19
23
  */
@@ -32,6 +36,8 @@ export declare class InteractionService {
32
36
  timeoutMs?: number;
33
37
  /** 创建请求后的回调(用于发送 SSE 事件通知前端) */
34
38
  emit?: (request: InteractionRequest) => void;
39
+ /** 会话/工具中止信号 */
40
+ abortSignal?: AbortSignal;
35
41
  /** 扩展字段(如 permissionId 用于权限审批联动) */
36
42
  meta?: Record<string, unknown>;
37
43
  }): Promise<InteractionAnswer>;
@@ -57,10 +63,14 @@ export declare class InteractionService {
57
63
  }): InteractionRequest;
58
64
  /**
59
65
  * 回答交互请求
66
+ * 先更新 store(跨进程可见),再尝试 resolve 本地 waiter。
67
+ * 即使本地 waiter 不存在(跨进程场景),store 已更新,轮询方会检测到。
60
68
  */
61
69
  answerInteraction(requestId: string, answer: InteractionAnswer): boolean;
62
70
  /**
63
71
  * 取消交互请求
72
+ * 先更新 store(跨进程可见),再尝试 reject 本地 waiter。
73
+ * 即使本地 waiter 不存在(跨进程场景),store 已更新,轮询方会检测到。
64
74
  */
65
75
  cancelInteraction(requestId: string): boolean;
66
76
  /**
@@ -75,6 +85,10 @@ export declare class InteractionService {
75
85
  * 取消会话下所有 pending 请求
76
86
  */
77
87
  cancelAllForSession(sessionId: string): void;
88
+ /**
89
+ * 取消线程下所有 pending 请求(包含使用子会话 ID 创建的交互)
90
+ */
91
+ cancelAllForThread(threadId: string | number): void;
78
92
  /**
79
93
  * 清理已完成/已过期/已取消的请求
80
94
  */
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/interaction/service.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EAEjB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAepB;;;;;;;;;GASG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,gBAAgB,CAAS;gBAErB,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,GAAE,MAAsB;IAK7E;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE;QACzB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,MAAM,EAAE,iBAAiB,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,eAAe,CAAC;QACtB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACxC,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,gCAAgC;QAChC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;QAC7C,oCAAoC;QACpC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAsB9B;;;OAGG;IACH,iBAAiB,CAAC,MAAM,EAAE;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,MAAM,EAAE,iBAAiB,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,eAAe,CAAC;QACtB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACxC,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,oCAAoC;QACpC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,GAAG,kBAAkB;IA2BtB;;OAEG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO;IAqBxE;;OAEG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAiB7C;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAIpD;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAI7D;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAO5C;;OAEG;IACH,OAAO,CAAC,WAAW,GAAE,MAAuB,GAAG,MAAM;CA4BtD"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/interaction/service.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAwBpB;;;;;;;;;GASG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,gBAAgB,CAAS;gBAErB,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,GAAE,MAAsB;IAK7E;;OAEG;IACH,OAAO,CAAC,WAAW;IAanB;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE;QACzB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,MAAM,EAAE,iBAAiB,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,eAAe,CAAC;QACtB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACxC,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,gCAAgC;QAChC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,kBAAkB,KAAK,IAAI,CAAC;QAC7C,gBAAgB;QAChB,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,oCAAoC;QACpC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA0E9B;;;OAGG;IACH,iBAAiB,CAAC,MAAM,EAAE;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,MAAM,EAAE,iBAAiB,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,eAAe,CAAC;QACtB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;QACxC,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,oCAAoC;QACpC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,GAAG,kBAAkB;IA2BtB;;;;OAIG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,OAAO;IAiBxE;;;;OAIG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAgB7C;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAIpD;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAI7D;;OAEG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAO5C;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAOnD;;OAEG;IACH,OAAO,CAAC,WAAW,GAAE,MAAuB,GAAG,MAAM;CAmCtD"}
@@ -2,6 +2,8 @@
2
2
  // InteractionService — 用户交互请求管理
3
3
  // 管理 pending 交互请求,支持暂停/恢复 Agent 运行
4
4
  // ============================================================
5
+ /** 跨进程轮询间隔(毫秒) */
6
+ const CROSS_PROCESS_POLL_INTERVAL_MS = 1000;
5
7
  /**
6
8
  * InteractionService — 管理用户交互请求的生命周期
7
9
  *
@@ -20,19 +22,85 @@ export class InteractionService {
20
22
  this.store = store;
21
23
  this.defaultTimeoutMs = defaultTimeoutMs;
22
24
  }
25
+ /**
26
+ * 清理 waiter:清除超时和轮询定时器,从 map 中删除并返回
27
+ */
28
+ clearWaiter(requestId) {
29
+ const waiter = this.waiters.get(requestId);
30
+ if (waiter) {
31
+ clearTimeout(waiter.timeout);
32
+ clearInterval(waiter.pollInterval);
33
+ if (waiter.abortSignal && waiter.abortListener) {
34
+ waiter.abortSignal.removeEventListener('abort', waiter.abortListener);
35
+ }
36
+ this.waiters.delete(requestId);
37
+ }
38
+ return waiter;
39
+ }
23
40
  /**
24
41
  * 创建交互请求并返回 Promise,等待用户回答
25
42
  */
26
43
  requestInteraction(params) {
27
44
  const request = this.createInteraction(params);
28
45
  return new Promise((resolve, reject) => {
46
+ let settled = false;
47
+ // 包装 resolve/reject:调用时自动清理 timeout、pollInterval 和 abortListener,保证资源一定释放
48
+ const safeResolve = (answer) => {
49
+ if (settled)
50
+ return;
51
+ settled = true;
52
+ this.clearWaiter(request.requestId);
53
+ resolve(answer);
54
+ };
55
+ const safeReject = (reason) => {
56
+ if (settled)
57
+ return;
58
+ settled = true;
59
+ this.clearWaiter(request.requestId);
60
+ reject(reason);
61
+ };
62
+ if (params.abortSignal?.aborted) {
63
+ this.store.update(request.requestId, { status: 'cancelled' });
64
+ safeReject(new Error(`Interaction request ${request.requestId} was cancelled by abort`));
65
+ return;
66
+ }
29
67
  const timeout = setTimeout(() => {
30
- this.waiters.delete(request.requestId);
31
- request.status = 'expired';
32
68
  this.store.update(request.requestId, { status: 'expired' });
33
- reject(new Error(`Interaction request ${request.requestId} timed out after ${request.timeoutMs}ms`));
69
+ safeReject(new Error(`Interaction request ${request.requestId} timed out after ${request.timeoutMs}ms`));
34
70
  }, request.timeoutMs);
35
- this.waiters.set(request.requestId, { resolve, reject, timeout });
71
+ // 跨进程轮询:定期检测 store 中状态变化(其他进程 answer/cancel 后触发)
72
+ const pollInterval = setInterval(() => {
73
+ const current = this.store.get(request.requestId);
74
+ if (!current)
75
+ return; // 可能还未写入,忽略
76
+ if (current.status === 'answered') {
77
+ safeResolve(current.answer ?? { requestId: request.requestId, action: 'submit' });
78
+ }
79
+ else if (current.status === 'cancelled') {
80
+ safeReject(new Error(`Interaction request ${request.requestId} was cancelled`));
81
+ }
82
+ else if (current.status === 'expired') {
83
+ safeReject(new Error(`Interaction request ${request.requestId} expired`));
84
+ }
85
+ }, CROSS_PROCESS_POLL_INTERVAL_MS);
86
+ const abortListener = params.abortSignal
87
+ ? () => {
88
+ this.store.update(request.requestId, { status: 'cancelled' });
89
+ safeReject(new Error(`Interaction request ${request.requestId} was cancelled by abort`));
90
+ }
91
+ : undefined;
92
+ if (params.abortSignal && abortListener) {
93
+ params.abortSignal.addEventListener('abort', abortListener, { once: true });
94
+ }
95
+ // 存入 waiter 的是 safeResolve/safeReject,外部调用时自动清理定时器
96
+ this.waiters.set(request.requestId, {
97
+ resolve: safeResolve,
98
+ reject: safeReject,
99
+ timeout,
100
+ pollInterval,
101
+ abortSignal: params.abortSignal,
102
+ abortListener,
103
+ });
36
104
  // 通知前端:创建请求后立即触发 emit 回调,将 interaction-request 事件推送到 SSE,
37
105
  // 否则前端永远收不到交互请求,用户无法作答,最终工具执行超时。
38
106
  try {
@@ -73,40 +141,39 @@ export class InteractionService {
73
141
  }
74
142
  /**
75
143
  * 回答交互请求
144
+ * 先更新 store(跨进程可见),再尝试 resolve 本地 waiter。
145
+ * 即使本地 waiter 不存在(跨进程场景),store 已更新,轮询方会检测到。
76
146
  */
77
147
  answerInteraction(requestId, answer) {
78
148
  const request = this.store.get(requestId);
79
149
  if (!request || request.status !== 'pending')
80
150
  return false;
151
+ // 先更新 store(跨进程可见),包含 answer 数据供轮询方读取
152
+ this.store.update(requestId, { status: 'answered', answeredAt: Date.now(), answer });
153
+ // 尝试 resolve 本地 waiter(同进程立即响应);safeResolve 会自动清理定时器
81
154
  const waiter = this.waiters.get(requestId);
82
- if (!waiter)
83
- return false;
84
- // 清除超时
85
- clearTimeout(waiter.timeout);
86
- this.waiters.delete(requestId);
87
- // 更新状态
88
- request.status = 'answered';
89
- request.answeredAt = Date.now();
90
- this.store.update(requestId, { status: 'answered', answeredAt: Date.now() });
91
- // 解析 Promise
92
- waiter.resolve(answer);
155
+ if (waiter) {
156
+ waiter.resolve(answer);
157
+ }
158
+ // 即使没有本地 waiter(跨进程场景),store 已更新,轮询方会检测到
93
159
  return true;
94
160
  }
95
161
  /**
96
162
  * 取消交互请求
163
+ * 先更新 store(跨进程可见),再尝试 reject 本地 waiter。
164
+ * 即使本地 waiter 不存在(跨进程场景),store 已更新,轮询方会检测到。
97
165
  */
98
166
  cancelInteraction(requestId) {
99
167
  const request = this.store.get(requestId);
100
168
  if (!request || request.status !== 'pending')
101
169
  return false;
102
- const waiter = this.waiters.get(requestId);
103
- if (!waiter)
104
- return false;
105
- clearTimeout(waiter.timeout);
106
- this.waiters.delete(requestId);
107
- request.status = 'cancelled';
170
+ // 先更新 store
108
171
  this.store.update(requestId, { status: 'cancelled' });
109
- waiter.reject(new Error(`Interaction request ${requestId} was cancelled`));
172
+ // 尝试 reject 本地 waiter;safeReject 会自动清理定时器
173
+ const waiter = this.waiters.get(requestId);
174
+ if (waiter) {
175
+ waiter.reject(new Error(`Interaction request ${requestId} was cancelled`));
176
+ }
110
177
  return true;
111
178
  }
112
179
  /**
@@ -130,6 +197,15 @@ export class InteractionService {
130
197
  this.cancelInteraction(req.requestId);
131
198
  }
132
199
  }
200
+ /**
201
+ * 取消线程下所有 pending 请求(包含使用子会话 ID 创建的交互)
202
+ */
203
+ cancelAllForThread(threadId) {
204
+ const pending = this.store.listPendingByThread(threadId);
205
+ for (const req of pending) {
206
+ this.cancelInteraction(req.requestId);
207
+ }
208
+ }
133
209
  /**
134
210
  * 清理已完成/已过期/已取消的请求
135
211
  */
@@ -137,25 +213,32 @@ export class InteractionService {
137
213
  let count = 0;
138
214
  const now = Date.now();
139
215
  // 遍历所有 waiter(它们对应的都是 pending 请求)
140
- for (const [requestId, waiter] of this.waiters) {
216
+ for (const [requestId] of this.waiters) {
141
217
  const request = this.store.get(requestId);
142
218
  if (!request) {
143
- clearTimeout(waiter.timeout);
144
- this.waiters.delete(requestId);
219
+ // 请求已被删除,reject 并自动清理定时器
220
+ this.waiters.get(requestId)?.reject(new Error(`Interaction request ${requestId} not found during cleanup`));
221
+ count++;
222
+ continue;
223
+ }
224
+ if (request.status === 'answered') {
225
+ this.waiters.get(requestId)?.resolve(request.answer ?? { requestId, action: 'submit' });
226
+ count++;
227
+ continue;
228
+ }
229
+ if (request.status === 'cancelled') {
230
+ this.waiters.get(requestId)?.reject(new Error(`Interaction request ${requestId} was cancelled`));
145
231
  count++;
146
232
  continue;
147
233
  }
148
- if (request.status !== 'pending') {
149
- clearTimeout(waiter.timeout);
150
- this.waiters.delete(requestId);
234
+ if (request.status === 'expired') {
235
+ this.waiters.get(requestId)?.reject(new Error(`Interaction request ${requestId} expired`));
151
236
  count++;
152
237
  continue;
153
238
  }
154
239
  if (now - request.createdAt > olderThanMs) {
155
- clearTimeout(waiter.timeout);
156
- this.waiters.delete(requestId);
157
240
  this.store.update(requestId, { status: 'expired' });
158
- waiter.reject(new Error(`Interaction request ${requestId} expired during cleanup`));
241
+ this.waiters.get(requestId)?.reject(new Error(`Interaction request ${requestId} expired during cleanup`));
159
242
  count++;
160
243
  }
161
244
  }
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/interaction/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/interaction/service.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export declare class InMemoryInteractionStore implements InteractionStore {
4
4
  save(request: InteractionRequest): void;
5
5
  get(requestId: string): InteractionRequest | undefined;
6
6
  listPending(sessionId: string): InteractionRequest[];
7
+ listPendingByThread(threadId: string | number): InteractionRequest[];
7
8
  update(requestId: string, updates: Partial<InteractionRequest>): void;
8
9
  delete(requestId: string): void;
9
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/interaction/store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEvE,qBAAa,wBAAyB,YAAW,gBAAgB;IAC/D,OAAO,CAAC,QAAQ,CAAyC;IAEzD,IAAI,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAIvC,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAKtD,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAUpD,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI;IAOrE,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;CAGhC"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/interaction/store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEvE,qBAAa,wBAAyB,YAAW,gBAAgB;IAC/D,OAAO,CAAC,QAAQ,CAAyC;IAEzD,IAAI,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAIvC,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAKtD,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAUpD,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,kBAAkB,EAAE;IAWpE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI;IAOrE,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;CAGhC"}
@@ -19,6 +19,16 @@ export class InMemoryInteractionStore {
19
19
  }
20
20
  return results.sort((a, b) => b.createdAt - a.createdAt);
21
21
  }
22
+ listPendingByThread(threadId) {
23
+ const normalizedThreadId = String(threadId);
24
+ const results = [];
25
+ for (const r of this.requests.values()) {
26
+ if (r.threadId != null && String(r.threadId) === normalizedThreadId && r.status === 'pending') {
27
+ results.push({ ...r });
28
+ }
29
+ }
30
+ return results.sort((a, b) => b.createdAt - a.createdAt);
31
+ }
22
32
  update(requestId, updates) {
23
33
  const existing = this.requests.get(requestId);
24
34
  if (existing) {
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/interaction/store.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,kCAAkC;AAClC,+DAA+D;AAI/D,MAAM,OAAO,wBAAwB;IAC3B,QAAQ,GAAG,IAAI,GAAG,EAA8B,CAAC;IAEzD,IAAI,CAAC,OAA2B;QAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,GAAG,CAAC,SAAiB;QACnB,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAClC,CAAC;IAED,WAAW,CAAC,SAAiB;QAC3B,MAAM,OAAO,GAAyB,EAAE,CAAC;QACzC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACxD,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,CAAC,SAAiB,EAAE,OAAoC;QAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,MAAM,CAAC,SAAiB;QACtB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;CACF"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/interaction/store.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,kCAAkC;AAClC,+DAA+D;AAI/D,MAAM,OAAO,wBAAwB;IAC3B,QAAQ,GAAG,IAAI,GAAG,EAA8B,CAAC;IAEzD,IAAI,CAAC,OAA2B;QAC9B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,GAAG,CAAC,SAAiB;QACnB,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAClC,CAAC;IAED,WAAW,CAAC,SAAiB;QAC3B,MAAM,OAAO,GAAyB,EAAE,CAAC;QACzC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACxD,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;IAED,mBAAmB,CAAC,QAAyB;QAC3C,MAAM,kBAAkB,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAyB,EAAE,CAAC;QACzC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,kBAAkB,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC9F,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,CAAC,SAAiB,EAAE,OAAoC;QAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,MAAM,CAAC,SAAiB;QACtB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;CACF"}
@@ -51,6 +51,8 @@ export interface InteractionRequest {
51
51
  createdAt: number;
52
52
  /** 回答时间(毫秒时间戳) */
53
53
  answeredAt?: number;
54
+ /** 用户回答(answered 状态时存在,跨进程轮询方通过此字段获取答案) */
55
+ answer?: InteractionAnswer;
54
56
  /** 扩展字段(上层可附加任意数据,如 permissionId 用于权限审批联动) */
55
57
  meta?: Record<string, unknown>;
56
58
  }
@@ -68,7 +70,7 @@ export interface InteractionAnswer {
68
70
  /** 交互请求事件(SSE 发送给前端) */
69
71
  export interface InteractionRequestEvent {
70
72
  type: 'interaction-request';
71
- data: Omit<InteractionRequest, 'status' | 'createdAt' | 'answeredAt'>;
73
+ data: Omit<InteractionRequest, 'status' | 'createdAt' | 'answeredAt' | 'answer'>;
72
74
  }
73
75
  /** 交互回答事件(SSE 发送给前端,通知前端该请求已处理) */
74
76
  export interface InteractionAnswerEvent {
@@ -87,6 +89,8 @@ export interface InteractionStore {
87
89
  get(requestId: string): InteractionRequest | undefined;
88
90
  /** 获取会话下所有 pending 请求 */
89
91
  listPending(sessionId: string): InteractionRequest[];
92
+ /** 获取线程下所有 pending 请求(用于取消主会话及子会话交互) */
93
+ listPendingByThread(threadId: string | number): InteractionRequest[];
90
94
  /** 更新交互请求状态 */
91
95
  update(requestId: string, updates: Partial<InteractionRequest>): void;
92
96
  /** 删除交互请求 */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/interaction/types.ts"],"names":[],"mappings":"AAKA,aAAa;AACb,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,QAAQ,GAAG,cAAc,GAAG,OAAO,GAAG,UAAU,CAAC;AAE3F,aAAa;AACb,MAAM,MAAM,iBAAiB,GAAG,YAAY,GAAG,WAAW,GAAG,MAAM,CAAC;AAEpE,aAAa;AACb,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;AAEjF,WAAW;AACX,MAAM,WAAW,iBAAiB;IAChC,aAAa;IACb,EAAE,EAAE,MAAM,CAAC;IACX,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,UAAU;IACV,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kBAAkB;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kBAAkB;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,WAAW;AACX,MAAM,WAAW,kBAAkB;IACjC,cAAc;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY;IACZ,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,2BAA2B;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS;IACT,MAAM,EAAE,iBAAiB,CAAC;IAC1B,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW;IACX,IAAI,EAAE,eAAe,CAAC;IACtB,SAAS;IACT,KAAK,EAAE,MAAM,CAAC;IACd,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9B,yCAAyC;IACzC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW;IACX,MAAM,EAAE,iBAAiB,CAAC;IAC1B,kBAAkB;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,WAAW;AACX,MAAM,WAAW,iBAAiB;IAChC,YAAY;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB;IAClB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW;IACX,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC9B;AAED,wBAAwB;AACxB,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,GAAG,WAAW,GAAG,YAAY,CAAC,CAAC;CACvE;AAED,mCAAmC;AACnC,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,IAAI,EAAE;QACJ,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,iBAAiB,CAAC;QAC1B,MAAM,CAAC,EAAE,iBAAiB,CAAC;KAC5B,CAAC;CACH;AAED,eAAe;AACf,MAAM,WAAW,gBAAgB;IAC/B,aAAa;IACb,IAAI,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACxC,aAAa;IACb,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAAC;IACvD,yBAAyB;IACzB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACrD,eAAe;IACf,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC;IACtE,aAAa;IACb,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED,kBAAkB;AAClB,eAAO,MAAM,8BAA8B,QAAgB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/interaction/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/interaction/types.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,4BAA4B;AAC5B,6BAA6B;AAC7B,+DAA+D;AAyG/D,kBAAkB;AAClB,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/interaction/types.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,4BAA4B;AAC5B,6BAA6B;AAC7B,+DAA+D;AA6G/D,kBAAkB;AAClB,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ask-user.d.ts","sourceRoot":"","sources":["../../../src/tool/ask-user.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAe,MAAM,YAAY,CAAC;AAC9E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAqB,eAAe,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAErG,qBAAqB;AACrB,MAAM,WAAW,WAAW;IAC1B,SAAS;IACT,KAAK,EAAE,MAAM,CAAC;IACd,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,IAAI,EAAE,eAAe,CAAC;IACtB,qCAAqC;IACrC,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9B,iBAAiB;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,oBAAoB;AACpB,eAAO,MAAM,wBAAwB,EAAE,cA2CtC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,cAAc,CAuFxF"}
1
+ {"version":3,"file":"ask-user.d.ts","sourceRoot":"","sources":["../../../src/tool/ask-user.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAe,MAAM,YAAY,CAAC;AAC9E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAqB,eAAe,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAErG,qBAAqB;AACrB,MAAM,WAAW,WAAW;IAC1B,SAAS;IACT,KAAK,EAAE,MAAM,CAAC;IACd,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,IAAI,EAAE,eAAe,CAAC;IACtB,qCAAqC;IACrC,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9B,iBAAiB;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,oBAAoB;AACpB,eAAO,MAAM,wBAAwB,EAAE,cA2CtC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,cAAc,CAyFxF"}
@@ -76,6 +76,7 @@ export function createAskUserTool(interactionService) {
76
76
  try {
77
77
  const answer = await interactionService.requestInteraction({
78
78
  sessionId: ctx.sessionId,
79
+ threadId: ctx.custom?.threadId,
79
80
  parentToolCallId: ctx.currentToolCallId,
80
81
  source: 'tool',
81
82
  type: typedArgs.type,
@@ -83,6 +84,7 @@ export function createAskUserTool(interactionService) {
83
84
  message: typedArgs.message,
84
85
  options: options.length > 0 ? options : undefined,
85
86
  allowFreeText: typedArgs.allowFreeText ?? false,
87
+ abortSignal: ctx.abortSignal,
86
88
  emit: (request) => {
87
89
  const emitFn = ctx.custom?.emitInteractionRequest;
88
90
  emitFn?.({
@@ -1 +1 @@
1
- {"version":3,"file":"ask-user.js","sourceRoot":"","sources":["../../../src/tool/ask-user.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ask-user.js","sourceRoot":"","sources":["../../../src/tool/ask-user.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cicctencent/agent-core",
3
- "version": "0.1.72",
3
+ "version": "0.1.73",
4
4
  "description": "Core engine for AI agent — LLM orchestration, tool execution, MCP, skill routing, security, and memory pipeline.",
5
5
  "type": "module",
6
6
  "main": "./dist/cjs/index.js",