@novu/react 3.19.1-rc.852194fa77 → 3.19.2-rc.dc9caee828

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/server/index.tsx"],"sourcesContent":["import type { InboxProps } from '../components/Inbox';\nimport { ShadowRootDetector } from '../components/ShadowRootDetector';\nimport type {\n UseAgentChatProps,\n UseAgentChatResult,\n UseCreateSubscriptionProps,\n UseCreateSubscriptionResult,\n UseNotificationsProps,\n UseNotificationsResult,\n UsePreferencesProps,\n UsePreferencesResult,\n UseRemoveSubscriptionProps,\n UseRemoveSubscriptionResult,\n UseScheduleProps,\n UseScheduleResult,\n UseSubscriptionProps,\n UseSubscriptionResult,\n UseSubscriptionsProps,\n UseSubscriptionsResult,\n UseUpdateSubscriptionProps,\n UseUpdateSubscriptionResult,\n} from '../hooks';\nimport type { NovuProviderProps } from '../hooks/NovuProvider';\nimport type { UseCountsProps, UseCountsResult } from '../hooks/useCounts';\n\n/**\n * Exporting all components from the components folder\n * as empty functions to fix build errors in SSR\n * This will be replaced with actual components\n * when we implement the SSR components in @novu/js/ui\n */\nexport function Inbox(props: InboxProps) {\n return <ShadowRootDetector />;\n}\n\nexport function InboxContent() {}\n\nexport function Notifications() {}\n\nexport function Preferences() {}\n\nexport function Bell() {}\n\nexport function NovuProvider(props: NovuProviderProps) {\n return <>{props.children}</>;\n}\n\nexport function Subscription() {\n return <ShadowRootDetector />;\n}\n\nexport function SubscriptionButton() {}\n\nexport function SubscriptionPreferences() {}\n\nexport function SlackConnectButton() {\n return <ShadowRootDetector />;\n}\n\nexport function SlackLinkUser() {\n return <ShadowRootDetector />;\n}\n\nexport function MsTeamsConnectButton() {\n return <ShadowRootDetector />;\n}\n\nexport function MsTeamsLinkUser() {\n return <ShadowRootDetector />;\n}\n\nexport function TelegramConnectButton() {\n return <ShadowRootDetector />;\n}\n\nexport function useNovu() {\n return null;\n}\n\nexport function useAgentChat(_: UseAgentChatProps): UseAgentChatResult {\n return {\n messages: [],\n pendingActions: [],\n isLoading: false,\n isRunning: false,\n typing: undefined,\n status: 'active',\n conversationStatus: 'active',\n run: { isRunning: false },\n pagination: {\n status: 'idle',\n hasMore: false,\n fetchMore: () => Promise.resolve({ data: undefined, error: undefined }),\n },\n isRecovering: false,\n catchUpError: undefined,\n refetch: () => Promise.resolve(),\n sendMessage: () => Promise.resolve({ data: undefined, error: undefined }),\n respondToAction: () => Promise.resolve({ data: undefined, error: undefined }),\n sendAction: () => Promise.resolve({ data: undefined, error: undefined }),\n retryMessage: () => Promise.resolve({ data: undefined, error: undefined }),\n };\n}\n\nexport function useCounts(_: UseCountsProps): UseCountsResult {\n return {\n isLoading: false,\n isFetching: false,\n refetch: () => Promise.resolve(),\n };\n}\n\nexport function useNotifications(_: UseNotificationsProps): UseNotificationsResult {\n return {\n isLoading: false,\n isFetching: false,\n hasMore: false,\n readAll: () => Promise.resolve({ data: undefined, error: undefined }),\n seenAll: () => Promise.resolve({ data: undefined, error: undefined }),\n archiveAll: () => Promise.resolve({ data: undefined, error: undefined }),\n archiveAllRead: () => Promise.resolve({ data: undefined, error: undefined }),\n refetch: () => Promise.resolve(),\n fetchMore: () => Promise.resolve(),\n };\n}\n\nexport function usePreferences(_: UsePreferencesProps): UsePreferencesResult {\n return {\n isLoading: false,\n isFetching: false,\n refetch: () => Promise.resolve(),\n };\n}\n\nexport function useSchedule(_: UseScheduleProps): UseScheduleResult {\n return {\n isLoading: false,\n isFetching: false,\n refetch: () => Promise.resolve(),\n };\n}\n\nexport function useSubscription(_: UseSubscriptionProps): UseSubscriptionResult {\n return {\n isLoading: false,\n isFetching: false,\n refetch: () => Promise.resolve(),\n };\n}\n\nexport function useCreateSubscription(_: UseCreateSubscriptionProps = {}): UseCreateSubscriptionResult {\n return {\n isCreating: false,\n error: undefined,\n create: () => Promise.resolve({ data: undefined, error: undefined }),\n };\n}\n\nexport function useUpdateSubscription(_: UseUpdateSubscriptionProps = {}): UseUpdateSubscriptionResult {\n return {\n isUpdating: false,\n error: undefined,\n update: () => Promise.resolve({ data: undefined, error: undefined }),\n };\n}\n\nexport function useRemoveSubscription(_: UseRemoveSubscriptionProps = {}): UseRemoveSubscriptionResult {\n return {\n isRemoving: false,\n error: undefined,\n remove: () => Promise.resolve({ data: undefined, error: undefined }),\n };\n}\n\nexport function useSubscriptions(_: UseSubscriptionsProps): UseSubscriptionsResult {\n return {\n isLoading: false,\n isFetching: false,\n refetch: () => Promise.resolve(),\n };\n}\n\nexport type * from '@novu/js';\nexport { PreferenceLevel, SeverityLevelEnum, WorkflowCriticalityEnum } from '@novu/js';\n\nexport type {\n AllLocalization,\n AllLocalizationKey,\n ElementStyles,\n InboxAppearance,\n InboxAppearanceCallback,\n InboxAppearanceCallbackFunction,\n InboxAppearanceCallbackKeys,\n InboxAppearanceKey,\n InboxElements,\n InboxLocalization,\n InboxLocalizationKey,\n InboxTheme,\n NotificationActionClickHandler,\n NotificationClickHandler,\n NotificationRenderer,\n PreferenceGroups,\n PreferencesFilter,\n RouterPush,\n SubscriptionAppearance,\n SubscriptionAppearanceCallback,\n SubscriptionAppearanceCallbackFunction,\n SubscriptionAppearanceCallbackKeys,\n SubscriptionAppearanceKey,\n SubscriptionElements,\n SubscriptionLocalization,\n SubscriptionLocalizationKey,\n SubscriptionTheme,\n Tab,\n Variables,\n} from '@novu/js/ui';\n\nexport type { BellProps, InboxContentProps, InboxProps, NotificationProps, NovuProviderProps } from '../components';\n\nexport type {\n UseAgentChatProps,\n UseAgentChatResult,\n UseCountsProps,\n UseCountsResult,\n UseNotificationsProps,\n UseNotificationsResult,\n UsePreferencesResult,\n UseScheduleProps as UsePreferencesProps,\n} from '../hooks';\n\nexport type {\n BaseProps,\n BellRenderer,\n BodyRenderer,\n DefaultInboxProps,\n DefaultProps,\n NoRendererProps,\n NotificationRendererProps,\n NotificationsRenderer,\n SubjectBodyRendererProps,\n SubjectRenderer,\n WithChildrenProps,\n} from '../utils/types';\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/server/index.tsx"],"sourcesContent":["import type { InboxProps } from '../components/Inbox';\nimport { ShadowRootDetector } from '../components/ShadowRootDetector';\nimport type {\n UseWebChatProps,\n UseWebChatResult,\n UseCreateSubscriptionProps,\n UseCreateSubscriptionResult,\n UseNotificationsProps,\n UseNotificationsResult,\n UsePreferencesProps,\n UsePreferencesResult,\n UseRemoveSubscriptionProps,\n UseRemoveSubscriptionResult,\n UseScheduleProps,\n UseScheduleResult,\n UseSubscriptionProps,\n UseSubscriptionResult,\n UseSubscriptionsProps,\n UseSubscriptionsResult,\n UseUpdateSubscriptionProps,\n UseUpdateSubscriptionResult,\n} from '../hooks';\nimport type { NovuProviderProps } from '../hooks/NovuProvider';\nimport type { UseCountsProps, UseCountsResult } from '../hooks/useCounts';\n\n/**\n * Exporting all components from the components folder\n * as empty functions to fix build errors in SSR\n * This will be replaced with actual components\n * when we implement the SSR components in @novu/js/ui\n */\nexport function Inbox(props: InboxProps) {\n return <ShadowRootDetector />;\n}\n\nexport function InboxContent() {}\n\nexport function Notifications() {}\n\nexport function Preferences() {}\n\nexport function Bell() {}\n\nexport function NovuProvider(props: NovuProviderProps) {\n return <>{props.children}</>;\n}\n\nexport function Subscription() {\n return <ShadowRootDetector />;\n}\n\nexport function SubscriptionButton() {}\n\nexport function SubscriptionPreferences() {}\n\nexport function SlackConnectButton() {\n return <ShadowRootDetector />;\n}\n\nexport function SlackLinkUser() {\n return <ShadowRootDetector />;\n}\n\nexport function MsTeamsConnectButton() {\n return <ShadowRootDetector />;\n}\n\nexport function MsTeamsLinkUser() {\n return <ShadowRootDetector />;\n}\n\nexport function TelegramConnectButton() {\n return <ShadowRootDetector />;\n}\n\nexport function useNovu() {\n return null;\n}\n\nexport function useWebChat(_: UseWebChatProps): UseWebChatResult {\n return {\n messages: [],\n pendingActions: [],\n isLoading: true,\n isRunning: false,\n typing: undefined,\n conversationStatus: 'active',\n run: { isRunning: false },\n pagination: {\n status: 'idle',\n hasMore: false,\n fetchMore: () => Promise.resolve({ data: undefined, error: undefined }),\n },\n isRecovering: false,\n catchUpError: undefined,\n refetch: () => Promise.resolve(),\n sendMessage: () => Promise.resolve({ data: undefined, error: undefined }),\n respondToAction: () => Promise.resolve({ data: undefined, error: undefined }),\n sendAction: () => Promise.resolve({ data: undefined, error: undefined }),\n retryMessage: () => Promise.resolve({ data: undefined, error: undefined }),\n startNewConversation: () => {},\n };\n}\n\nexport function useCounts(_: UseCountsProps): UseCountsResult {\n return {\n isLoading: false,\n isFetching: false,\n refetch: () => Promise.resolve(),\n };\n}\n\nexport function useNotifications(_: UseNotificationsProps): UseNotificationsResult {\n return {\n isLoading: false,\n isFetching: false,\n hasMore: false,\n readAll: () => Promise.resolve({ data: undefined, error: undefined }),\n seenAll: () => Promise.resolve({ data: undefined, error: undefined }),\n archiveAll: () => Promise.resolve({ data: undefined, error: undefined }),\n archiveAllRead: () => Promise.resolve({ data: undefined, error: undefined }),\n refetch: () => Promise.resolve(),\n fetchMore: () => Promise.resolve(),\n };\n}\n\nexport function usePreferences(_: UsePreferencesProps): UsePreferencesResult {\n return {\n isLoading: false,\n isFetching: false,\n refetch: () => Promise.resolve(),\n };\n}\n\nexport function useSchedule(_: UseScheduleProps): UseScheduleResult {\n return {\n isLoading: false,\n isFetching: false,\n refetch: () => Promise.resolve(),\n };\n}\n\nexport function useSubscription(_: UseSubscriptionProps): UseSubscriptionResult {\n return {\n isLoading: false,\n isFetching: false,\n refetch: () => Promise.resolve(),\n };\n}\n\nexport function useCreateSubscription(_: UseCreateSubscriptionProps = {}): UseCreateSubscriptionResult {\n return {\n isCreating: false,\n error: undefined,\n create: () => Promise.resolve({ data: undefined, error: undefined }),\n };\n}\n\nexport function useUpdateSubscription(_: UseUpdateSubscriptionProps = {}): UseUpdateSubscriptionResult {\n return {\n isUpdating: false,\n error: undefined,\n update: () => Promise.resolve({ data: undefined, error: undefined }),\n };\n}\n\nexport function useRemoveSubscription(_: UseRemoveSubscriptionProps = {}): UseRemoveSubscriptionResult {\n return {\n isRemoving: false,\n error: undefined,\n remove: () => Promise.resolve({ data: undefined, error: undefined }),\n };\n}\n\nexport function useSubscriptions(_: UseSubscriptionsProps): UseSubscriptionsResult {\n return {\n isLoading: false,\n isFetching: false,\n refetch: () => Promise.resolve(),\n };\n}\n\nexport type * from '@novu/js';\nexport { pendingActionKey, PreferenceLevel, SeverityLevelEnum, WorkflowCriticalityEnum } from '@novu/js';\n\nexport type {\n AllLocalization,\n AllLocalizationKey,\n ElementStyles,\n InboxAppearance,\n InboxAppearanceCallback,\n InboxAppearanceCallbackFunction,\n InboxAppearanceCallbackKeys,\n InboxAppearanceKey,\n InboxElements,\n InboxLocalization,\n InboxLocalizationKey,\n InboxTheme,\n NotificationActionClickHandler,\n NotificationClickHandler,\n NotificationRenderer,\n PreferenceGroups,\n PreferencesFilter,\n RouterPush,\n SubscriptionAppearance,\n SubscriptionAppearanceCallback,\n SubscriptionAppearanceCallbackFunction,\n SubscriptionAppearanceCallbackKeys,\n SubscriptionAppearanceKey,\n SubscriptionElements,\n SubscriptionLocalization,\n SubscriptionLocalizationKey,\n SubscriptionTheme,\n Tab,\n Variables,\n} from '@novu/js/ui';\n\nexport type { BellProps, InboxContentProps, InboxProps, NotificationProps, NovuProviderProps } from '../components';\n\nexport type {\n UseWebChatProps,\n UseWebChatResult,\n UseCountsProps,\n UseCountsResult,\n UseNotificationsProps,\n UseNotificationsResult,\n UsePreferencesResult,\n UseScheduleProps as UsePreferencesProps,\n} from '../hooks';\n\nexport type {\n BaseProps,\n BellRenderer,\n BodyRenderer,\n DefaultInboxProps,\n DefaultProps,\n NoRendererProps,\n NotificationRendererProps,\n NotificationsRenderer,\n SubjectBodyRendererProps,\n SubjectRenderer,\n WithChildrenProps,\n} from '../utils/types';\n"],"mappings":"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","names":[]}
@@ -1,9 +1,9 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { InboxProps } from '../components/Inbox.cjs';
3
3
  export * from '@novu/js';
