@bytexbyte/nxtlinq-ai-agent-ui-react-development 0.1.2 → 0.1.4

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 (93) hide show
  1. package/dist/ChatBot.d.ts +5 -0
  2. package/dist/ChatBot.d.ts.map +1 -0
  3. package/dist/ChatBot.js +35 -0
  4. package/dist/assets/images/adiSideItalicDataUri.d.ts +2 -0
  5. package/dist/assets/images/adiSideItalicDataUri.d.ts.map +1 -0
  6. package/dist/assets/images/adiSideItalicDataUri.js +1 -0
  7. package/dist/context/AgentAssistantContext.d.ts.map +1 -1
  8. package/dist/context/AgentAssistantContext.js +18 -0
  9. package/dist/context/ChatBotContext.d.ts +5 -0
  10. package/dist/context/ChatBotContext.d.ts.map +1 -0
  11. package/dist/context/ChatBotContext.js +2908 -0
  12. package/dist/index.d.ts +5 -13
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +4 -11
  15. package/dist/legacy/chatbot/context/ChatBotContext.d.ts.map +1 -1
  16. package/dist/legacy/chatbot/context/ChatBotContext.js +14 -0
  17. package/dist/types/ChatBotTypes.d.ts +166 -0
  18. package/dist/types/ChatBotTypes.d.ts.map +1 -0
  19. package/dist/types/ChatBotTypes.js +1 -0
  20. package/dist/ui/BerifyMeModal.d.ts +17 -0
  21. package/dist/ui/BerifyMeModal.d.ts.map +1 -0
  22. package/dist/ui/BerifyMeModal.js +110 -0
  23. package/dist/ui/ChatBotHeader.d.ts +15 -0
  24. package/dist/ui/ChatBotHeader.d.ts.map +1 -0
  25. package/dist/ui/ChatBotHeader.js +62 -0
  26. package/dist/ui/ChatBotUI.d.ts +3 -0
  27. package/dist/ui/ChatBotUI.d.ts.map +1 -0
  28. package/dist/ui/ChatBotUI.js +557 -0
  29. package/dist/ui/MessageInput.d.ts +3 -0
  30. package/dist/ui/MessageInput.d.ts.map +1 -0
  31. package/dist/ui/MessageInput.js +321 -0
  32. package/dist/ui/MessageList.d.ts +4 -0
  33. package/dist/ui/MessageList.d.ts.map +1 -0
  34. package/dist/ui/MessageList.js +455 -0
  35. package/dist/ui/ModelSelector.d.ts +4 -0
  36. package/dist/ui/ModelSelector.d.ts.map +1 -0
  37. package/dist/ui/ModelSelector.js +122 -0
  38. package/dist/ui/NotificationModal.d.ts +15 -0
  39. package/dist/ui/NotificationModal.d.ts.map +1 -0
  40. package/dist/ui/NotificationModal.js +53 -0
  41. package/dist/ui/PermissionForm.d.ts +8 -0
  42. package/dist/ui/PermissionForm.d.ts.map +1 -0
  43. package/dist/ui/PermissionForm.js +465 -0
  44. package/dist/ui/PresetMessages.d.ts +4 -0
  45. package/dist/ui/PresetMessages.d.ts.map +1 -0
  46. package/dist/ui/PresetMessages.js +33 -0
  47. package/dist/ui/VoiceModePanel.d.ts +3 -0
  48. package/dist/ui/VoiceModePanel.d.ts.map +1 -0
  49. package/dist/ui/VoiceModePanel.js +95 -0
  50. package/dist/ui/chatBotHeaderParts.d.ts +15 -0
  51. package/dist/ui/chatBotHeaderParts.d.ts.map +1 -0
  52. package/dist/ui/chatBotHeaderParts.js +50 -0
  53. package/dist/ui/index.d.ts +9 -0
  54. package/dist/ui/index.d.ts.map +1 -0
  55. package/dist/ui/index.js +8 -0
  56. package/dist/ui/styles/isolatedStyles.d.ts +73 -0
  57. package/dist/ui/styles/isolatedStyles.d.ts.map +1 -0
  58. package/dist/ui/styles/isolatedStyles.js +985 -0
  59. package/package.json +3 -3
  60. package/src/{legacy/chatbot/context → context}/ChatBotContext.tsx +0 -1
  61. package/src/index.ts +17 -40
  62. package/src/{legacy/chatbot/ui → ui}/ModelSelector.tsx +1 -1
  63. package/src/{legacy/chatbot/ui → ui}/VoiceModePanel.tsx +1 -1
  64. package/src/ui/index.ts +8 -0
  65. package/src/NxtlinqAgentChat.tsx +0 -79
  66. package/src/components/AgentAssistantShell.tsx +0 -104
  67. package/src/components/AgentComposer.tsx +0 -134
  68. package/src/components/AgentMessageList.tsx +0 -78
  69. package/src/components/AgentRemoteAudio.tsx +0 -34
  70. package/src/components/AgentVoiceBar.tsx +0 -173
  71. package/src/components/PresetMessageChips.tsx +0 -41
  72. package/src/context/AgentAssistantContext.tsx +0 -278
  73. package/src/legacy/index.ts +0 -26
  74. package/src/theme/defaultTheme.ts +0 -22
  75. package/src/types.ts +0 -65
  76. package/src/voice/useVoiceConnectOrchestration.ts +0 -117
  77. package/src/voice/useVoiceMicState.ts +0 -117
  78. package/src/voice/useVoiceTranscriptMessages.ts +0 -188
  79. package/src/voice/voiceMicConstants.ts +0 -13
  80. package/src/voice/voiceUserBubble.ts +0 -71
  81. /package/src/{legacy/chatbot/ChatBot.tsx → ChatBot.tsx} +0 -0
  82. /package/src/{legacy/assets → assets}/images/adiSideItalicDataUri.ts +0 -0
  83. /package/src/{legacy/chatbot/types → types}/ChatBotTypes.ts +0 -0
  84. /package/src/{legacy/chatbot/ui → ui}/BerifyMeModal.tsx +0 -0
  85. /package/src/{legacy/chatbot/ui → ui}/ChatBotHeader.tsx +0 -0
  86. /package/src/{legacy/chatbot/ui → ui}/ChatBotUI.tsx +0 -0
  87. /package/src/{legacy/chatbot/ui → ui}/MessageInput.tsx +0 -0
  88. /package/src/{legacy/chatbot/ui → ui}/MessageList.tsx +0 -0
  89. /package/src/{legacy/chatbot/ui → ui}/NotificationModal.tsx +0 -0
  90. /package/src/{legacy/chatbot/ui → ui}/PermissionForm.tsx +0 -0
  91. /package/src/{legacy/chatbot/ui → ui}/PresetMessages.tsx +0 -0
  92. /package/src/{legacy/chatbot/ui → ui}/chatBotHeaderParts.tsx +0 -0
  93. /package/src/{legacy/chatbot/ui → ui}/styles/isolatedStyles.ts +0 -0
