export * as LLM from "./llm" import { Schema } from "effect" export const ProviderMetadata = Schema.Record(Schema.String, Schema.Record(Schema.String, Schema.Unknown)) export type ProviderMetadata = Schema.Schema.Type export interface ToolTextContent extends Schema.Schema.Type {} export const ToolTextContent = Schema.Struct({ type: Schema.Literal("text"), text: Schema.String, }).annotate({ identifier: "Tool.TextContent" }) export interface ToolFileContent extends Schema.Schema.Type {} export const ToolFileContent = Schema.Struct({ type: Schema.Literal("file"), uri: Schema.String, mime: Schema.String, name: Schema.optional(Schema.String), }).annotate({ identifier: "Tool.FileContent" }) export const ToolContent = Schema.Union([ToolTextContent, ToolFileContent]).pipe(Schema.toTaggedUnion("type")) export type ToolContent = Schema.Schema.Type