gadget/packages/ai-toolbox/src/tool.ts

30 lines
685 B
TypeScript

// src/tool.ts
// Copyright (C) 2026 Rob Colbert <rob.colbert@openplatform.us>
// 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 GadgetTool 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<string>;
}