{"version":3,"sources":["../../src/utils/CompositeContextProvider.ts"],"sourcesContent":["import {\n  type ModelContextProvider,\n  mergeModelContexts,\n} from \"../model-context/ModelContextTypes\";\n\nexport class CompositeContextProvider implements ModelContextProvider {\n  private _providers = new Set<ModelContextProvider>();\n\n  getModelContext() {\n    return mergeModelContexts(this._providers);\n  }\n\n  registerModelContextProvider(provider: ModelContextProvider) {\n    this._providers.add(provider);\n    const unsubscribe = provider.subscribe?.(() => {\n      this.notifySubscribers();\n    });\n    this.notifySubscribers();\n    return () => {\n      this._providers.delete(provider);\n      unsubscribe?.();\n      this.notifySubscribers();\n    };\n  }\n\n  private _subscribers = new Set<() => void>();\n\n  notifySubscribers() {\n    for (const callback of this._subscribers) callback();\n  }\n\n  subscribe(callback: () => void) {\n    this._subscribers.add(callback);\n    return () => this._subscribers.delete(callback);\n  }\n}\n"],"mappings":";AAAA;AAAA,EAEE;AAAA,OACK;AAEA,IAAM,2BAAN,MAA+D;AAAA,EAC5D,aAAa,oBAAI,IAA0B;AAAA,EAEnD,kBAAkB;AAChB,WAAO,mBAAmB,KAAK,UAAU;AAAA,EAC3C;AAAA,EAEA,6BAA6B,UAAgC;AAC3D,SAAK,WAAW,IAAI,QAAQ;AAC5B,UAAM,cAAc,SAAS,YAAY,MAAM;AAC7C,WAAK,kBAAkB;AAAA,IACzB,CAAC;AACD,SAAK,kBAAkB;AACvB,WAAO,MAAM;AACX,WAAK,WAAW,OAAO,QAAQ;AAC/B,oBAAc;AACd,WAAK,kBAAkB;AAAA,IACzB;AAAA,EACF;AAAA,EAEQ,eAAe,oBAAI,IAAgB;AAAA,EAE3C,oBAAoB;AAClB,eAAW,YAAY,KAAK,aAAc,UAAS;AAAA,EACrD;AAAA,EAEA,UAAU,UAAsB;AAC9B,SAAK,aAAa,IAAI,QAAQ;AAC9B,WAAO,MAAM,KAAK,aAAa,OAAO,QAAQ;AAAA,EAChD;AACF;","names":[]}