@workglow/util 0.0.109 → 0.0.111

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/node.js CHANGED
@@ -372,7 +372,7 @@ function getEnv(name) {
372
372
  if (typeof process !== "undefined" && process.env) {
373
373
  return process.env[name];
374
374
  }
375
- return;
375
+ return import.meta.env[name];
376
376
  }
377
377
  function isTruthy(value) {
378
378
  return value !== undefined && value !== "" && value !== "0" && value !== "false";
@@ -385,6 +385,12 @@ function createDefaultLogger() {
385
385
  timings: isTruthy(getEnv("LOGGER_TIMINGS"))
386
386
  });
387
387
  }
388
+ if (getEnv("DEV")) {
389
+ return new ConsoleLogger({
390
+ level: "debug",
391
+ timings: true
392
+ });
393
+ }
388
394
  return new NullLogger;
389
395
  }
390
396
  if (!globalServiceRegistry.has(LOGGER)) {
@@ -1984,16 +1990,20 @@ class WorkerManager {
1984
1990
  return;
1985
1991
  if (type === "progress" && options?.onProgress) {
1986
1992
  options.onProgress(data.progress, data.message, data.details);
1993
+ getLogger().debug(`Worker ${workerName} function ${functionName} progress: ${data.progress}, `, { data });
1987
1994
  } else if (type === "complete") {
1988
1995
  cleanup();
1996
+ getLogger().debug(`Worker ${workerName} function ${functionName} complete.`, { data });
1989
1997
  resolve(data);
1990
1998
  } else if (type === "error") {
1991
1999
  cleanup();
2000
+ getLogger().debug(`Worker ${workerName} function ${functionName} error.`, { data });
1992
2001
  reject(new Error(data));
1993
2002
  }
1994
2003
  };
1995
2004
  const handleAbort = () => {
1996
2005
  worker.postMessage({ id: requestId, type: "abort" });
2006
+ getLogger().info(`Worker ${workerName} function ${functionName} aborted.`);
1997
2007
  };
1998
2008
  const cleanup = () => {
1999
2009
  worker.removeEventListener("message", handleMessage);
@@ -2005,6 +2015,7 @@ class WorkerManager {
2005
2015
  }
2006
2016
  const message = { id: requestId, type: "call", functionName, args };
2007
2017
  worker.postMessage(message);
2018
+ getLogger().info(`Worker ${workerName} function ${functionName} called.`);
2008
2019
  });
2009
2020
  }
2010
2021
  async callWorkerReactiveFunction(workerName, functionName, args) {
@@ -2035,6 +2046,7 @@ class WorkerManager {
2035
2046
  worker.addEventListener("message", handleMessage);
2036
2047
  const message = { id: requestId, type: "call", functionName, args, reactive: true };
2037
2048
  worker.postMessage(message);
2049
+ getLogger().info(`Worker ${workerName} reactive function ${functionName} called.`);
2038
2050
  });
2039
2051
  }
