mocode-ai 1.2.9 → 1.2.10
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/agent/index.js +5 -1
- package/dist/ui/layout.js +9 -4
- package/package.json +1 -1
package/dist/agent/index.js
CHANGED
|
@@ -255,7 +255,11 @@ onContextUpdate) {
|
|
|
255
255
|
// 经 setStatus 注入状态行(spinnerFrame + statusText),composeStatus 把帧 + 文字放 lead 位;
|
|
256
256
|
// 不画内容区续写位——内容区在等待期间保持干净,首 token 到达即从续写位开始写正文。
|
|
257
257
|
const spinner = new Spinner((msg, frame) => {
|
|
258
|
-
|
|
258
|
+
// frame 在转:msg + … + 帧字符;stop() 时 frame=null,去帧,保留 msg 作为状态文字
|
|
259
|
+
// (spinner.ts line 71 注释:"状态行去帧,保留状态文字")。旧版用 '' 会把 statusText 清空,
|
|
260
|
+
// 导致流式期间(spinner 已停、走时由 turnTimer 兜底)状态行只剩心跳帧字符,
|
|
261
|
+
// 再叠加 composeSpinnerLine scrolled 分支无 fallback,滚动态左侧像"蒸发"了。
|
|
262
|
+
layout.setStatus(frame ? `${msg}…` : msg, frame ?? undefined);
|
|
259
263
|
});
|
|
260
264
|
// lastChar 镜像:core 跟踪流式末字符决定补换行,但 TUI hooks 需读它决定 layout.contentWrite('\n')。
|
|
261
265
|
// core 的 onTextEnd hook 只在 lastChar !== '\n' 时才调,调后置 '\n';镜像与此同步。
|
package/dist/ui/layout.js
CHANGED
|
@@ -1357,13 +1357,18 @@ function composeSpinnerLine(status, cols) {
|
|
|
1357
1357
|
let lead;
|
|
1358
1358
|
let leadW;
|
|
1359
1359
|
if (scrolled) {
|
|
1360
|
-
// 滚动回看:左段 = 符号(● 或 心跳帧) + 状态名(
|
|
1361
|
-
//
|
|
1360
|
+
// 滚动回看:左段 = 符号(● 或 心跳帧) + 状态名 + (运行态)走时;右段 = 历史指示。
|
|
1361
|
+
// 跟非回看态严格对齐——RUNNING 态显示走时,INPUT 态不显示,避免滚动时信息降级。
|
|
1362
1362
|
const symbol = spinning
|
|
1363
1363
|
? `${ui.bold}${ui.accent}${RUNNING_FRAMES[runningFrame]}${ui.reset}`
|
|
1364
1364
|
: `${ui.accent}●${ui.reset}`;
|
|
1365
|
-
|
|
1366
|
-
|
|
1365
|
+
// spinning(运行态流式中 spinner 已停,靠 turnTimer 心跳):同非滚动 spinning 分支加
|
|
1366
|
+
// || '生成中' fallback——流式首 token 到即 spinner.stop(),若 stop() 回调未留状态字,
|
|
1367
|
+
// 此处兜底不再让 lead 只剩心跳帧字符(用户误读为"左侧蒸发了")。
|
|
1368
|
+
const label = spinning ? (status.status || '生成中') : status.status;
|
|
1369
|
+
const ePart = elapsed ? ` ${ui.dim}${elapsed}${ui.reset}` : '';
|
|
1370
|
+
lead = `${symbol} ${ui.dim}${label}${ui.reset}${ePart}`;
|
|
1371
|
+
leadW = 1 + 1 + displayWidth(label) + (elapsed ? 1 + displayWidth(elapsed) : 0);
|
|
1367
1372
|
}
|
|
1368
1373
|
else if (hasSpinner) {
|
|
1369
1374
|
// spinner 激活(思考中/执行工具…):帧 + 状态 + 走时
|