@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.
- package/apps/app-companion/src/components/companion/CompanionAppView.d.ts.map +1 -1
- package/apps/app-companion/src/components/companion/CompanionAppView.js +6 -4
- package/apps/app-companion/src/components/companion/CompanionView.d.ts.map +1 -1
- package/apps/app-companion/src/components/companion/CompanionView.js +6 -4
- package/apps/app-lifeops/src/api/client-lifeops.js +6 -0
- package/apps/app-lifeops/src/components/AppBlockerSettingsCard.d.ts +3 -0
- package/apps/app-lifeops/src/components/AppBlockerSettingsCard.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/AppBlockerSettingsCard.js +189 -0
- package/apps/app-lifeops/src/components/BrowserBridgeSetupPanel.d.ts +2 -0
- package/apps/app-lifeops/src/components/BrowserBridgeSetupPanel.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/BrowserBridgeSetupPanel.js +1065 -0
- package/apps/app-lifeops/src/components/BrowserBridgeStatusChip.d.ts +7 -0
- package/apps/app-lifeops/src/components/BrowserBridgeStatusChip.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/BrowserBridgeStatusChip.js +71 -0
- package/apps/app-lifeops/src/components/DataSourcesStrip.d.ts +14 -0
- package/apps/app-lifeops/src/components/DataSourcesStrip.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/DataSourcesStrip.js +36 -0
- package/apps/app-lifeops/src/components/EventEditorDrawer.d.ts +23 -0
- package/apps/app-lifeops/src/components/EventEditorDrawer.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/EventEditorDrawer.js +514 -0
- package/apps/app-lifeops/src/components/LifeOpsActivitySignalsEffect.d.ts +2 -0
- package/apps/app-lifeops/src/components/LifeOpsActivitySignalsEffect.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/LifeOpsActivitySignalsEffect.js +10 -0
- package/apps/app-lifeops/src/components/LifeOpsCalendarSection.d.ts +15 -0
- package/apps/app-lifeops/src/components/LifeOpsCalendarSection.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/LifeOpsCalendarSection.js +515 -0
- package/apps/app-lifeops/src/components/LifeOpsChatAdapter.d.ts +34 -0
- package/apps/app-lifeops/src/components/LifeOpsChatAdapter.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/LifeOpsChatAdapter.js +175 -0
- package/apps/app-lifeops/src/components/LifeOpsFeatureTogglesSection.d.ts +2 -0
- package/apps/app-lifeops/src/components/LifeOpsFeatureTogglesSection.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/LifeOpsFeatureTogglesSection.js +99 -0
- package/apps/app-lifeops/src/components/LifeOpsHabitVisuals.d.ts +37 -0
- package/apps/app-lifeops/src/components/LifeOpsHabitVisuals.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/LifeOpsHabitVisuals.js +88 -0
- package/apps/app-lifeops/src/components/LifeOpsInboxSection.d.ts +13 -0
- package/apps/app-lifeops/src/components/LifeOpsInboxSection.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/LifeOpsInboxSection.js +490 -0
- package/apps/app-lifeops/src/components/LifeOpsLinkBankButton.d.ts +12 -0
- package/apps/app-lifeops/src/components/LifeOpsLinkBankButton.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/LifeOpsLinkBankButton.js +92 -0
- package/apps/app-lifeops/src/components/LifeOpsLinkPaypalButton.d.ts +12 -0
- package/apps/app-lifeops/src/components/LifeOpsLinkPaypalButton.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/LifeOpsLinkPaypalButton.js +160 -0
- package/apps/app-lifeops/src/components/LifeOpsMoneySection.d.ts +3 -0
- package/apps/app-lifeops/src/components/LifeOpsMoneySection.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/LifeOpsMoneySection.js +373 -0
- package/apps/app-lifeops/src/components/LifeOpsNavRail.d.ts +9 -0
- package/apps/app-lifeops/src/components/LifeOpsNavRail.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/LifeOpsNavRail.js +93 -0
- package/apps/app-lifeops/src/components/LifeOpsOperationalPanels.d.ts +4 -0
- package/apps/app-lifeops/src/components/LifeOpsOperationalPanels.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/LifeOpsOperationalPanels.js +274 -0
- package/apps/app-lifeops/src/components/LifeOpsOverviewSection.d.ts +7 -0
- package/apps/app-lifeops/src/components/LifeOpsOverviewSection.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/LifeOpsOverviewSection.js +657 -0
- package/apps/app-lifeops/src/components/LifeOpsPageSections.d.ts +42 -0
- package/apps/app-lifeops/src/components/LifeOpsPageSections.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/LifeOpsPageSections.js +166 -0
- package/apps/app-lifeops/src/components/LifeOpsPageView.d.ts +2 -0
- package/apps/app-lifeops/src/components/LifeOpsPageView.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/LifeOpsPageView.js +566 -0
- package/apps/app-lifeops/src/components/LifeOpsRemindersSection.d.ts +2 -0
- package/apps/app-lifeops/src/components/LifeOpsRemindersSection.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/LifeOpsRemindersSection.js +749 -0
- package/apps/app-lifeops/src/components/LifeOpsResizableSidebar.d.ts +27 -0
- package/apps/app-lifeops/src/components/LifeOpsResizableSidebar.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/LifeOpsResizableSidebar.js +106 -0
- package/apps/app-lifeops/src/components/LifeOpsScreenTimeSection.d.ts +2 -0
- package/apps/app-lifeops/src/components/LifeOpsScreenTimeSection.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/LifeOpsScreenTimeSection.js +373 -0
- package/apps/app-lifeops/src/components/LifeOpsSectionContent.d.ts +10 -0
- package/apps/app-lifeops/src/components/LifeOpsSectionContent.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/LifeOpsSectionContent.js +30 -0
- package/apps/app-lifeops/src/components/LifeOpsSelectionContext.d.ts +21 -0
- package/apps/app-lifeops/src/components/LifeOpsSelectionContext.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/LifeOpsSelectionContext.js +30 -0
- package/apps/app-lifeops/src/components/LifeOpsSettingsSection.d.ts +20 -0
- package/apps/app-lifeops/src/components/LifeOpsSettingsSection.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/LifeOpsSettingsSection.js +597 -0
- package/apps/app-lifeops/src/components/LifeOpsSetupGate.d.ts +13 -0
- package/apps/app-lifeops/src/components/LifeOpsSetupGate.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/LifeOpsSetupGate.js +134 -0
- package/apps/app-lifeops/src/components/LifeOpsSleepSection.d.ts +10 -0
- package/apps/app-lifeops/src/components/LifeOpsSleepSection.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/LifeOpsSleepSection.js +425 -0
- package/apps/app-lifeops/src/components/LifeOpsWorkspaceShell.d.ts +11 -0
- package/apps/app-lifeops/src/components/LifeOpsWorkspaceShell.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/LifeOpsWorkspaceShell.js +49 -0
- package/apps/app-lifeops/src/components/LifeOpsWorkspaceView.d.ts +2 -0
- package/apps/app-lifeops/src/components/LifeOpsWorkspaceView.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/LifeOpsWorkspaceView.js +1041 -0
- package/apps/app-lifeops/src/components/MessagingConnectorCards.d.ts +7 -0
- package/apps/app-lifeops/src/components/MessagingConnectorCards.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/MessagingConnectorCards.js +643 -0
- package/apps/app-lifeops/src/components/MissingSourceCard.d.ts +9 -0
- package/apps/app-lifeops/src/components/MissingSourceCard.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/MissingSourceCard.js +5 -0
- package/apps/app-lifeops/src/components/MobileSignalsSetupCard.d.ts +2 -0
- package/apps/app-lifeops/src/components/MobileSignalsSetupCard.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/MobileSignalsSetupCard.js +163 -0
- package/apps/app-lifeops/src/components/SleepInspectionPanel.d.ts +8 -0
- package/apps/app-lifeops/src/components/SleepInspectionPanel.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/SleepInspectionPanel.js +59 -0
- package/apps/app-lifeops/src/components/WebsiteBlockerSettingsCard.d.ts +3 -0
- package/apps/app-lifeops/src/components/WebsiteBlockerSettingsCard.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/WebsiteBlockerSettingsCard.js +75 -0
- package/apps/app-lifeops/src/components/WhatsAppQrOverlay.d.ts +8 -0
- package/apps/app-lifeops/src/components/WhatsAppQrOverlay.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/WhatsAppQrOverlay.js +48 -0
- package/apps/app-lifeops/src/components/lifeops-labels.d.ts +2 -0
- package/apps/app-lifeops/src/components/lifeops-labels.d.ts.map +1 -0
- package/apps/app-lifeops/src/components/lifeops-labels.js +5 -0
- package/apps/app-lifeops/src/events/index.d.ts +34 -0
- package/apps/app-lifeops/src/events/index.d.ts.map +1 -0
- package/apps/app-lifeops/src/events/index.js +23 -0
- package/apps/app-lifeops/src/hooks/useCalendarWeek.d.ts +28 -0
- package/apps/app-lifeops/src/hooks/useCalendarWeek.d.ts.map +1 -0
- package/apps/app-lifeops/src/hooks/useCalendarWeek.js +93 -0
- package/apps/app-lifeops/src/hooks/useDiscordConnector.d.ts +14 -0
- package/apps/app-lifeops/src/hooks/useDiscordConnector.d.ts.map +1 -0
- package/apps/app-lifeops/src/hooks/useDiscordConnector.js +126 -0
- package/apps/app-lifeops/src/hooks/useGoogleLifeOpsConnector.d.ts +29 -0
- package/apps/app-lifeops/src/hooks/useGoogleLifeOpsConnector.d.ts.map +1 -0
- package/apps/app-lifeops/src/hooks/useGoogleLifeOpsConnector.js +481 -0
- package/apps/app-lifeops/src/hooks/useIMessageConnector.d.ts +10 -0
- package/apps/app-lifeops/src/hooks/useIMessageConnector.d.ts.map +1 -0
- package/apps/app-lifeops/src/hooks/useIMessageConnector.js +50 -0
- package/apps/app-lifeops/src/hooks/useInbox.d.ts +34 -0
- package/apps/app-lifeops/src/hooks/useInbox.d.ts.map +1 -0
- package/apps/app-lifeops/src/hooks/useInbox.js +98 -0
- package/apps/app-lifeops/src/hooks/useLifeOpsActivitySignals.d.ts +2 -0
- package/apps/app-lifeops/src/hooks/useLifeOpsActivitySignals.d.ts.map +1 -0
- package/apps/app-lifeops/src/hooks/useLifeOpsActivitySignals.js +383 -0
- package/apps/app-lifeops/src/hooks/useLifeOpsAppState.d.ts +9 -0
- package/apps/app-lifeops/src/hooks/useLifeOpsAppState.d.ts.map +1 -0
- package/apps/app-lifeops/src/hooks/useLifeOpsAppState.js +83 -0
- package/apps/app-lifeops/src/hooks/useLifeOpsCapabilitiesStatus.d.ts +8 -0
- package/apps/app-lifeops/src/hooks/useLifeOpsCapabilitiesStatus.d.ts.map +1 -0
- package/apps/app-lifeops/src/hooks/useLifeOpsCapabilitiesStatus.js +60 -0
- package/apps/app-lifeops/src/hooks/useLifeOpsScheduleInspection.d.ts +18 -0
- package/apps/app-lifeops/src/hooks/useLifeOpsScheduleInspection.d.ts.map +1 -0
- package/apps/app-lifeops/src/hooks/useLifeOpsScheduleInspection.js +66 -0
- package/apps/app-lifeops/src/hooks/useLifeOpsScheduleState.d.ts +14 -0
- package/apps/app-lifeops/src/hooks/useLifeOpsScheduleState.d.ts.map +1 -0
- package/apps/app-lifeops/src/hooks/useLifeOpsScheduleState.js +79 -0
- package/apps/app-lifeops/src/hooks/useLifeOpsSection.d.ts +18 -0
- package/apps/app-lifeops/src/hooks/useLifeOpsSection.d.ts.map +1 -0
- package/apps/app-lifeops/src/hooks/useLifeOpsSection.js +78 -0
- package/apps/app-lifeops/src/hooks/useLifeOpsXConnector.d.ts +14 -0
- package/apps/app-lifeops/src/hooks/useLifeOpsXConnector.d.ts.map +1 -0
- package/apps/app-lifeops/src/hooks/useLifeOpsXConnector.js +160 -0
- package/apps/app-lifeops/src/hooks/useSignalConnector.d.ts +16 -0
- package/apps/app-lifeops/src/hooks/useSignalConnector.d.ts.map +1 -0
- package/apps/app-lifeops/src/hooks/useSignalConnector.js +198 -0
- package/apps/app-lifeops/src/hooks/useTelegramConnector.d.ts +21 -0
- package/apps/app-lifeops/src/hooks/useTelegramConnector.d.ts.map +1 -0
- package/apps/app-lifeops/src/hooks/useTelegramConnector.js +177 -0
- package/apps/app-lifeops/src/hooks/useWhatsAppConnector.d.ts +8 -0
- package/apps/app-lifeops/src/hooks/useWhatsAppConnector.d.ts.map +1 -0
- package/apps/app-lifeops/src/hooks/useWhatsAppConnector.js +58 -0
- package/apps/app-lifeops/src/hooks/useWhatsAppPairing.d.ts +12 -0
- package/apps/app-lifeops/src/hooks/useWhatsAppPairing.d.ts.map +1 -0
- package/apps/app-lifeops/src/hooks/useWhatsAppPairing.js +152 -0
- package/apps/app-lifeops/src/lifeops/discord-browser-scraper.js +1 -1
- package/apps/app-lifeops/src/lifeops/google-gmail.d.ts.map +1 -1
- package/apps/app-lifeops/src/lifeops/google-gmail.js +74 -26
- package/apps/app-lifeops/src/lifeops/google-managed-client.d.ts.map +1 -1
- package/apps/app-lifeops/src/lifeops/google-managed-client.js +4 -5
- package/apps/app-lifeops/src/lifeops/google-oauth.d.ts.map +1 -1
- package/apps/app-lifeops/src/lifeops/google-oauth.js +2 -2
- package/apps/app-lifeops/src/lifeops/owner-profile.d.ts.map +1 -1
- package/apps/app-lifeops/src/lifeops/owner-profile.js +1 -1
- package/apps/app-lifeops/src/lifeops/paypal-managed-client.d.ts.map +1 -1
- package/apps/app-lifeops/src/lifeops/paypal-managed-client.js +4 -5
- package/apps/app-lifeops/src/lifeops/plaid-managed-client.d.ts.map +1 -1
- package/apps/app-lifeops/src/lifeops/plaid-managed-client.js +4 -5
- package/apps/app-lifeops/src/lifeops/schedule-sync-client.js +2 -2
- package/apps/app-lifeops/src/lifeops/service-constants.d.ts +1 -0
- package/apps/app-lifeops/src/lifeops/service-constants.d.ts.map +1 -1
- package/apps/app-lifeops/src/lifeops/service-constants.js +1 -0
- package/apps/app-lifeops/src/lifeops/service-mixin-core.d.ts +1 -1
- package/apps/app-lifeops/src/lifeops/service-mixin-core.d.ts.map +1 -1
- package/apps/app-lifeops/src/lifeops/service-mixin-core.js +2 -1
- package/apps/app-lifeops/src/lifeops/service-mixin-imessage.js +1 -1
- package/apps/app-lifeops/src/lifeops/service-mixin-inbox.d.ts +3 -1
- package/apps/app-lifeops/src/lifeops/service-mixin-inbox.d.ts.map +1 -1
- package/apps/app-lifeops/src/lifeops/service-mixin-inbox.js +42 -13
- package/apps/app-lifeops/src/lifeops/service-mixin-reminders.d.ts.map +1 -1
- package/apps/app-lifeops/src/lifeops/service-mixin-reminders.js +3 -2
- package/apps/app-lifeops/src/lifeops/service-mixin-workflows.d.ts.map +1 -1
- package/apps/app-lifeops/src/lifeops/service-mixin-workflows.js +1 -1
- package/apps/app-lifeops/src/lifeops/service-normalize-calendar.d.ts.map +1 -1
- package/apps/app-lifeops/src/lifeops/service-normalize-calendar.js +3 -3
- package/apps/app-lifeops/src/lifeops/service-normalize-connector.d.ts +1 -1
- package/apps/app-lifeops/src/lifeops/service-normalize-connector.d.ts.map +1 -1
- package/apps/app-lifeops/src/lifeops/service-normalize-connector.js +2 -2
- package/apps/app-lifeops/src/lifeops/signal-auth.d.ts.map +1 -1
- package/apps/app-lifeops/src/lifeops/signal-auth.js +6 -3
- package/apps/app-lifeops/src/lifeops/telegram-auth.js +1 -1
- package/apps/app-lifeops/src/lifeops/travel-adapters/duffel.d.ts.map +1 -1
- package/apps/app-lifeops/src/lifeops/travel-adapters/duffel.js +31 -6
- package/apps/app-lifeops/src/lifeops/twilio.js +1 -1
- package/apps/app-lifeops/src/lifeops/x-poster.d.ts.map +1 -1
- package/apps/app-lifeops/src/lifeops/x-poster.js +13 -3
- package/apps/app-lifeops/src/lifeops-route.d.ts +74 -0
- package/apps/app-lifeops/src/lifeops-route.d.ts.map +1 -0
- package/apps/app-lifeops/src/lifeops-route.js +204 -0
- package/apps/app-lifeops/src/platform/lifeops-github.d.ts +15 -0
- package/apps/app-lifeops/src/platform/lifeops-github.d.ts.map +1 -0
- package/apps/app-lifeops/src/platform/lifeops-github.js +135 -0
- package/apps/app-lifeops/src/routes/cloud-features-routes.d.ts +2 -2
- package/apps/app-lifeops/src/routes/cloud-features-routes.d.ts.map +1 -1
- package/apps/app-lifeops/src/routes/cloud-features-routes.js +5 -3
- package/apps/app-lifeops/src/routes/lifeops-routes.d.ts.map +1 -1
- package/apps/app-lifeops/src/routes/lifeops-routes.js +15 -3
- package/apps/app-lifeops/src/routes/plugin.d.ts.map +1 -1
- package/apps/app-lifeops/src/routes/plugin.js +10 -1
- package/apps/app-lifeops/src/routes/travel-provider-relay-routes.d.ts +1 -1
- package/apps/app-lifeops/src/routes/travel-provider-relay-routes.d.ts.map +1 -1
- package/apps/app-lifeops/src/routes/travel-provider-relay-routes.js +4 -2
- package/apps/app-lifeops/src/routes/website-blocker-routes.d.ts +1 -1
- package/apps/app-lifeops/src/routes/website-blocker-routes.d.ts.map +1 -1
- package/apps/app-lifeops/src/ui.d.ts +11 -0
- package/apps/app-lifeops/src/ui.d.ts.map +1 -0
- package/apps/app-lifeops/src/ui.js +9 -0
- package/apps/app-lifeops/src/utils/lifeops-url.d.ts +5 -0
- package/apps/app-lifeops/src/utils/lifeops-url.d.ts.map +1 -0
- package/apps/app-lifeops/src/utils/lifeops-url.js +35 -0
- package/apps/app-lifeops/src/website-blocker/access.d.ts.map +1 -1
- package/apps/app-lifeops/src/website-blocker/access.js +1 -1
- package/apps/app-steward/src/routes/steward-compat-routes.d.ts +1 -1
- package/apps/app-steward/src/routes/steward-compat-routes.d.ts.map +1 -1
- package/apps/app-steward/src/routes/steward-compat-routes.js +3 -1
- package/apps/app-steward/src/routes/wallet-browser-compat-routes.d.ts +1 -1
- package/apps/app-steward/src/routes/wallet-browser-compat-routes.d.ts.map +1 -1
- package/apps/app-steward/src/routes/wallet-browser-compat-routes.js +3 -1
- package/apps/app-steward/src/routes/wallet-bsc-core-routes.d.ts.map +1 -1
- package/apps/app-steward/src/routes/wallet-bsc-core-routes.js +2 -1
- package/apps/app-steward/src/routes/wallet-compat-routes.d.ts +1 -1
- package/apps/app-steward/src/routes/wallet-compat-routes.d.ts.map +1 -1
- package/apps/app-steward/src/routes/wallet-compat-routes.js +3 -1
- package/apps/app-steward/src/routes/wallet-core-routes.d.ts.map +1 -1
- package/apps/app-steward/src/routes/wallet-core-routes.js +2 -1
- package/apps/app-steward/src/routes/wallet-trade-compat-routes.d.ts +1 -1
- package/apps/app-steward/src/routes/wallet-trade-compat-routes.d.ts.map +1 -1
- package/apps/app-steward/src/routes/wallet-trade-compat-routes.js +3 -1
- package/apps/app-training/src/core/dataset-generator.d.ts +1 -1
- package/apps/app-training/src/core/dataset-generator.d.ts.map +1 -1
- package/apps/app-training/src/core/roleplay-executor.d.ts +1 -1
- package/apps/app-training/src/core/roleplay-executor.d.ts.map +1 -1
- package/apps/app-training/src/core/trajectory-task-datasets.d.ts +1 -1
- package/apps/app-training/src/core/trajectory-task-datasets.d.ts.map +1 -1
- package/apps/app-training/src/index.d.ts +1 -2
- package/apps/app-training/src/index.d.ts.map +1 -1
- package/apps/app-training/src/index.js +1 -2
- package/apps/app-training/src/routes/training-routes.d.ts +1 -1
- package/apps/app-training/src/routes/training-routes.d.ts.map +1 -1
- package/apps/app-training/src/routes/training-routes.js +1 -1
- package/apps/app-training/src/routes/trajectory-routes.d.ts +1 -1
- package/apps/app-training/src/routes/trajectory-routes.d.ts.map +1 -1
- package/apps/app-training/src/routes/trajectory-routes.js +3 -1
- package/apps/app-training/src/services/training-service-like.d.ts +1 -1
- package/apps/app-training/src/services/training-service-like.d.ts.map +1 -1
- package/apps/app-training/src/services/training-service.d.ts +1 -1
- package/apps/app-training/src/services/training-service.d.ts.map +1 -1
- package/package.json +1 -1
- package/packages/agent/src/api/provider-switch-config.js +1 -1
- package/packages/agent/src/api/server-helpers-auth.d.ts.map +1 -1
- package/packages/agent/src/api/server-helpers-auth.js +5 -4
- package/packages/agent/src/providers/media-provider.d.ts +1 -1
- package/packages/agent/src/providers/media-provider.d.ts.map +1 -1
- package/packages/app-core/src/App.d.ts.map +1 -1
- package/packages/app-core/src/App.js +20 -12
- package/packages/app-core/src/api/auth.d.ts.map +1 -1
- package/packages/app-core/src/api/auth.js +5 -5
- package/packages/app-core/src/api/client-types-experience.d.ts +7 -0
- package/packages/app-core/src/api/client-types-experience.d.ts.map +1 -1
- package/packages/app-core/src/components/apps/helpers.d.ts +1 -1
- package/packages/app-core/src/components/apps/helpers.d.ts.map +1 -1
- package/packages/app-core/src/components/apps/helpers.js +1 -0
- package/packages/app-core/src/components/apps/internal-tool-apps.d.ts +11 -0
- package/packages/app-core/src/components/apps/internal-tool-apps.d.ts.map +1 -1
- package/packages/app-core/src/components/apps/internal-tool-apps.js +31 -0
- package/packages/app-core/src/components/apps/launch-history.d.ts +16 -0
- package/packages/app-core/src/components/apps/launch-history.d.ts.map +1 -0
- package/packages/app-core/src/components/apps/launch-history.js +77 -0
- package/packages/app-core/src/components/apps/per-app-config.d.ts +19 -0
- package/packages/app-core/src/components/apps/per-app-config.d.ts.map +1 -0
- package/packages/app-core/src/components/apps/per-app-config.js +99 -0
- package/packages/app-core/src/components/apps/useRegistryCatalog.d.ts +14 -0
- package/packages/app-core/src/components/apps/useRegistryCatalog.d.ts.map +1 -0
- package/packages/app-core/src/components/apps/useRegistryCatalog.js +52 -0
- package/packages/app-core/src/components/auth/LoginView.d.ts +1 -19
- package/packages/app-core/src/components/auth/LoginView.d.ts.map +1 -1
- package/packages/app-core/src/components/auth/LoginView.js +4 -99
- package/packages/app-core/src/components/character/CharacterExperienceWorkspace.d.ts.map +1 -1
- package/packages/app-core/src/components/character/CharacterExperienceWorkspace.js +14 -2
- package/packages/app-core/src/components/character/character-hub-helpers.d.ts.map +1 -1
- package/packages/app-core/src/components/character/character-hub-helpers.js +7 -0
- package/packages/app-core/src/components/character/character-hub-types.d.ts +7 -0
- package/packages/app-core/src/components/character/character-hub-types.d.ts.map +1 -1
- package/packages/app-core/src/components/onboarding/BootstrapStep.d.ts.map +1 -1
- package/packages/app-core/src/components/onboarding/BootstrapStep.js +3 -2
- package/packages/app-core/src/components/pages/AppDetailsView.d.ts +36 -0
- package/packages/app-core/src/components/pages/AppDetailsView.d.ts.map +1 -0
- package/packages/app-core/src/components/pages/AppDetailsView.js +289 -0
- package/packages/app-core/src/components/pages/AppsView.d.ts.map +1 -1
- package/packages/app-core/src/components/pages/AppsView.js +134 -42
- package/packages/app-core/src/components/shell/StartupShell.d.ts.map +1 -1
- package/packages/app-core/src/components/shell/StartupShell.js +2 -5
- package/packages/app-core/src/i18n/locales/en.json +256 -205
- package/packages/app-core/src/i18n/locales/es.json +256 -205
- package/packages/app-core/src/i18n/locales/ko.json +256 -205
- package/packages/app-core/src/i18n/locales/pt.json +256 -205
- package/packages/app-core/src/i18n/locales/tl.json +256 -205
- package/packages/app-core/src/i18n/locales/vi.json +256 -205
- package/packages/app-core/src/i18n/locales/zh-CN.json +256 -205
- package/packages/app-core/src/navigation/index.d.ts.map +1 -1
- package/packages/app-core/src/navigation/index.js +6 -0
- package/packages/app-core/src/shell/AppWindowRenderer.d.ts +17 -0
- package/packages/app-core/src/shell/AppWindowRenderer.d.ts.map +1 -0
- package/packages/app-core/src/shell/AppWindowRenderer.js +337 -0
- package/packages/app-core/src/shell/DetachedShellRoot.js +4 -1
- package/packages/app-core/src/shell/index.d.ts +1 -0
- package/packages/app-core/src/shell/index.d.ts.map +1 -1
- package/packages/app-core/src/shell/index.js +1 -0
- package/packages/app-core/src/state/startup-coordinator.d.ts.map +1 -1
- package/packages/app-core/src/state/startup-coordinator.js +0 -3
- package/packages/app-core/src/state/startup-phase-poll.d.ts.map +1 -1
- package/packages/app-core/src/state/startup-phase-poll.js +2 -4
- package/packages/app-core/src/state/usePluginsSkillsState.d.ts +6 -6
- package/packages/native-plugins/mobile-signals/src/definitions.d.ts +162 -0
- package/packages/native-plugins/mobile-signals/src/definitions.d.ts.map +1 -0
- package/packages/native-plugins/mobile-signals/src/definitions.js +1 -0
- package/packages/native-plugins/mobile-signals/src/index.d.ts +4 -0
- package/packages/native-plugins/mobile-signals/src/index.d.ts.map +1 -0
- package/packages/native-plugins/mobile-signals/src/index.js +6 -0
- package/packages/native-plugins/mobile-signals/src/web.d.ts +29 -0
- package/packages/native-plugins/mobile-signals/src/web.d.ts.map +1 -0
- package/packages/native-plugins/mobile-signals/src/web.js +269 -0
- package/packages/shared/src/app-hero-art.d.ts.map +1 -1
- package/packages/shared/src/app-hero-art.js +13 -0
- package/packages/shared/src/contracts/lifeops.d.ts +10 -0
- package/packages/shared/src/contracts/lifeops.d.ts.map +1 -1
- package/packages/shared/src/contracts/lifeops.js +5 -0
- package/packages/typescript/src/features/advanced-capabilities/experience/actions/record-experience.d.ts.map +1 -1
- package/packages/typescript/src/features/advanced-capabilities/experience/actions/record-experience.js +46 -4
- package/packages/typescript/src/features/advanced-capabilities/experience/evaluators/experienceEvaluator.d.ts.map +1 -1
- package/packages/typescript/src/features/advanced-capabilities/experience/evaluators/experienceEvaluator.js +34 -124
- package/packages/typescript/src/features/advanced-capabilities/experience/service.d.ts.map +1 -1
- package/packages/typescript/src/features/advanced-capabilities/experience/service.js +56 -0
- package/packages/typescript/src/features/advanced-capabilities/experience/types.d.ts +7 -0
- package/packages/typescript/src/features/advanced-capabilities/experience/types.d.ts.map +1 -1
- package/packages/typescript/src/features/advanced-capabilities/experience/utils/experienceText.d.ts +7 -0
- package/packages/typescript/src/features/advanced-capabilities/experience/utils/experienceText.d.ts.map +1 -0
- package/packages/typescript/src/features/advanced-capabilities/experience/utils/experienceText.js +123 -0
- package/apps/app-training/src/ui/FineTuningView.d.ts +0 -5
- package/apps/app-training/src/ui/FineTuningView.d.ts.map +0 -1
- package/apps/app-training/src/ui/FineTuningView.js +0 -388
- package/apps/app-training/src/ui/fine-tuning-panels.d.ts +0 -111
- package/apps/app-training/src/ui/fine-tuning-panels.d.ts.map +0 -1
- package/apps/app-training/src/ui/fine-tuning-panels.js +0 -130
- package/apps/app-training/src/ui/index.d.ts +0 -3
- package/apps/app-training/src/ui/index.d.ts.map +0 -1
- package/apps/app-training/src/ui/index.js +0 -2
- package/packages/app-core/src/api/trusted-local-request.d.ts +0 -4
- package/packages/app-core/src/api/trusted-local-request.d.ts.map +0 -1
- 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"}
|