{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/algolia/main/json-schema/algolia-agent-with-version-response-schema.json",
  "title": "agentWithVersionResponse",
  "x-generated": "2026-09-23",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/algolia-agent-studio-api-openapi.yml#/components/schemas/AgentWithVersionResponse",
  "properties": {
    "id": {
      "type": "string",
      "title": "id"
    },
    "name": {
      "type": "string",
      "title": "name"
    },
    "description": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "description"
    },
    "status": {
      "$ref": "#/$defs/AgentStatus"
    },
    "providerId": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "providerid"
    },
    "model": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "model"
    },
    "instructions": {
      "type": "string",
      "title": "instructions"
    },
    "systemPrompt": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "systemprompt"
    },
    "config": {
      "additionalProperties": true,
      "type": "object",
      "title": "config"
    },
    "tools": {
      "items": {
        "$ref": "#/$defs/ToolConfigInput"
      },
      "type": "array",
      "title": "tools"
    },
    "templateType": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "templatetype"
    },
    "createdAt": {
      "type": "string",
      "title": "createdat"
    },
    "updatedAt": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "updatedat"
    },
    "lastUsedAt": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "lastusedat"
    }
  },
  "type": "object",
  "required": [
    "id",
    "name",
    "description",
    "status",
    "providerId",
    "instructions",
    "config",
    "createdAt",
    "updatedAt",
    "lastUsedAt"
  ],
  "$defs": {
    "AdvancedSyntaxFeatures": {
      "type": "string",
      "enum": [
        "exactPhrase",
        "excludeWords"
      ],
      "title": "advancedSyntaxFeatures",
      "description": "AdvancedSyntaxFeatures."
    },
    "AdvancedSyntaxFeaturesUnion": {
      "oneOf": [
        {
          "items": {
            "$ref": "#/$defs/AdvancedSyntaxFeatures"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ]
    },
    "AgentStatus": {
      "type": "string",
      "enum": [
        "draft",
        "published"
      ]
    },
    "AlgoliaDisplayResultsToolConfig": {
      "properties": {
        "name": {
          "type": "string",
          "const": "algolia_display_results",
          "title": "name",
          "default": "algolia_display_results"
        },
        "type": {
          "type": "string",
          "const": "algolia_display_results",
          "title": "type",
          "default": "algolia_display_results"
        },
        "minGroups": {
          "type": "integer",
          "minimum": 1,
          "title": "mingroups",
          "default": 1
        },
        "maxGroups": {
          "type": "integer",
          "minimum": 1,
          "title": "maxgroups",
          "default": 3
        },
        "minResultsPerGroup": {
          "type": "integer",
          "minimum": 1,
          "title": "minresultspergroup",
          "default": 3
        },
        "maxResultsPerGroup": {
          "type": "integer",
          "minimum": 1,
          "title": "maxresultspergroup",
          "default": 6
        }
      },
      "type": "object",
      "title": "algoliaDisplayResultsToolConfig",
      "description": "Configuration for the algolia_display_results tool.",
      "required": [
        "type"
      ]
    },
    "AlgoliaRecommendToolConfig-Input": {
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 32,
          "minLength": 3,
          "title": "name"
        },
        "type": {
          "type": "string",
          "const": "algolia_recommend",
          "title": "type",
          "default": "algolia_recommend"
        },
        "allowedConfigs": {
          "items": {
            "$ref": "#/$defs/AlgoliaRecommendToolIndexConfig"
          },
          "type": "array",
          "title": "allowedconfigs",
          "default": []
        },
        "predefinedRecommendParameters": {
          "additionalProperties": true,
          "type": "object",
          "title": "predefinedrecommendparameters"
        }
      },
      "type": "object",
      "required": [
        "type",
        "name"
      ],
      "title": "algoliaRecommendToolConfig",
      "description": "Configuration for the Algolia Recommend tool.\nAllows specifying recommend models and related parameters."
    },
    "AlgoliaRecommendToolIndexConfig": {
      "properties": {
        "index": {
          "type": "string",
          "maxLength": 100,
          "minLength": 1,
          "title": "index"
        },
        "modelName": {
          "type": "string",
          "maxLength": 100,
          "minLength": 1,
          "title": "modelname"
        },
        "description": {
          "type": "string",
          "title": "description",
          "default": ""
        }
      },
      "type": "object",
      "required": [
        "index",
        "modelName"
      ],
      "title": "algoliaRecommendToolIndexConfig"
    },
    "AlgoliaSearchToolConfig": {
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 32,
          "minLength": 3,
          "title": "name"
        },
        "type": {
          "type": "string",
          "const": "algolia_search_index",
          "title": "type",
          "default": "algolia_search_index"
        },
        "indices": {
          "items": {
            "$ref": "#/$defs/AlgoliaSearchToolIndexConfig"
          },
          "type": "array",
          "title": "indices"
        }
      },
      "type": "object",
      "required": [
        "type",
        "name",
        "indices"
      ],
      "title": "algoliaSearchToolConfig"
    },
    "AlgoliaSearchToolIndexConfig": {
      "properties": {
        "index": {
          "type": "string",
          "maxLength": 100,
          "minLength": 1,
          "title": "index"
        },
        "description": {
          "type": "string",
          "maxLength": 3000,
          "minLength": 1,
          "title": "description"
        },
        "enhancedDescription": {
          "type": "string",
          "title": "enhanceddescription",
          "default": ""
        },
        "searchParameters": {
          "oneOf": [
            {
              "$ref": "#/$defs/SearchParameters"
            },
            {
              "type": "null"
            }
          ]
        },
        "searchControls": {
          "oneOf": [
            {
              "$ref": "#/$defs/IndexSearchParameters"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "type": "object",
      "required": [
        "index",
        "description"
      ],
      "title": "algoliaSearchToolIndexConfig"
    },
    "AllowedToolsUnion": {
      "oneOf": [
        {
          "additionalProperties": {
            "$ref": "#/$defs/ToolConfig"
          },
          "type": "object"
        },
        {
          "type": "null"
        }
      ]
    },
    "AlternativesAsExact": {
      "type": "string",
      "enum": [
        "ignorePlurals",
        "singleWordSynonym",
        "multiWordsSynonym",
        "ignoreConjugations"
      ],
      "title": "alternativesAsExact",
      "description": "AlternativesAsExact."
    },
    "AlternativesAsExactUnion": {
      "oneOf": [
        {
          "items": {
            "$ref": "#/$defs/AlternativesAsExact"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ]
    },
    "AroundPrecisionUnion": {
      "oneOf": [
        {
          "type": "integer"
        },
        {
          "items": {
            "additionalProperties": {
              "type": "integer"
            },
            "type": "object"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ]
    },
    "AroundRadiusUnion": {
      "oneOf": [
        {
          "type": "integer"
        },
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "ClientSideToolConfig": {
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 32,
          "minLength": 3,
          "title": "name"
        },
        "type": {
          "type": "string",
          "const": "client_side",
          "title": "type",
          "default": "client_side"
        },
        "description": {
          "type": "string",
          "maxLength": 200,
          "minLength": 1,
          "title": "description"
        },
        "inputSchema": {
          "$ref": "#/$defs/ClientToolsArgsSchema"
        }
      },
      "type": "object",
      "required": [
        "type",
        "name",
        "description",
        "inputSchema"
      ],
      "title": "clientSideToolConfig"
    },
    "ClientToolsArgsSchema": {
      "properties": {
        "type": {
          "type": "string",
          "const": "object",
          "title": "type",
          "default": "object"
        },
        "properties": {
          "additionalProperties": true,
          "type": "object",
          "title": "properties"
        },
        "required": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "title": "required"
        }
      },
      "type": "object",
      "title": "clientToolsArgsSchema"
    },
    "DistinctUnion": {
      "oneOf": [
        {
          "type": "boolean"
        },
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ]
    },
    "ExactOnSingleWordQuery": {
      "type": "string",
      "enum": [
        "attribute",
        "none",
        "word"
      ],
      "title": "exactOnSingleWordQuery",
      "description": "Determines how the [Exact ranking criterion](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/override-search-engine-defaults/in-depth/adjust-exact-settings/#turn-off-exact-for-some-attributes) is computed when the search query has only one word.  - `attribute`.   The Exact ranking criterion is 1 if the query word and attribute value are the same.   For example, a search for \"road\" will match the value \"road\", but not \"road trip\".  - `none`.   The Exact ranking criterion is ignored on single-word searches.  - `word`.   The Exact ranking criterion is 1 if the query word is found in the attribute value.   The query word must have at least 3 characters and must not be a stop word.   Only exact matches will be highlighted,   partial and prefix matches won't."
    },
    "FacetFiltersUnion": {
      "oneOf": [
        {
          "items": {
            "$ref": "#/$defs/FacetFiltersUnion"
          },
          "type": "array"
        },
        {
          "type": "string"
        }
      ]
    },
    "Facets": {
      "properties": {
        "order": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "order"
        }
      },
      "additionalProperties": true,
      "type": "object",
      "title": "facets",
      "description": "Order of facet names."
    },
    "FacetsParam": {
      "properties": {
        "exposed": {
          "type": "boolean",
          "const": false,
          "title": "exposed",
          "default": false
        },
        "default": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "default"
        }
      },
      "type": "object",
      "title": "facetsParam",
      "description": "A facets parameter that is always hidden from the LLM."
    },
    "FacetsUnion": {
      "oneOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "$ref": "#/$defs/Facets"
        },
        {
          "type": "null"
        }
      ]
    },
    "IgnorePluralsUnion": {
      "oneOf": [
        {
          "type": "boolean"
        },
        {
          "items": {
            "$ref": "#/$defs/SupportedLanguage"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ]
    },
    "IndexSearchParameters": {
      "properties": {
        "query": {
          "oneOf": [
            {
              "$ref": "#/$defs/TextParam"
            },
            {
              "type": "null"
            }
          ]
        },
        "hitsPerPage": {
          "$ref": "#/$defs/NumberParam"
        },
        "page": {
          "$ref": "#/$defs/NumberParam"
        },
        "attributesToRetrieve": {
          "$ref": "#/$defs/StringArrayParam"
        },
        "responseFields": {
          "$ref": "#/$defs/StringArrayParam"
        },
        "facets": {
          "oneOf": [
            {
              "$ref": "#/$defs/FacetsParam"
            },
            {
              "type": "null"
            }
          ]
        },
        "custom": {
          "oneOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "custom"
        }
      },
      "type": "object",
      "title": "indexSearchParameters",
      "description": "Structured search parameters configuration for an Algolia index.\n\nEach parameter controls whether it is exposed to the LLM, its default value,\noptional constraints, and merge behavior."
    },
    "InsideBoundingBoxUnion": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "items": {
            "items": {
              "type": "number"
            },
            "type": "array"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ]
    },
    "InsidePolygonUnion": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "items": {
            "items": {
              "type": "number"
            },
            "type": "array"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ]
    },
    "McpServerToolConfig": {
      "properties": {
        "url": {
          "type": "string",
          "maxLength": 512,
          "minLength": 1,
          "title": "url"
        },
        "transport": {
          "type": "string",
          "const": "streamable_http",
          "title": "transport",
          "default": "streamable_http"
        },
        "headers": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object",
          "title": "headers"
        },
        "name": {
          "type": "string",
          "maxLength": 32,
          "minLength": 3,
          "title": "name"
        },
        "type": {
          "type": "string",
          "const": "mcp_tools",
          "title": "type",
          "default": "mcp_tools"
        },
        "id": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "id",
          "description": "Stable unique identifier for this MCP tool."
        },
        "allowedTools": {
          "$ref": "#/$defs/AllowedToolsUnion"
        }
      },
      "type": "object",
      "required": [
        "type",
        "url",
        "headers",
        "name"
      ],
      "title": "mcpServerToolConfig"
    },
    "McpToolConfig": {
      "properties": {
        "requiresApproval": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "requiresapproval",
          "default": false
        },
        "alias": {
          "oneOf": [
            {
              "type": "string",
              "maxLength": 32,
              "minLength": 3
            },
            {
              "type": "null"
            }
          ],
          "title": "alias"
        }
      },
      "type": "object",
      "title": "mcpToolConfig"
    },
    "NaturalLanguagesUnion": {
      "oneOf": [
        {
          "items": {
            "$ref": "#/$defs/SupportedLanguage"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ]
    },
    "NumberParam": {
      "properties": {
        "exposed": {
          "type": "boolean",
          "title": "exposed"
        },
        "default": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "default"
        },
        "constraint": {
          "oneOf": [
            {
              "$ref": "#/$defs/NumberParamConstraint"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "type": "object",
      "required": [
        "exposed"
      ],
      "title": "numberParam",
      "description": "A number search parameter with exposure control and optional constraints."
    },
    "NumberParamConstraint": {
      "properties": {
        "min": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "min"
        },
        "max": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "max"
        }
      },
      "type": "object",
      "title": "numberParamConstraint",
      "description": "Constraints for a number parameter."
    },
    "NumericFiltersUnion": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/NumericFiltersUnion"
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "OptionalFiltersUnion": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/OptionalFiltersUnion"
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "OptionalWordsUnion": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ]
    },
    "QueryLanguagesUnion": {
      "oneOf": [
        {
          "items": {
            "$ref": "#/$defs/SupportedLanguage"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ]
    },
    "QueryType": {
      "type": "string",
      "enum": [
        "prefixLast",
        "prefixAll",
        "prefixNone"
      ],
      "title": "queryType",
      "description": "Determines if and how query words are interpreted as prefixes.  By default, only the last query word is treated as a prefix (`prefixLast`). To turn off prefix search, use `prefixNone`. Avoid `prefixAll`, which treats all query words as prefixes. This might lead to counterintuitive results and makes your search slower.  For more information, see [Prefix searching](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/override-search-engine-defaults/in-depth/prefix-searching)."
    },
    "ReRankingApplyFilterUnion": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "items": {
            "type": "object",
            "additionalProperties": true
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ]
    },
    "RemoveStopWordsUnion": {
      "oneOf": [
        {
          "type": "boolean"
        },
        {
          "items": {
            "$ref": "#/$defs/SupportedLanguage"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ]
    },
    "RemoveWordsIfNoResults": {
      "type": "string",
      "enum": [
        "none",
        "lastWords",
        "firstWords",
        "allOptional"
      ],
      "title": "removeWordsIfNoResults",
      "description": "Strategy for removing words from the query when it doesn't return any results. This helps to avoid returning empty search results.  - `none`.   No words are removed when a query doesn't return results.  - `lastWords`.   Treat the last (then second to last, then third to last) word as optional,   until there are results or at most 5 words have been removed.  - `firstWords`.   Treat the first (then second, then third) word as optional,   until there are results or at most 5 words have been removed.  - `allOptional`.   Treat all words as optional.  For more information, see [Remove words to improve results](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/empty-or-insufficient-results/in-depth/why-use-remove-words-if-no-results)."
    },
    "SearchParameters": {
      "properties": {
        "queryType": {
          "oneOf": [
            {
              "$ref": "#/$defs/QueryType"
            },
            {
              "type": "null"
            }
          ]
        },
        "similarQuery": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "similarquery"
        },
        "queryLanguages": {
          "$ref": "#/$defs/QueryLanguagesUnion"
        },
        "advancedSyntax": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "advancedsyntax"
        },
        "advancedSyntaxFeatures": {
          "$ref": "#/$defs/AdvancedSyntaxFeaturesUnion"
        },
        "alternativesAsExact": {
          "$ref": "#/$defs/AlternativesAsExactUnion"
        },
        "decompoundQuery": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "decompoundquery"
        },
        "typoTolerance": {
          "$ref": "#/$defs/TypoToleranceUnion"
        },
        "allowTyposOnNumericTokens": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "allowtyposonnumerictokens"
        },
        "minWordSizeFor1Typo": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "minwordsizefor1Typo"
        },
        "minWordSizeFor2Typos": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "minwordsizefor2Typos"
        },
        "disableTypoToleranceOnAttributes": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "disabletypotoleranceonattributes"
        },
        "filters": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "filters"
        },
        "facetFilters": {
          "oneOf": [
            {
              "$ref": "#/$defs/FacetFiltersUnion"
            },
            {
              "type": "null"
            }
          ]
        },
        "facets": {
          "$ref": "#/$defs/FacetsUnion"
        },
        "maxValuesPerFacet": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "maxvaluesperfacet"
        },
        "maxFacetHits": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "maxfacethits"
        },
        "facetingAfterDistinct": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "facetingafterdistinct"
        },
        "sortFacetValuesBy": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "sortfacetvaluesby"
        },
        "numericFilters": {
          "$ref": "#/$defs/NumericFiltersUnion"
        },
        "tagFilters": {
          "$ref": "#/$defs/TagFiltersUnion"
        },
        "sumOrFiltersScores": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "sumorfiltersscores"
        },
        "aroundLatLng": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "aroundlatlng"
        },
        "aroundLatLngViaIp": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "aroundlatlngviaip"
        },
        "aroundRadius": {
          "$ref": "#/$defs/AroundRadiusUnion"
        },
        "aroundPrecision": {
          "$ref": "#/$defs/AroundPrecisionUnion"
        },
        "minimumAroundRadius": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "minimumaroundradius"
        },
        "insideBoundingBox": {
          "$ref": "#/$defs/InsideBoundingBoxUnion"
        },
        "insidePolygon": {
          "$ref": "#/$defs/InsidePolygonUnion"
        },
        "attributesToRetrieve": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "attributestoretrieve"
        },
        "attributesToSnippet": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "attributestosnippet"
        },
        "snippetEllipsisText": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "snippetellipsistext"
        },
        "restrictHighlightAndSnippetArrays": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "restricthighlightandsnippetarrays"
        },
        "page": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "page"
        },
        "offset": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "offset"
        },
        "hitsPerPage": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "hitsperpage"
        },
        "length": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "length"
        },
        "getRankingInfo": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "getrankinginfo"
        },
        "relevancyStrictness": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "relevancystrictness"
        },
        "minProximity": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "minproximity"
        },
        "attributeCriteriaComputedByMinProximity": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "attributecriteriacomputedbyminproximity"
        },
        "distinct": {
          "$ref": "#/$defs/DistinctUnion"
        },
        "enableRules": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "enablerules"
        },
        "enablePersonalization": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "enablepersonalization"
        },
        "personalizationImpact": {
          "oneOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "personalizationimpact"
        },
        "enableAbTest": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "enableabtest"
        },
        "enableReRanking": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "enablereranking"
        },
        "reRankingApplyFilter": {
          "$ref": "#/$defs/ReRankingApplyFilterUnion"
        },
        "ruleContexts": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "rulecontexts"
        },
        "removeStopWords": {
          "$ref": "#/$defs/RemoveStopWordsUnion"
        },
        "ignorePlurals": {
          "$ref": "#/$defs/IgnorePluralsUnion"
        },
        "removeWordsIfNoResults": {
          "oneOf": [
            {
              "$ref": "#/$defs/RemoveWordsIfNoResults"
            },
            {
              "type": "null"
            }
          ]
        },
        "optionalWords": {
          "$ref": "#/$defs/OptionalWordsUnion"
        },
        "optionalFilters": {
          "$ref": "#/$defs/OptionalFiltersUnion"
        },
        "synonyms": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "synonyms"
        },
        "replaceSynonymsInHighlight": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "replacesynonymsinhighlight"
        },
        "analytics": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "analytics"
        },
        "analyticsTags": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "analyticstags"
        },
        "clickAnalytics": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "clickanalytics"
        },
        "userToken": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "usertoken"
        },
        "restrictSearchableAttributes": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "restrictsearchableattributes"
        },
        "disableExactOnAttributes": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "disableexactonattributes"
        },
        "exactOnSingleWordQuery": {
          "oneOf": [
            {
              "$ref": "#/$defs/ExactOnSingleWordQuery"
            },
            {
              "type": "null"
            }
          ]
        },
        "naturalLanguages": {
          "$ref": "#/$defs/NaturalLanguagesUnion"
        },
        "percentileComputation": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "percentilecomputation"
        },
        "explain": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "explain"
        }
      },
      "type": "object",
      "title": "searchParameters",
      "description": "Algolia Search API parameters that can be predefined for the search tool.\nReference: https://www.algolia.com/doc/api-reference/search-api-parameters/\n\nThe parameters that seemed irrelevant for the search tool have been commented out.\nUses types from algoliasearch.search.models for better type safety."
    },
    "StringArrayParam": {
      "properties": {
        "exposed": {
          "type": "boolean",
          "title": "exposed"
        },
        "default": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "default"
        },
        "constraint": {
          "oneOf": [
            {
              "$ref": "#/$defs/StringArrayParamConstraint"
            },
            {
              "type": "null"
            }
          ]
        },
        "merge": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "merge"
        }
      },
      "type": "object",
      "required": [
        "exposed"
      ],
      "title": "stringArrayParam",
      "description": "A string array search parameter with exposure control, constraints, and merge behavior."
    },
    "StringArrayParamConstraint": {
      "properties": {
        "values": {
          "oneOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "values"
        }
      },
      "type": "object",
      "title": "stringArrayParamConstraint",
      "description": "Constraints for a string array parameter."
    },
    "SupportedLanguage": {
      "type": "string",
      "enum": [
        "af",
        "ar",
        "az",
        "bg",
        "bn",
        "ca",
        "cs",
        "cy",
        "da",
        "de",
        "el",
        "en",
        "eo",
        "es",
        "et",
        "eu",
        "fa",
        "fi",
        "fo",
        "fr",
        "ga",
        "gl",
        "he",
        "hi",
        "hu",
        "hy",
        "id",
        "is",
        "it",
        "ja",
        "ka",
        "kk",
        "ko",
        "ku",
        "ky",
        "lt",
        "lv",
        "mi",
        "mn",
        "mr",
        "ms",
        "mt",
        "nb",
        "nl",
        "no",
        "ns",
        "pl",
        "ps",
        "pt",
        "pt-br",
        "qu",
        "ro",
        "ru",
        "sk",
        "sq",
        "sv",
        "sw",
        "ta",
        "te",
        "th",
        "tl",
        "tn",
        "tr",
        "tt",
        "uk",
        "ur",
        "uz",
        "zh"
      ],
      "title": "supportedLanguage",
      "description": "ISO code for a supported language."
    },
    "TagFiltersUnion": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/TagFiltersUnion"
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "TextParam": {
      "properties": {
        "exposed": {
          "type": "boolean",
          "title": "exposed"
        },
        "default": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "default"
        }
      },
      "type": "object",
      "required": [
        "exposed"
      ],
      "title": "textParam",
      "description": "A text search parameter with exposure control."
    },
    "ToolConfig": {
      "oneOf": [
        {
          "$ref": "#/$defs/McpToolConfig"
        },
        {
          "type": "boolean"
        }
      ]
    },
    "ToolConfigInput": {
      "oneOf": [
        {
          "$ref": "#/$defs/ClientSideToolConfig"
        },
        {
          "$ref": "#/$defs/AlgoliaSearchToolConfig"
        },
        {
          "$ref": "#/$defs/AlgoliaRecommendToolConfig-Input"
        },
        {
          "$ref": "#/$defs/AlgoliaDisplayResultsToolConfig"
        },
        {
          "$ref": "#/$defs/McpServerToolConfig"
        },
        {
          "$ref": "#/$defs/UnknownToolConfig"
        }
      ]
    },
    "TypoToleranceEnum": {
      "type": "string",
      "enum": [
        "min",
        "strict",
        "true",
        "false"
      ],
      "title": "typoToleranceEnum",
      "description": "- `min`. Return matches with the lowest number of typos.   For example, if you have matches without typos, only include those.   But if there are no matches without typos (with 1 typo), include matches with 1 typo (2 typos). - `strict`. Return matches with the two lowest numbers of typos.   With `strict`, the Typo ranking criterion is applied first in the `ranking` setting."
    },
    "TypoToleranceUnion": {
      "oneOf": [
        {
          "type": "boolean"
        },
        {
          "$ref": "#/$defs/TypoToleranceEnum"
        },
        {
          "type": "null"
        }
      ]
    },
    "UnknownToolConfig": {
      "properties": {
        "name": {
          "type": "string",
          "maxLength": 32,
          "minLength": 3,
          "title": "name"
        },
        "type": {
          "type": "string",
          "const": "unknown",
          "title": "type",
          "default": "unknown"
        }
      },
      "additionalProperties": true,
      "type": "object",
      "required": [
        "type",
        "name"
      ],
      "title": "unknownToolConfig",
      "description": "Exists only to ensure that when you change branch from toolX to feat/toolY, your config stays valid."
    }
  }
}