Buckets:
| import * as Schema from "effect/Schema" | |
| export class Source extends Schema.Class<Source>("Prompt.Source")({ | |
| start: Schema.Finite, | |
| end: Schema.Finite, | |
| text: Schema.String, | |
| }) {} | |
| export class FileAttachment extends Schema.Class<FileAttachment>("Prompt.FileAttachment")({ | |
| uri: Schema.String, | |
| mime: Schema.String, | |
| name: Schema.String.pipe(Schema.optional), | |
| description: Schema.String.pipe(Schema.optional), | |
| source: Source.pipe(Schema.optional), | |
| }) { | |
| static create(input: FileAttachment) { | |
| return new FileAttachment({ | |
| uri: input.uri, | |
| mime: input.mime, | |
| name: input.name, | |
| description: input.description, | |
| source: input.source, | |
| }) | |
| } | |
| } | |
| export class AgentAttachment extends Schema.Class<AgentAttachment>("Prompt.AgentAttachment")({ | |
| name: Schema.String, | |
| source: Source.pipe(Schema.optional), | |
| }) {} | |
| export class Prompt extends Schema.Class<Prompt>("Prompt")({ | |
| text: Schema.String, | |
| files: Schema.Array(FileAttachment).pipe(Schema.optional), | |
| agents: Schema.Array(AgentAttachment).pipe(Schema.optional), | |
| }) { | |
| static readonly equivalence = Schema.toEquivalence(Prompt) | |
| static fromUserMessage(input: Pick<Prompt, "text" | "files" | "agents">) { | |
| return new Prompt({ | |
| text: input.text, | |
| ...(input.files === undefined ? {} : { files: input.files }), | |
| ...(input.agents === undefined ? {} : { agents: input.agents }), | |
| }) | |
| } | |
| } | |
Xet Storage Details
- Size:
- 1.4 kB
- Xet hash:
- 0c3bfced448a375e54c076500f195cf549bc3b53d7cee3daf268df88432f2b3b
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.