@ynhcj/xiaoyi-channel 0.0.142-beta → 0.0.144-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/bot.js +9 -3
- package/package.json +1 -1
package/dist/src/bot.js
CHANGED
|
@@ -317,6 +317,7 @@ export async function handleXYMessage(params) {
|
|
|
317
317
|
logger.log(`[BOT] ✅ Steered dispatch settled (skipping cleanup)`);
|
|
318
318
|
return;
|
|
319
319
|
}
|
|
320
|
+
streamingSignals.delete(parsed.sessionId);
|
|
320
321
|
decrementTaskIdRef(parsed.sessionId);
|
|
321
322
|
unregisterSession(route.sessionKey);
|
|
322
323
|
logger.log(`[BOT] ✅ Cleanup completed`);
|
|
@@ -429,7 +430,8 @@ const steerQueues = _g.__xySteerQueues;
|
|
|
429
430
|
export function notifyModelStreaming(sessionId) {
|
|
430
431
|
const signal = streamingSignals.get(sessionId);
|
|
431
432
|
if (signal) {
|
|
432
|
-
|
|
433
|
+
// 不删除 signal——后续 steer 需要靠它判断模型已在 streaming。
|
|
434
|
+
// 清理由第一条消息的 onSettled 兜底。
|
|
433
435
|
signal.notify();
|
|
434
436
|
logger.log(`[STEER-QUEUE] 📡 Model streaming signal fired for session=${sessionId}`);
|
|
435
437
|
}
|
|
@@ -485,7 +487,6 @@ async function dispatchSteerWhenReady(params) {
|
|
|
485
487
|
if (signal) {
|
|
486
488
|
logger.log(`[STEER-QUEUE] ⏳ Waiting for streaming signal, session=${sessionId}`);
|
|
487
489
|
await signal.promise;
|
|
488
|
-
streamingSignals.delete(sessionId);
|
|
489
490
|
logger.log(`[STEER-QUEUE] ✅ Streaming signal received, session=${sessionId}`);
|
|
490
491
|
}
|
|
491
492
|
else {
|
|
@@ -502,7 +503,12 @@ async function dispatchSteerWhenReady(params) {
|
|
|
502
503
|
// 3. 构建 dispatch 上下文并 dispatch /steer
|
|
503
504
|
const core = getXYRuntime();
|
|
504
505
|
const speaker = sessionId;
|
|
505
|
-
|
|
506
|
+
// 如果有文件附件,把路径拼到 steer 文本末尾,让模型通过工具读取
|
|
507
|
+
const mediaPaths = params.mediaPayload?.MediaPaths;
|
|
508
|
+
const fileHint = mediaPaths && mediaPaths.length > 0
|
|
509
|
+
? `\n【用户上传附件】:${JSON.stringify(mediaPaths)}`
|
|
510
|
+
: "";
|
|
511
|
+
const steerCommand = `/steer ${steerText}${fileHint}`;
|
|
506
512
|
const messageBody = `${speaker}: ${steerCommand}`;
|
|
507
513
|
const envelopeOptions = core.channel.reply.resolveEnvelopeFormatOptions(params.cfg);
|
|
508
514
|
const body = core.channel.reply.formatAgentEnvelope({
|