mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-09 13:21:42 +00:00
@opentui/core@0.4.0 bundles only 5 grammars (ts/js/markdown/markdown_inline/ zig) and Hermes registered none of its own — Python/Rust/Go/bash/JSON/C/HTML/ CSS/YAML/TOML tool bodies and fences rendered plain text (never a regression: no addDefaultParsers existed anywhere in branch history). Now: parsers/manifest.json curates the 10 grammars (cpp deliberately dropped — 3.28MB alone); scripts/update-parsers.mjs vendors wasm+highlights.scm with magic/content validation (plain Node fetch — core's update-assets generator is Bun-flavored and its import-module won't bundle under esbuild, so registration skips it and points at the vendored files by runtime-resolved path instead); boundary/parsers.ts registers via the public addDefaultParsers() at entry module load, before the first <code>/<markdown> mount initializes the global tree-sitter client. ~4MB vendored, committed (build inputs, offline-safe). Markdown fence injections need no infoStringMap: fence labels resolve as filetype ids and core's ext maps already normalize py→python, zsh→bash, h→c. Live-smoked in a real renderer: python tool body draws 6 distinct token colors; ```python and ```yaml fences inside markdown highlight too. 6 new tests pin the wiring (vendored assets valid, registration set, filetype routing); visuals stay live-smoke territory per codeBlock.tsx.
447 KiB
447 KiB