@cloudflare/ai-chat@0.10.0

cloudflare/agents@cloudflare/ai-chat@0.10.0Jul 23, 2026by github-actions[bot]

AI Summary

This minor release adds dual support for AI SDK v6 and v7, allowing consumers to upgrade without breaking changes. It includes normalization logic for API differences between the two major versions.

Key Highlights

  • Added dual support for both AI SDK v6 and v7.
  • Normalized API differences like tool execution events and telemetry callbacks.
  • Updated peer dependencies to `ai@^6 || ^7` across agents and related packages.

New Features

  • Dual AI SDK (v6 and v7) support.
  • Normalization of tool execution events and UI message streams.

Full Release Notes

### Minor Changes

-   [#1922](https://github.com/cloudflare/agents/pull/1922) [`cb4c1c7`](https://github.com/cloudflare/agents/commit/cb4c1c722d5a556ce68228d8e60f9c1df604ef81) Thanks [@cjol](https://github.com/cjol)! - Support both AI SDK v6 and v7.

      The `ai` peer range is `ai@^6 || ^7` (and `@ai-sdk/react` is `@^3 || ^4`) across
      `agents`, `@cloudflare/ai-chat`, `@cloudflare/codemode`, and `@cloudflare/think`.
      Consumers can adopt AI SDK v7 or stay on v6 — no forced AI SDK upgrade when
      bumping these packages.

      Only the current implementations are covered. New optimisations and APIs made
      available by AI SDK v7 (broader result-shape audits, stream helper migrations,
      etc.) are intentionally out of scope.

      How dual-version support works — `@cloudflare/think` calls the AI SDK through the
      option names present in both majors (v7 keeps the v6 names as aliases), and
      normalizes the genuine divergences at the boundary:

    -   Uses `stepCountIs`, `system`, `experimental_telemetry`, `onStepFinish`, and
        `experimental_onToolCallFinish` (in v7 this alias resolves to
        `onToolExecutionEnd` and fires once).

    -   The tool-execution-finished event is normalized across majors: v6's
        `{ success, output, error, durationMs, stepNumber }` and v7's
        `{ toolOutput, toolExecutionMs }` collapse to one `ToolCallResultContext`.
        `stepNumber` is `undefined` under v7 (the v7 event no longer provides it).

    -   The UI message stream is built via the result's `toUIMessageStream()` method
        (present in both majors); the standalone `toUIMessageStream({ stream })`
        helper and `result.stream` are v7-only.

    -   The workspace read tool emits `{ type: "file-data", data, mediaType, filename }`
            model output, accepted by both majors (v7's newer `{ type: "file", data: {
        type: "data", data } }` shape does not exist in v6).

          Public API notes:

    -   `@cloudflare/think` keeps `system`, `onStepFinish`, and `experimental_telemetry`
        where callers already use them, and also accepts `TurnConfig.telemetry`
        (forwarded ahead of `experimental_telemetry` when present).

    -   `@cloudflare/ai-chat` updates the `AIChatAgent.onChatMessage` callback type
          from `StreamTextOnFinishCallback` to `GenerateTextOnFinishCallback`.

        Verified against both `ai@6` and `ai@7`: `@cloudflare/think` type-checks with
        zero errors and its full workers test suite passes under each major.

        Known limitations:

    -   `workers-ai-provider` (Think's default model provider) is fixed at v4 for AI
        SDK v7. Consumers on `ai@6` who rely on Think's built-in default model may hit
        a provider-version mismatch; passing their own `LanguageModel` avoids this.

    -   `chat@4.31.0` currently declares an `ai@^6` peer and does not yet advertise
        v7 support; tracked separately.

    -   CI should exercise both an `ai@6` and an `ai@7` resolution to guard the matrix.