# Example preset demonstrating typed parameters

search_tool:
  name: "search"
  description: "Search for information"
  parameters:
    query:
      type: "string"
      description: "The search query"
      required: true
    limit:
      type: "number"
      description: "Maximum number of results"
      default: 10
    includeArchived:
      type: "boolean"
      description: "Whether to include archived items"
      default: false
    filterType:
      type: "enum"
      enum: ["all", "recent", "popular"]
      description: "Type of filter to apply"
      default: "all"
  prompt: |
    This is a search tool that allows searching for information.

    When a user asks for information, use this tool with their query to find relevant results.
    Make sure to use appropriate filters based on the context of their request.

calculator_tool:
  name: "calculator"
  description: "Perform mathematical calculations"
  parameters:
    expression:
      type: "string"
      description: "The mathematical expression to evaluate"
      required: true
    precision:
      type: "number"
      description: "Number of decimal places in the result"
      default: 2
  prompt: |
    This is a calculator tool that can evaluate mathematical expressions.

    When a user asks for calculation help, use this tool to compute the result.
    You can specify the precision of the result if decimal places matter.

data_processor:
  name: "process_data"
  description: "Process and analyze data"
  parameters:
    data:
      type: "array"
      description: "The data to process"
      required: true
      items:
        type: "number"
    operations:
      type: "array"
      description: "Operations to perform on the data"
      default: ["sum", "average"]
      items:
        type: "enum"
        enum: ["sum", "average", "min", "max", "count"]
    outputFormat:
      type: "enum"
      enum: ["json", "csv", "table"]
      description: "Format of the output"
      default: "json"
  prompt: |
    This tool processes and analyzes data.

    When a user provides data for analysis, use this tool to perform operations on it.
    The results will be returned in the specified format.

# Enhanced example with complex parameters
advanced_tool:
  name: "advanced_configuration"
  description: "Configure a system with complex parameters"
  parameters:
    name:
      type: "string"
      description: "Name of the configuration"
      required: true
    settings:
      type: "object"
      description: "Configuration settings"
      required: true
      properties:
        performance:
          type: "object"
          description: "Performance settings"
          properties:
            level:
              type: "enum"
              enum: [1, 2, 3, 4, 5]
              description: "Performance level (1-5)"
              default: 3
            optimizeFor:
              type: "enum"
              enum: ["speed", "memory", "balanced"]
              description: "What to optimize for"
              default: "balanced"
        security:
          type: "object"
          description: "Security settings"
          properties:
            enabled:
              type: "boolean"
              description: "Whether security is enabled"
              default: true
            levels:
              type: "array"
              description: "Security levels to apply"
              items:
                type: "string"
    tags:
      type: "array"
      description: "Tags for this configuration"
      items:
        type: "string"
    timeout:
      type: "number"
      description: "Timeout in seconds"
      default: 30
  prompt: |
    This is an advanced configuration tool that demonstrates complex nested parameters.

    Use this tool when a user needs to configure a system with detailed settings.
    The tool supports nested objects, arrays of specific types, and both string and number enums.
