@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
@@ -1 +1 @@
1
- {"version":3,"file":"AiError.js","names":["Predicate","_interopRequireWildcard","require","Schema","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TypeId","exports","Symbol","for","AiError","TaggedError","module","String","method","description","cause","optional","Defect","is","u","hasProperty","message"],"sources":["../../src/AiError.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,SAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,uBAAA,CAAAC,OAAA;AAAuC,SAAAD,wBAAAG,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAL,uBAAA,YAAAA,CAAAG,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAJvC;;;;AAMA;;;;AAIO,MAAMkB,MAAM,GAAAC,OAAA,CAAAD,MAAA,gBAAkBE,MAAM,CAACC,GAAG,CAAC,oBAAoB,CAAC;AAQrE;;;;AAIM,MAAOC,OAAQ,sBAAQxB,MAAM,CAACyB,WAAW,CAAU,oBAAoB,CAAC,CAAC,SAAS,EAAE;EACxFC,MAAM,EAAE1B,MAAM,CAAC2B,MAAM;EACrBC,MAAM,EAAE5B,MAAM,CAAC2B,MAAM;EACrBE,WAAW,EAAE7B,MAAM,CAAC2B,MAAM;EAC1BG,KAAK,eAAE9B,MAAM,CAAC+B,QAAQ,CAAC/B,MAAM,CAACgC,MAAM;CACrC,CAAC;EACA;;;EAGA,OAAOC,EAAEA,CAACC,CAAU;IAClB,OAAOrC,SAAS,CAACsC,WAAW,CAACD,CAAC,EAAEd,MAAM,CAAC;EACzC;EACA;;;EAGS,CAACA,MAAM,IAAYA,MAAM;EAClC;;;EAGA,IAAIgB,OAAOA,CAAA;IACT,OAAO,GAAG,IAAI,CAACV,MAAM,IAAI,IAAI,CAACE,MAAM,KAAK,IAAI,CAACC,WAAW,EAAE;EAC7D","ignoreList":[]}
1
+ {"version":3,"file":"AiError.js","names":["Predicate","_interopRequireWildcard","require","Schema","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TypeId","exports","isAiError","u","hasProperty","HttpRequestDetails","Struct","method","Literal","url","String","urlParams","Array","Tuple","hash","Option","headers","Record","key","value","annotations","identifier","HttpRequestError","TaggedError","module","reason","request","description","optional","cause","Defect","fromRequestError","error","params","message","methodAndUrl","baseMessage","suggestion","HttpResponseDetails","status","Number","HttpResponseError","response","fromResponseError","methodUrlStatus","getStatusCodeSuggestion","MalformedInput","MalformedOutput","fromParseError","UnknownError","moduleMethod","isUndefined","AiError","Union","statusCode"],"sources":["../../src/AiError.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,302 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.fromPrompt = exports.fromJson = exports.fromExport = exports.empty = exports.Chat = void 0;
7
+ var Channel = _interopRequireWildcard(require("effect/Channel"));
8
+ var Context = _interopRequireWildcard(require("effect/Context"));
9
+ var Effect = _interopRequireWildcard(require("effect/Effect"));
10
+ var Ref = _interopRequireWildcard(require("effect/Ref"));
11
+ var Schema = _interopRequireWildcard(require("effect/Schema"));
12
+ var Stream = _interopRequireWildcard(require("effect/Stream"));
13
+ var LanguageModel = _interopRequireWildcard(require("./LanguageModel.js"));
14
+ var Prompt = _interopRequireWildcard(require("./Prompt.js"));
15
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
16
+ /**
17
+ * The `Chat` module provides a stateful conversation interface for AI language
18
+ * models.
19
+ *
20
+ * This module enables persistent chat sessions that maintain conversation
21
+ * history, support tool calling, and offer both streaming and non-streaming
22
+ * text generation. It integrates seamlessly with the Effect AI ecosystem,
23
+ * providing type-safe conversational AI capabilities.
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * import { Chat, LanguageModel } from "@effect/ai"
28
+ * import { Effect, Layer } from "effect"
29
+ *
30
+ * // Create a new chat session
31
+ * const program = Effect.gen(function* () {
32
+ * const chat = yield* Chat.empty
33
+ *
34
+ * // Send a message and get response
35
+ * const response = yield* chat.generateText({
36
+ * prompt: "Hello! What can you help me with?"
37
+ * })
38
+ *
39
+ * console.log(response.content)
40
+ *
41
+ * return response
42
+ * })
43
+ * ```
44
+ *
45
+ * @example
46
+ * ```ts
47
+ * import { Chat, LanguageModel } from "@effect/ai"
48
+ * import { Effect, Stream } from "effect"
49
+ *
50
+ * // Streaming chat with tool support
51
+ * const streamingChat = Effect.gen(function* () {
52
+ * const chat = yield* Chat.empty
53
+ *
54
+ * yield* chat.streamText({
55
+ * prompt: "Generate a creative story"
56
+ * }).pipe(Stream.runForEach((part) =>
57
+ * Effect.sync(() => console.log(part))
58
+ * ))
59
+ * })
60
+ * ```
61
+ *
62
+ * @since 1.0.0
63
+ */
64
+
65
+ /**
66
+ * The `Chat` service tag for dependency injection.
67
+ *
68
+ * This tag provides access to chat functionality throughout your application,
69
+ * enabling persistent conversational AI interactions with full context
70
+ * management.
71
+ *
72
+ * @example
73
+ * ```ts
74
+ * import { Chat } from "@effect/ai"
75
+ * import { Effect } from "effect"
76
+ *
77
+ * const useChat = Effect.gen(function* () {
78
+ * const chat = yield* Chat
79
+ * const response = yield* chat.generateText({
80
+ * prompt: "Explain quantum computing in simple terms"
81
+ * })
82
+ * return response.content
83
+ * })
84
+ * ```
85
+ *
86
+ * @since 1.0.0
87
+ * @category Context
88
+ */
89
+ class Chat extends /*#__PURE__*/Context.Tag("@effect/ai/Chat")() {}
90
+ /**
91
+ * Creates a new Chat service from an initial prompt.
92
+ *
93
+ * This is the primary constructor for creating chat instances. It initializes
94
+ * a new conversation with the provided prompt as the starting context.
95
+ *
96
+ * @example
97
+ * ```ts
98
+ * import { Chat, Prompt } from "@effect/ai"
99
+ * import { Effect } from "effect"
100
+ *
101
+ * const chatWithSystemPrompt = Effect.gen(function* () {
102
+ * const chat = yield* Chat.fromPrompt([{
103
+ * role: "system",
104
+ * content: "You are a helpful assistant specialized in mathematics."
105
+ * }])
106
+ *
107
+ * const response = yield* chat.generateText({
108
+ * prompt: "What is 2+2?"
109
+ * })
110
+ *
111
+ * return response.content
112
+ * })
113
+ * ```
114
+ *
115
+ * @example
116
+ * ```ts
117
+ * import { Chat, Prompt } from "@effect/ai"
118
+ * import { Effect } from "effect"
119
+ *
120
+ * // Initialize with conversation history
121
+ * const existingChat = Effect.gen(function* () {
122
+ * const chat = yield* Chat.fromPrompt([
123
+ * { role: "user", content: [{ type: "text", text: "What's the weather like?" }] },
124
+ * { role: "assistant", content: [{ type: "text", text: "I don't have access to weather data." }] },
125
+ * { role: "user", content: [{ type: "text", text: "Can you help me with coding?" }] }
126
+ * ])
127
+ *
128
+ * const response = yield* chat.generateText({
129
+ * prompt: "I need help with TypeScript"
130
+ * })
131
+ *
132
+ * return response
133
+ * })
134
+ * ```
135
+ *
136
+ * @since 1.0.0
137
+ * @category Constructors
138
+ */
139
+ exports.Chat = Chat;
140
+ const fromPrompt = exports.fromPrompt = /*#__PURE__*/Effect.fnUntraced(function* (prompt) {
141
+ const languageModel = yield* LanguageModel.LanguageModel;
142
+ const context = yield* Effect.context();
143
+ const provideContext = effect => Effect.mapInputContext(effect, input => Context.merge(context, input));
144
+ const provideContextStream = stream => Stream.mapInputContext(stream, input => Context.merge(context, input));
145
+ const history = yield* Ref.make(Prompt.make(prompt));
146
+ const semaphore = yield* Effect.makeSemaphore(1);
147
+ return Chat.of({
148
+ history,
149
+ export: Ref.get(history).pipe(Effect.flatMap(Schema.encode(Prompt.Prompt)), Effect.withSpan("Chat.export"), Effect.orDie),
150
+ exportJson: Ref.get(history).pipe(Effect.flatMap(Schema.encode(Prompt.FromJson)), Effect.withSpan("Chat.exportJson"), Effect.orDie),
151
+ generateText: Effect.fnUntraced(function* (options) {
152
+ const newPrompt = Prompt.make(options.prompt);
153
+ const oldPrompt = yield* Ref.get(history);
154
+ const prompt = Prompt.merge(oldPrompt, newPrompt);
155
+ const response = yield* languageModel.generateText({
156
+ ...options,
157
+ prompt
158
+ });
159
+ const newHistory = Prompt.merge(prompt, Prompt.fromResponseParts(response.content));
160
+ yield* Ref.set(history, newHistory);
161
+ return response;
162
+ }, provideContext, semaphore.withPermits(1), Effect.withSpan("Chat.generateText", {
163
+ captureStackTrace: false
164
+ })),
165
+ streamText: Effect.fnUntraced(function* (options) {
166
+ let combined = Prompt.empty;
167
+ return Stream.fromChannel(Channel.acquireUseRelease(semaphore.take(1).pipe(Effect.zipRight(Ref.get(history)), Effect.map(history => Prompt.merge(history, Prompt.make(options.prompt)))), prompt => languageModel.streamText({
168
+ ...options,
169
+ prompt
170
+ }).pipe(Stream.mapChunksEffect(Effect.fnUntraced(function* (chunk) {
171
+ const parts = Array.from(chunk);
172
+ combined = Prompt.merge(combined, Prompt.fromResponseParts(parts));
173
+ return chunk;
174
+ })), Stream.toChannel), parts => Effect.zipRight(Ref.set(history, Prompt.merge(parts, combined)), semaphore.release(1)))).pipe(provideContextStream, Stream.withSpan("Chat.streamText", {
175
+ captureStackTrace: false
176
+ }));
177
+ }, Stream.unwrap),
178
+ generateObject: Effect.fnUntraced(function* (options) {
179
+ const newPrompt = Prompt.make(options.prompt);
180
+ const oldPrompt = yield* Ref.get(history);
181
+ const prompt = Prompt.merge(oldPrompt, newPrompt);
182
+ const response = yield* languageModel.generateObject({
183
+ ...options,
184
+ prompt
185
+ });
186
+ const newHistory = Prompt.merge(prompt, Prompt.fromResponseParts(response.content));
187
+ yield* Ref.set(history, newHistory);
188
+ return response;
189
+ }, provideContext, semaphore.withPermits(1), (effect, options) => Effect.withSpan(effect, "Chat.generateObject", {
190
+ attributes: {
191
+ objectName: "objectName" in options ? options.objectName : "_tag" in options.schema ? options.schema._tag : options.schema.identifier ?? "generateObject"
192
+ },
193
+ captureStackTrace: false
194
+ }))
195
+ });
196
+ });
197
+ /**
198
+ * Creates a new Chat service with empty conversation history.
199
+ *
200
+ * This is the most common way to start a fresh chat session without
201
+ * any initial context or system prompts.
202
+ *
203
+ * @example
204
+ * ```ts
205
+ * import { Chat } from "@effect/ai"
206
+ * import { Effect } from "effect"
207
+ *
208
+ * const freshChat = Effect.gen(function* () {
209
+ * const chat = yield* Chat.empty
210
+ *
211
+ * const response = yield* chat.generateText({
212
+ * prompt: "Hello! Can you introduce yourself?"
213
+ * })
214
+ *
215
+ * console.log(response.content)
216
+ *
217
+ * return chat
218
+ * })
219
+ * ```
220
+ *
221
+ * @since 1.0.0
222
+ * @category Constructors
223
+ */
224
+ const empty = exports.empty = /*#__PURE__*/fromPrompt(Prompt.empty);
225
+ const decodeUnknown = /*#__PURE__*/Schema.decodeUnknown(Prompt.Prompt);
226
+ /**
227
+ * Creates a Chat service from previously exported chat data.
228
+ *
229
+ * Restores a chat session from structured data that was previously exported
230
+ * using the `export` method. Useful for persisting and restoring conversation
231
+ * state.
232
+ *
233
+ * @example
234
+ * ```ts
235
+ * import { Chat } from "@effect/ai"
236
+ * import { Effect } from "effect"
237
+ *
238
+ * declare const loadFromDatabase: (sessionId: string) => Effect.Effect<unknown>
239
+ *
240
+ * const restoreChat = Effect.gen(function* () {
241
+ * // Assume we have previously exported data
242
+ * const savedData = yield* loadFromDatabase("chat-session-123")
243
+ *
244
+ * const restoredChat = yield* Chat.fromExport(savedData)
245
+ *
246
+ * // Continue the conversation from where it left off
247
+ * const response = yield* restoredChat.generateText({
248
+ * prompt: "Let's continue our discussion"
249
+ * })
250
+ * }).pipe(
251
+ * Effect.catchTag("ParseError", (error) => {
252
+ * console.log("Failed to restore chat:", error.message)
253
+ * return Effect.void
254
+ * })
255
+ * )
256
+ * ```
257
+ *
258
+ * @since 1.0.0
259
+ * @category Constructors
260
+ */
261
+ const fromExport = data => Effect.flatMap(decodeUnknown(data), fromPrompt);
262
+ exports.fromExport = fromExport;
263
+ const decodeJson = /*#__PURE__*/Schema.decode(Prompt.FromJson);
264
+ /**
265
+ * Creates a Chat service from previously exported JSON chat data.
266
+ *
267
+ * Restores a chat session from JSON string that was previously exported
268
+ * using the `exportJson` method. This is the most convenient way to
269
+ * persist and restore chat sessions to/from storage systems.
270
+ *
271
+ * @example
272
+ * ```ts
273
+ * import { Chat } from "@effect/ai"
274
+ * import { Effect } from "effect"
275
+ *
276
+ * const restoreFromJson = Effect.gen(function* () {
277
+ * // Load JSON from localStorage or file system
278
+ * const jsonData = localStorage.getItem("my-chat-backup")
279
+ * if (!jsonData) return yield* Chat.empty
280
+ *
281
+ * const restoredChat = yield* Chat.fromJson(jsonData)
282
+ *
283
+ * // Chat history is now restored
284
+ * const response = yield* restoredChat.generateText({
285
+ * prompt: "What were we talking about?"
286
+ * })
287
+ *
288
+ * return response
289
+ * }).pipe(
290
+ * Effect.catchTag("ParseError", (error) => {
291
+ * console.log("Invalid JSON format:", error.message)
292
+ * return Chat.empty // Fallback to empty chat
293
+ * })
294
+ * )
295
+ * ```
296
+ *
297
+ * @since 1.0.0
298
+ * @category Constructors
299
+ */
300
+ const fromJson = data => Effect.flatMap(decodeJson(data), fromPrompt);
301
+ exports.fromJson = fromJson;
302
+ //# sourceMappingURL=Chat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Chat.js","names":["Channel","_interopRequireWildcard","require","Context","Effect","Ref","Schema","Stream","LanguageModel","Prompt","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Chat","Tag","exports","fromPrompt","fnUntraced","prompt","languageModel","context","provideContext","effect","mapInputContext","input","merge","provideContextStream","stream","history","make","semaphore","makeSemaphore","of","export","pipe","flatMap","encode","withSpan","orDie","exportJson","FromJson","generateText","options","newPrompt","oldPrompt","response","newHistory","fromResponseParts","content","withPermits","captureStackTrace","streamText","combined","empty","fromChannel","acquireUseRelease","take","zipRight","map","mapChunksEffect","chunk","parts","Array","from","toChannel","release","unwrap","generateObject","attributes","objectName","schema","_tag","identifier","decodeUnknown","fromExport","data","decodeJson","decode","fromJson"],"sources":["../../src/Chat.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.makeDataLoader = exports.make = exports.EmbeddingModel = void 0;
7
+ var _RequestResolver = require("@effect/experimental/RequestResolver");
8
+ var Context = _interopRequireWildcard(require("effect/Context"));
9
+ var Effect = _interopRequireWildcard(require("effect/Effect"));
10
+ var _Function = require("effect/Function");
11
+ var Option = _interopRequireWildcard(require("effect/Option"));
12
+ var Request = _interopRequireWildcard(require("effect/Request"));
13
+ var RequestResolver = _interopRequireWildcard(require("effect/RequestResolver"));
14
+ var Schema = _interopRequireWildcard(require("effect/Schema"));
15
+ var AiError = _interopRequireWildcard(require("./AiError.js"));
16
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
17
+ /**
18
+ * The `EmbeddingModel` module provides vector embeddings for text using AI
19
+ * models.
20
+ *
21
+ * This module enables efficient conversion of text into high-dimensional vector
22
+ * representations that capture semantic meaning. It supports batching, caching,
23
+ * and request optimization for production use cases like semantic search,
24
+ * document similarity, and clustering.
25
+ *
26
+ * @example
27
+ * ```ts
28
+ * import { EmbeddingModel } from "@effect/ai"
29
+ * import { Effect } from "effect"
30
+ *
31
+ * // Basic embedding usage
32
+ * const program = Effect.gen(function* () {
33
+ * const embedding = yield* EmbeddingModel.EmbeddingModel
34
+ *
35
+ * const vector = yield* embedding.embed("Hello world!")
36
+ * console.log(vector) // [0.123, -0.456, 0.789, ...]
37
+ *
38
+ * return vector
39
+ * })
40
+ * ```
41
+ *
42
+ * @example
43
+ * ```ts
44
+ * import { EmbeddingModel } from "@effect/ai"
45
+ * import { Effect, Duration } from "effect"
46
+ *
47
+ * declare const generateVectorFor: (text: string) => Array<number>
48
+ *
49
+ * // Create embedding service with batching and caching
50
+ * const embeddingService = EmbeddingModel.make({
51
+ * embedMany: (texts) => Effect.succeed(
52
+ * texts.map((text, index) => ({
53
+ * index,
54
+ * embeddings: generateVectorFor(text)
55
+ * }))
56
+ * ),
57
+ * maxBatchSize: 50,
58
+ * cache: {
59
+ * capacity: 1000,
60
+ * timeToLive: Duration.minutes(30)
61
+ * }
62
+ * })
63
+ * ```
64
+ *
65
+ * @since 1.0.0
66
+ */
67
+
68
+ /**
69
+ * The `EmbeddingModel` service tag for dependency injection.
70
+ *
71
+ * This tag provides access to vector embedding functionality throughout your application,
72
+ * enabling conversion of text to high-dimensional vectors for semantic analysis.
73
+ *
74
+ * @example
75
+ * ```ts
76
+ * import { EmbeddingModel } from "@effect/ai"
77
+ * import { Effect } from "effect"
78
+ *
79
+ * const useEmbeddings = Effect.gen(function* () {
80
+ * const embedder = yield* EmbeddingModel
81
+ *
82
+ * const documentVector = yield* embedder.embed("This is a sample document")
83
+ * const queryVector = yield* embedder.embed("sample query")
84
+ *
85
+ * const similarity = cosineSimilarity(documentVector, queryVector)
86
+ * return similarity
87
+ * })
88
+ * ```
89
+ *
90
+ * @since 1.0.0
91
+ * @category Context
92
+ */
93
+ class EmbeddingModel extends /*#__PURE__*/Context.Tag("@effect/ai/EmbeddingModel")() {}
94
+ exports.EmbeddingModel = EmbeddingModel;
95
+ class EmbeddingRequest extends /*#__PURE__*/Schema.TaggedRequest("@effect/ai/EmbeddingModel/Request")("EmbeddingRequest", {
96
+ failure: AiError.AiError,
97
+ success: /*#__PURE__*/Schema.mutable(/*#__PURE__*/Schema.Array(Schema.Number)),
98
+ payload: {
99
+ input: Schema.String
100
+ }
101
+ }) {}
102
+ const makeBatchedResolver = embedMany => RequestResolver.makeBatched(requests => embedMany(requests.map(request => request.input)).pipe(Effect.flatMap(Effect.forEach(({
103
+ embeddings,
104
+ index
105
+ }) => Request.succeed(requests[index], embeddings), {
106
+ discard: true
107
+ })), Effect.catchAll(error => Effect.forEach(requests, request => Request.fail(request, error), {
108
+ discard: true
109
+ }))));
110
+ /**
111
+ * Creates an EmbeddingModel service with batching and caching capabilities.
112
+ *
113
+ * This is the primary constructor for creating embedding services. It supports
114
+ * automatic batching of requests for efficiency and optional caching to reduce
115
+ * redundant API calls.
116
+ *
117
+ * @since 1.0.0
118
+ * @category Constructors
119
+ */
120
+ const make = options => Effect.gen(function* () {
121
+ const cache = yield* Option.fromNullable(options.cache).pipe(Effect.flatMap(config => Request.makeCache(config)), Effect.optionFromOptional);
122
+ const resolver = makeBatchedResolver(options.embedMany).pipe(options.maxBatchSize ? RequestResolver.batchN(options.maxBatchSize) : _Function.identity);
123
+ const embed = input => {
124
+ const request = Effect.request(new EmbeddingRequest({
125
+ input
126
+ }), resolver);
127
+ return Option.match(cache, {
128
+ onNone: () => request,
129
+ onSome: cache => request.pipe(Effect.withRequestCaching(true), Effect.withRequestCache(cache))
130
+ });
131
+ };
132
+ const embedMany = (inputs, options) => Effect.forEach(inputs, embed, {
133
+ batching: true,
134
+ concurrency: options?.concurrency
135
+ });
136
+ return EmbeddingModel.of({
137
+ embed: input => embed(input).pipe(Effect.withSpan("EmbeddingModel.embed", {
138
+ captureStackTrace: false
139
+ })),
140
+ embedMany: inputs => embedMany(inputs).pipe(Effect.withSpan("EmbeddingModel.embedMany", {
141
+ captureStackTrace: false
142
+ }))
143
+ });
144
+ });
145
+ /**
146
+ * Creates an EmbeddingModel service with time-window based batching.
147
+ *
148
+ * This constructor creates a service that uses a data loader pattern to batch
149
+ * embedding requests within a specified time window. This is optimal for
150
+ * high-throughput scenarios where you want to automatically batch requests that
151
+ * arrive within a short time period.
152
+ *
153
+ * @since 1.0.0
154
+ * @category Constructors
155
+ */
156
+ exports.make = make;
157
+ const makeDataLoader = options => Effect.gen(function* () {
158
+ const resolver = makeBatchedResolver(options.embedMany);
159
+ const resolverDelayed = yield* (0, _RequestResolver.dataLoader)(resolver, {
160
+ window: options.window,
161
+ maxBatchSize: options.maxBatchSize
162
+ });
163
+ function embed(input) {
164
+ return Effect.request(new EmbeddingRequest({
165
+ input
166
+ }), resolverDelayed).pipe(Effect.withSpan("EmbeddingModel.embed", {
167
+ captureStackTrace: false
168
+ }));
169
+ }
170
+ function embedMany(inputs, options) {
171
+ return Effect.forEach(inputs, embed, {
172
+ batching: true,
173
+ concurrency: options?.concurrency
174
+ }).pipe(Effect.withSpan("EmbeddingModel.embedMany", {
175
+ captureStackTrace: false
176
+ }));
177
+ }
178
+ return EmbeddingModel.of({
179
+ embed,
180
+ embedMany
181
+ });
182
+ });
183
+ exports.makeDataLoader = makeDataLoader;
184
+ //# sourceMappingURL=EmbeddingModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmbeddingModel.js","names":["_RequestResolver","require","Context","_interopRequireWildcard","Effect","_Function","Option","Request","RequestResolver","Schema","AiError","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","EmbeddingModel","Tag","exports","EmbeddingRequest","TaggedRequest","failure","success","mutable","Array","Number","payload","input","String","makeBatchedResolver","embedMany","makeBatched","requests","map","request","pipe","flatMap","forEach","embeddings","index","succeed","discard","catchAll","error","fail","make","options","gen","cache","fromNullable","config","makeCache","optionFromOptional","resolver","maxBatchSize","batchN","identity","embed","match","onNone","onSome","withRequestCaching","withRequestCache","inputs","batching","concurrency","of","withSpan","captureStackTrace","makeDataLoader","resolverDelayed","dataLoader","window"],"sources":["../../src/EmbeddingModel.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}