@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.
- package/dist/Generated.d.ts +70887 -0
- package/dist/Generated.d.ts.map +1 -0
- package/dist/Generated.js +4 -0
- package/dist/Generated.js.map +1 -0
- package/dist/OpenAiClient.d.ts +124 -0
- package/dist/OpenAiClient.d.ts.map +1 -0
- package/dist/OpenAiClient.js +128 -0
- package/dist/OpenAiClient.js.map +1 -0
- package/dist/{dts/OpenAiConfig.d.ts → OpenAiConfig.d.ts} +9 -9
- package/dist/OpenAiConfig.d.ts.map +1 -0
- package/dist/{esm/OpenAiConfig.js → OpenAiConfig.js} +8 -5
- package/dist/OpenAiConfig.js.map +1 -0
- package/dist/OpenAiError.d.ts +98 -0
- package/dist/OpenAiError.d.ts.map +1 -0
- package/dist/OpenAiError.js +10 -0
- package/dist/OpenAiError.js.map +1 -0
- package/dist/OpenAiLanguageModel.d.ts +318 -0
- package/dist/OpenAiLanguageModel.d.ts.map +1 -0
- package/dist/OpenAiLanguageModel.js +2207 -0
- package/dist/OpenAiLanguageModel.js.map +1 -0
- package/dist/{dts/OpenAiTelemetry.d.ts → OpenAiTelemetry.d.ts} +31 -13
- package/dist/OpenAiTelemetry.d.ts.map +1 -0
- package/dist/{esm/OpenAiTelemetry.js → OpenAiTelemetry.js} +11 -6
- package/dist/OpenAiTelemetry.js.map +1 -0
- package/dist/OpenAiTool.d.ts +479 -0
- package/dist/OpenAiTool.d.ts.map +1 -0
- package/dist/OpenAiTool.js +231 -0
- package/dist/OpenAiTool.js.map +1 -0
- package/dist/index.d.ts +58 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +59 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/errors.d.ts +2 -0
- package/dist/internal/errors.d.ts.map +1 -0
- package/dist/internal/errors.js +316 -0
- package/dist/internal/errors.js.map +1 -0
- package/dist/{dts/internal → internal}/utilities.d.ts.map +1 -1
- package/dist/{esm/internal → internal}/utilities.js +4 -3
- package/dist/internal/utilities.js.map +1 -0
- package/package.json +45 -97
- package/src/Generated.ts +28521 -20036
- package/src/OpenAiClient.ts +222 -1810
- package/src/OpenAiConfig.ts +20 -34
- package/src/OpenAiError.ts +107 -0
- package/src/OpenAiLanguageModel.ts +1807 -638
- package/src/OpenAiTelemetry.ts +24 -19
- package/src/OpenAiTool.ts +216 -70
- package/src/index.ts +35 -8
- package/src/internal/errors.ts +347 -0
- package/src/internal/utilities.ts +7 -5
- package/Generated/package.json +0 -6
- package/OpenAiClient/package.json +0 -6
- package/OpenAiConfig/package.json +0 -6
- package/OpenAiEmbeddingModel/package.json +0 -6
- package/OpenAiLanguageModel/package.json +0 -6
- package/OpenAiTelemetry/package.json +0 -6
- package/OpenAiTokenizer/package.json +0 -6
- package/OpenAiTool/package.json +0 -6
- package/README.md +0 -5
- package/dist/cjs/Generated.js +0 -7150
- package/dist/cjs/Generated.js.map +0 -1
- package/dist/cjs/OpenAiClient.js +0 -1562
- package/dist/cjs/OpenAiClient.js.map +0 -1
- package/dist/cjs/OpenAiConfig.js +0 -30
- package/dist/cjs/OpenAiConfig.js.map +0 -1
- package/dist/cjs/OpenAiEmbeddingModel.js +0 -155
- package/dist/cjs/OpenAiEmbeddingModel.js.map +0 -1
- package/dist/cjs/OpenAiLanguageModel.js +0 -1147
- package/dist/cjs/OpenAiLanguageModel.js.map +0 -1
- package/dist/cjs/OpenAiTelemetry.js +0 -38
- package/dist/cjs/OpenAiTelemetry.js.map +0 -1
- package/dist/cjs/OpenAiTokenizer.js +0 -83
- package/dist/cjs/OpenAiTokenizer.js.map +0 -1
- package/dist/cjs/OpenAiTool.js +0 -93
- package/dist/cjs/OpenAiTool.js.map +0 -1
- package/dist/cjs/index.js +0 -24
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/internal/utilities.js +0 -32
- package/dist/cjs/internal/utilities.js.map +0 -1
- package/dist/dts/Generated.d.ts +0 -40661
- package/dist/dts/Generated.d.ts.map +0 -1
- package/dist/dts/OpenAiClient.d.ts +0 -3119
- package/dist/dts/OpenAiClient.d.ts.map +0 -1
- package/dist/dts/OpenAiConfig.d.ts.map +0 -1
- package/dist/dts/OpenAiEmbeddingModel.d.ts +0 -109
- package/dist/dts/OpenAiEmbeddingModel.d.ts.map +0 -1
- package/dist/dts/OpenAiLanguageModel.d.ts +0 -235
- package/dist/dts/OpenAiLanguageModel.d.ts.map +0 -1
- package/dist/dts/OpenAiTelemetry.d.ts.map +0 -1
- package/dist/dts/OpenAiTokenizer.d.ts +0 -17
- package/dist/dts/OpenAiTokenizer.d.ts.map +0 -1
- package/dist/dts/OpenAiTool.d.ts +0 -200
- package/dist/dts/OpenAiTool.d.ts.map +0 -1
- package/dist/dts/index.d.ts +0 -33
- package/dist/dts/index.d.ts.map +0 -1
- package/dist/esm/Generated.js +0 -7150
- package/dist/esm/Generated.js.map +0 -1
- package/dist/esm/OpenAiClient.js +0 -1499
- package/dist/esm/OpenAiClient.js.map +0 -1
- package/dist/esm/OpenAiConfig.js.map +0 -1
- package/dist/esm/OpenAiEmbeddingModel.js +0 -143
- package/dist/esm/OpenAiEmbeddingModel.js.map +0 -1
- package/dist/esm/OpenAiLanguageModel.js +0 -1134
- package/dist/esm/OpenAiLanguageModel.js.map +0 -1
- package/dist/esm/OpenAiTelemetry.js.map +0 -1
- package/dist/esm/OpenAiTokenizer.js +0 -73
- package/dist/esm/OpenAiTokenizer.js.map +0 -1
- package/dist/esm/OpenAiTool.js +0 -84
- package/dist/esm/OpenAiTool.js.map +0 -1
- package/dist/esm/index.js +0 -33
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/internal/utilities.js.map +0 -1
- package/dist/esm/package.json +0 -4
- package/index/package.json +0 -6
- package/src/OpenAiEmbeddingModel.ts +0 -243
- package/src/OpenAiTokenizer.ts +0 -70
- /package/dist/{dts/internal → internal}/utilities.d.ts +0 -0
package/src/OpenAiTelemetry.ts
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
97
|
+
* @category models
|
|
93
98
|
*/
|
|
94
99
|
export type WellKnownServiceTier = "auto" | "default"
|
|
95
100
|
|
|
96
101
|
/**
|
|
97
102
|
* @since 1.0.0
|
|
98
|
-
* @since
|
|
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
|
|
126
|
+
* @since utilities
|
|
122
127
|
*/
|
|
123
|
-
export const addGenAIAnnotations
|
|
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
|
|
136
|
+
* @since utilities
|
|
132
137
|
*/
|
|
133
|
-
(options: OpenAiTelemetryAttributeOptions)
|
|
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
|
|
146
|
+
* @since utilities
|
|
142
147
|
*/
|
|
143
|
-
(span: Span, options: OpenAiTelemetryAttributeOptions)
|
|
144
|
-
|
|
148
|
+
(span: Span, options: OpenAiTelemetryAttributeOptions): void
|
|
149
|
+
} = dual(2, (span: Span, options: OpenAiTelemetryAttributeOptions) => {
|
|
145
150
|
Telemetry.addGenAIAnnotations(span, options)
|
|
146
|
-
if (
|
|
147
|
-
if (
|
|
151
|
+
if (options.openai != null) {
|
|
152
|
+
if (options.openai.request != null) {
|
|
148
153
|
addOpenAiRequestAttributes(span, options.openai.request)
|
|
149
154
|
}
|
|
150
|
-
if (
|
|
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
|
|
7
|
-
import * as Generated from "./Generated.
|
|
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
|
|
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
|
-
|
|
65
|
+
customName: "OpenAiCodeInterpreter",
|
|
16
66
|
providerName: "code_interpreter",
|
|
17
|
-
args: {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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
|
|
85
|
+
* @category tools
|
|
49
86
|
*/
|
|
50
87
|
export const FileSearch = Tool.providerDefined({
|
|
51
88
|
id: "openai.file_search",
|
|
52
|
-
|
|
89
|
+
customName: "OpenAiFileSearch",
|
|
53
90
|
providerName: "file_search",
|
|
54
|
-
args: Struct
|
|
55
|
-
|
|
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
|
|
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
|
-
|
|
220
|
+
customName: "OpenAiWebSearch",
|
|
65
221
|
providerName: "web_search",
|
|
66
|
-
args: Struct
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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
|
-
|
|
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
|
|
242
|
+
* @category tools
|
|
82
243
|
*/
|
|
83
244
|
export const WebSearchPreview = Tool.providerDefined({
|
|
84
245
|
id: "openai.web_search_preview",
|
|
85
|
-
|
|
246
|
+
customName: "OpenAiWebSearchPreview",
|
|
86
247
|
providerName: "web_search_preview",
|
|
87
|
-
args: Struct
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
20
|
+
export * as OpenAiClient from "./OpenAiClient.ts"
|
|
15
21
|
|
|
16
22
|
/**
|
|
17
23
|
* @since 1.0.0
|
|
18
24
|
*/
|
|
19
|
-
export * as
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
66
|
+
export * as OpenAiTool from "./OpenAiTool.ts"
|