export * as PromptInput from "./prompt-input.js" import { Schema } from "effect" import { AgentAttachment, PromptMention } from "./prompt.js" import { optional, statics } from "./schema.js" export interface FileAttachment extends Schema.Schema.Type {} export const FileAttachment = Schema.Struct({ uri: Schema.String, name: Schema.String.pipe(optional), description: Schema.String.pipe(optional), mention: PromptMention.pipe(optional), }) .annotate({ identifier: "PromptInput.FileAttachment" }) .pipe( statics((schema) => ({ create: (input: FileAttachment) => schema.make(input), })), ) export interface Prompt extends Schema.Schema.Type {} export const Prompt = Schema.Struct({ text: Schema.String, files: Schema.Array(FileAttachment).pipe(optional), agents: Schema.Array(AgentAttachment).pipe(optional), }).annotate({ identifier: "PromptInput" })