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 |
| contentTrust | |
| projected | |
| quarantined | 0 |
| signals | [] |
| blockedBy | [] |
| blocking | [] |
| closedAt | Jan 1, 2026, 8:34 PM |
[Neural Link] Feature: Tool get_computed_styles

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.
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.