4
- export { PreferenceLevel, SeverityLevelEnum, WorkflowCriticalityEnum } from '@novu/js';
4
+ export { PreferenceLevel, SeverityLevelEnum, WorkflowCriticalityEnum, pendingActionKey } from '@novu/js';
5
5
  import { NovuProviderProps } from '../hooks/NovuProvider.cjs';
6
- import { UseAgentChatProps, UseAgentChatResult } from '../hooks/useAgentChat.cjs';
6
+ import { UseWebChatProps, UseWebChatResult } from '../hooks/useWebChat.cjs';
7
7
  import { UseCountsProps, UseCountsResult } from '../hooks/useCounts.cjs';
8
8
  import { UseCreateSubscriptionProps, UseCreateSubscriptionResult } from '../hooks/useCreateSubscription.cjs';
9
9
  import { UseNotificationsProps, UseNotificationsResult } from '../hooks/useNotifications.cjs';
@@ -41,7 +41,7 @@ declare function MsTeamsConnectButton(): react_jsx_runtime.JSX.Element;
41
41
  declare function MsTeamsLinkUser(): react_jsx_runtime.JSX.Element;
42
42
  declare function TelegramConnectButton(): react_jsx_runtime.JSX.Element;
43
43
  declare function useNovu(): null;
44
- declare function useAgentChat(_: UseAgentChatProps): UseAgentChatResult;
44
+ declare function useWebChat(_: UseWebChatProps): UseWebChatResult;
45
45
  declare function useCounts(_: UseCountsProps): UseCountsResult;
46
46
  declare function useNotifications(_: UseNotificationsProps): UseNotificationsResult;
47
47
  declare function usePreferences(_: UsePreferencesProps): UsePreferencesResult;
@@ -52,4 +52,4 @@ declare function useUpdateSubscription(_?: UseUpdateSubscriptionProps): UseUpdat
52
52
  declare function useRemoveSubscription(_?: UseRemoveSubscriptionProps): UseRemoveSubscriptionResult;
53
53
  declare function useSubscriptions(_: UseSubscriptionsProps): UseSubscriptionsResult;
54
54
 
55
- export { Bell, Inbox, InboxContent, InboxProps, MsTeamsConnectButton, MsTeamsLinkUser, Notifications, NovuProvider, NovuProviderProps, Preferences, SlackConnectButton, SlackLinkUser, Subscription, SubscriptionButton, SubscriptionPreferences, TelegramConnectButton, UseAgentChatProps, UseAgentChatResult, UseCountsProps, UseCountsResult, UseNotificationsProps, UseNotificationsResult, UseScheduleProps as UsePreferencesProps, UsePreferencesResult, useAgentChat, useCounts, useCreateSubscription, useNotifications, useNovu, usePreferences, useRemoveSubscription, useSchedule, useSubscription, useSubscriptions, useUpdateSubscription };
55
+ export { Bell, Inbox, InboxContent, InboxProps, MsTeamsConnectButton, MsTeamsLinkUser, Notifications, NovuProvider, NovuProviderProps, Preferences, SlackConnectButton, SlackLinkUser, Subscription, SubscriptionButton, SubscriptionPreferences, TelegramConnectButton, UseCountsProps, UseCountsResult, UseNotificationsProps, UseNotificationsResult, UseScheduleProps as UsePreferencesProps, UsePreferencesResult, UseWebChatProps, UseWebChatResult, useCounts, useCreateSubscription, useNotifications, useNovu, usePreferences, useRemoveSubscription, useSchedule, useSubscription, useSubscriptions, useUpdateSubscription, useWebChat };
@@ -1,7 +1,7 @@
1
1
  export * from '@novu/js';
