import { resolveInjection } from "../core/prompt-injector.js"; const _G = globalThis as Record; const DEDUP_KEY = "_prismFacetBPBDedup"; export function registerBeforePromptBuild(api: { on(hook: string, handler: (...args: any[]) => any): void; logger: { info(msg: string): void; warn(msg: string): void }; }): void { if (!(_G[DEDUP_KEY] instanceof WeakSet)) _G[DEDUP_KEY] = new WeakSet(); const dedup = _G[DEDUP_KEY] as WeakSet; api.on("before_prompt_build", async (event: unknown, ctx: { agentId?: string }) => { if (dedup.has(event as object)) return; dedup.add(event as object); const agentId = ctx.agentId || ""; if (!agentId) return; const result = await resolveInjection({ agentId }, api.logger); if (result.appendSystemContext) { return { appendSystemContext: result.appendSystemContext }; } }); }