@effect/ai 0.26.0 → 0.27.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 (188) hide show
  1. package/Chat/package.json +6 -0
  2. package/EmbeddingModel/package.json +6 -0
  3. package/IdGenerator/package.json +6 -0
  4. package/LanguageModel/package.json +6 -0
  5. package/Model/package.json +6 -0
  6. package/Prompt/package.json +6 -0
  7. package/Response/package.json +6 -0
  8. package/Telemetry/package.json +6 -0
  9. package/Tool/package.json +6 -0
  10. package/Toolkit/package.json +6 -0
  11. package/dist/cjs/AiError.js +575 -11
  12. package/dist/cjs/AiError.js.map +1 -1
  13. package/dist/cjs/Chat.js +302 -0
  14. package/dist/cjs/Chat.js.map +1 -0
  15. package/dist/cjs/EmbeddingModel.js +184 -0
  16. package/dist/cjs/EmbeddingModel.js.map +1 -0
  17. package/dist/cjs/IdGenerator.js +255 -0
  18. package/dist/cjs/IdGenerator.js.map +1 -0
  19. package/dist/cjs/LanguageModel.js +584 -0
  20. package/dist/cjs/LanguageModel.js.map +1 -0
  21. package/dist/cjs/McpServer.js +12 -4
  22. package/dist/cjs/McpServer.js.map +1 -1
  23. package/dist/cjs/Model.js +118 -0
  24. package/dist/cjs/Model.js.map +1 -0
  25. package/dist/cjs/Prompt.js +649 -0
  26. package/dist/cjs/Prompt.js.map +1 -0
  27. package/dist/cjs/Response.js +635 -0
  28. package/dist/cjs/Response.js.map +1 -0
  29. package/dist/cjs/Telemetry.js +176 -0
  30. package/dist/cjs/Telemetry.js.map +1 -0
  31. package/dist/cjs/Tokenizer.js +87 -8
  32. package/dist/cjs/Tokenizer.js.map +1 -1
  33. package/dist/cjs/Tool.js +556 -0
  34. package/dist/cjs/Tool.js.map +1 -0
  35. package/dist/cjs/Toolkit.js +279 -0
  36. package/dist/cjs/Toolkit.js.map +1 -0
  37. package/dist/cjs/index.js +21 -19
  38. package/dist/dts/AiError.d.ts +577 -9
  39. package/dist/dts/AiError.d.ts.map +1 -1
  40. package/dist/dts/Chat.d.ts +356 -0
  41. package/dist/dts/Chat.d.ts.map +1 -0
  42. package/dist/dts/EmbeddingModel.d.ts +153 -0
  43. package/dist/dts/EmbeddingModel.d.ts.map +1 -0
  44. package/dist/dts/IdGenerator.d.ts +272 -0
  45. package/dist/dts/IdGenerator.d.ts.map +1 -0
  46. package/dist/dts/LanguageModel.d.ts +458 -0
  47. package/dist/dts/LanguageModel.d.ts.map +1 -0
  48. package/dist/dts/McpSchema.d.ts +25 -25
  49. package/dist/dts/McpServer.d.ts +6 -4
  50. package/dist/dts/McpServer.d.ts.map +1 -1
  51. package/dist/dts/Model.d.ts +124 -0
  52. package/dist/dts/Model.d.ts.map +1 -0
  53. package/dist/dts/Prompt.d.ts +1119 -0
  54. package/dist/dts/Prompt.d.ts.map +1 -0
  55. package/dist/dts/Response.d.ts +1519 -0
  56. package/dist/dts/Response.d.ts.map +1 -0
  57. package/dist/dts/Telemetry.d.ts +520 -0
  58. package/dist/dts/Telemetry.d.ts.map +1 -0
  59. package/dist/dts/Tokenizer.d.ts +131 -13
  60. package/dist/dts/Tokenizer.d.ts.map +1 -1
  61. package/dist/dts/Tool.d.ts +876 -0
  62. package/dist/dts/Tool.d.ts.map +1 -0
  63. package/dist/dts/Toolkit.d.ts +310 -0
  64. package/dist/dts/Toolkit.d.ts.map +1 -0
  65. package/dist/dts/index.d.ts +498 -13
  66. package/dist/dts/index.d.ts.map +1 -1
  67. package/dist/esm/AiError.js +570 -10
  68. package/dist/esm/AiError.js.map +1 -1
  69. package/dist/esm/Chat.js +291 -0
  70. package/dist/esm/Chat.js.map +1 -0
  71. package/dist/esm/EmbeddingModel.js +173 -0
  72. package/dist/esm/EmbeddingModel.js.map +1 -0
  73. package/dist/esm/IdGenerator.js +245 -0
  74. package/dist/esm/IdGenerator.js.map +1 -0
  75. package/dist/esm/LanguageModel.js +572 -0
  76. package/dist/esm/LanguageModel.js.map +1 -0
  77. package/dist/esm/McpServer.js +12 -4
  78. package/dist/esm/McpServer.js.map +1 -1
  79. package/dist/esm/Model.js +108 -0
  80. package/dist/esm/Model.js.map +1 -0
  81. package/dist/esm/Prompt.js +633 -0
  82. package/dist/esm/Prompt.js.map +1 -0
  83. package/dist/esm/Response.js +619 -0
  84. package/dist/esm/Response.js.map +1 -0
  85. package/dist/esm/Telemetry.js +166 -0
  86. package/dist/esm/Telemetry.js.map +1 -0
  87. package/dist/esm/Tokenizer.js +87 -8
  88. package/dist/esm/Tokenizer.js.map +1 -1
  89. package/dist/esm/Tool.js +534 -0
  90. package/dist/esm/Tool.js.map +1 -0
  91. package/dist/esm/Toolkit.js +269 -0
  92. package/dist/esm/Toolkit.js.map +1 -0
  93. package/dist/esm/index.js +498 -13
  94. package/dist/esm/index.js.map +1 -1
  95. package/package.json +76 -68
  96. package/src/AiError.ts +739 -9
  97. package/src/Chat.ts +546 -0
  98. package/src/EmbeddingModel.ts +311 -0
  99. package/src/IdGenerator.ts +320 -0
  100. package/src/LanguageModel.ts +1074 -0
  101. package/src/McpServer.ts +337 -194
  102. package/src/Model.ts +155 -0
  103. package/src/Prompt.ts +1616 -0
  104. package/src/Response.ts +2131 -0
  105. package/src/Telemetry.ts +655 -0
  106. package/src/Tokenizer.ts +145 -24
  107. package/src/Tool.ts +1267 -0
  108. package/src/Toolkit.ts +516 -0
  109. package/src/index.ts +499 -13
  110. package/AiChat/package.json +0 -6
  111. package/AiEmbeddingModel/package.json +0 -6
  112. package/AiInput/package.json +0 -6
  113. package/AiLanguageModel/package.json +0 -6
  114. package/AiModel/package.json +0 -6
  115. package/AiResponse/package.json +0 -6
  116. package/AiTelemetry/package.json +0 -6
  117. package/AiTool/package.json +0 -6
  118. package/AiToolkit/package.json +0 -6
  119. package/dist/cjs/AiChat.js +0 -122
  120. package/dist/cjs/AiChat.js.map +0 -1
  121. package/dist/cjs/AiEmbeddingModel.js +0 -109
  122. package/dist/cjs/AiEmbeddingModel.js.map +0 -1
  123. package/dist/cjs/AiInput.js +0 -458
  124. package/dist/cjs/AiInput.js.map +0 -1
  125. package/dist/cjs/AiLanguageModel.js +0 -351
  126. package/dist/cjs/AiLanguageModel.js.map +0 -1
  127. package/dist/cjs/AiModel.js +0 -37
  128. package/dist/cjs/AiModel.js.map +0 -1
  129. package/dist/cjs/AiResponse.js +0 -681
  130. package/dist/cjs/AiResponse.js.map +0 -1
  131. package/dist/cjs/AiTelemetry.js +0 -58
  132. package/dist/cjs/AiTelemetry.js.map +0 -1
  133. package/dist/cjs/AiTool.js +0 -150
  134. package/dist/cjs/AiTool.js.map +0 -1
  135. package/dist/cjs/AiToolkit.js +0 -157
  136. package/dist/cjs/AiToolkit.js.map +0 -1
  137. package/dist/cjs/internal/common.js +0 -21
  138. package/dist/cjs/internal/common.js.map +0 -1
  139. package/dist/dts/AiChat.d.ts +0 -101
  140. package/dist/dts/AiChat.d.ts.map +0 -1
  141. package/dist/dts/AiEmbeddingModel.d.ts +0 -65
  142. package/dist/dts/AiEmbeddingModel.d.ts.map +0 -1
  143. package/dist/dts/AiInput.d.ts +0 -590
  144. package/dist/dts/AiInput.d.ts.map +0 -1
  145. package/dist/dts/AiLanguageModel.d.ts +0 -302
  146. package/dist/dts/AiLanguageModel.d.ts.map +0 -1
  147. package/dist/dts/AiModel.d.ts +0 -25
  148. package/dist/dts/AiModel.d.ts.map +0 -1
  149. package/dist/dts/AiResponse.d.ts +0 -863
  150. package/dist/dts/AiResponse.d.ts.map +0 -1
  151. package/dist/dts/AiTelemetry.d.ts +0 -242
  152. package/dist/dts/AiTelemetry.d.ts.map +0 -1
  153. package/dist/dts/AiTool.d.ts +0 -334
  154. package/dist/dts/AiTool.d.ts.map +0 -1
  155. package/dist/dts/AiToolkit.d.ts +0 -96
  156. package/dist/dts/AiToolkit.d.ts.map +0 -1
  157. package/dist/dts/internal/common.d.ts +0 -2
  158. package/dist/dts/internal/common.d.ts.map +0 -1
  159. package/dist/esm/AiChat.js +0 -111
  160. package/dist/esm/AiChat.js.map +0 -1
  161. package/dist/esm/AiEmbeddingModel.js +0 -98
  162. package/dist/esm/AiEmbeddingModel.js.map +0 -1
  163. package/dist/esm/AiInput.js +0 -433
  164. package/dist/esm/AiInput.js.map +0 -1
  165. package/dist/esm/AiLanguageModel.js +0 -340
  166. package/dist/esm/AiLanguageModel.js.map +0 -1
  167. package/dist/esm/AiModel.js +0 -29
  168. package/dist/esm/AiModel.js.map +0 -1
  169. package/dist/esm/AiResponse.js +0 -657
  170. package/dist/esm/AiResponse.js.map +0 -1
  171. package/dist/esm/AiTelemetry.js +0 -48
  172. package/dist/esm/AiTelemetry.js.map +0 -1
  173. package/dist/esm/AiTool.js +0 -134
  174. package/dist/esm/AiTool.js.map +0 -1
  175. package/dist/esm/AiToolkit.js +0 -147
  176. package/dist/esm/AiToolkit.js.map +0 -1
  177. package/dist/esm/internal/common.js +0 -14
  178. package/dist/esm/internal/common.js.map +0 -1
  179. package/src/AiChat.ts +0 -251
  180. package/src/AiEmbeddingModel.ts +0 -169
  181. package/src/AiInput.ts +0 -602
  182. package/src/AiLanguageModel.ts +0 -685
  183. package/src/AiModel.ts +0 -53
  184. package/src/AiResponse.ts +0 -986
  185. package/src/AiTelemetry.ts +0 -333
  186. package/src/AiTool.ts +0 -579
  187. package/src/AiToolkit.ts +0 -265
  188. package/src/internal/common.ts +0 -12
