@elizaos/plugin-personal-assistant 2.0.3-beta.6 → 2.0.3-beta.7
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/dist/actions/app-block.d.ts +15 -0
- package/dist/actions/app-block.d.ts.map +1 -0
- package/dist/actions/app-block.js +349 -0
- package/dist/actions/app-block.js.map +1 -0
- package/dist/actions/autofill.d.ts +20 -0
- package/dist/actions/autofill.d.ts.map +1 -0
- package/dist/actions/autofill.js +370 -0
- package/dist/actions/autofill.js.map +1 -0
- package/dist/actions/block.d.ts +30 -0
- package/dist/actions/block.d.ts.map +1 -0
- package/dist/actions/block.js +326 -0
- package/dist/actions/block.js.map +1 -0
- package/dist/actions/book-travel.d.ts +10 -0
- package/dist/actions/book-travel.d.ts.map +1 -0
- package/dist/actions/book-travel.js +467 -0
- package/dist/actions/book-travel.js.map +1 -0
- package/dist/actions/brief.d.ts +60 -0
- package/dist/actions/brief.d.ts.map +1 -0
- package/dist/actions/brief.js +485 -0
- package/dist/actions/brief.js.map +1 -0
- package/dist/actions/calendar.d.ts +22 -0
- package/dist/actions/calendar.d.ts.map +1 -0
- package/dist/actions/calendar.js +832 -0
- package/dist/actions/calendar.js.map +1 -0
- package/dist/actions/conflict-detect.d.ts +67 -0
- package/dist/actions/conflict-detect.d.ts.map +1 -0
- package/dist/actions/conflict-detect.js +310 -0
- package/dist/actions/conflict-detect.js.map +1 -0
- package/dist/actions/connector.d.ts +5 -0
- package/dist/actions/connector.d.ts.map +1 -0
- package/dist/actions/connector.js +1354 -0
- package/dist/actions/connector.js.map +1 -0
- package/dist/actions/credentials.d.ts +14 -0
- package/dist/actions/credentials.d.ts.map +1 -0
- package/dist/actions/credentials.js +191 -0
- package/dist/actions/credentials.js.map +1 -0
- package/dist/actions/document.d.ts +36 -0
- package/dist/actions/document.d.ts.map +1 -0
- package/dist/actions/document.js +613 -0
- package/dist/actions/document.js.map +1 -0
- package/dist/actions/entity.d.ts +20 -0
- package/dist/actions/entity.d.ts.map +1 -0
- package/dist/actions/entity.js +785 -0
- package/dist/actions/entity.js.map +1 -0
- package/dist/actions/health.d.ts +4 -0
- package/dist/actions/health.d.ts.map +1 -0
- package/dist/actions/health.js +37 -0
- package/dist/actions/health.js.map +1 -0
- package/dist/actions/inbox.d.ts +12 -0
- package/dist/actions/inbox.d.ts.map +1 -0
- package/dist/actions/inbox.js +13 -0
- package/dist/actions/inbox.js.map +1 -0
- package/dist/actions/lib/calendly-handler.d.ts +3 -0
- package/dist/actions/lib/calendly-handler.d.ts.map +1 -0
- package/dist/actions/lib/calendly-handler.js +506 -0
- package/dist/actions/lib/calendly-handler.js.map +1 -0
- package/dist/actions/lib/extract-goal-plan.d.ts +69 -0
- package/dist/actions/lib/extract-goal-plan.d.ts.map +1 -0
- package/dist/actions/lib/extract-goal-plan.js +488 -0
- package/dist/actions/lib/extract-goal-plan.js.map +1 -0
- package/dist/actions/lib/extract-life-operation.d.ts +18 -0
- package/dist/actions/lib/extract-life-operation.d.ts.map +1 -0
- package/dist/actions/lib/extract-life-operation.js +318 -0
- package/dist/actions/lib/extract-life-operation.js.map +1 -0
- package/dist/actions/lib/extract-task-plan.d.ts +78 -0
- package/dist/actions/lib/extract-task-plan.d.ts.map +1 -0
- package/dist/actions/lib/extract-task-plan.js +355 -0
- package/dist/actions/lib/extract-task-plan.js.map +1 -0
- package/dist/actions/lib/extract-update-fields.d.ts +27 -0
- package/dist/actions/lib/extract-update-fields.d.ts.map +1 -0
- package/dist/actions/lib/extract-update-fields.js +172 -0
- package/dist/actions/lib/extract-update-fields.js.map +1 -0
- package/dist/actions/lib/lifeops-deferred-draft.d.ts +68 -0
- package/dist/actions/lib/lifeops-deferred-draft.d.ts.map +1 -0
- package/dist/actions/lib/lifeops-deferred-draft.js +315 -0
- package/dist/actions/lib/lifeops-deferred-draft.js.map +1 -0
- package/dist/actions/lib/messaging-helpers.d.ts +20 -0
- package/dist/actions/lib/messaging-helpers.d.ts.map +1 -0
- package/dist/actions/lib/messaging-helpers.js +103 -0
- package/dist/actions/lib/messaging-helpers.js.map +1 -0
- package/dist/actions/lib/owner-policy-writes.d.ts +49 -0
- package/dist/actions/lib/owner-policy-writes.d.ts.map +1 -0
- package/dist/actions/lib/owner-policy-writes.js +157 -0
- package/dist/actions/lib/owner-policy-writes.js.map +1 -0
- package/dist/actions/lib/prompt-format.d.ts +3 -0
- package/dist/actions/lib/prompt-format.d.ts.map +1 -0
- package/dist/actions/lib/prompt-format.js +42 -0
- package/dist/actions/lib/prompt-format.js.map +1 -0
- package/dist/actions/lib/scheduling-handler.d.ts +93 -0
- package/dist/actions/lib/scheduling-handler.d.ts.map +1 -0
- package/dist/actions/lib/scheduling-handler.js +868 -0
- package/dist/actions/lib/scheduling-handler.js.map +1 -0
- package/dist/actions/life.d.ts +13 -0
- package/dist/actions/life.d.ts.map +1 -0
- package/dist/actions/life.js +2524 -0
- package/dist/actions/life.js.map +1 -0
- package/dist/actions/money.d.ts +24 -0
- package/dist/actions/money.d.ts.map +1 -0
- package/dist/actions/money.js +41 -0
- package/dist/actions/money.js.map +1 -0
- package/dist/actions/owner-surfaces.d.ts +11 -0
- package/dist/actions/owner-surfaces.d.ts.map +1 -0
- package/dist/actions/owner-surfaces.js +493 -0
- package/dist/actions/owner-surfaces.js.map +1 -0
- package/dist/actions/password-manager.d.ts +10 -0
- package/dist/actions/password-manager.d.ts.map +1 -0
- package/dist/actions/password-manager.js +195 -0
- package/dist/actions/password-manager.js.map +1 -0
- package/dist/actions/payments.d.ts +10 -0
- package/dist/actions/payments.d.ts.map +1 -0
- package/dist/actions/payments.js +5 -0
- package/dist/actions/payments.js.map +1 -0
- package/dist/actions/prioritize.d.ts +49 -0
- package/dist/actions/prioritize.d.ts.map +1 -0
- package/dist/actions/prioritize.js +313 -0
- package/dist/actions/prioritize.js.map +1 -0
- package/dist/actions/remote-desktop.d.ts +13 -0
- package/dist/actions/remote-desktop.d.ts.map +1 -0
- package/dist/actions/remote-desktop.js +11 -0
- package/dist/actions/remote-desktop.js.map +1 -0
- package/dist/actions/resolve-request.d.ts +12 -0
- package/dist/actions/resolve-request.d.ts.map +1 -0
- package/dist/actions/resolve-request.js +427 -0
- package/dist/actions/resolve-request.js.map +1 -0
- package/dist/actions/schedule.d.ts +10 -0
- package/dist/actions/schedule.d.ts.map +1 -0
- package/dist/actions/schedule.js +113 -0
- package/dist/actions/schedule.js.map +1 -0
- package/dist/actions/scheduled-task.d.ts +32 -0
- package/dist/actions/scheduled-task.d.ts.map +1 -0
- package/dist/actions/scheduled-task.js +661 -0
- package/dist/actions/scheduled-task.js.map +1 -0
- package/dist/actions/screen-time.d.ts +4 -0
- package/dist/actions/screen-time.d.ts.map +1 -0
- package/dist/actions/screen-time.js +47 -0
- package/dist/actions/screen-time.js.map +1 -0
- package/dist/actions/subscriptions.d.ts +8 -0
- package/dist/actions/subscriptions.d.ts.map +1 -0
- package/dist/actions/subscriptions.js +327 -0
- package/dist/actions/subscriptions.js.map +1 -0
- package/dist/actions/voice-call.d.ts +16 -0
- package/dist/actions/voice-call.d.ts.map +1 -0
- package/dist/actions/voice-call.js +756 -0
- package/dist/actions/voice-call.js.map +1 -0
- package/dist/actions/website-block.d.ts +15 -0
- package/dist/actions/website-block.d.ts.map +1 -0
- package/dist/actions/website-block.js +719 -0
- package/dist/actions/website-block.js.map +1 -0
- package/dist/actions/work-thread.d.ts +5 -0
- package/dist/actions/work-thread.d.ts.map +1 -0
- package/dist/actions/work-thread.js +556 -0
- package/dist/actions/work-thread.js.map +1 -0
- package/dist/activity-profile/activity-tracker-repo.d.ts +28 -0
- package/dist/activity-profile/activity-tracker-repo.d.ts.map +1 -0
- package/dist/activity-profile/activity-tracker-repo.js +61 -0
- package/dist/activity-profile/activity-tracker-repo.js.map +1 -0
- package/dist/activity-profile/activity-tracker-reporting.d.ts +52 -0
- package/dist/activity-profile/activity-tracker-reporting.d.ts.map +1 -0
- package/dist/activity-profile/activity-tracker-reporting.js +119 -0
- package/dist/activity-profile/activity-tracker-reporting.js.map +1 -0
- package/dist/activity-profile/activity-tracker-service.d.ts +36 -0
- package/dist/activity-profile/activity-tracker-service.d.ts.map +1 -0
- package/dist/activity-profile/activity-tracker-service.js +187 -0
- package/dist/activity-profile/activity-tracker-service.js.map +1 -0
- package/dist/activity-profile/analyzer.d.ts +23 -0
- package/dist/activity-profile/analyzer.d.ts.map +1 -0
- package/dist/activity-profile/analyzer.js +485 -0
- package/dist/activity-profile/analyzer.js.map +1 -0
- package/dist/activity-profile/presence-signal-bridge-service.d.ts +14 -0
- package/dist/activity-profile/presence-signal-bridge-service.d.ts.map +1 -0
- package/dist/activity-profile/presence-signal-bridge-service.js +159 -0
- package/dist/activity-profile/presence-signal-bridge-service.js.map +1 -0
- package/dist/activity-profile/proactive-inbox-digest.d.ts +3 -0
- package/dist/activity-profile/proactive-inbox-digest.d.ts.map +1 -0
- package/dist/activity-profile/proactive-inbox-digest.js +21 -0
- package/dist/activity-profile/proactive-inbox-digest.js.map +1 -0
- package/dist/activity-profile/proactive-planner.d.ts +150 -0
- package/dist/activity-profile/proactive-planner.d.ts.map +1 -0
- package/dist/activity-profile/proactive-planner.js +529 -0
- package/dist/activity-profile/proactive-planner.js.map +1 -0
- package/dist/activity-profile/proactive-worker.d.ts +33 -0
- package/dist/activity-profile/proactive-worker.d.ts.map +1 -0
- package/dist/activity-profile/proactive-worker.js +779 -0
- package/dist/activity-profile/proactive-worker.js.map +1 -0
- package/dist/activity-profile/profile-metadata.d.ts +10 -0
- package/dist/activity-profile/profile-metadata.d.ts.map +1 -0
- package/dist/activity-profile/profile-metadata.js +16 -0
- package/dist/activity-profile/profile-metadata.js.map +1 -0
- package/dist/activity-profile/redactor.d.ts +15 -0
- package/dist/activity-profile/redactor.d.ts.map +1 -0
- package/dist/activity-profile/redactor.js +22 -0
- package/dist/activity-profile/redactor.js.map +1 -0
- package/dist/activity-profile/service.d.ts +11 -0
- package/dist/activity-profile/service.d.ts.map +1 -0
- package/dist/activity-profile/service.js +272 -0
- package/dist/activity-profile/service.js.map +1 -0
- package/dist/activity-profile/types.d.ts +97 -0
- package/dist/activity-profile/types.d.ts.map +1 -0
- package/dist/activity-profile/types.js +36 -0
- package/dist/activity-profile/types.js.map +1 -0
- package/dist/agent-lifeops.d.ts +2 -0
- package/dist/agent-lifeops.d.ts.map +1 -0
- package/dist/agent-lifeops.js +2 -0
- package/dist/agent-lifeops.js.map +1 -0
- package/dist/api/client-lifeops.d.ts +319 -0
- package/dist/api/client-lifeops.d.ts.map +1 -0
- package/dist/api/client-lifeops.js +794 -0
- package/dist/api/client-lifeops.js.map +1 -0
- package/dist/automation-node-contributor.d.ts +2 -0
- package/dist/automation-node-contributor.d.ts.map +1 -0
- package/dist/automation-node-contributor.js +184 -0
- package/dist/automation-node-contributor.js.map +1 -0
- package/dist/client.d.ts +16 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +18 -0
- package/dist/client.js.map +1 -0
- package/dist/components/AppBlockerSettingsCard.d.ts +3 -0
- package/dist/components/AppBlockerSettingsCard.d.ts.map +1 -0
- package/dist/components/AppBlockerSettingsCard.js +538 -0
- package/dist/components/AppBlockerSettingsCard.js.map +1 -0
- package/dist/components/WebsiteBlockerSettingsCard.d.ts +3 -0
- package/dist/components/WebsiteBlockerSettingsCard.d.ts.map +1 -0
- package/dist/components/WebsiteBlockerSettingsCard.js +148 -0
- package/dist/components/WebsiteBlockerSettingsCard.js.map +1 -0
- package/dist/contracts/index.d.ts +2 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +2 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/contracts/lifeops.d.ts +2 -0
- package/dist/contracts/lifeops.d.ts.map +1 -0
- package/dist/contracts/lifeops.js +2 -0
- package/dist/contracts/lifeops.js.map +1 -0
- package/dist/default-packs/autofill-whitelist-pack.d.ts +17 -0
- package/dist/default-packs/autofill-whitelist-pack.d.ts.map +1 -0
- package/dist/default-packs/autofill-whitelist-pack.js +56 -0
- package/dist/default-packs/autofill-whitelist-pack.js.map +1 -0
- package/dist/default-packs/consolidation-policies.d.ts +14 -0
- package/dist/default-packs/consolidation-policies.d.ts.map +1 -0
- package/dist/default-packs/consolidation-policies.js +17 -0
- package/dist/default-packs/consolidation-policies.js.map +1 -0
- package/dist/default-packs/contract-types.d.ts +200 -0
- package/dist/default-packs/contract-types.d.ts.map +1 -0
- package/dist/default-packs/contract-types.js +1 -0
- package/dist/default-packs/contract-types.js.map +1 -0
- package/dist/default-packs/daily-rhythm.d.ts +28 -0
- package/dist/default-packs/daily-rhythm.d.ts.map +1 -0
- package/dist/default-packs/daily-rhythm.js +136 -0
- package/dist/default-packs/daily-rhythm.js.map +1 -0
- package/dist/default-packs/escalation-ladders.d.ts +18 -0
- package/dist/default-packs/escalation-ladders.d.ts.map +1 -0
- package/dist/default-packs/escalation-ladders.js +17 -0
- package/dist/default-packs/escalation-ladders.js.map +1 -0
- package/dist/default-packs/executive-assistant.d.ts +50 -0
- package/dist/default-packs/executive-assistant.d.ts.map +1 -0
- package/dist/default-packs/executive-assistant.js +745 -0
- package/dist/default-packs/executive-assistant.js.map +1 -0
- package/dist/default-packs/followup-starter.d.ts +49 -0
- package/dist/default-packs/followup-starter.d.ts.map +1 -0
- package/dist/default-packs/followup-starter.js +104 -0
- package/dist/default-packs/followup-starter.js.map +1 -0
- package/dist/default-packs/habit-starters.d.ts +37 -0
- package/dist/default-packs/habit-starters.d.ts.map +1 -0
- package/dist/default-packs/habit-starters.js +255 -0
- package/dist/default-packs/habit-starters.js.map +1 -0
- package/dist/default-packs/inbox-triage-starter.d.ts +23 -0
- package/dist/default-packs/inbox-triage-starter.d.ts.map +1 -0
- package/dist/default-packs/inbox-triage-starter.js +61 -0
- package/dist/default-packs/inbox-triage-starter.js.map +1 -0
- package/dist/default-packs/index.d.ts +54 -0
- package/dist/default-packs/index.d.ts.map +1 -0
- package/dist/default-packs/index.js +150 -0
- package/dist/default-packs/index.js.map +1 -0
- package/dist/default-packs/lint.d.ts +62 -0
- package/dist/default-packs/lint.d.ts.map +1 -0
- package/dist/default-packs/lint.js +161 -0
- package/dist/default-packs/lint.js.map +1 -0
- package/dist/default-packs/morning-brief.d.ts +44 -0
- package/dist/default-packs/morning-brief.d.ts.map +1 -0
- package/dist/default-packs/morning-brief.js +69 -0
- package/dist/default-packs/morning-brief.js.map +1 -0
- package/dist/default-packs/quiet-user-watcher.d.ts +49 -0
- package/dist/default-packs/quiet-user-watcher.d.ts.map +1 -0
- package/dist/default-packs/quiet-user-watcher.js +92 -0
- package/dist/default-packs/quiet-user-watcher.js.map +1 -0
- package/dist/default-packs/registry-types.d.ts +51 -0
- package/dist/default-packs/registry-types.d.ts.map +1 -0
- package/dist/default-packs/registry-types.js +1 -0
- package/dist/default-packs/registry-types.js.map +1 -0
- package/dist/default-packs/task-definitions.d.ts +88 -0
- package/dist/default-packs/task-definitions.d.ts.map +1 -0
- package/dist/default-packs/task-definitions.js +87 -0
- package/dist/default-packs/task-definitions.js.map +1 -0
- package/dist/events/index.d.ts +34 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +30 -0
- package/dist/events/index.js.map +1 -0
- package/dist/followup/actions/listOverdueFollowups.d.ts +3 -0
- package/dist/followup/actions/listOverdueFollowups.d.ts.map +1 -0
- package/dist/followup/actions/listOverdueFollowups.js +90 -0
- package/dist/followup/actions/listOverdueFollowups.js.map +1 -0
- package/dist/followup/actions/markFollowupDone.d.ts +3 -0
- package/dist/followup/actions/markFollowupDone.d.ts.map +1 -0
- package/dist/followup/actions/markFollowupDone.js +171 -0
- package/dist/followup/actions/markFollowupDone.js.map +1 -0
- package/dist/followup/actions/setFollowupThreshold.d.ts +3 -0
- package/dist/followup/actions/setFollowupThreshold.d.ts.map +1 -0
- package/dist/followup/actions/setFollowupThreshold.js +171 -0
- package/dist/followup/actions/setFollowupThreshold.js.map +1 -0
- package/dist/followup/followup-tracker.d.ts +83 -0
- package/dist/followup/followup-tracker.d.ts.map +1 -0
- package/dist/followup/followup-tracker.js +311 -0
- package/dist/followup/followup-tracker.js.map +1 -0
- package/dist/followup/index.d.ts +5 -0
- package/dist/followup/index.d.ts.map +1 -0
- package/dist/followup/index.js +39 -0
- package/dist/followup/index.js.map +1 -0
- package/dist/hooks/connector-error.d.ts +2 -0
- package/dist/hooks/connector-error.d.ts.map +1 -0
- package/dist/hooks/connector-error.js +13 -0
- package/dist/hooks/connector-error.js.map +1 -0
- package/dist/hooks/useDiscordConnector.d.ts +11 -0
- package/dist/hooks/useDiscordConnector.d.ts.map +1 -0
- package/dist/hooks/useDiscordConnector.js +95 -0
- package/dist/hooks/useDiscordConnector.js.map +1 -0
- package/dist/hooks/useGoogleLifeOpsConnector.d.ts +23 -0
- package/dist/hooks/useGoogleLifeOpsConnector.d.ts.map +1 -0
- package/dist/hooks/useGoogleLifeOpsConnector.js +630 -0
- package/dist/hooks/useGoogleLifeOpsConnector.js.map +1 -0
- package/dist/hooks/useIMessageConnector.d.ts +10 -0
- package/dist/hooks/useIMessageConnector.d.ts.map +1 -0
- package/dist/hooks/useIMessageConnector.js +57 -0
- package/dist/hooks/useIMessageConnector.js.map +1 -0
- package/dist/hooks/useInbox.d.ts +36 -0
- package/dist/hooks/useInbox.d.ts.map +1 -0
- package/dist/hooks/useInbox.js +96 -0
- package/dist/hooks/useInbox.js.map +1 -0
- package/dist/hooks/useLifeOpsActivitySignals.d.ts +2 -0
- package/dist/hooks/useLifeOpsActivitySignals.d.ts.map +1 -0
- package/dist/hooks/useLifeOpsActivitySignals.js +358 -0
- package/dist/hooks/useLifeOpsActivitySignals.js.map +1 -0
- package/dist/hooks/useLifeOpsAppState.d.ts +9 -0
- package/dist/hooks/useLifeOpsAppState.d.ts.map +1 -0
- package/dist/hooks/useLifeOpsAppState.js +79 -0
- package/dist/hooks/useLifeOpsAppState.js.map +1 -0
- package/dist/hooks/useLifeOpsCapabilitiesStatus.d.ts +8 -0
- package/dist/hooks/useLifeOpsCapabilitiesStatus.d.ts.map +1 -0
- package/dist/hooks/useLifeOpsCapabilitiesStatus.js +60 -0
- package/dist/hooks/useLifeOpsCapabilitiesStatus.js.map +1 -0
- package/dist/hooks/useLifeOpsXConnector.d.ts +11 -0
- package/dist/hooks/useLifeOpsXConnector.d.ts.map +1 -0
- package/dist/hooks/useLifeOpsXConnector.js +92 -0
- package/dist/hooks/useLifeOpsXConnector.js.map +1 -0
- package/dist/hooks/useSignalConnector.d.ts +14 -0
- package/dist/hooks/useSignalConnector.d.ts.map +1 -0
- package/dist/hooks/useSignalConnector.js +89 -0
- package/dist/hooks/useSignalConnector.js.map +1 -0
- package/dist/hooks/useTelegramConnector.d.ts +14 -0
- package/dist/hooks/useTelegramConnector.d.ts.map +1 -0
- package/dist/hooks/useTelegramConnector.js +97 -0
- package/dist/hooks/useTelegramConnector.js.map +1 -0
- package/dist/hooks/useWhatsAppConnector.d.ts +8 -0
- package/dist/hooks/useWhatsAppConnector.d.ts.map +1 -0
- package/dist/hooks/useWhatsAppConnector.js +62 -0
- package/dist/hooks/useWhatsAppConnector.js.map +1 -0
- package/dist/inbox/message-fetcher.d.ts +11 -0
- package/dist/inbox/message-fetcher.d.ts.map +1 -0
- package/dist/inbox/message-fetcher.js +13 -0
- package/dist/inbox/message-fetcher.js.map +1 -0
- package/dist/inbox/repository.d.ts +11 -0
- package/dist/inbox/repository.d.ts.map +1 -0
- package/dist/inbox/repository.js +5 -0
- package/dist/inbox/repository.js.map +1 -0
- package/dist/inbox/types.d.ts +10 -0
- package/dist/inbox/types.d.ts.map +1 -0
- package/dist/inbox/types.js +2 -0
- package/dist/inbox/types.js.map +1 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +188 -0
- package/dist/index.js.map +1 -0
- package/dist/lifeops/access.d.ts +29 -0
- package/dist/lifeops/access.d.ts.map +1 -0
- package/dist/lifeops/access.js +56 -0
- package/dist/lifeops/access.js.map +1 -0
- package/dist/lifeops/app-state.d.ts +22 -0
- package/dist/lifeops/app-state.d.ts.map +1 -0
- package/dist/lifeops/app-state.js +67 -0
- package/dist/lifeops/app-state.js.map +1 -0
- package/dist/lifeops/apple-reminders.d.ts +67 -0
- package/dist/lifeops/apple-reminders.d.ts.map +1 -0
- package/dist/lifeops/apple-reminders.js +396 -0
- package/dist/lifeops/apple-reminders.js.map +1 -0
- package/dist/lifeops/approval-queue.d.ts +38 -0
- package/dist/lifeops/approval-queue.d.ts.map +1 -0
- package/dist/lifeops/approval-queue.js +575 -0
- package/dist/lifeops/approval-queue.js.map +1 -0
- package/dist/lifeops/approval-queue.types.d.ts +172 -0
- package/dist/lifeops/approval-queue.types.d.ts.map +1 -0
- package/dist/lifeops/approval-queue.types.js +27 -0
- package/dist/lifeops/approval-queue.types.js.map +1 -0
- package/dist/lifeops/autofill-whitelist.d.ts +20 -0
- package/dist/lifeops/autofill-whitelist.d.ts.map +1 -0
- package/dist/lifeops/autofill-whitelist.js +59 -0
- package/dist/lifeops/autofill-whitelist.js.map +1 -0
- package/dist/lifeops/background-planner-dispatch.d.ts +60 -0
- package/dist/lifeops/background-planner-dispatch.d.ts.map +1 -0
- package/dist/lifeops/background-planner-dispatch.js +113 -0
- package/dist/lifeops/background-planner-dispatch.js.map +1 -0
- package/dist/lifeops/background-planner.d.ts +140 -0
- package/dist/lifeops/background-planner.d.ts.map +1 -0
- package/dist/lifeops/background-planner.js +359 -0
- package/dist/lifeops/background-planner.js.map +1 -0
- package/dist/lifeops/bill-extraction.d.ts +46 -0
- package/dist/lifeops/bill-extraction.d.ts.map +1 -0
- package/dist/lifeops/bill-extraction.js +325 -0
- package/dist/lifeops/bill-extraction.js.map +1 -0
- package/dist/lifeops/browser-constants.d.ts +4 -0
- package/dist/lifeops/browser-constants.d.ts.map +1 -0
- package/dist/lifeops/browser-constants.js +27 -0
- package/dist/lifeops/browser-constants.js.map +1 -0
- package/dist/lifeops/browser-extension-store.d.ts +61 -0
- package/dist/lifeops/browser-extension-store.d.ts.map +1 -0
- package/dist/lifeops/browser-extension-store.js +176 -0
- package/dist/lifeops/browser-extension-store.js.map +1 -0
- package/dist/lifeops/browser-session-lifecycle.d.ts +57 -0
- package/dist/lifeops/browser-session-lifecycle.d.ts.map +1 -0
- package/dist/lifeops/browser-session-lifecycle.js +308 -0
- package/dist/lifeops/browser-session-lifecycle.js.map +1 -0
- package/dist/lifeops/bulk-review.d.ts +333 -0
- package/dist/lifeops/bulk-review.d.ts.map +1 -0
- package/dist/lifeops/bulk-review.js +1120 -0
- package/dist/lifeops/bulk-review.js.map +1 -0
- package/dist/lifeops/calendar-gate.d.ts +20 -0
- package/dist/lifeops/calendar-gate.d.ts.map +1 -0
- package/dist/lifeops/calendar-gate.js +30 -0
- package/dist/lifeops/calendar-gate.js.map +1 -0
- package/dist/lifeops/channels/contract.d.ts +47 -0
- package/dist/lifeops/channels/contract.d.ts.map +1 -0
- package/dist/lifeops/channels/contract.js +1 -0
- package/dist/lifeops/channels/contract.js.map +1 -0
- package/dist/lifeops/channels/default-pack.d.ts +26 -0
- package/dist/lifeops/channels/default-pack.d.ts.map +1 -0
- package/dist/lifeops/channels/default-pack.js +243 -0
- package/dist/lifeops/channels/default-pack.js.map +1 -0
- package/dist/lifeops/channels/index.d.ts +5 -0
- package/dist/lifeops/channels/index.d.ts.map +1 -0
- package/dist/lifeops/channels/index.js +23 -0
- package/dist/lifeops/channels/index.js.map +1 -0
- package/dist/lifeops/channels/priority-posture.d.ts +36 -0
- package/dist/lifeops/channels/priority-posture.d.ts.map +1 -0
- package/dist/lifeops/channels/priority-posture.js +27 -0
- package/dist/lifeops/channels/priority-posture.js.map +1 -0
- package/dist/lifeops/channels/registry.d.ts +7 -0
- package/dist/lifeops/channels/registry.d.ts.map +1 -0
- package/dist/lifeops/channels/registry.js +49 -0
- package/dist/lifeops/channels/registry.js.map +1 -0
- package/dist/lifeops/checkin/checkin-service.d.ts +66 -0
- package/dist/lifeops/checkin/checkin-service.d.ts.map +1 -0
- package/dist/lifeops/checkin/checkin-service.js +1084 -0
- package/dist/lifeops/checkin/checkin-service.js.map +1 -0
- package/dist/lifeops/checkin/schedule-resolver.d.ts +17 -0
- package/dist/lifeops/checkin/schedule-resolver.d.ts.map +1 -0
- package/dist/lifeops/checkin/schedule-resolver.js +26 -0
- package/dist/lifeops/checkin/schedule-resolver.js.map +1 -0
- package/dist/lifeops/checkin/types.d.ts +106 -0
- package/dist/lifeops/checkin/types.d.ts.map +1 -0
- package/dist/lifeops/checkin/types.js +1 -0
- package/dist/lifeops/checkin/types.js.map +1 -0
- package/dist/lifeops/connectors/_helpers.d.ts +51 -0
- package/dist/lifeops/connectors/_helpers.d.ts.map +1 -0
- package/dist/lifeops/connectors/_helpers.js +104 -0
- package/dist/lifeops/connectors/_helpers.js.map +1 -0
- package/dist/lifeops/connectors/calendly.d.ts +11 -0
- package/dist/lifeops/connectors/calendly.d.ts.map +1 -0
- package/dist/lifeops/connectors/calendly.js +61 -0
- package/dist/lifeops/connectors/calendly.js.map +1 -0
- package/dist/lifeops/connectors/contract.d.ts +88 -0
- package/dist/lifeops/connectors/contract.d.ts.map +1 -0
- package/dist/lifeops/connectors/contract.js +1 -0
- package/dist/lifeops/connectors/contract.js.map +1 -0
- package/dist/lifeops/connectors/default-pack.d.ts +35 -0
- package/dist/lifeops/connectors/default-pack.d.ts.map +1 -0
- package/dist/lifeops/connectors/default-pack.js +37 -0
- package/dist/lifeops/connectors/default-pack.js.map +1 -0
- package/dist/lifeops/connectors/discord.d.ts +8 -0
- package/dist/lifeops/connectors/discord.d.ts.map +1 -0
- package/dist/lifeops/connectors/discord.js +53 -0
- package/dist/lifeops/connectors/discord.js.map +1 -0
- package/dist/lifeops/connectors/dispatch-policy.d.ts +75 -0
- package/dist/lifeops/connectors/dispatch-policy.d.ts.map +1 -0
- package/dist/lifeops/connectors/dispatch-policy.js +35 -0
- package/dist/lifeops/connectors/dispatch-policy.js.map +1 -0
- package/dist/lifeops/connectors/duffel.d.ts +11 -0
- package/dist/lifeops/connectors/duffel.d.ts.map +1 -0
- package/dist/lifeops/connectors/duffel.js +74 -0
- package/dist/lifeops/connectors/duffel.js.map +1 -0
- package/dist/lifeops/connectors/google.d.ts +27 -0
- package/dist/lifeops/connectors/google.d.ts.map +1 -0
- package/dist/lifeops/connectors/google.js +80 -0
- package/dist/lifeops/connectors/google.js.map +1 -0
- package/dist/lifeops/connectors/imessage.d.ts +11 -0
- package/dist/lifeops/connectors/imessage.d.ts.map +1 -0
- package/dist/lifeops/connectors/imessage.js +55 -0
- package/dist/lifeops/connectors/imessage.js.map +1 -0
- package/dist/lifeops/connectors/index.d.ts +5 -0
- package/dist/lifeops/connectors/index.d.ts.map +1 -0
- package/dist/lifeops/connectors/index.js +23 -0
- package/dist/lifeops/connectors/index.js.map +1 -0
- package/dist/lifeops/connectors/mockoon-redirect.d.ts +54 -0
- package/dist/lifeops/connectors/mockoon-redirect.d.ts.map +1 -0
- package/dist/lifeops/connectors/mockoon-redirect.js +71 -0
- package/dist/lifeops/connectors/mockoon-redirect.js.map +1 -0
- package/dist/lifeops/connectors/registry.d.ts +7 -0
- package/dist/lifeops/connectors/registry.d.ts.map +1 -0
- package/dist/lifeops/connectors/registry.js +55 -0
- package/dist/lifeops/connectors/registry.js.map +1 -0
- package/dist/lifeops/connectors/signal.d.ts +8 -0
- package/dist/lifeops/connectors/signal.d.ts.map +1 -0
- package/dist/lifeops/connectors/signal.js +60 -0
- package/dist/lifeops/connectors/signal.js.map +1 -0
- package/dist/lifeops/connectors/telegram.d.ts +12 -0
- package/dist/lifeops/connectors/telegram.d.ts.map +1 -0
- package/dist/lifeops/connectors/telegram.js +65 -0
- package/dist/lifeops/connectors/telegram.js.map +1 -0
- package/dist/lifeops/connectors/twilio.d.ts +15 -0
- package/dist/lifeops/connectors/twilio.d.ts.map +1 -0
- package/dist/lifeops/connectors/twilio.js +126 -0
- package/dist/lifeops/connectors/twilio.js.map +1 -0
- package/dist/lifeops/connectors/whatsapp.d.ts +10 -0
- package/dist/lifeops/connectors/whatsapp.d.ts.map +1 -0
- package/dist/lifeops/connectors/whatsapp.js +56 -0
- package/dist/lifeops/connectors/whatsapp.js.map +1 -0
- package/dist/lifeops/connectors/x.d.ts +8 -0
- package/dist/lifeops/connectors/x.d.ts.map +1 -0
- package/dist/lifeops/connectors/x.js +62 -0
- package/dist/lifeops/connectors/x.js.map +1 -0
- package/dist/lifeops/contact-route-policy.d.ts +27 -0
- package/dist/lifeops/contact-route-policy.d.ts.map +1 -0
- package/dist/lifeops/contact-route-policy.js +153 -0
- package/dist/lifeops/contact-route-policy.js.map +1 -0
- package/dist/lifeops/continuity-probe.d.ts +49 -0
- package/dist/lifeops/continuity-probe.d.ts.map +1 -0
- package/dist/lifeops/continuity-probe.js +161 -0
- package/dist/lifeops/continuity-probe.js.map +1 -0
- package/dist/lifeops/cross-channel-search.d.ts +108 -0
- package/dist/lifeops/cross-channel-search.d.ts.map +1 -0
- package/dist/lifeops/cross-channel-search.js +888 -0
- package/dist/lifeops/cross-channel-search.js.map +1 -0
- package/dist/lifeops/defaults.d.ts +30 -0
- package/dist/lifeops/defaults.d.ts.map +1 -0
- package/dist/lifeops/defaults.js +206 -0
- package/dist/lifeops/defaults.js.map +1 -0
- package/dist/lifeops/device-bus-service.d.ts +16 -0
- package/dist/lifeops/device-bus-service.d.ts.map +1 -0
- package/dist/lifeops/device-bus-service.js +20 -0
- package/dist/lifeops/device-bus-service.js.map +1 -0
- package/dist/lifeops/device-identity.d.ts +31 -0
- package/dist/lifeops/device-identity.d.ts.map +1 -0
- package/dist/lifeops/device-identity.js +94 -0
- package/dist/lifeops/device-identity.js.map +1 -0
- package/dist/lifeops/document-review.d.ts +264 -0
- package/dist/lifeops/document-review.d.ts.map +1 -0
- package/dist/lifeops/document-review.js +925 -0
- package/dist/lifeops/document-review.js.map +1 -0
- package/dist/lifeops/email-classifier.d.ts +9 -0
- package/dist/lifeops/email-classifier.d.ts.map +1 -0
- package/dist/lifeops/email-classifier.js +15 -0
- package/dist/lifeops/email-classifier.js.map +1 -0
- package/dist/lifeops/email-curation.d.ts +13 -0
- package/dist/lifeops/email-curation.d.ts.map +1 -0
- package/dist/lifeops/email-curation.js +2 -0
- package/dist/lifeops/email-curation.js.map +1 -0
- package/dist/lifeops/email-unsubscribe-types.d.ts +7 -0
- package/dist/lifeops/email-unsubscribe-types.d.ts.map +1 -0
- package/dist/lifeops/email-unsubscribe-types.js +1 -0
- package/dist/lifeops/email-unsubscribe-types.js.map +1 -0
- package/dist/lifeops/enforcement-windows.d.ts +34 -0
- package/dist/lifeops/enforcement-windows.d.ts.map +1 -0
- package/dist/lifeops/enforcement-windows.js +80 -0
- package/dist/lifeops/enforcement-windows.js.map +1 -0
- package/dist/lifeops/engine.d.ts +8 -0
- package/dist/lifeops/engine.d.ts.map +1 -0
- package/dist/lifeops/engine.js +540 -0
- package/dist/lifeops/engine.js.map +1 -0
- package/dist/lifeops/entities/index.d.ts +4 -0
- package/dist/lifeops/entities/index.d.ts.map +1 -0
- package/dist/lifeops/entities/index.js +29 -0
- package/dist/lifeops/entities/index.js.map +1 -0
- package/dist/lifeops/entities/merge.d.ts +9 -0
- package/dist/lifeops/entities/merge.d.ts.map +1 -0
- package/dist/lifeops/entities/merge.js +17 -0
- package/dist/lifeops/entities/merge.js.map +1 -0
- package/dist/lifeops/entities/store.d.ts +13 -0
- package/dist/lifeops/entities/store.d.ts.map +1 -0
- package/dist/lifeops/entities/store.js +7 -0
- package/dist/lifeops/entities/store.js.map +1 -0
- package/dist/lifeops/entities/types.d.ts +9 -0
- package/dist/lifeops/entities/types.d.ts.map +1 -0
- package/dist/lifeops/entities/types.js +13 -0
- package/dist/lifeops/entities/types.js.map +1 -0
- package/dist/lifeops/entities/voice-attribution.d.ts +70 -0
- package/dist/lifeops/entities/voice-attribution.d.ts.map +1 -0
- package/dist/lifeops/entities/voice-attribution.js +121 -0
- package/dist/lifeops/entities/voice-attribution.js.map +1 -0
- package/dist/lifeops/entities/voice-observer-bridge.d.ts +32 -0
- package/dist/lifeops/entities/voice-observer-bridge.d.ts.map +1 -0
- package/dist/lifeops/entities/voice-observer-bridge.js +68 -0
- package/dist/lifeops/entities/voice-observer-bridge.js.map +1 -0
- package/dist/lifeops/entities/voice-observer.d.ts +72 -0
- package/dist/lifeops/entities/voice-observer.d.ts.map +1 -0
- package/dist/lifeops/entities/voice-observer.js +97 -0
- package/dist/lifeops/entities/voice-observer.js.map +1 -0
- package/dist/lifeops/escalation-ladders.d.ts +28 -0
- package/dist/lifeops/escalation-ladders.d.ts.map +1 -0
- package/dist/lifeops/escalation-ladders.js +17 -0
- package/dist/lifeops/escalation-ladders.js.map +1 -0
- package/dist/lifeops/fda-probe.d.ts +23 -0
- package/dist/lifeops/fda-probe.d.ts.map +1 -0
- package/dist/lifeops/fda-probe.js +59 -0
- package/dist/lifeops/fda-probe.js.map +1 -0
- package/dist/lifeops/feature-flags.d.ts +24 -0
- package/dist/lifeops/feature-flags.d.ts.map +1 -0
- package/dist/lifeops/feature-flags.js +261 -0
- package/dist/lifeops/feature-flags.js.map +1 -0
- package/dist/lifeops/feature-flags.types.d.ts +156 -0
- package/dist/lifeops/feature-flags.types.d.ts.map +1 -0
- package/dist/lifeops/feature-flags.types.js +129 -0
- package/dist/lifeops/feature-flags.types.js.map +1 -0
- package/dist/lifeops/first-run/defaults.d.ts +57 -0
- package/dist/lifeops/first-run/defaults.d.ts.map +1 -0
- package/dist/lifeops/first-run/defaults.js +159 -0
- package/dist/lifeops/first-run/defaults.js.map +1 -0
- package/dist/lifeops/first-run/questions.d.ts +74 -0
- package/dist/lifeops/first-run/questions.d.ts.map +1 -0
- package/dist/lifeops/first-run/questions.js +184 -0
- package/dist/lifeops/first-run/questions.js.map +1 -0
- package/dist/lifeops/first-run/replay.d.ts +41 -0
- package/dist/lifeops/first-run/replay.d.ts.map +1 -0
- package/dist/lifeops/first-run/replay.js +34 -0
- package/dist/lifeops/first-run/replay.js.map +1 -0
- package/dist/lifeops/first-run/service.d.ts +147 -0
- package/dist/lifeops/first-run/service.d.ts.map +1 -0
- package/dist/lifeops/first-run/service.js +455 -0
- package/dist/lifeops/first-run/service.js.map +1 -0
- package/dist/lifeops/first-run/state.d.ts +36 -0
- package/dist/lifeops/first-run/state.d.ts.map +1 -0
- package/dist/lifeops/first-run/state.js +128 -0
- package/dist/lifeops/first-run/state.js.map +1 -0
- package/dist/lifeops/global-pause/store.d.ts +22 -0
- package/dist/lifeops/global-pause/store.d.ts.map +1 -0
- package/dist/lifeops/global-pause/store.js +18 -0
- package/dist/lifeops/global-pause/store.js.map +1 -0
- package/dist/lifeops/goal-grounding.d.ts +9 -0
- package/dist/lifeops/goal-grounding.d.ts.map +1 -0
- package/dist/lifeops/goal-grounding.js +19 -0
- package/dist/lifeops/goal-grounding.js.map +1 -0
- package/dist/lifeops/goal-semantic-evaluator.d.ts +8 -0
- package/dist/lifeops/goal-semantic-evaluator.d.ts.map +1 -0
- package/dist/lifeops/goal-semantic-evaluator.js +7 -0
- package/dist/lifeops/goal-semantic-evaluator.js.map +1 -0
- package/dist/lifeops/google/format-helpers.d.ts +63 -0
- package/dist/lifeops/google/format-helpers.d.ts.map +1 -0
- package/dist/lifeops/google/format-helpers.js +597 -0
- package/dist/lifeops/google/format-helpers.js.map +1 -0
- package/dist/lifeops/google-plugin-delegates.d.ts +59 -0
- package/dist/lifeops/google-plugin-delegates.d.ts.map +1 -0
- package/dist/lifeops/google-plugin-delegates.js +408 -0
- package/dist/lifeops/google-plugin-delegates.js.map +1 -0
- package/dist/lifeops/google-scopes.d.ts +15 -0
- package/dist/lifeops/google-scopes.d.ts.map +1 -0
- package/dist/lifeops/google-scopes.js +118 -0
- package/dist/lifeops/google-scopes.js.map +1 -0
- package/dist/lifeops/handoff/store.d.ts +23 -0
- package/dist/lifeops/handoff/store.d.ts.map +1 -0
- package/dist/lifeops/handoff/store.js +20 -0
- package/dist/lifeops/handoff/store.js.map +1 -0
- package/dist/lifeops/i18n/localized-examples-provider.d.ts +16 -0
- package/dist/lifeops/i18n/localized-examples-provider.d.ts.map +1 -0
- package/dist/lifeops/i18n/localized-examples-provider.js +33 -0
- package/dist/lifeops/i18n/localized-examples-provider.js.map +1 -0
- package/dist/lifeops/i18n/localized-examples-resolver.d.ts +32 -0
- package/dist/lifeops/i18n/localized-examples-resolver.d.ts.map +1 -0
- package/dist/lifeops/i18n/localized-examples-resolver.js +28 -0
- package/dist/lifeops/i18n/localized-examples-resolver.js.map +1 -0
- package/dist/lifeops/i18n/prompt-registry.d.ts +64 -0
- package/dist/lifeops/i18n/prompt-registry.d.ts.map +1 -0
- package/dist/lifeops/i18n/prompt-registry.js +283 -0
- package/dist/lifeops/i18n/prompt-registry.js.map +1 -0
- package/dist/lifeops/imessage-outbound-probe.d.ts +7 -0
- package/dist/lifeops/imessage-outbound-probe.d.ts.map +1 -0
- package/dist/lifeops/imessage-outbound-probe.js +81 -0
- package/dist/lifeops/imessage-outbound-probe.js.map +1 -0
- package/dist/lifeops/index.d.ts +24 -0
- package/dist/lifeops/index.d.ts.map +1 -0
- package/dist/lifeops/index.js +24 -0
- package/dist/lifeops/index.js.map +1 -0
- package/dist/lifeops/intent-sync.d.ts +64 -0
- package/dist/lifeops/intent-sync.d.ts.map +1 -0
- package/dist/lifeops/intent-sync.js +321 -0
- package/dist/lifeops/intent-sync.js.map +1 -0
- package/dist/lifeops/messaging/index.d.ts +2 -0
- package/dist/lifeops/messaging/index.d.ts.map +1 -0
- package/dist/lifeops/messaging/index.js +5 -0
- package/dist/lifeops/messaging/index.js.map +1 -0
- package/dist/lifeops/messaging/owner-send-policy.d.ts +3 -0
- package/dist/lifeops/messaging/owner-send-policy.d.ts.map +1 -0
- package/dist/lifeops/messaging/owner-send-policy.js +83 -0
- package/dist/lifeops/messaging/owner-send-policy.js.map +1 -0
- package/dist/lifeops/notifications-push.d.ts +37 -0
- package/dist/lifeops/notifications-push.d.ts.map +1 -0
- package/dist/lifeops/notifications-push.js +95 -0
- package/dist/lifeops/notifications-push.js.map +1 -0
- package/dist/lifeops/optimized-prompt-instructions.d.ts +5 -0
- package/dist/lifeops/optimized-prompt-instructions.d.ts.map +1 -0
- package/dist/lifeops/optimized-prompt-instructions.js +48 -0
- package/dist/lifeops/optimized-prompt-instructions.js.map +1 -0
- package/dist/lifeops/owner/fact-store.d.ts +143 -0
- package/dist/lifeops/owner/fact-store.d.ts.map +1 -0
- package/dist/lifeops/owner/fact-store.js +446 -0
- package/dist/lifeops/owner/fact-store.js.map +1 -0
- package/dist/lifeops/owner/profile-extraction-evaluator.d.ts +3 -0
- package/dist/lifeops/owner/profile-extraction-evaluator.d.ts.map +1 -0
- package/dist/lifeops/owner/profile-extraction-evaluator.js +241 -0
- package/dist/lifeops/owner/profile-extraction-evaluator.js.map +1 -0
- package/dist/lifeops/owner-profile.d.ts +61 -0
- package/dist/lifeops/owner-profile.d.ts.map +1 -0
- package/dist/lifeops/owner-profile.js +407 -0
- package/dist/lifeops/owner-profile.js.map +1 -0
- package/dist/lifeops/pending-prompts/store.d.ts +23 -0
- package/dist/lifeops/pending-prompts/store.d.ts.map +1 -0
- package/dist/lifeops/pending-prompts/store.js +16 -0
- package/dist/lifeops/pending-prompts/store.js.map +1 -0
- package/dist/lifeops/policy-memory.d.ts +190 -0
- package/dist/lifeops/policy-memory.d.ts.map +1 -0
- package/dist/lifeops/policy-memory.js +1026 -0
- package/dist/lifeops/policy-memory.js.map +1 -0
- package/dist/lifeops/priority-scoring.d.ts +51 -0
- package/dist/lifeops/priority-scoring.d.ts.map +1 -0
- package/dist/lifeops/priority-scoring.js +305 -0
- package/dist/lifeops/priority-scoring.js.map +1 -0
- package/dist/lifeops/privacy-egress.d.ts +92 -0
- package/dist/lifeops/privacy-egress.d.ts.map +1 -0
- package/dist/lifeops/privacy-egress.js +230 -0
- package/dist/lifeops/privacy-egress.js.map +1 -0
- package/dist/lifeops/privacy.d.ts +49 -0
- package/dist/lifeops/privacy.d.ts.map +1 -0
- package/dist/lifeops/privacy.js +66 -0
- package/dist/lifeops/privacy.js.map +1 -0
- package/dist/lifeops/redact-sensitive-data.d.ts +32 -0
- package/dist/lifeops/redact-sensitive-data.d.ts.map +1 -0
- package/dist/lifeops/redact-sensitive-data.js +98 -0
- package/dist/lifeops/redact-sensitive-data.js.map +1 -0
- package/dist/lifeops/registries/app-blocker-contribution.d.ts +13 -0
- package/dist/lifeops/registries/app-blocker-contribution.d.ts.map +1 -0
- package/dist/lifeops/registries/app-blocker-contribution.js +73 -0
- package/dist/lifeops/registries/app-blocker-contribution.js.map +1 -0
- package/dist/lifeops/registries/blocker-registry.d.ts +76 -0
- package/dist/lifeops/registries/blocker-registry.d.ts.map +1 -0
- package/dist/lifeops/registries/blocker-registry.js +40 -0
- package/dist/lifeops/registries/blocker-registry.js.map +1 -0
- package/dist/lifeops/registries/event-kind-registry.d.ts +57 -0
- package/dist/lifeops/registries/event-kind-registry.d.ts.map +1 -0
- package/dist/lifeops/registries/event-kind-registry.js +82 -0
- package/dist/lifeops/registries/event-kind-registry.js.map +1 -0
- package/dist/lifeops/registries/family-registry.d.ts +72 -0
- package/dist/lifeops/registries/family-registry.d.ts.map +1 -0
- package/dist/lifeops/registries/family-registry.js +98 -0
- package/dist/lifeops/registries/family-registry.js.map +1 -0
- package/dist/lifeops/registries/feature-flag-default-pack.d.ts +32 -0
- package/dist/lifeops/registries/feature-flag-default-pack.d.ts.map +1 -0
- package/dist/lifeops/registries/feature-flag-default-pack.js +36 -0
- package/dist/lifeops/registries/feature-flag-default-pack.js.map +1 -0
- package/dist/lifeops/registries/feature-flag-registry.d.ts +76 -0
- package/dist/lifeops/registries/feature-flag-registry.d.ts.map +1 -0
- package/dist/lifeops/registries/feature-flag-registry.js +68 -0
- package/dist/lifeops/registries/feature-flag-registry.js.map +1 -0
- package/dist/lifeops/registries/index.d.ts +24 -0
- package/dist/lifeops/registries/index.d.ts.map +1 -0
- package/dist/lifeops/registries/index.js +115 -0
- package/dist/lifeops/registries/index.js.map +1 -0
- package/dist/lifeops/registries/website-blocker-contribution.d.ts +21 -0
- package/dist/lifeops/registries/website-blocker-contribution.d.ts.map +1 -0
- package/dist/lifeops/registries/website-blocker-contribution.js +76 -0
- package/dist/lifeops/registries/website-blocker-contribution.js.map +1 -0
- package/dist/lifeops/registries/workflow-step-default-pack.d.ts +30 -0
- package/dist/lifeops/registries/workflow-step-default-pack.d.ts.map +1 -0
- package/dist/lifeops/registries/workflow-step-default-pack.js +315 -0
- package/dist/lifeops/registries/workflow-step-default-pack.js.map +1 -0
- package/dist/lifeops/registries/workflow-step-registry.d.ts +101 -0
- package/dist/lifeops/registries/workflow-step-registry.d.ts.map +1 -0
- package/dist/lifeops/registries/workflow-step-registry.js +56 -0
- package/dist/lifeops/registries/workflow-step-registry.js.map +1 -0
- package/dist/lifeops/relationships/extraction.d.ts +77 -0
- package/dist/lifeops/relationships/extraction.d.ts.map +1 -0
- package/dist/lifeops/relationships/extraction.js +146 -0
- package/dist/lifeops/relationships/extraction.js.map +1 -0
- package/dist/lifeops/relationships/index.d.ts +4 -0
- package/dist/lifeops/relationships/index.d.ts.map +1 -0
- package/dist/lifeops/relationships/index.js +19 -0
- package/dist/lifeops/relationships/index.js.map +1 -0
- package/dist/lifeops/relationships/mapping.d.ts +34 -0
- package/dist/lifeops/relationships/mapping.d.ts.map +1 -0
- package/dist/lifeops/relationships/mapping.js +87 -0
- package/dist/lifeops/relationships/mapping.js.map +1 -0
- package/dist/lifeops/relationships/store.d.ts +12 -0
- package/dist/lifeops/relationships/store.d.ts.map +1 -0
- package/dist/lifeops/relationships/store.js +5 -0
- package/dist/lifeops/relationships/store.js.map +1 -0
- package/dist/lifeops/relationships/types.d.ts +9 -0
- package/dist/lifeops/relationships/types.d.ts.map +1 -0
- package/dist/lifeops/relationships/types.js +11 -0
- package/dist/lifeops/relationships/types.js.map +1 -0
- package/dist/lifeops/relative-schedule-resolver.d.ts +13 -0
- package/dist/lifeops/relative-schedule-resolver.d.ts.map +1 -0
- package/dist/lifeops/relative-schedule-resolver.js +107 -0
- package/dist/lifeops/relative-schedule-resolver.js.map +1 -0
- package/dist/lifeops/relative-time.d.ts +15 -0
- package/dist/lifeops/relative-time.d.ts.map +1 -0
- package/dist/lifeops/relative-time.js +191 -0
- package/dist/lifeops/relative-time.js.map +1 -0
- package/dist/lifeops/repository.d.ts +638 -0
- package/dist/lifeops/repository.d.ts.map +1 -0
- package/dist/lifeops/repository.js +6289 -0
- package/dist/lifeops/repository.js.map +1 -0
- package/dist/lifeops/runtime-cache.d.ts +4 -0
- package/dist/lifeops/runtime-cache.d.ts.map +1 -0
- package/dist/lifeops/runtime-cache.js +7 -0
- package/dist/lifeops/runtime-cache.js.map +1 -0
- package/dist/lifeops/runtime-service-delegates.d.ts +236 -0
- package/dist/lifeops/runtime-service-delegates.d.ts.map +1 -0
- package/dist/lifeops/runtime-service-delegates.js +839 -0
- package/dist/lifeops/runtime-service-delegates.js.map +1 -0
- package/dist/lifeops/runtime.d.ts +13 -0
- package/dist/lifeops/runtime.d.ts.map +1 -0
- package/dist/lifeops/runtime.js +104 -0
- package/dist/lifeops/runtime.js.map +1 -0
- package/dist/lifeops/schedule-insight.d.ts +133 -0
- package/dist/lifeops/schedule-insight.d.ts.map +1 -0
- package/dist/lifeops/schedule-insight.js +726 -0
- package/dist/lifeops/schedule-insight.js.map +1 -0
- package/dist/lifeops/schedule-state.d.ts +39 -0
- package/dist/lifeops/schedule-state.d.ts.map +1 -0
- package/dist/lifeops/schedule-state.js +671 -0
- package/dist/lifeops/schedule-state.js.map +1 -0
- package/dist/lifeops/schedule-sync-config.d.ts +3 -0
- package/dist/lifeops/schedule-sync-config.d.ts.map +1 -0
- package/dist/lifeops/schedule-sync-config.js +23 -0
- package/dist/lifeops/schedule-sync-config.js.map +1 -0
- package/dist/lifeops/schedule-sync-contracts.d.ts +2 -0
- package/dist/lifeops/schedule-sync-contracts.d.ts.map +1 -0
- package/dist/lifeops/schedule-sync-contracts.js +2 -0
- package/dist/lifeops/schedule-sync-contracts.js.map +1 -0
- package/dist/lifeops/scheduled-task/index.d.ts +13 -0
- package/dist/lifeops/scheduled-task/index.d.ts.map +1 -0
- package/dist/lifeops/scheduled-task/index.js +14 -0
- package/dist/lifeops/scheduled-task/index.js.map +1 -0
- package/dist/lifeops/scheduled-task/runtime-wiring.d.ts +33 -0
- package/dist/lifeops/scheduled-task/runtime-wiring.d.ts.map +1 -0
- package/dist/lifeops/scheduled-task/runtime-wiring.js +334 -0
- package/dist/lifeops/scheduled-task/runtime-wiring.js.map +1 -0
- package/dist/lifeops/scheduled-task/scheduler.d.ts +28 -0
- package/dist/lifeops/scheduled-task/scheduler.d.ts.map +1 -0
- package/dist/lifeops/scheduled-task/scheduler.js +202 -0
- package/dist/lifeops/scheduled-task/scheduler.js.map +1 -0
- package/dist/lifeops/scheduled-task/service.d.ts +61 -0
- package/dist/lifeops/scheduled-task/service.d.ts.map +1 -0
- package/dist/lifeops/scheduled-task/service.js +64 -0
- package/dist/lifeops/scheduled-task/service.js.map +1 -0
- package/dist/lifeops/scheduler-task.d.ts +19 -0
- package/dist/lifeops/scheduler-task.d.ts.map +1 -0
- package/dist/lifeops/scheduler-task.js +201 -0
- package/dist/lifeops/scheduler-task.js.map +1 -0
- package/dist/lifeops/schema.d.ts +28068 -0
- package/dist/lifeops/schema.d.ts.map +1 -0
- package/dist/lifeops/schema.js +1689 -0
- package/dist/lifeops/schema.js.map +1 -0
- package/dist/lifeops/screen-context.d.ts +66 -0
- package/dist/lifeops/screen-context.d.ts.map +1 -0
- package/dist/lifeops/screen-context.js +347 -0
- package/dist/lifeops/screen-context.js.map +1 -0
- package/dist/lifeops/seed-routine-migration/migrator.d.ts +113 -0
- package/dist/lifeops/seed-routine-migration/migrator.d.ts.map +1 -0
- package/dist/lifeops/seed-routine-migration/migrator.js +142 -0
- package/dist/lifeops/seed-routine-migration/migrator.js.map +1 -0
- package/dist/lifeops/seed-routines.d.ts +24 -0
- package/dist/lifeops/seed-routines.d.ts.map +1 -0
- package/dist/lifeops/seed-routines.js +140 -0
- package/dist/lifeops/seed-routines.js.map +1 -0
- package/dist/lifeops/send-policy/contract.d.ts +81 -0
- package/dist/lifeops/send-policy/contract.d.ts.map +1 -0
- package/dist/lifeops/send-policy/contract.js +1 -0
- package/dist/lifeops/send-policy/contract.js.map +1 -0
- package/dist/lifeops/send-policy/index.d.ts +3 -0
- package/dist/lifeops/send-policy/index.d.ts.map +1 -0
- package/dist/lifeops/send-policy/index.js +13 -0
- package/dist/lifeops/send-policy/index.js.map +1 -0
- package/dist/lifeops/send-policy/registry.d.ts +7 -0
- package/dist/lifeops/send-policy/registry.d.ts.map +1 -0
- package/dist/lifeops/send-policy/registry.js +62 -0
- package/dist/lifeops/send-policy/registry.js.map +1 -0
- package/dist/lifeops/sensitive-request-delivery.d.ts +46 -0
- package/dist/lifeops/sensitive-request-delivery.d.ts.map +1 -0
- package/dist/lifeops/sensitive-request-delivery.js +103 -0
- package/dist/lifeops/sensitive-request-delivery.js.map +1 -0
- package/dist/lifeops/service-constants.d.ts +10 -0
- package/dist/lifeops/service-constants.d.ts.map +1 -0
- package/dist/lifeops/service-constants.js +129 -0
- package/dist/lifeops/service-constants.js.map +1 -0
- package/dist/lifeops/service-helpers-browser.d.ts +41 -0
- package/dist/lifeops/service-helpers-browser.d.ts.map +1 -0
- package/dist/lifeops/service-helpers-browser.js +290 -0
- package/dist/lifeops/service-helpers-browser.js.map +1 -0
- package/dist/lifeops/service-helpers-misc.d.ts +68 -0
- package/dist/lifeops/service-helpers-misc.d.ts.map +1 -0
- package/dist/lifeops/service-helpers-misc.js +531 -0
- package/dist/lifeops/service-helpers-misc.js.map +1 -0
- package/dist/lifeops/service-helpers-occurrence.d.ts +23 -0
- package/dist/lifeops/service-helpers-occurrence.d.ts.map +1 -0
- package/dist/lifeops/service-helpers-occurrence.js +257 -0
- package/dist/lifeops/service-helpers-occurrence.js.map +1 -0
- package/dist/lifeops/service-helpers-reminder.d.ts +260 -0
- package/dist/lifeops/service-helpers-reminder.d.ts.map +1 -0
- package/dist/lifeops/service-helpers-reminder.js +1186 -0
- package/dist/lifeops/service-helpers-reminder.js.map +1 -0
- package/dist/lifeops/service-mixin-browser.d.ts +31 -0
- package/dist/lifeops/service-mixin-browser.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-browser.js +975 -0
- package/dist/lifeops/service-mixin-browser.js.map +1 -0
- package/dist/lifeops/service-mixin-calendar.d.ts +53 -0
- package/dist/lifeops/service-mixin-calendar.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-calendar.js +68 -0
- package/dist/lifeops/service-mixin-calendar.js.map +1 -0
- package/dist/lifeops/service-mixin-core.d.ts +51 -0
- package/dist/lifeops/service-mixin-core.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-core.js +500 -0
- package/dist/lifeops/service-mixin-core.js.map +1 -0
- package/dist/lifeops/service-mixin-definitions.d.ts +14 -0
- package/dist/lifeops/service-mixin-definitions.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-definitions.js +470 -0
- package/dist/lifeops/service-mixin-definitions.js.map +1 -0
- package/dist/lifeops/service-mixin-discord.d.ts +49 -0
- package/dist/lifeops/service-mixin-discord.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-discord.js +1253 -0
- package/dist/lifeops/service-mixin-discord.js.map +1 -0
- package/dist/lifeops/service-mixin-drive.d.ts +96 -0
- package/dist/lifeops/service-mixin-drive.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-drive.js +213 -0
- package/dist/lifeops/service-mixin-drive.js.map +1 -0
- package/dist/lifeops/service-mixin-email-unsubscribe.d.ts +23 -0
- package/dist/lifeops/service-mixin-email-unsubscribe.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-email-unsubscribe.js +27 -0
- package/dist/lifeops/service-mixin-email-unsubscribe.js.map +1 -0
- package/dist/lifeops/service-mixin-gmail.d.ts +43 -0
- package/dist/lifeops/service-mixin-gmail.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-gmail.js +727 -0
- package/dist/lifeops/service-mixin-gmail.js.map +1 -0
- package/dist/lifeops/service-mixin-goals.d.ts +22 -0
- package/dist/lifeops/service-mixin-goals.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-goals.js +884 -0
- package/dist/lifeops/service-mixin-goals.js.map +1 -0
- package/dist/lifeops/service-mixin-google.d.ts +13 -0
- package/dist/lifeops/service-mixin-google.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-google.js +398 -0
- package/dist/lifeops/service-mixin-google.js.map +1 -0
- package/dist/lifeops/service-mixin-health.d.ts +27 -0
- package/dist/lifeops/service-mixin-health.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-health.js +670 -0
- package/dist/lifeops/service-mixin-health.js.map +1 -0
- package/dist/lifeops/service-mixin-imessage.d.ts +106 -0
- package/dist/lifeops/service-mixin-imessage.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-imessage.js +303 -0
- package/dist/lifeops/service-mixin-imessage.js.map +1 -0
- package/dist/lifeops/service-mixin-inbox.d.ts +55 -0
- package/dist/lifeops/service-mixin-inbox.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-inbox.js +597 -0
- package/dist/lifeops/service-mixin-inbox.js.map +1 -0
- package/dist/lifeops/service-mixin-relationships.d.ts +65 -0
- package/dist/lifeops/service-mixin-relationships.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-relationships.js +150 -0
- package/dist/lifeops/service-mixin-relationships.js.map +1 -0
- package/dist/lifeops/service-mixin-reminders.d.ts +62 -0
- package/dist/lifeops/service-mixin-reminders.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-reminders.js +4003 -0
- package/dist/lifeops/service-mixin-reminders.js.map +1 -0
- package/dist/lifeops/service-mixin-scheduling.d.ts +53 -0
- package/dist/lifeops/service-mixin-scheduling.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-scheduling.js +405 -0
- package/dist/lifeops/service-mixin-scheduling.js.map +1 -0
- package/dist/lifeops/service-mixin-screentime.d.ts +71 -0
- package/dist/lifeops/service-mixin-screentime.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-screentime.js +530 -0
- package/dist/lifeops/service-mixin-screentime.js.map +1 -0
- package/dist/lifeops/service-mixin-signal.d.ts +74 -0
- package/dist/lifeops/service-mixin-signal.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-signal.js +214 -0
- package/dist/lifeops/service-mixin-signal.js.map +1 -0
- package/dist/lifeops/service-mixin-sleep.d.ts +68 -0
- package/dist/lifeops/service-mixin-sleep.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-sleep.js +43 -0
- package/dist/lifeops/service-mixin-sleep.js.map +1 -0
- package/dist/lifeops/service-mixin-status.d.ts +31 -0
- package/dist/lifeops/service-mixin-status.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-status.js +373 -0
- package/dist/lifeops/service-mixin-status.js.map +1 -0
- package/dist/lifeops/service-mixin-subscriptions.d.ts +101 -0
- package/dist/lifeops/service-mixin-subscriptions.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-subscriptions.js +50 -0
- package/dist/lifeops/service-mixin-subscriptions.js.map +1 -0
- package/dist/lifeops/service-mixin-telegram.d.ts +104 -0
- package/dist/lifeops/service-mixin-telegram.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-telegram.js +280 -0
- package/dist/lifeops/service-mixin-telegram.js.map +1 -0
- package/dist/lifeops/service-mixin-travel.d.ts +66 -0
- package/dist/lifeops/service-mixin-travel.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-travel.js +275 -0
- package/dist/lifeops/service-mixin-travel.js.map +1 -0
- package/dist/lifeops/service-mixin-whatsapp.d.ts +96 -0
- package/dist/lifeops/service-mixin-whatsapp.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-whatsapp.js +186 -0
- package/dist/lifeops/service-mixin-whatsapp.js.map +1 -0
- package/dist/lifeops/service-mixin-workflows.d.ts +15 -0
- package/dist/lifeops/service-mixin-workflows.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-workflows.js +710 -0
- package/dist/lifeops/service-mixin-workflows.js.map +1 -0
- package/dist/lifeops/service-mixin-x-read.d.ts +31 -0
- package/dist/lifeops/service-mixin-x-read.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-x-read.js +267 -0
- package/dist/lifeops/service-mixin-x-read.js.map +1 -0
- package/dist/lifeops/service-mixin-x.d.ts +66 -0
- package/dist/lifeops/service-mixin-x.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-x.js +501 -0
- package/dist/lifeops/service-mixin-x.js.map +1 -0
- package/dist/lifeops/service-normalize-connector.d.ts +19 -0
- package/dist/lifeops/service-normalize-connector.d.ts.map +1 -0
- package/dist/lifeops/service-normalize-connector.js +816 -0
- package/dist/lifeops/service-normalize-connector.js.map +1 -0
- package/dist/lifeops/service-normalize-gmail.d.ts +11 -0
- package/dist/lifeops/service-normalize-gmail.d.ts.map +1 -0
- package/dist/lifeops/service-normalize-gmail.js +85 -0
- package/dist/lifeops/service-normalize-gmail.js.map +1 -0
- package/dist/lifeops/service-normalize-task.d.ts +9 -0
- package/dist/lifeops/service-normalize-task.d.ts.map +1 -0
- package/dist/lifeops/service-normalize-task.js +567 -0
- package/dist/lifeops/service-normalize-task.js.map +1 -0
- package/dist/lifeops/service-normalize.d.ts +9 -0
- package/dist/lifeops/service-normalize.d.ts.map +1 -0
- package/dist/lifeops/service-normalize.js +53 -0
- package/dist/lifeops/service-normalize.js.map +1 -0
- package/dist/lifeops/service-types.d.ts +75 -0
- package/dist/lifeops/service-types.d.ts.map +1 -0
- package/dist/lifeops/service-types.js +5 -0
- package/dist/lifeops/service-types.js.map +1 -0
- package/dist/lifeops/service.d.ts +482 -0
- package/dist/lifeops/service.d.ts.map +1 -0
- package/dist/lifeops/service.js +62 -0
- package/dist/lifeops/service.js.map +1 -0
- package/dist/lifeops/signal-runtime-config.d.ts +13 -0
- package/dist/lifeops/signal-runtime-config.d.ts.map +1 -0
- package/dist/lifeops/signal-runtime-config.js +44 -0
- package/dist/lifeops/signal-runtime-config.js.map +1 -0
- package/dist/lifeops/signals/bus.d.ts +78 -0
- package/dist/lifeops/signals/bus.d.ts.map +1 -0
- package/dist/lifeops/signals/bus.js +117 -0
- package/dist/lifeops/signals/bus.js.map +1 -0
- package/dist/lifeops/sql.d.ts +65 -0
- package/dist/lifeops/sql.d.ts.map +1 -0
- package/dist/lifeops/sql.js +182 -0
- package/dist/lifeops/sql.js.map +1 -0
- package/dist/lifeops/stretch-decider.d.ts +73 -0
- package/dist/lifeops/stretch-decider.d.ts.map +1 -0
- package/dist/lifeops/stretch-decider.js +49 -0
- package/dist/lifeops/stretch-decider.js.map +1 -0
- package/dist/lifeops/telemetry-mapping.d.ts +14 -0
- package/dist/lifeops/telemetry-mapping.d.ts.map +1 -0
- package/dist/lifeops/telemetry-mapping.js +115 -0
- package/dist/lifeops/telemetry-mapping.js.map +1 -0
- package/dist/lifeops/telemetry-retention.d.ts +21 -0
- package/dist/lifeops/telemetry-retention.d.ts.map +1 -0
- package/dist/lifeops/telemetry-retention.js +13 -0
- package/dist/lifeops/telemetry-retention.js.map +1 -0
- package/dist/lifeops/time/timezone.d.ts +4 -0
- package/dist/lifeops/time/timezone.d.ts.map +1 -0
- package/dist/lifeops/time/timezone.js +154 -0
- package/dist/lifeops/time/timezone.js.map +1 -0
- package/dist/lifeops/time-util.d.ts +10 -0
- package/dist/lifeops/time-util.d.ts.map +1 -0
- package/dist/lifeops/time-util.js +14 -0
- package/dist/lifeops/time-util.js.map +1 -0
- package/dist/lifeops/time.d.ts +17 -0
- package/dist/lifeops/time.d.ts.map +1 -0
- package/dist/lifeops/time.js +152 -0
- package/dist/lifeops/time.js.map +1 -0
- package/dist/lifeops/travel-booking.types.d.ts +46 -0
- package/dist/lifeops/travel-booking.types.d.ts.map +1 -0
- package/dist/lifeops/travel-booking.types.js +1 -0
- package/dist/lifeops/travel-booking.types.js.map +1 -0
- package/dist/lifeops/triggers/schedule-once.d.ts +19 -0
- package/dist/lifeops/triggers/schedule-once.d.ts.map +1 -0
- package/dist/lifeops/triggers/schedule-once.js +99 -0
- package/dist/lifeops/triggers/schedule-once.js.map +1 -0
- package/dist/lifeops/validate/coding-task-request.d.ts +18 -0
- package/dist/lifeops/validate/coding-task-request.d.ts.map +1 -0
- package/dist/lifeops/validate/coding-task-request.js +16 -0
- package/dist/lifeops/validate/coding-task-request.js.map +1 -0
- package/dist/lifeops/voice/grounded-reply.d.ts +41 -0
- package/dist/lifeops/voice/grounded-reply.d.ts.map +1 -0
- package/dist/lifeops/voice/grounded-reply.js +24 -0
- package/dist/lifeops/voice/grounded-reply.js.map +1 -0
- package/dist/lifeops/voice-affect.d.ts +79 -0
- package/dist/lifeops/voice-affect.d.ts.map +1 -0
- package/dist/lifeops/voice-affect.js +253 -0
- package/dist/lifeops/voice-affect.js.map +1 -0
- package/dist/lifeops/wave1-types.d.ts +125 -0
- package/dist/lifeops/wave1-types.d.ts.map +1 -0
- package/dist/lifeops/wave1-types.js +1 -0
- package/dist/lifeops/wave1-types.js.map +1 -0
- package/dist/lifeops/work-threads/field-evaluator-thread-ops.d.ts +33 -0
- package/dist/lifeops/work-threads/field-evaluator-thread-ops.d.ts.map +1 -0
- package/dist/lifeops/work-threads/field-evaluator-thread-ops.js +226 -0
- package/dist/lifeops/work-threads/field-evaluator-thread-ops.js.map +1 -0
- package/dist/lifeops/work-threads/index.d.ts +3 -0
- package/dist/lifeops/work-threads/index.d.ts.map +1 -0
- package/dist/lifeops/work-threads/index.js +7 -0
- package/dist/lifeops/work-threads/index.js.map +1 -0
- package/dist/lifeops/work-threads/store.d.ts +91 -0
- package/dist/lifeops/work-threads/store.d.ts.map +1 -0
- package/dist/lifeops/work-threads/store.js +245 -0
- package/dist/lifeops/work-threads/store.js.map +1 -0
- package/dist/lifeops/work-threads/types.d.ts +58 -0
- package/dist/lifeops/work-threads/types.d.ts.map +1 -0
- package/dist/lifeops/work-threads/types.js +1 -0
- package/dist/lifeops/work-threads/types.js.map +1 -0
- package/dist/platform/host.d.ts +16 -0
- package/dist/platform/host.d.ts.map +1 -0
- package/dist/platform/host.js +22 -0
- package/dist/platform/host.js.map +1 -0
- package/dist/platform/index.d.ts +3 -0
- package/dist/platform/index.d.ts.map +1 -0
- package/dist/platform/index.js +3 -0
- package/dist/platform/index.js.map +1 -0
- package/dist/platform/lifeops-github.d.ts +15 -0
- package/dist/platform/lifeops-github.d.ts.map +1 -0
- package/dist/platform/lifeops-github.js +146 -0
- package/dist/platform/lifeops-github.js.map +1 -0
- package/dist/plugin.d.ts +106 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +989 -0
- package/dist/plugin.js.map +1 -0
- package/dist/provider.d.ts +4 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/provider.js +108 -0
- package/dist/provider.js.map +1 -0
- package/dist/providers/activity-profile.d.ts +3 -0
- package/dist/providers/activity-profile.d.ts.map +1 -0
- package/dist/providers/activity-profile.js +140 -0
- package/dist/providers/activity-profile.js.map +1 -0
- package/dist/providers/cross-channel-context.d.ts +29 -0
- package/dist/providers/cross-channel-context.d.ts.map +1 -0
- package/dist/providers/cross-channel-context.js +206 -0
- package/dist/providers/cross-channel-context.js.map +1 -0
- package/dist/providers/first-run.d.ts +22 -0
- package/dist/providers/first-run.d.ts.map +1 -0
- package/dist/providers/first-run.js +93 -0
- package/dist/providers/first-run.js.map +1 -0
- package/dist/providers/health.d.ts +2 -0
- package/dist/providers/health.d.ts.map +1 -0
- package/dist/providers/health.js +14 -0
- package/dist/providers/health.js.map +1 -0
- package/dist/providers/inbox-triage.d.ts +3 -0
- package/dist/providers/inbox-triage.d.ts.map +1 -0
- package/dist/providers/inbox-triage.js +134 -0
- package/dist/providers/inbox-triage.js.map +1 -0
- package/dist/providers/lifeops.d.ts +3 -0
- package/dist/providers/lifeops.d.ts.map +1 -0
- package/dist/providers/lifeops.js +548 -0
- package/dist/providers/lifeops.js.map +1 -0
- package/dist/providers/pending-prompts.d.ts +38 -0
- package/dist/providers/pending-prompts.d.ts.map +1 -0
- package/dist/providers/pending-prompts.js +81 -0
- package/dist/providers/pending-prompts.js.map +1 -0
- package/dist/providers/recent-task-states.d.ts +52 -0
- package/dist/providers/recent-task-states.d.ts.map +1 -0
- package/dist/providers/recent-task-states.js +166 -0
- package/dist/providers/recent-task-states.js.map +1 -0
- package/dist/providers/room-policy.d.ts +16 -0
- package/dist/providers/room-policy.d.ts.map +1 -0
- package/dist/providers/room-policy.js +71 -0
- package/dist/providers/room-policy.js.map +1 -0
- package/dist/providers/work-threads.d.ts +3 -0
- package/dist/providers/work-threads.d.ts.map +1 -0
- package/dist/providers/work-threads.js +97 -0
- package/dist/providers/work-threads.js.map +1 -0
- package/dist/public.d.ts +3 -0
- package/dist/public.d.ts.map +1 -0
- package/dist/public.js +17 -0
- package/dist/public.js.map +1 -0
- package/dist/routes/cloud-features-routes.d.ts +9 -0
- package/dist/routes/cloud-features-routes.d.ts.map +1 -0
- package/dist/routes/cloud-features-routes.js +164 -0
- package/dist/routes/cloud-features-routes.js.map +1 -0
- package/dist/routes/entities.d.ts +14 -0
- package/dist/routes/entities.d.ts.map +1 -0
- package/dist/routes/entities.js +203 -0
- package/dist/routes/entities.js.map +1 -0
- package/dist/routes/lifeops-routes.d.ts +20 -0
- package/dist/routes/lifeops-routes.d.ts.map +1 -0
- package/dist/routes/lifeops-routes.js +2337 -0
- package/dist/routes/lifeops-routes.js.map +1 -0
- package/dist/routes/plugin.d.ts +9 -0
- package/dist/routes/plugin.d.ts.map +1 -0
- package/dist/routes/plugin.js +568 -0
- package/dist/routes/plugin.js.map +1 -0
- package/dist/routes/relationships.d.ts +13 -0
- package/dist/routes/relationships.d.ts.map +1 -0
- package/dist/routes/relationships.js +195 -0
- package/dist/routes/relationships.js.map +1 -0
- package/dist/routes/scheduled-tasks.d.ts +102 -0
- package/dist/routes/scheduled-tasks.d.ts.map +1 -0
- package/dist/routes/scheduled-tasks.js +322 -0
- package/dist/routes/scheduled-tasks.js.map +1 -0
- package/dist/routes/sleep-routes.d.ts +3 -0
- package/dist/routes/sleep-routes.d.ts.map +1 -0
- package/dist/routes/sleep-routes.js +33 -0
- package/dist/routes/sleep-routes.js.map +1 -0
- package/dist/routes/travel-provider-relay-routes.d.ts +2 -0
- package/dist/routes/travel-provider-relay-routes.d.ts.map +1 -0
- package/dist/routes/travel-provider-relay-routes.js +7 -0
- package/dist/routes/travel-provider-relay-routes.js.map +1 -0
- package/dist/routes/website-blocker-routes.d.ts +6 -0
- package/dist/routes/website-blocker-routes.d.ts.map +1 -0
- package/dist/routes/website-blocker-routes.js +218 -0
- package/dist/routes/website-blocker-routes.js.map +1 -0
- package/dist/security/action-confirmation.d.ts +12 -0
- package/dist/security/action-confirmation.d.ts.map +1 -0
- package/dist/security/action-confirmation.js +36 -0
- package/dist/security/action-confirmation.js.map +1 -0
- package/dist/service.d.ts +34 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/service.js +111 -0
- package/dist/service.js.map +1 -0
- package/dist/travel-time/calendar-create.d.ts +17 -0
- package/dist/travel-time/calendar-create.d.ts.map +1 -0
- package/dist/travel-time/calendar-create.js +28 -0
- package/dist/travel-time/calendar-create.js.map +1 -0
- package/dist/travel-time/service.d.ts +114 -0
- package/dist/travel-time/service.d.ts.map +1 -0
- package/dist/travel-time/service.js +209 -0
- package/dist/travel-time/service.js.map +1 -0
- package/dist/types/app-blocker-settings-card.d.ts +2 -0
- package/dist/types/app-blocker-settings-card.d.ts.map +1 -0
- package/dist/types/app-blocker-settings-card.js +1 -0
- package/dist/types/app-blocker-settings-card.js.map +1 -0
- package/dist/types/briefing.d.ts +59 -0
- package/dist/types/briefing.d.ts.map +1 -0
- package/dist/types/briefing.js +1 -0
- package/dist/types/briefing.js.map +1 -0
- package/dist/types/document-request.d.ts +41 -0
- package/dist/types/document-request.d.ts.map +1 -0
- package/dist/types/document-request.js +1 -0
- package/dist/types/document-request.js.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/website-blocker-settings-card.d.ts +2 -0
- package/dist/types/website-blocker-settings-card.d.ts.map +1 -0
- package/dist/types/website-blocker-settings-card.js +1 -0
- package/dist/types/website-blocker-settings-card.js.map +1 -0
- package/dist/ui.d.ts +13 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +25 -0
- package/dist/ui.js.map +1 -0
- package/dist/utils/format-duration.d.ts +2 -0
- package/dist/utils/format-duration.d.ts.map +1 -0
- package/dist/utils/format-duration.js +13 -0
- package/dist/utils/format-duration.js.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/lifeops-url.d.ts +3 -0
- package/dist/utils/lifeops-url.d.ts.map +1 -0
- package/dist/utils/lifeops-url.js +28 -0
- package/dist/utils/lifeops-url.js.map +1 -0
- package/dist/website-blocker/chat-integration/block-activator.d.ts +32 -0
- package/dist/website-blocker/chat-integration/block-activator.d.ts.map +1 -0
- package/dist/website-blocker/chat-integration/block-activator.js +30 -0
- package/dist/website-blocker/chat-integration/block-activator.js.map +1 -0
- package/dist/website-blocker/chat-integration/block-rule-reconciler.d.ts +7 -0
- package/dist/website-blocker/chat-integration/block-rule-reconciler.d.ts.map +1 -0
- package/dist/website-blocker/chat-integration/block-rule-reconciler.js +115 -0
- package/dist/website-blocker/chat-integration/block-rule-reconciler.js.map +1 -0
- package/dist/website-blocker/chat-integration/block-rule-schema.d.ts +39 -0
- package/dist/website-blocker/chat-integration/block-rule-schema.d.ts.map +1 -0
- package/dist/website-blocker/chat-integration/block-rule-schema.js +133 -0
- package/dist/website-blocker/chat-integration/block-rule-schema.js.map +1 -0
- package/dist/website-blocker/chat-integration/block-rule-service.d.ts +21 -0
- package/dist/website-blocker/chat-integration/block-rule-service.d.ts.map +1 -0
- package/dist/website-blocker/chat-integration/block-rule-service.js +230 -0
- package/dist/website-blocker/chat-integration/block-rule-service.js.map +1 -0
- package/dist/website-blocker/chat-integration/harsh-mode-check.d.ts +13 -0
- package/dist/website-blocker/chat-integration/harsh-mode-check.d.ts.map +1 -0
- package/dist/website-blocker/chat-integration/harsh-mode-check.js +22 -0
- package/dist/website-blocker/chat-integration/harsh-mode-check.js.map +1 -0
- package/dist/website-blocker/chat-integration/index.d.ts +5 -0
- package/dist/website-blocker/chat-integration/index.d.ts.map +1 -0
- package/dist/website-blocker/chat-integration/index.js +26 -0
- package/dist/website-blocker/chat-integration/index.js.map +1 -0
- package/dist/website-blocker/proactive-block-bridge.d.ts +75 -0
- package/dist/website-blocker/proactive-block-bridge.d.ts.map +1 -0
- package/dist/website-blocker/proactive-block-bridge.js +154 -0
- package/dist/website-blocker/proactive-block-bridge.js.map +1 -0
- package/dist/website-blocker/public.d.ts +12 -0
- package/dist/website-blocker/public.d.ts.map +1 -0
- package/dist/website-blocker/public.js +51 -0
- package/dist/website-blocker/public.js.map +1 -0
- package/package.json +28 -28
|
@@ -0,0 +1,530 @@
|
|
|
1
|
+
import crypto from "node:crypto";
|
|
2
|
+
import {
|
|
3
|
+
browserBridgeCompanionIsRecent,
|
|
4
|
+
browserBridgePermissionsReady,
|
|
5
|
+
isBrowserBridgePaused
|
|
6
|
+
} from "@elizaos/plugin-browser";
|
|
7
|
+
import {
|
|
8
|
+
androidUsageRowsFromSignals,
|
|
9
|
+
buildScreenTimeBreakdown,
|
|
10
|
+
buildScreenTimeMetrics,
|
|
11
|
+
buildScreenTimeSummary,
|
|
12
|
+
buildScreenTimeVisibleBuckets,
|
|
13
|
+
buildScreenTimeWeeklyAverageItems,
|
|
14
|
+
computePriorScreenTimeRange,
|
|
15
|
+
computeScreenTimeRange,
|
|
16
|
+
enumerateScreenTimeHistoryDays,
|
|
17
|
+
isSocialCategory,
|
|
18
|
+
isSystemInactivityApp,
|
|
19
|
+
mergeScreenTimeAggregateRows,
|
|
20
|
+
mobileScreenTimeDataSourceFromSignals,
|
|
21
|
+
screenTimeBucketList,
|
|
22
|
+
screenTimeDeviceLabel,
|
|
23
|
+
screenTimeRangeLabel,
|
|
24
|
+
screenTimeSourceLabel
|
|
25
|
+
} from "@elizaos/plugin-health";
|
|
26
|
+
import { getActivityReportBetween } from "../activity-profile/activity-tracker-reporting.js";
|
|
27
|
+
import { fail } from "./service-normalize.js";
|
|
28
|
+
function isoNow() {
|
|
29
|
+
return (/* @__PURE__ */ new Date()).toISOString();
|
|
30
|
+
}
|
|
31
|
+
function computeDurationSeconds(startAt, endAt, provided) {
|
|
32
|
+
if (typeof provided === "number" && Number.isFinite(provided) && provided >= 0) {
|
|
33
|
+
return Math.floor(provided);
|
|
34
|
+
}
|
|
35
|
+
if (!endAt) return 0;
|
|
36
|
+
const startMs = Date.parse(startAt);
|
|
37
|
+
const endMs = Date.parse(endAt);
|
|
38
|
+
if (!Number.isFinite(startMs) || !Number.isFinite(endMs)) return 0;
|
|
39
|
+
const delta = Math.max(0, Math.floor((endMs - startMs) / 1e3));
|
|
40
|
+
return delta;
|
|
41
|
+
}
|
|
42
|
+
function resolveUtcDateWindow(date) {
|
|
43
|
+
const startIso = `${date}T00:00:00.000Z`;
|
|
44
|
+
const endIso = `${date}T23:59:59.999Z`;
|
|
45
|
+
const startMs = Date.parse(startIso);
|
|
46
|
+
const endMs = Date.parse(endIso);
|
|
47
|
+
if (!Number.isFinite(startMs) || !Number.isFinite(endMs) || endMs < startMs) {
|
|
48
|
+
fail(400, "date must be a valid YYYY-MM-DD string");
|
|
49
|
+
}
|
|
50
|
+
return { startIso, endIso, startMs, endMs };
|
|
51
|
+
}
|
|
52
|
+
function buildWindowBounds(since, until) {
|
|
53
|
+
const sinceMs = Date.parse(since);
|
|
54
|
+
const untilMs = Date.parse(until);
|
|
55
|
+
if (!Number.isFinite(sinceMs) || !Number.isFinite(untilMs) || untilMs <= sinceMs) {
|
|
56
|
+
fail(400, "since and until must be valid ISO strings with until > since");
|
|
57
|
+
}
|
|
58
|
+
return { sinceMs, untilMs };
|
|
59
|
+
}
|
|
60
|
+
function normalizeIdentifierFilter(identifier) {
|
|
61
|
+
const normalized = identifier?.trim();
|
|
62
|
+
return normalized && normalized.length > 0 ? normalized : null;
|
|
63
|
+
}
|
|
64
|
+
function filterRowsByIdentifier(rows, identifier) {
|
|
65
|
+
const normalized = normalizeIdentifierFilter(identifier);
|
|
66
|
+
if (!normalized) {
|
|
67
|
+
return rows;
|
|
68
|
+
}
|
|
69
|
+
return rows.filter((row) => row.identifier === normalized);
|
|
70
|
+
}
|
|
71
|
+
function clipSessionDurationSeconds(session, windowStartMs, windowEndMs) {
|
|
72
|
+
const sessionStartMs = Date.parse(session.startAt);
|
|
73
|
+
if (!Number.isFinite(sessionStartMs)) {
|
|
74
|
+
return 0;
|
|
75
|
+
}
|
|
76
|
+
const endBoundMs = Math.min(windowEndMs, Date.now());
|
|
77
|
+
const sessionEndMs = session.endAt && Number.isFinite(Date.parse(session.endAt)) ? Date.parse(session.endAt) : endBoundMs;
|
|
78
|
+
const clippedStart = Math.max(sessionStartMs, windowStartMs);
|
|
79
|
+
const clippedEnd = Math.min(sessionEndMs, endBoundMs);
|
|
80
|
+
if (clippedEnd <= clippedStart) {
|
|
81
|
+
return 0;
|
|
82
|
+
}
|
|
83
|
+
return Math.max(0, Math.floor((clippedEnd - clippedStart) / 1e3));
|
|
84
|
+
}
|
|
85
|
+
function aggregateWebsiteSessions(sessions, windowStartMs, windowEndMs) {
|
|
86
|
+
const groups = /* @__PURE__ */ new Map();
|
|
87
|
+
for (const session of sessions) {
|
|
88
|
+
const clippedSeconds = clipSessionDurationSeconds(
|
|
89
|
+
session,
|
|
90
|
+
windowStartMs,
|
|
91
|
+
windowEndMs
|
|
92
|
+
);
|
|
93
|
+
if (clippedSeconds <= 0) {
|
|
94
|
+
continue;
|
|
95
|
+
}
|
|
96
|
+
const key = `${session.source}::${session.identifier}`;
|
|
97
|
+
const existing = groups.get(key);
|
|
98
|
+
if (existing) {
|
|
99
|
+
existing.totalSeconds += clippedSeconds;
|
|
100
|
+
existing.sessionCount += 1;
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
groups.set(key, {
|
|
104
|
+
source: session.source,
|
|
105
|
+
identifier: session.identifier,
|
|
106
|
+
displayName: session.displayName || session.identifier,
|
|
107
|
+
totalSeconds: clippedSeconds,
|
|
108
|
+
sessionCount: 1,
|
|
109
|
+
metadata: session.metadata
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
return [...groups.values()].sort((left, right) => {
|
|
113
|
+
if (right.totalSeconds !== left.totalSeconds) {
|
|
114
|
+
return right.totalSeconds - left.totalSeconds;
|
|
115
|
+
}
|
|
116
|
+
return left.displayName.localeCompare(right.displayName);
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
function isSystemInactivitySession(session) {
|
|
120
|
+
return session.source === "app" && isSystemInactivityApp({
|
|
121
|
+
bundleId: session.identifier,
|
|
122
|
+
appName: session.displayName,
|
|
123
|
+
platform: typeof session.metadata.platform === "string" ? session.metadata.platform : null
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
function toDailyRows(agentId, date, rows) {
|
|
127
|
+
const now = isoNow();
|
|
128
|
+
return mergeScreenTimeAggregateRows(rows).map((row) => ({
|
|
129
|
+
id: `screen-time:${agentId}:${date}:${row.source}:${row.identifier}`,
|
|
130
|
+
agentId,
|
|
131
|
+
source: row.source,
|
|
132
|
+
identifier: row.identifier,
|
|
133
|
+
date,
|
|
134
|
+
totalSeconds: row.totalSeconds,
|
|
135
|
+
sessionCount: row.sessionCount,
|
|
136
|
+
metadata: {
|
|
137
|
+
displayName: row.displayName,
|
|
138
|
+
...row.metadata ?? {}
|
|
139
|
+
},
|
|
140
|
+
createdAt: now,
|
|
141
|
+
updatedAt: now
|
|
142
|
+
}));
|
|
143
|
+
}
|
|
144
|
+
function addBucket(buckets, key, label, totalSeconds) {
|
|
145
|
+
if (!key || totalSeconds <= 0) return;
|
|
146
|
+
const existing = buckets.get(key);
|
|
147
|
+
if (existing) {
|
|
148
|
+
existing.totalSeconds += totalSeconds;
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
buckets.set(key, {
|
|
152
|
+
key,
|
|
153
|
+
label: label || key,
|
|
154
|
+
totalSeconds
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
function inWindow(iso, sinceMs, untilMs) {
|
|
158
|
+
if (!iso) return false;
|
|
159
|
+
const parsed = Date.parse(iso);
|
|
160
|
+
return Number.isFinite(parsed) && parsed >= sinceMs && parsed <= untilMs;
|
|
161
|
+
}
|
|
162
|
+
function browserTrackingDataSourceState(settings, companions) {
|
|
163
|
+
if (!settings.enabled || settings.trackingMode === "off") {
|
|
164
|
+
return "unwired";
|
|
165
|
+
}
|
|
166
|
+
if (isBrowserBridgePaused(settings)) {
|
|
167
|
+
return "partial";
|
|
168
|
+
}
|
|
169
|
+
if (companions.length === 0) {
|
|
170
|
+
return "unwired";
|
|
171
|
+
}
|
|
172
|
+
const connectedCompanions = companions.filter(
|
|
173
|
+
(companion) => companion.connectionState === "connected"
|
|
174
|
+
);
|
|
175
|
+
if (connectedCompanions.length === 0) {
|
|
176
|
+
return companions.some(
|
|
177
|
+
(companion) => companion.connectionState === "permission_blocked"
|
|
178
|
+
) ? "partial" : "unwired";
|
|
179
|
+
}
|
|
180
|
+
const recentConnectedCompanions = connectedCompanions.filter(
|
|
181
|
+
(companion) => browserBridgeCompanionIsRecent(companion)
|
|
182
|
+
);
|
|
183
|
+
if (recentConnectedCompanions.length === 0) {
|
|
184
|
+
return "partial";
|
|
185
|
+
}
|
|
186
|
+
return recentConnectedCompanions.some(
|
|
187
|
+
(companion) => browserBridgePermissionsReady(settings, companion.permissions)
|
|
188
|
+
) ? "live" : "partial";
|
|
189
|
+
}
|
|
190
|
+
function withScreenTime(Base) {
|
|
191
|
+
const ScreenTimeBase = Base;
|
|
192
|
+
class LifeOpsScreenTimeServiceMixin extends ScreenTimeBase {
|
|
193
|
+
async recordScreenTimeEvent(event) {
|
|
194
|
+
if (event.source !== "app" && event.source !== "website") {
|
|
195
|
+
fail(400, "source must be 'app' or 'website'");
|
|
196
|
+
}
|
|
197
|
+
if (!event.identifier || typeof event.identifier !== "string") {
|
|
198
|
+
fail(400, "identifier is required");
|
|
199
|
+
}
|
|
200
|
+
if (!event.startAt || typeof event.startAt !== "string") {
|
|
201
|
+
fail(400, "startAt is required");
|
|
202
|
+
}
|
|
203
|
+
const now = isoNow();
|
|
204
|
+
const endAt = event.endAt ?? null;
|
|
205
|
+
const isActive = endAt === null;
|
|
206
|
+
const durationSeconds = computeDurationSeconds(
|
|
207
|
+
event.startAt,
|
|
208
|
+
endAt,
|
|
209
|
+
event.durationSeconds
|
|
210
|
+
);
|
|
211
|
+
const session = {
|
|
212
|
+
id: crypto.randomUUID(),
|
|
213
|
+
agentId: this.agentId(),
|
|
214
|
+
source: event.source,
|
|
215
|
+
identifier: event.identifier,
|
|
216
|
+
displayName: event.displayName || event.identifier,
|
|
217
|
+
startAt: event.startAt,
|
|
218
|
+
endAt,
|
|
219
|
+
durationSeconds,
|
|
220
|
+
isActive,
|
|
221
|
+
metadata: event.metadata ?? {},
|
|
222
|
+
createdAt: now,
|
|
223
|
+
updatedAt: now
|
|
224
|
+
};
|
|
225
|
+
await this.repository.upsertScreenTimeSession(session);
|
|
226
|
+
return session;
|
|
227
|
+
}
|
|
228
|
+
async finishActiveScreenTimeSession(id, endAt, durationSeconds) {
|
|
229
|
+
await this.repository.finishScreenTimeSession(
|
|
230
|
+
this.agentId(),
|
|
231
|
+
id,
|
|
232
|
+
endAt,
|
|
233
|
+
Math.max(0, Math.floor(durationSeconds))
|
|
234
|
+
);
|
|
235
|
+
}
|
|
236
|
+
async collectScreenTimeRows(opts) {
|
|
237
|
+
const { sinceMs, untilMs } = buildWindowBounds(opts.since, opts.until);
|
|
238
|
+
const rows = [];
|
|
239
|
+
if (opts.source === "app") {
|
|
240
|
+
const appReport = await getActivityReportBetween(
|
|
241
|
+
this.runtime,
|
|
242
|
+
this.agentId(),
|
|
243
|
+
{
|
|
244
|
+
sinceMs,
|
|
245
|
+
untilMs: Math.min(untilMs, Date.now())
|
|
246
|
+
}
|
|
247
|
+
);
|
|
248
|
+
rows.push(
|
|
249
|
+
...appReport.apps.map((app) => ({
|
|
250
|
+
source: "app",
|
|
251
|
+
identifier: app.bundleId || app.appName,
|
|
252
|
+
displayName: app.appName || app.bundleId,
|
|
253
|
+
totalSeconds: Math.floor(app.totalMs / 1e3),
|
|
254
|
+
sessionCount: app.sessionCount,
|
|
255
|
+
metadata: {
|
|
256
|
+
sampleWindowTitles: app.sampleWindowTitles
|
|
257
|
+
}
|
|
258
|
+
}))
|
|
259
|
+
);
|
|
260
|
+
const appSessions = await this.repository.listScreenTimeSessionsOverlapping(
|
|
261
|
+
this.agentId(),
|
|
262
|
+
opts.since,
|
|
263
|
+
opts.until,
|
|
264
|
+
{ source: "app" }
|
|
265
|
+
);
|
|
266
|
+
rows.push(
|
|
267
|
+
...aggregateWebsiteSessions(
|
|
268
|
+
appSessions.filter(
|
|
269
|
+
(session) => !isSystemInactivitySession(session)
|
|
270
|
+
),
|
|
271
|
+
sinceMs,
|
|
272
|
+
untilMs
|
|
273
|
+
)
|
|
274
|
+
);
|
|
275
|
+
const mobileSignals = await this.repository.listActivitySignals(
|
|
276
|
+
this.agentId(),
|
|
277
|
+
{
|
|
278
|
+
sinceAt: opts.since,
|
|
279
|
+
limit: 200
|
|
280
|
+
}
|
|
281
|
+
);
|
|
282
|
+
rows.push(
|
|
283
|
+
...androidUsageRowsFromSignals(
|
|
284
|
+
mobileSignals.filter(
|
|
285
|
+
(signal) => signal.platform === "android" && inWindow(signal.observedAt, sinceMs, untilMs)
|
|
286
|
+
),
|
|
287
|
+
sinceMs,
|
|
288
|
+
untilMs
|
|
289
|
+
)
|
|
290
|
+
);
|
|
291
|
+
}
|
|
292
|
+
if (opts.source === "website") {
|
|
293
|
+
const websiteSessions = await this.repository.listScreenTimeSessionsOverlapping(
|
|
294
|
+
this.agentId(),
|
|
295
|
+
opts.since,
|
|
296
|
+
opts.until,
|
|
297
|
+
{ source: "website" }
|
|
298
|
+
);
|
|
299
|
+
rows.push(
|
|
300
|
+
...aggregateWebsiteSessions(websiteSessions, sinceMs, untilMs)
|
|
301
|
+
);
|
|
302
|
+
}
|
|
303
|
+
return filterRowsByIdentifier(rows, opts.identifier);
|
|
304
|
+
}
|
|
305
|
+
async getScreenTimeDaily(opts) {
|
|
306
|
+
const { startIso, endIso } = resolveUtcDateWindow(opts.date);
|
|
307
|
+
const rows = await this.collectScreenTimeRows({
|
|
308
|
+
since: startIso,
|
|
309
|
+
until: endIso,
|
|
310
|
+
source: opts.source,
|
|
311
|
+
identifier: opts.identifier
|
|
312
|
+
});
|
|
313
|
+
const dailyRows = toDailyRows(this.agentId(), opts.date, rows);
|
|
314
|
+
return dailyRows.slice(0, opts.limit ?? dailyRows.length);
|
|
315
|
+
}
|
|
316
|
+
async getScreenTimeSummary(opts) {
|
|
317
|
+
const rows = await this.collectScreenTimeRows(opts);
|
|
318
|
+
return buildScreenTimeSummary(rows, opts.topN);
|
|
319
|
+
}
|
|
320
|
+
async getScreenTimeBreakdown(opts) {
|
|
321
|
+
const rows = await this.collectScreenTimeRows(opts);
|
|
322
|
+
return buildScreenTimeBreakdown(rows, opts.topN);
|
|
323
|
+
}
|
|
324
|
+
async getSocialHabitSummary(opts) {
|
|
325
|
+
const { sinceMs, untilMs } = buildWindowBounds(opts.since, opts.until);
|
|
326
|
+
const fullBreakdown = await this.getScreenTimeBreakdown({
|
|
327
|
+
since: opts.since,
|
|
328
|
+
until: opts.until
|
|
329
|
+
});
|
|
330
|
+
const socialRows = fullBreakdown.items.filter(
|
|
331
|
+
(item) => item.service || isSocialCategory(item.category)
|
|
332
|
+
);
|
|
333
|
+
const deviceBuckets = /* @__PURE__ */ new Map();
|
|
334
|
+
const surfaceBuckets = /* @__PURE__ */ new Map();
|
|
335
|
+
const browserBuckets = /* @__PURE__ */ new Map();
|
|
336
|
+
for (const row of socialRows) {
|
|
337
|
+
addBucket(
|
|
338
|
+
deviceBuckets,
|
|
339
|
+
row.device,
|
|
340
|
+
screenTimeDeviceLabel(row.device),
|
|
341
|
+
row.totalSeconds
|
|
342
|
+
);
|
|
343
|
+
addBucket(
|
|
344
|
+
surfaceBuckets,
|
|
345
|
+
row.source,
|
|
346
|
+
screenTimeSourceLabel(row.source),
|
|
347
|
+
row.totalSeconds
|
|
348
|
+
);
|
|
349
|
+
addBucket(
|
|
350
|
+
browserBuckets,
|
|
351
|
+
row.browser?.toLowerCase(),
|
|
352
|
+
row.browser,
|
|
353
|
+
row.totalSeconds
|
|
354
|
+
);
|
|
355
|
+
}
|
|
356
|
+
const xDms = await this.repository.listXDms(this.agentId(), {
|
|
357
|
+
limit: 500
|
|
358
|
+
});
|
|
359
|
+
const xReceivedWindowDms = xDms.filter(
|
|
360
|
+
(dm) => inWindow(dm.receivedAt, sinceMs, untilMs)
|
|
361
|
+
);
|
|
362
|
+
const xInbound = xReceivedWindowDms.filter((dm) => dm.isInbound).length;
|
|
363
|
+
const xOutbound = xReceivedWindowDms.length - xInbound;
|
|
364
|
+
const xOpened = xDms.filter(
|
|
365
|
+
(dm) => inWindow(dm.readAt, sinceMs, untilMs)
|
|
366
|
+
).length;
|
|
367
|
+
const xReplied = xDms.filter(
|
|
368
|
+
(dm) => inWindow(dm.repliedAt, sinceMs, untilMs)
|
|
369
|
+
).length;
|
|
370
|
+
const [browserSettings, browserCompanions, recentMobileSignals] = await Promise.all([
|
|
371
|
+
this.getBrowserSettings(),
|
|
372
|
+
this.listBrowserCompanions(),
|
|
373
|
+
this.repository.listActivitySignals(this.agentId(), {
|
|
374
|
+
sinceAt: new Date(Date.now() - 7 * 24 * 60 * 6e4).toISOString(),
|
|
375
|
+
limit: 100
|
|
376
|
+
})
|
|
377
|
+
]);
|
|
378
|
+
const messageChannels = [
|
|
379
|
+
{
|
|
380
|
+
channel: "x_dm",
|
|
381
|
+
label: "X DMs",
|
|
382
|
+
inbound: xInbound,
|
|
383
|
+
outbound: xOutbound,
|
|
384
|
+
opened: xOpened,
|
|
385
|
+
replied: xReplied
|
|
386
|
+
}
|
|
387
|
+
];
|
|
388
|
+
const browserState = browserTrackingDataSourceState(
|
|
389
|
+
browserSettings,
|
|
390
|
+
browserCompanions
|
|
391
|
+
);
|
|
392
|
+
const androidState = mobileScreenTimeDataSourceFromSignals(
|
|
393
|
+
recentMobileSignals,
|
|
394
|
+
"android"
|
|
395
|
+
);
|
|
396
|
+
const iosState = mobileScreenTimeDataSourceFromSignals(
|
|
397
|
+
recentMobileSignals,
|
|
398
|
+
"ios"
|
|
399
|
+
);
|
|
400
|
+
return {
|
|
401
|
+
since: opts.since,
|
|
402
|
+
until: opts.until,
|
|
403
|
+
totalSeconds: socialRows.reduce(
|
|
404
|
+
(sum, row) => sum + row.totalSeconds,
|
|
405
|
+
0
|
|
406
|
+
),
|
|
407
|
+
services: fullBreakdown.byService.slice(0, opts.topN ?? 8),
|
|
408
|
+
devices: screenTimeBucketList(deviceBuckets),
|
|
409
|
+
surfaces: screenTimeBucketList(surfaceBuckets),
|
|
410
|
+
browsers: screenTimeBucketList(browserBuckets),
|
|
411
|
+
sessions: socialRows.slice(0, opts.topN ?? 8),
|
|
412
|
+
messages: {
|
|
413
|
+
channels: messageChannels,
|
|
414
|
+
inbound: xInbound,
|
|
415
|
+
outbound: xOutbound,
|
|
416
|
+
opened: xOpened,
|
|
417
|
+
replied: xReplied
|
|
418
|
+
},
|
|
419
|
+
dataSources: [
|
|
420
|
+
{
|
|
421
|
+
id: "macos_activity",
|
|
422
|
+
label: "Mac apps",
|
|
423
|
+
state: "live",
|
|
424
|
+
statusLabel: "Live",
|
|
425
|
+
detail: "macOS app focus events are included in screen-time totals."
|
|
426
|
+
},
|
|
427
|
+
{
|
|
428
|
+
id: "browser_bridge",
|
|
429
|
+
label: "Browser",
|
|
430
|
+
state: browserState,
|
|
431
|
+
statusLabel: browserState === "live" ? "Live" : browserState === "partial" ? "Needs attention" : "Not connected",
|
|
432
|
+
detail: browserState === "live" ? "Browser focus sessions are included in website totals." : browserState === "partial" ? "Browser tracking is enabled but permissions, recency, or pause state need attention." : "Browser tracking is disabled or no companion is connected."
|
|
433
|
+
},
|
|
434
|
+
{
|
|
435
|
+
id: "android_usage_stats",
|
|
436
|
+
label: "Android apps",
|
|
437
|
+
...androidState
|
|
438
|
+
},
|
|
439
|
+
{
|
|
440
|
+
id: "ios_device_activity",
|
|
441
|
+
label: "iOS apps",
|
|
442
|
+
...iosState
|
|
443
|
+
}
|
|
444
|
+
],
|
|
445
|
+
fetchedAt: isoNow()
|
|
446
|
+
};
|
|
447
|
+
}
|
|
448
|
+
async getScreenTimeHistory(opts) {
|
|
449
|
+
const window = computeScreenTimeRange(opts.range);
|
|
450
|
+
const priorWindow = computePriorScreenTimeRange(opts.range, window);
|
|
451
|
+
const [breakdown, social, priorBreakdown, priorSocial] = await Promise.all([
|
|
452
|
+
this.getScreenTimeBreakdown({
|
|
453
|
+
since: window.since,
|
|
454
|
+
until: window.until,
|
|
455
|
+
topN: opts.topN
|
|
456
|
+
}),
|
|
457
|
+
this.getSocialHabitSummary({
|
|
458
|
+
since: window.since,
|
|
459
|
+
until: window.until,
|
|
460
|
+
topN: opts.socialTopN
|
|
461
|
+
}),
|
|
462
|
+
priorWindow ? this.getScreenTimeBreakdown({
|
|
463
|
+
since: priorWindow.since,
|
|
464
|
+
until: priorWindow.until,
|
|
465
|
+
topN: opts.topN
|
|
466
|
+
}) : Promise.resolve(null),
|
|
467
|
+
priorWindow ? this.getSocialHabitSummary({
|
|
468
|
+
since: priorWindow.since,
|
|
469
|
+
until: priorWindow.until,
|
|
470
|
+
topN: opts.socialTopN
|
|
471
|
+
}) : Promise.resolve(null)
|
|
472
|
+
]);
|
|
473
|
+
const history = opts.range === "today" ? [] : await Promise.all(
|
|
474
|
+
enumerateScreenTimeHistoryDays(window).map(async (day) => {
|
|
475
|
+
const summary = await this.getScreenTimeSummary({
|
|
476
|
+
since: day.since,
|
|
477
|
+
until: day.until
|
|
478
|
+
});
|
|
479
|
+
return {
|
|
480
|
+
...day,
|
|
481
|
+
totalSeconds: summary.totalSeconds
|
|
482
|
+
};
|
|
483
|
+
})
|
|
484
|
+
);
|
|
485
|
+
return {
|
|
486
|
+
range: opts.range,
|
|
487
|
+
label: screenTimeRangeLabel(opts.range),
|
|
488
|
+
window,
|
|
489
|
+
priorWindow,
|
|
490
|
+
breakdown,
|
|
491
|
+
social,
|
|
492
|
+
history,
|
|
493
|
+
metrics: buildScreenTimeMetrics(
|
|
494
|
+
breakdown,
|
|
495
|
+
social,
|
|
496
|
+
priorBreakdown,
|
|
497
|
+
priorSocial
|
|
498
|
+
),
|
|
499
|
+
visible: buildScreenTimeVisibleBuckets(breakdown, social),
|
|
500
|
+
fetchedAt: isoNow()
|
|
501
|
+
};
|
|
502
|
+
}
|
|
503
|
+
async getScreenTimeWeeklyAverageByApp(opts) {
|
|
504
|
+
const summary = await this.getScreenTimeSummary({
|
|
505
|
+
since: opts.since,
|
|
506
|
+
until: opts.until,
|
|
507
|
+
source: "app",
|
|
508
|
+
identifier: opts.identifier,
|
|
509
|
+
topN: opts.topN
|
|
510
|
+
});
|
|
511
|
+
const daysInWindow = Math.max(1, Math.floor(opts.daysInWindow));
|
|
512
|
+
return {
|
|
513
|
+
items: buildScreenTimeWeeklyAverageItems(summary.items, daysInWindow),
|
|
514
|
+
totalSeconds: summary.totalSeconds,
|
|
515
|
+
daysInWindow
|
|
516
|
+
};
|
|
517
|
+
}
|
|
518
|
+
async aggregateDailyForDate(date) {
|
|
519
|
+
return this.repository.aggregateScreenTimeDailyForDate(
|
|
520
|
+
this.agentId(),
|
|
521
|
+
date
|
|
522
|
+
);
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
return LifeOpsScreenTimeServiceMixin;
|
|
526
|
+
}
|
|
527
|
+
export {
|
|
528
|
+
withScreenTime
|
|
529
|
+
};
|
|
530
|
+
//# sourceMappingURL=service-mixin-screentime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lifeops/service-mixin-screentime.ts"],"sourcesContent":["import crypto from \"node:crypto\";\nimport {\n type BrowserBridgeCompanionStatus,\n type BrowserBridgeSettings,\n browserBridgeCompanionIsRecent,\n browserBridgePermissionsReady,\n isBrowserBridgePaused,\n} from \"@elizaos/plugin-browser\";\nimport {\n androidUsageRowsFromSignals,\n buildScreenTimeBreakdown,\n buildScreenTimeMetrics,\n buildScreenTimeSummary,\n buildScreenTimeVisibleBuckets,\n buildScreenTimeWeeklyAverageItems,\n computePriorScreenTimeRange,\n computeScreenTimeRange,\n enumerateScreenTimeHistoryDays,\n isSocialCategory,\n isSystemInactivityApp,\n mergeScreenTimeAggregateRows,\n mobileScreenTimeDataSourceFromSignals,\n type ScreenTimeAggregateRow,\n type ScreenTimeWeeklyAverageItem,\n screenTimeBucketList,\n screenTimeDeviceLabel,\n screenTimeRangeLabel,\n screenTimeSourceLabel,\n} from \"@elizaos/plugin-health\";\nimport type {\n LifeOpsScreenTimeDaily,\n LifeOpsScreenTimeHistoryPoint,\n LifeOpsScreenTimeHistoryResponse,\n LifeOpsScreenTimeRangeKey,\n LifeOpsScreenTimeSession,\n LifeOpsScreenTimeSource,\n LifeOpsScreenTimeSummary,\n LifeOpsScreenTimeBreakdown as ScreenTimeBreakdown,\n LifeOpsScreenTimeBucket as ScreenTimeBucket,\n LifeOpsSocialHabitSummary as SocialHabitSummary,\n} from \"@elizaos/shared\";\nimport { getActivityReportBetween } from \"../activity-profile/activity-tracker-reporting.js\";\nimport type {\n Constructor,\n LifeOpsServiceBase,\n MixinClass,\n} from \"./service-mixin-core.js\";\nimport { fail } from \"./service-normalize.js\";\n\nfunction isoNow(): string {\n return new Date().toISOString();\n}\n\nfunction computeDurationSeconds(\n startAt: string,\n endAt: string | null | undefined,\n provided: number | undefined,\n): number {\n if (\n typeof provided === \"number\" &&\n Number.isFinite(provided) &&\n provided >= 0\n ) {\n return Math.floor(provided);\n }\n if (!endAt) return 0;\n const startMs = Date.parse(startAt);\n const endMs = Date.parse(endAt);\n if (!Number.isFinite(startMs) || !Number.isFinite(endMs)) return 0;\n const delta = Math.max(0, Math.floor((endMs - startMs) / 1000));\n return delta;\n}\n\ntype ScreenTimeEventInput = {\n source: \"app\" | \"website\";\n identifier: string;\n displayName: string;\n startAt: string;\n endAt?: string | null;\n durationSeconds?: number;\n metadata?: Record<string, unknown>;\n};\n\ntype ScreenTimeMixinDependencies = LifeOpsServiceBase & {\n getBrowserSettings(): Promise<BrowserBridgeSettings>;\n listBrowserCompanions(): Promise<BrowserBridgeCompanionStatus[]>;\n};\n\ntype ScreenTimeWeeklyAverageResponse = {\n items: ScreenTimeWeeklyAverageItem[];\n totalSeconds: number;\n daysInWindow: number;\n};\n\nexport interface LifeOpsScreenTimeServicePublic {\n recordScreenTimeEvent(\n event: ScreenTimeEventInput,\n ): Promise<LifeOpsScreenTimeSession>;\n finishActiveScreenTimeSession(\n id: string,\n endAt: string,\n durationSeconds: number,\n ): Promise<void>;\n collectScreenTimeRows(opts: {\n since: string;\n until: string;\n source?: LifeOpsScreenTimeSource;\n identifier?: string;\n }): Promise<ScreenTimeAggregateRow[]>;\n getScreenTimeDaily(opts: {\n date: string;\n source?: LifeOpsScreenTimeSource;\n identifier?: string;\n limit?: number;\n }): Promise<LifeOpsScreenTimeDaily[]>;\n getScreenTimeSummary(opts: {\n since: string;\n until: string;\n source?: LifeOpsScreenTimeSource;\n identifier?: string;\n topN?: number;\n }): Promise<LifeOpsScreenTimeSummary>;\n getScreenTimeBreakdown(opts: {\n since: string;\n until: string;\n source?: LifeOpsScreenTimeSource;\n identifier?: string;\n topN?: number;\n }): Promise<ScreenTimeBreakdown>;\n getSocialHabitSummary(opts: {\n since: string;\n until: string;\n topN?: number;\n }): Promise<SocialHabitSummary>;\n getScreenTimeHistory(opts: {\n range: LifeOpsScreenTimeRangeKey;\n topN?: number;\n socialTopN?: number;\n }): Promise<LifeOpsScreenTimeHistoryResponse>;\n getScreenTimeWeeklyAverageByApp(opts: {\n since: string;\n until: string;\n daysInWindow: number;\n identifier?: string;\n topN?: number;\n }): Promise<ScreenTimeWeeklyAverageResponse>;\n aggregateDailyForDate(date: string): Promise<{ updated: number }>;\n}\n\nfunction resolveUtcDateWindow(date: string): {\n startIso: string;\n endIso: string;\n startMs: number;\n endMs: number;\n} {\n const startIso = `${date}T00:00:00.000Z`;\n const endIso = `${date}T23:59:59.999Z`;\n const startMs = Date.parse(startIso);\n const endMs = Date.parse(endIso);\n if (!Number.isFinite(startMs) || !Number.isFinite(endMs) || endMs < startMs) {\n fail(400, \"date must be a valid YYYY-MM-DD string\");\n }\n return { startIso, endIso, startMs, endMs };\n}\n\nfunction buildWindowBounds(\n since: string,\n until: string,\n): {\n sinceMs: number;\n untilMs: number;\n} {\n const sinceMs = Date.parse(since);\n const untilMs = Date.parse(until);\n if (\n !Number.isFinite(sinceMs) ||\n !Number.isFinite(untilMs) ||\n untilMs <= sinceMs\n ) {\n fail(400, \"since and until must be valid ISO strings with until > since\");\n }\n return { sinceMs, untilMs };\n}\n\nfunction normalizeIdentifierFilter(\n identifier: string | undefined,\n): string | null {\n const normalized = identifier?.trim();\n return normalized && normalized.length > 0 ? normalized : null;\n}\n\nfunction filterRowsByIdentifier(\n rows: ScreenTimeAggregateRow[],\n identifier: string | undefined,\n): ScreenTimeAggregateRow[] {\n const normalized = normalizeIdentifierFilter(identifier);\n if (!normalized) {\n return rows;\n }\n return rows.filter((row) => row.identifier === normalized);\n}\n\nfunction clipSessionDurationSeconds(\n session: LifeOpsScreenTimeSession,\n windowStartMs: number,\n windowEndMs: number,\n): number {\n const sessionStartMs = Date.parse(session.startAt);\n if (!Number.isFinite(sessionStartMs)) {\n return 0;\n }\n const endBoundMs = Math.min(windowEndMs, Date.now());\n const sessionEndMs =\n session.endAt && Number.isFinite(Date.parse(session.endAt))\n ? Date.parse(session.endAt)\n : endBoundMs;\n const clippedStart = Math.max(sessionStartMs, windowStartMs);\n const clippedEnd = Math.min(sessionEndMs, endBoundMs);\n if (clippedEnd <= clippedStart) {\n return 0;\n }\n return Math.max(0, Math.floor((clippedEnd - clippedStart) / 1000));\n}\n\nfunction aggregateWebsiteSessions(\n sessions: LifeOpsScreenTimeSession[],\n windowStartMs: number,\n windowEndMs: number,\n): ScreenTimeAggregateRow[] {\n const groups = new Map<string, ScreenTimeAggregateRow>();\n for (const session of sessions) {\n const clippedSeconds = clipSessionDurationSeconds(\n session,\n windowStartMs,\n windowEndMs,\n );\n if (clippedSeconds <= 0) {\n continue;\n }\n const key = `${session.source}::${session.identifier}`;\n const existing = groups.get(key);\n if (existing) {\n existing.totalSeconds += clippedSeconds;\n existing.sessionCount += 1;\n continue;\n }\n groups.set(key, {\n source: session.source,\n identifier: session.identifier,\n displayName: session.displayName || session.identifier,\n totalSeconds: clippedSeconds,\n sessionCount: 1,\n metadata: session.metadata,\n });\n }\n return [...groups.values()].sort((left, right) => {\n if (right.totalSeconds !== left.totalSeconds) {\n return right.totalSeconds - left.totalSeconds;\n }\n return left.displayName.localeCompare(right.displayName);\n });\n}\n\nfunction isSystemInactivitySession(session: LifeOpsScreenTimeSession): boolean {\n return (\n session.source === \"app\" &&\n isSystemInactivityApp({\n bundleId: session.identifier,\n appName: session.displayName,\n platform:\n typeof session.metadata.platform === \"string\"\n ? session.metadata.platform\n : null,\n })\n );\n}\n\nfunction toDailyRows(\n agentId: string,\n date: string,\n rows: ScreenTimeAggregateRow[],\n): LifeOpsScreenTimeDaily[] {\n const now = isoNow();\n return mergeScreenTimeAggregateRows(rows).map((row) => ({\n id: `screen-time:${agentId}:${date}:${row.source}:${row.identifier}`,\n agentId,\n source: row.source,\n identifier: row.identifier,\n date,\n totalSeconds: row.totalSeconds,\n sessionCount: row.sessionCount,\n metadata: {\n displayName: row.displayName,\n ...(row.metadata ?? {}),\n },\n createdAt: now,\n updatedAt: now,\n }));\n}\n\nfunction addBucket(\n buckets: Map<string, ScreenTimeBucket>,\n key: string | null | undefined,\n label: string | null | undefined,\n totalSeconds: number,\n): void {\n if (!key || totalSeconds <= 0) return;\n const existing = buckets.get(key);\n if (existing) {\n existing.totalSeconds += totalSeconds;\n return;\n }\n buckets.set(key, {\n key,\n label: label || key,\n totalSeconds,\n });\n}\n\nfunction inWindow(\n iso: string | null | undefined,\n sinceMs: number,\n untilMs: number,\n): boolean {\n if (!iso) return false;\n const parsed = Date.parse(iso);\n return Number.isFinite(parsed) && parsed >= sinceMs && parsed <= untilMs;\n}\n\nfunction browserTrackingDataSourceState(\n settings: BrowserBridgeSettings,\n companions: BrowserBridgeCompanionStatus[],\n): \"live\" | \"partial\" | \"unwired\" {\n if (!settings.enabled || settings.trackingMode === \"off\") {\n return \"unwired\";\n }\n if (isBrowserBridgePaused(settings)) {\n return \"partial\";\n }\n if (companions.length === 0) {\n return \"unwired\";\n }\n\n const connectedCompanions = companions.filter(\n (companion) => companion.connectionState === \"connected\",\n );\n if (connectedCompanions.length === 0) {\n return companions.some(\n (companion) => companion.connectionState === \"permission_blocked\",\n )\n ? \"partial\"\n : \"unwired\";\n }\n\n const recentConnectedCompanions = connectedCompanions.filter((companion) =>\n browserBridgeCompanionIsRecent(companion),\n );\n if (recentConnectedCompanions.length === 0) {\n return \"partial\";\n }\n\n return recentConnectedCompanions.some((companion) =>\n browserBridgePermissionsReady(settings, companion.permissions),\n )\n ? \"live\"\n : \"partial\";\n}\n\n/** @internal */\nexport function withScreenTime<TBase extends Constructor<LifeOpsServiceBase>>(\n Base: TBase,\n): MixinClass<TBase, LifeOpsScreenTimeServicePublic> {\n const ScreenTimeBase =\n Base as unknown as Constructor<ScreenTimeMixinDependencies>;\n\n class LifeOpsScreenTimeServiceMixin extends ScreenTimeBase {\n async recordScreenTimeEvent(\n event: ScreenTimeEventInput,\n ): Promise<LifeOpsScreenTimeSession> {\n if (event.source !== \"app\" && event.source !== \"website\") {\n fail(400, \"source must be 'app' or 'website'\");\n }\n if (!event.identifier || typeof event.identifier !== \"string\") {\n fail(400, \"identifier is required\");\n }\n if (!event.startAt || typeof event.startAt !== \"string\") {\n fail(400, \"startAt is required\");\n }\n const now = isoNow();\n const endAt = event.endAt ?? null;\n const isActive = endAt === null;\n const durationSeconds = computeDurationSeconds(\n event.startAt,\n endAt,\n event.durationSeconds,\n );\n const session: LifeOpsScreenTimeSession = {\n id: crypto.randomUUID(),\n agentId: this.agentId(),\n source: event.source,\n identifier: event.identifier,\n displayName: event.displayName || event.identifier,\n startAt: event.startAt,\n endAt,\n durationSeconds,\n isActive,\n metadata: event.metadata ?? {},\n createdAt: now,\n updatedAt: now,\n };\n await this.repository.upsertScreenTimeSession(session);\n return session;\n }\n\n async finishActiveScreenTimeSession(\n id: string,\n endAt: string,\n durationSeconds: number,\n ): Promise<void> {\n await this.repository.finishScreenTimeSession(\n this.agentId(),\n id,\n endAt,\n Math.max(0, Math.floor(durationSeconds)),\n );\n }\n\n async collectScreenTimeRows(opts: {\n since: string;\n until: string;\n source?: LifeOpsScreenTimeSource;\n identifier?: string;\n }): Promise<ScreenTimeAggregateRow[]> {\n const { sinceMs, untilMs } = buildWindowBounds(opts.since, opts.until);\n const rows: ScreenTimeAggregateRow[] = [];\n\n if (opts.source === \"app\") {\n const appReport = await getActivityReportBetween(\n this.runtime,\n this.agentId(),\n {\n sinceMs,\n untilMs: Math.min(untilMs, Date.now()),\n },\n );\n rows.push(\n ...appReport.apps.map((app) => ({\n source: \"app\" as const,\n identifier: app.bundleId || app.appName,\n displayName: app.appName || app.bundleId,\n totalSeconds: Math.floor(app.totalMs / 1000),\n sessionCount: app.sessionCount,\n metadata: {\n sampleWindowTitles: app.sampleWindowTitles,\n },\n })),\n );\n const appSessions =\n await this.repository.listScreenTimeSessionsOverlapping(\n this.agentId(),\n opts.since,\n opts.until,\n { source: \"app\" },\n );\n rows.push(\n ...aggregateWebsiteSessions(\n appSessions.filter(\n (session) => !isSystemInactivitySession(session),\n ),\n sinceMs,\n untilMs,\n ),\n );\n const mobileSignals = await this.repository.listActivitySignals(\n this.agentId(),\n {\n sinceAt: opts.since,\n limit: 200,\n },\n );\n rows.push(\n ...androidUsageRowsFromSignals(\n mobileSignals.filter(\n (signal) =>\n signal.platform === \"android\" &&\n inWindow(signal.observedAt, sinceMs, untilMs),\n ),\n sinceMs,\n untilMs,\n ),\n );\n }\n\n if (opts.source === \"website\") {\n const websiteSessions =\n await this.repository.listScreenTimeSessionsOverlapping(\n this.agentId(),\n opts.since,\n opts.until,\n { source: \"website\" },\n );\n rows.push(\n ...aggregateWebsiteSessions(websiteSessions, sinceMs, untilMs),\n );\n }\n\n return filterRowsByIdentifier(rows, opts.identifier);\n }\n\n async getScreenTimeDaily(opts: {\n date: string;\n source?: LifeOpsScreenTimeSource;\n identifier?: string;\n limit?: number;\n }): Promise<LifeOpsScreenTimeDaily[]> {\n const { startIso, endIso } = resolveUtcDateWindow(opts.date);\n const rows = await this.collectScreenTimeRows({\n since: startIso,\n until: endIso,\n source: opts.source,\n identifier: opts.identifier,\n });\n\n const dailyRows = toDailyRows(this.agentId(), opts.date, rows);\n return dailyRows.slice(0, opts.limit ?? dailyRows.length);\n }\n\n async getScreenTimeSummary(opts: {\n since: string;\n until: string;\n source?: LifeOpsScreenTimeSource;\n identifier?: string;\n topN?: number;\n }): Promise<LifeOpsScreenTimeSummary> {\n const rows = await this.collectScreenTimeRows(opts);\n return buildScreenTimeSummary(rows, opts.topN);\n }\n\n async getScreenTimeBreakdown(opts: {\n since: string;\n until: string;\n source?: LifeOpsScreenTimeSource;\n identifier?: string;\n topN?: number;\n }): Promise<ScreenTimeBreakdown> {\n const rows = await this.collectScreenTimeRows(opts);\n return buildScreenTimeBreakdown(rows, opts.topN);\n }\n\n async getSocialHabitSummary(opts: {\n since: string;\n until: string;\n topN?: number;\n }): Promise<SocialHabitSummary> {\n const { sinceMs, untilMs } = buildWindowBounds(opts.since, opts.until);\n const fullBreakdown = await this.getScreenTimeBreakdown({\n since: opts.since,\n until: opts.until,\n });\n const socialRows = fullBreakdown.items.filter(\n (item) => item.service || isSocialCategory(item.category),\n );\n const deviceBuckets = new Map<string, ScreenTimeBucket>();\n const surfaceBuckets = new Map<string, ScreenTimeBucket>();\n const browserBuckets = new Map<string, ScreenTimeBucket>();\n for (const row of socialRows) {\n addBucket(\n deviceBuckets,\n row.device,\n screenTimeDeviceLabel(row.device),\n row.totalSeconds,\n );\n addBucket(\n surfaceBuckets,\n row.source,\n screenTimeSourceLabel(row.source),\n row.totalSeconds,\n );\n addBucket(\n browserBuckets,\n row.browser?.toLowerCase(),\n row.browser,\n row.totalSeconds,\n );\n }\n\n const xDms = await this.repository.listXDms(this.agentId(), {\n limit: 500,\n });\n const xReceivedWindowDms = xDms.filter((dm) =>\n inWindow(dm.receivedAt, sinceMs, untilMs),\n );\n const xInbound = xReceivedWindowDms.filter((dm) => dm.isInbound).length;\n const xOutbound = xReceivedWindowDms.length - xInbound;\n const xOpened = xDms.filter((dm) =>\n inWindow(dm.readAt, sinceMs, untilMs),\n ).length;\n const xReplied = xDms.filter((dm) =>\n inWindow(dm.repliedAt, sinceMs, untilMs),\n ).length;\n\n const [browserSettings, browserCompanions, recentMobileSignals] =\n await Promise.all([\n this.getBrowserSettings(),\n this.listBrowserCompanions(),\n this.repository.listActivitySignals(this.agentId(), {\n sinceAt: new Date(Date.now() - 7 * 24 * 60 * 60_000).toISOString(),\n limit: 100,\n }),\n ]);\n const messageChannels = [\n {\n channel: \"x_dm\" as const,\n label: \"X DMs\",\n inbound: xInbound,\n outbound: xOutbound,\n opened: xOpened,\n replied: xReplied,\n },\n ];\n const browserState = browserTrackingDataSourceState(\n browserSettings,\n browserCompanions,\n );\n const androidState = mobileScreenTimeDataSourceFromSignals(\n recentMobileSignals,\n \"android\",\n );\n const iosState = mobileScreenTimeDataSourceFromSignals(\n recentMobileSignals,\n \"ios\",\n );\n\n return {\n since: opts.since,\n until: opts.until,\n totalSeconds: socialRows.reduce(\n (sum, row) => sum + row.totalSeconds,\n 0,\n ),\n services: fullBreakdown.byService.slice(0, opts.topN ?? 8),\n devices: screenTimeBucketList(deviceBuckets),\n surfaces: screenTimeBucketList(surfaceBuckets),\n browsers: screenTimeBucketList(browserBuckets),\n sessions: socialRows.slice(0, opts.topN ?? 8),\n messages: {\n channels: messageChannels,\n inbound: xInbound,\n outbound: xOutbound,\n opened: xOpened,\n replied: xReplied,\n },\n dataSources: [\n {\n id: \"macos_activity\",\n label: \"Mac apps\",\n state: \"live\",\n statusLabel: \"Live\",\n detail:\n \"macOS app focus events are included in screen-time totals.\",\n },\n {\n id: \"browser_bridge\",\n label: \"Browser\",\n state: browserState,\n statusLabel:\n browserState === \"live\"\n ? \"Live\"\n : browserState === \"partial\"\n ? \"Needs attention\"\n : \"Not connected\",\n detail:\n browserState === \"live\"\n ? \"Browser focus sessions are included in website totals.\"\n : browserState === \"partial\"\n ? \"Browser tracking is enabled but permissions, recency, or pause state need attention.\"\n : \"Browser tracking is disabled or no companion is connected.\",\n },\n {\n id: \"android_usage_stats\",\n label: \"Android apps\",\n ...androidState,\n },\n {\n id: \"ios_device_activity\",\n label: \"iOS apps\",\n ...iosState,\n },\n ],\n fetchedAt: isoNow(),\n };\n }\n\n async getScreenTimeHistory(opts: {\n range: LifeOpsScreenTimeRangeKey;\n topN?: number;\n socialTopN?: number;\n }): Promise<LifeOpsScreenTimeHistoryResponse> {\n const window = computeScreenTimeRange(opts.range);\n const priorWindow = computePriorScreenTimeRange(opts.range, window);\n const [breakdown, social, priorBreakdown, priorSocial] =\n await Promise.all([\n this.getScreenTimeBreakdown({\n since: window.since,\n until: window.until,\n topN: opts.topN,\n }),\n this.getSocialHabitSummary({\n since: window.since,\n until: window.until,\n topN: opts.socialTopN,\n }),\n priorWindow\n ? this.getScreenTimeBreakdown({\n since: priorWindow.since,\n until: priorWindow.until,\n topN: opts.topN,\n })\n : Promise.resolve(null),\n priorWindow\n ? this.getSocialHabitSummary({\n since: priorWindow.since,\n until: priorWindow.until,\n topN: opts.socialTopN,\n })\n : Promise.resolve(null),\n ]);\n const history: LifeOpsScreenTimeHistoryPoint[] =\n opts.range === \"today\"\n ? []\n : await Promise.all(\n enumerateScreenTimeHistoryDays(window).map(async (day) => {\n const summary = await this.getScreenTimeSummary({\n since: day.since,\n until: day.until,\n });\n return {\n ...day,\n totalSeconds: summary.totalSeconds,\n };\n }),\n );\n\n return {\n range: opts.range,\n label: screenTimeRangeLabel(opts.range),\n window,\n priorWindow,\n breakdown,\n social,\n history,\n metrics: buildScreenTimeMetrics(\n breakdown,\n social,\n priorBreakdown,\n priorSocial,\n ),\n visible: buildScreenTimeVisibleBuckets(breakdown, social),\n fetchedAt: isoNow(),\n };\n }\n\n async getScreenTimeWeeklyAverageByApp(opts: {\n since: string;\n until: string;\n daysInWindow: number;\n identifier?: string;\n topN?: number;\n }): Promise<ScreenTimeWeeklyAverageResponse> {\n const summary = await this.getScreenTimeSummary({\n since: opts.since,\n until: opts.until,\n source: \"app\",\n identifier: opts.identifier,\n topN: opts.topN,\n });\n const daysInWindow = Math.max(1, Math.floor(opts.daysInWindow));\n return {\n items: buildScreenTimeWeeklyAverageItems(summary.items, daysInWindow),\n totalSeconds: summary.totalSeconds,\n daysInWindow,\n };\n }\n\n async aggregateDailyForDate(date: string): Promise<{ updated: number }> {\n return this.repository.aggregateScreenTimeDailyForDate(\n this.agentId(),\n date,\n );\n }\n }\n return LifeOpsScreenTimeServiceMixin as unknown as MixinClass<\n TBase,\n LifeOpsScreenTimeServicePublic\n >;\n}\n"],"mappings":"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","names":[]}
|