@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 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lifeops/bulk-review.ts"],"sourcesContent":["export const CLEANUP_BULK_REVIEW_SCHEMA_VERSION = \"lifeops.cleanup-plan.v1\";\nexport const DEFAULT_CLEANUP_EXECUTION_CHUNK_SIZE = 50;\nexport const MAX_CLEANUP_EXECUTION_CHUNK_SIZE = 250;\nexport const DEFAULT_CLEANUP_PLAN_ITEM_LIMIT = 2_500;\n\nexport type CleanupProvider = \"gmail\" | \"drive\" | \"file\";\n\nexport type CleanupOperationKind =\n | \"gmail.mark_read\"\n | \"gmail.archive\"\n | \"gmail.trash\"\n | \"gmail.delete_forever\"\n | \"drive.trash\"\n | \"drive.delete_forever\"\n | \"file.move_to_trash\"\n | \"file.delete_forever\"\n | \"file.archive\";\n\nexport type CleanupOperationRisk =\n | \"non_destructive\"\n | \"reversible\"\n | \"destructive\";\n\nexport type CleanupExecutionMode = \"dry_run\" | \"execute\";\nexport type CleanupExecutionStatus =\n | \"dry_run\"\n | \"succeeded\"\n | \"partially_failed\"\n | \"failed\"\n | \"rejected\";\n\nexport type CleanupItemKey = string;\nexport type CleanupPlanHash = string;\nexport type CleanupSnapshotHash = string;\n\nexport type CleanupJsonValue =\n | null\n | boolean\n | number\n | string\n | readonly CleanupJsonValue[]\n | { readonly [key: string]: CleanupJsonValue | undefined };\n\nexport type CleanupJsonObject = {\n readonly [key: string]: CleanupJsonValue | undefined;\n};\n\nexport type CleanupItemSnapshot = {\n readonly provider: CleanupProvider;\n readonly itemId: string;\n readonly accountId?: string;\n readonly displayName: string;\n readonly canonicalUrl?: string;\n readonly parentId?: string;\n readonly path?: string;\n readonly mimeType?: string;\n readonly sizeBytes?: number;\n readonly checksum?: string;\n readonly etag?: string;\n readonly revisionId?: string;\n readonly updatedAt?: string;\n readonly createdAt?: string;\n readonly labels?: readonly string[];\n readonly metadata?: CleanupJsonObject;\n};\n\nexport type CleanupOperation = {\n readonly kind: CleanupOperationKind;\n readonly risk: CleanupOperationRisk;\n readonly reason: string;\n readonly requiresUserApproval: boolean;\n readonly undoSupported: boolean;\n readonly parameters?: CleanupJsonObject;\n};\n\nexport type CleanupPlanDraftItem = {\n readonly snapshot: CleanupItemSnapshot;\n readonly operation: CleanupOperation;\n readonly evidence: readonly string[];\n};\n\nexport type CleanupPlanItem = CleanupPlanDraftItem & {\n readonly itemKey: CleanupItemKey;\n readonly snapshotHash: CleanupSnapshotHash;\n};\n\nexport type CleanupClusterDraft = {\n readonly id: string;\n readonly title: string;\n readonly rationale: string;\n readonly items: readonly CleanupPlanDraftItem[];\n};\n\nexport type CleanupCluster = {\n readonly id: string;\n readonly title: string;\n readonly rationale: string;\n readonly items: readonly CleanupPlanItem[];\n};\n\nexport type CleanupPlanDraft = {\n readonly id: string;\n readonly ownerUserId: string;\n readonly createdAt: string;\n readonly expiresAt?: string;\n readonly source: \"gmail\" | \"drive\" | \"file\" | \"mixed\";\n readonly title: string;\n readonly summary: string;\n readonly clusters: readonly CleanupClusterDraft[];\n readonly metadata?: CleanupJsonObject;\n};\n\nexport type CleanupPlan = {\n readonly schemaVersion: typeof CLEANUP_BULK_REVIEW_SCHEMA_VERSION;\n readonly id: string;\n readonly ownerUserId: string;\n readonly createdAt: string;\n readonly expiresAt?: string;\n readonly source: CleanupPlanDraft[\"source\"];\n readonly title: string;\n readonly summary: string;\n readonly clusters: readonly CleanupCluster[];\n readonly metadata?: CleanupJsonObject;\n readonly planHash: CleanupPlanHash;\n};\n\nexport type CleanupSelectedItemSnapshot = {\n readonly itemKey: CleanupItemKey;\n readonly snapshotHash: CleanupSnapshotHash;\n};\n\nexport type CleanupSelectionInput = {\n readonly selectedByUserId?: string;\n readonly selectedAt?: string;\n readonly planHash?: CleanupPlanHash;\n readonly selectedItems: readonly CleanupSelectedItemSnapshot[];\n};\n\nexport type CleanupDestructiveApprovalInput = {\n readonly approvedByUserId: string;\n readonly approvedAt: string;\n readonly planHash: CleanupPlanHash;\n readonly approvedItemSnapshotHashes: readonly CleanupSnapshotHash[];\n};\n\nexport type CleanupPolicyApprovalInput = {\n readonly approvedByUserId: string;\n readonly approvedAt: string;\n readonly planHash: CleanupPlanHash;\n readonly approvedItemSnapshotHashes: readonly CleanupSnapshotHash[];\n};\n\nexport type CleanupConfirmationInput = {\n readonly confirmedByUserId: string;\n readonly confirmedAt: string;\n readonly planHash: CleanupPlanHash;\n readonly selectedItems: readonly CleanupSelectedItemSnapshot[];\n readonly destructiveApproval?: CleanupDestructiveApprovalInput;\n readonly policyApproval?: CleanupPolicyApprovalInput;\n};\n\nexport type CleanupPolicyGateInput = {\n readonly actorUserId: string;\n readonly mode: CleanupExecutionMode;\n readonly planHash: CleanupPlanHash;\n readonly item: CleanupPlanItem;\n readonly requestedAt: string;\n};\n\nexport type CleanupPolicyDecision =\n | {\n readonly outcome: \"allow\";\n }\n | {\n readonly outcome: \"deny\";\n readonly code: string;\n readonly reason: string;\n readonly auditMetadata?: CleanupJsonObject;\n }\n | {\n readonly outcome: \"require_user_approval\";\n readonly code: string;\n readonly reason: string;\n readonly auditMetadata?: CleanupJsonObject;\n };\n\nexport type CleanupPolicyGate = (\n input: CleanupPolicyGateInput,\n) => CleanupPolicyDecision | Promise<CleanupPolicyDecision>;\n\nexport type CleanupAdapterOperation = {\n readonly planId: string;\n readonly planHash: CleanupPlanHash;\n readonly actorUserId: string;\n readonly mode: CleanupExecutionMode;\n readonly item: CleanupPlanItem;\n};\n\nexport type CleanupAdapterChunkRequest = {\n readonly executionId: string;\n readonly provider: CleanupProvider;\n readonly chunkIndex: number;\n readonly operations: readonly CleanupAdapterOperation[];\n};\n\nexport type CleanupAdapterItemResult = {\n readonly itemKey: CleanupItemKey;\n readonly outcome: \"succeeded\" | \"failed\";\n readonly code?: string;\n readonly message?: string;\n readonly undoToken?: string;\n readonly undoExpiresAt?: string;\n readonly metadata?: CleanupJsonObject;\n};\n\nexport type CleanupAdapterChunkResult = {\n readonly results: readonly CleanupAdapterItemResult[];\n};\n\nexport type CleanupUndoAdapterOperation = {\n readonly undoId: string;\n readonly planHash: CleanupPlanHash;\n readonly actorUserId: string;\n readonly item: CleanupUndoItem;\n};\n\nexport type CleanupUndoAdapterChunkRequest = {\n readonly undoId: string;\n readonly provider: CleanupProvider;\n readonly chunkIndex: number;\n readonly operations: readonly CleanupUndoAdapterOperation[];\n};\n\nexport type CleanupUndoAdapterItemResult = {\n readonly itemKey: CleanupItemKey;\n readonly outcome: \"succeeded\" | \"failed\";\n readonly code?: string;\n readonly message?: string;\n readonly metadata?: CleanupJsonObject;\n};\n\nexport type CleanupUndoAdapterChunkResult = {\n readonly results: readonly CleanupUndoAdapterItemResult[];\n};\n\nexport type CleanupOperationAdapter = {\n readonly provider: CleanupProvider;\n readonly readCurrentSnapshots: (\n items: readonly CleanupPlanItem[],\n ) => readonly CleanupItemSnapshot[] | Promise<readonly CleanupItemSnapshot[]>;\n readonly dryRunChunk: (\n request: CleanupAdapterChunkRequest,\n ) => CleanupAdapterChunkResult | Promise<CleanupAdapterChunkResult>;\n readonly executeChunk: (\n request: CleanupAdapterChunkRequest,\n ) => CleanupAdapterChunkResult | Promise<CleanupAdapterChunkResult>;\n readonly undoChunk?: (\n request: CleanupUndoAdapterChunkRequest,\n ) => CleanupUndoAdapterChunkResult | Promise<CleanupUndoAdapterChunkResult>;\n};\n\nexport type CleanupAdapterRegistry = Partial<\n Record<CleanupProvider, CleanupOperationAdapter>\n>;\n\nexport type CleanupAuditEventType =\n | \"cleanup.bulk_review.rejected\"\n | \"cleanup.bulk_review.policy_denied\"\n | \"cleanup.bulk_review.policy_approval_required\"\n | \"cleanup.bulk_review.item_dry_run\"\n | \"cleanup.bulk_review.item_executed\"\n | \"cleanup.bulk_review.item_failed\"\n | \"cleanup.bulk_review.undo_rejected\"\n | \"cleanup.bulk_review.undo_executed\"\n | \"cleanup.bulk_review.undo_failed\";\n\nexport type CleanupAuditEvent = {\n readonly schemaVersion: typeof CLEANUP_BULK_REVIEW_SCHEMA_VERSION;\n readonly eventId: string;\n readonly eventType: CleanupAuditEventType;\n readonly emittedAt: string;\n readonly actorUserId: string;\n readonly planHash: CleanupPlanHash;\n readonly executionId?: string;\n readonly undoId?: string;\n readonly itemKey?: CleanupItemKey;\n readonly provider?: CleanupProvider;\n readonly operationKind?: CleanupOperationKind;\n readonly risk?: CleanupOperationRisk;\n readonly outcome: \"planned\" | \"succeeded\" | \"failed\" | \"skipped\" | \"rejected\";\n readonly code?: string;\n readonly message?: string;\n readonly metadata?: CleanupJsonObject;\n};\n\nexport type CleanupSkippedItem = {\n readonly itemKey: CleanupItemKey;\n readonly provider: CleanupProvider;\n readonly operationKind: CleanupOperationKind;\n readonly snapshotHash: CleanupSnapshotHash;\n readonly reasonCode: string;\n readonly reason: string;\n};\n\nexport type CleanupExecutionItemResult = {\n readonly itemKey: CleanupItemKey;\n readonly provider: CleanupProvider;\n readonly operationKind: CleanupOperationKind;\n readonly snapshotHash: CleanupSnapshotHash;\n readonly outcome: \"planned\" | \"succeeded\" | \"failed\";\n readonly code?: string;\n readonly message?: string;\n readonly undoToken?: string;\n readonly undoExpiresAt?: string;\n};\n\nexport type CleanupExecutionChunk = {\n readonly chunkIndex: number;\n readonly provider: CleanupProvider;\n readonly itemKeys: readonly CleanupItemKey[];\n readonly status: \"planned\" | \"succeeded\" | \"failed\" | \"partially_failed\";\n readonly startedAt: string;\n readonly completedAt: string;\n};\n\nexport type CleanupUndoItem = {\n readonly itemKey: CleanupItemKey;\n readonly provider: CleanupProvider;\n readonly operationKind: CleanupOperationKind;\n readonly snapshotHash: CleanupSnapshotHash;\n readonly undoToken?: string;\n readonly undoExpiresAt?: string;\n readonly eligibility: \"eligible\" | \"unsupported\";\n readonly reason?: string;\n};\n\nexport type CleanupUndo = {\n readonly undoId: string;\n readonly executionId: string;\n readonly planHash: CleanupPlanHash;\n readonly createdAt: string;\n readonly expiresAt?: string;\n readonly status: \"eligible\" | \"partially_eligible\" | \"unsupported\";\n readonly items: readonly CleanupUndoItem[];\n};\n\nexport type CleanupExecution = {\n readonly executionId: string;\n readonly planId: string;\n readonly planHash: CleanupPlanHash;\n readonly mode: CleanupExecutionMode;\n readonly status: CleanupExecutionStatus;\n readonly actorUserId: string;\n readonly requestedItemCount: number;\n readonly eligibleItemCount: number;\n readonly skippedItems: readonly CleanupSkippedItem[];\n readonly results: readonly CleanupExecutionItemResult[];\n readonly chunks: readonly CleanupExecutionChunk[];\n readonly auditEvents: readonly CleanupAuditEvent[];\n readonly undo?: CleanupUndo;\n readonly createdAt: string;\n readonly completedAt: string;\n readonly rejectionCode?: string;\n readonly rejectionReason?: string;\n};\n\nexport type CleanupExecutionRequest = {\n readonly plan: CleanupPlan;\n readonly mode: CleanupExecutionMode;\n readonly actorUserId: string;\n readonly adapters: CleanupAdapterRegistry;\n readonly selection?: CleanupSelectionInput;\n readonly confirmation?: CleanupConfirmationInput;\n readonly policyGate?: CleanupPolicyGate;\n readonly now: string;\n readonly chunkSize?: number;\n readonly maxPlanItems?: number;\n readonly executionId?: string;\n};\n\nexport type CleanupUndoConfirmationInput = {\n readonly confirmedByUserId: string;\n readonly confirmedAt: string;\n readonly planHash: CleanupPlanHash;\n readonly undoId: string;\n readonly executionId: string;\n};\n\nexport type CleanupUndoEligibility = {\n readonly eligible: boolean;\n readonly code?: string;\n readonly reason?: string;\n};\n\nexport type CleanupUndoExecution = {\n readonly undoId: string;\n readonly executionId: string;\n readonly planHash: CleanupPlanHash;\n readonly actorUserId: string;\n readonly status: \"succeeded\" | \"partially_failed\" | \"failed\" | \"rejected\";\n readonly results: readonly CleanupUndoAdapterItemResult[];\n readonly auditEvents: readonly CleanupAuditEvent[];\n readonly createdAt: string;\n readonly completedAt: string;\n readonly rejectionCode?: string;\n readonly rejectionReason?: string;\n};\n\nexport type CleanupUndoExecutionRequest = {\n readonly undo: CleanupUndo;\n readonly actorUserId: string;\n readonly adapters: CleanupAdapterRegistry;\n readonly confirmation: CleanupUndoConfirmationInput;\n readonly now: string;\n readonly chunkSize?: number;\n};\n\ntype PlanIndex = {\n readonly itemByKey: ReadonlyMap<CleanupItemKey, CleanupPlanItem>;\n readonly itemCount: number;\n};\n\ntype AuditEventInput = {\n readonly eventType: CleanupAuditEventType;\n readonly emittedAt: string;\n readonly actorUserId: string;\n readonly planHash: CleanupPlanHash;\n readonly executionId?: string;\n readonly undoId?: string;\n readonly item?: CleanupPlanItem;\n readonly undoItem?: CleanupUndoItem;\n readonly outcome: CleanupAuditEvent[\"outcome\"];\n readonly code?: string;\n readonly message?: string;\n readonly metadata?: CleanupJsonObject;\n};\n\nfunction canonicalJson(value: CleanupJsonValue): string {\n if (value === null) {\n return \"null\";\n }\n if (typeof value === \"string\") {\n return JSON.stringify(value);\n }\n if (typeof value === \"number\") {\n if (!Number.isFinite(value)) {\n throw new Error(\"[BulkReview] Hash payload contains a non-finite number\");\n }\n return JSON.stringify(value);\n }\n if (typeof value === \"boolean\") {\n return value ? \"true\" : \"false\";\n }\n if (Array.isArray(value)) {\n return `[${value.map((entry) => canonicalJson(entry)).join(\",\")}]`;\n }\n\n const entries: [string, CleanupJsonValue][] = [];\n for (const [key, entryValue] of Object.entries(value)) {\n if (entryValue !== undefined) {\n entries.push([key, entryValue]);\n }\n }\n entries.sort(([left], [right]) => left.localeCompare(right));\n return `{${entries\n .map(\n ([key, entryValue]) =>\n `${JSON.stringify(key)}:${canonicalJson(entryValue)}`,\n )\n .join(\",\")}}`;\n}\n\nasync function sha256Hex(input: string): Promise<string> {\n const subtle = globalThis.crypto.subtle;\n if (!subtle) {\n throw new Error(\"[BulkReview] SHA-256 crypto.subtle is unavailable\");\n }\n const bytes = new TextEncoder().encode(input);\n const digest = await subtle.digest(\"SHA-256\", bytes);\n return Array.from(new Uint8Array(digest))\n .map((byte) => byte.toString(16).padStart(2, \"0\"))\n .join(\"\");\n}\n\nfunction sortedStrings(\n values: readonly string[] | undefined,\n): CleanupJsonValue | undefined {\n return values ? [...values].sort() : undefined;\n}\n\nfunction snapshotHashPayload(snapshot: CleanupItemSnapshot): CleanupJsonObject {\n return {\n provider: snapshot.provider,\n itemId: snapshot.itemId,\n accountId: snapshot.accountId,\n displayName: snapshot.displayName,\n canonicalUrl: snapshot.canonicalUrl,\n parentId: snapshot.parentId,\n path: snapshot.path,\n mimeType: snapshot.mimeType,\n sizeBytes: snapshot.sizeBytes,\n checksum: snapshot.checksum,\n etag: snapshot.etag,\n revisionId: snapshot.revisionId,\n updatedAt: snapshot.updatedAt,\n createdAt: snapshot.createdAt,\n labels: sortedStrings(snapshot.labels),\n metadata: snapshot.metadata,\n };\n}\n\nfunction operationHashPayload(operation: CleanupOperation): CleanupJsonObject {\n return {\n kind: operation.kind,\n risk: operation.risk,\n reason: operation.reason,\n requiresUserApproval: operation.requiresUserApproval,\n undoSupported: operation.undoSupported,\n parameters: operation.parameters,\n };\n}\n\nfunction planHashPayload(\n plan: CleanupPlan | Omit<CleanupPlan, \"planHash\">,\n): CleanupJsonObject {\n return {\n schemaVersion: CLEANUP_BULK_REVIEW_SCHEMA_VERSION,\n id: plan.id,\n ownerUserId: plan.ownerUserId,\n createdAt: plan.createdAt,\n expiresAt: plan.expiresAt,\n source: plan.source,\n title: plan.title,\n summary: plan.summary,\n metadata: plan.metadata,\n clusters: plan.clusters.map((cluster) => ({\n id: cluster.id,\n title: cluster.title,\n rationale: cluster.rationale,\n items: cluster.items.map((item) => ({\n itemKey: item.itemKey,\n snapshot: snapshotHashPayload(item.snapshot),\n operation: operationHashPayload(item.operation),\n evidence: [...item.evidence],\n })),\n })),\n };\n}\n\nexport function getCleanupItemKey(\n snapshot: CleanupItemSnapshot,\n): CleanupItemKey {\n const accountPart = encodeURIComponent(snapshot.accountId ?? \"_\");\n return `${snapshot.provider}:${accountPart}:${encodeURIComponent(snapshot.itemId)}`;\n}\n\nexport async function hashCleanupItemSnapshot(\n snapshot: CleanupItemSnapshot,\n): Promise<CleanupSnapshotHash> {\n return sha256Hex(canonicalJson(snapshotHashPayload(snapshot)));\n}\n\nexport async function computeCleanupPlanHash(\n plan: CleanupPlan | Omit<CleanupPlan, \"planHash\">,\n): Promise<CleanupPlanHash> {\n return sha256Hex(canonicalJson(planHashPayload(plan)));\n}\n\nexport async function bindCleanupPlanHash(\n draft: CleanupPlanDraft,\n): Promise<CleanupPlan> {\n const seenItemKeys = new Set<CleanupItemKey>();\n const clusters: CleanupCluster[] = [];\n\n for (const cluster of draft.clusters) {\n const items: CleanupPlanItem[] = [];\n for (const item of cluster.items) {\n const itemKey = getCleanupItemKey(item.snapshot);\n if (seenItemKeys.has(itemKey)) {\n throw new Error(`[BulkReview] Duplicate cleanup item key: ${itemKey}`);\n }\n seenItemKeys.add(itemKey);\n items.push({\n ...item,\n itemKey,\n snapshotHash: await hashCleanupItemSnapshot(item.snapshot),\n });\n }\n clusters.push({\n id: cluster.id,\n title: cluster.title,\n rationale: cluster.rationale,\n items,\n });\n }\n\n const planWithoutHash: Omit<CleanupPlan, \"planHash\"> = {\n schemaVersion: CLEANUP_BULK_REVIEW_SCHEMA_VERSION,\n id: draft.id,\n ownerUserId: draft.ownerUserId,\n createdAt: draft.createdAt,\n expiresAt: draft.expiresAt,\n source: draft.source,\n title: draft.title,\n summary: draft.summary,\n clusters,\n metadata: draft.metadata,\n };\n\n return {\n ...planWithoutHash,\n planHash: await computeCleanupPlanHash(planWithoutHash),\n };\n}\n\nfunction makePlanIndex(plan: CleanupPlan): PlanIndex {\n const itemByKey = new Map<CleanupItemKey, CleanupPlanItem>();\n for (const cluster of plan.clusters) {\n for (const item of cluster.items) {\n if (itemByKey.has(item.itemKey)) {\n throw new Error(\n `[BulkReview] Duplicate cleanup item key: ${item.itemKey}`,\n );\n }\n itemByKey.set(item.itemKey, item);\n }\n }\n return { itemByKey, itemCount: itemByKey.size };\n}\n\nfunction createExecutionId(planHash: CleanupPlanHash, now: string): string {\n const timestamp = Date.parse(now);\n const timestampPart = Number.isFinite(timestamp)\n ? timestamp.toString(36)\n : \"invalid-time\";\n return `cleanup-exec-${timestampPart}-${planHash.slice(0, 16)}`;\n}\n\nfunction createUndoId(executionId: string): string {\n return `${executionId}:undo`;\n}\n\nfunction normalizeChunkSize(size: number | undefined): number {\n if (size === undefined) {\n return DEFAULT_CLEANUP_EXECUTION_CHUNK_SIZE;\n }\n if (!Number.isInteger(size) || size < 1) {\n throw new Error(\n \"[BulkReview] Cleanup chunk size must be a positive integer\",\n );\n }\n if (size > MAX_CLEANUP_EXECUTION_CHUNK_SIZE) {\n throw new Error(\n `[BulkReview] Cleanup chunk size cannot exceed ${MAX_CLEANUP_EXECUTION_CHUNK_SIZE}`,\n );\n }\n return size;\n}\n\nfunction isExpired(expiresAt: string | undefined, now: string): boolean {\n if (!expiresAt) {\n return false;\n }\n const expiresMs = Date.parse(expiresAt);\n const nowMs = Date.parse(now);\n if (!Number.isFinite(expiresMs) || !Number.isFinite(nowMs)) {\n return true;\n }\n return expiresMs <= nowMs;\n}\n\nfunction pushAuditEvent(\n auditEvents: CleanupAuditEvent[],\n input: AuditEventInput,\n): void {\n const item = input.item;\n const undoItem = input.undoItem;\n auditEvents.push({\n schemaVersion: CLEANUP_BULK_REVIEW_SCHEMA_VERSION,\n eventId: `${input.executionId ?? input.undoId ?? \"cleanup\"}:${auditEvents.length + 1}`,\n eventType: input.eventType,\n emittedAt: input.emittedAt,\n actorUserId: input.actorUserId,\n planHash: input.planHash,\n executionId: input.executionId,\n undoId: input.undoId,\n itemKey: item?.itemKey ?? undoItem?.itemKey,\n provider: item?.snapshot.provider ?? undoItem?.provider,\n operationKind: item?.operation.kind ?? undoItem?.operationKind,\n risk: item?.operation.risk,\n outcome: input.outcome,\n code: input.code,\n message: input.message,\n metadata: input.metadata,\n });\n}\n\nfunction rejectedExecution(args: {\n readonly plan: CleanupPlan;\n readonly actorUserId: string;\n readonly mode: CleanupExecutionMode;\n readonly now: string;\n readonly executionId: string;\n readonly code: string;\n readonly reason: string;\n readonly auditEvents?: readonly CleanupAuditEvent[];\n}): CleanupExecution {\n const auditEvents = [...(args.auditEvents ?? [])];\n pushAuditEvent(auditEvents, {\n eventType: \"cleanup.bulk_review.rejected\",\n emittedAt: args.now,\n actorUserId: args.actorUserId,\n planHash: args.plan.planHash,\n executionId: args.executionId,\n outcome: \"rejected\",\n code: args.code,\n message: args.reason,\n });\n return {\n executionId: args.executionId,\n planId: args.plan.id,\n planHash: args.plan.planHash,\n mode: args.mode,\n status: \"rejected\",\n actorUserId: args.actorUserId,\n requestedItemCount: 0,\n eligibleItemCount: 0,\n skippedItems: [],\n results: [],\n chunks: [],\n auditEvents,\n createdAt: args.now,\n completedAt: args.now,\n rejectionCode: args.code,\n rejectionReason: args.reason,\n };\n}\n\nfunction selectedItemsForRequest(\n request: CleanupExecutionRequest,\n): readonly CleanupSelectedItemSnapshot[] | null {\n if (request.mode === \"execute\") {\n return request.confirmation?.selectedItems ?? null;\n }\n return request.selection?.selectedItems ?? null;\n}\n\nfunction getRequestedPlanHash(\n request: CleanupExecutionRequest,\n): CleanupPlanHash | undefined {\n if (request.mode === \"execute\") {\n return request.confirmation?.planHash;\n }\n return request.selection?.planHash;\n}\n\nfunction assertSameUserForConfirmation(\n request: CleanupExecutionRequest,\n): string | null {\n if (request.mode !== \"execute\") {\n return null;\n }\n const confirmation = request.confirmation;\n if (!confirmation) {\n return \"A user confirmation is required before executing cleanup operations\";\n }\n if (confirmation.confirmedByUserId !== request.actorUserId) {\n return \"Cleanup confirmation belongs to a different user\";\n }\n return null;\n}\n\nfunction resolveSelectedItems(args: {\n readonly itemByKey: ReadonlyMap<CleanupItemKey, CleanupPlanItem>;\n readonly selectedItems: readonly CleanupSelectedItemSnapshot[];\n}): {\n readonly items: readonly CleanupPlanItem[];\n readonly error?: string;\n readonly code?: string;\n} {\n if (args.selectedItems.length === 0) {\n return {\n items: [],\n code: \"EMPTY_SELECTION\",\n error: \"Select at least one item\",\n };\n }\n\n const seen = new Set<CleanupItemKey>();\n const items: CleanupPlanItem[] = [];\n for (const selected of args.selectedItems) {\n if (seen.has(selected.itemKey)) {\n return {\n items: [],\n code: \"DUPLICATE_SELECTION\",\n error: `Duplicate selected cleanup item: ${selected.itemKey}`,\n };\n }\n seen.add(selected.itemKey);\n\n const item = args.itemByKey.get(selected.itemKey);\n if (!item) {\n return {\n items: [],\n code: \"UNKNOWN_SELECTED_ITEM\",\n error: `Selected cleanup item is not in the bound plan: ${selected.itemKey}`,\n };\n }\n if (item.snapshotHash !== selected.snapshotHash) {\n return {\n items: [],\n code: \"SELECTED_SNAPSHOT_MISMATCH\",\n error: `Selected cleanup item snapshot does not match the bound plan: ${selected.itemKey}`,\n };\n }\n items.push(item);\n }\n return { items };\n}\n\nfunction approvalCoversItem(args: {\n readonly approval:\n | CleanupDestructiveApprovalInput\n | CleanupPolicyApprovalInput\n | undefined;\n readonly actorUserId: string;\n readonly planHash: CleanupPlanHash;\n readonly item: CleanupPlanItem;\n}): boolean {\n if (!args.approval) {\n return false;\n }\n if (args.approval.approvedByUserId !== args.actorUserId) {\n return false;\n }\n if (args.approval.planHash !== args.planHash) {\n return false;\n }\n return args.approval.approvedItemSnapshotHashes.includes(\n args.item.snapshotHash,\n );\n}\n\nasync function validatePlanBinding(plan: CleanupPlan): Promise<string | null> {\n if (plan.schemaVersion !== CLEANUP_BULK_REVIEW_SCHEMA_VERSION) {\n return \"Cleanup plan schema version is not supported\";\n }\n for (const cluster of plan.clusters) {\n for (const item of cluster.items) {\n const expectedKey = getCleanupItemKey(item.snapshot);\n if (item.itemKey !== expectedKey) {\n return `Cleanup item key is not bound to its snapshot: ${item.itemKey}`;\n }\n const expectedSnapshotHash = await hashCleanupItemSnapshot(item.snapshot);\n if (item.snapshotHash !== expectedSnapshotHash) {\n return `Cleanup item snapshot hash is invalid: ${item.itemKey}`;\n }\n }\n }\n const expectedPlanHash = await computeCleanupPlanHash(plan);\n if (plan.planHash !== expectedPlanHash) {\n return \"Cleanup plan hash is invalid\";\n }\n return null;\n}\n\nasync function applyPolicyGate(args: {\n readonly items: readonly CleanupPlanItem[];\n readonly request: CleanupExecutionRequest;\n readonly executionId: string;\n readonly auditEvents: CleanupAuditEvent[];\n}): Promise<{\n readonly eligibleItems: readonly CleanupPlanItem[];\n readonly skippedItems: readonly CleanupSkippedItem[];\n}> {\n const eligibleItems: CleanupPlanItem[] = [];\n const skippedItems: CleanupSkippedItem[] = [];\n\n for (const item of args.items) {\n const decision = args.request.policyGate\n ? await args.request.policyGate({\n actorUserId: args.request.actorUserId,\n mode: args.request.mode,\n planHash: args.request.plan.planHash,\n item,\n requestedAt: args.request.now,\n })\n : { outcome: \"allow\" as const };\n\n if (decision.outcome === \"allow\") {\n eligibleItems.push(item);\n continue;\n }\n\n if (decision.outcome === \"require_user_approval\") {\n const approved = approvalCoversItem({\n approval: args.request.confirmation?.policyApproval,\n actorUserId: args.request.actorUserId,\n planHash: args.request.plan.planHash,\n item,\n });\n if (approved) {\n eligibleItems.push(item);\n continue;\n }\n skippedItems.push({\n itemKey: item.itemKey,\n provider: item.snapshot.provider,\n operationKind: item.operation.kind,\n snapshotHash: item.snapshotHash,\n reasonCode: decision.code,\n reason: decision.reason,\n });\n pushAuditEvent(args.auditEvents, {\n eventType: \"cleanup.bulk_review.policy_approval_required\",\n emittedAt: args.request.now,\n actorUserId: args.request.actorUserId,\n planHash: args.request.plan.planHash,\n executionId: args.executionId,\n item,\n outcome: \"skipped\",\n code: decision.code,\n message: decision.reason,\n metadata: decision.auditMetadata,\n });\n continue;\n }\n\n skippedItems.push({\n itemKey: item.itemKey,\n provider: item.snapshot.provider,\n operationKind: item.operation.kind,\n snapshotHash: item.snapshotHash,\n reasonCode: decision.code,\n reason: decision.reason,\n });\n pushAuditEvent(args.auditEvents, {\n eventType: \"cleanup.bulk_review.policy_denied\",\n emittedAt: args.request.now,\n actorUserId: args.request.actorUserId,\n planHash: args.request.plan.planHash,\n executionId: args.executionId,\n item,\n outcome: \"skipped\",\n code: decision.code,\n message: decision.reason,\n metadata: decision.auditMetadata,\n });\n }\n\n return { eligibleItems, skippedItems };\n}\n\nasync function verifyCurrentSnapshots(args: {\n readonly items: readonly CleanupPlanItem[];\n readonly adapters: CleanupAdapterRegistry;\n}): Promise<{ readonly code?: string; readonly reason?: string }> {\n const byProvider = groupItemsByProvider(args.items);\n for (const [provider, items] of byProvider) {\n const adapter = args.adapters[provider];\n if (!adapter) {\n return {\n code: \"ADAPTER_MISSING\",\n reason: `No cleanup adapter is registered for ${provider}`,\n };\n }\n\n let snapshots: readonly CleanupItemSnapshot[];\n try {\n snapshots = await adapter.readCurrentSnapshots(items);\n } catch (error) {\n return {\n code: \"SNAPSHOT_READ_FAILED\",\n reason:\n error instanceof Error\n ? error.message\n : \"Cleanup adapter failed to read current snapshots\",\n };\n }\n\n const currentByKey = new Map<CleanupItemKey, CleanupItemSnapshot>();\n for (const snapshot of snapshots) {\n currentByKey.set(getCleanupItemKey(snapshot), snapshot);\n }\n\n for (const item of items) {\n const current = currentByKey.get(item.itemKey);\n if (!current) {\n return {\n code: \"ITEM_SNAPSHOT_MISSING\",\n reason: `Cleanup item no longer exists or cannot be read: ${item.itemKey}`,\n };\n }\n const currentHash = await hashCleanupItemSnapshot(current);\n if (currentHash !== item.snapshotHash) {\n return {\n code: \"ITEM_SNAPSHOT_DRIFT\",\n reason: `Cleanup item changed after review: ${item.itemKey}`,\n };\n }\n }\n }\n return {};\n}\n\nfunction groupItemsByProvider(\n items: readonly CleanupPlanItem[],\n): ReadonlyMap<CleanupProvider, readonly CleanupPlanItem[]> {\n const byProvider = new Map<CleanupProvider, CleanupPlanItem[]>();\n for (const item of items) {\n const existing = byProvider.get(item.snapshot.provider);\n if (existing) {\n existing.push(item);\n } else {\n byProvider.set(item.snapshot.provider, [item]);\n }\n }\n return byProvider;\n}\n\nfunction groupUndoItemsByProvider(\n items: readonly CleanupUndoItem[],\n): ReadonlyMap<CleanupProvider, readonly CleanupUndoItem[]> {\n const byProvider = new Map<CleanupProvider, CleanupUndoItem[]>();\n for (const item of items) {\n const existing = byProvider.get(item.provider);\n if (existing) {\n existing.push(item);\n } else {\n byProvider.set(item.provider, [item]);\n }\n }\n return byProvider;\n}\n\nfunction chunkItems<T>(\n items: readonly T[],\n chunkSize: number,\n): readonly (readonly T[])[] {\n const chunks: T[][] = [];\n for (let index = 0; index < items.length; index += chunkSize) {\n chunks.push(items.slice(index, index + chunkSize));\n }\n return chunks;\n}\n\nfunction toAdapterOperations(args: {\n readonly plan: CleanupPlan;\n readonly actorUserId: string;\n readonly mode: CleanupExecutionMode;\n readonly items: readonly CleanupPlanItem[];\n}): readonly CleanupAdapterOperation[] {\n return args.items.map((item) => ({\n planId: args.plan.id,\n planHash: args.plan.planHash,\n actorUserId: args.actorUserId,\n mode: args.mode,\n item,\n }));\n}\n\nfunction adapterResultFor(\n operation: CleanupAdapterOperation,\n resultByItemKey: ReadonlyMap<CleanupItemKey, CleanupAdapterItemResult>,\n): CleanupAdapterItemResult {\n return (\n resultByItemKey.get(operation.item.itemKey) ?? {\n itemKey: operation.item.itemKey,\n outcome: \"failed\",\n code: \"ADAPTER_RESULT_MISSING\",\n message: \"Cleanup adapter did not return a result for this item\",\n }\n );\n}\n\nfunction chunkStatus(\n mode: CleanupExecutionMode,\n results: readonly CleanupExecutionItemResult[],\n): CleanupExecutionChunk[\"status\"] {\n if (\n mode === \"dry_run\" &&\n results.every((result) => result.outcome === \"planned\")\n ) {\n return \"planned\";\n }\n const succeeded = results.some(\n (result) => result.outcome === \"succeeded\" || result.outcome === \"planned\",\n );\n const failed = results.some((result) => result.outcome === \"failed\");\n if (succeeded && failed) {\n return \"partially_failed\";\n }\n if (failed) {\n return \"failed\";\n }\n return \"succeeded\";\n}\n\nfunction executionStatus(\n mode: CleanupExecutionMode,\n results: readonly CleanupExecutionItemResult[],\n): CleanupExecutionStatus {\n const failed = results.some((result) => result.outcome === \"failed\");\n const succeeded = results.some(\n (result) => result.outcome === \"succeeded\" || result.outcome === \"planned\",\n );\n if (mode === \"dry_run\" && !failed) {\n return \"dry_run\";\n }\n if (succeeded && failed) {\n return \"partially_failed\";\n }\n if (failed) {\n return \"failed\";\n }\n return \"succeeded\";\n}\n\nasync function runAdapterChunks(args: {\n readonly request: CleanupExecutionRequest;\n readonly executionId: string;\n readonly items: readonly CleanupPlanItem[];\n readonly chunkSize: number;\n readonly auditEvents: CleanupAuditEvent[];\n}): Promise<{\n readonly results: readonly CleanupExecutionItemResult[];\n readonly chunks: readonly CleanupExecutionChunk[];\n}> {\n const results: CleanupExecutionItemResult[] = [];\n const chunks: CleanupExecutionChunk[] = [];\n let chunkIndex = 0;\n\n for (const [provider, providerItems] of groupItemsByProvider(args.items)) {\n const adapter = args.request.adapters[provider];\n if (!adapter) {\n for (const item of providerItems) {\n results.push({\n itemKey: item.itemKey,\n provider,\n operationKind: item.operation.kind,\n snapshotHash: item.snapshotHash,\n outcome: \"failed\",\n code: \"ADAPTER_MISSING\",\n message: `No cleanup adapter is registered for ${provider}`,\n });\n }\n continue;\n }\n\n for (const chunk of chunkItems(providerItems, args.chunkSize)) {\n const startedAt = args.request.now;\n const operations = toAdapterOperations({\n plan: args.request.plan,\n actorUserId: args.request.actorUserId,\n mode: args.request.mode,\n items: chunk,\n });\n\n let adapterResults: readonly CleanupAdapterItemResult[];\n try {\n const chunkResult =\n args.request.mode === \"dry_run\"\n ? await adapter.dryRunChunk({\n executionId: args.executionId,\n provider,\n chunkIndex,\n operations,\n })\n : await adapter.executeChunk({\n executionId: args.executionId,\n provider,\n chunkIndex,\n operations,\n });\n adapterResults = chunkResult.results;\n } catch (error) {\n adapterResults = operations.map((operation) => ({\n itemKey: operation.item.itemKey,\n outcome: \"failed\",\n code: \"ADAPTER_CHUNK_FAILED\",\n message:\n error instanceof Error\n ? error.message\n : \"Cleanup adapter chunk failed\",\n }));\n }\n\n const resultByItemKey = new Map<\n CleanupItemKey,\n CleanupAdapterItemResult\n >();\n for (const result of adapterResults) {\n resultByItemKey.set(result.itemKey, result);\n }\n\n const chunkResults: CleanupExecutionItemResult[] = [];\n for (const operation of operations) {\n const adapterResult = adapterResultFor(operation, resultByItemKey);\n const outcome =\n adapterResult.outcome === \"succeeded\"\n ? args.request.mode === \"dry_run\"\n ? \"planned\"\n : \"succeeded\"\n : \"failed\";\n const executionResult: CleanupExecutionItemResult = {\n itemKey: operation.item.itemKey,\n provider,\n operationKind: operation.item.operation.kind,\n snapshotHash: operation.item.snapshotHash,\n outcome,\n code: adapterResult.code,\n message: adapterResult.message,\n undoToken: adapterResult.undoToken,\n undoExpiresAt: adapterResult.undoExpiresAt,\n };\n chunkResults.push(executionResult);\n results.push(executionResult);\n\n pushAuditEvent(args.auditEvents, {\n eventType:\n outcome === \"failed\"\n ? \"cleanup.bulk_review.item_failed\"\n : args.request.mode === \"dry_run\"\n ? \"cleanup.bulk_review.item_dry_run\"\n : \"cleanup.bulk_review.item_executed\",\n emittedAt: args.request.now,\n actorUserId: args.request.actorUserId,\n planHash: args.request.plan.planHash,\n executionId: args.executionId,\n item: operation.item,\n outcome,\n code: adapterResult.code,\n message: adapterResult.message,\n metadata: adapterResult.metadata,\n });\n }\n\n chunks.push({\n chunkIndex,\n provider,\n itemKeys: operations.map((operation) => operation.item.itemKey),\n status: chunkStatus(args.request.mode, chunkResults),\n startedAt,\n completedAt: args.request.now,\n });\n chunkIndex += 1;\n }\n }\n\n return { results, chunks };\n}\n\nfunction buildCleanupUndo(args: {\n readonly executionId: string;\n readonly planHash: CleanupPlanHash;\n readonly createdAt: string;\n readonly itemsByKey: ReadonlyMap<CleanupItemKey, CleanupPlanItem>;\n readonly results: readonly CleanupExecutionItemResult[];\n}): CleanupUndo | undefined {\n const undoItems: CleanupUndoItem[] = [];\n for (const result of args.results) {\n if (result.outcome !== \"succeeded\") {\n continue;\n }\n const item = args.itemsByKey.get(result.itemKey);\n if (!item) {\n continue;\n }\n if (\n item.operation.undoSupported &&\n result.undoToken &&\n result.undoExpiresAt\n ) {\n undoItems.push({\n itemKey: result.itemKey,\n provider: result.provider,\n operationKind: result.operationKind,\n snapshotHash: result.snapshotHash,\n undoToken: result.undoToken,\n undoExpiresAt: result.undoExpiresAt,\n eligibility: \"eligible\",\n });\n continue;\n }\n undoItems.push({\n itemKey: result.itemKey,\n provider: result.provider,\n operationKind: result.operationKind,\n snapshotHash: result.snapshotHash,\n eligibility: \"unsupported\",\n reason: item.operation.undoSupported\n ? \"Cleanup adapter did not return undo material\"\n : \"Cleanup operation does not support undo\",\n });\n }\n\n if (undoItems.length === 0) {\n return undefined;\n }\n\n const eligibleItems = undoItems.filter(\n (item) => item.eligibility === \"eligible\",\n );\n const expiresAt = eligibleItems\n .map((item) => item.undoExpiresAt)\n .filter((value): value is string => Boolean(value))\n .sort()[0];\n const status =\n eligibleItems.length === 0\n ? \"unsupported\"\n : eligibleItems.length === undoItems.length\n ? \"eligible\"\n : \"partially_eligible\";\n\n return {\n undoId: createUndoId(args.executionId),\n executionId: args.executionId,\n planHash: args.planHash,\n createdAt: args.createdAt,\n expiresAt,\n status,\n items: undoItems,\n };\n}\n\nexport async function executeCleanupPlan(\n request: CleanupExecutionRequest,\n): Promise<CleanupExecution> {\n const executionId =\n request.executionId ??\n createExecutionId(request.plan.planHash, request.now);\n const auditEvents: CleanupAuditEvent[] = [];\n\n let chunkSize: number;\n try {\n chunkSize = normalizeChunkSize(request.chunkSize);\n } catch (error) {\n return rejectedExecution({\n plan: request.plan,\n actorUserId: request.actorUserId,\n mode: request.mode,\n now: request.now,\n executionId,\n code: \"INVALID_CHUNK_SIZE\",\n reason:\n error instanceof Error\n ? error.message\n : \"Cleanup chunk size is invalid\",\n });\n }\n\n const planBindingError = await validatePlanBinding(request.plan);\n if (planBindingError) {\n return rejectedExecution({\n plan: request.plan,\n actorUserId: request.actorUserId,\n mode: request.mode,\n now: request.now,\n executionId,\n code: \"PLAN_HASH_INVALID\",\n reason: planBindingError,\n });\n }\n\n const index = makePlanIndex(request.plan);\n const maxPlanItems = request.maxPlanItems ?? DEFAULT_CLEANUP_PLAN_ITEM_LIMIT;\n if (index.itemCount > maxPlanItems) {\n return rejectedExecution({\n plan: request.plan,\n actorUserId: request.actorUserId,\n mode: request.mode,\n now: request.now,\n executionId,\n code: \"PLAN_TOO_LARGE\",\n reason: `Cleanup plan contains ${index.itemCount} items, limit is ${maxPlanItems}`,\n });\n }\n\n if (isExpired(request.plan.expiresAt, request.now)) {\n return rejectedExecution({\n plan: request.plan,\n actorUserId: request.actorUserId,\n mode: request.mode,\n now: request.now,\n executionId,\n code: \"PLAN_EXPIRED\",\n reason: \"Cleanup plan has expired and must be regenerated\",\n });\n }\n\n const userError = assertSameUserForConfirmation(request);\n if (userError) {\n return rejectedExecution({\n plan: request.plan,\n actorUserId: request.actorUserId,\n mode: request.mode,\n now: request.now,\n executionId,\n code: \"CONFIRMATION_REQUIRED\",\n reason: userError,\n });\n }\n\n const requestedPlanHash = getRequestedPlanHash(request);\n if (requestedPlanHash && requestedPlanHash !== request.plan.planHash) {\n return rejectedExecution({\n plan: request.plan,\n actorUserId: request.actorUserId,\n mode: request.mode,\n now: request.now,\n executionId,\n code: \"CONFIRMATION_HASH_MISMATCH\",\n reason: \"Cleanup confirmation hash does not match the bound plan\",\n });\n }\n\n if (request.mode === \"execute\" && !requestedPlanHash) {\n return rejectedExecution({\n plan: request.plan,\n actorUserId: request.actorUserId,\n mode: request.mode,\n now: request.now,\n executionId,\n code: \"CONFIRMATION_HASH_REQUIRED\",\n reason: \"Cleanup execution requires a user-confirmed plan hash\",\n });\n }\n\n const selectedItems = selectedItemsForRequest(request);\n if (!selectedItems) {\n return rejectedExecution({\n plan: request.plan,\n actorUserId: request.actorUserId,\n mode: request.mode,\n now: request.now,\n executionId,\n code: \"SELECTION_REQUIRED\",\n reason: \"Cleanup review requires an explicit item selection\",\n });\n }\n\n const selection = resolveSelectedItems({\n itemByKey: index.itemByKey,\n selectedItems,\n });\n if (selection.error) {\n return rejectedExecution({\n plan: request.plan,\n actorUserId: request.actorUserId,\n mode: request.mode,\n now: request.now,\n executionId,\n code: selection.code ?? \"SELECTION_INVALID\",\n reason: selection.error,\n });\n }\n\n const policyResult = await applyPolicyGate({\n items: selection.items,\n request,\n executionId,\n auditEvents,\n });\n\n if (policyResult.eligibleItems.length === 0) {\n return {\n executionId,\n planId: request.plan.id,\n planHash: request.plan.planHash,\n mode: request.mode,\n status: \"rejected\",\n actorUserId: request.actorUserId,\n requestedItemCount: selection.items.length,\n eligibleItemCount: 0,\n skippedItems: policyResult.skippedItems,\n results: [],\n chunks: [],\n auditEvents,\n createdAt: request.now,\n completedAt: request.now,\n rejectionCode: \"NO_ELIGIBLE_ITEMS\",\n rejectionReason: \"No selected cleanup items passed policy checks\",\n };\n }\n\n if (request.mode === \"execute\") {\n const unapprovedDestructiveItem = policyResult.eligibleItems.find(\n (item) =>\n item.operation.requiresUserApproval &&\n !approvalCoversItem({\n approval: request.confirmation?.destructiveApproval,\n actorUserId: request.actorUserId,\n planHash: request.plan.planHash,\n item,\n }),\n );\n if (unapprovedDestructiveItem) {\n return rejectedExecution({\n plan: request.plan,\n actorUserId: request.actorUserId,\n mode: request.mode,\n now: request.now,\n executionId,\n code: \"DESTRUCTIVE_APPROVAL_REQUIRED\",\n reason: `Destructive cleanup operation requires user approval: ${unapprovedDestructiveItem.itemKey}`,\n auditEvents,\n });\n }\n\n const snapshotValidation = await verifyCurrentSnapshots({\n items: policyResult.eligibleItems,\n adapters: request.adapters,\n });\n if (snapshotValidation.code) {\n return rejectedExecution({\n plan: request.plan,\n actorUserId: request.actorUserId,\n mode: request.mode,\n now: request.now,\n executionId,\n code: snapshotValidation.code,\n reason:\n snapshotValidation.reason ??\n \"Cleanup item snapshot verification failed\",\n auditEvents,\n });\n }\n }\n\n const adapterRun = await runAdapterChunks({\n request,\n executionId,\n items: policyResult.eligibleItems,\n chunkSize,\n auditEvents,\n });\n\n const undo =\n request.mode === \"execute\"\n ? buildCleanupUndo({\n executionId,\n planHash: request.plan.planHash,\n createdAt: request.now,\n itemsByKey: index.itemByKey,\n results: adapterRun.results,\n })\n : undefined;\n\n return {\n executionId,\n planId: request.plan.id,\n planHash: request.plan.planHash,\n mode: request.mode,\n status: executionStatus(request.mode, adapterRun.results),\n actorUserId: request.actorUserId,\n requestedItemCount: selection.items.length,\n eligibleItemCount: policyResult.eligibleItems.length,\n skippedItems: policyResult.skippedItems,\n results: adapterRun.results,\n chunks: adapterRun.chunks,\n auditEvents,\n undo,\n createdAt: request.now,\n completedAt: request.now,\n };\n}\n\nexport function getCleanupUndoEligibility(\n undo: CleanupUndo,\n now: string,\n): CleanupUndoEligibility {\n if (undo.status === \"unsupported\") {\n return {\n eligible: false,\n code: \"UNDO_UNSUPPORTED\",\n reason: \"Cleanup execution did not produce undoable operations\",\n };\n }\n if (isExpired(undo.expiresAt, now)) {\n return {\n eligible: false,\n code: \"UNDO_EXPIRED\",\n reason: \"Cleanup undo window has expired\",\n };\n }\n const hasEligibleItems = undo.items.some(\n (item) => item.eligibility === \"eligible\",\n );\n if (!hasEligibleItems) {\n return {\n eligible: false,\n code: \"UNDO_UNSUPPORTED\",\n reason: \"Cleanup execution did not produce undoable operations\",\n };\n }\n return { eligible: true };\n}\n\nfunction rejectedUndoExecution(args: {\n readonly undo: CleanupUndo;\n readonly actorUserId: string;\n readonly now: string;\n readonly code: string;\n readonly reason: string;\n}): CleanupUndoExecution {\n const auditEvents: CleanupAuditEvent[] = [];\n pushAuditEvent(auditEvents, {\n eventType: \"cleanup.bulk_review.undo_rejected\",\n emittedAt: args.now,\n actorUserId: args.actorUserId,\n planHash: args.undo.planHash,\n executionId: args.undo.executionId,\n undoId: args.undo.undoId,\n outcome: \"rejected\",\n code: args.code,\n message: args.reason,\n });\n return {\n undoId: args.undo.undoId,\n executionId: args.undo.executionId,\n planHash: args.undo.planHash,\n actorUserId: args.actorUserId,\n status: \"rejected\",\n results: [],\n auditEvents,\n createdAt: args.now,\n completedAt: args.now,\n rejectionCode: args.code,\n rejectionReason: args.reason,\n };\n}\n\nfunction undoExecutionStatus(\n results: readonly CleanupUndoAdapterItemResult[],\n): CleanupUndoExecution[\"status\"] {\n const failed = results.some((result) => result.outcome === \"failed\");\n const succeeded = results.some((result) => result.outcome === \"succeeded\");\n if (succeeded && failed) {\n return \"partially_failed\";\n }\n if (failed) {\n return \"failed\";\n }\n return \"succeeded\";\n}\n\nexport async function undoCleanupExecution(\n request: CleanupUndoExecutionRequest,\n): Promise<CleanupUndoExecution> {\n let chunkSize: number;\n try {\n chunkSize = normalizeChunkSize(request.chunkSize);\n } catch (error) {\n return rejectedUndoExecution({\n undo: request.undo,\n actorUserId: request.actorUserId,\n now: request.now,\n code: \"INVALID_CHUNK_SIZE\",\n reason:\n error instanceof Error\n ? error.message\n : \"Cleanup undo chunk size is invalid\",\n });\n }\n\n if (request.confirmation.confirmedByUserId !== request.actorUserId) {\n return rejectedUndoExecution({\n undo: request.undo,\n actorUserId: request.actorUserId,\n now: request.now,\n code: \"UNDO_CONFIRMATION_USER_MISMATCH\",\n reason: \"Cleanup undo confirmation belongs to a different user\",\n });\n }\n if (\n request.confirmation.planHash !== request.undo.planHash ||\n request.confirmation.undoId !== request.undo.undoId ||\n request.confirmation.executionId !== request.undo.executionId\n ) {\n return rejectedUndoExecution({\n undo: request.undo,\n actorUserId: request.actorUserId,\n now: request.now,\n code: \"UNDO_CONFIRMATION_MISMATCH\",\n reason: \"Cleanup undo confirmation does not match the undo record\",\n });\n }\n\n const eligibility = getCleanupUndoEligibility(request.undo, request.now);\n if (!eligibility.eligible) {\n return rejectedUndoExecution({\n undo: request.undo,\n actorUserId: request.actorUserId,\n now: request.now,\n code: eligibility.code ?? \"UNDO_UNAVAILABLE\",\n reason: eligibility.reason ?? \"Cleanup undo is unavailable\",\n });\n }\n\n const auditEvents: CleanupAuditEvent[] = [];\n const results: CleanupUndoAdapterItemResult[] = [];\n let chunkIndex = 0;\n const eligibleItems = request.undo.items.filter(\n (item) => item.eligibility === \"eligible\",\n );\n\n for (const [provider, providerItems] of groupUndoItemsByProvider(\n eligibleItems,\n )) {\n const adapter = request.adapters[provider];\n if (!adapter?.undoChunk) {\n for (const item of providerItems) {\n const failed: CleanupUndoAdapterItemResult = {\n itemKey: item.itemKey,\n outcome: \"failed\",\n code: \"UNDO_UNSUPPORTED_BY_ADAPTER\",\n message: `Cleanup adapter for ${provider} does not support undo`,\n };\n results.push(failed);\n pushAuditEvent(auditEvents, {\n eventType: \"cleanup.bulk_review.undo_failed\",\n emittedAt: request.now,\n actorUserId: request.actorUserId,\n planHash: request.undo.planHash,\n executionId: request.undo.executionId,\n undoId: request.undo.undoId,\n undoItem: item,\n outcome: \"failed\",\n code: failed.code,\n message: failed.message,\n });\n }\n continue;\n }\n\n for (const chunk of chunkItems(providerItems, chunkSize)) {\n let adapterResults: readonly CleanupUndoAdapterItemResult[];\n try {\n const chunkResult = await adapter.undoChunk({\n undoId: request.undo.undoId,\n provider,\n chunkIndex,\n operations: chunk.map((item) => ({\n undoId: request.undo.undoId,\n planHash: request.undo.planHash,\n actorUserId: request.actorUserId,\n item,\n })),\n });\n adapterResults = chunkResult.results;\n } catch (error) {\n adapterResults = chunk.map((item) => ({\n itemKey: item.itemKey,\n outcome: \"failed\",\n code: \"UNDO_CHUNK_FAILED\",\n message:\n error instanceof Error\n ? error.message\n : \"Cleanup adapter undo chunk failed\",\n }));\n }\n\n const resultByItemKey = new Map<\n CleanupItemKey,\n CleanupUndoAdapterItemResult\n >();\n for (const result of adapterResults) {\n resultByItemKey.set(result.itemKey, result);\n }\n\n for (const item of chunk) {\n const result = resultByItemKey.get(item.itemKey) ?? {\n itemKey: item.itemKey,\n outcome: \"failed\" as const,\n code: \"UNDO_RESULT_MISSING\",\n message:\n \"Cleanup adapter did not return an undo result for this item\",\n };\n results.push(result);\n pushAuditEvent(auditEvents, {\n eventType:\n result.outcome === \"succeeded\"\n ? \"cleanup.bulk_review.undo_executed\"\n : \"cleanup.bulk_review.undo_failed\",\n emittedAt: request.now,\n actorUserId: request.actorUserId,\n planHash: request.undo.planHash,\n executionId: request.undo.executionId,\n undoId: request.undo.undoId,\n undoItem: item,\n outcome: result.outcome,\n code: result.code,\n message: result.message,\n metadata: result.metadata,\n });\n }\n chunkIndex += 1;\n }\n }\n\n return {\n undoId: request.undo.undoId,\n executionId: request.undo.executionId,\n planHash: request.undo.planHash,\n actorUserId: request.actorUserId,\n status: undoExecutionStatus(results),\n results,\n auditEvents,\n createdAt: request.now,\n completedAt: request.now,\n };\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LifeOps-backed implementation of the calendar plugin's `CalendarHostGate`.
|
|
3
|
+
*
|
|
4
|
+
* The calendar service (in `@elizaos/plugin-calendar`) owns calendar storage and
|
|
5
|
+
* provider sync, but delegates the cross-domain concerns it cannot own to a
|
|
6
|
+
* gate: Google connector grants (LifeOps' Google connector layer) and
|
|
7
|
+
* reminder-plan / audit persistence (LifeOps' repository). This wires those
|
|
8
|
+
* back to LifeOps so calendar events keep firing reminders and writing audit
|
|
9
|
+
* rows exactly as before the extraction.
|
|
10
|
+
*/
|
|
11
|
+
import type { IAgentRuntime } from "@elizaos/core";
|
|
12
|
+
import { type CalendarHostGate } from "@elizaos/plugin-calendar";
|
|
13
|
+
export declare function buildLifeOpsCalendarGate(runtime: IAgentRuntime): CalendarHostGate;
|
|
14
|
+
/**
|
|
15
|
+
* Inject the LifeOps-backed gate into the running `CalendarService`. Safe to
|
|
16
|
+
* call after the runtime has finished initializing both plugins; a no-op when
|
|
17
|
+
* the calendar service is not registered.
|
|
18
|
+
*/
|
|
19
|
+
export declare function registerLifeOpsCalendarGate(runtime: IAgentRuntime): void;
|
|
20
|
+
//# sourceMappingURL=calendar-gate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendar-gate.d.ts","sourceRoot":"","sources":["../../src/lifeops/calendar-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,0BAA0B,CAAC;AAyClC,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,aAAa,GACrB,gBAAgB,CAkBlB;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAMxE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CalendarService
|
|
3
|
+
} from "@elizaos/plugin-calendar";
|
|
4
|
+
import { LifeOpsService } from "./service.js";
|
|
5
|
+
function buildLifeOpsCalendarGate(runtime) {
|
|
6
|
+
const host = new LifeOpsService(runtime);
|
|
7
|
+
const repo = host.repository;
|
|
8
|
+
return {
|
|
9
|
+
getGoogleConnectorAccounts: (requestUrl, side) => host.getGoogleConnectorAccounts(requestUrl, side),
|
|
10
|
+
requireGoogleCalendarGrant: (requestUrl, mode, side, grantId) => host.requireGoogleCalendarGrant(requestUrl, mode, side, grantId),
|
|
11
|
+
requireGoogleCalendarWriteGrant: (requestUrl, mode, side, grantId) => host.requireGoogleCalendarWriteGrant(requestUrl, mode, side, grantId),
|
|
12
|
+
createReminderPlan: (plan) => repo.createReminderPlan(plan),
|
|
13
|
+
updateReminderPlan: (plan) => repo.updateReminderPlan(plan),
|
|
14
|
+
deleteReminderPlan: (agentId, planId) => repo.deleteReminderPlan(agentId, planId),
|
|
15
|
+
listReminderPlansForOwners: (agentId, ownerType, ownerIds) => repo.listReminderPlansForOwners(agentId, ownerType, ownerIds),
|
|
16
|
+
createAuditEvent: (event) => repo.createAuditEvent(event)
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function registerLifeOpsCalendarGate(runtime) {
|
|
20
|
+
const calendar = runtime.getService(
|
|
21
|
+
CalendarService.serviceType
|
|
22
|
+
);
|
|
23
|
+
if (!calendar) return;
|
|
24
|
+
calendar.setGate(buildLifeOpsCalendarGate(runtime));
|
|
25
|
+
}
|
|
26
|
+
export {
|
|
27
|
+
buildLifeOpsCalendarGate,
|
|
28
|
+
registerLifeOpsCalendarGate
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=calendar-gate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/lifeops/calendar-gate.ts"],"sourcesContent":["/**\n * LifeOps-backed implementation of the calendar plugin's `CalendarHostGate`.\n *\n * The calendar service (in `@elizaos/plugin-calendar`) owns calendar storage and\n * provider sync, but delegates the cross-domain concerns it cannot own to a\n * gate: Google connector grants (LifeOps' Google connector layer) and\n * reminder-plan / audit persistence (LifeOps' repository). This wires those\n * back to LifeOps so calendar events keep firing reminders and writing audit\n * rows exactly as before the extraction.\n */\n\nimport type { IAgentRuntime } from \"@elizaos/core\";\nimport {\n CalendarService,\n type CalendarHostGate,\n} from \"@elizaos/plugin-calendar\";\nimport type {\n LifeOpsAuditEvent,\n LifeOpsConnectorMode,\n LifeOpsConnectorSide,\n LifeOpsGoogleConnectorStatus,\n LifeOpsReminderPlan,\n} from \"@elizaos/shared\";\nimport { LifeOpsService } from \"./service.js\";\n\n/** Structural view of the LifeOps methods the gate forwards to. */\ninterface CalendarGateHost {\n readonly repository: {\n createReminderPlan(plan: LifeOpsReminderPlan): Promise<void>;\n updateReminderPlan(plan: LifeOpsReminderPlan): Promise<void>;\n deleteReminderPlan(agentId: string, planId: string): Promise<void>;\n listReminderPlansForOwners(\n agentId: string,\n ownerType: string,\n ownerIds: string[],\n ): Promise<LifeOpsReminderPlan[]>;\n createAuditEvent(event: LifeOpsAuditEvent): Promise<void>;\n };\n getGoogleConnectorAccounts(\n requestUrl: URL,\n side?: LifeOpsConnectorSide,\n ): Promise<LifeOpsGoogleConnectorStatus[]>;\n requireGoogleCalendarGrant(\n requestUrl: URL,\n mode?: LifeOpsConnectorMode,\n side?: LifeOpsConnectorSide,\n grantId?: string,\n ): ReturnType<CalendarHostGate[\"requireGoogleCalendarGrant\"]>;\n requireGoogleCalendarWriteGrant(\n requestUrl: URL,\n mode?: LifeOpsConnectorMode,\n side?: LifeOpsConnectorSide,\n grantId?: string,\n ): ReturnType<CalendarHostGate[\"requireGoogleCalendarWriteGrant\"]>;\n}\n\nexport function buildLifeOpsCalendarGate(\n runtime: IAgentRuntime,\n): CalendarHostGate {\n const host = new LifeOpsService(runtime) as unknown as CalendarGateHost;\n const repo = host.repository;\n return {\n getGoogleConnectorAccounts: (requestUrl, side) =>\n host.getGoogleConnectorAccounts(requestUrl, side),\n requireGoogleCalendarGrant: (requestUrl, mode, side, grantId) =>\n host.requireGoogleCalendarGrant(requestUrl, mode, side, grantId),\n requireGoogleCalendarWriteGrant: (requestUrl, mode, side, grantId) =>\n host.requireGoogleCalendarWriteGrant(requestUrl, mode, side, grantId),\n createReminderPlan: (plan) => repo.createReminderPlan(plan),\n updateReminderPlan: (plan) => repo.updateReminderPlan(plan),\n deleteReminderPlan: (agentId, planId) =>\n repo.deleteReminderPlan(agentId, planId),\n listReminderPlansForOwners: (agentId, ownerType, ownerIds) =>\n repo.listReminderPlansForOwners(agentId, ownerType, ownerIds),\n createAuditEvent: (event) => repo.createAuditEvent(event),\n };\n}\n\n/**\n * Inject the LifeOps-backed gate into the running `CalendarService`. Safe to\n * call after the runtime has finished initializing both plugins; a no-op when\n * the calendar service is not registered.\n */\nexport function registerLifeOpsCalendarGate(runtime: IAgentRuntime): void {\n const calendar = runtime.getService(\n CalendarService.serviceType,\n ) as CalendarService | null;\n if (!calendar) return;\n calendar.setGate(buildLifeOpsCalendarGate(runtime));\n}\n"],"mappings":"AAYA;AAAA,EACE;AAAA,OAEK;AAQP,SAAS,sBAAsB;AAiCxB,SAAS,yBACd,SACkB;AAClB,QAAM,OAAO,IAAI,eAAe,OAAO;AACvC,QAAM,OAAO,KAAK;AAClB,SAAO;AAAA,IACL,4BAA4B,CAAC,YAAY,SACvC,KAAK,2BAA2B,YAAY,IAAI;AAAA,IAClD,4BAA4B,CAAC,YAAY,MAAM,MAAM,YACnD,KAAK,2BAA2B,YAAY,MAAM,MAAM,OAAO;AAAA,IACjE,iCAAiC,CAAC,YAAY,MAAM,MAAM,YACxD,KAAK,gCAAgC,YAAY,MAAM,MAAM,OAAO;AAAA,IACtE,oBAAoB,CAAC,SAAS,KAAK,mBAAmB,IAAI;AAAA,IAC1D,oBAAoB,CAAC,SAAS,KAAK,mBAAmB,IAAI;AAAA,IAC1D,oBAAoB,CAAC,SAAS,WAC5B,KAAK,mBAAmB,SAAS,MAAM;AAAA,IACzC,4BAA4B,CAAC,SAAS,WAAW,aAC/C,KAAK,2BAA2B,SAAS,WAAW,QAAQ;AAAA,IAC9D,kBAAkB,CAAC,UAAU,KAAK,iBAAiB,KAAK;AAAA,EAC1D;AACF;AAOO,SAAS,4BAA4B,SAA8B;AACxE,QAAM,WAAW,QAAQ;AAAA,IACvB,gBAAgB;AAAA,EAClB;AACA,MAAI,CAAC,SAAU;AACf,WAAS,QAAQ,yBAAyB,OAAO,CAAC;AACpD;","names":[]}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Channel contract. Replaces the three overlapping channel enums
|
|
3
|
+
* (`LIFEOPS_REMINDER_CHANNELS` ∪ `LIFEOPS_CHANNEL_TYPES` ∪
|
|
4
|
+
* `LIFEOPS_MESSAGE_CHANNELS`).
|
|
5
|
+
*
|
|
6
|
+
* Channels reuse {@link DispatchResult} from the connector contract so the
|
|
7
|
+
* runner's dispatch policy applies uniformly.
|
|
8
|
+
*/
|
|
9
|
+
import type { DispatchResult } from "../connectors/contract.js";
|
|
10
|
+
export interface ChannelCapabilities {
|
|
11
|
+
send: boolean;
|
|
12
|
+
read: boolean;
|
|
13
|
+
reminders: boolean;
|
|
14
|
+
voice: boolean;
|
|
15
|
+
attachments: boolean;
|
|
16
|
+
quietHoursAware: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface ChannelContribution {
|
|
19
|
+
/**
|
|
20
|
+
* Stable channel key — `"in_app"`, `"push"`, `"imessage"`, `"telegram"`,
|
|
21
|
+
* `"discord"`, `"sms"`, etc. Referenced by `EscalationStep.channelKey`.
|
|
22
|
+
*/
|
|
23
|
+
kind: string;
|
|
24
|
+
describe: {
|
|
25
|
+
label: string;
|
|
26
|
+
};
|
|
27
|
+
capabilities: ChannelCapabilities;
|
|
28
|
+
/**
|
|
29
|
+
* Outbound dispatch verb. Only required when `capabilities.send` is true.
|
|
30
|
+
* The payload shape is channel-specific; the registry does not validate it.
|
|
31
|
+
*/
|
|
32
|
+
send?(payload: unknown): Promise<DispatchResult>;
|
|
33
|
+
}
|
|
34
|
+
export interface ChannelRegistryFilter {
|
|
35
|
+
/**
|
|
36
|
+
* Returns channels whose `capabilities` match every supplied flag.
|
|
37
|
+
* `{ supports: { send: true, voice: true } }` returns channels that can both
|
|
38
|
+
* send and carry voice.
|
|
39
|
+
*/
|
|
40
|
+
supports?: Partial<ChannelCapabilities>;
|
|
41
|
+
}
|
|
42
|
+
export interface ChannelRegistry {
|
|
43
|
+
register(c: ChannelContribution): void;
|
|
44
|
+
list(filter?: ChannelRegistryFilter): ChannelContribution[];
|
|
45
|
+
get(kind: string): ChannelContribution | null;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../src/lifeops/channels/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAE5B,YAAY,EAAE,mBAAmB,CAAC;IAElC;;;OAGG;IACH,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,EAAE,qBAAqB,GAAG,mBAAmB,EAAE,CAAC;IAC5D,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAAC;CAC/C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default channel pack.
|
|
3
|
+
*
|
|
4
|
+
* Registers the union of `LIFEOPS_REMINDER_CHANNELS ∪ LIFEOPS_CHANNEL_TYPES
|
|
5
|
+
* ∪ LIFEOPS_MESSAGE_CHANNELS` as `ChannelContribution` records.
|
|
6
|
+
*
|
|
7
|
+
* Channels delegate `send` to the matching `ConnectorContribution` so the
|
|
8
|
+
* channel coverage invariant (`ChannelRegistry.list({ supports: { send } })
|
|
9
|
+
* .length >= ConnectorRegistry.list({ capability: "send" }).length`) holds
|
|
10
|
+
* automatically.
|
|
11
|
+
*/
|
|
12
|
+
import type { IAgentRuntime } from "@elizaos/core";
|
|
13
|
+
import type { ChannelContribution, ChannelRegistry } from "./contract.js";
|
|
14
|
+
/**
|
|
15
|
+
* Empty default for callers that want a pre-built array; the descriptor
|
|
16
|
+
* list is the source of truth.
|
|
17
|
+
*/
|
|
18
|
+
export declare const DEFAULT_CHANNEL_PACK: readonly ChannelContribution[];
|
|
19
|
+
/**
|
|
20
|
+
* The channel kinds shipped by the default pack. Mirrors the union of
|
|
21
|
+
* `LIFEOPS_REMINDER_CHANNELS`, `LIFEOPS_CHANNEL_TYPES`, and
|
|
22
|
+
* `LIFEOPS_MESSAGE_CHANNELS`.
|
|
23
|
+
*/
|
|
24
|
+
export declare const DEFAULT_CHANNEL_KINDS: readonly string[];
|
|
25
|
+
export declare function registerDefaultChannelPack(registry: ChannelRegistry, runtime?: IAgentRuntime): void;
|
|
26
|
+
//# sourceMappingURL=default-pack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-pack.d.ts","sourceRoot":"","sources":["../../../src/lifeops/channels/default-pack.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD,OAAO,KAAK,EAEV,mBAAmB,EACnB,eAAe,EAChB,MAAM,eAAe,CAAC;AA4PvB;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,mBAAmB,EAAO,CAAC;AAEvE;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAElD,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,eAAe,EACzB,OAAO,CAAC,EAAE,aAAa,GACtB,IAAI,CAQN"}
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import { getConnectorRegistry } from "../connectors/registry.js";
|
|
2
|
+
const NULL_CAPABILITIES = {
|
|
3
|
+
send: false,
|
|
4
|
+
read: false,
|
|
5
|
+
reminders: false,
|
|
6
|
+
voice: false,
|
|
7
|
+
attachments: false,
|
|
8
|
+
quietHoursAware: false
|
|
9
|
+
};
|
|
10
|
+
const CHANNEL_DESCRIPTORS = [
|
|
11
|
+
// In-process delivery — runtime renders these directly.
|
|
12
|
+
{
|
|
13
|
+
kind: "in_app",
|
|
14
|
+
label: "In-app card",
|
|
15
|
+
capabilities: {
|
|
16
|
+
...NULL_CAPABILITIES,
|
|
17
|
+
send: false,
|
|
18
|
+
reminders: true,
|
|
19
|
+
attachments: true,
|
|
20
|
+
quietHoursAware: false
|
|
21
|
+
},
|
|
22
|
+
connectorKind: null
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
kind: "push",
|
|
26
|
+
label: "Push notification",
|
|
27
|
+
capabilities: {
|
|
28
|
+
...NULL_CAPABILITIES,
|
|
29
|
+
send: false,
|
|
30
|
+
reminders: true,
|
|
31
|
+
quietHoursAware: true
|
|
32
|
+
},
|
|
33
|
+
connectorKind: null
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
kind: "browser",
|
|
37
|
+
label: "Browser bridge",
|
|
38
|
+
capabilities: {
|
|
39
|
+
...NULL_CAPABILITIES,
|
|
40
|
+
send: false,
|
|
41
|
+
read: true
|
|
42
|
+
},
|
|
43
|
+
connectorKind: null
|
|
44
|
+
},
|
|
45
|
+
// Connector-backed channels.
|
|
46
|
+
{
|
|
47
|
+
kind: "email",
|
|
48
|
+
label: "Email (Gmail)",
|
|
49
|
+
capabilities: {
|
|
50
|
+
...NULL_CAPABILITIES,
|
|
51
|
+
send: true,
|
|
52
|
+
read: true,
|
|
53
|
+
reminders: false,
|
|
54
|
+
attachments: true,
|
|
55
|
+
quietHoursAware: true
|
|
56
|
+
},
|
|
57
|
+
connectorKind: "google"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
kind: "imessage",
|
|
61
|
+
label: "iMessage",
|
|
62
|
+
capabilities: {
|
|
63
|
+
...NULL_CAPABILITIES,
|
|
64
|
+
send: true,
|
|
65
|
+
read: true,
|
|
66
|
+
reminders: true,
|
|
67
|
+
attachments: true,
|
|
68
|
+
quietHoursAware: true
|
|
69
|
+
},
|
|
70
|
+
connectorKind: "imessage"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
kind: "telegram",
|
|
74
|
+
label: "Telegram",
|
|
75
|
+
capabilities: {
|
|
76
|
+
...NULL_CAPABILITIES,
|
|
77
|
+
send: true,
|
|
78
|
+
read: true,
|
|
79
|
+
reminders: true,
|
|
80
|
+
attachments: true,
|
|
81
|
+
quietHoursAware: true
|
|
82
|
+
},
|
|
83
|
+
connectorKind: "telegram"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
kind: "discord",
|
|
87
|
+
label: "Discord",
|
|
88
|
+
capabilities: {
|
|
89
|
+
...NULL_CAPABILITIES,
|
|
90
|
+
send: true,
|
|
91
|
+
read: true,
|
|
92
|
+
reminders: true,
|
|
93
|
+
attachments: true,
|
|
94
|
+
quietHoursAware: true
|
|
95
|
+
},
|
|
96
|
+
connectorKind: "discord"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
kind: "signal",
|
|
100
|
+
label: "Signal",
|
|
101
|
+
capabilities: {
|
|
102
|
+
...NULL_CAPABILITIES,
|
|
103
|
+
send: true,
|
|
104
|
+
read: true,
|
|
105
|
+
reminders: true,
|
|
106
|
+
attachments: true,
|
|
107
|
+
quietHoursAware: true
|
|
108
|
+
},
|
|
109
|
+
connectorKind: "signal"
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
kind: "whatsapp",
|
|
113
|
+
label: "WhatsApp",
|
|
114
|
+
capabilities: {
|
|
115
|
+
...NULL_CAPABILITIES,
|
|
116
|
+
send: true,
|
|
117
|
+
read: true,
|
|
118
|
+
reminders: true,
|
|
119
|
+
attachments: true,
|
|
120
|
+
quietHoursAware: true
|
|
121
|
+
},
|
|
122
|
+
connectorKind: "whatsapp"
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
kind: "x",
|
|
126
|
+
label: "X (Twitter)",
|
|
127
|
+
capabilities: {
|
|
128
|
+
...NULL_CAPABILITIES,
|
|
129
|
+
send: true,
|
|
130
|
+
read: true,
|
|
131
|
+
attachments: true
|
|
132
|
+
},
|
|
133
|
+
connectorKind: "x"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
kind: "x_dm",
|
|
137
|
+
label: "X DM",
|
|
138
|
+
capabilities: {
|
|
139
|
+
...NULL_CAPABILITIES,
|
|
140
|
+
send: true,
|
|
141
|
+
read: true,
|
|
142
|
+
attachments: true,
|
|
143
|
+
quietHoursAware: true
|
|
144
|
+
},
|
|
145
|
+
connectorKind: "x"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
kind: "sms",
|
|
149
|
+
label: "SMS (Twilio)",
|
|
150
|
+
capabilities: {
|
|
151
|
+
...NULL_CAPABILITIES,
|
|
152
|
+
send: true,
|
|
153
|
+
reminders: true,
|
|
154
|
+
quietHoursAware: true
|
|
155
|
+
},
|
|
156
|
+
connectorKind: "twilio"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
kind: "voice",
|
|
160
|
+
label: "Voice (Twilio)",
|
|
161
|
+
capabilities: {
|
|
162
|
+
...NULL_CAPABILITIES,
|
|
163
|
+
send: true,
|
|
164
|
+
voice: true,
|
|
165
|
+
reminders: true,
|
|
166
|
+
quietHoursAware: true
|
|
167
|
+
},
|
|
168
|
+
connectorKind: "twilio"
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
kind: "twilio_voice",
|
|
172
|
+
label: "Twilio voice call",
|
|
173
|
+
capabilities: {
|
|
174
|
+
...NULL_CAPABILITIES,
|
|
175
|
+
send: true,
|
|
176
|
+
voice: true,
|
|
177
|
+
reminders: true,
|
|
178
|
+
quietHoursAware: true
|
|
179
|
+
},
|
|
180
|
+
connectorKind: "twilio"
|
|
181
|
+
}
|
|
182
|
+
];
|
|
183
|
+
function buildChannelContribution(descriptor, runtime) {
|
|
184
|
+
if (!descriptor.capabilities.send || !descriptor.connectorKind) {
|
|
185
|
+
return {
|
|
186
|
+
kind: descriptor.kind,
|
|
187
|
+
describe: { label: descriptor.label },
|
|
188
|
+
capabilities: descriptor.capabilities
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
const targetPrefix = descriptor.kind === "voice" || descriptor.kind === "twilio_voice" ? "voice:" : "";
|
|
192
|
+
const connectorKind = descriptor.connectorKind;
|
|
193
|
+
return {
|
|
194
|
+
kind: descriptor.kind,
|
|
195
|
+
describe: { label: descriptor.label },
|
|
196
|
+
capabilities: descriptor.capabilities,
|
|
197
|
+
async send(payload) {
|
|
198
|
+
const registry = getConnectorRegistry(runtime);
|
|
199
|
+
if (!registry) {
|
|
200
|
+
return {
|
|
201
|
+
ok: false,
|
|
202
|
+
reason: "transport_error",
|
|
203
|
+
userActionable: false,
|
|
204
|
+
message: "ConnectorRegistry is not registered on the runtime; channel send cannot resolve a dispatcher."
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
const connector = registry.get(connectorKind);
|
|
208
|
+
if (!connector?.send) {
|
|
209
|
+
return {
|
|
210
|
+
ok: false,
|
|
211
|
+
reason: "disconnected",
|
|
212
|
+
userActionable: true,
|
|
213
|
+
message: `Channel "${descriptor.kind}" routes through connector "${connectorKind}" which is not registered or has no send.`
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
if (targetPrefix && payload && typeof payload === "object") {
|
|
217
|
+
const p = payload;
|
|
218
|
+
if (typeof p.target === "string" && !p.target.startsWith(targetPrefix)) {
|
|
219
|
+
return connector.send({ ...p, target: `${targetPrefix}${p.target}` });
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
return connector.send(payload);
|
|
223
|
+
}
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
const DEFAULT_CHANNEL_PACK = [];
|
|
227
|
+
const DEFAULT_CHANNEL_KINDS = CHANNEL_DESCRIPTORS.map(
|
|
228
|
+
(descriptor) => descriptor.kind
|
|
229
|
+
);
|
|
230
|
+
function registerDefaultChannelPack(registry, runtime) {
|
|
231
|
+
if (!runtime) {
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
for (const descriptor of CHANNEL_DESCRIPTORS) {
|
|
235
|
+
registry.register(buildChannelContribution(descriptor, runtime));
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
export {
|
|
239
|
+
DEFAULT_CHANNEL_KINDS,
|
|
240
|
+
DEFAULT_CHANNEL_PACK,
|
|
241
|
+
registerDefaultChannelPack
|
|
242
|
+
};
|
|
243
|
+
//# sourceMappingURL=default-pack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lifeops/channels/default-pack.ts"],"sourcesContent":["/**\n * Default channel pack.\n *\n * Registers the union of `LIFEOPS_REMINDER_CHANNELS ∪ LIFEOPS_CHANNEL_TYPES\n * ∪ LIFEOPS_MESSAGE_CHANNELS` as `ChannelContribution` records.\n *\n * Channels delegate `send` to the matching `ConnectorContribution` so the\n * channel coverage invariant (`ChannelRegistry.list({ supports: { send } })\n * .length >= ConnectorRegistry.list({ capability: \"send\" }).length`) holds\n * automatically.\n */\n\nimport type { IAgentRuntime } from \"@elizaos/core\";\nimport type { DispatchResult } from \"../connectors/contract.js\";\nimport { getConnectorRegistry } from \"../connectors/registry.js\";\nimport type {\n ChannelCapabilities,\n ChannelContribution,\n ChannelRegistry,\n} from \"./contract.js\";\n\nconst NULL_CAPABILITIES: ChannelCapabilities = {\n send: false,\n read: false,\n reminders: false,\n voice: false,\n attachments: false,\n quietHoursAware: false,\n};\n\ninterface ChannelDescriptor {\n kind: string;\n label: string;\n capabilities: ChannelCapabilities;\n /**\n * The connector kind that supplies the underlying `send` dispatcher.\n * `null` for in-process channels (in_app, push, browser) where the\n * runtime owns delivery directly.\n */\n connectorKind: string | null;\n}\n\nconst CHANNEL_DESCRIPTORS: readonly ChannelDescriptor[] = [\n // In-process delivery — runtime renders these directly.\n {\n kind: \"in_app\",\n label: \"In-app card\",\n capabilities: {\n ...NULL_CAPABILITIES,\n send: false,\n reminders: true,\n attachments: true,\n quietHoursAware: false,\n },\n connectorKind: null,\n },\n {\n kind: \"push\",\n label: \"Push notification\",\n capabilities: {\n ...NULL_CAPABILITIES,\n send: false,\n reminders: true,\n quietHoursAware: true,\n },\n connectorKind: null,\n },\n {\n kind: \"browser\",\n label: \"Browser bridge\",\n capabilities: {\n ...NULL_CAPABILITIES,\n send: false,\n read: true,\n },\n connectorKind: null,\n },\n // Connector-backed channels.\n {\n kind: \"email\",\n label: \"Email (Gmail)\",\n capabilities: {\n ...NULL_CAPABILITIES,\n send: true,\n read: true,\n reminders: false,\n attachments: true,\n quietHoursAware: true,\n },\n connectorKind: \"google\",\n },\n {\n kind: \"imessage\",\n label: \"iMessage\",\n capabilities: {\n ...NULL_CAPABILITIES,\n send: true,\n read: true,\n reminders: true,\n attachments: true,\n quietHoursAware: true,\n },\n connectorKind: \"imessage\",\n },\n {\n kind: \"telegram\",\n label: \"Telegram\",\n capabilities: {\n ...NULL_CAPABILITIES,\n send: true,\n read: true,\n reminders: true,\n attachments: true,\n quietHoursAware: true,\n },\n connectorKind: \"telegram\",\n },\n {\n kind: \"discord\",\n label: \"Discord\",\n capabilities: {\n ...NULL_CAPABILITIES,\n send: true,\n read: true,\n reminders: true,\n attachments: true,\n quietHoursAware: true,\n },\n connectorKind: \"discord\",\n },\n {\n kind: \"signal\",\n label: \"Signal\",\n capabilities: {\n ...NULL_CAPABILITIES,\n send: true,\n read: true,\n reminders: true,\n attachments: true,\n quietHoursAware: true,\n },\n connectorKind: \"signal\",\n },\n {\n kind: \"whatsapp\",\n label: \"WhatsApp\",\n capabilities: {\n ...NULL_CAPABILITIES,\n send: true,\n read: true,\n reminders: true,\n attachments: true,\n quietHoursAware: true,\n },\n connectorKind: \"whatsapp\",\n },\n {\n kind: \"x\",\n label: \"X (Twitter)\",\n capabilities: {\n ...NULL_CAPABILITIES,\n send: true,\n read: true,\n attachments: true,\n },\n connectorKind: \"x\",\n },\n {\n kind: \"x_dm\",\n label: \"X DM\",\n capabilities: {\n ...NULL_CAPABILITIES,\n send: true,\n read: true,\n attachments: true,\n quietHoursAware: true,\n },\n connectorKind: \"x\",\n },\n {\n kind: \"sms\",\n label: \"SMS (Twilio)\",\n capabilities: {\n ...NULL_CAPABILITIES,\n send: true,\n reminders: true,\n quietHoursAware: true,\n },\n connectorKind: \"twilio\",\n },\n {\n kind: \"voice\",\n label: \"Voice (Twilio)\",\n capabilities: {\n ...NULL_CAPABILITIES,\n send: true,\n voice: true,\n reminders: true,\n quietHoursAware: true,\n },\n connectorKind: \"twilio\",\n },\n {\n kind: \"twilio_voice\",\n label: \"Twilio voice call\",\n capabilities: {\n ...NULL_CAPABILITIES,\n send: true,\n voice: true,\n reminders: true,\n quietHoursAware: true,\n },\n connectorKind: \"twilio\",\n },\n];\n\nfunction buildChannelContribution(\n descriptor: ChannelDescriptor,\n runtime: IAgentRuntime,\n): ChannelContribution {\n if (!descriptor.capabilities.send || !descriptor.connectorKind) {\n return {\n kind: descriptor.kind,\n describe: { label: descriptor.label },\n capabilities: descriptor.capabilities,\n };\n }\n // Voice channels rewrite the send target so Twilio knows to use TwiML.\n const targetPrefix =\n descriptor.kind === \"voice\" || descriptor.kind === \"twilio_voice\"\n ? \"voice:\"\n : \"\";\n const connectorKind = descriptor.connectorKind;\n return {\n kind: descriptor.kind,\n describe: { label: descriptor.label },\n capabilities: descriptor.capabilities,\n async send(payload: unknown): Promise<DispatchResult> {\n const registry = getConnectorRegistry(runtime);\n if (!registry) {\n return {\n ok: false,\n reason: \"transport_error\",\n userActionable: false,\n message:\n \"ConnectorRegistry is not registered on the runtime; channel send cannot resolve a dispatcher.\",\n };\n }\n const connector = registry.get(connectorKind);\n if (!connector?.send) {\n return {\n ok: false,\n reason: \"disconnected\",\n userActionable: true,\n message: `Channel \"${descriptor.kind}\" routes through connector \"${connectorKind}\" which is not registered or has no send.`,\n };\n }\n if (targetPrefix && payload && typeof payload === \"object\") {\n const p = payload as Record<string, unknown>;\n if (\n typeof p.target === \"string\" &&\n !p.target.startsWith(targetPrefix)\n ) {\n return connector.send({ ...p, target: `${targetPrefix}${p.target}` });\n }\n }\n return connector.send(payload);\n },\n };\n}\n\n/**\n * Empty default for callers that want a pre-built array; the descriptor\n * list is the source of truth.\n */\nexport const DEFAULT_CHANNEL_PACK: readonly ChannelContribution[] = [];\n\n/**\n * The channel kinds shipped by the default pack. Mirrors the union of\n * `LIFEOPS_REMINDER_CHANNELS`, `LIFEOPS_CHANNEL_TYPES`, and\n * `LIFEOPS_MESSAGE_CHANNELS`.\n */\nexport const DEFAULT_CHANNEL_KINDS: readonly string[] = CHANNEL_DESCRIPTORS.map(\n (descriptor) => descriptor.kind,\n);\n\nexport function registerDefaultChannelPack(\n registry: ChannelRegistry,\n runtime?: IAgentRuntime,\n): void {\n if (!runtime) {\n // Some callsites pass only the registry; preserve that path.\n return;\n }\n for (const descriptor of CHANNEL_DESCRIPTORS) {\n registry.register(buildChannelContribution(descriptor, runtime));\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export type { ChannelCapabilities, ChannelContribution, ChannelRegistry, ChannelRegistryFilter, } from "./contract.js";
|
|
2
|
+
export { DEFAULT_CHANNEL_PACK, registerDefaultChannelPack, } from "./default-pack.js";
|
|
3
|
+
export { PRIORITY_TO_POSTURE, type PriorityPosture, type ScheduledTaskPriority, } from "./priority-posture.js";
|
|
4
|
+
export { __resetChannelRegistryForTests, createChannelRegistry, getChannelRegistry, registerChannelRegistry, } from "./registry.js";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lifeops/channels/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,mBAAmB,EACnB,KAAK,eAAe,EACpB,KAAK,qBAAqB,GAC3B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,8BAA8B,EAC9B,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,eAAe,CAAC"}
|