@elizaos/agent 2.0.0-alpha.385 → 2.0.0-alpha.393

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 (377) 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-knowledge/src/routes.d.ts +1 -1
  6. package/apps/app-knowledge/src/routes.d.ts.map +1 -1
  7. package/apps/app-knowledge/src/routes.js +1 -1
  8. package/apps/app-lifeops/src/api/client-lifeops.js +6 -0
  9. package/apps/app-lifeops/src/components/AppBlockerSettingsCard.d.ts +3 -0
  10. package/apps/app-lifeops/src/components/AppBlockerSettingsCard.d.ts.map +1 -0
  11. package/apps/app-lifeops/src/components/AppBlockerSettingsCard.js +189 -0
  12. package/apps/app-lifeops/src/components/BrowserBridgeSetupPanel.d.ts +2 -0
  13. package/apps/app-lifeops/src/components/BrowserBridgeSetupPanel.d.ts.map +1 -0
  14. package/apps/app-lifeops/src/components/BrowserBridgeSetupPanel.js +1065 -0
  15. package/apps/app-lifeops/src/components/BrowserBridgeStatusChip.d.ts +7 -0
  16. package/apps/app-lifeops/src/components/BrowserBridgeStatusChip.d.ts.map +1 -0
  17. package/apps/app-lifeops/src/components/BrowserBridgeStatusChip.js +71 -0
  18. package/apps/app-lifeops/src/components/DataSourcesStrip.d.ts +14 -0
  19. package/apps/app-lifeops/src/components/DataSourcesStrip.d.ts.map +1 -0
  20. package/apps/app-lifeops/src/components/DataSourcesStrip.js +36 -0
  21. package/apps/app-lifeops/src/components/EventEditorDrawer.d.ts +23 -0
  22. package/apps/app-lifeops/src/components/EventEditorDrawer.d.ts.map +1 -0
  23. package/apps/app-lifeops/src/components/EventEditorDrawer.js +514 -0
  24. package/apps/app-lifeops/src/components/LifeOpsActivitySignalsEffect.d.ts +2 -0
  25. package/apps/app-lifeops/src/components/LifeOpsActivitySignalsEffect.d.ts.map +1 -0
  26. package/apps/app-lifeops/src/components/LifeOpsActivitySignalsEffect.js +10 -0
  27. package/apps/app-lifeops/src/components/LifeOpsCalendarSection.d.ts +15 -0
  28. package/apps/app-lifeops/src/components/LifeOpsCalendarSection.d.ts.map +1 -0
  29. package/apps/app-lifeops/src/components/LifeOpsCalendarSection.js +515 -0
  30. package/apps/app-lifeops/src/components/LifeOpsChatAdapter.d.ts +34 -0
  31. package/apps/app-lifeops/src/components/LifeOpsChatAdapter.d.ts.map +1 -0
  32. package/apps/app-lifeops/src/components/LifeOpsChatAdapter.js +175 -0
  33. package/apps/app-lifeops/src/components/LifeOpsFeatureTogglesSection.d.ts +2 -0
  34. package/apps/app-lifeops/src/components/LifeOpsFeatureTogglesSection.d.ts.map +1 -0
  35. package/apps/app-lifeops/src/components/LifeOpsFeatureTogglesSection.js +99 -0
  36. package/apps/app-lifeops/src/components/LifeOpsHabitVisuals.d.ts +37 -0
  37. package/apps/app-lifeops/src/components/LifeOpsHabitVisuals.d.ts.map +1 -0
  38. package/apps/app-lifeops/src/components/LifeOpsHabitVisuals.js +88 -0
  39. package/apps/app-lifeops/src/components/LifeOpsInboxSection.d.ts +13 -0
  40. package/apps/app-lifeops/src/components/LifeOpsInboxSection.d.ts.map +1 -0
  41. package/apps/app-lifeops/src/components/LifeOpsInboxSection.js +490 -0
  42. package/apps/app-lifeops/src/components/LifeOpsLinkBankButton.d.ts +12 -0
  43. package/apps/app-lifeops/src/components/LifeOpsLinkBankButton.d.ts.map +1 -0
  44. package/apps/app-lifeops/src/components/LifeOpsLinkBankButton.js +92 -0
  45. package/apps/app-lifeops/src/components/LifeOpsLinkPaypalButton.d.ts +12 -0
  46. package/apps/app-lifeops/src/components/LifeOpsLinkPaypalButton.d.ts.map +1 -0
  47. package/apps/app-lifeops/src/components/LifeOpsLinkPaypalButton.js +160 -0
  48. package/apps/app-lifeops/src/components/LifeOpsMoneySection.d.ts +3 -0
  49. package/apps/app-lifeops/src/components/LifeOpsMoneySection.d.ts.map +1 -0
  50. package/apps/app-lifeops/src/components/LifeOpsMoneySection.js +373 -0
  51. package/apps/app-lifeops/src/components/LifeOpsNavRail.d.ts +9 -0
  52. package/apps/app-lifeops/src/components/LifeOpsNavRail.d.ts.map +1 -0
  53. package/apps/app-lifeops/src/components/LifeOpsNavRail.js +93 -0
  54. package/apps/app-lifeops/src/components/LifeOpsOperationalPanels.d.ts +4 -0
  55. package/apps/app-lifeops/src/components/LifeOpsOperationalPanels.d.ts.map +1 -0
  56. package/apps/app-lifeops/src/components/LifeOpsOperationalPanels.js +274 -0
  57. package/apps/app-lifeops/src/components/LifeOpsOverviewSection.d.ts +7 -0
  58. package/apps/app-lifeops/src/components/LifeOpsOverviewSection.d.ts.map +1 -0
  59. package/apps/app-lifeops/src/components/LifeOpsOverviewSection.js +657 -0
  60. package/apps/app-lifeops/src/components/LifeOpsPageSections.d.ts +42 -0
  61. package/apps/app-lifeops/src/components/LifeOpsPageSections.d.ts.map +1 -0
  62. package/apps/app-lifeops/src/components/LifeOpsPageSections.js +166 -0
  63. package/apps/app-lifeops/src/components/LifeOpsPageView.d.ts +2 -0
  64. package/apps/app-lifeops/src/components/LifeOpsPageView.d.ts.map +1 -0
  65. package/apps/app-lifeops/src/components/LifeOpsPageView.js +566 -0
  66. package/apps/app-lifeops/src/components/LifeOpsRemindersSection.d.ts +2 -0
  67. package/apps/app-lifeops/src/components/LifeOpsRemindersSection.d.ts.map +1 -0
  68. package/apps/app-lifeops/src/components/LifeOpsRemindersSection.js +749 -0
  69. package/apps/app-lifeops/src/components/LifeOpsResizableSidebar.d.ts +27 -0
  70. package/apps/app-lifeops/src/components/LifeOpsResizableSidebar.d.ts.map +1 -0
  71. package/apps/app-lifeops/src/components/LifeOpsResizableSidebar.js +106 -0
  72. package/apps/app-lifeops/src/components/LifeOpsScreenTimeSection.d.ts +2 -0
  73. package/apps/app-lifeops/src/components/LifeOpsScreenTimeSection.d.ts.map +1 -0
  74. package/apps/app-lifeops/src/components/LifeOpsScreenTimeSection.js +373 -0
  75. package/apps/app-lifeops/src/components/LifeOpsSectionContent.d.ts +10 -0
  76. package/apps/app-lifeops/src/components/LifeOpsSectionContent.d.ts.map +1 -0
  77. package/apps/app-lifeops/src/components/LifeOpsSectionContent.js +30 -0
  78. package/apps/app-lifeops/src/components/LifeOpsSelectionContext.d.ts +21 -0
  79. package/apps/app-lifeops/src/components/LifeOpsSelectionContext.d.ts.map +1 -0
  80. package/apps/app-lifeops/src/components/LifeOpsSelectionContext.js +30 -0
  81. package/apps/app-lifeops/src/components/LifeOpsSettingsSection.d.ts +20 -0
  82. package/apps/app-lifeops/src/components/LifeOpsSettingsSection.d.ts.map +1 -0
  83. package/apps/app-lifeops/src/components/LifeOpsSettingsSection.js +597 -0
  84. package/apps/app-lifeops/src/components/LifeOpsSetupGate.d.ts +13 -0
  85. package/apps/app-lifeops/src/components/LifeOpsSetupGate.d.ts.map +1 -0
  86. package/apps/app-lifeops/src/components/LifeOpsSetupGate.js +134 -0
  87. package/apps/app-lifeops/src/components/LifeOpsSleepSection.d.ts +10 -0
  88. package/apps/app-lifeops/src/components/LifeOpsSleepSection.d.ts.map +1 -0
  89. package/apps/app-lifeops/src/components/LifeOpsSleepSection.js +425 -0
  90. package/apps/app-lifeops/src/components/LifeOpsWorkspaceShell.d.ts +11 -0
  91. package/apps/app-lifeops/src/components/LifeOpsWorkspaceShell.d.ts.map +1 -0
  92. package/apps/app-lifeops/src/components/LifeOpsWorkspaceShell.js +49 -0
  93. package/apps/app-lifeops/src/components/LifeOpsWorkspaceView.d.ts +2 -0
  94. package/apps/app-lifeops/src/components/LifeOpsWorkspaceView.d.ts.map +1 -0
  95. package/apps/app-lifeops/src/components/LifeOpsWorkspaceView.js +1041 -0
  96. package/apps/app-lifeops/src/components/MessagingConnectorCards.d.ts +7 -0
  97. package/apps/app-lifeops/src/components/MessagingConnectorCards.d.ts.map +1 -0
  98. package/apps/app-lifeops/src/components/MessagingConnectorCards.js +643 -0
  99. package/apps/app-lifeops/src/components/MissingSourceCard.d.ts +9 -0
  100. package/apps/app-lifeops/src/components/MissingSourceCard.d.ts.map +1 -0
  101. package/apps/app-lifeops/src/components/MissingSourceCard.js +5 -0
  102. package/apps/app-lifeops/src/components/MobileSignalsSetupCard.d.ts +2 -0
  103. package/apps/app-lifeops/src/components/MobileSignalsSetupCard.d.ts.map +1 -0
  104. package/apps/app-lifeops/src/components/MobileSignalsSetupCard.js +163 -0
  105. package/apps/app-lifeops/src/components/SleepInspectionPanel.d.ts +8 -0
  106. package/apps/app-lifeops/src/components/SleepInspectionPanel.d.ts.map +1 -0
  107. package/apps/app-lifeops/src/components/SleepInspectionPanel.js +59 -0
  108. package/apps/app-lifeops/src/components/WebsiteBlockerSettingsCard.d.ts +3 -0
  109. package/apps/app-lifeops/src/components/WebsiteBlockerSettingsCard.d.ts.map +1 -0
  110. package/apps/app-lifeops/src/components/WebsiteBlockerSettingsCard.js +75 -0
  111. package/apps/app-lifeops/src/components/WhatsAppQrOverlay.d.ts +8 -0
  112. package/apps/app-lifeops/src/components/WhatsAppQrOverlay.d.ts.map +1 -0
  113. package/apps/app-lifeops/src/components/WhatsAppQrOverlay.js +48 -0
  114. package/apps/app-lifeops/src/components/lifeops-labels.d.ts +2 -0
  115. package/apps/app-lifeops/src/components/lifeops-labels.d.ts.map +1 -0
  116. package/apps/app-lifeops/src/components/lifeops-labels.js +5 -0
  117. package/apps/app-lifeops/src/events/index.d.ts +34 -0
  118. package/apps/app-lifeops/src/events/index.d.ts.map +1 -0
  119. package/apps/app-lifeops/src/events/index.js +23 -0
  120. package/apps/app-lifeops/src/hooks/useCalendarWeek.d.ts +28 -0
  121. package/apps/app-lifeops/src/hooks/useCalendarWeek.d.ts.map +1 -0
  122. package/apps/app-lifeops/src/hooks/useCalendarWeek.js +93 -0
  123. package/apps/app-lifeops/src/hooks/useDiscordConnector.d.ts +14 -0
  124. package/apps/app-lifeops/src/hooks/useDiscordConnector.d.ts.map +1 -0
  125. package/apps/app-lifeops/src/hooks/useDiscordConnector.js +126 -0
  126. package/apps/app-lifeops/src/hooks/useGoogleLifeOpsConnector.d.ts +29 -0
  127. package/apps/app-lifeops/src/hooks/useGoogleLifeOpsConnector.d.ts.map +1 -0
  128. package/apps/app-lifeops/src/hooks/useGoogleLifeOpsConnector.js +481 -0
  129. package/apps/app-lifeops/src/hooks/useIMessageConnector.d.ts +10 -0
  130. package/apps/app-lifeops/src/hooks/useIMessageConnector.d.ts.map +1 -0
  131. package/apps/app-lifeops/src/hooks/useIMessageConnector.js +50 -0
  132. package/apps/app-lifeops/src/hooks/useInbox.d.ts +34 -0
  133. package/apps/app-lifeops/src/hooks/useInbox.d.ts.map +1 -0
  134. package/apps/app-lifeops/src/hooks/useInbox.js +98 -0
  135. package/apps/app-lifeops/src/hooks/useLifeOpsActivitySignals.d.ts +2 -0
  136. package/apps/app-lifeops/src/hooks/useLifeOpsActivitySignals.d.ts.map +1 -0
  137. package/apps/app-lifeops/src/hooks/useLifeOpsActivitySignals.js +383 -0
  138. package/apps/app-lifeops/src/hooks/useLifeOpsAppState.d.ts +9 -0
  139. package/apps/app-lifeops/src/hooks/useLifeOpsAppState.d.ts.map +1 -0
  140. package/apps/app-lifeops/src/hooks/useLifeOpsAppState.js +83 -0
  141. package/apps/app-lifeops/src/hooks/useLifeOpsCapabilitiesStatus.d.ts +8 -0
  142. package/apps/app-lifeops/src/hooks/useLifeOpsCapabilitiesStatus.d.ts.map +1 -0
  143. package/apps/app-lifeops/src/hooks/useLifeOpsCapabilitiesStatus.js +60 -0
  144. package/apps/app-lifeops/src/hooks/useLifeOpsScheduleInspection.d.ts +18 -0
  145. package/apps/app-lifeops/src/hooks/useLifeOpsScheduleInspection.d.ts.map +1 -0
  146. package/apps/app-lifeops/src/hooks/useLifeOpsScheduleInspection.js +66 -0
  147. package/apps/app-lifeops/src/hooks/useLifeOpsScheduleState.d.ts +14 -0
  148. package/apps/app-lifeops/src/hooks/useLifeOpsScheduleState.d.ts.map +1 -0
  149. package/apps/app-lifeops/src/hooks/useLifeOpsScheduleState.js +79 -0
  150. package/apps/app-lifeops/src/hooks/useLifeOpsSection.d.ts +18 -0
  151. package/apps/app-lifeops/src/hooks/useLifeOpsSection.d.ts.map +1 -0
  152. package/apps/app-lifeops/src/hooks/useLifeOpsSection.js +78 -0
  153. package/apps/app-lifeops/src/hooks/useLifeOpsXConnector.d.ts +14 -0
  154. package/apps/app-lifeops/src/hooks/useLifeOpsXConnector.d.ts.map +1 -0
  155. package/apps/app-lifeops/src/hooks/useLifeOpsXConnector.js +160 -0
  156. package/apps/app-lifeops/src/hooks/useSignalConnector.d.ts +16 -0
  157. package/apps/app-lifeops/src/hooks/useSignalConnector.d.ts.map +1 -0
  158. package/apps/app-lifeops/src/hooks/useSignalConnector.js +198 -0
  159. package/apps/app-lifeops/src/hooks/useTelegramConnector.d.ts +21 -0
  160. package/apps/app-lifeops/src/hooks/useTelegramConnector.d.ts.map +1 -0
  161. package/apps/app-lifeops/src/hooks/useTelegramConnector.js +177 -0
  162. package/apps/app-lifeops/src/hooks/useWhatsAppConnector.d.ts +8 -0
  163. package/apps/app-lifeops/src/hooks/useWhatsAppConnector.d.ts.map +1 -0
  164. package/apps/app-lifeops/src/hooks/useWhatsAppConnector.js +58 -0
  165. package/apps/app-lifeops/src/hooks/useWhatsAppPairing.d.ts +12 -0
  166. package/apps/app-lifeops/src/hooks/useWhatsAppPairing.d.ts.map +1 -0
  167. package/apps/app-lifeops/src/hooks/useWhatsAppPairing.js +152 -0
  168. package/apps/app-lifeops/src/lifeops/discord-browser-scraper.js +1 -1
  169. package/apps/app-lifeops/src/lifeops/google-gmail.d.ts.map +1 -1
  170. package/apps/app-lifeops/src/lifeops/google-gmail.js +74 -26
  171. package/apps/app-lifeops/src/lifeops/google-managed-client.d.ts.map +1 -1
  172. package/apps/app-lifeops/src/lifeops/google-managed-client.js +4 -5
  173. package/apps/app-lifeops/src/lifeops/google-oauth.d.ts.map +1 -1
  174. package/apps/app-lifeops/src/lifeops/google-oauth.js +2 -2
  175. package/apps/app-lifeops/src/lifeops/owner-profile.d.ts.map +1 -1
  176. package/apps/app-lifeops/src/lifeops/owner-profile.js +1 -1
  177. package/apps/app-lifeops/src/lifeops/paypal-managed-client.d.ts.map +1 -1
  178. package/apps/app-lifeops/src/lifeops/paypal-managed-client.js +4 -5
  179. package/apps/app-lifeops/src/lifeops/plaid-managed-client.d.ts.map +1 -1
  180. package/apps/app-lifeops/src/lifeops/plaid-managed-client.js +4 -5
  181. package/apps/app-lifeops/src/lifeops/schedule-sync-client.js +2 -2
  182. package/apps/app-lifeops/src/lifeops/service-constants.d.ts +1 -0
  183. package/apps/app-lifeops/src/lifeops/service-constants.d.ts.map +1 -1
  184. package/apps/app-lifeops/src/lifeops/service-constants.js +1 -0
  185. package/apps/app-lifeops/src/lifeops/service-mixin-core.d.ts +1 -1
  186. package/apps/app-lifeops/src/lifeops/service-mixin-core.d.ts.map +1 -1
  187. package/apps/app-lifeops/src/lifeops/service-mixin-core.js +2 -1
  188. package/apps/app-lifeops/src/lifeops/service-mixin-imessage.js +1 -1
  189. package/apps/app-lifeops/src/lifeops/service-mixin-inbox.d.ts +3 -1
  190. package/apps/app-lifeops/src/lifeops/service-mixin-inbox.d.ts.map +1 -1
  191. package/apps/app-lifeops/src/lifeops/service-mixin-inbox.js +42 -13
  192. package/apps/app-lifeops/src/lifeops/service-mixin-reminders.d.ts.map +1 -1
  193. package/apps/app-lifeops/src/lifeops/service-mixin-reminders.js +3 -2
  194. package/apps/app-lifeops/src/lifeops/service-mixin-workflows.d.ts.map +1 -1
  195. package/apps/app-lifeops/src/lifeops/service-mixin-workflows.js +1 -1
  196. package/apps/app-lifeops/src/lifeops/service-normalize-calendar.d.ts.map +1 -1
  197. package/apps/app-lifeops/src/lifeops/service-normalize-calendar.js +3 -3
  198. package/apps/app-lifeops/src/lifeops/service-normalize-connector.d.ts +1 -1
  199. package/apps/app-lifeops/src/lifeops/service-normalize-connector.d.ts.map +1 -1
  200. package/apps/app-lifeops/src/lifeops/service-normalize-connector.js +2 -2
  201. package/apps/app-lifeops/src/lifeops/signal-auth.d.ts.map +1 -1
  202. package/apps/app-lifeops/src/lifeops/signal-auth.js +6 -3
  203. package/apps/app-lifeops/src/lifeops/telegram-auth.js +1 -1
  204. package/apps/app-lifeops/src/lifeops/travel-adapters/duffel.d.ts.map +1 -1
  205. package/apps/app-lifeops/src/lifeops/travel-adapters/duffel.js +31 -6
  206. package/apps/app-lifeops/src/lifeops/twilio.js +1 -1
  207. package/apps/app-lifeops/src/lifeops/x-poster.d.ts.map +1 -1
  208. package/apps/app-lifeops/src/lifeops/x-poster.js +13 -3
  209. package/apps/app-lifeops/src/lifeops-route.d.ts +74 -0
  210. package/apps/app-lifeops/src/lifeops-route.d.ts.map +1 -0
  211. package/apps/app-lifeops/src/lifeops-route.js +204 -0
  212. package/apps/app-lifeops/src/platform/lifeops-github.d.ts +15 -0
  213. package/apps/app-lifeops/src/platform/lifeops-github.d.ts.map +1 -0
  214. package/apps/app-lifeops/src/platform/lifeops-github.js +135 -0
  215. package/apps/app-lifeops/src/routes/cloud-features-routes.d.ts +2 -2
  216. package/apps/app-lifeops/src/routes/cloud-features-routes.d.ts.map +1 -1
  217. package/apps/app-lifeops/src/routes/cloud-features-routes.js +5 -3
  218. package/apps/app-lifeops/src/routes/lifeops-routes.d.ts.map +1 -1
  219. package/apps/app-lifeops/src/routes/lifeops-routes.js +15 -3
  220. package/apps/app-lifeops/src/routes/plugin.d.ts.map +1 -1
  221. package/apps/app-lifeops/src/routes/plugin.js +10 -1
  222. package/apps/app-lifeops/src/routes/travel-provider-relay-routes.d.ts +1 -1
  223. package/apps/app-lifeops/src/routes/travel-provider-relay-routes.d.ts.map +1 -1
  224. package/apps/app-lifeops/src/routes/travel-provider-relay-routes.js +4 -2
  225. package/apps/app-lifeops/src/routes/website-blocker-routes.d.ts +1 -1
  226. package/apps/app-lifeops/src/routes/website-blocker-routes.d.ts.map +1 -1
  227. package/apps/app-lifeops/src/ui.d.ts +11 -0
  228. package/apps/app-lifeops/src/ui.d.ts.map +1 -0
  229. package/apps/app-lifeops/src/ui.js +9 -0
  230. package/apps/app-lifeops/src/utils/lifeops-url.d.ts +5 -0
  231. package/apps/app-lifeops/src/utils/lifeops-url.d.ts.map +1 -0
  232. package/apps/app-lifeops/src/utils/lifeops-url.js +35 -0
  233. package/apps/app-lifeops/src/website-blocker/access.d.ts.map +1 -1
  234. package/apps/app-lifeops/src/website-blocker/access.js +1 -1
  235. package/apps/app-steward/src/routes/steward-compat-routes.d.ts +1 -1
  236. package/apps/app-steward/src/routes/steward-compat-routes.d.ts.map +1 -1
  237. package/apps/app-steward/src/routes/steward-compat-routes.js +3 -1
  238. package/apps/app-steward/src/routes/wallet-browser-compat-routes.d.ts +1 -1
  239. package/apps/app-steward/src/routes/wallet-browser-compat-routes.d.ts.map +1 -1
  240. package/apps/app-steward/src/routes/wallet-browser-compat-routes.js +3 -1
  241. package/apps/app-steward/src/routes/wallet-bsc-core-routes.d.ts.map +1 -1
  242. package/apps/app-steward/src/routes/wallet-bsc-core-routes.js +2 -1
  243. package/apps/app-steward/src/routes/wallet-compat-routes.d.ts +1 -1
  244. package/apps/app-steward/src/routes/wallet-compat-routes.d.ts.map +1 -1
  245. package/apps/app-steward/src/routes/wallet-compat-routes.js +3 -1
  246. package/apps/app-steward/src/routes/wallet-core-routes.d.ts.map +1 -1
  247. package/apps/app-steward/src/routes/wallet-core-routes.js +2 -1
  248. package/apps/app-steward/src/routes/wallet-trade-compat-routes.d.ts +1 -1
  249. package/apps/app-steward/src/routes/wallet-trade-compat-routes.d.ts.map +1 -1
  250. package/apps/app-steward/src/routes/wallet-trade-compat-routes.js +3 -1
  251. package/apps/app-training/src/core/dataset-generator.d.ts +1 -1
  252. package/apps/app-training/src/core/dataset-generator.d.ts.map +1 -1
  253. package/apps/app-training/src/core/roleplay-executor.d.ts +1 -1
  254. package/apps/app-training/src/core/roleplay-executor.d.ts.map +1 -1
  255. package/apps/app-training/src/core/trajectory-task-datasets.d.ts +1 -1
  256. package/apps/app-training/src/core/trajectory-task-datasets.d.ts.map +1 -1
  257. package/apps/app-training/src/index.d.ts +1 -2
  258. package/apps/app-training/src/index.d.ts.map +1 -1
  259. package/apps/app-training/src/index.js +1 -2
  260. package/apps/app-training/src/routes/training-routes.d.ts +1 -1
  261. package/apps/app-training/src/routes/training-routes.d.ts.map +1 -1
  262. package/apps/app-training/src/routes/training-routes.js +1 -1
  263. package/apps/app-training/src/routes/trajectory-routes.d.ts +1 -1
  264. package/apps/app-training/src/routes/trajectory-routes.d.ts.map +1 -1
  265. package/apps/app-training/src/routes/trajectory-routes.js +3 -1
  266. package/apps/app-training/src/services/training-service-like.d.ts +1 -1
  267. package/apps/app-training/src/services/training-service-like.d.ts.map +1 -1
  268. package/apps/app-training/src/services/training-service.d.ts +1 -1
  269. package/apps/app-training/src/services/training-service.d.ts.map +1 -1
  270. package/package.json +4 -4
  271. package/packages/agent/src/api/provider-switch-config.js +1 -1
  272. package/packages/agent/src/api/server-helpers-auth.d.ts.map +1 -1
  273. package/packages/agent/src/api/server-helpers-auth.js +5 -4
  274. package/packages/agent/src/providers/media-provider.d.ts +1 -1
  275. package/packages/agent/src/providers/media-provider.d.ts.map +1 -1
  276. package/packages/agent/src/providers/self-status.d.ts +1 -1
  277. package/packages/agent/src/providers/self-status.d.ts.map +1 -1
  278. package/packages/app-core/src/App.d.ts.map +1 -1
  279. package/packages/app-core/src/App.js +20 -12
  280. package/packages/app-core/src/api/auth.d.ts.map +1 -1
  281. package/packages/app-core/src/api/auth.js +5 -5
  282. package/packages/app-core/src/api/client-types-experience.d.ts +7 -0
  283. package/packages/app-core/src/api/client-types-experience.d.ts.map +1 -1
  284. package/packages/app-core/src/components/apps/helpers.d.ts +1 -1
  285. package/packages/app-core/src/components/apps/helpers.d.ts.map +1 -1
  286. package/packages/app-core/src/components/apps/helpers.js +1 -0
  287. package/packages/app-core/src/components/apps/internal-tool-apps.d.ts +11 -0
  288. package/packages/app-core/src/components/apps/internal-tool-apps.d.ts.map +1 -1
  289. package/packages/app-core/src/components/apps/internal-tool-apps.js +31 -0
  290. package/packages/app-core/src/components/apps/launch-history.d.ts +16 -0
  291. package/packages/app-core/src/components/apps/launch-history.d.ts.map +1 -0
  292. package/packages/app-core/src/components/apps/launch-history.js +77 -0
  293. package/packages/app-core/src/components/apps/per-app-config.d.ts +19 -0
  294. package/packages/app-core/src/components/apps/per-app-config.d.ts.map +1 -0
  295. package/packages/app-core/src/components/apps/per-app-config.js +99 -0
  296. package/packages/app-core/src/components/apps/useRegistryCatalog.d.ts +14 -0
  297. package/packages/app-core/src/components/apps/useRegistryCatalog.d.ts.map +1 -0
  298. package/packages/app-core/src/components/apps/useRegistryCatalog.js +52 -0
  299. package/packages/app-core/src/components/auth/LoginView.d.ts +1 -19
  300. package/packages/app-core/src/components/auth/LoginView.d.ts.map +1 -1
  301. package/packages/app-core/src/components/auth/LoginView.js +4 -99
  302. package/packages/app-core/src/components/character/CharacterExperienceWorkspace.d.ts.map +1 -1
  303. package/packages/app-core/src/components/character/CharacterExperienceWorkspace.js +14 -2
  304. package/packages/app-core/src/components/character/character-hub-helpers.d.ts.map +1 -1
  305. package/packages/app-core/src/components/character/character-hub-helpers.js +7 -0
  306. package/packages/app-core/src/components/character/character-hub-types.d.ts +7 -0
  307. package/packages/app-core/src/components/character/character-hub-types.d.ts.map +1 -1
  308. package/packages/app-core/src/components/onboarding/BootstrapStep.d.ts.map +1 -1
  309. package/packages/app-core/src/components/onboarding/BootstrapStep.js +3 -2
  310. package/packages/app-core/src/components/pages/AppDetailsView.d.ts +36 -0
  311. package/packages/app-core/src/components/pages/AppDetailsView.d.ts.map +1 -0
  312. package/packages/app-core/src/components/pages/AppDetailsView.js +289 -0
  313. package/packages/app-core/src/components/pages/AppsView.d.ts.map +1 -1
  314. package/packages/app-core/src/components/pages/AppsView.js +134 -42
  315. package/packages/app-core/src/components/shell/StartupShell.d.ts.map +1 -1
  316. package/packages/app-core/src/components/shell/StartupShell.js +2 -5
  317. package/packages/app-core/src/i18n/locales/en.json +256 -205
  318. package/packages/app-core/src/i18n/locales/es.json +256 -205
  319. package/packages/app-core/src/i18n/locales/ko.json +256 -205
  320. package/packages/app-core/src/i18n/locales/pt.json +256 -205
  321. package/packages/app-core/src/i18n/locales/tl.json +256 -205
  322. package/packages/app-core/src/i18n/locales/vi.json +256 -205
  323. package/packages/app-core/src/i18n/locales/zh-CN.json +256 -205
  324. package/packages/app-core/src/navigation/index.d.ts.map +1 -1
  325. package/packages/app-core/src/navigation/index.js +6 -0
  326. package/packages/app-core/src/services/auth-store.d.ts +1 -1
  327. package/packages/app-core/src/services/auth-store.d.ts.map +1 -1
  328. package/packages/app-core/src/services/auth-store.js +1 -1
  329. package/packages/app-core/src/shell/AppWindowRenderer.d.ts +17 -0
  330. package/packages/app-core/src/shell/AppWindowRenderer.d.ts.map +1 -0
  331. package/packages/app-core/src/shell/AppWindowRenderer.js +337 -0
  332. package/packages/app-core/src/shell/DetachedShellRoot.js +4 -1
  333. package/packages/app-core/src/shell/index.d.ts +1 -0
  334. package/packages/app-core/src/shell/index.d.ts.map +1 -1
  335. package/packages/app-core/src/shell/index.js +1 -0
  336. package/packages/app-core/src/state/startup-coordinator.d.ts.map +1 -1
  337. package/packages/app-core/src/state/startup-coordinator.js +0 -3
  338. package/packages/app-core/src/state/startup-phase-poll.d.ts.map +1 -1
  339. package/packages/app-core/src/state/startup-phase-poll.js +2 -4
  340. package/packages/app-core/src/state/usePluginsSkillsState.d.ts +6 -6
  341. package/packages/native-plugins/mobile-signals/src/definitions.d.ts +162 -0
  342. package/packages/native-plugins/mobile-signals/src/definitions.d.ts.map +1 -0
  343. package/packages/native-plugins/mobile-signals/src/definitions.js +1 -0
  344. package/packages/native-plugins/mobile-signals/src/index.d.ts +4 -0
  345. package/packages/native-plugins/mobile-signals/src/index.d.ts.map +1 -0
  346. package/packages/native-plugins/mobile-signals/src/index.js +6 -0
  347. package/packages/native-plugins/mobile-signals/src/web.d.ts +29 -0
  348. package/packages/native-plugins/mobile-signals/src/web.d.ts.map +1 -0
  349. package/packages/native-plugins/mobile-signals/src/web.js +269 -0
  350. package/packages/shared/src/app-hero-art.d.ts.map +1 -1
  351. package/packages/shared/src/app-hero-art.js +13 -0
  352. package/packages/shared/src/contracts/lifeops.d.ts +10 -0
  353. package/packages/shared/src/contracts/lifeops.d.ts.map +1 -1
  354. package/packages/shared/src/contracts/lifeops.js +5 -0
  355. package/packages/typescript/src/features/advanced-capabilities/experience/actions/record-experience.d.ts.map +1 -1
  356. package/packages/typescript/src/features/advanced-capabilities/experience/actions/record-experience.js +46 -4
  357. package/packages/typescript/src/features/advanced-capabilities/experience/evaluators/experienceEvaluator.d.ts.map +1 -1
  358. package/packages/typescript/src/features/advanced-capabilities/experience/evaluators/experienceEvaluator.js +34 -124
  359. package/packages/typescript/src/features/advanced-capabilities/experience/service.d.ts.map +1 -1
  360. package/packages/typescript/src/features/advanced-capabilities/experience/service.js +56 -0
  361. package/packages/typescript/src/features/advanced-capabilities/experience/types.d.ts +7 -0
  362. package/packages/typescript/src/features/advanced-capabilities/experience/types.d.ts.map +1 -1
  363. package/packages/typescript/src/features/advanced-capabilities/experience/utils/experienceText.d.ts +7 -0
  364. package/packages/typescript/src/features/advanced-capabilities/experience/utils/experienceText.d.ts.map +1 -0
  365. package/packages/typescript/src/features/advanced-capabilities/experience/utils/experienceText.js +123 -0
  366. package/apps/app-training/src/ui/FineTuningView.d.ts +0 -5
  367. package/apps/app-training/src/ui/FineTuningView.d.ts.map +0 -1
  368. package/apps/app-training/src/ui/FineTuningView.js +0 -388
  369. package/apps/app-training/src/ui/fine-tuning-panels.d.ts +0 -111
  370. package/apps/app-training/src/ui/fine-tuning-panels.d.ts.map +0 -1
  371. package/apps/app-training/src/ui/fine-tuning-panels.js +0 -130
  372. package/apps/app-training/src/ui/index.d.ts +0 -3
  373. package/apps/app-training/src/ui/index.d.ts.map +0 -1
  374. package/apps/app-training/src/ui/index.js +0 -2
  375. package/packages/app-core/src/api/trusted-local-request.d.ts +0 -4
  376. package/packages/app-core/src/api/trusted-local-request.d.ts.map +0 -1
  377. package/packages/app-core/src/api/trusted-local-request.js +0 -176
