← Files ModRetro Chromatic PluginARCHIVED FILE
scripts/dependency-doctor.d.mts
2.29 KB · Oct 2, 2026 · 00:37 UTC
export type DependencyId = "node" | "runtime" | "cli" | "gbdk" | "python" | "pyboy" | "pillow" | "desktop" | "uv";
export type DependencyTask = "authoring" | "projectBuild" | "cBuild" | "play" | "desktop";
export type DependencyProbe = "cli-version" | "gbdk-version" | "emulator-import";
export type DependencyStatus = "ready" | "missing" | "broken" | "incompatible" | "unsupported";
export interface DependencyRoots {
packageRoot: string;
runtimeRoot: string;
toolchainRoot: string;
setupRoot: string;
nodeRoot: string;
}
export interface DetectDependenciesOptions extends Partial<DependencyRoots> {
resolvedRoots?: Partial<DependencyRoots> & { nodeExecutable?: string };
environment?: NodeJS.ProcessEnv;
platform?: NodeJS.Platform;
arch?: string;
nodeExecutable?: string;
pythonPath?: string;
tasks?: DependencyTask[];
requestedTasks?: DependencyTask[];
}
export interface DependencyComponent {
id: DependencyId;
status: DependencyStatus;
requiredVersion: string;
detectedVersion?: string;
path?: string;
provenance: string;
detectionEvidence: string[];
probeStatus: "not-run" | "pass" | "fail";
nextSteps: string[];
installerOnly?: boolean;
}
export interface DependencyProbeResult {
name: DependencyProbe;
components: DependencyId[];
status: "pass" | "fail";
executed: boolean;
output: string;
error?: string;
exitObserved?: boolean;
cleanupErrors?: string[];
}
export interface DependencyReport {
schemaVersion: 1;
mode: "detect" | "probe";
readinessBasis: "compatible-metadata";
platform: NodeJS.Platform;
arch: string;
roots: DependencyRoots;
requestedTasks: DependencyTask[];
components: DependencyComponent[];
tasks: Record<DependencyTask, { ready: boolean; requiredComponents: DependencyId[] }>;
ready: boolean;
nextSteps: string[];
probeResults?: DependencyProbeResult[];
probesPassed?: boolean;
}
export const DEPENDENCY_TASKS: readonly DependencyTask[];
export const DEPENDENCY_PROBES: readonly DependencyProbe[];
export function detectDependencies(options?: DetectDependenciesOptions): Promise<DependencyReport>;
export function probeDependencies<T extends DependencyReport>(report: T, options: { probes: DependencyProbe[]; signal?: AbortSignal }): Promise<T & { mode: "probe"; probeResults: DependencyProbeResult[]; probesPassed: boolean }>;
SHA-256: d50347ccd9236d3a6452adc8ee57378b99d6e1a8a1d15120d2082071f0d5023b