import * as Schema from "effect/Schema"; import { PortSchema, PositiveInt, TrimmedNonEmptyString } from "./baseSchemas.ts"; export const DesktopBackendBootstrap = Schema.Struct({ mode: Schema.Literal("desktop"), noBrowser: Schema.Boolean, port: PortSchema, // Omitted when the desktop launches the backend inside WSL, since the // Windows-side baseDir maps to /mnt/c/... and the Linux side should use its // own home directory instead. t3Home: Schema.optional(Schema.String), host: Schema.String, desktopBootstrapToken: Schema.String, tailscaleServeEnabled: Schema.Boolean, tailscaleServePort: PortSchema, otlpTracesUrl: Schema.optional(Schema.String), otlpMetricsUrl: Schema.optional(Schema.String), desktopTelemetryFd: Schema.optionalKey(PositiveInt), desktopTelemetryControlFd: Schema.optionalKey(PositiveInt), resourceMonitorPath: Schema.optionalKey(TrimmedNonEmptyString), }); export type DesktopBackendBootstrap = typeof DesktopBackendBootstrap.Type;