Skip to content

refactoring: restructure Tool types#14849

Merged
lgrammel merged 22 commits intomainfrom
lg/AbP1wA
Apr 30, 2026
Merged

refactoring: restructure Tool types#14849
lgrammel merged 22 commits intomainfrom
lg/AbP1wA

Conversation

@lgrammel
Copy link
Copy Markdown
Collaborator

@lgrammel lgrammel commented Apr 30, 2026

Background

Different types of tools can have different available options. Currently we expose options on tool types that do not support it, e.g. execute on provider executed tools.

Summary

Refactor the Tool type into a union of FunctionTool, DynamicTool, ProviderDefinedTool, and ProviderExecutedTool. Expose the new types. Add type tests.

The goal is to create a foundation for further refactoring and option restrictions.

Future Work

  • restrict options available on specific tool types more
  • improve jsdoc and docs

@lgrammel lgrammel changed the title Lg/ab p1w a refactoring: restructure Tool types Apr 30, 2026
This reverts commit dfa3663.
@lgrammel lgrammel marked this pull request as ready for review April 30, 2026 14:24
@lgrammel lgrammel merged commit b6783da into main Apr 30, 2026
18 checks passed
@lgrammel lgrammel deleted the lg/AbP1wA branch April 30, 2026 16:41
@github-actions
Copy link
Copy Markdown
Contributor

🚀 Published in:

Package Version
ai 7.0.0-beta.114
@ai-sdk/alibaba 2.0.0-beta.36
@ai-sdk/amazon-bedrock 5.0.0-beta.45
@ai-sdk/angular 3.0.0-beta.114
@ai-sdk/anthropic 4.0.0-beta.41
@ai-sdk/assemblyai 3.0.0-beta.31
@ai-sdk/azure 4.0.0-beta.41
@ai-sdk/baseten 2.0.0-beta.34
@ai-sdk/black-forest-labs 2.0.0-beta.30
@ai-sdk/bytedance 2.0.0-beta.31
@ai-sdk/cerebras 3.0.0-beta.34
@ai-sdk/codemod 4.0.0-beta.4
@ai-sdk/cohere 4.0.0-beta.31
@ai-sdk/deepgram 3.0.0-beta.30
@ai-sdk/deepinfra 3.0.0-beta.34
@ai-sdk/deepseek 3.0.0-beta.32
@ai-sdk/devtools 1.0.0-beta.19
@ai-sdk/elevenlabs 3.0.0-beta.30
@ai-sdk/fal 3.0.0-beta.30
@ai-sdk/fireworks 3.0.0-beta.34
@ai-sdk/gateway 4.0.0-beta.65
@ai-sdk/gladia 3.0.0-beta.30
@ai-sdk/google 4.0.0-beta.48
@ai-sdk/google-vertex 5.0.0-beta.62
@ai-sdk/groq 4.0.0-beta.33
@ai-sdk/huggingface 2.0.0-beta.34
@ai-sdk/hume 3.0.0-beta.30
@ai-sdk/klingai 4.0.0-beta.31
@ai-sdk/langchain 3.0.0-beta.114
@ai-sdk/llamaindex 3.0.0-beta.114
@ai-sdk/lmnt 3.0.0-beta.30
@ai-sdk/luma 3.0.0-beta.30
@ai-sdk/mcp 2.0.0-beta.36
@ai-sdk/mistral 4.0.0-beta.32
@ai-sdk/moonshotai 3.0.0-beta.34
@ai-sdk/open-responses 2.0.0-beta.32
@ai-sdk/openai 4.0.0-beta.41
@ai-sdk/openai-compatible 3.0.0-beta.34
@ai-sdk/otel 1.0.0-beta.60
@ai-sdk/perplexity 4.0.0-beta.33
@ai-sdk/prodia 2.0.0-beta.33
@ai-sdk/provider 4.0.0-beta.14
@ai-sdk/provider-utils 5.0.0-beta.29
@ai-sdk/react 4.0.0-beta.114
@ai-sdk/replicate 3.0.0-beta.31
@ai-sdk/revai 3.0.0-beta.31
@ai-sdk/rsc 3.0.0-beta.115
@ai-sdk/svelte 5.0.0-beta.114
@ai-sdk/test-server 2.0.0-beta.3
@ai-sdk/togetherai 3.0.0-beta.34
@ai-sdk/valibot 3.0.0-beta.29
@ai-sdk/vercel 3.0.0-beta.34
@ai-sdk/voyage 1.0.0-beta.3
@ai-sdk/vue 4.0.0-beta.114
@ai-sdk/workflow 1.0.0-beta.29
@ai-sdk/xai 4.0.0-beta.47

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants