agentgui 1.0.272 → 1.0.273
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/package.json +1 -1
- package/server.js +11 -2
- package/static/index.html +10 -8
- package/static/js/streaming-renderer.js +3 -6
package/package.json
CHANGED
package/server.js
CHANGED
|
@@ -2903,8 +2903,11 @@ async function processMessageWithStreaming(conversationId, messageId, sessionId,
|
|
|
2903
2903
|
}
|
|
2904
2904
|
|
|
2905
2905
|
if (activeExecutions.has(conversationId)) {
|
|
2906
|
-
|
|
2907
|
-
|
|
2906
|
+
const existing = activeExecutions.get(conversationId);
|
|
2907
|
+
if (existing.sessionId !== sessionId) {
|
|
2908
|
+
debugLog(`[stream] Conversation ${conversationId} already has active execution (different session), aborting duplicate`);
|
|
2909
|
+
return;
|
|
2910
|
+
}
|
|
2908
2911
|
}
|
|
2909
2912
|
|
|
2910
2913
|
if (rateLimitState.has(conversationId)) {
|
|
@@ -3249,6 +3252,9 @@ function scheduleRetry(conversationId, messageId, content, agentId, model) {
|
|
|
3249
3252
|
timestamp: Date.now()
|
|
3250
3253
|
});
|
|
3251
3254
|
|
|
3255
|
+
const startTime = Date.now();
|
|
3256
|
+
activeExecutions.set(conversationId, { pid: null, startTime, sessionId: newSession.id, lastActivity: startTime });
|
|
3257
|
+
|
|
3252
3258
|
debugLog(`[rate-limit] Calling processMessageWithStreaming for retry`);
|
|
3253
3259
|
processMessageWithStreaming(conversationId, messageId, newSession.id, content, agentId, model)
|
|
3254
3260
|
.catch(err => {
|
|
@@ -3285,6 +3291,9 @@ function drainMessageQueue(conversationId) {
|
|
|
3285
3291
|
timestamp: Date.now()
|
|
3286
3292
|
});
|
|
3287
3293
|
|
|
3294
|
+
const startTime = Date.now();
|
|
3295
|
+
activeExecutions.set(conversationId, { pid: null, startTime, sessionId: session.id, lastActivity: startTime });
|
|
3296
|
+
|
|
3288
3297
|
processMessageWithStreaming(conversationId, next.messageId, session.id, next.content, next.agentId, next.model)
|
|
3289
3298
|
.catch(err => debugLog(`[queue] Error processing queued message: ${err.message}`));
|
|
3290
3299
|
}
|
package/static/index.html
CHANGED
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
*, *::before, *::after { box-sizing: border-box; }
|
|
24
24
|
|
|
25
25
|
:root {
|
|
26
|
-
--color-primary: #
|
|
27
|
-
--color-primary-dark: #
|
|
26
|
+
--color-primary: #6b7280;
|
|
27
|
+
--color-primary-dark: #4b5563;
|
|
28
28
|
--color-bg-primary: #ffffff;
|
|
29
29
|
--color-bg-secondary: #f9fafb;
|
|
30
30
|
--color-bg-code: #1f2937;
|
|
@@ -34,18 +34,20 @@
|
|
|
34
34
|
--color-success: #10b981;
|
|
35
35
|
--color-error: #ef4444;
|
|
36
36
|
--color-warning: #f59e0b;
|
|
37
|
-
--color-info: #
|
|
37
|
+
--color-info: #6b7280;
|
|
38
38
|
--sidebar-width: 300px;
|
|
39
39
|
--header-height: 52px;
|
|
40
40
|
--msg-max-width: 100%;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
html.dark {
|
|
44
|
-
--color-
|
|
45
|
-
--color-
|
|
46
|
-
--color-
|
|
47
|
-
--color-
|
|
48
|
-
--color-
|
|
44
|
+
--color-primary: #9ca3af;
|
|
45
|
+
--color-primary-dark: #6b7280;
|
|
46
|
+
--color-bg-primary: #0f0f0f;
|
|
47
|
+
--color-bg-secondary: #1a1a1a;
|
|
48
|
+
--color-text-primary: #e5e5e5;
|
|
49
|
+
--color-text-secondary: #a3a3a3;
|
|
50
|
+
--color-border: #2a2a2a;
|
|
49
51
|
}
|
|
50
52
|
|
|
51
53
|
html, body {
|
|
@@ -740,8 +740,7 @@ class StreamingRenderer {
|
|
|
740
740
|
const input = block.input || {};
|
|
741
741
|
|
|
742
742
|
const details = document.createElement('details');
|
|
743
|
-
details.className = 'block-tool-use folded-tool
|
|
744
|
-
details.setAttribute('open', '');
|
|
743
|
+
details.className = 'block-tool-use folded-tool';
|
|
745
744
|
if (block.id) details.dataset.toolUseId = block.id;
|
|
746
745
|
details.classList.add(this._getBlockTypeClass('tool_use'));
|
|
747
746
|
details.classList.add(this._getToolColorClass(toolName));
|
|
@@ -1297,8 +1296,7 @@ class StreamingRenderer {
|
|
|
1297
1296
|
*/
|
|
1298
1297
|
renderBlockSystem(block, context) {
|
|
1299
1298
|
const details = document.createElement('details');
|
|
1300
|
-
details.className = 'folded-tool folded-tool-info
|
|
1301
|
-
details.setAttribute('open', '');
|
|
1299
|
+
details.className = 'folded-tool folded-tool-info';
|
|
1302
1300
|
details.dataset.eventType = 'system';
|
|
1303
1301
|
details.classList.add(this._getBlockTypeClass('system'));
|
|
1304
1302
|
const desc = block.model ? this.escapeHtml(block.model) : 'Session';
|
|
@@ -1335,8 +1333,7 @@ class StreamingRenderer {
|
|
|
1335
1333
|
const statsDesc = [duration, cost, turns ? turns + ' turns' : ''].filter(Boolean).join(' / ');
|
|
1336
1334
|
|
|
1337
1335
|
const details = document.createElement('details');
|
|
1338
|
-
details.className = isError ? 'folded-tool folded-tool-error
|
|
1339
|
-
details.setAttribute('open', '');
|
|
1336
|
+
details.className = isError ? 'folded-tool folded-tool-error' : 'folded-tool';
|
|
1340
1337
|
details.dataset.eventType = 'result';
|
|
1341
1338
|
details.classList.add(this._getBlockTypeClass(isError ? 'error' : 'result'));
|
|
1342
1339
|
|