agentgui 1.0.461 → 1.0.463
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/tool-manager.js +1 -1
- package/package.json +1 -1
- package/static/index.html +3 -1
- package/static/js/client.js +8 -3
- package/static/js/terminal.js +1 -1
- package/static/js/voice.js +46 -0
package/lib/tool-manager.js
CHANGED
|
@@ -28,7 +28,7 @@ const cmpVer = (v1, v2) => { const [a,b] = [v1?.split('.')?.map(Number) || [], v
|
|
|
28
28
|
export function checkToolStatus(toolId) {
|
|
29
29
|
const tool = getTool(toolId);
|
|
30
30
|
if (!tool) return null;
|
|
31
|
-
const installed = isInstalled(tool)
|
|
31
|
+
const installed = isInstalled(tool) || fs.existsSync(tool.marker);
|
|
32
32
|
const version = installed ? detectVersion(tool.binary) : null;
|
|
33
33
|
return { toolId, installed, version, timestamp: Date.now() };
|
|
34
34
|
}
|
package/package.json
CHANGED
package/static/index.html
CHANGED
|
@@ -3169,7 +3169,9 @@
|
|
|
3169
3169
|
</div>
|
|
3170
3170
|
<div class="voice-input-section">
|
|
3171
3171
|
<div class="voice-input-wrapper">
|
|
3172
|
-
<select class="agent-selector voice-agent-selector" data-voice-agent-selector title="Select agent"></select>
|
|
3172
|
+
<select class="agent-selector voice-agent-selector" data-voice-agent-selector title="Select agent"></select>
|
|
3173
|
+
<select class="agent-selector voice-cli-selector" data-voice-cli-selector title="Select CLI tool"></select>
|
|
3174
|
+
<select class="agent-selector voice-model-selector" data-voice-model-selector title="Select model"></select>
|
|
3173
3175
|
<div class="voice-transcript" id="voiceTranscript" data-placeholder="Tap mic and speak..."></div>
|
|
3174
3176
|
<button class="voice-mic-btn" id="voiceMicBtn" title="Toggle recording" aria-label="Voice input">
|
|
3175
3177
|
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
package/static/js/client.js
CHANGED
|
@@ -360,7 +360,9 @@ class AgentGUIClient {
|
|
|
360
360
|
this.ui.sendButton = document.querySelector('[data-send-button]');
|
|
361
361
|
this.ui.cliSelector = document.querySelector('[data-cli-selector]');
|
|
362
362
|
this.ui.agentSelector = document.querySelector('[data-agent-selector]');
|
|
363
|
-
this.ui.modelSelector = document.querySelector('[data-model-selector]');
|
|
363
|
+
this.ui.modelSelector = document.querySelector('[data-model-selector]');
|
|
364
|
+
this.ui.voiceCliSelector = document.querySelector('[data-voice-cli-selector]');
|
|
365
|
+
this.ui.voiceModelSelector = document.querySelector('[data-voice-model-selector]');
|
|
364
366
|
|
|
365
367
|
if (this.ui.cliSelector) {
|
|
366
368
|
this.ui.cliSelector.addEventListener('change', () => {
|
|
@@ -1576,7 +1578,11 @@ class AgentGUIClient {
|
|
|
1576
1578
|
this.wsManager.sendMessage({ type: 'subscribe', conversationId });
|
|
1577
1579
|
}
|
|
1578
1580
|
|
|
1579
|
-
|
|
1581
|
+
let finalPrompt = prompt;
|
|
1582
|
+
if (subAgent && agentId === 'claude-code') {
|
|
1583
|
+
finalPrompt = `use ${subAgent} subagent to ${prompt}`;
|
|
1584
|
+
}
|
|
1585
|
+
const streamBody = { id: conversationId, content: finalPrompt, agentId };
|
|
1580
1586
|
if (model) streamBody.model = model;
|
|
1581
1587
|
if (subAgent) streamBody.subAgent = subAgent;
|
|
1582
1588
|
let result;
|
|
@@ -1980,7 +1986,6 @@ class AgentGUIClient {
|
|
|
1980
1986
|
this.loadModelsForAgent(agentId).then(() => {
|
|
1981
1987
|
if (this.ui.modelSelector && model) {
|
|
1982
1988
|
this.ui.modelSelector.value = model;
|
|
1983
|
-
this.ui.modelSelector.disabled = true;
|
|
1984
1989
|
}
|
|
1985
1990
|
});
|
|
1986
1991
|
}
|
package/static/js/terminal.js
CHANGED
package/static/js/voice.js
CHANGED
|
@@ -125,6 +125,22 @@
|
|
|
125
125
|
if (mainSelector.value) voiceSelector.value = mainSelector.value;
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
+
function syncVoiceCliSelector() {
|
|
129
|
+
var voiceCliSelector = document.querySelector('[data-voice-cli-selector]');
|
|
130
|
+
var mainCliSelector = document.querySelector('[data-cli-selector]');
|
|
131
|
+
if (!voiceCliSelector || !mainCliSelector) return;
|
|
132
|
+
voiceCliSelector.innerHTML = mainCliSelector.innerHTML;
|
|
133
|
+
if (mainCliSelector.value) voiceCliSelector.value = mainCliSelector.value;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
function syncVoiceModelSelector() {
|
|
137
|
+
var voiceModelSelector = document.querySelector('[data-voice-model-selector]');
|
|
138
|
+
var mainModelSelector = document.querySelector('[data-model-selector]');
|
|
139
|
+
if (!voiceModelSelector || !mainModelSelector) return;
|
|
140
|
+
voiceModelSelector.innerHTML = mainModelSelector.innerHTML;
|
|
141
|
+
if (mainModelSelector.value) voiceModelSelector.value = mainModelSelector.value;
|
|
142
|
+
}
|
|
143
|
+
|
|
128
144
|
function setupAgentSelector() {
|
|
129
145
|
var voiceSelector = document.querySelector('[data-voice-agent-selector]');
|
|
130
146
|
if (!voiceSelector) return;
|
|
@@ -139,6 +155,36 @@
|
|
|
139
155
|
});
|
|
140
156
|
}
|
|
141
157
|
window.addEventListener('agents-loaded', syncVoiceSelector);
|
|
158
|
+
|
|
159
|
+
var mainCliSelector = document.querySelector('[data-cli-selector]');
|
|
160
|
+
if (mainCliSelector) {
|
|
161
|
+
syncVoiceCliSelector();
|
|
162
|
+
mainCliSelector.addEventListener('change', function() {
|
|
163
|
+
var voiceCliSelector = document.querySelector('[data-voice-cli-selector]');
|
|
164
|
+
if (voiceCliSelector) voiceCliSelector.value = mainCliSelector.value;
|
|
165
|
+
});
|
|
166
|
+
var voiceCliSelector = document.querySelector('[data-voice-cli-selector]');
|
|
167
|
+
if (voiceCliSelector) {
|
|
168
|
+
voiceCliSelector.addEventListener('change', function() {
|
|
169
|
+
mainCliSelector.value = voiceCliSelector.value;
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
var mainModelSelector = document.querySelector('[data-model-selector]');
|
|
175
|
+
if (mainModelSelector) {
|
|
176
|
+
syncVoiceModelSelector();
|
|
177
|
+
mainModelSelector.addEventListener('change', function() {
|
|
178
|
+
var voiceModelSelector = document.querySelector('[data-voice-model-selector]');
|
|
179
|
+
if (voiceModelSelector) voiceModelSelector.value = mainModelSelector.value;
|
|
180
|
+
});
|
|
181
|
+
var voiceModelSelector = document.querySelector('[data-voice-model-selector]');
|
|
182
|
+
if (voiceModelSelector) {
|
|
183
|
+
voiceModelSelector.addEventListener('change', function() {
|
|
184
|
+
mainModelSelector.value = voiceModelSelector.value;
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
}
|
|
142
188
|
}
|
|
143
189
|
|
|
144
190
|
function setupTTSToggle() {
|