Repository navigation
feat(web-shell): support compact echarts full data blocks #6232
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
wenshao
merged 35 commits into
QwenLM:main
from
zhangxy-zju:feat/web-shell-code-block-renderer
Jul 4, 2026
Merged
Changes from 2 commits
Commits
Show all changes
35 commits
Select commit
Hold shift + click to select a range
d0ef6d8
feat(web-shell): support custom code block rendering
zhangxy-zju 634772e
fix(web-shell): harden custom code block rendering
zhangxy-zju 6d706dc
docs: add skill capability gating design
zhangxy-zju 62dbb51
fix(web-shell): make chart skill host supplied
zhangxy-zju 7daeebf
docs(web-shell): write chart skill in English
zhangxy-zju be64d78
docs(web-shell): document full-data chart payload
zhangxy-zju 031e949
docs(web-shell): use dataset-backed chart payload
zhangxy-zju 68bec83
feat(web-shell): add echarts full-data renderer
zhangxy-zju e6f228a
chore(web-shell): keep chart skill host supplied
zhangxy-zju a25192d
fix(web-shell): show loading for streaming chart blocks
zhangxy-zju bcf9c35
style(web-shell): polish echarts full-data renderer
zhangxy-zju eb0da5d
Merge remote-tracking branch 'origin/main' into feat/web-shell-code-b…
zhangxy-zju e689175
fix(web-shell): harden custom code block language parsing
zhangxy-zju dde6c54
fix(web-shell): harden echarts full-data renderer
zhangxy-zju a8dc8fb
fix(web-shell): polish echarts renderer followups
zhangxy-zju 9464e11
fix(web-shell): reuse enhanced table for chart data
zhangxy-zju d43ca8f
fix(web-shell): recover chart renderer after errors
zhangxy-zju 9e76749
Merge branch 'main' into feat/web-shell-code-block-renderer
zhangxy-zju 56ed1d3
fix(web-shell): harden chart option handling
zhangxy-zju e98e20d
fix(web-shell): harden chart data rendering
zhangxy-zju 925da8f
Merge branch 'main' into feat/web-shell-code-block-renderer
zhangxy-zju 89ceb55
fix(web-shell): tighten chart renderer guardrails
zhangxy-zju 66445e2
fix(web-shell): update chart fallback title
zhangxy-zju 1c3f39c
fix(web-shell): polish chart renderer review fixes
zhangxy-zju 52dd5cc
feat(web-shell): support compact echarts full data blocks
zhangxy-zju e25bc46
docs(web-shell): add chart skill template
zhangxy-zju ed482f9
fix(web-shell): address chart review suggestions
zhangxy-zju 1514239
fix(web-shell): preserve punctuation language aliases
zhangxy-zju 5e0f44e
fix(web-shell): address chart follow-up review
zhangxy-zju 75202f3
fix(web-shell): harden chart ref resolution
zhangxy-zju 4191476
fix(web-shell): cover chart sanitizer follow-ups
zhangxy-zju 1dffa3b
fix(web-shell): address chart review follow-ups
zhangxy-zju 976e0a5
fix(web-shell): address chart review leftovers
zhangxy-zju 7ba76c3
fix(web-shell): close chart review gaps
zhangxy-zju 31e05f7
fix(web-shell): handle latest chart review
zhangxy-zju File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
55 changes: 55 additions & 0 deletions
55
packages/core/src/skills/bundled/web-shell-charts/SKILL.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,55 @@ | ||
| --- | ||
| name: web-shell-charts | ||
| description: Produce Qwen Code Web Shell renderable ECharts code blocks using the echarts-fulldata fenced-code format. Use when the user asks for charts or visual data output that should render directly in Web Shell. | ||
| when_to_use: When the user asks to create, show, render, or visualize a chart in Qwen Code Web Shell, especially with ECharts or the echarts-fulldata fenced-code format. | ||
| --- | ||
|
|
||
| # Web Shell Charts | ||
|
|
||
| Use this skill to emit charts that a Web Shell host can render from Markdown | ||
| code blocks. | ||
|
|
||
| ## Output Contract | ||
|
|
||
| Emit a fenced code block with the language tag `echarts-fulldata`: | ||
|
|
||
| ```echarts-fulldata | ||
| const option = { | ||
| title: { text: 'Weekly orders' }, | ||
| tooltip: { trigger: 'axis' }, | ||
| xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri'] }, | ||
| yAxis: { type: 'value' }, | ||
| series: [{ type: 'bar', data: [120, 200, 150, 80, 240] }], | ||
| }; | ||
| ``` | ||
|
|
||
| The code block body must define `option` as an Apache ECharts option object. | ||
|
zhangxy-zju marked this conversation as resolved.
Resolved
|
||
| The renderer decides how to load ECharts and execute the block. | ||
|
|
||
| ## Rules | ||
|
|
||
| - Put all chart data inside the code block. Use `dataset.source`, `series.data`, | ||
| or other inline option fields. Do not reference local files, URLs, DOM nodes, | ||
| global app state, or network requests. | ||
| - Keep the block deterministic and side-effect free. Do not use `fetch`, | ||
| `import`, timers, random data, `document`, `window`, or filesystem access. | ||
| - Prefer plain object/array data. Avoid functions in the option unless the user | ||
| explicitly needs custom ECharts callbacks and the host is known to allow them. | ||
| - Close the Markdown fence normally so the Web Shell can render after the fence | ||
| closes or streaming finishes. | ||
| - Use the simplest chart that answers the question. Include clear titles, axis | ||
| labels, units, and readable number formats. | ||
| - If the data is too large, aggregate or sample it before producing the chart | ||
| and explain that reduction outside the code block. | ||
| - If a chart cannot be produced safely, explain the reason in normal Markdown | ||
| and do not emit an `echarts-fulldata` block. | ||
|
|
||
| ## Response Shape | ||
|
|
||
| For chart answers, use this order: | ||
|
|
||
| 1. One short takeaway sentence. | ||
| 2. One `echarts-fulldata` fenced code block containing the complete option. | ||
| 3. Optional notes about data reduction, assumptions, or how to read the chart. | ||
|
|
||
| Do not wrap the chart block in another Markdown container. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.