• Devon Rifkin's avatar
    tools: support anyOf types · 30f8a68c
    Devon Rifkin authored
    afaik gpt-oss is the first model that meaningfully transforms tool
    function definitions in its template. We found that relatively common
    definitions that include `anyOf` were not working because the template
    was assuming that types were always defined via a `type` field.
    
    anyOf allows for fully recursive types, so I exposed a
    `toTypeScriptType()` function to handle this recursive logic in go and
    keep the templates cleaner. The gpt-oss templates will need to be
    updated to use this.
    
    We should keep building out our function definition support to more
    fully support the parts of json schema that make sense for this use
    case, but in the meantime this will unblock some users (e.g., zed's
    ollama integration w/ gpt-oss). Probably the most urgent is proper array
    support
    30f8a68c
types.go 27 KB