@elizaos/app-core 2.0.0-alpha.74 → 2.0.0-alpha.76

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 (1183) hide show
  1. package/App.d.ts.map +1 -0
  2. package/{dist/App.js → App.js} +3 -3
  3. package/{dist/components → components}/AdvancedPageView.d.ts.map +1 -1
  4. package/{dist/components → components}/AdvancedPageView.js +0 -10
  5. package/{dist/components → components}/CharacterView.d.ts.map +1 -1
  6. package/components/CharacterView.js +685 -0
  7. package/{dist/components → components}/ChatComposer.d.ts.map +1 -1
  8. package/{dist/components → components}/ChatComposer.js +4 -4
  9. package/{dist/components → components}/ChatView.d.ts.map +1 -1
  10. package/{dist/components → components}/ChatView.js +15 -0
  11. package/{dist/components → components}/CompanionView.js +1 -1
  12. package/{dist/components → components}/ConfigPageView.js +1 -1
  13. package/{dist/components → components}/ElizaCloudDashboard.js +1 -1
  14. package/{dist/components → components}/FlaminaGuide.js +1 -1
  15. package/{dist/components → components}/OnboardingWizard.d.ts.map +1 -1
  16. package/{dist/components → components}/OnboardingWizard.js +3 -2
  17. package/{dist/components → components}/PluginsView.d.ts.map +1 -1
  18. package/{dist/components → components}/PluginsView.js +1 -5
  19. package/{dist/components → components}/avatar/VrmEngine.d.ts +13 -0
  20. package/{dist/components → components}/avatar/VrmEngine.d.ts.map +1 -1
  21. package/{dist/components → components}/avatar/VrmEngine.js +66 -0
  22. package/{dist/components → components}/avatar/VrmViewer.d.ts +15 -0
  23. package/{dist/components → components}/avatar/VrmViewer.d.ts.map +1 -1
  24. package/{dist/components → components}/avatar/VrmViewer.js +56 -1
  25. package/{src/components/index.ts → components/index.d.ts} +1 -1
  26. package/{dist/components → components}/index.d.ts.map +1 -1
  27. package/{dist/components → components}/index.js +0 -1
  28. package/{dist/components → components}/onboarding/ConnectionStep.d.ts.map +1 -1
  29. package/{dist/components → components}/onboarding/ConnectionStep.js +12 -7
  30. package/{dist/components → components}/permissions/StreamingPermissions.d.ts.map +1 -1
  31. package/{dist/components → components}/permissions/StreamingPermissions.js +1 -1
  32. package/{dist/components → components}/ui-switch.js +4 -4
  33. package/{dist/i18n → i18n}/locales/en.json +45 -1
  34. package/{src/i18n → i18n}/locales/es.json +41 -0
  35. package/{dist/i18n → i18n}/locales/ko.json +41 -0
  36. package/{dist/i18n → i18n}/locales/pt.json +41 -0
  37. package/{dist/i18n → i18n}/locales/zh-CN.json +41 -0
  38. package/package.json +143 -53
  39. package/{dist/state → state}/AppContext.d.ts.map +1 -1
  40. package/{dist/state → state}/AppContext.js +38 -16
  41. package/{dist/styles → styles}/anime.css +1 -4
  42. package/{dist/styles → styles}/onboarding-game.css +125 -9
  43. package/.turbo/turbo-build.log +0 -2
  44. package/.turbo/turbo-lint$colon$check.log +0 -2
  45. package/.turbo/turbo-typecheck.log +0 -1
  46. package/dist/App.d.ts.map +0 -1
  47. package/dist/components/CharacterView.js +0 -719
  48. package/dist/components/MiladyBar.d.ts +0 -2
  49. package/dist/components/MiladyBar.d.ts.map +0 -1
  50. package/dist/components/MiladyBar.js +0 -50
  51. package/dist/components/MiladyBarSettings.d.ts +0 -2
  52. package/dist/components/MiladyBarSettings.d.ts.map +0 -1
  53. package/dist/components/MiladyBarSettings.js +0 -513
  54. package/dist/components/SecurityPageView.d.ts +0 -2
  55. package/dist/components/SecurityPageView.d.ts.map +0 -1
  56. package/dist/components/SecurityPageView.js +0 -81
  57. package/dist/components/index.d.ts +0 -97
  58. package/dist/components/milady-bar/CloudCreditsChip.d.ts +0 -2
  59. package/dist/components/milady-bar/CloudCreditsChip.d.ts.map +0 -1
  60. package/dist/components/milady-bar/CloudCreditsChip.js +0 -25
  61. package/dist/components/milady-bar/ProviderDropdown.d.ts +0 -13
  62. package/dist/components/milady-bar/ProviderDropdown.d.ts.map +0 -1
  63. package/dist/components/milady-bar/ProviderDropdown.js +0 -68
  64. package/dist/components/milady-bar/WalletSummary.d.ts +0 -2
  65. package/dist/components/milady-bar/WalletSummary.d.ts.map +0 -1
  66. package/dist/components/milady-bar/WalletSummary.js +0 -37
  67. package/dist/components/milady-bar/index.d.ts +0 -4
  68. package/dist/components/milady-bar/index.d.ts.map +0 -1
  69. package/dist/components/milady-bar/index.js +0 -3
  70. package/dist/hooks/useMiladyBar.d.ts +0 -2
  71. package/dist/hooks/useMiladyBar.d.ts.map +0 -1
  72. package/dist/hooks/useMiladyBar.js +0 -472
  73. package/dist/i18n/locales/es.json +0 -1195
  74. package/dist/package.json +0 -180
  75. package/src/App.tsx +0 -504
  76. package/src/actions/character.test.ts +0 -139
  77. package/src/actions/character.ts +0 -334
  78. package/src/actions/chat-helpers.ts +0 -100
  79. package/src/actions/cloud.ts +0 -59
  80. package/src/actions/index.ts +0 -12
  81. package/src/actions/lifecycle.ts +0 -175
  82. package/src/actions/onboarding.ts +0 -38
  83. package/src/actions/triggers.ts +0 -190
  84. package/src/ambient.d.ts +0 -33
  85. package/src/api/client.ts +0 -5659
  86. package/src/api/index.ts +0 -1
  87. package/src/autonomy/index.ts +0 -477
  88. package/src/bridge/capacitor-bridge.ts +0 -295
  89. package/src/bridge/electrobun-rpc.ts +0 -78
  90. package/src/bridge/electrobun-runtime.ts +0 -28
  91. package/src/bridge/index.ts +0 -5
  92. package/src/bridge/native-plugins.ts +0 -138
  93. package/src/bridge/plugin-bridge.ts +0 -352
  94. package/src/bridge/storage-bridge.ts +0 -162
  95. package/src/chat/index.ts +0 -250
  96. package/src/coding/index.ts +0 -43
  97. package/src/components/AdvancedPageView.tsx +0 -382
  98. package/src/components/AgentActivityBox.tsx +0 -49
  99. package/src/components/ApiKeyConfig.tsx +0 -222
  100. package/src/components/AppsPageView.tsx +0 -52
  101. package/src/components/AppsView.tsx +0 -293
  102. package/src/components/AvatarLoader.tsx +0 -104
  103. package/src/components/AvatarSelector.tsx +0 -223
  104. package/src/components/BscTradePanel.tsx +0 -549
  105. package/src/components/BugReportModal.tsx +0 -499
  106. package/src/components/CharacterRoster.tsx +0 -143
  107. package/src/components/CharacterView.tsx +0 -1575
  108. package/src/components/ChatAvatar.test.ts +0 -97
  109. package/src/components/ChatAvatar.tsx +0 -147
  110. package/src/components/ChatComposer.tsx +0 -330
  111. package/src/components/ChatMessage.tsx +0 -448
  112. package/src/components/ChatModalView.test.tsx +0 -118
  113. package/src/components/ChatModalView.tsx +0 -125
  114. package/src/components/ChatView.tsx +0 -992
  115. package/src/components/CloudOnboarding.tsx +0 -81
  116. package/src/components/CloudSourceControls.tsx +0 -85
  117. package/src/components/CodingAgentSettingsSection.tsx +0 -537
  118. package/src/components/CommandPalette.tsx +0 -284
  119. package/src/components/CompanionSceneHost.tsx +0 -517
  120. package/src/components/CompanionShell.tsx +0 -31
  121. package/src/components/CompanionView.tsx +0 -110
  122. package/src/components/ConfigPageView.tsx +0 -763
  123. package/src/components/ConfigSaveFooter.tsx +0 -41
  124. package/src/components/ConfirmModal.tsx +0 -379
  125. package/src/components/ConnectionFailedBanner.tsx +0 -91
  126. package/src/components/ConnectorsPageView.tsx +0 -13
  127. package/src/components/ConversationsSidebar.tsx +0 -279
  128. package/src/components/CustomActionEditor.tsx +0 -1127
  129. package/src/components/CustomActionsPanel.tsx +0 -288
  130. package/src/components/CustomActionsView.tsx +0 -325
  131. package/src/components/DatabasePageView.tsx +0 -55
  132. package/src/components/DatabaseView.tsx +0 -814
  133. package/src/components/ElizaCloudDashboard.tsx +0 -1696
  134. package/src/components/EmotePicker.tsx +0 -529
  135. package/src/components/ErrorBoundary.tsx +0 -76
  136. package/src/components/FineTuningView.tsx +0 -1080
  137. package/src/components/FlaminaGuide.test.tsx +0 -61
  138. package/src/components/FlaminaGuide.tsx +0 -212
  139. package/src/components/GameView.tsx +0 -551
  140. package/src/components/GameViewOverlay.tsx +0 -133
  141. package/src/components/GlobalEmoteOverlay.tsx +0 -152
  142. package/src/components/Header.test.tsx +0 -413
  143. package/src/components/Header.tsx +0 -400
  144. package/src/components/HeartbeatsView.tsx +0 -1003
  145. package/src/components/InventoryView.tsx +0 -393
  146. package/src/components/KnowledgeView.tsx +0 -1128
  147. package/src/components/LanguageDropdown.tsx +0 -192
  148. package/src/components/LifoMonitorPanel.tsx +0 -196
  149. package/src/components/LifoSandboxView.tsx +0 -499
  150. package/src/components/LoadingScreen.tsx +0 -112
  151. package/src/components/LogsPageView.tsx +0 -17
  152. package/src/components/LogsView.tsx +0 -239
  153. package/src/components/MediaGalleryView.tsx +0 -431
  154. package/src/components/MediaSettingsSection.tsx +0 -893
  155. package/src/components/MessageContent.tsx +0 -815
  156. package/src/components/MiladyBar.tsx +0 -103
  157. package/src/components/MiladyBarSettings.tsx +0 -872
  158. package/src/components/OnboardingWizard.test.tsx +0 -104
  159. package/src/components/OnboardingWizard.tsx +0 -249
  160. package/src/components/PairingView.tsx +0 -109
  161. package/src/components/PermissionsSection.tsx +0 -1184
  162. package/src/components/PluginsPageView.tsx +0 -9
  163. package/src/components/PluginsView.tsx +0 -3129
  164. package/src/components/ProviderSwitcher.tsx +0 -903
  165. package/src/components/RestartBanner.tsx +0 -76
  166. package/src/components/RuntimeView.tsx +0 -460
  167. package/src/components/SaveCommandModal.tsx +0 -211
  168. package/src/components/SecretsView.tsx +0 -569
  169. package/src/components/SecurityPageView.tsx +0 -242
  170. package/src/components/SettingsView.tsx +0 -825
  171. package/src/components/ShellOverlays.tsx +0 -41
  172. package/src/components/ShortcutsOverlay.tsx +0 -155
  173. package/src/components/SkillsView.tsx +0 -1435
  174. package/src/components/StartupFailureView.tsx +0 -63
  175. package/src/components/StreamView.tsx +0 -481
  176. package/src/components/StripeEmbeddedCheckout.tsx +0 -155
  177. package/src/components/SubscriptionStatus.tsx +0 -640
  178. package/src/components/SystemWarningBanner.tsx +0 -71
  179. package/src/components/ThemeToggle.tsx +0 -103
  180. package/src/components/TrajectoriesView.tsx +0 -526
  181. package/src/components/TrajectoryDetailView.tsx +0 -426
  182. package/src/components/TriggersView.tsx +0 -1
  183. package/src/components/VectorBrowserView.tsx +0 -1633
  184. package/src/components/VoiceConfigView.tsx +0 -674
  185. package/src/components/VrmStage.test.ts +0 -176
  186. package/src/components/VrmStage.tsx +0 -309
  187. package/src/components/WhatsAppQrOverlay.tsx +0 -230
  188. package/src/components/__tests__/chainConfig.test.ts +0 -220
  189. package/src/components/apps/AppDetailPane.tsx +0 -242
  190. package/src/components/apps/AppsCatalogGrid.tsx +0 -137
  191. package/src/components/apps/extensions/registry.ts +0 -13
  192. package/src/components/apps/extensions/types.ts +0 -9
  193. package/src/components/apps/helpers.ts +0 -43
  194. package/src/components/avatar/VrmAnimationLoader.test.ts +0 -164
  195. package/src/components/avatar/VrmAnimationLoader.ts +0 -151
  196. package/src/components/avatar/VrmBlinkController.ts +0 -118
  197. package/src/components/avatar/VrmCameraManager.ts +0 -407
  198. package/src/components/avatar/VrmEngine.ts +0 -2767
  199. package/src/components/avatar/VrmFootShadow.ts +0 -96
  200. package/src/components/avatar/VrmViewer.tsx +0 -421
  201. package/src/components/avatar/__tests__/VrmCameraManager.test.ts +0 -168
  202. package/src/components/avatar/__tests__/VrmEngine.test.ts +0 -1574
  203. package/src/components/avatar/mixamoVRMRigMap.ts +0 -62
  204. package/src/components/avatar/retargetMixamoFbxToVrm.ts +0 -144
  205. package/src/components/avatar/retargetMixamoGltfToVrm.ts +0 -119
  206. package/src/components/chainConfig.ts +0 -400
  207. package/src/components/companion/CompanionHeader.tsx +0 -50
  208. package/src/components/companion/CompanionSceneHost.tsx +0 -5
  209. package/src/components/companion/VrmStage.tsx +0 -2
  210. package/src/components/companion/__tests__/walletUtils.test.ts +0 -742
  211. package/src/components/companion/index.ts +0 -18
  212. package/src/components/companion/walletUtils.ts +0 -290
  213. package/src/components/companion-shell-styles.test.ts +0 -142
  214. package/src/components/companion-shell-styles.ts +0 -270
  215. package/src/components/confirm-delete-control.tsx +0 -69
  216. package/src/components/conversations/ConversationListItem.tsx +0 -185
  217. package/src/components/conversations/conversation-utils.ts +0 -151
  218. package/src/components/format.ts +0 -131
  219. package/src/components/inventory/CopyableAddress.tsx +0 -41
  220. package/src/components/inventory/InventoryToolbar.tsx +0 -142
  221. package/src/components/inventory/NftGrid.tsx +0 -99
  222. package/src/components/inventory/TokenLogo.tsx +0 -71
  223. package/src/components/inventory/TokensTable.tsx +0 -216
  224. package/src/components/inventory/constants.ts +0 -170
  225. package/src/components/inventory/index.ts +0 -29
  226. package/src/components/inventory/media-url.test.ts +0 -38
  227. package/src/components/inventory/media-url.ts +0 -36
  228. package/src/components/inventory/useInventoryData.ts +0 -460
  229. package/src/components/knowledge-upload-image.ts +0 -215
  230. package/src/components/labels.ts +0 -46
  231. package/src/components/milady-bar/CloudCreditsChip.tsx +0 -61
  232. package/src/components/milady-bar/ProviderDropdown.tsx +0 -166
  233. package/src/components/milady-bar/WalletSummary.tsx +0 -61
  234. package/src/components/milady-bar/index.ts +0 -3
  235. package/src/components/onboarding/ActivateStep.tsx +0 -34
  236. package/src/components/onboarding/ConnectionStep.tsx +0 -1590
  237. package/src/components/onboarding/IdentityStep.tsx +0 -251
  238. package/src/components/onboarding/OnboardingPanel.tsx +0 -39
  239. package/src/components/onboarding/OnboardingStepNav.tsx +0 -41
  240. package/src/components/onboarding/PermissionsStep.tsx +0 -20
  241. package/src/components/onboarding/RpcStep.tsx +0 -402
  242. package/src/components/permissions/PermissionIcon.tsx +0 -25
  243. package/src/components/permissions/StreamingPermissions.tsx +0 -413
  244. package/src/components/plugins/showcase-data.ts +0 -481
  245. package/src/components/shared/ShellHeaderControls.tsx +0 -198
  246. package/src/components/shared-companion-scene-context.ts +0 -15
  247. package/src/components/skeletons.tsx +0 -88
  248. package/src/components/stream/ActivityFeed.tsx +0 -113
  249. package/src/components/stream/AvatarPip.tsx +0 -10
  250. package/src/components/stream/ChatContent.tsx +0 -126
  251. package/src/components/stream/ChatTicker.tsx +0 -55
  252. package/src/components/stream/IdleContent.tsx +0 -73
  253. package/src/components/stream/StatusBar.tsx +0 -463
  254. package/src/components/stream/StreamSettings.tsx +0 -506
  255. package/src/components/stream/StreamTerminal.tsx +0 -94
  256. package/src/components/stream/StreamVoiceConfig.tsx +0 -160
  257. package/src/components/stream/helpers.ts +0 -134
  258. package/src/components/stream/overlays/OverlayLayer.tsx +0 -75
  259. package/src/components/stream/overlays/built-in/ActionTickerWidget.tsx +0 -64
  260. package/src/components/stream/overlays/built-in/AlertPopupWidget.tsx +0 -87
  261. package/src/components/stream/overlays/built-in/BrandingWidget.tsx +0 -51
  262. package/src/components/stream/overlays/built-in/CustomHtmlWidget.tsx +0 -105
  263. package/src/components/stream/overlays/built-in/PeonGlassWidget.tsx +0 -265
  264. package/src/components/stream/overlays/built-in/PeonHudWidget.tsx +0 -247
  265. package/src/components/stream/overlays/built-in/PeonSakuraWidget.tsx +0 -278
  266. package/src/components/stream/overlays/built-in/ThoughtBubbleWidget.tsx +0 -77
  267. package/src/components/stream/overlays/built-in/ViewerCountWidget.tsx +0 -46
  268. package/src/components/stream/overlays/built-in/index.ts +0 -13
  269. package/src/components/stream/overlays/registry.ts +0 -22
  270. package/src/components/stream/overlays/types.ts +0 -90
  271. package/src/components/stream/overlays/useOverlayLayout.ts +0 -218
  272. package/src/components/trajectory-format.ts +0 -50
  273. package/src/components/ui-badges.tsx +0 -109
  274. package/src/components/ui-switch.tsx +0 -57
  275. package/src/components/vector-browser-three.ts +0 -29
  276. package/src/config/branding.ts +0 -67
  277. package/src/config/config-catalog.ts +0 -1092
  278. package/src/config/config-field.tsx +0 -1924
  279. package/src/config/config-renderer.tsx +0 -734
  280. package/src/config/index.ts +0 -12
  281. package/src/config/ui-renderer.tsx +0 -1751
  282. package/src/config/ui-spec.ts +0 -256
  283. package/src/events/index.ts +0 -96
  284. package/src/hooks/index.ts +0 -14
  285. package/src/hooks/useBugReport.tsx +0 -43
  286. package/src/hooks/useCanvasWindow.ts +0 -372
  287. package/src/hooks/useChatAvatarVoice.ts +0 -111
  288. package/src/hooks/useClickOutside.ts +0 -31
  289. package/src/hooks/useContextMenu.ts +0 -127
  290. package/src/hooks/useKeyboardShortcuts.ts +0 -86
  291. package/src/hooks/useLifoSync.ts +0 -143
  292. package/src/hooks/useMemoryMonitor.ts +0 -334
  293. package/src/hooks/useMiladyBar.ts +0 -594
  294. package/src/hooks/useRenderGuard.ts +0 -43
  295. package/src/hooks/useRetakeCapture.ts +0 -68
  296. package/src/hooks/useStreamPopoutNavigation.ts +0 -27
  297. package/src/hooks/useTimeout.ts +0 -37
  298. package/src/hooks/useVoiceChat.ts +0 -1442
  299. package/src/hooks/useWhatsAppPairing.ts +0 -123
  300. package/src/i18n/index.ts +0 -76
  301. package/src/i18n/locales/en.json +0 -1195
  302. package/src/i18n/locales/ko.json +0 -1195
  303. package/src/i18n/locales/pt.json +0 -1195
  304. package/src/i18n/locales/zh-CN.json +0 -1195
  305. package/src/i18n/messages.ts +0 -21
  306. package/src/index.ts +0 -6
  307. package/src/navigation/index.ts +0 -286
  308. package/src/navigation.test.ts +0 -189
  309. package/src/onboarding-config.test.ts +0 -104
  310. package/src/onboarding-config.ts +0 -122
  311. package/src/platform/browser-launch.test.ts +0 -94
  312. package/src/platform/browser-launch.ts +0 -149
  313. package/src/platform/index.ts +0 -58
  314. package/src/platform/init.ts +0 -238
  315. package/src/platform/lifo.ts +0 -225
  316. package/src/providers/index.ts +0 -108
  317. package/src/shell-params.test.ts +0 -48
  318. package/src/shell-params.ts +0 -36
  319. package/src/state/AppContext.tsx +0 -6415
  320. package/src/state/index.ts +0 -6
  321. package/src/state/internal.ts +0 -91
  322. package/src/state/onboarding-resume.test.ts +0 -135
  323. package/src/state/onboarding-resume.ts +0 -263
  324. package/src/state/parsers.test.ts +0 -124
  325. package/src/state/parsers.ts +0 -309
  326. package/src/state/persistence.ts +0 -379
  327. package/src/state/shell-routing.ts +0 -39
  328. package/src/state/types.ts +0 -724
  329. package/src/state/ui-preferences.ts +0 -3
  330. package/src/state/useApp.ts +0 -23
  331. package/src/state/vrm.ts +0 -108
  332. package/src/styles/anime.css +0 -6324
  333. package/src/styles/base.css +0 -213
  334. package/src/styles/onboarding-game.css +0 -976
  335. package/src/styles/styles.css +0 -2087
  336. package/src/styles/xterm.css +0 -241
  337. package/src/types/index.ts +0 -715
  338. package/src/types/react-test-renderer.d.ts +0 -45
  339. package/src/utils/asset-url.ts +0 -110
  340. package/src/utils/assistant-text.ts +0 -172
  341. package/src/utils/clipboard.ts +0 -41
  342. package/src/utils/desktop-dialogs.ts +0 -80
  343. package/src/utils/eliza-globals.ts +0 -44
  344. package/src/utils/index.ts +0 -7
  345. package/src/utils/number-parsing.ts +0 -125
  346. package/src/utils/openExternalUrl.ts +0 -20
  347. package/src/utils/spoken-text.ts +0 -65
  348. package/src/utils/streaming-text.ts +0 -120
  349. package/src/voice/index.ts +0 -1
  350. package/src/voice/types.ts +0 -197
  351. package/src/wallet-rpc.ts +0 -176
  352. package/test/app/AppContext.pty-sessions.test.tsx +0 -143
  353. package/test/app/MessageContent.test.tsx +0 -366
  354. package/test/app/PermissionsOnboarding.test.tsx +0 -358
  355. package/test/app/PermissionsSection.test.tsx +0 -575
  356. package/test/app/advanced-trajectory-fine-tuning.e2e.test.ts +0 -396
  357. package/test/app/agent-activity-box.test.tsx +0 -132
  358. package/test/app/agent-transfer-lock.test.ts +0 -279
  359. package/test/app/api-client-electrobun-fallback.test.ts +0 -139
  360. package/test/app/api-client-electron-fallback.test.ts +0 -139
  361. package/test/app/api-client-timeout.test.ts +0 -75
  362. package/test/app/api-client-ws.test.ts +0 -98
  363. package/test/app/api-client.ws-max-reconnect.test.ts +0 -139
  364. package/test/app/api-client.ws-reconnect.test.ts +0 -157
  365. package/test/app/app-context-autonomy-events.test.ts +0 -559
  366. package/test/app/apps-page-view.test.ts +0 -114
  367. package/test/app/apps-view.test.ts +0 -768
  368. package/test/app/autonomous-workflows.e2e.test.ts +0 -765
  369. package/test/app/autonomy-events.test.ts +0 -150
  370. package/test/app/avatar-selector.test.tsx +0 -52
  371. package/test/app/bsc-trade-panel.test.tsx +0 -134
  372. package/test/app/bug-report-modal.test.tsx +0 -353
  373. package/test/app/character-action-bar-visibility.test.ts +0 -70
  374. package/test/app/character-customization.e2e.test.ts +0 -1384
  375. package/test/app/character-save-journey.test.ts +0 -1245
  376. package/test/app/chat-advanced-features.e2e.test.ts +0 -706
  377. package/test/app/chat-composer.test.tsx +0 -181
  378. package/test/app/chat-journey.test.ts +0 -1075
  379. package/test/app/chat-language-header.test.ts +0 -64
  380. package/test/app/chat-message.test.tsx +0 -222
  381. package/test/app/chat-modal-view.test.tsx +0 -191
  382. package/test/app/chat-routine-filter.test.ts +0 -96
  383. package/test/app/chat-send-lock.test.ts +0 -1465
  384. package/test/app/chat-stream-api-client.test.tsx +0 -390
  385. package/test/app/chat-view-game-modal.test.tsx +0 -661
  386. package/test/app/chat-view.test.tsx +0 -877
  387. package/test/app/cloud-api.e2e.test.ts +0 -258
  388. package/test/app/cloud-login-flow.e2e.test.ts +0 -494
  389. package/test/app/cloud-login-lock.test.ts +0 -416
  390. package/test/app/command-palette.test.tsx +0 -184
  391. package/test/app/command-registry.test.ts +0 -75
  392. package/test/app/companion-greeting-wave.test.tsx +0 -431
  393. package/test/app/companion-scene-host.test.tsx +0 -85
  394. package/test/app/companion-stale-conversation.test.tsx +0 -447
  395. package/test/app/companion-view.test.tsx +0 -690
  396. package/test/app/confirm-delete-control.test.ts +0 -79
  397. package/test/app/confirm-modal.test.tsx +0 -219
  398. package/test/app/connection-mode-persistence.test.ts +0 -411
  399. package/test/app/connectors-ui.e2e.test.ts +0 -508
  400. package/test/app/conversations-sidebar-game-modal.test.tsx +0 -265
  401. package/test/app/conversations-sidebar.test.tsx +0 -185
  402. package/test/app/custom-actions-smoke.test.ts +0 -387
  403. package/test/app/custom-avatar-api-client.test.ts +0 -207
  404. package/test/app/desktop-utils.test.ts +0 -145
  405. package/test/app/electrobun-rpc-bridge.test.ts +0 -83
  406. package/test/app/events.test.ts +0 -88
  407. package/test/app/export-import-flows.e2e.test.ts +0 -700
  408. package/test/app/fine-tuning-view.test.ts +0 -471
  409. package/test/app/game-view-auth-session.test.tsx +0 -187
  410. package/test/app/game-view.test.ts +0 -444
  411. package/test/app/global-emote-overlay.test.tsx +0 -106
  412. package/test/app/header-status.test.tsx +0 -149
  413. package/test/app/i18n.test.ts +0 -152
  414. package/test/app/inventory-bsc-view.test.ts +0 -940
  415. package/test/app/knowledge-ui.e2e.test.ts +0 -762
  416. package/test/app/knowledge-upload-helpers.test.ts +0 -124
  417. package/test/app/lifecycle-lock.test.ts +0 -267
  418. package/test/app/lifo-popout-utils.test.ts +0 -208
  419. package/test/app/lifo-safe-endpoint.test.ts +0 -34
  420. package/test/app/loading-screen.test.tsx +0 -45
  421. package/test/app/memory-monitor.test.ts +0 -331
  422. package/test/app/milady-bar-regression.test.tsx +0 -519
  423. package/test/app/milady-bar-settings.test.tsx +0 -1056
  424. package/test/app/milady-bar.test.tsx +0 -583
  425. package/test/app/navigation.test.tsx +0 -22
  426. package/test/app/onboarding-e2e-journey.test.ts +0 -1391
  427. package/test/app/onboarding-finish-lock.test.ts +0 -676
  428. package/test/app/onboarding-language.test.tsx +0 -160
  429. package/test/app/onboarding-steps.test.tsx +0 -376
  430. package/test/app/open-external-url.test.ts +0 -65
  431. package/test/app/pages-navigation-smoke.e2e.test.ts +0 -646
  432. package/test/app/pairing-lock.test.ts +0 -260
  433. package/test/app/pairing-view.test.tsx +0 -74
  434. package/test/app/permissions-section.test.ts +0 -432
  435. package/test/app/plugin-bridge.test.ts +0 -109
  436. package/test/app/plugins-ui.e2e.test.ts +0 -605
  437. package/test/app/plugins-view-game-modal.test.tsx +0 -686
  438. package/test/app/plugins-view-toggle-restart.test.ts +0 -129
  439. package/test/app/provider-dropdown-default.test.tsx +0 -300
  440. package/test/app/restart-banner.test.tsx +0 -205
  441. package/test/app/retake-capture.test.ts +0 -84
  442. package/test/app/sandbox-api-client.test.ts +0 -108
  443. package/test/app/save-command-modal.test.tsx +0 -109
  444. package/test/app/secrets-view.test.tsx +0 -92
  445. package/test/app/settings-control-styles.test.tsx +0 -142
  446. package/test/app/settings-reset.e2e.test.ts +0 -726
  447. package/test/app/settings-sections.e2e.test.ts +0 -614
  448. package/test/app/shared-format.test.ts +0 -44
  449. package/test/app/shared-switch.test.ts +0 -69
  450. package/test/app/shell-mode-switching.e2e.test.ts +0 -841
  451. package/test/app/shell-mode-tab-memory.test.tsx +0 -58
  452. package/test/app/shell-overlays.test.tsx +0 -50
  453. package/test/app/shortcuts-overlay.test.tsx +0 -111
  454. package/test/app/sse-interruption.test.ts +0 -122
  455. package/test/app/startup-asset-missing.e2e.test.ts +0 -126
  456. package/test/app/startup-backend-missing.e2e.test.ts +0 -126
  457. package/test/app/startup-chat.e2e.test.ts +0 -323
  458. package/test/app/startup-conversation-restore.test.tsx +0 -381
  459. package/test/app/startup-failure-view.test.tsx +0 -103
  460. package/test/app/startup-onboarding.e2e.test.ts +0 -712
  461. package/test/app/startup-timeout.test.tsx +0 -80
  462. package/test/app/startup-token-401.e2e.test.ts +0 -103
  463. package/test/app/stream-helpers.test.ts +0 -46
  464. package/test/app/stream-popout-navigation.test.tsx +0 -41
  465. package/test/app/stream-status-bar.test.tsx +0 -89
  466. package/test/app/theme-toggle.test.tsx +0 -40
  467. package/test/app/training-api-client.test.ts +0 -128
  468. package/test/app/trajectories-view.test.tsx +0 -220
  469. package/test/app/triggers-api-client.test.ts +0 -77
  470. package/test/app/triggers-navigation.test.ts +0 -113
  471. package/test/app/triggers-view.e2e.test.ts +0 -675
  472. package/test/app/update-channel-lock.test.ts +0 -259
  473. package/test/app/vector-browser.async-cleanup.test.tsx +0 -367
  474. package/test/app/vector-browser.e2e.test.ts +0 -653
  475. package/test/app/vrm-stage.test.tsx +0 -351
  476. package/test/app/vrm-viewer.test.tsx +0 -298
  477. package/test/app/wallet-api-save-lock.test.ts +0 -299
  478. package/test/app/wallet-hooks.test.ts +0 -405
  479. package/test/app/wallet-ui-flows.e2e.test.ts +0 -556
  480. package/test/avatar/asset-url.test.ts +0 -90
  481. package/test/avatar/avatar-selector.test.ts +0 -173
  482. package/test/avatar/mixamo-vrm-rig-map.test.ts +0 -111
  483. package/test/avatar/voice-chat-streaming-text.test.ts +0 -96
  484. package/test/avatar/voice-chat.test.ts +0 -391
  485. package/test/browser-extension/README.md +0 -138
  486. package/test/browser-extension/test-harness.ts +0 -499
  487. package/test/capacitor-plugins.e2e.test.ts +0 -168
  488. package/test/test-types.ts +0 -5
  489. package/test/ui/command-palette-commands.test.ts +0 -57
  490. package/test/ui/ui-renderer.test.ts +0 -39
  491. package/test/utils/assistant-text.test.ts +0 -68
  492. package/test/utils/eliza-globals.test.ts +0 -59
  493. package/test/utils/package-exports.test.ts +0 -70
  494. package/test/utils/streaming-text.test.ts +0 -89
  495. package/tsconfig.build.json +0 -19
  496. package/tsconfig.json +0 -20
  497. package/tsconfig.typecheck.json +0 -12
  498. /package/{dist/App.d.ts → App.d.ts} +0 -0
  499. /package/{dist/actions → actions}/character.d.ts +0 -0
  500. /package/{dist/actions → actions}/character.d.ts.map +0 -0
  501. /package/{dist/actions → actions}/character.js +0 -0
  502. /package/{dist/actions → actions}/chat-helpers.d.ts +0 -0
  503. /package/{dist/actions → actions}/chat-helpers.d.ts.map +0 -0
  504. /package/{dist/actions → actions}/chat-helpers.js +0 -0
  505. /package/{dist/actions → actions}/cloud.d.ts +0 -0
  506. /package/{dist/actions → actions}/cloud.d.ts.map +0 -0
  507. /package/{dist/actions → actions}/cloud.js +0 -0
  508. /package/{dist/actions → actions}/index.d.ts +0 -0
  509. /package/{dist/actions → actions}/index.d.ts.map +0 -0
  510. /package/{dist/actions → actions}/index.js +0 -0
  511. /package/{dist/actions → actions}/lifecycle.d.ts +0 -0
  512. /package/{dist/actions → actions}/lifecycle.d.ts.map +0 -0
  513. /package/{dist/actions → actions}/lifecycle.js +0 -0
  514. /package/{dist/actions → actions}/onboarding.d.ts +0 -0
  515. /package/{dist/actions → actions}/onboarding.d.ts.map +0 -0
  516. /package/{dist/actions → actions}/onboarding.js +0 -0
  517. /package/{dist/actions → actions}/triggers.d.ts +0 -0
  518. /package/{dist/actions → actions}/triggers.d.ts.map +0 -0
  519. /package/{dist/actions → actions}/triggers.js +0 -0
  520. /package/{dist/api → api}/client.d.ts +0 -0
  521. /package/{dist/api → api}/client.d.ts.map +0 -0
  522. /package/{dist/api → api}/client.js +0 -0
  523. /package/{dist/api → api}/index.d.ts +0 -0
  524. /package/{dist/api → api}/index.d.ts.map +0 -0
  525. /package/{dist/api → api}/index.js +0 -0
  526. /package/{dist/autonomy → autonomy}/index.d.ts +0 -0
  527. /package/{dist/autonomy → autonomy}/index.d.ts.map +0 -0
  528. /package/{dist/autonomy → autonomy}/index.js +0 -0
  529. /package/{dist/bridge → bridge}/capacitor-bridge.d.ts +0 -0
  530. /package/{dist/bridge → bridge}/capacitor-bridge.d.ts.map +0 -0
  531. /package/{dist/bridge → bridge}/capacitor-bridge.js +0 -0
  532. /package/{dist/bridge → bridge}/electrobun-rpc.d.ts +0 -0
  533. /package/{dist/bridge → bridge}/electrobun-rpc.d.ts.map +0 -0
  534. /package/{dist/bridge → bridge}/electrobun-rpc.js +0 -0
  535. /package/{dist/bridge → bridge}/electrobun-runtime.d.ts +0 -0
  536. /package/{dist/bridge → bridge}/electrobun-runtime.d.ts.map +0 -0
  537. /package/{dist/bridge → bridge}/electrobun-runtime.js +0 -0
  538. /package/{dist/bridge → bridge}/index.d.ts +0 -0
  539. /package/{dist/bridge → bridge}/index.d.ts.map +0 -0
  540. /package/{dist/bridge → bridge}/index.js +0 -0
  541. /package/{dist/bridge → bridge}/native-plugins.d.ts +0 -0
  542. /package/{dist/bridge → bridge}/native-plugins.d.ts.map +0 -0
  543. /package/{dist/bridge → bridge}/native-plugins.js +0 -0
  544. /package/{dist/bridge → bridge}/plugin-bridge.d.ts +0 -0
  545. /package/{dist/bridge → bridge}/plugin-bridge.d.ts.map +0 -0
  546. /package/{dist/bridge → bridge}/plugin-bridge.js +0 -0
  547. /package/{dist/bridge → bridge}/storage-bridge.d.ts +0 -0
  548. /package/{dist/bridge → bridge}/storage-bridge.d.ts.map +0 -0
  549. /package/{dist/bridge → bridge}/storage-bridge.js +0 -0
  550. /package/{dist/chat → chat}/index.d.ts +0 -0
  551. /package/{dist/chat → chat}/index.d.ts.map +0 -0
  552. /package/{dist/chat → chat}/index.js +0 -0
  553. /package/{dist/coding → coding}/index.d.ts +0 -0
  554. /package/{dist/coding → coding}/index.d.ts.map +0 -0
  555. /package/{dist/coding → coding}/index.js +0 -0
  556. /package/{dist/components → components}/AdvancedPageView.d.ts +0 -0
  557. /package/{dist/components → components}/AgentActivityBox.d.ts +0 -0
  558. /package/{dist/components → components}/AgentActivityBox.d.ts.map +0 -0
  559. /package/{dist/components → components}/AgentActivityBox.js +0 -0
  560. /package/{dist/components → components}/ApiKeyConfig.d.ts +0 -0
  561. /package/{dist/components → components}/ApiKeyConfig.d.ts.map +0 -0
  562. /package/{dist/components → components}/ApiKeyConfig.js +0 -0
  563. /package/{dist/components → components}/AppsPageView.d.ts +0 -0
  564. /package/{dist/components → components}/AppsPageView.d.ts.map +0 -0
  565. /package/{dist/components → components}/AppsPageView.js +0 -0
  566. /package/{dist/components → components}/AppsView.d.ts +0 -0
  567. /package/{dist/components → components}/AppsView.d.ts.map +0 -0
  568. /package/{dist/components → components}/AppsView.js +0 -0
  569. /package/{dist/components → components}/AvatarLoader.d.ts +0 -0
  570. /package/{dist/components → components}/AvatarLoader.d.ts.map +0 -0
  571. /package/{dist/components → components}/AvatarLoader.js +0 -0
  572. /package/{dist/components → components}/AvatarSelector.d.ts +0 -0
  573. /package/{dist/components → components}/AvatarSelector.d.ts.map +0 -0
  574. /package/{dist/components → components}/AvatarSelector.js +0 -0
  575. /package/{dist/components → components}/BscTradePanel.d.ts +0 -0
  576. /package/{dist/components → components}/BscTradePanel.d.ts.map +0 -0
  577. /package/{dist/components → components}/BscTradePanel.js +0 -0
  578. /package/{dist/components → components}/BugReportModal.d.ts +0 -0
  579. /package/{dist/components → components}/BugReportModal.d.ts.map +0 -0
  580. /package/{dist/components → components}/BugReportModal.js +0 -0
  581. /package/{dist/components → components}/CharacterRoster.d.ts +0 -0
  582. /package/{dist/components → components}/CharacterRoster.d.ts.map +0 -0
  583. /package/{dist/components → components}/CharacterRoster.js +0 -0
  584. /package/{dist/components → components}/CharacterView.d.ts +0 -0
  585. /package/{dist/components → components}/ChatAvatar.d.ts +0 -0
  586. /package/{dist/components → components}/ChatAvatar.d.ts.map +0 -0
  587. /package/{dist/components → components}/ChatAvatar.js +0 -0
  588. /package/{dist/components → components}/ChatComposer.d.ts +0 -0
  589. /package/{dist/components → components}/ChatMessage.d.ts +0 -0
  590. /package/{dist/components → components}/ChatMessage.d.ts.map +0 -0
  591. /package/{dist/components → components}/ChatMessage.js +0 -0
  592. /package/{dist/components → components}/ChatModalView.d.ts +0 -0
  593. /package/{dist/components → components}/ChatModalView.d.ts.map +0 -0
  594. /package/{dist/components → components}/ChatModalView.js +0 -0
  595. /package/{dist/components → components}/ChatView.d.ts +0 -0
  596. /package/{dist/components → components}/CloudOnboarding.d.ts +0 -0
  597. /package/{dist/components → components}/CloudOnboarding.d.ts.map +0 -0
  598. /package/{dist/components → components}/CloudOnboarding.js +0 -0
  599. /package/{dist/components → components}/CloudSourceControls.d.ts +0 -0
  600. /package/{dist/components → components}/CloudSourceControls.d.ts.map +0 -0
  601. /package/{dist/components → components}/CloudSourceControls.js +0 -0
  602. /package/{dist/components → components}/CodingAgentSettingsSection.d.ts +0 -0
  603. /package/{dist/components → components}/CodingAgentSettingsSection.d.ts.map +0 -0
  604. /package/{dist/components → components}/CodingAgentSettingsSection.js +0 -0
  605. /package/{dist/components → components}/CommandPalette.d.ts +0 -0
  606. /package/{dist/components → components}/CommandPalette.d.ts.map +0 -0
  607. /package/{dist/components → components}/CommandPalette.js +0 -0
  608. /package/{dist/components → components}/CompanionSceneHost.d.ts +0 -0
  609. /package/{dist/components → components}/CompanionSceneHost.d.ts.map +0 -0
  610. /package/{dist/components → components}/CompanionSceneHost.js +0 -0
  611. /package/{dist/components → components}/CompanionShell.d.ts +0 -0
  612. /package/{dist/components → components}/CompanionShell.d.ts.map +0 -0
  613. /package/{dist/components → components}/CompanionShell.js +0 -0
  614. /package/{dist/components → components}/CompanionView.d.ts +0 -0
  615. /package/{dist/components → components}/CompanionView.d.ts.map +0 -0
  616. /package/{dist/components → components}/ConfigPageView.d.ts +0 -0
  617. /package/{dist/components → components}/ConfigPageView.d.ts.map +0 -0
  618. /package/{dist/components → components}/ConfigSaveFooter.d.ts +0 -0
  619. /package/{dist/components → components}/ConfigSaveFooter.d.ts.map +0 -0
  620. /package/{dist/components → components}/ConfigSaveFooter.js +0 -0
  621. /package/{dist/components → components}/ConfirmModal.d.ts +0 -0
  622. /package/{dist/components → components}/ConfirmModal.d.ts.map +0 -0
  623. /package/{dist/components → components}/ConfirmModal.js +0 -0
  624. /package/{dist/components → components}/ConnectionFailedBanner.d.ts +0 -0
  625. /package/{dist/components → components}/ConnectionFailedBanner.d.ts.map +0 -0
  626. /package/{dist/components → components}/ConnectionFailedBanner.js +0 -0
  627. /package/{dist/components → components}/ConnectorsPageView.d.ts +0 -0
  628. /package/{dist/components → components}/ConnectorsPageView.d.ts.map +0 -0
  629. /package/{dist/components → components}/ConnectorsPageView.js +0 -0
  630. /package/{dist/components → components}/ConversationsSidebar.d.ts +0 -0
  631. /package/{dist/components → components}/ConversationsSidebar.d.ts.map +0 -0
  632. /package/{dist/components → components}/ConversationsSidebar.js +0 -0
  633. /package/{dist/components → components}/CustomActionEditor.d.ts +0 -0
  634. /package/{dist/components → components}/CustomActionEditor.d.ts.map +0 -0
  635. /package/{dist/components → components}/CustomActionEditor.js +0 -0
  636. /package/{dist/components → components}/CustomActionsPanel.d.ts +0 -0
  637. /package/{dist/components → components}/CustomActionsPanel.d.ts.map +0 -0
  638. /package/{dist/components → components}/CustomActionsPanel.js +0 -0
  639. /package/{dist/components → components}/CustomActionsView.d.ts +0 -0
  640. /package/{dist/components → components}/CustomActionsView.d.ts.map +0 -0
  641. /package/{dist/components → components}/CustomActionsView.js +0 -0
  642. /package/{dist/components → components}/DatabasePageView.d.ts +0 -0
  643. /package/{dist/components → components}/DatabasePageView.d.ts.map +0 -0
  644. /package/{dist/components → components}/DatabasePageView.js +0 -0
  645. /package/{dist/components → components}/DatabaseView.d.ts +0 -0
  646. /package/{dist/components → components}/DatabaseView.d.ts.map +0 -0
  647. /package/{dist/components → components}/DatabaseView.js +0 -0
  648. /package/{dist/components → components}/ElizaCloudDashboard.d.ts +0 -0
  649. /package/{dist/components → components}/ElizaCloudDashboard.d.ts.map +0 -0
  650. /package/{dist/components → components}/EmotePicker.d.ts +0 -0
  651. /package/{dist/components → components}/EmotePicker.d.ts.map +0 -0
  652. /package/{dist/components → components}/EmotePicker.js +0 -0
  653. /package/{dist/components → components}/ErrorBoundary.d.ts +0 -0
  654. /package/{dist/components → components}/ErrorBoundary.d.ts.map +0 -0
  655. /package/{dist/components → components}/ErrorBoundary.js +0 -0
  656. /package/{dist/components → components}/FineTuningView.d.ts +0 -0
  657. /package/{dist/components → components}/FineTuningView.d.ts.map +0 -0
  658. /package/{dist/components → components}/FineTuningView.js +0 -0
  659. /package/{dist/components → components}/FlaminaGuide.d.ts +0 -0
  660. /package/{dist/components → components}/FlaminaGuide.d.ts.map +0 -0
  661. /package/{dist/components → components}/GameView.d.ts +0 -0
  662. /package/{dist/components → components}/GameView.d.ts.map +0 -0
  663. /package/{dist/components → components}/GameView.js +0 -0
  664. /package/{dist/components → components}/GameViewOverlay.d.ts +0 -0
  665. /package/{dist/components → components}/GameViewOverlay.d.ts.map +0 -0
  666. /package/{dist/components → components}/GameViewOverlay.js +0 -0
  667. /package/{dist/components → components}/GlobalEmoteOverlay.d.ts +0 -0
  668. /package/{dist/components → components}/GlobalEmoteOverlay.d.ts.map +0 -0
  669. /package/{dist/components → components}/GlobalEmoteOverlay.js +0 -0
  670. /package/{dist/components → components}/Header.d.ts +0 -0
  671. /package/{dist/components → components}/Header.d.ts.map +0 -0
  672. /package/{dist/components → components}/Header.js +0 -0
  673. /package/{dist/components → components}/HeartbeatsView.d.ts +0 -0
  674. /package/{dist/components → components}/HeartbeatsView.d.ts.map +0 -0
  675. /package/{dist/components → components}/HeartbeatsView.js +0 -0
  676. /package/{dist/components → components}/InventoryView.d.ts +0 -0
  677. /package/{dist/components → components}/InventoryView.d.ts.map +0 -0
  678. /package/{dist/components → components}/InventoryView.js +0 -0
  679. /package/{dist/components → components}/KnowledgeView.d.ts +0 -0
  680. /package/{dist/components → components}/KnowledgeView.d.ts.map +0 -0
  681. /package/{dist/components → components}/KnowledgeView.js +0 -0
  682. /package/{dist/components → components}/LanguageDropdown.d.ts +0 -0
  683. /package/{dist/components → components}/LanguageDropdown.d.ts.map +0 -0
  684. /package/{dist/components → components}/LanguageDropdown.js +0 -0
  685. /package/{dist/components → components}/LifoMonitorPanel.d.ts +0 -0
  686. /package/{dist/components → components}/LifoMonitorPanel.d.ts.map +0 -0
  687. /package/{dist/components → components}/LifoMonitorPanel.js +0 -0
  688. /package/{dist/components → components}/LifoSandboxView.d.ts +0 -0
  689. /package/{dist/components → components}/LifoSandboxView.d.ts.map +0 -0
  690. /package/{dist/components → components}/LifoSandboxView.js +0 -0
  691. /package/{dist/components → components}/LoadingScreen.d.ts +0 -0
  692. /package/{dist/components → components}/LoadingScreen.d.ts.map +0 -0
  693. /package/{dist/components → components}/LoadingScreen.js +0 -0
  694. /package/{dist/components → components}/LogsPageView.d.ts +0 -0
  695. /package/{dist/components → components}/LogsPageView.d.ts.map +0 -0
  696. /package/{dist/components → components}/LogsPageView.js +0 -0
  697. /package/{dist/components → components}/LogsView.d.ts +0 -0
  698. /package/{dist/components → components}/LogsView.d.ts.map +0 -0
  699. /package/{dist/components → components}/LogsView.js +0 -0
  700. /package/{dist/components → components}/MediaGalleryView.d.ts +0 -0
  701. /package/{dist/components → components}/MediaGalleryView.d.ts.map +0 -0
  702. /package/{dist/components → components}/MediaGalleryView.js +0 -0
  703. /package/{dist/components → components}/MediaSettingsSection.d.ts +0 -0
  704. /package/{dist/components → components}/MediaSettingsSection.d.ts.map +0 -0
  705. /package/{dist/components → components}/MediaSettingsSection.js +0 -0
  706. /package/{dist/components → components}/MessageContent.d.ts +0 -0
  707. /package/{dist/components → components}/MessageContent.d.ts.map +0 -0
  708. /package/{dist/components → components}/MessageContent.js +0 -0
  709. /package/{dist/components → components}/OnboardingWizard.d.ts +0 -0
  710. /package/{dist/components → components}/PairingView.d.ts +0 -0
  711. /package/{dist/components → components}/PairingView.d.ts.map +0 -0
  712. /package/{dist/components → components}/PairingView.js +0 -0
  713. /package/{dist/components → components}/PermissionsSection.d.ts +0 -0
  714. /package/{dist/components → components}/PermissionsSection.d.ts.map +0 -0
  715. /package/{dist/components → components}/PermissionsSection.js +0 -0
  716. /package/{dist/components → components}/PluginsPageView.d.ts +0 -0
  717. /package/{dist/components → components}/PluginsPageView.d.ts.map +0 -0
  718. /package/{dist/components → components}/PluginsPageView.js +0 -0
  719. /package/{dist/components → components}/PluginsView.d.ts +0 -0
  720. /package/{dist/components → components}/ProviderSwitcher.d.ts +0 -0
  721. /package/{dist/components → components}/ProviderSwitcher.d.ts.map +0 -0
  722. /package/{dist/components → components}/ProviderSwitcher.js +0 -0
  723. /package/{dist/components → components}/RestartBanner.d.ts +0 -0
  724. /package/{dist/components → components}/RestartBanner.d.ts.map +0 -0
  725. /package/{dist/components → components}/RestartBanner.js +0 -0
  726. /package/{dist/components → components}/RuntimeView.d.ts +0 -0
  727. /package/{dist/components → components}/RuntimeView.d.ts.map +0 -0
  728. /package/{dist/components → components}/RuntimeView.js +0 -0
  729. /package/{dist/components → components}/SaveCommandModal.d.ts +0 -0
  730. /package/{dist/components → components}/SaveCommandModal.d.ts.map +0 -0
  731. /package/{dist/components → components}/SaveCommandModal.js +0 -0
  732. /package/{dist/components → components}/SecretsView.d.ts +0 -0
  733. /package/{dist/components → components}/SecretsView.d.ts.map +0 -0
  734. /package/{dist/components → components}/SecretsView.js +0 -0
  735. /package/{dist/components → components}/SettingsView.d.ts +0 -0
  736. /package/{dist/components → components}/SettingsView.d.ts.map +0 -0
  737. /package/{dist/components → components}/SettingsView.js +0 -0
  738. /package/{dist/components → components}/ShellOverlays.d.ts +0 -0
  739. /package/{dist/components → components}/ShellOverlays.d.ts.map +0 -0
  740. /package/{dist/components → components}/ShellOverlays.js +0 -0
  741. /package/{dist/components → components}/ShortcutsOverlay.d.ts +0 -0
  742. /package/{dist/components → components}/ShortcutsOverlay.d.ts.map +0 -0
  743. /package/{dist/components → components}/ShortcutsOverlay.js +0 -0
  744. /package/{dist/components → components}/SkillsView.d.ts +0 -0
  745. /package/{dist/components → components}/SkillsView.d.ts.map +0 -0
  746. /package/{dist/components → components}/SkillsView.js +0 -0
  747. /package/{dist/components → components}/StartupFailureView.d.ts +0 -0
  748. /package/{dist/components → components}/StartupFailureView.d.ts.map +0 -0
  749. /package/{dist/components → components}/StartupFailureView.js +0 -0
  750. /package/{dist/components → components}/StreamView.d.ts +0 -0
  751. /package/{dist/components → components}/StreamView.d.ts.map +0 -0
  752. /package/{dist/components → components}/StreamView.js +0 -0
  753. /package/{dist/components → components}/StripeEmbeddedCheckout.d.ts +0 -0
  754. /package/{dist/components → components}/StripeEmbeddedCheckout.d.ts.map +0 -0
  755. /package/{dist/components → components}/StripeEmbeddedCheckout.js +0 -0
  756. /package/{dist/components → components}/SubscriptionStatus.d.ts +0 -0
  757. /package/{dist/components → components}/SubscriptionStatus.d.ts.map +0 -0
  758. /package/{dist/components → components}/SubscriptionStatus.js +0 -0
  759. /package/{dist/components → components}/SystemWarningBanner.d.ts +0 -0
  760. /package/{dist/components → components}/SystemWarningBanner.d.ts.map +0 -0
  761. /package/{dist/components → components}/SystemWarningBanner.js +0 -0
  762. /package/{dist/components → components}/ThemeToggle.d.ts +0 -0
  763. /package/{dist/components → components}/ThemeToggle.d.ts.map +0 -0
  764. /package/{dist/components → components}/ThemeToggle.js +0 -0
  765. /package/{dist/components → components}/TrajectoriesView.d.ts +0 -0
  766. /package/{dist/components → components}/TrajectoriesView.d.ts.map +0 -0
  767. /package/{dist/components → components}/TrajectoriesView.js +0 -0
  768. /package/{dist/components → components}/TrajectoryDetailView.d.ts +0 -0
  769. /package/{dist/components → components}/TrajectoryDetailView.d.ts.map +0 -0
  770. /package/{dist/components → components}/TrajectoryDetailView.js +0 -0
  771. /package/{dist/components → components}/TriggersView.d.ts +0 -0
  772. /package/{dist/components → components}/TriggersView.d.ts.map +0 -0
  773. /package/{dist/components → components}/TriggersView.js +0 -0
  774. /package/{dist/components → components}/VectorBrowserView.d.ts +0 -0
  775. /package/{dist/components → components}/VectorBrowserView.d.ts.map +0 -0
  776. /package/{dist/components → components}/VectorBrowserView.js +0 -0
  777. /package/{dist/components → components}/VoiceConfigView.d.ts +0 -0
  778. /package/{dist/components → components}/VoiceConfigView.d.ts.map +0 -0
  779. /package/{dist/components → components}/VoiceConfigView.js +0 -0
  780. /package/{dist/components → components}/VrmStage.d.ts +0 -0
  781. /package/{dist/components → components}/VrmStage.d.ts.map +0 -0
  782. /package/{dist/components → components}/VrmStage.js +0 -0
  783. /package/{dist/components → components}/WhatsAppQrOverlay.d.ts +0 -0
  784. /package/{dist/components → components}/WhatsAppQrOverlay.d.ts.map +0 -0
  785. /package/{dist/components → components}/WhatsAppQrOverlay.js +0 -0
  786. /package/{dist/components → components}/apps/AppDetailPane.d.ts +0 -0
  787. /package/{dist/components → components}/apps/AppDetailPane.d.ts.map +0 -0
  788. /package/{dist/components → components}/apps/AppDetailPane.js +0 -0
  789. /package/{dist/components → components}/apps/AppsCatalogGrid.d.ts +0 -0
  790. /package/{dist/components → components}/apps/AppsCatalogGrid.d.ts.map +0 -0
  791. /package/{dist/components → components}/apps/AppsCatalogGrid.js +0 -0
  792. /package/{dist/components → components}/apps/extensions/registry.d.ts +0 -0
  793. /package/{dist/components → components}/apps/extensions/registry.d.ts.map +0 -0
  794. /package/{dist/components → components}/apps/extensions/registry.js +0 -0
  795. /package/{dist/components → components}/apps/extensions/types.d.ts +0 -0
  796. /package/{dist/components → components}/apps/extensions/types.d.ts.map +0 -0
  797. /package/{dist/components → components}/apps/extensions/types.js +0 -0
  798. /package/{dist/components → components}/apps/helpers.d.ts +0 -0
  799. /package/{dist/components → components}/apps/helpers.d.ts.map +0 -0
  800. /package/{dist/components → components}/apps/helpers.js +0 -0
  801. /package/{dist/components → components}/avatar/VrmAnimationLoader.d.ts +0 -0
  802. /package/{dist/components → components}/avatar/VrmAnimationLoader.d.ts.map +0 -0
  803. /package/{dist/components → components}/avatar/VrmAnimationLoader.js +0 -0
  804. /package/{dist/components → components}/avatar/VrmBlinkController.d.ts +0 -0
  805. /package/{dist/components → components}/avatar/VrmBlinkController.d.ts.map +0 -0
  806. /package/{dist/components → components}/avatar/VrmBlinkController.js +0 -0
  807. /package/{dist/components → components}/avatar/VrmCameraManager.d.ts +0 -0
  808. /package/{dist/components → components}/avatar/VrmCameraManager.d.ts.map +0 -0
  809. /package/{dist/components → components}/avatar/VrmCameraManager.js +0 -0
  810. /package/{dist/components → components}/avatar/VrmFootShadow.d.ts +0 -0
  811. /package/{dist/components → components}/avatar/VrmFootShadow.d.ts.map +0 -0
  812. /package/{dist/components → components}/avatar/VrmFootShadow.js +0 -0
  813. /package/{dist/components → components}/avatar/mixamoVRMRigMap.d.ts +0 -0
  814. /package/{dist/components → components}/avatar/mixamoVRMRigMap.d.ts.map +0 -0
  815. /package/{dist/components → components}/avatar/mixamoVRMRigMap.js +0 -0
  816. /package/{dist/components → components}/avatar/retargetMixamoFbxToVrm.d.ts +0 -0
  817. /package/{dist/components → components}/avatar/retargetMixamoFbxToVrm.d.ts.map +0 -0
  818. /package/{dist/components → components}/avatar/retargetMixamoFbxToVrm.js +0 -0
  819. /package/{dist/components → components}/avatar/retargetMixamoGltfToVrm.d.ts +0 -0
  820. /package/{dist/components → components}/avatar/retargetMixamoGltfToVrm.d.ts.map +0 -0
  821. /package/{dist/components → components}/avatar/retargetMixamoGltfToVrm.js +0 -0
  822. /package/{dist/components → components}/chainConfig.d.ts +0 -0
  823. /package/{dist/components → components}/chainConfig.d.ts.map +0 -0
  824. /package/{dist/components → components}/chainConfig.js +0 -0
  825. /package/{dist/components → components}/companion/CompanionHeader.d.ts +0 -0
  826. /package/{dist/components → components}/companion/CompanionHeader.d.ts.map +0 -0
  827. /package/{dist/components → components}/companion/CompanionHeader.js +0 -0
  828. /package/{dist/components → components}/companion/CompanionSceneHost.d.ts +0 -0
  829. /package/{dist/components → components}/companion/CompanionSceneHost.d.ts.map +0 -0
  830. /package/{dist/components → components}/companion/CompanionSceneHost.js +0 -0
  831. /package/{dist/components → components}/companion/VrmStage.d.ts +0 -0
  832. /package/{dist/components → components}/companion/VrmStage.d.ts.map +0 -0
  833. /package/{dist/components → components}/companion/VrmStage.js +0 -0
  834. /package/{dist/components → components}/companion/index.d.ts +0 -0
  835. /package/{dist/components → components}/companion/index.d.ts.map +0 -0
  836. /package/{dist/components → components}/companion/index.js +0 -0
  837. /package/{dist/components → components}/companion/walletUtils.d.ts +0 -0
  838. /package/{dist/components → components}/companion/walletUtils.d.ts.map +0 -0
  839. /package/{dist/components → components}/companion/walletUtils.js +0 -0
  840. /package/{dist/components → components}/companion-shell-styles.d.ts +0 -0
  841. /package/{dist/components → components}/companion-shell-styles.d.ts.map +0 -0
  842. /package/{dist/components → components}/companion-shell-styles.js +0 -0
  843. /package/{dist/components → components}/confirm-delete-control.d.ts +0 -0
  844. /package/{dist/components → components}/confirm-delete-control.d.ts.map +0 -0
  845. /package/{dist/components → components}/confirm-delete-control.js +0 -0
  846. /package/{dist/components → components}/conversations/ConversationListItem.d.ts +0 -0
  847. /package/{dist/components → components}/conversations/ConversationListItem.d.ts.map +0 -0
  848. /package/{dist/components → components}/conversations/ConversationListItem.js +0 -0
  849. /package/{dist/components → components}/conversations/conversation-utils.d.ts +0 -0
  850. /package/{dist/components → components}/conversations/conversation-utils.d.ts.map +0 -0
  851. /package/{dist/components → components}/conversations/conversation-utils.js +0 -0
  852. /package/{dist/components → components}/format.d.ts +0 -0
  853. /package/{dist/components → components}/format.d.ts.map +0 -0
  854. /package/{dist/components → components}/format.js +0 -0
  855. /package/{dist/components → components}/inventory/CopyableAddress.d.ts +0 -0
  856. /package/{dist/components → components}/inventory/CopyableAddress.d.ts.map +0 -0
  857. /package/{dist/components → components}/inventory/CopyableAddress.js +0 -0
  858. /package/{dist/components → components}/inventory/InventoryToolbar.d.ts +0 -0
  859. /package/{dist/components → components}/inventory/InventoryToolbar.d.ts.map +0 -0
  860. /package/{dist/components → components}/inventory/InventoryToolbar.js +0 -0
  861. /package/{dist/components → components}/inventory/NftGrid.d.ts +0 -0
  862. /package/{dist/components → components}/inventory/NftGrid.d.ts.map +0 -0
  863. /package/{dist/components → components}/inventory/NftGrid.js +0 -0
  864. /package/{dist/components → components}/inventory/TokenLogo.d.ts +0 -0
  865. /package/{dist/components → components}/inventory/TokenLogo.d.ts.map +0 -0
  866. /package/{dist/components → components}/inventory/TokenLogo.js +0 -0
  867. /package/{dist/components → components}/inventory/TokensTable.d.ts +0 -0
  868. /package/{dist/components → components}/inventory/TokensTable.d.ts.map +0 -0
  869. /package/{dist/components → components}/inventory/TokensTable.js +0 -0
  870. /package/{dist/components → components}/inventory/constants.d.ts +0 -0
  871. /package/{dist/components → components}/inventory/constants.d.ts.map +0 -0
  872. /package/{dist/components → components}/inventory/constants.js +0 -0
  873. /package/{dist/components → components}/inventory/index.d.ts +0 -0
  874. /package/{dist/components → components}/inventory/index.d.ts.map +0 -0
  875. /package/{dist/components → components}/inventory/index.js +0 -0
  876. /package/{dist/components → components}/inventory/media-url.d.ts +0 -0
  877. /package/{dist/components → components}/inventory/media-url.d.ts.map +0 -0
  878. /package/{dist/components → components}/inventory/media-url.js +0 -0
  879. /package/{dist/components → components}/inventory/useInventoryData.d.ts +0 -0
  880. /package/{dist/components → components}/inventory/useInventoryData.d.ts.map +0 -0
  881. /package/{dist/components → components}/inventory/useInventoryData.js +0 -0
  882. /package/{dist/components → components}/knowledge-upload-image.d.ts +0 -0
  883. /package/{dist/components → components}/knowledge-upload-image.d.ts.map +0 -0
  884. /package/{dist/components → components}/knowledge-upload-image.js +0 -0
  885. /package/{dist/components → components}/labels.d.ts +0 -0
  886. /package/{dist/components → components}/labels.d.ts.map +0 -0
  887. /package/{dist/components → components}/labels.js +0 -0
  888. /package/{dist/components → components}/onboarding/ActivateStep.d.ts +0 -0
  889. /package/{dist/components → components}/onboarding/ActivateStep.d.ts.map +0 -0
  890. /package/{dist/components → components}/onboarding/ActivateStep.js +0 -0
  891. /package/{dist/components → components}/onboarding/ConnectionStep.d.ts +0 -0
  892. /package/{dist/components → components}/onboarding/IdentityStep.d.ts +0 -0
  893. /package/{dist/components → components}/onboarding/IdentityStep.d.ts.map +0 -0
  894. /package/{dist/components → components}/onboarding/IdentityStep.js +0 -0
  895. /package/{dist/components → components}/onboarding/OnboardingPanel.d.ts +0 -0
  896. /package/{dist/components → components}/onboarding/OnboardingPanel.d.ts.map +0 -0
  897. /package/{dist/components → components}/onboarding/OnboardingPanel.js +0 -0
  898. /package/{dist/components → components}/onboarding/OnboardingStepNav.d.ts +0 -0
  899. /package/{dist/components → components}/onboarding/OnboardingStepNav.d.ts.map +0 -0
  900. /package/{dist/components → components}/onboarding/OnboardingStepNav.js +0 -0
  901. /package/{dist/components → components}/onboarding/PermissionsStep.d.ts +0 -0
  902. /package/{dist/components → components}/onboarding/PermissionsStep.d.ts.map +0 -0
  903. /package/{dist/components → components}/onboarding/PermissionsStep.js +0 -0
  904. /package/{dist/components → components}/onboarding/RpcStep.d.ts +0 -0
  905. /package/{dist/components → components}/onboarding/RpcStep.d.ts.map +0 -0
  906. /package/{dist/components → components}/onboarding/RpcStep.js +0 -0
  907. /package/{dist/components → components}/permissions/PermissionIcon.d.ts +0 -0
  908. /package/{dist/components → components}/permissions/PermissionIcon.d.ts.map +0 -0
  909. /package/{dist/components → components}/permissions/PermissionIcon.js +0 -0
  910. /package/{dist/components → components}/permissions/StreamingPermissions.d.ts +0 -0
  911. /package/{dist/components → components}/plugins/showcase-data.d.ts +0 -0
  912. /package/{dist/components → components}/plugins/showcase-data.d.ts.map +0 -0
  913. /package/{dist/components → components}/plugins/showcase-data.js +0 -0
  914. /package/{dist/components → components}/shared/ShellHeaderControls.d.ts +0 -0
  915. /package/{dist/components → components}/shared/ShellHeaderControls.d.ts.map +0 -0
  916. /package/{dist/components → components}/shared/ShellHeaderControls.js +0 -0
  917. /package/{dist/components → components}/shared-companion-scene-context.d.ts +0 -0
  918. /package/{dist/components → components}/shared-companion-scene-context.d.ts.map +0 -0
  919. /package/{dist/components → components}/shared-companion-scene-context.js +0 -0
  920. /package/{dist/components → components}/skeletons.d.ts +0 -0
  921. /package/{dist/components → components}/skeletons.d.ts.map +0 -0
  922. /package/{dist/components → components}/skeletons.js +0 -0
  923. /package/{dist/components → components}/stream/ActivityFeed.d.ts +0 -0
  924. /package/{dist/components → components}/stream/ActivityFeed.d.ts.map +0 -0
  925. /package/{dist/components → components}/stream/ActivityFeed.js +0 -0
  926. /package/{dist/components → components}/stream/AvatarPip.d.ts +0 -0
  927. /package/{dist/components → components}/stream/AvatarPip.d.ts.map +0 -0
  928. /package/{dist/components → components}/stream/AvatarPip.js +0 -0
  929. /package/{dist/components → components}/stream/ChatContent.d.ts +0 -0
  930. /package/{dist/components → components}/stream/ChatContent.d.ts.map +0 -0
  931. /package/{dist/components → components}/stream/ChatContent.js +0 -0
  932. /package/{dist/components → components}/stream/ChatTicker.d.ts +0 -0
  933. /package/{dist/components → components}/stream/ChatTicker.d.ts.map +0 -0
  934. /package/{dist/components → components}/stream/ChatTicker.js +0 -0
  935. /package/{dist/components → components}/stream/IdleContent.d.ts +0 -0
  936. /package/{dist/components → components}/stream/IdleContent.d.ts.map +0 -0
  937. /package/{dist/components → components}/stream/IdleContent.js +0 -0
  938. /package/{dist/components → components}/stream/StatusBar.d.ts +0 -0
  939. /package/{dist/components → components}/stream/StatusBar.d.ts.map +0 -0
  940. /package/{dist/components → components}/stream/StatusBar.js +0 -0
  941. /package/{dist/components → components}/stream/StreamSettings.d.ts +0 -0
  942. /package/{dist/components → components}/stream/StreamSettings.d.ts.map +0 -0
  943. /package/{dist/components → components}/stream/StreamSettings.js +0 -0
  944. /package/{dist/components → components}/stream/StreamTerminal.d.ts +0 -0
  945. /package/{dist/components → components}/stream/StreamTerminal.d.ts.map +0 -0
  946. /package/{dist/components → components}/stream/StreamTerminal.js +0 -0
  947. /package/{dist/components → components}/stream/StreamVoiceConfig.d.ts +0 -0
  948. /package/{dist/components → components}/stream/StreamVoiceConfig.d.ts.map +0 -0
  949. /package/{dist/components → components}/stream/StreamVoiceConfig.js +0 -0
  950. /package/{dist/components → components}/stream/helpers.d.ts +0 -0
  951. /package/{dist/components → components}/stream/helpers.d.ts.map +0 -0
  952. /package/{dist/components → components}/stream/helpers.js +0 -0
  953. /package/{dist/components → components}/stream/overlays/OverlayLayer.d.ts +0 -0
  954. /package/{dist/components → components}/stream/overlays/OverlayLayer.d.ts.map +0 -0
  955. /package/{dist/components → components}/stream/overlays/OverlayLayer.js +0 -0
  956. /package/{dist/components → components}/stream/overlays/built-in/ActionTickerWidget.d.ts +0 -0
  957. /package/{dist/components → components}/stream/overlays/built-in/ActionTickerWidget.d.ts.map +0 -0
  958. /package/{dist/components → components}/stream/overlays/built-in/ActionTickerWidget.js +0 -0
  959. /package/{dist/components → components}/stream/overlays/built-in/AlertPopupWidget.d.ts +0 -0
  960. /package/{dist/components → components}/stream/overlays/built-in/AlertPopupWidget.d.ts.map +0 -0
  961. /package/{dist/components → components}/stream/overlays/built-in/AlertPopupWidget.js +0 -0
  962. /package/{dist/components → components}/stream/overlays/built-in/BrandingWidget.d.ts +0 -0
  963. /package/{dist/components → components}/stream/overlays/built-in/BrandingWidget.d.ts.map +0 -0
  964. /package/{dist/components → components}/stream/overlays/built-in/BrandingWidget.js +0 -0
  965. /package/{dist/components → components}/stream/overlays/built-in/CustomHtmlWidget.d.ts +0 -0
  966. /package/{dist/components → components}/stream/overlays/built-in/CustomHtmlWidget.d.ts.map +0 -0
  967. /package/{dist/components → components}/stream/overlays/built-in/CustomHtmlWidget.js +0 -0
  968. /package/{dist/components → components}/stream/overlays/built-in/PeonGlassWidget.d.ts +0 -0
  969. /package/{dist/components → components}/stream/overlays/built-in/PeonGlassWidget.d.ts.map +0 -0
  970. /package/{dist/components → components}/stream/overlays/built-in/PeonGlassWidget.js +0 -0
  971. /package/{dist/components → components}/stream/overlays/built-in/PeonHudWidget.d.ts +0 -0
  972. /package/{dist/components → components}/stream/overlays/built-in/PeonHudWidget.d.ts.map +0 -0
  973. /package/{dist/components → components}/stream/overlays/built-in/PeonHudWidget.js +0 -0
  974. /package/{dist/components → components}/stream/overlays/built-in/PeonSakuraWidget.d.ts +0 -0
  975. /package/{dist/components → components}/stream/overlays/built-in/PeonSakuraWidget.d.ts.map +0 -0
  976. /package/{dist/components → components}/stream/overlays/built-in/PeonSakuraWidget.js +0 -0
  977. /package/{dist/components → components}/stream/overlays/built-in/ThoughtBubbleWidget.d.ts +0 -0
  978. /package/{dist/components → components}/stream/overlays/built-in/ThoughtBubbleWidget.d.ts.map +0 -0
  979. /package/{dist/components → components}/stream/overlays/built-in/ThoughtBubbleWidget.js +0 -0
  980. /package/{dist/components → components}/stream/overlays/built-in/ViewerCountWidget.d.ts +0 -0
  981. /package/{dist/components → components}/stream/overlays/built-in/ViewerCountWidget.d.ts.map +0 -0
  982. /package/{dist/components → components}/stream/overlays/built-in/ViewerCountWidget.js +0 -0
  983. /package/{dist/components → components}/stream/overlays/built-in/index.d.ts +0 -0
  984. /package/{dist/components → components}/stream/overlays/built-in/index.d.ts.map +0 -0
  985. /package/{dist/components → components}/stream/overlays/built-in/index.js +0 -0
  986. /package/{dist/components → components}/stream/overlays/registry.d.ts +0 -0
  987. /package/{dist/components → components}/stream/overlays/registry.d.ts.map +0 -0
  988. /package/{dist/components → components}/stream/overlays/registry.js +0 -0
  989. /package/{dist/components → components}/stream/overlays/types.d.ts +0 -0
  990. /package/{dist/components → components}/stream/overlays/types.d.ts.map +0 -0
  991. /package/{dist/components → components}/stream/overlays/types.js +0 -0
  992. /package/{dist/components → components}/stream/overlays/useOverlayLayout.d.ts +0 -0
  993. /package/{dist/components → components}/stream/overlays/useOverlayLayout.d.ts.map +0 -0
  994. /package/{dist/components → components}/stream/overlays/useOverlayLayout.js +0 -0
  995. /package/{dist/components → components}/trajectory-format.d.ts +0 -0
  996. /package/{dist/components → components}/trajectory-format.d.ts.map +0 -0
  997. /package/{dist/components → components}/trajectory-format.js +0 -0
  998. /package/{dist/components → components}/ui-badges.d.ts +0 -0
  999. /package/{dist/components → components}/ui-badges.d.ts.map +0 -0
  1000. /package/{dist/components → components}/ui-badges.js +0 -0
  1001. /package/{dist/components → components}/ui-switch.d.ts +0 -0
  1002. /package/{dist/components → components}/ui-switch.d.ts.map +0 -0
  1003. /package/{dist/components → components}/vector-browser-three.d.ts +0 -0
  1004. /package/{dist/components → components}/vector-browser-three.d.ts.map +0 -0
  1005. /package/{dist/components → components}/vector-browser-three.js +0 -0
  1006. /package/{dist/config → config}/branding.d.ts +0 -0
  1007. /package/{dist/config → config}/branding.d.ts.map +0 -0
  1008. /package/{dist/config → config}/branding.js +0 -0
  1009. /package/{dist/config → config}/config-catalog.d.ts +0 -0
  1010. /package/{dist/config → config}/config-catalog.d.ts.map +0 -0
  1011. /package/{dist/config → config}/config-catalog.js +0 -0
  1012. /package/{dist/config → config}/config-field.d.ts +0 -0
  1013. /package/{dist/config → config}/config-field.d.ts.map +0 -0
  1014. /package/{dist/config → config}/config-field.js +0 -0
  1015. /package/{dist/config → config}/config-renderer.d.ts +0 -0
  1016. /package/{dist/config → config}/config-renderer.d.ts.map +0 -0
  1017. /package/{dist/config → config}/config-renderer.js +0 -0
  1018. /package/{dist/config → config}/index.d.ts +0 -0
  1019. /package/{dist/config → config}/index.d.ts.map +0 -0
  1020. /package/{dist/config → config}/index.js +0 -0
  1021. /package/{dist/config → config}/ui-renderer.d.ts +0 -0
  1022. /package/{dist/config → config}/ui-renderer.d.ts.map +0 -0
  1023. /package/{dist/config → config}/ui-renderer.js +0 -0
  1024. /package/{dist/config → config}/ui-spec.d.ts +0 -0
  1025. /package/{dist/config → config}/ui-spec.d.ts.map +0 -0
  1026. /package/{dist/config → config}/ui-spec.js +0 -0
  1027. /package/{dist/events → events}/index.d.ts +0 -0
  1028. /package/{dist/events → events}/index.d.ts.map +0 -0
  1029. /package/{dist/events → events}/index.js +0 -0
  1030. /package/{dist/hooks → hooks}/index.d.ts +0 -0
  1031. /package/{dist/hooks → hooks}/index.d.ts.map +0 -0
  1032. /package/{dist/hooks → hooks}/index.js +0 -0
  1033. /package/{dist/hooks → hooks}/useBugReport.d.ts +0 -0
  1034. /package/{dist/hooks → hooks}/useBugReport.d.ts.map +0 -0
  1035. /package/{dist/hooks → hooks}/useBugReport.js +0 -0
  1036. /package/{dist/hooks → hooks}/useCanvasWindow.d.ts +0 -0
  1037. /package/{dist/hooks → hooks}/useCanvasWindow.d.ts.map +0 -0
  1038. /package/{dist/hooks → hooks}/useCanvasWindow.js +0 -0
  1039. /package/{dist/hooks → hooks}/useChatAvatarVoice.d.ts +0 -0
  1040. /package/{dist/hooks → hooks}/useChatAvatarVoice.d.ts.map +0 -0
  1041. /package/{dist/hooks → hooks}/useChatAvatarVoice.js +0 -0
  1042. /package/{dist/hooks → hooks}/useClickOutside.d.ts +0 -0
  1043. /package/{dist/hooks → hooks}/useClickOutside.d.ts.map +0 -0
  1044. /package/{dist/hooks → hooks}/useClickOutside.js +0 -0
  1045. /package/{dist/hooks → hooks}/useContextMenu.d.ts +0 -0
  1046. /package/{dist/hooks → hooks}/useContextMenu.d.ts.map +0 -0
  1047. /package/{dist/hooks → hooks}/useContextMenu.js +0 -0
  1048. /package/{dist/hooks → hooks}/useKeyboardShortcuts.d.ts +0 -0
  1049. /package/{dist/hooks → hooks}/useKeyboardShortcuts.d.ts.map +0 -0
  1050. /package/{dist/hooks → hooks}/useKeyboardShortcuts.js +0 -0
  1051. /package/{dist/hooks → hooks}/useLifoSync.d.ts +0 -0
  1052. /package/{dist/hooks → hooks}/useLifoSync.d.ts.map +0 -0
  1053. /package/{dist/hooks → hooks}/useLifoSync.js +0 -0
  1054. /package/{dist/hooks → hooks}/useMemoryMonitor.d.ts +0 -0
  1055. /package/{dist/hooks → hooks}/useMemoryMonitor.d.ts.map +0 -0
  1056. /package/{dist/hooks → hooks}/useMemoryMonitor.js +0 -0
  1057. /package/{dist/hooks → hooks}/useRenderGuard.d.ts +0 -0
  1058. /package/{dist/hooks → hooks}/useRenderGuard.d.ts.map +0 -0
  1059. /package/{dist/hooks → hooks}/useRenderGuard.js +0 -0
  1060. /package/{dist/hooks → hooks}/useRetakeCapture.d.ts +0 -0
  1061. /package/{dist/hooks → hooks}/useRetakeCapture.d.ts.map +0 -0
  1062. /package/{dist/hooks → hooks}/useRetakeCapture.js +0 -0
  1063. /package/{dist/hooks → hooks}/useStreamPopoutNavigation.d.ts +0 -0
  1064. /package/{dist/hooks → hooks}/useStreamPopoutNavigation.d.ts.map +0 -0
  1065. /package/{dist/hooks → hooks}/useStreamPopoutNavigation.js +0 -0
  1066. /package/{dist/hooks → hooks}/useTimeout.d.ts +0 -0
  1067. /package/{dist/hooks → hooks}/useTimeout.d.ts.map +0 -0
  1068. /package/{dist/hooks → hooks}/useTimeout.js +0 -0
  1069. /package/{dist/hooks → hooks}/useVoiceChat.d.ts +0 -0
  1070. /package/{dist/hooks → hooks}/useVoiceChat.d.ts.map +0 -0
  1071. /package/{dist/hooks → hooks}/useVoiceChat.js +0 -0
  1072. /package/{dist/hooks → hooks}/useWhatsAppPairing.d.ts +0 -0
  1073. /package/{dist/hooks → hooks}/useWhatsAppPairing.d.ts.map +0 -0
  1074. /package/{dist/hooks → hooks}/useWhatsAppPairing.js +0 -0
  1075. /package/{dist/i18n → i18n}/index.d.ts +0 -0
  1076. /package/{dist/i18n → i18n}/index.d.ts.map +0 -0
  1077. /package/{dist/i18n → i18n}/index.js +0 -0
  1078. /package/{dist/i18n → i18n}/messages.d.ts +0 -0
  1079. /package/{dist/i18n → i18n}/messages.d.ts.map +0 -0
  1080. /package/{dist/i18n → i18n}/messages.js +0 -0
  1081. /package/{dist/index.d.ts → index.d.ts} +0 -0
  1082. /package/{dist/index.d.ts.map → index.d.ts.map} +0 -0
  1083. /package/{dist/index.js → index.js} +0 -0
  1084. /package/{dist/navigation → navigation}/index.d.ts +0 -0
  1085. /package/{dist/navigation → navigation}/index.d.ts.map +0 -0
  1086. /package/{dist/navigation → navigation}/index.js +0 -0
  1087. /package/{dist/onboarding-config.d.ts → onboarding-config.d.ts} +0 -0
  1088. /package/{dist/onboarding-config.d.ts.map → onboarding-config.d.ts.map} +0 -0
  1089. /package/{dist/onboarding-config.js → onboarding-config.js} +0 -0
  1090. /package/{dist/platform → platform}/browser-launch.d.ts +0 -0
  1091. /package/{dist/platform → platform}/browser-launch.d.ts.map +0 -0
  1092. /package/{dist/platform → platform}/browser-launch.js +0 -0
  1093. /package/{dist/platform → platform}/index.d.ts +0 -0
  1094. /package/{dist/platform → platform}/index.d.ts.map +0 -0
  1095. /package/{dist/platform → platform}/index.js +0 -0
  1096. /package/{dist/platform → platform}/init.d.ts +0 -0
  1097. /package/{dist/platform → platform}/init.d.ts.map +0 -0
  1098. /package/{dist/platform → platform}/init.js +0 -0
  1099. /package/{dist/platform → platform}/lifo.d.ts +0 -0
  1100. /package/{dist/platform → platform}/lifo.d.ts.map +0 -0
  1101. /package/{dist/platform → platform}/lifo.js +0 -0
  1102. /package/{dist/providers → providers}/index.d.ts +0 -0
  1103. /package/{dist/providers → providers}/index.d.ts.map +0 -0
  1104. /package/{dist/providers → providers}/index.js +0 -0
  1105. /package/{dist/shell-params.d.ts → shell-params.d.ts} +0 -0
  1106. /package/{dist/shell-params.d.ts.map → shell-params.d.ts.map} +0 -0
  1107. /package/{dist/shell-params.js → shell-params.js} +0 -0
  1108. /package/{dist/state → state}/AppContext.d.ts +0 -0
  1109. /package/{dist/state → state}/index.d.ts +0 -0
  1110. /package/{dist/state → state}/index.d.ts.map +0 -0
  1111. /package/{dist/state → state}/index.js +0 -0
  1112. /package/{dist/state → state}/internal.d.ts +0 -0
  1113. /package/{dist/state → state}/internal.d.ts.map +0 -0
  1114. /package/{dist/state → state}/internal.js +0 -0
  1115. /package/{dist/state → state}/onboarding-resume.d.ts +0 -0
  1116. /package/{dist/state → state}/onboarding-resume.d.ts.map +0 -0
  1117. /package/{dist/state → state}/onboarding-resume.js +0 -0
  1118. /package/{dist/state → state}/parsers.d.ts +0 -0
  1119. /package/{dist/state → state}/parsers.d.ts.map +0 -0
  1120. /package/{dist/state → state}/parsers.js +0 -0
  1121. /package/{dist/state → state}/persistence.d.ts +0 -0
  1122. /package/{dist/state → state}/persistence.d.ts.map +0 -0
  1123. /package/{dist/state → state}/persistence.js +0 -0
  1124. /package/{dist/state → state}/shell-routing.d.ts +0 -0
  1125. /package/{dist/state → state}/shell-routing.d.ts.map +0 -0
  1126. /package/{dist/state → state}/shell-routing.js +0 -0
  1127. /package/{dist/state → state}/types.d.ts +0 -0
  1128. /package/{dist/state → state}/types.d.ts.map +0 -0
  1129. /package/{dist/state → state}/types.js +0 -0
  1130. /package/{dist/state → state}/ui-preferences.d.ts +0 -0
  1131. /package/{dist/state → state}/ui-preferences.d.ts.map +0 -0
  1132. /package/{dist/state → state}/ui-preferences.js +0 -0
  1133. /package/{dist/state → state}/useApp.d.ts +0 -0
  1134. /package/{dist/state → state}/useApp.d.ts.map +0 -0
  1135. /package/{dist/state → state}/useApp.js +0 -0
  1136. /package/{dist/state → state}/vrm.d.ts +0 -0
  1137. /package/{dist/state → state}/vrm.d.ts.map +0 -0
  1138. /package/{dist/state → state}/vrm.js +0 -0
  1139. /package/{dist/styles → styles}/base.css +0 -0
  1140. /package/{dist/styles → styles}/styles.css +0 -0
  1141. /package/{dist/styles → styles}/xterm.css +0 -0
  1142. /package/{dist/types → types}/index.d.ts +0 -0
  1143. /package/{dist/types → types}/index.d.ts.map +0 -0
  1144. /package/{dist/types → types}/index.js +0 -0
  1145. /package/{dist/utils → utils}/asset-url.d.ts +0 -0
  1146. /package/{dist/utils → utils}/asset-url.d.ts.map +0 -0
  1147. /package/{dist/utils → utils}/asset-url.js +0 -0
  1148. /package/{dist/utils → utils}/assistant-text.d.ts +0 -0
  1149. /package/{dist/utils → utils}/assistant-text.d.ts.map +0 -0
  1150. /package/{dist/utils → utils}/assistant-text.js +0 -0
  1151. /package/{dist/utils → utils}/clipboard.d.ts +0 -0
  1152. /package/{dist/utils → utils}/clipboard.d.ts.map +0 -0
  1153. /package/{dist/utils → utils}/clipboard.js +0 -0
  1154. /package/{dist/utils → utils}/desktop-dialogs.d.ts +0 -0
  1155. /package/{dist/utils → utils}/desktop-dialogs.d.ts.map +0 -0
  1156. /package/{dist/utils → utils}/desktop-dialogs.js +0 -0
  1157. /package/{dist/utils → utils}/eliza-globals.d.ts +0 -0
  1158. /package/{dist/utils → utils}/eliza-globals.d.ts.map +0 -0
  1159. /package/{dist/utils → utils}/eliza-globals.js +0 -0
  1160. /package/{dist/utils → utils}/index.d.ts +0 -0
  1161. /package/{dist/utils → utils}/index.d.ts.map +0 -0
  1162. /package/{dist/utils → utils}/index.js +0 -0
  1163. /package/{dist/utils → utils}/number-parsing.d.ts +0 -0
  1164. /package/{dist/utils → utils}/number-parsing.d.ts.map +0 -0
  1165. /package/{dist/utils → utils}/number-parsing.js +0 -0
  1166. /package/{dist/utils → utils}/openExternalUrl.d.ts +0 -0
  1167. /package/{dist/utils → utils}/openExternalUrl.d.ts.map +0 -0
  1168. /package/{dist/utils → utils}/openExternalUrl.js +0 -0
  1169. /package/{dist/utils → utils}/spoken-text.d.ts +0 -0
  1170. /package/{dist/utils → utils}/spoken-text.d.ts.map +0 -0
  1171. /package/{dist/utils → utils}/spoken-text.js +0 -0
  1172. /package/{dist/utils → utils}/streaming-text.d.ts +0 -0
  1173. /package/{dist/utils → utils}/streaming-text.d.ts.map +0 -0
  1174. /package/{dist/utils → utils}/streaming-text.js +0 -0
  1175. /package/{dist/voice → voice}/index.d.ts +0 -0
  1176. /package/{dist/voice → voice}/index.d.ts.map +0 -0
  1177. /package/{dist/voice → voice}/index.js +0 -0
  1178. /package/{dist/voice → voice}/types.d.ts +0 -0
  1179. /package/{dist/voice → voice}/types.d.ts.map +0 -0
  1180. /package/{dist/voice → voice}/types.js +0 -0
  1181. /package/{dist/wallet-rpc.d.ts → wallet-rpc.d.ts} +0 -0
  1182. /package/{dist/wallet-rpc.d.ts.map → wallet-rpc.d.ts.map} +0 -0
  1183. /package/{dist/wallet-rpc.js → wallet-rpc.js} +0 -0
