@effect/ai-openai 4.0.0-beta.7 → 4.0.0-beta.71

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 (58) hide show
  1. package/dist/Generated.d.ts +66734 -37723
  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 +167 -27
  6. package/dist/OpenAiClient.d.ts.map +1 -1
  7. package/dist/OpenAiClient.js +337 -44
  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 +114 -10
  14. package/dist/OpenAiConfig.d.ts.map +1 -1
  15. package/dist/OpenAiConfig.js +68 -7
  16. package/dist/OpenAiConfig.js.map +1 -1
  17. package/dist/OpenAiEmbeddingModel.d.ts +213 -0
  18. package/dist/OpenAiEmbeddingModel.d.ts.map +1 -0
  19. package/dist/OpenAiEmbeddingModel.js +219 -0
  20. package/dist/OpenAiEmbeddingModel.js.map +1 -0
  21. package/dist/OpenAiError.d.ts +168 -35
  22. package/dist/OpenAiError.d.ts.map +1 -1
  23. package/dist/OpenAiError.js +1 -1
  24. package/dist/OpenAiLanguageModel.d.ts +384 -62
  25. package/dist/OpenAiLanguageModel.d.ts.map +1 -1
  26. package/dist/OpenAiLanguageModel.js +416 -166
  27. package/dist/OpenAiLanguageModel.js.map +1 -1
  28. package/dist/OpenAiSchema.d.ts +2298 -0
  29. package/dist/OpenAiSchema.d.ts.map +1 -0
  30. package/dist/OpenAiSchema.js +814 -0
  31. package/dist/OpenAiSchema.js.map +1 -0
  32. package/dist/OpenAiTelemetry.d.ts +59 -18
  33. package/dist/OpenAiTelemetry.d.ts.map +1 -1
  34. package/dist/OpenAiTelemetry.js +35 -8
  35. package/dist/OpenAiTelemetry.js.map +1 -1
  36. package/dist/OpenAiTool.d.ts +157 -62
  37. package/dist/OpenAiTool.d.ts.map +1 -1
  38. package/dist/OpenAiTool.js +134 -39
  39. package/dist/OpenAiTool.js.map +1 -1
  40. package/dist/index.d.ts +19 -33
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +19 -33
  43. package/dist/index.js.map +1 -1
  44. package/dist/internal/errors.js +4 -4
  45. package/dist/internal/errors.js.map +1 -1
  46. package/package.json +3 -3
  47. package/src/Generated.ts +9858 -5044
  48. package/src/OpenAiClient.ts +513 -95
  49. package/src/OpenAiClientGenerated.ts +202 -0
  50. package/src/OpenAiConfig.ts +115 -11
  51. package/src/OpenAiEmbeddingModel.ts +357 -0
  52. package/src/OpenAiError.ts +170 -35
  53. package/src/OpenAiLanguageModel.ts +802 -167
  54. package/src/OpenAiSchema.ts +1289 -0
  55. package/src/OpenAiTelemetry.ts +81 -23
  56. package/src/OpenAiTool.ts +135 -40
  57. package/src/index.ts +22 -33
  58. package/src/internal/errors.ts +6 -4
