@effect/ai-openai 4.0.0-beta.8 → 4.0.0-beta.81

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 +66675 -37672
  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 +170 -29
  6. package/dist/OpenAiClient.d.ts.map +1 -1
  7. package/dist/OpenAiClient.js +321 -46
  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 +88 -10
  14. package/dist/OpenAiConfig.d.ts.map +1 -1
  15. package/dist/OpenAiConfig.js +42 -7
  16. package/dist/OpenAiConfig.js.map +1 -1
  17. package/dist/OpenAiEmbeddingModel.d.ts +188 -0
  18. package/dist/OpenAiEmbeddingModel.d.ts.map +1 -0
  19. package/dist/OpenAiEmbeddingModel.js +194 -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 +357 -63
  25. package/dist/OpenAiLanguageModel.d.ts.map +1 -1
  26. package/dist/OpenAiLanguageModel.js +390 -168
  27. package/dist/OpenAiLanguageModel.js.map +1 -1
  28. package/dist/OpenAiSchema.d.ts +2325 -0
  29. package/dist/OpenAiSchema.d.ts.map +1 -0
  30. package/dist/OpenAiSchema.js +811 -0
  31. package/dist/OpenAiSchema.js.map +1 -0
  32. package/dist/OpenAiTelemetry.d.ts +63 -22
  33. package/dist/OpenAiTelemetry.d.ts.map +1 -1
  34. package/dist/OpenAiTelemetry.js +20 -10
  35. package/dist/OpenAiTelemetry.js.map +1 -1
  36. package/dist/OpenAiTool.d.ts +148 -62
  37. package/dist/OpenAiTool.d.ts.map +1 -1
  38. package/dist/OpenAiTool.js +125 -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 +9717 -4887
  48. package/src/OpenAiClient.ts +499 -98
  49. package/src/OpenAiClientGenerated.ts +202 -0
  50. package/src/OpenAiConfig.ts +89 -11
  51. package/src/OpenAiEmbeddingModel.ts +332 -0
  52. package/src/OpenAiError.ts +170 -35
  53. package/src/OpenAiLanguageModel.ts +776 -169
  54. package/src/OpenAiSchema.ts +1286 -0
  55. package/src/OpenAiTelemetry.ts +69 -28
  56. package/src/OpenAiTool.ts +126 -40
  57. package/src/index.ts +22 -33
  58. package/src/internal/errors.ts +6 -4
