@tractorscorch/clank 1.5.7 → 1.5.8
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/CHANGELOG.md +11 -0
- package/README.md +2 -2
- package/dist/index.js +14 -10
- package/dist/index.js.map +1 -1
- package/dist/web/index.html +27 -3
- package/package.json +1 -1
package/dist/web/index.html
CHANGED
|
@@ -49,7 +49,13 @@
|
|
|
49
49
|
.msg .tool-card { background: var(--surface2); border: 1px solid var(--border); border-radius: 6px; padding: 8px 12px; margin: 6px 0; font-size: 12px; }
|
|
50
50
|
.msg .tool-card .tool-name { color: var(--yellow); font-weight: 600; }
|
|
51
51
|
.msg .tool-card .tool-output { color: var(--text-dim); margin-top: 4px; max-height: 100px; overflow: hidden; }
|
|
52
|
-
.msg .thinking {
|
|
52
|
+
.msg .thinking { margin: 6px 0; }
|
|
53
|
+
.msg .thinking-toggle { color: var(--text-dim); font-size: 12px; cursor: pointer; user-select: none; display: flex; align-items: center; gap: 4px; padding: 4px 0; }
|
|
54
|
+
.msg .thinking-toggle:hover { color: var(--text); }
|
|
55
|
+
.msg .thinking-toggle .arrow { display: inline-block; transition: transform 0.15s; font-size: 10px; }
|
|
56
|
+
.msg .thinking-toggle .arrow.open { transform: rotate(90deg); }
|
|
57
|
+
.msg .thinking-content { color: var(--text-dim); font-style: italic; font-size: 13px; background: var(--surface); padding: 8px 12px; border-radius: 6px; margin: 4px 0 0 0; display: none; max-height: 300px; overflow-y: auto; white-space: pre-wrap; word-break: break-word; }
|
|
58
|
+
.msg .thinking-content.open { display: block; }
|
|
53
59
|
#chat-input { padding: 12px 20px; border-top: 1px solid var(--border); display: flex; gap: 8px; align-items: flex-end; }
|
|
54
60
|
#chat-input textarea { flex: 1; background: var(--surface); border: 1px solid var(--border); color: var(--text); padding: 10px 14px; border-radius: 8px; font-family: inherit; font-size: 14px; resize: none; outline: none; min-height: 44px; max-height: 200px; }
|
|
55
61
|
#chat-input textarea:focus { border-color: var(--accent); }
|
|
@@ -241,7 +247,19 @@
|
|
|
241
247
|
currentAssistantEl.querySelector('.body').textContent += (f.payload.text || f.payload.content || '');
|
|
242
248
|
scrollChat(); break;
|
|
243
249
|
case 'chat.thinking': case 'thinking':
|
|
244
|
-
if (currentAssistantEl) {
|
|
250
|
+
if (currentAssistantEl) {
|
|
251
|
+
let tw = currentAssistantEl.querySelector('.thinking');
|
|
252
|
+
if (!tw) {
|
|
253
|
+
tw = document.createElement('div'); tw.className = 'thinking';
|
|
254
|
+
const toggle = document.createElement('div'); toggle.className = 'thinking-toggle';
|
|
255
|
+
toggle.innerHTML = '<span class="arrow">▶</span> <span class="label">Thinking...</span>';
|
|
256
|
+
const content = document.createElement('div'); content.className = 'thinking-content';
|
|
257
|
+
toggle.onclick = () => { const a = toggle.querySelector('.arrow'); const c = tw.querySelector('.thinking-content'); a.classList.toggle('open'); c.classList.toggle('open'); };
|
|
258
|
+
tw.appendChild(toggle); tw.appendChild(content);
|
|
259
|
+
currentAssistantEl.insertBefore(tw, currentAssistantEl.querySelector('.body'));
|
|
260
|
+
}
|
|
261
|
+
tw.querySelector('.thinking-content').textContent += (f.payload.content || f.payload.text || '');
|
|
262
|
+
}
|
|
245
263
|
break;
|
|
246
264
|
case 'chat.tool': case 'tool-start':
|
|
247
265
|
if (currentAssistantEl) { const c = document.createElement('div'); c.className = 'tool-card'; c.innerHTML = `<span class="tool-name">${esc(f.payload.name)}</span>`; currentAssistantEl.querySelector('.body').before(c); }
|
|
@@ -250,7 +268,13 @@
|
|
|
250
268
|
if (currentAssistantEl) { const cards = currentAssistantEl.querySelectorAll('.tool-card'); const last = cards[cards.length-1]; if (last) { const o = document.createElement('div'); o.className = 'tool-output'; o.textContent = (f.payload.summary || '').slice(0,200); last.appendChild(o); } }
|
|
251
269
|
break;
|
|
252
270
|
case 'chat.complete': case 'response-end': case 'turn-complete':
|
|
253
|
-
if (currentAssistantEl) {
|
|
271
|
+
if (currentAssistantEl) {
|
|
272
|
+
const raw = currentAssistantEl.querySelector('.body').textContent;
|
|
273
|
+
currentAssistantEl.querySelector('.body').innerHTML = md(raw);
|
|
274
|
+
// Update thinking toggle label to past tense
|
|
275
|
+
const tl = currentAssistantEl.querySelector('.thinking-toggle .label');
|
|
276
|
+
if (tl) tl.textContent = 'Thought';
|
|
277
|
+
}
|
|
254
278
|
currentAssistantEl = null; streaming = false; document.getElementById('btn-send').style.display = ''; document.getElementById('btn-abort').style.display = 'none';
|
|
255
279
|
break;
|
|
256
280
|
case 'chat.error': case 'error':
|
package/package.json
CHANGED