mirror of
https://github.com/deepseek-ai/deepseek-harness.git
synced 2026-09-09 04:02:35 +00:00
36 lines
1.4 KiB
TypeScript
36 lines
1.4 KiB
TypeScript
/**
|
|
* 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<FiberState, LoaderEntryState> = {
|
|
[FIBER_STATE.PENDING]: 'pending',
|
|
[FIBER_STATE.LOADING]: 'loading',
|
|
[FIBER_STATE.ACTIVE]: 'active',
|
|
[FIBER_STATE.FAILED]: 'failed',
|
|
[FIBER_STATE.DISPOSED]: 'disposed',
|
|
[FIBER_STATE.UNLOADING]: 'unloading',
|
|
}
|