Claus Ibsen created CAMEL-26690:
-----------------------------------

             Summary: camel-jbang - AI tools: Citrus test refusals show the 
send and receive actions, column and misread messages give lines that work, an 
sftp login, a header read in a split, jsonpath at write time, and eval on a 
JSON text body
                 Key: CAMEL-26690
                 URL: https://issues.apache.org/jira/browse/CAMEL-26690
             Project: Camel
          Issue Type: Improvement
          Components: camel-jbang, camel-yaml-dsl, camel-jbang-mcp
            Reporter: Claus Ibsen
             Fix For: 4.24.0


Follow-ups from the r28 run of the local-model benchmark (qwen3.6, 7 rounds), 
in four pull requests:
* Citrus tests: steps 1 and 2 of test-citrus-orders never passed (0/7 in r26 
and r28), and every refusal was right. The model put uri, method and 
expectStatus straight under http:, and wrote the expected body as text/contains 
where Citrus wants data:. The refusal now shows the two http actions (send the 
request, then receive the response) with the lines to write, and that the body 
goes under data: (with a jsonPath validate for single fields). A test that 
calls the integration without starting it gets the camel: cli: run action to 
add. The refusal no longer points to camel_catalog_examples, a tool the model 
did not have.
* The column message offered two columns that both gave invalid YAML, and the 
model sent the same file 16 times. It now names a place that passes the schema 
and gives the lines to write. The write tool moves steps: or otherwise: written 
in the column of the list dashes when exactly one place is valid.
* Three messages misread what the model wrote: a literal \n read as 
concatenation, the wrong list named for a top-level - route:, and a marshal 
into a variable not seen. Each now says what is wrong.
* The errorHandler hint suggested an errorHandler without its kind, which is 
not valid. It now gives the handler with its kind (defaultErrorHandler, 
deadLetterChannel).
* A to: sftp or ftp without a login logs in as anonymous and fails at runtime. 
When another endpoint of the same server in the project logs in, the write now 
reports it with the login to add.
* A ${header.x} read in a split that no step sets (toD http://.../${header.sku} 
gave 100 errors of 404) is now reported, with ${body[x]} or a variable to read 
instead.
* A jsonpath expression that does not compile ($[...][]) failed only at 
runtime; it is now compiled at write time (camel-jsonpath is downloaded once 
per process when the CLI does not have it, as the expression tool does).
* The expression tool read a JSON text body as text, so field reads failed and 
the model tried 21 times. It now evaluates field reads on the parsed JSON and 
says so, and the third identical evaluation gets a short note.



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

Reply via email to