2
- export { PreferenceLevel, SeverityLevelEnum, WorkflowCriticalityEnum } from '@novu/js';
2
+ export { PreferenceLevel, SeverityLevelEnum, WorkflowCriticalityEnum, pendingActionKey } from '@novu/js';
3
3
  export { NovuProvider, useNovu } from './NovuProvider.js';
4
- export { UseAgentChatProps, UseAgentChatResult, useAgentChat } from './useAgentChat.js';
4
+ export { UseWebChatProps, UseWebChatResult, useWebChat } from './useWebChat.js';
5
5
  export { UseChannelConnectionProps, UseChannelConnectionResult, useChannelConnection } from './useChannelConnection.js';
6
6
  export { UseChannelConnectionsProps, UseChannelConnectionsResult, useChannelConnections } from './useChannelConnections.js';
7
7
  export { UseChannelEndpointProps, UseChannelEndpointResult, useChannelEndpoint } from './useChannelEndpoint.js';
@@ -1,7 +1,7 @@
1
1
  // src/hooks/index.ts
2
- import { PreferenceLevel, SeverityLevelEnum, WorkflowCriticalityEnum } from "@novu/js";
2
+ import { pendingActionKey, PreferenceLevel, SeverityLevelEnum, WorkflowCriticalityEnum } from "@novu/js";
3
3
  import { NovuProvider, useNovu } from "./NovuProvider.js";
4
- export * from "./useAgentChat.js";
4
+ export * from "./useWebChat.js";
5
5
  export * from "./useChannelConnection.js";
6
6
  export * from "./useChannelConnections.js";
7
7
  export * from "./useChannelEndpoint.js";
@@ -24,6 +24,7 @@ export {
24
24
  PreferenceLevel,
25
25
  SeverityLevelEnum,
26
26
  WorkflowCriticalityEnum,
27
+ pendingActionKey,
27
28
  useNovu
28
29
  };
