MCPcopy Index your code
hub / github.com/Effect-TS/effect / ToolResultPart

Function ToolResultPart

packages/ai/ai/src/Response.ts:1678–1745  ·  view source on GitHub ↗
(
  name: Name,
  success: Success,
  failure: Failure
)

Source from the content-addressed store, hash-verified

1676 * @category Schemas
1677 */
1678export const ToolResultPart = <
1679 const Name extends string,
1680 Success extends Schema.Schema.Any,
1681 Failure extends Schema.Schema.All
1682>(
1683 name: Name,
1684 success: Success,
1685 failure: Failure
1686): Schema.Schema<
1687 ToolResultPart<Name, Schema.Schema.Type<Success>, Schema.Schema.Type<Failure>>,
1688 ToolResultPartEncoded
1689> => {
1690 const Base = Schema.Struct({
1691 id: Schema.String,
1692 type: Schema.Literal("tool-result"),
1693 providerName: Schema.optional(Schema.String),
1694 isFailure: Schema.Boolean
1695 })
1696 const ResultSchema = Schema.Union(success, failure)
1697 const Encoded = Schema.Struct({
1698 ...Base.fields,
1699 name: Schema.String,
1700 result: Schema.encodedSchema(ResultSchema),
1701 providerExecuted: Schema.optional(Schema.Boolean),
1702 metadata: Schema.optional(ProviderMetadata)
1703 })
1704 const Decoded = Schema.Struct({
1705 ...Base.fields,
1706 [PartTypeId]: Schema.Literal(PartTypeId),
1707 name: Schema.Literal(name),
1708 result: Schema.typeSchema(ResultSchema),
1709 encodedResult: Schema.encodedSchema(ResultSchema),
1710 providerExecuted: Schema.Boolean,
1711 metadata: ProviderMetadata
1712 })
1713 const decodeResult = ParseResult.decode<any, any, never>(ResultSchema as any)
1714 const encodeResult = ParseResult.encode<any, any, never>(ResultSchema as any)
1715 return Schema.transformOrFail(
1716 Encoded,
1717 Decoded,
1718 {
1719 strict: true,
1720 decode: Effect.fnUntraced(function*(encoded) {
1721 const decoded = yield* decodeResult(encoded.result)
1722 const providerExecuted = encoded.providerExecuted ?? false
1723 return {
1724 ...encoded,
1725 [PartTypeId]: PartTypeId,
1726 name: encoded.name as Name,
1727 result: decoded,
1728 encodedResult: encoded.result as any,
1729 metadata: encoded.metadata ?? {},
1730 providerExecuted
1731 } as const
1732 }),
1733 encode: Effect.fnUntraced(function*(decoded) {
1734 const encoded = yield* encodeResult(decoded.result)
1735 return {

Callers 3

AllPartsFunction · 0.70
PartFunction · 0.70
StreamPartFunction · 0.70

Calls 3

decodeMethod · 0.80
encodeMethod · 0.80
annotationsMethod · 0.65

Tested by

no test coverage detected