@ethisyscore/plugin-ui 1.111.0 → 1.113.0

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.
@@ -40,7 +40,13 @@ interface DefinePlatformReactPluginPageOptions {
40
40
  styleId: string;
41
41
  /** The plugin's compiled CSS string (typically a `*.css?inline` import). */
42
42
  css: string;
43
- /** Override the per-page `QueryClient`. */
43
+ /**
44
+ * Override the `QueryClient` this page runs on.
45
+ *
46
+ * Left unset, the page runs on the host's client when the host realm provides
47
+ * one, and on a per-bundle client of its own when it does not — see
48
+ * {@link useSurfaceQueryClient}. Setting it opts out of both.
49
+ */
44
50
  queryClient?: QueryClient;
45
51
  /**
46
52
  * Optional wrapper applied around the page element, inside the style root. Use
@@ -96,12 +102,14 @@ interface PluginPageDefinerConfig {
96
102
  declare function createPluginPageDefiner(config: PluginPageDefinerConfig): (Page: ComponentType<PlatformReactPageProps>, views?: Record<string, ViewComponent>) => ComponentType<PlatformReactPageProps>;
97
103
 
98
104
  /**
99
- * The `QueryClient` every PlatformReact plugin surface runs on.
105
+ * The `QueryClient` a PlatformReact plugin surface falls back to when the host realm provides
106
+ * none — see {@link useSurfaceQueryClient} for when that is, and what it costs.
100
107
  *
101
108
  * # Why this file exists
102
109
  *
103
- * A plugin bundle cannot see the host's app-wide `QueryClientProvider` — react-query is
104
- * bundle-local, which is why each page and overlay creates its own client. The host's client
110
+ * It predates the react-query external. A plugin bundle could not see the host's app-wide
111
+ * `QueryClientProvider` — react-query was bundle-local, which is why each page and overlay
112
+ * created its own client. The host's client
105
113
  * carries cache-level `onError` handlers that turn a failed query or mutation into a toast, and
106
114
  * for a long time the plugin-side client carried none. The consequence was not a degraded
107
115
  * message: it was NO message. A command could be refused by the server, travel back through
@@ -139,6 +147,20 @@ interface PluginQueryMeta {
139
147
  */
140
148
  declare function createPluginQueryClient(config?: QueryClientConfig): QueryClient;
141
149
 
150
+ /**
151
+ * The client this surface should provide to its subtree.
152
+ *
153
+ * Precedence, and the order matters:
154
+ *
155
+ * 1. `override` — the definers' existing `queryClient` option. A plugin that asks
156
+ * for a specific client gets it, and is never second-guessed or warned about.
157
+ * 2. The host's client, read from the host realm's react-query context.
158
+ * 3. This bundle's own client — today's behaviour, unchanged.
159
+ *
160
+ * @param override The `queryClient` a definer's caller supplied, if any.
161
+ */
162
+ declare function useSurfaceQueryClient(override?: QueryClient): QueryClient;
163
+
142
164
  /**
143
165
  * Matches component types renderable via `useView`: plain function/class
144
166
  * components plus the object wrappers `React.lazy`, `React.forwardRef`, and
@@ -1180,7 +1202,13 @@ interface DefinePlatformReactPluginOverlayOptions {
1180
1202
  styleId: string;
1181
1203
  css: string;
1182
1204
  manifest?: Record<string, Partial<Record<string, ViewComponent>>>;
1183
- /** Override the per-overlay `QueryClient`. */
1205
+ /**
1206
+ * Override the `QueryClient` this overlay runs on.
1207
+ *
1208
+ * Left unset, the overlay runs on the host's client when the host realm
1209
+ * provides one, and on a per-bundle client of its own when it does not — see
1210
+ * {@link useSurfaceQueryClient}. Setting it opts out of both.
1211
+ */
1184
1212
  queryClient?: QueryClient;
1185
1213
  wrapOverlay?: (overlay: ReactElement) => ReactElement;
1186
1214
  }