@@ -0,0 +1,219 @@
1
+ /**
2
+ * The `OpenAiEmbeddingModel` module provides the OpenAI implementation of
3
+ * Effect AI's `EmbeddingModel` service. It adapts the OpenAI embeddings
4
+ * endpoint into Effect AI's batch embedding interface, preserving input order
5
+ * and returning numeric vectors for each requested input.
6
+ *
7
+ * **Mental model**
8
+ *
9
+ * `OpenAiClient` owns transport, authentication, and provider request
10
+ * execution. This module owns embedding-specific configuration, response
11
+ * validation, and the `EmbeddingModel.EmbeddingModel` layer. Use {@link model}
12
+ * when you want an `AiModel` descriptor that also provides the configured
13
+ * embedding dimensions, or {@link layer} / {@link make} when the dimensions are
14
+ * managed separately.
15
+ *
16
+ * **Common tasks**
17
+ *
18
+ * - Provide an OpenAI-backed `EmbeddingModel.EmbeddingModel` from an existing
19
+ * `OpenAiClient`
20
+ * - Configure the OpenAI embedding model id, dimensions, encoding format, and
21
+ * other create-embedding request fields
22
+ * - Scope per-request defaults with {@link Config} and
23
+ * {@link withConfigOverride}
24
+ *
25
+ * **Gotchas**
26
+ *
27
+ * - The service expects OpenAI to return floating-point embedding arrays.
28
+ * Requesting base64 embeddings causes an `InvalidOutputError`.
29
+ * - Provider results are checked for missing, duplicate, or out-of-range
30
+ * indexes before they are exposed as Effect AI embedding results.
31
+ *
32
+ * @since 4.0.0
33
+ */
34
+ import * as Context from "effect/Context";
35
+ import * as Effect from "effect/Effect";
36
+ import { dual } from "effect/Function";
37
+ import * as Layer from "effect/Layer";
38
+ import * as AiError from "effect/unstable/ai/AiError";
39
+ import * as EmbeddingModel from "effect/unstable/ai/EmbeddingModel";
40
+ import * as AiModel from "effect/unstable/ai/Model";
41
+ import { OpenAiClient } from "./OpenAiClient.js";
42
+ /**
43
+ * Service definition for OpenAI embedding model configuration.
44
+ *
45
+ * **When to use**
46
+ *
47
+ * Use when embedding requests need scoped OpenAI request defaults or overrides
48
+ * from Effect context.
49
+ *
50
+ * **Details**
51
+ *
52
+ * The service stores the OpenAI create-embedding request payload without
53
+ * `input`, carrying options such as `model`, `dimensions`, `encoding_format`,
54
+ * and `user`.
55
+ *
56
+ * @see {@link withConfigOverride} for scoping embedding request overrides
57
+ *
58
+ * @category services
59
+ * @since 4.0.0
60
+ */
61
+ export class Config extends /*#__PURE__*/Context.Service()("@effect/ai-openai/OpenAiEmbeddingModel/Config") {}
62
+ /**
63
+ * Creates an `AiModel` for an OpenAI embedding model with its configured vector dimensions.
64
+ *
65
+ * **When to use**
66
+ *
67
+ * Use to provide an OpenAI `EmbeddingModel` and its `Dimensions` service to an
68
+ * Effect program.
69
+ *
70
+ * @see {@link layer} for providing only the embedding model service
71
+ * @see {@link withConfigOverride} for scoped request configuration overrides
72
+ *
73
+ * @category constructors
74
+ * @since 4.0.0
75
+ */
76
+ export const model = (model, options) => AiModel.make("openai", model, Layer.merge(layer({
77
+ model,
78
+ config: {
79
+ ...options.config,
80
+ dimensions: options.dimensions
81
+ }
82
+ }), Layer.succeed(EmbeddingModel.Dimensions, options.dimensions)));
83
+ /**
84
+ * Creates an OpenAI embedding model service.
85
+ *
86
+ * **When to use**
87
+ *
88
+ * Use to construct the `EmbeddingModel.Service` effectfully when
89
+ * `OpenAiClient` is already available in the environment or when the service
90
+ * value is needed directly.
91
+ *
92
+ * **Details**
93
+ *
94
+ * The `model` option is sent with each embedding request. Constructor `config`
95
+ * supplies create-embedding request fields other than `model` and `input`, and
96
+ * scoped overrides from `withConfigOverride` are merged last for each request.
97
+ *
98
+ * **Gotchas**
99
+ *
100
+ * The service expects numeric embedding vectors. It fails with
101
+ * `InvalidOutputError` when the provider returns base64 embeddings,
102
+ * out-of-range indexes, duplicate indexes, or an unexpected number of
103
+ * embeddings.
104
+ *
105
+ * @see {@link layer} for providing the embedding model service as a layer
106
+ * @see {@link model} for creating an `AiModel` that also provides dimensions
107
+ * @see {@link withConfigOverride} for scoped request configuration overrides
108
+ *
109
+ * @category constructors
110
+ * @since 4.0.0
111
+ */
112
+ export const make = /*#__PURE__*/Effect.fnUntraced(function* ({
113
+ model,
114
+ config: providerConfig
115
+ }) {
116
+ const client = yield* OpenAiClient;
117
+ const makeConfig = Effect.gen(function* () {
118
+ const services = yield* Effect.context();
119
+ return {
120
+ model,
121
+ ...providerConfig,
122
+ ...services.mapUnsafe.get(Config.key)
123
+ };
124
+ });
125
+ return yield* EmbeddingModel.make({
126
+ embedMany: Effect.fnUntraced(function* ({
127
+ inputs
128
+ }) {
129
+ const config = yield* makeConfig;
130
+ const response = yield* client.createEmbedding({
131
+ ...config,
132
+ input: inputs
133
+ });
134
+ return yield* mapProviderResponse(inputs.length, response);
135
+ })
136
+ });
137
+ });
138
+ /**
139
+ * Creates a layer for the OpenAI embedding model.
140
+ *
141
+ * **When to use**
142
+ *
143
+ * Use when composing application layers and you want OpenAI to satisfy
144
+ * `EmbeddingModel.EmbeddingModel` while supplying `OpenAiClient` from another
145
+ * layer.
146
+ *
147
+ * **Gotchas**
148
+ *
149
+ * Use the default floating-point embedding format. The service expects numeric
150
+ * vectors and fails with `InvalidOutputError` if OpenAI returns base64
151
+ * embeddings.
152
+ *
153
+ * @see {@link make} for constructing the embedding model service effectfully
154
+ * @see {@link model} for creating an `AiModel` that also provides embedding dimensions
155
+ *
156
+ * @category layers
157
+ * @since 4.0.0
158
+ */
159
+ export const layer = options => Layer.effect(EmbeddingModel.EmbeddingModel, make(options));
160
+ /**
161
+ * Provides config overrides for OpenAI embedding model operations.
162
+ *
163
+ * **When to use**
164
+ *
165
+ * Use when a single effect or workflow needs scoped OpenAI embedding request
166
+ * defaults without rebuilding the embedding model service.
167
+ *
168
+ * **Details**
169
+ *
170
+ * Supports both data-first and data-last forms. Existing scoped config is read
171
+ * first, then the provided overrides are applied so override fields take
172
+ * precedence.
173
+ *
174
+ * @see {@link Config} for the scoped embedding request configuration service
175
+ *
176
+ * @category configuration
177
+ * @since 4.0.0
178
+ */
179
+ export const withConfigOverride = /*#__PURE__*/dual(2, (self, overrides) => Effect.flatMap(Effect.serviceOption(Config), config => Effect.provideService(self, Config, {
180
+ ...(config._tag === "Some" ? config.value : {}),
181
+ ...overrides
182
+ })));
183
+ const mapProviderResponse = (inputLength, response) => {
184
+ if (response.data.length !== inputLength) {
185
+ return Effect.fail(invalidOutput("Provider returned " + response.data.length + " embeddings but expected " + inputLength));
186
+ }
187
+ const results = new Array(inputLength);
188
+ const seen = new Set();
189
+ for (const entry of response.data) {
190
+ if (!Number.isInteger(entry.index) || entry.index < 0 || entry.index >= inputLength) {
191
+ return Effect.fail(invalidOutput("Provider returned invalid embedding index: " + entry.index));
192
+ }
193
+ if (seen.has(entry.index)) {
194
+ return Effect.fail(invalidOutput("Provider returned duplicate embedding index: " + entry.index));
195
+ }
196
+ if (!Array.isArray(entry.embedding)) {
197
+ return Effect.fail(invalidOutput("Provider returned non-vector embedding at index " + entry.index));
198
+ }
199
+ seen.add(entry.index);
200
+ results[entry.index] = [...entry.embedding];
201
+ }
202
+ if (seen.size !== inputLength) {
203
+ return Effect.fail(invalidOutput("Provider returned embeddings for " + seen.size + " inputs but expected " + inputLength));
204
+ }
205
+ return Effect.succeed({
206
+ results,
207
+ usage: {
208
+ inputTokens: response.usage?.prompt_tokens
209
+ }
210
+ });
211
+ };
212
+ const invalidOutput = description => AiError.make({
213
+ module: "OpenAiEmbeddingModel",
214
+ method: "embedMany",
215
+ reason: new AiError.InvalidOutputError({
216
+ description
217
+ })
218
+ });
219
+ //# sourceMappingURL=OpenAiEmbeddingModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenAiEmbeddingModel.js","names":["Context","Effect","dual","Layer","AiError","EmbeddingModel","AiModel","OpenAiClient","Config","Service","model","options","make","merge","layer","config","dimensions","succeed","Dimensions","fnUntraced","providerConfig","client","makeConfig","gen","services","context","mapUnsafe","get","key","embedMany","inputs","response","createEmbedding","input","mapProviderResponse","length","effect","withConfigOverride","self","overrides","flatMap","serviceOption","provideService","_tag","value","inputLength","data","fail","invalidOutput","results","Array","seen","Set","entry","Number","isInteger","index","has","isArray","embedding","add","size","usage","inputTokens","prompt_tokens","description","module","method","reason","InvalidOutputError"],"sources":["../src/OpenAiEmbeddingModel.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -4,13 +4,13 @@
4
4
  * Provides OpenAI-specific metadata fields for AI error types through module
