clay-server 2.14.0-beta.2 → 2.14.0-beta.4
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/lib/public/app.js +49 -3
- package/lib/public/modules/input.js +5 -0
- package/package.json +1 -1
package/lib/public/app.js
CHANGED
|
@@ -809,6 +809,14 @@ import { initCommandPalette, handlePaletteSessionSwitch, setPaletteVersion } fro
|
|
|
809
809
|
if (msg.type === "init" && msg.sessions) {
|
|
810
810
|
renderMateSessionList(msg.sessions);
|
|
811
811
|
requestKnowledgeList();
|
|
812
|
+
// Override title bar with mate name (not session/project title)
|
|
813
|
+
if (dmTargetUser && dmTargetUser.isMate) {
|
|
814
|
+
var mateDN = dmTargetUser.displayName || "New Mate";
|
|
815
|
+
if (headerTitleEl) headerTitleEl.textContent = mateDN;
|
|
816
|
+
var tbPN = document.getElementById("title-bar-project-name");
|
|
817
|
+
if (tbPN) tbPN.textContent = mateDN;
|
|
818
|
+
updatePageTitle();
|
|
819
|
+
}
|
|
812
820
|
}
|
|
813
821
|
if (msg.type === "session_list") {
|
|
814
822
|
renderMateSessionList(msg.sessions || []);
|
|
@@ -1804,6 +1812,32 @@ import { initCommandPalette, handlePaletteSessionSwitch, setPaletteVersion } fro
|
|
|
1804
1812
|
}
|
|
1805
1813
|
}
|
|
1806
1814
|
|
|
1815
|
+
// --- Mate pre-thinking (instant dots before server responds) ---
|
|
1816
|
+
var matePreThinkingEl = null;
|
|
1817
|
+
function showMatePreThinking() {
|
|
1818
|
+
removeMatePreThinking();
|
|
1819
|
+
var mateName = dmTargetUser ? (dmTargetUser.displayName || "Mate") : "Mate";
|
|
1820
|
+
var mateAvatar = document.body.dataset.mateAvatarUrl || "";
|
|
1821
|
+
matePreThinkingEl = document.createElement("div");
|
|
1822
|
+
matePreThinkingEl.className = "thinking-item mate-thinking mate-pre-thinking";
|
|
1823
|
+
matePreThinkingEl.innerHTML =
|
|
1824
|
+
'<div class="mate-thinking-row" style="display:flex">' +
|
|
1825
|
+
'<img class="mate-thinking-avatar" src="' + escapeHtml(mateAvatar) + '" alt="">' +
|
|
1826
|
+
'<div class="mate-thinking-body">' +
|
|
1827
|
+
'<span class="mate-thinking-name">' + escapeHtml(mateName) + '</span>' +
|
|
1828
|
+
'<span class="mate-thinking-dots"><span></span><span></span><span></span></span>' +
|
|
1829
|
+
'</div>' +
|
|
1830
|
+
'</div>';
|
|
1831
|
+
addToMessages(matePreThinkingEl);
|
|
1832
|
+
scrollToBottom();
|
|
1833
|
+
}
|
|
1834
|
+
function removeMatePreThinking() {
|
|
1835
|
+
if (matePreThinkingEl) {
|
|
1836
|
+
matePreThinkingEl.remove();
|
|
1837
|
+
matePreThinkingEl = null;
|
|
1838
|
+
}
|
|
1839
|
+
}
|
|
1840
|
+
|
|
1807
1841
|
// --- Config chip (model + mode + effort) ---
|
|
1808
1842
|
var configChipWrap = $("config-chip-wrap");
|
|
1809
1843
|
var configChip = $("config-chip");
|
|
@@ -3402,9 +3436,17 @@ import { initCommandPalette, handlePaletteSessionSwitch, setPaletteVersion } fro
|
|
|
3402
3436
|
projectName = msg.project || msg.cwd;
|
|
3403
3437
|
if (msg.slug) currentSlug = msg.slug;
|
|
3404
3438
|
try { localStorage.setItem("clay-project-name-" + (currentSlug || "default"), projectName); } catch (e) {}
|
|
3405
|
-
|
|
3406
|
-
|
|
3407
|
-
|
|
3439
|
+
// In mate DM, keep title as mate name (not project/session title)
|
|
3440
|
+
if (dmMode && dmTargetUser && dmTargetUser.isMate) {
|
|
3441
|
+
var _mateDN = dmTargetUser.displayName || "New Mate";
|
|
3442
|
+
headerTitleEl.textContent = _mateDN;
|
|
3443
|
+
var tbProjectName = $("title-bar-project-name");
|
|
3444
|
+
if (tbProjectName) tbProjectName.textContent = _mateDN;
|
|
3445
|
+
} else {
|
|
3446
|
+
headerTitleEl.textContent = projectName;
|
|
3447
|
+
var tbProjectName = $("title-bar-project-name");
|
|
3448
|
+
if (tbProjectName) tbProjectName.textContent = msg.title || projectName;
|
|
3449
|
+
}
|
|
3408
3450
|
updatePageTitle();
|
|
3409
3451
|
if (msg.version) {
|
|
3410
3452
|
setPaletteVersion(msg.version);
|
|
@@ -3691,6 +3733,7 @@ import { initCommandPalette, handlePaletteSessionSwitch, setPaletteVersion } fro
|
|
|
3691
3733
|
break;
|
|
3692
3734
|
|
|
3693
3735
|
case "thinking_start":
|
|
3736
|
+
removeMatePreThinking();
|
|
3694
3737
|
startThinking();
|
|
3695
3738
|
break;
|
|
3696
3739
|
|
|
@@ -3705,6 +3748,7 @@ import { initCommandPalette, handlePaletteSessionSwitch, setPaletteVersion } fro
|
|
|
3705
3748
|
|
|
3706
3749
|
case "delta":
|
|
3707
3750
|
if (typeof msg.text !== "string") break;
|
|
3751
|
+
removeMatePreThinking();
|
|
3708
3752
|
stopThinking();
|
|
3709
3753
|
resetThinkingGroup();
|
|
3710
3754
|
setActivity(null);
|
|
@@ -3712,6 +3756,7 @@ import { initCommandPalette, handlePaletteSessionSwitch, setPaletteVersion } fro
|
|
|
3712
3756
|
break;
|
|
3713
3757
|
|
|
3714
3758
|
case "tool_start":
|
|
3759
|
+
removeMatePreThinking();
|
|
3715
3760
|
stopThinking();
|
|
3716
3761
|
markAllToolsDone();
|
|
3717
3762
|
if (msg.name === "EnterPlanMode") {
|
|
@@ -4531,6 +4576,7 @@ import { initCommandPalette, handlePaletteSessionSwitch, setPaletteVersion } fro
|
|
|
4531
4576
|
isMateDm: function () { return dmMode && dmTargetUser && dmTargetUser.isMate; },
|
|
4532
4577
|
getMateName: function () { return dmTargetUser ? (dmTargetUser.displayName || "Mate") : "Mate"; },
|
|
4533
4578
|
getMateAvatarUrl: function () { return document.body.dataset.mateAvatarUrl || ""; },
|
|
4579
|
+
showMatePreThinking: function () { showMatePreThinking(); },
|
|
4534
4580
|
});
|
|
4535
4581
|
|
|
4536
4582
|
// --- STT module (voice input via Web Speech API) ---
|
|
@@ -105,6 +105,11 @@ export function sendMessage() {
|
|
|
105
105
|
}
|
|
106
106
|
ctx.ws.send(JSON.stringify(payload));
|
|
107
107
|
|
|
108
|
+
// Mate DM: show pre-thinking dots immediately (before server responds)
|
|
109
|
+
if (ctx.isMateDm && ctx.isMateDm()) {
|
|
110
|
+
ctx.showMatePreThinking();
|
|
111
|
+
}
|
|
112
|
+
|
|
108
113
|
ctx.inputEl.value = "";
|
|
109
114
|
sendInputSync();
|
|
110
115
|
clearPendingImages();
|