[ 
https://issues.apache.org/jira/browse/CAMEL-25870?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18129074#comment-18129074
 ] 

Claus Ibsen commented on CAMEL-25870:
-------------------------------------

Merged in PR https://github.com/apache/camel/pull/28151 (eb8c99f15e74).

_Claude Code on behalf of davsclaus_

> camel-yaml-dsl-validator - say where a language goes, translate a key in the 
> column of a list, - stop, and keep JSON in the constant hint
> -----------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-25870
>                 URL: https://issues.apache.org/jira/browse/CAMEL-25870
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-yaml-dsl
>            Reporter: Claus Ibsen
>            Assignee: Claus Ibsen
>            Priority: Minor
>             Fix For: 4.24.0
>
>
> Four messages of the YAML DSL validator ({{camel validate yaml}}, and the 
> source checks of the camel-jbang AI tools) did not help a coding agent fix 
> the route, in a night of runs against a local model. In some runs the agent 
> gave up on the step.
> *1. A language written as a step gets "did you mean 'sample'?"*
> {noformat}
> - simple: "${body}"
> {noformat}
> gets "property 'simple' is not defined in the schema ... (did you mean 
> 'sample'?)". The Sample EIP is not what was meant.
> Fix: for a language key as a step: "'simple' is a language, not a step: an 
> expression is written in a step that uses it, such as - setBody: {expression: 
> {simple: {expression: "${body}"}}} to set the body, or - filter: ...".
> *2. A key in the column of the dashes of a list gets the raw parser message*
> {noformat}
> when:
>   - simple: "${body} == 'a'"
>   steps:
> {noformat}
> gets "while parsing a block collection ... expected <block end>, but found 
> '?'" ('?' is the parser's name for a key). The same happens for onFallback: 
> written under the - to: of the steps: of a circuitBreaker.
> Fix: the message says that the key is in the column of the - of the list 
> item, so it is part of neither the item nor the key that holds the list, and 
> names the two columns to choose from: the column of the item's keys (steps: 
> of the when) and the column of the key that holds the list (onFallback: next 
> to steps:).
> *3. A step written as a plain name gets "string found, object expected"*
> {{- stop}} gets only the raw schema message.
> Fix: "a step is a key followed by its options: write - stop: {}". For the 
> steps with a short string form, the property is named ({{- to: {uri: 
> "..."}}}).
> *4. The hint for a ${...} in a constant turns JSON into something that is not 
> JSON*
> {noformat}
> constant: '{"error": "unknown order ${header.id}"}'
> {noformat}
> gets "use simple: {expression: "{'error': 'unknown order ${header.id}'}"}". 
> The hint swaps the double quotes for single quotes so the text fits in a 
> double-quoted value. The agent copied it, and the route answered a body that 
> is not JSON.
> Fix: the text is quoted as written, in single quotes when it holds a double 
> quote: "use simple: {expression: '{"error": "unknown order ${header.id}"}'}". 
> The same for the hint "${...} is simple syntax, not groovy".
> _Claude Code on behalf of davsclaus_



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to