kimi-code / packages /agent-core-v2 /src /os /interface /hostFileSystem.ts
SaylorTwift's picture
SaylorTwift HF Staff
Add files using upload-large-folder tool
68d7816 verified
Raw History Blame Contribute Delete
1.61 kB
import { createDecorator, type ServiceIdentifier } from '#/_base/di/instantiation';
import type { TextDecodeErrors } from '#/_base/execEnv/decodeText';
export interface HostFileStat {
readonly isFile: boolean;
readonly isDirectory: boolean;
readonly isSymbolicLink?: boolean;
readonly size: number;
readonly mtimeMs?: number;
readonly ino?: number;
}
export interface HostDirEntry {
readonly name: string;
readonly isFile: boolean;
readonly isDirectory: boolean;
readonly isSymbolicLink?: boolean;
}
export interface IHostFileSystem {
readonly _serviceBrand: undefined;
readText(
path: string,
options?: { encoding?: BufferEncoding; errors?: TextDecodeErrors },
): Promise<string>;
writeText(path: string, data: string): Promise<void>;
appendText(path: string, data: string): Promise<void>;
readBytes(path: string, n?: number, offset?: number): Promise<Uint8Array>;
writeBytes(path: string, data: Uint8Array): Promise<void>;
readLines(
path: string,
options?: { encoding?: BufferEncoding; errors?: TextDecodeErrors },
): AsyncGenerator<string>;
createExclusive(path: string, data: Uint8Array): Promise<boolean>;
stat(path: string): Promise<HostFileStat>;
lstat(path: string): Promise<HostFileStat>;
readdir(path: string): Promise<readonly HostDirEntry[]>;
mkdir(path: string, options?: { readonly recursive?: boolean }): Promise<void>;
remove(path: string): Promise<void>;
realpath(path: string): Promise<string>;
}
export const IHostFileSystem: ServiceIdentifier<IHostFileSystem> =
createDecorator<IHostFileSystem>('hostFileSystem');