@chatwidgetai/chat-widget 0.3.6 → 0.3.8

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.
Files changed (44) hide show
  1. package/dist/ai-chat-widget.umd.js +1562 -1380
  2. package/dist/ai-chat-widget.umd.js.map +1 -1
  3. package/dist/api/client.d.ts +12 -2
  4. package/dist/api/client.d.ts.map +1 -1
  5. package/dist/components/ChatWidget/hooks/useWidgetAppearance.d.ts +37 -0
  6. package/dist/components/ChatWidget/hooks/useWidgetAppearance.d.ts.map +1 -0
  7. package/dist/components/ChatWidget/icons.d.ts +2 -0
  8. package/dist/components/ChatWidget/icons.d.ts.map +1 -0
  9. package/dist/components/ChatWidget/parts/WidgetTriggers.d.ts +25 -0
  10. package/dist/components/ChatWidget/parts/WidgetTriggers.d.ts.map +1 -0
  11. package/dist/components/ChatWidget.d.ts.map +1 -1
  12. package/dist/components/ChatWindow.d.ts +4 -1
  13. package/dist/components/ChatWindow.d.ts.map +1 -1
  14. package/dist/components/WelcomeBubble.d.ts +12 -0
  15. package/dist/components/WelcomeBubble.d.ts.map +1 -0
  16. package/dist/components/icons.d.ts +21 -0
  17. package/dist/components/icons.d.ts.map +1 -0
  18. package/dist/components/triggers/ButtonTrigger.d.ts +11 -0
  19. package/dist/components/triggers/ButtonTrigger.d.ts.map +1 -0
  20. package/dist/components/triggers/InputBarTrigger.d.ts +18 -0
  21. package/dist/components/triggers/InputBarTrigger.d.ts.map +1 -0
  22. package/dist/components/triggers/PillTrigger.d.ts +12 -0
  23. package/dist/components/triggers/PillTrigger.d.ts.map +1 -0
  24. package/dist/components/triggers/index.d.ts +8 -0
  25. package/dist/components/triggers/index.d.ts.map +1 -0
  26. package/dist/hooks/useChat/action-handler.d.ts +17 -1
  27. package/dist/hooks/useChat/action-handler.d.ts.map +1 -1
  28. package/dist/hooks/useChat/index.d.ts +5 -0
  29. package/dist/hooks/useChat/index.d.ts.map +1 -1
  30. package/dist/hooks/useChat/message-hydration.d.ts.map +1 -1
  31. package/dist/hooks/useChat/stream-buffer.d.ts +18 -0
  32. package/dist/hooks/useChat/stream-buffer.d.ts.map +1 -0
  33. package/dist/hooks/useChat/stream-handlers.d.ts +3 -3
  34. package/dist/hooks/useChat/stream-handlers.d.ts.map +1 -1
  35. package/dist/hooks/useChat/stream-state.d.ts.map +1 -1
  36. package/dist/hooks/useChat/types.d.ts +2 -0
  37. package/dist/hooks/useChat/types.d.ts.map +1 -1
  38. package/dist/index.esm.js +1562 -1380
  39. package/dist/index.esm.js.map +1 -1
  40. package/dist/index.js +1562 -1380
  41. package/dist/index.js.map +1 -1
  42. package/dist/types/index.d.ts +5 -92
  43. package/dist/types/index.d.ts.map +1 -1
  44. package/package.json +1 -1
@@ -36,8 +36,17 @@ export declare class WidgetApiClient {
36
36
  size: number;
37
37
  }>;
38
38
  sendAgentMessageStream(conversationId: string, message: string, fileIds?: string[], signal?: AbortSignal): AsyncGenerator<StreamEvent>;
39
- continueAgentMessageStream(conversationId: string, toolCallId: string, state: Record<string, JsonValue>, signal?: AbortSignal): AsyncGenerator<StreamEvent>;
40
39
  dismissAgentMessageStream(conversationId: string, toolCallId: string, signal?: AbortSignal): AsyncGenerator<StreamEvent>;