package/dist/index.d.ts CHANGED
@@ -1,16 +1,8 @@
1
- export { NxtlinqAgentChat } from './NxtlinqAgentChat';
2
- export { ChatBot, NxtlinqChatBot, ChatBotProvider, useChatBot, ChatBotUI, MessageInput, MessageList, ModelSelector, NotificationModal, PermissionForm, PresetMessages, BerifyMeModal, } from './legacy';
3
- export type { AIModel, AITMetadata, ChatBotContextType, ChatBotProps, NovaError, NovaResponse, ToolCall, } from './legacy';
4
- export type { NxtlinqAgentChatProps, AgentAssistantTheme, PresetMessage, Message, ToolUse, } from './types';
5
- export { defaultAgentAssistantTheme } from './theme/defaultTheme';
6
- export { AgentAssistantProvider, useAgentAssistant, voiceStatusLabel, type AgentAssistantContextValue, type InteractionMode, } from './context/AgentAssistantContext';
7
- export { AgentMessageList } from './components/AgentMessageList';
8
- export { AgentComposer } from './components/AgentComposer';
9
- export { AgentVoiceBar } from './components/AgentVoiceBar';
10
- export { AgentRemoteAudio } from './components/AgentRemoteAudio';
11
- export { PresetMessageChips } from './components/PresetMessageChips';
12
- export { AgentAssistantShell } from './components/AgentAssistantShell';
13
- export { NxtlinqAgentProvider, useNxtlinqAgent, useNxtlinqVoice, createNxtlinqAgentWeb, fileToAttachment, type NxtlinqAgentProviderProps, } from '@bytexbyte/nxtlinq-ai-agent-web-development';
1
+ export { ChatBot } from './ChatBot';
2
+ export { ChatBotProvider, useChatBot } from './context/ChatBotContext';
3
+ export { ChatBotUI, MessageInput, MessageList, ModelSelector, NotificationModal, PermissionForm, PresetMessages, BerifyMeModal, } from './ui/index';
4
+ export type { AIModel, AITMetadata, ChatBotContextType, ChatBotProps, NovaError, NovaResponse, ToolCall, ToolUse, PresetMessage, } from './types/ChatBotTypes';
14
5
  export type { AgentEnvironment, AgentConfig, Attachment, AgentResponse, SendMessageOptions, NxtlinqAgentSnapshot, VoiceSession, VoiceStatus, } from '@bytexbyte/nxtlinq-ai-agent-core-development';
