@effect/ai 0.29.1 → 0.31.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.
- package/dist/cjs/LanguageModel.js +6 -2
- package/dist/cjs/LanguageModel.js.map +1 -1
- package/dist/cjs/Prompt.js +77 -7
- package/dist/cjs/Prompt.js.map +1 -1
- package/dist/cjs/Response.js +177 -58
- package/dist/cjs/Response.js.map +1 -1
- package/dist/cjs/Tool.js +7 -17
- package/dist/cjs/Tool.js.map +1 -1
- package/dist/cjs/Toolkit.js +26 -11
- package/dist/cjs/Toolkit.js.map +1 -1
- package/dist/dts/LanguageModel.d.ts +6 -4
- package/dist/dts/LanguageModel.d.ts.map +1 -1
- package/dist/dts/Prompt.d.ts +106 -1
- package/dist/dts/Prompt.d.ts.map +1 -1
- package/dist/dts/Response.d.ts +262 -49
- package/dist/dts/Response.d.ts.map +1 -1
- package/dist/dts/Tool.d.ts +99 -16
- package/dist/dts/Tool.d.ts.map +1 -1
- package/dist/dts/Toolkit.d.ts +1 -4
- package/dist/dts/Toolkit.d.ts.map +1 -1
- package/dist/esm/LanguageModel.js +6 -2
- package/dist/esm/LanguageModel.js.map +1 -1
- package/dist/esm/Prompt.js +67 -6
- package/dist/esm/Prompt.js.map +1 -1
- package/dist/esm/Response.js +156 -55
- package/dist/esm/Response.js.map +1 -1
- package/dist/esm/Tool.js +7 -17
- package/dist/esm/Tool.js.map +1 -1
- package/dist/esm/Toolkit.js +26 -11
- package/dist/esm/Toolkit.js.map +1 -1
- package/package.json +3 -3
- package/src/LanguageModel.ts +22 -11
- package/src/Prompt.ts +131 -16
- package/src/Response.ts +311 -74
- package/src/Tool.ts +279 -123
- package/src/Toolkit.ts +31 -28
package/dist/esm/Tool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tool.js","names":["Context","
|
|
1
|
+
{"version":3,"file":"Tool.js","names":["Context","constFalse","constTrue","identity","JsonSchema","Option","pipeArguments","Predicate","Schema","AST","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","options","self","Object","assign","create","id","name","providerDefinedProto","constEmptyStruct","make","success","Void","failure","Never","description","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":[]}
|
package/dist/esm/Toolkit.js
CHANGED
|
@@ -43,6 +43,7 @@ import { CommitPrototype } from "effect/Effectable";
|
|
|
43
43
|
import { identity } from "effect/Function";
|
|
44
44
|
import { BaseProto as InspectableProto } from "effect/Inspectable";
|
|
45
45
|
import * as Layer from "effect/Layer";
|
|
46
|
+
import * as ParseResult from "effect/ParseResult";
|
|
46
47
|
import { pipeArguments } from "effect/Pipeable";
|
|
47
48
|
import * as Predicate from "effect/Predicate";
|
|
48
49
|
import * as Schema from "effect/Schema";
|
|
@@ -86,17 +87,16 @@ const Proto = {
|
|
|
86
87
|
let schemas = schemasCache.get(tool);
|
|
87
88
|
if (Predicate.isUndefined(schemas)) {
|
|
88
89
|
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
90
|
const decodeParameters = Schema.decodeUnknown(tool.parametersSchema);
|
|
91
|
+
const resultSchema = Schema.Union(tool.successSchema, tool.failureSchema);
|
|
92
|
+
const validateResult = Schema.validate(resultSchema);
|
|
93
|
+
const encodeResult = Schema.encodeUnknown(resultSchema);
|
|
93
94
|
schemas = {
|
|
94
95
|
context: handler.context,
|
|
95
96
|
handler: handler.handler,
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
decodeParameters
|
|
97
|
+
decodeParameters,
|
|
98
|
+
validateResult,
|
|
99
|
+
encodeResult
|
|
100
100
|
};
|
|
101
101
|
schemasCache.set(tool, schemas);
|
|
102
102
|
}
|
|
@@ -125,19 +125,34 @@ 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
|
|
128
|
+
const {
|
|
129
|
+
isFailure,
|
|
130
|
+
result
|
|
131
|
+
} = yield* schemas.handler(decodedParams).pipe(Effect.map(result => ({
|
|
132
|
+
result,
|
|
133
|
+
isFailure: false
|
|
134
|
+
})), Effect.catchAll(error =>
|
|
135
|
+
// If the tool handler failed, check the tool's failure mode to
|
|
136
|
+
// determine how the result should be returned to the end user
|
|
137
|
+
tool.failureMode === "error" ? Effect.fail(error) : Effect.succeed({
|
|
138
|
+
result: error,
|
|
139
|
+
isFailure: true
|
|
140
|
+
})), Effect.tap(({
|
|
141
|
+
result
|
|
142
|
+
}) => schemas.validateResult(result)), Effect.mapInputContext(input => Context.merge(schemas.context, input)), Effect.mapError(cause => ParseResult.isParseError(cause) ? new AiError.MalformedInput({
|
|
129
143
|
module: "Toolkit",
|
|
130
144
|
method: `${name}.handle`,
|
|
131
|
-
description: `Failed to
|
|
145
|
+
description: `Failed to validate tool call result for tool '${name}'`,
|
|
132
146
|
cause
|
|
133
|
-
})
|
|
134
|
-
const encodedResult = yield* Effect.mapError(schemas.
|
|
147
|
+
}) : cause));
|
|
148
|
+
const encodedResult = yield* Effect.mapError(schemas.encodeResult(result), cause => new AiError.MalformedInput({
|
|
135
149
|
module: "Toolkit",
|
|
136
150
|
method: `${name}.handle`,
|
|
137
151
|
description: `Failed to encode tool call result for tool '${name}'`,
|
|
138
152
|
cause
|
|
139
153
|
}));
|
|
140
154
|
return {
|
|
155
|
+
isFailure,
|
|
141
156
|
result,
|
|
142
157
|
encodedResult
|
|
143
158
|
};
|
package/dist/esm/Toolkit.js.map
CHANGED
|
@@ -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","
|
|
1
|
+
{"version":3,"file":"Toolkit.js","names":["Context","Effect","CommitPrototype","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","resultSchema","Union","successSchema","failureSchema","validateResult","validate","encodeResult","encodeUnknown","handle","fn","captureStackTrace","params","annotateCurrentSpan","parameters","toolNames","keys","join","MalformedOutput","module","method","description","decodedParams","mapError","cause","JSON","stringify","undefined","isFailure","result","pipe","map","catchAll","error","failureMode","fail","succeed","tap","mapInputContext","input","merge","isParseError","MalformedInput","encodedResult","toJSON","_id","Array","from","values","arguments","makeProto","assign","resolveInput","output","value","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.
|
|
3
|
+
"version": "0.31.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
|
-
"
|
|
20
|
-
"effect": "^3.18.1"
|
|
20
|
+
"effect": "^3.18.4"
|
|
21
21
|
},
|
|
22
22
|
"publishConfig": {
|
|
23
23
|
"provenance": true
|
package/src/LanguageModel.ts
CHANGED
|
@@ -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
|
-
} ?
|
|
420
|
+
} ? AiError.AiError
|
|
421
|
+
: Options extends {
|
|
420
422
|
readonly toolkit: Effect.Effect<Toolkit.WithHandler<infer _Tools>, infer _E, infer _R>
|
|
421
|
-
|
|
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.
|
|
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.
|
|
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<
|
|
987
|
-
|
|
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> = []
|
|
@@ -1002,14 +1010,17 @@ const resolveToolCalls = <Tools extends Record<string, Tool.Any>>(
|
|
|
1002
1010
|
|
|
1003
1011
|
return Effect.forEach(toolCalls, (toolCall) => {
|
|
1004
1012
|
return toolkit.handle(toolCall.name, toolCall.params as any).pipe(
|
|
1005
|
-
Effect.map(({ encodedResult, result }) =>
|
|
1013
|
+
Effect.map(({ encodedResult, isFailure, result }) =>
|
|
1006
1014
|
Response.makePart("tool-result", {
|
|
1007
1015
|
id: toolCall.id,
|
|
1008
1016
|
name: toolCall.name,
|
|
1009
1017
|
result,
|
|
1010
1018
|
encodedResult,
|
|
1011
|
-
|
|
1012
|
-
providerExecuted: false
|
|
1019
|
+
isFailure,
|
|
1020
|
+
providerExecuted: false,
|
|
1021
|
+
...(toolCall.providerName !== undefined
|
|
1022
|
+
? { providerName: toolCall.providerName }
|
|
1023
|
+
: {})
|
|
1013
1024
|
})
|
|
1014
1025
|
)
|
|
1015
1026
|
)
|
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
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
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
|
// =============================================================================
|
|
@@ -559,6 +606,7 @@ export const ToolCallPart: Schema.Schema<ToolCallPart, ToolCallPartEncoded> = Sc
|
|
|
559
606
|
* const toolResultPart: Prompt.ToolResultPart = Prompt.makePart("tool-result", {
|
|
560
607
|
* id: "call_123",
|
|
561
608
|
* name: "get_weather",
|
|
609
|
+
* isFailure: false,
|
|
562
610
|
* result: {
|
|
563
611
|
* temperature: 22,
|
|
564
612
|
* condition: "sunny",
|
|
@@ -579,6 +627,10 @@ export interface ToolResultPart extends BasePart<"tool-result", ToolResultPartOp
|
|
|
579
627
|
* Name of the tool that was executed.
|
|
580
628
|
*/
|
|
581
629
|
readonly name: string
|
|
630
|
+
/**
|
|
631
|
+
* Whether or not the result of executing the tool call handler was an error.
|
|
632
|
+
*/
|
|
633
|
+
readonly isFailure: boolean
|
|
582
634
|
/**
|
|
583
635
|
* The result returned by the tool execution.
|
|
584
636
|
*/
|
|
@@ -600,6 +652,10 @@ export interface ToolResultPartEncoded extends BasePartEncoded<"tool-result", To
|
|
|
600
652
|
* Name of the tool that was executed.
|
|
601
653
|
*/
|
|
602
654
|
readonly name: string
|
|
655
|
+
/**
|
|
656
|
+
* Whether or not the result of executing the tool call handler was an error.
|
|
657
|
+
*/
|
|
658
|
+
readonly isFailure: boolean
|
|
603
659
|
/**
|
|
604
660
|
* The result returned by the tool execution.
|
|
605
661
|
*/
|
|
@@ -625,6 +681,7 @@ export const ToolResultPart: Schema.Schema<ToolResultPart, ToolResultPartEncoded
|
|
|
625
681
|
type: Schema.Literal("tool-result"),
|
|
626
682
|
id: Schema.String,
|
|
627
683
|
name: Schema.String,
|
|
684
|
+
isFailure: Schema.Boolean,
|
|
628
685
|
result: Schema.Unknown,
|
|
629
686
|
options: Schema.optionalWith(ProviderOptions, { default: constEmptyObject })
|
|
630
687
|
}).pipe(
|
|
@@ -632,6 +689,15 @@ export const ToolResultPart: Schema.Schema<ToolResultPart, ToolResultPartEncoded
|
|
|
632
689
|
Schema.annotations({ identifier: "ToolResultPart" })
|
|
633
690
|
)
|
|
634
691
|
|
|
692
|
+
/**
|
|
693
|
+
* Constructs a new tool result part.
|
|
694
|
+
*
|
|
695
|
+
* @since 1.0.0
|
|
696
|
+
* @category Constructors
|
|
697
|
+
*/
|
|
698
|
+
export const toolResultPart = (params: PartConstructorParams<ToolResultPart>): ToolResultPart =>
|
|
699
|
+
makePart("tool-result", params)
|
|
700
|
+
|
|
635
701
|
// =============================================================================
|
|
636
702
|
// Base Message
|
|
637
703
|
// =============================================================================
|
|
@@ -725,12 +791,26 @@ export const makeMessage = <const Role extends Message["role"]>(
|
|
|
725
791
|
}
|
|
726
792
|
): Extract<Message, { role: Role }> =>
|
|
727
793
|
(({
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
794
|
+
...params,
|
|
795
|
+
[MessageTypeId]: MessageTypeId,
|
|
796
|
+
role,
|
|
797
|
+
options: params.options ?? {}
|
|
732
798
|
}) as any)
|
|
733
799
|
|
|
800
|
+
/**
|
|
801
|
+
* A utility type for specifying the parameters required to construct a
|
|
802
|
+
* specific message for a prompt.
|
|
803
|
+
*
|
|
804
|
+
* @since 1.0.0
|
|
805
|
+
* @category Utility Types
|
|
806
|
+
*/
|
|
807
|
+
export type MessageConstructorParams<M extends Message> = Omit<M, MessageTypeId | "role" | "options"> & {
|
|
808
|
+
/**
|
|
809
|
+
* Optional provider-specific options for this message.
|
|
810
|
+
*/
|
|
811
|
+
readonly options?: Part["options"] | undefined
|
|
812
|
+
}
|
|
813
|
+
|
|
734
814
|
/**
|
|
735
815
|
* Schema for decoding message content (i.e. an array containing a single
|
|
736
816
|
* `TextPart`) from a string.
|
|
@@ -811,6 +891,15 @@ export const SystemMessage: Schema.Schema<SystemMessage, SystemMessageEncoded> =
|
|
|
811
891
|
Schema.annotations({ identifier: "SystemMessage" })
|
|
812
892
|
)
|
|
813
893
|
|
|
894
|
+
/**
|
|
895
|
+
* Constructs a new system message.
|
|
896
|
+
*
|
|
897
|
+
* @since 1.0.0
|
|
898
|
+
* @category Constructors
|
|
899
|
+
*/
|
|
900
|
+
export const systemMessage = (params: MessageConstructorParams<SystemMessage>): SystemMessage =>
|
|
901
|
+
makeMessage("system", params)
|
|
902
|
+
|
|
814
903
|
// =============================================================================
|
|
815
904
|
// User Message
|
|
816
905
|
// =============================================================================
|
|
@@ -910,6 +999,14 @@ export const UserMessage: Schema.Schema<UserMessage, UserMessageEncoded> = Schem
|
|
|
910
999
|
Schema.annotations({ identifier: "UserMessage" })
|
|
911
1000
|
)
|
|
912
1001
|
|
|
1002
|
+
/**
|
|
1003
|
+
* Constructs a new user message.
|
|
1004
|
+
*
|
|
1005
|
+
* @since 1.0.0
|
|
1006
|
+
* @category Constructors
|
|
1007
|
+
*/
|
|
1008
|
+
export const userMessage = (params: MessageConstructorParams<UserMessage>): UserMessage => makeMessage("user", params)
|
|
1009
|
+
|
|
913
1010
|
// =============================================================================
|
|
914
1011
|
// Assistant Message
|
|
915
1012
|
// =============================================================================
|
|
@@ -935,7 +1032,11 @@ export const UserMessage: Schema.Schema<UserMessage, UserMessageEncoded> = Schem
|
|
|
935
1032
|
* Prompt.makePart("tool-result", {
|
|
936
1033
|
* id: "call_123",
|
|
937
1034
|
* name: "get_weather",
|
|
938
|
-
*
|
|
1035
|
+
* isFailure: false,
|
|
1036
|
+
* result: {
|
|
1037
|
+
* temperature: 72,
|
|
1038
|
+
* condition: "sunny"
|
|
1039
|
+
* }
|
|
939
1040
|
* }),
|
|
940
1041
|
* Prompt.makePart("text", {
|
|
941
1042
|
* text: "The weather in San Francisco is currently 72°F and sunny."
|
|
@@ -1017,6 +1118,15 @@ export const AssistantMessage: Schema.Schema<AssistantMessage, AssistantMessageE
|
|
|
1017
1118
|
Schema.annotations({ identifier: "AssistantMessage" })
|
|
1018
1119
|
)
|
|
1019
1120
|
|
|
1121
|
+
/**
|
|
1122
|
+
* Constructs a new assistant message.
|
|
1123
|
+
*
|
|
1124
|
+
* @since 1.0.0
|
|
1125
|
+
* @category Constructors
|
|
1126
|
+
*/
|
|
1127
|
+
export const assistantMessage = (params: MessageConstructorParams<AssistantMessage>): AssistantMessage =>
|
|
1128
|
+
makeMessage("assistant", params)
|
|
1129
|
+
|
|
1020
1130
|
// =============================================================================
|
|
1021
1131
|
// Tool Message
|
|
1022
1132
|
// =============================================================================
|
|
@@ -1033,6 +1143,7 @@ export const AssistantMessage: Schema.Schema<AssistantMessage, AssistantMessageE
|
|
|
1033
1143
|
* Prompt.makePart("tool-result", {
|
|
1034
1144
|
* id: "call_123",
|
|
1035
1145
|
* name: "search_web",
|
|
1146
|
+
* isFailure: false,
|
|
1036
1147
|
* result: {
|
|
1037
1148
|
* query: "TypeScript best practices",
|
|
1038
1149
|
* results: [
|
|
@@ -1108,6 +1219,14 @@ export const ToolMessage: Schema.Schema<ToolMessage, ToolMessageEncoded> = Schem
|
|
|
1108
1219
|
Schema.annotations({ identifier: "ToolMessage" })
|
|
1109
1220
|
)
|
|
1110
1221
|
|
|
1222
|
+
/**
|
|
1223
|
+
* Constructs a new tool message.
|
|
1224
|
+
*
|
|
1225
|
+
* @since 1.0.0
|
|
1226
|
+
* @category Constructors
|
|
1227
|
+
*/
|
|
1228
|
+
export const toolMessage = (params: MessageConstructorParams<ToolMessage>): ToolMessage => makeMessage("tool", params)
|
|
1229
|
+
|
|
1111
1230
|
// =============================================================================
|
|
1112
1231
|
// Message
|
|
1113
1232
|
// =============================================================================
|
|
@@ -1254,13 +1373,6 @@ const encodePrompt = (input: Prompt, ast: AST.AST) =>
|
|
|
1254
1373
|
onSuccess: (messages) => ({ content: messages })
|
|
1255
1374
|
})
|
|
1256
1375
|
|
|
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
1376
|
/**
|
|
1265
1377
|
* Schema for parsing a Prompt from JSON strings.
|
|
1266
1378
|
*
|
|
@@ -1439,6 +1551,7 @@ const isValidPart = (part: Response.AnyPart): part is ValidResponsePart => {
|
|
|
1439
1551
|
*
|
|
1440
1552
|
* @example
|
|
1441
1553
|
* ```ts
|
|
1554
|
+
* import { Either } from "effect"
|
|
1442
1555
|
* import { Prompt, Response } from "@effect/ai"
|
|
1443
1556
|
*
|
|
1444
1557
|
* const responseParts: ReadonlyArray<Response.AnyPart> = [
|
|
@@ -1454,6 +1567,7 @@ const isValidPart = (part: Response.AnyPart): part is ValidResponsePart => {
|
|
|
1454
1567
|
* Response.makePart("tool-result", {
|
|
1455
1568
|
* id: "call_1",
|
|
1456
1569
|
* name: "get_time",
|
|
1570
|
+
* isFailure: false,
|
|
1457
1571
|
* result: "10:30 AM",
|
|
1458
1572
|
* encodedResult: "10:30 AM",
|
|
1459
1573
|
* providerExecuted: false
|
|
@@ -1540,6 +1654,7 @@ export const fromResponseParts = (parts: ReadonlyArray<Response.AnyPart>): Promp
|
|
|
1540
1654
|
toolParts.push(makePart("tool-result", {
|
|
1541
1655
|
id: part.id,
|
|
1542
1656
|
name: part.providerName ?? part.name,
|
|
1657
|
+
isFailure: part.isFailure,
|
|
1543
1658
|
result: part.encodedResult
|
|
1544
1659
|
}))
|
|
1545
1660
|
break
|