testgenius-ai
Version:
🚀 TestGenius AI - The Ultimate E2E Testing Framework for Everyone | No Coding Required • AI-Powered Automation • Beautiful Reports • Zero Complexity
198 lines • 6.74 kB
TypeScript
/**
* 🛠️ Smart Tools - Intelligent Browser Automation Tools
* Provides LangChain tools for the Smart AI Agent
* Adapted from Endorphin AI's sophisticated tool system for WebDriverIO
*/
import { z } from 'zod';
import { Browser } from 'webdriverio';
export interface SmartToolContext {
browser: Browser;
currentUrl?: string;
pageTitle?: string;
lastAction?: string;
errorCount: number;
successCount: number;
}
/**
* Smart Navigation Tool - Enhanced with schema validation
*/
export declare function createSmartNavigationTool(context: SmartToolContext): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
url: z.ZodString;
waitForLoad: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
url: string;
waitForLoad?: boolean | undefined;
}, {
url: string;
waitForLoad?: boolean | undefined;
}>, {
url: string;
waitForLoad?: boolean;
}, {
url: string;
waitForLoad?: boolean | undefined;
}, string>;
/**
* Smart Click Tool - Enhanced with multiple strategies
*/
export declare function createSmartClickTool(context: SmartToolContext): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
selector: z.ZodString;
strategy: z.ZodOptional<z.ZodEnum<["css", "text", "exact-text", "xpath", "id", "name"]>>;
timeout: z.ZodOptional<z.ZodNumber>;
force: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
selector: string;
strategy?: "text" | "id" | "name" | "css" | "exact-text" | "xpath" | undefined;
timeout?: number | undefined;
force?: boolean | undefined;
}, {
selector: string;
strategy?: "text" | "id" | "name" | "css" | "exact-text" | "xpath" | undefined;
timeout?: number | undefined;
force?: boolean | undefined;
}>, {
selector: string;
strategy?: "css" | "text" | "exact-text" | "xpath" | "id" | "name";
timeout?: number;
force?: boolean;
}, {
selector: string;
strategy?: "text" | "id" | "name" | "css" | "exact-text" | "xpath" | undefined;
timeout?: number | undefined;
force?: boolean | undefined;
}, string>;
/**
* Smart Fill Tool - Enhanced with field detection
*/
export declare function createSmartFillTool(context: SmartToolContext): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
selector: z.ZodString;
value: z.ZodString;
strategy: z.ZodOptional<z.ZodEnum<["fill", "type"]>>;
clearFirst: z.ZodOptional<z.ZodBoolean>;
pressEnter: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
selector: string;
value: string;
strategy?: "type" | "fill" | undefined;
clearFirst?: boolean | undefined;
pressEnter?: boolean | undefined;
}, {
selector: string;
value: string;
strategy?: "type" | "fill" | undefined;
clearFirst?: boolean | undefined;
pressEnter?: boolean | undefined;
}>, {
selector: string;
value: string;
strategy?: "fill" | "type";
clearFirst?: boolean;
pressEnter?: boolean;
}, {
selector: string;
value: string;
strategy?: "type" | "fill" | undefined;
clearFirst?: boolean | undefined;
pressEnter?: boolean | undefined;
}, string>;
/**
* Smart Verify Tool - Enhanced with multiple verification types
*/
export declare function createSmartVerifyTool(context: SmartToolContext): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
type: z.ZodEnum<["text", "element", "url", "title", "count"]>;
selector: z.ZodOptional<z.ZodString>;
expected: z.ZodUnion<[z.ZodString, z.ZodNumber]>;
timeout: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
type: "url" | "element" | "text" | "title" | "count";
expected: string | number;
selector?: string | undefined;
timeout?: number | undefined;
}, {
type: "url" | "element" | "text" | "title" | "count";
expected: string | number;
selector?: string | undefined;
timeout?: number | undefined;
}>, {
type: "text" | "element" | "url" | "title" | "count";
selector?: string;
expected: string | number;
timeout?: number;
}, {
type: "url" | "element" | "text" | "title" | "count";
expected: string | number;
selector?: string | undefined;
timeout?: number | undefined;
}, string>;
/**
* Smart Wait Tool - Enhanced with multiple wait types
*/
export declare function createSmartWaitTool(context: SmartToolContext): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
type: z.ZodEnum<["element", "text", "time", "network"]>;
selector: z.ZodOptional<z.ZodString>;
value: z.ZodOptional<z.ZodString>;
timeout: z.ZodOptional<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
type: "element" | "text" | "time" | "network";
selector?: string | undefined;
timeout?: number | undefined;
value?: string | undefined;
}, {
type: "element" | "text" | "time" | "network";
selector?: string | undefined;
timeout?: number | undefined;
value?: string | undefined;
}>, {
type: "element" | "text" | "time" | "network";
selector?: string;
value?: string;
timeout?: number;
}, {
type: "element" | "text" | "time" | "network";
selector?: string | undefined;
timeout?: number | undefined;
value?: string | undefined;
}, string>;
/**
* Smart Screenshot Tool - Enhanced with intelligent naming
*/
export declare function createSmartScreenshotTool(context: SmartToolContext): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
name: z.ZodOptional<z.ZodString>;
description: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
description?: string | undefined;
name?: string | undefined;
}, {
description?: string | undefined;
name?: string | undefined;
}>, {
name?: string;
description?: string;
}, {
description?: string | undefined;
name?: string | undefined;
}, string>;
/**
* Smart Get Content Tool - Enhanced content analysis
*/
export declare function createSmartGetContentTool(context: SmartToolContext): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
type: z.ZodOptional<z.ZodEnum<["full", "text", "elements"]>>;
selector: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
type?: "text" | "full" | "elements" | undefined;
selector?: string | undefined;
}, {
type?: "text" | "full" | "elements" | undefined;
selector?: string | undefined;
}>, {
type?: "full" | "text" | "elements";
selector?: string;
}, {
type?: "text" | "full" | "elements" | undefined;
selector?: string | undefined;
}, string>;
/**
* Create all smart tools for the framework
*/
export declare function createAllSmartTools(browser: Browser): any[];
//# sourceMappingURL=SmartTools.d.ts.map