@effect/ai-openai-compat 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.
Files changed (42) hide show
  1. package/LICENSE +21 -0
  2. package/dist/OpenAiClient.d.ts +739 -0
  3. package/dist/OpenAiClient.d.ts.map +1 -0
  4. package/dist/OpenAiClient.js +170 -0
  5. package/dist/OpenAiClient.js.map +1 -0
  6. package/dist/OpenAiConfig.d.ts +47 -0
  7. package/dist/OpenAiConfig.d.ts.map +1 -0
  8. package/dist/OpenAiConfig.js +25 -0
  9. package/dist/OpenAiConfig.js.map +1 -0
  10. package/dist/OpenAiError.d.ts +93 -0
  11. package/dist/OpenAiError.d.ts.map +1 -0
  12. package/dist/OpenAiError.js +5 -0
  13. package/dist/OpenAiError.js.map +1 -0
  14. package/dist/OpenAiLanguageModel.d.ts +285 -0
  15. package/dist/OpenAiLanguageModel.d.ts.map +1 -0
  16. package/dist/OpenAiLanguageModel.js +1223 -0
  17. package/dist/OpenAiLanguageModel.js.map +1 -0
  18. package/dist/OpenAiTelemetry.d.ts +120 -0
  19. package/dist/OpenAiTelemetry.d.ts.map +1 -0
  20. package/dist/OpenAiTelemetry.js +35 -0
  21. package/dist/OpenAiTelemetry.js.map +1 -0
  22. package/dist/index.d.ts +35 -0
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/index.js +36 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/internal/errors.d.ts +2 -0
  27. package/dist/internal/errors.d.ts.map +1 -0
  28. package/dist/internal/errors.js +286 -0
  29. package/dist/internal/errors.js.map +1 -0
  30. package/dist/internal/utilities.d.ts +2 -0
  31. package/dist/internal/utilities.d.ts.map +1 -0
  32. package/dist/internal/utilities.js +25 -0
  33. package/dist/internal/utilities.js.map +1 -0
  34. package/package.json +62 -0
  35. package/src/OpenAiClient.ts +998 -0
  36. package/src/OpenAiConfig.ts +64 -0
  37. package/src/OpenAiError.ts +102 -0
  38. package/src/OpenAiLanguageModel.ts +1638 -0
  39. package/src/OpenAiTelemetry.ts +159 -0
  40. package/src/index.ts +41 -0
  41. package/src/internal/errors.ts +327 -0
  42. package/src/internal/utilities.ts +33 -0
