UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

42 lines (41 loc) 2.03 kB
import { p as normalizeTrimmedStringList } from "../../string-normalization-DsCfAx8q.js"; import { t as createSubsystemLogger } from "../../subsystem-Dy2tqXOS.js"; import { v as loadExtraBootstrapFilesWithDiagnostics } from "../../workspace-ConDEamr.js"; import { a as isAgentBootstrapEvent } from "../../internal-hooks-Dgwjgwuj.js"; import { i as resolveHookConfig } from "../../config-DWWH6LIu.js"; //#region src/hooks/bundled/bootstrap-extra-files/handler.ts const HOOK_KEY = "bootstrap-extra-files"; const log = createSubsystemLogger("bootstrap-extra-files"); /** Resolve legacy and current config keys for extra bootstrap file patterns. */ function resolveExtraBootstrapPatterns(hookConfig) { const fromPaths = normalizeTrimmedStringList(hookConfig.paths); if (fromPaths.length > 0) return fromPaths; const fromPatterns = normalizeTrimmedStringList(hookConfig.patterns); if (fromPatterns.length > 0) return fromPatterns; return normalizeTrimmedStringList(hookConfig.files); } /** Agent-bootstrap hook that appends configured extra files to the session bootstrap set. */ const bootstrapExtraFilesHook = async (event) => { if (!isAgentBootstrapEvent(event)) return; const context = event.context; const hookConfig = resolveHookConfig(context.cfg, HOOK_KEY); if (!hookConfig || hookConfig.enabled === false) return; const patterns = resolveExtraBootstrapPatterns(hookConfig); if (patterns.length === 0) return; try { const { files: extras, diagnostics } = await loadExtraBootstrapFilesWithDiagnostics(context.workspaceDir, patterns); if (diagnostics.length > 0) log.debug("skipped extra bootstrap candidates", { skipped: diagnostics.length, reasons: diagnostics.reduce((counts, item) => { counts[item.reason] = (counts[item.reason] ?? 0) + 1; return counts; }, {}) }); if (extras.length === 0) return; context.bootstrapFiles = [...context.bootstrapFiles, ...extras]; } catch (err) { log.warn(`failed: ${String(err)}`); } }; //#endregion export { bootstrapExtraFilesHook as default };