omnix-chat 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/LICENSE +21 -0
  3. package/README.md +360 -0
  4. package/dist/es-BoccmK_s.js +457 -0
  5. package/dist/es-BoccmK_s.js.map +1 -0
  6. package/dist/favicon.svg +1 -0
  7. package/dist/logo.svg +1 -0
  8. package/dist/omnix-chat.es.js +3197 -0
  9. package/dist/omnix-chat.es.js.map +1 -0
  10. package/dist/omnix-chat.umd.js +4 -0
  11. package/dist/omnix-chat.umd.js.map +1 -0
  12. package/dist/react.es.js +26062 -0
  13. package/dist/react.es.js.map +1 -0
  14. package/dist/react.umd.js +593 -0
  15. package/dist/react.umd.js.map +1 -0
  16. package/dist/src/chat/ChatRoot.d.ts +9 -0
  17. package/dist/src/chat/ChatRoot.d.ts.map +1 -0
  18. package/dist/src/chat/bridge/index.d.ts +2 -0
  19. package/dist/src/chat/bridge/index.d.ts.map +1 -0
  20. package/dist/src/chat/bridge/messageBridge.d.ts +8 -0
  21. package/dist/src/chat/bridge/messageBridge.d.ts.map +1 -0
  22. package/dist/src/chat/components/AIAssistantBubble.d.ts +13 -0
  23. package/dist/src/chat/components/AIAssistantBubble.d.ts.map +1 -0
  24. package/dist/src/chat/components/ErrorBoundary.d.ts +25 -0
  25. package/dist/src/chat/components/ErrorBoundary.d.ts.map +1 -0
  26. package/dist/src/chat/components/LauncherSlot.d.ts +8 -0
  27. package/dist/src/chat/components/LauncherSlot.d.ts.map +1 -0
  28. package/dist/src/chat/components/LoginForm.d.ts +7 -0
  29. package/dist/src/chat/components/LoginForm.d.ts.map +1 -0
  30. package/dist/src/chat/components/PanelHeaderTitle.d.ts +7 -0
  31. package/dist/src/chat/components/PanelHeaderTitle.d.ts.map +1 -0
  32. package/dist/src/chat/components/message/BlockExportActions.d.ts +7 -0
  33. package/dist/src/chat/components/message/BlockExportActions.d.ts.map +1 -0
  34. package/dist/src/chat/components/message/MessageBlockRenderer.d.ts +6 -0
  35. package/dist/src/chat/components/message/MessageBlockRenderer.d.ts.map +1 -0
  36. package/dist/src/chat/components/message/SafeMarkdownHtml.d.ts +11 -0
  37. package/dist/src/chat/components/message/SafeMarkdownHtml.d.ts.map +1 -0
  38. package/dist/src/chat/components/message/blockExport.d.ts +5 -0
  39. package/dist/src/chat/components/message/blockExport.d.ts.map +1 -0
  40. package/dist/src/chat/components/message/chartBlockUtils.d.ts +10 -0
  41. package/dist/src/chat/components/message/chartBlockUtils.d.ts.map +1 -0
  42. package/dist/src/chat/components/message/index.d.ts +4 -0
  43. package/dist/src/chat/components/message/index.d.ts.map +1 -0
  44. package/dist/src/chat/components/message/parseMessageBlocks.d.ts +15 -0
  45. package/dist/src/chat/components/message/parseMessageBlocks.d.ts.map +1 -0
  46. package/dist/src/chat/components/message/types.d.ts +89 -0
  47. package/dist/src/chat/components/message/types.d.ts.map +1 -0
  48. package/dist/src/chat/components/panel/AIAssistantPanel.d.ts +4 -0
  49. package/dist/src/chat/components/panel/AIAssistantPanel.d.ts.map +1 -0
  50. package/dist/src/chat/components/panel/AgentSkillBar.d.ts +17 -0
  51. package/dist/src/chat/components/panel/AgentSkillBar.d.ts.map +1 -0
  52. package/dist/src/chat/components/panel/BubbleAvatars.d.ts +7 -0
  53. package/dist/src/chat/components/panel/BubbleAvatars.d.ts.map +1 -0
  54. package/dist/src/chat/components/panel/ConversationSidebar.d.ts +23 -0
  55. package/dist/src/chat/components/panel/ConversationSidebar.d.ts.map +1 -0
  56. package/dist/src/chat/components/panel/DownFeedbackModal.d.ts +18 -0
  57. package/dist/src/chat/components/panel/DownFeedbackModal.d.ts.map +1 -0
  58. package/dist/src/chat/components/panel/MessageBody.d.ts +16 -0
  59. package/dist/src/chat/components/panel/MessageBody.d.ts.map +1 -0
  60. package/dist/src/chat/components/panel/MessageFeedbackFooter.d.ts +10 -0
  61. package/dist/src/chat/components/panel/MessageFeedbackFooter.d.ts.map +1 -0
  62. package/dist/src/chat/components/panel/MessageList.d.ts +13 -0
  63. package/dist/src/chat/components/panel/MessageList.d.ts.map +1 -0
  64. package/dist/src/chat/components/panel/PanelModals.d.ts +13 -0
  65. package/dist/src/chat/components/panel/PanelModals.d.ts.map +1 -0
  66. package/dist/src/chat/components/panel/PromptsSection.d.ts +11 -0
  67. package/dist/src/chat/components/panel/PromptsSection.d.ts.map +1 -0
  68. package/dist/src/chat/components/panel/constants.d.ts +83 -0
  69. package/dist/src/chat/components/panel/constants.d.ts.map +1 -0
  70. package/dist/src/chat/components/panel/index.d.ts +3 -0
  71. package/dist/src/chat/components/panel/index.d.ts.map +1 -0
  72. package/dist/src/chat/components/panel/types.d.ts +60 -0
  73. package/dist/src/chat/components/panel/types.d.ts.map +1 -0
  74. package/dist/src/chat/components/panel/useBubbleItems.d.ts +15 -0
  75. package/dist/src/chat/components/panel/useBubbleItems.d.ts.map +1 -0
  76. package/dist/src/chat/components/panel/useBubbleScroll.d.ts +21 -0
  77. package/dist/src/chat/components/panel/useBubbleScroll.d.ts.map +1 -0
  78. package/dist/src/chat/components/panel/useConversationSidebarScroll.d.ts +10 -0
  79. package/dist/src/chat/components/panel/useConversationSidebarScroll.d.ts.map +1 -0
  80. package/dist/src/chat/components/panel/utils.d.ts +25 -0
  81. package/dist/src/chat/components/panel/utils.d.ts.map +1 -0
  82. package/dist/src/chat/config/assistantPrompts.d.ts +9 -0
  83. package/dist/src/chat/config/assistantPrompts.d.ts.map +1 -0
  84. package/dist/src/chat/config/globalInteractionCopy.d.ts +19 -0
  85. package/dist/src/chat/config/globalInteractionCopy.d.ts.map +1 -0
  86. package/dist/src/chat/config/index.d.ts +2 -0
  87. package/dist/src/chat/config/index.d.ts.map +1 -0
  88. package/dist/src/chat/hooks/index.d.ts +4 -0
  89. package/dist/src/chat/hooks/index.d.ts.map +1 -0
  90. package/dist/src/chat/hooks/useClientState.d.ts +15 -0
  91. package/dist/src/chat/hooks/useClientState.d.ts.map +1 -0
  92. package/dist/src/chat/hooks/useDebouncedSessionPrepare.d.ts +9 -0
  93. package/dist/src/chat/hooks/useDebouncedSessionPrepare.d.ts.map +1 -0
  94. package/dist/src/chat/hooks/useLauncherPosition.d.ts +11 -0
  95. package/dist/src/chat/hooks/useLauncherPosition.d.ts.map +1 -0
  96. package/dist/src/chat/i18n.d.ts +11 -0
  97. package/dist/src/chat/i18n.d.ts.map +1 -0
  98. package/dist/src/chat/styles/host-styles.d.ts +10 -0
  99. package/dist/src/chat/styles/host-styles.d.ts.map +1 -0
  100. package/dist/src/chat/styles/inject.d.ts +4 -0
  101. package/dist/src/chat/styles/inject.d.ts.map +1 -0
  102. package/dist/src/chat/types.d.ts +56 -0
  103. package/dist/src/chat/types.d.ts.map +1 -0
  104. package/dist/src/chat/utils.d.ts +3 -0
  105. package/dist/src/chat/utils.d.ts.map +1 -0
  106. package/dist/src/core/api-envelope.d.ts +6 -0
  107. package/dist/src/core/api-envelope.d.ts.map +1 -0
  108. package/dist/src/core/auth-headers.d.ts +19 -0
  109. package/dist/src/core/auth-headers.d.ts.map +1 -0
  110. package/dist/src/core/auth-response.d.ts +9 -0
  111. package/dist/src/core/auth-response.d.ts.map +1 -0
  112. package/dist/src/core/auth-store.d.ts +23 -0
  113. package/dist/src/core/auth-store.d.ts.map +1 -0
  114. package/dist/src/core/auth-types.d.ts +26 -0
  115. package/dist/src/core/auth-types.d.ts.map +1 -0
  116. package/dist/src/core/auth.d.ts +25 -0
  117. package/dist/src/core/auth.d.ts.map +1 -0
  118. package/dist/src/core/chat-response.d.ts +66 -0
  119. package/dist/src/core/chat-response.d.ts.map +1 -0
  120. package/dist/src/core/chat-sse.d.ts +66 -0
  121. package/dist/src/core/chat-sse.d.ts.map +1 -0
  122. package/dist/src/core/errors.d.ts +16 -0
  123. package/dist/src/core/errors.d.ts.map +1 -0
  124. package/dist/src/core/events.d.ts +19 -0
  125. package/dist/src/core/events.d.ts.map +1 -0
  126. package/dist/src/core/feedback-utils.d.ts +9 -0
  127. package/dist/src/core/feedback-utils.d.ts.map +1 -0
  128. package/dist/src/core/http/client.d.ts +3 -0
  129. package/dist/src/core/http/client.d.ts.map +1 -0
  130. package/dist/src/core/http/errors.d.ts +6 -0
  131. package/dist/src/core/http/errors.d.ts.map +1 -0
  132. package/dist/src/core/http/index.d.ts +3 -0
  133. package/dist/src/core/http/index.d.ts.map +1 -0
  134. package/dist/src/core/http/sse.d.ts +5 -0
  135. package/dist/src/core/http/sse.d.ts.map +1 -0
  136. package/dist/src/core/http/types.d.ts +30 -0
  137. package/dist/src/core/http/types.d.ts.map +1 -0
  138. package/dist/src/core/instance.d.ts +135 -0
  139. package/dist/src/core/instance.d.ts.map +1 -0
  140. package/dist/src/core/message-blocks.d.ts +25 -0
  141. package/dist/src/core/message-blocks.d.ts.map +1 -0
  142. package/dist/src/core/resolve.d.ts +5 -0
  143. package/dist/src/core/resolve.d.ts.map +1 -0
  144. package/dist/src/core/services/agent.service.d.ts +18 -0
  145. package/dist/src/core/services/agent.service.d.ts.map +1 -0
  146. package/dist/src/core/services/auth.service.d.ts +14 -0
  147. package/dist/src/core/services/auth.service.d.ts.map +1 -0
  148. package/dist/src/core/services/chat.service.d.ts +28 -0
  149. package/dist/src/core/services/chat.service.d.ts.map +1 -0
  150. package/dist/src/core/services/feedback.service.d.ts +15 -0
  151. package/dist/src/core/services/feedback.service.d.ts.map +1 -0
  152. package/dist/src/core/services/index.d.ts +5 -0
  153. package/dist/src/core/services/index.d.ts.map +1 -0
  154. package/dist/src/index.d.ts +15 -0
  155. package/dist/src/index.d.ts.map +1 -0
  156. package/dist/src/react/AgentChat.d.ts +25 -0
  157. package/dist/src/react/AgentChat.d.ts.map +1 -0
  158. package/dist/src/react/AgentChatEmbedded.d.ts +12 -0
  159. package/dist/src/react/AgentChatEmbedded.d.ts.map +1 -0
  160. package/dist/src/react/AgentChatProvider.d.ts +15 -0
  161. package/dist/src/react/AgentChatProvider.d.ts.map +1 -0
  162. package/dist/src/react/context.d.ts +4 -0
  163. package/dist/src/react/context.d.ts.map +1 -0
  164. package/dist/src/react/index.d.ts +11 -0
  165. package/dist/src/react/index.d.ts.map +1 -0
  166. package/dist/src/react/useAgentChat.d.ts +36 -0
  167. package/dist/src/react/useAgentChat.d.ts.map +1 -0
  168. package/dist/src/types.d.ts +337 -0
  169. package/dist/src/types.d.ts.map +1 -0
  170. package/dist/src/utils/id.d.ts +7 -0
  171. package/dist/src/utils/id.d.ts.map +1 -0
  172. package/dist/src/utils/sdk-version.d.ts +9 -0
  173. package/dist/src/utils/sdk-version.d.ts.map +1 -0
  174. package/dist/xlsx-CXTDRHcz.js +12389 -0
  175. package/dist/xlsx-CXTDRHcz.js.map +1 -0
  176. package/package.json +115 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/chat/components/panel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,YAAY,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,60 @@
