feat: add expression playground tooling - #175
Conversation
Generate Monaco tokenizers and configurations from CEL, Go template, and JSONPath vocabularies. Keep editor highlighting aligned with evaluator grammars and registered functions, with deterministic output and lexer-backed conformance validation.
Expose reusable evaluation and metadata endpoints for hosts embedding gomplate's language playground. Support CEL, Go templates, JSONPath, and JavaScript with source-positioned errors, typed results, host-provided functions, examples, and bounded responses.
Adds generated Monaco language support and an interactive playground for gomplate expressions and templates. Keeps editor catalogues aligned with evaluator registries while providing completion, hover, theming, object-graph exploration, and live evaluation. Includes generated specs, conformance coverage, package documentation, and playground tests.
Provide a browser playground that evaluates against the real gomplate engine and stays aligned with its language registries. Add generated Monaco definitions with drift detection, plus CI coverage for web typechecking, tests, and builds.
Add concurrency-safe native type registration so CEL preserves registered Go values and JSON field mappings. Upgrade cel-go to v0.31, support optimized execution decorators, and enforce a 10,000-instruction regex limit. Rework benchmark CI to interleave base/head samples and report metric-level CSV regressions with tests. Document the new CEL behavior and upcoming collection helpers. Claude-Session-Id: 019fef64-038b-7471-9962-6019a7d08109
|
Important Review skippedToo many files! This PR contains 114 files, which is 14 over the limit of 100. To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry. ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (6)
📒 Files selected for processing (114)
You can disable this status message by setting the Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
BenchstatBase: 7 minor regression(s) (all within 5% threshold)
11 improvement(s)
Full benchstat output |
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub. |
|
Warning Review the following alerts detected in dependencies. According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.
|
… one JSON artifact Keep tokenizer and configuration data together in one stable generated artifact while preserving the definitions export. BREAKING CHANGE: Remove per-language *.monarch.json and *.config.json artifacts; consumers must use languages.json or the generated definitions export Claude-Session-Id: 36467ebc-f368-4040-bc75-e28248497b4c
Keep generated Monarch and editor configuration metadata in one catalog so the language package has a single import surface while preserving all existing definitions.
Add tolerant text, integer, float, and date conversions for scraped values while preserving clear conversion errors. Normalize constructed CEL maps, lists, and nulls into usable Go values for downstream consumers.
Prevent missing timestamps and durations from being coerced to zero values, avoiding misleading comparison results. BREAKING CHANGE: temporal comparisons with null now propagate null instead of returning epoch-based booleans.
…ld hooks Expose newly supported conversion functions in language metadata and build the language package before tests and type checks so validation uses current generated output
What
Why