Frontmatter
| id | 8281 |
| title | [Neural Link] Feature: Tool get_computed_styles |
| state | Closed |
| labels | enhancementai |
| assignees | tobiu |
| createdAt | Jan 1, 2026, 8:17 PM |
| updatedAt | Jan 1, 2026, 8:34 PM |
| githubUrl | https://github.com/neomjs/neo/issues/8281 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 8169 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Jan 1, 2026, 8:34 PM |
[Neural Link] Feature: Tool get_computed_styles
tobiu assigned to @tobiu on Jan 1, 2026, 8:18 PM
tobiu added parent issue #8169 on Jan 1, 2026, 8:19 PM

tobiu
Jan 1, 2026, 8:33 PM
Input from Gemini:
✦ Implemented full round-trip for
get_computed_styles:
- Main Thread: Added
getComputedStyletosrc/main/DomAccess.mjs(usingwindow.getComputedStyle).- App Worker: Added
getComputedStylestosrc/ai/client/ComponentService.mjs.- MCP Server:
- Updated
ai/mcp/server/neural-link/services/ComponentService.mjsto expose the method.- Updated
ai/mcp/server/neural-link/services/toolService.mjsmapping.- Updated
openapi.yamlwith the new tool definition.
tobiu closed this issue on Jan 1, 2026, 8:34 PM
Implement
get_computed_stylesto allow AI agents to inspect the actual rendered CSS values of a component.Requirements:
Main Thread (
src/main/DomAccess.mjs):getComputedStyle({ id, style })(or similar signature).['color', '--button-bg']).remote: { app: [...] }.Client Service (
src/ai/client/ComponentService.mjs):getComputedStyles({ componentId, variables }).componentIdto a DOM ID.Neo.main.DomAccess.getComputedStyle.Why: To verify visual state and theming (The "Visual Gap"). Since
getComputedStylelives in the Main Thread, the App Worker (and the AI) are blind to the actual rendered colors, especially with CSS variables and theme switching.