@effect/ai-openai 4.0.0-beta.6 → 4.0.0-beta.60

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 (52) hide show
  1. package/dist/Generated.d.ts +66011 -38686
  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 +63 -17
  6. package/dist/OpenAiClient.d.ts.map +1 -1
  7. package/dist/OpenAiClient.js +210 -33
  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 +2 -2
  14. package/dist/OpenAiConfig.d.ts.map +1 -1
  15. package/dist/OpenAiConfig.js +3 -3
  16. package/dist/OpenAiConfig.js.map +1 -1
  17. package/dist/OpenAiEmbeddingModel.d.ts +85 -0
  18. package/dist/OpenAiEmbeddingModel.d.ts.map +1 -0
  19. package/dist/OpenAiEmbeddingModel.js +119 -0
  20. package/dist/OpenAiEmbeddingModel.js.map +1 -0
  21. package/dist/OpenAiError.d.ts +22 -32
  22. package/dist/OpenAiError.d.ts.map +1 -1
  23. package/dist/OpenAiLanguageModel.d.ts +43 -49
  24. package/dist/OpenAiLanguageModel.d.ts.map +1 -1
  25. package/dist/OpenAiLanguageModel.js +296 -152
  26. package/dist/OpenAiLanguageModel.js.map +1 -1
  27. package/dist/OpenAiSchema.d.ts +1920 -0
  28. package/dist/OpenAiSchema.d.ts.map +1 -0
  29. package/dist/OpenAiSchema.js +536 -0
  30. package/dist/OpenAiSchema.js.map +1 -0
  31. package/dist/OpenAiTool.d.ts +8 -7
  32. package/dist/OpenAiTool.d.ts.map +1 -1
  33. package/dist/OpenAiTool.js +2 -1
  34. package/dist/OpenAiTool.js.map +1 -1
  35. package/dist/index.d.ts +18 -0
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +18 -0
  38. package/dist/index.js.map +1 -1
  39. package/dist/internal/errors.js +4 -4
  40. package/dist/internal/errors.js.map +1 -1
  41. package/package.json +3 -3
  42. package/src/Generated.ts +7416 -4257
  43. package/src/OpenAiClient.ts +377 -81
  44. package/src/OpenAiClientGenerated.ts +202 -0
  45. package/src/OpenAiConfig.ts +3 -3
  46. package/src/OpenAiEmbeddingModel.ts +203 -0
  47. package/src/OpenAiError.ts +24 -32
  48. package/src/OpenAiLanguageModel.ts +420 -144
  49. package/src/OpenAiSchema.ts +875 -0
  50. package/src/OpenAiTool.ts +2 -1
  51. package/src/index.ts +21 -0
  52. package/src/internal/errors.ts +6 -4
@@ -1,13 +1,15 @@
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
14
  * The OpenAI client interface.
13
15
  *
@@ -16,29 +18,26 @@ import * as Generated from "./Generated.ts";
16
18
  */
