t3-code-android-nightly/.repos/effect-smol/packages/ai/openai/CHANGELOG.md
Julius Marminge 6f9cea00ae
chore(refs): sync Effect and Alchemy references to 4.0.1 and beta.80 (#16170)
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-05 13:22:30 -07:00

180 KiB

@effect/ai-openai

4.0.1

Patch Changes

4.0.0

Patch Changes

  • #8633 2c552f2 Thanks @IMax153! - Effect 4.0 is the first stable release of Effect v4. It replaces the 4.0.0 beta and release-candidate series, whose per-release notes remain below under the 4.0.0-beta.* and 4.0.0-rc.* headings. To upgrade from Effect 3, follow the migration guide.

    Packaging and versioning

    • All Effect packages share one version number and are released together. Use the same version of effect and every @effect/* package.
    • @effect/platform, @effect/rpc, @effect/cluster, @effect/cli, @effect/ai, @effect/sql, @effect/workflow, @effect/experimental and similar packages are merged into effect. Separate packages remain only for platforms (@effect/platform-*), SQL drivers (@effect/sql-*), AI providers (@effect/ai-*), framework bindings (@effect/atom-*), OpenTelemetry, Vitest and tooling.
    • Modules such as effect/http, effect/http-api, effect/rpc, effect/cluster, effect/workflow, effect/ai, effect/cli, effect/sql and effect/schema import from effect/<area>. APIs tagged @stability unstable may have breaking changes in minor releases. APIs without a stability tag follow semver.
    • APIs that expose a third-party dependency are tagged @stability unstable, because that dependency's releases can change them. This covers NodeRedis, DenoRedis, BunRedis, @effect/platform-node/Undici and the undici dispatcher APIs, the ws options and re-exports in the platform packages, driver-specific options and clients in @effect/sql-clickhouse, @effect/sql-d1, @effect/sql-libsql, @effect/sql-mssql, @effect/sql-mysql2, @effect/sql-pglite and @effect/sql-sqlite-do, the provider clients, models and generated schemas in the @effect/ai-* packages, @effect/opentelemetry, and the vitest re-export in @effect/vitest.
    • effect has no runtime dependencies.
    • New packages in v4: @effect/platform-deno, @effect/sql-pglite, @effect/ai-openai-compat, @effect/ai-typesafe, @effect/atom-react, @effect/atom-solid, @effect/atom-vue, @effect/openapi-generator and @effect/doctest. @effect/docgen now lives in this repository.

    Core

    • The fiber runtime was rewritten for lower memory use and faster execution, with smaller bundles and better tree-shaking.
    • Services are defined with Context.Service, FiberRef is replaced by Context.Reference, Cause has a flat structure, and many combinators were renamed. See the migration guide for the full list.
    • Software transactional memory is built into Effect.tx, with TxRef, TxQueue, TxHashMap, TxPubSub, TxSemaphore and related Tx* data types.
    • Clock separates wall-clock time from monotonic time.
    • New modules include Semaphore, Latch, LayerRef, ErrorReporter, ByteSize, Newtype and Crypto. Arbitrary is now a native property-based testing module and no longer depends on fast-check.

    Schema

    • Schema v4 is a new implementation with faster parsing, class-based schemas, make constructors on every schema, and effectful decoding with services.
    • SchemaRepresentation powers JSON Schema (Draft-04, Draft-07, 2020-12 and OpenAPI 3.0/3.1) import and export, TypeScript code generation, and AI structured output.
    • SchemaBinary provides a compact binary codec and is the default wire format for cluster transports.
    • Optional JIT and AOT schema compilers are available as experimental modules.

    Platform, HTTP and RPC

    • HttpApi supports typed response headers, streaming and SSE responses, the HTTP QUERY method, HttpApiTest for in-memory testing, and much faster type checking for large APIs.
    • The HTTP modules add static file serving, response compression, rate-limited clients and graceful server shutdown.
    • Socket has a pull-based reader with backpressure and STARTTLS support. Network addresses are modeled by effect/net.
    • RPC serialization is schema-aware and supports server-originated requests and notifications.
    • @effect/platform-deno adds full Deno support. The Node, Bun, Deno and browser packages all provide the platform Crypto service, and the browser package adds IndexedDB support.

    Cluster and Workflow

    • Workflows can be declared with class syntax, and DurableQueue and an in-memory WorkflowEngine are available.
    • Runner memory can be bounded with ShardingConfig limits. Shutdown, entity movement and persisted replies are more reliable.

    SQL

    • @effect/sql-pg uses a built-in PostgreSQL client with pipelining, prepared statements and binary codecs, and no longer depends on pg.
    • @effect/sql-sqlite-node uses Node's built-in node:sqlite and requires Node 22.16 or newer.
    • SqlError exposes structured reasons such as UniqueViolation.

    AI

    • effect/ai adds EmbeddingModel, the DecisionModel classification and rating API, dynamic tools and tool approvals.
    • The MCP server supports protocol versions 2024-11-05 through 2026-07-28, including elicitation, sampling with tools, resource subscriptions and typed tool output.
    • Provider packages cover Anthropic, OpenAI, OpenAI-compatible APIs and OpenRouter.

    CLI, Atom, observability and testing

    • effect/cli adds global flags, command aliases and examples, an interactive wizard mode, and shell completions for Bash, Zsh and Fish.
    • effect/reactivity and the @effect/atom-* bindings add SSR hydration, stale-while-revalidate atoms and serializable RPC and HttpApi queries.
    • The OTLP exporters can be configured with standard OpenTelemetry environment variables, and @effect/opentelemetry aligns logs and spans with the OpenTelemetry specification.
    • @effect/vitest runs property tests with the native Arbitrary module and supports Vitest fixtures.

    Requirements

    • TypeScript 5.9 or newer. TypeScript 7 is recommended.
    • @effect/vitest and @effect/doctest require Vitest 5.
    • @effect/atom-react requires React 19.
    • @effect/platform-deno requires Deno 2.8.3 or newer.
  • Updated dependencies [cbfc7b4, 5a81a6f, 68b6394, 5250ca6, 5f9c9d1, 3278821, 83429b4, 0af6d0c, 927e01e, 10d8524, 35ac25a, 29e0aa7, 8783536, df77fff, ef7d77f, 035e369, f72790c, aa19472, 988c467, 735b77b, e5f7d12, 2c552f2]:

    • effect@4.0.0

4.0.0-rc.118

Patch Changes

4.0.0-rc.117

Patch Changes

4.0.0-rc.116

Patch Changes

4.0.0-rc.115

Patch Changes

4.0.0-rc.114

Patch Changes

4.0.0-rc.113

Patch Changes

4.0.0-rc.112

Patch Changes

4.0.0-rc.111

Patch Changes

4.0.0-rc.110

Patch Changes

4.0.0-rc.109

Patch Changes

4.0.0-rc.108

Patch Changes

4.0.0-beta.107

Patch Changes

4.0.0-beta.106

Patch Changes

4.0.0-beta.105

Patch Changes

4.0.0-beta.104

Patch Changes

4.0.0-beta.103

Patch Changes

4.0.0-beta.102

Patch Changes

4.0.0-beta.101

Patch Changes

4.0.0-beta.100

Patch Changes

4.0.0-beta.99

Patch Changes

4.0.0-beta.98

Patch Changes

4.0.0-beta.97

Patch Changes

  • Updated dependencies []:
    • effect@4.0.0-beta.97

4.0.0-beta.96

Patch Changes

4.0.0-beta.95

Patch Changes

4.0.0-beta.94

Patch Changes

4.0.0-beta.93

Patch Changes

4.0.0-beta.92

Patch Changes

  • Updated dependencies [affdc13]:
    • effect@4.0.0-beta.92

4.0.0-beta.91

Patch Changes

4.0.0-beta.90

Patch Changes

  • Updated dependencies [d237fdf]:
    • effect@4.0.0-beta.90

4.0.0-beta.89

Patch Changes

4.0.0-beta.88

Patch Changes

4.0.0-beta.87

Patch Changes

4.0.0-beta.86

Patch Changes

4.0.0-beta.85

Patch Changes

4.0.0-beta.84

Patch Changes

4.0.0-beta.83

Patch Changes

  • Updated dependencies [1f2e8ce]:
    • effect@4.0.0-beta.83

4.0.0-beta.82

Patch Changes

  • Updated dependencies [193690b]:
    • effect@4.0.0-beta.82

4.0.0-beta.81

Patch Changes

4.0.0-beta.80

Patch Changes

4.0.0-beta.79

Patch Changes

4.0.0-beta.78

Patch Changes

4.0.0-beta.77

Patch Changes

4.0.0-beta.76

Patch Changes

4.0.0-beta.75

Patch Changes

  • #2312 ad4b535 Thanks @gcanti! - Validate Schema.StructWithRest fixed fields against rest index signatures at the type level so schemas cannot be constructed with incompatible decoded, encoded, or make shapes. This keeps StructWithRest types sound and updates the generated OpenAI conversation-items request schema to keep accepting arbitrary additional fields under the stricter validation.

  • Updated dependencies [81b187c, ad4b535, a29c2e7, 1fdd9ae, 1fdd9ae, ffea4ec, 4255c9b]:

    • effect@4.0.0-beta.75

4.0.0-beta.74

Patch Changes

  • Updated dependencies [b1fc6a4]:
    • effect@4.0.0-beta.74

4.0.0-beta.73

Patch Changes

4.0.0-beta.72

Patch Changes

4.0.0-beta.71

Patch Changes

4.0.0-beta.70

Patch Changes

  • #2224 74d8f37 Thanks @aniravi24! - Fix OpenAIFile schema decode failure on responses where expires_at and status_details are returned as literal null. The OpenAI files endpoint returns null (not omitted) for these fields when no expiration / status detail applies (e.g. uploads with purpose: "user_data"), but the upstream OpenAPI spec marks them only as optional. Codegen patches widen both fields to allow null, which now decodes cleanly via OpenAiClient.createFile, retrieveFile, listFiles, and any other endpoint returning the OpenAIFile shape.

  • Updated dependencies [af7782d, 7212d70]:

    • effect@4.0.0-beta.70

4.0.0-beta.69

Patch Changes

4.0.0-beta.68

Patch Changes

4.0.0-beta.67

Patch Changes

4.0.0-beta.66

Patch Changes

4.0.0-beta.65

Patch Changes

  • Updated dependencies [6f11454]:
    • effect@4.0.0-beta.65

4.0.0-beta.64

Patch Changes

  • Updated dependencies [7d4877a]:
    • effect@4.0.0-beta.64

4.0.0-beta.63

Patch Changes

  • #2133 5be0aaa Thanks @Zelys-DFKH! - Fix OpenAiLanguageModel leaking library-only config fields (fileIdPrefixes, strictJsonSchema) into request body, causing OpenAI 400 errors.

  • Updated dependencies [7f927ff, a696b3e]:

    • effect@4.0.0-beta.63

4.0.0-beta.62

Patch Changes

  • Updated dependencies [4ab4b90]:
    • effect@4.0.0-beta.62

4.0.0-beta.61

Patch Changes

4.0.0-beta.60

Patch Changes

4.0.0-beta.59

Patch Changes

  • #2101 953edef Thanks @tim-smart! - don't omit reasoning from openai config

  • Updated dependencies [56837ea]:

    • effect@4.0.0-beta.59

4.0.0-beta.58

Patch Changes

4.0.0-beta.57

Patch Changes

4.0.0-beta.56

Patch Changes

  • #1933 c5a7327 Thanks @IMax153! - Accept both in-memory and in_memory for OpenAI prompt_cache_retention schema fields.

  • #1933 c5a7327 Thanks @IMax153! - Fix OpenAI MCP tool call handling to keep the canonical OpenAiMcp tool name across response and stream paths, including approval flows.

  • Updated dependencies []:

    • effect@4.0.0-beta.56

4.0.0-beta.55

Patch Changes

4.0.0-beta.54

Patch Changes

4.0.0-beta.53

Patch Changes

4.0.0-beta.52

Minor Changes

  • #2059 6f73f92 Thanks @tim-smart! - Add a new public OpenAiSchema module with minimal local schemas for responses, streaming SSE events (including unknown-event fallback), and embeddings.

Patch Changes

  • #2059 6f73f92 Thanks @tim-smart! - Add a new OpenAiClientGenerated module that exposes the generated OpenAI client as a dedicated context service with make, layer, and layerConfig constructors. This provides a compatibility path for direct generated-client access while preserving existing auth, base URL, header, and OpenAiConfig.transformClient wiring.

  • #2059 6f73f92 Thanks @tim-smart! - Refactor OpenAiClient to the handwritten minimal-schema path so client now exposes the configured HttpClient, createResponse / createResponseStream / createEmbedding use OpenAiSchema request-response types, and websocket mode no longer depends on generated-client internals.

    Also migrate OpenAI language and embedding model request-response typing to OpenAiSchema and make embedding decoding explicitly reject non-vector (string/base64) payloads with InvalidOutputError.

  • Updated dependencies [8e04bfc, cf3a311, 8e04bfc, 131fdd5]:

    • effect@4.0.0-beta.52

4.0.0-beta.51

Patch Changes

4.0.0-beta.50

Patch Changes

4.0.0-beta.49

Patch Changes

4.0.0-beta.48

Patch Changes

4.0.0-beta.47

Patch Changes

4.0.0-beta.46

Patch Changes

  • Updated dependencies [3a30b9e]:
    • effect@4.0.0-beta.46

4.0.0-beta.45

Patch Changes

  • Updated dependencies [5c3af6d]:
    • effect@4.0.0-beta.45

4.0.0-beta.44

Patch Changes

4.0.0-beta.43

Patch Changes

4.0.0-beta.42

Patch Changes

4.0.0-beta.41

Patch Changes

4.0.0-beta.40

Patch Changes

4.0.0-beta.39

Patch Changes

4.0.0-beta.38

Patch Changes

4.0.0-beta.37

Patch Changes

4.0.0-beta.36

Patch Changes

4.0.0-beta.35

Patch Changes

4.0.0-beta.34

Patch Changes

  • #1759 8feecd2 Thanks @tim-smart! - Ensure OpenAiSocket sends a {"type":"response.cancel"} websocket event when a response stream is interrupted.

  • #1764 342fc4b Thanks @tim-smart! - Add unstable EmbeddingModel support across core and OpenAI providers.

    • Add the unstable EmbeddingModel module API surface in effect, including service, request, response, and provider types.
    • Implement the unstable EmbeddingModel runtime constructor in effect, with RequestResolver batching, embed / embedMany spans, provider error propagation, deterministic ordering, and empty-input embedMany fast-path behavior.
    • Add and align EmbeddingModel behavior tests in effect for embedding usage, batching, ordering, and error handling.
    • Add OpenAiEmbeddingModel in @effect/ai-openai, including model / make / layer constructors, config overrides, and provider output index validation with deterministic reordering.
    • Add OpenAI-compatible EmbeddingModel provider support in @effect/ai-openai-compat, including config overrides, layer constructors, and output index validation.
  • #1771 00add69 Thanks @tim-smart! - Add EmbeddingModel.ModelDimensions and require dimensions in embedding provider model constructors.

  • #1765 f4e2aba Thanks @tim-smart! - retry incremental prompt on invalid request

  • #1760 273f4c6 Thanks @tim-smart! - handle openai ws error events

  • Updated dependencies [f2f75ee, 342fc4b, 5d704ee, 00add69, 58217d3, f4e2aba, e3b44b6, e1472b7, 7686320]:

    • effect@4.0.0-beta.34

4.0.0-beta.33

Patch Changes

  • #1638 e198fea Thanks @tim-smart! - add OpenAiClient.withWebSocketMode

  • Updated dependencies [571447d]:

    • effect@4.0.0-beta.33

4.0.0-beta.32

Patch Changes

4.0.0-beta.31

Patch Changes

4.0.0-beta.30

Patch Changes

4.0.0-beta.29

Patch Changes

4.0.0-beta.28

Patch Changes

4.0.0-beta.27

Patch Changes

4.0.0-beta.26

Patch Changes

4.0.0-beta.25

Patch Changes

4.0.0-beta.24

Patch Changes

4.0.0-beta.23

Patch Changes

  • Updated dependencies [5c73c41]:
    • effect@4.0.0-beta.23

4.0.0-beta.22

Patch Changes

4.0.0-beta.21

Patch Changes

4.0.0-beta.20

Patch Changes

4.0.0-beta.19

Patch Changes

  • #1522 19984c2 Thanks @IMax153! - Fix missing yield* in OpenAiLanguageModel.prepareResponseFormat

  • Updated dependencies []:

    • effect@4.0.0-beta.19

4.0.0-beta.18

Patch Changes

  • #1520 725260b Thanks @IMax153! - Ensure that OpenAI JSON schemas for tool calls and structured outputs are properly transformed

  • Updated dependencies [01e31fd, 0890aab, 725260b]:

    • effect@4.0.0-beta.18

4.0.0-beta.17

Patch Changes

  • Updated dependencies [8f59c32]:
    • effect@4.0.0-beta.17

4.0.0-beta.16

Patch Changes

4.0.0-beta.15

Patch Changes

4.0.0-beta.14

Patch Changes

4.0.0-beta.13

Patch Changes

4.0.0-beta.12

Patch Changes

4.0.0-beta.11

Patch Changes

4.0.0-beta.10

Patch Changes

4.0.0-beta.9

Patch Changes

4.0.0-beta.8

Patch Changes

  • #1354 b94962c Thanks @IMax153! - Fix the generated schemas for ai providers

  • Updated dependencies [246e672, 807dec0]:

    • effect@4.0.0-beta.8

4.0.0-beta.7

Patch Changes

4.0.0-beta.6

Patch Changes

4.0.0-beta.5

Patch Changes

4.0.0-beta.4

Patch Changes

4.0.0-beta.3

Patch Changes

4.0.0-beta.2

Patch Changes

4.0.0-beta.1

Patch Changes

4.0.0-beta.0

Major Changes

Patch Changes

  • Updated dependencies [be642ab]:
    • effect@4.0.0-beta.0