@@ -1,1092 +0,0 @@
1
- /**
2
- * Plugin config catalog & registry — reverse-engineered from vercel-labs/json-render.
3
- *
4
- * json-render pattern:
5
- * defineCatalog(schema, { components, actions, functions }) → type-safe catalog
6
- * defineRegistry(catalog, { components, actions }) → maps catalog → renderers/handlers
7
- * <Renderer spec={} registry={} /> → traverses spec, renders
8
- *
9
- * Our adaptation for plugin config forms:
10
- * defineCatalog({ fields, actions?, functions? }) → field + action + validation catalog
11
- * defineRegistry(catalog, renderers, actionHandlers?) → maps types → render/handler functions
12
- * <ConfigRenderer> → reads JSON Schema + uiHints, renders form
13
- *
14
- * New in Phase 2 (json-render feature parity):
15
- * - Actions: catalog actions with Zod params + registry handlers
16
- * - Rich visibility: LogicExpression (and/or/not/eq/neq/gt/gte/lt/lte)
17
- * - Validation checks: declarative checks (required/email/minLength/pattern/...)
18
- * - Data binding: DynamicValue with path resolution (getByPath/setByPath)
19
- * - Prompt generation: catalog.prompt() for AI system prompts
20
- *
21
- * @module config-catalog
22
- */
23
-
24
- import type { ReactNode } from "react";
25
- import { z } from "zod";
26
- import type {
27
- ConfigUiHint,
28
- DynamicValue,
29
- LogicExpression,
30
- ShowIfCondition,
31
- ValidationCheck,
32
- ValidationConfig,
33
- VisibilityCondition,
34
- } from "../types";
35
-
36
- // ── JSON Schema types (subset we consume) ──────────────────────────────
37
-
38
- export interface JsonSchemaProperty {
39
- type?: string | string[];
40
- enum?: unknown[];
41
- const?: unknown;
42
- default?: unknown;
43
- description?: string;
44
- format?: string;
45
- minimum?: number;
46
- maximum?: number;
47
- minLength?: number;
48
- maxLength?: number;
49
- pattern?: string;
50
- properties?: Record<string, JsonSchemaProperty>;
51
- items?: JsonSchemaProperty;
52
- required?: string[];
53
- oneOf?: JsonSchemaProperty[];
54
- anyOf?: JsonSchemaProperty[];
55
- additionalProperties?: boolean | JsonSchemaProperty;
56
- }
57
-
58
- export interface JsonSchemaObject extends JsonSchemaProperty {
59
- type: "object";
60
- properties: Record<string, JsonSchemaProperty>;
61
- }
62
-
63
- // ── Dynamic value resolution (≈ json-render DynamicValue + getByPath) ───
64
-
65
- /**
66
- * Get a value from a nested object by slash-delimited path (JSON Pointer).
67
- *
68
- * @example
69
- * getByPath({ a: { b: 42 } }, "a/b") // → 42
70
- * getByPath({ items: [1, 2] }, "items/0") // → 1
71
- */
72
- export function getByPath(obj: unknown, path: string): unknown {
73
- if (!path || path === "/") return obj;
74
- const segments = (path.startsWith("/") ? path.slice(1) : path).split("/");
75
- let current: unknown = obj;
76
- for (const seg of segments) {
77
- if (current == null) return undefined;
78
- if (Array.isArray(current)) {
79
- current = current[parseInt(seg, 10)];
80
- } else if (typeof current === "object") {
81
- current = (current as Record<string, unknown>)[seg];
82
- } else {
83
- return undefined;
84
- }
85
- }
86
- return current;
87
- }
88
-
89
- /**
90
- * Set a value in a nested object by slash-delimited path.
91
- */
92
- export function setByPath(
93
- obj: Record<string, unknown>,
94
- path: string,
95
- value: unknown,
96
- ): void {
97
- const segments = (path.startsWith("/") ? path.slice(1) : path).split("/");
98
- if (segments.length === 0) return;
99
- const BLOCKED_KEYS = ["__proto__", "constructor", "prototype"];
100
- for (const seg of segments) {
101
- if (BLOCKED_KEYS.includes(seg)) return; // silently reject dangerous paths
102
- }
103
- let current: Record<string, unknown> = obj;
104
- for (let i = 0; i < segments.length - 1; i++) {
105
- const seg = segments[i];
106
- if (!(seg in current) || typeof current[seg] !== "object") {
107
- current[seg] = /^\d+$/.test(segments[i + 1]) ? [] : {};
108
- }
109
- current = current[seg] as Record<string, unknown>;
110
- }
111
- current[segments[segments.length - 1]] = value;
112
- }
113
-
114
- /**
115
- * Resolve a DynamicValue — if it's a {path} reference, look up in state.
116
- */
117
- export function resolveDynamic<T>(
118
- value: DynamicValue<T>,
119
- state: Record<string, unknown>,
120
- ): T | undefined {
121
- if (value != null && typeof value === "object" && "path" in value) {
122
- return getByPath(state, (value as { path: string }).path) as T | undefined;
123
- }
124
- return value as T;
125
- }
126
-
127
- /**
128
- * Search for a field value by name — ported from json-render's dashboard example.
129
- *
130
- * Resolution order:
131
- * 1. Direct params lookup
132
- * 2. Params with path format (JSON Pointer)
133
- * 3. State walk through common form prefixes (form, newItem, create, edit, root)
134
- */
135
- export function findFormValue(
136
- fieldName: string,
137
- params?: Record<string, unknown>,
138
- state?: Record<string, unknown>,
139
- ): unknown {
140
- // 1. Check direct params
141
- if (params && fieldName in params) return params[fieldName];
142
-
143
- // 2. Check params with path format
144
- if (params) {
145
- const pathValue = getByPath(params, `/${fieldName}`);
146
- if (pathValue !== undefined) return pathValue;
147
- }
148
-
149
- // 3. Search state - check common form prefixes
150
- if (state) {
151
- const prefixes = ["form", "newItem", "create", "edit", ""];
152
- for (const prefix of prefixes) {
153
- const path = prefix ? `/${prefix}/${fieldName}` : `/${fieldName}`;
154
- const val = getByPath(state, path);
155
- if (val !== undefined) return val;
156
- }
157
- }
158
-
159
- return undefined;
160
- }
161
-
162
- /**
163
- * Interpolate `{{path}}` references in a template string using context values.
164
- *
165
- * Useful for action onSuccess/onError messages that reference state values.
166
- *
167
- * @example
168
- * interpolateString("Created {{/form/name}} successfully", { form: { name: "Foo" } })
169
- * // → "Created Foo successfully"
170
- */
171
- export function interpolateString(
172
- template: string,
173
- context: Record<string, unknown>,
174
- ): string {
175
- return template.replace(/\{\{([^}]+)\}\}/g, (_, path) => {
176
- const value = getByPath(
177
- context,
178
- path.trim().startsWith("/") ? path.trim() : `/${path.trim()}`,
179
- );
180
- return value !== undefined ? String(value) : "";
181
- });
182
- }
183
-
184
- // ── Rich visibility evaluation (≈ json-render evaluateVisibility) ───────
185
-
186
- /**
187
- * Evaluate a LogicExpression against a state model.
188
- */
189
- export function evaluateLogicExpression(
190
- expr: LogicExpression,
191
- state: Record<string, unknown>,
192
- ): boolean {
193
- if ("and" in expr)
194
- return (expr as { and: LogicExpression[] }).and.every((e) =>
195
- evaluateLogicExpression(e, state),
196
- );
197
- if ("or" in expr)
198
- return (expr as { or: LogicExpression[] }).or.some((e) =>
199
- evaluateLogicExpression(e, state),
200
- );
201
- if ("not" in expr)
202
- return !evaluateLogicExpression(
203
- (expr as { not: LogicExpression }).not,
204
- state,
205
- );
206
- if ("path" in expr)
207
- return Boolean(getByPath(state, (expr as { path: string }).path));
208
- if ("eq" in expr) {
209
- const [l, r] = (expr as { eq: [DynamicValue, DynamicValue] }).eq;
210
- return resolveDynamic(l, state) === resolveDynamic(r, state);
211
- }
212
- if ("neq" in expr) {
213
- const [l, r] = (expr as { neq: [DynamicValue, DynamicValue] }).neq;
214
- return resolveDynamic(l, state) !== resolveDynamic(r, state);
215
- }
216
- if ("gt" in expr) {
217
- const [l, r] = (
218
- expr as { gt: [DynamicValue<number>, DynamicValue<number>] }
219
- ).gt;
220
- const lv = resolveDynamic(l, state),
221
- rv = resolveDynamic(r, state);
222
- return typeof lv === "number" && typeof rv === "number" && lv > rv;
223
- }
224
- if ("gte" in expr) {
225
- const [l, r] = (
226
- expr as { gte: [DynamicValue<number>, DynamicValue<number>] }
227
- ).gte;
228
- const lv = resolveDynamic(l, state),
229
- rv = resolveDynamic(r, state);
230
- return typeof lv === "number" && typeof rv === "number" && lv >= rv;
231
- }
232
- if ("lt" in expr) {
233
- const [l, r] = (
234
- expr as { lt: [DynamicValue<number>, DynamicValue<number>] }
235
- ).lt;
236
- const lv = resolveDynamic(l, state),
237
- rv = resolveDynamic(r, state);
238
- return typeof lv === "number" && typeof rv === "number" && lv < rv;
239
- }
240
- if ("lte" in expr) {
241
- const [l, r] = (
242
- expr as { lte: [DynamicValue<number>, DynamicValue<number>] }
243
- ).lte;
244
- const lv = resolveDynamic(l, state),
245
- rv = resolveDynamic(r, state);
246
- return typeof lv === "number" && typeof rv === "number" && lv <= rv;
247
- }
248
- return false;
249
- }
250
-
251
- /**
252
- * Evaluate a full VisibilityCondition.
253
- */
254
- export function evaluateVisibility(
255
- condition: VisibilityCondition | undefined,
256
- state: Record<string, unknown>,
257
- ): boolean {
258
- if (condition === undefined) return true;
259
- if (typeof condition === "boolean") return condition;
260
- if ("path" in condition && !("and" in condition) && !("or" in condition)) {
261
- return Boolean(getByPath(state, (condition as { path: string }).path));
262
- }
263
- return evaluateLogicExpression(condition as LogicExpression, state);
264
- }
265
-
266
- /**
267
- * Evaluate a legacy ShowIfCondition (backwards compat).
268
- */
269
- export function evaluateShowIf(
270
- condition: ShowIfCondition | undefined,
271
- values: Record<string, unknown>,
272
- ): boolean {
273
- if (!condition) return true;
274
- const val = values[condition.field];
275
- switch (condition.op) {
276
- case "eq":
277
- return val === condition.value;
278
- case "neq":
279
- return val !== condition.value;
280
- case "in":
281
- return Array.isArray(condition.value) && condition.value.includes(val);
282
- case "truthy":
283
- return Boolean(val);
284
- case "falsy":
285
- return !val;
286
- default:
287
- return true;
288
- }
289
- }
290
-
291
- // ── Visibility helpers (≈ json-render visibility.*) ─────────────────────
292
-
293
- export const visibility = {
294
- always: true as const,
295
- never: false as const,
296
- when: (path: string): VisibilityCondition => ({ path }),
297
- and: (...conditions: LogicExpression[]): LogicExpression => ({
298
- and: conditions,
299
- }),
300
- or: (...conditions: LogicExpression[]): LogicExpression => ({
301
- or: conditions,
302
- }),
303
- not: (condition: LogicExpression): LogicExpression => ({ not: condition }),
304
- eq: (left: DynamicValue, right: DynamicValue): LogicExpression => ({
305
- eq: [left, right],
306
- }),
307
- neq: (left: DynamicValue, right: DynamicValue): LogicExpression => ({
308
- neq: [left, right],
309
- }),
310
- gt: (
311
- left: DynamicValue<number>,
312
- right: DynamicValue<number>,
313
- ): LogicExpression => ({ gt: [left, right] }),
314
- gte: (
315
- left: DynamicValue<number>,
316
- right: DynamicValue<number>,
317
- ): LogicExpression => ({ gte: [left, right] }),
318
- lt: (
319
- left: DynamicValue<number>,
320
- right: DynamicValue<number>,
321
- ): LogicExpression => ({ lt: [left, right] }),
322
- lte: (
323
- left: DynamicValue<number>,
324
- right: DynamicValue<number>,
325
- ): LogicExpression => ({ lte: [left, right] }),
326
- };
327
-
328
- // ── Built-in validation functions (≈ json-render builtInValidationFunctions)
329
-
330
- export type ValidationFunction = (
331
- value: unknown,
332
- args?: Record<string, unknown>,
333
- ) => boolean;
334
-
335
- export const builtInValidators: Record<string, ValidationFunction> = {
336
- required: (value) => {
337
- if (value == null) return false;
338
- if (typeof value === "string") return value.trim().length > 0;
339
- if (Array.isArray(value)) return value.length > 0;
340
- return true;
341
- },
342
- email: (value) =>
343
- typeof value === "string" && /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value),
344
- minLength: (value, args) =>
345
- typeof value === "string" &&
346
- typeof args?.min === "number" &&
347
- value.length >= args.min,
348
- maxLength: (value, args) =>
349
- typeof value === "string" &&
350
- typeof args?.max === "number" &&
351
- value.length <= args.max,
352
- pattern: (value, args) => {
353
- if (typeof value !== "string" || typeof args?.pattern !== "string")
354
- return false;
355
- try {
356
- return new RegExp(args.pattern).test(value);
357
- } catch {
358
- return false;
359
- }
360
- },
361
- min: (value, args) =>
362
- typeof value === "number" &&
363
- typeof args?.min === "number" &&
364
- value >= args.min,
365
- max: (value, args) =>
366
- typeof value === "number" &&
367
- typeof args?.max === "number" &&
368
- value <= args.max,
369
- numeric: (value) =>
370
- typeof value === "number"
371
- ? !Number.isNaN(value)
372
- : typeof value === "string" && !Number.isNaN(parseFloat(value)),
373
- url: (value) => {
374
- if (typeof value !== "string") return false;
375
- try {
376
- new URL(value);
377
- return true;
378
- } catch {
379
- return false;
380
- }
381
- },
382
- matches: (value, args) => value === args?.other,
383
- };
384
-
385
- /**
386
- * Run validation checks for a field value.
387
- */
388
- export function runValidation(
389
- config: ValidationConfig,
390
- value: unknown,
391
- state: Record<string, unknown>,
392
- customFunctions?: Record<string, ValidationFunction>,
393
- ): { valid: boolean; errors: string[] } {
394
- const errors: string[] = [];
395
-
396
- // Check if validation is enabled
397
- if (config.enabled && !evaluateLogicExpression(config.enabled, state)) {
398
- return { valid: true, errors: [] };
399
- }
400
-
401
- if (config.checks) {
402
- for (const check of config.checks) {
403
- // Resolve dynamic args
404
- const resolvedArgs: Record<string, unknown> = {};
405
- if (check.args) {
406
- for (const [k, v] of Object.entries(check.args)) {
407
- resolvedArgs[k] = resolveDynamic(v, state);
408
- }
409
- }
410
- const fn = builtInValidators[check.fn] ?? customFunctions?.[check.fn];
411
- if (fn && !fn(value, resolvedArgs)) {
412
- errors.push(check.message);
413
- }
414
- }
415
- }
416
-
417
- return { valid: errors.length === 0, errors };
418
- }
419
-
420
- // ── Validation check helpers (≈ json-render check.*) ────────────────────
421
-
422
- export const check = {
423
- required: (message = "This field is required"): ValidationCheck => ({
424
- fn: "required",
425
- message,
426
- }),
427
- email: (message = "Invalid email address"): ValidationCheck => ({
428
- fn: "email",
429
- message,
430
- }),
431
- minLength: (min: number, message?: string): ValidationCheck => ({
432
- fn: "minLength",
433
- args: { min },
434
- message: message ?? `Must be at least ${min} characters`,
435
- }),
436
- maxLength: (max: number, message?: string): ValidationCheck => ({
437
- fn: "maxLength",
438
- args: { max },
439
- message: message ?? `Must be at most ${max} characters`,
440
- }),
441
- pattern: (pattern: string, message = "Invalid format"): ValidationCheck => ({
442
- fn: "pattern",
443
- args: { pattern },
444
- message,
445
- }),
446
- min: (min: number, message?: string): ValidationCheck => ({
447
- fn: "min",
448
- args: { min },
449
- message: message ?? `Must be at least ${min}`,
450
- }),
451
- max: (max: number, message?: string): ValidationCheck => ({
452
- fn: "max",
453
- args: { max },
454
- message: message ?? `Must be at most ${max}`,
455
- }),
456
- url: (message = "Invalid URL"): ValidationCheck => ({ fn: "url", message }),
457
- matches: (
458
- otherPath: string,
459
- message = "Fields must match",
460
- ): ValidationCheck => ({
461
- fn: "matches",
462
- args: { other: { path: otherPath } },
463
- message,
464
- }),
465
- };
466
-
467
- // ── Action definitions (≈ json-render ActionDefinition) ─────────────────
468
-
469
- export interface ActionDefinition<TParams = Record<string, unknown>> {
470
- /** Zod schema for params validation. */
471
- params?: z.ZodType<TParams>;
472
- /** Description for AI and documentation. */
473
- description?: string;
474
- }
475
-
476
- export type ActionHandler<
477
- TParams = Record<string, unknown>,
478
- TResult = unknown,
479
- > = (
480
- params: TParams,
481
- state: Record<string, unknown>,
482
- ) => Promise<TResult> | TResult;
483
-
484
- // ── Field definition (≈ json-render ComponentDefinition) ───────────────
485
-
486
- export interface FieldDefinition<TValidator extends z.ZodType = z.ZodType> {
487
- /** Zod schema for validating field values. */
488
- validator: TValidator;
489
- /** Human-readable description (used for documentation / AI prompts). */
490
- description: string;
491
- }
492
-
493
- // ── Catalog (≈ json-render Catalog) ────────────────────────────────────
494
-
495
- export interface FieldCatalog<
496
- TFields extends Record<string, FieldDefinition> = Record<
497
- string,
498
- FieldDefinition
499
- >,
500
- TActions extends Record<string, ActionDefinition> = Record<
501
- string,
502
- ActionDefinition
503
- >,
504
- > {
505
- readonly fields: TFields;
506
- readonly fieldNames: string[];
507
- readonly actions: TActions;
508
- readonly actionNames: string[];
509
- readonly functions: Record<string, ValidationFunction>;
510
- /** Check if a field type is registered. */
511
- hasField(type: string): boolean;
512
- /** Check if an action is registered. */
513
- hasAction(name: string): boolean;
514
- /** Validate a value against a field type's Zod schema. */
515
- validate(type: string, value: unknown): z.ZodSafeParseResult<unknown>;
516
- /** Resolve a JSON Schema property + optional UI hint to a field type name. */
517
- resolveType(property: JsonSchemaProperty, hint?: ConfigUiHint): string;
518
- /** Generate an AI system prompt describing the catalog's capabilities. */
519
- prompt(): string;
520
- }
521
-
522
- /**
523
- * Catalog configuration.
524
- */
525
- export interface CatalogConfig<
526
- TFields extends Record<string, FieldDefinition> = Record<
527
- string,
528
- FieldDefinition
529
- >,
530
- TActions extends Record<string, ActionDefinition> = Record<
531
- string,
532
- ActionDefinition
533
- >,
534
- > {
535
- /** Field type definitions. */
536
- fields: TFields;
537
- /** Action definitions. */
538
- actions?: TActions;
539
- /** Custom validation functions. */
540
- functions?: Record<string, ValidationFunction>;
541
- }
542
-
543
- /**
544
- * Create a type-safe field catalog.
545
- *
546
- * Equivalent to json-render's `defineCatalog(schema, config)`.
547
- * Supports fields, actions, custom validation functions, and prompt generation.
548
- */
549
- export function defineCatalog<
550
- TFields extends Record<string, FieldDefinition>,
551
- TActions extends Record<string, ActionDefinition> = Record<
552
- string,
553
- ActionDefinition
554
- >,
555
- >(
556
- fieldsOrConfig: TFields | CatalogConfig<TFields, TActions>,
557
- ): FieldCatalog<TFields, TActions> {
558
- // Support both old (fields-only) and new (full config) signatures.
559
- // Old format: { text: { validator, ... }, ... } — values have "validator".
560
- // New format: { fields: { text: { ... } }, actions?: { ... } } — top-level "fields" key.
561
- const firstVal = Object.values(fieldsOrConfig)[0];
562
- const isPlainFields =
563
- firstVal &&
564
- typeof firstVal === "object" &&
565
- "validator" in (firstVal as Record<string, unknown>);
566
- const config: CatalogConfig<TFields, TActions> = isPlainFields
567
- ? { fields: fieldsOrConfig as TFields, actions: {} as TActions }
568
- : (fieldsOrConfig as CatalogConfig<TFields, TActions>);
569
-
570
- const fields = config.fields;
571
- const actions = config.actions ?? ({} as TActions);
572
- const functions = config.functions ?? {};
573
- const fieldNames = Object.keys(fields);
574
- const actionNames = Object.keys(actions);
575
-
576
- return {
577
- fields,
578
- fieldNames,
579
- actions,
580
- actionNames,
581
- functions,
582
-
583
- hasField(type: string): boolean {
584
- return type in fields;
585
- },
586
-
587
- hasAction(name: string): boolean {
588
- return name in actions;
589
- },
590
-
591
- validate(type: string, value: unknown) {
592
- const def = fields[type];
593
- if (!def)
594
- return {
595
- success: false,
596
- error: new z.ZodError([
597
- {
598
- code: "custom",
599
- message: `Unknown field type: ${type}`,
600
- path: [],
601
- },
602
- ]),
603
- } as z.ZodSafeParseResult<unknown>;
604
- return def.validator.safeParse(value);
605
- },
606
-
607
- resolveType(property: JsonSchemaProperty, hint?: ConfigUiHint): string {
608
- return resolveFieldType(property, hint, fieldNames);
609
- },
610
-
611
- prompt(): string {
612
- return generateCatalogPrompt(fields, actions, functions);
613
- },
614
- };
615
- }
616
-
617
- // ── Prompt generation (≈ json-render catalog.prompt()) ──────────────────
618
-
619
- function generateCatalogPrompt(
620
- fields: Record<string, FieldDefinition>,
621
- actions: Record<string, ActionDefinition>,
622
- functions: Record<string, ValidationFunction>,
623
- ): string {
624
- const lines: string[] = [];
625
-
626
- lines.push("# Plugin Configuration UI Catalog");
627
- lines.push("");
628
- lines.push(
629
- "You are generating a plugin configuration form. Below are the available field types, actions, and validation functions.",
630
- );
631
- lines.push("");
632
-
633
- // Field types
634
- lines.push("## Field Types");
635
- lines.push("");
636
- for (const [name, def] of Object.entries(fields)) {
637
- lines.push(`- **${name}**: ${def.description}`);
638
- }
639
- lines.push("");
640
-
641
- // Actions
642
- if (Object.keys(actions).length > 0) {
643
- lines.push("## Actions");
644
- lines.push("");
645
- for (const [name, def] of Object.entries(actions)) {
646
- lines.push(`- **${name}**: ${def.description ?? "No description"}`);
647
- }
648
- lines.push("");
649
- }
650
-
651
- // Validation functions
652
- const allFunctions = { ...builtInValidators, ...functions };
653
- lines.push("## Validation Functions");
654
- lines.push("");
655
- lines.push(`Built-in: ${Object.keys(allFunctions).join(", ")}`);
656
- lines.push("");
657
-
658
- // Schema format
659
- lines.push("## Schema Format");
660
- lines.push("");
661
- lines.push(
662
- "Each field is described by a JSON Schema property + ConfigUiHint:",
663
- );
664
- lines.push("```json");
665
- lines.push(
666
- JSON.stringify(
667
- {
668
- FIELD_NAME: {
669
- schema: { type: "string", description: "..." },
670
- hint: {
671
- type: "text",
672
- label: "...",
673
- help: "...",
674
- group: "...",
675
- validation: { checks: [{ fn: "required", message: "..." }] },
676
- },
677
- },
678
- },
679
- null,
680
- 2,
681
- ),
682
- );
683
- lines.push("```");
684
- lines.push("");
685
-
686
- // Visibility
687
- lines.push("## Visibility Conditions");
688
- lines.push("");
689
- lines.push("Fields support `visible` conditions using LogicExpression:");
690
- lines.push('- `{ path: "FIELD_NAME" }` — truthy check');
691
- lines.push('- `{ eq: [{ path: "FIELD" }, "value"] }` — equality');
692
- lines.push(
693
- "- `{ and: [...] }`, `{ or: [...] }`, `{ not: {...} }` — logical operators",
694
- );
695
- lines.push("- `{ gt, gte, lt, lte }` — numeric comparisons");
696
-
697
- return lines.join("\n");
698
- }
699
-
700
- // ── Render props (≈ json-render ComponentRenderProps) ──────────────────
701
-
702
- /**
703
- * Props passed to every field renderer function.
704
- *
705
- * Plugin authors implementing custom renderers receive this interface
706
- * as the single argument to their render function.
707
- *
708
- * @example
709
- * ```tsx
710
- * const MyCustomField: FieldRenderer = (props: FieldRenderProps) => (
711
- * <input
712
- * value={String(props.value ?? "")}
713
- * onChange={(e) => props.onChange(e.target.value)}
714
- * placeholder={props.hint.placeholder}
715
- * disabled={props.readonly}
716
- * />
717
- * );
718
- * ```
719
- */
720
- export interface FieldRenderProps {
721
- /** Config key identifier (e.g., "OPENAI_API_KEY"). */
722
- key: string;
723
- /** Current field value, may be any JSON-compatible type. */
724
- value: unknown;
725
- /** JSON Schema property definition for this field. */
726
- schema: JsonSchemaProperty;
727
- /** UI rendering hints from the plugin manifest. */
728
- hint: ConfigUiHint;
729
- /** Resolved field type name from the catalog (e.g., "text", "select"). */
730
- fieldType: string;
731
- /** Callback to update the field value. */
732
- onChange: (value: unknown) => void;
733
- /** Whether the field currently has a configured value. */
734
- isSet: boolean;
735
- /** Whether the field is required by the schema. */
736
- required: boolean;
737
- /** Validation error messages for this field. */
738
- errors?: string[];
739
- /** Whether the field should be non-editable. */
740
- readonly?: boolean;
741
- /** For sensitive fields — async callback to fetch the real value from the server. */
742
- onReveal?: () => Promise<string | null>;
743
- /** Dispatch a named action with optional parameters. */
744
- onAction?: (
745
- action: string,
746
- params?: Record<string, unknown>,
747
- ) => Promise<unknown>;
748
- }
749
-
750
- /** A render function that returns a React node for a given field type. */
751
- export type FieldRenderer = (props: FieldRenderProps) => ReactNode;
752
-
753
- // ── Registry (≈ json-render ComponentRegistry + defineRegistry) ────────
754
-
755
- export interface FieldRegistry<
756
- TFields extends Record<string, FieldDefinition> = Record<
757
- string,
758
- FieldDefinition
759
- >,
760
- TActions extends Record<string, ActionDefinition> = Record<
761
- string,
762
- ActionDefinition
763
- >,
764
- > {
765
- readonly catalog: FieldCatalog<TFields, TActions>;
766
- readonly renderers: Record<string, FieldRenderer>;
767
- readonly actionHandlers: Record<string, ActionHandler>;
768
- /** Look up the renderer for a field type. Returns undefined if not registered. */
769
- resolve(type: string): FieldRenderer | undefined;
770
- /** Like resolve(), but falls back to the "text" renderer. */
771
- resolveOrFallback(type: string): FieldRenderer;
772
- /** Look up the handler for an action. */
773
- resolveAction(name: string): ActionHandler | undefined;
774
- }
775
-
776
- /**
777
- * Create a field registry that maps catalog field types to render functions.
778
- *
779
- * Equivalent to json-render's `defineRegistry(catalog, { components, actions })`.
780
- */
781
- export function defineRegistry<
782
- TFields extends Record<string, FieldDefinition>,
783
- TActions extends Record<string, ActionDefinition> = Record<
784
- string,
785
- ActionDefinition
786
- >,
787
- >(
788
- catalog: FieldCatalog<TFields, TActions>,
789
- renderers: Partial<Record<keyof TFields & string, FieldRenderer>>,
790
- actionHandlers?: Partial<Record<keyof TActions & string, ActionHandler>>,
791
- ): FieldRegistry<TFields, TActions> {
792
- const rendererMap = renderers as Record<string, FieldRenderer>;
793
- const handlerMap = (actionHandlers ?? {}) as Record<string, ActionHandler>;
794
-
795
- return {
796
- catalog,
797
- renderers: rendererMap,
798
- actionHandlers: handlerMap,
799
-
800
- resolve(type: string): FieldRenderer | undefined {
801
- return rendererMap[type];
802
- },
803
-
804
- resolveOrFallback(type: string): FieldRenderer {
805
- return rendererMap[type] ?? rendererMap.text;
806
- },
807
-
808
- resolveAction(name: string): ActionHandler | undefined {
809
- return handlerMap[name];
810
- },
811
- };
812
- }
813
-
814
- // ── Field type resolution ──────────────────────────────────────────────
815
-
816
- /**
817
- * Resolve a JSON Schema property + ConfigUiHint to a field type name.
818
- *
819
- * Priority order:
820
- * 1. Explicit hint.type override (if it's a known type)
821
- * 2. hint.sensitive → "password"
822
- * 3. Schema enum/options → "select"
823
- * 4. Schema type + format heuristics
824
- * 5. Fallback → "text"
825
- */
826
- function resolveFieldType(
827
- property: JsonSchemaProperty,
828
- hint: ConfigUiHint | undefined,
829
- knownTypes: string[],
830
- ): string {
831
- const knownSet = new Set(knownTypes);
832
-
833
- // 1. Explicit type override from hint
834
- const hintType = (hint as Record<string, unknown> | undefined)?.type as
835
- | string
836
- | undefined;
837
- if (hintType && knownSet.has(hintType)) return hintType;
838
-
839
- // 2. Sensitive → password
840
- if (hint?.sensitive) return knownSet.has("password") ? "password" : "text";
841
-
842
- // 3. Enum → select
843
- if (property.enum?.length || property.oneOf?.length) {
844
- return knownSet.has("select") ? "select" : "text";
845
- }
846
-
847
- // 4. Schema type + format
848
- const schemaType = Array.isArray(property.type)
849
- ? property.type[0]
850
- : property.type;
851
-
852
- switch (schemaType) {
853
- case "boolean":
854
- return knownSet.has("boolean") ? "boolean" : "text";
855
- case "number":
856
- case "integer":
857
- return knownSet.has("number") ? "number" : "text";
858
- case "array":
859
- if (property.items?.enum && knownSet.has("multiselect"))
860
- return "multiselect";
861
- return knownSet.has("array") ? "array" : "text";
862
- case "object":
863
- if (property.additionalProperties && knownSet.has("keyvalue"))
864
- return "keyvalue";
865
- return knownSet.has("json") ? "json" : "text";
866
- default:
867
- break;
868
- }
869
-
870
- // String format heuristics
871
- if (schemaType === "string" || !schemaType) {
872
- const fmt = property.format;
873
- if (fmt === "uri" || fmt === "url")
874
- return knownSet.has("url") ? "url" : "text";
875
- if (fmt === "email") return knownSet.has("email") ? "email" : "text";
876
- if (fmt === "date-time")
877
- return knownSet.has("datetime")
878
- ? "datetime"
879
- : knownSet.has("date")
880
- ? "date"
881
- : "text";
882
- if (fmt === "date") return knownSet.has("date") ? "date" : "text";
883
- if (fmt === "color") return knownSet.has("color") ? "color" : "text";
884
-
885
- // Multiline heuristic: maxLength > 200 or no maxLength with "text" hint
886
- if (property.maxLength && property.maxLength > 200) {
887
- return knownSet.has("textarea") ? "textarea" : "text";
888
- }
889
- }
890
-
891
- // 5. Fallback
892
- return "text";
893
- }
894
-
895
- // ── Default catalog ────────────────────────────────────────────────────
896
-
897
- /**
898
- * The standard field catalog with 23 basic field types + built-in actions.
899
- */
900
- export const defaultCatalog = defineCatalog({
901
- fields: {
902
- text: {
903
- validator: z.string(),
904
- description: "Single-line text input",
905
- },
906
- password: {
907
- validator: z.string(),
908
- description: "Masked input with show/hide toggle and API-backed reveal",
909
- },
910
- number: {
911
- validator: z.coerce.number(),
912
- description: "Numeric input with optional min/max/step",
913
- },
914
- boolean: {
915
- validator: z.coerce.boolean(),
916
- description: "Toggle switch (on/off)",
917
- },
918
- url: {
919
- validator: z.string(),
920
- description: "URL input with validation",
921
- },
922
- select: {
923
- validator: z.string(),
924
- description: "Single-select dropdown from enum values",
925
- },
926
- textarea: {
927
- validator: z.string(),
928
- description: "Multi-line text input for long values",
929
- },
930
- email: {
931
- validator: z.string().email().or(z.literal("")),
932
- description: "Email address input with validation",
933
- },
934
- color: {
935
- validator: z
936
- .string()
937
- .regex(/^#[0-9a-fA-F]{3,8}$/)
938
- .or(z.literal("")),
939
- description: "Color picker with hex value display",
940
- },
941
- radio: {
942
- validator: z.string(),
943
- description: "Single-select radio button group with descriptions",
944
- },
945
- multiselect: {
946
- validator: z.array(z.string()).or(z.string()),
947
- description: "Multi-select checkbox group for array values",
948
- },
949
- date: {
950
- validator: z.string(),
951
- description: "Date or date-time input",
952
- },
953
- json: {
954
- validator: z.string(),
955
- description: "JSON editor with syntax highlighting and validation",
956
- },
957
- code: {
958
- validator: z.string(),
959
- description: "Code editor with syntax highlighting",
960
- },
961
- array: {
962
- validator: z.array(z.unknown()),
963
- description: "Repeatable field group with add/remove items",
964
- },
965
- keyvalue: {
966
- validator: z.record(z.string(), z.string()),
967
- description: "Key-value pair editor with add/remove rows",
968
- },
969
- datetime: {
970
- validator: z.string(),
971
- description: "Date and time picker input",
972
- },
973
- file: {
974
- validator: z.string(),
975
- description: "File path or upload input",
976
- },
977
- custom: {
978
- validator: z.unknown(),
979
- description: "Plugin-provided custom React component",
980
- },
981
- markdown: {
982
- validator: z.string(),
983
- description: "Markdown editor with preview toggle",
984
- },
985
- "checkbox-group": {
986
- validator: z.array(z.string()).or(z.string()),
987
- description: "Checkbox group for multiple selections with descriptions",
988
- },
989
- group: {
990
- validator: z.record(z.string(), z.unknown()).or(z.string()),
991
- description: "Fieldset container for grouping related configuration",
992
- },
993
- table: {
994
- validator: z.array(z.record(z.string(), z.string())).or(z.string()),
995
- description: "Tabular data editor with add/remove rows",
996
- },
997
- },
998
- actions: {
999
- save: {
1000
- params: z.object({}),
1001
- description: "Save the current configuration",
1002
- },
1003
- reset: {
1004
- params: z.object({}),
1005
- description: "Reset all fields to their defaults",
1006
- },
1007
- testConnection: {
1008
- params: z.object({ key: z.string().optional() }),
1009
- description: "Test the connection/API key validity",
1010
- },
1011
- },
1012
- });
1013
-
1014
- // ── Schema traversal helpers ───────────────────────────────────────────
1015
-
1016
- export interface ResolvedField {
1017
- key: string;
1018
- schema: JsonSchemaProperty;
1019
- hint: ConfigUiHint;
1020
- fieldType: string;
1021
- required: boolean;
1022
- group: string;
1023
- order: number;
1024
- advanced: boolean;
1025
- hidden: boolean;
1026
- width: "full" | "half" | "third";
1027
- showIf?: ShowIfCondition;
1028
- visible?: VisibilityCondition;
1029
- validation?: ValidationConfig;
1030
- readonly: boolean;
1031
- }
1032
-
1033
- /**
1034
- * Walk a JSON Schema object's properties and resolve each to a field descriptor.
1035
- *
1036
- * This is the equivalent of json-render's spec traversal — it turns a declarative
1037
- * schema into an ordered list of renderable field descriptors.
1038
- */
1039
- export function resolveFields(
1040
- schema: JsonSchemaObject | JsonSchemaProperty,
1041
- hints: Record<string, ConfigUiHint>,
1042
- catalog: FieldCatalog,
1043
- ): ResolvedField[] {
1044
- const properties = schema.properties ?? {};
1045
- const requiredKeys = new Set(schema.required ?? []);
1046
- const fields: ResolvedField[] = [];
1047
-
1048
- // Field types that are compact enough for half-width columns
1049
- const HALF_WIDTH_TYPES = new Set([
1050
- "text",
1051
- "password",
1052
- "number",
1053
- "url",
1054
- "email",
1055
- "boolean",
1056
- "select",
1057
- "date",
1058
- "datetime",
1059
- "color",
1060
- "file",
1061
- ]);
1062
-
1063
- for (const [key, prop] of Object.entries(properties)) {
1064
- const hint = hints[key] ?? {};
1065
- const fieldType = catalog.resolveType(prop, hint);
1066
- fields.push({
1067
- key,
1068
- schema: prop,
1069
- hint,
1070
- fieldType,
1071
- required: requiredKeys.has(key),
1072
- group: hint.group ?? "general",
1073
- order: hint.order ?? 999,
1074
- advanced: hint.advanced ?? false,
1075
- hidden: hint.hidden ?? false,
1076
- width: hint.width ?? (HALF_WIDTH_TYPES.has(fieldType) ? "half" : "full"),
1077
- showIf: hint.showIf,
1078
- visible: hint.visible,
1079
- validation: hint.validation,
1080
- readonly: hint.readonly ?? false,
1081
- });
1082
- }
1083
-
1084
- // Sort: non-advanced before advanced, then by order, then alphabetically
1085
- fields.sort((a, b) => {
1086
- if (a.advanced !== b.advanced) return a.advanced ? 1 : -1;
1087
- if (a.order !== b.order) return a.order - b.order;
1088
- return a.key.localeCompare(b.key);
1089
- });
1090
-
1091
- return fields;
1092
- }