@struktoai/mirage-core
Version:
A Unified Virtual Filesystem For AI Agents
42 lines • 1.98 kB
JavaScript
// ========= 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. =========
/** A write policy a mount or snapshot cannot take, refused at load. Mirrors Python's `WritePolicyError`. */
export class WritePolicyError extends Error {
constructor(message) {
super(message);
this.name = 'WritePolicyError';
}
}
/**
* A mount would place one VFS object, or a disk on a folder another disk mount
* has, at a second prefix. Mirrors Python's `SharedStorageError`.
*/
export class SharedStorageError extends Error {
constructor(prefix, existing, location) {
super(location === null
? `mount ${prefix}: this VFS is already mounted at ${existing}; mount a separate VFS instead`
: `mount ${prefix}: ${location} is already mounted at ${existing}`);
this.name = 'SharedStorageError';
}
}
/** A pathless write could reach more than one writable mount. */
export class MountCommandAmbiguous extends Error {
constructor(cmdName, prefixes) {
const mounts = prefixes.map((prefix) => ` ${prefix.replace(/\/$/, '') || '/'}`).join('\n');
super(`${cmdName}: ambiguous, registered on ${String(prefixes.length)} writable mounts:\n${mounts}\n` +
'cd into the target mount to disambiguate.');
this.name = 'MountCommandAmbiguous';
}
}
//# sourceMappingURL=errors.js.map