Skip to content

Graduate experimental APIs and types #16562

Description

@gr2m

Graduate experimental APIs and types

This batch tracks the graduation of all remaining experimental_ / Experimental_ APIs and types across published packages.

Graduation strategy: add the stable un-prefixed name, keep the experimental_ name as a @deprecated alias until v8 (non-breaking, fits a minor release). Each graduation needs: rename + alias, docs update in content/, and a patch changeset.

Inventory was compiled from all published packages (excluding codemod/devtools and tests). Identifiers that only survive in packages/codemod (e.g. experimental_StreamData, experimental_wrapLanguageModel, experimental_output) are already graduated or removed and are not listed.

Inventory (oldest → newest)

API group Packages Introduced PR Effort Notes
experimental_createProviderRegistry ai 2024-06-12 #1909 Stable createProviderRegistry already exists; alias is deprecated. Remove alias in v8.
experimental_useObject + Experimental_UseObjectOptions/Helpers (react, vue); Experimental_StructuredObject(+Options) (svelte) react, vue, svelte 2024-06-19 #2019 M 6 symbols across 3 framework packages; feature is mature and widely documented.
experimental_telemetry (TelemetryOptions) ai 2024-07-11 #1884 M Option on 8 entry points (generateText, streamText, generateObject, streamObject, embed, embedMany, rerank, ToolLoopAgentSettings); heavily documented.
experimental_throttle (useChat/useCompletion option) react 2024-11-01 #3440 S Single option on two stable hooks; widely documented.
experimental_repairToolCall (ToolCallRepairFunction) ai 2024-12-06 #3865 S Mature, documented, good test coverage.
Experimental_GeneratedImage ai 2024-12-10 #4056 S Leftover type alias for GeneratedFile (added in #5216); generateImage itself is stable. Deprecate, remove in v8.
experimental_transform (StreamTextTransform) ai 2024-12-12 #4074 M Core streaming feature, mature; rename touches the streaming API contract and 14 docs pages.
experimental_partialOutputStream (StreamTextResult property) ai, harness 2025-01-03 #4117 S Single property rename + alias; no docs references.
experimental_repairText (RepairTextFunction) ai 2025-02-19 #4937 S Narrow scope (generateObject/streamObject); has no public docs yet — write docs as part of graduation.
MCP remainder: Experimental_StdioMCPTransport, experimental_getPrompt, experimental_listPrompts, experimental_MCPAppRenderer mcp, react 2025-03-12 #5144 M Core client (createMCPClient etc.) already graduated in #11282. Stdio transport (#5209), prompt methods, and app renderer (#15041) are still experimental.
experimental_transcribe + Experimental_TranscriptionResult ai 2025-04-08 #5593 Already graduated in #16009 (2026-06-11). Remove aliases in v8.
experimental_generateSpeech + Experimental_SpeechResult ai 2025-04-16 #5802 Already graduated in #16010 (2026-06-11). Remove aliases in v8.
Experimental_Agent, Experimental_AgentSettings, Experimental_InferAgentUIMessage ai 2025-07-07 #7092 Already deprecated aliases of ToolLoopAgent/ToolLoopAgentSettings/InferAgentUIMessage. Remove in v8, no graduation work.
experimental_download + Experimental_DownloadFunction ai, workflow 2025-08-28 #8268 M Used across 4 core functions; well integrated, 9 docs references.
Experimental_LogWarningsFunction ai 2025-08-29 #8343 S Pure type alias of stable LogWarningsFunction; deprecate, remove in v8.
experimental_include (StreamTextInclude, GenerateTextInclude) ai, workflow 2026-01-29 #12126 L ⚠️ Hold. Multi-wave evolution (#15059, #15063) still settling post-v7; graduating mid-churn risks a second rename.
Video generation: experimental_generateVideo + Experimental_VideoModelV3*/V4* (18 symbols) ai, provider + 10 provider pkgs 2026-01-31 #11913 M ⚠️ Partial hold. V3 and V4 specs coexist (adapter in asVideoModelV4); call options still gaining features. Consider graduating the function once V3 is retired.
Lifecycle callbacks: experimental_onStart, experimental_onEnd, experimental_onStepStart, experimental_onToolCallStart/Finish, experimental_onLanguageModelCallStart/End, experimental_streamLanguageModelCall ai, workflow, harness 2026-02-19 #12654 M ⚠️ Hold candidate. 15 commits since May 2026 — instrumentation API still evolving.
experimental_filterActiveTools ai, workflow 2026-03-30 #13921 S Single function alias, light usage.
Experimental_LanguageModelStreamPart ai, workflow 2026-04-09 #14238 S Type re-export, not user-facing (no docs).
experimental_refineToolInput (ToolInputRefinement) ai 2026-05-05 #15000 S Very recent (May 2026); consider letting it bake before graduating.
Sandbox: experimental_sandbox, Experimental_SandboxSession, Experimental_SandboxProcess ai, provider-utils + 11 harness/sandbox pkgs 2026-05-13 #15253 L ⚠️ Hold. 13 packages, very active development (harness bootstrap callbacks, new harness impls); interaction surface still growing.
Realtime: Experimental_Realtime* types, experimental_useRealtime, audio helpers (encodeRealtimeAudio, decodeRealtimeAudio, resampleAudio, getRealtimeToolDefinitions), provider realtime models (25+ symbols) ai, provider, react, gateway, google, openai, xai 2026-06-04 #13893 L ⚠️ Hold. Weeks old; auth/client-secret patterns still evolving; heavy commit activity.
experimental_toolApprovalSecret ai, provider-utils 2026-06-10 #15947 S Very recent security hardening feature; small surface but let it bake.

Suggested order of work

  1. No-op / cleanup (already graduated, verify deprecation JSDoc is in place): createProviderRegistry, transcribe, generateSpeech, Agent aliases, Experimental_GeneratedImage, Experimental_LogWarningsFunction.
  2. Quick wins (S): experimental_throttle, experimental_repairToolCall, experimental_partialOutputStream, experimental_repairText (+docs), experimental_filterActiveTools, Experimental_LanguageModelStreamPart.
  3. Medium (M): experimental_useObject family, experimental_telemetry, experimental_transform, experimental_download, MCP remainder.
  4. Hold / revisit for v7.2+: experimental_include, video generation (until V3 retired), lifecycle callbacks, experimental_refineToolInput, sandbox, realtime, experimental_toolApprovalSecret.

Effort legend: S = < half day, M = 1–2 days, L = multi-day / needs design decision.

Metadata

Metadata

Assignees

Labels

type:batchAdmins only: assign to issues with sub tasks

Type

No type
No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions