[ 
https://issues.apache.org/jira/browse/CAMEL-26353?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen updated CAMEL-26353:
--------------------------------
    Description: 
The PNG of a route diagram (camel cmd route-diagram, the 
camel_render_route_diagram MCP tool, the route-diagram developer console with 
format=png) draws each step as a card with an icon, its kind and its detail 
(CAMEL-26348). A card is taller than the old box, so a large route makes a tall 
image, and it reaches the size limit of an image (16384 pixels) sooner, where 
the command says to narrow the routes with --filter. The ASCII and Unicode 
diagrams have one level only too: a box per step.

The diagram of the Camel CLI in the terminal (camel tui, the Diagram tab) has 
zoom levels for this, see "Zoom and Folding" in 
docs/user-manual/modules/ROOT/pages/camel-jbang-tui-diagram.adoc, and 
RouteDensity / RouteDiagramZoom in camel-jbang-plugin-tui:

* detailed: a box per step, with up to three lines of text
* compact: a box per step with one line of text, the steps closer together 
(about twice as many steps fit)
* bare: no boxes, each step a mark and its text on one row, the branches side 
by side
* overview: each step a cell in the colour of its EIP, to see the shape of a 
large route
* fit: the most detailed level in which the whole route fits

Today these levels are only in the terminal UI. Make them available from the 
command line as well, for the image and for the text diagrams: camel cmd 
route-diagram --zoom=detailed|compact|bare|overview|fit, the same option for 
the camel_render_route_diagram MCP tool, and a zoom query parameter for the 
route-diagram developer console.

The text diagrams matter for AI agents: an agent runs camel cmd route-diagram 
(or calls the MCP tool) with --theme=unicode or ascii and shows the diagram in 
its answer. A bare or compact text diagram of a large route fits a chat answer 
where the detailed one of today does not, and the agent can pick the level with 
fit, or zoom in on the part it talks about.

* Image: detailed is the card of today, compact a card of one line (the kind 
and its detail on one line, a smaller icon), bare a mark and its text, overview 
cells. Fit picks the most detailed level whose image is not taller than a given 
height (or the size limit).
* ASCII and Unicode: the same levels as the terminal UI draws them (bare and 
overview are text already there), with fit to a given number of rows or columns.

The levels are worked out in camel-jbang-plugin-tui today (RouteDensity, 
RouteDiagramWidget). Moving what decides a level (the room per step, the gaps, 
the text per step) into camel-diagram, beside RouteDiagramLayoutEngine, lets 
the terminal UI, the CLI and the MCP tool share it, so the three show the same 
diagram at the same level.

What each level keeps of the body types on the arrows (CAMEL-26351) and the 
problems of the steps (CAMEL-26352): at compact the labels and callouts as they 
are; at bare and overview the warning marks, with the problems in the numbered 
list below the route.

_Filed by Claude Code on behalf of davsclaus_

  was:
The PNG of a route diagram (camel cmd route-diagram, the 
camel_render_route_diagram MCP tool, the route-diagram developer console with 
format=png) draws each step as a card with an icon, its kind and its detail 
(CAMEL-26348). A card is taller than the old box, so a large route makes a tall 
image, and it reaches the size limit of an image (16384 pixels) sooner, where 
the command says to narrow the routes with --filter.

The diagram of the Camel CLI in the terminal (camel tui, the Diagram tab) has 
zoom levels for this, see "Zoom and Folding" in 
docs/user-manual/modules/ROOT/pages/camel-jbang-tui-diagram.adoc, and 
RouteDensity / RouteDiagramZoom in camel-jbang-plugin-tui:

* detailed: a box per step, with up to three lines of text
* compact: a box per step with one line of text, the steps closer together 
(about twice as many steps fit)
* bare: no boxes, each step a mark and its text on one row, the branches side 
by side
* overview: each step a cell in the colour of its EIP, to see the shape of a 
large route
* fit: the most detailed level in which the whole route fits

Add the same levels to the image, for example camel cmd route-diagram 
--zoom=detailed|compact|bare|overview|fit: detailed is the card of today, 
compact a card of one line (the kind and its detail on one line, a smaller 
icon), bare a mark and its text, overview cells. Fit picks the most detailed 
level whose image is not taller than a given height (or the size limit). The 
same option for the MCP tool, and a zoom query parameter for the route-diagram 
developer console.

What each level keeps of the body types on the arrows (CAMEL-26351) and the 
problems of the steps (CAMEL-26352): at compact the labels and callouts as they 
are; at bare and overview the warning marks, with the problems in the numbered 
list below the route.

The ASCII and Unicode diagrams could take the same levels later.

_Filed by Claude Code on behalf of davsclaus_

        Summary: camel-diagram - zoom levels for route diagrams (image and 
text), as in the diagram of the Camel CLI  (was: camel-diagram - zoom levels 
for a route diagram image, as in the diagram of the Camel CLI)

> camel-diagram - zoom levels for route diagrams (image and text), as in the 
> diagram of the Camel CLI
> ---------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-26353
>                 URL: https://issues.apache.org/jira/browse/CAMEL-26353
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-diagram, camel-jbang
>            Reporter: Claus Ibsen
>            Priority: Minor
>             Fix For: 4.24.0
>
>
> The PNG of a route diagram (camel cmd route-diagram, the 
> camel_render_route_diagram MCP tool, the route-diagram developer console with 
> format=png) draws each step as a card with an icon, its kind and its detail 
> (CAMEL-26348). A card is taller than the old box, so a large route makes a 
> tall image, and it reaches the size limit of an image (16384 pixels) sooner, 
> where the command says to narrow the routes with --filter. The ASCII and 
> Unicode diagrams have one level only too: a box per step.
> The diagram of the Camel CLI in the terminal (camel tui, the Diagram tab) has 
> zoom levels for this, see "Zoom and Folding" in 
> docs/user-manual/modules/ROOT/pages/camel-jbang-tui-diagram.adoc, and 
> RouteDensity / RouteDiagramZoom in camel-jbang-plugin-tui:
> * detailed: a box per step, with up to three lines of text
> * compact: a box per step with one line of text, the steps closer together 
> (about twice as many steps fit)
> * bare: no boxes, each step a mark and its text on one row, the branches side 
> by side
> * overview: each step a cell in the colour of its EIP, to see the shape of a 
> large route
> * fit: the most detailed level in which the whole route fits
> Today these levels are only in the terminal UI. Make them available from the 
> command line as well, for the image and for the text diagrams: camel cmd 
> route-diagram --zoom=detailed|compact|bare|overview|fit, the same option for 
> the camel_render_route_diagram MCP tool, and a zoom query parameter for the 
> route-diagram developer console.
> The text diagrams matter for AI agents: an agent runs camel cmd route-diagram 
> (or calls the MCP tool) with --theme=unicode or ascii and shows the diagram 
> in its answer. A bare or compact text diagram of a large route fits a chat 
> answer where the detailed one of today does not, and the agent can pick the 
> level with fit, or zoom in on the part it talks about.
> * Image: detailed is the card of today, compact a card of one line (the kind 
> and its detail on one line, a smaller icon), bare a mark and its text, 
> overview cells. Fit picks the most detailed level whose image is not taller 
> than a given height (or the size limit).
> * ASCII and Unicode: the same levels as the terminal UI draws them (bare and 
> overview are text already there), with fit to a given number of rows or 
> columns.
> The levels are worked out in camel-jbang-plugin-tui today (RouteDensity, 
> RouteDiagramWidget). Moving what decides a level (the room per step, the 
> gaps, the text per step) into camel-diagram, beside RouteDiagramLayoutEngine, 
> lets the terminal UI, the CLI and the MCP tool share it, so the three show 
> the same diagram at the same level.
> What each level keeps of the body types on the arrows (CAMEL-26351) and the 
> problems of the steps (CAMEL-26352): at compact the labels and callouts as 
> they are; at bare and overview the warning marks, with the problems in the 
> numbered list below the route.
> _Filed by Claude Code on behalf of davsclaus_



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to