@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,44 @@
|
|
|
1
|
+
function readSignalConfig(config) {
|
|
2
|
+
const raw = config.connectors?.signal;
|
|
3
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw)) {
|
|
4
|
+
return null;
|
|
5
|
+
}
|
|
6
|
+
return raw;
|
|
7
|
+
}
|
|
8
|
+
function upsertSignalConnectorConfig(config, args) {
|
|
9
|
+
const current = readSignalConfig(config);
|
|
10
|
+
const next = {
|
|
11
|
+
...current ?? {},
|
|
12
|
+
authDir: args.authDir,
|
|
13
|
+
account: args.account,
|
|
14
|
+
enabled: true
|
|
15
|
+
};
|
|
16
|
+
const changed = !current || current.authDir !== next.authDir || current.account !== next.account || current.enabled !== true;
|
|
17
|
+
if (!changed) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
if (!config.connectors) {
|
|
21
|
+
config.connectors = {};
|
|
22
|
+
}
|
|
23
|
+
config.connectors.signal = next;
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
function removeSignalConnectorConfig(config, args = {}) {
|
|
27
|
+
const current = readSignalConfig(config);
|
|
28
|
+
if (!current) {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
if (args.authDir && current.authDir && current.authDir !== args.authDir) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
if (args.account && current.account && current.account !== args.account) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
delete config.connectors?.signal;
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
export {
|
|
41
|
+
removeSignalConnectorConfig,
|
|
42
|
+
upsertSignalConnectorConfig
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=signal-runtime-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lifeops/signal-runtime-config.ts"],"sourcesContent":["type ConfigRecord = Record<string, unknown> & {\n connectors?: Record<string, unknown>;\n};\n\ntype SignalConnectorConfig = Record<string, unknown> & {\n authDir?: string;\n account?: string;\n enabled?: boolean;\n};\n\nfunction readSignalConfig(config: ConfigRecord): SignalConnectorConfig | null {\n const raw = config.connectors?.signal;\n if (!raw || typeof raw !== \"object\" || Array.isArray(raw)) {\n return null;\n }\n return raw as SignalConnectorConfig;\n}\n\nexport function upsertSignalConnectorConfig(\n config: ConfigRecord,\n args: {\n authDir: string;\n account: string;\n },\n): boolean {\n const current = readSignalConfig(config);\n const next: SignalConnectorConfig = {\n ...(current ?? {}),\n authDir: args.authDir,\n account: args.account,\n enabled: true,\n };\n\n const changed =\n !current ||\n current.authDir !== next.authDir ||\n current.account !== next.account ||\n current.enabled !== true;\n\n if (!changed) {\n return false;\n }\n\n if (!config.connectors) {\n config.connectors = {};\n }\n config.connectors.signal = next;\n return true;\n}\n\nexport function removeSignalConnectorConfig(\n config: ConfigRecord,\n args: {\n authDir?: string | null;\n account?: string | null;\n } = {},\n): boolean {\n const current = readSignalConfig(config);\n if (!current) {\n return false;\n }\n\n if (args.authDir && current.authDir && current.authDir !== args.authDir) {\n return false;\n }\n\n if (args.account && current.account && current.account !== args.account) {\n return false;\n }\n\n delete config.connectors?.signal;\n return true;\n}\n"],"mappings":"AAUA,SAAS,iBAAiB,QAAoD;AAC5E,QAAM,MAAM,OAAO,YAAY;AAC/B,MAAI,CAAC,OAAO,OAAO,QAAQ,YAAY,MAAM,QAAQ,GAAG,GAAG;AACzD,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEO,SAAS,4BACd,QACA,MAIS;AACT,QAAM,UAAU,iBAAiB,MAAM;AACvC,QAAM,OAA8B;AAAA,IAClC,GAAI,WAAW,CAAC;AAAA,IAChB,SAAS,KAAK;AAAA,IACd,SAAS,KAAK;AAAA,IACd,SAAS;AAAA,EACX;AAEA,QAAM,UACJ,CAAC,WACD,QAAQ,YAAY,KAAK,WACzB,QAAQ,YAAY,KAAK,WACzB,QAAQ,YAAY;AAEtB,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,MAAI,CAAC,OAAO,YAAY;AACtB,WAAO,aAAa,CAAC;AAAA,EACvB;AACA,SAAO,WAAW,SAAS;AAC3B,SAAO;AACT;AAEO,SAAS,4BACd,QACA,OAGI,CAAC,GACI;AACT,QAAM,UAAU,iBAAiB,MAAM;AACvC,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AAEA,MAAI,KAAK,WAAW,QAAQ,WAAW,QAAQ,YAAY,KAAK,SAAS;AACvE,WAAO;AAAA,EACT;AAEA,MAAI,KAAK,WAAW,QAAQ,WAAW,QAAQ,YAAY,KAAK,SAAS;AACvE,WAAO;AAAA,EACT;AAEA,SAAO,OAAO,YAAY;AAC1B,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ActivitySignalBus.
|
|
3
|
+
*
|
|
4
|
+
* Pub/sub fabric for `LifeOpsBusFamily` events. Producers (calendar
|
|
5
|
+
* watcher, plugin-health, time-window emitter, manual-override gateway)
|
|
6
|
+
* publish typed envelopes; consumers (the `ScheduledTaskRunner`'s
|
|
7
|
+
* `ActivitySignalBusView`, plugin-health's recap aggregator) subscribe by
|
|
8
|
+
* family and read recent events.
|
|
9
|
+
*
|
|
10
|
+
* The bus is intentionally narrow. It does NOT:
|
|
11
|
+
* - Persist events (that is `LifeOpsRepository.insertTelemetryEvent`).
|
|
12
|
+
* - Replay across restarts (subscribers re-attach on boot).
|
|
13
|
+
* - Carry payload schemas (consult `FamilyRegistry` for that).
|
|
14
|
+
*
|
|
15
|
+
* It DOES:
|
|
16
|
+
* - Validate the family against the registered `FamilyRegistry`.
|
|
17
|
+
* - Buffer recent events per family (24h sliding window) so the read-side
|
|
18
|
+
* `ActivitySignalBusView.hasSignalSince` works without a DB hit.
|
|
19
|
+
* - Fan out synchronous subscribers (best-effort) so completion-checks see
|
|
20
|
+
* events before the runner re-evaluates them.
|
|
21
|
+
*/
|
|
22
|
+
import type { IAgentRuntime } from "@elizaos/core";
|
|
23
|
+
import type { LifeOpsBusFamily, LifeOpsTelemetryFamily } from "@elizaos/shared";
|
|
24
|
+
import type { FamilyRegistry } from "../registries/family-registry.js";
|
|
25
|
+
import type { ActivitySignalBusView, ScheduledTaskSubject } from "@elizaos/plugin-scheduling";
|
|
26
|
+
export interface ActivitySignalEnvelope {
|
|
27
|
+
family: LifeOpsBusFamily;
|
|
28
|
+
occurredAt: string;
|
|
29
|
+
/** Optional subject pointer (used by `hasSignalSince` subject filtering). */
|
|
30
|
+
subject?: ScheduledTaskSubject;
|
|
31
|
+
/**
|
|
32
|
+
* Producer-supplied payload. The bus does not interpret this; consumers
|
|
33
|
+
* that care consult the per-family schema in `FamilyRegistry`.
|
|
34
|
+
*/
|
|
35
|
+
payload?: unknown;
|
|
36
|
+
/** Free-form metadata for diagnostics. */
|
|
37
|
+
metadata?: Record<string, unknown>;
|
|
38
|
+
}
|
|
39
|
+
export interface ActivitySignalBus extends ActivitySignalBusView {
|
|
40
|
+
/** Publish an event to the bus. Validates family membership. */
|
|
41
|
+
publish(envelope: ActivitySignalEnvelope): void;
|
|
42
|
+
/**
|
|
43
|
+
* Subscribe to events of a given family. Returns an unsubscribe fn.
|
|
44
|
+
* Subscribers run synchronously after `publish` and must not throw.
|
|
45
|
+
*/
|
|
46
|
+
subscribe(family: LifeOpsBusFamily, handler: (envelope: ActivitySignalEnvelope) => void): () => void;
|
|
47
|
+
/**
|
|
48
|
+
* Read events that occurred since the given ISO instant. Optionally
|
|
49
|
+
* narrowed by family or subject.
|
|
50
|
+
*/
|
|
51
|
+
recent(args: {
|
|
52
|
+
sinceIso: string;
|
|
53
|
+
family?: LifeOpsBusFamily;
|
|
54
|
+
subject?: ScheduledTaskSubject;
|
|
55
|
+
}): ActivitySignalEnvelope[];
|
|
56
|
+
}
|
|
57
|
+
export interface CreateActivitySignalBusOptions {
|
|
58
|
+
/**
|
|
59
|
+
* FamilyRegistry the bus consults to validate event families. When unset,
|
|
60
|
+
* the bus accepts any family (degraded mode used in unit tests).
|
|
61
|
+
*/
|
|
62
|
+
familyRegistry?: FamilyRegistry;
|
|
63
|
+
/**
|
|
64
|
+
* Sliding-window retention. Older events are evicted on `publish`.
|
|
65
|
+
* Default: 24 hours.
|
|
66
|
+
*/
|
|
67
|
+
retentionMs?: number;
|
|
68
|
+
/**
|
|
69
|
+
* Hard cap per family on the number of buffered events. Default: 256.
|
|
70
|
+
*/
|
|
71
|
+
maxEventsPerFamily?: number;
|
|
72
|
+
}
|
|
73
|
+
export declare function createActivitySignalBus(options?: CreateActivitySignalBusOptions): ActivitySignalBus;
|
|
74
|
+
export declare function registerActivitySignalBus(runtime: IAgentRuntime, bus: ActivitySignalBus): void;
|
|
75
|
+
export declare function getActivitySignalBus(runtime: IAgentRuntime): ActivitySignalBus | null;
|
|
76
|
+
export declare function __resetActivitySignalBusForTests(runtime: IAgentRuntime): void;
|
|
77
|
+
export type { LifeOpsBusFamily, LifeOpsTelemetryFamily };
|
|
78
|
+
//# sourceMappingURL=bus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bus.d.ts","sourceRoot":"","sources":["../../../src/lifeops/signals/bus.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,gBAAgB,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,iBAAkB,SAAQ,qBAAqB;IAC9D,gEAAgE;IAChE,OAAO,CAAC,QAAQ,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAChD;;;OAGG;IACH,SAAS,CACP,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,CAAC,QAAQ,EAAE,sBAAsB,KAAK,IAAI,GAClD,MAAM,IAAI,CAAC;IACd;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,gBAAgB,CAAC;QAC1B,OAAO,CAAC,EAAE,oBAAoB,CAAC;KAChC,GAAG,sBAAsB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,8BAA8B;IAC7C;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAoID,wBAAgB,uBAAuB,CACrC,OAAO,GAAE,8BAAmC,GAC3C,iBAAiB,CAEnB;AAQD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,aAAa,EACtB,GAAG,EAAE,iBAAiB,GACrB,IAAI,CAEN;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,aAAa,GACrB,iBAAiB,GAAG,IAAI,CAE1B;AAED,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAE7E;AAMD,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,CAAC"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
const DEFAULT_RETENTION_MS = 24 * 60 * 60 * 1e3;
|
|
2
|
+
const DEFAULT_MAX_EVENTS_PER_FAMILY = 256;
|
|
3
|
+
class InMemoryActivitySignalBus {
|
|
4
|
+
familyRegistry;
|
|
5
|
+
retentionMs;
|
|
6
|
+
maxEventsPerFamily;
|
|
7
|
+
buffers = /* @__PURE__ */ new Map();
|
|
8
|
+
subscribers = /* @__PURE__ */ new Map();
|
|
9
|
+
constructor(options) {
|
|
10
|
+
this.familyRegistry = options.familyRegistry ?? null;
|
|
11
|
+
this.retentionMs = options.retentionMs ?? DEFAULT_RETENTION_MS;
|
|
12
|
+
this.maxEventsPerFamily = options.maxEventsPerFamily ?? DEFAULT_MAX_EVENTS_PER_FAMILY;
|
|
13
|
+
}
|
|
14
|
+
publish(envelope) {
|
|
15
|
+
if (!envelope.family) {
|
|
16
|
+
throw new Error("ActivitySignalBus.publish: envelope.family required");
|
|
17
|
+
}
|
|
18
|
+
if (this.familyRegistry && !this.familyRegistry.has(envelope.family)) {
|
|
19
|
+
throw new Error(
|
|
20
|
+
`ActivitySignalBus.publish: family "${envelope.family}" is not registered in FamilyRegistry`
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
if (!envelope.occurredAt) {
|
|
24
|
+
throw new Error(
|
|
25
|
+
"ActivitySignalBus.publish: envelope.occurredAt required"
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
const buf = this.buffers.get(envelope.family) ?? [];
|
|
29
|
+
buf.push(envelope);
|
|
30
|
+
this.evictExpired(buf);
|
|
31
|
+
if (buf.length > this.maxEventsPerFamily) {
|
|
32
|
+
buf.splice(0, buf.length - this.maxEventsPerFamily);
|
|
33
|
+
}
|
|
34
|
+
this.buffers.set(envelope.family, buf);
|
|
35
|
+
const handlers = this.subscribers.get(envelope.family);
|
|
36
|
+
if (handlers) {
|
|
37
|
+
for (const handler of handlers) {
|
|
38
|
+
handler(envelope);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
subscribe(family, handler) {
|
|
43
|
+
const set = this.subscribers.get(family) ?? /* @__PURE__ */ new Set();
|
|
44
|
+
set.add(handler);
|
|
45
|
+
this.subscribers.set(family, set);
|
|
46
|
+
return () => {
|
|
47
|
+
const live = this.subscribers.get(family);
|
|
48
|
+
if (!live) return;
|
|
49
|
+
live.delete(handler);
|
|
50
|
+
if (live.size === 0) this.subscribers.delete(family);
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
recent(args) {
|
|
54
|
+
const sinceMs = Date.parse(args.sinceIso);
|
|
55
|
+
if (!Number.isFinite(sinceMs)) {
|
|
56
|
+
throw new Error("ActivitySignalBus.recent: sinceIso must be ISO");
|
|
57
|
+
}
|
|
58
|
+
const buffers = args.family ? [this.buffers.get(args.family) ?? []] : Array.from(this.buffers.values());
|
|
59
|
+
const events = [];
|
|
60
|
+
for (const buf of buffers) {
|
|
61
|
+
for (const envelope of buf) {
|
|
62
|
+
if (Date.parse(envelope.occurredAt) < sinceMs) continue;
|
|
63
|
+
if (args.subject) {
|
|
64
|
+
if (envelope.subject?.kind !== args.subject.kind || envelope.subject.id !== args.subject.id) {
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
events.push(envelope);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return events.sort(
|
|
72
|
+
(a, b) => a.occurredAt < b.occurredAt ? -1 : a.occurredAt > b.occurredAt ? 1 : 0
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Read-side adapter for `ActivitySignalBusView`. The runner uses this on
|
|
77
|
+
* every `completion-check` evaluation; the implementation is a buffer
|
|
78
|
+
* scan, not a DB query, so it stays fast.
|
|
79
|
+
*/
|
|
80
|
+
hasSignalSince(args) {
|
|
81
|
+
const recent = this.recent({
|
|
82
|
+
sinceIso: args.sinceIso,
|
|
83
|
+
family: args.signalKind,
|
|
84
|
+
...args.subject ? { subject: args.subject } : {}
|
|
85
|
+
});
|
|
86
|
+
return recent.length > 0;
|
|
87
|
+
}
|
|
88
|
+
evictExpired(buf) {
|
|
89
|
+
const cutoff = Date.now() - this.retentionMs;
|
|
90
|
+
while (buf.length > 0) {
|
|
91
|
+
const first = buf[0];
|
|
92
|
+
if (!first) break;
|
|
93
|
+
if (Date.parse(first.occurredAt) >= cutoff) break;
|
|
94
|
+
buf.shift();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
function createActivitySignalBus(options = {}) {
|
|
99
|
+
return new InMemoryActivitySignalBus(options);
|
|
100
|
+
}
|
|
101
|
+
const buses = /* @__PURE__ */ new WeakMap();
|
|
102
|
+
function registerActivitySignalBus(runtime, bus) {
|
|
103
|
+
buses.set(runtime, bus);
|
|
104
|
+
}
|
|
105
|
+
function getActivitySignalBus(runtime) {
|
|
106
|
+
return buses.get(runtime) ?? null;
|
|
107
|
+
}
|
|
108
|
+
function __resetActivitySignalBusForTests(runtime) {
|
|
109
|
+
buses.delete(runtime);
|
|
110
|
+
}
|
|
111
|
+
export {
|
|
112
|
+
__resetActivitySignalBusForTests,
|
|
113
|
+
createActivitySignalBus,
|
|
114
|
+
getActivitySignalBus,
|
|
115
|
+
registerActivitySignalBus
|
|
116
|
+
};
|
|
117
|
+
//# sourceMappingURL=bus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lifeops/signals/bus.ts"],"sourcesContent":["/**\n * ActivitySignalBus.\n *\n * Pub/sub fabric for `LifeOpsBusFamily` events. Producers (calendar\n * watcher, plugin-health, time-window emitter, manual-override gateway)\n * publish typed envelopes; consumers (the `ScheduledTaskRunner`'s\n * `ActivitySignalBusView`, plugin-health's recap aggregator) subscribe by\n * family and read recent events.\n *\n * The bus is intentionally narrow. It does NOT:\n * - Persist events (that is `LifeOpsRepository.insertTelemetryEvent`).\n * - Replay across restarts (subscribers re-attach on boot).\n * - Carry payload schemas (consult `FamilyRegistry` for that).\n *\n * It DOES:\n * - Validate the family against the registered `FamilyRegistry`.\n * - Buffer recent events per family (24h sliding window) so the read-side\n * `ActivitySignalBusView.hasSignalSince` works without a DB hit.\n * - Fan out synchronous subscribers (best-effort) so completion-checks see\n * events before the runner re-evaluates them.\n */\n\nimport type { IAgentRuntime } from \"@elizaos/core\";\nimport type { LifeOpsBusFamily, LifeOpsTelemetryFamily } from \"@elizaos/shared\";\nimport type { FamilyRegistry } from \"../registries/family-registry.js\";\nimport type {\n ActivitySignalBusView,\n ScheduledTaskSubject,\n} from \"@elizaos/plugin-scheduling\";\n\nexport interface ActivitySignalEnvelope {\n family: LifeOpsBusFamily;\n occurredAt: string;\n /** Optional subject pointer (used by `hasSignalSince` subject filtering). */\n subject?: ScheduledTaskSubject;\n /**\n * Producer-supplied payload. The bus does not interpret this; consumers\n * that care consult the per-family schema in `FamilyRegistry`.\n */\n payload?: unknown;\n /** Free-form metadata for diagnostics. */\n metadata?: Record<string, unknown>;\n}\n\nexport interface ActivitySignalBus extends ActivitySignalBusView {\n /** Publish an event to the bus. Validates family membership. */\n publish(envelope: ActivitySignalEnvelope): void;\n /**\n * Subscribe to events of a given family. Returns an unsubscribe fn.\n * Subscribers run synchronously after `publish` and must not throw.\n */\n subscribe(\n family: LifeOpsBusFamily,\n handler: (envelope: ActivitySignalEnvelope) => void,\n ): () => void;\n /**\n * Read events that occurred since the given ISO instant. Optionally\n * narrowed by family or subject.\n */\n recent(args: {\n sinceIso: string;\n family?: LifeOpsBusFamily;\n subject?: ScheduledTaskSubject;\n }): ActivitySignalEnvelope[];\n}\n\nexport interface CreateActivitySignalBusOptions {\n /**\n * FamilyRegistry the bus consults to validate event families. When unset,\n * the bus accepts any family (degraded mode used in unit tests).\n */\n familyRegistry?: FamilyRegistry;\n /**\n * Sliding-window retention. Older events are evicted on `publish`.\n * Default: 24 hours.\n */\n retentionMs?: number;\n /**\n * Hard cap per family on the number of buffered events. Default: 256.\n */\n maxEventsPerFamily?: number;\n}\n\nconst DEFAULT_RETENTION_MS = 24 * 60 * 60 * 1000;\nconst DEFAULT_MAX_EVENTS_PER_FAMILY = 256;\n\nclass InMemoryActivitySignalBus implements ActivitySignalBus {\n private readonly familyRegistry: FamilyRegistry | null;\n private readonly retentionMs: number;\n private readonly maxEventsPerFamily: number;\n private readonly buffers = new Map<\n LifeOpsBusFamily,\n ActivitySignalEnvelope[]\n >();\n private readonly subscribers = new Map<\n LifeOpsBusFamily,\n Set<(e: ActivitySignalEnvelope) => void>\n >();\n\n constructor(options: CreateActivitySignalBusOptions) {\n this.familyRegistry = options.familyRegistry ?? null;\n this.retentionMs = options.retentionMs ?? DEFAULT_RETENTION_MS;\n this.maxEventsPerFamily =\n options.maxEventsPerFamily ?? DEFAULT_MAX_EVENTS_PER_FAMILY;\n }\n\n publish(envelope: ActivitySignalEnvelope): void {\n if (!envelope.family) {\n throw new Error(\"ActivitySignalBus.publish: envelope.family required\");\n }\n if (this.familyRegistry && !this.familyRegistry.has(envelope.family)) {\n throw new Error(\n `ActivitySignalBus.publish: family \"${envelope.family}\" is not registered in FamilyRegistry`,\n );\n }\n if (!envelope.occurredAt) {\n throw new Error(\n \"ActivitySignalBus.publish: envelope.occurredAt required\",\n );\n }\n\n const buf = this.buffers.get(envelope.family) ?? [];\n buf.push(envelope);\n this.evictExpired(buf);\n if (buf.length > this.maxEventsPerFamily) {\n buf.splice(0, buf.length - this.maxEventsPerFamily);\n }\n this.buffers.set(envelope.family, buf);\n\n const handlers = this.subscribers.get(envelope.family);\n if (handlers) {\n for (const handler of handlers) {\n handler(envelope);\n }\n }\n }\n\n subscribe(\n family: LifeOpsBusFamily,\n handler: (envelope: ActivitySignalEnvelope) => void,\n ): () => void {\n const set = this.subscribers.get(family) ?? new Set();\n set.add(handler);\n this.subscribers.set(family, set);\n return () => {\n const live = this.subscribers.get(family);\n if (!live) return;\n live.delete(handler);\n if (live.size === 0) this.subscribers.delete(family);\n };\n }\n\n recent(args: {\n sinceIso: string;\n family?: LifeOpsBusFamily;\n subject?: ScheduledTaskSubject;\n }): ActivitySignalEnvelope[] {\n const sinceMs = Date.parse(args.sinceIso);\n if (!Number.isFinite(sinceMs)) {\n throw new Error(\"ActivitySignalBus.recent: sinceIso must be ISO\");\n }\n const buffers = args.family\n ? [this.buffers.get(args.family) ?? []]\n : Array.from(this.buffers.values());\n const events: ActivitySignalEnvelope[] = [];\n for (const buf of buffers) {\n for (const envelope of buf) {\n if (Date.parse(envelope.occurredAt) < sinceMs) continue;\n if (args.subject) {\n if (\n envelope.subject?.kind !== args.subject.kind ||\n envelope.subject.id !== args.subject.id\n ) {\n continue;\n }\n }\n events.push(envelope);\n }\n }\n return events.sort((a, b) =>\n a.occurredAt < b.occurredAt ? -1 : a.occurredAt > b.occurredAt ? 1 : 0,\n );\n }\n\n /**\n * Read-side adapter for `ActivitySignalBusView`. The runner uses this on\n * every `completion-check` evaluation; the implementation is a buffer\n * scan, not a DB query, so it stays fast.\n */\n hasSignalSince(args: {\n signalKind: string;\n sinceIso: string;\n subject?: ScheduledTaskSubject;\n }): boolean {\n const recent = this.recent({\n sinceIso: args.sinceIso,\n family: args.signalKind,\n ...(args.subject ? { subject: args.subject } : {}),\n });\n return recent.length > 0;\n }\n\n private evictExpired(buf: ActivitySignalEnvelope[]): void {\n const cutoff = Date.now() - this.retentionMs;\n while (buf.length > 0) {\n const first = buf[0];\n if (!first) break;\n if (Date.parse(first.occurredAt) >= cutoff) break;\n buf.shift();\n }\n }\n}\n\nexport function createActivitySignalBus(\n options: CreateActivitySignalBusOptions = {},\n): ActivitySignalBus {\n return new InMemoryActivitySignalBus(options);\n}\n\n// ---------------------------------------------------------------------------\n// Per-runtime binding\n// ---------------------------------------------------------------------------\n\nconst buses = new WeakMap<IAgentRuntime, ActivitySignalBus>();\n\nexport function registerActivitySignalBus(\n runtime: IAgentRuntime,\n bus: ActivitySignalBus,\n): void {\n buses.set(runtime, bus);\n}\n\nexport function getActivitySignalBus(\n runtime: IAgentRuntime,\n): ActivitySignalBus | null {\n return buses.get(runtime) ?? null;\n}\n\nexport function __resetActivitySignalBusForTests(runtime: IAgentRuntime): void {\n buses.delete(runtime);\n}\n\n// ---------------------------------------------------------------------------\n// Re-exports so callers import bus + family types from one place.\n// ---------------------------------------------------------------------------\n\nexport type { LifeOpsBusFamily, LifeOpsTelemetryFamily };\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { IAgentRuntime } from "@elizaos/core";
|
|
2
|
+
export type RawSqlQuery = {
|
|
3
|
+
queryChunks: Array<{
|
|
4
|
+
value?: unknown;
|
|
5
|
+
}>;
|
|
6
|
+
};
|
|
7
|
+
export type RuntimeDb = {
|
|
8
|
+
execute: (query: RawSqlQuery) => Promise<unknown>;
|
|
9
|
+
};
|
|
10
|
+
export declare function asObject(value: unknown): Record<string, unknown> | null;
|
|
11
|
+
export declare function toText(value: unknown, fallback?: string): string;
|
|
12
|
+
export declare function toNumber(value: unknown, fallback?: number): number;
|
|
13
|
+
export declare function toBoolean(value: unknown, fallback?: boolean): boolean;
|
|
14
|
+
export declare function parseJsonValue<T>(value: unknown, fallback: T): T;
|
|
15
|
+
export declare function parseJsonRecord(value: unknown): Record<string, unknown>;
|
|
16
|
+
export declare function parseJsonArray<T>(value: unknown): T[];
|
|
17
|
+
export declare function extractRows(result: unknown): Array<Record<string, unknown>>;
|
|
18
|
+
export declare function getRuntimeDb(runtime: IAgentRuntime): RuntimeDb;
|
|
19
|
+
export declare function executeRawSql(runtime: IAgentRuntime, sqlText: string): Promise<Array<Record<string, unknown>>>;
|
|
20
|
+
export type TransactionalDb = {
|
|
21
|
+
execute: (query: RawSqlQuery) => Promise<unknown>;
|
|
22
|
+
};
|
|
23
|
+
export declare class OptimisticLockError extends Error {
|
|
24
|
+
readonly code = "OPTIMISTIC_LOCK_ERROR";
|
|
25
|
+
readonly table: string;
|
|
26
|
+
readonly id: string;
|
|
27
|
+
readonly expectedVersion: number;
|
|
28
|
+
constructor(args: {
|
|
29
|
+
table: string;
|
|
30
|
+
id: string;
|
|
31
|
+
expectedVersion: number;
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Run `fn` inside a database transaction. The handle passed to `fn` exposes
|
|
36
|
+
* the same `.execute(raw)` shape as the global runtime DB, but every call
|
|
37
|
+
* goes through the transaction. Throwing rolls back; returning commits.
|
|
38
|
+
*
|
|
39
|
+
* Drizzle's pg adapter supports `db.transaction(fn)` natively. If the adapter
|
|
40
|
+
* does not (e.g., a test fake), we fall back to running `fn` against the
|
|
41
|
+
* global DB and warn — atomicity is not guaranteed in that mode.
|
|
42
|
+
*/
|
|
43
|
+
export declare function withTransaction<T>(runtime: IAgentRuntime, fn: (tx: TransactionalDb) => Promise<T>): Promise<T>;
|
|
44
|
+
/**
|
|
45
|
+
* Transactional analogue of `executeRawSql`. Pass the `tx` handed in by
|
|
46
|
+
* `withTransaction`'s callback — every statement participates in the same
|
|
47
|
+
* transaction and commits/rolls back together.
|
|
48
|
+
*/
|
|
49
|
+
export declare function executeRawSqlTx(tx: TransactionalDb, sqlText: string): Promise<Array<Record<string, unknown>>>;
|
|
50
|
+
/**
|
|
51
|
+
* Retry policy for optimistic-lock conflicts. Default: 3 attempts with
|
|
52
|
+
* exponential backoff at 20ms / 50ms / 120ms. After 3 attempts the original
|
|
53
|
+
* `OptimisticLockError` is rethrown.
|
|
54
|
+
*/
|
|
55
|
+
export declare function withOptimisticRetry<T>(fn: () => Promise<T>, options?: {
|
|
56
|
+
maxAttempts?: number;
|
|
57
|
+
baseDelayMs?: number;
|
|
58
|
+
}): Promise<T>;
|
|
59
|
+
export declare function sqlQuote(value: string): string;
|
|
60
|
+
export declare function sqlText(value: string | null | undefined): string;
|
|
61
|
+
export declare function sqlInteger(value: number | null | undefined): string;
|
|
62
|
+
export declare function sqlNumber(value: number | null | undefined): string;
|
|
63
|
+
export declare function sqlBoolean(value: boolean): string;
|
|
64
|
+
export declare function sqlJson(value: unknown): string;
|
|
65
|
+
//# sourceMappingURL=sql.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../../src/lifeops/sql.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
let cachedSqlRaw = null;
|
|
2
|
+
function asObject(value) {
|
|
3
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return null;
|
|
4
|
+
return value;
|
|
5
|
+
}
|
|
6
|
+
function toText(value, fallback = "") {
|
|
7
|
+
if (typeof value === "string") return value;
|
|
8
|
+
if (value === null || value === void 0) return fallback;
|
|
9
|
+
return String(value);
|
|
10
|
+
}
|
|
11
|
+
function toNumber(value, fallback = 0) {
|
|
12
|
+
if (typeof value === "number" && Number.isFinite(value)) return value;
|
|
13
|
+
if (typeof value === "string") {
|
|
14
|
+
const parsed = Number(value);
|
|
15
|
+
if (Number.isFinite(parsed)) return parsed;
|
|
16
|
+
}
|
|
17
|
+
return fallback;
|
|
18
|
+
}
|
|
19
|
+
function toBoolean(value, fallback = false) {
|
|
20
|
+
if (typeof value === "boolean") return value;
|
|
21
|
+
if (typeof value === "number") return value !== 0;
|
|
22
|
+
if (typeof value === "string") {
|
|
23
|
+
const normalized = value.trim().toLowerCase();
|
|
24
|
+
if (["1", "true", "yes", "on"].includes(normalized)) return true;
|
|
25
|
+
if (["0", "false", "no", "off"].includes(normalized)) return false;
|
|
26
|
+
}
|
|
27
|
+
return fallback;
|
|
28
|
+
}
|
|
29
|
+
function isMissingJsonValue(value) {
|
|
30
|
+
return value === null || value === void 0 || value === "";
|
|
31
|
+
}
|
|
32
|
+
function parseJsonValue(value, fallback) {
|
|
33
|
+
if (isMissingJsonValue(value)) return fallback;
|
|
34
|
+
if (typeof value !== "string") {
|
|
35
|
+
if (typeof value === "object") return value;
|
|
36
|
+
throw new Error(
|
|
37
|
+
`[LifeOpsSql] Expected JSON string or object, received ${typeof value}`
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
try {
|
|
41
|
+
return JSON.parse(value);
|
|
42
|
+
} catch (error) {
|
|
43
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
44
|
+
throw new Error(`[LifeOpsSql] Invalid JSON value: ${message}`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function parseJsonRecord(value) {
|
|
48
|
+
if (isMissingJsonValue(value)) return {};
|
|
49
|
+
const parsed = parseJsonValue(value, null);
|
|
50
|
+
const object = asObject(parsed);
|
|
51
|
+
if (object) return object;
|
|
52
|
+
throw new Error("[LifeOpsSql] Expected JSON object");
|
|
53
|
+
}
|
|
54
|
+
function parseJsonArray(value) {
|
|
55
|
+
if (isMissingJsonValue(value)) return [];
|
|
56
|
+
const parsed = parseJsonValue(value, null);
|
|
57
|
+
if (Array.isArray(parsed)) return parsed;
|
|
58
|
+
throw new Error("[LifeOpsSql] Expected JSON array");
|
|
59
|
+
}
|
|
60
|
+
function extractRows(result) {
|
|
61
|
+
if (Array.isArray(result)) {
|
|
62
|
+
return result.map((row) => asObject(row)).filter((row) => row !== null);
|
|
63
|
+
}
|
|
64
|
+
const object = asObject(result);
|
|
65
|
+
if (!object) return [];
|
|
66
|
+
const rows = object.rows;
|
|
67
|
+
if (!Array.isArray(rows)) return [];
|
|
68
|
+
return rows.map((row) => asObject(row)).filter((row) => row !== null);
|
|
69
|
+
}
|
|
70
|
+
async function getSqlRaw() {
|
|
71
|
+
if (cachedSqlRaw) return cachedSqlRaw;
|
|
72
|
+
const drizzle = await import("drizzle-orm");
|
|
73
|
+
cachedSqlRaw = drizzle.sql.raw;
|
|
74
|
+
return cachedSqlRaw;
|
|
75
|
+
}
|
|
76
|
+
function getRuntimeDb(runtime) {
|
|
77
|
+
const db = runtime.adapter.db;
|
|
78
|
+
if (!db || typeof db.execute !== "function") {
|
|
79
|
+
throw new Error("runtime database adapter unavailable");
|
|
80
|
+
}
|
|
81
|
+
return db;
|
|
82
|
+
}
|
|
83
|
+
async function executeRawSql(runtime, sqlText2) {
|
|
84
|
+
const raw = await getSqlRaw();
|
|
85
|
+
const db = getRuntimeDb(runtime);
|
|
86
|
+
const result = await db.execute(raw(sqlText2));
|
|
87
|
+
return extractRows(result);
|
|
88
|
+
}
|
|
89
|
+
class OptimisticLockError extends Error {
|
|
90
|
+
code = "OPTIMISTIC_LOCK_ERROR";
|
|
91
|
+
table;
|
|
92
|
+
id;
|
|
93
|
+
expectedVersion;
|
|
94
|
+
constructor(args) {
|
|
95
|
+
super(
|
|
96
|
+
`Optimistic lock conflict on ${args.table} id=${args.id} expectedVersion=${args.expectedVersion}`
|
|
97
|
+
);
|
|
98
|
+
this.table = args.table;
|
|
99
|
+
this.id = args.id;
|
|
100
|
+
this.expectedVersion = args.expectedVersion;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
async function withTransaction(runtime, fn) {
|
|
104
|
+
const db = getRuntimeDb(runtime);
|
|
105
|
+
if (typeof db.transaction === "function") {
|
|
106
|
+
return await db.transaction(async (tx) => fn(tx));
|
|
107
|
+
}
|
|
108
|
+
return await fn({
|
|
109
|
+
execute: (query) => db.execute(query)
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
async function executeRawSqlTx(tx, sqlText2) {
|
|
113
|
+
const raw = await getSqlRaw();
|
|
114
|
+
const result = await tx.execute(raw(sqlText2));
|
|
115
|
+
return extractRows(result);
|
|
116
|
+
}
|
|
117
|
+
async function withOptimisticRetry(fn, options) {
|
|
118
|
+
const maxAttempts = Math.max(1, options?.maxAttempts ?? 3);
|
|
119
|
+
const baseDelay = Math.max(1, options?.baseDelayMs ?? 20);
|
|
120
|
+
let lastError;
|
|
121
|
+
for (let attempt = 0; attempt < maxAttempts; attempt += 1) {
|
|
122
|
+
try {
|
|
123
|
+
return await fn();
|
|
124
|
+
} catch (error) {
|
|
125
|
+
if (!(error instanceof OptimisticLockError)) {
|
|
126
|
+
throw error;
|
|
127
|
+
}
|
|
128
|
+
lastError = error;
|
|
129
|
+
if (attempt < maxAttempts - 1) {
|
|
130
|
+
const delay = baseDelay * 2 ** attempt + Math.floor(Math.random() * baseDelay);
|
|
131
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
throw lastError;
|
|
136
|
+
}
|
|
137
|
+
function sqlQuote(value) {
|
|
138
|
+
return `'${value.replace(/'/g, "''")}'`;
|
|
139
|
+
}
|
|
140
|
+
function sqlText(value) {
|
|
141
|
+
if (value === null || value === void 0) return "NULL";
|
|
142
|
+
return sqlQuote(value);
|
|
143
|
+
}
|
|
144
|
+
function sqlInteger(value) {
|
|
145
|
+
if (value === null || value === void 0) return "NULL";
|
|
146
|
+
if (!Number.isFinite(value)) throw new Error("invalid numeric SQL literal");
|
|
147
|
+
return String(Math.trunc(value));
|
|
148
|
+
}
|
|
149
|
+
function sqlNumber(value) {
|
|
150
|
+
if (value === null || value === void 0) return "NULL";
|
|
151
|
+
if (!Number.isFinite(value)) throw new Error("invalid numeric SQL literal");
|
|
152
|
+
return String(value);
|
|
153
|
+
}
|
|
154
|
+
function sqlBoolean(value) {
|
|
155
|
+
return value ? "TRUE" : "FALSE";
|
|
156
|
+
}
|
|
157
|
+
function sqlJson(value) {
|
|
158
|
+
return sqlQuote(JSON.stringify(value ?? null));
|
|
159
|
+
}
|
|
160
|
+
export {
|
|
161
|
+
OptimisticLockError,
|
|
162
|
+
asObject,
|
|
163
|
+
executeRawSql,
|
|
164
|
+
executeRawSqlTx,
|
|
165
|
+
extractRows,
|
|
166
|
+
getRuntimeDb,
|
|
167
|
+
parseJsonArray,
|
|
168
|
+
parseJsonRecord,
|
|
169
|
+
parseJsonValue,
|
|
170
|
+
sqlBoolean,
|
|
171
|
+
sqlInteger,
|
|
172
|
+
sqlJson,
|
|
173
|
+
sqlNumber,
|
|
174
|
+
sqlQuote,
|
|
175
|
+
sqlText,
|
|
176
|
+
toBoolean,
|
|
177
|
+
toNumber,
|
|
178
|
+
toText,
|
|
179
|
+
withOptimisticRetry,
|
|
180
|
+
withTransaction
|
|
181
|
+
};
|
|
182
|
+
//# sourceMappingURL=sql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lifeops/sql.ts"],"sourcesContent":["import type { IAgentRuntime } from \"@elizaos/core\";\n\nexport type RawSqlQuery = {\n queryChunks: Array<{ value?: unknown }>;\n};\n\nexport type RuntimeDb = {\n execute: (query: RawSqlQuery) => Promise<unknown>;\n};\n\nlet cachedSqlRaw: ((query: string) => RawSqlQuery) | null = null;\n\nexport function asObject(value: unknown): Record<string, unknown> | null {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return null;\n return value as Record<string, unknown>;\n}\n\nexport function toText(value: unknown, fallback = \"\"): string {\n if (typeof value === \"string\") return value;\n if (value === null || value === undefined) return fallback;\n return String(value);\n}\n\nexport function toNumber(value: unknown, fallback = 0): number {\n if (typeof value === \"number\" && Number.isFinite(value)) return value;\n if (typeof value === \"string\") {\n const parsed = Number(value);\n if (Number.isFinite(parsed)) return parsed;\n }\n return fallback;\n}\n\nexport function toBoolean(value: unknown, fallback = false): boolean {\n if (typeof value === \"boolean\") return value;\n if (typeof value === \"number\") return value !== 0;\n if (typeof value === \"string\") {\n const normalized = value.trim().toLowerCase();\n if ([\"1\", \"true\", \"yes\", \"on\"].includes(normalized)) return true;\n if ([\"0\", \"false\", \"no\", \"off\"].includes(normalized)) return false;\n }\n return fallback;\n}\n\nfunction isMissingJsonValue(value: unknown): boolean {\n return value === null || value === undefined || value === \"\";\n}\n\nexport function parseJsonValue<T>(value: unknown, fallback: T): T {\n if (isMissingJsonValue(value)) return fallback;\n if (typeof value !== \"string\") {\n if (typeof value === \"object\") return value as T;\n throw new Error(\n `[LifeOpsSql] Expected JSON string or object, received ${typeof value}`,\n );\n }\n try {\n return JSON.parse(value) as T;\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n throw new Error(`[LifeOpsSql] Invalid JSON value: ${message}`);\n }\n}\n\nexport function parseJsonRecord(value: unknown): Record<string, unknown> {\n if (isMissingJsonValue(value)) return {};\n const parsed = parseJsonValue<Record<string, unknown> | null>(value, null);\n const object = asObject(parsed);\n if (object) return object;\n throw new Error(\"[LifeOpsSql] Expected JSON object\");\n}\n\nexport function parseJsonArray<T>(value: unknown): T[] {\n if (isMissingJsonValue(value)) return [];\n const parsed = parseJsonValue<T[] | null>(value, null);\n if (Array.isArray(parsed)) return parsed;\n throw new Error(\"[LifeOpsSql] Expected JSON array\");\n}\n\nexport function extractRows(result: unknown): Array<Record<string, unknown>> {\n if (Array.isArray(result)) {\n return result\n .map((row) => asObject(row))\n .filter((row): row is Record<string, unknown> => row !== null);\n }\n const object = asObject(result);\n if (!object) return [];\n const rows = object.rows;\n if (!Array.isArray(rows)) return [];\n return rows\n .map((row) => asObject(row))\n .filter((row): row is Record<string, unknown> => row !== null);\n}\n\nasync function getSqlRaw(): Promise<(query: string) => RawSqlQuery> {\n if (cachedSqlRaw) return cachedSqlRaw;\n const drizzle = (await import(\"drizzle-orm\")) as {\n sql: { raw: (query: string) => RawSqlQuery };\n };\n cachedSqlRaw = drizzle.sql.raw;\n return cachedSqlRaw;\n}\n\nexport function getRuntimeDb(runtime: IAgentRuntime): RuntimeDb {\n const db = runtime.adapter.db as RuntimeDb | undefined;\n if (!db || typeof db.execute !== \"function\") {\n throw new Error(\"runtime database adapter unavailable\");\n }\n return db;\n}\n\nexport async function executeRawSql(\n runtime: IAgentRuntime,\n sqlText: string,\n): Promise<Array<Record<string, unknown>>> {\n const raw = await getSqlRaw();\n const db = getRuntimeDb(runtime);\n const result = await db.execute(raw(sqlText));\n return extractRows(result);\n}\n\n// ---------------------------------------------------------------------------\n// Transactions and optimistic concurrency\n//\n// Atomic multi-step operations (e.g., thread merge: update target + mark N\n// source threads stopped + append events) MUST run inside `withTransaction`.\n// Without it, a crash mid-loop leaves dangling state — half-merged threads,\n// scheduled tasks fired but not dispatched, etc.\n//\n// `withTransaction` opens a PostgreSQL transaction via the underlying drizzle\n// adapter and exposes a `TransactionalDb` handle with the same `.execute(raw)`\n// shape as the global runtime DB. Pass it into transaction-aware variants of\n// `executeRawSql`/repository methods (currently named `executeRawSqlTx`).\n//\n// `OptimisticLockError` is thrown when an UPDATE with a version check affects\n// 0 rows — caller catches once, re-reads fresh, retries (3x max, with\n// exponential backoff), then surfaces the conflict.\n// ---------------------------------------------------------------------------\n\nexport type TransactionalDb = {\n execute: (query: RawSqlQuery) => Promise<unknown>;\n};\n\ntype DrizzleTransactionalDb = RuntimeDb & {\n transaction?: <T>(fn: (tx: TransactionalDb) => Promise<T>) => Promise<T>;\n};\n\nexport class OptimisticLockError extends Error {\n readonly code = \"OPTIMISTIC_LOCK_ERROR\";\n readonly table: string;\n readonly id: string;\n readonly expectedVersion: number;\n constructor(args: { table: string; id: string; expectedVersion: number }) {\n super(\n `Optimistic lock conflict on ${args.table} id=${args.id} expectedVersion=${args.expectedVersion}`,\n );\n this.table = args.table;\n this.id = args.id;\n this.expectedVersion = args.expectedVersion;\n }\n}\n\n/**\n * Run `fn` inside a database transaction. The handle passed to `fn` exposes\n * the same `.execute(raw)` shape as the global runtime DB, but every call\n * goes through the transaction. Throwing rolls back; returning commits.\n *\n * Drizzle's pg adapter supports `db.transaction(fn)` natively. If the adapter\n * does not (e.g., a test fake), we fall back to running `fn` against the\n * global DB and warn — atomicity is not guaranteed in that mode.\n */\nexport async function withTransaction<T>(\n runtime: IAgentRuntime,\n fn: (tx: TransactionalDb) => Promise<T>,\n): Promise<T> {\n const db = getRuntimeDb(runtime) as DrizzleTransactionalDb;\n if (typeof db.transaction === \"function\") {\n return await db.transaction(async (tx) => fn(tx));\n }\n // Adapter does not support transactions (likely a test fake). Run inline.\n return await fn({\n execute: (query) => db.execute(query),\n });\n}\n\n/**\n * Transactional analogue of `executeRawSql`. Pass the `tx` handed in by\n * `withTransaction`'s callback — every statement participates in the same\n * transaction and commits/rolls back together.\n */\nexport async function executeRawSqlTx(\n tx: TransactionalDb,\n sqlText: string,\n): Promise<Array<Record<string, unknown>>> {\n const raw = await getSqlRaw();\n const result = await tx.execute(raw(sqlText));\n return extractRows(result);\n}\n\n/**\n * Retry policy for optimistic-lock conflicts. Default: 3 attempts with\n * exponential backoff at 20ms / 50ms / 120ms. After 3 attempts the original\n * `OptimisticLockError` is rethrown.\n */\nexport async function withOptimisticRetry<T>(\n fn: () => Promise<T>,\n options?: { maxAttempts?: number; baseDelayMs?: number },\n): Promise<T> {\n const maxAttempts = Math.max(1, options?.maxAttempts ?? 3);\n const baseDelay = Math.max(1, options?.baseDelayMs ?? 20);\n let lastError: unknown;\n for (let attempt = 0; attempt < maxAttempts; attempt += 1) {\n try {\n return await fn();\n } catch (error) {\n if (!(error instanceof OptimisticLockError)) {\n throw error;\n }\n lastError = error;\n if (attempt < maxAttempts - 1) {\n const delay =\n baseDelay * 2 ** attempt + Math.floor(Math.random() * baseDelay);\n await new Promise((resolve) => setTimeout(resolve, delay));\n }\n }\n }\n throw lastError;\n}\n\n// ---------------------------------------------------------------------------\n// SQL value encoders\n// ---------------------------------------------------------------------------\n\nexport function sqlQuote(value: string): string {\n return `'${value.replace(/'/g, \"''\")}'`;\n}\n\nexport function sqlText(value: string | null | undefined): string {\n if (value === null || value === undefined) return \"NULL\";\n return sqlQuote(value);\n}\n\nexport function sqlInteger(value: number | null | undefined): string {\n if (value === null || value === undefined) return \"NULL\";\n if (!Number.isFinite(value)) throw new Error(\"invalid numeric SQL literal\");\n return String(Math.trunc(value));\n}\n\nexport function sqlNumber(value: number | null | undefined): string {\n if (value === null || value === undefined) return \"NULL\";\n if (!Number.isFinite(value)) throw new Error(\"invalid numeric SQL literal\");\n return String(value);\n}\n\nexport function sqlBoolean(value: boolean): string {\n return value ? \"TRUE\" : \"FALSE\";\n}\n\nexport function sqlJson(value: unknown): string {\n return sqlQuote(JSON.stringify(value ?? null));\n}\n"],"mappings":"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","names":["sqlText"]}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure decision helper for the stretch reminder dispatch loop.
|
|
3
|
+
*
|
|
4
|
+
* The runtime's reminder loop already handles channel selection, quiet
|
|
5
|
+
* hours, and activity gating. This helper layers in stretch-specific
|
|
6
|
+
* pacing rules so the dispatch site can ask one question — "should the
|
|
7
|
+
* stretch nudge fire right now?" — without re-deriving the same logic
|
|
8
|
+
* inline next to every other reminder type.
|
|
9
|
+
*
|
|
10
|
+
* The rules encoded here:
|
|
11
|
+
* - Honor the configured cadence: don't fire twice inside the same
|
|
12
|
+
* interval window. Default is 6 hours (matches `seed-routines.ts`).
|
|
13
|
+
* - If the user went outside / took a walk after the last stretch,
|
|
14
|
+
* reset the cooldown — the body movement covered what stretching
|
|
15
|
+
* would have provided.
|
|
16
|
+
* - Skip stretch nudges entirely on busy days. Stretch is soft
|
|
17
|
+
* self-care; on packed days the user does not want a low-priority
|
|
18
|
+
* ping competing with meeting traffic.
|
|
19
|
+
* - Skip late-evening fires (>= 21:00 local) — by then the user is
|
|
20
|
+
* winding down and another stretch ping is just noise.
|
|
21
|
+
* - Skip weekends. Stretch nudges target sedentary work patterns;
|
|
22
|
+
* weekends usually break that pattern naturally.
|
|
23
|
+
*
|
|
24
|
+
* This module deliberately takes plain primitives rather than the
|
|
25
|
+
* runtime's `LifeOpsAttentionContext` so the same logic can be unit
|
|
26
|
+
* tested without standing up the full reminder service.
|
|
27
|
+
*/
|
|
28
|
+
export interface ShouldStretchNowInput {
|
|
29
|
+
/** Current epoch milliseconds. */
|
|
30
|
+
nowMs: number;
|
|
31
|
+
/** Epoch ms of the last delivered stretch nudge, or null if never. */
|
|
32
|
+
lastStretchMs: number | null;
|
|
33
|
+
/**
|
|
34
|
+
* Epoch ms of the most recent "user went outside / took a walk"
|
|
35
|
+
* signal, or null if the activity profile cannot tell. When this is
|
|
36
|
+
* more recent than `lastStretchMs`, the stretch cooldown resets so we
|
|
37
|
+
* do not double-nudge a user who just got fresh body movement.
|
|
38
|
+
*/
|
|
39
|
+
lastWalkOutMs: number | null;
|
|
40
|
+
/**
|
|
41
|
+
* Caller-computed busy-day verdict. Stretch is soft self-care and
|
|
42
|
+
* should never compete with calendar-busy or screen-busy days.
|
|
43
|
+
*/
|
|
44
|
+
isBusyDay: boolean;
|
|
45
|
+
/** Local day-of-week, 0 (Sunday) through 6 (Saturday). */
|
|
46
|
+
dayOfWeek: number;
|
|
47
|
+
/** Local hour-of-day, 0–23. Used for the late-evening cutoff. */
|
|
48
|
+
hourOfDay: number;
|
|
49
|
+
/**
|
|
50
|
+
* Optional override of the inter-fire cooldown. Defaults to
|
|
51
|
+
* `DEFAULT_STRETCH_INTERVAL_MS` (6h) which matches the routine seed.
|
|
52
|
+
*/
|
|
53
|
+
intervalMs?: number;
|
|
54
|
+
}
|
|
55
|
+
export interface ShouldStretchNowResult {
|
|
56
|
+
shouldFire: boolean;
|
|
57
|
+
reason: string;
|
|
58
|
+
}
|
|
59
|
+
export declare function shouldStretchNow(input: ShouldStretchNowInput): ShouldStretchNowResult;
|
|
60
|
+
/**
|
|
61
|
+
* Natural-sounding stretch reminder copy variants. The dispatch site
|
|
62
|
+
* picks one deterministically (e.g. day-of-year mod count) so a given
|
|
63
|
+
* day always produces the same nudge — useful for tests and for not
|
|
64
|
+
* spamming the user with two visibly different copies in the same
|
|
65
|
+
* window if a backfill fires later.
|
|
66
|
+
*/
|
|
67
|
+
export declare const STRETCH_REMINDER_VARIANTS: readonly string[];
|
|
68
|
+
export interface StretchReminderCopyInput {
|
|
69
|
+
/** Local day-of-year (1–366) used as the deterministic rotation key. */
|
|
70
|
+
dayOfYear: number;
|
|
71
|
+
}
|
|
72
|
+
export declare function pickStretchReminderCopy(input: StretchReminderCopyInput): string;
|
|
73
|
+
//# sourceMappingURL=stretch-decider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stretch-decider.d.ts","sourceRoot":"","sources":["../../src/lifeops/stretch-decider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAOH,MAAM,WAAW,qBAAqB;IACpC,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;;;;;OAKG;IACH,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;;;OAGG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,qBAAqB,GAC3B,sBAAsB,CAsCxB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,EAMtD,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACvC,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,wBAAwB,GAC9B,MAAM,CAYR"}
|