* Registers per-provider BearerTokenProvider callbacks for BYOK providers * configured with managed-identity / on-demand bearer-token auth. * * The runtime never receives the callback itself; the SDK strips it from the * provider config and instead sends `hasBearerTokenPr
(providers?: Map<string, BearerTokenProvider>)
| 861 | * @internal This method is called internally when creating/resuming a session. |
| 862 | */ |
| 863 | registerBearerTokenProviders(providers?: Map<string, BearerTokenProvider>): void { |
| 864 | this.bearerTokenProviders.clear(); |
| 865 | if (!providers || providers.size === 0) { |
| 866 | delete this.clientSessionApis.providerToken; |
| 867 | return; |
| 868 | } |
| 869 | for (const [name, callback] of providers) { |
| 870 | this.bearerTokenProviders.set(name, callback); |
| 871 | } |
| 872 | |
| 873 | const self = this; |
| 874 | this.clientSessionApis.providerToken = { |
| 875 | async getToken(params) { |
| 876 | const callback = self.bearerTokenProviders.get(params.providerName); |
| 877 | if (!callback) { |
| 878 | throw new Error( |
| 879 | `No bearer-token provider registered for provider "${params.providerName}"` |
| 880 | ); |
| 881 | } |
| 882 | const token = await callback({ |
| 883 | providerName: params.providerName, |
| 884 | sessionId: params.sessionId, |
| 885 | }); |
| 886 | return { token }; |
| 887 | }, |
| 888 | }; |
| 889 | } |
| 890 | |
| 891 | /** |
| 892 | * Registers command handlers for this session. |
no test coverage detected