@@ -0,0 +1,272 @@
1
+ /**
2
+ * The `IdGenerator` module provides a pluggable system for generating unique identifiers
3
+ * for tool calls and other items in the Effect AI SDKs.
4
+ *
5
+ * This module offers a flexible and configurable approach to ID generation, supporting
6
+ * custom alphabets, prefixes, separators, and sizes.
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * import { IdGenerator } from "@effect/ai"
11
+ * import { Effect, Layer } from "effect"
12
+ *
13
+ * // Using the default ID generator
14
+ * const program = Effect.gen(function* () {
15
+ * const idGen = yield* IdGenerator.IdGenerator
16
+ * const toolCallId = yield* idGen.generateId()
17
+ * console.log(toolCallId) // "id_A7xK9mP2qR5tY8uV"
18
+ * return toolCallId
19
+ * }).pipe(
20
+ * Effect.provide(Layer.succeed(
21
+ * IdGenerator.IdGenerator,
22
+ * IdGenerator.defaultIdGenerator
23
+ * ))
24
+ * )
25
+ * ```
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * import { IdGenerator } from "@effect/ai"
30
+ * import { Effect, Layer } from "effect"
31
+ *
32
+ * // Creating a custom ID generator for AI tool calls
33
+ * const customLayer = IdGenerator.layer({
34
+ * alphabet: "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",
35
+ * prefix: "tool_call",
36
+ * separator: "-",
37
+ * size: 12
38
+ * })
39
+ *
40
+ * const program = Effect.gen(function* () {
41
+ * const idGen = yield* IdGenerator.IdGenerator
42
+ * const id = yield* idGen.generateId()
43
+ * console.log(id) // "tool_call-A7XK9MP2QR5T"
44
+ * return id
45
+ * }).pipe(
46
+ * Effect.provide(customLayer)
47
+ * )
48
+ * ```
49
+ *
50
+ * @since 1.0.0
51
+ */
52
+ import * as Cause from "effect/Cause";
53
+ import * as Context from "effect/Context";
54
+ import * as Effect from "effect/Effect";
55
+ import * as Layer from "effect/Layer";
56
+ declare const IdGenerator_base: Context.TagClass<IdGenerator, "@effect/ai/IdGenerator", Service>;
57
+ /**
58
+ * The `IdGenerator` service tag for dependency injection.
59
+ *
60
+ * This tag is used to provide and access ID generation functionality throughout
61
+ * the application. It follows Effect's standard service pattern for type-safe
62
+ * dependency injection.
63
+ *
64
+ * @example
65
+ * ```ts
66
+ * import { IdGenerator } from "@effect/ai"
67
+ * import { Effect } from "effect"
68
+ *
69
+ * const useIdGenerator = Effect.gen(function* () {
70
+ * const idGenerator = yield* IdGenerator.IdGenerator
71
+ * const newId = yield* idGenerator.generateId()
72
+ * return newId
73
+ * })
74
+ * ```
75
+ *
76
+ * @since 1.0.0
77
+ * @category Models
78
+ */
79
+ export declare class IdGenerator extends IdGenerator_base {
80
+ }
81
+ /**
82
+ * The service interface for ID generation.
83
+ *
84
+ * Defines the contract that all ID generator implementations must fulfill.
85
+ * The service provides a single method for generating unique identifiers
86
+ * in an effectful context.
87
+ *
88
+ * @example
89
+ * ```ts
90
+ * import { IdGenerator } from "@effect/ai"
91
+ * import { Effect } from "effect"
92
+ *
93
+ * // Custom implementation
94
+ * const customService: IdGenerator.Service = {
95
+ * generateId: () => Effect.succeed(`custom_${Date.now()}`)
96
+ * }
97
+ *
98
+ * const program = Effect.gen(function* () {
99
+ * const id = yield* customService.generateId()
100
+ * console.log(id) // "custom_1234567890"
101
+ * return id
102
+ * })
103
+ * ```
104
+ *
105
+ * @since 1.0.0
106
+ * @category Models
107
+ */
108
+ export interface Service {
109
+ readonly generateId: () => Effect.Effect<string>;
110
+ }
111
+ /**
112
+ * Configuration options for creating custom ID generators.
113
+ *
114
+ * @example
115
+ * ```ts
116
+ * import { IdGenerator } from "@effect/ai"
117
+ *
118
+ * // Configuration for tool call IDs
119
+ * const toolCallOptions: IdGenerator.MakeOptions = {
120
+ * alphabet: "0123456789ABCDEF",
121
+ * prefix: "tool",
122
+ * separator: "_",
123
+ * size: 8
124
+ * }
125
+ *
126
+ * // This will generate IDs like: "tool_A1B2C3D4"
127
+ * ```
128
+ *
129
+ * @since 1.0.0
130
+ * @category Models
131
+ */
132
+ export interface MakeOptions {
133
+ /**
134
+ * The character set to use for generating the random portion of IDs.
135
+ */
136
+ readonly alphabet: string;
137
+ /**
138
+ * Optional prefix to prepend to generated IDs.
139
+ */
140
+ readonly prefix?: string | undefined;
141
+ /**
142
+ * Character used to separate the prefix from the random portion.
143
+ */
144
+ readonly separator: string;
145
+ /**
146
+ * Length of the random portion of the generated ID.
147
+ */
148
+ readonly size: number;
149
+ }
150
+ /**
151
+ * Default ID generator service implementation.
152
+ *
153
+ * Uses the standard configuration with "id" prefix and generates IDs in the
154
+ * format "id_XXXXXXXXXXXXXXXX" where X represents random alphanumeric
155
+ * characters.
156
+ *
157
+ * @example
158
+ * ```ts
159
+ * import { IdGenerator } from "@effect/ai"
160
+ * import { Effect, Layer } from "effect"
161
+ *
162
+ * const program = Effect.gen(function* () {
163
+ * const id = yield* IdGenerator.defaultIdGenerator.generateId()
164
+ * console.log(id) // "id_A7xK9mP2qR5tY8uV"
165
+ * return id
166
+ * })
167
+ *
168
+ * // Or provide it as a service
169
+ * const withDefault = program.pipe(
170
+ * Effect.provideService(
171
+ * IdGenerator.IdGenerator,
172
+ * IdGenerator.defaultIdGenerator
173
+ * )
174
+ * )
175
+ * ```
176
+ *
177
+ * @since 1.0.0
178
+ * @category Constructors
179
+ */
180
+ export declare const defaultIdGenerator: Service;
181
+ /**
182
+ * Creates a custom ID generator service with the specified options.
183
+ *
184
+ * Validates the configuration to ensure the separator is not part of the
185
+ * alphabet, which would cause ambiguity in parsing generated IDs.
186
+ *
187
+ * @example
188
+ * ```ts
189
+ * import { IdGenerator } from "@effect/ai"
190
+ * import { Effect } from "effect"
191
+ *
192
+ * const program = Effect.gen(function* () {
193
+ * // Create a generator for AI assistant message IDs
194
+ * const messageIdGen = yield* IdGenerator.make({
195
+ * alphabet: "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",
196
+ * prefix: "msg",
197
+ * separator: "-",
198
+ * size: 10
199
+ * })
200
+ *
201
+ * const messageId = yield* messageIdGen.generateId()
202
+ * console.log(messageId) // "msg-A7X9K2M5P8"
203
+ * return messageId
204
+ * })
205
+ * ```
206
+ *
207
+ * @example
208
+ * ```ts
209
+ * import { IdGenerator } from "@effect/ai"
210
+ * import { Effect } from "effect"
211
+ *
212
+ * // This will fail with IllegalArgumentException
213
+ * const invalidConfig = IdGenerator.make({
214
+ * alphabet: "ABC123",
215
+ * prefix: "test",
216
+ * separator: "A", // Error: separator is part of alphabet
217
+ * size: 8
218
+ * })
219
+ *
220
+ * const program = Effect.gen(function* () {
221
+ * const generator = yield* invalidConfig
222
+ * return generator
223
+ * }).pipe(
224
+ * Effect.catchAll(error =>
225
+ * Effect.succeed(`Configuration error: ${error.message}`)
226
+ * )
227
+ * )
228
+ * ```
229
+ *
230
+ * @since 1.0.0
231
+ * @category Constructors
232
+ */
233
+ export declare const make: (args_0: MakeOptions) => Effect.Effect<{
234
+ readonly generateId: () => Effect.Effect<string, never, never>;
235
+ }, Cause.IllegalArgumentException, never>;
236
+ /**
237
+ * Creates a Layer that provides the IdGenerator service with custom
238
+ * configuration.
239
+ *
240
+ * This is the recommended way to provide ID generation capabilities to your
241
+ * application. The layer will fail during construction if the configuration is
242
+ * invalid.
243
+ *
244
+ * @example
245
+ * ```ts
246
+ * import { IdGenerator } from "@effect/ai"
247
+ * import { Effect, Layer } from "effect"
248
+ *
249
+ * // Create a layer for generating AI tool call IDs
250
+ * const toolCallIdLayer = IdGenerator.layer({
251
+ * alphabet: "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",
252
+ * prefix: "tool_call",
253
+ * separator: "_",
254
+ * size: 12
255
+ * })
256
+ *
257
+ * const program = Effect.gen(function* () {
258
+ * const idGen = yield* IdGenerator.IdGenerator
259
+ * const toolCallId = yield* idGen.generateId()
260
+ * console.log(toolCallId) // "tool_call_A7XK9MP2QR5T"
261
+ * return toolCallId
262
+ * }).pipe(
263
+ * Effect.provide(toolCallIdLayer)
264
+ * )
265
+ * ```
266
+ *
267
+ * @since 1.0.0
268
+ * @category Constructors
269
+ */
270
+ export declare const layer: (options: MakeOptions) => Layer.Layer<IdGenerator, Cause.IllegalArgumentException>;
271
+ export {};
272
+ //# sourceMappingURL=IdGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IdGenerator.d.ts","sourceRoot":"","sources":["../../src/IdGenerator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;;AAIrC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,WAAY,SAAQ,gBAG9B;CAAG;AAEN;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;CACjD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AA0BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,kBAAkB,EAAE,OAEhC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,eAAO,MAAM,IAAI;;yCAgBf,CAAA;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,eAAO,MAAM,KAAK,GAAI,SAAS,WAAW,KAAG,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,wBAAwB,CAC1D,CAAA"}