UNPKG

@struktoai/mirage-core

Version:

A Unified Virtual Filesystem For AI Agents

50 lines • 2.12 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 { z } from 'zod'; import { ApiError } from "../api/errors.js"; export class DatabricksVolumeCredentialError extends Error { constructor(cause) { super('databricks_volume: credential provider failed', { cause }); this.name = 'DatabricksVolumeCredentialError'; } } export class DatabricksVolumeApiError extends ApiError { errorCode; constructor(message, status, errorCode = null) { super(message, status); this.name = 'DatabricksVolumeApiError'; this.errorCode = errorCode; } } export function isNotFound(exc) { return (exc instanceof DatabricksVolumeApiError && (exc.status === 404 || (exc.status === 400 && (exc.errorCode === 'RESOURCE_DOES_NOT_EXIST' || exc.errorCode === 'NOT_FOUND')))); } const ErrorBody = z.object({ error_code: z.string().nullish(), message: z.string().nullish() }); export function errorOf(response, text) { let payload = null; try { payload = JSON.parse(text); } catch { payload = null; } const parsed = ErrorBody.safeParse(payload); const code = parsed.success ? (parsed.data.error_code ?? null) : null; const message = parsed.success ? (parsed.data.message ?? text) : text; return new DatabricksVolumeApiError(`databricks_volume: HTTP ${String(response.status)} ${message}`, response.status, code); } //# sourceMappingURL=errors.js.map