@effect/ai-openai 4.0.0-beta.7 → 4.0.0-beta.70
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 +66734 -37723
- 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 +81 -25
- package/dist/OpenAiClient.d.ts.map +1 -1
- package/dist/OpenAiClient.js +220 -39
- 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 +45 -10
- package/dist/OpenAiConfig.d.ts.map +1 -1
- package/dist/OpenAiConfig.js +31 -7
- package/dist/OpenAiConfig.js.map +1 -1
- package/dist/OpenAiEmbeddingModel.d.ts +89 -0
- package/dist/OpenAiEmbeddingModel.d.ts.map +1 -0
- package/dist/OpenAiEmbeddingModel.js +121 -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 +250 -57
- package/dist/OpenAiLanguageModel.d.ts.map +1 -1
- package/dist/OpenAiLanguageModel.js +311 -160
- package/dist/OpenAiLanguageModel.js.map +1 -1
- package/dist/OpenAiSchema.d.ts +2029 -0
- package/dist/OpenAiSchema.d.ts.map +1 -0
- package/dist/OpenAiSchema.js +591 -0
- package/dist/OpenAiSchema.js.map +1 -0
- package/dist/OpenAiTelemetry.d.ts +31 -18
- package/dist/OpenAiTelemetry.d.ts.map +1 -1
- package/dist/OpenAiTelemetry.js +6 -4
- package/dist/OpenAiTelemetry.js.map +1 -1
- package/dist/OpenAiTool.d.ts +56 -67
- package/dist/OpenAiTool.d.ts.map +1 -1
- package/dist/OpenAiTool.js +33 -44
- package/dist/OpenAiTool.js.map +1 -1
- package/dist/index.d.ts +42 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +42 -8
- 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 +9858 -5044
- package/src/OpenAiClient.ts +396 -90
- package/src/OpenAiClientGenerated.ts +202 -0
- package/src/OpenAiConfig.ts +46 -11
- package/src/OpenAiEmbeddingModel.ts +207 -0
- package/src/OpenAiError.ts +170 -35
- package/src/OpenAiLanguageModel.ts +633 -157
- package/src/OpenAiSchema.ts +984 -0
- package/src/OpenAiTelemetry.ts +32 -19
- package/src/OpenAiTool.ts +34 -45
- package/src/index.ts +45 -8
- package/src/internal/errors.ts +6 -4
package/dist/OpenAiClient.d.ts
CHANGED
|
@@ -1,57 +1,60 @@
|
|
|
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
|
|
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
|
|
10
|
-
import * as
|
|
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
|
-
*
|
|
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
|
|
25
|
+
* The transformed HTTP client used by this service.
|
|
20
26
|
*/
|
|
21
|
-
readonly client:
|
|
27
|
+
readonly client: HttpClient.HttpClient;
|
|
22
28
|
/**
|
|
23
29
|
* Create a response using the OpenAI responses endpoint.
|
|
24
30
|
*/
|
|
25
|
-
readonly createResponse: (options: typeof
|
|
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
|
|
35
|
+
readonly createResponseStream: (options: Omit<typeof OpenAiSchema.CreateResponse.Encoded, "stream">) => Effect.Effect<readonly [
|
|
33
36
|
response: HttpClientResponse.HttpClientResponse,
|
|
34
|
-
stream: Stream.Stream<typeof
|
|
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
|
|
42
|
+
readonly createEmbedding: (options: typeof OpenAiSchema.CreateEmbeddingRequest.Encoded) => Effect.Effect<typeof OpenAiSchema.CreateEmbeddingResponse.Type, AiError.AiError>;
|
|
40
43
|
}
|
|
41
|
-
declare const OpenAiClient_base:
|
|
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
|
-
* @
|
|
46
|
-
* @
|
|
48
|
+
* @category services
|
|
49
|
+
* @since 4.0.0
|
|
47
50
|
*/
|
|
48
51
|
export declare class OpenAiClient extends OpenAiClient_base {
|
|
49
52
|
}
|
|
50
53
|
/**
|
|
51
54
|
* Options for configuring the OpenAI client.
|
|
52
55
|
*
|
|
53
|
-
* @since 1.0.0
|
|
54
56
|
* @category models
|
|
57
|
+
* @since 4.0.0
|
|
55
58
|
*/
|
|
56
59
|
export type Options = {
|
|
57
60
|
/**
|
|
@@ -80,29 +83,29 @@ export type Options = {
|
|
|
80
83
|
/**
|
|
81
84
|
* Creates an OpenAI client service with the given options.
|
|
82
85
|
*
|
|
83
|
-
* @since 1.0.0
|
|
84
86
|
* @category constructors
|
|
87
|
+
* @since 4.0.0
|
|
85
88
|
*/
|
|
86
89
|
export declare const make: (options: Options) => Effect.Effect<Service, never, HttpClient.HttpClient>;
|
|
87
90
|
/**
|
|
88
91
|
* Creates a layer for the OpenAI client with the given options.
|
|
89
92
|
*
|
|
90
|
-
* @since 1.0.0
|
|
91
93
|
* @category layers
|
|
94
|
+
* @since 4.0.0
|
|
92
95
|
*/
|
|
93
96
|
export declare const layer: (options: Options) => Layer.Layer<OpenAiClient, never, HttpClient.HttpClient>;
|
|
94
97
|
/**
|
|
95
98
|
* Creates a layer for the OpenAI client, loading the requisite configuration
|
|
96
99
|
* via Effect's `Config` module.
|
|
97
100
|
*
|
|
98
|
-
* @since 1.0.0
|
|
99
101
|
* @category layers
|
|
102
|
+
* @since 4.0.0
|
|
100
103
|
*/
|
|
101
104
|
export declare const layerConfig: (options?: {
|
|
102
105
|
/**
|
|
103
106
|
* The config value to load for the API key.
|
|
104
107
|
*/
|
|
105
|
-
readonly apiKey?: Config.Config<Redacted.Redacted<string
|
|
108
|
+
readonly apiKey?: Config.Config<Redacted.Redacted<string> | undefined> | undefined;
|
|
106
109
|
/**
|
|
107
110
|
* The config value to load for the API URL.
|
|
108
111
|
*/
|
|
@@ -110,15 +113,68 @@ export declare const layerConfig: (options?: {
|
|
|
110
113
|
/**
|
|
111
114
|
* The config value to load for the organization ID.
|
|
112
115
|
*/
|
|
113
|
-
readonly organizationId?: Config.Config<Redacted.Redacted<string
|
|
116
|
+
readonly organizationId?: Config.Config<Redacted.Redacted<string> | undefined> | undefined;
|
|
114
117
|
/**
|
|
115
118
|
* The config value to load for the project ID.
|
|
116
119
|
*/
|
|
117
|
-
readonly projectId?: Config.Config<Redacted.Redacted<string
|
|
120
|
+
readonly projectId?: Config.Config<Redacted.Redacted<string> | undefined> | undefined;
|
|
118
121
|
/**
|
|
119
122
|
* Optional transformer for the HTTP client.
|
|
120
123
|
*/
|
|
121
124
|
readonly transformClient?: ((client: HttpClient.HttpClient) => HttpClient.HttpClient) | undefined;
|
|
122
125
|
}) => Layer.Layer<OpenAiClient, Config.ConfigError, HttpClient.HttpClient>;
|
|
126
|
+
/**
|
|
127
|
+
* Response stream event emitted by the OpenAI Responses API.
|
|
128
|
+
*
|
|
129
|
+
* @category Events
|
|
130
|
+
* @since 4.0.0
|
|
131
|
+
*/
|
|
132
|
+
export type ResponseStreamEvent = typeof OpenAiSchema.ResponseStreamEvent.Type;
|
|
133
|
+
declare const OpenAiSocket_base: Context.ServiceClass<OpenAiSocket, "@effect/ai-openai/OpenAiClient/OpenAiSocket", {
|
|
134
|
+
/**
|
|
135
|
+
* Create a streaming response using the OpenAI responses endpoint.
|
|
136
|
+
*/
|
|
137
|
+
readonly createResponseStream: (options: Omit<typeof OpenAiSchema.CreateResponse.Encoded, "stream">) => Effect.Effect<readonly [response: HttpClientResponse.HttpClientResponse, stream: Stream.Stream<ResponseStreamEvent, AiError.AiError>], AiError.AiError>;
|
|
138
|
+
}>;
|
|
139
|
+
/**
|
|
140
|
+
* Service for creating OpenAI response streams over a WebSocket connection.
|
|
141
|
+
*
|
|
142
|
+
* @category Websocket mode
|
|
143
|
+
* @since 4.0.0
|
|
144
|
+
*/
|
|
145
|
+
export declare class OpenAiSocket extends OpenAiSocket_base {
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Uses OpenAI's websocket mode for all responses within the provided effect.
|
|
149
|
+
*
|
|
150
|
+
* **Gotchas**
|
|
151
|
+
*
|
|
152
|
+
* This only works with the following WebSocket constructor layers:
|
|
153
|
+
*
|
|
154
|
+
* - `NodeSocket.layerWebSocketConstructorWS`
|
|
155
|
+
* - `BunSocket.layerWebSocketConstructor`
|
|
156
|
+
*
|
|
157
|
+
* This is because it needs to use non-standard options for setting the Authorization header.
|
|
158
|
+
*
|
|
159
|
+
* @category Websocket mode
|
|
160
|
+
* @since 4.0.0
|
|
161
|
+
*/
|
|
162
|
+
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>;
|
|
163
|
+
/**
|
|
164
|
+
* Uses OpenAI's websocket mode for all responses that use the Layer.
|
|
165
|
+
*
|
|
166
|
+
* **Gotchas**
|
|
167
|
+
*
|
|
168
|
+
* This only works with the following WebSocket constructor layers:
|
|
169
|
+
*
|
|
170
|
+
* - `NodeSocket.layerWebSocketConstructorWS`
|
|
171
|
+
* - `BunSocket.layerWebSocketConstructor`
|
|
172
|
+
*
|
|
173
|
+
* This is because it needs to use non-standard options for setting the Authorization header.
|
|
174
|
+
*
|
|
175
|
+
* @category Websocket mode
|
|
176
|
+
* @since 4.0.0
|
|
177
|
+
*/
|
|
178
|
+
export declare const layerWebSocketMode: Layer.Layer<OpenAiSocket | ResponseIdTracker.ResponseIdTracker, never, OpenAiClient | Socket.WebSocketConstructor>;
|
|
123
179
|
export {};
|
|
124
180
|
//# sourceMappingURL=OpenAiClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAiClient.d.ts","sourceRoot":"","sources":["../src/OpenAiClient.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"OpenAiClient.d.ts","sourceRoot":"","sources":["../src/OpenAiClient.ts"],"names":[],"mappings":"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"}
|
package/dist/OpenAiClient.js
CHANGED
|
@@ -4,34 +4,44 @@
|
|
|
4
4
|
* Provides a type-safe, Effect-based client for OpenAI operations including
|
|
5
5
|
* completions, embeddings, and streaming responses.
|
|
6
6
|
*
|
|
7
|
-
* @since
|
|
7
|
+
* @since 4.0.0
|
|
8
8
|
*/
|
|
9
9
|
import * as Array from "effect/Array";
|
|
10
|
+
import * as Context from "effect/Context";
|
|
10
11
|
import * as Effect from "effect/Effect";
|
|
11
12
|
import { identity } from "effect/Function";
|
|
13
|
+
import * as Function from "effect/Function";
|
|
12
14
|
import * as Layer from "effect/Layer";
|
|
13
15
|
import * as Predicate from "effect/Predicate";
|
|
16
|
+
import * as Queue from "effect/Queue";
|
|
17
|
+
import * as RcRef from "effect/RcRef";
|
|
14
18
|
import * as Redacted from "effect/Redacted";
|
|
15
|
-
import * as
|
|
19
|
+
import * as Schema from "effect/Schema";
|
|
20
|
+
import * as Scope from "effect/Scope";
|
|
21
|
+
import * as Semaphore from "effect/Semaphore";
|
|
16
22
|
import * as Stream from "effect/Stream";
|
|
23
|
+
import * as AiError from "effect/unstable/ai/AiError";
|
|
24
|
+
import * as ResponseIdTracker from "effect/unstable/ai/ResponseIdTracker";
|
|
17
25
|
import * as Sse from "effect/unstable/encoding/Sse";
|
|
18
26
|
import * as Headers from "effect/unstable/http/Headers";
|
|
19
27
|
import * as HttpBody from "effect/unstable/http/HttpBody";
|
|
20
28
|
import * as HttpClient from "effect/unstable/http/HttpClient";
|
|
21
29
|
import * as HttpClientRequest from "effect/unstable/http/HttpClientRequest";
|
|
22
|
-
import * as
|
|
30
|
+
import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse";
|
|
31
|
+
import * as Socket from "effect/unstable/socket/Socket";
|
|
23
32
|
import * as Errors from "./internal/errors.js";
|
|
24
33
|
import { OpenAiConfig } from "./OpenAiConfig.js";
|
|
34
|
+
import * as OpenAiSchema from "./OpenAiSchema.js";
|
|
25
35
|
// =============================================================================
|
|
26
36
|
// Service Identifier
|
|
27
37
|
// =============================================================================
|
|
28
38
|
/**
|
|
29
39
|
* Service identifier for the OpenAI client.
|
|
30
40
|
*
|
|
31
|
-
* @
|
|
32
|
-
* @
|
|
41
|
+
* @category services
|
|
42
|
+
* @since 4.0.0
|
|
33
43
|
*/
|
|
34
|
-
export class OpenAiClient extends /*#__PURE__*/
|
|
44
|
+
export class OpenAiClient extends /*#__PURE__*/Context.Service()("@effect/ai-openai/OpenAiClient") {}
|
|
35
45
|
// =============================================================================
|
|
36
46
|
// Constructor
|
|
37
47
|
// =============================================================================
|
|
@@ -42,33 +52,23 @@ const RedactedOpenAiHeaders = {
|
|
|
42
52
|
/**
|
|
43
53
|
* Creates an OpenAI client service with the given options.
|
|
44
54
|
*
|
|
45
|
-
* @since 1.0.0
|
|
46
55
|
* @category constructors
|
|
56
|
+
* @since 4.0.0
|
|
47
57
|
*/
|
|
48
58
|
export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
49
59
|
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({
|
|
60
|
+
const apiUrl = options.apiUrl ?? "https://api.openai.com/v1";
|
|
61
|
+
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);
|
|
62
|
+
const resolveHttpClient = Effect.map(OpenAiConfig.getOrUndefined, config => Predicate.isNotUndefined(config?.transformClient) ? config.transformClient(httpClient) : httpClient);
|
|
63
|
+
const decodeResponse = HttpClientResponse.schemaBodyJson(OpenAiSchema.Response);
|
|
64
|
+
const createResponse = payload => Effect.flatMap(resolveHttpClient, client => client.execute(HttpClientRequest.post("/responses", {
|
|
65
|
+
body: HttpBody.jsonUnsafe(payload)
|
|
66
|
+
})).pipe(Effect.flatMap(response => decodeResponse(response).pipe(Effect.map(body => [body, response]))), Effect.catchTags({
|
|
67
67
|
HttpClientError: error => Errors.mapHttpClientError(error, "createResponse"),
|
|
68
68
|
SchemaError: error => Effect.fail(Errors.mapSchemaError(error, "createResponse"))
|
|
69
|
-
}));
|
|
69
|
+
})));
|
|
70
70
|
const buildResponseStream = response => {
|
|
71
|
-
const stream = response.stream.pipe(Stream.decodeText(), Stream.pipeThroughChannel(Sse.decodeDataSchema(
|
|
71
|
+
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
72
|
// TODO: handle SSE retries
|
|
73
73
|
Retry: error => Stream.die(error),
|
|
74
74
|
HttpClientError: error => Stream.fromEffect(Errors.mapHttpClientError(error, "createResponseStream")),
|
|
@@ -76,20 +76,25 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
76
76
|
}));
|
|
77
77
|
return [response, stream];
|
|
78
78
|
};
|
|
79
|
-
const createResponseStream = payload =>
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
79
|
+
const createResponseStream = payload => Effect.contextWith(services => {
|
|
80
|
+
const socket = Context.getOrUndefined(services, OpenAiSocket);
|
|
81
|
+
if (socket) return socket.createResponseStream(payload);
|
|
82
|
+
return Effect.flatMap(resolveHttpClient, client => client.execute(HttpClientRequest.post("/responses", {
|
|
83
|
+
body: HttpBody.jsonUnsafe({
|
|
84
|
+
...payload,
|
|
85
|
+
stream: true
|
|
86
|
+
})
|
|
87
|
+
})).pipe(Effect.map(buildResponseStream), Effect.catchTag("HttpClientError", error => Errors.mapHttpClientError(error, "createResponseStream"))));
|
|
88
|
+
});
|
|
89
|
+
const decodeEmbedding = HttpClientResponse.schemaBodyJson(OpenAiSchema.CreateEmbeddingResponse);
|
|
90
|
+
const createEmbedding = payload => Effect.flatMap(resolveHttpClient, client => client.execute(HttpClientRequest.post("/embeddings", {
|
|
91
|
+
body: HttpBody.jsonUnsafe(payload)
|
|
92
|
+
})).pipe(Effect.flatMap(decodeEmbedding), Effect.catchTags({
|
|
88
93
|
HttpClientError: error => Errors.mapHttpClientError(error, "createEmbedding"),
|
|
89
94
|
SchemaError: error => Effect.fail(Errors.mapSchemaError(error, "createEmbedding"))
|
|
90
|
-
}));
|
|
95
|
+
})));
|
|
91
96
|
return OpenAiClient.of({
|
|
92
|
-
client,
|
|
97
|
+
client: httpClient,
|
|
93
98
|
createResponse,
|
|
94
99
|
createResponseStream,
|
|
95
100
|
createEmbedding
|
|
@@ -101,16 +106,16 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
101
106
|
/**
|
|
102
107
|
* Creates a layer for the OpenAI client with the given options.
|
|
103
108
|
*
|
|
104
|
-
* @since 1.0.0
|
|
105
109
|
* @category layers
|
|
110
|
+
* @since 4.0.0
|
|
106
111
|
*/
|
|
107
112
|
export const layer = options => Layer.effect(OpenAiClient, make(options));
|
|
108
113
|
/**
|
|
109
114
|
* Creates a layer for the OpenAI client, loading the requisite configuration
|
|
110
115
|
* via Effect's `Config` module.
|
|
111
116
|
*
|
|
112
|
-
* @since 1.0.0
|
|
113
117
|
* @category layers
|
|
118
|
+
* @since 4.0.0
|
|
114
119
|
*/
|
|
115
120
|
export const layerConfig = options => Layer.effect(OpenAiClient, Effect.gen(function* () {
|
|
116
121
|
const apiKey = Predicate.isNotUndefined(options?.apiKey) ? yield* options.apiKey : undefined;
|
|
@@ -125,4 +130,180 @@ export const layerConfig = options => Layer.effect(OpenAiClient, Effect.gen(func
|
|
|
125
130
|
transformClient: options?.transformClient
|
|
126
131
|
});
|
|
127
132
|
}));
|
|
133
|
+
/**
|
|
134
|
+
* Service for creating OpenAI response streams over a WebSocket connection.
|
|
135
|
+
*
|
|
136
|
+
* @category Websocket mode
|
|
137
|
+
* @since 4.0.0
|
|
138
|
+
*/
|
|
139
|
+
export class OpenAiSocket extends /*#__PURE__*/Context.Service()("@effect/ai-openai/OpenAiClient/OpenAiSocket") {}
|
|
140
|
+
const makeSocket = /*#__PURE__*/Effect.gen(function* () {
|
|
141
|
+
const client = yield* OpenAiClient;
|
|
142
|
+
const tracker = yield* ResponseIdTracker.make;
|
|
143
|
+
const socketScope = yield* Effect.scope;
|
|
144
|
+
const makeRequest = Effect.flatMap(OpenAiConfig.getOrUndefined, config => {
|
|
145
|
+
const httpClient = Predicate.isNotUndefined(config?.transformClient) ? config.transformClient(client.client) : client.client;
|
|
146
|
+
return Effect.orDie(httpClient.preprocess(HttpClientRequest.post("/responses")));
|
|
147
|
+
});
|
|
148
|
+
const makeWebSocket = yield* Socket.WebSocketConstructor;
|
|
149
|
+
const decoder = new TextDecoder();
|
|
150
|
+
const queueRef = yield* RcRef.make({
|
|
151
|
+
idleTimeToLive: 60_000,
|
|
152
|
+
acquire: Effect.gen(function* () {
|
|
153
|
+
const scope = yield* Effect.scope;
|
|
154
|
+
const request = yield* makeRequest;
|
|
155
|
+
const socket = yield* Socket.makeWebSocket(request.url.replace(/^http/, "ws")).pipe(Effect.provideService(Socket.WebSocketConstructor, url => makeWebSocket(url, {
|
|
156
|
+
headers: request.headers
|
|
157
|
+
})));
|
|
158
|
+
const write = yield* socket.writer;
|
|
159
|
+
yield* Scope.addFinalizerExit(scope, () => {
|
|
160
|
+
tracker.clearUnsafe();
|
|
161
|
+
return Effect.void;
|
|
162
|
+
});
|
|
163
|
+
const incoming = yield* Queue.unbounded();
|
|
164
|
+
const send = message => write(JSON.stringify({
|
|
165
|
+
type: "response.create",
|
|
166
|
+
...message
|
|
167
|
+
})).pipe(Effect.mapError(_error => AiError.make({
|
|
168
|
+
module: "OpenAiClient",
|
|
169
|
+
method: "createResponseStream",
|
|
170
|
+
reason: new AiError.NetworkError({
|
|
171
|
+
reason: "TransportError",
|
|
172
|
+
request: {
|
|
173
|
+
method: "POST",
|
|
174
|
+
url: request.url,
|
|
175
|
+
urlParams: [],
|
|
176
|
+
hash: undefined,
|
|
177
|
+
headers: request.headers
|
|
178
|
+
},
|
|
179
|
+
description: "Failed to send message over WebSocket"
|
|
180
|
+
})
|
|
181
|
+
})));
|
|
182
|
+
yield* socket.runRaw(msg => {
|
|
183
|
+
const text = typeof msg === "string" ? msg : decoder.decode(msg);
|
|
184
|
+
try {
|
|
185
|
+
const event = decodeEvent(text);
|
|
186
|
+
if (event.type === "error" && "status" in event) {
|
|
187
|
+
const status = Number(event.status);
|
|
188
|
+
const error = "error" in event ? event.error : event;
|
|
189
|
+
const json = JSON.stringify(error);
|
|
190
|
+
return Effect.fail(AiError.make({
|
|
191
|
+
module: "OpenAiClient",
|
|
192
|
+
method: "createResponseStream",
|
|
193
|
+
reason: AiError.reasonFromHttpStatus({
|
|
194
|
+
description: json,
|
|
195
|
+
status: isNaN(status) ? 500 : status,
|
|
196
|
+
metadata: error,
|
|
197
|
+
http: {
|
|
198
|
+
body: json,
|
|
199
|
+
request: {
|
|
200
|
+
method: "POST",
|
|
201
|
+
url: request.url,
|
|
202
|
+
urlParams: [],
|
|
203
|
+
hash: undefined,
|
|
204
|
+
headers: request.headers
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
})
|
|
208
|
+
}));
|
|
209
|
+
}
|
|
210
|
+
Queue.offerUnsafe(incoming, event);
|
|
211
|
+
} catch {}
|
|
212
|
+
}).pipe(Effect.catchTag("SocketError", error => AiError.make({
|
|
213
|
+
module: "OpenAiClient",
|
|
214
|
+
method: "createResponseStream",
|
|
215
|
+
reason: new AiError.NetworkError({
|
|
216
|
+
reason: "TransportError",
|
|
217
|
+
request: {
|
|
218
|
+
method: "POST",
|
|
219
|
+
url: request.url,
|
|
220
|
+
urlParams: [],
|
|
221
|
+
hash: undefined,
|
|
222
|
+
headers: request.headers
|
|
223
|
+
},
|
|
224
|
+
description: error.message
|
|
225
|
+
})
|
|
226
|
+
})), Effect.catchCause(cause => Queue.failCause(incoming, cause)), Effect.ensuring(Effect.forkIn(RcRef.invalidate(queueRef), socketScope, {
|
|
227
|
+
startImmediately: true
|
|
228
|
+
})), Effect.forkScoped({
|
|
229
|
+
startImmediately: true
|
|
230
|
+
}));
|
|
231
|
+
return {
|
|
232
|
+
send,
|
|
233
|
+
incoming
|
|
234
|
+
};
|
|
235
|
+
})
|
|
236
|
+
});
|
|
237
|
+
// Prime the websocket
|
|
238
|
+
yield* Effect.scoped(RcRef.get(queueRef));
|
|
239
|
+
// Websocket mode only allows one request at a time
|
|
240
|
+
const semaphore = Semaphore.makeUnsafe(1);
|
|
241
|
+
const request = yield* makeRequest;
|
|
242
|
+
return OpenAiSocket.context({
|
|
243
|
+
createResponseStream(options) {
|
|
244
|
+
const stream = Stream.unwrap(Effect.gen(function* () {
|
|
245
|
+
const scope = yield* Effect.scope;
|
|
246
|
+
yield* Effect.acquireRelease(semaphore.take(1), () => semaphore.release(1), {
|
|
247
|
+
interruptible: true
|
|
248
|
+
});
|
|
249
|
+
const {
|
|
250
|
+
send,
|
|
251
|
+
incoming
|
|
252
|
+
} = yield* RcRef.get(queueRef);
|
|
253
|
+
let done = false;
|
|
254
|
+
yield* Scope.addFinalizerExit(scope, () => done ? Effect.void : RcRef.invalidate(queueRef));
|
|
255
|
+
yield* send(options).pipe(Effect.forkScoped({
|
|
256
|
+
startImmediately: true
|
|
257
|
+
}));
|
|
258
|
+
return Stream.fromQueue(incoming).pipe(Stream.takeUntil(e => {
|
|
259
|
+
done = e.type === "response.completed" || e.type === "response.incomplete";
|
|
260
|
+
return done;
|
|
261
|
+
}));
|
|
262
|
+
}));
|
|
263
|
+
return Effect.succeed([HttpClientResponse.fromWeb(request, new Response()), stream]);
|
|
264
|
+
}
|
|
265
|
+
}).pipe(Context.add(ResponseIdTracker.ResponseIdTracker, tracker));
|
|
266
|
+
});
|
|
267
|
+
const ErrorEvent = /*#__PURE__*/Schema.Struct({
|
|
268
|
+
type: /*#__PURE__*/Schema.Literal("error"),
|
|
269
|
+
status: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.withDecodingDefault(/*#__PURE__*/Effect.succeed(500))),
|
|
270
|
+
error: /*#__PURE__*/Schema.Struct({
|
|
271
|
+
type: Schema.String,
|
|
272
|
+
message: Schema.String
|
|
273
|
+
})
|
|
274
|
+
});
|
|
275
|
+
const AllEvents = /*#__PURE__*/Schema.Union([ErrorEvent, OpenAiSchema.ResponseStreamEvent]);
|
|
276
|
+
const decodeEvent = /*#__PURE__*/Schema.decodeUnknownSync(/*#__PURE__*/Schema.fromJsonString(AllEvents));
|
|
277
|
+
/**
|
|
278
|
+
* Uses OpenAI's websocket mode for all responses within the provided effect.
|
|
279
|
+
*
|
|
280
|
+
* **Gotchas**
|
|
281
|
+
*
|
|
282
|
+
* This only works with the following WebSocket constructor layers:
|
|
283
|
+
*
|
|
284
|
+
* - `NodeSocket.layerWebSocketConstructorWS`
|
|
285
|
+
* - `BunSocket.layerWebSocketConstructor`
|
|
286
|
+
*
|
|
287
|
+
* This is because it needs to use non-standard options for setting the Authorization header.
|
|
288
|
+
*
|
|
289
|
+
* @category Websocket mode
|
|
290
|
+
* @since 4.0.0
|
|
291
|
+
*/
|
|
292
|
+
export const withWebSocketMode = effect => Effect.scopedWith(scope => Effect.flatMap(Scope.provide(makeSocket, scope), services => Effect.provideContext(effect, services)));
|
|
293
|
+
/**
|
|
294
|
+
* Uses OpenAI's websocket mode for all responses that use the Layer.
|
|
295
|
+
*
|
|
296
|
+
* **Gotchas**
|
|
297
|
+
*
|
|
298
|
+
* This only works with the following WebSocket constructor layers:
|
|
299
|
+
*
|
|
300
|
+
* - `NodeSocket.layerWebSocketConstructorWS`
|
|
301
|
+
* - `BunSocket.layerWebSocketConstructor`
|
|
302
|
+
*
|
|
303
|
+
* This is because it needs to use non-standard options for setting the Authorization header.
|
|
304
|
+
*
|
|
305
|
+
* @category Websocket mode
|
|
306
|
+
* @since 4.0.0
|
|
307
|
+
*/
|
|
308
|
+
export const layerWebSocketMode = /*#__PURE__*/Layer.effectContext(makeSocket);
|
|
128
309
|
//# 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":"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","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","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","AllEvents","Union","decodeUnknownSync","fromJsonString","withWebSocketMode","scopedWith","provide","provideContext","layerWebSocketMode","effectContext"],"sources":["../src/OpenAiClient.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;AAQA,OAAO,KAAKA,KAAK,MAAM,cAAc;AAErC,OAAO,KAAKC,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,SAASC,QAAQ,QAAQ,iBAAiB;AAC1C,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,SAAS,MAAM,kBAAkB;AAC7C,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,SAAS,MAAM,kBAAkB;AAC7C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,OAAO,MAAM,4BAA4B;AACrD,OAAO,KAAKC,iBAAiB,MAAM,sCAAsC;AACzE,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;AAC3E,OAAO,KAAKC,kBAAkB,MAAM,yCAAyC;AAC7E,OAAO,KAAKC,MAAM,MAAM,+BAA+B;AACvD,OAAO,KAAKC,MAAM,MAAM,sBAAsB;AAC9C,SAASC,YAAY,QAAQ,mBAAmB;AAChD,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAqDjD;AACA;AACA;AAEA;;;;;;AAMA,OAAM,MAAOC,YAAa,sBAAQzB,OAAO,CAAC0B,OAAO,EAAyB,CACxE,gCAAgC,CACjC;AAyCD;AACA;AACA;AAEA,MAAMC,qBAAqB,GAAG;EAC5BC,kBAAkB,EAAE,qBAAqB;EACzCC,aAAa,EAAE;CAChB;AAED;;;;;;AAMA,OAAO,MAAMC,IAAI,gBAAG7B,MAAM,CAAC8B,UAAU,CACnC,WACEC,OAAgB;EAEhB,MAAMC,UAAU,GAAG,OAAOf,UAAU,CAACA,UAAU;EAC/C,MAAMgB,MAAM,GAAGF,OAAO,CAACE,MAAM,IAAI,2BAA2B;EAE5D,MAAMC,UAAU,GAAGF,UAAU,CAACG,IAAI,CAChClB,UAAU,CAACmB,UAAU,CAAClC,QAAQ,CAACmC,IAAI,CACjCnB,iBAAiB,CAACoB,UAAU,CAACL,MAAM,CAAC,EACpCF,OAAO,CAACQ,MAAM,GACVrB,iBAAiB,CAACsB,WAAW,CAACjC,QAAQ,CAACkC,KAAK,CAACV,OAAO,CAACQ,MAAM,CAAC,CAAC,GAC7DtC,QAAQ,EACZ8B,OAAO,CAACW,cAAc,GAClBxB,iBAAiB,CAACyB,SAAS,CAC3BjB,qBAAqB,CAACC,kBAAkB,EACxCpB,QAAQ,CAACkC,KAAK,CAACV,OAAO,CAACW,cAAc,CAAC,CACvC,GACCzC,QAAQ,EACZ8B,OAAO,CAACa,SAAS,GACb1B,iBAAiB,CAACyB,SAAS,CAC3BjB,qBAAqB,CAACE,aAAa,EACnCrB,QAAQ,CAACkC,KAAK,CAACV,OAAO,CAACa,SAAS,CAAC,CAClC,GACC3C,QAAQ,EACZiB,iBAAiB,CAAC2B,UAAU,CAC7B,CAAC,EACF5B,UAAU,CAAC6B,cAAc,EACzBf,OAAO,CAACgB,eAAe,GACnBhB,OAAO,CAACgB,eAAe,GACvB9C,QAAQ,CACb;EAED,MAAM+C,iBAAiB,GAAGhD,MAAM,CAACiD,GAAG,CAClC3B,YAAY,CAAC4B,cAAc,EAC1BC,MAAM,IACL/C,SAAS,CAACgD,cAAc,CAACD,MAAM,EAAEJ,eAAe,CAAC,GAC7CI,MAAM,CAACJ,eAAe,CAACb,UAAU,CAAC,GAClCA,UAAU,CACjB;EAED,MAAMmB,cAAc,GAAGlC,kBAAkB,CAACmC,cAAc,CAAC/B,YAAY,CAACgC,QAAQ,CAAC;EAE/E,MAAMC,cAAc,GAClBC,OAAmD,IAKnDzD,MAAM,CAAC0D,OAAO,CAACV,iBAAiB,EAAGW,MAAM,IACvCA,MAAM,CAACC,OAAO,CACZ1C,iBAAiB,CAAC2C,IAAI,CAAC,YAAY,EAAE;IACnCC,IAAI,EAAE9C,QAAQ,CAAC+C,UAAU,CAACN,OAAO;GAClC,CAAC,CACH,CAACtB,IAAI,CACJnC,MAAM,CAAC0D,OAAO,CAAEM,QAAQ,IACtBX,cAAc,CAACW,QAAQ,CAAC,CAAC7B,IAAI,CAC3BnC,MAAM,CAACiD,GAAG,CAAEa,IAAI,IAAiF,CAC/FA,IAAI,EACJE,QAAQ,CACT,CAAC,CACH,CACF,EACDhE,MAAM,CAACiE,SAAS,CAAC;IACfC,eAAe,EAAGC,KAAK,IAAK9C,MAAM,CAAC+C,kBAAkB,CAACD,KAAK,EAAE,gBAAgB,CAAC;IAC9EE,WAAW,EAAGF,KAAK,IAAKnE,MAAM,CAACsE,IAAI,CAACjD,MAAM,CAACkD,cAAc,CAACJ,KAAK,EAAE,gBAAgB,CAAC;GACnF,CAAC,CACH,CAAC;EAEN,MAAMK,mBAAmB,GACvBR,QAA+C,IAI7C;IACF,MAAMS,MAAM,GAAGT,QAAQ,CAACS,MAAM,CAACtC,IAAI,CACjCxB,MAAM,CAAC+D,UAAU,EAAE,EACnB/D,MAAM,CAACgE,kBAAkB,CAAC7D,GAAG,CAAC8D,gBAAgB,CAACrD,YAAY,CAACsD,mBAAmB,CAAC,CAAC,EACjFlE,MAAM,CAACmE,SAAS,CAAEC,KAAK,IACrBA,KAAK,CAACC,IAAI,CAACC,IAAI,KAAK,oBAAoB,IACxCF,KAAK,CAACC,IAAI,CAACC,IAAI,KAAK,qBAAqB,CAC1C,EACDtE,MAAM,CAACsC,GAAG,CAAE8B,KAAK,IAAKA,KAAK,CAACC,IAAI,CAAC,EACjCrE,MAAM,CAACsD,SAAS,CAAC;MACf;MACAiB,KAAK,EAAGf,KAAK,IAAKxD,MAAM,CAACwE,GAAG,CAAChB,KAAK,CAAC;MACnCD,eAAe,EAAGC,KAAK,IAAKxD,MAAM,CAACyE,UAAU,CAAC/D,MAAM,CAAC+C,kBAAkB,CAACD,KAAK,EAAE,sBAAsB,CAAC,CAAC;MACvGE,WAAW,EAAGF,KAAK,IAAKxD,MAAM,CAAC2D,IAAI,CAACjD,MAAM,CAACkD,cAAc,CAACJ,KAAK,EAAE,sBAAsB,CAAC;KACzF,CAAC,CACH;IACD,OAAO,CAACH,QAAQ,EAAES,MAAM,CAAC;EAC3B,CAAC;EAED,MAAMY,oBAAoB,GAAqC5B,OAAO,IACpEzD,MAAM,CAACsF,WAAW,CAAEC,QAAQ,IAAI;IAC9B,MAAMC,MAAM,GAAGzF,OAAO,CAACmD,cAAc,CAACqC,QAAQ,EAAEE,YAAY,CAAC;IAC7D,IAAID,MAAM,EAAE,OAAOA,MAAM,CAACH,oBAAoB,CAAC5B,OAAO,CAAC;IACvD,OAAOzD,MAAM,CAAC0D,OAAO,CAACV,iBAAiB,EAAGW,MAAM,IAC9CA,MAAM,CAACC,OAAO,CACZ1C,iBAAiB,CAAC2C,IAAI,CAAC,YAAY,EAAE;MACnCC,IAAI,EAAE9C,QAAQ,CAAC+C,UAAU,CAAC;QAAE,GAAGN,OAAO;QAAEgB,MAAM,EAAE;MAAI,CAAE;KACvD,CAAC,CACH,CAACtC,IAAI,CACJnC,MAAM,CAACiD,GAAG,CAACuB,mBAAmB,CAAC,EAC/BxE,MAAM,CAAC0F,QAAQ,CACb,iBAAiB,EAChBvB,KAAK,IAAK9C,MAAM,CAAC+C,kBAAkB,CAACD,KAAK,EAAE,sBAAsB,CAAC,CACpE,CACF,CAAC;EACN,CAAC,CAAC;EAEJ,MAAMwB,eAAe,GAAGxE,kBAAkB,CAACmC,cAAc,CAAC/B,YAAY,CAACqE,uBAAuB,CAAC;EAE/F,MAAMC,eAAe,GACnBpC,OAA2D,IAE3DzD,MAAM,CAAC0D,OAAO,CAACV,iBAAiB,EAAGW,MAAM,IACvCA,MAAM,CAACC,OAAO,CACZ1C,iBAAiB,CAAC2C,IAAI,CAAC,aAAa,EAAE;IACpCC,IAAI,EAAE9C,QAAQ,CAAC+C,UAAU,CAACN,OAAO;GAClC,CAAC,CACH,CAACtB,IAAI,CACJnC,MAAM,CAAC0D,OAAO,CAACiC,eAAe,CAAC,EAC/B3F,MAAM,CAACiE,SAAS,CAAC;IACfC,eAAe,EAAGC,KAAK,IAAK9C,MAAM,CAAC+C,kBAAkB,CAACD,KAAK,EAAE,iBAAiB,CAAC;IAC/EE,WAAW,EAAGF,KAAK,IAAKnE,MAAM,CAACsE,IAAI,CAACjD,MAAM,CAACkD,cAAc,CAACJ,KAAK,EAAE,iBAAiB,CAAC;GACpF,CAAC,CACH,CAAC;EAEN,OAAO3C,YAAY,CAACsE,EAAE,CAAC;IACrBnC,MAAM,EAAEzB,UAAU;IAClBsB,cAAc;IACd6B,oBAAoB;IACpBQ;GACD,CAAC;AACJ,CAAC,eACD7F,MAAM,CAAC+F,aAAa,CAClBhF,OAAO,CAACiF,oBAAoB,eAC5BlG,KAAK,CAACmG,SAAS,cAACC,MAAM,CAACC,MAAM,CAACzE,qBAAqB,CAAC,CAAC,CACtD,CACF;AAED;AACA;AACA;AAEA;;;;;;AAMA,OAAO,MAAM0E,KAAK,GAAIrE,OAAgB,IACpC5B,KAAK,CAACkG,MAAM,CAAC7E,YAAY,EAAEK,IAAI,CAACE,OAAO,CAAC,CAAC;AAE3C;;;;;;;AAOA,OAAO,MAAMuE,WAAW,GAAIvE,OAyB3B,IACC5B,KAAK,CAACkG,MAAM,CACV7E,YAAY,EACZxB,MAAM,CAACuG,GAAG,CAAC,aAAS;EAClB,MAAMhE,MAAM,GAAGnC,SAAS,CAACgD,cAAc,CAACrB,OAAO,EAAEQ,MAAM,CAAC,GACpD,OAAOR,OAAO,CAACQ,MAAM,GACvBiE,SAAS;EACX,MAAMvE,MAAM,GAAG7B,SAAS,CAACgD,cAAc,CAACrB,OAAO,EAAEE,MAAM,CAAC,GACpD,OAAOF,OAAO,CAACE,MAAM,GACvBuE,SAAS;EACX,MAAM9D,cAAc,GAAGtC,SAAS,CAACgD,cAAc,CAACrB,OAAO,EAAEW,cAAc,CAAC,GACpE,OAAOX,OAAO,CAACW,cAAc,GAC7B8D,SAAS;EACb,MAAM5D,SAAS,GAAGxC,SAAS,CAACgD,cAAc,CAACrB,OAAO,EAAEa,SAAS,CAAC,GAC1D,OAAOb,OAAO,CAACa,SAAS,GAC1B4D,SAAS;EACX,OAAO,OAAO3E,IAAI,CAAC;IACjBU,MAAM;IACNN,MAAM;IACNS,cAAc;IACdE,SAAS;IACTG,eAAe,EAAEhB,OAAO,EAAEgB;GAC3B,CAAC;AACJ,CAAC,CAAC,CACH;AAcH;;;;;;AAMA,OAAM,MAAO0C,YAAa,sBAAQ1F,OAAO,CAAC0B,OAAO,EAa7C,CAAC,6CAA6C,CAAC;AAEnD,MAAMgF,UAAU,gBAAGzG,MAAM,CAACuG,GAAG,CAAC,aAAS;EACrC,MAAM5C,MAAM,GAAG,OAAOnC,YAAY;EAClC,MAAMkF,OAAO,GAAG,OAAO7F,iBAAiB,CAACgB,IAAI;EAC7C,MAAM8E,WAAW,GAAG,OAAO3G,MAAM,CAAC4G,KAAK;EACvC,MAAMC,WAAW,GAAG7G,MAAM,CAAC0D,OAAO,CAChCpC,YAAY,CAAC4B,cAAc,EAC1BC,MAAM,IAAI;IACT,MAAMjB,UAAU,GAAG9B,SAAS,CAACgD,cAAc,CAACD,MAAM,EAAEJ,eAAe,CAAC,GAChEI,MAAM,CAACJ,eAAe,CAACY,MAAM,CAACA,MAAM,CAAC,GACrCA,MAAM,CAACA,MAAM;IACjB,OAAO3D,MAAM,CAAC8G,KAAK,CAAC5E,UAAU,CAAC6E,UAAU,CAAC7F,iBAAiB,CAAC2C,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;EAClF,CAAC,CACF;EACD,MAAMmD,aAAa,GAAG,OAAO5F,MAAM,CAAC6F,oBAAoB;EAExD,MAAMC,OAAO,GAAG,IAAIC,WAAW,EAAE;EAEjC,MAAMC,QAAQ,GAKV,OAAO9G,KAAK,CAACuB,IAAI,CAAC;IACpBwF,cAAc,EAAE,MAAM;IACtBC,OAAO,EAAEtH,MAAM,CAACuG,GAAG,CAAC,aAAS;MAC3B,MAAMK,KAAK,GAAG,OAAO5G,MAAM,CAAC4G,KAAK;MACjC,MAAMW,OAAO,GAAG,OAAOV,WAAW;MAClC,MAAMrB,MAAM,GAAG,OAAOpE,MAAM,CAAC4F,aAAa,CAACO,OAAO,CAACC,GAAG,CAACC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAACtF,IAAI,CACjFnC,MAAM,CAAC0H,cAAc,CAACtG,MAAM,CAAC6F,oBAAoB,EAAGO,GAAG,IACrDR,aAAa,CAACQ,GAAG,EAAE;QACjBG,OAAO,EAAEJ,OAAO,CAACI;OACX,CAAC,CAAC,CACb;MACD,MAAMC,KAAK,GAAG,OAAOpC,MAAM,CAACqC,MAAM;MAElC,OAAOpH,KAAK,CAACqH,gBAAgB,CAAClB,KAAK,EAAE,MAAK;QACxCF,OAAO,CAACqB,WAAW,EAAE;QACrB,OAAO/H,MAAM,CAACgI,IAAI;MACpB,CAAC,CAAC;MAEF,MAAMC,QAAQ,GAAG,OAAO5H,KAAK,CAAC6H,SAAS,EAAwC;MAC/E,MAAMC,IAAI,GAAIC,OAAmD,IAC/DR,KAAK,CAACS,IAAI,CAACC,SAAS,CAAC;QACnBrD,IAAI,EAAE,iBAAiB;QACvB,GAAGmD;OACJ,CAAC,CAAC,CAACjG,IAAI,CACNnC,MAAM,CAACuI,QAAQ,CAAEC,MAAM,IACrB5H,OAAO,CAACiB,IAAI,CAAC;QACX4G,MAAM,EAAE,cAAc;QACtBC,MAAM,EAAE,sBAAsB;QAC9BC,MAAM,EAAE,IAAI/H,OAAO,CAACgI,YAAY,CAAC;UAC/BD,MAAM,EAAE,gBAAgB;UACxBpB,OAAO,EAAE;YACPmB,MAAM,EAAE,MAAM;YACdlB,GAAG,EAAED,OAAO,CAACC,GAAG;YAChBqB,SAAS,EAAE,EAAE;YACbC,IAAI,EAAEtC,SAAS;YACfmB,OAAO,EAAEJ,OAAO,CAACI;WAClB;UACDoB,WAAW,EAAE;SACd;OACF,CAAC,CACH,CACF;MAEH,OAAOvD,MAAM,CAACwD,MAAM,CAAEC,GAAG,IAAI;QAC3B,MAAMC,IAAI,GAAG,OAAOD,GAAG,KAAK,QAAQ,GAAGA,GAAG,GAAG/B,OAAO,CAACiC,MAAM,CAACF,GAAG,CAAC;QAChE,IAAI;UACF,MAAMlE,KAAK,GAAGqE,WAAW,CAACF,IAAI,CAAC;UAC/B,IAAInE,KAAK,CAACE,IAAI,KAAK,OAAO,IAAI,QAAQ,IAAIF,KAAK,EAAE;YAC/C,MAAMsE,MAAM,GAAGC,MAAM,CAACvE,KAAK,CAACsE,MAAM,CAAC;YACnC,MAAMlF,KAAK,GAAG,OAAO,IAAIY,KAAK,GAAGA,KAAK,CAACZ,KAAK,GAAGY,KAAK;YACpD,MAAMwE,IAAI,GAAGlB,IAAI,CAACC,SAAS,CAACnE,KAAK,CAAC;YAClC,OAAOnE,MAAM,CAACsE,IAAI,CAChB1D,OAAO,CAACiB,IAAI,CAAC;cACX4G,MAAM,EAAE,cAAc;cACtBC,MAAM,EAAE,sBAAsB;cAC9BC,MAAM,EAAE/H,OAAO,CAAC4I,oBAAoB,CAAC;gBACnCT,WAAW,EAAEQ,IAAI;gBACjBF,MAAM,EAAEI,KAAK,CAACJ,MAAM,CAAC,GAAG,GAAG,GAAGA,MAAM;gBACpCK,QAAQ,EAAEvF,KAAY;gBACtBwF,IAAI,EAAE;kBACJ7F,IAAI,EAAEyF,IAAI;kBACVhC,OAAO,EAAE;oBACPmB,MAAM,EAAE,MAAM;oBACdlB,GAAG,EAAED,OAAO,CAACC,GAAG;oBAChBqB,SAAS,EAAE,EAAE;oBACbC,IAAI,EAAEtC,SAAS;oBACfmB,OAAO,EAAEJ,OAAO,CAACI;;;eAGtB;aACF,CAAC,CACH;UACH;UACAtH,KAAK,CAACuJ,WAAW,CAAC3B,QAAQ,EAAElD,KAAK,CAAC;QACpC,CAAC,CAAC,MAAM,CAAC;MACX,CAAC,CAAC,CAAC5C,IAAI,CACLnC,MAAM,CAAC0F,QAAQ,CAAC,aAAa,EAAGvB,KAAK,IACnCvD,OAAO,CAACiB,IAAI,CAAC;QACX4G,MAAM,EAAE,cAAc;QACtBC,MAAM,EAAE,sBAAsB;QAC9BC,MAAM,EAAE,IAAI/H,OAAO,CAACgI,YAAY,CAAC;UAC/BD,MAAM,EAAE,gBAAgB;UACxBpB,OAAO,EAAE;YACPmB,MAAM,EAAE,MAAM;YACdlB,GAAG,EAAED,OAAO,CAACC,GAAG;YAChBqB,SAAS,EAAE,EAAE;YACbC,IAAI,EAAEtC,SAAS;YACfmB,OAAO,EAAEJ,OAAO,CAACI;WAClB;UACDoB,WAAW,EAAE5E,KAAK,CAACiE;SACpB;OACF,CAAC,CAAC,EACLpI,MAAM,CAAC6J,UAAU,CAAEC,KAAK,IAAKzJ,KAAK,CAAC0J,SAAS,CAAC9B,QAAQ,EAAE6B,KAAK,CAAC,CAAC,EAC9D9J,MAAM,CAACgK,QAAQ,CAAChK,MAAM,CAACiK,MAAM,CAAC3J,KAAK,CAAC4J,UAAU,CAAC9C,QAAQ,CAAC,EAAET,WAAW,EAAE;QACrEwD,gBAAgB,EAAE;OACnB,CAAC,CAAC,EACHnK,MAAM,CAACoK,UAAU,CAAC;QAAED,gBAAgB,EAAE;MAAI,CAAE,CAAC,CAC9C;MAED,OAAO;QAAEhC,IAAI;QAAEF;MAAQ,CAAW;IACpC,CAAC;GACF,CAAC;EAEF;EACA,OAAOjI,MAAM,CAACqK,MAAM,CAAC/J,KAAK,CAACgK,GAAG,CAAClD,QAAQ,CAAC,CAAC;EAEzC;EACA,MAAMmD,SAAS,GAAG7J,SAAS,CAAC8J,UAAU,CAAC,CAAC,CAAC;EACzC,MAAMjD,OAAO,GAAG,OAAOV,WAAW;EAElC,OAAOpB,YAAY,CAACgF,OAAO,CAAC;IAC1BpF,oBAAoBA,CAACtD,OAAO;MAC1B,MAAM0C,MAAM,GAAG9D,MAAM,CAAC+J,MAAM,CAAC1K,MAAM,CAACuG,GAAG,CAAC,aAAS;QAC/C,MAAMK,KAAK,GAAG,OAAO5G,MAAM,CAAC4G,KAAK;QACjC,OAAO5G,MAAM,CAAC2K,cAAc,CAC1BJ,SAAS,CAACK,IAAI,CAAC,CAAC,CAAC,EACjB,MAAML,SAAS,CAACM,OAAO,CAAC,CAAC,CAAC,EAC1B;UAAEC,aAAa,EAAE;QAAI,CAAE,CACxB;QACD,MAAM;UAAE3C,IAAI;UAAEF;QAAQ,CAAE,GAAG,OAAO3H,KAAK,CAACgK,GAAG,CAAClD,QAAQ,CAAC;QACrD,IAAI2D,IAAI,GAAG,KAAK;QAEhB,OAAOtK,KAAK,CAACqH,gBAAgB,CAC3BlB,KAAK,EACL,MAAMmE,IAAI,GAAG/K,MAAM,CAACgI,IAAI,GAAG1H,KAAK,CAAC4J,UAAU,CAAC9C,QAAQ,CAAC,CACtD;QAED,OAAOe,IAAI,CAACpG,OAAO,CAAC,CAACI,IAAI,CACvBnC,MAAM,CAACoK,UAAU,CAAC;UAAED,gBAAgB,EAAE;QAAI,CAAE,CAAC,CAC9C;QAED,OAAOxJ,MAAM,CAACqK,SAAS,CAAC/C,QAAQ,CAAC,CAAC9F,IAAI,CACpCxB,MAAM,CAACmE,SAAS,CAAEmG,CAAC,IAAI;UACrBF,IAAI,GAAGE,CAAC,CAAChG,IAAI,KAAK,oBAAoB,IAAIgG,CAAC,CAAChG,IAAI,KAAK,qBAAqB;UAC1E,OAAO8F,IAAI;QACb,CAAC,CAAC,CACH;MACH,CAAC,CAAC,CAAC;MAEH,OAAO/K,MAAM,CAACkL,OAAO,CAAC,CACpB/J,kBAAkB,CAACgK,OAAO,CAAC5D,OAAO,EAAE,IAAIhE,QAAQ,EAAE,CAAC,EACnDkB,MAAM,CACP,CAAC;IACJ;GACD,CAAC,CAACtC,IAAI,CACLpC,OAAO,CAACqL,GAAG,CAACvK,iBAAiB,CAACA,iBAAiB,EAAE6F,OAAO,CAAC,CAC1D;AACH,CAAC,CAAC;AAEF,MAAM2E,UAAU,gBAAG7K,MAAM,CAAC8K,MAAM,CAAC;EAC/BrG,IAAI,eAAEzE,MAAM,CAAC+K,OAAO,CAAC,OAAO,CAAC;EAC7BlC,MAAM,eAAE7I,MAAM,CAAC8I,MAAM,CAACnH,IAAI,cACxB3B,MAAM,CAACgL,mBAAmB,cAACxL,MAAM,CAACkL,OAAO,CAAC,GAAG,CAAC,CAAC,CAChD;EACD/G,KAAK,eAAE3D,MAAM,CAAC8K,MAAM,CAAC;IACnBrG,IAAI,EAAEzE,MAAM,CAACiL,MAAM;IACnBrD,OAAO,EAAE5H,MAAM,CAACiL;GACjB;CACF,CAAC;AAEF,MAAMC,SAAS,gBAAGlL,MAAM,CAACmL,KAAK,CAAC,CAACN,UAAU,EAAE9J,YAAY,CAACsD,mBAAmB,CAAC,CAAC;AAC9E,MAAMuE,WAAW,gBAAG5I,MAAM,CAACoL,iBAAiB,cAACpL,MAAM,CAACqL,cAAc,CAACH,SAAS,CAAC,CAAC;AAE9E;;;;;;;;;;;;;;;AAeA,OAAO,MAAMI,iBAAiB,GAC5BzF,MAA8B,IAM9BrG,MAAM,CAAC+L,UAAU,CAAEnF,KAAK,IACtB5G,MAAM,CAAC0D,OAAO,CACZjD,KAAK,CAACuL,OAAO,CAACvF,UAAU,EAAEG,KAAK,CAAC,EAC/BrB,QAAQ,IAAKvF,MAAM,CAACiM,cAAc,CAAC5F,MAAM,EAAEd,QAAQ,CAAC,CACtD,CACF;AAEH;;;;;;;;;;;;;;;AAeA,OAAO,MAAM2G,kBAAkB,gBAI3B/L,KAAK,CAACgM,aAAa,CAAC1F,UAAU,CAAC","ignoreList":[]}
|