import { DynamicStructuredTool } from '@langchain/core/tools'; import type * as t from '@/types'; import { Constants } from '@/common'; export declare const BashExecutionToolSchema: { readonly type: "object"; readonly properties: { readonly command: { readonly type: "string"; readonly description: "The bash command or script to execute.\n- The environment is stateless; variables and state don't persist between executions.\n- Generated files from previous executions are automatically available in \"/mnt/data/\".\n- Files from previous executions are automatically available and can be modified in place.\n- Input code **IS ALREADY** displayed to the user, so **DO NOT** repeat it in your response unless asked.\n- Output code **IS NOT** displayed to the user, so **DO** write all desired output explicitly.\n- IMPORTANT: You MUST explicitly print/output ALL results you want the user to see.\n- Use `echo`, `printf`, or `cat` for all outputs."; }; readonly args: { readonly type: "array"; readonly items: { readonly type: "string"; }; readonly description: "Additional arguments to execute the command with. This should only be used if the input command requires additional arguments to run."; }; }; readonly required: readonly ["command"]; }; export declare const BashExecutionToolDescription: string; /** * Supplemental prompt documenting the tool-output reference feature. * * Hosts should append this (separated by a blank line) to the base * {@link BashExecutionToolDescription} only when * `RunConfig.toolOutputReferences.enabled` is `true`. When the feature * is disabled, including this text would tell the LLM to emit * `{{tool0turn0}}` placeholders that pass through unsubstituted and * leak into the shell. */ export declare const BashToolOutputReferencesGuide: string; /** * Composes the bash tool description, optionally appending the * tool-output references guide. Hosts that enable * `RunConfig.toolOutputReferences` should pass `enableToolOutputReferences: true` * when registering the tool so the LLM learns the `{{…}}` syntax it * will actually be able to use. */ export declare function buildBashExecutionToolDescription(options?: { enableToolOutputReferences?: boolean; }): string; export declare const BashExecutionToolName = Constants.BASH_TOOL; /** * Default bash tool definition using the base description. * * When `RunConfig.toolOutputReferences.enabled` is `true`, build a * reference-aware description with * {@link buildBashExecutionToolDescription} * (`{ enableToolOutputReferences: true }`) and construct a custom * definition using it — using this constant as-is leaves the LLM * unaware of the `{{toolturn}}` syntax. */ export declare const BashExecutionToolDefinition: { readonly name: Constants.BASH_TOOL; readonly description: string; readonly schema: { readonly type: "object"; readonly properties: { readonly command: { readonly type: "string"; readonly description: "The bash command or script to execute.\n- The environment is stateless; variables and state don't persist between executions.\n- Generated files from previous executions are automatically available in \"/mnt/data/\".\n- Files from previous executions are automatically available and can be modified in place.\n- Input code **IS ALREADY** displayed to the user, so **DO NOT** repeat it in your response unless asked.\n- Output code **IS NOT** displayed to the user, so **DO** write all desired output explicitly.\n- IMPORTANT: You MUST explicitly print/output ALL results you want the user to see.\n- Use `echo`, `printf`, or `cat` for all outputs."; }; readonly args: { readonly type: "array"; readonly items: { readonly type: "string"; }; readonly description: "Additional arguments to execute the command with. This should only be used if the input command requires additional arguments to run."; }; }; readonly required: readonly ["command"]; }; }; declare function createBashExecutionTool(params?: t.BashExecutionToolParams): DynamicStructuredTool; export { createBashExecutionTool };