17
19
  export interface Service {
18
20
  /**
19
- * The underlying generated OpenAI client.
21
+ * The transformed HTTP client used by this service.
20
22
  */
21
- readonly client: Generated.OpenAiClient;
23
+ readonly client: HttpClient.HttpClient;
22
24
  /**
23
25
  * Create a response using the OpenAI responses endpoint.
24
26
  */
25
- readonly createResponse: (options: typeof Generated.CreateResponse.Encoded) => Effect.Effect<[
26
- body: typeof Generated.Response.Type,
27
- response: HttpClientResponse.HttpClientResponse
28
- ], AiError.AiError>;
27
+ readonly createResponse: (options: typeof OpenAiSchema.CreateResponse.Encoded) => Effect.Effect<readonly [body: typeof OpenAiSchema.Response.Type, response: HttpClientResponse.HttpClientResponse], AiError.AiError>;
29
28
  /**
30
29
  * Create a streaming response using the OpenAI responses endpoint.
31
30
  */
32
- readonly createResponseStream: (options: Omit<typeof Generated.CreateResponse.Encoded, "stream">) => Effect.Effect<[
31
+ readonly createResponseStream: (options: Omit<typeof OpenAiSchema.CreateResponse.Encoded, "stream">) => Effect.Effect<readonly [
33
32
  response: HttpClientResponse.HttpClientResponse,
34
- stream: Stream.Stream<typeof Generated.ResponseStreamEvent.Type, AiError.AiError>
33
+ stream: Stream.Stream<typeof OpenAiSchema.ResponseStreamEvent.Type, AiError.AiError>
35
34
  ], AiError.AiError>;
36
35
  /**
37
36
  * Create embeddings using the OpenAI embeddings endpoint.
38
37
  */
39
- readonly createEmbedding: (options: typeof Generated.CreateEmbeddingRequest.Encoded) => Effect.Effect<typeof Generated.CreateEmbeddingResponse.Type, AiError.AiError>;
38
+ readonly createEmbedding: (options: typeof OpenAiSchema.CreateEmbeddingRequest.Encoded) => Effect.Effect<typeof OpenAiSchema.CreateEmbeddingResponse.Type, AiError.AiError>;
40
39
  }
41
- declare const OpenAiClient_base: ServiceMap.ServiceClass<OpenAiClient, "@effect/ai-openai/OpenAiClient", Service>;
40
+ declare const OpenAiClient_base: Context.ServiceClass<OpenAiClient, "@effect/ai-openai/OpenAiClient", Service>;
42
41
  /**
43
42
  * Service identifier for the OpenAI client.
44
43
  *
@@ -102,7 +101,7 @@ export declare const layerConfig: (options?: {
102
101
  /**
103
102
  * The config value to load for the API key.
104
103
  */
105
- readonly apiKey?: Config.Config<Redacted.Redacted<string>> | undefined;
104
+ readonly apiKey?: Config.Config<Redacted.Redacted<string> | undefined> | undefined;
106
105
  /**
107
106
  * The config value to load for the API URL.
108
107
  */
@@ -110,15 +109,62 @@ export declare const layerConfig: (options?: {
110
109
  /**
111
110
  * The config value to load for the organization ID.
112
111
  */
113
- readonly organizationId?: Config.Config<Redacted.Redacted<string>> | undefined;
112
+ readonly organizationId?: Config.Config<Redacted.Redacted<string> | undefined> | undefined;
114
113
  /**
115
114
  * The config value to load for the project ID.
116
115
  */
117
- readonly projectId?: Config.Config<Redacted.Redacted<string>> | undefined;
116
+ readonly projectId?: Config.Config<Redacted.Redacted<string> | undefined> | undefined;
118
117
  /**
119
118
  * Optional transformer for the HTTP client.
120
119
  */
121
120
  readonly transformClient?: ((client: HttpClient.HttpClient) => HttpClient.HttpClient) | undefined;
122
121
  }) => Layer.Layer<OpenAiClient, Config.ConfigError, HttpClient.HttpClient>;
122
+ /**
123
+ * @since 1.0.0
124
+ * @category Events
125
+ */
126
+ export type ResponseStreamEvent = typeof OpenAiSchema.ResponseStreamEvent.Type;
127
+ declare const OpenAiSocket_base: Context.ServiceClass<OpenAiSocket, "@effect/ai-openai/OpenAiClient/OpenAiSocket", {
128
+ /**
129
+ * Create a streaming response using the OpenAI responses endpoint.
130
+ */
131
+ readonly createResponseStream: (options: Omit<typeof OpenAiSchema.CreateResponse.Encoded, "stream">) => Effect.Effect<readonly [response: HttpClientResponse.HttpClientResponse, stream: Stream.Stream<ResponseStreamEvent, AiError.AiError>], AiError.AiError>;
132
+ }>;
133
+ /**
134
+ * @since 1.0.0
135
+ * @category Websocket mode
136
+ */
137
+ export declare class OpenAiSocket extends OpenAiSocket_base {
138
+ }
139
+ /**
140
+ * Uses OpenAI's websocket mode for all responses within the provided effect.
141
+ *
142
+ * Note: This only works with the following WebSocket constructor layers:
143
+ *
144
+ * - `NodeSocket.layerWebSocketConstructorWS`
145
+ * - `BunSocket.layerWebSocketConstructor`
146
+ *
147
+ * This is because it needs to use non-standard options for setting the
148
+ * Authorization header.
149
+ *
150
+ * @since 1.0.0
151
+ * @category Websocket mode
152
+ */
153
+ 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>;
154
+ /**
155
+ * Uses OpenAI's websocket mode for all responses that use the Layer.
156
+ *
157
+ * Note: This only works with the following WebSocket constructor layers:
158
+ *
159
+ * - `NodeSocket.layerWebSocketConstructorWS`
160
+ * - `BunSocket.layerWebSocketConstructor`
161
+ *
162
+ * This is because it needs to use non-standard options for setting the
163
+ * Authorization header.
164
+ *
165
+ * @since 1.0.0
166
+ * @category Websocket mode
167
+ */
168
+ export declare const layerWebSocketMode: Layer.Layer<OpenAiSocket | ResponseIdTracker.ResponseIdTracker, never, OpenAiClient | Socket.WebSocketConstructor>;
123
169
  export {};
124
170
  //# 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":"AASA,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;AAIrC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAI3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,4BAA4B,CAAA;AACrD,OAAO,KAAK,iBAAiB,MAAM,sCAAsC,CAAA;AAIzE,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAA;AAE7D,OAAO,KAAK,kBAAkB,MAAM,yCAAyC,CAAA;AAC7E,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAGvD,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAMjD;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,UAAU,CAAA;IAEtC;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,CACvB,OAAO,EAAE,OAAO,YAAY,CAAC,cAAc,CAAC,OAAO,KAChD,MAAM,CAAC,MAAM,CAChB,SAAS,CAAC,IAAI,EAAE,OAAO,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,EACnG,OAAO,CAAC,OAAO,CAChB,CAAA;IAED;;OAEG;IACH,QAAQ,CAAC,oBAAoB,EAAE,CAC7B,OAAO,EAAE,IAAI,CAAC,OAAO,YAAY,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,KAChE,MAAM,CAAC,MAAM,CAChB,SAAS;QACP,QAAQ,EAAE,kBAAkB,CAAC,kBAAkB;QAC/C,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,YAAY,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC;KACrF,EACD,OAAO,CAAC,OAAO,CAChB,CAAA;IAED;;OAEG;IACH,QAAQ,CAAC,eAAe,EAAE,CACxB,OAAO,EAAE,OAAO,YAAY,CAAC,sBAAsB,CAAC,OAAO,KACxD,MAAM,CAAC,MAAM,CAAC,OAAO,YAAY,CAAC,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;CACtF;;AAMD;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,iBAEjC;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,4EA4IhB,CAAA;AAMD;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAAI,SAAS,OAAO,KAAG,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,CACpD,CAAA;AAE3C;;;;;;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,YAAY,EAAE,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,UAAU,CAwBpE,CAAA;AAMH;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,OAAO,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAA;;IAO5E;;OAEG;mCAC4B,CAC7B,OAAO,EAAE,IAAI,CAAC,OAAO,YAAY,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,KAChE,MAAM,CAAC,MAAM,CAChB,SAAS,CACP,QAAQ,EAAE,kBAAkB,CAAC,kBAAkB,EAC/C,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,OAAO,CAAC,OAAO,CAAC,CAC5D,EACD,OAAO,CAAC,OAAO,CAChB;;AAhBH;;;GAGG;AACH,qBAAa,YAAa,SAAQ,iBAaiB;CAAG;AA2LtD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,iBAAiB,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EACvC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC7B,MAAM,CAAC,MAAM,CACd,CAAC,EACD,CAAC,EACD,OAAO,CAAC,CAAC,EAAE,YAAY,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,GAAG,YAAY,GAAG,MAAM,CAAC,oBAAoB,CAO1G,CAAA;AAEH;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,KAAK,CAC1C,YAAY,GAAG,iBAAiB,CAAC,iBAAiB,EAClD,KAAK,EACL,YAAY,GAAG,MAAM,CAAC,oBAAoB,CACT,CAAA"}
@@ -7,21 +7,31 @@
7
7
  * @since 1.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 ServiceMap from "effect/ServiceMap";
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 Generated from "./Generated.js";
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
  // =============================================================================
@@ -31,7 +41,7 @@ import { OpenAiConfig } from "./OpenAiConfig.js";
31
41
  * @since 1.0.0
32
42
  * @category service
33
43
  */
34
- export class OpenAiClient extends /*#__PURE__*/ServiceMap.Service()("@effect/ai-openai/OpenAiClient") {}
44
+ export class OpenAiClient extends /*#__PURE__*/Context.Service()("@effect/ai-openai/OpenAiClient") {}
35
45
  // =============================================================================
36
46
  // Constructor
37
47
  // =============================================================================
@@ -47,28 +57,18 @@ const RedactedOpenAiHeaders = {
47
57
  */
48
58
  export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
49
59
  const baseClient = yield* HttpClient.HttpClient;
50
- const httpClient = baseClient.pipe(HttpClient.mapRequest(request => request.pipe(HttpClientRequest.prependUrl(options.apiUrl ?? "https://api.openai.com/v1"), Predicate.isNotUndefined(options.apiKey) ? HttpClientRequest.bearerToken(Redacted.value(options.apiKey)) : identity, Predicate.isNotUndefined(options.organizationId) ? HttpClientRequest.setHeader(RedactedOpenAiHeaders.OpenAiOrganization, Redacted.value(options.organizationId)) : identity, Predicate.isNotUndefined(options.projectId) ? HttpClientRequest.setHeader(RedactedOpenAiHeaders.OpenAiProject, Redacted.value(options.projectId)) : identity, HttpClientRequest.acceptJson)), Predicate.isNotUndefined(options.transformClient) ? options.transformClient : identity);
51
- const httpClientOk = HttpClient.filterStatusOk(httpClient);
52
- const client = Generated.make(httpClient, {
53
- transformClient: Effect.fnUntraced(function* (client) {
54
- const config = yield* OpenAiConfig.getOrUndefined;
55
- if (Predicate.isNotUndefined(config?.transformClient)) {
56
- return config.transformClient(client);
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(Generated.ResponseStreamEvent)), Stream.takeUntil(event => event.data.type === "response.completed" || event.data.type === "response.incomplete"), Stream.map(event => event.data), Stream.catchTags({
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 => httpClientOk.execute(HttpClientRequest.post("/responses", {
80
- body: HttpBody.jsonUnsafe({
81
- ...payload,
82
- stream: true
83
- })
84
- })).pipe(Effect.map(buildResponseStream), Effect.catchTag("HttpClientError", error => Errors.mapHttpClientError(error, "createResponseStream")));
85
- const createEmbedding = payload => client.createEmbedding({
86
- payload
87
- }).pipe(Effect.catchTags({
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
@@ -125,4 +130,176 @@ export const layerConfig = options => Layer.effect(OpenAiClient, Effect.gen(func
125
130
  transformClient: options?.transformClient
126
131
  });
127
132
  }));
133
+ /**
134
+ * @since 1.0.0
135
+ * @category Websocket mode
136
+ */
137
+ export class OpenAiSocket extends /*#__PURE__*/Context.Service()("@effect/ai-openai/OpenAiClient/OpenAiSocket") {}
138
+ const makeSocket = /*#__PURE__*/Effect.gen(function* () {
139
+ const client = yield* OpenAiClient;
140
+ const tracker = yield* ResponseIdTracker.make;
141
+ const socketScope = yield* Effect.scope;
142
+ const makeRequest = Effect.flatMap(OpenAiConfig.getOrUndefined, config => {
143
+ const httpClient = Predicate.isNotUndefined(config?.transformClient) ? config.transformClient(client.client) : client.client;
144
+ return Effect.orDie(httpClient.preprocess(HttpClientRequest.post("/responses")));
145
+ });
146
+ const makeWebSocket = yield* Socket.WebSocketConstructor;
147
+ const decoder = new TextDecoder();
148
+ const queueRef = yield* RcRef.make({
149
+ idleTimeToLive: 60_000,
150
+ acquire: Effect.gen(function* () {
151
+ const scope = yield* Effect.scope;
152
+ const request = yield* makeRequest;
153
+ const socket = yield* Socket.makeWebSocket(request.url.replace(/^http/, "ws")).pipe(Effect.provideService(Socket.WebSocketConstructor, url => makeWebSocket(url, {
154
+ headers: request.headers
155
+ })));
156
+ const write = yield* socket.writer;
157
+ yield* Scope.addFinalizerExit(scope, () => {
158
+ tracker.clearUnsafe();
159
+ return Effect.void;
160
+ });
161
+ const incoming = yield* Queue.unbounded();
162
+ const send = message => write(JSON.stringify({
163
+ type: "response.create",
164
+ ...message
165
+ })).pipe(Effect.mapError(_error => AiError.make({
166
+ module: "OpenAiClient",
167
+ method: "createResponseStream",
168
+ reason: new AiError.NetworkError({
169
+ reason: "TransportError",
170
+ request: {
171
+ method: "POST",
172
+ url: request.url,
173
+ urlParams: [],
174
+ hash: undefined,
175
+ headers: request.headers
176
+ },
177
+ description: "Failed to send message over WebSocket"
178
+ })
179
+ })));
180
+ yield* socket.runRaw(msg => {
181
+ const text = typeof msg === "string" ? msg : decoder.decode(msg);
182
+ try {
183
+ const event = decodeEvent(text);
184
+ if (event.type === "error" && "status" in event) {
185
+ const status = Number(event.status);
186
+ const error = "error" in event ? event.error : event;
187
+ const json = JSON.stringify(error);
188
+ return Effect.fail(AiError.make({
189
+ module: "OpenAiClient",
190
+ method: "createResponseStream",
191
+ reason: AiError.reasonFromHttpStatus({
192
+ description: json,
193
+ status: isNaN(status) ? 500 : status,
194
+ metadata: error,
195
+ http: {
196
+ body: json,
197
+ request: {
198
+ method: "POST",
199
+ url: request.url,
200
+ urlParams: [],
201
+ hash: undefined,
202
+ headers: request.headers
203
+ }
204
+ }
205
+ })
206
+ }));
207
+ }
208
+ Queue.offerUnsafe(incoming, event);
209
+ } catch {}
210
+ }).pipe(Effect.catchTag("SocketError", error => AiError.make({
211
+ module: "OpenAiClient",
212
+ method: "createResponseStream",
213
+ reason: new AiError.NetworkError({
214
+ reason: "TransportError",
215
+ request: {
216
+ method: "POST",
217
+ url: request.url,
218
+ urlParams: [],
219
+ hash: undefined,
220
+ headers: request.headers
221
+ },
222
+ description: error.message
223
+ })
224
+ }).asEffect()), Effect.catchCause(cause => Queue.failCause(incoming, cause)), Effect.ensuring(Effect.forkIn(RcRef.invalidate(queueRef), socketScope, {
225
+ startImmediately: true
226
+ })), Effect.forkScoped({
227
+ startImmediately: true
228
+ }));
229
+ return {
230
+ send,
231
+ incoming
232
+ };
233
+ })
234
+ });
235
+ // Prime the websocket
236
+ yield* Effect.scoped(RcRef.get(queueRef));
237
+ // Websocket mode only allows one request at a time
238
+ const semaphore = Semaphore.makeUnsafe(1);
239
+ const request = yield* makeRequest;
240
+ return OpenAiSocket.context({
241
+ createResponseStream(options) {
242
+ const stream = Stream.unwrap(Effect.gen(function* () {
243
+ const scope = yield* Effect.scope;
244
+ yield* Effect.acquireRelease(semaphore.take(1), () => semaphore.release(1), {
245
+ interruptible: true
246
+ });
247
+ const {
248
+ send,
249
+ incoming
250
+ } = yield* RcRef.get(queueRef);
251
+ let done = false;
252
+ yield* Scope.addFinalizerExit(scope, () => done ? Effect.void : RcRef.invalidate(queueRef));
253
+ yield* send(options).pipe(Effect.forkScoped({
254
+ startImmediately: true
255
+ }));
256
+ return Stream.fromQueue(incoming).pipe(Stream.takeUntil(e => {
257
+ done = e.type === "response.completed" || e.type === "response.incomplete";
258
+ return done;
259
+ }));
260
+ }));
261
+ return Effect.succeed([HttpClientResponse.fromWeb(request, new Response()), stream]);
262
+ }
263
+ }).pipe(Context.add(ResponseIdTracker.ResponseIdTracker, tracker));
264
+ });
265
+ const ErrorEvent = /*#__PURE__*/Schema.Struct({
266
+ type: /*#__PURE__*/Schema.Literal("error"),
267
+ status: /*#__PURE__*/Schema.Number.pipe(/*#__PURE__*/Schema.withDecodingDefault(/*#__PURE__*/Effect.succeed(500))),
268
+ error: /*#__PURE__*/Schema.Struct({
269
+ type: Schema.String,
270
+ message: Schema.String
271
+ })
272
+ });
273
+ const AllEvents = /*#__PURE__*/Schema.Union([ErrorEvent, OpenAiSchema.ResponseStreamEvent]);
274
+ const decodeEvent = /*#__PURE__*/Schema.decodeUnknownSync(/*#__PURE__*/Schema.fromJsonString(AllEvents));
275
+ /**
276
+ * Uses OpenAI's websocket mode for all responses within the provided effect.
277
+ *
278
+ * Note: This only works with the following WebSocket constructor layers:
279
+ *
280
+ * - `NodeSocket.layerWebSocketConstructorWS`
281
+ * - `BunSocket.layerWebSocketConstructor`
282
+ *
283
+ * This is because it needs to use non-standard options for setting the
284
+ * Authorization header.
285
+ *
286
+ * @since 1.0.0
287
+ * @category Websocket mode
288
+ */
289
+ export const withWebSocketMode = effect => Effect.scopedWith(scope => Effect.flatMap(Scope.provide(makeSocket, scope), services => Effect.provideContext(effect, services)));
290
+ /**
291
+ * Uses OpenAI's websocket mode for all responses that use the Layer.
292
+ *
293
+ * Note: This only works with the following WebSocket constructor layers:
294
+ *
295
+ * - `NodeSocket.layerWebSocketConstructorWS`
296
+ * - `BunSocket.layerWebSocketConstructor`
297
+ *
298
+ * This is because it needs to use non-standard options for setting the
299
+ * Authorization header.
300
+ *
301
+ * @since 1.0.0
302
+ * @category Websocket mode
303
+ */
304
+ export const layerWebSocketMode = /*#__PURE__*/Layer.effectContext(makeSocket);
128
305
  //# sourceMappingURL=OpenAiClient.js.map
@@ -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","metadata","http","offerUnsafe","asEffect","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":"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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 1.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 1.0.0
21
+ * @category models
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 1.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 1.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 1.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"}