/**
 * Tool manifest types for the AI assistant.
 * Provides rich metadata beyond the OpenAI function schema (ToolDef).
 */

export type ToolCategory =
  | "planning"
  | "resource"
  | "project"
  | "vacation"
  | "staffing"
  | "reporting"
  | "admin"
  | "system";

export interface ToolManifest {
  /** Tool name as registered in OpenAI function schema. */
  name: string;
  /** Functional category for grouping and filtering. */
  category: ToolCategory;
  /** True if the tool performs a write operation (used for audit and confirmation). */
  isMutation: boolean;
  /** True if the tool requires advanced assistant permission. */
  requiresAdvanced?: boolean;
  /** One-line description of what this tool does (for system prompts and docs). */
  intent: string;
  /** Optional natural-language examples to guide model tool selection. */
  examples?: string[];
}
