@effect/ai-openai 4.0.0-beta.7 → 4.0.0-beta.71

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/Generated.d.ts +66734 -37723
  2. package/dist/Generated.d.ts.map +1 -1
  3. package/dist/Generated.js +1 -1
  4. package/dist/Generated.js.map +1 -1
  5. package/dist/OpenAiClient.d.ts +167 -27
  6. package/dist/OpenAiClient.d.ts.map +1 -1
  7. package/dist/OpenAiClient.js +337 -44
  8. package/dist/OpenAiClient.js.map +1 -1
  9. package/dist/OpenAiClientGenerated.d.ts +91 -0
  10. package/dist/OpenAiClientGenerated.d.ts.map +1 -0
  11. package/dist/OpenAiClientGenerated.js +84 -0
  12. package/dist/OpenAiClientGenerated.js.map +1 -0
  13. package/dist/OpenAiConfig.d.ts +114 -10
  14. package/dist/OpenAiConfig.d.ts.map +1 -1
  15. package/dist/OpenAiConfig.js +68 -7
  16. package/dist/OpenAiConfig.js.map +1 -1
  17. package/dist/OpenAiEmbeddingModel.d.ts +213 -0
  18. package/dist/OpenAiEmbeddingModel.d.ts.map +1 -0
  19. package/dist/OpenAiEmbeddingModel.js +219 -0
  20. package/dist/OpenAiEmbeddingModel.js.map +1 -0
  21. package/dist/OpenAiError.d.ts +168 -35
  22. package/dist/OpenAiError.d.ts.map +1 -1
  23. package/dist/OpenAiError.js +1 -1
  24. package/dist/OpenAiLanguageModel.d.ts +384 -62
  25. package/dist/OpenAiLanguageModel.d.ts.map +1 -1
  26. package/dist/OpenAiLanguageModel.js +416 -166
  27. package/dist/OpenAiLanguageModel.js.map +1 -1
  28. package/dist/OpenAiSchema.d.ts +2298 -0
  29. package/dist/OpenAiSchema.d.ts.map +1 -0
  30. package/dist/OpenAiSchema.js +814 -0
  31. package/dist/OpenAiSchema.js.map +1 -0
  32. package/dist/OpenAiTelemetry.d.ts +59 -18
  33. package/dist/OpenAiTelemetry.d.ts.map +1 -1
  34. package/dist/OpenAiTelemetry.js +35 -8
  35. package/dist/OpenAiTelemetry.js.map +1 -1
  36. package/dist/OpenAiTool.d.ts +157 -62
  37. package/dist/OpenAiTool.d.ts.map +1 -1
  38. package/dist/OpenAiTool.js +134 -39
  39. package/dist/OpenAiTool.js.map +1 -1
  40. package/dist/index.d.ts +19 -33
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +19 -33
  43. package/dist/index.js.map +1 -1
  44. package/dist/internal/errors.js +4 -4
  45. package/dist/internal/errors.js.map +1 -1
  46. package/package.json +3 -3
  47. package/src/Generated.ts +9858 -5044
  48. package/src/OpenAiClient.ts +513 -95
  49. package/src/OpenAiClientGenerated.ts +202 -0
  50. package/src/OpenAiConfig.ts +115 -11
  51. package/src/OpenAiEmbeddingModel.ts +357 -0
  52. package/src/OpenAiError.ts +170 -35
  53. package/src/OpenAiLanguageModel.ts +802 -167
  54. package/src/OpenAiSchema.ts +1289 -0
  55. package/src/OpenAiTelemetry.ts +81 -23
  56. package/src/OpenAiTool.ts +135 -40
  57. package/src/index.ts +22 -33
  58. package/src/internal/errors.ts +6 -4
@@ -1,57 +1,69 @@
1
1
  import type * as Config from "effect/Config";
2
+ import * as Context from "effect/Context";
2
3
  import * as Effect from "effect/Effect";
3
4
  import * as Layer from "effect/Layer";
4
5
  import * as Redacted from "effect/Redacted";
5
- import * as ServiceMap from "effect/ServiceMap";
6
6
  import * as Stream from "effect/Stream";
7
- import type * as AiError from "effect/unstable/ai/AiError";
7
+ import * as AiError from "effect/unstable/ai/AiError";
8
+ import * as ResponseIdTracker from "effect/unstable/ai/ResponseIdTracker";
8
9
  import * as HttpClient from "effect/unstable/http/HttpClient";
