@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,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-app config — launch mode, always-on-top default, and free-form
|
|
3
|
+
* app-declared settings. NOT widget visibility (lives in widgets/visibility.ts).
|
|
4
|
+
*
|
|
5
|
+
* Persisted to localStorage under `milady:apps:<slug>`. Subscribers receive
|
|
6
|
+
* change notifications via the `storage` event so multiple windows stay in
|
|
7
|
+
* sync.
|
|
8
|
+
*/
|
|
9
|
+
export type AppLaunchMode = "window" | "inline";
|
|
10
|
+
export interface PerAppConfig {
|
|
11
|
+
launchMode: AppLaunchMode;
|
|
12
|
+
alwaysOnTop: boolean;
|
|
13
|
+
settings: Record<string, unknown>;
|
|
14
|
+
}
|
|
15
|
+
export declare function loadPerAppConfig(slug: string): PerAppConfig;
|
|
16
|
+
export declare function savePerAppConfig(slug: string, config: PerAppConfig): void;
|
|
17
|
+
export declare function subscribePerAppConfig(slug: string, listener: (config: PerAppConfig) => void): () => void;
|
|
18
|
+
export declare function getDefaultPerAppConfig(): PerAppConfig;
|
|
19
|
+
//# sourceMappingURL=per-app-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"per-app-config.d.ts","sourceRoot":"","sources":["../../../../../../../app-core/src/components/apps/per-app-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEhD,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,aAAa,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAqDD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAO3D;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAczE;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GACvC,MAAM,IAAI,CAWZ;AAED,wBAAgB,sBAAsB,IAAI,YAAY,CAErD"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-app config — launch mode, always-on-top default, and free-form
|
|
3
|
+
* app-declared settings. NOT widget visibility (lives in widgets/visibility.ts).
|
|
4
|
+
*
|
|
5
|
+
* Persisted to localStorage under `milady:apps:<slug>`. Subscribers receive
|
|
6
|
+
* change notifications via the `storage` event so multiple windows stay in
|
|
7
|
+
* sync.
|
|
8
|
+
*/
|
|
9
|
+
const DEFAULT_CONFIG = {
|
|
10
|
+
launchMode: "window",
|
|
11
|
+
alwaysOnTop: false,
|
|
12
|
+
settings: {},
|
|
13
|
+
};
|
|
14
|
+
const KEY_PREFIX = "milady:apps:";
|
|
15
|
+
function storageKey(slug) {
|
|
16
|
+
return `${KEY_PREFIX}${slug}`;
|
|
17
|
+
}
|
|
18
|
+
function isLaunchMode(value) {
|
|
19
|
+
return value === "window" || value === "inline";
|
|
20
|
+
}
|
|
21
|
+
function sanitizeSettings(value) {
|
|
22
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
23
|
+
return {};
|
|
24
|
+
const next = {};
|
|
25
|
+
for (const [key, raw] of Object.entries(value)) {
|
|
26
|
+
if (typeof key === "string" && key.length > 0) {
|
|
27
|
+
next[key] = raw;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return next;
|
|
31
|
+
}
|
|
32
|
+
function parseConfig(raw) {
|
|
33
|
+
if (!raw)
|
|
34
|
+
return { ...DEFAULT_CONFIG, settings: {} };
|
|
35
|
+
let parsed;
|
|
36
|
+
try {
|
|
37
|
+
parsed = JSON.parse(raw);
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return { ...DEFAULT_CONFIG, settings: {} };
|
|
41
|
+
}
|
|
42
|
+
if (!parsed || typeof parsed !== "object") {
|
|
43
|
+
return { ...DEFAULT_CONFIG, settings: {} };
|
|
44
|
+
}
|
|
45
|
+
const candidate = parsed;
|
|
46
|
+
return {
|
|
47
|
+
launchMode: isLaunchMode(candidate.launchMode)
|
|
48
|
+
? candidate.launchMode
|
|
49
|
+
: DEFAULT_CONFIG.launchMode,
|
|
50
|
+
alwaysOnTop: typeof candidate.alwaysOnTop === "boolean"
|
|
51
|
+
? candidate.alwaysOnTop
|
|
52
|
+
: DEFAULT_CONFIG.alwaysOnTop,
|
|
53
|
+
settings: sanitizeSettings(candidate.settings),
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
export function loadPerAppConfig(slug) {
|
|
57
|
+
if (typeof window === "undefined")
|
|
58
|
+
return { ...DEFAULT_CONFIG, settings: {} };
|
|
59
|
+
try {
|
|
60
|
+
return parseConfig(window.localStorage.getItem(storageKey(slug)));
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
return { ...DEFAULT_CONFIG, settings: {} };
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
export function savePerAppConfig(slug, config) {
|
|
67
|
+
if (typeof window === "undefined")
|
|
68
|
+
return;
|
|
69
|
+
try {
|
|
70
|
+
const sanitized = {
|
|
71
|
+
launchMode: isLaunchMode(config.launchMode)
|
|
72
|
+
? config.launchMode
|
|
73
|
+
: DEFAULT_CONFIG.launchMode,
|
|
74
|
+
alwaysOnTop: Boolean(config.alwaysOnTop),
|
|
75
|
+
settings: sanitizeSettings(config.settings),
|
|
76
|
+
};
|
|
77
|
+
window.localStorage.setItem(storageKey(slug), JSON.stringify(sanitized));
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
/* ignore — sandboxed storage */
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
export function subscribePerAppConfig(slug, listener) {
|
|
84
|
+
if (typeof window === "undefined")
|
|
85
|
+
return () => { };
|
|
86
|
+
const key = storageKey(slug);
|
|
87
|
+
const handler = (event) => {
|
|
88
|
+
if (event.key !== key)
|
|
89
|
+
return;
|
|
90
|
+
listener(parseConfig(event.newValue));
|
|
91
|
+
};
|
|
92
|
+
window.addEventListener("storage", handler);
|
|
93
|
+
return () => {
|
|
94
|
+
window.removeEventListener("storage", handler);
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
export function getDefaultPerAppConfig() {
|
|
98
|
+
return { ...DEFAULT_CONFIG, settings: {} };
|
|
99
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared catalog fetch for views that need to resolve a slug against the
|
|
3
|
+
* union of `client.listApps()` (installed) and `client.listCatalogApps()`
|
|
4
|
+
* (registry). A module-level promise coalesces concurrent callers so two
|
|
5
|
+
* views mounted for the same slug only hit the API once.
|
|
6
|
+
*/
|
|
7
|
+
import { type RegistryAppInfo } from "../../api";
|
|
8
|
+
interface RegistryCatalogState {
|
|
9
|
+
catalog: RegistryAppInfo[] | null;
|
|
10
|
+
error: string | null;
|
|
11
|
+
}
|
|
12
|
+
export declare function useRegistryCatalog(): RegistryCatalogState;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=useRegistryCatalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRegistryCatalog.d.ts","sourceRoot":"","sources":["../../../../../../../app-core/src/components/apps/useRegistryCatalog.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAU,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAEzD,UAAU,oBAAoB;IAC5B,OAAO,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;IAClC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAyBD,wBAAgB,kBAAkB,IAAI,oBAAoB,CA2BzD"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared catalog fetch for views that need to resolve a slug against the
|
|
3
|
+
* union of `client.listApps()` (installed) and `client.listCatalogApps()`
|
|
4
|
+
* (registry). A module-level promise coalesces concurrent callers so two
|
|
5
|
+
* views mounted for the same slug only hit the API once.
|
|
6
|
+
*/
|
|
7
|
+
import { useEffect, useState } from "react";
|
|
8
|
+
import { client } from "../../api";
|
|
9
|
+
let inflight = null;
|
|
10
|
+
function fetchRegistryCatalog() {
|
|
11
|
+
if (inflight)
|
|
12
|
+
return inflight;
|
|
13
|
+
inflight = (async () => {
|
|
14
|
+
const [serverApps, catalogApps] = await Promise.all([
|
|
15
|
+
client.listApps().catch(() => []),
|
|
16
|
+
client.listCatalogApps().catch(() => []),
|
|
17
|
+
]);
|
|
18
|
+
return [...catalogApps, ...serverApps].filter((entry, index, items) => !items
|
|
19
|
+
.slice(index + 1)
|
|
20
|
+
.some((candidate) => candidate.name === entry.name));
|
|
21
|
+
})().finally(() => {
|
|
22
|
+
// Allow next mount cycle to refetch — keeps stale data out without
|
|
23
|
+
// spamming the API for siblings mounting in the same tick.
|
|
24
|
+
inflight = null;
|
|
25
|
+
});
|
|
26
|
+
return inflight;
|
|
27
|
+
}
|
|
28
|
+
export function useRegistryCatalog() {
|
|
29
|
+
const [state, setState] = useState({
|
|
30
|
+
catalog: null,
|
|
31
|
+
error: null,
|
|
32
|
+
});
|
|
33
|
+
useEffect(() => {
|
|
34
|
+
let cancelled = false;
|
|
35
|
+
fetchRegistryCatalog().then((catalog) => {
|
|
36
|
+
if (cancelled)
|
|
37
|
+
return;
|
|
38
|
+
setState({ catalog, error: null });
|
|
39
|
+
}, (err) => {
|
|
40
|
+
if (cancelled)
|
|
41
|
+
return;
|
|
42
|
+
setState({
|
|
43
|
+
catalog: null,
|
|
44
|
+
error: err instanceof Error ? err.message : String(err),
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
return () => {
|
|
48
|
+
cancelled = true;
|
|
49
|
+
};
|
|
50
|
+
}, []);
|
|
51
|
+
return state;
|
|
52
|
+
}
|
|
@@ -5,12 +5,6 @@ export interface LoginViewProps {
|
|
|
5
5
|
* main dashboard.
|
|
6
6
|
*/
|
|
7
7
|
onLoginSuccess: () => void;
|
|
8
|
-
/** Whether Eliza Cloud SSO is available. */
|
|
9
|
-
cloudEnabled?: boolean;
|
|
10
|
-
/** Connector bindings available for DM-link login. */
|
|
11
|
-
connectorBindings?: ConnectorBinding[];
|
|
12
|
-
/** Optional pairing props forwarded to the pairing tab. */
|
|
13
|
-
pairing?: PairingTabProps;
|
|
14
8
|
/** Injected login function (tests). */
|
|
15
9
|
loginFn?: (params: {
|
|
16
10
|
displayName: string;
|
|
@@ -19,17 +13,5 @@ export interface LoginViewProps {
|
|
|
19
13
|
}) => Promise<AuthLoginResult>;
|
|
20
14
|
reason?: "remote_auth_required" | "remote_password_not_configured";
|
|
21
15
|
}
|
|
22
|
-
export
|
|
23
|
-
connector: "discord" | "telegram" | "wechat" | "matrix";
|
|
24
|
-
displayHandle: string;
|
|
25
|
-
}
|
|
26
|
-
export interface PairingTabProps {
|
|
27
|
-
pairingEnabled: boolean;
|
|
28
|
-
pairingCodeInput: string;
|
|
29
|
-
pairingBusy: boolean;
|
|
30
|
-
pairingError: string | null;
|
|
31
|
-
onCodeChange: (value: string) => void;
|
|
32
|
-
onSubmit: (code: string) => void;
|
|
33
|
-
}
|
|
34
|
-
export declare function LoginView({ onLoginSuccess, cloudEnabled, connectorBindings, pairing, loginFn, reason, }: LoginViewProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export declare function LoginView({ onLoginSuccess, loginFn, reason, }: LoginViewProps): import("react/jsx-runtime").JSX.Element;
|
|
35
17
|
//# sourceMappingURL=LoginView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoginView.d.ts","sourceRoot":"","sources":["../../../../../../../app-core/src/components/auth/LoginView.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LoginView.d.ts","sourceRoot":"","sources":["../../../../../../../app-core/src/components/auth/LoginView.tsx"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,eAAe,EAAqB,MAAM,uBAAuB,CAAC;AAWhF,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,uCAAuC;IACvC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,sBAAsB,GAAG,gCAAgC,CAAC;CACpE;AAuJD,wBAAgB,SAAS,CAAC,EACxB,cAAc,EACd,OAAO,EACP,MAAM,GACP,EAAE,cAAc,2CAoDhB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Button, Card, CardContent, CardHeader, CardTitle, cn, Input, Label,
|
|
3
|
-
import { useCallback, useId, useState
|
|
2
|
+
import { Button, Card, CardContent, CardHeader, CardTitle, cn, Input, Label, } from "@elizaos/ui";
|
|
3
|
+
import { useCallback, useId, useState } from "react";
|
|
4
4
|
import { authLoginPassword } from "../../api/auth-client";
|
|
5
5
|
import { OnboardingStepDivider, onboardingBodyTextShadowStyle, onboardingDescriptionClass, onboardingEyebrowClass, onboardingTitleClass, } from "../onboarding/onboarding-step-chrome";
|
|
6
6
|
function PasswordTab({ onLoginSuccess, loginFn, }) {
|
|
@@ -51,107 +51,12 @@ function PasswordTab({ onLoginSuccess, loginFn, }) {
|
|
|
51
51
|
setSubmitState({ phase: "idle" });
|
|
52
52
|
}, disabled: isSubmitting, "aria-required": "true" })] }), _jsxs("label", { className: "flex cursor-pointer items-center gap-2 text-sm text-muted-foreground select-none", children: [_jsx("input", { type: "checkbox", checked: rememberDevice, onChange: (e) => setRememberDevice(e.target.checked), disabled: isSubmitting, className: "h-4 w-4 rounded border-border accent-primary" }), "Remember this device for 30 days"] })] }), submitState.phase === "error" && (_jsx("p", { role: "alert", className: "rounded-lg border border-[color:color-mix(in_srgb,var(--danger)_38%,transparent)] bg-[color:color-mix(in_srgb,var(--danger)_12%,transparent)] px-4 py-3 text-sm text-danger", children: submitState.message })), _jsx(Button, { type: "submit", disabled: isSubmitting || !displayName.trim() || !password, className: "w-full", children: isSubmitting ? "Signing in…" : "Sign in" })] }));
|
|
53
53
|
}
|
|
54
|
-
// ── SSO tab ───────────────────────────────────────────────────────────────────
|
|
55
|
-
function SsoTab() {
|
|
56
|
-
return (_jsxs("div", { className: "flex flex-col items-center gap-4 py-2", children: [_jsx("p", { className: "text-sm text-muted-foreground text-center leading-relaxed", children: "Sign in with your Eliza Cloud account. This method requires the instance to have an active Eliza Cloud connection." }), _jsx(Button, { asChild: true, className: "w-full", variant: "outline", children: _jsx("a", { href: "/api/auth/login/sso/start?returnTo=/", children: "Sign in with Eliza Cloud" }) })] }));
|
|
57
|
-
}
|
|
58
|
-
// ── Connector tab ─────────────────────────────────────────────────────────────
|
|
59
|
-
function ConnectorTab({ bindings }) {
|
|
60
|
-
return (_jsxs("div", { className: "flex flex-col gap-4 py-2", children: [_jsx("p", { className: "text-sm text-muted-foreground leading-relaxed", children: "Choose a connector \u2014 we\u2019ll send you a one-time login link." }), _jsx("div", { className: "flex flex-col gap-2", children: bindings.map((b) => (_jsx(ConnectorLoginButton, { binding: b }, `${b.connector}:${b.displayHandle}`))) })] }));
|
|
61
|
-
}
|
|
62
|
-
const DM_LINK_UNAVAILABLE_MESSAGE = "Login links are unavailable on this server. Use another sign-in method or contact the instance owner.";
|
|
63
|
-
function ConnectorLoginButton({ binding }) {
|
|
64
|
-
const [state, setState] = useState({ phase: "idle" });
|
|
65
|
-
const handleClick = useCallback(async () => {
|
|
66
|
-
setState({ phase: "sending" });
|
|
67
|
-
try {
|
|
68
|
-
const res = await fetch("/api/auth/login/owner/dm-link/request", {
|
|
69
|
-
method: "POST",
|
|
70
|
-
credentials: "include",
|
|
71
|
-
headers: { "Content-Type": "application/json" },
|
|
72
|
-
body: JSON.stringify({
|
|
73
|
-
connector: binding.connector,
|
|
74
|
-
externalId: binding.displayHandle,
|
|
75
|
-
}),
|
|
76
|
-
});
|
|
77
|
-
if (res.status === 404) {
|
|
78
|
-
setState({
|
|
79
|
-
phase: "error",
|
|
80
|
-
message: DM_LINK_UNAVAILABLE_MESSAGE,
|
|
81
|
-
});
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
if (!res.ok) {
|
|
85
|
-
setState({
|
|
86
|
-
phase: "error",
|
|
87
|
-
message: `Request failed (${res.status}). Try again.`,
|
|
88
|
-
});
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
setState({ phase: "sent", connector: binding.connector });
|
|
92
|
-
}
|
|
93
|
-
catch (err) {
|
|
94
|
-
setState({
|
|
95
|
-
phase: "error",
|
|
96
|
-
message: err instanceof Error ? err.message : "Network error.",
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
}, [binding]);
|
|
100
|
-
const label = `${binding.connector[0].toUpperCase()}${binding.connector.slice(1)} — ${binding.displayHandle}`;
|
|
101
|
-
if (state.phase === "sent") {
|
|
102
|
-
return (_jsxs("p", { className: "rounded-lg border border-[var(--ok-muted)] bg-[var(--ok-subtle)] px-4 py-3 text-sm text-ok", children: ["Login link sent via ", state.connector, ". Click it to sign in."] }));
|
|
103
|
-
}
|
|
104
|
-
return (_jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Button, { variant: "outline", disabled: state.phase === "sending", onClick: handleClick, className: "w-full justify-start", children: state.phase === "sending" ? "Sending…" : `Send link via ${label}` }), state.phase === "error" && (_jsx("p", { className: "text-xs text-danger", children: state.message }))] }));
|
|
105
|
-
}
|
|
106
|
-
// ── Pairing tab ───────────────────────────────────────────────────────────────
|
|
107
|
-
function PairingTab({ pairing }) {
|
|
108
|
-
const pairingCodeId = useId().replace(/:/g, "");
|
|
109
|
-
const code = pairing.pairingCodeInput.trim();
|
|
110
|
-
return (_jsxs("form", { onSubmit: (e) => {
|
|
111
|
-
e.preventDefault();
|
|
112
|
-
if (code)
|
|
113
|
-
pairing.onSubmit(code);
|
|
114
|
-
}, className: "flex flex-col gap-4", children: [_jsx("p", { className: "text-sm text-muted-foreground leading-relaxed", children: "Enter the pairing code shown in your CLI or desktop app." }), _jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: pairingCodeId, className: "text-xs uppercase tracking-wide text-muted-foreground", children: "Pairing code" }), _jsx(Input, { id: pairingCodeId, type: "text", placeholder: "xxxx-xxxx-xxxx", value: pairing.pairingCodeInput, onChange: (e) => pairing.onCodeChange(e.target.value), disabled: pairing.pairingBusy, autoComplete: "off", spellCheck: false })] }), pairing.pairingError && (_jsx("p", { role: "alert", className: "text-sm text-danger", children: pairing.pairingError })), _jsx(Button, { type: "submit", disabled: pairing.pairingBusy || !code, className: "w-full", children: pairing.pairingBusy ? "Pairing…" : "Submit code" })] }));
|
|
115
|
-
}
|
|
116
54
|
// ── Root component ────────────────────────────────────────────────────────────
|
|
117
55
|
const SCREEN_SHELL_CLASS = "relative flex min-h-screen w-full items-center justify-center overflow-hidden bg-bg px-4 py-6 font-body text-txt sm:px-6";
|
|
118
56
|
const SCREEN_CARD_CLASS = "relative z-10 w-full max-w-[520px] overflow-hidden border border-border/60 bg-card/95 shadow-[0_30px_120px_rgba(0,0,0,0.35)] backdrop-blur-xl";
|
|
119
|
-
export function LoginView({ onLoginSuccess,
|
|
57
|
+
export function LoginView({ onLoginSuccess, loginFn, reason, }) {
|
|
120
58
|
const remotePasswordMissing = reason === "remote_password_not_configured";
|
|
121
|
-
const visibleMethods = [
|
|
122
|
-
{
|
|
123
|
-
value: "password",
|
|
124
|
-
label: "Password",
|
|
125
|
-
content: (_jsx(PasswordTab, { onLoginSuccess: onLoginSuccess, loginFn: loginFn })),
|
|
126
|
-
},
|
|
127
|
-
];
|
|
128
|
-
if (cloudEnabled) {
|
|
129
|
-
visibleMethods.push({
|
|
130
|
-
value: "sso",
|
|
131
|
-
label: "Cloud",
|
|
132
|
-
content: _jsx(SsoTab, {}),
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
if (connectorBindings.length > 0) {
|
|
136
|
-
visibleMethods.push({
|
|
137
|
-
value: "connector",
|
|
138
|
-
label: "Connector",
|
|
139
|
-
content: _jsx(ConnectorTab, { bindings: connectorBindings }),
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
if (pairing?.pairingEnabled) {
|
|
143
|
-
visibleMethods.push({
|
|
144
|
-
value: "pairing",
|
|
145
|
-
label: "Pairing",
|
|
146
|
-
content: _jsx(PairingTab, { pairing: pairing }),
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
const loginDescription = visibleMethods.length > 1
|
|
150
|
-
? "Choose your login method below."
|
|
151
|
-
: "Sign in with your password.";
|
|
152
59
|
return (_jsxs("div", { className: SCREEN_SHELL_CLASS, children: [_jsx("div", { className: "absolute inset-0 overflow-hidden pointer-events-none", children: _jsx("div", { className: "absolute inset-0 bg-[radial-gradient(circle_at_top,rgba(255,255,255,0.08),transparent_40%),linear-gradient(180deg,rgba(11,14,20,0.24),rgba(6,7,8,0.62))]" }) }), _jsxs(Card, { className: SCREEN_CARD_CLASS, children: [_jsx(CardHeader, { className: "pb-2 pt-6 px-6", children: _jsxs("div", { className: "mb-1", children: [_jsx("p", { className: onboardingEyebrowClass, style: onboardingBodyTextShadowStyle, children: "Milady" }), _jsx(OnboardingStepDivider, {}), _jsx(CardTitle, { className: cn(onboardingTitleClass, "mt-2"), style: { textShadow: "var(--onboarding-text-shadow-strong)" }, children: remotePasswordMissing ? "Remote access blocked" : "Sign in" }), _jsx("p", { className: cn(onboardingDescriptionClass, "mt-2"), style: onboardingBodyTextShadowStyle, children: remotePasswordMissing
|
|
153
60
|
? "A remote password is required before this instance can accept browser logins from another machine."
|
|
154
|
-
:
|
|
155
|
-
gridTemplateColumns: `repeat(${visibleMethods.length}, minmax(0, 1fr))`,
|
|
156
|
-
}, children: visibleMethods.map((method) => (_jsx(TabsTrigger, { value: method.value, children: method.label }, method.value))) }), visibleMethods.map((method) => (_jsx(TabsContent, { value: method.value, children: method.content }, method.value)))] })) })] })] }));
|
|
61
|
+
: "Sign in with your password." })] }) }), _jsx(CardContent, { className: "px-6 pb-6", children: remotePasswordMissing ? (_jsx("div", { role: "alert", className: "rounded-lg border border-border/60 bg-bg/50 px-4 py-3 text-sm leading-6 text-muted-foreground", children: "Open Milady on the host machine via localhost, then set a remote password in Settings." })) : (_jsx(PasswordTab, { onLoginSuccess: onLoginSuccess, loginFn: loginFn })) })] })] }));
|
|
157
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CharacterExperienceWorkspace.d.ts","sourceRoot":"","sources":["../../../../../../../app-core/src/components/character/CharacterExperienceWorkspace.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"CharacterExperienceWorkspace.d.ts","sourceRoot":"","sources":["../../../../../../../app-core/src/components/character/CharacterExperienceWorkspace.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,uBAAuB,CAAC;AA4O/B,wBAAgB,4BAA4B,CAAC,EAC3C,WAAW,EACX,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,GACrB,EAAE;IACD,WAAW,EAAE,yBAAyB,EAAE,CAAC;IACzC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,kBAAkB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,gBAAgB,CAAC,EAAE,CACjB,UAAU,EAAE,yBAAyB,EACrC,KAAK,EAAE,wBAAwB,KAC5B,IAAI,CAAC;IACV,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,yBAAyB,KAAK,IAAI,CAAC;IACrE,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC,2CA4qBA"}
|
|
@@ -68,6 +68,11 @@ function compactText(...values) {
|
|
|
68
68
|
function uniqueSorted(values) {
|
|
69
69
|
return Array.from(new Set(values.map((value) => value?.trim()).filter(Boolean))).sort((left, right) => left.localeCompare(right));
|
|
70
70
|
}
|
|
71
|
+
function shortId(value) {
|
|
72
|
+
if (!value)
|
|
73
|
+
return "Not recorded";
|
|
74
|
+
return value.length > 12 ? `${value.slice(0, 12)}...` : value;
|
|
75
|
+
}
|
|
71
76
|
function selectedOrFirst(experiences, selectedExperienceId) {
|
|
72
77
|
return (experiences.find((experience) => experience.id === selectedExperienceId) ??
|
|
73
78
|
experiences[0] ??
|
|
@@ -83,6 +88,13 @@ function ScoreBar({ label, value, explanation, }) {
|
|
|
83
88
|
function EvidencePanel({ title, body, }) {
|
|
84
89
|
return (_jsxs("div", { className: "min-w-0 rounded-xl border border-border/30 bg-bg-muted/15 p-3", children: [_jsx("div", { className: "text-[0.65rem] font-semibold uppercase tracking-[0.08em] text-muted", children: title }), _jsx("p", { className: "mt-2 whitespace-pre-wrap text-sm leading-relaxed text-muted-strong", children: body || "Not recorded." })] }));
|
|
85
90
|
}
|
|
91
|
+
function ProvenancePanel({ experience, }) {
|
|
92
|
+
const sourceMessageIds = experience.sourceMessageIds ?? [];
|
|
93
|
+
const trajectoryTarget = experience.sourceTrajectoryId ?? experience.sourceTrajectoryStepId ?? null;
|
|
94
|
+
return (_jsxs("div", { className: "rounded-xl border border-border/30 bg-bg-muted/10 p-3", children: [_jsx("div", { className: "text-[0.65rem] font-semibold uppercase tracking-[0.08em] text-muted", children: "Evidence source" }), _jsxs("div", { className: "mt-3 grid gap-3 text-sm md:grid-cols-2 xl:grid-cols-4", children: [_jsxs("div", { children: [_jsx("div", { className: "text-xs font-semibold text-muted", children: "Method" }), _jsx("div", { className: "mt-1 font-mono text-xs text-muted-strong", children: experience.extractionMethod ?? "unknown" })] }), _jsxs("div", { children: [_jsx("div", { className: "text-xs font-semibold text-muted", children: "Room" }), _jsx("div", { className: "mt-1 font-mono text-xs text-muted-strong", children: shortId(experience.sourceRoomId) })] }), _jsxs("div", { children: [_jsx("div", { className: "text-xs font-semibold text-muted", children: "Trigger message" }), _jsx("div", { className: "mt-1 font-mono text-xs text-muted-strong", children: shortId(experience.sourceTriggerMessageId) })] }), _jsxs("div", { children: [_jsx("div", { className: "text-xs font-semibold text-muted", children: "Evidence messages" }), _jsx("div", { className: "mt-1 font-mono text-xs text-muted-strong", children: sourceMessageIds.length > 0
|
|
95
|
+
? `${sourceMessageIds.length} captured`
|
|
96
|
+
: "Not recorded" })] })] }), trajectoryTarget ? (_jsxs("div", { className: "mt-3 text-xs text-muted", children: ["Trajectory:", " ", _jsx("a", { href: `/trajectories/${trajectoryTarget}`, className: "font-mono text-muted-strong underline", children: shortId(trajectoryTarget) })] })) : null, experience.extractionReason ? (_jsx("p", { className: "mt-3 whitespace-pre-wrap text-sm leading-relaxed text-muted-strong", children: experience.extractionReason })) : null] }));
|
|
97
|
+
}
|
|
86
98
|
export function CharacterExperienceWorkspace({ experiences, selectedExperienceId, onSelectExperience, onSaveExperience, onDeleteExperience, savingExperienceId, deletingExperienceId, }) {
|
|
87
99
|
const { t } = useTranslation();
|
|
88
100
|
const [searchQuery, setSearchQuery] = useState("");
|
|
@@ -142,7 +154,7 @@ export function CharacterExperienceWorkspace({ experiences, selectedExperienceId
|
|
|
142
154
|
}
|
|
143
155
|
if (!query)
|
|
144
156
|
return true;
|
|
145
|
-
const haystack = compactText(experience.type, experience.outcome, experience.domain, experience.context, experience.action, experience.result, experience.learning, experience.previousBelief, experience.correctedBelief, experience.supersedes, ...(experience.relatedExperienceIds ?? []), ...experience.tags);
|
|
157
|
+
const haystack = compactText(experience.type, experience.outcome, experience.domain, experience.context, experience.action, experience.result, experience.learning, experience.previousBelief, experience.correctedBelief, experience.supersedes, experience.sourceRoomId, experience.sourceTriggerMessageId, experience.sourceTrajectoryId, experience.sourceTrajectoryStepId, experience.extractionMethod, experience.extractionReason, ...(experience.relatedExperienceIds ?? []), ...(experience.sourceMessageIds ?? []), ...experience.tags);
|
|
146
158
|
return haystack.includes(query);
|
|
147
159
|
});
|
|
148
160
|
return [...filtered].sort((left, right) => {
|
|
@@ -208,7 +220,7 @@ export function CharacterExperienceWorkspace({ experiences, selectedExperienceId
|
|
|
208
220
|
? `: ${supersededExperience.learning || supersededExperience.result}`
|
|
209
221
|
: ""] })) : null, selectedRelatedExperiences.map((experience) => (_jsxs("button", { type: "button", className: "block w-full rounded-lg border border-border/30 px-3 py-2 text-left hover:bg-bg-muted/20", onClick: () => onSelectExperience(experience.id), children: [_jsx("span", { className: "font-mono text-xs text-muted", children: experience.id }), _jsx("span", { className: "ml-2", children: experience.learning ||
|
|
210
222
|
experience.result ||
|
|
211
|
-
experience.context })] }, experience.id)))] })] })) : null, _jsxs("div", { className: "rounded-xl border border-border/30 bg-bg-muted/10 p-3", children: [_jsx("div", { className: "mb-3 flex items-center justify-between gap-3", children: _jsxs("div", { children: [_jsx("div", { className: "text-[0.65rem] font-semibold uppercase tracking-[0.08em] text-muted", children: "Review edit" }), _jsx("p", { className: "text-xs text-muted", children: "Update the takeaway, ranking, and tags after checking evidence." })] }) }), _jsxs("label", { htmlFor: `experience-learning-${visibleSelectedExperience.id}`, className: "flex min-w-0 flex-col gap-2", children: [_jsx("span", { className: "text-[0.65rem] font-semibold uppercase tracking-[0.08em] text-muted", children: "Learning" }), _jsx(Textarea, { id: `experience-learning-${visibleSelectedExperience.id}`, value: draft.learning, rows: 6, onChange: (event) => setDraft((current) => ({
|
|
223
|
+
experience.context })] }, experience.id)))] })] })) : null, _jsx(ProvenancePanel, { experience: visibleSelectedExperience }), _jsxs("div", { className: "rounded-xl border border-border/30 bg-bg-muted/10 p-3", children: [_jsx("div", { className: "mb-3 flex items-center justify-between gap-3", children: _jsxs("div", { children: [_jsx("div", { className: "text-[0.65rem] font-semibold uppercase tracking-[0.08em] text-muted", children: "Review edit" }), _jsx("p", { className: "text-xs text-muted", children: "Update the takeaway, ranking, and tags after checking evidence." })] }) }), _jsxs("label", { htmlFor: `experience-learning-${visibleSelectedExperience.id}`, className: "flex min-w-0 flex-col gap-2", children: [_jsx("span", { className: "text-[0.65rem] font-semibold uppercase tracking-[0.08em] text-muted", children: "Learning" }), _jsx(Textarea, { id: `experience-learning-${visibleSelectedExperience.id}`, value: draft.learning, rows: 6, onChange: (event) => setDraft((current) => ({
|
|
212
224
|
...current,
|
|
213
225
|
learning: event.target.value,
|
|
214
226
|
})), className: "min-h-[8rem] resize-y rounded-xl border-border/40 bg-bg-muted/15 font-mono text-sm leading-relaxed" })] }), _jsxs("div", { className: "mt-4 grid gap-4 md:grid-cols-3", children: [_jsxs("label", { htmlFor: `experience-importance-${visibleSelectedExperience.id}`, className: "flex min-w-0 flex-col gap-2", children: [_jsx("span", { className: "text-[0.65rem] font-semibold uppercase tracking-[0.08em] text-muted", children: "Importance" }), _jsx(Input, { id: `experience-importance-${visibleSelectedExperience.id}`, type: "number", min: "0", max: "1", step: "0.05", value: String(draft.importance), onChange: (event) => setDraft((current) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"character-hub-helpers.d.ts","sourceRoot":"","sources":["../../../../../../../app-core/src/components/character/character-hub-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EACV,yBAAyB,EACzB,wBAAwB,EACxB,+BAA+B,EAChC,MAAM,uBAAuB,CAAC;AAE/B,eAAO,MAAM,sBAAsB,4FAOzB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,mBAAmB,GAC3B,MAAM,CAiBR;AASD,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,qBAAqB,GAC3B,+BAA+B,CA8BjC;AAED,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,gBAAgB,GAC3B,yBAAyB,
|
|
1
|
+
{"version":3,"file":"character-hub-helpers.d.ts","sourceRoot":"","sources":["../../../../../../../app-core/src/components/character/character-hub-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EACV,yBAAyB,EACzB,wBAAwB,EACxB,+BAA+B,EAChC,MAAM,uBAAuB,CAAC;AAE/B,eAAO,MAAM,sBAAsB,4FAOzB,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,mBAAmB,GAC3B,MAAM,CAiBR;AASD,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,qBAAqB,GAC3B,+BAA+B,CA8BjC;AAED,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,gBAAgB,GAC3B,yBAAyB,CA2B3B;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE;IACnD,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,oBAAoB,EAAE,yBAAyB,EAAE,CAAC;CACnD,GAAG,wBAAwB,EAAE,CA8D7B"}
|
|
@@ -77,6 +77,13 @@ export function mapExperienceRecordToHubRecord(experience) {
|
|
|
77
77
|
relatedExperienceIds: experience.relatedExperiences,
|
|
78
78
|
previousBelief: experience.previousBelief,
|
|
79
79
|
correctedBelief: experience.correctedBelief,
|
|
80
|
+
sourceMessageIds: experience.sourceMessageIds,
|
|
81
|
+
sourceRoomId: experience.sourceRoomId,
|
|
82
|
+
sourceTriggerMessageId: experience.sourceTriggerMessageId,
|
|
83
|
+
sourceTrajectoryId: experience.sourceTrajectoryId,
|
|
84
|
+
sourceTrajectoryStepId: experience.sourceTrajectoryStepId,
|
|
85
|
+
extractionMethod: experience.extractionMethod,
|
|
86
|
+
extractionReason: experience.extractionReason,
|
|
80
87
|
};
|
|
81
88
|
}
|
|
82
89
|
export function buildCharacterOverviewItems(options) {
|
|
@@ -39,6 +39,13 @@ export interface CharacterExperienceRecord {
|
|
|
39
39
|
relatedExperienceIds?: string[];
|
|
40
40
|
previousBelief?: string | null;
|
|
41
41
|
correctedBelief?: string | null;
|
|
42
|
+
sourceMessageIds?: string[];
|
|
43
|
+
sourceRoomId?: string | null;
|
|
44
|
+
sourceTriggerMessageId?: string | null;
|
|
45
|
+
sourceTrajectoryId?: string | null;
|
|
46
|
+
sourceTrajectoryStepId?: string | null;
|
|
47
|
+
extractionMethod?: string | null;
|
|
48
|
+
extractionReason?: string | null;
|
|
42
49
|
}
|
|
43
50
|
export interface CharacterExperienceDraft {
|
|
44
51
|
learning: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"character-hub-types.d.ts","sourceRoot":"","sources":["../../../../../../../app-core/src/components/character/character-hub-types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,wBAAwB,GAChC,aAAa,GACb,WAAW,GACX,YAAY,GACZ,cAAc,CAAC;AAEnB,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,wBAAwB,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,MAAM,gCAAgC,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE1E,MAAM,WAAW,+BAA+B;IAC9C,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,gCAAgC,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"character-hub-types.d.ts","sourceRoot":"","sources":["../../../../../../../app-core/src/components/character/character-hub-types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,wBAAwB,GAChC,aAAa,GACb,WAAW,GACX,YAAY,GACZ,cAAc,CAAC;AAEnB,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,wBAAwB,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,MAAM,gCAAgC,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE1E,MAAM,WAAW,+BAA+B;IAC9C,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,gCAAgC,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BootstrapStep.d.ts","sourceRoot":"","sources":["../../../../../../../app-core/src/components/onboarding/BootstrapStep.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;
|
|
1
|
+
{"version":3,"file":"BootstrapStep.d.ts","sourceRoot":"","sources":["../../../../../../../app-core/src/components/onboarding/BootstrapStep.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAyBtE,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;CAClE;AAwBD,wBAAgB,aAAa,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,kBAAkB,2CAoL1E"}
|
|
@@ -18,6 +18,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
18
18
|
*/
|
|
19
19
|
import { cn } from "@elizaos/ui";
|
|
20
20
|
import { useCallback, useId, useRef, useState } from "react";
|
|
21
|
+
import { client } from "../../api";
|
|
21
22
|
import { OnboardingField, onboardingDetailStackClassName, onboardingHelperTextClassName, onboardingInputClassName, onboardingReadableTextFaintClassName, onboardingReadableTextMutedClassName, } from "./onboarding-form-primitives";
|
|
22
23
|
import { OnboardingStepDivider, onboardingBodyTextShadowStyle, onboardingDescriptionClass, onboardingEyebrowClass, onboardingFooterClass, onboardingHeaderBlockClass, onboardingPrimaryActionClass, onboardingPrimaryActionTextShadowStyle, onboardingTextShadowStyle, onboardingTitleClass, } from "./onboarding-step-chrome";
|
|
23
24
|
const SESSION_STORAGE_KEY = "milady_session";
|
|
@@ -50,8 +51,8 @@ export function BootstrapStep({ onAdvance, exchangeFn }) {
|
|
|
50
51
|
result = await exchangeFn(rawToken);
|
|
51
52
|
}
|
|
52
53
|
else {
|
|
53
|
-
//
|
|
54
|
-
|
|
54
|
+
// `client` is statically imported above. The `exchangeFn` injection
|
|
55
|
+
// path remains the test seam; this branch is the production path.
|
|
55
56
|
result = await client.postBootstrapExchange(rawToken);
|
|
56
57
|
}
|
|
57
58
|
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AppDetailsView — config + diagnostics + widgets + Launch button page
|
|
3
|
+
* for apps that need it (those with `hasDetailsPage: true` in their
|
|
4
|
+
* descriptor, or any registry/catalog app with launch params).
|
|
5
|
+
*
|
|
6
|
+
* Mounted by AppsView when the apps sub-path is `/apps/<slug>/details`.
|
|
7
|
+
*/
|
|
8
|
+
import { type JSX } from "react";
|
|
9
|
+
import { type AppLaunchMode } from "../apps/per-app-config";
|
|
10
|
+
interface AppDetailsViewProps {
|
|
11
|
+
slug: string;
|
|
12
|
+
/**
|
|
13
|
+
* Called when the user successfully launches the app. The parent
|
|
14
|
+
* (AppsView) navigates the apps sub-path back to "browse" or to the
|
|
15
|
+
* inline run route depending on launch mode.
|
|
16
|
+
*/
|
|
17
|
+
onLaunched?: (info: {
|
|
18
|
+
mode: AppLaunchMode;
|
|
19
|
+
slug: string;
|
|
20
|
+
}) => void;
|
|
21
|
+
}
|
|
22
|
+
export declare function AppDetailsView({ slug, onLaunched, }: AppDetailsViewProps): JSX.Element;
|
|
23
|
+
/**
|
|
24
|
+
* Convenience: does this slug resolve to an app that wants the details
|
|
25
|
+
* page? Used by AppsView.handleLaunch to decide whether to navigate to
|
|
26
|
+
* /apps/<slug>/details or call openAppRouteWindow directly.
|
|
27
|
+
*
|
|
28
|
+
* Only apps that explicitly declare `hasDetailsPage: true` (today: a
|
|
29
|
+
* handful of internal tools with real config / runtime knobs) route
|
|
30
|
+
* through the details page. Catalog and overlay apps launch directly —
|
|
31
|
+
* launching is the primary action; the user only needs the extra step
|
|
32
|
+
* when there's config worth touching first.
|
|
33
|
+
*/
|
|
34
|
+
export declare function appNeedsDetailsPage(name: string): boolean;
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=AppDetailsView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AppDetailsView.d.ts","sourceRoot":"","sources":["../../../../../../../app-core/src/components/pages/AppDetailsView.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,KAAK,GAAG,EAMT,MAAM,OAAO,CAAC;AAwBf,OAAO,EACL,KAAK,aAAa,EAKnB,MAAM,wBAAwB,CAAC;AAehC,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,aAAa,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACpE;AA2ID,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,UAAU,GACX,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAgbnC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKzD"}
|