@effect/ai 0.14.1 → 0.15.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 +25 -33
  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
@@ -1 +1 @@
1
- {"version":3,"file":"AiInput.js","names":["FileSystem","Path","Chunk","Context","Effect","Encoding","dual","Option","ParseResult","Predicate","Schema_","AiResponse","ToolCallId","WithResolved","AiRole","constDisableValidation","disableValidation","PartTypeId","Symbol","TextPart","TaggedClass","content","String","fromContent","ImageQuality","Literal","ImageUrlPart","url","quality","pipe","propertySignature","withConstructorDefault","base64ContentTypeRegex","Base64DataUrl","transformOrFail","annotations","title","description","Struct","data","Uint8ArrayFromSelf","contentType","decode","base64Url","_","ast","commaIndex","indexOf","fail","Type","header","slice","exec","decodeBase64","mapError","map","encode","base64","encodeBase64","succeed","ImagePart","image","fromPath","path","bindTo","bind","fs","readFile","ext","extname","startsWith","fromBlob","blob","promise","arrayBuffer","buffer","type","Uint8Array","asBase64","asDataUri","ToolCallPart","id","name","params","Unknown","ToolCallResolvedPart","toolCallId","value","isPart","u","hasProperty","Part","Union","MessageTypeId","Message","Class","role","parts","is","fromInput","input","user","of","fromIterable","fromResponse","response","isEmpty","none","some","part","_tag","fromWithResolved","toolParts","encoded","push","toolPartsChunk","unsafeFromArray","match","onNone","model","onSome","message","appendAll","make","options","isIterable","chunk","unsafeHead","empty","Schema","SchemaJson","parseJson","SystemInstruction","Tag","provideSystem","effect","provideService"],"sources":["../../src/AiInput.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"AiInput.js","names":["dual","Predicate","Schema","AiResponse","InternalCommon","TypeId","Symbol","for","AiInput","Class","messages","Array","suspend","Message","FromJson","parseJson","MessageTypeId","UserMessage","TaggedClass","parts","UserMessagePart","userName","optional","String","AssistantMessage","AssistantMessagePart","ToolMessage","ToolMessagePart","Union","PartTypeId","TextPart","text","ImagePart","data","Uint8ArrayFromBase64","mediaType","ImageUrlPart","url","URL","FilePart","name","FileUrlPart","ReasoningPart","reasoningText","signature","RedactedReasoningPart","redactedText","ToolCallId","ToolCallPart","id","params","Unknown","constructor","props","options","ToolCallResultPart","result","is","u","hasProperty","isMessage","isPart","empty","make","input","isString","textPart","message","isIterable","from","isStructured","assistantMessages","fromResponse","toolPart","value","toolMessage","hasToolCallResults","toolParts","encodedResults","push","EXCLUDED_RESPONSE_PARTS","validResponseParts","part","includes","_tag","response","length","filter","map","concat","self","other"],"sources":["../../src/AiInput.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,300 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import * as Context from "effect/Context";
5
+ import * as Effect from "effect/Effect";
6
+ import * as JsonSchema from "effect/JSONSchema";
7
+ import * as Option from "effect/Option";
8
+ import * as Predicate from "effect/Predicate";
9
+ import * as Schema from "effect/Schema";
10
+ import * as AST from "effect/SchemaAST";
11
+ import * as Stream from "effect/Stream";
12
+ import { AiError } from "./AiError.js";
13
+ import * as AiInput from "./AiInput.js";
14
+ import * as AiResponse from "./AiResponse.js";
15
+ import { CurrentSpanTransformer } from "./AiTelemetry.js";
16
+ const constDisableValidation = {
17
+ disableValidation: true
18
+ };
19
+ /**
20
+ * @since 1.0.0
21
+ * @category Context
22
+ */
23
+ export class AiLanguageModel extends /*#__PURE__*/Context.Tag("@effect/ai/AiLanguageModel")() {}
24
+ const constEmptyMap = /*#__PURE__*/new Map();
25
+ /**
26
+ * @since 1.0.0
27
+ * @category Constructors
28
+ */
29
+ export const make = /*#__PURE__*/Effect.fnUntraced(function* (opts) {
30
+ const parentSpanTransformer = yield* Effect.serviceOption(CurrentSpanTransformer);
31
+ const getSpanTransformer = Effect.serviceOption(CurrentSpanTransformer).pipe(Effect.map(Option.orElse(() => parentSpanTransformer)));
32
+ const generateText = ({
33
+ concurrency,
34
+ toolChoice = "auto",
35
+ toolkit,
36
+ ...options
37
+ }) => Effect.useSpan("AiLanguageModel.generateText", {
38
+ captureStackTrace: false,
39
+ attributes: {
40
+ concurrency,
41
+ toolChoice
42
+ }
43
+ }, Effect.fnUntraced(function* (span) {
44
+ const prompt = AiInput.make(options.prompt);
45
+ const system = Option.fromNullable(options.system);
46
+ const spanTransformer = yield* getSpanTransformer;
47
+ const modelOptions = {
48
+ prompt,
49
+ system,
50
+ tools: [],
51
+ toolChoice: "none",
52
+ span
53
+ };
54
+ if (Predicate.isUndefined(toolkit)) {
55
+ const response = yield* opts.generateText(modelOptions);
56
+ if (Option.isSome(spanTransformer)) {
57
+ spanTransformer.value({
58
+ ...modelOptions,
59
+ response
60
+ });
61
+ }
62
+ return response;
63
+ }
64
+ modelOptions.toolChoice = toolChoice;
65
+ const actualToolkit = Effect.isEffect(toolkit) ? yield* toolkit : toolkit;
66
+ for (const tool of actualToolkit.tools) {
67
+ modelOptions.tools.push(convertTool(tool));
68
+ }
69
+ const response = yield* opts.generateText(modelOptions);
70
+ if (Option.isSome(spanTransformer)) {
71
+ spanTransformer.value({
72
+ ...modelOptions,
73
+ response
74
+ });
75
+ }
76
+ return yield* resolveParts({
77
+ response,
78
+ toolkit: actualToolkit,
79
+ concurrency,
80
+ method: "generateText"
81
+ });
82
+ }, (effect, span) => Effect.withParentSpan(effect, span)));
83
+ const streamText = Effect.fnUntraced(function* ({
84
+ concurrency,
85
+ toolChoice = "auto",
86
+ toolkit,
87
+ ...options
88
+ }) {
89
+ const span = yield* Effect.makeSpanScoped("AiLanguageModel.streamText", {
90
+ captureStackTrace: false,
91
+ attributes: {
92
+ concurrency,
93
+ toolChoice
94
+ }
95
+ });
96
+ const prompt = AiInput.make(options.prompt);
97
+ const system = Option.fromNullable(options.system);
98
+ const modelOptions = {
99
+ prompt,
100
+ system,
101
+ tools: [],
102
+ toolChoice: "none",
103
+ span
104
+ };
105
+ if (Predicate.isUndefined(toolkit)) {
106
+ return [opts.streamText(modelOptions), modelOptions];
107
+ }
108
+ modelOptions.toolChoice = toolChoice;
109
+ const actualToolkit = Effect.isEffect(toolkit) ? yield* toolkit : toolkit;
110
+ for (const tool of actualToolkit.tools) {
111
+ modelOptions.tools.push(convertTool(tool));
112
+ }
113
+ return [opts.streamText(modelOptions).pipe(Stream.mapEffect(response => resolveParts({
114
+ response,
115
+ toolkit: actualToolkit,
116
+ concurrency,
117
+ method: "streamText"
118
+ }), {
119
+ concurrency: "unbounded"
120
+ })), modelOptions];
121
+ }, Effect.flatMap(Effect.fnUntraced(function* ([stream, options]) {
122
+ const spanTransformer = yield* getSpanTransformer;
123
+ if (Option.isNone(spanTransformer)) {
124
+ return stream;
125
+ }
126
+ let lastResponse;
127
+ return stream.pipe(Stream.map(response => {
128
+ lastResponse = response;
129
+ return response;
130
+ }), Stream.ensuring(Effect.sync(() => {
131
+ spanTransformer.value({
132
+ ...options,
133
+ response: lastResponse
134
+ });
135
+ })));
136
+ })), Stream.unwrapScoped);
137
+ const generateObject = options => {
138
+ const toolCallId = options.toolCallId ? options.toolCallId : "_tag" in options.schema ? options.schema._tag : "identifier" in options.schema ? options.schema.identifier : "generateObject";
139
+ return Effect.useSpan("AiLanguageModel.generateObject", {
140
+ captureStackTrace: false,
141
+ attributes: {
142
+ toolCallId
143
+ }
144
+ }, Effect.fnUntraced(function* (span) {
145
+ const prompt = AiInput.make(options.prompt);
146
+ const system = Option.fromNullable(options.system);
147
+ const spanTransformer = yield* getSpanTransformer;
148
+ const decode = Schema.decodeUnknown(options.schema);
149
+ const tool = convertStructured(toolCallId, options.schema);
150
+ const toolChoice = {
151
+ tool: tool.name
152
+ };
153
+ const modelOptions = {
154
+ prompt,
155
+ system,
156
+ tools: [tool],
157
+ toolChoice,
158
+ span
159
+ };
160
+ const response = yield* opts.generateText(modelOptions);
161
+ if (Option.isSome(spanTransformer)) {
162
+ spanTransformer.value({
163
+ ...modelOptions,
164
+ response
165
+ });
166
+ }
167
+ const toolCallPart = response.parts.find(part => part._tag === "ToolCallPart" && part.name === toolCallId);
168
+ if (Predicate.isUndefined(toolCallPart)) {
169
+ return yield* new AiError({
170
+ module: "AiLanguageModel",
171
+ method: "generateObject",
172
+ description: `Tool call '${toolCallId}' not found in model response`
173
+ });
174
+ }
175
+ return yield* Effect.matchEffect(decode(toolCallPart.params), {
176
+ onFailure: cause => new AiError({
177
+ module: "AiLanguageModel",
178
+ method: "generateObject",
179
+ description: `Failed to decode tool call '${toolCallId}' parameters`,
180
+ cause
181
+ }),
182
+ onSuccess: output => Effect.succeed(new AiResponse.WithStructuredOutput({
183
+ parts: response.parts,
184
+ id: toolCallPart.id,
185
+ name: toolCallPart.name,
186
+ value: output
187
+ }, constDisableValidation))
188
+ });
189
+ }, (effect, span) => Effect.withParentSpan(effect, span)));
190
+ };
191
+ return AiLanguageModel.of({
192
+ generateText,
193
+ streamText,
194
+ generateObject
195
+ });
196
+ });
197
+ const convertTool = tool => ({
198
+ name: tool.name,
199
+ description: tool.description ?? getDescription(tool.parametersSchema.ast),
200
+ parameters: makeJsonSchema(tool.parametersSchema.ast),
201
+ structured: false
202
+ });
203
+ const convertStructured = (name, schema) => ({
204
+ name,
205
+ description: getDescription(schema.ast),
206
+ parameters: makeJsonSchema(schema.ast),
207
+ structured: true
208
+ });
209
+ const makeJsonSchema = ast => {
210
+ const $defs = {};
211
+ const schema = JsonSchema.fromAST(ast, {
212
+ definitions: $defs,
213
+ topLevelReferenceStrategy: "skip"
214
+ });
215
+ if (Object.keys($defs).length === 0) return schema;
216
+ schema.$defs = $defs;
217
+ return schema;
218
+ };
219
+ const getDescription = ast => {
220
+ const annotations = ast._tag === "Transformation" ? {
221
+ ...ast.to.annotations,
222
+ ...ast.annotations
223
+ } : ast.annotations;
224
+ return AST.DescriptionAnnotationId in annotations ? annotations[AST.DescriptionAnnotationId] : "";
225
+ };
226
+ const resolveParts = options => Effect.gen(function* () {
227
+ const toolNames = [];
228
+ const toolParts = options.response.parts.filter(part => {
229
+ if (part._tag === "ToolCallPart") {
230
+ toolNames.push(part.name);
231
+ return true;
232
+ }
233
+ return false;
234
+ });
235
+ if (toolParts.length === 0) {
236
+ return new AiResponse.WithToolCallResults({
237
+ parts: options.response.parts,
238
+ results: constEmptyMap,
239
+ encodedResults: constEmptyMap
240
+ }, constDisableValidation);
241
+ }
242
+ yield* Effect.annotateCurrentSpan("toolCalls", toolNames);
243
+ const results = new Map();
244
+ const encodedResults = new Map();
245
+ yield* Effect.forEach(toolParts, part => {
246
+ const id = part.id;
247
+ const name = part.name;
248
+ const params = part.params;
249
+ const toolCall = options.toolkit.handle(name, params);
250
+ return Effect.map(toolCall, ({
251
+ encodedResult,
252
+ result
253
+ }) => {
254
+ results.set(id, result);
255
+ encodedResults.set(id, encodedResult);
256
+ });
257
+ }, {
258
+ concurrency: options.concurrency,
259
+ discard: true
260
+ });
261
+ return new AiResponse.WithToolCallResults({
262
+ parts: options.response.parts,
263
+ results,
264
+ encodedResults
265
+ }, constDisableValidation);
266
+ });
267
+ /**
268
+ * Generate text using a large language model for the specified `prompt`.
269
+ *
270
+ * If a `toolkit` is specified, the large language model will additionally
271
+ * be able to perform tool calls to augment its response.
272
+ *
273
+ * @since 1.0.0
274
+ * @category Functions
275
+ */
276
+ export const generateText = /*#__PURE__*/Effect.serviceFunctionEffect(AiLanguageModel, _ => _.generateText);
277
+ /**
278
+ * Generate a structured object for the specified prompt and schema using a
279
+ * large language model.
280
+ *
281
+ * When using a `Schema` that does not have an `identifier` or `_tag`
282
+ * property, you must specify a `toolCallId` to properly associate the
283
+ * output of the model.
284
+ *
285
+ * @since 1.0.0
286
+ * @category Functions
287
+ */
288
+ export const generateObject = /*#__PURE__*/Effect.serviceFunctionEffect(AiLanguageModel, _ => _.generateObject);
289
+ /**
290
+ * Generate text using a large language model for the specified `prompt`,
291
+ * streaming output from the model as soon as it is available.
292
+ *
293
+ * If a `toolkit` is specified, the large language model will additionally
294
+ * be able to perform tool calls to augment its response.
295
+ *
296
+ * @since 1.0.0
297
+ * @category Functions
298
+ */
299
+ export const streamText = options => Stream.unwrap(AiLanguageModel.pipe(Effect.map(_ => _.streamText(options))));
300
+ //# sourceMappingURL=AiLanguageModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AiLanguageModel.js","names":["Context","Effect","JsonSchema","Option","Predicate","Schema","AST","Stream","AiError","AiInput","AiResponse","CurrentSpanTransformer","constDisableValidation","disableValidation","AiLanguageModel","Tag","constEmptyMap","Map","make","fnUntraced","opts","parentSpanTransformer","serviceOption","getSpanTransformer","pipe","map","orElse","generateText","concurrency","toolChoice","toolkit","options","useSpan","captureStackTrace","attributes","span","prompt","system","fromNullable","spanTransformer","modelOptions","tools","isUndefined","response","isSome","value","actualToolkit","isEffect","tool","push","convertTool","resolveParts","method","effect","withParentSpan","streamText","makeSpanScoped","mapEffect","flatMap","stream","isNone","lastResponse","ensuring","sync","unwrapScoped","generateObject","toolCallId","schema","_tag","identifier","decode","decodeUnknown","convertStructured","name","toolCallPart","parts","find","part","module","description","matchEffect","params","onFailure","cause","onSuccess","output","succeed","WithStructuredOutput","id","of","getDescription","parametersSchema","ast","parameters","makeJsonSchema","structured","$defs","fromAST","definitions","topLevelReferenceStrategy","Object","keys","length","annotations","to","DescriptionAnnotationId","gen","toolNames","toolParts","filter","WithToolCallResults","results","encodedResults","annotateCurrentSpan","forEach","toolCall","handle","encodedResult","result","set","discard","serviceFunctionEffect","_","unwrap"],"sources":["../../src/AiLanguageModel.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,7 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as GlobalValue from "effect/GlobalValue";
1
3
  import * as Option from "effect/Option";
4
+ import * as Predicate from "effect/Predicate";
2
5
  import * as InternalAiPlan from "./internal/aiPlan.js";
3
6
  /**
4
7
  * @since 1.0.0
@@ -14,17 +17,20 @@ const AiModelProto = {
14
17
  ...InternalAiPlan.PlanPrototype,
15
18
  [TypeId]: TypeId
16
19
  };
20
+ const contextCache = /*#__PURE__*/GlobalValue.globalValue("@effect/ai/AiModel/CachedContexts", () => new Map());
17
21
  /**
18
22
  * @since 1.0.0
19
23
  * @category constructors
20
24
  */
21
25
  export const make = options => {
22
26
  const self = Object.create(AiModelProto);
23
- self.cacheKey = options.cacheKey;
24
- self.model = options.model;
25
- self.provides = options.provides;
26
- self.requires = options.requires;
27
- self.updateContext = options.updateContext;
27
+ self.buildContext = Effect.gen(function* () {
28
+ let context = contextCache.get(options.cacheKey);
29
+ if (Predicate.isUndefined(context)) {
30
+ context = yield* options.cachedContext;
31
+ }
32
+ return yield* options.updateRequestContext(context);
33
+ });
28
34
  self.steps = [{
29
35
  model: self,
30
36
  check: Option.none(),
@@ -1 +1 @@
1
- {"version":3,"file":"AiModel.js","names":["Option","InternalAiPlan","TypeId","Symbol","for","PlanTypeId","AiModelProto","PlanPrototype","make","options","self","Object","create","cacheKey","model","provides","requires","updateContext","steps","check","none","schedule"],"sources":["../../src/AiModel.ts"],"sourcesContent":[null],"mappings":"AAKA,OAAO,KAAKA,MAAM,MAAM,eAAe;AAGvC,OAAO,KAAKC,cAAc,MAAM,sBAAsB;AAEtD;;;;AAIA,OAAO,MAAMC,MAAM,gBAAkBC,MAAM,CAACC,GAAG,CAAC,oBAAoB,CAAC;AAQrE;;;;AAIA,OAAO,MAAMC,UAAU,gBAAkBF,MAAM,CAACC,GAAG,CAAC,iBAAiB,CAAC;AAoCtE,MAAME,YAAY,GAAG;EACnB,GAAGL,cAAc,CAACM,aAAa;EAC/B,CAACL,MAAM,GAAGA;CACX;AAED;;;;AAIA,OAAO,MAAMM,IAAI,GAAwBC,OAMxC,IAAiC;EAChC,MAAMC,IAAI,GAAGC,MAAM,CAACC,MAAM,CAACN,YAAY,CAAC;EACxCI,IAAI,CAACG,QAAQ,GAAGJ,OAAO,CAACI,QAAQ;EAChCH,IAAI,CAACI,KAAK,GAAGL,OAAO,CAACK,KAAK;EAC1BJ,IAAI,CAACK,QAAQ,GAAGN,OAAO,CAACM,QAAQ;EAChCL,IAAI,CAACM,QAAQ,GAAGP,OAAO,CAACO,QAAQ;EAChCN,IAAI,CAACO,aAAa,GAAGR,OAAO,CAACQ,aAAa;EAC1CP,IAAI,CAACQ,KAAK,GAAG,CAAC;IACZJ,KAAK,EAAEJ,IAAI;IACXS,KAAK,EAAEnB,MAAM,CAACoB,IAAI,EAAE;IACpBC,QAAQ,EAAErB,MAAM,CAACoB,IAAI;GACtB,CAAC;EACF,OAAOV,IAAI;AACb,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"AiModel.js","names":["Effect","GlobalValue","Option","Predicate","InternalAiPlan","TypeId","Symbol","for","PlanTypeId","AiModelProto","PlanPrototype","contextCache","globalValue","Map","make","options","self","Object","create","buildContext","gen","context","get","cacheKey","isUndefined","cachedContext","updateRequestContext","steps","model","check","none","schedule"],"sources":["../../src/AiModel.ts"],"sourcesContent":[null],"mappings":"AAIA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,WAAW,MAAM,oBAAoB;AACjD,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,SAAS,MAAM,kBAAkB;AAG7C,OAAO,KAAKC,cAAc,MAAM,sBAAsB;AAEtD;;;;AAIA,OAAO,MAAMC,MAAM,gBAAkBC,MAAM,CAACC,GAAG,CAAC,oBAAoB,CAAC;AAQrE;;;;AAIA,OAAO,MAAMC,UAAU,gBAAkBF,MAAM,CAACC,GAAG,CAAC,iBAAiB,CAAC;AA2BtE,MAAME,YAAY,GAAG;EACnB,GAAGL,cAAc,CAACM,aAAa;EAC/B,CAACL,MAAM,GAAGA;CACX;AAED,MAAMM,YAAY,gBAAGV,WAAW,CAACW,WAAW,CAC1C,mCAAmC,EACnC,MAAM,IAAIC,GAAG,EAAe,CAC7B;AAED;;;;AAIA,OAAO,MAAMC,IAAI,GAA4DC,OAwB5E,IAAuE;EACtE,MAAMC,IAAI,GAAGC,MAAM,CAACC,MAAM,CAACT,YAAY,CAAC;EACxCO,IAAI,CAACG,YAAY,GAAGnB,MAAM,CAACoB,GAAG,CAAC,aAAS;IACtC,IAAIC,OAAO,GAAGV,YAAY,CAACW,GAAG,CAACP,OAAO,CAACQ,QAAQ,CAAC;IAChD,IAAIpB,SAAS,CAACqB,WAAW,CAACH,OAAO,CAAC,EAAE;MAClCA,OAAO,GAAG,OAAON,OAAO,CAACU,aAAa;IACxC;IACA,OAAO,OAAOV,OAAO,CAACW,oBAAoB,CAACL,OAAO,CAAC;EACrD,CAAC,CAAC;EACFL,IAAI,CAACW,KAAK,GAAG,CAAC;IACZC,KAAK,EAAEZ,IAAI;IACXa,KAAK,EAAE3B,MAAM,CAAC4B,IAAI,EAAE;IACpBC,QAAQ,EAAE7B,MAAM,CAAC4B,IAAI;GACtB,CAAC;EACF,OAAOd,IAAI;AACb,CAAC","ignoreList":[]}
@@ -1,14 +1,20 @@
1
1
  import * as Internal from "./internal/aiPlan.js";
2
2
  /**
3
3
  * @since 1.0.0
4
- * @category type ids
4
+ * @category Type Ids
5
5
  */
6
6
  export const TypeId = Internal.TypeId;
7
7
  /**
8
8
  * @since 1.0.0
9
9
  * @category constructors
10
10
  */
11
- export const fromModel = Internal.fromModel;
11
+ export const make = function () {
12
+ let plan = Internal.make(arguments[0]);
13
+ for (let i = 1; i < arguments.length; i++) {
14
+ plan = withFallback(plan, arguments[i]);
15
+ }
16
+ return plan;
17
+ };
12
18
  /**
13
19
  * @since 1.0.0
14
20
  * @category error handling
@@ -1 +1 @@
1
- {"version":3,"file":"AiPlan.js","names":["Internal","TypeId","fromModel","withFallback","concatSteps"],"sources":["../../src/AiPlan.ts"],"sourcesContent":[null],"mappings":"AAWA,OAAO,KAAKA,QAAQ,MAAM,sBAAsB;AAEhD;;;;AAIA,OAAO,MAAMC,MAAM,GAAkBD,QAAQ,CAACC,MAAM;AAmEpD;;;;AAIA,OAAO,MAAMC,SAAS,GAO+BF,QAAQ,CAACE,SAAS;AAEvE;;;;AAIA,OAAO,MAAMC,YAAY,GA4BrBH,QAAQ,CAACG,YAAY;AAEzB;;;;AAIA,OAAO,MAAMC,WAAW,GAgBpBJ,QAAQ,CAACI,WAAW","ignoreList":[]}
1
+ {"version":3,"file":"AiPlan.js","names":["Internal","TypeId","make","plan","arguments","i","length","withFallback","concatSteps"],"sources":["../../src/AiPlan.ts"],"sourcesContent":[null],"mappings":"AAWA,OAAO,KAAKA,QAAQ,MAAM,sBAAsB;AAEhD;;;;AAIA,OAAO,MAAMC,MAAM,GAAkBD,QAAQ,CAACC,MAAM;AA0IpD;;;;AAIA,OAAO,MAAMC,IAAI,GAEa,SAAAA,CAAA;EAC5B,IAAIC,IAAI,GAAGH,QAAQ,CAACE,IAAI,CAACE,SAAS,CAAC,CAAC,CAAC,CAAC;EACtC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,SAAS,CAACE,MAAM,EAAED,CAAC,EAAE,EAAE;IACzCF,IAAI,GAAGI,YAAY,CAACJ,IAAI,EAAEC,SAAS,CAACC,CAAC,CAAC,CAAC;EACzC;EACA,OAAOF,IAAI;AACb,CAAS;AAET;;;;AAIA,OAAO,MAAMI,YAAY,GA4BrBP,QAAQ,CAACO,YAAY;AAEzB;;;;AAIA,OAAO,MAAMC,WAAW,GAgBpBR,QAAQ,CAACQ,WAAW","ignoreList":[]}