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)