40
+ /**
41
+ * Continue agent after halting action completes
42
+ * Call this when frontend completes an action and wants to pass result back to agent
43
+ */
44
+ continueAgentAction(conversationId: string, toolCallId: string, body: Record<string, JsonValue>, signal?: AbortSignal): AsyncGenerator<StreamEvent>;
45
+ /**
46
+ * NEW: Call action endpoint (frontend-owned flow)
47
+ * Used for multi-step actions like booking appointments
48
+ */
49
+ callActionEndpoint<T = unknown>(actionId: string, endpoint: string, input: Record<string, unknown>, token?: string): Promise<T>;
41
50
  /**
42
51
  * Submit feedback for a message
43
52
  */
@@ -48,7 +57,8 @@ export declare class WidgetApiClient {
48
57
  }): Promise<void>;
49
58
  /**
50
59
  * Generate follow-up suggestions based on conversation context and available actions.
51
- * Called by the frontend after receiving a "done" event from the agent.
60
+ * @deprecated Follow-ups are now generated server-side in parallel and included in the done event.
61
+ * This method is kept for backwards compatibility but is no longer called by the widget.
52
62
  */
53
63
  generateFollowUps(messages: ConversationMessage[], actionIds: string[]): Promise<FollowUpSuggestion[]>;
54
64
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,WAAW,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEzG,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,QAAS,SAAQ,KAAK;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;gBAEV,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE;CAOpG;AAwDD,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,gBAAgB,CAAS;gBAErB,MAAM,EAAE,eAAe;IAKnC,OAAO,CAAC,MAAM,CAAC,cAAc;IAS7B,OAAO,CAAC,WAAW;IAInB;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;IAmBlC,uBAAuB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,mBAAmB,EAAE,CAAA;KAAE,CAAC;IA0BhH;;OAEG;IACG,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAqBtG,sBAAsB,CAC3B,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,EAAE,EAClB,MAAM,CAAC,EAAE,WAAW,GACnB,cAAc,CAAC,WAAW,CAAC;IAgCvB,0BAA0B,CAC/B,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAChC,MAAM,CAAC,EAAE,WAAW,GACnB,cAAc,CAAC,WAAW,CAAC;IAgCvB,yBAAyB,CAC9B,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,WAAW,GACnB,cAAc,CAAC,WAAW,CAAC;IAqC9B;;OAEG;IACG,cAAc,CAClB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,UAAU,GAAG,UAAU,EACjC,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7D,OAAO,CAAC,IAAI,CAAC;IA8BhB;;;OAGG;IACG,iBAAiB,CACrB,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,SAAS,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAoChC;;;OAGG;IACG,sBAAsB,CAC1B,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAuB5C;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;CAqBzC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import type { CSSProperties, RefObject } from "react";
2
+ import type { WidgetConfig, TriggerType } from "../../../types";
3
+ interface UseWidgetAppearanceParams {
4
+ containerRef: RefObject<HTMLDivElement | null>;
5
+ config: WidgetConfig | null;
6
+ theme?: "light" | "dark";
7
+ primaryColor?: string;
8
+ position?: string;
9
+ size?: string;
10
+ headerTitle?: string;
11
+ welcomeTitle?: string;
12
+ welcomeMessage?: string;
13
+ placeholder?: string;
14
+ welcomeBubbleText?: string;
15
+ triggerType?: TriggerType;
16
+ triggerText?: string;
17
+ customStyles?: CSSProperties;
18
+ zIndex?: number;
19
+ previewMode: boolean;
20
+ }
21
+ export declare function useWidgetAppearance({ containerRef, config, theme, primaryColor, position, size, headerTitle, welcomeTitle, welcomeMessage, placeholder, welcomeBubbleText, triggerType, triggerText, customStyles, zIndex, previewMode: _previewMode, }: UseWidgetAppearanceParams): {
22
+ effectiveTheme: "light" | "dark";
23
+ effectivePosition: string;
24
+ accentColor: string;
25
+ iconContrastColor: string | undefined;
26
+ effectiveSize: string;
27
+ effectiveHeaderTitle: string;
28
+ effectiveWelcomeTitle: string;
29
+ effectiveWelcomeMessage: string;
30
+ effectivePlaceholder: string;
31
+ effectiveWelcomeBubbleText: string;
32
+ effectiveTriggerType: TriggerType;
33
+ effectiveTriggerText: string;
34
+ mergedStyles: Record<string, string>;
35
+ };
36
+ export {};
37
+ //# sourceMappingURL=useWidgetAppearance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWidgetAppearance.d.ts","sourceRoot":"","sources":["../../../../src/components/ChatWidget/hooks/useWidgetAppearance.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAKhE,UAAU,yBAAyB;IACjC,YAAY,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC/C,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,mBAAmB,CAAC,EAClC,YAAY,EACZ,MAAM,EACN,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,IAAI,EACJ,WAAW,EACX,YAAY,EACZ,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,YAAY,EACZ,MAAM,EACN,WAAW,EAAE,YAAY,GAC1B,EAAE,yBAAyB;;;;;;;;;;;;;;EA+D3B"}
@@ -0,0 +1,2 @@
1
+ export { iconComponents } from "../icons";
2
+ //# sourceMappingURL=icons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../../src/components/ChatWidget/icons.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,25 @@
1
+ import React from "react";
2
+ import type { FormEvent, MouseEvent } from "react";
3
+ import type { TriggerType } from "../../../types";
4
+ interface WidgetTriggersProps {
5
+ triggerType: TriggerType;
6
+ isOpen: boolean;
7
+ onToggle: () => void;
8
+ triggerText: string;
9
+ placeholder: string;
10
+ IconComponent: () => React.ReactElement;
11
+ showWelcomeBubble: boolean;
12
+ welcomeBubbleText?: string;
13
+ previewMode: boolean;
14
+ onDismissBubble: (event: MouseEvent<HTMLButtonElement>) => void;
15
+ isInputBarCollapsed: boolean;
16
+ setIsInputBarCollapsed: (value: boolean) => void;
17
+ inputBarValue: string;
18
+ setInputBarValue: (value: string) => void;
19
+ onSubmitInputBar: (event: FormEvent<HTMLFormElement>) => void;
20
+ accentColor?: string;
21
+ iconColor?: string;
22
+ }
23
+ export declare function WidgetTriggers({ triggerType, isOpen, onToggle, triggerText, placeholder, IconComponent, showWelcomeBubble, welcomeBubbleText, previewMode, onDismissBubble, isInputBarCollapsed, setIsInputBarCollapsed, inputBarValue, setInputBarValue, onSubmitInputBar, accentColor, iconColor, }: WidgetTriggersProps): import("react/jsx-runtime").JSX.Element;
24
+ export {};
25
+ //# sourceMappingURL=WidgetTriggers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WidgetTriggers.d.ts","sourceRoot":"","sources":["../../../../src/components/ChatWidget/parts/WidgetTriggers.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,UAAU,mBAAmB;IAC3B,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,KAAK,CAAC,YAAY,CAAC;IACxC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAChE,mBAAmB,EAAE,OAAO,CAAC;IAC7B,sBAAsB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,gBAAgB,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,eAAe,CAAC,KAAK,IAAI,CAAC;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,cAAc,CAAC,EAC7B,WAAW,EACX,MAAM,EACN,QAAQ,EACR,WAAW,EACX,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,SAAS,GACV,EAAE,mBAAmB,2CAmHrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatWidget.d.ts","sourceRoot":"","sources":["../../src/components/ChatWidget.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAmD,MAAM,OAAO,CAAC;AACxE,OAAO,EAAE,WAAW,EAAkD,MAAM,UAAU,CAAC;AAOvF,OAAO,0CAA0C,CAAC;AAClD,OAAO,2BAA2B,CAAC;AAoFnC,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAivB5C,CAAC"}
1
+ {"version":3,"file":"ChatWidget.d.ts","sourceRoot":"","sources":["../../src/components/ChatWidget.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAmD,MAAM,OAAO,CAAC;AACxE,OAAO,EAAE,WAAW,EAAgB,MAAM,UAAU,CAAC;AAOrD,OAAO,0CAA0C,CAAC;AAClD,OAAO,2BAA2B,CAAC;AAEnC,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA6c5C,CAAC"}
@@ -3,7 +3,7 @@
3
3
  * Main chat interface window - Modern minimal design
4
4
  */
5
5
  import React from 'react';
6
- import { type ConversationMessage, type FollowUpSuggestion } from '@chatwidgetai/chat-components';
6
+ import { type ConversationMessage, type FollowUpSuggestion, type ActionEndpointCallback } from '@chatwidgetai/chat-components';
7
7
  import { WidgetConfig } from '../types';
8
8
  import { ConversationSummary } from '../hooks/useChat';
9
9
  export interface ChatWindowProps {
@@ -16,12 +16,14 @@ export interface ChatWindowProps {
16
16
  onFeedback: (messageId: string, feedback: 'positive' | 'negative') => void;
17
17
  onActionClick?: (suggestion: FollowUpSuggestion) => void;
18
18
  onActionDismiss?: (toolCallId: string) => void;
19
+ onCallEndpoint?: ActionEndpointCallback;
19
20
  conversations?: ConversationSummary[];
20
21
  onLoadConversations?: () => void;
21
22
  onSwitchConversation?: (conversationId: string) => Promise<void>;
22
23
  onStartNewConversation?: () => void;
23
24
  onDeleteConversation?: (conversationId: string) => void;
24
25
  currentConversationId?: string;
26
+ sizeOverride?: 'small' | 'medium' | 'large';
25
27
  headerTitleOverride?: string;
26
28
  welcomeTitleOverride?: string;
27
29
  welcomeMessageOverride?: string;
@@ -30,6 +32,7 @@ export interface ChatWindowProps {
30
32
  text: string;
31
33
  actionId?: string;
32
34
  })[];
35
+ onInputFocus?: () => void;
33
36
  }
34
37
  export declare const ChatWindow: React.FC<ChatWindowProps>;
35
38
  //# sourceMappingURL=ChatWindow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatWindow.d.ts","sourceRoot":"","sources":["../../src/components/ChatWindow.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAgC,MAAM,OAAO,CAAC;AACrD,OAAO,EAKL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACxB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAuCvD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,UAAU,KAAK,IAAI,CAAC;IAC3E,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACzD,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAE/C,aAAa,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACtC,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,oBAAoB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;IACpC,oBAAoB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,0BAA0B,CAAC,EAAE,CAAC,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;CAC/E;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAoThD,CAAC"}
1
+ {"version":3,"file":"ChatWindow.d.ts","sourceRoot":"","sources":["../../src/components/ChatWindow.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAgC,MAAM,OAAO,CAAC;AACrD,OAAO,EAKL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC5B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAuCvD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,UAAU,KAAK,IAAI,CAAC;IAC3E,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACzD,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,cAAc,CAAC,EAAE,sBAAsB,CAAC;IAExC,aAAa,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACtC,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAC;IACjC,oBAAoB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;IACpC,oBAAoB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,YAAY,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC5C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,0BAA0B,CAAC,EAAE,CAAC,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;IAE9E,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA2ThD,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * WelcomeBubble Component
3
+ * Floating bubble that appears near the chat trigger to invite users to chat
4
+ */
5
+ import React from 'react';
6
+ export interface WelcomeBubbleProps {
7
+ text: string;
8
+ onClick: () => void;
9
+ onDismiss: (e: React.MouseEvent) => void;
10
+ }
11
+ export declare const WelcomeBubble: React.FC<WelcomeBubbleProps>;
12
+ //# sourceMappingURL=WelcomeBubble.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WelcomeBubble.d.ts","sourceRoot":"","sources":["../../src/components/WelcomeBubble.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;CAC1C;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAkBtD,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Icon Components
3
+ * SVG icons used in the chat widget
4
+ */
5
+ import React from 'react';
6
+ export declare const MessageCircleIcon: () => import("react/jsx-runtime").JSX.Element;
7
+ export declare const MessageSquareIcon: () => import("react/jsx-runtime").JSX.Element;
8
+ export declare const MailIcon: () => import("react/jsx-runtime").JSX.Element;
9
+ export declare const PhoneIcon: () => import("react/jsx-runtime").JSX.Element;
10
+ export declare const HelpCircleIcon: () => import("react/jsx-runtime").JSX.Element;
11
+ export declare const ZapIcon: () => import("react/jsx-runtime").JSX.Element;
12
+ export declare const SendIcon: () => import("react/jsx-runtime").JSX.Element;
13
+ export declare const UserIcon: () => import("react/jsx-runtime").JSX.Element;
14
+ export declare const UsersIcon: () => import("react/jsx-runtime").JSX.Element;
15
+ export declare const HeadphonesIcon: () => import("react/jsx-runtime").JSX.Element;
16
+ export declare const CpuIcon: () => import("react/jsx-runtime").JSX.Element;
17
+ export declare const ChevronDownIcon: () => import("react/jsx-runtime").JSX.Element;
18
+ export declare const ChevronUpIcon: () => import("react/jsx-runtime").JSX.Element;
19
+ export declare const CloseIcon: () => import("react/jsx-runtime").JSX.Element;
20
+ export declare const iconComponents: Record<string, () => React.ReactElement>;
21
+ //# sourceMappingURL=icons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/components/icons.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,eAAO,MAAM,iBAAiB,+CAI7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,+CAI7B,CAAC;AAEF,eAAO,MAAM,QAAQ,+CAKpB,CAAC;AAEF,eAAO,MAAM,SAAS,+CAIrB,CAAC;AAEF,eAAO,MAAM,cAAc,+CAM1B,CAAC;AAEF,eAAO,MAAM,OAAO,+CAInB,CAAC;AAEF,eAAO,MAAM,QAAQ,+CAKpB,CAAC;AAEF,eAAO,MAAM,QAAQ,+CAKpB,CAAC;AAEF,eAAO,MAAM,SAAS,+CAOrB,CAAC;AAEF,eAAO,MAAM,cAAc,+CAK1B,CAAC;AAEF,eAAO,MAAM,OAAO,+CAanB,CAAC;AAEF,eAAO,MAAM,eAAe,+CAI3B,CAAC;AAEF,eAAO,MAAM,aAAa,+CAIzB,CAAC;AAEF,eAAO,MAAM,SAAS,+CAKrB,CAAC;AAGF,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,YAAY,CAanE,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * ButtonTrigger Component
3
+ * Default circular button trigger for the chat widget
4
+ */
5
+ import React from 'react';
6
+ export interface ButtonTriggerProps {
7
+ isOpen: boolean;
8
+ onClick: () => void;
9
+ }
10
+ export declare const ButtonTrigger: React.FC<ButtonTriggerProps>;
11
+ //# sourceMappingURL=ButtonTrigger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonTrigger.d.ts","sourceRoot":"","sources":["../../../src/components/triggers/ButtonTrigger.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAiBtD,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * InputBarTrigger Component
3
+ * Input bar trigger that allows typing a message before opening the widget
4
+ */
5
+ import React from 'react';
6
+ export interface InputBarTriggerProps {
7
+ placeholder: string;
8
+ value: string;
9
+ onChange: (value: string) => void;
10
+ onSubmit: (e: React.FormEvent) => void;
11
+ onExpand: () => void;
12
+ onFocus?: () => void;
13
+ onClick?: () => void;
14
+ disabled?: boolean;
15
+ readOnly?: boolean;
16
+ }
17
+ export declare const InputBarTrigger: React.FC<InputBarTriggerProps>;
18
+ //# sourceMappingURL=InputBarTrigger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputBarTrigger.d.ts","sourceRoot":"","sources":["../../../src/components/triggers/InputBarTrigger.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;IACvC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA4C1D,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * PillTrigger Component
3
+ * Pill-shaped button with text that transforms to round button when open
4
+ */
5
+ import React from 'react';
6
+ export interface PillTriggerProps {
7
+ isOpen: boolean;
8
+ text: string;
9
+ onClick: () => void;
10
+ }
11
+ export declare const PillTrigger: React.FC<PillTriggerProps>;
12
+ //# sourceMappingURL=PillTrigger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PillTrigger.d.ts","sourceRoot":"","sources":["../../../src/components/triggers/PillTrigger.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAmBlD,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Trigger Components
3
+ * Export all trigger types for the chat widget
4
+ */
5
+ export { ButtonTrigger, type ButtonTriggerProps } from './ButtonTrigger';
6
+ export { PillTrigger, type PillTriggerProps } from './PillTrigger';
7
+ export { InputBarTrigger, type InputBarTriggerProps } from './InputBarTrigger';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/triggers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,6 +1,22 @@
1
1
  import type { Dispatch, SetStateAction } from 'react';
2
2
  import type { ConversationMessage, ChatState, JsonValue } from '../../types';
3
3
  import type { ActionRequestEvent, ActionLoopContext } from './types';
4
+ /**
5
+ * Handle the action loop for halting actions.
6
+ *
7
+ * Flow:
8
+ * 1. Display the action in UI
9
+ * 2. Call the frontend handler (which waits for user interaction or returns immediately for display actions)
10
+ * 3. Handler returns body when complete
11
+ * 4. Send body to backend via continueAgentAction
12
+ * 5. Process any subsequent events (may include new action_request for chained actions)
13
+ */
4
14
  export declare function handleActionLoop(client: ActionLoopContext['client'], initialEvent: ActionRequestEvent, streamState: ActionLoopContext['streamState'], onMessageUpdate: ActionLoopContext['onMessageUpdate'], setState: ActionLoopContext['setState'], widgetId: string, conversationId: string, getMessages: ActionLoopContext['getMessages']): Promise<void>;
5
- export declare function setupActionResumeCallbacks(messages: ConversationMessage[], client: ActionLoopContext['client'], conversationId: string, setState: Dispatch<SetStateAction<ChatState>>, onMessageUpdate: (message: ConversationMessage) => void, createStreamState: () => ActionLoopContext['streamState'], registerCallback: (toolCallId: string, callback: (newState: Record<string, JsonValue>) => Promise<void>) => void): void;
15
+ /**
16
+ * Setup resume callbacks for incomplete actions after page reload.
17
+ *
18
+ * When a page reloads with an incomplete action, this sets up callbacks
19
+ * so when the user completes the action, we can continue the agent flow.
20
+ */
21
+ export declare function setupActionResumeCallbacks(messages: ConversationMessage[], client: ActionLoopContext['client'], conversationId: string, widgetId: string, setState: Dispatch<SetStateAction<ChatState>>, onMessageUpdate: (message: ConversationMessage) => void, createStreamState: () => ActionLoopContext['streamState'], registerCallback: (toolCallId: string, callback: (body: Record<string, JsonValue>) => Promise<void>) => void): void;
6
22
  //# sourceMappingURL=action-handler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"action-handler.d.ts","sourceRoot":"","sources":["../../../src/hooks/useChat/action-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAUrE,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,EACnC,YAAY,EAAE,kBAAkB,EAChC,WAAW,EAAE,iBAAiB,CAAC,aAAa,CAAC,EAC7C,eAAe,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,EACrD,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,EACvC,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,iBAAiB,CAAC,aAAa,CAAC,GAC5C,OAAO,CAAC,IAAI,CAAC,CAyIf;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,EACnC,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,EAC7C,eAAe,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,EACvD,iBAAiB,EAAE,MAAM,iBAAiB,CAAC,aAAa,CAAC,EACzD,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,GAC/G,IAAI,CAuEN"}
1
+ {"version":3,"file":"action-handler.d.ts","sourceRoot":"","sources":["../../../src/hooks/useChat/action-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAMrE;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,EACnC,YAAY,EAAE,kBAAkB,EAChC,WAAW,EAAE,iBAAiB,CAAC,aAAa,CAAC,EAC7C,eAAe,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,EACrD,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,EACvC,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,iBAAiB,CAAC,aAAa,CAAC,GAC5C,OAAO,CAAC,IAAI,CAAC,CAkIf;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,MAAM,EAAE,iBAAiB,CAAC,QAAQ,CAAC,EACnC,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,EAC7C,eAAe,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,EACvD,iBAAiB,EAAE,MAAM,iBAAiB,CAAC,aAAa,CAAC,EACzD,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,GAC3G,IAAI,CAmIN"}
@@ -35,6 +35,11 @@ export interface UseChatReturn {
35
35
  startNewConversation: () => void;
36
36
  deleteConversation: (conversationId: string) => void;
37
37
  createDemoConversation: (userMessage: string, assistantMessage: string) => Promise<string | null>;
38
+ /** Call an action endpoint directly (frontend-owned flow) */
39
+ callActionEndpoint: <T = unknown>(actionId: string, endpoint: string, input: Record<string, unknown>, options?: {
40
+ token?: string;
41
+ toolCallId?: string;
42
+ }) => Promise<T>;
38
43
  }
39
44
  export declare function useChat(options: UseChatOptions): UseChatReturn;
40
45
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/useChat/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAa,MAAM,aAAa,CAAC;AA6BhF,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACnD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxF,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,aAAa,EAAE,mBAAmB,EAAE,CAAC;IACrC,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,kBAAkB,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,kBAAkB,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD,sBAAsB,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACnG;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,aAAa,CAymB9D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/useChat/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAa,MAAM,aAAa,CAAC;AA8BhF,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACnD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxF,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,aAAa,EAAE,mBAAmB,EAAE,CAAC;IACrC,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,kBAAkB,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,kBAAkB,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD,sBAAsB,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAClG,6DAA6D;IAC7D,kBAAkB,EAAE,CAAC,CAAC,GAAG,OAAO,EAC9B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,KAC9C,OAAO,CAAC,CAAC,CAAC,CAAC;CACjB;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,aAAa,CA6nB9D"}
@@ -1 +1 @@
1
- {"version":3,"file":"message-hydration.d.ts","sourceRoot":"","sources":["../../../src/hooks/useChat/message-hydration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAoB,MAAM,aAAa,CAAC;AAEzE,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,mBAAmB,EAAE,CA4CvF;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,mBAAmB,EAAE,CAGtF"}
1
+ {"version":3,"file":"message-hydration.d.ts","sourceRoot":"","sources":["../../../src/hooks/useChat/message-hydration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAoB,MAAM,aAAa,CAAC;AAEzE,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,mBAAmB,EAAE,CA4CvF;AA4CD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,mBAAmB,EAAE,CAItF"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Stream Buffer
3
+ * Smooths out streaming text rendering by buffering words and draining them
4
+ * with requestAnimationFrame for a fluid typing effect.
5
+ */
6
+ export interface StreamBuffer {
7
+ pendingWords: string[];
8
+ displayedContent: string;
9
+ streamEnded: boolean;
10
+ rafHandle: number | null;
11
+ }
12
+ export declare function createStreamBuffer(): StreamBuffer;
13
+ export declare function appendToBuffer(buffer: StreamBuffer, content: string): void;
14
+ export declare function startBufferDrain(buffer: StreamBuffer, onContentUpdate: (content: string) => void): void;
15
+ export declare function flushBuffer(buffer: StreamBuffer): string;
16
+ export declare function cancelBuffer(buffer: StreamBuffer): void;
17
+ export declare function resetBuffer(buffer: StreamBuffer): void;
18
+ //# sourceMappingURL=stream-buffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-buffer.d.ts","sourceRoot":"","sources":["../../../src/hooks/useChat/stream-buffer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAOjD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAI1E;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,YAAY,EACpB,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACzC,IAAI,CA0BN;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAaxD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAMvD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAQtD"}
@@ -13,9 +13,6 @@ export declare function handleToolEndEvent(event: Extract<StreamEvent, {
13
13
  export declare function handleToolErrorEvent(event: Extract<StreamEvent, {
14
14
  type: "tool_error";
15
15
  }>, streamState: StreamState, _onMessageUpdate: (message: ConversationMessage) => void, setState: Dispatch<SetStateAction<ChatState>>): void;
16
- export declare function handleDoneEvent(event: Extract<StreamEvent, {
17
- type: "done";
18
- }>, streamState: StreamState, _onMessageUpdate: (message: ConversationMessage) => void, setState: Dispatch<SetStateAction<ChatState>>): void;
19
16
  export declare function handleHaltEvent(event: Extract<StreamEvent, {
20
17
  type: "halt";
21
18
  }>, _streamState: StreamState, onMessageUpdate: (message: ConversationMessage) => void, setState: Dispatch<SetStateAction<ChatState>>): void;
@@ -24,4 +21,7 @@ export declare function handleErrorEvent(_event: Extract<StreamEvent, {
24
21
  }>, _streamState: StreamState, onMessageUpdate: (message: ConversationMessage) => void, setState: Dispatch<SetStateAction<ChatState>>): void;
25
22
  export declare const eventHandlers: Record<StreamEvent['type'], EventHandler>;
26
23
  export declare function handleStreamEvent(event: StreamEvent, streamState: StreamState, onMessageUpdate: (message: ConversationMessage) => void, setState: Dispatch<SetStateAction<ChatState>>): void;
24
+ export declare function handleDoneEvent(event: Extract<StreamEvent, {
25
+ type: "done";
26
+ }>, streamState: StreamState, onMessageUpdate: (message: ConversationMessage) => void, setState: Dispatch<SetStateAction<ChatState>>): void;
27
27
  //# sourceMappingURL=stream-handlers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stream-handlers.d.ts","sourceRoot":"","sources":["../../../src/hooks/useChat/stream-handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream-handlers.d.ts","sourceRoot":"","sources":["../../../src/hooks/useChat/stream-handlers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stream-state.d.ts","sourceRoot":"","sources":["../../../src/hooks/useChat/stream-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C,wBAAgB,iBAAiB,IAAI,WAAW,CAU/C;AAED,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,EAC7C,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,OAAO,GAChB,IAAI,CAeN;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,EAC7C,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,EACvB,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC,EACvC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC1C,WAAW,CAAC,EAAE,kBAAkB,EAAE,GACjC,IAAI,CA4BN;AAED,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,EAC7C,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,IAAI,CAyBN"}
1
+ {"version":3,"file":"stream-state.d.ts","sourceRoot":"","sources":["../../../src/hooks/useChat/stream-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAI3C,wBAAgB,iBAAiB,IAAI,WAAW,CAW/C;AAED,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,EAC7C,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,OAAO,GAChB,IAAI,CAeN;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,EAC7C,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,EACvB,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC,EACvC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC1C,WAAW,CAAC,EAAE,kBAAkB,EAAE,GACjC,IAAI,CA4BN;AAED,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,EAC7C,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,IAAI,CA2BN"}
@@ -1,6 +1,7 @@
1
1
  import type { Dispatch, SetStateAction } from 'react';
2
2
  import type { ConversationMessage, ChatState, StreamEvent } from '../../types';
3
3
  import type { WidgetApiClient } from '../../api/client';
4
+ import type { StreamBuffer } from './stream-buffer';
4
5
  export type StreamState = {
5
6
  currentContent: string;
6
7
  currentMessageId: string;
@@ -9,6 +10,7 @@ export type StreamState = {
9
10
  sources: ConversationMessage["sources"];
10
11
  toolCallToActionId: Record<string, string>;
11
12
  requestId: string;
13
+ buffer: StreamBuffer;
12
14
  };
13
15
  export type ActionRequestEvent = Extract<StreamEvent, {
14
16
  type: "action_request";
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/useChat/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,MAAM,WAAW,GAAG;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACxC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAAC;AAElF,MAAM,MAAM,YAAY,GAAG,CACzB,KAAK,EAAE,WAAW,EAClB,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,EACvD,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,KAC1C,IAAI,CAAC;AAEV,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,eAAe,CAAC;IACxB,WAAW,EAAE,WAAW,CAAC;IACzB,eAAe,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACxD,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,mBAAmB,EAAE,CAAC;CAC1C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hooks/useChat/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,MAAM,WAAW,GAAG;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACxC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,YAAY,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAAC;AAElF,MAAM,MAAM,YAAY,GAAG,CACzB,KAAK,EAAE,WAAW,EAClB,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,EACvD,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,KAC1C,IAAI,CAAC;AAEV,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,eAAe,CAAC;IACxB,WAAW,EAAE,WAAW,CAAC;IACzB,eAAe,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACxD,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,mBAAmB,EAAE,CAAC;CAC1C"}