agentgui 1.0.877 → 1.0.879
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/lib/agent-discovery.js +1 -0
- package/lib/claude-runner-agents.js +1 -0
- package/lib/stream-event-handler.js +2 -1
- package/package.json +1 -1
- package/test.js +11 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
## [Unreleased] - surface stream chunk persistence errors
|
|
2
|
+
|
|
3
|
+
- lib/stream-event-handler.js: `queries.createChunk` failures were swallowed silently in the ACP streaming path. User would see live broadcast events but reload would lose all chunks. Now logs error with conv id, seq, block type for observability.
|
|
4
|
+
|
|
5
|
+
## [Unreleased] - add Hermes Agent (Nous Research) as ACP-compatible agent
|
|
6
|
+
|
|
7
|
+
- lib/agent-discovery.js BINARIES: detect `hermes` CLI in PATH (icon 'h', protocol 'acp')
|
|
8
|
+
- lib/claude-runner-agents.js: register hermes with `hermes acp` entry and shared acpProtocolHandler. Uses stdio JSON-RPC transport (matches hermes-agent's `acp_adapter.entry` which routes stdout to ACP and stderr to logs).
|
|
9
|
+
- test.js: regression case asserting hermes registration shape (buildArgs/protocol/features).
|
|
10
|
+
- Install with: `curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash` then `pip install 'hermes-agent[acp]'` (or included in `[all]` / `[termux]` extras).
|
|
11
|
+
|
|
1
12
|
## [Unreleased] - GUI a11y pass
|
|
2
13
|
|
|
3
14
|
- index.html: remove `maximum-scale=1.0` and `user-scalable=no` from viewport (WCAG 1.4.4 — low-vision users need pinch-zoom)
|
package/lib/agent-discovery.js
CHANGED
|
@@ -19,6 +19,7 @@ const BINARIES = [
|
|
|
19
19
|
{ cmd: 'mistral-vibe', id: 'mistral', name: 'Mistral Vibe', icon: 'M', protocol: 'acp' },
|
|
20
20
|
{ cmd: 'kiro', id: 'kiro', name: 'Kiro CLI', icon: 'k', protocol: 'acp' },
|
|
21
21
|
{ cmd: 'fast-agent', id: 'fast-agent', name: 'fast-agent', icon: 'F', protocol: 'acp' },
|
|
22
|
+
{ cmd: 'hermes', id: 'hermes', name: 'Hermes Agent', icon: 'h', protocol: 'acp' },
|
|
22
23
|
];
|
|
23
24
|
|
|
24
25
|
const CLI_WRAPPERS = [
|
|
@@ -102,3 +102,4 @@ registry.register({ id: 'mistral', name: 'Mistral Vibe', command: 'mistral-vibe'
|
|
|
102
102
|
registry.register({ id: 'kiro', name: 'Kiro CLI', command: 'kiro', protocol: 'acp', supportsStdin: false, supportedFeatures: ['streaming', 'resume', 'acp-protocol'], buildArgs: () => ['acp'], protocolHandler: acpProtocolHandler });
|
|
103
103
|
registry.register({ id: 'fast-agent', name: 'fast-agent', command: 'fast-agent', protocol: 'acp', supportsStdin: false, supportedFeatures: ['streaming', 'resume', 'acp-protocol'], buildArgs: () => ['acp'], protocolHandler: acpProtocolHandler });
|
|
104
104
|
registry.register({ id: 'kilo', name: 'Kilo CLI', command: 'kilo', protocol: 'acp', supportsStdin: false, npxPackage: '@kilocode/cli', supportedFeatures: ['streaming', 'resume', 'acp-protocol', 'models'], buildArgs: () => ['acp'], protocolHandler: acpProtocolHandler });
|
|
105
|
+
registry.register({ id: 'hermes', name: 'Hermes Agent', command: 'hermes', protocol: 'acp', supportsStdin: false, supportedFeatures: ['streaming', 'resume', 'acp-protocol'], buildArgs: () => ['acp'], protocolHandler: acpProtocolHandler });
|
|
@@ -41,7 +41,8 @@ export function createEventHandler({ queries, activeExecutions, broadcastSync, r
|
|
|
41
41
|
const emitBlock = (block, role, extra) => {
|
|
42
42
|
if (!block || !block.type) return;
|
|
43
43
|
batcherRef.currentSeq = (batcherRef.currentSeq || 0) + 1;
|
|
44
|
-
try { queries.createChunk(sessionId, conversationId, batcherRef.currentSeq, block.type, block); }
|
|
44
|
+
try { queries.createChunk(sessionId, conversationId, batcherRef.currentSeq, block.type, block); }
|
|
45
|
+
catch (err) { console.error(`[stream] createChunk failed conv=${conversationId} seq=${batcherRef.currentSeq} type=${block.type}:`, err.message); }
|
|
45
46
|
broadcastSync({ type: 'streaming_progress', sessionId, conversationId, block, blockRole: role, seq: batcherRef.currentSeq, timestamp: Date.now(), ...extra });
|
|
46
47
|
};
|
|
47
48
|
|
package/package.json
CHANGED
package/test.js
CHANGED
|
@@ -167,5 +167,16 @@ section('workflow-plugin: deps only list active plugins', async () => {
|
|
|
167
167
|
assert.equal(typeof wp.default.init, 'function');
|
|
168
168
|
});
|
|
169
169
|
|
|
170
|
+
section('agent-registry: hermes registered as stdio ACP', async () => {
|
|
171
|
+
const { registry } = await import('./lib/claude-runner-agents.js');
|
|
172
|
+
assert.ok(registry.has('hermes'));
|
|
173
|
+
const h = registry.get('hermes');
|
|
174
|
+
assert.equal(h.name, 'Hermes Agent');
|
|
175
|
+
assert.equal(h.command, 'hermes');
|
|
176
|
+
assert.equal(h.protocol, 'acp');
|
|
177
|
+
assert.deepEqual(h.buildArgs(), ['acp']);
|
|
178
|
+
assert.ok(h.supportedFeatures.includes('acp-protocol'));
|
|
179
|
+
});
|
|
180
|
+
|
|
170
181
|
console.log(`\n${passed} passed, ${failed} failed`);
|
|
171
182
|
process.exit(failed === 0 ? 0 : 1);
|