@effect/ai 0.14.1 → 0.16.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 (134) hide show
  1. package/AiEmbeddingModel/package.json +6 -0
  2. package/AiLanguageModel/package.json +6 -0
  3. package/AiTool/package.json +6 -0
  4. package/dist/cjs/AiChat.js +65 -86
  5. package/dist/cjs/AiChat.js.map +1 -1
  6. package/dist/cjs/{Embeddings.js → AiEmbeddingModel.js} +12 -12
  7. package/dist/cjs/AiEmbeddingModel.js.map +1 -0
  8. package/dist/cjs/AiError.js +8 -1
  9. package/dist/cjs/AiError.js.map +1 -1
  10. package/dist/cjs/AiInput.js +335 -248
  11. package/dist/cjs/AiInput.js.map +1 -1
  12. package/dist/cjs/AiLanguageModel.js +311 -0
  13. package/dist/cjs/AiLanguageModel.js.map +1 -0
  14. package/dist/cjs/AiModel.js +11 -5
  15. package/dist/cjs/AiModel.js.map +1 -1
  16. package/dist/cjs/AiPlan.js +10 -3
  17. package/dist/cjs/AiPlan.js.map +1 -1
  18. package/dist/cjs/AiResponse.js +481 -165
  19. package/dist/cjs/AiResponse.js.map +1 -1
  20. package/dist/cjs/AiTelemetry.js +10 -3
  21. package/dist/cjs/AiTelemetry.js.map +1 -1
  22. package/dist/cjs/AiTool.js +93 -0
  23. package/dist/cjs/AiTool.js.map +1 -0
  24. package/dist/cjs/AiToolkit.js +121 -98
  25. package/dist/cjs/AiToolkit.js.map +1 -1
  26. package/dist/cjs/Tokenizer.js +14 -16
  27. package/dist/cjs/Tokenizer.js.map +1 -1
  28. package/dist/cjs/index.js +7 -9
  29. package/dist/cjs/internal/aiPlan.js +6 -9
  30. package/dist/cjs/internal/aiPlan.js.map +1 -1
  31. package/dist/cjs/internal/common.js +22 -0
  32. package/dist/cjs/internal/common.js.map +1 -0
  33. package/dist/dts/AiChat.d.ts +58 -44
  34. package/dist/dts/AiChat.d.ts.map +1 -1
  35. package/dist/dts/{Embeddings.d.ts → AiEmbeddingModel.d.ts} +13 -14
  36. package/dist/dts/AiEmbeddingModel.d.ts.map +1 -0
  37. package/dist/dts/AiError.d.ts +4 -3
  38. package/dist/dts/AiError.d.ts.map +1 -1
  39. package/dist/dts/AiInput.d.ts +441 -146
  40. package/dist/dts/AiInput.d.ts.map +1 -1
  41. package/dist/dts/AiLanguageModel.d.ts +263 -0
  42. package/dist/dts/AiLanguageModel.d.ts.map +1 -0
  43. package/dist/dts/AiModel.d.ts +21 -20
  44. package/dist/dts/AiModel.d.ts.map +1 -1
  45. package/dist/dts/AiPlan.d.ts +90 -26
  46. package/dist/dts/AiPlan.d.ts.map +1 -1
  47. package/dist/dts/AiResponse.d.ts +711 -100
  48. package/dist/dts/AiResponse.d.ts.map +1 -1
  49. package/dist/dts/AiTelemetry.d.ts +175 -157
  50. package/dist/dts/AiTelemetry.d.ts.map +1 -1
  51. package/dist/dts/AiTool.d.ts +288 -0
  52. package/dist/dts/AiTool.d.ts.map +1 -0
  53. package/dist/dts/AiToolkit.d.ts +50 -111
  54. package/dist/dts/AiToolkit.d.ts.map +1 -1
  55. package/dist/dts/Tokenizer.d.ts +8 -6
  56. package/dist/dts/Tokenizer.d.ts.map +1 -1
  57. package/dist/dts/index.d.ts +8 -12
  58. package/dist/dts/index.d.ts.map +1 -1
  59. package/dist/dts/internal/common.d.ts +2 -0
  60. package/dist/dts/internal/common.d.ts.map +1 -0
  61. package/dist/esm/AiChat.js +62 -83
  62. package/dist/esm/AiChat.js.map +1 -1
  63. package/dist/esm/{Embeddings.js → AiEmbeddingModel.js} +10 -10
  64. package/dist/esm/AiEmbeddingModel.js.map +1 -0
  65. package/dist/esm/AiError.js +8 -1
  66. package/dist/esm/AiError.js.map +1 -1
  67. package/dist/esm/AiInput.js +316 -238
  68. package/dist/esm/AiInput.js.map +1 -1
  69. package/dist/esm/AiLanguageModel.js +300 -0
  70. package/dist/esm/AiLanguageModel.js.map +1 -0
  71. package/dist/esm/AiModel.js +11 -5
  72. package/dist/esm/AiModel.js.map +1 -1
  73. package/dist/esm/AiPlan.js +8 -2
  74. package/dist/esm/AiPlan.js.map +1 -1
  75. package/dist/esm/AiResponse.js +467 -162
  76. package/dist/esm/AiResponse.js.map +1 -1
  77. package/dist/esm/AiTelemetry.js +8 -2
  78. package/dist/esm/AiTelemetry.js.map +1 -1
  79. package/dist/esm/AiTool.js +82 -0
  80. package/dist/esm/AiTool.js.map +1 -0
  81. package/dist/esm/AiToolkit.js +118 -96
  82. package/dist/esm/AiToolkit.js.map +1 -1
  83. package/dist/esm/Tokenizer.js +14 -16
  84. package/dist/esm/Tokenizer.js.map +1 -1
  85. package/dist/esm/index.js +8 -12
  86. package/dist/esm/index.js.map +1 -1
  87. package/dist/esm/internal/aiPlan.js +4 -7
  88. package/dist/esm/internal/aiPlan.js.map +1 -1
  89. package/dist/esm/internal/common.js +14 -0
  90. package/dist/esm/internal/common.js.map +1 -0
  91. package/package.json +28 -36
  92. package/src/AiChat.ts +182 -207
  93. package/src/{Embeddings.ts → AiEmbeddingModel.ts} +19 -18
  94. package/src/AiError.ts +8 -1
  95. package/src/AiInput.ts +434 -313
  96. package/src/AiLanguageModel.ts +569 -0
  97. package/src/AiModel.ts +47 -29
  98. package/src/AiPlan.ts +102 -30
  99. package/src/AiResponse.ts +743 -187
  100. package/src/AiTelemetry.ts +214 -197
  101. package/src/AiTool.ts +496 -0
  102. package/src/AiToolkit.ts +200 -240
  103. package/src/Tokenizer.ts +18 -22
  104. package/src/index.ts +9 -14
  105. package/src/internal/aiPlan.ts +12 -14
  106. package/src/internal/common.ts +12 -0
  107. package/AiModels/package.json +0 -6
  108. package/AiRole/package.json +0 -6
  109. package/Completions/package.json +0 -6
  110. package/Embeddings/package.json +0 -6
  111. package/dist/cjs/AiModels.js +0 -54
  112. package/dist/cjs/AiModels.js.map +0 -1
  113. package/dist/cjs/AiRole.js +0 -106
  114. package/dist/cjs/AiRole.js.map +0 -1
  115. package/dist/cjs/Completions.js +0 -256
  116. package/dist/cjs/Completions.js.map +0 -1
  117. package/dist/cjs/Embeddings.js.map +0 -1
  118. package/dist/dts/AiModels.d.ts +0 -34
  119. package/dist/dts/AiModels.d.ts.map +0 -1
  120. package/dist/dts/AiRole.d.ts +0 -111
  121. package/dist/dts/AiRole.d.ts.map +0 -1
  122. package/dist/dts/Completions.d.ts +0 -128
  123. package/dist/dts/Completions.d.ts.map +0 -1
  124. package/dist/dts/Embeddings.d.ts.map +0 -1
  125. package/dist/esm/AiModels.js +0 -44
  126. package/dist/esm/AiModels.js.map +0 -1
  127. package/dist/esm/AiRole.js +0 -93
  128. package/dist/esm/AiRole.js.map +0 -1
  129. package/dist/esm/Completions.js +0 -245
  130. package/dist/esm/Completions.js.map +0 -1
  131. package/dist/esm/Embeddings.js.map +0 -1
  132. package/src/AiModels.ts +0 -77
  133. package/src/AiRole.ts +0 -122
  134. package/src/Completions.ts +0 -434
