// Copyright (C) 2026 Rob Colbert // Licensed under the Apache License, Version 2.0 import type { IAiLogger, IAiTool, IToolArguments, IToolDefinition, } from "@gadget/ai"; import type { AiToolbox } from "./toolbox.ts"; export abstract class DroneTool implements IAiTool { protected _toolbox: AiToolbox; constructor(toolbox: AiToolbox) { this._toolbox = toolbox; } get toolbox(): AiToolbox { return this._toolbox; } abstract get name(): string; abstract get category(): string; abstract get definition(): IToolDefinition; abstract execute(args: IToolArguments, logger: IAiLogger): Promise; }