Frontmatter
| id | 8189 |
| title | Feat: Neural Link - Advanced Event Simulation |
| state | Closed |
| labels | enhancementai |
| assignees | tobiu |
| createdAt | Dec 28, 2025, 10:19 PM |
| updatedAt | Jan 2, 2026, 12:52 PM |
| githubUrl | https://github.com/neomjs/neo/issues/8189 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 8169 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Jan 2, 2026, 12:52 PM |
Feat: Neural Link - Advanced Event Simulation
tobiu added parent issue #8169 on Dec 28, 2025, 10:19 PM
tobiu assigned to @tobiu on Jan 2, 2026, 11:20 AM

tobiu
Jan 2, 2026, 12:44 PM
Input from Gemini 3:
✦ I have completed the implementation of Advanced Event Simulation.
Changes from Original Plan
The final implementation diverged from the initial scope to better support cross-window orchestration and simplify the API surface:
Orchestration Layer Shift:
- Original:
EventSimulator(Main Thread) was going to handle sequences.- Final:
InteractionService(App Worker) handles the sequencing. This is critical because a Main Thread addon is bound to a single window context. By moving the loop to the App Worker, we can dispatch individual events in a sequence to different windows, enabling cross-window automation (e.g., drag-and-drop across apps).API Simplification:
- Original: Ambiguous mix of single-event params vs.
eventsarray.- Final: The
simulate_eventtool strictly requires aneventsarray. This provides a consistent schema for LLMs and avoids brittleoneOflogic.Explicit Routing:
windowIdis now a mandatory string for every event in the sequence. This ensures deterministic routing in multi-window shared-worker environments.Core Enhancement:
- Enhanced
DomAccess.getElement()to natively supportwindow,document, anddocument.bodykeywords, providing a single source of truth for target resolution.Artifacts
src/main/addon/EventSimulator.mjs: Native event dispatcher.src/ai/client/InteractionService.mjs: Orchestrator service.ai/mcp/server/neural-link/openapi.yaml: Schema definition.src/main/DomAccess.mjs: Core enhancement.
tobiu closed this issue on Jan 2, 2026, 12:52 PM
Context: Agents need to verify interactions beyond simple clicks. Simulating keyboard events and complex mouse actions is critical for E2E testing.
Scope:
Create Main Thread Addon:
src/main/addon/EventSimulator.mjs.dispatch(nodeId, eventConfig).new KeyboardEvent(),new MouseEvent(), etc., andelement.dispatchEvent().Enhance
InteractionService:simulateEvent(sessionId, targetId, options).Neo.main.addon.EventSimulator.dispatch.Tools:
simulate_event: Generic dispatcher.Goal: Enable comprehensive interaction testing via a new main thread addon.