@@ -0,0 +1,288 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import type * as Context_ from "effect/Context";
5
+ import type * as Effect from "effect/Effect";
6
+ import { type Pipeable } from "effect/Pipeable";
7
+ import * as Schema from "effect/Schema";
8
+ import * as AST from "effect/SchemaAST";
9
+ import type * as Types from "effect/Types";
10
+ import type { AiError } from "./AiError.js";
11
+ /**
12
+ * @since 1.0.0
13
+ * @category Type Ids
14
+ */
15
+ export declare const TypeId: unique symbol;
16
+ /**
17
+ * @since 1.0.0
18
+ * @category Type Ids
19
+ */
20
+ export type TypeId = typeof TypeId;
21
+ /**
22
+ * A `AiTool` represents an action that a large language model can take within
23
+ * your application. The results of a tool call can be returned back to the
24
+ * large language model to be incorporated into its next response.
25
+ *
26
+ * @since 1.0.0
27
+ * @category Models
28
+ */
29
+ export interface AiTool<out Name extends string, out Parameters extends AnyStructSchema = Schema.Struct<{}>, out Success extends Schema.Schema.Any = typeof Schema.Void, out Failure extends Schema.Schema.All = typeof Schema.Never, out Requirements = never> extends Pipeable {
30
+ readonly [TypeId]: {
31
+ readonly _Requirements: Types.Covariant<Requirements>;
32
+ };
33
+ /**
34
+ * The name of the tool.
35
+ */
36
+ readonly name: Name;
37
+ /**
38
+ * The optional description of the tool.
39
+ */
40
+ readonly description?: string | undefined;
41
+ /**
42
+ * A key for the tool, used to identify the tool within a `Context`.
43
+ */
44
+ readonly key: string;
45
+ /**
46
+ * A `Schema` representing the type of the parameters that a tool handler
47
+ * must be called with.
48
+ */
49
+ readonly parametersSchema: Parameters;
50
+ /**
51
+ * A `Schema` representing the type that a tool returns from its handler
52
+ * if successful.
53
+ */
54
+ readonly successSchema: Success;
55
+ /**
56
+ * A `Schema` representing the type that a tool returns from its handler
57
+ * if it fails.
58
+ */
59
+ readonly failureSchema: Failure;
60
+ /**
61
+ * Adds a requirement on a particular service for the tool call to be able to
62
+ * be executed.
63
+ */
64
+ addRequirement<Requirement>(): AiTool<Name, Parameters, Success, Failure, Requirements | Requirement>;
65
+ /**
66
+ * Set the schema to use for tool handler success.
67
+ */
68
+ setSuccess<SuccessSchema extends Schema.Schema.Any>(schema: SuccessSchema): AiTool<Name, Parameters, SuccessSchema, Failure>;
69
+ /**
70
+ * Set the schema to use for tool handler failure.
71
+ */
72
+ setFailure<FailureSchema extends Schema.Schema.Any>(schema: FailureSchema): AiTool<Name, Parameters, Success, FailureSchema>;
73
+ /**
74
+ * Set the schema for the tool parameters.
75
+ */
76
+ setParameters<ParametersSchema extends Schema.Struct<any> | Schema.Struct.Fields>(schema: ParametersSchema): AiTool<Name, ParametersSchema extends Schema.Struct<infer _> ? ParametersSchema : ParametersSchema extends Schema.Struct.Fields ? Schema.Struct<ParametersSchema> : never, Success>;
77
+ }
78
+ /**
79
+ * @since 1.0.0
80
+ * @category Guards
81
+ */
82
+ export declare const isAiTool: (u: unknown) => u is AiTool<any, any, any, any, any>;
83
+ /**
84
+ * @since 1.0.0
85
+ * @category Models
86
+ */
87
+ export interface Any extends Pipeable {
88
+ readonly [TypeId]: {
89
+ readonly _Requirements: Types.Covariant<any>;
90
+ };
91
+ readonly name: string;
92
+ readonly description?: string | undefined;
93
+ readonly key: string;
94
+ readonly parametersSchema: AnyStructSchema;
95
+ }
96
+ /**
97
+ * @since 1.0.0
98
+ * @category Models
99
+ */
100
+ export interface AnyWithProtocol extends Any {
101
+ readonly successSchema: Schema.Schema.Any;
102
+ readonly failureSchema: Schema.Schema.All;
103
+ }
104
+ /**
105
+ * Represents an `AiTool` that has been implemented within the application.
106
+ *
107
+ * @since 1.0.0
108
+ * @category Models
109
+ */
110
+ export interface Handler<Name extends string> {
111
+ readonly _: unique symbol;
112
+ readonly name: Name;
113
+ readonly handler: (params: any) => Effect.Effect<any, any>;
114
+ readonly context: Context_.Context<never>;
115
+ }
116
+ /**
117
+ * A utility type which returns the type of the `Effect` that will be used to
118
+ * resolve a tool call.
119
+ *
120
+ * @since 1.0.0
121
+ * @category Utility Types
122
+ */
123
+ export type HandlerEffect<Tool extends Any> = [Tool] extends [
124
+ AiTool<infer _Name, infer _Parameters, infer _Success, infer _Failure, infer _Requirements>
125
+ ] ? Effect.Effect<_Success["Type"], AiError | _Failure["Type"], _Parameters["Context"] | _Success["Context"] | _Failure["Context"] | _Requirements> : never;
126
+ /**
127
+ * Represents the result of calling the handler for a particular tool.
128
+ *
129
+ * @since 1.0.0
130
+ * @category Models
131
+ */
132
+ export interface HandlerResult<Tool extends Any> {
133
+ /**
134
+ * The result of executing the handler for a particular tool.
135
+ */
136
+ readonly result: Success<Tool>;
137
+ /**
138
+ * The encoded result of executing the handler for a particular tool, which
139
+ * is suitable for returning back to the large language model for
140
+ * incorporation into further responses.
141
+ */
142
+ readonly encodedResult: unknown;
143
+ }
144
+ /**
145
+ * A utility mapped type which associates tool names with tools.
146
+ *
147
+ * @since 1.0.0
148
+ * @category Utility Types
149
+ */
150
+ export type ByName<Tools extends Any> = {
151
+ readonly [Tool in Tools as Tool["name"]]: Tool;
152
+ };
153
+ /**
154
+ * A utility type to extract the `Name` type from an `AiTool`.
155
+ *
156
+ * @since 1.0.0
157
+ * @category Utility Types
158
+ */
159
+ export type Name<Tool> = Tool extends AiTool<infer _Name, infer _Parameters, infer _Success, infer _Failure, infer _Requirements> ? _Name : never;
160
+ /**
161
+ * A utility type to extract the type of the parameters which an `AiTool` must
162
+ * be called with.
163
+ *
164
+ * @since 1.0.0
165
+ * @category Utility Types
166
+ */
167
+ export type Parameters<Tool> = Tool extends AiTool<infer _Name, infer _Parameters, infer _Success, infer _Failure, infer _Requirements> ? _Parameters["Type"] : never;
168
+ /**
169
+ * A utility type to extract the schema type of the parameters which an `AiTool`
170
+ * must be called with.
171
+ *
172
+ * @since 1.0.0
173
+ * @category Utility Types
174
+ */
175
+ export type ParametersSchema<Tool> = Tool extends AiTool<infer _Name, infer _Parameters, infer _Success, infer _Failure, infer _Requirements> ? _Parameters : never;
176
+ /**
177
+ * A utility type to extract the type of the response that an `AiTool` returns
178
+ * from its handler if successful.
179
+ *
180
+ * @since 1.0.0
181
+ * @category Utility Types
182
+ */
183
+ export type Success<Tool> = Tool extends AiTool<infer _Name, infer _Parameters, infer _Success, infer _Failure, infer _Requirements> ? _Success["Type"] : never;
184
+ /**
185
+ * A utility type to extract the schema type of the response that an `AiTool`
186
+ * returns from its handler if successful.
187
+ *
188
+ * @since 1.0.0
189
+ * @category Utility Types
190
+ */
191
+ export type SuccessSchema<Tool> = Tool extends AiTool<infer _Name, infer _Parameters, infer _Success, infer _Failure, infer _Requirements> ? _Success : never;
192
+ /**
193
+ * A utility type to extract the type of the response that an `AiTool` returns
194
+ * from its handler if it fails.
195
+ *
196
+ * @since 1.0.0
197
+ * @category Utility Types
198
+ */
199
+ export type Failure<Tool> = Tool extends AiTool<infer _Name, infer _Parameters, infer _Success, infer _Failure, infer _Requirements> ? _Failure["Type"] : never;
200
+ /**
201
+ * A utility type to extract the schema type of the response that an `AiTool`
202
+ * returns from its handler if it fails.
203
+ *
204
+ * @since 1.0.0
205
+ * @category Utility Types
206
+ */
207
+ export type FailureSchema<Tool> = Tool extends AiTool<infer _Name, infer _Parameters, infer _Success, infer _Failure, infer _Requirements> ? _Failure : never;
208
+ /**
209
+ * A utility type to the `Context` type from an `AiTool`.
210
+ *
211
+ * @since 1.0.0
212
+ * @category Utility Types
213
+ */
214
+ export type Context<Tool> = Tool extends AiTool<infer _Name, infer _Parameters, infer _Success, infer _Failure, infer _Requirements> ? _Parameters["Context"] | _Success["Context"] | _Failure["Context"] | _Requirements : never;
215
+ /**
216
+ * @since 1.0.0
217
+ * @category Utility Types
218
+ */
219
+ export interface AnyStructSchema extends Pipeable {
220
+ readonly [Schema.TypeId]: any;
221
+ readonly make: any;
222
+ readonly Type: any;
223
+ readonly Encoded: any;
224
+ readonly Context: any;
225
+ readonly ast: AST.AST;
226
+ readonly fields: Schema.Struct.Fields;
227
+ readonly annotations: any;
228
+ }
229
+ /**
230
+ * @since 1.0.0
231
+ * @category Utility Types
232
+ */
233
+ export interface AnyTaggedRequestSchema extends AnyStructSchema {
234
+ readonly _tag: string;
235
+ readonly success: Schema.Schema.Any;
236
+ readonly failure: Schema.Schema.All;
237
+ }
238
+ /**
239
+ * A utility type to convert a `Schema.TaggedRequest` into an `AiTool`.
240
+ *
241
+ * @since 1.0.0
242
+ * @category Utility Types
243
+ */
244
+ export interface FromTaggedRequest<S extends AnyTaggedRequestSchema> extends AiTool<S["_tag"], S, S["success"], S["failure"]> {
245
+ }
246
+ /**
247
+ * A utility type which returns the handler type for an `AiTool`.
248
+ *
249
+ * @since 1.0.0
250
+ * @category Utility Types
251
+ */
252
+ export type ToHandler<Tool extends Any> = Tool extends AiTool<infer _Name, infer _Parameters, infer _Success, infer _Failure, infer _Requirements> ? Handler<_Name> : never;
253
+ /**
254
+ * Constructs an `AiTool` from a name and, optionally, a specification for the
255
+ * tool call's protocol.
256
+ *
257
+ * @since 1.0.0
258
+ * @category constructors
259
+ */
260
+ export declare const make: <const Name extends string, Parameters extends Schema.Struct.Fields = {}, Success extends Schema.Schema.Any = typeof Schema.Void, Failure extends Schema.Schema.All = typeof Schema.Never>(name: Name, options?: {
261
+ /**
262
+ * An optional description of the tool.
263
+ */
264
+ readonly description?: string | undefined;
265
+ /**
266
+ * A `Schema` representing the type of the parameters that a tool call
267
+ * handler must be provided with.
268
+ */
269
+ readonly parameters?: Parameters;
270
+ /**
271
+ * A `Schema` representing the type that a tool returns from its handler if
272
+ * successful.
273
+ */
274
+ readonly success?: Success;
275
+ /**
276
+ * A `Schema` representing the type that a tool returns from its handler if
277
+ * it fails.
278
+ */
279
+ readonly failure?: Failure;
280
+ }) => AiTool<Name, Schema.Struct<Parameters>, Success, Failure>;
281
+ /**
282
+ * Constructs a new `AiTool` from a `Schema.TaggedRequest`.
283
+ *
284
+ * @since 1.0.0
285
+ * @category constructors
286
+ */
287
+ export declare const fromTaggedRequest: <S extends AnyTaggedRequestSchema>(schema: S) => FromTaggedRequest<S>;
288
+ //# sourceMappingURL=AiTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AiTool.d.ts","sourceRoot":"","sources":["../../src/AiTool.ts"],"names":[],"mappings":"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"}
@@ -3,154 +3,93 @@
3
3
  */
