96 lines · 3.2 KB · TypeScript
RawDownload
import * as Schema from "effect/Schema";import { NonNegativeInt, PositiveInt, TrimmedNonEmptyString } from "./baseSchemas.ts"; const PROJECT_SEARCH_ENTRIES_MAX_LIMIT = 200;const PROJECT_WRITE_FILE_PATH_MAX_LENGTH = 512;const PROJECT_READ_FILE_PATH_MAX_LENGTH = 512; export const ProjectSearchEntriesInput = Schema.Struct({  cwd: TrimmedNonEmptyString,  query: TrimmedNonEmptyString.check(Schema.isMaxLength(256)),  limit: PositiveInt.check(Schema.isLessThanOrEqualTo(PROJECT_SEARCH_ENTRIES_MAX_LIMIT)),});export type ProjectSearchEntriesInput = typeof ProjectSearchEntriesInput.Type; const ProjectEntryKind = Schema.Literals(["file", "directory"]); export const ProjectEntry = Schema.Struct({  path: TrimmedNonEmptyString,  kind: ProjectEntryKind,});export type ProjectEntry = typeof ProjectEntry.Type; export const ProjectSearchEntriesResult = Schema.Struct({  entries: Schema.Array(ProjectEntry),  truncated: Schema.Boolean,});export type ProjectSearchEntriesResult = typeof ProjectSearchEntriesResult.Type; export const ProjectListEntriesInput = Schema.Struct({  cwd: TrimmedNonEmptyString,});export type ProjectListEntriesInput = typeof ProjectListEntriesInput.Type; export const ProjectListEntriesResult = Schema.Struct({  entries: Schema.Array(ProjectEntry),  truncated: Schema.Boolean,});export type ProjectListEntriesResult = typeof ProjectListEntriesResult.Type; export class ProjectSearchEntriesError extends Schema.TaggedErrorClass<ProjectSearchEntriesError>()(  "ProjectSearchEntriesError",  {    message: TrimmedNonEmptyString,    cause: Schema.optional(Schema.Defect()),  },) {} export class ProjectListEntriesError extends Schema.TaggedErrorClass<ProjectListEntriesError>()(  "ProjectListEntriesError",  {    message: TrimmedNonEmptyString,    cause: Schema.optional(Schema.Defect()),  },) {} export const ProjectReadFileInput = Schema.Struct({  cwd: TrimmedNonEmptyString,  relativePath: TrimmedNonEmptyString.check(Schema.isMaxLength(PROJECT_READ_FILE_PATH_MAX_LENGTH)),});export type ProjectReadFileInput = typeof ProjectReadFileInput.Type; export const ProjectReadFileResult = Schema.Struct({  relativePath: TrimmedNonEmptyString,  contents: Schema.String,  byteLength: NonNegativeInt,  truncated: Schema.Boolean,});export type ProjectReadFileResult = typeof ProjectReadFileResult.Type; export class ProjectReadFileError extends Schema.TaggedErrorClass<ProjectReadFileError>()(  "ProjectReadFileError",  {    message: TrimmedNonEmptyString,    cause: Schema.optional(Schema.Defect()),  },) {} export const ProjectWriteFileInput = Schema.Struct({  cwd: TrimmedNonEmptyString,  relativePath: TrimmedNonEmptyString.check(Schema.isMaxLength(PROJECT_WRITE_FILE_PATH_MAX_LENGTH)),  contents: Schema.String,});export type ProjectWriteFileInput = typeof ProjectWriteFileInput.Type; export const ProjectWriteFileResult = Schema.Struct({  relativePath: TrimmedNonEmptyString,});export type ProjectWriteFileResult = typeof ProjectWriteFileResult.Type; export class ProjectWriteFileError extends Schema.TaggedErrorClass<ProjectWriteFileError>()(  "ProjectWriteFileError",  {    message: TrimmedNonEmptyString,    cause: Schema.optional(Schema.Defect()),  },) {}