@effect/ai-openai 4.0.0-beta.8 → 4.0.0-beta.81
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.
- package/dist/Generated.d.ts +66675 -37672
- package/dist/Generated.d.ts.map +1 -1
- package/dist/Generated.js +1 -1
- package/dist/Generated.js.map +1 -1
- package/dist/OpenAiClient.d.ts +170 -29
- package/dist/OpenAiClient.d.ts.map +1 -1
- package/dist/OpenAiClient.js +321 -46
- package/dist/OpenAiClient.js.map +1 -1
- package/dist/OpenAiClientGenerated.d.ts +91 -0
- package/dist/OpenAiClientGenerated.d.ts.map +1 -0
- package/dist/OpenAiClientGenerated.js +84 -0
- package/dist/OpenAiClientGenerated.js.map +1 -0
- package/dist/OpenAiConfig.d.ts +88 -10
- package/dist/OpenAiConfig.d.ts.map +1 -1
- package/dist/OpenAiConfig.js +42 -7
- package/dist/OpenAiConfig.js.map +1 -1
- package/dist/OpenAiEmbeddingModel.d.ts +188 -0
- package/dist/OpenAiEmbeddingModel.d.ts.map +1 -0
- package/dist/OpenAiEmbeddingModel.js +194 -0
- package/dist/OpenAiEmbeddingModel.js.map +1 -0
- package/dist/OpenAiError.d.ts +168 -35
- package/dist/OpenAiError.d.ts.map +1 -1
- package/dist/OpenAiError.js +1 -1
- package/dist/OpenAiLanguageModel.d.ts +357 -63
- package/dist/OpenAiLanguageModel.d.ts.map +1 -1
- package/dist/OpenAiLanguageModel.js +390 -168
- package/dist/OpenAiLanguageModel.js.map +1 -1
- package/dist/OpenAiSchema.d.ts +2325 -0
- package/dist/OpenAiSchema.d.ts.map +1 -0
- package/dist/OpenAiSchema.js +811 -0
- package/dist/OpenAiSchema.js.map +1 -0
- package/dist/OpenAiTelemetry.d.ts +63 -22
- package/dist/OpenAiTelemetry.d.ts.map +1 -1
- package/dist/OpenAiTelemetry.js +20 -10
- package/dist/OpenAiTelemetry.js.map +1 -1
- package/dist/OpenAiTool.d.ts +148 -62
- package/dist/OpenAiTool.d.ts.map +1 -1
- package/dist/OpenAiTool.js +125 -39
- package/dist/OpenAiTool.js.map +1 -1
- package/dist/index.d.ts +19 -33
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -33
- package/dist/index.js.map +1 -1
- package/dist/internal/errors.js +4 -4
- package/dist/internal/errors.js.map +1 -1
- package/package.json +3 -3
- package/src/Generated.ts +9717 -4887
- package/src/OpenAiClient.ts +499 -98
- package/src/OpenAiClientGenerated.ts +202 -0
- package/src/OpenAiConfig.ts +89 -11
- package/src/OpenAiEmbeddingModel.ts +332 -0
- package/src/OpenAiError.ts +170 -35
- package/src/OpenAiLanguageModel.ts +776 -169
- package/src/OpenAiSchema.ts +1286 -0
- package/src/OpenAiTelemetry.ts +69 -28
- package/src/OpenAiTool.ts +126 -40
- package/src/index.ts +22 -33
- package/src/internal/errors.ts +6 -4
package/dist/OpenAiClient.js
CHANGED
|
@@ -1,37 +1,58 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* The `OpenAiClient` module defines the low-level Effect service used by the
|
|
3
|
+
* OpenAI integration for Responses API and embedding requests. It builds a
|
|
4
|
+
* configured HTTP client with authentication and OpenAI organization or project
|
|
5
|
+
* headers, exposes helpers for non-streaming responses, SSE response streams,
|
|
6
|
+
* WebSocket response streams, and embeddings, and maps transport or decoding
|
|
7
|
+
* failures into `AiError`.
|
|
3
8
|
*
|
|
4
|
-
*
|
|
5
|
-
* completions, embeddings, and streaming responses.
|
|
6
|
-
*
|
|
7
|
-
* @since 1.0.0
|
|
9
|
+
* @since 4.0.0
|
|
8
10
|
*/
|
|
9
11
|
import * as Array from "effect/Array";
|
|
12
|
+
import * as Context from "effect/Context";
|
|
10
13
|
import * as Effect from "effect/Effect";
|
|
11
14
|
import { identity } from "effect/Function";
|
|
15
|
+
import * as Function from "effect/Function";
|
|
12
16
|
import * as Layer from "effect/Layer";
|
|
13
17
|
import * as Predicate from "effect/Predicate";
|
|
18
|
+
import * as Queue from "effect/Queue";
|
|
19
|
+
import * as RcRef from "effect/RcRef";
|
|
14
20
|
import * as Redacted from "effect/Redacted";
|
|
15
|
-
import * as
|
|
21
|
+
import * as Schema from "effect/Schema";
|
|
22
|
+
import * as Scope from "effect/Scope";
|
|
23
|
+
import * as Semaphore from "effect/Semaphore";
|
|
16
24
|
import * as Stream from "effect/Stream";
|
|
25
|
+
import * as AiError from "effect/unstable/ai/AiError";
|
|
26
|
+
import * as ResponseIdTracker from "effect/unstable/ai/ResponseIdTracker";
|
|
17
27
|
import * as Sse from "effect/unstable/encoding/Sse";
|
|
18
28
|
import * as Headers from "effect/unstable/http/Headers";
|
|
19
29
|
import * as HttpBody from "effect/unstable/http/HttpBody";
|
|
20
30
|
import * as HttpClient from "effect/unstable/http/HttpClient";
|
|
21
31
|
import * as HttpClientRequest from "effect/unstable/http/HttpClientRequest";
|
|
22
|
-
import * as
|
|
32
|
+
import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse";
|
|
33
|
+
import * as Socket from "effect/unstable/socket/Socket";
|
|
23
34
|
import * as Errors from "./internal/errors.js";
|
|
24
35
|
import { OpenAiConfig } from "./OpenAiConfig.js";
|
|
36
|
+
import * as OpenAiSchema from "./OpenAiSchema.js";
|
|
25
37
|
// =============================================================================
|
|
26
38
|
// Service Identifier
|
|
27
39
|
// =============================================================================
|
|
28
40
|
/**
|
|
29
|
-
* Service
|
|
41
|
+
* Service tag for the OpenAI client.
|
|
42
|
+
*
|
|
43
|
+
* **When to use**
|
|
44
|
+
*
|
|
45
|
+
* Use when accessing or providing the OpenAI client service through Effect's
|
|
46
|
+
* context.
|
|
47
|
+
*
|
|
48
|
+
* @see {@link make} for constructing an OpenAI client effectfully
|
|
49
|
+
* @see {@link layer} for providing a client from explicit options
|
|
50
|
+
* @see {@link layerConfig} for providing a client from `Config`
|
|
30
51
|
*
|
|
31
|
-
* @
|
|
32
|
-
* @
|
|
52
|
+
* @category services
|
|
53
|
+
* @since 4.0.0
|
|
33
54
|
*/
|
|
34
|
-
export class OpenAiClient extends /*#__PURE__*/
|
|
55
|
+
export class OpenAiClient extends /*#__PURE__*/Context.Service()("@effect/ai-openai/OpenAiClient") {}
|
|
35
56
|
// =============================================================================
|
|
36
57
|
// Constructor
|
|
37
58
|
// =============================================================================
|
|
@@ -42,33 +63,42 @@ const RedactedOpenAiHeaders = {
|
|
|
42
63
|
/**
|
|
43
64
|
* Creates an OpenAI client service with the given options.
|
|
44
65
|
*
|
|
45
|
-
*
|
|
66
|
+
* **When to use**
|
|
67
|
+
*
|
|
68
|
+
* Use when you need the OpenAI client service value inside an effect.
|
|
69
|
+
*
|
|
70
|
+
* **Details**
|
|
71
|
+
*
|
|
72
|
+
* The returned service uses the current `HttpClient`, prepends `apiUrl` or
|
|
73
|
+
* `https://api.openai.com/v1`, adds the bearer token and optional OpenAI
|
|
74
|
+
* organization/project headers, accepts JSON responses, filters for successful
|
|
75
|
+
* HTTP statuses, and applies `transformClient` when provided.
|
|
76
|
+
*
|
|
77
|
+
* **Gotchas**
|
|
78
|
+
*
|
|
79
|
+
* A scoped `OpenAiConfig.withClientTransform` is applied when request helpers
|
|
80
|
+
* run, after the `transformClient` option supplied to `make`.
|
|
81
|
+
*
|
|
82
|
+
* @see {@link layer} for providing this client from explicit options
|
|
83
|
+
* @see {@link layerConfig} for loading client settings from `Config`
|
|
84
|
+
*
|
|
46
85
|
* @category constructors
|
|
86
|
+
* @since 4.0.0
|
|
47
87
|
*/
|
|
48
88
|
export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
49
89
|
const baseClient = yield* HttpClient.HttpClient;
|
|
50
|
-
const
|
|
51
|
-
const
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
-
return client;
|
|
59
|
-
})
|
|
60
|
-
});
|
|
61
|
-
const createResponse = payload => client.createResponse({
|
|
62
|
-
payload,
|
|
63
|
-
config: {
|
|
64
|
-
includeResponse: true
|
|
65
|
-
}
|
|
66
|
-
}).pipe(Effect.catchTags({
|
|
90
|
+
const apiUrl = options.apiUrl ?? "https://api.openai.com/v1";
|
|
91
|
+
const httpClient = baseClient.pipe(HttpClient.mapRequest(Function.flow(HttpClientRequest.prependUrl(apiUrl), options.apiKey ? HttpClientRequest.bearerToken(Redacted.value(options.apiKey)) : identity, options.organizationId ? HttpClientRequest.setHeader(RedactedOpenAiHeaders.OpenAiOrganization, Redacted.value(options.organizationId)) : identity, options.projectId ? HttpClientRequest.setHeader(RedactedOpenAiHeaders.OpenAiProject, Redacted.value(options.projectId)) : identity, HttpClientRequest.acceptJson)), HttpClient.filterStatusOk, options.transformClient ? options.transformClient : identity);
|
|
92
|
+
const resolveHttpClient = Effect.map(OpenAiConfig.getOrUndefined, config => Predicate.isNotUndefined(config?.transformClient) ? config.transformClient(httpClient) : httpClient);
|
|
93
|
+
const decodeResponse = HttpClientResponse.schemaBodyJson(OpenAiSchema.Response);
|
|
94
|
+
const createResponse = payload => Effect.flatMap(resolveHttpClient, client => client.execute(HttpClientRequest.post("/responses", {
|
|
95
|
+
body: HttpBody.jsonUnsafe(payload)
|
|
96
|
+
})).pipe(Effect.flatMap(response => decodeResponse(response).pipe(Effect.map(body => [body, response]))), Effect.catchTags({
|
|
67
97
|
HttpClientError: error => Errors.mapHttpClientError(error, "createResponse"),
|
|
68
98
|
SchemaError: error => Effect.fail(Errors.mapSchemaError(error, "createResponse"))
|
|
69
|
-
}));
|
|
99
|
+
})));
|
|
70
100
|
const buildResponseStream = response => {
|
|
71
|
-
const stream = response.stream.pipe(Stream.decodeText(), Stream.pipeThroughChannel(Sse.decodeDataSchema(
|
|
101
|
+
const stream = response.stream.pipe(Stream.decodeText(), Stream.pipeThroughChannel(Sse.decodeDataSchema(OpenAiSchema.ResponseStreamEvent)), Stream.takeUntil(event => event.data.type === "response.completed" || event.data.type === "response.incomplete"), Stream.map(event => event.data), Stream.catchTags({
|
|
72
102
|
// TODO: handle SSE retries
|
|
73
103
|
Retry: error => Stream.die(error),
|
|
74
104
|
HttpClientError: error => Stream.fromEffect(Errors.mapHttpClientError(error, "createResponseStream")),
|
|
@@ -76,20 +106,25 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
76
106
|
}));
|
|
77
107
|
return [response, stream];
|
|
78
108
|
};
|
|
79
|
-
const createResponseStream = payload =>
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
109
|
+
const createResponseStream = payload => Effect.contextWith(services => {
|
|
110
|
+
const socket = Context.getOrUndefined(services, OpenAiSocket);
|
|
111
|
+
if (socket) return socket.createResponseStream(payload);
|
|
112
|
+
return Effect.flatMap(resolveHttpClient, client => client.execute(HttpClientRequest.post("/responses", {
|
|
113
|
+
body: HttpBody.jsonUnsafe({
|
|
114
|
+
...payload,
|
|
115
|
+
stream: true
|
|
116
|
+
})
|
|
117
|
+
})).pipe(Effect.map(buildResponseStream), Effect.catchTag("HttpClientError", error => Errors.mapHttpClientError(error, "createResponseStream"))));
|
|
118
|
+
});
|
|
119
|
+
const decodeEmbedding = HttpClientResponse.schemaBodyJson(OpenAiSchema.CreateEmbeddingResponse);
|
|
120
|
+
const createEmbedding = payload => Effect.flatMap(resolveHttpClient, client => client.execute(HttpClientRequest.post("/embeddings", {
|
|
121
|
+
body: HttpBody.jsonUnsafe(payload)
|
|
122
|
+
})).pipe(Effect.flatMap(decodeEmbedding), Effect.catchTags({
|
|
88
123
|
HttpClientError: error => Errors.mapHttpClientError(error, "createEmbedding"),
|
|
89
124
|
SchemaError: error => Effect.fail(Errors.mapSchemaError(error, "createEmbedding"))
|
|
90
|
-
}));
|
|
125
|
+
})));
|
|
91
126
|
return OpenAiClient.of({
|
|
92
|
-
client,
|
|
127
|
+
client: httpClient,
|
|
93
128
|
createResponse,
|
|
94
129
|
createResponseStream,
|
|
95
130
|
createEmbedding
|
|
@@ -101,16 +136,37 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
101
136
|
/**
|
|
102
137
|
* Creates a layer for the OpenAI client with the given options.
|
|
103
138
|
*
|
|
104
|
-
*
|
|
139
|
+
* **When to use**
|
|
140
|
+
*
|
|
141
|
+
* Use when you already have explicit `Options` values, such as an API key or
|
|
142
|
+
* custom API URL, and want to provide `OpenAiClient` as a `Layer`.
|
|
143
|
+
*
|
|
144
|
+
* @see {@link make} for constructing the client service effectfully
|
|
145
|
+
* @see {@link layerConfig} for loading client settings from `Config`
|
|
146
|
+
*
|
|
105
147
|
* @category layers
|
|
148
|
+
* @since 4.0.0
|
|
106
149
|
*/
|
|
107
150
|
export const layer = options => Layer.effect(OpenAiClient, make(options));
|
|
108
151
|
/**
|
|
109
|
-
* Creates a layer for the OpenAI client
|
|
110
|
-
*
|
|
152
|
+
* Creates a layer for the OpenAI client from provided `Config` values.
|
|
153
|
+
*
|
|
154
|
+
* **When to use**
|
|
155
|
+
*
|
|
156
|
+
* Use when you need client settings for OpenAI-compatible APIs to be read from
|
|
157
|
+
* Effect `Config` values while providing `OpenAiClient` as a `Layer`.
|
|
158
|
+
*
|
|
159
|
+
* **Details**
|
|
160
|
+
*
|
|
161
|
+
* Only config values supplied in `options` are loaded. Omitted fields are
|
|
162
|
+
* passed to `make` as `undefined`, and `transformClient` is forwarded as a
|
|
163
|
+
* plain option.
|
|
164
|
+
*
|
|
165
|
+
* @see {@link make} for constructing the client service effectfully
|
|
166
|
+
* @see {@link layer} for providing the client from already-resolved options
|
|
111
167
|
*
|
|
112
|
-
* @since 1.0.0
|
|
113
168
|
* @category layers
|
|
169
|
+
* @since 4.0.0
|
|
114
170
|
*/
|
|
115
171
|
export const layerConfig = options => Layer.effect(OpenAiClient, Effect.gen(function* () {
|
|
116
172
|
const apiKey = Predicate.isNotUndefined(options?.apiKey) ? yield* options.apiKey : undefined;
|
|
@@ -125,4 +181,223 @@ export const layerConfig = options => Layer.effect(OpenAiClient, Effect.gen(func
|
|
|
125
181
|
transformClient: options?.transformClient
|
|
126
182
|
});
|
|
127
183
|
}));
|
|
184
|
+
/**
|
|
185
|
+
* Service for creating OpenAI response streams over a WebSocket connection.
|
|
186
|
+
*
|
|
187
|
+
* **When to use**
|
|
188
|
+
*
|
|
189
|
+
* Use when you need direct access to the WebSocket-backed response streaming
|
|
190
|
+
* service rather than wrapping an effect with WebSocket mode.
|
|
191
|
+
*
|
|
192
|
+
* **Details**
|
|
193
|
+
*
|
|
194
|
+
* `createResponseStream` sends a `response.create` message over the WebSocket
|
|
195
|
+
* connection and returns an HTTP response together with a stream of
|
|
196
|
+
* `ResponseStreamEvent` values.
|
|
197
|
+
*
|
|
198
|
+
* **Gotchas**
|
|
199
|
+
*
|
|
200
|
+
* WebSocket response streams are serialized to one request at a time by the
|
|
201
|
+
* shared socket service.
|
|
202
|
+
*
|
|
203
|
+
* @see {@link withWebSocketMode} for enabling WebSocket mode for one effect
|
|
204
|
+
* @see {@link layerWebSocketMode} for providing WebSocket mode through a layer
|
|
205
|
+
*
|
|
206
|
+
* @category Websocket mode
|
|
207
|
+
* @since 4.0.0
|
|
208
|
+
*/
|
|
209
|
+
export class OpenAiSocket extends /*#__PURE__*/Context.Service()("@effect/ai-openai/OpenAiClient/OpenAiSocket") {}
|
|
210
|
+
const makeSocket = /*#__PURE__*/Effect.gen(function* () {
|
|
211
|
+
const client = yield* OpenAiClient;
|
|
212
|
+
const tracker = yield* ResponseIdTracker.make;
|
|
213
|
+
const socketScope = yield* Effect.scope;
|
|
214
|
+
const makeRequest = Effect.flatMap(OpenAiConfig.getOrUndefined, config => {
|
|
215
|
+
const httpClient = Predicate.isNotUndefined(config?.transformClient) ? config.transformClient(client.client) : client.client;
|
|
216
|
+
return Effect.orDie(httpClient.preprocess(HttpClientRequest.post("/responses")));
|
|
217
|
+
});
|
|
218
|
+
const makeWebSocket = yield* Socket.WebSocketConstructor;
|
|
219
|
+
const decoder = new TextDecoder();
|
|
220
|
+
const queueRef = yield* RcRef.make({
|
|
221
|
+
idleTimeToLive: 60_000,
|
|
222
|
+
acquire: Effect.gen(function* () {
|
|
223
|
+
const scope = yield* Effect.scope;
|
|
224
|
+
const request = yield* makeRequest;
|
|
225
|
+
const socket = yield* Socket.makeWebSocket(request.url.replace(/^http/, "ws")).pipe(Effect.provideService(Socket.WebSocketConstructor, url => makeWebSocket(url, {
|
|
226
|
+
headers: request.headers
|
|
227
|
+
})));
|
|
228
|
+
const write = yield* socket.writer;
|
|
229
|
+
yield* Scope.addFinalizerExit(scope, () => {
|
|
230
|
+
tracker.clearUnsafe();
|
|
231
|
+
return Effect.void;
|
|
232
|
+
});
|
|
233
|
+
const incoming = yield* Queue.unbounded();
|
|
234
|
+
const send = message => write(JSON.stringify({
|
|
235
|
+
type: "response.create",
|
|
236
|
+
...message
|
|
237
|
+
})).pipe(Effect.mapError(_error => AiError.make({
|
|
238
|
+
module: "OpenAiClient",
|
|
239
|
+
method: "createResponseStream",
|
|
240
|
+
reason: new AiError.NetworkError({
|
|
241
|
+
reason: "TransportError",
|
|
242
|
+
request: {
|
|
243
|
+
method: "POST",
|
|
244
|
+
url: request.url,
|
|
245
|
+
urlParams: [],
|
|
246
|
+
hash: undefined,
|
|
247
|
+
headers: request.headers
|
|
248
|
+
},
|
|
249
|
+
description: "Failed to send message over WebSocket"
|
|
250
|
+
})
|
|
251
|
+
})));
|
|
252
|
+
yield* socket.runRaw(msg => {
|
|
253
|
+
const text = typeof msg === "string" ? msg : decoder.decode(msg);
|
|
254
|
+
try {
|
|
255
|
+
const event = decodeEvent(text);
|
|
256
|
+
if (event.type === "error" && "status" in event) {
|
|
257
|
+
const status = Number(event.status);
|
|
258
|
+
const error = "error" in event ? event.error : event;
|
|
259
|
+
const json = JSON.stringify(error);
|
|
260
|
+
return Effect.fail(AiError.make({
|
|
261
|
+
module: "OpenAiClient",
|
|
262
|
+
method: "createResponseStream",
|
|
263
|
+
reason: AiError.reasonFromHttpStatus({
|
|
264
|
+
description: json,
|
|
265
|
+
status: isNaN(status) ? errorTypeToStatus[error.type] ?? 500 : status,
|
|
266
|
+
metadata: error,
|
|
267
|
+
http: {
|
|
268
|
+
body: json,
|
|
269
|
+
request: {
|
|
270
|
+
method: "POST",
|
|
271
|
+
url: request.url,
|
|
272
|
+
urlParams: [],
|
|
273
|
+
hash: undefined,
|
|
274
|
+
headers: request.headers
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
})
|
|
278
|
+
}));
|
|
279
|
+
}
|
|
280
|
+
Queue.offerUnsafe(incoming, event);
|
|
281
|
+
} catch {}
|
|
282
|
+
}).pipe(Effect.catchTag("SocketError", error => AiError.make({
|
|
283
|
+
module: "OpenAiClient",
|
|
284
|
+
method: "createResponseStream",
|
|
285
|
+
reason: new AiError.NetworkError({
|
|
286
|
+
reason: "TransportError",
|
|
287
|
+
request: {
|
|
288
|
+
method: "POST",
|
|
289
|
+
url: request.url,
|
|
290
|
+
urlParams: [],
|
|
291
|
+
hash: undefined,
|
|
292
|
+
headers: request.headers
|
|
293
|
+
},
|
|
294
|
+
description: error.message
|
|
295
|
+
})
|
|
296
|
+
})), Effect.catchCause(cause => Queue.failCause(incoming, cause)), Effect.ensuring(Effect.forkIn(RcRef.invalidate(queueRef), socketScope, {
|
|
297
|
+
startImmediately: true
|
|
298
|
+
})), Effect.forkScoped({
|
|
299
|
+
startImmediately: true
|
|
300
|
+
}));
|
|
301
|
+
return {
|
|
302
|
+
send,
|
|
303
|
+
incoming
|
|
304
|
+
};
|
|
305
|
+
})
|
|
306
|
+
});
|
|
307
|
+
// Prime the websocket
|
|
308
|
+
yield* Effect.scoped(RcRef.get(queueRef));
|
|
309
|
+
// Websocket mode only allows one request at a time
|
|
310
|
+
const semaphore = Semaphore.makeUnsafe(1);
|
|
311
|
+
const request = yield* makeRequest;
|
|
312
|
+
return OpenAiSocket.context({
|
|
313
|
+
createResponseStream(options) {
|
|
314
|
+
const stream = Stream.unwrap(Effect.gen(function* () {
|
|
315
|
+
const scope = yield* Effect.scope;
|
|
316
|
+
yield* Effect.acquireRelease(semaphore.take(1), () => semaphore.release(1), {
|
|
317
|
+
interruptible: true
|
|
318
|
+
});
|
|
319
|
+
const {
|
|
320
|
+
send,
|
|
321
|
+
incoming
|
|
322
|
+
} = yield* RcRef.get(queueRef);
|
|
323
|
+
let done = false;
|
|
324
|
+
yield* Scope.addFinalizerExit(scope, () => done ? Effect.void : RcRef.invalidate(queueRef));
|
|
325
|
+
yield* send(options).pipe(Effect.forkScoped({
|
|
326
|
+
startImmediately: true
|
|
327
|
+
}));
|
|
328
|
+
return Stream.fromQueue(incoming).pipe(Stream.takeUntil(e => {
|
|
329
|
+
done = e.type === "response.completed" || e.type === "response.incomplete";
|
|
330
|
+
return done;
|
|
331
|
+
}));
|
|
332
|
+
}));
|
|
333
|
+
return Effect.succeed([HttpClientResponse.fromWeb(request, new Response()), stream]);
|
|
334
|
+
}
|
|
335
|
+
}).pipe(Context.add(ResponseIdTracker.ResponseIdTracker, tracker));
|
|
336
|
+
});
|
|
337
|
+
const ErrorEvent = /*#__PURE__*/Schema.Struct({
|
|
338
|
+
type: /*#__PURE__*/Schema.Literal("error"),
|
|
339
|
+
status: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.withDecodingDefault(/*#__PURE__*/Effect.succeed(500))),
|
|
340
|
+
error: /*#__PURE__*/Schema.Struct({
|
|
341
|
+
type: Schema.String,
|
|
342
|
+
message: Schema.String
|
|
343
|
+
})
|
|
344
|
+
});
|
|
345
|
+
const errorTypeToStatus = {
|
|
346
|
+
invalid_request_error: 400,
|
|
347
|
+
invalid_api_key_error: 401,
|
|
348
|
+
insufficient_quota_error: 429,
|
|
349
|
+
rate_limit_error: 429,
|
|
350
|
+
service_unavailable_error: 503
|
|
351
|
+
};
|
|
352
|
+
const AllEvents = /*#__PURE__*/Schema.Union([ErrorEvent, OpenAiSchema.ResponseStreamEvent]);
|
|
353
|
+
const decodeEvent = /*#__PURE__*/Schema.decodeUnknownSync(/*#__PURE__*/Schema.fromJsonString(AllEvents));
|
|
354
|
+
/**
|
|
355
|
+
* Uses OpenAI's WebSocket mode for response streams within the provided effect.
|
|
356
|
+
*
|
|
357
|
+
* **When to use**
|
|
358
|
+
*
|
|
359
|
+
* Use to enable WebSocket mode around one effect that creates OpenAI response
|
|
360
|
+
* streams.
|
|
361
|
+
*
|
|
362
|
+
* **Gotchas**
|
|
363
|
+
*
|
|
364
|
+
* This only works with the following WebSocket constructor layers:
|
|
365
|
+
*
|
|
366
|
+
* - `NodeSocket.layerWebSocketConstructorWS`
|
|
367
|
+
* - `BunSocket.layerWebSocketConstructor`
|
|
368
|
+
*
|
|
369
|
+
* These constructor layers support the non-standard options needed to set the
|
|
370
|
+
* Authorization header.
|
|
371
|
+
*
|
|
372
|
+
* @see {@link layerWebSocketMode} for providing WebSocket mode through a layer
|
|
373
|
+
* @see {@link OpenAiSocket} for direct access to the WebSocket-backed streaming service
|
|
374
|
+
*
|
|
375
|
+
* @category Websocket mode
|
|
376
|
+
* @since 4.0.0
|
|
377
|
+
*/
|
|
378
|
+
export const withWebSocketMode = effect => Effect.scopedWith(scope => Effect.flatMap(Scope.provide(makeSocket, scope), services => Effect.provideContext(effect, services)));
|
|
379
|
+
/**
|
|
380
|
+
* Uses OpenAI's websocket mode for all responses that use the Layer.
|
|
381
|
+
*
|
|
382
|
+
* **When to use**
|
|
383
|
+
*
|
|
384
|
+
* Use to provide WebSocket mode through layer composition for effects that use
|
|
385
|
+
* OpenAI response streaming.
|
|
386
|
+
*
|
|
387
|
+
* **Gotchas**
|
|
388
|
+
*
|
|
389
|
+
* This only works with the following WebSocket constructor layers:
|
|
390
|
+
*
|
|
391
|
+
* - `NodeSocket.layerWebSocketConstructorWS`
|
|
392
|
+
* - `BunSocket.layerWebSocketConstructor`
|
|
393
|
+
*
|
|
394
|
+
* These constructor layers support the non-standard options needed to set the
|
|
395
|
+
* Authorization header.
|
|
396
|
+
*
|
|
397
|
+
* @see {@link withWebSocketMode} for enabling WebSocket mode around a single effect
|
|
398
|
+
*
|
|
399
|
+
* @category Websocket mode
|
|
400
|
+
* @since 4.0.0
|
|
401
|
+
*/
|
|
402
|
+
export const layerWebSocketMode = /*#__PURE__*/Layer.effectContext(makeSocket);
|
|
128
403
|
//# sourceMappingURL=OpenAiClient.js.map
|
package/dist/OpenAiClient.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAiClient.js","names":["Array","Effect","identity","Layer","Predicate","Redacted","ServiceMap","Stream","Sse","Headers","HttpBody","HttpClient","HttpClientRequest","Generated","Errors","OpenAiConfig","OpenAiClient","Service","RedactedOpenAiHeaders","OpenAiOrganization","OpenAiProject","make","fnUntraced","options","baseClient","httpClient","pipe","mapRequest","request","prependUrl","apiUrl","isNotUndefined","apiKey","bearerToken","value","organizationId","setHeader","projectId","acceptJson","transformClient","httpClientOk","filterStatusOk","client","config","getOrUndefined","createResponse","payload","includeResponse","catchTags","HttpClientError","error","mapHttpClientError","SchemaError","fail","mapSchemaError","buildResponseStream","response","stream","decodeText","pipeThroughChannel","decodeDataSchema","ResponseStreamEvent","takeUntil","event","data","type","map","Retry","die","fromEffect","createResponseStream","execute","post","body","jsonUnsafe","catchTag","createEmbedding","of","updateService","CurrentRedactedNames","appendAll","Object","values","layer","effect","layerConfig","gen","undefined"],"sources":["../src/OpenAiClient.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;AAQA,OAAO,KAAKA,KAAK,MAAM,cAAc;AAErC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,SAASC,QAAQ,QAAQ,iBAAiB;AAC1C,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,SAAS,MAAM,kBAAkB;AAC7C,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,UAAU,MAAM,mBAAmB;AAC/C,OAAO,KAAKC,MAAM,MAAM,eAAe;AAEvC,OAAO,KAAKC,GAAG,MAAM,8BAA8B;AACnD,OAAO,KAAKC,OAAO,MAAM,8BAA8B;AACvD,OAAO,KAAKC,QAAQ,MAAM,+BAA+B;AACzD,OAAO,KAAKC,UAAU,MAAM,iCAAiC;AAC7D,OAAO,KAAKC,iBAAiB,MAAM,wCAAwC;AAE3E,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAC3C,OAAO,KAAKC,MAAM,MAAM,sBAAsB;AAC9C,SAASC,YAAY,QAAQ,mBAAmB;AAiDhD;AACA;AACA;AAEA;;;;;;AAMA,OAAM,MAAOC,YAAa,sBAAQV,UAAU,CAACW,OAAO,EAAyB,CAC3E,gCAAgC,CACjC;AAyCD;AACA;AACA;AAEA,MAAMC,qBAAqB,GAAG;EAC5BC,kBAAkB,EAAE,qBAAqB;EACzCC,aAAa,EAAE;CAChB;AAED;;;;;;AAMA,OAAO,MAAMC,IAAI,gBAAGpB,MAAM,CAACqB,UAAU,CACnC,WAAUC,OAAgB;EACxB,MAAMC,UAAU,GAAG,OAAOb,UAAU,CAACA,UAAU;EAE/C,MAAMc,UAAU,GAAGD,UAAU,CAACE,IAAI,CAChCf,UAAU,CAACgB,UAAU,CAAEC,OAAO,IAC5BA,OAAO,CAACF,IAAI,CACVd,iBAAiB,CAACiB,UAAU,CAACN,OAAO,CAACO,MAAM,IAAI,2BAA2B,CAAC,EAC3E1B,SAAS,CAAC2B,cAAc,CAACR,OAAO,CAACS,MAAM,CAAC,GACpCpB,iBAAiB,CAACqB,WAAW,CAAC5B,QAAQ,CAAC6B,KAAK,CAACX,OAAO,CAACS,MAAM,CAAC,CAAC,GAC7D9B,QAAQ,EACZE,SAAS,CAAC2B,cAAc,CAACR,OAAO,CAACY,cAAc,CAAC,GAC5CvB,iBAAiB,CAACwB,SAAS,CAC3BlB,qBAAqB,CAACC,kBAAkB,EACxCd,QAAQ,CAAC6B,KAAK,CAACX,OAAO,CAACY,cAAc,CAAC,CACvC,GACCjC,QAAQ,EACZE,SAAS,CAAC2B,cAAc,CAACR,OAAO,CAACc,SAAS,CAAC,GACvCzB,iBAAiB,CAACwB,SAAS,CAC3BlB,qBAAqB,CAACE,aAAa,EACnCf,QAAQ,CAAC6B,KAAK,CAACX,OAAO,CAACc,SAAS,CAAC,CAClC,GACCnC,QAAQ,EACZU,iBAAiB,CAAC0B,UAAU,CAC7B,CACF,EACDlC,SAAS,CAAC2B,cAAc,CAACR,OAAO,CAACgB,eAAe,CAAC,GAC7ChB,OAAO,CAACgB,eAAe,GACvBrC,QAAQ,CACb;EAED,MAAMsC,YAAY,GAAG7B,UAAU,CAAC8B,cAAc,CAAChB,UAAU,CAAC;EAE1D,MAAMiB,MAAM,GAAG7B,SAAS,CAACQ,IAAI,CAACI,UAAU,EAAE;IACxCc,eAAe,EAAEtC,MAAM,CAACqB,UAAU,CAAC,WAAUoB,MAAM;MACjD,MAAMC,MAAM,GAAG,OAAO5B,YAAY,CAAC6B,cAAc;MACjD,IAAIxC,SAAS,CAAC2B,cAAc,CAACY,MAAM,EAAEJ,eAAe,CAAC,EAAE;QACrD,OAAOI,MAAM,CAACJ,eAAe,CAACG,MAAM,CAAC;MACvC;MACA,OAAOA,MAAM;IACf,CAAC;GACF,CAAC;EAEF,MAAMG,cAAc,GAClBC,OAAgD,IAKhDJ,MAAM,CAACG,cAAc,CAAC;IAAEC,OAAO;IAAEH,MAAM,EAAE;MAAEI,eAAe,EAAE;IAAI;EAAE,CAAE,CAAC,CAACrB,IAAI,CACxEzB,MAAM,CAAC+C,SAAS,CAAC;IACfC,eAAe,EAAGC,KAAK,IAAKpC,MAAM,CAACqC,kBAAkB,CAACD,KAAK,EAAE,gBAAgB,CAAC;IAC9EE,WAAW,EAAGF,KAAK,IAAKjD,MAAM,CAACoD,IAAI,CAACvC,MAAM,CAACwC,cAAc,CAACJ,KAAK,EAAE,gBAAgB,CAAC;GACnF,CAAC,CACH;EAEH,MAAMK,mBAAmB,GACvBC,QAA+C,IAI7C;IACF,MAAMC,MAAM,GAAGD,QAAQ,CAACC,MAAM,CAAC/B,IAAI,CACjCnB,MAAM,CAACmD,UAAU,EAAE,EACnBnD,MAAM,CAACoD,kBAAkB,CAACnD,GAAG,CAACoD,gBAAgB,CAAC/C,SAAS,CAACgD,mBAAmB,CAAC,CAAC,EAC9EtD,MAAM,CAACuD,SAAS,CAAEC,KAAK,IACrBA,KAAK,CAACC,IAAI,CAACC,IAAI,KAAK,oBAAoB,IACxCF,KAAK,CAACC,IAAI,CAACC,IAAI,KAAK,qBAAqB,CAC1C,EACD1D,MAAM,CAAC2D,GAAG,CAAEH,KAAK,IAAKA,KAAK,CAACC,IAAI,CAAC,EACjCzD,MAAM,CAACyC,SAAS,CAAC;MACf;MACAmB,KAAK,EAAGjB,KAAK,IAAK3C,MAAM,CAAC6D,GAAG,CAAClB,KAAK,CAAC;MACnCD,eAAe,EAAGC,KAAK,IAAK3C,MAAM,CAAC8D,UAAU,CAACvD,MAAM,CAACqC,kBAAkB,CAACD,KAAK,EAAE,sBAAsB,CAAC,CAAC;MACvGE,WAAW,EAAGF,KAAK,IAAK3C,MAAM,CAAC8C,IAAI,CAACvC,MAAM,CAACwC,cAAc,CAACJ,KAAK,EAAE,sBAAsB,CAAC;KACzF,CAAC,CACI;IACR,OAAO,CAACM,QAAQ,EAAEC,MAAM,CAAC;EAC3B,CAAC;EAED,MAAMa,oBAAoB,GAAqCxB,OAAO,IACpEN,YAAY,CAAC+B,OAAO,CAClB3D,iBAAiB,CAAC4D,IAAI,CAAC,YAAY,EAAE;IACnCC,IAAI,EAAE/D,QAAQ,CAACgE,UAAU,CAAC;MAAE,GAAG5B,OAAO;MAAEW,MAAM,EAAE;IAAI,CAAE;GACvD,CAAC,CACH,CAAC/B,IAAI,CACJzB,MAAM,CAACiE,GAAG,CAACX,mBAAmB,CAAC,EAC/BtD,MAAM,CAAC0E,QAAQ,CACb,iBAAiB,EAChBzB,KAAK,IAAKpC,MAAM,CAACqC,kBAAkB,CAACD,KAAK,EAAE,sBAAsB,CAAC,CACpE,CACF;EAEH,MAAM0B,eAAe,GACnB9B,OAAwD,IAExDJ,MAAM,CAACkC,eAAe,CAAC;IAAE9B;EAAO,CAAE,CAAC,CAACpB,IAAI,CACtCzB,MAAM,CAAC+C,SAAS,CAAC;IACfC,eAAe,EAAGC,KAAK,IAAKpC,MAAM,CAACqC,kBAAkB,CAACD,KAAK,EAAE,iBAAiB,CAAC;IAC/EE,WAAW,EAAGF,KAAK,IAAKjD,MAAM,CAACoD,IAAI,CAACvC,MAAM,CAACwC,cAAc,CAACJ,KAAK,EAAE,iBAAiB,CAAC;GACpF,CAAC,CACH;EAEH,OAAOlC,YAAY,CAAC6D,EAAE,CAAC;IACrBnC,MAAM;IACNG,cAAc;IACdyB,oBAAoB;IACpBM;GACD,CAAC;AACJ,CAAC,eACD3E,MAAM,CAAC6E,aAAa,CAClBrE,OAAO,CAACsE,oBAAoB,eAC5B/E,KAAK,CAACgF,SAAS,cAACC,MAAM,CAACC,MAAM,CAAChE,qBAAqB,CAAC,CAAC,CACtD,CACF;AAED;AACA;AACA;AAEA;;;;;;AAMA,OAAO,MAAMiE,KAAK,GAAI5D,OAAgB,IACpCpB,KAAK,CAACiF,MAAM,CAACpE,YAAY,EAAEK,IAAI,CAACE,OAAO,CAAC,CAAC;AAE3C;;;;;;;AAOA,OAAO,MAAM8D,WAAW,GAAI9D,OAyB3B,IACCpB,KAAK,CAACiF,MAAM,CACVpE,YAAY,EACZf,MAAM,CAACqF,GAAG,CAAC,aAAS;EAClB,MAAMtD,MAAM,GAAG5B,SAAS,CAAC2B,cAAc,CAACR,OAAO,EAAES,MAAM,CAAC,GACpD,OAAOT,OAAO,CAACS,MAAM,GACvBuD,SAAS;EACX,MAAMzD,MAAM,GAAG1B,SAAS,CAAC2B,cAAc,CAACR,OAAO,EAAEO,MAAM,CAAC,GACpD,OAAOP,OAAO,CAACO,MAAM,GACvByD,SAAS;EACX,MAAMpD,cAAc,GAAG/B,SAAS,CAAC2B,cAAc,CAACR,OAAO,EAAEY,cAAc,CAAC,GACpE,OAAOZ,OAAO,CAACY,cAAc,GAC7BoD,SAAS;EACb,MAAMlD,SAAS,GAAGjC,SAAS,CAAC2B,cAAc,CAACR,OAAO,EAAEc,SAAS,CAAC,GAC1D,OAAOd,OAAO,CAACc,SAAS,GAC1BkD,SAAS;EACX,OAAO,OAAOlE,IAAI,CAAC;IACjBW,MAAM;IACNF,MAAM;IACNK,cAAc;IACdE,SAAS;IACTE,eAAe,EAAEhB,OAAO,EAAEgB;GAC3B,CAAC;AACJ,CAAC,CAAC,CACH","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"OpenAiClient.js","names":["Array","Context","Effect","identity","Function","Layer","Predicate","Queue","RcRef","Redacted","Schema","Scope","Semaphore","Stream","AiError","ResponseIdTracker","Sse","Headers","HttpBody","HttpClient","HttpClientRequest","HttpClientResponse","Socket","Errors","OpenAiConfig","OpenAiSchema","OpenAiClient","Service","RedactedOpenAiHeaders","OpenAiOrganization","OpenAiProject","make","fnUntraced","options","baseClient","apiUrl","httpClient","pipe","mapRequest","flow","prependUrl","apiKey","bearerToken","value","organizationId","setHeader","projectId","acceptJson","filterStatusOk","transformClient","resolveHttpClient","map","getOrUndefined","config","isNotUndefined","decodeResponse","schemaBodyJson","Response","createResponse","payload","flatMap","client","execute","post","body","jsonUnsafe","response","catchTags","HttpClientError","error","mapHttpClientError","SchemaError","fail","mapSchemaError","buildResponseStream","stream","decodeText","pipeThroughChannel","decodeDataSchema","ResponseStreamEvent","takeUntil","event","data","type","Retry","die","fromEffect","createResponseStream","contextWith","services","socket","OpenAiSocket","catchTag","decodeEmbedding","CreateEmbeddingResponse","createEmbedding","of","updateService","CurrentRedactedNames","appendAll","Object","values","layer","effect","layerConfig","gen","undefined","makeSocket","tracker","socketScope","scope","makeRequest","orDie","preprocess","makeWebSocket","WebSocketConstructor","decoder","TextDecoder","queueRef","idleTimeToLive","acquire","request","url","replace","provideService","headers","write","writer","addFinalizerExit","clearUnsafe","void","incoming","unbounded","send","message","JSON","stringify","mapError","_error","module","method","reason","NetworkError","urlParams","hash","description","runRaw","msg","text","decode","decodeEvent","status","Number","json","reasonFromHttpStatus","isNaN","errorTypeToStatus","metadata","http","offerUnsafe","catchCause","cause","failCause","ensuring","forkIn","invalidate","startImmediately","forkScoped","scoped","get","semaphore","makeUnsafe","context","unwrap","acquireRelease","take","release","interruptible","done","fromQueue","e","succeed","fromWeb","add","ErrorEvent","Struct","Literal","withDecodingDefault","String","invalid_request_error","invalid_api_key_error","insufficient_quota_error","rate_limit_error","service_unavailable_error","AllEvents","Union","decodeUnknownSync","fromJsonString","withWebSocketMode","scopedWith","provide","provideContext","layerWebSocketMode","effectContext"],"sources":["../src/OpenAiClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import type * as Config from "effect/Config";
|
|
2
|
+
import * as Context from "effect/Context";
|
|
3
|
+
import * as Effect from "effect/Effect";
|
|
4
|
+
import * as Layer from "effect/Layer";
|
|
5
|
+
import * as Redacted from "effect/Redacted";
|
|
6
|
+
import * as HttpClient from "effect/unstable/http/HttpClient";
|
|
7
|
+
import * as Generated from "./Generated.ts";
|
|
8
|
+
declare const OpenAiClientGenerated_base: Context.ServiceClass<OpenAiClientGenerated, "@effect/ai-openai/OpenAiClientGenerated", Generated.OpenAiClient>;
|
|
9
|
+
/**
|
|
10
|
+
* Service identifier for the generated OpenAI client.
|
|
11
|
+
*
|
|
12
|
+
* @since 4.0.0
|
|
13
|
+
* @category service
|
|
14
|
+
*/
|
|
15
|
+
export declare class OpenAiClientGenerated extends OpenAiClientGenerated_base {
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Options for configuring the generated OpenAI client.
|
|
19
|
+
*
|
|
20
|
+
* @since 4.0.0
|
|
21
|
+
* @category options
|
|
22
|
+
*/
|
|
23
|
+
export type Options = {
|
|
24
|
+
/**
|
|
25
|
+
* The OpenAI API key.
|
|
26
|
+
*/
|
|
27
|
+
readonly apiKey?: Redacted.Redacted<string> | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* The base URL for the OpenAI API.
|
|
30
|
+
*
|
|
31
|
+
* @default "https://api.openai.com/v1"
|
|
32
|
+
*/
|
|
33
|
+
readonly apiUrl?: string | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Optional organization ID for multi-org accounts.
|
|
36
|
+
*/
|
|
37
|
+
readonly organizationId?: Redacted.Redacted<string> | undefined;
|
|
38
|
+
/**
|
|
39
|
+
* Optional project ID for project-scoped requests.
|
|
40
|
+
*/
|
|
41
|
+
readonly projectId?: Redacted.Redacted<string> | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* Optional transformer for the HTTP client.
|
|
44
|
+
*/
|
|
45
|
+
readonly transformClient?: ((client: HttpClient.HttpClient) => HttpClient.HttpClient) | undefined;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Creates a generated OpenAI client service with the given options.
|
|
49
|
+
*
|
|
50
|
+
* @since 4.0.0
|
|
51
|
+
* @category constructors
|
|
52
|
+
*/
|
|
53
|
+
export declare const make: (options: Options) => Effect.Effect<Generated.OpenAiClient, never, HttpClient.HttpClient>;
|
|
54
|
+
/**
|
|
55
|
+
* Creates a layer for the generated OpenAI client with the given options.
|
|
56
|
+
*
|
|
57
|
+
* @since 4.0.0
|
|
58
|
+
* @category layers
|
|
59
|
+
*/
|
|
60
|
+
export declare const layer: (options: Options) => Layer.Layer<OpenAiClientGenerated, never, HttpClient.HttpClient>;
|
|
61
|
+
/**
|
|
62
|
+
* Creates a layer for the generated OpenAI client, loading the requisite
|
|
63
|
+
* configuration via Effect's `Config` module.
|
|
64
|
+
*
|
|
65
|
+
* @since 4.0.0
|
|
66
|
+
* @category layers
|
|
67
|
+
*/
|
|
68
|
+
export declare const layerConfig: (options?: {
|
|
69
|
+
/**
|
|
70
|
+
* The config value to load for the API key.
|
|
71
|
+
*/
|
|
72
|
+
readonly apiKey?: Config.Config<Redacted.Redacted<string> | undefined> | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* The config value to load for the API URL.
|
|
75
|
+
*/
|
|
76
|
+
readonly apiUrl?: Config.Config<string> | undefined;
|
|
77
|
+
/**
|
|
78
|
+
* The config value to load for the organization ID.
|
|
79
|
+
*/
|
|
80
|
+
readonly organizationId?: Config.Config<Redacted.Redacted<string> | undefined> | undefined;
|
|
81
|
+
/**
|
|
82
|
+
* The config value to load for the project ID.
|
|
83
|
+
*/
|
|
84
|
+
readonly projectId?: Config.Config<Redacted.Redacted<string> | undefined> | undefined;
|
|
85
|
+
/**
|
|
86
|
+
* Optional transformer for the HTTP client.
|
|
87
|
+
*/
|
|
88
|
+
readonly transformClient?: ((client: HttpClient.HttpClient) => HttpClient.HttpClient) | undefined;
|
|
89
|
+
}) => Layer.Layer<OpenAiClientGenerated, Config.ConfigError, HttpClient.HttpClient>;
|
|
90
|
+
export {};
|
|
91
|
+
//# sourceMappingURL=OpenAiClientGenerated.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenAiClientGenerated.d.ts","sourceRoot":"","sources":["../src/OpenAiClientGenerated.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAE3C,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAA;AAE7D,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;;AAO3C;;;;;GAKG;AACH,qBAAa,qBAAsB,SAAQ,0BAE1C;CAAG;AAMJ;;;;;GAKG;AACH,MAAM,MAAM,OAAO,GAAG;IACpB;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;IAEvD;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAEpC;;OAEG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;IAE/D;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;IAE1D;;OAEG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,KAAK,UAAU,CAAC,UAAU,CAAC,GAAG,SAAS,CAAA;CAClG,CAAA;AAWD;;;;;GAKG;AACH,eAAO,MAAM,IAAI,2FA4ChB,CAAA;AAMD;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAAI,SAAS,OAAO,KAAG,KAAK,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,CACpD,CAAA;AAEpD;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GAAI,UAAU;IACpC;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,SAAS,CAAA;IAElF;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;IAEnD;;OAEG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,SAAS,CAAA;IAE1F;;OAEG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,GAAG,SAAS,CAAA;IAErF;;OAEG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,KAAK,UAAU,CAAC,UAAU,CAAC,GAAG,SAAS,CAAA;CAClG,KAAG,KAAK,CAAC,KAAK,CAAC,qBAAqB,EAAE,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,UAAU,CAwB7E,CAAA"}
|