15
6
  export { NxtlinqAgent, setApiHosts, VoiceNotSupportedError, STORAGE_KEYS, } from '@bytexbyte/nxtlinq-ai-agent-core-development';
7
+ export { createNxtlinqApi, useLocalStorage, useSessionStorage, useSpeechToTextFromMic, useVoiceMode, metakeepClient, getEthers, sleep, walletTextUtils, } from '@bytexbyte/nxtlinq-ai-agent-web-development';
16
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EACL,OAAO,EACP,cAAc,EACd,eAAe,EACf,UAAU,EACV,SAAS,EACT,YAAY,EACZ,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,aAAa,GACd,MAAM,UAAU,CAAC;AAElB,YAAY,EACV,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,QAAQ,GACT,MAAM,UAAU,CAAC;AAElB,YAAY,EACV,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACb,OAAO,EACP,OAAO,GACR,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,0BAA0B,EAC/B,KAAK,eAAe,GACrB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,KAAK,yBAAyB,GAC/B,MAAM,6CAA6C,CAAC;AAErD,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,WAAW,GACZ,MAAM,8CAA8C,CAAC;AAEtD,OAAO,EACL,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,YAAY,GACb,MAAM,8CAA8C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEvE,OAAO,EACL,SAAS,EACT,YAAY,EACZ,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,aAAa,GACd,MAAM,sBAAsB,CAAC;AAE9B,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,WAAW,GACZ,MAAM,8CAA8C,CAAC;AAEtD,OAAO,EACL,YAAY,EACZ,WAAW,EACX,sBAAsB,EACtB,YAAY,GACb,MAAM,8CAA8C,CAAC;AAEtD,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,YAAY,EACZ,cAAc,EACd,SAAS,EACT,KAAK,EACL,eAAe,GAChB,MAAM,6CAA6C,CAAC"}
package/dist/index.js CHANGED
@@ -1,12 +1,5 @@
1
- export { NxtlinqAgentChat } from './NxtlinqAgentChat';
2
- export { ChatBot, NxtlinqChatBot, ChatBotProvider, useChatBot, ChatBotUI, MessageInput, MessageList, ModelSelector, NotificationModal, PermissionForm, PresetMessages, BerifyMeModal, } from './legacy';
3
- export { defaultAgentAssistantTheme } from './theme/defaultTheme';
4
- export { AgentAssistantProvider, useAgentAssistant, voiceStatusLabel, } from './context/AgentAssistantContext';
5
- export { AgentMessageList } from './components/AgentMessageList';
6
- export { AgentComposer } from './components/AgentComposer';
7
- export { AgentVoiceBar } from './components/AgentVoiceBar';
8
- export { AgentRemoteAudio } from './components/AgentRemoteAudio';
9
- export { PresetMessageChips } from './components/PresetMessageChips';
10
- export { AgentAssistantShell } from './components/AgentAssistantShell';
11
- export { NxtlinqAgentProvider, useNxtlinqAgent, useNxtlinqVoice, createNxtlinqAgentWeb, fileToAttachment, } from '@bytexbyte/nxtlinq-ai-agent-web-development';
1
+ export { ChatBot } from './ChatBot';
2
+ export { ChatBotProvider, useChatBot } from './context/ChatBotContext';
3
+ export { ChatBotUI, MessageInput, MessageList, ModelSelector, NotificationModal, PermissionForm, PresetMessages, BerifyMeModal, } from './ui/index';
12
4
  export { NxtlinqAgent, setApiHosts, VoiceNotSupportedError, STORAGE_KEYS, } from '@bytexbyte/nxtlinq-ai-agent-core-development';
