UNPKG

@struktoai/mirage-core

Version:

A Unified Virtual Filesystem For AI Agents

40 lines • 1.69 kB
// ========= Copyright 2026 @ Strukto.AI All Rights Reserved. ========= // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // ========= Copyright 2026 @ Strukto.AI All Rights Reserved. ========= import { BLKSIZE, BLOCK_UNIT, ident } from "../utils/stat_view.js"; /** * The POSIX stat a runtime reports for one mount row. `uid` and `gid` * are what a row without an owner reports (a host process's own, 0 in a * sandbox), and `unknownMs` what an unknown modification time reads as. * `path` names the inode when the row names none of its own. Mirrors * Python's `posix_stat`. */ export function posixStat(row, path, prefix, fallback = {}) { const mtime = row.mtimeMs ?? fallback.unknownMs ?? 0; return { mode: row.mode, ino: ident(row.name ?? path), dev: ident(prefix), nlink: row.isDir ? 2 : 1, uid: row.uid ?? fallback.uid ?? 0, gid: row.gid ?? fallback.gid ?? 0, rdev: row.rdev ?? 0, size: row.size, atimeMs: row.atimeMs ?? mtime, mtimeMs: mtime, ctimeMs: mtime, blksize: BLKSIZE, blocks: Math.ceil(row.size / BLOCK_UNIT), }; } //# sourceMappingURL=stat.js.map