@elizaos/plugin-personal-assistant 2.0.3-beta.5 → 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 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/plugin.ts"],"sourcesContent":["import {\n type ActionResult,\n EventType,\n getDefaultTriageService,\n type HandlerCallback,\n type HandlerOptions,\n type IAgentRuntime,\n logger,\n type Memory,\n messagingTriageActions,\n type Plugin,\n promoteSubactionsToActions,\n registerLocalizedExamplesProvider,\n registerSendPolicy,\n type State,\n} from \"@elizaos/core\";\nimport { BrowserBridgeAdapter } from \"@elizaos/plugin-browser\";\nimport { calendarPlugin } from \"@elizaos/plugin-calendar\";\nimport { CalendlyAdapter } from \"@elizaos/plugin-calendly\";\nimport { financesPlugin } from \"@elizaos/plugin-finances/plugin\";\nimport { goalsPlugin } from \"@elizaos/plugin-goals/plugin\";\nimport { GoogleGmailAdapter } from \"@elizaos/plugin-google\";\nimport {\n createDefaultCircadianInsightContract,\n healthPlugin,\n registerCircadianInsightContract,\n registerHealthAnchors,\n registerHealthBusFamilies,\n registerHealthConnectors,\n registerHealthDefaultPacks,\n} from \"@elizaos/plugin-health\";\nimport { inboxPlugin } from \"@elizaos/plugin-inbox/plugin\";\nimport { remindersPlugin } from \"@elizaos/plugin-reminders\";\nimport { remoteDesktopPlugin } from \"@elizaos/plugin-remote-desktop\";\nimport { XDmAdapter } from \"@elizaos/plugin-x/lifeops-message-adapter\";\nimport { blockAction } from \"./actions/block.js\";\nimport { briefAction } from \"./actions/brief.js\";\nimport { calendarAction } from \"./actions/calendar.js\";\nimport { conflictDetectAction } from \"./actions/conflict-detect.js\";\nimport { connectorAction } from \"./actions/connector.js\";\nimport { credentialsAction } from \"./actions/credentials.js\";\nimport { ownerDocumentsAction } from \"./actions/document.js\";\nimport { entityAction } from \"./actions/entity.js\";\nimport { inboxAction } from \"./actions/inbox.js\";\nimport {\n ownerAlarmsAction,\n ownerFinancesAction,\n ownerGoalsAction,\n ownerHealthAction,\n ownerRemindersAction,\n ownerRoutinesAction,\n ownerScreenTimeAction,\n ownerTodosAction,\n personalAssistantAction,\n} from \"./actions/owner-surfaces.js\";\nimport { prioritizeAction } from \"./actions/prioritize.js\";\nimport { resolveRequestAction } from \"./actions/resolve-request.js\";\nimport { scheduledTaskAction } from \"./actions/scheduled-task.js\";\nimport { voiceCallAction } from \"./actions/voice-call.js\";\nimport { workThreadAction } from \"./actions/work-thread.js\";\nimport { ActivityTrackerService } from \"./activity-profile/activity-tracker-service.js\";\nimport { PresenceSignalBridgeService } from \"./activity-profile/presence-signal-bridge-service.js\";\nimport {\n ensureProactiveAgentTask,\n isAppFirstRunComplete,\n PROACTIVE_TASK_NAME,\n registerProactiveTaskWorker,\n} from \"./activity-profile/proactive-worker.js\";\nimport {\n ensureFollowupTrackerTask,\n FOLLOWUP_TRACKER_TASK_NAME,\n registerFollowupTrackerWorker,\n} from \"./followup/index.js\";\nimport { InboxTriageRepository } from \"./inbox/repository.js\";\nimport { createApprovalQueue } from \"./lifeops/approval-queue.js\";\nimport type { ApprovalChannel } from \"./lifeops/approval-queue.types.js\";\nimport { registerLifeOpsCalendarGate } from \"./lifeops/calendar-gate.js\";\nimport {\n createChannelRegistry,\n registerChannelRegistry,\n registerDefaultChannelPack,\n} from \"./lifeops/channels/index.js\";\nimport {\n createConnectorRegistry,\n registerConnectorRegistry,\n registerDefaultConnectorPack,\n} from \"./lifeops/connectors/index.js\";\nimport { applyMockoonEnvOverrides } from \"./lifeops/connectors/mockoon-redirect.js\";\nimport { handleVoiceTurnObserved } from \"./lifeops/entities/voice-observer-bridge.js\";\nimport { createOwnerLocaleExamplesProvider } from \"./lifeops/i18n/localized-examples-provider.js\";\nimport {\n createMultilingualPromptRegistry,\n registerDefaultPromptPack,\n registerMultilingualPromptRegistry,\n} from \"./lifeops/i18n/prompt-registry.js\";\nimport { createOwnerSendPolicy } from \"./lifeops/messaging/owner-send-policy.js\";\nimport {\n createOwnerFactStore,\n registerOwnerFactStore,\n} from \"./lifeops/owner/fact-store.js\";\nimport { ownerProfileExtractionEvaluator } from \"./lifeops/owner/profile-extraction-evaluator.js\";\nimport {\n createAnchorRegistry,\n createEventKindRegistry,\n createFamilyRegistry,\n createWorkflowStepRegistry,\n registerAnchorRegistry,\n registerAppLifeOpsAnchors,\n registerAppLifeOpsBusFamilies,\n registerAppLifeOpsEventKinds,\n registerBuiltinTelemetryFamilies,\n registerDefaultBlockerPack,\n registerDefaultFeatureFlagPack,\n registerDefaultWorkflowStepPack,\n registerEventKindRegistry,\n registerFamilyRegistry,\n registerWorkflowStepRegistry,\n} from \"./lifeops/registries/index.js\";\nimport { LifeOpsRepository } from \"./lifeops/repository.js\";\n// LifeOps runtime (scheduler task worker + registration)\nimport {\n ensureLifeOpsSchedulerTask,\n LIFEOPS_TASK_NAME,\n registerLifeOpsTaskWorker,\n} from \"./lifeops/runtime.js\";\nimport { ScheduledTaskRunnerService } from \"./lifeops/scheduled-task/service.js\";\nimport { lifeOpsSchema } from \"./lifeops/schema.js\";\nimport {\n createSendPolicyRegistry,\n registerSendPolicyRegistry,\n} from \"./lifeops/send-policy/index.js\";\nimport {\n createActivitySignalBus,\n registerActivitySignalBus,\n} from \"./lifeops/signals/bus.js\";\nimport { threadOpsFieldEvaluator } from \"./lifeops/work-threads/field-evaluator-thread-ops.js\";\nimport { isDarwin } from \"./platform/host.js\";\nimport { browserBridgeProvider } from \"./provider.js\";\n// Activity-profile (proactive agent: GM/GN/nudges)\nimport { activityProfileProvider } from \"./providers/activity-profile.js\";\nimport { crossChannelContextProvider } from \"./providers/cross-channel-context.js\";\n// LifeOps core providers\nimport { firstRunProvider } from \"./providers/first-run.js\";\nimport { healthProvider } from \"./providers/health.js\";\nimport { inboxTriageProvider } from \"./providers/inbox-triage.js\";\nimport { lifeOpsProvider } from \"./providers/lifeops.js\";\nimport { pendingPromptsProvider } from \"./providers/pending-prompts.js\";\nimport { recentTaskStatesProvider } from \"./providers/recent-task-states.js\";\nimport { roomPolicyProvider } from \"./providers/room-policy.js\";\nimport { workThreadsProvider } from \"./providers/work-threads.js\";\nimport { BrowserBridgePluginService } from \"./service.js\";\nimport { registerBlockRuleReconcilerWorker } from \"./website-blocker/chat-integration/index.js\";\n\nconst GOOGLE_CONNECTOR_PLUGIN_PACKAGE = \"@elizaos/plugin-google\";\nconst GOOGLE_CONNECTOR_PLUGIN_NAME = \"google\";\n\ntype LifeOpsMessageActionHookArgs = {\n operation: string;\n runtime: IAgentRuntime;\n message: Memory;\n state?: State;\n options?: HandlerOptions;\n callback?: HandlerCallback;\n};\n\nfunction getMessageText(message: Memory): string {\n return typeof message.content.text === \"string\" ? message.content.text : \"\";\n}\n\nfunction looksLikeMissedCallRepairApproval(text: string): boolean {\n const normalized = text.toLowerCase();\n return (\n /\\bmissed\\b/.test(normalized) &&\n /\\bcall\\b/.test(normalized) &&\n /\\b(?:repair|reschedul|follow\\s*up|reply|respond)\\b/.test(normalized) &&\n /\\b(?:approval|approve|hold|confirm)\\b/.test(normalized)\n );\n}\n\nfunction looksLikeFlightConflictQuestion(text: string): boolean {\n const normalized = text.toLowerCase();\n return (\n /\\b(?:flight|flights?|airport|jfk|sfo|lax|ewr|lga)\\b/u.test(normalized) &&\n /\\b(?:meeting|board|calendar|appointment|event)\\b/u.test(normalized) &&\n /\\b(?:land|lands|arrival|arrive|make|conflict|rebook)\\b/u.test(normalized)\n );\n}\n\nfunction looksLikeDocumentSignatureRequest(text: string): boolean {\n const normalized = text.toLowerCase();\n return (\n /\\b(?:nda|docusign|signature|signed|signing|sign\\s+(?:the|a)?\\s*(?:document|doc|nda)|document\\s+sign(?:ing|ature)?)\\b/u.test(\n normalized,\n ) &&\n /\\b(?:meeting|appointment|kick-?off|deadline|before|due|in\\s+\\d+\\s+days?|partnership)\\b/u.test(\n normalized,\n ) &&\n /\\b(?:initiate|start|begin|draft|queue|prepare|send|get\\s+(?:it|the\\s+nda)\\s+signed|signing\\s+flow)\\b/u.test(\n normalized,\n )\n );\n}\n\nfunction looksLikePortalUploadRequest(text: string): boolean {\n const normalized = text.toLowerCase();\n return (\n /\\b(?:upload|submit|send|file)\\b/u.test(normalized) &&\n /\\bportal\\b/u.test(normalized) &&\n /\\b(?:deck|slides?|presentation|pdf|file)\\b/u.test(normalized)\n );\n}\n\nfunction buildPortalUploadIntakeResponse(): ActionResult {\n return {\n text: \"I need the portal link and the deck file or file path before I can upload it. Once you provide both, I will ask for approval to confirm before signing in or submitting anything.\",\n success: true,\n data: {\n actionName: \"COMPUTER_USE\",\n operation: \"portal_upload_intake\",\n requiredInputs: [\"portal_link\", \"deck_file\"],\n requiresConfirmation: true,\n },\n };\n}\n\nfunction defaultSignatureDeadline(text: string): string {\n const match = /\\bin\\s+(\\d+)\\s+days?\\b/iu.exec(text);\n if (match?.[1]) {\n return new Date(\n Date.now() + Number(match[1]) * 24 * 60 * 60 * 1000,\n ).toISOString();\n }\n return new Date(Date.now() + 48 * 60 * 60 * 1000).toISOString();\n}\n\nasync function queueDocumentSignatureRequest(args: {\n runtime: IAgentRuntime;\n message: Memory;\n callback?: HandlerCallback;\n}): Promise<ActionResult> {\n const text = getMessageText(args.message);\n const documentName = /\\bnda\\b/iu.test(text) ? \"NDA\" : \"Document\";\n const documentId = `signature-${String(args.message.id ?? Date.now())}`;\n const signatureUrl =\n text.match(/https?:\\/\\/\\S+/u)?.[0] ?? \"pending-signature-url\";\n const subjectUserId =\n typeof args.message.entityId === \"string\"\n ? args.message.entityId\n : String(args.runtime.agentId);\n const queue = createApprovalQueue(args.runtime, {\n agentId: args.runtime.agentId,\n });\n const request = await queue.enqueue({\n requestedBy: \"PERSONAL_ASSISTANT\",\n subjectUserId,\n action: \"sign_document\",\n payload: {\n action: \"sign_document\",\n documentId,\n documentName,\n signatureUrl,\n deadline: defaultSignatureDeadline(text),\n },\n channel: \"internal\",\n reason: `Initiate signing flow for ${documentName}`,\n expiresAt: new Date(Date.now() + 24 * 60 * 60 * 1000),\n });\n const responseText = `Queued the ${documentName} signing flow for approval before anything is sent.`;\n await args.callback?.({\n text: responseText,\n source: \"action\",\n action: \"PERSONAL_ASSISTANT\",\n });\n return {\n success: true,\n text: responseText,\n data: {\n actionName: \"PERSONAL_ASSISTANT\",\n action: \"sign_document\",\n approvalRequestId: request.id,\n },\n };\n}\n\nfunction buildFlightConflictPreview(text: string): string {\n if (/8\\s*(?:am|a\\.m\\.)/iu.test(text) && /9\\s*(?:am|a\\.m\\.)/iu.test(text)) {\n return \"The 8 AM JFK arrival is too tight for a 9 AM board meeting. I would treat that as a conflict unless the meeting is at the airport or remote. The concrete options are to rebook to an earlier flight or the night before, move the meeting later, or plan to join remotely while in transit.\";\n }\n return \"Your 8 AM JFK arrival is too tight for the 9 AM board meeting on that calendar day. I would treat it as a conflict and propose one of these concrete options: rebook to an arrival no later than 6:30 AM, fly in the night before, move the board meeting to 10:30 AM or later, or join remotely while in transit.\";\n}\n\nfunction approvalChannelFromSource(source: string | null): ApprovalChannel {\n const normalized = (source ?? \"\").toLowerCase();\n if (normalized === \"discord\") return \"discord\";\n if (normalized === \"imessage\") return \"imessage\";\n if (normalized === \"sms\" || normalized === \"text\") return \"sms\";\n if (normalized === \"x\" || normalized === \"twitter\" || normalized === \"x_dm\") {\n return \"x_dm\";\n }\n return \"telegram\";\n}\n\nfunction extractCounterpartyHint(text: string): string | null {\n const match =\n /\\bwith\\s+(?:the\\s+)?(.+?)(?:\\s+(?:guys|team|folks|people)\\b|[,.]|$)/iu.exec(\n text,\n ) ?? /\\b(?:to|for)\\s+([A-Z][\\w &'-]{2,80})(?:[,.]|$)/u.exec(text);\n return match?.[1]?.replace(/\\s+/gu, \" \").trim() || null;\n}\n\nfunction textMatchesEntry(text: string, entryText: string): boolean {\n const normalized = text.toLowerCase();\n const candidate = entryText.toLowerCase();\n return candidate\n .split(/\\s+/u)\n .map((token) => token.replace(/[^a-z0-9]/gu, \"\"))\n .filter((token) => token.length >= 4)\n .some((token) => normalized.includes(token));\n}\n\nasync function handleLifeOpsMessageAction(\n args: LifeOpsMessageActionHookArgs,\n): Promise<ActionResult | null> {\n if (\n args.operation !== \"triage\" &&\n args.operation !== \"send_draft\" &&\n args.operation !== \"draft_followup\" &&\n args.operation !== \"draft_reply\" &&\n args.operation !== \"respond\"\n ) {\n return null;\n }\n\n const text = getMessageText(args.message);\n if (!looksLikeMissedCallRepairApproval(text)) {\n return null;\n }\n\n const triageRepo = new InboxTriageRepository(args.runtime);\n const unresolved = await triageRepo.getUnresolved({ limit: 25 });\n const hint = extractCounterpartyHint(text);\n const match =\n unresolved.find((entry) => {\n const haystack = [\n entry.channelName,\n entry.senderName ?? \"\",\n entry.snippet,\n entry.suggestedResponse ?? \"\",\n ...(entry.threadContext ?? []),\n ].join(\" \");\n return (\n (hint ? haystack.toLowerCase().includes(hint.toLowerCase()) : false) ||\n textMatchesEntry(text, haystack)\n );\n }) ?? unresolved[0];\n\n const recipient =\n match?.sourceRoomId ?? match?.sourceEntityId ?? match?.channelName;\n const body =\n match?.suggestedResponse ??\n (hint\n ? `Sorry I missed your call earlier. I can reschedule and make the walkthrough work this week if you send a couple of windows.`\n : `Sorry I missed your call earlier. I can reschedule this week if you send a couple of windows that work.`);\n const channel = approvalChannelFromSource(match?.source);\n const subjectUserId =\n typeof args.message.entityId === \"string\"\n ? args.message.entityId\n : String(args.runtime.agentId);\n const queue = createApprovalQueue(args.runtime, {\n agentId: args.runtime.agentId,\n });\n const request = await queue.enqueue({\n requestedBy: \"MESSAGE\",\n subjectUserId,\n action: \"send_message\",\n payload: {\n action: \"send_message\",\n recipient,\n body,\n replyToMessageId: match?.sourceMessageId ?? null,\n },\n channel,\n reason: `Repair missed call thread${match?.channelName ? ` with ${match.channelName}` : hint ? ` with ${hint}` : \"\"}`,\n expiresAt: new Date(Date.now() + 24 * 60 * 60 * 1000),\n });\n\n const responseText = `Queued the repair note for your approval before sending it.`;\n await args.callback?.({\n text: responseText,\n source: \"action\",\n action: \"MESSAGE\",\n });\n return {\n text: responseText,\n success: true,\n data: {\n actionName: \"MESSAGE\",\n operation: args.operation,\n requestId: request.id,\n requiresConfirmation: true,\n channel,\n recipient,\n },\n };\n}\n\nasync function handleLifeOpsDirectMessageRequest(args: {\n runtime: IAgentRuntime;\n message: Memory;\n state: State;\n}): Promise<ActionResult | null> {\n const text = getMessageText(args.message);\n if (looksLikeMissedCallRepairApproval(text)) {\n return handleLifeOpsMessageAction({\n operation: \"triage\",\n runtime: args.runtime,\n message: args.message,\n state: args.state,\n });\n }\n if (looksLikeFlightConflictQuestion(text)) {\n return {\n text: buildFlightConflictPreview(text),\n success: true,\n data: {\n actionName: \"CALENDAR\",\n subaction: \"flight_conflict_rebooking\",\n },\n };\n }\n if (looksLikeDocumentSignatureRequest(text)) {\n return queueDocumentSignatureRequest(args);\n }\n if (looksLikePortalUploadRequest(text)) {\n return buildPortalUploadIntakeResponse();\n }\n return null;\n}\n\nasync function ensureTaskWithRetries(args: {\n runtime: IAgentRuntime;\n prefix: string;\n label: string;\n ensure: () => Promise<unknown>;\n delays?: readonly number[];\n}): Promise<void> {\n const isRuntimeStopped = () =>\n (args.runtime as IAgentRuntime & { stopped?: boolean }).stopped === true;\n const delays = args.delays ?? [2_000, 5_000, 10_000];\n for (let attempt = 0; attempt <= delays.length; attempt += 1) {\n if (isRuntimeStopped()) {\n return;\n }\n try {\n await args.ensure();\n return;\n } catch (error) {\n if (isRuntimeStopped()) {\n return;\n }\n const message = error instanceof Error ? error.message : String(error);\n if (attempt < delays.length) {\n args.runtime.logger.warn(\n `${args.prefix} ${args.label} init failed (attempt ${attempt + 1}/${delays.length + 1}), retrying in ${delays[attempt]}ms: ${message}`,\n );\n await new Promise((resolve) => setTimeout(resolve, delays[attempt]));\n continue;\n }\n args.runtime.logger.error(\n `${args.prefix} ${args.label} init failed after ${delays.length + 1} attempts: ${message}`,\n );\n throw error instanceof Error\n ? error\n : new Error(`${args.label} init failed: ${message}`);\n }\n }\n}\n\nfunction isDisabledByEnv(disableKey: string): boolean {\n const disableValue = (process.env[disableKey] ?? \"\").trim().toLowerCase();\n if (\n disableValue === \"1\" ||\n disableValue === \"true\" ||\n disableValue === \"yes\"\n ) {\n return true;\n }\n\n return false;\n}\n\nfunction isGoogleConnectorPlugin(plugin: Plugin): boolean {\n return (\n plugin.name === GOOGLE_CONNECTOR_PLUGIN_NAME ||\n plugin.name === GOOGLE_CONNECTOR_PLUGIN_PACKAGE\n );\n}\n\nfunction resolvePluginExport(module: Record<string, unknown>): Plugin | null {\n for (const key of [\"googlePlugin\", \"default\"]) {\n const value = module[key];\n if (\n value &&\n typeof value === \"object\" &&\n typeof (value as Plugin).name === \"string\"\n ) {\n return value as Plugin;\n }\n }\n return null;\n}\n\nasync function importGoogleConnectorPluginModule(): Promise<\n Record<string, unknown>\n> {\n try {\n return (await import(GOOGLE_CONNECTOR_PLUGIN_PACKAGE)) as Record<\n string,\n unknown\n >;\n } catch (error) {\n const stagedDependencyUrl = new URL(\n \"../node_modules/@elizaos/plugin-google/dist/index.js\",\n import.meta.url,\n );\n try {\n return (await import(stagedDependencyUrl.href)) as Record<\n string,\n unknown\n >;\n } catch {\n throw error;\n }\n }\n}\n\nexport async function ensureLifeOpsGooglePluginRegistered(\n runtime: IAgentRuntime,\n): Promise<void> {\n if (runtime.plugins.some(isGoogleConnectorPlugin)) {\n return;\n }\n\n const module = await importGoogleConnectorPluginModule();\n const plugin = resolvePluginExport(module);\n if (!plugin) {\n throw new Error(\n `${GOOGLE_CONNECTOR_PLUGIN_PACKAGE} did not export a valid plugin`,\n );\n }\n if (runtime.plugins.some(isGoogleConnectorPlugin)) {\n return;\n }\n await runtime.registerPlugin(plugin);\n}\n\n/**\n * Register `@elizaos/plugin-calendar` if it is not already in the runtime so\n * the calendar `CalendarService` (which LifeOps delegates every calendar call\n * to) is available. The calendar plugin is a hard LifeOps dependency, so a\n * static import is sufficient.\n */\nexport async function ensureLifeOpsCalendarPluginRegistered(\n runtime: IAgentRuntime,\n): Promise<void> {\n if (runtime.plugins.some((plugin) => plugin.name === calendarPlugin.name)) {\n return;\n }\n await runtime.registerPlugin({\n ...calendarPlugin,\n actions: [],\n });\n}\n\n/**\n * Register `@elizaos/plugin-finances` if it is not already in the runtime. The\n * finance tables (life_payment_*, life_subscription_*) moved out of LifeOps\n * into the finances plugin's `app_finances` schema; PA's finance repository\n * methods read/write those tables via raw SQL, so the finances plugin (which\n * owns the schema + the non-destructive data copy) MUST be loaded whenever PA\n * is. Hard dependency, so a static import is sufficient.\n */\nexport async function ensureLifeOpsFinancesPluginRegistered(\n runtime: IAgentRuntime,\n): Promise<void> {\n if (runtime.plugins.some((plugin) => plugin.name === financesPlugin.name)) {\n return;\n }\n await runtime.registerPlugin(financesPlugin);\n}\n\n/**\n * Register `@elizaos/plugin-reminders` if it is not already in the runtime. The\n * reminder tables (life_reminder_plans / life_reminder_attempts /\n * life_escalation_states) moved out of LifeOps into the reminders plugin's\n * `app_reminders` schema; PA's reminder repository methods read/write those\n * tables via raw SQL, so the reminders plugin (which owns the schema + the\n * non-destructive data copy) MUST be loaded whenever PA is. Hard dependency,\n * static import.\n */\nexport async function ensureLifeOpsRemindersPluginRegistered(\n runtime: IAgentRuntime,\n): Promise<void> {\n if (runtime.plugins.some((plugin) => plugin.name === remindersPlugin.name)) {\n return;\n }\n await runtime.registerPlugin(remindersPlugin);\n}\n\n/**\n * Register `@elizaos/plugin-inbox` if it is not already in the runtime. The\n * inbox triage domain (the INBOX action, the inboxTriage provider, and the\n * InboxService/InboxRepository back-end over the `app_lifeops` triage tables)\n * moved out of PA into the inbox plugin; PA still owns the cross-channel inbox\n * read route (`GET /api/lifeops/inbox`) via its `getInbox` service method, but\n * the action + provider + triage repository are registered there, so the inbox\n * plugin MUST be loaded whenever PA is. Hard dependency, static import.\n */\nexport async function ensureLifeOpsInboxPluginRegistered(\n runtime: IAgentRuntime,\n): Promise<void> {\n if (runtime.plugins.some((plugin) => plugin.name === inboxPlugin.name)) {\n return;\n }\n await runtime.registerPlugin(inboxPlugin);\n}\n\n/**\n * Register `@elizaos/plugin-remote-desktop` if it is not already in the\n * runtime. The remote-desktop domain (the REMOTE_DESKTOP action, the\n * backend-detection engine, and the in-process RemoteSessionService control\n * plane) moved out of PA into the remote-desktop plugin, which now registers\n * the action. PA no longer registers REMOTE_DESKTOP itself, so the\n * remote-desktop plugin MUST be loaded whenever PA is. No DB, static import.\n */\nexport async function ensureLifeOpsRemoteDesktopPluginRegistered(\n runtime: IAgentRuntime,\n): Promise<void> {\n if (\n runtime.plugins.some((plugin) => plugin.name === remoteDesktopPlugin.name)\n ) {\n return;\n }\n await runtime.registerPlugin(remoteDesktopPlugin);\n}\n\n/**\n * Register `@elizaos/plugin-goals` if it is not already in the runtime. The\n * goal TABLES (life_goal_definitions / life_goal_links) were carved into\n * plugin-goals' own `app_goals` schema; PA's reminder/scheduling subsystem\n * still reads + writes goal links (service-mixin-reminders.ts: getGoal /\n * upsertGoalLink / deleteGoalLinksForLinked), but it does so through the\n * repository, whose SQL now targets `app_goals` — so a single owner of the\n * tables (plugin-goals) backs every reader. plugin-goals MUST be loaded\n * whenever PA is, both to create the `app_goals` schema and to run the\n * non-destructive app_lifeops -> app_goals migration. Hard dependency, static\n * import.\n */\nexport async function ensureLifeOpsGoalsPluginRegistered(\n runtime: IAgentRuntime,\n): Promise<void> {\n if (runtime.plugins.some((plugin) => plugin.name === goalsPlugin.name)) {\n return;\n }\n await runtime.registerPlugin({\n ...goalsPlugin,\n actions: [],\n });\n}\n\nexport async function ensureLifeOpsHealthPluginRegistered(\n runtime: IAgentRuntime,\n): Promise<void> {\n if (!runtime.plugins.some((plugin) => plugin.name === healthPlugin.name)) {\n await runtime.registerPlugin(healthPlugin);\n }\n\n // Health is often loaded as a support package before PA creates the\n // registries it contributes to. Re-run the idempotent contribution hooks\n // after PA has attached those registries so boot order cannot drop health\n // connectors, anchors, bus families, default packs, or the circadian seam.\n registerHealthConnectors(runtime);\n registerHealthAnchors(runtime);\n registerHealthBusFamilies(runtime);\n registerHealthDefaultPacks(runtime);\n registerCircadianInsightContract(\n runtime,\n createDefaultCircadianInsightContract(),\n );\n}\n\nconst LIFEOPS_TASK_INIT_FAILURE_CACHE_KEY =\n \"eliza:lifeops:plugin:init-failures\";\n\nasync function recordTaskInitFailure(\n runtime: IAgentRuntime,\n label: string,\n message: string,\n): Promise<void> {\n try {\n const existing =\n (await runtime.getCache<Record<string, string>>(\n LIFEOPS_TASK_INIT_FAILURE_CACHE_KEY,\n )) ?? {};\n existing[label] = message;\n await runtime.setCache(LIFEOPS_TASK_INIT_FAILURE_CACHE_KEY, existing);\n } catch {\n // Cache not available; the logger.error is the primary signal.\n }\n}\n\n/**\n * Kick off task registration AFTER `runtime.initPromise` resolves — this step\n * cannot be awaited inside `init()` because `init()` runs before the runtime\n * itself has finished initializing. That means failures here are NOT fatal\n * to plugin load; the plugin reports as \"loaded\" and the specific task\n * subsystem reports as \"unavailable\". The failure is surfaced via the\n * runtime cache at LIFEOPS_TASK_INIT_FAILURE_CACHE_KEY for observability and\n * via logger.error so ops tooling can alert on it.\n */\n// Darwin-only action surface: the native activity tracker, the only\n// SCREEN_TIME data source the planner can reason about end-to-end, is\n// macOS-only — hide the owner-screentime umbrella on other hosts so the\n// planner never picks it.\nconst platformGatedActionUmbrellas = isDarwin() ? [ownerScreenTimeAction] : [];\n\nfunction scheduleTaskEnsureAfterRuntimeInit(args: {\n runtime: IAgentRuntime;\n prefix: string;\n label: string;\n ensure: () => Promise<unknown>;\n delays?: readonly number[];\n}): void {\n void args.runtime.initPromise\n .then(async () => {\n if (\n (args.runtime as IAgentRuntime & { stopped?: boolean }).stopped === true\n ) {\n return;\n }\n await ensureTaskWithRetries(args);\n })\n .catch((error) => {\n if (\n (args.runtime as IAgentRuntime & { stopped?: boolean }).stopped === true\n ) {\n return;\n }\n const message = error instanceof Error ? error.message : String(error);\n args.runtime.logger.error(\n `${args.prefix} ${args.label} init failed after runtime initialization (plugin stays loaded, this subsystem is degraded): ${message}`,\n );\n void recordTaskInitFailure(args.runtime, args.label, message);\n });\n}\n\nconst rawPersonalAssistantPlugin: Plugin = {\n name: \"@elizaos/plugin-personal-assistant\",\n description:\n \"Personal assistant workspace: executive workflows, owner approvals, scheduled tasks, calendar, inbox, documents, reminders, money admin, and focused owner-operation views.\",\n dependencies: [GOOGLE_CONNECTOR_PLUGIN_PACKAGE],\n schema: lifeOpsSchema,\n actions: [\n // Canonical owner-operation umbrellas. Each umbrella registers itself + its\n // per-action virtuals via\n // `promoteSubactionsToActions` so the planner sees a discoverable\n // top-level entry for every flat child action (e.g. `BLOCK_BLOCK`,\n // `BLOCK_LIST_ACTIVE`, `OWNER_FINANCES_DASHBOARD`, `CREDENTIALS_FILL`, ...).\n ...promoteSubactionsToActions(blockAction),\n ...promoteSubactionsToActions(ownerFinancesAction),\n ...promoteSubactionsToActions(credentialsAction),\n ...promoteSubactionsToActions(calendarAction),\n ...promoteSubactionsToActions(resolveRequestAction),\n ...promoteSubactionsToActions(ownerRemindersAction),\n ...promoteSubactionsToActions(ownerAlarmsAction),\n ...promoteSubactionsToActions(ownerGoalsAction),\n ...promoteSubactionsToActions(ownerTodosAction),\n ...promoteSubactionsToActions(ownerRoutinesAction),\n ...promoteSubactionsToActions(ownerHealthAction),\n ...platformGatedActionUmbrellas.flatMap((action) =>\n promoteSubactionsToActions(action),\n ),\n ...promoteSubactionsToActions(personalAssistantAction),\n entityAction,\n ...promoteSubactionsToActions(ownerDocumentsAction),\n ...promoteSubactionsToActions(briefAction),\n ...promoteSubactionsToActions(prioritizeAction),\n ...promoteSubactionsToActions(conflictDetectAction),\n ...promoteSubactionsToActions(inboxAction),\n ...promoteSubactionsToActions(voiceCallAction),\n workThreadAction,\n ...promoteSubactionsToActions(scheduledTaskAction),\n ...promoteSubactionsToActions(connectorAction),\n ...messagingTriageActions,\n ],\n providers: [\n browserBridgeProvider,\n firstRunProvider,\n roomPolicyProvider,\n lifeOpsProvider,\n pendingPromptsProvider,\n workThreadsProvider,\n recentTaskStatesProvider,\n healthProvider,\n inboxTriageProvider,\n crossChannelContextProvider,\n activityProfileProvider,\n ],\n services: [\n BrowserBridgePluginService,\n ActivityTrackerService,\n PresenceSignalBridgeService,\n ScheduledTaskRunnerService,\n ],\n responseHandlerEvaluators: [ownerProfileExtractionEvaluator],\n responseHandlerFieldEvaluators: [threadOpsFieldEvaluator],\n // No views — the LifeOps overview surface was removed (owner: \"no need for an\n // overview\"). Domain views live in the per-domain plugins; the personal\n // assistant is the chat itself (PERSONAL_ASSISTANT action).\n events: {\n // Fold recognized voice turns into the entity/relationship graph via\n // the merge engine, then round-trip the binding to the voice-profile\n // owner. See lifeops/entities/voice-observer-bridge.ts.\n [EventType.VOICE_TURN_OBSERVED]: [handleVoiceTurnObserved],\n },\n init: async (\n _pluginConfig: Record<string, unknown>,\n runtime: IAgentRuntime,\n ) => {\n // When LIFEOPS_USE_MOCKOON=1, redirect every external connector base URL\n // to the matching Mockoon environment on localhost. No-op otherwise.\n const mockoonApplied = applyMockoonEnvOverrides();\n if (mockoonApplied.length > 0) {\n logger.info(\n { mockoonConnectors: mockoonApplied },\n `[lifeops] LIFEOPS_USE_MOCKOON=1 — redirecting ${mockoonApplied.length} connector base URL(s) to mock servers`,\n );\n }\n\n await ensureLifeOpsGooglePluginRegistered(runtime);\n await ensureLifeOpsCalendarPluginRegistered(runtime);\n await ensureLifeOpsFinancesPluginRegistered(runtime);\n await ensureLifeOpsRemindersPluginRegistered(runtime);\n await ensureLifeOpsGoalsPluginRegistered(runtime);\n await ensureLifeOpsInboxPluginRegistered(runtime);\n await ensureLifeOpsRemoteDesktopPluginRegistered(runtime);\n\n // Inject the LifeOps-backed calendar gate once the runtime has finished\n // initializing both plugins, so calendar events keep firing reminders and\n // writing audit rows through the LifeOps repository. Non-fatal on failure:\n // the calendar service falls back to its default gate (Google-only, no\n // reminder/audit side effects).\n void runtime.initPromise\n .then(() => {\n if (\n (runtime as IAgentRuntime & { stopped?: boolean }).stopped === true\n ) {\n return;\n }\n registerLifeOpsCalendarGate(runtime);\n })\n .catch((error) => {\n logger.error(\n `[lifeops] failed to register calendar host gate (calendar degraded to default gate): ${\n error instanceof Error ? error.message : String(error)\n }`,\n );\n });\n\n const connectorRegistry = createConnectorRegistry();\n registerDefaultConnectorPack(connectorRegistry, runtime);\n registerConnectorRegistry(runtime, connectorRegistry);\n (\n runtime as IAgentRuntime & {\n connectorRegistry?: typeof connectorRegistry;\n }\n ).connectorRegistry = connectorRegistry;\n\n const channelRegistry = createChannelRegistry();\n registerDefaultChannelPack(channelRegistry, runtime);\n registerChannelRegistry(runtime, channelRegistry);\n (\n runtime as IAgentRuntime & { channelRegistry?: typeof channelRegistry }\n ).channelRegistry = channelRegistry;\n\n const sendPolicyRegistry = createSendPolicyRegistry();\n registerSendPolicyRegistry(runtime, sendPolicyRegistry);\n\n registerDefaultBlockerPack(runtime);\n\n const anchorRegistry = createAnchorRegistry();\n registerAppLifeOpsAnchors(anchorRegistry);\n registerAnchorRegistry(runtime, anchorRegistry);\n (\n runtime as IAgentRuntime & { anchorRegistry?: typeof anchorRegistry }\n ).anchorRegistry = anchorRegistry;\n\n const eventKindRegistry = createEventKindRegistry();\n registerAppLifeOpsEventKinds(eventKindRegistry);\n registerEventKindRegistry(runtime, eventKindRegistry);\n (\n runtime as IAgentRuntime & {\n eventKindRegistry?: typeof eventKindRegistry;\n }\n ).eventKindRegistry = eventKindRegistry;\n\n const familyRegistry = createFamilyRegistry();\n registerBuiltinTelemetryFamilies(familyRegistry);\n registerAppLifeOpsBusFamilies(familyRegistry);\n registerFamilyRegistry(runtime, familyRegistry);\n (\n runtime as IAgentRuntime & { busFamilyRegistry?: typeof familyRegistry }\n ).busFamilyRegistry = familyRegistry;\n\n const workflowStepRegistry = createWorkflowStepRegistry();\n registerDefaultWorkflowStepPack(workflowStepRegistry);\n registerWorkflowStepRegistry(runtime, workflowStepRegistry);\n (\n runtime as IAgentRuntime & {\n workflowStepRegistry?: typeof workflowStepRegistry;\n }\n ).workflowStepRegistry = workflowStepRegistry;\n\n // FeatureFlagRegistry — open-key registry covering the 10 closed\n // `LifeOpsFeatureKey` built-ins plus any 3rd-party plugin contributions.\n // Audit C top-1 finding (`docs/audit/rigidity-hunt-audit.md`).\n registerDefaultFeatureFlagPack(runtime);\n\n const activitySignalBus = createActivitySignalBus({ familyRegistry });\n registerActivitySignalBus(runtime, activitySignalBus);\n\n await ensureLifeOpsHealthPluginRegistered(runtime);\n\n const ownerFactStore = createOwnerFactStore(runtime);\n registerOwnerFactStore(runtime, ownerFactStore);\n\n const promptRegistry = createMultilingualPromptRegistry();\n registerDefaultPromptPack(promptRegistry);\n registerMultilingualPromptRegistry(runtime, promptRegistry);\n\n // End-to-end locale wiring: the planner (in core) reads this provider\n // each turn, awaits the resolved owner-locale, and passes the\n // resulting `LocalizedActionExampleResolver` into `buildActionCatalog`.\n registerLocalizedExamplesProvider(\n runtime,\n createOwnerLocaleExamplesProvider(runtime),\n );\n\n // Owner outbound-message approval policy: gmail drafts require explicit\n // owner approval; everything else passes straight through.\n registerSendPolicy(runtime, createOwnerSendPolicy());\n (\n runtime as IAgentRuntime & {\n lifeOpsMessageActionHook?: {\n handleMessageAction: typeof handleLifeOpsMessageAction;\n };\n lifeOpsDirectMessageHook?: {\n handleMessageRequest: typeof handleLifeOpsDirectMessageRequest;\n };\n }\n ).lifeOpsMessageActionHook = {\n handleMessageAction: handleLifeOpsMessageAction,\n };\n (\n runtime as IAgentRuntime & {\n lifeOpsDirectMessageHook?: {\n handleMessageRequest: typeof handleLifeOpsDirectMessageRequest;\n };\n }\n ).lifeOpsDirectMessageHook = {\n handleMessageRequest: handleLifeOpsDirectMessageRequest,\n };\n\n // First-party adapters backed by LifeOps services. Gmail and X replace the\n // core default adapters so MESSAGE triage operations operate on real\n // connected data.\n const triage = getDefaultTriageService();\n triage.register(new GoogleGmailAdapter());\n triage.register(new XDmAdapter());\n triage.register(new CalendlyAdapter());\n triage.register(new BrowserBridgeAdapter());\n\n // Register the proactive activity-profile task worker.\n const proactiveAgentDisabled = isDisabledByEnv(\n \"ELIZA_DISABLE_PROACTIVE_AGENT\",\n );\n if (!proactiveAgentDisabled) {\n registerProactiveTaskWorker(runtime);\n scheduleTaskEnsureAfterRuntimeInit({\n runtime,\n prefix: \"[proactive]\",\n label: \"task\",\n ensure: async () => {\n if (!isAppFirstRunComplete()) return;\n await ensureProactiveAgentTask(runtime);\n },\n });\n } else {\n runtime.logger.info(\n \"[proactive] Proactive agent task skipped — ELIZA_DISABLE_PROACTIVE_AGENT=1\",\n );\n }\n\n // Register the follow-up tracker worker.\n registerFollowupTrackerWorker(runtime);\n scheduleTaskEnsureAfterRuntimeInit({\n runtime,\n prefix: \"[followup-tracker]\",\n label: \"task\",\n ensure: async () => {\n await ensureFollowupTrackerTask(runtime);\n },\n });\n\n registerBlockRuleReconcilerWorker(runtime);\n\n scheduleTaskEnsureAfterRuntimeInit({\n runtime,\n prefix: \"[lifeops]\",\n label: \"inbox cache schema\",\n ensure: async () => {\n await LifeOpsRepository.ensureInboxCacheIndexes(runtime);\n },\n });\n\n const lifeOpsSchedulerDisabled = isDisabledByEnv(\n \"ELIZA_DISABLE_LIFEOPS_SCHEDULER\",\n );\n if (!lifeOpsSchedulerDisabled) {\n registerLifeOpsTaskWorker(runtime);\n scheduleTaskEnsureAfterRuntimeInit({\n runtime,\n prefix: \"[lifeops]\",\n label: \"scheduler task\",\n ensure: async () => {\n await ensureLifeOpsSchedulerTask(runtime);\n },\n });\n } else {\n runtime.logger.info(\n \"[lifeops] Scheduler task skipped — ELIZA_DISABLE_LIFEOPS_SCHEDULER=1\",\n );\n }\n },\n /**\n * Tear down everything `init` registered so `runtime.unloadPlugin(...)`\n * produces an actually-stopped LifeOps:\n * - Unregister task workers (proactive, follow-up, scheduler)\n * - Delete the persisted task rows that reference those workers\n *\n * Routes, services, actions, providers, and event listeners are cleaned\n * up automatically by the runtime's plugin-lifecycle teardown — no need\n * to touch those here.\n */\n dispose: async (runtime: IAgentRuntime) => {\n delete (runtime as IAgentRuntime & { lifeOpsMessageActionHook?: unknown })\n .lifeOpsMessageActionHook;\n delete (runtime as IAgentRuntime & { lifeOpsDirectMessageHook?: unknown })\n .lifeOpsDirectMessageHook;\n\n const taskNames: readonly string[] = [\n PROACTIVE_TASK_NAME,\n LIFEOPS_TASK_NAME,\n FOLLOWUP_TRACKER_TASK_NAME,\n ];\n\n // Delete persisted Task rows so the scheduler doesn't try to run them\n // on restart (the worker function will be gone).\n for (const name of taskNames) {\n try {\n const tasks = await runtime.getTasks({\n agentIds: [runtime.agentId],\n });\n for (const task of tasks) {\n if (task.name === name && task.id) {\n try {\n await runtime.deleteTask(task.id);\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n runtime.logger.warn(\n `[lifeops:dispose] Failed to delete task ${name} (${task.id}): ${msg}`,\n );\n }\n }\n }\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n runtime.logger.warn(\n `[lifeops:dispose] Failed to list tasks for \"${name}\": ${msg}`,\n );\n }\n }\n\n // Unregister the in-memory worker functions.\n for (const name of taskNames) {\n try {\n runtime.unregisterTaskWorker(name);\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n runtime.logger.warn(\n `[lifeops:dispose] Failed to unregister task worker \"${name}\": ${msg}`,\n );\n }\n }\n },\n};\n\nexport const personalAssistantPlugin: Plugin = rawPersonalAssistantPlugin;\n\nexport { appBlockerProvider } from \"@elizaos/plugin-blocker/providers/app-blocker\";\nexport {\n getAppBlockerPermissionState,\n getAppBlockerStatus,\n getCachedAppBlockerStatus,\n getInstalledApps,\n requestAppBlockerPermission,\n selectAppsForBlocking,\n startAppBlock,\n stopAppBlock,\n} from \"@elizaos/plugin-blocker/services/app-blocker/index\";\nexport { workThreadAction } from \"./actions/work-thread.js\";\nexport type {\n OverdueDigest,\n OverdueFollowup,\n} from \"./followup/index.js\";\nexport {\n computeOverdueFollowups,\n FOLLOWUP_DEFAULT_THRESHOLD_DAYS,\n FOLLOWUP_MEMORY_TABLE,\n FOLLOWUP_TRACKER_INTERVAL_MS,\n FOLLOWUP_TRACKER_TASK_NAME,\n FOLLOWUP_TRACKER_TASK_TAGS,\n getFollowupTrackerRoomId,\n listOverdueFollowupsAction,\n markFollowupDoneAction,\n reconcileFollowupsOnce,\n registerFollowupTrackerWorker,\n setFollowupThresholdAction,\n writeOverdueDigestMemory,\n} from \"./followup/index.js\";\nexport { CheckinService } from \"./lifeops/checkin/checkin-service.js\";\nexport type { CheckinSchedule } from \"./lifeops/checkin/schedule-resolver.js\";\nexport { resolveCheckinSchedule } from \"./lifeops/checkin/schedule-resolver.js\";\nexport type {\n CheckinKind,\n CheckinReport,\n EscalationLevel,\n MeetingEntry,\n OverdueTodo,\n RecentWin,\n RecordAcknowledgementRequest,\n RunCheckinRequest,\n} from \"./lifeops/checkin/types.js\";\nexport {\n FirstRunService,\n type ScheduledTaskRunnerLike,\n setScheduledTaskRunner,\n} from \"./lifeops/first-run/service.js\";\nexport {\n createFirstRunStateStore,\n createOwnerFactStore,\n type FirstRunRecord,\n type FirstRunStateStore,\n type OwnerFactStore,\n type OwnerFacts,\n type OwnerFactsPatch,\n} from \"./lifeops/first-run/state.js\";\nexport {\n createGlobalPauseStore,\n type GlobalPauseStatus,\n type GlobalPauseStore,\n type GlobalPauseWindow,\n resolveGlobalPauseStore,\n} from \"./lifeops/global-pause/store.js\";\nexport {\n createHandoffStore,\n describeResumeCondition,\n evaluateResume,\n type HandoffEnterOpts,\n type HandoffStatus,\n type HandoffStore,\n type ResumeCondition,\n type ResumeEvaluation,\n type ResumeEvaluationInput,\n resolveHandoffStore,\n} from \"./lifeops/handoff/store.js\";\nexport {\n createMultilingualPromptRegistry,\n getDefaultPromptExamplePair,\n getDefaultPromptRegistry,\n getMultilingualPromptRegistry,\n type MultilingualPromptRegistry,\n PROMPT_REGISTRY_DEFAULT_LOCALE,\n type PromptExampleEntry,\n type PromptLocale,\n type PromptRegistryFilter,\n registerDefaultPromptPack,\n registerMultilingualPromptRegistry,\n resolveActionExamplePairs,\n} from \"./lifeops/i18n/prompt-registry.js\";\nexport {\n type EscalationRule,\n getOwnerFactStore,\n type OwnerFactEntry,\n type OwnerFactProvenance,\n type OwnerFactProvenanceSource,\n type OwnerFactWindow,\n type OwnerQuietHours,\n ownerFactsToView,\n type PolicyPatchEscalationRule,\n type PolicyPatchReminderIntensity,\n type ReminderIntensity,\n registerOwnerFactStore,\n resolveOwnerFactStore,\n} from \"./lifeops/owner/fact-store.js\";\nexport {\n createPendingPromptsStore,\n type PendingPromptRecordInput,\n type PendingPromptsStore,\n resolvePendingPromptsStore,\n} from \"./lifeops/pending-prompts/store.js\";\n// LifeOps runtime exports\nexport {\n ensureLifeOpsSchedulerTask,\n executeLifeOpsSchedulerTask,\n LIFEOPS_TASK_INTERVAL_MS,\n LIFEOPS_TASK_JITTER_MS,\n LIFEOPS_TASK_NAME,\n LIFEOPS_TASK_TAGS,\n registerLifeOpsTaskWorker,\n resolveLifeOpsTaskIntervalMs,\n} from \"./lifeops/runtime.js\";\nexport type {\n AnchorConsolidationPolicy,\n AnchorContribution,\n AnchorRegistry,\n CompletionCheckContribution,\n CompletionCheckRegistry,\n EscalationLadder,\n EscalationLadderRegistry,\n EscalationStep,\n GateDecision,\n ProcessDueScheduledTasksRequest,\n ProcessDueScheduledTasksResult,\n ScheduledTask,\n ScheduledTaskCompletionCheck,\n ScheduledTaskContextRequest,\n ScheduledTaskDueContext,\n ScheduledTaskDueDecision,\n ScheduledTaskEscalation,\n ScheduledTaskFilter,\n ScheduledTaskKind,\n ScheduledTaskLogEntry,\n ScheduledTaskOutput,\n ScheduledTaskPipeline,\n ScheduledTaskPriority,\n ScheduledTaskRef,\n ScheduledTaskRunner,\n ScheduledTaskRunnerHandle,\n ScheduledTaskShouldFire,\n ScheduledTaskState,\n ScheduledTaskStatus,\n ScheduledTaskSubject,\n ScheduledTaskTrigger,\n ScheduledTaskVerb,\n TaskGateContribution,\n TaskGateRegistry,\n TerminalState,\n} from \"./lifeops/scheduled-task/index.js\";\nexport {\n createAnchorRegistry,\n createCompletionCheckRegistry,\n createConsolidationRegistry,\n createEscalationLadderRegistry,\n createInMemoryScheduledTaskLogStore,\n createInMemoryScheduledTaskStore,\n createScheduledTaskRunner,\n createTaskGateRegistry,\n DEFAULT_ESCALATION_LADDERS,\n PRIORITY_DEFAULT_LADDER_KEYS,\n processDueScheduledTasks,\n registerBuiltInCompletionChecks,\n registerBuiltInGates,\n registerDefaultEscalationLadders,\n registerFallbackAnchors,\n STATE_LOG_DEFAULT_RETENTION_DAYS,\n} from \"./lifeops/scheduled-task/index.js\";\nexport type { CreateRuntimeRunnerOptions } from \"./lifeops/scheduled-task/runtime-wiring.js\";\nexport { createRuntimeScheduledTaskRunner } from \"./lifeops/scheduled-task/runtime-wiring.js\";\nexport type { GetScheduledTaskRunnerOptions } from \"./lifeops/scheduled-task/service.js\";\nexport {\n getScheduledTaskRunner,\n ScheduledTaskRunnerService,\n} from \"./lifeops/scheduled-task/service.js\";\nexport { threadOpsFieldEvaluator } from \"./lifeops/work-threads/field-evaluator-thread-ops.js\";\nexport {\n type CreateWorkThreadInput,\n createWorkThreadStore,\n type ThreadSourceRef,\n type UpdateWorkThreadInput,\n type WorkThread,\n type WorkThreadEvent,\n type WorkThreadEventType,\n type WorkThreadListFilter,\n type WorkThreadStatus,\n type WorkThreadStore,\n} from \"./lifeops/work-threads/index.js\";\nexport type { FirstRunAffordance } from \"./providers/first-run.js\";\nexport { firstRunProvider } from \"./providers/first-run.js\";\nexport { healthProvider } from \"./providers/health.js\";\nexport { inboxTriageProvider } from \"./providers/inbox-triage.js\";\nexport { lifeOpsProvider } from \"./providers/lifeops.js\";\nexport type {\n PendingPrompt,\n PendingPromptsProvider,\n} from \"./providers/pending-prompts.js\";\nexport {\n createPendingPromptsProvider,\n pendingPromptsProvider,\n} from \"./providers/pending-prompts.js\";\nexport type {\n RecentTaskStatesProvider,\n RecentTaskStatesSummary,\n} from \"./providers/recent-task-states.js\";\nexport {\n createRecentTaskStatesProvider,\n recentTaskStatesProvider,\n} from \"./providers/recent-task-states.js\";\nexport { roomPolicyProvider } from \"./providers/room-policy.js\";\nexport { workThreadsProvider } from \"./providers/work-threads.js\";\nexport type { LifeOpsRouteContext } from \"./routes/lifeops-routes.js\";\nexport { handleLifeOpsRoutes } from \"./routes/lifeops-routes.js\";\nexport type { WebsiteBlockerRouteContext } from \"./routes/website-blocker-routes.js\";\nexport { handleWebsiteBlockerRoutes } from \"./routes/website-blocker-routes.js\";\nexport { BrowserBridgePluginService, browserBridgeProvider };\n"],"mappings":"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","names":["workThreadAction","FOLLOWUP_TRACKER_TASK_NAME","registerFollowupTrackerWorker","createOwnerFactStore","createMultilingualPromptRegistry","registerDefaultPromptPack","registerMultilingualPromptRegistry","registerOwnerFactStore","ensureLifeOpsSchedulerTask","LIFEOPS_TASK_NAME","registerLifeOpsTaskWorker","createAnchorRegistry","ScheduledTaskRunnerService","threadOpsFieldEvaluator","firstRunProvider","healthProvider","inboxTriageProvider","lifeOpsProvider","pendingPromptsProvider","recentTaskStatesProvider","roomPolicyProvider","workThreadsProvider"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,QAAQ,EAGd,MAAM,eAAe,CAAC;AAqCvB,eAAO,MAAM,sBAAsB,EAAE,QA+FpC,CAAC;AAEF,eAAO,MAAM,qBAAqB,UAAyB,CAAC"}
|
package/dist/provider.js
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { hasOwnerAccess } from "@elizaos/agent";
|
|
2
|
+
import {
|
|
3
|
+
logger
|
|
4
|
+
} from "@elizaos/core";
|
|
5
|
+
import { LifeOpsService } from "./lifeops/service.js";
|
|
6
|
+
const MAX_COMPANIONS = 4;
|
|
7
|
+
const MAX_TABS = 6;
|
|
8
|
+
const MAX_SESSIONS = 6;
|
|
9
|
+
function formatSettingsLine(settings) {
|
|
10
|
+
const status = settings.enabled ? settings.trackingMode : "off";
|
|
11
|
+
const control = settings.allowBrowserControl ? "control on" : "control off";
|
|
12
|
+
const paused = settings.pauseUntil ? `, paused until ${settings.pauseUntil}` : "";
|
|
13
|
+
return `Agent Browser Bridge: ${status}, ${control}${paused}.`;
|
|
14
|
+
}
|
|
15
|
+
function formatCompanionLine(companion) {
|
|
16
|
+
return `- ${companion.browser}/${companion.profileLabel || companion.profileId}: ${companion.connectionState}${companion.lastSeenAt ? `, seen ${companion.lastSeenAt}` : ""}`;
|
|
17
|
+
}
|
|
18
|
+
function formatTabLine(tab) {
|
|
19
|
+
const flags = [
|
|
20
|
+
tab.focusedActive ? "focused" : null,
|
|
21
|
+
tab.activeInWindow ? "active" : null
|
|
22
|
+
].filter(Boolean);
|
|
23
|
+
return `- ${tab.title} (${tab.browser}/${tab.profileId}${flags.length > 0 ? `, ${flags.join(", ")}` : ""}) ${tab.url}`;
|
|
24
|
+
}
|
|
25
|
+
const lifeOpsBrowserProvider = {
|
|
26
|
+
name: "lifeops_browser",
|
|
27
|
+
description: "Owner-only context for the user's real Chrome and Safari browsers connected through Agent Browser Bridge. Separate from Eliza Desktop Browser.",
|
|
28
|
+
descriptionCompressed: "Owner: real Chrome/Safari browser context.",
|
|
29
|
+
dynamic: true,
|
|
30
|
+
position: 13,
|
|
31
|
+
contexts: ["browser", "settings"],
|
|
32
|
+
contextGate: { anyOf: ["browser", "settings"] },
|
|
33
|
+
cacheScope: "turn",
|
|
34
|
+
roleGate: { minRole: "OWNER" },
|
|
35
|
+
async get(runtime, message, _state) {
|
|
36
|
+
if (!await hasOwnerAccess(runtime, message)) {
|
|
37
|
+
return { text: "", values: {}, data: {} };
|
|
38
|
+
}
|
|
39
|
+
try {
|
|
40
|
+
const service = new LifeOpsService(runtime);
|
|
41
|
+
const [settings, companions, tabs, currentPage, sessions] = await Promise.all([
|
|
42
|
+
service.getBrowserSettings(),
|
|
43
|
+
service.listBrowserCompanions(),
|
|
44
|
+
service.listBrowserTabs(),
|
|
45
|
+
service.getCurrentBrowserPage(),
|
|
46
|
+
service.listBrowserSessions()
|
|
47
|
+
]);
|
|
48
|
+
const activeSessions = sessions.filter(
|
|
49
|
+
(session) => session.status === "awaiting_confirmation" || session.status === "queued" || session.status === "running"
|
|
50
|
+
).slice(0, MAX_SESSIONS);
|
|
51
|
+
const listedCompanions = companions.slice(0, MAX_COMPANIONS);
|
|
52
|
+
const listedTabs = tabs.slice(0, MAX_TABS);
|
|
53
|
+
const lines = [
|
|
54
|
+
"## Agent Browser Bridge",
|
|
55
|
+
"This is the user's real browser profile connected through Agent Browser Bridge, not Eliza Desktop Browser.",
|
|
56
|
+
formatSettingsLine(settings),
|
|
57
|
+
`Companions: ${companions.length}. Active sessions: ${activeSessions.length}.`
|
|
58
|
+
];
|
|
59
|
+
if (currentPage) {
|
|
60
|
+
lines.push(`Current page: ${currentPage.title} ${currentPage.url}`);
|
|
61
|
+
}
|
|
62
|
+
if (companions.length > 0) {
|
|
63
|
+
lines.push("Companion status:");
|
|
64
|
+
lines.push(...listedCompanions.map(formatCompanionLine));
|
|
65
|
+
}
|
|
66
|
+
if (tabs.length > 0) {
|
|
67
|
+
lines.push("Remembered tabs:");
|
|
68
|
+
lines.push(...listedTabs.map(formatTabLine));
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
text: lines.join("\n"),
|
|
72
|
+
values: {
|
|
73
|
+
lifeOpsBrowserEnabled: settings.enabled,
|
|
74
|
+
lifeOpsBrowserTrackingMode: settings.trackingMode,
|
|
75
|
+
lifeOpsBrowserControlEnabled: settings.allowBrowserControl,
|
|
76
|
+
lifeOpsBrowserCurrentUrl: currentPage?.url ?? ""
|
|
77
|
+
},
|
|
78
|
+
data: {
|
|
79
|
+
settings,
|
|
80
|
+
companions: listedCompanions,
|
|
81
|
+
tabs: listedTabs,
|
|
82
|
+
currentPage,
|
|
83
|
+
sessions: activeSessions
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
} catch (error) {
|
|
87
|
+
logger.warn(
|
|
88
|
+
`[BrowserBridgeProvider] failed to load browser bridge context; reporting disabled: ${error instanceof Error ? error.message : String(error)}`
|
|
89
|
+
);
|
|
90
|
+
return {
|
|
91
|
+
text: "",
|
|
92
|
+
values: {
|
|
93
|
+
lifeOpsBrowserEnabled: false,
|
|
94
|
+
lifeOpsBrowserTrackingMode: "off",
|
|
95
|
+
lifeOpsBrowserControlEnabled: false,
|
|
96
|
+
lifeOpsBrowserCurrentUrl: ""
|
|
97
|
+
},
|
|
98
|
+
data: {}
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
const browserBridgeProvider = lifeOpsBrowserProvider;
|
|
104
|
+
export {
|
|
105
|
+
browserBridgeProvider,
|
|
106
|
+
lifeOpsBrowserProvider
|
|
107
|
+
};
|
|
108
|
+
//# sourceMappingURL=provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/provider.ts"],"sourcesContent":["import { hasOwnerAccess } from \"@elizaos/agent\";\nimport {\n type IAgentRuntime,\n logger,\n type Memory,\n type Provider,\n type ProviderResult,\n type State,\n} from \"@elizaos/core\";\nimport type { LifeOpsBrowserSession } from \"@elizaos/shared\";\nimport { LifeOpsService } from \"./lifeops/service.js\";\n\nconst MAX_COMPANIONS = 4;\nconst MAX_TABS = 6;\nconst MAX_SESSIONS = 6;\n\nfunction formatSettingsLine(\n settings: Awaited<ReturnType<LifeOpsService[\"getBrowserSettings\"]>>,\n): string {\n const status = settings.enabled ? settings.trackingMode : \"off\";\n const control = settings.allowBrowserControl ? \"control on\" : \"control off\";\n const paused = settings.pauseUntil\n ? `, paused until ${settings.pauseUntil}`\n : \"\";\n return `Agent Browser Bridge: ${status}, ${control}${paused}.`;\n}\n\nfunction formatCompanionLine(\n companion: Awaited<\n ReturnType<LifeOpsService[\"listBrowserCompanions\"]>\n >[number],\n): string {\n return `- ${companion.browser}/${companion.profileLabel || companion.profileId}: ${companion.connectionState}${companion.lastSeenAt ? `, seen ${companion.lastSeenAt}` : \"\"}`;\n}\n\nfunction formatTabLine(\n tab: Awaited<ReturnType<LifeOpsService[\"listBrowserTabs\"]>>[number],\n): string {\n const flags = [\n tab.focusedActive ? \"focused\" : null,\n tab.activeInWindow ? \"active\" : null,\n ].filter(Boolean);\n return `- ${tab.title} (${tab.browser}/${tab.profileId}${flags.length > 0 ? `, ${flags.join(\", \")}` : \"\"}) ${tab.url}`;\n}\n\nexport const lifeOpsBrowserProvider: Provider = {\n name: \"lifeops_browser\",\n description:\n \"Owner-only context for the user's real Chrome and Safari browsers connected through Agent Browser Bridge. Separate from Eliza Desktop Browser.\",\n descriptionCompressed: \"Owner: real Chrome/Safari browser context.\",\n dynamic: true,\n position: 13,\n contexts: [\"browser\", \"settings\"],\n contextGate: { anyOf: [\"browser\", \"settings\"] },\n cacheScope: \"turn\",\n roleGate: { minRole: \"OWNER\" },\n async get(\n runtime: IAgentRuntime,\n message: Memory,\n _state: State,\n ): Promise<ProviderResult> {\n if (!(await hasOwnerAccess(runtime, message))) {\n return { text: \"\", values: {}, data: {} };\n }\n\n try {\n const service = new LifeOpsService(runtime);\n const [settings, companions, tabs, currentPage, sessions] =\n await Promise.all([\n service.getBrowserSettings(),\n service.listBrowserCompanions(),\n service.listBrowserTabs(),\n service.getCurrentBrowserPage(),\n service.listBrowserSessions(),\n ]);\n const activeSessions = sessions\n .filter(\n (session: LifeOpsBrowserSession) =>\n session.status === \"awaiting_confirmation\" ||\n session.status === \"queued\" ||\n session.status === \"running\",\n )\n .slice(0, MAX_SESSIONS);\n const listedCompanions = companions.slice(0, MAX_COMPANIONS);\n const listedTabs = tabs.slice(0, MAX_TABS);\n const lines = [\n \"## Agent Browser Bridge\",\n \"This is the user's real browser profile connected through Agent Browser Bridge, not Eliza Desktop Browser.\",\n formatSettingsLine(settings),\n `Companions: ${companions.length}. Active sessions: ${activeSessions.length}.`,\n ];\n if (currentPage) {\n lines.push(`Current page: ${currentPage.title} ${currentPage.url}`);\n }\n if (companions.length > 0) {\n lines.push(\"Companion status:\");\n lines.push(...listedCompanions.map(formatCompanionLine));\n }\n if (tabs.length > 0) {\n lines.push(\"Remembered tabs:\");\n lines.push(...listedTabs.map(formatTabLine));\n }\n\n return {\n text: lines.join(\"\\n\"),\n values: {\n lifeOpsBrowserEnabled: settings.enabled,\n lifeOpsBrowserTrackingMode: settings.trackingMode,\n lifeOpsBrowserControlEnabled: settings.allowBrowserControl,\n lifeOpsBrowserCurrentUrl: currentPage?.url ?? \"\",\n },\n data: {\n settings,\n companions: listedCompanions,\n tabs: listedTabs,\n currentPage,\n sessions: activeSessions,\n },\n };\n } catch (error) {\n // A LifeOpsService read failure makes the browser bridge appear disabled.\n // Degrade to the disabled-context result so composeState still completes,\n // but surface the read failure so a broken pipeline is observable.\n logger.warn(\n `[BrowserBridgeProvider] failed to load browser bridge context; reporting disabled: ${\n error instanceof Error ? error.message : String(error)\n }`,\n );\n return {\n text: \"\",\n values: {\n lifeOpsBrowserEnabled: false,\n lifeOpsBrowserTrackingMode: \"off\",\n lifeOpsBrowserControlEnabled: false,\n lifeOpsBrowserCurrentUrl: \"\",\n },\n data: {},\n };\n }\n },\n};\n\nexport const browserBridgeProvider = lifeOpsBrowserProvider;\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity-profile.d.ts","sourceRoot":"","sources":["../../src/providers/activity-profile.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,QAAQ,EAGT,MAAM,eAAe,CAAC;AAwBvB,eAAO,MAAM,uBAAuB,EAAE,QAgJrC,CAAC"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { hasOwnerAccess } from "@elizaos/agent";
|
|
2
|
+
import { logger } from "@elizaos/core";
|
|
3
|
+
import { resolveCurrentBucket } from "../activity-profile/analyzer.js";
|
|
4
|
+
import { PROACTIVE_TASK_TAGS } from "../activity-profile/proactive-worker.js";
|
|
5
|
+
import { readProfileFromMetadata } from "../activity-profile/service.js";
|
|
6
|
+
import { resolveDefaultTimeZone } from "../lifeops/defaults.js";
|
|
7
|
+
import { getLocalDateKey, getZonedDateParts } from "../lifeops/time.js";
|
|
8
|
+
const MAX_PROFILE_TASKS = 25;
|
|
9
|
+
function isRecord(value) {
|
|
10
|
+
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
11
|
+
}
|
|
12
|
+
function formatAgo(ms) {
|
|
13
|
+
if (ms < 6e4) return "just now";
|
|
14
|
+
const minutes = Math.floor(ms / 6e4);
|
|
15
|
+
if (minutes < 60) return `${minutes}m ago`;
|
|
16
|
+
const hours = Math.floor(minutes / 60);
|
|
17
|
+
if (hours < 24) return `${hours}h ago`;
|
|
18
|
+
const days = Math.floor(hours / 24);
|
|
19
|
+
return `${days}d ago`;
|
|
20
|
+
}
|
|
21
|
+
const activityProfileProvider = {
|
|
22
|
+
name: "activity-profile",
|
|
23
|
+
description: "Owner and agent only. Compact user activity context: platform, time bucket, recency.",
|
|
24
|
+
descriptionCompressed: "owner+agent activity: platform, time bucket, recency",
|
|
25
|
+
dynamic: true,
|
|
26
|
+
position: 13,
|
|
27
|
+
contexts: ["screen_time", "tasks", "health"],
|
|
28
|
+
contextGate: { anyOf: ["screen_time", "tasks", "health"] },
|
|
29
|
+
cacheScope: "turn",
|
|
30
|
+
roleGate: { minRole: "OWNER" },
|
|
31
|
+
async get(runtime, message, _state) {
|
|
32
|
+
if (!await hasOwnerAccess(runtime, message)) {
|
|
33
|
+
return { text: "", values: {}, data: {} };
|
|
34
|
+
}
|
|
35
|
+
const timezone = resolveDefaultTimeZone();
|
|
36
|
+
const now = /* @__PURE__ */ new Date();
|
|
37
|
+
const bucket = resolveCurrentBucket(timezone, now);
|
|
38
|
+
try {
|
|
39
|
+
const tasks = await runtime.getTasks({
|
|
40
|
+
agentIds: [runtime.agentId],
|
|
41
|
+
tags: [...PROACTIVE_TASK_TAGS]
|
|
42
|
+
});
|
|
43
|
+
const task = tasks.slice(0, MAX_PROFILE_TASKS).find((t) => t.name === "PROACTIVE_AGENT" && isRecord(t.metadata));
|
|
44
|
+
const metadata = isRecord(task?.metadata) ? task.metadata : null;
|
|
45
|
+
const profile = readProfileFromMetadata(metadata);
|
|
46
|
+
if (profile) {
|
|
47
|
+
const parts = [];
|
|
48
|
+
const localDateKey = getLocalDateKey(getZonedDateParts(now, timezone));
|
|
49
|
+
const hasActiveScreen = profile.screenContextAvailable && profile.screenContextFocus !== null && profile.screenContextFocus !== "idle" && profile.screenContextFocus !== "unknown";
|
|
50
|
+
if (!hasActiveScreen && profile.lastSeenPlatform && profile.lastSeenAt > 0) {
|
|
51
|
+
const ago = formatAgo(now.getTime() - profile.lastSeenAt);
|
|
52
|
+
parts.push(
|
|
53
|
+
profile.isCurrentlyActive ? `active on ${profile.lastSeenPlatform} ${ago}` : `last seen on ${profile.lastSeenPlatform} ${ago}`
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
if (hasActiveScreen && profile.screenContextFocus) {
|
|
57
|
+
const screenAgo = profile.screenContextSampledAt ? formatAgo(now.getTime() - profile.screenContextSampledAt) : "recently";
|
|
58
|
+
const screenParts = [`screen ${profile.screenContextFocus}`];
|
|
59
|
+
if (profile.screenContextSource && profile.screenContextSource !== "disabled") {
|
|
60
|
+
screenParts.push(`via ${profile.screenContextSource}`);
|
|
61
|
+
}
|
|
62
|
+
screenParts.push(screenAgo);
|
|
63
|
+
parts.push(screenParts.join(" "));
|
|
64
|
+
}
|
|
65
|
+
if (profile.isCurrentlySleeping) {
|
|
66
|
+
parts.push("sleeping");
|
|
67
|
+
} else if (profile.hasSleepData) {
|
|
68
|
+
parts.push("sleep data ready");
|
|
69
|
+
}
|
|
70
|
+
parts.push(bucket);
|
|
71
|
+
if (profile.effectiveDayKey !== localDateKey) {
|
|
72
|
+
parts.push("previous day still open");
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
text: parts.length > 0 ? `User: ${parts.join(" | ")}` : "",
|
|
76
|
+
values: {
|
|
77
|
+
userIsActive: profile.isCurrentlyActive,
|
|
78
|
+
userPrimaryPlatform: profile.primaryPlatform,
|
|
79
|
+
userLastSeenPlatform: profile.lastSeenPlatform,
|
|
80
|
+
userLastSeenAt: profile.lastSeenAt,
|
|
81
|
+
userTimeBucket: bucket,
|
|
82
|
+
userEffectiveDayKey: profile.effectiveDayKey,
|
|
83
|
+
userHasOpenActivityCycle: profile.hasOpenActivityCycle,
|
|
84
|
+
userTypicalWakeHour: profile.typicalWakeHour,
|
|
85
|
+
userTypicalSleepHour: profile.typicalSleepHour,
|
|
86
|
+
userHasSleepData: profile.hasSleepData,
|
|
87
|
+
userIsSleeping: profile.isCurrentlySleeping,
|
|
88
|
+
userLastSleepSignalAt: profile.lastSleepSignalAt,
|
|
89
|
+
userLastWakeSignalAt: profile.lastWakeSignalAt,
|
|
90
|
+
userTypicalSleepDurationMinutes: profile.typicalSleepDurationMinutes,
|
|
91
|
+
userScreenContextFocus: profile.screenContextFocus,
|
|
92
|
+
userScreenContextSource: profile.screenContextSource,
|
|
93
|
+
userScreenContextSampledAt: profile.screenContextSampledAt,
|
|
94
|
+
userScreenContextConfidence: profile.screenContextConfidence,
|
|
95
|
+
userScreenContextBusy: profile.screenContextBusy,
|
|
96
|
+
userScreenContextAvailable: profile.screenContextAvailable,
|
|
97
|
+
userScreenContextStale: profile.screenContextStale
|
|
98
|
+
},
|
|
99
|
+
data: {}
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
} catch (error) {
|
|
103
|
+
logger.warn(
|
|
104
|
+
{
|
|
105
|
+
boundary: "activity_profile",
|
|
106
|
+
operation: "provider_profile_read",
|
|
107
|
+
err: error instanceof Error ? error : void 0
|
|
108
|
+
},
|
|
109
|
+
"[activity-profile] Failed to read proactive task metadata; falling back to time-bucket-only context."
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
return {
|
|
113
|
+
text: `User context: ${bucket}`,
|
|
114
|
+
values: {
|
|
115
|
+
userIsActive: false,
|
|
116
|
+
userPrimaryPlatform: null,
|
|
117
|
+
userLastSeenPlatform: null,
|
|
118
|
+
userLastSeenAt: 0,
|
|
119
|
+
userTimeBucket: bucket,
|
|
120
|
+
userScreenContextFocus: null,
|
|
121
|
+
userScreenContextSource: null,
|
|
122
|
+
userScreenContextSampledAt: null,
|
|
123
|
+
userScreenContextConfidence: null,
|
|
124
|
+
userScreenContextBusy: false,
|
|
125
|
+
userScreenContextAvailable: false,
|
|
126
|
+
userScreenContextStale: false,
|
|
127
|
+
userHasSleepData: false,
|
|
128
|
+
userIsSleeping: false,
|
|
129
|
+
userLastSleepSignalAt: null,
|
|
130
|
+
userLastWakeSignalAt: null,
|
|
131
|
+
userTypicalSleepDurationMinutes: null
|
|
132
|
+
},
|
|
133
|
+
data: {}
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
export {
|
|
138
|
+
activityProfileProvider
|
|
139
|
+
};
|
|
140
|
+
//# sourceMappingURL=activity-profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/providers/activity-profile.ts"],"sourcesContent":["import { hasOwnerAccess } from \"@elizaos/agent\";\nimport type {\n IAgentRuntime,\n Memory,\n Provider,\n ProviderResult,\n State,\n} from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\nimport { resolveCurrentBucket } from \"../activity-profile/analyzer.js\";\nimport { PROACTIVE_TASK_TAGS } from \"../activity-profile/proactive-worker.js\";\nimport { readProfileFromMetadata } from \"../activity-profile/service.js\";\nimport { resolveDefaultTimeZone } from \"../lifeops/defaults.js\";\nimport { getLocalDateKey, getZonedDateParts } from \"../lifeops/time.js\";\n\nconst MAX_PROFILE_TASKS = 25;\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return Boolean(value) && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction formatAgo(ms: number): string {\n if (ms < 60_000) return \"just now\";\n const minutes = Math.floor(ms / 60_000);\n if (minutes < 60) return `${minutes}m ago`;\n const hours = Math.floor(minutes / 60);\n if (hours < 24) return `${hours}h ago`;\n const days = Math.floor(hours / 24);\n return `${days}d ago`;\n}\n\nexport const activityProfileProvider: Provider = {\n name: \"activity-profile\",\n description:\n \"Owner and agent only. Compact user activity context: platform, time bucket, recency.\",\n descriptionCompressed: \"owner+agent activity: platform, time bucket, recency\",\n dynamic: true,\n position: 13,\n contexts: [\"screen_time\", \"tasks\", \"health\"],\n contextGate: { anyOf: [\"screen_time\", \"tasks\", \"health\"] },\n cacheScope: \"turn\",\n roleGate: { minRole: \"OWNER\" },\n async get(\n runtime: IAgentRuntime,\n message: Memory,\n _state: State,\n ): Promise<ProviderResult> {\n if (!(await hasOwnerAccess(runtime, message))) {\n return { text: \"\", values: {}, data: {} };\n }\n\n const timezone = resolveDefaultTimeZone();\n const now = new Date();\n const bucket = resolveCurrentBucket(timezone, now);\n try {\n const tasks = await runtime.getTasks({\n agentIds: [runtime.agentId],\n tags: [...PROACTIVE_TASK_TAGS],\n });\n const task = tasks\n .slice(0, MAX_PROFILE_TASKS)\n .find((t) => t.name === \"PROACTIVE_AGENT\" && isRecord(t.metadata));\n const metadata = isRecord(task?.metadata) ? task.metadata : null;\n const profile = readProfileFromMetadata(metadata);\n\n if (profile) {\n const parts: string[] = [];\n const localDateKey = getLocalDateKey(getZonedDateParts(now, timezone));\n\n const hasActiveScreen =\n profile.screenContextAvailable &&\n profile.screenContextFocus !== null &&\n profile.screenContextFocus !== \"idle\" &&\n profile.screenContextFocus !== \"unknown\";\n\n if (\n !hasActiveScreen &&\n profile.lastSeenPlatform &&\n profile.lastSeenAt > 0\n ) {\n const ago = formatAgo(now.getTime() - profile.lastSeenAt);\n parts.push(\n profile.isCurrentlyActive\n ? `active on ${profile.lastSeenPlatform} ${ago}`\n : `last seen on ${profile.lastSeenPlatform} ${ago}`,\n );\n }\n if (hasActiveScreen && profile.screenContextFocus) {\n const screenAgo = profile.screenContextSampledAt\n ? formatAgo(now.getTime() - profile.screenContextSampledAt)\n : \"recently\";\n const screenParts = [`screen ${profile.screenContextFocus}`];\n if (\n profile.screenContextSource &&\n profile.screenContextSource !== \"disabled\"\n ) {\n screenParts.push(`via ${profile.screenContextSource}`);\n }\n screenParts.push(screenAgo);\n parts.push(screenParts.join(\" \"));\n }\n if (profile.isCurrentlySleeping) {\n parts.push(\"sleeping\");\n } else if (profile.hasSleepData) {\n parts.push(\"sleep data ready\");\n }\n parts.push(bucket);\n if (profile.effectiveDayKey !== localDateKey) {\n parts.push(\"previous day still open\");\n }\n\n return {\n text: parts.length > 0 ? `User: ${parts.join(\" | \")}` : \"\",\n values: {\n userIsActive: profile.isCurrentlyActive,\n userPrimaryPlatform: profile.primaryPlatform,\n userLastSeenPlatform: profile.lastSeenPlatform,\n userLastSeenAt: profile.lastSeenAt,\n userTimeBucket: bucket,\n userEffectiveDayKey: profile.effectiveDayKey,\n userHasOpenActivityCycle: profile.hasOpenActivityCycle,\n userTypicalWakeHour: profile.typicalWakeHour,\n userTypicalSleepHour: profile.typicalSleepHour,\n userHasSleepData: profile.hasSleepData,\n userIsSleeping: profile.isCurrentlySleeping,\n userLastSleepSignalAt: profile.lastSleepSignalAt,\n userLastWakeSignalAt: profile.lastWakeSignalAt,\n userTypicalSleepDurationMinutes:\n profile.typicalSleepDurationMinutes,\n userScreenContextFocus: profile.screenContextFocus,\n userScreenContextSource: profile.screenContextSource,\n userScreenContextSampledAt: profile.screenContextSampledAt,\n userScreenContextConfidence: profile.screenContextConfidence,\n userScreenContextBusy: profile.screenContextBusy,\n userScreenContextAvailable: profile.screenContextAvailable,\n userScreenContextStale: profile.screenContextStale,\n },\n data: {},\n };\n }\n } catch (error) {\n logger.warn(\n {\n boundary: \"activity_profile\",\n operation: \"provider_profile_read\",\n err: error instanceof Error ? error : undefined,\n },\n \"[activity-profile] Failed to read proactive task metadata; falling back to time-bucket-only context.\",\n );\n }\n\n return {\n text: `User context: ${bucket}`,\n values: {\n userIsActive: false,\n userPrimaryPlatform: null,\n userLastSeenPlatform: null,\n userLastSeenAt: 0,\n userTimeBucket: bucket,\n userScreenContextFocus: null,\n userScreenContextSource: null,\n userScreenContextSampledAt: null,\n userScreenContextConfidence: null,\n userScreenContextBusy: false,\n userScreenContextAvailable: false,\n userScreenContextStale: false,\n userHasSleepData: false,\n userIsSleeping: false,\n userLastSleepSignalAt: null,\n userLastWakeSignalAt: null,\n userTypicalSleepDurationMinutes: null,\n },\n data: {},\n };\n },\n};\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* cross-channel-context provider (WS1).
|
|
3
|
+
*
|
|
4
|
+
* When the planner's signal detector flags the current turn as involving
|
|
5
|
+
* a named person or a topic worth pulling prior signal for, this
|
|
6
|
+
* provider injects the top-N cross-channel hits into context. It never
|
|
7
|
+
* fires on empty signal and never silently returns stale data.
|
|
8
|
+
*
|
|
9
|
+
* Signal sources (in priority order):
|
|
10
|
+
* 1. Explicit state key `crossChannelContextRequest` — set by actions
|
|
11
|
+
* or the planner when they already know what to fetch.
|
|
12
|
+
* 2. Structured hint in state.data.cross_channel_context_key.
|
|
13
|
+
*
|
|
14
|
+
* When neither signal is present, the provider returns EMPTY rather
|
|
15
|
+
* than running a speculative search on every turn.
|
|
16
|
+
*/
|
|
17
|
+
import type { Provider, UUID } from "@elizaos/core";
|
|
18
|
+
import { type CrossChannelSearchChannel } from "../lifeops/cross-channel-search.js";
|
|
19
|
+
export type CrossChannelContextRequest = {
|
|
20
|
+
query: string;
|
|
21
|
+
person?: string;
|
|
22
|
+
primaryEntityId?: UUID;
|
|
23
|
+
startIso?: string;
|
|
24
|
+
endIso?: string;
|
|
25
|
+
channels?: CrossChannelSearchChannel[];
|
|
26
|
+
limit?: number;
|
|
27
|
+
};
|
|
28
|
+
export declare const crossChannelContextProvider: Provider;
|
|
29
|
+
//# sourceMappingURL=cross-channel-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cross-channel-context.d.ts","sourceRoot":"","sources":["../../src/providers/cross-channel-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAGV,QAAQ,EAGR,IAAI,EACL,MAAM,eAAe,CAAC;AAEvB,OAAO,EAEL,KAAK,yBAAyB,EAI/B,MAAM,oCAAoC,CAAC;AAiB5C,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,yBAAyB,EAAE,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AA8HF,eAAO,MAAM,2BAA2B,EAAE,QA+HzC,CAAC"}
|