9
- import type * as HttpClientResponse from "effect/unstable/http/HttpClientResponse";
10
- import * as Generated from "./Generated.ts";
10
+ import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse";
11
+ import * as Socket from "effect/unstable/socket/Socket";
12
+ import * as OpenAiSchema from "./OpenAiSchema.ts";
11
13
  /**
12
- * The OpenAI client interface.
14
+ * Effect service interface for the handwritten OpenAI client.
15
+ *
16
+ * **Details**
17
+ *
18
+ * Provides the configured HTTP client plus helpers for Responses API calls, streaming Responses events, and embeddings. Transport and schema decoding failures are mapped to `AiError`.
13
19
  *
14
- * @since 1.0.0
15
20
  * @category models
21
+ * @since 4.0.0
16
22
  */
17
23
  export interface Service {
18
24
  /**
19
- * The underlying generated OpenAI client.
25
+ * The transformed HTTP client used by this service.
20
26
  */
21
- readonly client: Generated.OpenAiClient;
27
+ readonly client: HttpClient.HttpClient;
22
28
  /**
23
29
  * Create a response using the OpenAI responses endpoint.
24
30
  */
25
- readonly createResponse: (options: typeof Generated.CreateResponse.Encoded) => Effect.Effect<[
26
- body: typeof Generated.Response.Type,
27
- response: HttpClientResponse.HttpClientResponse
28
- ], AiError.AiError>;
31
+ readonly createResponse: (options: typeof OpenAiSchema.CreateResponse.Encoded) => Effect.Effect<readonly [body: typeof OpenAiSchema.Response.Type, response: HttpClientResponse.HttpClientResponse], AiError.AiError>;
29
32
  /**
30
33
  * Create a streaming response using the OpenAI responses endpoint.
31
34
  */
32
- readonly createResponseStream: (options: Omit<typeof Generated.CreateResponse.Encoded, "stream">) => Effect.Effect<[
35
+ readonly createResponseStream: (options: Omit<typeof OpenAiSchema.CreateResponse.Encoded, "stream">) => Effect.Effect<readonly [
33
36
  response: HttpClientResponse.HttpClientResponse,
34
- stream: Stream.Stream<typeof Generated.ResponseStreamEvent.Type, AiError.AiError>
37
+ stream: Stream.Stream<typeof OpenAiSchema.ResponseStreamEvent.Type, AiError.AiError>
35
38
  ], AiError.AiError>;
36
39
  /**
37
40
  * Create embeddings using the OpenAI embeddings endpoint.
38
41
  */
39
- readonly createEmbedding: (options: typeof Generated.CreateEmbeddingRequest.Encoded) => Effect.Effect<typeof Generated.CreateEmbeddingResponse.Type, AiError.AiError>;
42
+ readonly createEmbedding: (options: typeof OpenAiSchema.CreateEmbeddingRequest.Encoded) => Effect.Effect<typeof OpenAiSchema.CreateEmbeddingResponse.Type, AiError.AiError>;
40
43
  }
41
- declare const OpenAiClient_base: ServiceMap.ServiceClass<OpenAiClient, "@effect/ai-openai/OpenAiClient", Service>;
44
+ declare const OpenAiClient_base: Context.ServiceClass<OpenAiClient, "@effect/ai-openai/OpenAiClient", Service>;
42
45
  /**
43
46
  * Service identifier for the OpenAI client.
44
47
  *
45
- * @since 1.0.0
46
- * @category service
48
+ * **When to use**
49
+ *
50
+ * Use when accessing or providing the OpenAI client service through Effect's
51
+ * context.
52
+ *
53
+ * @see {@link make} for constructing an OpenAI client effectfully
54
+ * @see {@link layer} for providing a client from explicit options
55
+ * @see {@link layerConfig} for providing a client from `Config`
56
+ *
57
+ * @category services
58
+ * @since 4.0.0
47
59
  */
48
60
  export declare class OpenAiClient extends OpenAiClient_base {
49
61
  }
50
62
  /**
51
63
  * Options for configuring the OpenAI client.
52
64
  *
53
- * @since 1.0.0
54
65
  * @category models
66
+ * @since 4.0.0
55
67
  */
56
68
  export type Options = {
57
69
  /**
@@ -80,29 +92,70 @@ export type Options = {
80
92
  /**
81
93
  * Creates an OpenAI client service with the given options.
82
94
  *
83
- * @since 1.0.0
95
+ * **When to use**
96
+ *
97
+ * Use to construct the OpenAI client service inside an effect when you need the
98
+ * service value directly.
99
+ *
100
+ * **Details**
101
+ *
102
+ * The returned service uses the current `HttpClient`, prepends `apiUrl` or
103
+ * `https://api.openai.com/v1`, adds the bearer token and optional OpenAI
104
+ * organization/project headers, accepts JSON responses, filters for successful
105
+ * HTTP statuses, and applies `transformClient` when provided.
106
+ *
107
+ * **Gotchas**
108
+ *
109
+ * A scoped `OpenAiConfig.withClientTransform` is applied when request helpers
110
+ * run, after the `transformClient` option supplied to `make`.
111
+ *
112
+ * @see {@link layer} for providing this client from explicit options
113
+ * @see {@link layerConfig} for loading client settings from `Config`
114
+ *
84
115
  * @category constructors
116
+ * @since 4.0.0
85
117
  */
86
118
  export declare const make: (options: Options) => Effect.Effect<Service, never, HttpClient.HttpClient>;
87
119
  /**
88
120
  * Creates a layer for the OpenAI client with the given options.
89
121
  *
90
- * @since 1.0.0
122
+ * **When to use**
123
+ *
124
+ * Use when you already have explicit `Options` values, such as an API key or
125
+ * custom API URL, and want to provide `OpenAiClient` as a `Layer`.
126
+ *
127
+ * @see {@link make} for constructing the client service effectfully
128
+ * @see {@link layerConfig} for loading client settings from `Config`
129
+ *
91
130
  * @category layers
131
+ * @since 4.0.0
92
132
  */
93
133
  export declare const layer: (options: Options) => Layer.Layer<OpenAiClient, never, HttpClient.HttpClient>;
94
134
  /**
95
- * Creates a layer for the OpenAI client, loading the requisite configuration
96
- * via Effect's `Config` module.
135
+ * Creates a layer for the OpenAI client from provided `Config` values.
136
+ *
137
+ * **When to use**
138
+ *
139
+ * Use when client settings should be read from Effect `Config` values while
140
+ * providing `OpenAiClient` as a `Layer`.
141
+ *
142
+ * **Details**
143
+ *
144
+ * Only config values supplied in `options` are loaded. Omitted fields are
145
+ * passed to `make` as `undefined`, and `transformClient` is forwarded as a
146
+ * plain option.
147
+ *
148
+ * @see {@link make} for constructing the client service effectfully
149
+ * @see {@link layer} for providing the client from already-resolved options
97
150
  *
98
- * @since 1.0.0
99
151
  * @category layers
152
+ * @since 4.0.0
100
153
  */
101
154
  export declare const layerConfig: (options?: {
102
155
  /**
103
156
  * The config value to load for the API key.
104
157
  */
105
- readonly apiKey?: Config.Config<Redacted.Redacted<string>> | undefined;
158
+ readonly apiKey?: Config.Config<Redacted.Redacted<string> | undefined> | undefined;
106
159
  /**
107
160
  * The config value to load for the API URL.
108
161
  */
@@ -110,15 +163,102 @@ export declare const layerConfig: (options?: {
110
163
  /**
111
164
  * The config value to load for the organization ID.
112
165
  */
113
- readonly organizationId?: Config.Config<Redacted.Redacted<string>> | undefined;
166
+ readonly organizationId?: Config.Config<Redacted.Redacted<string> | undefined> | undefined;
114
167
  /**
115
168
  * The config value to load for the project ID.
116
169
  */
117
- readonly projectId?: Config.Config<Redacted.Redacted<string>> | undefined;
170
+ readonly projectId?: Config.Config<Redacted.Redacted<string> | undefined> | undefined;
118
171
  /**
119
172
  * Optional transformer for the HTTP client.
120
173
  */
121
174
  readonly transformClient?: ((client: HttpClient.HttpClient) => HttpClient.HttpClient) | undefined;
122
175
  }) => Layer.Layer<OpenAiClient, Config.ConfigError, HttpClient.HttpClient>;
176
+ /**
177
+ * Response stream event emitted by the OpenAI Responses API.
178
+ *
179
+ * @category Events
180
+ * @since 4.0.0
181
+ */
182
+ export type ResponseStreamEvent = typeof OpenAiSchema.ResponseStreamEvent.Type;
183
+ declare const OpenAiSocket_base: Context.ServiceClass<OpenAiSocket, "@effect/ai-openai/OpenAiClient/OpenAiSocket", {
184
+ /**
185
+ * Create a streaming response using the OpenAI responses endpoint.
186
+ */
187
+ readonly createResponseStream: (options: Omit<typeof OpenAiSchema.CreateResponse.Encoded, "stream">) => Effect.Effect<readonly [response: HttpClientResponse.HttpClientResponse, stream: Stream.Stream<ResponseStreamEvent, AiError.AiError>], AiError.AiError>;
188
+ }>;
189
+ /**
190
+ * Service for creating OpenAI response streams over a WebSocket connection.
191
+ *
192
+ * **When to use**
193
+ *
194
+ * Use when code needs direct access to the WebSocket-backed response streaming
195
+ * service rather than wrapping an effect with WebSocket mode.
196
+ *
197
+ * **Details**
198
+ *
199
+ * `createResponseStream` sends a `response.create` message over the WebSocket
200
+ * connection and returns an HTTP response together with a stream of
201
+ * `ResponseStreamEvent` values.
202
+ *
203
+ * **Gotchas**
204
+ *
205
+ * WebSocket response streams are serialized to one request at a time by the
206
+ * shared socket service.
207
+ *
208
+ * @see {@link withWebSocketMode} for enabling WebSocket mode for one effect
209
+ * @see {@link layerWebSocketMode} for providing WebSocket mode through a layer
210
+ *
211
+ * @category Websocket mode
212
+ * @since 4.0.0
213
+ */
214
+ export declare class OpenAiSocket extends OpenAiSocket_base {
215
+ }
216
+ /**
217
+ * Uses OpenAI's WebSocket mode for response streams within the provided effect.
218
+ *
219
+ * **When to use**
220
+ *
221
+ * Use to enable WebSocket mode around one effect that creates OpenAI response
222
+ * streams.
223
+ *
224
+ * **Gotchas**
225
+ *
226
+ * This only works with the following WebSocket constructor layers:
227
+ *
228
+ * - `NodeSocket.layerWebSocketConstructorWS`
229
+ * - `BunSocket.layerWebSocketConstructor`
230
+ *
231
+ * This is because it needs to use non-standard options for setting the Authorization header.
232
+ *
233
+ * @see {@link layerWebSocketMode} for providing WebSocket mode through a layer
234
+ * @see {@link OpenAiSocket} for direct access to the WebSocket-backed streaming service
235
+ *
236
+ * @category Websocket mode
237
+ * @since 4.0.0
238
+ */
239
+ export declare const withWebSocketMode: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, OpenAiSocket | ResponseIdTracker.ResponseIdTracker> | OpenAiClient | Socket.WebSocketConstructor>;
240
+ /**
241
+ * Uses OpenAI's websocket mode for all responses that use the Layer.
242
+ *
243
+ * **When to use**
244
+ *
245
+ * Use to provide WebSocket mode through layer composition for effects that use
246
+ * OpenAI response streaming.
247
+ *
248
+ * **Gotchas**
249
+ *
250
+ * This only works with the following WebSocket constructor layers:
251
+ *
252
+ * - `NodeSocket.layerWebSocketConstructorWS`
253
+ * - `BunSocket.layerWebSocketConstructor`
254
+ *
255
+ * This is because it needs to use non-standard options for setting the Authorization header.
256
+ *
257
+ * @see {@link withWebSocketMode} for enabling WebSocket mode around a single effect
258
+ *
259
+ * @category Websocket mode
260
+ * @since 4.0.0
261
+ */
262
+ export declare const layerWebSocketMode: Layer.Layer<OpenAiSocket | ResponseIdTracker.ResponseIdTracker, never, OpenAiClient | Socket.WebSocketConstructor>;
123
263
  export {};
124
264
  //# sourceMappingURL=OpenAiClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpenAiClient.d.ts","sourceRoot":"","sources":["../src/OpenAiClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OpenAiClient.d.ts","sourceRoot":"","sources":["../src/OpenAiClient.ts"],"names":[],"mappings":"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"}