@elizaos/ui 2.0.0-alpha.385 → 2.0.0-alpha.392

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 (369) hide show
  1. package/apps/app-companion/src/components/companion/CompanionAppView.d.ts.map +1 -1
  2. package/apps/app-companion/src/components/companion/CompanionAppView.js +6 -4
  3. package/apps/app-companion/src/components/companion/CompanionView.d.ts.map +1 -1
  4. package/apps/app-companion/src/components/companion/CompanionView.js +6 -4
  5. package/apps/app-lifeops/src/api/client-lifeops.js +6 -0
  6. package/apps/app-lifeops/src/components/AppBlockerSettingsCard.d.ts +3 -0
  7. package/apps/app-lifeops/src/components/AppBlockerSettingsCard.d.ts.map +1 -0
  8. package/apps/app-lifeops/src/components/AppBlockerSettingsCard.js +189 -0
  9. package/apps/app-lifeops/src/components/BrowserBridgeSetupPanel.d.ts +2 -0
  10. package/apps/app-lifeops/src/components/BrowserBridgeSetupPanel.d.ts.map +1 -0
  11. package/apps/app-lifeops/src/components/BrowserBridgeSetupPanel.js +1065 -0
  12. package/apps/app-lifeops/src/components/BrowserBridgeStatusChip.d.ts +7 -0
  13. package/apps/app-lifeops/src/components/BrowserBridgeStatusChip.d.ts.map +1 -0
  14. package/apps/app-lifeops/src/components/BrowserBridgeStatusChip.js +71 -0
  15. package/apps/app-lifeops/src/components/DataSourcesStrip.d.ts +14 -0
  16. package/apps/app-lifeops/src/components/DataSourcesStrip.d.ts.map +1 -0
  17. package/apps/app-lifeops/src/components/DataSourcesStrip.js +36 -0
  18. package/apps/app-lifeops/src/components/EventEditorDrawer.d.ts +23 -0
  19. package/apps/app-lifeops/src/components/EventEditorDrawer.d.ts.map +1 -0
  20. package/apps/app-lifeops/src/components/EventEditorDrawer.js +514 -0
  21. package/apps/app-lifeops/src/components/LifeOpsActivitySignalsEffect.d.ts +2 -0
  22. package/apps/app-lifeops/src/components/LifeOpsActivitySignalsEffect.d.ts.map +1 -0
  23. package/apps/app-lifeops/src/components/LifeOpsActivitySignalsEffect.js +10 -0
  24. package/apps/app-lifeops/src/components/LifeOpsCalendarSection.d.ts +15 -0
  25. package/apps/app-lifeops/src/components/LifeOpsCalendarSection.d.ts.map +1 -0
  26. package/apps/app-lifeops/src/components/LifeOpsCalendarSection.js +515 -0
  27. package/apps/app-lifeops/src/components/LifeOpsChatAdapter.d.ts +34 -0
  28. package/apps/app-lifeops/src/components/LifeOpsChatAdapter.d.ts.map +1 -0
  29. package/apps/app-lifeops/src/components/LifeOpsChatAdapter.js +175 -0
  30. package/apps/app-lifeops/src/components/LifeOpsFeatureTogglesSection.d.ts +2 -0
  31. package/apps/app-lifeops/src/components/LifeOpsFeatureTogglesSection.d.ts.map +1 -0
  32. package/apps/app-lifeops/src/components/LifeOpsFeatureTogglesSection.js +99 -0
  33. package/apps/app-lifeops/src/components/LifeOpsHabitVisuals.d.ts +37 -0
  34. package/apps/app-lifeops/src/components/LifeOpsHabitVisuals.d.ts.map +1 -0
  35. package/apps/app-lifeops/src/components/LifeOpsHabitVisuals.js +88 -0
  36. package/apps/app-lifeops/src/components/LifeOpsInboxSection.d.ts +13 -0
  37. package/apps/app-lifeops/src/components/LifeOpsInboxSection.d.ts.map +1 -0
  38. package/apps/app-lifeops/src/components/LifeOpsInboxSection.js +490 -0
  39. package/apps/app-lifeops/src/components/LifeOpsLinkBankButton.d.ts +12 -0
  40. package/apps/app-lifeops/src/components/LifeOpsLinkBankButton.d.ts.map +1 -0
  41. package/apps/app-lifeops/src/components/LifeOpsLinkBankButton.js +92 -0
  42. package/apps/app-lifeops/src/components/LifeOpsLinkPaypalButton.d.ts +12 -0
  43. package/apps/app-lifeops/src/components/LifeOpsLinkPaypalButton.d.ts.map +1 -0
  44. package/apps/app-lifeops/src/components/LifeOpsLinkPaypalButton.js +160 -0
  45. package/apps/app-lifeops/src/components/LifeOpsMoneySection.d.ts +3 -0
  46. package/apps/app-lifeops/src/components/LifeOpsMoneySection.d.ts.map +1 -0
  47. package/apps/app-lifeops/src/components/LifeOpsMoneySection.js +373 -0
  48. package/apps/app-lifeops/src/components/LifeOpsNavRail.d.ts +9 -0
  49. package/apps/app-lifeops/src/components/LifeOpsNavRail.d.ts.map +1 -0
  50. package/apps/app-lifeops/src/components/LifeOpsNavRail.js +93 -0
  51. package/apps/app-lifeops/src/components/LifeOpsOperationalPanels.d.ts +4 -0
  52. package/apps/app-lifeops/src/components/LifeOpsOperationalPanels.d.ts.map +1 -0
  53. package/apps/app-lifeops/src/components/LifeOpsOperationalPanels.js +274 -0
  54. package/apps/app-lifeops/src/components/LifeOpsOverviewSection.d.ts +7 -0
  55. package/apps/app-lifeops/src/components/LifeOpsOverviewSection.d.ts.map +1 -0
  56. package/apps/app-lifeops/src/components/LifeOpsOverviewSection.js +657 -0
  57. package/apps/app-lifeops/src/components/LifeOpsPageSections.d.ts +42 -0
  58. package/apps/app-lifeops/src/components/LifeOpsPageSections.d.ts.map +1 -0
  59. package/apps/app-lifeops/src/components/LifeOpsPageSections.js +166 -0
  60. package/apps/app-lifeops/src/components/LifeOpsPageView.d.ts +2 -0
  61. package/apps/app-lifeops/src/components/LifeOpsPageView.d.ts.map +1 -0
  62. package/apps/app-lifeops/src/components/LifeOpsPageView.js +566 -0
  63. package/apps/app-lifeops/src/components/LifeOpsRemindersSection.d.ts +2 -0
  64. package/apps/app-lifeops/src/components/LifeOpsRemindersSection.d.ts.map +1 -0
  65. package/apps/app-lifeops/src/components/LifeOpsRemindersSection.js +749 -0
  66. package/apps/app-lifeops/src/components/LifeOpsResizableSidebar.d.ts +27 -0
  67. package/apps/app-lifeops/src/components/LifeOpsResizableSidebar.d.ts.map +1 -0
  68. package/apps/app-lifeops/src/components/LifeOpsResizableSidebar.js +106 -0
  69. package/apps/app-lifeops/src/components/LifeOpsScreenTimeSection.d.ts +2 -0
  70. package/apps/app-lifeops/src/components/LifeOpsScreenTimeSection.d.ts.map +1 -0
  71. package/apps/app-lifeops/src/components/LifeOpsScreenTimeSection.js +373 -0
  72. package/apps/app-lifeops/src/components/LifeOpsSectionContent.d.ts +10 -0
  73. package/apps/app-lifeops/src/components/LifeOpsSectionContent.d.ts.map +1 -0
  74. package/apps/app-lifeops/src/components/LifeOpsSectionContent.js +30 -0
  75. package/apps/app-lifeops/src/components/LifeOpsSelectionContext.d.ts +21 -0
  76. package/apps/app-lifeops/src/components/LifeOpsSelectionContext.d.ts.map +1 -0
  77. package/apps/app-lifeops/src/components/LifeOpsSelectionContext.js +30 -0
  78. package/apps/app-lifeops/src/components/LifeOpsSettingsSection.d.ts +20 -0
  79. package/apps/app-lifeops/src/components/LifeOpsSettingsSection.d.ts.map +1 -0
  80. package/apps/app-lifeops/src/components/LifeOpsSettingsSection.js +597 -0
  81. package/apps/app-lifeops/src/components/LifeOpsSetupGate.d.ts +13 -0
  82. package/apps/app-lifeops/src/components/LifeOpsSetupGate.d.ts.map +1 -0
  83. package/apps/app-lifeops/src/components/LifeOpsSetupGate.js +134 -0
  84. package/apps/app-lifeops/src/components/LifeOpsSleepSection.d.ts +10 -0
  85. package/apps/app-lifeops/src/components/LifeOpsSleepSection.d.ts.map +1 -0
  86. package/apps/app-lifeops/src/components/LifeOpsSleepSection.js +425 -0
  87. package/apps/app-lifeops/src/components/LifeOpsWorkspaceShell.d.ts +11 -0
  88. package/apps/app-lifeops/src/components/LifeOpsWorkspaceShell.d.ts.map +1 -0
  89. package/apps/app-lifeops/src/components/LifeOpsWorkspaceShell.js +49 -0
  90. package/apps/app-lifeops/src/components/LifeOpsWorkspaceView.d.ts +2 -0
  91. package/apps/app-lifeops/src/components/LifeOpsWorkspaceView.d.ts.map +1 -0
  92. package/apps/app-lifeops/src/components/LifeOpsWorkspaceView.js +1041 -0
  93. package/apps/app-lifeops/src/components/MessagingConnectorCards.d.ts +7 -0
  94. package/apps/app-lifeops/src/components/MessagingConnectorCards.d.ts.map +1 -0
  95. package/apps/app-lifeops/src/components/MessagingConnectorCards.js +643 -0
  96. package/apps/app-lifeops/src/components/MissingSourceCard.d.ts +9 -0
  97. package/apps/app-lifeops/src/components/MissingSourceCard.d.ts.map +1 -0
  98. package/apps/app-lifeops/src/components/MissingSourceCard.js +5 -0
  99. package/apps/app-lifeops/src/components/MobileSignalsSetupCard.d.ts +2 -0
  100. package/apps/app-lifeops/src/components/MobileSignalsSetupCard.d.ts.map +1 -0
  101. package/apps/app-lifeops/src/components/MobileSignalsSetupCard.js +163 -0
  102. package/apps/app-lifeops/src/components/SleepInspectionPanel.d.ts +8 -0
  103. package/apps/app-lifeops/src/components/SleepInspectionPanel.d.ts.map +1 -0
  104. package/apps/app-lifeops/src/components/SleepInspectionPanel.js +59 -0
  105. package/apps/app-lifeops/src/components/WebsiteBlockerSettingsCard.d.ts +3 -0
  106. package/apps/app-lifeops/src/components/WebsiteBlockerSettingsCard.d.ts.map +1 -0
  107. package/apps/app-lifeops/src/components/WebsiteBlockerSettingsCard.js +75 -0
  108. package/apps/app-lifeops/src/components/WhatsAppQrOverlay.d.ts +8 -0
  109. package/apps/app-lifeops/src/components/WhatsAppQrOverlay.d.ts.map +1 -0
  110. package/apps/app-lifeops/src/components/WhatsAppQrOverlay.js +48 -0
  111. package/apps/app-lifeops/src/components/lifeops-labels.d.ts +2 -0
  112. package/apps/app-lifeops/src/components/lifeops-labels.d.ts.map +1 -0
  113. package/apps/app-lifeops/src/components/lifeops-labels.js +5 -0
  114. package/apps/app-lifeops/src/events/index.d.ts +34 -0
  115. package/apps/app-lifeops/src/events/index.d.ts.map +1 -0
  116. package/apps/app-lifeops/src/events/index.js +23 -0
  117. package/apps/app-lifeops/src/hooks/useCalendarWeek.d.ts +28 -0
  118. package/apps/app-lifeops/src/hooks/useCalendarWeek.d.ts.map +1 -0
  119. package/apps/app-lifeops/src/hooks/useCalendarWeek.js +93 -0
  120. package/apps/app-lifeops/src/hooks/useDiscordConnector.d.ts +14 -0
  121. package/apps/app-lifeops/src/hooks/useDiscordConnector.d.ts.map +1 -0
  122. package/apps/app-lifeops/src/hooks/useDiscordConnector.js +126 -0
  123. package/apps/app-lifeops/src/hooks/useGoogleLifeOpsConnector.d.ts +29 -0
  124. package/apps/app-lifeops/src/hooks/useGoogleLifeOpsConnector.d.ts.map +1 -0
  125. package/apps/app-lifeops/src/hooks/useGoogleLifeOpsConnector.js +481 -0
  126. package/apps/app-lifeops/src/hooks/useIMessageConnector.d.ts +10 -0
  127. package/apps/app-lifeops/src/hooks/useIMessageConnector.d.ts.map +1 -0
  128. package/apps/app-lifeops/src/hooks/useIMessageConnector.js +50 -0
  129. package/apps/app-lifeops/src/hooks/useInbox.d.ts +34 -0
  130. package/apps/app-lifeops/src/hooks/useInbox.d.ts.map +1 -0
  131. package/apps/app-lifeops/src/hooks/useInbox.js +98 -0
  132. package/apps/app-lifeops/src/hooks/useLifeOpsActivitySignals.d.ts +2 -0
  133. package/apps/app-lifeops/src/hooks/useLifeOpsActivitySignals.d.ts.map +1 -0
  134. package/apps/app-lifeops/src/hooks/useLifeOpsActivitySignals.js +383 -0
  135. package/apps/app-lifeops/src/hooks/useLifeOpsAppState.d.ts +9 -0
  136. package/apps/app-lifeops/src/hooks/useLifeOpsAppState.d.ts.map +1 -0
  137. package/apps/app-lifeops/src/hooks/useLifeOpsAppState.js +83 -0
  138. package/apps/app-lifeops/src/hooks/useLifeOpsCapabilitiesStatus.d.ts +8 -0
  139. package/apps/app-lifeops/src/hooks/useLifeOpsCapabilitiesStatus.d.ts.map +1 -0
  140. package/apps/app-lifeops/src/hooks/useLifeOpsCapabilitiesStatus.js +60 -0
  141. package/apps/app-lifeops/src/hooks/useLifeOpsScheduleInspection.d.ts +18 -0
  142. package/apps/app-lifeops/src/hooks/useLifeOpsScheduleInspection.d.ts.map +1 -0
  143. package/apps/app-lifeops/src/hooks/useLifeOpsScheduleInspection.js +66 -0
  144. package/apps/app-lifeops/src/hooks/useLifeOpsScheduleState.d.ts +14 -0
  145. package/apps/app-lifeops/src/hooks/useLifeOpsScheduleState.d.ts.map +1 -0
  146. package/apps/app-lifeops/src/hooks/useLifeOpsScheduleState.js +79 -0
  147. package/apps/app-lifeops/src/hooks/useLifeOpsSection.d.ts +18 -0
  148. package/apps/app-lifeops/src/hooks/useLifeOpsSection.d.ts.map +1 -0
  149. package/apps/app-lifeops/src/hooks/useLifeOpsSection.js +78 -0
  150. package/apps/app-lifeops/src/hooks/useLifeOpsXConnector.d.ts +14 -0
  151. package/apps/app-lifeops/src/hooks/useLifeOpsXConnector.d.ts.map +1 -0
  152. package/apps/app-lifeops/src/hooks/useLifeOpsXConnector.js +160 -0
  153. package/apps/app-lifeops/src/hooks/useSignalConnector.d.ts +16 -0
  154. package/apps/app-lifeops/src/hooks/useSignalConnector.d.ts.map +1 -0
  155. package/apps/app-lifeops/src/hooks/useSignalConnector.js +198 -0
  156. package/apps/app-lifeops/src/hooks/useTelegramConnector.d.ts +21 -0
  157. package/apps/app-lifeops/src/hooks/useTelegramConnector.d.ts.map +1 -0
  158. package/apps/app-lifeops/src/hooks/useTelegramConnector.js +177 -0
  159. package/apps/app-lifeops/src/hooks/useWhatsAppConnector.d.ts +8 -0
  160. package/apps/app-lifeops/src/hooks/useWhatsAppConnector.d.ts.map +1 -0
  161. package/apps/app-lifeops/src/hooks/useWhatsAppConnector.js +58 -0
  162. package/apps/app-lifeops/src/hooks/useWhatsAppPairing.d.ts +12 -0
  163. package/apps/app-lifeops/src/hooks/useWhatsAppPairing.d.ts.map +1 -0
  164. package/apps/app-lifeops/src/hooks/useWhatsAppPairing.js +152 -0
  165. package/apps/app-lifeops/src/lifeops/discord-browser-scraper.js +1 -1
  166. package/apps/app-lifeops/src/lifeops/google-gmail.d.ts.map +1 -1
  167. package/apps/app-lifeops/src/lifeops/google-gmail.js +74 -26
  168. package/apps/app-lifeops/src/lifeops/google-managed-client.d.ts.map +1 -1
  169. package/apps/app-lifeops/src/lifeops/google-managed-client.js +4 -5
  170. package/apps/app-lifeops/src/lifeops/google-oauth.d.ts.map +1 -1
  171. package/apps/app-lifeops/src/lifeops/google-oauth.js +2 -2
  172. package/apps/app-lifeops/src/lifeops/owner-profile.d.ts.map +1 -1
  173. package/apps/app-lifeops/src/lifeops/owner-profile.js +1 -1
  174. package/apps/app-lifeops/src/lifeops/paypal-managed-client.d.ts.map +1 -1
  175. package/apps/app-lifeops/src/lifeops/paypal-managed-client.js +4 -5
  176. package/apps/app-lifeops/src/lifeops/plaid-managed-client.d.ts.map +1 -1
  177. package/apps/app-lifeops/src/lifeops/plaid-managed-client.js +4 -5
  178. package/apps/app-lifeops/src/lifeops/schedule-sync-client.js +2 -2
  179. package/apps/app-lifeops/src/lifeops/service-constants.d.ts +1 -0
  180. package/apps/app-lifeops/src/lifeops/service-constants.d.ts.map +1 -1
  181. package/apps/app-lifeops/src/lifeops/service-constants.js +1 -0
  182. package/apps/app-lifeops/src/lifeops/service-mixin-core.d.ts +1 -1
  183. package/apps/app-lifeops/src/lifeops/service-mixin-core.d.ts.map +1 -1
  184. package/apps/app-lifeops/src/lifeops/service-mixin-core.js +2 -1
  185. package/apps/app-lifeops/src/lifeops/service-mixin-imessage.js +1 -1
  186. package/apps/app-lifeops/src/lifeops/service-mixin-inbox.d.ts +3 -1
  187. package/apps/app-lifeops/src/lifeops/service-mixin-inbox.d.ts.map +1 -1
  188. package/apps/app-lifeops/src/lifeops/service-mixin-inbox.js +42 -13
  189. package/apps/app-lifeops/src/lifeops/service-mixin-reminders.d.ts.map +1 -1
  190. package/apps/app-lifeops/src/lifeops/service-mixin-reminders.js +3 -2
  191. package/apps/app-lifeops/src/lifeops/service-mixin-workflows.d.ts.map +1 -1
  192. package/apps/app-lifeops/src/lifeops/service-mixin-workflows.js +1 -1
  193. package/apps/app-lifeops/src/lifeops/service-normalize-calendar.d.ts.map +1 -1
  194. package/apps/app-lifeops/src/lifeops/service-normalize-calendar.js +3 -3
  195. package/apps/app-lifeops/src/lifeops/service-normalize-connector.d.ts +1 -1
  196. package/apps/app-lifeops/src/lifeops/service-normalize-connector.d.ts.map +1 -1
  197. package/apps/app-lifeops/src/lifeops/service-normalize-connector.js +2 -2
  198. package/apps/app-lifeops/src/lifeops/signal-auth.d.ts.map +1 -1
  199. package/apps/app-lifeops/src/lifeops/signal-auth.js +6 -3
  200. package/apps/app-lifeops/src/lifeops/telegram-auth.js +1 -1
  201. package/apps/app-lifeops/src/lifeops/travel-adapters/duffel.d.ts.map +1 -1
  202. package/apps/app-lifeops/src/lifeops/travel-adapters/duffel.js +31 -6
  203. package/apps/app-lifeops/src/lifeops/twilio.js +1 -1
  204. package/apps/app-lifeops/src/lifeops/x-poster.d.ts.map +1 -1
  205. package/apps/app-lifeops/src/lifeops/x-poster.js +13 -3
  206. package/apps/app-lifeops/src/lifeops-route.d.ts +74 -0
  207. package/apps/app-lifeops/src/lifeops-route.d.ts.map +1 -0
  208. package/apps/app-lifeops/src/lifeops-route.js +204 -0
  209. package/apps/app-lifeops/src/platform/lifeops-github.d.ts +15 -0
  210. package/apps/app-lifeops/src/platform/lifeops-github.d.ts.map +1 -0
  211. package/apps/app-lifeops/src/platform/lifeops-github.js +135 -0
  212. package/apps/app-lifeops/src/routes/cloud-features-routes.d.ts +2 -2
  213. package/apps/app-lifeops/src/routes/cloud-features-routes.d.ts.map +1 -1
  214. package/apps/app-lifeops/src/routes/cloud-features-routes.js +5 -3
  215. package/apps/app-lifeops/src/routes/lifeops-routes.d.ts.map +1 -1
  216. package/apps/app-lifeops/src/routes/lifeops-routes.js +15 -3
  217. package/apps/app-lifeops/src/routes/plugin.d.ts.map +1 -1
  218. package/apps/app-lifeops/src/routes/plugin.js +10 -1
  219. package/apps/app-lifeops/src/routes/travel-provider-relay-routes.d.ts +1 -1
  220. package/apps/app-lifeops/src/routes/travel-provider-relay-routes.d.ts.map +1 -1
  221. package/apps/app-lifeops/src/routes/travel-provider-relay-routes.js +4 -2
  222. package/apps/app-lifeops/src/routes/website-blocker-routes.d.ts +1 -1
  223. package/apps/app-lifeops/src/routes/website-blocker-routes.d.ts.map +1 -1
  224. package/apps/app-lifeops/src/ui.d.ts +11 -0
  225. package/apps/app-lifeops/src/ui.d.ts.map +1 -0
  226. package/apps/app-lifeops/src/ui.js +9 -0
  227. package/apps/app-lifeops/src/utils/lifeops-url.d.ts +5 -0
  228. package/apps/app-lifeops/src/utils/lifeops-url.d.ts.map +1 -0
  229. package/apps/app-lifeops/src/utils/lifeops-url.js +35 -0
  230. package/apps/app-lifeops/src/website-blocker/access.d.ts.map +1 -1
  231. package/apps/app-lifeops/src/website-blocker/access.js +1 -1
  232. package/apps/app-steward/src/routes/steward-compat-routes.d.ts +1 -1
  233. package/apps/app-steward/src/routes/steward-compat-routes.d.ts.map +1 -1
  234. package/apps/app-steward/src/routes/steward-compat-routes.js +3 -1
  235. package/apps/app-steward/src/routes/wallet-browser-compat-routes.d.ts +1 -1
  236. package/apps/app-steward/src/routes/wallet-browser-compat-routes.d.ts.map +1 -1
  237. package/apps/app-steward/src/routes/wallet-browser-compat-routes.js +3 -1
  238. package/apps/app-steward/src/routes/wallet-bsc-core-routes.d.ts.map +1 -1
  239. package/apps/app-steward/src/routes/wallet-bsc-core-routes.js +2 -1
  240. package/apps/app-steward/src/routes/wallet-compat-routes.d.ts +1 -1
  241. package/apps/app-steward/src/routes/wallet-compat-routes.d.ts.map +1 -1
  242. package/apps/app-steward/src/routes/wallet-compat-routes.js +3 -1
  243. package/apps/app-steward/src/routes/wallet-core-routes.d.ts.map +1 -1
  244. package/apps/app-steward/src/routes/wallet-core-routes.js +2 -1
  245. package/apps/app-steward/src/routes/wallet-trade-compat-routes.d.ts +1 -1
  246. package/apps/app-steward/src/routes/wallet-trade-compat-routes.d.ts.map +1 -1
  247. package/apps/app-steward/src/routes/wallet-trade-compat-routes.js +3 -1
  248. package/apps/app-training/src/core/dataset-generator.d.ts +1 -1
  249. package/apps/app-training/src/core/dataset-generator.d.ts.map +1 -1
  250. package/apps/app-training/src/core/roleplay-executor.d.ts +1 -1
  251. package/apps/app-training/src/core/roleplay-executor.d.ts.map +1 -1
  252. package/apps/app-training/src/core/trajectory-task-datasets.d.ts +1 -1
  253. package/apps/app-training/src/core/trajectory-task-datasets.d.ts.map +1 -1
  254. package/apps/app-training/src/index.d.ts +1 -2
  255. package/apps/app-training/src/index.d.ts.map +1 -1
  256. package/apps/app-training/src/index.js +1 -2
  257. package/apps/app-training/src/routes/training-routes.d.ts +1 -1
  258. package/apps/app-training/src/routes/training-routes.d.ts.map +1 -1
  259. package/apps/app-training/src/routes/training-routes.js +1 -1
  260. package/apps/app-training/src/routes/trajectory-routes.d.ts +1 -1
  261. package/apps/app-training/src/routes/trajectory-routes.d.ts.map +1 -1
  262. package/apps/app-training/src/routes/trajectory-routes.js +3 -1
  263. package/apps/app-training/src/services/training-service-like.d.ts +1 -1
  264. package/apps/app-training/src/services/training-service-like.d.ts.map +1 -1
  265. package/apps/app-training/src/services/training-service.d.ts +1 -1
  266. package/apps/app-training/src/services/training-service.d.ts.map +1 -1
  267. package/package.json +1 -1
  268. package/packages/agent/src/api/provider-switch-config.js +1 -1
  269. package/packages/agent/src/api/server-helpers-auth.d.ts.map +1 -1
  270. package/packages/agent/src/api/server-helpers-auth.js +5 -4
  271. package/packages/agent/src/providers/media-provider.d.ts +1 -1
  272. package/packages/agent/src/providers/media-provider.d.ts.map +1 -1
  273. package/packages/app-core/src/App.d.ts.map +1 -1
  274. package/packages/app-core/src/App.js +20 -12
  275. package/packages/app-core/src/api/auth.d.ts.map +1 -1
  276. package/packages/app-core/src/api/auth.js +5 -5
  277. package/packages/app-core/src/api/client-types-experience.d.ts +7 -0
  278. package/packages/app-core/src/api/client-types-experience.d.ts.map +1 -1
  279. package/packages/app-core/src/components/apps/helpers.d.ts +1 -1
  280. package/packages/app-core/src/components/apps/helpers.d.ts.map +1 -1
  281. package/packages/app-core/src/components/apps/helpers.js +1 -0
  282. package/packages/app-core/src/components/apps/internal-tool-apps.d.ts +11 -0
  283. package/packages/app-core/src/components/apps/internal-tool-apps.d.ts.map +1 -1
  284. package/packages/app-core/src/components/apps/internal-tool-apps.js +31 -0
  285. package/packages/app-core/src/components/apps/launch-history.d.ts +16 -0
  286. package/packages/app-core/src/components/apps/launch-history.d.ts.map +1 -0
  287. package/packages/app-core/src/components/apps/launch-history.js +77 -0
  288. package/packages/app-core/src/components/apps/per-app-config.d.ts +19 -0
  289. package/packages/app-core/src/components/apps/per-app-config.d.ts.map +1 -0
  290. package/packages/app-core/src/components/apps/per-app-config.js +99 -0
  291. package/packages/app-core/src/components/apps/useRegistryCatalog.d.ts +14 -0
  292. package/packages/app-core/src/components/apps/useRegistryCatalog.d.ts.map +1 -0
  293. package/packages/app-core/src/components/apps/useRegistryCatalog.js +52 -0
  294. package/packages/app-core/src/components/auth/LoginView.d.ts +1 -19
  295. package/packages/app-core/src/components/auth/LoginView.d.ts.map +1 -1
  296. package/packages/app-core/src/components/auth/LoginView.js +4 -99
  297. package/packages/app-core/src/components/character/CharacterExperienceWorkspace.d.ts.map +1 -1
  298. package/packages/app-core/src/components/character/CharacterExperienceWorkspace.js +14 -2
  299. package/packages/app-core/src/components/character/character-hub-helpers.d.ts.map +1 -1
  300. package/packages/app-core/src/components/character/character-hub-helpers.js +7 -0
  301. package/packages/app-core/src/components/character/character-hub-types.d.ts +7 -0
  302. package/packages/app-core/src/components/character/character-hub-types.d.ts.map +1 -1
  303. package/packages/app-core/src/components/onboarding/BootstrapStep.d.ts.map +1 -1
  304. package/packages/app-core/src/components/onboarding/BootstrapStep.js +3 -2
  305. package/packages/app-core/src/components/pages/AppDetailsView.d.ts +36 -0
  306. package/packages/app-core/src/components/pages/AppDetailsView.d.ts.map +1 -0
  307. package/packages/app-core/src/components/pages/AppDetailsView.js +289 -0
  308. package/packages/app-core/src/components/pages/AppsView.d.ts.map +1 -1
  309. package/packages/app-core/src/components/pages/AppsView.js +134 -42
  310. package/packages/app-core/src/components/shell/StartupShell.d.ts.map +1 -1
  311. package/packages/app-core/src/components/shell/StartupShell.js +2 -5
  312. package/packages/app-core/src/i18n/locales/en.json +256 -205
  313. package/packages/app-core/src/i18n/locales/es.json +256 -205
  314. package/packages/app-core/src/i18n/locales/ko.json +256 -205
  315. package/packages/app-core/src/i18n/locales/pt.json +256 -205
  316. package/packages/app-core/src/i18n/locales/tl.json +256 -205
  317. package/packages/app-core/src/i18n/locales/vi.json +256 -205
  318. package/packages/app-core/src/i18n/locales/zh-CN.json +256 -205
  319. package/packages/app-core/src/navigation/index.d.ts.map +1 -1
  320. package/packages/app-core/src/navigation/index.js +6 -0
  321. package/packages/app-core/src/shell/AppWindowRenderer.d.ts +17 -0
  322. package/packages/app-core/src/shell/AppWindowRenderer.d.ts.map +1 -0
  323. package/packages/app-core/src/shell/AppWindowRenderer.js +337 -0
  324. package/packages/app-core/src/shell/DetachedShellRoot.js +4 -1
  325. package/packages/app-core/src/shell/index.d.ts +1 -0
  326. package/packages/app-core/src/shell/index.d.ts.map +1 -1
  327. package/packages/app-core/src/shell/index.js +1 -0
  328. package/packages/app-core/src/state/startup-coordinator.d.ts.map +1 -1
  329. package/packages/app-core/src/state/startup-coordinator.js +0 -3
  330. package/packages/app-core/src/state/startup-phase-poll.d.ts.map +1 -1
  331. package/packages/app-core/src/state/startup-phase-poll.js +2 -4
  332. package/packages/app-core/src/state/usePluginsSkillsState.d.ts +6 -6
  333. package/packages/native-plugins/mobile-signals/src/definitions.d.ts +162 -0
  334. package/packages/native-plugins/mobile-signals/src/definitions.d.ts.map +1 -0
  335. package/packages/native-plugins/mobile-signals/src/definitions.js +1 -0
  336. package/packages/native-plugins/mobile-signals/src/index.d.ts +4 -0
  337. package/packages/native-plugins/mobile-signals/src/index.d.ts.map +1 -0
  338. package/packages/native-plugins/mobile-signals/src/index.js +6 -0
  339. package/packages/native-plugins/mobile-signals/src/web.d.ts +29 -0
  340. package/packages/native-plugins/mobile-signals/src/web.d.ts.map +1 -0
  341. package/packages/native-plugins/mobile-signals/src/web.js +269 -0
  342. package/packages/shared/src/app-hero-art.d.ts.map +1 -1
  343. package/packages/shared/src/app-hero-art.js +13 -0
  344. package/packages/shared/src/contracts/lifeops.d.ts +10 -0
  345. package/packages/shared/src/contracts/lifeops.d.ts.map +1 -1
  346. package/packages/shared/src/contracts/lifeops.js +5 -0
  347. package/packages/typescript/src/features/advanced-capabilities/experience/actions/record-experience.d.ts.map +1 -1
  348. package/packages/typescript/src/features/advanced-capabilities/experience/actions/record-experience.js +46 -4
  349. package/packages/typescript/src/features/advanced-capabilities/experience/evaluators/experienceEvaluator.d.ts.map +1 -1
  350. package/packages/typescript/src/features/advanced-capabilities/experience/evaluators/experienceEvaluator.js +34 -124
  351. package/packages/typescript/src/features/advanced-capabilities/experience/service.d.ts.map +1 -1
  352. package/packages/typescript/src/features/advanced-capabilities/experience/service.js +56 -0
  353. package/packages/typescript/src/features/advanced-capabilities/experience/types.d.ts +7 -0
  354. package/packages/typescript/src/features/advanced-capabilities/experience/types.d.ts.map +1 -1
  355. package/packages/typescript/src/features/advanced-capabilities/experience/utils/experienceText.d.ts +7 -0
  356. package/packages/typescript/src/features/advanced-capabilities/experience/utils/experienceText.d.ts.map +1 -0
  357. package/packages/typescript/src/features/advanced-capabilities/experience/utils/experienceText.js +123 -0
  358. package/apps/app-training/src/ui/FineTuningView.d.ts +0 -5
  359. package/apps/app-training/src/ui/FineTuningView.d.ts.map +0 -1
  360. package/apps/app-training/src/ui/FineTuningView.js +0 -388
  361. package/apps/app-training/src/ui/fine-tuning-panels.d.ts +0 -111
  362. package/apps/app-training/src/ui/fine-tuning-panels.d.ts.map +0 -1
  363. package/apps/app-training/src/ui/fine-tuning-panels.js +0 -130
  364. package/apps/app-training/src/ui/index.d.ts +0 -3
  365. package/apps/app-training/src/ui/index.d.ts.map +0 -1
  366. package/apps/app-training/src/ui/index.js +0 -2
  367. package/packages/app-core/src/api/trusted-local-request.d.ts +0 -4
  368. package/packages/app-core/src/api/trusted-local-request.d.ts.map +0 -1
  369. package/packages/app-core/src/api/trusted-local-request.js +0 -176
