@effect/ai 0.29.1 → 0.30.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.
@@ -1 +1 @@
1
- {"version":3,"file":"Tool.js","names":["Context","Effect","constFalse","constTrue","identity","JsonSchema","Option","pipeArguments","Predicate","Schema","AST","AiError","TypeId","ProviderDefinedTypeId","isUserDefined","u","hasProperty","isProviderDefined","Proto","_Requirements","pipe","arguments","addDependency","userDefinedProto","setParameters","parametersSchema","isSchema","Struct","setSuccess","successSchema","setFailure","failureSchema","annotate","tag","value","annotations","add","annotateContext","context","merge","ProviderDefinedProto","decodeResult","result","decodeUnknown","orElse","mapError","cause","MalformedOutput","module","method","description","name","options","self","Object","assign","create","id","providerDefinedProto","constEmptyStruct","make","success","Void","failure","Never","parameters","empty","providerDefined","args","resultSchema","EitherFromUnion","right","left","toolkitName","providerName","argsSchema","requiresHandler","fromTaggedRequest","schema","_tag","getOrUndefined","getDescriptionAnnotation","ast","to","getDescription","tool","isNotUndefined","getDescriptionFromSchemaAst","DescriptionAnnotationId","undefined","getJsonSchema","getJsonSchemaFromSchemaAst","props","getPropertySignatures","length","type","properties","required","additionalProperties","$defs","fromAST","definitions","topLevelReferenceStrategy","keys","Title","Tag","Readonly","Reference","defaultValue","Destructive","Idempotent","OpenWorld","suspectProtoRx","suspectConstructorRx","_parse","text","obj","JSON","parse","test","filter","next","nodes","node","prototype","hasOwnProperty","call","SyntaxError","constructor","key","push","unsafeSecureJsonParse","stackTraceLimit","Error"],"sources":["../../src/Tool.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Tool.js","names":["Context","Effect","constFalse","constTrue","identity","JsonSchema","Option","pipeArguments","Predicate","Schema","AST","AiError","TypeId","ProviderDefinedTypeId","isUserDefined","u","hasProperty","isProviderDefined","Proto","_Requirements","pipe","arguments","addDependency","userDefinedProto","setParameters","parametersSchema","isSchema","Struct","setSuccess","successSchema","setFailure","failureSchema","annotate","tag","value","annotations","add","annotateContext","context","merge","ProviderDefinedProto","decodeResult","result","decodeUnknown","orElse","mapError","cause","MalformedOutput","module","method","description","name","options","self","Object","assign","create","id","providerDefinedProto","constEmptyStruct","make","success","Void","failure","Never","resultSchema","Either","left","right","parameters","failureMode","empty","providerDefined","args","undefined","toolkitName","providerName","argsSchema","requiresHandler","fromTaggedRequest","schema","_tag","getOrUndefined","getDescriptionAnnotation","ast","to","getDescription","tool","isNotUndefined","getDescriptionFromSchemaAst","DescriptionAnnotationId","getJsonSchema","getJsonSchemaFromSchemaAst","props","getPropertySignatures","length","type","properties","required","additionalProperties","$defs","fromAST","definitions","topLevelReferenceStrategy","keys","Title","Tag","Readonly","Reference","defaultValue","Destructive","Idempotent","OpenWorld","suspectProtoRx","suspectConstructorRx","_parse","text","obj","JSON","parse","test","filter","next","nodes","node","prototype","hasOwnProperty","call","SyntaxError","constructor","key","push","unsafeSecureJsonParse","stackTraceLimit","Error"],"sources":["../../src/Tool.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -40,9 +40,11 @@
40
40
  import * as Context from "effect/Context";
41
41
  import * as Effect from "effect/Effect";
42
42
  import { CommitPrototype } from "effect/Effectable";
43
+ import * as Either from "effect/Either";
43
44
  import { identity } from "effect/Function";
44
45
  import { BaseProto as InspectableProto } from "effect/Inspectable";
45
46
  import * as Layer from "effect/Layer";
47
+ import * as ParseResult from "effect/ParseResult";
46
48
  import { pipeArguments } from "effect/Pipeable";
47
49
  import * as Predicate from "effect/Predicate";
48
50
  import * as Schema from "effect/Schema";
@@ -86,17 +88,15 @@ const Proto = {
86
88
  let schemas = schemasCache.get(tool);
87
89
  if (Predicate.isUndefined(schemas)) {
88
90
  const handler = context.unsafeMap.get(tool.id);
89
- const encodeSuccess = Schema.encodeUnknown(tool.successSchema);
90
- const encodeFailure = Schema.encodeUnknown(tool.failureSchema);
91
- const decodeFailure = Schema.decodeUnknown(tool.failureSchema);
92
91
  const decodeParameters = Schema.decodeUnknown(tool.parametersSchema);
92
+ const validateResult = Schema.validate(tool.resultSchema);
93
+ const encodeResult = Schema.encodeUnknown(tool.resultSchema);
93
94
  schemas = {
94
95
  context: handler.context,
95
96
  handler: handler.handler,
96
- encodeSuccess,
97
- encodeFailure,
98
- decodeFailure,
99
- decodeParameters
97
+ decodeParameters,
98
+ validateResult,
99
+ encodeResult
100
100
  };
101
101
  schemasCache.set(tool, schemas);
102
102
  }
@@ -125,13 +125,16 @@ const Proto = {
125
125
  description: `Failed to decode tool call parameters for tool '${name}' from:\n'${JSON.stringify(params, undefined, 2)}'`,
126
126
  cause
127
127
  }));
128
- const result = yield* schemas.handler(decodedParams).pipe(Effect.mapInputContext(input => Context.merge(schemas.context, input)), Effect.catchAll(error => schemas.decodeFailure(error).pipe(Effect.mapError(cause => new AiError.MalformedInput({
128
+ const result = yield* schemas.handler(decodedParams).pipe(Effect.matchEffect({
129
+ onFailure: error => tool.failureMode === "error" ? Effect.fail(error) : Effect.succeed(Either.left(error)),
130
+ onSuccess: value => Effect.succeed(Either.right(value))
131
+ }), Effect.flatMap(either => schemas.validateResult(either)), Effect.mapInputContext(input => Context.merge(schemas.context, input)), Effect.mapError(cause => ParseResult.isParseError(cause) ? new AiError.MalformedInput({
129
132
  module: "Toolkit",
130
133
  method: `${name}.handle`,
131
- description: `Failed to decode tool call failure for tool '${name}'`,
134
+ description: `Failed to validate tool call result for tool '${name}'`,
132
135
  cause
133
- })), Effect.flatMap(Effect.fail))));
134
- const encodedResult = yield* Effect.mapError(schemas.encodeSuccess(result), cause => new AiError.MalformedInput({
136
+ }) : cause));
137
+ const encodedResult = yield* Effect.mapError(schemas.encodeResult(result), cause => new AiError.MalformedInput({
135
138
  module: "Toolkit",
136
139
  method: `${name}.handle`,
137
140
  description: `Failed to encode tool call result for tool '${name}'`,
@@ -144,7 +147,7 @@ const Proto = {
144
147
  });
145
148
  return {
146
149
  tools,
147
- handle
150
+ handle: handle
148
151
  };
149
152
  });
150
153
  },
@@ -1 +1 @@
1
- {"version":3,"file":"Toolkit.js","names":["Context","Effect","CommitPrototype","identity","BaseProto","InspectableProto","Layer","pipeArguments","Predicate","Schema","AiError","Tool","TypeId","Proto","of","toContext","build","gen","context","handlers","isEffect","contextMap","Map","name","handler","Object","entries","tool","tools","set","id","unsafeMake","toLayer","scopedContext","commit","schemasCache","WeakMap","getSchemas","schemas","get","isUndefined","unsafeMap","encodeSuccess","encodeUnknown","successSchema","encodeFailure","failureSchema","decodeFailure","decodeUnknown","decodeParameters","parametersSchema","handle","fn","captureStackTrace","params","annotateCurrentSpan","parameters","toolNames","keys","join","MalformedOutput","module","method","description","decodedParams","mapError","cause","JSON","stringify","undefined","result","pipe","mapInputContext","input","merge","catchAll","error","MalformedInput","flatMap","fail","encodedResult","toJSON","_id","Array","from","values","map","arguments","makeProto","assign","resolveInput","output","value","isSchema","fromTaggedRequest","empty","make","toolkits","toolkit"],"sources":["../../src/Toolkit.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Toolkit.js","names":["Context","Effect","CommitPrototype","Either","identity","BaseProto","InspectableProto","Layer","ParseResult","pipeArguments","Predicate","Schema","AiError","Tool","TypeId","Proto","of","toContext","build","gen","context","handlers","isEffect","contextMap","Map","name","handler","Object","entries","tool","tools","set","id","unsafeMake","toLayer","scopedContext","commit","schemasCache","WeakMap","getSchemas","schemas","get","isUndefined","unsafeMap","decodeParameters","decodeUnknown","parametersSchema","validateResult","validate","resultSchema","encodeResult","encodeUnknown","handle","fn","captureStackTrace","params","annotateCurrentSpan","parameters","toolNames","keys","join","MalformedOutput","module","method","description","decodedParams","mapError","cause","JSON","stringify","undefined","result","pipe","matchEffect","onFailure","error","failureMode","fail","succeed","left","onSuccess","value","right","flatMap","either","mapInputContext","input","merge","isParseError","MalformedInput","encodedResult","toJSON","_id","Array","from","values","map","arguments","makeProto","assign","resolveInput","output","isSchema","fromTaggedRequest","empty","make","toolkits","toolkit"],"sources":["../../src/Toolkit.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/ai",
3
- "version": "0.29.1",
3
+ "version": "0.30.0",
4
4
  "description": "Effect modules for working with AI apis",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -15,9 +15,9 @@
15
15
  },
16
16
  "peerDependencies": {
17
17
  "@effect/experimental": "^0.56.0",
18
+ "@effect/platform": "^0.92.1",
18
19
  "@effect/rpc": "^0.71.0",
19
- "@effect/platform": "^0.92.0",
20
- "effect": "^3.18.1"
20
+ "effect": "^3.18.4"
21
21
  },
22
22
  "publishConfig": {
23
23
  "provenance": true
@@ -415,17 +415,19 @@ export class GenerateObjectResponse<Tools extends Record<string, Tool.Any>, A> e
415
415
  * @category Utility Types
416
416
  */
417
417
  export type ExtractError<Options> = Options extends {
418
+ readonly toolkit: Toolkit.WithHandler<infer _Tools>
418
419
  readonly disableToolCallResolution: true
419
- } ? Options extends {
420
+ } ? AiError.AiError
421
+ : Options extends {
420
422
  readonly toolkit: Effect.Effect<Toolkit.WithHandler<infer _Tools>, infer _E, infer _R>
421
- } ? AiError.AiError | _E :
422
- AiError.AiError :
423
- Options extends {
423
+ readonly disableToolCallResolution: true
424
+ } ? AiError.AiError | _E
425
+ : Options extends {
424
426
  readonly toolkit: Toolkit.WithHandler<infer _Tools>
425
- } ? AiError.AiError | Tool.Failure<_Tools[keyof _Tools]>
427
+ } ? AiError.AiError | Tool.HandlerError<_Tools[keyof _Tools]>
426
428
  : Options extends {
427
429
  readonly toolkit: Effect.Effect<Toolkit.WithHandler<infer _Tools>, infer _E, infer _R>
428
- } ? AiError.AiError | Tool.Failure<_Tools[keyof _Tools]> | _E :
430
+ } ? AiError.AiError | Tool.HandlerError<_Tools[keyof _Tools]> | _E :
429
431
  AiError.AiError
430
432
 
431
433
  /**
@@ -983,8 +985,14 @@ const resolveToolCalls = <Tools extends Record<string, Tool.Any>>(
983
985
  toolkit: Toolkit.WithHandler<Tools>,
984
986
  concurrency: Concurrency | undefined
985
987
  ): Effect.Effect<
986
- ReadonlyArray<Response.ToolResultPart<Tool.Name<Tools[keyof Tools]>, Tool.Success<Tools[keyof Tools]>>>,
987
- Tool.Failure<Tools[keyof Tools]>,
988
+ ReadonlyArray<
989
+ Response.ToolResultPart<
990
+ Tool.Name<Tools[keyof Tools]>,
991
+ Tool.Success<Tools[keyof Tools]>,
992
+ Tool.Failure<Tools[keyof Tools]>
993
+ >
994
+ >,
995
+ Tool.HandlerError<Tools[keyof Tools]>,
988
996
  Tool.Requirements<Tools[keyof Tools]>
989
997
  > => {
990
998
  const toolNames: Array<string> = []
@@ -1008,8 +1016,10 @@ const resolveToolCalls = <Tools extends Record<string, Tool.Any>>(
1008
1016
  name: toolCall.name,
1009
1017
  result,
1010
1018
  encodedResult,
1011
- providerName: toolCall.providerName,
1012
- providerExecuted: false
1019
+ providerExecuted: false,
1020
+ ...(toolCall.providerName !== undefined
1021
+ ? { providerName: toolCall.providerName }
1022
+ : {})
1013
1023
  })
1014
1024
  )
1015
1025
  )
package/src/Prompt.ts CHANGED
@@ -226,12 +226,26 @@ export const makePart = <const Type extends Part["type"]>(
226
226
  }
227
227
  ): Extract<Part, { type: Type }> =>
228
228
  (({
229
- ...params,
230
- [PartTypeId]: PartTypeId,
231
- type,
232
- options: params.options ?? {}
229
+ ...params,
230
+ [PartTypeId]: PartTypeId,
231
+ type,
232
+ options: params.options ?? {}
233
233
  }) as any)
234
234
 
235
+ /**
236
+ * A utility type for specifying the parameters required to construct a
237
+ * specific part of a prompt.
238
+ *
239
+ * @since 1.0.0
240
+ * @category Utility Types
241
+ */
242
+ export type PartConstructorParams<P extends Part> = Omit<P, PartTypeId | "type" | "options"> & {
243
+ /**
244
+ * Optional provider-specific options for this part.
245
+ */
246
+ readonly options?: Part["options"] | undefined
247
+ }
248
+
235
249
  // =============================================================================
236
250
  // Text Part
237
251
  // =============================================================================
@@ -297,6 +311,14 @@ export const TextPart: Schema.Schema<TextPart, TextPartEncoded> = Schema.Struct(
297
311
  Schema.annotations({ identifier: "TextPart" })
298
312
  )
299
313
 
314
+ /**
315
+ * Constructs a new text part.
316
+ *
317
+ * @since 1.0.0
318
+ * @category Constructors
319
+ */
320
+ export const textPart = (params: PartConstructorParams<TextPart>): TextPart => makePart("text", params)
321
+
300
322
  // =============================================================================
301
323
  // Reasoning Part
302
324
  // =============================================================================
@@ -360,6 +382,15 @@ export const ReasoningPart: Schema.Schema<ReasoningPart, ReasoningPartEncoded> =
360
382
  Schema.annotations({ identifier: "ReasoningPart" })
361
383
  )
362
384
 
385
+ /**
386
+ * Constructs a new reasoning part.
387
+ *
388
+ * @since 1.0.0
389
+ * @category Constructors
390
+ */
391
+ export const reasoningPart = (params: PartConstructorParams<ReasoningPart>): ReasoningPart =>
392
+ makePart("reasoning", params)
393
+
363
394
  // =============================================================================
364
395
  // File Part
365
396
  // =============================================================================
@@ -452,6 +483,14 @@ export const FilePart: Schema.Schema<FilePart, FilePartEncoded> = Schema.Struct(
452
483
  Schema.annotations({ identifier: "FilePart" })
453
484
  )
454
485
 
486
+ /**
487
+ * Constructs a new file part.
488
+ *
489
+ * @since 1.0.0
490
+ * @category Constructors
491
+ */
492
+ export const filePart = (params: PartConstructorParams<FilePart>): FilePart => makePart("file", params)
493
+
455
494
  // =============================================================================
456
495
  // Tool Call Part
457
496
  // =============================================================================
@@ -545,6 +584,14 @@ export const ToolCallPart: Schema.Schema<ToolCallPart, ToolCallPartEncoded> = Sc
545
584
  Schema.annotations({ identifier: "ToolCallPart" })
546
585
  )
547
586
 
587
+ /**
588
+ * Constructs a new tool call part.
589
+ *
590
+ * @since 1.0.0
591
+ * @category Constructors
592
+ */
593
+ export const toolCallPart = (params: PartConstructorParams<ToolCallPart>): ToolCallPart => makePart("tool-call", params)
594
+
548
595
  // =============================================================================
549
596
  // Tool Result Part
550
597
  // =============================================================================
@@ -560,9 +607,12 @@ export const ToolCallPart: Schema.Schema<ToolCallPart, ToolCallPartEncoded> = Sc
560
607
  * id: "call_123",
561
608
  * name: "get_weather",
562
609
  * result: {
563
- * temperature: 22,
564
- * condition: "sunny",
565
- * humidity: 65
610
+ * _tag: "Right",
611
+ * right: {
612
+ * temperature: 22,
613
+ * condition: "sunny",
614
+ * humidity: 65
615
+ * }
566
616
  * }
567
617
  * })
568
618
  * ```
@@ -582,7 +632,7 @@ export interface ToolResultPart extends BasePart<"tool-result", ToolResultPartOp
582
632
  /**
583
633
  * The result returned by the tool execution.
584
634
  */
585
- readonly result: unknown
635
+ readonly result: Schema.EitherEncoded<unknown, unknown>
586
636
  }
587
637
 
588
638
  /**
@@ -603,7 +653,7 @@ export interface ToolResultPartEncoded extends BasePartEncoded<"tool-result", To
603
653
  /**
604
654
  * The result returned by the tool execution.
605
655
  */
606
- readonly result: unknown
656
+ readonly result: Schema.EitherEncoded<unknown, unknown>
607
657
  }
608
658
 
609
659
  /**
@@ -625,13 +675,25 @@ export const ToolResultPart: Schema.Schema<ToolResultPart, ToolResultPartEncoded
625
675
  type: Schema.Literal("tool-result"),
626
676
  id: Schema.String,
627
677
  name: Schema.String,
628
- result: Schema.Unknown,
678
+ result: Schema.encodedSchema(Schema.Either({
679
+ left: Schema.Unknown,
680
+ right: Schema.Unknown
681
+ })),
629
682
  options: Schema.optionalWith(ProviderOptions, { default: constEmptyObject })
630
683
  }).pipe(
631
684
  Schema.attachPropertySignature(PartTypeId, PartTypeId),
632
685
  Schema.annotations({ identifier: "ToolResultPart" })
633
686
  )
634
687
 
688
+ /**
689
+ * Constructs a new tool result part.
690
+ *
691
+ * @since 1.0.0
692
+ * @category Constructors
693
+ */
694
+ export const toolResultPart = (params: PartConstructorParams<ToolResultPart>): ToolResultPart =>
695
+ makePart("tool-result", params)
696
+
635
697
  // =============================================================================
636
698
  // Base Message
637
699
  // =============================================================================
@@ -725,12 +787,26 @@ export const makeMessage = <const Role extends Message["role"]>(
725
787
  }
726
788
  ): Extract<Message, { role: Role }> =>
727
789
  (({
728
- ...params,
729
- [MessageTypeId]: MessageTypeId,
730
- role,
731
- options: params.options ?? {}
790
+ ...params,
791
+ [MessageTypeId]: MessageTypeId,
792
+ role,
793
+ options: params.options ?? {}
732
794
  }) as any)
733
795
 
796
+ /**
797
+ * A utility type for specifying the parameters required to construct a
798
+ * specific message for a prompt.
799
+ *
800
+ * @since 1.0.0
801
+ * @category Utility Types
802
+ */
803
+ export type MessageConstructorParams<M extends Message> = Omit<M, MessageTypeId | "role" | "options"> & {
804
+ /**
805
+ * Optional provider-specific options for this message.
806
+ */
807
+ readonly options?: Part["options"] | undefined
808
+ }
809
+
734
810
  /**
735
811
  * Schema for decoding message content (i.e. an array containing a single
736
812
  * `TextPart`) from a string.
@@ -811,6 +887,15 @@ export const SystemMessage: Schema.Schema<SystemMessage, SystemMessageEncoded> =
811
887
  Schema.annotations({ identifier: "SystemMessage" })
812
888
  )
813
889
 
890
+ /**
891
+ * Constructs a new system message.
892
+ *
893
+ * @since 1.0.0
894
+ * @category Constructors
895
+ */
896
+ export const systemMessage = (params: MessageConstructorParams<SystemMessage>): SystemMessage =>
897
+ makeMessage("system", params)
898
+
814
899
  // =============================================================================
815
900
  // User Message
816
901
  // =============================================================================
@@ -910,6 +995,14 @@ export const UserMessage: Schema.Schema<UserMessage, UserMessageEncoded> = Schem
910
995
  Schema.annotations({ identifier: "UserMessage" })
911
996
  )
912
997
 
998
+ /**
999
+ * Constructs a new user message.
1000
+ *
1001
+ * @since 1.0.0
1002
+ * @category Constructors
1003
+ */
1004
+ export const userMessage = (params: MessageConstructorParams<UserMessage>): UserMessage => makeMessage("user", params)
1005
+
913
1006
  // =============================================================================
914
1007
  // Assistant Message
915
1008
  // =============================================================================
@@ -935,7 +1028,10 @@ export const UserMessage: Schema.Schema<UserMessage, UserMessageEncoded> = Schem
935
1028
  * Prompt.makePart("tool-result", {
936
1029
  * id: "call_123",
937
1030
  * name: "get_weather",
938
- * result: { temperature: 72, condition: "sunny" }
1031
+ * result: {
1032
+ * _tag: "Right",
1033
+ * right: { temperature: 72, condition: "sunny" }
1034
+ * }
939
1035
  * }),
940
1036
  * Prompt.makePart("text", {
941
1037
  * text: "The weather in San Francisco is currently 72°F and sunny."
@@ -1017,6 +1113,15 @@ export const AssistantMessage: Schema.Schema<AssistantMessage, AssistantMessageE
1017
1113
  Schema.annotations({ identifier: "AssistantMessage" })
1018
1114
  )
1019
1115
 
1116
+ /**
1117
+ * Constructs a new assistant message.
1118
+ *
1119
+ * @since 1.0.0
1120
+ * @category Constructors
1121
+ */
1122
+ export const assistantMessage = (params: MessageConstructorParams<AssistantMessage>): AssistantMessage =>
1123
+ makeMessage("assistant", params)
1124
+
1020
1125
  // =============================================================================
1021
1126
  // Tool Message
1022
1127
  // =============================================================================
@@ -1034,11 +1139,14 @@ export const AssistantMessage: Schema.Schema<AssistantMessage, AssistantMessageE
1034
1139
  * id: "call_123",
1035
1140
  * name: "search_web",
1036
1141
  * result: {
1037
- * query: "TypeScript best practices",
1038
- * results: [
1039
- * { title: "TypeScript Handbook", url: "https://..." },
1040
- * { title: "Effective TypeScript", url: "https://..." }
1041
- * ]
1142
+ * _tag: "Right",
1143
+ * right: {
1144
+ * query: "TypeScript best practices",
1145
+ * results: [
1146
+ * { title: "TypeScript Handbook", url: "https://..." },
1147
+ * { title: "Effective TypeScript", url: "https://..." }
1148
+ * ]
1149
+ * }
1042
1150
  * }
1043
1151
  * })
1044
1152
  * ]
@@ -1108,6 +1216,14 @@ export const ToolMessage: Schema.Schema<ToolMessage, ToolMessageEncoded> = Schem
1108
1216
  Schema.annotations({ identifier: "ToolMessage" })
1109
1217
  )
1110
1218
 
1219
+ /**
1220
+ * Constructs a new tool message.
1221
+ *
1222
+ * @since 1.0.0
1223
+ * @category Constructors
1224
+ */
1225
+ export const toolMessage = (params: MessageConstructorParams<ToolMessage>): ToolMessage => makeMessage("tool", params)
1226
+
1111
1227
  // =============================================================================
1112
1228
  // Message
1113
1229
  // =============================================================================
@@ -1254,13 +1370,6 @@ const encodePrompt = (input: Prompt, ast: AST.AST) =>
1254
1370
  onSuccess: (messages) => ({ content: messages })
1255
1371
  })
1256
1372
 
1257
- // export const Prompt: Schema.Schema<Prompt, PromptEncoded> = Schema.Struct({
1258
- // content: Schema.Array(Message)
1259
- // }).pipe(
1260
- // Schema.attachPropertySignature(TypeId, TypeId),
1261
- // Schema.annotations({ identifier: "Prompt" })
1262
- // )
1263
-
1264
1373
  /**
1265
1374
  * Schema for parsing a Prompt from JSON strings.
1266
1375
  *
@@ -1439,6 +1548,7 @@ const isValidPart = (part: Response.AnyPart): part is ValidResponsePart => {
1439
1548
  *
1440
1549
  * @example
1441
1550
  * ```ts
1551
+ * import { Either } from "effect"
1442
1552
  * import { Prompt, Response } from "@effect/ai"
1443
1553
  *
1444
1554
  * const responseParts: ReadonlyArray<Response.AnyPart> = [
@@ -1454,8 +1564,8 @@ const isValidPart = (part: Response.AnyPart): part is ValidResponsePart => {
1454
1564
  * Response.makePart("tool-result", {
1455
1565
  * id: "call_1",
1456
1566
  * name: "get_time",
1457
- * result: "10:30 AM",
1458
- * encodedResult: "10:30 AM",
1567
+ * result: Either.right("10:30 AM"),
1568
+ * encodedResult: { _tag: "Right", right: "10:30 AM" },
1459
1569
  * providerExecuted: false
1460
1570
  * })
1461
1571
  * ]