{"record":{"id":"7aa3dbc71d8a2ac6","repo":"diegosouzapw/OmniRoute","slug":"message-7aa3db","errorCode":null,"errorMessage":"${message}","messagePattern":"\\$\\{message\\}","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/lib/middleware/registry.ts","lineNumber":161,"sourceCode":"            new Error(`Hook \"${hookName}\" timed out after ${HOOK_EXECUTION_TIMEOUT_MS}ms`)\n          );\n        }, HOOK_EXECUTION_TIMEOUT_MS);\n      });\n\n      const result = await Promise.race([Promise.resolve(execution), timeoutGuard]);\n      return (result ?? {}) as HookResult;\n    } catch (err: unknown) {\n      // Errors thrown from inside the vm context use the context's own\n      // constructors, so they are not `instanceof` the host Error. Normalize\n      // to a host Error carrying a readable message so callers/observability\n      // classify it correctly.\n      const message =\n        err instanceof Error\n          ? err.message\n          : typeof err === \"object\" && err !== null && \"message\" in err\n            ? String((err as { message: unknown }).message)\n            : String(err);\n      throw new Error(message);\n    } finally {\n      if (timer) clearTimeout(timer);\n    }\n  };\n}\n\n// ── Default context factory ──────────────────────────────────────────────\n\nexport function createHookContext(params: {\n  body: Record<string, unknown>;\n  headers: Record<string, string | string[] | undefined>;\n  model: string;\n  combo?: string;\n  apiKeyInfo?: Record<string, unknown>;\n  log?: any;\n}): PreRequestHookContext {\n  const logger = params.log || console;\n  return {","sourceCodeStart":143,"sourceCodeEnd":179,"githubUrl":"https://github.com/diegosouzapw/OmniRoute/blob/a179ffed5bb2e0b883b9ae7214ce8717b2a94c4d/src/lib/middleware/registry.ts#L143-L179","documentation":"Error \"${message}\" thrown in diegosouzapw/OmniRoute.","triggerScenarios":"Thrown at src/lib/middleware/registry.ts:161 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"a179ffed5bb2e0b883b9ae7214ce8717b2a94c4d","analyzedAt":"2026-08-25T18:35:09.898Z","schemaVersion":2},"datasetVersion":"2026-08-25T21:54:21.419Z"}