/** * Fiber-state projection vocabulary for the framework-free boot page. The * boot chain subscribes to `internal/status` and projects the owning loader * entry's current state. * @module @deepseek-ai/dsh-client-web/src/loader-status */ import type { FiberState } from '@deepseek-ai/cordis' /** * Value mirror of cordis's `FiberState` const enum: a const enum has no * runtime object to import (and esbuild-based pipelines cannot inline it * across modules), so these values mirror the pinned vendored definition * while retaining its type (same rationale as dsh-tool-cordis's mirror). */ export const FIBER_STATE = { PENDING: 0 as FiberState.PENDING, LOADING: 1 as FiberState.LOADING, ACTIVE: 2 as FiberState.ACTIVE, FAILED: 3 as FiberState.FAILED, DISPOSED: 4 as FiberState.DISPOSED, UNLOADING: 5 as FiberState.UNLOADING, } as const /** One entry's projected state label (lower-case face of {@link FiberState}). */ export type LoaderEntryState = 'pending' | 'loading' | 'active' | 'failed' | 'disposed' | 'unloading' /** Label for each fiber state, keyed by member (inlining-safe — no reverse mapping). */ export const STATE_LABELS: Record = { [FIBER_STATE.PENDING]: 'pending', [FIBER_STATE.LOADING]: 'loading', [FIBER_STATE.ACTIVE]: 'active', [FIBER_STATE.FAILED]: 'failed', [FIBER_STATE.DISPOSED]: 'disposed', [FIBER_STATE.UNLOADING]: 'unloading', }