@@ -1430,4 +1458,4 @@ interface MenuConfigHostSidebarOptions {
1430
1458
  */
1431
1459
  declare function menuConfigToHostSidebarInput(config: HeaderMenuItem[], opts: MenuConfigHostSidebarOptions): HostSidebarHookInput;
1432
1460
 
1433
- export { type AuthenticatedQueryResult, type CurrencyInfo, type CurrencySelector, DEFAULT_MAX_UPLOAD_BYTES, type DefinePlatformReactPluginOverlayOptions, type DefinePlatformReactPluginPageOptions, EHX_PLUGIN_PORTAL_ATTR, EHX_PLUGIN_PORTAL_CLASS, EHX_PLUGIN_ROOT_CLASS, HostSidebarHookInput, HostSidebarInput, type InsetLease, LIST_CURRENCIES_TOOL, type ManagedLifecycle, type McpToolArgs, type McpToolContract, type McpToolContracts, type McpToolResult, type MenuConfigHostSidebarOptions, MissingViewFallback, ORGANISATION_SETTINGS_URI, OVERLAY_HOST_CONTRACT_VERSION, type OverlayHostApi, type OverlayHostCapabilities, OverlayHostContext, type PlatformReactOverlayProps, type PluginOverlayDefinerConfig, type PluginPageDefinerConfig, PluginPortalScope, type PluginQueryMeta, PluginStyleScope, REPORTING_CURRENCY_TOOL, type ReactRouterShimOptions, SurfaceBaseContext, type SurfaceBaseValue, TemplateContext, type TemplateManifest, type ToHostSidebarInputOptions, ToolInvoker, TypedMcpService, type UseCurrencyResult, type UseMcpUploadOptions, type UseMcpUploadResult, type UseMcpUploadTarget, type ViewComponent, buildSurfaceUrl, createPluginOverlayDefiner, createPluginPageDefiner, createPluginQueryClient, createReactRouterShim, createUseView, definePlatformReactPluginOverlay, definePlatformReactPluginPage, deriveHostEntityToken, injectPluginStyles, isComponent, mcpTool, menuConfigToHostSidebarInput, normaliseSlug, resolveSurfaceBase, surfacePathFor, toHostSidebarInput, useAuthenticatedQueries, useAuthenticatedQuery, useCurrency, useManagedLifecycle, useMcpUpload, useOrgFormatSync, useOverlayHost, usePluginRealtime, useReportingCurrencySync, useSurfaceUrl, useTypedToolInvokerMap, useView };
1461
+ export { type AuthenticatedQueryResult, type CurrencyInfo, type CurrencySelector, DEFAULT_MAX_UPLOAD_BYTES, type DefinePlatformReactPluginOverlayOptions, type DefinePlatformReactPluginPageOptions, EHX_PLUGIN_PORTAL_ATTR, EHX_PLUGIN_PORTAL_CLASS, EHX_PLUGIN_ROOT_CLASS, HostSidebarHookInput, HostSidebarInput, type InsetLease, LIST_CURRENCIES_TOOL, type ManagedLifecycle, type McpToolArgs, type McpToolContract, type McpToolContracts, type McpToolResult, type MenuConfigHostSidebarOptions, MissingViewFallback, ORGANISATION_SETTINGS_URI, OVERLAY_HOST_CONTRACT_VERSION, type OverlayHostApi, type OverlayHostCapabilities, OverlayHostContext, type PlatformReactOverlayProps, type PluginOverlayDefinerConfig, type PluginPageDefinerConfig, PluginPortalScope, type PluginQueryMeta, PluginStyleScope, REPORTING_CURRENCY_TOOL, type ReactRouterShimOptions, SurfaceBaseContext, type SurfaceBaseValue, TemplateContext, type TemplateManifest, type ToHostSidebarInputOptions, ToolInvoker, TypedMcpService, type UseCurrencyResult, type UseMcpUploadOptions, type UseMcpUploadResult, type UseMcpUploadTarget, type ViewComponent, buildSurfaceUrl, createPluginOverlayDefiner, createPluginPageDefiner, createPluginQueryClient, createReactRouterShim, createUseView, definePlatformReactPluginOverlay, definePlatformReactPluginPage, deriveHostEntityToken, injectPluginStyles, isComponent, mcpTool, menuConfigToHostSidebarInput, normaliseSlug, resolveSurfaceBase, surfacePathFor, toHostSidebarInput, useAuthenticatedQueries, useAuthenticatedQuery, useCurrency, useManagedLifecycle, useMcpUpload, useOrgFormatSync, useOverlayHost, usePluginRealtime, useReportingCurrencySync, useSurfaceQueryClient, useSurfaceUrl, useTypedToolInvokerMap, useView };
@@ -40,7 +40,13 @@ interface DefinePlatformReactPluginPageOptions {
40
40
  styleId: string;
41
41
  /** The plugin's compiled CSS string (typically a `*.css?inline` import). */
42
42
  css: string;
43
- /** Override the per-page `QueryClient`. */
43
+ /**
44
+ * Override the `QueryClient` this page runs on.
45
+ *
46
+ * Left unset, the page runs on the host's client when the host realm provides
47
+ * one, and on a per-bundle client of its own when it does not — see
48
+ * {@link useSurfaceQueryClient}. Setting it opts out of both.
49
+ */
44
50
  queryClient?: QueryClient;
45
51
  /**
46
52
  * Optional wrapper applied around the page element, inside the style root. Use
@@ -96,12 +102,14 @@ interface PluginPageDefinerConfig {
96
102
  declare function createPluginPageDefiner(config: PluginPageDefinerConfig): (Page: ComponentType<PlatformReactPageProps>, views?: Record<string, ViewComponent>) => ComponentType<PlatformReactPageProps>;
97
103
 
98
104
  /**
99
- * The `QueryClient` every PlatformReact plugin surface runs on.
105
+ * The `QueryClient` a PlatformReact plugin surface falls back to when the host realm provides
106
+ * none — see {@link useSurfaceQueryClient} for when that is, and what it costs.
100
107
  *
101
108
  * # Why this file exists
102
109
  *
103
- * A plugin bundle cannot see the host's app-wide `QueryClientProvider` — react-query is
104
- * bundle-local, which is why each page and overlay creates its own client. The host's client
110
+ * It predates the react-query external. A plugin bundle could not see the host's app-wide
111
+ * `QueryClientProvider` — react-query was bundle-local, which is why each page and overlay
112
+ * created its own client. The host's client
105
113
  * carries cache-level `onError` handlers that turn a failed query or mutation into a toast, and
106
114
  * for a long time the plugin-side client carried none. The consequence was not a degraded
107
115
  * message: it was NO message. A command could be refused by the server, travel back through
@@ -139,6 +147,20 @@ interface PluginQueryMeta {
139
147
  */
140
148
  declare function createPluginQueryClient(config?: QueryClientConfig): QueryClient;
141
149
 
150
+ /**
151
+ * The client this surface should provide to its subtree.
152
+ *
153
+ * Precedence, and the order matters:
154
+ *
155
+ * 1. `override` — the definers' existing `queryClient` option. A plugin that asks
156
+ * for a specific client gets it, and is never second-guessed or warned about.
157
+ * 2. The host's client, read from the host realm's react-query context.
158
+ * 3. This bundle's own client — today's behaviour, unchanged.
159
+ *
160
+ * @param override The `queryClient` a definer's caller supplied, if any.
161
+ */
162
+ declare function useSurfaceQueryClient(override?: QueryClient): QueryClient;
163
+
142
164
  /**
143
165
  * Matches component types renderable via `useView`: plain function/class
144
166
  * components plus the object wrappers `React.lazy`, `React.forwardRef`, and
@@ -1180,7 +1202,13 @@ interface DefinePlatformReactPluginOverlayOptions {
1180
1202
  styleId: string;
1181
1203
  css: string;
1182
1204
  manifest?: Record<string, Partial<Record<string, ViewComponent>>>;
1183
- /** Override the per-overlay `QueryClient`. */
1205
+ /**
1206
+ * Override the `QueryClient` this overlay runs on.
1207
+ *
1208
+ * Left unset, the overlay runs on the host's client when the host realm
1209
+ * provides one, and on a per-bundle client of its own when it does not — see
1210
+ * {@link useSurfaceQueryClient}. Setting it opts out of both.
1211
+ */
1184
1212
  queryClient?: QueryClient;
1185
1213
  wrapOverlay?: (overlay: ReactElement) => ReactElement;
1186
1214
  }
@@ -1430,4 +1458,4 @@ interface MenuConfigHostSidebarOptions {
1430
1458
  */
1431
1459
  declare function menuConfigToHostSidebarInput(config: HeaderMenuItem[], opts: MenuConfigHostSidebarOptions): HostSidebarHookInput;
1432
1460
 
1433
- export { type AuthenticatedQueryResult, type CurrencyInfo, type CurrencySelector, DEFAULT_MAX_UPLOAD_BYTES, type DefinePlatformReactPluginOverlayOptions, type DefinePlatformReactPluginPageOptions, EHX_PLUGIN_PORTAL_ATTR, EHX_PLUGIN_PORTAL_CLASS, EHX_PLUGIN_ROOT_CLASS, HostSidebarHookInput, HostSidebarInput, type InsetLease, LIST_CURRENCIES_TOOL, type ManagedLifecycle, type McpToolArgs, type McpToolContract, type McpToolContracts, type McpToolResult, type MenuConfigHostSidebarOptions, MissingViewFallback, ORGANISATION_SETTINGS_URI, OVERLAY_HOST_CONTRACT_VERSION, type OverlayHostApi, type OverlayHostCapabilities, OverlayHostContext, type PlatformReactOverlayProps, type PluginOverlayDefinerConfig, type PluginPageDefinerConfig, PluginPortalScope, type PluginQueryMeta, PluginStyleScope, REPORTING_CURRENCY_TOOL, type ReactRouterShimOptions, SurfaceBaseContext, type SurfaceBaseValue, TemplateContext, type TemplateManifest, type ToHostSidebarInputOptions, ToolInvoker, TypedMcpService, type UseCurrencyResult, type UseMcpUploadOptions, type UseMcpUploadResult, type UseMcpUploadTarget, type ViewComponent, buildSurfaceUrl, createPluginOverlayDefiner, createPluginPageDefiner, createPluginQueryClient, createReactRouterShim, createUseView, definePlatformReactPluginOverlay, definePlatformReactPluginPage, deriveHostEntityToken, injectPluginStyles, isComponent, mcpTool, menuConfigToHostSidebarInput, normaliseSlug, resolveSurfaceBase, surfacePathFor, toHostSidebarInput, useAuthenticatedQueries, useAuthenticatedQuery, useCurrency, useManagedLifecycle, useMcpUpload, useOrgFormatSync, useOverlayHost, usePluginRealtime, useReportingCurrencySync, useSurfaceUrl, useTypedToolInvokerMap, useView };
1461
+ export { type AuthenticatedQueryResult, type CurrencyInfo, type CurrencySelector, DEFAULT_MAX_UPLOAD_BYTES, type DefinePlatformReactPluginOverlayOptions, type DefinePlatformReactPluginPageOptions, EHX_PLUGIN_PORTAL_ATTR, EHX_PLUGIN_PORTAL_CLASS, EHX_PLUGIN_ROOT_CLASS, HostSidebarHookInput, HostSidebarInput, type InsetLease, LIST_CURRENCIES_TOOL, type ManagedLifecycle, type McpToolArgs, type McpToolContract, type McpToolContracts, type McpToolResult, type MenuConfigHostSidebarOptions, MissingViewFallback, ORGANISATION_SETTINGS_URI, OVERLAY_HOST_CONTRACT_VERSION, type OverlayHostApi, type OverlayHostCapabilities, OverlayHostContext, type PlatformReactOverlayProps, type PluginOverlayDefinerConfig, type PluginPageDefinerConfig, PluginPortalScope, type PluginQueryMeta, PluginStyleScope, REPORTING_CURRENCY_TOOL, type ReactRouterShimOptions, SurfaceBaseContext, type SurfaceBaseValue, TemplateContext, type TemplateManifest, type ToHostSidebarInputOptions, ToolInvoker, TypedMcpService, type UseCurrencyResult, type UseMcpUploadOptions, type UseMcpUploadResult, type UseMcpUploadTarget, type ViewComponent, buildSurfaceUrl, createPluginOverlayDefiner, createPluginPageDefiner, createPluginQueryClient, createReactRouterShim, createUseView, definePlatformReactPluginOverlay, definePlatformReactPluginPage, deriveHostEntityToken, injectPluginStyles, isComponent, mcpTool, menuConfigToHostSidebarInput, normaliseSlug, resolveSurfaceBase, surfacePathFor, toHostSidebarInput, useAuthenticatedQueries, useAuthenticatedQuery, useCurrency, useManagedLifecycle, useMcpUpload, useOrgFormatSync, useOverlayHost, usePluginRealtime, useReportingCurrencySync, useSurfaceQueryClient, useSurfaceUrl, useTypedToolInvokerMap, useView };
@@ -1,4 +1,5 @@
1
- import { createContext, useEffect, useContext, useState, useMemo, useRef, createElement, useCallback, useSyncExternalStore } from 'react';
1
+ import { createContext, useContext, useEffect, useState, useMemo, useRef, createElement, useCallback, useSyncExternalStore } from 'react';
2
+ import * as reactQuery from '@tanstack/react-query';
2
3
  import { QueryClient, MutationCache, QueryCache, useQuery, useQueries, QueryClientProvider } from '@tanstack/react-query';
3
4
  import { definePlatformReactPage, emitNavigation } from '@ethisyscore/components-react';
4
5
  import * as extensionRuntime from '@ethisyscore/extension-runtime/plugin';
@@ -88,6 +89,39 @@ function createPluginQueryClient(config) {
88
89
  }
89
90
  });
