erne-universal 0.10.0 → 0.10.1

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.
@@ -17,6 +17,8 @@ const AGENT_DEFINITIONS = [
17
17
  { name: 'senior-developer', room: 'development' },
18
18
  { name: 'feature-builder', room: 'development' },
19
19
  { name: 'pipeline-orchestrator', room: 'conference' },
20
+ { name: 'visual-debugger', room: 'testing' },
21
+ { name: 'documentation-generator', room: 'review' },
20
22
  ];
21
23
 
22
24
  const AGENT_ORDER = [
@@ -25,6 +27,7 @@ const AGENT_ORDER = [
25
27
  'code-reviewer', 'upgrade-assistant',
26
28
  'tdd-guide', 'performance-profiler',
27
29
  'pipeline-orchestrator',
30
+ 'visual-debugger', 'documentation-generator',
28
31
  ];
29
32
 
30
33
  module.exports = { AGENT_ORDER, AGENT_DEFINITIONS };
@@ -214,6 +214,17 @@ const handleEvent = (event) => {
214
214
  return { ok: true };
215
215
  }
216
216
 
217
+ // Visual debug events — log and store
218
+ if (type && type.startsWith('visual-debug:')) {
219
+ const now = new Date().toISOString();
220
+ if (agent && agentState[agent]) {
221
+ agentState[agent].lastEvent = now;
222
+ addHistoryEntry(agent, { type, task: task || null, timestamp: now });
223
+ persistHistory();
224
+ }
225
+ return { ok: true };
226
+ }
227
+
217
228
  // Worker events — update worker state and broadcast
218
229
  if (type && type.startsWith('worker:')) {
219
230
  const now = new Date().toISOString();
@@ -739,7 +750,8 @@ wss.on('connection', (ws) => {
739
750
  // Validate event shape before processing
740
751
  if (!data || typeof data !== 'object' || typeof data.type !== 'string') return;
741
752
  const VALID_TYPES = ['agent:start', 'agent:complete', 'planning:start', 'planning:end', 'audit:complete',
742
- 'worker:start', 'worker:poll', 'worker:task-start', 'worker:task-complete', 'worker:idle'];
753
+ 'worker:start', 'worker:poll', 'worker:task-start', 'worker:task-complete', 'worker:idle',
754
+ 'visual-debug:screenshot', 'visual-debug:fix', 'visual-debug:compare'];
743
755
  if (!VALID_TYPES.includes(data.type)) return;
744
756
 
745
757
  const result = handleEvent(data);
package/lib/worker.js CHANGED
@@ -23,7 +23,11 @@ module.exports = async function worker() {
23
23
 
24
24
  // 1. Load config
25
25
  const fullPath = path.resolve(configPath);
26
- const config = loadConfig(fullPath);
26
+ const { config, error: configError } = loadConfig(fullPath);
27
+ if (configError) {
28
+ console.error(' Config error: ' + configError);
29
+ process.exit(1);
30
+ }
27
31
  const validation = validateConfig(config);
28
32
  if (!validation.valid) {
29
33
  console.error(' Config errors:');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "erne-universal",
3
- "version": "0.10.0",
3
+ "version": "0.10.1",
4
4
  "description": "Complete AI coding agent harness for React Native and Expo development",
5
5
  "keywords": [
6
6
  "react-native",
@@ -23,7 +23,10 @@ try {
23
23
  if (age < TWENTY_FOUR_HOURS) process.exit(0);
24
24
 
25
25
  // Refresh scan (JSON only, skip dep health for speed)
26
- const { runScan } = require('../../lib/audit-scanner');
26
+ let runScan;
27
+ try { runScan = require('erne-universal/lib/audit-scanner').runScan; } catch {
28
+ try { runScan = require('../../lib/audit-scanner').runScan; } catch { process.exit(0); }
29
+ }
27
30
  const auditData = runScan(cwd, { skipDepHealth: true, maxFiles: 500 });
28
31
 
29
32
  const docsDir = path.join(cwd, 'erne-docs');