@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,997 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /**
3
+ * Vector Browser — explore agent memories and embeddings.
4
+ *
5
+ * Reads from the memories table (or similar vector-storage tables) using
6
+ * the generic database APIs. Shows paginated memory records with content,
7
+ * metadata, and embedding previews. Click any card to see full details.
8
+ * Toggle to a 2D scatter-plot graph view of embeddings.
9
+ */
10
+ import { Button, Input } from "@elizaos/ui";
11
+ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
12
+ import { client } from "../api";
13
+ import { useApp } from "../state";
14
+ import { createVectorBrowserRenderer, THREE } from "./vector-browser-three";
15
+ const PAGE_SIZE = 25;
16
+ const MAX_THREE_PIXEL_RATIO = 2;
17
+ /** The dimension columns in the elizaOS `embeddings` table. */
18
+ const DIM_COLUMNS = [
19
+ "dim_384",
20
+ "dim_512",
21
+ "dim_768",
22
+ "dim_1024",
23
+ "dim_1536",
24
+ "dim_3072",
25
+ ];
26
+ function hasEmbedding(memory) {
27
+ return memory.embedding !== null;
28
+ }
29
+ const VECTOR_GRAPH_2D_PALETTE = [
30
+ "#6cf",
31
+ "#f59e0b",
32
+ "#10b981",
33
+ "#ef4444",
34
+ "#8b5cf6",
35
+ "#ec4899",
36
+ "#06b6d4",
37
+ "#84cc16",
38
+ ];
39
+ /** Try to parse a JSON content field, returning the text content or the raw string. */
40
+ function parseContent(val) {
41
+ if (typeof val !== "string")
42
+ return String(val ?? "");
43
+ if (val.startsWith("{")) {
44
+ try {
45
+ const parsed = JSON.parse(val);
46
+ if (parsed.text)
47
+ return String(parsed.text);
48
+ return val;
49
+ }
50
+ catch {
51
+ return val;
52
+ }
53
+ }
54
+ return val;
55
+ }
56
+ /** Parse an embedding from various storage formats (pgvector text, JSON, typed arrays). */
57
+ function parseEmbedding(val) {
58
+ if (!val)
59
+ return null;
60
+ if (Array.isArray(val))
61
+ return val;
62
+ // Handle typed arrays (Float32Array, Float64Array, Uint8Array etc.)
63
+ if (ArrayBuffer.isView(val)) {
64
+ return Array.from(val);
65
+ }
66
+ if (typeof val === "string" && val.length > 2) {
67
+ const trimmed = val.trim();
68
+ // pgvector text format: [0.1,0.2,0.3] — also valid JSON
69
+ // Also handle without brackets: 0.1,0.2,0.3
70
+ const inner = trimmed.startsWith("[") && trimmed.endsWith("]")
71
+ ? trimmed.slice(1, -1)
72
+ : trimmed;
73
+ if (!inner)
74
+ return null;
75
+ // Fast path: split by comma and parse floats
76
+ const parts = inner.split(",");
77
+ if (parts.length < 2)
78
+ return null;
79
+ const nums = [];
80
+ for (const p of parts) {
81
+ const n = Number.parseFloat(p);
82
+ if (Number.isNaN(n))
83
+ return null;
84
+ nums.push(n);
85
+ }
86
+ return nums;
87
+ }
88
+ return null;
89
+ }
90
+ function rowToMemory(row) {
91
+ // Try explicit embedding/vector column first, then check elizaOS dim_* columns
92
+ let embeddingVal = row.embedding ?? row.vector ?? row.embeddings;
93
+ if (!embeddingVal) {
94
+ for (const dim of DIM_COLUMNS) {
95
+ if (row[dim]) {
96
+ embeddingVal = row[dim];
97
+ break;
98
+ }
99
+ }
100
+ }
101
+ return {
102
+ id: String(row.id ?? row.ID ?? row.memory_id ?? ""),
103
+ content: parseContent(row.content ?? row.body ?? row.text ?? ""),
104
+ roomId: String(row.roomId ?? row.room_id ?? row.roomID ?? ""),
105
+ entityId: String(row.entityId ??
106
+ row.entity_id ??
107
+ row.entityID ??
108
+ row.userId ??
109
+ row.user_id ??
110
+ ""),
111
+ type: String(row.type ?? row.memoryType ?? row.memory_type ?? ""),
112
+ createdAt: String(row.createdAt ?? row.created_at ?? row.timestamp ?? ""),
113
+ unique: row.unique === true || row.unique === 1 || row.isUnique === true,
114
+ embedding: parseEmbedding(embeddingVal),
115
+ raw: row,
116
+ };
117
+ }
118
+ function buildVectorGraph2DLayout(memories) {
119
+ const withEmbeddings = memories.filter(hasEmbedding);
120
+ if (withEmbeddings.length < 2) {
121
+ return null;
122
+ }
123
+ const points = projectTo2D(withEmbeddings.map((memory) => memory.embedding));
124
+ let minX = Infinity;
125
+ let maxX = -Infinity;
126
+ let minY = Infinity;
127
+ let maxY = -Infinity;
128
+ for (const [x, y] of points) {
129
+ if (x < minX)
130
+ minX = x;
131
+ if (x > maxX)
132
+ maxX = x;
133
+ if (y < minY)
134
+ minY = y;
135
+ if (y > maxY)
136
+ maxY = y;
137
+ }
138
+ const typeColors = {};
139
+ const types = [...new Set(withEmbeddings.map((memory) => memory.type))];
140
+ for (let index = 0; index < types.length; index += 1) {
141
+ typeColors[types[index]] =
142
+ VECTOR_GRAPH_2D_PALETTE[index % VECTOR_GRAPH_2D_PALETTE.length];
143
+ }
144
+ return {
145
+ bounds: {
146
+ minX,
147
+ minY,
148
+ rangeX: maxX - minX || 1,
149
+ rangeY: maxY - minY || 1,
150
+ },
151
+ points,
152
+ typeColors,
153
+ withEmbeddings,
154
+ };
155
+ }
156
+ function toVectorGraph2DScreenX(x, width, padding, bounds) {
157
+ return padding + ((x - bounds.minX) / bounds.rangeX) * (width - 2 * padding);
158
+ }
159
+ function toVectorGraph2DScreenY(y, height, padding, bounds) {
160
+ return padding + ((y - bounds.minY) / bounds.rangeY) * (height - 2 * padding);
161
+ }
162
+ // ── PCA projection utilities ───────────────────────────────────────────
163
+ function dot(a, b) {
164
+ let s = 0;
165
+ for (let i = 0; i < a.length; i++)
166
+ s += a[i] * (b[i] ?? 0);
167
+ return s;
168
+ }
169
+ function powerIteration(data, dims, iters = 30) {
170
+ const v = new Float64Array(dims);
171
+ // Random init
172
+ for (let d = 0; d < dims; d++)
173
+ v[d] = Math.random() - 0.5;
174
+ normalize(v);
175
+ for (let iter = 0; iter < iters; iter++) {
176
+ const w = new Float64Array(dims);
177
+ for (const row of data) {
178
+ const d = dot(row, v);
179
+ for (let j = 0; j < dims; j++)
180
+ w[j] += d * row[j];
181
+ }
182
+ normalize(w);
183
+ for (let d = 0; d < dims; d++)
184
+ v[d] = w[d];
185
+ }
186
+ return v;
187
+ }
188
+ function normalize(v) {
189
+ let len = 0;
190
+ for (let i = 0; i < v.length; i++)
191
+ len += v[i] * v[i];
192
+ len = Math.sqrt(len) || 1;
193
+ for (let i = 0; i < v.length; i++)
194
+ v[i] /= len;
195
+ }
196
+ /** Compute mean and center data for PCA. */
197
+ function centerData(vectors) {
198
+ const dims = vectors[0].length;
199
+ const n = vectors.length;
200
+ const mean = new Float64Array(dims);
201
+ for (const v of vectors) {
202
+ for (let d = 0; d < dims; d++)
203
+ mean[d] += v[d];
204
+ }
205
+ for (let d = 0; d < dims; d++)
206
+ mean[d] /= n;
207
+ const centered = vectors.map((v) => v.map((x, d) => x - mean[d]));
208
+ return { centered, mean };
209
+ }
210
+ /** Deflate data by removing projection onto a principal component. */
211
+ function deflate(data, pc) {
212
+ const proj = data.map((v) => dot(v, pc));
213
+ return data.map((v, i) => v.map((x, d) => x - proj[i] * pc[d]));
214
+ }
215
+ /** Project high-dimensional vectors to 2D using the first two principal axes. */
216
+ function projectTo2D(vectors) {
217
+ if (vectors.length === 0)
218
+ return [];
219
+ const dims = vectors[0].length;
220
+ const { centered } = centerData(vectors);
221
+ const pc1 = powerIteration(centered, dims);
222
+ const deflated1 = deflate(centered, pc1);
223
+ const pc2 = powerIteration(deflated1, dims);
224
+ return centered.map((v) => [dot(v, pc1), dot(v, pc2)]);
225
+ }
226
+ /** Project high-dimensional vectors to 3D using the first three principal axes. */
227
+ function projectTo3D(vectors) {
228
+ if (vectors.length === 0)
229
+ return [];
230
+ const dims = vectors[0].length;
231
+ const { centered } = centerData(vectors);
232
+ const pc1 = powerIteration(centered, dims);
233
+ const deflated1 = deflate(centered, pc1);
234
+ const pc2 = powerIteration(deflated1, dims);
235
+ const deflated2 = deflate(deflated1, pc2);
236
+ const pc3 = powerIteration(deflated2, dims);
237
+ return centered.map((v) => [dot(v, pc1), dot(v, pc2), dot(v, pc3)]);
238
+ }
239
+ // ── Graph sub-component ────────────────────────────────────────────────
240
+ function VectorGraph({ memories, onSelect, }) {
241
+ const { t } = useApp();
242
+ const canvasRef = useRef(null);
243
+ const containerRef = useRef(null);
244
+ const [hoveredIdx, setHoveredIdx] = useState(null);
245
+ const graph = useMemo(() => buildVectorGraph2DLayout(memories), [memories]);
246
+ useEffect(() => {
247
+ const canvas = canvasRef.current;
248
+ const container = containerRef.current;
249
+ if (!canvas || !container || !graph)
250
+ return;
251
+ const rect = container.getBoundingClientRect();
252
+ const W = rect.width;
253
+ const H = 500;
254
+ const dpr = window.devicePixelRatio || 1;
255
+ canvas.width = W * dpr;
256
+ canvas.height = H * dpr;
257
+ canvas.style.width = `${W}px`;
258
+ canvas.style.height = `${H}px`;
259
+ const ctx = canvas.getContext("2d");
260
+ if (!ctx)
261
+ return;
262
+ ctx.setTransform(dpr, 0, 0, dpr, 0, 0);
263
+ const pad = 40;
264
+ // Background
265
+ const style = getComputedStyle(document.documentElement);
266
+ const bgColor = style.getPropertyValue("--bg").trim() || "#111";
267
+ const borderColor = style.getPropertyValue("--border").trim() || "#333";
268
+ const accentColor = style.getPropertyValue("--accent").trim() || "#6cf";
269
+ const mutedColor = style.getPropertyValue("--muted").trim() || "#888";
270
+ ctx.fillStyle = bgColor;
271
+ ctx.fillRect(0, 0, W, H);
272
+ // Grid lines
273
+ ctx.strokeStyle = borderColor;
274
+ ctx.lineWidth = 0.5;
275
+ for (let i = 0; i <= 4; i++) {
276
+ const x = pad + (i / 4) * (W - 2 * pad);
277
+ const y = pad + (i / 4) * (H - 2 * pad);
278
+ ctx.beginPath();
279
+ ctx.moveTo(x, pad);
280
+ ctx.lineTo(x, H - pad);
281
+ ctx.stroke();
282
+ ctx.beginPath();
283
+ ctx.moveTo(pad, y);
284
+ ctx.lineTo(W - pad, y);
285
+ ctx.stroke();
286
+ }
287
+ // Axis labels
288
+ ctx.fillStyle = mutedColor;
289
+ ctx.font = "10px monospace";
290
+ ctx.textAlign = "center";
291
+ ctx.fillText("PC1", W / 2, H - 8);
292
+ ctx.save();
293
+ ctx.translate(12, H / 2);
294
+ ctx.rotate(-Math.PI / 2);
295
+ ctx.fillText("PC2", 0, 0);
296
+ ctx.restore();
297
+ // Draw points
298
+ for (let i = 0; i < graph.points.length; i++) {
299
+ const sx = toVectorGraph2DScreenX(graph.points[i][0], W, pad, graph.bounds);
300
+ const sy = toVectorGraph2DScreenY(graph.points[i][1], H, pad, graph.bounds);
301
+ const memory = graph.withEmbeddings[i];
302
+ const color = graph.typeColors[memory.type] || accentColor;
303
+ const isHovered = hoveredIdx === i;
304
+ ctx.beginPath();
305
+ ctx.arc(sx, sy, isHovered ? 6 : 4, 0, Math.PI * 2);
306
+ ctx.fillStyle = color;
307
+ ctx.globalAlpha = isHovered ? 1 : 0.7;
308
+ ctx.fill();
309
+ ctx.globalAlpha = 1;
310
+ if (isHovered) {
311
+ ctx.strokeStyle = "#fff";
312
+ ctx.lineWidth = 1.5;
313
+ ctx.stroke();
314
+ }
315
+ }
316
+ // Tooltip for hovered point
317
+ if (hoveredIdx !== null && hoveredIdx < graph.points.length) {
318
+ const sx = toVectorGraph2DScreenX(graph.points[hoveredIdx][0], W, pad, graph.bounds);
319
+ const sy = toVectorGraph2DScreenY(graph.points[hoveredIdx][1], H, pad, graph.bounds);
320
+ const memory = graph.withEmbeddings[hoveredIdx];
321
+ const label = memory.content.slice(0, 60) + (memory.content.length > 60 ? "..." : "");
322
+ ctx.font = "11px sans-serif";
323
+ const metrics = ctx.measureText(label);
324
+ const tw = metrics.width + 12;
325
+ const th = 22;
326
+ let tx = sx + 10;
327
+ let ty = sy - 10 - th;
328
+ if (tx + tw > W)
329
+ tx = sx - tw - 10;
330
+ if (ty < 0)
331
+ ty = sy + 10;
332
+ ctx.fillStyle = "rgba(0,0,0,0.85)";
333
+ ctx.fillRect(tx, ty, tw, th);
334
+ ctx.fillStyle = "#fff";
335
+ ctx.textAlign = "left";
336
+ ctx.fillText(label, tx + 6, ty + 15);
337
+ }
338
+ // Legend
339
+ const types = Object.keys(graph.typeColors);
340
+ if (types.length > 1) {
341
+ let lx = pad;
342
+ const ly = H - 4;
343
+ ctx.font = "10px sans-serif";
344
+ ctx.textAlign = "left";
345
+ for (const type of types) {
346
+ if (!type || type === "undefined")
347
+ continue;
348
+ ctx.fillStyle = graph.typeColors[type];
349
+ ctx.fillRect(lx, ly - 8, 8, 8);
350
+ ctx.fillStyle = mutedColor;
351
+ ctx.fillText(type, lx + 11, ly);
352
+ lx += ctx.measureText(type).width + 24;
353
+ }
354
+ }
355
+ }, [graph, hoveredIdx]);
356
+ // Mouse interaction
357
+ const handleMouseMove = useCallback((e) => {
358
+ const canvas = canvasRef.current;
359
+ if (!canvas || !graph)
360
+ return;
361
+ const rect = canvas.getBoundingClientRect();
362
+ const mx = e.clientX - rect.left;
363
+ const my = e.clientY - rect.top;
364
+ const W = rect.width;
365
+ const H = rect.height;
366
+ const pad = 40;
367
+ let closest = -1;
368
+ let closestDist = 15; // max pixel distance
369
+ for (let i = 0; i < graph.points.length; i++) {
370
+ const sx = toVectorGraph2DScreenX(graph.points[i][0], W, pad, graph.bounds);
371
+ const sy = toVectorGraph2DScreenY(graph.points[i][1], H, pad, graph.bounds);
372
+ const dist = Math.sqrt((mx - sx) ** 2 + (my - sy) ** 2);
373
+ if (dist < closestDist) {
374
+ closestDist = dist;
375
+ closest = i;
376
+ }
377
+ }
378
+ setHoveredIdx(closest >= 0 ? closest : null);
379
+ }, [graph]);
380
+ const handleClick = useCallback(() => {
381
+ if (graph &&
382
+ hoveredIdx !== null &&
383
+ hoveredIdx < graph.withEmbeddings.length) {
384
+ onSelect(graph.withEmbeddings[hoveredIdx]);
385
+ }
386
+ }, [graph, hoveredIdx, onSelect]);
387
+ if (!graph) {
388
+ const withEmbeddings = memories.filter(hasEmbedding);
389
+ return (_jsxs("div", { className: "text-center py-16", children: [_jsx("div", { className: "text-[var(--muted)] text-sm mb-2", children: t("vectorbrowserview.NotEnoughEmbedding") }), _jsxs("div", { className: "text-[var(--muted)] text-xs", children: [t("vectorbrowserview.NeedAtLeast2Memo"), " ", withEmbeddings.length, "."] })] }));
390
+ }
391
+ return (_jsxs("div", { ref: containerRef, className: "w-full", children: [_jsxs("div", { className: "text-[11px] text-[var(--muted)] mb-2", children: [graph.withEmbeddings.length, " ", t("vectorbrowserview.vectorsProjectedTo")] }), _jsx("canvas", { ref: canvasRef, className: "w-full border border-[var(--border)] cursor-crosshair", style: { height: 500 }, onMouseMove: handleMouseMove, onMouseLeave: () => setHoveredIdx(null), onClick: handleClick })] }));
392
+ }
393
+ // ── 3D Graph sub-component (Three.js) ──────────────────────────────────
394
+ function VectorGraph3D({ memories, onSelect, }) {
395
+ const { t } = useApp();
396
+ const containerRef = useRef(null);
397
+ const rendererRef = useRef(null);
398
+ const sceneRef = useRef(null);
399
+ const cameraRef = useRef(null);
400
+ const spheresRef = useRef([]);
401
+ const animationRef = useRef(0);
402
+ const [hoveredIdx, setHoveredIdx] = useState(null);
403
+ const [tooltipPos, setTooltipPos] = useState(null);
404
+ const [rendererUnavailable, setRendererUnavailable] = useState(false);
405
+ const isDraggingRef = useRef(false);
406
+ const mouseDownPosRef = useRef(null);
407
+ const cleanupRef = useRef(null);
408
+ const withEmbeddings = useMemo(() => memories.filter(hasEmbedding), [memories]);
409
+ const points3D = useMemo(() => {
410
+ if (withEmbeddings.length < 2)
411
+ return [];
412
+ const vecs = withEmbeddings.map((m) => m.embedding);
413
+ return projectTo3D(vecs);
414
+ }, [withEmbeddings]);
415
+ // Color palette for types
416
+ const typeColors = useMemo(() => {
417
+ const types = [...new Set(withEmbeddings.map((m) => m.type))];
418
+ const palette = [
419
+ 0x6699ff, 0xf59e0b, 0x10b981, 0xef4444, 0x8b5cf6, 0xec4899, 0x06b6d4,
420
+ 0x84cc16,
421
+ ];
422
+ const map = {};
423
+ types.forEach((t, i) => {
424
+ map[t] = palette[i % palette.length];
425
+ });
426
+ return map;
427
+ }, [withEmbeddings]);
428
+ // Initialize Three.js scene
429
+ useEffect(() => {
430
+ const container = containerRef.current;
431
+ if (!container || points3D.length === 0)
432
+ return;
433
+ let cancelled = false;
434
+ cleanupRef.current = null;
435
+ setRendererUnavailable(false);
436
+ // Async renderer creation — tries WebGPU, falls back to WebGL.
437
+ // All scene setup runs inside this async IIFE so the useEffect callback
438
+ // itself remains synchronous (required for React cleanup return).
439
+ void (async () => {
440
+ const W = container.clientWidth;
441
+ const H = 550;
442
+ // Scene
443
+ const scene = new THREE.Scene();
444
+ scene.background = new THREE.Color(0x111111);
445
+ sceneRef.current = scene;
446
+ // Camera
447
+ const camera = new THREE.PerspectiveCamera(60, W / H, 0.1, 1000);
448
+ camera.position.set(0, 0, 5);
449
+ cameraRef.current = camera;
450
+ let renderer;
451
+ try {
452
+ renderer = await createVectorBrowserRenderer();
453
+ }
454
+ catch {
455
+ if (!cancelled) {
456
+ setRendererUnavailable(true);
457
+ }
458
+ return;
459
+ }
460
+ // Guard: if the effect was cleaned up while awaiting WebGPU init, abort.
461
+ if (cancelled) {
462
+ renderer.dispose();
463
+ return;
464
+ }
465
+ const raycaster = new THREE.Raycaster();
466
+ const pointer = new THREE.Vector2();
467
+ const geometry = new THREE.SphereGeometry(0.06, 16, 16);
468
+ const spheres = [];
469
+ let gridHelper = null;
470
+ let axisGeom = null;
471
+ let axisMat = null;
472
+ let onMouseDown = null;
473
+ let onMouseUp = null;
474
+ let onMouseMove = null;
475
+ let onClick = null;
476
+ let onWheel = null;
477
+ let onMouseLeave = null;
478
+ let handleResize = null;
479
+ let cleanedUp = false;
480
+ cleanupRef.current = () => {
481
+ if (cleanedUp)
482
+ return;
483
+ cleanedUp = true;
484
+ cancelAnimationFrame(animationRef.current);
485
+ if (handleResize) {
486
+ window.removeEventListener("resize", handleResize);
487
+ }
488
+ if (onMouseDown) {
489
+ renderer.domElement.removeEventListener("mousedown", onMouseDown);
490
+ }
491
+ if (onMouseUp) {
492
+ renderer.domElement.removeEventListener("mouseup", onMouseUp);
493
+ }
494
+ if (onMouseMove) {
495
+ renderer.domElement.removeEventListener("mousemove", onMouseMove);
496
+ }
497
+ if (onClick) {
498
+ renderer.domElement.removeEventListener("click", onClick);
499
+ }
500
+ if (onWheel) {
501
+ renderer.domElement.removeEventListener("wheel", onWheel);
502
+ }
503
+ if (onMouseLeave) {
504
+ renderer.domElement.removeEventListener("mouseleave", onMouseLeave);
505
+ }
506
+ geometry.dispose();
507
+ axisGeom?.dispose();
508
+ axisMat?.dispose();
509
+ if (gridHelper) {
510
+ const gridMaterial = Array.isArray(gridHelper.material)
511
+ ? gridHelper.material
512
+ : [gridHelper.material];
513
+ for (const material of gridMaterial) {
514
+ material.dispose();
515
+ }
516
+ gridHelper.geometry.dispose();
517
+ }
518
+ for (const sphere of spheres) {
519
+ const material = sphere.material;
520
+ if (Array.isArray(material)) {
521
+ for (const entry of material) {
522
+ entry.dispose();
523
+ }
524
+ }
525
+ else {
526
+ material.dispose();
527
+ }
528
+ }
529
+ renderer.dispose();
530
+ rendererRef.current = null;
531
+ sceneRef.current = null;
532
+ cameraRef.current = null;
533
+ spheresRef.current = [];
534
+ if (container.contains(renderer.domElement)) {
535
+ container.removeChild(renderer.domElement);
536
+ }
537
+ };
538
+ renderer.setSize(W, H);
539
+ renderer.setPixelRatio(Math.min(window.devicePixelRatio || 1, MAX_THREE_PIXEL_RATIO));
540
+ container.appendChild(renderer.domElement);
541
+ rendererRef.current = renderer;
542
+ if (cancelled) {
543
+ cleanupRef.current?.();
544
+ cleanupRef.current = null;
545
+ return;
546
+ }
547
+ // Compute bounds for scaling
548
+ let minX = Infinity, maxX = -Infinity;
549
+ let minY = Infinity, maxY = -Infinity;
550
+ let minZ = Infinity, maxZ = -Infinity;
551
+ for (const [x, y, z] of points3D) {
552
+ if (x < minX)
553
+ minX = x;
554
+ if (x > maxX)
555
+ maxX = x;
556
+ if (y < minY)
557
+ minY = y;
558
+ if (y > maxY)
559
+ maxY = y;
560
+ if (z < minZ)
561
+ minZ = z;
562
+ if (z > maxZ)
563
+ maxZ = z;
564
+ }
565
+ const rangeX = maxX - minX || 1;
566
+ const rangeY = maxY - minY || 1;
567
+ const rangeZ = maxZ - minZ || 1;
568
+ const maxRange = Math.max(rangeX, rangeY, rangeZ);
569
+ const scale = 3 / maxRange;
570
+ const centerX = (minX + maxX) / 2;
571
+ const centerY = (minY + maxY) / 2;
572
+ const centerZ = (minZ + maxZ) / 2;
573
+ for (let i = 0; i < points3D.length; i++) {
574
+ const [x, y, z] = points3D[i];
575
+ const mem = withEmbeddings[i];
576
+ const color = typeColors[mem.type] ?? 0x6699ff;
577
+ const material = new THREE.MeshBasicMaterial({
578
+ color,
579
+ transparent: true,
580
+ opacity: 0.85,
581
+ });
582
+ const sphere = new THREE.Mesh(geometry, material);
583
+ sphere.position.set((x - centerX) * scale, (y - centerY) * scale, (z - centerZ) * scale);
584
+ sphere.userData = { index: i };
585
+ scene.add(sphere);
586
+ spheres.push(sphere);
587
+ }
588
+ spheresRef.current = spheres;
589
+ // Add subtle grid helper
590
+ gridHelper = new THREE.GridHelper(6, 12, 0x333333, 0x222222);
591
+ gridHelper.position.y = -2;
592
+ scene.add(gridHelper);
593
+ // Add axis lines
594
+ const axisLength = 2.5;
595
+ axisGeom = new THREE.BufferGeometry();
596
+ const axisPositions = new Float32Array([
597
+ -axisLength,
598
+ 0,
599
+ 0,
600
+ axisLength,
601
+ 0,
602
+ 0, // X axis
603
+ 0,
604
+ -axisLength,
605
+ 0,
606
+ 0,
607
+ axisLength,
608
+ 0, // Y axis
609
+ 0,
610
+ 0,
611
+ -axisLength,
612
+ 0,
613
+ 0,
614
+ axisLength, // Z axis
615
+ ]);
616
+ axisGeom.setAttribute("position", new THREE.BufferAttribute(axisPositions, 3));
617
+ axisMat = new THREE.LineBasicMaterial({ color: 0x444444 });
618
+ const axisLines = new THREE.LineSegments(axisGeom, axisMat);
619
+ scene.add(axisLines);
620
+ // Simple orbit controls (manual implementation)
621
+ let theta = 0;
622
+ let phi = Math.PI / 4;
623
+ let radius = 5;
624
+ let targetTheta = theta;
625
+ let targetPhi = phi;
626
+ let targetRadius = radius;
627
+ const updatePointerFromEvent = (e) => {
628
+ const rect = renderer.domElement.getBoundingClientRect();
629
+ pointer.set(((e.clientX - rect.left) / rect.width) * 2 - 1, -((e.clientY - rect.top) / rect.height) * 2 + 1);
630
+ return rect;
631
+ };
632
+ const updateCamera = () => {
633
+ theta += (targetTheta - theta) * 0.1;
634
+ phi += (targetPhi - phi) * 0.1;
635
+ radius += (targetRadius - radius) * 0.1;
636
+ phi = Math.max(0.1, Math.min(Math.PI - 0.1, phi));
637
+ camera.position.x = radius * Math.sin(phi) * Math.cos(theta);
638
+ camera.position.y = radius * Math.cos(phi);
639
+ camera.position.z = radius * Math.sin(phi) * Math.sin(theta);
640
+ camera.lookAt(0, 0, 0);
641
+ };
642
+ onMouseDown = (e) => {
643
+ isDraggingRef.current = true;
644
+ mouseDownPosRef.current = { x: e.clientX, y: e.clientY };
645
+ };
646
+ onMouseUp = () => {
647
+ isDraggingRef.current = false;
648
+ mouseDownPosRef.current = null;
649
+ };
650
+ onMouseMove = (e) => {
651
+ if (isDraggingRef.current) {
652
+ targetTheta -= e.movementX * 0.01;
653
+ targetPhi -= e.movementY * 0.01;
654
+ }
655
+ // Raycasting for hover
656
+ const rect = updatePointerFromEvent(e);
657
+ raycaster.setFromCamera(pointer, camera);
658
+ const intersects = raycaster.intersectObjects(spheres);
659
+ if (intersects.length > 0) {
660
+ const idx = intersects[0].object.userData.index;
661
+ setHoveredIdx(idx);
662
+ setTooltipPos({ x: e.clientX - rect.left, y: e.clientY - rect.top });
663
+ // Highlight hovered sphere
664
+ spheres.forEach((s, i) => {
665
+ const mat = s.material;
666
+ mat.opacity = i === idx ? 1 : 0.5;
667
+ s.scale.setScalar(i === idx ? 1.5 : 1);
668
+ });
669
+ }
670
+ else {
671
+ setHoveredIdx(null);
672
+ setTooltipPos(null);
673
+ spheres.forEach((s) => {
674
+ const mat = s.material;
675
+ mat.opacity = 0.85;
676
+ s.scale.setScalar(1);
677
+ });
678
+ }
679
+ };
680
+ onClick = (e) => {
681
+ // Only trigger click if we didn't drag much
682
+ if (mouseDownPosRef.current) {
683
+ const dx = Math.abs(e.clientX - mouseDownPosRef.current.x);
684
+ const dy = Math.abs(e.clientY - mouseDownPosRef.current.y);
685
+ if (dx > 5 || dy > 5)
686
+ return; // Was a drag, not a click
687
+ }
688
+ updatePointerFromEvent(e);
689
+ raycaster.setFromCamera(pointer, camera);
690
+ const intersects = raycaster.intersectObjects(spheres);
691
+ if (intersects.length > 0) {
692
+ const idx = intersects[0].object.userData.index;
693
+ if (idx < withEmbeddings.length) {
694
+ onSelect(withEmbeddings[idx]);
695
+ }
696
+ }
697
+ };
698
+ onWheel = (e) => {
699
+ e.preventDefault();
700
+ targetRadius += e.deltaY * 0.005;
701
+ targetRadius = Math.max(2, Math.min(15, targetRadius));
702
+ };
703
+ onMouseLeave = () => {
704
+ isDraggingRef.current = false;
705
+ setHoveredIdx(null);
706
+ setTooltipPos(null);
707
+ };
708
+ renderer.domElement.addEventListener("mousedown", onMouseDown);
709
+ renderer.domElement.addEventListener("mouseup", onMouseUp);
710
+ renderer.domElement.addEventListener("mousemove", onMouseMove);
711
+ renderer.domElement.addEventListener("click", onClick);
712
+ renderer.domElement.addEventListener("wheel", onWheel, {
713
+ passive: false,
714
+ });
715
+ renderer.domElement.addEventListener("mouseleave", onMouseLeave);
716
+ if (cancelled) {
717
+ cleanupRef.current?.();
718
+ cleanupRef.current = null;
719
+ return;
720
+ }
721
+ // Animation loop
722
+ const animate = () => {
723
+ updateCamera();
724
+ renderer.render(scene, camera);
725
+ animationRef.current = requestAnimationFrame(animate);
726
+ };
727
+ animate();
728
+ // Resize handler
729
+ handleResize = () => {
730
+ const newW = container.clientWidth;
731
+ camera.aspect = newW / H;
732
+ camera.updateProjectionMatrix();
733
+ renderer.setSize(newW, H);
734
+ };
735
+ window.addEventListener("resize", handleResize);
736
+ })(); // end async IIFE
737
+ return () => {
738
+ cancelled = true;
739
+ cleanupRef.current?.();
740
+ cleanupRef.current = null;
741
+ };
742
+ }, [points3D, withEmbeddings, typeColors, onSelect]);
743
+ if (withEmbeddings.length < 2) {
744
+ return (_jsxs("div", { className: "text-center py-16", children: [_jsx("div", { className: "text-[var(--muted)] text-sm mb-2", children: t("vectorbrowserview.NotEnoughEmbedding1") }), _jsxs("div", { className: "text-[var(--muted)] text-xs", children: [t("vectorbrowserview.NeedAtLeast2Memo"), " ", withEmbeddings.length, "."] })] }));
745
+ }
746
+ if (rendererUnavailable) {
747
+ return (_jsxs("div", { className: "border border-[var(--border)] bg-[var(--card)] px-4 py-10 text-center", children: [_jsx("div", { className: "text-sm text-[var(--txt)]", children: "3D view unavailable in this environment." }), _jsx("div", { className: "mt-2 text-xs text-[var(--muted)]", children: "The current runtime could not initialize a renderer." })] }));
748
+ }
749
+ const hoveredMem = hoveredIdx !== null ? withEmbeddings[hoveredIdx] : null;
750
+ return (_jsxs("div", { className: "relative", children: [_jsxs("div", { className: "text-[11px] text-[var(--muted)] mb-2", children: [withEmbeddings.length, " ", t("vectorbrowserview.vectorsProjectedTo1")] }), _jsx("div", { ref: containerRef, className: "w-full border border-[var(--border)] cursor-grab active:cursor-grabbing", style: { height: 550 } }), hoveredMem && tooltipPos && (_jsxs("div", { className: "absolute pointer-events-none bg-black/90 text-white text-[11px] px-3 py-2 max-w-[300px] z-10", style: {
751
+ left: tooltipPos.x + 15,
752
+ top: tooltipPos.y + 15,
753
+ transform: tooltipPos.x > 400 ? "translateX(-100%)" : undefined,
754
+ }, children: [_jsxs("div", { className: "font-medium mb-1 truncate", children: [hoveredMem.type && hoveredMem.type !== "undefined" && (_jsx("span", { className: "px-1.5 py-0.5 bg-[var(--accent)]/30 text-[var(--accent)] mr-2 text-[10px]", children: hoveredMem.type })), hoveredMem.id.slice(0, 12), "..."] }), _jsxs("div", { className: "text-[var(--muted)] line-clamp-3", children: [hoveredMem.content.slice(0, 150), hoveredMem.content.length > 150 ? "..." : ""] })] })), _jsx("div", { className: "flex flex-wrap gap-3 mt-2 text-[10px]", children: Object.entries(typeColors).map(([type, color]) => type &&
755
+ type !== "undefined" && (_jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx("div", { className: "w-3 h-3 rounded-full", style: {
756
+ backgroundColor: `#${color.toString(16).padStart(6, "0")}`,
757
+ } }), _jsx("span", { className: "text-[var(--muted)]", children: type })] }, type))) })] }));
758
+ }
759
+ // ── Detail modal ───────────────────────────────────────────────────────
760
+ function MemoryDetailModal({ memory, onClose, }) {
761
+ const { t } = useApp();
762
+ return (_jsx("div", { className: "fixed inset-0 bg-black/80 z-50 flex items-center justify-center p-8", onClick: (e) => {
763
+ if (e.target === e.currentTarget)
764
+ onClose();
765
+ }, onKeyDown: (e) => {
766
+ if (e.key === "Escape" || e.key === "Enter" || e.key === " ") {
767
+ e.preventDefault();
768
+ onClose();
769
+ }
770
+ }, role: "dialog", "aria-modal": "true", children: _jsxs("div", { className: "bg-[var(--card)] border border-[var(--border)] max-w-[700px] w-full max-h-[90vh] overflow-auto", children: [_jsxs("div", { className: "flex items-center justify-between p-3 border-b border-[var(--border)]", children: [_jsx("div", { className: "text-xs font-medium text-[var(--txt)]", children: t("vectorbrowserview.MemoryDetail") }), _jsx(Button, { variant: "ghost", size: "icon", className: "text-[var(--muted)] hover:text-[var(--txt)] hover:bg-transparent h-6 w-6 text-lg", onClick: onClose, children: "\u00D7" })] }), _jsxs("div", { className: "p-4", children: [_jsx("div", { className: "text-[11px] text-[var(--muted)] mb-1 uppercase font-bold", children: t("vectorbrowserview.Content") }), _jsx("div", { className: "text-xs text-[var(--txt)] whitespace-pre-wrap break-words mb-4 p-2 bg-[var(--bg)] border border-[var(--border)] max-h-[200px] overflow-auto", children: memory.content || "(empty)" }), _jsx("div", { className: "text-[11px] text-[var(--muted)] mb-1 uppercase font-bold", children: t("vectorbrowserview.Metadata") }), _jsxs("div", { className: "grid grid-cols-2 gap-x-4 gap-y-1 text-xs mb-4", children: [_jsx("span", { className: "text-[var(--muted)]", children: "ID" }), _jsx("span", { className: "text-[var(--txt)] font-mono truncate", children: memory.id || "—" }), _jsx("span", { className: "text-[var(--muted)]", children: t("vectorbrowserview.Type") }), _jsx("span", { className: "text-[var(--txt)]", children: memory.type || "—" }), _jsx("span", { className: "text-[var(--muted)]", children: t("vectorbrowserview.Room") }), _jsx("span", { className: "text-[var(--txt)] font-mono truncate", children: memory.roomId || "—" }), _jsx("span", { className: "text-[var(--muted)]", children: t("vectorbrowserview.Entity") }), _jsx("span", { className: "text-[var(--txt)] font-mono truncate", children: memory.entityId || "—" }), _jsx("span", { className: "text-[var(--muted)]", children: t("vectorbrowserview.Created") }), _jsx("span", { className: "text-[var(--txt)]", children: memory.createdAt || "—" }), _jsx("span", { className: "text-[var(--muted)]", children: t("vectorbrowserview.Unique") }), _jsx("span", { className: "text-[var(--txt)]", children: memory.unique ? "Yes" : "No" })] }), memory.embedding && (_jsxs(_Fragment, { children: [_jsxs("div", { className: "text-[11px] text-[var(--muted)] mb-1 uppercase font-bold", children: [t("vectorbrowserview.Embedding"), memory.embedding.length, " ", t("vectorbrowserview.dimensions")] }), _jsxs("div", { className: "p-2 bg-[var(--bg)] border border-[var(--border)] text-[10px] font-mono text-[var(--muted)] max-h-[150px] overflow-auto break-all mb-4", children: ["[", memory.embedding.map((v) => v.toFixed(6)).join(", "), "]"] })] })), _jsxs("details", { children: [_jsx("summary", { className: "text-[11px] text-[var(--muted)] cursor-pointer hover:text-[var(--txt)] uppercase font-bold mb-1", children: t("vectorbrowserview.RawRecord") }), _jsx("div", { className: "p-2 bg-[var(--bg)] border border-[var(--border)] text-[10px] font-mono text-[var(--muted)] max-h-[200px] overflow-auto break-all", children: JSON.stringify(memory.raw, null, 2) })] })] })] }) }));
771
+ }
772
+ // ── Main component ─────────────────────────────────────────────────────
773
+ export function VectorBrowserView() {
774
+ const { t } = useApp();
775
+ const [tables, setTables] = useState([]);
776
+ const [selectedTable, setSelectedTable] = useState("");
777
+ const [memories, setMemories] = useState([]);
778
+ const [totalCount, setTotalCount] = useState(0);
779
+ const [page, setPage] = useState(0);
780
+ const [loading, setLoading] = useState(true);
781
+ const [error, setError] = useState("");
782
+ const [search, setSearch] = useState("");
783
+ const [searchInput, setSearchInput] = useState("");
784
+ const [selectedMemory, setSelectedMemory] = useState(null);
785
+ const [viewMode, setViewMode] = useState("list");
786
+ const [graphMemories, setGraphMemories] = useState([]);
787
+ const [graphLoading, setGraphLoading] = useState(false);
788
+ const [stats, setStats] = useState(null);
789
+ // Track whether the `embeddings` table exists for JOIN queries
790
+ const [hasEmbeddingsTable, setHasEmbeddingsTable] = useState(false);
791
+ // Discover vector/memory tables
792
+ const loadTables = useCallback(async () => {
793
+ try {
794
+ const { tables: allTables } = await client.getDatabaseTables();
795
+ const vectorTables = allTables.filter((t) => {
796
+ const n = t.name.toLowerCase();
797
+ return (n.includes("memor") ||
798
+ n.includes("embed") ||
799
+ n.includes("vector") ||
800
+ n.includes("knowledge"));
801
+ });
802
+ const available = vectorTables.length > 0 ? vectorTables : allTables;
803
+ setTables(available);
804
+ // Check for separate embeddings table (elizaOS stores vectors there)
805
+ const embTbl = allTables.find((t) => t.name === "embeddings");
806
+ setHasEmbeddingsTable(!!embTbl);
807
+ if (available.length > 0 && !selectedTable) {
808
+ const preferred = available.find((t) => t.name.toLowerCase() === "memories") ??
809
+ available.find((t) => t.name.toLowerCase().includes("memor"));
810
+ setSelectedTable(preferred?.name ?? available[0].name);
811
+ }
812
+ }
813
+ catch (err) {
814
+ const msg = err instanceof Error ? err.message : "error";
815
+ if (msg === "Failed to fetch" || msg.includes("fetch")) {
816
+ setError("Cannot connect to database. Make sure the agent is running.");
817
+ }
818
+ else {
819
+ setError(`Failed to load tables: ${msg}`);
820
+ }
821
+ }
822
+ }, [selectedTable]);
823
+ // Build a SELECT that casts any vector/embedding column to text so the raw
824
+ // driver returns a parseable string instead of a binary blob.
825
+ const buildSelect = useCallback(async (table) => {
826
+ try {
827
+ const colResult = await client.executeDatabaseQuery(`SELECT column_name, data_type FROM information_schema.columns WHERE table_name = '${table.replace(/'/g, "''")}' AND table_schema NOT IN ('pg_catalog','information_schema') ORDER BY ordinal_position`);
828
+ const cols = colResult.rows.map((r) => {
829
+ const name = String(r.column_name);
830
+ const dtype = String(r.data_type).toLowerCase();
831
+ // Cast USER-DEFINED types (pgvector) and bytea to text
832
+ if (dtype === "user-defined" ||
833
+ dtype === "bytea" ||
834
+ dtype === "vector") {
835
+ return `"${name}"::text AS "${name}"`;
836
+ }
837
+ return `"${name}"`;
838
+ });
839
+ if (cols.length > 0)
840
+ return cols.join(", ");
841
+ }
842
+ catch {
843
+ // fall through to SELECT *
844
+ }
845
+ return "*";
846
+ }, []);
847
+ /**
848
+ * Build a query that JOINs memories with the embeddings table when applicable.
849
+ * The embeddings table stores vectors in dim_* columns (pgvector), which we
850
+ * cast to ::text so the driver returns a parseable string.
851
+ */
852
+ const buildJoinQuery = useCallback((opts) => {
853
+ const isMemories = selectedTable === "memories" && hasEmbeddingsTable;
854
+ const { where, limit, offset } = opts;
855
+ if (isMemories) {
856
+ // Build dim column selects with ::text cast
857
+ const dimCols = DIM_COLUMNS.map((d) => `e."${d}"::text AS "${d}"`).join(", ");
858
+ return [
859
+ `SELECT m.*, ${dimCols}`,
860
+ `FROM "memories" m`,
861
+ `LEFT JOIN "embeddings" e ON e."memory_id" = m."id"`,
862
+ where ? `WHERE ${where}` : "",
863
+ `ORDER BY m."created_at" DESC`,
864
+ `LIMIT ${limit}`,
865
+ offset ? `OFFSET ${offset}` : "",
866
+ ]
867
+ .filter(Boolean)
868
+ .join(" ");
869
+ }
870
+ // For other tables, use buildSelect to cast any vector columns
871
+ return ""; // signal to caller to use the old path
872
+ }, [selectedTable, hasEmbeddingsTable]);
873
+ // Load memory records for list view
874
+ const loadMemories = useCallback(async () => {
875
+ if (!selectedTable)
876
+ return;
877
+ setLoading(true);
878
+ setError("");
879
+ try {
880
+ const offset = page * PAGE_SIZE;
881
+ const searchEscaped = search.replace(/'/g, "''");
882
+ const countWhere = search
883
+ ? ` WHERE "content"::text LIKE '%${searchEscaped}%'`
884
+ : "";
885
+ const joinWhere = search
886
+ ? `m."content"::text LIKE '%${searchEscaped}%'`
887
+ : undefined;
888
+ const countResult = await client.executeDatabaseQuery(`SELECT COUNT(*) as cnt FROM "${selectedTable}"${countWhere}`);
889
+ const total = Number(countResult.rows[0]?.cnt ?? 0);
890
+ setTotalCount(total);
891
+ // Try JOIN path for memories + embeddings
892
+ const joinSql = buildJoinQuery({
893
+ where: joinWhere,
894
+ limit: PAGE_SIZE,
895
+ offset,
896
+ });
897
+ let result;
898
+ if (joinSql) {
899
+ result = await client.executeDatabaseQuery(joinSql);
900
+ }
901
+ else {
902
+ const selectCols = await buildSelect(selectedTable);
903
+ const plainWhere = search
904
+ ? ` WHERE "content"::text LIKE '%${searchEscaped}%'`
905
+ : "";
906
+ result = await client.executeDatabaseQuery(`SELECT ${selectCols} FROM "${selectedTable}"${plainWhere} LIMIT ${PAGE_SIZE} OFFSET ${offset}`);
907
+ }
908
+ setMemories(result.rows.map(rowToMemory));
909
+ // Stats on first load
910
+ if (page === 0 && !search) {
911
+ let dims = 0;
912
+ let uniqueCount = 0;
913
+ if (result.rows.length > 0) {
914
+ const sample = rowToMemory(result.rows[0]);
915
+ if (sample.embedding)
916
+ dims = sample.embedding.length;
917
+ }
918
+ try {
919
+ const uniqueResult = await client.executeDatabaseQuery(`SELECT COUNT(*) as cnt FROM "${selectedTable}" WHERE "unique" = true OR "unique" = 1`);
920
+ uniqueCount = Number(uniqueResult.rows[0]?.cnt ?? 0);
921
+ }
922
+ catch {
923
+ // column might not exist
924
+ }
925
+ setStats({ total, dimensions: dims, uniqueCount });
926
+ }
927
+ }
928
+ catch (err) {
929
+ setError(`Failed to load memories: ${err instanceof Error ? err.message : "error"}`);
930
+ }
931
+ setLoading(false);
932
+ }, [selectedTable, page, search, buildSelect, buildJoinQuery]);
933
+ // Load embeddings for graph view (fetch more rows to make graph useful)
934
+ // Only include rows that actually have embeddings (INNER JOIN or filter).
935
+ const loadGraphData = useCallback(async () => {
936
+ if (!selectedTable)
937
+ return;
938
+ setGraphLoading(true);
939
+ try {
940
+ const isMemories = selectedTable === "memories" && hasEmbeddingsTable;
941
+ let result;
942
+ if (isMemories) {
943
+ // INNER JOIN ensures only rows with embeddings are returned
944
+ const dimCols = DIM_COLUMNS.map((d) => `e."${d}"::text AS "${d}"`).join(", ");
945
+ result = await client.executeDatabaseQuery(`SELECT m.*, ${dimCols} FROM "memories" m INNER JOIN "embeddings" e ON e."memory_id" = m."id" ORDER BY m."created_at" DESC LIMIT 500`);
946
+ }
947
+ else {
948
+ const selectCols = await buildSelect(selectedTable);
949
+ result = await client.executeDatabaseQuery(`SELECT ${selectCols} FROM "${selectedTable}" LIMIT 500`);
950
+ }
951
+ setGraphMemories(result.rows.map(rowToMemory));
952
+ }
953
+ catch (err) {
954
+ setError(`Failed to load graph data: ${err instanceof Error ? err.message : "error"}`);
955
+ }
956
+ setGraphLoading(false);
957
+ }, [selectedTable, buildSelect, hasEmbeddingsTable]);
958
+ useEffect(() => {
959
+ loadTables();
960
+ }, [loadTables]);
961
+ useEffect(() => {
962
+ if (viewMode === "list")
963
+ loadMemories();
964
+ }, [loadMemories, viewMode]);
965
+ useEffect(() => {
966
+ if (viewMode === "graph" || viewMode === "3d")
967
+ loadGraphData();
968
+ }, [loadGraphData, viewMode]);
969
+ const handleSearch = () => {
970
+ setSearch(searchInput);
971
+ setPage(0);
972
+ };
973
+ const totalPages = Math.ceil(totalCount / PAGE_SIZE);
974
+ // Show connection error state prominently
975
+ const isConnectionError = error?.includes("agent is running");
976
+ return (_jsxs("div", { children: [stats && !isConnectionError && (_jsxs("div", { className: "flex gap-4 mb-4 text-[11px] text-[var(--muted)]", children: [_jsxs("span", { children: [Number(stats.total).toLocaleString(), " ", t("vectorbrowserview.memories")] }), Number(stats.uniqueCount) > 0 && (_jsxs("span", { children: [Number(stats.uniqueCount).toLocaleString(), " ", t("vectorbrowserview.unique")] })), Number(stats.dimensions) > 0 && (_jsxs("span", { children: [stats.dimensions, " ", t("vectorbrowserview.dimensions1")] }))] })), !isConnectionError && (_jsxs("div", { className: "flex flex-wrap items-center gap-3 mb-4", children: [viewMode === "list" && (_jsxs("div", { className: "flex gap-1", children: [_jsx(Input, { type: "text", placeholder: t("vectorbrowserview.SearchContent"), value: searchInput, onChange: (e) => setSearchInput(e.target.value), onKeyDown: (e) => e.key === "Enter" && handleSearch(), className: "w-[220px] bg-card text-xs" }), _jsx(Button, { variant: "default", size: "sm", onClick: handleSearch, children: t("vectorbrowserview.Search") })] })), tables.length > 1 && (_jsx("select", { value: selectedTable, onChange: (e) => {
977
+ setSelectedTable(e.target.value);
978
+ setPage(0);
979
+ setSearch("");
980
+ setSearchInput("");
981
+ }, className: "px-2 py-1.5 border border-[var(--border)] bg-[var(--card)] text-[var(--txt)] text-xs", children: tables.map((t) => (_jsxs("option", { value: t.name, children: [t.name, " (", typeof t.rowCount === "object"
982
+ ? JSON.stringify(t.rowCount)
983
+ : t.rowCount, ")"] }, t.name))) })), _jsxs("div", { className: "flex gap-1 ml-auto", children: [_jsx(Button, { variant: viewMode === "list" ? "default" : "outline", size: "sm", onClick: () => setViewMode("list"), children: t("vectorbrowserview.List") }), _jsx(Button, { variant: viewMode === "graph" ? "default" : "outline", size: "sm", onClick: () => setViewMode("graph"), children: "2D" }), _jsx(Button, { variant: viewMode === "3d" ? "default" : "outline", size: "sm", onClick: () => setViewMode("3d"), children: "3D" })] }), viewMode === "list" && (_jsx("span", { className: "text-[11px] text-[var(--muted)]", children: Number(totalCount) > 0
984
+ ? `${page * PAGE_SIZE + 1}-${Math.min((page + 1) * PAGE_SIZE, Number(totalCount))} of ${Number(totalCount).toLocaleString()}`
985
+ : "" }))] })), error &&
986
+ (error.includes("agent is running") ? (_jsxs("div", { className: "text-center py-16", children: [_jsx("div", { className: "text-[var(--muted)] text-sm mb-2", children: t("vectorbrowserview.DatabaseNotAvailab") }), _jsx("div", { className: "text-[var(--muted)] text-xs mb-4", children: t("vectorbrowserview.StartTheAgentToB") }), _jsx(Button, { variant: "default", size: "sm", onClick: () => {
987
+ setError("");
988
+ loadTables();
989
+ }, children: t("vectorbrowserview.RetryConnection") })] })) : (_jsx("div", { className: "p-2.5 border border-[var(--danger)] text-[var(--danger)] text-xs mb-3", children: error }))), viewMode === "graph" &&
990
+ (graphLoading ? (_jsx("div", { className: "text-center py-16 text-[var(--muted)] text-sm italic", children: t("vectorbrowserview.LoadingEmbeddings") })) : (_jsx(VectorGraph, { memories: graphMemories, onSelect: setSelectedMemory }))), viewMode === "3d" &&
991
+ (graphLoading ? (_jsx("div", { className: "text-center py-16 text-[var(--muted)] text-sm italic", children: t("vectorbrowserview.LoadingEmbeddings") })) : (_jsx(VectorGraph3D, { memories: graphMemories, onSelect: setSelectedMemory }))), viewMode === "list" &&
992
+ (loading ? (_jsx("div", { className: "text-center py-16 text-[var(--muted)] text-sm italic", children: t("vectorbrowserview.LoadingMemories") })) : memories.length === 0 ? (_jsxs("div", { className: "text-center py-16", children: [_jsx("div", { className: "text-[var(--muted)] text-sm mb-2", children: t("vectorbrowserview.NoMemoriesFound") }), _jsx("div", { className: "text-[var(--muted)] text-xs", children: search
993
+ ? "No records match your search query."
994
+ : "No memory records detected in the database." })] })) : (_jsx("div", { className: "flex flex-col gap-2", children: memories.map((mem) => (_jsxs(Button, { variant: "outline", className: "justify-start items-start text-left h-auto p-3 hover:border-accent w-full flex flex-col", onClick: () => setSelectedMemory(mem), children: [_jsx("div", { className: "text-xs text-[var(--txt)] mb-2 whitespace-pre-wrap break-words", children: mem.content.length > 200
995
+ ? `${mem.content.slice(0, 200)}...`
996
+ : mem.content }), _jsxs("div", { className: "flex flex-wrap items-center gap-3 text-[10px] text-[var(--muted)]", children: [mem.type && mem.type !== "undefined" && (_jsx("span", { className: "px-1.5 py-0.5 bg-[var(--accent)]/10 text-[var(--accent)]", children: mem.type })), mem.roomId && mem.roomId !== "undefined" && (_jsxs("span", { children: [t("vectorbrowserview.Room1"), " ", mem.roomId.slice(0, 12)] })), mem.entityId && mem.entityId !== "undefined" && (_jsxs("span", { children: [t("vectorbrowserview.Entity1"), " ", mem.entityId.slice(0, 12)] })), mem.createdAt && mem.createdAt !== "undefined" && (_jsx("span", { children: mem.createdAt })), mem.unique && (_jsx("span", { className: "px-1.5 py-0.5 bg-green-500/20 text-green-400 font-bold", children: t("vectorbrowserview.unique") })), mem.embedding && (_jsxs("span", { className: "font-mono", children: ["[", mem.embedding.length, "d]"] }))] })] }, mem.id || `${mem.content.slice(0, 30)}-${mem.createdAt}`))) }))), viewMode === "list" && totalPages > 1 && (_jsxs("div", { className: "flex items-center justify-center gap-3 mt-4 pb-4", children: [_jsx(Button, { variant: "default", size: "sm", disabled: page === 0, onClick: () => setPage((p) => p - 1), children: t("vectorbrowserview.Prev") }), _jsxs("span", { className: "text-[11px] text-[var(--muted)]", children: [t("vectorbrowserview.Page"), " ", page + 1, " of ", totalPages] }), _jsx(Button, { variant: "default", size: "sm", disabled: page >= totalPages - 1, onClick: () => setPage((p) => p + 1), children: t("vectorbrowserview.Next") })] })), selectedMemory && (_jsx(MemoryDetailModal, { memory: selectedMemory, onClose: () => setSelectedMemory(null) }))] }));
997
+ }