cli

package
v0.83.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 15, 2026 License: MIT Imports: 109 Imported by: 0

Documentation

Index

Constants

View Source
const (
	AzureOSDiskAuto      = "auto"
	AzureOSDiskEphemeral = "ephemeral"
	AzureOSDiskManaged   = "managed"

	AzureCleanupBindingLabel = "_crabbox_azure_cleanup_binding"
)
View Source
const (
	CheckpointKindAWSAMI           = checkpointKindAWSAMI
	CheckpointKindAWSEBS           = checkpointKindAWSEBS
	CheckpointKindAzure            = checkpointKindAzure
	CheckpointKindAzureOS          = checkpointKindAzureOS
	CheckpointKindGCP              = checkpointKindGCP
	CheckpointKindGCPDisk          = checkpointKindGCPDisk
	CheckpointKindHetzner          = checkpointKindHetzner
	CheckpointKindMachine0         = checkpointKindMachine0
	CheckpointKindParallels        = checkpointKindParallels
	CheckpointKindDockerCommit     = checkpointKindDockerCommit
	CheckpointKindDaytona          = checkpointKindDaytona
	CheckpointKindIncus            = checkpointKindIncus
	CheckpointKindCloudflare       = checkpointKindCloudflare
	CheckpointStrategyImage        = checkpointStrategyImage
	CheckpointStrategyDiskSnapshot = checkpointStrategyDiskSnapshot
)
View Source
const (
	AzureBackendVM              = "vm"
	AzureBackendDynamicSessions = "dynamic-sessions"
)
View Source
const (
	// DigitalOceanRegionFallback preserves replay of intents created before automatic region selection.
	DigitalOceanRegionFallback = "nyc3"
	DigitalOceanImageFallback  = "ubuntu-24-04-x64"
)
View Source
const (
	ExeDevWorkRootFallback  = "/var/tmp/crabbox"
	ExeDevDefaultImageLabel = "default"
)

These values are runtime and presentation fallbacks, not configured defaults. Empty WorkRoot permits inheritance; empty Image omits the native image option.

View Source
const (
	LambdaConfiguredRegionDefault = "us-west-1"
	LambdaConfiguredTypeDefault   = "gpu_1x_a10"
	LambdaImageFamilyFallback     = "lambda-stack-24-04"
)
View Source
const (
	LinodeConfiguredRegionDefault = "us-ord"
	LinodeConfiguredTypeDefault   = "g6-standard-1"
	LinodeImageFallback           = "linode/ubuntu24.04"
)
View Source
const (
	RunpodSSHUserFallback  = "root"
	RunpodWorkRootFallback = "/tmp/crabbox"
)

These runtime fallbacks do not initialize the raw User or WorkRoot fields.

View Source
const (
	TencentCloudRegionFallback                        = "ap-shanghai"
	TencentCloudZoneFallback                          = "ap-shanghai-2"
	TencentCloudTypeFallback                          = "SA5.MEDIUM2"
	TencentCloudRootGBFallback                  int64 = 50
	TencentCloudInternetChargeTypeFallback            = "TRAFFIC_POSTPAID_BY_HOUR"
	TencentCloudInternetMaxBandwidthOutFallback int64 = 5
	TencentCloudAPIEndpointFallback                   = "https://cvm.tencentcloudapi.com"
)

Runtime fallbacks do not initialize the raw configuration or flag defaults.

View Source
const (
	VultrRegionFallback     = "ewr"
	VultrUserSchemeFallback = "root"
)

Runtime fallbacks do not initialize the raw provider configuration.

View Source
const (
	WandbDefaultImageFallback       = "ubuntu:24.04"
	WandbMaxLifetimeSecondsFallback = 1800
)

Runtime fallbacks do not initialize the raw configuration or flag defaults.

View Source
const (
	ArchitectureAMD64 = "amd64"
	ArchitectureARM64 = "arm64"
)
View Source
const (
	TransportTailnet = "tailnet"
	TransportURL     = "url"
	TransportSSH     = "ssh"
	TransportNone    = "none"
	TransportPending = "pending"
)

Transport classes used by the unified `pond peers` view and by the doctor reachability matrix. The five values cover every shape the resolver can emit; see bridgePeerFromClaim for the per-provider mapping.

View Source
const (
	DelegatedRunArtifactDefaultMaxFiles = 256
	DelegatedRunArtifactDefaultMaxBytes = int64(10 * 1024 * 1024)
	DelegatedRunArtifactBeginMarker     = "__CRABBOX_ARTIFACT_TAR_BEGIN__"
	DelegatedRunArtifactEndMarker       = "__CRABBOX_ARTIFACT_TAR_END__"
)
View Source
const (
	TargetLinux         = targetLinux
	TargetMacOS         = targetMacOS
	TargetWindows       = targetWindows
	TargetWorkerRuntime = targetWorkerRuntime
	WindowsModeNormal   = windowsModeNormal
	WindowsModeWSL2     = windowsModeWSL2
)
View Source
const AWSLambdaMicroVMConfigDefaultWorkdir string = "/workspace/crabbox"
View Source
const AgentSandboxConfigDefaultDeleteOnRelease bool = true
View Source
const AgentSandboxConfigDefaultExecTimeoutSecs int = 600
View Source
const AgentSandboxConfigDefaultKubectl string = "kubectl"
View Source
const AgentSandboxConfigDefaultNamespace string = "default"
View Source
const AgentSandboxConfigDefaultPodReadyTimeout time.Duration = 180 * time.Second
View Source
const AgentSandboxConfigDefaultSandboxReadyTimeout time.Duration = 180 * time.Second
View Source
const AgentSandboxConfigDefaultWorkdir string = "/workspace/crabbox"
View Source
const AnthropicSRTConfigDefaultCLIPath string = "srt"
View Source
const AzureDynamicSessionsConfigDefaultAPIVersion string = "2025-02-02-preview"
View Source
const AzureDynamicSessionsConfigDefaultTimeoutSecs int = 1800
View Source
const AzureDynamicSessionsConfigDefaultWorkdir string = "/workspace/crabbox"
View Source
const AzureSandboxConfigDefaultDisk string = "ubuntu"
View Source
const BlaxelConfigDefaultAPIURL string = "https://api.blaxel.ai"
View Source
const BlaxelConfigDefaultExecTimeoutSecs int = 600
View Source
const BlaxelConfigDefaultImage string = "ubuntu:24.04"
View Source
const BlaxelConfigDefaultWorkdir string = "/workspace/crabbox"
View Source
const BoxdConfigDefaultAPIURL string = "https://app.boxd.sh"
View Source
const BoxdConfigDefaultDeleteOnRelease bool = true
View Source
const BoxdConfigDefaultGRPCURL string = "boxd.sh:9443"
View Source
const BoxdConfigDefaultWorkRoot string = "/home/boxd/crabbox"
View Source
const CloudRunSandboxConfigDefaultCLIPath string = "/usr/local/gcp/bin/sandbox"
View Source
const CloudRunSandboxConfigDefaultRootfs string = "/"
View Source
const CloudRunSandboxConfigDefaultWorkdir string = "/tmp/crabbox"
View Source
const CloudRunSandboxConfigDefaultWrite bool = true
View Source
const CloudflareConfigDefaultWorkdir string = "/workspace/crabbox"
View Source
const CloudflareSandboxConfigDefaultExecTimeoutSecs int = 600
View Source
const CloudflareSandboxConfigDefaultWorkdir string = "/workspace/crabbox"
View Source
const CodeSandboxConfigDefaultAutomaticWakeupHTTP bool = true
View Source
const CodeSandboxConfigDefaultBridgeCommand string = "node"
View Source
const CodeSandboxConfigDefaultDoctorListLimit int = 1
View Source
const CodeSandboxConfigDefaultOperationTimeoutSecs int = 30
View Source
const CodeSandboxConfigDefaultPrivacy string = "private"
View Source
const CodeSandboxConfigDefaultSDKPackage string = "@codesandbox/sdk@2.4.2"
View Source
const CodeSandboxConfigDefaultWorkdir string = "/project/workspace"
View Source
const CoderConfigDefaultCLIPath string = "coder"
View Source
const CoderConfigDefaultWait string = "yes"
View Source
const CoderConfigDefaultWorkRoot string = "/home/coder/crabbox"
View Source
const CoderConfigDefaultWorkspacePrefix string = "crabbox-"
View Source
const CrownestConfigDefaultAPIURL string = "https://api.crownest.dev"
View Source
const CrownestConfigDefaultTemplate string = "python-node"
View Source
const CrownestConfigDefaultTimeoutSecs int = 600
View Source
const CuaConfigDefaultBridgeCommand string = "python3"
View Source
const CuaConfigDefaultExecTimeoutSecs int = 600
View Source
const CuaConfigDefaultImage string = "ubuntu:24.04"
View Source
const CuaConfigDefaultKind string = "container"
View Source
const CuaConfigDefaultSDKFallbackImport string = "cua_sandbox"
View Source
const CuaConfigDefaultSDKImport string = "cua"
View Source
const CuaConfigDefaultSDKPackage string = "cua"
View Source
const CuaConfigDefaultWorkdir string = "/workspace/crabbox"
View Source
const CubeSandboxConfigDefaultAPIURL string = "http://127.0.0.1:3000"
View Source
const CubeSandboxConfigDefaultDomain string = "cube.app"
View Source
const CubeSandboxConfigDefaultProxyPortHTTP int = 80
View Source
const CubeSandboxConfigDefaultWorkdir string = "crabbox"
View Source
const DaytonaConfigDefaultAPIURL string = "https://app.daytona.io/api"
View Source
const DaytonaConfigDefaultSSHAccessMinutes int = 30
View Source
const DaytonaConfigDefaultSSHGatewayHost string = "ssh.app.daytona.io"
View Source
const DaytonaConfigDefaultUser string = "daytona"
View Source
const DaytonaConfigDefaultWorkRoot string = "/home/daytona/crabbox"
View Source
const DefaultCloudflareDynamicWorkersCompatibilityDate = "2026-06-12"
View Source
const DefaultTartImage = "ghcr.io/cirruslabs/macos-sequoia-base@sha256:4947ac5ab1b2fdc46ab856132d2ba958f8e45b5f85192c66370dafc028c514dd"

DefaultTartImage is the immutable built-in image; the Tart adapter verifies its contents.

View Source
const DelegatedRunDownloadMaxBytes = 64 * 1024
View Source
const DockerSandboxConfigDefaultAgent string = "shell"
View Source
const DockerSandboxConfigDefaultCLIPath string = "sbx"
View Source
const E2BConfigDefaultAPIURL string = "https://api.e2b.app"
View Source
const E2BConfigDefaultDomain string = "e2b.app"
View Source
const E2BConfigDefaultTemplate string = "base"
View Source
const E2BConfigDefaultWorkdir string = "crabbox"
View Source
const ExeDevConfigDefaultCPUs int = 2
View Source
const ExeDevConfigDefaultControlHost string = "exe.dev"
View Source
const ExeDevConfigDefaultDisk string = "10GB"
View Source
const ExeDevConfigDefaultMemory string = "4GB"
View Source
const ExeDevConfigDefaultNoEmail bool = true
View Source
const FastAPICloudConfigDefaultAPIURL string = "https://api.fastapicloud.com/api/v1"
View Source
const FirecrackerConfigDefaultBinary string = "firecracker"
View Source
const FirecrackerConfigDefaultCNIBinDir string = "/opt/cni/bin"
View Source
const FirecrackerConfigDefaultCNIConfDir string = "/etc/cni/conf.d"
View Source
const FirecrackerConfigDefaultCNINetwork string = "crabbox-firecracker"
View Source
const FirecrackerConfigDefaultCPUs int = 4
View Source
const FirecrackerConfigDefaultDeleteOnRelease bool = true
View Source
const FirecrackerConfigDefaultDiskMiB int = 16384
View Source
const FirecrackerConfigDefaultKernel string = "/var/lib/crabbox/firecracker/vmlinux"
View Source
const FirecrackerConfigDefaultLaunchTimeout time.Duration = 120 * time.Second
View Source
const FirecrackerConfigDefaultMemoryMiB int = 4096
View Source
const FirecrackerConfigDefaultNetwork string = "cni"
View Source
const FirecrackerConfigDefaultRootFS string = "/var/lib/crabbox/firecracker/rootfs.ext4"
View Source
const FirecrackerConfigDefaultUser string = "crabbox"
View Source
const FirecrackerConfigDefaultWorkRoot string = defaultPOSIXWorkRoot
View Source
const FixedAWSClaimProvider = "aws-fixed-v1"
View Source
const FixedAWSCreateIntentVersion = 2
View Source
const FixedAgentSandboxClaimProvider = "agent-sandbox-fixed-v1"
View Source
const FixedDaytonaClaimProvider = "daytona-fixed-v1"
View Source
const FixedLocalContainerClaimProvider = "local-container-fixed-v1"
View Source
const FixedMachine0ClaimProvider = "machine0-fixed-v1"
View Source
const FixedMachine0CreateIntentVersion = 1
View Source
const FixedParallelsClaimProvider = "parallels-fixed-v1"
View Source
const FixedProxmoxClaimProvider = "proxmox-fixed-v1"
View Source
const FreestyleConfigDefaultAPIURL string = "https://api.freestyle.sh"
View Source
const FreestyleConfigDefaultWorkdir string = "crabbox"
View Source
const GitHubCodespacesConfigDefaultDeleteOnRelease bool = true
View Source
const GitHubCodespacesConfigDefaultGHPath string = "gh"
View Source
const GitHubCodespacesConfigDefaultIdleTimeout time.Duration = 1800 * time.Second
View Source
const GitHubCodespacesConfigDefaultMachine string = "basicLinux32gb"
View Source
const GitHubCodespacesConfigDefaultRetentionPeriod time.Duration = 604800 * time.Second
View Source
const GitHubCodespacesConfigDefaultWorkRoot string = "/workspaces/crabbox"
View Source
const HostingerConfigDefaultAPIURL string = "https://developers.hostinger.com"
View Source
const HostingerConfigDefaultHostnamePrefix string = "crabbox"
View Source
const HostingerConfigDefaultReleaseAction string = "stop"
View Source
const HostingerConfigDefaultUser string = "root"
View Source
const HyperVConfigDefaultCPUs int = 4
View Source
const HyperVConfigDefaultMemory int = 8192
View Source
const HyperVConfigDefaultSwitch string = "Default Switch"
View Source
const HyperVConfigDefaultUser string = "crabbox"
View Source
const IncusConfigDefaultDeleteOnRelease bool = true
View Source
const IncusConfigDefaultImage string = "images:ubuntu/24.04/cloud"
View Source
const IncusConfigDefaultInstanceType string = "container"
View Source
const IncusConfigDefaultLaunchPort string = "22"
View Source
const IncusConfigDefaultProxyDevice string = "crabbox-ssh"
View Source
const IncusConfigDefaultProxyListenHost string = "127.0.0.1"
View Source
const IncusConfigDefaultRemote string = "local"
View Source
const IncusConfigDefaultStartTimeout time.Duration = 600 * time.Second
View Source
const IncusConfigDefaultUser string = "crabbox"
View Source
const IncusConfigDefaultWorkRoot string = defaultPOSIXWorkRoot
View Source
const IsloConfigDefaultBaseURL string = "https://api.islo.dev"
View Source
const IsloConfigDefaultDiskGB int = 20
View Source
const IsloConfigDefaultMemoryMB int = 4096
View Source
const IsloConfigDefaultVCPUs int = 2
View Source
const IsloConfigDefaultWorkdir string = "crabbox"
View Source
const KubeVirtConfigDefaultDeleteOnRelease bool = true
View Source
const KubeVirtConfigDefaultKubectl string = "kubectl"
View Source
const KubeVirtConfigDefaultNamespace string = "default"
View Source
const KubeVirtConfigDefaultSSHPort string = "22"
View Source
const KubeVirtConfigDefaultSSHUser string = "crabbox"
View Source
const KubeVirtConfigDefaultVirtctl string = "virtctl"
View Source
const KubeVirtConfigDefaultWorkRoot string = "/home/crabbox/crabbox"
View Source
const LocalContainerConfigDefaultNetwork string = "bridge"
View Source
const LocalContainerConfigDefaultRuntime string = "docker"
View Source
const LocalContainerConfigDefaultUser string = "crabbox"
View Source
const LumeConfigDefaultBase string = "crabbox-macos-golden"
View Source
const LumeConfigDefaultCLIPath string = "lume"
View Source
const LumeConfigDefaultUser string = "lume"
View Source
const LumeConfigDefaultWorkRoot string = "/Users/lume/crabbox"
View Source
const MXCConfigDefaultCLIPath string = "wxc-exec.exe"
View Source
const MXCConfigDefaultContainment string = "processcontainer"
View Source
const MXCConfigDefaultNetwork string = "block"
View Source
const MXCConfigDefaultVersion string = "0.6.0-alpha"
View Source
const Machine0ConfigDefaultCLIPath string = "machine0"
View Source
const Machine0ConfigDefaultCreateTimeout time.Duration = 900 * time.Second
View Source
const Machine0ConfigDefaultImage string = "ubuntu-24-04-loaded"
View Source
const Machine0ConfigDefaultPollInterval time.Duration = 60 * time.Second
View Source
const Machine0ConfigDefaultRegion string = "eu"
View Source
const Machine0ConfigDefaultReleasePolicy string = "destroy"
View Source
const Machine0ConfigDefaultSize string = "large"
View Source
const ModalConfigDefaultApp string = "crabbox"
View Source
const ModalConfigDefaultImage string = "python:3.13-slim"
View Source
const ModalConfigDefaultPython string = "python3"
View Source
const ModalConfigDefaultWorkdir string = "/workspace/crabbox"
View Source
const MorphConfigDefaultAPIURL string = "https://cloud.morph.so"
View Source
const MorphConfigDefaultSSHGatewayHost string = "ssh.cloud.morph.so"
View Source
const MorphConfigDefaultWakeOnSSH bool = true
View Source
const MorphConfigDefaultWorkRoot string = "/tmp/crabbox"
View Source
const MultipassConfigDefaultCLIPath string = "multipass"
View Source
const MultipassConfigDefaultCPUs int = 4
View Source
const MultipassConfigDefaultDisk string = "30G"
View Source
const MultipassConfigDefaultLaunchTimeout time.Duration = 1200 * time.Second
View Source
const MultipassConfigDefaultMemory string = "8G"
View Source
const MultipassConfigDefaultUser string = "crabbox"
View Source
const MultipassConfigDefaultWorkRoot = defaultPOSIXWorkRoot

Keep the existing shared POSIX default, rather than introducing a separate literal.

View Source
const NamespaceConfigDefaultAutoStopIdleTimeout time.Duration = 1800 * time.Second
View Source
const NamespaceConfigDefaultImage string = "builtin:base"
View Source
const NamespaceConfigDefaultWorkRoot string = "/workspaces/crabbox"
View Source
const NamespaceInstanceConfigDefaultBare bool = true
View Source
const NamespaceInstanceConfigDefaultCLIPath string = "nsc"
View Source
const NamespaceInstanceConfigDefaultWorkRoot string = "/work/crabbox"
View Source
const NativeCheckpointJournalState = "journaled"

NativeCheckpointJournalState marks an image that a provider persisted through NativeCheckpointCreateRequest.Persist as its cleanup journal before mutating. Core treats such a record as unresolved until the provider finalizes it or `checkpoint delete` runs the provider's cleanup.

View Source
const NebiusConfigDefaultCLI string = "nebius"
View Source
const NebiusConfigDefaultDiskSizeGiB int = 50
View Source
const NebiusConfigDefaultDiskType string = "network_ssd"
View Source
const NebiusConfigDefaultImageFamily string = "ubuntu24.04-driverless"
View Source
const NebiusConfigDefaultPlatform string = "cpu-d3"
View Source
const NebiusConfigDefaultPreset string = "4vcpu-16gb"
View Source
const NebiusConfigDefaultPublicIP string = "dynamic"
View Source
const NebiusConfigDefaultRecoveryPolicy string = "fail"
View Source
const NebiusConfigDefaultUser string = "crabbox"
View Source
const NomadConfigDefaultAllocReadyTimeout time.Duration = 300 * time.Second
View Source
const NomadConfigDefaultCPU int = 1000
View Source
const NomadConfigDefaultDiskMB int = 1024
View Source
const NomadConfigDefaultDriver string = "docker"
View Source
const NomadConfigDefaultEvalTimeout time.Duration = 300 * time.Second
View Source
const NomadConfigDefaultExecTimeoutSecs int = 600
View Source
const NomadConfigDefaultImage string = "ubuntu:24.04"
View Source
const NomadConfigDefaultMemoryMB int = 2048
View Source
const NomadConfigDefaultTask string = "crabbox"
View Source
const NomadConfigDefaultTokenEnv string = "NOMAD_TOKEN"
View Source
const NomadConfigDefaultWorkdir string = "/workspace/crabbox"
View Source
const NvidiaBrevConfigDefaultCLI string = "brev"
View Source
const NvidiaBrevConfigDefaultGPUName string = "A100"
View Source
const NvidiaBrevConfigDefaultMode string = "vm"
View Source
const NvidiaBrevConfigDefaultReleaseAction string = "delete"
View Source
const NvidiaBrevConfigDefaultTarget string = "container"
View Source
const NvidiaBrevConfigDefaultWorkRoot string = "/tmp/crabbox"
View Source
const OVHConfigDefaultEndpoint string = "https://api.us.ovhcloud.com/1.0"
View Source
const OVHConfigDefaultFlavor string = "b3-8"
View Source
const OVHConfigDefaultImage string = "Ubuntu 24.04"
View Source
const OpenComputerConfigDefaultExecTimeoutSecs int = 3600
View Source
const OpenComputerConfigDefaultWorkdir string = "/workspace/crabbox"
View Source
const OpenSandboxConfigDefaultCPU string = "1"
View Source
const OpenSandboxConfigDefaultExecTimeoutSecs int = 600
View Source
const OpenSandboxConfigDefaultImage string = "ubuntu:24.04"
View Source
const OpenSandboxConfigDefaultMemory string = "2Gi"
View Source
const OpenSandboxConfigDefaultPlatformArch string = "amd64"
View Source
const OpenSandboxConfigDefaultPlatformOS string = "linux"
View Source
const OpenSandboxConfigDefaultWorkdir string = "/workspace/crabbox"
View Source
const OrgoConfigDefaultAPIBase string = "https://www.orgo.ai/api"
View Source
const OrgoConfigDefaultCPUs int = 1
View Source
const OrgoConfigDefaultDiskGB int = 8
View Source
const OrgoConfigDefaultRAMGB int = 4
View Source
const OrgoConfigDefaultResolution string = "1280x720x24"
View Source
const ParallelsGuestExecProbeInterval = 5 * time.Second
View Source
const PhalaConfigDefaultCLIPath string = "phala"
View Source
const PhalaConfigDefaultInstanceType string = "tdx.small"
View Source
const PhalaConfigDefaultWorkRoot string = "/var/volatile/crabbox"
View Source
const ProxmoxConfigDefaultFullClone bool = true
View Source
const ProxmoxConfigDefaultUser string = "crabbox"
View Source
const ProxmoxConfigDefaultWorkRoot string = defaultPOSIXWorkRoot
View Source
const RailwayConfigDefaultAPIURL string = "https://backboard.railway.com/graphql/v2"
View Source
const RunpodConfigDefaultAPIURL string = "https://api.runpod.io/v2"
View Source
const RunpodConfigDefaultCloudType string = "SECURE"
View Source
const RunpodConfigDefaultDiskGB int = 20
View Source
const RunpodConfigDefaultImage string = "runpod/pytorch:2.8.0-py3.11-cuda12.8.1-cudnn-devel-ubuntu22.04"
View Source
const RunpodConfigDefaultInstanceID string = "" /* 139-byte string literal not displayed */
View Source
const ScalewayConfigDefaultImage string = "ubuntu_noble"
View Source
const ScalewayConfigDefaultRegion string = "fr-par"
View Source
const ScalewayConfigDefaultType string = "DEV1-S"
View Source
const ScalewayConfigDefaultZone string = "fr-par-1"
View Source
const SealosDevboxConfigDefaultCPU string = "2"
View Source
const SealosDevboxConfigDefaultKubectl string = "kubectl"
View Source
const SealosDevboxConfigDefaultMemory string = "4Gi"
View Source
const SealosDevboxConfigDefaultNamespace string = "default"
View Source
const SealosDevboxConfigDefaultNetwork string = "SSHGate"
View Source
const SealosDevboxConfigDefaultSSHGatewayPort string = "2233"
View Source
const SealosDevboxConfigDefaultSSHUser string = "devbox"
View Source
const SealosDevboxConfigDefaultStorageLimit string = "20Gi"
View Source
const SealosDevboxConfigDefaultWorkRoot string = "/home/devbox/project"
View Source
const SemaphoreConfigFlagFallbackIdleTimeout string = "30m"
View Source
const SemaphoreConfigFlagFallbackMachine string = "f1-standard-2"
View Source
const SemaphoreConfigFlagFallbackOSImage string = "ubuntu2204"
View Source
const SmolvmConfigDefaultBaseURL string = "https://api.smolmachines.com"
View Source
const SmolvmConfigDefaultCPUs int = 2
View Source
const SmolvmConfigDefaultImage string = "alpine"
View Source
const SmolvmConfigDefaultMemoryMB int = 2048
View Source
const SmolvmConfigDefaultNetwork string = "open"
View Source
const SmolvmConfigDefaultWorkdir string = "/workspace"
View Source
const SpritesConfigDefaultAPIURL string = "https://api.sprites.dev"
View Source
const SpritesConfigDefaultWorkRoot string = "/home/sprite/crabbox"
View Source
const SuperserveConfigDefaultBaseURL string = "https://api.superserve.ai"
View Source
const SuperserveConfigDefaultExecTimeoutSecs int = 600
View Source
const SuperserveConfigDefaultTemplate string = "superserve/base"
View Source
const SuperserveConfigDefaultWorkdir string = "/workspace/crabbox"
View Source
const TartConfigDefaultCPUs int = 4
View Source
const TartConfigDefaultMemory int = 8192
View Source
const TartConfigDefaultUser string = "admin"
View Source
const TenkiConfigDefaultCLIPath string = "tenki"
View Source
const TenkiConfigDefaultWorkRoot string = "/home/tenki/crabbox"
View Source
const TensorlakeConfigDefaultAPIURL string = "https://api.tensorlake.ai"
View Source
const TensorlakeConfigDefaultCLIPath string = "tensorlake"
View Source
const TensorlakeConfigDefaultCPUs float64 = 1
View Source
const TensorlakeConfigDefaultDiskMB int = 10240
View Source
const TensorlakeConfigDefaultMemoryMB int = 1024
View Source
const TensorlakeConfigDefaultWorkdir string = "/workspace/crabbox"
View Source
const UnikraftCloudConfigDefaultMetro string = "fra"
View Source
const UpstashBoxConfigDefaultBaseURL string = "https://us-east-1.box.upstash.com"
View Source
const UpstashBoxConfigDefaultRuntime string = "node"
View Source
const UpstashBoxConfigDefaultSize string = "small"
View Source
const UpstashBoxConfigDefaultWorkdir string = "/workspace/home/crabbox"
View Source
const VastConfigDefaultAPIURL string = "https://console.vast.ai/api/v0"
View Source
const VastConfigDefaultDiskGB int = 20
View Source
const VastConfigDefaultImage string = "nvidia/cuda:12.8.1-cudnn-devel-ubuntu22.04"
View Source
const VastConfigDefaultInstanceType string = "ondemand"
View Source
const VastConfigDefaultOrder string = "dlperf_per_dphtotal desc"
View Source
const VastConfigDefaultReleaseAction string = "destroy"
View Source
const VastConfigDefaultRuntype string = "ssh_direct"
View Source
const VastConfigDefaultUser string = "root"
View Source
const VastConfigDefaultWorkRoot string = "/work/crabbox"
View Source
const VercelSandboxConfigDefaultExecTimeoutSecs int = 600
View Source
const VercelSandboxConfigDefaultNetworkPolicy string = "default"
View Source
const VercelSandboxConfigDefaultRuntime string = "node24"
View Source
const VercelSandboxConfigDefaultWorkdir string = "/vercel/sandbox/crabbox"
View Source
const WarpBuildConfigDefaultCLIPath string = "wb"
View Source
const WarpBuildConfigDefaultRunnerLabel string = "warp-macos-26-arm64-6x"
View Source
const WarpBuildConfigDefaultWorkdir string = "/Users/runner/crabbox"
View Source
const WindowsSandboxConfigDefaultAudioInput string = "Disable"
View Source
const WindowsSandboxConfigDefaultClipboard string = "Disable"
View Source
const WindowsSandboxConfigDefaultNetworking string = "Enable"
View Source
const WindowsSandboxConfigDefaultPrinterRedirection string = "Disable"
View Source
const WindowsSandboxConfigDefaultProtectedClient string = "Default"
View Source
const WindowsSandboxConfigDefaultVGPU string = "Disable"
View Source
const WindowsSandboxConfigDefaultVideoInput string = "Disable"
View Source
const WindowsSandboxConfigDefaultWorkdir string = "C:\\crabbox-work"
View Source
const XCPNgConfigDefaultUser string = "crabbox"
View Source
const XCPNgConfigDefaultWorkRoot string = defaultPOSIXWorkRoot

Variables

View Source
var (
	ErrTailnetPeerUnavailable           = errors.New("tailnet peer unavailable")
	ErrTailnetPeerValidationUnavailable = errors.New("tailnet peer validation unavailable")
)
View Source
var ErrBridgeNotImplemented = errors.New("pond bridge plane not implemented for this provider")

ErrBridgeNotImplemented is returned by helpers that need an explicit signal that the requested provider does not implement BridgeProvider yet.

View Source
var ErrCheckpointPending = errors.New("checkpoint source transition is pending; replay the same checkpoint operation")

ErrCheckpointPending is a bounded observation, never authorization to repeat a mutation whose response was lost.

View Source
var ErrNativeCheckpointAbsent = errors.New("exact native checkpoint resource is absent")
View Source
var ErrPondACLAutoBootstrapUnavailable = errors.New("pond acl: auto-bootstrap unavailable on this control plane")

ErrPondACLAutoBootstrapUnavailable is returned when the configured tailnet control plane (e.g. Headscale) does not expose a Tailscale-compatible policy REST API. Callers fall back to the manual snippet in docs/features/pond.md instead of failing the lease creation.

View Source
var ErrReleaseLeaseOwnershipChanged = errors.New("release lease ownership changed")
View Source
var ErrSSHOutputLimit = errors.New("SSH output exceeded limit")

ErrSSHOutputLimit means a successful command exceeded its stdout budget. Transport errors take precedence; callers must not treat those as missing data.

Functions

func AWSFixedAttemptAttestationLabels added in v0.41.1

func AWSFixedAttemptAttestationLabels(attempt AWSLaunchAttempt) map[string]string

func AWSInstanceTypeVCPUs added in v0.45.0

func AWSInstanceTypeVCPUs(serverType string) int

AWSInstanceTypeVCPUs estimates offline display values. Quota decisions use EC2 metadata.

func AWSLaunchCandidates added in v0.45.0

func AWSLaunchCandidates(cfg Config) []string

func AcquireAttempts added in v0.6.0

func AcquireAttempts(keep bool) int

func AllocateClaimLeaseSlug added in v0.16.0

func AllocateClaimLeaseSlug(leaseID, requested string) (string, error)

func AllocateClaimLeaseSlugContext added in v0.71.0

func AllocateClaimLeaseSlugContext(ctx context.Context, leaseID, requested string) (string, error)

func AllocateDirectLeaseSlug added in v0.6.0

func AllocateDirectLeaseSlug(leaseID, requested string, servers []Server) (string, error)

func AllocateDirectLeaseSlugContext added in v0.71.0

func AllocateDirectLeaseSlugContext(ctx context.Context, leaseID, requested string, servers []Server) (string, error)

func AppendDirectPondTailscaleTag added in v0.29.0

func AppendDirectPondTailscaleTag(cfg *Config)

func AppendExternalDesktopRoutingArgs added in v0.47.0

func AppendExternalDesktopRoutingArgs(args []string, cfg Config) []string

AppendExternalDesktopRoutingArgs excludes repository-provided credential selectors so a generated CLI flag cannot promote them to trusted input.

func AppleContainerImageExplicit added in v0.28.0

func AppleContainerImageExplicit(cfg Config) bool

func AppleVMCPUsExplicit added in v0.36.0

func AppleVMCPUsExplicit(cfg Config) bool

func AppleVMDiskExplicit added in v0.36.0

func AppleVMDiskExplicit(cfg Config) bool

func AppleVMImageExplicit added in v0.36.0

func AppleVMImageExplicit(cfg Config) bool

func AppleVMMemoryExplicit added in v0.36.0

func AppleVMMemoryExplicit(cfg Config) bool

func ApplyAppleVMImage added in v0.55.0

func ApplyAppleVMImage(cfg *Config, image string)

ApplyAppleVMImage records an already-accepted image and clears the prior checksum.

func ApplyAppleVMImageSHA256 added in v0.55.0

func ApplyAppleVMImageSHA256(cfg *Config, checksum string)

ApplyAppleVMImageSHA256 records an already-accepted checksum.

func ApplyConfigShowSSHDefaults added in v0.61.0

func ApplyConfigShowSSHDefaults(cfg *Config, user string)

ApplyConfigShowSSHDefaults projects connection defaults onto a local copy for offline display.

func ApplyExternalDesktopEnvironmentOverrides added in v0.39.0

func ApplyExternalDesktopEnvironmentOverrides(cfg *Config)

func ApplyFailureClassification added in v0.19.0

func ApplyFailureClassification(report *TimingReport, classification FailureClassification)

func ApplyLeaseDuration added in v0.17.0

func ApplyLeaseDuration(target *time.Duration, value string) error

func ApplyLinuxConnectionDefaults added in v0.61.0

func ApplyLinuxConnectionDefaults(cfg *Config, defaultSSHUser, defaultSSHPort string)

ApplyLinuxConnectionDefaults restores explicit connection settings before applying Linux defaults.

func ApplyLocalContainerImage added in v0.55.0

func ApplyLocalContainerImage(cfg *Config, value string)

ApplyLocalContainerImage applies an already-accepted image value and sets the existing marker via MarkLocalContainerImageExplicit.

func ApplyLocalContainerRuntime added in v0.55.0

func ApplyLocalContainerRuntime(cfg *Config, value string)

ApplyLocalContainerRuntime applies an already-accepted runtime value and sets the existing marker via MarkLocalContainerRuntimeExplicit.

func ApplyLocalContainerWorkRoot added in v0.55.0

func ApplyLocalContainerWorkRoot(cfg *Config, value string)

ApplyLocalContainerWorkRoot applies an already-accepted work-root value and sets the existing marker via MarkLocalContainerWorkRootExplicit.

func ApplyParallelsHostRefConfig added in v0.19.0

func ApplyParallelsHostRefConfig(cfg *Config, hostRef string)

func ApplyParallelsTemplateConfig added in v0.17.0

func ApplyParallelsTemplateConfig(cfg *Config, name string) error

func ApplyProviderConfigFlags added in v0.64.0

func ApplyProviderConfigFlags[Values interface {
	Apply(*ProviderConfig, *flag.FlagSet) (Applied, error)
}, ProviderConfig, Applied any](cfg *Config, fs *flag.FlagSet, values any, dst *ProviderConfig, providers ...string) (bool, error)

ApplyProviderConfigFlags uses the generated Apply method (and applyConfigFlags) for adapters that consume only InputAccepted. The constraint binds the values, destination and generated report types without a second provider registry. A false result means values had the wrong type; callers must skip postprocessing.

func ApplyTargetChildEnvironmentBoundary added in v0.39.0

func ApplyTargetChildEnvironmentBoundary(cfg Config, target *SSHTarget)

ApplyTargetChildEnvironmentBoundary prevents operator-owned desktop secrets from reaching target-facing local child processes such as ssh, ProxyCommand, rsync, scp, and viewer launchers.

func AsExitError

func AsExitError(err error, target *ExitError) bool

func AuthorizeCheckpointRelease added in v0.48.0

func AuthorizeCheckpointRelease(claim LeaseClaim, checkpointID string) error

AuthorizeCheckpointRelease prevents ordinary release/cleanup from cutting through a source-dependent snapshot. Only the recorded retirement may release.

func AzureServerHost added in v0.12.0

func AzureServerHost(server Server, network string) string

AzureServerHost returns the SSH host for an Azure server based on the configured network preference. When network is "private" and a private IP is available, it returns the private IP; otherwise it returns the public IP.

func AzureVMSizeCandidatesForConfig added in v0.22.0

func AzureVMSizeCandidatesForConfig(cfg Config) []string

func AzureVMSizeCandidatesForProfiles added in v0.45.0

func AzureVMSizeCandidatesForProfiles(cfg Config, profiles []ProviderClassProfile) []string

func AzureVMSizeVCPUCount added in v0.45.0

func AzureVMSizeVCPUCount(vmSize string) (int, bool)

func BindFixedClaim added in v0.65.0

func BindFixedClaim(claim *LeaseClaim, binding FixedResourceBinding, persist func() error) error

func Blank added in v0.6.0

func Blank(value, fallback string) string

func BootstrapAWSWindowsDesktop added in v0.6.0

func BootstrapAWSWindowsDesktop(ctx context.Context, cfg Config, target *SSHTarget, publicKey string, stderr io.Writer) error

func BootstrapManagedWindowsDesktop added in v0.12.0

func BootstrapManagedWindowsDesktop(ctx context.Context, cfg Config, target *SSHTarget, publicKey string, stderr io.Writer) error

func BootstrapWaitTimeout added in v0.6.0

func BootstrapWaitTimeout(cfg Config) time.Duration

func CacheVolumeStickyDiskSpecs added in v0.24.0

func CacheVolumeStickyDiskSpecs(volumes []CacheVolumeConfig) []string

func CanonicalProviderClasses added in v0.45.0

func CanonicalProviderClasses() []string

func CapacityMarketExplicit added in v0.48.0

func CapacityMarketExplicit(cfg Config) bool

func CaptureLocalFailureBundle added in v0.12.0

func CaptureLocalFailureBundle(nameSeed string, meta FailureCaptureMetadata) (string, int, error)

func CheckCheckpointReadinessLifetime added in v0.83.0

func CheckCheckpointReadinessLifetime(ctx context.Context, server Server) error

CheckCheckpointReadinessLifetime checks only recorded policy, without extending it. The provider's existing monitor still owns live identity/state checks.

func CheckFixedAttemptActive added in v0.65.0

func CheckFixedAttemptActive(claim LeaseClaim, identityKey string, cleanupKeys ...string) error

func CheckLeaseClaimRepositoryOwner added in v0.48.0

func CheckLeaseClaimRepositoryOwner(leaseID string, existing leaseClaim, repoRoot string, reclaim bool, legacyRoot ...string) error

CheckLeaseClaimRepositoryOwner checks the publication owner policy without changing the claim. Preparation without repository context should skip this check; publication retains its own empty-root rules.

func CheckSyncPreflight added in v0.6.0

func CheckSyncPreflight(manifest SyncManifest, cfg Config, force bool, stderr io.Writer) error

func ClaimLeaseForRepoProvider added in v0.6.0

func ClaimLeaseForRepoProvider(leaseID, slug, provider, repoRoot string, idleTimeout time.Duration, reclaim bool) error

func ClaimLeaseForRepoProviderPond added in v0.22.0

func ClaimLeaseForRepoProviderPond(leaseID, slug, provider, pond, repoRoot string, idleTimeout time.Duration, reclaim bool) error

ClaimLeaseForRepoProviderPond is the pond-aware variant exposed for delegated providers that need to persist the pond label in the local claim sidecar (delegated providers do not own a provider-side label store).

func ClaimLeaseForRepoProviderScope added in v0.17.0

func ClaimLeaseForRepoProviderScope(leaseID, slug, provider, providerScope, repoRoot string, idleTimeout time.Duration, reclaim bool) error

func ClaimLeaseForRepoProviderScopePond added in v0.22.0

func ClaimLeaseForRepoProviderScopePond(leaseID, slug, provider, providerScope, pond, repoRoot string, idleTimeout time.Duration, reclaim bool, legacyRoot ...string) error

ClaimLeaseForRepoProviderScopePond combines a provider scope (e.g. Docker context for local-container claim isolation) with the pond label so both features coexist in the same claim sidecar without one overwriting the other.

func ClaimLeaseForRepoProviderScopePondCacheVolumes added in v0.28.0

func ClaimLeaseForRepoProviderScopePondCacheVolumes(leaseID, slug, provider, providerScope, pond, repoRoot string, idleTimeout time.Duration, reclaim bool, cacheVolumes []string) error

func ClaimLeaseForRepoProviderScopePondEndpoint added in v0.28.0

func ClaimLeaseForRepoProviderScopePondEndpoint(leaseID, slug, provider, providerScope, pond, repoRoot string, idleTimeout time.Duration, reclaim bool, server Server, target SSHTarget, legacyRoot ...string) error

func ClaimLeaseForRepoProviderScopePondEndpointIfUnchanged added in v0.64.0

func ClaimLeaseForRepoProviderScopePondEndpointIfUnchanged(leaseID, slug, provider, providerScope, pond, repoRoot string, idleTimeout time.Duration, reclaim bool, server Server, target SSHTarget, expected leaseClaim, expectedExists bool) (leaseClaim, error)

ClaimLeaseForRepoProviderScopePondEndpointIfUnchanged publishes an endpoint and repository binding without replacing unrelated metadata such as mounts.

func ClaimLeaseForRepoProviderScopePondEndpointReservationIfUnchanged added in v0.40.0

func ClaimLeaseForRepoProviderScopePondEndpointReservationIfUnchanged(leaseID, slug, provider, providerScope, pond, repoRoot string, idleTimeout time.Duration, reclaim bool, server Server, target SSHTarget, reservationLabel string, reservationDuration time.Duration, expected leaseClaim, expectedExists bool) (leaseClaim, error)

func ClaimLeaseForRepoProviderScopePondIfUnchanged added in v0.29.0

func ClaimLeaseForRepoProviderScopePondIfUnchanged(leaseID, slug, provider, providerScope, pond, repoRoot string, idleTimeout time.Duration, reclaim bool, expected leaseClaim, expectedExists bool) (leaseClaim, error)

func ClaimLeaseForRepoProviderScopePondWithLabels added in v0.40.0

func ClaimLeaseForRepoProviderScopePondWithLabels(leaseID, slug, provider, providerScope, pond, repoRoot string, idleTimeout time.Duration, labels map[string]string) (leaseClaim, error)

func ClaimLeaseTargetForConfig added in v0.29.0

func ClaimLeaseTargetForConfig(leaseID, slug string, cfg Config, server Server, target SSHTarget, idleTimeout time.Duration) error

ClaimLeaseTargetForConfig records a provider resource that is not yet attached to a repository.

func ClaimLeaseTargetForConfigIfUnchanged added in v0.29.0

func ClaimLeaseTargetForConfigIfUnchanged(leaseID, slug string, cfg Config, server Server, target SSHTarget, idleTimeout time.Duration, expected leaseClaim, expectedExists bool) (leaseClaim, error)

func ClaimLeaseTargetForConfigScopeIfUnchanged added in v0.36.0

func ClaimLeaseTargetForConfigScopeIfUnchanged(leaseID, slug string, cfg Config, providerScope string, server Server, target SSHTarget, idleTimeout time.Duration, expected leaseClaim, expectedExists bool) (leaseClaim, error)

ClaimLeaseTargetForConfigScopeIfUnchanged lets a provider bind a claim to routing identity that is intentionally not part of the shared Config model.

func ClaimLeaseTargetForRepoConfig added in v0.28.0

func ClaimLeaseTargetForRepoConfig(leaseID, slug string, cfg Config, server Server, target SSHTarget, repoRoot string, idleTimeout time.Duration, reclaim bool) error

func ClaimLeaseTargetForRepoConfigIfUnchanged added in v0.29.0

func ClaimLeaseTargetForRepoConfigIfUnchanged(leaseID, slug string, cfg Config, server Server, target SSHTarget, repoRoot string, idleTimeout time.Duration, reclaim bool, expected leaseClaim, expectedExists bool) (leaseClaim, error)

func ClaimLeaseTargetForRepoConfigScopeIfUnchanged added in v0.37.0

func ClaimLeaseTargetForRepoConfigScopeIfUnchanged(leaseID, slug string, cfg Config, providerScope string, server Server, target SSHTarget, repoRoot string, idleTimeout time.Duration, reclaim bool, expected leaseClaim, expectedExists bool) (leaseClaim, error)

ClaimLeaseTargetForRepoConfigScopeIfUnchanged lets a provider bind a repository-scoped claim to routing identity outside the shared Config model.

func ClaimLeaseTargetForRepoConfigScopeIfUnchangedDurable added in v0.37.0

func ClaimLeaseTargetForRepoConfigScopeIfUnchangedDurable(leaseID, slug string, cfg Config, providerScope string, server Server, target SSHTarget, repoRoot string, idleTimeout time.Duration, reclaim bool, expected leaseClaim, expectedExists bool) (leaseClaim, error)

ClaimLeaseTargetForRepoConfigScopeIfUnchangedDurable performs the same guarded update and durably syncs newly created claim namespace ancestors.

func ClaimLeaseTargetForRepoConfigScopeIfUnchangedDurableAfter added in v0.40.0

func ClaimLeaseTargetForRepoConfigScopeIfUnchangedDurableAfter(leaseID, slug string, cfg Config, providerScope string, server Server, target SSHTarget, repoRoot string, idleTimeout time.Duration, reclaim bool, expected leaseClaim, expectedExists bool, action func() error) (leaseClaim, error)

ClaimLeaseTargetForRepoConfigScopeIfUnchangedDurableAfter holds the claim lock across action and the durable guarded claim publication.

func ClaimLeaseTargetForRepoConfigScopeReplacingEndpointIfUnchanged added in v0.37.0

func ClaimLeaseTargetForRepoConfigScopeReplacingEndpointIfUnchanged(leaseID, slug string, cfg Config, providerScope string, server Server, target SSHTarget, repoRoot string, idleTimeout time.Duration, reclaim bool, expected leaseClaim, expectedExists bool) (leaseClaim, error)

ClaimLeaseTargetForRepoConfigScopeReplacingEndpointIfUnchanged binds an exact resource while atomically replacing any previously published route.

func ClaimLeaseTargetForRepoConfigWithIdleTimeoutOverrideIfUnchanged added in v0.64.0

func ClaimLeaseTargetForRepoConfigWithIdleTimeoutOverrideIfUnchanged(leaseID, slug string, cfg Config, server Server, target SSHTarget, repoRoot string, idleTimeout time.Duration, idleTimeoutOverride *time.Duration, reclaim bool, expected leaseClaim, expectedExists bool) (leaseClaim, error)

ClaimLeaseTargetForRepoConfigWithIdleTimeoutOverrideIfUnchanged lets an adapter reconcile recorded policy in the same guarded transaction as repo admission.

func ClaimRepositoryMatches added in v0.82.0

func ClaimRepositoryMatches(stored, root string, legacyRoot ...string) bool

ClaimRepositoryMatches compares only literal strings. A directory caller may supply its released lookup result, but must never resolve the stored path.

func ClaimScopeURL added in v0.47.0

func ClaimScopeURL(value string) string

ClaimScopeURL preserves historical URL normalization used by stored claim keys.

func ClassFlagWasExplicit added in v0.49.0

func ClassFlagWasExplicit(cfg Config) bool

ClassFlagWasExplicit preserves CLI intent until checkpoint routing is final. Config-file and environment selections still use ClassWasExplicit.

func ClassWasExplicit added in v0.33.0

func ClassWasExplicit(cfg Config) bool

func CleanupLeaseClaimIfUnchangedAfter added in v0.37.0

func CleanupLeaseClaimIfUnchangedAfter(leaseID string, expected leaseClaim, expectedExists bool, action func() error) error

CleanupLeaseClaimIfUnchangedAfter holds the claim lock across action and cleans up only when claim presence and content still match the expectation.

func CleanupLeaseClaimIfUnchangedAfterContext added in v0.48.0

func CleanupLeaseClaimIfUnchangedAfterContext(ctx context.Context, leaseID string, expected LeaseClaim, expectedExists bool, action func() error) error

CleanupLeaseClaimIfUnchangedAfterContext also bounds waiting for the claim fence. The action must honor ctx itself and must not reenter claim operations.

func ClearLeaseClaimTailscale added in v0.29.0

func ClearLeaseClaimTailscale(leaseID string) error

func ClockNow added in v0.53.0

func ClockNow(clock Clock) time.Time

ClockNow returns the injected time, or the system time when clock is nil.

func CloneDefaultTransport added in v0.45.0

func CloneDefaultTransport() (*http.Transport, error)

CloneDefaultTransport copies http.DefaultTransport when it is a non-nil *http.Transport. Callers that need to mutate transport settings must not bypass a process-wide custom RoundTripper.

func CloudInitUserData added in v0.26.0

func CloudInitUserData(cfg Config, publicKey string) string

func CompileRunArtifactGlob added in v0.55.0

func CompileRunArtifactGlob(glob string) (*regexp.Regexp, error)

CompileRunArtifactGlob shares the collector's Bash matcher semantics, including newlines in filenames selected by a recursive glob.

func ConfigShowSecretState added in v0.57.0

func ConfigShowSecretState(value string) string

ConfigShowSecretState reports presence only, using the existing display owner.

func ConfigShowURL added in v0.57.0

func ConfigShowURL(value string) string

ConfigShowURL uses the existing configuration-display URL redactor.

func ControllerOwnsLeaseLifecycle added in v0.80.0

func ControllerOwnsLeaseLifecycle() bool

ControllerOwnsLeaseLifecycle identifies the legacy controller command path. Providers can refuse unsupported retained acquisition before external effects.

func CrabboxStateDir added in v0.28.0

func CrabboxStateDir() (string, error)

func CreateSyncArchive added in v0.26.1

func CreateSyncArchive(ctx context.Context, repo Repo, manifest SyncManifest, tempPattern string) (*os.File, error)

func DefaultContainerImageDigest added in v0.48.0

func DefaultContainerImageDigest(image string) (digest string, known bool)

DefaultContainerImageDigest identifies catalog-owned references. A known default with an invalid digest stays known so adapters cannot treat it as a trusted custom override and silently launch it.

func DelegatedRunArtifactFileScript added in v0.55.0

func DelegatedRunArtifactFileScript(requiredGlobs, artifactGlobs []string, maxFiles int, maxBytes int64) string

DelegatedRunArtifactFileScript finalizes an archive at the single absolute path passed as $1. The caller owns an existing, exclusive transfer directory and the finalized file's lifetime. Collection keeps its original working directory.

func DeleteClaimedEvidence added in v0.65.0

func DeleteClaimedEvidence[T any](ctx context.Context, kind FixedLeaseKind, claim LeaseClaim, attest func() (T, error), deleteExact func(T) error) error

DeleteClaimedEvidence adapts native attestation/deletion of an exact resource graph to the common claim fence and terminal publication.

func DeleteFixedResource added in v0.65.0

func DeleteFixedResource[T any](ctx context.Context, kind FixedLeaseKind, expected LeaseClaim, ops FixedLeaseOperations[T], clock ...func() time.Time) error

DeleteFixedResource holds the same claim CAS across attestation, native deletion, and terminal publication. Native DeleteExact must attest completion, including any child resources, before returning nil.

func DeleteOnReleaseExplicit added in v0.29.0

func DeleteOnReleaseExplicit(cfg Config, provider string) bool

func DialServeRelay added in v0.76.0

func DialServeRelay(ctx context.Context, coordinator *CoordinatorClient, sessionID, role, agentToken, machineID string, diagnosticOutput ...io.Writer) (net.Conn, error)

DialServeRelay authenticates with the ordinary coordinator credentials. The one-time agent token is a header, never a URL, process argument, or disk file.

func DigitalOceanImageWasExplicit added in v0.61.0

func DigitalOceanImageWasExplicit(cfg Config) bool

func DirectLeaseLabels added in v0.6.0

func DirectLeaseLabels(cfg Config, leaseID, slug, provider, market string, keep bool, now time.Time) map[string]string

func DoctorChecksStatus added in v0.56.0

func DoctorChecksStatus(checks []DoctorCheck) string

DoctorChecksStatus returns failed, warning, or ok without modifying checks or their details.

func DurationMinutesCeil added in v0.6.0

func DurationMinutesCeil(duration time.Duration) int

func EffectiveHostingerWorkRoot added in v0.29.0

func EffectiveHostingerWorkRoot(cfg Config) string

func EffectiveMaxTTL added in v0.76.0

func EffectiveMaxTTL(cfg Config) time.Duration

func EffectiveNvidiaBrevWorkRoot added in v0.31.0

func EffectiveNvidiaBrevWorkRoot(cfg Config) string

func EffectiveSealosDevboxWorkRoot added in v0.37.0

func EffectiveSealosDevboxWorkRoot(cfg Config) string

func EffectiveVastWorkRoot added in v0.35.0

func EffectiveVastWorkRoot(cfg Config) string

func EnsureAWSSSHCIDRs added in v0.6.0

func EnsureAWSSSHCIDRs(ctx context.Context, cfg *Config)

func EnsureCrabboxClaimNamespaceDurable added in v0.40.0

func EnsureCrabboxClaimNamespaceDurable() error

func EnsureTestboxKey added in v0.6.0

func EnsureTestboxKey(leaseID string) (string, string, error)

func EnsureTestboxKeyForConfig added in v0.6.0

func EnsureTestboxKeyForConfig(cfg Config, leaseID string) (string, string, error)

func EnsureTestboxKeyForConfigContext added in v0.81.0

func EnsureTestboxKeyForConfigContext(ctx context.Context, cfg Config, leaseID string) (string, string, error)

func ExistingLeaseKnownHostsPath added in v0.64.0

func ExistingLeaseKnownHostsPath(leaseID string) (string, error)

ExistingLeaseKnownHostsPath inspects the managed directory without creating or repairing it. The caller still validates the host-key file and its contents.

func ExitCodeForError added in v0.51.0

func ExitCodeForError(err error, fallback int) int

ExitCodeForError returns the first matched ExitError's nonzero code, or fallback. Nil errors and matched zero codes use fallback; signed codes are preserved.

func ExpandUserPath added in v0.17.0

func ExpandUserPath(path string) string

func ExplicitWindowsModeValue added in v0.64.0

func ExplicitWindowsModeValue(cfg Config) string

ExplicitWindowsModeValue returns the saved explicit mode, without inferring a value from the separate command-flag marker used by IsWindowsModeExplicit.

func ExtendedLeaseLabels added in v0.76.0

func ExtendedLeaseLabels(labels map[string]string, cfg Config, req LeaseExtendRequest, now time.Time) (map[string]string, error)

func ExternalDesktopChildEnvironmentDenylist added in v0.39.0

func ExternalDesktopChildEnvironmentDenylist(cfg Config) []string

ExternalDesktopChildEnvironmentDenylist returns retained historical names plus this External config's current effective name. The returned slice is a copy and is safe for callers to extend without mutating Config.

func ExternalRoutingArchitecture added in v0.39.0

func ExternalRoutingArchitecture(cfg ExternalConfig) string

func ExternalRoutingDigest added in v0.39.0

func ExternalRoutingDigest(cfg ExternalConfig) string

ExternalRoutingDigest returns the exact loaded routing-file generation. Generated children use it instead of placing routing contents on argv.

func ExternalRoutingGeneration added in v0.39.0

func ExternalRoutingGeneration(cfg ExternalConfig) string

ExternalRoutingGeneration returns the unique generation persisted for this route. Unlike a semantic configuration hash, it changes on every rewrite.

func ExternalRoutingLoaded added in v0.30.0

func ExternalRoutingLoaded(cfg ExternalConfig) bool

func ExternalRoutingPath added in v0.26.1

func ExternalRoutingPath(leaseID string) (string, error)

func ExternalRoutingTarget added in v0.39.0

func ExternalRoutingTarget(cfg ExternalConfig) (string, string)

func FixedAWSCreateIntentFingerprint added in v0.41.1

func FixedAWSCreateIntentFingerprint(cfg Config, req FixedAWSCreateIntentRequest) (string, error)

func FixedCreateTime added in v0.65.0

func FixedCreateTime(claim LeaseClaim) time.Time

func FixedIdentityLabels added in v0.65.0

func FixedIdentityLabels(provider, leaseID, slug, fingerprint string, native map[string]string) map[string]string

func FixedIntentFingerprint added in v0.65.0

func FixedIntentFingerprint(domain string, intent any) (string, error)

FixedIntentFingerprint hashes a provider's canonical schema without changing its JSON encoding or domain prefix, both of which are persisted contracts.

func FixedMachine0CreateIntentFingerprint added in v0.46.0

func FixedMachine0CreateIntentFingerprint(cfg Config, req FixedMachine0CreateIntentRequest) (string, error)

func FixedPristineRecord added in v0.65.0

func FixedPristineRecord(claim LeaseClaim, kind FixedLeaseKind, scopePrefix string) bool

FixedPristineRecord recognizes formats that never erased submitted attempts. Other formats must use fresh-invocation admission instead of this predicate.

func FixedSHA256 added in v0.65.0

func FixedSHA256(value string) bool

func FixedUncertainCustody added in v0.65.0

func FixedUncertainCustody(leaseID string) error

func FlagWasSet added in v0.6.0

func FlagWasSet(fs *flag.FlagSet, name string) bool

func ForgetAbsentLeaseClaim added in v0.64.0

func ForgetAbsentLeaseClaim(ctx context.Context, verifier AbsenceVerifier, claim LeaseClaim) (bool, error)

ForgetAbsentLeaseClaim owns only local claim removal, never release, keys, registrations, or terminal receipts. The same fence covers proof and removal.

func FormatFailureClassificationFields added in v0.19.0

func FormatFailureClassificationFields(classification FailureClassification) string

func GCPMachineTypeCandidatesForConfig added in v0.45.0

func GCPMachineTypeCandidatesForConfig(cfg Config) []string

func GitCheckoutHasHiddenOmissions added in v0.38.4

func GitCheckoutHasHiddenOmissions(root string) (bool, error)

GitCheckoutHasHiddenOmissions reports whether sparse rules or skip-worktree index state leave tracked paths absent. Delegated sync tools must not treat them as deletions from a complete checkout.

func GitHubCodespacesRetentionExplicit added in v0.40.0

func GitHubCodespacesRetentionExplicit(cfg Config) bool

func GnomeDesktopThemeScript added in v0.49.1

func GnomeDesktopThemeScript() string

func GzipCloudInit added in v0.76.0

func GzipCloudInit(cloudConfig string) ([]byte, error)

GzipCloudInit preserves cloud-init's binary gzip transport, without a timestamp. Callers apply their provider's size limit and outer encoding after compression.

func HandleDelegatedRunFailure added in v0.12.0

func HandleDelegatedRunFailure(w io.Writer, req RunRequest, provider, leaseID, slug string, idleTimeout, ttl time.Duration, acquired bool, shouldStop *bool)

func HasAzureCleanupBinding added in v0.37.0

func HasAzureCleanupBinding(labels map[string]string) bool

HasAzureCleanupBinding reports whether a local claim contains a complete, versioned companion-resource snapshot captured before Azure VM deletion.

func HasDelegatedRunDownloadRequests added in v0.31.0

func HasDelegatedRunDownloadRequests(req RunRequest) bool

func HetznerServerTypeCandidatesForConfig added in v0.45.0

func HetznerServerTypeCandidatesForConfig(cfg Config) []string

func IdleForString added in v0.6.0

func IdleForString(value string, now time.Time) string

func ImageRequirementsIntent added in v0.41.1

func ImageRequirementsIntent(cfg Config) (string, error)

func IncusServerTypeForConfig added in v0.28.0

func IncusServerTypeForConfig(cfg Config) string

func InspectFixedCandidate added in v0.65.0

func InspectFixedCandidate[T any](ctx context.Context, kind FixedLeaseKind, claim LeaseClaim, inventory func(context.Context) ([]T, error), match func(T) bool) (T, bool, error)

InspectFixedCandidate applies the same read-only journal and cardinality checks to native inventory lookups used outside acquisition.

func IsAWSCleanupKeyOwnershipError added in v0.36.0

func IsAWSCleanupKeyOwnershipError(err error) bool

IsAWSCleanupKeyOwnershipError reports a cleanup-time key ownership mismatch that must skip the instance instead of deleting either resource.

func IsArchitectureExplicit added in v0.39.0

func IsArchitectureExplicit(cfg Config) bool

func IsAzureCleanupSkipError added in v0.36.0

func IsAzureCleanupSkipError(err error) bool

IsAzureCleanupSkipError reports a cleanup-time ownership or association mismatch that must be reported and skipped rather than treated as fatal.

func IsBootstrapWaitError added in v0.6.0

func IsBootstrapWaitError(err error) bool

func IsBoxdWorkRootExplicit added in v0.47.0

func IsBoxdWorkRootExplicit(cfg *Config) bool

func IsCanonicalGCPServer added in v0.32.0

func IsCanonicalGCPServer(server Server) bool

func IsCanonicalLeaseID added in v0.6.0

func IsCanonicalLeaseID(value string) bool

func IsCanonicalProviderClass added in v0.45.0

func IsCanonicalProviderClass(class string) bool

func IsCrabboxProxmoxLease added in v0.12.0

func IsCrabboxProxmoxLease(server Server) bool

func IsDefaultWorkRoot added in v0.16.0

func IsDefaultWorkRoot(value string) bool

func IsExternalDesktopPasswordEnvExplicit added in v0.39.0

func IsExternalDesktopPasswordEnvExplicit(cfg *Config) bool

IsExternalDesktopPasswordEnvExplicit is the password-reference counterpart to IsExternalDesktopUsernameExplicit.

func IsExternalDesktopTargetExplicit added in v0.39.0

func IsExternalDesktopTargetExplicit(cfg *Config) bool

IsExternalDesktopTargetExplicit reports command/programmatic routing choices. Environment and file values may authorize a credential tuple, but do not replace a lease's persisted routing target.

func IsExternalDesktopUsernameExplicit added in v0.39.0

func IsExternalDesktopUsernameExplicit(cfg *Config) bool

IsExternalDesktopUsernameExplicit reports whether an operator override must be reproduced even when it explicitly clears a persisted routing value.

func IsExternalDesktopWindowsModeExplicit added in v0.39.0

func IsExternalDesktopWindowsModeExplicit(cfg *Config) bool

IsExternalDesktopWindowsModeExplicit is the Windows-mode counterpart to IsExternalDesktopTargetExplicit.

func IsGCPNotFound added in v0.11.0

func IsGCPNotFound(err error) bool

func IsHetznerNotFound added in v0.44.0

func IsHetznerNotFound(err error) bool

func IsHostingerUserExplicit added in v0.29.0

func IsHostingerUserExplicit(cfg *Config) bool

func IsHostingerWorkRootExplicit added in v0.29.0

func IsHostingerWorkRootExplicit(cfg *Config) bool

func IsNvidiaBrevTargetExplicit added in v0.66.0

func IsNvidiaBrevTargetExplicit(cfg *Config) bool

func IsNvidiaBrevWorkRootExplicit added in v0.31.0

func IsNvidiaBrevWorkRootExplicit(cfg *Config) bool

func IsPlainLocalCommandExit added in v0.51.0

func IsPlainLocalCommandExit(result LocalCommandResult, err error) bool

IsPlainLocalCommandExit recognizes an ordinary unsuccessful local process completion, not a wrapped/joined error or proof of a remote command outcome.

func IsProxmoxDeleteRequestError added in v0.30.0

func IsProxmoxDeleteRequestError(err error) bool

func IsProxmoxDeleteTaskError added in v0.30.0

func IsProxmoxDeleteTaskError(err error) bool

func IsProxmoxNotFound added in v0.12.0

func IsProxmoxNotFound(err error) bool

func IsRunExecutionMetadataEnvName added in v0.51.0

func IsRunExecutionMetadataEnvName(name string) bool

IsRunExecutionMetadataEnvName reports whether core owns this exact environment name. Providers without command-env support may omit this local run metadata.

func IsSSHKeyExplicit added in v0.29.0

func IsSSHKeyExplicit(cfg *Config) bool

func IsSSHPortExplicit added in v0.29.0

func IsSSHPortExplicit(cfg *Config) bool

func IsSSHUserExplicit added in v0.29.0

func IsSSHUserExplicit(cfg *Config) bool

func IsSealosDevboxWorkRootExplicit added in v0.37.0

func IsSealosDevboxWorkRootExplicit(cfg *Config) bool

func IsShellEnvAssignment added in v0.6.0

func IsShellEnvAssignment(word string) bool

IsShellEnvAssignment classifies the name before the first '='. Assignment values are shell data and do not participate in identifier validation.

func IsTargetExplicit added in v0.26.1

func IsTargetExplicit(cfg *Config) bool

func IsTartCPUsExplicit added in v0.26.1

func IsTartCPUsExplicit(cfg *Config) bool

func IsTartDiskExplicit added in v0.26.1

func IsTartDiskExplicit(cfg *Config) bool

func IsTartMemoryExplicit added in v0.26.1

func IsTartMemoryExplicit(cfg *Config) bool

func IsVastWorkRootExplicit added in v0.35.0

func IsVastWorkRootExplicit(cfg *Config) bool

func IsWSLSFTPUnavailable added in v0.48.0

func IsWSLSFTPUnavailable(err error) bool

func IsWindowsModeExplicit added in v0.48.0

func IsWindowsModeExplicit(cfg Config) bool

func IsWorkRootExplicit added in v0.29.0

func IsWorkRootExplicit(cfg *Config) bool

func IsloDiskGBExplicit added in v0.33.0

func IsloDiskGBExplicit(cfg Config) bool

func IsloImageExplicit added in v0.33.0

func IsloImageExplicit(cfg Config) bool

func IsloMemoryMBExplicit added in v0.33.0

func IsloMemoryMBExplicit(cfg Config) bool

func IsloVCPUsExplicit added in v0.33.0

func IsloVCPUsExplicit(cfg Config) bool

func JSONHasDuplicateKeys added in v0.48.0

func JSONHasDuplicateKeys(dec *json.Decoder) (bool, error)

JSONHasDuplicateKeys scans one JSON value recursively. Callers remain responsible for rejecting trailing data and enforcing input size limits.

func LambdaImageFamilyWasExplicit added in v0.61.0

func LambdaImageFamilyWasExplicit(cfg Config) bool

func LambdaImageWasExplicit added in v0.61.0

func LambdaImageWasExplicit(cfg Config) bool

func LeaseClaimMatchesIdentifier added in v0.29.0

func LeaseClaimMatchesIdentifier(claim leaseClaim, identifier string) bool

func LeaseLabelDuration added in v0.64.0

func LeaseLabelDuration(value string) (time.Duration, bool)

func LeaseLabelDurationDisplay added in v0.6.0

func LeaseLabelDurationDisplay(secondsValue, fallbackValue string) string

func LeaseLabelTime added in v0.6.0

func LeaseLabelTime(t time.Time) string

func LeaseLabelTimeDisplay added in v0.6.0

func LeaseLabelTimeDisplay(value string) string

func LeaseProviderName added in v0.6.0

func LeaseProviderName(leaseID, slug string) string

func LinodeImageWasExplicit added in v0.61.0

func LinodeImageWasExplicit(cfg Config) bool

func LinodeTypeWasExplicit added in v0.71.0

func LinodeTypeWasExplicit(cfg Config) bool

func LinuxAptQuiesce added in v0.82.0

func LinuxAptQuiesce() string

LinuxAptQuiesce is an early boot guard for provisioned Linux guests only. Provider-owned cloud-init renderers must not apply it to operator-owned hosts.

func LinuxAptWait added in v0.82.0

func LinuxAptWait() string

LinuxAptWait lets active scheduled updates finish before explicit installs. Call after bootcmd, where waiting on systemd boot ordering is safe.

func ListLeaseClaims added in v0.17.0

func ListLeaseClaims() ([]leaseClaim, error)

func ListLeaseClaimsContext added in v0.71.0

func ListLeaseClaimsContext(ctx context.Context) ([]leaseClaim, error)

func ListLeaseClaimsWithPrefix added in v0.29.0

func ListLeaseClaimsWithPrefix(prefix string) ([]leaseClaim, error)

func ListLeaseClaimsWithPrefixContext added in v0.71.0

func ListLeaseClaimsWithPrefixContext(ctx context.Context, prefix string) ([]leaseClaim, error)

func LiteralPOSIXPath added in v0.64.0

func LiteralPOSIXPath(value string) string

LiteralPOSIXPath keeps CDPATH, OLDPWD, and option parsing out of path operands.

func LocalContainerRuntimeExplicit added in v0.26.1

func LocalContainerRuntimeExplicit(cfg Config) bool

func LocalContainerWorkRootExplicit added in v0.34.0

func LocalContainerWorkRootExplicit(cfg Config) bool

func LocalProcessBootIdentity added in v0.31.0

func LocalProcessBootIdentity() (string, error)

func LocalProcessBootIdentityRequired added in v0.31.0

func LocalProcessBootIdentityRequired() bool

func LocalProcessCommand added in v0.40.0

func LocalProcessCommand(pid int) (string, bool)

func LocalProcessStartIdentity added in v0.31.0

func LocalProcessStartIdentity(pid int) (string, error)

Retain the start-identity contract used by persisted daemon records; exit state is a separate fact and must not change their stored representation.

func LocalRunArtifactPath added in v0.17.1

func LocalRunArtifactPath(repoRoot, runID, leaseID, name string) string

func LooksLikeInlineSSHPublicKey added in v0.41.1

func LooksLikeInlineSSHPublicKey(value string) bool

func LookupExternalDesktopPassword added in v0.39.0

func LookupExternalDesktopPassword(cfg Config, name string) (string, bool)

LookupExternalDesktopPassword keeps the daemon-delivered credential inside the exact Config value that owns it; it never enters env, argv, routing, or provider-scope material.

func LookupFixedResource added in v0.65.0

func LookupFixedResource[T any](ctx context.Context, kind FixedLeaseKind, claim LeaseClaim, lookup func(context.Context, LeaseClaim) (T, error)) (T, error)

LookupFixedResource runs a single native lookup through the read-only engine.

func ManagedWindowsDesktopBootstrapPowerShell added in v0.81.0

func ManagedWindowsDesktopBootstrapPowerShell(user string) string

func ManagedWindowsDesktopTerminalBootstrapPowerShell added in v0.81.0

func ManagedWindowsDesktopTerminalBootstrapPowerShell() string

func MarkAppleContainerImageExplicit added in v0.25.0

func MarkAppleContainerImageExplicit(cfg *Config)

func MarkAppleVMCPUsExplicit added in v0.36.0

func MarkAppleVMCPUsExplicit(cfg *Config)

func MarkAppleVMDiskExplicit added in v0.36.0

func MarkAppleVMDiskExplicit(cfg *Config)

func MarkAppleVMImageExplicit added in v0.36.0

func MarkAppleVMImageExplicit(cfg *Config)

func MarkAppleVMImageSHA256Explicit added in v0.36.0

func MarkAppleVMImageSHA256Explicit(cfg *Config)

func MarkAppleVMMemoryExplicit added in v0.36.0

func MarkAppleVMMemoryExplicit(cfg *Config)

func MarkArchitectureExplicit added in v0.44.0

func MarkArchitectureExplicit(cfg *Config)

func MarkBoxdWorkRootExplicit added in v0.47.0

func MarkBoxdWorkRootExplicit(cfg *Config)

func MarkCapacityMarketExplicit added in v0.48.0

func MarkCapacityMarketExplicit(cfg *Config)

func MarkClassExplicit added in v0.33.0

func MarkClassExplicit(cfg *Config)

func MarkDeleteOnReleaseExplicit added in v0.29.0

func MarkDeleteOnReleaseExplicit(cfg *Config, provider string)

func MarkExternalDesktopPasswordEnvExplicit added in v0.39.0

func MarkExternalDesktopPasswordEnvExplicit(cfg *Config)

MarkExternalDesktopPasswordEnvExplicit records an operator-selected desktop secret reference so repository config cannot redirect inherited credentials.

func MarkExternalDesktopUsernameExplicit added in v0.39.0

func MarkExternalDesktopUsernameExplicit(cfg *Config)

MarkExternalDesktopUsernameExplicit records an operator-selected desktop account so repository config cannot retarget an approved password reference.

func MarkExternalProviderOutputFlagExplicit added in v0.37.0

func MarkExternalProviderOutputFlagExplicit(cfg *Config)

MarkExternalProviderOutputFlagExplicit records that an operator changed the adapter contract through a trusted flag.

func MarkExternalRoutingCredentialSources added in v0.37.0

func MarkExternalRoutingCredentialSources(cfg *Config)

MarkExternalRoutingCredentialSources applies the routing file's trust source to connection values after the External provider loads that private state. An unknown source is reserved for claim-bound automatic routing.

func MarkExternalRoutingFileExplicit added in v0.37.0

func MarkExternalRoutingFileExplicit(cfg *Config)

MarkExternalRoutingFileExplicit records an operator-selected routing path before the External provider loads it during flag application.

func MarkExternalRoutingTargetRestored added in v0.39.0

func MarkExternalRoutingTargetRestored(cfg *Config, targetRestored, windowsModeRestored bool)

MarkExternalRoutingTargetRestored clears stale ambient authorization when a routing file, rather than an explicit target flag, supplied the effective target tuple.

func MarkFlagDeprecated added in v0.44.0

func MarkFlagDeprecated(fs *flag.FlagSet, name, replacement string)

MarkFlagDeprecated attaches deprecation metadata to a flag's real registered value. Missing flags or replacements panic during registration so provider authoring drift cannot silently reach discovery output.

func MarkGitHubCodespacesRetentionExplicit added in v0.40.0

func MarkGitHubCodespacesRetentionExplicit(cfg *Config)

func MarkHostingerUserExplicit added in v0.29.0

func MarkHostingerUserExplicit(cfg *Config)

func MarkHostingerWorkRootExplicit added in v0.29.0

func MarkHostingerWorkRootExplicit(cfg *Config)

func MarkIsloConfigExplicit added in v0.62.0

func MarkIsloConfigExplicit(cfg *Config, applied IsloConfigApplied)

MarkIsloConfigExplicit preserves explicit create inputs, including accepted defaults.

func MarkIsloDiskGBExplicit added in v0.33.0

func MarkIsloDiskGBExplicit(cfg *Config)

func MarkIsloImageExplicit added in v0.21.0

func MarkIsloImageExplicit(cfg *Config)

func MarkIsloMemoryMBExplicit added in v0.33.0

func MarkIsloMemoryMBExplicit(cfg *Config)

func MarkIsloVCPUsExplicit added in v0.33.0

func MarkIsloVCPUsExplicit(cfg *Config)

func MarkLocalContainerImageExplicit added in v0.21.0

func MarkLocalContainerImageExplicit(cfg *Config)

func MarkLocalContainerRuntimeExplicit added in v0.26.1

func MarkLocalContainerRuntimeExplicit(cfg *Config)

func MarkLocalContainerWorkRootExplicit added in v0.34.0

func MarkLocalContainerWorkRootExplicit(cfg *Config)

func MarkMultipassImageExplicit added in v0.26.0

func MarkMultipassImageExplicit(cfg *Config)

func MarkNvidiaBrevTargetExplicit added in v0.66.0

func MarkNvidiaBrevTargetExplicit(cfg *Config)

func MarkNvidiaBrevWorkRootExplicit added in v0.31.0

func MarkNvidiaBrevWorkRootExplicit(cfg *Config)

func MarkPhalaInstanceTypeExplicit added in v0.33.0

func MarkPhalaInstanceTypeExplicit(cfg *Config)

func MarkSSHKeyExplicit added in v0.29.0

func MarkSSHKeyExplicit(cfg *Config)

func MarkSSHPortExplicit added in v0.29.0

func MarkSSHPortExplicit(cfg *Config)

func MarkSSHUserExplicit added in v0.29.0

func MarkSSHUserExplicit(cfg *Config)

func MarkScalewayConfigApplied added in v0.55.0

func MarkScalewayConfigApplied(cfg *Config, applied ScalewayConfigApplied)

MarkScalewayConfigApplied records accepted source events without inferring explicitness from values or changing SDK profile precedence.

func MarkSealosDevboxWorkRootExplicit added in v0.37.0

func MarkSealosDevboxWorkRootExplicit(cfg *Config)

func MarkTargetExplicit added in v0.26.1

func MarkTargetExplicit(cfg *Config)

func MarkTartCPUsExplicit added in v0.26.1

func MarkTartCPUsExplicit(cfg *Config)

func MarkTartDiskExplicit added in v0.26.1

func MarkTartDiskExplicit(cfg *Config)

func MarkTartImageExplicit added in v0.26.1

func MarkTartImageExplicit(cfg *Config)

func MarkTartMemoryExplicit added in v0.26.1

func MarkTartMemoryExplicit(cfg *Config)

func MarkTencentCloudConfigApplied added in v0.55.0

func MarkTencentCloudConfigApplied(cfg *Config, applied TencentCloudConfigApplied)

MarkTencentCloudConfigApplied records accepted source events without inferring explicitness from values or changing class precedence.

func MarkVastWorkRootExplicit added in v0.35.0

func MarkVastWorkRootExplicit(cfg *Config)

func MarkWorkRootExplicit added in v0.29.0

func MarkWorkRootExplicit(cfg *Config)

func MutateFixedRetention added in v0.80.0

func MutateFixedRetention(ctx context.Context, kind FixedLeaseKind, expected LeaseClaim, req RetentionLifecycleRequest, action string, now func() time.Time, observe func(context.Context, LeaseClaim) (string, error), submit func(context.Context, LeaseClaim, string) error) error

MutateFixedRetention extends the fixed claim transaction owner. Observations attest the exact resource and normalize its state. Reassertions converge the same durable operation on a stable opposite state, never minting a window.

func NewAWSCleanupKeyOwnershipError added in v0.36.0

func NewAWSCleanupKeyOwnershipError(message string) error

func NewCappedFailureBundleStream added in v0.12.0

func NewCappedFailureBundleStream(file *os.File) io.WriteCloser

func NewLeaseID added in v0.6.0

func NewLeaseID() string

func NewLeaseSlug added in v0.6.0

func NewLeaseSlug(leaseID string) string

func NoProviderFlags added in v0.6.0

func NoProviderFlags() any

func NormalizeArchitecture added in v0.39.0

func NormalizeArchitecture(value string) (string, error)

func NormalizeAzureBackend added in v0.22.0

func NormalizeAzureBackend(backend string) (string, error)

func NormalizeAzureDiskSKU added in v0.34.0

func NormalizeAzureDiskSKU(value string) (string, error)

func NormalizeAzureOSDiskMode added in v0.15.0

func NormalizeAzureOSDiskMode(value string) (string, error)

func NormalizeAzureSnapshotSKU added in v0.34.0

func NormalizeAzureSnapshotSKU(value string) (string, error)

func NormalizeCheckpointStrategy added in v0.19.0

func NormalizeCheckpointStrategy(strategy string) string

func NormalizeLeaseSlug added in v0.6.0

func NormalizeLeaseSlug(value string) string

func NormalizeList added in v0.61.0

func NormalizeList(values []string) []string

NormalizeList trims entries and drops blanks, retaining order and duplicates. It returns fresh storage and a nonnil empty slice without changing its input.

func NormalizeManagedStateTransferRoot added in v0.58.0

func NormalizeManagedStateTransferRoot(root string) (string, error)

NormalizeManagedStateTransferRoot resolves metadata only, including an absent suffix. Native owners use it to retain the actual scope of a created mount.

func NormalizePondName added in v0.47.0

func NormalizePondName(value string) string

NormalizePondName lowercases the requested name and replaces every character outside `[a-z0-9-]` with `-`, collapsing runs and trimming leading/trailing dashes. The shape matches NormalizeLeaseSlug; pond names participate in the same DNS-ish identifier space so peer hostnames stay regular.

func NormalizeTargetConfig added in v0.19.0

func NormalizeTargetConfig(cfg *Config)

func NormalizeTargetOS added in v0.64.0

func NormalizeTargetOS(value string) string

NormalizeTargetOS canonicalizes a target name without changing configuration.

func NormalizeVastInstanceType added in v0.35.0

func NormalizeVastInstanceType(value string) string

func NormalizeWindowsMode added in v0.64.0

func NormalizeWindowsMode(value string) string

NormalizeWindowsMode canonicalizes a mode without changing configuration.

func NormalizedDesktopEnv added in v0.19.0

func NormalizedDesktopEnv(value string) string

func OSImageDefaultAppleVMImage added in v0.36.0

func OSImageDefaultAppleVMImage(value string) (string, error)

func OSImageDefaultAppleVMSHA256 added in v0.36.0

func OSImageDefaultAppleVMSHA256(value string) (string, error)

func OSImageWasExplicit added in v0.29.0

func OSImageWasExplicit(cfg Config) bool

func OVHImageWasExplicit added in v0.31.0

func OVHImageWasExplicit(cfg Config) bool

func OptionalStoredTestboxKeyPath added in v0.58.0

func OptionalStoredTestboxKeyPath(leaseID string) (string, error)

OptionalStoredTestboxKeyPath preserves legacy optional-key fallback when no root is selected. Explicit-root admission errors must never become fallback.

func ParallelsGuestToolsUnavailable added in v0.63.0

func ParallelsGuestToolsUnavailable(err error) bool

func ParallelsHostRefForConfig added in v0.64.0

func ParallelsHostRefForConfig(cfg Config) string

ParallelsHostRefForConfig reports the resolved Parallels host identity used as the provider scope of a lease: the selected fleet host, an explicit remote host, or the local Mac.

func ParallelsLabelsFromName added in v0.17.0

func ParallelsLabelsFromName(name string) map[string]string

func ParallelsLeaseVMName added in v0.64.0

func ParallelsLeaseVMName(leaseID, slug string) string

ParallelsLeaseVMName renders the host-unique VM name that carries a lease identity. The name is the Parallels idempotency key: prlctl refuses a second VM with the same name on a host, so a provider adapter can bind a fixed lease ID to a create attempt without pre-allocating any other resource identifier.

func ParallelsStartupContext added in v0.69.0

func ParallelsStartupContext(ctx context.Context, cfg Config) (context.Context, context.CancelFunc)

ParallelsStartupContext shares one startup budget across IP discovery and preparation.

func ParseServerID added in v0.6.0

func ParseServerID(s string) (int64, bool)

func PersistExternalRouting added in v0.26.1

func PersistExternalRouting(leaseID string, cfg ExternalConfig) (string, error)

func PersistValidatedExternalRouting added in v0.37.0

func PersistValidatedExternalRouting(leaseID string, cfg ExternalConfig) (string, error)

PersistValidatedExternalRouting records that the credential destination was validated before the routing state became authoritative for a lease.

func PhalaInstanceTypeOverridesClass added in v0.33.0

func PhalaInstanceTypeOverridesClass(cfg Config) bool

func PhalaInstanceTypeWasExplicit added in v0.33.0

func PhalaInstanceTypeWasExplicit(cfg Config) bool

func PowerShellQuote added in v0.79.2

func PowerShellQuote(s string) string

PowerShellQuote returns s as one PowerShell verbatim string literal.

func PowershellCommand added in v0.17.0

func PowershellCommand(script string) string

func PreflightLeaseSSHStorage added in v0.58.0

func PreflightLeaseSSHStorage() error

PreflightLeaseSSHStorage admits managed connection storage before a provider can create a resource whose per-lease identity is not known yet.

func PrepareFixedSSHKey added in v0.65.0

func PrepareFixedSSHKey(cfg *Config, leaseID string, policy FixedKeyPolicy) (string, error)

func PrepareNativeImageSource added in v0.44.0

func PrepareNativeImageSource(ctx context.Context, target SSHTarget) error

func PrepareStoredTestboxKeyPath added in v0.58.0

func PrepareStoredTestboxKeyPath(leaseID string) (string, error)

PrepareStoredTestboxKeyPath leaves imported key contents and publication policy to the provider, but admits the canonical local destination first.

func PreserveExternalDesktopChildEnvironmentBoundary added in v0.39.0

func PreserveExternalDesktopChildEnvironmentBoundary(cfg *Config)

PreserveExternalDesktopChildEnvironmentBoundary records a valid, trusted or programmatic desktop password environment name before an override replaces it. Repository-selected and reserved names cannot influence a later child's environment. The retained names are intentionally monotonic for the lifetime of this Config value: an old operator secret must not become visible merely because a routed lease or explicit override selects a new name.

func PrimaryRunClassificationCause added in v0.52.0

func PrimaryRunClassificationCause(err error) error

PrimaryRunClassificationCause finds an explicit classification cause only on the primary error path. Ordinary errors retain their full-graph classification; joined secondary failures cannot supply an override through this lookup.

func PrintEnvForwardingSummary added in v0.12.0

func PrintEnvForwardingSummary(w io.Writer, provider, behavior string, allow []string, env map[string]string)

func ProbeSSHReady added in v0.26.1

func ProbeSSHReady(ctx context.Context, target *SSHTarget, timeout time.Duration) bool

func ProviderClaimScope added in v0.30.0

func ProviderClaimScope(provider string, cfg Config) string

func ProviderClassCandidatesForProfiles added in v0.45.0

func ProviderClassCandidatesForProfiles(profiles []ProviderClassProfile, cfg Config) ([]string, bool)

func ProviderClassPrimaryTypeForProfiles added in v0.62.0

func ProviderClassPrimaryTypeForProfiles(profiles []ProviderClassProfile, cfg Config, legacyFallback string) string

ProviderClassPrimaryTypeForProfiles preserves unsupported canonical selectors as unresolved; only noncanonical input may use the provider's legacy fallback.

func ProviderKeyForLease added in v0.6.0

func ProviderKeyForLease(leaseID string) string

func ProviderNameMatches added in v0.54.0

func ProviderNameMatches(name string, provider Provider) bool

ProviderNameMatches compares a name with provider metadata without consulting the registry or configuring a backend.

func ProviderNameMatchesExact added in v0.54.0

func ProviderNameMatchesExact(name string, provider Provider) bool

ProviderNameMatchesExact compares raw names with provider metadata without normalization, registry lookup, or backend configuration.

func ProviderSelectionIsAuthoritativeRoute added in v0.42.0

func ProviderSelectionIsAuthoritativeRoute(cfg Config) bool

ProviderSelectionIsAuthoritativeRoute reports whether cfg names an exact provider restored from lease or recorded-run context.

func ProvisionServerCandidates added in v0.59.0

func ProvisionServerCandidates(ctx context.Context, original Config, candidates []ProvisioningCandidate, provisioner ServerProvisioner, logf func(string, ...any)) (Server, Config, error)

func PruneArchiveSyncManifestCommand added in v0.47.0

func PruneArchiveSyncManifestCommand(workdir, token string, allowMassDeletions bool) string

PruneArchiveSyncManifestCommand preserves remote-only files while pruning the previous archive manifest with the same path checks as Git overlay sync.

func PublicKeyFor added in v0.41.1

func PublicKeyFor(privatePath string) (string, error)

func ReadFixedAttempt added in v0.65.0

func ReadFixedAttempt[T any](intent *FixedCreateIntent, format FixedAttemptFormat) (*T, error)

func ReadLeaseClaim added in v0.6.0

func ReadLeaseClaim(leaseID string) (leaseClaim, error)

func ReadLeaseClaimWithPresence added in v0.29.0

func ReadLeaseClaimWithPresence(leaseID string) (leaseClaim, bool, error)

Published claim files are immutable snapshots. Reads never take the operation lock; guarded actions must reread and validate their snapshot under that lock.

func ReconcileFixedReadiness added in v0.65.0

func ReconcileFixedReadiness(p FixedReadinessRecovery) (bool, error)

func RecordFixedWitness added in v0.65.0

func RecordFixedWitness(claim *LeaseClaim, key, value string, persist func() error) error

RecordFixedWitness stores a native acknowledgement without allowing a known witness to be retargeted. The owning transaction supplies the journal fence.

func RecordProviderFlagInputs added in v0.56.0

func RecordProviderFlagInputs(cfg *Config, accepted bool, providers ...string)

RecordProviderFlagInputs records accepted settings for the named canonical providers. Shared configuration owners name each affected provider explicitly. Calling this for a selected provider or an ignored flag is not acceptance.

func RecordProviderFlagIntents added in v0.56.0

func RecordProviderFlagIntents(cfg *Config, applied bool, providers ...string)

RecordProviderFlagIntents records explicitness effects that can apply without an accepted value. A raw flag visit alone does not establish such an effect.

func RedactDiagnosticSecrets added in v0.36.0

func RedactDiagnosticSecrets(value string, secrets ...string) string

RedactDiagnosticSecrets removes credentials from untrusted diagnostic text while preserving non-secret routing and failure context.

func RedactKnownFailureBody added in v0.19.0

func RedactKnownFailureBody(text string) (string, bool)

func RefreshAuthorizedForkReleaseClaim added in v0.80.0

func RefreshAuthorizedForkReleaseClaim(server *Server, leaseID string) error

RefreshAuthorizedForkReleaseClaim confirms the persisted claim still exactly matches the carried acquisition/run snapshot (owner + revision generation). Authorized successors (for example run --keep) must be carried into the snapshot before release via carryReleaseClaim; this refresh never adopts a different revision. ClaimedAt is not used: it is whole-second RFC3339, so a same-second reclaim could collide and let stale cleanup adopt a replacement generation. A replaced, revoked, reclaimed, or ABA claim fails closed. A missing claim leaves the carried snapshot unchanged so the provider ReleaseLease claim check decides (AWS/Hetzner refuse destructive release without an exact local claim).

func RefreshGuestLeaseExpiry added in v0.76.0

func RefreshGuestLeaseExpiry(ctx context.Context, target SSHTarget, fields GuestLeaseExpiryFields) error

RefreshGuestLeaseExpiry is the extension hook for file-backed providers. It uses the existing authenticated SSH transport; the old deadline remains intact on failed writes, and readers see either complete version.

func RegisterProvider added in v0.6.0

func RegisterProvider(provider Provider)

func RegisteredProviderNames added in v0.34.0

func RegisteredProviderNames() []string

RegisteredProviderNames returns the canonical names of every registered provider.

func RejectDelegatedSyncOptionsForSpec added in v0.13.0

func RejectDelegatedSyncOptionsForSpec(spec ProviderSpec, req RunRequest) error

func RemoteJoin added in v0.6.0

func RemoteJoin(cfg Config, parts ...string) string

func RemoveExternalRouting added in v0.26.1

func RemoveExternalRouting(leaseID string)

func RemoveExternalRoutingIfUnchanged added in v0.31.0

func RemoveExternalRoutingIfUnchanged(leaseID string, expected ExternalConfig) error

RemoveExternalRoutingIfUnchanged removes only the exact routing record used for the confirmed absence check, including its Desktop credential route.

func RemoveLeaseClaim added in v0.6.0

func RemoveLeaseClaim(leaseID string)

func RemoveLeaseClaimIfUnchanged added in v0.29.0

func RemoveLeaseClaimIfUnchanged(leaseID string, expected leaseClaim) error

func RemoveLeaseClaimIfUnchangedAfter added in v0.36.0

func RemoveLeaseClaimIfUnchangedAfter(leaseID string, expected leaseClaim, action func() error) error

RemoveLeaseClaimIfUnchangedAfter holds the claim lock across action and removes the claim only when it still matches expected.

func RemoveStoredTestboxConnectionArtifacts added in v0.48.0

func RemoveStoredTestboxConnectionArtifacts(leaseID string) error

RemoveStoredTestboxConnectionArtifacts closes lease-owned SSH masters and removes canonical credentials.

func RemoveStoredTestboxConnectionArtifactsContext added in v0.81.0

func RemoveStoredTestboxConnectionArtifactsContext(ctx context.Context, leaseID string) error

func RemoveStoredTestboxKey added in v0.6.0

func RemoveStoredTestboxKey(leaseID string)

func RenderTailscaleHostname added in v0.29.0

func RenderTailscaleHostname(template, leaseID, slug, provider string) string

func ReplaceLeaseClaimEndpointIfUnchangedAction added in v0.45.0

func ReplaceLeaseClaimEndpointIfUnchangedAction(
	leaseID string,
	expected leaseClaim,
	action func() (Server, SSHTarget, bool, error),
) (leaseClaim, Server, SSHTarget, error)

func ReplaceLeaseClaimEndpointIfUnchangedWithProviderMetadata added in v0.30.0

func ReplaceLeaseClaimEndpointIfUnchangedWithProviderMetadata(leaseID string, expected leaseClaim, server Server, target SSHTarget) (leaseClaim, error)

func ReplaceLeaseClaimIfUnchanged added in v0.29.0

func ReplaceLeaseClaimIfUnchanged(leaseID string, current, replacement leaseClaim) error

func ReplaceLeaseClaimIfUnchangedDurableAfter added in v0.41.1

func ReplaceLeaseClaimIfUnchangedDurableAfter(leaseID string, current, replacement leaseClaim, action func() error) (leaseClaim, error)

func ReplaceLeaseClaimIfUnchangedDurableReturning added in v0.40.0

func ReplaceLeaseClaimIfUnchangedDurableReturning(leaseID string, current, replacement leaseClaim) (leaseClaim, error)

func ReplaceLeaseClaimIfUnchangedDurableReturningContext added in v0.58.0

func ReplaceLeaseClaimIfUnchangedDurableReturningContext(ctx context.Context, leaseID string, current, replacement leaseClaim) (leaseClaim, error)

ReplaceLeaseClaimIfUnchangedDurableReturningContext also bounds waiting for the claim fence. Existing context-free replacement APIs remain detached.

func ReserveParallelsHostCapacity added in v0.64.0

func ReserveParallelsHostCapacity(ctx context.Context, cfg Config, runner CommandRunner, source string) (func(), error)

ReserveParallelsHostCapacity holds the capacity reservation for one already chosen host, without re-running fleet selection. A fixed lease is pinned to the host recorded in its durable intent and must never be moved to another one, so it reserves that host alone rather than shopping the fleet.

func ResolveInheritedWorkRoot added in v0.54.0

func ResolveInheritedWorkRoot(providerRoot, genericRoot, fallback string) string

ResolveInheritedWorkRoot preserves a raw nonempty provider root, otherwise inheriting a non-default generic root or using the caller's fallback.

func ResolveLeaseClaim added in v0.6.0

func ResolveLeaseClaim(identifier string) (leaseClaim, bool, error)

func ResolveLeaseClaimAfterActionIfUnchanged added in v0.40.0

func ResolveLeaseClaimAfterActionIfUnchanged(
	leaseID string,
	expected leaseClaim,
	action func() error,
	resolve func(error) (map[string]string, bool),
) (leaseClaim, bool, bool, error)

func ResolveLeaseClaimContext added in v0.71.0

func ResolveLeaseClaimContext(ctx context.Context, identifier string) (leaseClaim, bool, error)

func ResolveLeaseClaimForProvider added in v0.12.0

func ResolveLeaseClaimForProvider(identifier, provider string) (leaseClaim, bool, error)

func ResolveLeaseClaimForProviderCloudID added in v0.29.0

func ResolveLeaseClaimForProviderCloudID(cloudID, provider string) (leaseClaim, bool, error)

func ResolveLeaseClaimForProviderCloudIDScope added in v0.37.0

func ResolveLeaseClaimForProviderCloudIDScope(cloudID, provider, providerScope string) (leaseClaim, bool, error)

func ResolveLeaseClaimForProviderCloudIDScopeContext added in v0.71.0

func ResolveLeaseClaimForProviderCloudIDScopeContext(ctx context.Context, cloudID, provider, providerScope string) (leaseClaim, bool, error)

func ResolveLeaseClaimForProviderContext added in v0.71.0

func ResolveLeaseClaimForProviderContext(ctx context.Context, identifier, provider string) (leaseClaim, bool, error)

func ResolveLeaseClaimForProviderScopeWithExact added in v0.37.0

func ResolveLeaseClaimForProviderScopeWithExact(identifier, provider, providerScope string) (leaseClaim, bool, bool, error)

func ResolveLeaseClaimForProviderScopeWithExactContext added in v0.71.0

func ResolveLeaseClaimForProviderScopeWithExactContext(ctx context.Context, identifier, provider, providerScope string) (leaseClaim, bool, bool, error)

func ResolveLeaseClaimForProviderWithExact added in v0.29.0

func ResolveLeaseClaimForProviderWithExact(identifier, provider string) (leaseClaim, bool, bool, error)

func ResolveLeaseClaimForProviderWithExactContext added in v0.71.0

func ResolveLeaseClaimForProviderWithExactContext(ctx context.Context, identifier, provider string) (leaseClaim, bool, bool, error)

func ResolveParallelsVM added in v0.17.0

func ResolveParallelsVM(ctx context.Context, cfg Config, runner CommandRunner, id string) (Config, ParallelsVM, error)

func RestoreLeaseClaimIfUnchanged added in v0.29.0

func RestoreLeaseClaimIfUnchanged(leaseID string, current, previous leaseClaim, previousExists bool) error

func RoutingSafeURL added in v0.47.0

func RoutingSafeURL(value string) string

RoutingSafeURL excludes credentials while retaining non-secret endpoint routing.

func Run

func Run(ctx context.Context, args []string) error

func RunEgressClient added in v0.77.0

func RunEgressClient(ctx context.Context, args []string, stdin io.Reader, stdout, stderr io.Writer) error

RunEgressClient is the runtime pack's restricted client entrypoint.

func RunSSHOutput added in v0.33.0

func RunSSHOutput(ctx context.Context, target SSHTarget, remote string) (string, error)

RunSSHOutput runs remote on target and returns its trimmed stdout. It is the exported entry point for provider backends (e.g. the Phala TDX attestation fetch) that need to capture a remote command's stdout rather than merely asserting it succeeded.

func RunSSHOutputBounded added in v0.48.0

func RunSSHOutputBounded(ctx context.Context, target SSHTarget, remote string, maxBytes int) (string, error)

RunSSHOutputBounded uses the normal trusted transport and target wrappers, retaining at most maxBytes of stdout. The caller supplies a deadline. An empty non-nil FallbackPorts pins a previously resolved endpoint, as in other helpers. Neither remote stdout nor stderr is included in errors.

func RunSSHOutputBoundedWithExecutionTimeout added in v0.60.0

func RunSSHOutputBoundedWithExecutionTimeout(ctx context.Context, target SSHTarget, remote string, maxBytes int, executionTimeout time.Duration) (string, error)

RunSSHOutputBoundedWithExecutionTimeout lets the transport account for setup and cleanup around a positive execution allowance. Caller deadlines still win.

func RunSSHQuiet added in v0.17.0

func RunSSHQuiet(ctx context.Context, target SSHTarget, remote string) error

func SameHTTPOrigin added in v0.58.0

func SameHTTPOrigin(a, b *url.URL) bool

SameHTTPOrigin compares scheme, hostname, and effective port. Callers retain URL admission and any redirect restrictions beyond origin equality.

func ScalewayImageWasExplicit added in v0.33.0

func ScalewayImageWasExplicit(cfg Config) bool

func ScalewayRegionWasExplicit added in v0.33.0

func ScalewayRegionWasExplicit(cfg Config) bool

func ScalewayTypeWasExplicit added in v0.33.0

func ScalewayTypeWasExplicit(cfg Config) bool

func ScalewayZoneWasExplicit added in v0.33.0

func ScalewayZoneWasExplicit(cfg Config) bool

func SecureCreatedLeaseSSHFile added in v0.58.0

func SecureCreatedLeaseSSHFile(file *os.File) error

SecureCreatedLeaseSSHFile is only for a newly created, caller-owned handle. Reuse must pass nonmutating admission instead of repairing existing keys.

func SelectFixedCandidate added in v0.65.0

func SelectFixedCandidate[T any](kind FixedLeaseKind, leaseID string, items []T, match func(T) bool) (T, bool, error)

SelectFixedCandidate classifies a complete native candidate set. Match must include suspicious identities; attestation happens only after cardinality.

func SelectProofLogExcerpt added in v0.17.1

func SelectProofLogExcerpt(log string) string

func ServerProviderKey added in v0.19.0

func ServerProviderKey(server Server) string

func ServerSlug added in v0.6.0

func ServerSlug(server Server) string

func ServerTypeForProviderClass added in v0.6.0

func ServerTypeForProviderClass(provider, class string) string

func SessionDiskExecutionDeadline added in v0.80.0

func SessionDiskExecutionDeadline(claim LeaseClaim, now time.Time) (time.Time, error)

SessionDiskExecutionDeadline admits work only in an already authorized window. Neither observation, activity nor a heartbeat can open another one.

func SessionDiskWindowDeadline added in v0.80.0

func SessionDiskWindowDeadline(claim LeaseClaim, now time.Time) (time.Time, error)

SessionDiskWindowDeadline also gates preparation of the original allocation.

func SetExternalRoutingArchitecture added in v0.39.0

func SetExternalRoutingArchitecture(cfg *ExternalConfig, architecture string)

func SetExternalRoutingTarget added in v0.39.0

func SetExternalRoutingTarget(cfg *ExternalConfig, targetOS, windowsMode string)

func SetGCPProjectExplicit added in v0.19.0

func SetGCPProjectExplicit(cfg *Config, project string)

func SetLeaseClaimResourceIdentity added in v0.58.0

func SetLeaseClaimResourceIdentity(claim *LeaseClaim, cloudID string, numericID int64, immutableID string, evidence *ImageEvidence)

SetLeaseClaimResourceIdentity updates an in-memory claim's exact resource identity. Callers retain their existing publication and identity-admission policy.

func SetOSImageExplicit added in v0.31.0

func SetOSImageExplicit(cfg *Config)

func SetOVHImageExplicit added in v0.31.0

func SetOVHImageExplicit(cfg *Config)

func SetScalewayImageExplicit added in v0.33.0

func SetScalewayImageExplicit(cfg *Config)

func SetScalewayRegionExplicit added in v0.33.0

func SetScalewayRegionExplicit(cfg *Config)

func SetScalewayTypeExplicit added in v0.33.0

func SetScalewayTypeExplicit(cfg *Config)

func SetScalewayZoneExplicit added in v0.33.0

func SetScalewayZoneExplicit(cfg *Config)

func SetServerLeaseClaimSnapshot added in v0.37.0

func SetServerLeaseClaimSnapshot(server *Server, claim LeaseClaim, exists bool)

SetServerLeaseClaimSnapshot carries the exact claim state that authorized a provider result into a later lifecycle operation.

func SetTencentCloudImageExplicit added in v0.34.0

func SetTencentCloudImageExplicit(cfg *Config)

func SetTencentCloudRegionExplicit added in v0.34.0

func SetTencentCloudRegionExplicit(cfg *Config)

func SetTencentCloudTypeExplicit added in v0.34.0

func SetTencentCloudTypeExplicit(cfg *Config)

func SetTencentCloudZoneExplicit added in v0.34.0

func SetTencentCloudZoneExplicit(cfg *Config)

func ShellQuote added in v0.6.0

func ShellQuote(s string) string

func ShellScriptFromArgv added in v0.6.0

func ShellScriptFromArgv(command []string) string

func ShellWords added in v0.6.0

func ShellWords(words []string) []string

func ShouldCleanupServer added in v0.6.0

func ShouldCleanupServer(server Server, now time.Time) (bool, string)

func ShouldUseCoordinator added in v0.49.0

func ShouldUseCoordinator(cfg Config, spec ProviderSpec) bool

ShouldUseCoordinator reports whether provider allocations use the coordinator. Registered mode keeps allocation with the direct provider.

func SleepContext added in v0.58.0

func SleepContext(ctx context.Context, delay time.Duration) error

SleepContext waits for delay and preserves ctx.Err as the cancellation result.

func SlugWithCollisionSuffix added in v0.26.1

func SlugWithCollisionSuffix(base, seed string) string

func StaticLease added in v0.6.0

func StaticLease(cfg Config) (Server, SSHTarget, string, error)

func StoredTestboxKeyPath added in v0.58.0

func StoredTestboxKeyPath(leaseID string) (string, error)

StoredTestboxKeyPath admits existing material in an explicitly selected root. A missing key retains its calculated path for callers' existing diagnostics.

func SummarizeJSON added in v0.6.0

func SummarizeJSON(data []byte) string

func TencentCloudImageWasExplicit added in v0.34.0

func TencentCloudImageWasExplicit(cfg Config) bool

func TencentCloudRegionWasExplicit added in v0.34.0

func TencentCloudRegionWasExplicit(cfg Config) bool

func TencentCloudTypeWasExplicit added in v0.34.0

func TencentCloudTypeWasExplicit(cfg Config) bool

func TencentCloudZoneWasExplicit added in v0.34.0

func TencentCloudZoneWasExplicit(cfg Config) bool

func TestboxKeyPath added in v0.6.0

func TestboxKeyPath(leaseID string) (string, error)

func TouchDirectLeaseLabels added in v0.6.0

func TouchDirectLeaseLabels(labels map[string]string, cfg Config, state string, now time.Time) map[string]string

func TouchDirectLeaseLabelsWithIdleTimeoutOverride added in v0.44.0

func TouchDirectLeaseLabelsWithIdleTimeoutOverride(labels map[string]string, cfg Config, state string, now time.Time, idleTimeoutOverride *time.Duration) map[string]string

func TrackLocalCommandCancellation added in v0.50.0

func TrackLocalCommandCancellation(ctx context.Context, cmd *exec.Cmd) func(error) error

TrackLocalCommandCancellation records the caller cause for a signaled child stopped by the cancellation watcher. Install it after configuring cmd.Cancel, before starting a CommandContext command. Apply the returned function only after Run or Wait joins that watcher; ordinary observed exits stay primary.

func UpdateLeaseClaimCacheVolumes added in v0.24.0

func UpdateLeaseClaimCacheVolumes(leaseID string, specs []string) error

func UpdateLeaseClaimEndpoint added in v0.26.0

func UpdateLeaseClaimEndpoint(leaseID string, server Server, target SSHTarget) error

func UpdateLeaseClaimEndpointIfUnchanged added in v0.29.0

func UpdateLeaseClaimEndpointIfUnchanged(leaseID string, expected leaseClaim, server Server, target SSHTarget) (leaseClaim, error)

func UpdateLeaseClaimEndpointIfUnchangedAction added in v0.40.0

func UpdateLeaseClaimEndpointIfUnchangedAction(
	leaseID string,
	expected leaseClaim,
	action func() (Server, SSHTarget, bool, error),
) (leaseClaim, Server, SSHTarget, error)

func UpdateLeaseClaimEndpointIfUnchangedAfter added in v0.29.0

func UpdateLeaseClaimEndpointIfUnchangedAfter(leaseID string, expected leaseClaim, server Server, target SSHTarget, action func() error) (leaseClaim, error)

UpdateLeaseClaimEndpointIfUnchangedAfter holds the claim lock while action runs, then updates the endpoint only if the claim still matches expected.

func UpdateLeaseClaimEndpointIfUnchangedWithProviderMetadata added in v0.29.0

func UpdateLeaseClaimEndpointIfUnchangedWithProviderMetadata(leaseID string, expected leaseClaim, server Server, target SSHTarget) (leaseClaim, error)

func UpdateLeaseClaimLabelsAndLastUsedIfUnchanged added in v0.40.0

func UpdateLeaseClaimLabelsAndLastUsedIfUnchanged(leaseID string, expected leaseClaim, labels map[string]string, lastUsed time.Time) (leaseClaim, error)

func UpdateLeaseClaimLabelsIfUnchanged added in v0.29.0

func UpdateLeaseClaimLabelsIfUnchanged(leaseID string, expected leaseClaim, labels map[string]string) (leaseClaim, error)

func UpdateLeaseClaimLabelsIfUnchangedAfter added in v0.35.0

func UpdateLeaseClaimLabelsIfUnchangedAfter(leaseID string, expected leaseClaim, labels map[string]string, action func() error) (leaseClaim, error)

func UpdateLeaseClaimTailscale added in v0.29.0

func UpdateLeaseClaimTailscale(leaseID, ipv4, fqdn string) error

UpdateLeaseClaimTailscale records a tailnet endpoint (IPv4 and/or FQDN) on an existing claim. Used by delegated-run providers that join the tailnet out-of-band rather than through a Crabbox-managed SSH lease. Delegated-run providers (e.g. islo) have no SSH lease and so cannot go through updateLeaseClaimEndpoint; they call this after joining the tailnet out-of-band so health, ACL, and pond discovery can report enrollment.

func UpdateLeaseClaimTailscaleSettings added in v0.29.0

func UpdateLeaseClaimTailscaleSettings(leaseID, hostname string, tags []string, loginURL, exitNode string, exitLAN bool) error

func UpdateLeaseClaimTouchIfUnchanged added in v0.44.0

func UpdateLeaseClaimTouchIfUnchanged(ctx context.Context, leaseID string, expected leaseClaim, labels map[string]string, lastUsed time.Time, idleTimeoutOverride *time.Duration) (leaseClaim, error)

UpdateLeaseClaimTouchIfUnchanged atomically commits touched lifecycle labels, last-use time, and an explicitly requested idle-timeout replacement.

func UpdateLeaseClaimTouchIfUnchangedAction added in v0.47.0

func UpdateLeaseClaimTouchIfUnchangedAction(ctx context.Context, leaseID string, expected LeaseClaim, lastUsed time.Time, idleTimeoutOverride *time.Duration, action func() (Server, SSHTarget, bool, error)) (LeaseClaim, Server, SSHTarget, error)

UpdateLeaseClaimTouchIfUnchangedAction fences a provider mutation and commits its endpoint, lifecycle timestamps, and optional timeout in one claim write.

func UseLeaseKnownHosts added in v0.37.0

func UseLeaseKnownHosts(target *SSHTarget, leaseID string) error

func UseStoredTestboxKey added in v0.29.0

func UseStoredTestboxKey(target *SSHTarget, leaseID string) error

func ValidCrabboxProviderKey added in v0.19.0

func ValidCrabboxProviderKey(name string) bool

func ValidShellEnvName added in v0.58.0

func ValidShellEnvName(name string) bool

ValidShellEnvName accepts portable ASCII shell environment identifiers without trimming. Callers own whether an invalid name is rejected or omitted.

func ValidateAWSFixedAttemptAttestation added in v0.41.1

func ValidateAWSFixedAttemptAttestation(labels map[string]string, attempt AWSLaunchAttempt) error

func ValidateAzureOwnedVM added in v0.49.1

func ValidateAzureOwnedVM(expected, live Server) error

ValidateAzureOwnedVM compares an observation with a frozen VM generation and ownership binding. It does not authorize name-addressed mutations by itself.

func ValidateAzureSSHCIDRsForAcquire added in v0.28.0

func ValidateAzureSSHCIDRsForAcquire(ctx context.Context, cfg Config) error

func ValidateAzureVMUserAssignedIdentity added in v0.67.0

func ValidateAzureVMUserAssignedIdentity(server Server, id string) error

ValidateAzureVMUserAssignedIdentity checks the ARM VM identity field, not a user-controlled tag or a stale lease claim.

func ValidateCacheVolumesForProvider added in v0.34.0

func ValidateCacheVolumesForProvider(cfg Config) error

ValidateCacheVolumesForProvider checks provider support for configured cache volumes.

func ValidateCheckpointCaptureClaim added in v0.48.0

func ValidateCheckpointCaptureClaim(claim LeaseClaim, id string, capture *NativeCheckpointCapture) error

ValidateCheckpointCaptureClaim checks the journal binding, not remote metadata. The provider still must freshly attest the native resource before each effect.

func ValidateExternalDesktopPasswordEnvironmentName added in v0.39.0

func ValidateExternalDesktopPasswordEnvironmentName(name string) error

ValidateExternalDesktopPasswordEnvironmentName rejects names Crabbox, its runtime loader, or its HTTP stack consume for another security-sensitive purpose. Reusing one value as both an ARD password and process metadata would leak the desktop secret before child-process environment scrubbing can apply.

func ValidateExternalProviderSSHOutput added in v0.37.0

func ValidateExternalProviderSSHOutput(cfg Config) error

ValidateExternalProviderSSHOutput requires a trusted, source-bound contract before adapter output may supply SSH coordinates directly.

func ValidateFixedClaim added in v0.65.0

func ValidateFixedClaim(c LeaseClaim, r FixedClaimRules) error

func ValidateFixedLocalClaimUniqueness added in v0.65.0

func ValidateFixedLocalClaimUniqueness(kind FixedLeaseKind, claim LeaseClaim, providers ...string) error

ValidateFixedLocalClaimUniqueness rejects another local owner, including an owner with unknown scope. A terminal record no longer owns a live resource.

func ValidateLeaseTargetProviderIdentity added in v0.31.0

func ValidateLeaseTargetProviderIdentity(lease LeaseTarget, expected ProviderIdentityExpectation) error

ValidateLeaseTargetProviderIdentity rejects any resolved release target that does not satisfy every non-empty identity persisted by the controller.

func ValidateLocalCommandProcessGroupJoin added in v0.55.0

func ValidateLocalCommandProcessGroupJoin(ctx context.Context) error

ValidateLocalCommandProcessGroupJoin permits only a standalone group whose owner can terminate and join it without killing an enclosing controller.

func ValidateManagedStateTransferScope added in v0.58.0

func ValidateManagedStateTransferScope(scope string, roots ...string) error

ValidateManagedStateTransferScope is for transports that cannot exclude a subtree. Empty/unset XDG_STATE_HOME preserves their existing behavior.

func ValidateNativeCredentialDestination added in v0.33.0

func ValidateNativeCredentialDestination(cfg Config, provider string) error

ValidateNativeCredentialDestination is called only when a provider is about to use credentials from its native CLI store.

func ValidateProviderCredentialDestination added in v0.37.0

func ValidateProviderCredentialDestination(cfg Config) error

ValidateProviderCredentialDestination enforces source-bound credential routing for provider entry points that can load configuration after the normal CLI validation phase.

func ValidateProviderIdentityExpectation added in v0.31.0

func ValidateProviderIdentityExpectation(i ProviderIdentityExpectation) error

func ValidateRequiredRunArtifactGlobs added in v0.26.1

func ValidateRequiredRunArtifactGlobs(globs []string) error

func ValidateRetentionLifecycleRequest added in v0.80.0

func ValidateRetentionLifecycleRequest(claim LeaseClaim, req RetentionLifecycleRequest, action string) error

ValidateRetentionLifecycleRequest runs before transient activity cancellation; an obsolete or mismatched caller must not interrupt the current owner.

func ValidateRunArtifactGlobs added in v0.26.1

func ValidateRunArtifactGlobs(globs []string) error

func ValidateRunSessionFeatureSpec added in v0.44.0

func ValidateRunSessionFeatureSpec(spec ProviderSpec) error

func ValidateRunSessionForSpec added in v0.34.0

func ValidateRunSessionForSpec(spec ProviderSpec, result RunResult) error

func ValidateSessionDiskRetentionClaim added in v0.80.0

func ValidateSessionDiskRetentionClaim(claim LeaseClaim) error

ValidateSessionDiskRetentionClaim is also used by read-only provider status.

func VerifyClaimResourceAbsence added in v0.64.0

func VerifyClaimResourceAbsence(ctx context.Context, verifier AbsenceVerifier, claim LeaseClaim) (bool, error)

VerifyClaimResourceAbsence does not change local state. Callers that finalize a claim must use ForgetAbsentLeaseClaim to recheck under its exclusive fence.

func VerifyLeaseClaimUnchanged added in v0.36.0

func VerifyLeaseClaimUnchanged(leaseID string, expected leaseClaim) error

func Version added in v0.75.0

func Version() string

func WaitForManagedWindowsLoopbackVNC added in v0.81.0

func WaitForManagedWindowsLoopbackVNC(ctx context.Context, target *SSHTarget, stderr io.Writer, timeout time.Duration) error

func WaitForSSH added in v0.6.0

func WaitForSSH(ctx context.Context, target *SSHTarget, stderr io.Writer) error

func WaitForSSHReady added in v0.6.0

func WaitForSSHReady(ctx context.Context, target *SSHTarget, stderr io.Writer, phase string, timeout time.Duration) error

func WindowsBootstrapPowerShell added in v0.29.0

func WindowsBootstrapPowerShell(cfg Config, publicKey string) string

func WindowsBrowserProbePowerShell added in v0.81.0

func WindowsBrowserProbePowerShell() string

func WindowsNodeBaselinePowerShell added in v0.81.0

func WindowsNodeBaselinePowerShell() string

WindowsNodeBaselinePowerShell installs and verifies the shared native Windows Node/npm baseline (the same recipe the generic Windows bootstrap runs).

func WithCheckpointReadinessLifetime added in v0.83.0

func WithCheckpointReadinessLifetime(ctx context.Context, server Server) context.Context

WithCheckpointReadinessLifetime supplies recorded lifetime metadata to the existing bootstrap wait. It is inert outside a fixed checkpoint invocation.

func WithDurableLeaseClaimLock added in v0.41.1

func WithDurableLeaseClaimLock(leaseID string, action func(*leaseClaim, bool, func() error) error) error

WithDurableLeaseClaimLock serializes a provider operation on the existing claim lock and exposes explicit durable checkpoints before side effects.

func WithDurableLeaseClaimLockContext added in v0.48.0

func WithDurableLeaseClaimLockContext(ctx context.Context, leaseID string, action func(*leaseClaim, bool, func() error) error) error

WithDurableLeaseClaimLockContext also bounds lock acquisition. The action must honor ctx itself and must not reenter claim operations for this ID.

func WithLeaseClaimUnchanged added in v0.40.0

func WithLeaseClaimUnchanged(leaseID string, expected leaseClaim, action func() error) error

func WithLeaseClaimUnchangedContext added in v0.51.0

func WithLeaseClaimUnchangedContext(ctx context.Context, leaseID string, expected LeaseClaim, action func() error) error

WithLeaseClaimUnchangedContext also bounds waiting for the exclusive fence. The action must honor ctx itself and must not reenter claim operations.

func WithLeaseClaimUnchangedShared added in v0.48.0

func WithLeaseClaimUnchangedShared(ctx context.Context, leaseID string, expected LeaseClaim, action func() error) error

WithLeaseClaimUnchangedShared excludes claim writers while allowing another action on the same snapshot, such as cancelling a running command. Actions must tolerate that concurrency, honor ctx and never mutate or reenter claims.

func WriteFixedAttempt added in v0.65.0

func WriteFixedAttempt(intent *FixedCreateIntent, key string, value any, persist func() error) error

func WritePreparedLeaseSSHKeyFile added in v0.58.0

func WritePreparedLeaseSSHKeyFile(path string, data []byte) error

WritePreparedLeaseSSHKeyFile preserves the provider's direct write policy, but admits the opened handle before truncating or writing private bytes.

func WriteTimingJSON added in v0.6.0

func WriteTimingJSON(w io.Writer, report TimingReport) error

func XfceDesktopSessionScript added in v0.57.0

func XfceDesktopSessionScript() string

func XfceDesktopThemeScript added in v0.57.0

func XfceDesktopThemeScript() string

func XfceSessionEnvironmentScript added in v0.57.0

func XfceSessionEnvironmentScript() string

Types

type AWSAcquireStateError added in v0.72.0

type AWSAcquireStateError struct {
	InstanceID string
	State      string
	Reason     string
}

AWSAcquireStateError reports an instance that cannot finish acquiring.

func (*AWSAcquireStateError) Error added in v0.72.0

func (e *AWSAcquireStateError) Error() string

type AWSClient

type AWSClient struct {
	// contains filtered or unexported fields
}

func NewAWSClient added in v0.6.0

func NewAWSClient(ctx context.Context, cfg Config) (*AWSClient, error)

func (*AWSClient) CallerAccountID added in v0.16.0

func (c *AWSClient) CallerAccountID(ctx context.Context) (string, error)

func (*AWSClient) CapacityDoctorChecks added in v0.19.0

func (c *AWSClient) CapacityDoctorChecks(ctx context.Context, cfg Config) []DoctorCheck

func (*AWSClient) CheckAcquireState added in v0.72.0

func (c *AWSClient) CheckAcquireState(ctx context.Context, id string) error

func (*AWSClient) CreateImageCheckpoint added in v0.16.0

func (c *AWSClient) CreateImageCheckpoint(ctx context.Context, instanceID, name string, noReboot bool) (CoordinatorImage, error)

func (*AWSClient) CreateServerWithFallback

func (c *AWSClient) CreateServerWithFallback(ctx context.Context, cfg Config, publicKey, leaseID, slug string, keep bool, logf func(string, ...any)) (Server, Config, error)

func (*AWSClient) CreateServerWithFallbackControl added in v0.41.1

func (c *AWSClient) CreateServerWithFallbackControl(ctx context.Context, cfg Config, publicKey, leaseID, slug string, keep bool, logf func(string, ...any), control *AWSFixedCreateControl) (Server, Config, error)

func (*AWSClient) DeleteCleanupSSHKeyID added in v0.36.0

func (c *AWSClient) DeleteCleanupSSHKeyID(ctx context.Context, keyPairID string) error

func (*AWSClient) DeleteImageCheckpoint added in v0.16.0

func (c *AWSClient) DeleteImageCheckpoint(ctx context.Context, imageID string, fallbackSnapshotIDs []string, expectedAccountID string, persist func([]string) error) error

func (*AWSClient) DeleteServer

func (c *AWSClient) DeleteServer(ctx context.Context, id string) error

func (*AWSClient) EnsureSSHKey

func (c *AWSClient) EnsureSSHKey(ctx context.Context, name, publicKey string) error

func (*AWSClient) GetImageCheckpoint added in v0.16.0

func (c *AWSClient) GetImageCheckpoint(ctx context.Context, imageID string) (CoordinatorImage, error)

func (*AWSClient) GetServer

func (c *AWSClient) GetServer(ctx context.Context, id string) (Server, error)

func (*AWSClient) GuardAccount added in v0.16.0

func (c *AWSClient) GuardAccount(ctx context.Context, expectedAccountID string) error

func (*AWSClient) ListCrabboxServers

func (c *AWSClient) ListCrabboxServers(ctx context.Context) ([]Server, error)

func (*AWSClient) ResolveCleanupSSHKeyID added in v0.36.0

func (c *AWSClient) ResolveCleanupSSHKeyID(ctx context.Context, name string) (string, error)

func (*AWSClient) SetTags

func (c *AWSClient) SetTags(ctx context.Context, id string, labels map[string]string) error

func (*AWSClient) SpotPlacementScores

func (c *AWSClient) SpotPlacementScores(ctx context.Context, cfg Config) ([]types.SpotPlacementScore, error)

func (*AWSClient) ValidateImageCheckpointSource added in v0.16.0

func (c *AWSClient) ValidateImageCheckpointSource(ctx context.Context, instanceID string) (string, error)

func (*AWSClient) WaitForServerIP added in v0.6.0

func (c *AWSClient) WaitForServerIP(ctx context.Context, id string) (Server, error)

type AWSFixedCreateControl added in v0.41.1

type AWSFixedCreateControl struct {
	CreatedAt         time.Time
	IntentFingerprint string
	AccountID         string
	KeyPairID         string
	PinnedAttempt     *AWSLaunchAttempt
	FailedTokens      map[string]bool
	TerminalRejection bool
	BeforeAttempt     func(AWSLaunchAttempt) error
	DefiniteFailure   func(AWSLaunchAttempt) error
}

type AWSLambdaMicroVMConfig added in v0.34.0

type AWSLambdaMicroVMConfig struct {
	Image             string   `` /* 210-byte string literal not displayed */
	ImageVersion      string   `` /* 261-byte string literal not displayed */
	ExecutionRoleARN  string   `` /* 254-byte string literal not displayed */
	Workdir           string   `` /* 244-byte string literal not displayed */
	IngressConnectors []string `` /* 255-byte string literal not displayed */
	EgressConnectors  []string `` /* 251-byte string literal not displayed */
	ForgetMissing     bool     `` /* 202-byte string literal not displayed */
}

AWSLambdaMicroVMConfig owns the seven provider bindings; AWSRegion stays flat.

func (*AWSLambdaMicroVMConfig) NormalizeAppliedFlags added in v0.56.0

func (cfg *AWSLambdaMicroVMConfig) NormalizeAppliedFlags(applied AWSLambdaMicroVMConfigApplied)

NormalizeAppliedFlags must not be used for raw file or environment overlays.

type AWSLambdaMicroVMConfigApplied added in v0.56.0

type AWSLambdaMicroVMConfigApplied struct {
	InputAccepted    bool
	Image            bool
	ImageVersion     bool
	ExecutionRoleARN bool
	Workdir          bool
}

AWSLambdaMicroVMConfigApplied records accepted assignments during one application.

type AWSLambdaMicroVMConfigFlagValues added in v0.56.0

type AWSLambdaMicroVMConfigFlagValues struct {
	Image             *string
	ImageVersion      *string
	ExecutionRoleARN  *string
	Workdir           *string
	IngressConnectors *string
	EgressConnectors  *string
	ForgetMissing     *bool
}

AWSLambdaMicroVMConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterAWSLambdaMicroVMConfigFlags added in v0.56.0

func RegisterAWSLambdaMicroVMConfigFlags(fs *flag.FlagSet, defaults AWSLambdaMicroVMConfig) AWSLambdaMicroVMConfigFlagValues

RegisterAWSLambdaMicroVMConfigFlags registers mechanical bindings without selecting a provider.

func (AWSLambdaMicroVMConfigFlagValues) Apply added in v0.56.0

Apply copies explicit flag values. Provider validation must run afterward.

type AWSLambdaMicroVMConfigVisitedFlags added in v0.56.0

type AWSLambdaMicroVMConfigVisitedFlags struct {
	Image            bool
	ImageVersion     bool
	ExecutionRoleARN bool
	Workdir          bool
}

AWSLambdaMicroVMConfigVisitedFlags records raw flag visits, independently of application.

func AWSLambdaMicroVMConfigFlagPresence added in v0.56.0

func AWSLambdaMicroVMConfigFlagPresence(fs *flag.FlagSet) AWSLambdaMicroVMConfigVisitedFlags

AWSLambdaMicroVMConfigFlagPresence reports visits for tracked flag bindings.

type AWSLaunchAttempt added in v0.41.1

type AWSLaunchAttempt struct {
	Region           string `json:"region"`
	AvailabilityZone string `json:"availabilityZone,omitempty"`
	SubnetID         string `json:"subnetID,omitempty"`
	ServerType       string `json:"serverType"`
	Market           string `json:"market"`
	ImageID          string `json:"imageID"`
	SecurityGroupID  string `json:"securityGroupID"`
	HostID           string `json:"hostID,omitempty"`
	KeyPairID        string `json:"keyPairID,omitempty"`
	ClientToken      string `json:"clientToken"`
	ParametersSHA256 string `json:"parametersSHA256"`
}

type AbsenceEvidence added in v0.64.0

type AbsenceEvidence struct {
	Claim             LeaseClaim
	ExactNotFound     bool
	InventoryComplete bool
	// PendingCreateAbsent attests that the original, unbound create intent has
	// no matching resource in complete inventory in its authenticated scope.
	PendingCreateAbsent bool
}

AbsenceEvidence binds proof to the entire claim, including its revision and immutable resource identity. Zero evidence means the resource is observable.

type AbsenceVerifier added in v0.64.0

type AbsenceVerifier interface {
	VerifyResourceAbsent(context.Context, LeaseClaim) (AbsenceEvidence, error)
}

AbsenceVerifier only observes the exact bound resource. It must attest the claim's scope/account and complete unfiltered inventory absence wherever listing is supported. Bound resources also require exact structured not-found; unbound creates require explicit pending-intent absence proof.

type AbsenceVerifierFunc added in v0.64.0

type AbsenceVerifierFunc func(context.Context, LeaseClaim) (AbsenceEvidence, error)

func (AbsenceVerifierFunc) VerifyResourceAbsent added in v0.64.0

func (f AbsenceVerifierFunc) VerifyResourceAbsent(ctx context.Context, claim LeaseClaim) (AbsenceEvidence, error)

type AccessConfig added in v0.3.0

type AccessConfig struct {
	ClientID     string
	ClientSecret string
	Token        string
}

type AcquireRequest added in v0.6.0

type AcquireRequest struct {
	Repo                  Repo
	Options               LeaseOptions
	Keep                  bool
	Reclaim               bool
	RequestedLeaseID      string
	RequestedCheckpointID string
	// Native source identity remains available at the allocation owner, which can
	// distinguish a fresh fork from replay of an already allocated resource.
	CheckpointSource *NativeCheckpointForkRecord
	RequestedSlug    string
	// OnAcquired observes a fully validated raw provider identity before local
	// routing, readiness, or claim side effects. Returning an error requires the
	// provider adapter to roll back the acquired resource.
	OnAcquired func(LeaseTarget) error
}

type ActionsConfig

type ActionsConfig struct {
	ActionsWorkflowConfig `yaml:",inline"`
	RunnerLabels          []string
	RunnerVersion         string
	Ephemeral             bool
}

type ActionsRunnerBinding added in v0.82.0

type ActionsRunnerBinding struct {
	Scope            string `json:"scope"`
	RunnerID         int64  `json:"runnerID"`
	Name             string `json:"name"`
	Group            string `json:"group,omitempty"`
	Ephemeral        bool   `json:"ephemeral"`
	LeaseFingerprint string `json:"leaseFingerprint"`
}

ActionsRunnerBinding records ownership, not active status. Keep it after unregister so a consumed runner's guest configuration can be reconciled. GitHub is authoritative for whether the exact registration still exists.

type ActionsWorkflowConfig added in v0.62.0

type ActionsWorkflowConfig struct {
	Repo     string   `yaml:"repo,omitempty"`
	Workflow string   `yaml:"workflow,omitempty"`
	Job      string   `yaml:"job,omitempty"`
	Ref      string   `yaml:"ref,omitempty"`
	Fields   []string `yaml:"fields,omitempty"`
}

ActionsWorkflowConfig is the shared workflow selection and configured-input record.

type ActionsWorkspaceBinding added in v0.69.0

type ActionsWorkspaceBinding struct {
	Origin            string `json:"origin"`
	MarkerFingerprint string `json:"markerFingerprint"`
}

type AgentSandboxConfig added in v0.31.0

type AgentSandboxConfig struct {
	Kubectl             string        `` /* 196-byte string literal not displayed */
	Kubeconfig          string        `` /* 212-byte string literal not displayed */
	Context             string        `` /* 174-byte string literal not displayed */
	Namespace           string        `` /* 200-byte string literal not displayed */
	WarmPool            string        `` /* 195-byte string literal not displayed */
	Container           string        `` /* 228-byte string literal not displayed */
	Workdir             string        `` /* 230-byte string literal not displayed */
	SandboxReadyTimeout time.Duration `` /* 259-byte string literal not displayed */
	PodReadyTimeout     time.Duration `` /* 238-byte string literal not displayed */
	ExecTimeoutSecs     int           `` /* 232-byte string literal not displayed */
	DeleteOnRelease     bool          `` /* 216-byte string literal not displayed */
	ForgetMissing       bool          `` /* 202-byte string literal not displayed */
}

AgentSandboxConfig owns mechanical bindings; path expansion and markers stay explicit.

func (*AgentSandboxConfig) ExpandAppliedLocalPaths added in v0.56.0

func (cfg *AgentSandboxConfig) ExpandAppliedLocalPaths(applied AgentSandboxConfigApplied)

ExpandAppliedLocalPaths also consumes partial reports when a later field fails.

type AgentSandboxConfigApplied added in v0.56.0

type AgentSandboxConfigApplied struct {
	InputAccepted   bool
	Kubeconfig      bool
	DeleteOnRelease bool
}

AgentSandboxConfigApplied records accepted assignments during one application.

type AgentSandboxConfigFlagValues added in v0.56.0

type AgentSandboxConfigFlagValues struct {
	Kubectl             *string
	Kubeconfig          *string
	Context             *string
	Namespace           *string
	WarmPool            *string
	Container           *string
	Workdir             *string
	SandboxReadyTimeout *time.Duration
	PodReadyTimeout     *time.Duration
	ExecTimeoutSecs     *int
	DeleteOnRelease     *bool
	ForgetMissing       *bool
}

AgentSandboxConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterAgentSandboxConfigFlags added in v0.56.0

func RegisterAgentSandboxConfigFlags(fs *flag.FlagSet, defaults AgentSandboxConfig) AgentSandboxConfigFlagValues

RegisterAgentSandboxConfigFlags registers mechanical bindings without selecting a provider.

func (AgentSandboxConfigFlagValues) Apply added in v0.56.0

Apply copies explicit flag values. Provider validation must run afterward.

type AgentSandboxConfigVisitedFlags added in v0.56.0

type AgentSandboxConfigVisitedFlags struct {
	Kubeconfig      bool
	DeleteOnRelease bool
}

AgentSandboxConfigVisitedFlags records raw flag visits, independently of application.

func AgentSandboxConfigFlagPresence added in v0.56.0

func AgentSandboxConfigFlagPresence(fs *flag.FlagSet) AgentSandboxConfigVisitedFlags

AgentSandboxConfigFlagPresence reports visits for tracked flag bindings.

type AnthropicSRTConfig added in v0.29.0

type AnthropicSRTConfig struct {
	CLIPath  string `` /* 217-byte string literal not displayed */
	Settings string `` /* 225-byte string literal not displayed */
	Debug    bool   `` /* 163-byte string literal not displayed */
}

AnthropicSRTConfig describes mechanical bindings for the local SRT provider. Native settings validation and sandbox policy remain owned by SRT.

type AnthropicSRTConfigApplied added in v0.56.0

type AnthropicSRTConfigApplied struct {
	InputAccepted bool
}

AnthropicSRTConfigApplied records accepted assignments during one application.

type AnthropicSRTConfigFlagValues added in v0.54.0

type AnthropicSRTConfigFlagValues struct {
	CLIPath  *string
	Settings *string
	Debug    *bool
}

AnthropicSRTConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterAnthropicSRTConfigFlags added in v0.54.0

func RegisterAnthropicSRTConfigFlags(fs *flag.FlagSet, defaults AnthropicSRTConfig) AnthropicSRTConfigFlagValues

RegisterAnthropicSRTConfigFlags registers mechanical bindings without selecting a provider.

func (AnthropicSRTConfigFlagValues) Apply added in v0.54.0

Apply copies explicit flag values. Provider validation must run afterward.

type App

type App struct {
	Stdout io.Writer
	Stderr io.Writer
	Stdin  io.Reader
	// contains filtered or unexported fields
}

func (App) CheckpointForkReleaseBindings added in v0.80.0

func (a App) CheckpointForkReleaseBindings(server *Server, target *SSHTarget, leaseID string, coordinator *CoordinatorClient, sshBackend SSHLeaseBackend, cfg *Config) (release func(context.Context), carryReleaseClaim func(LeaseClaim))

CheckpointForkReleaseBindings builds the production release fence used by provisionCheckpointForkWithoutClaim and shard cleanup after run --keep. carryReleaseClaim installs an authorized post-run claim into *server. server, target, and cfg are read at release time so later claim updates, resolveNetworkTarget (--network tailscale), and applyResolvedServerConfig stay visible to shutdown/egress/Tailscale logout — matching the old closure.

func (App) Run

func (a App) Run(ctx context.Context, args []string) (err error)

type AppleContainerConfig added in v0.25.0

type AppleContainerConfig struct {
	CLIPath      string   `yaml:"cliPath,omitempty"`
	Image        string   `yaml:"image,omitempty"`
	User         string   `yaml:"user,omitempty"`
	WorkRoot     string   `yaml:"workRoot,omitempty"`
	CPUs         int      `yaml:"cpus,omitempty"`
	Memory       string   `yaml:"memory,omitempty"`
	ExtraRunArgs []string `yaml:"extraRunArgs,omitempty"`
}

AppleContainerConfig is shared by the distinct Container and Machine flag surfaces.

type AppleContainerConfigApplied added in v0.55.0

type AppleContainerConfigApplied struct {
	InputAccepted bool
	Image         bool
	User          bool
	WorkRoot      bool
}

AppleContainerConfigApplied reports accepted input and selective caller policy.

type AppleContainerConfigFlagValues added in v0.55.0

type AppleContainerConfigFlagValues struct {
	CLIPath  *string
	Image    *string
	User     *string
	WorkRoot *string
	CPUs     *int
	Memory   *string
	ExtraRun *string
}

AppleContainerConfigFlagValues holds the seven Container flags only.

func RegisterAppleContainerConfigFlags added in v0.55.0

func RegisterAppleContainerConfigFlags(fs *flag.FlagSet, defaults AppleContainerConfig) AppleContainerConfigFlagValues

func (AppleContainerConfigFlagValues) Apply added in v0.55.0

type AppleMachineConfigFlagValues added in v0.55.0

type AppleMachineConfigFlagValues struct {
	CLIPath *string
	Image   *string
	CPUs    *int
	Memory  *string
}

AppleMachineConfigFlagValues holds Machine's separate four-flag surface.

func RegisterAppleMachineConfigFlags added in v0.55.0

func RegisterAppleMachineConfigFlags(fs *flag.FlagSet, defaults AppleContainerConfig) AppleMachineConfigFlagValues

func (AppleMachineConfigFlagValues) Apply added in v0.55.0

type AppleVMConfig added in v0.36.0

type AppleVMConfig struct {
	HelperPath  string
	Image       string
	ImageSHA256 string
	User        string
	WorkRoot    string
	CPUs        int
	MemoryMiB   int
	DiskGiB     int
}

type AppleVMConfigApplied added in v0.56.0

type AppleVMConfigApplied struct {
	InputAccepted bool
}

type ArchiveWorkspace added in v0.59.0

type ArchiveWorkspace struct {
	Config              Config
	Repo                Repo
	ForceSyncLarge      bool
	Workdir             string
	TempPattern         string
	RemoteArchiveDir    string
	RemoteArchivePrefix string
	PhaseName           string
	Provider            string
	Stderr              io.Writer
	Now                 func() time.Time
	Suffix              func() string
	CleanupContext      func(context.Context) (context.Context, context.CancelFunc)
	Upload              func(context.Context, string, io.Reader) error
	Exec                func(context.Context, string) error
	Replace             func(context.Context, string, string) error
	// Path admission belongs to remote operations; local preparation can precede it.
	CleanWorkdir func(string) (string, error)
}

ArchiveWorkspace binds local archive preparation and remote workspace transfer to one configuration. Upload and Exec are invoked only after lease admission.

func NewArchiveWorkspace added in v0.59.0

func NewArchiveWorkspace(cfg Config, rt Runtime, req RunRequest, provider, workdir string) ArchiveWorkspace

func (ArchiveWorkspace) Ensure added in v0.59.0

func (req ArchiveWorkspace) Ensure(ctx context.Context) error

func (ArchiveWorkspace) PrepareArchive added in v0.59.0

func (req ArchiveWorkspace) PrepareArchive(ctx context.Context) (*PreparedArchive, error)

func (ArchiveWorkspace) Sync added in v0.59.0

func (req ArchiveWorkspace) Sync(ctx context.Context, prepared ...*PreparedArchive) ([]TimingPhase, time.Duration, error)

type ArtifactChangeResult added in v0.48.0

type ArtifactChangeResult struct {
	Path   string `json:"path"`
	Status string `json:"status"`
}

type AsciiBoxConfig added in v0.23.0

type AsciiBoxConfig struct {
	NoSnapshots bool
	Visibility  string
	NoEnv       bool
	APIKey      string
	BaseURL     string
	CLIPath     string
	Workdir     string
}

type AzureClient added in v0.8.0

type AzureClient struct {
	SubscriptionID string
	Location       string
	ResourceGroup  string
	VNet           string
	Subnet         string
	NSG            string
	SSHCIDRs       []string
	Network        string
	Image          azureImageRef
	SSHPort        string
	FallbackPorts  []string
	// contains filtered or unexported fields
}

func NewAzureClient added in v0.8.0

func NewAzureClient(ctx context.Context, cfg Config) (*AzureClient, error)

func (*AzureClient) CreateFixedServer added in v0.62.0

func (c *AzureClient) CreateFixedServer(ctx context.Context, cfg Config, publicKey, leaseID, slug string, labels map[string]string, recordCompanions func(AzureFixedCompanions) error) (Server, error)

func (*AzureClient) CreateOSDiskSnapshot added in v0.34.0

func (c *AzureClient) CreateOSDiskSnapshot(ctx context.Context, vmName, snapshotName, sku string) (image NativeCheckpointImage, err error)

func (*AzureClient) CreateServerWithFallback added in v0.8.0

func (c *AzureClient) CreateServerWithFallback(ctx context.Context, cfg Config, publicKey, leaseID, slug string, keep bool, logf func(string, ...any)) (Server, Config, error)

func (*AzureClient) DeleteCleanupServer added in v0.36.0

func (c *AzureClient) DeleteCleanupServer(ctx context.Context, expected Server, now time.Time) error

DeleteCleanupServer revalidates a cleanup candidate and every associated resource consumed by deletion at the Azure mutation boundary.

func (*AzureClient) DeleteOSDiskSnapshot added in v0.34.0

func (c *AzureClient) DeleteOSDiskSnapshot(ctx context.Context, snapshotID, expectedUniqueID string) error

func (*AzureClient) DeleteOwnedServer added in v0.37.0

func (c *AzureClient) DeleteOwnedServer(ctx context.Context, expected Server) error

DeleteOwnedServer revalidates an exact owned VM and every associated resource at the release mutation boundary. Lease expiry is intentionally irrelevant.

func (*AzureClient) DeleteServer added in v0.8.0

func (c *AzureClient) DeleteServer(ctx context.Context, name string) error

func (*AzureClient) EnsureSharedInfra added in v0.8.0

func (c *AzureClient) EnsureSharedInfra(ctx context.Context) error

func (*AzureClient) GetOSDiskSnapshot added in v0.34.0

func (c *AzureClient) GetOSDiskSnapshot(ctx context.Context, snapshotID string) (NativeCheckpointImage, error)

func (*AzureClient) GetServer added in v0.8.0

func (c *AzureClient) GetServer(ctx context.Context, name string) (Server, error)

func (*AzureClient) LeaseClaimScope added in v0.37.0

func (c *AzureClient) LeaseClaimScope() string

LeaseClaimScope identifies the Azure account boundary used by this client.

func (*AzureClient) ListCrabboxServers added in v0.8.0

func (c *AzureClient) ListCrabboxServers(ctx context.Context) ([]Server, error)

func (*AzureClient) PrepareCleanupRecoveryServer added in v0.73.0

func (c *AzureClient) PrepareCleanupRecoveryServer(ctx context.Context, expected Server, now time.Time) (Server, error)

PrepareCleanupRecoveryServer resumes deletion already admitted by a durable claim. Unlike initial cleanup, it may observe that the VM was deleted earlier.

func (*AzureClient) PrepareCleanupServer added in v0.37.0

func (c *AzureClient) PrepareCleanupServer(ctx context.Context, expected Server, now time.Time) (Server, error)

PrepareCleanupServer is the expiry-aware variant used by automatic cleanup.

func (*AzureClient) PrepareOwnedServer added in v0.37.0

func (c *AzureClient) PrepareOwnedServer(ctx context.Context, expected Server) (Server, error)

PrepareOwnedServer captures immutable companion identities before the VM can be deleted. Callers requiring crash-resumable cleanup persist the returned labels in the exact lease claim; acquisition rollback holds them in process.

func (*AzureClient) ResourceClients added in v0.73.0

func (c *AzureClient) ResourceClients() AzureResourceClients

func (*AzureClient) SetTags added in v0.8.0

func (c *AzureClient) SetTags(ctx context.Context, name string, labels map[string]string) error

func (*AzureClient) WaitForServerIP added in v0.8.0

func (c *AzureClient) WaitForServerIP(ctx context.Context, name string) (Server, error)

type AzureConfig added in v0.65.0

type AzureConfig struct {
	Subscription  string
	Tenant        string
	ClientID      string
	Location      string
	Backend       string
	ResourceGroup string
	Image         string

	Snapshot       string
	SnapshotSKU    string
	OSDisk         string
	OSDiskExplicit bool
	OSDiskSKU      string
	VNet           string
	Subnet         string
	NSG            string
	SSHCIDRs       []string
	Network        string

	UserAssignedIdentityResourceID string
	// contains filtered or unexported fields
}

AzureConfig owns Azure inputs shared by VM and dynamic-session routing. Source admission and explicit-input markers stay beside their bindings.

type AzureDynamicSessionsConfig added in v0.22.0

type AzureDynamicSessionsConfig struct {
	Endpoint    string `` /* 265-byte string literal not displayed */
	Pool        string `config:"pool" env:"CRABBOX_AZURE_DYNAMIC_SESSIONS_POOL" sources:"user,repo,env" fileIgnoreEmpty:"true" fileStorage:"value"`
	APIVersion  string `` /* 264-byte string literal not displayed */
	Workdir     string `` /* 270-byte string literal not displayed */
	TimeoutSecs int    `` /* 267-byte string literal not displayed */
}

AzureDynamicSessionsConfig describes mechanical bindings for the session pool. Legacy Pool rejection and native credential validation remain operation policy.

type AzureDynamicSessionsConfigApplied added in v0.54.0

type AzureDynamicSessionsConfigApplied struct {
	InputAccepted bool
	Endpoint      bool
}

AzureDynamicSessionsConfigApplied records accepted assignments during one application.

type AzureDynamicSessionsConfigFlagValues added in v0.54.0

type AzureDynamicSessionsConfigFlagValues struct {
	Endpoint    *string
	APIVersion  *string
	Workdir     *string
	TimeoutSecs *int
}

AzureDynamicSessionsConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterAzureDynamicSessionsConfigFlags added in v0.54.0

func RegisterAzureDynamicSessionsConfigFlags(fs *flag.FlagSet, defaults AzureDynamicSessionsConfig) AzureDynamicSessionsConfigFlagValues

RegisterAzureDynamicSessionsConfigFlags registers mechanical bindings without selecting a provider.

func (AzureDynamicSessionsConfigFlagValues) Apply added in v0.54.0

Apply copies explicit flag values. Provider validation must run afterward.

type AzureDynamicSessionsConfigVisitedFlags added in v0.54.0

type AzureDynamicSessionsConfigVisitedFlags struct {
	Endpoint bool
}

AzureDynamicSessionsConfigVisitedFlags records raw flag visits, independently of application.

func AzureDynamicSessionsConfigFlagPresence added in v0.54.0

func AzureDynamicSessionsConfigFlagPresence(fs *flag.FlagSet) AzureDynamicSessionsConfigVisitedFlags

AzureDynamicSessionsConfigFlagPresence reports visits for tracked flag bindings.

type AzureFixedCompanions added in v0.73.0

type AzureFixedCompanions struct {
	NICGUID, PublicIPGUID string
}

CreateFixedServer submits one candidate. Its adapter persists the attempt first and owns reconciliation; ambiguous failures must not trigger rollback. AzureFixedCompanions is the pre-VM network custody recorded in the fixed claim before the allocating VM request is sent.

type AzureResourceClients added in v0.73.0

type AzureResourceClients struct {
	VirtualMachines *armcompute.VirtualMachinesClient
	Interfaces      *armnetwork.InterfacesClient
	PublicIPs       *armnetwork.PublicIPAddressesClient
	Disks           *armcompute.DisksClient
	SecurityGroups  *armnetwork.SecurityGroupsClient
}

AzureResourceClients exposes the authenticated native transport already owned by AzureClient. These handles do not confer cleanup authorization: adapters must validate the claim, identity, and current relationships before mutation.

type AzureSandboxConfig added in v0.73.0

type AzureSandboxConfig struct {
	Retention          string `` /* 189-byte string literal not displayed */
	OwnerBinding       string `` /* 199-byte string literal not displayed */
	Subscription       string `` /* 206-byte string literal not displayed */
	ResourceGroup      string `` /* 202-byte string literal not displayed */
	Group              string `` /* 176-byte string literal not displayed */
	Region             string `` /* 177-byte string literal not displayed */
	ClientID           string `` /* 197-byte string literal not displayed */
	Disk               string `` /* 190-byte string literal not displayed */
	DiskID             string `` /* 213-byte string literal not displayed */
	SnapshotID         string `` /* 218-byte string literal not displayed */
	SnapshotReceipt    string `` /* 246-byte string literal not displayed */
	SnapshotGeneration string `` /* 260-byte string literal not displayed */
}

AzureSandboxConfig routes to an existing ACA Sandbox group. Group creation, worker identities and RBAC remain the infrastructure owner's responsibility.

type AzureSandboxConfigApplied added in v0.73.0

type AzureSandboxConfigApplied struct {
	InputAccepted bool
}

AzureSandboxConfigApplied records accepted assignments during one application.

type AzureSandboxConfigFlagValues added in v0.73.0

type AzureSandboxConfigFlagValues struct {
	Retention          *string
	OwnerBinding       *string
	Subscription       *string
	ResourceGroup      *string
	Group              *string
	Region             *string
	ClientID           *string
	Disk               *string
	DiskID             *string
	SnapshotID         *string
	SnapshotReceipt    *string
	SnapshotGeneration *string
}

AzureSandboxConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterAzureSandboxConfigFlags added in v0.73.0

func RegisterAzureSandboxConfigFlags(fs *flag.FlagSet, defaults AzureSandboxConfig) AzureSandboxConfigFlagValues

RegisterAzureSandboxConfigFlags registers mechanical bindings without selecting a provider.

func (AzureSandboxConfigFlagValues) Apply added in v0.73.0

Apply copies explicit flag values. Provider validation must run afterward.

type AzureVMCreateError added in v0.73.0

type AzureVMCreateError struct {
	Terminal bool
	Err      error
}

AzureVMCreateError is an observation from the allocating VM operation. The adapter, not the transport, decides whether its native code settles a lease.

func (*AzureVMCreateError) Error added in v0.73.0

func (e *AzureVMCreateError) Error() string

func (*AzureVMCreateError) Unwrap added in v0.73.0

func (e *AzureVMCreateError) Unwrap() error

type Backend added in v0.6.0

type Backend interface {
	Spec() ProviderSpec
}

type BenchmarkRecordContext added in v0.33.0

type BenchmarkRecordContext struct {
	CommandFingerprint string `json:"commandFingerprint,omitempty"`
	CommandDisplay     string `json:"commandDisplay,omitempty"`
	RepoFingerprint    string `json:"repoFingerprint,omitempty"`
	RepoName           string `json:"repoName,omitempty"`
	RepoHead           string `json:"repoHead,omitempty"`
	ProviderFamily     string `json:"providerFamily,omitempty"`
	ProviderKind       string `json:"providerKind,omitempty"`
	ProviderCategory   string `json:"providerCategory,omitempty"`
	ColdRun            *bool  `json:"coldRun,omitempty"`
	RepeatIndex        int    `json:"repeatIndex,omitempty"`
}

type BenchmarkTimingRecord added in v0.33.0

type BenchmarkTimingRecord struct {
	SchemaVersion int                    `json:"schemaVersion"`
	RecordedAt    time.Time              `json:"recordedAt"`
	Source        string                 `json:"source"`
	Benchmark     BenchmarkRecordContext `json:"benchmark"`
	Timing        TimingReport           `json:"timing"`
}

type BlacksmithConfig added in v0.2.0

type BlacksmithConfig struct {
	Org         string        `` /* 166-byte string literal not displayed */
	Workflow    string        `` /* 203-byte string literal not displayed */
	Job         string        `` /* 174-byte string literal not displayed */
	Ref         string        `` /* 169-byte string literal not displayed */
	IdleTimeout time.Duration `` /* 152-byte string literal not displayed */
	Debug       bool          `config:"debug" env:"CRABBOX_BLACKSMITH_DEBUG" sources:"user,repo,env"`
	WaitTimeout time.Duration `` /* 290-byte string literal not displayed */
}

BlacksmithConfig owns ordinary bindings; environment halves retain loader order.

type BlacksmithConfigApplied added in v0.56.0

type BlacksmithConfigApplied struct {
	InputAccepted bool
}

BlacksmithConfigApplied records accepted assignments during one application.

type BlacksmithConfigFlagValues added in v0.56.0

type BlacksmithConfigFlagValues struct {
	Org         *string
	Workflow    *string
	Job         *string
	Ref         *string
	WaitTimeout *string
}

BlacksmithConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterBlacksmithConfigFlags added in v0.56.0

func RegisterBlacksmithConfigFlags(fs *flag.FlagSet, defaults BlacksmithConfig) BlacksmithConfigFlagValues

RegisterBlacksmithConfigFlags registers mechanical bindings without selecting a provider.

func (BlacksmithConfigFlagValues) Apply added in v0.56.0

Apply copies explicit flag values. Provider validation must run afterward.

type BlaxelConfig added in v0.34.0

type BlaxelConfig struct {
	APIKey          string `env:"CRABBOX_BLAXEL_API_KEY" envAlias:"BL_API_KEY" sources:"env"`
	APIURL          string `` /* 237-byte string literal not displayed */
	Workspace       string `` /* 199-byte string literal not displayed */
	Region          string `` /* 222-byte string literal not displayed */
	Image           string `` /* 141-byte string literal not displayed */
	MemoryMB        int    `` /* 195-byte string literal not displayed */
	TTL             string `` /* 193-byte string literal not displayed */
	IdleTTL         string `` /* 211-byte string literal not displayed */
	Workdir         string `` /* 185-byte string literal not displayed */
	ExecTimeoutSecs int    `` /* 224-byte string literal not displayed */
	ForgetMissing   bool   `` /* 196-byte string literal not displayed */
}

BlaxelConfig describes mechanical bindings for the delegated provider. API keys remain environment-only; endpoint and workspace files must be trusted.

type BlaxelConfigApplied added in v0.56.0

type BlaxelConfigApplied struct {
	InputAccepted bool
}

BlaxelConfigApplied records accepted assignments during one application.

type BlaxelConfigFlagValues added in v0.54.0

type BlaxelConfigFlagValues struct {
	APIURL          *string
	Workspace       *string
	Region          *string
	Image           *string
	MemoryMB        *int
	TTL             *string
	IdleTTL         *string
	Workdir         *string
	ExecTimeoutSecs *int
	ForgetMissing   *bool
}

BlaxelConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterBlaxelConfigFlags added in v0.54.0

func RegisterBlaxelConfigFlags(fs *flag.FlagSet, defaults BlaxelConfig) BlaxelConfigFlagValues

RegisterBlaxelConfigFlags registers mechanical bindings without selecting a provider.

func (BlaxelConfigFlagValues) Apply added in v0.54.0

Apply copies explicit flag values. Provider validation must run afterward.

type BoxdConfig added in v0.47.0

type BoxdConfig struct {
	APIURL  string `` /* 268-byte string literal not displayed */
	GRPCURL string `` /* 242-byte string literal not displayed */
	Org     string `` // Empty selects the fixed personal account context.
	/* 191-byte string literal not displayed */
	WorkRoot        string `` /* 222-byte string literal not displayed */
	DeleteOnRelease bool   `` /* 236-byte string literal not displayed */
}

BoxdConfig contains non-secret routing and lease settings: the TLS gRPC endpoint for lifecycle calls and the HTTPS console origin for the API-key exchange. API keys are read only from the environment by the provider.

type BoxdConfigApplied added in v0.62.0

type BoxdConfigApplied struct {
	InputAccepted   bool
	WorkRoot        bool
	DeleteOnRelease bool
}

BoxdConfigApplied records accepted assignments during one application.

type BoxdConfigFlagValues added in v0.62.0

type BoxdConfigFlagValues struct {
	APIURL          *string
	GRPCURL         *string
	Org             *string
	WorkRoot        *string
	DeleteOnRelease *bool
}

BoxdConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterBoxdConfigFlags added in v0.62.0

func RegisterBoxdConfigFlags(fs *flag.FlagSet, defaults BoxdConfig) BoxdConfigFlagValues

RegisterBoxdConfigFlags registers mechanical bindings without selecting a provider.

func (BoxdConfigFlagValues) Apply added in v0.62.0

Apply copies explicit flag values. Provider validation must run afterward.

type BoxdConfigVisitedFlags added in v0.62.0

type BoxdConfigVisitedFlags struct {
	WorkRoot        bool
	DeleteOnRelease bool
}

BoxdConfigVisitedFlags records raw flag visits, independently of application.

func BoxdConfigFlagPresence added in v0.62.0

func BoxdConfigFlagPresence(fs *flag.FlagSet) BoxdConfigVisitedFlags

BoxdConfigFlagPresence reports visits for tracked flag bindings.

type BridgePeer added in v0.22.0

type BridgePeer struct {
	Slug     string `json:"slug"`
	LeaseID  string `json:"leaseID"`
	Provider string `json:"provider"`
	Pond     string `json:"pond"`
	// Transport is the *primary* (recommended) plane this peer reports —
	// derived from providerCapabilities(provider).Primary(). Kept for
	// backward compatibility with callers that want a single value.
	Transport string `json:"transport"`
	// Transports lists *every* plane this peer's provider supports (peer
	// mesh, native HTTPS, operator-routed SSH), in preference order. Callers
	// that need the full reachability surface (e.g. `pond connect` deciding
	// SSH-mesh eligibility regardless of whether the provider also has
	// Tailscale) read this list. Empty for providers with no networking
	// (e.g. Blacksmith).
	Transports  []string           `json:"transports,omitempty"`
	Endpoint    string             `json:"endpoint"`
	Labels      map[string]string  `json:"labels,omitempty"`
	Note        string             `json:"note,omitempty"`
	Targets     []BridgePeerTarget `json:"targets,omitempty"`
	BridgeState string             `json:"bridgeState,omitempty"`
}

BridgePeer is the cross-provider shape returned by `crabbox pond peers`. One row per pond member, regardless of which plane carries that member:

  • Bidirectional Tailscale providers surface with Transport="tailnet" and Endpoint=tailnet IPv4/FQDN. Outbound-only userspace integrations such as Islo keep their dialable URL transport and report Tailscale in Note.
  • SSH-lease providers (exe.dev / RunPod / Daytona / Sprites / Namespace / Semaphore) surface with Transport="ssh" and Endpoint=ssh://host:port.
  • Delegated-with-URL providers (Islo, E2B, Modal, Cloudflare, Railway, Tensorlake) surface with Transport="url" and a per-port public URL.
  • Blacksmith and any provider without a Crabbox bridge adapter surface with Transport="none" and an honest Note so doctor reports the gap instead of pretending the peer is reachable.

BridgeState is retained for backward compatibility with https://github.com/openclaw/crabbox/pull/136's first shape: it carries "unsupported" / "unsupported-provider" for URL-transport peers whose per-provider adapter explicitly cannot bridge.

type BridgePeerProbeResult added in v0.22.0

type BridgePeerProbeResult struct {
	Slug       string `json:"slug"`
	URL        string `json:"url"`
	Port       int    `json:"port"`
	StatusCode int    `json:"statusCode,omitempty"`
	State      string `json:"state"`
	Detail     string `json:"detail,omitempty"`
}

BridgePeerProbeResult records the result of a single HTTPS reachability probe against one BridgePeerTarget. The result is intentionally simple — the doctor surface is a smoke check, not a uptime monitor.

func ProbeBridgePeers added in v0.22.0

func ProbeBridgePeers(ctx context.Context, client *http.Client, peers []BridgePeer, perProbeTimeout time.Duration) []BridgePeerProbeResult

ProbeBridgePeers issues a HEAD request against each peer's first published target with a strict per-probe timeout. The total wall-clock budget is `perProbeTimeout * len(peers)` in the worst case; callers should cap it via the parent context if they care.

The state is one of:

  • "reachable" — HEAD returned a status code (any code).
  • "unreachable" — HEAD failed (network error, TLS error, dial timeout).
  • "no-targets" — peer has no published bridge targets.
  • "unsupported" — provider explicitly does not implement the bridge plane (e.g. modal/cloudflare/tensorlake). The peer is still listed so `crabbox pond peers` callers see the gap.
  • "unsupported-provider" — provider has no BridgeProvider implementation at all. Same semantic as "unsupported" but produced before an explicit per-provider adapter is loaded.

A peer that returned a 4xx/5xx is still recorded as "reachable" because the bridge plane only asserts that the public URL exists and routes; the user app served on the port may legitimately answer 404 to a HEAD request.

type BridgePeerTarget added in v0.22.0

type BridgePeerTarget struct {
	Port      int       `json:"port"`
	URL       string    `json:"url"`
	ShareID   string    `json:"shareID,omitempty"`
	ExpiresAt time.Time `json:"expiresAt,omitempty"`
}

BridgePeerTarget is a single externally reachable HTTPS endpoint published for a sandbox port. Different providers will populate it from different native primitives (islo shares, modal web endpoints, e2b previews, …); the shape stays uniform so client tooling can dial peers without knowing the provider.

type BridgeProvider added in v0.22.0

type BridgeProvider interface {
	PublishPeer(ctx context.Context, leaseID string, port int, ttl time.Duration) (BridgePeerTarget, error)
	ListPeerTargets(ctx context.Context, leaseID string) ([]BridgePeerTarget, error)
}

BridgeProvider is the interface delegated-provider backends implement to surface peer endpoints to the pond bridge plane. A backend that does not implement BridgeProvider is treated as "metadata-only" — the pond label is still honored, peers are listed without targets, and `pond peers` reports the gap honestly instead of pretending to bridge.

Implementations are responsible for:

  • PublishPeer: idempotently turning a (sandbox, port) pair into a public URL. Implementations may cache existing shares and return them rather than minting new ones.
  • ListPeerTargets: returning whatever public URLs are currently live for a sandbox, without side effects.

The PublishPeer flow is opt-in: it is only invoked when the user passes `--share-port` to `crabbox pond peers`. ListPeerTargets is always cheap and safe — it is what powers the doctor probe.

type BrokerMode added in v0.29.0

type BrokerMode string
const (
	BrokerModeManaged    BrokerMode = "managed"
	BrokerModeRegistered BrokerMode = "registered"
)

type CacheConfig

type CacheConfig struct {
	Pnpm           bool
	Npm            bool
	Docker         bool
	Git            bool
	MaxGB          int
	PurgeOnRelease bool
	Volumes        []CacheVolumeConfig
}

type CacheVolumeConfig added in v0.24.0

type CacheVolumeConfig struct {
	Name     string `json:"name,omitempty"`
	Key      string `json:"key"`
	Path     string `json:"path"`
	SizeGB   int    `json:"sizeGB,omitempty"`
	Required bool   `json:"required,omitempty"`
}

func ParseCacheVolumeSpec added in v0.24.0

func ParseCacheVolumeSpec(spec string) (CacheVolumeConfig, error)

func ParseCacheVolumeSpecs added in v0.24.0

func ParseCacheVolumeSpecs(specs []string) ([]CacheVolumeConfig, error)

type CapacityConfig

type CapacityConfig struct {
	MinVCPUs          int
	MinMemoryMiB      int
	Market            string
	Strategy          string
	Fallback          string
	Regions           []string
	AvailabilityZones []string
	Hints             bool
}

type CapacityHint added in v0.6.0

type CapacityHint struct {
	Code         string   `json:"code"`
	Message      string   `json:"message"`
	Action       string   `json:"action,omitempty"`
	Region       string   `json:"region,omitempty"`
	Market       string   `json:"market,omitempty"`
	Class        string   `json:"class,omitempty"`
	ServerType   string   `json:"serverType,omitempty"`
	RegionsTried []string `json:"regionsTried,omitempty"`
}

type CheckpointCaptureBinding added in v0.48.0

type CheckpointCaptureBinding struct {
	ID            string `json:"id"`
	Revision      string `json:"revision"`
	BoundRevision string `json:"boundRevision"`
}

type CheckpointForkWorkdirValidator added in v0.29.0

type CheckpointForkWorkdirValidator interface {
	ValidateCheckpointForkWorkdir(ctx context.Context, lease LeaseTarget, workdir string) error
}

type CheckpointLeaseIDBackend added in v0.47.0

type CheckpointLeaseIDBackend interface {
	SupportsRequestedCheckpointID() bool
}

type CheckpointSourceRequest added in v0.48.0

type CheckpointSourceRequest struct {
	LeaseID   string
	Capture   NativeCheckpointCapture
	Resource  NativeCheckpointResourceRequest
	AccountID string
}

type CheckpointSourceVerifier added in v0.48.0

type CheckpointSourceVerifier interface {
	CheckpointSourceAbsent(context.Context, CheckpointSourceRequest) (bool, error)
}

CheckpointSourceVerifier must use provider authority, not a filtered lease inventory or a missing local claim, to confirm the captured source is gone.

type ClassSpec added in v0.45.0

type ClassSpec struct {
	Class    string `json:"class"`
	Type     string `json:"type"`
	VCPUs    int    `json:"vcpu,omitempty"`
	MemoryGB int    `json:"memoryGb,omitempty"`
}

ClassSpec reports the concrete machine one class resolves to on this provider's default target, with its nominal shape when known.

func ProviderClassSpecsFromProfiles added in v0.45.0

func ProviderClassSpecsFromProfiles(profiles []ProviderClassProfile) []ClassSpec

ProviderClassSpecsFromProfiles projects the default Linux/amd64 primary machines into the compatibility class summary used by provider discovery.

type CleanupBackend added in v0.6.0

type CleanupBackend interface {
	Backend
	Cleanup(ctx context.Context, req CleanupRequest) error
}

type CleanupRequest added in v0.6.0

type CleanupRequest struct {
	Options LeaseOptions
	DryRun  bool
}

type Clock added in v0.6.0

type Clock interface {
	Now() time.Time
}

type CloudRunSandboxConfig added in v0.40.0

type CloudRunSandboxConfig struct {
	GatewayURL  string `` /* 193-byte string literal not displayed */
	CLIPath     string `` /* 288-byte string literal not displayed */
	Workdir     string `` /* 251-byte string literal not displayed */
	AllowEgress bool   `` /* 201-byte string literal not displayed */
	Write       bool   `` /* 188-byte string literal not displayed */
	Rootfs      string `` /* 228-byte string literal not displayed */
}

CloudRunSandboxConfig describes mechanical bindings for the delegated provider. GatewayURL has no YAML source. Secrets remain runtime-only environment input; endpoint validation, transport selection and operation policy stay in the provider.

type CloudRunSandboxConfigApplied added in v0.56.0

type CloudRunSandboxConfigApplied struct {
	InputAccepted bool
}

CloudRunSandboxConfigApplied records accepted assignments during one application.

type CloudRunSandboxConfigFlagValues added in v0.54.0

type CloudRunSandboxConfigFlagValues struct {
	GatewayURL  *string
	CLIPath     *string
	Workdir     *string
	AllowEgress *bool
	Write       *bool
	Rootfs      *string
}

CloudRunSandboxConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterCloudRunSandboxConfigFlags added in v0.54.0

func RegisterCloudRunSandboxConfigFlags(fs *flag.FlagSet, defaults CloudRunSandboxConfig) CloudRunSandboxConfigFlagValues

RegisterCloudRunSandboxConfigFlags registers mechanical bindings without selecting a provider.

func (CloudRunSandboxConfigFlagValues) Apply added in v0.54.0

Apply copies explicit flag values. Provider validation must run afterward.

type CloudflareConfig added in v0.14.0

type CloudflareConfig struct {
	APIURL  string `` /* 199-byte string literal not displayed */
	Token   string `` /* 140-byte string literal not displayed */
	Image   string `` /* 193-byte string literal not displayed */
	Workdir string `` /* 242-byte string literal not displayed */
}

CloudflareConfig describes mechanical bindings for the container runner. Credential provenance and destination validation remain owned by core policy.

type CloudflareConfigApplied added in v0.54.0

type CloudflareConfigApplied struct {
	InputAccepted bool
	APIURL        bool
	Token         bool
}

CloudflareConfigApplied records accepted assignments during one application.

type CloudflareConfigFlagValues added in v0.54.0

type CloudflareConfigFlagValues struct {
	APIURL  *string
	Image   *string
	Workdir *string
}

CloudflareConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterCloudflareConfigFlags added in v0.54.0

func RegisterCloudflareConfigFlags(fs *flag.FlagSet, defaults CloudflareConfig) CloudflareConfigFlagValues

RegisterCloudflareConfigFlags registers mechanical bindings without selecting a provider.

func (CloudflareConfigFlagValues) Apply added in v0.54.0

Apply copies explicit flag values. Provider validation must run afterward.

type CloudflareConfigVisitedFlags added in v0.54.0

type CloudflareConfigVisitedFlags struct {
	APIURL bool
}

CloudflareConfigVisitedFlags records raw flag visits, independently of application.

func CloudflareConfigFlagPresence added in v0.54.0

func CloudflareConfigFlagPresence(fs *flag.FlagSet) CloudflareConfigVisitedFlags

CloudflareConfigFlagPresence reports visits for tracked flag bindings.

type CloudflareDynamicWorkersConfig added in v0.31.0

type CloudflareDynamicWorkersConfig struct {
	LoaderURL          string
	Token              string
	CompatibilityDate  string
	CompatibilityFlags []string
	CacheMode          string
	Egress             string
	CPUMs              int
	Subrequests        int
	TimeoutSecs        int
	Metadata           map[string]string
	// contains filtered or unexported fields
}

type CloudflareSandboxConfig added in v0.34.0

type CloudflareSandboxConfig struct {
	BridgeURL       string `` /* 164-byte string literal not displayed */
	Token           string `config:"token" env:"CRABBOX_CLOUDFLARE_SANDBOX_TOKEN" sources:"user,env"`
	Workdir         string `` /* 202-byte string literal not displayed */
	ExecTimeoutSecs int    `` /* 236-byte string literal not displayed */
	ForgetMissing   bool   `` /* 220-byte string literal not displayed */
}

CloudflareSandboxConfig describes mechanical bindings for the delegated bridge. The optional token is admitted only from trusted user config or environment, never exposed as a CLI flag, and redacted by config presentation.

type CloudflareSandboxConfigApplied added in v0.56.0

type CloudflareSandboxConfigApplied struct {
	InputAccepted bool
}

CloudflareSandboxConfigApplied records accepted assignments during one application.

type CloudflareSandboxConfigFlagValues added in v0.54.0

type CloudflareSandboxConfigFlagValues struct {
	BridgeURL       *string
	Workdir         *string
	ExecTimeoutSecs *int
	ForgetMissing   *bool
}

CloudflareSandboxConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterCloudflareSandboxConfigFlags added in v0.54.0

func RegisterCloudflareSandboxConfigFlags(fs *flag.FlagSet, defaults CloudflareSandboxConfig) CloudflareSandboxConfigFlagValues

RegisterCloudflareSandboxConfigFlags registers mechanical bindings without selecting a provider.

func (CloudflareSandboxConfigFlagValues) Apply added in v0.54.0

Apply copies explicit flag values. Provider validation must run afterward.

type CodeSandboxConfig added in v0.31.0

type CodeSandboxConfig struct {
	TemplateID               string `` /* 183-byte string literal not displayed */
	Workdir                  string `` /* 222-byte string literal not displayed */
	VMTier                   string `` /* 188-byte string literal not displayed */
	Privacy                  string `` /* 187-byte string literal not displayed */
	HibernationTimeoutSecs   int    `` /* 246-byte string literal not displayed */
	AutomaticWakeupHTTP      bool   `` /* 208-byte string literal not displayed */
	AutomaticWakeupWebSocket bool   `` /* 216-byte string literal not displayed */
	BridgeCommand            string `` /* 209-byte string literal not displayed */
	SDKPackage               string `` /* 209-byte string literal not displayed */
	DoctorListLimit          int    `` /* 228-byte string literal not displayed */
	OperationTimeoutSecs     int    `` /* 228-byte string literal not displayed */
}

CodeSandboxConfig describes mechanical bindings for the delegated provider. BridgeCommand and SDKPackage retain trusted-file-only admission. The API key stays in runtime environment authentication, never in config or on argv.

type CodeSandboxConfigApplied added in v0.56.0

type CodeSandboxConfigApplied struct {
	InputAccepted bool
}

CodeSandboxConfigApplied records accepted assignments during one application.

type CodeSandboxConfigFlagValues added in v0.53.0

type CodeSandboxConfigFlagValues struct {
	TemplateID               *string
	Workdir                  *string
	VMTier                   *string
	Privacy                  *string
	HibernationTimeoutSecs   *int
	AutomaticWakeupHTTP      *bool
	AutomaticWakeupWebSocket *bool
	BridgeCommand            *string
	SDKPackage               *string
	DoctorListLimit          *int
	OperationTimeoutSecs     *int
}

CodeSandboxConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterCodeSandboxConfigFlags added in v0.53.0

func RegisterCodeSandboxConfigFlags(fs *flag.FlagSet, defaults CodeSandboxConfig) CodeSandboxConfigFlagValues

RegisterCodeSandboxConfigFlags registers mechanical bindings without selecting a provider.

func (CodeSandboxConfigFlagValues) Apply added in v0.53.0

Apply copies explicit flag values. Provider validation must run afterward.

type CoderConfig added in v0.34.0

type CoderConfig struct {
	CLIPath              string   `` /* 188-byte string literal not displayed */
	Template             string   `` /* 181-byte string literal not displayed */
	Preset               string   `` /* 163-byte string literal not displayed */
	WorkspacePrefix      string   `` /* 238-byte string literal not displayed */
	WorkRoot             string   `` /* 234-byte string literal not displayed */
	DeleteOnRelease      bool     `` /* 186-byte string literal not displayed */
	Wait                 string   `` /* 195-byte string literal not displayed */
	UseParameterDefaults bool     `` /* 190-byte string literal not displayed */
	Parameters           []string `` /* 252-byte string literal not displayed */
	RichParameterFile    string   `` /* 225-byte string literal not displayed */
}

CoderConfig owns mechanical input bindings, not workspace or transport policy.

type CoderConfigApplied added in v0.56.0

type CoderConfigApplied struct {
	InputAccepted     bool
	CLIPath           bool
	WorkRoot          bool
	RichParameterFile bool
}

CoderConfigApplied records accepted assignments during one application.

type CoderConfigFlagValues added in v0.56.0

type CoderConfigFlagValues struct {
	CLIPath              *string
	Template             *string
	Preset               *string
	WorkspacePrefix      *string
	WorkRoot             *string
	DeleteOnRelease      *bool
	Wait                 *string
	UseParameterDefaults *bool
	Parameters           *string
	RichParameterFile    *string
}

CoderConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterCoderConfigFlags added in v0.56.0

func RegisterCoderConfigFlags(fs *flag.FlagSet, defaults CoderConfig) CoderConfigFlagValues

RegisterCoderConfigFlags registers mechanical bindings without selecting a provider.

func (CoderConfigFlagValues) Apply added in v0.56.0

Apply copies explicit flag values. Provider validation must run afterward.

type CoderConfigVisitedFlags added in v0.56.0

type CoderConfigVisitedFlags struct {
	CLIPath           bool
	WorkRoot          bool
	RichParameterFile bool
}

CoderConfigVisitedFlags records raw flag visits, independently of application.

func CoderConfigFlagPresence added in v0.56.0

func CoderConfigFlagPresence(fs *flag.FlagSet) CoderConfigVisitedFlags

CoderConfigFlagPresence reports visits for tracked flag bindings.

type CommandIntent added in v0.49.1

type CommandIntent struct {
	// contains filtered or unexported fields
}

CommandIntent separates command meaning from an adapter's execution transport. Its arguments/source are owned snapshots; providers still choose the shell, working directory, environment, and any outer command wrapping.

func ParseCommandIntent added in v0.49.1

func ParseCommandIntent(command []string, shellMode bool, literalArgs map[int]bool) (CommandIntent, error)

func (CommandIntent) Argv added in v0.49.1

func (c CommandIntent) Argv(shellPrefix ...string) []string

Argv applies the transport's shell prefix only to shell intent, including an explicitly empty shell source. Both the prefix and literal arguments are copied.

func (CommandIntent) ShellCommand added in v0.49.1

func (c CommandIntent) ShellCommand(shellPrefix ...string) string

ShellCommand quotes execution argv for a POSIX source-only transport. Once classified, arguments must not be reinterpreted as operators or assignments.

func (CommandIntent) ShellScript added in v0.59.0

func (c CommandIntent) ShellScript() string

ShellScript renders intent inside a transport-owned POSIX shell without replacing that shell. Literal arguments stay quoted, including operator text.

func (CommandIntent) ShellSource added in v0.49.1

func (c CommandIntent) ShellSource() string

ShellSource renders a terminal workload for the caller's existing POSIX shell. Shell intent remains source in that shell; literal argv replaces it with exec.

type CommandPhaseTracker added in v0.12.0

type CommandPhaseTracker = commandPhaseTracker

func NewCommandPhaseTracker added in v0.12.0

func NewCommandPhaseTracker(start time.Time) *CommandPhaseTracker

type CommandRouting added in v0.47.0

type CommandRouting struct {
	Args []string
	Env  []string
}

CommandRouting keeps environment assignments out of argv. Env contains only non-secret routing selectors, never credentials or credential contents.

func CommandRoutingFor added in v0.47.0

func CommandRoutingFor(cfg Config, leaseID string, purpose CommandRoutingPurpose, resolvedTarget ...SSHTarget) CommandRouting

CommandRoutingFor combines common selectors with the canonical adapter route.

func (CommandRouting) ShellCommand added in v0.47.0

func (routing CommandRouting) ShellCommand(args []string) string

type CommandRoutingPurpose added in v0.47.0

type CommandRoutingPurpose string
const (
	CommandRoutingReconnect CommandRoutingPurpose = "reconnect"
	CommandRoutingRescue    CommandRoutingPurpose = "rescue"
	CommandRoutingRetry     CommandRoutingPurpose = "retry"
	CommandRoutingStop      CommandRoutingPurpose = "stop"
)

type CommandRoutingRequest added in v0.47.0

type CommandRoutingRequest struct {
	LeaseID string
	Purpose CommandRoutingPurpose
	Target  SSHTarget
}

CommandRoutingRequest carries resolved lease context without making core interpret provider-specific target or release settings.

type CommandRunner added in v0.6.0

type CommandRunner interface {
	Run(ctx context.Context, req LocalCommandRequest) (LocalCommandResult, error)
}

type Config

type Config struct {
	ManagedHost      string
	HostCapabilities []string
	DirectLeases     string
	DirectLeaseAllow []string

	LifetimePolicy *LeaseLifetimeRequest `json:"-" yaml:"-"`
	RecordLocal    bool                  `json:"-" yaml:"-"`
	Profile        string
	Provider       string

	TargetOS string

	Architecture string

	OSImage string

	WindowsMode string

	Desktop    bool
	DesktopEnv string
	Browser    bool

	Code    bool
	Network NetworkMode
	Class   string

	Pond               string
	ExposedPorts       []string
	ServerType         string
	ServerTypeExplicit bool
	Coordinator        string
	BrokerMode         BrokerMode

	BrokerLoginRedirectOrigins []string
	BrokerAutoWebVNC           bool

	CoordToken        string
	CoordTokenCommand []string
	CoordAdminToken   string

	HostID   string
	Access   AccessConfig
	Location string

	Image string

	AWSRegion            string
	AWSStockImage        bool
	AWSAMI               string
	AWSSnapshot          string
	AWSSGID              string
	AWSSubnetID          string
	AWSProfile           string
	AWSRootGB            int32
	AWSSSHCIDRs          []string
	AWSSSHCIDRsPinned    bool
	AWSMacHostID         string
	AWSLambdaMicroVM     AWSLambdaMicroVMConfig
	Azure                AzureConfig
	AzureDynamicSessions AzureDynamicSessionsConfig
	AzureSandbox         AzureSandboxConfig
	GCP                  GCPConfig
	DigitalOcean         DigitalOceanConfig

	Vultr  VultrConfig
	Linode LinodeConfig

	GitHubCodespaces GitHubCodespacesConfig

	Lambda LambdaConfig

	Nebius NebiusConfig
	OVH    OVHConfig

	Scaleway ScalewayConfig

	TencentCloud TencentCloudConfig

	Incus       IncusConfig
	Proxmox     ProxmoxConfig
	Firecracker FirecrackerConfig
	XCPNg       XCPNgConfig
	Parallels   ParallelsConfig

	SSHUser string

	SSHKey string

	SSHPort string

	SSHFallbackPorts []string

	ProviderKey string
	WorkRoot    string

	MaxTTL          time.Duration
	TTL             time.Duration
	IdleTimeout     time.Duration
	WarmupKeep      bool
	ClaimsAutoPrune bool
	Sync            SyncConfig
	Run             RunConfig
	EnvAllow        []string

	Capacity CapacityConfig

	Actions      ActionsConfig
	Blacksmith   BlacksmithConfig
	KubeVirt     KubeVirtConfig
	SealosDevbox SealosDevboxConfig

	AgentSandbox AgentSandboxConfig

	External          ExternalConfig
	Namespace         NamespaceConfig
	NamespaceInstance NamespaceInstanceConfig
	Phala             PhalaConfig

	Boxd BoxdConfig

	Coder         CoderConfig
	Morph         MorphConfig
	Daytona       DaytonaConfig
	E2B           E2BConfig
	CubeSandbox   CubeSandboxConfig
	ExeDev        ExeDevConfig
	Railway       RailwayConfig
	FastAPICloud  FastAPICloudConfig
	UnikraftCloud UnikraftCloudConfig
	Runpod        RunpodConfig
	Vast          VastConfig

	NvidiaBrev NvidiaBrevConfig

	Hostinger HostingerConfig

	Wandb WandbConfig
	Orgo  OrgoConfig
	Islo  IsloConfig

	Freestyle                FreestyleConfig
	Tenki                    TenkiConfig
	Tensorlake               TensorlakeConfig
	WarpBuild                WarpBuildConfig
	Cua                      CuaConfig
	OpenComputer             OpenComputerConfig
	CodeSandbox              CodeSandboxConfig
	OpenSandbox              OpenSandboxConfig
	Nomad                    NomadConfig
	Blaxel                   BlaxelConfig
	VercelSandbox            VercelSandboxConfig
	CloudflareSandbox        CloudflareSandboxConfig
	Superserve               SuperserveConfig
	Crownest                 CrownestConfig
	DockerSandbox            DockerSandboxConfig
	AnthropicSRT             AnthropicSRTConfig
	CloudRunSandbox          CloudRunSandboxConfig
	Modal                    ModalConfig
	UpstashBox               UpstashBoxConfig
	Smolvm                   SmolvmConfig
	AsciiBox                 AsciiBoxConfig
	Cloudflare               CloudflareConfig
	CloudflareDynamicWorkers CloudflareDynamicWorkersConfig
	Semaphore                SemaphoreConfig
	Sprites                  SpritesConfig
	Serve                    ServeConfig
	LocalContainer           LocalContainerConfig

	AppleContainer AppleContainerConfig

	AppleVM AppleVMConfig

	MXC       MXCConfig
	Multipass MultipassConfig

	Machine0 Machine0Config
	Tart     TartConfig

	Lume           LumeConfig
	HyperV         HyperVConfig
	WindowsSandbox WindowsSandboxConfig
	Tailscale      TailscaleConfig
	Static         StaticConfig
	Results        ResultsConfig
	Shard          ShardConfig
	Cache          CacheConfig
	Profiles       map[string]ProfileConfig
	Presets        map[string]PresetConfig
	ProofTemplates map[string]ProofTemplateConfig
	Jobs           map[string]JobConfig
	// contains filtered or unexported fields
}

func BaseConfig added in v0.6.0

func BaseConfig() Config

func LoadConfig added in v0.29.0

func LoadConfig() (Config, error)

func ParallelsCandidateConfigs added in v0.17.0

func ParallelsCandidateConfigs(cfg Config) []Config

func ReserveParallelsFleetCapacity added in v0.64.0

func ReserveParallelsFleetCapacity(ctx context.Context, cfg Config, runner CommandRunner, source string) (Config, func(), error)

ReserveParallelsFleetCapacity picks a fleet host with room under maxVMs and holds that host's reservation lock until the returned release func runs. Capacity is enforced by counting the host's live crabbox- VMs and then cloning into it; with no reservation spanning both steps, concurrent forks all observe the same pre-clone count, all pass the gate, and all clone, so `crabbox shard --count 8` can put 8 VMs on a host configured maxVMs: 2. Callers must hold the reservation until their clone has completed and is visible to the next ListVMs.

Reservations coordinate callers sharing a state directory and the same configured host/account. Display names and keys do not affect lock identity; SSH aliases are not resolved. Independent state directories or machines still race.

func SelectParallelsFleetConfig added in v0.17.0

func SelectParallelsFleetConfig(ctx context.Context, cfg Config, runner CommandRunner, source string) (Config, error)

SelectParallelsFleetConfig picks a fleet host whose maxVMs still has room. The result is only advisory: the count it is based on is stale the moment it returns. Callers that go on to create a VM must use ReserveParallelsFleetCapacity so the count and the clone happen under one reservation.

func WithGuestLeaseExpiry added in v0.76.0

func WithGuestLeaseExpiry(cfg Config, labels map[string]string) Config

WithGuestLeaseExpiry binds file-backed bootstrap to the actual allocation.

func (Config) LegacyClaimRoot added in v0.82.0

func (cfg Config) LegacyClaimRoot() string

LegacyClaimRoot is transient invocation context, never claim-file metadata.

type ConfirmedAbsentLocalCleanupRequest added in v0.31.0

type ConfirmedAbsentLocalCleanupRequest struct {
	ExpectedProviderIdentity ProviderIdentityExpectation
	ProviderScope            string
}

ConfirmedAbsentLocalCleanupRequest carries the immutable provider identity proven absent by a complete refreshed inventory. Implementations must only remove local sidecars; they must not invoke provider lifecycle operations.

type ConfirmedAbsentLocalStateCleaner added in v0.31.0

type ConfirmedAbsentLocalStateCleaner interface {
	Backend
	CleanupConfirmedAbsentLocalState(context.Context, ConfirmedAbsentLocalCleanupRequest) error
}

type ConfirmedAbsentTerminalReceiptRetainer added in v0.64.0

type ConfirmedAbsentTerminalReceiptRetainer interface {
	Backend
	ValidateConfirmedAbsentTerminalReceipt(LeaseClaim, ConfirmedAbsentLocalCleanupRequest) error
}

ConfirmedAbsentTerminalReceiptRetainer validates a provider-owned fixed receipt that must survive confirmed-absence cleanup. Validation is local and read-only: it must reject a missing fixed receipt and check terminal shape, configured scope and every expected identity, without provider calls or claim mutations. The request carries the controller scope; the retainer owns its comparison with the receipt's claim scope, which a provider may derive differently. Core holds the claim fence across coordinator deregistration and revalidates the unchanged receipt afterward.

type ControllerProviderContract added in v0.31.0

type ControllerProviderContract interface {
	ControllerProviderScope(Config) (string, error)
	SupportsControllerFixedLeaseID(Config) bool
}

ControllerProviderContract binds controller lifecycle retries to one opaque provider configuration scope and an explicitly idempotent fixed-ID adapter.

type CoordinatorAWSIdentity added in v0.15.0

type CoordinatorAWSIdentity struct {
	Account      string                      `json:"account"`
	ARN          string                      `json:"arn"`
	UserID       string                      `json:"userId"`
	Region       string                      `json:"region"`
	PolicyTarget *CoordinatorAWSPolicyTarget `json:"policyTarget,omitempty"`
}

type CoordinatorAWSPolicyTarget added in v0.15.0

type CoordinatorAWSPolicyTarget struct {
	Type   string `json:"type"`
	Name   string `json:"name"`
	Source string `json:"source"`
}

type CoordinatorAcquireValidator added in v0.49.0

type CoordinatorAcquireValidator interface {
	ValidateCoordinatorAcquire() error
}

CoordinatorAcquireValidator keeps provider-owned creation policy at broker acquisition; configuration checks must not prevent existing-lease cleanup.

type CoordinatorAcquisitionFallback added in v0.75.0

type CoordinatorAcquisitionFallback interface {
	AcquisitionFallback(error) (string, bool)
}

CoordinatorAcquisitionFallback chooses one alternate provider only after an authoritative capacity rejection. Fixed-ID operations never change provider.

type CoordinatorArchitecturePolicy added in v0.75.0

type CoordinatorArchitecturePolicy interface {
	CoordinatorSelectsArchitecture() bool
}

CoordinatorArchitecturePolicy lets a provider place on a machine of either supported architecture when the caller did not explicitly select one.

type CoordinatorArtifactUploadGrant added in v0.8.0

type CoordinatorArtifactUploadGrant struct {
	Name   string `json:"name"`
	Key    string `json:"key"`
	Upload struct {
		Method    string            `json:"method"`
		URL       string            `json:"url"`
		Headers   map[string]string `json:"headers"`
		ExpiresAt string            `json:"expiresAt"`
	} `json:"upload"`
	URL          string `json:"url"`
	AccessPolicy string `json:"accessPolicy,omitempty"`
}

type CoordinatorArtifactUploadInput added in v0.8.0

type CoordinatorArtifactUploadInput struct {
	Name        string `json:"name"`
	Size        int64  `json:"size"`
	ContentType string `json:"contentType,omitempty"`
	SHA256      string `json:"sha256,omitempty"`
}

type CoordinatorArtifactUploadRequest added in v0.8.0

type CoordinatorArtifactUploadRequest struct {
	Prefix string                           `json:"prefix,omitempty"`
	Files  []CoordinatorArtifactUploadInput `json:"files"`
}

type CoordinatorArtifactUploadResponse added in v0.8.0

type CoordinatorArtifactUploadResponse struct {
	Backend      string                           `json:"backend"`
	Bucket       string                           `json:"bucket"`
	Prefix       string                           `json:"prefix"`
	ExpiresAt    string                           `json:"expiresAt"`
	AccessPolicy string                           `json:"accessPolicy,omitempty"`
	Files        []CoordinatorArtifactUploadGrant `json:"files"`
}

type CoordinatorCanceledCreateAttestation added in v0.41.2

type CoordinatorCanceledCreateAttestation struct {
	Version          int    `json:"version"`
	RequestedLeaseID string `json:"requestedLeaseID"`
	CreateAttemptID  string `json:"createAttemptID"`
	State            string `json:"state"`
}

type CoordinatorCanceledCreateResult added in v0.41.2

type CoordinatorCanceledCreateResult struct {
	CanceledCreate CoordinatorCanceledCreateAttestation `json:"canceledCreate"`
	Lease          *CoordinatorLease                    `json:"lease,omitempty"`
}

type CoordinatorCapacityAdmission added in v0.71.0

type CoordinatorCapacityAdmission struct {
	Fleet      CoordinatorCapacityDimension `json:"fleet"`
	Org        CoordinatorOrgCapacity       `json:"org"`
	Admissible bool                         `json:"admissible"`
	BlockedBy  *string                      `json:"blockedBy"`
}

A nil extension preserves the response from coordinators with owner-only capacity.

type CoordinatorCapacityDimension added in v0.71.0

type CoordinatorCapacityDimension struct {
	ActiveLeases int  `json:"activeLeases"`
	Limit        *int `json:"limit"`
}

type CoordinatorCapacityResponse added in v0.49.0

type CoordinatorCapacityResponse struct {
	Owner          string `json:"owner"`
	ActiveLeases   int    `json:"activeLeases"`
	EffectiveLimit int    `json:"effectiveLimit"`
	ObservedAt     string `json:"observedAt"`
	*CoordinatorCapacityAdmission
}

type CoordinatorCatalogImageRetirement added in v0.44.0

type CoordinatorCatalogImageRetirement struct {
	ImageID string `json:"imageID"`
	Retired int    `json:"retired"`
}

type CoordinatorClient

type CoordinatorClient struct {
	BaseURL      string
	Token        string
	TokenCommand []string
	Access       AccessConfig
	Client       *http.Client

	ChildEnvDenylist []string
	// contains filtered or unexported fields
}

func NewCoordinatorClient added in v0.75.0

func NewCoordinatorClient(cfg Config) (*CoordinatorClient, error)

NewCoordinatorClient shares normal login, transport and redirect protections with agents. Agents require a coordinator; only internal routing uses an optional client.

func (*CoordinatorClient) ActiveAdminLeases added in v0.75.0

func (c *CoordinatorClient) ActiveAdminLeases(ctx context.Context) ([]CoordinatorLease, bool, error)

ActiveAdminLeases reads every active lease for pool orphan detection. The bool reports a possibly truncated response from a legacy coordinator.

func (*CoordinatorClient) AdminAWSIdentity added in v0.15.0

func (c *CoordinatorClient) AdminAWSIdentity(ctx context.Context, region string) (CoordinatorAWSIdentity, error)

func (*CoordinatorClient) AdminAllocateMacHost added in v0.15.0

func (c *CoordinatorClient) AdminAllocateMacHost(ctx context.Context, region, serverType, availabilityZone string) ([]CoordinatorMacHost, error)

func (*CoordinatorClient) AdminDeleteLease

func (c *CoordinatorClient) AdminDeleteLease(ctx context.Context, id string) (CoordinatorLease, error)

func (*CoordinatorClient) AdminDryRunAllocateMacHost added in v0.15.0

func (c *CoordinatorClient) AdminDryRunAllocateMacHost(ctx context.Context, region, serverType, availabilityZone string) ([]CoordinatorMacHostAllocationDryRun, error)

func (*CoordinatorClient) AdminExtendLifetime added in v0.75.0

func (c *CoordinatorClient) AdminExtendLifetime(ctx context.Context, id, owner, reason, expiresAt string) (CoordinatorLease, error)

func (*CoordinatorClient) AdminHostReservation added in v0.55.0

func (c *CoordinatorClient) AdminHostReservation(ctx context.Context, region, hostID string, clear, force bool) (json.RawMessage, error)

AdminHostReservation reads or clears coordinator host associations without changing provider resources.

func (*CoordinatorClient) AdminLeaseAudit added in v0.14.0

func (c *CoordinatorClient) AdminLeaseAudit(ctx context.Context, state, provider, owner, org string, limit int) ([]CoordinatorLeaseCloudAudit, error)

func (*CoordinatorClient) AdminLeases

func (c *CoordinatorClient) AdminLeases(ctx context.Context, state, owner, org string, limit int) ([]CoordinatorLease, error)

func (*CoordinatorClient) AdminLifetimeReadback added in v0.75.0

func (c *CoordinatorClient) AdminLifetimeReadback(ctx context.Context, id string) (CoordinatorLifetimeReadback, error)

func (*CoordinatorClient) AdminMacHostOfferings added in v0.15.0

func (c *CoordinatorClient) AdminMacHostOfferings(ctx context.Context, region, serverType string) ([]CoordinatorMacHostOffering, error)

func (*CoordinatorClient) AdminMacHostQuotas added in v0.15.0

func (c *CoordinatorClient) AdminMacHostQuotas(ctx context.Context, region, serverType string) ([]CoordinatorMacHostQuota, error)

func (*CoordinatorClient) AdminMacHosts added in v0.15.0

func (c *CoordinatorClient) AdminMacHosts(ctx context.Context, region, serverType, state string) ([]CoordinatorMacHost, error)

func (*CoordinatorClient) AdminReleaseLease

func (c *CoordinatorClient) AdminReleaseLease(ctx context.Context, id string, deleteServer bool) (CoordinatorLease, error)

func (*CoordinatorClient) AdminReleaseLeaseForProvider added in v0.43.0

func (c *CoordinatorClient) AdminReleaseLeaseForProvider(ctx context.Context, id string, deleteServer bool, expectedProvider string) (CoordinatorLease, error)

func (*CoordinatorClient) AdminReleaseMacHost added in v0.15.0

func (c *CoordinatorClient) AdminReleaseMacHost(ctx context.Context, region, hostID string) ([]string, error)

func (*CoordinatorClient) AdminRetainedReconcile added in v0.76.0

func (c *CoordinatorClient) AdminRetainedReconcile(ctx context.Context) (CoordinatorRetainedReconcile, error)

func (*CoordinatorClient) AgentRequest added in v0.75.0

func (c *CoordinatorClient) AgentRequest(ctx context.Context, method, path string, body, out any) error

func (*CoordinatorClient) AppendRunEvent added in v0.3.0

func (*CoordinatorClient) AppendRunTelemetry added in v0.6.0

func (c *CoordinatorClient) AppendRunTelemetry(ctx context.Context, runID string, telemetry *LeaseTelemetry) (CoordinatorRun, error)

func (*CoordinatorClient) BeginCheckpointUse added in v0.48.0

func (c *CoordinatorClient) BeginCheckpointUse(ctx context.Context, id string) (coordinatorCheckpointUseClaim, error)

func (*CoordinatorClient) BorrowReadyPoolLease added in v0.25.0

func (c *CoordinatorClient) BorrowReadyPoolLease(ctx context.Context, key string, input map[string]any) (CoordinatorReadyPoolResponse, error)

func (*CoordinatorClient) BorrowTypedReadyPoolLease added in v0.47.0

func (c *CoordinatorClient) BorrowTypedReadyPoolLease(ctx context.Context, key string, input map[string]any) (CoordinatorReadyPoolResponse, error)

func (*CoordinatorClient) CancelLeaseCreate added in v0.41.2

func (c *CoordinatorClient) CancelLeaseCreate(ctx context.Context, id, createAttemptID string) (CoordinatorCanceledCreateResult, error)

func (*CoordinatorClient) Capacity added in v0.49.0

func (*CoordinatorClient) CheckTypedReadyPoolSupport added in v0.47.0

func (c *CoordinatorClient) CheckTypedReadyPoolSupport(ctx context.Context, key string) error

func (*CoordinatorClient) Checkpoint added in v0.48.0

func (c *CoordinatorClient) Checkpoint(ctx context.Context, id string) (coordinatorCheckpoint, error)

func (*CoordinatorClient) CheckpointImage added in v0.48.0

func (c *CoordinatorClient) CheckpointImage(ctx context.Context, id string) (CoordinatorImage, error)

func (*CoordinatorClient) Checkpoints added in v0.48.0

func (c *CoordinatorClient) Checkpoints(ctx context.Context) ([]coordinatorCheckpoint, error)

func (*CoordinatorClient) CompleteLegacyRuntimeAdapterDelete added in v0.31.0

func (c *CoordinatorClient) CompleteLegacyRuntimeAdapterDelete(ctx context.Context, id, adapterID, workspaceID string) (CoordinatorLease, error)

func (*CoordinatorClient) CompleteLegacyRuntimeAdapterDeleteForProvider added in v0.43.0

func (c *CoordinatorClient) CompleteLegacyRuntimeAdapterDeleteForProvider(ctx context.Context, id, expectedProvider, adapterID, workspaceID string) (CoordinatorLease, error)

func (*CoordinatorClient) CompleteRuntimeAdapterDelete added in v0.31.0

func (c *CoordinatorClient) CompleteRuntimeAdapterDelete(ctx context.Context, id, adapterID, workspaceID, registrationID string) (CoordinatorLease, error)

func (*CoordinatorClient) CompleteRuntimeAdapterDeleteForProvider added in v0.43.0

func (c *CoordinatorClient) CompleteRuntimeAdapterDeleteForProvider(ctx context.Context, id, expectedProvider, adapterID, workspaceID, registrationID string) (CoordinatorLease, error)

func (*CoordinatorClient) CreateAdapterTicket added in v0.31.0

func (c *CoordinatorClient) CreateAdapterTicket(ctx context.Context, adapterID string, desktopTimeout time.Duration) (coordinatorAdapterTicket, error)

func (*CoordinatorClient) CreateArtifactUploads added in v0.8.0

func (*CoordinatorClient) CreateCheckpoint added in v0.48.0

func (c *CoordinatorClient) CreateCheckpoint(ctx context.Context, record checkpointRecord, name, strategy string, noReboot bool, retention coordinatorCheckpointRetention) (coordinatorCheckpoint, CoordinatorImage, error)

func (*CoordinatorClient) CreateCodeTicket added in v0.6.0

func (c *CoordinatorClient) CreateCodeTicket(ctx context.Context, leaseID string) (coordinatorCodeTicket, error)

func (*CoordinatorClient) CreateEgressTicket added in v0.7.0

func (c *CoordinatorClient) CreateEgressTicket(ctx context.Context, leaseID, role, sessionID, profile string, allow []string) (CoordinatorEgressTicket, error)

func (*CoordinatorClient) CreateImage added in v0.3.0

func (c *CoordinatorClient) CreateImage(ctx context.Context, leaseID, name string, noReboot bool, strategies ...string) (CoordinatorImage, error)

func (*CoordinatorClient) CreateLease

func (c *CoordinatorClient) CreateLease(ctx context.Context, cfg Config, publicKey string, keep bool, leaseID, slug string) (CoordinatorLease, error)

func (*CoordinatorClient) CreateLeaseWithAttempt added in v0.41.2

func (c *CoordinatorClient) CreateLeaseWithAttempt(ctx context.Context, cfg Config, publicKey string, keep bool, leaseID, slug, createAttemptID string) (CoordinatorLease, error)

func (*CoordinatorClient) CreateRun

func (c *CoordinatorClient) CreateRun(ctx context.Context, runID, leaseID string, cfg Config, command []string, label string) (CoordinatorRun, error)

func (*CoordinatorClient) CreateWebVNCCredentialHandoff added in v0.37.0

func (c *CoordinatorClient) CreateWebVNCCredentialHandoff(ctx context.Context, leaseID, username, password string) (CoordinatorWebVNCCredentialHandoff, error)

func (*CoordinatorClient) CreateWebVNCTicket added in v0.5.0

func (c *CoordinatorClient) CreateWebVNCTicket(ctx context.Context, leaseID string) (CoordinatorWebVNCTicket, error)

func (*CoordinatorClient) CreateWebVNCViewerBootstrap added in v0.39.0

func (c *CoordinatorClient) CreateWebVNCViewerBootstrap(ctx context.Context, leaseID, credentialHandoffTicket string, takeControl bool) (CoordinatorWebVNCViewerBootstrap, error)

func (*CoordinatorClient) CurrentLeases added in v0.71.0

func (c *CoordinatorClient) CurrentLeases(ctx context.Context, provider string) ([]CoordinatorLease, bool, error)

CurrentLeases negotiates bounded summary pages. Older coordinators keep their existing newest-first list contract; report its actual 500-row server cap.

func (*CoordinatorClient) DeleteCheckpoint added in v0.48.0

func (c *CoordinatorClient) DeleteCheckpoint(ctx context.Context, id string) error

func (*CoordinatorClient) DeleteImage added in v0.14.0

func (c *CoordinatorClient) DeleteImage(ctx context.Context, imageID string, refs ...CoordinatorImageRef) error

func (*CoordinatorClient) DeleteLeaseShare added in v0.7.0

func (c *CoordinatorClient) DeleteLeaseShare(ctx context.Context, id, user string, org bool) (CoordinatorShare, error)

func (*CoordinatorClient) EgressStatus added in v0.7.0

func (c *CoordinatorClient) EgressStatus(ctx context.Context, leaseID string) (CoordinatorEgressStatus, error)

func (*CoordinatorClient) EnsureLease added in v0.41.1

func (c *CoordinatorClient) EnsureLease(ctx context.Context, cfg Config, publicKey string, keep bool, leaseID, slug string) (CoordinatorLease, error)

func (*CoordinatorClient) ExtendLease added in v0.76.0

func (c *CoordinatorClient) ExtendLease(ctx context.Context, id, expectedProvider string, req LeaseExtendRequest) (CoordinatorLease, error)

func (*CoordinatorClient) FailRunAdmission added in v0.62.0

func (c *CoordinatorClient) FailRunAdmission(ctx context.Context, runID, leaseID string, cfg Config, command []string, label string, code int, message string) (CoordinatorRun, error)

FailRunAdmission finalizes only the authenticated original admission, never a workload.

func (*CoordinatorClient) FastSnapshotRestoreStatus added in v0.17.0

func (c *CoordinatorClient) FastSnapshotRestoreStatus(ctx context.Context, imageID string, refs ...CoordinatorImageRef) (CoordinatorImage, error)

func (*CoordinatorClient) FinishRun

func (c *CoordinatorClient) FinishRun(ctx context.Context, runID string, exitCode int, sync, command time.Duration, log string, truncated bool, results *TestResultSummary, telemetry *RunTelemetrySummary, classification FailureClassification, receipt *terminalRunReceipt) (CoordinatorRun, error)

func (*CoordinatorClient) GenerateReadyPoolIdentity added in v0.47.0

func (c *CoordinatorClient) GenerateReadyPoolIdentity(ctx context.Context, key string, input map[string]any) (CoordinatorReadyPoolIdentityV1, error)

func (*CoordinatorClient) GetLease

func (*CoordinatorClient) GetLeaseWithAuthoritativeProviderMetadata added in v0.38.1

func (c *CoordinatorClient) GetLeaseWithAuthoritativeProviderMetadata(ctx context.Context, id string) (CoordinatorLease, error)

func (*CoordinatorClient) Health

func (c *CoordinatorClient) Health(ctx context.Context) error

func (*CoordinatorClient) HeartbeatReadyPoolBorrow added in v0.41.1

func (c *CoordinatorClient) HeartbeatReadyPoolBorrow(ctx context.Context, key, leaseID, borrowToken string) (CoordinatorReadyPoolResponse, error)

func (*CoordinatorClient) HeartbeatTypedReadyPoolBorrow added in v0.47.0

func (c *CoordinatorClient) HeartbeatTypedReadyPoolBorrow(ctx context.Context, key, leaseID, borrowToken string) (CoordinatorReadyPoolResponse, error)

func (*CoordinatorClient) Image added in v0.3.0

func (*CoordinatorClient) LeaseShare added in v0.7.0

func (c *CoordinatorClient) LeaseShare(ctx context.Context, id string) (CoordinatorShare, error)

func (*CoordinatorClient) Leases added in v0.8.0

func (c *CoordinatorClient) Leases(ctx context.Context, state string, limit int) ([]CoordinatorLease, error)

func (*CoordinatorClient) MarketplaceQuote added in v0.34.0

func (*CoordinatorClient) MarketplaceStatus added in v0.34.0

func (*CoordinatorClient) PollGitHubLogin added in v0.2.0

func (c *CoordinatorClient) PollGitHubLogin(ctx context.Context, loginID, pollSecret, browserConfirmation string) (CoordinatorGitHubLoginPoll, error)

func (*CoordinatorClient) Pool

func (*CoordinatorClient) PromoteImage added in v0.3.0

func (c *CoordinatorClient) PromoteImage(ctx context.Context, imageID string, refs ...CoordinatorImageRef) (CoordinatorImage, error)

func (*CoordinatorClient) PromoteImageCAS added in v0.51.0

func (c *CoordinatorClient) PromoteImageCAS(ctx context.Context, imageID string, expected CoordinatorImageDefaultState, clear, retireExpectedCatalog bool, restorePrevious *CoordinatorImageDefaultState, refs ...CoordinatorImageRef) (CoordinatorImagePromotionResult, error)

func (*CoordinatorClient) ProviderReadiness added in v0.10.0

func (c *CoordinatorClient) ProviderReadiness(ctx context.Context, cfg Config) (CoordinatorProviderReadiness, error)

func (*CoordinatorClient) ReadyPool added in v0.25.0

func (*CoordinatorClient) ReadyPools added in v0.25.0

func (*CoordinatorClient) ReconcileReadyPool added in v0.41.1

func (c *CoordinatorClient) ReconcileReadyPool(ctx context.Context, key string, input map[string]any) (CoordinatorReadyPoolReconcileResponse, error)

func (*CoordinatorClient) ReconcileTypedReadyPool added in v0.47.0

func (c *CoordinatorClient) ReconcileTypedReadyPool(ctx context.Context, key string, input map[string]any) (CoordinatorReadyPoolReconcileResponse, error)

func (*CoordinatorClient) RegisterLease added in v0.29.0

func (*CoordinatorClient) RegisterReadyPoolLease added in v0.25.0

func (c *CoordinatorClient) RegisterReadyPoolLease(ctx context.Context, key string, input map[string]any) (CoordinatorReadyPoolResponse, error)

func (*CoordinatorClient) RegisterTypedReadyPoolLease added in v0.47.0

func (c *CoordinatorClient) RegisterTypedReadyPoolLease(ctx context.Context, key string, input map[string]any) (CoordinatorReadyPoolResponse, error)

func (*CoordinatorClient) ReleaseLease

func (c *CoordinatorClient) ReleaseLease(ctx context.Context, id string, deleteServer bool) (CoordinatorLease, error)

func (*CoordinatorClient) ReleaseLeaseForProvider added in v0.43.0

func (c *CoordinatorClient) ReleaseLeaseForProvider(ctx context.Context, id string, deleteServer bool, expectedProvider string) (CoordinatorLease, error)

func (*CoordinatorClient) ReleaseReadyPoolFillClaim added in v0.41.1

func (c *CoordinatorClient) ReleaseReadyPoolFillClaim(ctx context.Context, key, claimToken string) error

func (*CoordinatorClient) ReleaseTypedReadyPoolFillClaim added in v0.47.0

func (c *CoordinatorClient) ReleaseTypedReadyPoolFillClaim(ctx context.Context, key, claimToken string) error

func (*CoordinatorClient) ResetWebVNC added in v0.7.0

func (c *CoordinatorClient) ResetWebVNC(ctx context.Context, leaseID string) (CoordinatorWebVNCReset, error)

func (*CoordinatorClient) RetireCatalogImage added in v0.44.0

func (c *CoordinatorClient) RetireCatalogImage(ctx context.Context, imageID string, refs ...CoordinatorImageRef) (CoordinatorCatalogImageRetirement, error)

func (*CoordinatorClient) RetirePromotedImage added in v0.48.0

func (c *CoordinatorClient) RetirePromotedImage(ctx context.Context, imageID string, refs ...CoordinatorImageRef) (CoordinatorCatalogImageRetirement, error)

func (*CoordinatorClient) ReturnReadyPoolLease added in v0.25.0

func (c *CoordinatorClient) ReturnReadyPoolLease(ctx context.Context, key, leaseID, result, reason, borrowToken string) (CoordinatorReadyPoolResponse, error)

func (*CoordinatorClient) ReturnTypedReadyPoolLease added in v0.47.0

func (c *CoordinatorClient) ReturnTypedReadyPoolLease(ctx context.Context, key string, input map[string]any) (CoordinatorReadyPoolResponse, error)

func (*CoordinatorClient) Run

func (*CoordinatorClient) RunEvents added in v0.3.0

func (c *CoordinatorClient) RunEvents(ctx context.Context, runID string, after, limit int) ([]CoordinatorRunEvent, error)

func (*CoordinatorClient) RunLogs

func (c *CoordinatorClient) RunLogs(ctx context.Context, runID string) (string, error)

func (*CoordinatorClient) RunReceipt added in v0.47.0

func (c *CoordinatorClient) RunReceipt(ctx context.Context, runID string) (terminalRunReceipt, error)

RunReceipt participates in terminal-commit verification; its owner controls the deadline and replay policy, even though the transport is a GET.

func (*CoordinatorClient) Runs

func (c *CoordinatorClient) Runs(ctx context.Context, leaseID, owner, org, state string, limit int) ([]CoordinatorRun, error)

func (*CoordinatorClient) StartGitHubLogin added in v0.2.0

func (c *CoordinatorClient) StartGitHubLogin(ctx context.Context, pollSecretHash, provider, loopbackRedirectURI string) (CoordinatorGitHubLoginStart, error)

func (*CoordinatorClient) SyncExternalRunners added in v0.6.0

func (c *CoordinatorClient) SyncExternalRunners(ctx context.Context, provider string, runners []CoordinatorExternalRunner, inventoryScope string) (CoordinatorExternalRunnerSyncResponse, error)

func (*CoordinatorClient) TouchLease

func (c *CoordinatorClient) TouchLease(ctx context.Context, id string) (CoordinatorLease, error)

func (*CoordinatorClient) TouchLeaseForProvider added in v0.43.0

func (c *CoordinatorClient) TouchLeaseForProvider(ctx context.Context, id, expectedProvider string) (CoordinatorLease, error)

func (*CoordinatorClient) TouchLeaseWithTelemetry added in v0.6.0

func (c *CoordinatorClient) TouchLeaseWithTelemetry(ctx context.Context, id string, telemetry *LeaseTelemetry) (CoordinatorLease, error)

func (*CoordinatorClient) TouchLeaseWithTelemetryForProvider added in v0.43.0

func (c *CoordinatorClient) TouchLeaseWithTelemetryForProvider(ctx context.Context, id, expectedProvider string, telemetry *LeaseTelemetry) (CoordinatorLease, error)

func (*CoordinatorClient) TypedReadyPool added in v0.47.0

func (c *CoordinatorClient) TypedReadyPool(ctx context.Context, key string) ([]CoordinatorReadyPoolEntry, error)

func (*CoordinatorClient) UpdateCheckpointRetention added in v0.48.0

func (c *CoordinatorClient) UpdateCheckpointRetention(ctx context.Context, id string, retention coordinatorCheckpointRetention) (coordinatorCheckpoint, error)

func (*CoordinatorClient) UpdateLeaseIdleTimeout

func (c *CoordinatorClient) UpdateLeaseIdleTimeout(ctx context.Context, id string, idleTimeout time.Duration) (CoordinatorLease, error)

func (*CoordinatorClient) UpdateLeaseIdleTimeoutForProvider added in v0.43.0

func (c *CoordinatorClient) UpdateLeaseIdleTimeoutForProvider(ctx context.Context, id, expectedProvider string, idleTimeout time.Duration) (CoordinatorLease, error)

func (*CoordinatorClient) UpdateLeaseIdleTimeoutWithTelemetry added in v0.6.0

func (c *CoordinatorClient) UpdateLeaseIdleTimeoutWithTelemetry(ctx context.Context, id string, idleTimeout time.Duration, telemetry *LeaseTelemetry) (CoordinatorLease, error)

func (*CoordinatorClient) UpdateLeaseIdleTimeoutWithTelemetryForProvider added in v0.43.0

func (c *CoordinatorClient) UpdateLeaseIdleTimeoutWithTelemetryForProvider(ctx context.Context, id, expectedProvider string, idleTimeout time.Duration, telemetry *LeaseTelemetry) (CoordinatorLease, error)

func (*CoordinatorClient) UpdateLeaseShare added in v0.7.0

func (c *CoordinatorClient) UpdateLeaseShare(ctx context.Context, id string, share CoordinatorShare) (CoordinatorShare, error)

func (*CoordinatorClient) UpdateLeaseTailscale added in v0.5.0

func (c *CoordinatorClient) UpdateLeaseTailscale(ctx context.Context, id string, meta TailscaleMetadata) (CoordinatorLease, error)

func (*CoordinatorClient) UpdateLeaseTailscaleForProvider added in v0.43.0

func (c *CoordinatorClient) UpdateLeaseTailscaleForProvider(ctx context.Context, id, expectedProvider string, meta TailscaleMetadata) (CoordinatorLease, error)

func (*CoordinatorClient) Usage

func (c *CoordinatorClient) Usage(ctx context.Context, scope, owner, org, month string) (CoordinatorUsageResponse, error)

func (*CoordinatorClient) WebVNCStatus added in v0.7.0

func (c *CoordinatorClient) WebVNCStatus(ctx context.Context, leaseID string) (CoordinatorWebVNCStatus, error)

func (*CoordinatorClient) Whoami

type CoordinatorCostLimits

type CoordinatorCostLimits struct {
	MaxActiveLeases                 int      `json:"maxActiveLeases"`
	MaxActiveLeasesPerOwner         int      `json:"maxActiveLeasesPerOwner"`
	MaxActiveLeasesPerOrg           int      `json:"maxActiveLeasesPerOrg"`
	CapacityAdminOwners             []string `json:"capacityAdminOwners,omitempty"`
	MaxActiveLeasesPerCapacityAdmin int      `json:"maxActiveLeasesPerCapacityAdmin,omitempty"`
	MaxMonthlyUSD                   float64  `json:"maxMonthlyUSD"`
	MaxMonthlyUSDPerOwner           float64  `json:"maxMonthlyUSDPerOwner"`
	MaxMonthlyUSDPerOrg             float64  `json:"maxMonthlyUSDPerOrg"`
}

type CoordinatorCreateRetirement added in v0.81.0

type CoordinatorCreateRetirement struct {
	LeaseID      string `json:"leaseId"`
	Revision     string `json:"revision"`
	Binding      string `json:"binding"`
	AttemptState string `json:"attemptState"`
	Owner        string `json:"owner,omitempty"`
	Org          string `json:"org,omitempty"`
	CreatedAt    string `json:"createdAt,omitempty"`
	Fenced       bool   `json:"fenced"`
	Cleanup      string `json:"cleanup"`
}

type CoordinatorEgressStatus added in v0.7.0

type CoordinatorEgressStatus struct {
	LeaseID         string   `json:"leaseID"`
	Slug            string   `json:"slug,omitempty"`
	Active          bool     `json:"active"`
	SessionID       string   `json:"sessionID,omitempty"`
	Profile         string   `json:"profile,omitempty"`
	Allow           []string `json:"allow,omitempty"`
	HostConnected   *bool    `json:"hostConnected,omitempty"`
	ClientConnected *bool    `json:"clientConnected,omitempty"`
	CreatedAt       string   `json:"createdAt,omitempty"`
	UpdatedAt       string   `json:"updatedAt,omitempty"`
}

type CoordinatorEgressTicket added in v0.7.0

type CoordinatorEgressTicket struct {
	Ticket    string `json:"ticket"`
	LeaseID   string `json:"leaseID"`
	Role      string `json:"role"`
	SessionID string `json:"sessionID"`
	ExpiresAt string `json:"expiresAt"`
}

type CoordinatorExternalRunner added in v0.6.0

type CoordinatorExternalRunner struct {
	ID                   string `json:"id"`
	Provider             string `json:"provider,omitempty"`
	Status               string `json:"status,omitempty"`
	Repo                 string `json:"repo,omitempty"`
	Workflow             string `json:"workflow,omitempty"`
	Job                  string `json:"job,omitempty"`
	Ref                  string `json:"ref,omitempty"`
	CreatedAt            string `json:"createdAt,omitempty"`
	Created              string `json:"created,omitempty"`
	ActionsRepo          string `json:"actionsRepo,omitempty"`
	ActionsRunID         string `json:"actionsRunID,omitempty"`
	ActionsRunURL        string `json:"actionsRunURL,omitempty"`
	ActionsRunStatus     string `json:"actionsRunStatus,omitempty"`
	ActionsRunConclusion string `json:"actionsRunConclusion,omitempty"`
	ActionsWorkflowName  string `json:"actionsWorkflowName,omitempty"`
	ActionsWorkflowURL   string `json:"actionsWorkflowURL,omitempty"`
}

type CoordinatorExternalRunnerSyncResponse added in v0.6.0

type CoordinatorExternalRunnerSyncResponse struct {
	Runners []CoordinatorExternalRunner `json:"runners"`
	Stale   []CoordinatorExternalRunner `json:"stale"`
}

type CoordinatorFastSnapshotRestore added in v0.17.0

type CoordinatorFastSnapshotRestore struct {
	SnapshotID            string `json:"snapshotID"`
	AvailabilityZone      string `json:"availabilityZone"`
	State                 string `json:"state,omitempty"`
	StateTransitionReason string `json:"stateTransitionReason,omitempty"`
}

type CoordinatorGitHubLoginPoll added in v0.2.0

type CoordinatorGitHubLoginPoll struct {
	Status         string `json:"status"`
	Token          string `json:"token,omitempty"`
	Owner          string `json:"owner,omitempty"`
	Org            string `json:"org,omitempty"`
	Login          string `json:"login,omitempty"`
	Provider       string `json:"provider,omitempty"`
	TokenExpiresAt string `json:"tokenExpiresAt,omitempty"`
	Error          string `json:"error,omitempty"`
}

type CoordinatorGitHubLoginStart added in v0.2.0

type CoordinatorGitHubLoginStart struct {
	LoginID   string `json:"loginID"`
	URL       string `json:"url"`
	ExpiresAt string `json:"expiresAt"`
}

type CoordinatorHTTPError added in v0.9.0

type CoordinatorHTTPError struct {
	Method     string
	Path       string
	StatusCode int
	Message    string
	// contains filtered or unexported fields
}

func (CoordinatorHTTPError) Error added in v0.9.0

func (e CoordinatorHTTPError) Error() string

type CoordinatorID

type CoordinatorID string

func (*CoordinatorID) UnmarshalJSON

func (id *CoordinatorID) UnmarshalJSON(data []byte) error

type CoordinatorImage added in v0.3.0

type CoordinatorImage struct {
	ID                   string                           `json:"id"`
	Name                 string                           `json:"name"`
	State                string                           `json:"state"`
	Provider             string                           `json:"provider,omitempty"`
	Kind                 string                           `json:"kind,omitempty"`
	Region               string                           `json:"region,omitempty"`
	AccountID            string                           `json:"accountId,omitempty"`
	Project              string                           `json:"project,omitempty"`
	ResourceID           string                           `json:"resourceID,omitempty"`
	ResourceUniqueID     string                           `json:"resourceUniqueId,omitempty"`
	SnapshotIDs          []string                         `json:"snapshotIds,omitempty"`
	Snapshots            []string                         `json:"snapshots,omitempty"`
	Direct               bool                             `json:"direct,omitempty"`
	Target               string                           `json:"target,omitempty"`
	OSImage              string                           `json:"os,omitempty"`
	WindowsMode          string                           `json:"windowsMode,omitempty"`
	ServerType           string                           `json:"serverType,omitempty"`
	Architecture         string                           `json:"architecture,omitempty"`
	PromotedAt           string                           `json:"promotedAt,omitempty"`
	Revision             string                           `json:"revision,omitempty"`
	FastSnapshotRestores []CoordinatorFastSnapshotRestore `json:"fastSnapshotRestores,omitempty"`
	Capabilities         *imageCapabilities               `json:"capabilities,omitempty"`
	CatalogOnly          bool                             `json:"catalogOnly,omitempty"`
	VariantSelectors     *imageVariantSelectors           `json:"variantSelectors,omitempty"`
	// contains filtered or unexported fields
}

type CoordinatorImageDefaultAliasState added in v0.51.0

type CoordinatorImageDefaultAliasState struct {
	Alias string          `json:"alias"`
	State string          `json:"state"`
	Image json.RawMessage `json:"image,omitempty"`
}

type CoordinatorImageDefaultState added in v0.51.0

type CoordinatorImageDefaultState struct {
	State    string                              `json:"state"`
	ImageID  string                              `json:"imageId,omitempty"`
	Revision string                              `json:"revision,omitempty"`
	Aliases  []CoordinatorImageDefaultAliasState `json:"aliases,omitempty"`
}

type CoordinatorImagePromotionResult added in v0.51.0

type CoordinatorImagePromotionResult struct {
	Image    *CoordinatorImage            `json:"image,omitempty"`
	Previous CoordinatorImageDefaultState `json:"previous"`
}

type CoordinatorImageRef added in v0.14.0

type CoordinatorImageRef struct {
	Provider               string
	Region                 string
	Project                string
	Kind                   string
	Target                 string
	OSImage                string
	ServerType             string
	Architecture           string
	FastSnapshotRestore    bool
	FastSnapshotRestoreAZs []string
	Capabilities           imageCapabilities
	CatalogOnly            bool
	VariantSelectors       imageVariantSelectors
}

type CoordinatorLease

type CoordinatorLease struct {
	LeasePolicy                  *CoordinatorLeasePolicy        `json:"leasePolicy,omitempty"`
	PolicyNotice                 string                         `json:"policyNotice,omitempty"`
	ImageEvidence                *ImageEvidence                 `json:"imageEvidence,omitempty"`
	LifetimePolicy               *LeaseLifetimePolicy           `json:"lifetimePolicy,omitempty"`
	CreationEvents               []CreationEvent                `json:"creationEvents,omitempty"`
	ID                           string                         `json:"id"`
	Slug                         string                         `json:"slug,omitempty"`
	Provider                     string                         `json:"provider"`
	Lifecycle                    string                         `json:"lifecycle,omitempty"`
	RuntimeAdapterID             string                         `json:"runtimeAdapterID,omitempty"`
	RuntimeWorkspaceID           string                         `json:"runtimeAdapterWorkspaceID,omitempty"`
	RuntimeRegistrationID        string                         `json:"runtimeAdapterRegistrationID,omitempty"`
	TargetOS                     string                         `json:"target,omitempty"`
	Architecture                 string                         `json:"architecture,omitempty"`
	WindowsMode                  string                         `json:"windowsMode,omitempty"`
	Desktop                      bool                           `json:"desktop,omitempty"`
	DesktopEnv                   string                         `json:"desktopEnv,omitempty"`
	Browser                      bool                           `json:"browser,omitempty"`
	Code                         bool                           `json:"code,omitempty"`
	Network                      *LeaseNetworkDiagnostics       `json:"network,omitempty"`
	Tailscale                    *TailscaleMetadata             `json:"tailscale,omitempty"`
	Region                       string                         `json:"region,omitempty"`
	ProviderProject              string                         `json:"providerProject,omitempty"`
	Owner                        string                         `json:"owner"`
	Org                          string                         `json:"org"`
	Share                        *CoordinatorShare              `json:"share,omitempty"`
	Profile                      string                         `json:"profile"`
	Class                        string                         `json:"class"`
	Pond                         string                         `json:"pond,omitempty"`
	ExposedPorts                 []string                       `json:"exposedPorts,omitempty"`
	ServerType                   string                         `json:"serverType"`
	RequestedServerType          string                         `json:"requestedServerType,omitempty"`
	HostID                       string                         `json:"hostId,omitempty"`
	HostIDCompat                 string                         `json:"hostID,omitempty"`
	Market                       string                         `json:"market,omitempty"`
	ProvisioningAttempts         []ProvisioningAttempt          `json:"provisioningAttempts,omitempty"`
	Image                        *CoordinatorLeaseImage         `json:"image,omitempty"`
	ProvisioningTiming           *CoordinatorProvisioningTiming `json:"provisioningTiming,omitempty"`
	CapacityHints                []CapacityHint                 `json:"capacityHints,omitempty"`
	ServerID                     int64                          `json:"serverID"`
	CloudID                      string                         `json:"cloudID"`
	ServerName                   string                         `json:"serverName"`
	Host                         string                         `json:"host"`
	SSHUser                      string                         `json:"sshUser"`
	SSHPort                      string                         `json:"sshPort"`
	SSHJump                      *SSHJump                       `json:"sshJump,omitempty"`
	SSHHostKey                   string                         `json:"sshHostKey,omitempty"`
	ProviderAccessExpiresAt      string                         `json:"providerAccessExpiresAt,omitempty"`
	SSHFallbackPorts             []string                       `json:"sshFallbackPorts,omitempty"`
	WorkRoot                     string                         `json:"workRoot"`
	Keep                         bool                           `json:"keep"`
	State                        string                         `json:"state"`
	TTLSeconds                   int                            `json:"ttlSeconds,omitempty"`
	IdleTimeoutSeconds           int                            `json:"idleTimeoutSeconds,omitempty"`
	CreatedAt                    string                         `json:"createdAt,omitempty"`
	UpdatedAt                    string                         `json:"updatedAt,omitempty"`
	LastTouchedAt                string                         `json:"lastTouchedAt,omitempty"`
	ExpiresAt                    string                         `json:"expiresAt"`
	Telemetry                    *LeaseTelemetry                `json:"telemetry,omitempty"`
	TelemetryHistory             []*LeaseTelemetry              `json:"telemetryHistory,omitempty"`
	CleanupAttempts              int                            `json:"cleanupAttempts,omitempty"`
	CleanupStatus                string                         `json:"cleanupStatus,omitempty"`
	ProviderCleanup              *ProviderCleanupEvidence       `json:"providerCleanup,omitempty"`
	CleanupStartedAt             string                         `json:"cleanupStartedAt,omitempty"`
	CleanupClaimExpiresAt        string                         `json:"cleanupClaimExpiresAt,omitempty"`
	CleanupFailedAt              string                         `json:"cleanupFailedAt,omitempty"`
	CleanupCompletedAt           string                         `json:"cleanupCompletedAt,omitempty"`
	CleanupError                 string                         `json:"cleanupError,omitempty"`
	CleanupRetryAt               string                         `json:"cleanupRetryAt,omitempty"`
	ProviderKeyCleanupPending    bool                           `json:"providerKeyCleanupPending,omitempty"`
	ProviderKeyCleanupID         string                         `json:"providerKeyCleanupID,omitempty"`
	ProvisioningRequestStartedAt string                         `json:"provisioningRequestStartedAt,omitempty"`
	ReleaseDeletesServer         *bool                          `json:"releaseDeletesServer,omitempty"`
	FailureError                 string                         `json:"failureError,omitempty"`
	ProvisioningPhase            string                         `json:"provisioningPhase,omitempty"`
	ProvisioningResourceMayExist *bool                          `json:"provisioningResourceMayExist,omitempty"`
	ProvisioningFailureRetryable *bool                          `json:"provisioningFailureRetryable,omitempty"`
	ProviderMetadata             map[string]any                 `json:"providerMetadata,omitempty"`
}

type CoordinatorLeaseCloudAudit added in v0.14.0

type CoordinatorLeaseCloudAudit struct {
	LeaseID         string `json:"leaseID"`
	Slug            string `json:"slug,omitempty"`
	Provider        string `json:"provider"`
	State           string `json:"state"`
	TargetOS        string `json:"target,omitempty"`
	Owner           string `json:"owner"`
	Org             string `json:"org"`
	Region          string `json:"region,omitempty"`
	CloudID         string `json:"cloudID"`
	Host            string `json:"host,omitempty"`
	ServerType      string `json:"serverType,omitempty"`
	ExpiresAt       string `json:"expiresAt,omitempty"`
	CleanupAttempts int    `json:"cleanupAttempts,omitempty"`
	CleanupError    string `json:"cleanupError,omitempty"`
	CleanupRetryAt  string `json:"cleanupRetryAt,omitempty"`
	CloudStatus     string `json:"cloudStatus"`
	CloudState      string `json:"cloudState,omitempty"`
	CloudHost       string `json:"cloudHost,omitempty"`
	CloudServerType string `json:"cloudServerType,omitempty"`
	Message         string `json:"message,omitempty"`
}

type CoordinatorLeaseImage added in v0.41.1

type CoordinatorLeaseImage struct {
	ID         string `json:"id"`
	Source     string `json:"source"`
	Provider   string `json:"provider,omitempty"`
	Kind       string `json:"kind,omitempty"`
	Region     string `json:"region,omitempty"`
	SourceID   string `json:"sourceID,omitempty"`
	PromotedAt string `json:"promotedAt,omitempty"`
	Revision   string `json:"revision,omitempty"`
}

type CoordinatorLeasePolicy added in v0.76.0

type CoordinatorLeasePolicy struct {
	DefaultTTLSeconds         int    `json:"defaultTTLSeconds"`
	DefaultIdleTimeoutSeconds int    `json:"defaultIdleTimeoutSeconds"`
	MaxTTLSeconds             int    `json:"maxTTLSeconds"`
	Extension                 string `json:"extension"`
	AutoExtend                string `json:"autoExtend"`
	RuntimeExtension          bool   `json:"runtimeExtension"`
}

type CoordinatorLeaseRegistration added in v0.29.0

type CoordinatorLeaseRegistration struct {
	Slug                  string   `json:"slug,omitempty"`
	Provider              string   `json:"provider"`
	TargetOS              string   `json:"target"`
	WindowsMode           string   `json:"windowsMode,omitempty"`
	Desktop               bool     `json:"desktop,omitempty"`
	DesktopEnv            string   `json:"desktopEnv,omitempty"`
	Browser               bool     `json:"browser,omitempty"`
	Code                  bool     `json:"code,omitempty"`
	CloudID               string   `json:"cloudID,omitempty"`
	ServerID              int64    `json:"serverID,omitempty"`
	ServerName            string   `json:"serverName,omitempty"`
	ServerType            string   `json:"serverType,omitempty"`
	Host                  string   `json:"host"`
	SSHUser               string   `json:"sshUser,omitempty"`
	SSHPort               string   `json:"sshPort,omitempty"`
	SSHFallbackPorts      []string `json:"sshFallbackPorts,omitempty"`
	WorkRoot              string   `json:"workRoot,omitempty"`
	Profile               string   `json:"profile,omitempty"`
	Class                 string   `json:"class,omitempty"`
	Pond                  string   `json:"pond,omitempty"`
	ExposedPorts          []string `json:"exposedPorts,omitempty"`
	TTLSeconds            int      `json:"ttlSeconds,omitempty"`
	IdleTimeoutSeconds    int      `json:"idleTimeoutSeconds,omitempty"`
	RuntimeAdapterID      string   `json:"runtimeAdapterID,omitempty"`
	RuntimeWorkspaceID    string   `json:"runtimeAdapterWorkspaceID,omitempty"`
	RuntimeRegistrationID string   `json:"runtimeAdapterRegistrationID,omitempty"`
}

type CoordinatorLifetimeReadback added in v0.75.0

type CoordinatorLifetimeReadback struct {
	LeaseID              string                           `json:"leaseId"`
	Provider             string                           `json:"provider"`
	Region               string                           `json:"region"`
	InstanceID           string                           `json:"instanceId"`
	InstanceState        string                           `json:"instanceState"`
	RootVolumeID         string                           `json:"rootVolumeId"`
	RootVolumePresent    *bool                            `json:"rootVolumePresent,omitempty"`
	RootIdentityEvidence *CoordinatorRootIdentityEvidence `json:"rootIdentityEvidence,omitempty"`
	ObservedAt           string                           `json:"observedAt"`
}

type CoordinatorMacHost added in v0.15.0

type CoordinatorMacHost struct {
	ID               string            `json:"id"`
	State            string            `json:"state"`
	Region           string            `json:"region"`
	AvailabilityZone string            `json:"availabilityZone"`
	InstanceType     string            `json:"instanceType"`
	AutoPlacement    string            `json:"autoPlacement"`
	AllocationTime   string            `json:"allocationTime,omitempty"`
	ReleaseTime      string            `json:"releaseTime,omitempty"`
	Tags             map[string]string `json:"tags,omitempty"`
}

type CoordinatorMacHostAllocationDryRun added in v0.15.0

type CoordinatorMacHostAllocationDryRun struct {
	Region           string `json:"region"`
	AvailabilityZone string `json:"availabilityZone"`
	InstanceType     string `json:"instanceType"`
	OK               bool   `json:"ok"`
	Message          string `json:"message"`
}

type CoordinatorMacHostOffering added in v0.15.0

type CoordinatorMacHostOffering struct {
	Region           string `json:"region"`
	AvailabilityZone string `json:"availabilityZone"`
	InstanceType     string `json:"instanceType"`
}

type CoordinatorMacHostQuota added in v0.15.0

type CoordinatorMacHostQuota struct {
	ServiceCode string  `json:"serviceCode,omitempty"`
	QuotaCode   string  `json:"quotaCode"`
	QuotaName   string  `json:"quotaName"`
	Value       float64 `json:"value"`
	Adjustable  bool    `json:"adjustable,omitempty"`
	GlobalQuota bool    `json:"globalQuota,omitempty"`
	Unit        string  `json:"unit,omitempty"`
}

type CoordinatorMachine

type CoordinatorMachine struct {
	ID         CoordinatorID     `json:"id"`
	Provider   string            `json:"provider"`
	CloudID    string            `json:"cloudID"`
	Name       string            `json:"name"`
	Status     string            `json:"status"`
	ServerType string            `json:"serverType"`
	Host       string            `json:"host"`
	Labels     map[string]string `json:"labels"`
}

type CoordinatorMarketplaceFeatures added in v0.34.0

type CoordinatorMarketplaceFeatures struct {
	Quotes           bool `json:"quotes"`
	Bidding          bool `json:"bidding"`
	Payments         bool `json:"payments"`
	CreditLedger     bool `json:"creditLedger"`
	LeaseEnforcement bool `json:"leaseEnforcement"`
}

type CoordinatorMarketplaceQuote added in v0.34.0

type CoordinatorMarketplaceQuote struct {
	ID          string                                 `json:"id"`
	Mode        string                                 `json:"mode"`
	Currency    string                                 `json:"currency"`
	CreditUnit  string                                 `json:"creditUnit"`
	Strategy    string                                 `json:"strategy"`
	TTLSeconds  int                                    `json:"ttlSeconds"`
	Candidates  []CoordinatorMarketplaceQuoteCandidate `json:"candidates"`
	Selected    *CoordinatorMarketplaceQuoteCandidate  `json:"selected,omitempty"`
	RoutingPlan []CoordinatorMarketplaceRouteTier      `json:"routingPlan,omitempty"`
	Warnings    []string                               `json:"warnings"`
}

type CoordinatorMarketplaceQuoteCandidate added in v0.34.0

type CoordinatorMarketplaceQuoteCandidate struct {
	Provider          string  `json:"provider"`
	Target            string  `json:"target"`
	Class             string  `json:"class"`
	ServerType        string  `json:"serverType"`
	Priority          int     `json:"priority"`
	Weight            float64 `json:"weight"`
	TTLSeconds        int     `json:"ttlSeconds"`
	CostHourlyUSD     float64 `json:"costHourlyUSD"`
	RetailHourlyUSD   float64 `json:"retailHourlyUSD"`
	EstimatedCostUSD  float64 `json:"estimatedCostUSD"`
	Credits           float64 `json:"credits"`
	MarginUSD         float64 `json:"marginUSD"`
	RouteKey          string  `json:"routeKey"`
	Available         bool    `json:"available"`
	UnavailableReason string  `json:"unavailableReason,omitempty"`
	RouteShare        float64 `json:"routeShare,omitempty"`
}

type CoordinatorMarketplaceQuoteRequest added in v0.34.0

type CoordinatorMarketplaceQuoteRequest struct {
	Provider   string   `json:"provider,omitempty"`
	Providers  []string `json:"providers,omitempty"`
	Class      string   `json:"class,omitempty"`
	ServerType string   `json:"serverType,omitempty"`
	Target     string   `json:"target,omitempty"`
	TTLSeconds int      `json:"ttlSeconds,omitempty"`
	MaxCredits float64  `json:"maxCredits,omitempty"`
	Strategy   string   `json:"strategy,omitempty"`
}

type CoordinatorMarketplaceQuoteResponse added in v0.34.0

type CoordinatorMarketplaceQuoteResponse struct {
	Quote       CoordinatorMarketplaceQuote  `json:"quote"`
	Marketplace CoordinatorMarketplaceStatus `json:"marketplace"`
	Owner       string                       `json:"owner,omitempty"`
	Org         string                       `json:"org,omitempty"`
}

type CoordinatorMarketplaceRouteTier added in v0.34.0

type CoordinatorMarketplaceRouteTier struct {
	Priority int                                     `json:"priority"`
	Active   bool                                    `json:"active"`
	Members  []CoordinatorMarketplaceRouteTierMember `json:"members"`
}

type CoordinatorMarketplaceRouteTierMember added in v0.34.0

type CoordinatorMarketplaceRouteTierMember struct {
	Provider   string  `json:"provider"`
	RouteKey   string  `json:"routeKey"`
	Weight     float64 `json:"weight"`
	RouteShare float64 `json:"routeShare"`
}

type CoordinatorMarketplaceSettlement added in v0.34.0

type CoordinatorMarketplaceSettlement struct {
	PaymentProvider    string `json:"paymentProvider"`
	LedgerProvider     string `json:"ledgerProvider"`
	ProviderSettlement string `json:"providerSettlement"`
}

type CoordinatorMarketplaceStatus added in v0.34.0

type CoordinatorMarketplaceStatus struct {
	Enabled                 bool                             `json:"enabled"`
	Mode                    string                           `json:"mode"`
	Currency                string                           `json:"currency"`
	CreditUnit              string                           `json:"creditUnit"`
	RequireCreditsForLeases bool                             `json:"requireCreditsForLeases"`
	SupportedProviders      []string                         `json:"supportedProviders"`
	Features                CoordinatorMarketplaceFeatures   `json:"features"`
	Settlement              CoordinatorMarketplaceSettlement `json:"settlement"`
	DecisionsRequired       []string                         `json:"decisionsRequired"`
}

type CoordinatorMarketplaceStatusResponse added in v0.34.0

type CoordinatorMarketplaceStatusResponse struct {
	Marketplace CoordinatorMarketplaceStatus `json:"marketplace"`
	Owner       string                       `json:"owner,omitempty"`
	Org         string                       `json:"org,omitempty"`
}

type CoordinatorMode added in v0.6.0

type CoordinatorMode string
const (
	CoordinatorNever     CoordinatorMode = "never"
	CoordinatorSupported CoordinatorMode = "supported"
)

type CoordinatorOrgCapacity added in v0.71.0

type CoordinatorOrgCapacity struct {
	Key string `json:"key"`
	CoordinatorCapacityDimension
}

type CoordinatorPoolGrant added in v0.64.0

type CoordinatorPoolGrant struct {
	ID                      string `json:"id"`
	State                   string `json:"state"`
	LeaseID                 string `json:"leaseID"`
	ExpiresAt               string `json:"expiresAt"`
	AcknowledgementDeadline string `json:"acknowledgementDeadline"`
	Generation              int    `json:"generation"`
	Fingerprint             string `json:"fingerprint"`
}

type CoordinatorProviderReadiness added in v0.10.0

type CoordinatorProviderReadiness struct {
	Provider   string        `json:"provider"`
	Configured bool          `json:"configured"`
	Missing    []string      `json:"missing,omitempty"`
	Message    string        `json:"message,omitempty"`
	Checks     []DoctorCheck `json:"checks,omitempty"`
}

type CoordinatorProvisioningPhase added in v0.50.0

type CoordinatorProvisioningPhase struct {
	Name string `json:"name"`
	Ms   int64  `json:"ms"`
}

type CoordinatorProvisioningTiming added in v0.41.1

type CoordinatorProvisioningTiming struct {
	RequestMs      int64                          `json:"requestMs"`
	NetworkReadyMs int64                          `json:"networkReadyMs,omitempty"`
	BootstrapMs    int64                          `json:"bootstrapMs,omitempty"`
	TotalMs        int64                          `json:"totalMs"`
	Phases         []CoordinatorProvisioningPhase `json:"phases,omitempty"`
}

func (*CoordinatorProvisioningTiming) UnmarshalJSON added in v0.50.0

func (timing *CoordinatorProvisioningTiming) UnmarshalJSON(data []byte) error

type CoordinatorReadyPoolCapacityCounts added in v0.41.1

type CoordinatorReadyPoolCapacityCounts struct {
	Ready       int `json:"ready"`
	Busy        int `json:"busy"`
	Draining    int `json:"draining"`
	Quarantined int `json:"quarantined"`
	Stale       int `json:"stale"`
	InFlight    int `json:"inFlight"`
}

type CoordinatorReadyPoolCounters added in v0.41.1

type CoordinatorReadyPoolCounters struct {
	BorrowRequests      int    `json:"borrowRequests"`
	WarmHits            int    `json:"warmHits"`
	WarmMisses          int    `json:"warmMisses"`
	FillClaimsCreated   int    `json:"fillClaimsCreated"`
	FillClaimsCompleted int    `json:"fillClaimsCompleted"`
	BorrowHeartbeats    int    `json:"borrowHeartbeats"`
	Quarantined         int    `json:"quarantined"`
	StalePruned         int    `json:"stalePruned"`
	UpdatedAt           string `json:"updatedAt"`
}

type CoordinatorReadyPoolEntry added in v0.25.0

type CoordinatorReadyPoolEntry struct {
	BorrowHardDeadline string                          `json:"borrowHardDeadline,omitempty"`
	Key                string                          `json:"key"`
	LeaseID            string                          `json:"leaseID"`
	State              string                          `json:"state"`
	Owner              string                          `json:"owner"`
	Org                string                          `json:"org"`
	Repo               string                          `json:"repo,omitempty"`
	Ref                string                          `json:"ref,omitempty"`
	Commit             string                          `json:"commit,omitempty"`
	Fingerprint        string                          `json:"fingerprint,omitempty"`
	CompatibilityKey   string                          `json:"compatibilityKey,omitempty"`
	Identity           *CoordinatorReadyPoolIdentityV1 `json:"identity,omitempty"`
	Image              string                          `json:"image,omitempty"`
	Provider           string                          `json:"provider,omitempty"`
	TargetOS           string                          `json:"target,omitempty"`
	WindowsMode        string                          `json:"windowsMode,omitempty"`
	Class              string                          `json:"class,omitempty"`
	ServerType         string                          `json:"serverType,omitempty"`
	SSHHost            string                          `json:"sshHost,omitempty"`
	SSHUser            string                          `json:"sshUser,omitempty"`
	SSHPort            string                          `json:"sshPort,omitempty"`
	WorkRoot           string                          `json:"workRoot,omitempty"`
	BorrowedBy         string                          `json:"borrowedBy,omitempty"`
	BorrowedAt         string                          `json:"borrowedAt,omitempty"`
	BorrowHeartbeatAt  string                          `json:"borrowHeartbeatAt,omitempty"`
	BorrowExpiresAt    string                          `json:"borrowExpiresAt,omitempty"`
	BorrowToken        string                          `json:"borrowToken,omitempty"`
	LastReadyAt        string                          `json:"lastReadyAt,omitempty"`
	LastUsedAt         string                          `json:"lastUsedAt,omitempty"`
	LastResult         string                          `json:"lastResult,omitempty"`
	FailureCount       int                             `json:"failureCount,omitempty"`
	CreatedAt          string                          `json:"createdAt"`
	UpdatedAt          string                          `json:"updatedAt"`
	ExpiresAt          string                          `json:"expiresAt"`
}

type CoordinatorReadyPoolFillClaim added in v0.41.1

type CoordinatorReadyPoolFillClaim struct {
	Token            string         `json:"token"`
	Key              string         `json:"key"`
	CompatibilityKey string         `json:"compatibilityKey,omitempty"`
	Criteria         map[string]any `json:"criteria"`
	CreatedAt        string         `json:"createdAt"`
	ExpiresAt        string         `json:"expiresAt"`
}

type CoordinatorReadyPoolIdentityV1 added in v0.47.0

type CoordinatorReadyPoolIdentityV1 struct {
	Schema             string                            `json:"schema"`
	Image              CoordinatorReadyPoolImageIdentity `json:"image"`
	Architecture       string                            `json:"architecture"`
	SeedDigest         string                            `json:"seedDigest"`
	CacheCompatibility string                            `json:"cacheCompatibility"`
}

type CoordinatorReadyPoolImageIdentity added in v0.47.0

type CoordinatorReadyPoolImageIdentity struct {
	Provider string `json:"provider"`
	Scope    string `json:"scope"`
	ID       string `json:"id"`
}

type CoordinatorReadyPoolReconcileResponse added in v0.41.1

type CoordinatorReadyPoolReconcileResponse struct {
	Desired struct {
		Key              string         `json:"key"`
		CompatibilityKey string         `json:"compatibilityKey,omitempty"`
		Criteria         map[string]any `json:"criteria"`
		MinReady         int            `json:"minReady"`
		MaxReady         int            `json:"maxReady"`
		CreatedAt        string         `json:"createdAt"`
		UpdatedAt        string         `json:"updatedAt"`
	} `json:"desired"`
	Counts      CoordinatorReadyPoolCapacityCounts `json:"counts"`
	Satisfied   bool                               `json:"satisfied"`
	Reconciling bool                               `json:"reconciling"`
	Capped      bool                               `json:"capped"`
	Claim       *CoordinatorReadyPoolFillClaim     `json:"claim,omitempty"`
	Counters    CoordinatorReadyPoolCounters       `json:"counters"`
}

type CoordinatorReadyPoolResponse added in v0.25.0

type CoordinatorReadyPoolResponse struct {
	Grant        *CoordinatorPoolGrant     `json:"grant,omitempty"`
	BorrowToken  string                    `json:"borrowToken,omitempty"`
	ReceiptToken string                    `json:"receiptToken,omitempty"`
	Entry        CoordinatorReadyPoolEntry `json:"entry"`
	Lease        CoordinatorLease          `json:"lease"`
}

type CoordinatorRetainedReconcile added in v0.76.0

type CoordinatorRetainedReconcile struct {
	Version  int `json:"version"`
	Settings struct {
		Mode                       string `json:"mode"`
		Delete                     bool   `json:"delete"`
		Budget                     int    `json:"budget"`
		GraceSeconds               int    `json:"graceSeconds"`
		LookupBudget               int    `json:"lookupBudget"`
		AWSLegacyAccountConfigured bool   `json:"awsLegacyAccountConfigured"`
	} `json:"settings"`
	Cursor     string                      `json:"cursor"`
	Cycles     int64                       `json:"cycles"`
	Scanned    int64                       `json:"scanned"`
	LastPassAt string                      `json:"lastPassAt"`
	Counters   map[string]map[string]int64 `json:"counters"`
	LastPass   *struct {
		Counters map[string]map[string]int64 `json:"counters"`
		Sample   []struct {
			ID       string `json:"id"`
			Provider string `json:"provider"`
			Outcome  string `json:"outcome"`
		} `json:"sample"`
	} `json:"lastPass,omitempty"`
	Backoff map[string]struct {
		Until    int64 `json:"until"`
		Failures int   `json:"failures"`
	} `json:"backoff"`
}

type CoordinatorRootIdentityEvidence added in v0.79.2

type CoordinatorRootIdentityEvidence struct {
	EventID   string `json:"eventID"`
	EventTime string `json:"eventTime"`
}

type CoordinatorRun

type CoordinatorRun struct {
	EventAppendIdempotent     bool                       `json:"eventAppendIdempotent,omitempty"`
	AdmissionFailedBeforeWork bool                       `json:"admissionFailedBeforeWork,omitempty"`
	ID                        string                     `json:"id"`
	LeaseID                   string                     `json:"leaseID"`
	LeaseIDs                  []string                   `json:"leaseIDs,omitempty"`
	Slug                      string                     `json:"slug,omitempty"`
	Owner                     string                     `json:"owner"`
	Org                       string                     `json:"org"`
	LeaseOwners               []CoordinatorRunLeaseOwner `json:"leaseOwners,omitempty"`
	Provider                  string                     `json:"provider"`
	TargetOS                  string                     `json:"target,omitempty"`
	WindowsMode               string                     `json:"windowsMode,omitempty"`
	Class                     string                     `json:"class"`
	ServerType                string                     `json:"serverType"`
	Command                   []string                   `json:"command"`
	Label                     string                     `json:"label,omitempty"`
	State                     string                     `json:"state"`
	Phase                     string                     `json:"phase,omitempty"`
	ExitCode                  *int                       `json:"exitCode,omitempty"`
	SyncMs                    int64                      `json:"syncMs,omitempty"`
	CommandMs                 int64                      `json:"commandMs,omitempty"`
	DurationMs                int64                      `json:"durationMs,omitempty"`
	LogBytes                  int64                      `json:"logBytes"`
	LogTruncated              bool                       `json:"logTruncated"`
	BlockedStage              string                     `json:"blockedStage,omitempty"`
	RetryLikely               string                     `json:"retryLikely,omitempty"`
	Results                   *TestResultSummary         `json:"results,omitempty"`
	Telemetry                 *RunTelemetrySummary       `json:"telemetry,omitempty"`
	StartedAt                 string                     `json:"startedAt"`
	LastEventAt               string                     `json:"lastEventAt,omitempty"`
	EventCount                int                        `json:"eventCount,omitempty"`
	EndedAt                   string                     `json:"endedAt,omitempty"`
}

type CoordinatorRunEvent added in v0.3.0

type CoordinatorRunEvent struct {
	RunID       string `json:"runID"`
	Seq         int    `json:"seq"`
	Type        string `json:"type"`
	Phase       string `json:"phase,omitempty"`
	Stream      string `json:"stream,omitempty"`
	Message     string `json:"message,omitempty"`
	Data        string `json:"data,omitempty"`
	LeaseID     string `json:"leaseID,omitempty"`
	Slug        string `json:"slug,omitempty"`
	Provider    string `json:"provider,omitempty"`
	TargetOS    string `json:"target,omitempty"`
	WindowsMode string `json:"windowsMode,omitempty"`
	Class       string `json:"class,omitempty"`
	ServerType  string `json:"serverType,omitempty"`
	ExitCode    *int   `json:"exitCode,omitempty"`
	CreatedAt   string `json:"createdAt"`
}

type CoordinatorRunEventInput added in v0.3.0

type CoordinatorRunEventInput struct {
	ID          string `json:"id,omitempty"`
	Type        string `json:"type,omitempty"`
	Phase       string `json:"phase,omitempty"`
	Stream      string `json:"stream,omitempty"`
	Message     string `json:"message,omitempty"`
	Data        string `json:"data,omitempty"`
	LeaseID     string `json:"leaseID,omitempty"`
	Slug        string `json:"slug,omitempty"`
	Provider    string `json:"provider,omitempty"`
	TargetOS    string `json:"target,omitempty"`
	WindowsMode string `json:"windowsMode,omitempty"`
	Class       string `json:"class,omitempty"`
	ServerType  string `json:"serverType,omitempty"`
	ExitCode    *int   `json:"exitCode,omitempty"`
}

type CoordinatorRunEventResponse added in v0.3.0

type CoordinatorRunEventResponse struct {
	Event CoordinatorRunEvent `json:"event"`
}

type CoordinatorRunEventsResponse added in v0.3.0

type CoordinatorRunEventsResponse struct {
	Events []CoordinatorRunEvent `json:"events"`
}

type CoordinatorRunLeaseOwner added in v0.32.0

type CoordinatorRunLeaseOwner struct {
	Owner string `json:"owner"`
	Org   string `json:"org"`
}

type CoordinatorRunResponse

type CoordinatorRunResponse struct {
	Run CoordinatorRun `json:"run"`
}

type CoordinatorRunsResponse

type CoordinatorRunsResponse struct {
	Runs []CoordinatorRun `json:"runs"`
}

type CoordinatorShare added in v0.7.0

type CoordinatorShare struct {
	Users     map[string]CoordinatorShareRole `json:"users,omitempty"`
	Org       CoordinatorShareRole            `json:"org,omitempty"`
	UpdatedAt string                          `json:"updatedAt,omitempty"`
	UpdatedBy string                          `json:"updatedBy,omitempty"`
}

type CoordinatorShareRole added in v0.7.0

type CoordinatorShareRole string
const (
	CoordinatorShareUse    CoordinatorShareRole = "use"
	CoordinatorShareManage CoordinatorShareRole = "manage"
)

type CoordinatorUsageGroup

type CoordinatorUsageGroup struct {
	Key            string   `json:"key"`
	Label          string   `json:"label,omitempty"`
	CPUSeconds     *int64   `json:"cpuSeconds,omitempty"`
	Leases         int      `json:"leases"`
	ActiveLeases   int      `json:"activeLeases"`
	RuntimeSeconds int64    `json:"runtimeSeconds"`
	EstimatedUSD   float64  `json:"estimatedUSD"`
	ReservedUSD    float64  `json:"reservedUSD"`
	CommittedUSD   *float64 `json:"committedUSD,omitempty"`
}

type CoordinatorUsageResponse

type CoordinatorUsageResponse struct {
	Usage  CoordinatorUsageSummary `json:"usage"`
	Limits CoordinatorCostLimits   `json:"limits"`
}

type CoordinatorUsageSummary

type CoordinatorUsageSummary struct {
	Month          string                  `json:"month"`
	Scope          string                  `json:"scope"`
	Owner          string                  `json:"owner,omitempty"`
	Org            string                  `json:"org,omitempty"`
	Leases         int                     `json:"leases"`
	ActiveLeases   int                     `json:"activeLeases"`
	RuntimeSeconds int64                   `json:"runtimeSeconds"`
	EstimatedUSD   float64                 `json:"estimatedUSD"`
	ReservedUSD    float64                 `json:"reservedUSD"`
	CommittedUSD   *float64                `json:"committedUSD,omitempty"`
	ByOwner        []CoordinatorUsageGroup `json:"byOwner"`
	ByOrg          []CoordinatorUsageGroup `json:"byOrg"`
	ByProvider     []CoordinatorUsageGroup `json:"byProvider"`
	ByServerType   []CoordinatorUsageGroup `json:"byServerType"`
	ByMachine      []CoordinatorUsageGroup `json:"byMachine"`
}

type CoordinatorWebVNCCredentialHandoff added in v0.37.0

type CoordinatorWebVNCCredentialHandoff struct {
	Ticket    string `json:"ticket"`
	ExpiresAt string `json:"expiresAt"`
}

type CoordinatorWebVNCEvent added in v0.7.0

type CoordinatorWebVNCEvent struct {
	At     string `json:"at"`
	Event  string `json:"event"`
	Reason string `json:"reason,omitempty"`
}

type CoordinatorWebVNCReset added in v0.7.0

type CoordinatorWebVNCReset struct {
	LeaseID            string                   `json:"leaseID"`
	Slug               string                   `json:"slug,omitempty"`
	BridgeWasConnected bool                     `json:"bridgeWasConnected"`
	ViewerWasConnected bool                     `json:"viewerWasConnected"`
	Command            string                   `json:"command"`
	Events             []CoordinatorWebVNCEvent `json:"events,omitempty"`
}

type CoordinatorWebVNCStatus added in v0.7.0

type CoordinatorWebVNCStatus struct {
	RemoteRetirementProtocol int                      `json:"remoteRetirementProtocol,omitempty"`
	LeaseID                  string                   `json:"leaseID"`
	Slug                     string                   `json:"slug,omitempty"`
	BridgeConnected          bool                     `json:"bridgeConnected"`
	ViewerConnected          bool                     `json:"viewerConnected"`
	ViewerCount              int                      `json:"viewerCount,omitempty"`
	ObserverCount            int                      `json:"observerCount,omitempty"`
	AvailableViewerSlots     int                      `json:"availableViewerSlots,omitempty"`
	ControllerLabel          string                   `json:"controllerLabel,omitempty"`
	Command                  string                   `json:"command"`
	Message                  string                   `json:"message,omitempty"`
	Events                   []CoordinatorWebVNCEvent `json:"events,omitempty"`
}

type CoordinatorWebVNCTicket added in v0.5.0

type CoordinatorWebVNCTicket struct {
	Ticket    string `json:"ticket"`
	LeaseID   string `json:"leaseID"`
	ExpiresAt string `json:"expiresAt"`
}

type CoordinatorWebVNCViewerBootstrap added in v0.39.0

type CoordinatorWebVNCViewerBootstrap struct {
	Ticket    string `json:"ticket"`
	LeaseID   string `json:"leaseID"`
	ExpiresAt string `json:"expiresAt"`
}

type CoordinatorWhoami

type CoordinatorWhoami struct {
	Owner          string `json:"owner"`
	Org            string `json:"org"`
	Auth           string `json:"auth"`
	Admin          bool   `json:"admin,omitempty"`
	TokenExpiresAt string `json:"tokenExpiresAt,omitempty"`
}

type CopyBackend added in v0.26.1

type CopyBackend interface {
	Backend
	Copy(ctx context.Context, req CopyRequest) error
}

type CopyRequest added in v0.26.1

type CopyRequest struct {
	Options     LeaseOptions
	RepoRoot    string
	ID          string
	Source      string
	Destination string
	FollowLink  bool
}

type CreationEvent added in v0.68.0

type CreationEvent struct {
	Phase      string   `json:"phase"`
	At         string   `json:"at"`
	Source     string   `json:"source"`
	Step       string   `json:"step,omitempty"`
	DurationMs *float64 `json:"durationMs,omitempty"`
	Count      int64    `json:"count,omitempty"`
	Errors     *int64   `json:"errors,omitempty"`
}

CreationEvent is an observation, never authority for readiness or ownership. At belongs to Source's clock; events must not be subtracted across clocks.

type CreationRejection added in v0.73.0

type CreationRejection struct {
	Version          int    `json:"version"`
	RequestedLeaseID string `json:"requestedLeaseId"`
	Code             string `json:"code"`
}

CreationRejection describes a requested fixed identity rejected before lease admission. It is not an allocated lease or a cleanup confirmation.

type CrownestConfig added in v0.34.0

type CrownestConfig struct {
	APIURL        string `` /* 233-byte string literal not displayed */
	ProjectID     string `` /* 166-byte string literal not displayed */
	Template      string `` /* 193-byte string literal not displayed */
	TimeoutSecs   int    `` /* 252-byte string literal not displayed */
	ForgetMissing bool   `` /* 204-byte string literal not displayed */
}

CrownestConfig owns ordinary bindings; credentials and URL validation remain separate.

type CrownestConfigApplied added in v0.56.0

type CrownestConfigApplied struct {
	InputAccepted bool
}

CrownestConfigApplied records accepted assignments during one application.

type CrownestConfigFlagValues added in v0.56.0

type CrownestConfigFlagValues struct {
	APIURL        *string
	ProjectID     *string
	Template      *string
	TimeoutSecs   *int
	ForgetMissing *bool
}

CrownestConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterCrownestConfigFlags added in v0.56.0

func RegisterCrownestConfigFlags(fs *flag.FlagSet, defaults CrownestConfig) CrownestConfigFlagValues

RegisterCrownestConfigFlags registers mechanical bindings without selecting a provider.

func (CrownestConfigFlagValues) Apply added in v0.56.0

Apply copies explicit flag values. Provider validation must run afterward.

type CuaConfig added in v0.39.0

type CuaConfig struct {
	APIURL             string `` /* 156-byte string literal not displayed */
	Image              string `` /* 138-byte string literal not displayed */
	Kind               string `` /* 142-byte string literal not displayed */
	Region             string `` /* 149-byte string literal not displayed */
	Workdir            string `` /* 172-byte string literal not displayed */
	VCPUs              int    `` /* 155-byte string literal not displayed */
	MemoryMB           int    `` /* 168-byte string literal not displayed */
	DiskGB             int    `` /* 160-byte string literal not displayed */
	StartupTimeoutSecs int    `` /* 214-byte string literal not displayed */
	ExecTimeoutSecs    int    `` /* 215-byte string literal not displayed */
	BridgeCommand      string `` /* 189-byte string literal not displayed */
	SDKPackage         string `` /* 175-byte string literal not displayed */
	SDKImport          string `` /* 171-byte string literal not displayed */
	SDKFallbackImport  string `` /* 207-byte string literal not displayed */
}

CuaConfig describes mechanical bindings for the read-only CUA provider. APIURL has no YAML source. Bridge/SDK fields retain trusted-file-only admission; credentials and provider validation remain outside these bindings.

type CuaConfigApplied added in v0.56.0

type CuaConfigApplied struct {
	InputAccepted bool
}

CuaConfigApplied records accepted assignments during one application.

type CuaConfigFlagValues added in v0.53.0

type CuaConfigFlagValues struct {
	APIURL             *string
	Image              *string
	Kind               *string
	Region             *string
	Workdir            *string
	VCPUs              *int
	MemoryMB           *int
	DiskGB             *int
	StartupTimeoutSecs *int
	ExecTimeoutSecs    *int
	BridgeCommand      *string
	SDKPackage         *string
	SDKImport          *string
	SDKFallbackImport  *string
}

CuaConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterCuaConfigFlags added in v0.53.0

func RegisterCuaConfigFlags(fs *flag.FlagSet, defaults CuaConfig) CuaConfigFlagValues

RegisterCuaConfigFlags registers mechanical bindings without selecting a provider.

func (CuaConfigFlagValues) Apply added in v0.53.0

func (values CuaConfigFlagValues) Apply(cfg *CuaConfig, fs *flag.FlagSet) (CuaConfigApplied, error)

Apply copies explicit flag values. Provider validation must run afterward.

type CubeSandboxConfig added in v0.37.0

type CubeSandboxConfig struct {
	APIKey        string `env:"CRABBOX_CUBESANDBOX_API_KEY" envAlias:"CUBE_API_KEY" envAlias2:"E2B_API_KEY" sources:"env"`
	APIURL        string `` /* 276-byte string literal not displayed */
	Domain        string `` /* 251-byte string literal not displayed */
	Template      string `` /* 219-byte string literal not displayed */
	Workdir       string `` /* 212-byte string literal not displayed */
	User          string `` /* 203-byte string literal not displayed */
	ProxyNodeIP   string `` /* 285-byte string literal not displayed */
	ProxyPortHTTP int    `` /* 355-byte string literal not displayed */
	ProxyScheme   string `` /* 265-byte string literal not displayed */
}

CubeSandboxConfig describes mechanical bindings; endpoint provenance remains owned by the loader and credential destination policy.

type CubeSandboxConfigApplied added in v0.65.0

type CubeSandboxConfigApplied struct {
	InputAccepted bool
	APIURL        bool
	Domain        bool
	ProxyNodeIP   bool
	ProxyPortHTTP bool
	ProxyScheme   bool
}

CubeSandboxConfigApplied records accepted assignments during one application.

type CubeSandboxConfigFlagValues added in v0.65.0

type CubeSandboxConfigFlagValues struct {
	APIURL        *string
	Domain        *string
	Template      *string
	Workdir       *string
	User          *string
	ProxyNodeIP   *string
	ProxyPortHTTP *int
	ProxyScheme   *string
}

CubeSandboxConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterCubeSandboxConfigFlags added in v0.65.0

func RegisterCubeSandboxConfigFlags(fs *flag.FlagSet, defaults CubeSandboxConfig) CubeSandboxConfigFlagValues

RegisterCubeSandboxConfigFlags registers mechanical bindings without selecting a provider.

func (CubeSandboxConfigFlagValues) Apply added in v0.65.0

Apply copies explicit flag values. Provider validation must run afterward.

type CubeSandboxConfigVisitedFlags added in v0.65.0

type CubeSandboxConfigVisitedFlags struct {
	APIURL        bool
	Domain        bool
	ProxyNodeIP   bool
	ProxyPortHTTP bool
	ProxyScheme   bool
}

CubeSandboxConfigVisitedFlags records raw flag visits, independently of application.

func CubeSandboxConfigFlagPresence added in v0.65.0

func CubeSandboxConfigFlagPresence(fs *flag.FlagSet) CubeSandboxConfigVisitedFlags

CubeSandboxConfigFlagPresence reports visits for tracked flag bindings.

type DaytonaConfig added in v0.6.0

type DaytonaConfig struct {
	APIKey           string `env:"CRABBOX_DAYTONA_API_KEY" envAlias:"DAYTONA_API_KEY" sources:"env" reportApplied:"true"`
	JWTToken         string `env:"CRABBOX_DAYTONA_JWT_TOKEN" envAlias:"DAYTONA_JWT_TOKEN" sources:"env" reportApplied:"true"`
	OrganizationID   string `env:"CRABBOX_DAYTONA_ORGANIZATION_ID" envAlias:"DAYTONA_ORGANIZATION_ID" sources:"env"`
	APIURL           string `` /* 248-byte string literal not displayed */
	Snapshot         string `` /* 201-byte string literal not displayed */
	Target           string `` /* 194-byte string literal not displayed */
	User             string `` /* 178-byte string literal not displayed */
	WorkRoot         string `` /* 211-byte string literal not displayed */
	SSHGatewayHost   string `` /* 248-byte string literal not displayed */
	SSHAccessMinutes int    `` /* 265-byte string literal not displayed */
}

DaytonaConfig owns mechanical bindings; environment-only credentials do not gain file or argv bindings, and source provenance remains in core wrappers.

type DaytonaConfigApplied added in v0.61.0

type DaytonaConfigApplied struct {
	InputAccepted  bool
	APIKey         bool
	JWTToken       bool
	APIURL         bool
	SSHGatewayHost bool
}

DaytonaConfigApplied records accepted assignments during one application.

type DaytonaConfigFlagValues added in v0.61.0

type DaytonaConfigFlagValues struct {
	APIURL           *string
	Snapshot         *string
	Target           *string
	User             *string
	WorkRoot         *string
	SSHGatewayHost   *string
	SSHAccessMinutes *int
}

DaytonaConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterDaytonaConfigFlags added in v0.61.0

func RegisterDaytonaConfigFlags(fs *flag.FlagSet, defaults DaytonaConfig) DaytonaConfigFlagValues

RegisterDaytonaConfigFlags registers mechanical bindings without selecting a provider.

func (DaytonaConfigFlagValues) Apply added in v0.61.0

Apply copies explicit flag values. Provider validation must run afterward.

type DaytonaConfigVisitedFlags added in v0.61.0

type DaytonaConfigVisitedFlags struct {
	APIURL         bool
	SSHGatewayHost bool
}

DaytonaConfigVisitedFlags records raw flag visits, independently of application.

func DaytonaConfigFlagPresence added in v0.61.0

func DaytonaConfigFlagPresence(fs *flag.FlagSet) DaytonaConfigVisitedFlags

DaytonaConfigFlagPresence reports visits for tracked flag bindings.

type DelegatedArchivePreparationRequest added in v0.46.0

type DelegatedArchivePreparationRequest struct {
	Config         Config
	Repo           Repo
	ForceSyncLarge bool
	TempPattern    string
	Stderr         io.Writer
	Now            func() time.Time
}

type DelegatedCheckpointBackend added in v0.72.0

type DelegatedCheckpointBackend interface {
	DelegatedRunBackend
	// ResolveCheckpointSource resolves a lease the current repository already
	// claims; it never adopts or reclaims one.
	ResolveCheckpointSource(ctx context.Context, req ResolveRequest) (LeaseTarget, error)
	// ForkNativeCheckpoint creates and claims one lease started from the record.
	ForkNativeCheckpoint(ctx context.Context, req DelegatedCheckpointForkRequest) (DelegatedCheckpointFork, error)
}

DelegatedCheckpointBackend lets a delegated-run backend, which exposes no SSH target, create and fork native checkpoints. Its provider still implements NativeCheckpointProvider and NativeCheckpointLifecycleProvider.

type DelegatedCheckpointFork added in v0.72.0

type DelegatedCheckpointFork struct {
	Lease   LeaseTarget
	Workdir string
}

type DelegatedCheckpointForkRequest added in v0.72.0

type DelegatedCheckpointForkRequest struct {
	Repo          Repo
	RequestedSlug string
	Record        NativeCheckpointForkRecord
	Workdir       string
}

type DelegatedFixedReleaseBackend added in v0.64.0

type DelegatedFixedReleaseBackend interface {
	StopFixed(context.Context, FixedStopRequest) error
}

type DelegatedFixedWarmupBackend added in v0.64.0

type DelegatedFixedWarmupBackend interface {
	WarmupFixed(context.Context, FixedWarmupRequest) error
}

DelegatedFixedWarmupBackend explicitly opts into durable delegated acquisition.

type DelegatedRunBackend added in v0.6.0

type DelegatedRunBackend interface {
	Backend
	Warmup(ctx context.Context, req WarmupRequest) error
	Run(ctx context.Context, req RunRequest) (RunResult, error)
	List(ctx context.Context, req ListRequest) ([]LeaseView, error)
	Status(ctx context.Context, req StatusRequest) (StatusView, error)
	// Stop owns local claim finalization, including retention. Callers must not
	// remove the claim afterward: a replacement may exist once Stop returns.
	Stop(ctx context.Context, req StopRequest) error
}

type DelegatedRunDownloadBackend added in v0.31.0

type DelegatedRunDownloadBackend interface {
	Backend
	FetchRunFile(ctx context.Context, req DelegatedRunDownloadRequest) ([]byte, error)
}

type DelegatedRunDownloadRequest added in v0.31.0

type DelegatedRunDownloadRequest struct {
	LeaseID    string
	RemotePath string
	MaxBytes   int
}

type DesktopCredentialProvider added in v0.28.0

type DesktopCredentialProvider interface {
	DesktopCredentials(cfg Config, target SSHTarget) (DesktopCredentials, bool)
}

type DesktopCredentialResolver added in v0.39.0

type DesktopCredentialResolver interface {
	ResolveDesktopCredentials(cfg Config, target SSHTarget) (DesktopCredentials, bool, error)
}

DesktopCredentialResolver is the error-reporting form used by providers whose configured credential source can be present but unavailable at runtime.

type DesktopCredentials added in v0.28.0

type DesktopCredentials struct {
	Username string
	Password string
}

type DesktopLeaseCapabilityProvider added in v0.63.0

type DesktopLeaseCapabilityProvider interface {
	DesktopLeaseWithoutLabel(cfg Config, server Server, leaseID string) (bool, error)
}

DesktopLeaseCapabilityProvider admits an existing macOS desktop without a creation-time desktop label. Providers must verify ownership; normal SSH/RFB authentication and desktop readiness checks still apply afterward.

type DigitalOceanConfig added in v0.29.0

type DigitalOceanConfig struct {
	Region   string   `config:"region" env:"CRABBOX_DIGITALOCEAN_REGION" sources:"user,repo,env" fileIgnoreEmpty:"true" fileStorage:"value"`
	Image    string   `` /* 135-byte string literal not displayed */
	VPCUUID  string   `config:"vpc" env:"CRABBOX_DIGITALOCEAN_VPC" sources:"user,repo,env" fileIgnoreEmpty:"true" fileStorage:"value"`
	SSHCIDRs []string `config:"sshCIDRs" env:"CRABBOX_DIGITALOCEAN_SSH_CIDRS" sources:"user,repo,env" fileList:"nonempty-raw" fileStorage:"value"`
}

DigitalOceanConfig contains non-secret settings without provider flags. Token loading and portable OS selection remain separate policy.

type DigitalOceanConfigApplied added in v0.55.0

type DigitalOceanConfigApplied struct {
	InputAccepted bool
	Image         bool
}

DigitalOceanConfigApplied records accepted assignments during one application.

type DockerSandboxConfig added in v0.26.1

type DockerSandboxConfig struct {
	CLIPath         string   `` /* 195-byte string literal not displayed */
	Agent           string   `` /* 217-byte string literal not displayed */
	Template        string   `` /* 146-byte string literal not displayed */
	CPUs            float64  `` /* 178-byte string literal not displayed */
	Memory          string   `` /* 143-byte string literal not displayed */
	Clone           bool     `` /* 167-byte string literal not displayed */
	Workdir         string   `` /* 172-byte string literal not displayed */
	ExtraWorkspaces []string `` /* 275-byte string literal not displayed */
	MCP             []string `` /* 224-byte string literal not displayed */
	Kit             []string `` /* 227-byte string literal not displayed */
}

DockerSandboxConfig owns input bindings; final validation stays provider-owned.

type DockerSandboxConfigApplied added in v0.62.0

type DockerSandboxConfigApplied struct {
	InputAccepted bool
}

DockerSandboxConfigApplied records accepted assignments during one application.

type DockerSandboxConfigFlagValues added in v0.62.0

type DockerSandboxConfigFlagValues struct {
	CLIPath         *string
	Agent           *string
	Template        *string
	CPUs            *float64
	Memory          *string
	Clone           *bool
	Workdir         *string
	ExtraWorkspaces *appendTrimmedNonemptyListFlag
	MCP             *appendTrimmedNonemptyListFlag
	Kit             *appendTrimmedNonemptyListFlag
}

DockerSandboxConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterDockerSandboxConfigFlags added in v0.62.0

func RegisterDockerSandboxConfigFlags(fs *flag.FlagSet, defaults DockerSandboxConfig) DockerSandboxConfigFlagValues

RegisterDockerSandboxConfigFlags registers mechanical bindings without selecting a provider.

func (DockerSandboxConfigFlagValues) Apply added in v0.62.0

Apply copies explicit flag values. Provider validation must run afterward.

type DoctorBackend added in v0.16.0

type DoctorBackend interface {
	Backend
	Doctor(ctx context.Context, req DoctorRequest) (DoctorResult, error)
}

func ConfigureProviderDoctor added in v0.59.0

func ConfigureProviderDoctor(provider Provider, cfg Config, rt Runtime) (DoctorBackend, error)

ConfigureProviderDoctor configures only the selected provider. An override may omit acquisition-only requirements; otherwise its ordinary backend owns diagnostics. A nil backend and nil error mean direct doctor is unsupported.

type DoctorCheck added in v0.19.0

type DoctorCheck struct {
	Status  string            `json:"status"`
	Check   string            `json:"check"`
	Message string            `json:"message,omitempty"`
	Details map[string]string `json:"details,omitempty"`
}

type DoctorProfileConfig added in v0.15.0

type DoctorProfileConfig struct {
	Enabled        bool
	Tools          []string
	NodeMajor      int
	MinDiskGB      int
	RequireDocker  bool
	RequireCompose bool
}

type DoctorProvider added in v0.16.0

type DoctorProvider interface {
	Provider
	ConfigureDoctor(cfg Config, rt Runtime) (DoctorBackend, error)
}

DoctorProvider overrides diagnostic configuration when the ordinary backend requires acquisition-only inputs. Otherwise core uses Configure and DoctorBackend.

type DoctorRequest added in v0.16.0

type DoctorRequest struct {
	ProbeSSH bool
}

type DoctorResult added in v0.16.0

type DoctorResult struct {
	Provider string
	Message  string
	Status   string
	Checks   []DoctorCheck
}

func CLIDoctorResult added in v0.16.0

func CLIDoctorResult(provider string, leases int, runtime string) DoctorResult

func InventoryDoctorResult added in v0.16.0

func InventoryDoctorResult(provider string, leases int) DoctorResult

type E2BConfig added in v0.8.0

type E2BConfig struct {
	APIKey   string `env:"CRABBOX_E2B_API_KEY" envAlias:"E2B_API_KEY" sources:"env" reportApplied:"true"`
	APIURL   string `` /* 225-byte string literal not displayed */
	Domain   string `` /* 217-byte string literal not displayed */
	Template string `` /* 182-byte string literal not displayed */
	Workdir  string `` /* 188-byte string literal not displayed */
	User     string `` /* 179-byte string literal not displayed */
}

E2BConfig describes mechanical bindings for the delegated provider. Credential provenance and destination validation remain owned by core policy.

type E2BConfigApplied added in v0.54.0

type E2BConfigApplied struct {
	InputAccepted bool
	APIKey        bool
	APIURL        bool
	Domain        bool
}

E2BConfigApplied records accepted assignments during one application.

type E2BConfigFlagValues added in v0.54.0

type E2BConfigFlagValues struct {
	APIURL   *string
	Domain   *string
	Template *string
	Workdir  *string
	User     *string
}

E2BConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterE2BConfigFlags added in v0.54.0

func RegisterE2BConfigFlags(fs *flag.FlagSet, defaults E2BConfig) E2BConfigFlagValues

RegisterE2BConfigFlags registers mechanical bindings without selecting a provider.

func (E2BConfigFlagValues) Apply added in v0.54.0

func (values E2BConfigFlagValues) Apply(cfg *E2BConfig, fs *flag.FlagSet) (E2BConfigApplied, error)

Apply copies explicit flag values. Provider validation must run afterward.

type E2BConfigVisitedFlags added in v0.54.0

type E2BConfigVisitedFlags struct {
	APIURL bool
	Domain bool
}

E2BConfigVisitedFlags records raw flag visits, independently of application.

func E2BConfigFlagPresence added in v0.54.0

func E2BConfigFlagPresence(fs *flag.FlagSet) E2BConfigVisitedFlags

E2BConfigFlagPresence reports visits for tracked flag bindings.

type ExclusiveOneShotAcquireBackend added in v0.41.3

type ExclusiveOneShotAcquireBackend interface {
	AcquireIsExclusiveOneShot() bool
}

ExclusiveOneShotAcquireBackend marks Acquire results that are newly provisioned and exclusive to the caller until the one-shot run completes. Backends are non-exclusive by default.

type ExeDevConfig added in v0.16.0

type ExeDevConfig struct {
	ControlHost string `` /* 254-byte string literal not displayed */
	Image       string `` /* 184-byte string literal not displayed */
	Base        string `` /* 195-byte string literal not displayed */
	CPUs        int    `` /* 200-byte string literal not displayed */
	Memory      string `` /* 220-byte string literal not displayed */
	Disk        string `` /* 212-byte string literal not displayed */
	Command     string `` /* 174-byte string literal not displayed */
	User        string `` /* 164-byte string literal not displayed */
	WorkRoot    string `` /* 193-byte string literal not displayed */
	NoEmail     bool   `` /* 161-byte string literal not displayed */
}

ExeDevConfig describes mechanical bindings for the SSH lease provider. Control-host provenance and destination validation remain core policy.

type ExeDevConfigApplied added in v0.54.0

type ExeDevConfigApplied struct {
	InputAccepted bool
	ControlHost   bool
}

ExeDevConfigApplied records accepted assignments during one application.

type ExeDevConfigFlagValues added in v0.54.0

type ExeDevConfigFlagValues struct {
	ControlHost *string
	Image       *string
	Base        *string
	CPUs        *int
	Memory      *string
	Disk        *string
	Command     *string
	User        *string
	WorkRoot    *string
	NoEmail     *bool
}

ExeDevConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterExeDevConfigFlags added in v0.54.0

func RegisterExeDevConfigFlags(fs *flag.FlagSet, defaults ExeDevConfig) ExeDevConfigFlagValues

RegisterExeDevConfigFlags registers mechanical bindings without selecting a provider.

func (ExeDevConfigFlagValues) Apply added in v0.54.0

Apply copies explicit flag values. Provider validation must run afterward.

type ExeDevConfigVisitedFlags added in v0.54.0

type ExeDevConfigVisitedFlags struct {
	ControlHost bool
}

ExeDevConfigVisitedFlags records raw flag visits, independently of application.

func ExeDevConfigFlagPresence added in v0.54.0

func ExeDevConfigFlagPresence(fs *flag.FlagSet) ExeDevConfigVisitedFlags

ExeDevConfigFlagPresence reports visits for tracked flag bindings.

type ExecLeaseClaimResolver added in v0.57.0

type ExecLeaseClaimResolver interface {
	ResolveExecLeaseUnderClaim(context.Context, ResolveRequest, LeaseClaim) (LeaseTarget, error)
}

ExecLeaseClaimResolver admits only lease kinds whose release paths honor the same claim fence as exec. Core holds a shared fence through execution; the resolver must reject incompatible claims before native effects and must not reenter or publish claims while preparing fresh access.

type ExitError

type ExitError struct {
	Code    int
	Message string
}

func Exit added in v0.6.0

func Exit(code int, format string, args ...any) ExitError

func (ExitError) Error

func (e ExitError) Error() string

type ExternalCapabilitiesConfig added in v0.31.0

type ExternalCapabilitiesConfig struct {
	IdempotentLeaseID bool `yaml:"idempotentLeaseId,omitempty" json:"idempotentLeaseId,omitempty"`
}

type ExternalConfig added in v0.26.1

type ExternalConfig struct {
	Command      string
	Args         []string
	Config       map[string]any
	Capabilities ExternalCapabilitiesConfig
	Lifecycle    ExternalLifecycleConfig
	Connection   ExternalConnectionConfig
	WorkRoot     string
	RoutingFile  string
	// contains filtered or unexported fields
}

func LoadExternalRouting added in v0.26.1

func LoadExternalRouting(path string) (ExternalConfig, error)

func LoadExternalRoutingWithDigest added in v0.39.0

func LoadExternalRoutingWithDigest(path, expectedDigest string) (ExternalConfig, error)

LoadExternalRoutingWithDigest loads the same descriptor that it validates and rejects any route generation other than expectedDigest. Generated child commands use this to remain bound to the route their parent approved even if the deterministic path is atomically replaced before the child starts.

type ExternalConnectionConfig added in v0.26.1

type ExternalConnectionConfig struct {
	ResourceName         string                      `yaml:"resourceName,omitempty" json:"resourceName,omitempty"`
	AllowEnvResourceName bool                        `yaml:"allowEnvResourceName,omitempty" json:"allowEnvResourceName,omitempty"`
	CloudID              string                      `yaml:"cloudId,omitempty" json:"cloudId,omitempty"`
	ServerType           string                      `yaml:"serverType,omitempty" json:"serverType,omitempty"`
	Labels               map[string]string           `yaml:"labels,omitempty" json:"labels,omitempty"`
	SSH                  ExternalSSHConnectionConfig `yaml:"ssh,omitempty" json:"ssh,omitempty"`
	Desktop              ExternalDesktopConfig       `yaml:"desktop,omitempty" json:"desktop,omitzero"`
}

type ExternalDesktopConfig added in v0.39.0

type ExternalDesktopConfig struct {
	Username    string `yaml:"username,omitempty" json:"username,omitempty"`
	PasswordEnv string `yaml:"passwordEnv,omitempty" json:"passwordEnv,omitempty"`
}

type ExternalLifecycleConfig added in v0.26.1

type ExternalLifecycleConfig struct {
	Doctor  ExternalLifecycleOperation `yaml:"doctor,omitempty" json:"doctor,omitempty"`
	Acquire ExternalLifecycleOperation `yaml:"acquire,omitempty" json:"acquire,omitempty"`
	Resolve ExternalLifecycleOperation `yaml:"resolve,omitempty" json:"resolve,omitempty"`
	List    ExternalLifecycleOperation `yaml:"list,omitempty" json:"list,omitempty"`
	Release ExternalLifecycleOperation `yaml:"release,omitempty" json:"release,omitempty"`
	Touch   ExternalLifecycleOperation `yaml:"touch,omitempty" json:"touch,omitempty"`
	Cleanup ExternalLifecycleOperation `yaml:"cleanup,omitempty" json:"cleanup,omitempty"`
}

type ExternalLifecycleOperation added in v0.26.1

type ExternalLifecycleOperation struct {
	Argv              []string          `yaml:"argv,omitempty" json:"argv,omitempty"`
	Steps             [][]string        `yaml:"steps,omitempty" json:"steps,omitempty"`
	Env               map[string]string `yaml:"env,omitempty" json:"env,omitempty"`
	AllowEnvArgv      bool              `yaml:"allowEnvArgv,omitempty" json:"allowEnvArgv,omitempty"`
	AllowConfigArgv   bool              `yaml:"allowConfigArgv,omitempty" json:"allowConfigArgv,omitempty"`
	Output            string            `yaml:"output,omitempty" json:"output,omitempty"`
	NamePrefix        string            `yaml:"namePrefix,omitempty" json:"namePrefix,omitempty"`
	RollbackOnFailure bool              `yaml:"rollbackOnFailure,omitempty" json:"rollbackOnFailure,omitempty"`
}

type ExternalSSHConnectionConfig added in v0.26.1

type ExternalSSHConnectionConfig struct {
	User                string   `yaml:"user,omitempty" json:"user,omitempty"`
	Host                string   `yaml:"host,omitempty" json:"host,omitempty"`
	Key                 string   `yaml:"key,omitempty" json:"key,omitempty"`
	Port                string   `yaml:"port,omitempty" json:"port,omitempty"`
	FallbackPorts       []string `yaml:"fallbackPorts,omitempty" json:"fallbackPorts,omitempty"`
	ReadyCheck          string   `yaml:"readyCheck,omitempty" json:"readyCheck,omitempty"`
	AuthSecret          bool     `yaml:"authSecret,omitempty" json:"authSecret,omitempty"`
	NoControlMaster     bool     `yaml:"noControlMaster,omitempty" json:"noControlMaster,omitempty"`
	SSHConfigProxy      bool     `yaml:"sshConfigProxy,omitempty" json:"sshConfigProxy,omitempty"`
	ProxyCommand        string   `yaml:"proxyCommand,omitempty" json:"proxyCommand,omitempty"`
	AllowEnv            bool     `yaml:"allowEnv,omitempty" json:"allowEnv,omitempty"`
	TrustProviderOutput bool     `yaml:"trustProviderOutput,omitempty" json:"trustProviderOutput,omitempty"`
}

type FailedLeaseHoldBackend added in v0.73.0

type FailedLeaseHoldBackend interface {
	HoldFailedLease(context.Context, string) (LeaseRecoveryHold, error)
}

type FailedLeaseHoldFinalizerBackend added in v0.73.0

type FailedLeaseHoldFinalizerBackend interface {
	FinalizeFailedLeaseHold(context.Context, string) (LeaseRecoveryHold, error)
}

FailedLeaseHoldFinalizerBackend optionally closes an existing hold after read-only absence verification, retaining a durable single-use receipt.

type FailureCaptureMetadata added in v0.12.0

type FailureCaptureMetadata struct {
	Provider       string
	LeaseID        string
	Slug           string
	RunID          string
	CommandDisplay string
	Workdir        string
	ExitCode       int
	ActionsRunURL  string
	Timing         timingReport
	EnvAllow       []string
	Env            map[string]string
	Config         Config
	StdoutPath     string
	StderrPath     string
	CaptureFlagSet bool
	// RemoteScriptPath is the current successful upload, generated by loadRunScript.
	RemoteScriptPath string
}

type FailureClassification added in v0.19.0

type FailureClassification struct {
	BlockedStage       string
	ResourceExhaustion ResourceExhaustionReason
	RetryLikely        string
}

func ClassifyRunFailure added in v0.19.0

func ClassifyRunFailure(exitCode int, text string, phases []TimingPhase) FailureClassification

func ClassifyRunFailureWithEvidence added in v0.41.4

func ClassifyRunFailureWithEvidence(exitCode int, text string, phases []TimingPhase, evidence RunFailureEvidence) FailureClassification

type FastAPICloudConfig added in v0.34.0

type FastAPICloudConfig struct {
	Token  string `env:"CRABBOX_FASTAPI_CLOUD_TOKEN" envAlias:"FASTAPI_CLOUD_TOKEN" sources:"env" reportApplied:"true"`
	APIURL string `` /* 277-byte string literal not displayed */
	AppID  string `` /* 209-byte string literal not displayed */
	TeamID string `` /* 231-byte string literal not displayed */
}

FastAPICloudConfig describes mechanical bindings for the service-control provider. Credential provenance and destination validation remain owned by core policy.

type FastAPICloudConfigApplied added in v0.54.0

type FastAPICloudConfigApplied struct {
	InputAccepted bool
	Token         bool
	APIURL        bool
}

FastAPICloudConfigApplied records accepted assignments during one application.

type FastAPICloudConfigFlagValues added in v0.54.0

type FastAPICloudConfigFlagValues struct {
	APIURL *string
	AppID  *string
	TeamID *string
}

FastAPICloudConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterFastAPICloudConfigFlags added in v0.54.0

func RegisterFastAPICloudConfigFlags(fs *flag.FlagSet, defaults FastAPICloudConfig) FastAPICloudConfigFlagValues

RegisterFastAPICloudConfigFlags registers mechanical bindings without selecting a provider.

func (FastAPICloudConfigFlagValues) Apply added in v0.54.0

Apply copies explicit flag values. Provider validation must run afterward.

type FastAPICloudConfigVisitedFlags added in v0.54.0

type FastAPICloudConfigVisitedFlags struct {
	APIURL bool
}

FastAPICloudConfigVisitedFlags records raw flag visits, independently of application.

func FastAPICloudConfigFlagPresence added in v0.54.0

func FastAPICloudConfigFlagPresence(fs *flag.FlagSet) FastAPICloudConfigVisitedFlags

FastAPICloudConfigFlagPresence reports visits for tracked flag bindings.

type Feature added in v0.6.0

type Feature string
const (
	FeatureSSH          Feature = "ssh"
	FeatureCrabboxSync  Feature = "crabbox-sync"
	FeatureArchiveSync  Feature = "archive-sync"
	FeatureCleanup      Feature = "cleanup"
	FeatureDesktop      Feature = "desktop"
	FeatureBrowser      Feature = "browser"
	FeatureCode         Feature = "code"
	FeatureTailscale    Feature = "tailscale"
	FeatureURLBridge    Feature = "url-bridge"
	FeatureCheckpoint   Feature = "workspace-checkpoint"
	FeatureFork         Feature = "workspace-fork"
	FeatureRestore      Feature = "workspace-restore"
	FeatureSnapshot     Feature = "provider-snapshot"
	FeatureCacheVolume  Feature = "cache-volume"
	FeatureRunProof     Feature = "run-proof"
	FeatureRunSession   Feature = "run-session"
	FeatureRunArtifacts Feature = "run-artifacts"
	FeatureRunDownloads Feature = "run-downloads"
	FeatureModuleRun    Feature = "module-run"
	// FeatureShellScriptRun admits shell script input to a delegated command owner.
	FeatureShellScriptRun Feature = "shell-script-run"
	// FeatureSSHScriptRun routes explicit scripts through the core SSH owner,
	// while a hybrid backend may delegate ordinary commands.
	FeatureSSHScriptRun Feature = "ssh-script-run"
	// FeatureClaimExec requires ExecLeaseClaimResolver, private POSIX SSH execution,
	// and provider-owned idle activity that does not require exclusive claim writes.
	FeatureClaimExec Feature = "claim-exec"
	// FeatureFixedLeaseID advertises caller-supplied idempotent lease IDs.
	FeatureFixedLeaseID Feature = "fixed-lease-id"
	// FeatureFixedCurrentRepoStop requires RepositoryScopedStopBackend for fixed IDs.
	FeatureFixedCurrentRepoStop   Feature = "fixed-current-repo-stop"
	FeaturePauseResume            Feature = "pause-resume"
	FeatureSessionDiskRetentionV1 Feature = "session-disk-retention-v1"
	FeatureLeaseHeartbeat         Feature = "lease-heartbeat"
	FeatureMCP                    Feature = "mcp-attachments"
)
const FeaturePreparedArtifactWorkspace Feature = "prepared-artifact-workspace"

type FeatureSet added in v0.6.0

type FeatureSet []Feature

func ProviderFeaturesForConfig added in v0.75.0

func ProviderFeaturesForConfig(provider Provider, cfg Config) FeatureSet

func (FeatureSet) Has added in v0.16.0

func (s FeatureSet) Has(feature Feature) bool

type FirecrackerConfig added in v0.34.0

type FirecrackerConfig struct {
	Binary          string        `` /* 223-byte string literal not displayed */
	Jailer          string        `` /* 209-byte string literal not displayed */
	Kernel          string        `` /* 258-byte string literal not displayed */
	RootFS          string        `` /* 265-byte string literal not displayed */
	User            string        `` /* 221-byte string literal not displayed */
	WorkRoot        string        `` /* 233-byte string literal not displayed */
	CPUs            int           `` /* 205-byte string literal not displayed */
	MemoryMiB       int           `` /* 211-byte string literal not displayed */
	DiskMiB         int           `` /* 222-byte string literal not displayed */
	Network         string        `` /* 206-byte string literal not displayed */
	CNINetwork      string        `` /* 232-byte string literal not displayed */
	CNIConfDir      string        `` /* 247-byte string literal not displayed */
	CNIBinDir       string        `` /* 233-byte string literal not displayed */
	LaunchTimeout   time.Duration `` /* 249-byte string literal not displayed */
	DeleteOnRelease bool          `` /* 235-byte string literal not displayed */
}

FirecrackerConfig describes ordinary inputs; backend and launch policy stay provider-owned.

func (*FirecrackerConfig) ExpandAppliedLocalPaths added in v0.56.0

func (cfg *FirecrackerConfig) ExpandAppliedLocalPaths(applied FirecrackerConfigApplied)

type FirecrackerConfigApplied added in v0.56.0

type FirecrackerConfigApplied struct {
	InputAccepted   bool
	Binary          bool
	Jailer          bool
	Kernel          bool
	RootFS          bool
	User            bool
	WorkRoot        bool
	CNIConfDir      bool
	CNIBinDir       bool
	DeleteOnRelease bool
}

FirecrackerConfigApplied records accepted assignments during one application.

type FirecrackerConfigFlagValues added in v0.56.0

type FirecrackerConfigFlagValues struct {
	Binary          *string
	Jailer          *string
	Kernel          *string
	RootFS          *string
	User            *string
	WorkRoot        *string
	CPUs            *int
	MemoryMiB       *int
	DiskMiB         *int
	Network         *string
	CNINetwork      *string
	CNIConfDir      *string
	CNIBinDir       *string
	LaunchTimeout   *string
	DeleteOnRelease *bool
}

FirecrackerConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterFirecrackerConfigFlags added in v0.56.0

func RegisterFirecrackerConfigFlags(fs *flag.FlagSet, defaults FirecrackerConfig) FirecrackerConfigFlagValues

RegisterFirecrackerConfigFlags registers mechanical bindings without selecting a provider.

func (FirecrackerConfigFlagValues) Apply added in v0.56.0

Apply copies explicit flag values. Provider validation must run afterward.

type FirecrackerConfigVisitedFlags added in v0.56.0

type FirecrackerConfigVisitedFlags struct {
	Binary          bool
	Jailer          bool
	Kernel          bool
	RootFS          bool
	User            bool
	WorkRoot        bool
	CNIConfDir      bool
	CNIBinDir       bool
	DeleteOnRelease bool
}

FirecrackerConfigVisitedFlags records raw flag visits, independently of application.

func FirecrackerConfigFlagPresence added in v0.56.0

func FirecrackerConfigFlagPresence(fs *flag.FlagSet) FirecrackerConfigVisitedFlags

FirecrackerConfigFlagPresence reports visits for tracked flag bindings.

type FixedAWSCreateIntentRequest added in v0.41.1

type FixedAWSCreateIntentRequest struct {
	AccountID     string
	RequestedSlug string
	SSHPublicKey  string
	Keep          bool
}

type FixedAcquireOptions added in v0.46.0

type FixedAcquireOptions struct {
	Retention      *SessionDiskRetentionPolicy
	Kind           FixedLeaseKind
	LeaseID        string
	CheckpointID   string
	RepoRoot       string
	LegacyRepoRoot string
	Reclaim        bool
	TargetOS       string
	WindowsMode    string
	TTL            time.Duration
	IdleTimeout    time.Duration
	Now            func() time.Time
	// contains filtered or unexported fields
}

type FixedAcquisitionReceipt added in v0.64.0

type FixedAcquisitionReceipt struct {
	LeaseID, Slug, Provider, ResourceID string
}

type FixedAdmission added in v0.65.0

type FixedAdmission struct {
	KeyedRetry               *FixedKeyedRetry
	FreshOnly                bool
	RepeatSameIdentity       bool
	PendingKey, PendingValue string
	SubmittedValue           string
}

FixedAdmission describes the persisted evidence that permits submission. Inventory absence alone never grants authority to repeat an ambiguous create.

type FixedAllocationResult added in v0.73.0

type FixedAllocationResult struct {
	Schema       string `json:"schema"`
	Capability   string `json:"capability"`
	Provider     string `json:"provider"`
	LeaseID      string `json:"leaseId"`
	AttemptName  string `json:"attemptName"`
	AttemptNonce string `json:"attemptNonce"`
	Category     string `json:"category"`
	ProviderCode string `json:"providerCode"`
	Allocation   string `json:"allocation"`
	Companions   string `json:"companions"`
	Cause        error  `json:"-"`
}

FixedAllocationResult is emitted only after the canonical fixed rejection finalizer has removed the claim. Consumers must still verify the schema and capability before treating it as a capacity-wait input.

func (*FixedAllocationResult) Error added in v0.73.0

func (r *FixedAllocationResult) Error() string

func (*FixedAllocationResult) Unwrap added in v0.73.0

func (r *FixedAllocationResult) Unwrap() error

type FixedAttemptFormat added in v0.65.0

type FixedAttemptFormat struct {
	RejectEmptyObject bool
	PositiveIntegers  []string
	Trimmed, SHA256   []string
	JSONKey           string
	ExactKeys         int
	Required          []string
	Equal             map[string]string
	OptionalEqual     map[string]string
}

FixedAttemptFormat describes a legacy payload envelope. There is one reader: adapters provide the schema key, required fields and cardinality constraints. Missing old evidence is returned as missing, never synthesized from inventory.

type FixedAttemptPlan added in v0.65.0

type FixedAttemptPlan struct {
	OwnerLabel                   string
	PrivateLabels                map[string]string
	UniqueLabel                  string
	UniqueProviders              []string
	AttemptLabels                map[string]string
	JSONKey                      string
	Payload                      any
	NonceBytes                   int
	Values                       map[string]string
	NonceKey                     string
	LowerNonce                   bool
	NoncePrefix                  string
	Labels                       map[string]string
	DirectLabels                 *FixedDirectLabels
	FingerprintLabel, NonceLabel string
	Identity                     FixedResourceBinding
}

FixedAttemptPlan contains native creation inputs, never persistence actions. Core generates nonces, assembles identity labels, and commits this plan before admitting the provider mutation. Existing attempts are never regenerated.

type FixedClaimRules added in v0.65.0

type FixedClaimRules struct {
	RequireIntentScope, NumericMatchesID, GenerationAfterPrepared    bool
	ExpectedID                                                       string
	RequiredLabels                                                   []string
	BoundLabels                                                      map[string]string
	RequireBound, UnboundMustBeBare                                  bool
	Kind                                                             FixedLeaseKind
	States                                                           []string
	Scope, IntentScope                                               string
	RequireCanonicalID, RequireSlug, RequireTimestamp, RequireSHA256 bool
	NoCheckpoint, NoFailedAttempts, NoNumericID, SameImmutableID     bool
	EmptyAttemptMustBePristine                                       bool
}

FixedClaimRules validates the local envelope independently of native reads. Provider descriptors retain stricter legacy checks without private readers.

type FixedCreateIntent added in v0.41.1

type FixedCreateIntent struct {
	Retention      *SessionDiskRetentionPolicy `json:"retention,omitempty"`
	Version        int                         `json:"version"`
	Fingerprint    string                      `json:"fingerprint"`
	ProviderScope  string                      `json:"providerScope"`
	CheckpointID   string                      `json:"checkpointId,omitempty"`
	Slug           string                      `json:"slug"`
	CreatedAt      string                      `json:"createdAt"`
	State          string                      `json:"state"`
	Attempt        map[string]string           `json:"attempt,omitempty"`
	FailedAttempts []string                    `json:"failedAttempts,omitempty"`
	// Version 1 journals preserve legacy ownership. Retained policy requires
	// version 2 so older readers refuse the claim before provider effects.
	Journal *FixedLeaseJournal `json:"journal,omitempty"`
}

FixedCreateIntent is the durable, provider-neutral envelope for a caller-supplied lease identity. Provider adapters own the opaque attempt fields and their interpretation; the claim layer only persists and locks it.

type FixedCreateRejected added in v0.67.0

type FixedCreateRejected struct{ Err error }

FixedCreateRejected certifies that a native request failed before allocation. Adapters must classify the allocating request itself, never a later identity, task, or readiness read with the same HTTP/RPC status.

func (*FixedCreateRejected) Error added in v0.67.0

func (e *FixedCreateRejected) Error() string

func (*FixedCreateRejected) Unwrap added in v0.67.0

func (e *FixedCreateRejected) Unwrap() error

type FixedDirectLabels added in v0.65.0

type FixedDirectLabels struct {
	Config           Config
	Provider, Market string
	Keep             bool
	Now              time.Time
}

type FixedIntentField added in v0.65.0

type FixedIntentField struct {
	Name      string
	Value     any
	OmitEmpty bool
}

FixedIntentField is an ordered field in a persisted fingerprint schema. Order, casing, and omission are part of the legacy hash contract, not JSON semantics.

type FixedIntentFields added in v0.65.0

type FixedIntentFields []FixedIntentField

func (FixedIntentFields) MarshalJSON added in v0.65.0

func (fields FixedIntentFields) MarshalJSON() ([]byte, error)

type FixedKeyPolicy added in v0.65.0

type FixedKeyPolicy struct{ RequireExisting, UseStored, PreserveProviderKey bool }

PrepareFixedSSHKey preserves the stricter replay-key contract selected by each format before obtaining a key. It never recreates a required lost key.

type FixedKeyedRetry added in v0.65.0

type FixedKeyedRetry struct {
	AttemptKey string
	Window     time.Duration
}

FixedKeyedRetry permits one recovery submission of an unbound attempt under a provider's expiring idempotency key. The engine owns its clock and counter.

type FixedKeyedSubmission added in v0.65.0

type FixedKeyedSubmission struct {
	Key              string `json:"key"`
	FirstSubmittedAt string `json:"firstSubmittedAt"`
	Count            int    `json:"count"`
}

FixedKeyedSubmission is written before each admitted native call. Losing a reply (or crashing before sending) consumes that submission permanently.

type FixedLeaseBinding added in v0.46.0

type FixedLeaseBinding struct {
	// InitialLabels preserve provider ownership and cleanup metadata even if
	// planning fails before the native attempt is published. Replays ignore them.
	InitialLabels       map[string]string
	AllocateSlug        bool
	RejectExistingLease bool
	RequestedSlug       string
	Inventory           []Server
	ProviderScope       string
	Fingerprint         string
	Slug                string
}

type FixedLeaseJournal added in v0.65.0

type FixedLeaseJournal struct {
	Retention  *SessionDiskRetentionState `json:"retention,omitempty"`
	Version    int                        `json:"version"`
	Phase      string                     `json:"phase"`
	Revision   uint64                     `json:"revision"`
	Submission *FixedKeyedSubmission      `json:"submission,omitempty"`
}

FixedLeaseJournal records engine progress alongside the original native attempt dialect. Native submission/deletion witnesses remain authoritative; in particular, a legacy empty attempt is not proof of non-submission.

type FixedLeaseKind added in v0.46.0

type FixedLeaseKind struct {
	RemoveKeyAfterRejection bool
	ClaimProvider           string
	IntentVersion           int
	Label                   string
	// DeletionState retains native validators' existing on-disk cleanup marker.
	// Empty leaves the legacy state unchanged; supplied cleanup bindings are
	// still journaled before native deletion.
	DeletionState  string
	ResourcePlural string
	// AfterTerminal cleans local lease-owned artifacts under the claim fence,
	// after the receipt is durable. Failure must not undo remote completion.
	AfterTerminal func(LeaseClaim) error
	// TerminalIdentityLabels opts into retaining resource/repository identity
	// and only these immutable labels. Other kinds keep compact tombstones.
	TerminalIdentityLabels []string
}

func (FixedLeaseKind) FinalizeAfterCleanup added in v0.46.0

func (k FixedLeaseKind) FinalizeAfterCleanup(claim LeaseClaim, action func() error) error

func (FixedLeaseKind) IsFixedClaim added in v0.46.0

func (k FixedLeaseKind) IsFixedClaim(claim LeaseClaim) bool

func (FixedLeaseKind) ReadTerminal added in v0.65.0

func (k FixedLeaseKind) ReadTerminal(leaseID string) (bool, error)

func (FixedLeaseKind) ResolveTerminal added in v0.65.0

func (k FixedLeaseKind) ResolveTerminal(claim LeaseClaim, releaseOnly bool) (LeaseTarget, bool, error)

func (FixedLeaseKind) RetainClaimAfterRelease added in v0.46.0

func (k FixedLeaseKind) RetainClaimAfterRelease(
	leaseID string,
	previous LeaseClaim,
	providerEvidence bool,
	extraValidation func(LeaseClaim) error,
	afterValidation func(LeaseClaim) error,
) (bool, error)

func (FixedLeaseKind) RetainMatchingFingerprint added in v0.65.0

func (k FixedLeaseKind) RetainMatchingFingerprint(leaseID string, previous LeaseClaim, fingerprint string) (bool, error)

func (FixedLeaseKind) TerminalClaim added in v0.46.0

func (k FixedLeaseKind) TerminalClaim(claim LeaseClaim, now time.Time) LeaseClaim

func (FixedLeaseKind) ValidateTerminalClaim added in v0.46.0

func (k FixedLeaseKind) ValidateTerminalClaim(claim, previous LeaseClaim, leaseID string, extra func(LeaseClaim) error) error

type FixedLeaseOperations added in v0.65.0

type FixedLeaseOperations[T any] struct {
	Release *FixedReleasePolicy
	// PlanReservationKey identifies a shared local native-ID namespace. Core
	// fences selection through durable publication, then unlocks before Submit.
	PlanReservationKey string
	// Some APIs resolve prerequisite IDs inside submission. Each resolved
	// attempt must still be journaled before admitting the target allocation.
	PlanDuringSubmit bool
	Admission        *FixedAdmission
	Plan             func(context.Context, LeaseClaim) (FixedAttemptPlan, error)
	Identity         func(T) FixedResourceBinding
	// DeferredAdmission fences native prerequisites before recording submission.
	DeferredAdmission bool
	DescribeIntent    func(context.Context, *LeaseClaim, bool) (FixedLeaseBinding, error)
	ObserveExact      func(context.Context, *FixedTransaction, FixedObserveMode) (FixedObservation[T], error)
	Submit            func(context.Context, *FixedTransaction) (T, error)
	PrepareAccess     func(context.Context, *FixedTransaction, T) (LeaseTarget, error)
	DeleteExact       func(context.Context, *FixedTransaction, T) error
}

FixedLeaseOperations supplies native facts and effects. Core owns attempt assembly, admission, publication, and compatibility through data descriptors.

type FixedMachine0CreateIntentRequest added in v0.46.0

type FixedMachine0CreateIntentRequest struct {
	RequestedSlug string
	Keep          bool
}

type FixedObservation added in v0.65.0

type FixedObservation[T any] struct {
	// Binding is attested recovery evidence, published by the engine before
	// access preparation or deletion. Inspection never publishes it.
	Binding       *FixedResourceBinding
	Candidates    []T
	CanSubmit     bool
	AbsenceProven bool
	Conflict      string
}

FixedObservation carries only fully attested candidates. CanSubmit is native proof of non-submission (or safe same-identity resubmission), never inferred from an empty inventory. AbsenceProven applies only to release.

func FixedLookupObservation added in v0.65.0

func FixedLookupObservation[T any](kind FixedLeaseKind, claim LeaseClaim, resource T, lookupErr error, notFound func(error) bool, attest func(LeaseClaim, T) error) (FixedObservation[T], error)

FixedLookupObservation separates a native not-found observation from the decision to create. Only pristine attempts may submit, and an existing name without durable provenance is never adopted.

func InspectFixedResource added in v0.65.0

func InspectFixedResource[T any](ctx context.Context, kind FixedLeaseKind, claim LeaseClaim, ops FixedLeaseOperations[T]) (FixedObservation[T], error)

InspectFixedResource does not journal or prepare access. Provider observations cannot accidentally publish a binding through a read-only operation.

type FixedObserveMode added in v0.65.0

type FixedObserveMode uint8
const (
	FixedObserveAcquire FixedObserveMode = iota
	FixedObserveInspect
	FixedObserveDelete
)

type FixedReadinessRecovery added in v0.65.0

type FixedReadinessRecovery struct {
	Expected               LeaseClaim
	Keep, IdentityConflict bool
	Prepare                func()
	RollbackExact          func() error
	Reconcile              func() (bool, error)
}

FixedReadinessRecovery keeps uncertainty and Keep policy in core while native callbacks prove exact rollback and reconcile runtime-specific residue.

type FixedReleasePolicy added in v0.65.0

type FixedReleasePolicy struct {
	// Started distinguishes rejection by the ownership fence from failure after
	// deletion admission. Cleanup must skip a freshly reclaimed candidate.
	Started                 *bool
	RepoRoot                string
	LegacyRepoRoot          string
	CheckpointID            *string
	PristineScopePrefix     string
	SkipTerminalObservation bool
	Outcome                 *ReleaseLeaseOutcome
	Binding                 *FixedResourceBinding
}

type FixedResolveOptions added in v0.65.0

type FixedResolveOptions struct {
	Kind                                  FixedLeaseKind
	Request                               ResolveRequest
	Expected                              LeaseClaim
	Provider, ResourceName, TerminalState string
	ValidateTerminal                      func(LeaseClaim) error
	Now                                   func() time.Time
}

FixedResolveOptions supplies routing facts and the existing terminal dialect. Native callbacks prepare access or inspect evidence; core owns the claim CAS, read-only boundary, checkpoint admission and acquired publication.

type FixedResourceBinding added in v0.65.0

type FixedResourceBinding struct {
	ImageEvidence        *ImageEvidence
	SSH                  *SSHTarget
	AttemptJSONKey       string
	OnlyUnbound          bool
	FingerprintLabel     string
	CloudID, ImmutableID string
	NumericID            int64
	AttemptIdentityKey   string
	AttemptValues        map[string]string
	Labels               map[string]string
	ProviderScope        string
}

FixedResourceBinding is evidence supplied by a native operation. Identity is monotonic; even a rejected readiness check cannot erase a returned native ID.

type FixedStopRequest added in v0.64.0

type FixedStopRequest struct {
	StopRequest
	ExpectedProviderIdentity ProviderIdentityExpectation
}

type FixedTransaction added in v0.65.0

type FixedTransaction struct {
	Claim *LeaseClaim
	// contains filtered or unexported fields
}

FixedTransaction is valid only while core holds the durable claim lock. Claim is a read-only view for adapters. Plans and binding evidence are applied by core; only a certified pre-allocation rejection can clear the intent.

func (*FixedTransaction) Admit added in v0.65.0

func (tx *FixedTransaction) Admit() error

func (*FixedTransaction) Bind added in v0.65.0

func (*FixedTransaction) CanSettleCreateRejection added in v0.73.0

func (tx *FixedTransaction) CanSettleCreateRejection(kind FixedLeaseKind) bool

CanSettleCreateRejection fences rejection settlement to this transaction's first unallocated submission. CloudID can be a name reserved by the plan; the bound journal phase, rather than that name, records allocation custody.

func (*FixedTransaction) CreateLabels added in v0.65.0

func (tx *FixedTransaction) CreateLabels() map[string]string

func (*FixedTransaction) FailedAttemptSet added in v0.65.0

func (tx *FixedTransaction) FailedAttemptSet() map[string]bool

func (*FixedTransaction) Observe added in v0.65.0

func (tx *FixedTransaction) Observe(binding FixedResourceBinding) error

Observe retains partial native evidence before further attestation or errors.

func (*FixedTransaction) PersistDeletionEvidence added in v0.65.0

func (tx *FixedTransaction) PersistDeletionEvidence() error

func (*FixedTransaction) Record added in v0.65.0

func (tx *FixedTransaction) Record(phase string) error

func (*FixedTransaction) RejectAttempt added in v0.65.0

func (tx *FixedTransaction) RejectAttempt(kind FixedLeaseKind, token string, terminal bool) error

RejectAttempt requires a provider-certified definite failure. Transport uncertainty must never call this: it retains the current attempt instead.

type FixedWarmupRequest added in v0.64.0

type FixedWarmupRequest struct {
	WarmupRequest
	RequestedLeaseID string
	OnAcquired       func(FixedAcquisitionReceipt) error
}

type FreestyleConfig added in v0.29.0

type FreestyleConfig struct {
	APIKey   string `env:"CRABBOX_FREESTYLE_API_KEY" envAlias:"FREESTYLE_API_KEY" sources:"env"`
	APIURL   string `` /* 228-byte string literal not displayed */
	Workdir  string `` /* 196-byte string literal not displayed */
	VCPUs    int    `` /* 241-byte string literal not displayed */
	MemoryGB int    `` /* 260-byte string literal not displayed */
}

FreestyleConfig owns mechanical inputs; provider validation remains separate.

type FreestyleConfigApplied added in v0.56.0

type FreestyleConfigApplied struct {
	InputAccepted bool
}

FreestyleConfigApplied records accepted assignments during one application.

type FreestyleConfigFlagValues added in v0.56.0

type FreestyleConfigFlagValues struct {
	APIURL   *string
	Workdir  *string
	VCPUs    *int
	MemoryGB *int
}

FreestyleConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterFreestyleConfigFlags added in v0.56.0

func RegisterFreestyleConfigFlags(fs *flag.FlagSet, defaults FreestyleConfig) FreestyleConfigFlagValues

RegisterFreestyleConfigFlags registers mechanical bindings without selecting a provider.

func (FreestyleConfigFlagValues) Apply added in v0.56.0

Apply copies explicit flag values. Provider validation must run afterward.

type FreshPRSpec added in v0.12.0

type FreshPRSpec struct {
	Owner  string
	Repo   string
	Number int
}

func (FreshPRSpec) Empty added in v0.12.0

func (s FreshPRSpec) Empty() bool

func (FreshPRSpec) Slug added in v0.12.0

func (s FreshPRSpec) Slug() string

func (FreshPRSpec) WorkdirName added in v0.12.0

func (s FreshPRSpec) WorkdirName() string

type GCPClient added in v0.11.0

type GCPClient struct {
	Project        string
	Zone           string
	Zones          []string
	Image          string
	Network        string
	Subnet         string
	Tags           []string
	SSHCIDRs       []string
	RootGB         int64
	ServiceAccount string
	SSHPort        string
	FallbackPorts  []string
	// contains filtered or unexported fields
}

func NewGCPClient added in v0.11.0

func NewGCPClient(ctx context.Context, cfg Config) (*GCPClient, error)

func (*GCPClient) CreateServerWithFallback added in v0.11.0

func (c *GCPClient) CreateServerWithFallback(ctx context.Context, cfg Config, publicKey, leaseID, slug string, keep bool, logf func(string, ...any)) (Server, Config, error)

func (*GCPClient) DeleteServer added in v0.11.0

func (c *GCPClient) DeleteServer(ctx context.Context, name string) error

func (*GCPClient) EnsureFirewall added in v0.11.0

func (c *GCPClient) EnsureFirewall(ctx context.Context) error

func (*GCPClient) GetServer added in v0.11.0

func (c *GCPClient) GetServer(ctx context.Context, name string) (Server, error)

func (*GCPClient) ListCrabboxServers added in v0.11.0

func (c *GCPClient) ListCrabboxServers(ctx context.Context) ([]Server, error)

func (*GCPClient) ListCrabboxServersComplete added in v0.17.0

func (c *GCPClient) ListCrabboxServersComplete(ctx context.Context) ([]Server, error)

func (*GCPClient) SetLabels added in v0.11.0

func (c *GCPClient) SetLabels(ctx context.Context, name string, labels map[string]string) error

type GCPConfig added in v0.65.0

type GCPConfig struct {
	Project string

	Zone string

	Image string

	MachineImage string
	Snapshot     string
	Network      string

	Subnet string
	Tags   []string

	SSHCIDRs []string
	RootGB   int64

	ServiceAccount string
	// contains filtered or unexported fields
}

GCPConfig keeps provider settings and their explicit-input intent together. File, environment, and coordinator policies intentionally remain distinct.

type GitHubCodespacesConfig added in v0.40.0

type GitHubCodespacesConfig struct {
	APIURL           string        `config:"apiUrl" env:"CRABBOX_GITHUB_CODESPACES_API_URL" sources:"user,env" fileIgnoreEmpty:"true" fileStorage:"value"`
	GHPath           string        `` /* 223-byte string literal not displayed */
	Repo             string        `` /* 198-byte string literal not displayed */
	Ref              string        `` /* 191-byte string literal not displayed */
	Machine          string        `` /* 245-byte string literal not displayed */
	DevcontainerPath string        `` /* 242-byte string literal not displayed */
	WorkingDirectory string        `` /* 243-byte string literal not displayed */
	Geo              string        `` /* 205-byte string literal not displayed */
	IdleTimeout      time.Duration `` /* 227-byte string literal not displayed */
	RetentionPeriod  time.Duration `` /* 268-byte string literal not displayed */
	DeleteOnRelease  bool          `` /* 232-byte string literal not displayed */
	WorkRoot         string        `` /* 259-byte string literal not displayed */
}

GitHubCodespacesConfig is intentionally token-free. Authentication comes from the GitHub CLI credential store or GitHub's standard environment variables at the point of use, never from Crabbox config or argv.

type GitHubCodespacesConfigApplied added in v0.62.0

type GitHubCodespacesConfigApplied struct {
	InputAccepted   bool
	GHPath          bool
	Machine         bool
	RetentionPeriod bool
	DeleteOnRelease bool
	WorkRoot        bool
}

GitHubCodespacesConfigApplied records accepted assignments during one application.

type GitHubCodespacesConfigFlagValues added in v0.62.0

type GitHubCodespacesConfigFlagValues struct {
	GHPath           *string
	Repo             *string
	Ref              *string
	Machine          *string
	DevcontainerPath *string
	WorkingDirectory *string
	Geo              *string
	IdleTimeout      *time.Duration
	RetentionPeriod  *time.Duration
	DeleteOnRelease  *bool
	WorkRoot         *string
}

GitHubCodespacesConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterGitHubCodespacesConfigFlags added in v0.62.0

func RegisterGitHubCodespacesConfigFlags(fs *flag.FlagSet, defaults GitHubCodespacesConfig) GitHubCodespacesConfigFlagValues

RegisterGitHubCodespacesConfigFlags registers mechanical bindings without selecting a provider.

func (GitHubCodespacesConfigFlagValues) Apply added in v0.62.0

Apply copies explicit flag values. Provider validation must run afterward.

type GitHubCodespacesConfigVisitedFlags added in v0.62.0

type GitHubCodespacesConfigVisitedFlags struct {
	GHPath          bool
	Machine         bool
	RetentionPeriod bool
	DeleteOnRelease bool
	WorkRoot        bool
}

GitHubCodespacesConfigVisitedFlags records raw flag visits, independently of application.

func GitHubCodespacesConfigFlagPresence added in v0.62.0

func GitHubCodespacesConfigFlagPresence(fs *flag.FlagSet) GitHubCodespacesConfigVisitedFlags

GitHubCodespacesConfigFlagPresence reports visits for tracked flag bindings.

type GitHubRepo

type GitHubRepo struct {
	Owner string
	Name  string
}

func (GitHubRepo) Slug

func (r GitHubRepo) Slug() string

type GuestLeaseExpiryFields added in v0.76.0

type GuestLeaseExpiryFields struct {
	Crabbox   string
	State     string
	Keep      string
	ExpiresAt string
}

GuestLeaseExpiryFields is the nonsecret bootstrap/refresh contract. Keep only controls automatic release after run; it never changes the expiry decision.

func GuestLeaseExpiryFromLabels added in v0.76.0

func GuestLeaseExpiryFromLabels(labels map[string]string) GuestLeaseExpiryFields

type HetznerClient

type HetznerClient struct {
	Token   string
	Client  *http.Client
	BaseURL string
}

func NewHetznerClient added in v0.6.0

func NewHetznerClient() (*HetznerClient, error)

func (*HetznerClient) CreateServer

func (c *HetznerClient) CreateServer(ctx context.Context, cfg Config, publicKey, leaseID, slug string, keep bool) (Server, error)

func (*HetznerClient) CreateServerSnapshot added in v0.44.0

func (c *HetznerClient) CreateServerSnapshot(ctx context.Context, serverID int64, description string, labels map[string]string) (HetznerImage, error)

func (*HetznerClient) CreateServerWithFallback

func (c *HetznerClient) CreateServerWithFallback(ctx context.Context, cfg Config, publicKey, leaseID, slug string, keep bool, logf func(string, ...any)) (Server, Config, error)

func (*HetznerClient) DeleteImage added in v0.44.0

func (c *HetznerClient) DeleteImage(ctx context.Context, imageID int64) error

func (*HetznerClient) DeleteSSHKey

func (c *HetznerClient) DeleteSSHKey(ctx context.Context, name string) error

func (*HetznerClient) DeleteServer

func (c *HetznerClient) DeleteServer(ctx context.Context, id int64) error

func (*HetznerClient) EnsureSSHKey

func (c *HetznerClient) EnsureSSHKey(ctx context.Context, name, publicKey string) (SSHKey, bool, error)

func (*HetznerClient) GetImage added in v0.44.0

func (c *HetznerClient) GetImage(ctx context.Context, imageID int64) (HetznerImage, error)

func (*HetznerClient) GetServer

func (c *HetznerClient) GetServer(ctx context.Context, id int64) (Server, error)

func (*HetznerClient) ListCrabboxServers

func (c *HetznerClient) ListCrabboxServers(ctx context.Context) ([]Server, error)

func (*HetznerClient) SetLabels

func (c *HetznerClient) SetLabels(ctx context.Context, id int64, labels map[string]string) error

type HetznerHTTPError added in v0.44.0

type HetznerHTTPError struct {
	Method     string
	Path       string
	StatusCode int
	Detail     string
}

func (HetznerHTTPError) Error added in v0.44.0

func (e HetznerHTTPError) Error() string

type HetznerImage added in v0.44.0

type HetznerImage struct {
	ID           int64             `json:"id"`
	Type         string            `json:"type"`
	Status       string            `json:"status"`
	Name         string            `json:"name"`
	Description  string            `json:"description"`
	Architecture string            `json:"architecture"`
	Labels       map[string]string `json:"labels"`
	CreatedFrom  *struct {
		ID   int64  `json:"id"`
		Name string `json:"name"`
	} `json:"created_from"`
}

type HostingerConfig added in v0.29.0

type HostingerConfig struct {
	APIToken        string `` /* 144-byte string literal not displayed */
	APIURL          string `` /* 232-byte string literal not displayed */
	ItemID          string `` /* 218-byte string literal not displayed */
	PaymentMethodID string `` /* 255-byte string literal not displayed */
	TemplateID      string `` /* 184-byte string literal not displayed */
	DataCenterID    string `` /* 195-byte string literal not displayed */
	HostnamePrefix  string `` /* 235-byte string literal not displayed */
	User            string `` /* 213-byte string literal not displayed */
	WorkRoot        string `` /* 227-byte string literal not displayed */
	AllowPurchase   bool   `` /* 184-byte string literal not displayed */
	ReleaseAction   string `` /* 218-byte string literal not displayed */
}

HostingerConfig owns mechanical bindings; conditional file admission and generic connection effects remain in policy wrappers.

type HostingerConfigApplied added in v0.61.0

type HostingerConfigApplied struct {
	InputAccepted bool
	User          bool
	WorkRoot      bool
}

HostingerConfigApplied records accepted assignments during one application.

type HostingerConfigFlagValues added in v0.61.0

type HostingerConfigFlagValues struct {
	APIURL          *string
	ItemID          *string
	PaymentMethodID *string
	TemplateID      *string
	DataCenterID    *string
	HostnamePrefix  *string
	User            *string
	WorkRoot        *string
	AllowPurchase   *bool
	ReleaseAction   *string
}

HostingerConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterHostingerConfigFlags added in v0.61.0

func RegisterHostingerConfigFlags(fs *flag.FlagSet, defaults HostingerConfig) HostingerConfigFlagValues

RegisterHostingerConfigFlags registers mechanical bindings without selecting a provider.

func (HostingerConfigFlagValues) Apply added in v0.61.0

Apply copies explicit flag values. Provider validation must run afterward.

type HostingerConfigVisitedFlags added in v0.61.0

type HostingerConfigVisitedFlags struct {
	User     bool
	WorkRoot bool
}

HostingerConfigVisitedFlags records raw flag visits, independently of application.

func HostingerConfigFlagPresence added in v0.61.0

func HostingerConfigFlagPresence(fs *flag.FlagSet) HostingerConfigVisitedFlags

HostingerConfigFlagPresence reports visits for tracked flag bindings.

type HyperVConfig added in v0.29.0

type HyperVConfig struct {
	Image         string `` /* 191-byte string literal not displayed */
	User          string `` /* 236-byte string literal not displayed */
	WorkRoot      string `` /* 186-byte string literal not displayed */
	CPUs          int    `` /* 210-byte string literal not displayed */
	Memory        int    `` /* 223-byte string literal not displayed */
	Switch        string `` /* 196-byte string literal not displayed */
	GuestPassword string `config:"guestPassword" env:"CRABBOX_HYPERV_GUEST_PASSWORD" sources:"user,repo,env" fileIgnoreEmpty:"true" fileStorage:"value"`
	InitPassword  bool   `` /* 253-byte string literal not displayed */
}

HyperVConfig declares bindings; target and runtime defaults remain provider-owned.

type HyperVConfigApplied added in v0.62.0

type HyperVConfigApplied struct {
	InputAccepted bool
}

HyperVConfigApplied records accepted assignments during one application.

type HyperVConfigFlagValues added in v0.62.0

type HyperVConfigFlagValues struct {
	Image        *string
	User         *string
	WorkRoot     *string
	CPUs         *int
	Memory       *int
	Switch       *string
	InitPassword *bool
}

HyperVConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterHyperVConfigFlags added in v0.62.0

func RegisterHyperVConfigFlags(fs *flag.FlagSet, defaults HyperVConfig) HyperVConfigFlagValues

RegisterHyperVConfigFlags registers mechanical bindings without selecting a provider.

func (HyperVConfigFlagValues) Apply added in v0.62.0

Apply copies explicit flag values. Provider validation must run afterward.

type IdempotentLeaseIDBackend added in v0.31.0

type IdempotentLeaseIDBackend interface {
	SupportsRequestedLeaseID() bool
}

type ImageEvidence added in v0.58.0

type ImageEvidence struct {
	ConfiguredReference    string   `json:"configuredReference"`
	RuntimeImageID         string   `json:"runtimeImageId"`
	RepositoryDigests      []string `json:"repositoryDigests"`
	RepositoryDigestStatus string   `json:"repositoryDigestStatus"`
}

ImageEvidence records the initial runtime image, not an attestation of the container's later writable filesystem.

func CloneImageEvidence added in v0.58.0

func CloneImageEvidence(evidence *ImageEvidence) *ImageEvidence

type IncusConfig added in v0.28.0

type IncusConfig struct {
	CheckpointMetadata map[string]string `sources:"runtime" yaml:"-" json:"-"`
	Remote             string            `` /* 210-byte string literal not displayed */
	Project            string            `` /* 163-byte string literal not displayed */
	Address            string            `` /* 202-byte string literal not displayed */
	Socket             string            `` /* 194-byte string literal not displayed */
	InstanceType       string            `` /* 218-byte string literal not displayed */
	Image              string            `` /* 207-byte string literal not displayed */
	Profile            string            `` /* 193-byte string literal not displayed */
	User               string            `` /* 182-byte string literal not displayed */
	WorkRoot           string            `` /* 194-byte string literal not displayed */
	DeleteOnRelease    bool              `` /* 202-byte string literal not displayed */
	StartTimeout       time.Duration     `` /* 228-byte string literal not displayed */
	LaunchPort         string            `` /* 221-byte string literal not displayed */
	ProxyListenHost    string            `` /* 237-byte string literal not displayed */
	ProxyListenPort    string            `` /* 218-byte string literal not displayed */
	ProxyDevice        string            `` /* 204-byte string literal not displayed */
	TLSServerCert      string            `` /* 225-byte string literal not displayed */
	InsecureTLS        bool              `` /* 169-byte string literal not displayed */
	RemoteImageServer  string            `` /* 231-byte string literal not displayed */
}

IncusConfig owns source bindings; the provider retains ordered flag policy.

func (*IncusConfig) ExpandAppliedLocalPaths added in v0.56.0

func (cfg *IncusConfig) ExpandAppliedLocalPaths(applied IncusConfigApplied)

type IncusConfigApplied added in v0.56.0

type IncusConfigApplied struct {
	InputAccepted   bool
	Socket          bool
	DeleteOnRelease bool
	TLSServerCert   bool
}

IncusConfigApplied records accepted assignments during one application.

type IncusConfigFlagValues added in v0.56.0

type IncusConfigFlagValues struct {
	Remote            *string
	Project           *string
	Address           *string
	Socket            *string
	InstanceType      *string
	Image             *string
	Profile           *string
	User              *string
	WorkRoot          *string
	DeleteOnRelease   *bool
	StartTimeout      *string
	LaunchPort        *string
	ProxyListenHost   *string
	ProxyListenPort   *string
	ProxyDevice       *string
	TLSServerCert     *string
	InsecureTLS       *bool
	RemoteImageServer *string
}

IncusConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterIncusConfigFlags added in v0.56.0

func RegisterIncusConfigFlags(fs *flag.FlagSet, defaults IncusConfig) IncusConfigFlagValues

RegisterIncusConfigFlags registers mechanical bindings without selecting a provider.

type IncusConfigVisitedFlags added in v0.56.0

type IncusConfigVisitedFlags struct {
	Remote            bool
	Project           bool
	Address           bool
	Socket            bool
	InstanceType      bool
	Image             bool
	Profile           bool
	User              bool
	WorkRoot          bool
	DeleteOnRelease   bool
	StartTimeout      bool
	LaunchPort        bool
	ProxyListenHost   bool
	ProxyListenPort   bool
	ProxyDevice       bool
	TLSServerCert     bool
	InsecureTLS       bool
	RemoteImageServer bool
}

IncusConfigVisitedFlags records raw flag visits, independently of application.

func IncusConfigFlagPresence added in v0.56.0

func IncusConfigFlagPresence(fs *flag.FlagSet) IncusConfigVisitedFlags

IncusConfigFlagPresence reports visits for tracked flag bindings.

type IsloConfig added in v0.6.0

type IsloConfig struct {
	APIKey         string `env:"CRABBOX_ISLO_API_KEY" envAlias:"ISLO_API_KEY" sources:"env" reportApplied:"true"`
	BaseURL        string `` /* 239-byte string literal not displayed */
	Image          string `` /* 176-byte string literal not displayed */
	Workdir        string `` /* 208-byte string literal not displayed */
	GatewayProfile string `` /* 197-byte string literal not displayed */
	SnapshotName   string `` /* 178-byte string literal not displayed */
	VCPUs          int    `` /* 221-byte string literal not displayed */
	MemoryMB       int    `` /* 242-byte string literal not displayed */
	DiskGB         int    `` /* 232-byte string literal not displayed */
	// IdlePause opts a sandbox into a provider-enforced idle pause derived from
	// IdleTimeout. Off by default: the provider adapter sends no lifecycle
	// policy unless it is set.
	IdlePause bool `` /* 189-byte string literal not displayed */
}

IsloConfig owns bindings; source provenance and explicit-resource policy use accepted facts.

type IsloConfigApplied added in v0.62.0

type IsloConfigApplied struct {
	InputAccepted bool
	APIKey        bool
	BaseURL       bool
	Image         bool
	VCPUs         bool
	MemoryMB      bool
	DiskGB        bool
}

IsloConfigApplied records accepted assignments during one application.

type IsloConfigFlagValues added in v0.62.0

type IsloConfigFlagValues struct {
	BaseURL        *string
	Image          *string
	Workdir        *string
	GatewayProfile *string
	SnapshotName   *string
	VCPUs          *int
	MemoryMB       *int
	DiskGB         *int
	IdlePause      *bool
}

IsloConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterIsloConfigFlags added in v0.62.0

func RegisterIsloConfigFlags(fs *flag.FlagSet, defaults IsloConfig) IsloConfigFlagValues

RegisterIsloConfigFlags registers mechanical bindings without selecting a provider.

func (IsloConfigFlagValues) Apply added in v0.62.0

Apply copies explicit flag values. Provider validation must run afterward.

type IsloConfigVisitedFlags added in v0.62.0

type IsloConfigVisitedFlags struct {
	BaseURL  bool
	Image    bool
	VCPUs    bool
	MemoryMB bool
	DiskGB   bool
}

IsloConfigVisitedFlags records raw flag visits, independently of application.

func IsloConfigFlagPresence added in v0.62.0

func IsloConfigFlagPresence(fs *flag.FlagSet) IsloConfigVisitedFlags

IsloConfigFlagPresence reports visits for tracked flag bindings.

type JSONListBackend added in v0.6.0

type JSONListBackend interface {
	Backend
	ListJSON(ctx context.Context, req ListRequest) (any, error)
}

type JUnitCollection added in v0.61.0

type JUnitCollection struct {
	Summary  *TestResultSummary
	Warnings []error
}

func CollectJUnitResultsWithRunner added in v0.61.0

func CollectJUnitResultsWithRunner(ctx context.Context, client *runner.Client, workdir string, cfg ResultsConfig, marker string) (JUnitCollection, error)

CollectJUnitResultsWithRunner parses reports collected by an authenticated filesystem runner; provider-native result collection keeps its own contract.

type JobActionsConfig added in v0.11.0

type JobActionsConfig ActionsWorkflowConfig

type JobConfig added in v0.11.0

type JobConfig struct {
	Provider          string
	Target            string
	WindowsMode       string
	Profile           string
	Class             string
	Architecture      string
	ServerType        string
	Market            string
	TTL               time.Duration
	IdleTimeout       time.Duration
	Desktop           *bool
	DesktopEnv        string
	Browser           *bool
	Code              *bool
	Network           string
	Hydrate           JobHydrateConfig
	Actions           JobActionsConfig
	Shell             bool
	Command           string
	NoSync            bool
	SyncOnly          bool
	Checksum          *bool
	ForceSyncLarge    bool
	JUnit             []string
	Label             string
	ArtifactGlobs     []string
	RequiredArtifacts []string
	Downloads         []string
	Stop              string
}

type JobHydrateConfig added in v0.11.0

type JobHydrateConfig struct {
	Actions          bool
	GitHubRunner     bool
	WaitTimeout      time.Duration
	KeepAliveMinutes int
}

type KubeVirtConfig added in v0.26.1

type KubeVirtConfig struct {
	Kubectl    string `` /* 208-byte string literal not displayed */
	Virtctl    string `` /* 208-byte string literal not displayed */
	Kubeconfig string `` /* 207-byte string literal not displayed */
	Context    string `` /* 169-byte string literal not displayed */
	Namespace  string `` /* 195-byte string literal not displayed */
	Template   string `` /* 216-byte string literal not displayed */
	SSHUser    string `` /* 185-byte string literal not displayed */
	SSHKey     string `` /* 187-byte string literal not displayed */
	// File admission also requires the mandatory applyKubeVirtFileConfig wrapper.
	SSHPublicKey    string `` /* 238-byte string literal not displayed */
	SSHPort         string `` /* 180-byte string literal not displayed */
	WorkRoot        string `` /* 232-byte string literal not displayed */
	DeleteOnRelease bool   `` /* 219-byte string literal not displayed */
}

KubeVirtConfig owns mechanical bindings and accepted local-path expansion. File admission remains in applyKubeVirtFileConfig.

func (*KubeVirtConfig) ExpandAppliedLocalPaths added in v0.55.0

func (cfg *KubeVirtConfig) ExpandAppliedLocalPaths(applied KubeVirtConfigApplied)

ExpandAppliedLocalPaths expands local paths accepted by a file or flag overlay.

type KubeVirtConfigApplied added in v0.55.0

type KubeVirtConfigApplied struct {
	InputAccepted   bool
	Kubectl         bool
	Virtctl         bool
	Kubeconfig      bool
	Template        bool
	SSHKey          bool
	SSHPublicKey    bool
	WorkRoot        bool
	DeleteOnRelease bool
}

KubeVirtConfigApplied records accepted assignments during one application.

type KubeVirtConfigFlagValues added in v0.55.0

type KubeVirtConfigFlagValues struct {
	Kubectl         *string
	Virtctl         *string
	Kubeconfig      *string
	Context         *string
	Namespace       *string
	Template        *string
	SSHUser         *string
	SSHKey          *string
	SSHPublicKey    *string
	SSHPort         *string
	WorkRoot        *string
	DeleteOnRelease *bool
}

KubeVirtConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterKubeVirtConfigFlags added in v0.55.0

func RegisterKubeVirtConfigFlags(fs *flag.FlagSet, defaults KubeVirtConfig) KubeVirtConfigFlagValues

RegisterKubeVirtConfigFlags registers mechanical bindings without selecting a provider.

func (KubeVirtConfigFlagValues) Apply added in v0.55.0

Apply copies explicit flag values. Provider validation must run afterward.

type KubeVirtConfigVisitedFlags added in v0.55.0

type KubeVirtConfigVisitedFlags struct {
	Kubectl         bool
	Virtctl         bool
	Kubeconfig      bool
	Template        bool
	SSHKey          bool
	SSHPublicKey    bool
	WorkRoot        bool
	DeleteOnRelease bool
}

KubeVirtConfigVisitedFlags records raw flag visits, independently of application.

func KubeVirtConfigFlagPresence added in v0.55.0

func KubeVirtConfigFlagPresence(fs *flag.FlagSet) KubeVirtConfigVisitedFlags

KubeVirtConfigFlagPresence reports visits for tracked flag bindings.

type LambdaConfig added in v0.34.0

type LambdaConfig struct {
	Region           string                  `yaml:"region,omitempty"`
	Type             string                  `yaml:"type,omitempty"`
	Image            string                  `yaml:"image,omitempty"`
	ImageFamily      string                  `yaml:"imageFamily,omitempty"`
	FirewallRuleset  string                  `yaml:"firewallRuleset,omitempty"`
	SSHCIDRs         []string                `yaml:"sshCIDRs,omitempty"`
	FilesystemNames  []string                `yaml:"filesystemNames,omitempty"`
	FilesystemMounts []LambdaFilesystemMount `yaml:"filesystemMounts,omitempty"`
}

LambdaConfig owns the complete runtime and file field shape. Native mount interpretation and portable OS selection remain separate policy.

func (LambdaConfig) WithRuntimeDefaults added in v0.55.0

func (cfg LambdaConfig) WithRuntimeDefaults() LambdaConfig

WithRuntimeDefaults fills the raw configured defaults on a shallow copy. Explicit OS policy and native trim-aware selection remain separate.

type LambdaConfigApplied added in v0.55.0

type LambdaConfigApplied struct {
	InputAccepted bool
	Type          bool
	Image         bool
	ImageFamily   bool
}

type LambdaFilesystemMount added in v0.34.0

type LambdaFilesystemMount struct {
	Name      string `yaml:"name,omitempty" json:"name,omitempty"`
	MountPath string `yaml:"mountPath,omitempty" json:"mountPath,omitempty"`
}

type LeaseClaim added in v0.6.0

type LeaseClaim = leaseClaim

func AcquireFixedIntent added in v0.64.0

func AcquireFixedIntent(
	opts FixedAcquireOptions,
	prepare func(context.Context, *LeaseClaim, bool) (FixedLeaseBinding, error),
	acquire func(context.Context, *LeaseClaim, *FixedCreateIntent, func() error) error,
	ctx context.Context,
) (LeaseClaim, error)

AcquireFixedIntent owns durable fixed acquisition independently of transport. Callbacks publish provider facts through persist and must not reenter claim locks.

func ClaimLeaseTargetForRepoConfigScopeIfUnchangedDurableAfterContext added in v0.48.0

func ClaimLeaseTargetForRepoConfigScopeIfUnchangedDurableAfterContext(ctx context.Context, leaseID, slug string, cfg Config, providerScope string, server Server, target SSHTarget, repoRoot string, idleTimeout time.Duration, reclaim bool, expected LeaseClaim, expectedExists bool, action func() error) (LeaseClaim, error)

ClaimLeaseTargetForRepoConfigScopeIfUnchangedDurableAfterContext also bounds waiting for the exclusive claim fence. The action must honor ctx itself.

func CloneLeaseClaim added in v0.65.0

func CloneLeaseClaim(claim LeaseClaim) LeaseClaim

CloneLeaseClaim snapshots all custody and access evidence, including journals.

func CompareAndBindFixedClaim added in v0.65.0

func CompareAndBindFixedClaim(claim LeaseClaim, bind func(*LeaseClaim, func() error) error) (LeaseClaim, error)

CompareAndBindFixedClaim keeps the expected CAS record separate from the journal the binding callback advances. A shallow intent copy loses that fence.

func PublishFixedRecoveryClaimIfAbsent added in v0.65.0

func PublishFixedRecoveryClaimIfAbsent(ctx context.Context, kind FixedLeaseKind, claim LeaseClaim) (LeaseClaim, error)

PublishFixedRecoveryClaimIfAbsent durably restores a provider-attested fixed claim before an explicit recovery operation performs any native mutation.

func ReclaimFixedLease added in v0.65.0

func ReclaimFixedLease(ctx context.Context, claim LeaseClaim, cfg Config, repoRoot string, reclaim bool, lookup func(context.Context, LeaseClaim) (Server, error)) (LeaseClaim, error)

ReclaimFixedLease transfers an attested resource under the original claim CAS. Native lookup must not mutate the resource or local ownership record.

func ServerLeaseClaimSnapshot added in v0.37.0

func ServerLeaseClaimSnapshot(server Server) (LeaseClaim, bool, bool)

ServerLeaseClaimSnapshot returns the carried claim, whether it existed, and whether a snapshot was explicitly attached.

type LeaseClaimEndpointPreparer added in v0.29.0

type LeaseClaimEndpointPreparer interface {
	PrepareLeaseClaimEndpoint(existing LeaseClaim, provider, slug string, server Server, allowProviderMetadata bool) (Server, error)
}

type LeaseExtendRequest added in v0.76.0

type LeaseExtendRequest struct {
	Lease  LeaseTarget
	TTL    time.Duration
	By     time.Duration
	Reason string
}

type LeaseExtendResult added in v0.76.0

type LeaseExtendResult struct {
	ID                        string `json:"id"`
	ExpiresAt                 string `json:"expiresAt"`
	Remaining                 string `json:"remainingLifetime"`
	MaxLifetime               string `json:"maxLifetime"`
	RuntimeExtension          bool   `json:"runtimeExtension"`
	GuestExpiresAt            string `json:"guestExpiresAt,omitempty"`
	GuestExpiryRefreshPending bool   `json:"guestExpiryRefreshPending,omitempty"`
	Error                     string `json:"error,omitempty"`
}

func ExtendDirectLease added in v0.76.0

func ExtendDirectLease(ctx context.Context, backend Backend, cfg Config, req LeaseExtendRequest, now time.Time, write func(context.Context, Server, LeaseClaim) error) (LeaseExtendResult, error)

ExtendDirectLease serializes provider metadata, claim publication and guest refresh. Provider labels remain authoritative if the guest write fails.

type LeaseExtensionBackend added in v0.76.0

type LeaseExtensionBackend interface {
	ExtendLease(context.Context, LeaseExtendRequest) (LeaseExtendResult, error)
}

LeaseExtensionBackend updates provider metadata under the exact lease claim. File-backed guest guards are refreshed after the provider deadline is saved.

type LeaseHeartbeatBackend added in v0.61.0

type LeaseHeartbeatBackend interface {
	Backend
	Heartbeat(ctx context.Context, req LeaseHeartbeatRequest) (LeaseHeartbeatResult, error)
}

LeaseHeartbeatBackend is implemented by providers that keep a lease alive through their own API instead of a Crabbox-managed SSH lease touch. It is optional: the `heartbeat` command reports the same unsupported error for providers that do not implement it.

Providers own lease resolution, ownership and state validation on this path. They must refuse identifiers without an exact local claim.

A heartbeat refreshes idle activity without writing lifecycle policy or changing absolute lifetime limits. `--idle-timeout` is rejected before this capability is reached: it reports the provider's window rather than replacing it.

type LeaseHeartbeatRequest added in v0.61.0

type LeaseHeartbeatRequest struct {
	// ID is the lease id, sandbox name, or slug exactly as the user typed it,
	// unresolved and unvalidated.
	ID string
}

type LeaseHeartbeatResult added in v0.61.0

type LeaseHeartbeatResult struct {
	LeaseID string
	Slug    string
	State   string
	// LastTouchedAt is when the provider observed the lease. Core renders it
	// as-is and persists nothing on this path, so a local claim's own touch
	// time is left alone.
	LastTouchedAt time.Time
	// IdleTimeout is the provider's OWN idle window, as reported by the
	// provider for this lease. Leave it zero when the provider does not report
	// one: the rendered view then omits the field rather than substituting
	// Crabbox's configured default, which has no bearing on a lease whose idle
	// policy the provider owns.
	IdleTimeout time.Duration
}

type LeaseHeldResource added in v0.73.0

type LeaseHeldResource struct {
	Kind        string `json:"kind"`
	ID          string `json:"id"`
	ImmutableID string `json:"immutableId,omitempty"`
	State       string `json:"state"`
}

type LeaseLifetimeCompute added in v0.75.0

type LeaseLifetimeCompute struct {
	State         string `json:"state"`
	RunningSince  string `json:"runningSince,omitempty"`
	AccumulatedMs int64  `json:"accumulatedMs"`
}

type LeaseLifetimeExtension added in v0.75.0

type LeaseLifetimeExtension struct {
	Owner     string `json:"owner"`
	GrantedBy string `json:"grantedBy,omitempty"`
	Reason    string `json:"reason"`
	GrantedAt string `json:"grantedAt"`
	ExpiresAt string `json:"expiresAt"`
}

type LeaseLifetimePolicy added in v0.75.0

type LeaseLifetimePolicy struct {
	Mode             string                  `json:"mode"`
	Source           string                  `json:"source,omitempty"`
	Workload         string                  `json:"workload"`
	DeadlineAt       string                  `json:"deadlineAt"`
	EffectiveStopAt  string                  `json:"effectiveStopAt,omitempty"`
	RetainSeconds    int                     `json:"retainSeconds"`
	Extension        *LeaseLifetimeExtension `json:"extension,omitempty"`
	WarnedAt         string                  `json:"warnedAt,omitempty"`
	DeletionWarnedAt string                  `json:"deletionWarnedAt,omitempty"`
	CheckedAt        string                  `json:"checkedAt,omitempty"`
	NextCheckAt      string                  `json:"nextCheckAt,omitempty"`
	Status           string                  `json:"status,omitempty"`
	Error            string                  `json:"error,omitempty"`
	StoppedAt        string                  `json:"stoppedAt,omitempty"`
	StopStartedAt    string                  `json:"stopStartedAt,omitempty"`
	DeleteStartedAt  string                  `json:"deleteStartedAt,omitempty"`
	DeleteAfterAt    string                  `json:"deleteAfterAt,omitempty"`
	RetainedIdentity string                  `json:"retainedIdentity,omitempty"`
	Warnings         []string                `json:"warnings,omitempty"`
	Readiness        *LeaseLifetimeReadiness `json:"readiness,omitempty"`
	Compute          *LeaseLifetimeCompute   `json:"compute,omitempty"`
}

LeaseLifetimePolicy preserves the coordinator's recorded policy and observations.

type LeaseLifetimeReadiness added in v0.75.0

type LeaseLifetimeReadiness struct {
	Status    string `json:"status"`
	CheckedAt string `json:"checkedAt"`
	Error     string `json:"error,omitempty"`
}

type LeaseLifetimeRequest added in v0.75.0

type LeaseLifetimeRequest struct {
	Mode          string `json:"mode"`
	MaxAgeSeconds int    `json:"maxAgeSeconds"`
	RetainSeconds int    `json:"retainSeconds"`
}

type LeaseNetworkDiagnostics added in v0.55.0

type LeaseNetworkDiagnostics struct {
	SSHSourceCIDRs         *[]string `json:"sshSourceCIDRs,omitempty"`
	SSHPinnedSourceCIDRs   *[]string `json:"sshPinnedSourceCIDRs,omitempty"`
	SSHSourceCIDRsComplete *bool     `json:"sshSourceCIDRsComplete,omitempty"`
	AWSSecurityGroupID     *string   `json:"awsSecurityGroupID,omitempty"`
	AWSSecurityGroupName   *string   `json:"awsSecurityGroupName,omitempty"`
	AWSSubnetID            *string   `json:"awsSubnetID,omitempty"`
	AWSPrivate             *bool     `json:"awsPrivate,omitempty"`
}

LeaseNetworkDiagnostics retains broker records, not live ingress observations. Pointers preserve unknown fields separately from explicit false or empty values.

type LeaseOptions added in v0.6.0

type LeaseOptions struct {
	TargetOS      string
	WindowsMode   string
	Class         string
	Pond          string
	ProviderScope string
	ServerType    string
	IdleTimeout   time.Duration
	TTL           time.Duration
	Desktop       bool
	DesktopEnv    string
	Browser       bool
	Code          bool
	Tailscale     TailscaleConfig
	WorkRoot      string
	SSHUser       string
	SSHPort       string
	SSHKey        string
	Sync          SyncConfig
	Results       ResultsConfig
	EnvAllow      []string
	ActionsRunner bool
}

type LeaseRecoveryHold added in v0.73.0

type LeaseRecoveryHold struct {
	Schema            string              `json:"schema"`
	Provider          string              `json:"provider"`
	LeaseID           string              `json:"leaseId"`
	Status            string              `json:"status"`
	Resources         []LeaseHeldResource `json:"resources"`
	UnacceptedChanges string              `json:"unacceptedChanges"`
}

A hold records custody or verified absence, never proof that files were salvaged.

type LeaseTarget added in v0.6.0

type LeaseTarget struct {
	Server      Server
	SSH         SSHTarget
	LeaseID     string
	Coordinator *CoordinatorClient
	// contains filtered or unexported fields
}

func AcquireFixedLease added in v0.46.0

func AcquireFixedLease(
	opts FixedAcquireOptions,
	prepare func(context.Context, *LeaseClaim, bool) (FixedLeaseBinding, error),
	acquire func(context.Context, *LeaseClaim, *FixedCreateIntent, func() error) (LeaseTarget, error),
	ctx context.Context,
) (LeaseTarget, error)

func AcquireFixedResource added in v0.65.0

func AcquireFixedResource[T any](ctx context.Context, opts FixedAcquireOptions, ops FixedLeaseOperations[T]) (LeaseTarget, error)

AcquireFixedResource keeps the existing claim envelope and all native fingerprint/attempt dialects readable while writing the engine journal.

func CompleteFixedAcquisition added in v0.65.0

func CompleteFixedAcquisition(lease LeaseTarget, err error, req AcquireRequest) (LeaseTarget, error)

CompleteFixedAcquisition runs acknowledgement outside the claim fence. A failed acknowledgement retains custody and cannot reopen a single-use ID.

func ResolveFixedLeaseTarget added in v0.65.0

func ResolveFixedLeaseTarget(ctx context.Context, opts FixedResolveOptions,
	prepare func(context.Context, *LeaseClaim, func() error) (LeaseTarget, error),
	inspect func(context.Context, LeaseClaim) (LeaseTarget, error),
) (LeaseTarget, error)

type LeaseTelemetry added in v0.6.0

type LeaseTelemetry struct {
	CapturedAt       string   `json:"capturedAt,omitempty"`
	Source           string   `json:"source,omitempty"`
	Load1            *float64 `json:"load1,omitempty"`
	Load5            *float64 `json:"load5,omitempty"`
	Load15           *float64 `json:"load15,omitempty"`
	CPUCount         *int64   `json:"cpuCount,omitempty"`
	MemoryUsedBytes  *int64   `json:"memoryUsedBytes,omitempty"`
	MemoryTotalBytes *int64   `json:"memoryTotalBytes,omitempty"`
	MemoryPercent    *float64 `json:"memoryPercent,omitempty"`
	DiskUsedBytes    *int64   `json:"diskUsedBytes,omitempty"`
	DiskTotalBytes   *int64   `json:"diskTotalBytes,omitempty"`
	DiskPercent      *float64 `json:"diskPercent,omitempty"`
	UptimeSeconds    *int64   `json:"uptimeSeconds,omitempty"`
}

type LeaseTouchBackend added in v0.30.0

type LeaseTouchBackend interface {
	Backend
	Touch(ctx context.Context, req TouchRequest) (Server, error)
}

type LeaseView added in v0.6.0

type LeaseView = Server

type LinodeConfig added in v0.30.0

type LinodeConfig struct {
	Region     string   `config:"region" env:"CRABBOX_LINODE_REGION" sources:"user,repo,env" fileIgnoreEmpty:"true" fileStorage:"value"`
	Image      string   `` /* 129-byte string literal not displayed */
	Type       string   `` /* 127-byte string literal not displayed */
	FirewallID string   `config:"firewall" env:"CRABBOX_LINODE_FIREWALL" sources:"user,repo,env" fileIgnoreEmpty:"true" fileStorage:"value"`
	SSHCIDRs   []string `config:"sshCIDRs" env:"CRABBOX_LINODE_SSH_CIDRS" sources:"user,repo,env" fileList:"nonempty-raw" fileStorage:"value"`
}

LinodeConfig contains non-secret settings without provider flags. Portable OS resolution and late native validation remain separate policy.

type LinodeConfigApplied added in v0.55.0

type LinodeConfigApplied struct {
	InputAccepted bool
	Image         bool
	Type          bool
}

LinodeConfigApplied records accepted assignments during one application.

type ListPage added in v0.76.0

type ListPage struct {
	Servers []Server
	JSON    any
	Section string
	More    bool
}

type ListRequest added in v0.6.0

type ListRequest struct {
	Options  LeaseOptions
	All      bool
	Refresh  bool
	Retained bool
}

type LocalCommandRequest added in v0.6.0

type LocalCommandRequest struct {
	Name                 string
	Args                 []string
	Env                  []string
	Dir                  string
	Stdin                io.Reader
	Stdout               io.Writer
	Stderr               io.Writer
	DisableOutputCapture bool
	// CaptureOutputToFiles gives POSIX children synchronous regular-file output.
	// Requires a positive capture limit and no streaming writers.
	CaptureOutputToFiles bool
	// MaxCapturedOutputBytes bounds each internally captured output stream.
	// On overflow the command context is canceled so a continuously emitting
	// child cannot block forever after the capture buffer fills.
	MaxCapturedOutputBytes int
	CancelGracePeriod      time.Duration
	// RequireProcessGroupJoin keeps this call active until its owned standalone
	// process group closes, including after cancellation or cleanup grace expiry.
	RequireProcessGroupJoin bool
	// OnCleanupPending reports grace expiry once while the command still joins.
	OnCleanupPending func(error) `json:"-"`
}

type LocalCommandResult added in v0.6.0

type LocalCommandResult struct {
	ExitCode int
	Stdout   string
	Stderr   string
}

type LocalContainerConfig added in v0.17.0

type LocalContainerConfig struct {
	Runtime      string `` /* 252-byte string literal not displayed */
	Image        string `` /* 222-byte string literal not displayed */
	User         string `` /* 220-byte string literal not displayed */
	WorkRoot     string `` /* 245-byte string literal not displayed */
	CPUs         int    `` /* 251-byte string literal not displayed */
	Memory       string `` /* 217-byte string literal not displayed */
	Network      string `` /* 226-byte string literal not displayed */
	DockerSocket bool   `` /* 245-byte string literal not displayed */
	NoHostname   bool   `config:"noHostname" env:"CRABBOX_LOCAL_CONTAINER_NO_HOSTNAME" sources:"user,repo,env"`
	OCIRuntime   string `` /* 256-byte string literal not displayed */
	// Host volumes remain an explicit CLI action, never file or environment input.
	Volumes            []string          `` /* 148-byte string literal not displayed */
	CheckpointMetadata map[string]string `sources:"runtime" yaml:"-" json:"-"`
}

LocalContainerConfig owns bindings; creation checks and runtime defaults stay provider-owned.

type LocalContainerConfigApplied added in v0.56.0

type LocalContainerConfigApplied struct {
	InputAccepted bool
	Runtime       bool
	Image         bool
	WorkRoot      bool
}

LocalContainerConfigApplied records accepted assignments during one application.

type LocalContainerConfigFlagValues added in v0.62.0

type LocalContainerConfigFlagValues struct {
	Runtime      *string
	Image        *string
	User         *string
	WorkRoot     *string
	CPUs         *int
	Memory       *string
	Network      *string
	DockerSocket *bool
	OCIRuntime   *string
	Volumes      *[]string
}

LocalContainerConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterLocalContainerConfigFlags added in v0.62.0

func RegisterLocalContainerConfigFlags(fs *flag.FlagSet, defaults LocalContainerConfig) LocalContainerConfigFlagValues

RegisterLocalContainerConfigFlags registers mechanical bindings without selecting a provider.

type LocalContainerConfigVisitedFlags added in v0.62.0

type LocalContainerConfigVisitedFlags struct {
	Runtime      bool
	Image        bool
	User         bool
	WorkRoot     bool
	CPUs         bool
	Memory       bool
	Network      bool
	DockerSocket bool
	OCIRuntime   bool
	Volumes      bool
}

LocalContainerConfigVisitedFlags records raw flag visits, independently of application.

func LocalContainerConfigFlagPresence added in v0.62.0

func LocalContainerConfigFlagPresence(fs *flag.FlagSet) LocalContainerConfigVisitedFlags

LocalContainerConfigFlagPresence reports visits for tracked flag bindings.

type LumeConfig added in v0.40.0

type LumeConfig struct {
	CLIPath  string `` /* 165-byte string literal not displayed */
	Base     string `` /* 199-byte string literal not displayed */
	Storage  string `` /* 168-byte string literal not displayed */
	User     string `` /* 174-byte string literal not displayed */
	WorkRoot string `` /* 193-byte string literal not displayed */
}

LumeConfig describes mechanical bindings; host storage and user-derived work-root resolution remain owned by the provider.

type LumeConfigApplied added in v0.56.0

type LumeConfigApplied struct {
	InputAccepted bool
}

LumeConfigApplied records accepted assignments during one application.

type LumeConfigFlagValues added in v0.54.0

type LumeConfigFlagValues struct {
	CLIPath  *string
	Base     *string
	Storage  *string
	User     *string
	WorkRoot *string
}

LumeConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterLumeConfigFlags added in v0.54.0

func RegisterLumeConfigFlags(fs *flag.FlagSet, defaults LumeConfig) LumeConfigFlagValues

RegisterLumeConfigFlags registers mechanical bindings without selecting a provider.

func (LumeConfigFlagValues) Apply added in v0.54.0

Apply copies explicit flag values. Provider validation must run afterward.

type MXCConfig added in v0.28.0

type MXCConfig struct {
	CLIPath           string   `` /* 180-byte string literal not displayed */
	Version           string   `` /* 195-byte string literal not displayed */
	Containment       string   `` /* 203-byte string literal not displayed */
	Network           string   `` /* 192-byte string literal not displayed */
	ReadOnlyPaths     []string `` /* 223-byte string literal not displayed */
	ReadWritePaths    []string `` /* 227-byte string literal not displayed */
	AllowedHosts      []string `` /* 216-byte string literal not displayed */
	BlockedHosts      []string `` /* 216-byte string literal not displayed */
	AllowDACLMutation bool     `` /* 191-byte string literal not displayed */
	AllowWindowsUI    bool     `` /* 199-byte string literal not displayed */
	Experimental      bool     `` /* 157-byte string literal not displayed */
}

MXCConfig owns inert configuration bindings; execution policy stays in the adapter.

type MXCConfigApplied added in v0.61.0

type MXCConfigApplied struct {
	InputAccepted bool
}

MXCConfigApplied records accepted assignments during one application.

type MXCConfigFlagValues added in v0.61.0

type MXCConfigFlagValues struct {
	CLIPath           *string
	Version           *string
	Containment       *string
	Network           *string
	ReadOnlyPaths     *string
	ReadWritePaths    *string
	AllowedHosts      *string
	BlockedHosts      *string
	AllowDACLMutation *bool
	AllowWindowsUI    *bool
	Experimental      *bool
}

MXCConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterMXCConfigFlags added in v0.61.0

func RegisterMXCConfigFlags(fs *flag.FlagSet, defaults MXCConfig) MXCConfigFlagValues

RegisterMXCConfigFlags registers mechanical bindings without selecting a provider.

func (MXCConfigFlagValues) Apply added in v0.61.0

func (values MXCConfigFlagValues) Apply(cfg *MXCConfig, fs *flag.FlagSet) (MXCConfigApplied, error)

Apply copies explicit flag values. Provider validation must run afterward.

type Machine0Config added in v0.45.0

type Machine0Config struct {
	CLIPath       string        `` /* 179-byte string literal not displayed */
	Image         string        `` /* 194-byte string literal not displayed */
	ImageVersion  int           `` /* 229-byte string literal not displayed */
	DesktopImage  string        `` /* 221-byte string literal not displayed */
	Size          string        `` /* 210-byte string literal not displayed */
	SizeExplicit  bool          `sources:"runtime"`
	Region        string        `` /* 176-byte string literal not displayed */
	Key           string        `` /* 204-byte string literal not displayed */
	WorkRoot      string        `` /* 201-byte string literal not displayed */
	ReleasePolicy string        `` /* 232-byte string literal not displayed */
	CreateTimeout time.Duration `` /* 243-byte string literal not displayed */
	PollInterval  time.Duration `` /* 247-byte string literal not displayed */
}

Machine0Config owns input bindings; runtime selection and validation stay provider-owned.

type Machine0ConfigApplied added in v0.56.0

type Machine0ConfigApplied struct {
	InputAccepted bool
	Size          bool
	WorkRoot      bool
}

Machine0ConfigApplied records accepted assignments during one application.

type Machine0ConfigFlagValues added in v0.56.0

type Machine0ConfigFlagValues struct {
	CLIPath       *string
	Image         *string
	ImageVersion  *int
	DesktopImage  *string
	Size          *string
	Region        *string
	Key           *string
	WorkRoot      *string
	ReleasePolicy *string
	CreateTimeout *string
	PollInterval  *string
}

Machine0ConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterMachine0ConfigFlags added in v0.56.0

func RegisterMachine0ConfigFlags(fs *flag.FlagSet, defaults Machine0Config) Machine0ConfigFlagValues

RegisterMachine0ConfigFlags registers mechanical bindings without selecting a provider.

func (Machine0ConfigFlagValues) Apply added in v0.56.0

Apply copies explicit flag values. Provider validation must run afterward.

type Machine0ConfigVisitedFlags added in v0.56.0

type Machine0ConfigVisitedFlags struct {
	Size     bool
	WorkRoot bool
}

Machine0ConfigVisitedFlags records raw flag visits, independently of application.

func Machine0ConfigFlagPresence added in v0.56.0

func Machine0ConfigFlagPresence(fs *flag.FlagSet) Machine0ConfigVisitedFlags

Machine0ConfigFlagPresence reports visits for tracked flag bindings.

type MissingLeaseClaimError added in v0.67.0

type MissingLeaseClaimError struct {
	LeaseID string
	Err     error
}

MissingLeaseClaimError preserves the resolver's error contract while letting CLI stop explain a missing claim without claiming proof of a previous stop.

func (*MissingLeaseClaimError) Error added in v0.67.0

func (e *MissingLeaseClaimError) Error() string

func (*MissingLeaseClaimError) Unwrap added in v0.67.0

func (e *MissingLeaseClaimError) Unwrap() error

type ModalConfig added in v0.13.0

type ModalConfig struct {
	App         string   `` /* 187-byte string literal not displayed */
	Image       string   `` /* 210-byte string literal not displayed */
	Workdir     string   `` /* 225-byte string literal not displayed */
	Python      string   `` /* 208-byte string literal not displayed */
	Environment string   `` /* 203-byte string literal not displayed */
	Secrets     []string `` /* 232-byte string literal not displayed */
}

ModalConfig describes mechanical bindings for the delegated Modal provider. Secrets contains names; native secret lookup and authentication stay in Modal.

type ModalConfigApplied added in v0.56.0

type ModalConfigApplied struct {
	InputAccepted bool
}

ModalConfigApplied records accepted assignments during one application.

type ModalConfigFlagValues added in v0.54.0

type ModalConfigFlagValues struct {
	App         *string
	Image       *string
	Workdir     *string
	Python      *string
	Environment *string
	Secrets     *replaceAppendListFlag
}

ModalConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterModalConfigFlags added in v0.54.0

func RegisterModalConfigFlags(fs *flag.FlagSet, defaults ModalConfig) ModalConfigFlagValues

RegisterModalConfigFlags registers mechanical bindings without selecting a provider.

func (ModalConfigFlagValues) Apply added in v0.54.0

Apply copies explicit flag values. Provider validation must run afterward.

type MorphConfig added in v0.29.0

type MorphConfig struct {
	APIKey          string `` /* 156-byte string literal not displayed */
	APIURL          string `` /* 211-byte string literal not displayed */
	Snapshot        string `` /* 165-byte string literal not displayed */
	SSHGatewayHost  string `` /* 242-byte string literal not displayed */
	WorkRoot        string `` /* 203-byte string literal not displayed */
	DeleteOnRelease bool   `` /* 208-byte string literal not displayed */
	WakeOnSSH       bool   `` /* 172-byte string literal not displayed */
}

MorphConfig describes mechanical bindings for the SSH lease provider. Credential source and explicit release-policy markers remain handwritten.

type MorphConfigApplied added in v0.54.0

type MorphConfigApplied struct {
	InputAccepted   bool
	APIKey          bool
	APIURL          bool
	SSHGatewayHost  bool
	DeleteOnRelease bool
}

MorphConfigApplied records accepted assignments during one application.

type MorphConfigFlagValues added in v0.54.0

type MorphConfigFlagValues struct {
	APIURL          *string
	Snapshot        *string
	SSHGatewayHost  *string
	WorkRoot        *string
	DeleteOnRelease *bool
	WakeOnSSH       *bool
}

MorphConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterMorphConfigFlags added in v0.54.0

func RegisterMorphConfigFlags(fs *flag.FlagSet, defaults MorphConfig) MorphConfigFlagValues

RegisterMorphConfigFlags registers mechanical bindings without selecting a provider.

func (MorphConfigFlagValues) Apply added in v0.54.0

Apply copies explicit flag values. Provider validation must run afterward.

type MorphConfigVisitedFlags added in v0.54.0

type MorphConfigVisitedFlags struct {
	APIURL          bool
	SSHGatewayHost  bool
	DeleteOnRelease bool
}

MorphConfigVisitedFlags records raw flag visits, independently of application.

func MorphConfigFlagPresence added in v0.54.0

func MorphConfigFlagPresence(fs *flag.FlagSet) MorphConfigVisitedFlags

MorphConfigFlagPresence reports visits for tracked flag bindings.

type MultipassConfig added in v0.26.0

type MultipassConfig struct {
	CLIPath       string        `` /* 183-byte string literal not displayed */
	Image         string        `` /* 199-byte string literal not displayed */
	User          string        `` /* 223-byte string literal not displayed */
	WorkRoot      string        `` /* 227-byte string literal not displayed */
	CPUs          int           `` /* 247-byte string literal not displayed */
	Memory        string        `` /* 211-byte string literal not displayed */
	Disk          string        `` /* 205-byte string literal not displayed */
	LaunchTimeout time.Duration `` /* 244-byte string literal not displayed */
}

MultipassConfig owns input bindings; portable image selection stays with core.

type MultipassConfigApplied added in v0.56.0

type MultipassConfigApplied struct {
	InputAccepted bool
	Image         bool
	User          bool
	WorkRoot      bool
}

MultipassConfigApplied records accepted assignments during one application.

type MultipassConfigFlagValues added in v0.56.0

type MultipassConfigFlagValues struct {
	CLIPath       *string
	Image         *string
	User          *string
	WorkRoot      *string
	CPUs          *int
	Memory        *string
	Disk          *string
	LaunchTimeout *string
}

MultipassConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterMultipassConfigFlags added in v0.56.0

func RegisterMultipassConfigFlags(fs *flag.FlagSet, defaults MultipassConfig) MultipassConfigFlagValues

RegisterMultipassConfigFlags registers mechanical bindings without selecting a provider.

func (MultipassConfigFlagValues) Apply added in v0.56.0

Apply copies explicit flag values. Provider validation must run afterward.

type MultipassConfigVisitedFlags added in v0.56.0

type MultipassConfigVisitedFlags struct {
	Image    bool
	User     bool
	WorkRoot bool
}

MultipassConfigVisitedFlags records raw flag visits, independently of application.

func MultipassConfigFlagPresence added in v0.56.0

func MultipassConfigFlagPresence(fs *flag.FlagSet) MultipassConfigVisitedFlags

MultipassConfigFlagPresence reports visits for tracked flag bindings.

type NamespaceConfig added in v0.9.0

type NamespaceConfig struct {
	Image               string        `` /* 192-byte string literal not displayed */
	Size                string        `` /* 202-byte string literal not displayed */
	Repository          string        `` /* 198-byte string literal not displayed */
	Site                string        `` /* 165-byte string literal not displayed */
	VolumeSizeGB        int           `` /* 251-byte string literal not displayed */
	AutoStopIdleTimeout time.Duration `` /* 363-byte string literal not displayed */
	WorkRoot            string        `` /* 243-byte string literal not displayed */
	DeleteOnRelease     bool          `` /* 221-byte string literal not displayed */
}

NamespaceConfig owns Devbox bindings; generic flag effects stay with the provider.

type NamespaceConfigApplied added in v0.56.0

type NamespaceConfigApplied struct {
	InputAccepted   bool
	Size            bool
	WorkRoot        bool
	DeleteOnRelease bool
}

NamespaceConfigApplied records accepted assignments during one application.

type NamespaceConfigFlagValues added in v0.56.0

type NamespaceConfigFlagValues struct {
	Image               *string
	Size                *string
	Repository          *string
	Site                *string
	VolumeSizeGB        *int
	AutoStopIdleTimeout *string
	WorkRoot            *string
	DeleteOnRelease     *bool
}

NamespaceConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterNamespaceConfigFlags added in v0.56.0

func RegisterNamespaceConfigFlags(fs *flag.FlagSet, defaults NamespaceConfig) NamespaceConfigFlagValues

RegisterNamespaceConfigFlags registers mechanical bindings without selecting a provider.

func (NamespaceConfigFlagValues) Apply added in v0.56.0

Apply copies explicit flag values. Provider validation must run afterward.

type NamespaceConfigVisitedFlags added in v0.56.0

type NamespaceConfigVisitedFlags struct {
	Size            bool
	WorkRoot        bool
	DeleteOnRelease bool
}

NamespaceConfigVisitedFlags records raw flag visits, independently of application.

func NamespaceConfigFlagPresence added in v0.56.0

func NamespaceConfigFlagPresence(fs *flag.FlagSet) NamespaceConfigVisitedFlags

NamespaceConfigFlagPresence reports visits for tracked flag bindings.

type NamespaceInstanceConfig added in v0.30.0

type NamespaceInstanceConfig struct {
	CLIPath     string        `` /* 211-byte string literal not displayed */
	MachineType string        `` /* 239-byte string literal not displayed */
	Duration    time.Duration `` /* 255-byte string literal not displayed */
	Region      string        `` /* 179-byte string literal not displayed */
	Endpoint    string        `` /* 191-byte string literal not displayed */
	Keychain    string        `` /* 193-byte string literal not displayed */
	TenantID    string        `sources:"runtime"`
	Volumes     []string      `` /* 255-byte string literal not displayed */
	WorkRoot    string        `` /* 224-byte string literal not displayed */
	Bare        bool          `` /* 175-byte string literal not displayed */
}

NamespaceInstanceConfig owns input bindings; native instance defaults stay with the provider.

type NamespaceInstanceConfigApplied added in v0.56.0

type NamespaceInstanceConfigApplied struct {
	InputAccepted bool
	CLIPath       bool
}

NamespaceInstanceConfigApplied records accepted assignments during one application.

type NamespaceInstanceConfigFlagValues added in v0.56.0

type NamespaceInstanceConfigFlagValues struct {
	CLIPath     *string
	MachineType *string
	Duration    *string
	Region      *string
	Endpoint    *string
	Keychain    *string
	Volumes     *appendTrimmedListFlag
	WorkRoot    *string
	Bare        *bool
}

NamespaceInstanceConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterNamespaceInstanceConfigFlags added in v0.56.0

func RegisterNamespaceInstanceConfigFlags(fs *flag.FlagSet, defaults NamespaceInstanceConfig) NamespaceInstanceConfigFlagValues

RegisterNamespaceInstanceConfigFlags registers mechanical bindings without selecting a provider.

func (NamespaceInstanceConfigFlagValues) Apply added in v0.56.0

Apply copies explicit flag values. Provider validation must run afterward.

type NamespaceInstanceConfigVisitedFlags added in v0.56.0

type NamespaceInstanceConfigVisitedFlags struct {
	CLIPath bool
}

NamespaceInstanceConfigVisitedFlags records raw flag visits, independently of application.

func NamespaceInstanceConfigFlagPresence added in v0.56.0

func NamespaceInstanceConfigFlagPresence(fs *flag.FlagSet) NamespaceInstanceConfigVisitedFlags

NamespaceInstanceConfigFlagPresence reports visits for tracked flag bindings.

type NativeCheckpointAbandonProvider added in v0.48.1

type NativeCheckpointAbandonProvider interface {
	PrepareNativeCheckpointAbandon(context.Context, NativeCheckpointCreateRequest) (map[string]string, error)
}

NativeCheckpointAbandonProvider binds positive source-cleanup evidence without asserting that the original image was submitted, absent, or safe to discard.

type NativeCheckpointCapability added in v0.19.0

type NativeCheckpointCapability struct {
	Kind   string
	Direct bool
	// PreferredForAuto selects the provider-native kind when no checkpoint
	// strategy is requested.
	PreferredForAuto  bool
	CreateUnsupported string
	RetireUnsupported string
	ReplayCapture     bool
	RetireSource      bool
}

type NativeCheckpointCapture added in v0.48.0

type NativeCheckpointCapture struct {
	SourceDisposition string `json:"sourceDisposition"`
	Phase             string `json:"phase"`
	StrategyExplicit  bool   `json:"strategyExplicit,omitempty"`
	SourceID          string `json:"sourceId"`
	SourceName        string `json:"sourceName"`
	SourceScope       string `json:"sourceScope"`
	SourceRevision    string `json:"sourceRevision"`
	SourceClaimedAt   string `json:"sourceClaimedAt"`
	SourceIntent      string `json:"sourceIntent,omitempty"`
	Error             string `json:"error,omitempty"`
	DiscardFailed     bool   `json:"discardFailed,omitempty"`
}

NativeCheckpointCapture is the host-owned operation journal. Provider metadata is correlation only; source authority comes from the bound local claim.

type NativeCheckpointCreateRequest added in v0.28.0

type NativeCheckpointCreateRequest struct {
	// Persist durably records cleanup identity before a provider mutates remote resources.
	// Providers requiring interruption recovery must stop if persistence fails.
	Persist      func(NativeCheckpointCreateResult) error
	Config       Config
	Runtime      Runtime
	ArtifactDir  string
	Server       Server
	Target       SSHTarget
	CheckpointID string
	LeaseID      string
	Name         string
	RepoName     string
	Workdir      string
	Strategy     string
	NoReboot     bool
	Wait         bool
	WaitTimeout  time.Duration
	Stderr       io.Writer
	Capture      *NativeCheckpointCapture
	Metadata     map[string]string
}

type NativeCheckpointCreateResult added in v0.28.0

type NativeCheckpointCreateResult struct {
	// ArtifactDir is the provider-owned local directory holding the checkpoint.
	ArtifactDir string
	// CaptureEstablished attests a fixed capture under the provider's own
	// contract. False preserves success semantics and omits the JSON assertion.
	CaptureEstablished bool `json:"-"`
	Image              NativeCheckpointImage
	Metadata           map[string]string
}

type NativeCheckpointForkFlagProvider added in v0.29.0

type NativeCheckpointForkFlagProvider interface {
	ApplyNativeCheckpointForkFlags(cfg *Config, fs *flag.FlagSet, values any) error
}

type NativeCheckpointForkLifecycleProvider added in v0.81.0

type NativeCheckpointForkLifecycleProvider interface {
	ForkNativeCheckpoint(context.Context, NativeCheckpointForkLifecycleRequest) (LeaseTarget, error)
}

type NativeCheckpointForkLifecycleRequest added in v0.81.0

type NativeCheckpointForkLifecycleRequest struct {
	OnAcquired    func(LeaseTarget) error
	Record        NativeCheckpointForkRecord
	Repo          Repo
	Keep          bool
	Reclaim       bool
	RequestedSlug string
}

NativeCheckpointForkLifecycleRequest asks a provider to create and claim one lease from a local checkpoint record.

type NativeCheckpointForkProvider added in v0.19.0

type NativeCheckpointForkProvider interface {
	ApplyNativeCheckpointForkConfig(req NativeCheckpointForkRequest) error
}

type NativeCheckpointForkRecord added in v0.19.0

type NativeCheckpointForkRecord struct {
	ArtifactDir  string
	Kind         string
	ImageID      string
	Name         string
	Resource     string
	Region       string
	Project      string
	Direct       bool
	HostID       string
	TargetOS     string
	WindowsMode  string
	Desktop      bool
	ServerType   string
	Architecture string
	Metadata     map[string]string
}

type NativeCheckpointForkRequest added in v0.19.0

type NativeCheckpointForkRequest struct {
	Config              *Config
	Record              NativeCheckpointForkRecord
	MarketExplicit      bool
	AzureOSDisk         string
	AzureOSDiskExplicit bool
}

type NativeCheckpointImage added in v0.28.0

type NativeCheckpointImage struct {
	ID               string
	Name             string
	State            string
	Provider         string
	Kind             string
	Region           string
	AccountID        string
	ResourceID       string
	ResourceUniqueID string
	SnapshotIDs      []string
	Architecture     string
	Direct           bool
}

type NativeCheckpointLifecycleProvider added in v0.28.0

type NativeCheckpointLifecycleProvider interface {
	NativeCheckpointWorkdir(req NativeCheckpointWorkdirRequest) string
	CreateNativeCheckpoint(ctx context.Context, req NativeCheckpointCreateRequest) (NativeCheckpointCreateResult, error)
	VerifyNativeCheckpoint(ctx context.Context, req NativeCheckpointResourceRequest) (NativeCheckpointVerifyResult, error)
	DeleteNativeCheckpoint(ctx context.Context, req NativeCheckpointResourceRequest) error
}

type NativeCheckpointNotSubmittedError added in v0.48.1

type NativeCheckpointNotSubmittedError struct{ Cause error }

NativeCheckpointNotSubmittedError attests that this invocation never attempted image submission. An empty result or a failed request cannot establish this.

func (NativeCheckpointNotSubmittedError) Error added in v0.48.1

func (NativeCheckpointNotSubmittedError) Unwrap added in v0.48.1

type NativeCheckpointProvider added in v0.19.0

type NativeCheckpointProvider interface {
	NativeCheckpointCapability(req NativeCheckpointRequest) (NativeCheckpointCapability, bool)
}

type NativeCheckpointRequest added in v0.19.0

type NativeCheckpointRequest struct {
	Config           Config
	Server           Server
	Target           SSHTarget
	Strategy         string
	StrategyExplicit bool
}

type NativeCheckpointResourceRequest added in v0.28.0

type NativeCheckpointResourceRequest struct {
	// Persist records recovered identity before deletion; absent on read-only verification.
	Persist func(NativeCheckpointCreateResult) error
	// LoadConfig is required only when the provider needs current CLI settings.
	LoadConfig  func() (Config, error)
	Config      Config
	Runtime     Runtime
	ArtifactDir string
	Image       NativeCheckpointImage
	Metadata    map[string]string
	Capture     *NativeCheckpointCapture
}

func AuthorizedCheckpointReleaseResource added in v0.48.0

func AuthorizedCheckpointReleaseResource(claim LeaseClaim, checkpointID string) (NativeCheckpointResourceRequest, error)

AuthorizedCheckpointReleaseResource returns the journal's resource only after validating retirement authority. Call under the claim fence for finalization; the checkpoint owner already holds its journal lock before taking that fence.

type NativeCheckpointRestoreProvider added in v0.81.0

type NativeCheckpointRestoreProvider interface {
	RestoreNativeCheckpoint(context.Context, NativeCheckpointRestoreRequest) (NativeCheckpointRestoreResult, error)
}

type NativeCheckpointRestoreRequest added in v0.81.0

type NativeCheckpointRestoreRequest struct {
	Config  Config
	Runtime Runtime
	Record  NativeCheckpointForkRecord
	LeaseID string
	Repo    Repo
	Reclaim bool
}

NativeCheckpointRestoreRequest restores an existing lease in place from a checkpoint record.

type NativeCheckpointRestoreResult added in v0.81.0

type NativeCheckpointRestoreResult struct {
	Lease LeaseTarget
}

type NativeCheckpointSourcePolicyProvider added in v0.47.0

type NativeCheckpointSourcePolicyProvider interface {
	NativeCheckpointSourceStatusOnly(Config) bool
}

NativeCheckpointSourcePolicyProvider lets API-native capture resolve a source without starting it or minting transport credentials before stop consent.

type NativeCheckpointVerifyResult added in v0.28.0

type NativeCheckpointVerifyResult struct {
	ProviderState string
	NextAction    string
	Error         string
}

type NativeCheckpointWorkdirRequest added in v0.28.0

type NativeCheckpointWorkdirRequest struct {
	Config   Config
	Server   Server
	LeaseID  string
	RepoName string
	Override string
}

type NebiusConfig added in v0.33.0

type NebiusConfig struct {
	CLI              string   `` /* 162-byte string literal not displayed */
	Profile          string   `` /* 165-byte string literal not displayed */
	ParentID         string   `` /* 176-byte string literal not displayed */
	SubnetID         string   `` /* 168-byte string literal not displayed */
	Platform         string   `` /* 190-byte string literal not displayed */
	Preset           string   `` /* 186-byte string literal not displayed */
	ImageFamily      string   `` /* 218-byte string literal not displayed */
	DiskType         string   `` /* 195-byte string literal not displayed */
	DiskSizeGiB      int      `` /* 237-byte string literal not displayed */
	User             string   `` /* 179-byte string literal not displayed */
	PublicIP         string   `` /* 208-byte string literal not displayed */
	SecurityGroupIDs []string `` /* 244-byte string literal not displayed */
	ServiceAccountID string   `` /* 206-byte string literal not displayed */
	RecoveryPolicy   string   `` /* 220-byte string literal not displayed */
}

NebiusConfig is intentionally non-secret. Authentication stays in the Nebius CLI profile store and is never accepted as Crabbox config or argv.

func (NebiusConfig) WithRuntimeDefaults added in v0.56.0

func (cfg NebiusConfig) WithRuntimeDefaults() NebiusConfig

WithRuntimeDefaults fills only the existing raw-empty strings and zero disk size. Other settings and slice identity remain unchanged.

type NebiusConfigApplied added in v0.56.0

type NebiusConfigApplied struct {
	InputAccepted bool
}

NebiusConfigApplied records accepted assignments during one application.

type NebiusConfigFlagValues added in v0.56.0

type NebiusConfigFlagValues struct {
	CLI              *string
	Profile          *string
	ParentID         *string
	SubnetID         *string
	Platform         *string
	Preset           *string
	ImageFamily      *string
	DiskType         *string
	DiskSizeGiB      *int
	User             *string
	PublicIP         *string
	SecurityGroupIDs *string
	ServiceAccountID *string
	RecoveryPolicy   *string
}

NebiusConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterNebiusConfigFlags added in v0.56.0

func RegisterNebiusConfigFlags(fs *flag.FlagSet, defaults NebiusConfig) NebiusConfigFlagValues

RegisterNebiusConfigFlags registers mechanical bindings without selecting a provider.

func (NebiusConfigFlagValues) Apply added in v0.56.0

Apply copies explicit flag values. Provider validation must run afterward.

type NetworkMode added in v0.5.0

type NetworkMode string
const (
	NetworkAuto      NetworkMode = "auto"
	NetworkTailscale NetworkMode = "tailscale"
	NetworkPublic    NetworkMode = "public"
)

type NomadConfig added in v0.35.0

type NomadConfig struct {
	Address           string        `` /* 218-byte string literal not displayed */
	Region            string        `` /* 191-byte string literal not displayed */
	Namespace         string        `` /* 209-byte string literal not displayed */
	TokenEnv          string        `` /* 239-byte string literal not displayed */
	CACert            string        `` /* 231-byte string literal not displayed */
	CAPath            string        `` /* 229-byte string literal not displayed */
	ClientCert        string        `` /* 234-byte string literal not displayed */
	ClientKey         string        `` /* 222-byte string literal not displayed */
	TLSServerName     string        `` /* 225-byte string literal not displayed */
	SkipVerify        bool          `` /* 164-byte string literal not displayed */
	Task              string        `` /* 146-byte string literal not displayed */
	Driver            string        `` /* 153-byte string literal not displayed */
	Image             string        `` /* 155-byte string literal not displayed */
	Workdir           string        `` /* 167-byte string literal not displayed */
	JobSpecTemplate   string        `` /* 224-byte string literal not displayed */
	NodePool          string        `` /* 194-byte string literal not displayed */
	Datacenters       []string      `` /* 237-byte string literal not displayed */
	CPU               int           `` /* 166-byte string literal not displayed */
	MemoryMB          int           `` /* 185-byte string literal not displayed */
	DiskMB            int           `` /* 187-byte string literal not displayed */
	AllocReadyTimeout time.Duration `` /* 323-byte string literal not displayed */
	EvalTimeout       time.Duration `` /* 296-byte string literal not displayed */
	ExecTimeoutSecs   int           `` /* 195-byte string literal not displayed */
}

NomadConfig owns mechanical bindings; token values remain runtime-only.

type NomadConfigApplied added in v0.61.0

type NomadConfigApplied struct {
	InputAccepted   bool
	Address         bool
	TokenEnv        bool
	CACert          bool
	CAPath          bool
	ClientCert      bool
	ClientKey       bool
	JobSpecTemplate bool
}

NomadConfigApplied records accepted assignments during one application.

type NomadConfigFlagValues added in v0.61.0

type NomadConfigFlagValues struct {
	Address           *string
	Region            *string
	Namespace         *string
	TokenEnv          *string
	CACert            *string
	CAPath            *string
	ClientCert        *string
	ClientKey         *string
	TLSServerName     *string
	SkipVerify        *bool
	Task              *string
	Driver            *string
	Image             *string
	Workdir           *string
	JobSpecTemplate   *string
	NodePool          *string
	Datacenters       *string
	CPU               *int
	MemoryMB          *int
	DiskMB            *int
	AllocReadyTimeout *string
	EvalTimeout       *string
	ExecTimeoutSecs   *int
}

NomadConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterNomadConfigFlags added in v0.61.0

func RegisterNomadConfigFlags(fs *flag.FlagSet, defaults NomadConfig) NomadConfigFlagValues

RegisterNomadConfigFlags registers mechanical bindings without selecting a provider.

func (NomadConfigFlagValues) Apply added in v0.61.0

Apply copies explicit flag values. Provider validation must run afterward.

type NomadConfigVisitedFlags added in v0.61.0

type NomadConfigVisitedFlags struct {
	Address         bool
	TokenEnv        bool
	CACert          bool
	CAPath          bool
	ClientCert      bool
	ClientKey       bool
	JobSpecTemplate bool
}

NomadConfigVisitedFlags records raw flag visits, independently of application.

func NomadConfigFlagPresence added in v0.61.0

func NomadConfigFlagPresence(fs *flag.FlagSet) NomadConfigVisitedFlags

NomadConfigFlagPresence reports visits for tracked flag bindings.

type NvidiaBrevConfig added in v0.31.0

type NvidiaBrevConfig struct {
	CLI        string `` /* 175-byte string literal not displayed */
	Org        string `` /* 178-byte string literal not displayed */
	Type       string `` /* 182-byte string literal not displayed */
	GPUName    string `` /* 203-byte string literal not displayed */
	Provider   string `` /* 195-byte string literal not displayed */
	Mode       string `` /* 181-byte string literal not displayed */
	Launchable string `` /* 197-byte string literal not displayed */
	// applyNvidiaBrevFileConfig owns the additional startup-script file admission.
	StartupScript string `` /* 232-byte string literal not displayed */
	ReleaseAction string `` /* 257-byte string literal not displayed */
	Target        string `` /* 236-byte string literal not displayed */
	User          string `` /* 183-byte string literal not displayed */
	WorkRoot      string `` /* 256-byte string literal not displayed */
}

NvidiaBrevConfig is intentionally non-secret. Authentication stays in the NVIDIA Brev CLI's own credential store and is never accepted as Crabbox config or argv.

func (NvidiaBrevConfig) WithRuntimeDefaults added in v0.56.0

func (cfg NvidiaBrevConfig) WithRuntimeDefaults() NvidiaBrevConfig

WithRuntimeDefaults fills raw empty settings; WorkRoot retains its explicit-input resolver.

type NvidiaBrevConfigApplied added in v0.56.0

type NvidiaBrevConfigApplied struct {
	InputAccepted bool
	ReleaseAction bool
	Target        bool
	WorkRoot      bool
}

NvidiaBrevConfigApplied records accepted assignments during one application.

type NvidiaBrevConfigFlagValues added in v0.56.0

type NvidiaBrevConfigFlagValues struct {
	CLI           *string
	Org           *string
	Type          *string
	GPUName       *string
	Provider      *string
	Mode          *string
	Launchable    *string
	StartupScript *string
	ReleaseAction *string
	Target        *string
	User          *string
	WorkRoot      *string
}

NvidiaBrevConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterNvidiaBrevConfigFlags added in v0.56.0

func RegisterNvidiaBrevConfigFlags(fs *flag.FlagSet, defaults NvidiaBrevConfig) NvidiaBrevConfigFlagValues

RegisterNvidiaBrevConfigFlags registers mechanical bindings without selecting a provider.

func (NvidiaBrevConfigFlagValues) Apply added in v0.56.0

Apply copies explicit flag values. Provider validation must run afterward.

type NvidiaBrevConfigVisitedFlags added in v0.56.0

type NvidiaBrevConfigVisitedFlags struct {
	ReleaseAction bool
	Target        bool
	WorkRoot      bool
}

NvidiaBrevConfigVisitedFlags records raw flag visits, independently of application.

func NvidiaBrevConfigFlagPresence added in v0.56.0

func NvidiaBrevConfigFlagPresence(fs *flag.FlagSet) NvidiaBrevConfigVisitedFlags

NvidiaBrevConfigFlagPresence reports visits for tracked flag bindings.

type OVHConfig added in v0.31.0

type OVHConfig struct {
	Endpoint  string `` /* 194-byte string literal not displayed */
	ProjectID string `` /* 181-byte string literal not displayed */
	Region    string `` /* 166-byte string literal not displayed */
	Image     string `` /* 217-byte string literal not displayed */
	Flavor    string `` /* 192-byte string literal not displayed */
}

OVHConfig contains non-secret OVHcloud Public Cloud settings. OVH application credentials are intentionally read from environment variables by the provider client and are not persisted in Crabbox config.

type OVHConfigApplied added in v0.54.0

type OVHConfigApplied struct {
	InputAccepted bool
	Image         bool
}

OVHConfigApplied records accepted assignments during one application.

type OVHConfigFlagValues added in v0.54.0

type OVHConfigFlagValues struct {
	Endpoint  *string
	ProjectID *string
	Region    *string
	Image     *string
	Flavor    *string
}

OVHConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterOVHConfigFlags added in v0.54.0

func RegisterOVHConfigFlags(fs *flag.FlagSet, defaults OVHConfig) OVHConfigFlagValues

RegisterOVHConfigFlags registers mechanical bindings without selecting a provider.

func (OVHConfigFlagValues) Apply added in v0.54.0

func (values OVHConfigFlagValues) Apply(cfg *OVHConfig, fs *flag.FlagSet) (OVHConfigApplied, error)

Apply copies explicit flag values. Provider validation must run afterward.

type OVHConfigVisitedFlags added in v0.54.0

type OVHConfigVisitedFlags struct {
	Image bool
}

OVHConfigVisitedFlags records raw flag visits, independently of application.

func OVHConfigFlagPresence added in v0.54.0

func OVHConfigFlagPresence(fs *flag.FlagSet) OVHConfigVisitedFlags

OVHConfigFlagPresence reports visits for tracked flag bindings.

type OpenComputerConfig added in v0.29.0

type OpenComputerConfig struct {
	APIURL          string `` /* 191-byte string literal not displayed */
	Workdir         string `` /* 260-byte string literal not displayed */
	CPU             int    `` /* 252-byte string literal not displayed */
	MemoryMB        int    `` /* 268-byte string literal not displayed */
	TimeoutSecs     int    `` /* 251-byte string literal not displayed */
	ExecTimeoutSecs int    `` /* 280-byte string literal not displayed */
	Burst           bool   `` /* 193-byte string literal not displayed */
	ForgetMissing   bool   `` /* 129-byte string literal not displayed */
}

OpenComputerConfig describes mechanical bindings for the delegated provider. APIURL stays unset by default so external OC config precedes the client's built-in URL. API-key resolution remains outside this config structure.

type OpenComputerConfigApplied added in v0.56.0

type OpenComputerConfigApplied struct {
	InputAccepted bool
}

OpenComputerConfigApplied records accepted assignments during one application.

type OpenComputerConfigFlagValues added in v0.54.0

type OpenComputerConfigFlagValues struct {
	APIURL          *string
	Workdir         *string
	CPU             *int
	MemoryMB        *int
	TimeoutSecs     *int
	ExecTimeoutSecs *int
	Burst           *bool
	ForgetMissing   *bool
}

OpenComputerConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterOpenComputerConfigFlags added in v0.54.0

func RegisterOpenComputerConfigFlags(fs *flag.FlagSet, defaults OpenComputerConfig) OpenComputerConfigFlagValues

RegisterOpenComputerConfigFlags registers mechanical bindings without selecting a provider.

func (OpenComputerConfigFlagValues) Apply added in v0.54.0

Apply copies explicit flag values. Provider validation must run afterward.

type OpenSandboxConfig added in v0.29.0

type OpenSandboxConfig struct {
	APIURL          string `` /* 188-byte string literal not displayed */
	Image           string `` /* 162-byte string literal not displayed */
	Workdir         string `` /* 215-byte string literal not displayed */
	CPU             string `` /* 177-byte string literal not displayed */
	Memory          string `` /* 191-byte string literal not displayed */
	TimeoutSecs     int    `` /* 229-byte string literal not displayed */
	ExecTimeoutSecs int    `` /* 239-byte string literal not displayed */
	PlatformOS      string `` /* 244-byte string literal not displayed */
	PlatformArch    string `` /* 258-byte string literal not displayed */
	SecureAccess    bool   `` /* 164-byte string literal not displayed */
	UseServerProxy  bool   `` /* 196-byte string literal not displayed */
	ForgetMissing   bool   `` /* 128-byte string literal not displayed */
}

OpenSandboxConfig describes mechanical bindings for the delegated provider. APIURL has no YAML source; ForgetMissing remains an explicit CLI-only choice. Credentials and provider/request validation stay outside these bindings.

type OpenSandboxConfigApplied added in v0.56.0

type OpenSandboxConfigApplied struct {
	InputAccepted bool
}

OpenSandboxConfigApplied records accepted assignments during one application.

type OpenSandboxConfigFlagValues added in v0.53.0

type OpenSandboxConfigFlagValues struct {
	APIURL          *string
	Image           *string
	Workdir         *string
	CPU             *string
	Memory          *string
	TimeoutSecs     *int
	ExecTimeoutSecs *int
	PlatformOS      *string
	PlatformArch    *string
	SecureAccess    *bool
	UseServerProxy  *bool
	ForgetMissing   *bool
}

OpenSandboxConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterOpenSandboxConfigFlags added in v0.53.0

func RegisterOpenSandboxConfigFlags(fs *flag.FlagSet, defaults OpenSandboxConfig) OpenSandboxConfigFlagValues

RegisterOpenSandboxConfigFlags registers mechanical bindings without selecting a provider.

func (OpenSandboxConfigFlagValues) Apply added in v0.53.0

Apply copies explicit flag values. Provider validation must run afterward.

type OrdinaryStopAbsenceRecovery added in v0.64.0

type OrdinaryStopAbsenceRecovery interface {
	ReconcileAbsenceOnOrdinaryStop() bool
}

OrdinaryStopAbsenceRecovery preserves an adapter's existing ordinary-stop contract. Other capable adapters require the targeted --force recovery path.

type OrgoConfig added in v0.37.1

type OrgoConfig struct {
	APIKey      string `` /* 176-byte string literal not displayed */
	APIBase     string `` /* 246-byte string literal not displayed */
	WorkspaceID string `` /* 235-byte string literal not displayed */
	RAMGB       int    `` /* 204-byte string literal not displayed */
	CPUs        int    `` /* 201-byte string literal not displayed */
	DiskGB      int    `` /* 213-byte string literal not displayed */
	Resolution  string `` /* 222-byte string literal not displayed */
}

OrgoConfig describes mechanical bindings for the delegated provider. Runtime key normalization and destination validation remain separate policy.

type OrgoConfigApplied added in v0.54.0

type OrgoConfigApplied struct {
	InputAccepted bool
	APIKey        bool
	APIBase       bool
}

OrgoConfigApplied records accepted assignments during one application.

type OrgoConfigFlagValues added in v0.54.0

type OrgoConfigFlagValues struct {
	APIBase     *string
	WorkspaceID *string
	RAMGB       *int
	CPUs        *int
	DiskGB      *int
	Resolution  *string
}

OrgoConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterOrgoConfigFlags added in v0.54.0

func RegisterOrgoConfigFlags(fs *flag.FlagSet, defaults OrgoConfig) OrgoConfigFlagValues

RegisterOrgoConfigFlags registers mechanical bindings without selecting a provider.

func (OrgoConfigFlagValues) Apply added in v0.54.0

Apply copies explicit flag values. Provider validation must run afterward.

type OrgoConfigVisitedFlags added in v0.54.0

type OrgoConfigVisitedFlags struct {
	APIBase bool
}

OrgoConfigVisitedFlags records raw flag visits, independently of application.

func OrgoConfigFlagPresence added in v0.54.0

func OrgoConfigFlagPresence(fs *flag.FlagSet) OrgoConfigVisitedFlags

OrgoConfigFlagPresence reports visits for tracked flag bindings.

type ParallelsClient added in v0.17.0

type ParallelsClient struct {
	Cfg    Config
	Runner CommandRunner
	// WarnClone receives advisory output immediately before clone submission.
	WarnClone func(string)
	// contains filtered or unexported fields
}

func NewParallelsClient added in v0.17.0

func NewParallelsClient(cfg Config, runner CommandRunner) *ParallelsClient

func (*ParallelsClient) BootstrapMacOSOverSSH added in v0.63.0

func (c *ParallelsClient) BootstrapMacOSOverSSH(ctx context.Context, ip string, cfg Config, publicKey string) error

BootstrapMacOSOverSSH installs the per-lease key and performs the normal guest preparation through a pre-provisioned host-side identity. The key path belongs to the Parallels host (local or remote), never to the cloned guest.

func (*ParallelsClient) Clone added in v0.17.0

func (c *ParallelsClient) Clone(ctx context.Context, source, snapshotID, leaseID, slug string, keep bool) (Server, error)

func (*ParallelsClient) CreateSnapshot added in v0.17.0

func (c *ParallelsClient) CreateSnapshot(ctx context.Context, vmID, name, description string) (ParallelsSnapshot, error)

func (*ParallelsClient) Delete added in v0.17.0

func (c *ParallelsClient) Delete(ctx context.Context, id string) error

func (*ParallelsClient) DeleteSnapshot added in v0.17.0

func (c *ParallelsClient) DeleteSnapshot(ctx context.Context, vmID, snapshotID string, children bool) error

func (*ParallelsClient) EnsureGuestReady added in v0.17.0

func (c *ParallelsClient) EnsureGuestReady(ctx context.Context, vmID string, cfg Config) error

func (*ParallelsClient) EnsureHostDir added in v0.64.0

func (c *ParallelsClient) EnsureHostDir(ctx context.Context, dir string) error

EnsureHostDir creates a directory on the Parallels host. A fixed lease clones into a per-attempt directory, and prlctl requires --dst to exist already.

func (*ParallelsClient) GetVM added in v0.17.0

func (c *ParallelsClient) GetVM(ctx context.Context, id string) (ParallelsVM, error)

func (*ParallelsClient) InstallSSHKey added in v0.17.0

func (c *ParallelsClient) InstallSSHKey(ctx context.Context, vmID string, cfg Config, publicKey string) error

func (*ParallelsClient) ListCrabboxServers added in v0.17.0

func (c *ParallelsClient) ListCrabboxServers(ctx context.Context) ([]Server, error)

func (*ParallelsClient) ListVMs added in v0.17.0

func (c *ParallelsClient) ListVMs(ctx context.Context) ([]ParallelsVM, error)

func (*ParallelsClient) ListVMsDetailed added in v0.64.0

func (c *ParallelsClient) ListVMsDetailed(ctx context.Context) ([]ParallelsVM, error)

ListVMsDetailed returns the complete inventory with per-VM detail. The plain listing reports only uuid, name, status and address; the bundle path a fixed lease attests its VM by comes from the info form.

func (*ParallelsClient) POSIXGuestText added in v0.17.0

func (c *ParallelsClient) POSIXGuestText(ctx context.Context, id, path string) (string, error)

func (*ParallelsClient) RemoveHostDirIfEmpty added in v0.64.0

func (c *ParallelsClient) RemoveHostDirIfEmpty(ctx context.Context, dir string)

RemoveHostDirIfEmpty clears a spent per-attempt directory. It never recurses: only an empty directory is removed, so a surviving VM is never disturbed.

func (*ParallelsClient) ResolveCloneMode added in v0.69.0

func (c *ParallelsClient) ResolveCloneMode(ctx context.Context) error

ResolveCloneMode defers the default until the execution host is selected. Query hardware on that host, including when its shell runs under Rosetta.

func (*ParallelsClient) ServerIdentity added in v0.64.0

func (c *ParallelsClient) ServerIdentity(ctx context.Context) (ParallelsServerIdentity, error)

ServerIdentity reads the connected Parallels service identity. A fixed lease binds to this, not to a fleet entry's display name: repointing an entry's host or account at a different machine changes the reported identity.

func (*ParallelsClient) SetLeaseLabels added in v0.17.0

func (c *ParallelsClient) SetLeaseLabels(leaseID string, labels map[string]string)

func (*ParallelsClient) Snapshot added in v0.17.0

func (c *ParallelsClient) Snapshot(ctx context.Context, vmID, nameOrID string) (ParallelsSnapshot, error)

func (*ParallelsClient) SnapshotID added in v0.17.0

func (c *ParallelsClient) SnapshotID(ctx context.Context, vmID, nameOrID string) (string, error)

func (*ParallelsClient) Snapshots added in v0.17.0

func (c *ParallelsClient) Snapshots(ctx context.Context, id string) ([]ParallelsSnapshot, error)

func (*ParallelsClient) Start added in v0.17.0

func (c *ParallelsClient) Start(ctx context.Context, id string) error

func (*ParallelsClient) Stop added in v0.17.0

func (c *ParallelsClient) Stop(ctx context.Context, id string) error

func (*ParallelsClient) SubmitClone added in v0.64.0

func (c *ParallelsClient) SubmitClone(ctx context.Context, source, snapshotID, leaseID, slug string, keep bool, beforeSubmit func() error) error

SubmitClone validates the request, calls beforeSubmit immediately before `prlctl clone`, and leaves resource discovery to the caller. A mutable-name lookup cannot attest which incarnation the clone produced.

func (*ParallelsClient) SwitchSnapshot added in v0.17.0

func (c *ParallelsClient) SwitchSnapshot(ctx context.Context, vmID, snapshotID string, skipResume bool) error

func (*ParallelsClient) ValidateMacOSBootstrapKey added in v0.63.0

func (c *ParallelsClient) ValidateMacOSBootstrapKey(ctx context.Context) error

func (*ParallelsClient) Version added in v0.17.0

func (c *ParallelsClient) Version(ctx context.Context) (string, error)

func (*ParallelsClient) WaitForGuestExec added in v0.17.0

func (c *ParallelsClient) WaitForGuestExec(ctx context.Context, id string, cfg Config, timeout time.Duration) error

func (*ParallelsClient) WaitForIP added in v0.17.0

func (c *ParallelsClient) WaitForIP(ctx context.Context, id string, timeout time.Duration, purpose ParallelsIPWaitPurpose) (_ ParallelsVM, err error)

func (*ParallelsClient) WindowsGuestText added in v0.17.0

func (c *ParallelsClient) WindowsGuestText(ctx context.Context, id, path string) (string, error)

type ParallelsConfig added in v0.17.0

type ParallelsConfig struct {
	Template         string
	Source           string
	SourceID         string
	SourceSnapshot   string
	SourceSnapshotID string
	CloneMode        string
	Host             string
	HostUser         string
	HostKey          string
	BootstrapKey     string
	VMRoot           string
	User             string
	Password         string
	WorkRoot         string
	StartupTimeout   time.Duration
	Templates        map[string]ParallelsTemplateConfig
	Hosts            []ParallelsHostConfig
	SelectedHost     string
	// Separate from explicitSSHUser: provider overrides must not become generic
	// connection settings when switching to another provider.
	UserExplicit bool
	// MaxVMs caps concurrent Crabbox VMs on the direct host. A selected fleet
	// entry's own MaxVMs always wins, and this is not a default for fleet
	// entries that omit it.
	MaxVMs int
}

type ParallelsHostConfig added in v0.17.0

type ParallelsHostConfig struct {
	Name    string
	Host    string
	User    string
	Key     string
	VMRoot  string
	Targets []string
	MaxVMs  int
	// contains filtered or unexported fields
}

type ParallelsIPWaitPurpose added in v0.64.0

type ParallelsIPWaitPurpose uint8

Acquisition owns clone mode and rollback; resolving an existing VM does not.

const (
	ParallelsIPWaitExisting ParallelsIPWaitPurpose = iota
	ParallelsIPWaitAcquisition
)

type ParallelsServerIdentity added in v0.64.0

type ParallelsServerIdentity struct {
	ServerID   string `json:"serverId"`
	HardwareID string `json:"hardwareId"`
	AccountID  string `json:"accountId"`
	// VMHome is the service's default VM directory. It is the base a fixed
	// lease clones into when no vmRoot is configured.
	VMHome string `json:"-"`
}

ParallelsServerIdentity is the Parallels service's own account of the machine it runs on. Neither field is derived from configuration, so it attests which machine a connection actually reached rather than which one it was labelled with.

type ParallelsSnapshot added in v0.17.0

type ParallelsSnapshot struct {
	ID      string
	Name    string
	Date    string
	State   string
	Current bool
	Parent  string
}

type ParallelsTemplateConfig added in v0.17.0

type ParallelsTemplateConfig struct {
	Source           string
	SourceID         string
	SourceSnapshot   string
	SourceSnapshotID string
	TargetOS         string
	WindowsMode      string
	CloneMode        string
	Host             string
	HostUser         string
	HostKey          string
	VMRoot           string
	User             string
	WorkRoot         string
	// contains filtered or unexported fields
}

type ParallelsVM added in v0.17.0

type ParallelsVM struct {
	ID           string
	Name         string
	State        string
	OS           string
	Home         string
	IP           string
	LinkLocalIP  string
	IPSource     string
	MACs         []string
	Template     bool
	SnapshotName string
}

type PausableBackend added in v0.29.0

type PausableBackend interface {
	Backend
	Pause(ctx context.Context, req PauseRequest) error
	Resume(ctx context.Context, req ResumeRequest) error
}

PausableBackend is implemented by providers that can pause a lease, freeing remote compute while preserving its state, and resume it later. It is optional: the `pause`/`resume` commands report a clear error for providers that do not implement it.

type PauseRequest added in v0.29.0

type PauseRequest struct {
	Lifecycle RetentionLifecycleRequest
	Options   LeaseOptions
	ID        string
}

type PendingGuestExtension added in v0.76.0

type PendingGuestExtension struct {
	BySeconds    int64  `json:"bySeconds"`
	TTLSeconds   int64  `json:"ttlSeconds"`
	Reason       string `json:"reason,omitempty"`
	OldExpiresAt string `json:"oldExpiresAt"`
	NewTTL       string `json:"newTTL"`
}

PendingGuestExtension makes a failed file-backed refresh retryable without applying --by twice. It is local recovery state, never provider metadata.

type PhalaConfig added in v0.33.0

type PhalaConfig struct {
	CLIPath      string `` /* 179-byte string literal not displayed */
	InstanceType string `` /* 262-byte string literal not displayed */
	// The dev OS root is read-only; this dedicated writable tmpfs holds the workspace.
	WorkRoot string `` /* 206-byte string literal not displayed */
	NodeID   string `` /* 174-byte string literal not displayed */
	Compose  string `` /* 219-byte string literal not displayed */
	// Nil retains the provider's existing effective default. File admission is wrapper-owned.
	Attest *bool `` /* 185-byte string literal not displayed */
}

PhalaConfig holds ordinary settings, not the provider's native credentials.

func (*PhalaConfig) ExpandAppliedLocalPaths added in v0.56.0

func (cfg *PhalaConfig) ExpandAppliedLocalPaths(applied PhalaConfigApplied)

type PhalaConfigApplied added in v0.56.0

type PhalaConfigApplied struct {
	InputAccepted bool
	CLIPath       bool
	InstanceType  bool
	Compose       bool
}

PhalaConfigApplied records accepted assignments during one application.

type PhalaConfigFlagValues added in v0.56.0

type PhalaConfigFlagValues struct {
	CLIPath      *string
	InstanceType *string
	WorkRoot     *string
	NodeID       *string
	Compose      *string
	Attest       *bool
}

PhalaConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterPhalaConfigFlags added in v0.56.0

func RegisterPhalaConfigFlags(fs *flag.FlagSet, defaults PhalaConfig) PhalaConfigFlagValues

RegisterPhalaConfigFlags registers mechanical bindings without selecting a provider.

type PhalaConfigVisitedFlags added in v0.56.0

type PhalaConfigVisitedFlags struct {
	CLIPath      bool
	InstanceType bool
	WorkRoot     bool
	NodeID       bool
	Compose      bool
	Attest       bool
}

PhalaConfigVisitedFlags records raw flag visits, independently of application.

func PhalaConfigFlagPresence added in v0.56.0

func PhalaConfigFlagPresence(fs *flag.FlagSet) PhalaConfigVisitedFlags

PhalaConfigFlagPresence reports visits for tracked flag bindings.

type PhaseMarkerWriter added in v0.12.0

type PhaseMarkerWriter = phaseMarkerWriter

func NewPhaseMarkerWriter added in v0.12.0

func NewPhaseMarkerWriter(tracker *CommandPhaseTracker) *PhaseMarkerWriter

type PondReachabilityMatrix added in v0.22.0

type PondReachabilityMatrix struct {
	Pond       string             `json:"pond"`
	Members    []BridgePeer       `json:"members"`
	Breakdown  map[string]int     `json:"breakdown"`
	Transports []string           `json:"transports"`
	Cells      []ReachabilityCell `json:"cells"`
}

PondReachabilityMatrix is the per-pond reachability matrix surfaced by `crabbox doctor --pond <name>`. Members lists every distinct transport observed in the pond (so callers can interpret the per-row meaning), and Cells is the dense matrix indexed by (from, to) transport pair.

type PortsBackend added in v0.26.1

type PortsBackend interface {
	Backend
	Ports(ctx context.Context, req PortsRequest) (string, error)
}

type PortsRequest added in v0.26.1

type PortsRequest struct {
	Options   LeaseOptions
	ID        string
	Publish   []string
	Unpublish []string
	JSON      bool
}

type PreparedArchive added in v0.46.0

type PreparedArchive struct {
	File              *os.File
	Size              int64
	Manifest          SyncManifest
	ManifestDuration  time.Duration
	PreflightDuration time.Duration
	ArchiveDuration   time.Duration
	// contains filtered or unexported fields
}

func PrepareDelegatedArchive added in v0.46.0

func PrepareDelegatedArchive(ctx context.Context, req DelegatedArchivePreparationRequest) (*PreparedArchive, error)

PrepareDelegatedArchive builds and bounds a workspace archive before any provider resource exists. The returned archive owns its temporary file; Close removes it. Workspace changes after preparation are intentionally not reflected in the uploaded pre-acquisition snapshot.

func (*PreparedArchive) Close added in v0.46.0

func (archive *PreparedArchive) Close() error

Close closes the prepared archive and removes its temporary file exactly once.

type PresetConfig added in v0.15.0

type PresetConfig struct {
	Command       string
	Shell         bool
	Env           map[string]string
	Preflight     bool
	ArtifactGlobs []string
	ProofTemplate string
}

type ProfileConfig added in v0.15.0

type ProfileConfig struct {
	Env            map[string]string
	EnvAllow       []string
	ArtifactGlobs  []string
	Doctor         DoctorProfileConfig
	Presets        map[string]PresetConfig
	ProofTemplates map[string]ProofTemplateConfig
}

type ProofTemplateConfig added in v0.15.0

type ProofTemplateConfig struct {
	BehaviorAddressed     string
	RealEnvironmentTested string
	ExactSteps            string
	ObservedResult        string
	NotTested             string
}

type Provider added in v0.6.0

type Provider interface {
	// Spec returns stable metadata without runtime configuration or side effects.
	Spec() ProviderSpec
	RegisterFlags(fs *flag.FlagSet, defaults Config) any
	ApplyFlags(cfg *Config, fs *flag.FlagSet, values any) error
	Configure(cfg Config, rt Runtime) (Backend, error)
}

func ProviderFor added in v0.6.0

func ProviderFor(name string) (Provider, error)

type ProviderAgentCommander added in v0.75.0

type ProviderAgentCommander interface {
	RunAgent(context.Context, Config, Runtime, []string) error
}

type ProviderArchitectureCapability added in v0.44.0

type ProviderArchitectureCapability interface {
	SupportsArchitecture(cfg Config, architecture string) bool
}

type ProviderAuthentication added in v0.56.0

type ProviderAuthentication []ProviderAuthenticationRoute

ProviderAuthentication covers provider control-plane access (or the sole connection for SSH/external providers). Guest/bootstrap, image-registry, and deployment credentials remain separate requirements. Local context is not a claim that the complete provider lifecycle needs no credentials.

func DirectProviderAuthentication added in v0.56.0

func DirectProviderAuthentication(methods ...ProviderAuthenticationMethod) ProviderAuthentication

DirectProviderAuthentication declares possible direct-access interfaces and snapshots the method list without resolving credentials or invoking a client.

type ProviderAuthenticationMethod added in v0.56.0

type ProviderAuthenticationMethod string

ProviderAuthenticationMethod describes a possible provider-access interface, not credential presence, permission, or a successful authentication check.

const (
	ProviderAuthenticationAPIKey           ProviderAuthenticationMethod = "api_key"
	ProviderAuthenticationAPIToken         ProviderAuthenticationMethod = "api_token"
	ProviderAuthenticationSessionToken     ProviderAuthenticationMethod = "session_token"
	ProviderAuthenticationAPICredentials   ProviderAuthenticationMethod = "api_credentials"
	ProviderAuthenticationUsernamePassword ProviderAuthenticationMethod = "username_password"
	ProviderAuthenticationCLI              ProviderAuthenticationMethod = "cli"
	ProviderAuthenticationSDKCredentials   ProviderAuthenticationMethod = "sdk_credentials"
	ProviderAuthenticationNativeConfig     ProviderAuthenticationMethod = "native_config"
	ProviderAuthenticationSSH              ProviderAuthenticationMethod = "ssh"
	ProviderAuthenticationLocalContext     ProviderAuthenticationMethod = "local_context"
	ProviderAuthenticationExternalContract ProviderAuthenticationMethod = "external_contract"
	ProviderAuthenticationSharedSecret     ProviderAuthenticationMethod = "shared_secret"
	ProviderAuthenticationIdentityToken    ProviderAuthenticationMethod = "identity_token"
	ProviderAuthenticationCoordinator      ProviderAuthenticationMethod = "coordinator"
	ProviderAuthenticationNone             ProviderAuthenticationMethod = "none"
)

type ProviderAuthenticationRoute added in v0.56.0

type ProviderAuthenticationRoute struct {
	Route       string
	Methods     []ProviderAuthenticationMethod
	Description string
}

ProviderAuthenticationRoute declares possible interfaces for a route. Methods are not necessarily alternatives or jointly required; Description qualifies conditional combinations. No route is selected or checked by this metadata.

type ProviderBackendCapabilitySource added in v0.71.0

type ProviderBackendCapabilitySource interface {
	BackendCapabilities() Backend
}

ProviderBackendCapabilitySource exposes a metadata-only backend without configuration, credentials, clients, or side effects. Catalogs inspect its capability interfaces; they must not invoke lifecycle methods.

type ProviderCapabilities added in v0.22.0

type ProviderCapabilities struct {
	Tailscale       bool // bidirectional tailnet peer plane
	TailscaleEgress bool // outbound-only userspace tailnet access
	SSHMesh         bool // operator-side `ssh -L` against the lease's SSH endpoint
	URLBridge       bool // native HTTPS endpoint surface (shares, preview URLs, deployments)
}

ProviderCapabilities is the per-provider truth about which pond transport planes are *physically* possible on its leases. Each plane is independent — some providers advertise more than one (Hetzner / Azure / GCP support both the Tailscale peer mesh and the operator-side SSH-mesh). Islo separately advertises URL ingress plus outbound-only userspace Tailscale access. Older code that asked "which one transport does this provider use" (providerTransportClass) is now a thin Primary() picker; the capability set is the source of truth and the `pond peers` + `pond connect` paths fan out across whichever dialable planes the operator actually wants.

Capabilities are derived from the provider's own FeatureSet, so a provider opts in to a transport plane by declaring the feature, not by being added to a static table. SSH mesh is narrower than FeatureSSH because delegated providers may expose a direct login helper without supporting Crabbox-managed SSH tunnels as their pond transport.

func (ProviderCapabilities) Available added in v0.22.0

func (c ProviderCapabilities) Available() []string

Available returns every transport this provider can serve, in preference order (peer-to-peer first, then native HTTPS, then operator-routed SSH). The list is consumed by `pond peers` to populate the per-member `transports` field so callers see the full reachability surface.

func (ProviderCapabilities) Primary added in v0.22.0

func (c ProviderCapabilities) Primary() string

Primary picks the single recommended transport for single-valued surfaces (BridgePeer.Transport, doctor reachability matrix). The preference order matches Available(): peer-to-peer beats native HTTPS beats operator-routed SSH. Providers with no declared capability return TransportNone.

type ProviderClaimScoper added in v0.40.0

type ProviderClaimScoper interface {
	ClaimScope(cfg Config) string
}

ProviderClaimScoper contributes opaque routing identity to local claims. Core persists and compares the value without interpreting provider fields. The adapter must preserve its historical normalization, including whitespace.

type ProviderClassArchitecture added in v0.45.0

type ProviderClassArchitecture string
const (
	ProviderClassArchitectureAMD64 ProviderClassArchitecture = "amd64"
	ProviderClassArchitectureARM64 ProviderClassArchitecture = "arm64"
	ProviderClassArchitectureMixed ProviderClassArchitecture = "mixed"
)

type ProviderClassCatalog added in v0.45.0

type ProviderClassCatalog struct {
	Disposition ProviderClassDisposition `json:"disposition"`
	Profiles    []ProviderClassProfile   `json:"profiles"`
}

func ProviderClassCatalogFor added in v0.45.0

func ProviderClassCatalogFor(provider Provider) ProviderClassCatalog

type ProviderClassDisposition added in v0.45.0

type ProviderClassDisposition string
const (
	ProviderClassDispositionMapped   ProviderClassDisposition = "mapped"
	ProviderClassDispositionUnmapped ProviderClassDisposition = "unmapped"
)

type ProviderClassMachine added in v0.45.0

type ProviderClassMachine struct {
	Type         string                    `json:"type"`
	Architecture ProviderClassArchitecture `json:"architecture"`
	VCPU         *int                      `json:"vcpu"`
	Memory       *ProviderMemory           `json:"memory"`
}

type ProviderClassProfile added in v0.45.0

type ProviderClassProfile struct {
	Class        string                    `json:"class"`
	Target       string                    `json:"target"`
	WindowsMode  string                    `json:"windowsMode,omitempty"`
	Architecture ProviderClassArchitecture `json:"architecture"`
	Primary      ProviderClassMachine      `json:"primary"`
	Fallbacks    []ProviderClassMachine    `json:"fallbacks"`
}

func ProviderClassProfileFromMachines added in v0.45.0

func ProviderClassProfileFromMachines(class, target, windowsMode string, architecture ProviderClassArchitecture, machines []ProviderClassMachine) ProviderClassProfile

func UniformLinuxAMD64ClassProfiles added in v0.45.0

func UniformLinuxAMD64ClassProfiles(machine ProviderClassMachine) []ProviderClassProfile

type ProviderClassProfileProvider added in v0.45.0

type ProviderClassProfileProvider interface {
	ClassProfiles() []ProviderClassProfile
}

type ProviderClassSpecProvider added in v0.45.0

type ProviderClassSpecProvider interface {
	ClassSpecs() []ClassSpec
}

ProviderClassSpecProvider reports provider-owned machine class resolutions for the provider matrix.

type ProviderCleanupAction added in v0.49.1

type ProviderCleanupAction struct {
	ID     int64  `json:"id"`
	Status string `json:"status"`
}

type ProviderCleanupConfirmation added in v0.49.1

type ProviderCleanupConfirmation struct {
	Method string `json:"method"`
	At     string `json:"at"`
}

type ProviderCleanupEvidence added in v0.49.1

type ProviderCleanupEvidence struct {
	Version           int                          `json:"version"`
	Provider          string                       `json:"provider"`
	LeaseID           string                       `json:"leaseID"`
	ServerID          int64                        `json:"serverID"`
	DispatchStartedAt string                       `json:"dispatchStartedAt,omitempty"`
	DeleteNotFoundAt  string                       `json:"deleteNotFoundAt,omitempty"`
	Action            *ProviderCleanupAction       `json:"action,omitempty"`
	Confirmation      *ProviderCleanupConfirmation `json:"confirmation,omitempty"`
}

ProviderCleanupEvidence is recorded broker evidence, not a live provider observation.

type ProviderCommandRouter added in v0.47.0

type ProviderCommandRouter interface {
	CommandRouting(cfg Config, request CommandRoutingRequest) CommandRouting
}

ProviderCommandRouter owns the non-secret route for generated follow-up commands. Core owns shell rendering and passes Env separately to subprocesses. Adapters use RoutingSafeURL for URL-valued fields, never for opaque paths/selectors.

type ProviderConfigArchitectureDescriber added in v0.48.0

type ProviderConfigArchitectureDescriber interface {
	DescribeImplicitArchitecture(cfg Config) string
}

ProviderConfigArchitectureDescriber describes an omitted architecture for config diagnostics only. It must not probe the runtime or change execution.

type ProviderConfigDefaulter added in v0.40.0

type ProviderConfigDefaulter interface {
	ApplyConfigDefaults(cfg *Config) error
}

ProviderConfigDefaulter owns provider-specific defaults that must be applied after generic config parsing. Core then finalizes the target unless the optional ProviderConfigDefaultsPhase leaves that boundary with the caller.

type ProviderConfigDefaultsPhase added in v0.64.0

type ProviderConfigDefaultsPhase interface {
	ConfigDefaultsTargetFinalization() ProviderConfigDefaultsTargetFinalization
}

ProviderConfigDefaultsPhase optionally refines ProviderConfigDefaulter's target finalization boundary. Defaults must remain config-only in either phase.

type ProviderConfigDefaultsTargetFinalization added in v0.64.0

type ProviderConfigDefaultsTargetFinalization uint8

ProviderConfigDefaultsTargetFinalization identifies who normalizes and validates the target after provider defaults. The zero value preserves dispatcher ownership.

const (
	ProviderConfigDefaultsDispatcherFinalizes ProviderConfigDefaultsTargetFinalization = iota
	// ProviderConfigDefaultsCallerFinalizes preserves the caller's existing phase:
	// config loading finalizes afterward, while commands may have finalized before
	// applying provider-native defaults. It does not add a finalization pass.
	ProviderConfigDefaultsCallerFinalizes
)

type ProviderConfigShowField added in v0.57.0

type ProviderConfigShowField struct {
	JSONName  string
	JSONValue any
	TextName  string
	TextValue string
}

A field may belong to only one format by leaving the other name empty.

type ProviderConfigShowNormalizer added in v0.48.1

type ProviderConfigShowNormalizer interface {
	NormalizeConfigForShow(cfg Config) Config
}

ProviderConfigShowNormalizer projects effective display values for a selected provider only. It must not discover runtimes or change execution config.

type ProviderConfigShowProjector added in v0.57.0

type ProviderConfigShowProjector interface {
	ConfigShowSection(Config) ProviderConfigShowSection
}

ProviderConfigShowProjector supplies passive, already-redacted display data. Implementations may derive pure effective display values from the supplied Config. They must not apply runtime defaults, load config, read environment or native state, resolve credentials, or mutate input state.

type ProviderConfigShowSection added in v0.57.0

type ProviderConfigShowSection struct {
	JSONKey   string
	TextLabel string
	Providers []string
	Fields    []ProviderConfigShowField
}

type ProviderConfigValidator added in v0.26.1

type ProviderConfigValidator interface {
	ValidateConfig(cfg Config) error
}

type ProviderConfiguredFeatures added in v0.75.0

type ProviderConfiguredFeatures interface {
	ConfiguredFeatures(cfg Config) FeatureSet
	ValidateRequestedCapabilities(cfg Config) error
}

ProviderConfiguredFeatures supplies features enabled by trusted runtime configuration. Spec remains the conservative, configuration-free catalog.

type ProviderCoordinatorRequest added in v0.80.0

type ProviderCoordinatorRequest interface {
	CoordinatorRequestFields(Config) map[string]any
}

ProviderCoordinatorRequest owns provider-specific non-secret admission metadata.

type ProviderCreationOnlyFlagProvider added in v0.29.0

type ProviderCreationOnlyFlagProvider interface {
	CreationOnlyFlagNames() []string
}

type ProviderDiagnosticSecretSource added in v0.37.0

type ProviderDiagnosticSecretSource interface {
	DiagnosticSecrets(cfg Config) []string
}

ProviderDiagnosticSecretSource contributes runtime-only credentials to the final diagnostic redaction pass. Providers should include every credential source that is intentionally absent from Config, including local CLI stores.

type ProviderIdentityExpectation added in v0.31.0

type ProviderIdentityExpectation struct {
	LeaseID        string
	AttemptLeaseID string
	Slug           string
	ResourceID     string
}

ProviderIdentityExpectation is the complete immutable identity known by a lifecycle caller before resolving a resource for destructive release.

type ProviderKind added in v0.6.0

type ProviderKind string
const (
	ProviderKindSSHLease       ProviderKind = "ssh-lease"
	ProviderKindDelegatedRun   ProviderKind = "delegated-run"
	ProviderKindServiceControl ProviderKind = "service-control"
)

type ProviderMemory added in v0.45.0

type ProviderMemory struct {
	Value float64            `json:"value"`
	Unit  ProviderMemoryUnit `json:"unit"`
}

type ProviderMemoryUnit added in v0.45.0

type ProviderMemoryUnit string
const (
	ProviderMemoryUnitMB  ProviderMemoryUnit = "MB"
	ProviderMemoryUnitMiB ProviderMemoryUnit = "MiB"
	ProviderMemoryUnitGB  ProviderMemoryUnit = "GB"
	ProviderMemoryUnitGiB ProviderMemoryUnit = "GiB"
)

type ProviderReadyPoolImageIdentityCapability added in v0.49.1

type ProviderReadyPoolImageIdentityCapability interface {
	ReadyPoolImageIdentityMatchesLease(ProviderReadyPoolImageIdentityRequest) bool
}

type ProviderReadyPoolImageIdentityRequest added in v0.49.1

type ProviderReadyPoolImageIdentityRequest struct {
	Identity CoordinatorReadyPoolImageIdentity
	Lease    ProviderReadyPoolLeaseImageIdentity
}

type ProviderReadyPoolLeaseImageIdentity added in v0.49.1

type ProviderReadyPoolLeaseImageIdentity struct {
	Provider string
	Region   string
	Project  string
	Image    *CoordinatorLeaseImage
}

type ProviderReadyPoolTargetCapability added in v0.80.0

type ProviderReadyPoolTargetCapability interface {
	SupportsReadyPoolTarget(string) bool
}

ProviderReadyPoolImageIdentityCapability owns provider-specific validation of immutable image evidence returned with a typed ready-pool lease.

type ProviderResourceRequirementsCapability added in v0.72.0

type ProviderResourceRequirementsCapability interface {
	SupportsResourceRequirements(cfg Config) bool
}

ProviderArchitectureCapability owns admission of the complete target/mode/ architecture tuple (including amd64), within ProviderSpec.Targets. Providers without this capability retain core's managed architecture restrictions. Runtime feasibility and explicit assertions are validated by the adapter. ProviderResourceRequirementsCapability admits provisioned CPU/RAM constraints. Providers without this capability must reject constrained acquisition.

type ProviderRouter added in v0.22.0

type ProviderRouter interface {
	RouteConfig(cfg *Config, fs *flag.FlagSet, values any) error
}

type ProviderRoutingFlagProvider added in v0.22.0

type ProviderRoutingFlagProvider interface {
	RoutingFlagNames() []string
}

type ProviderSSHTargetConfigurer added in v0.47.0

type ProviderSSHTargetConfigurer interface {
	ConfigureSSHTarget(target *SSHTarget, readyCommand string)
}

type ProviderServerTypeOverrideProvider added in v0.45.0

type ProviderServerTypeOverrideProvider interface {
	ServerTypeOverrideForConfig(cfg Config) (string, bool)
}

ProviderServerTypeOverrideProvider reports an exact provider-native machine selection that outranks a non-explicit stored ServerType.

type ProviderServerTypeProvider added in v0.22.0

type ProviderServerTypeProvider interface {
	ServerTypeForConfig(cfg Config) string
}

type ProviderSize added in v0.45.0

type ProviderSize struct {
	Name                string            `json:"name"`
	VCPU                int               `json:"vcpu"`
	RAMGB               int               `json:"ramGb"`
	DiskGB              int               `json:"diskGb"`
	GPU                 *ProviderSizeGPU  `json:"gpu,omitempty"`
	Regions             []string          `json:"regions"`
	PricePerHourMicro   int64             `json:"pricePerHourMicro"`
	TransferGiBPerMonth int64             `json:"transferGiBPerMonth,omitempty"`
	EstimatedSnapshotGB int               `json:"estimatedSnapshotGb,omitempty"`
	DefaultImage        string            `json:"defaultImage,omitempty"`
	ProviderMetadata    map[string]string `json:"providerMetadata,omitempty"`
}

type ProviderSizeCatalogBackend added in v0.45.0

type ProviderSizeCatalogBackend interface {
	Backend
	SizeCatalog(ctx context.Context, refresh bool) ([]ProviderSize, error)
}

ProviderSizeCatalogBackend exposes a provider's live, provider-owned machine catalog without teaching core about provider-specific size slugs or regions.

type ProviderSizeGPU added in v0.45.0

type ProviderSizeGPU struct {
	Label         string `json:"label"`
	VRAMGB        int    `json:"vramGb"`
	ScratchDiskGB int    `json:"scratchDiskGb,omitempty"`
}

type ProviderSizeSelection added in v0.48.0

type ProviderSizeSelection struct {
	Selector      ProviderSizeSelector `json:"selector"`
	EffectiveType string               `json:"effectiveType"`
	Region        string               `json:"region"`
}

type ProviderSizeSelectionBackend added in v0.48.0

type ProviderSizeSelectionBackend interface {
	ProviderSizeCatalogBackend
	SizeSelection() ProviderSizeSelection
}

ProviderSizeSelectionBackend reports already-resolved provider configuration; resource facts remain owned by SizeCatalog.

type ProviderSizeSelector added in v0.48.0

type ProviderSizeSelector string

ProviderSizeSelector declares how a live catalog name selects a machine.

const ProviderSizeSelectorType ProviderSizeSelector = "type"

ProviderSizeSelectorType uses catalog Name verbatim as the existing --type value.

type ProviderSpec added in v0.6.0

type ProviderSpec struct {
	// ClaimExpiryBound is the provider-enforced maximum lifetime after use.
	// Zero means that age alone cannot authorize local claim pruning. Only
	// opt in when expiry needs no running CLI and any settlement the claim
	// guards is itself bounded by the same duration.
	ClaimExpiryBound time.Duration
	Authentication   ProviderAuthentication
	Name             string
	Aliases          []string
	Family           string
	Kind             ProviderKind
	Targets          []TargetSpec
	Features         FeatureSet
	Coordinator      CoordinatorMode
	BrokeredOnly     bool
	ClassDisposition ProviderClassDisposition
	SizeSelection    ProviderSizeSelector
	// SyncGuardrailFullCandidate counts the complete ordinary workspace transfer.
	// False preserves dirty-delta counting when the checkout has changes.
	SyncGuardrailFullCandidate bool
	// TailscaleEgressOnly marks FeatureTailscale as outbound userspace access,
	// not a bidirectional peer endpoint.
	TailscaleEgressOnly bool
	// ActionsRunnerUnsupported rejects --actions-runner, not ordinary Actions hydration.
	ActionsRunnerUnsupported bool
	// DesktopLoginPasswordSeparate marks managed Windows desktops whose VNC
	// secret differs from the Windows account password.
	DesktopLoginPasswordSeparate bool
}

type ProvisioningAttempt added in v0.3.0

type ProvisioningAttempt struct {
	DurationMS int64  `json:"durationMs,omitempty"`
	Region     string `json:"region,omitempty"`
	ServerType string `json:"serverType"`
	Market     string `json:"market,omitempty"`
	Category   string `json:"category,omitempty"`
	Message    string `json:"message"`
}

type ProvisioningCandidate added in v0.59.0

type ProvisioningCandidate struct {
	Config          Config
	FailureLabel    string
	FallbackMessage string
}

ProvisioningCandidate is one adapter-selected attempt. Order, location, market, and diagnostics belong to the adapter; core never invents another candidate.

type ProxmoxClient added in v0.12.0

type ProxmoxClient struct {
	BaseURL     string
	TokenID     string
	TokenSecret string
	Node        string
	Client      *http.Client
	// GuestBootstrap extends the base SSH bootstrap with provider-owned setup
	// and readiness checks for an explicitly selected prepared template.
	GuestBootstrap func(Config) (setup, readyChecks string)
}

func NewProxmoxClient added in v0.12.0

func NewProxmoxClient(cfg Config) (*ProxmoxClient, error)

func (*ProxmoxClient) CreateServer added in v0.12.0

func (c *ProxmoxClient) CreateServer(ctx context.Context, cfg Config, publicKey, leaseID, slug string, keep bool) (Server, error)

func (*ProxmoxClient) CreateServerWithVMID added in v0.64.0

func (c *ProxmoxClient) CreateServerWithVMID(ctx context.Context, cfg Config, publicKey, leaseID, slug string, keep bool, vmid int, extraLabels map[string]string, bind func(Server) error) (Server, error)

func (*ProxmoxClient) DeleteServer added in v0.12.0

func (c *ProxmoxClient) DeleteServer(ctx context.Context, id string) error

func (*ProxmoxClient) DeleteServerOnNode added in v0.30.0

func (c *ProxmoxClient) DeleteServerOnNode(ctx context.Context, node, id string) error

func (*ProxmoxClient) DeleteServerOnNodeChecked added in v0.48.0

func (c *ProxmoxClient) DeleteServerOnNodeChecked(ctx context.Context, node, id string, check func(Server) error) error

DeleteServerOnNodeChecked lets the provider adapter authorize both destructive steps against freshly read VM configuration, including after stop completes.

func (*ProxmoxClient) DoctorReadiness added in v0.30.0

func (c *ProxmoxClient) DoctorReadiness(ctx context.Context, cfg Config) ([]ProxmoxReadinessCheck, error)

func (*ProxmoxClient) GetServer added in v0.12.0

func (c *ProxmoxClient) GetServer(ctx context.Context, id string) (Server, error)

func (*ProxmoxClient) GetServerOnNode added in v0.30.0

func (c *ProxmoxClient) GetServerOnNode(ctx context.Context, node, id string) (Server, error)

func (*ProxmoxClient) ListCrabboxServers added in v0.12.0

func (c *ProxmoxClient) ListCrabboxServers(ctx context.Context) ([]Server, error)

func (*ProxmoxClient) ListCrabboxServersCluster added in v0.30.0

func (c *ProxmoxClient) ListCrabboxServersCluster(ctx context.Context) ([]Server, error)

func (*ProxmoxClient) ListVMIDsInCluster added in v0.67.0

func (c *ProxmoxClient) ListVMIDsInCluster(ctx context.Context) ([]int, error)

ListVMIDsInCluster includes templates, unlabelled VMs, and containers: all guest types share the VMID namespace. Filtered inventory cannot prove a gap.

func (*ProxmoxClient) NextVMID added in v0.64.0

func (c *ProxmoxClient) NextVMID(ctx context.Context) (int, error)

func (*ProxmoxClient) SetLabels added in v0.12.0

func (c *ProxmoxClient) SetLabels(ctx context.Context, id string, labels map[string]string) error

func (*ProxmoxClient) SetLabelsOnNode added in v0.30.0

func (c *ProxmoxClient) SetLabelsOnNode(ctx context.Context, node, id string, labels map[string]string) error

func (*ProxmoxClient) VMExistsInCluster added in v0.30.0

func (c *ProxmoxClient) VMExistsInCluster(ctx context.Context, id string) (bool, error)

func (*ProxmoxClient) VMIdentityExistsInCluster added in v0.67.0

func (c *ProxmoxClient) VMIdentityExistsInCluster(ctx context.Context, id, name string) (bool, error)

VMIdentityExistsInCluster includes unlabelled VMs and other guest types. Complete visibility is required: a filtered list is not absence evidence.

func (*ProxmoxClient) VerifyNoActiveCloneTasks added in v0.67.0

func (c *ProxmoxClient) VerifyNoActiveCloneTasks(ctx context.Context) error

VerifyNoActiveCloneTasks fences absence recovery against a clone that has been accepted but has not published its VM in cluster inventory yet.

type ProxmoxConfig added in v0.12.0

type ProxmoxConfig struct {
	APIURL            string `` /* 187-byte string literal not displayed */
	TokenID           string `` /* 135-byte string literal not displayed */
	TokenSecret       string `` /* 143-byte string literal not displayed */
	Node              string `` /* 160-byte string literal not displayed */
	TemplateID        int    `` /* 219-byte string literal not displayed */
	DesktopTemplateID int    `` /* 225-byte string literal not displayed */
	BrowserTemplateID int    `` /* 216-byte string literal not displayed */
	Storage           string `` /* 170-byte string literal not displayed */
	Pool              string `` /* 167-byte string literal not displayed */
	Bridge            string `` /* 178-byte string literal not displayed */
	User              string `` /* 213-byte string literal not displayed */
	WorkRoot          string `` /* 207-byte string literal not displayed */
	FullClone         bool   `` /* 155-byte string literal not displayed */
	InsecureTLS       bool   `` /* 183-byte string literal not displayed */
}

ProxmoxConfig owns mechanical bindings; provenance and generic connection projections remain in their existing policy wrappers.

type ProxmoxConfigApplied added in v0.61.0

type ProxmoxConfigApplied struct {
	InputAccepted bool
	APIURL        bool
	TokenID       bool
	TokenSecret   bool
	User          bool
	WorkRoot      bool
	InsecureTLS   bool
}

ProxmoxConfigApplied records accepted assignments during one application.

type ProxmoxConfigFlagValues added in v0.61.0

type ProxmoxConfigFlagValues struct {
	APIURL            *string
	Node              *string
	TemplateID        *int
	DesktopTemplateID *int
	BrowserTemplateID *int
	Storage           *string
	Pool              *string
	Bridge            *string
	User              *string
	WorkRoot          *string
	FullClone         *bool
	InsecureTLS       *bool
}

ProxmoxConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterProxmoxConfigFlags added in v0.61.0

func RegisterProxmoxConfigFlags(fs *flag.FlagSet, defaults ProxmoxConfig) ProxmoxConfigFlagValues

RegisterProxmoxConfigFlags registers mechanical bindings without selecting a provider.

func (ProxmoxConfigFlagValues) Apply added in v0.61.0

Apply copies explicit flag values. Provider validation must run afterward.

type ProxmoxConfigVisitedFlags added in v0.61.0

type ProxmoxConfigVisitedFlags struct {
	APIURL      bool
	User        bool
	WorkRoot    bool
	InsecureTLS bool
}

ProxmoxConfigVisitedFlags records raw flag visits, independently of application.

func ProxmoxConfigFlagPresence added in v0.61.0

func ProxmoxConfigFlagPresence(fs *flag.FlagSet) ProxmoxConfigVisitedFlags

ProxmoxConfigFlagPresence reports visits for tracked flag bindings.

type ProxmoxDeleteRequestError added in v0.30.0

type ProxmoxDeleteRequestError struct {
	Err error
}

func (*ProxmoxDeleteRequestError) Error added in v0.30.0

func (e *ProxmoxDeleteRequestError) Error() string

func (*ProxmoxDeleteRequestError) Unwrap added in v0.30.0

func (e *ProxmoxDeleteRequestError) Unwrap() error

type ProxmoxDeleteTaskError added in v0.30.0

type ProxmoxDeleteTaskError struct {
	Err error
}

func (*ProxmoxDeleteTaskError) Error added in v0.30.0

func (e *ProxmoxDeleteTaskError) Error() string

func (*ProxmoxDeleteTaskError) Unwrap added in v0.30.0

func (e *ProxmoxDeleteTaskError) Unwrap() error

type ProxmoxError added in v0.12.0

type ProxmoxError struct {
	Method     string
	Path       string
	StatusCode int
	Body       string
	// NativeAuthRejection excludes gateway errors and replies carrying task data.
	NativeAuthRejection bool
}

func (*ProxmoxError) Error added in v0.12.0

func (e *ProxmoxError) Error() string

type ProxmoxReadinessCheck added in v0.30.0

type ProxmoxReadinessCheck struct {
	Status  string
	Check   string
	Message string
	Details map[string]string
}

type RailwayConfig added in v0.16.0

type RailwayConfig struct {
	APIToken      string `env:"CRABBOX_RAILWAY_API_TOKEN" envAlias:"RAILWAY_API_TOKEN" sources:"env" reportApplied:"true"`
	APIURL        string `` /* 266-byte string literal not displayed */
	ProjectID     string `` /* 232-byte string literal not displayed */
	EnvironmentID string `` /* 237-byte string literal not displayed */
}

RailwayConfig describes mechanical bindings for the service-control provider. Credential provenance and destination validation remain owned by core policy.

type RailwayConfigApplied added in v0.54.0

type RailwayConfigApplied struct {
	InputAccepted bool
	APIToken      bool
	APIURL        bool
}

RailwayConfigApplied records accepted assignments during one application.

type RailwayConfigFlagValues added in v0.54.0

type RailwayConfigFlagValues struct {
	APIURL        *string
	ProjectID     *string
	EnvironmentID *string
}

RailwayConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterRailwayConfigFlags added in v0.54.0

func RegisterRailwayConfigFlags(fs *flag.FlagSet, defaults RailwayConfig) RailwayConfigFlagValues

RegisterRailwayConfigFlags registers mechanical bindings without selecting a provider.

func (RailwayConfigFlagValues) Apply added in v0.54.0

Apply copies explicit flag values. Provider validation must run afterward.

type RailwayConfigVisitedFlags added in v0.54.0

type RailwayConfigVisitedFlags struct {
	APIURL bool
}

RailwayConfigVisitedFlags records raw flag visits, independently of application.

func RailwayConfigFlagPresence added in v0.54.0

func RailwayConfigFlagPresence(fs *flag.FlagSet) RailwayConfigVisitedFlags

RailwayConfigFlagPresence reports visits for tracked flag bindings.

type ReachabilityCell added in v0.22.0

type ReachabilityCell struct {
	From  string `json:"from"`
	To    string `json:"to"`
	State string `json:"state"`
	Note  string `json:"note,omitempty"`
}

ReachabilityCell records a single source→destination cell of the pond reachability matrix. Note carries the honest caveat for non-trivial cells (operator-side bridges, asymmetric reach, …).

type ReleaseLeaseClaimRetainer added in v0.29.0

type ReleaseLeaseClaimRetainer interface {
	// Retained releases must persist terminal state and clear live endpoints
	// before ReleaseLease returns.
	RetainLeaseClaimAfterRelease(lease LeaseTarget) bool
}

type ReleaseLeaseClaimRetentionVerifier added in v0.41.1

type ReleaseLeaseClaimRetentionVerifier interface {
	// An error leaves claim state untouched so uncertain ownership fails closed.
	RetainLeaseClaimAfterReleaseWithClaim(lease LeaseTarget, previous LeaseClaim) (bool, error)
}

type ReleaseLeaseConnectionCleanupPolicy added in v0.37.0

type ReleaseLeaseConnectionCleanupPolicy interface {
	// ReleaseLeaseConnectionCleanupSafe reports whether generic remote cleanup
	// may run before the provider's guarded release.
	ReleaseLeaseConnectionCleanupSafe() bool
}

ReleaseLeaseConnectionCleanupPolicy lets a provider defer generic connection cleanup until after its guarded release succeeds.

type ReleaseLeaseOutcome added in v0.48.1

type ReleaseLeaseOutcome struct {
	// Terminal means the release owner confirmed the end of the recoverable lease.
	Terminal bool
	// ForgottenLocally means verified absence removed only the local claim.
	ForgottenLocally bool
}

ReleaseLeaseOutcome describes the lease recovery outcome of one release invocation, independently of errors finalizing local state. Zero means retained or unconfirmed.

type ReleaseLeaseOutcomeBackend added in v0.48.1

type ReleaseLeaseOutcomeBackend interface {
	ReleaseLeaseWithOutcome(context.Context, ReleaseLeaseRequest) (ReleaseLeaseOutcome, error)
}

ReleaseLeaseOutcomeBackend performs the same guarded operation as ReleaseLease once, preserving its ordinary error. Providers with retained or asynchronous release semantics must implement this capability. Without it, a successful ReleaseLease ends the recoverable lease; an error leaves the outcome unconfirmed. Claim retention (including terminal receipts) does not determine this outcome.

type ReleaseLeaseReporter added in v0.19.0

type ReleaseLeaseReporter interface {
	ReleaseLeaseMessage(lease LeaseTarget) string
}

type ReleaseLeaseRequest added in v0.6.0

type ReleaseLeaseRequest struct {
	Lease                    LeaseTarget
	CheckpointID             string
	Force                    bool
	ExpectedProviderIdentity ProviderIdentityExpectation
	// DeferProviderCleanupObservation queues coordinator cleanup without waiting
	// for provider deletion. Automatic release paths use this so a completed run
	// is not held open by asynchronous coordinator cleanup.
	DeferProviderCleanupObservation bool
	// GuardedRemoteCleanup lets providers that fence release authorization run
	// generic remote teardown only after ownership is verified under that fence.
	GuardedRemoteCleanup func(context.Context, LeaseTarget)
}

type ReleaseLeaseTargetRefresher added in v0.37.0

type ReleaseLeaseTargetRefresher interface {
	ReleaseLeaseConnectionCleanupPolicy
	RefreshReleaseLeaseTarget(context.Context, LeaseTarget) (LeaseTarget, error)
}

ReleaseLeaseTargetRefresher opts a provider into refreshing authorization and connection metadata immediately before automatic lease cleanup.

type ReleaseLeaseWorkspaceCloser added in v0.67.0

type ReleaseLeaseWorkspaceCloser interface {
	RequiresSSHWorkspaceCloseBeforeRelease() bool
}

ReleaseLeaseWorkspacePolicy keeps run-owned authority available for a guarded close after successful lease release. The captured SSH route must still reach the workspace; retaining disk on a stopped host is not sufficient. ReleaseLeaseWorkspaceCloser requests closing run-owned workspace authority while the captured route is reachable, before provider release.

type ReleaseLeaseWorkspacePolicy added in v0.48.0

type ReleaseLeaseWorkspacePolicy interface {
	PreservesSSHWorkspaceAfterRelease() bool
}

type Repo

type Repo struct {
	Root string
	// LegacyRoot is the invocation's pre-canonicalization claim identity, never a stored alias resolved on read.
	LegacyRoot string `json:"-" yaml:"-"`
	Name       string
	RemoteURL  string
	Head       string
	BaseRef    string
}

type RepositoryScopedStopBackend added in v0.57.0

type RepositoryScopedStopBackend interface {
	StopForRepository(context.Context, StopRequest, string) error
}

RepositoryScopedStopBackend validates the calling repository under its existing exclusive release fence before native or connection cleanup. It must reject unsupported claim kinds; validated terminal replay may be a no-op.

type ResolveRequest added in v0.6.0

type ResolveRequest struct {
	Repo        Repo
	Options     LeaseOptions
	ID          string
	Reclaim     bool
	ReleaseOnly bool
	StatusOnly  bool
	ReadyProbe  bool
	Prepare     bool
	// IncludeDiagnostics opts explicit presentation callers into optional observations.
	// It is not a provider protocol field or authority to modify lease state.
	IncludeDiagnostics bool `json:"-"`
	// RejectAuthSecret prevents interactive callers from launching SSH probes
	// for token-as-username targets they cannot safely execute.
	RejectAuthSecret bool
	// NoLocalStateMutations is reserved for controller-owned identity-bound
	// lookups that must not rewrite claims or provider routing before the
	// resolved identity has been accepted by the caller.
	NoLocalStateMutations    bool
	ExpectedProviderIdentity ProviderIdentityExpectation
}

func (ResolveRequest) IsReadOnlyStatus added in v0.37.0

func (r ResolveRequest) IsReadOnlyStatus() bool

IsReadOnlyStatus reports whether resolution may inspect provider inventory without trusting or rewriting local claim state.

type ResolvedLeaseTargetRebinder added in v0.29.0

type ResolvedLeaseTargetRebinder interface {
	RebindResolvedLeaseTarget(target *LeaseTarget, leaseID string) error
}

type ResourceExhaustionReason added in v0.41.4

type ResourceExhaustionReason string
const (
	ResourceExhaustionMemory ResourceExhaustionReason = "memory"
)

type ResultsConfig

type ResultsConfig struct {
	JUnit          []string
	Auto           bool
	FailOnFailures bool
}

type ResumeRequest added in v0.29.0

type ResumeRequest struct {
	Lifecycle RetentionLifecycleRequest
	Options   LeaseOptions
	ID        string
}

type RetainedComputeWindow added in v0.80.0

type RetainedComputeWindow struct {
	ID           string `json:"id"`
	AuthorizedAt string `json:"authorizedAt"`
	ExpiresAt    string `json:"expiresAt"`
	State        string `json:"state"`
}

type RetainedProviderIdentity added in v0.80.0

type RetainedProviderIdentity struct {
	LeaseID        string `json:"leaseId"`
	AttemptLeaseID string `json:"attemptLeaseId"`
	Slug           string `json:"slug"`
	ResourceID     string `json:"resourceId"`
}

type RetentionLifecycleOperation added in v0.80.0

type RetentionLifecycleOperation struct {
	ID                    string `json:"id"`
	Action                string `json:"action"`
	Phase                 string `json:"phase"`
	ExpectedClaimRevision string `json:"expectedClaimRevision"`
}

type RetentionLifecycleRequest added in v0.80.0

type RetentionLifecycleRequest struct {
	OperationID              string
	OwnerBinding             string
	ExpectedClaimRevision    string
	ExpectedProviderIdentity ProviderIdentityExpectation
}

type RunArtifact added in v0.17.1

type RunArtifact struct {
	Kind     string `json:"kind"`
	Path     string `json:"path"`
	Template string `json:"template,omitempty"`
	Bytes    int    `json:"bytes,omitempty"`
}

func MaterializeDelegatedRunDownloads added in v0.31.0

func MaterializeDelegatedRunDownloads(ctx context.Context, backend DelegatedRunDownloadBackend, req RunRequest, leaseID string, stderr io.Writer) ([]RunArtifact, error)

type RunConfig added in v0.13.0

type RunConfig struct {
	PreflightTools []string
}

type RunErrorKind added in v0.34.0

type RunErrorKind string
const (
	RunErrorNone        RunErrorKind = ""
	RunErrorCommandExit RunErrorKind = "command-exit"
	RunErrorTimeout     RunErrorKind = "timeout"
	RunErrorCanceled    RunErrorKind = "canceled"
	RunErrorProvider    RunErrorKind = "provider-error"
)

func RunErrorKindForResult added in v0.34.0

func RunErrorKindForResult(result RunResult, err error) RunErrorKind

type RunFailureEvidence added in v0.41.4

type RunFailureEvidence struct {
	ResourceExhaustion ResourceExhaustionReason `json:"resourceExhaustion,omitempty"`
	// Hint and Details are optional, bounded presentation data, not classification inputs.
	Hint    string            `json:"hint,omitempty"`
	Details map[string]string `json:"details,omitempty"`
}

type RunFailureEvidenceCollector added in v0.41.4

type RunFailureEvidenceCollector func(context.Context) (RunFailureEvidence, error)

type RunFailureEvidenceRequest added in v0.41.4

type RunFailureEvidenceRequest struct {
	Lease LeaseTarget
}

type RunLeaseClaimResolver added in v0.49.0

type RunLeaseClaimResolver interface {
	ResolveRunLeaseUnderClaim(context.Context, ResolveRequest, LeaseClaim) (LeaseTarget, error)
}

RunLeaseClaimResolver prepares an already-bound canonical lease while core holds its claim lock. It must honor cancellation and must not acquire claim locks or publish local claims; core validates and publishes the result once.

type RunObservation added in v0.58.0

type RunObservation struct {
	// contains filtered or unexported fields
}

RunObservation retains local evidence only; it grants no provider or receipt authority. A nil observation preserves the original terminal and capture writers.

func (*RunObservation) BindLease added in v0.58.0

func (o *RunObservation) BindLease(leaseID, slug string)

func (*RunObservation) CommandWriters added in v0.58.0

func (o *RunObservation) CommandWriters(stdout, stderr io.Writer, scope RunOutputScope) (io.Writer, io.Writer)

func (*RunObservation) OmitStream added in v0.58.0

func (o *RunObservation) OmitStream(stream, reason string)

func (*RunObservation) Phase added in v0.58.0

func (o *RunObservation) Phase(phase RunPhase)

func (*RunObservation) Results added in v0.58.0

func (o *RunObservation) Results(results *TestResultSummary, availability string)

type RunOptionsValidator added in v0.48.0

type RunOptionsValidator interface {
	ValidateRunOptions(RunRequest) error
}

RunOptionsValidator optionally checks run flags before a caller acquires a lease, including during dry-run planning. Validation must be side-effect-free: no external I/O or lease-state access, and no dependency on a resolved lease. Providers implement it for admission before Configure; their backend must reuse the same policy at Run entry. No backend creation, processes, credential lookup, or state writes are allowed. Planned reuse has ReuseLease=true and an empty ID; a nonempty ID also implies reuse. Runtime-only fields such as Repo, RunID, and Env may be absent during prewarm admission.

type RunOutputScope added in v0.58.0

type RunOutputScope string
const (
	RunOutputWorkload RunOutputScope = "workload"
	RunOutputProvider RunOutputScope = "provider-run"
)

type RunPhase added in v0.58.0

type RunPhase string
const (
	RunPhaseAcquire RunPhase = "acquire"
	RunPhaseResolve RunPhase = "resolve"
	RunPhaseSetup   RunPhase = "setup"
	RunPhaseSync    RunPhase = "sync"
	RunPhaseCommand RunPhase = "command"
	RunPhaseCleanup RunPhase = "cleanup"
	RunPhaseOpaque  RunPhase = "opaque-provider-run"
)

type RunRequest added in v0.6.0

type RunRequest struct {
	Observation           *RunObservation `json:"-" yaml:"-"`
	Repo                  Repo
	ID                    string
	ReuseLease            bool // Planned reuse without an ID; a nonempty ID also implies reuse.
	RunID                 string
	Options               LeaseOptions
	Keep                  bool
	Reclaim               bool
	NoSync                bool
	NoHydrate             bool
	SyncOnly              bool
	DebugSync             bool
	ShellMode             bool
	ChecksumSync          bool
	ForceSyncLarge        bool
	FullResync            bool
	EnvHelper             string
	CaptureStdout         string
	CaptureStderr         string
	CaptureOnFail         bool
	KeepOnFailure         bool
	Preflight             bool
	Downloads             []string
	Env                   map[string]string
	EnvSummary            bool
	ScriptRequested       bool
	Script                *RunScriptSpec
	FreshPR               FreshPRSpec
	ApplyLocalPatch       bool
	Command               []string
	CommandLiteralArgs    map[int]bool // Profile argument positions that must not introduce shell syntax.
	Label                 string
	RequestedSlug         string
	TimingJSON            bool
	ArtifactGlobs         []string
	RequiredArtifactGlobs []string
	EmitProof             string
	ProofTemplate         string
	ProfileVariables      map[string]string
	StopAfter             string
}

type RunResult added in v0.6.0

type RunResult struct {
	ExitCode      int
	Status        RunStatus
	ErrorKind     RunErrorKind
	Command       time.Duration
	Total         time.Duration
	SyncDelegated bool
	Session       *RunSessionHandle
	Provider      string
	LeaseID       string
	Slug          string
	CommandText   string
	LogExcerpt    string
	ActionsURL    string
	Artifacts     []RunArtifact
}

func FinalizeRunResult added in v0.34.0

func FinalizeRunResult(result RunResult, err error) RunResult

type RunScriptSpec added in v0.12.0

type RunScriptSpec struct {
	Source     string
	Data       []byte
	RemotePath string
	Shebang    bool
}

type RunSessionHandle added in v0.21.0

type RunSessionHandle struct {
	Provider       string `json:"provider"`
	LeaseID        string `json:"leaseId"`
	Slug           string `json:"slug,omitempty"`
	Reused         bool   `json:"reused"`
	Kept           bool   `json:"kept"`
	ActionsURL     string `json:"actionsUrl,omitempty"`
	RunID          string `json:"runId,omitempty"`
	CleanupCommand string `json:"cleanupCommand"`
}

type RunStatus added in v0.34.0

type RunStatus string
const (
	RunStatusSucceeded RunStatus = "succeeded"
	RunStatusFailed    RunStatus = "failed"
	RunStatusTimedOut  RunStatus = "timed-out"
	RunStatusCanceled  RunStatus = "canceled"
)

func RunStatusForResult added in v0.34.0

func RunStatusForResult(result RunResult, err error) RunStatus

type RunTelemetrySummary added in v0.6.0

type RunTelemetrySummary struct {
	Start   *LeaseTelemetry   `json:"start,omitempty"`
	End     *LeaseTelemetry   `json:"end,omitempty"`
	Samples []*LeaseTelemetry `json:"samples,omitempty"`
}

type RunnerPhase added in v0.50.0

type RunnerPhase struct {
	Name          string `json:"name"`
	Ms            int64  `json:"ms"`
	Opaque        bool   `json:"opaque,omitempty"`
	Reason        string `json:"reason,omitempty"`
	Provider      string `json:"provider,omitempty"`
	LeaseID       string `json:"leaseId,omitempty"`
	Slug          string `json:"slug,omitempty"`
	RunID         string `json:"runId,omitempty"`
	MachineType   string `json:"machineType,omitempty"`
	TransferCount int    `json:"transferCount,omitempty"`
	TransferBytes int64  `json:"transferBytes,omitempty"`
}

type RunpodConfig added in v0.17.0

type RunpodConfig struct {
	APIKey     string `env:"CRABBOX_RUNPOD_API_KEY" envAlias:"RUNPOD_API_KEY" sources:"env" reportApplied:"true"`
	APIURL     string `` /* 243-byte string literal not displayed */
	CloudType  string `` /* 239-byte string literal not displayed */
	InstanceID string `` /* 373-byte string literal not displayed */
	Image      string `` /* 271-byte string literal not displayed */
	TemplateID string `` /* 215-byte string literal not displayed */
	DiskGB     int    `` /* 216-byte string literal not displayed */
	User       string `` /* 162-byte string literal not displayed */
	WorkRoot   string `` /* 191-byte string literal not displayed */
}

RunpodConfig describes mechanical bindings; credential provenance and provider runtime defaulting remain separate policy owners.

type RunpodConfigApplied added in v0.54.0

type RunpodConfigApplied struct {
	InputAccepted bool
	APIKey        bool
	APIURL        bool
}

RunpodConfigApplied records accepted assignments during one application.

type RunpodConfigFlagValues added in v0.54.0

type RunpodConfigFlagValues struct {
	APIURL     *string
	CloudType  *string
	InstanceID *string
	Image      *string
	TemplateID *string
	DiskGB     *int
	User       *string
	WorkRoot   *string
}

RunpodConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterRunpodConfigFlags added in v0.54.0

func RegisterRunpodConfigFlags(fs *flag.FlagSet, defaults RunpodConfig) RunpodConfigFlagValues

RegisterRunpodConfigFlags registers mechanical bindings without selecting a provider.

func (RunpodConfigFlagValues) Apply added in v0.54.0

Apply copies explicit flag values. Provider validation must run afterward.

type RunpodConfigVisitedFlags added in v0.54.0

type RunpodConfigVisitedFlags struct {
	APIURL bool
}

RunpodConfigVisitedFlags records raw flag visits, independently of application.

func RunpodConfigFlagPresence added in v0.54.0

func RunpodConfigFlagPresence(fs *flag.FlagSet) RunpodConfigVisitedFlags

RunpodConfigFlagPresence reports visits for tracked flag bindings.

type Runtime added in v0.6.0

type Runtime struct {
	Stdout io.Writer
	Stderr io.Writer
	Clock  Clock
	HTTP   *http.Client
	Exec   CommandRunner
}

func RuntimeForProviderOperation added in v0.45.0

func RuntimeForProviderOperation(stderr io.Writer) Runtime

RuntimeForProviderOperation supplies the standard local command runner for provider lifecycle capabilities that are invoked on Provider rather than an already-configured Backend.

type SSHJump added in v0.75.0

type SSHJump struct {
	RelayOnly bool `json:"relayOnly,omitempty"`
	Relay     bool `json:"relay,omitempty"`

	Candidates   []SSHJumpCandidate `json:"candidates,omitempty"`
	HostKeyAlias string             `json:"-"`
	Host         string             `json:"host"`
	Port         int                `json:"port"`
	HostKey      string             `json:"hostKey"`
	Fingerprint  string             `json:"fingerprint,omitempty"`
	// contains filtered or unexported fields
}

SSHJump describes an authenticated SSH transport hop; the destination still has its own end-to-end SSH host key and authentication.

type SSHJumpCandidate added in v0.76.0

type SSHJumpCandidate struct {
	Host string `json:"host"`
	Port int    `json:"port"`
}

type SSHKey

type SSHKey struct {
	ID          int64  `json:"id"`
	Name        string `json:"name"`
	Fingerprint string `json:"fingerprint"`
	PublicKey   string `json:"public_key"`
}

type SSHLeaseBackend added in v0.6.0

type SSHLeaseBackend interface {
	SSHLoginBackend
	LeaseTouchBackend
	Acquire(ctx context.Context, req AcquireRequest) (LeaseTarget, error)
	List(ctx context.Context, req ListRequest) ([]LeaseView, error)
	ReleaseLease(ctx context.Context, req ReleaseLeaseRequest) error
}

type SSHLoginBackend added in v0.30.0

type SSHLoginBackend interface {
	Backend
	Resolve(ctx context.Context, req ResolveRequest) (LeaseTarget, error)
}

type SSHRunActivityBackend added in v0.49.1

type SSHRunActivityBackend interface {
	BeginSSHRunActivity(context.Context, LeaseTarget) (stop func(), err error)
}

SSHRunActivityBackend keeps provider-owned idle activity alive after lease admission, including setup and sync. Stop must cancel and join its work. Calls may hold a shared claim fence and must not reenter or mutate claims.

type SSHRunFailureEvidenceBackend added in v0.41.4

type SSHRunFailureEvidenceBackend interface {
	Backend
	BeginRunFailureEvidence(ctx context.Context, req RunFailureEvidenceRequest) (RunFailureEvidenceCollector, error)
}

SSHRunFailureEvidenceBackend optionally captures provider-owned state just before an SSH command starts. The returned collector retains that baseline inside the provider and returns only normalized evidence to core after a command or transport failure.

type SSHTarget

type SSHTarget struct {
	SSHJump                 *SSHJump
	User                    string
	Host                    string
	SSHHostKey              string
	Key                     string
	CertificateFile         string
	KnownHostsFile          string
	AuthoritativeKnownHosts bool // Provider-owned trust; recheck it for every connection.
	HostKeyAlias            string
	Port                    string
	FallbackPorts           []string

	TargetOS    string
	WindowsMode string
	ReadyCheck  string
	// ReadinessStatus is an optional provider-owned, observational command.
	// It may report pending/failed phases; it can never establish readiness.
	ReadinessStatus string
	AuthSecret      bool
	NoControlMaster bool

	DisableHostKeyChecking bool
	NetworkKind            NetworkMode
	SSHConfigProxy         bool
	SSHConfigFile          string // Provider-owned IdentitiesOnly route; bypass ambient SSH config.
	SSHConfigData          []byte `json:"-"` // Captured provider config; keep resolution and transport on the same bytes.
	ProxyCommand           string
	ChildEnvDenylist       []string
	// Transport-only overrides can contain credentials; never serialize them.
	ChildEnv          map[string]string `json:"-"`
	DiagnosticSecrets []string          `json:"-"` // Provider credentials echoed by local authentication hooks.
	// Refresh provider-owned credential files before a new transport starts.
	PrepareConnection func(context.Context) error `json:"-"`
	// contains filtered or unexported fields
}

func SSHTargetFromConfig added in v0.6.0

func SSHTargetFromConfig(cfg Config, host string) SSHTarget

type ScalewayConfig added in v0.33.0

type ScalewayConfig struct {
	Region         string   `` /* 201-byte string literal not displayed */
	Zone           string   `` /* 195-byte string literal not displayed */
	Image          string   `` /* 215-byte string literal not displayed */
	Type           string   `` /* 214-byte string literal not displayed */
	ProjectID      string   `` /* 178-byte string literal not displayed */
	OrganizationID string   `` /* 198-byte string literal not displayed */
	SecurityGroup  string   `` /* 197-byte string literal not displayed */
	SSHCIDRs       []string `` /* 222-byte string literal not displayed */
}

ScalewayConfig contains non-secret Scaleway Instances settings. SDK profile selection and native validation remain provider policy.

type ScalewayConfigApplied added in v0.55.0

type ScalewayConfigApplied struct {
	InputAccepted bool
	Region        bool
	Zone          bool
	Image         bool
	Type          bool
}

ScalewayConfigApplied records accepted assignments during one application.

type ScalewayConfigFlagValues added in v0.55.0

type ScalewayConfigFlagValues struct {
	Region         *string
	Zone           *string
	Image          *string
	Type           *string
	ProjectID      *string
	OrganizationID *string
	SecurityGroup  *string
	SSHCIDRs       *string
}

ScalewayConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterScalewayConfigFlags added in v0.55.0

func RegisterScalewayConfigFlags(fs *flag.FlagSet, defaults ScalewayConfig) ScalewayConfigFlagValues

RegisterScalewayConfigFlags registers mechanical bindings without selecting a provider.

func (ScalewayConfigFlagValues) Apply added in v0.55.0

Apply copies explicit flag values. Provider validation must run afterward.

type ScalewayConfigVisitedFlags added in v0.55.0

type ScalewayConfigVisitedFlags struct {
	Region bool
	Zone   bool
	Image  bool
	Type   bool
}

ScalewayConfigVisitedFlags records raw flag visits, independently of application.

func ScalewayConfigFlagPresence added in v0.55.0

func ScalewayConfigFlagPresence(fs *flag.FlagSet) ScalewayConfigVisitedFlags

ScalewayConfigFlagPresence reports visits for tracked flag bindings.

type SchemaValidationResult added in v0.40.0

type SchemaValidationResult struct {
	Artifact   string   `json:"artifact"`
	Schema     string   `json:"schema,omitempty"`
	Valid      bool     `json:"valid"`
	Violations []string `json:"violations,omitempty"`
	Error      string   `json:"error,omitempty"`
}

type SealosDevboxConfig added in v0.37.0

type SealosDevboxConfig struct {
	Kubectl         string `` /* 213-byte string literal not displayed */
	Kubeconfig      string `` /* 212-byte string literal not displayed */
	Context         string `` /* 174-byte string literal not displayed */
	Namespace       string `` /* 200-byte string literal not displayed */
	Image           string `` /* 169-byte string literal not displayed */
	TemplateID      string `` /* 192-byte string literal not displayed */
	CPU             string `` /* 181-byte string literal not displayed */
	Memory          string `` /* 195-byte string literal not displayed */
	StorageLimit    string `` /* 215-byte string literal not displayed */
	Network         string `` /* 221-byte string literal not displayed */
	SSHGatewayHost  string `` /* 200-byte string literal not displayed */
	SSHGatewayPort  string `` /* 215-byte string literal not displayed */
	SSHUser         string `` /* 190-byte string literal not displayed */
	WorkRoot        string `` /* 237-byte string literal not displayed */
	NodeHost        string `` /* 188-byte string literal not displayed */
	DeleteOnRelease bool   `` /* 219-byte string literal not displayed */
}

SealosDevboxConfig owns source bindings and accepted local-path expansion. Native validation remains with the provider.

func (*SealosDevboxConfig) ExpandAppliedLocalPaths added in v0.55.0

func (cfg *SealosDevboxConfig) ExpandAppliedLocalPaths(applied SealosDevboxConfigApplied)

ExpandAppliedLocalPaths expands local paths accepted by a file or flag overlay.

type SealosDevboxConfigApplied added in v0.55.0

type SealosDevboxConfigApplied struct {
	InputAccepted   bool
	Kubectl         bool
	Kubeconfig      bool
	WorkRoot        bool
	DeleteOnRelease bool
}

SealosDevboxConfigApplied records accepted assignments during one application.

type SealosDevboxConfigFlagValues added in v0.55.0

type SealosDevboxConfigFlagValues struct {
	Kubectl         *string
	Kubeconfig      *string
	Context         *string
	Namespace       *string
	Image           *string
	TemplateID      *string
	CPU             *string
	Memory          *string
	StorageLimit    *string
	Network         *string
	SSHGatewayHost  *string
	SSHGatewayPort  *string
	SSHUser         *string
	WorkRoot        *string
	NodeHost        *string
	DeleteOnRelease *bool
}

SealosDevboxConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterSealosDevboxConfigFlags added in v0.55.0

func RegisterSealosDevboxConfigFlags(fs *flag.FlagSet, defaults SealosDevboxConfig) SealosDevboxConfigFlagValues

RegisterSealosDevboxConfigFlags registers mechanical bindings without selecting a provider.

func (SealosDevboxConfigFlagValues) Apply added in v0.55.0

Apply copies explicit flag values. Provider validation must run afterward.

type SealosDevboxConfigVisitedFlags added in v0.55.0

type SealosDevboxConfigVisitedFlags struct {
	Kubectl         bool
	Kubeconfig      bool
	WorkRoot        bool
	DeleteOnRelease bool
}

SealosDevboxConfigVisitedFlags records raw flag visits, independently of application.

func SealosDevboxConfigFlagPresence added in v0.55.0

func SealosDevboxConfigFlagPresence(fs *flag.FlagSet) SealosDevboxConfigVisitedFlags

SealosDevboxConfigFlagPresence reports visits for tracked flag bindings.

type SemaphoreConfig added in v0.8.0

type SemaphoreConfig struct {
	Host        string `` /* 234-byte string literal not displayed */
	Token       string `` /* 163-byte string literal not displayed */
	Project     string `` /* 204-byte string literal not displayed */
	Machine     string `` /* 194-byte string literal not displayed */
	OSImage     string `` /* 189-byte string literal not displayed */
	IdleTimeout string `` /* 198-byte string literal not displayed */
}

SemaphoreConfig describes mechanical bindings for the SSH lease provider. Effective flag/runtime fallbacks do not populate the raw configuration.

type SemaphoreConfigApplied added in v0.54.0

type SemaphoreConfigApplied struct {
	InputAccepted bool
	Host          bool
	Token         bool
}

SemaphoreConfigApplied records accepted assignments during one application.

type SemaphoreConfigFlagValues added in v0.54.0

type SemaphoreConfigFlagValues struct {
	Host        *string
	Project     *string
	Machine     *string
	OSImage     *string
	IdleTimeout *string
}

SemaphoreConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterSemaphoreConfigFlags added in v0.54.0

func RegisterSemaphoreConfigFlags(fs *flag.FlagSet, defaults SemaphoreConfig) SemaphoreConfigFlagValues

RegisterSemaphoreConfigFlags registers mechanical bindings without selecting a provider.

func (SemaphoreConfigFlagValues) Apply added in v0.54.0

Apply copies explicit flag values. Provider validation must run afterward.

type SemaphoreConfigVisitedFlags added in v0.54.0

type SemaphoreConfigVisitedFlags struct {
	Host bool
}

SemaphoreConfigVisitedFlags records raw flag visits, independently of application.

func SemaphoreConfigFlagPresence added in v0.54.0

func SemaphoreConfigFlagPresence(fs *flag.FlagSet) SemaphoreConfigVisitedFlags

SemaphoreConfigFlagPresence reports visits for tracked flag bindings.

type ServeAvailabilityConfig added in v0.78.0

type ServeAvailabilityConfig struct {
	Mode              string   `yaml:"mode,omitempty"`
	MaxHostCPU        *float64 `yaml:"maxHostCPU,omitempty"`
	RequireUserIdle   string   `yaml:"requireUserIdle,omitempty"`
	RequireACPower    *bool    `yaml:"requireACPower,omitempty"`
	MaxMemoryPressure string   `yaml:"maxMemoryPressure,omitempty"`
}

type ServeConfig added in v0.75.0

type ServeConfig struct {
	Availability       ServeAvailabilityConfig `yaml:"availability,omitempty"`
	AdvertiseAddresses []string                `yaml:"advertiseAddresses,omitempty"`
	NoLANCandidates    bool                    `yaml:"noLANCandidates,omitempty"`
	SSHPort            int                     `yaml:"sshPort,omitempty"`
	Machine            string                  `yaml:"machine,omitempty"`
	Fallback           string                  `yaml:"fallback,omitempty"`
}

type Server

type Server struct {
	LifetimePolicy *LeaseLifetimePolicy `json:"lifetimePolicy,omitempty"`
	CloudID        string
	Provider       string
	HostID         string
	ImmutableID    string `json:"-"` // Provider-generated identity for same-name replacement checks.

	ID               int64             `json:"id"`
	Name             string            `json:"name"`
	Status           string            `json:"status"`
	Labels           map[string]string `json:"labels"`
	ProviderMetadata map[string]any    `json:"provider_metadata,omitempty"`
	ImageEvidence    *ImageEvidence    `json:"imageEvidence,omitempty"`
	PublicNet        struct {
		IPv4 struct {
			IP string `json:"ip"`
		} `json:"ipv4"`
	} `json:"public_net"`
	// PrivateNet is set by Azure / Proxmox via direct field assignment
	// (azure.go:903, proxmox.go:605) and, on the Hetzner code path, via JSON
	// unmarshal of the API response. Hetzner returns `private_net` as an array
	// of network attachments (per docs.hetzner.cloud/#servers-get-all-servers),
	// while the original shape modeled it as a single struct — a mismatch that
	// crashed every Hetzner call with `cannot unmarshal array into Go struct
	// field`. The named `privateNet` type below absorbs both shapes:
	// best-effort populates IPv4.IP from the first array entry, and accepts
	// the legacy struct shape so direct field assignment in Azure / Proxmox
	// keeps the field shape unchanged for callers.
	PrivateNet privateNet          `json:"private_net"`
	ServerType ServerTypeInfo      `json:"server_type"`
	Location   *ServerLocationInfo `json:"location,omitempty"`
	Image      *ServerImageInfo    `json:"image,omitempty"`

	AzureUserAssignedIdentityIDs []string `json:"-"` // Observed VM attachments, never inferred from tags.
	// contains filtered or unexported fields
}

func FindServerByAlias added in v0.6.0

func FindServerByAlias(servers []Server, id string) (Server, string, error)

func WaitForServerIP added in v0.6.0

func WaitForServerIP(ctx context.Context, client *HetznerClient, id int64) (Server, error)

func (Server) DisplayID

func (s Server) DisplayID() string

type ServerImageInfo added in v0.44.0

type ServerImageInfo struct {
	Architecture string `json:"architecture"`
}

type ServerLocationInfo added in v0.44.0

type ServerLocationInfo struct {
	Name string `json:"name"`
}

type ServerProvisioner added in v0.59.0

type ServerProvisioner struct {
	Prepare  func(context.Context, Config) error
	Create   func(context.Context, Config) (Server, error)
	CanRetry func(error) bool
}

ServerProvisioner separates admission from a remote create. Preparation errors stop immediately, without capacity fallback or rewriting the original error. Create must settle its own partial resources before CanRetry permits another attempt. Core does not infer deletion authority from a failed create response.

type ServerTypeInfo added in v0.44.0

type ServerTypeInfo struct {
	Name         string `json:"name"`
	Architecture string `json:"architecture,omitempty"`
}

type SessionDiskRetentionPolicy added in v0.80.0

type SessionDiskRetentionPolicy struct {
	Mode                 string `json:"mode"`
	OwnerBinding         string `json:"ownerBinding"`
	ComputeWindowSeconds int    `json:"computeWindowSeconds"`
}

SessionDiskRetentionPolicy is immutable acquisition policy, not an extension of a legacy allocation deadline. It grants no compute by itself.

type SessionDiskRetentionState added in v0.80.0

type SessionDiskRetentionState struct {
	DesiredState  string                       `json:"desiredState"`
	ComputeWindow RetainedComputeWindow        `json:"computeWindow"`
	Operation     *RetentionLifecycleOperation `json:"operation,omitempty"`
}

type SessionDiskRetentionView added in v0.80.0

type SessionDiskRetentionView struct {
	Identity RetainedProviderIdentity `json:"identity"`
	SessionDiskRetentionPolicy
	SessionDiskRetentionState
	Schema         string `json:"schema"`
	ClaimRevision  string `json:"claimRevision"`
	PolicyVerified bool   `json:"policyVerified"`
	ObservedState  string `json:"observedState"`
	StopPending    bool   `json:"stopPending"`
}

type ShardConfig added in v0.35.0

type ShardConfig struct {
	MaxCount       int
	MaxConcurrency int
}

type SmolvmConfig added in v0.30.0

type SmolvmConfig struct {
	APIKey   string `env:"CRABBOX_SMOLVM_API_KEY" envAlias:"SMOLMACHINES_API_KEY" envAlias2:"SMK_API_KEY" sources:"env" reportApplied:"true"`
	BaseURL  string `` /* 240-byte string literal not displayed */
	Image    string `` /* 210-byte string literal not displayed */
	Workdir  string `` /* 220-byte string literal not displayed */
	CPUs     int    `` /* 221-byte string literal not displayed */
	MemoryMB int    `` /* 236-byte string literal not displayed */
	Network  string `` /* 191-byte string literal not displayed */
	Keep     bool   `` /* 149-byte string literal not displayed */
}

SmolvmConfig describes mechanical bindings for the delegated provider. Credential provenance and destination validation remain owned by core policy.

type SmolvmConfigApplied added in v0.54.0

type SmolvmConfigApplied struct {
	InputAccepted bool
	APIKey        bool
	BaseURL       bool
}

SmolvmConfigApplied records accepted assignments during one application.

type SmolvmConfigFlagValues added in v0.54.0

type SmolvmConfigFlagValues struct {
	BaseURL  *string
	Image    *string
	Workdir  *string
	CPUs     *int
	MemoryMB *int
	Network  *string
	Keep     *bool
}

SmolvmConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterSmolvmConfigFlags added in v0.54.0

func RegisterSmolvmConfigFlags(fs *flag.FlagSet, defaults SmolvmConfig) SmolvmConfigFlagValues

RegisterSmolvmConfigFlags registers mechanical bindings without selecting a provider.

func (SmolvmConfigFlagValues) Apply added in v0.54.0

Apply copies explicit flag values. Provider validation must run afterward.

type SmolvmConfigVisitedFlags added in v0.54.0

type SmolvmConfigVisitedFlags struct {
	BaseURL bool
}

SmolvmConfigVisitedFlags records raw flag visits, independently of application.

func SmolvmConfigFlagPresence added in v0.54.0

func SmolvmConfigFlagPresence(fs *flag.FlagSet) SmolvmConfigVisitedFlags

SmolvmConfigFlagPresence reports visits for tracked flag bindings.

type SpritesConfig added in v0.9.0

type SpritesConfig struct {
	Token    string `` /* 143-byte string literal not displayed */
	APIURL   string `` /* 245-byte string literal not displayed */
	WorkRoot string `` /* 209-byte string literal not displayed */
}

SpritesConfig owns mechanical bindings; provider prevalidation and source provenance remain in their existing wrappers.

type SpritesConfigApplied added in v0.61.0

type SpritesConfigApplied struct {
	InputAccepted bool
	Token         bool
	APIURL        bool
}

SpritesConfigApplied records accepted assignments during one application.

type SpritesConfigFlagValues added in v0.61.0

type SpritesConfigFlagValues struct {
	APIURL   *string
	WorkRoot *string
}

SpritesConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterSpritesConfigFlags added in v0.61.0

func RegisterSpritesConfigFlags(fs *flag.FlagSet, defaults SpritesConfig) SpritesConfigFlagValues

RegisterSpritesConfigFlags registers mechanical bindings without selecting a provider.

func (SpritesConfigFlagValues) Apply added in v0.61.0

Apply copies explicit flag values. Provider validation must run afterward.

type SpritesConfigVisitedFlags added in v0.61.0

type SpritesConfigVisitedFlags struct {
	APIURL bool
}

SpritesConfigVisitedFlags records raw flag visits, independently of application.

func SpritesConfigFlagPresence added in v0.61.0

func SpritesConfigFlagPresence(fs *flag.FlagSet) SpritesConfigVisitedFlags

SpritesConfigFlagPresence reports visits for tracked flag bindings.

type StaticConfig added in v0.4.0

type StaticConfig struct {
	ID       string `config:"id" env:"CRABBOX_STATIC_ID" sources:"user,repo,env" fileIgnoreEmpty:"true" fileStorage:"value"`
	Name     string `config:"name" env:"CRABBOX_STATIC_NAME" sources:"user,repo,env" fileIgnoreEmpty:"true" fileStorage:"value"`
	Host     string `` /* 174-byte string literal not displayed */
	User     string `` /* 153-byte string literal not displayed */
	Port     string `` /* 153-byte string literal not displayed */
	WorkRoot string `` /* 175-byte string literal not displayed */
	// Some SSH servers close a multiplexed session before sending exit-status,
	// so a command that succeeded exits 255 and fails workspace ownership closed.
	NoControlMaster bool `` /* 212-byte string literal not displayed */
	// StartCommand and StopCommand are local argv arrays. Their JSON env and
	// flag encodings are outside configgen's scalar/list codecs.
	StartCommand         []string          `sources:"runtime"`
	StopCommand          []string          `sources:"runtime"`
	Power                StaticPowerConfig `sources:"runtime"`
	PowerAcknowledgeStop bool              `sources:"runtime"`
}

StaticConfig holds configured inputs; target projection and SSH credentials remain separate.

type StaticConfigApplied added in v0.62.0

type StaticConfigApplied struct {
	InputAccepted bool
	Host          bool
}

StaticConfigApplied records accepted assignments during one application.

type StaticConfigFlagValues added in v0.62.0

type StaticConfigFlagValues struct {
	Host            *string
	User            *string
	Port            *string
	WorkRoot        *string
	NoControlMaster *bool
}

StaticConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterStaticConfigFlags added in v0.62.0

func RegisterStaticConfigFlags(fs *flag.FlagSet, defaults StaticConfig) StaticConfigFlagValues

RegisterStaticConfigFlags registers mechanical bindings without selecting a provider.

func (StaticConfigFlagValues) Apply added in v0.62.0

Apply copies explicit flag values. Provider validation must run afterward.

type StaticConfigVisitedFlags added in v0.62.0

type StaticConfigVisitedFlags struct {
	Host bool
}

StaticConfigVisitedFlags records raw flag visits, independently of application.

func StaticConfigFlagPresence added in v0.62.0

func StaticConfigFlagPresence(fs *flag.FlagSet) StaticConfigVisitedFlags

StaticConfigFlagPresence reports visits for tracked flag bindings.

type StaticPowerConfig added in v0.67.0

type StaticPowerConfig struct {
	Dedicated bool   `yaml:"dedicated"`
	HostID    string `yaml:"hostID,omitempty"`
}

type StatusRequest added in v0.6.0

type StatusRequest struct {
	Options                       LeaseOptions
	ID                            string
	Wait                          bool
	WaitTimeout                   time.Duration
	AuthoritativeProviderMetadata bool
}

type StatusTouchClaimAuthorizer added in v0.44.0

type StatusTouchClaimAuthorizer interface {
	AuthorizeStatusTouchClaim(context.Context, LeaseTarget, LeaseClaim) error
}

StatusTouchClaimAuthorizer lets a provider fully authorize an exact claim whose ownership scope must be hydrated or validated at runtime.

type StatusTouchClaimValidator added in v0.37.0

type StatusTouchClaimValidator interface {
	StatusTouchClaimMatches(LeaseTarget, LeaseClaim) bool
}

StatusTouchClaimValidator lets a provider require identity labels that core cannot interpret before status --wait extends a remotely visible lease.

type StatusView added in v0.6.0

type StatusView struct {
	Retention         *SessionDiskRetentionView `json:"retention,omitempty"`
	LeasePolicy       *CoordinatorLeasePolicy   `json:"leasePolicy,omitempty"`
	RemainingLifetime string                    `json:"remainingLifetime,omitempty"`
	MaxLifetime       string                    `json:"maxLifetime,omitempty"`
	LifetimePolicy    *LeaseLifetimePolicy      `json:"lifetimePolicy,omitempty"`
	ID                string                    `json:"id"`
	Slug              string                    `json:"slug,omitempty"`
	Provider          string                    `json:"provider"`
	TargetOS          string                    `json:"target"`
	WorkRoot          string                    `json:"workroot,omitempty"`
	WindowsMode       string                    `json:"windowsMode,omitempty"`
	State             string                    `json:"state"`
	ServerID          string                    `json:"serverId"`
	ServerType        string                    `json:"serverType"`
	ImageEvidence     *ImageEvidence            `json:"imageEvidence,omitempty"`
	// ProviderResourceID optionally exposes an immutable provider resource ID.
	// ServerID keeps each provider's existing identity semantics; for Islo it
	// is the sandbox name rather than the immutable sandbox ID.
	ProviderResourceID           string                   `json:"providerResourceId,omitempty"`
	Host                         string                   `json:"host"`
	Pond                         string                   `json:"pond,omitempty"`
	Network                      NetworkMode              `json:"network"`
	NetworkDiagnostics           *LeaseNetworkDiagnostics `json:"networkDiagnostics,omitempty"`
	Tailscale                    *TailscaleMetadata       `json:"tailscale,omitempty"`
	SSHHost                      string                   `json:"sshHost"`
	SSHHostKey                   string                   `json:"sshHostKey,omitempty"`
	ProviderAccessExpiresAt      string                   `json:"providerAccessExpiresAt,omitempty"`
	SSHUser                      string                   `json:"sshUser"`
	SSHPort                      string                   `json:"sshPort"`
	SSHFallbackPorts             []string                 `json:"sshFallbackPorts,omitempty"`
	SSHKey                       string                   `json:"sshKey"`
	LastTouchedAt                string                   `json:"lastTouchedAt,omitempty"`
	IdleFor                      string                   `json:"idleFor,omitempty"`
	IdleTimeout                  string                   `json:"idleTimeout,omitempty"`
	ExpiresAt                    string                   `json:"expiresAt,omitempty"`
	CleanupStatus                string                   `json:"cleanupStatus,omitempty"`
	ProviderCleanup              *ProviderCleanupEvidence `json:"providerCleanup,omitempty"`
	CleanupStartedAt             string                   `json:"cleanupStartedAt,omitempty"`
	CleanupCompletedAt           string                   `json:"cleanupCompletedAt,omitempty"`
	CleanupError                 string                   `json:"cleanupError,omitempty"`
	CleanupRetryAt               string                   `json:"cleanupRetryAt,omitempty"`
	ReleaseDeletesServer         *bool                    `json:"releaseDeletesServer,omitempty"`
	FailureError                 string                   `json:"failureError,omitempty"`
	ProvisioningPhase            string                   `json:"provisioningPhase,omitempty"`
	ProvisioningResourceMayExist *bool                    `json:"provisioningResourceMayExist,omitempty"`
	ProvisioningFailureRetryable *bool                    `json:"provisioningFailureRetryable,omitempty"`
	Labels                       map[string]string        `json:"labels,omitempty"`
	ProviderMetadata             map[string]any           `json:"providerMetadata,omitempty"`
	HasHost                      bool                     `json:"hasHost"`
	Ready                        bool                     `json:"ready"`
	Telemetry                    *LeaseTelemetry          `json:"telemetry,omitempty"`
	TelemetryHistory             []*LeaseTelemetry        `json:"telemetryHistory,omitempty"`
}

type StopReclaimBackend added in v0.35.0

type StopReclaimBackend interface {
	Backend
	ReclaimAndStop(ctx context.Context, req StopRequest) error
}

StopReclaimBackend supports an explicit one-shot adoption before stopping an exactly identified resource. Providers without a strong adoption contract do not implement it.

type StopRequest added in v0.6.0

type StopRequest struct {
	Options LeaseOptions
	ID      string
}

type StreamingListBackend added in v0.76.0

type StreamingListBackend interface {
	Backend
	StreamList(context.Context, ListRequest, func(ListPage) error) error
}

StreamingListBackend emits bounded pages in display order. Callbacks are synchronous: returning an error cancels outstanding reads.

type SuperserveConfig added in v0.30.0

type SuperserveConfig struct {
	BaseURL         string   `` /* 250-byte string literal not displayed */
	Template        string   `` /* 168-byte string literal not displayed */
	Snapshot        string   `` /* 145-byte string literal not displayed */
	Workdir         string   `` /* 186-byte string literal not displayed */
	TimeoutSecs     int      `` /* 205-byte string literal not displayed */
	ExecTimeoutSecs int      `` /* 232-byte string literal not displayed */
	NetworkAllowOut []string `` /* 233-byte string literal not displayed */
	NetworkDenyOut  []string `` /* 229-byte string literal not displayed */
	ForgetMissing   bool     `` /* 204-byte string literal not displayed */
}

SuperserveConfig owns mechanical bindings. The runtime API key remains absent from configuration and argv; provider validation stays in its existing phase.

type SuperserveConfigApplied added in v0.61.0

type SuperserveConfigApplied struct {
	InputAccepted bool
}

SuperserveConfigApplied records accepted assignments during one application.

type SuperserveConfigFlagValues added in v0.61.0

type SuperserveConfigFlagValues struct {
	BaseURL         *string
	Template        *string
	Snapshot        *string
	Workdir         *string
	TimeoutSecs     *int
	ExecTimeoutSecs *int
	NetworkAllowOut *string
	NetworkDenyOut  *string
	ForgetMissing   *bool
}

SuperserveConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterSuperserveConfigFlags added in v0.61.0

func RegisterSuperserveConfigFlags(fs *flag.FlagSet, defaults SuperserveConfig) SuperserveConfigFlagValues

RegisterSuperserveConfigFlags registers mechanical bindings without selecting a provider.

func (SuperserveConfigFlagValues) Apply added in v0.61.0

Apply copies explicit flag values. Provider validation must run afterward.

type SyncConfig

type SyncConfig struct {
	Source        string
	Compression   string
	Excludes      []string
	Includes      []string
	Delete        bool
	Checksum      bool
	GitSeed       bool
	GitSeedSource string
	GitOverlay    bool
	Fingerprint   bool
	BaseRef       string
	Timeout       time.Duration
	WarnFiles     int
	WarnBytes     int64
	FailFiles     int
	FailBytes     int64
	AllowLarge    bool
}

type SyncExcludeRules added in v0.41.4

type SyncExcludeRules struct {
	// contains filtered or unexported fields
}

SyncExcludeRules keeps ordered matcher provenance internal while allowing provider adapters to pass the rules back to the core manifest owner.

func SyncExcludes added in v0.6.0

func SyncExcludes(root string, cfg Config) (SyncExcludeRules, error)

type SyncManifest

type SyncManifest struct {
	Files                    []string
	Deleted                  []string
	Changed                  []string
	OverlayFiles             []string
	ProtectedTrackedExcludes []SyncProtectedTrackedExclude
	Bytes                    int64
	ChangedBytes             int64
	OverlayBytes             int64
	// contains filtered or unexported fields
}

func BuildSyncManifestFiltered added in v0.26.1

func BuildSyncManifestFiltered(root string, excludes SyncExcludeRules, includes []string) (SyncManifest, error)

func FullSyncGuardrailManifest added in v0.50.0

func FullSyncGuardrailManifest(manifest SyncManifest) SyncManifest

FullSyncGuardrailManifest selects the complete transfer without changing the caller's dirty-delta diagnostics or the archive's file manifest.

func (SyncManifest) DeletedNUL

func (m SyncManifest) DeletedNUL() []byte

func (SyncManifest) NUL

func (m SyncManifest) NUL() []byte

func (SyncManifest) OverlayNUL added in v0.47.0

func (m SyncManifest) OverlayNUL() []byte

type SyncProtectedTrackedExclude added in v0.41.4

type SyncProtectedTrackedExclude struct {
	Path    string `json:"path"`
	Pattern string `json:"pattern"`
}

type TailnetPeerValidator added in v0.29.0

type TailnetPeerValidator interface {
	ValidateTailnetPeer(ctx context.Context, leaseID string) (TailscaleMetadata, error)
}

TailnetPeerValidator lets dual-plane delegated providers revalidate a local tailnet claim before it is advertised as reachable.

type TailscaleConfig added in v0.5.0

type TailscaleConfig struct {
	Enabled                bool
	Tags                   []string
	HostnameTemplate       string
	Hostname               string
	AuthKeyEnv             string
	AuthKey                string
	ExitNode               string
	ExitNodeAllowLANAccess bool
}

type TailscaleMetadata added in v0.5.0

type TailscaleMetadata struct {
	Enabled                bool     `json:"enabled"`
	Hostname               string   `json:"hostname,omitempty"`
	FQDN                   string   `json:"fqdn,omitempty"`
	IPv4                   string   `json:"ipv4,omitempty"`
	Tags                   []string `json:"tags,omitempty"`
	State                  string   `json:"state,omitempty"`
	Error                  string   `json:"error,omitempty"`
	Version                string   `json:"version,omitempty"`
	DeviceID               string   `json:"deviceID,omitempty"`
	ExitNode               string   `json:"exitNode,omitempty"`
	ExitNodeAllowLANAccess bool     `json:"exitNodeAllowLanAccess,omitempty"`
}

type TailscaleMetadataBackend added in v0.29.0

type TailscaleMetadataBackend interface {
	Backend
	UpdateTailscaleMetadata(ctx context.Context, lease LeaseTarget, meta TailscaleMetadata) (Server, error)
}

type TargetSpec added in v0.6.0

type TargetSpec struct {
	OS          string
	WindowsMode string
}

type TartConfig added in v0.26.1

type TartConfig struct {
	Image    string `` /* 187-byte string literal not displayed */
	User     string `` /* 192-byte string literal not displayed */
	Password string `config:"password" env:"CRABBOX_TART_PASSWORD" sources:"user,repo,env" fileIgnoreEmpty:"true" fileStorage:"value"`
	WorkRoot string `config:"workRoot" env:"CRABBOX_TART_WORK_ROOT" sources:"user,repo,env" fileIgnoreEmpty:"true" fileStorage:"value"`
	CPUs     int    `` /* 179-byte string literal not displayed */
	Memory   int    `` /* 192-byte string literal not displayed */
	Disk     int    `` /* 198-byte string literal not displayed */
}

TartConfig declares bindings; ordered resource validation remains provider-owned.

type TartConfigApplied added in v0.62.0

type TartConfigApplied struct {
	InputAccepted bool
	Image         bool
}

TartConfigApplied records accepted assignments during one application.

type TartConfigFlagValues added in v0.62.0

type TartConfigFlagValues struct {
	Image  *string
	User   *string
	CPUs   *int
	Memory *int
	Disk   *int
}

TartConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterTartConfigFlags added in v0.62.0

func RegisterTartConfigFlags(fs *flag.FlagSet, defaults TartConfig) TartConfigFlagValues

RegisterTartConfigFlags registers mechanical bindings without selecting a provider.

type TartConfigVisitedFlags added in v0.62.0

type TartConfigVisitedFlags struct {
	Image  bool
	User   bool
	CPUs   bool
	Memory bool
	Disk   bool
}

TartConfigVisitedFlags records raw flag visits, independently of application.

func TartConfigFlagPresence added in v0.62.0

func TartConfigFlagPresence(fs *flag.FlagSet) TartConfigVisitedFlags

TartConfigFlagPresence reports visits for tracked flag bindings.

type TencentCloudConfig added in v0.34.0

type TencentCloudConfig struct {
	Region                  string   `` /* 201-byte string literal not displayed */
	Zone                    string   `` /* 206-byte string literal not displayed */
	Image                   string   `` /* 200-byte string literal not displayed */
	Type                    string   `` /* 202-byte string literal not displayed */
	VPCID                   string   `` /* 175-byte string literal not displayed */
	SubnetID                string   `` /* 187-byte string literal not displayed */
	SecurityGroupID         string   `` /* 218-byte string literal not displayed */
	SSHCIDRs                []string `` /* 280-byte string literal not displayed */
	RootGB                  int64    `` /* 232-byte string literal not displayed */
	InternetChargeType      string   `` /* 238-byte string literal not displayed */
	InternetMaxBandwidthOut int64    `` /* 293-byte string literal not displayed */
	APIEndpoint             string   `` /* 198-byte string literal not displayed */
}

TencentCloudConfig contains non-secret CVM settings. Native credentials, endpoint families and class selection remain provider policy.

type TencentCloudConfigApplied added in v0.55.0

type TencentCloudConfigApplied struct {
	InputAccepted bool
	Region        bool
	Zone          bool
	Image         bool
	Type          bool
}

TencentCloudConfigApplied records accepted assignments during one application.

type TencentCloudConfigFlagValues added in v0.55.0

type TencentCloudConfigFlagValues struct {
	Region                  *string
	Zone                    *string
	Image                   *string
	Type                    *string
	VPCID                   *string
	SubnetID                *string
	SecurityGroupID         *string
	SSHCIDRs                *string
	RootGB                  *int64
	InternetChargeType      *string
	InternetMaxBandwidthOut *int64
	APIEndpoint             *string
}

TencentCloudConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterTencentCloudConfigFlags added in v0.55.0

func RegisterTencentCloudConfigFlags(fs *flag.FlagSet, defaults TencentCloudConfig) TencentCloudConfigFlagValues

RegisterTencentCloudConfigFlags registers mechanical bindings without selecting a provider.

func (TencentCloudConfigFlagValues) Apply added in v0.55.0

Apply copies explicit flag values. Provider validation must run afterward.

type TencentCloudConfigVisitedFlags added in v0.55.0

type TencentCloudConfigVisitedFlags struct {
	Region bool
	Zone   bool
	Image  bool
	Type   bool
}

TencentCloudConfigVisitedFlags records raw flag visits, independently of application.

func TencentCloudConfigFlagPresence added in v0.55.0

func TencentCloudConfigFlagPresence(fs *flag.FlagSet) TencentCloudConfigVisitedFlags

TencentCloudConfigFlagPresence reports visits for tracked flag bindings.

type TenkiConfig added in v0.26.1

type TenkiConfig struct {
	CLIPath   string `` /* 188-byte string literal not displayed */
	Endpoint  string `` /* 221-byte string literal not displayed */
	Gateway   string `` /* 230-byte string literal not displayed */
	Workspace string `` /* 205-byte string literal not displayed */
	Project   string `` /* 197-byte string literal not displayed */
	Image     string `` /* 171-byte string literal not displayed */
	Snapshot  string `` /* 173-byte string literal not displayed */
	WorkRoot  string `` /* 202-byte string literal not displayed */
	CPUs      int    `` /* 192-byte string literal not displayed */
	MemoryMB  int    `` /* 209-byte string literal not displayed */
	DiskGB    int    `` /* 211-byte string literal not displayed */
}

TenkiConfig owns mechanical bindings; destination provenance and provider normalization and validation remain in their existing policy phases.

type TenkiConfigApplied added in v0.61.0

type TenkiConfigApplied struct {
	InputAccepted bool
	Endpoint      bool
	Gateway       bool
}

TenkiConfigApplied records accepted assignments during one application.

type TenkiConfigFlagValues added in v0.61.0

type TenkiConfigFlagValues struct {
	CLIPath   *string
	Endpoint  *string
	Gateway   *string
	Workspace *string
	Project   *string
	Image     *string
	Snapshot  *string
	WorkRoot  *string
	CPUs      *int
	MemoryMB  *int
	DiskGB    *int
}

TenkiConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterTenkiConfigFlags added in v0.61.0

func RegisterTenkiConfigFlags(fs *flag.FlagSet, defaults TenkiConfig) TenkiConfigFlagValues

RegisterTenkiConfigFlags registers mechanical bindings without selecting a provider.

func (TenkiConfigFlagValues) Apply added in v0.61.0

Apply copies explicit flag values. Provider validation must run afterward.

type TenkiConfigVisitedFlags added in v0.61.0

type TenkiConfigVisitedFlags struct {
	Endpoint bool
	Gateway  bool
}

TenkiConfigVisitedFlags records raw flag visits, independently of application.

func TenkiConfigFlagPresence added in v0.61.0

func TenkiConfigFlagPresence(fs *flag.FlagSet) TenkiConfigVisitedFlags

TenkiConfigFlagPresence reports visits for tracked flag bindings.

type TensorlakeConfig added in v0.12.0

type TensorlakeConfig struct {
	APIKey         string  `env:"CRABBOX_TENSORLAKE_API_KEY" envAlias:"TENSORLAKE_API_KEY" sources:"env" reportApplied:"true"`
	APIURL         string  `` /* 264-byte string literal not displayed */
	CLIPath        string  `` /* 201-byte string literal not displayed */
	Image          string  `` /* 178-byte string literal not displayed */
	Snapshot       string  `` /* 196-byte string literal not displayed */
	OrganizationID string  `` /* 242-byte string literal not displayed */
	ProjectID      string  `` /* 217-byte string literal not displayed */
	Namespace      string  `` /* 211-byte string literal not displayed */
	Workdir        string  `` /* 256-byte string literal not displayed */
	CPUs           float64 `` /* 186-byte string literal not displayed */
	MemoryMB       int     `` /* 239-byte string literal not displayed */
	DiskMB         int     `` /* 237-byte string literal not displayed */
	TimeoutSecs    int     `` /* 248-byte string literal not displayed */
	NoInternet     bool    `` /* 163-byte string literal not displayed */
}

TensorlakeConfig describes mechanical bindings for the delegated provider. Native invocation, scope validation and credential policy remain separate.

type TensorlakeConfigApplied added in v0.54.0

type TensorlakeConfigApplied struct {
	InputAccepted bool
	APIKey        bool
	APIURL        bool
}

TensorlakeConfigApplied records accepted assignments during one application.

type TensorlakeConfigFlagValues added in v0.54.0

type TensorlakeConfigFlagValues struct {
	APIURL         *string
	CLIPath        *string
	Image          *string
	Snapshot       *string
	OrganizationID *string
	ProjectID      *string
	Namespace      *string
	Workdir        *string
	CPUs           *float64
	MemoryMB       *int
	DiskMB         *int
	TimeoutSecs    *int
	NoInternet     *bool
}

TensorlakeConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterTensorlakeConfigFlags added in v0.54.0

func RegisterTensorlakeConfigFlags(fs *flag.FlagSet, defaults TensorlakeConfig) TensorlakeConfigFlagValues

RegisterTensorlakeConfigFlags registers mechanical bindings without selecting a provider.

func (TensorlakeConfigFlagValues) Apply added in v0.54.0

Apply copies explicit flag values. Provider validation must run afterward.

type TensorlakeConfigVisitedFlags added in v0.54.0

type TensorlakeConfigVisitedFlags struct {
	APIURL bool
}

TensorlakeConfigVisitedFlags records raw flag visits, independently of application.

func TensorlakeConfigFlagPresence added in v0.54.0

func TensorlakeConfigFlagPresence(fs *flag.FlagSet) TensorlakeConfigVisitedFlags

TensorlakeConfigFlagPresence reports visits for tracked flag bindings.

type TestFailure

type TestFailure struct {
	Suite     string `json:"suite"`
	Name      string `json:"name"`
	Classname string `json:"classname,omitempty"`
	File      string `json:"file,omitempty"`
	Message   string `json:"message,omitempty"`
	Type      string `json:"type,omitempty"`
	Kind      string `json:"kind"`
}

type TestResultSummary

type TestResultSummary struct {
	Format      string        `json:"format"`
	Files       []string      `json:"files"`
	Suites      int           `json:"suites"`
	Tests       int           `json:"tests"`
	Failures    int           `json:"failures"`
	Errors      int           `json:"errors"`
	Skipped     int           `json:"skipped"`
	TimeSeconds float64       `json:"timeSeconds"`
	Failed      []TestFailure `json:"failed"`
}

type TimingPhase added in v0.6.0

type TimingPhase struct {
	Name    string `json:"name"`
	Ms      int64  `json:"ms,omitempty"`
	Skipped bool   `json:"skipped,omitempty"`
	Reason  string `json:"reason,omitempty"`
}

func FinishCommandPhaseTracker added in v0.12.0

func FinishCommandPhaseTracker(tracker *CommandPhaseTracker, at time.Time) []TimingPhase

type TimingReport added in v0.6.0

type TimingReport struct {
	SSHRoute           string                   `json:"sshRoute,omitempty"`
	CreationRejected   *CreationRejection       `json:"creationRejected,omitempty"`
	CreationEvents     []CreationEvent          `json:"creationEvents,omitempty"`
	Provider           string                   `json:"provider"`
	LeaseID            string                   `json:"leaseId,omitempty"`
	Slug               string                   `json:"slug,omitempty"`
	RunnerTotalMs      int64                    `json:"runnerTotalMs,omitempty"`
	TerminalPending    bool                     `json:"terminalPending,omitempty"`
	RunnerPhases       []RunnerPhase            `json:"runnerPhases,omitempty"`
	LeaseMs            int64                    `json:"leaseMs,omitempty"`
	BootstrapMs        int64                    `json:"bootstrapMs,omitempty"`
	SyncMs             int64                    `json:"syncMs"`
	SyncPhases         []TimingPhase            `json:"syncPhases,omitempty"`
	SyncSkipped        bool                     `json:"syncSkipped"`
	SyncDelegated      bool                     `json:"syncDelegated,omitempty"`
	SyncMode           string                   `json:"syncMode,omitempty"`
	SyncTransferFiles  int                      `json:"syncTransferFiles,omitempty"`
	SyncTransferBytes  int64                    `json:"syncTransferBytes,omitempty"`
	SyncSeedBytes      int64                    `json:"syncSeedBytes,omitempty"`
	SyncFallbackReason string                   `json:"syncFallbackReason,omitempty"`
	HydrateMs          int64                    `json:"hydrateMs,omitempty"`
	ProbeMs            int64                    `json:"probeMs,omitempty"`
	CommandMs          int64                    `json:"commandMs"`
	CommandPhases      []TimingPhase            `json:"commandPhases,omitempty"`
	TotalMs            int64                    `json:"totalMs"`
	EndToEndMs         int64                    `json:"endToEndMs"`
	ExitCode           int                      `json:"exitCode"`
	RunStatus          RunStatus                `json:"runStatus,omitempty"`
	ErrorKind          RunErrorKind             `json:"errorKind,omitempty"`
	ActionsRunURL      string                   `json:"actionsRunUrl,omitempty"`
	RunID              string                   `json:"runId,omitempty"`
	Label              string                   `json:"label,omitempty"`
	MachineType        string                   `json:"machineType,omitempty"`
	ImageEvidence      *ImageEvidence           `json:"imageEvidence,omitempty"`
	RepoPath           string                   `json:"repoPath,omitempty"`
	Workdir            string                   `json:"workdir,omitempty"`
	StopCommand        string                   `json:"stopCommand,omitempty"`
	IdleTimeout        string                   `json:"idleTimeout,omitempty"`
	BlockedStage       string                   `json:"blockedStage,omitempty"`
	ResourceExhaustion ResourceExhaustionReason `json:"resourceExhaustion,omitempty"`
	FailureEvidence    *RunFailureEvidence      `json:"failureEvidence,omitempty"`
	RetryLikely        string                   `json:"retryLikely,omitempty"`
	Artifacts          []runArtifact            `json:"artifacts,omitempty"`

	SchemaValidations []SchemaValidationResult `json:"schemaValidations,omitempty"`
	ArtifactChanges   []ArtifactChangeResult   `json:"artifactChanges,omitempty"`

	LeaseStopped        *bool  `json:"leaseStopped,omitempty"`
	LeaseStopErr        string `json:"leaseStopError,omitempty"`
	LeaseRetainedReason string `json:"leaseRetainedReason,omitempty"`
}

func TimingReportWithRunResult added in v0.34.0

func TimingReportWithRunResult(report TimingReport, result RunResult, err error) TimingReport

TimingReportWithRunResult copies normalized run outcome fields onto a timing report.

type TouchRequest added in v0.6.0

type TouchRequest struct {
	Lease               LeaseTarget
	State               string
	IdleTimeout         time.Duration
	IdleTimeoutOverride *time.Duration
}

type UnikraftCloudConfig added in v0.37.0

type UnikraftCloudConfig struct {
	APIKey   string `` /* 220-byte string literal not displayed */
	APIURL   string `` /* 277-byte string literal not displayed */
	Metro    string `` /* 271-byte string literal not displayed */
	Image    string `` /* 237-byte string literal not displayed */
	MemoryMB int    `` /* 187-byte string literal not displayed */
}

UnikraftCloudConfig owns mechanical bindings; endpoint derivation and provider guards remain separate from source admission.

type UnikraftCloudConfigApplied added in v0.61.0

type UnikraftCloudConfigApplied struct {
	InputAccepted bool
	APIKey        bool
	APIURL        bool
}

UnikraftCloudConfigApplied records accepted assignments during one application.

type UnikraftCloudConfigFlagValues added in v0.61.0

type UnikraftCloudConfigFlagValues struct {
	APIURL   *string
	Metro    *string
	Image    *string
	MemoryMB *int
}

UnikraftCloudConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterUnikraftCloudConfigFlags added in v0.61.0

func RegisterUnikraftCloudConfigFlags(fs *flag.FlagSet, defaults UnikraftCloudConfig) UnikraftCloudConfigFlagValues

RegisterUnikraftCloudConfigFlags registers mechanical bindings without selecting a provider.

func (UnikraftCloudConfigFlagValues) Apply added in v0.61.0

Apply copies explicit flag values. Provider validation must run afterward.

type UnikraftCloudConfigVisitedFlags added in v0.61.0

type UnikraftCloudConfigVisitedFlags struct {
	APIURL bool
}

UnikraftCloudConfigVisitedFlags records raw flag visits, independently of application.

func UnikraftCloudConfigFlagPresence added in v0.61.0

func UnikraftCloudConfigFlagPresence(fs *flag.FlagSet) UnikraftCloudConfigVisitedFlags

UnikraftCloudConfigFlagPresence reports visits for tracked flag bindings.

type UpstashBoxConfig added in v0.18.0

type UpstashBoxConfig struct {
	APIKey    string `env:"CRABBOX_UPSTASH_BOX_API_KEY" envAlias:"UPSTASH_BOX_API_KEY" sources:"env" reportApplied:"true"`
	BaseURL   string `` /* 280-byte string literal not displayed */
	Runtime   string `` /* 228-byte string literal not displayed */
	Size      string `` /* 205-byte string literal not displayed */
	Workdir   string `` /* 240-byte string literal not displayed */
	KeepAlive bool   `` /* 165-byte string literal not displayed */
}

UpstashBoxConfig describes mechanical bindings for the delegated provider. Credential provenance and destination validation remain owned by core policy.

type UpstashBoxConfigApplied added in v0.54.0

type UpstashBoxConfigApplied struct {
	InputAccepted bool
	APIKey        bool
	BaseURL       bool
}

UpstashBoxConfigApplied records accepted assignments during one application.

type UpstashBoxConfigFlagValues added in v0.54.0

type UpstashBoxConfigFlagValues struct {
	BaseURL   *string
	Runtime   *string
	Size      *string
	Workdir   *string
	KeepAlive *bool
}

UpstashBoxConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterUpstashBoxConfigFlags added in v0.54.0

func RegisterUpstashBoxConfigFlags(fs *flag.FlagSet, defaults UpstashBoxConfig) UpstashBoxConfigFlagValues

RegisterUpstashBoxConfigFlags registers mechanical bindings without selecting a provider.

func (UpstashBoxConfigFlagValues) Apply added in v0.54.0

Apply copies explicit flag values. Provider validation must run afterward.

type UpstashBoxConfigVisitedFlags added in v0.54.0

type UpstashBoxConfigVisitedFlags struct {
	BaseURL bool
}

UpstashBoxConfigVisitedFlags records raw flag visits, independently of application.

func UpstashBoxConfigFlagPresence added in v0.54.0

func UpstashBoxConfigFlagPresence(fs *flag.FlagSet) UpstashBoxConfigVisitedFlags

UpstashBoxConfigFlagPresence reports visits for tracked flag bindings.

type VastConfig added in v0.35.0

type VastConfig struct {
	APIKey         string  `env:"CRABBOX_VAST_API_KEY" envAlias:"VAST_API_KEY" sources:"env" reportApplied:"true"`
	APIURL         string  `` /* 248-byte string literal not displayed */
	InstanceType   string  `` /* 245-byte string literal not displayed */
	GPUName        string  `` /* 170-byte string literal not displayed */
	GPUCount       int     `` /* 205-byte string literal not displayed */
	Image          string  `` /* 228-byte string literal not displayed */
	TemplateID     string  `` /* 182-byte string literal not displayed */
	Runtype        string  `` /* 196-byte string literal not displayed */
	DiskGB         int     `` /* 211-byte string literal not displayed */
	MaxDphTotal    float64 `` /* 146-byte string literal not displayed */
	MinReliability float64 `` /* 160-byte string literal not displayed */
	Order          string  `` /* 205-byte string literal not displayed */
	User           string  `` /* 179-byte string literal not displayed */
	WorkRoot       string  `` /* 238-byte string literal not displayed */
	ReleaseAction  string  `` /* 248-byte string literal not displayed */
}

VastConfig contains Vast.ai provider settings. APIKey is populated only from CRABBOX_VAST_API_KEY / VAST_API_KEY and must not be persisted or printed.

type VastConfigApplied added in v0.54.0

type VastConfigApplied struct {
	InputAccepted bool
	APIKey        bool
	APIURL        bool
	InstanceType  bool
	WorkRoot      bool
	ReleaseAction bool
}

VastConfigApplied records accepted assignments during one application.

type VastConfigFlagValues added in v0.54.0

type VastConfigFlagValues struct {
	APIURL         *string
	InstanceType   *string
	GPUName        *string
	GPUCount       *int
	Image          *string
	TemplateID     *string
	Runtype        *string
	DiskGB         *int
	MaxDphTotal    *float64
	MinReliability *float64
	Order          *string
	User           *string
	WorkRoot       *string
	ReleaseAction  *string
}

VastConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterVastConfigFlags added in v0.54.0

func RegisterVastConfigFlags(fs *flag.FlagSet, defaults VastConfig) VastConfigFlagValues

RegisterVastConfigFlags registers mechanical bindings without selecting a provider.

func (VastConfigFlagValues) Apply added in v0.54.0

Apply copies explicit flag values. Provider validation must run afterward.

type VastConfigVisitedFlags added in v0.54.0

type VastConfigVisitedFlags struct {
	APIURL        bool
	InstanceType  bool
	WorkRoot      bool
	ReleaseAction bool
}

VastConfigVisitedFlags records raw flag visits, independently of application.

func VastConfigFlagPresence added in v0.54.0

func VastConfigFlagPresence(fs *flag.FlagSet) VastConfigVisitedFlags

VastConfigFlagPresence reports visits for tracked flag bindings.

type VercelSandboxConfig added in v0.31.0

type VercelSandboxConfig struct {
	Runtime         string   `` /* 196-byte string literal not displayed */
	Workdir         string   `` /* 199-byte string literal not displayed */
	ProjectID       string   `` /* 170-byte string literal not displayed */
	TeamID          string   `` /* 158-byte string literal not displayed */
	Scope           string   `` /* 166-byte string literal not displayed */
	VCPUs           float64  `` /* 171-byte string literal not displayed */
	TimeoutSecs     int      `` /* 206-byte string literal not displayed */
	ExecTimeoutSecs int      `` /* 229-byte string literal not displayed */
	Persistent      bool     `` /* 186-byte string literal not displayed */
	Snapshot        string   `` /* 178-byte string literal not displayed */
	SnapshotMode    string   `` /* 186-byte string literal not displayed */
	NetworkPolicy   string   `` /* 227-byte string literal not displayed */
	NetworkAllow    []string `` /* 184-byte string literal not displayed */
	NetworkDeny     []string `` /* 176-byte string literal not displayed */
	Ports           []string `` /* 161-byte string literal not displayed */
	ForgetMissing   bool     `` /* 212-byte string literal not displayed */
}

VercelSandboxConfig is the typed source for mechanical configuration wiring. Every field explicitly permits user/repo YAML, environment, and flags. Credentials and destinations are intentionally absent: runtime auth and credential policy stay in the provider. Cross-field validation stays there too.

type VercelSandboxConfigApplied added in v0.56.0

type VercelSandboxConfigApplied struct {
	InputAccepted bool
}

VercelSandboxConfigApplied records accepted assignments during one application.

type VercelSandboxConfigFlagValues added in v0.47.0

type VercelSandboxConfigFlagValues struct {
	Runtime         *string
	Workdir         *string
	ProjectID       *string
	TeamID          *string
	Scope           *string
	VCPUs           *float64
	TimeoutSecs     *int
	ExecTimeoutSecs *int
	Persistent      *bool
	Snapshot        *string
	SnapshotMode    *string
	NetworkPolicy   *string
	NetworkAllow    *string
	NetworkDeny     *string
	Ports           *string
	ForgetMissing   *bool
}

VercelSandboxConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterVercelSandboxConfigFlags added in v0.47.0

func RegisterVercelSandboxConfigFlags(fs *flag.FlagSet, defaults VercelSandboxConfig) VercelSandboxConfigFlagValues

RegisterVercelSandboxConfigFlags registers mechanical bindings without selecting a provider.

func (VercelSandboxConfigFlagValues) Apply added in v0.47.0

Apply copies explicit flag values. Provider validation must run afterward.

type VultrConfig added in v0.34.0

type VultrConfig struct {
	Region        string   `config:"region" env:"CRABBOX_VULTR_REGION" sources:"user,repo,env" fileIgnoreEmpty:"true" fileStorage:"value"`
	OS            string   `config:"os" env:"CRABBOX_VULTR_OS" sources:"user,repo,env" fileIgnoreEmpty:"true" fileStorage:"value"`
	Image         string   `config:"image" env:"CRABBOX_VULTR_IMAGE" sources:"user,repo,env" fileIgnoreEmpty:"true" fileStorage:"value"`
	Snapshot      string   `config:"snapshot" env:"CRABBOX_VULTR_SNAPSHOT" sources:"user,repo,env" fileIgnoreEmpty:"true" fileStorage:"value"`
	FirewallGroup string   `config:"firewallGroup" env:"CRABBOX_VULTR_FIREWALL_GROUP" sources:"user,repo,env" fileIgnoreEmpty:"true" fileStorage:"value"`
	VPCIDs        []string `config:"vpcIds" env:"CRABBOX_VULTR_VPC_IDS" sources:"user,repo,env" fileList:"nonempty-raw" fileStorage:"value"`
	SSHCIDRs      []string `config:"sshCIDRs" env:"CRABBOX_VULTR_SSH_CIDRS" sources:"user,repo,env" fileList:"nonempty-raw" fileStorage:"value"`
	UserScheme    string   `config:"userScheme" env:"CRABBOX_VULTR_USER_SCHEME" sources:"user,repo,env" fileIgnoreEmpty:"true" fileStorage:"value"`
}

VultrConfig contains non-secret settings without provider flags. Boot-source selection and native validation remain provider policy.

func (VultrConfig) WithRuntimeDefaults added in v0.55.0

func (cfg VultrConfig) WithRuntimeDefaults() VultrConfig

WithRuntimeDefaults returns a shallow copy with only raw-empty Region and UserScheme filled. It does not normalize values or select generic SSH policy.

type VultrConfigApplied added in v0.56.0

type VultrConfigApplied struct {
	InputAccepted bool
}

VultrConfigApplied records accepted assignments during one application.

type WandbConfig added in v0.20.0

type WandbConfig struct {
	APIKey             string `config:"apiKey" env:"CRABBOX_WANDB_API_KEY" sources:"user,repo,env" fileIgnoreEmpty:"true" fileStorage:"value"`
	DefaultImage       string `` /* 238-byte string literal not displayed */
	MaxLifetimeSeconds int    `` /* 303-byte string literal not displayed */
}

WandbConfig drives W&B Sandboxes. The client owns the vendor API-key and netrc fallback chain; the loader applies only its explicit primary override.

type WandbConfigApplied added in v0.56.0

type WandbConfigApplied struct {
	InputAccepted bool
}

WandbConfigApplied records accepted assignments during one application.

type WandbConfigFlagValues added in v0.54.0

type WandbConfigFlagValues struct {
	DefaultImage       *string
	MaxLifetimeSeconds *int
}

WandbConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterWandbConfigFlags added in v0.54.0

func RegisterWandbConfigFlags(fs *flag.FlagSet, defaults WandbConfig) WandbConfigFlagValues

RegisterWandbConfigFlags registers mechanical bindings without selecting a provider.

func (WandbConfigFlagValues) Apply added in v0.54.0

Apply copies explicit flag values. Provider validation must run afterward.

type WarmupRequest added in v0.6.0

type WarmupRequest struct {
	Repo          Repo
	Options       LeaseOptions
	Keep          bool
	Reclaim       bool
	ActionsRunner bool
	RequestedSlug string
	TimingJSON    bool
	// BeforeComplete runs synchronous, best-effort core bookkeeping once after
	// successful acquisition/retention and before final output. Providers opting
	// in must include it in total timing; it cannot fail or roll back the lease.
	BeforeComplete func()
}

type WarpBuildConfig added in v0.81.0

type WarpBuildConfig struct {
	Token       string `env:"CRABBOX_WARPBUILD_TOKEN" envAlias:"WB_TOKEN" sources:"env"`
	CLIPath     string `` /* 181-byte string literal not displayed */
	RunnerLabel string `` /* 236-byte string literal not displayed */
	Workdir     string `` /* 242-byte string literal not displayed */
}

WarpBuildConfig keeps the native CLI and its credential in trusted inputs.

type WarpBuildConfigApplied added in v0.81.0

type WarpBuildConfigApplied struct {
	InputAccepted bool
}

WarpBuildConfigApplied records accepted assignments during one application.

type WarpBuildConfigFlagValues added in v0.81.0

type WarpBuildConfigFlagValues struct {
	CLIPath     *string
	RunnerLabel *string
	Workdir     *string
}

WarpBuildConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterWarpBuildConfigFlags added in v0.81.0

func RegisterWarpBuildConfigFlags(fs *flag.FlagSet, defaults WarpBuildConfig) WarpBuildConfigFlagValues

RegisterWarpBuildConfigFlags registers mechanical bindings without selecting a provider.

func (WarpBuildConfigFlagValues) Apply added in v0.81.0

Apply copies explicit flag values. Provider validation must run afterward.

type WindowsSandboxConfig added in v0.30.0

type WindowsSandboxConfig struct {
	Workdir            string `` /* 241-byte string literal not displayed */
	TempRoot           string `` /* 241-byte string literal not displayed */
	Networking         string `` /* 241-byte string literal not displayed */
	VGPU               string `` /* 218-byte string literal not displayed */
	Clipboard          string `` /* 250-byte string literal not displayed */
	ProtectedClient    string `` /* 265-byte string literal not displayed */
	AudioInput         string `` /* 245-byte string literal not displayed */
	VideoInput         string `` /* 245-byte string literal not displayed */
	PrinterRedirection string `` /* 277-byte string literal not displayed */
	MemoryMB           int    `` /* 257-byte string literal not displayed */
}

WindowsSandboxConfig owns input bindings; ordered flag validation stays in the provider.

type WindowsSandboxConfigApplied added in v0.62.0

type WindowsSandboxConfigApplied struct {
	InputAccepted bool
	TempRoot      bool
}

WindowsSandboxConfigApplied records accepted assignments during one application.

type WindowsSandboxConfigFlagValues added in v0.62.0

type WindowsSandboxConfigFlagValues struct {
	Workdir            *string
	TempRoot           *string
	Networking         *string
	VGPU               *string
	Clipboard          *string
	ProtectedClient    *string
	AudioInput         *string
	VideoInput         *string
	PrinterRedirection *string
	MemoryMB           *int
}

WindowsSandboxConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterWindowsSandboxConfigFlags added in v0.62.0

func RegisterWindowsSandboxConfigFlags(fs *flag.FlagSet, defaults WindowsSandboxConfig) WindowsSandboxConfigFlagValues

RegisterWindowsSandboxConfigFlags registers mechanical bindings without selecting a provider.

type WindowsSandboxConfigVisitedFlags added in v0.62.0

type WindowsSandboxConfigVisitedFlags struct {
	Workdir            bool
	TempRoot           bool
	Networking         bool
	VGPU               bool
	Clipboard          bool
	ProtectedClient    bool
	AudioInput         bool
	VideoInput         bool
	PrinterRedirection bool
	MemoryMB           bool
}

WindowsSandboxConfigVisitedFlags records raw flag visits, independently of application.

func WindowsSandboxConfigFlagPresence added in v0.62.0

func WindowsSandboxConfigFlagPresence(fs *flag.FlagSet) WindowsSandboxConfigVisitedFlags

WindowsSandboxConfigFlagPresence reports visits for tracked flag bindings.

type XCPNgConfig added in v0.29.0

type XCPNgConfig struct {
	APIURL       string `` /* 160-byte string literal not displayed */
	Username     string `` /* 164-byte string literal not displayed */
	Password     string `config:"password" env:"CRABBOX_XCP_NG_PASSWORD" sources:"user,env" fileIgnoreEmpty:"true" fileStorage:"value"`
	Template     string `` /* 194-byte string literal not displayed */
	TemplateUUID string `` /* 208-byte string literal not displayed */
	SR           string `` /* 183-byte string literal not displayed */
	SRUUID       string `` /* 197-byte string literal not displayed */
	Network      string `` /* 187-byte string literal not displayed */
	NetworkUUID  string `` /* 201-byte string literal not displayed */
	Host         string `` /* 162-byte string literal not displayed */
	User         string `` /* 211-byte string literal not displayed */
	WorkRoot     string `` /* 204-byte string literal not displayed */
	InsecureTLS  bool   `` /* 154-byte string literal not displayed */
}

XCPNgConfig owns mechanical bindings; selector-pair replacement and generic connection effects remain explicit policy outside the generated overlays.

type XCPNgConfigApplied added in v0.61.0

type XCPNgConfigApplied struct {
	InputAccepted bool
	Template      bool
	TemplateUUID  bool
	SR            bool
	SRUUID        bool
	Network       bool
	NetworkUUID   bool
	User          bool
	WorkRoot      bool
}

XCPNgConfigApplied records accepted assignments during one application.

type XCPNgConfigFlagValues added in v0.61.0

type XCPNgConfigFlagValues struct {
	APIURL       *string
	Username     *string
	Template     *string
	TemplateUUID *string
	SR           *string
	SRUUID       *string
	Network      *string
	NetworkUUID  *string
	Host         *string
	User         *string
	WorkRoot     *string
	InsecureTLS  *bool
}

XCPNgConfigFlagValues holds parsed values; only visited flags are applied.

func RegisterXCPNgConfigFlags added in v0.61.0

func RegisterXCPNgConfigFlags(fs *flag.FlagSet, defaults XCPNgConfig) XCPNgConfigFlagValues

RegisterXCPNgConfigFlags registers mechanical bindings without selecting a provider.

func (XCPNgConfigFlagValues) Apply added in v0.61.0

Apply copies explicit flag values. Provider validation must run afterward.

type XCPNgConfigVisitedFlags added in v0.61.0

type XCPNgConfigVisitedFlags struct {
	Template     bool
	TemplateUUID bool
	SR           bool
	SRUUID       bool
	Network      bool
	NetworkUUID  bool
	User         bool
	WorkRoot     bool
}

XCPNgConfigVisitedFlags records raw flag visits, independently of application.

func XCPNgConfigFlagPresence added in v0.61.0

func XCPNgConfigFlagPresence(fs *flag.FlagSet) XCPNgConfigVisitedFlags

XCPNgConfigFlagPresence reports visits for tracked flag bindings.

Source Files

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
⌂ 换网址