@effect/ai-openai 0.37.2 → 4.0.0-beta.0
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 +70887 -0
- package/dist/Generated.d.ts.map +1 -0
- package/dist/Generated.js +4 -0
- package/dist/Generated.js.map +1 -0
- package/dist/OpenAiClient.d.ts +124 -0
- package/dist/OpenAiClient.d.ts.map +1 -0
- package/dist/OpenAiClient.js +128 -0
- package/dist/OpenAiClient.js.map +1 -0
- package/dist/{dts/OpenAiConfig.d.ts → OpenAiConfig.d.ts} +9 -9
- package/dist/OpenAiConfig.d.ts.map +1 -0
- package/dist/{esm/OpenAiConfig.js → OpenAiConfig.js} +8 -5
- package/dist/OpenAiConfig.js.map +1 -0
- package/dist/OpenAiError.d.ts +98 -0
- package/dist/OpenAiError.d.ts.map +1 -0
- package/dist/OpenAiError.js +10 -0
- package/dist/OpenAiError.js.map +1 -0
- package/dist/OpenAiLanguageModel.d.ts +318 -0
- package/dist/OpenAiLanguageModel.d.ts.map +1 -0
- package/dist/OpenAiLanguageModel.js +2207 -0
- package/dist/OpenAiLanguageModel.js.map +1 -0
- package/dist/{dts/OpenAiTelemetry.d.ts → OpenAiTelemetry.d.ts} +31 -13
- package/dist/OpenAiTelemetry.d.ts.map +1 -0
- package/dist/{esm/OpenAiTelemetry.js → OpenAiTelemetry.js} +11 -6
- package/dist/OpenAiTelemetry.js.map +1 -0
- package/dist/OpenAiTool.d.ts +479 -0
- package/dist/OpenAiTool.d.ts.map +1 -0
- package/dist/OpenAiTool.js +231 -0
- package/dist/OpenAiTool.js.map +1 -0
- package/dist/index.d.ts +58 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +59 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/errors.d.ts +2 -0
- package/dist/internal/errors.d.ts.map +1 -0
- package/dist/internal/errors.js +316 -0
- package/dist/internal/errors.js.map +1 -0
- package/dist/{dts/internal → internal}/utilities.d.ts.map +1 -1
- package/dist/{esm/internal → internal}/utilities.js +4 -3
- package/dist/internal/utilities.js.map +1 -0
- package/package.json +45 -97
- package/src/Generated.ts +28521 -20036
- package/src/OpenAiClient.ts +220 -1816
- package/src/OpenAiConfig.ts +20 -34
- package/src/OpenAiError.ts +107 -0
- package/src/OpenAiLanguageModel.ts +1807 -638
- package/src/OpenAiTelemetry.ts +24 -19
- package/src/OpenAiTool.ts +216 -70
- package/src/index.ts +35 -8
- package/src/internal/errors.ts +347 -0
- package/src/internal/utilities.ts +7 -5
- package/Generated/package.json +0 -6
- package/OpenAiClient/package.json +0 -6
- package/OpenAiConfig/package.json +0 -6
- package/OpenAiEmbeddingModel/package.json +0 -6
- package/OpenAiLanguageModel/package.json +0 -6
- package/OpenAiTelemetry/package.json +0 -6
- package/OpenAiTokenizer/package.json +0 -6
- package/OpenAiTool/package.json +0 -6
- package/README.md +0 -5
- package/dist/cjs/Generated.js +0 -7150
- package/dist/cjs/Generated.js.map +0 -1
- package/dist/cjs/OpenAiClient.js +0 -1567
- package/dist/cjs/OpenAiClient.js.map +0 -1
- package/dist/cjs/OpenAiConfig.js +0 -30
- package/dist/cjs/OpenAiConfig.js.map +0 -1
- package/dist/cjs/OpenAiEmbeddingModel.js +0 -155
- package/dist/cjs/OpenAiEmbeddingModel.js.map +0 -1
- package/dist/cjs/OpenAiLanguageModel.js +0 -1147
- package/dist/cjs/OpenAiLanguageModel.js.map +0 -1
- package/dist/cjs/OpenAiTelemetry.js +0 -38
- package/dist/cjs/OpenAiTelemetry.js.map +0 -1
- package/dist/cjs/OpenAiTokenizer.js +0 -83
- package/dist/cjs/OpenAiTokenizer.js.map +0 -1
- package/dist/cjs/OpenAiTool.js +0 -93
- package/dist/cjs/OpenAiTool.js.map +0 -1
- package/dist/cjs/index.js +0 -24
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/internal/utilities.js +0 -32
- package/dist/cjs/internal/utilities.js.map +0 -1
- package/dist/dts/Generated.d.ts +0 -40661
- package/dist/dts/Generated.d.ts.map +0 -1
- package/dist/dts/OpenAiClient.d.ts +0 -3120
- package/dist/dts/OpenAiClient.d.ts.map +0 -1
- package/dist/dts/OpenAiConfig.d.ts.map +0 -1
- package/dist/dts/OpenAiEmbeddingModel.d.ts +0 -109
- package/dist/dts/OpenAiEmbeddingModel.d.ts.map +0 -1
- package/dist/dts/OpenAiLanguageModel.d.ts +0 -235
- package/dist/dts/OpenAiLanguageModel.d.ts.map +0 -1
- package/dist/dts/OpenAiTelemetry.d.ts.map +0 -1
- package/dist/dts/OpenAiTokenizer.d.ts +0 -17
- package/dist/dts/OpenAiTokenizer.d.ts.map +0 -1
- package/dist/dts/OpenAiTool.d.ts +0 -200
- package/dist/dts/OpenAiTool.d.ts.map +0 -1
- package/dist/dts/index.d.ts +0 -33
- package/dist/dts/index.d.ts.map +0 -1
- package/dist/esm/Generated.js +0 -7150
- package/dist/esm/Generated.js.map +0 -1
- package/dist/esm/OpenAiClient.js +0 -1504
- package/dist/esm/OpenAiClient.js.map +0 -1
- package/dist/esm/OpenAiConfig.js.map +0 -1
- package/dist/esm/OpenAiEmbeddingModel.js +0 -143
- package/dist/esm/OpenAiEmbeddingModel.js.map +0 -1
- package/dist/esm/OpenAiLanguageModel.js +0 -1134
- package/dist/esm/OpenAiLanguageModel.js.map +0 -1
- package/dist/esm/OpenAiTelemetry.js.map +0 -1
- package/dist/esm/OpenAiTokenizer.js +0 -73
- package/dist/esm/OpenAiTokenizer.js.map +0 -1
- package/dist/esm/OpenAiTool.js +0 -84
- package/dist/esm/OpenAiTool.js.map +0 -1
- package/dist/esm/index.js +0 -33
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/internal/utilities.js.map +0 -1
- package/dist/esm/package.json +0 -4
- package/index/package.json +0 -6
- package/src/OpenAiEmbeddingModel.ts +0 -243
- package/src/OpenAiTokenizer.ts +0 -70
- /package/dist/{dts/internal → internal}/utilities.d.ts +0 -0
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import type * as Config from "effect/Config";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Layer from "effect/Layer";
|
|
4
|
+
import * as Redacted from "effect/Redacted";
|
|
5
|
+
import * as ServiceMap from "effect/ServiceMap";
|
|
6
|
+
import * as Stream from "effect/Stream";
|
|
7
|
+
import type * as AiError from "effect/unstable/ai/AiError";
|
|
8
|
+
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";
|
|
11
|
+
/**
|
|
12
|
+
* The OpenAI client interface.
|
|
13
|
+
*
|
|
14
|
+
* @since 1.0.0
|
|
15
|
+
* @category models
|
|
16
|
+
*/
|
|
17
|
+
export interface Service {
|
|
18
|
+
/**
|
|
19
|
+
* The underlying generated OpenAI client.
|
|
20
|
+
*/
|
|
21
|
+
readonly client: Generated.OpenAiClient;
|
|
22
|
+
/**
|
|
23
|
+
* Create a response using the OpenAI responses endpoint.
|
|
24
|
+
*/
|
|
25
|
+
readonly createResponse: (options: typeof Generated.CreateResponse.Encoded) => Effect.Effect<[
|
|
26
|
+
body: typeof Generated.Response.Type,
|
|
27
|
+
response: HttpClientResponse.HttpClientResponse
|
|
28
|
+
], AiError.AiError>;
|
|
29
|
+
/**
|
|
30
|
+
* Create a streaming response using the OpenAI responses endpoint.
|
|
31
|
+
*/
|
|
32
|
+
readonly createResponseStream: (options: Omit<typeof Generated.CreateResponse.Encoded, "stream">) => Effect.Effect<[
|
|
33
|
+
response: HttpClientResponse.HttpClientResponse,
|
|
34
|
+
stream: Stream.Stream<typeof Generated.ResponseStreamEvent.Type, AiError.AiError>
|
|
35
|
+
], AiError.AiError>;
|
|
36
|
+
/**
|
|
37
|
+
* Create embeddings using the OpenAI embeddings endpoint.
|
|
38
|
+
*/
|
|
39
|
+
readonly createEmbedding: (options: typeof Generated.CreateEmbeddingRequest.Encoded) => Effect.Effect<typeof Generated.CreateEmbeddingResponse.Type, AiError.AiError>;
|
|
40
|
+
}
|
|
41
|
+
declare const OpenAiClient_base: ServiceMap.ServiceClass<OpenAiClient, "@effect/ai-openai/OpenAiClient", Service>;
|
|
42
|
+
/**
|
|
43
|
+
* Service identifier for the OpenAI client.
|
|
44
|
+
*
|
|
45
|
+
* @since 1.0.0
|
|
46
|
+
* @category service
|
|
47
|
+
*/
|
|
48
|
+
export declare class OpenAiClient extends OpenAiClient_base {
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Options for configuring the OpenAI client.
|
|
52
|
+
*
|
|
53
|
+
* @since 1.0.0
|
|
54
|
+
* @category models
|
|
55
|
+
*/
|
|
56
|
+
export type Options = {
|
|
57
|
+
/**
|
|
58
|
+
* The OpenAI API key.
|
|
59
|
+
*/
|
|
60
|
+
readonly apiKey?: Redacted.Redacted<string> | undefined;
|
|
61
|
+
/**
|
|
62
|
+
* The base URL for the OpenAI API.
|
|
63
|
+
*
|
|
64
|
+
* @default "https://api.openai.com/v1"
|
|
65
|
+
*/
|
|
66
|
+
readonly apiUrl?: string | undefined;
|
|
67
|
+
/**
|
|
68
|
+
* Optional organization ID for multi-org accounts.
|
|
69
|
+
*/
|
|
70
|
+
readonly organizationId?: Redacted.Redacted<string> | undefined;
|
|
71
|
+
/**
|
|
72
|
+
* Optional project ID for project-scoped requests.
|
|
73
|
+
*/
|
|
74
|
+
readonly projectId?: Redacted.Redacted<string> | undefined;
|
|
75
|
+
/**
|
|
76
|
+
* Optional transformer for the HTTP client.
|
|
77
|
+
*/
|
|
78
|
+
readonly transformClient?: ((client: HttpClient.HttpClient) => HttpClient.HttpClient) | undefined;
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Creates an OpenAI client service with the given options.
|
|
82
|
+
*
|
|
83
|
+
* @since 1.0.0
|
|
84
|
+
* @category constructors
|
|
85
|
+
*/
|
|
86
|
+
export declare const make: (options: Options) => Effect.Effect<Service, never, HttpClient.HttpClient>;
|
|
87
|
+
/**
|
|
88
|
+
* Creates a layer for the OpenAI client with the given options.
|
|
89
|
+
*
|
|
90
|
+
* @since 1.0.0
|
|
91
|
+
* @category layers
|
|
92
|
+
*/
|
|
93
|
+
export declare const layer: (options: Options) => Layer.Layer<OpenAiClient, never, HttpClient.HttpClient>;
|
|
94
|
+
/**
|
|
95
|
+
* Creates a layer for the OpenAI client, loading the requisite configuration
|
|
96
|
+
* via Effect's `Config` module.
|
|
97
|
+
*
|
|
98
|
+
* @since 1.0.0
|
|
99
|
+
* @category layers
|
|
100
|
+
*/
|
|
101
|
+
export declare const layerConfig: (options?: {
|
|
102
|
+
/**
|
|
103
|
+
* The config value to load for the API key.
|
|
104
|
+
*/
|
|
105
|
+
readonly apiKey?: Config.Config<Redacted.Redacted<string>> | undefined;
|
|
106
|
+
/**
|
|
107
|
+
* The config value to load for the API URL.
|
|
108
|
+
*/
|
|
109
|
+
readonly apiUrl?: Config.Config<string> | undefined;
|
|
110
|
+
/**
|
|
111
|
+
* The config value to load for the organization ID.
|
|
112
|
+
*/
|
|
113
|
+
readonly organizationId?: Config.Config<Redacted.Redacted<string>> | undefined;
|
|
114
|
+
/**
|
|
115
|
+
* The config value to load for the project ID.
|
|
116
|
+
*/
|
|
117
|
+
readonly projectId?: Config.Config<Redacted.Redacted<string>> | undefined;
|
|
118
|
+
/**
|
|
119
|
+
* Optional transformer for the HTTP client.
|
|
120
|
+
*/
|
|
121
|
+
readonly transformClient?: ((client: HttpClient.HttpClient) => HttpClient.HttpClient) | undefined;
|
|
122
|
+
}) => Layer.Layer<OpenAiClient, Config.ConfigError, HttpClient.HttpClient>;
|
|
123
|
+
export {};
|
|
124
|
+
//# sourceMappingURL=OpenAiClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenAiClient.d.ts","sourceRoot":"","sources":["../src/OpenAiClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAI Client module for interacting with OpenAI's API.
|
|
3
|
+
*
|
|
4
|
+
* Provides a type-safe, Effect-based client for OpenAI operations including
|
|
5
|
+
* completions, embeddings, and streaming responses.
|
|
6
|
+
*
|
|
7
|
+
* @since 1.0.0
|
|
8
|
+
*/
|
|
9
|
+
import * as Array from "effect/Array";
|
|
10
|
+
import * as Effect from "effect/Effect";
|
|
11
|
+
import { identity } from "effect/Function";
|
|
12
|
+
import * as Layer from "effect/Layer";
|
|
13
|
+
import * as Predicate from "effect/Predicate";
|
|
14
|
+
import * as Redacted from "effect/Redacted";
|
|
15
|
+
import * as ServiceMap from "effect/ServiceMap";
|
|
16
|
+
import * as Stream from "effect/Stream";
|
|
17
|
+
import * as Sse from "effect/unstable/encoding/Sse";
|
|
18
|
+
import * as Headers from "effect/unstable/http/Headers";
|
|
19
|
+
import * as HttpBody from "effect/unstable/http/HttpBody";
|
|
20
|
+
import * as HttpClient from "effect/unstable/http/HttpClient";
|
|
21
|
+
import * as HttpClientRequest from "effect/unstable/http/HttpClientRequest";
|
|
22
|
+
import * as Generated from "./Generated.js";
|
|
23
|
+
import * as Errors from "./internal/errors.js";
|
|
24
|
+
import { OpenAiConfig } from "./OpenAiConfig.js";
|
|
25
|
+
// =============================================================================
|
|
26
|
+
// Service Identifier
|
|
27
|
+
// =============================================================================
|
|
28
|
+
/**
|
|
29
|
+
* Service identifier for the OpenAI client.
|
|
30
|
+
*
|
|
31
|
+
* @since 1.0.0
|
|
32
|
+
* @category service
|
|
33
|
+
*/
|
|
34
|
+
export class OpenAiClient extends /*#__PURE__*/ServiceMap.Service()("@effect/ai-openai/OpenAiClient") {}
|
|
35
|
+
// =============================================================================
|
|
36
|
+
// Constructor
|
|
37
|
+
// =============================================================================
|
|
38
|
+
const RedactedOpenAiHeaders = {
|
|
39
|
+
OpenAiOrganization: "OpenAI-Organization",
|
|
40
|
+
OpenAiProject: "OpenAI-Project"
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Creates an OpenAI client service with the given options.
|
|
44
|
+
*
|
|
45
|
+
* @since 1.0.0
|
|
46
|
+
* @category constructors
|
|
47
|
+
*/
|
|
48
|
+
export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
49
|
+
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({
|
|
67
|
+
HttpClientError: error => Errors.mapHttpClientError(error, "createResponse"),
|
|
68
|
+
SchemaError: error => Effect.fail(Errors.mapSchemaError(error, "createResponse"))
|
|
69
|
+
}));
|
|
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({
|
|
72
|
+
// TODO: handle SSE retries
|
|
73
|
+
Retry: error => Stream.die(error),
|
|
74
|
+
HttpClientError: error => Stream.fromEffect(Errors.mapHttpClientError(error, "createResponseStream")),
|
|
75
|
+
SchemaError: error => Stream.fail(Errors.mapSchemaError(error, "createResponseStream"))
|
|
76
|
+
}));
|
|
77
|
+
return [response, stream];
|
|
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({
|
|
88
|
+
HttpClientError: error => Errors.mapHttpClientError(error, "createEmbedding"),
|
|
89
|
+
SchemaError: error => Effect.fail(Errors.mapSchemaError(error, "createEmbedding"))
|
|
90
|
+
}));
|
|
91
|
+
return OpenAiClient.of({
|
|
92
|
+
client,
|
|
93
|
+
createResponse,
|
|
94
|
+
createResponseStream,
|
|
95
|
+
createEmbedding
|
|
96
|
+
});
|
|
97
|
+
}, /*#__PURE__*/Effect.updateService(Headers.CurrentRedactedNames, /*#__PURE__*/Array.appendAll(/*#__PURE__*/Object.values(RedactedOpenAiHeaders))));
|
|
98
|
+
// =============================================================================
|
|
99
|
+
// Layers
|
|
100
|
+
// =============================================================================
|
|
101
|
+
/**
|
|
102
|
+
* Creates a layer for the OpenAI client with the given options.
|
|
103
|
+
*
|
|
104
|
+
* @since 1.0.0
|
|
105
|
+
* @category layers
|
|
106
|
+
*/
|
|
107
|
+
export const layer = options => Layer.effect(OpenAiClient, make(options));
|
|
108
|
+
/**
|
|
109
|
+
* Creates a layer for the OpenAI client, loading the requisite configuration
|
|
110
|
+
* via Effect's `Config` module.
|
|
111
|
+
*
|
|
112
|
+
* @since 1.0.0
|
|
113
|
+
* @category layers
|
|
114
|
+
*/
|
|
115
|
+
export const layerConfig = options => Layer.effect(OpenAiClient, Effect.gen(function* () {
|
|
116
|
+
const apiKey = Predicate.isNotUndefined(options?.apiKey) ? yield* options.apiKey : undefined;
|
|
117
|
+
const apiUrl = Predicate.isNotUndefined(options?.apiUrl) ? yield* options.apiUrl : undefined;
|
|
118
|
+
const organizationId = Predicate.isNotUndefined(options?.organizationId) ? yield* options.organizationId : undefined;
|
|
119
|
+
const projectId = Predicate.isNotUndefined(options?.projectId) ? yield* options.projectId : undefined;
|
|
120
|
+
return yield* make({
|
|
121
|
+
apiKey,
|
|
122
|
+
apiUrl,
|
|
123
|
+
organizationId,
|
|
124
|
+
projectId,
|
|
125
|
+
transformClient: options?.transformClient
|
|
126
|
+
});
|
|
127
|
+
}));
|
|
128
|
+
//# sourceMappingURL=OpenAiClient.js.map
|
|
@@ -0,0 +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,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
|
-
import type { HttpClient } from "@effect/platform/HttpClient";
|
|
5
|
-
import * as Context from "effect/Context";
|
|
6
4
|
import * as Effect from "effect/Effect";
|
|
7
|
-
|
|
5
|
+
import * as ServiceMap from "effect/ServiceMap";
|
|
6
|
+
import type { HttpClient } from "effect/unstable/http/HttpClient";
|
|
7
|
+
declare const OpenAiConfig_base: ServiceMap.ServiceClass<OpenAiConfig, "@effect/ai-openai/OpenAiConfig", OpenAiConfig.Service>;
|
|
8
8
|
/**
|
|
9
9
|
* @since 1.0.0
|
|
10
|
-
* @category
|
|
10
|
+
* @category services
|
|
11
11
|
*/
|
|
12
12
|
export declare class OpenAiConfig extends OpenAiConfig_base {
|
|
13
13
|
/**
|
|
@@ -21,25 +21,25 @@ export declare class OpenAiConfig extends OpenAiConfig_base {
|
|
|
21
21
|
export declare namespace OpenAiConfig {
|
|
22
22
|
/**
|
|
23
23
|
* @since 1.0.
|
|
24
|
-
* @category
|
|
24
|
+
* @category models
|
|
25
25
|
*/
|
|
26
26
|
interface Service {
|
|
27
|
-
readonly transformClient?: (client: HttpClient) => HttpClient;
|
|
27
|
+
readonly transformClient?: ((client: HttpClient) => HttpClient) | undefined;
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
31
|
* @since 1.0.0
|
|
32
|
-
* @category
|
|
32
|
+
* @category configuration
|
|
33
33
|
*/
|
|
34
34
|
export declare const withClientTransform: {
|
|
35
35
|
/**
|
|
36
36
|
* @since 1.0.0
|
|
37
|
-
* @category
|
|
37
|
+
* @category configuration
|
|
38
38
|
*/
|
|
39
39
|
(transform: (client: HttpClient) => HttpClient): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
|
|
40
40
|
/**
|
|
41
41
|
* @since 1.0.0
|
|
42
|
-
* @category
|
|
42
|
+
* @category configuration
|
|
43
43
|
*/
|
|
44
44
|
<A, E, R>(self: Effect.Effect<A, E, R>, transform: (client: HttpClient) => HttpClient): Effect.Effect<A, E, R>;
|
|
45
45
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenAiConfig.d.ts","sourceRoot":"","sources":["../src/OpenAiConfig.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;;AAEjE;;;GAGG;AACH,qBAAa,YAAa,SAAQ,iBAGG;IACnC;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,YAAY,CAAC,OAAO,GAAG,SAAS,CAAC,CAGrF;CACF;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,YAAY,CAAC;IACpC;;;OAGG;IACH,UAAiB,OAAO;QACtB,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,KAAK,UAAU,CAAC,GAAG,SAAS,CAAA;KAC5E;CACF;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE;IAChC;;;OAGG;IACH,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAClH;;;OAGG;IACH,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACN,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC5B,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,UAAU,GAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CAQvB,CAAA"}
|
|
@@ -1,19 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
2
4
|
import * as Effect from "effect/Effect";
|
|
3
5
|
import { dual } from "effect/Function";
|
|
6
|
+
import * as ServiceMap from "effect/ServiceMap";
|
|
4
7
|
/**
|
|
5
8
|
* @since 1.0.0
|
|
6
|
-
* @category
|
|
9
|
+
* @category services
|
|
7
10
|
*/
|
|
8
|
-
export class OpenAiConfig extends /*#__PURE__*/
|
|
11
|
+
export class OpenAiConfig extends /*#__PURE__*/ServiceMap.Service()("@effect/ai-openai/OpenAiConfig") {
|
|
9
12
|
/**
|
|
10
13
|
* @since 1.0.0
|
|
11
14
|
*/
|
|
12
|
-
static getOrUndefined = /*#__PURE__*/Effect.map(/*#__PURE__*/Effect.
|
|
15
|
+
static getOrUndefined = /*#__PURE__*/Effect.map(/*#__PURE__*/Effect.services(), context => context.mapUnsafe.get(OpenAiConfig.key));
|
|
13
16
|
}
|
|
14
17
|
/**
|
|
15
18
|
* @since 1.0.0
|
|
16
|
-
* @category
|
|
19
|
+
* @category configuration
|
|
17
20
|
*/
|
|
18
21
|
export const withClientTransform = /*#__PURE__*/dual(2, (self, transformClient) => Effect.flatMap(OpenAiConfig.getOrUndefined, config => Effect.provideService(self, OpenAiConfig, {
|
|
19
22
|
...config,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenAiConfig.js","names":["Effect","dual","ServiceMap","OpenAiConfig","Service","getOrUndefined","map","services","context","mapUnsafe","get","key","withClientTransform","self","transformClient","flatMap","config","provideService"],"sources":["../src/OpenAiConfig.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,SAASC,IAAI,QAAQ,iBAAiB;AACtC,OAAO,KAAKC,UAAU,MAAM,mBAAmB;AAG/C;;;;AAIA,OAAM,MAAOC,YAAa,sBAAQD,UAAU,CAACE,OAAO,EAGjD,CAAC,gCAAgC,CAAC;EACnC;;;EAGA,OAAgBC,cAAc,gBAA2DL,MAAM,CAACM,GAAG,cACjGN,MAAM,CAACO,QAAQ,EAAS,EACvBC,OAAO,IAAKA,OAAO,CAACC,SAAS,CAACC,GAAG,CAACP,YAAY,CAACQ,GAAG,CAAC,CACrD;;AAgBH;;;;AAIA,OAAO,MAAMC,mBAAmB,gBAc5BX,IAAI,CAAC,CAAC,EAAE,CACVY,IAA4B,EAC5BC,eAAmD,KAEnDd,MAAM,CAACe,OAAO,CACZZ,YAAY,CAACE,cAAc,EAC1BW,MAAM,IAAKhB,MAAM,CAACiB,cAAc,CAACJ,IAAI,EAAEV,YAAY,EAAE;EAAE,GAAGa,MAAM;EAAEF;AAAe,CAAE,CAAC,CACtF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAI error metadata augmentation.
|
|
3
|
+
*
|
|
4
|
+
* Provides OpenAI-specific metadata fields for AI error types through module
|
|
5
|
+
* augmentation, enabling typed access to OpenAI error details.
|
|
6
|
+
*
|
|
7
|
+
* @since 1.0.0
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* OpenAI-specific error metadata fields.
|
|
11
|
+
*
|
|
12
|
+
* @since 1.0.0
|
|
13
|
+
* @category models
|
|
14
|
+
*/
|
|
15
|
+
export type OpenAiErrorMetadata = {
|
|
16
|
+
/**
|
|
17
|
+
* The OpenAI error code returned by the API.
|
|
18
|
+
*/
|
|
19
|
+
readonly errorCode: string | null;
|
|
20
|
+
/**
|
|
21
|
+
* The OpenAI error type returned by the API.
|
|
22
|
+
*/
|
|
23
|
+
readonly errorType: string | null;
|
|
24
|
+
/**
|
|
25
|
+
* The unique request ID for debugging with OpenAI support.
|
|
26
|
+
*/
|
|
27
|
+
readonly requestId: string | null;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* OpenAI-specific rate limit metadata fields.
|
|
31
|
+
*
|
|
32
|
+
* Extends base error metadata with rate limit specific information from
|
|
33
|
+
* OpenAI's rate limit headers.
|
|
34
|
+
*
|
|
35
|
+
* @since 1.0.0
|
|
36
|
+
* @category models
|
|
37
|
+
*/
|
|
38
|
+
export type OpenAiRateLimitMetadata = OpenAiErrorMetadata & {
|
|
39
|
+
/**
|
|
40
|
+
* The rate limit type (e.g. "requests", "tokens").
|
|
41
|
+
*/
|
|
42
|
+
readonly limit: string | null;
|
|
43
|
+
/**
|
|
44
|
+
* Number of remaining requests in the current window.
|
|
45
|
+
*/
|
|
46
|
+
readonly remaining: number | null;
|
|
47
|
+
/**
|
|
48
|
+
* Time until the request rate limit resets.
|
|
49
|
+
*/
|
|
50
|
+
readonly resetRequests: string | null;
|
|
51
|
+
/**
|
|
52
|
+
* Time until the token rate limit resets.
|
|
53
|
+
*/
|
|
54
|
+
readonly resetTokens: string | null;
|
|
55
|
+
};
|
|
56
|
+
declare module "effect/unstable/ai/AiError" {
|
|
57
|
+
interface RateLimitError {
|
|
58
|
+
readonly metadata: {
|
|
59
|
+
readonly openai?: OpenAiRateLimitMetadata | null;
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
interface QuotaExhaustedError {
|
|
63
|
+
readonly metadata: {
|
|
64
|
+
readonly openai?: OpenAiErrorMetadata | null;
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
interface AuthenticationError {
|
|
68
|
+
readonly metadata: {
|
|
69
|
+
readonly openai?: OpenAiErrorMetadata | null;
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
interface ContentPolicyError {
|
|
73
|
+
readonly metadata: {
|
|
74
|
+
readonly openai?: OpenAiErrorMetadata | null;
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
interface InvalidRequestError {
|
|
78
|
+
readonly metadata: {
|
|
79
|
+
readonly openai?: OpenAiErrorMetadata | null;
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
interface InternalProviderError {
|
|
83
|
+
readonly metadata: {
|
|
84
|
+
readonly openai?: OpenAiErrorMetadata | null;
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
interface InvalidOutputError {
|
|
88
|
+
readonly metadata: {
|
|
89
|
+
readonly openai?: OpenAiErrorMetadata | null;
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
interface UnknownError {
|
|
93
|
+
readonly metadata: {
|
|
94
|
+
readonly openai?: OpenAiErrorMetadata | null;
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=OpenAiError.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenAiError.d.ts","sourceRoot":"","sources":["../src/OpenAiError.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAClC,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,uBAAuB,GAAG,mBAAmB,GAAG;IAC1D;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IACrC;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CACpC,CAAA;AAED,OAAO,QAAQ,4BAA4B,CAAC;IAC1C,UAAiB,cAAc;QAC7B,QAAQ,CAAC,QAAQ,EAAE;YACjB,QAAQ,CAAC,MAAM,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAA;SACjD,CAAA;KACF;IAED,UAAiB,mBAAmB;QAClC,QAAQ,CAAC,QAAQ,EAAE;YACjB,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAA;SAC7C,CAAA;KACF;IAED,UAAiB,mBAAmB;QAClC,QAAQ,CAAC,QAAQ,EAAE;YACjB,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAA;SAC7C,CAAA;KACF;IAED,UAAiB,kBAAkB;QACjC,QAAQ,CAAC,QAAQ,EAAE;YACjB,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAA;SAC7C,CAAA;KACF;IAED,UAAiB,mBAAmB;QAClC,QAAQ,CAAC,QAAQ,EAAE;YACjB,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAA;SAC7C,CAAA;KACF;IAED,UAAiB,qBAAqB;QACpC,QAAQ,CAAC,QAAQ,EAAE;YACjB,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAA;SAC7C,CAAA;KACF;IAED,UAAiB,kBAAkB;QACjC,QAAQ,CAAC,QAAQ,EAAE;YACjB,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAA;SAC7C,CAAA;KACF;IAED,UAAiB,YAAY;QAC3B,QAAQ,CAAC,QAAQ,EAAE;YACjB,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAA;SAC7C,CAAA;KACF;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenAI error metadata augmentation.
|
|
3
|
+
*
|
|
4
|
+
* Provides OpenAI-specific metadata fields for AI error types through module
|
|
5
|
+
* augmentation, enabling typed access to OpenAI error details.
|
|
6
|
+
*
|
|
7
|
+
* @since 1.0.0
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=OpenAiError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenAiError.js","names":[],"sources":["../src/OpenAiError.ts"],"sourcesContent":[null],"mappings":"AAAA","ignoreList":[]}
|