1
+ import { ConversationItemType } from '@ant-design/x';
2
+ import { ReactNode } from 'react';
3
+ import { AgentsEmptyReason, ChatAgentSummary, ChatSkillSummary, MessageFeedbackDownReasonTag, WriteConfirmationState } from '../../../types';
4
+ import { AIAssistantMessage } from '../../types';
5
+ export interface AIAssistantPanelProps {
6
+ open: boolean;
7
+ sending: boolean;
8
+ sessionsLoading: boolean;
9
+ sessionsHasMore: boolean;
10
+ sessionsLoadingMore: boolean;
11
+ sessionMessagesLoading: boolean;
12
+ sessionMessagesHasMore: boolean;
13
+ sessionMessagesLoadingMore: boolean;
14
+ errorMessage: string | null;
15
+ messages: AIAssistantMessage[];
16
+ activeConversationId: string;
17
+ conversationItems: ConversationItemType[];
18
+ onClose: () => void;
19
+ onStopGenerating: () => void;
20
+ onSend: (message: string) => Promise<void>;
21
+ onRetryFailedMessage: (messageId: string) => void;
22
+ onRateMessageUp?: (messageId: string) => Promise<void>;
23
+ onSubmitDownFeedback?: (input: {
24
+ messageId: string;
25
+ reasonTags: string[];
26
+ comment: string;
27
+ }) => Promise<void>;
28
+ onRemoveMessageFeedback?: (messageId: string) => Promise<void>;
29
+ onLoadDownReasonTags?: () => Promise<MessageFeedbackDownReasonTag[]>;
30
+ onLoadMoreSessionMessages: () => Promise<void>;
31
+ onLoadMoreSessions: () => Promise<void>;
32
+ onSelectConversation: (key: string) => void;
33
+ onCreateConversation: () => void;
34
+ onRemoveConversation: (key: string) => Promise<void> | void;
35
+ onPrepareSession?: (sessionId: string, signal: AbortSignal) => void | Promise<void>;
36
+ drawerGetContainer?: false | HTMLElement | (() => HTMLElement);
37
+ getPopupContainer?: () => HTMLElement;
38
+ title?: string;
39
+ projectName?: string;
40
+ projectLogo?: string;
41
+ locale?: string;
42
+ loginSlot?: ReactNode;
43
+ showPrompts?: boolean;
44
+ showConversationMenu?: boolean;
45
+ conversationGroupLabel?: (group: string) => ReactNode;
46
+ writeConfirmation?: WriteConfirmationState | null;
47
+ onConfirmWrite?: () => void | Promise<void>;
48
+ onCancelWrite?: () => void | Promise<void>;
49
+ agents?: ChatAgentSummary[];
50
+ skills?: ChatSkillSummary[];
51
+ selectedAgentId?: string | null;
52
+ selectedSkillId?: string | null;
53
+ agentsLoading?: boolean;
54
+ skillsLoading?: boolean;
55
+ agentsEmptyReason?: AgentsEmptyReason;
56
+ showAgentSkillBar?: boolean;
57
+ onAgentChange?: (agentId: string) => void | Promise<void>;
58
+ onSkillChange?: (skillId: string) => void;
59
+ }
60
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/chat/components/panel/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { BubbleItemType } from '@ant-design/x';
2
+ import { AIAssistantMessage } from '../../types';
3
+ export declare function useBubbleItems(messages: AIAssistantMessage[], options: {
4
+ sessionMessagesLoadingMore: boolean;
5
+ showStreamCaret: string | null;
6
+ onRetryFailedMessage: (messageId: string) => void;
7
+ onRateMessageUp?: (messageId: string) => Promise<void>;
8
+ onRateMessageDown?: (messageId: string) => void;
9
+ onRemoveMessageFeedback?: (messageId: string) => Promise<void>;
10
+ assistantLogo?: string;
11
+ assistantName?: string;
12
+ locale?: string;
13
+ }): BubbleItemType[];
14
+ export declare function findStreamingAssistantId(messages: AIAssistantMessage[]): string | null;
15
+ //# sourceMappingURL=useBubbleItems.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBubbleItems.d.ts","sourceRoot":"","sources":["../../../../../src/chat/components/panel/useBubbleItems.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAmB3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,kBAAkB,EAAE,EAC9B,OAAO,EAAE;IACP,0BAA0B,EAAE,OAAO,CAAC;IACpC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,oBAAoB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,uBAAuB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GACA,cAAc,EAAE,CA0KlB;AAED,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,kBAAkB,EAAE,GAC7B,MAAM,GAAG,IAAI,CAMf"}
@@ -0,0 +1,21 @@
1
+ import { AIAssistantMessage } from '../../types';
2
+ export interface UseBubbleScrollOptions {
3
+ open: boolean;
4
+ activeConversationId: string;
5
+ sessionMessagesLoading: boolean;
6
+ sessionMessagesHasMore: boolean;
7
+ sessionMessagesLoadingMore: boolean;
8
+ messages: AIAssistantMessage[];
9
+ lastMessage: AIAssistantMessage | undefined;
10
+ streamingAssistantId: string | null;
11
+ thinkOnlyStreaming: boolean;
12
+ sending: boolean;
13
+ onLoadMoreSessionMessages: () => Promise<void>;
14
+ }
15
+ export declare function useBubbleScroll({ open, activeConversationId, sessionMessagesLoading, sessionMessagesHasMore, sessionMessagesLoadingMore, messages, lastMessage, streamingAssistantId, thinkOnlyStreaming, sending, onLoadMoreSessionMessages, }: UseBubbleScrollOptions): {
16
+ messagesColRef: import('react').RefObject<HTMLDivElement | null>;
17
+ showScrollToBottom: boolean;
18
+ scrollToBottom: () => void;
19
+ prepareScrollAfterSend: () => void;
20
+ };
21
+ //# sourceMappingURL=useBubbleScroll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBubbleScroll.d.ts","sourceRoot":"","sources":["../../../../../src/chat/components/panel/useBubbleScroll.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAItD,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sBAAsB,EAAE,OAAO,CAAC;IAChC,sBAAsB,EAAE,OAAO,CAAC;IAChC,0BAA0B,EAAE,OAAO,CAAC;IACpC,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,WAAW,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC5C,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,yBAAyB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD;AAED,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,0BAA0B,EAC1B,QAAQ,EACR,WAAW,EACX,oBAAoB,EACpB,kBAAkB,EAClB,OAAO,EACP,yBAAyB,GAC1B,EAAE,sBAAsB;;;;;EAwPxB"}
@@ -0,0 +1,10 @@
1
+ export interface UseConversationSidebarScrollOptions {
2
+ enabled: boolean;
3
+ sessionsHasMore: boolean;
4
+ sessionsLoading: boolean;
5
+ sessionsLoadingMore: boolean;
6
+ conversationCount: number;
7
+ onLoadMoreSessions: () => Promise<void>;
8
+ }
9
+ export declare function useConversationSidebarScroll({ enabled, sessionsHasMore, sessionsLoading, sessionsLoadingMore, conversationCount, onLoadMoreSessions, }: UseConversationSidebarScrollOptions): import('react').RefObject<HTMLDivElement | null>;
10
+ //# sourceMappingURL=useConversationSidebarScroll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useConversationSidebarScroll.d.ts","sourceRoot":"","sources":["../../../../../src/chat/components/panel/useConversationSidebarScroll.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mCAAmC;IAClD,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;IACzB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED,wBAAgB,4BAA4B,CAAC,EAC3C,OAAO,EACP,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,GACnB,EAAE,mCAAmC,oDA+CrC"}
@@ -0,0 +1,25 @@
1
+ import { AIAssistantMessage } from '../../types';
2
+ import { bubbleStylesAssistant, bubbleStylesUser } from './constants';
3
+ export declare function assistantMessageHasBody(msg: AIAssistantMessage): boolean;
4
+ export declare function formatMessageTime(createdAt: number): string;
5
+ export declare function mergeBubbleStyles(bubble: typeof bubbleStylesUser | typeof bubbleStylesAssistant): {
6
+ content: {
7
+ readonly background: "#1677ff";
8
+ readonly color: "#fff";
9
+ readonly border: "none";
10
+ };
11
+ root: {
12
+ readonly alignItems: "flex-start";
13
+ };
14
+ } | {
15
+ content: {
16
+ readonly background: "#fff";
17
+ readonly color: "rgba(0, 0, 0, 0.88)";
18
+ readonly border: "1px solid var(--border, #e8e8e8)";
19
+ readonly boxShadow: "0 1px 2px rgba(15, 23, 42, 0.06)";
20
+ };
21
+ root: {
22
+ readonly alignItems: "flex-start";
23
+ };
24
+ };
25
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/chat/components/panel/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EACL,qBAAqB,EAErB,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAErB,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAKxE;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAS3D;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,OAAO,gBAAgB,GAAG,OAAO,qBAAqB;;;;;;;;;;;;;;;;;;;EAG/D"}
@@ -0,0 +1,9 @@
1
+ import { PromptsItemType } from '@ant-design/x';
2
+ export type AssistantPromptEntry = PromptsItemType & {
3
+ /** 点击后直接作为用户消息发送 */
4
+ sendText: string;
5
+ };
6
+ export declare const ASSISTANT_PROMPTS: AssistantPromptEntry[];
7
+ export declare function assistantPromptItemsForList(): PromptsItemType[];
8
+ export declare function getAssistantPromptSendText(key: string): string | undefined;
9
+ //# sourceMappingURL=assistantPrompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistantPrompts.d.ts","sourceRoot":"","sources":["../../../../src/chat/config/assistantPrompts.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,MAAM,MAAM,oBAAoB,GAAG,eAAe,GAAG;IACnD,oBAAoB;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,oBAAoB,EAwBnD,CAAC;AAEF,wBAAgB,2BAA2B,IAAI,eAAe,EAAE,CAW/D;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE1E"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * 全局悬浮投小助:入口可访问性文案、首条引导气泡与会话默认标题等。
3
+ * 产品侧文案集中在此,避免散落在组件与 Hook 中。
4
+ */
5
+ export declare const AI_ASSISTANT_GLOBAL_COPY: {
6
+ /** 悬浮机器人按钮可访问性名称 */
7
+ readonly launcherAriaLabelOpen: "打开投小助";
8
+ /** 抽屉关闭时,悬浮入口旁的轻提示 */
9
+ readonly launcherHintMessage: "有问题想问我吗?点我开始对话";
10
+ /**
11
+ * 新会话首条助手消息(打开面板后可见,用于引导用户提问)
12
+ */
13
+ readonly welcomeAssistantMessage: "您好,我是投小助,可查询订单与库存分析数据。支持订单量、ROI、渠道分布/趋势、环比同比、归因明细,以及站点/类目/SKU库存、缺货率、销量和周转等指标。你可以直接问:最近一周各渠道订单占比、A站点库存缺货率、某SKU近7天销量与周转天数。";
14
+ /** 尚无用户消息时的会话列表展示标题 */
15
+ readonly conversationDefaultTitle: "新对话";
16
+ /** 请求失败且接口未返回明确信息时的兜底提示 */
17
+ readonly serviceUnavailableFallback: "投小助暂时不可用,请稍后重试";
18
+ };
19
+ //# sourceMappingURL=globalInteractionCopy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"globalInteractionCopy.d.ts","sourceRoot":"","sources":["../../../../src/chat/config/globalInteractionCopy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,wBAAwB;IACnC,oBAAoB;;IAEpB,sBAAsB;;IAEtB;;OAEG;;IAGH,uBAAuB;;IAEvB,2BAA2B;;CAEnB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { AI_ASSISTANT_GLOBAL_COPY } from './globalInteractionCopy';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/chat/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { useClientState } from './useClientState';
2
+ export { useDebouncedSessionPrepare } from './useDebouncedSessionPrepare';
3
+ export { useLauncherPosition } from './useLauncherPosition';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/chat/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { AgentChatClient } from '../../core/instance';
2
+ import { AgentChatState } from '../../types';
3
+ /**
4
+ * Tiny React adapter on top of the imperative client. Subscribes via the
5
+ * client's internal change bus and snapshots `getState()` for React.
6
+ *
7
+ * `client.getState()` itself is responsible for caching the snapshot —
8
+ * `useSyncExternalStore` requires `getSnapshot` to return the *same*
9
+ * reference until the store actually mutates. Without that contract,
10
+ * concurrent rendering interprets the store as torn and remounts the
11
+ * subtree, producing visible flashes (the launcher disappearing on first
12
+ * paint is a symptom of exactly this anti-pattern).
13
+ */
14
+ export declare function useClientState(client: AgentChatClient): AgentChatState;
15
+ //# sourceMappingURL=useClientState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useClientState.d.ts","sourceRoot":"","sources":["../../../../src/chat/hooks/useClientState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,cAAc,CAOtE"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Debounced session warm-up while the user types in the composer.
3
+ * Fires {@link onPrepare} after {@link debounceMs} of no input changes.
4
+ */
5
+ export declare function useDebouncedSessionPrepare(sessionId: string, input: string, onPrepare: ((sessionId: string, signal: AbortSignal) => void | Promise<void>) | undefined, options?: {
6
+ debounceMs?: number;
7
+ enabled?: boolean;
8
+ }): void;
9
+ //# sourceMappingURL=useDebouncedSessionPrepare.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDebouncedSessionPrepare.d.ts","sourceRoot":"","sources":["../../../../src/chat/hooks/useDebouncedSessionPrepare.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,EACzF,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GACnD,IAAI,CAkBN"}
@@ -0,0 +1,11 @@
1
+ import { MouseEvent as ReactMouseEvent, TouchEvent as ReactTouchEvent } from 'react';
2
+ import { AIAssistantPosition } from '../types';
3
+ export declare function useLauncherPosition(widgetPosition?: string): {
4
+ position: AIAssistantPosition;
5
+ bubbleBindings: {
6
+ onMouseDown: (event: ReactMouseEvent<HTMLElement>) => void;
7
+ onTouchStart: (event: ReactTouchEvent<HTMLElement>) => void;
8
+ onClick: (event: ReactMouseEvent<HTMLElement>) => void;
9
+ };
10
+ };
11
+ //# sourceMappingURL=useLauncherPosition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLauncherPosition.d.ts","sourceRoot":"","sources":["../../../../src/chat/hooks/useLauncherPosition.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,UAAU,IAAI,eAAe,EAClC,KAAK,UAAU,IAAI,eAAe,EACnC,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAkCpD,wBAAgB,mBAAmB,CAAC,cAAc,CAAC,EAAE,MAAM;;;6BAkEhC,eAAe,CAAC,WAAW,CAAC;8BAI3B,eAAe,CAAC,WAAW,CAAC;yBAIjC,eAAe,CAAC,WAAW,CAAC;;EAWlD"}
@@ -0,0 +1,11 @@
1
+ import { Locale as AntdLocale } from 'antd/es/locale';
2
+ import { Locale as XLocale } from '@ant-design/x/locale';
3
+ export type LocaleKey = 'en' | 'zh-CN';
4
+ export type TranslationKey = 'launcher.openLabel' | 'launcher.closeLabel' | 'header.title' | 'header.closeLabel' | 'composer.placeholder' | 'composer.send' | 'message.failed' | 'message.retry' | 'banner.newMessages' | 'state.empty' | 'state.greeting' | 'state.loading' | 'state.error' | 'auth.loginTitle' | 'auth.loginDescription' | 'auth.emailPlaceholder' | 'auth.passwordPlaceholder' | 'auth.loginButton' | 'auth.loginFailed' | 'sessions.title' | 'sessions.empty' | 'sessions.newChat' | 'sessions.groupToday' | 'sessions.groupYesterday' | 'sessions.groupEarlier' | 'sessions.deleteSuccess' | 'sessions.loadingMore' | 'toolbar.agent' | 'toolbar.skill' | 'toolbar.agentPlaceholder' | 'toolbar.skillPlaceholder' | 'toolbar.agentSkill' | 'toolbar.agentsEmpty' | 'toolbar.agentsEmptyPermission' | 'toolbar.agentsEmptyNotConfigured' | 'toolbar.skillEmpty' | 'toolbar.skillWriteConfirm' | 'toolbar.skillWriteConfirmShort' | 'toolbar.skillNone' | 'toolbar.skillNoneHint' | 'toolbar.loading' | 'stream.thinking' | 'stream.result' | 'feedback.groupLabel' | 'feedback.up' | 'feedback.down' | 'feedback.downTitle' | 'feedback.downHint' | 'feedback.commentPlaceholder' | 'feedback.submit' | 'feedback.cancel' | 'feedback.reasonRequired' | 'feedback.otherRequired' | 'feedback.submitSuccess' | 'feedback.submitFailed' | 'feedback.tagsLoadFailed' | 'blockExport.excel' | 'blockExport.png' | 'blockExport.success' | 'blockExport.failed';
5
+ export declare function resolveLocale(input: string | undefined): LocaleKey;
6
+ /** antd-only locale (legacy). */
7
+ export declare function pickAntdLocale(localeKey: LocaleKey): AntdLocale;
8
+ /** Merged antd + @ant-design/x locale for XProvider. */
9
+ export declare function pickXLocale(localeKey: LocaleKey): XLocale;
10
+ export declare function t(key: TranslationKey, locale: string | undefined): string;
11
+ //# sourceMappingURL=i18n.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../src/chat/i18n.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC;AAEvC,MAAM,MAAM,cAAc,GACtB,oBAAoB,GACpB,qBAAqB,GACrB,cAAc,GACd,mBAAmB,GACnB,sBAAsB,GACtB,eAAe,GACf,gBAAgB,GAChB,eAAe,GACf,oBAAoB,GACpB,aAAa,GACb,gBAAgB,GAChB,eAAe,GACf,aAAa,GACb,iBAAiB,GACjB,uBAAuB,GACvB,uBAAuB,GACvB,0BAA0B,GAC1B,kBAAkB,GAClB,kBAAkB,GAClB,gBAAgB,GAChB,gBAAgB,GAChB,kBAAkB,GAClB,qBAAqB,GACrB,yBAAyB,GACzB,uBAAuB,GACvB,wBAAwB,GACxB,sBAAsB,GACtB,eAAe,GACf,eAAe,GACf,0BAA0B,GAC1B,0BAA0B,GAC1B,oBAAoB,GACpB,qBAAqB,GACrB,+BAA+B,GAC/B,kCAAkC,GAClC,oBAAoB,GACpB,2BAA2B,GAC3B,gCAAgC,GAChC,mBAAmB,GACnB,uBAAuB,GACvB,iBAAiB,GACjB,iBAAiB,GACjB,eAAe,GACf,qBAAqB,GACrB,aAAa,GACb,eAAe,GACf,oBAAoB,GACpB,mBAAmB,GACnB,6BAA6B,GAC7B,iBAAiB,GACjB,iBAAiB,GACjB,yBAAyB,GACzB,wBAAwB,GACxB,wBAAwB,GACxB,uBAAuB,GACvB,yBAAyB,GACzB,mBAAmB,GACnB,iBAAiB,GACjB,qBAAqB,GACrB,oBAAoB,CAAC;AAoIzB,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAKlE;AAED,iCAAiC;AACjC,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,UAAU,CAE/D;AAED,wDAAwD;AACxD,wBAAgB,WAAW,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAIzD;AAED,wBAAgB,CAAC,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAGzE"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Layout-only CSS inside the Shadow Root.
3
+ * Colors / components come from antd + @ant-design/x via StyleProvider → shadowRoot.
4
+ */
5
+ /** Design tokens for widget UI (light panel is the default). */
6
+ export declare const SHADOW_UI_TOKENS = "\n:host,\n.ac-shadow-mount {\n --surface: #ffffff;\n --border: #e8e8e8;\n --color-text-secondary: rgba(0, 0, 0, 0.45);\n --ac-text-primary: rgba(0, 0, 0, 0.88);\n --ac-text-secondary: rgba(0, 0, 0, 0.45);\n --ac-text-placeholder: rgba(0, 0, 0, 0.35);\n --ac-text-on-primary: #ffffff;\n color: var(--ac-text-primary);\n box-sizing: border-box;\n}\n\n:host([data-theme='dark']),\n:host([data-theme='dark']) .ac-shadow-mount {\n --surface: #141414;\n --border: rgba(255, 255, 255, 0.12);\n --color-text-secondary: rgba(255, 255, 255, 0.45);\n --ac-text-primary: rgba(255, 255, 255, 0.88);\n --ac-text-secondary: rgba(255, 255, 255, 0.45);\n --ac-text-placeholder: rgba(255, 255, 255, 0.35);\n --ac-text-on-primary: #ffffff;\n color: var(--ac-text-primary);\n}\n\n.ac-shadow-mount *,\n.ac-shadow-mount *::before,\n.ac-shadow-mount *::after {\n box-sizing: border-box;\n}\n";
7
+ /** Drawer inline in shadow — layout details live in ai-assistant-layout-fix.css */
8
+ export declare const DRAWER_SHELL_STYLES = "\n.ac-shadow-mount .ai-assistant-drawer .ant-drawer-mask {\n position: absolute !important;\n inset: 0 !important;\n}\n\n.ac-shadow-mount .ai-assistant-drawer .ant-drawer-header {\n flex-shrink: 0;\n}\n";
9
+ export declare const HOST_STYLES = "\n:host {\n --agent-chat-z: 2147483600;\n position: fixed;\n bottom: 24px;\n right: 24px;\n z-index: var(--agent-chat-z);\n font-family: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;\n font-size: 14px;\n line-height: 1.5;\n color: rgba(0, 0, 0, 0.88);\n}\n\n:host([data-open='true']) {\n inset: 0;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n max-width: none;\n max-height: none;\n}\n\n:host([data-position='bottom-left']) {\n right: auto;\n left: 24px;\n}\n\n:host([data-position='top-right']) {\n bottom: auto;\n top: 24px;\n}\n\n:host([data-position='top-left']) {\n bottom: auto;\n top: 24px;\n right: auto;\n left: 24px;\n}\n\n.ac-shadow-mount {\n display: block;\n}\n\n/* Popups portaled here sit above the drawer and escape overflow:hidden ancestors. */\n.ac-popup-layer {\n position: fixed;\n top: 0;\n left: 0;\n width: 0;\n height: 0;\n z-index: 10050;\n overflow: visible;\n}\n\n.ac-anchor {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n gap: 12px;\n pointer-events: none;\n}\n\n:host([data-open='true']) .ac-shadow-mount {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n min-height: 0;\n}\n\n:host([data-position='bottom-left']) .ac-anchor,\n:host([data-position='top-left']) .ac-anchor {\n align-items: flex-start;\n}\n\n.ac-anchor > * {\n pointer-events: auto;\n}\n\n.ac-panel-shell {\n width: min(420px, calc(100vw - 48px));\n height: min(640px, calc(100vh - 96px));\n max-width: 100vw;\n max-height: 100vh;\n display: flex;\n flex-direction: column;\n min-height: 0;\n overflow: hidden;\n}\n\n.ac-panel-card {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n}\n\n.ac-launcher {\n flex-shrink: 0;\n}\n\n.ac-session-sidebar {\n display: flex;\n flex-direction: column;\n min-height: 0;\n width: 260px;\n min-width: 260px;\n flex-shrink: 0;\n border-right: 1px solid var(--agent-chat-border, #f0f0f0);\n background: var(--agent-chat-sidebar-bg, rgba(0, 0, 0, 0.02));\n}\n\n.ac-session-sidebar__header {\n flex-shrink: 0;\n padding: 12px 12px 8px;\n border-bottom: 1px solid var(--agent-chat-border, #f0f0f0);\n}\n\n.ac-session-sidebar__empty {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 16px;\n}\n\n.ac-conversations {\n flex: 1;\n min-height: 0;\n overflow: auto;\n padding: 4px 6px 8px;\n margin: 0;\n list-style: none;\n}\n\n.ac-conversations .ant-conversations-item {\n border-radius: 8px;\n}\n\n.ac-conversations .ant-conversations-label {\n flex: 1;\n min-width: 0;\n}\n\n:host([data-theme='dark']) .ac-session-sidebar {\n --agent-chat-border: rgba(255, 255, 255, 0.12);\n --agent-chat-sidebar-bg: rgba(255, 255, 255, 0.04);\n}\n\n:host([data-theme='light']) .ac-session-sidebar {\n --agent-chat-border: #f0f0f0;\n --agent-chat-sidebar-bg: rgba(0, 0, 0, 0.02);\n}\n\n/** Panel typography (scoped \u2014 do not override user bubble white text). */\n:host([data-theme='light']) .ac-shadow-mount .ai-assistant-drawer,\n.ac-shadow-mount .ai-assistant-drawer {\n color-scheme: light;\n}\n\n:host([data-theme='dark']) .ac-shadow-mount .ai-assistant-drawer {\n color-scheme: dark;\n}\n\n.ac-shadow-mount .ai-assistant-panel-body {\n color: var(--ac-text-primary);\n background: var(--surface);\n}\n\n.ac-shadow-mount .ai-assistant-conversations-header-title,\n.ac-shadow-mount .ai-assistant-conversations .ant-conversations-label,\n.ac-shadow-mount .ai-assistant-conversation-item-title {\n color: var(--ac-text-primary);\n}\n\n.ac-shadow-mount .ai-assistant-conversation-item-time {\n color: var(--ac-text-secondary);\n}\n\n.ac-shadow-mount .ai-assistant-sender-wrap .ant-input,\n.ac-shadow-mount .ai-assistant-sender-wrap textarea,\n.ac-shadow-mount .ai-assistant-sender-wrap .ant-input-affix-wrapper > input.ant-input {\n color: var(--ac-text-primary);\n -webkit-text-fill-color: var(--ac-text-primary);\n}\n\n.ac-shadow-mount .ai-assistant-sender-wrap .ant-input::placeholder,\n.ac-shadow-mount .ai-assistant-sender-wrap textarea::placeholder {\n color: var(--ac-text-placeholder);\n}\n\n.ac-shadow-mount .ai-assistant-bubble-list .ant-bubble-start .ai-assistant-bubble-copyable,\n.ac-shadow-mount .ai-assistant-bubble-list .ant-bubble-start .ant-typography,\n.ac-shadow-mount .ai-assistant-bubble-list .ant-bubble-start .ai-assistant-markdown-block,\n.ac-shadow-mount .ai-assistant-bubble-list .ant-bubble-start .ai-assistant-richtext-block {\n color: var(--ac-text-primary);\n}\n\n.ac-shadow-mount .ai-assistant-bubble-list .ant-bubble-end .ant-bubble-content,\n.ac-shadow-mount .ai-assistant-bubble-list .ant-bubble-end .ai-assistant-bubble-copyable,\n.ac-shadow-mount .ai-assistant-bubble-list .ant-bubble-end .ant-typography {\n color: var(--ac-text-on-primary);\n}\n\n.ac-shadow-mount .ai-assistant-think-text,\n.ac-embedded-mount .ai-assistant-think-text {\n color: var(--ac-text-secondary);\n}\n\n/* Modal / Dropdown overlays above drawer (shadow + embedded React mode) */\n.ac-popup-layer .ant-modal-root,\n.ac-popup-layer .ant-modal-wrap,\n.ac-popup-layer .ant-dropdown,\n.ac-shadow-mount .ant-modal-root,\n.ac-shadow-mount .ant-modal-wrap,\n.ac-shadow-mount .ant-dropdown,\n.ac-embedded-mount .ant-modal-root,\n.ac-embedded-mount .ant-modal-wrap,\n.ac-embedded-mount .ant-dropdown {\n z-index: 10050 !important;\n}\n\n.ac-popup-layer .ant-modal-mask,\n.ac-shadow-mount .ant-modal-mask,\n.ac-embedded-mount .ant-modal-mask {\n z-index: 10050 !important;\n}\n";
10
+ //# sourceMappingURL=host-styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-styles.d.ts","sourceRoot":"","sources":["../../../../src/chat/styles/host-styles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,gEAAgE;AAChE,eAAO,MAAM,gBAAgB,23BA+B5B,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,mBAAmB,kNAS/B,CAAC;AAEF,eAAO,MAAM,WAAW,y8KAsOvB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function getEmbeddedStaticStyles(): string;
2
+ /** Inject widget CSS into document.head (React embedded mode). */
3
+ export declare function ensureEmbeddedStaticStyles(): void;
4
+ //# sourceMappingURL=inject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../../../../src/chat/styles/inject.ts"],"names":[],"mappings":"AAgIA,wBAAgB,uBAAuB,IAAI,MAAM,CAMhD;AAED,kEAAkE;AAClE,wBAAgB,0BAA0B,IAAI,IAAI,CAajD"}
@@ -0,0 +1,56 @@
1
+ import { MessageBlock } from './components/message/types';
2
+ import { MessageFeedbackView } from '../types';
3
+ export type AIAssistantRole = "user" | "assistant";
4
+ /** 用户消息发送失败后可点「重试」再次走发送管线 */
5
+ export type AIAssistantMessageDeliveryStatus = "failed";
6
+ export interface AIAssistantMessage {
7
+ id: string;
8
+ role: AIAssistantRole;
9
+ content: string | MessageBlock[];
10
+ createdAt: number;
11
+ /** 等待接口响应时的占位气泡,不参与发送历史 */
12
+ pending?: boolean;
13
+ /** 用户消息:全部重试失败后 */
14
+ deliveryStatus?: AIAssistantMessageDeliveryStatus;
15
+ /** 用户消息已成功 POST 到会话;重试时跳过重复落库,仅重拉 SSE 等 */
16
+ userMessageSynced?: boolean;
17
+ /** SSE 思考过程(合并为一段文本,挂在助手气泡 footer) */
18
+ thinkContent?: string;
19
+ /** 思考流式输出中 */
20
+ thinkLoading?: boolean;
21
+ /** 当前轮助手回复流式进行中(占位气泡) */
22
+ streaming?: boolean;
23
+ /** 当前用户对该助手消息的赞踩状态 */
24
+ feedback?: MessageFeedbackView | null;
25
+ }
26
+ /** 一条本地会话(多窗口历史;标题由首条用户消息推导展示) */
27
+ export interface AIAssistantConversation {
28
+ id: string;
29
+ messages: AIAssistantMessage[];
30
+ updatedAt: number;
31
+ /** 后端 POST /ads/ai/sessions 返回的 sessionId,用于消息持久化与 SSE */
32
+ backendSessionId?: string;
33
+ /** 自 GET /ads/ai/sessions 同步的标题,展示时优先于本地首句推导 */
34
+ serverListTitle?: string;
35
+ }
36
+ export interface AIAssistantPosition {
37
+ x: number;
38
+ y: number;
39
+ }
40
+ export interface AIAssistantContext {
41
+ page: string;
42
+ routePath?: string;
43
+ flowId?: number;
44
+ programName?: string;
45
+ }
46
+ export type AIAssistantIntent = "GENERAL" | "STATISTICS" | "SUMMARY";
47
+ export interface AIAssistantChatRequest {
48
+ message: string;
49
+ intent: AIAssistantIntent;
50
+ history: AIAssistantMessage[];
51
+ context?: AIAssistantContext;
52
+ }
53
+ export interface AIAssistantChatResponse {
54
+ reply: string;
55
+ }
56
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/chat/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEpD,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,WAAW,CAAC;AAEnD,6BAA6B;AAC7B,MAAM,MAAM,gCAAgC,GAAG,QAAQ,CAAC;AAExD,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mBAAmB;IACnB,cAAc,CAAC,EAAE,gCAAgC,CAAC;IAClD,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,sCAAsC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,yBAAyB;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACvC;AAED,kCAAkC;AAClC,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAAC;AAErE,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,3 @@
1
+ export { pickAntdLocale, pickXLocale, resolveLocale, t, } from './i18n';
2
+ export type { LocaleKey, TranslationKey } from './i18n';
3
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/chat/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,WAAW,EACX,aAAa,EACb,CAAC,GACF,MAAM,QAAQ,CAAC;AAChB,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Unwrap `{ status, message, data }` from ReqInterceptor. Throws when
3
+ * `status !== 200` even if HTTP status is 200.
4
+ */
5
+ export declare function parseApiEnvelope<T>(body: unknown): T;
6
+ //# sourceMappingURL=api-envelope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-envelope.d.ts","sourceRoot":"","sources":["../../../src/core/api-envelope.ts"],"names":[],"mappings":"AAoBA;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,CAAC,CAqBpD"}
@@ -0,0 +1,19 @@
1
+ import { HttpClient } from './http';
2
+ /** Sent on the first `/app-client/auth` call when an account token already exists. */
3
+ export declare const ACCOUNT_TOKEN_HEADER = "x-account-token";
4
+ export declare const AUTHORIZATION_HEADER = "Authorization";
5
+ /** C-end client API DSN header (`AppClientDsnGuard`). */
6
+ export declare const CLIENT_DSN_HEADER = "X-App-Dsn";
7
+ /** Headers for `POST /app-client/auth` — `x-app-dsn` (+ optional `x-account-token`). */
8
+ export declare function buildAppClientAuthHeaders(dsn: string, accountToken?: string | null): Record<string, string>;
9
+ export declare function normalizeAccessToken(accessToken: string): string;
10
+ export declare function formatBearerToken(accessToken: string): string;
11
+ /**
12
+ * Attach the access token returned by `/app-client/auth` for all subsequent API
13
+ * calls (`/chat`, messages, etc.).
14
+ */
15
+ export declare function applyAccessTokenHeader(http: HttpClient, accessToken: string): void;
16
+ export declare function clearAccessTokenHeader(http: HttpClient): void;
17
+ /** Headers for `/agent/*` client APIs (`X-App-Dsn` only; Bearer comes from defaults). */
18
+ export declare function buildAgentClientHeaders(dsn: string): Record<string, string>;
19
+ //# sourceMappingURL=auth-headers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-headers.d.ts","sourceRoot":"","sources":["../../../src/core/auth-headers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAGzC,sFAAsF;AACtF,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AAEtD,eAAO,MAAM,oBAAoB,kBAAkB,CAAC;AAEpD,yDAAyD;AACzD,eAAO,MAAM,iBAAiB,cAAc,CAAC;AAE7C,wFAAwF;AACxF,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,EACX,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAC3B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQxB;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAElF;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAE7D;AAED,yFAAyF;AACzF,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE3E"}
@@ -0,0 +1,9 @@
1
+ import { AppClientAuthData } from './auth-types';
2
+ /**
3
+ * Unwrap `{ data: T }` envelopes from the backend. Falls back to the root
4
+ * object when no `data` key is present.
5
+ */
6
+ export declare function unwrapApiData<T extends Record<string, unknown>>(body: unknown): T | null;
7
+ /** Parse `/app-client/auth` or `/user/login` JSON into a normalized auth payload. */
8
+ export declare function parseAuthResponse(body: unknown): AppClientAuthData | null;
9
+ //# sourceMappingURL=auth-response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-response.d.ts","sourceRoot":"","sources":["../../../src/core/auth-response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAMtD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,CAAC,GAAG,IAAI,CAIxF;AAsCD,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,iBAAiB,GAAG,IAAI,CAezE"}
@@ -0,0 +1,23 @@
1
+ import { AppClientAuthData, AppClientInfo, AuthUser } from './auth-types';
2
+ export interface AuthStoreState {
3
+ dsn: string | null;
4
+ accessToken: string | null;
5
+ user: AuthUser | null;
6
+ appClient: AppClientInfo | null;
7
+ accountTokenBound: boolean | null;
8
+ setAuth: (dsn: string, data: AppClientAuthData) => void;
9
+ clearAuth: () => void;
10
+ getAccessTokenForDsn: (dsn: string) => string | null;
11
+ }
12
+ export declare const useAuthStore: import('zustand').UseBoundStore<Omit<import('zustand').StoreApi<AuthStoreState>, "persist"> & {
13
+ persist: {
14
+ setOptions: (options: Partial<import('zustand/middleware').PersistOptions<AuthStoreState, AuthStoreState>>) => void;
15
+ clearStorage: () => void;
16
+ rehydrate: () => Promise<void> | void;
17
+ hasHydrated: () => boolean;
18
+ onHydrate: (fn: (state: AuthStoreState) => void) => () => void;
19
+ onFinishHydration: (fn: (state: AuthStoreState) => void) => () => void;
20
+ getOptions: () => Partial<import('zustand/middleware').PersistOptions<AuthStoreState, AuthStoreState>>;
21
+ };
22
+ }>;
23
+ //# sourceMappingURL=auth-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-store.d.ts","sourceRoot":"","sources":["../../../src/core/auth-store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE/E,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,aAAa,GAAG,IAAI,CAAC;IAChC,iBAAiB,EAAE,OAAO,GAAG,IAAI,CAAC;IAClC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACxD,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,oBAAoB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CACtD;AAUD,eAAO,MAAM,YAAY;;;;;;;;;;EAwBxB,CAAC"}
@@ -0,0 +1,26 @@
1
+ /** App client record returned by `/app-client/auth`. */
2
+ export interface AppClientInfo {
3
+ id: number;
4
+ dsn: string;
5
+ name: string;
6
+ }
7
+ /** Authenticated user returned by `/app-client/auth` or `/user/login`. */
8
+ export interface AuthUser {
9
+ id: number;
10
+ employeeId?: string;
11
+ email: string;
12
+ username: string;
13
+ userType: string;
14
+ userRole: string;
15
+ mustChangePassword?: boolean;
16
+ createdAt?: string;
17
+ }
18
+ /** Payload inside the API `data` field on successful auth. */
19
+ export interface AppClientAuthData {
20
+ ok: boolean;
21
+ appClient?: AppClientInfo;
22
+ accessToken?: string;
23
+ user?: AuthUser;
24
+ accountTokenBound?: boolean;
25
+ }
26
+ //# sourceMappingURL=auth-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-types.d.ts","sourceRoot":"","sources":["../../../src/core/auth-types.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,0EAA0E;AAC1E,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,8DAA8D;AAC9D,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B"}
@@ -0,0 +1,25 @@
1
+ import { SessionInfo, UserContext, AgentMessage } from '../types';
2
+ export interface SessionContext {
3
+ sdkVersion: string;
4
+ origin: string;
5
+ locale: string;
6
+ user?: UserContext;
7
+ }
8
+ export interface SessionManagerOptions {
9
+ context: SessionContext;
10
+ }
11
+ /**
12
+ * Lightweight in-memory holder for active chat session metadata.
13
+ */
14
+ export declare class SessionManager {
15
+ private context;
16
+ private sessionId;
17
+ private initialMessages;
18
+ constructor(options: SessionManagerOptions);
19
+ updateContext(partial: Partial<SessionContext>): void;
20
+ getSession(): SessionInfo | null;
21
+ getInitialMessages(): AgentMessage[];
22
+ setSession(sessionId: string, initialMessages?: AgentMessage[]): void;
23
+ reset(): void;
24
+ }
25
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/core/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAEvE,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,cAAc,CAAC;CACzB;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAiB;IAEhC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,eAAe,CAAsB;gBAEjC,OAAO,EAAE,qBAAqB;IAI1C,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;IAIrD,UAAU,IAAI,WAAW,GAAG,IAAI;IAKhC,kBAAkB,IAAI,YAAY,EAAE;IAIpC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,GAAE,YAAY,EAAO,GAAG,IAAI;IAKzE,KAAK,IAAI,IAAI;CAId"}