77 lines · 2.7 KB · TypeScript
RawDownload
import { Schema } from "effect"; import { EnvironmentId, ProjectId, ThreadId, TrimmedNonEmptyString } from "./baseSchemas"; export const ExecutionEnvironmentPlatformOs = Schema.Literals([  "darwin",  "linux",  "windows",  "unknown",]);export type ExecutionEnvironmentPlatformOs = typeof ExecutionEnvironmentPlatformOs.Type; export const ExecutionEnvironmentPlatformArch = Schema.Literals(["arm64", "x64", "other"]);export type ExecutionEnvironmentPlatformArch = typeof ExecutionEnvironmentPlatformArch.Type; export const ExecutionEnvironmentPlatform = Schema.Struct({  os: ExecutionEnvironmentPlatformOs,  arch: ExecutionEnvironmentPlatformArch,});export type ExecutionEnvironmentPlatform = typeof ExecutionEnvironmentPlatform.Type; export const ExecutionEnvironmentCapabilities = Schema.Struct({  repositoryIdentity: Schema.Boolean.pipe(Schema.withDecodingDefault(() => false)),});export type ExecutionEnvironmentCapabilities = typeof ExecutionEnvironmentCapabilities.Type; export const ExecutionEnvironmentDescriptor = Schema.Struct({  environmentId: EnvironmentId,  label: TrimmedNonEmptyString,  platform: ExecutionEnvironmentPlatform,  serverVersion: TrimmedNonEmptyString,  capabilities: ExecutionEnvironmentCapabilities,});export type ExecutionEnvironmentDescriptor = typeof ExecutionEnvironmentDescriptor.Type; export const EnvironmentConnectionState = Schema.Literals([  "connecting",  "connected",  "disconnected",  "error",]);export type EnvironmentConnectionState = typeof EnvironmentConnectionState.Type; export const RepositoryIdentityLocator = Schema.Struct({  source: Schema.Literal("git-remote"),  remoteName: TrimmedNonEmptyString,  remoteUrl: TrimmedNonEmptyString,});export type RepositoryIdentityLocator = typeof RepositoryIdentityLocator.Type; export const RepositoryIdentity = Schema.Struct({  canonicalKey: TrimmedNonEmptyString,  locator: RepositoryIdentityLocator,  displayName: Schema.optionalKey(TrimmedNonEmptyString),  provider: Schema.optionalKey(TrimmedNonEmptyString),  owner: Schema.optionalKey(TrimmedNonEmptyString),  name: Schema.optionalKey(TrimmedNonEmptyString),});export type RepositoryIdentity = typeof RepositoryIdentity.Type; export const ScopedProjectRef = Schema.Struct({  environmentId: EnvironmentId,  projectId: ProjectId,});export type ScopedProjectRef = typeof ScopedProjectRef.Type; export const ScopedThreadRef = Schema.Struct({  environmentId: EnvironmentId,  threadId: ThreadId,});export type ScopedThreadRef = typeof ScopedThreadRef.Type; export const ScopedThreadSessionRef = Schema.Struct({  environmentId: EnvironmentId,  threadId: ThreadId,});export type ScopedThreadSessionRef = typeof ScopedThreadSessionRef.Type;