@@ -0,0 +1,194 @@
1
+ /**
2
+ * The `OpenAiEmbeddingModel` module provides the OpenAI implementation of
3
+ * Effect AI's `EmbeddingModel` service. It sends embedding requests through
4
+ * `OpenAiClient`, exposes constructors for layers and `AiModel` values,
5
+ * supports scoped request configuration overrides, and checks that OpenAI
6
+ * returns one numeric vector for each requested input.
7
+ *
8
+ * @since 4.0.0
9
+ */
10
+ import * as Context from "effect/Context";
11
+ import * as Effect from "effect/Effect";
12
+ import { dual } from "effect/Function";
13
+ import * as Layer from "effect/Layer";
14
+ import * as AiError from "effect/unstable/ai/AiError";
15
+ import * as EmbeddingModel from "effect/unstable/ai/EmbeddingModel";
16
+ import * as AiModel from "effect/unstable/ai/Model";
17
+ import { OpenAiClient } from "./OpenAiClient.js";
18
+ /**
19
+ * Context service for OpenAI embedding model configuration.
20
+ *
21
+ * **When to use**
22
+ *
23
+ * Use when you need scoped OpenAI request defaults or overrides for embedding
24
+ * requests from Effect context.
25
+ *
26
+ * **Details**
27
+ *
28
+ * The service stores the OpenAI create-embedding request payload without
29
+ * `input`, carrying options such as `model`, `dimensions`, `encoding_format`,
30
+ * and `user`.
31
+ *
32
+ * @see {@link withConfigOverride} for scoping embedding request overrides
33
+ *
34
+ * @category services
35
+ * @since 4.0.0
36
+ */
37
+ export class Config extends /*#__PURE__*/Context.Service()("@effect/ai-openai/OpenAiEmbeddingModel/Config") {}
38
+ /**
39
+ * Creates an `AiModel` for an OpenAI embedding model with its configured vector dimensions.
40
+ *
41
+ * **When to use**
42
+ *
43
+ * Use to provide an OpenAI `EmbeddingModel` and its `Dimensions` service to an
44
+ * Effect program.
45
+ *
46
+ * @see {@link layer} for providing only the embedding model service
47
+ * @see {@link withConfigOverride} for scoped request configuration overrides
48
+ *
49
+ * @category constructors
50
+ * @since 4.0.0
51
+ */
52
+ export const model = (model, options) => AiModel.make("openai", model, Layer.merge(layer({
53
+ model,
54
+ config: {
55
+ ...options.config,
56
+ dimensions: options.dimensions
57
+ }
58
+ }), Layer.succeed(EmbeddingModel.Dimensions, options.dimensions)));
59
+ /**
60
+ * Creates an OpenAI embedding model service.
61
+ *
62
+ * **When to use**
63
+ *
64
+ * Use to construct the `EmbeddingModel.Service` effectfully when
65
+ * `OpenAiClient` is already available in the environment.
66
+ *
67
+ * **Details**
68
+ *
69
+ * The `model` option is sent with each embedding request. Constructor `config`
70
+ * supplies create-embedding request fields other than `model` and `input`, and
71
+ * scoped overrides from `withConfigOverride` are merged last for each request.
72
+ *
73
+ * **Gotchas**
74
+ *
75
+ * The service expects numeric embedding vectors. It fails with
76
+ * `InvalidOutputError` when the provider returns base64 embeddings,
77
+ * out-of-range indexes, duplicate indexes, or an unexpected number of
78
+ * embeddings.
79
+ *
80
+ * @see {@link layer} for providing the embedding model service as a layer
81
+ * @see {@link model} for creating an `AiModel` that also provides dimensions
82
+ * @see {@link withConfigOverride} for scoped request configuration overrides
83
+ *
84
+ * @category constructors
85
+ * @since 4.0.0
86
+ */
87
+ export const make = /*#__PURE__*/Effect.fnUntraced(function* ({
88
+ model,
89
+ config: providerConfig
90
+ }) {
91
+ const client = yield* OpenAiClient;
92
+ const makeConfig = Effect.gen(function* () {
93
+ const services = yield* Effect.context();
94
+ return {
95
+ model,
96
+ ...providerConfig,
97
+ ...services.mapUnsafe.get(Config.key)
98
+ };
99
+ });
100
+ return yield* EmbeddingModel.make({
101
+ embedMany: Effect.fnUntraced(function* ({
102
+ inputs
103
+ }) {
104
+ const config = yield* makeConfig;
105
+ const response = yield* client.createEmbedding({
106
+ ...config,
107
+ input: inputs
108
+ });
109
+ return yield* mapProviderResponse(inputs.length, response);
110
+ })
111
+ });
112
+ });
113
+ /**
114
+ * Creates a layer for the OpenAI embedding model.
115
+ *
116
+ * **When to use**
117
+ *
118
+ * Use when composing application layers and you want OpenAI to satisfy
119
+ * `EmbeddingModel.EmbeddingModel` while supplying `OpenAiClient` from another
120
+ * layer.
121
+ *
122
+ * **Gotchas**
123
+ *
124
+ * Use the default floating-point embedding format. The service expects numeric
125
+ * vectors and fails with `InvalidOutputError` if OpenAI returns base64
126
+ * embeddings.
127
+ *
128
+ * @see {@link make} for constructing the embedding model service effectfully
129
+ * @see {@link model} for creating an `AiModel` that also provides embedding dimensions
130
+ *
131
+ * @category layers
132
+ * @since 4.0.0
133
+ */
134
+ export const layer = options => Layer.effect(EmbeddingModel.EmbeddingModel, make(options));
135
+ /**
136
+ * Provides config overrides for OpenAI embedding model operations.
137
+ *
138
+ * **When to use**
139
+ *
140
+ * Use when you need scoped OpenAI embedding request defaults for a single
141
+ * effect or workflow without rebuilding the embedding model service.
142
+ *
143
+ * **Details**
144
+ *
145
+ * Supports both data-first and data-last forms. Existing scoped config is read
146
+ * first, then the provided overrides are applied so override fields take
147
+ * precedence.
148
+ *
149
+ * @see {@link Config} for the scoped embedding request configuration service
150
+ *
151
+ * @category configuration
152
+ * @since 4.0.0
153
+ */
154
+ export const withConfigOverride = /*#__PURE__*/dual(2, (self, overrides) => Effect.flatMap(Effect.serviceOption(Config), config => Effect.provideService(self, Config, {
155
+ ...(config._tag === "Some" ? config.value : {}),
156
+ ...overrides
157
+ })));
158
+ const mapProviderResponse = (inputLength, response) => {
159
+ if (response.data.length !== inputLength) {
160
+ return Effect.fail(invalidOutput("Provider returned " + response.data.length + " embeddings but expected " + inputLength));
161
+ }
162
+ const results = new Array(inputLength);
163
+ const seen = new Set();
164
+ for (const entry of response.data) {
165
+ if (!Number.isInteger(entry.index) || entry.index < 0 || entry.index >= inputLength) {
166
+ return Effect.fail(invalidOutput("Provider returned invalid embedding index: " + entry.index));
167
+ }
168
+ if (seen.has(entry.index)) {
169
+ return Effect.fail(invalidOutput("Provider returned duplicate embedding index: " + entry.index));
170
+ }
171
+ if (!Array.isArray(entry.embedding)) {
172
+ return Effect.fail(invalidOutput("Provider returned non-vector embedding at index " + entry.index));
173
+ }
174
+ seen.add(entry.index);
175
+ results[entry.index] = [...entry.embedding];
176
+ }
177
+ if (seen.size !== inputLength) {
178
+ return Effect.fail(invalidOutput("Provider returned embeddings for " + seen.size + " inputs but expected " + inputLength));
179
+ }
180
+ return Effect.succeed({
181
+ results,
182
+ usage: {
183
+ inputTokens: response.usage?.prompt_tokens
184
+ }
185
+ });
186
+ };
187
+ const invalidOutput = description => AiError.make({
188
+ module: "OpenAiEmbeddingModel",
189
+ method: "embedMany",
190
+ reason: new AiError.InvalidOutputError({
191
+ description
192
+ })
193
+ });
194
+ //# 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