@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.
Files changed (2) hide show
  1. package/dist/src/bot.js +9 -3
  2. 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
- streamingSignals.delete(sessionId);
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
- const steerCommand = `/steer ${steerText}`;
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({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ynhcj/xiaoyi-channel",
3
- "version": "0.0.142-beta",
3
+ "version": "0.0.144-beta",
4
4
  "description": "OpenClaw Xiaoyi Channel plugin - Xiaoyi A2A protocol integration",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",