4
4
  import * as Context from "effect/Context";
5
5
  import * as Effect from "effect/Effect";
6
- import * as HashMap from "effect/HashMap";
7
- import * as Inspectable from "effect/Inspectable";
6
+ import type { Inspectable } from "effect/Inspectable";
8
7
  import * as Layer from "effect/Layer";
9
- import type * as Schema from "effect/Schema";
10
- import type { Scope } from "effect/Scope";
11
- import type * as Types from "effect/Types";
8
+ import type { Pipeable } from "effect/Pipeable";
9
+ import type * as Scope from "effect/Scope";
10
+ import * as AiTool from "./AiTool.js";
12
11
  /**
13
12
  * @since 1.0.0
14
- * @category type ids
13
+ * @category Type Ids
15
14
  */
16
15
  export declare const TypeId: unique symbol;
17
16
  /**
18
17
  * @since 1.0.0
19
- * @category type ids
18
+ * @category Type Ids
20
19
  */
21
20
  export type TypeId = typeof TypeId;
22
21
  /**
22
+ * An `AiToolkit` represents a set of tools that a large language model can
23
+ * use to augment its response.
24
+ *
23
25
  * @since 1.0.0
24
- * @category models
26
+ * @category Models
25
27
  */
26
- export interface AiToolkit<in out Tools extends Tool.AnySchema> extends Effect.Effect<Handlers<Tools>, never, Tool.Services<Tools> | Registry>, Inspectable.Inspectable {
28
+ export interface AiToolkit<in out Tools extends AiTool.Any> extends Effect.Effect<ToHandler<Tools>, never, AiTool.ToHandler<Tools>>, Inspectable, Pipeable {
29
+ new (_: never): {};
27
30
  readonly [TypeId]: TypeId;
28
- readonly tools: HashMap.HashMap<string, Tools>;
29
- readonly add: <S extends Tool.AnySchema>(tool: S) => AiToolkit<Tools | S>;
30
- readonly addAll: <ToAdd extends ReadonlyArray<Tool.AnySchema>>(...tools: ToAdd) => AiToolkit<Tools | ToAdd[number]>;
31
- readonly concat: <T extends Tool.AnySchema>(that: AiToolkit<T>) => AiToolkit<Tools | T>;
32
- readonly implement: <R, EX = never, RX = never>(f: (handlers: Handlers<Tools>) => Handlers<never, R> | Effect.Effect<Handlers<never, R>, EX, RX>) => Layer.Layer<Tool.ServiceFromTag<Tools["_tag"]> | Registry, EX, Exclude<R | RX, Scope>>;
33
- }
34
- /**
35
- * @since 1.0.0
36
- * @category models
37
- */
38
- export declare namespace AiToolkit {
39
- /**
40
- * @since 1.0.0
41
- * @category models
42
- */
43
- type Tools<A> = A extends AiToolkit<infer Tools> ? Tools : never;
44
- /**
45
- * @since 1.0.0
46
- * @category models
47
- */
48
- type SuccessSchema<A> = A extends AiToolkit<infer Tools> ? Tools["success"] : never;
49
- }
50
- /**
51
- * @since 1.0.0
52
- * @category tool
53
- */
54
- export declare namespace Tool {
55
- /**
56
- * @since 1.0.0
57
- * @category tool
58
- */
59
- interface AnySchema {
60
- readonly [Schema.TypeId]: any;
61
- readonly _tag: string;
62
- readonly Type: Schema.SerializableWithResult.All;
63
- readonly success: Schema.Schema.Any;
64
- }
65
- /**
66
- * @since 1.0.0
67
- * @category tool
68
- */
69
- type Success<Tool extends AnySchema> = Schema.WithResult.Success<Tool["Type"]>;
70
- /**
71
- * @since 1.0.0
72
- * @category tool
73
- */
74
- type Failure<Tool extends AnySchema> = Schema.WithResult.Failure<Tool["Type"]>;
75
- /**
76
- * @since 1.0.0
77
- * @category tool
78
- */
79
- type Context<Tool extends AnySchema> = Schema.WithResult.Context<Tool["Type"]>;
80
- /**
81
- * @since 1.0.0
82
- * @category tool
83
- */
84
- type Handler<Tool extends AnySchema, R> = (params: Tool["Type"]) => Effect.Effect<Success<Tool>, Failure<Tool>, R>;
85
31
  /**
86
- * @since 1.0.0
87
- * @category tool
32
+ * A map containing the tools that are part of this toolkit.
88
33
  */
89
- type HandlerAny = (params: any) => Effect.Effect<any, any, any>;
34
+ readonly tools: AiTool.ByName<Tools>;
90
35
  /**
91
- * @since 1.0.0
92
- * @category tool
36
+ * Converts this toolkit into a `Context` object containing the handlers for
37
+ * all tools in the toolkit.
93
38
  */
94
- interface Service<Tag extends string> {
95
- readonly _: unique symbol;
96
- readonly name: Types.Invariant<Tag>;
97
- }
39
+ toContext<Handlers extends HandlersFrom<Tools>, EX = never, RX = never>(build: Handlers | Effect.Effect<Handlers, EX, RX>): Effect.Effect<Context.Context<AiTool.ToHandler<Tools>>, EX, RX>;
98
40
  /**
99
- * @since 1.0.0
100
- * @category tool
41
+ * Converts this toolkit into a `Layer` containing the handlers for all tools
42
+ * in the toolkit.
101
43
  */
102
- type ServiceFromTag<Tag extends string> = Tag extends infer T ? T extends string ? Service<T> : never : never;
103
- /**
104
- * @since 1.0.0
105
- * @category tool
106
- */
107
- type Services<Tools extends AnySchema> = ServiceFromTag<Tools["_tag"]>;
44
+ toLayer<Handlers extends HandlersFrom<Tools>, EX = never, RX = never>(build: Handlers | Effect.Effect<Handlers, EX, RX>): Layer.Layer<AiTool.ToHandler<Tools>, EX, Exclude<RX, Scope.Scope>>;
108
45
  }
109
- declare const Registry_base: Context.TagClass<Registry, "@effect/ai/AiToolkit/Registry", Map<Tool.AnySchema, Tool.HandlerAny>>;
110
46
  /**
111
47
  * @since 1.0.0
112
- * @category registry
48
+ * @category Models
113
49
  */
114
- export declare class Registry extends Registry_base {
115
- static readonly Live: Layer.Layer<Registry>;
50
+ export interface Any {
51
+ readonly [TypeId]: TypeId;
52
+ readonly tools: ReadonlyMap<string, AiTool.Any>;
116
53
  }
117
54
  /**
55
+ * Represents an `AiToolkit` which has been augmented with a handler function
56
+ * for resolving tool call requests.
57
+ *
118
58
  * @since 1.0.0
119
- * @category constructors
59
+ * @category Models
120
60
  */
121
- export declare const empty: AiToolkit<never>;
61
+ export interface ToHandler<in out Tool extends AiTool.Any> {
62
+ readonly tools: ReadonlyArray<Tool>;
63
+ readonly handle: (toolName: AiTool.Name<Tool>, toolParams: AiTool.Parameters<Tool>) => AiTool.HandlerEffect<Tool>;
64
+ }
122
65
  /**
66
+ * A utility mapped type which associates tool names with their handlers.
67
+ *
123
68
  * @since 1.0.0
124
- * @category handlers
69
+ * @category Utility Types
125
70
  */
126
- export declare const HandlersTypeId: unique symbol;
71
+ export type HandlersFrom<Tool extends AiTool.Any> = {
72
+ [Name in Tool as Tool["name"]]: (params: AiTool.Parameters<Tool>) => AiTool.HandlerEffect<Tool>;
73
+ };
127
74
  /**
75
+ * A utility type which returns the tools in an `AiToolkit`.
76
+ *
128
77
  * @since 1.0.0
129
- * @category handlers
78
+ * @category Utility Types
130
79
  */
131
- export type HandlersTypeId = typeof HandlersTypeId;
80
+ export type Tools<Toolkit> = Toolkit extends AiToolkit<infer Tool> ? string extends Tool["name"] ? never : Tool : never;
132
81
  /**
82
+ * Constructs a new `AiToolkit` from the specified tools.
83
+ *
133
84
  * @since 1.0.0
134
- * @category handlers
85
+ * @category Constructors
135
86
  */
136
- export interface Handlers<in out Tools extends Tool.AnySchema, R = never> {
137
- readonly [HandlersTypeId]: Handlers.Variance<Tools>;
138
- readonly toolkit: AiToolkit<Tools>;
139
- readonly handlers: HashMap.HashMap<string, Tool.Handler<any, R>>;
140
- readonly handle: <Tag extends Types.Tags<Tools>, RH>(tag: Tag, f: Tool.Handler<Types.ExtractTag<Tools, Tag>, RH>) => Handlers<Types.ExcludeTag<Tools, Tag>, R | RH | Tool.Context<Types.ExtractTag<Tools, Tag>>>;
141
- }
87
+ export declare const make: <const Tools extends ReadonlyArray<AiTool.Any>>(...tools: Tools) => AiToolkit<Tools[number]>;
142
88
  /**
89
+ * Merges this toolkit with one or more other toolkits.
90
+ *
143
91
  * @since 1.0.0
144
- * @category handlers
92
+ * @category Merging
145
93
  */
146
- export declare namespace Handlers {
147
- /**
148
- * @since 1.0.0
149
- * @category handlers
150
- */
151
- interface Variance<Tools extends Tool.AnySchema> {
152
- readonly _Tools: Types.Invariant<Tools>;
153
- }
154
- }
155
- export {};
94
+ export declare const merge: <const Toolkits extends ReadonlyArray<Any>>(...toolkits: Toolkits) => AiToolkit<Tools<Toolkits[number]>>;
156
95
  //# sourceMappingURL=AiToolkit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AiToolkit.d.ts","sourceRoot":"","sources":["../../src/AiToolkit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AiToolkit.d.ts","sourceRoot":"","sources":["../../src/AiToolkit.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,6 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
1
4
  import * as Context from "effect/Context";
2
5
  import * as Effect from "effect/Effect";
3
6
  import type { AiError } from "./AiError.js";
@@ -5,27 +8,26 @@ import * as AiInput from "./AiInput.js";
5
8
  declare const Tokenizer_base: Context.TagClass<Tokenizer, "@effect/ai/Tokenizer", Tokenizer.Service>;
6
9
  /**
7
10
  * @since 1.0.0
8
- * @category tags
11
+ * @category Tags
9
12
  */
10
13
  export declare class Tokenizer extends Tokenizer_base {
11
14
  }
12
15
  /**
13
16
  * @since 1.0.0
14
- * @category models
15
17
  */
16
18
  export declare namespace Tokenizer {
17
19
  /**
18
20
  * @since 1.0.0
19
- * @models
21
+ * @category Models
20
22
  */
21
23
  interface Service {
22
- readonly tokenize: (content: AiInput.Input) => Effect.Effect<Array<number>, AiError>;
23
- readonly truncate: (content: AiInput.Input, tokens: number) => Effect.Effect<AiInput.Input, AiError>;
24
+ readonly tokenize: (input: AiInput.Raw) => Effect.Effect<Array<number>, AiError>;
25
+ readonly truncate: (input: AiInput.Raw, tokens: number) => Effect.Effect<AiInput.AiInput, AiError>;
24
26
  }
25
27
  }
26
28
  /**
27
29
  * @since 1.0.0
28
- * @category constructors
30
+ * @category Constructors
29
31
  */
30
32
  export declare const make: (options: {
31
33
  readonly tokenize: (content: AiInput.AiInput) => Effect.Effect<Array<number>, AiError>;
@@ -1 +1 @@
1
- {"version":3,"file":"Tokenizer.d.ts","sourceRoot":"","sources":["../../src/Tokenizer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAE3C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;;AAEvC;;;GAGG;AACH,qBAAa,SAAU,SAAQ,cAG5B;CAAG;AAEN;;;GAGG;AACH,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC;IACjC;;;OAGG;IACH,UAAiB,OAAO;QACtB,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAA;QACpF,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;KACrG;CACF;AAED;;;GAGG;AACH,eAAO,MAAM,IAAI,YAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAA;CACvF,KAAG,SAAS,CAAC,OAQV,CAAA"}
1
+ {"version":3,"file":"Tokenizer.d.ts","sourceRoot":"","sources":["../../src/Tokenizer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;;AAEvC;;;GAGG;AACH,qBAAa,SAAU,SAAQ,cAG5B;CAAG;AAEN;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC;IACjC;;;OAGG;IACH,UAAiB,OAAO;QACtB,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAA;QAChF,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;KACnG;CACF;AAED;;;GAGG;AACH,eAAO,MAAM,IAAI,YAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAA;CACvF,KAAG,SAAS,CAAC,OAQV,CAAA"}
@@ -2,6 +2,10 @@
2
2
  * @since 1.0.0
3
3
  */
4
4
  export * as AiChat from "./AiChat.js";
5
+ /**
6
+ * @since 1.0.0
7
+ */
8
+ export * as AiEmbeddingModel from "./AiEmbeddingModel.js";
5
9
  /**
6
10
  * @since 1.0.0
7
11
  */
@@ -13,11 +17,11 @@ export * as AiInput from "./AiInput.js";
13
17
  /**
14
18
  * @since 1.0.0
15
19
  */
16
- export * as AiModel from "./AiModel.js";
20
+ export * as AiLanguageModel from "./AiLanguageModel.js";
17
21
  /**
18
22
  * @since 1.0.0
19
23
  */
20
- export * as AiModels from "./AiModels.js";
24
+ export * as AiModel from "./AiModel.js";
21
25
  /**
22
26
  * @since 1.0.0
23
27
  */
@@ -26,10 +30,6 @@ export * as AiPlan from "./AiPlan.js";
26
30
  * @since 1.0.0
27
31
  */
28
32
  export * as AiResponse from "./AiResponse.js";
29
- /**
30
- * @since 1.0.0
31
- */
32
- export * as AiRole from "./AiRole.js";
33
33
  /**
34
34
  * @since 1.0.0
35
35
  */
@@ -37,15 +37,11 @@ export * as AiTelemetry from "./AiTelemetry.js";
37
37
  /**
38
38
  * @since 1.0.0
39
39
  */
40
- export * as AiToolkit from "./AiToolkit.js";
41
- /**
42
- * @since 1.0.0
43
- */
44
- export * as Completions from "./Completions.js";
40
+ export * as AiTool from "./AiTool.js";
45
41
  /**
46
42
  * @since 1.0.0
47
43
  */
48
- export * as Embeddings from "./Embeddings.js";
44
+ export * as AiToolkit from "./AiToolkit.js";
49
45
  /**
50
46
  * @since 1.0.0
51
47
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AAEzD;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAEvD;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/internal/common.ts"],"names":[],"mappings":""}