2040
2052
  async* callWorkerStreamFunction(workerName, functionName, args, options) {
@@ -2074,6 +2086,7 @@ class WorkerManager {
2074
2086
  };
2075
2087
  const handleAbort = () => {
2076
2088
  worker.postMessage({ id: requestId, type: "abort" });
2089
+ getLogger().info(`Worker ${workerName} stream function ${functionName} aborted.`);
2077
2090
  };
2078
2091
  const cleanup = () => {
2079
2092
  worker.removeEventListener("message", handleMessage);
@@ -2089,6 +2102,7 @@ class WorkerManager {
2089
2102
  }
2090
2103
  const message = { id: requestId, type: "call", functionName, args, stream: true };
2091
2104
  worker.postMessage(message);
2105
+ getLogger().info(`Worker ${workerName} stream function ${functionName} called.`);
2092
2106
  let completedNormally = false;
2093
2107
  try {
2094
2108
  while (true) {
@@ -2111,6 +2125,7 @@ class WorkerManager {
2111
2125
  } finally {
2112
2126
  if (!completedNormally) {
2113
2127
  worker.postMessage({ id: requestId, type: "abort" });
2128
+ getLogger().info(`Worker ${workerName} stream function ${functionName} aborted.`);
2114
2129
  }
2115
2130
  cleanup();
2116
2131
  }
@@ -2554,6 +2569,450 @@ function base64ToBuf(b64) {
2554
2569
  }
2555
2570
  return buf;
2556
2571
  }
2572
+ // src/mcp/McpAuthTypes.ts
2573
+ var mcpAuthTypes = [
2574
+ "none",
2575
+ "bearer",
2576
+ "client_credentials",
2577
+ "private_key_jwt",
2578
+ "static_private_key_jwt",
2579
+ "authorization_code"
2580
+ ];
2581
+ var mcpAuthConfigSchema = {
2582
+ auth_type: {
2583
+ type: "string",
2584
+ enum: mcpAuthTypes,
2585
+ title: "Auth Type",
2586
+ description: "Authentication method for connecting to the MCP server",
2587
+ default: "none"
2588
+ },
2589
+ auth_token: {
2590
+ type: "string",
2591
+ format: "credential",
2592
+ title: "Bearer Token",
2593
+ description: "Static bearer token or API key (for bearer auth)"
2594
+ },
2595
+ auth_client_id: {
2596
+ type: "string",
2597
+ title: "Client ID",
2598
+ description: "OAuth client ID (for OAuth auth types)"
2599
+ },
2600
+ auth_client_secret: {
2601
+ type: "string",
2602
+ format: "credential",
2603
+ title: "Client Secret",
2604
+ description: "OAuth client secret (for client_credentials auth)"
2605
+ },
2606
+ auth_private_key: {
2607
+ type: "string",
2608
+ format: "credential",
2609
+ title: "Private Key",
2610
+ description: "PEM or JWK private key (for private_key_jwt auth)"
2611
+ },
2612
+ auth_algorithm: {
2613
+ type: "string",
2614
+ title: "Algorithm",
2615
+ description: "JWT signing algorithm, e.g. RS256, ES256 (for private_key_jwt auth)"
2616
+ },
2617
+ auth_jwt_bearer_assertion: {
2618
+ type: "string",
2619
+ format: "credential",
2620
+ title: "JWT Assertion",
2621
+ description: "Pre-built JWT assertion (for static_private_key_jwt auth)"
2622
+ },
2623
+ auth_redirect_url: {
2624
+ type: "string",
2625
+ format: "uri",
2626
+ title: "Redirect URL",
2627
+ description: "OAuth redirect URL (for authorization_code auth)"
2628
+ },
2629
+ auth_scope: {
2630
+ type: "string",
2631
+ title: "Scope",
2632
+ description: "OAuth scope (space-separated)"
2633
+ },
2634
+ auth_client_name: {
2635
+ type: "string",
2636
+ title: "Client Name",
2637
+ description: "Optional OAuth client display name"
2638
+ },
2639
+ auth_jwt_lifetime_seconds: {
2640
+ type: "number",
2641
+ title: "JWT Lifetime",
2642
+ description: "JWT lifetime in seconds (default: 300)",
2643
+ minimum: 1
2644
+ }
2645
+ };
2646
+ function isMcpAuthType(value) {
2647
+ return typeof value === "string" && mcpAuthTypes.includes(value);
2648
+ }
2649
+ function asNonEmptyString(value) {
2650
+ if (typeof value !== "string")
2651
+ return;
2652
+ const trimmed = value.trim();
2653
+ return trimmed === "" ? undefined : trimmed;
2654
+ }
2655
+ function asNumber(value) {
2656
+ return typeof value === "number" ? value : undefined;
2657
+ }
2658
+ function buildAuthConfig(flat) {
2659
+ const rawAuthType = flat.auth_type;
2660
+ if (!isMcpAuthType(rawAuthType) || rawAuthType === "none") {
2661
+ return;
2662
+ }
2663
+ const authType = rawAuthType;
2664
+ switch (authType) {
2665
+ case "bearer": {
2666
+ const token = asNonEmptyString(flat.auth_token);
2667
+ if (!token)
2668
+ return;
2669
+ return { type: "bearer", token };
2670
+ }
2671
+ case "client_credentials": {
2672
+ const client_id = asNonEmptyString(flat.auth_client_id);
2673
+ const client_secret = asNonEmptyString(flat.auth_client_secret);
2674
+ if (!client_id || !client_secret)
2675
+ return;
2676
+ return {
2677
+ type: "client_credentials",
2678
+ client_id,
2679
+ client_secret,
2680
+ client_name: asNonEmptyString(flat.auth_client_name),
2681
+ scope: asNonEmptyString(flat.auth_scope)
2682
+ };
2683
+ }
2684
+ case "private_key_jwt": {
2685
+ const client_id = asNonEmptyString(flat.auth_client_id);
2686
+ const private_key = asNonEmptyString(flat.auth_private_key);
2687
+ const algorithm = asNonEmptyString(flat.auth_algorithm);
2688
+ if (!client_id || !private_key || !algorithm)
2689
+ return;
2690
+ return {
2691
+ type: "private_key_jwt",
2692
+ client_id,
2693
+ private_key,
2694
+ algorithm,
2695
+ client_name: asNonEmptyString(flat.auth_client_name),
2696
+ jwt_lifetime_seconds: asNumber(flat.auth_jwt_lifetime_seconds),
2697
+ scope: asNonEmptyString(flat.auth_scope)
2698
+ };
2699
+ }
2700
+ case "static_private_key_jwt": {
2701
+ const client_id = asNonEmptyString(flat.auth_client_id);
2702
+ const jwt_bearer_assertion = asNonEmptyString(flat.auth_jwt_bearer_assertion);
2703
+ if (!client_id || !jwt_bearer_assertion)
2704
+ return;
2705
+ return {
2706
+ type: "static_private_key_jwt",
2707
+ client_id,
2708
+ jwt_bearer_assertion,
2709
+ client_name: asNonEmptyString(flat.auth_client_name),
2710
+ scope: asNonEmptyString(flat.auth_scope)
2711
+ };
2712
+ }
2713
+ case "authorization_code": {
2714
+ const client_id = asNonEmptyString(flat.auth_client_id);
2715
+ const redirect_url = asNonEmptyString(flat.auth_redirect_url);
2716
+ if (!client_id || !redirect_url)
2717
+ return;
2718
+ return {
2719
+ type: "authorization_code",
2720
+ client_id,
2721
+ client_secret: asNonEmptyString(flat.auth_client_secret),
2722
+ redirect_url,
2723
+ scope: asNonEmptyString(flat.auth_scope)
2724
+ };
2725
+ }
2726
+ default:
2727
+ return;
2728
+ }
2729
+ }
2730
+ // src/mcp/McpAuthProvider.ts
2731
+ import {
2732
+ ClientCredentialsProvider,
2733
+ PrivateKeyJwtProvider,
2734
+ StaticPrivateKeyJwtProvider,
2735
+ createPrivateKeyJwtAuth
2736
+ } from "@modelcontextprotocol/sdk/client/auth-extensions.js";
2737
+ function normalizeServerUrl(serverUrl) {
2738
+ try {
2739
+ const u = new URL(serverUrl);
2740
+ return u.origin + u.pathname.replace(/\/+$/, "");
2741
+ } catch {
2742
+ return serverUrl;
2743
+ }
2744
+ }
2745
+ function storeKey(serverUrl, suffix) {
2746
+ return `mcp:oauth:${normalizeServerUrl(serverUrl)}:${suffix}`;
2747
+ }
2748
+
2749
+ class CredentialStoreOAuthProvider {
2750
+ store;
2751
+ serverUrl;
2752
+ _clientMetadata;
2753
+ _redirectUrl;
2754
+ _initialClientInfo;
2755
+ prepareTokenRequest;
2756
+ addClientAuthentication;
2757
+ constructor(options) {
2758
+ this.store = options.store;
2759
+ this.serverUrl = options.serverUrl;
2760
+ this._clientMetadata = options.clientMetadata;
2761
+ this._redirectUrl = options.redirectUrl;
2762
+ this._initialClientInfo = options.initialClientInfo;
2763
+ if (options.prepareTokenRequest) {
2764
+ this.prepareTokenRequest = options.prepareTokenRequest;
2765
+ }
2766
+ if (options.addClientAuthentication) {
2767
+ this.addClientAuthentication = options.addClientAuthentication;
2768
+ }
2769
+ }
2770
+ get redirectUrl() {
2771
+ return this._redirectUrl;
2772
+ }
2773
+ get clientMetadata() {
2774
+ return this._clientMetadata;
2775
+ }
2776
+ async clientInformation() {
2777
+ const raw = await this.store.get(storeKey(this.serverUrl, "client_info"));
2778
+ if (!raw)
2779
+ return this._initialClientInfo;
2780
+ return JSON.parse(raw);
2781
+ }
2782
+ async saveClientInformation(info) {
2783
+ await this.store.put(storeKey(this.serverUrl, "client_info"), JSON.stringify(info));
2784
+ }
2785
+ async tokens() {
2786
+ const raw = await this.store.get(storeKey(this.serverUrl, "tokens"));
2787
+ if (!raw)
2788
+ return;
2789
+ return JSON.parse(raw);
2790
+ }
2791
+ async saveTokens(tokens) {
2792
+ const expiresAt = tokens.expires_in != null ? new Date(Date.now() + tokens.expires_in * 1000) : undefined;
2793
+ await this.store.put(storeKey(this.serverUrl, "tokens"), JSON.stringify(tokens), {
2794
+ expiresAt
2795
+ });
2796
+ }
2797
+ async redirectToAuthorization(authorizationUrl) {
2798
+ throw new Error(`MCP OAuth authorization required. ` + `Open this URL to authorize: ${authorizationUrl.toString()}`);
2799
+ }
2800
+ async saveCodeVerifier(codeVerifier) {
2801
+ await this.store.put(storeKey(this.serverUrl, "code_verifier"), codeVerifier);
2802
+ }
2803
+ async codeVerifier() {
2804
+ const v = await this.store.get(storeKey(this.serverUrl, "code_verifier"));
2805
+ if (!v)
2806
+ throw new Error("No code verifier saved for this session");
2807
+ return v;
2808
+ }
2809
+ async saveDiscoveryState(state) {
2810
+ await this.store.put(storeKey(this.serverUrl, "discovery"), JSON.stringify(state));
2811
+ }
2812
+ async discoveryState() {
2813
+ const raw = await this.store.get(storeKey(this.serverUrl, "discovery"));
2814
+ if (!raw)
2815
+ return;
2816
+ return JSON.parse(raw);
2817
+ }
2818
+ async invalidateCredentials(scope) {
2819
+ const deleteKey = async (suffix) => {
2820
+ await this.store.delete(storeKey(this.serverUrl, suffix));
2821
+ };
2822
+ switch (scope) {
2823
+ case "all":
2824
+ await deleteKey("tokens");
2825
+ await deleteKey("client_info");
2826
+ await deleteKey("code_verifier");
2827
+ await deleteKey("discovery");
2828
+ break;
2829
+ case "client":
2830
+ await deleteKey("client_info");
2831
+ break;
2832
+ case "tokens":
2833
+ await deleteKey("tokens");
2834
+ break;
2835
+ case "verifier":
2836
+ await deleteKey("code_verifier");
2837
+ break;
2838
+ case "discovery":
2839
+ await deleteKey("discovery");
2840
+ break;
2841
+ }
2842
+ }
2843
+ }
2844
+ function createAuthProvider(auth, serverUrl, credentialStore) {
2845
+ switch (auth.type) {
2846
+ case "none":
2847
+ case "bearer":
2848
+ return;
2849
+ case "client_credentials": {
2850
+ if (!credentialStore) {
2851
+ return new ClientCredentialsProvider({
2852
+ clientId: auth.client_id,
2853
+ clientSecret: auth.client_secret,
2854
+ clientName: auth.client_name,
2855
+ scope: auth.scope
2856
+ });
2857
+ }
2858
+ const prepareTokenRequest = (scope) => {
2859
+ const params = new URLSearchParams({ grant_type: "client_credentials" });
2860
+ const effectiveScope = scope ?? auth.scope;
2861
+ if (effectiveScope)
2862
+ params.set("scope", effectiveScope);
2863
+ return params;
2864
+ };
2865
+ return new CredentialStoreOAuthProvider({
2866
+ store: credentialStore,
2867
+ serverUrl,
2868
+ clientMetadata: {
2869
+ redirect_uris: [],
2870
+ grant_types: ["client_credentials"],
2871
+ token_endpoint_auth_method: "client_secret_basic",
2872
+ client_name: auth.client_name
2873
+ },
2874
+ initialClientInfo: {
2875
+ client_id: auth.client_id,
2876
+ client_secret: auth.client_secret
2877
+ },
2878
+ prepareTokenRequest
2879
+ });
2880
+ }
2881
+ case "private_key_jwt": {
2882
+ if (!credentialStore) {
2883
+ return new PrivateKeyJwtProvider({
2884
+ clientId: auth.client_id,
2885
+ privateKey: auth.private_key,
2886
+ algorithm: auth.algorithm,
2887
+ clientName: auth.client_name,
2888
+ jwtLifetimeSeconds: auth.jwt_lifetime_seconds,
2889
+ scope: auth.scope
2890
+ });
2891
+ }
2892
+ const addClientAuth = createPrivateKeyJwtAuth({
2893
+ issuer: auth.client_id,
2894
+ subject: auth.client_id,
2895
+ privateKey: auth.private_key,
2896
+ alg: auth.algorithm,
2897
+ lifetimeSeconds: auth.jwt_lifetime_seconds
2898
+ });
2899
+ const prepareTokenRequest = (scope) => {
2900
+ const params = new URLSearchParams({ grant_type: "client_credentials" });
2901
+ const effectiveScope = scope ?? auth.scope;
2902
+ if (effectiveScope)
2903
+ params.set("scope", effectiveScope);
2904
+ return params;
2905
+ };
2906
+ return new CredentialStoreOAuthProvider({
2907
+ store: credentialStore,
2908
+ serverUrl,
2909
+ clientMetadata: {
2910
+ redirect_uris: [],
2911
+ grant_types: ["client_credentials"],
2912
+ token_endpoint_auth_method: "private_key_jwt",
2913
+ client_name: auth.client_name
2914
+ },
2915
+ initialClientInfo: { client_id: auth.client_id },
2916
+ prepareTokenRequest,
2917
+ addClientAuthentication: addClientAuth
2918
+ });
2919
+ }
2920
+ case "static_private_key_jwt": {
2921
+ if (!credentialStore) {
2922
+ return new StaticPrivateKeyJwtProvider({
2923
+ clientId: auth.client_id,
2924
+ jwtBearerAssertion: auth.jwt_bearer_assertion,
2925
+ clientName: auth.client_name,
2926
+ scope: auth.scope
2927
+ });
2928
+ }
2929
+ const assertion = auth.jwt_bearer_assertion;
2930
+ const addClientAuth = (_headers, params) => {
2931
+ params.set("client_assertion_type", "urn:ietf:params:oauth:client-assertion-type:jwt-bearer");
2932
+ params.set("client_assertion", assertion);
2933
+ };
2934
+ const prepareTokenRequest = (scope) => {
2935
+ const params = new URLSearchParams({ grant_type: "client_credentials" });
2936
+ const effectiveScope = scope ?? auth.scope;
2937
+ if (effectiveScope)
2938
+ params.set("scope", effectiveScope);
2939
+ return params;
2940
+ };
2941
+ return new CredentialStoreOAuthProvider({
2942
+ store: credentialStore,
2943
+ serverUrl,
2944
+ clientMetadata: {
2945
+ redirect_uris: [],
2946
+ grant_types: ["client_credentials"],
2947
+ token_endpoint_auth_method: "private_key_jwt",
2948
+ client_name: auth.client_name
2949
+ },
2950
+ initialClientInfo: { client_id: auth.client_id },
2951
+ prepareTokenRequest,
2952
+ addClientAuthentication: addClientAuth
2953
+ });
2954
+ }
2955
+ case "authorization_code": {
2956
+ if (!credentialStore) {
2957
+ throw new Error("authorization_code auth requires a credential store for token persistence");
2958
+ }
2959
+ return new CredentialStoreOAuthProvider({
2960
+ store: credentialStore,
2961
+ serverUrl,
2962
+ clientMetadata: {
2963
+ redirect_uris: [auth.redirect_url],
2964
+ grant_types: ["authorization_code", "refresh_token"],
2965
+ token_endpoint_auth_method: auth.client_secret ? "client_secret_basic" : "none",
2966
+ scope: auth.scope
2967
+ },
2968
+ initialClientInfo: {
2969
+ client_id: auth.client_id,
2970
+ ...auth.client_secret ? { client_secret: auth.client_secret } : {}
2971
+ },
2972
+ redirectUrl: auth.redirect_url
2973
+ });
2974
+ }
2975
+ default:
2976
+ return;
2977
+ }
2978
+ }
2979
+ async function resolveAuthSecrets(auth, credentialStore) {
2980
+ if (auth.type === "none")
2981
+ return auth;
2982
+ const store = credentialStore ?? getGlobalCredentialStore();
2983
+ async function resolve(value) {
2984
+ if (!value)
2985
+ return value;
2986
+ const resolved = await store.get(value);
2987
+ return resolved ?? value;
2988
+ }
2989
+ switch (auth.type) {
2990
+ case "bearer":
2991
+ return { ...auth, token: await resolve(auth.token) ?? auth.token };
2992
+ case "client_credentials":
2993
+ return {
2994
+ ...auth,
2995
+ client_secret: await resolve(auth.client_secret) ?? auth.client_secret
2996
+ };
2997
+ case "private_key_jwt":
2998
+ return {
2999
+ ...auth,
3000
+ private_key: await resolve(auth.private_key) ?? auth.private_key
3001
+ };
3002
+ case "static_private_key_jwt":
3003
+ return {
3004
+ ...auth,
3005
+ jwt_bearer_assertion: await resolve(auth.jwt_bearer_assertion) ?? auth.jwt_bearer_assertion
3006
+ };
3007
+ case "authorization_code":
3008
+ return {
3009
+ ...auth,
3010
+ client_secret: await resolve(auth.client_secret)
3011
+ };
3012
+ default:
3013
+ return auth;
3014
+ }
3015
+ }
2557
3016
  // src/compress/compress.node.ts
2558
3017
  import { promisify } from "util";
2559
3018
  import zlib from "zlib";
@@ -2608,12 +3067,24 @@ var mcpServerConfigSchema = {
2608
3067
  additionalProperties: { type: "string" },
2609
3068
  title: "Environment",
2610
3069
  description: "Environment variables (for stdio transport)"
2611
- }
3070
+ },
3071
+ ...mcpAuthConfigSchema
2612
3072
  };
2613
3073
  async function createMcpClient(config, signal) {
2614
3074
  let transport;
3075
+ let auth = config.auth ?? buildAuthConfig({ ...config });
3076
+ if (auth && auth.type !== "none") {
3077
+ auth = await resolveAuthSecrets(auth, getGlobalCredentialStore());
3078
+ }
3079
+ const authProvider = auth && auth.type !== "none" && auth.type !== "bearer" ? createAuthProvider(auth, config.server_url ?? "", getGlobalCredentialStore()) : undefined;
3080
+ const headers = {
3081
+ ...auth?.type === "bearer" ? { Authorization: `Bearer ${auth.token}` } : {}
3082
+ };
2615
3083
  switch (config.transport) {
2616
3084
  case "stdio":
3085
+ if (auth && auth.type !== "none") {
3086
+ getLogger().warn("MCP auth is not supported for stdio transport; auth config ignored. " + "Use env vars to pass credentials to stdio servers.");
3087
+ }
2617
3088
  transport = new StdioClientTransport({
2618
3089
  command: config.command,
2619
3090
  args: config.args,
@@ -2621,11 +3092,17 @@ async function createMcpClient(config, signal) {
2621
3092
  });
2622
3093
  break;
2623
3094
  case "sse": {
2624
- transport = new SSEClientTransport(new URL(config.server_url));
3095
+ transport = new SSEClientTransport(new URL(config.server_url), {
3096
+ authProvider,
3097
+ requestInit: { headers }
3098
+ });
2625
3099
  break;
2626
3100
  }
2627
3101
  case "streamable-http": {
2628
- transport = new StreamableHTTPClientTransport(new URL(config.server_url));
3102
+ transport = new StreamableHTTPClientTransport(new URL(config.server_url), {
3103
+ authProvider,
3104
+ requestInit: { headers }
3105
+ });
2629
3106
  break;
2630
3107
  }
2631
3108
  default:
@@ -2722,6 +3199,7 @@ export {
2722
3199
  setGlobalCredentialStore,
2723
3200
  serialize,
2724
3201
  resolveCredential,
3202
+ resolveAuthSecrets,
2725
3203
  registerInputResolver,
2726
3204
  parsePartialJson,
2727
3205
  parseDataUri,
@@ -2732,6 +3210,8 @@ export {
2732
3210
  mcpTransportTypes,
2733
3211
  mcpServerConfigSchema,
2734
3212
  mcpClientFactory,
3213
+ mcpAuthTypes,
3214
+ mcpAuthConfigSchema,
2735
3215
  makeFingerprint,
2736
3216
  magnitude,
2737
3217
  jaccardSimilarity,
@@ -2753,11 +3233,13 @@ export {
2753
3233
  createTypedArrayFrom,
2754
3234
  createServiceToken,
2755
3235
  createMcpClient,
3236
+ createAuthProvider,
2756
3237
  cosineSimilarity,
2757
3238
  convertImageDataToUseableForm,
2758
3239
  compress,
2759
3240
  compileSchema,
2760
3241
  collectPropertyValues,
3242
+ buildAuthConfig,
2761
3243
  bufToBase64,
2762
3244
  base64ToBuf,
2763
3245
  areSemanticallyCompatible,
@@ -2784,6 +3266,7 @@ export {
2784
3266
  DirectedGraph,
2785
3267
  DirectedAcyclicGraph,
2786
3268
  CycleError,
3269
+ CredentialStoreOAuthProvider,
2787
3270
  Container,
2788
3271
  ConsoleLogger,
2789
3272
  ChainedCredentialStore,
@@ -2791,4 +3274,4 @@ export {
2791
3274
  BaseError
2792
3275
  };
2793
3276
 
2794
- //# debugId=5964D48D66476CC864756E2164756E21
3277
+ //# debugId=31EC196D59B2C57A64756E2164756E21