@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,321 @@
|
|
|
1
|
+
import crypto from "node:crypto";
|
|
2
|
+
import { executeRawSql, parseJsonRecord, sqlText, toText } from "./sql.js";
|
|
3
|
+
const LIFE_INTENT_KINDS = [
|
|
4
|
+
"user_action_requested",
|
|
5
|
+
"routine_reminder",
|
|
6
|
+
"attention_request",
|
|
7
|
+
"state_sync"
|
|
8
|
+
];
|
|
9
|
+
const LIFE_INTENT_TARGETS = [
|
|
10
|
+
"all",
|
|
11
|
+
"desktop",
|
|
12
|
+
"mobile",
|
|
13
|
+
"specific"
|
|
14
|
+
];
|
|
15
|
+
const LIFE_INTENT_PRIORITIES = [
|
|
16
|
+
"low",
|
|
17
|
+
"medium",
|
|
18
|
+
"high",
|
|
19
|
+
"urgent"
|
|
20
|
+
];
|
|
21
|
+
function assertKnownKind(kind) {
|
|
22
|
+
if (LIFE_INTENT_KINDS.includes(kind)) {
|
|
23
|
+
return kind;
|
|
24
|
+
}
|
|
25
|
+
throw new Error(`unknown intent kind: ${kind}`);
|
|
26
|
+
}
|
|
27
|
+
function assertKnownTarget(target) {
|
|
28
|
+
if (LIFE_INTENT_TARGETS.includes(target)) {
|
|
29
|
+
return target;
|
|
30
|
+
}
|
|
31
|
+
throw new Error(`unknown intent target: ${target}`);
|
|
32
|
+
}
|
|
33
|
+
function assertKnownPriority(priority) {
|
|
34
|
+
if (LIFE_INTENT_PRIORITIES.includes(priority)) {
|
|
35
|
+
return priority;
|
|
36
|
+
}
|
|
37
|
+
throw new Error(`unknown intent priority: ${priority}`);
|
|
38
|
+
}
|
|
39
|
+
function rowToIntent(row) {
|
|
40
|
+
const targetDeviceId = toText(row.target_device_id, "");
|
|
41
|
+
const actionUrl = toText(row.action_url, "");
|
|
42
|
+
const expiresAt = toText(row.expires_at, "");
|
|
43
|
+
const acknowledgedAt = toText(row.acknowledged_at, "");
|
|
44
|
+
return {
|
|
45
|
+
id: toText(row.id),
|
|
46
|
+
agentId: toText(row.agent_id),
|
|
47
|
+
kind: assertKnownKind(toText(row.kind)),
|
|
48
|
+
target: assertKnownTarget(toText(row.target)),
|
|
49
|
+
targetDeviceId: targetDeviceId.length > 0 ? targetDeviceId : void 0,
|
|
50
|
+
title: toText(row.title),
|
|
51
|
+
body: toText(row.body),
|
|
52
|
+
actionUrl: actionUrl.length > 0 ? actionUrl : void 0,
|
|
53
|
+
priority: assertKnownPriority(toText(row.priority)),
|
|
54
|
+
createdAt: toText(row.created_at),
|
|
55
|
+
expiresAt: expiresAt.length > 0 ? expiresAt : void 0,
|
|
56
|
+
acknowledgedAt: acknowledgedAt.length > 0 ? acknowledgedAt : void 0,
|
|
57
|
+
metadata: parseJsonRecord(row.metadata_json)
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
function isRecord(value) {
|
|
61
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
62
|
+
}
|
|
63
|
+
function readMetadataString(metadata, keys) {
|
|
64
|
+
let current = metadata;
|
|
65
|
+
for (const key of keys) {
|
|
66
|
+
if (!isRecord(current)) {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
current = current[key];
|
|
70
|
+
}
|
|
71
|
+
return typeof current === "string" && current.trim().length > 0 ? current.trim() : null;
|
|
72
|
+
}
|
|
73
|
+
function readMetadataNumber(metadata, keys) {
|
|
74
|
+
let current = metadata;
|
|
75
|
+
for (const key of keys) {
|
|
76
|
+
if (!isRecord(current)) {
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
current = current[key];
|
|
80
|
+
}
|
|
81
|
+
if (typeof current === "number" && Number.isFinite(current)) {
|
|
82
|
+
return current;
|
|
83
|
+
}
|
|
84
|
+
if (typeof current === "string") {
|
|
85
|
+
const parsed = Number(current);
|
|
86
|
+
if (Number.isFinite(parsed)) {
|
|
87
|
+
return parsed;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
function extractIntentLadderKey(metadata) {
|
|
93
|
+
return readMetadataString(metadata, ["ladderId"]) ?? readMetadataString(metadata, ["ladderKey"]) ?? readMetadataString(metadata, ["payload", "ladderId"]) ?? readMetadataString(metadata, ["payload", "ladderKey"]);
|
|
94
|
+
}
|
|
95
|
+
function extractIntentLadderRung(metadata) {
|
|
96
|
+
return readMetadataNumber(metadata, ["rungIndex"]) ?? readMetadataNumber(metadata, ["payload", "rungIndex"]);
|
|
97
|
+
}
|
|
98
|
+
async function readPendingIntentRow(runtime, intentId) {
|
|
99
|
+
const selectSql = `
|
|
100
|
+
SELECT id, created_at, metadata_json
|
|
101
|
+
FROM app_lifeops.life_intents
|
|
102
|
+
WHERE agent_id = ${sqlText(runtime.agentId)}
|
|
103
|
+
AND id = ${sqlText(intentId)}
|
|
104
|
+
AND acknowledged_at IS NULL
|
|
105
|
+
LIMIT 1`;
|
|
106
|
+
const rows = await executeRawSql(runtime, selectSql);
|
|
107
|
+
const row = rows[0];
|
|
108
|
+
if (!row) {
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
return {
|
|
112
|
+
id: toText(row.id),
|
|
113
|
+
createdAt: toText(row.created_at),
|
|
114
|
+
metadata: parseJsonRecord(row.metadata_json)
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
async function suppressPendingLadderRungs(runtime, currentIntent, deviceId, acknowledgedAt) {
|
|
118
|
+
const ladderKey = extractIntentLadderKey(currentIntent.metadata);
|
|
119
|
+
if (!ladderKey) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
const currentRung = extractIntentLadderRung(currentIntent.metadata);
|
|
123
|
+
const selectSql = `
|
|
124
|
+
SELECT id, created_at, metadata_json
|
|
125
|
+
FROM app_lifeops.life_intents
|
|
126
|
+
WHERE agent_id = ${sqlText(runtime.agentId)}
|
|
127
|
+
AND acknowledged_at IS NULL
|
|
128
|
+
AND id <> ${sqlText(currentIntent.id)}`;
|
|
129
|
+
const rows = await executeRawSql(runtime, selectSql);
|
|
130
|
+
const relatedIds = rows.map((row) => ({
|
|
131
|
+
id: toText(row.id),
|
|
132
|
+
createdAt: toText(row.created_at),
|
|
133
|
+
metadata: parseJsonRecord(row.metadata_json)
|
|
134
|
+
})).filter((row) => {
|
|
135
|
+
if (extractIntentLadderKey(row.metadata) !== ladderKey) {
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
const candidateRung = extractIntentLadderRung(row.metadata);
|
|
139
|
+
if (currentRung !== null && candidateRung !== null) {
|
|
140
|
+
return candidateRung > currentRung;
|
|
141
|
+
}
|
|
142
|
+
if (currentRung !== null) {
|
|
143
|
+
return true;
|
|
144
|
+
}
|
|
145
|
+
return row.createdAt >= currentIntent.createdAt;
|
|
146
|
+
}).map((row) => row.id);
|
|
147
|
+
if (relatedIds.length === 0) {
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
const updateSql = `
|
|
151
|
+
UPDATE app_lifeops.life_intents
|
|
152
|
+
SET acknowledged_at = ${sqlText(acknowledgedAt)},
|
|
153
|
+
acknowledged_by = ${sqlText(deviceId)}
|
|
154
|
+
WHERE agent_id = ${sqlText(runtime.agentId)}
|
|
155
|
+
AND acknowledged_at IS NULL
|
|
156
|
+
AND id IN (${relatedIds.map((id) => sqlText(id)).join(", ")})`;
|
|
157
|
+
await executeRawSql(runtime, updateSql);
|
|
158
|
+
}
|
|
159
|
+
async function broadcastIntent(runtime, input) {
|
|
160
|
+
const kind = assertKnownKind(input.kind);
|
|
161
|
+
const target = assertKnownTarget(input.target ?? "all");
|
|
162
|
+
if (target === "specific" && !input.targetDeviceId) {
|
|
163
|
+
throw new Error("targetDeviceId is required when target = 'specific'");
|
|
164
|
+
}
|
|
165
|
+
const priority = assertKnownPriority(input.priority ?? "medium");
|
|
166
|
+
const id = crypto.randomUUID();
|
|
167
|
+
const createdAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
168
|
+
const expiresAt = typeof input.expiresInMinutes === "number" && input.expiresInMinutes > 0 ? new Date(Date.now() + input.expiresInMinutes * 6e4).toISOString() : null;
|
|
169
|
+
const metadata = input.metadata ?? {};
|
|
170
|
+
const metadataJson = JSON.stringify(metadata);
|
|
171
|
+
const targetDeviceId = target === "specific" ? input.targetDeviceId ?? null : null;
|
|
172
|
+
const insertSql = `
|
|
173
|
+
INSERT INTO app_lifeops.life_intents (
|
|
174
|
+
id, agent_id, kind, target, target_device_id,
|
|
175
|
+
title, body, action_url, priority,
|
|
176
|
+
created_at, expires_at, acknowledged_at, acknowledged_by, metadata_json
|
|
177
|
+
) VALUES (
|
|
178
|
+
${sqlText(id)},
|
|
179
|
+
${sqlText(runtime.agentId)},
|
|
180
|
+
${sqlText(kind)},
|
|
181
|
+
${sqlText(target)},
|
|
182
|
+
${sqlText(targetDeviceId)},
|
|
183
|
+
${sqlText(input.title)},
|
|
184
|
+
${sqlText(input.body)},
|
|
185
|
+
${sqlText(input.actionUrl ?? null)},
|
|
186
|
+
${sqlText(priority)},
|
|
187
|
+
${sqlText(createdAt)},
|
|
188
|
+
${sqlText(expiresAt)},
|
|
189
|
+
NULL,
|
|
190
|
+
NULL,
|
|
191
|
+
${sqlText(metadataJson)}
|
|
192
|
+
)`;
|
|
193
|
+
await executeRawSql(runtime, insertSql);
|
|
194
|
+
return {
|
|
195
|
+
id,
|
|
196
|
+
agentId: runtime.agentId,
|
|
197
|
+
kind,
|
|
198
|
+
target,
|
|
199
|
+
targetDeviceId: targetDeviceId ?? void 0,
|
|
200
|
+
title: input.title,
|
|
201
|
+
body: input.body,
|
|
202
|
+
actionUrl: input.actionUrl,
|
|
203
|
+
priority,
|
|
204
|
+
createdAt,
|
|
205
|
+
expiresAt: expiresAt ?? void 0,
|
|
206
|
+
metadata
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
async function receivePendingIntents(runtime, opts) {
|
|
210
|
+
const device = opts?.device;
|
|
211
|
+
if (device !== void 0) {
|
|
212
|
+
assertKnownTarget(device);
|
|
213
|
+
}
|
|
214
|
+
const limit = typeof opts?.limit === "number" && opts.limit > 0 ? Math.min(Math.trunc(opts.limit), 500) : 100;
|
|
215
|
+
const nowIso = (/* @__PURE__ */ new Date()).toISOString();
|
|
216
|
+
const deviceFilter = [`target = 'all'`];
|
|
217
|
+
if (device === "desktop" || device === "mobile") {
|
|
218
|
+
deviceFilter.push(`target = ${sqlText(device)}`);
|
|
219
|
+
}
|
|
220
|
+
if (opts?.deviceId) {
|
|
221
|
+
deviceFilter.push(
|
|
222
|
+
`(target = 'specific' AND target_device_id = ${sqlText(opts.deviceId)})`
|
|
223
|
+
);
|
|
224
|
+
}
|
|
225
|
+
const selectSql = `
|
|
226
|
+
SELECT id, agent_id, kind, target, target_device_id,
|
|
227
|
+
title, body, action_url, priority,
|
|
228
|
+
created_at, expires_at, acknowledged_at, metadata_json
|
|
229
|
+
FROM app_lifeops.life_intents
|
|
230
|
+
WHERE agent_id = ${sqlText(runtime.agentId)}
|
|
231
|
+
AND acknowledged_at IS NULL
|
|
232
|
+
AND (expires_at IS NULL OR expires_at > ${sqlText(nowIso)})
|
|
233
|
+
AND (${deviceFilter.join(" OR ")})
|
|
234
|
+
ORDER BY created_at ASC
|
|
235
|
+
LIMIT ${limit}`;
|
|
236
|
+
const rows = await executeRawSql(runtime, selectSql);
|
|
237
|
+
return rows.map(rowToIntent);
|
|
238
|
+
}
|
|
239
|
+
async function acknowledgeIntent(runtime, intentId, deviceId) {
|
|
240
|
+
if (!intentId) throw new Error("intentId is required");
|
|
241
|
+
if (!deviceId) throw new Error("deviceId is required");
|
|
242
|
+
const currentIntent = await readPendingIntentRow(runtime, intentId);
|
|
243
|
+
const nowIso = (/* @__PURE__ */ new Date()).toISOString();
|
|
244
|
+
const updateSql = `
|
|
245
|
+
UPDATE app_lifeops.life_intents
|
|
246
|
+
SET acknowledged_at = ${sqlText(nowIso)},
|
|
247
|
+
acknowledged_by = ${sqlText(deviceId)}
|
|
248
|
+
WHERE id = ${sqlText(intentId)}
|
|
249
|
+
AND agent_id = ${sqlText(runtime.agentId)}
|
|
250
|
+
AND acknowledged_at IS NULL`;
|
|
251
|
+
await executeRawSql(runtime, updateSql);
|
|
252
|
+
if (currentIntent) {
|
|
253
|
+
await suppressPendingLadderRungs(runtime, currentIntent, deviceId, nowIso);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
async function pruneExpiredIntents(runtime) {
|
|
257
|
+
const nowIso = (/* @__PURE__ */ new Date()).toISOString();
|
|
258
|
+
const countSql = `
|
|
259
|
+
SELECT COUNT(*) AS cnt FROM app_lifeops.life_intents
|
|
260
|
+
WHERE agent_id = ${sqlText(runtime.agentId)}
|
|
261
|
+
AND expires_at IS NOT NULL
|
|
262
|
+
AND expires_at <= ${sqlText(nowIso)}`;
|
|
263
|
+
const countRows = await executeRawSql(runtime, countSql);
|
|
264
|
+
const cntRaw = countRows[0]?.cnt ?? countRows[0]?.count ?? 0;
|
|
265
|
+
const pruned = Number(cntRaw) || 0;
|
|
266
|
+
const deleteSql = `
|
|
267
|
+
DELETE FROM app_lifeops.life_intents
|
|
268
|
+
WHERE agent_id = ${sqlText(runtime.agentId)}
|
|
269
|
+
AND expires_at IS NOT NULL
|
|
270
|
+
AND expires_at <= ${sqlText(nowIso)}`;
|
|
271
|
+
await executeRawSql(runtime, deleteSql);
|
|
272
|
+
return { pruned };
|
|
273
|
+
}
|
|
274
|
+
async function escalateUnacknowledgedIntents(runtime, opts) {
|
|
275
|
+
const threshold = opts?.thresholdMinutes ?? 5;
|
|
276
|
+
const cutoffTime = new Date(Date.now() - threshold * 6e4).toISOString();
|
|
277
|
+
const selectSql = `
|
|
278
|
+
SELECT id, agent_id, kind, target, target_device_id,
|
|
279
|
+
title, body, action_url, priority,
|
|
280
|
+
created_at, expires_at, acknowledged_at, metadata_json
|
|
281
|
+
FROM app_lifeops.life_intents
|
|
282
|
+
WHERE agent_id = ${sqlText(runtime.agentId)}
|
|
283
|
+
AND target = 'desktop'
|
|
284
|
+
AND acknowledged_at IS NULL
|
|
285
|
+
AND created_at <= ${sqlText(cutoffTime)}
|
|
286
|
+
AND (expires_at IS NULL OR expires_at > ${sqlText((/* @__PURE__ */ new Date()).toISOString())})`;
|
|
287
|
+
const rows = await executeRawSql(runtime, selectSql);
|
|
288
|
+
const unacknowledgedIntents = rows.map(rowToIntent);
|
|
289
|
+
let escalated = 0;
|
|
290
|
+
for (const intent of unacknowledgedIntents) {
|
|
291
|
+
await acknowledgeIntent(runtime, intent.id, "system-escalator");
|
|
292
|
+
const escalatedMetadata = {
|
|
293
|
+
...intent.metadata || {},
|
|
294
|
+
escalatedFrom: intent.id,
|
|
295
|
+
escalatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
296
|
+
};
|
|
297
|
+
await broadcastIntent(runtime, {
|
|
298
|
+
kind: intent.kind,
|
|
299
|
+
target: "mobile",
|
|
300
|
+
title: `[Escalated] ${intent.title}`,
|
|
301
|
+
body: intent.body,
|
|
302
|
+
actionUrl: intent.actionUrl,
|
|
303
|
+
priority: intent.priority === "urgent" ? "urgent" : "high",
|
|
304
|
+
// Bump priority
|
|
305
|
+
metadata: escalatedMetadata
|
|
306
|
+
});
|
|
307
|
+
escalated++;
|
|
308
|
+
}
|
|
309
|
+
return { escalated };
|
|
310
|
+
}
|
|
311
|
+
export {
|
|
312
|
+
LIFE_INTENT_KINDS,
|
|
313
|
+
LIFE_INTENT_PRIORITIES,
|
|
314
|
+
LIFE_INTENT_TARGETS,
|
|
315
|
+
acknowledgeIntent,
|
|
316
|
+
broadcastIntent,
|
|
317
|
+
escalateUnacknowledgedIntents,
|
|
318
|
+
pruneExpiredIntents,
|
|
319
|
+
receivePendingIntents
|
|
320
|
+
};
|
|
321
|
+
//# sourceMappingURL=intent-sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lifeops/intent-sync.ts"],"sourcesContent":["import crypto from \"node:crypto\";\nimport type { IAgentRuntime } from \"@elizaos/core\";\nimport { executeRawSql, parseJsonRecord, sqlText, toText } from \"./sql.js\";\n\n/**\n * Local intent store (formerly called \"cross-device intent sync\").\n *\n * An intent is a small structured message targeted at one or more of the\n * owner's logical devices (desktop, mobile, specific device). Intents are\n * persisted in a single local database table, and any process attached to\n * that database polls its pending queue; once acknowledged they are no\n * longer returned.\n *\n * NOTE: this module is *local-only*. There is no wire-level replication\n * across machines. Two separate agent processes running on different\n * machines will NOT see each other's intents. A cross-device replication\n * bridge (e.g. Eliza Cloud device-bus) is out of scope here — if/when that\n * bridge exists, it would sit alongside this table, not inside it.\n */\n\nexport const LIFE_INTENT_KINDS = [\n \"user_action_requested\",\n \"routine_reminder\",\n \"attention_request\",\n \"state_sync\",\n] as const;\n\nexport type LifeOpsIntentKind = (typeof LIFE_INTENT_KINDS)[number];\n\nexport const LIFE_INTENT_TARGETS = [\n \"all\",\n \"desktop\",\n \"mobile\",\n \"specific\",\n] as const;\n\nexport type LifeOpsIntentTargetDevice = (typeof LIFE_INTENT_TARGETS)[number];\n\nexport const LIFE_INTENT_PRIORITIES = [\n \"low\",\n \"medium\",\n \"high\",\n \"urgent\",\n] as const;\n\nexport type LifeOpsIntentPriority = (typeof LIFE_INTENT_PRIORITIES)[number];\n\nexport interface LifeOpsIntent {\n id: string;\n agentId: string;\n kind: LifeOpsIntentKind;\n target: LifeOpsIntentTargetDevice;\n targetDeviceId?: string;\n title: string;\n body: string;\n actionUrl?: string;\n priority: LifeOpsIntentPriority;\n createdAt: string;\n expiresAt?: string;\n acknowledgedAt?: string;\n metadata: Record<string, unknown>;\n}\n\nexport interface BroadcastIntentInput {\n kind: LifeOpsIntentKind;\n target?: LifeOpsIntentTargetDevice;\n targetDeviceId?: string;\n title: string;\n body: string;\n actionUrl?: string;\n priority?: LifeOpsIntentPriority;\n expiresInMinutes?: number;\n metadata?: Record<string, unknown>;\n}\n\nfunction assertKnownKind(kind: string): LifeOpsIntentKind {\n if ((LIFE_INTENT_KINDS as readonly string[]).includes(kind)) {\n return kind as LifeOpsIntentKind;\n }\n throw new Error(`unknown intent kind: ${kind}`);\n}\n\nfunction assertKnownTarget(target: string): LifeOpsIntentTargetDevice {\n if ((LIFE_INTENT_TARGETS as readonly string[]).includes(target)) {\n return target as LifeOpsIntentTargetDevice;\n }\n throw new Error(`unknown intent target: ${target}`);\n}\n\nfunction assertKnownPriority(priority: string): LifeOpsIntentPriority {\n if ((LIFE_INTENT_PRIORITIES as readonly string[]).includes(priority)) {\n return priority as LifeOpsIntentPriority;\n }\n throw new Error(`unknown intent priority: ${priority}`);\n}\n\nfunction rowToIntent(row: Record<string, unknown>): LifeOpsIntent {\n const targetDeviceId = toText(row.target_device_id, \"\");\n const actionUrl = toText(row.action_url, \"\");\n const expiresAt = toText(row.expires_at, \"\");\n const acknowledgedAt = toText(row.acknowledged_at, \"\");\n return {\n id: toText(row.id),\n agentId: toText(row.agent_id),\n kind: assertKnownKind(toText(row.kind)),\n target: assertKnownTarget(toText(row.target)),\n targetDeviceId: targetDeviceId.length > 0 ? targetDeviceId : undefined,\n title: toText(row.title),\n body: toText(row.body),\n actionUrl: actionUrl.length > 0 ? actionUrl : undefined,\n priority: assertKnownPriority(toText(row.priority)),\n createdAt: toText(row.created_at),\n expiresAt: expiresAt.length > 0 ? expiresAt : undefined,\n acknowledgedAt: acknowledgedAt.length > 0 ? acknowledgedAt : undefined,\n metadata: parseJsonRecord(row.metadata_json),\n };\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return value !== null && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction readMetadataString(\n metadata: Record<string, unknown>,\n keys: readonly string[],\n): string | null {\n let current: unknown = metadata;\n for (const key of keys) {\n if (!isRecord(current)) {\n return null;\n }\n current = current[key];\n }\n return typeof current === \"string\" && current.trim().length > 0\n ? current.trim()\n : null;\n}\n\nfunction readMetadataNumber(\n metadata: Record<string, unknown>,\n keys: readonly string[],\n): number | null {\n let current: unknown = metadata;\n for (const key of keys) {\n if (!isRecord(current)) {\n return null;\n }\n current = current[key];\n }\n if (typeof current === \"number\" && Number.isFinite(current)) {\n return current;\n }\n if (typeof current === \"string\") {\n const parsed = Number(current);\n if (Number.isFinite(parsed)) {\n return parsed;\n }\n }\n return null;\n}\n\nfunction extractIntentLadderKey(\n metadata: Record<string, unknown>,\n): string | null {\n return (\n readMetadataString(metadata, [\"ladderId\"]) ??\n readMetadataString(metadata, [\"ladderKey\"]) ??\n readMetadataString(metadata, [\"payload\", \"ladderId\"]) ??\n readMetadataString(metadata, [\"payload\", \"ladderKey\"])\n );\n}\n\nfunction extractIntentLadderRung(\n metadata: Record<string, unknown>,\n): number | null {\n return (\n readMetadataNumber(metadata, [\"rungIndex\"]) ??\n readMetadataNumber(metadata, [\"payload\", \"rungIndex\"])\n );\n}\n\ntype PendingIntentRow = {\n id: string;\n createdAt: string;\n metadata: Record<string, unknown>;\n};\n\nasync function readPendingIntentRow(\n runtime: IAgentRuntime,\n intentId: string,\n): Promise<PendingIntentRow | null> {\n const selectSql = `\n SELECT id, created_at, metadata_json\n FROM app_lifeops.life_intents\n WHERE agent_id = ${sqlText(runtime.agentId)}\n AND id = ${sqlText(intentId)}\n AND acknowledged_at IS NULL\n LIMIT 1`;\n const rows = await executeRawSql(runtime, selectSql);\n const row = rows[0];\n if (!row) {\n return null;\n }\n return {\n id: toText(row.id),\n createdAt: toText(row.created_at),\n metadata: parseJsonRecord(row.metadata_json),\n };\n}\n\nasync function suppressPendingLadderRungs(\n runtime: IAgentRuntime,\n currentIntent: PendingIntentRow,\n deviceId: string,\n acknowledgedAt: string,\n): Promise<void> {\n const ladderKey = extractIntentLadderKey(currentIntent.metadata);\n if (!ladderKey) {\n return;\n }\n const currentRung = extractIntentLadderRung(currentIntent.metadata);\n const selectSql = `\n SELECT id, created_at, metadata_json\n FROM app_lifeops.life_intents\n WHERE agent_id = ${sqlText(runtime.agentId)}\n AND acknowledged_at IS NULL\n AND id <> ${sqlText(currentIntent.id)}`;\n const rows = await executeRawSql(runtime, selectSql);\n const relatedIds = rows\n .map((row) => ({\n id: toText(row.id),\n createdAt: toText(row.created_at),\n metadata: parseJsonRecord(row.metadata_json),\n }))\n .filter((row) => {\n if (extractIntentLadderKey(row.metadata) !== ladderKey) {\n return false;\n }\n const candidateRung = extractIntentLadderRung(row.metadata);\n if (currentRung !== null && candidateRung !== null) {\n return candidateRung > currentRung;\n }\n if (currentRung !== null) {\n return true;\n }\n return row.createdAt >= currentIntent.createdAt;\n })\n .map((row) => row.id);\n\n if (relatedIds.length === 0) {\n return;\n }\n\n const updateSql = `\n UPDATE app_lifeops.life_intents\n SET acknowledged_at = ${sqlText(acknowledgedAt)},\n acknowledged_by = ${sqlText(deviceId)}\n WHERE agent_id = ${sqlText(runtime.agentId)}\n AND acknowledged_at IS NULL\n AND id IN (${relatedIds.map((id) => sqlText(id)).join(\", \")})`;\n await executeRawSql(runtime, updateSql);\n}\n\nexport async function broadcastIntent(\n runtime: IAgentRuntime,\n input: BroadcastIntentInput,\n): Promise<LifeOpsIntent> {\n const kind = assertKnownKind(input.kind);\n const target = assertKnownTarget(input.target ?? \"all\");\n if (target === \"specific\" && !input.targetDeviceId) {\n throw new Error(\"targetDeviceId is required when target = 'specific'\");\n }\n const priority = assertKnownPriority(input.priority ?? \"medium\");\n\n const id = crypto.randomUUID();\n const createdAt = new Date().toISOString();\n const expiresAt =\n typeof input.expiresInMinutes === \"number\" && input.expiresInMinutes > 0\n ? new Date(Date.now() + input.expiresInMinutes * 60_000).toISOString()\n : null;\n\n const metadata = input.metadata ?? {};\n const metadataJson = JSON.stringify(metadata);\n\n const targetDeviceId =\n target === \"specific\" ? (input.targetDeviceId ?? null) : null;\n\n const insertSql = `\n INSERT INTO app_lifeops.life_intents (\n id, agent_id, kind, target, target_device_id,\n title, body, action_url, priority,\n created_at, expires_at, acknowledged_at, acknowledged_by, metadata_json\n ) VALUES (\n ${sqlText(id)},\n ${sqlText(runtime.agentId)},\n ${sqlText(kind)},\n ${sqlText(target)},\n ${sqlText(targetDeviceId)},\n ${sqlText(input.title)},\n ${sqlText(input.body)},\n ${sqlText(input.actionUrl ?? null)},\n ${sqlText(priority)},\n ${sqlText(createdAt)},\n ${sqlText(expiresAt)},\n NULL,\n NULL,\n ${sqlText(metadataJson)}\n )`;\n\n await executeRawSql(runtime, insertSql);\n\n return {\n id,\n agentId: runtime.agentId,\n kind,\n target,\n targetDeviceId: targetDeviceId ?? undefined,\n title: input.title,\n body: input.body,\n actionUrl: input.actionUrl,\n priority,\n createdAt,\n expiresAt: expiresAt ?? undefined,\n metadata,\n };\n}\n\nexport async function receivePendingIntents(\n runtime: IAgentRuntime,\n opts?: {\n device?: LifeOpsIntentTargetDevice;\n deviceId?: string;\n limit?: number;\n },\n): Promise<LifeOpsIntent[]> {\n const device = opts?.device;\n if (device !== undefined) {\n assertKnownTarget(device);\n }\n const limit =\n typeof opts?.limit === \"number\" && opts.limit > 0\n ? Math.min(Math.trunc(opts.limit), 500)\n : 100;\n const nowIso = new Date().toISOString();\n\n // An intent is pending for a device if:\n // - acknowledged_at IS NULL\n // - not expired\n // - target matches: \"all\", the device class, or \"specific\" with matching id\n const deviceFilter: string[] = [`target = 'all'`];\n if (device === \"desktop\" || device === \"mobile\") {\n deviceFilter.push(`target = ${sqlText(device)}`);\n }\n if (opts?.deviceId) {\n deviceFilter.push(\n `(target = 'specific' AND target_device_id = ${sqlText(opts.deviceId)})`,\n );\n }\n\n const selectSql = `\n SELECT id, agent_id, kind, target, target_device_id,\n title, body, action_url, priority,\n created_at, expires_at, acknowledged_at, metadata_json\n FROM app_lifeops.life_intents\n WHERE agent_id = ${sqlText(runtime.agentId)}\n AND acknowledged_at IS NULL\n AND (expires_at IS NULL OR expires_at > ${sqlText(nowIso)})\n AND (${deviceFilter.join(\" OR \")})\n ORDER BY created_at ASC\n LIMIT ${limit}`;\n\n const rows = await executeRawSql(runtime, selectSql);\n return rows.map(rowToIntent);\n}\n\nexport async function acknowledgeIntent(\n runtime: IAgentRuntime,\n intentId: string,\n deviceId: string,\n): Promise<void> {\n if (!intentId) throw new Error(\"intentId is required\");\n if (!deviceId) throw new Error(\"deviceId is required\");\n\n const currentIntent = await readPendingIntentRow(runtime, intentId);\n const nowIso = new Date().toISOString();\n const updateSql = `\n UPDATE app_lifeops.life_intents\n SET acknowledged_at = ${sqlText(nowIso)},\n acknowledged_by = ${sqlText(deviceId)}\n WHERE id = ${sqlText(intentId)}\n AND agent_id = ${sqlText(runtime.agentId)}\n AND acknowledged_at IS NULL`;\n await executeRawSql(runtime, updateSql);\n if (currentIntent) {\n await suppressPendingLadderRungs(runtime, currentIntent, deviceId, nowIso);\n }\n}\n\nexport async function pruneExpiredIntents(\n runtime: IAgentRuntime,\n): Promise<{ pruned: number }> {\n const nowIso = new Date().toISOString();\n\n const countSql = `\n SELECT COUNT(*) AS cnt FROM app_lifeops.life_intents\n WHERE agent_id = ${sqlText(runtime.agentId)}\n AND expires_at IS NOT NULL\n AND expires_at <= ${sqlText(nowIso)}`;\n const countRows = await executeRawSql(runtime, countSql);\n const cntRaw = countRows[0]?.cnt ?? countRows[0]?.count ?? 0;\n const pruned = Number(cntRaw) || 0;\n\n const deleteSql = `\n DELETE FROM app_lifeops.life_intents\n WHERE agent_id = ${sqlText(runtime.agentId)}\n AND expires_at IS NOT NULL\n AND expires_at <= ${sqlText(nowIso)}`;\n await executeRawSql(runtime, deleteSql);\n\n return { pruned };\n}\n\nexport async function escalateUnacknowledgedIntents(\n runtime: IAgentRuntime,\n opts?: { thresholdMinutes?: number },\n): Promise<{ escalated: number }> {\n const threshold = opts?.thresholdMinutes ?? 5;\n const cutoffTime = new Date(Date.now() - threshold * 60_000).toISOString();\n\n // Find intents targeting 'desktop' that have not been acknowledged and are older than cutoff\n const selectSql = `\n SELECT id, agent_id, kind, target, target_device_id,\n title, body, action_url, priority,\n created_at, expires_at, acknowledged_at, metadata_json\n FROM app_lifeops.life_intents\n WHERE agent_id = ${sqlText(runtime.agentId)}\n AND target = 'desktop'\n AND acknowledged_at IS NULL\n AND created_at <= ${sqlText(cutoffTime)}\n AND (expires_at IS NULL OR expires_at > ${sqlText(new Date().toISOString())})`;\n\n const rows = await executeRawSql(runtime, selectSql);\n const unacknowledgedIntents = rows.map(rowToIntent);\n\n let escalated = 0;\n for (const intent of unacknowledgedIntents) {\n // Suppress the original 'desktop' intent by acknowledging it by the system\n await acknowledgeIntent(runtime, intent.id, \"system-escalator\");\n\n // Broadcast the escalated intent to 'mobile'\n const escalatedMetadata = {\n ...(intent.metadata || {}),\n escalatedFrom: intent.id,\n escalatedAt: new Date().toISOString(),\n };\n\n await broadcastIntent(runtime, {\n kind: intent.kind,\n target: \"mobile\",\n title: `[Escalated] ${intent.title}`,\n body: intent.body,\n actionUrl: intent.actionUrl,\n priority: intent.priority === \"urgent\" ? \"urgent\" : \"high\", // Bump priority\n metadata: escalatedMetadata,\n });\n escalated++;\n }\n\n return { escalated };\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lifeops/messaging/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lifeops/messaging/index.ts"],"sourcesContent":["export { createOwnerSendPolicy } from \"./owner-send-policy.js\";\n\n// LifeOps owns owner send policy. Message transport adapters stay exported by\n// their connector plugins and are registered from those packages in plugin.ts.\n"],"mappings":"AAAA,SAAS,6BAA6B;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"owner-send-policy.d.ts","sourceRoot":"","sources":["../../../src/lifeops/messaging/owner-send-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,UAAU,EACX,MAAM,eAAe,CAAC;AAkDvB,wBAAgB,qBAAqB,IAAI,UAAU,CAsDlD"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { getConnectorRegistry } from "../connectors/registry.js";
|
|
2
|
+
const SOURCE_TO_CONNECTOR_KIND = {
|
|
3
|
+
gmail: "google",
|
|
4
|
+
discord: "discord",
|
|
5
|
+
telegram: "telegram",
|
|
6
|
+
twitter: "x",
|
|
7
|
+
imessage: "imessage",
|
|
8
|
+
signal: "signal",
|
|
9
|
+
whatsapp: "whatsapp",
|
|
10
|
+
calendly: "calendly"
|
|
11
|
+
};
|
|
12
|
+
function approvalRequiredForSource(runtime, source) {
|
|
13
|
+
const kind = SOURCE_TO_CONNECTOR_KIND[source];
|
|
14
|
+
if (!kind) return false;
|
|
15
|
+
const registry = getConnectorRegistry(runtime);
|
|
16
|
+
if (!registry) return false;
|
|
17
|
+
return registry.get(kind)?.requiresApproval === true;
|
|
18
|
+
}
|
|
19
|
+
function makeApprovalDescription(draft) {
|
|
20
|
+
const recipients = draft.to.map((entry) => entry.displayName ?? entry.identifier).filter(Boolean).join(", ");
|
|
21
|
+
const subject = draft.subject ? ` (${draft.subject})` : "";
|
|
22
|
+
const preview = draft.body.length > 240 ? `${draft.body.slice(0, 237)}...` : draft.body;
|
|
23
|
+
const target = recipients.length > 0 ? recipients : "(no recipients)";
|
|
24
|
+
return `Approve sending ${draft.source} to ${target}${subject}: ${preview}`;
|
|
25
|
+
}
|
|
26
|
+
function previewDraft(draft) {
|
|
27
|
+
if (draft.body.length <= 200) return draft.body;
|
|
28
|
+
return `${draft.body.slice(0, 197)}...`;
|
|
29
|
+
}
|
|
30
|
+
function createOwnerSendPolicy() {
|
|
31
|
+
return {
|
|
32
|
+
async shouldRequireApproval(runtime, draft) {
|
|
33
|
+
return approvalRequiredForSource(runtime, draft.source);
|
|
34
|
+
},
|
|
35
|
+
async enqueueApproval(runtime, draft, executor) {
|
|
36
|
+
if (typeof runtime.createTask !== "function") {
|
|
37
|
+
throw new Error(
|
|
38
|
+
"[OwnerSendPolicy] runtime.createTask is required for outbound approvals"
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
const requestId = await runtime.createTask({
|
|
42
|
+
name: `OWNER_SEND_APPROVAL_${Date.now()}`,
|
|
43
|
+
description: makeApprovalDescription(draft),
|
|
44
|
+
roomId: draft.metadata?.roomId ?? runtime.agentId,
|
|
45
|
+
entityId: draft.metadata?.entityId ?? runtime.agentId,
|
|
46
|
+
tags: ["AWAITING_CHOICE", "APPROVAL", "OWNER_SEND_APPROVAL"],
|
|
47
|
+
metadata: {
|
|
48
|
+
options: [
|
|
49
|
+
{ name: "confirm", description: "Send the drafted message" },
|
|
50
|
+
{ name: "cancel", description: "Do not send it" }
|
|
51
|
+
],
|
|
52
|
+
approvalRequest: {
|
|
53
|
+
timeoutMs: 24 * 60 * 60 * 1e3,
|
|
54
|
+
timeoutDefault: "cancel",
|
|
55
|
+
createdAt: Date.now(),
|
|
56
|
+
isAsync: true
|
|
57
|
+
},
|
|
58
|
+
actionName: "OWNER_SEND_APPROVAL",
|
|
59
|
+
source: draft.source,
|
|
60
|
+
payload: {
|
|
61
|
+
source: draft.source,
|
|
62
|
+
inReplyToId: draft.inReplyToId ?? null,
|
|
63
|
+
threadId: draft.threadId ?? null,
|
|
64
|
+
to: draft.to,
|
|
65
|
+
subject: draft.subject ?? null,
|
|
66
|
+
body: draft.body,
|
|
67
|
+
worldId: draft.worldId ?? null,
|
|
68
|
+
channelId: draft.channelId ?? null
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
void executor;
|
|
73
|
+
return {
|
|
74
|
+
requestId: String(requestId),
|
|
75
|
+
preview: previewDraft(draft)
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
export {
|
|
81
|
+
createOwnerSendPolicy
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=owner-send-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lifeops/messaging/owner-send-policy.ts"],"sourcesContent":["import type {\n DraftRequest,\n IAgentRuntime,\n MessageSource,\n SendPolicy,\n} from \"@elizaos/core\";\nimport { getConnectorRegistry } from \"../connectors/registry.js\";\n\n/**\n * Map a `MessageSource` (the triage-layer enum) to the corresponding\n * `ConnectorRegistry` kind. Gmail is a Google capability, not a separate\n * connector kind, so the source `\"gmail\"` resolves to connector `\"google\"`.\n *\n * Sources without a matching connector (e.g. `browser_bridge`) return `null`\n * and the default approval policy (no approval) applies.\n */\nconst SOURCE_TO_CONNECTOR_KIND: Partial<Record<MessageSource, string>> = {\n gmail: \"google\",\n discord: \"discord\",\n telegram: \"telegram\",\n twitter: \"x\",\n imessage: \"imessage\",\n signal: \"signal\",\n whatsapp: \"whatsapp\",\n calendly: \"calendly\",\n};\n\nfunction approvalRequiredForSource(\n runtime: IAgentRuntime,\n source: MessageSource,\n): boolean {\n const kind = SOURCE_TO_CONNECTOR_KIND[source];\n if (!kind) return false;\n const registry = getConnectorRegistry(runtime);\n if (!registry) return false;\n return registry.get(kind)?.requiresApproval === true;\n}\n\nfunction makeApprovalDescription(draft: DraftRequest): string {\n const recipients = draft.to\n .map((entry) => entry.displayName ?? entry.identifier)\n .filter(Boolean)\n .join(\", \");\n const subject = draft.subject ? ` (${draft.subject})` : \"\";\n const preview =\n draft.body.length > 240 ? `${draft.body.slice(0, 237)}...` : draft.body;\n const target = recipients.length > 0 ? recipients : \"(no recipients)\";\n return `Approve sending ${draft.source} to ${target}${subject}: ${preview}`;\n}\n\nfunction previewDraft(draft: DraftRequest): string {\n if (draft.body.length <= 200) return draft.body;\n return `${draft.body.slice(0, 197)}...`;\n}\n\nexport function createOwnerSendPolicy(): SendPolicy {\n return {\n async shouldRequireApproval(runtime, draft) {\n return approvalRequiredForSource(runtime, draft.source);\n },\n async enqueueApproval(runtime, draft, executor) {\n if (typeof runtime.createTask !== \"function\") {\n throw new Error(\n \"[OwnerSendPolicy] runtime.createTask is required for outbound approvals\",\n );\n }\n const requestId = await runtime.createTask({\n name: `OWNER_SEND_APPROVAL_${Date.now()}`,\n description: makeApprovalDescription(draft),\n roomId:\n (draft.metadata?.roomId as string | undefined) ?? runtime.agentId,\n entityId:\n (draft.metadata?.entityId as string | undefined) ?? runtime.agentId,\n tags: [\"AWAITING_CHOICE\", \"APPROVAL\", \"OWNER_SEND_APPROVAL\"],\n metadata: {\n options: [\n { name: \"confirm\", description: \"Send the drafted message\" },\n { name: \"cancel\", description: \"Do not send it\" },\n ],\n approvalRequest: {\n timeoutMs: 24 * 60 * 60 * 1000,\n timeoutDefault: \"cancel\",\n createdAt: Date.now(),\n isAsync: true,\n },\n actionName: \"OWNER_SEND_APPROVAL\",\n source: draft.source,\n payload: {\n source: draft.source,\n inReplyToId: draft.inReplyToId ?? null,\n threadId: draft.threadId ?? null,\n to: draft.to,\n subject: draft.subject ?? null,\n body: draft.body,\n worldId: draft.worldId ?? null,\n channelId: draft.channelId ?? null,\n },\n },\n });\n // The execution callback is invoked by RESOLVE_REQUEST after the\n // owner approves. The executor reference is held by the triage service\n // until that flow runs; nothing to do synchronously here.\n void executor;\n return {\n requestId: String(requestId),\n preview: previewDraft(draft),\n };\n },\n };\n}\n"],"mappings":"AAMA,SAAS,4BAA4B;AAUrC,MAAM,2BAAmE;AAAA,EACvE,OAAO;AAAA,EACP,SAAS;AAAA,EACT,UAAU;AAAA,EACV,SAAS;AAAA,EACT,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,UAAU;AACZ;AAEA,SAAS,0BACP,SACA,QACS;AACT,QAAM,OAAO,yBAAyB,MAAM;AAC5C,MAAI,CAAC,KAAM,QAAO;AAClB,QAAM,WAAW,qBAAqB,OAAO;AAC7C,MAAI,CAAC,SAAU,QAAO;AACtB,SAAO,SAAS,IAAI,IAAI,GAAG,qBAAqB;AAClD;AAEA,SAAS,wBAAwB,OAA6B;AAC5D,QAAM,aAAa,MAAM,GACtB,IAAI,CAAC,UAAU,MAAM,eAAe,MAAM,UAAU,EACpD,OAAO,OAAO,EACd,KAAK,IAAI;AACZ,QAAM,UAAU,MAAM,UAAU,KAAK,MAAM,OAAO,MAAM;AACxD,QAAM,UACJ,MAAM,KAAK,SAAS,MAAM,GAAG,MAAM,KAAK,MAAM,GAAG,GAAG,CAAC,QAAQ,MAAM;AACrE,QAAM,SAAS,WAAW,SAAS,IAAI,aAAa;AACpD,SAAO,mBAAmB,MAAM,MAAM,OAAO,MAAM,GAAG,OAAO,KAAK,OAAO;AAC3E;AAEA,SAAS,aAAa,OAA6B;AACjD,MAAI,MAAM,KAAK,UAAU,IAAK,QAAO,MAAM;AAC3C,SAAO,GAAG,MAAM,KAAK,MAAM,GAAG,GAAG,CAAC;AACpC;AAEO,SAAS,wBAAoC;AAClD,SAAO;AAAA,IACL,MAAM,sBAAsB,SAAS,OAAO;AAC1C,aAAO,0BAA0B,SAAS,MAAM,MAAM;AAAA,IACxD;AAAA,IACA,MAAM,gBAAgB,SAAS,OAAO,UAAU;AAC9C,UAAI,OAAO,QAAQ,eAAe,YAAY;AAC5C,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAAA,MACF;AACA,YAAM,YAAY,MAAM,QAAQ,WAAW;AAAA,QACzC,MAAM,uBAAuB,KAAK,IAAI,CAAC;AAAA,QACvC,aAAa,wBAAwB,KAAK;AAAA,QAC1C,QACG,MAAM,UAAU,UAAiC,QAAQ;AAAA,QAC5D,UACG,MAAM,UAAU,YAAmC,QAAQ;AAAA,QAC9D,MAAM,CAAC,mBAAmB,YAAY,qBAAqB;AAAA,QAC3D,UAAU;AAAA,UACR,SAAS;AAAA,YACP,EAAE,MAAM,WAAW,aAAa,2BAA2B;AAAA,YAC3D,EAAE,MAAM,UAAU,aAAa,iBAAiB;AAAA,UAClD;AAAA,UACA,iBAAiB;AAAA,YACf,WAAW,KAAK,KAAK,KAAK;AAAA,YAC1B,gBAAgB;AAAA,YAChB,WAAW,KAAK,IAAI;AAAA,YACpB,SAAS;AAAA,UACX;AAAA,UACA,YAAY;AAAA,UACZ,QAAQ,MAAM;AAAA,UACd,SAAS;AAAA,YACP,QAAQ,MAAM;AAAA,YACd,aAAa,MAAM,eAAe;AAAA,YAClC,UAAU,MAAM,YAAY;AAAA,YAC5B,IAAI,MAAM;AAAA,YACV,SAAS,MAAM,WAAW;AAAA,YAC1B,MAAM,MAAM;AAAA,YACZ,SAAS,MAAM,WAAW;AAAA,YAC1B,WAAW,MAAM,aAAa;AAAA,UAChC;AAAA,QACF;AAAA,MACF,CAAC;AAID,WAAK;AACL,aAAO;AAAA,QACL,WAAW,OAAO,SAAS;AAAA,QAC3B,SAAS,aAAa,KAAK;AAAA,MAC7B;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export declare class NtfyConfigError extends Error {
|
|
2
|
+
readonly code: "NTFY_NOT_CONFIGURED";
|
|
3
|
+
constructor(message: string);
|
|
4
|
+
}
|
|
5
|
+
export interface NtfyConfig {
|
|
6
|
+
baseUrl: string;
|
|
7
|
+
defaultTopic: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function readNtfyConfigFromEnv(env?: NodeJS.ProcessEnv): NtfyConfig;
|
|
10
|
+
/** Ntfy message priority. 1 = min, 3 = default, 5 = max. */
|
|
11
|
+
export type NtfyPriority = 1 | 2 | 3 | 4 | 5;
|
|
12
|
+
export interface SendPushRequest {
|
|
13
|
+
/** Topic to publish to. Falls back to NTFY_DEFAULT_TOPIC. */
|
|
14
|
+
topic?: string;
|
|
15
|
+
/** Notification title (shown as header). */
|
|
16
|
+
title: string;
|
|
17
|
+
/** Notification body. */
|
|
18
|
+
message: string;
|
|
19
|
+
/** Priority 1–5. Defaults to 3 (default). */
|
|
20
|
+
priority?: NtfyPriority;
|
|
21
|
+
/** Optional tags (emoji shortcuts or descriptive labels). */
|
|
22
|
+
tags?: string[];
|
|
23
|
+
/** URL to open when notification is clicked. */
|
|
24
|
+
click?: string;
|
|
25
|
+
}
|
|
26
|
+
export interface SendPushResult {
|
|
27
|
+
messageId: string | null;
|
|
28
|
+
deliveredAt: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Publish a push notification via Ntfy.
|
|
32
|
+
*
|
|
33
|
+
* Throws `NtfyConfigError` when NTFY_BASE_URL is absent.
|
|
34
|
+
* All other failures throw standard `Error`.
|
|
35
|
+
*/
|
|
36
|
+
export declare function sendPush(request: SendPushRequest, config?: NtfyConfig): Promise<SendPushResult>;
|
|
37
|
+
//# sourceMappingURL=notifications-push.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notifications-push.d.ts","sourceRoot":"","sources":["../../src/lifeops/notifications-push.ts"],"names":[],"mappings":"AAOA,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,EAAG,qBAAqB,CAAU;gBACnC,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,qBAAqB,CACnC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,UAAU,CAYZ;AAMD,4DAA4D;AAC5D,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE7C,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAiBD;;;;;GAKG;AACH,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,eAAe,EACxB,MAAM,CAAC,EAAE,UAAU,GAClB,OAAO,CAAC,cAAc,CAAC,CAyEzB"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { createIntegrationTelemetrySpan } from "@elizaos/agent";
|
|
2
|
+
import { logger } from "@elizaos/core";
|
|
3
|
+
class NtfyConfigError extends Error {
|
|
4
|
+
code = "NTFY_NOT_CONFIGURED";
|
|
5
|
+
constructor(message) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.name = "NtfyConfigError";
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
function readNtfyConfigFromEnv(env = process.env) {
|
|
11
|
+
const baseUrl = env.NTFY_BASE_URL?.trim();
|
|
12
|
+
const defaultTopic = env.NTFY_DEFAULT_TOPIC?.trim();
|
|
13
|
+
if (!baseUrl) {
|
|
14
|
+
throw new NtfyConfigError(
|
|
15
|
+
"Ntfy push is not configured. Set NTFY_BASE_URL (and optionally NTFY_DEFAULT_TOPIC)."
|
|
16
|
+
);
|
|
17
|
+
}
|
|
18
|
+
return {
|
|
19
|
+
baseUrl: baseUrl.replace(/\/$/, ""),
|
|
20
|
+
defaultTopic: defaultTopic ?? "eliza"
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
const NTFY_PUBLISH_TIMEOUT_MS = 1e4;
|
|
24
|
+
function normalizePriority(value) {
|
|
25
|
+
if (value === void 0) return 3;
|
|
26
|
+
const clamped = Math.round(Math.max(1, Math.min(5, value)));
|
|
27
|
+
return clamped;
|
|
28
|
+
}
|
|
29
|
+
async function sendPush(request, config) {
|
|
30
|
+
const resolvedConfig = config ?? readNtfyConfigFromEnv();
|
|
31
|
+
const topic = request.topic?.trim() || resolvedConfig.defaultTopic;
|
|
32
|
+
const url = `${resolvedConfig.baseUrl}/${encodeURIComponent(topic)}`;
|
|
33
|
+
const headers = {
|
|
34
|
+
"Content-Type": "text/plain; charset=utf-8",
|
|
35
|
+
Title: request.title,
|
|
36
|
+
Priority: String(normalizePriority(request.priority))
|
|
37
|
+
};
|
|
38
|
+
if (request.tags && request.tags.length > 0) {
|
|
39
|
+
headers.Tags = request.tags.join(",");
|
|
40
|
+
}
|
|
41
|
+
if (request.click) {
|
|
42
|
+
headers.Click = request.click;
|
|
43
|
+
}
|
|
44
|
+
const span = createIntegrationTelemetrySpan({
|
|
45
|
+
boundary: "lifeops",
|
|
46
|
+
operation: "ntfy_publish",
|
|
47
|
+
timeoutMs: NTFY_PUBLISH_TIMEOUT_MS
|
|
48
|
+
});
|
|
49
|
+
let response;
|
|
50
|
+
try {
|
|
51
|
+
response = await fetch(url, {
|
|
52
|
+
method: "POST",
|
|
53
|
+
headers,
|
|
54
|
+
body: request.message,
|
|
55
|
+
signal: AbortSignal.timeout(NTFY_PUBLISH_TIMEOUT_MS)
|
|
56
|
+
});
|
|
57
|
+
} catch (error) {
|
|
58
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
59
|
+
logger.error(
|
|
60
|
+
{
|
|
61
|
+
boundary: "lifeops",
|
|
62
|
+
integration: "ntfy",
|
|
63
|
+
err: error instanceof Error ? error : void 0
|
|
64
|
+
},
|
|
65
|
+
`[lifeops-push] Ntfy publish failed: ${msg}`
|
|
66
|
+
);
|
|
67
|
+
span.failure({ error, errorKind: "network_error" });
|
|
68
|
+
throw new Error(`Ntfy publish failed: ${msg}`);
|
|
69
|
+
}
|
|
70
|
+
if (!response.ok) {
|
|
71
|
+
const body = await response.text().catch(() => "");
|
|
72
|
+
const errorMsg = body || `HTTP ${response.status}`;
|
|
73
|
+
logger.warn(
|
|
74
|
+
{ boundary: "lifeops", integration: "ntfy", statusCode: response.status },
|
|
75
|
+
`[lifeops-push] Ntfy publish HTTP error: ${errorMsg}`
|
|
76
|
+
);
|
|
77
|
+
span.failure({ statusCode: response.status, errorKind: "http_error" });
|
|
78
|
+
throw new Error(`Ntfy publish failed (${response.status}): ${errorMsg}`);
|
|
79
|
+
}
|
|
80
|
+
const data = await response.json().catch(() => ({}));
|
|
81
|
+
const messageId = typeof data.id === "string" && data.id.length > 0 ? data.id : null;
|
|
82
|
+
const deliveredAt = data.time ? new Date(data.time * 1e3).toISOString() : (/* @__PURE__ */ new Date()).toISOString();
|
|
83
|
+
span.success({ statusCode: response.status });
|
|
84
|
+
logger.info(
|
|
85
|
+
{ boundary: "lifeops", integration: "ntfy", topic, messageId },
|
|
86
|
+
`[lifeops-push] Push notification delivered to topic '${topic}'`
|
|
87
|
+
);
|
|
88
|
+
return { messageId, deliveredAt };
|
|
89
|
+
}
|
|
90
|
+
export {
|
|
91
|
+
NtfyConfigError,
|
|
92
|
+
readNtfyConfigFromEnv,
|
|
93
|
+
sendPush
|
|
94
|
+
};
|
|
95
|
+
//# sourceMappingURL=notifications-push.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lifeops/notifications-push.ts"],"sourcesContent":["import { createIntegrationTelemetrySpan } from \"@elizaos/agent\";\nimport { logger } from \"@elizaos/core\";\n\n// ---------------------------------------------------------------------------\n// Config\n// ---------------------------------------------------------------------------\n\nexport class NtfyConfigError extends Error {\n readonly code = \"NTFY_NOT_CONFIGURED\" as const;\n constructor(message: string) {\n super(message);\n this.name = \"NtfyConfigError\";\n }\n}\n\nexport interface NtfyConfig {\n baseUrl: string;\n defaultTopic: string;\n}\n\nexport function readNtfyConfigFromEnv(\n env: NodeJS.ProcessEnv = process.env,\n): NtfyConfig {\n const baseUrl = env.NTFY_BASE_URL?.trim();\n const defaultTopic = env.NTFY_DEFAULT_TOPIC?.trim();\n if (!baseUrl) {\n throw new NtfyConfigError(\n \"Ntfy push is not configured. Set NTFY_BASE_URL (and optionally NTFY_DEFAULT_TOPIC).\",\n );\n }\n return {\n baseUrl: baseUrl.replace(/\\/$/, \"\"),\n defaultTopic: defaultTopic ?? \"eliza\",\n };\n}\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\n/** Ntfy message priority. 1 = min, 3 = default, 5 = max. */\nexport type NtfyPriority = 1 | 2 | 3 | 4 | 5;\n\nexport interface SendPushRequest {\n /** Topic to publish to. Falls back to NTFY_DEFAULT_TOPIC. */\n topic?: string;\n /** Notification title (shown as header). */\n title: string;\n /** Notification body. */\n message: string;\n /** Priority 1–5. Defaults to 3 (default). */\n priority?: NtfyPriority;\n /** Optional tags (emoji shortcuts or descriptive labels). */\n tags?: string[];\n /** URL to open when notification is clicked. */\n click?: string;\n}\n\nexport interface SendPushResult {\n messageId: string | null;\n deliveredAt: string;\n}\n\n// ---------------------------------------------------------------------------\n// Client\n// ---------------------------------------------------------------------------\n\n/** Hard timeout on the Ntfy publish HTTP call. Push delivery is best-effort,\n * so we cap latency rather than letting a slow upstream stall the caller. */\nconst NTFY_PUBLISH_TIMEOUT_MS = 10_000;\n\n/** Validates and coerces priority to the 1–5 range. */\nfunction normalizePriority(value: number | undefined): NtfyPriority {\n if (value === undefined) return 3;\n const clamped = Math.round(Math.max(1, Math.min(5, value)));\n return clamped as NtfyPriority;\n}\n\n/**\n * Publish a push notification via Ntfy.\n *\n * Throws `NtfyConfigError` when NTFY_BASE_URL is absent.\n * All other failures throw standard `Error`.\n */\nexport async function sendPush(\n request: SendPushRequest,\n config?: NtfyConfig,\n): Promise<SendPushResult> {\n const resolvedConfig = config ?? readNtfyConfigFromEnv();\n const topic = request.topic?.trim() || resolvedConfig.defaultTopic;\n const url = `${resolvedConfig.baseUrl}/${encodeURIComponent(topic)}`;\n\n const headers: Record<string, string> = {\n \"Content-Type\": \"text/plain; charset=utf-8\",\n Title: request.title,\n Priority: String(normalizePriority(request.priority)),\n };\n if (request.tags && request.tags.length > 0) {\n headers.Tags = request.tags.join(\",\");\n }\n if (request.click) {\n headers.Click = request.click;\n }\n\n const span = createIntegrationTelemetrySpan({\n boundary: \"lifeops\",\n operation: \"ntfy_publish\",\n timeoutMs: NTFY_PUBLISH_TIMEOUT_MS,\n });\n\n let response: Response;\n try {\n response = await fetch(url, {\n method: \"POST\",\n headers,\n body: request.message,\n signal: AbortSignal.timeout(NTFY_PUBLISH_TIMEOUT_MS),\n });\n } catch (error) {\n const msg = error instanceof Error ? error.message : String(error);\n logger.error(\n {\n boundary: \"lifeops\",\n integration: \"ntfy\",\n err: error instanceof Error ? error : undefined,\n },\n `[lifeops-push] Ntfy publish failed: ${msg}`,\n );\n span.failure({ error, errorKind: \"network_error\" });\n throw new Error(`Ntfy publish failed: ${msg}`);\n }\n\n if (!response.ok) {\n const body = await response.text().catch(() => \"\");\n const errorMsg = body || `HTTP ${response.status}`;\n logger.warn(\n { boundary: \"lifeops\", integration: \"ntfy\", statusCode: response.status },\n `[lifeops-push] Ntfy publish HTTP error: ${errorMsg}`,\n );\n span.failure({ statusCode: response.status, errorKind: \"http_error\" });\n throw new Error(`Ntfy publish failed (${response.status}): ${errorMsg}`);\n }\n\n const data = (await response.json().catch(() => ({}))) as {\n id?: string;\n time?: number;\n };\n const messageId =\n typeof data.id === \"string\" && data.id.length > 0 ? data.id : null;\n const deliveredAt = data.time\n ? new Date(data.time * 1000).toISOString()\n : new Date().toISOString();\n\n span.success({ statusCode: response.status });\n logger.info(\n { boundary: \"lifeops\", integration: \"ntfy\", topic, messageId },\n `[lifeops-push] Push notification delivered to topic '${topic}'`,\n );\n\n return { messageId, deliveredAt };\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const SCHEDULE_PLAN_INSTRUCTIONS: string;
|
|
2
|
+
export declare const REMINDER_DISPATCH_INSTRUCTIONS: string;
|
|
3
|
+
export declare const BRIEF_NARRATIVE_INSTRUCTIONS = "Render a concise narrative paragraph (2-5 sentences). Lead with the\nschedule-changing or reply-needed items first. Mention each non-empty domain\nonce. If a domain is empty, omit it rather than saying \"nothing to report\".\nNo invented facts; only describe items in the data below.";
|
|
4
|
+
export declare const MEETING_PREP_INSTRUCTIONS = "Prepare the next working block: scan upcoming calendar events, related threads, docs, blockers, and people context. Surface missing agenda, location, dial-in, prep document, decision owner, and likely follow-up. Keep the owner-facing result compact.";
|
|
5
|
+
//# sourceMappingURL=optimized-prompt-instructions.d.ts.map
|