@assistant-ui/react
Version:
Typescript/React library for AI Chat
1 lines • 1.62 kB
Source Map (JSON)
{"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":[]}