{
  "tool_schemas": [
    {
      "name": "web_search",
      "description": "Search the web for information on specified topics with customizable filters and result limits",
      "openai_schema": {
        "name": "web_search",
        "description": "Search the web for information on specified topics with customizable filters and result limits",
        "parameters": {
          "type": "object",
          "properties": {
            "query": {
              "type": "string",
              "description": "Search query string to find relevant information",
              "minLength": 1,
              "maxLength": 500,
              "examples": [
                "artificial intelligence trends",
                "climate change impact",
                "python programming tutorial"
              ]
            },
            "limit": {
              "type": "integer",
              "description": "Maximum number of search results to return",
              "minimum": 1,
              "maximum": 100,
              "default": 10
            },
            "language": {
              "type": "string",
              "description": "Language code for search results",
              "enum": [
                "en",
                "es",
                "fr",
                "de",
                "it",
                "pt",
                "zh",
                "ja"
              ],
              "default": "en"
            },
            "time_range": {
              "type": "string",
              "description": "Time range filter for search results",
              "enum": [
                "any",
                "day",
                "week",
                "month",
                "year"
              ]
            }
          },
          "required": [
            "query"
          ],
          "additionalProperties": false
        }
      },
      "anthropic_schema": {
        "name": "web_search",
        "description": "Search the web for information on specified topics with customizable filters and result limits",
        "input_schema": {
          "type": "object",
          "properties": {
            "query": {
              "type": "string",
              "description": "Search query string to find relevant information",
              "minLength": 1,
              "maxLength": 500
            },
            "limit": {
              "type": "integer",
              "description": "Maximum number of search results to return",
              "minimum": 1,
              "maximum": 100
            },
            "language": {
              "type": "string",
              "description": "Language code for search results",
              "enum": [
                "en",
                "es",
                "fr",
                "de",
                "it",
                "pt",
                "zh",
                "ja"
              ]
            },
            "time_range": {
              "type": "string",
              "description": "Time range filter for search results",
              "enum": [
                "any",
                "day",
                "week",
                "month",
                "year"
              ]
            }
          },
          "required": [
            "query"
          ]
        }
      },
      "validation_rules": [
        {
          "parameter": "query",
          "rules": {
            "minLength": 1,
            "maxLength": 500
          }
        },
        {
          "parameter": "limit",
          "rules": {
            "minimum": 1,
            "maximum": 100
          }
        }
      ],
      "error_responses": [
        {
          "error_code": "invalid_input",
          "error_message": "Invalid input parameters provided",
          "http_status": 400,
          "retry_after": null,
          "details": {
            "validation_errors": []
          }
        },
        {
          "error_code": "authentication_required",
          "error_message": "Authentication required to access this tool",
          "http_status": 401,
          "retry_after": null,
          "details": null
        },
        {
          "error_code": "rate_limit_exceeded",
          "error_message": "Rate limit exceeded. Please try again later",
          "http_status": 429,
          "retry_after": 60,
          "details": null
        }
      ],
      "rate_limits": {
        "requests_per_minute": 60,
        "requests_per_hour": 1000,
        "requests_per_day": 10000,
        "burst_limit": 10,
        "cooldown_period": 60,
        "rate_limit_key": "user_id"
      },
      "examples": [
        {
          "description": "Basic web search",
          "input": {
            "query": "machine learning algorithms",
            "limit": 5
          },
          "expected_output": {
            "results": [
              {
                "title": "Introduction to Machine Learning Algorithms",
                "url": "https://example.com/ml-intro",
                "snippet": "Machine learning algorithms are computational methods...",
                "relevance_score": 0.95
              }
            ],
            "total_found": 1250
          }
        }
      ],
      "metadata": {
        "category": "search",
        "idempotent": true,
        "side_effects": [
          "Logs search query for analytics",
          "May cache results temporarily"
        ],
        "dependencies": [
          "search_api_service",
          "content_filter_service"
        ],
        "security_requirements": [
          "Query sanitization",
          "Rate limiting by user",
          "Content filtering"
        ],
        "generated_at": "2024-01-15T10:30:00Z",
        "schema_version": "1.0",
        "input_parameters": 4,
        "output_parameters": 2,
        "required_parameters": 1,
        "optional_parameters": 3
      }
    },
    {
      "name": "data_analyzer",
      "description": "Analyze structured data and generate statistical insights, trends, and visualizations",
      "openai_schema": {
        "name": "data_analyzer",
        "description": "Analyze structured data and generate statistical insights, trends, and visualizations",
        "parameters": {
          "type": "object",
          "properties": {
            "data": {
              "type": "object",
              "description": "Structured data to analyze in JSON format",
              "properties": {
                "columns": {
                  "type": "array"
                },
                "rows": {
                  "type": "array"
                }
              },
              "additionalProperties": false
            },
            "analysis_type": {
              "type": "string",
              "description": "Type of analysis to perform",
              "enum": [
                "descriptive",
                "correlation",
                "trend",
                "distribution",
                "outlier_detection"
              ]
            },
            "target_column": {
              "type": "string",
              "description": "Primary column to focus analysis on",
              "maxLength": 1000
            },
            "include_visualization": {
              "type": "boolean",
              "description": "Whether to generate visualization data",
              "default": true
            }
          },
          "required": [
            "data",
            "analysis_type"
          ],
          "additionalProperties": false
        }
      },
      "anthropic_schema": {
        "name": "data_analyzer",
        "description": "Analyze structured data and generate statistical insights, trends, and visualizations",
        "input_schema": {
          "type": "object",
          "properties": {
            "data": {
              "type": "object",
              "description": "Structured data to analyze in JSON format"
            },
            "analysis_type": {
              "type": "string",
              "description": "Type of analysis to perform",
              "enum": [
                "descriptive",
                "correlation",
                "trend",
                "distribution",
                "outlier_detection"
              ]
            },
            "target_column": {
              "type": "string",
              "description": "Primary column to focus analysis on",
              "maxLength": 1000
            },
            "include_visualization": {
              "type": "boolean",
              "description": "Whether to generate visualization data"
            }
          },
          "required": [
            "data",
            "analysis_type"
          ]
        }
      },
      "validation_rules": [
        {
          "parameter": "target_column",
          "rules": {
            "maxLength": 1000
          }
        }
      ],
      "error_responses": [
        {
          "error_code": "invalid_input",
          "error_message": "Invalid input parameters provided",
          "http_status": 400,
          "retry_after": null,
          "details": {
            "validation_errors": []
          }
        },
        {
          "error_code": "authentication_required",
          "error_message": "Authentication required to access this tool",
          "http_status": 401,
          "retry_after": null,
          "details": null
        },
        {
          "error_code": "rate_limit_exceeded",
          "error_message": "Rate limit exceeded. Please try again later",
          "http_status": 429,
          "retry_after": 60,
          "details": null
        }
      ],
      "rate_limits": {
        "requests_per_minute": 30,
        "requests_per_hour": 500,
        "requests_per_day": 5000,
        "burst_limit": 5,
        "cooldown_period": 60,
        "rate_limit_key": "user_id"
      },
      "examples": [
        {
          "description": "Basic descriptive analysis",
          "input": {
            "data": {
              "columns": [
                "age",
                "salary",
                "department"
              ],
              "rows": [
                [
                  25,
                  50000,
                  "engineering"
                ],
                [
                  30,
                  60000,
                  "engineering"
                ],
                [
                  28,
                  55000,
                  "marketing"
                ]
              ]
            },
            "analysis_type": "descriptive",
            "target_column": "salary"
          },
          "expected_output": {
            "insights": [
              "Average salary is $55,000",
              "Salary range: $50,000 - $60,000",
              "Engineering department has higher average salary"
            ],
            "statistics": {
              "mean": 55000,
              "median": 55000,
              "std_dev": 5000
            }
          }
        }
      ],
      "metadata": {
        "category": "data",
        "idempotent": true,
        "side_effects": [
          "May create temporary analysis files",
          "Logs analysis parameters for optimization"
        ],
        "dependencies": [
          "statistics_engine",
          "visualization_service"
        ],
        "security_requirements": [
          "Data anonymization",
          "Access control validation"
        ],
        "generated_at": "2024-01-15T10:30:00Z",
        "schema_version": "1.0",
        "input_parameters": 4,
        "output_parameters": 3,
        "required_parameters": 2,
        "optional_parameters": 2
      }
    }
  ],
  "metadata": {
    "generated_by": "tool_schema_generator.py",
    "input_file": "sample_tool_descriptions.json",
    "tool_count": 2,
    "generation_timestamp": "2024-01-15T10:30:00Z",
    "schema_version": "1.0"
  },
  "validation_summary": {
    "total_tools": 2,
    "total_parameters": 8,
    "total_validation_rules": 3,
    "total_examples": 2
  }
}