@@ -0,0 +1,93 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { TooltipHint } from "@elizaos/app-core";
3
+ import { Sidebar, SidebarContent, SidebarPanel, SidebarScrollRegion, TooltipProvider, } from "@elizaos/ui";
4
+ import { BriefcaseBusiness, CalendarDays, CreditCard, LayoutDashboard, Mail, MessageSquare, Monitor, Moon, Settings2, } from "lucide-react";
5
+ const NAV_GROUPS = [
6
+ {
7
+ key: "today",
8
+ label: "Today",
9
+ items: [
10
+ {
11
+ id: "overview",
12
+ label: "Overview",
13
+ icon: _jsx(LayoutDashboard, { className: "h-4 w-4", "aria-hidden": true }),
14
+ dotColor: "bg-violet-400",
15
+ },
16
+ {
17
+ id: "sleep",
18
+ label: "Sleep",
19
+ icon: _jsx(Moon, { className: "h-4 w-4", "aria-hidden": true }),
20
+ dotColor: "bg-blue-300",
21
+ },
22
+ {
23
+ id: "screen-time",
24
+ label: "Screen Time",
25
+ icon: _jsx(Monitor, { className: "h-4 w-4", "aria-hidden": true }),
26
+ dotColor: "bg-amber-300",
27
+ },
28
+ {
29
+ id: "messages",
30
+ label: "Messages",
31
+ icon: _jsx(MessageSquare, { className: "h-4 w-4", "aria-hidden": true }),
32
+ dotColor: "bg-emerald-400",
33
+ },
34
+ {
35
+ id: "mail",
36
+ label: "Mail",
37
+ icon: _jsx(Mail, { className: "h-4 w-4", "aria-hidden": true }),
38
+ dotColor: "bg-rose-400",
39
+ },
40
+ {
41
+ id: "calendar",
42
+ label: "Calendar",
43
+ icon: _jsx(CalendarDays, { className: "h-4 w-4", "aria-hidden": true }),
44
+ dotColor: "bg-blue-400",
45
+ },
46
+ {
47
+ id: "reminders",
48
+ label: "Reminders",
49
+ icon: _jsx(BriefcaseBusiness, { className: "h-4 w-4", "aria-hidden": true }),
50
+ dotColor: "bg-amber-400",
51
+ },
52
+ {
53
+ id: "money",
54
+ label: "Money",
55
+ icon: _jsx(CreditCard, { className: "h-4 w-4", "aria-hidden": true }),
56
+ dotColor: "bg-green-400",
57
+ },
58
+ ],
59
+ },
60
+ {
61
+ key: "config",
62
+ label: "Configure",
63
+ items: [
64
+ {
65
+ id: "setup",
66
+ label: "Settings",
67
+ icon: _jsx(Settings2, { className: "h-4 w-4", "aria-hidden": true }),
68
+ dotColor: "bg-rose-400",
69
+ },
70
+ ],
71
+ },
72
+ ];
73
+ const NAV_ITEMS = NAV_GROUPS.flatMap((group) => group.items);
74
+ export function LifeOpsNavRail({ activeSection, onNavigate, collapsible = true, }) {
75
+ const collapsedRailItems = NAV_ITEMS.map((item) => {
76
+ const isActive = item.id === activeSection;
77
+ return (_jsx(SidebarContent.RailItem, { "aria-label": item.label, title: item.label, active: isActive, onClick: () => onNavigate(item.id), children: item.icon }, item.id));
78
+ });
79
+ return (_jsx(TooltipProvider, { delayDuration: 320, skipDelayDuration: 120, children: _jsx(Sidebar, { testId: "lifeops-nav-rail", collapsible: collapsible, contentIdentity: "lifeops", syncId: "lifeops-sidebar", collapseButtonAriaLabel: "Collapse LifeOps sidebar", expandButtonAriaLabel: "Expand LifeOps sidebar", header: undefined, className: "!mt-0 !h-full !w-full !min-w-0 xl:!w-full xl:!min-w-0 !bg-none !bg-transparent !rounded-none !border-0 !shadow-none !backdrop-blur-none !ring-0", headerClassName: "!h-0 !min-h-0 !p-0 !m-0 !overflow-hidden", collapseButtonClassName: "!h-7 !w-7 !border-0 !bg-transparent !shadow-none hover:!bg-bg-muted/60", "aria-label": "LifeOps sections", collapsedRailItems: collapsible ? collapsedRailItems : undefined, children: _jsx(SidebarScrollRegion, { className: "px-1 pb-3 pt-0", children: _jsx(SidebarPanel, { className: "bg-transparent gap-0 p-0 shadow-none", children: _jsx("div", { className: "space-y-3", children: NAV_GROUPS.map((group, groupIndex) => (_jsx("div", { className: groupIndex > 0 ? "border-t border-border/10 pt-3" : "", children: _jsx("div", { className: "space-y-0.5 px-1", children: group.items.map((item) => {
80
+ const isActive = item.id === activeSection;
81
+ return (_jsx(TooltipHint, { content: item.label, side: "right", children: _jsxs("button", { type: "button", "aria-label": item.label, "aria-current": isActive ? "page" : undefined, onClick: () => onNavigate(item.id), "data-sidebar-item": true, className: [
82
+ "group flex w-full min-w-0 items-center gap-2.5 rounded-[var(--radius-sm)] px-2.5 py-1.5 text-left transition-colors",
83
+ isActive
84
+ ? "bg-accent/15 text-txt"
85
+ : "text-txt hover:bg-bg-muted/50",
86
+ ].join(" "), children: [_jsx("span", { className: [
87
+ "flex h-6 w-6 shrink-0 items-center justify-center rounded-[var(--radius-sm)] transition-colors",
88
+ isActive
89
+ ? "bg-white/8 text-txt"
90
+ : "bg-transparent text-muted/80 group-hover:text-txt",
91
+ ].join(" "), children: item.icon }), _jsx("span", { className: "min-w-0 flex-1 truncate text-xs-tight font-medium", children: item.label }), _jsx("span", { "aria-hidden": true, className: `h-1.5 w-1.5 rounded-full ${item.dotColor} opacity-60` })] }) }, item.id));
92
+ }) }) }, group.key))) }) }) }) }) }));
93
+ }
@@ -0,0 +1,4 @@
1
+ export declare function LifeOpsCapabilitiesPanel(): import("react/jsx-runtime").JSX.Element;
2
+ export declare function LifeOpsSchedulePanel(): import("react/jsx-runtime").JSX.Element;
3
+ export declare function LifeOpsXPanel(): import("react/jsx-runtime").JSX.Element;
4
+ //# sourceMappingURL=LifeOpsOperationalPanels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LifeOpsOperationalPanels.d.ts","sourceRoot":"","sources":["../../../../../../../apps/app-lifeops/src/components/LifeOpsOperationalPanels.tsx"],"names":[],"mappings":"AA4IA,wBAAgB,wBAAwB,4CA6FvC;AAED,wBAAgB,oBAAoB,4CAoUnC;AAED,wBAAgB,aAAa,4CA0N5B"}
@@ -0,0 +1,274 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Badge, Button, client, isCloudStatusAuthenticated, useApp, } from "@elizaos/app-core";
3
+ import { Activity, Clock3, Loader2, Moon, RefreshCw, Sparkles, Sun, Unplug, } from "lucide-react";
4
+ import { useCallback, useState } from "react";
5
+ import { useLifeOpsCapabilitiesStatus } from "../hooks/useLifeOpsCapabilitiesStatus.js";
6
+ import { useLifeOpsScheduleState } from "../hooks/useLifeOpsScheduleState.js";
7
+ import { useLifeOpsXConnector } from "../hooks/useLifeOpsXConnector.js";
8
+ import { SleepInspectionPanel } from "./SleepInspectionPanel.js";
9
+ function formatDateTime(value) {
10
+ if (!value) {
11
+ return "—";
12
+ }
13
+ const parsed = Date.parse(value);
14
+ if (!Number.isFinite(parsed)) {
15
+ return value;
16
+ }
17
+ return new Intl.DateTimeFormat(undefined, {
18
+ month: "short",
19
+ day: "numeric",
20
+ hour: "numeric",
21
+ minute: "2-digit",
22
+ }).format(new Date(parsed));
23
+ }
24
+ function formatPercent(value) {
25
+ if (typeof value !== "number" || !Number.isFinite(value)) {
26
+ return "—";
27
+ }
28
+ return new Intl.NumberFormat(undefined, {
29
+ style: "percent",
30
+ maximumFractionDigits: 0,
31
+ }).format(value);
32
+ }
33
+ function formatMinutes(value) {
34
+ if (typeof value !== "number" || !Number.isFinite(value)) {
35
+ return "—";
36
+ }
37
+ return `${value} min`;
38
+ }
39
+ function readXIdentity(identity, fallback) {
40
+ if (!identity) {
41
+ return fallback;
42
+ }
43
+ const keys = ["name", "username", "screen_name", "handle"];
44
+ for (const key of keys) {
45
+ const value = identity[key];
46
+ if (typeof value === "string" && value.trim().length > 0) {
47
+ return value.trim();
48
+ }
49
+ }
50
+ const identifier = identity.id;
51
+ return typeof identifier === "string" && identifier.trim().length > 0
52
+ ? identifier.trim()
53
+ : fallback;
54
+ }
55
+ function capabilityStateLabel(state) {
56
+ switch (state) {
57
+ case "working":
58
+ return "Working";
59
+ case "degraded":
60
+ return "Degraded";
61
+ case "blocked":
62
+ return "Blocked";
63
+ case "not_configured":
64
+ return "Not configured";
65
+ }
66
+ }
67
+ function PanelShell({ title, icon, status, children, }) {
68
+ return (_jsxs("section", { className: "space-y-3 rounded-3xl border border-border/16 bg-card/18 px-4 py-4", children: [_jsxs("div", { className: "flex items-center justify-between gap-3", children: [_jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [icon, _jsx("div", { className: "truncate text-sm font-semibold text-txt", children: title })] }), status] }), children] }));
69
+ }
70
+ function StatusDot({ connected, label, }) {
71
+ return (_jsx("span", { "aria-label": label, className: `inline-block h-2.5 w-2.5 rounded-full ${connected
72
+ ? "bg-emerald-500 shadow-[0_0_0_3px_rgba(16,185,129,0.14)]"
73
+ : "bg-muted/45"}`, role: "img", title: label }));
74
+ }
75
+ export function LifeOpsCapabilitiesPanel() {
76
+ const { t } = useApp();
77
+ const capabilities = useLifeOpsCapabilitiesStatus();
78
+ const status = capabilities.status;
79
+ const primary = status?.capabilities.find((item) => item.id === "sleep.relative_time") ??
80
+ status?.capabilities[0] ??
81
+ null;
82
+ return (_jsxs(PanelShell, { title: t("lifeopspanels.capabilities", {
83
+ defaultValue: "Capabilities",
84
+ }), icon: _jsx(Activity, { className: "h-4 w-4 shrink-0 text-muted" }), status: _jsx(Button, { size: "sm", variant: "outline", className: "h-8 rounded-xl px-3 text-xs font-semibold", onClick: () => void capabilities.refresh(), disabled: capabilities.loading, children: capabilities.loading ? (_jsx(Loader2, { className: "h-3.5 w-3.5 animate-spin" })) : (_jsx(RefreshCw, { className: "h-3.5 w-3.5" })) }), children: [status ? (_jsxs("div", { className: "grid gap-2 sm:grid-cols-2", children: [_jsxs("div", { className: "rounded-2xl border border-border/20 bg-bg/36 px-3 py-2", children: [_jsx("div", { className: "text-[11px] uppercase tracking-wide text-muted", children: t("lifeopspanels.capabilityHealth", {
85
+ defaultValue: "Health",
86
+ }) }), _jsx("div", { className: "mt-1 text-sm font-semibold text-txt", children: `${status.summary.workingCount}/${status.summary.totalCount} working` }), _jsxs("div", { className: "mt-1 text-xs text-muted", children: [status.summary.degradedCount, " degraded \u00B7", " ", status.summary.blockedCount, " blocked"] })] }), _jsxs("div", { className: "rounded-2xl border border-border/20 bg-bg/36 px-3 py-2", children: [_jsx("div", { className: "text-[11px] uppercase tracking-wide text-muted", children: t("lifeopspanels.primaryCapability", {
87
+ defaultValue: "Awake clock",
88
+ }) }), _jsx("div", { className: "mt-1 text-sm font-semibold text-txt", children: primary?.summary ?? "—" }), status.relativeTime ? (_jsxs("div", { className: "mt-1 text-xs text-muted", children: ["Computed ", formatDateTime(status.relativeTime.computedAt)] })) : null] })] })) : (_jsx("div", { className: "rounded-2xl border border-border/20 bg-bg/36 px-3 py-2 text-sm font-semibold text-txt", children: capabilities.error ? (_jsx("span", { className: "text-danger", children: capabilities.error })) : (t("common.loading", { defaultValue: "Loading" })) })), status ? (_jsx("div", { className: "flex flex-wrap gap-2", children: status.capabilities.map((capability) => (_jsxs(Badge, { variant: capability.state === "working" ? "secondary" : "outline", className: "text-2xs", title: capability.summary, children: [capability.label, ": ", capabilityStateLabel(capability.state)] }, capability.id))) })) : null, capabilities.error && status ? (_jsx("div", { className: "text-xs text-danger", children: capabilities.error })) : null] }));
89
+ }
90
+ export function LifeOpsSchedulePanel() {
91
+ const { t } = useApp();
92
+ const schedule = useLifeOpsScheduleState({ scope: "effective" });
93
+ const [manualOverrideKind, setManualOverrideKind] = useState(null);
94
+ const [manualOverrideError, setManualOverrideError] = useState(null);
95
+ const merged = schedule.state;
96
+ const sleepLabel = merged
97
+ ? merged.sleepStatus === "sleeping_now"
98
+ ? t("lifeopspanels.sleepingNow", { defaultValue: "Sleeping now" })
99
+ : merged.sleepStatus === "slept"
100
+ ? t("lifeopspanels.slept", { defaultValue: "Slept" })
101
+ : merged.sleepStatus === "likely_missed"
102
+ ? t("lifeopspanels.likelyMissed", {
103
+ defaultValue: "Likely missed",
104
+ })
105
+ : t("lifeopspanels.unknown", { defaultValue: "Unknown" })
106
+ : t("common.loading", { defaultValue: "Loading" });
107
+ const relativeWakeLabel = merged?.relativeTime.minutesAwake !== null &&
108
+ merged?.relativeTime.minutesAwake !== undefined
109
+ ? t("lifeopspanels.relativePhase", {
110
+ defaultValue: "{{state}} · woke {{duration}} ago",
111
+ state: merged.relativeTime.circadianState,
112
+ duration: formatMinutes(merged.relativeTime.minutesAwake),
113
+ })
114
+ : merged
115
+ ? t("lifeopspanels.relativePhaseCalibrating", {
116
+ defaultValue: "{{state}} · {{confidence}}% confidence",
117
+ state: merged.relativeTime.circadianState,
118
+ confidence: Math.round(merged.relativeTime.stateConfidence * 100),
119
+ })
120
+ : "—";
121
+ const bedtimeRelativeLabel = merged?.relativeTime.minutesUntilBedtimeTarget !== null &&
122
+ merged?.relativeTime.minutesUntilBedtimeTarget !== undefined
123
+ ? t("lifeopspanels.bedtimeFuture", {
124
+ defaultValue: "in {{duration}}",
125
+ duration: formatMinutes(merged.relativeTime.minutesUntilBedtimeTarget),
126
+ })
127
+ : merged?.relativeTime.minutesSinceBedtimeTarget !== null &&
128
+ merged?.relativeTime.minutesSinceBedtimeTarget !== undefined
129
+ ? t("lifeopspanels.bedtimePast", {
130
+ defaultValue: "{{duration}} ago",
131
+ duration: formatMinutes(merged.relativeTime.minutesSinceBedtimeTarget),
132
+ })
133
+ : t("lifeopspanels.bedtimeRelativeCalibrating", {
134
+ defaultValue: "calibrating",
135
+ });
136
+ const captureManualOverride = useCallback(async (kind) => {
137
+ setManualOverrideKind(kind);
138
+ setManualOverrideError(null);
139
+ try {
140
+ await client.captureLifeOpsManualOverride({ kind });
141
+ await schedule.refresh();
142
+ }
143
+ catch (cause) {
144
+ setManualOverrideError(cause instanceof Error
145
+ ? cause.message
146
+ : t("lifeopspanels.manualOverrideFailed", {
147
+ defaultValue: "Manual schedule update failed.",
148
+ }));
149
+ }
150
+ finally {
151
+ setManualOverrideKind(null);
152
+ }
153
+ }, [schedule.refresh, t]);
154
+ return (_jsxs(PanelShell, { title: t("lifeopspanels.schedule", { defaultValue: "Sleep & schedule" }), icon: _jsx(Clock3, { className: "h-4 w-4 shrink-0 text-muted" }), status: _jsx(Button, { size: "sm", variant: "outline", className: "h-8 rounded-xl px-3 text-xs font-semibold", onClick: () => void schedule.refresh(), disabled: schedule.loading, children: schedule.loading ? (_jsx(Loader2, { className: "h-3.5 w-3.5 animate-spin" })) : (_jsx(RefreshCw, { className: "h-3.5 w-3.5" })) }), children: [merged ? (_jsxs("div", { className: "grid gap-2 sm:grid-cols-2", children: [_jsxs("div", { className: "rounded-2xl border border-border/20 bg-bg/36 px-3 py-2", children: [_jsx("div", { className: "text-[11px] uppercase tracking-wide text-muted", children: t("lifeopspanels.sleepStatus", {
155
+ defaultValue: "Sleep status",
156
+ }) }), _jsx("div", { className: "mt-1 text-sm font-semibold text-txt", children: sleepLabel }), _jsx("div", { className: "mt-1 text-xs text-muted", children: `${merged.circadianState} · ${formatPercent(merged.sleepConfidence)} confidence${merged.uncertaintyReason ? ` · ${merged.uncertaintyReason}` : ""}` })] }), _jsxs("div", { className: "rounded-2xl border border-border/20 bg-bg/36 px-3 py-2", children: [_jsx("div", { className: "text-[11px] uppercase tracking-wide text-muted", children: t("lifeopspanels.awakeProbability", {
157
+ defaultValue: "Awake probability",
158
+ }) }), _jsx("div", { className: "mt-1 text-sm font-semibold text-txt", children: `${formatPercent(merged.awakeProbability.pAwake)} awake · ${formatPercent(merged.awakeProbability.pAsleep)} asleep` }), _jsx("div", { className: "mt-1 text-xs text-muted", children: `${formatPercent(merged.awakeProbability.pUnknown)} unknown · state ${merged.circadianState} (${formatPercent(merged.stateConfidence)})` })] }), _jsxs("div", { className: "rounded-2xl border border-border/20 bg-bg/36 px-3 py-2", children: [_jsx("div", { className: "text-[11px] uppercase tracking-wide text-muted", children: t("lifeopspanels.relativeTime", {
159
+ defaultValue: "Relative time",
160
+ }) }), _jsx("div", { className: "mt-1 text-sm font-semibold text-txt", children: relativeWakeLabel }), _jsx("div", { className: "mt-1 text-xs text-muted", children: merged.relativeTime.bedtimeTargetAt
161
+ ? t("lifeopspanels.bedtimeTarget", {
162
+ defaultValue: "Bedtime target {{time}} · {{duration}}",
163
+ time: formatDateTime(merged.relativeTime.bedtimeTargetAt),
164
+ duration: bedtimeRelativeLabel,
165
+ })
166
+ : t("lifeopspanels.bedtimeCalibrating", {
167
+ defaultValue: "Bedtime target calibrating",
168
+ }) })] }), _jsxs("div", { className: "rounded-2xl border border-border/20 bg-bg/36 px-3 py-2", children: [_jsx("div", { className: "text-[11px] uppercase tracking-wide text-muted", children: t("lifeopspanels.sleepWindow", {
169
+ defaultValue: "Sleep window",
170
+ }) }), _jsx("div", { className: "mt-1 text-sm font-semibold text-txt", children: merged.currentSleepStartedAt
171
+ ? `Started ${formatDateTime(merged.currentSleepStartedAt)}`
172
+ : merged.lastSleepStartedAt
173
+ ? `Last started ${formatDateTime(merged.lastSleepStartedAt)}`
174
+ : "—" }), merged.wakeAt || merged.lastSleepDurationMinutes ? (_jsxs("div", { className: "mt-1 text-xs text-muted", children: [merged.wakeAt
175
+ ? `Wake target ${formatDateTime(merged.wakeAt)}`
176
+ : null, merged.lastSleepDurationMinutes
177
+ ? ` ${Math.round(merged.lastSleepDurationMinutes)} min last sleep`
178
+ : null] })) : null] }), _jsxs("div", { className: "rounded-2xl border border-border/20 bg-bg/36 px-3 py-2", children: [_jsx("div", { className: "text-[11px] uppercase tracking-wide text-muted", children: t("lifeopspanels.regularity", {
179
+ defaultValue: "Regularity",
180
+ }) }), _jsx("div", { className: "mt-1 text-sm font-semibold text-txt", children: `${merged.regularity.regularityClass.replace(/_/g, " ")} · SRI ${Math.round(merged.regularity.sri)}` }), _jsx("div", { className: "mt-1 text-xs text-muted", children: `${Math.round(merged.regularity.bedtimeStddevMin)}m bedtime stddev · ${Math.round(merged.regularity.wakeStddevMin)}m wake stddev` })] }), merged.baseline ? (_jsxs("div", { className: "rounded-2xl border border-border/20 bg-bg/36 px-3 py-2", children: [_jsx("div", { className: "text-[11px] uppercase tracking-wide text-muted", children: t("lifeopspanels.baseline", {
181
+ defaultValue: "Personal baseline",
182
+ }) }), _jsx("div", { className: "mt-1 text-sm font-semibold text-txt", children: `Wake ~${merged.baseline.medianWakeLocalHour.toFixed(1)}h · Bed ~${(merged.baseline.medianBedtimeLocalHour % 24).toFixed(1)}h` }), _jsx("div", { className: "mt-1 text-xs text-muted", children: `${merged.baseline.sampleCount} episodes · ${Math.round(merged.baseline.medianSleepDurationMin)}m median sleep · ${merged.baseline.windowDays}d window` })] })) : null, merged.awakeProbability.contributingSources.length > 0 ? (_jsxs("div", { className: "rounded-2xl border border-border/20 bg-bg/36 px-3 py-2 sm:col-span-2", children: [_jsx("div", { className: "text-[11px] uppercase tracking-wide text-muted", children: t("lifeopspanels.contributingSources", {
183
+ defaultValue: "Contributing evidence",
184
+ }) }), _jsx("div", { className: "mt-1 flex flex-wrap gap-1.5", children: merged.awakeProbability.contributingSources
185
+ .slice(0, 8)
186
+ .map((contributor) => {
187
+ const llr = contributor.logLikelihoodRatio;
188
+ const tone = llr > 0
189
+ ? "bg-emerald-500/14 text-emerald-300"
190
+ : "bg-amber-500/14 text-amber-300";
191
+ return (_jsx("span", { className: `inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[11px] ${tone}`, children: `${contributor.source}: ${llr >= 0 ? "+" : ""}${llr.toFixed(2)}` }, `${contributor.source}:${llr.toFixed(4)}`));
192
+ }) })] })) : null, merged.circadianRuleFirings.length > 0 ? (_jsxs("div", { className: "rounded-2xl border border-border/20 bg-bg/36 px-3 py-2 sm:col-span-2", children: [_jsx("div", { className: "text-[11px] uppercase tracking-wide text-muted", children: t("lifeopspanels.circadianRules", {
193
+ defaultValue: "Rules that fired",
194
+ }) }), _jsx("div", { className: "mt-1 flex flex-wrap gap-1.5", children: merged.circadianRuleFirings.slice(0, 8).map((firing) => {
195
+ const tone = firing.contributes === "awake" ||
196
+ firing.contributes === "waking"
197
+ ? "bg-sky-500/14 text-sky-300"
198
+ : firing.contributes === "sleeping" ||
199
+ firing.contributes === "napping"
200
+ ? "bg-violet-500/14 text-violet-300"
201
+ : "bg-amber-500/14 text-amber-300";
202
+ return (_jsx("span", { className: `inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-[11px] ${tone}`, title: firing.reason, children: `${firing.name} -> ${firing.contributes} (${firing.weight.toFixed(2)})` }, `${firing.name}:${firing.observedAt}`));
203
+ }) })] })) : null] })) : (_jsx("div", { className: "rounded-2xl border border-border/20 bg-bg/36 px-3 py-2 text-sm font-semibold text-txt", children: t("common.loading", { defaultValue: "Loading" }) })), _jsxs("div", { className: "flex flex-wrap gap-2", children: [_jsxs(Button, { size: "sm", variant: "outline", className: "h-8 rounded-xl px-3 text-xs font-semibold", onClick: () => void captureManualOverride("just_woke_up"), disabled: manualOverrideKind !== null, children: [manualOverrideKind === "just_woke_up" ? (_jsx(Loader2, { className: "h-3.5 w-3.5 animate-spin" })) : (_jsx(Sun, { className: "h-3.5 w-3.5" })), t("lifeopspanels.justWokeUp", { defaultValue: "Just woke up" })] }), _jsxs(Button, { size: "sm", variant: "outline", className: "h-8 rounded-xl px-3 text-xs font-semibold", onClick: () => void captureManualOverride("going_to_bed"), disabled: manualOverrideKind !== null, children: [manualOverrideKind === "going_to_bed" ? (_jsx(Loader2, { className: "h-3.5 w-3.5 animate-spin" })) : (_jsx(Moon, { className: "h-3.5 w-3.5" })), t("lifeopspanels.goingToBed", { defaultValue: "Going to bed" })] }), manualOverrideError ? (_jsx("span", { className: "self-center text-xs text-danger", children: manualOverrideError })) : null] }), merged ? _jsx(SleepInspectionPanel, {}) : null, _jsxs("div", { className: "flex flex-wrap gap-2 text-xs", children: [merged ? (_jsxs(_Fragment, { children: [_jsx(Badge, { variant: "outline", className: "text-2xs", children: merged.scope }), _jsxs(Badge, { variant: "outline", className: "text-2xs", children: [merged.contributingDeviceKinds.length, " devices"] }), _jsxs(Badge, { variant: "outline", className: "text-2xs", children: [merged.observationCount, " observations"] }), _jsxs(Badge, { variant: "outline", className: "text-2xs", children: ["computed ", formatDateTime(merged.relativeTime.computedAt)] })] })) : null, schedule.error ? (_jsx("span", { className: "text-xs text-danger", children: schedule.error })) : null] })] }));
204
+ }
205
+ export function LifeOpsXPanel() {
206
+ const { elizaCloudConnected, elizaCloudLoginBusy, elizaCloudLoginError, elizaCloudStatusReason, handleCloudLogin, t, } = useApp();
207
+ const ownerX = useLifeOpsXConnector("owner");
208
+ const agentX = useLifeOpsXConnector("agent");
209
+ const status = ownerX.status;
210
+ const agentStatus = agentX.status;
211
+ const connected = status?.connected === true;
212
+ const agentConnected = agentStatus?.connected === true;
213
+ const ownerIdentity = readXIdentity(status?.identity ?? null, "");
214
+ const agentIdentity = readXIdentity(agentStatus?.identity ?? null, "");
215
+ const mode = status?.mode ?? status?.defaultMode ?? "cloud_managed";
216
+ const cloudAuthenticated = isCloudStatusAuthenticated(elizaCloudConnected, elizaCloudStatusReason);
217
+ const ownerNeedsCloudLogin = !cloudAuthenticated && status?.hasCredentials !== true;
218
+ const agentNeedsCloudLogin = !cloudAuthenticated;
219
+ const actionPending = ownerX.actionPending || agentX.actionPending || elizaCloudLoginBusy;
220
+ const handleOwnerConnect = useCallback(() => {
221
+ if (ownerNeedsCloudLogin) {
222
+ void handleCloudLogin();
223
+ return;
224
+ }
225
+ void ownerX.connect(mode);
226
+ }, [handleCloudLogin, mode, ownerNeedsCloudLogin, ownerX.connect]);
227
+ const handleAgentConnect = useCallback(() => {
228
+ if (agentNeedsCloudLogin) {
229
+ void handleCloudLogin();
230
+ return;
231
+ }
232
+ void agentX.connect("cloud_managed");
233
+ }, [agentNeedsCloudLogin, agentX.connect, handleCloudLogin]);
234
+ return (_jsxs(PanelShell, { title: t("lifeopspanels.xAccount", { defaultValue: "X" }), icon: _jsx(Sparkles, { className: "h-4 w-4 shrink-0 text-muted" }), status: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(StatusDot, { connected: connected, label: connected
235
+ ? t("lifeopspanels.connected", { defaultValue: "Connected" })
236
+ : t("lifeopspanels.disconnected", {
237
+ defaultValue: "Disconnected",
238
+ }) }), _jsx(Button, { size: "sm", variant: "outline", className: "h-8 w-8 rounded-xl p-0", onClick: () => {
239
+ void ownerX.refresh();
240
+ void agentX.refresh();
241
+ }, disabled: ownerX.loading || agentX.loading, title: t("common.refresh", { defaultValue: "Refresh" }), "aria-label": t("common.refresh", { defaultValue: "Refresh" }), children: ownerX.loading || agentX.loading ? (_jsx(Loader2, { className: "h-3.5 w-3.5 animate-spin" })) : (_jsx(RefreshCw, { className: "h-3.5 w-3.5" })) })] }), children: [_jsxs("div", { className: "grid gap-2 sm:grid-cols-2", children: [_jsxs("div", { className: "rounded-2xl border border-border/20 bg-bg/36 px-3 py-2", children: [_jsx("div", { className: "text-[11px] uppercase tracking-wide text-muted", children: t("lifeopspanels.owner", { defaultValue: "Owner" }) }), _jsxs("div", { className: "mt-1 flex items-center gap-2", children: [_jsx(StatusDot, { connected: connected, label: connected
242
+ ? t("lifeopspanels.connected", { defaultValue: "Connected" })
243
+ : t("lifeopspanels.disconnected", {
244
+ defaultValue: "Disconnected",
245
+ }) }), ownerIdentity ? (_jsx("div", { className: "min-w-0 truncate text-sm font-semibold text-txt", children: ownerIdentity })) : null] })] }), _jsxs("div", { className: "rounded-2xl border border-border/20 bg-bg/36 px-3 py-2", children: [_jsx("div", { className: "text-[11px] uppercase tracking-wide text-muted", children: t("chat.agentType", { defaultValue: "Agent" }) }), _jsxs("div", { className: "mt-1 flex items-center gap-2", children: [_jsx(StatusDot, { connected: agentConnected, label: agentConnected
246
+ ? t("lifeopspanels.connected", { defaultValue: "Connected" })
247
+ : t("lifeopspanels.disconnected", {
248
+ defaultValue: "Disconnected",
249
+ }) }), agentIdentity ? (_jsx("div", { className: "min-w-0 truncate text-sm font-semibold text-txt", children: agentIdentity })) : null] })] })] }), _jsxs("div", { className: "flex flex-wrap gap-2", children: [_jsxs(Button, { size: "sm", className: "h-8 rounded-xl px-3 text-xs font-semibold", onClick: handleOwnerConnect, disabled: actionPending, title: ownerNeedsCloudLogin
250
+ ? t("lifeopspanels.connectCloudFirst", {
251
+ defaultValue: "Connect Eliza Cloud first",
252
+ })
253
+ : connected
254
+ ? t("lifeopspanels.reconnectOwnerX", {
255
+ defaultValue: "Reconnect Owner X",
256
+ })
257
+ : t("lifeopspanels.connectOwnerX", {
258
+ defaultValue: "Connect Owner X",
259
+ }), children: [actionPending ? (_jsx(Loader2, { className: "mr-1.5 h-3.5 w-3.5 animate-spin" })) : (_jsx(Sparkles, { className: "mr-1.5 h-3.5 w-3.5" })), t("lifeopspanels.owner", { defaultValue: "Owner" })] }), _jsxs(Button, { size: "sm", variant: "outline", className: "h-8 rounded-xl px-3 text-xs font-semibold", onClick: handleAgentConnect, disabled: actionPending, title: agentNeedsCloudLogin
260
+ ? t("lifeopspanels.connectCloudFirst", {
261
+ defaultValue: "Connect Eliza Cloud first",
262
+ })
263
+ : agentConnected
264
+ ? t("lifeopspanels.reconnectAgentX", {
265
+ defaultValue: "Reconnect Agent X",
266
+ })
267
+ : t("lifeopspanels.connectAgentX", {
268
+ defaultValue: "Connect Agent X",
269
+ }), children: [actionPending ? (_jsx(Loader2, { className: "mr-1.5 h-3.5 w-3.5 animate-spin" })) : (_jsx(Sparkles, { className: "mr-1.5 h-3.5 w-3.5" })), t("chat.agentType", { defaultValue: "Agent" })] }), connected ? (_jsxs(Button, { size: "sm", variant: "ghost", className: "h-8 rounded-xl px-3 text-xs font-semibold", onClick: () => void ownerX.disconnect(), disabled: actionPending, children: [_jsx(Unplug, { className: "mr-1.5 h-3.5 w-3.5" }), t("lifeopspanels.disconnectOwnerX", {
270
+ defaultValue: "Disconnect Owner",
271
+ })] })) : null] }), ownerX.pendingAuthUrl || agentX.pendingAuthUrl ? (_jsx("a", { href: ownerX.pendingAuthUrl ?? agentX.pendingAuthUrl ?? "", target: "_blank", rel: "noreferrer", className: "text-xs font-medium text-accent hover:underline", children: t("lifeopspanels.openXAuth", {
272
+ defaultValue: "Open X authorization",
273
+ }) })) : null, ownerX.error || agentX.error || elizaCloudLoginError ? (_jsx("div", { className: "text-xs text-danger", children: ownerX.error ?? agentX.error ?? elizaCloudLoginError })) : null] }));
274
+ }
@@ -0,0 +1,7 @@
1
+ import type { LifeOpsSection } from "../hooks/useLifeOpsSection.js";
2
+ interface LifeOpsOverviewSectionProps {
3
+ onNavigate: (section: LifeOpsSection) => void;
4
+ }
5
+ export declare function LifeOpsOverviewSection({ onNavigate, }: LifeOpsOverviewSectionProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=LifeOpsOverviewSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LifeOpsOverviewSection.d.ts","sourceRoot":"","sources":["../../../../../../../apps/app-lifeops/src/components/LifeOpsOverviewSection.tsx"],"names":[],"mappings":"AAmDA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAWpE,UAAU,2BAA2B;IACnC,UAAU,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;CAC/C;AAimBD,wBAAgB,sBAAsB,CAAC,EACrC,UAAU,GACX,EAAE,2BAA2B,2CAk0B7B"}