5
5
  * augmentation, enabling typed access to OpenAI error details.
6
6
  *
7
- * @since 1.0.0
7
+ * @since 4.0.0
8
8
  */
9
9
  /**
10
10
  * OpenAI-specific error metadata fields.
11
11
  *
12
- * @since 1.0.0
13
12
  * @category models
13
+ * @since 4.0.0
14
14
  */
15
15
  export type OpenAiErrorMetadata = {
16
16
  /**
@@ -29,11 +29,13 @@ export type OpenAiErrorMetadata = {
29
29
  /**
30
30
  * OpenAI-specific rate limit metadata fields.
31
31
  *
32
+ * **Details**
33
+ *
32
34
  * Extends base error metadata with rate limit specific information from
33
35
  * OpenAI's rate limit headers.
34
36
  *
35
- * @since 1.0.0
36
37
  * @category models
38
+ * @since 4.0.0
37
39
  */
38
40
  export type OpenAiRateLimitMetadata = OpenAiErrorMetadata & {
39
41
  /**
@@ -54,45 +56,176 @@ export type OpenAiRateLimitMetadata = OpenAiErrorMetadata & {
54
56
  readonly resetTokens: string | null;
55
57
  };
56
58
  declare module "effect/unstable/ai/AiError" {
57
- interface RateLimitError {
58
- readonly metadata: {
59
- readonly openai?: OpenAiRateLimitMetadata | null;
60
- };
59
+ /**
60
+ * OpenAI metadata attached to `RateLimitError` values.
61
+ *
62
+ * **Details**
63
+ *
64
+ * Captures OpenAI error details together with rate limit header information
65
+ * from responses where the provider rejected the request because a limit was
66
+ * reached.
67
+ *
68
+ * @category configuration
69
+ * @since 4.0.0
70
+ */
71
+ interface RateLimitErrorMetadata {
72
+ /**
73
+ * OpenAI-specific details for the rate limit response.
74
+ */
75
+ readonly openai?: OpenAiRateLimitMetadata | null;
61
76
  }
62
- interface QuotaExhaustedError {
63
- readonly metadata: {
64
- readonly openai?: OpenAiErrorMetadata | null;
65
- };
77
+ /**
78
+ * OpenAI metadata attached to `QuotaExhaustedError` values.
79
+ *
80
+ * **Details**
81
+ *
82
+ * Preserves provider error details for failures caused by exhausted account,
83
+ * billing, or usage quota.
84
+ *
85
+ * @category configuration
86
+ * @since 4.0.0
87
+ */
88
+ interface QuotaExhaustedErrorMetadata {
89
+ /**
90
+ * OpenAI-specific details for the quota exhaustion response.
91
+ */
92
+ readonly openai?: OpenAiErrorMetadata | null;
66
93
  }
67
- interface AuthenticationError {
68
- readonly metadata: {
69
- readonly openai?: OpenAiErrorMetadata | null;
70
- };
94
+ /**
95
+ * OpenAI metadata attached to `AuthenticationError` values.
96
+ *
97
+ * **Details**
98
+ *
99
+ * Preserves provider error details for failed API key, authorization, or
100
+ * permission checks.
101
+ *
102
+ * @category configuration
103
+ * @since 4.0.0
104
+ */
105
+ interface AuthenticationErrorMetadata {
106
+ /**
107
+ * OpenAI-specific details for the authentication failure.
108
+ */
109
+ readonly openai?: OpenAiErrorMetadata | null;
71
110
  }
72
- interface ContentPolicyError {
73
- readonly metadata: {
74
- readonly openai?: OpenAiErrorMetadata | null;
75
- };
111
+ /**
112
+ * OpenAI metadata attached to `ContentPolicyError` values.
113
+ *
114
+ * **Details**
115
+ *
116
+ * Preserves provider error details when OpenAI rejects input or output because
117
+ * it violates a content policy.
118
+ *
119
+ * @category configuration
120
+ * @since 4.0.0
121
+ */
122
+ interface ContentPolicyErrorMetadata {
123
+ /**
124
+ * OpenAI-specific details for the content policy response.
125
+ */
126
+ readonly openai?: OpenAiErrorMetadata | null;
76
127
  }
77
- interface InvalidRequestError {
78
- readonly metadata: {
79
- readonly openai?: OpenAiErrorMetadata | null;
80
- };
128
+ /**
129
+ * OpenAI metadata attached to `InvalidRequestError` values.
130
+ *
131
+ * **Details**
132
+ *
133
+ * Preserves provider error details for malformed requests, unsupported
134
+ * parameters, or other request validation failures reported by OpenAI.
135
+ *
136
+ * @category configuration
137
+ * @since 4.0.0
138
+ */
139
+ interface InvalidRequestErrorMetadata {
140
+ /**
141
+ * OpenAI-specific details for the invalid request response.
142
+ */
143
+ readonly openai?: OpenAiErrorMetadata | null;
81
144
  }
82
- interface InternalProviderError {
83
- readonly metadata: {
84
- readonly openai?: OpenAiErrorMetadata | null;
85
- };
145
+ /**
146
+ * OpenAI metadata attached to `InternalProviderError` values.
147
+ *
148
+ * **Details**
149
+ *
150
+ * Preserves provider error details for OpenAI-side failures such as transient
151
+ * server errors.
152
+ *
153
+ * @category configuration
154
+ * @since 4.0.0
155
+ */
156
+ interface InternalProviderErrorMetadata {
157
+ /**
158
+ * OpenAI-specific details for the internal provider response.
159
+ */
160
+ readonly openai?: OpenAiErrorMetadata | null;
161
+ }
162
+ /**
163
+ * OpenAI metadata attached to `InvalidOutputError` values.
164
+ *
165
+ * **Details**
166
+ *
167
+ * Preserves provider error details when an OpenAI response cannot be parsed or
168
+ * validated as the expected output.
169
+ *
170
+ * @category configuration
171
+ * @since 4.0.0
172
+ */
173
+ interface InvalidOutputErrorMetadata {
174
+ /**
175
+ * OpenAI-specific details for the invalid output response.
176
+ */
177
+ readonly openai?: OpenAiErrorMetadata | null;
86
178
  }
87
- interface InvalidOutputError {
88
- readonly metadata: {
89
- readonly openai?: OpenAiErrorMetadata | null;
90
- };
179
+ /**
180
+ * OpenAI metadata attached to `StructuredOutputError` values.
181
+ *
182
+ * **Details**
183
+ *
184
+ * Preserves provider error details when OpenAI returns content that does not
185
+ * satisfy the requested structured output schema.
186
+ *
187
+ * @category configuration
188
+ * @since 4.0.0
189
+ */
190
+ interface StructuredOutputErrorMetadata {
191
+ /**
192
+ * OpenAI-specific details for the structured output failure.
193
+ */
194
+ readonly openai?: OpenAiErrorMetadata | null;
91
195
  }
92
- interface UnknownError {
93
- readonly metadata: {
94
- readonly openai?: OpenAiErrorMetadata | null;
95
- };
196
+ /**
197
+ * OpenAI metadata attached to `UnsupportedSchemaError` values.
198
+ *
199
+ * **Details**
200
+ *
201
+ * Preserves provider error details when an unsupported schema failure is
202
+ * associated with an OpenAI response.
203
+ *
204
+ * @category configuration
205
+ * @since 4.0.0
206
+ */
207
+ interface UnsupportedSchemaErrorMetadata {
208
+ /**
209
+ * OpenAI-specific details for the unsupported schema failure.
210
+ */
211
+ readonly openai?: OpenAiErrorMetadata | null;
212
+ }
213
+ /**
214
+ * OpenAI metadata attached to `UnknownError` values.
215
+ *
216
+ * **Details**
217
+ *
218
+ * Preserves provider error details for OpenAI failures that do not map cleanly
219
+ * to a more specific AI error category.
220
+ *
221
+ * @category configuration
222
+ * @since 4.0.0
223
+ */
224
+ interface UnknownErrorMetadata {
225
+ /**
226
+ * OpenAI-specific details for the unclassified provider failure.
227
+ */
228
+ readonly openai?: OpenAiErrorMetadata | null;
96
229
  }
97
230
  }
98
231
  //# sourceMappingURL=OpenAiError.d.ts.map
@@ -1 +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"}
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;;;;;;;;;;GAUG;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;;;;;;;;;;;OAWG;IACH,UAAiB,sBAAsB;QACrC;;WAEG;QACH,QAAQ,CAAC,MAAM,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAA;KACjD;IAED;;;;;;;;;;OAUG;IACH,UAAiB,2BAA2B;QAC1C;;WAEG;QACH,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAA;KAC7C;IAED;;;;;;;;;;OAUG;IACH,UAAiB,2BAA2B;QAC1C;;WAEG;QACH,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAA;KAC7C;IAED;;;;;;;;;;OAUG;IACH,UAAiB,0BAA0B;QACzC;;WAEG;QACH,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAA;KAC7C;IAED;;;;;;;;;;OAUG;IACH,UAAiB,2BAA2B;QAC1C;;WAEG;QACH,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAA;KAC7C;IAED;;;;;;;;;;OAUG;IACH,UAAiB,6BAA6B;QAC5C;;WAEG;QACH,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAA;KAC7C;IAED;;;;;;;;;;OAUG;IACH,UAAiB,0BAA0B;QACzC;;WAEG;QACH,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAA;KAC7C;IAED;;;;;;;;;;OAUG;IACH,UAAiB,6BAA6B;QAC5C;;WAEG;QACH,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAA;KAC7C;IAED;;;;;;;;;;OAUG;IACH,UAAiB,8BAA8B;QAC7C;;WAEG;QACH,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAA;KAC7C;IAED;;;;;;;;;;OAUG;IACH,UAAiB,oBAAoB;QACnC;;WAEG;QACH,QAAQ,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAA;KAC7C;CACF"}
@@ -4,7 +4,7 @@
4
4
  * Provides OpenAI-specific metadata fields for AI error types through module
5
5
  * augmentation, enabling typed access to OpenAI error details.
6
6
  *
7
- * @since 1.0.0
7
+ * @since 4.0.0
8
8
  */
9
9
  export {};
10
10
  //# sourceMappingURL=OpenAiError.js.map