@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.
- package/dist/cjs/LanguageModel.js +4 -2
- package/dist/cjs/LanguageModel.js.map +1 -1
- package/dist/cjs/Prompt.js +80 -10
- package/dist/cjs/Prompt.js.map +1 -1
- package/dist/cjs/Response.js +176 -51
- package/dist/cjs/Response.js.map +1 -1
- package/dist/cjs/Tool.js +17 -3
- package/dist/cjs/Tool.js.map +1 -1
- package/dist/cjs/Toolkit.js +15 -12
- 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 +112 -13
- package/dist/dts/Prompt.d.ts.map +1 -1
- package/dist/dts/Response.d.ts +195 -26
- package/dist/dts/Response.d.ts.map +1 -1
- package/dist/dts/Tool.d.ts +100 -11
- 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 +4 -2
- package/dist/esm/LanguageModel.js.map +1 -1
- package/dist/esm/Prompt.js +70 -9
- package/dist/esm/Prompt.js.map +1 -1
- package/dist/esm/Response.js +155 -48
- package/dist/esm/Response.js.map +1 -1
- package/dist/esm/Tool.js +17 -3
- package/dist/esm/Tool.js.map +1 -1
- package/dist/esm/Toolkit.js +15 -12
- package/dist/esm/Toolkit.js.map +1 -1
- package/package.json +3 -3
- package/src/LanguageModel.ts +20 -10
- package/src/Prompt.ts +139 -29
- package/src/Response.ts +236 -46
- package/src/Tool.ts +306 -110
- package/src/Toolkit.ts +29 -28
package/dist/esm/Tool.js.map
CHANGED
|
@@ -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","
|
|
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":[]}
|
package/dist/esm/Toolkit.js
CHANGED
|
@@ -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
|
-
|
|
97
|
-
|
|
98
|
-
|
|
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.
|
|
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
|
|
134
|
+
description: `Failed to validate tool call result for tool '${name}'`,
|
|
132
135
|
cause
|
|
133
|
-
})
|
|
134
|
-
const encodedResult = yield* Effect.mapError(schemas.
|
|
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
|
},
|
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","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.
|
|
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
|
-
"
|
|
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> = []
|
|
@@ -1008,8 +1016,10 @@ const resolveToolCalls = <Tools extends Record<string, Tool.Any>>(
|
|
|
1008
1016
|
name: toolCall.name,
|
|
1009
1017
|
result,
|
|
1010
1018
|
encodedResult,
|
|
1011
|
-
|
|
1012
|
-
|
|
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
|
-
|
|
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
|
// =============================================================================
|
|
@@ -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
|
-
*
|
|
564
|
-
*
|
|
565
|
-
*
|
|
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.
|
|
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
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
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: {
|
|
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
|
-
*
|
|
1038
|
-
*
|
|
1039
|
-
*
|
|
1040
|
-
*
|
|
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
|
* ]
|