@elizaos/plugin-personal-assistant 2.0.3-beta.6 → 2.0.3-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions/app-block.d.ts +15 -0
- package/dist/actions/app-block.d.ts.map +1 -0
- package/dist/actions/app-block.js +349 -0
- package/dist/actions/app-block.js.map +1 -0
- package/dist/actions/autofill.d.ts +20 -0
- package/dist/actions/autofill.d.ts.map +1 -0
- package/dist/actions/autofill.js +370 -0
- package/dist/actions/autofill.js.map +1 -0
- package/dist/actions/block.d.ts +30 -0
- package/dist/actions/block.d.ts.map +1 -0
- package/dist/actions/block.js +326 -0
- package/dist/actions/block.js.map +1 -0
- package/dist/actions/book-travel.d.ts +10 -0
- package/dist/actions/book-travel.d.ts.map +1 -0
- package/dist/actions/book-travel.js +467 -0
- package/dist/actions/book-travel.js.map +1 -0
- package/dist/actions/brief.d.ts +60 -0
- package/dist/actions/brief.d.ts.map +1 -0
- package/dist/actions/brief.js +485 -0
- package/dist/actions/brief.js.map +1 -0
- package/dist/actions/calendar.d.ts +22 -0
- package/dist/actions/calendar.d.ts.map +1 -0
- package/dist/actions/calendar.js +832 -0
- package/dist/actions/calendar.js.map +1 -0
- package/dist/actions/conflict-detect.d.ts +67 -0
- package/dist/actions/conflict-detect.d.ts.map +1 -0
- package/dist/actions/conflict-detect.js +310 -0
- package/dist/actions/conflict-detect.js.map +1 -0
- package/dist/actions/connector.d.ts +5 -0
- package/dist/actions/connector.d.ts.map +1 -0
- package/dist/actions/connector.js +1354 -0
- package/dist/actions/connector.js.map +1 -0
- package/dist/actions/credentials.d.ts +14 -0
- package/dist/actions/credentials.d.ts.map +1 -0
- package/dist/actions/credentials.js +191 -0
- package/dist/actions/credentials.js.map +1 -0
- package/dist/actions/document.d.ts +36 -0
- package/dist/actions/document.d.ts.map +1 -0
- package/dist/actions/document.js +613 -0
- package/dist/actions/document.js.map +1 -0
- package/dist/actions/entity.d.ts +20 -0
- package/dist/actions/entity.d.ts.map +1 -0
- package/dist/actions/entity.js +785 -0
- package/dist/actions/entity.js.map +1 -0
- package/dist/actions/health.d.ts +4 -0
- package/dist/actions/health.d.ts.map +1 -0
- package/dist/actions/health.js +37 -0
- package/dist/actions/health.js.map +1 -0
- package/dist/actions/inbox.d.ts +12 -0
- package/dist/actions/inbox.d.ts.map +1 -0
- package/dist/actions/inbox.js +13 -0
- package/dist/actions/inbox.js.map +1 -0
- package/dist/actions/lib/calendly-handler.d.ts +3 -0
- package/dist/actions/lib/calendly-handler.d.ts.map +1 -0
- package/dist/actions/lib/calendly-handler.js +506 -0
- package/dist/actions/lib/calendly-handler.js.map +1 -0
- package/dist/actions/lib/extract-goal-plan.d.ts +69 -0
- package/dist/actions/lib/extract-goal-plan.d.ts.map +1 -0
- package/dist/actions/lib/extract-goal-plan.js +488 -0
- package/dist/actions/lib/extract-goal-plan.js.map +1 -0
- package/dist/actions/lib/extract-life-operation.d.ts +18 -0
- package/dist/actions/lib/extract-life-operation.d.ts.map +1 -0
- package/dist/actions/lib/extract-life-operation.js +318 -0
- package/dist/actions/lib/extract-life-operation.js.map +1 -0
- package/dist/actions/lib/extract-task-plan.d.ts +78 -0
- package/dist/actions/lib/extract-task-plan.d.ts.map +1 -0
- package/dist/actions/lib/extract-task-plan.js +355 -0
- package/dist/actions/lib/extract-task-plan.js.map +1 -0
- package/dist/actions/lib/extract-update-fields.d.ts +27 -0
- package/dist/actions/lib/extract-update-fields.d.ts.map +1 -0
- package/dist/actions/lib/extract-update-fields.js +172 -0
- package/dist/actions/lib/extract-update-fields.js.map +1 -0
- package/dist/actions/lib/lifeops-deferred-draft.d.ts +68 -0
- package/dist/actions/lib/lifeops-deferred-draft.d.ts.map +1 -0
- package/dist/actions/lib/lifeops-deferred-draft.js +315 -0
- package/dist/actions/lib/lifeops-deferred-draft.js.map +1 -0
- package/dist/actions/lib/messaging-helpers.d.ts +20 -0
- package/dist/actions/lib/messaging-helpers.d.ts.map +1 -0
- package/dist/actions/lib/messaging-helpers.js +103 -0
- package/dist/actions/lib/messaging-helpers.js.map +1 -0
- package/dist/actions/lib/owner-policy-writes.d.ts +49 -0
- package/dist/actions/lib/owner-policy-writes.d.ts.map +1 -0
- package/dist/actions/lib/owner-policy-writes.js +157 -0
- package/dist/actions/lib/owner-policy-writes.js.map +1 -0
- package/dist/actions/lib/prompt-format.d.ts +3 -0
- package/dist/actions/lib/prompt-format.d.ts.map +1 -0
- package/dist/actions/lib/prompt-format.js +42 -0
- package/dist/actions/lib/prompt-format.js.map +1 -0
- package/dist/actions/lib/scheduling-handler.d.ts +93 -0
- package/dist/actions/lib/scheduling-handler.d.ts.map +1 -0
- package/dist/actions/lib/scheduling-handler.js +868 -0
- package/dist/actions/lib/scheduling-handler.js.map +1 -0
- package/dist/actions/life.d.ts +13 -0
- package/dist/actions/life.d.ts.map +1 -0
- package/dist/actions/life.js +2524 -0
- package/dist/actions/life.js.map +1 -0
- package/dist/actions/money.d.ts +24 -0
- package/dist/actions/money.d.ts.map +1 -0
- package/dist/actions/money.js +41 -0
- package/dist/actions/money.js.map +1 -0
- package/dist/actions/owner-surfaces.d.ts +11 -0
- package/dist/actions/owner-surfaces.d.ts.map +1 -0
- package/dist/actions/owner-surfaces.js +493 -0
- package/dist/actions/owner-surfaces.js.map +1 -0
- package/dist/actions/password-manager.d.ts +10 -0
- package/dist/actions/password-manager.d.ts.map +1 -0
- package/dist/actions/password-manager.js +195 -0
- package/dist/actions/password-manager.js.map +1 -0
- package/dist/actions/payments.d.ts +10 -0
- package/dist/actions/payments.d.ts.map +1 -0
- package/dist/actions/payments.js +5 -0
- package/dist/actions/payments.js.map +1 -0
- package/dist/actions/prioritize.d.ts +49 -0
- package/dist/actions/prioritize.d.ts.map +1 -0
- package/dist/actions/prioritize.js +313 -0
- package/dist/actions/prioritize.js.map +1 -0
- package/dist/actions/remote-desktop.d.ts +13 -0
- package/dist/actions/remote-desktop.d.ts.map +1 -0
- package/dist/actions/remote-desktop.js +11 -0
- package/dist/actions/remote-desktop.js.map +1 -0
- package/dist/actions/resolve-request.d.ts +12 -0
- package/dist/actions/resolve-request.d.ts.map +1 -0
- package/dist/actions/resolve-request.js +427 -0
- package/dist/actions/resolve-request.js.map +1 -0
- package/dist/actions/schedule.d.ts +10 -0
- package/dist/actions/schedule.d.ts.map +1 -0
- package/dist/actions/schedule.js +113 -0
- package/dist/actions/schedule.js.map +1 -0
- package/dist/actions/scheduled-task.d.ts +32 -0
- package/dist/actions/scheduled-task.d.ts.map +1 -0
- package/dist/actions/scheduled-task.js +661 -0
- package/dist/actions/scheduled-task.js.map +1 -0
- package/dist/actions/screen-time.d.ts +4 -0
- package/dist/actions/screen-time.d.ts.map +1 -0
- package/dist/actions/screen-time.js +47 -0
- package/dist/actions/screen-time.js.map +1 -0
- package/dist/actions/subscriptions.d.ts +8 -0
- package/dist/actions/subscriptions.d.ts.map +1 -0
- package/dist/actions/subscriptions.js +327 -0
- package/dist/actions/subscriptions.js.map +1 -0
- package/dist/actions/voice-call.d.ts +16 -0
- package/dist/actions/voice-call.d.ts.map +1 -0
- package/dist/actions/voice-call.js +756 -0
- package/dist/actions/voice-call.js.map +1 -0
- package/dist/actions/website-block.d.ts +15 -0
- package/dist/actions/website-block.d.ts.map +1 -0
- package/dist/actions/website-block.js +719 -0
- package/dist/actions/website-block.js.map +1 -0
- package/dist/actions/work-thread.d.ts +5 -0
- package/dist/actions/work-thread.d.ts.map +1 -0
- package/dist/actions/work-thread.js +556 -0
- package/dist/actions/work-thread.js.map +1 -0
- package/dist/activity-profile/activity-tracker-repo.d.ts +28 -0
- package/dist/activity-profile/activity-tracker-repo.d.ts.map +1 -0
- package/dist/activity-profile/activity-tracker-repo.js +61 -0
- package/dist/activity-profile/activity-tracker-repo.js.map +1 -0
- package/dist/activity-profile/activity-tracker-reporting.d.ts +52 -0
- package/dist/activity-profile/activity-tracker-reporting.d.ts.map +1 -0
- package/dist/activity-profile/activity-tracker-reporting.js +119 -0
- package/dist/activity-profile/activity-tracker-reporting.js.map +1 -0
- package/dist/activity-profile/activity-tracker-service.d.ts +36 -0
- package/dist/activity-profile/activity-tracker-service.d.ts.map +1 -0
- package/dist/activity-profile/activity-tracker-service.js +187 -0
- package/dist/activity-profile/activity-tracker-service.js.map +1 -0
- package/dist/activity-profile/analyzer.d.ts +23 -0
- package/dist/activity-profile/analyzer.d.ts.map +1 -0
- package/dist/activity-profile/analyzer.js +485 -0
- package/dist/activity-profile/analyzer.js.map +1 -0
- package/dist/activity-profile/presence-signal-bridge-service.d.ts +14 -0
- package/dist/activity-profile/presence-signal-bridge-service.d.ts.map +1 -0
- package/dist/activity-profile/presence-signal-bridge-service.js +159 -0
- package/dist/activity-profile/presence-signal-bridge-service.js.map +1 -0
- package/dist/activity-profile/proactive-inbox-digest.d.ts +3 -0
- package/dist/activity-profile/proactive-inbox-digest.d.ts.map +1 -0
- package/dist/activity-profile/proactive-inbox-digest.js +21 -0
- package/dist/activity-profile/proactive-inbox-digest.js.map +1 -0
- package/dist/activity-profile/proactive-planner.d.ts +150 -0
- package/dist/activity-profile/proactive-planner.d.ts.map +1 -0
- package/dist/activity-profile/proactive-planner.js +529 -0
- package/dist/activity-profile/proactive-planner.js.map +1 -0
- package/dist/activity-profile/proactive-worker.d.ts +33 -0
- package/dist/activity-profile/proactive-worker.d.ts.map +1 -0
- package/dist/activity-profile/proactive-worker.js +779 -0
- package/dist/activity-profile/proactive-worker.js.map +1 -0
- package/dist/activity-profile/profile-metadata.d.ts +10 -0
- package/dist/activity-profile/profile-metadata.d.ts.map +1 -0
- package/dist/activity-profile/profile-metadata.js +16 -0
- package/dist/activity-profile/profile-metadata.js.map +1 -0
- package/dist/activity-profile/redactor.d.ts +15 -0
- package/dist/activity-profile/redactor.d.ts.map +1 -0
- package/dist/activity-profile/redactor.js +22 -0
- package/dist/activity-profile/redactor.js.map +1 -0
- package/dist/activity-profile/service.d.ts +11 -0
- package/dist/activity-profile/service.d.ts.map +1 -0
- package/dist/activity-profile/service.js +272 -0
- package/dist/activity-profile/service.js.map +1 -0
- package/dist/activity-profile/types.d.ts +97 -0
- package/dist/activity-profile/types.d.ts.map +1 -0
- package/dist/activity-profile/types.js +36 -0
- package/dist/activity-profile/types.js.map +1 -0
- package/dist/agent-lifeops.d.ts +2 -0
- package/dist/agent-lifeops.d.ts.map +1 -0
- package/dist/agent-lifeops.js +2 -0
- package/dist/agent-lifeops.js.map +1 -0
- package/dist/api/client-lifeops.d.ts +319 -0
- package/dist/api/client-lifeops.d.ts.map +1 -0
- package/dist/api/client-lifeops.js +794 -0
- package/dist/api/client-lifeops.js.map +1 -0
- package/dist/automation-node-contributor.d.ts +2 -0
- package/dist/automation-node-contributor.d.ts.map +1 -0
- package/dist/automation-node-contributor.js +184 -0
- package/dist/automation-node-contributor.js.map +1 -0
- package/dist/client.d.ts +16 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +18 -0
- package/dist/client.js.map +1 -0
- package/dist/components/AppBlockerSettingsCard.d.ts +3 -0
- package/dist/components/AppBlockerSettingsCard.d.ts.map +1 -0
- package/dist/components/AppBlockerSettingsCard.js +538 -0
- package/dist/components/AppBlockerSettingsCard.js.map +1 -0
- package/dist/components/WebsiteBlockerSettingsCard.d.ts +3 -0
- package/dist/components/WebsiteBlockerSettingsCard.d.ts.map +1 -0
- package/dist/components/WebsiteBlockerSettingsCard.js +148 -0
- package/dist/components/WebsiteBlockerSettingsCard.js.map +1 -0
- package/dist/contracts/index.d.ts +2 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +2 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/contracts/lifeops.d.ts +2 -0
- package/dist/contracts/lifeops.d.ts.map +1 -0
- package/dist/contracts/lifeops.js +2 -0
- package/dist/contracts/lifeops.js.map +1 -0
- package/dist/default-packs/autofill-whitelist-pack.d.ts +17 -0
- package/dist/default-packs/autofill-whitelist-pack.d.ts.map +1 -0
- package/dist/default-packs/autofill-whitelist-pack.js +56 -0
- package/dist/default-packs/autofill-whitelist-pack.js.map +1 -0
- package/dist/default-packs/consolidation-policies.d.ts +14 -0
- package/dist/default-packs/consolidation-policies.d.ts.map +1 -0
- package/dist/default-packs/consolidation-policies.js +17 -0
- package/dist/default-packs/consolidation-policies.js.map +1 -0
- package/dist/default-packs/contract-types.d.ts +200 -0
- package/dist/default-packs/contract-types.d.ts.map +1 -0
- package/dist/default-packs/contract-types.js +1 -0
- package/dist/default-packs/contract-types.js.map +1 -0
- package/dist/default-packs/daily-rhythm.d.ts +28 -0
- package/dist/default-packs/daily-rhythm.d.ts.map +1 -0
- package/dist/default-packs/daily-rhythm.js +136 -0
- package/dist/default-packs/daily-rhythm.js.map +1 -0
- package/dist/default-packs/escalation-ladders.d.ts +18 -0
- package/dist/default-packs/escalation-ladders.d.ts.map +1 -0
- package/dist/default-packs/escalation-ladders.js +17 -0
- package/dist/default-packs/escalation-ladders.js.map +1 -0
- package/dist/default-packs/executive-assistant.d.ts +50 -0
- package/dist/default-packs/executive-assistant.d.ts.map +1 -0
- package/dist/default-packs/executive-assistant.js +745 -0
- package/dist/default-packs/executive-assistant.js.map +1 -0
- package/dist/default-packs/followup-starter.d.ts +49 -0
- package/dist/default-packs/followup-starter.d.ts.map +1 -0
- package/dist/default-packs/followup-starter.js +104 -0
- package/dist/default-packs/followup-starter.js.map +1 -0
- package/dist/default-packs/habit-starters.d.ts +37 -0
- package/dist/default-packs/habit-starters.d.ts.map +1 -0
- package/dist/default-packs/habit-starters.js +255 -0
- package/dist/default-packs/habit-starters.js.map +1 -0
- package/dist/default-packs/inbox-triage-starter.d.ts +23 -0
- package/dist/default-packs/inbox-triage-starter.d.ts.map +1 -0
- package/dist/default-packs/inbox-triage-starter.js +61 -0
- package/dist/default-packs/inbox-triage-starter.js.map +1 -0
- package/dist/default-packs/index.d.ts +54 -0
- package/dist/default-packs/index.d.ts.map +1 -0
- package/dist/default-packs/index.js +150 -0
- package/dist/default-packs/index.js.map +1 -0
- package/dist/default-packs/lint.d.ts +62 -0
- package/dist/default-packs/lint.d.ts.map +1 -0
- package/dist/default-packs/lint.js +161 -0
- package/dist/default-packs/lint.js.map +1 -0
- package/dist/default-packs/morning-brief.d.ts +44 -0
- package/dist/default-packs/morning-brief.d.ts.map +1 -0
- package/dist/default-packs/morning-brief.js +69 -0
- package/dist/default-packs/morning-brief.js.map +1 -0
- package/dist/default-packs/quiet-user-watcher.d.ts +49 -0
- package/dist/default-packs/quiet-user-watcher.d.ts.map +1 -0
- package/dist/default-packs/quiet-user-watcher.js +92 -0
- package/dist/default-packs/quiet-user-watcher.js.map +1 -0
- package/dist/default-packs/registry-types.d.ts +51 -0
- package/dist/default-packs/registry-types.d.ts.map +1 -0
- package/dist/default-packs/registry-types.js +1 -0
- package/dist/default-packs/registry-types.js.map +1 -0
- package/dist/default-packs/task-definitions.d.ts +88 -0
- package/dist/default-packs/task-definitions.d.ts.map +1 -0
- package/dist/default-packs/task-definitions.js +87 -0
- package/dist/default-packs/task-definitions.js.map +1 -0
- package/dist/events/index.d.ts +34 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +30 -0
- package/dist/events/index.js.map +1 -0
- package/dist/followup/actions/listOverdueFollowups.d.ts +3 -0
- package/dist/followup/actions/listOverdueFollowups.d.ts.map +1 -0
- package/dist/followup/actions/listOverdueFollowups.js +90 -0
- package/dist/followup/actions/listOverdueFollowups.js.map +1 -0
- package/dist/followup/actions/markFollowupDone.d.ts +3 -0
- package/dist/followup/actions/markFollowupDone.d.ts.map +1 -0
- package/dist/followup/actions/markFollowupDone.js +171 -0
- package/dist/followup/actions/markFollowupDone.js.map +1 -0
- package/dist/followup/actions/setFollowupThreshold.d.ts +3 -0
- package/dist/followup/actions/setFollowupThreshold.d.ts.map +1 -0
- package/dist/followup/actions/setFollowupThreshold.js +171 -0
- package/dist/followup/actions/setFollowupThreshold.js.map +1 -0
- package/dist/followup/followup-tracker.d.ts +83 -0
- package/dist/followup/followup-tracker.d.ts.map +1 -0
- package/dist/followup/followup-tracker.js +311 -0
- package/dist/followup/followup-tracker.js.map +1 -0
- package/dist/followup/index.d.ts +5 -0
- package/dist/followup/index.d.ts.map +1 -0
- package/dist/followup/index.js +39 -0
- package/dist/followup/index.js.map +1 -0
- package/dist/hooks/connector-error.d.ts +2 -0
- package/dist/hooks/connector-error.d.ts.map +1 -0
- package/dist/hooks/connector-error.js +13 -0
- package/dist/hooks/connector-error.js.map +1 -0
- package/dist/hooks/useDiscordConnector.d.ts +11 -0
- package/dist/hooks/useDiscordConnector.d.ts.map +1 -0
- package/dist/hooks/useDiscordConnector.js +95 -0
- package/dist/hooks/useDiscordConnector.js.map +1 -0
- package/dist/hooks/useGoogleLifeOpsConnector.d.ts +23 -0
- package/dist/hooks/useGoogleLifeOpsConnector.d.ts.map +1 -0
- package/dist/hooks/useGoogleLifeOpsConnector.js +630 -0
- package/dist/hooks/useGoogleLifeOpsConnector.js.map +1 -0
- package/dist/hooks/useIMessageConnector.d.ts +10 -0
- package/dist/hooks/useIMessageConnector.d.ts.map +1 -0
- package/dist/hooks/useIMessageConnector.js +57 -0
- package/dist/hooks/useIMessageConnector.js.map +1 -0
- package/dist/hooks/useInbox.d.ts +36 -0
- package/dist/hooks/useInbox.d.ts.map +1 -0
- package/dist/hooks/useInbox.js +96 -0
- package/dist/hooks/useInbox.js.map +1 -0
- package/dist/hooks/useLifeOpsActivitySignals.d.ts +2 -0
- package/dist/hooks/useLifeOpsActivitySignals.d.ts.map +1 -0
- package/dist/hooks/useLifeOpsActivitySignals.js +358 -0
- package/dist/hooks/useLifeOpsActivitySignals.js.map +1 -0
- package/dist/hooks/useLifeOpsAppState.d.ts +9 -0
- package/dist/hooks/useLifeOpsAppState.d.ts.map +1 -0
- package/dist/hooks/useLifeOpsAppState.js +79 -0
- package/dist/hooks/useLifeOpsAppState.js.map +1 -0
- package/dist/hooks/useLifeOpsCapabilitiesStatus.d.ts +8 -0
- package/dist/hooks/useLifeOpsCapabilitiesStatus.d.ts.map +1 -0
- package/dist/hooks/useLifeOpsCapabilitiesStatus.js +60 -0
- package/dist/hooks/useLifeOpsCapabilitiesStatus.js.map +1 -0
- package/dist/hooks/useLifeOpsXConnector.d.ts +11 -0
- package/dist/hooks/useLifeOpsXConnector.d.ts.map +1 -0
- package/dist/hooks/useLifeOpsXConnector.js +92 -0
- package/dist/hooks/useLifeOpsXConnector.js.map +1 -0
- package/dist/hooks/useSignalConnector.d.ts +14 -0
- package/dist/hooks/useSignalConnector.d.ts.map +1 -0
- package/dist/hooks/useSignalConnector.js +89 -0
- package/dist/hooks/useSignalConnector.js.map +1 -0
- package/dist/hooks/useTelegramConnector.d.ts +14 -0
- package/dist/hooks/useTelegramConnector.d.ts.map +1 -0
- package/dist/hooks/useTelegramConnector.js +97 -0
- package/dist/hooks/useTelegramConnector.js.map +1 -0
- package/dist/hooks/useWhatsAppConnector.d.ts +8 -0
- package/dist/hooks/useWhatsAppConnector.d.ts.map +1 -0
- package/dist/hooks/useWhatsAppConnector.js +62 -0
- package/dist/hooks/useWhatsAppConnector.js.map +1 -0
- package/dist/inbox/message-fetcher.d.ts +11 -0
- package/dist/inbox/message-fetcher.d.ts.map +1 -0
- package/dist/inbox/message-fetcher.js +13 -0
- package/dist/inbox/message-fetcher.js.map +1 -0
- package/dist/inbox/repository.d.ts +11 -0
- package/dist/inbox/repository.d.ts.map +1 -0
- package/dist/inbox/repository.js +5 -0
- package/dist/inbox/repository.js.map +1 -0
- package/dist/inbox/types.d.ts +10 -0
- package/dist/inbox/types.d.ts.map +1 -0
- package/dist/inbox/types.js +2 -0
- package/dist/inbox/types.js.map +1 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +188 -0
- package/dist/index.js.map +1 -0
- package/dist/lifeops/access.d.ts +29 -0
- package/dist/lifeops/access.d.ts.map +1 -0
- package/dist/lifeops/access.js +56 -0
- package/dist/lifeops/access.js.map +1 -0
- package/dist/lifeops/app-state.d.ts +22 -0
- package/dist/lifeops/app-state.d.ts.map +1 -0
- package/dist/lifeops/app-state.js +67 -0
- package/dist/lifeops/app-state.js.map +1 -0
- package/dist/lifeops/apple-reminders.d.ts +67 -0
- package/dist/lifeops/apple-reminders.d.ts.map +1 -0
- package/dist/lifeops/apple-reminders.js +396 -0
- package/dist/lifeops/apple-reminders.js.map +1 -0
- package/dist/lifeops/approval-queue.d.ts +38 -0
- package/dist/lifeops/approval-queue.d.ts.map +1 -0
- package/dist/lifeops/approval-queue.js +575 -0
- package/dist/lifeops/approval-queue.js.map +1 -0
- package/dist/lifeops/approval-queue.types.d.ts +172 -0
- package/dist/lifeops/approval-queue.types.d.ts.map +1 -0
- package/dist/lifeops/approval-queue.types.js +27 -0
- package/dist/lifeops/approval-queue.types.js.map +1 -0
- package/dist/lifeops/autofill-whitelist.d.ts +20 -0
- package/dist/lifeops/autofill-whitelist.d.ts.map +1 -0
- package/dist/lifeops/autofill-whitelist.js +59 -0
- package/dist/lifeops/autofill-whitelist.js.map +1 -0
- package/dist/lifeops/background-planner-dispatch.d.ts +60 -0
- package/dist/lifeops/background-planner-dispatch.d.ts.map +1 -0
- package/dist/lifeops/background-planner-dispatch.js +113 -0
- package/dist/lifeops/background-planner-dispatch.js.map +1 -0
- package/dist/lifeops/background-planner.d.ts +140 -0
- package/dist/lifeops/background-planner.d.ts.map +1 -0
- package/dist/lifeops/background-planner.js +359 -0
- package/dist/lifeops/background-planner.js.map +1 -0
- package/dist/lifeops/bill-extraction.d.ts +46 -0
- package/dist/lifeops/bill-extraction.d.ts.map +1 -0
- package/dist/lifeops/bill-extraction.js +325 -0
- package/dist/lifeops/bill-extraction.js.map +1 -0
- package/dist/lifeops/browser-constants.d.ts +4 -0
- package/dist/lifeops/browser-constants.d.ts.map +1 -0
- package/dist/lifeops/browser-constants.js +27 -0
- package/dist/lifeops/browser-constants.js.map +1 -0
- package/dist/lifeops/browser-extension-store.d.ts +61 -0
- package/dist/lifeops/browser-extension-store.d.ts.map +1 -0
- package/dist/lifeops/browser-extension-store.js +176 -0
- package/dist/lifeops/browser-extension-store.js.map +1 -0
- package/dist/lifeops/browser-session-lifecycle.d.ts +57 -0
- package/dist/lifeops/browser-session-lifecycle.d.ts.map +1 -0
- package/dist/lifeops/browser-session-lifecycle.js +308 -0
- package/dist/lifeops/browser-session-lifecycle.js.map +1 -0
- package/dist/lifeops/bulk-review.d.ts +333 -0
- package/dist/lifeops/bulk-review.d.ts.map +1 -0
- package/dist/lifeops/bulk-review.js +1120 -0
- package/dist/lifeops/bulk-review.js.map +1 -0
- package/dist/lifeops/calendar-gate.d.ts +20 -0
- package/dist/lifeops/calendar-gate.d.ts.map +1 -0
- package/dist/lifeops/calendar-gate.js +30 -0
- package/dist/lifeops/calendar-gate.js.map +1 -0
- package/dist/lifeops/channels/contract.d.ts +47 -0
- package/dist/lifeops/channels/contract.d.ts.map +1 -0
- package/dist/lifeops/channels/contract.js +1 -0
- package/dist/lifeops/channels/contract.js.map +1 -0
- package/dist/lifeops/channels/default-pack.d.ts +26 -0
- package/dist/lifeops/channels/default-pack.d.ts.map +1 -0
- package/dist/lifeops/channels/default-pack.js +243 -0
- package/dist/lifeops/channels/default-pack.js.map +1 -0
- package/dist/lifeops/channels/index.d.ts +5 -0
- package/dist/lifeops/channels/index.d.ts.map +1 -0
- package/dist/lifeops/channels/index.js +23 -0
- package/dist/lifeops/channels/index.js.map +1 -0
- package/dist/lifeops/channels/priority-posture.d.ts +36 -0
- package/dist/lifeops/channels/priority-posture.d.ts.map +1 -0
- package/dist/lifeops/channels/priority-posture.js +27 -0
- package/dist/lifeops/channels/priority-posture.js.map +1 -0
- package/dist/lifeops/channels/registry.d.ts +7 -0
- package/dist/lifeops/channels/registry.d.ts.map +1 -0
- package/dist/lifeops/channels/registry.js +49 -0
- package/dist/lifeops/channels/registry.js.map +1 -0
- package/dist/lifeops/checkin/checkin-service.d.ts +66 -0
- package/dist/lifeops/checkin/checkin-service.d.ts.map +1 -0
- package/dist/lifeops/checkin/checkin-service.js +1084 -0
- package/dist/lifeops/checkin/checkin-service.js.map +1 -0
- package/dist/lifeops/checkin/schedule-resolver.d.ts +17 -0
- package/dist/lifeops/checkin/schedule-resolver.d.ts.map +1 -0
- package/dist/lifeops/checkin/schedule-resolver.js +26 -0
- package/dist/lifeops/checkin/schedule-resolver.js.map +1 -0
- package/dist/lifeops/checkin/types.d.ts +106 -0
- package/dist/lifeops/checkin/types.d.ts.map +1 -0
- package/dist/lifeops/checkin/types.js +1 -0
- package/dist/lifeops/checkin/types.js.map +1 -0
- package/dist/lifeops/connectors/_helpers.d.ts +51 -0
- package/dist/lifeops/connectors/_helpers.d.ts.map +1 -0
- package/dist/lifeops/connectors/_helpers.js +104 -0
- package/dist/lifeops/connectors/_helpers.js.map +1 -0
- package/dist/lifeops/connectors/calendly.d.ts +11 -0
- package/dist/lifeops/connectors/calendly.d.ts.map +1 -0
- package/dist/lifeops/connectors/calendly.js +61 -0
- package/dist/lifeops/connectors/calendly.js.map +1 -0
- package/dist/lifeops/connectors/contract.d.ts +88 -0
- package/dist/lifeops/connectors/contract.d.ts.map +1 -0
- package/dist/lifeops/connectors/contract.js +1 -0
- package/dist/lifeops/connectors/contract.js.map +1 -0
- package/dist/lifeops/connectors/default-pack.d.ts +35 -0
- package/dist/lifeops/connectors/default-pack.d.ts.map +1 -0
- package/dist/lifeops/connectors/default-pack.js +37 -0
- package/dist/lifeops/connectors/default-pack.js.map +1 -0
- package/dist/lifeops/connectors/discord.d.ts +8 -0
- package/dist/lifeops/connectors/discord.d.ts.map +1 -0
- package/dist/lifeops/connectors/discord.js +53 -0
- package/dist/lifeops/connectors/discord.js.map +1 -0
- package/dist/lifeops/connectors/dispatch-policy.d.ts +75 -0
- package/dist/lifeops/connectors/dispatch-policy.d.ts.map +1 -0
- package/dist/lifeops/connectors/dispatch-policy.js +35 -0
- package/dist/lifeops/connectors/dispatch-policy.js.map +1 -0
- package/dist/lifeops/connectors/duffel.d.ts +11 -0
- package/dist/lifeops/connectors/duffel.d.ts.map +1 -0
- package/dist/lifeops/connectors/duffel.js +74 -0
- package/dist/lifeops/connectors/duffel.js.map +1 -0
- package/dist/lifeops/connectors/google.d.ts +27 -0
- package/dist/lifeops/connectors/google.d.ts.map +1 -0
- package/dist/lifeops/connectors/google.js +80 -0
- package/dist/lifeops/connectors/google.js.map +1 -0
- package/dist/lifeops/connectors/imessage.d.ts +11 -0
- package/dist/lifeops/connectors/imessage.d.ts.map +1 -0
- package/dist/lifeops/connectors/imessage.js +55 -0
- package/dist/lifeops/connectors/imessage.js.map +1 -0
- package/dist/lifeops/connectors/index.d.ts +5 -0
- package/dist/lifeops/connectors/index.d.ts.map +1 -0
- package/dist/lifeops/connectors/index.js +23 -0
- package/dist/lifeops/connectors/index.js.map +1 -0
- package/dist/lifeops/connectors/mockoon-redirect.d.ts +54 -0
- package/dist/lifeops/connectors/mockoon-redirect.d.ts.map +1 -0
- package/dist/lifeops/connectors/mockoon-redirect.js +71 -0
- package/dist/lifeops/connectors/mockoon-redirect.js.map +1 -0
- package/dist/lifeops/connectors/registry.d.ts +7 -0
- package/dist/lifeops/connectors/registry.d.ts.map +1 -0
- package/dist/lifeops/connectors/registry.js +55 -0
- package/dist/lifeops/connectors/registry.js.map +1 -0
- package/dist/lifeops/connectors/signal.d.ts +8 -0
- package/dist/lifeops/connectors/signal.d.ts.map +1 -0
- package/dist/lifeops/connectors/signal.js +60 -0
- package/dist/lifeops/connectors/signal.js.map +1 -0
- package/dist/lifeops/connectors/telegram.d.ts +12 -0
- package/dist/lifeops/connectors/telegram.d.ts.map +1 -0
- package/dist/lifeops/connectors/telegram.js +65 -0
- package/dist/lifeops/connectors/telegram.js.map +1 -0
- package/dist/lifeops/connectors/twilio.d.ts +15 -0
- package/dist/lifeops/connectors/twilio.d.ts.map +1 -0
- package/dist/lifeops/connectors/twilio.js +126 -0
- package/dist/lifeops/connectors/twilio.js.map +1 -0
- package/dist/lifeops/connectors/whatsapp.d.ts +10 -0
- package/dist/lifeops/connectors/whatsapp.d.ts.map +1 -0
- package/dist/lifeops/connectors/whatsapp.js +56 -0
- package/dist/lifeops/connectors/whatsapp.js.map +1 -0
- package/dist/lifeops/connectors/x.d.ts +8 -0
- package/dist/lifeops/connectors/x.d.ts.map +1 -0
- package/dist/lifeops/connectors/x.js +62 -0
- package/dist/lifeops/connectors/x.js.map +1 -0
- package/dist/lifeops/contact-route-policy.d.ts +27 -0
- package/dist/lifeops/contact-route-policy.d.ts.map +1 -0
- package/dist/lifeops/contact-route-policy.js +153 -0
- package/dist/lifeops/contact-route-policy.js.map +1 -0
- package/dist/lifeops/continuity-probe.d.ts +49 -0
- package/dist/lifeops/continuity-probe.d.ts.map +1 -0
- package/dist/lifeops/continuity-probe.js +161 -0
- package/dist/lifeops/continuity-probe.js.map +1 -0
- package/dist/lifeops/cross-channel-search.d.ts +108 -0
- package/dist/lifeops/cross-channel-search.d.ts.map +1 -0
- package/dist/lifeops/cross-channel-search.js +888 -0
- package/dist/lifeops/cross-channel-search.js.map +1 -0
- package/dist/lifeops/defaults.d.ts +30 -0
- package/dist/lifeops/defaults.d.ts.map +1 -0
- package/dist/lifeops/defaults.js +206 -0
- package/dist/lifeops/defaults.js.map +1 -0
- package/dist/lifeops/device-bus-service.d.ts +16 -0
- package/dist/lifeops/device-bus-service.d.ts.map +1 -0
- package/dist/lifeops/device-bus-service.js +20 -0
- package/dist/lifeops/device-bus-service.js.map +1 -0
- package/dist/lifeops/device-identity.d.ts +31 -0
- package/dist/lifeops/device-identity.d.ts.map +1 -0
- package/dist/lifeops/device-identity.js +94 -0
- package/dist/lifeops/device-identity.js.map +1 -0
- package/dist/lifeops/document-review.d.ts +264 -0
- package/dist/lifeops/document-review.d.ts.map +1 -0
- package/dist/lifeops/document-review.js +925 -0
- package/dist/lifeops/document-review.js.map +1 -0
- package/dist/lifeops/email-classifier.d.ts +9 -0
- package/dist/lifeops/email-classifier.d.ts.map +1 -0
- package/dist/lifeops/email-classifier.js +15 -0
- package/dist/lifeops/email-classifier.js.map +1 -0
- package/dist/lifeops/email-curation.d.ts +13 -0
- package/dist/lifeops/email-curation.d.ts.map +1 -0
- package/dist/lifeops/email-curation.js +2 -0
- package/dist/lifeops/email-curation.js.map +1 -0
- package/dist/lifeops/email-unsubscribe-types.d.ts +7 -0
- package/dist/lifeops/email-unsubscribe-types.d.ts.map +1 -0
- package/dist/lifeops/email-unsubscribe-types.js +1 -0
- package/dist/lifeops/email-unsubscribe-types.js.map +1 -0
- package/dist/lifeops/enforcement-windows.d.ts +34 -0
- package/dist/lifeops/enforcement-windows.d.ts.map +1 -0
- package/dist/lifeops/enforcement-windows.js +80 -0
- package/dist/lifeops/enforcement-windows.js.map +1 -0
- package/dist/lifeops/engine.d.ts +8 -0
- package/dist/lifeops/engine.d.ts.map +1 -0
- package/dist/lifeops/engine.js +540 -0
- package/dist/lifeops/engine.js.map +1 -0
- package/dist/lifeops/entities/index.d.ts +4 -0
- package/dist/lifeops/entities/index.d.ts.map +1 -0
- package/dist/lifeops/entities/index.js +29 -0
- package/dist/lifeops/entities/index.js.map +1 -0
- package/dist/lifeops/entities/merge.d.ts +9 -0
- package/dist/lifeops/entities/merge.d.ts.map +1 -0
- package/dist/lifeops/entities/merge.js +17 -0
- package/dist/lifeops/entities/merge.js.map +1 -0
- package/dist/lifeops/entities/store.d.ts +13 -0
- package/dist/lifeops/entities/store.d.ts.map +1 -0
- package/dist/lifeops/entities/store.js +7 -0
- package/dist/lifeops/entities/store.js.map +1 -0
- package/dist/lifeops/entities/types.d.ts +9 -0
- package/dist/lifeops/entities/types.d.ts.map +1 -0
- package/dist/lifeops/entities/types.js +13 -0
- package/dist/lifeops/entities/types.js.map +1 -0
- package/dist/lifeops/entities/voice-attribution.d.ts +70 -0
- package/dist/lifeops/entities/voice-attribution.d.ts.map +1 -0
- package/dist/lifeops/entities/voice-attribution.js +121 -0
- package/dist/lifeops/entities/voice-attribution.js.map +1 -0
- package/dist/lifeops/entities/voice-observer-bridge.d.ts +32 -0
- package/dist/lifeops/entities/voice-observer-bridge.d.ts.map +1 -0
- package/dist/lifeops/entities/voice-observer-bridge.js +68 -0
- package/dist/lifeops/entities/voice-observer-bridge.js.map +1 -0
- package/dist/lifeops/entities/voice-observer.d.ts +72 -0
- package/dist/lifeops/entities/voice-observer.d.ts.map +1 -0
- package/dist/lifeops/entities/voice-observer.js +97 -0
- package/dist/lifeops/entities/voice-observer.js.map +1 -0
- package/dist/lifeops/escalation-ladders.d.ts +28 -0
- package/dist/lifeops/escalation-ladders.d.ts.map +1 -0
- package/dist/lifeops/escalation-ladders.js +17 -0
- package/dist/lifeops/escalation-ladders.js.map +1 -0
- package/dist/lifeops/fda-probe.d.ts +23 -0
- package/dist/lifeops/fda-probe.d.ts.map +1 -0
- package/dist/lifeops/fda-probe.js +59 -0
- package/dist/lifeops/fda-probe.js.map +1 -0
- package/dist/lifeops/feature-flags.d.ts +24 -0
- package/dist/lifeops/feature-flags.d.ts.map +1 -0
- package/dist/lifeops/feature-flags.js +261 -0
- package/dist/lifeops/feature-flags.js.map +1 -0
- package/dist/lifeops/feature-flags.types.d.ts +156 -0
- package/dist/lifeops/feature-flags.types.d.ts.map +1 -0
- package/dist/lifeops/feature-flags.types.js +129 -0
- package/dist/lifeops/feature-flags.types.js.map +1 -0
- package/dist/lifeops/first-run/defaults.d.ts +57 -0
- package/dist/lifeops/first-run/defaults.d.ts.map +1 -0
- package/dist/lifeops/first-run/defaults.js +159 -0
- package/dist/lifeops/first-run/defaults.js.map +1 -0
- package/dist/lifeops/first-run/questions.d.ts +74 -0
- package/dist/lifeops/first-run/questions.d.ts.map +1 -0
- package/dist/lifeops/first-run/questions.js +184 -0
- package/dist/lifeops/first-run/questions.js.map +1 -0
- package/dist/lifeops/first-run/replay.d.ts +41 -0
- package/dist/lifeops/first-run/replay.d.ts.map +1 -0
- package/dist/lifeops/first-run/replay.js +34 -0
- package/dist/lifeops/first-run/replay.js.map +1 -0
- package/dist/lifeops/first-run/service.d.ts +147 -0
- package/dist/lifeops/first-run/service.d.ts.map +1 -0
- package/dist/lifeops/first-run/service.js +455 -0
- package/dist/lifeops/first-run/service.js.map +1 -0
- package/dist/lifeops/first-run/state.d.ts +36 -0
- package/dist/lifeops/first-run/state.d.ts.map +1 -0
- package/dist/lifeops/first-run/state.js +128 -0
- package/dist/lifeops/first-run/state.js.map +1 -0
- package/dist/lifeops/global-pause/store.d.ts +22 -0
- package/dist/lifeops/global-pause/store.d.ts.map +1 -0
- package/dist/lifeops/global-pause/store.js +18 -0
- package/dist/lifeops/global-pause/store.js.map +1 -0
- package/dist/lifeops/goal-grounding.d.ts +9 -0
- package/dist/lifeops/goal-grounding.d.ts.map +1 -0
- package/dist/lifeops/goal-grounding.js +19 -0
- package/dist/lifeops/goal-grounding.js.map +1 -0
- package/dist/lifeops/goal-semantic-evaluator.d.ts +8 -0
- package/dist/lifeops/goal-semantic-evaluator.d.ts.map +1 -0
- package/dist/lifeops/goal-semantic-evaluator.js +7 -0
- package/dist/lifeops/goal-semantic-evaluator.js.map +1 -0
- package/dist/lifeops/google/format-helpers.d.ts +63 -0
- package/dist/lifeops/google/format-helpers.d.ts.map +1 -0
- package/dist/lifeops/google/format-helpers.js +597 -0
- package/dist/lifeops/google/format-helpers.js.map +1 -0
- package/dist/lifeops/google-plugin-delegates.d.ts +59 -0
- package/dist/lifeops/google-plugin-delegates.d.ts.map +1 -0
- package/dist/lifeops/google-plugin-delegates.js +408 -0
- package/dist/lifeops/google-plugin-delegates.js.map +1 -0
- package/dist/lifeops/google-scopes.d.ts +15 -0
- package/dist/lifeops/google-scopes.d.ts.map +1 -0
- package/dist/lifeops/google-scopes.js +118 -0
- package/dist/lifeops/google-scopes.js.map +1 -0
- package/dist/lifeops/handoff/store.d.ts +23 -0
- package/dist/lifeops/handoff/store.d.ts.map +1 -0
- package/dist/lifeops/handoff/store.js +20 -0
- package/dist/lifeops/handoff/store.js.map +1 -0
- package/dist/lifeops/i18n/localized-examples-provider.d.ts +16 -0
- package/dist/lifeops/i18n/localized-examples-provider.d.ts.map +1 -0
- package/dist/lifeops/i18n/localized-examples-provider.js +33 -0
- package/dist/lifeops/i18n/localized-examples-provider.js.map +1 -0
- package/dist/lifeops/i18n/localized-examples-resolver.d.ts +32 -0
- package/dist/lifeops/i18n/localized-examples-resolver.d.ts.map +1 -0
- package/dist/lifeops/i18n/localized-examples-resolver.js +28 -0
- package/dist/lifeops/i18n/localized-examples-resolver.js.map +1 -0
- package/dist/lifeops/i18n/prompt-registry.d.ts +64 -0
- package/dist/lifeops/i18n/prompt-registry.d.ts.map +1 -0
- package/dist/lifeops/i18n/prompt-registry.js +283 -0
- package/dist/lifeops/i18n/prompt-registry.js.map +1 -0
- package/dist/lifeops/imessage-outbound-probe.d.ts +7 -0
- package/dist/lifeops/imessage-outbound-probe.d.ts.map +1 -0
- package/dist/lifeops/imessage-outbound-probe.js +81 -0
- package/dist/lifeops/imessage-outbound-probe.js.map +1 -0
- package/dist/lifeops/index.d.ts +24 -0
- package/dist/lifeops/index.d.ts.map +1 -0
- package/dist/lifeops/index.js +24 -0
- package/dist/lifeops/index.js.map +1 -0
- package/dist/lifeops/intent-sync.d.ts +64 -0
- package/dist/lifeops/intent-sync.d.ts.map +1 -0
- package/dist/lifeops/intent-sync.js +321 -0
- package/dist/lifeops/intent-sync.js.map +1 -0
- package/dist/lifeops/messaging/index.d.ts +2 -0
- package/dist/lifeops/messaging/index.d.ts.map +1 -0
- package/dist/lifeops/messaging/index.js +5 -0
- package/dist/lifeops/messaging/index.js.map +1 -0
- package/dist/lifeops/messaging/owner-send-policy.d.ts +3 -0
- package/dist/lifeops/messaging/owner-send-policy.d.ts.map +1 -0
- package/dist/lifeops/messaging/owner-send-policy.js +83 -0
- package/dist/lifeops/messaging/owner-send-policy.js.map +1 -0
- package/dist/lifeops/notifications-push.d.ts +37 -0
- package/dist/lifeops/notifications-push.d.ts.map +1 -0
- package/dist/lifeops/notifications-push.js +95 -0
- package/dist/lifeops/notifications-push.js.map +1 -0
- package/dist/lifeops/optimized-prompt-instructions.d.ts +5 -0
- package/dist/lifeops/optimized-prompt-instructions.d.ts.map +1 -0
- package/dist/lifeops/optimized-prompt-instructions.js +48 -0
- package/dist/lifeops/optimized-prompt-instructions.js.map +1 -0
- package/dist/lifeops/owner/fact-store.d.ts +143 -0
- package/dist/lifeops/owner/fact-store.d.ts.map +1 -0
- package/dist/lifeops/owner/fact-store.js +446 -0
- package/dist/lifeops/owner/fact-store.js.map +1 -0
- package/dist/lifeops/owner/profile-extraction-evaluator.d.ts +3 -0
- package/dist/lifeops/owner/profile-extraction-evaluator.d.ts.map +1 -0
- package/dist/lifeops/owner/profile-extraction-evaluator.js +241 -0
- package/dist/lifeops/owner/profile-extraction-evaluator.js.map +1 -0
- package/dist/lifeops/owner-profile.d.ts +61 -0
- package/dist/lifeops/owner-profile.d.ts.map +1 -0
- package/dist/lifeops/owner-profile.js +407 -0
- package/dist/lifeops/owner-profile.js.map +1 -0
- package/dist/lifeops/pending-prompts/store.d.ts +23 -0
- package/dist/lifeops/pending-prompts/store.d.ts.map +1 -0
- package/dist/lifeops/pending-prompts/store.js +16 -0
- package/dist/lifeops/pending-prompts/store.js.map +1 -0
- package/dist/lifeops/policy-memory.d.ts +190 -0
- package/dist/lifeops/policy-memory.d.ts.map +1 -0
- package/dist/lifeops/policy-memory.js +1026 -0
- package/dist/lifeops/policy-memory.js.map +1 -0
- package/dist/lifeops/priority-scoring.d.ts +51 -0
- package/dist/lifeops/priority-scoring.d.ts.map +1 -0
- package/dist/lifeops/priority-scoring.js +305 -0
- package/dist/lifeops/priority-scoring.js.map +1 -0
- package/dist/lifeops/privacy-egress.d.ts +92 -0
- package/dist/lifeops/privacy-egress.d.ts.map +1 -0
- package/dist/lifeops/privacy-egress.js +230 -0
- package/dist/lifeops/privacy-egress.js.map +1 -0
- package/dist/lifeops/privacy.d.ts +49 -0
- package/dist/lifeops/privacy.d.ts.map +1 -0
- package/dist/lifeops/privacy.js +66 -0
- package/dist/lifeops/privacy.js.map +1 -0
- package/dist/lifeops/redact-sensitive-data.d.ts +32 -0
- package/dist/lifeops/redact-sensitive-data.d.ts.map +1 -0
- package/dist/lifeops/redact-sensitive-data.js +98 -0
- package/dist/lifeops/redact-sensitive-data.js.map +1 -0
- package/dist/lifeops/registries/app-blocker-contribution.d.ts +13 -0
- package/dist/lifeops/registries/app-blocker-contribution.d.ts.map +1 -0
- package/dist/lifeops/registries/app-blocker-contribution.js +73 -0
- package/dist/lifeops/registries/app-blocker-contribution.js.map +1 -0
- package/dist/lifeops/registries/blocker-registry.d.ts +76 -0
- package/dist/lifeops/registries/blocker-registry.d.ts.map +1 -0
- package/dist/lifeops/registries/blocker-registry.js +40 -0
- package/dist/lifeops/registries/blocker-registry.js.map +1 -0
- package/dist/lifeops/registries/event-kind-registry.d.ts +57 -0
- package/dist/lifeops/registries/event-kind-registry.d.ts.map +1 -0
- package/dist/lifeops/registries/event-kind-registry.js +82 -0
- package/dist/lifeops/registries/event-kind-registry.js.map +1 -0
- package/dist/lifeops/registries/family-registry.d.ts +72 -0
- package/dist/lifeops/registries/family-registry.d.ts.map +1 -0
- package/dist/lifeops/registries/family-registry.js +98 -0
- package/dist/lifeops/registries/family-registry.js.map +1 -0
- package/dist/lifeops/registries/feature-flag-default-pack.d.ts +32 -0
- package/dist/lifeops/registries/feature-flag-default-pack.d.ts.map +1 -0
- package/dist/lifeops/registries/feature-flag-default-pack.js +36 -0
- package/dist/lifeops/registries/feature-flag-default-pack.js.map +1 -0
- package/dist/lifeops/registries/feature-flag-registry.d.ts +76 -0
- package/dist/lifeops/registries/feature-flag-registry.d.ts.map +1 -0
- package/dist/lifeops/registries/feature-flag-registry.js +68 -0
- package/dist/lifeops/registries/feature-flag-registry.js.map +1 -0
- package/dist/lifeops/registries/index.d.ts +24 -0
- package/dist/lifeops/registries/index.d.ts.map +1 -0
- package/dist/lifeops/registries/index.js +115 -0
- package/dist/lifeops/registries/index.js.map +1 -0
- package/dist/lifeops/registries/website-blocker-contribution.d.ts +21 -0
- package/dist/lifeops/registries/website-blocker-contribution.d.ts.map +1 -0
- package/dist/lifeops/registries/website-blocker-contribution.js +76 -0
- package/dist/lifeops/registries/website-blocker-contribution.js.map +1 -0
- package/dist/lifeops/registries/workflow-step-default-pack.d.ts +30 -0
- package/dist/lifeops/registries/workflow-step-default-pack.d.ts.map +1 -0
- package/dist/lifeops/registries/workflow-step-default-pack.js +315 -0
- package/dist/lifeops/registries/workflow-step-default-pack.js.map +1 -0
- package/dist/lifeops/registries/workflow-step-registry.d.ts +101 -0
- package/dist/lifeops/registries/workflow-step-registry.d.ts.map +1 -0
- package/dist/lifeops/registries/workflow-step-registry.js +56 -0
- package/dist/lifeops/registries/workflow-step-registry.js.map +1 -0
- package/dist/lifeops/relationships/extraction.d.ts +77 -0
- package/dist/lifeops/relationships/extraction.d.ts.map +1 -0
- package/dist/lifeops/relationships/extraction.js +146 -0
- package/dist/lifeops/relationships/extraction.js.map +1 -0
- package/dist/lifeops/relationships/index.d.ts +4 -0
- package/dist/lifeops/relationships/index.d.ts.map +1 -0
- package/dist/lifeops/relationships/index.js +19 -0
- package/dist/lifeops/relationships/index.js.map +1 -0
- package/dist/lifeops/relationships/mapping.d.ts +34 -0
- package/dist/lifeops/relationships/mapping.d.ts.map +1 -0
- package/dist/lifeops/relationships/mapping.js +87 -0
- package/dist/lifeops/relationships/mapping.js.map +1 -0
- package/dist/lifeops/relationships/store.d.ts +12 -0
- package/dist/lifeops/relationships/store.d.ts.map +1 -0
- package/dist/lifeops/relationships/store.js +5 -0
- package/dist/lifeops/relationships/store.js.map +1 -0
- package/dist/lifeops/relationships/types.d.ts +9 -0
- package/dist/lifeops/relationships/types.d.ts.map +1 -0
- package/dist/lifeops/relationships/types.js +11 -0
- package/dist/lifeops/relationships/types.js.map +1 -0
- package/dist/lifeops/relative-schedule-resolver.d.ts +13 -0
- package/dist/lifeops/relative-schedule-resolver.d.ts.map +1 -0
- package/dist/lifeops/relative-schedule-resolver.js +107 -0
- package/dist/lifeops/relative-schedule-resolver.js.map +1 -0
- package/dist/lifeops/relative-time.d.ts +15 -0
- package/dist/lifeops/relative-time.d.ts.map +1 -0
- package/dist/lifeops/relative-time.js +191 -0
- package/dist/lifeops/relative-time.js.map +1 -0
- package/dist/lifeops/repository.d.ts +638 -0
- package/dist/lifeops/repository.d.ts.map +1 -0
- package/dist/lifeops/repository.js +6289 -0
- package/dist/lifeops/repository.js.map +1 -0
- package/dist/lifeops/runtime-cache.d.ts +4 -0
- package/dist/lifeops/runtime-cache.d.ts.map +1 -0
- package/dist/lifeops/runtime-cache.js +7 -0
- package/dist/lifeops/runtime-cache.js.map +1 -0
- package/dist/lifeops/runtime-service-delegates.d.ts +236 -0
- package/dist/lifeops/runtime-service-delegates.d.ts.map +1 -0
- package/dist/lifeops/runtime-service-delegates.js +839 -0
- package/dist/lifeops/runtime-service-delegates.js.map +1 -0
- package/dist/lifeops/runtime.d.ts +13 -0
- package/dist/lifeops/runtime.d.ts.map +1 -0
- package/dist/lifeops/runtime.js +104 -0
- package/dist/lifeops/runtime.js.map +1 -0
- package/dist/lifeops/schedule-insight.d.ts +133 -0
- package/dist/lifeops/schedule-insight.d.ts.map +1 -0
- package/dist/lifeops/schedule-insight.js +726 -0
- package/dist/lifeops/schedule-insight.js.map +1 -0
- package/dist/lifeops/schedule-state.d.ts +39 -0
- package/dist/lifeops/schedule-state.d.ts.map +1 -0
- package/dist/lifeops/schedule-state.js +671 -0
- package/dist/lifeops/schedule-state.js.map +1 -0
- package/dist/lifeops/schedule-sync-config.d.ts +3 -0
- package/dist/lifeops/schedule-sync-config.d.ts.map +1 -0
- package/dist/lifeops/schedule-sync-config.js +23 -0
- package/dist/lifeops/schedule-sync-config.js.map +1 -0
- package/dist/lifeops/schedule-sync-contracts.d.ts +2 -0
- package/dist/lifeops/schedule-sync-contracts.d.ts.map +1 -0
- package/dist/lifeops/schedule-sync-contracts.js +2 -0
- package/dist/lifeops/schedule-sync-contracts.js.map +1 -0
- package/dist/lifeops/scheduled-task/index.d.ts +13 -0
- package/dist/lifeops/scheduled-task/index.d.ts.map +1 -0
- package/dist/lifeops/scheduled-task/index.js +14 -0
- package/dist/lifeops/scheduled-task/index.js.map +1 -0
- package/dist/lifeops/scheduled-task/runtime-wiring.d.ts +33 -0
- package/dist/lifeops/scheduled-task/runtime-wiring.d.ts.map +1 -0
- package/dist/lifeops/scheduled-task/runtime-wiring.js +334 -0
- package/dist/lifeops/scheduled-task/runtime-wiring.js.map +1 -0
- package/dist/lifeops/scheduled-task/scheduler.d.ts +28 -0
- package/dist/lifeops/scheduled-task/scheduler.d.ts.map +1 -0
- package/dist/lifeops/scheduled-task/scheduler.js +202 -0
- package/dist/lifeops/scheduled-task/scheduler.js.map +1 -0
- package/dist/lifeops/scheduled-task/service.d.ts +61 -0
- package/dist/lifeops/scheduled-task/service.d.ts.map +1 -0
- package/dist/lifeops/scheduled-task/service.js +64 -0
- package/dist/lifeops/scheduled-task/service.js.map +1 -0
- package/dist/lifeops/scheduler-task.d.ts +19 -0
- package/dist/lifeops/scheduler-task.d.ts.map +1 -0
- package/dist/lifeops/scheduler-task.js +201 -0
- package/dist/lifeops/scheduler-task.js.map +1 -0
- package/dist/lifeops/schema.d.ts +28068 -0
- package/dist/lifeops/schema.d.ts.map +1 -0
- package/dist/lifeops/schema.js +1689 -0
- package/dist/lifeops/schema.js.map +1 -0
- package/dist/lifeops/screen-context.d.ts +66 -0
- package/dist/lifeops/screen-context.d.ts.map +1 -0
- package/dist/lifeops/screen-context.js +347 -0
- package/dist/lifeops/screen-context.js.map +1 -0
- package/dist/lifeops/seed-routine-migration/migrator.d.ts +113 -0
- package/dist/lifeops/seed-routine-migration/migrator.d.ts.map +1 -0
- package/dist/lifeops/seed-routine-migration/migrator.js +142 -0
- package/dist/lifeops/seed-routine-migration/migrator.js.map +1 -0
- package/dist/lifeops/seed-routines.d.ts +24 -0
- package/dist/lifeops/seed-routines.d.ts.map +1 -0
- package/dist/lifeops/seed-routines.js +140 -0
- package/dist/lifeops/seed-routines.js.map +1 -0
- package/dist/lifeops/send-policy/contract.d.ts +81 -0
- package/dist/lifeops/send-policy/contract.d.ts.map +1 -0
- package/dist/lifeops/send-policy/contract.js +1 -0
- package/dist/lifeops/send-policy/contract.js.map +1 -0
- package/dist/lifeops/send-policy/index.d.ts +3 -0
- package/dist/lifeops/send-policy/index.d.ts.map +1 -0
- package/dist/lifeops/send-policy/index.js +13 -0
- package/dist/lifeops/send-policy/index.js.map +1 -0
- package/dist/lifeops/send-policy/registry.d.ts +7 -0
- package/dist/lifeops/send-policy/registry.d.ts.map +1 -0
- package/dist/lifeops/send-policy/registry.js +62 -0
- package/dist/lifeops/send-policy/registry.js.map +1 -0
- package/dist/lifeops/sensitive-request-delivery.d.ts +46 -0
- package/dist/lifeops/sensitive-request-delivery.d.ts.map +1 -0
- package/dist/lifeops/sensitive-request-delivery.js +103 -0
- package/dist/lifeops/sensitive-request-delivery.js.map +1 -0
- package/dist/lifeops/service-constants.d.ts +10 -0
- package/dist/lifeops/service-constants.d.ts.map +1 -0
- package/dist/lifeops/service-constants.js +129 -0
- package/dist/lifeops/service-constants.js.map +1 -0
- package/dist/lifeops/service-helpers-browser.d.ts +41 -0
- package/dist/lifeops/service-helpers-browser.d.ts.map +1 -0
- package/dist/lifeops/service-helpers-browser.js +290 -0
- package/dist/lifeops/service-helpers-browser.js.map +1 -0
- package/dist/lifeops/service-helpers-misc.d.ts +68 -0
- package/dist/lifeops/service-helpers-misc.d.ts.map +1 -0
- package/dist/lifeops/service-helpers-misc.js +531 -0
- package/dist/lifeops/service-helpers-misc.js.map +1 -0
- package/dist/lifeops/service-helpers-occurrence.d.ts +23 -0
- package/dist/lifeops/service-helpers-occurrence.d.ts.map +1 -0
- package/dist/lifeops/service-helpers-occurrence.js +257 -0
- package/dist/lifeops/service-helpers-occurrence.js.map +1 -0
- package/dist/lifeops/service-helpers-reminder.d.ts +260 -0
- package/dist/lifeops/service-helpers-reminder.d.ts.map +1 -0
- package/dist/lifeops/service-helpers-reminder.js +1186 -0
- package/dist/lifeops/service-helpers-reminder.js.map +1 -0
- package/dist/lifeops/service-mixin-browser.d.ts +31 -0
- package/dist/lifeops/service-mixin-browser.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-browser.js +975 -0
- package/dist/lifeops/service-mixin-browser.js.map +1 -0
- package/dist/lifeops/service-mixin-calendar.d.ts +53 -0
- package/dist/lifeops/service-mixin-calendar.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-calendar.js +68 -0
- package/dist/lifeops/service-mixin-calendar.js.map +1 -0
- package/dist/lifeops/service-mixin-core.d.ts +51 -0
- package/dist/lifeops/service-mixin-core.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-core.js +500 -0
- package/dist/lifeops/service-mixin-core.js.map +1 -0
- package/dist/lifeops/service-mixin-definitions.d.ts +14 -0
- package/dist/lifeops/service-mixin-definitions.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-definitions.js +470 -0
- package/dist/lifeops/service-mixin-definitions.js.map +1 -0
- package/dist/lifeops/service-mixin-discord.d.ts +49 -0
- package/dist/lifeops/service-mixin-discord.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-discord.js +1253 -0
- package/dist/lifeops/service-mixin-discord.js.map +1 -0
- package/dist/lifeops/service-mixin-drive.d.ts +96 -0
- package/dist/lifeops/service-mixin-drive.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-drive.js +213 -0
- package/dist/lifeops/service-mixin-drive.js.map +1 -0
- package/dist/lifeops/service-mixin-email-unsubscribe.d.ts +23 -0
- package/dist/lifeops/service-mixin-email-unsubscribe.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-email-unsubscribe.js +27 -0
- package/dist/lifeops/service-mixin-email-unsubscribe.js.map +1 -0
- package/dist/lifeops/service-mixin-gmail.d.ts +43 -0
- package/dist/lifeops/service-mixin-gmail.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-gmail.js +727 -0
- package/dist/lifeops/service-mixin-gmail.js.map +1 -0
- package/dist/lifeops/service-mixin-goals.d.ts +22 -0
- package/dist/lifeops/service-mixin-goals.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-goals.js +884 -0
- package/dist/lifeops/service-mixin-goals.js.map +1 -0
- package/dist/lifeops/service-mixin-google.d.ts +13 -0
- package/dist/lifeops/service-mixin-google.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-google.js +398 -0
- package/dist/lifeops/service-mixin-google.js.map +1 -0
- package/dist/lifeops/service-mixin-health.d.ts +27 -0
- package/dist/lifeops/service-mixin-health.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-health.js +670 -0
- package/dist/lifeops/service-mixin-health.js.map +1 -0
- package/dist/lifeops/service-mixin-imessage.d.ts +106 -0
- package/dist/lifeops/service-mixin-imessage.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-imessage.js +303 -0
- package/dist/lifeops/service-mixin-imessage.js.map +1 -0
- package/dist/lifeops/service-mixin-inbox.d.ts +55 -0
- package/dist/lifeops/service-mixin-inbox.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-inbox.js +597 -0
- package/dist/lifeops/service-mixin-inbox.js.map +1 -0
- package/dist/lifeops/service-mixin-relationships.d.ts +65 -0
- package/dist/lifeops/service-mixin-relationships.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-relationships.js +150 -0
- package/dist/lifeops/service-mixin-relationships.js.map +1 -0
- package/dist/lifeops/service-mixin-reminders.d.ts +62 -0
- package/dist/lifeops/service-mixin-reminders.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-reminders.js +4003 -0
- package/dist/lifeops/service-mixin-reminders.js.map +1 -0
- package/dist/lifeops/service-mixin-scheduling.d.ts +53 -0
- package/dist/lifeops/service-mixin-scheduling.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-scheduling.js +405 -0
- package/dist/lifeops/service-mixin-scheduling.js.map +1 -0
- package/dist/lifeops/service-mixin-screentime.d.ts +71 -0
- package/dist/lifeops/service-mixin-screentime.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-screentime.js +530 -0
- package/dist/lifeops/service-mixin-screentime.js.map +1 -0
- package/dist/lifeops/service-mixin-signal.d.ts +74 -0
- package/dist/lifeops/service-mixin-signal.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-signal.js +214 -0
- package/dist/lifeops/service-mixin-signal.js.map +1 -0
- package/dist/lifeops/service-mixin-sleep.d.ts +68 -0
- package/dist/lifeops/service-mixin-sleep.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-sleep.js +43 -0
- package/dist/lifeops/service-mixin-sleep.js.map +1 -0
- package/dist/lifeops/service-mixin-status.d.ts +31 -0
- package/dist/lifeops/service-mixin-status.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-status.js +373 -0
- package/dist/lifeops/service-mixin-status.js.map +1 -0
- package/dist/lifeops/service-mixin-subscriptions.d.ts +101 -0
- package/dist/lifeops/service-mixin-subscriptions.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-subscriptions.js +50 -0
- package/dist/lifeops/service-mixin-subscriptions.js.map +1 -0
- package/dist/lifeops/service-mixin-telegram.d.ts +104 -0
- package/dist/lifeops/service-mixin-telegram.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-telegram.js +280 -0
- package/dist/lifeops/service-mixin-telegram.js.map +1 -0
- package/dist/lifeops/service-mixin-travel.d.ts +66 -0
- package/dist/lifeops/service-mixin-travel.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-travel.js +275 -0
- package/dist/lifeops/service-mixin-travel.js.map +1 -0
- package/dist/lifeops/service-mixin-whatsapp.d.ts +96 -0
- package/dist/lifeops/service-mixin-whatsapp.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-whatsapp.js +186 -0
- package/dist/lifeops/service-mixin-whatsapp.js.map +1 -0
- package/dist/lifeops/service-mixin-workflows.d.ts +15 -0
- package/dist/lifeops/service-mixin-workflows.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-workflows.js +710 -0
- package/dist/lifeops/service-mixin-workflows.js.map +1 -0
- package/dist/lifeops/service-mixin-x-read.d.ts +31 -0
- package/dist/lifeops/service-mixin-x-read.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-x-read.js +267 -0
- package/dist/lifeops/service-mixin-x-read.js.map +1 -0
- package/dist/lifeops/service-mixin-x.d.ts +66 -0
- package/dist/lifeops/service-mixin-x.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-x.js +501 -0
- package/dist/lifeops/service-mixin-x.js.map +1 -0
- package/dist/lifeops/service-normalize-connector.d.ts +19 -0
- package/dist/lifeops/service-normalize-connector.d.ts.map +1 -0
- package/dist/lifeops/service-normalize-connector.js +816 -0
- package/dist/lifeops/service-normalize-connector.js.map +1 -0
- package/dist/lifeops/service-normalize-gmail.d.ts +11 -0
- package/dist/lifeops/service-normalize-gmail.d.ts.map +1 -0
- package/dist/lifeops/service-normalize-gmail.js +85 -0
- package/dist/lifeops/service-normalize-gmail.js.map +1 -0
- package/dist/lifeops/service-normalize-task.d.ts +9 -0
- package/dist/lifeops/service-normalize-task.d.ts.map +1 -0
- package/dist/lifeops/service-normalize-task.js +567 -0
- package/dist/lifeops/service-normalize-task.js.map +1 -0
- package/dist/lifeops/service-normalize.d.ts +9 -0
- package/dist/lifeops/service-normalize.d.ts.map +1 -0
- package/dist/lifeops/service-normalize.js +53 -0
- package/dist/lifeops/service-normalize.js.map +1 -0
- package/dist/lifeops/service-types.d.ts +75 -0
- package/dist/lifeops/service-types.d.ts.map +1 -0
- package/dist/lifeops/service-types.js +5 -0
- package/dist/lifeops/service-types.js.map +1 -0
- package/dist/lifeops/service.d.ts +482 -0
- package/dist/lifeops/service.d.ts.map +1 -0
- package/dist/lifeops/service.js +62 -0
- package/dist/lifeops/service.js.map +1 -0
- package/dist/lifeops/signal-runtime-config.d.ts +13 -0
- package/dist/lifeops/signal-runtime-config.d.ts.map +1 -0
- package/dist/lifeops/signal-runtime-config.js +44 -0
- package/dist/lifeops/signal-runtime-config.js.map +1 -0
- package/dist/lifeops/signals/bus.d.ts +78 -0
- package/dist/lifeops/signals/bus.d.ts.map +1 -0
- package/dist/lifeops/signals/bus.js +117 -0
- package/dist/lifeops/signals/bus.js.map +1 -0
- package/dist/lifeops/sql.d.ts +65 -0
- package/dist/lifeops/sql.d.ts.map +1 -0
- package/dist/lifeops/sql.js +182 -0
- package/dist/lifeops/sql.js.map +1 -0
- package/dist/lifeops/stretch-decider.d.ts +73 -0
- package/dist/lifeops/stretch-decider.d.ts.map +1 -0
- package/dist/lifeops/stretch-decider.js +49 -0
- package/dist/lifeops/stretch-decider.js.map +1 -0
- package/dist/lifeops/telemetry-mapping.d.ts +14 -0
- package/dist/lifeops/telemetry-mapping.d.ts.map +1 -0
- package/dist/lifeops/telemetry-mapping.js +115 -0
- package/dist/lifeops/telemetry-mapping.js.map +1 -0
- package/dist/lifeops/telemetry-retention.d.ts +21 -0
- package/dist/lifeops/telemetry-retention.d.ts.map +1 -0
- package/dist/lifeops/telemetry-retention.js +13 -0
- package/dist/lifeops/telemetry-retention.js.map +1 -0
- package/dist/lifeops/time/timezone.d.ts +4 -0
- package/dist/lifeops/time/timezone.d.ts.map +1 -0
- package/dist/lifeops/time/timezone.js +154 -0
- package/dist/lifeops/time/timezone.js.map +1 -0
- package/dist/lifeops/time-util.d.ts +10 -0
- package/dist/lifeops/time-util.d.ts.map +1 -0
- package/dist/lifeops/time-util.js +14 -0
- package/dist/lifeops/time-util.js.map +1 -0
- package/dist/lifeops/time.d.ts +17 -0
- package/dist/lifeops/time.d.ts.map +1 -0
- package/dist/lifeops/time.js +152 -0
- package/dist/lifeops/time.js.map +1 -0
- package/dist/lifeops/travel-booking.types.d.ts +46 -0
- package/dist/lifeops/travel-booking.types.d.ts.map +1 -0
- package/dist/lifeops/travel-booking.types.js +1 -0
- package/dist/lifeops/travel-booking.types.js.map +1 -0
- package/dist/lifeops/triggers/schedule-once.d.ts +19 -0
- package/dist/lifeops/triggers/schedule-once.d.ts.map +1 -0
- package/dist/lifeops/triggers/schedule-once.js +99 -0
- package/dist/lifeops/triggers/schedule-once.js.map +1 -0
- package/dist/lifeops/validate/coding-task-request.d.ts +18 -0
- package/dist/lifeops/validate/coding-task-request.d.ts.map +1 -0
- package/dist/lifeops/validate/coding-task-request.js +16 -0
- package/dist/lifeops/validate/coding-task-request.js.map +1 -0
- package/dist/lifeops/voice/grounded-reply.d.ts +41 -0
- package/dist/lifeops/voice/grounded-reply.d.ts.map +1 -0
- package/dist/lifeops/voice/grounded-reply.js +24 -0
- package/dist/lifeops/voice/grounded-reply.js.map +1 -0
- package/dist/lifeops/voice-affect.d.ts +79 -0
- package/dist/lifeops/voice-affect.d.ts.map +1 -0
- package/dist/lifeops/voice-affect.js +253 -0
- package/dist/lifeops/voice-affect.js.map +1 -0
- package/dist/lifeops/wave1-types.d.ts +125 -0
- package/dist/lifeops/wave1-types.d.ts.map +1 -0
- package/dist/lifeops/wave1-types.js +1 -0
- package/dist/lifeops/wave1-types.js.map +1 -0
- package/dist/lifeops/work-threads/field-evaluator-thread-ops.d.ts +33 -0
- package/dist/lifeops/work-threads/field-evaluator-thread-ops.d.ts.map +1 -0
- package/dist/lifeops/work-threads/field-evaluator-thread-ops.js +226 -0
- package/dist/lifeops/work-threads/field-evaluator-thread-ops.js.map +1 -0
- package/dist/lifeops/work-threads/index.d.ts +3 -0
- package/dist/lifeops/work-threads/index.d.ts.map +1 -0
- package/dist/lifeops/work-threads/index.js +7 -0
- package/dist/lifeops/work-threads/index.js.map +1 -0
- package/dist/lifeops/work-threads/store.d.ts +91 -0
- package/dist/lifeops/work-threads/store.d.ts.map +1 -0
- package/dist/lifeops/work-threads/store.js +245 -0
- package/dist/lifeops/work-threads/store.js.map +1 -0
- package/dist/lifeops/work-threads/types.d.ts +58 -0
- package/dist/lifeops/work-threads/types.d.ts.map +1 -0
- package/dist/lifeops/work-threads/types.js +1 -0
- package/dist/lifeops/work-threads/types.js.map +1 -0
- package/dist/platform/host.d.ts +16 -0
- package/dist/platform/host.d.ts.map +1 -0
- package/dist/platform/host.js +22 -0
- package/dist/platform/host.js.map +1 -0
- package/dist/platform/index.d.ts +3 -0
- package/dist/platform/index.d.ts.map +1 -0
- package/dist/platform/index.js +3 -0
- package/dist/platform/index.js.map +1 -0
- package/dist/platform/lifeops-github.d.ts +15 -0
- package/dist/platform/lifeops-github.d.ts.map +1 -0
- package/dist/platform/lifeops-github.js +146 -0
- package/dist/platform/lifeops-github.js.map +1 -0
- package/dist/plugin.d.ts +106 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +989 -0
- package/dist/plugin.js.map +1 -0
- package/dist/provider.d.ts +4 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/provider.js +108 -0
- package/dist/provider.js.map +1 -0
- package/dist/providers/activity-profile.d.ts +3 -0
- package/dist/providers/activity-profile.d.ts.map +1 -0
- package/dist/providers/activity-profile.js +140 -0
- package/dist/providers/activity-profile.js.map +1 -0
- package/dist/providers/cross-channel-context.d.ts +29 -0
- package/dist/providers/cross-channel-context.d.ts.map +1 -0
- package/dist/providers/cross-channel-context.js +206 -0
- package/dist/providers/cross-channel-context.js.map +1 -0
- package/dist/providers/first-run.d.ts +22 -0
- package/dist/providers/first-run.d.ts.map +1 -0
- package/dist/providers/first-run.js +93 -0
- package/dist/providers/first-run.js.map +1 -0
- package/dist/providers/health.d.ts +2 -0
- package/dist/providers/health.d.ts.map +1 -0
- package/dist/providers/health.js +14 -0
- package/dist/providers/health.js.map +1 -0
- package/dist/providers/inbox-triage.d.ts +3 -0
- package/dist/providers/inbox-triage.d.ts.map +1 -0
- package/dist/providers/inbox-triage.js +134 -0
- package/dist/providers/inbox-triage.js.map +1 -0
- package/dist/providers/lifeops.d.ts +3 -0
- package/dist/providers/lifeops.d.ts.map +1 -0
- package/dist/providers/lifeops.js +548 -0
- package/dist/providers/lifeops.js.map +1 -0
- package/dist/providers/pending-prompts.d.ts +38 -0
- package/dist/providers/pending-prompts.d.ts.map +1 -0
- package/dist/providers/pending-prompts.js +81 -0
- package/dist/providers/pending-prompts.js.map +1 -0
- package/dist/providers/recent-task-states.d.ts +52 -0
- package/dist/providers/recent-task-states.d.ts.map +1 -0
- package/dist/providers/recent-task-states.js +166 -0
- package/dist/providers/recent-task-states.js.map +1 -0
- package/dist/providers/room-policy.d.ts +16 -0
- package/dist/providers/room-policy.d.ts.map +1 -0
- package/dist/providers/room-policy.js +71 -0
- package/dist/providers/room-policy.js.map +1 -0
- package/dist/providers/work-threads.d.ts +3 -0
- package/dist/providers/work-threads.d.ts.map +1 -0
- package/dist/providers/work-threads.js +97 -0
- package/dist/providers/work-threads.js.map +1 -0
- package/dist/public.d.ts +3 -0
- package/dist/public.d.ts.map +1 -0
- package/dist/public.js +17 -0
- package/dist/public.js.map +1 -0
- package/dist/routes/cloud-features-routes.d.ts +9 -0
- package/dist/routes/cloud-features-routes.d.ts.map +1 -0
- package/dist/routes/cloud-features-routes.js +164 -0
- package/dist/routes/cloud-features-routes.js.map +1 -0
- package/dist/routes/entities.d.ts +14 -0
- package/dist/routes/entities.d.ts.map +1 -0
- package/dist/routes/entities.js +203 -0
- package/dist/routes/entities.js.map +1 -0
- package/dist/routes/lifeops-routes.d.ts +20 -0
- package/dist/routes/lifeops-routes.d.ts.map +1 -0
- package/dist/routes/lifeops-routes.js +2337 -0
- package/dist/routes/lifeops-routes.js.map +1 -0
- package/dist/routes/plugin.d.ts +9 -0
- package/dist/routes/plugin.d.ts.map +1 -0
- package/dist/routes/plugin.js +568 -0
- package/dist/routes/plugin.js.map +1 -0
- package/dist/routes/relationships.d.ts +13 -0
- package/dist/routes/relationships.d.ts.map +1 -0
- package/dist/routes/relationships.js +195 -0
- package/dist/routes/relationships.js.map +1 -0
- package/dist/routes/scheduled-tasks.d.ts +102 -0
- package/dist/routes/scheduled-tasks.d.ts.map +1 -0
- package/dist/routes/scheduled-tasks.js +322 -0
- package/dist/routes/scheduled-tasks.js.map +1 -0
- package/dist/routes/sleep-routes.d.ts +3 -0
- package/dist/routes/sleep-routes.d.ts.map +1 -0
- package/dist/routes/sleep-routes.js +33 -0
- package/dist/routes/sleep-routes.js.map +1 -0
- package/dist/routes/travel-provider-relay-routes.d.ts +2 -0
- package/dist/routes/travel-provider-relay-routes.d.ts.map +1 -0
- package/dist/routes/travel-provider-relay-routes.js +7 -0
- package/dist/routes/travel-provider-relay-routes.js.map +1 -0
- package/dist/routes/website-blocker-routes.d.ts +6 -0
- package/dist/routes/website-blocker-routes.d.ts.map +1 -0
- package/dist/routes/website-blocker-routes.js +218 -0
- package/dist/routes/website-blocker-routes.js.map +1 -0
- package/dist/security/action-confirmation.d.ts +12 -0
- package/dist/security/action-confirmation.d.ts.map +1 -0
- package/dist/security/action-confirmation.js +36 -0
- package/dist/security/action-confirmation.js.map +1 -0
- package/dist/service.d.ts +34 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/service.js +111 -0
- package/dist/service.js.map +1 -0
- package/dist/travel-time/calendar-create.d.ts +17 -0
- package/dist/travel-time/calendar-create.d.ts.map +1 -0
- package/dist/travel-time/calendar-create.js +28 -0
- package/dist/travel-time/calendar-create.js.map +1 -0
- package/dist/travel-time/service.d.ts +114 -0
- package/dist/travel-time/service.d.ts.map +1 -0
- package/dist/travel-time/service.js +209 -0
- package/dist/travel-time/service.js.map +1 -0
- package/dist/types/app-blocker-settings-card.d.ts +2 -0
- package/dist/types/app-blocker-settings-card.d.ts.map +1 -0
- package/dist/types/app-blocker-settings-card.js +1 -0
- package/dist/types/app-blocker-settings-card.js.map +1 -0
- package/dist/types/briefing.d.ts +59 -0
- package/dist/types/briefing.d.ts.map +1 -0
- package/dist/types/briefing.js +1 -0
- package/dist/types/briefing.js.map +1 -0
- package/dist/types/document-request.d.ts +41 -0
- package/dist/types/document-request.d.ts.map +1 -0
- package/dist/types/document-request.js +1 -0
- package/dist/types/document-request.js.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/website-blocker-settings-card.d.ts +2 -0
- package/dist/types/website-blocker-settings-card.d.ts.map +1 -0
- package/dist/types/website-blocker-settings-card.js +1 -0
- package/dist/types/website-blocker-settings-card.js.map +1 -0
- package/dist/ui.d.ts +13 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +25 -0
- package/dist/ui.js.map +1 -0
- package/dist/utils/format-duration.d.ts +2 -0
- package/dist/utils/format-duration.d.ts.map +1 -0
- package/dist/utils/format-duration.js +13 -0
- package/dist/utils/format-duration.js.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/lifeops-url.d.ts +3 -0
- package/dist/utils/lifeops-url.d.ts.map +1 -0
- package/dist/utils/lifeops-url.js +28 -0
- package/dist/utils/lifeops-url.js.map +1 -0
- package/dist/website-blocker/chat-integration/block-activator.d.ts +32 -0
- package/dist/website-blocker/chat-integration/block-activator.d.ts.map +1 -0
- package/dist/website-blocker/chat-integration/block-activator.js +30 -0
- package/dist/website-blocker/chat-integration/block-activator.js.map +1 -0
- package/dist/website-blocker/chat-integration/block-rule-reconciler.d.ts +7 -0
- package/dist/website-blocker/chat-integration/block-rule-reconciler.d.ts.map +1 -0
- package/dist/website-blocker/chat-integration/block-rule-reconciler.js +115 -0
- package/dist/website-blocker/chat-integration/block-rule-reconciler.js.map +1 -0
- package/dist/website-blocker/chat-integration/block-rule-schema.d.ts +39 -0
- package/dist/website-blocker/chat-integration/block-rule-schema.d.ts.map +1 -0
- package/dist/website-blocker/chat-integration/block-rule-schema.js +133 -0
- package/dist/website-blocker/chat-integration/block-rule-schema.js.map +1 -0
- package/dist/website-blocker/chat-integration/block-rule-service.d.ts +21 -0
- package/dist/website-blocker/chat-integration/block-rule-service.d.ts.map +1 -0
- package/dist/website-blocker/chat-integration/block-rule-service.js +230 -0
- package/dist/website-blocker/chat-integration/block-rule-service.js.map +1 -0
- package/dist/website-blocker/chat-integration/harsh-mode-check.d.ts +13 -0
- package/dist/website-blocker/chat-integration/harsh-mode-check.d.ts.map +1 -0
- package/dist/website-blocker/chat-integration/harsh-mode-check.js +22 -0
- package/dist/website-blocker/chat-integration/harsh-mode-check.js.map +1 -0
- package/dist/website-blocker/chat-integration/index.d.ts +5 -0
- package/dist/website-blocker/chat-integration/index.d.ts.map +1 -0
- package/dist/website-blocker/chat-integration/index.js +26 -0
- package/dist/website-blocker/chat-integration/index.js.map +1 -0
- package/dist/website-blocker/proactive-block-bridge.d.ts +75 -0
- package/dist/website-blocker/proactive-block-bridge.d.ts.map +1 -0
- package/dist/website-blocker/proactive-block-bridge.js +154 -0
- package/dist/website-blocker/proactive-block-bridge.js.map +1 -0
- package/dist/website-blocker/public.d.ts +12 -0
- package/dist/website-blocker/public.d.ts.map +1 -0
- package/dist/website-blocker/public.js +51 -0
- package/dist/website-blocker/public.js.map +1 -0
- package/package.json +28 -28
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type IAgentRuntime } from "@elizaos/core";
|
|
2
|
+
import type { ScheduledTask } from "@elizaos/plugin-scheduling";
|
|
3
|
+
import { type RecordedPendingPrompt } from "../pending-prompts/store.js";
|
|
4
|
+
export interface ProcessDueScheduledTasksRequest {
|
|
5
|
+
runtime: IAgentRuntime;
|
|
6
|
+
agentId: string;
|
|
7
|
+
now: Date;
|
|
8
|
+
limit: number;
|
|
9
|
+
}
|
|
10
|
+
export interface ScheduledTaskFireResult {
|
|
11
|
+
taskId: string;
|
|
12
|
+
status: ScheduledTask["state"]["status"];
|
|
13
|
+
reason: string;
|
|
14
|
+
occurrenceAtIso?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface ScheduledTaskProcessingError {
|
|
17
|
+
taskId: string;
|
|
18
|
+
phase: "fire" | "completion_timeout" | "pending_prompt";
|
|
19
|
+
message: string;
|
|
20
|
+
}
|
|
21
|
+
export interface ProcessDueScheduledTasksResult {
|
|
22
|
+
fires: ScheduledTaskFireResult[];
|
|
23
|
+
completionTimeouts: ScheduledTaskFireResult[];
|
|
24
|
+
pendingPrompts: RecordedPendingPrompt[];
|
|
25
|
+
errors: ScheduledTaskProcessingError[];
|
|
26
|
+
}
|
|
27
|
+
export declare function processDueScheduledTasks(request: ProcessDueScheduledTasksRequest): Promise<ProcessDueScheduledTasksResult>;
|
|
28
|
+
//# sourceMappingURL=scheduler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../../src/lifeops/scheduled-task/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAU,MAAM,eAAe,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAchE,OAAO,EACL,KAAK,qBAAqB,EAE3B,MAAM,6BAA6B,CAAC;AAIrC,MAAM,WAAW,+BAA+B;IAC9C,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,IAAI,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,oBAAoB,GAAG,gBAAgB,CAAC;IACxD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,8BAA8B;IAC7C,KAAK,EAAE,uBAAuB,EAAE,CAAC;IACjC,kBAAkB,EAAE,uBAAuB,EAAE,CAAC;IAC9C,cAAc,EAAE,qBAAqB,EAAE,CAAC;IACxC,MAAM,EAAE,4BAA4B,EAAE,CAAC;CACxC;AAuCD,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC,8BAA8B,CAAC,CAgHzC"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import { logger } from "@elizaos/core";
|
|
2
|
+
import {
|
|
3
|
+
expectedReplyKindForTask,
|
|
4
|
+
getAnchorRegistry,
|
|
5
|
+
isCompletionTimeoutDue,
|
|
6
|
+
isRecurringTrigger,
|
|
7
|
+
isScheduledTaskDue,
|
|
8
|
+
markWindowFireIfNeeded,
|
|
9
|
+
pendingPromptRoomIdForTask
|
|
10
|
+
} from "@elizaos/plugin-scheduling";
|
|
11
|
+
import {
|
|
12
|
+
ownerFactsToView,
|
|
13
|
+
resolveOwnerFactStore
|
|
14
|
+
} from "../owner/fact-store.js";
|
|
15
|
+
import {
|
|
16
|
+
resolvePendingPromptsStore
|
|
17
|
+
} from "../pending-prompts/store.js";
|
|
18
|
+
import { LifeOpsRepository } from "../repository.js";
|
|
19
|
+
import { getScheduledTaskRunner } from "./service.js";
|
|
20
|
+
function errorMessage(error) {
|
|
21
|
+
return error instanceof Error ? error.message : String(error);
|
|
22
|
+
}
|
|
23
|
+
function shouldRecordPendingPrompt(task) {
|
|
24
|
+
return task.completionCheck?.kind === "user_replied_within" || task.completionCheck?.kind === "user_acknowledged" || task.kind === "approval";
|
|
25
|
+
}
|
|
26
|
+
async function recordPendingPromptIfNeeded(args) {
|
|
27
|
+
if (args.result.state.status !== "fired") return null;
|
|
28
|
+
if (!shouldRecordPendingPrompt(args.result)) return null;
|
|
29
|
+
const roomId = pendingPromptRoomIdForTask(args.result);
|
|
30
|
+
if (!roomId || !args.result.state.firedAt) return null;
|
|
31
|
+
const store = resolvePendingPromptsStore(args.runtime);
|
|
32
|
+
return store.record({
|
|
33
|
+
roomId,
|
|
34
|
+
taskId: args.result.taskId,
|
|
35
|
+
promptSnippet: args.result.promptInstructions,
|
|
36
|
+
firedAt: args.result.state.firedAt,
|
|
37
|
+
expectedReplyKind: expectedReplyKindForTask(args.result),
|
|
38
|
+
expiresAt: typeof args.result.completionCheck?.followupAfterMinutes === "number" ? new Date(
|
|
39
|
+
Date.parse(args.result.state.firedAt) + args.result.completionCheck.followupAfterMinutes * 6e4
|
|
40
|
+
).toISOString() : void 0
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
async function processDueScheduledTasks(request) {
|
|
44
|
+
const result = {
|
|
45
|
+
fires: [],
|
|
46
|
+
completionTimeouts: [],
|
|
47
|
+
pendingPrompts: [],
|
|
48
|
+
errors: []
|
|
49
|
+
};
|
|
50
|
+
const limit = Math.max(1, Math.floor(request.limit));
|
|
51
|
+
const repo = new LifeOpsRepository(request.runtime);
|
|
52
|
+
const runner = getScheduledTaskRunner(request.runtime, {
|
|
53
|
+
agentId: request.agentId,
|
|
54
|
+
now: () => request.now
|
|
55
|
+
});
|
|
56
|
+
const ownerFacts = ownerFactsToView(
|
|
57
|
+
await resolveOwnerFactStore(request.runtime).read()
|
|
58
|
+
);
|
|
59
|
+
const dueContext = {
|
|
60
|
+
now: request.now,
|
|
61
|
+
ownerFacts,
|
|
62
|
+
anchors: getAnchorRegistry(request.runtime)
|
|
63
|
+
};
|
|
64
|
+
const nowIso = request.now.toISOString();
|
|
65
|
+
const dueCandidates = await repo.listScheduledTasks(request.agentId, {
|
|
66
|
+
status: ["scheduled", "fired"],
|
|
67
|
+
dueAtOrBeforeIso: nowIso
|
|
68
|
+
});
|
|
69
|
+
const timeoutCandidates = await repo.listScheduledTasks(request.agentId, {
|
|
70
|
+
status: ["fired"]
|
|
71
|
+
});
|
|
72
|
+
const timeoutTaskIds = /* @__PURE__ */ new Set();
|
|
73
|
+
for (const task of timeoutCandidates) {
|
|
74
|
+
if (result.fires.length + result.completionTimeouts.length >= limit) {
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
const timeout = isCompletionTimeoutDue(task, request.now);
|
|
78
|
+
if (timeout.due) {
|
|
79
|
+
try {
|
|
80
|
+
const skipped = await runner.apply(task.taskId, "skip", {
|
|
81
|
+
reason: timeout.reason
|
|
82
|
+
});
|
|
83
|
+
result.completionTimeouts.push({
|
|
84
|
+
taskId: skipped.taskId,
|
|
85
|
+
status: skipped.state.status,
|
|
86
|
+
reason: timeout.reason,
|
|
87
|
+
occurrenceAtIso: timeout.occurrenceAtIso
|
|
88
|
+
});
|
|
89
|
+
timeoutTaskIds.add(skipped.taskId);
|
|
90
|
+
} catch (error) {
|
|
91
|
+
const message = errorMessage(error);
|
|
92
|
+
logger.warn(
|
|
93
|
+
`[lifeops-scheduled-task] completion timeout failed for ${task.taskId}: ${message}`
|
|
94
|
+
);
|
|
95
|
+
result.errors.push({
|
|
96
|
+
taskId: task.taskId,
|
|
97
|
+
phase: "completion_timeout",
|
|
98
|
+
message
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
for (const task of dueCandidates) {
|
|
104
|
+
if (timeoutTaskIds.has(task.taskId)) continue;
|
|
105
|
+
if (result.fires.length + result.completionTimeouts.length >= limit) {
|
|
106
|
+
break;
|
|
107
|
+
}
|
|
108
|
+
const decision = await isScheduledTaskDue(task, dueContext);
|
|
109
|
+
if (!decision.due) continue;
|
|
110
|
+
try {
|
|
111
|
+
const fireResult = await runner.fireWithResult(task.taskId, {
|
|
112
|
+
allowTerminalRefire: isRecurringTrigger(task.trigger)
|
|
113
|
+
});
|
|
114
|
+
const fired = await handleFireResult({
|
|
115
|
+
request,
|
|
116
|
+
repo,
|
|
117
|
+
fireResult,
|
|
118
|
+
decision,
|
|
119
|
+
dueContext,
|
|
120
|
+
result
|
|
121
|
+
});
|
|
122
|
+
if (!fired) continue;
|
|
123
|
+
} catch (error) {
|
|
124
|
+
const message = errorMessage(error);
|
|
125
|
+
logger.warn(
|
|
126
|
+
`[lifeops-scheduled-task] fire failed for ${task.taskId}: ${message}`
|
|
127
|
+
);
|
|
128
|
+
result.errors.push({ taskId: task.taskId, phase: "fire", message });
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return result;
|
|
132
|
+
}
|
|
133
|
+
async function handleFireResult(args) {
|
|
134
|
+
const { request, fireResult, decision, dueContext, result } = args;
|
|
135
|
+
switch (fireResult.kind) {
|
|
136
|
+
case "raced": {
|
|
137
|
+
return false;
|
|
138
|
+
}
|
|
139
|
+
case "skipped": {
|
|
140
|
+
result.fires.push({
|
|
141
|
+
taskId: fireResult.task.taskId,
|
|
142
|
+
status: fireResult.task.state.status,
|
|
143
|
+
reason: fireResult.reason || decision.reason,
|
|
144
|
+
occurrenceAtIso: decision.occurrenceAtIso
|
|
145
|
+
});
|
|
146
|
+
return true;
|
|
147
|
+
}
|
|
148
|
+
case "dispatch_failed": {
|
|
149
|
+
result.errors.push({
|
|
150
|
+
taskId: fireResult.task.taskId,
|
|
151
|
+
phase: "fire",
|
|
152
|
+
message: fireResult.error.message
|
|
153
|
+
});
|
|
154
|
+
return true;
|
|
155
|
+
}
|
|
156
|
+
case "fired": {
|
|
157
|
+
const windowMetadata = markWindowFireIfNeeded(
|
|
158
|
+
fireResult.task,
|
|
159
|
+
dueContext
|
|
160
|
+
);
|
|
161
|
+
const runner = getScheduledTaskRunner(request.runtime, {
|
|
162
|
+
agentId: request.agentId,
|
|
163
|
+
now: () => request.now
|
|
164
|
+
});
|
|
165
|
+
const persisted = windowMetadata !== null ? await runner.apply(fireResult.task.taskId, "edit", {
|
|
166
|
+
metadata: windowMetadata
|
|
167
|
+
}) : fireResult.task;
|
|
168
|
+
result.fires.push({
|
|
169
|
+
taskId: persisted.taskId,
|
|
170
|
+
status: persisted.state.status,
|
|
171
|
+
reason: decision.reason,
|
|
172
|
+
occurrenceAtIso: decision.occurrenceAtIso
|
|
173
|
+
});
|
|
174
|
+
try {
|
|
175
|
+
const recorded = await recordPendingPromptIfNeeded({
|
|
176
|
+
runtime: request.runtime,
|
|
177
|
+
result: persisted
|
|
178
|
+
});
|
|
179
|
+
if (recorded) result.pendingPrompts.push(recorded);
|
|
180
|
+
} catch (error) {
|
|
181
|
+
const message = errorMessage(error);
|
|
182
|
+
logger.warn(
|
|
183
|
+
`[lifeops-scheduled-task] pending prompt record failed for ${fireResult.task.taskId}: ${message}`
|
|
184
|
+
);
|
|
185
|
+
result.errors.push({
|
|
186
|
+
taskId: fireResult.task.taskId,
|
|
187
|
+
phase: "pending_prompt",
|
|
188
|
+
message
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
return true;
|
|
192
|
+
}
|
|
193
|
+
default: {
|
|
194
|
+
const _exhaustive = fireResult;
|
|
195
|
+
return false;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
export {
|
|
200
|
+
processDueScheduledTasks
|
|
201
|
+
};
|
|
202
|
+
//# sourceMappingURL=scheduler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lifeops/scheduled-task/scheduler.ts"],"sourcesContent":["import { type IAgentRuntime, logger } from \"@elizaos/core\";\nimport type { ScheduledTask } from \"@elizaos/plugin-scheduling\";\nimport {\n expectedReplyKindForTask,\n getAnchorRegistry,\n isCompletionTimeoutDue,\n isRecurringTrigger,\n isScheduledTaskDue,\n markWindowFireIfNeeded,\n pendingPromptRoomIdForTask,\n} from \"@elizaos/plugin-scheduling\";\nimport {\n ownerFactsToView,\n resolveOwnerFactStore,\n} from \"../owner/fact-store.js\";\nimport {\n type RecordedPendingPrompt,\n resolvePendingPromptsStore,\n} from \"../pending-prompts/store.js\";\nimport { LifeOpsRepository } from \"../repository.js\";\nimport { getScheduledTaskRunner } from \"./service.js\";\n\nexport interface ProcessDueScheduledTasksRequest {\n runtime: IAgentRuntime;\n agentId: string;\n now: Date;\n limit: number;\n}\n\nexport interface ScheduledTaskFireResult {\n taskId: string;\n status: ScheduledTask[\"state\"][\"status\"];\n reason: string;\n occurrenceAtIso?: string;\n}\n\nexport interface ScheduledTaskProcessingError {\n taskId: string;\n phase: \"fire\" | \"completion_timeout\" | \"pending_prompt\";\n message: string;\n}\n\nexport interface ProcessDueScheduledTasksResult {\n fires: ScheduledTaskFireResult[];\n completionTimeouts: ScheduledTaskFireResult[];\n pendingPrompts: RecordedPendingPrompt[];\n errors: ScheduledTaskProcessingError[];\n}\n\nfunction errorMessage(error: unknown): string {\n return error instanceof Error ? error.message : String(error);\n}\n\nfunction shouldRecordPendingPrompt(task: ScheduledTask): boolean {\n return (\n task.completionCheck?.kind === \"user_replied_within\" ||\n task.completionCheck?.kind === \"user_acknowledged\" ||\n task.kind === \"approval\"\n );\n}\n\nasync function recordPendingPromptIfNeeded(args: {\n runtime: IAgentRuntime;\n result: ScheduledTask;\n}): Promise<RecordedPendingPrompt | null> {\n if (args.result.state.status !== \"fired\") return null;\n if (!shouldRecordPendingPrompt(args.result)) return null;\n const roomId = pendingPromptRoomIdForTask(args.result);\n if (!roomId || !args.result.state.firedAt) return null;\n const store = resolvePendingPromptsStore(args.runtime);\n return store.record({\n roomId,\n taskId: args.result.taskId,\n promptSnippet: args.result.promptInstructions,\n firedAt: args.result.state.firedAt,\n expectedReplyKind: expectedReplyKindForTask(args.result),\n expiresAt:\n typeof args.result.completionCheck?.followupAfterMinutes === \"number\"\n ? new Date(\n Date.parse(args.result.state.firedAt) +\n args.result.completionCheck.followupAfterMinutes * 60_000,\n ).toISOString()\n : undefined,\n });\n}\n\nexport async function processDueScheduledTasks(\n request: ProcessDueScheduledTasksRequest,\n): Promise<ProcessDueScheduledTasksResult> {\n const result: ProcessDueScheduledTasksResult = {\n fires: [],\n completionTimeouts: [],\n pendingPrompts: [],\n errors: [],\n };\n const limit = Math.max(1, Math.floor(request.limit));\n const repo = new LifeOpsRepository(request.runtime);\n // The runner is constructed ONCE per runtime by ScheduledTaskRunnerService\n // (registered in plugin.ts). Reaching for it here every tick is O(map-get),\n // not the O(register-channels + build-registries) reconstruction the old\n // `createRuntimeScheduledTaskRunner` call did per minute.\n const runner = getScheduledTaskRunner(request.runtime, {\n agentId: request.agentId,\n now: () => request.now,\n });\n const ownerFacts = ownerFactsToView(\n await resolveOwnerFactStore(request.runtime).read(),\n );\n const dueContext = {\n now: request.now,\n ownerFacts,\n anchors: getAnchorRegistry(request.runtime),\n };\n // Indexed pass 1: due-to-fire candidates.\n //\n // The partial index `idx_life_scheduled_tasks_due` covers\n // `(agent_id, next_fire_at) WHERE state_json->>'status' IN ('scheduled','fired')`,\n // so this query touches O(# due rows + # event-driven rows with NULL)\n // instead of every row owned by the agent. `next_fire_at IS NULL` rows are\n // included so event / manual / after_task triggers (which deliberately\n // have no wall-clock fire time) still get a chance at fire-time gates if\n // they're invoked through another path. The authoritative\n // `isScheduledTaskDue` re-evaluates per task below.\n const nowIso = request.now.toISOString();\n const dueCandidates = await repo.listScheduledTasks(request.agentId, {\n status: [\"scheduled\", \"fired\"],\n dueAtOrBeforeIso: nowIso,\n });\n // Indexed pass 2: completion-timeout candidates. These are rows that have\n // already fired (`status = 'fired'`) and have a `followupAfterMinutes` on\n // the completion-check. The partial index has them too because `fired` is\n // in the index predicate. `dueAtOrBeforeIso` is intentionally omitted —\n // a fired row's `next_fire_at` is NULL after the claim, so we filter by\n // `state.firedAt` in JS via `isCompletionTimeoutDue`.\n const timeoutCandidates = await repo.listScheduledTasks(request.agentId, {\n status: [\"fired\"],\n });\n const timeoutTaskIds = new Set<string>();\n\n for (const task of timeoutCandidates) {\n if (result.fires.length + result.completionTimeouts.length >= limit) {\n break;\n }\n const timeout = isCompletionTimeoutDue(task, request.now);\n if (timeout.due) {\n try {\n const skipped = await runner.apply(task.taskId, \"skip\", {\n reason: timeout.reason,\n });\n result.completionTimeouts.push({\n taskId: skipped.taskId,\n status: skipped.state.status,\n reason: timeout.reason,\n occurrenceAtIso: timeout.occurrenceAtIso,\n });\n timeoutTaskIds.add(skipped.taskId);\n } catch (error) {\n const message = errorMessage(error);\n logger.warn(\n `[lifeops-scheduled-task] completion timeout failed for ${task.taskId}: ${message}`,\n );\n result.errors.push({\n taskId: task.taskId,\n phase: \"completion_timeout\",\n message,\n });\n }\n }\n }\n\n for (const task of dueCandidates) {\n if (timeoutTaskIds.has(task.taskId)) continue;\n if (result.fires.length + result.completionTimeouts.length >= limit) {\n break;\n }\n const decision = await isScheduledTaskDue(task, dueContext);\n if (!decision.due) continue;\n try {\n const fireResult = await runner.fireWithResult(task.taskId, {\n allowTerminalRefire: isRecurringTrigger(task.trigger),\n });\n const fired = await handleFireResult({\n request,\n repo,\n fireResult,\n decision,\n dueContext,\n result,\n });\n if (!fired) continue;\n } catch (error) {\n const message = errorMessage(error);\n logger.warn(\n `[lifeops-scheduled-task] fire failed for ${task.taskId}: ${message}`,\n );\n result.errors.push({ taskId: task.taskId, phase: \"fire\", message });\n }\n }\n\n return result;\n}\n\n/**\n * Branch on the `ScheduledTaskFireResult` discriminated union and record the\n * outcome into the tick result. Returns `true` when the result counted as a\n * fire (so the caller knows it consumed a slot), `false` otherwise.\n */\nasync function handleFireResult(args: {\n request: ProcessDueScheduledTasksRequest;\n repo: LifeOpsRepository;\n fireResult: import(\"@elizaos/plugin-scheduling\").ScheduledTaskFireResult;\n decision: import(\"@elizaos/plugin-scheduling\").ScheduledTaskDueDecision;\n dueContext: import(\"@elizaos/plugin-scheduling\").ScheduledTaskDueContext;\n result: ProcessDueScheduledTasksResult;\n}): Promise<boolean> {\n const { request, fireResult, decision, dueContext, result } = args;\n switch (fireResult.kind) {\n case \"raced\": {\n // Another tick atomically claimed this row first. Nothing to record —\n // the winning tick will publish its own fire event. Surfacing this as\n // an error would double-count; surfacing as a fire would double-bill.\n return false;\n }\n case \"skipped\": {\n // Gate denial / global-pause / terminal-non-recurring etc. Recorded so\n // observers see the task was visited and chose not to dispatch.\n result.fires.push({\n taskId: fireResult.task.taskId,\n status: fireResult.task.state.status,\n reason: fireResult.reason || decision.reason,\n occurrenceAtIso: decision.occurrenceAtIso,\n });\n return true;\n }\n case \"dispatch_failed\": {\n result.errors.push({\n taskId: fireResult.task.taskId,\n phase: \"fire\",\n message: fireResult.error.message,\n });\n return true;\n }\n case \"fired\": {\n const windowMetadata = markWindowFireIfNeeded(\n fireResult.task,\n dueContext,\n );\n // Service singleton — same instance the scheduler grabbed at the top.\n const runner = getScheduledTaskRunner(request.runtime, {\n agentId: request.agentId,\n now: () => request.now,\n });\n const persisted =\n windowMetadata !== null\n ? await runner.apply(fireResult.task.taskId, \"edit\", {\n metadata: windowMetadata,\n })\n : fireResult.task;\n result.fires.push({\n taskId: persisted.taskId,\n status: persisted.state.status,\n reason: decision.reason,\n occurrenceAtIso: decision.occurrenceAtIso,\n });\n try {\n const recorded = await recordPendingPromptIfNeeded({\n runtime: request.runtime,\n result: persisted,\n });\n if (recorded) result.pendingPrompts.push(recorded);\n } catch (error) {\n const message = errorMessage(error);\n logger.warn(\n `[lifeops-scheduled-task] pending prompt record failed for ${fireResult.task.taskId}: ${message}`,\n );\n result.errors.push({\n taskId: fireResult.task.taskId,\n phase: \"pending_prompt\",\n message,\n });\n }\n return true;\n }\n default: {\n const _exhaustive: never = fireResult;\n return false;\n }\n }\n}\n"],"mappings":"AAAA,SAA6B,cAAc;AAE3C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP;AAAA,EAEE;AAAA,OACK;AACP,SAAS,yBAAyB;AAClC,SAAS,8BAA8B;AA6BvC,SAAS,aAAa,OAAwB;AAC5C,SAAO,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAC9D;AAEA,SAAS,0BAA0B,MAA8B;AAC/D,SACE,KAAK,iBAAiB,SAAS,yBAC/B,KAAK,iBAAiB,SAAS,uBAC/B,KAAK,SAAS;AAElB;AAEA,eAAe,4BAA4B,MAGD;AACxC,MAAI,KAAK,OAAO,MAAM,WAAW,QAAS,QAAO;AACjD,MAAI,CAAC,0BAA0B,KAAK,MAAM,EAAG,QAAO;AACpD,QAAM,SAAS,2BAA2B,KAAK,MAAM;AACrD,MAAI,CAAC,UAAU,CAAC,KAAK,OAAO,MAAM,QAAS,QAAO;AAClD,QAAM,QAAQ,2BAA2B,KAAK,OAAO;AACrD,SAAO,MAAM,OAAO;AAAA,IAClB;AAAA,IACA,QAAQ,KAAK,OAAO;AAAA,IACpB,eAAe,KAAK,OAAO;AAAA,IAC3B,SAAS,KAAK,OAAO,MAAM;AAAA,IAC3B,mBAAmB,yBAAyB,KAAK,MAAM;AAAA,IACvD,WACE,OAAO,KAAK,OAAO,iBAAiB,yBAAyB,WACzD,IAAI;AAAA,MACF,KAAK,MAAM,KAAK,OAAO,MAAM,OAAO,IAClC,KAAK,OAAO,gBAAgB,uBAAuB;AAAA,IACvD,EAAE,YAAY,IACd;AAAA,EACR,CAAC;AACH;AAEA,eAAsB,yBACpB,SACyC;AACzC,QAAM,SAAyC;AAAA,IAC7C,OAAO,CAAC;AAAA,IACR,oBAAoB,CAAC;AAAA,IACrB,gBAAgB,CAAC;AAAA,IACjB,QAAQ,CAAC;AAAA,EACX;AACA,QAAM,QAAQ,KAAK,IAAI,GAAG,KAAK,MAAM,QAAQ,KAAK,CAAC;AACnD,QAAM,OAAO,IAAI,kBAAkB,QAAQ,OAAO;AAKlD,QAAM,SAAS,uBAAuB,QAAQ,SAAS;AAAA,IACrD,SAAS,QAAQ;AAAA,IACjB,KAAK,MAAM,QAAQ;AAAA,EACrB,CAAC;AACD,QAAM,aAAa;AAAA,IACjB,MAAM,sBAAsB,QAAQ,OAAO,EAAE,KAAK;AAAA,EACpD;AACA,QAAM,aAAa;AAAA,IACjB,KAAK,QAAQ;AAAA,IACb;AAAA,IACA,SAAS,kBAAkB,QAAQ,OAAO;AAAA,EAC5C;AAWA,QAAM,SAAS,QAAQ,IAAI,YAAY;AACvC,QAAM,gBAAgB,MAAM,KAAK,mBAAmB,QAAQ,SAAS;AAAA,IACnE,QAAQ,CAAC,aAAa,OAAO;AAAA,IAC7B,kBAAkB;AAAA,EACpB,CAAC;AAOD,QAAM,oBAAoB,MAAM,KAAK,mBAAmB,QAAQ,SAAS;AAAA,IACvE,QAAQ,CAAC,OAAO;AAAA,EAClB,CAAC;AACD,QAAM,iBAAiB,oBAAI,IAAY;AAEvC,aAAW,QAAQ,mBAAmB;AACpC,QAAI,OAAO,MAAM,SAAS,OAAO,mBAAmB,UAAU,OAAO;AACnE;AAAA,IACF;AACA,UAAM,UAAU,uBAAuB,MAAM,QAAQ,GAAG;AACxD,QAAI,QAAQ,KAAK;AACf,UAAI;AACF,cAAM,UAAU,MAAM,OAAO,MAAM,KAAK,QAAQ,QAAQ;AAAA,UACtD,QAAQ,QAAQ;AAAA,QAClB,CAAC;AACD,eAAO,mBAAmB,KAAK;AAAA,UAC7B,QAAQ,QAAQ;AAAA,UAChB,QAAQ,QAAQ,MAAM;AAAA,UACtB,QAAQ,QAAQ;AAAA,UAChB,iBAAiB,QAAQ;AAAA,QAC3B,CAAC;AACD,uBAAe,IAAI,QAAQ,MAAM;AAAA,MACnC,SAAS,OAAO;AACd,cAAM,UAAU,aAAa,KAAK;AAClC,eAAO;AAAA,UACL,0DAA0D,KAAK,MAAM,KAAK,OAAO;AAAA,QACnF;AACA,eAAO,OAAO,KAAK;AAAA,UACjB,QAAQ,KAAK;AAAA,UACb,OAAO;AAAA,UACP;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AAEA,aAAW,QAAQ,eAAe;AAChC,QAAI,eAAe,IAAI,KAAK,MAAM,EAAG;AACrC,QAAI,OAAO,MAAM,SAAS,OAAO,mBAAmB,UAAU,OAAO;AACnE;AAAA,IACF;AACA,UAAM,WAAW,MAAM,mBAAmB,MAAM,UAAU;AAC1D,QAAI,CAAC,SAAS,IAAK;AACnB,QAAI;AACF,YAAM,aAAa,MAAM,OAAO,eAAe,KAAK,QAAQ;AAAA,QAC1D,qBAAqB,mBAAmB,KAAK,OAAO;AAAA,MACtD,CAAC;AACD,YAAM,QAAQ,MAAM,iBAAiB;AAAA,QACnC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AACD,UAAI,CAAC,MAAO;AAAA,IACd,SAAS,OAAO;AACd,YAAM,UAAU,aAAa,KAAK;AAClC,aAAO;AAAA,QACL,4CAA4C,KAAK,MAAM,KAAK,OAAO;AAAA,MACrE;AACA,aAAO,OAAO,KAAK,EAAE,QAAQ,KAAK,QAAQ,OAAO,QAAQ,QAAQ,CAAC;AAAA,IACpE;AAAA,EACF;AAEA,SAAO;AACT;AAOA,eAAe,iBAAiB,MAOX;AACnB,QAAM,EAAE,SAAS,YAAY,UAAU,YAAY,OAAO,IAAI;AAC9D,UAAQ,WAAW,MAAM;AAAA,IACvB,KAAK,SAAS;AAIZ,aAAO;AAAA,IACT;AAAA,IACA,KAAK,WAAW;AAGd,aAAO,MAAM,KAAK;AAAA,QAChB,QAAQ,WAAW,KAAK;AAAA,QACxB,QAAQ,WAAW,KAAK,MAAM;AAAA,QAC9B,QAAQ,WAAW,UAAU,SAAS;AAAA,QACtC,iBAAiB,SAAS;AAAA,MAC5B,CAAC;AACD,aAAO;AAAA,IACT;AAAA,IACA,KAAK,mBAAmB;AACtB,aAAO,OAAO,KAAK;AAAA,QACjB,QAAQ,WAAW,KAAK;AAAA,QACxB,OAAO;AAAA,QACP,SAAS,WAAW,MAAM;AAAA,MAC5B,CAAC;AACD,aAAO;AAAA,IACT;AAAA,IACA,KAAK,SAAS;AACZ,YAAM,iBAAiB;AAAA,QACrB,WAAW;AAAA,QACX;AAAA,MACF;AAEA,YAAM,SAAS,uBAAuB,QAAQ,SAAS;AAAA,QACrD,SAAS,QAAQ;AAAA,QACjB,KAAK,MAAM,QAAQ;AAAA,MACrB,CAAC;AACD,YAAM,YACJ,mBAAmB,OACf,MAAM,OAAO,MAAM,WAAW,KAAK,QAAQ,QAAQ;AAAA,QACjD,UAAU;AAAA,MACZ,CAAC,IACD,WAAW;AACjB,aAAO,MAAM,KAAK;AAAA,QAChB,QAAQ,UAAU;AAAA,QAClB,QAAQ,UAAU,MAAM;AAAA,QACxB,QAAQ,SAAS;AAAA,QACjB,iBAAiB,SAAS;AAAA,MAC5B,CAAC;AACD,UAAI;AACF,cAAM,WAAW,MAAM,4BAA4B;AAAA,UACjD,SAAS,QAAQ;AAAA,UACjB,QAAQ;AAAA,QACV,CAAC;AACD,YAAI,SAAU,QAAO,eAAe,KAAK,QAAQ;AAAA,MACnD,SAAS,OAAO;AACd,cAAM,UAAU,aAAa,KAAK;AAClC,eAAO;AAAA,UACL,6DAA6D,WAAW,KAAK,MAAM,KAAK,OAAO;AAAA,QACjG;AACA,eAAO,OAAO,KAAK;AAAA,UACjB,QAAQ,WAAW,KAAK;AAAA,UACxB,OAAO;AAAA,UACP;AAAA,QACF,CAAC;AAAA,MACH;AACA,aAAO;AAAA,IACT;AAAA,IACA,SAAS;AACP,YAAM,cAAqB;AAC3B,aAAO;AAAA,IACT;AAAA,EACF;AACF;","names":[]}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Long-lived ScheduledTask runner singleton.
|
|
3
|
+
*
|
|
4
|
+
* Before this service existed, `processDueScheduledTasks` called
|
|
5
|
+
* `createRuntimeScheduledTaskRunner` on every tick (every 60s). That call
|
|
6
|
+
* rebuilds all five typed registries (gates, completion-checks, ladders,
|
|
7
|
+
* anchors, consolidation), refreshes the channel-keys snapshot, and wires
|
|
8
|
+
* a fresh `createProductionScheduledTaskDispatcher`. None of that work
|
|
9
|
+
* varies tick-to-tick — the registries are populated at plugin init and
|
|
10
|
+
* stay stable. Rebuilding them on a 1-minute cadence was wasteful and
|
|
11
|
+
* inflated per-tick latency.
|
|
12
|
+
*
|
|
13
|
+
* The service builds the runner ONCE per runtime when
|
|
14
|
+
* `ScheduledTaskRunnerService.start` is invoked by the elizaOS Service
|
|
15
|
+
* lifecycle, caches it on the instance, and hands it out via
|
|
16
|
+
* `getScheduledTaskRunner`. The `now` clock and `agentId` are still
|
|
17
|
+
* accepted per call so the tick can pass its own `request.now` and the
|
|
18
|
+
* scheduler stays deterministic in tests.
|
|
19
|
+
*
|
|
20
|
+
* Registration: see `plugin.ts` → `services: [...,
|
|
21
|
+
* ScheduledTaskRunnerService]`.
|
|
22
|
+
*/
|
|
23
|
+
import { type IAgentRuntime, Service } from "@elizaos/core";
|
|
24
|
+
import type { ScheduledTaskRunnerHandle } from "@elizaos/plugin-scheduling";
|
|
25
|
+
/**
|
|
26
|
+
* Options accepted by `getScheduledTaskRunner`. The agentId always comes
|
|
27
|
+
* from the caller (the tick passes the agent's own id; routes / actions
|
|
28
|
+
* read it off `runtime.agentId`). The `now` override stays per-call so
|
|
29
|
+
* tests and time-travel scenarios get the clock they expect. Everything
|
|
30
|
+
* else lives on the cached runner.
|
|
31
|
+
*/
|
|
32
|
+
export interface GetScheduledTaskRunnerOptions {
|
|
33
|
+
agentId: string;
|
|
34
|
+
now?: () => Date;
|
|
35
|
+
}
|
|
36
|
+
export declare class ScheduledTaskRunnerService extends Service {
|
|
37
|
+
static serviceType: "lifeops_scheduled_task_runner";
|
|
38
|
+
capabilityDescription: string;
|
|
39
|
+
private readonly runners;
|
|
40
|
+
stop(): Promise<void>;
|
|
41
|
+
static start(runtime: IAgentRuntime): Promise<ScheduledTaskRunnerService>;
|
|
42
|
+
/**
|
|
43
|
+
* Return the cached runner for `(agentId, optional now-override)`. The
|
|
44
|
+
* first call constructs the runner via
|
|
45
|
+
* {@link createRuntimeScheduledTaskRunner} (one-time registry/dispatcher
|
|
46
|
+
* wiring); subsequent calls hit the in-memory cache.
|
|
47
|
+
*/
|
|
48
|
+
getRunner(opts: GetScheduledTaskRunnerOptions): ScheduledTaskRunnerHandle;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Module-level accessor. Resolves the service via the runtime's service
|
|
52
|
+
* registry and returns its cached runner. Throws when the service is not
|
|
53
|
+
* registered — that is a plugin-wiring bug, not a runtime fallback case.
|
|
54
|
+
*
|
|
55
|
+
* Used by:
|
|
56
|
+
* - `scheduled-task/scheduler.ts` (per-tick `fireWithResult` path)
|
|
57
|
+
* - the action and route call sites listed in `runtime-wiring.ts` that
|
|
58
|
+
* previously called `createRuntimeScheduledTaskRunner` directly.
|
|
59
|
+
*/
|
|
60
|
+
export declare function getScheduledTaskRunner(runtime: IAgentRuntime, opts: GetScheduledTaskRunnerOptions): ScheduledTaskRunnerHandle;
|
|
61
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/lifeops/scheduled-task/service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,KAAK,aAAa,EAAU,OAAO,EAAE,MAAM,eAAe,CAAC;AAEpE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAQ5E;;;;;;GAMG;AACH,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,qBAAa,0BAA2B,SAAQ,OAAO;IACrD,OAAgB,WAAW,kCAAgB;IAElC,qBAAqB,SAC4L;IAO1N,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgD;IAEzD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;WAId,KAAK,CACzB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,0BAA0B,CAAC;IAQtC;;;;;OAKG;IACH,SAAS,CAAC,IAAI,EAAE,6BAA6B,GAAG,yBAAyB;CAmB1E;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,6BAA6B,GAClC,yBAAyB,CAW3B"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { logger, Service } from "@elizaos/core";
|
|
2
|
+
import {
|
|
3
|
+
createRuntimeScheduledTaskRunner
|
|
4
|
+
} from "./runtime-wiring.js";
|
|
5
|
+
const SERVICE_TYPE = "lifeops_scheduled_task_runner";
|
|
6
|
+
class ScheduledTaskRunnerService extends Service {
|
|
7
|
+
static serviceType = SERVICE_TYPE;
|
|
8
|
+
capabilityDescription = "Long-lived ScheduledTask runner. Hosts gate/completion-check/ladder/anchor/consolidation registries built once at plugin start; the scheduler tick reads the cached runner instead of reconstructing it every minute.";
|
|
9
|
+
// The runner is keyed by `(agentId, nowOverridePresent)` so callers that
|
|
10
|
+
// pass distinct `now` overrides get their own handle. In practice the
|
|
11
|
+
// production tick always passes the same `now` function reference, and
|
|
12
|
+
// routes / actions never override it — so the cache typically holds one
|
|
13
|
+
// entry per runtime.
|
|
14
|
+
runners = /* @__PURE__ */ new Map();
|
|
15
|
+
async stop() {
|
|
16
|
+
this.runners.clear();
|
|
17
|
+
}
|
|
18
|
+
static async start(runtime) {
|
|
19
|
+
logger.debug(
|
|
20
|
+
{ src: SERVICE_TYPE, agentId: runtime.agentId },
|
|
21
|
+
"ScheduledTaskRunnerService started"
|
|
22
|
+
);
|
|
23
|
+
return new ScheduledTaskRunnerService(runtime);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Return the cached runner for `(agentId, optional now-override)`. The
|
|
27
|
+
* first call constructs the runner via
|
|
28
|
+
* {@link createRuntimeScheduledTaskRunner} (one-time registry/dispatcher
|
|
29
|
+
* wiring); subsequent calls hit the in-memory cache.
|
|
30
|
+
*/
|
|
31
|
+
getRunner(opts) {
|
|
32
|
+
const cacheKey = `${opts.agentId}::${opts.now ? "now-override" : "system-clock"}`;
|
|
33
|
+
const cached = this.runners.get(cacheKey);
|
|
34
|
+
if (cached) return cached;
|
|
35
|
+
const runtime = this.runtime;
|
|
36
|
+
if (!runtime) {
|
|
37
|
+
throw new Error(
|
|
38
|
+
"ScheduledTaskRunnerService: runtime is not bound; was the service started?"
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
const runnerOpts = {
|
|
42
|
+
runtime,
|
|
43
|
+
agentId: opts.agentId
|
|
44
|
+
};
|
|
45
|
+
if (opts.now) runnerOpts.now = opts.now;
|
|
46
|
+
const runner = createRuntimeScheduledTaskRunner(runnerOpts);
|
|
47
|
+
this.runners.set(cacheKey, runner);
|
|
48
|
+
return runner;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
function getScheduledTaskRunner(runtime, opts) {
|
|
52
|
+
const service = runtime.getService(SERVICE_TYPE);
|
|
53
|
+
if (!service) {
|
|
54
|
+
throw new Error(
|
|
55
|
+
`[${SERVICE_TYPE}] ScheduledTaskRunnerService is not registered on this runtime. Add it to the lifeops plugin's services array.`
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
return service.getRunner(opts);
|
|
59
|
+
}
|
|
60
|
+
export {
|
|
61
|
+
ScheduledTaskRunnerService,
|
|
62
|
+
getScheduledTaskRunner
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lifeops/scheduled-task/service.ts"],"sourcesContent":["/**\n * Long-lived ScheduledTask runner singleton.\n *\n * Before this service existed, `processDueScheduledTasks` called\n * `createRuntimeScheduledTaskRunner` on every tick (every 60s). That call\n * rebuilds all five typed registries (gates, completion-checks, ladders,\n * anchors, consolidation), refreshes the channel-keys snapshot, and wires\n * a fresh `createProductionScheduledTaskDispatcher`. None of that work\n * varies tick-to-tick — the registries are populated at plugin init and\n * stay stable. Rebuilding them on a 1-minute cadence was wasteful and\n * inflated per-tick latency.\n *\n * The service builds the runner ONCE per runtime when\n * `ScheduledTaskRunnerService.start` is invoked by the elizaOS Service\n * lifecycle, caches it on the instance, and hands it out via\n * `getScheduledTaskRunner`. The `now` clock and `agentId` are still\n * accepted per call so the tick can pass its own `request.now` and the\n * scheduler stays deterministic in tests.\n *\n * Registration: see `plugin.ts` → `services: [...,\n * ScheduledTaskRunnerService]`.\n */\n\nimport { type IAgentRuntime, logger, Service } from \"@elizaos/core\";\n\nimport type { ScheduledTaskRunnerHandle } from \"@elizaos/plugin-scheduling\";\nimport {\n type CreateRuntimeRunnerOptions,\n createRuntimeScheduledTaskRunner,\n} from \"./runtime-wiring.js\";\n\nconst SERVICE_TYPE = \"lifeops_scheduled_task_runner\" as const;\n\n/**\n * Options accepted by `getScheduledTaskRunner`. The agentId always comes\n * from the caller (the tick passes the agent's own id; routes / actions\n * read it off `runtime.agentId`). The `now` override stays per-call so\n * tests and time-travel scenarios get the clock they expect. Everything\n * else lives on the cached runner.\n */\nexport interface GetScheduledTaskRunnerOptions {\n agentId: string;\n now?: () => Date;\n}\n\nexport class ScheduledTaskRunnerService extends Service {\n static override serviceType = SERVICE_TYPE;\n\n override capabilityDescription =\n \"Long-lived ScheduledTask runner. Hosts gate/completion-check/ladder/anchor/consolidation registries built once at plugin start; the scheduler tick reads the cached runner instead of reconstructing it every minute.\";\n\n // The runner is keyed by `(agentId, nowOverridePresent)` so callers that\n // pass distinct `now` overrides get their own handle. In practice the\n // production tick always passes the same `now` function reference, and\n // routes / actions never override it — so the cache typically holds one\n // entry per runtime.\n private readonly runners = new Map<string, ScheduledTaskRunnerHandle>();\n\n override async stop(): Promise<void> {\n this.runners.clear();\n }\n\n static override async start(\n runtime: IAgentRuntime,\n ): Promise<ScheduledTaskRunnerService> {\n logger.debug(\n { src: SERVICE_TYPE, agentId: runtime.agentId },\n \"ScheduledTaskRunnerService started\",\n );\n return new ScheduledTaskRunnerService(runtime);\n }\n\n /**\n * Return the cached runner for `(agentId, optional now-override)`. The\n * first call constructs the runner via\n * {@link createRuntimeScheduledTaskRunner} (one-time registry/dispatcher\n * wiring); subsequent calls hit the in-memory cache.\n */\n getRunner(opts: GetScheduledTaskRunnerOptions): ScheduledTaskRunnerHandle {\n const cacheKey = `${opts.agentId}::${opts.now ? \"now-override\" : \"system-clock\"}`;\n const cached = this.runners.get(cacheKey);\n if (cached) return cached;\n const runtime = this.runtime;\n if (!runtime) {\n throw new Error(\n \"ScheduledTaskRunnerService: runtime is not bound; was the service started?\",\n );\n }\n const runnerOpts: CreateRuntimeRunnerOptions = {\n runtime,\n agentId: opts.agentId,\n };\n if (opts.now) runnerOpts.now = opts.now;\n const runner = createRuntimeScheduledTaskRunner(runnerOpts);\n this.runners.set(cacheKey, runner);\n return runner;\n }\n}\n\n/**\n * Module-level accessor. Resolves the service via the runtime's service\n * registry and returns its cached runner. Throws when the service is not\n * registered — that is a plugin-wiring bug, not a runtime fallback case.\n *\n * Used by:\n * - `scheduled-task/scheduler.ts` (per-tick `fireWithResult` path)\n * - the action and route call sites listed in `runtime-wiring.ts` that\n * previously called `createRuntimeScheduledTaskRunner` directly.\n */\nexport function getScheduledTaskRunner(\n runtime: IAgentRuntime,\n opts: GetScheduledTaskRunnerOptions,\n): ScheduledTaskRunnerHandle {\n const service = runtime.getService(SERVICE_TYPE) as\n | ScheduledTaskRunnerService\n | null\n | undefined;\n if (!service) {\n throw new Error(\n `[${SERVICE_TYPE}] ScheduledTaskRunnerService is not registered on this runtime. Add it to the lifeops plugin's services array.`,\n );\n }\n return service.getRunner(opts);\n}\n"],"mappings":"AAuBA,SAA6B,QAAQ,eAAe;AAGpD;AAAA,EAEE;AAAA,OACK;AAEP,MAAM,eAAe;AAcd,MAAM,mCAAmC,QAAQ;AAAA,EACtD,OAAgB,cAAc;AAAA,EAErB,wBACP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOe,UAAU,oBAAI,IAAuC;AAAA,EAEtE,MAAe,OAAsB;AACnC,SAAK,QAAQ,MAAM;AAAA,EACrB;AAAA,EAEA,aAAsB,MACpB,SACqC;AACrC,WAAO;AAAA,MACL,EAAE,KAAK,cAAc,SAAS,QAAQ,QAAQ;AAAA,MAC9C;AAAA,IACF;AACA,WAAO,IAAI,2BAA2B,OAAO;AAAA,EAC/C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,UAAU,MAAgE;AACxE,UAAM,WAAW,GAAG,KAAK,OAAO,KAAK,KAAK,MAAM,iBAAiB,cAAc;AAC/E,UAAM,SAAS,KAAK,QAAQ,IAAI,QAAQ;AACxC,QAAI,OAAQ,QAAO;AACnB,UAAM,UAAU,KAAK;AACrB,QAAI,CAAC,SAAS;AACZ,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AACA,UAAM,aAAyC;AAAA,MAC7C;AAAA,MACA,SAAS,KAAK;AAAA,IAChB;AACA,QAAI,KAAK,IAAK,YAAW,MAAM,KAAK;AACpC,UAAM,SAAS,iCAAiC,UAAU;AAC1D,SAAK,QAAQ,IAAI,UAAU,MAAM;AACjC,WAAO;AAAA,EACT;AACF;AAYO,SAAS,uBACd,SACA,MAC2B;AAC3B,QAAM,UAAU,QAAQ,WAAW,YAAY;AAI/C,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI;AAAA,MACR,IAAI,YAAY;AAAA,IAClB;AAAA,EACF;AACA,SAAO,QAAQ,UAAU,IAAI;AAC/B;","names":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { IAgentRuntime, UUID } from "@elizaos/core";
|
|
2
|
+
export declare const LIFEOPS_TASK_NAME: "LIFEOPS_SCHEDULER";
|
|
3
|
+
export declare const LIFEOPS_TASK_TAGS: readonly ["queue", "repeat", "lifeops"];
|
|
4
|
+
/** Base interval for the LifeOps scheduler polling loop. */
|
|
5
|
+
export declare const LIFEOPS_TASK_INTERVAL_MS = 60000;
|
|
6
|
+
/** Maximum deterministic jitter added per agent to avoid synchronized polls. */
|
|
7
|
+
export declare const LIFEOPS_TASK_JITTER_MS = 10000;
|
|
8
|
+
/**
|
|
9
|
+
* Detect a Postgres "relation does not exist" (42P01) error referencing a
|
|
10
|
+
* LifeOps-owned table (the `app_lifeops` schema). A persisted scheduler task
|
|
11
|
+
* can fire from the task queue on restart before this plugin's schema
|
|
12
|
+
* migration finishes, so the first tick may hit a not-yet-created table.
|
|
13
|
+
*/
|
|
14
|
+
export declare function isMissingLifeOpsRelationError(error: unknown): boolean;
|
|
15
|
+
export declare function rerunLifeOpsPluginMigrations(runtime: IAgentRuntime): Promise<void>;
|
|
16
|
+
export declare function resolveLifeOpsTaskIntervalMs(agentId: UUID): number;
|
|
17
|
+
export declare function ensureRuntimeAgentRecord(runtime: IAgentRuntime): Promise<void>;
|
|
18
|
+
export declare function ensureLifeOpsSchedulerTask(runtime: IAgentRuntime): Promise<UUID>;
|
|
19
|
+
//# sourceMappingURL=scheduler-task.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduler-task.d.ts","sourceRoot":"","sources":["../../src/lifeops/scheduler-task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAsB,IAAI,EAAE,MAAM,eAAe,CAAC;AAI7E,eAAO,MAAM,iBAAiB,EAAG,mBAA4B,CAAC;AAC9D,eAAO,MAAM,iBAAiB,yCAA0C,CAAC;AACzE,4DAA4D;AAC5D,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAC/C,gFAAgF;AAChF,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAyE7C;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAyCrE;AAED,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CAEf;AA6BD,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,IAAI,GAAG,MAAM,CAMlE;AAuDD,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CAmCf"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { logger, runPluginMigrations, stringToUuid } from "@elizaos/core";
|
|
2
|
+
import { readTwilioCredentialsFromEnv } from "@elizaos/plugin-phone/twilio";
|
|
3
|
+
const LIFEOPS_TASK_NAME = "LIFEOPS_SCHEDULER";
|
|
4
|
+
const LIFEOPS_TASK_TAGS = ["queue", "repeat", "lifeops"];
|
|
5
|
+
const LIFEOPS_TASK_INTERVAL_MS = 6e4;
|
|
6
|
+
const LIFEOPS_TASK_JITTER_MS = 1e4;
|
|
7
|
+
function isRecord(value) {
|
|
8
|
+
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
9
|
+
}
|
|
10
|
+
function isErrorWithCause(value) {
|
|
11
|
+
return Boolean(value) && typeof value === "object";
|
|
12
|
+
}
|
|
13
|
+
function isMissingTasksTableError(error) {
|
|
14
|
+
const queue = [error];
|
|
15
|
+
const seen = /* @__PURE__ */ new Set();
|
|
16
|
+
while (queue.length > 0) {
|
|
17
|
+
const current = queue.shift();
|
|
18
|
+
if (current === void 0 || seen.has(current)) {
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
seen.add(current);
|
|
22
|
+
if (current instanceof Error) {
|
|
23
|
+
if (current.message.includes('relation "tasks" does not exist')) {
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
if (current.cause !== void 0) {
|
|
27
|
+
queue.push(current.cause);
|
|
28
|
+
}
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
if (!isErrorWithCause(current)) {
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
if (typeof current.message === "string" && current.message.includes('relation "tasks" does not exist')) {
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
if (current.code === "42P01" && typeof current.query === "string" && current.query.includes('"tasks"')) {
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
if (current.cause !== void 0) {
|
|
41
|
+
queue.push(current.cause);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
function isMissingLifeOpsRelationError(error) {
|
|
47
|
+
const queue = [error];
|
|
48
|
+
const seen = /* @__PURE__ */ new Set();
|
|
49
|
+
while (queue.length > 0) {
|
|
50
|
+
const current = queue.shift();
|
|
51
|
+
if (current === void 0 || seen.has(current)) {
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
seen.add(current);
|
|
55
|
+
const message = current instanceof Error ? current.message : isErrorWithCause(current) && typeof current.message === "string" ? current.message : "";
|
|
56
|
+
if (message.includes("app_lifeops.") && message.includes("does not exist")) {
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
if (isErrorWithCause(current)) {
|
|
60
|
+
if (current.code === "42P01" && typeof current.query === "string" && current.query.includes("app_lifeops.")) {
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
if (current.cause !== void 0) {
|
|
64
|
+
queue.push(current.cause);
|
|
65
|
+
}
|
|
66
|
+
} else if (current instanceof Error && current.cause !== void 0) {
|
|
67
|
+
queue.push(current.cause);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
async function rerunLifeOpsPluginMigrations(runtime) {
|
|
73
|
+
await rerunPluginMigrations(runtime);
|
|
74
|
+
}
|
|
75
|
+
function isLifeOpsSchedulerTask(task) {
|
|
76
|
+
const metadata = isRecord(task.metadata) ? task.metadata : null;
|
|
77
|
+
const scheduler = metadata?.lifeopsScheduler;
|
|
78
|
+
return task.name === LIFEOPS_TASK_NAME && isRecord(scheduler) && scheduler.kind === "runtime_runner";
|
|
79
|
+
}
|
|
80
|
+
function buildSchedulerMetadata(agentId, current = null) {
|
|
81
|
+
const intervalMs = resolveLifeOpsTaskIntervalMs(agentId);
|
|
82
|
+
return {
|
|
83
|
+
...current ?? {},
|
|
84
|
+
updateInterval: intervalMs,
|
|
85
|
+
baseInterval: intervalMs,
|
|
86
|
+
blocking: true,
|
|
87
|
+
lifeopsScheduler: {
|
|
88
|
+
kind: "runtime_runner",
|
|
89
|
+
version: 1
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
function resolveLifeOpsTaskIntervalMs(agentId) {
|
|
94
|
+
let hash = 0;
|
|
95
|
+
for (let index = 0; index < agentId.length; index++) {
|
|
96
|
+
hash = hash * 31 + agentId.charCodeAt(index) >>> 0;
|
|
97
|
+
}
|
|
98
|
+
return LIFEOPS_TASK_INTERVAL_MS + hash % (LIFEOPS_TASK_JITTER_MS + 1);
|
|
99
|
+
}
|
|
100
|
+
async function rerunPluginMigrations(runtime) {
|
|
101
|
+
const runtimeWithPluginMigrations = runtime;
|
|
102
|
+
if (typeof runtimeWithPluginMigrations.runPluginMigrations === "function") {
|
|
103
|
+
await runtimeWithPluginMigrations.runPluginMigrations();
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
await runPluginMigrations(runtime);
|
|
107
|
+
}
|
|
108
|
+
async function waitForDbReady(runtime, maxAttempts = 12, delayMs = 500) {
|
|
109
|
+
let lastError = null;
|
|
110
|
+
let migrationRepairAttempts = 0;
|
|
111
|
+
for (let i = 0; i < maxAttempts; i++) {
|
|
112
|
+
try {
|
|
113
|
+
await runtime.getTasks({
|
|
114
|
+
agentIds: [runtime.agentId],
|
|
115
|
+
tags: ["__db_ready_probe__"]
|
|
116
|
+
});
|
|
117
|
+
return;
|
|
118
|
+
} catch (error) {
|
|
119
|
+
lastError = error;
|
|
120
|
+
if (isMissingTasksTableError(error) && migrationRepairAttempts < 2) {
|
|
121
|
+
migrationRepairAttempts += 1;
|
|
122
|
+
await rerunPluginMigrations(runtime);
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
if (i < maxAttempts - 1) {
|
|
126
|
+
await new Promise((r) => setTimeout(r, delayMs));
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
throw lastError instanceof Error ? lastError : new Error("[lifeops] database adapter did not become ready");
|
|
131
|
+
}
|
|
132
|
+
let credentialStatusLogged = false;
|
|
133
|
+
function logCredentialStatus() {
|
|
134
|
+
if (credentialStatusLogged) return;
|
|
135
|
+
credentialStatusLogged = true;
|
|
136
|
+
const hasTwilio = Boolean(readTwilioCredentialsFromEnv());
|
|
137
|
+
if (!hasTwilio) {
|
|
138
|
+
logger.info(
|
|
139
|
+
"[lifeops] Twilio credentials not configured \u2014 SMS and voice reminders will be blocked. Set TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN, and TWILIO_PHONE_NUMBER to enable."
|
|
140
|
+
);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
async function ensureRuntimeAgentRecord(runtime) {
|
|
144
|
+
const existing = await runtime.getAgent(runtime.agentId);
|
|
145
|
+
if (existing) {
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
await runtime.createAgent({
|
|
149
|
+
...runtime.character,
|
|
150
|
+
id: runtime.agentId
|
|
151
|
+
});
|
|
152
|
+
const hydrated = await runtime.getAgent(runtime.agentId);
|
|
153
|
+
if (!hydrated) {
|
|
154
|
+
throw new Error(
|
|
155
|
+
`[lifeops] runtime agent ${runtime.agentId} is missing from the agents table`
|
|
156
|
+
);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
async function ensureLifeOpsSchedulerTask(runtime) {
|
|
160
|
+
await waitForDbReady(runtime);
|
|
161
|
+
await ensureRuntimeAgentRecord(runtime);
|
|
162
|
+
logCredentialStatus();
|
|
163
|
+
const tasks = await runtime.getTasks({
|
|
164
|
+
agentIds: [runtime.agentId],
|
|
165
|
+
tags: [...LIFEOPS_TASK_TAGS]
|
|
166
|
+
});
|
|
167
|
+
const existing = tasks.find(isLifeOpsSchedulerTask);
|
|
168
|
+
const metadata = buildSchedulerMetadata(
|
|
169
|
+
runtime.agentId,
|
|
170
|
+
isRecord(existing?.metadata) ? existing.metadata : null
|
|
171
|
+
);
|
|
172
|
+
if (existing?.id) {
|
|
173
|
+
await runtime.updateTask(existing.id, {
|
|
174
|
+
description: "Process life-ops reminders and scheduled workflows",
|
|
175
|
+
metadata
|
|
176
|
+
});
|
|
177
|
+
return existing.id;
|
|
178
|
+
}
|
|
179
|
+
const autonomy = runtime.getService("AUTONOMY");
|
|
180
|
+
const roomId = autonomy?.getAutonomousRoomId?.() ?? stringToUuid(`lifeops-scheduler-room-${runtime.agentId}`);
|
|
181
|
+
return runtime.createTask({
|
|
182
|
+
name: LIFEOPS_TASK_NAME,
|
|
183
|
+
description: "Process life-ops reminders and scheduled workflows",
|
|
184
|
+
roomId,
|
|
185
|
+
tags: [...LIFEOPS_TASK_TAGS],
|
|
186
|
+
metadata,
|
|
187
|
+
dueAt: Date.now()
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
export {
|
|
191
|
+
LIFEOPS_TASK_INTERVAL_MS,
|
|
192
|
+
LIFEOPS_TASK_JITTER_MS,
|
|
193
|
+
LIFEOPS_TASK_NAME,
|
|
194
|
+
LIFEOPS_TASK_TAGS,
|
|
195
|
+
ensureLifeOpsSchedulerTask,
|
|
196
|
+
ensureRuntimeAgentRecord,
|
|
197
|
+
isMissingLifeOpsRelationError,
|
|
198
|
+
rerunLifeOpsPluginMigrations,
|
|
199
|
+
resolveLifeOpsTaskIntervalMs
|
|
200
|
+
};
|
|
201
|
+
//# sourceMappingURL=scheduler-task.js.map
|