@@ -0,0 +1,566 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { AppWorkspaceChrome, Button, client, isWebPlatform, openExternalUrl, PagePanel, useApp, useMediaQuery, } from "@elizaos/app-core";
3
+ import { PageScopedChatPane } from "@elizaos/app-core/components/pages/PageScopedChatPane";
4
+ import { Power, RefreshCw } from "lucide-react";
5
+ import { useCallback, useEffect, useMemo, useState } from "react";
6
+ import { LIFEOPS_GITHUB_CALLBACK_EVENT, } from "../events/index.js";
7
+ import { useLifeOpsAppState } from "../hooks/useLifeOpsAppState.js";
8
+ import { useLifeOpsSection } from "../hooks/useLifeOpsSection.js";
9
+ import { consumeQueuedLifeOpsGithubCallback, dispatchLifeOpsGithubCallbackFromWindowMessage, drainLifeOpsGithubCallbacks, } from "../platform/lifeops-github.js";
10
+ import { LifeOpsXPanel } from "./LifeOpsOperationalPanels";
11
+ import { LifeOpsSelectionProvider, useLifeOpsSelection, } from "./LifeOpsSelectionContext.js";
12
+ import { LifeOpsSectionContent } from "./LifeOpsSectionContent.js";
13
+ import { LifeOpsSettingsSection } from "./LifeOpsSettingsSection";
14
+ import { clearLifeOpsSetupGateDismissed } from "./LifeOpsSetupGate.js";
15
+ import { LifeOpsWorkspaceShell } from "./LifeOpsWorkspaceShell.js";
16
+ import { MessagingConnectorGrid } from "./MessagingConnectorCards";
17
+ function EnablePrompt({ loading, onEnable, t }) {
18
+ return (_jsx(PagePanel, { variant: "surface", children: _jsxs("div", { className: "flex flex-col gap-3 p-4", children: [_jsx("div", { className: "text-sm font-semibold text-txt", children: t("lifeopspage.enableTitle", {
19
+ defaultValue: "Enable LifeOps",
20
+ }) }), _jsx("div", { className: "text-xs text-muted", children: t("lifeopspage.enableBody", {
21
+ defaultValue: "Turn on LifeOps to let the agent manage your schedule, inbox, and calendar.",
22
+ }) }), _jsx(Button, { onClick: onEnable, disabled: loading, className: "self-start", children: loading
23
+ ? t("lifeopspage.enabling", { defaultValue: "Enabling…" })
24
+ : t("lifeopspage.enable", { defaultValue: "Enable LifeOps" }) })] }) }));
25
+ }
26
+ const LIFEOPS_GITHUB_COMPLETE_PATH = "/api/v1/milady/lifeops/github-complete";
27
+ const LIFEOPS_GITHUB_RETURN_URL = "elizaos://lifeops";
28
+ const LIFEOPS_COMPACT_LAYOUT_MEDIA_QUERY = "(max-width: 1023px)";
29
+ function buildOwnerGithubRedirectUrl() {
30
+ const params = new URLSearchParams();
31
+ if (isWebPlatform()) {
32
+ params.set("post_message", "1");
33
+ }
34
+ else {
35
+ params.set("return_url", LIFEOPS_GITHUB_RETURN_URL);
36
+ }
37
+ return `${LIFEOPS_GITHUB_COMPLETE_PATH}?${params.toString()}`;
38
+ }
39
+ function openWebOauthPopup() {
40
+ if (!isWebPlatform() ||
41
+ typeof window === "undefined" ||
42
+ typeof window.open !== "function") {
43
+ return null;
44
+ }
45
+ return window.open("", "elizaos-lifeops-github");
46
+ }
47
+ function describeGithubCallback(detail, t) {
48
+ if (detail.status === "error") {
49
+ return {
50
+ message: detail.message?.trim() ||
51
+ t("lifeopspage.githubSetupIncomplete", {
52
+ defaultValue: "GitHub setup did not complete.",
53
+ }),
54
+ tone: "error",
55
+ durationMs: 5000,
56
+ };
57
+ }
58
+ if (detail.target === "owner") {
59
+ return {
60
+ message: t("lifeopspage.githubConnectedCloud", {
61
+ defaultValue: "LifeOps GitHub connected through Eliza Cloud.",
62
+ }),
63
+ tone: "success",
64
+ durationMs: 3600,
65
+ };
66
+ }
67
+ if (detail.bindingMode === "shared-owner") {
68
+ return {
69
+ message: detail.restarted
70
+ ? t("lifeopspage.agentUsingOwnerGithubRestarting", {
71
+ defaultValue: "Agent is using the LifeOps GitHub account and the cloud runtime is restarting.",
72
+ })
73
+ : t("lifeopspage.agentUsingOwnerGithub", {
74
+ defaultValue: "Agent is using the LifeOps GitHub account.",
75
+ }),
76
+ tone: "success",
77
+ durationMs: 4200,
78
+ };
79
+ }
80
+ const githubHandle = detail.githubUsername?.trim()
81
+ ? ` @${detail.githubUsername.trim()}`
82
+ : "";
83
+ return {
84
+ message: detail.restarted
85
+ ? t("lifeopspage.agentGithubConnectedRestarting", {
86
+ defaultValue: "Agent GitHub{{githubHandle}} connected and the cloud runtime is restarting.",
87
+ githubHandle,
88
+ })
89
+ : t("lifeopspage.agentGithubConnected", {
90
+ defaultValue: "Agent GitHub{{githubHandle}} connected.",
91
+ githubHandle,
92
+ }),
93
+ tone: "success",
94
+ durationMs: 4200,
95
+ };
96
+ }
97
+ function readGithubIdentity(connection, t) {
98
+ if (!connection) {
99
+ return t("lifeopspage.notLinked", {
100
+ defaultValue: "Not linked",
101
+ });
102
+ }
103
+ const displayName = typeof connection.displayName === "string" &&
104
+ connection.displayName.trim().length > 0
105
+ ? connection.displayName.trim()
106
+ : null;
107
+ const username = typeof connection.username === "string" &&
108
+ connection.username.trim().length > 0
109
+ ? `@${connection.username.trim()}`
110
+ : null;
111
+ const email = typeof connection.email === "string" && connection.email.trim().length > 0
112
+ ? connection.email.trim()
113
+ : null;
114
+ return (displayName ??
115
+ username ??
116
+ email ??
117
+ t("lifeopspage.notLinked", {
118
+ defaultValue: "Not linked",
119
+ }));
120
+ }
121
+ function selectPrimaryOwnerGithubConnection(connections) {
122
+ return (connections.find((connection) => connection.status === "active") ??
123
+ connections[0] ??
124
+ null);
125
+ }
126
+ function selectPrimaryAgentGithubEntry(entries) {
127
+ return entries.find((entry) => entry.github?.connected) ?? entries[0] ?? null;
128
+ }
129
+ function buildOwnerGithubSetup(params) {
130
+ const { elizaCloudConnected, primaryOwnerGithubConnection, githubLoading, ownerGithubBusy, disconnectingOwnerConnectionId, handleConnectOwnerGithub, handleDisconnectOwnerGithub, t, } = params;
131
+ return {
132
+ identity: elizaCloudConnected
133
+ ? readGithubIdentity(primaryOwnerGithubConnection, t)
134
+ : t("lifeopspage.cloudRequired", { defaultValue: "Cloud required" }),
135
+ status: elizaCloudConnected
136
+ ? primaryOwnerGithubConnection
137
+ ? "1 / 1"
138
+ : githubLoading
139
+ ? t("common.loading", { defaultValue: "Loading" })
140
+ : "0 / 1"
141
+ : t("lifeopspage.cloudRequired", { defaultValue: "Cloud required" }),
142
+ connectLabel: primaryOwnerGithubConnection
143
+ ? t("common.reconnect", { defaultValue: "Reconnect" })
144
+ : t("common.connect", { defaultValue: "Connect" }),
145
+ connectDisabled: ownerGithubBusy || !elizaCloudConnected,
146
+ disconnectDisabled: disconnectingOwnerConnectionId === primaryOwnerGithubConnection?.id,
147
+ onConnect: elizaCloudConnected ? handleConnectOwnerGithub : undefined,
148
+ onDisconnect: primaryOwnerGithubConnection
149
+ ? () => handleDisconnectOwnerGithub(primaryOwnerGithubConnection.id)
150
+ : undefined,
151
+ };
152
+ }
153
+ function buildAgentGithubSetup(params) {
154
+ const { elizaCloudConnected, primaryAgentGithubEntry, githubLoading, busyAgentGithubId, handleConnectAgentGithub, handleDisconnectAgentGithub, t, } = params;
155
+ return {
156
+ identity: elizaCloudConnected
157
+ ? primaryAgentGithubEntry?.github?.connected
158
+ ? readGithubIdentity({
159
+ displayName: primaryAgentGithubEntry.github.githubDisplayName,
160
+ username: primaryAgentGithubEntry.github.githubUsername,
161
+ email: primaryAgentGithubEntry.github.githubEmail,
162
+ }, t)
163
+ : (primaryAgentGithubEntry?.agent.agent_name ??
164
+ t("lifeopspage.noCloudAgent", { defaultValue: "No cloud agent" }))
165
+ : t("lifeopspage.cloudRequired", { defaultValue: "Cloud required" }),
166
+ status: elizaCloudConnected
167
+ ? primaryAgentGithubEntry?.github?.connected
168
+ ? "1 / 1"
169
+ : primaryAgentGithubEntry
170
+ ? "0 / 1"
171
+ : githubLoading
172
+ ? t("common.loading", { defaultValue: "Loading" })
173
+ : ""
174
+ : t("lifeopspage.cloudRequired", { defaultValue: "Cloud required" }),
175
+ connectLabel: primaryAgentGithubEntry?.github?.connected
176
+ ? t("common.reconnect", { defaultValue: "Reconnect" })
177
+ : t("common.connect", { defaultValue: "Connect" }),
178
+ connectDisabled: !primaryAgentGithubEntry ||
179
+ busyAgentGithubId === primaryAgentGithubEntry.agent.agent_id,
180
+ disconnectDisabled: !primaryAgentGithubEntry ||
181
+ busyAgentGithubId === primaryAgentGithubEntry.agent.agent_id,
182
+ onConnect: elizaCloudConnected && primaryAgentGithubEntry
183
+ ? () => handleConnectAgentGithub(primaryAgentGithubEntry.agent.agent_id)
184
+ : undefined,
185
+ onDisconnect: elizaCloudConnected &&
186
+ primaryAgentGithubEntry?.github?.connected &&
187
+ primaryAgentGithubEntry
188
+ ? () => handleDisconnectAgentGithub(primaryAgentGithubEntry.agent.agent_id)
189
+ : undefined,
190
+ };
191
+ }
192
+ function LifeOpsSettingsSectionView({ ownerGithub, agentGithub, githubError, onRunSetupAgain, onDisableLifeOps, disableLifeOpsDisabled, t, }) {
193
+ return (_jsxs("div", { className: "space-y-5", children: [_jsxs("div", { className: "flex items-center justify-between gap-3", children: [_jsx("h2", { className: "text-base font-semibold tracking-tight text-txt", children: t("lifeopspage.accessTitle", { defaultValue: "Access" }) }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Button, { size: "sm", variant: "outline", className: "h-8 w-8 rounded-xl p-0", onClick: onRunSetupAgain, title: t("lifeopspage.runSetupAgain", {
194
+ defaultValue: "Run setup again",
195
+ }), "aria-label": t("lifeopspage.runSetupAgain", {
196
+ defaultValue: "Run setup again",
197
+ }), children: _jsx(RefreshCw, { className: "h-3.5 w-3.5", "aria-hidden": true }) }), _jsx(Button, { variant: "surfaceDestructive", size: "sm", className: "h-8 w-8 rounded-xl p-0", onClick: onDisableLifeOps, disabled: disableLifeOpsDisabled, title: t("lifeopspage.disable", {
198
+ defaultValue: "Disable LifeOps",
199
+ }), "aria-label": t("lifeopspage.disable", {
200
+ defaultValue: "Disable LifeOps",
201
+ }), children: _jsx(Power, { className: "h-3.5 w-3.5", "aria-hidden": true }) })] })] }), _jsx(LifeOpsSettingsSection, { ownerGithub: ownerGithub, agentGithub: agentGithub, githubError: githubError }), _jsx(MessagingConnectorGrid, {}), _jsx(LifeOpsXPanel, {})] }));
202
+ }
203
+ function resolveLifeOpsChatPlaceholder(selection) {
204
+ if (selection.reminderId) {
205
+ return "Ask about this reminder";
206
+ }
207
+ if (selection.eventId) {
208
+ return "Ask about this event";
209
+ }
210
+ if (selection.messageId) {
211
+ return "Ask about this message";
212
+ }
213
+ return undefined;
214
+ }
215
+ function LifeOpsPageChat() {
216
+ const { selection } = useLifeOpsSelection();
217
+ return (_jsx(PageScopedChatPane, { scope: "page-lifeops", title: "LifeOps", placeholderOverride: resolveLifeOpsChatPlaceholder(selection) }));
218
+ }
219
+ /* ── Inner view — rendered inside SelectionProvider ────────────────── */
220
+ export function LifeOpsPageView() {
221
+ return (_jsx(LifeOpsSelectionProvider, { children: _jsx(LifeOpsWorkspaceInner, {}) }));
222
+ }
223
+ function LifeOpsWorkspaceInner() {
224
+ const lifeOpsApp = useLifeOpsAppState();
225
+ const { agentStatus, backendConnection, elizaCloudConnected, setActionNotice, startupCoordinator, t, } = useApp();
226
+ const [ownerGithubConnections, setOwnerGithubConnections] = useState([]);
227
+ const [agentGithubEntries, setAgentGithubEntries] = useState([]);
228
+ const [githubLoading, setGithubLoading] = useState(false);
229
+ const [githubError, setGithubError] = useState(null);
230
+ const [ownerGithubBusy, setOwnerGithubBusy] = useState(false);
231
+ const [disconnectingOwnerConnectionId, setDisconnectingOwnerConnectionId] = useState(null);
232
+ const [busyAgentGithubId, setBusyAgentGithubId] = useState(null);
233
+ const compactLayout = useMediaQuery(LIFEOPS_COMPACT_LAYOUT_MEDIA_QUERY);
234
+ const { section, navigate, eventId, messageId } = useLifeOpsSection();
235
+ const { select } = useLifeOpsSelection();
236
+ // Bridge URL hash → selection context. When the widget row writes the hash
237
+ // and the app navigates to /lifeops, the section-scoped UIs
238
+ // (EventEditorDrawer, InboxReaderPane, …) react off `selection.eventId` /
239
+ // `selection.messageId`, not off the hash directly. Push the hook's hash
240
+ // state into the selection context whenever it changes.
241
+ useEffect(() => {
242
+ select({ eventId, messageId });
243
+ }, [eventId, messageId, select]);
244
+ const appEnabled = lifeOpsApp.enabled;
245
+ const runtimeReady = startupCoordinator.phase === "ready" &&
246
+ agentStatus?.state === "running" &&
247
+ backendConnection?.state === "connected";
248
+ const loadGithub = useCallback(async () => {
249
+ if (!appEnabled || !elizaCloudConnected) {
250
+ setGithubError(null);
251
+ setOwnerGithubConnections([]);
252
+ setAgentGithubEntries([]);
253
+ setGithubLoading(false);
254
+ return;
255
+ }
256
+ setGithubLoading(true);
257
+ setGithubError(null);
258
+ try {
259
+ const [connectionsResult, agentsResult] = await Promise.allSettled([
260
+ client.listCloudOauthConnections({
261
+ platform: "github",
262
+ connectionRole: "owner",
263
+ }),
264
+ client.getCloudCompatAgents(),
265
+ ]);
266
+ if (connectionsResult.status === "rejected" &&
267
+ agentsResult.status === "rejected") {
268
+ throw connectionsResult.reason;
269
+ }
270
+ const connections = connectionsResult.status === "fulfilled" &&
271
+ Array.isArray(connectionsResult.value.connections)
272
+ ? connectionsResult.value.connections
273
+ : [];
274
+ const agents = agentsResult.status === "fulfilled" &&
275
+ Array.isArray(agentsResult.value.data)
276
+ ? agentsResult.value.data
277
+ : [];
278
+ const entries = await Promise.all(agents.map(async (agent) => {
279
+ const github = await client.getCloudCompatAgentManagedGithub(agent.agent_id);
280
+ return {
281
+ agent,
282
+ github: github.data,
283
+ };
284
+ }));
285
+ setOwnerGithubConnections(connections);
286
+ setAgentGithubEntries(entries);
287
+ if (connectionsResult.status === "rejected" ||
288
+ agentsResult.status === "rejected") {
289
+ setGithubError(t("lifeopspage.githubDetailsPartial", {
290
+ defaultValue: "GitHub cloud details unavailable.",
291
+ }));
292
+ }
293
+ }
294
+ catch (cause) {
295
+ setGithubError(cause instanceof Error && cause.message.trim().length > 0
296
+ ? cause.message.trim()
297
+ : t("lifeopspage.githubDetailsLoadFailed", {
298
+ defaultValue: "GitHub connection details failed to load.",
299
+ }));
300
+ }
301
+ finally {
302
+ setGithubLoading(false);
303
+ }
304
+ }, [appEnabled, elizaCloudConnected, t]);
305
+ useEffect(() => {
306
+ void loadGithub();
307
+ }, [loadGithub]);
308
+ const handleGithubCallback = useCallback((detail) => {
309
+ consumeQueuedLifeOpsGithubCallback(detail);
310
+ setOwnerGithubBusy(false);
311
+ setBusyAgentGithubId(null);
312
+ void (async () => {
313
+ let resolvedDetail = detail;
314
+ if (detail.target === "agent" &&
315
+ detail.status === "connected" &&
316
+ detail.agentId &&
317
+ detail.connectionId &&
318
+ !detail.bindingMode) {
319
+ try {
320
+ const response = await client.linkCloudCompatAgentManagedGithub(detail.agentId, detail.connectionId);
321
+ resolvedDetail = {
322
+ ...detail,
323
+ bindingMode: response.data.mode ?? "cloud-managed",
324
+ githubUsername: response.data.githubUsername ?? detail.githubUsername ?? null,
325
+ restarted: response.data.restarted,
326
+ };
327
+ }
328
+ catch (cause) {
329
+ resolvedDetail = {
330
+ ...detail,
331
+ status: "error",
332
+ message: cause instanceof Error
333
+ ? cause.message
334
+ : t("lifeopspage.githubLinkFailed", {
335
+ defaultValue: "Failed to link GitHub to this agent.",
336
+ }),
337
+ };
338
+ }
339
+ }
340
+ const notice = describeGithubCallback(resolvedDetail, t);
341
+ setActionNotice(notice.message, notice.tone, notice.durationMs);
342
+ await loadGithub();
343
+ })();
344
+ }, [loadGithub, setActionNotice, t]);
345
+ const handleSetLifeOpsEnabled = useCallback(async (nextEnabled) => {
346
+ try {
347
+ await lifeOpsApp.updateEnabled(nextEnabled);
348
+ if (!nextEnabled) {
349
+ setOwnerGithubConnections([]);
350
+ setAgentGithubEntries([]);
351
+ setGithubError(null);
352
+ }
353
+ setActionNotice(nextEnabled
354
+ ? t("lifeopspage.enabled", { defaultValue: "LifeOps enabled." })
355
+ : t("lifeopspage.disabled", { defaultValue: "LifeOps disabled." }), "success", 3600);
356
+ }
357
+ catch (cause) {
358
+ setActionNotice(cause instanceof Error
359
+ ? cause.message
360
+ : t("lifeopspage.updateStateFailed", {
361
+ defaultValue: "Failed to update the LifeOps app state.",
362
+ }), "error", 4200);
363
+ }
364
+ }, [lifeOpsApp, setActionNotice, t]);
365
+ const handleConnectOwnerGithub = useCallback(async () => {
366
+ const popup = openWebOauthPopup();
367
+ if (isWebPlatform() && !popup) {
368
+ setActionNotice(t("lifeopspage.popupBlocked", {
369
+ defaultValue: "Popup blocked. Please allow popups and try again.",
370
+ }), "error", 4200);
371
+ return;
372
+ }
373
+ setOwnerGithubBusy(true);
374
+ try {
375
+ const response = await client.initiateCloudOauth("github", {
376
+ redirectUrl: buildOwnerGithubRedirectUrl(),
377
+ connectionRole: "owner",
378
+ });
379
+ if (popup && !popup.closed) {
380
+ popup.location.href = response.authUrl;
381
+ }
382
+ else {
383
+ await openExternalUrl(response.authUrl);
384
+ }
385
+ setActionNotice(t("lifeopspage.finishGithubAuth", {
386
+ defaultValue: "Finish GitHub authorization in your browser, then return here.",
387
+ }), "info", 5000);
388
+ }
389
+ catch (cause) {
390
+ popup?.close();
391
+ setActionNotice(cause instanceof Error
392
+ ? cause.message
393
+ : t("lifeopspage.startGithubSetupFailed", {
394
+ defaultValue: "Failed to start GitHub setup.",
395
+ }), "error", 4200);
396
+ }
397
+ finally {
398
+ setOwnerGithubBusy(false);
399
+ }
400
+ }, [setActionNotice, t]);
401
+ const handleDisconnectOwnerGithub = useCallback(async (connectionId) => {
402
+ setDisconnectingOwnerConnectionId(connectionId);
403
+ try {
404
+ await client.disconnectCloudOauthConnection(connectionId);
405
+ setOwnerGithubConnections((current) => current.filter((connection) => connection.id !== connectionId));
406
+ setActionNotice(t("lifeopspage.githubDisconnected", {
407
+ defaultValue: "LifeOps GitHub disconnected.",
408
+ }), "success", 3200);
409
+ await loadGithub();
410
+ }
411
+ catch (cause) {
412
+ setActionNotice(cause instanceof Error
413
+ ? cause.message
414
+ : t("lifeopspage.disconnectGithubFailed", {
415
+ defaultValue: "Failed to disconnect GitHub.",
416
+ }), "error", 4200);
417
+ }
418
+ finally {
419
+ setDisconnectingOwnerConnectionId(null);
420
+ }
421
+ }, [loadGithub, setActionNotice, t]);
422
+ const handleConnectAgentGithub = useCallback(async (agentId) => {
423
+ const popup = openWebOauthPopup();
424
+ if (isWebPlatform() && !popup) {
425
+ setActionNotice(t("lifeopspage.popupBlocked", {
426
+ defaultValue: "Popup blocked. Please allow popups and try again.",
427
+ }), "error", 4200);
428
+ return;
429
+ }
430
+ setBusyAgentGithubId(agentId);
431
+ try {
432
+ const response = await client.createCloudCompatAgentManagedGithubOauth(agentId, isWebPlatform()
433
+ ? { postMessage: true }
434
+ : { returnUrl: LIFEOPS_GITHUB_RETURN_URL });
435
+ if (popup && !popup.closed) {
436
+ popup.location.href = response.data.authorizeUrl;
437
+ }
438
+ else {
439
+ await openExternalUrl(response.data.authorizeUrl);
440
+ }
441
+ setActionNotice(t("lifeopspage.finishGithubAuth", {
442
+ defaultValue: "Finish GitHub authorization in your browser, then return here.",
443
+ }), "info", 5000);
444
+ }
445
+ catch (cause) {
446
+ popup?.close();
447
+ setActionNotice(cause instanceof Error
448
+ ? cause.message
449
+ : t("lifeopspage.startAgentGithubSetupFailed", {
450
+ defaultValue: "Failed to start agent GitHub setup.",
451
+ }), "error", 4200);
452
+ }
453
+ finally {
454
+ setBusyAgentGithubId(null);
455
+ }
456
+ }, [setActionNotice, t]);
457
+ useEffect(() => {
458
+ drainLifeOpsGithubCallbacks().forEach(handleGithubCallback);
459
+ const handleCallbackEvent = (event) => {
460
+ const detail = event.detail;
461
+ if (!detail)
462
+ return;
463
+ handleGithubCallback(detail);
464
+ };
465
+ window.addEventListener(LIFEOPS_GITHUB_CALLBACK_EVENT, handleCallbackEvent);
466
+ return () => {
467
+ window.removeEventListener(LIFEOPS_GITHUB_CALLBACK_EVENT, handleCallbackEvent);
468
+ };
469
+ }, [handleGithubCallback]);
470
+ useEffect(() => {
471
+ const handleWindowMessage = (event) => {
472
+ dispatchLifeOpsGithubCallbackFromWindowMessage(event.data);
473
+ };
474
+ window.addEventListener("message", handleWindowMessage);
475
+ return () => {
476
+ window.removeEventListener("message", handleWindowMessage);
477
+ };
478
+ }, []);
479
+ const handleDisconnectAgentGithub = useCallback(async (agentId) => {
480
+ setBusyAgentGithubId(agentId);
481
+ try {
482
+ const response = await client.disconnectCloudCompatAgentManagedGithub(agentId);
483
+ setAgentGithubEntries((current) => current.map((entry) => entry.agent.agent_id === agentId
484
+ ? { ...entry, github: response.data }
485
+ : entry));
486
+ setActionNotice(t("lifeopspage.agentGithubDisconnected", {
487
+ defaultValue: "Agent GitHub disconnected.",
488
+ }), "success", 3200);
489
+ await loadGithub();
490
+ }
491
+ catch (cause) {
492
+ setActionNotice(cause instanceof Error
493
+ ? cause.message
494
+ : t("lifeopspage.disconnectAgentGithubFailed", {
495
+ defaultValue: "Failed to disconnect agent GitHub.",
496
+ }), "error", 4200);
497
+ }
498
+ finally {
499
+ setBusyAgentGithubId(null);
500
+ }
501
+ }, [loadGithub, setActionNotice, t]);
502
+ const primaryOwnerGithubConnection = useMemo(() => selectPrimaryOwnerGithubConnection(ownerGithubConnections), [ownerGithubConnections]);
503
+ const primaryAgentGithubEntry = useMemo(() => selectPrimaryAgentGithubEntry(agentGithubEntries), [agentGithubEntries]);
504
+ const ownerGithubSetup = useMemo(() => buildOwnerGithubSetup({
505
+ elizaCloudConnected,
506
+ primaryOwnerGithubConnection,
507
+ githubLoading,
508
+ ownerGithubBusy,
509
+ disconnectingOwnerConnectionId,
510
+ handleConnectOwnerGithub: () => void handleConnectOwnerGithub(),
511
+ handleDisconnectOwnerGithub: (id) => void handleDisconnectOwnerGithub(id),
512
+ t,
513
+ }), [
514
+ disconnectingOwnerConnectionId,
515
+ elizaCloudConnected,
516
+ githubLoading,
517
+ handleConnectOwnerGithub,
518
+ handleDisconnectOwnerGithub,
519
+ ownerGithubBusy,
520
+ primaryOwnerGithubConnection,
521
+ t,
522
+ ]);
523
+ const agentGithubSetup = useMemo(() => buildAgentGithubSetup({
524
+ elizaCloudConnected,
525
+ primaryAgentGithubEntry,
526
+ githubLoading,
527
+ busyAgentGithubId,
528
+ handleConnectAgentGithub: (id) => void handleConnectAgentGithub(id),
529
+ handleDisconnectAgentGithub: (id) => void handleDisconnectAgentGithub(id),
530
+ t,
531
+ }), [
532
+ busyAgentGithubId,
533
+ elizaCloudConnected,
534
+ githubLoading,
535
+ handleConnectAgentGithub,
536
+ handleDisconnectAgentGithub,
537
+ primaryAgentGithubEntry,
538
+ t,
539
+ ]);
540
+ const showEnablePrompt = !lifeOpsApp.loading && !lifeOpsApp.error && !appEnabled;
541
+ /* ── Enable prompt ──────────────────────────────────────────────── */
542
+ if (lifeOpsApp.loading) {
543
+ return (_jsx("div", { className: "px-4 py-6", children: _jsx(PagePanel.Loading, { variant: "surface", heading: t("lifeopspage.loadingState", {
544
+ defaultValue: "Loading LifeOps app state",
545
+ }) }) }));
546
+ }
547
+ if (lifeOpsApp.error) {
548
+ return (_jsx("div", { className: "px-4 py-4", children: _jsx(PagePanel.Notice, { tone: "danger", children: lifeOpsApp.error }) }));
549
+ }
550
+ if (showEnablePrompt) {
551
+ return (_jsx("div", { className: "px-4 py-4 sm:px-6 sm:py-5 lg:px-8 lg:py-6", children: _jsx(EnablePrompt, { loading: lifeOpsApp.saving, onEnable: () => void handleSetLifeOpsEnabled(true), t: t }) }));
552
+ }
553
+ /* ── Workspace ──────────────────────────────────────────────────── */
554
+ const mainContent = (() => {
555
+ if (appEnabled && !runtimeReady) {
556
+ return (_jsx(PagePanel.Loading, { variant: "surface", heading: t("lifeopspage.waitingRuntime", {
557
+ defaultValue: "Waiting for LifeOps runtime",
558
+ }) }));
559
+ }
560
+ return (_jsx(LifeOpsSectionContent, { section: section, navigate: navigate, setupContent: _jsx(LifeOpsSettingsSectionView, { ownerGithub: ownerGithubSetup, agentGithub: agentGithubSetup, githubError: githubError, onRunSetupAgain: () => {
561
+ clearLifeOpsSetupGateDismissed();
562
+ navigate("overview");
563
+ }, onDisableLifeOps: () => void handleSetLifeOpsEnabled(false), disableLifeOpsDisabled: lifeOpsApp.loading || lifeOpsApp.saving, t: t }) }));
564
+ })();
565
+ return (_jsx(AppWorkspaceChrome, { testId: "lifeops-shell", main: _jsx(LifeOpsWorkspaceShell, { compactLayout: compactLayout, section: section, navigate: navigate, children: mainContent }), chat: _jsx(LifeOpsPageChat, {}) }));
566
+ }
@@ -0,0 +1,2 @@
1
+ export declare function LifeOpsRemindersSection(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=LifeOpsRemindersSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LifeOpsRemindersSection.d.ts","sourceRoot":"","sources":["../../../../../../../apps/app-lifeops/src/components/LifeOpsRemindersSection.tsx"],"names":[],"mappings":"AAkhCA,wBAAgB,uBAAuB,4CA8XtC"}