@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
@@ -1,25 +1,25 @@
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 { dual } from "effect/Function"
6
+ import * as ServiceMap from "effect/ServiceMap"
7
+ import type { HttpClient } from "effect/unstable/http/HttpClient"
8
8
 
9
9
  /**
10
10
  * @since 1.0.0
11
- * @category Context
11
+ * @category services
12
12
  */
13
- export class OpenAiConfig extends Context.Tag("@effect/ai-openai/OpenAiConfig")<
13
+ export class OpenAiConfig extends ServiceMap.Service<
14
14
  OpenAiConfig,
15
15
  OpenAiConfig.Service
16
- >() {
16
+ >()("@effect/ai-openai/OpenAiConfig") {
17
17
  /**
18
18
  * @since 1.0.0
19
19
  */
20
20
  static readonly getOrUndefined: Effect.Effect<typeof OpenAiConfig.Service | undefined> = Effect.map(
21
- Effect.context<never>(),
22
- (context) => context.unsafeMap.get(OpenAiConfig.key)
21
+ Effect.services<never>(),
22
+ (context) => context.mapUnsafe.get(OpenAiConfig.key)
23
23
  )
24
24
  }
25
25
 
@@ -29,50 +29,36 @@ export class OpenAiConfig extends Context.Tag("@effect/ai-openai/OpenAiConfig")<
29
29
  export declare namespace OpenAiConfig {
30
30
  /**
31
31
  * @since 1.0.
32
- * @category Models
32
+ * @category models
33
33
  */
34
34
  export interface Service {
35
- readonly transformClient?: (client: HttpClient) => HttpClient
35
+ readonly transformClient?: ((client: HttpClient) => HttpClient) | undefined
36
36
  }
37
37
  }
38
38
 
39
39
  /**
40
40
  * @since 1.0.0
41
- * @category Configuration
41
+ * @category configuration
42
42
  */
43
43
  export const withClientTransform: {
44
44
  /**
45
45
  * @since 1.0.0
46
- * @category Configuration
46
+ * @category configuration
47
47
  */
48
48
  (transform: (client: HttpClient) => HttpClient): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
49
49
  /**
50
50
  * @since 1.0.0
51
- * @category Configuration
51
+ * @category configuration
52
52
  */
53
53
  <A, E, R>(
54
54
  self: Effect.Effect<A, E, R>,
55
55
  transform: (client: HttpClient) => HttpClient
56
56
  ): Effect.Effect<A, E, R>
57
- } = dual<
58
- /**
59
- * @since 1.0.0
60
- * @category Configuration
61
- */
62
- (transform: (client: HttpClient) => HttpClient) => <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>,
63
- /**
64
- * @since 1.0.0
65
- * @category Configuration
66
- */
67
- <A, E, R>(
68
- self: Effect.Effect<A, E, R>,
69
- transform: (client: HttpClient) => HttpClient
70
- ) => Effect.Effect<A, E, R>
71
- >(
72
- 2,
73
- (self, transformClient) =>
74
- Effect.flatMap(
75
- OpenAiConfig.getOrUndefined,
76
- (config) => Effect.provideService(self, OpenAiConfig, { ...config, transformClient })
77
- )
78
- )
57
+ } = dual(2, <A, E, R>(
58
+ self: Effect.Effect<A, E, R>,
59
+ transformClient: (client: HttpClient) => HttpClient
60
+ ) =>
61
+ Effect.flatMap(
62
+ OpenAiConfig.getOrUndefined,
63
+ (config) => Effect.provideService(self, OpenAiConfig, { ...config, transformClient })
64
+ ))
@@ -0,0 +1,107 @@
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
+ /**
11
+ * OpenAI-specific error metadata fields.
12
+ *
13
+ * @since 1.0.0
14
+ * @category models
15
+ */
16
+ export type OpenAiErrorMetadata = {
17
+ /**
18
+ * The OpenAI error code returned by the API.
19
+ */
20
+ readonly errorCode: string | null
21
+ /**
22
+ * The OpenAI error type returned by the API.
23
+ */
24
+ readonly errorType: string | null
25
+ /**
26
+ * The unique request ID for debugging with OpenAI support.
27
+ */
28
+ readonly requestId: string | null
29
+ }
30
+
31
+ /**
32
+ * OpenAI-specific rate limit metadata fields.
33
+ *
34
+ * Extends base error metadata with rate limit specific information from
35
+ * OpenAI's rate limit headers.
36
+ *
37
+ * @since 1.0.0
38
+ * @category models
39
+ */
40
+ export type OpenAiRateLimitMetadata = OpenAiErrorMetadata & {
41
+ /**
42
+ * The rate limit type (e.g. "requests", "tokens").
43
+ */
44
+ readonly limit: string | null
45
+ /**
46
+ * Number of remaining requests in the current window.
47
+ */
48
+ readonly remaining: number | null
49
+ /**
50
+ * Time until the request rate limit resets.
51
+ */
52
+ readonly resetRequests: string | null
53
+ /**
54
+ * Time until the token rate limit resets.
55
+ */
56
+ readonly resetTokens: string | null
57
+ }
58
+
59
+ declare module "effect/unstable/ai/AiError" {
60
+ export interface RateLimitError {
61
+ readonly metadata: {
62
+ readonly openai?: OpenAiRateLimitMetadata | null
63
+ }
64
+ }
65
+
66
+ export interface QuotaExhaustedError {
67
+ readonly metadata: {
68
+ readonly openai?: OpenAiErrorMetadata | null
69
+ }
70
+ }
71
+
72
+ export interface AuthenticationError {
73
+ readonly metadata: {
74
+ readonly openai?: OpenAiErrorMetadata | null
75
+ }
76
+ }
77
+
78
+ export interface ContentPolicyError {
79
+ readonly metadata: {
80
+ readonly openai?: OpenAiErrorMetadata | null
81
+ }
82
+ }
83
+
84
+ export interface InvalidRequestError {
85
+ readonly metadata: {
86
+ readonly openai?: OpenAiErrorMetadata | null
87
+ }
88
+ }
89
+
90
+ export interface InternalProviderError {
91
+ readonly metadata: {
92
+ readonly openai?: OpenAiErrorMetadata | null
93
+ }
94
+ }
95
+
96
+ export interface InvalidOutputError {
97
+ readonly metadata: {
98
+ readonly openai?: OpenAiErrorMetadata | null
99
+ }
100
+ }
101
+
102
+ export interface UnknownError {
103
+ readonly metadata: {
104
+ readonly openai?: OpenAiErrorMetadata | null
105
+ }
106
+ }
107
+ }