reasonix 0.46.0 → 0.46.1
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/README.md +3 -0
- package/README.zh-CN.md +3 -0
- package/dashboard/dist/app.js +76 -6
- package/dashboard/dist/app.js.map +1 -1
- package/dist/cli/{acp-LGBLHBKY.js → acp-LKJU5DZX.js} +19 -19
- package/dist/cli/chat-W7LAWEN6.js +51 -0
- package/dist/cli/chunk-2425HK6U.js +0 -0
- package/dist/cli/chunk-25T6CVUP.js +0 -0
- package/dist/cli/{chunk-5I2C4JEO.js → chunk-2AASOSD5.js} +6 -6
- package/dist/cli/{chunk-5I2C4JEO.js.map → chunk-2AASOSD5.js.map} +1 -1
- package/dist/cli/chunk-2UQP6H6T.js +0 -0
- package/dist/cli/{chunk-HVUZWNSP.js → chunk-3AAG2CUT.js} +2 -2
- package/dist/cli/chunk-5QCB62C4.js +0 -0
- package/dist/cli/chunk-6OWJV3YW.js +0 -0
- package/dist/cli/{chunk-IJ7JA32V.js → chunk-6VANO7KB.js} +44 -8
- package/dist/cli/chunk-6VANO7KB.js.map +1 -0
- package/dist/cli/{chunk-LIR2HBQH.js → chunk-7LOJS3LV.js} +2 -2
- package/dist/cli/{chunk-I4L2GTSE.js → chunk-7SGGXNB2.js} +2 -2
- package/dist/cli/{chunk-CBIQWMS6.js → chunk-7YW6TPXK.js} +7 -7
- package/dist/cli/{chunk-A3TSSDS2.js → chunk-C72TNHDE.js} +2 -2
- package/dist/cli/chunk-CXVWUPA3.js +0 -0
- package/dist/cli/{chunk-AVFXO2EZ.js → chunk-DGA5QYFM.js} +107 -4
- package/dist/cli/chunk-DGA5QYFM.js.map +1 -0
- package/dist/cli/{chunk-JNAQYELD.js → chunk-DHRVZJ2D.js} +2 -2
- package/dist/cli/{chunk-5ACMUK4Q.js → chunk-E7TAHQ4A.js} +2 -1
- package/dist/cli/{chunk-C53JQES5.js → chunk-EAOL43HB.js} +3 -3
- package/dist/cli/chunk-FEZK652I.js +0 -0
- package/dist/cli/chunk-HNXDZGC6.js +0 -0
- package/dist/cli/{chunk-QJDDIK3Z.js → chunk-IYQ325V7.js} +2 -2
- package/dist/cli/chunk-J5XJHLWM.js +0 -0
- package/dist/cli/{chunk-4CTDEJUF.js → chunk-JLQDNLZF.js} +2 -2
- package/dist/cli/chunk-JMBMLOBP.js +0 -0
- package/dist/cli/{chunk-RDRC3XDT.js → chunk-JVFEJAJX.js} +2 -2
- package/dist/cli/{chunk-GTZTQNX5.js → chunk-JVQT5IYP.js} +7 -7
- package/dist/cli/{chunk-YY227BIQ.js → chunk-K3AIFMI6.js} +2 -2
- package/dist/cli/{chunk-ZZYBBX5N.js → chunk-M4E5JK6S.js} +23 -9
- package/dist/cli/chunk-M4E5JK6S.js.map +1 -0
- package/dist/cli/{chunk-V26WPN3J.js → chunk-MIIZJD5O.js} +28 -1
- package/dist/cli/chunk-MIIZJD5O.js.map +1 -0
- package/dist/cli/{chunk-4HCP2UQW.js → chunk-NCBP5D6E.js} +2 -2
- package/dist/cli/chunk-PLHAZOLZ.js +0 -0
- package/dist/cli/{chunk-HKWSPKMU.js → chunk-R2ASNSEO.js} +8 -8
- package/dist/cli/chunk-S4XVGLRW.js +0 -0
- package/dist/cli/{chunk-W7YGWUWU.js → chunk-SE7C5ZSI.js} +3 -3
- package/dist/cli/{chunk-KQU2TYIL.js → chunk-SPXN5JIT.js} +1128 -675
- package/dist/cli/chunk-SPXN5JIT.js.map +1 -0
- package/dist/cli/chunk-SZ5XES2N.js +0 -0
- package/dist/cli/{chunk-WK3UFQY3.js → chunk-TDSBASOF.js} +2 -2
- package/dist/cli/chunk-TEUDEGX2.js +0 -0
- package/dist/cli/chunk-TUK7OWJA.js +0 -0
- package/dist/cli/{chunk-XSU4QVFW.js → chunk-WQ6ZRDQM.js} +12 -3
- package/dist/cli/chunk-WQ6ZRDQM.js.map +1 -0
- package/dist/cli/{chunk-R3CTO2HM.js → chunk-WRONKNIH.js} +2 -2
- package/dist/cli/chunk-X53B3JIX.js +0 -0
- package/dist/cli/chunk-XJXDHAES.js +0 -0
- package/dist/cli/{chunk-MJ6W5UN3.js → chunk-XPAUNFOL.js} +2 -2
- package/dist/cli/chunk-XXC2BYTV.js +0 -0
- package/dist/cli/{chunk-NVURFF27.js → chunk-YRLC2EDF.js} +2 -2
- package/dist/cli/{chunk-WL6SNQ5T.js → chunk-ZOQHVQON.js} +9 -93
- package/dist/cli/chunk-ZOQHVQON.js.map +1 -0
- package/dist/cli/chunk-ZZM6QJ4W.js +0 -0
- package/dist/cli/{code-DFHSASJ4.js → code-2JIHL5M2.js} +29 -30
- package/dist/cli/code-2JIHL5M2.js.map +1 -0
- package/dist/cli/{commands-OCU42XG4.js → commands-OPT5AJNH.js} +4 -4
- package/dist/cli/{commit-XCQIQCYG.js → commit-KA37H6GM.js} +3 -3
- package/dist/cli/{desktop-ZCUG7LMF.js → desktop-5ONTRU3C.js} +20 -20
- package/dist/cli/devtools-HW3WDT3Q.js +0 -0
- package/dist/cli/{diff-66B2KWOJ.js → diff-SOIA7AKH.js} +8 -8
- package/dist/cli/{doctor-Y73CPPRZ.js → doctor-RCUP4XRV.js} +9 -9
- package/dist/cli/{events-NGZ2OJYH.js → events-6KHITNX4.js} +3 -3
- package/dist/cli/index.js +39 -88
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/{mcp-MPVGBBJF.js → mcp-JP5OWD6R.js} +2 -2
- package/dist/cli/{mcp-browse-4XOTC3FJ.js → mcp-browse-ONCJJPJN.js} +2 -2
- package/dist/cli/{mcp-inspect-CEMGKKAH.js → mcp-inspect-TPLHW5JA.js} +4 -4
- package/dist/cli/{prompt-2D7ID24X.js → prompt-RJDNCQAP.js} +3 -3
- package/dist/cli/{prune-sessions-OJEYYLHY.js → prune-sessions-MKEATRVL.js} +2 -2
- package/dist/cli/{replay-AKYQNAQJ.js → replay-4NILJG4U.js} +8 -8
- package/dist/cli/{run-5DPQFSP6.js → run-WFGXB4SB.js} +17 -18
- package/dist/cli/run-WFGXB4SB.js.map +1 -0
- package/dist/cli/{server-TQ2IHYQJ.js → server-5VFQP3PV.js} +13 -13
- package/dist/cli/{sessions-KY54NG45.js → sessions-5XDJDALO.js} +28 -14
- package/dist/cli/sessions-5XDJDALO.js.map +1 -0
- package/dist/cli/{setup-XPIOZWS7.js → setup-F6XSWLRA.js} +7 -7
- package/dist/cli/setup-F6XSWLRA.js.map +1 -0
- package/dist/cli/{stats-X2VTWKNS.js → stats-ALHBZICE.js} +6 -6
- package/dist/cli/update-6ITLPRDV.js +0 -0
- package/dist/cli/{version-7O6A5T7Q.js → version-JVRAHBMM.js} +14 -14
- package/dist/index.d.ts +23 -13
- package/dist/index.js +1112 -1090
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/cli/.-3G6VX5S7.js +0 -327
- package/dist/cli/.-6YRPB2C7.js +0 -329
- package/dist/cli/.-EYSVINK3.js +0 -317
- package/dist/cli/chat-ECK5ZGMV.js +0 -51
- package/dist/cli/chunk-AVFXO2EZ.js.map +0 -1
- package/dist/cli/chunk-IJ7JA32V.js.map +0 -1
- package/dist/cli/chunk-KQU2TYIL.js.map +0 -1
- package/dist/cli/chunk-V26WPN3J.js.map +0 -1
- package/dist/cli/chunk-WL6SNQ5T.js.map +0 -1
- package/dist/cli/chunk-XSU4QVFW.js.map +0 -1
- package/dist/cli/chunk-ZZYBBX5N.js.map +0 -1
- package/dist/cli/code-DFHSASJ4.js.map +0 -1
- package/dist/cli/doctor-Y73CPPRZ.js.map +0 -1
- package/dist/cli/prompt-2D7ID24X.js.map +0 -1
- package/dist/cli/run-5DPQFSP6.js.map +0 -1
- package/dist/cli/sessions-KY54NG45.js.map +0 -1
- package/dist/cli/setup-XPIOZWS7.js.map +0 -1
- package/dist/cli/stats-X2VTWKNS.js.map +0 -1
- /package/dist/cli/{acp-LGBLHBKY.js.map → acp-LKJU5DZX.js.map} +0 -0
- /package/dist/cli/{.-3G6VX5S7.js.map → chat-W7LAWEN6.js.map} +0 -0
- /package/dist/cli/{chunk-HVUZWNSP.js.map → chunk-3AAG2CUT.js.map} +0 -0
- /package/dist/cli/{chunk-LIR2HBQH.js.map → chunk-7LOJS3LV.js.map} +0 -0
- /package/dist/cli/{chunk-I4L2GTSE.js.map → chunk-7SGGXNB2.js.map} +0 -0
- /package/dist/cli/{chunk-CBIQWMS6.js.map → chunk-7YW6TPXK.js.map} +0 -0
- /package/dist/cli/{chunk-A3TSSDS2.js.map → chunk-C72TNHDE.js.map} +0 -0
- /package/dist/cli/{chunk-JNAQYELD.js.map → chunk-DHRVZJ2D.js.map} +0 -0
- /package/dist/cli/{chunk-5ACMUK4Q.js.map → chunk-E7TAHQ4A.js.map} +0 -0
- /package/dist/cli/{chunk-C53JQES5.js.map → chunk-EAOL43HB.js.map} +0 -0
- /package/dist/cli/{chunk-QJDDIK3Z.js.map → chunk-IYQ325V7.js.map} +0 -0
- /package/dist/cli/{chunk-4CTDEJUF.js.map → chunk-JLQDNLZF.js.map} +0 -0
- /package/dist/cli/{chunk-RDRC3XDT.js.map → chunk-JVFEJAJX.js.map} +0 -0
- /package/dist/cli/{chunk-GTZTQNX5.js.map → chunk-JVQT5IYP.js.map} +0 -0
- /package/dist/cli/{chunk-YY227BIQ.js.map → chunk-K3AIFMI6.js.map} +0 -0
- /package/dist/cli/{chunk-4HCP2UQW.js.map → chunk-NCBP5D6E.js.map} +0 -0
- /package/dist/cli/{chunk-HKWSPKMU.js.map → chunk-R2ASNSEO.js.map} +0 -0
- /package/dist/cli/{chunk-W7YGWUWU.js.map → chunk-SE7C5ZSI.js.map} +0 -0
- /package/dist/cli/{chunk-WK3UFQY3.js.map → chunk-TDSBASOF.js.map} +0 -0
- /package/dist/cli/{chunk-R3CTO2HM.js.map → chunk-WRONKNIH.js.map} +0 -0
- /package/dist/cli/{chunk-MJ6W5UN3.js.map → chunk-XPAUNFOL.js.map} +0 -0
- /package/dist/cli/{chunk-NVURFF27.js.map → chunk-YRLC2EDF.js.map} +0 -0
- /package/dist/cli/{commands-OCU42XG4.js.map → commands-OPT5AJNH.js.map} +0 -0
- /package/dist/cli/{commit-XCQIQCYG.js.map → commit-KA37H6GM.js.map} +0 -0
- /package/dist/cli/{desktop-ZCUG7LMF.js.map → desktop-5ONTRU3C.js.map} +0 -0
- /package/dist/cli/{diff-66B2KWOJ.js.map → diff-SOIA7AKH.js.map} +0 -0
- /package/dist/cli/{.-6YRPB2C7.js.map → doctor-RCUP4XRV.js.map} +0 -0
- /package/dist/cli/{events-NGZ2OJYH.js.map → events-6KHITNX4.js.map} +0 -0
- /package/dist/cli/{mcp-MPVGBBJF.js.map → mcp-JP5OWD6R.js.map} +0 -0
- /package/dist/cli/{mcp-browse-4XOTC3FJ.js.map → mcp-browse-ONCJJPJN.js.map} +0 -0
- /package/dist/cli/{mcp-inspect-CEMGKKAH.js.map → mcp-inspect-TPLHW5JA.js.map} +0 -0
- /package/dist/cli/{.-EYSVINK3.js.map → prompt-RJDNCQAP.js.map} +0 -0
- /package/dist/cli/{prune-sessions-OJEYYLHY.js.map → prune-sessions-MKEATRVL.js.map} +0 -0
- /package/dist/cli/{replay-AKYQNAQJ.js.map → replay-4NILJG4U.js.map} +0 -0
- /package/dist/cli/{server-TQ2IHYQJ.js.map → server-5VFQP3PV.js.map} +0 -0
- /package/dist/cli/{chat-ECK5ZGMV.js.map → stats-ALHBZICE.js.map} +0 -0
- /package/dist/cli/{version-7O6A5T7Q.js.map → version-JVRAHBMM.js.map} +0 -0
package/README.md
CHANGED
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
<a href="./docs/ARCHITECTURE.md">Architecture</a>
|
|
15
15
|
·
|
|
16
16
|
<a href="./benchmarks/">Benchmarks</a>
|
|
17
|
+
·
|
|
18
|
+
<a href="https://discord.gg/XF78rEME2D">Discord</a>
|
|
17
19
|
</p>
|
|
18
20
|
|
|
19
21
|
<p align="center">
|
|
@@ -25,6 +27,7 @@
|
|
|
25
27
|
<a href="https://github.com/esengine/reasonix/stargazers"><img src="https://img.shields.io/github/stars/esengine/reasonix.svg?style=flat-square&color=dbab09&labelColor=161b22&logo=github&logoColor=white" alt="GitHub stars"/></a>
|
|
26
28
|
<a href="https://github.com/esengine/reasonix/graphs/contributors"><img src="https://img.shields.io/github/contributors/esengine/reasonix.svg?style=flat-square&color=bc8cff&labelColor=161b22&logo=github&logoColor=white" alt="contributors"/></a>
|
|
27
29
|
<a href="https://github.com/esengine/reasonix/discussions"><img src="https://img.shields.io/github/discussions/esengine/reasonix.svg?style=flat-square&color=58a6ff&labelColor=161b22&logo=github&logoColor=white" alt="Discussions"/></a>
|
|
30
|
+
<a href="https://discord.gg/XF78rEME2D"><img src="https://img.shields.io/badge/discord-join-5865F2.svg?style=flat-square&labelColor=161b22&logo=discord&logoColor=white" alt="Discord"/></a>
|
|
28
31
|
</p>
|
|
29
32
|
|
|
30
33
|
<p align="center">
|
package/README.zh-CN.md
CHANGED
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
<a href="./docs/ARCHITECTURE.md">架构文档</a>
|
|
15
15
|
·
|
|
16
16
|
<a href="./benchmarks/">基准测试</a>
|
|
17
|
+
·
|
|
18
|
+
<a href="https://discord.gg/XF78rEME2D">Discord</a>
|
|
17
19
|
</p>
|
|
18
20
|
|
|
19
21
|
<p align="center">
|
|
@@ -25,6 +27,7 @@
|
|
|
25
27
|
<a href="https://github.com/esengine/reasonix/stargazers"><img src="https://img.shields.io/github/stars/esengine/reasonix.svg?style=flat-square&color=dbab09&labelColor=161b22&logo=github&logoColor=white" alt="GitHub stars"/></a>
|
|
26
28
|
<a href="https://github.com/esengine/reasonix/graphs/contributors"><img src="https://img.shields.io/github/contributors/esengine/reasonix.svg?style=flat-square&color=bc8cff&labelColor=161b22&logo=github&logoColor=white" alt="contributors"/></a>
|
|
27
29
|
<a href="https://github.com/esengine/reasonix/discussions"><img src="https://img.shields.io/github/discussions/esengine/reasonix.svg?style=flat-square&color=58a6ff&labelColor=161b22&logo=github&logoColor=white" alt="Discussions"/></a>
|
|
30
|
+
<a href="https://discord.gg/XF78rEME2D"><img src="https://img.shields.io/badge/discord-join-5865F2.svg?style=flat-square&labelColor=161b22&logo=discord&logoColor=white" alt="Discord"/></a>
|
|
28
31
|
</p>
|
|
29
32
|
|
|
30
33
|
<p align="center">
|
package/dashboard/dist/app.js
CHANGED
|
@@ -25059,12 +25059,22 @@ function CodeViewer(props) {
|
|
|
25059
25059
|
</div>
|
|
25060
25060
|
`;
|
|
25061
25061
|
}
|
|
25062
|
+
function summarizeTool(activeTool) {
|
|
25063
|
+
if (!activeTool) return null;
|
|
25064
|
+
const name = activeTool.toolName ?? "tool";
|
|
25065
|
+
const args = parseToolArgs(activeTool.args);
|
|
25066
|
+
const path = args?.path ?? args?.file_path ?? args?.filename;
|
|
25067
|
+
if (path) return `${name} \u2192 ${path}`;
|
|
25068
|
+
return name;
|
|
25069
|
+
}
|
|
25062
25070
|
function ChatPane(props) {
|
|
25063
25071
|
useLang();
|
|
25064
25072
|
const [messages, setMessages] = d2([]);
|
|
25065
25073
|
const [streaming, setStreaming] = d2(null);
|
|
25066
25074
|
const [activeTool, setActiveTool] = d2(null);
|
|
25067
25075
|
const [busy, setBusy] = d2(false);
|
|
25076
|
+
const [turnStartedAt, setTurnStartedAt] = d2(null);
|
|
25077
|
+
const [nowTick, setNowTick] = d2(0);
|
|
25068
25078
|
const [input, setInput] = d2("");
|
|
25069
25079
|
const [error, setError] = d2(null);
|
|
25070
25080
|
const [statusLine, setStatusLine] = d2(null);
|
|
@@ -25079,6 +25089,7 @@ function ChatPane(props) {
|
|
|
25079
25089
|
const [popoverKind, setPopoverKind] = d2(null);
|
|
25080
25090
|
const [popoverItems, setPopoverItems] = d2([]);
|
|
25081
25091
|
const [popoverSel, setPopoverSel] = d2(0);
|
|
25092
|
+
const composing = A2(false);
|
|
25082
25093
|
y2(() => {
|
|
25083
25094
|
let cancelled = false;
|
|
25084
25095
|
(async () => {
|
|
@@ -25092,6 +25103,29 @@ function ChatPane(props) {
|
|
|
25092
25103
|
cancelled = true;
|
|
25093
25104
|
};
|
|
25094
25105
|
}, []);
|
|
25106
|
+
y2(() => {
|
|
25107
|
+
if (!busy) return;
|
|
25108
|
+
const id = setInterval(() => setNowTick((n3) => n3 + 1), 500);
|
|
25109
|
+
return () => clearInterval(id);
|
|
25110
|
+
}, [busy]);
|
|
25111
|
+
y2(() => {
|
|
25112
|
+
if (busy) {
|
|
25113
|
+
if (!turnStartedAt) setTurnStartedAt(Date.now());
|
|
25114
|
+
} else {
|
|
25115
|
+
setTurnStartedAt(null);
|
|
25116
|
+
}
|
|
25117
|
+
}, [busy, turnStartedAt]);
|
|
25118
|
+
y2(() => {
|
|
25119
|
+
if (!busy) return;
|
|
25120
|
+
const handler = (e3) => {
|
|
25121
|
+
if (e3.key === "Escape") {
|
|
25122
|
+
e3.preventDefault();
|
|
25123
|
+
api("/abort", { method: "POST" }).catch(() => void 0);
|
|
25124
|
+
}
|
|
25125
|
+
};
|
|
25126
|
+
document.addEventListener("keydown", handler);
|
|
25127
|
+
return () => document.removeEventListener("keydown", handler);
|
|
25128
|
+
}, [busy]);
|
|
25095
25129
|
y2(() => {
|
|
25096
25130
|
let cancelled = false;
|
|
25097
25131
|
(async () => {
|
|
@@ -25286,6 +25320,7 @@ function ChatPane(props) {
|
|
|
25286
25320
|
(e3) => {
|
|
25287
25321
|
const v3 = e3.target.value;
|
|
25288
25322
|
setInput(v3);
|
|
25323
|
+
if (composing.current) return;
|
|
25289
25324
|
updatePopover(v3);
|
|
25290
25325
|
},
|
|
25291
25326
|
[updatePopover]
|
|
@@ -25364,8 +25399,19 @@ ${commentRefs}` : commentRefs;
|
|
|
25364
25399
|
setError(t4("changes.clearFailed", { error: err.message }));
|
|
25365
25400
|
}
|
|
25366
25401
|
}, []);
|
|
25402
|
+
const onCompositionStart = q2(() => {
|
|
25403
|
+
composing.current = true;
|
|
25404
|
+
}, []);
|
|
25405
|
+
const onCompositionEnd = q2(
|
|
25406
|
+
(e3) => {
|
|
25407
|
+
composing.current = false;
|
|
25408
|
+
void updatePopover(e3.target.value);
|
|
25409
|
+
},
|
|
25410
|
+
[updatePopover]
|
|
25411
|
+
);
|
|
25367
25412
|
const onKeyDown = q2(
|
|
25368
25413
|
(e3) => {
|
|
25414
|
+
if (composing.current) return;
|
|
25369
25415
|
if (popoverKind && popoverItems.length > 0) {
|
|
25370
25416
|
if (e3.key === "ArrowDown") {
|
|
25371
25417
|
e3.preventDefault();
|
|
@@ -25388,11 +25434,6 @@ ${commentRefs}` : commentRefs;
|
|
|
25388
25434
|
return;
|
|
25389
25435
|
}
|
|
25390
25436
|
}
|
|
25391
|
-
if (e3.key === "Escape" && busy) {
|
|
25392
|
-
e3.preventDefault();
|
|
25393
|
-
abort();
|
|
25394
|
-
return;
|
|
25395
|
-
}
|
|
25396
25437
|
if (e3.key === "Enter" && !e3.shiftKey) {
|
|
25397
25438
|
e3.preventDefault();
|
|
25398
25439
|
send();
|
|
@@ -25476,11 +25517,14 @@ ${commentRefs}` : commentRefs;
|
|
|
25476
25517
|
<textarea
|
|
25477
25518
|
class="input"
|
|
25478
25519
|
style=${{ width: "100%", resize: "none", minHeight: "36px", fontFamily: "inherit", fontSize: "13px", padding: "8px 10px", lineHeight: "1.4", background: "var(--bg-input)", border: "1px solid var(--bd)", borderRadius: "4px", color: "var(--fg-0)" }}
|
|
25479
|
-
placeholder=${props.comments.length > 0 ? "\u603B\u7ED3\u8BC4\u8BBA..." : t4("changes.chatPlaceholder")}
|
|
25520
|
+
placeholder=${busy ? t4("chat.placeholderBusy") : props.comments.length > 0 ? "\u603B\u7ED3\u8BC4\u8BBA..." : t4("changes.chatPlaceholder")}
|
|
25480
25521
|
value=${input}
|
|
25481
25522
|
onInput=${onInput}
|
|
25482
25523
|
onKeyDown=${onKeyDown}
|
|
25524
|
+
onCompositionStart=${onCompositionStart}
|
|
25525
|
+
onCompositionEnd=${onCompositionEnd}
|
|
25483
25526
|
onBlur=${() => setTimeout(() => setPopoverKind(null), 150)}
|
|
25527
|
+
disabled=${busy}
|
|
25484
25528
|
rows="2"
|
|
25485
25529
|
/>
|
|
25486
25530
|
</div>
|
|
@@ -25493,6 +25537,32 @@ ${commentRefs}` : commentRefs;
|
|
|
25493
25537
|
</div>
|
|
25494
25538
|
</div>
|
|
25495
25539
|
</div>
|
|
25540
|
+
${busy ? (() => {
|
|
25541
|
+
const elapsedMs = turnStartedAt ? Date.now() - turnStartedAt : 0;
|
|
25542
|
+
const elapsed = (elapsedMs / 1e3).toFixed(1);
|
|
25543
|
+
const textLen = streaming?.text?.length ?? 0;
|
|
25544
|
+
const reasoningLen = streaming?.reasoning?.length ?? 0;
|
|
25545
|
+
const toolSummary = summarizeTool(activeTool);
|
|
25546
|
+
const phase = toolSummary ? t4("chat.inflightRunning") : reasoningLen > 0 && textLen === 0 ? t4("chat.inflightThinking") : textLen > 0 ? t4("chat.inflightStreaming") : t4("chat.inflightWaiting");
|
|
25547
|
+
return html6`
|
|
25548
|
+
<div class="chat-inflight">
|
|
25549
|
+
<span class="spinner"></span>
|
|
25550
|
+
<span class="chat-inflight-phase">${phase}</span>
|
|
25551
|
+
<span class="chat-inflight-sep">·</span>
|
|
25552
|
+
<span class="muted">${elapsed}s</span>
|
|
25553
|
+
${toolSummary ? html6`<span class="chat-inflight-sep">·</span><span class="chat-inflight-tool" title=${toolSummary}>${toolSummary}</span>` : null}
|
|
25554
|
+
${!toolSummary && (textLen > 0 || reasoningLen > 0) ? html6`
|
|
25555
|
+
<span class="chat-inflight-sep">·</span>
|
|
25556
|
+
<span class="muted">
|
|
25557
|
+
${reasoningLen > 0 ? t4("chat.inflightReasoning", { count: reasoningLen.toLocaleString() }) : null}
|
|
25558
|
+
${reasoningLen > 0 && textLen > 0 ? html6`<span> · </span>` : null}
|
|
25559
|
+
${textLen > 0 ? t4("chat.inflightOut", { count: textLen.toLocaleString() }) : null}
|
|
25560
|
+
</span>
|
|
25561
|
+
` : null}
|
|
25562
|
+
<button class="chat-inflight-abort" onClick=${abort}>${t4("chat.abortBtn")}</button>
|
|
25563
|
+
</div>
|
|
25564
|
+
`;
|
|
25565
|
+
})() : null}
|
|
25496
25566
|
<${ChatStatusBar} stats=${stats} model=${model} />
|
|
25497
25567
|
</div>
|
|
25498
25568
|
`;
|