namespace AIStudio.Tools.ToolCallingSystem; /// /// Supplies tool definitions to the registry. /// /// /// Where a tool comes from and what a tool is are two different questions. AI Studio's own tools /// are written in C#, plugin authors will describe theirs in Lua, and the assistants are to be /// offered as tools as well — each arrives differently, yet the registry validates and serves /// them all the same way.

/// A source is asked once while the registry is being built. Definitions do not change while the /// app runs; a plugin that was loaded later needs the registry rebuilt, not the source re-read. ///
public interface IToolDefinitionSource { /// /// A name for this source, used in log messages about the definitions it produced. /// public string SourceName { get; } /// /// The definitions this source knows. /// /// /// May return definitions the registry then rejects. Validating them is the registry's job, /// so that every source is held to the same rules — including the ones written by plugin /// authors, whose definitions AI Studio does not control. /// public IEnumerable GetDefinitions(); }