29
30
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/hooks/index.ts"],"sourcesContent":["export type * from '@novu/js';\nexport { PreferenceLevel, SeverityLevelEnum, WorkflowCriticalityEnum } from '@novu/js';\nexport { NovuProvider, useNovu } from './NovuProvider';\nexport * from './useAgentChat';\nexport * from './useChannelConnection';\nexport * from './useChannelConnections';\nexport * from './useChannelEndpoint';\nexport * from './useChannelEndpoints';\nexport * from './useCounts';\nexport * from './useCreateChannelEndpoint';\nexport * from './useCreateSubscription';\nexport * from './useDeleteChannelConnection';\nexport * from './useDeleteChannelEndpoint';\nexport * from './useNotifications';\nexport * from './usePreferences';\nexport * from './useRemoveSubscription';\nexport * from './useSchedule';\nexport * from './useSubscription';\nexport * from './useSubscriptions';\nexport * from './useTelegramSubscriberLink';\nexport * from './useUpdateSubscription';\n"],"mappings":";AACA,SAAS,iBAAiB,mBAAmB,+BAA+B;AAC5E,SAAS,cAAc,eAAe;AACtC,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/hooks/index.ts"],"sourcesContent":["export type * from '@novu/js';\nexport { pendingActionKey, PreferenceLevel, SeverityLevelEnum, WorkflowCriticalityEnum } from '@novu/js';\nexport { NovuProvider, useNovu } from './NovuProvider';\nexport * from './useWebChat';\nexport * from './useChannelConnection';\nexport * from './useChannelConnections';\nexport * from './useChannelEndpoint';\nexport * from './useChannelEndpoints';\nexport * from './useCounts';\nexport * from './useCreateChannelEndpoint';\nexport * from './useCreateSubscription';\nexport * from './useDeleteChannelConnection';\nexport * from './useDeleteChannelEndpoint';\nexport * from './useNotifications';\nexport * from './usePreferences';\nexport * from './useRemoveSubscription';\nexport * from './useSchedule';\nexport * from './useSubscription';\nexport * from './useSubscriptions';\nexport * from './useTelegramSubscriberLink';\nexport * from './useUpdateSubscription';\n"],"mappings":";AACA,SAAS,kBAAkB,iBAAiB,mBAAmB,+BAA+B;AAC9F,SAAS,cAAc,eAAe;AACtC,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
@@ -0,0 +1,138 @@
1
+ import { LoadConversationResult, NovuError, WebChatPlanLimitError, AgentMessage, AgentPendingAction, AgentEventEnvelope, AgentHashFields, AgentConversationRuntime, AgentConversationRunSnapshot, AgentConversationStatus, WebChatPagination, SendMessageInput, SendMessageResult, AgentToolApprovalDecision, RespondToActionResult, SendActionResult } from '@novu/js';
2
+
3
+ type UseWebChatCallbacks = {
4
+ onSuccess?: (data: LoadConversationResult) => void;
5
+ onError?: (error: NovuError | WebChatPlanLimitError) => void;
6
+ /**
7
+ * Fires once when a message id first appears. History pages do not fire.
8
+ * The first event of a turn can create an empty assistant message before text arrives.
9
+ * A send that never reaches the server does not fire. The message status becomes `failed` instead.
10
+ */
11
+ onMessage?: (message: AgentMessage) => void;
12
+ /**
13
+ * Fires once per pending action, including actions still pending on mount.
14
+ * Paging backwards does not fire.
15
+ */
16
+ onActionRequested?: (action: AgentPendingAction) => void;
17
+ /**
18
+ * Live event envelopes for this conversation.
19
+ * Duplicates that the client drops do not fire.
20
+ * Envelopes that arrive before the conversation id exists do not fire.
21
+ * The message list in this render does not include this envelope yet.
22
+ */
23
+ onEvent?: (envelope: AgentEventEnvelope) => void;
24
+ };
25
+ /** Arguments for {@link useWebChat}. Pass `agentId`, or pass `conversation`. Do not mix the two. */
26
+ type UseWebChatProps = UseWebChatCallbacks & AgentHashFields & ({
27
+ agentId: string;
28
+ /**
29
+ * Resume this conversation. The hook loads history on mount.
30
+ * Omit this prop to start a new chat. The first send creates a conversation.
31
+ */
32
+ conversationId?: string;
33
+ conversation?: never;
34
+ } | {
35
+ /** Share an existing conversation runtime across multiple hook instances. */
36
+ conversation: AgentConversationRuntime;
37
+ agentId?: never;
38
+ conversationId?: never;
39
+ agentHash?: never;
40
+ });
41
+ /**
42
+ * State and actions returned by {@link useWebChat}.
43
+ * `sendMessage`, `respondToAction`, `sendAction`, and `retryMessage` resolve `{ data, error }` and never reject.
44
+ * Inspect `error` on the result, or show hook `error`.
45
+ */
46
+ type UseWebChatResult = {
47
+ /** Conversation timeline. */
48
+ messages: AgentMessage[];
49
+ /** Tool approvals and MCP connect items that are still pending. */
50
+ pendingActions: AgentPendingAction[];
51
+ /** Server conversation id after create or resume. */
52
+ conversationId?: string;
53
+ /** Last error from load, send, retry, or action. Mutations also return `{ error }` for that call. */
54
+ error?: NovuError | WebChatPlanLimitError;
55
+ /** True while Web Chat loads and, for an existing conversation, until the first history fetch completes. */
56
+ isLoading: boolean;
57
+ /** True while the agent turn is in progress. Same as `run.isRunning`. */
58
+ isRunning: boolean;
59
+ /** Typing indicator. Same as `run.typing`. Absent when the agent is not typing. */
60
+ typing?: AgentConversationRunSnapshot['typing'];
61
+ /** `'active'` or `'resolved'`. The agent sets `resolved` with `ctx.resolve()`. Not a loading flag. */
62
+ conversationStatus: AgentConversationStatus;
63
+ /** Current agent-run snapshot. */
64
+ run: AgentConversationRunSnapshot;
65
+ /** Older-history control. Not a top-level `hasMore` or `fetchMore`. */
66
+ pagination: WebChatPagination & {
67
+ fetchMore: () => Promise<{
68
+ data?: {
69
+ messages: AgentMessage[];
70
+ hasMore: boolean;
71
+ };
72
+ error?: NovuError;
73
+ }>;
74
+ };
75
+ /** True while reconnect recovery is in progress. */
76
+ isRecovering: boolean;
77
+ /** Set when reconnect recovery fails. Separate from send and fetch `error`. */
78
+ catchUpError?: NovuError;
79
+ /** Reload the newest history page. No-op when there is no conversation id. */
80
+ refetch: () => Promise<void>;
81
+ /**
82
+ * Send a user message. `input` is a string, or `{ text, metadata }`. Creates a conversation when `conversationId` is omitted.
83
+ * Does not throw. Resolves `{ data, error }`. Inspect `error` on the result, or show hook `error`.
84
+ */
85
+ sendMessage: (input: SendMessageInput) => Promise<{
86
+ data?: SendMessageResult;
87
+ error?: NovuError | WebChatPlanLimitError;
88
+ }>;
89
+ /**
90
+ * Resolve a pending `approval`. Pass `approvalId` from `pendingActions` or message parts.
91
+ * Does not throw. Resolves `{ data, error }`. Inspect `error` on the result, or show hook `error`.
92
+ */
93
+ respondToAction: (args: {
94
+ approvalId: string;
95
+ decision: AgentToolApprovalDecision;
96
+ }) => Promise<{
97
+ data?: RespondToActionResult;
98
+ error?: NovuError | WebChatPlanLimitError;
99
+ }>;
100
+ /**
101
+ * Click a Card button. Do not use this for tool approval.
102
+ * Does not throw. Resolves `{ data, error }`. Inspect `error` on the result, or show hook `error`.
103
+ */
104
+ sendAction: (args: {
105
+ actionId: string;
106
+ sourceMessageId: string;
107
+ value?: string;
108
+ }) => Promise<{
109
+ data?: SendActionResult;
110
+ error?: NovuError | WebChatPlanLimitError;
111
+ }>;
112
+ /**
113
+ * Resend a message whose `status` is `failed`. Reuses the original idempotency key.
114
+ * Does not throw. Resolves `{ data, error }`. Inspect `error` on the result, or show hook `error`.
115
+ */
116
+ retryMessage: (messageId: string) => Promise<{
117
+ data?: SendMessageResult;
118
+ error?: NovuError | WebChatPlanLimitError;
119
+ }>;
120
+ /**
121
+ * Start a new empty chat for the current `agentId`. The next `sendMessage` creates the server conversation.
122
+ * No-op when `conversationId` or `conversation` is provided.
123
+ */
124
+ startNewConversation: () => void;
125
+ };
126
+ /**
127
+ * Headless Web Chat client. Use it inside `NovuProvider`.
128
+ *
129
+ * @example
130
+ * ```tsx
131
+ * const { messages, sendMessage, isRunning, isLoading, error } = useWebChat({
132
+ * agentId: 'YOUR_AGENT_IDENTIFIER',
133
+ * });
134
+ * ```
135
+ */
136
+ declare const useWebChat: (props: UseWebChatProps) => UseWebChatResult;
137
+
138
+ export { type UseWebChatProps, type UseWebChatResult, useWebChat };
@@ -1,10 +1,11 @@
1
- // src/hooks/useAgentChat.ts
2
- import { useCallback, useEffect, useMemo, useRef, useSyncExternalStore } from "react";
1
+ // src/hooks/useWebChat.ts
2
+ import { NovuError } from "@novu/js";
3
+ import { useCallback, useEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
3
4
  import { useDataRef } from "./internal/useDataRef.js";
4
5
  import { useNovu } from "./NovuProvider.js";
5
6
  var EMPTY_SERVER_SNAPSHOT = {
6
7
  key: "ssr",
7
- status: "ready",
8
+ status: "loading",
8
9
  run: { isRunning: false },
9
10
  conversationStatus: "active",
10
11
  pagination: { hasMore: false, status: "idle" },
@@ -66,55 +67,89 @@ function handlePublicationCallbacks(args) {
66
67
  function getCreateFlowKey(agentId, agentHash) {
67
68
  return `${agentId}\0${agentHash ?? ""}`;
68
69
  }
69
- function resolveOwnedRuntime(args) {
70
- const key = getCreateFlowKey(args.agentId, args.agentHash);
71
- const current = args.ownedRuntimeRef.current;
72
- if (current?.key === key) {
73
- return current.runtime;
70
+ function getManagedRuntimeKey(agentId, agentHash, conversationIdProp, createEpoch) {
71
+ if (conversationIdProp) {
72
+ return `resume:${agentId}\0${agentHash ?? ""}\0${conversationIdProp}`;
74
73
  }
75
- current?.runtime.dispose();
76
- const result = args.novu.agentChat.conversation({ agentId: args.agentId, agentHash: args.agentHash });
77
- if (!result.ok) {
78
- args.ownedRuntimeRef.current = null;
79
- return null;
74
+ return `${getCreateFlowKey(agentId, agentHash)}\0${createEpoch}`;
75
+ }
76
+ function toNovuError(error) {
77
+ if (error instanceof NovuError) {
78
+ return error;
79
+ }
80
+ if (error instanceof Error) {
81
+ return new NovuError("Failed to load Web Chat", error);
80
82
  }
81
- args.ownedRuntimeRef.current = { key, runtime: result.data };
82
- return result.data;
83
+ return new NovuError("Failed to load Web Chat", new Error(String(error)));
83
84
  }
84
- var useAgentChat = (props) => {
85
+ var useWebChat = (props) => {
85
86
  const novu = useNovu();
86
87
  const propsRef = useDataRef(props);
88
+ const [loadState, setLoadState] = useState(() => ({
89
+ novu,
90
+ status: "loading"
91
+ }));
92
+ useEffect(() => {
93
+ let cancelled = false;
94
+ if (!novu.isWebChatLoaded) {
95
+ setLoadState({ novu, status: "loading" });
96
+ }
97
+ void novu.loadWebChat().then(() => {
98
+ if (!cancelled) {
99
+ setLoadState({ novu, status: "ready" });
100
+ }
101
+ }).catch((error) => {
102
+ if (cancelled) {
103
+ return;
104
+ }
105
+ const novuError = toNovuError(error);
106
+ propsRef.current.onError?.(novuError);
107
+ setLoadState({ novu, status: "error", error: novuError });
108
+ });
109
+ return () => {
110
+ cancelled = true;
111
+ };
112
+ }, [novu, propsRef]);
113
+ const webChatReady = loadState.novu === novu && loadState.status === "ready";
114
+ const webChatLoadError = loadState.novu === novu && loadState.status === "error" ? loadState.error : void 0;
115
+ const isWebChatLoading = loadState.novu !== novu || loadState.status === "loading";
87
116
  const sharedRuntime = "conversation" in props ? props.conversation : void 0;
88
117
  const agentId = sharedRuntime?.agentId ?? props.agentId;
89
118
  const conversationIdProp = sharedRuntime ? void 0 : props.conversationId;
90
119
  const agentHash = sharedRuntime ? void 0 : props.agentHash;
91
120
  const ownedRuntimeRef = useRef(null);
92
- const cachedRuntime = useMemo(() => {
121
+ const [managedRuntime, setManagedRuntime] = useState(null);
122
+ const [createEpoch, setCreateEpoch] = useState(0);
123
+ const managedRuntimeKey = sharedRuntime ? null : getManagedRuntimeKey(agentId, agentHash, conversationIdProp, createEpoch);
124
+ useEffect(() => {
93
125
  if (sharedRuntime) {
94
- return sharedRuntime;
126
+ ownedRuntimeRef.current?.runtime.dispose();
127
+ ownedRuntimeRef.current = null;
128
+ setManagedRuntime(null);
129
+ return;
95
130
  }
96
- if (!conversationIdProp) {
97
- return null;
131
+ if (!webChatReady || !managedRuntimeKey) {
132
+ setManagedRuntime(null);
133
+ return;
98
134
  }
99
- const result = novu.agentChat.conversation({
100
- agentId,
101
- conversationId: conversationIdProp,
102
- agentHash
103
- });
104
- return result.ok ? result.data : null;
105
- }, [sharedRuntime, novu, agentId, conversationIdProp, agentHash]);
106
- if (sharedRuntime || conversationIdProp) {
107
- ownedRuntimeRef.current?.runtime.dispose();
108
- ownedRuntimeRef.current = null;
109
- }
110
- const ownedRuntime = sharedRuntime || conversationIdProp ? null : resolveOwnedRuntime({ novu, agentId, agentHash, ownedRuntimeRef });
111
- const runtime = sharedRuntime ?? cachedRuntime ?? ownedRuntime;
112
- useEffect(() => {
135
+ const key = managedRuntimeKey;
136
+ const current = ownedRuntimeRef.current;
137
+ let runtime2;
138
+ if (current?.novu === novu && current.key === key) {
139
+ runtime2 = current.runtime;
140
+ } else {
141
+ current?.runtime.dispose();
142
+ runtime2 = conversationIdProp ? novu.webChat.conversation({ agentId, conversationId: conversationIdProp, agentHash }) : novu.webChat.conversation({ agentId, agentHash });
143
+ ownedRuntimeRef.current = { key, novu, runtime: runtime2 };
144
+ }
145
+ setManagedRuntime({ key, runtime: runtime2 });
113
146
  return () => {
114
147
  ownedRuntimeRef.current?.runtime.dispose();
115
148
  ownedRuntimeRef.current = null;
149
+ setManagedRuntime(null);
116
150
  };
117
- }, []);
151
+ }, [webChatReady, sharedRuntime, novu, agentId, conversationIdProp, agentHash, createEpoch, managedRuntimeKey]);
152
+ const runtime = sharedRuntime ?? (managedRuntime?.key === managedRuntimeKey ? managedRuntime.runtime : null);
118
153
  const loadNotifiedRef = useRef(false);
119
154
  const replayedActionsRef = useRef(false);
120
155
  const notifiedCatchUpErrorRef = useRef();
@@ -162,7 +197,12 @@ var useAgentChat = (props) => {
162
197
  const callRuntime = useCallback(
163
198
  async (action) => {
164
199
  if (!runtime) {
165
- return { error: void 0 };
200
+ const error = webChatLoadError ?? new NovuError(
201
+ isWebChatLoading ? "Web Chat is still loading" : "Web Chat runtime is unavailable",
202
+ new Error("Web Chat runtime is not ready")
203
+ );
204
+ propsRef.current.onError?.(error);
205
+ return { error };
166
206
  }
167
207
  const response = await action(runtime);
168
208
  if (response.error) {
@@ -170,7 +210,7 @@ var useAgentChat = (props) => {
170
210
  }
171
211
  return response;
172
212
  },
173
- [runtime, propsRef]
213
+ [runtime, webChatLoadError, isWebChatLoading, propsRef]
174
214
  );
175
215
  const refetch = useCallback(async () => {
176
216
  if (!runtime) {
@@ -204,7 +244,10 @@ var useAgentChat = (props) => {
204
244
  }),
205
245
  [snapshot.pagination.status, snapshot.pagination.hasMore, fetchMore]
206
246
  );
207
- const sendMessage = useCallback((text) => callRuntime((target) => target.sendMessage(text)), [callRuntime]);
247
+ const sendMessage = useCallback(
248
+ (input) => callRuntime((target) => target.sendMessage(input)),
249
+ [callRuntime]
250
+ );
208
251
  const respondToAction = useCallback(
209
252
  (args) => callRuntime((target) => target.respondToAction(args)),
210
253
  [callRuntime]
@@ -217,15 +260,20 @@ var useAgentChat = (props) => {
217
260
  (messageId) => callRuntime((target) => target.retryMessage(messageId)),
218
261
  [callRuntime]
219
262
  );
263
+ const startNewConversation = useCallback(() => {
264
+ if (sharedRuntime || conversationIdProp) {
265
+ return;
266
+ }
267
+ setCreateEpoch((epoch) => epoch + 1);
268
+ }, [sharedRuntime, conversationIdProp]);
220
269
  return {
221
270
  messages: [...snapshot.messages],
222
271
  pendingActions: [...snapshot.pendingActions],
223
272
  conversationId: snapshot.conversationId,
224
- error: snapshot.error,
225
- isLoading: snapshot.status === "loading",
273
+ error: webChatLoadError ?? snapshot.error,
274
+ isLoading: !webChatLoadError && (isWebChatLoading || snapshot.status === "loading"),
226
275
  isRunning: snapshot.run.isRunning,
227
276
  typing: snapshot.run.typing,
228
- status: snapshot.conversationStatus,
229
277
  conversationStatus: snapshot.conversationStatus,
230
278
  run: snapshot.run,
231
279
  pagination: paginationWithFetch,
@@ -235,10 +283,11 @@ var useAgentChat = (props) => {
235
283
  sendMessage,
236
284
  respondToAction,
237
285
  sendAction,
238
- retryMessage
286
+ retryMessage,
287
+ startNewConversation
239
288
  };
240
289
  };
241
290
  export {
242
- useAgentChat
291
+ useWebChat
243
292
  };
244
- //# sourceMappingURL=useAgentChat.js.map
293
+ //# sourceMappingURL=useWebChat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/hooks/useWebChat.ts"],"sourcesContent":["import type {\n AgentConversationPublicationMeta,\n AgentConversationRunSnapshot,\n AgentConversationRuntime,\n AgentConversationSnapshot,\n AgentConversationStatus,\n AgentEventEnvelope,\n AgentHashFields,\n AgentMessage,\n AgentPendingAction,\n AgentToolApprovalDecision,\n LoadConversationResult,\n RespondToActionResult,\n SendActionResult,\n SendMessageInput,\n SendMessageResult,\n WebChatPagination,\n WebChatPlanLimitError,\n} from '@novu/js';\nimport { NovuError } from '@novu/js';\nimport { type MutableRefObject, useCallback, useEffect, useMemo, useRef, useState, useSyncExternalStore } from 'react';\nimport { useDataRef } from './internal/useDataRef';\nimport { useNovu } from './NovuProvider';\n\ntype UseWebChatCallbacks = {\n onSuccess?: (data: LoadConversationResult) => void;\n onError?: (error: NovuError | WebChatPlanLimitError) => void;\n /**\n * Fires once when a message id first appears. History pages do not fire.\n * The first event of a turn can create an empty assistant message before text arrives.\n * A send that never reaches the server does not fire. The message status becomes `failed` instead.\n */\n onMessage?: (message: AgentMessage) => void;\n /**\n * Fires once per pending action, including actions still pending on mount.\n * Paging backwards does not fire.\n */\n onActionRequested?: (action: AgentPendingAction) => void;\n /**\n * Live event envelopes for this conversation.\n * Duplicates that the client drops do not fire.\n * Envelopes that arrive before the conversation id exists do not fire.\n * The message list in this render does not include this envelope yet.\n */\n onEvent?: (envelope: AgentEventEnvelope) => void;\n};\n\n/** Arguments for {@link useWebChat}. Pass `agentId`, or pass `conversation`. Do not mix the two. */\nexport type UseWebChatProps = UseWebChatCallbacks &\n AgentHashFields &\n (\n | {\n agentId: string;\n /**\n * Resume this conversation. The hook loads history on mount.\n * Omit this prop to start a new chat. The first send creates a conversation.\n */\n conversationId?: string;\n conversation?: never;\n }\n | {\n /** Share an existing conversation runtime across multiple hook instances. */\n conversation: AgentConversationRuntime;\n agentId?: never;\n conversationId?: never;\n agentHash?: never;\n }\n );\n\n/**\n * State and actions returned by {@link useWebChat}.\n * `sendMessage`, `respondToAction`, `sendAction`, and `retryMessage` resolve `{ data, error }` and never reject.\n * Inspect `error` on the result, or show hook `error`.\n */\nexport type UseWebChatResult = {\n /** Conversation timeline. */\n messages: AgentMessage[];\n /** Tool approvals and MCP connect items that are still pending. */\n pendingActions: AgentPendingAction[];\n /** Server conversation id after create or resume. */\n conversationId?: string;\n /** Last error from load, send, retry, or action. Mutations also return `{ error }` for that call. */\n error?: NovuError | WebChatPlanLimitError;\n /** True while Web Chat loads and, for an existing conversation, until the first history fetch completes. */\n isLoading: boolean;\n /** True while the agent turn is in progress. Same as `run.isRunning`. */\n isRunning: boolean;\n /** Typing indicator. Same as `run.typing`. Absent when the agent is not typing. */\n typing?: AgentConversationRunSnapshot['typing'];\n /** `'active'` or `'resolved'`. The agent sets `resolved` with `ctx.resolve()`. Not a loading flag. */\n conversationStatus: AgentConversationStatus;\n /** Current agent-run snapshot. */\n run: AgentConversationRunSnapshot;\n /** Older-history control. Not a top-level `hasMore` or `fetchMore`. */\n pagination: WebChatPagination & {\n fetchMore: () => Promise<{\n data?: { messages: AgentMessage[]; hasMore: boolean };\n error?: NovuError;\n }>;\n };\n /** True while reconnect recovery is in progress. */\n isRecovering: boolean;\n /** Set when reconnect recovery fails. Separate from send and fetch `error`. */\n catchUpError?: NovuError;\n /** Reload the newest history page. No-op when there is no conversation id. */\n refetch: () => Promise<void>;\n /**\n * Send a user message. `input` is a string, or `{ text, metadata }`. Creates a conversation when `conversationId` is omitted.\n * Does not throw. Resolves `{ data, error }`. Inspect `error` on the result, or show hook `error`.\n */\n sendMessage: (input: SendMessageInput) => Promise<{\n data?: SendMessageResult;\n error?: NovuError | WebChatPlanLimitError;\n }>;\n /**\n * Resolve a pending `approval`. Pass `approvalId` from `pendingActions` or message parts.\n * Does not throw. Resolves `{ data, error }`. Inspect `error` on the result, or show hook `error`.\n */\n respondToAction: (args: { approvalId: string; decision: AgentToolApprovalDecision }) => Promise<{\n data?: RespondToActionResult;\n error?: NovuError | WebChatPlanLimitError;\n }>;\n /**\n * Click a Card button. Do not use this for tool approval.\n * Does not throw. Resolves `{ data, error }`. Inspect `error` on the result, or show hook `error`.\n */\n sendAction: (args: { actionId: string; sourceMessageId: string; value?: string }) => Promise<{\n data?: SendActionResult;\n error?: NovuError | WebChatPlanLimitError;\n }>;\n /**\n * Resend a message whose `status` is `failed`. Reuses the original idempotency key.\n * Does not throw. Resolves `{ data, error }`. Inspect `error` on the result, or show hook `error`.\n */\n retryMessage: (messageId: string) => Promise<{\n data?: SendMessageResult;\n error?: NovuError | WebChatPlanLimitError;\n }>;\n /**\n * Start a new empty chat for the current `agentId`. The next `sendMessage` creates the server conversation.\n * No-op when `conversationId` or `conversation` is provided.\n */\n startNewConversation: () => void;\n};\n\nconst EMPTY_SERVER_SNAPSHOT = {\n key: 'ssr',\n status: 'loading',\n run: { isRunning: false },\n conversationStatus: 'active',\n pagination: { hasMore: false, status: 'idle' },\n messages: [],\n pendingActions: [],\n isRecovering: false,\n} as AgentConversationSnapshot;\n\ntype RuntimeActionResult<T> = {\n data?: T;\n error?: NovuError | WebChatPlanLimitError;\n};\n\nfunction handlePublicationCallbacks(args: {\n snapshot: AgentConversationSnapshot;\n meta: AgentConversationPublicationMeta | undefined;\n conversationIdProp: string | undefined;\n propsRef: ReturnType<typeof useDataRef<UseWebChatProps>>;\n loadNotifiedRef: MutableRefObject<boolean>;\n notifiedCatchUpErrorRef: MutableRefObject<NovuError | undefined>;\n lastReportedErrorKeyRef: MutableRefObject<string | undefined>;\n}): void {\n const {\n snapshot,\n meta,\n conversationIdProp,\n propsRef,\n loadNotifiedRef,\n notifiedCatchUpErrorRef,\n lastReportedErrorKeyRef,\n } = args;\n\n if ((meta?.historyLoaded || meta?.change?.kind === 'history') && !loadNotifiedRef.current && conversationIdProp) {\n if (snapshot.conversationId) {\n loadNotifiedRef.current = true;\n propsRef.current.onSuccess?.({\n conversationId: snapshot.conversationId,\n messages: [...snapshot.messages],\n hasMore: snapshot.pagination.hasMore,\n });\n }\n }\n\n if (snapshot.catchUpError && snapshot.catchUpError !== notifiedCatchUpErrorRef.current) {\n notifiedCatchUpErrorRef.current = snapshot.catchUpError;\n propsRef.current.onError?.(snapshot.catchUpError);\n } else if (!snapshot.catchUpError) {\n notifiedCatchUpErrorRef.current = undefined;\n }\n\n if (snapshot.error) {\n const originalMessage = 'originalError' in snapshot.error ? (snapshot.error.originalError?.message ?? '') : '';\n const errorKey = `${snapshot.error.message}:${originalMessage}`;\n if (lastReportedErrorKeyRef.current !== errorKey) {\n lastReportedErrorKeyRef.current = errorKey;\n propsRef.current.onError?.(snapshot.error as NovuError | WebChatPlanLimitError);\n }\n } else {\n lastReportedErrorKeyRef.current = undefined;\n }\n\n const change = meta?.change;\n if (change?.kind === 'live') {\n propsRef.current.onEvent?.(change.envelope);\n }\n\n if (change && change.kind !== 'history') {\n for (const message of change.addedMessages) {\n propsRef.current.onMessage?.(message);\n }\n }\n\n if (change) {\n for (const action of change.newActions) {\n propsRef.current.onActionRequested?.(action);\n }\n }\n}\n\ntype OwnedRuntimeEntry = {\n key: string;\n novu: ReturnType<typeof useNovu>;\n runtime: AgentConversationRuntime;\n};\n\nfunction getCreateFlowKey(agentId: string, agentHash?: string): string {\n return `${agentId}\\0${agentHash ?? ''}`;\n}\n\nfunction getManagedRuntimeKey(\n agentId: string,\n agentHash: string | undefined,\n conversationIdProp: string | undefined,\n createEpoch: number\n): string {\n if (conversationIdProp) {\n return `resume:${agentId}\\0${agentHash ?? ''}\\0${conversationIdProp}`;\n }\n\n return `${getCreateFlowKey(agentId, agentHash)}\\0${createEpoch}`;\n}\n\ntype ManagedRuntimeEntry = {\n key: string;\n runtime: AgentConversationRuntime;\n};\n\ntype WebChatLoadState =\n | { novu: ReturnType<typeof useNovu>; status: 'loading' }\n | { novu: ReturnType<typeof useNovu>; status: 'ready' }\n | { novu: ReturnType<typeof useNovu>; status: 'error'; error: NovuError };\n\nfunction toNovuError(error: unknown): NovuError {\n if (error instanceof NovuError) {\n return error;\n }\n\n if (error instanceof Error) {\n return new NovuError('Failed to load Web Chat', error);\n }\n\n return new NovuError('Failed to load Web Chat', new Error(String(error)));\n}\n\n/**\n * Headless Web Chat client. Use it inside `NovuProvider`.\n *\n * @example\n * ```tsx\n * const { messages, sendMessage, isRunning, isLoading, error } = useWebChat({\n * agentId: 'YOUR_AGENT_IDENTIFIER',\n * });\n * ```\n */\nexport const useWebChat = (props: UseWebChatProps): UseWebChatResult => {\n const novu = useNovu();\n const propsRef = useDataRef(props);\n const [loadState, setLoadState] = useState<WebChatLoadState>(() => ({\n novu,\n status: 'loading',\n }));\n\n useEffect(() => {\n let cancelled = false;\n\n if (!novu.isWebChatLoaded) {\n setLoadState({ novu, status: 'loading' });\n }\n\n void novu\n .loadWebChat()\n .then(() => {\n if (!cancelled) {\n setLoadState({ novu, status: 'ready' });\n }\n })\n .catch((error: unknown) => {\n if (cancelled) {\n return;\n }\n\n const novuError = toNovuError(error);\n propsRef.current.onError?.(novuError);\n setLoadState({ novu, status: 'error', error: novuError });\n });\n\n return () => {\n cancelled = true;\n };\n }, [novu, propsRef]);\n\n const webChatReady = loadState.novu === novu && loadState.status === 'ready';\n const webChatLoadError = loadState.novu === novu && loadState.status === 'error' ? loadState.error : undefined;\n const isWebChatLoading = loadState.novu !== novu || loadState.status === 'loading';\n\n const sharedRuntime = 'conversation' in props ? props.conversation : undefined;\n const agentId = sharedRuntime?.agentId ?? props.agentId!;\n const conversationIdProp = sharedRuntime ? undefined : props.conversationId;\n const agentHash = sharedRuntime ? undefined : props.agentHash;\n\n const ownedRuntimeRef = useRef<OwnedRuntimeEntry | null>(null);\n const [managedRuntime, setManagedRuntime] = useState<ManagedRuntimeEntry | null>(null);\n const [createEpoch, setCreateEpoch] = useState(0);\n const managedRuntimeKey = sharedRuntime\n ? null\n : getManagedRuntimeKey(agentId, agentHash, conversationIdProp, createEpoch);\n\n useEffect(() => {\n if (sharedRuntime) {\n ownedRuntimeRef.current?.runtime.dispose();\n ownedRuntimeRef.current = null;\n setManagedRuntime(null);\n\n return;\n }\n\n if (!webChatReady || !managedRuntimeKey) {\n setManagedRuntime(null);\n\n return;\n }\n\n const key = managedRuntimeKey;\n const current = ownedRuntimeRef.current;\n\n let runtime: AgentConversationRuntime;\n if (current?.novu === novu && current.key === key) {\n runtime = current.runtime;\n } else {\n current?.runtime.dispose();\n runtime = conversationIdProp\n ? novu.webChat.conversation({ agentId, conversationId: conversationIdProp, agentHash })\n : novu.webChat.conversation({ agentId, agentHash });\n ownedRuntimeRef.current = { key, novu, runtime };\n }\n\n setManagedRuntime({ key, runtime });\n\n return () => {\n ownedRuntimeRef.current?.runtime.dispose();\n ownedRuntimeRef.current = null;\n setManagedRuntime(null);\n };\n }, [webChatReady, sharedRuntime, novu, agentId, conversationIdProp, agentHash, createEpoch, managedRuntimeKey]);\n\n const runtime =\n sharedRuntime ?? (managedRuntime?.key === managedRuntimeKey ? managedRuntime.runtime : null);\n\n const loadNotifiedRef = useRef(false);\n const replayedActionsRef = useRef(false);\n const notifiedCatchUpErrorRef = useRef<NovuError | undefined>();\n const lastReportedErrorKeyRef = useRef<string>();\n\n useEffect(() => {\n loadNotifiedRef.current = false;\n replayedActionsRef.current = false;\n notifiedCatchUpErrorRef.current = undefined;\n lastReportedErrorKeyRef.current = undefined;\n }, [runtime]);\n\n const subscribe = useCallback(\n (onStoreChange: () => void) => {\n if (!runtime) {\n return () => {};\n }\n\n if (!replayedActionsRef.current) {\n replayedActionsRef.current = true;\n for (const action of runtime.getSnapshot().pendingActions) {\n propsRef.current.onActionRequested?.(action);\n }\n }\n\n return runtime.subscribe((snapshot, meta) => {\n onStoreChange();\n handlePublicationCallbacks({\n snapshot,\n meta,\n conversationIdProp,\n propsRef,\n loadNotifiedRef,\n notifiedCatchUpErrorRef,\n lastReportedErrorKeyRef,\n });\n });\n },\n [runtime, conversationIdProp, propsRef]\n );\n\n const getSnapshot = useCallback(() => {\n return runtime?.getSnapshot() ?? EMPTY_SERVER_SNAPSHOT;\n }, [runtime]);\n\n const getServerSnapshot = useCallback(() => {\n return runtime?.getServerSnapshot() ?? EMPTY_SERVER_SNAPSHOT;\n }, [runtime]);\n\n const snapshot = useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n\n const callRuntime = useCallback(\n async <T>(action: (target: AgentConversationRuntime) => Promise<RuntimeActionResult<T>>) => {\n if (!runtime) {\n const error =\n webChatLoadError ??\n new NovuError(\n isWebChatLoading ? 'Web Chat is still loading' : 'Web Chat runtime is unavailable',\n new Error('Web Chat runtime is not ready')\n );\n propsRef.current.onError?.(error);\n\n return { error };\n }\n\n const response = await action(runtime);\n if (response.error) {\n propsRef.current.onError?.(response.error);\n }\n\n return response;\n },\n [runtime, webChatLoadError, isWebChatLoading, propsRef]\n );\n\n const refetch = useCallback(async () => {\n if (!runtime) {\n return;\n }\n\n const response = await runtime.load();\n if (response.data) {\n propsRef.current.onSuccess?.({\n conversationId: response.data.conversationId,\n messages: [...response.data.messages],\n hasMore: response.data.hasMore,\n });\n }\n }, [runtime, propsRef]);\n\n const fetchMore = useCallback(async () => {\n const response = await callRuntime((target) => target.fetchMore());\n\n return {\n ...response,\n error: response.error as NovuError | undefined,\n data: response.data\n ? {\n messages: [...response.data.messages],\n hasMore: response.data.hasMore,\n }\n : undefined,\n };\n }, [callRuntime]);\n\n const paginationWithFetch = useMemo(\n () => ({\n status: snapshot.pagination.status,\n hasMore: snapshot.pagination.hasMore,\n fetchMore,\n }),\n [snapshot.pagination.status, snapshot.pagination.hasMore, fetchMore]\n );\n\n const sendMessage = useCallback(\n (input: SendMessageInput) => callRuntime((target) => target.sendMessage(input)),\n [callRuntime]\n );\n const respondToAction = useCallback(\n (args: { approvalId: string; decision: AgentToolApprovalDecision }) =>\n callRuntime((target) => target.respondToAction(args)),\n [callRuntime]\n );\n const sendAction = useCallback(\n (args: { actionId: string; sourceMessageId: string; value?: string }) =>\n callRuntime((target) => target.sendAction(args)),\n [callRuntime]\n );\n const retryMessage = useCallback(\n (messageId: string) => callRuntime((target) => target.retryMessage(messageId)),\n [callRuntime]\n );\n const startNewConversation = useCallback(() => {\n if (sharedRuntime || conversationIdProp) {\n return;\n }\n\n setCreateEpoch((epoch) => epoch + 1);\n }, [sharedRuntime, conversationIdProp]);\n\n return {\n messages: [...snapshot.messages],\n pendingActions: [...snapshot.pendingActions],\n conversationId: snapshot.conversationId,\n error: webChatLoadError ?? (snapshot.error as UseWebChatResult['error']),\n isLoading: !webChatLoadError && (isWebChatLoading || snapshot.status === 'loading'),\n isRunning: snapshot.run.isRunning,\n typing: snapshot.run.typing,\n conversationStatus: snapshot.conversationStatus,\n run: snapshot.run,\n pagination: paginationWithFetch,\n isRecovering: snapshot.isRecovering,\n catchUpError: snapshot.catchUpError,\n refetch,\n sendMessage,\n respondToAction,\n sendAction,\n retryMessage,\n startNewConversation,\n };\n};\n"],"mappings":"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","names":["runtime","snapshot"]}
@@ -1,5 +1,5 @@
1
1
  export * from '@novu/js';
2
- export { PreferenceLevel, SeverityLevelEnum, WorkflowCriticalityEnum } from '@novu/js';
2
+ export { PreferenceLevel, SeverityLevelEnum, WorkflowCriticalityEnum, pendingActionKey } from '@novu/js';
3
3
  export { AllLocalization, AllLocalizationKey, ChannelConnectButtonIconKey, ElementStyles, InboxAppearance, InboxAppearanceCallback, InboxAppearanceCallbackFunction, InboxAppearanceCallbackKeys, InboxAppearanceKey, InboxElements, InboxLocalization, InboxLocalizationKey, InboxTheme, NotificationActionClickHandler, NotificationClickHandler, NotificationRenderer, PreferenceGroups, PreferencesFilter, RouterPush, SubscriptionAppearance, SubscriptionAppearanceCallback, SubscriptionAppearanceCallbackFunction, SubscriptionAppearanceCallbackKeys, SubscriptionAppearanceKey, SubscriptionElements, SubscriptionLocalization, SubscriptionLocalizationKey, SubscriptionTheme, Tab, Variables } from '@novu/js/ui';
4
4
  export { NovuProvider, NovuProviderProps, useNovu } from './hooks/NovuProvider.js';
5
5
  export { Bell, BellProps } from './components/Bell.js';
@@ -15,7 +15,7 @@ export { Subscription, SubscriptionProps } from './components/subscription/Subsc
15
15
  export { SubscriptionButton, SubscriptionButtonProps } from './components/subscription/SubscriptionButton.js';
16
16
  export { SubscriptionPreferences, SubscriptionPreferencesProps } from './components/subscription/SubscriptionPreferences.js';
17
17
  export { TelegramConnectButton, TelegramConnectButtonProps } from './components/telegram-connect-button/TelegramConnectButton.js';
18
- export { UseAgentChatProps, UseAgentChatResult, useAgentChat } from './hooks/useAgentChat.js';
18
+ export { UseWebChatProps, UseWebChatResult, useWebChat } from './hooks/useWebChat.js';
19
19
  export { UseChannelConnectionProps, UseChannelConnectionResult, useChannelConnection } from './hooks/useChannelConnection.js';
20
20
  export { UseChannelConnectionsProps, UseChannelConnectionsResult, useChannelConnections } from './hooks/useChannelConnections.js';
21
21
  export { UseChannelEndpointProps, UseChannelEndpointResult, useChannelEndpoint } from './hooks/useChannelEndpoint.js';
package/dist/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // src/index.ts
2
- import { PreferenceLevel, SeverityLevelEnum, WorkflowCriticalityEnum } from "@novu/js";
2
+ import { pendingActionKey, PreferenceLevel, SeverityLevelEnum, WorkflowCriticalityEnum } from "@novu/js";
3
3
  import {
4
4
  Bell,
5
5
  Inbox,
@@ -17,7 +17,7 @@ import {
17
17
  TelegramConnectButton
18
18
  } from "./components/index.js";
19
19
  import {
20
- useAgentChat,
20
+ useWebChat,
21
21
  useChannelConnection,
22
22
  useChannelConnections,
23
23
  useChannelEndpoint,
@@ -53,7 +53,7 @@ export {
53
53
  SubscriptionPreferences,
54
54
  TelegramConnectButton,
55
55
  WorkflowCriticalityEnum,
56
- useAgentChat,
56
+ pendingActionKey,
57
57
  useChannelConnection,
58
58
  useChannelConnections,
59
59
  useChannelEndpoint,
@@ -69,6 +69,7 @@ export {
69
69
  useSubscription,
70
70
  useSubscriptions,
71
71
  useTelegramSubscriberLink,
72
- useUpdateSubscription
72
+ useUpdateSubscription,
73
+ useWebChat
73
74
  };
74
75
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["export type * from '@novu/js';\nexport { PreferenceLevel, SeverityLevelEnum, WorkflowCriticalityEnum } from '@novu/js';\n\nexport type {\n AllLocalization,\n AllLocalizationKey,\n ChannelConnectButtonIconKey,\n ElementStyles,\n InboxAppearance,\n InboxAppearanceCallback,\n InboxAppearanceCallbackFunction,\n InboxAppearanceCallbackKeys,\n InboxAppearanceKey,\n InboxElements,\n InboxLocalization,\n InboxLocalizationKey,\n InboxTheme,\n NotificationActionClickHandler,\n NotificationClickHandler,\n NotificationRenderer,\n PreferenceGroups,\n PreferencesFilter,\n RouterPush,\n SubscriptionAppearance,\n SubscriptionAppearanceCallback,\n SubscriptionAppearanceCallbackFunction,\n SubscriptionAppearanceCallbackKeys,\n SubscriptionAppearanceKey,\n SubscriptionElements,\n SubscriptionLocalization,\n SubscriptionLocalizationKey,\n SubscriptionTheme,\n Tab,\n Variables,\n} from '@novu/js/ui';\nexport type {\n BellProps,\n InboxContentProps,\n InboxProps,\n MsTeamsConnectButtonProps,\n MsTeamsLinkUserProps,\n NotificationProps,\n NovuProviderProps,\n SlackConnectButtonProps,\n SlackLinkUserProps,\n SubscriptionButtonProps,\n SubscriptionPreferencesProps,\n SubscriptionProps,\n TelegramConnectButtonProps,\n} from './components';\nexport {\n Bell,\n Inbox,\n InboxContent,\n MsTeamsConnectButton,\n MsTeamsLinkUser,\n Notifications,\n NovuProvider,\n Preferences,\n SlackConnectButton,\n SlackLinkUser,\n Subscription,\n SubscriptionButton,\n SubscriptionPreferences,\n TelegramConnectButton,\n} from './components';\nexport type {\n UseAgentChatProps,\n UseAgentChatResult,\n UseChannelConnectionProps,\n UseChannelConnectionResult,\n UseChannelConnectionsProps,\n UseChannelConnectionsResult,\n UseChannelEndpointProps,\n UseChannelEndpointResult,\n UseCountsProps,\n UseCountsResult,\n UseCreateChannelEndpointProps,\n UseCreateChannelEndpointResult,\n UseDeleteChannelEndpointProps,\n UseDeleteChannelEndpointResult,\n UseNotificationsProps,\n UseNotificationsResult,\n UsePreferencesResult,\n UseScheduleProps as UsePreferencesProps,\n UseTelegramSubscriberLinkProps,\n UseTelegramSubscriberLinkResult,\n} from './hooks';\nexport {\n useAgentChat,\n useChannelConnection,\n useChannelConnections,\n useChannelEndpoint,\n useCounts,\n useCreateChannelEndpoint,\n useCreateSubscription,\n useDeleteChannelEndpoint,\n useNotifications,\n useNovu,\n usePreferences,\n useRemoveSubscription,\n useSchedule,\n useSubscription,\n useSubscriptions,\n useTelegramSubscriberLink,\n useUpdateSubscription,\n} from './hooks';\n\nexport type {\n BaseProps,\n BellRenderer,\n BodyRenderer,\n DefaultInboxProps,\n DefaultProps,\n NoRendererProps,\n NotificationRendererProps,\n NotificationsRenderer,\n ReactAllAppearance,\n ReactInboxAppearance,\n ReactInboxTheme,\n ReactSubscriptionAppearance,\n ReactSubscriptionTheme,\n SubjectBodyRendererProps,\n SubjectRenderer,\n WithChildrenProps,\n} from './utils/types';\n"],"mappings":";AACA,SAAS,iBAAiB,mBAAmB,+BAA+B;AAiD5E;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAuBP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;","names":[]}
1
+ {"version":3,"sources":["../../src/index.ts"],"sourcesContent":["export type * from '@novu/js';\nexport { pendingActionKey, PreferenceLevel, SeverityLevelEnum, WorkflowCriticalityEnum } from '@novu/js';\n\nexport type {\n AllLocalization,\n AllLocalizationKey,\n ChannelConnectButtonIconKey,\n ElementStyles,\n InboxAppearance,\n InboxAppearanceCallback,\n InboxAppearanceCallbackFunction,\n InboxAppearanceCallbackKeys,\n InboxAppearanceKey,\n InboxElements,\n InboxLocalization,\n InboxLocalizationKey,\n InboxTheme,\n NotificationActionClickHandler,\n NotificationClickHandler,\n NotificationRenderer,\n PreferenceGroups,\n PreferencesFilter,\n RouterPush,\n SubscriptionAppearance,\n SubscriptionAppearanceCallback,\n SubscriptionAppearanceCallbackFunction,\n SubscriptionAppearanceCallbackKeys,\n SubscriptionAppearanceKey,\n SubscriptionElements,\n SubscriptionLocalization,\n SubscriptionLocalizationKey,\n SubscriptionTheme,\n Tab,\n Variables,\n} from '@novu/js/ui';\nexport type {\n BellProps,\n InboxContentProps,\n InboxProps,\n MsTeamsConnectButtonProps,\n MsTeamsLinkUserProps,\n NotificationProps,\n NovuProviderProps,\n SlackConnectButtonProps,\n SlackLinkUserProps,\n SubscriptionButtonProps,\n SubscriptionPreferencesProps,\n SubscriptionProps,\n TelegramConnectButtonProps,\n} from './components';\nexport {\n Bell,\n Inbox,\n InboxContent,\n MsTeamsConnectButton,\n MsTeamsLinkUser,\n Notifications,\n NovuProvider,\n Preferences,\n SlackConnectButton,\n SlackLinkUser,\n Subscription,\n SubscriptionButton,\n SubscriptionPreferences,\n TelegramConnectButton,\n} from './components';\nexport type {\n UseWebChatProps,\n UseWebChatResult,\n UseChannelConnectionProps,\n UseChannelConnectionResult,\n UseChannelConnectionsProps,\n UseChannelConnectionsResult,\n UseChannelEndpointProps,\n UseChannelEndpointResult,\n UseCountsProps,\n UseCountsResult,\n UseCreateChannelEndpointProps,\n UseCreateChannelEndpointResult,\n UseDeleteChannelEndpointProps,\n UseDeleteChannelEndpointResult,\n UseNotificationsProps,\n UseNotificationsResult,\n UsePreferencesResult,\n UseScheduleProps as UsePreferencesProps,\n UseTelegramSubscriberLinkProps,\n UseTelegramSubscriberLinkResult,\n} from './hooks';\nexport {\n useWebChat,\n useChannelConnection,\n useChannelConnections,\n useChannelEndpoint,\n useCounts,\n useCreateChannelEndpoint,\n useCreateSubscription,\n useDeleteChannelEndpoint,\n useNotifications,\n useNovu,\n usePreferences,\n useRemoveSubscription,\n useSchedule,\n useSubscription,\n useSubscriptions,\n useTelegramSubscriberLink,\n useUpdateSubscription,\n} from './hooks';\n\nexport type {\n BaseProps,\n BellRenderer,\n BodyRenderer,\n DefaultInboxProps,\n DefaultProps,\n NoRendererProps,\n NotificationRendererProps,\n NotificationsRenderer,\n ReactAllAppearance,\n ReactInboxAppearance,\n ReactInboxTheme,\n ReactSubscriptionAppearance,\n ReactSubscriptionTheme,\n SubjectBodyRendererProps,\n SubjectRenderer,\n WithChildrenProps,\n} from './utils/types';\n"],"mappings":";AACA,SAAS,kBAAkB,iBAAiB,mBAAmB,+BAA+B;AAiD9F;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAuBP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;","names":[]}
@@ -1,9 +1,9 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { InboxProps } from '../components/Inbox.js';
3
3
  export * from '@novu/js';
4
- export { PreferenceLevel, SeverityLevelEnum, WorkflowCriticalityEnum } from '@novu/js';
4
+ export { PreferenceLevel, SeverityLevelEnum, WorkflowCriticalityEnum, pendingActionKey } from '@novu/js';
5
5
  import { NovuProviderProps } from '../hooks/NovuProvider.js';
6
- import { UseAgentChatProps, UseAgentChatResult } from '../hooks/useAgentChat.js';
6
+ import { UseWebChatProps, UseWebChatResult } from '../hooks/useWebChat.js';
7
7
  import { UseCountsProps, UseCountsResult } from '../hooks/useCounts.js';
8
8
  import { UseCreateSubscriptionProps, UseCreateSubscriptionResult } from '../hooks/useCreateSubscription.js';
9
9
  import { UseNotificationsProps, UseNotificationsResult } from '../hooks/useNotifications.js';
@@ -41,7 +41,7 @@ declare function MsTeamsConnectButton(): react_jsx_runtime.JSX.Element;
41
41
  declare function MsTeamsLinkUser(): react_jsx_runtime.JSX.Element;
42
42
  declare function TelegramConnectButton(): react_jsx_runtime.JSX.Element;
43
43
  declare function useNovu(): null;
44
- declare function useAgentChat(_: UseAgentChatProps): UseAgentChatResult;
44
+ declare function useWebChat(_: UseWebChatProps): UseWebChatResult;
45
45
  declare function useCounts(_: UseCountsProps): UseCountsResult;
46
46
  declare function useNotifications(_: UseNotificationsProps): UseNotificationsResult;
47
47
  declare function usePreferences(_: UsePreferencesProps): UsePreferencesResult;
@@ -52,4 +52,4 @@ declare function useUpdateSubscription(_?: UseUpdateSubscriptionProps): UseUpdat
52
52
  declare function useRemoveSubscription(_?: UseRemoveSubscriptionProps): UseRemoveSubscriptionResult;
53
53
  declare function useSubscriptions(_: UseSubscriptionsProps): UseSubscriptionsResult;
54
54
 
55
- export { Bell, Inbox, InboxContent, InboxProps, MsTeamsConnectButton, MsTeamsLinkUser, Notifications, NovuProvider, NovuProviderProps, Preferences, SlackConnectButton, SlackLinkUser, Subscription, SubscriptionButton, SubscriptionPreferences, TelegramConnectButton, UseAgentChatProps, UseAgentChatResult, UseCountsProps, UseCountsResult, UseNotificationsProps, UseNotificationsResult, UseScheduleProps as UsePreferencesProps, UsePreferencesResult, useAgentChat, useCounts, useCreateSubscription, useNotifications, useNovu, usePreferences, useRemoveSubscription, useSchedule, useSubscription, useSubscriptions, useUpdateSubscription };
55
+ export { Bell, Inbox, InboxContent, InboxProps, MsTeamsConnectButton, MsTeamsLinkUser, Notifications, NovuProvider, NovuProviderProps, Preferences, SlackConnectButton, SlackLinkUser, Subscription, SubscriptionButton, SubscriptionPreferences, TelegramConnectButton, UseCountsProps, UseCountsResult, UseNotificationsProps, UseNotificationsResult, UseScheduleProps as UsePreferencesProps, UsePreferencesResult, UseWebChatProps, UseWebChatResult, useCounts, useCreateSubscription, useNotifications, useNovu, usePreferences, useRemoveSubscription, useSchedule, useSubscription, useSubscriptions, useUpdateSubscription, useWebChat };