[
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)