90
91
  }
92
+
93
+ // src/platform-react/hostQueryClient.ts
94
+ var hostRealmExposesContext = isReactContext(reactQuery.QueryClientContext);
95
+ var resolvedHostContext = hostRealmExposesContext ? reactQuery.QueryClientContext : createContext(void 0);
96
+ function isReactContext(value) {
97
+ return typeof value === "object" && value !== null && "Provider" in value;
98
+ }
99
+ var bundleQueryClient;
100
+ function pluginBundleQueryClient() {
101
+ bundleQueryClient ??= createPluginQueryClient();
102
+ return bundleQueryClient;
103
+ }
104
+ var warnedAboutMissingHostClient = false;
105
+ function warnOnceAboutMissingHostClient() {
106
+ if (warnedAboutMissingHostClient) {
107
+ return;
108
+ }
109
+ warnedAboutMissingHostClient = true;
110
+ console.warn(
111
+ "[plugin-ui] The host realm provides no QueryClient" + (hostRealmExposesContext ? " (@tanstack/react-query is served, but this surface renders outside the host's QueryClientProvider)" : " (the host's @tanstack/react-query namespace has no QueryClientContext export)") + ". This surface falls back to a client of its own, so a mutation here will not invalidate another surface's cache. Deploy a host that mounts plugin surfaces inside its QueryClientProvider to share one cache."
112
+ );
113
+ }
114
+ function useSurfaceQueryClient(override) {
115
+ const hostQueryClient = useContext(resolvedHostContext);
116
+ if (override !== void 0) {
117
+ return override;
118
+ }
119
+ if (hostQueryClient !== void 0) {
120
+ return hostQueryClient;
121
+ }
122
+ warnOnceAboutMissingHostClient();
123
+ return pluginBundleQueryClient();
124
+ }
91
125
  var TemplateContext = createContext(null);
