// Copyright (C) 2026 Rob Colbert <rob.colbert@openplatform.us>
// Licensed under the Apache License, Version 2.0

import { IAiLogger } from "../api.ts";

export interface IToolArguments {
  [key: string]: unknown;
}

export interface IToolDefinition {
  type: "function";
  function: {
    name: string;
    description: string;
    parameters: IToolArguments;
  };
}

export interface IAiTool {
  readonly name: string;
  readonly category: string;
  readonly definition: IToolDefinition;

  execute(args: IToolArguments, logger: IAiLogger): Promise<string>;
}
