export interface BootstrapMarkerLike { pinnedCommit?: unknown schemaVersion?: unknown } export interface ActiveRuntimeState { hasValidMarker: boolean shouldUseActiveRuntime: boolean usabilityReason: 'usable' | 'unusable' } export function hasValidBootstrapMarker( marker: BootstrapMarkerLike | null | undefined, schemaVersion: number ): boolean { if (!marker || typeof marker !== 'object') { return false } if (marker.schemaVersion !== schemaVersion) { return false } if (typeof marker.pinnedCommit !== 'string' || marker.pinnedCommit.length < 7) { return false } return true } // The active install at ~/.hermes/hermes-agent can be real and runnable even if // Desktop never wrote its first-run bootstrap marker (for example when Hermes // was installed by the CLI first, or when a past desktop build forgot the // marker). Runtime usability is authoritative for "can we launch local Hermes // right now?"; the marker is only provenance about how that install was // created. A missing/stale marker must never force a healthy local install into // the first-run bootstrap UI. export function classifyActiveRuntime( marker: BootstrapMarkerLike | null | undefined, schemaVersion: number, runtimeUsable: boolean ): ActiveRuntimeState { const hasValidMarker = hasValidBootstrapMarker(marker, schemaVersion) if (!runtimeUsable) { return { hasValidMarker, shouldUseActiveRuntime: false, usabilityReason: 'unusable' } } return { hasValidMarker, shouldUseActiveRuntime: true, usabilityReason: 'usable' } }