donobu
Version:
Create browser automations with an LLM agent and replay them as Playwright scripts.
39 lines • 1.79 kB
TypeScript
import { Tool } from './Tool';
import { ToolCallContext } from '../models/ToolCallContext';
import { ToolCallResult } from '../models/ToolCallResult';
import { BaseToolGptParameters } from '../models/BaseToolGptParameters';
export interface DetectBrokenLinksToolCoreParameters {
/**
* (Optional) Whether to capture screenshots for dead links for visual verification.
*/
captureScreenshots?: boolean;
}
export interface DetectBrokenLinksToolGptParameters extends BaseToolGptParameters, DetectBrokenLinksToolCoreParameters {
}
export declare class DetectBrokenLinksTool extends Tool<DetectBrokenLinksToolCoreParameters, DetectBrokenLinksToolGptParameters> {
static readonly NAME = "detectBrokenLinks";
constructor();
call(context: ToolCallContext, parameters: DetectBrokenLinksToolCoreParameters): Promise<ToolCallResult>;
callFromGpt(context: ToolCallContext, parameters: DetectBrokenLinksToolGptParameters): Promise<ToolCallResult>;
/**
* Returns an array of LinkInfo objects containing a URL and an array of all associated link texts.
* Filters out invalid URLs.
*/
private static getLinksForPage;
/**
* Checks all links concurrently and returns a map from the original URL to its traversal result.
* If a link is a mailto, it is marked as skipped.
*/
private static traverseLinks;
/**
* Traverses a single link, following redirects up to maxRedirects.
* Returns a LinkTraversalResult that includes the full redirect chain.
*/
private static traverseSingleLink;
/**
* Generates a JSON report of the link scan.
* The report now includes a "linkTexts" field for each link.
*/
private static generateJsonReport;
}
//# sourceMappingURL=DetectBrokenLinksTool.d.ts.map