import fs from "node:fs"; import path from "node:path"; import { fileURLToPath } from "node:url"; export function resolveBundledPluginsDir(): string | undefined { const override = process.env.CLAWDBOT_BUNDLED_PLUGINS_DIR?.trim(); if (override) return override; // bun --compile: ship a sibling `extensions/` next to the executable. try { const execDir = path.dirname(process.execPath); const sibling = path.join(execDir, "extensions"); if (fs.existsSync(sibling)) return sibling; } catch { // ignore } // npm/dev: walk up from this module to find `extensions/` at the package root. try { let cursor = path.dirname(fileURLToPath(import.meta.url)); for (let i = 0; i < 6; i += 1) { const candidate = path.join(cursor, "extensions"); if (fs.existsSync(candidate)) return candidate; const parent = path.dirname(cursor); if (parent === cursor) break; cursor = parent; } } catch { // ignore } return undefined; }