Spaces:
Running
Running
Download src/errors.js from naklitechie/diskformer-chat: direct link, hf CLI and curl.
- Browser
- Download file 2.29 kB
-
https://huggingface.co/spaces/naklitechie/diskformer-chat/resolve/main/src/errors.js
- Command line
-
hf download hf://spaces/naklitechie/diskformer-chat/src/errors.js
-
curl -L -o errors.js https://huggingface.co/spaces/naklitechie/diskformer-chat/resolve/main/src/errors.js
2.29 kB
| /* errors.js — coded errors for the store, ingest and the engines. A host branches on `code`, never on the | |
| * message text and never on `instanceof` (two copies of this module, e.g. a CDN copy and a vendored one, make | |
| * instanceof false for the same error). Check with isDiskformerError(e, code). | |
| * | |
| * try { await Engine.load(…) } catch (e) { if (isDiskformerError(e, 'LOAD_ABORTED')) … } | |
| * | |
| * Codes: | |
| * LOAD_FAILED ingest or load failed (HTTP, quota, a GGUF the engine cannot run); `cause` holds the original | |
| * LOAD_ABORTED the caller's signal aborted a load or ingest; decided from `signal.aborted`, not the error name | |
| * UNSUPPORTED_DEVICE no WebGPU, no adapter, or a missing required feature (shader-f16) | |
| * BUDGET_TOO_SMALL gpuBudgetBytes cannot hold the fixed GPU part plus the smallest expert cache; `detail` has the bytes | |
| * CONTEXT_FULL the conversation outgrew the engine's context | |
| * EXECUTION_FAILED a prefill or decode step failed; `cause` holds the original | |
| * RESOURCE_DISPOSED the engine was disposed: no further generate() | |
| */ | |
| export const ERROR_CODES = Object.freeze(['LOAD_FAILED', 'LOAD_ABORTED', 'UNSUPPORTED_DEVICE', 'BUDGET_TOO_SMALL', 'CONTEXT_FULL', 'EXECUTION_FAILED', 'RESOURCE_DISPOSED']); | |
| export class DiskformerError extends Error { | |
| constructor(code, message, { cause, detail } = {}) { | |
| super(message, cause === undefined ? undefined : { cause }); | |
| this.name = 'DiskformerError'; | |
| this.code = code; | |
| if (detail !== undefined) this.detail = detail; | |
| } | |
| } | |
| export const isDiskformerError = (e, code) => !!e && e.name === 'DiskformerError' && typeof e.code === 'string' && (code === undefined || e.code === code); | |
| // Re-code an error from a load or ingest: an aborted signal wins over whatever the abort threw; a coded error | |
| // passes through; anything else becomes `fallback` with the original as `cause`. | |
| export function codedError(e, { signal, fallback = 'LOAD_FAILED', what = 'load' } = {}) { | |
| if (signal && signal.aborted) return isDiskformerError(e, 'LOAD_ABORTED') ? e : new DiskformerError('LOAD_ABORTED', `${what} aborted`, { cause: e }); | |
| if (isDiskformerError(e)) return e; | |
| return new DiskformerError(fallback, `${what} failed: ${(e && e.message) || e}`, { cause: e }); | |
| } | |