@@ -0,0 +1,285 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as Layer from "effect/Layer";
3
+ import * as ServiceMap from "effect/ServiceMap";
4
+ import * as LanguageModel from "effect/unstable/ai/LanguageModel";
5
+ import * as AiModel from "effect/unstable/ai/Model";
6
+ import { type Annotation, type IncludeEnum, type MessageStatus, OpenAiClient } from "./OpenAiClient.ts";
7
+ /**
8
+ * Image detail level for vision requests.
9
+ */
10
+ type ImageDetail = "auto" | "low" | "high";
11
+ declare const Config_base: ServiceMap.ServiceClass<Config, "@effect/ai-openai-compat/OpenAiLanguageModel/Config", {
12
+ readonly metadata?: Readonly<Record<string, string>> | null | undefined;
13
+ readonly service_tier?: string | undefined | undefined;
14
+ readonly model?: string | undefined | undefined;
15
+ readonly temperature?: number | null | undefined | undefined;
16
+ readonly top_p?: number | null | undefined | undefined;
17
+ readonly user?: string | null | undefined | undefined;
18
+ readonly seed?: number | undefined | undefined;
19
+ readonly parallel_tool_calls?: boolean | null | undefined | undefined;
20
+ readonly reasoning?: unknown;
21
+ readonly max_output_tokens?: number | null | undefined | undefined;
22
+ readonly top_logprobs?: number | undefined | undefined;
23
+ readonly safety_identifier?: string | null | undefined | undefined;
24
+ readonly prompt_cache_key?: string | null | undefined | undefined;
25
+ readonly prompt_cache_retention?: "in-memory" | "24h" | null | undefined | undefined;
26
+ readonly previous_response_id?: string | null | undefined | undefined;
27
+ readonly background?: boolean | null | undefined | undefined;
28
+ readonly max_tool_calls?: number | null | undefined | undefined;
29
+ readonly truncation?: "auto" | "disabled" | null | undefined | undefined;
30
+ readonly include?: readonly IncludeEnum[] | null | undefined;
31
+ readonly store?: boolean | null | undefined | undefined;
32
+ readonly instructions?: string | null | undefined | undefined;
33
+ readonly conversation?: string | null | undefined | undefined;
34
+ readonly modalities?: readonly ("text" | "audio")[] | undefined;
35
+ readonly fileIdPrefixes?: readonly string[] | undefined;
36
+ readonly text?: {
37
+ /**
38
+ * Constrains the verbosity of the model's response. Lower values will
39
+ * result in more concise responses, while higher values will result in
40
+ * more verbose responses.
41
+ *
42
+ * Defaults to `"medium"`.
43
+ */
44
+ readonly verbosity?: "low" | "medium" | "high" | undefined;
45
+ } | undefined
46
+ /**
47
+ * Whether to use strict JSON schema validation.
48
+ *
49
+ * Defaults to `true`.
50
+ */
51
+ | undefined;
52
+ readonly strictJsonSchema?: boolean | undefined | undefined;
53
+ }>;
54
+ /**
55
+ * Service definition for OpenAI language model configuration.
56
+ *
57
+ * @since 1.0.0
58
+ * @category context
59
+ */
60
+ export declare class Config extends Config_base {
61
+ }
62
+ declare module "effect/unstable/ai/Prompt" {
63
+ interface FilePartOptions extends ProviderOptions {
64
+ readonly openai?: {
65
+ /**
66
+ * The detail level of the image to be sent to the model. One of `high`, `low`, or `auto`. Defaults to `auto`.
67
+ */
68
+ readonly imageDetail?: ImageDetail | null;
69
+ } | null;
70
+ }
71
+ interface ReasoningPartOptions extends ProviderOptions {
72
+ readonly openai?: {
73
+ /**
74
+ * The ID of the item to reference.
75
+ */
76
+ readonly itemId?: string | null;
77
+ /**
78
+ * The encrypted content of the reasoning item - populated when a response
79
+ * is generated with `reasoning.encrypted_content` in the `include`
80
+ * parameter.
81
+ */
82
+ readonly encryptedContent?: string | null;
83
+ } | null;
84
+ }
85
+ interface ToolCallPartOptions extends ProviderOptions {
86
+ readonly openai?: {
87
+ /**
88
+ * The ID of the item to reference.
89
+ */
90
+ readonly itemId?: string | null;
91
+ /**
92
+ * The status of item.
93
+ */
94
+ readonly status?: MessageStatus | null;
95
+ } | null;
96
+ }
97
+ interface ToolResultPartOptions extends ProviderOptions {
98
+ readonly openai?: {
99
+ /**
100
+ * The ID of the item to reference.
101
+ */
102
+ readonly itemId?: string | null;
103
+ /**
104
+ * The status of item.
105
+ */
106
+ readonly status?: MessageStatus | null;
107
+ } | null;
108
+ }
109
+ interface TextPartOptions extends ProviderOptions {
110
+ readonly openai?: {
111
+ /**
112
+ * The ID of the item to reference.
113
+ */
114
+ readonly itemId?: string | null;
115
+ /**
116
+ * The status of item.
117
+ */
118
+ readonly status?: MessageStatus | null;
119
+ /**
120
+ * A list of annotations that apply to the output text.
121
+ */
122
+ readonly annotations?: ReadonlyArray<Annotation> | null;
123
+ } | null;
124
+ }
125
+ }
126
+ declare module "effect/unstable/ai/Response" {
127
+ interface TextPartMetadata extends ProviderMetadata {
128
+ readonly openai?: {
129
+ readonly itemId?: string | null;
130
+ /**
131
+ * If the model emits a refusal content part, the refusal explanation
132
+ * from the model will be contained in the metadata of an empty text
133
+ * part.
134
+ */
135
+ readonly refusal?: string | null;
136
+ /**
137
+ * The status of item.
138
+ */
139
+ readonly status?: MessageStatus | null;
140
+ /**
141
+ * The text content part annotations.
142
+ */
143
+ readonly annotations?: ReadonlyArray<Annotation> | null;
144
+ };
145
+ }
146
+ interface TextStartPartMetadata extends ProviderMetadata {
147
+ readonly openai?: {
148
+ readonly itemId?: string | null;
149
+ } | null;
150
+ }
151
+ interface TextEndPartMetadata extends ProviderMetadata {
152
+ readonly openai?: {
153
+ readonly itemId?: string | null;
154
+ readonly annotations?: ReadonlyArray<Annotation> | null;
155
+ } | null;
156
+ }
157
+ interface ReasoningPartMetadata extends ProviderMetadata {
158
+ readonly openai?: {
159
+ readonly itemId?: string | null;
160
+ readonly encryptedContent?: string | null;
161
+ } | null;
162
+ }
163
+ interface ReasoningStartPartMetadata extends ProviderMetadata {
164
+ readonly openai?: {
165
+ readonly itemId?: string | null;
166
+ readonly encryptedContent?: string | null;
167
+ } | null;
168
+ }
169
+ interface ReasoningDeltaPartMetadata extends ProviderMetadata {
170
+ readonly openai?: {
171
+ readonly itemId?: string | null;
172
+ } | null;
173
+ }
174
+ interface ReasoningEndPartMetadata extends ProviderMetadata {
175
+ readonly openai?: {
176
+ readonly itemId?: string | null;
177
+ readonly encryptedContent?: string;
178
+ } | null;
179
+ }
180
+ interface ToolCallPartMetadata extends ProviderMetadata {
181
+ readonly openai?: {
182
+ readonly itemId?: string | null;
183
+ } | null;
184
+ }
185
+ interface DocumentSourcePartMetadata extends ProviderMetadata {
186
+ readonly openai?: {
187
+ readonly type: "file_citation";
188
+ /**
189
+ * The index of the file in the list of files.
190
+ */
191
+ readonly index: number;
192
+ /**
193
+ * The ID of the file.
194
+ */
195
+ readonly fileId: string;
196
+ } | {
197
+ readonly type: "file_path";
198
+ /**
199
+ * The index of the file in the list of files.
200
+ */
201
+ readonly index: number;
202
+ /**
203
+ * The ID of the file.
204
+ */
205
+ readonly fileId: string;
206
+ } | {
207
+ readonly type: "container_file_citation";
208
+ /**
209
+ * The ID of the file.
210
+ */
211
+ readonly fileId: string;
212
+ /**
213
+ * The ID of the container file.
214
+ */
215
+ readonly containerId: string;
216
+ } | null;
217
+ }
218
+ interface UrlSourcePartMetadata extends ProviderMetadata {
219
+ readonly openai?: {
220
+ readonly type: "url_citation";
221
+ /**
222
+ * The index of the first character of the URL citation in the message.
223
+ */
224
+ readonly startIndex: number;
225
+ /**
226
+ * The index of the last character of the URL citation in the message.
227
+ */
228
+ readonly endIndex: number;
229
+ } | null;
230
+ }
231
+ interface FinishPartMetadata extends ProviderMetadata {
232
+ readonly openai?: {
233
+ readonly serviceTier?: "default" | "auto" | "flex" | "scale" | "priority" | null;
234
+ } | null;
235
+ }
236
+ }
237
+ /**
238
+ * @since 1.0.0
239
+ * @category constructors
240
+ */
241
+ export declare const model: (model: string, config?: Omit<typeof Config.Service, "model">) => AiModel.Model<"openai", LanguageModel.LanguageModel, OpenAiClient>;
242
+ /**
243
+ * Creates an OpenAI language model service.
244
+ *
245
+ * @since 1.0.0
246
+ * @category constructors
247
+ */
248
+ export declare const make: (args_0: {
249
+ readonly model: string;
250
+ readonly config?: Omit<typeof Config.Service, "model"> | undefined;
251
+ }) => Effect.Effect<LanguageModel.Service, never, OpenAiClient>;
252
+ /**
253
+ * Creates a layer for the OpenAI language model.
254
+ *
255
+ * @since 1.0.0
256
+ * @category layers
257
+ */
258
+ export declare const layer: (options: {
259
+ readonly model: string;
260
+ readonly config?: Omit<typeof Config.Service, "model"> | undefined;
261
+ }) => Layer.Layer<LanguageModel.LanguageModel, never, OpenAiClient>;
262
+ /**
263
+ * Provides config overrides for OpenAI language model operations.
264
+ *
265
+ * @since 1.0.0
266
+ * @category configuration
267
+ */
268
+ export declare const withConfigOverride: {
269
+ /**
270
+ * Provides config overrides for OpenAI language model operations.
271
+ *
272
+ * @since 1.0.0
273
+ * @category configuration
274
+ */
275
+ (overrides: typeof Config.Service): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, Config>>;
276
+ /**
277
+ * Provides config overrides for OpenAI language model operations.
278
+ *
279
+ * @since 1.0.0
280
+ * @category configuration
281
+ */
282
+ <A, E, R>(self: Effect.Effect<A, E, R>, overrides: typeof Config.Service): Effect.Effect<A, E, Exclude<R, Config>>;
283
+ };
284
+ export {};
285
+ //# sourceMappingURL=OpenAiLanguageModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenAiLanguageModel.d.ts","sourceRoot":"","sources":["../src/OpenAiLanguageModel.ts"],"names":[],"mappings":"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"}