@effect/ai-openai 0.37.1 → 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 +222 -1810
  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 -1562
  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 -3119
  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 -1499
  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,12 +1,17 @@
1
1
  /**
2
+ * OpenAI telemetry attributes for OpenTelemetry integration.
3
+ *
4
+ * Provides OpenAI-specific GenAI telemetry attributes following OpenTelemetry
5
+ * semantic conventions, extending the base GenAI attributes with OpenAI-specific
6
+ * request and response metadata.
7
+ *
2
8
  * @since 1.0.0
3
9
  */
4
- import * as Telemetry from "@effect/ai/Telemetry"
5
10
  import { dual } from "effect/Function"
6
- import * as Predicate from "effect/Predicate"
7
11
  import * as String from "effect/String"
8
12
  import type { Span } from "effect/Tracer"
9
13
  import type { Simplify } from "effect/Types"
14
+ import * as Telemetry from "effect/unstable/ai/Telemetry"
10
15
 
11
16
  /**
12
17
  * The attributes used to describe telemetry in the context of Generative
@@ -15,7 +20,7 @@ import type { Simplify } from "effect/Types"
15
20
  * {@see https://opentelemetry.io/docs/specs/semconv/attributes-registry/gen-ai/}
16
21
  *
17
22
  * @since 1.0.0
18
- * @category Models
23
+ * @category models
19
24
  */
20
25
  export type OpenAiTelemetryAttributes = Simplify<
21
26
  & Telemetry.GenAITelemetryAttributes
@@ -28,7 +33,7 @@ export type OpenAiTelemetryAttributes = Simplify<
28
33
  * including the OpenAi-specific attributes.
29
34
  *
30
35
  * @since 1.0.0
31
- * @category Models
36
+ * @category models
32
37
  */
33
38
  export type AllAttributes = Telemetry.AllAttributes & RequestAttributes & ResponseAttributes
34
39
 
@@ -37,7 +42,7 @@ export type AllAttributes = Telemetry.AllAttributes & RequestAttributes & Respon
37
42
  * namespaced by `gen_ai.openai.request`.
38
43
  *
39
44
  * @since 1.0.0
40
- * @category Models
45
+ * @category models
41
46
  */
