import type { string_title } from '../../../types/typeAliases'; import type { Registered } from '../../../utils/$Register'; import type { LlmToolsOptions } from './LlmToolsOptions'; /** * Configuration definition for LLM execution tools, containing provider-specific settings * that can be passed during runtime to instantiate and configure LLM tools properly. * * The Promptbook LLM tools architecture involves several related types: * - `LlmToolsMetadata`: Contains static metadata about the tool, such as name, version, and capabilities * - `LlmToolsConfiguration`: Runtime configuration from environment variables or settings * - `LlmToolsOptions`: Provider-specific options for instantiating tools * - `Registered`: The record of a registered tool in the global registry */ export type LlmToolsConfiguration = ReadonlyArray; /** * TODO: [🧠][🌰] `title` is redundant BUT maybe allow each provider pass it's own title for tracking purposes * TODO: Maybe instead of `LlmToolsConfiguration[number]` make `LlmToolsConfigurationItem` * TODO: [®] DRY Register logic */