UNPKG

pi-lens

Version:

Real-time code feedback for pi — LSP, linters, formatters, type-checking, structural analysis & booboo

60 lines (57 loc) • 1.67 kB
import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url); import { recordDegradation } from "./chunk-N3YQJI6O.js"; import { logExtension } from "./chunk-O6TQT6RI.js"; // dist/clients/project-trust.js var trustState = "unknown"; var installRefusalWarnings = /* @__PURE__ */ new Set(); var INSTALL_REFUSAL_WARNING_CAP = 200; var trustGeneration = 0; function getProjectTrustGeneration() { return trustGeneration; } function getProjectTrustState() { return trustState; } function isToolInstallAllowedByTrust() { return trustState !== "untrusted"; } function assertInstallAllowed(context) { if (isToolInstallAllowedByTrust()) return true; recordDegradation({ kind: "trust-refusal", subject: context, reason: projectTrustDenialReason() ?? "project trust denied" }); if (!installRefusalWarnings.has(context)) { if (installRefusalWarnings.size >= INSTALL_REFUSAL_WARNING_CAP) { installRefusalWarnings.clear(); } installRefusalWarnings.add(context); logExtension({ subsystem: "project-trust", level: "warn", message: `install/materialization blocked: ${context}`, metadata: { context, trustState } }); } return false; } function isLspSpawnAllowedByTrust() { return trustState !== "untrusted"; } function projectTrustDenialReason() { return trustState === "untrusted" ? "project is not trusted (host isProjectTrusted() === false)" : void 0; } export { getProjectTrustGeneration, getProjectTrustState, isToolInstallAllowedByTrust, assertInstallAllowed, isLspSpawnAllowedByTrust, projectTrustDenialReason };