davsclaus opened a new pull request, #27139:
URL: https://github.com/apache/camel/pull/27139

   _Claude Code on behalf of davsclaus_
   
   [CAMEL-25161](https://issues.apache.org/jira/browse/CAMEL-25161)
   
   The AI project overview (CAMEL-25143) labels routes and groups them into 
capabilities. Inside a route, the business view of the TUI diagram had nothing 
more to show than the technical one: a `when` box read 
`when[jsonpath{$.order[?(@.product=='widget')]}]`. This PR gives the decision 
points of a route plain-language labels. It also makes the business view read 
in words throughout.
   
   ### Decision points in the overview
   
   - The YAML, XML and Java readers of the project overview collect choice, 
when, otherwise, filter, split, aggregate, loop, doTry, doCatch and 
circuitBreaker, with what they decide on (`simple: ${header.x} > 5`, the 
exception types). There are at most 10 per route, so the prompt stays small 
enough for local models.
   - A decision point is addressed by its path in the route, such as 
`choice[1]/when[2]` or `split[1]/filter[1]`. Only decision points count, so 
adding a `to` or `log` does not change a path. Every DSL gives the same path, 
and so does the running route tree, which is how the TUI matches its nodes to 
the labels.
   
   ### camel-summary.md
   
   - The prompt lists the decision points, and the answer has a `STEPS:` 
section: `route / path: label | why`.
   - The file keeps them in a `## Steps ✦ AI-assisted` section. Labels of 
decision points that are gone are dropped on merge.
   - `camel_project_overview` lists the decisions of a route with 
`aiLabel`/`aiWhy`. `camel_save_project_summary` takes `steps`, also in the 
camel-jbang-mcp server.
   - A route that starts a flow (an entry point that passes work to another 
route) is never grouped as utility. A local model put the file intake of 
widget-gadget there. The answer parser drops it from UTILITY, the grouping puts 
it with the one group it feeds, and the prompt says so. The grouping from the 
facts alone is unchanged.
   
   ### TUI route diagram, business view (`b`)
   
   - A decision point shows its AI label, marked `✦`. The Info panel of the 
node shows the label, why, and the code. The technical view keeps the 
expression.
   - Endpoints without a description read in words: `File: src/main/data`, 
`AMQP: queue:order.queue` (the component's title from the catalog, without 
options).
   - A box linking to another route shows that route's description or AI label. 
A route's own label comes from its description, its AI label or what it 
consumes, not the generated `route1`.
   - Link markers: a `to` box that shows the route it links to has only the 
arrow. A `from` box names its caller in words. The Info panel shows the linked 
route's label beside its id.
   - Fix: with utility routes turned off, the link from a route's `from` to a 
hidden caller now works.
   
   Tried in the TUI on the Spring Boot widget-gadget example with a local model 
(qwen3.6:35b-a3b) writing the summary.
   
   ### Tests
   
   - camel-jbang-core AI tests: 329 (new: `RouteDecisionsTest` for 
YAML/XML/Java paths, step labels in `IntegrationSummaryTest`, the utility guard 
in `ProjectCapabilitiesTest`)
   - camel-jbang-mcp: 421
   - camel-jbang-plugin-tui: 1431 (new: `RouteStepHintsTest` with the route 
tree of the route-structure console, `BusinessEndpointLabelsTest`)
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to