@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/lifeops/schedule-state.ts"],"sourcesContent":["import crypto from \"node:crypto\";\nimport type {\n LifeOpsScheduleDeviceKind,\n LifeOpsScheduleMergedState,\n LifeOpsScheduleObservation,\n LifeOpsScheduleObservationOrigin,\n LifeOpsScheduleObservationSnapshot,\n LifeOpsScheduleStateScope,\n SyncLifeOpsScheduleObservationInput,\n SyncLifeOpsScheduleObservationsRequest,\n} from \"@elizaos/plugin-elizacloud/cloud/lifeops-schedule-sync-contracts\";\nimport {\n asRecord,\n type LifeOpsAwakeProbability,\n type LifeOpsCircadianState,\n type LifeOpsPersonalBaseline,\n type LifeOpsScheduleInsight,\n type LifeOpsScheduleMealInsight,\n type LifeOpsScheduleMealLabel,\n type LifeOpsScheduleRegularity,\n type LifeOpsUnclearReason,\n} from \"@elizaos/shared\";\nimport { resolveLifeOpsRelativeTime } from \"./relative-time.js\";\nimport type { LifeOpsScheduleInsightRecord } from \"./repository.js\";\nimport {\n addDaysToLocalDate,\n buildUtcDateFromLocalParts,\n getLocalDateKey,\n getZonedDateParts,\n} from \"./time.js\";\nimport { parseIsoMs, roundConfidence } from \"./time-util.js\";\n\nexport const SCHEDULE_OBSERVATION_BUCKET_MINUTES = 30;\nexport const SCHEDULE_OBSERVATION_LOOKBACK_MS = 48 * 60 * 60 * 1_000;\nexport const SCHEDULE_CLOUD_SYNC_TTL_MS = 15 * 60 * 1_000;\nexport const SCHEDULE_CLOUD_STATE_FRESH_MS = 45 * 60 * 1_000;\n\nconst OBSERVATION_TTL_MS: Record<LifeOpsCircadianState, number> = {\n awake: 4 * 60 * 60 * 1_000,\n winding_down: 3 * 60 * 60 * 1_000,\n sleeping: 8 * 60 * 60 * 1_000,\n waking: 2 * 60 * 60 * 1_000,\n napping: 2 * 60 * 60 * 1_000,\n unclear: 60 * 60 * 1_000,\n};\n\nconst STATE_RANK: Record<LifeOpsCircadianState, number> = {\n sleeping: 5,\n napping: 4,\n waking: 3,\n winding_down: 2,\n awake: 1,\n unclear: 0,\n};\n\ntype BucketMode = \"floor\" | \"ceil\" | \"nearest\";\ntype MergeObservationSnapshot = Partial<LifeOpsScheduleObservationSnapshot>;\n\nexport type ResolvedScheduleDeviceIdentity = {\n deviceId: string;\n deviceKind: LifeOpsScheduleDeviceKind;\n};\n\nfunction defaultAwakeProbability(computedAt: string): LifeOpsAwakeProbability {\n return {\n pAwake: 0,\n pAsleep: 0,\n pUnknown: 1,\n contributingSources: [],\n computedAt,\n };\n}\n\nfunction defaultScheduleRegularity(): LifeOpsScheduleRegularity {\n return {\n sri: 0,\n bedtimeStddevMin: 0,\n wakeStddevMin: 0,\n midSleepStddevMin: 0,\n regularityClass: \"insufficient_data\",\n sampleCount: 0,\n windowDays: 28,\n };\n}\n\nfunction bucketIso(\n value: string | null | undefined,\n timezone: string,\n mode: BucketMode = \"nearest\",\n): string | null {\n const parsed = parseIsoMs(value);\n if (parsed === null) {\n return null;\n }\n const date = new Date(parsed);\n const parts = getZonedDateParts(date, timezone);\n const totalMinutes = parts.hour * 60 + parts.minute;\n const bucketSize = SCHEDULE_OBSERVATION_BUCKET_MINUTES;\n const roundedMinutes =\n mode === \"floor\"\n ? Math.floor(totalMinutes / bucketSize) * bucketSize\n : mode === \"ceil\"\n ? Math.ceil(totalMinutes / bucketSize) * bucketSize\n : Math.round(totalMinutes / bucketSize) * bucketSize;\n const dayDelta = Math.floor(roundedMinutes / (24 * 60));\n const minutesOfDay = ((roundedMinutes % (24 * 60)) + 24 * 60) % (24 * 60);\n const dateOnly = addDaysToLocalDate(parts, dayDelta);\n const bucketed = buildUtcDateFromLocalParts(timezone, {\n year: dateOnly.year,\n month: dateOnly.month,\n day: dateOnly.day,\n hour: Math.floor(minutesOfDay / 60),\n minute: minutesOfDay % 60,\n second: 0,\n });\n return bucketed.toISOString();\n}\n\nfunction isAsleepState(state: LifeOpsCircadianState): boolean {\n return state === \"sleeping\" || state === \"napping\";\n}\n\nfunction snapshotUncertainty(\n state: LifeOpsCircadianState,\n reason: LifeOpsUnclearReason | null | undefined,\n): LifeOpsUnclearReason | null {\n return state === \"unclear\" ? (reason ?? \"no_signals\") : null;\n}\n\nfunction toObservationSnapshot(\n insight: LifeOpsScheduleInsight,\n): LifeOpsScheduleObservationSnapshot {\n return {\n effectiveDayKey: insight.effectiveDayKey,\n localDate: insight.localDate,\n phase: insight.circadianState,\n circadianState: insight.circadianState,\n stateConfidence: roundConfidence(insight.stateConfidence),\n uncertaintyReason: insight.uncertaintyReason,\n relativeTime: insight.relativeTime,\n awakeProbability: insight.awakeProbability,\n regularity: insight.regularity,\n baseline: insight.baseline,\n sleepStatus: insight.sleepStatus,\n isProbablySleeping: isAsleepState(insight.circadianState),\n sleepConfidence: roundConfidence(insight.sleepConfidence),\n currentSleepStartedAt: insight.currentSleepStartedAt,\n lastSleepStartedAt: insight.lastSleepStartedAt,\n lastSleepEndedAt: insight.lastSleepEndedAt,\n lastSleepDurationMinutes: insight.lastSleepDurationMinutes,\n wakeAt: insight.wakeAt,\n firstActiveAt: insight.firstActiveAt,\n lastActiveAt: insight.lastActiveAt,\n lastMealAt: insight.lastMealAt,\n nextMealLabel: insight.nextMealLabel,\n nextMealWindowStartAt: insight.nextMealWindowStartAt,\n nextMealWindowEndAt: insight.nextMealWindowEndAt,\n nextMealConfidence: roundConfidence(insight.nextMealConfidence),\n };\n}\n\nfunction bucketSnapshot(\n snapshot: LifeOpsScheduleObservationSnapshot,\n timezone: string,\n): LifeOpsScheduleObservationSnapshot {\n return {\n ...snapshot,\n stateConfidence: roundConfidence(snapshot.stateConfidence),\n relativeTime: {\n ...snapshot.relativeTime,\n confidence: roundConfidence(snapshot.relativeTime.confidence),\n },\n sleepConfidence: roundConfidence(snapshot.sleepConfidence),\n currentSleepStartedAt: bucketIso(\n snapshot.currentSleepStartedAt,\n timezone,\n \"floor\",\n ),\n lastSleepStartedAt: bucketIso(\n snapshot.lastSleepStartedAt,\n timezone,\n \"floor\",\n ),\n lastSleepEndedAt: bucketIso(snapshot.lastSleepEndedAt, timezone, \"nearest\"),\n wakeAt: bucketIso(snapshot.wakeAt, timezone, \"nearest\"),\n firstActiveAt: bucketIso(snapshot.firstActiveAt, timezone, \"nearest\"),\n lastActiveAt: bucketIso(snapshot.lastActiveAt, timezone, \"nearest\"),\n lastMealAt: bucketIso(snapshot.lastMealAt, timezone, \"nearest\"),\n nextMealWindowStartAt: bucketIso(\n snapshot.nextMealWindowStartAt,\n timezone,\n \"floor\",\n ),\n nextMealWindowEndAt: bucketIso(\n snapshot.nextMealWindowEndAt,\n timezone,\n \"ceil\",\n ),\n nextMealConfidence: roundConfidence(snapshot.nextMealConfidence),\n };\n}\n\nfunction observationMetadata(args: {\n snapshot: LifeOpsScheduleObservationSnapshot;\n source: \"schedule_insight\" | \"schedule_sync\";\n extra?: Record<string, unknown>;\n}): Record<string, unknown> {\n return {\n source: args.source,\n snapshot: args.snapshot,\n ...(args.extra ?? {}),\n };\n}\n\nfunction observationId(args: {\n agentId: string;\n origin: LifeOpsScheduleObservationOrigin;\n deviceId: string;\n circadianState: LifeOpsCircadianState;\n windowStartAt: string;\n mealLabel: LifeOpsScheduleMealLabel | null;\n}): string {\n const digest = crypto\n .createHash(\"sha1\")\n .update(\n [\n args.agentId,\n args.origin,\n args.deviceId,\n args.circadianState,\n args.windowStartAt,\n args.mealLabel ?? \"\",\n ].join(\"|\"),\n )\n .digest(\"hex\")\n .slice(0, 16);\n return `lifeops-schedule-observation:${digest}`;\n}\n\nfunction buildObservationRecord(args: {\n agentId: string;\n origin: LifeOpsScheduleObservationOrigin;\n deviceId: string;\n deviceKind: LifeOpsScheduleDeviceKind;\n timezone: string;\n observedAt: string;\n circadianState: LifeOpsCircadianState;\n stateConfidence: number;\n uncertaintyReason: LifeOpsUnclearReason | null;\n mealLabel: LifeOpsScheduleMealLabel | null;\n windowStartAt: string;\n windowEndAt: string | null;\n metadata: Record<string, unknown>;\n}): LifeOpsScheduleObservation {\n return {\n id: observationId({\n agentId: args.agentId,\n origin: args.origin,\n deviceId: args.deviceId,\n circadianState: args.circadianState,\n windowStartAt: args.windowStartAt,\n mealLabel: args.mealLabel,\n }),\n agentId: args.agentId,\n origin: args.origin,\n deviceId: args.deviceId,\n deviceKind: args.deviceKind,\n timezone: args.timezone,\n observedAt: args.observedAt,\n windowStartAt: args.windowStartAt,\n windowEndAt: args.windowEndAt,\n circadianState: args.circadianState,\n stateConfidence: roundConfidence(args.stateConfidence),\n uncertaintyReason: args.uncertaintyReason,\n mealLabel: args.mealLabel,\n metadata: args.metadata,\n createdAt: args.observedAt,\n updatedAt: args.observedAt,\n };\n}\n\nfunction normalizeDurationMinutes(\n value: number | null | undefined,\n): number | null {\n if (value === null || value === undefined || !Number.isFinite(value)) {\n return null;\n }\n return Math.max(0, Math.round(value));\n}\n\nexport function resolveScheduleDeviceIdentity(): ResolvedScheduleDeviceIdentity {\n const envDeviceId =\n process.env.ELIZA_DEVICE_ID?.trim() ?? process.env.HOSTNAME?.trim();\n const deviceId =\n envDeviceId && envDeviceId.length > 0\n ? envDeviceId\n : `${process.platform}-${crypto.createHash(\"sha1\").update(process.cwd()).digest(\"hex\").slice(0, 8)}`;\n const envDeviceKind =\n process.env.ELIZA_DEVICE_KIND?.trim().toLowerCase() ?? \"\";\n if (\n envDeviceKind === \"iphone\" ||\n envDeviceKind === \"ipad\" ||\n envDeviceKind === \"mac\" ||\n envDeviceKind === \"watch\" ||\n envDeviceKind === \"cloud\"\n ) {\n return {\n deviceId,\n deviceKind: envDeviceKind,\n };\n }\n return {\n deviceId,\n deviceKind: process.platform === \"darwin\" ? \"mac\" : \"unknown\",\n };\n}\n\nexport function deriveLocalScheduleObservations(args: {\n agentId: string;\n deviceId: string;\n deviceKind: LifeOpsScheduleDeviceKind;\n timezone: string;\n observedAt?: string;\n insight: LifeOpsScheduleInsightRecord | LifeOpsScheduleInsight;\n}): LifeOpsScheduleObservation[] {\n const observedAt = args.observedAt ?? new Date().toISOString();\n const snapshot = bucketSnapshot(\n toObservationSnapshot(args.insight),\n args.timezone,\n );\n const windowStartAt = isAsleepState(snapshot.circadianState)\n ? (snapshot.currentSleepStartedAt ??\n snapshot.lastSleepStartedAt ??\n bucketIso(observedAt, args.timezone, \"floor\"))\n : snapshot.circadianState === \"waking\"\n ? (snapshot.wakeAt ?? bucketIso(observedAt, args.timezone, \"nearest\"))\n : (snapshot.firstActiveAt ??\n snapshot.wakeAt ??\n snapshot.lastActiveAt ??\n bucketIso(observedAt, args.timezone, \"nearest\"));\n const observations: LifeOpsScheduleObservation[] = [];\n if (windowStartAt) {\n observations.push(\n buildObservationRecord({\n agentId: args.agentId,\n origin: \"local_inference\",\n deviceId: args.deviceId,\n deviceKind: args.deviceKind,\n timezone: args.timezone,\n observedAt,\n circadianState: snapshot.circadianState,\n stateConfidence: snapshot.stateConfidence,\n uncertaintyReason: snapshot.uncertaintyReason,\n mealLabel: null,\n windowStartAt,\n windowEndAt: isAsleepState(snapshot.circadianState)\n ? null\n : (snapshot.lastActiveAt ??\n bucketIso(observedAt, args.timezone, \"nearest\")),\n metadata: observationMetadata({\n snapshot,\n source: \"schedule_insight\",\n }),\n }),\n );\n }\n if (\n snapshot.nextMealLabel &&\n snapshot.nextMealWindowStartAt &&\n snapshot.nextMealConfidence >= 0.35\n ) {\n observations.push(\n buildObservationRecord({\n agentId: args.agentId,\n origin: \"local_inference\",\n deviceId: args.deviceId,\n deviceKind: args.deviceKind,\n timezone: args.timezone,\n observedAt,\n circadianState: \"awake\",\n stateConfidence: snapshot.nextMealConfidence,\n uncertaintyReason: null,\n mealLabel: snapshot.nextMealLabel,\n windowStartAt: snapshot.nextMealWindowStartAt,\n windowEndAt:\n snapshot.nextMealWindowEndAt ?? snapshot.nextMealWindowStartAt,\n metadata: observationMetadata({\n snapshot,\n source: \"schedule_insight\",\n extra: { meal: true },\n }),\n }),\n );\n }\n return observations;\n}\n\nfunction recordFromSyncInput(args: {\n agentId: string;\n timezone: string;\n observedAt: string;\n origin: LifeOpsScheduleObservationOrigin;\n deviceId: string;\n deviceKind: LifeOpsScheduleDeviceKind;\n input: SyncLifeOpsScheduleObservationInput;\n}): LifeOpsScheduleObservation {\n const snapshotSource = args.input.snapshot ?? {};\n const bucketedWindowStartAt =\n bucketIso(args.input.windowStartAt, args.timezone, \"floor\") ??\n args.input.windowStartAt;\n const bucketedWindowEndAt = bucketIso(\n args.input.windowEndAt ?? null,\n args.timezone,\n \"ceil\",\n );\n const circadianState = args.input.circadianState;\n const uncertaintyReason = snapshotUncertainty(\n circadianState,\n args.input.uncertaintyReason,\n );\n const snapshotBase = {\n effectiveDayKey:\n typeof snapshotSource.effectiveDayKey === \"string\"\n ? snapshotSource.effectiveDayKey\n : getLocalDateKey(\n getZonedDateParts(new Date(args.observedAt), args.timezone),\n ),\n localDate:\n typeof snapshotSource.localDate === \"string\"\n ? snapshotSource.localDate\n : getLocalDateKey(\n getZonedDateParts(new Date(args.observedAt), args.timezone),\n ),\n phase: circadianState,\n circadianState,\n stateConfidence: roundConfidence(\n snapshotSource.stateConfidence ?? args.input.stateConfidence,\n ),\n uncertaintyReason,\n awakeProbability:\n snapshotSource.awakeProbability ??\n defaultAwakeProbability(args.observedAt),\n regularity: snapshotSource.regularity ?? defaultScheduleRegularity(),\n baseline: snapshotSource.baseline ?? null,\n sleepStatus: snapshotSource.sleepStatus ?? \"unknown\",\n isProbablySleeping: isAsleepState(circadianState),\n sleepConfidence: roundConfidence(\n snapshotSource.sleepConfidence ?? args.input.stateConfidence,\n ),\n currentSleepStartedAt:\n bucketIso(snapshotSource.currentSleepStartedAt, args.timezone, \"floor\") ??\n (isAsleepState(circadianState)\n ? bucketIso(args.input.windowStartAt, args.timezone, \"floor\")\n : null),\n lastSleepStartedAt: bucketIso(\n snapshotSource.lastSleepStartedAt,\n args.timezone,\n \"floor\",\n ),\n lastSleepEndedAt: bucketIso(\n snapshotSource.lastSleepEndedAt,\n args.timezone,\n \"nearest\",\n ),\n lastSleepDurationMinutes: normalizeDurationMinutes(\n snapshotSource.lastSleepDurationMinutes ?? null,\n ),\n wakeAt:\n bucketIso(snapshotSource.wakeAt, args.timezone, \"nearest\") ??\n (circadianState === \"waking\"\n ? bucketIso(args.input.windowStartAt, args.timezone, \"nearest\")\n : null),\n firstActiveAt: bucketIso(\n snapshotSource.firstActiveAt,\n args.timezone,\n \"nearest\",\n ),\n lastActiveAt:\n bucketIso(snapshotSource.lastActiveAt, args.timezone, \"nearest\") ??\n (circadianState === \"awake\"\n ? bucketIso(args.input.windowStartAt, args.timezone, \"nearest\")\n : null),\n lastMealAt: bucketIso(snapshotSource.lastMealAt, args.timezone, \"nearest\"),\n nextMealLabel: snapshotSource.nextMealLabel ?? args.input.mealLabel ?? null,\n nextMealWindowStartAt:\n bucketIso(snapshotSource.nextMealWindowStartAt, args.timezone, \"floor\") ??\n (args.input.mealLabel ? bucketedWindowStartAt : null),\n nextMealWindowEndAt:\n bucketIso(snapshotSource.nextMealWindowEndAt, args.timezone, \"ceil\") ??\n (args.input.mealLabel ? bucketedWindowEndAt : null),\n nextMealConfidence: roundConfidence(\n snapshotSource.nextMealConfidence ??\n (args.input.mealLabel ? args.input.stateConfidence : 0),\n ),\n } satisfies Omit<LifeOpsScheduleObservationSnapshot, \"relativeTime\">;\n const snapshot: LifeOpsScheduleObservationSnapshot = {\n ...snapshotBase,\n relativeTime: resolveLifeOpsRelativeTime({\n nowMs: parseIsoMs(args.observedAt) ?? Date.now(),\n timezone: args.timezone,\n schedule: snapshotBase,\n }),\n };\n return buildObservationRecord({\n agentId: args.agentId,\n origin: args.origin,\n deviceId: args.deviceId,\n deviceKind: args.deviceKind,\n timezone: args.timezone,\n observedAt: args.observedAt,\n circadianState,\n stateConfidence: args.input.stateConfidence,\n uncertaintyReason,\n mealLabel: args.input.mealLabel ?? snapshot.nextMealLabel ?? null,\n windowStartAt: bucketedWindowStartAt,\n windowEndAt: bucketedWindowEndAt,\n metadata: observationMetadata({\n snapshot,\n source: \"schedule_sync\",\n extra: args.input.metadata,\n }),\n });\n}\n\nexport function recordsFromSyncRequest(args: {\n agentId: string;\n origin: LifeOpsScheduleObservationOrigin;\n request: SyncLifeOpsScheduleObservationsRequest;\n}): LifeOpsScheduleObservation[] {\n const observedAt = args.request.observedAt ?? new Date().toISOString();\n return args.request.observations.map((input) =>\n recordFromSyncInput({\n agentId: args.agentId,\n timezone: args.request.timezone,\n observedAt,\n origin: args.origin,\n deviceId: args.request.deviceId,\n deviceKind: args.request.deviceKind,\n input,\n }),\n );\n}\n\nfunction observationSnapshot(\n observation: LifeOpsScheduleObservation,\n): MergeObservationSnapshot | null {\n const metadata = asRecord(observation.metadata);\n const snapshot = asRecord(metadata?.snapshot);\n return snapshot as MergeObservationSnapshot | null;\n}\n\nfunction observationRelevant(\n observation: LifeOpsScheduleObservation,\n nowMs: number,\n): boolean {\n const observedMs = parseIsoMs(observation.observedAt);\n if (observedMs === null) {\n return false;\n }\n const ttl = OBSERVATION_TTL_MS[observation.circadianState];\n if (observedMs >= nowMs - ttl) {\n return true;\n }\n const startMs = parseIsoMs(observation.windowStartAt);\n const endMs = parseIsoMs(observation.windowEndAt);\n if (startMs === null) {\n return false;\n }\n return startMs <= nowMs && (endMs === null || endMs >= nowMs - ttl);\n}\n\nfunction latestSnapshotValue<T>(\n observations: LifeOpsScheduleObservation[],\n read: (snapshot: MergeObservationSnapshot) => T | null | undefined,\n): T | null {\n for (const observation of observations) {\n const snapshot = observationSnapshot(observation);\n const value = snapshot ? read(snapshot) : null;\n if (value !== null && value !== undefined) {\n return value;\n }\n }\n return null;\n}\n\nfunction isFutureIsoAt(\n value: string | null | undefined,\n nowMs: number,\n): boolean {\n const parsed = parseIsoMs(value);\n return parsed !== null && parsed >= nowMs;\n}\n\nfunction pickFutureSnapshotValue(\n observations: LifeOpsScheduleObservation[],\n read: (snapshot: MergeObservationSnapshot) => string | null | undefined,\n nowMs: number,\n): string | null {\n for (const observation of observations) {\n const snapshot = observationSnapshot(observation);\n const value = snapshot ? read(snapshot) : null;\n if (value && isFutureIsoAt(value, nowMs)) {\n return value;\n }\n }\n return null;\n}\n\nfunction latestRelevantObservations(\n observations: LifeOpsScheduleObservation[],\n nowMs: number,\n): LifeOpsScheduleObservation[] {\n return observations\n .filter((observation) => observationRelevant(observation, nowMs))\n .sort((left, right) => {\n const leftMs = parseIsoMs(left.observedAt) ?? 0;\n const rightMs = parseIsoMs(right.observedAt) ?? 0;\n return rightMs - leftMs;\n });\n}\n\nfunction bestObservation(\n observations: LifeOpsScheduleObservation[],\n predicate: (observation: LifeOpsScheduleObservation) => boolean,\n): LifeOpsScheduleObservation | null {\n const matches = observations.filter(predicate);\n if (matches.length === 0) {\n return null;\n }\n return (\n matches.sort((left, right) => {\n if (right.stateConfidence !== left.stateConfidence) {\n return right.stateConfidence - left.stateConfidence;\n }\n const leftMs = parseIsoMs(left.observedAt) ?? 0;\n const rightMs = parseIsoMs(right.observedAt) ?? 0;\n return rightMs - leftMs;\n })[0] ?? null\n );\n}\n\nfunction mergedMeals(\n observations: LifeOpsScheduleObservation[],\n): LifeOpsScheduleMealInsight[] {\n const meals = observations\n .filter((observation) => observation.mealLabel !== null)\n .sort((left, right) => {\n const leftMs = parseIsoMs(left.windowStartAt) ?? 0;\n const rightMs = parseIsoMs(right.windowStartAt) ?? 0;\n return leftMs - rightMs;\n })\n .map((observation) => ({\n label: observation.mealLabel as LifeOpsScheduleMealLabel,\n detectedAt: observation.windowStartAt,\n confidence: roundConfidence(observation.stateConfidence),\n source: \"expected_window\" as const,\n }));\n const unique = new Map<string, LifeOpsScheduleMealInsight>();\n for (const meal of meals) {\n const key = `${meal.label}:${meal.detectedAt}`;\n unique.set(key, meal);\n }\n return [...unique.values()];\n}\n\nfunction resolveMergedCircadianState(relevant: LifeOpsScheduleObservation[]): {\n circadianState: LifeOpsCircadianState;\n stateConfidence: number;\n uncertaintyReason: LifeOpsUnclearReason | null;\n} {\n const candidates = relevant.filter(\n (observation) => observation.circadianState !== \"unclear\",\n );\n if (candidates.length === 0) {\n const fallback = relevant[0];\n return {\n circadianState: fallback?.circadianState,\n stateConfidence: fallback?.stateConfidence,\n uncertaintyReason:\n fallback?.uncertaintyReason ??\n (relevant.length === 0 ? \"no_signals\" : \"contradictory_signals\"),\n };\n }\n const [best] = candidates.sort((left, right) => {\n const rankDelta =\n STATE_RANK[right.circadianState] - STATE_RANK[left.circadianState];\n if (rankDelta !== 0) {\n return rankDelta;\n }\n if (right.stateConfidence !== left.stateConfidence) {\n return right.stateConfidence - left.stateConfidence;\n }\n const leftMs = parseIsoMs(left.observedAt) ?? 0;\n const rightMs = parseIsoMs(right.observedAt) ?? 0;\n return rightMs - leftMs;\n });\n if (!best) {\n return {\n circadianState: \"unclear\",\n stateConfidence: 0,\n uncertaintyReason: \"no_signals\",\n };\n }\n return {\n circadianState: best.circadianState,\n stateConfidence: best.stateConfidence,\n uncertaintyReason: best.uncertaintyReason,\n };\n}\n\nexport function mergeScheduleObservations(args: {\n agentId: string;\n scope: LifeOpsScheduleStateScope;\n timezone: string;\n now?: Date;\n observations: LifeOpsScheduleObservation[];\n}): LifeOpsScheduleMergedState | null {\n const now = args.now ?? new Date();\n const nowMs = now.getTime();\n const relevant = latestRelevantObservations(args.observations, nowMs);\n if (relevant.length === 0) {\n return null;\n }\n const { circadianState, stateConfidence, uncertaintyReason } =\n resolveMergedCircadianState(relevant);\n const currentSleep = bestObservation(relevant, (observation) =>\n isAsleepState(observation.circadianState),\n );\n const recentWake = bestObservation(\n relevant,\n (observation) => observation.circadianState === \"waking\",\n );\n const mealWindow = bestObservation(\n relevant,\n (observation) => observation.mealLabel !== null,\n );\n const currentSleepStartedAt =\n latestSnapshotValue(\n relevant,\n (snapshot) => snapshot.currentSleepStartedAt,\n ) ??\n currentSleep?.windowStartAt ??\n null;\n const lastSleepStartedAt =\n latestSnapshotValue(relevant, (snapshot) => snapshot.lastSleepStartedAt) ??\n currentSleepStartedAt;\n const lastSleepEndedAt =\n latestSnapshotValue(relevant, (snapshot) => snapshot.lastSleepEndedAt) ??\n null;\n const wakeAt =\n latestSnapshotValue(relevant, (snapshot) => snapshot.wakeAt) ??\n recentWake?.windowStartAt ??\n null;\n const firstActiveAt =\n latestSnapshotValue(relevant, (snapshot) => snapshot.firstActiveAt) ??\n wakeAt;\n const lastActiveAt =\n latestSnapshotValue(relevant, (snapshot) => snapshot.lastActiveAt) ??\n bestObservation(\n relevant,\n (observation) => observation.circadianState === \"awake\",\n )?.windowStartAt ??\n null;\n const sleepStatus = isAsleepState(circadianState)\n ? \"sleeping_now\"\n : lastSleepEndedAt\n ? \"slept\"\n : stateConfidence >= 0.55\n ? \"likely_missed\"\n : \"unknown\";\n const sleepConfidence = roundConfidence(\n currentSleep?.stateConfidence ??\n latestSnapshotValue(relevant, (snapshot) => snapshot.sleepConfidence) ??\n 0,\n );\n const meals = mergedMeals(relevant);\n const lastMealAt =\n meals.length > 0 ? (meals[meals.length - 1]?.detectedAt ?? null) : null;\n const mergedAt = now.toISOString();\n const effectiveDayKey =\n latestSnapshotValue(relevant, (snapshot) => snapshot.effectiveDayKey) ??\n getLocalDateKey(getZonedDateParts(now, args.timezone));\n const localDate =\n latestSnapshotValue(relevant, (snapshot) => snapshot.localDate) ??\n getLocalDateKey(getZonedDateParts(now, args.timezone));\n const awakeProbability =\n latestSnapshotValue(relevant, (snapshot) => snapshot.awakeProbability) ??\n defaultAwakeProbability(mergedAt);\n const regularity =\n latestSnapshotValue(relevant, (snapshot) => snapshot.regularity) ??\n defaultScheduleRegularity();\n const baseline = latestSnapshotValue<LifeOpsPersonalBaseline | null>(\n relevant,\n (snapshot) => snapshot.baseline ?? null,\n );\n const relativeTime = resolveLifeOpsRelativeTime({\n nowMs,\n timezone: args.timezone,\n schedule: {\n circadianState,\n stateConfidence,\n uncertaintyReason,\n awakeProbability,\n regularity,\n baseline,\n sleepConfidence,\n currentSleepStartedAt,\n lastSleepStartedAt,\n lastSleepEndedAt,\n wakeAt,\n firstActiveAt,\n },\n });\n const mealWindowStartFromObservation =\n mealWindow && isFutureIsoAt(mealWindow.windowStartAt, nowMs)\n ? mealWindow.windowStartAt\n : null;\n const mealWindowStartFromSnapshot =\n mealWindowStartFromObservation === null\n ? pickFutureSnapshotValue(\n relevant,\n (snapshot) => snapshot.nextMealWindowStartAt,\n nowMs,\n )\n : null;\n const mealWindowSource: \"observation\" | \"snapshot\" | null =\n mealWindowStartFromObservation !== null\n ? \"observation\"\n : mealWindowStartFromSnapshot !== null\n ? \"snapshot\"\n : null;\n const nextMealWindowStartAt =\n mealWindowStartFromObservation ?? mealWindowStartFromSnapshot ?? null;\n const nextMealLabel =\n mealWindowSource === \"observation\"\n ? (mealWindow?.mealLabel ?? null)\n : mealWindowSource === \"snapshot\"\n ? (latestSnapshotValue(\n relevant,\n (snapshot) => snapshot.nextMealLabel,\n ) ?? null)\n : null;\n const nextMealWindowEndAt =\n mealWindowSource === \"observation\"\n ? (mealWindow?.windowEndAt ?? null)\n : mealWindowSource === \"snapshot\"\n ? (latestSnapshotValue(\n relevant,\n (snapshot) => snapshot.nextMealWindowEndAt,\n ) ?? null)\n : null;\n const nextMealConfidence = roundConfidence(\n mealWindowSource === \"observation\"\n ? (mealWindow?.stateConfidence ?? 0)\n : mealWindowSource === \"snapshot\"\n ? (latestSnapshotValue(\n relevant,\n (snapshot) => snapshot.nextMealConfidence,\n ) ?? 0)\n : 0,\n );\n const contributingDeviceKinds = [\n ...new Set(relevant.map((observation) => observation.deviceKind)),\n ];\n return {\n id: `lifeops-schedule-merged:${args.agentId}:${args.scope}:${args.timezone}`,\n agentId: args.agentId,\n scope: args.scope,\n mergedAt,\n effectiveDayKey,\n localDate,\n timezone: args.timezone,\n inferredAt: mergedAt,\n circadianState,\n stateConfidence: roundConfidence(stateConfidence),\n uncertaintyReason,\n relativeTime,\n awakeProbability,\n regularity,\n baseline,\n // Merged states do not preserve individual observation firings — the\n // scorer runs per-device. Inspection UIs should read the latest local\n // insight row when they need to enumerate contributing rules.\n circadianRuleFirings: [],\n sleepStatus,\n sleepConfidence,\n currentSleepStartedAt,\n lastSleepStartedAt,\n lastSleepEndedAt,\n lastSleepDurationMinutes:\n latestSnapshotValue(\n relevant,\n (snapshot) => snapshot.lastSleepDurationMinutes,\n ) ?? null,\n wakeAt,\n firstActiveAt,\n lastActiveAt,\n meals,\n lastMealAt,\n nextMealLabel,\n nextMealWindowStartAt,\n nextMealWindowEndAt,\n nextMealConfidence,\n observationCount: relevant.length,\n deviceCount: new Set(relevant.map((observation) => observation.deviceId))\n .size,\n contributingDeviceKinds,\n metadata: {\n latestObservationAt: relevant[0]?.observedAt ?? mergedAt,\n deviceIds: [\n ...new Set(relevant.map((observation) => observation.deviceId)),\n ],\n relativeTime,\n },\n createdAt: mergedAt,\n updatedAt: mergedAt,\n };\n}\n\nfunction freshnessMs(\n state: LifeOpsScheduleMergedState,\n nowMs: number,\n): number | null {\n const updatedMs = parseIsoMs(state.updatedAt);\n if (updatedMs === null) {\n return null;\n }\n return nowMs - updatedMs;\n}\n\nexport function isFreshCloudMergedState(\n state: LifeOpsScheduleMergedState | null | undefined,\n now: Date,\n): boolean {\n if (!state || state.scope !== \"cloud\") {\n return false;\n }\n const ageMs = freshnessMs(state, now.getTime());\n return ageMs !== null && ageMs <= SCHEDULE_CLOUD_STATE_FRESH_MS;\n}\n\nexport function preferEffectiveMergedState(args: {\n now: Date;\n local: LifeOpsScheduleMergedState | null;\n cloud: LifeOpsScheduleMergedState | null;\n}): LifeOpsScheduleMergedState | null {\n if (isFreshCloudMergedState(args.cloud, args.now)) {\n return args.cloud;\n }\n return args.local ?? args.cloud ?? null;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { type ResolvedLifeOpsScheduleSyncConfig } from "@elizaos/plugin-elizacloud/cloud/lifeops-schedule-sync-client";
|
|
2
|
+
export declare function resolveLifeOpsScheduleSyncConfigFromElizaConfig(): ResolvedLifeOpsScheduleSyncConfig;
|
|
3
|
+
//# sourceMappingURL=schedule-sync-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedule-sync-config.d.ts","sourceRoot":"","sources":["../../src/lifeops/schedule-sync-config.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,iCAAiC,EAEvC,MAAM,+DAA+D,CAAC;AAEvE,wBAAgB,+CAA+C,IAAI,iCAAiC,CAyBnG"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { loadElizaConfig } from "@elizaos/agent";
|
|
2
|
+
import {
|
|
3
|
+
resolveLifeOpsScheduleSyncConfig
|
|
4
|
+
} from "@elizaos/plugin-elizacloud/cloud/lifeops-schedule-sync-client";
|
|
5
|
+
function resolveLifeOpsScheduleSyncConfigFromElizaConfig() {
|
|
6
|
+
try {
|
|
7
|
+
const config = loadElizaConfig();
|
|
8
|
+
const cloud = config.cloud && typeof config.cloud === "object" ? config.cloud : null;
|
|
9
|
+
return resolveLifeOpsScheduleSyncConfig({
|
|
10
|
+
remoteApiBase: cloud && typeof cloud.remoteApiBase === "string" ? cloud.remoteApiBase : null,
|
|
11
|
+
remoteAccessToken: cloud && typeof cloud.remoteAccessToken === "string" ? cloud.remoteAccessToken : null,
|
|
12
|
+
apiKey: cloud && typeof cloud.apiKey === "string" ? cloud.apiKey : null,
|
|
13
|
+
baseUrl: cloud && typeof cloud.baseUrl === "string" ? cloud.baseUrl : null,
|
|
14
|
+
agentId: cloud && typeof cloud.agentId === "string" ? cloud.agentId : null
|
|
15
|
+
});
|
|
16
|
+
} catch {
|
|
17
|
+
return resolveLifeOpsScheduleSyncConfig();
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export {
|
|
21
|
+
resolveLifeOpsScheduleSyncConfigFromElizaConfig
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=schedule-sync-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lifeops/schedule-sync-config.ts"],"sourcesContent":["import { loadElizaConfig } from \"@elizaos/agent\";\nimport {\n type ResolvedLifeOpsScheduleSyncConfig,\n resolveLifeOpsScheduleSyncConfig,\n} from \"@elizaos/plugin-elizacloud/cloud/lifeops-schedule-sync-client\";\n\nexport function resolveLifeOpsScheduleSyncConfigFromElizaConfig(): ResolvedLifeOpsScheduleSyncConfig {\n try {\n const config = loadElizaConfig();\n const cloud =\n config.cloud && typeof config.cloud === \"object\"\n ? (config.cloud as Record<string, unknown>)\n : null;\n return resolveLifeOpsScheduleSyncConfig({\n remoteApiBase:\n cloud && typeof cloud.remoteApiBase === \"string\"\n ? cloud.remoteApiBase\n : null,\n remoteAccessToken:\n cloud && typeof cloud.remoteAccessToken === \"string\"\n ? cloud.remoteAccessToken\n : null,\n apiKey: cloud && typeof cloud.apiKey === \"string\" ? cloud.apiKey : null,\n baseUrl:\n cloud && typeof cloud.baseUrl === \"string\" ? cloud.baseUrl : null,\n agentId:\n cloud && typeof cloud.agentId === \"string\" ? cloud.agentId : null,\n });\n } catch {\n return resolveLifeOpsScheduleSyncConfig();\n }\n}\n"],"mappings":"AAAA,SAAS,uBAAuB;AAChC;AAAA,EAEE;AAAA,OACK;AAEA,SAAS,kDAAqF;AACnG,MAAI;AACF,UAAM,SAAS,gBAAgB;AAC/B,UAAM,QACJ,OAAO,SAAS,OAAO,OAAO,UAAU,WACnC,OAAO,QACR;AACN,WAAO,iCAAiC;AAAA,MACtC,eACE,SAAS,OAAO,MAAM,kBAAkB,WACpC,MAAM,gBACN;AAAA,MACN,mBACE,SAAS,OAAO,MAAM,sBAAsB,WACxC,MAAM,oBACN;AAAA,MACN,QAAQ,SAAS,OAAO,MAAM,WAAW,WAAW,MAAM,SAAS;AAAA,MACnE,SACE,SAAS,OAAO,MAAM,YAAY,WAAW,MAAM,UAAU;AAAA,MAC/D,SACE,SAAS,OAAO,MAAM,YAAY,WAAW,MAAM,UAAU;AAAA,IACjE,CAAC;AAAA,EACH,QAAQ;AACN,WAAO,iCAAiC;AAAA,EAC1C;AACF;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedule-sync-contracts.d.ts","sourceRoot":"","sources":["../../src/lifeops/schedule-sync-contracts.ts"],"names":[],"mappings":"AAAA,cAAc,kEAAkE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lifeops/schedule-sync-contracts.ts"],"sourcesContent":["export * from \"@elizaos/plugin-elizacloud/cloud/lifeops-schedule-sync-contracts\";\n"],"mappings":"AAAA,cAAc;","names":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LifeOps ScheduledTask barrel.
|
|
3
|
+
*
|
|
4
|
+
* The storage-agnostic spine (types, runner, registries, due/next-fire-at math,
|
|
5
|
+
* anchors) now lives in `@elizaos/plugin-scheduling` and is re-exported here so
|
|
6
|
+
* existing PA importers keep their `./scheduled-task/index.js` path. The tick
|
|
7
|
+
* driver (`processDueScheduledTasks`) and the runner Service stay PA-local
|
|
8
|
+
* during the decomposition.
|
|
9
|
+
*/
|
|
10
|
+
export * from "@elizaos/plugin-scheduling";
|
|
11
|
+
export { type ProcessDueScheduledTasksRequest, type ProcessDueScheduledTasksResult, processDueScheduledTasks, type ScheduledTaskProcessingError, } from "./scheduler.js";
|
|
12
|
+
export { type GetScheduledTaskRunnerOptions, getScheduledTaskRunner, ScheduledTaskRunnerService, } from "./service.js";
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lifeops/scheduled-task/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EACL,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EACnC,wBAAwB,EACxB,KAAK,4BAA4B,GAClC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,KAAK,6BAA6B,EAClC,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export * from "@elizaos/plugin-scheduling";
|
|
2
|
+
import {
|
|
3
|
+
processDueScheduledTasks
|
|
4
|
+
} from "./scheduler.js";
|
|
5
|
+
import {
|
|
6
|
+
getScheduledTaskRunner,
|
|
7
|
+
ScheduledTaskRunnerService
|
|
8
|
+
} from "./service.js";
|
|
9
|
+
export {
|
|
10
|
+
ScheduledTaskRunnerService,
|
|
11
|
+
getScheduledTaskRunner,
|
|
12
|
+
processDueScheduledTasks
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lifeops/scheduled-task/index.ts"],"sourcesContent":["/**\n * LifeOps ScheduledTask barrel.\n *\n * The storage-agnostic spine (types, runner, registries, due/next-fire-at math,\n * anchors) now lives in `@elizaos/plugin-scheduling` and is re-exported here so\n * existing PA importers keep their `./scheduled-task/index.js` path. The tick\n * driver (`processDueScheduledTasks`) and the runner Service stay PA-local\n * during the decomposition.\n */\nexport * from \"@elizaos/plugin-scheduling\";\nexport {\n type ProcessDueScheduledTasksRequest,\n type ProcessDueScheduledTasksResult,\n processDueScheduledTasks,\n type ScheduledTaskProcessingError,\n} from \"./scheduler.js\";\nexport {\n type GetScheduledTaskRunnerOptions,\n getScheduledTaskRunner,\n ScheduledTaskRunnerService,\n} from \"./service.js\";\n"],"mappings":"AASA,cAAc;AACd;AAAA,EAGE;AAAA,OAEK;AACP;AAAA,EAEE;AAAA,EACA;AAAA,OACK;","names":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime wiring for the ScheduledTask spine.
|
|
3
|
+
*
|
|
4
|
+
* Bridges the runner's typed dependencies to the live `IAgentRuntime` /
|
|
5
|
+
* `LifeOpsRepository`. Diagnostic providers below stand in until callers register
|
|
6
|
+
* the production `OwnerFactStore`, `GlobalPauseStore`, `EntityStore`,
|
|
7
|
+
* `RelationshipStore`, and connector / channel registries.
|
|
8
|
+
*/
|
|
9
|
+
import { type IAgentRuntime } from "@elizaos/core";
|
|
10
|
+
import type { ActivitySignalBusView, GlobalPauseView, OwnerFactsView, ScheduledTaskDispatcher, SubjectStoreView, TaskExecutionProfile } from "@elizaos/plugin-scheduling";
|
|
11
|
+
import { type ScheduledTaskRunnerHandle } from "@elizaos/plugin-scheduling";
|
|
12
|
+
export declare function createProductionScheduledTaskDispatcher(opts: {
|
|
13
|
+
runtime: IAgentRuntime;
|
|
14
|
+
}): ScheduledTaskDispatcher;
|
|
15
|
+
export interface CreateRuntimeRunnerOptions {
|
|
16
|
+
runtime: IAgentRuntime;
|
|
17
|
+
agentId: string;
|
|
18
|
+
/** Override the default runtime providers as agents wire up. */
|
|
19
|
+
ownerFacts?: () => OwnerFactsView | Promise<OwnerFactsView>;
|
|
20
|
+
globalPause?: GlobalPauseView;
|
|
21
|
+
activity?: ActivitySignalBusView;
|
|
22
|
+
subjectStore?: SubjectStoreView;
|
|
23
|
+
/**
|
|
24
|
+
* Override the host-capability probe. The default reads
|
|
25
|
+
* `getHostExecutionCapabilities(runtime)` from `@elizaos/app-core`,
|
|
26
|
+
* which detects iOS BackgroundRunner / Android FGS / Node desktop. Tests
|
|
27
|
+
* inject a fixed set to exercise substitution behavior.
|
|
28
|
+
*/
|
|
29
|
+
hostCapabilities?: () => ReadonlySet<TaskExecutionProfile>;
|
|
30
|
+
now?: () => Date;
|
|
31
|
+
}
|
|
32
|
+
export declare function createRuntimeScheduledTaskRunner(opts: CreateRuntimeRunnerOptions): ScheduledTaskRunnerHandle;
|
|
33
|
+
//# sourceMappingURL=runtime-wiring.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-wiring.d.ts","sourceRoot":"","sources":["../../../src/lifeops/scheduled-task/runtime-wiring.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAE,KAAK,aAAa,EAAuB,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,EACV,qBAAqB,EACrB,eAAe,EACf,cAAc,EAEd,uBAAuB,EAKvB,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAcL,KAAK,yBAAyB,EAE/B,MAAM,4BAA4B,CAAC;AA8OpC,wBAAgB,uCAAuC,CAAC,IAAI,EAAE;IAC5D,OAAO,EAAE,aAAa,CAAC;CACxB,GAAG,uBAAuB,CA8G1B;AAeD,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC5D,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAC3D,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,0BAA0B,GAC/B,yBAAyB,CAyD3B"}
|
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
import crypto from "node:crypto";
|
|
2
|
+
import { getAgentEventService } from "@elizaos/agent";
|
|
3
|
+
import { getHostExecutionCapabilities } from "@elizaos/app-core/services/task-host-capabilities";
|
|
4
|
+
import { logger, ServiceType } from "@elizaos/core";
|
|
5
|
+
import {
|
|
6
|
+
createAnchorRegistry,
|
|
7
|
+
createCompletionCheckRegistry,
|
|
8
|
+
createConsolidationRegistry,
|
|
9
|
+
createEscalationLadderRegistry,
|
|
10
|
+
createScheduledTaskRunner,
|
|
11
|
+
createTaskGateRegistry,
|
|
12
|
+
getAnchorRegistry,
|
|
13
|
+
registerAnchorRegistry,
|
|
14
|
+
registerAppLifeOpsAnchors,
|
|
15
|
+
registerBuiltInCompletionChecks,
|
|
16
|
+
registerBuiltInGates,
|
|
17
|
+
registerDefaultEscalationLadders,
|
|
18
|
+
registerFallbackAnchors
|
|
19
|
+
} from "@elizaos/plugin-scheduling";
|
|
20
|
+
import { getChannelRegistry } from "../channels/index.js";
|
|
21
|
+
import { resolveDefaultTimeZone } from "../defaults.js";
|
|
22
|
+
import { resolveGlobalPauseStore } from "../global-pause/store.js";
|
|
23
|
+
import {
|
|
24
|
+
ownerFactsToView,
|
|
25
|
+
resolveOwnerFactStore
|
|
26
|
+
} from "../owner/fact-store.js";
|
|
27
|
+
import { LifeOpsRepository } from "../repository.js";
|
|
28
|
+
import { preferEffectiveMergedState } from "../schedule-state.js";
|
|
29
|
+
import { getSendPolicyRegistry } from "../send-policy/index.js";
|
|
30
|
+
import { getActivitySignalBus } from "../signals/bus.js";
|
|
31
|
+
function makeRepositoryBackedStores(runtime, agentId) {
|
|
32
|
+
const repo = new LifeOpsRepository(runtime);
|
|
33
|
+
return {
|
|
34
|
+
store: {
|
|
35
|
+
async upsert(task, options) {
|
|
36
|
+
await repo.upsertScheduledTask(agentId, task, {
|
|
37
|
+
nextFireAtIso: options?.nextFireAtIso ?? null
|
|
38
|
+
});
|
|
39
|
+
},
|
|
40
|
+
async claimForFire({ taskId, firedAtIso }) {
|
|
41
|
+
return repo.claimScheduledTaskForFire(agentId, {
|
|
42
|
+
taskId,
|
|
43
|
+
firedAtIso
|
|
44
|
+
});
|
|
45
|
+
},
|
|
46
|
+
async get(taskId) {
|
|
47
|
+
return repo.getScheduledTask(agentId, taskId);
|
|
48
|
+
},
|
|
49
|
+
async findByIdempotencyKey(key) {
|
|
50
|
+
return repo.getScheduledTaskByIdempotencyKey(agentId, key);
|
|
51
|
+
},
|
|
52
|
+
async list(filter) {
|
|
53
|
+
const status = filter?.status;
|
|
54
|
+
const statusList = Array.isArray(status) ? status : status ? [status] : void 0;
|
|
55
|
+
return repo.listScheduledTasks(agentId, {
|
|
56
|
+
kind: filter?.kind,
|
|
57
|
+
status: statusList,
|
|
58
|
+
subjectKind: filter?.subject?.kind,
|
|
59
|
+
subjectId: filter?.subject?.id,
|
|
60
|
+
source: filter?.source,
|
|
61
|
+
ownerVisibleOnly: filter?.ownerVisibleOnly
|
|
62
|
+
});
|
|
63
|
+
},
|
|
64
|
+
async delete(taskId) {
|
|
65
|
+
await repo.deleteScheduledTask(agentId, taskId);
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
logStore: {
|
|
69
|
+
async append(entry) {
|
|
70
|
+
await repo.appendScheduledTaskLog(entry);
|
|
71
|
+
},
|
|
72
|
+
async list(args) {
|
|
73
|
+
return repo.listScheduledTaskLog({
|
|
74
|
+
agentId,
|
|
75
|
+
taskId: args.taskId,
|
|
76
|
+
sinceIso: args.sinceIso,
|
|
77
|
+
untilIso: args.untilIso,
|
|
78
|
+
excludeRollups: args.excludeRollups,
|
|
79
|
+
limit: args.limit
|
|
80
|
+
});
|
|
81
|
+
},
|
|
82
|
+
async rollupOlderThan(args) {
|
|
83
|
+
return repo.rollupScheduledTaskLog({
|
|
84
|
+
agentId,
|
|
85
|
+
olderThanIso: args.olderThanIso
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
function defaultOwnerFactsProvider(runtime) {
|
|
92
|
+
return async () => {
|
|
93
|
+
const store = resolveOwnerFactStore(runtime);
|
|
94
|
+
const view = ownerFactsToView(await store.read());
|
|
95
|
+
const timezone = view.timezone ?? resolveDefaultTimeZone();
|
|
96
|
+
try {
|
|
97
|
+
const repo = new LifeOpsRepository(runtime);
|
|
98
|
+
const [local, cloud] = await Promise.all([
|
|
99
|
+
repo.getScheduleMergedState(runtime.agentId, "local", timezone),
|
|
100
|
+
repo.getScheduleMergedState(runtime.agentId, "cloud", timezone)
|
|
101
|
+
]);
|
|
102
|
+
const effective = preferEffectiveMergedState({
|
|
103
|
+
now: /* @__PURE__ */ new Date(),
|
|
104
|
+
local,
|
|
105
|
+
cloud
|
|
106
|
+
});
|
|
107
|
+
const sampleCount = effective?.baseline?.sampleCount;
|
|
108
|
+
if (typeof sampleCount === "number" && Number.isFinite(sampleCount)) {
|
|
109
|
+
view.personalBaseline = {
|
|
110
|
+
sampleCount,
|
|
111
|
+
windowDays: effective?.baseline?.windowDays
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
} catch (error) {
|
|
115
|
+
logger.warn(
|
|
116
|
+
{
|
|
117
|
+
src: "lifeops:scheduled-task:runtime-wiring",
|
|
118
|
+
agentId: runtime.agentId,
|
|
119
|
+
error
|
|
120
|
+
},
|
|
121
|
+
"Failed to project schedule baseline sample count into owner facts; baseline-dependent gates will deny until it is available."
|
|
122
|
+
);
|
|
123
|
+
}
|
|
124
|
+
return view;
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
function makeMissingActivityBusView(runtime) {
|
|
128
|
+
let warned = false;
|
|
129
|
+
return {
|
|
130
|
+
hasSignalSince() {
|
|
131
|
+
if (!warned) {
|
|
132
|
+
warned = true;
|
|
133
|
+
logger.warn(
|
|
134
|
+
{
|
|
135
|
+
src: "lifeops:scheduled-task:runtime-wiring",
|
|
136
|
+
agentId: runtime.agentId
|
|
137
|
+
},
|
|
138
|
+
"ActivitySignalBus not registered; completion-checks depending on activity signals will report no-signal. Call registerActivitySignalBus during plugin init."
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
function makeMissingSubjectStoreView(runtime) {
|
|
146
|
+
let warned = false;
|
|
147
|
+
return {
|
|
148
|
+
wasUpdatedSince() {
|
|
149
|
+
if (!warned) {
|
|
150
|
+
warned = true;
|
|
151
|
+
logger.warn(
|
|
152
|
+
{
|
|
153
|
+
src: "lifeops:scheduled-task:runtime-wiring",
|
|
154
|
+
agentId: runtime.agentId
|
|
155
|
+
},
|
|
156
|
+
"SubjectStore not registered; subject_updated completion-checks will report no-update. Inject a SubjectStoreView via createRuntimeScheduledTaskRunner({ subjectStore })."
|
|
157
|
+
);
|
|
158
|
+
}
|
|
159
|
+
return false;
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
function normalizeChannelTarget(channelKey, target) {
|
|
164
|
+
if (!target) return void 0;
|
|
165
|
+
const prefix = `${channelKey}:`;
|
|
166
|
+
return target.startsWith(prefix) ? target.slice(prefix.length) : target;
|
|
167
|
+
}
|
|
168
|
+
function getNotifier(runtime) {
|
|
169
|
+
const svc = runtime.getService(
|
|
170
|
+
ServiceType.NOTIFICATION
|
|
171
|
+
);
|
|
172
|
+
return svc && typeof svc.notify === "function" ? svc : null;
|
|
173
|
+
}
|
|
174
|
+
function deniedDecisionToDispatchResult(decision) {
|
|
175
|
+
if (decision.kind === "allow") return null;
|
|
176
|
+
if (decision.kind === "deny") {
|
|
177
|
+
return decision.asDispatchResult ?? {
|
|
178
|
+
ok: false,
|
|
179
|
+
reason: "auth_expired",
|
|
180
|
+
userActionable: decision.userActionable,
|
|
181
|
+
message: decision.reason
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
return {
|
|
185
|
+
ok: false,
|
|
186
|
+
reason: "auth_expired",
|
|
187
|
+
userActionable: true,
|
|
188
|
+
message: decision.reason ?? "Send requires approval."
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
function createProductionScheduledTaskDispatcher(opts) {
|
|
192
|
+
return {
|
|
193
|
+
async dispatch(record) {
|
|
194
|
+
const registry = getChannelRegistry(opts.runtime);
|
|
195
|
+
const channel = registry?.get(record.channelKey) ?? null;
|
|
196
|
+
if (!channel?.send) {
|
|
197
|
+
if (record.channelKey === "in_app" || record.channelKey === "push" || record.output?.destination === "in_app_card") {
|
|
198
|
+
const eventService = getAgentEventService(opts.runtime);
|
|
199
|
+
eventService?.emit?.({
|
|
200
|
+
runId: crypto.randomUUID(),
|
|
201
|
+
stream: "assistant",
|
|
202
|
+
agentId: opts.runtime.agentId,
|
|
203
|
+
data: {
|
|
204
|
+
text: record.promptInstructions,
|
|
205
|
+
source: "lifeops-scheduled-task",
|
|
206
|
+
taskId: record.taskId,
|
|
207
|
+
firedAtIso: record.firedAtIso,
|
|
208
|
+
channelKey: record.channelKey,
|
|
209
|
+
target: normalizeChannelTarget(
|
|
210
|
+
record.channelKey,
|
|
211
|
+
record.output?.target
|
|
212
|
+
),
|
|
213
|
+
...record.intensity ? { intensity: record.intensity } : {},
|
|
214
|
+
...record.contextRequest ? { contextRequest: record.contextRequest } : {}
|
|
215
|
+
}
|
|
216
|
+
});
|
|
217
|
+
const isUrgent = record.intensity === "urgent";
|
|
218
|
+
void getNotifier(opts.runtime)?.notify({
|
|
219
|
+
title: isUrgent ? "Approval needed" : "Reminder",
|
|
220
|
+
body: record.promptInstructions,
|
|
221
|
+
category: isUrgent ? "approval" : "reminder",
|
|
222
|
+
priority: isUrgent ? "urgent" : "normal",
|
|
223
|
+
source: "lifeops",
|
|
224
|
+
groupKey: `lifeops:${record.taskId}`,
|
|
225
|
+
deepLink: "/chat",
|
|
226
|
+
data: {
|
|
227
|
+
taskId: record.taskId,
|
|
228
|
+
firedAtIso: record.firedAtIso,
|
|
229
|
+
channelKey: record.channelKey
|
|
230
|
+
}
|
|
231
|
+
}).catch((error) => {
|
|
232
|
+
logger.debug(
|
|
233
|
+
{ src: "lifeops:scheduled-task", error },
|
|
234
|
+
"Notification emit failed"
|
|
235
|
+
);
|
|
236
|
+
});
|
|
237
|
+
return {
|
|
238
|
+
ok: true,
|
|
239
|
+
messageId: `in_app:${record.taskId}:${record.firedAtIso}`
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
return {
|
|
243
|
+
ok: false,
|
|
244
|
+
reason: "disconnected",
|
|
245
|
+
userActionable: true,
|
|
246
|
+
message: `Channel "${record.channelKey}" is not connected for send.`
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
const payload = {
|
|
250
|
+
target: normalizeChannelTarget(
|
|
251
|
+
record.channelKey,
|
|
252
|
+
record.output?.target ?? record.channelKey
|
|
253
|
+
),
|
|
254
|
+
message: record.promptInstructions,
|
|
255
|
+
metadata: {
|
|
256
|
+
taskId: record.taskId,
|
|
257
|
+
firedAtIso: record.firedAtIso,
|
|
258
|
+
...record.intensity ? { intensity: record.intensity } : {},
|
|
259
|
+
...record.contextRequest ? { contextRequest: record.contextRequest } : {},
|
|
260
|
+
...record.consolidationBatchId ? { consolidationBatchId: record.consolidationBatchId } : {}
|
|
261
|
+
}
|
|
262
|
+
};
|
|
263
|
+
const sendPolicies = getSendPolicyRegistry(opts.runtime);
|
|
264
|
+
const policyDecision = await sendPolicies?.evaluate({
|
|
265
|
+
source: { kind: "channel", key: record.channelKey },
|
|
266
|
+
capability: "send",
|
|
267
|
+
payload,
|
|
268
|
+
taskId: record.taskId
|
|
269
|
+
});
|
|
270
|
+
if (policyDecision) {
|
|
271
|
+
const denied = deniedDecisionToDispatchResult(policyDecision);
|
|
272
|
+
if (denied) return denied;
|
|
273
|
+
}
|
|
274
|
+
return channel.send(payload);
|
|
275
|
+
}
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
function resolveRuntimeAnchorRegistry(runtime) {
|
|
279
|
+
const existing = getAnchorRegistry(runtime);
|
|
280
|
+
if (existing) {
|
|
281
|
+
registerFallbackAnchors(existing);
|
|
282
|
+
return existing;
|
|
283
|
+
}
|
|
284
|
+
const registry = createAnchorRegistry();
|
|
285
|
+
registerAppLifeOpsAnchors(registry);
|
|
286
|
+
registerFallbackAnchors(registry);
|
|
287
|
+
registerAnchorRegistry(runtime, registry);
|
|
288
|
+
return registry;
|
|
289
|
+
}
|
|
290
|
+
function createRuntimeScheduledTaskRunner(opts) {
|
|
291
|
+
const stores = makeRepositoryBackedStores(opts.runtime, opts.agentId);
|
|
292
|
+
const gates = createTaskGateRegistry();
|
|
293
|
+
registerBuiltInGates(gates);
|
|
294
|
+
const completionChecks = createCompletionCheckRegistry();
|
|
295
|
+
registerBuiltInCompletionChecks(completionChecks);
|
|
296
|
+
const ladders = createEscalationLadderRegistry();
|
|
297
|
+
registerDefaultEscalationLadders(ladders);
|
|
298
|
+
const anchors = resolveRuntimeAnchorRegistry(opts.runtime);
|
|
299
|
+
const consolidation = createConsolidationRegistry();
|
|
300
|
+
const globalPause = opts.globalPause ?? resolveGlobalPauseStore(opts.runtime);
|
|
301
|
+
const activity = opts.activity ?? getActivitySignalBus(opts.runtime) ?? makeMissingActivityBusView(opts.runtime);
|
|
302
|
+
const subjectStore = opts.subjectStore ?? makeMissingSubjectStoreView(opts.runtime);
|
|
303
|
+
return createScheduledTaskRunner({
|
|
304
|
+
agentId: opts.agentId,
|
|
305
|
+
store: stores.store,
|
|
306
|
+
logStore: stores.logStore,
|
|
307
|
+
gates,
|
|
308
|
+
completionChecks,
|
|
309
|
+
ladders,
|
|
310
|
+
anchors,
|
|
311
|
+
consolidation,
|
|
312
|
+
ownerFacts: opts.ownerFacts ?? defaultOwnerFactsProvider(opts.runtime),
|
|
313
|
+
globalPause,
|
|
314
|
+
activity,
|
|
315
|
+
subjectStore,
|
|
316
|
+
now: opts.now,
|
|
317
|
+
channelKeys: () => {
|
|
318
|
+
const registry = getChannelRegistry(opts.runtime);
|
|
319
|
+
if (!registry) return /* @__PURE__ */ new Set();
|
|
320
|
+
return new Set(registry.list().map((c) => c.kind));
|
|
321
|
+
},
|
|
322
|
+
hostCapabilities: opts.hostCapabilities ?? (() => getHostExecutionCapabilities(
|
|
323
|
+
opts.runtime
|
|
324
|
+
)),
|
|
325
|
+
dispatcher: createProductionScheduledTaskDispatcher({
|
|
326
|
+
runtime: opts.runtime
|
|
327
|
+
})
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
export {
|
|
331
|
+
createProductionScheduledTaskDispatcher,
|
|
332
|
+
createRuntimeScheduledTaskRunner
|
|
333
|
+
};
|
|
334
|
+
//# sourceMappingURL=runtime-wiring.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lifeops/scheduled-task/runtime-wiring.ts"],"sourcesContent":["/**\n * Runtime wiring for the ScheduledTask spine.\n *\n * Bridges the runner's typed dependencies to the live `IAgentRuntime` /\n * `LifeOpsRepository`. Diagnostic providers below stand in until callers register\n * the production `OwnerFactStore`, `GlobalPauseStore`, `EntityStore`,\n * `RelationshipStore`, and connector / channel registries.\n */\n\nimport crypto from \"node:crypto\";\nimport { getAgentEventService } from \"@elizaos/agent\";\nimport { getHostExecutionCapabilities } from \"@elizaos/app-core/services/task-host-capabilities\";\nimport { type IAgentRuntime, logger, ServiceType } from \"@elizaos/core\";\nimport type {\n ActivitySignalBusView,\n GlobalPauseView,\n OwnerFactsView,\n ScheduledTask,\n ScheduledTaskDispatcher,\n ScheduledTaskDispatchRecord,\n ScheduledTaskFilter,\n ScheduledTaskLogEntry,\n ScheduledTaskLogStore,\n SubjectStoreView,\n TaskExecutionProfile,\n} from \"@elizaos/plugin-scheduling\";\nimport {\n createAnchorRegistry,\n createCompletionCheckRegistry,\n createConsolidationRegistry,\n createEscalationLadderRegistry,\n createScheduledTaskRunner,\n createTaskGateRegistry,\n getAnchorRegistry,\n registerAnchorRegistry,\n registerAppLifeOpsAnchors,\n registerBuiltInCompletionChecks,\n registerBuiltInGates,\n registerDefaultEscalationLadders,\n registerFallbackAnchors,\n type ScheduledTaskRunnerHandle,\n type ScheduledTaskStore,\n} from \"@elizaos/plugin-scheduling\";\nimport { getChannelRegistry } from \"../channels/index.js\";\nimport type { DispatchResult } from \"../connectors/contract.js\";\nimport { resolveDefaultTimeZone } from \"../defaults.js\";\nimport { resolveGlobalPauseStore } from \"../global-pause/store.js\";\nimport {\n ownerFactsToView,\n resolveOwnerFactStore,\n} from \"../owner/fact-store.js\";\nimport { LifeOpsRepository } from \"../repository.js\";\nimport { preferEffectiveMergedState } from \"../schedule-state.js\";\nimport { getSendPolicyRegistry } from \"../send-policy/index.js\";\nimport { getActivitySignalBus } from \"../signals/bus.js\";\n\ninterface RepositoryBackedStores {\n store: ScheduledTaskStore;\n logStore: ScheduledTaskLogStore;\n}\n\n/**\n * Bind the in-memory facade to the LifeOpsRepository SQL methods. Each\n * call routes through the repository so the runner is DB-backed but\n * agnostic about the storage shape.\n */\nfunction makeRepositoryBackedStores(\n runtime: IAgentRuntime,\n agentId: string,\n): RepositoryBackedStores {\n const repo = new LifeOpsRepository(runtime);\n return {\n store: {\n async upsert(task: ScheduledTask, options) {\n await repo.upsertScheduledTask(agentId, task, {\n nextFireAtIso: options?.nextFireAtIso ?? null,\n });\n },\n async claimForFire({ taskId, firedAtIso }) {\n return repo.claimScheduledTaskForFire(agentId, {\n taskId,\n firedAtIso,\n });\n },\n async get(taskId: string) {\n return repo.getScheduledTask(agentId, taskId);\n },\n async findByIdempotencyKey(key: string) {\n return repo.getScheduledTaskByIdempotencyKey(agentId, key);\n },\n async list(filter?: ScheduledTaskFilter) {\n const status = filter?.status;\n const statusList = Array.isArray(status)\n ? status\n : status\n ? [status]\n : undefined;\n return repo.listScheduledTasks(agentId, {\n kind: filter?.kind,\n status: statusList,\n subjectKind: filter?.subject?.kind,\n subjectId: filter?.subject?.id,\n source: filter?.source,\n ownerVisibleOnly: filter?.ownerVisibleOnly,\n });\n },\n async delete(taskId: string) {\n await repo.deleteScheduledTask(agentId, taskId);\n },\n },\n logStore: {\n async append(entry: ScheduledTaskLogEntry) {\n await repo.appendScheduledTaskLog(entry);\n },\n async list(args) {\n return repo.listScheduledTaskLog({\n agentId,\n taskId: args.taskId,\n sinceIso: args.sinceIso,\n untilIso: args.untilIso,\n excludeRollups: args.excludeRollups,\n limit: args.limit,\n });\n },\n async rollupOlderThan(args) {\n return repo.rollupScheduledTaskLog({\n agentId,\n olderThanIso: args.olderThanIso,\n });\n },\n },\n };\n}\n\nfunction defaultOwnerFactsProvider(\n runtime: IAgentRuntime,\n): () => Promise<OwnerFactsView> {\n return async () => {\n const store = resolveOwnerFactStore(runtime);\n const view = ownerFactsToView(await store.read());\n const timezone = view.timezone ?? resolveDefaultTimeZone();\n try {\n const repo = new LifeOpsRepository(runtime);\n const [local, cloud] = await Promise.all([\n repo.getScheduleMergedState(runtime.agentId, \"local\", timezone),\n repo.getScheduleMergedState(runtime.agentId, \"cloud\", timezone),\n ]);\n const effective = preferEffectiveMergedState({\n now: new Date(),\n local,\n cloud,\n });\n const sampleCount = effective?.baseline?.sampleCount;\n if (typeof sampleCount === \"number\" && Number.isFinite(sampleCount)) {\n view.personalBaseline = {\n sampleCount,\n windowDays: effective?.baseline?.windowDays,\n };\n }\n } catch (error) {\n logger.warn(\n {\n src: \"lifeops:scheduled-task:runtime-wiring\",\n agentId: runtime.agentId,\n error,\n },\n \"Failed to project schedule baseline sample count into owner facts; baseline-dependent gates will deny until it is available.\",\n );\n }\n return view;\n };\n}\n\n/**\n * Diagnostic stand-in for `ActivitySignalBusView` when no bus was registered\n * for this runtime. Logs once per runner construction so the missing wiring\n * is visible at boot; completion-checks depending on signals will return\n * `false` (their honest \"no signal observed\" state) but the operator sees\n * the warning and can wire `registerActivitySignalBus` in plugin init.\n */\nfunction makeMissingActivityBusView(\n runtime: IAgentRuntime,\n): ActivitySignalBusView {\n let warned = false;\n return {\n hasSignalSince() {\n if (!warned) {\n warned = true;\n logger.warn(\n {\n src: \"lifeops:scheduled-task:runtime-wiring\",\n agentId: runtime.agentId,\n },\n \"ActivitySignalBus not registered; completion-checks depending on activity signals will report no-signal. Call registerActivitySignalBus during plugin init.\",\n );\n }\n return false;\n },\n };\n}\n\n/**\n * Diagnostic stand-in for `SubjectStoreView` when no store was injected.\n * Same warn-once semantics as the activity-bus shim; `subject_updated`\n * completion-checks will report no-update until a real store is wired.\n */\nfunction makeMissingSubjectStoreView(runtime: IAgentRuntime): SubjectStoreView {\n let warned = false;\n return {\n wasUpdatedSince() {\n if (!warned) {\n warned = true;\n logger.warn(\n {\n src: \"lifeops:scheduled-task:runtime-wiring\",\n agentId: runtime.agentId,\n },\n \"SubjectStore not registered; subject_updated completion-checks will report no-update. Inject a SubjectStoreView via createRuntimeScheduledTaskRunner({ subjectStore }).\",\n );\n }\n return false;\n },\n };\n}\n\nfunction normalizeChannelTarget(\n channelKey: string,\n target: string | undefined,\n): string | undefined {\n if (!target) return undefined;\n const prefix = `${channelKey}:`;\n return target.startsWith(prefix) ? target.slice(prefix.length) : target;\n}\n\ninterface NotificationEmitter {\n notify: (input: {\n title: string;\n body?: string;\n category?: string;\n priority?: string;\n source?: string;\n deepLink?: string;\n groupKey?: string;\n data?: Record<string, unknown>;\n }) => Promise<unknown>;\n}\n\nfunction getNotifier(runtime: IAgentRuntime): NotificationEmitter | null {\n const svc = runtime.getService(\n ServiceType.NOTIFICATION,\n ) as NotificationEmitter | null;\n return svc && typeof svc.notify === \"function\" ? svc : null;\n}\n\nfunction deniedDecisionToDispatchResult(\n decision: Awaited<\n ReturnType<\n NonNullable<ReturnType<typeof getSendPolicyRegistry>>[\"evaluate\"]\n >\n >,\n): DispatchResult | null {\n if (decision.kind === \"allow\") return null;\n if (decision.kind === \"deny\") {\n return (\n decision.asDispatchResult ?? {\n ok: false,\n reason: \"auth_expired\",\n userActionable: decision.userActionable,\n message: decision.reason,\n }\n );\n }\n return {\n ok: false,\n reason: \"auth_expired\",\n userActionable: true,\n message: decision.reason ?? \"Send requires approval.\",\n };\n}\n\nexport function createProductionScheduledTaskDispatcher(opts: {\n runtime: IAgentRuntime;\n}): ScheduledTaskDispatcher {\n return {\n async dispatch(\n record: ScheduledTaskDispatchRecord,\n ): Promise<DispatchResult> {\n const registry = getChannelRegistry(opts.runtime);\n const channel = registry?.get(record.channelKey) ?? null;\n if (!channel?.send) {\n if (\n record.channelKey === \"in_app\" ||\n record.channelKey === \"push\" ||\n record.output?.destination === \"in_app_card\"\n ) {\n const eventService = getAgentEventService(opts.runtime) as {\n emit?: (event: {\n runId: string;\n stream: string;\n data: Record<string, unknown>;\n agentId?: string;\n }) => void;\n } | null;\n eventService?.emit?.({\n runId: crypto.randomUUID(),\n stream: \"assistant\",\n agentId: opts.runtime.agentId,\n data: {\n text: record.promptInstructions,\n source: \"lifeops-scheduled-task\",\n taskId: record.taskId,\n firedAtIso: record.firedAtIso,\n channelKey: record.channelKey,\n target: normalizeChannelTarget(\n record.channelKey,\n record.output?.target,\n ),\n ...(record.intensity ? { intensity: record.intensity } : {}),\n ...(record.contextRequest\n ? { contextRequest: record.contextRequest }\n : {}),\n },\n });\n const isUrgent = record.intensity === \"urgent\";\n void getNotifier(opts.runtime)\n ?.notify({\n title: isUrgent ? \"Approval needed\" : \"Reminder\",\n body: record.promptInstructions,\n category: isUrgent ? \"approval\" : \"reminder\",\n priority: isUrgent ? \"urgent\" : \"normal\",\n source: \"lifeops\",\n groupKey: `lifeops:${record.taskId}`,\n deepLink: \"/chat\",\n data: {\n taskId: record.taskId,\n firedAtIso: record.firedAtIso,\n channelKey: record.channelKey,\n },\n })\n .catch((error: unknown) => {\n logger.debug(\n { src: \"lifeops:scheduled-task\", error },\n \"Notification emit failed\",\n );\n });\n return {\n ok: true,\n messageId: `in_app:${record.taskId}:${record.firedAtIso}`,\n };\n }\n return {\n ok: false,\n reason: \"disconnected\",\n userActionable: true,\n message: `Channel \"${record.channelKey}\" is not connected for send.`,\n };\n }\n\n const payload = {\n target: normalizeChannelTarget(\n record.channelKey,\n record.output?.target ?? record.channelKey,\n ),\n message: record.promptInstructions,\n metadata: {\n taskId: record.taskId,\n firedAtIso: record.firedAtIso,\n ...(record.intensity ? { intensity: record.intensity } : {}),\n ...(record.contextRequest\n ? { contextRequest: record.contextRequest }\n : {}),\n ...(record.consolidationBatchId\n ? { consolidationBatchId: record.consolidationBatchId }\n : {}),\n },\n };\n\n const sendPolicies = getSendPolicyRegistry(opts.runtime);\n const policyDecision = await sendPolicies?.evaluate({\n source: { kind: \"channel\", key: record.channelKey },\n capability: \"send\",\n payload,\n taskId: record.taskId,\n });\n if (policyDecision) {\n const denied = deniedDecisionToDispatchResult(policyDecision);\n if (denied) return denied;\n }\n\n return channel.send(payload);\n },\n };\n}\n\nfunction resolveRuntimeAnchorRegistry(runtime: IAgentRuntime) {\n const existing = getAnchorRegistry(runtime);\n if (existing) {\n registerFallbackAnchors(existing);\n return existing;\n }\n const registry = createAnchorRegistry();\n registerAppLifeOpsAnchors(registry);\n registerFallbackAnchors(registry);\n registerAnchorRegistry(runtime, registry);\n return registry;\n}\n\nexport interface CreateRuntimeRunnerOptions {\n runtime: IAgentRuntime;\n agentId: string;\n /** Override the default runtime providers as agents wire up. */\n ownerFacts?: () => OwnerFactsView | Promise<OwnerFactsView>;\n globalPause?: GlobalPauseView;\n activity?: ActivitySignalBusView;\n subjectStore?: SubjectStoreView;\n /**\n * Override the host-capability probe. The default reads\n * `getHostExecutionCapabilities(runtime)` from `@elizaos/app-core`,\n * which detects iOS BackgroundRunner / Android FGS / Node desktop. Tests\n * inject a fixed set to exercise substitution behavior.\n */\n hostCapabilities?: () => ReadonlySet<TaskExecutionProfile>;\n now?: () => Date;\n}\n\nexport function createRuntimeScheduledTaskRunner(\n opts: CreateRuntimeRunnerOptions,\n): ScheduledTaskRunnerHandle {\n const stores = makeRepositoryBackedStores(opts.runtime, opts.agentId);\n\n const gates = createTaskGateRegistry();\n registerBuiltInGates(gates);\n\n const completionChecks = createCompletionCheckRegistry();\n registerBuiltInCompletionChecks(completionChecks);\n\n const ladders = createEscalationLadderRegistry();\n registerDefaultEscalationLadders(ladders);\n\n const anchors = resolveRuntimeAnchorRegistry(opts.runtime);\n\n const consolidation = createConsolidationRegistry();\n\n // Default the production providers from the runtime. Tests / harnesses can\n // still inject overrides via the options bag. The diagnostic shims warn-once\n // on missing wiring so silent always-allow / always-false defaults are gone.\n const globalPause: GlobalPauseView =\n opts.globalPause ?? resolveGlobalPauseStore(opts.runtime);\n const activity: ActivitySignalBusView =\n opts.activity ??\n getActivitySignalBus(opts.runtime) ??\n makeMissingActivityBusView(opts.runtime);\n const subjectStore: SubjectStoreView =\n opts.subjectStore ?? makeMissingSubjectStoreView(opts.runtime);\n\n return createScheduledTaskRunner({\n agentId: opts.agentId,\n store: stores.store,\n logStore: stores.logStore,\n gates,\n completionChecks,\n ladders,\n anchors,\n consolidation,\n ownerFacts: opts.ownerFacts ?? defaultOwnerFactsProvider(opts.runtime),\n globalPause,\n activity,\n subjectStore,\n now: opts.now,\n channelKeys: () => {\n const registry = getChannelRegistry(opts.runtime);\n if (!registry) return new Set();\n return new Set(registry.list().map((c) => c.kind));\n },\n hostCapabilities:\n opts.hostCapabilities ??\n (() =>\n getHostExecutionCapabilities(\n opts.runtime,\n ) as ReadonlySet<TaskExecutionProfile>),\n dispatcher: createProductionScheduledTaskDispatcher({\n runtime: opts.runtime,\n }),\n });\n}\n"],"mappings":"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","names":[]}
|