5
+ export { createNxtlinqApi, useLocalStorage, useSessionStorage, useSpeechToTextFromMic, useVoiceMode, metakeepClient, getEthers, sleep, walletTextUtils, } from '@bytexbyte/nxtlinq-ai-agent-web-development';
@@ -1 +1 @@
1
- {"version":3,"file":"ChatBotContext.d.ts","sourceRoot":"","sources":["../../../../src/legacy/chatbot/context/ChatBotContext.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAwB/B,OAAO,EAEL,kBAAkB,EAClB,YAAY,EAEb,MAAM,uBAAuB,CAAC;AAM/B,eAAO,MAAM,UAAU,0BAMtB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CA6mGlD,CAAC"}
1
+ {"version":3,"file":"ChatBotContext.d.ts","sourceRoot":"","sources":["../../../../src/legacy/chatbot/context/ChatBotContext.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAwB/B,OAAO,EAEL,kBAAkB,EAClB,YAAY,EAEb,MAAM,uBAAuB,CAAC;AAM/B,eAAO,MAAM,UAAU,0BAMtB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAynGlD,CAAC"}
@@ -2204,6 +2204,20 @@ piiDisplayMode = 'redacted', }) => {
2204
2204
  setPreferredChatMode('text');
2205
2205
  await exitVoiceMode();
2206
2206
  }, [exitVoiceMode, setPreferredChatMode]);
2207
+ // iOS 切換 App 或相機後返回時,若連線已斷開則自動停止語音 mode
2208
+ React.useEffect(() => {
2209
+ if (typeof document === 'undefined')
2210
+ return;
2211
+ const handleVisibilityChange = () => {
2212
+ if (document.visibilityState !== 'visible')
2213
+ return;
2214
+ if (!isVoiceMode)
2215
+ return;
2216
+ void handleExitVoiceMode();
2217
+ };
2218
+ document.addEventListener('visibilitychange', handleVisibilityChange);
2219
+ return () => document.removeEventListener('visibilitychange', handleVisibilityChange);
2220
+ }, [isVoiceMode, handleExitVoiceMode]);
2207
2221
  // Play text-to-speech (simplified, no queue)
