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"

Reply via email to