92
126
  function injectPluginStyles(id, css) {
93
127
  if (typeof document === "undefined") return;
@@ -307,7 +341,6 @@ function useReportingCurrencySync() {
307
341
  }
308
342
 
309
343
  // src/platform-react/definePlatformReactPluginPage.tsx
310
- var defaultQueryClient = createPluginQueryClient();
311
344
  var EHX_PLUGIN_ROOT_CLASS = "ehx-plugin-root";
312
345
  function definePlatformReactPluginPage(Page, options) {
313
346
  const {
@@ -315,10 +348,11 @@ function definePlatformReactPluginPage(Page, options) {
315
348
  rootClassName,
316
349
  styleId,
317
350
  css,
318
- queryClient = defaultQueryClient,
351
+ queryClient: queryClientOverride,
319
352
  wrapPage
320
353
  } = options;
321
354
  function PluginPage(props) {
355
+ const queryClient = useSurfaceQueryClient(queryClientOverride);
322
356
  useOrgFormatSync();
323
357
  useReportingCurrencySync();
324
358
  const page = createElement(Page, props);
@@ -798,18 +832,19 @@ function useOverlayHost() {
798
832
  }
799
833
  return api;
800
834
  }
801
- var defaultQueryClient2 = createPluginQueryClient();
802
835
  function definePlatformReactPluginOverlay(Overlay, options) {
803
- const { rootClassName, styleId, css, manifest = {}, queryClient = defaultQueryClient2, wrapOverlay } = options;
836
+ const { rootClassName, styleId, css, manifest = {}, queryClient: queryClientOverride, wrapOverlay } = options;
804
837
  return function MountedOverlay(props) {
838
+ const queryClient = useSurfaceQueryClient(queryClientOverride);
805
839
  useOrgFormatSync();
806
840
  useReportingCurrencySync();
807
841
  const tree = createElement(
808
842
  OverlayHostContext.Provider,
809
843
  { value: props.overlayHost },
810
- // react-query provider — an overlay bundle has its own react-query module
811
- // instance, so the host's app-wide client is invisible across the bundle
812
- // boundary; it needs its own provider exactly as each page gets one.
844
+ // react-query provider. Normally re-providing the host's own client, which
845
+ // is a no-op for the subtree and deliberate: the tree shape stays identical
846
+ // whichever client `useSurfaceQueryClient` returned, so the fallback path is
847
+ // not a second code path through the renderer.
813
848
  createElement(
814
849
  QueryClientProvider,
815
850
  { client: queryClient },
@@ -1217,6 +1252,6 @@ function withActiveNavHref(input, activeNavHref) {
1217
1252
  return { ...input, activeNavHref };
1218
1253
  }
1219
1254
 
1220
- export { BaseMcpService, DEFAULT_MAX_UPLOAD_BYTES, EHX_PLUGIN_PORTAL_ATTR, EHX_PLUGIN_PORTAL_CLASS, EHX_PLUGIN_ROOT_CLASS, HOST_CHROME_CONTRACT_VERSION, HostSidebarActionsContext, LIST_CURRENCIES_TOOL, MissingViewFallback, ORGANISATION_SETTINGS_URI, OVERLAY_HOST_CONTRACT_VERSION, OverlayHostContext, PluginPortalScope, PluginStyleScope, REPORTING_CURRENCY_TOOL2 as REPORTING_CURRENCY_TOOL, SIDEBAR_MODE, SurfaceBaseContext, TemplateContext, TypedMcpService, buildSurfaceUrl, createPluginOverlayDefiner, createPluginPageDefiner, createPluginQueryClient, createReactRouterShim, createUseView, definePlatformReactPluginOverlay, definePlatformReactPluginPage, deriveHostEntityToken, injectPluginStyles, isComponent, isHostChromeCompatible, mcpTool, menuConfigToHostSidebarInput, normaliseSlug, notViaMcp, reportHostChromeDiagnostic, resolveActiveNavHref, resolveSurfaceBase, setHostChromeDiagnosticSink, surfacePathFor, toHostSidebarInput, useAuthenticatedQueries, useAuthenticatedQuery, useCurrency, useHostSidebarActions, useManagedLifecycle, useMcpUpload, useOrgFormatSync, useOverlayHost, usePluginRealtime, useReportingCurrencySync, useSurfaceUrl, useToolInvoker, useToolInvokerMap, useTypedToolInvokerMap, useView, withActiveNavHref };
1255
+ export { BaseMcpService, DEFAULT_MAX_UPLOAD_BYTES, EHX_PLUGIN_PORTAL_ATTR, EHX_PLUGIN_PORTAL_CLASS, EHX_PLUGIN_ROOT_CLASS, HOST_CHROME_CONTRACT_VERSION, HostSidebarActionsContext, LIST_CURRENCIES_TOOL, MissingViewFallback, ORGANISATION_SETTINGS_URI, OVERLAY_HOST_CONTRACT_VERSION, OverlayHostContext, PluginPortalScope, PluginStyleScope, REPORTING_CURRENCY_TOOL2 as REPORTING_CURRENCY_TOOL, SIDEBAR_MODE, SurfaceBaseContext, TemplateContext, TypedMcpService, buildSurfaceUrl, createPluginOverlayDefiner, createPluginPageDefiner, createPluginQueryClient, createReactRouterShim, createUseView, definePlatformReactPluginOverlay, definePlatformReactPluginPage, deriveHostEntityToken, injectPluginStyles, isComponent, isHostChromeCompatible, mcpTool, menuConfigToHostSidebarInput, normaliseSlug, notViaMcp, reportHostChromeDiagnostic, resolveActiveNavHref, resolveSurfaceBase, setHostChromeDiagnosticSink, surfacePathFor, toHostSidebarInput, useAuthenticatedQueries, useAuthenticatedQuery, useCurrency, useHostSidebarActions, useManagedLifecycle, useMcpUpload, useOrgFormatSync, useOverlayHost, usePluginRealtime, useReportingCurrencySync, useSurfaceQueryClient, useSurfaceUrl, useToolInvoker, useToolInvokerMap, useTypedToolInvokerMap, useView, withActiveNavHref };
1221
1256
  //# sourceMappingURL=index.js.map
1222
1257
  //# sourceMappingURL=index.js.map