@elizaos/app-core 2.0.0-alpha.73 → 2.0.0-alpha.75

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 (1143) hide show
  1. package/App.d.ts +5 -0
  2. package/App.d.ts.map +1 -0
  3. package/App.js +220 -0
  4. package/actions/character.d.ts +39 -0
  5. package/actions/character.d.ts.map +1 -0
  6. package/actions/character.js +247 -0
  7. package/actions/chat-helpers.d.ts +47 -0
  8. package/actions/chat-helpers.d.ts.map +1 -0
  9. package/actions/chat-helpers.js +79 -0
  10. package/actions/cloud.d.ts +17 -0
  11. package/actions/cloud.d.ts.map +1 -0
  12. package/actions/cloud.js +43 -0
  13. package/actions/index.d.ts +12 -0
  14. package/actions/index.d.ts.map +1 -0
  15. package/actions/index.js +11 -0
  16. package/actions/lifecycle.d.ts +43 -0
  17. package/actions/lifecycle.d.ts.map +1 -0
  18. package/actions/lifecycle.js +118 -0
  19. package/actions/onboarding.d.ts +12 -0
  20. package/actions/onboarding.d.ts.map +1 -0
  21. package/actions/onboarding.js +26 -0
  22. package/actions/triggers.d.ts +23 -0
  23. package/actions/triggers.d.ts.map +1 -0
  24. package/actions/triggers.js +148 -0
  25. package/api/client.d.ts +2736 -0
  26. package/api/client.d.ts.map +1 -0
  27. package/api/client.js +2492 -0
  28. package/api/index.d.ts +2 -0
  29. package/api/index.d.ts.map +1 -0
  30. package/autonomy/index.d.ts +48 -0
  31. package/autonomy/index.d.ts.map +1 -0
  32. package/autonomy/index.js +330 -0
  33. package/bridge/capacitor-bridge.d.ts +153 -0
  34. package/bridge/capacitor-bridge.d.ts.map +1 -0
  35. package/bridge/capacitor-bridge.js +193 -0
  36. package/bridge/electrobun-rpc.d.ts +28 -0
  37. package/bridge/electrobun-rpc.d.ts.map +1 -0
  38. package/bridge/electrobun-rpc.js +35 -0
  39. package/bridge/electrobun-runtime.d.ts +3 -0
  40. package/bridge/electrobun-runtime.d.ts.map +1 -0
  41. package/bridge/electrobun-runtime.js +17 -0
  42. package/bridge/index.d.ts +6 -0
  43. package/bridge/index.d.ts.map +1 -0
  44. package/bridge/native-plugins.d.ts +82 -0
  45. package/bridge/native-plugins.d.ts.map +1 -0
  46. package/bridge/native-plugins.js +39 -0
  47. package/bridge/plugin-bridge.d.ts +116 -0
  48. package/bridge/plugin-bridge.d.ts.map +1 -0
  49. package/bridge/plugin-bridge.js +203 -0
  50. package/bridge/storage-bridge.d.ts +39 -0
  51. package/bridge/storage-bridge.d.ts.map +1 -0
  52. package/bridge/storage-bridge.js +135 -0
  53. package/chat/index.d.ts +57 -0
  54. package/chat/index.d.ts.map +1 -0
  55. package/chat/index.js +160 -0
  56. package/coding/index.d.ts +25 -0
  57. package/coding/index.d.ts.map +1 -0
  58. package/coding/index.js +25 -0
  59. package/components/AdvancedPageView.d.ts +17 -0
  60. package/components/AdvancedPageView.d.ts.map +1 -0
  61. package/components/AdvancedPageView.js +146 -0
  62. package/components/AgentActivityBox.d.ts +7 -0
  63. package/components/AgentActivityBox.d.ts.map +1 -0
  64. package/components/AgentActivityBox.js +25 -0
  65. package/components/ApiKeyConfig.d.ts +26 -0
  66. package/components/ApiKeyConfig.d.ts.map +1 -0
  67. package/components/ApiKeyConfig.js +119 -0
  68. package/components/AppsPageView.d.ts +7 -0
  69. package/components/AppsPageView.d.ts.map +1 -0
  70. package/components/AppsPageView.js +31 -0
  71. package/components/AppsView.d.ts +8 -0
  72. package/components/AppsView.d.ts.map +1 -0
  73. package/components/AppsView.js +149 -0
  74. package/components/AvatarLoader.d.ts +13 -0
  75. package/components/AvatarLoader.d.ts.map +1 -0
  76. package/components/AvatarLoader.js +53 -0
  77. package/components/AvatarSelector.d.ts +23 -0
  78. package/components/AvatarSelector.d.ts.map +1 -0
  79. package/components/AvatarSelector.js +105 -0
  80. package/components/BscTradePanel.d.ts +22 -0
  81. package/components/BscTradePanel.d.ts.map +1 -0
  82. package/components/BscTradePanel.js +221 -0
  83. package/components/BugReportModal.d.ts +2 -0
  84. package/components/BugReportModal.d.ts.map +1 -0
  85. package/components/BugReportModal.js +219 -0
  86. package/components/CharacterRoster.d.ts +31 -0
  87. package/components/CharacterRoster.d.ts.map +1 -0
  88. package/components/CharacterRoster.js +41 -0
  89. package/components/CharacterView.d.ts +8 -0
  90. package/components/CharacterView.d.ts.map +1 -0
  91. package/components/CharacterView.js +685 -0
  92. package/components/ChatAvatar.d.ts +8 -0
  93. package/components/ChatAvatar.d.ts.map +1 -0
  94. package/components/ChatAvatar.js +89 -0
  95. package/components/ChatComposer.d.ts +37 -0
  96. package/components/ChatComposer.d.ts.map +1 -0
  97. package/components/ChatComposer.js +136 -0
  98. package/components/ChatMessage.d.ts +24 -0
  99. package/components/ChatMessage.d.ts.map +1 -0
  100. package/components/ChatMessage.js +167 -0
  101. package/components/ChatModalView.d.ts +10 -0
  102. package/components/ChatModalView.d.ts.map +1 -0
  103. package/components/ChatModalView.js +57 -0
  104. package/components/ChatView.d.ts +14 -0
  105. package/components/ChatView.d.ts.map +1 -0
  106. package/components/ChatView.js +526 -0
  107. package/components/CloudOnboarding.d.ts +7 -0
  108. package/components/CloudOnboarding.d.ts.map +1 -0
  109. package/components/CloudOnboarding.js +22 -0
  110. package/components/CloudSourceControls.d.ts +13 -0
  111. package/components/CloudSourceControls.d.ts.map +1 -0
  112. package/components/CloudSourceControls.js +16 -0
  113. package/components/CodingAgentSettingsSection.d.ts +2 -0
  114. package/components/CodingAgentSettingsSection.d.ts.map +1 -0
  115. package/components/CodingAgentSettingsSection.js +270 -0
  116. package/components/CommandPalette.d.ts +2 -0
  117. package/components/CommandPalette.d.ts.map +1 -0
  118. package/components/CommandPalette.js +181 -0
  119. package/components/CompanionSceneHost.d.ts +14 -0
  120. package/components/CompanionSceneHost.d.ts.map +1 -0
  121. package/components/CompanionSceneHost.js +360 -0
  122. package/components/CompanionShell.d.ts +17 -0
  123. package/components/CompanionShell.d.ts.map +1 -0
  124. package/components/CompanionShell.js +15 -0
  125. package/components/CompanionView.d.ts +2 -0
  126. package/components/CompanionView.d.ts.map +1 -0
  127. package/components/CompanionView.js +22 -0
  128. package/components/ConfigPageView.d.ts +11 -0
  129. package/components/ConfigPageView.d.ts.map +1 -0
  130. package/components/ConfigPageView.js +303 -0
  131. package/components/ConfigSaveFooter.d.ts +8 -0
  132. package/components/ConfigSaveFooter.d.ts.map +1 -0
  133. package/components/ConfigSaveFooter.js +10 -0
  134. package/components/ConfirmModal.d.ts +61 -0
  135. package/components/ConfirmModal.d.ts.map +1 -0
  136. package/components/ConfirmModal.js +164 -0
  137. package/components/ConnectionFailedBanner.d.ts +6 -0
  138. package/components/ConnectionFailedBanner.d.ts.map +1 -0
  139. package/components/ConnectionFailedBanner.js +22 -0
  140. package/components/ConnectorsPageView.d.ts +7 -0
  141. package/components/ConnectorsPageView.d.ts.map +1 -0
  142. package/components/ConnectorsPageView.js +8 -0
  143. package/components/ConversationsSidebar.d.ts +9 -0
  144. package/components/ConversationsSidebar.d.ts.map +1 -0
  145. package/components/ConversationsSidebar.js +116 -0
  146. package/components/CustomActionEditor.d.ts +10 -0
  147. package/components/CustomActionEditor.d.ts.map +1 -0
  148. package/components/CustomActionEditor.js +578 -0
  149. package/components/CustomActionsPanel.d.ts +9 -0
  150. package/components/CustomActionsPanel.d.ts.map +1 -0
  151. package/components/CustomActionsPanel.js +107 -0
  152. package/components/CustomActionsView.d.ts +2 -0
  153. package/components/CustomActionsView.d.ts.map +1 -0
  154. package/components/CustomActionsView.js +134 -0
  155. package/components/DatabasePageView.d.ts +5 -0
  156. package/components/DatabasePageView.d.ts.map +1 -0
  157. package/components/DatabasePageView.js +28 -0
  158. package/components/DatabaseView.d.ts +9 -0
  159. package/components/DatabaseView.d.ts.map +1 -0
  160. package/components/DatabaseView.js +311 -0
  161. package/components/ElizaCloudDashboard.d.ts +2 -0
  162. package/components/ElizaCloudDashboard.d.ts.map +1 -0
  163. package/components/ElizaCloudDashboard.js +657 -0
  164. package/components/EmotePicker.d.ts +2 -0
  165. package/components/EmotePicker.d.ts.map +1 -0
  166. package/components/EmotePicker.js +343 -0
  167. package/components/ErrorBoundary.d.ts +22 -0
  168. package/components/ErrorBoundary.d.ts.map +1 -0
  169. package/components/ErrorBoundary.js +31 -0
  170. package/components/FineTuningView.d.ts +2 -0
  171. package/components/FineTuningView.d.ts.map +1 -0
  172. package/components/FineTuningView.js +433 -0
  173. package/components/FlaminaGuide.d.ts +10 -0
  174. package/components/FlaminaGuide.d.ts.map +1 -0
  175. package/components/FlaminaGuide.js +64 -0
  176. package/components/GameView.d.ts +11 -0
  177. package/components/GameView.d.ts.map +1 -0
  178. package/components/GameView.js +294 -0
  179. package/components/GameViewOverlay.d.ts +8 -0
  180. package/components/GameViewOverlay.d.ts.map +1 -0
  181. package/components/GameViewOverlay.js +70 -0
  182. package/components/GlobalEmoteOverlay.d.ts +2 -0
  183. package/components/GlobalEmoteOverlay.d.ts.map +1 -0
  184. package/components/GlobalEmoteOverlay.js +112 -0
  185. package/components/Header.d.ts +9 -0
  186. package/components/Header.d.ts.map +1 -0
  187. package/components/Header.js +123 -0
  188. package/components/HeartbeatsView.d.ts +2 -0
  189. package/components/HeartbeatsView.d.ts.map +1 -0
  190. package/components/HeartbeatsView.js +378 -0
  191. package/components/InventoryView.d.ts +10 -0
  192. package/components/InventoryView.d.ts.map +1 -0
  193. package/components/InventoryView.js +176 -0
  194. package/components/KnowledgeView.d.ts +20 -0
  195. package/components/KnowledgeView.d.ts.map +1 -0
  196. package/components/KnowledgeView.js +480 -0
  197. package/components/LanguageDropdown.d.ts +30 -0
  198. package/components/LanguageDropdown.d.ts.map +1 -0
  199. package/components/LanguageDropdown.js +99 -0
  200. package/components/LifoMonitorPanel.d.ts +21 -0
  201. package/components/LifoMonitorPanel.d.ts.map +1 -0
  202. package/components/LifoMonitorPanel.js +24 -0
  203. package/components/LifoSandboxView.d.ts +5 -0
  204. package/components/LifoSandboxView.d.ts.map +1 -0
  205. package/components/LifoSandboxView.js +333 -0
  206. package/components/LoadingScreen.d.ts +13 -0
  207. package/components/LoadingScreen.d.ts.map +1 -0
  208. package/components/LoadingScreen.js +70 -0
  209. package/components/LogsPageView.d.ts +2 -0
  210. package/components/LogsPageView.d.ts.map +1 -0
  211. package/components/LogsPageView.js +7 -0
  212. package/components/LogsView.d.ts +5 -0
  213. package/components/LogsView.d.ts.map +1 -0
  214. package/components/LogsView.js +71 -0
  215. package/components/MediaGalleryView.d.ts +9 -0
  216. package/components/MediaGalleryView.d.ts.map +1 -0
  217. package/components/MediaGalleryView.js +236 -0
  218. package/components/MediaSettingsSection.d.ts +11 -0
  219. package/components/MediaSettingsSection.d.ts.map +1 -0
  220. package/components/MediaSettingsSection.js +329 -0
  221. package/components/MessageContent.d.ts +51 -0
  222. package/components/MessageContent.d.ts.map +1 -0
  223. package/components/MessageContent.js +553 -0
  224. package/components/OnboardingWizard.d.ts +2 -0
  225. package/components/OnboardingWizard.d.ts.map +1 -0
  226. package/components/OnboardingWizard.js +96 -0
  227. package/components/PairingView.d.ts +5 -0
  228. package/components/PairingView.d.ts.map +1 -0
  229. package/components/PairingView.js +29 -0
  230. package/components/PermissionsSection.d.ts +20 -0
  231. package/components/PermissionsSection.d.ts.map +1 -0
  232. package/components/PermissionsSection.js +573 -0
  233. package/components/PluginsPageView.d.ts +5 -0
  234. package/components/PluginsPageView.d.ts.map +1 -0
  235. package/components/PluginsPageView.js +8 -0
  236. package/components/PluginsView.d.ts +21 -0
  237. package/components/PluginsView.d.ts.map +1 -0
  238. package/components/PluginsView.js +1534 -0
  239. package/components/ProviderSwitcher.d.ts +42 -0
  240. package/components/ProviderSwitcher.d.ts.map +1 -0
  241. package/components/ProviderSwitcher.js +493 -0
  242. package/components/RestartBanner.d.ts +2 -0
  243. package/components/RestartBanner.d.ts.map +1 -0
  244. package/components/RestartBanner.js +36 -0
  245. package/components/RuntimeView.d.ts +10 -0
  246. package/components/RuntimeView.d.ts.map +1 -0
  247. package/components/RuntimeView.js +165 -0
  248. package/components/SaveCommandModal.d.ts +12 -0
  249. package/components/SaveCommandModal.d.ts.map +1 -0
  250. package/components/SaveCommandModal.js +84 -0
  251. package/components/SecretsView.d.ts +9 -0
  252. package/components/SecretsView.d.ts.map +1 -0
  253. package/components/SecretsView.js +249 -0
  254. package/components/SettingsView.d.ts +9 -0
  255. package/components/SettingsView.d.ts.map +1 -0
  256. package/components/SettingsView.js +230 -0
  257. package/components/ShellOverlays.d.ts +8 -0
  258. package/components/ShellOverlays.d.ts.map +1 -0
  259. package/components/ShellOverlays.js +10 -0
  260. package/components/ShortcutsOverlay.d.ts +2 -0
  261. package/components/ShortcutsOverlay.d.ts.map +1 -0
  262. package/components/ShortcutsOverlay.js +79 -0
  263. package/components/SkillsView.d.ts +11 -0
  264. package/components/SkillsView.d.ts.map +1 -0
  265. package/components/SkillsView.js +358 -0
  266. package/components/StartupFailureView.d.ts +8 -0
  267. package/components/StartupFailureView.d.ts.map +1 -0
  268. package/components/StartupFailureView.js +16 -0
  269. package/components/StreamView.d.ts +16 -0
  270. package/components/StreamView.d.ts.map +1 -0
  271. package/components/StreamView.js +300 -0
  272. package/components/StripeEmbeddedCheckout.d.ts +24 -0
  273. package/components/StripeEmbeddedCheckout.d.ts.map +1 -0
  274. package/components/StripeEmbeddedCheckout.js +101 -0
  275. package/components/SubscriptionStatus.d.ts +23 -0
  276. package/components/SubscriptionStatus.d.ts.map +1 -0
  277. package/components/SubscriptionStatus.js +301 -0
  278. package/components/SystemWarningBanner.d.ts +6 -0
  279. package/components/SystemWarningBanner.d.ts.map +1 -0
  280. package/components/SystemWarningBanner.js +46 -0
  281. package/components/ThemeToggle.d.ts +21 -0
  282. package/components/ThemeToggle.d.ts.map +1 -0
  283. package/components/ThemeToggle.js +24 -0
  284. package/components/TrajectoriesView.d.ts +12 -0
  285. package/components/TrajectoriesView.d.ts.map +1 -0
  286. package/components/TrajectoriesView.js +183 -0
  287. package/components/TrajectoryDetailView.d.ts +13 -0
  288. package/components/TrajectoryDetailView.d.ts.map +1 -0
  289. package/components/TrajectoryDetailView.js +112 -0
  290. package/components/TriggersView.d.ts +2 -0
  291. package/components/TriggersView.d.ts.map +1 -0
  292. package/components/VectorBrowserView.d.ts +10 -0
  293. package/components/VectorBrowserView.d.ts.map +1 -0
  294. package/components/VectorBrowserView.js +997 -0
  295. package/components/VoiceConfigView.d.ts +11 -0
  296. package/components/VoiceConfigView.d.ts.map +1 -0
  297. package/components/VoiceConfigView.js +329 -0
  298. package/components/VrmStage.d.ts +28 -0
  299. package/components/VrmStage.d.ts.map +1 -0
  300. package/components/VrmStage.js +178 -0
  301. package/components/WhatsAppQrOverlay.d.ts +8 -0
  302. package/components/WhatsAppQrOverlay.d.ts.map +1 -0
  303. package/components/WhatsAppQrOverlay.js +63 -0
  304. package/components/apps/AppDetailPane.d.ts +15 -0
  305. package/components/apps/AppDetailPane.d.ts.map +1 -0
  306. package/components/apps/AppDetailPane.js +13 -0
  307. package/components/apps/AppsCatalogGrid.d.ts +20 -0
  308. package/components/apps/AppsCatalogGrid.d.ts.map +1 -0
  309. package/components/apps/AppsCatalogGrid.js +18 -0
  310. package/components/apps/extensions/registry.d.ts +4 -0
  311. package/components/apps/extensions/registry.d.ts.map +1 -0
  312. package/components/apps/extensions/registry.js +7 -0
  313. package/components/apps/extensions/types.d.ts +7 -0
  314. package/components/apps/extensions/types.d.ts.map +1 -0
  315. package/components/apps/extensions/types.js +1 -0
  316. package/components/apps/helpers.d.ts +7 -0
  317. package/components/apps/helpers.d.ts.map +1 -0
  318. package/components/apps/helpers.js +44 -0
  319. package/components/avatar/VrmAnimationLoader.d.ts +30 -0
  320. package/components/avatar/VrmAnimationLoader.d.ts.map +1 -0
  321. package/components/avatar/VrmAnimationLoader.js +99 -0
  322. package/components/avatar/VrmBlinkController.d.ts +37 -0
  323. package/components/avatar/VrmBlinkController.d.ts.map +1 -0
  324. package/components/avatar/VrmBlinkController.js +98 -0
  325. package/components/avatar/VrmCameraManager.d.ts +57 -0
  326. package/components/avatar/VrmCameraManager.d.ts.map +1 -0
  327. package/components/avatar/VrmCameraManager.js +277 -0
  328. package/components/avatar/VrmEngine.d.ts +246 -0
  329. package/components/avatar/VrmEngine.d.ts.map +1 -0
  330. package/components/avatar/VrmEngine.js +2076 -0
  331. package/components/avatar/VrmFootShadow.d.ts +18 -0
  332. package/components/avatar/VrmFootShadow.d.ts.map +1 -0
  333. package/components/avatar/VrmFootShadow.js +83 -0
  334. package/components/avatar/VrmViewer.d.ts +60 -0
  335. package/components/avatar/VrmViewer.d.ts.map +1 -0
  336. package/components/avatar/VrmViewer.js +396 -0
  337. package/components/avatar/mixamoVRMRigMap.d.ts +3 -0
  338. package/components/avatar/mixamoVRMRigMap.d.ts.map +1 -0
  339. package/components/avatar/mixamoVRMRigMap.js +56 -0
  340. package/components/avatar/retargetMixamoFbxToVrm.d.ts +9 -0
  341. package/components/avatar/retargetMixamoFbxToVrm.d.ts.map +1 -0
  342. package/components/avatar/retargetMixamoFbxToVrm.js +88 -0
  343. package/components/avatar/retargetMixamoGltfToVrm.d.ts +11 -0
  344. package/components/avatar/retargetMixamoGltfToVrm.d.ts.map +1 -0
  345. package/components/avatar/retargetMixamoGltfToVrm.js +80 -0
  346. package/components/chainConfig.d.ts +89 -0
  347. package/components/chainConfig.d.ts.map +1 -0
  348. package/components/chainConfig.js +287 -0
  349. package/components/companion/CompanionHeader.d.ts +15 -0
  350. package/components/companion/CompanionHeader.d.ts.map +1 -0
  351. package/components/companion/CompanionHeader.js +7 -0
  352. package/components/companion/CompanionSceneHost.d.ts +2 -0
  353. package/components/companion/CompanionSceneHost.d.ts.map +1 -0
  354. package/components/companion/CompanionSceneHost.js +1 -0
  355. package/components/companion/VrmStage.d.ts +3 -0
  356. package/components/companion/VrmStage.d.ts.map +1 -0
  357. package/components/companion/VrmStage.js +1 -0
  358. package/components/companion/index.d.ts +18 -0
  359. package/components/companion/index.d.ts.map +1 -0
  360. package/components/companion/index.js +17 -0
  361. package/components/companion/walletUtils.d.ts +95 -0
  362. package/components/companion/walletUtils.d.ts.map +1 -0
  363. package/components/companion/walletUtils.js +167 -0
  364. package/components/companion-shell-styles.d.ts +38 -0
  365. package/components/companion-shell-styles.d.ts.map +1 -0
  366. package/components/companion-shell-styles.js +248 -0
  367. package/components/confirm-delete-control.d.ts +16 -0
  368. package/components/confirm-delete-control.d.ts.map +1 -0
  369. package/components/confirm-delete-control.js +12 -0
  370. package/components/conversations/ConversationListItem.d.ts +31 -0
  371. package/components/conversations/ConversationListItem.d.ts.map +1 -0
  372. package/components/conversations/ConversationListItem.js +52 -0
  373. package/components/conversations/conversation-utils.d.ts +9 -0
  374. package/components/conversations/conversation-utils.d.ts.map +1 -0
  375. package/components/conversations/conversation-utils.js +138 -0
  376. package/components/format.d.ts +54 -0
  377. package/components/format.d.ts.map +1 -0
  378. package/components/format.js +82 -0
  379. package/components/index.d.ts +96 -0
  380. package/components/index.d.ts.map +1 -0
  381. package/components/index.js +95 -0
  382. package/components/inventory/CopyableAddress.d.ts +8 -0
  383. package/components/inventory/CopyableAddress.d.ts.map +1 -0
  384. package/components/inventory/CopyableAddress.js +18 -0
  385. package/components/inventory/InventoryToolbar.d.ts +25 -0
  386. package/components/inventory/InventoryToolbar.d.ts.map +1 -0
  387. package/components/inventory/InventoryToolbar.js +28 -0
  388. package/components/inventory/NftGrid.d.ts +13 -0
  389. package/components/inventory/NftGrid.d.ts.map +1 -0
  390. package/components/inventory/NftGrid.js +29 -0
  391. package/components/inventory/TokenLogo.d.ts +12 -0
  392. package/components/inventory/TokenLogo.d.ts.map +1 -0
  393. package/components/inventory/TokenLogo.js +33 -0
  394. package/components/inventory/TokensTable.d.ts +24 -0
  395. package/components/inventory/TokensTable.d.ts.map +1 -0
  396. package/components/inventory/TokensTable.js +26 -0
  397. package/components/inventory/constants.d.ts +52 -0
  398. package/components/inventory/constants.d.ts.map +1 -0
  399. package/components/inventory/constants.js +121 -0
  400. package/components/inventory/index.d.ts +9 -0
  401. package/components/inventory/index.d.ts.map +1 -0
  402. package/components/inventory/index.js +8 -0
  403. package/components/inventory/media-url.d.ts +6 -0
  404. package/components/inventory/media-url.d.ts.map +1 -0
  405. package/components/inventory/media-url.js +28 -0
  406. package/components/inventory/useInventoryData.d.ts +53 -0
  407. package/components/inventory/useInventoryData.d.ts.map +1 -0
  408. package/components/inventory/useInventoryData.js +332 -0
  409. package/components/knowledge-upload-image.d.ts +27 -0
  410. package/components/knowledge-upload-image.d.ts.map +1 -0
  411. package/components/knowledge-upload-image.js +146 -0
  412. package/components/labels.d.ts +6 -0
  413. package/components/labels.d.ts.map +1 -0
  414. package/components/labels.js +40 -0
  415. package/components/onboarding/ActivateStep.d.ts +2 -0
  416. package/components/onboarding/ActivateStep.d.ts.map +1 -0
  417. package/components/onboarding/ActivateStep.js +10 -0
  418. package/components/onboarding/ConnectionStep.d.ts +2 -0
  419. package/components/onboarding/ConnectionStep.d.ts.map +1 -0
  420. package/components/onboarding/ConnectionStep.js +609 -0
  421. package/components/onboarding/IdentityStep.d.ts +2 -0
  422. package/components/onboarding/IdentityStep.d.ts.map +1 -0
  423. package/components/onboarding/IdentityStep.js +102 -0
  424. package/components/onboarding/OnboardingPanel.d.ts +9 -0
  425. package/components/onboarding/OnboardingPanel.d.ts.map +1 -0
  426. package/components/onboarding/OnboardingPanel.js +24 -0
  427. package/components/onboarding/OnboardingStepNav.d.ts +2 -0
  428. package/components/onboarding/OnboardingStepNav.d.ts.map +1 -0
  429. package/components/onboarding/OnboardingStepNav.js +23 -0
  430. package/components/onboarding/PermissionsStep.d.ts +2 -0
  431. package/components/onboarding/PermissionsStep.d.ts.map +1 -0
  432. package/components/onboarding/PermissionsStep.js +7 -0
  433. package/components/onboarding/RpcStep.d.ts +2 -0
  434. package/components/onboarding/RpcStep.d.ts.map +1 -0
  435. package/components/onboarding/RpcStep.js +125 -0
  436. package/components/permissions/PermissionIcon.d.ts +4 -0
  437. package/components/permissions/PermissionIcon.d.ts.map +1 -0
  438. package/components/permissions/PermissionIcon.js +12 -0
  439. package/components/permissions/StreamingPermissions.d.ts +20 -0
  440. package/components/permissions/StreamingPermissions.d.ts.map +1 -0
  441. package/components/permissions/StreamingPermissions.js +177 -0
  442. package/components/plugins/showcase-data.d.ts +7 -0
  443. package/components/plugins/showcase-data.d.ts.map +1 -0
  444. package/components/plugins/showcase-data.js +464 -0
  445. package/components/shared/ShellHeaderControls.d.ts +27 -0
  446. package/components/shared/ShellHeaderControls.d.ts.map +1 -0
  447. package/components/shared/ShellHeaderControls.js +60 -0
  448. package/components/shared-companion-scene-context.d.ts +3 -0
  449. package/components/shared-companion-scene-context.d.ts.map +1 -0
  450. package/components/shared-companion-scene-context.js +13 -0
  451. package/components/skeletons.d.ts +17 -0
  452. package/components/skeletons.d.ts.map +1 -0
  453. package/components/skeletons.js +22 -0
  454. package/components/stream/ActivityFeed.d.ts +5 -0
  455. package/components/stream/ActivityFeed.d.ts.map +1 -0
  456. package/components/stream/ActivityFeed.js +57 -0
  457. package/components/stream/AvatarPip.d.ts +5 -0
  458. package/components/stream/AvatarPip.d.ts.map +1 -0
  459. package/components/stream/AvatarPip.js +6 -0
  460. package/components/stream/ChatContent.d.ts +6 -0
  461. package/components/stream/ChatContent.d.ts.map +1 -0
  462. package/components/stream/ChatContent.js +69 -0
  463. package/components/stream/ChatTicker.d.ts +5 -0
  464. package/components/stream/ChatTicker.d.ts.map +1 -0
  465. package/components/stream/ChatTicker.js +34 -0
  466. package/components/stream/IdleContent.d.ts +5 -0
  467. package/components/stream/IdleContent.d.ts.map +1 -0
  468. package/components/stream/IdleContent.js +17 -0
  469. package/components/stream/StatusBar.d.ts +36 -0
  470. package/components/stream/StatusBar.d.ts.map +1 -0
  471. package/components/stream/StatusBar.js +140 -0
  472. package/components/stream/StreamSettings.d.ts +33 -0
  473. package/components/stream/StreamSettings.d.ts.map +1 -0
  474. package/components/stream/StreamSettings.js +99 -0
  475. package/components/stream/StreamTerminal.d.ts +2 -0
  476. package/components/stream/StreamTerminal.d.ts.map +1 -0
  477. package/components/stream/StreamTerminal.js +52 -0
  478. package/components/stream/StreamVoiceConfig.d.ts +10 -0
  479. package/components/stream/StreamVoiceConfig.d.ts.map +1 -0
  480. package/components/stream/StreamVoiceConfig.js +88 -0
  481. package/components/stream/helpers.d.ts +32 -0
  482. package/components/stream/helpers.d.ts.map +1 -0
  483. package/components/stream/helpers.js +110 -0
  484. package/components/stream/overlays/OverlayLayer.d.ts +20 -0
  485. package/components/stream/overlays/OverlayLayer.d.ts.map +1 -0
  486. package/components/stream/overlays/OverlayLayer.js +24 -0
  487. package/components/stream/overlays/built-in/ActionTickerWidget.d.ts +8 -0
  488. package/components/stream/overlays/built-in/ActionTickerWidget.d.ts.map +1 -0
  489. package/components/stream/overlays/built-in/ActionTickerWidget.js +44 -0
  490. package/components/stream/overlays/built-in/AlertPopupWidget.d.ts +7 -0
  491. package/components/stream/overlays/built-in/AlertPopupWidget.d.ts.map +1 -0
  492. package/components/stream/overlays/built-in/AlertPopupWidget.js +62 -0
  493. package/components/stream/overlays/built-in/BrandingWidget.d.ts +7 -0
  494. package/components/stream/overlays/built-in/BrandingWidget.d.ts.map +1 -0
  495. package/components/stream/overlays/built-in/BrandingWidget.js +36 -0
  496. package/components/stream/overlays/built-in/CustomHtmlWidget.d.ts +26 -0
  497. package/components/stream/overlays/built-in/CustomHtmlWidget.d.ts.map +1 -0
  498. package/components/stream/overlays/built-in/CustomHtmlWidget.js +78 -0
  499. package/components/stream/overlays/built-in/PeonGlassWidget.d.ts +11 -0
  500. package/components/stream/overlays/built-in/PeonGlassWidget.d.ts.map +1 -0
  501. package/components/stream/overlays/built-in/PeonGlassWidget.js +188 -0
  502. package/components/stream/overlays/built-in/PeonHudWidget.d.ts +10 -0
  503. package/components/stream/overlays/built-in/PeonHudWidget.d.ts.map +1 -0
  504. package/components/stream/overlays/built-in/PeonHudWidget.js +168 -0
  505. package/components/stream/overlays/built-in/PeonSakuraWidget.d.ts +11 -0
  506. package/components/stream/overlays/built-in/PeonSakuraWidget.d.ts.map +1 -0
  507. package/components/stream/overlays/built-in/PeonSakuraWidget.js +213 -0
  508. package/components/stream/overlays/built-in/ThoughtBubbleWidget.d.ts +8 -0
  509. package/components/stream/overlays/built-in/ThoughtBubbleWidget.d.ts.map +1 -0
  510. package/components/stream/overlays/built-in/ThoughtBubbleWidget.js +59 -0
  511. package/components/stream/overlays/built-in/ViewerCountWidget.d.ts +7 -0
  512. package/components/stream/overlays/built-in/ViewerCountWidget.d.ts.map +1 -0
  513. package/components/stream/overlays/built-in/ViewerCountWidget.js +34 -0
  514. package/components/stream/overlays/built-in/index.d.ts +13 -0
  515. package/components/stream/overlays/built-in/index.d.ts.map +1 -0
  516. package/components/stream/overlays/built-in/index.js +12 -0
  517. package/components/stream/overlays/registry.d.ts +11 -0
  518. package/components/stream/overlays/registry.d.ts.map +1 -0
  519. package/components/stream/overlays/registry.js +16 -0
  520. package/components/stream/overlays/types.d.ts +67 -0
  521. package/components/stream/overlays/types.d.ts.map +1 -0
  522. package/components/stream/overlays/types.js +7 -0
  523. package/components/stream/overlays/useOverlayLayout.d.ts +27 -0
  524. package/components/stream/overlays/useOverlayLayout.d.ts.map +1 -0
  525. package/components/stream/overlays/useOverlayLayout.js +162 -0
  526. package/components/trajectory-format.d.ts +6 -0
  527. package/components/trajectory-format.d.ts.map +1 -0
  528. package/components/trajectory-format.js +43 -0
  529. package/components/ui-badges.d.ts +23 -0
  530. package/components/ui-badges.d.ts.map +1 -0
  531. package/components/ui-badges.js +38 -0
  532. package/components/ui-switch.d.ts +14 -0
  533. package/components/ui-switch.d.ts.map +1 -0
  534. package/components/ui-switch.js +15 -0
  535. package/components/vector-browser-three.d.ts +4 -0
  536. package/components/vector-browser-three.d.ts.map +1 -0
  537. package/components/vector-browser-three.js +21 -0
  538. package/config/branding.d.ts +49 -0
  539. package/config/branding.d.ts.map +1 -0
  540. package/config/branding.js +16 -0
  541. package/config/config-catalog.d.ts +376 -0
  542. package/config/config-catalog.d.ts.map +1 -0
  543. package/config/config-catalog.js +724 -0
  544. package/config/config-field.d.ts +68 -0
  545. package/config/config-field.d.ts.map +1 -0
  546. package/config/config-field.js +840 -0
  547. package/config/config-renderer.d.ts +176 -0
  548. package/config/config-renderer.d.ts.map +1 -0
  549. package/config/config-renderer.js +405 -0
  550. package/config/index.d.ts +6 -0
  551. package/config/index.d.ts.map +1 -0
  552. package/config/index.js +5 -0
  553. package/config/ui-renderer.d.ts +26 -0
  554. package/config/ui-renderer.d.ts.map +1 -0
  555. package/config/ui-renderer.js +815 -0
  556. package/config/ui-spec.d.ts +164 -0
  557. package/config/ui-spec.d.ts.map +1 -0
  558. package/config/ui-spec.js +13 -0
  559. package/events/index.d.ts +47 -0
  560. package/events/index.d.ts.map +1 -0
  561. package/events/index.js +43 -0
  562. package/hooks/index.d.ts +15 -0
  563. package/hooks/index.d.ts.map +1 -0
  564. package/hooks/useBugReport.d.ts +14 -0
  565. package/hooks/useBugReport.d.ts.map +1 -0
  566. package/hooks/useBugReport.js +18 -0
  567. package/hooks/useCanvasWindow.d.ts +38 -0
  568. package/hooks/useCanvasWindow.d.ts.map +1 -0
  569. package/hooks/useCanvasWindow.js +273 -0
  570. package/hooks/useChatAvatarVoice.d.ts +10 -0
  571. package/hooks/useChatAvatarVoice.d.ts.map +1 -0
  572. package/hooks/useChatAvatarVoice.js +71 -0
  573. package/hooks/useClickOutside.d.ts +6 -0
  574. package/hooks/useClickOutside.d.ts.map +1 -0
  575. package/hooks/useClickOutside.js +25 -0
  576. package/hooks/useContextMenu.d.ts +17 -0
  577. package/hooks/useContextMenu.d.ts.map +1 -0
  578. package/hooks/useContextMenu.js +100 -0
  579. package/hooks/useKeyboardShortcuts.d.ts +17 -0
  580. package/hooks/useKeyboardShortcuts.d.ts.map +1 -0
  581. package/hooks/useKeyboardShortcuts.js +67 -0
  582. package/hooks/useLifoSync.d.ts +18 -0
  583. package/hooks/useLifoSync.d.ts.map +1 -0
  584. package/hooks/useLifoSync.js +113 -0
  585. package/hooks/useMemoryMonitor.d.ts +87 -0
  586. package/hooks/useMemoryMonitor.d.ts.map +1 -0
  587. package/hooks/useMemoryMonitor.js +209 -0
  588. package/hooks/useRenderGuard.d.ts +17 -0
  589. package/hooks/useRenderGuard.d.ts.map +1 -0
  590. package/hooks/useRenderGuard.js +36 -0
  591. package/hooks/useRetakeCapture.d.ts +12 -0
  592. package/hooks/useRetakeCapture.d.ts.map +1 -0
  593. package/hooks/useRetakeCapture.js +60 -0
  594. package/hooks/useStreamPopoutNavigation.d.ts +3 -0
  595. package/hooks/useStreamPopoutNavigation.d.ts.map +1 -0
  596. package/hooks/useStreamPopoutNavigation.js +17 -0
  597. package/hooks/useTimeout.d.ts +11 -0
  598. package/hooks/useTimeout.d.ts.map +1 -0
  599. package/hooks/useTimeout.js +32 -0
  600. package/hooks/useVoiceChat.d.ts +94 -0
  601. package/hooks/useVoiceChat.d.ts.map +1 -0
  602. package/hooks/useVoiceChat.js +1074 -0
  603. package/hooks/useWhatsAppPairing.d.ts +11 -0
  604. package/hooks/useWhatsAppPairing.d.ts.map +1 -0
  605. package/hooks/useWhatsAppPairing.js +95 -0
  606. package/i18n/index.d.ts +7 -0
  607. package/i18n/index.d.ts.map +1 -0
  608. package/i18n/index.js +53 -0
  609. package/i18n/locales/en.json +1239 -0
  610. package/i18n/locales/es.json +1236 -0
  611. package/i18n/locales/ko.json +1236 -0
  612. package/i18n/locales/pt.json +1236 -0
  613. package/i18n/locales/zh-CN.json +1236 -0
  614. package/i18n/messages.d.ts +6 -0
  615. package/i18n/messages.d.ts.map +1 -0
  616. package/i18n/messages.js +14 -0
  617. package/index.d.ts +5 -0
  618. package/index.d.ts.map +1 -0
  619. package/navigation/index.d.ts +27 -0
  620. package/navigation/index.d.ts.map +1 -0
  621. package/navigation/index.js +232 -0
  622. package/onboarding-config.d.ts +25 -0
  623. package/onboarding-config.d.ts.map +1 -0
  624. package/onboarding-config.js +76 -0
  625. package/package.json +143 -53
  626. package/platform/browser-launch.d.ts +2 -0
  627. package/platform/browser-launch.d.ts.map +1 -0
  628. package/platform/browser-launch.js +109 -0
  629. package/platform/index.d.ts +14 -0
  630. package/platform/index.d.ts.map +1 -0
  631. package/platform/index.js +24 -0
  632. package/platform/init.d.ts +40 -0
  633. package/platform/init.d.ts.map +1 -0
  634. package/platform/init.js +160 -0
  635. package/platform/lifo.d.ts +51 -0
  636. package/platform/lifo.d.ts.map +1 -0
  637. package/platform/lifo.js +138 -0
  638. package/providers/index.d.ts +19 -0
  639. package/providers/index.d.ts.map +1 -0
  640. package/providers/index.js +80 -0
  641. package/shell-params.d.ts +12 -0
  642. package/shell-params.d.ts.map +1 -0
  643. package/shell-params.js +19 -0
  644. package/state/AppContext.d.ts +12 -0
  645. package/state/AppContext.d.ts.map +1 -0
  646. package/state/AppContext.js +5060 -0
  647. package/state/index.d.ts +7 -0
  648. package/state/index.d.ts.map +1 -0
  649. package/state/internal.d.ts +7 -0
  650. package/state/internal.d.ts.map +1 -0
  651. package/state/internal.js +6 -0
  652. package/state/onboarding-resume.d.ts +11 -0
  653. package/state/onboarding-resume.d.ts.map +1 -0
  654. package/state/onboarding-resume.js +189 -0
  655. package/state/parsers.d.ts +26 -0
  656. package/state/parsers.d.ts.map +1 -0
  657. package/state/parsers.js +255 -0
  658. package/state/persistence.d.ts +59 -0
  659. package/state/persistence.d.ts.map +1 -0
  660. package/state/persistence.js +326 -0
  661. package/state/shell-routing.d.ts +12 -0
  662. package/state/shell-routing.d.ts.map +1 -0
  663. package/state/shell-routing.js +25 -0
  664. package/state/types.d.ts +421 -0
  665. package/state/types.d.ts.map +1 -0
  666. package/state/types.js +75 -0
  667. package/state/ui-preferences.d.ts +3 -0
  668. package/state/ui-preferences.d.ts.map +1 -0
  669. package/state/ui-preferences.js +1 -0
  670. package/state/useApp.d.ts +4 -0
  671. package/state/useApp.d.ts.map +1 -0
  672. package/state/useApp.js +22 -0
  673. package/state/vrm.d.ts +30 -0
  674. package/state/vrm.d.ts.map +1 -0
  675. package/state/vrm.js +82 -0
  676. package/styles/anime.css +6321 -0
  677. package/styles/onboarding-game.css +1092 -0
  678. package/types/index.d.ts +657 -0
  679. package/types/index.d.ts.map +1 -0
  680. package/types/index.js +1 -0
  681. package/utils/asset-url.d.ts +26 -0
  682. package/utils/asset-url.d.ts.map +1 -0
  683. package/utils/asset-url.js +99 -0
  684. package/utils/assistant-text.d.ts +2 -0
  685. package/utils/assistant-text.d.ts.map +1 -0
  686. package/utils/assistant-text.js +161 -0
  687. package/utils/clipboard.d.ts +2 -0
  688. package/utils/clipboard.d.ts.map +1 -0
  689. package/utils/clipboard.js +38 -0
  690. package/utils/desktop-dialogs.d.ts +19 -0
  691. package/utils/desktop-dialogs.d.ts.map +1 -0
  692. package/utils/desktop-dialogs.js +50 -0
  693. package/utils/eliza-globals.d.ts +11 -0
  694. package/utils/eliza-globals.d.ts.map +1 -0
  695. package/utils/eliza-globals.js +33 -0
  696. package/utils/index.d.ts +8 -0
  697. package/utils/index.d.ts.map +1 -0
  698. package/utils/number-parsing.d.ts +44 -0
  699. package/utils/number-parsing.d.ts.map +1 -0
  700. package/utils/number-parsing.js +56 -0
  701. package/utils/openExternalUrl.d.ts +2 -0
  702. package/utils/openExternalUrl.d.ts.map +1 -0
  703. package/utils/openExternalUrl.js +17 -0
  704. package/utils/spoken-text.d.ts +2 -0
  705. package/utils/spoken-text.d.ts.map +1 -0
  706. package/utils/spoken-text.js +56 -0
  707. package/utils/streaming-text.d.ts +3 -0
  708. package/utils/streaming-text.d.ts.map +1 -0
  709. package/utils/streaming-text.js +87 -0
  710. package/voice/index.d.ts +2 -0
  711. package/voice/index.d.ts.map +1 -0
  712. package/voice/types.d.ts +25 -0
  713. package/voice/types.d.ts.map +1 -0
  714. package/voice/types.js +166 -0
  715. package/wallet-rpc.d.ts +8 -0
  716. package/wallet-rpc.d.ts.map +1 -0
  717. package/wallet-rpc.js +131 -0
  718. package/.turbo/turbo-build.log +0 -5
  719. package/src/App.tsx +0 -504
  720. package/src/actions/character.test.ts +0 -139
  721. package/src/actions/character.ts +0 -334
  722. package/src/actions/chat-helpers.ts +0 -100
  723. package/src/actions/cloud.ts +0 -59
  724. package/src/actions/index.ts +0 -12
  725. package/src/actions/lifecycle.ts +0 -175
  726. package/src/actions/onboarding.ts +0 -38
  727. package/src/actions/triggers.ts +0 -190
  728. package/src/ambient.d.ts +0 -33
  729. package/src/api/client.ts +0 -5659
  730. package/src/autonomy/index.ts +0 -477
  731. package/src/bridge/capacitor-bridge.ts +0 -295
  732. package/src/bridge/electrobun-rpc.ts +0 -78
  733. package/src/bridge/electrobun-runtime.ts +0 -28
  734. package/src/bridge/native-plugins.ts +0 -138
  735. package/src/bridge/plugin-bridge.ts +0 -352
  736. package/src/bridge/storage-bridge.ts +0 -162
  737. package/src/chat/index.ts +0 -250
  738. package/src/coding/index.ts +0 -43
  739. package/src/components/AdvancedPageView.tsx +0 -382
  740. package/src/components/AgentActivityBox.tsx +0 -49
  741. package/src/components/ApiKeyConfig.tsx +0 -222
  742. package/src/components/AppsPageView.tsx +0 -52
  743. package/src/components/AppsView.tsx +0 -293
  744. package/src/components/AvatarLoader.tsx +0 -104
  745. package/src/components/AvatarSelector.tsx +0 -223
  746. package/src/components/BscTradePanel.tsx +0 -549
  747. package/src/components/BugReportModal.tsx +0 -499
  748. package/src/components/CharacterRoster.tsx +0 -143
  749. package/src/components/CharacterView.tsx +0 -1575
  750. package/src/components/ChatAvatar.test.ts +0 -97
  751. package/src/components/ChatAvatar.tsx +0 -147
  752. package/src/components/ChatComposer.tsx +0 -330
  753. package/src/components/ChatMessage.tsx +0 -448
  754. package/src/components/ChatModalView.test.tsx +0 -118
  755. package/src/components/ChatModalView.tsx +0 -125
  756. package/src/components/ChatView.tsx +0 -992
  757. package/src/components/CloudOnboarding.tsx +0 -81
  758. package/src/components/CloudSourceControls.tsx +0 -85
  759. package/src/components/CodingAgentSettingsSection.tsx +0 -537
  760. package/src/components/CommandPalette.tsx +0 -284
  761. package/src/components/CompanionSceneHost.tsx +0 -517
  762. package/src/components/CompanionShell.tsx +0 -31
  763. package/src/components/CompanionView.tsx +0 -110
  764. package/src/components/ConfigPageView.tsx +0 -763
  765. package/src/components/ConfigSaveFooter.tsx +0 -41
  766. package/src/components/ConfirmModal.tsx +0 -379
  767. package/src/components/ConnectionFailedBanner.tsx +0 -91
  768. package/src/components/ConnectorsPageView.tsx +0 -13
  769. package/src/components/ConversationsSidebar.tsx +0 -279
  770. package/src/components/CustomActionEditor.tsx +0 -1127
  771. package/src/components/CustomActionsPanel.tsx +0 -288
  772. package/src/components/CustomActionsView.tsx +0 -325
  773. package/src/components/DatabasePageView.tsx +0 -55
  774. package/src/components/DatabaseView.tsx +0 -814
  775. package/src/components/ElizaCloudDashboard.tsx +0 -1696
  776. package/src/components/EmotePicker.tsx +0 -529
  777. package/src/components/ErrorBoundary.tsx +0 -76
  778. package/src/components/FineTuningView.tsx +0 -1080
  779. package/src/components/FlaminaGuide.test.tsx +0 -61
  780. package/src/components/FlaminaGuide.tsx +0 -212
  781. package/src/components/GameView.tsx +0 -551
  782. package/src/components/GameViewOverlay.tsx +0 -133
  783. package/src/components/GlobalEmoteOverlay.tsx +0 -152
  784. package/src/components/Header.test.tsx +0 -413
  785. package/src/components/Header.tsx +0 -400
  786. package/src/components/HeartbeatsView.tsx +0 -1003
  787. package/src/components/InventoryView.tsx +0 -393
  788. package/src/components/KnowledgeView.tsx +0 -1128
  789. package/src/components/LanguageDropdown.tsx +0 -192
  790. package/src/components/LifoMonitorPanel.tsx +0 -196
  791. package/src/components/LifoSandboxView.tsx +0 -499
  792. package/src/components/LoadingScreen.tsx +0 -112
  793. package/src/components/LogsPageView.tsx +0 -17
  794. package/src/components/LogsView.tsx +0 -239
  795. package/src/components/MediaGalleryView.tsx +0 -431
  796. package/src/components/MediaSettingsSection.tsx +0 -893
  797. package/src/components/MessageContent.tsx +0 -815
  798. package/src/components/MiladyBar.tsx +0 -103
  799. package/src/components/MiladyBarSettings.tsx +0 -872
  800. package/src/components/OnboardingWizard.test.tsx +0 -104
  801. package/src/components/OnboardingWizard.tsx +0 -249
  802. package/src/components/PairingView.tsx +0 -109
  803. package/src/components/PermissionsSection.tsx +0 -1184
  804. package/src/components/PluginsPageView.tsx +0 -9
  805. package/src/components/PluginsView.tsx +0 -3129
  806. package/src/components/ProviderSwitcher.tsx +0 -903
  807. package/src/components/RestartBanner.tsx +0 -76
  808. package/src/components/RuntimeView.tsx +0 -460
  809. package/src/components/SaveCommandModal.tsx +0 -211
  810. package/src/components/SecretsView.tsx +0 -569
  811. package/src/components/SecurityPageView.tsx +0 -242
  812. package/src/components/SettingsView.tsx +0 -825
  813. package/src/components/ShellOverlays.tsx +0 -41
  814. package/src/components/ShortcutsOverlay.tsx +0 -155
  815. package/src/components/SkillsView.tsx +0 -1435
  816. package/src/components/StartupFailureView.tsx +0 -63
  817. package/src/components/StreamView.tsx +0 -481
  818. package/src/components/StripeEmbeddedCheckout.tsx +0 -155
  819. package/src/components/SubscriptionStatus.tsx +0 -640
  820. package/src/components/SystemWarningBanner.tsx +0 -71
  821. package/src/components/ThemeToggle.tsx +0 -103
  822. package/src/components/TrajectoriesView.tsx +0 -526
  823. package/src/components/TrajectoryDetailView.tsx +0 -426
  824. package/src/components/VectorBrowserView.tsx +0 -1633
  825. package/src/components/VoiceConfigView.tsx +0 -674
  826. package/src/components/VrmStage.test.ts +0 -176
  827. package/src/components/VrmStage.tsx +0 -309
  828. package/src/components/WhatsAppQrOverlay.tsx +0 -230
  829. package/src/components/__tests__/chainConfig.test.ts +0 -220
  830. package/src/components/apps/AppDetailPane.tsx +0 -242
  831. package/src/components/apps/AppsCatalogGrid.tsx +0 -137
  832. package/src/components/apps/extensions/registry.ts +0 -13
  833. package/src/components/apps/extensions/types.ts +0 -9
  834. package/src/components/apps/helpers.ts +0 -43
  835. package/src/components/avatar/VrmAnimationLoader.test.ts +0 -164
  836. package/src/components/avatar/VrmAnimationLoader.ts +0 -151
  837. package/src/components/avatar/VrmBlinkController.ts +0 -118
  838. package/src/components/avatar/VrmCameraManager.ts +0 -407
  839. package/src/components/avatar/VrmEngine.ts +0 -2767
  840. package/src/components/avatar/VrmFootShadow.ts +0 -96
  841. package/src/components/avatar/VrmViewer.tsx +0 -421
  842. package/src/components/avatar/__tests__/VrmCameraManager.test.ts +0 -168
  843. package/src/components/avatar/__tests__/VrmEngine.test.ts +0 -1574
  844. package/src/components/avatar/mixamoVRMRigMap.ts +0 -62
  845. package/src/components/avatar/retargetMixamoFbxToVrm.ts +0 -144
  846. package/src/components/avatar/retargetMixamoGltfToVrm.ts +0 -119
  847. package/src/components/chainConfig.ts +0 -400
  848. package/src/components/companion/CompanionHeader.tsx +0 -50
  849. package/src/components/companion/CompanionSceneHost.tsx +0 -5
  850. package/src/components/companion/VrmStage.tsx +0 -2
  851. package/src/components/companion/__tests__/walletUtils.test.ts +0 -742
  852. package/src/components/companion/index.ts +0 -18
  853. package/src/components/companion/walletUtils.ts +0 -290
  854. package/src/components/companion-shell-styles.test.ts +0 -142
  855. package/src/components/companion-shell-styles.ts +0 -270
  856. package/src/components/confirm-delete-control.tsx +0 -69
  857. package/src/components/conversations/ConversationListItem.tsx +0 -185
  858. package/src/components/conversations/conversation-utils.ts +0 -151
  859. package/src/components/format.ts +0 -131
  860. package/src/components/index.ts +0 -96
  861. package/src/components/inventory/CopyableAddress.tsx +0 -41
  862. package/src/components/inventory/InventoryToolbar.tsx +0 -142
  863. package/src/components/inventory/NftGrid.tsx +0 -99
  864. package/src/components/inventory/TokenLogo.tsx +0 -71
  865. package/src/components/inventory/TokensTable.tsx +0 -216
  866. package/src/components/inventory/constants.ts +0 -170
  867. package/src/components/inventory/index.ts +0 -29
  868. package/src/components/inventory/media-url.test.ts +0 -38
  869. package/src/components/inventory/media-url.ts +0 -36
  870. package/src/components/inventory/useInventoryData.ts +0 -460
  871. package/src/components/knowledge-upload-image.ts +0 -215
  872. package/src/components/labels.ts +0 -46
  873. package/src/components/milady-bar/CloudCreditsChip.tsx +0 -61
  874. package/src/components/milady-bar/ProviderDropdown.tsx +0 -166
  875. package/src/components/milady-bar/WalletSummary.tsx +0 -61
  876. package/src/components/milady-bar/index.ts +0 -3
  877. package/src/components/onboarding/ActivateStep.tsx +0 -34
  878. package/src/components/onboarding/ConnectionStep.tsx +0 -1591
  879. package/src/components/onboarding/IdentityStep.tsx +0 -251
  880. package/src/components/onboarding/OnboardingPanel.tsx +0 -39
  881. package/src/components/onboarding/OnboardingStepNav.tsx +0 -41
  882. package/src/components/onboarding/PermissionsStep.tsx +0 -20
  883. package/src/components/onboarding/RpcStep.tsx +0 -402
  884. package/src/components/permissions/PermissionIcon.tsx +0 -25
  885. package/src/components/permissions/StreamingPermissions.tsx +0 -413
  886. package/src/components/plugins/showcase-data.ts +0 -481
  887. package/src/components/shared/ShellHeaderControls.tsx +0 -198
  888. package/src/components/shared-companion-scene-context.ts +0 -15
  889. package/src/components/skeletons.tsx +0 -88
  890. package/src/components/stream/ActivityFeed.tsx +0 -113
  891. package/src/components/stream/AvatarPip.tsx +0 -10
  892. package/src/components/stream/ChatContent.tsx +0 -126
  893. package/src/components/stream/ChatTicker.tsx +0 -55
  894. package/src/components/stream/IdleContent.tsx +0 -73
  895. package/src/components/stream/StatusBar.tsx +0 -463
  896. package/src/components/stream/StreamSettings.tsx +0 -506
  897. package/src/components/stream/StreamTerminal.tsx +0 -94
  898. package/src/components/stream/StreamVoiceConfig.tsx +0 -160
  899. package/src/components/stream/helpers.ts +0 -134
  900. package/src/components/stream/overlays/OverlayLayer.tsx +0 -75
  901. package/src/components/stream/overlays/built-in/ActionTickerWidget.tsx +0 -64
  902. package/src/components/stream/overlays/built-in/AlertPopupWidget.tsx +0 -87
  903. package/src/components/stream/overlays/built-in/BrandingWidget.tsx +0 -51
  904. package/src/components/stream/overlays/built-in/CustomHtmlWidget.tsx +0 -105
  905. package/src/components/stream/overlays/built-in/PeonGlassWidget.tsx +0 -265
  906. package/src/components/stream/overlays/built-in/PeonHudWidget.tsx +0 -247
  907. package/src/components/stream/overlays/built-in/PeonSakuraWidget.tsx +0 -278
  908. package/src/components/stream/overlays/built-in/ThoughtBubbleWidget.tsx +0 -77
  909. package/src/components/stream/overlays/built-in/ViewerCountWidget.tsx +0 -46
  910. package/src/components/stream/overlays/built-in/index.ts +0 -13
  911. package/src/components/stream/overlays/registry.ts +0 -22
  912. package/src/components/stream/overlays/types.ts +0 -90
  913. package/src/components/stream/overlays/useOverlayLayout.ts +0 -218
  914. package/src/components/trajectory-format.ts +0 -50
  915. package/src/components/ui-badges.tsx +0 -109
  916. package/src/components/ui-switch.tsx +0 -57
  917. package/src/components/vector-browser-three.ts +0 -29
  918. package/src/config/branding.ts +0 -67
  919. package/src/config/config-catalog.ts +0 -1092
  920. package/src/config/config-field.tsx +0 -1924
  921. package/src/config/config-renderer.tsx +0 -734
  922. package/src/config/index.ts +0 -12
  923. package/src/config/ui-renderer.tsx +0 -1751
  924. package/src/config/ui-spec.ts +0 -256
  925. package/src/events/index.ts +0 -96
  926. package/src/hooks/useBugReport.tsx +0 -43
  927. package/src/hooks/useCanvasWindow.ts +0 -372
  928. package/src/hooks/useChatAvatarVoice.ts +0 -111
  929. package/src/hooks/useClickOutside.ts +0 -31
  930. package/src/hooks/useContextMenu.ts +0 -127
  931. package/src/hooks/useKeyboardShortcuts.ts +0 -86
  932. package/src/hooks/useLifoSync.ts +0 -143
  933. package/src/hooks/useMemoryMonitor.ts +0 -334
  934. package/src/hooks/useMiladyBar.ts +0 -594
  935. package/src/hooks/useRenderGuard.ts +0 -43
  936. package/src/hooks/useRetakeCapture.ts +0 -68
  937. package/src/hooks/useStreamPopoutNavigation.ts +0 -27
  938. package/src/hooks/useTimeout.ts +0 -37
  939. package/src/hooks/useVoiceChat.ts +0 -1442
  940. package/src/hooks/useWhatsAppPairing.ts +0 -123
  941. package/src/i18n/index.ts +0 -76
  942. package/src/i18n/locales/en.json +0 -1195
  943. package/src/i18n/locales/es.json +0 -1195
  944. package/src/i18n/locales/ko.json +0 -1195
  945. package/src/i18n/locales/pt.json +0 -1195
  946. package/src/i18n/locales/zh-CN.json +0 -1195
  947. package/src/i18n/messages.ts +0 -21
  948. package/src/navigation/index.ts +0 -286
  949. package/src/navigation.test.ts +0 -189
  950. package/src/onboarding-config.test.ts +0 -104
  951. package/src/onboarding-config.ts +0 -122
  952. package/src/platform/browser-launch.test.ts +0 -94
  953. package/src/platform/browser-launch.ts +0 -149
  954. package/src/platform/index.ts +0 -58
  955. package/src/platform/init.ts +0 -238
  956. package/src/platform/lifo.ts +0 -225
  957. package/src/providers/index.ts +0 -108
  958. package/src/shell-params.test.ts +0 -48
  959. package/src/shell-params.ts +0 -36
  960. package/src/state/AppContext.tsx +0 -6415
  961. package/src/state/internal.ts +0 -91
  962. package/src/state/onboarding-resume.test.ts +0 -135
  963. package/src/state/onboarding-resume.ts +0 -263
  964. package/src/state/parsers.test.ts +0 -124
  965. package/src/state/parsers.ts +0 -309
  966. package/src/state/persistence.ts +0 -379
  967. package/src/state/shell-routing.ts +0 -39
  968. package/src/state/types.ts +0 -724
  969. package/src/state/ui-preferences.ts +0 -3
  970. package/src/state/useApp.ts +0 -23
  971. package/src/state/vrm.ts +0 -108
  972. package/src/styles/anime.css +0 -6324
  973. package/src/styles/onboarding-game.css +0 -976
  974. package/src/types/index.ts +0 -715
  975. package/src/types/react-test-renderer.d.ts +0 -45
  976. package/src/utils/asset-url.ts +0 -110
  977. package/src/utils/assistant-text.ts +0 -172
  978. package/src/utils/clipboard.ts +0 -41
  979. package/src/utils/desktop-dialogs.ts +0 -80
  980. package/src/utils/eliza-globals.ts +0 -44
  981. package/src/utils/number-parsing.ts +0 -125
  982. package/src/utils/openExternalUrl.ts +0 -20
  983. package/src/utils/spoken-text.ts +0 -65
  984. package/src/utils/streaming-text.ts +0 -120
  985. package/src/voice/types.ts +0 -197
  986. package/src/wallet-rpc.ts +0 -176
  987. package/test/app/AppContext.pty-sessions.test.tsx +0 -143
  988. package/test/app/MessageContent.test.tsx +0 -366
  989. package/test/app/PermissionsOnboarding.test.tsx +0 -358
  990. package/test/app/PermissionsSection.test.tsx +0 -575
  991. package/test/app/advanced-trajectory-fine-tuning.e2e.test.ts +0 -396
  992. package/test/app/agent-activity-box.test.tsx +0 -132
  993. package/test/app/agent-transfer-lock.test.ts +0 -279
  994. package/test/app/api-client-electrobun-fallback.test.ts +0 -139
  995. package/test/app/api-client-electron-fallback.test.ts +0 -139
  996. package/test/app/api-client-timeout.test.ts +0 -75
  997. package/test/app/api-client-ws.test.ts +0 -98
  998. package/test/app/api-client.ws-max-reconnect.test.ts +0 -139
  999. package/test/app/api-client.ws-reconnect.test.ts +0 -157
  1000. package/test/app/app-context-autonomy-events.test.ts +0 -559
  1001. package/test/app/apps-page-view.test.ts +0 -114
  1002. package/test/app/apps-view.test.ts +0 -768
  1003. package/test/app/autonomous-workflows.e2e.test.ts +0 -765
  1004. package/test/app/autonomy-events.test.ts +0 -150
  1005. package/test/app/avatar-selector.test.tsx +0 -52
  1006. package/test/app/bsc-trade-panel.test.tsx +0 -134
  1007. package/test/app/bug-report-modal.test.tsx +0 -353
  1008. package/test/app/character-action-bar-visibility.test.ts +0 -70
  1009. package/test/app/character-customization.e2e.test.ts +0 -1384
  1010. package/test/app/character-save-journey.test.ts +0 -1245
  1011. package/test/app/chat-advanced-features.e2e.test.ts +0 -706
  1012. package/test/app/chat-composer.test.tsx +0 -181
  1013. package/test/app/chat-journey.test.ts +0 -1075
  1014. package/test/app/chat-language-header.test.ts +0 -64
  1015. package/test/app/chat-message.test.tsx +0 -222
  1016. package/test/app/chat-modal-view.test.tsx +0 -191
  1017. package/test/app/chat-routine-filter.test.ts +0 -96
  1018. package/test/app/chat-send-lock.test.ts +0 -1465
  1019. package/test/app/chat-stream-api-client.test.tsx +0 -390
  1020. package/test/app/chat-view-game-modal.test.tsx +0 -661
  1021. package/test/app/chat-view.test.tsx +0 -877
  1022. package/test/app/cloud-api.e2e.test.ts +0 -258
  1023. package/test/app/cloud-login-flow.e2e.test.ts +0 -494
  1024. package/test/app/cloud-login-lock.test.ts +0 -416
  1025. package/test/app/command-palette.test.tsx +0 -184
  1026. package/test/app/command-registry.test.ts +0 -75
  1027. package/test/app/companion-greeting-wave.test.tsx +0 -431
  1028. package/test/app/companion-scene-host.test.tsx +0 -85
  1029. package/test/app/companion-stale-conversation.test.tsx +0 -447
  1030. package/test/app/companion-view.test.tsx +0 -690
  1031. package/test/app/confirm-delete-control.test.ts +0 -79
  1032. package/test/app/confirm-modal.test.tsx +0 -219
  1033. package/test/app/connection-mode-persistence.test.ts +0 -411
  1034. package/test/app/connectors-ui.e2e.test.ts +0 -508
  1035. package/test/app/conversations-sidebar-game-modal.test.tsx +0 -265
  1036. package/test/app/conversations-sidebar.test.tsx +0 -185
  1037. package/test/app/custom-actions-smoke.test.ts +0 -387
  1038. package/test/app/custom-avatar-api-client.test.ts +0 -207
  1039. package/test/app/desktop-utils.test.ts +0 -145
  1040. package/test/app/electrobun-rpc-bridge.test.ts +0 -83
  1041. package/test/app/events.test.ts +0 -88
  1042. package/test/app/export-import-flows.e2e.test.ts +0 -700
  1043. package/test/app/fine-tuning-view.test.ts +0 -471
  1044. package/test/app/game-view-auth-session.test.tsx +0 -187
  1045. package/test/app/game-view.test.ts +0 -444
  1046. package/test/app/global-emote-overlay.test.tsx +0 -106
  1047. package/test/app/header-status.test.tsx +0 -149
  1048. package/test/app/i18n.test.ts +0 -152
  1049. package/test/app/inventory-bsc-view.test.ts +0 -940
  1050. package/test/app/knowledge-ui.e2e.test.ts +0 -762
  1051. package/test/app/knowledge-upload-helpers.test.ts +0 -124
  1052. package/test/app/lifecycle-lock.test.ts +0 -267
  1053. package/test/app/lifo-popout-utils.test.ts +0 -208
  1054. package/test/app/lifo-safe-endpoint.test.ts +0 -34
  1055. package/test/app/loading-screen.test.tsx +0 -45
  1056. package/test/app/memory-monitor.test.ts +0 -331
  1057. package/test/app/milady-bar-regression.test.tsx +0 -519
  1058. package/test/app/milady-bar-settings.test.tsx +0 -1056
  1059. package/test/app/milady-bar.test.tsx +0 -583
  1060. package/test/app/navigation.test.tsx +0 -22
  1061. package/test/app/onboarding-e2e-journey.test.ts +0 -1409
  1062. package/test/app/onboarding-finish-lock.test.ts +0 -676
  1063. package/test/app/onboarding-language.test.tsx +0 -160
  1064. package/test/app/onboarding-steps.test.tsx +0 -375
  1065. package/test/app/open-external-url.test.ts +0 -65
  1066. package/test/app/pages-navigation-smoke.e2e.test.ts +0 -646
  1067. package/test/app/pairing-lock.test.ts +0 -260
  1068. package/test/app/pairing-view.test.tsx +0 -74
  1069. package/test/app/permissions-section.test.ts +0 -432
  1070. package/test/app/plugin-bridge.test.ts +0 -109
  1071. package/test/app/plugins-ui.e2e.test.ts +0 -605
  1072. package/test/app/plugins-view-game-modal.test.tsx +0 -686
  1073. package/test/app/plugins-view-toggle-restart.test.ts +0 -129
  1074. package/test/app/provider-dropdown-default.test.tsx +0 -300
  1075. package/test/app/restart-banner.test.tsx +0 -205
  1076. package/test/app/retake-capture.test.ts +0 -84
  1077. package/test/app/sandbox-api-client.test.ts +0 -108
  1078. package/test/app/save-command-modal.test.tsx +0 -109
  1079. package/test/app/secrets-view.test.tsx +0 -92
  1080. package/test/app/settings-control-styles.test.tsx +0 -142
  1081. package/test/app/settings-reset.e2e.test.ts +0 -726
  1082. package/test/app/settings-sections.e2e.test.ts +0 -614
  1083. package/test/app/shared-format.test.ts +0 -44
  1084. package/test/app/shared-switch.test.ts +0 -69
  1085. package/test/app/shell-mode-switching.e2e.test.ts +0 -841
  1086. package/test/app/shell-mode-tab-memory.test.tsx +0 -58
  1087. package/test/app/shell-overlays.test.tsx +0 -50
  1088. package/test/app/shortcuts-overlay.test.tsx +0 -111
  1089. package/test/app/sse-interruption.test.ts +0 -122
  1090. package/test/app/startup-asset-missing.e2e.test.ts +0 -126
  1091. package/test/app/startup-backend-missing.e2e.test.ts +0 -126
  1092. package/test/app/startup-chat.e2e.test.ts +0 -323
  1093. package/test/app/startup-conversation-restore.test.tsx +0 -381
  1094. package/test/app/startup-failure-view.test.tsx +0 -103
  1095. package/test/app/startup-onboarding.e2e.test.ts +0 -712
  1096. package/test/app/startup-timeout.test.tsx +0 -80
  1097. package/test/app/startup-token-401.e2e.test.ts +0 -103
  1098. package/test/app/stream-helpers.test.ts +0 -46
  1099. package/test/app/stream-popout-navigation.test.tsx +0 -41
  1100. package/test/app/stream-status-bar.test.tsx +0 -89
  1101. package/test/app/theme-toggle.test.tsx +0 -40
  1102. package/test/app/training-api-client.test.ts +0 -128
  1103. package/test/app/trajectories-view.test.tsx +0 -220
  1104. package/test/app/triggers-api-client.test.ts +0 -77
  1105. package/test/app/triggers-navigation.test.ts +0 -113
  1106. package/test/app/triggers-view.e2e.test.ts +0 -675
  1107. package/test/app/update-channel-lock.test.ts +0 -259
  1108. package/test/app/vector-browser.async-cleanup.test.tsx +0 -367
  1109. package/test/app/vector-browser.e2e.test.ts +0 -653
  1110. package/test/app/vrm-stage.test.tsx +0 -351
  1111. package/test/app/vrm-viewer.test.tsx +0 -298
  1112. package/test/app/wallet-api-save-lock.test.ts +0 -299
  1113. package/test/app/wallet-hooks.test.ts +0 -405
  1114. package/test/app/wallet-ui-flows.e2e.test.ts +0 -556
  1115. package/test/avatar/asset-url.test.ts +0 -90
  1116. package/test/avatar/avatar-selector.test.ts +0 -173
  1117. package/test/avatar/mixamo-vrm-rig-map.test.ts +0 -111
  1118. package/test/avatar/voice-chat-streaming-text.test.ts +0 -96
  1119. package/test/avatar/voice-chat.test.ts +0 -391
  1120. package/test/browser-extension/README.md +0 -138
  1121. package/test/browser-extension/test-harness.ts +0 -499
  1122. package/test/capacitor-plugins.e2e.test.ts +0 -168
  1123. package/test/test-types.ts +0 -5
  1124. package/test/ui/command-palette-commands.test.ts +0 -57
  1125. package/test/ui/ui-renderer.test.ts +0 -39
  1126. package/test/utils/assistant-text.test.ts +0 -68
  1127. package/test/utils/eliza-globals.test.ts +0 -59
  1128. package/test/utils/package-exports.test.ts +0 -70
  1129. package/test/utils/streaming-text.test.ts +0 -89
  1130. package/tsconfig.build.json +0 -19
  1131. package/tsconfig.json +0 -20
  1132. package/tsconfig.typecheck.json +0 -12
  1133. /package/{src/api/index.ts → api/index.js} +0 -0
  1134. /package/{src/bridge/index.ts → bridge/index.js} +0 -0
  1135. /package/{src/components/TriggersView.tsx → components/TriggersView.js} +0 -0
  1136. /package/{src/hooks/index.ts → hooks/index.js} +0 -0
  1137. /package/{src/index.ts → index.js} +0 -0
  1138. /package/{src/state/index.ts → state/index.js} +0 -0
  1139. /package/{src/styles → styles}/base.css +0 -0
  1140. /package/{src/styles → styles}/styles.css +0 -0
  1141. /package/{src/styles → styles}/xterm.css +0 -0
  1142. /package/{src/utils/index.ts → utils/index.js} +0 -0
  1143. /package/{src/voice/index.ts → voice/index.js} +0 -0
