export type PluginEntryConfig = { enabled?: boolean; hooks?: { /** Controls prompt mutation via before_prompt_build and prompt fields from legacy before_agent_start. */ allowPromptInjection?: boolean; }; subagent?: { /** Explicitly allow this plugin to request per-run provider/model overrides for subagent runs. */ allowModelOverride?: boolean; /** * Allowed override targets as canonical provider/model refs. * Use "*" to explicitly allow any model for this plugin. */ allowedModels?: string[]; }; config?: Record; }; export type PluginSlotsConfig = { /** Select which plugin owns the memory slot ("none" disables memory plugins). */ memory?: string; /** Select which plugin owns the context-engine slot. */ contextEngine?: string; }; export type PluginsLoadConfig = { /** Additional plugin/extension paths to load. */ paths?: string[]; }; export type PluginInstallRecord = Omit & { source: InstallRecordBase["source"] | "marketplace"; marketplaceName?: string; marketplaceSource?: string; marketplacePlugin?: string; }; export type PluginsConfig = { /** Enable or disable plugin loading. */ enabled?: boolean; /** Optional plugin allowlist (plugin ids). */ allow?: string[]; /** Optional plugin denylist (plugin ids). */ deny?: string[]; load?: PluginsLoadConfig; slots?: PluginSlotsConfig; entries?: Record; installs?: Record; }; import type { InstallRecordBase } from "./types.installs.js";