This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch pr/CAMEL-24698-source-checks in repository https://gitbox.apache.org/repos/asf/camel.git
commit a9375b80d6881ce173b35eedef3dfd6290e5b291 Author: Claus Ibsen <[email protected]> AuthorDate: Sun Sep 13 21:10:19 2026 +0200 CAMEL-24698: camel-jbang - tighter camel_catalog_doc and camel_run descriptions, so the bean kind keeps its explanation within the tool prefix budget AiPanelPromptBudgetTest: the full tool set was over the 8,500 token budget; the two longest descriptions were trimmed instead of the new bean text on kind. Co-Authored-By: Claude Fable 5.1 <[email protected]> Claude-Session: https://claude.ai/code/session_01Bp3538HRBPMQkb5ta9xRaj --- .../dsl/jbang/core/commands/ai/AuthoringTools.java | 17 +++++------------ .../dsl/jbang/core/commands/mcp/AuthoringTools.java | 13 ++++++------- 2 files changed, 11 insertions(+), 19 deletions(-) diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ai/AuthoringTools.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ai/AuthoringTools.java index fc066827d054..3aeb08038f66 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ai/AuthoringTools.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/ai/AuthoringTools.java @@ -61,20 +61,15 @@ public final class AuthoringTools { /** Registers the authoring tools; called once by the {@link ToolRegistry}. */ static void register(Consumer<ToolDescriptor> registry) { registry.accept(tool("camel_catalog_doc", - "Camel catalog documentation of a component, data format, language or EIP (description, options, " - + "Maven coordinates), with the URI rules of a component. For simple also its " - + "syntax rules, functions and operators: count and names by group, or with " - + "optionsFilter the matching ones with parameters and examples. endpoint " - + "validates a URI: unknown or invalid options, missing path.") + "Catalog documentation of a component, data format, language, EIP or built-in bean: description, options, Maven coordinates, the URI rules of a component; for simple its functions and operators (optionsFilter narrows them). endpoint validates a URI.") .param("name", "string", "Name, e.g. kafka, json-jackson, simple, timer, choice, split", false) .param("endpoint", "string", "Endpoint URI to check, e.g. kafka:orders?brokers=host:9092", false) .param("kind", "string", - "component, dataformat, language, eip or bean (auto-detected); a bean is a built-in class such as StringAggregationStrategy, with how to declare and use it", + "component, dataformat, language, eip or bean (auto-detected; a bean is a built-in class such as StringAggregationStrategy, with how to declare and use it)", false) .param("includeOptions", "boolean", "Include the options (default true)", false) .param("includeDoc", "boolean", "Include the full AsciiDoc page (default false)", false) - .param("docPage", "string", "A language doc sub-page (simple: functions, operators, ognl, advanced)" - + " to return as text", + .param("docPage", "string", "simple doc sub-page to return as text (functions, operators, ognl, advanced)", false) .param("optionsFilter", "string", "Keyword to match in option names or descriptions", false) .param("camelVersion", "string", VERSION_DESC, false) @@ -92,7 +87,7 @@ public final class AuthoringTools { + "description. camel_catalog_doc then gives the options of one.") .param("term", "string", "What to look for, e.g. mqtt, s3, database, csv", true) .param("kind", "string", - "component, dataformat, language or bean (default: all); kind bean with an interface name such as AggregationStrategy lists the built-in implementations with their class names", + "component, dataformat, language or bean (default: all); bean with an interface name such as AggregationStrategy lists the built-in implementations", false) .param("limit", "integer", "Maximum matches per kind (default 10)", false) .param("camelVersion", "string", VERSION_DESC, false) @@ -180,9 +175,7 @@ public final class AuthoringTools { })); registry.accept(tool("camel_run", - "Starts an integration from a project directory with camel run in a separate process, in dev mode by " - + "default (route files reload when written). Returns the pid and log file once it is " - + "up; camel_get_log and camel_get_errors then tell how it does, camel_control stops it.") + "Starts an integration with camel run in a separate process, in dev mode by default (files reload when written). Returns the pid and log file; camel_get_log, camel_get_errors and camel_control follow it.") .param("directory", "string", "Project directory to run in", true) .param("files", "string", "Source files to run, comma-separated (default: every route file in the" + " directory)", diff --git a/dsl/camel-jbang/camel-jbang-mcp/src/main/java/org/apache/camel/dsl/jbang/core/commands/mcp/AuthoringTools.java b/dsl/camel-jbang/camel-jbang-mcp/src/main/java/org/apache/camel/dsl/jbang/core/commands/mcp/AuthoringTools.java index 31776b71407f..e2a42131c791 100644 --- a/dsl/camel-jbang/camel-jbang-mcp/src/main/java/org/apache/camel/dsl/jbang/core/commands/mcp/AuthoringTools.java +++ b/dsl/camel-jbang/camel-jbang-mcp/src/main/java/org/apache/camel/dsl/jbang/core/commands/mcp/AuthoringTools.java @@ -58,11 +58,11 @@ public class AuthoringTools { required = false) String name, @ToolArg(description = "Endpoint URI to check, e.g. kafka:orders?brokers=host:9092", required = false) String endpoint, - @ToolArg(description = "component, dataformat, language or eip (auto-detected)", required = false) String kind, + @ToolArg(description = "component, dataformat, language, eip or bean (auto-detected; a bean is a built-in class such as StringAggregationStrategy, with how to declare and use it)", + required = false) String kind, @ToolArg(description = "Include the options (default true)", required = false) Boolean includeOptions, @ToolArg(description = "Include the full AsciiDoc page (default false)", required = false) Boolean includeDoc, - @ToolArg(description = "A language doc sub-page (simple: functions, operators, ognl, advanced) to return" - + " as text", + @ToolArg(description = "simple doc sub-page to return as text (functions, operators, ognl, advanced)", required = false) String docPage, @ToolArg(description = "Keyword to match in option names or descriptions", required = false) String optionsFilter, @ToolArg(description = VERSION_DESC, required = false) String camelVersion) { @@ -77,7 +77,8 @@ public class AuthoringTools { + "description. camel_catalog_doc then gives the options of one.") public JsonObject camel_catalog_find( @ToolArg(description = "What to look for, e.g. mqtt, s3, database, csv", required = true) String term, - @ToolArg(description = "component, dataformat or language (default: all)", required = false) String kind, + @ToolArg(description = "component, dataformat, language or bean (default: all); bean with an interface name such as AggregationStrategy lists the built-in implementations", + required = false) String kind, @ToolArg(description = "Maximum matches per kind (default 10)", required = false) Integer limit, @ToolArg(description = VERSION_DESC, required = false) String camelVersion) { return call("camel_catalog_find", args("term", term, "kind", kind, "limit", limit, @@ -137,9 +138,7 @@ public class AuthoringTools { } @Tool(annotations = @Tool.Annotations(readOnlyHint = false, destructiveHint = false, openWorldHint = true), - description = "Starts an integration from a project directory with camel run in a separate process, in dev " - + "mode by default (route files reload when written). Returns the pid and log file once it is " - + "up; camel_get_log and camel_get_errors then tell how it does, camel_control stops it.") + description = "Starts an integration with camel run in a separate process, in dev mode by default (files reload when written). Returns the pid and log file; camel_get_log, camel_get_errors and camel_control follow it.") public JsonObject camel_run( @ToolArg(description = "Project directory to run in (absolute path)", required = true) String directory, @ToolArg(description = "Source files to run, comma-separated (default: every route file in the"
