schema
Wire-format contract for the web-search add-on: the two tool inputs a
model fills in (web_search, web_fetch) and the results handed back.
Pure zod + inferred types (no Node-only imports) so the tool layer, the
plugin, and any future UI validate / type against one definition.
web_search is backed by the Databricks Model Serving native web-search
tool (see provider.ts): the model searches the web server-side and
returns a synthesized answer plus the sources it used. web_fetch reads a
single page’s contents via got-scraping.
Array fields intentionally avoid .min() / .nonempty(): those emit
minItems in the JSON schema, which some Model Serving endpoints reject
(“array types do not support minItems”) when the schema is forwarded as a
tool definition - the same constraint the email add-on documents.