Download src/context-engine/context-engine-abort.ts from SaylorTwift/openclaw: direct link, hf CLI and curl.
- Browser
- Download file 1.33 kB
-
https://huggingface.co/SaylorTwift/openclaw/resolve/main/src/context-engine/context-engine-abort.ts
- Command line
-
hf download hf://SaylorTwift/openclaw/src/context-engine/context-engine-abort.ts
-
curl -L -o context-engine-abort.ts https://huggingface.co/SaylorTwift/openclaw/resolve/main/src/context-engine/context-engine-abort.ts
1.33 kB
| import { createAbortError, isAbortError } from "../infra/abort-signal.js"; | |
| export function contextEngineAbortSignal(methodParams: unknown): AbortSignal | undefined { | |
| // SAFETY: host method parameters are read structurally only for the optional abortSignal field. | |
| const signal = (methodParams as { abortSignal?: unknown } | null | undefined)?.abortSignal; | |
| if (!signal || typeof signal !== "object" || !("aborted" in signal)) { | |
| return undefined; | |
| } | |
| // SAFETY: the host supplies AbortSignal here; the structural guard above rejects non-signal data. | |
| const abortSignal = signal as AbortSignal; | |
| if (!abortSignal.aborted) { | |
| return abortSignal; | |
| } | |
| const reason = abortSignal.reason; | |
| throw reason instanceof Error | |
| ? reason | |
| : createAbortError(String(reason || "Context engine operation aborted.")); | |
| } | |
| export function isContextEngineAbortRejection( | |
| error: unknown, | |
| signal: AbortSignal | undefined, | |
| ): boolean { | |
| if (!signal?.aborted) { | |
| return false; | |
| } | |
| if (error === signal.reason || isAbortError(error)) { | |
| return true; | |
| } | |
| const seen = new Set<Error>(); | |
| for ( | |
| let current = error; | |
| current instanceof Error && !seen.has(current); | |
| current = current.cause | |
| ) { | |
| seen.add(current); | |
| if (current.cause === signal.reason) { | |
| return true; | |
| } | |
| } | |
| return false; | |
| } | |