@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.
Files changed (117) hide show
  1. package/dist/Generated.d.ts +70887 -0
  2. package/dist/Generated.d.ts.map +1 -0
  3. package/dist/Generated.js +4 -0
  4. package/dist/Generated.js.map +1 -0
  5. package/dist/OpenAiClient.d.ts +124 -0
  6. package/dist/OpenAiClient.d.ts.map +1 -0
  7. package/dist/OpenAiClient.js +128 -0
  8. package/dist/OpenAiClient.js.map +1 -0
  9. package/dist/{dts/OpenAiConfig.d.ts → OpenAiConfig.d.ts} +9 -9
  10. package/dist/OpenAiConfig.d.ts.map +1 -0
  11. package/dist/{esm/OpenAiConfig.js → OpenAiConfig.js} +8 -5
  12. package/dist/OpenAiConfig.js.map +1 -0
  13. package/dist/OpenAiError.d.ts +98 -0
  14. package/dist/OpenAiError.d.ts.map +1 -0
  15. package/dist/OpenAiError.js +10 -0
  16. package/dist/OpenAiError.js.map +1 -0
  17. package/dist/OpenAiLanguageModel.d.ts +318 -0
  18. package/dist/OpenAiLanguageModel.d.ts.map +1 -0
  19. package/dist/OpenAiLanguageModel.js +2207 -0
  20. package/dist/OpenAiLanguageModel.js.map +1 -0
  21. package/dist/{dts/OpenAiTelemetry.d.ts → OpenAiTelemetry.d.ts} +31 -13
  22. package/dist/OpenAiTelemetry.d.ts.map +1 -0
  23. package/dist/{esm/OpenAiTelemetry.js → OpenAiTelemetry.js} +11 -6
  24. package/dist/OpenAiTelemetry.js.map +1 -0
  25. package/dist/OpenAiTool.d.ts +479 -0
  26. package/dist/OpenAiTool.d.ts.map +1 -0
  27. package/dist/OpenAiTool.js +231 -0
  28. package/dist/OpenAiTool.js.map +1 -0
  29. package/dist/index.d.ts +58 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +59 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/internal/errors.d.ts +2 -0
  34. package/dist/internal/errors.d.ts.map +1 -0
  35. package/dist/internal/errors.js +316 -0
  36. package/dist/internal/errors.js.map +1 -0
  37. package/dist/{dts/internal → internal}/utilities.d.ts.map +1 -1
  38. package/dist/{esm/internal → internal}/utilities.js +4 -3
  39. package/dist/internal/utilities.js.map +1 -0
  40. package/package.json +45 -97
  41. package/src/Generated.ts +28521 -20036
  42. package/src/OpenAiClient.ts +220 -1816
  43. package/src/OpenAiConfig.ts +20 -34
  44. package/src/OpenAiError.ts +107 -0
  45. package/src/OpenAiLanguageModel.ts +1807 -638
  46. package/src/OpenAiTelemetry.ts +24 -19
  47. package/src/OpenAiTool.ts +216 -70
  48. package/src/index.ts +35 -8
  49. package/src/internal/errors.ts +347 -0
  50. package/src/internal/utilities.ts +7 -5
  51. package/Generated/package.json +0 -6
  52. package/OpenAiClient/package.json +0 -6
  53. package/OpenAiConfig/package.json +0 -6
  54. package/OpenAiEmbeddingModel/package.json +0 -6
  55. package/OpenAiLanguageModel/package.json +0 -6
  56. package/OpenAiTelemetry/package.json +0 -6
  57. package/OpenAiTokenizer/package.json +0 -6
  58. package/OpenAiTool/package.json +0 -6
  59. package/README.md +0 -5
  60. package/dist/cjs/Generated.js +0 -7150
  61. package/dist/cjs/Generated.js.map +0 -1
  62. package/dist/cjs/OpenAiClient.js +0 -1567
  63. package/dist/cjs/OpenAiClient.js.map +0 -1
  64. package/dist/cjs/OpenAiConfig.js +0 -30
  65. package/dist/cjs/OpenAiConfig.js.map +0 -1
  66. package/dist/cjs/OpenAiEmbeddingModel.js +0 -155
  67. package/dist/cjs/OpenAiEmbeddingModel.js.map +0 -1
  68. package/dist/cjs/OpenAiLanguageModel.js +0 -1147
  69. package/dist/cjs/OpenAiLanguageModel.js.map +0 -1
  70. package/dist/cjs/OpenAiTelemetry.js +0 -38
  71. package/dist/cjs/OpenAiTelemetry.js.map +0 -1
  72. package/dist/cjs/OpenAiTokenizer.js +0 -83
  73. package/dist/cjs/OpenAiTokenizer.js.map +0 -1
  74. package/dist/cjs/OpenAiTool.js +0 -93
  75. package/dist/cjs/OpenAiTool.js.map +0 -1
  76. package/dist/cjs/index.js +0 -24
  77. package/dist/cjs/index.js.map +0 -1
  78. package/dist/cjs/internal/utilities.js +0 -32
  79. package/dist/cjs/internal/utilities.js.map +0 -1
  80. package/dist/dts/Generated.d.ts +0 -40661
  81. package/dist/dts/Generated.d.ts.map +0 -1
  82. package/dist/dts/OpenAiClient.d.ts +0 -3120
  83. package/dist/dts/OpenAiClient.d.ts.map +0 -1
  84. package/dist/dts/OpenAiConfig.d.ts.map +0 -1
  85. package/dist/dts/OpenAiEmbeddingModel.d.ts +0 -109
  86. package/dist/dts/OpenAiEmbeddingModel.d.ts.map +0 -1
  87. package/dist/dts/OpenAiLanguageModel.d.ts +0 -235
  88. package/dist/dts/OpenAiLanguageModel.d.ts.map +0 -1
  89. package/dist/dts/OpenAiTelemetry.d.ts.map +0 -1
  90. package/dist/dts/OpenAiTokenizer.d.ts +0 -17
  91. package/dist/dts/OpenAiTokenizer.d.ts.map +0 -1
  92. package/dist/dts/OpenAiTool.d.ts +0 -200
  93. package/dist/dts/OpenAiTool.d.ts.map +0 -1
  94. package/dist/dts/index.d.ts +0 -33
  95. package/dist/dts/index.d.ts.map +0 -1
  96. package/dist/esm/Generated.js +0 -7150
  97. package/dist/esm/Generated.js.map +0 -1
  98. package/dist/esm/OpenAiClient.js +0 -1504
  99. package/dist/esm/OpenAiClient.js.map +0 -1
  100. package/dist/esm/OpenAiConfig.js.map +0 -1
  101. package/dist/esm/OpenAiEmbeddingModel.js +0 -143
  102. package/dist/esm/OpenAiEmbeddingModel.js.map +0 -1
  103. package/dist/esm/OpenAiLanguageModel.js +0 -1134
  104. package/dist/esm/OpenAiLanguageModel.js.map +0 -1
  105. package/dist/esm/OpenAiTelemetry.js.map +0 -1
  106. package/dist/esm/OpenAiTokenizer.js +0 -73
  107. package/dist/esm/OpenAiTokenizer.js.map +0 -1
  108. package/dist/esm/OpenAiTool.js +0 -84
  109. package/dist/esm/OpenAiTool.js.map +0 -1
  110. package/dist/esm/index.js +0 -33
  111. package/dist/esm/index.js.map +0 -1
  112. package/dist/esm/internal/utilities.js.map +0 -1
  113. package/dist/esm/package.json +0 -4
  114. package/index/package.json +0 -6
  115. package/src/OpenAiEmbeddingModel.ts +0 -243
  116. package/src/OpenAiTokenizer.ts +0 -70
  117. /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
- declare const OpenAiConfig_base: Context.TagClass<OpenAiConfig, "@effect/ai-openai/OpenAiConfig", OpenAiConfig.Service>;
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 Context
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 Models
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 Configuration
32
+ * @category configuration
33
33
  */
34
34
  export declare const withClientTransform: {
35
35
  /**
36
36
  * @since 1.0.0
37
- * @category Configuration
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 Configuration
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
- import * as Context from "effect/Context";
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 Context
9
+ * @category services
7
10
  */
8
- export class OpenAiConfig extends /*#__PURE__*/Context.Tag("@effect/ai-openai/OpenAiConfig")() {
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.context(), context => context.unsafeMap.get(OpenAiConfig.key));
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 Configuration
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":[]}