/** * Owliver — the dashboard's contextual productivity panel. * * Named Owliver in the UI, but architecturally independent of the standalone * Owliver voice product in components/krow/Owliver*. Nothing is shared. * * Architecture: * * AssistantPanelProvider workspace state, resolved page context * AssistantPanel the workspace column the Admin layout renders * AssistantTrigger legacy opt-in button. Not used by Admin: Owliver is * part of the page there, so there is no trigger to * press. It self-hides on unsupported routes, which * is why the pre-redesign pages still holding one * render nothing. * KrowAssistant the one assistant UI, reused on every page * provider.js the transport seam — local today, HTTP later * * Independent of Owliver, which remains a separate product. Nothing here imports * Owliver code, and the two never share UI. */ export { AssistantPanelProvider, useAssistantPanel } from './AssistantPanelContext'; export { usePageAction, usePageContext, usePublishPageActions, usePublishPageContext, } from './PageContext'; export { AssistantTrigger } from './AssistantTrigger'; export { AssistantPanel } from './AssistantPanel'; export { default as KrowAssistant } from './KrowAssistant'; export { ASSISTANT_CONTEXTS, getContext } from './contexts'; export { EXCLUDED_ROUTES, enabledRoutes, resolveAssistantContext } from './placement'; export { createAgentProvider, createUnconfiguredProvider } from './provider';