"use strict"; const path = require("node:path"); const fs = require("node:fs"); let monolithicSdk = null; let jitiLoader = null; function emptyPluginConfigSchema() { function error(message) { return { success: false, error: { issues: [{ path: [], message }] } }; } return { safeParse(value) { if (value === undefined) { return { success: true, data: undefined }; } if (!value || typeof value !== "object" || Array.isArray(value)) { return error("expected config object"); } if (Object.keys(value).length > 0) { return error("config must be empty"); } return { success: true, data: value }; }, jsonSchema: { type: "object", additionalProperties: false, properties: {}, }, }; } function resolveCommandAuthorizedFromAuthorizers(params) { const { useAccessGroups, authorizers } = params; const mode = params.modeWhenAccessGroupsOff ?? "allow"; if (!useAccessGroups) { if (mode === "allow") { return true; } if (mode === "deny") { return false; } const anyConfigured = authorizers.some((entry) => entry.configured); if (!anyConfigured) { return true; } return authorizers.some((entry) => entry.configured && entry.allowed); } return authorizers.some((entry) => entry.configured && entry.allowed); } function resolveControlCommandGate(params) { const commandAuthorized = resolveCommandAuthorizedFromAuthorizers({ useAccessGroups: params.useAccessGroups, authorizers: params.authorizers, modeWhenAccessGroupsOff: params.modeWhenAccessGroupsOff, }); const shouldBlock = params.allowTextCommands && params.hasControlCommand && !commandAuthorized; return { commandAuthorized, shouldBlock }; } function getJiti() { if (jitiLoader) { return jitiLoader; } const { createJiti } = require("jiti"); jitiLoader = createJiti(__filename, { interopDefault: true, extensions: [".ts", ".tsx", ".mts", ".cts", ".mtsx", ".ctsx", ".js", ".mjs", ".cjs", ".json"], }); return jitiLoader; } function loadMonolithicSdk() { if (monolithicSdk) { return monolithicSdk; } const jiti = getJiti(); const distCandidate = path.resolve(__dirname, "..", "..", "dist", "plugin-sdk", "index.js"); if (fs.existsSync(distCandidate)) { try { monolithicSdk = jiti(distCandidate); return monolithicSdk; } catch { // Fall through to source alias if dist is unavailable or stale. } } monolithicSdk = jiti(path.join(__dirname, "index.ts")); return monolithicSdk; } function tryLoadMonolithicSdk() { try { return loadMonolithicSdk(); } catch { return null; } } const fastExports = { emptyPluginConfigSchema, resolveControlCommandGate, }; const monolithic = tryLoadMonolithicSdk(); const rootExports = monolithic && typeof monolithic === "object" ? { ...monolithic, ...fastExports, } : { ...fastExports }; Object.defineProperty(rootExports, "__esModule", { configurable: true, enumerable: false, writable: false, value: true, }); Object.defineProperty(rootExports, "default", { configurable: true, enumerable: false, writable: false, value: rootExports, }); module.exports = rootExports;