@@ -0,0 +1,480 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { client } from "@elizaos/app-core/api";
3
+ import { ConfirmDeleteControl, formatByteSize, formatShortDate, } from "@elizaos/app-core/components";
4
+ import { useApp } from "@elizaos/app-core/state";
5
+ import { confirmDesktopAction } from "@elizaos/app-core/utils";
6
+ import { Button, Input } from "@elizaos/ui";
7
+ import { useCallback, useEffect, useRef, useState } from "react";
8
+ import { isKnowledgeImageFile, MAX_KNOWLEDGE_IMAGE_PROCESSING_BYTES, maybeCompressKnowledgeUploadImage, } from "./knowledge-upload-image";
9
+ const MAX_UPLOAD_REQUEST_BYTES = 32 * 1_048_576; // Must match server knowledge route limit
10
+ const BULK_UPLOAD_TARGET_BYTES = 24 * 1_048_576;
11
+ const MAX_BULK_REQUEST_DOCUMENTS = 100;
12
+ const LARGE_FILE_WARNING_BYTES = 8 * 1_048_576;
13
+ const SUPPORTED_UPLOAD_EXTENSIONS = new Set([
14
+ ".txt",
15
+ ".md",
16
+ ".pdf",
17
+ ".docx",
18
+ ".json",
19
+ ".csv",
20
+ ".xml",
21
+ ".html",
22
+ ".png",
23
+ ".jpg",
24
+ ".jpeg",
25
+ ".webp",
26
+ ".gif",
27
+ ]);
28
+ export function getKnowledgeUploadFilename(file) {
29
+ return file.webkitRelativePath?.trim() || file.name;
30
+ }
31
+ export function shouldReadKnowledgeFileAsText(file) {
32
+ const textTypes = [
33
+ "text/plain",
34
+ "text/markdown",
35
+ "text/html",
36
+ "text/csv",
37
+ "application/json",
38
+ "application/xml",
39
+ ];
40
+ return (textTypes.some((t) => file.type.includes(t)) || file.name.endsWith(".md"));
41
+ }
42
+ function isSupportedKnowledgeFile(file) {
43
+ const lowerName = file.name.toLowerCase();
44
+ for (const extension of SUPPORTED_UPLOAD_EXTENSIONS) {
45
+ if (lowerName.endsWith(extension))
46
+ return true;
47
+ }
48
+ return false;
49
+ }
50
+ /* ── Upload Zone ────────────────────────────────────────────────────── */
51
+ function UploadZone({ onFilesUpload, onUrlUpload, uploading, uploadStatus, }) {
52
+ const { t } = useApp();
53
+ const [dragOver, setDragOver] = useState(false);
54
+ const [urlInput, setUrlInput] = useState("");
55
+ const [showUrlInput, setShowUrlInput] = useState(false);
56
+ const [includeImageDescriptions, setIncludeImageDescriptions] = useState(true);
57
+ const fileInputRef = useRef(null);
58
+ const handleDrop = useCallback((e) => {
59
+ e.preventDefault();
60
+ setDragOver(false);
61
+ const files = Array.from(e.dataTransfer.files);
62
+ if (files.length > 0 && !uploading) {
63
+ onFilesUpload(files, { includeImageDescriptions });
64
+ }
65
+ }, [includeImageDescriptions, onFilesUpload, uploading]);
66
+ const handleFileSelect = useCallback((e) => {
67
+ const files = e.target.files;
68
+ if (files && files.length > 0 && !uploading) {
69
+ onFilesUpload(Array.from(files), {
70
+ includeImageDescriptions,
71
+ });
72
+ }
73
+ e.target.value = "";
74
+ }, [includeImageDescriptions, onFilesUpload, uploading]);
75
+ const handleUrlSubmit = useCallback(() => {
76
+ const url = urlInput.trim();
77
+ if (url && !uploading) {
78
+ onUrlUpload(url, { includeImageDescriptions });
79
+ setUrlInput("");
80
+ setShowUrlInput(false);
81
+ }
82
+ }, [includeImageDescriptions, urlInput, uploading, onUrlUpload]);
83
+ return (_jsxs("fieldset", { className: "w-full min-w-[min(22rem,100%)] flex-[1_1_26rem] sm:w-auto sm:flex-none", onDragOver: (e) => {
84
+ e.preventDefault();
85
+ setDragOver(true);
86
+ }, onDragLeave: () => setDragOver(false), onDrop: handleDrop, "aria-label": "Knowledge upload controls", children: [_jsx("input", { ref: fileInputRef, type: "file", className: "hidden", multiple: true, accept: ".txt,.md,.pdf,.docx,.json,.csv,.xml,.html,.png,.jpg,.jpeg,.webp,.gif", onChange: handleFileSelect }), _jsxs("div", { className: "flex flex-wrap items-center justify-end gap-x-2 gap-y-1", children: [_jsx(Button, { variant: "default", size: "sm", className: "h-10 px-4 text-[11px] font-semibold", onClick: () => fileInputRef.current?.click(), disabled: uploading, children: t("knowledgeview.ChooseFiles") }), _jsx(Button, { variant: "outline", size: "sm", className: "h-10 px-4 text-[11px] font-semibold hover:text-txt", onClick: () => setShowUrlInput(!showUrlInput), disabled: uploading, children: t("knowledgeview.AddFromURL") }), _jsxs("label", { className: "inline-flex h-10 cursor-pointer items-center gap-2 rounded-md border border-border/30 bg-bg/40 px-3 text-[11px] text-muted/80 transition-colors hover:text-muted", children: [_jsx("input", { type: "checkbox", checked: includeImageDescriptions, onChange: (e) => setIncludeImageDescriptions(e.target.checked), disabled: uploading, className: "accent-accent h-3.5 w-3.5 rounded border-border/50 bg-bg/50" }), t("knowledgeview.IncludeAIImageDes")] })] }), (dragOver || uploading || showUrlInput) && (_jsxs("div", { className: `mt-2 rounded-xl border px-3 py-2.5 transition-colors sm:min-w-[24rem] ${dragOver
87
+ ? "border-border/50 bg-card/30"
88
+ : "border-border/30 bg-card/15"} ${uploading ? "opacity-60" : ""}`, children: [(dragOver || uploading) && (_jsx("div", { className: "flex flex-wrap items-center gap-x-3 gap-y-1 text-[11px] text-muted/80", children: _jsx("span", { className: "font-medium text-txt/80", children: uploadStatus
89
+ ? `Uploading ${uploadStatus.current}/${uploadStatus.total}${uploadStatus.filename ? `: ${uploadStatus.filename}` : ""}`
90
+ : "Drop files or folders to upload" }) })), showUrlInput && (_jsxs("div", { className: `${dragOver || uploading ? "mt-2" : ""} animate-in fade-in slide-in-from-top-2 duration-300`, children: [_jsx("div", { className: "mb-2 text-[11px] font-medium leading-relaxed text-muted", children: t("knowledgeview.PasteAURLToImpor") }), _jsxs("div", { className: "flex flex-col gap-2 sm:flex-row", children: [_jsx(Input, { type: "url", placeholder: t("knowledgeview.httpsExampleCom"), value: urlInput, onChange: (e) => setUrlInput(e.target.value), onKeyDown: (e) => e.key === "Enter" && handleUrlSubmit(), disabled: uploading, className: "h-10 flex-1 bg-bg/60 border-border/50 text-xs shadow-none" }), _jsx(Button, { variant: "default", size: "sm", className: "h-10 px-4 text-[11px] font-semibold", onClick: handleUrlSubmit, disabled: !urlInput.trim() || uploading, children: t("knowledgeview.Import") })] })] }))] }))] }));
91
+ }
92
+ /* ── Search Results ─────────────────────────────────────────────────── */
93
+ function SearchResults({ results, onClear, }) {
94
+ const { t } = useApp();
95
+ return (_jsxs("div", { className: "mb-8 animate-in fade-in slide-in-from-top-4 duration-300", children: [_jsxs("div", { className: "flex items-center justify-between mb-4 border-b border-border/40 pb-3", children: [_jsxs("h3", { className: "text-sm font-bold text-txt tracking-wide", children: [t("knowledgeview.SearchResults"), _jsx("span", { className: "ml-2 text-[11px] text-muted font-mono bg-black/10 px-2 py-0.5 rounded-full border border-white/5", children: results.length })] }), _jsx(Button, { variant: "ghost", size: "sm", onClick: onClear, className: "h-7 text-[11px] font-bold text-muted hover:text-danger hover:bg-danger/10", children: t("knowledgeview.Clear") })] }), _jsxs("div", { className: "space-y-3", children: [results.map((result) => (_jsxs("div", { className: "p-4 border border-border/40 bg-card/40 backdrop-blur-md rounded-xl shadow-sm hover:shadow-md transition-all hover:border-accent/40", children: [_jsxs("div", { className: "flex items-start justify-between gap-3 mb-3", children: [_jsx("span", { className: "text-[13px] font-bold text-txt truncate", children: result.documentTitle || "Unknown Document" }), _jsxs("span", { className: "shrink-0 text-[10px] font-bold tracking-wider px-2 py-1 bg-accent/20 text-txt rounded-md border border-accent/20", children: [(result.similarity * 100).toFixed(0), "%", " ", t("knowledgeview.Match")] })] }), _jsx("p", { className: "text-sm text-txt/80 line-clamp-3 leading-relaxed", children: result.text })] }, result.id))), results.length === 0 && (_jsx("div", { className: "text-center py-10 text-muted bg-black/5 rounded-xl border border-white/5", children: t("knowledgeview.NoResultsFound") }))] })] }));
96
+ }
97
+ /* ── Document Card ──────────────────────────────────────────────────── */
98
+ function DocumentCard({ doc, onSelect, onDelete, deleting, }) {
99
+ const { t } = useApp();
100
+ return (_jsxs("div", { className: "flex items-center justify-between p-4 border border-border/40 bg-card/40 backdrop-blur-md rounded-xl shadow-sm hover:shadow-[0_0_15px_rgba(var(--accent),0.1)] hover:border-accent/50 transition-all group", children: [_jsxs("button", { type: "button", className: "flex-1 min-w-0 cursor-pointer text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent rounded-sm", onClick: () => onSelect(doc.id), "aria-label": `Open ${doc.filename}`, children: [_jsx("div", { className: "font-bold text-sm text-txt truncate mb-2 group-hover:text-txt transition-colors", children: doc.filename }), _jsxs("div", { className: "flex items-center gap-3 text-xs text-muted/80 font-medium", children: [_jsx("span", { className: "uppercase tracking-widest text-[10px]", children: doc.contentType?.split("/").pop() }), _jsx("span", { className: "w-1 h-1 rounded-full bg-border/50" }), _jsx("span", { children: formatByteSize(doc.fileSize) }), _jsx("span", { className: "w-1 h-1 rounded-full bg-border/50" }), _jsx("span", { children: formatShortDate(doc.createdAt, { fallback: "—" }) }), doc.source === "youtube" && (_jsxs(_Fragment, { children: [_jsx("span", { className: "w-1 h-1 rounded-full bg-border/50" }), _jsx("span", { className: "px-2 py-0.5 bg-red-500/10 text-red-500 border border-red-500/20 rounded-md text-[10px] font-bold tracking-wider", children: t("knowledgeview.YouTube") })] })), doc.source === "url" && (_jsxs(_Fragment, { children: [_jsx("span", { className: "w-1 h-1 rounded-full bg-border/50" }), _jsx("span", { className: "px-2 py-0.5 bg-accent/10 text-txt border border-accent/20 rounded-md text-[10px] font-bold tracking-wider", children: t("knowledgeview.URL") })] }))] })] }), _jsx("div", { className: "flex items-center gap-2 ml-4 opacity-0 group-hover:opacity-100 transition-opacity focus-within:opacity-100", children: _jsx(ConfirmDeleteControl, { triggerClassName: "h-8 px-3 text-xs font-bold text-danger hover:bg-danger/10 hover:text-danger rounded-lg transition-all", confirmClassName: "h-8 px-3 text-xs font-bold bg-danger/20 text-danger hover:bg-danger/30 rounded-lg transition-all", cancelClassName: "h-8 px-3 text-xs font-bold text-muted hover:text-txt rounded-lg transition-all", disabled: deleting, busyLabel: "...", onConfirm: () => onDelete(doc.id) }) })] }));
101
+ }
102
+ /* ── Document Detail Modal ──────────────────────────────────────────── */
103
+ function DocumentDetailModal({ documentId, onClose, }) {
104
+ const { t } = useApp();
105
+ const [doc, setDoc] = useState(null);
106
+ const [fragments, setFragments] = useState([]);
107
+ const [loading, setLoading] = useState(true);
108
+ const [error, setError] = useState(null);
109
+ useEffect(() => {
110
+ let cancelled = false;
111
+ async function load() {
112
+ setLoading(true);
113
+ setError(null);
114
+ const [docRes, fragRes] = await Promise.all([
115
+ client.getKnowledgeDocument(documentId),
116
+ client.getKnowledgeFragments(documentId),
117
+ ]);
118
+ if (cancelled)
119
+ return;
120
+ setDoc(docRes.document);
121
+ setFragments(fragRes.fragments);
122
+ setLoading(false);
123
+ }
124
+ load().catch((err) => {
125
+ if (!cancelled) {
126
+ setError(err instanceof Error ? err.message : "Failed to load document");
127
+ setLoading(false);
128
+ }
129
+ });
130
+ return () => {
131
+ cancelled = true;
132
+ };
133
+ }, [documentId]);
134
+ return (_jsx("div", { className: "fixed inset-0 bg-black/60 backdrop-blur-sm flex items-center justify-center z-50 p-6 animate-in fade-in duration-200", children: _jsxs("div", { className: "bg-card/90 border border-border/50 rounded-2xl w-full max-w-4xl max-h-[85vh] flex flex-col shadow-2xl overflow-hidden backdrop-blur-xl", children: [_jsxs("div", { className: "flex items-center justify-between p-5 border-b border-border/30 bg-black/10", children: [_jsx("h2", { className: "text-lg font-bold text-txt tracking-wide", children: loading ? "Loading..." : doc?.filename || "Document" }), _jsx(Button, { variant: "ghost", size: "icon", onClick: onClose, className: "h-8 w-8 text-muted hover:bg-white/10 hover:text-txt rounded-full transition-all", children: "\u2715" })] }), _jsxs("div", { className: "flex-1 overflow-y-auto p-6 scrollbar-thin scrollbar-thumb-white/10 scrollbar-track-transparent", children: [loading && (_jsxs("div", { className: "text-center py-12 text-muted font-bold tracking-wide animate-pulse", children: [_jsx("span", { className: "inline-block w-4 h-4 border-2 border-accent border-t-transparent rounded-full animate-spin mr-3 align-middle" }), t("knowledgeview.Loading")] })), error && (_jsx("div", { className: "text-center py-10 bg-danger/10 border border-danger/20 rounded-xl text-danger font-medium mx-auto max-w-lg", children: error })), !loading && !error && doc && (_jsxs(_Fragment, { children: [_jsx("div", { className: "mb-8 p-5 bg-black/20 border border-white/5 shadow-inner rounded-xl", children: _jsxs("div", { className: "grid grid-cols-2 md:grid-cols-4 gap-4 text-xs", children: [_jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx("span", { className: "text-[10px] font-bold tracking-widest uppercase text-muted/70", children: t("knowledgeview.Type") }), " ", _jsx("span", { className: "text-txt font-medium bg-black/20 px-2 py-1 rounded inline-block w-fit", children: doc.contentType })] }), _jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx("span", { className: "text-[10px] font-bold tracking-widest uppercase text-muted/70", children: t("knowledgeview.Source") }), " ", _jsx("span", { className: "text-txt font-medium bg-black/20 px-2 py-1 rounded inline-block w-fit", children: doc.source })] }), _jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx("span", { className: "text-[10px] font-bold tracking-widest uppercase text-muted/70", children: "Size" }), " ", _jsx("span", { className: "text-txt font-medium bg-black/20 px-2 py-1 rounded inline-block w-fit", children: formatByteSize(doc.fileSize) })] }), _jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx("span", { className: "text-[10px] font-bold tracking-widest uppercase text-muted/70", children: "Uploaded" }), " ", _jsx("span", { className: "text-txt font-medium bg-black/20 px-2 py-1 rounded inline-block w-fit", children: formatShortDate(doc.createdAt, { fallback: "—" }) })] }), doc.url && (_jsxs("div", { className: "col-span-full mt-2 pt-4 border-t border-white/5 flex flex-col gap-1.5", children: [_jsx("span", { className: "text-[10px] font-bold tracking-widest uppercase text-muted/70", children: t("appsview.URL") }), " ", _jsx("a", { href: doc.url, target: "_blank", rel: "noopener noreferrer", className: "text-txt hover:text-txt/80 font-medium underline decoration-accent/30 underline-offset-4 transition-colors break-all", children: doc.url })] }))] }) }), _jsx("div", { className: "flex items-center justify-between mb-4 border-b border-white/10 pb-2", children: _jsxs("h3", { className: "text-sm font-bold tracking-wide text-txt", children: [t("knowledgeview.Fragments1"), _jsx("span", { className: "ml-2 px-2 py-0.5 rounded-full bg-white/10 text-xs text-muted font-mono", children: fragments.length })] }) }), _jsxs("div", { className: "space-y-4", children: [fragments.map((fragment, index) => (_jsxs("div", { className: "p-4 bg-card/60 border border-white/5 shadow-sm rounded-xl hover:border-accent/30 transition-colors", children: [_jsxs("div", { className: "flex items-center justify-between mb-3", children: [_jsxs("span", { className: "text-[11px] font-bold tracking-widest uppercase text-muted", children: [t("knowledgeview.Fragment"), " ", index + 1] }), fragment.position !== undefined && (_jsxs("span", { className: "text-[10px] text-muted/80 font-mono bg-black/20 px-2 py-0.5 rounded-md border border-white/5", children: [t("knowledgeview.Position"), " ", fragment.position] }))] }), _jsx("p", { className: "text-[13px] text-txt/90 whitespace-pre-wrap leading-relaxed", children: fragment.text })] }, fragment.id))), fragments.length === 0 && (_jsx("div", { className: "text-center py-12 text-muted bg-black/10 rounded-xl border border-dashed border-white/10", children: t("knowledgeview.NoFragmentsFound") }))] })] }))] })] }) }));
135
+ }
136
+ /* ── Main KnowledgeView Component ───────────────────────────────────── */
137
+ export function KnowledgeView({ inModal } = {}) {
138
+ const { t } = useApp();
139
+ const { setActionNotice } = useApp();
140
+ const setActionNoticeRef = useRef(setActionNotice);
141
+ setActionNoticeRef.current = setActionNotice;
142
+ const [searchQuery, setSearchQuery] = useState("");
143
+ const [documents, setDocuments] = useState([]);
144
+ const [searchResults, setSearchResults] = useState(null);
145
+ const [loading, setLoading] = useState(true);
146
+ const [uploading, setUploading] = useState(false);
147
+ const [uploadStatus, setUploadStatus] = useState(null);
148
+ const [searching, setSearching] = useState(false);
149
+ const [deleting, setDeleting] = useState(null);
150
+ const [selectedDocId, setSelectedDocId] = useState(null);
151
+ const [loadError, setLoadError] = useState(null);
152
+ const [isServiceLoading, setIsServiceLoading] = useState(false);
153
+ const serviceRetryRef = useRef(0);
154
+ const loadData = useCallback(async () => {
155
+ setLoading(true);
156
+ setLoadError(null);
157
+ try {
158
+ const docsRes = await client.listKnowledgeDocuments({ limit: 100 });
159
+ setDocuments(docsRes.documents);
160
+ setIsServiceLoading(false);
161
+ serviceRetryRef.current = 0;
162
+ }
163
+ catch (err) {
164
+ const status = err.status;
165
+ if (status === 503) {
166
+ setIsServiceLoading(true);
167
+ }
168
+ else {
169
+ setIsServiceLoading(false);
170
+ const msg = err instanceof Error ? err.message : "Failed to load knowledge data";
171
+ setLoadError(msg);
172
+ setActionNoticeRef.current(msg, "error");
173
+ }
174
+ }
175
+ finally {
176
+ setLoading(false);
177
+ }
178
+ }, []);
179
+ useEffect(() => {
180
+ loadData().catch((err) => {
181
+ console.error("[KnowledgeView] Failed to load data:", err);
182
+ setLoading(false);
183
+ });
184
+ }, [loadData]);
185
+ // Auto-retry with exponential backoff when knowledge service is still loading (503)
186
+ useEffect(() => {
187
+ if (!isServiceLoading) {
188
+ serviceRetryRef.current = 0;
189
+ return;
190
+ }
191
+ const attempt = serviceRetryRef.current;
192
+ if (attempt >= 5) {
193
+ setIsServiceLoading(false);
194
+ setLoadError("Knowledge service did not become available. Please reload the page.");
195
+ return;
196
+ }
197
+ const delayMs = 2000 * 1.5 ** attempt; // 2s, 3s, 4.5s, 6.75s, ~10s
198
+ const timer = setTimeout(() => {
199
+ serviceRetryRef.current = attempt + 1;
200
+ loadData();
201
+ }, delayMs);
202
+ return () => clearTimeout(timer);
203
+ }, [isServiceLoading, loadData]);
204
+ const readKnowledgeFile = useCallback(async (file) => {
205
+ const reader = new FileReader();
206
+ return new Promise((resolve, reject) => {
207
+ reader.onload = () => {
208
+ const result = reader.result;
209
+ if (typeof result === "string") {
210
+ resolve(result);
211
+ return;
212
+ }
213
+ if (result instanceof ArrayBuffer) {
214
+ const bytes = new Uint8Array(result);
215
+ let binary = "";
216
+ for (let i = 0; i < bytes.byteLength; i++) {
217
+ binary += String.fromCharCode(bytes[i]);
218
+ }
219
+ resolve(btoa(binary));
220
+ return;
221
+ }
222
+ reject(new Error("Failed to read file"));
223
+ };
224
+ reader.onerror = () => reject(reader.error);
225
+ if (shouldReadKnowledgeFileAsText(file)) {
226
+ reader.readAsText(file);
227
+ }
228
+ else {
229
+ reader.readAsArrayBuffer(file);
230
+ }
231
+ });
232
+ }, []);
233
+ const buildKnowledgeUploadRequest = useCallback(async (file, options) => {
234
+ const optimizedImage = await maybeCompressKnowledgeUploadImage(file);
235
+ const uploadFile = optimizedImage.file;
236
+ if (isKnowledgeImageFile(uploadFile) &&
237
+ uploadFile.size > MAX_KNOWLEDGE_IMAGE_PROCESSING_BYTES) {
238
+ throw new Error(`Image could not be compressed below ${formatByteSize(MAX_KNOWLEDGE_IMAGE_PROCESSING_BYTES)} for processing.`);
239
+ }
240
+ const uploadFilename = getKnowledgeUploadFilename(uploadFile);
241
+ const content = await readKnowledgeFile(uploadFile);
242
+ const request = {
243
+ content,
244
+ filename: uploadFilename,
245
+ contentType: uploadFile.type || "application/octet-stream",
246
+ metadata: {
247
+ includeImageDescriptions: options.includeImageDescriptions,
248
+ relativePath: uploadFile.webkitRelativePath || undefined,
249
+ },
250
+ };
251
+ const requestBytes = new TextEncoder().encode(JSON.stringify(request)).length;
252
+ if (requestBytes > MAX_UPLOAD_REQUEST_BYTES) {
253
+ throw new Error(`Upload payload is ${formatByteSize(requestBytes)}, which exceeds the current limit (${formatByteSize(MAX_UPLOAD_REQUEST_BYTES)}).`);
254
+ }
255
+ return {
256
+ filename: uploadFilename,
257
+ request,
258
+ requestBytes,
259
+ };
260
+ }, [readKnowledgeFile]);
261
+ const handleFilesUpload = useCallback(async (files, options) => {
262
+ const unsupportedFiles = files.filter((file) => !isSupportedKnowledgeFile(file));
263
+ const uploadQueue = files.filter((file) => file.size > 0 && isSupportedKnowledgeFile(file));
264
+ if (uploadQueue.length === 0) {
265
+ setActionNotice(unsupportedFiles.length > 0
266
+ ? "No supported non-empty files were selected."
267
+ : "No non-empty files were selected.", "info", 3000);
268
+ return;
269
+ }
270
+ const largeFiles = uploadQueue.filter((file) => file.size >= LARGE_FILE_WARNING_BYTES);
271
+ if (largeFiles.length > 0) {
272
+ const shouldContinue = typeof window === "undefined"
273
+ ? true
274
+ : await confirmDesktopAction({
275
+ title: "Upload Large Files",
276
+ message: `${largeFiles.length} large file(s) detected.`,
277
+ detail: "Uploading can take longer and may increase embedding or vision costs.",
278
+ confirmLabel: "Continue",
279
+ cancelLabel: "Cancel",
280
+ type: "warning",
281
+ });
282
+ if (!shouldContinue)
283
+ return;
284
+ }
285
+ const failures = [];
286
+ const warnings = [];
287
+ let successful = 0;
288
+ const normalizeUploadError = (err) => {
289
+ const message = err instanceof Error ? err.message : "Unknown upload error";
290
+ const status = err?.status;
291
+ return status === 413 || /maximum size|payload is/i.test(message)
292
+ ? "Upload too large. Try splitting this file."
293
+ : message;
294
+ };
295
+ setUploading(true);
296
+ setUploadStatus({
297
+ current: 0,
298
+ total: uploadQueue.length,
299
+ filename: "Preparing...",
300
+ });
301
+ try {
302
+ let currentBatch = [];
303
+ let currentBatchBytes = 0;
304
+ const flushBatch = async () => {
305
+ if (currentBatch.length === 0)
306
+ return;
307
+ const batchToUpload = currentBatch;
308
+ currentBatch = [];
309
+ currentBatchBytes = 0;
310
+ const batchLabel = batchToUpload[0]?.filename || "batch";
311
+ setUploadStatus({
312
+ current: successful + failures.length,
313
+ total: uploadQueue.length,
314
+ filename: `Uploading batch starting with ${batchLabel}`,
315
+ });
316
+ try {
317
+ const result = await client.uploadKnowledgeDocumentsBulk({
318
+ documents: batchToUpload.map((item) => item.request),
319
+ });
320
+ for (const item of result.results) {
321
+ const batchItem = batchToUpload[item.index];
322
+ const filename = item.filename || batchItem?.filename || "document";
323
+ if (item.ok) {
324
+ successful += 1;
325
+ if (item.warnings?.[0]) {
326
+ warnings.push(`${filename}: ${item.warnings[0]}`);
327
+ }
328
+ }
329
+ else {
330
+ failures.push(`${filename}: ${item.error || "Upload failed"}`);
331
+ }
332
+ }
333
+ }
334
+ catch (err) {
335
+ const message = normalizeUploadError(err);
336
+ for (const batchItem of batchToUpload) {
337
+ failures.push(`${batchItem.filename}: ${message}`);
338
+ }
339
+ }
340
+ };
341
+ for (const [index, file] of uploadQueue.entries()) {
342
+ const uploadFilename = getKnowledgeUploadFilename(file);
343
+ setUploadStatus({
344
+ current: index + 1,
345
+ total: uploadQueue.length,
346
+ filename: `Preparing: ${uploadFilename}`,
347
+ });
348
+ try {
349
+ const prepared = await buildKnowledgeUploadRequest(file, options);
350
+ if (currentBatch.length > 0 &&
351
+ (currentBatchBytes + prepared.requestBytes >
352
+ BULK_UPLOAD_TARGET_BYTES ||
353
+ currentBatch.length >= MAX_BULK_REQUEST_DOCUMENTS)) {
354
+ await flushBatch();
355
+ }
356
+ currentBatch.push(prepared);
357
+ currentBatchBytes += prepared.requestBytes;
358
+ }
359
+ catch (err) {
360
+ failures.push(`${uploadFilename}: ${normalizeUploadError(err)}`);
361
+ }
362
+ }
363
+ await flushBatch();
364
+ let refreshFailed = false;
365
+ try {
366
+ await loadData();
367
+ }
368
+ catch (err) {
369
+ refreshFailed = true;
370
+ console.error("[KnowledgeView] Failed to refresh after upload:", err);
371
+ }
372
+ const skippedSummary = unsupportedFiles.length > 0
373
+ ? ` Skipped ${unsupportedFiles.length} unsupported file(s).`
374
+ : "";
375
+ const refreshSummary = refreshFailed
376
+ ? " Uploaded, but failed to refresh document list."
377
+ : "";
378
+ if (uploadQueue.length === 1 &&
379
+ successful === 1 &&
380
+ failures.length === 0) {
381
+ const onlyFile = getKnowledgeUploadFilename(uploadQueue[0]);
382
+ const baseMessage = `Uploaded "${onlyFile}"`;
383
+ if (warnings.length > 0) {
384
+ setActionNotice(`${baseMessage}. ${warnings[0]}`, "info", 6000);
385
+ }
386
+ else if (refreshFailed) {
387
+ setActionNotice(`${baseMessage}. Uploaded, but failed to refresh document list.`, "info", 6000);
388
+ }
389
+ else {
390
+ setActionNotice(baseMessage, "success", 3000);
391
+ }
392
+ return;
393
+ }
394
+ if (failures.length === 0) {
395
+ setActionNotice(`Uploaded ${successful}/${uploadQueue.length} files.${warnings.length > 0 ? ` ${warnings[0]}` : ""}${skippedSummary}${refreshSummary}`, warnings.length > 0 || refreshFailed || unsupportedFiles.length > 0
396
+ ? "info"
397
+ : "success", 7000);
398
+ return;
399
+ }
400
+ setActionNotice(`Uploaded ${successful}/${uploadQueue.length} files. ${failures.length} failed.${failures.length > 0 ? ` ${failures[0]}` : ""}${skippedSummary}${refreshSummary}`, successful > 0 ? "info" : "error", 7000);
401
+ }
402
+ finally {
403
+ setUploading(false);
404
+ setUploadStatus(null);
405
+ }
406
+ }, [buildKnowledgeUploadRequest, loadData, setActionNotice]);
407
+ const handleUrlUpload = useCallback(async (url, options) => {
408
+ setUploading(true);
409
+ try {
410
+ const result = await client.uploadKnowledgeFromUrl(url, {
411
+ includeImageDescriptions: options.includeImageDescriptions,
412
+ });
413
+ const baseMessage = result.isYouTubeTranscript
414
+ ? `Imported YouTube transcript (${result.fragmentCount} fragments)`
415
+ : `Imported "${result.filename}" (${result.fragmentCount} fragments)`;
416
+ if (result.warnings && result.warnings.length > 0) {
417
+ setActionNotice(`${baseMessage}. ${result.warnings[0]}`, "info", 6000);
418
+ }
419
+ else {
420
+ setActionNotice(baseMessage, "success", 3000);
421
+ }
422
+ loadData();
423
+ }
424
+ catch (err) {
425
+ const message = err instanceof Error ? err.message : "Unknown import error";
426
+ setActionNotice(`Failed to import from URL: ${message}`, "error", 5000);
427
+ }
428
+ finally {
429
+ setUploading(false);
430
+ }
431
+ }, [loadData, setActionNotice]);
432
+ const handleSearch = useCallback(async (query) => {
433
+ setSearching(true);
434
+ try {
435
+ const result = await client.searchKnowledge(query, {
436
+ threshold: 0.3,
437
+ limit: 20,
438
+ });
439
+ setSearchResults(result.results);
440
+ }
441
+ catch (err) {
442
+ const message = err instanceof Error ? err.message : "Unknown search error";
443
+ setActionNotice(`Search failed: ${message}`, "error", 4000);
444
+ setSearchResults([]);
445
+ }
446
+ finally {
447
+ setSearching(false);
448
+ }
449
+ }, [setActionNotice]);
450
+ const handleDelete = useCallback(async (documentId) => {
451
+ setDeleting(documentId);
452
+ try {
453
+ const result = await client.deleteKnowledgeDocument(documentId);
454
+ if (result.ok) {
455
+ setActionNotice(`Deleted document (${result.deletedFragments} fragments removed)`, "success", 3000);
456
+ await loadData();
457
+ }
458
+ else {
459
+ setActionNotice("Failed to delete document", "error", 4000);
460
+ }
461
+ }
462
+ catch (err) {
463
+ const message = err instanceof Error ? err.message : "Unknown delete error";
464
+ setActionNotice(`Failed to delete document: ${message}`, "error", 5000);
465
+ }
466
+ finally {
467
+ setDeleting(null);
468
+ }
469
+ }, [loadData, setActionNotice]);
470
+ const handleSearchSubmit = useCallback((e) => {
471
+ e?.preventDefault();
472
+ const query = searchQuery.trim();
473
+ if (!query)
474
+ return;
475
+ void handleSearch(query);
476
+ }, [handleSearch, searchQuery]);
477
+ return (_jsxs("div", { className: inModal ? "h-full w-full overflow-y-auto pb-8" : "w-full", children: [isServiceLoading && (_jsxs("div", { className: "flex items-center gap-2 mb-4 px-3 py-2 rounded border border-[var(--border)] bg-[var(--card)] text-sm text-[var(--muted)]", children: [_jsx("span", { className: "w-4 h-4 border-2 border-[var(--accent)] border-t-transparent rounded-full animate-spin" }), t("knowledgeview.KnowledgeServiceIs")] })), loadError && !isServiceLoading && (_jsxs("div", { className: "flex items-center justify-between mb-4 px-3 py-2 rounded border border-[var(--danger)] bg-[var(--danger)]/10 text-sm text-[var(--danger)]", children: [_jsx("span", { children: loadError }), _jsx("button", { type: "button", onClick: () => loadData(), className: "ml-3 px-2 py-1 text-xs border border-[var(--danger)] rounded hover:bg-[var(--danger)]/20 transition-colors", children: t("common.retry") })] })), _jsxs("div", { className: "mb-6 flex flex-wrap items-start justify-between gap-2", children: [_jsx("form", { className: "w-full max-w-[500px] flex-[1_1_500px]", onSubmit: handleSearchSubmit, children: _jsxs("div", { className: "flex items-stretch gap-2", children: [_jsx(Input, { type: "text", placeholder: t("knowledge.ui.searchPlaceholder"), value: searchQuery, onChange: (e) => setSearchQuery(e.target.value), disabled: searching, className: "h-10 bg-bg border-border text-sm shadow-sm focus-visible:ring-1 focus-visible:ring-accent" }), _jsx(Button, { type: "submit", variant: "default", size: "sm", className: "h-10 px-4 shadow-sm", disabled: !searchQuery.trim() || searching, children: searching
478
+ ? t("knowledge.ui.searching")
479
+ : t("knowledge.ui.search") })] }) }), _jsx(UploadZone, { onFilesUpload: handleFilesUpload, onUrlUpload: handleUrlUpload, uploading: uploading, uploadStatus: uploadStatus })] }), searchResults !== null && (_jsx(SearchResults, { results: searchResults, onClear: () => setSearchResults(null) })), _jsxs("div", { className: "flex flex-col", children: [_jsxs("div", { className: "flex items-center justify-between mb-4 border-b border-border/40 pb-3", children: [_jsxs("h2", { className: "text-sm font-bold tracking-wide text-txt", children: [t("knowledgeview.Documents"), _jsx("span", { className: "ml-2 px-2 py-0.5 rounded-full bg-black/10 text-xs text-muted font-mono", children: documents.length })] }), _jsx(Button, { variant: "ghost", size: "sm", className: "h-7 text-[11px] font-bold border border-transparent shadow-inner hover:bg-accent/10 hover:border-accent/30 hover:text-txt transition-all", onClick: () => void loadData(), disabled: loading, children: loading ? "Loading..." : "Refresh" })] }), loading && documents.length === 0 && (_jsx("div", { className: "text-center py-12 text-muted font-bold tracking-wide animate-pulse", children: t("knowledgeview.LoadingDocuments") })), !loading && documents.length === 0 && (_jsxs("div", { className: "text-center py-16 border-2 border-dashed border-border/40 rounded-2xl bg-card/20 backdrop-blur-sm shadow-inner", children: [_jsx("div", { className: "text-muted/80 font-bold mb-2 tracking-wide text-[15px]", children: t("knowledgeview.NoDocumentsYet") }), _jsx("div", { className: "text-xs text-muted/60 font-medium", children: t("knowledgeview.UploadFilesOrImpo") })] })), _jsx("div", { className: "space-y-2", children: documents.map((doc) => (_jsx(DocumentCard, { doc: doc, onSelect: setSelectedDocId, onDelete: handleDelete, deleting: deleting === doc.id }, doc.id))) })] }), selectedDocId && (_jsx(DocumentDetailModal, { documentId: selectedDocId, onClose: () => setSelectedDocId(null) }))] }));
480
+ }
@@ -0,0 +1,30 @@
1
+ /**
2
+ * LanguageDropdown — language selector used in the app header and settings.
3
+ *
4
+ * Fully props-driven; no app context dependency. Takes the current language
5
+ * and a setter from the caller. Works in both "native" and "companion"
6
+ * visual variants.
7
+ */
8
+ import type { UiLanguage } from "../i18n/messages";
9
+ /** Minimal translator function type. Receive key, return string. */
10
+ export type TranslatorFn = (key: string) => string;
11
+ /** Language metadata with flag emoji and native label. */
12
+ export declare const LANGUAGES: {
13
+ id: UiLanguage;
14
+ flag: string;
15
+ label: string;
16
+ }[];
17
+ export interface LanguageDropdownProps {
18
+ uiLanguage: UiLanguage;
19
+ setUiLanguage: (language: UiLanguage) => void;
20
+ /** Optional translator for ARIA labels */
21
+ t?: TranslatorFn;
22
+ /** Optional extra className on the root */
23
+ className?: string;
24
+ /** Optional extra className on the trigger button */
25
+ triggerClassName?: string;
26
+ variant?: "native" | "companion";
27
+ menuPlacement?: "bottom-end" | "top-end";
28
+ }
29
+ export declare function LanguageDropdown({ uiLanguage, setUiLanguage, t, className, triggerClassName, variant, menuPlacement, }: LanguageDropdownProps): import("react/jsx-runtime").JSX.Element;
30
+ //# sourceMappingURL=LanguageDropdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LanguageDropdown.d.ts","sourceRoot":"","sources":["../../src/components/LanguageDropdown.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,oEAAoE;AACpE,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;AAEnD,0DAA0D;AAC1D,eAAO,MAAM,SAAS,EAAE;IAAE,EAAE,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAMtE,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,CAAC,QAAQ,EAAE,UAAU,KAAK,IAAI,CAAC;IAC9C,0CAA0C;IAC1C,CAAC,CAAC,EAAE,YAAY,CAAC;IACjB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IACjC,aAAa,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;CAC1C;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,UAAU,EACV,aAAa,EACb,CAAC,EACD,SAAS,EACT,gBAAgB,EAChB,OAAkB,EAClB,aAA4B,GAC7B,EAAE,qBAAqB,2CAiJvB"}
@@ -0,0 +1,99 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * LanguageDropdown — language selector used in the app header and settings.
4
+ *
5
+ * Fully props-driven; no app context dependency. Takes the current language
6
+ * and a setter from the caller. Works in both "native" and "companion"
7
+ * visual variants.
8
+ */
9
+ import { Check, ChevronDown } from "lucide-react";
10
+ import { useCallback, useEffect, useRef, useState } from "react";
11
+ import { createPortal } from "react-dom";
12
+ /** Language metadata with flag emoji and native label. */
13
+ export const LANGUAGES = [
14
+ { id: "en", flag: "🇺🇸", label: "English" },
15
+ { id: "zh-CN", flag: "🇨🇳", label: "中文" },
16
+ { id: "ko", flag: "🇰🇷", label: "한국어" },
17
+ { id: "es", flag: "🇪🇸", label: "Español" },
18
+ { id: "pt", flag: "🇧🇷", label: "Português" },
19
+ ];
20
+ export function LanguageDropdown({ uiLanguage, setUiLanguage, t, className, triggerClassName, variant = "native", menuPlacement = "bottom-end", }) {
21
+ const [open, setOpen] = useState(false);
22
+ const rootRef = useRef(null);
23
+ const triggerRef = useRef(null);
24
+ const [menuPos, setMenuPos] = useState(null);
25
+ // Compute dropdown position from trigger button rect (for companion portal)
26
+ const updateMenuPos = useCallback(() => {
27
+ if (variant !== "companion" || !triggerRef.current)
28
+ return;
29
+ const rect = triggerRef.current.getBoundingClientRect();
30
+ if (menuPlacement === "top-end") {
31
+ setMenuPos({
32
+ bottom: window.innerHeight - rect.top + 4,
33
+ right: window.innerWidth - rect.right,
34
+ });
35
+ return;
36
+ }
37
+ setMenuPos({
38
+ top: rect.bottom + 4,
39
+ right: window.innerWidth - rect.right,
40
+ });
41
+ }, [menuPlacement, variant]);
42
+ // Close on outside click
43
+ useEffect(() => {
44
+ if (!open)
45
+ return;
46
+ const handler = (e) => {
47
+ if (rootRef.current && !rootRef.current.contains(e.target)) {
48
+ // Also check if clicked inside the portaled menu
49
+ const portalMenu = document.getElementById("lang-dropdown-portal");
50
+ if (portalMenu?.contains(e.target))
51
+ return;
52
+ setOpen(false);
53
+ }
54
+ };
55
+ document.addEventListener("mousedown", handler);
56
+ return () => document.removeEventListener("mousedown", handler);
57
+ }, [open]);
58
+ // Close on Escape
59
+ useEffect(() => {
60
+ if (!open)
61
+ return;
62
+ const handler = (e) => {
63
+ if (e.key === "Escape")
64
+ setOpen(false);
65
+ };
66
+ document.addEventListener("keydown", handler);
67
+ return () => document.removeEventListener("keydown", handler);
68
+ }, [open]);
69
+ // Update position when opening
70
+ useEffect(() => {
71
+ if (open)
72
+ updateMenuPos();
73
+ }, [open, updateMenuPos]);
74
+ const current = LANGUAGES.find((l) => l.id === uiLanguage) ?? LANGUAGES[0];
75
+ const triggerClass = `inline-flex min-h-[44px] min-w-[44px] items-center gap-1.5 h-11 px-3 border border-border/50 bg-bg/50 backdrop-blur-md text-xs font-medium cursor-pointer transition-all duration-300 text-txt hover:border-accent hover:text-txt rounded-md shadow-sm ${open ? "border-accent text-txt bg-accent/5" : ""} ${triggerClassName ?? ""}`;
76
+ const optionClass = (selected) => `w-full flex items-center justify-between px-3 py-2 text-sm transition-colors hover:bg-bg-hover cursor-pointer ${selected ? "text-txt bg-accent/5 font-medium" : "text-txt"}`;
77
+ const inlineMenuPositionClass = menuPlacement === "top-end"
78
+ ? "absolute bottom-full right-0 mb-1 z-50"
79
+ : "absolute top-full right-0 mt-1 z-50";
80
+ const menuContent = open && (_jsx("ul", { id: "lang-dropdown-portal", "data-no-camera-drag": "true", className: `w-36 rounded-lg border border-border/50 bg-bg/50 shadow-xl overflow-hidden py-1 backdrop-blur-md ${variant === "companion" ? "fixed" : inlineMenuPositionClass}`, style: variant === "companion" && menuPos
81
+ ? {
82
+ ...(menuPos.top !== undefined ? { top: menuPos.top } : {}),
83
+ ...(menuPos.bottom !== undefined
84
+ ? { bottom: menuPos.bottom }
85
+ : {}),
86
+ right: menuPos.right,
87
+ zIndex: 10001,
88
+ backdropFilter: "blur(24px)",
89
+ WebkitBackdropFilter: "blur(24px)",
90
+ boxShadow: "var(--shadow-lg)",
91
+ }
92
+ : undefined, "aria-label": t?.("settings.language") ?? "Language", children: LANGUAGES.map((lang) => (_jsx("li", { role: "presentation", children: _jsxs("button", { type: "button", role: "option", "aria-selected": lang.id === uiLanguage, className: optionClass(lang.id === uiLanguage), onPointerDown: (event) => event.stopPropagation(), onClick: () => {
93
+ setUiLanguage(lang.id);
94
+ setOpen(false);
95
+ }, "data-testid": `language-option-${lang.id}`, children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { children: lang.flag }), _jsx("span", { children: lang.label })] }), lang.id === uiLanguage && _jsx(Check, { className: "w-4 h-4" })] }) }, lang.id))) }));
96
+ return (_jsxs("div", { ref: rootRef, className: `relative inline-flex shrink-0 ${className ?? ""}`, "data-testid": "language-dropdown", "data-no-camera-drag": "true", children: [_jsxs("button", { ref: triggerRef, type: "button", className: triggerClass, onPointerDown: (event) => event.stopPropagation(), onClick: () => setOpen((v) => !v), "aria-haspopup": "listbox", "aria-expanded": open, "aria-label": t?.("settings.language") ?? "Language", "data-testid": "language-dropdown-trigger", children: [_jsx("span", { className: "text-sm leading-none", children: current.flag }), _jsx("span", { className: "hidden sm:inline uppercase tracking-widest opacity-80", children: current.id }), _jsx(ChevronDown, { className: `w-3.5 h-3.5 opacity-60 transition-transform ${open ? "rotate-180" : ""}` })] }), variant === "companion" && menuContent
97
+ ? createPortal(menuContent, document.body)
98
+ : menuContent] }));
99
+ }