While merging my-words prototype, Claude noted:
ai is ^7 but @ai-sdk/openai is still ^2 (emits v2-spec models) and @ai-sdk/react is ^4. There are six copies of @ai-sdk/provider in the tree — 2.0.3 at top level, 4.0.3 nested under ai, gateway, react, otel, mcp. It works only because ai v7 ships an asLanguageModelV3 compat shim, which I verified in the dist rather than assuming. That shim is exactly the kind of thing a major drops. It's also why generate.test.ts now derives its stream-part type instead of importing it — the top-level @ai-sdk/provider is a spec behind what ai uses. Worth finishing the bump deliberately rather than leaving it resting on a shim.
While merging my-words prototype, Claude noted:
ai is ^7 but @ai-sdk/openai is still ^2 (emits v2-spec models) and @ai-sdk/react is ^4. There are six copies of @ai-sdk/provider in the tree — 2.0.3 at top level, 4.0.3 nested under ai, gateway, react, otel, mcp. It works only because ai v7 ships an asLanguageModelV3 compat shim, which I verified in the dist rather than assuming. That shim is exactly the kind of thing a major drops. It's also why generate.test.ts now derives its stream-part type instead of importing it — the top-level @ai-sdk/provider is a spec behind what ai uses. Worth finishing the bump deliberately rather than leaving it resting on a shim.