42
47
  export interface RequestAttributes {
43
48
  /**
@@ -55,7 +60,7 @@ export interface RequestAttributes {
55
60
  * namespaced by `gen_ai.openai.response`.
56
61
  *
57
62
  * @since 1.0.0
58
- * @category Models
63
+ * @category models
59
64
  */
60
65
  export interface ResponseAttributes {
61
66
  /**
@@ -77,7 +82,7 @@ export interface ResponseAttributes {
77
82
  * otherwise, a custom value **MAY** be used.
78
83
  *
79
84
  * @since 1.0.0
80
- * @category Models
85
+ * @category models
81
86
  */
82
87
  export type WellKnownResponseFormat = "json_object" | "json_schema" | "text"
83
88
 
@@ -89,13 +94,13 @@ export type WellKnownResponseFormat = "json_object" | "json_schema" | "text"
89
94
  * otherwise, a custom value **MAY** be used.
90
95
  *
91
96
  * @since 1.0.0
92
- * @category Models
97
+ * @category models
93
98
  */
94
99
  export type WellKnownServiceTier = "auto" | "default"
95
100
 
96
101
  /**
97
102
  * @since 1.0.0
98
- * @since Models
103
+ * @since models
99
104
  */
100
105
  export type OpenAiTelemetryAttributeOptions = Telemetry.GenAITelemetryAttributeOptions & {
101
106
  openai?: {
@@ -118,9 +123,9 @@ const addOpenAiResponseAttributes = Telemetry.addSpanAttributes("gen_ai.openai.r
118
123
  * **NOTE**: This method will mutate the `Span` **in-place**.
119
124
  *
120
125
  * @since 1.0.0
121
- * @since Utilities
126
+ * @since utilities
122
127
  */
123
- export const addGenAIAnnotations = dual<
128
+ export const addGenAIAnnotations: {
124
129
  /**
125
130
  * Applies the specified OpenAi GenAI telemetry attributes to the provided
126
131
  * `Span`.
@@ -128,9 +133,9 @@ export const addGenAIAnnotations = dual<
128
133
  * **NOTE**: This method will mutate the `Span` **in-place**.
129
134
  *
130
135
  * @since 1.0.0
131
- * @since Utilities
136
+ * @since utilities
132
137
  */
133
- (options: OpenAiTelemetryAttributeOptions) => (span: Span) => void,
138
+ (options: OpenAiTelemetryAttributeOptions): (span: Span) => void
134
139
  /**
135
140
  * Applies the specified OpenAi GenAI telemetry attributes to the provided
136
141
  * `Span`.
@@ -138,16 +143,16 @@ export const addGenAIAnnotations = dual<
138
143
  * **NOTE**: This method will mutate the `Span` **in-place**.
139
144
  *
140
145
  * @since 1.0.0
141
- * @since Utilities
146
+ * @since utilities
142
147
  */
143
- (span: Span, options: OpenAiTelemetryAttributeOptions) => void
144
- >(2, (span, options) => {
148
+ (span: Span, options: OpenAiTelemetryAttributeOptions): void
149
+ } = dual(2, (span: Span, options: OpenAiTelemetryAttributeOptions) => {
145
150
  Telemetry.addGenAIAnnotations(span, options)
146
- if (Predicate.isNotNullable(options.openai)) {
147
- if (Predicate.isNotNullable(options.openai.request)) {
151
+ if (options.openai != null) {
152
+ if (options.openai.request != null) {
148
153
  addOpenAiRequestAttributes(span, options.openai.request)
149
154
  }
150
- if (Predicate.isNotNullable(options.openai.response)) {
155
+ if (options.openai.response != null) {
151
156
  addOpenAiResponseAttributes(span, options.openai.response)
152
157
  }
153
158
  }
package/src/OpenAiTool.ts CHANGED
@@ -1,110 +1,256 @@
1
1
  /**
2
+ * OpenAI provider-defined tools for use with the LanguageModel.
3
+ *
4
+ * Provides tools that are natively supported by OpenAI's API, including
5
+ * code interpreter, file search, and web search functionality.
6
+ *
2
7
  * @since 1.0.0
3
8
  */
4
- import * as Tool from "@effect/ai/Tool"
5
9
  import * as Schema from "effect/Schema"
6
- import * as Struct from "effect/Struct"
7
- import * as Generated from "./Generated.js"
10
+ import * as Tool from "effect/unstable/ai/Tool"
11
+ import * as Generated from "./Generated.ts"
8
12
 
9
13
  /**
14
+ * Union of all OpenAI provider-defined tools.
15
+ *
10
16
  * @since 1.0.0
11
- * @category Tools
17
+ * @category models
18
+ */
19
+ export type OpenAiTool =
20
+ | ReturnType<typeof ApplyPatch>
21
+ | ReturnType<typeof CodeInterpreter>
22
+ | ReturnType<typeof FileSearch>
23
+ | ReturnType<typeof Shell>
24
+ | ReturnType<typeof ImageGeneration>
25
+ | ReturnType<typeof LocalShell>
26
+ | ReturnType<typeof Mcp>
27
+ | ReturnType<typeof WebSearch>
28
+ | ReturnType<typeof WebSearchPreview>
29
+
30
+ /**
31
+ * OpenAI Apply Patch tool.
32
+ *
33
+ * Allows the model to apply diffs by creating, deleting, or updating files.
34
+ * This is a local tool that runs in your environment and requires a handler
35
+ * to execute file operations.
36
+ *
37
+ * @since 1.0.0
38
+ * @category tools
39
+ */
40
+ export const ApplyPatch = Tool.providerDefined({
41
+ id: "openai.apply_patch",
42
+ customName: "OpenAiApplyPatch",
43
+ providerName: "apply_patch",
44
+ requiresHandler: true,
45
+ parameters: Schema.Struct({
46
+ call_id: Generated.ApplyPatchToolCall.fields.call_id,
47
+ operation: Generated.ApplyPatchToolCall.fields.operation
48
+ }),
49
+ success: Schema.Struct({
50
+ status: Generated.ApplyPatchToolCallOutput.fields.status,
51
+ output: Generated.ApplyPatchToolCallOutput.fields.output
52
+ })
53
+ })
54
+
55
+ /**
56
+ * OpenAI Code Interpreter tool.
57
+ *
58
+ * Allows the model to execute Python code in a sandboxed environment.
59
+ *
60
+ * @since 1.0.0
61
+ * @category tools
12
62
  */
13
63
  export const CodeInterpreter = Tool.providerDefined({
14
64
  id: "openai.code_interpreter",
15
- toolkitName: "OpenAiCodeInterpreter",
65
+ customName: "OpenAiCodeInterpreter",
16
66
  providerName: "code_interpreter",
17
- args: {
18
- /**
19
- * The configuration for the code interpreter container.
20
- *
21
- * Can be either a string which specifies the ID of a container created via
22
- * the `/v1/containers` endpoint, or an object which specifies an optional
23
- * list of files to make available to the container.
24
- */
25
- container: Schema.Union(
26
- Schema.String,
27
- Schema.Struct({
28
- type: Schema.Literal("auto"),
29
- /**
30
- * An optional list of uploaded files to make available to your code.
31
- */
32
- file_ids: Schema.optional(Schema.Array(Schema.String))
33
- })
34
- )
35
- },
36
- parameters: {
37
- code: Schema.NullOr(Schema.String),
38
- container_id: Schema.String
39
- },
40
- success: Schema.NullOr(Schema.Array(Schema.Union(
41
- Generated.CodeInterpreterOutputLogs,
42
- Generated.CodeInterpreterOutputImage
43
- )))
67
+ args: Schema.Struct({
68
+ container: Generated.CodeInterpreterTool.fields.container
69
+ }),
70
+ parameters: Schema.Struct({
71
+ code: Generated.CodeInterpreterToolCall.fields.code,
72
+ container_id: Generated.CodeInterpreterToolCall.fields.container_id
73
+ }),
74
+ success: Schema.Struct({
75
+ outputs: Generated.CodeInterpreterToolCall.fields.outputs
76
+ })
44
77
  })
45
78
 
46
79
  /**
80
+ * OpenAI File Search tool.
81
+ *
82
+ * Enables the model to search through uploaded files and vector stores.
83
+ *
47
84
  * @since 1.0.0
48
- * @category Tools
85
+ * @category tools
49
86
  */
50
87
  export const FileSearch = Tool.providerDefined({
51
88
  id: "openai.file_search",
52
- toolkitName: "OpenAiFileSearch",
89
+ customName: "OpenAiFileSearch",
53
90
  providerName: "file_search",
54
- args: Struct.omit(Generated.FileSearchTool.fields, "type"),
55
- success: Generated.FileSearchToolCall.pipe(Schema.omit("id", "type"))
91
+ args: Schema.Struct({
92
+ filters: Generated.FileSearchTool.fields.filters,
93
+ max_num_results: Generated.FileSearchTool.fields.max_num_results,
94
+ ranking_options: Generated.FileSearchTool.fields.ranking_options,
95
+ vector_store_ids: Generated.FileSearchTool.fields.vector_store_ids
96
+ }),
97
+ success: Schema.Struct({
98
+ status: Generated.FileSearchToolCall.fields.status,
99
+ queries: Generated.FileSearchToolCall.fields.queries,
100
+ results: Generated.FileSearchToolCall.fields.results
101
+ })
102
+ })
103
+
104
+ /**
105
+ * OpenAI Image Generation tool.
106
+ *
107
+ * Enables the model to generate images using the GPT image models.
108
+ *
109
+ * @since 1.0.0
110
+ * @category tools
111
+ */
112
+ export const ImageGeneration = Tool.providerDefined({
113
+ id: "openai.image_generation",
114
+ customName: "OpenAiImageGeneration",
115
+ providerName: "image_generation",
116
+ args: Schema.Struct({
117
+ background: Generated.ImageGenTool.fields.background,
118
+ input_fidelity: Generated.ImageGenTool.fields.input_fidelity,
119
+ input_image_mask: Generated.ImageGenTool.fields.input_image_mask,
120
+ model: Generated.ImageGenTool.fields.model,
121
+ moderation: Generated.ImageGenTool.fields.moderation,
122
+ output_compression: Generated.ImageGenTool.fields.output_compression,
123
+ output_format: Generated.ImageGenTool.fields.output_format,
124
+ partial_images: Generated.ImageGenTool.fields.partial_images,
125
+ quality: Generated.ImageGenTool.fields.quality,
126
+ size: Generated.ImageGenTool.fields.size
127
+ }),
128
+ success: Schema.Struct({
129
+ result: Generated.ImageGenToolCall.fields.result
130
+ })
131
+ })
132
+
133
+ /**
134
+ * OpenAI Local Shell tool.
135
+ *
136
+ * Enables the model to run a command with a local shell. This is a local tool
137
+ * that runs in your environment and requires a handler to execute commands.
138
+ *
139
+ * @since 1.0.0
140
+ * @category tools
141
+ */
142
+ export const LocalShell = Tool.providerDefined({
143
+ id: "openai.local_shell",
144
+ customName: "OpenAiLocalShell",
145
+ providerName: "local_shell",
146
+ requiresHandler: true,
147
+ parameters: Schema.Struct({
148
+ action: Generated.LocalShellToolCall.fields.action
149
+ }),
150
+ success: Schema.Struct({
151
+ output: Generated.LocalShellToolCallOutput.fields.output
152
+ })
56
153
  })
57
154
 
58
155
  /**
156
+ * OpenAI MCP tool.
157
+ *
158
+ * Gives the model access to additional tools via remote Model Context Protocol
159
+ * (MCP) servers
160
+ *
59
161
  * @since 1.0.0
60
- * @category Tools
162
+ * @category tools
163
+ */
164
+ export const Mcp = Tool.providerDefined({
165
+ id: "openai.mcp",
166
+ customName: "OpenAiMcp",
167
+ providerName: "mcp",
168
+ args: Schema.Struct({
169
+ allowed_tools: Generated.MCPTool.fields.allowed_tools,
170
+ authorization: Generated.MCPTool.fields.authorization,
171
+ connector_id: Generated.MCPTool.fields.connector_id,
172
+ require_approval: Generated.MCPTool.fields.require_approval,
173
+ server_description: Generated.MCPTool.fields.server_description,
174
+ server_label: Generated.MCPTool.fields.server_label,
175
+ server_url: Generated.MCPTool.fields.server_url
176
+ }),
177
+ success: Schema.Struct({
178
+ type: Generated.MCPToolCall.fields.type,
179
+ name: Generated.MCPToolCall.fields.name,
180
+ arguments: Generated.MCPToolCall.fields.arguments,
181
+ output: Generated.MCPToolCall.fields.output,
182
+ error: Generated.MCPToolCall.fields.error,
183
+ server_label: Generated.MCPToolCall.fields.server_label
184
+ })
185
+ })
186
+
187
+ /**
188
+ * OpenAI Function Shell tool.
189
+ *
190
+ * Enables the model to execute one or more shell commands in a managed
191
+ * environment. This is a local tool that runs in your environment and requires
192
+ * a handler to execute commands.
193
+ *
194
+ * @since 1.0.0
195
+ * @category tools
196
+ */
197
+ export const Shell = Tool.providerDefined({
198
+ id: "openai.shell",
199
+ customName: "OpenAiShell",
200
+ providerName: "shell",
201
+ requiresHandler: true,
202
+ parameters: Schema.Struct({
203
+ action: Generated.FunctionShellCall.fields.action
204
+ }),
205
+ success: Schema.Struct({
206
+ output: Generated.FunctionShellCallOutputItemParam.fields.output
207
+ })
208
+ })
209
+
210
+ /**
211
+ * OpenAI Web Search tool.
212
+ *
213
+ * Enables the model to search the web for information.
214
+ *
215
+ * @since 1.0.0
216
+ * @category tools
61
217
  */
62
218
  export const WebSearch = Tool.providerDefined({
63
219
  id: "openai.web_search",
64
- toolkitName: "OpenAiWebSearch",
220
+ customName: "OpenAiWebSearch",
65
221
  providerName: "web_search",
66
- args: Struct.omit(Generated.WebSearchTool.fields, "type"),
67
- parameters: {
68
- action: Schema.Union(
69
- Generated.WebSearchActionSearch,
70
- Generated.WebSearchActionOpenPage,
71
- Generated.WebSearchActionFind
72
- )
73
- },
222
+ args: Schema.Struct({
223
+ filters: Generated.WebSearchTool.fields.filters,
224
+ user_location: Generated.WebSearchTool.fields.user_location,
225
+ search_context_size: Generated.WebSearchTool.fields.search_context_size
226
+ }),
227
+ parameters: Schema.Struct({
228
+ action: Generated.WebSearchToolCall.fields.action
229
+ }),
74
230
  success: Schema.Struct({
75
- status: Generated.WebSearchToolCallStatus
231
+ action: Generated.WebSearchToolCall.fields.action,
232
+ status: Generated.WebSearchToolCall.fields.status
76
233
  })
77
234
  })
78
235
 
79
236
  /**
237
+ * OpenAI Web Search Preview tool.
238
+ *
239
+ * Preview version of the web search tool with additional features.
240
+ *
80
241
  * @since 1.0.0
81
- * @category Tools
242
+ * @category tools
82
243
  */
83
244
  export const WebSearchPreview = Tool.providerDefined({
84
245
  id: "openai.web_search_preview",
85
- toolkitName: "OpenAiWebSearchPreview",
246
+ customName: "OpenAiWebSearchPreview",
86
247
  providerName: "web_search_preview",
87
- args: Struct.omit(Generated.WebSearchPreviewTool.fields, "type"),
88
- parameters: {
89
- action: Schema.Union(
90
- Generated.WebSearchActionSearch,
91
- Generated.WebSearchActionOpenPage,
92
- Generated.WebSearchActionFind
93
- )
94
- },
248
+ args: Schema.Struct({
249
+ user_location: Generated.WebSearchPreviewTool.fields.user_location,
250
+ search_context_size: Generated.WebSearchPreviewTool.fields.search_context_size
251
+ }),
95
252
  success: Schema.Struct({
96
- status: Generated.WebSearchToolCallStatus
253
+ action: Generated.WebSearchToolCall.fields.action,
254
+ status: Generated.WebSearchToolCall.fields.status
97
255
  })
98
256
  })
99
-
100
- type ProviderToolNames = "code_interpreter" | "file_search" | "web_search" | "web_search_preview"
101
-
102
- const ProviderToolNamesMap: Map<ProviderToolNames | (string & {}), string> = new Map([
103
- ["code_interpreter", "OpenAiCodeInterpreter"],
104
- ["file_search", "OpenAiFileSearch"],
105
- ["web_search", "OpenAiWebSearch"],
106
- ["web_search_preview", "OpenAiWebSearchPreview"]
107
- ])
108
-
109
- /** @internal */
110
- export const getProviderDefinedToolName = (name: string): string | undefined => ProviderToolNamesMap.get(name)
package/src/index.ts CHANGED
@@ -1,39 +1,66 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
- export * as Generated from "./Generated.js"
4
+
5
+ // @barrel: Auto-generated exports. Do not edit manually.
5
6
 
6
7
  /**
7
8
  * @since 1.0.0
8
9
  */
9
- export * as OpenAiClient from "./OpenAiClient.js"
10
+ export * as Generated from "./Generated.ts"
10
11
 
11
12
  /**
13
+ * OpenAI Client module for interacting with OpenAI's API.
14
+ *
15
+ * Provides a type-safe, Effect-based client for OpenAI operations including
16
+ * completions, embeddings, and streaming responses.
17
+ *
12
18
  * @since 1.0.0
13
19
  */
14
- export * as OpenAiConfig from "./OpenAiConfig.js"
20
+ export * as OpenAiClient from "./OpenAiClient.ts"
15
21
 
16
22
  /**
17
23
  * @since 1.0.0
18
24
  */
19
- export * as OpenAiEmbeddingModel from "./OpenAiEmbeddingModel.js"
25
+ export * as OpenAiConfig from "./OpenAiConfig.ts"
20
26
 
21
27
  /**
28
+ * OpenAI error metadata augmentation.
29
+ *
30
+ * Provides OpenAI-specific metadata fields for AI error types through module
31
+ * augmentation, enabling typed access to OpenAI error details.
32
+ *
22
33
  * @since 1.0.0
23
34
  */
24
- export * as OpenAiLanguageModel from "./OpenAiLanguageModel.js"
35
+ export * as OpenAiError from "./OpenAiError.ts"
25
36
 
26
37
  /**
38
+ * OpenAI Language Model implementation.
39
+ *
40
+ * Provides a LanguageModel implementation for OpenAI's responses API,
41
+ * supporting text generation, structured output, tool calling, and streaming.
42
+ *
27
43
  * @since 1.0.0
28
44
  */
29
- export * as OpenAiTelemetry from "./OpenAiTelemetry.js"
45
+ export * as OpenAiLanguageModel from "./OpenAiLanguageModel.ts"
30
46
 
31
47
  /**
48
+ * OpenAI telemetry attributes for OpenTelemetry integration.
49
+ *
50
+ * Provides OpenAI-specific GenAI telemetry attributes following OpenTelemetry
51
+ * semantic conventions, extending the base GenAI attributes with OpenAI-specific
52
+ * request and response metadata.
53
+ *
32
54
  * @since 1.0.0
33
55
  */
34
- export * as OpenAiTokenizer from "./OpenAiTokenizer.js"
56
+ export * as OpenAiTelemetry from "./OpenAiTelemetry.ts"
35
57
 
36
58
  /**
59
+ * OpenAI provider-defined tools for use with the LanguageModel.
60
+ *
61
+ * Provides tools that are natively supported by OpenAI's API, including
62
+ * code interpreter, file search, and web search functionality.
63
+ *
37
64
  * @since 1.0.0
38
65
  */
39
- export * as OpenAiTool from "./OpenAiTool.js"
66
+ export * as OpenAiTool from "./OpenAiTool.ts"