2208
2222
  const playTextToSpeech = React.useCallback(async (text, messageIndex) => {
2209
2223
  if (!textToSpeechEnabled || !text.trim())
@@ -0,0 +1,166 @@
1
+ import type { VoiceStatus, AIT, AITApi, Message, ServicePermission, Attachment } from '@bytexbyte/nxtlinq-ai-agent-core-development';
2
+ export interface PresetMessage {
3
+ text: string;
4
+ autoSend?: boolean;
5
+ }
6
+ export interface ToolUse {
7
+ name: string;
8
+ input: Record<string, any>;
9
+ }
10
+ export interface ToolCall {
11
+ toolUse: ToolUse;
12
+ }
13
+ export interface NovaResponse {
14
+ result: string;
15
+ reply: Array<{
16
+ text: string;
17
+ }>;
18
+ toolCall?: ToolCall;
19
+ }
20
+ export interface NovaError {
21
+ error: string;
22
+ }
23
+ export interface AITMetadata {
24
+ permissions: string[];
25
+ issuedBy: string;
26
+ }
27
+ export interface AIModel {
28
+ label: string;
29
+ value: string;
30
+ }
31
+ export interface ChatBotProps {
32
+ onMessage?: (message: Message) => void;
33
+ onError?: (error: Error) => void;
34
+ onToolUse?: (toolUse: ToolUse, onProgress?: (update: {
35
+ status?: string;
36
+ progress?: number;
37
+ partialResult?: string;
38
+ steps?: string[];
39
+ partialContent?: string;
40
+ }) => void) => Promise<Message | void>;
41
+ presetMessages?: PresetMessage[];
42
+ placeholder?: string;
43
+ className?: string;
44
+ maxRetries?: number;
45
+ retryDelay?: number;
46
+ serviceId: string;
47
+ apiKey: string;
48
+ apiSecret: string;
49
+ environment?: 'production' | 'staging';
50
+ onVerifyWallet?: () => Promise<{
51
+ token: string;
52
+ } | undefined>;
53
+ permissionGroup?: string;
54
+ children?: React.ReactNode;
55
+ onModelChange?: (model: AIModel) => void;
56
+ storageMode?: "session-storage" | "local-storage";
57
+ requireWalletIDVVerification?: boolean;
58
+ isSemiAutomaticMode?: boolean;
59
+ customUserInfo?: Record<string, any>;
60
+ customUsername?: string;
61
+ idvBannerDismissSeconds?: number;
62
+ berifymeMode?: 'built-in' | 'external';
63
+ isStopRecordingOnSend?: boolean;
64
+ customError?: string;
65
+ /** PII display mode: how PII protection is visualized in chat messages
66
+ * - 'plain': No visualization, messages look like normal chat
67
+ * - 'redacted': Anonymized text with PII tokens displayed (default)
68
+ */
69
+ piiDisplayMode?: 'plain' | 'redacted';
70
+ }
71
+ export interface ChatBotContextType {
72
+ messages: Message[];
73
+ inputValue: string;
74
+ isLoading: boolean;
75
+ isOpen: boolean;
76
+ hitAddress: string | null;
77
+ ait: AIT | null;
78
+ permissions: string[];
79
+ availablePermissions: ServicePermission[];
80
+ showPermissionForm: boolean;
81
+ isPermissionFormOpen: boolean;
82
+ isAITLoading: boolean;
83
+ isAITEnabling: boolean;
84
+ isDisabled: boolean;
85
+ walletInfo: any;
86
+ isWalletLoading: boolean;
87
+ isAutoConnecting: boolean;
88
+ notification: {
89
+ show: boolean;
90
+ type: 'success' | 'error' | 'warning' | 'info';
91
+ message: string;
92
+ autoHide?: boolean;
93
+ duration?: number;
94
+ };
95
+ isMicEnabled: boolean;
96
+ isAwaitingMicGesture: boolean;
97
+ transcript: string;
98
+ textInputRef: React.RefObject<HTMLInputElement>;
99
+ autoSendEnabled: boolean;
100
+ textToSpeechEnabled: boolean;
101
+ speechingIndex: number | undefined;
102
+ isTtsProcessing: boolean;
103
+ requiresGesture?: boolean;
104
+ availableModels: AIModel[];
105
+ selectedModelIndex: number;
106
+ showModelSelector: boolean;
107
+ suggestions: PresetMessage[];
108
+ piiDisplayMode: 'plain' | 'redacted';
109
+ isVoiceMode: boolean;
110
+ voiceStatus: VoiceStatus;
111
+ isVoiceConnecting: boolean;
112
+ isMicMuted: boolean;
113
+ remoteAudioRef: React.RefObject<HTMLAudioElement>;
114
+ setInputValue: (value: string) => void;
115
+ setIsOpen: (open: boolean) => void;
116
+ setShowPermissionForm: (show: boolean) => void;
117
+ setIsPermissionFormOpen: (open: boolean) => void;
118
+ setPermissions: (permissions: string[]) => void;
119
+ setIsDisabled: (disabled: boolean) => void;
120
+ setIsWalletLoading: (loading: boolean) => void;
121
+ setNotification: (notification: any) => void;
122
+ setSelectedModelIndex: (index: number) => void;
123
+ setSuggestions: (suggestions: PresetMessage[]) => void;
124
+ setAutoSendEnabled: (enabled: boolean) => void;
125
+ setTextToSpeechEnabled: (enabled: boolean) => void;
126
+ connectWallet: (autoShowSignInMessage?: boolean) => Promise<string | false | undefined>;
127
+ signInWallet: (autoShowSuccessMessage?: boolean) => Promise<void>;
128
+ sendMessage: (content: string, retryCount?: number) => Promise<void>;
129
+ handleSubmit: (e: React.FormEvent, attachments?: Attachment[]) => Promise<void>;
130
+ handlePresetMessage: (message: PresetMessage) => void;
131
+ savePermissions: (newPermissions?: string[]) => Promise<void>;
132
+ enableAIT: (toolName: string) => Promise<boolean>;
133
+ handleVerifyWalletClick: (method: 'berifyme' | 'custom') => Promise<void>;
134
+ showSuccess: (message: string) => void;
135
+ showError: (message: string) => void;
136
+ showWarning: (message: string) => void;
137
+ showInfo: (message: string) => void;
138
+ refreshAIT: (forceUpdatePermissions?: boolean) => Promise<void>;
139
+ startRecording: () => Promise<void>;
140
+ stopRecording: () => void;
141
+ clearRecording: () => void;
142
+ handleModelChange: (modelIndex: number) => void;
143
+ getCurrentModel: () => AIModel;
144
+ playTextToSpeech: (text: string) => Promise<void>;
145
+ stopTextToSpeech: () => void;
146
+ retryTtsWithGesture?: () => Promise<void>;
147
+ uploadAttachment: (file: File) => Promise<{
148
+ url: string;
149
+ } | {
150
+ error: string;
151
+ }>;
152
+ enterVoiceMode: () => Promise<void>;
153
+ exitVoiceMode: () => Promise<void>;
154
+ toggleVoiceMicMute: () => void;
155
+ interruptVoice: () => void;
156
+ onSave: (newPermissions?: string[]) => Promise<void>;
157
+ onConnectWallet: () => Promise<string | false | undefined>;
158
+ onSignIn: () => Promise<void>;
159
+ isNeedSignInWithWallet: boolean;
160
+ onVerifyWallet: (method: 'berifyme' | 'custom') => Promise<void>;
161
+ serviceId: string;
162
+ permissionGroup?: string;
163
+ props: ChatBotProps;
164
+ nxtlinqApi: AITApi;
165
+ }
166
+ //# sourceMappingURL=ChatBotTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatBotTypes.d.ts","sourceRoot":"","sources":["../../src/types/ChatBotTypes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ interface BerifyMeModalProps {
3
+ isOpen: boolean;
4
+ onClose: () => void;
5
+ onVerificationComplete?: (token?: string) => void;
6
+ mode?: 'built-in' | 'external';
7
+ }
8
+ export declare const BerifyMeModal: React.FC<BerifyMeModalProps>;
9
+ declare global {
10
+ interface Window {
11
+ BerifyMeSDK?: {
12
+ modal: any;
13
+ };
14
+ }
15
+ }
16
+ export {};
17
+ //# sourceMappingURL=BerifyMeModal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BerifyMeModal.d.ts","sourceRoot":"","sources":["../../src/ui/BerifyMeModal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAGjD,UAAU,kBAAkB;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,sBAAsB,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,IAAI,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;CAChC;AASD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAoHtD,CAAC;AAGF,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,WAAW,CAAC,EAAE;YACZ,KAAK,EAAE,GAAG,CAAC;SACZ,CAAC;KACH;CACF"}
@@ -0,0 +1,110 @@
1
+ import { jsx as _jsx } from "@emotion/react/jsx-runtime";
2
+ /** @jsxImportSource @emotion/react */
3
+ import { css } from '@emotion/react';
4
+ import React, { useEffect, useRef } from 'react';
5
+ import { modalOverlay } from './styles/isolatedStyles';
6
+ // Built-in BerifyMe configuration
7
+ const BUILT_IN_BERIFYME_CONFIG = {
8
+ apiKeyId: 'idv_XjN7vvuQVfHnaUkVQAEhdTuxAsQeKoa9',
9
+ secretKey: 'aaa444b1-087c-4b17-821a-9a6974286905',
10
+ environment: 'idv'
11
+ };
12
+ export const BerifyMeModal = ({ isOpen, onClose, onVerificationComplete, mode = 'built-in' }) => {
13
+ const modalRef = useRef(null);
14
+ const berifyMeModalRef = useRef(null);
15
+ useEffect(() => {
16
+ if (!isOpen)
17
+ return;
18
+ if (mode === 'external') {
19
+ // External mode: This should not be called as BerifyMeModal is not rendered in external mode
20
+ console.warn('⚠️ BerifyMeModal should not be rendered in external mode');
21
+ onClose();
22
+ }
23
+ else {
24
+ // Built-in mode: dynamically load BerifyMe SDK
25
+ const loadBerifyMeSDK = async () => {
26
+ try {
27
+ // Check if already loaded
28
+ if (window.BerifyMeSDK) {
29
+ renderBerifyMeModal();
30
+ return;
31
+ }
32
+ // Dynamically load SDK
33
+ const script = document.createElement('script');
34
+ script.src = 'https://docs.nxtlinq.ai/sdk/umd/berifyme-sdk.umd.js';
35
+ script.onload = () => {
36
+ if (window.BerifyMeSDK) {
37
+ renderBerifyMeModal();
38
+ }
39
+ };
40
+ script.onerror = () => {
41
+ console.error('❌ Failed to load BerifyMe SDK');
42
+ onClose();
43
+ };
44
+ document.head.appendChild(script);
45
+ }
46
+ catch (error) {
47
+ console.error('❌ Error loading BerifyMe SDK:', error);
48
+ onClose();
49
+ }
50
+ };
51
+ loadBerifyMeSDK();
52
+ }
53
+ return () => {
54
+ // Cleanup function
55
+ if (berifyMeModalRef.current) {
56
+ try {
57
+ berifyMeModalRef.current.unmount?.();
58
+ }
59
+ catch (e) {
60
+ // Ignore cleanup errors
61
+ }
62
+ }
63
+ };
64
+ }, [isOpen]);
65
+ const renderBerifyMeModal = () => {
66
+ if (!window.BerifyMeSDK || !modalRef.current)
67
+ return;
68
+ try {
69
+ // Build redirect URL - always redirect to current page
70
+ const currentUrl = window.location.href;
71
+ const redirectUrl = `${window.location.origin}${window.location.pathname}?isAutoConnect=true&method=berifyme&returnUrl=${encodeURIComponent(currentUrl)}`;
72
+ // Create BerifyMe modal using built-in config
73
+ const berifyMeModal = window.BerifyMeSDK.modal;
74
+ // Use React 18's createRoot
75
+ const { createRoot } = require('react-dom/client');
76
+ const root = createRoot(modalRef.current);
77
+ berifyMeModalRef.current = root;
78
+ root.render(React.createElement(berifyMeModal, {
79
+ environment: BUILT_IN_BERIFYME_CONFIG.environment,
80
+ apiKeyId: BUILT_IN_BERIFYME_CONFIG.apiKeyId,
81
+ secretKey: BUILT_IN_BERIFYME_CONFIG.secretKey,
82
+ redirectUrl,
83
+ onUpdate: (event) => {
84
+ if (event.detail.page.pageName === 'All Set') {
85
+ console.log('✅ BerifyMe wallet verification completed successfully!');
86
+ // Get token if available
87
+ const urlParams = new URLSearchParams(window.location.search);
88
+ const token = urlParams.get('token');
89
+ // Call completion callback
90
+ if (onVerificationComplete) {
91
+ onVerificationComplete(token || undefined);
92
+ }
93
+ // Close modal
94
+ onClose();
95
+ }
96
+ }
97
+ }));
98
+ }
99
+ catch (error) {
100
+ console.error('❌ Error rendering BerifyMe modal:', error);
101
+ onClose();
102
+ }
103
+ };
104
+ if (!isOpen)
105
+ return null;
106
+ return (_jsx("div", { ref: modalRef, css: css `
107
+ ${modalOverlay}
108
+ z-index: 9999 !important;
109
+ ` }));
110
+ };
@@ -0,0 +1,15 @@
1
+ import * as React from 'react';
2
+ export type ChatBotHeaderProps = {
3
+ mobileLayout: boolean;
4
+ isDragging: boolean;
5
+ onDragStart: (event: React.PointerEvent<HTMLDivElement>) => void;
6
+ isVoiceMode: boolean;
7
+ isVoiceConnecting: boolean;
8
+ onVoiceToggle: () => void;
9
+ piiDisplayMode: 'plain' | 'redacted';
10
+ isAITLoading: boolean;
11
+ onSettingsClick: () => void;
12
+ onClose: () => void;
13
+ };
14
+ export declare const ChatBotHeader: React.FC<ChatBotHeaderProps>;
15
+ //# sourceMappingURL=ChatBotHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatBotHeader.d.ts","sourceRoot":"","sources":["../../src/ui/ChatBotHeader.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IACjE,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,cAAc,EAAE,OAAO,GAAG,UAAU,CAAC;IACrC,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAqHtD,CAAC"}
@@ -0,0 +1,62 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
2
+ /** @jsxImportSource @emotion/react */
3
+ import { css } from '@emotion/react';
4
+ import { ModelSelector } from './ModelSelector';
5
+ import { DRAG_CORNER_EXCLUSION_PX, HeaderActions, HeaderLoadingIndicator, PiiBadge, } from './chatBotHeaderParts';
6
+ import { chatHeader, headerTitle } from './styles/isolatedStyles';
7
+ export const ChatBotHeader = ({ mobileLayout, isDragging, onDragStart, isVoiceMode, isVoiceConnecting, onVoiceToggle, piiDisplayMode, isAITLoading, onSettingsClick, onClose, }) => {
8
+ const actions = (_jsx(HeaderActions, { isVoiceMode: isVoiceMode, isVoiceConnecting: isVoiceConnecting, onVoiceToggle: onVoiceToggle, onSettingsClick: onSettingsClick, onClose: onClose }));
9
+ const metaChips = !isVoiceMode ? (_jsxs(_Fragment, { children: [_jsx("div", { css: css `position: relative !important; pointer-events: auto !important;`, children: _jsx(ModelSelector, {}) }), piiDisplayMode === 'redacted' && _jsx(PiiBadge, {}), isAITLoading && _jsx(HeaderLoadingIndicator, {})] })) : null;
10
+ const dragOverlay = (_jsx("div", { css: css `
11
+ position: absolute !important;
12
+ left: ${DRAG_CORNER_EXCLUSION_PX}px !important;
13
+ right: ${DRAG_CORNER_EXCLUSION_PX}px !important;
14
+ top: 0 !important;
15
+ bottom: 0 !important;
16
+ z-index: 1 !important;
17
+ cursor: ${isDragging ? 'grabbing' : 'grab'} !important;
18
+ user-select: none !important;
19
+ `, onPointerDown: onDragStart, title: "Drag to move", "aria-hidden": true }));
20
+ return (_jsxs("div", { css: [chatHeader, css `
21
+ position: relative !important;
22
+ ${mobileLayout ? css `
23
+ padding: 10px 12px !important;
24
+ flex-direction: column !important;
25
+ align-items: stretch !important;
26
+ gap: 8px !important;
27
+ ` : ''}
28
+ `], children: [dragOverlay, mobileLayout ? (_jsxs("div", { css: css `
29
+ position: relative !important;
30
+ z-index: 2 !important;
31
+ display: flex !important;
32
+ flex-direction: column !important;
33
+ gap: 8px !important;
34
+ width: 100% !important;
35
+ `, children: [_jsxs("div", { css: css `
36
+ display: flex !important;
37
+ justify-content: space-between !important;
38
+ align-items: center !important;
39
+ gap: 8px !important;
40
+ pointer-events: none !important;
41
+ `, children: [_jsx("h3", { css: [headerTitle, css `pointer-events: none !important;`], children: "AI Agent" }), actions] }), metaChips && (_jsx("div", { css: css `
42
+ display: flex !important;
43
+ align-items: center !important;
44
+ flex-wrap: wrap !important;
45
+ gap: 8px !important;
46
+ pointer-events: none !important;
47
+ `, children: metaChips }))] })) : (_jsxs("div", { css: css `
48
+ position: relative !important;
49
+ z-index: 2 !important;
50
+ display: flex !important;
51
+ justify-content: space-between !important;
52
+ align-items: center !important;
53
+ width: 100% !important;
54
+ pointer-events: none !important;
55
+ `, children: [_jsxs("div", { css: css `
56
+ display: flex !important;
57
+ align-items: center !important;
58
+ gap: 10px !important;
59
+ min-width: 0 !important;
60
+ pointer-events: none !important;
61
+ `, children: [_jsx("h3", { css: headerTitle, children: "AI Agent" }), metaChips] }), actions] }))] }));
62
+ };
@@ -0,0 +1,3 @@
1
+ import * as React from 'react';
2
+ export declare const ChatBotUI: React.FC;
3
+ //# sourceMappingURL=ChatBotUI.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatBotUI.d.ts","sourceRoot":"","sources":["../../src/ui/ChatBotUI.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA+F/B,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAgtB7B,CAAC"}