@struktoai/mirage-core
Version:
A Unified Virtual Filesystem For AI Agents
62 lines • 2.27 kB
TypeScript
import type { ErrnoCodes, FSHost, FSType } from './fs/types.ts';
import { type NetworkHost } from './network.ts';
interface PyodideFS extends FSHost {
cwd: () => string;
stat: (path: string, nofollow?: boolean) => unknown;
lookupPath: (path: string, options?: {
parent?: boolean;
follow?: boolean;
}) => {
path: string;
};
analyzePath: (path: string) => {
exists: boolean;
};
mkdir: (path: string) => unknown;
rmdir: (path: string) => void;
readdir: (path: string) => string[];
mkdirTree: (path: string, mode?: number) => void;
writeFile: (path: string, data: Uint8Array | string) => void;
readFile: (path: string, opts?: {
encoding?: 'binary' | 'utf8';
}) => Uint8Array | string;
unlink?: (path: string) => void;
mount: (type: FSType, opts: Record<string, unknown>, mountpoint: string) => unknown;
unmount: (mountpoint: string) => void;
}
export interface PyodideInterface {
globals: {
set: (key: string, value: unknown) => void;
get: (key: string) => unknown;
delete?: (key: string) => void;
};
runPython: (code: string, options?: {
globals?: unknown;
filename?: string;
}) => unknown;
runPythonAsync: (code: string, options?: {
globals?: unknown;
filename?: string;
}) => Promise<unknown>;
toPy: (obj: unknown) => unknown;
isPyProxy?: (obj: unknown) => boolean;
loadPackagesFromImports?: (code: string, options?: Record<string, unknown>) => Promise<unknown>;
registerJsModule: (name: string, module: unknown) => void;
unregisterJsModule?: (name: string) => void;
setInterruptBuffer?: (buffer: Int32Array | Uint8Array) => void;
FS: PyodideFS;
ERRNO_CODES: ErrnoCodes;
_module?: NetworkHost;
}
/** Whether this runs under Node, where pyodide loads from the installed package. */
export declare function isNode(): boolean;
export declare function loadPyodideRuntime(
/** Distribution knobs a deployment can point at its own prebuilt assets. */
options?: {
home?: string;
packageBaseUrl?: string;
lockFileURL?: string;
packages?: readonly string[];
}): Promise<PyodideInterface>;
export {};
//# sourceMappingURL=loader.d.ts.map