@elizaos/plugin-personal-assistant 2.0.3-beta.5 → 2.0.3-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actions/app-block.d.ts +15 -0
- package/dist/actions/app-block.d.ts.map +1 -0
- package/dist/actions/app-block.js +349 -0
- package/dist/actions/app-block.js.map +1 -0
- package/dist/actions/autofill.d.ts +20 -0
- package/dist/actions/autofill.d.ts.map +1 -0
- package/dist/actions/autofill.js +370 -0
- package/dist/actions/autofill.js.map +1 -0
- package/dist/actions/block.d.ts +30 -0
- package/dist/actions/block.d.ts.map +1 -0
- package/dist/actions/block.js +326 -0
- package/dist/actions/block.js.map +1 -0
- package/dist/actions/book-travel.d.ts +10 -0
- package/dist/actions/book-travel.d.ts.map +1 -0
- package/dist/actions/book-travel.js +467 -0
- package/dist/actions/book-travel.js.map +1 -0
- package/dist/actions/brief.d.ts +60 -0
- package/dist/actions/brief.d.ts.map +1 -0
- package/dist/actions/brief.js +485 -0
- package/dist/actions/brief.js.map +1 -0
- package/dist/actions/calendar.d.ts +22 -0
- package/dist/actions/calendar.d.ts.map +1 -0
- package/dist/actions/calendar.js +832 -0
- package/dist/actions/calendar.js.map +1 -0
- package/dist/actions/conflict-detect.d.ts +67 -0
- package/dist/actions/conflict-detect.d.ts.map +1 -0
- package/dist/actions/conflict-detect.js +310 -0
- package/dist/actions/conflict-detect.js.map +1 -0
- package/dist/actions/connector.d.ts +5 -0
- package/dist/actions/connector.d.ts.map +1 -0
- package/dist/actions/connector.js +1354 -0
- package/dist/actions/connector.js.map +1 -0
- package/dist/actions/credentials.d.ts +14 -0
- package/dist/actions/credentials.d.ts.map +1 -0
- package/dist/actions/credentials.js +191 -0
- package/dist/actions/credentials.js.map +1 -0
- package/dist/actions/document.d.ts +36 -0
- package/dist/actions/document.d.ts.map +1 -0
- package/dist/actions/document.js +613 -0
- package/dist/actions/document.js.map +1 -0
- package/dist/actions/entity.d.ts +20 -0
- package/dist/actions/entity.d.ts.map +1 -0
- package/dist/actions/entity.js +785 -0
- package/dist/actions/entity.js.map +1 -0
- package/dist/actions/health.d.ts +4 -0
- package/dist/actions/health.d.ts.map +1 -0
- package/dist/actions/health.js +37 -0
- package/dist/actions/health.js.map +1 -0
- package/dist/actions/inbox.d.ts +12 -0
- package/dist/actions/inbox.d.ts.map +1 -0
- package/dist/actions/inbox.js +13 -0
- package/dist/actions/inbox.js.map +1 -0
- package/dist/actions/lib/calendly-handler.d.ts +3 -0
- package/dist/actions/lib/calendly-handler.d.ts.map +1 -0
- package/dist/actions/lib/calendly-handler.js +506 -0
- package/dist/actions/lib/calendly-handler.js.map +1 -0
- package/dist/actions/lib/extract-goal-plan.d.ts +69 -0
- package/dist/actions/lib/extract-goal-plan.d.ts.map +1 -0
- package/dist/actions/lib/extract-goal-plan.js +488 -0
- package/dist/actions/lib/extract-goal-plan.js.map +1 -0
- package/dist/actions/lib/extract-life-operation.d.ts +18 -0
- package/dist/actions/lib/extract-life-operation.d.ts.map +1 -0
- package/dist/actions/lib/extract-life-operation.js +318 -0
- package/dist/actions/lib/extract-life-operation.js.map +1 -0
- package/dist/actions/lib/extract-task-plan.d.ts +78 -0
- package/dist/actions/lib/extract-task-plan.d.ts.map +1 -0
- package/dist/actions/lib/extract-task-plan.js +355 -0
- package/dist/actions/lib/extract-task-plan.js.map +1 -0
- package/dist/actions/lib/extract-update-fields.d.ts +27 -0
- package/dist/actions/lib/extract-update-fields.d.ts.map +1 -0
- package/dist/actions/lib/extract-update-fields.js +172 -0
- package/dist/actions/lib/extract-update-fields.js.map +1 -0
- package/dist/actions/lib/lifeops-deferred-draft.d.ts +68 -0
- package/dist/actions/lib/lifeops-deferred-draft.d.ts.map +1 -0
- package/dist/actions/lib/lifeops-deferred-draft.js +315 -0
- package/dist/actions/lib/lifeops-deferred-draft.js.map +1 -0
- package/dist/actions/lib/messaging-helpers.d.ts +20 -0
- package/dist/actions/lib/messaging-helpers.d.ts.map +1 -0
- package/dist/actions/lib/messaging-helpers.js +103 -0
- package/dist/actions/lib/messaging-helpers.js.map +1 -0
- package/dist/actions/lib/owner-policy-writes.d.ts +49 -0
- package/dist/actions/lib/owner-policy-writes.d.ts.map +1 -0
- package/dist/actions/lib/owner-policy-writes.js +157 -0
- package/dist/actions/lib/owner-policy-writes.js.map +1 -0
- package/dist/actions/lib/prompt-format.d.ts +3 -0
- package/dist/actions/lib/prompt-format.d.ts.map +1 -0
- package/dist/actions/lib/prompt-format.js +42 -0
- package/dist/actions/lib/prompt-format.js.map +1 -0
- package/dist/actions/lib/scheduling-handler.d.ts +93 -0
- package/dist/actions/lib/scheduling-handler.d.ts.map +1 -0
- package/dist/actions/lib/scheduling-handler.js +868 -0
- package/dist/actions/lib/scheduling-handler.js.map +1 -0
- package/dist/actions/life.d.ts +13 -0
- package/dist/actions/life.d.ts.map +1 -0
- package/dist/actions/life.js +2524 -0
- package/dist/actions/life.js.map +1 -0
- package/dist/actions/money.d.ts +24 -0
- package/dist/actions/money.d.ts.map +1 -0
- package/dist/actions/money.js +41 -0
- package/dist/actions/money.js.map +1 -0
- package/dist/actions/owner-surfaces.d.ts +11 -0
- package/dist/actions/owner-surfaces.d.ts.map +1 -0
- package/dist/actions/owner-surfaces.js +493 -0
- package/dist/actions/owner-surfaces.js.map +1 -0
- package/dist/actions/password-manager.d.ts +10 -0
- package/dist/actions/password-manager.d.ts.map +1 -0
- package/dist/actions/password-manager.js +195 -0
- package/dist/actions/password-manager.js.map +1 -0
- package/dist/actions/payments.d.ts +10 -0
- package/dist/actions/payments.d.ts.map +1 -0
- package/dist/actions/payments.js +5 -0
- package/dist/actions/payments.js.map +1 -0
- package/dist/actions/prioritize.d.ts +49 -0
- package/dist/actions/prioritize.d.ts.map +1 -0
- package/dist/actions/prioritize.js +313 -0
- package/dist/actions/prioritize.js.map +1 -0
- package/dist/actions/remote-desktop.d.ts +13 -0
- package/dist/actions/remote-desktop.d.ts.map +1 -0
- package/dist/actions/remote-desktop.js +11 -0
- package/dist/actions/remote-desktop.js.map +1 -0
- package/dist/actions/resolve-request.d.ts +12 -0
- package/dist/actions/resolve-request.d.ts.map +1 -0
- package/dist/actions/resolve-request.js +427 -0
- package/dist/actions/resolve-request.js.map +1 -0
- package/dist/actions/schedule.d.ts +10 -0
- package/dist/actions/schedule.d.ts.map +1 -0
- package/dist/actions/schedule.js +113 -0
- package/dist/actions/schedule.js.map +1 -0
- package/dist/actions/scheduled-task.d.ts +32 -0
- package/dist/actions/scheduled-task.d.ts.map +1 -0
- package/dist/actions/scheduled-task.js +661 -0
- package/dist/actions/scheduled-task.js.map +1 -0
- package/dist/actions/screen-time.d.ts +4 -0
- package/dist/actions/screen-time.d.ts.map +1 -0
- package/dist/actions/screen-time.js +47 -0
- package/dist/actions/screen-time.js.map +1 -0
- package/dist/actions/subscriptions.d.ts +8 -0
- package/dist/actions/subscriptions.d.ts.map +1 -0
- package/dist/actions/subscriptions.js +327 -0
- package/dist/actions/subscriptions.js.map +1 -0
- package/dist/actions/voice-call.d.ts +16 -0
- package/dist/actions/voice-call.d.ts.map +1 -0
- package/dist/actions/voice-call.js +756 -0
- package/dist/actions/voice-call.js.map +1 -0
- package/dist/actions/website-block.d.ts +15 -0
- package/dist/actions/website-block.d.ts.map +1 -0
- package/dist/actions/website-block.js +719 -0
- package/dist/actions/website-block.js.map +1 -0
- package/dist/actions/work-thread.d.ts +5 -0
- package/dist/actions/work-thread.d.ts.map +1 -0
- package/dist/actions/work-thread.js +556 -0
- package/dist/actions/work-thread.js.map +1 -0
- package/dist/activity-profile/activity-tracker-repo.d.ts +28 -0
- package/dist/activity-profile/activity-tracker-repo.d.ts.map +1 -0
- package/dist/activity-profile/activity-tracker-repo.js +61 -0
- package/dist/activity-profile/activity-tracker-repo.js.map +1 -0
- package/dist/activity-profile/activity-tracker-reporting.d.ts +52 -0
- package/dist/activity-profile/activity-tracker-reporting.d.ts.map +1 -0
- package/dist/activity-profile/activity-tracker-reporting.js +119 -0
- package/dist/activity-profile/activity-tracker-reporting.js.map +1 -0
- package/dist/activity-profile/activity-tracker-service.d.ts +36 -0
- package/dist/activity-profile/activity-tracker-service.d.ts.map +1 -0
- package/dist/activity-profile/activity-tracker-service.js +187 -0
- package/dist/activity-profile/activity-tracker-service.js.map +1 -0
- package/dist/activity-profile/analyzer.d.ts +23 -0
- package/dist/activity-profile/analyzer.d.ts.map +1 -0
- package/dist/activity-profile/analyzer.js +485 -0
- package/dist/activity-profile/analyzer.js.map +1 -0
- package/dist/activity-profile/presence-signal-bridge-service.d.ts +14 -0
- package/dist/activity-profile/presence-signal-bridge-service.d.ts.map +1 -0
- package/dist/activity-profile/presence-signal-bridge-service.js +159 -0
- package/dist/activity-profile/presence-signal-bridge-service.js.map +1 -0
- package/dist/activity-profile/proactive-inbox-digest.d.ts +3 -0
- package/dist/activity-profile/proactive-inbox-digest.d.ts.map +1 -0
- package/dist/activity-profile/proactive-inbox-digest.js +21 -0
- package/dist/activity-profile/proactive-inbox-digest.js.map +1 -0
- package/dist/activity-profile/proactive-planner.d.ts +150 -0
- package/dist/activity-profile/proactive-planner.d.ts.map +1 -0
- package/dist/activity-profile/proactive-planner.js +529 -0
- package/dist/activity-profile/proactive-planner.js.map +1 -0
- package/dist/activity-profile/proactive-worker.d.ts +33 -0
- package/dist/activity-profile/proactive-worker.d.ts.map +1 -0
- package/dist/activity-profile/proactive-worker.js +779 -0
- package/dist/activity-profile/proactive-worker.js.map +1 -0
- package/dist/activity-profile/profile-metadata.d.ts +10 -0
- package/dist/activity-profile/profile-metadata.d.ts.map +1 -0
- package/dist/activity-profile/profile-metadata.js +16 -0
- package/dist/activity-profile/profile-metadata.js.map +1 -0
- package/dist/activity-profile/redactor.d.ts +15 -0
- package/dist/activity-profile/redactor.d.ts.map +1 -0
- package/dist/activity-profile/redactor.js +22 -0
- package/dist/activity-profile/redactor.js.map +1 -0
- package/dist/activity-profile/service.d.ts +11 -0
- package/dist/activity-profile/service.d.ts.map +1 -0
- package/dist/activity-profile/service.js +272 -0
- package/dist/activity-profile/service.js.map +1 -0
- package/dist/activity-profile/types.d.ts +97 -0
- package/dist/activity-profile/types.d.ts.map +1 -0
- package/dist/activity-profile/types.js +36 -0
- package/dist/activity-profile/types.js.map +1 -0
- package/dist/agent-lifeops.d.ts +2 -0
- package/dist/agent-lifeops.d.ts.map +1 -0
- package/dist/agent-lifeops.js +2 -0
- package/dist/agent-lifeops.js.map +1 -0
- package/dist/api/client-lifeops.d.ts +319 -0
- package/dist/api/client-lifeops.d.ts.map +1 -0
- package/dist/api/client-lifeops.js +794 -0
- package/dist/api/client-lifeops.js.map +1 -0
- package/dist/automation-node-contributor.d.ts +2 -0
- package/dist/automation-node-contributor.d.ts.map +1 -0
- package/dist/automation-node-contributor.js +184 -0
- package/dist/automation-node-contributor.js.map +1 -0
- package/dist/client.d.ts +16 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +18 -0
- package/dist/client.js.map +1 -0
- package/dist/components/AppBlockerSettingsCard.d.ts +3 -0
- package/dist/components/AppBlockerSettingsCard.d.ts.map +1 -0
- package/dist/components/AppBlockerSettingsCard.js +538 -0
- package/dist/components/AppBlockerSettingsCard.js.map +1 -0
- package/dist/components/WebsiteBlockerSettingsCard.d.ts +3 -0
- package/dist/components/WebsiteBlockerSettingsCard.d.ts.map +1 -0
- package/dist/components/WebsiteBlockerSettingsCard.js +148 -0
- package/dist/components/WebsiteBlockerSettingsCard.js.map +1 -0
- package/dist/contracts/index.d.ts +2 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +2 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/contracts/lifeops.d.ts +2 -0
- package/dist/contracts/lifeops.d.ts.map +1 -0
- package/dist/contracts/lifeops.js +2 -0
- package/dist/contracts/lifeops.js.map +1 -0
- package/dist/default-packs/autofill-whitelist-pack.d.ts +17 -0
- package/dist/default-packs/autofill-whitelist-pack.d.ts.map +1 -0
- package/dist/default-packs/autofill-whitelist-pack.js +56 -0
- package/dist/default-packs/autofill-whitelist-pack.js.map +1 -0
- package/dist/default-packs/consolidation-policies.d.ts +14 -0
- package/dist/default-packs/consolidation-policies.d.ts.map +1 -0
- package/dist/default-packs/consolidation-policies.js +17 -0
- package/dist/default-packs/consolidation-policies.js.map +1 -0
- package/dist/default-packs/contract-types.d.ts +200 -0
- package/dist/default-packs/contract-types.d.ts.map +1 -0
- package/dist/default-packs/contract-types.js +1 -0
- package/dist/default-packs/contract-types.js.map +1 -0
- package/dist/default-packs/daily-rhythm.d.ts +28 -0
- package/dist/default-packs/daily-rhythm.d.ts.map +1 -0
- package/dist/default-packs/daily-rhythm.js +136 -0
- package/dist/default-packs/daily-rhythm.js.map +1 -0
- package/dist/default-packs/escalation-ladders.d.ts +18 -0
- package/dist/default-packs/escalation-ladders.d.ts.map +1 -0
- package/dist/default-packs/escalation-ladders.js +17 -0
- package/dist/default-packs/escalation-ladders.js.map +1 -0
- package/dist/default-packs/executive-assistant.d.ts +50 -0
- package/dist/default-packs/executive-assistant.d.ts.map +1 -0
- package/dist/default-packs/executive-assistant.js +745 -0
- package/dist/default-packs/executive-assistant.js.map +1 -0
- package/dist/default-packs/followup-starter.d.ts +49 -0
- package/dist/default-packs/followup-starter.d.ts.map +1 -0
- package/dist/default-packs/followup-starter.js +104 -0
- package/dist/default-packs/followup-starter.js.map +1 -0
- package/dist/default-packs/habit-starters.d.ts +37 -0
- package/dist/default-packs/habit-starters.d.ts.map +1 -0
- package/dist/default-packs/habit-starters.js +255 -0
- package/dist/default-packs/habit-starters.js.map +1 -0
- package/dist/default-packs/inbox-triage-starter.d.ts +23 -0
- package/dist/default-packs/inbox-triage-starter.d.ts.map +1 -0
- package/dist/default-packs/inbox-triage-starter.js +61 -0
- package/dist/default-packs/inbox-triage-starter.js.map +1 -0
- package/dist/default-packs/index.d.ts +54 -0
- package/dist/default-packs/index.d.ts.map +1 -0
- package/dist/default-packs/index.js +150 -0
- package/dist/default-packs/index.js.map +1 -0
- package/dist/default-packs/lint.d.ts +62 -0
- package/dist/default-packs/lint.d.ts.map +1 -0
- package/dist/default-packs/lint.js +161 -0
- package/dist/default-packs/lint.js.map +1 -0
- package/dist/default-packs/morning-brief.d.ts +44 -0
- package/dist/default-packs/morning-brief.d.ts.map +1 -0
- package/dist/default-packs/morning-brief.js +69 -0
- package/dist/default-packs/morning-brief.js.map +1 -0
- package/dist/default-packs/quiet-user-watcher.d.ts +49 -0
- package/dist/default-packs/quiet-user-watcher.d.ts.map +1 -0
- package/dist/default-packs/quiet-user-watcher.js +92 -0
- package/dist/default-packs/quiet-user-watcher.js.map +1 -0
- package/dist/default-packs/registry-types.d.ts +51 -0
- package/dist/default-packs/registry-types.d.ts.map +1 -0
- package/dist/default-packs/registry-types.js +1 -0
- package/dist/default-packs/registry-types.js.map +1 -0
- package/dist/default-packs/task-definitions.d.ts +88 -0
- package/dist/default-packs/task-definitions.d.ts.map +1 -0
- package/dist/default-packs/task-definitions.js +87 -0
- package/dist/default-packs/task-definitions.js.map +1 -0
- package/dist/events/index.d.ts +34 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +30 -0
- package/dist/events/index.js.map +1 -0
- package/dist/followup/actions/listOverdueFollowups.d.ts +3 -0
- package/dist/followup/actions/listOverdueFollowups.d.ts.map +1 -0
- package/dist/followup/actions/listOverdueFollowups.js +90 -0
- package/dist/followup/actions/listOverdueFollowups.js.map +1 -0
- package/dist/followup/actions/markFollowupDone.d.ts +3 -0
- package/dist/followup/actions/markFollowupDone.d.ts.map +1 -0
- package/dist/followup/actions/markFollowupDone.js +171 -0
- package/dist/followup/actions/markFollowupDone.js.map +1 -0
- package/dist/followup/actions/setFollowupThreshold.d.ts +3 -0
- package/dist/followup/actions/setFollowupThreshold.d.ts.map +1 -0
- package/dist/followup/actions/setFollowupThreshold.js +171 -0
- package/dist/followup/actions/setFollowupThreshold.js.map +1 -0
- package/dist/followup/followup-tracker.d.ts +83 -0
- package/dist/followup/followup-tracker.d.ts.map +1 -0
- package/dist/followup/followup-tracker.js +311 -0
- package/dist/followup/followup-tracker.js.map +1 -0
- package/dist/followup/index.d.ts +5 -0
- package/dist/followup/index.d.ts.map +1 -0
- package/dist/followup/index.js +39 -0
- package/dist/followup/index.js.map +1 -0
- package/dist/hooks/connector-error.d.ts +2 -0
- package/dist/hooks/connector-error.d.ts.map +1 -0
- package/dist/hooks/connector-error.js +13 -0
- package/dist/hooks/connector-error.js.map +1 -0
- package/dist/hooks/useDiscordConnector.d.ts +11 -0
- package/dist/hooks/useDiscordConnector.d.ts.map +1 -0
- package/dist/hooks/useDiscordConnector.js +95 -0
- package/dist/hooks/useDiscordConnector.js.map +1 -0
- package/dist/hooks/useGoogleLifeOpsConnector.d.ts +23 -0
- package/dist/hooks/useGoogleLifeOpsConnector.d.ts.map +1 -0
- package/dist/hooks/useGoogleLifeOpsConnector.js +630 -0
- package/dist/hooks/useGoogleLifeOpsConnector.js.map +1 -0
- package/dist/hooks/useIMessageConnector.d.ts +10 -0
- package/dist/hooks/useIMessageConnector.d.ts.map +1 -0
- package/dist/hooks/useIMessageConnector.js +57 -0
- package/dist/hooks/useIMessageConnector.js.map +1 -0
- package/dist/hooks/useInbox.d.ts +36 -0
- package/dist/hooks/useInbox.d.ts.map +1 -0
- package/dist/hooks/useInbox.js +96 -0
- package/dist/hooks/useInbox.js.map +1 -0
- package/dist/hooks/useLifeOpsActivitySignals.d.ts +2 -0
- package/dist/hooks/useLifeOpsActivitySignals.d.ts.map +1 -0
- package/dist/hooks/useLifeOpsActivitySignals.js +358 -0
- package/dist/hooks/useLifeOpsActivitySignals.js.map +1 -0
- package/dist/hooks/useLifeOpsAppState.d.ts +9 -0
- package/dist/hooks/useLifeOpsAppState.d.ts.map +1 -0
- package/dist/hooks/useLifeOpsAppState.js +79 -0
- package/dist/hooks/useLifeOpsAppState.js.map +1 -0
- package/dist/hooks/useLifeOpsCapabilitiesStatus.d.ts +8 -0
- package/dist/hooks/useLifeOpsCapabilitiesStatus.d.ts.map +1 -0
- package/dist/hooks/useLifeOpsCapabilitiesStatus.js +60 -0
- package/dist/hooks/useLifeOpsCapabilitiesStatus.js.map +1 -0
- package/dist/hooks/useLifeOpsXConnector.d.ts +11 -0
- package/dist/hooks/useLifeOpsXConnector.d.ts.map +1 -0
- package/dist/hooks/useLifeOpsXConnector.js +92 -0
- package/dist/hooks/useLifeOpsXConnector.js.map +1 -0
- package/dist/hooks/useSignalConnector.d.ts +14 -0
- package/dist/hooks/useSignalConnector.d.ts.map +1 -0
- package/dist/hooks/useSignalConnector.js +89 -0
- package/dist/hooks/useSignalConnector.js.map +1 -0
- package/dist/hooks/useTelegramConnector.d.ts +14 -0
- package/dist/hooks/useTelegramConnector.d.ts.map +1 -0
- package/dist/hooks/useTelegramConnector.js +97 -0
- package/dist/hooks/useTelegramConnector.js.map +1 -0
- package/dist/hooks/useWhatsAppConnector.d.ts +8 -0
- package/dist/hooks/useWhatsAppConnector.d.ts.map +1 -0
- package/dist/hooks/useWhatsAppConnector.js +62 -0
- package/dist/hooks/useWhatsAppConnector.js.map +1 -0
- package/dist/inbox/message-fetcher.d.ts +11 -0
- package/dist/inbox/message-fetcher.d.ts.map +1 -0
- package/dist/inbox/message-fetcher.js +13 -0
- package/dist/inbox/message-fetcher.js.map +1 -0
- package/dist/inbox/repository.d.ts +11 -0
- package/dist/inbox/repository.d.ts.map +1 -0
- package/dist/inbox/repository.js +5 -0
- package/dist/inbox/repository.js.map +1 -0
- package/dist/inbox/types.d.ts +10 -0
- package/dist/inbox/types.d.ts.map +1 -0
- package/dist/inbox/types.js +2 -0
- package/dist/inbox/types.js.map +1 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +188 -0
- package/dist/index.js.map +1 -0
- package/dist/lifeops/access.d.ts +29 -0
- package/dist/lifeops/access.d.ts.map +1 -0
- package/dist/lifeops/access.js +56 -0
- package/dist/lifeops/access.js.map +1 -0
- package/dist/lifeops/app-state.d.ts +22 -0
- package/dist/lifeops/app-state.d.ts.map +1 -0
- package/dist/lifeops/app-state.js +67 -0
- package/dist/lifeops/app-state.js.map +1 -0
- package/dist/lifeops/apple-reminders.d.ts +67 -0
- package/dist/lifeops/apple-reminders.d.ts.map +1 -0
- package/dist/lifeops/apple-reminders.js +396 -0
- package/dist/lifeops/apple-reminders.js.map +1 -0
- package/dist/lifeops/approval-queue.d.ts +38 -0
- package/dist/lifeops/approval-queue.d.ts.map +1 -0
- package/dist/lifeops/approval-queue.js +575 -0
- package/dist/lifeops/approval-queue.js.map +1 -0
- package/dist/lifeops/approval-queue.types.d.ts +172 -0
- package/dist/lifeops/approval-queue.types.d.ts.map +1 -0
- package/dist/lifeops/approval-queue.types.js +27 -0
- package/dist/lifeops/approval-queue.types.js.map +1 -0
- package/dist/lifeops/autofill-whitelist.d.ts +20 -0
- package/dist/lifeops/autofill-whitelist.d.ts.map +1 -0
- package/dist/lifeops/autofill-whitelist.js +59 -0
- package/dist/lifeops/autofill-whitelist.js.map +1 -0
- package/dist/lifeops/background-planner-dispatch.d.ts +60 -0
- package/dist/lifeops/background-planner-dispatch.d.ts.map +1 -0
- package/dist/lifeops/background-planner-dispatch.js +113 -0
- package/dist/lifeops/background-planner-dispatch.js.map +1 -0
- package/dist/lifeops/background-planner.d.ts +140 -0
- package/dist/lifeops/background-planner.d.ts.map +1 -0
- package/dist/lifeops/background-planner.js +359 -0
- package/dist/lifeops/background-planner.js.map +1 -0
- package/dist/lifeops/bill-extraction.d.ts +46 -0
- package/dist/lifeops/bill-extraction.d.ts.map +1 -0
- package/dist/lifeops/bill-extraction.js +325 -0
- package/dist/lifeops/bill-extraction.js.map +1 -0
- package/dist/lifeops/browser-constants.d.ts +4 -0
- package/dist/lifeops/browser-constants.d.ts.map +1 -0
- package/dist/lifeops/browser-constants.js +27 -0
- package/dist/lifeops/browser-constants.js.map +1 -0
- package/dist/lifeops/browser-extension-store.d.ts +61 -0
- package/dist/lifeops/browser-extension-store.d.ts.map +1 -0
- package/dist/lifeops/browser-extension-store.js +176 -0
- package/dist/lifeops/browser-extension-store.js.map +1 -0
- package/dist/lifeops/browser-session-lifecycle.d.ts +57 -0
- package/dist/lifeops/browser-session-lifecycle.d.ts.map +1 -0
- package/dist/lifeops/browser-session-lifecycle.js +308 -0
- package/dist/lifeops/browser-session-lifecycle.js.map +1 -0
- package/dist/lifeops/bulk-review.d.ts +333 -0
- package/dist/lifeops/bulk-review.d.ts.map +1 -0
- package/dist/lifeops/bulk-review.js +1120 -0
- package/dist/lifeops/bulk-review.js.map +1 -0
- package/dist/lifeops/calendar-gate.d.ts +20 -0
- package/dist/lifeops/calendar-gate.d.ts.map +1 -0
- package/dist/lifeops/calendar-gate.js +30 -0
- package/dist/lifeops/calendar-gate.js.map +1 -0
- package/dist/lifeops/channels/contract.d.ts +47 -0
- package/dist/lifeops/channels/contract.d.ts.map +1 -0
- package/dist/lifeops/channels/contract.js +1 -0
- package/dist/lifeops/channels/contract.js.map +1 -0
- package/dist/lifeops/channels/default-pack.d.ts +26 -0
- package/dist/lifeops/channels/default-pack.d.ts.map +1 -0
- package/dist/lifeops/channels/default-pack.js +243 -0
- package/dist/lifeops/channels/default-pack.js.map +1 -0
- package/dist/lifeops/channels/index.d.ts +5 -0
- package/dist/lifeops/channels/index.d.ts.map +1 -0
- package/dist/lifeops/channels/index.js +23 -0
- package/dist/lifeops/channels/index.js.map +1 -0
- package/dist/lifeops/channels/priority-posture.d.ts +36 -0
- package/dist/lifeops/channels/priority-posture.d.ts.map +1 -0
- package/dist/lifeops/channels/priority-posture.js +27 -0
- package/dist/lifeops/channels/priority-posture.js.map +1 -0
- package/dist/lifeops/channels/registry.d.ts +7 -0
- package/dist/lifeops/channels/registry.d.ts.map +1 -0
- package/dist/lifeops/channels/registry.js +49 -0
- package/dist/lifeops/channels/registry.js.map +1 -0
- package/dist/lifeops/checkin/checkin-service.d.ts +66 -0
- package/dist/lifeops/checkin/checkin-service.d.ts.map +1 -0
- package/dist/lifeops/checkin/checkin-service.js +1084 -0
- package/dist/lifeops/checkin/checkin-service.js.map +1 -0
- package/dist/lifeops/checkin/schedule-resolver.d.ts +17 -0
- package/dist/lifeops/checkin/schedule-resolver.d.ts.map +1 -0
- package/dist/lifeops/checkin/schedule-resolver.js +26 -0
- package/dist/lifeops/checkin/schedule-resolver.js.map +1 -0
- package/dist/lifeops/checkin/types.d.ts +106 -0
- package/dist/lifeops/checkin/types.d.ts.map +1 -0
- package/dist/lifeops/checkin/types.js +1 -0
- package/dist/lifeops/checkin/types.js.map +1 -0
- package/dist/lifeops/connectors/_helpers.d.ts +51 -0
- package/dist/lifeops/connectors/_helpers.d.ts.map +1 -0
- package/dist/lifeops/connectors/_helpers.js +104 -0
- package/dist/lifeops/connectors/_helpers.js.map +1 -0
- package/dist/lifeops/connectors/calendly.d.ts +11 -0
- package/dist/lifeops/connectors/calendly.d.ts.map +1 -0
- package/dist/lifeops/connectors/calendly.js +61 -0
- package/dist/lifeops/connectors/calendly.js.map +1 -0
- package/dist/lifeops/connectors/contract.d.ts +88 -0
- package/dist/lifeops/connectors/contract.d.ts.map +1 -0
- package/dist/lifeops/connectors/contract.js +1 -0
- package/dist/lifeops/connectors/contract.js.map +1 -0
- package/dist/lifeops/connectors/default-pack.d.ts +35 -0
- package/dist/lifeops/connectors/default-pack.d.ts.map +1 -0
- package/dist/lifeops/connectors/default-pack.js +37 -0
- package/dist/lifeops/connectors/default-pack.js.map +1 -0
- package/dist/lifeops/connectors/discord.d.ts +8 -0
- package/dist/lifeops/connectors/discord.d.ts.map +1 -0
- package/dist/lifeops/connectors/discord.js +53 -0
- package/dist/lifeops/connectors/discord.js.map +1 -0
- package/dist/lifeops/connectors/dispatch-policy.d.ts +75 -0
- package/dist/lifeops/connectors/dispatch-policy.d.ts.map +1 -0
- package/dist/lifeops/connectors/dispatch-policy.js +35 -0
- package/dist/lifeops/connectors/dispatch-policy.js.map +1 -0
- package/dist/lifeops/connectors/duffel.d.ts +11 -0
- package/dist/lifeops/connectors/duffel.d.ts.map +1 -0
- package/dist/lifeops/connectors/duffel.js +74 -0
- package/dist/lifeops/connectors/duffel.js.map +1 -0
- package/dist/lifeops/connectors/google.d.ts +27 -0
- package/dist/lifeops/connectors/google.d.ts.map +1 -0
- package/dist/lifeops/connectors/google.js +80 -0
- package/dist/lifeops/connectors/google.js.map +1 -0
- package/dist/lifeops/connectors/imessage.d.ts +11 -0
- package/dist/lifeops/connectors/imessage.d.ts.map +1 -0
- package/dist/lifeops/connectors/imessage.js +55 -0
- package/dist/lifeops/connectors/imessage.js.map +1 -0
- package/dist/lifeops/connectors/index.d.ts +5 -0
- package/dist/lifeops/connectors/index.d.ts.map +1 -0
- package/dist/lifeops/connectors/index.js +23 -0
- package/dist/lifeops/connectors/index.js.map +1 -0
- package/dist/lifeops/connectors/mockoon-redirect.d.ts +54 -0
- package/dist/lifeops/connectors/mockoon-redirect.d.ts.map +1 -0
- package/dist/lifeops/connectors/mockoon-redirect.js +71 -0
- package/dist/lifeops/connectors/mockoon-redirect.js.map +1 -0
- package/dist/lifeops/connectors/registry.d.ts +7 -0
- package/dist/lifeops/connectors/registry.d.ts.map +1 -0
- package/dist/lifeops/connectors/registry.js +55 -0
- package/dist/lifeops/connectors/registry.js.map +1 -0
- package/dist/lifeops/connectors/signal.d.ts +8 -0
- package/dist/lifeops/connectors/signal.d.ts.map +1 -0
- package/dist/lifeops/connectors/signal.js +60 -0
- package/dist/lifeops/connectors/signal.js.map +1 -0
- package/dist/lifeops/connectors/telegram.d.ts +12 -0
- package/dist/lifeops/connectors/telegram.d.ts.map +1 -0
- package/dist/lifeops/connectors/telegram.js +65 -0
- package/dist/lifeops/connectors/telegram.js.map +1 -0
- package/dist/lifeops/connectors/twilio.d.ts +15 -0
- package/dist/lifeops/connectors/twilio.d.ts.map +1 -0
- package/dist/lifeops/connectors/twilio.js +126 -0
- package/dist/lifeops/connectors/twilio.js.map +1 -0
- package/dist/lifeops/connectors/whatsapp.d.ts +10 -0
- package/dist/lifeops/connectors/whatsapp.d.ts.map +1 -0
- package/dist/lifeops/connectors/whatsapp.js +56 -0
- package/dist/lifeops/connectors/whatsapp.js.map +1 -0
- package/dist/lifeops/connectors/x.d.ts +8 -0
- package/dist/lifeops/connectors/x.d.ts.map +1 -0
- package/dist/lifeops/connectors/x.js +62 -0
- package/dist/lifeops/connectors/x.js.map +1 -0
- package/dist/lifeops/contact-route-policy.d.ts +27 -0
- package/dist/lifeops/contact-route-policy.d.ts.map +1 -0
- package/dist/lifeops/contact-route-policy.js +153 -0
- package/dist/lifeops/contact-route-policy.js.map +1 -0
- package/dist/lifeops/continuity-probe.d.ts +49 -0
- package/dist/lifeops/continuity-probe.d.ts.map +1 -0
- package/dist/lifeops/continuity-probe.js +161 -0
- package/dist/lifeops/continuity-probe.js.map +1 -0
- package/dist/lifeops/cross-channel-search.d.ts +108 -0
- package/dist/lifeops/cross-channel-search.d.ts.map +1 -0
- package/dist/lifeops/cross-channel-search.js +888 -0
- package/dist/lifeops/cross-channel-search.js.map +1 -0
- package/dist/lifeops/defaults.d.ts +30 -0
- package/dist/lifeops/defaults.d.ts.map +1 -0
- package/dist/lifeops/defaults.js +206 -0
- package/dist/lifeops/defaults.js.map +1 -0
- package/dist/lifeops/device-bus-service.d.ts +16 -0
- package/dist/lifeops/device-bus-service.d.ts.map +1 -0
- package/dist/lifeops/device-bus-service.js +20 -0
- package/dist/lifeops/device-bus-service.js.map +1 -0
- package/dist/lifeops/device-identity.d.ts +31 -0
- package/dist/lifeops/device-identity.d.ts.map +1 -0
- package/dist/lifeops/device-identity.js +94 -0
- package/dist/lifeops/device-identity.js.map +1 -0
- package/dist/lifeops/document-review.d.ts +264 -0
- package/dist/lifeops/document-review.d.ts.map +1 -0
- package/dist/lifeops/document-review.js +925 -0
- package/dist/lifeops/document-review.js.map +1 -0
- package/dist/lifeops/email-classifier.d.ts +9 -0
- package/dist/lifeops/email-classifier.d.ts.map +1 -0
- package/dist/lifeops/email-classifier.js +15 -0
- package/dist/lifeops/email-classifier.js.map +1 -0
- package/dist/lifeops/email-curation.d.ts +13 -0
- package/dist/lifeops/email-curation.d.ts.map +1 -0
- package/dist/lifeops/email-curation.js +2 -0
- package/dist/lifeops/email-curation.js.map +1 -0
- package/dist/lifeops/email-unsubscribe-types.d.ts +7 -0
- package/dist/lifeops/email-unsubscribe-types.d.ts.map +1 -0
- package/dist/lifeops/email-unsubscribe-types.js +1 -0
- package/dist/lifeops/email-unsubscribe-types.js.map +1 -0
- package/dist/lifeops/enforcement-windows.d.ts +34 -0
- package/dist/lifeops/enforcement-windows.d.ts.map +1 -0
- package/dist/lifeops/enforcement-windows.js +80 -0
- package/dist/lifeops/enforcement-windows.js.map +1 -0
- package/dist/lifeops/engine.d.ts +8 -0
- package/dist/lifeops/engine.d.ts.map +1 -0
- package/dist/lifeops/engine.js +540 -0
- package/dist/lifeops/engine.js.map +1 -0
- package/dist/lifeops/entities/index.d.ts +4 -0
- package/dist/lifeops/entities/index.d.ts.map +1 -0
- package/dist/lifeops/entities/index.js +29 -0
- package/dist/lifeops/entities/index.js.map +1 -0
- package/dist/lifeops/entities/merge.d.ts +9 -0
- package/dist/lifeops/entities/merge.d.ts.map +1 -0
- package/dist/lifeops/entities/merge.js +17 -0
- package/dist/lifeops/entities/merge.js.map +1 -0
- package/dist/lifeops/entities/store.d.ts +13 -0
- package/dist/lifeops/entities/store.d.ts.map +1 -0
- package/dist/lifeops/entities/store.js +7 -0
- package/dist/lifeops/entities/store.js.map +1 -0
- package/dist/lifeops/entities/types.d.ts +9 -0
- package/dist/lifeops/entities/types.d.ts.map +1 -0
- package/dist/lifeops/entities/types.js +13 -0
- package/dist/lifeops/entities/types.js.map +1 -0
- package/dist/lifeops/entities/voice-attribution.d.ts +70 -0
- package/dist/lifeops/entities/voice-attribution.d.ts.map +1 -0
- package/dist/lifeops/entities/voice-attribution.js +121 -0
- package/dist/lifeops/entities/voice-attribution.js.map +1 -0
- package/dist/lifeops/entities/voice-observer-bridge.d.ts +32 -0
- package/dist/lifeops/entities/voice-observer-bridge.d.ts.map +1 -0
- package/dist/lifeops/entities/voice-observer-bridge.js +68 -0
- package/dist/lifeops/entities/voice-observer-bridge.js.map +1 -0
- package/dist/lifeops/entities/voice-observer.d.ts +72 -0
- package/dist/lifeops/entities/voice-observer.d.ts.map +1 -0
- package/dist/lifeops/entities/voice-observer.js +97 -0
- package/dist/lifeops/entities/voice-observer.js.map +1 -0
- package/dist/lifeops/escalation-ladders.d.ts +28 -0
- package/dist/lifeops/escalation-ladders.d.ts.map +1 -0
- package/dist/lifeops/escalation-ladders.js +17 -0
- package/dist/lifeops/escalation-ladders.js.map +1 -0
- package/dist/lifeops/fda-probe.d.ts +23 -0
- package/dist/lifeops/fda-probe.d.ts.map +1 -0
- package/dist/lifeops/fda-probe.js +59 -0
- package/dist/lifeops/fda-probe.js.map +1 -0
- package/dist/lifeops/feature-flags.d.ts +24 -0
- package/dist/lifeops/feature-flags.d.ts.map +1 -0
- package/dist/lifeops/feature-flags.js +261 -0
- package/dist/lifeops/feature-flags.js.map +1 -0
- package/dist/lifeops/feature-flags.types.d.ts +156 -0
- package/dist/lifeops/feature-flags.types.d.ts.map +1 -0
- package/dist/lifeops/feature-flags.types.js +129 -0
- package/dist/lifeops/feature-flags.types.js.map +1 -0
- package/dist/lifeops/first-run/defaults.d.ts +57 -0
- package/dist/lifeops/first-run/defaults.d.ts.map +1 -0
- package/dist/lifeops/first-run/defaults.js +159 -0
- package/dist/lifeops/first-run/defaults.js.map +1 -0
- package/dist/lifeops/first-run/questions.d.ts +74 -0
- package/dist/lifeops/first-run/questions.d.ts.map +1 -0
- package/dist/lifeops/first-run/questions.js +184 -0
- package/dist/lifeops/first-run/questions.js.map +1 -0
- package/dist/lifeops/first-run/replay.d.ts +41 -0
- package/dist/lifeops/first-run/replay.d.ts.map +1 -0
- package/dist/lifeops/first-run/replay.js +34 -0
- package/dist/lifeops/first-run/replay.js.map +1 -0
- package/dist/lifeops/first-run/service.d.ts +147 -0
- package/dist/lifeops/first-run/service.d.ts.map +1 -0
- package/dist/lifeops/first-run/service.js +455 -0
- package/dist/lifeops/first-run/service.js.map +1 -0
- package/dist/lifeops/first-run/state.d.ts +36 -0
- package/dist/lifeops/first-run/state.d.ts.map +1 -0
- package/dist/lifeops/first-run/state.js +128 -0
- package/dist/lifeops/first-run/state.js.map +1 -0
- package/dist/lifeops/global-pause/store.d.ts +22 -0
- package/dist/lifeops/global-pause/store.d.ts.map +1 -0
- package/dist/lifeops/global-pause/store.js +18 -0
- package/dist/lifeops/global-pause/store.js.map +1 -0
- package/dist/lifeops/goal-grounding.d.ts +9 -0
- package/dist/lifeops/goal-grounding.d.ts.map +1 -0
- package/dist/lifeops/goal-grounding.js +19 -0
- package/dist/lifeops/goal-grounding.js.map +1 -0
- package/dist/lifeops/goal-semantic-evaluator.d.ts +8 -0
- package/dist/lifeops/goal-semantic-evaluator.d.ts.map +1 -0
- package/dist/lifeops/goal-semantic-evaluator.js +7 -0
- package/dist/lifeops/goal-semantic-evaluator.js.map +1 -0
- package/dist/lifeops/google/format-helpers.d.ts +63 -0
- package/dist/lifeops/google/format-helpers.d.ts.map +1 -0
- package/dist/lifeops/google/format-helpers.js +597 -0
- package/dist/lifeops/google/format-helpers.js.map +1 -0
- package/dist/lifeops/google-plugin-delegates.d.ts +59 -0
- package/dist/lifeops/google-plugin-delegates.d.ts.map +1 -0
- package/dist/lifeops/google-plugin-delegates.js +408 -0
- package/dist/lifeops/google-plugin-delegates.js.map +1 -0
- package/dist/lifeops/google-scopes.d.ts +15 -0
- package/dist/lifeops/google-scopes.d.ts.map +1 -0
- package/dist/lifeops/google-scopes.js +118 -0
- package/dist/lifeops/google-scopes.js.map +1 -0
- package/dist/lifeops/handoff/store.d.ts +23 -0
- package/dist/lifeops/handoff/store.d.ts.map +1 -0
- package/dist/lifeops/handoff/store.js +20 -0
- package/dist/lifeops/handoff/store.js.map +1 -0
- package/dist/lifeops/i18n/localized-examples-provider.d.ts +16 -0
- package/dist/lifeops/i18n/localized-examples-provider.d.ts.map +1 -0
- package/dist/lifeops/i18n/localized-examples-provider.js +33 -0
- package/dist/lifeops/i18n/localized-examples-provider.js.map +1 -0
- package/dist/lifeops/i18n/localized-examples-resolver.d.ts +32 -0
- package/dist/lifeops/i18n/localized-examples-resolver.d.ts.map +1 -0
- package/dist/lifeops/i18n/localized-examples-resolver.js +28 -0
- package/dist/lifeops/i18n/localized-examples-resolver.js.map +1 -0
- package/dist/lifeops/i18n/prompt-registry.d.ts +64 -0
- package/dist/lifeops/i18n/prompt-registry.d.ts.map +1 -0
- package/dist/lifeops/i18n/prompt-registry.js +283 -0
- package/dist/lifeops/i18n/prompt-registry.js.map +1 -0
- package/dist/lifeops/imessage-outbound-probe.d.ts +7 -0
- package/dist/lifeops/imessage-outbound-probe.d.ts.map +1 -0
- package/dist/lifeops/imessage-outbound-probe.js +81 -0
- package/dist/lifeops/imessage-outbound-probe.js.map +1 -0
- package/dist/lifeops/index.d.ts +24 -0
- package/dist/lifeops/index.d.ts.map +1 -0
- package/dist/lifeops/index.js +24 -0
- package/dist/lifeops/index.js.map +1 -0
- package/dist/lifeops/intent-sync.d.ts +64 -0
- package/dist/lifeops/intent-sync.d.ts.map +1 -0
- package/dist/lifeops/intent-sync.js +321 -0
- package/dist/lifeops/intent-sync.js.map +1 -0
- package/dist/lifeops/messaging/index.d.ts +2 -0
- package/dist/lifeops/messaging/index.d.ts.map +1 -0
- package/dist/lifeops/messaging/index.js +5 -0
- package/dist/lifeops/messaging/index.js.map +1 -0
- package/dist/lifeops/messaging/owner-send-policy.d.ts +3 -0
- package/dist/lifeops/messaging/owner-send-policy.d.ts.map +1 -0
- package/dist/lifeops/messaging/owner-send-policy.js +83 -0
- package/dist/lifeops/messaging/owner-send-policy.js.map +1 -0
- package/dist/lifeops/notifications-push.d.ts +37 -0
- package/dist/lifeops/notifications-push.d.ts.map +1 -0
- package/dist/lifeops/notifications-push.js +95 -0
- package/dist/lifeops/notifications-push.js.map +1 -0
- package/dist/lifeops/optimized-prompt-instructions.d.ts +5 -0
- package/dist/lifeops/optimized-prompt-instructions.d.ts.map +1 -0
- package/dist/lifeops/optimized-prompt-instructions.js +48 -0
- package/dist/lifeops/optimized-prompt-instructions.js.map +1 -0
- package/dist/lifeops/owner/fact-store.d.ts +143 -0
- package/dist/lifeops/owner/fact-store.d.ts.map +1 -0
- package/dist/lifeops/owner/fact-store.js +446 -0
- package/dist/lifeops/owner/fact-store.js.map +1 -0
- package/dist/lifeops/owner/profile-extraction-evaluator.d.ts +3 -0
- package/dist/lifeops/owner/profile-extraction-evaluator.d.ts.map +1 -0
- package/dist/lifeops/owner/profile-extraction-evaluator.js +241 -0
- package/dist/lifeops/owner/profile-extraction-evaluator.js.map +1 -0
- package/dist/lifeops/owner-profile.d.ts +61 -0
- package/dist/lifeops/owner-profile.d.ts.map +1 -0
- package/dist/lifeops/owner-profile.js +407 -0
- package/dist/lifeops/owner-profile.js.map +1 -0
- package/dist/lifeops/pending-prompts/store.d.ts +23 -0
- package/dist/lifeops/pending-prompts/store.d.ts.map +1 -0
- package/dist/lifeops/pending-prompts/store.js +16 -0
- package/dist/lifeops/pending-prompts/store.js.map +1 -0
- package/dist/lifeops/policy-memory.d.ts +190 -0
- package/dist/lifeops/policy-memory.d.ts.map +1 -0
- package/dist/lifeops/policy-memory.js +1026 -0
- package/dist/lifeops/policy-memory.js.map +1 -0
- package/dist/lifeops/priority-scoring.d.ts +51 -0
- package/dist/lifeops/priority-scoring.d.ts.map +1 -0
- package/dist/lifeops/priority-scoring.js +305 -0
- package/dist/lifeops/priority-scoring.js.map +1 -0
- package/dist/lifeops/privacy-egress.d.ts +92 -0
- package/dist/lifeops/privacy-egress.d.ts.map +1 -0
- package/dist/lifeops/privacy-egress.js +230 -0
- package/dist/lifeops/privacy-egress.js.map +1 -0
- package/dist/lifeops/privacy.d.ts +49 -0
- package/dist/lifeops/privacy.d.ts.map +1 -0
- package/dist/lifeops/privacy.js +66 -0
- package/dist/lifeops/privacy.js.map +1 -0
- package/dist/lifeops/redact-sensitive-data.d.ts +32 -0
- package/dist/lifeops/redact-sensitive-data.d.ts.map +1 -0
- package/dist/lifeops/redact-sensitive-data.js +98 -0
- package/dist/lifeops/redact-sensitive-data.js.map +1 -0
- package/dist/lifeops/registries/app-blocker-contribution.d.ts +13 -0
- package/dist/lifeops/registries/app-blocker-contribution.d.ts.map +1 -0
- package/dist/lifeops/registries/app-blocker-contribution.js +73 -0
- package/dist/lifeops/registries/app-blocker-contribution.js.map +1 -0
- package/dist/lifeops/registries/blocker-registry.d.ts +76 -0
- package/dist/lifeops/registries/blocker-registry.d.ts.map +1 -0
- package/dist/lifeops/registries/blocker-registry.js +40 -0
- package/dist/lifeops/registries/blocker-registry.js.map +1 -0
- package/dist/lifeops/registries/event-kind-registry.d.ts +57 -0
- package/dist/lifeops/registries/event-kind-registry.d.ts.map +1 -0
- package/dist/lifeops/registries/event-kind-registry.js +82 -0
- package/dist/lifeops/registries/event-kind-registry.js.map +1 -0
- package/dist/lifeops/registries/family-registry.d.ts +72 -0
- package/dist/lifeops/registries/family-registry.d.ts.map +1 -0
- package/dist/lifeops/registries/family-registry.js +98 -0
- package/dist/lifeops/registries/family-registry.js.map +1 -0
- package/dist/lifeops/registries/feature-flag-default-pack.d.ts +32 -0
- package/dist/lifeops/registries/feature-flag-default-pack.d.ts.map +1 -0
- package/dist/lifeops/registries/feature-flag-default-pack.js +36 -0
- package/dist/lifeops/registries/feature-flag-default-pack.js.map +1 -0
- package/dist/lifeops/registries/feature-flag-registry.d.ts +76 -0
- package/dist/lifeops/registries/feature-flag-registry.d.ts.map +1 -0
- package/dist/lifeops/registries/feature-flag-registry.js +68 -0
- package/dist/lifeops/registries/feature-flag-registry.js.map +1 -0
- package/dist/lifeops/registries/index.d.ts +24 -0
- package/dist/lifeops/registries/index.d.ts.map +1 -0
- package/dist/lifeops/registries/index.js +115 -0
- package/dist/lifeops/registries/index.js.map +1 -0
- package/dist/lifeops/registries/website-blocker-contribution.d.ts +21 -0
- package/dist/lifeops/registries/website-blocker-contribution.d.ts.map +1 -0
- package/dist/lifeops/registries/website-blocker-contribution.js +76 -0
- package/dist/lifeops/registries/website-blocker-contribution.js.map +1 -0
- package/dist/lifeops/registries/workflow-step-default-pack.d.ts +30 -0
- package/dist/lifeops/registries/workflow-step-default-pack.d.ts.map +1 -0
- package/dist/lifeops/registries/workflow-step-default-pack.js +315 -0
- package/dist/lifeops/registries/workflow-step-default-pack.js.map +1 -0
- package/dist/lifeops/registries/workflow-step-registry.d.ts +101 -0
- package/dist/lifeops/registries/workflow-step-registry.d.ts.map +1 -0
- package/dist/lifeops/registries/workflow-step-registry.js +56 -0
- package/dist/lifeops/registries/workflow-step-registry.js.map +1 -0
- package/dist/lifeops/relationships/extraction.d.ts +77 -0
- package/dist/lifeops/relationships/extraction.d.ts.map +1 -0
- package/dist/lifeops/relationships/extraction.js +146 -0
- package/dist/lifeops/relationships/extraction.js.map +1 -0
- package/dist/lifeops/relationships/index.d.ts +4 -0
- package/dist/lifeops/relationships/index.d.ts.map +1 -0
- package/dist/lifeops/relationships/index.js +19 -0
- package/dist/lifeops/relationships/index.js.map +1 -0
- package/dist/lifeops/relationships/mapping.d.ts +34 -0
- package/dist/lifeops/relationships/mapping.d.ts.map +1 -0
- package/dist/lifeops/relationships/mapping.js +87 -0
- package/dist/lifeops/relationships/mapping.js.map +1 -0
- package/dist/lifeops/relationships/store.d.ts +12 -0
- package/dist/lifeops/relationships/store.d.ts.map +1 -0
- package/dist/lifeops/relationships/store.js +5 -0
- package/dist/lifeops/relationships/store.js.map +1 -0
- package/dist/lifeops/relationships/types.d.ts +9 -0
- package/dist/lifeops/relationships/types.d.ts.map +1 -0
- package/dist/lifeops/relationships/types.js +11 -0
- package/dist/lifeops/relationships/types.js.map +1 -0
- package/dist/lifeops/relative-schedule-resolver.d.ts +13 -0
- package/dist/lifeops/relative-schedule-resolver.d.ts.map +1 -0
- package/dist/lifeops/relative-schedule-resolver.js +107 -0
- package/dist/lifeops/relative-schedule-resolver.js.map +1 -0
- package/dist/lifeops/relative-time.d.ts +15 -0
- package/dist/lifeops/relative-time.d.ts.map +1 -0
- package/dist/lifeops/relative-time.js +191 -0
- package/dist/lifeops/relative-time.js.map +1 -0
- package/dist/lifeops/repository.d.ts +638 -0
- package/dist/lifeops/repository.d.ts.map +1 -0
- package/dist/lifeops/repository.js +6289 -0
- package/dist/lifeops/repository.js.map +1 -0
- package/dist/lifeops/runtime-cache.d.ts +4 -0
- package/dist/lifeops/runtime-cache.d.ts.map +1 -0
- package/dist/lifeops/runtime-cache.js +7 -0
- package/dist/lifeops/runtime-cache.js.map +1 -0
- package/dist/lifeops/runtime-service-delegates.d.ts +236 -0
- package/dist/lifeops/runtime-service-delegates.d.ts.map +1 -0
- package/dist/lifeops/runtime-service-delegates.js +839 -0
- package/dist/lifeops/runtime-service-delegates.js.map +1 -0
- package/dist/lifeops/runtime.d.ts +13 -0
- package/dist/lifeops/runtime.d.ts.map +1 -0
- package/dist/lifeops/runtime.js +104 -0
- package/dist/lifeops/runtime.js.map +1 -0
- package/dist/lifeops/schedule-insight.d.ts +133 -0
- package/dist/lifeops/schedule-insight.d.ts.map +1 -0
- package/dist/lifeops/schedule-insight.js +726 -0
- package/dist/lifeops/schedule-insight.js.map +1 -0
- package/dist/lifeops/schedule-state.d.ts +39 -0
- package/dist/lifeops/schedule-state.d.ts.map +1 -0
- package/dist/lifeops/schedule-state.js +671 -0
- package/dist/lifeops/schedule-state.js.map +1 -0
- package/dist/lifeops/schedule-sync-config.d.ts +3 -0
- package/dist/lifeops/schedule-sync-config.d.ts.map +1 -0
- package/dist/lifeops/schedule-sync-config.js +23 -0
- package/dist/lifeops/schedule-sync-config.js.map +1 -0
- package/dist/lifeops/schedule-sync-contracts.d.ts +2 -0
- package/dist/lifeops/schedule-sync-contracts.d.ts.map +1 -0
- package/dist/lifeops/schedule-sync-contracts.js +2 -0
- package/dist/lifeops/schedule-sync-contracts.js.map +1 -0
- package/dist/lifeops/scheduled-task/index.d.ts +13 -0
- package/dist/lifeops/scheduled-task/index.d.ts.map +1 -0
- package/dist/lifeops/scheduled-task/index.js +14 -0
- package/dist/lifeops/scheduled-task/index.js.map +1 -0
- package/dist/lifeops/scheduled-task/runtime-wiring.d.ts +33 -0
- package/dist/lifeops/scheduled-task/runtime-wiring.d.ts.map +1 -0
- package/dist/lifeops/scheduled-task/runtime-wiring.js +334 -0
- package/dist/lifeops/scheduled-task/runtime-wiring.js.map +1 -0
- package/dist/lifeops/scheduled-task/scheduler.d.ts +28 -0
- package/dist/lifeops/scheduled-task/scheduler.d.ts.map +1 -0
- package/dist/lifeops/scheduled-task/scheduler.js +202 -0
- package/dist/lifeops/scheduled-task/scheduler.js.map +1 -0
- package/dist/lifeops/scheduled-task/service.d.ts +61 -0
- package/dist/lifeops/scheduled-task/service.d.ts.map +1 -0
- package/dist/lifeops/scheduled-task/service.js +64 -0
- package/dist/lifeops/scheduled-task/service.js.map +1 -0
- package/dist/lifeops/scheduler-task.d.ts +19 -0
- package/dist/lifeops/scheduler-task.d.ts.map +1 -0
- package/dist/lifeops/scheduler-task.js +201 -0
- package/dist/lifeops/scheduler-task.js.map +1 -0
- package/dist/lifeops/schema.d.ts +28068 -0
- package/dist/lifeops/schema.d.ts.map +1 -0
- package/dist/lifeops/schema.js +1689 -0
- package/dist/lifeops/schema.js.map +1 -0
- package/dist/lifeops/screen-context.d.ts +66 -0
- package/dist/lifeops/screen-context.d.ts.map +1 -0
- package/dist/lifeops/screen-context.js +347 -0
- package/dist/lifeops/screen-context.js.map +1 -0
- package/dist/lifeops/seed-routine-migration/migrator.d.ts +113 -0
- package/dist/lifeops/seed-routine-migration/migrator.d.ts.map +1 -0
- package/dist/lifeops/seed-routine-migration/migrator.js +142 -0
- package/dist/lifeops/seed-routine-migration/migrator.js.map +1 -0
- package/dist/lifeops/seed-routines.d.ts +24 -0
- package/dist/lifeops/seed-routines.d.ts.map +1 -0
- package/dist/lifeops/seed-routines.js +140 -0
- package/dist/lifeops/seed-routines.js.map +1 -0
- package/dist/lifeops/send-policy/contract.d.ts +81 -0
- package/dist/lifeops/send-policy/contract.d.ts.map +1 -0
- package/dist/lifeops/send-policy/contract.js +1 -0
- package/dist/lifeops/send-policy/contract.js.map +1 -0
- package/dist/lifeops/send-policy/index.d.ts +3 -0
- package/dist/lifeops/send-policy/index.d.ts.map +1 -0
- package/dist/lifeops/send-policy/index.js +13 -0
- package/dist/lifeops/send-policy/index.js.map +1 -0
- package/dist/lifeops/send-policy/registry.d.ts +7 -0
- package/dist/lifeops/send-policy/registry.d.ts.map +1 -0
- package/dist/lifeops/send-policy/registry.js +62 -0
- package/dist/lifeops/send-policy/registry.js.map +1 -0
- package/dist/lifeops/sensitive-request-delivery.d.ts +46 -0
- package/dist/lifeops/sensitive-request-delivery.d.ts.map +1 -0
- package/dist/lifeops/sensitive-request-delivery.js +103 -0
- package/dist/lifeops/sensitive-request-delivery.js.map +1 -0
- package/dist/lifeops/service-constants.d.ts +10 -0
- package/dist/lifeops/service-constants.d.ts.map +1 -0
- package/dist/lifeops/service-constants.js +129 -0
- package/dist/lifeops/service-constants.js.map +1 -0
- package/dist/lifeops/service-helpers-browser.d.ts +41 -0
- package/dist/lifeops/service-helpers-browser.d.ts.map +1 -0
- package/dist/lifeops/service-helpers-browser.js +290 -0
- package/dist/lifeops/service-helpers-browser.js.map +1 -0
- package/dist/lifeops/service-helpers-misc.d.ts +68 -0
- package/dist/lifeops/service-helpers-misc.d.ts.map +1 -0
- package/dist/lifeops/service-helpers-misc.js +531 -0
- package/dist/lifeops/service-helpers-misc.js.map +1 -0
- package/dist/lifeops/service-helpers-occurrence.d.ts +23 -0
- package/dist/lifeops/service-helpers-occurrence.d.ts.map +1 -0
- package/dist/lifeops/service-helpers-occurrence.js +257 -0
- package/dist/lifeops/service-helpers-occurrence.js.map +1 -0
- package/dist/lifeops/service-helpers-reminder.d.ts +260 -0
- package/dist/lifeops/service-helpers-reminder.d.ts.map +1 -0
- package/dist/lifeops/service-helpers-reminder.js +1186 -0
- package/dist/lifeops/service-helpers-reminder.js.map +1 -0
- package/dist/lifeops/service-mixin-browser.d.ts +31 -0
- package/dist/lifeops/service-mixin-browser.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-browser.js +975 -0
- package/dist/lifeops/service-mixin-browser.js.map +1 -0
- package/dist/lifeops/service-mixin-calendar.d.ts +53 -0
- package/dist/lifeops/service-mixin-calendar.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-calendar.js +68 -0
- package/dist/lifeops/service-mixin-calendar.js.map +1 -0
- package/dist/lifeops/service-mixin-core.d.ts +51 -0
- package/dist/lifeops/service-mixin-core.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-core.js +500 -0
- package/dist/lifeops/service-mixin-core.js.map +1 -0
- package/dist/lifeops/service-mixin-definitions.d.ts +14 -0
- package/dist/lifeops/service-mixin-definitions.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-definitions.js +470 -0
- package/dist/lifeops/service-mixin-definitions.js.map +1 -0
- package/dist/lifeops/service-mixin-discord.d.ts +49 -0
- package/dist/lifeops/service-mixin-discord.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-discord.js +1253 -0
- package/dist/lifeops/service-mixin-discord.js.map +1 -0
- package/dist/lifeops/service-mixin-drive.d.ts +96 -0
- package/dist/lifeops/service-mixin-drive.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-drive.js +213 -0
- package/dist/lifeops/service-mixin-drive.js.map +1 -0
- package/dist/lifeops/service-mixin-email-unsubscribe.d.ts +23 -0
- package/dist/lifeops/service-mixin-email-unsubscribe.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-email-unsubscribe.js +27 -0
- package/dist/lifeops/service-mixin-email-unsubscribe.js.map +1 -0
- package/dist/lifeops/service-mixin-gmail.d.ts +43 -0
- package/dist/lifeops/service-mixin-gmail.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-gmail.js +727 -0
- package/dist/lifeops/service-mixin-gmail.js.map +1 -0
- package/dist/lifeops/service-mixin-goals.d.ts +22 -0
- package/dist/lifeops/service-mixin-goals.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-goals.js +884 -0
- package/dist/lifeops/service-mixin-goals.js.map +1 -0
- package/dist/lifeops/service-mixin-google.d.ts +13 -0
- package/dist/lifeops/service-mixin-google.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-google.js +398 -0
- package/dist/lifeops/service-mixin-google.js.map +1 -0
- package/dist/lifeops/service-mixin-health.d.ts +27 -0
- package/dist/lifeops/service-mixin-health.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-health.js +670 -0
- package/dist/lifeops/service-mixin-health.js.map +1 -0
- package/dist/lifeops/service-mixin-imessage.d.ts +106 -0
- package/dist/lifeops/service-mixin-imessage.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-imessage.js +303 -0
- package/dist/lifeops/service-mixin-imessage.js.map +1 -0
- package/dist/lifeops/service-mixin-inbox.d.ts +55 -0
- package/dist/lifeops/service-mixin-inbox.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-inbox.js +597 -0
- package/dist/lifeops/service-mixin-inbox.js.map +1 -0
- package/dist/lifeops/service-mixin-relationships.d.ts +65 -0
- package/dist/lifeops/service-mixin-relationships.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-relationships.js +150 -0
- package/dist/lifeops/service-mixin-relationships.js.map +1 -0
- package/dist/lifeops/service-mixin-reminders.d.ts +62 -0
- package/dist/lifeops/service-mixin-reminders.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-reminders.js +4003 -0
- package/dist/lifeops/service-mixin-reminders.js.map +1 -0
- package/dist/lifeops/service-mixin-scheduling.d.ts +53 -0
- package/dist/lifeops/service-mixin-scheduling.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-scheduling.js +405 -0
- package/dist/lifeops/service-mixin-scheduling.js.map +1 -0
- package/dist/lifeops/service-mixin-screentime.d.ts +71 -0
- package/dist/lifeops/service-mixin-screentime.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-screentime.js +530 -0
- package/dist/lifeops/service-mixin-screentime.js.map +1 -0
- package/dist/lifeops/service-mixin-signal.d.ts +74 -0
- package/dist/lifeops/service-mixin-signal.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-signal.js +214 -0
- package/dist/lifeops/service-mixin-signal.js.map +1 -0
- package/dist/lifeops/service-mixin-sleep.d.ts +68 -0
- package/dist/lifeops/service-mixin-sleep.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-sleep.js +43 -0
- package/dist/lifeops/service-mixin-sleep.js.map +1 -0
- package/dist/lifeops/service-mixin-status.d.ts +31 -0
- package/dist/lifeops/service-mixin-status.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-status.js +373 -0
- package/dist/lifeops/service-mixin-status.js.map +1 -0
- package/dist/lifeops/service-mixin-subscriptions.d.ts +101 -0
- package/dist/lifeops/service-mixin-subscriptions.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-subscriptions.js +50 -0
- package/dist/lifeops/service-mixin-subscriptions.js.map +1 -0
- package/dist/lifeops/service-mixin-telegram.d.ts +104 -0
- package/dist/lifeops/service-mixin-telegram.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-telegram.js +280 -0
- package/dist/lifeops/service-mixin-telegram.js.map +1 -0
- package/dist/lifeops/service-mixin-travel.d.ts +66 -0
- package/dist/lifeops/service-mixin-travel.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-travel.js +275 -0
- package/dist/lifeops/service-mixin-travel.js.map +1 -0
- package/dist/lifeops/service-mixin-whatsapp.d.ts +96 -0
- package/dist/lifeops/service-mixin-whatsapp.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-whatsapp.js +186 -0
- package/dist/lifeops/service-mixin-whatsapp.js.map +1 -0
- package/dist/lifeops/service-mixin-workflows.d.ts +15 -0
- package/dist/lifeops/service-mixin-workflows.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-workflows.js +710 -0
- package/dist/lifeops/service-mixin-workflows.js.map +1 -0
- package/dist/lifeops/service-mixin-x-read.d.ts +31 -0
- package/dist/lifeops/service-mixin-x-read.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-x-read.js +267 -0
- package/dist/lifeops/service-mixin-x-read.js.map +1 -0
- package/dist/lifeops/service-mixin-x.d.ts +66 -0
- package/dist/lifeops/service-mixin-x.d.ts.map +1 -0
- package/dist/lifeops/service-mixin-x.js +501 -0
- package/dist/lifeops/service-mixin-x.js.map +1 -0
- package/dist/lifeops/service-normalize-connector.d.ts +19 -0
- package/dist/lifeops/service-normalize-connector.d.ts.map +1 -0
- package/dist/lifeops/service-normalize-connector.js +816 -0
- package/dist/lifeops/service-normalize-connector.js.map +1 -0
- package/dist/lifeops/service-normalize-gmail.d.ts +11 -0
- package/dist/lifeops/service-normalize-gmail.d.ts.map +1 -0
- package/dist/lifeops/service-normalize-gmail.js +85 -0
- package/dist/lifeops/service-normalize-gmail.js.map +1 -0
- package/dist/lifeops/service-normalize-task.d.ts +9 -0
- package/dist/lifeops/service-normalize-task.d.ts.map +1 -0
- package/dist/lifeops/service-normalize-task.js +567 -0
- package/dist/lifeops/service-normalize-task.js.map +1 -0
- package/dist/lifeops/service-normalize.d.ts +9 -0
- package/dist/lifeops/service-normalize.d.ts.map +1 -0
- package/dist/lifeops/service-normalize.js +53 -0
- package/dist/lifeops/service-normalize.js.map +1 -0
- package/dist/lifeops/service-types.d.ts +75 -0
- package/dist/lifeops/service-types.d.ts.map +1 -0
- package/dist/lifeops/service-types.js +5 -0
- package/dist/lifeops/service-types.js.map +1 -0
- package/dist/lifeops/service.d.ts +482 -0
- package/dist/lifeops/service.d.ts.map +1 -0
- package/dist/lifeops/service.js +62 -0
- package/dist/lifeops/service.js.map +1 -0
- package/dist/lifeops/signal-runtime-config.d.ts +13 -0
- package/dist/lifeops/signal-runtime-config.d.ts.map +1 -0
- package/dist/lifeops/signal-runtime-config.js +44 -0
- package/dist/lifeops/signal-runtime-config.js.map +1 -0
- package/dist/lifeops/signals/bus.d.ts +78 -0
- package/dist/lifeops/signals/bus.d.ts.map +1 -0
- package/dist/lifeops/signals/bus.js +117 -0
- package/dist/lifeops/signals/bus.js.map +1 -0
- package/dist/lifeops/sql.d.ts +65 -0
- package/dist/lifeops/sql.d.ts.map +1 -0
- package/dist/lifeops/sql.js +182 -0
- package/dist/lifeops/sql.js.map +1 -0
- package/dist/lifeops/stretch-decider.d.ts +73 -0
- package/dist/lifeops/stretch-decider.d.ts.map +1 -0
- package/dist/lifeops/stretch-decider.js +49 -0
- package/dist/lifeops/stretch-decider.js.map +1 -0
- package/dist/lifeops/telemetry-mapping.d.ts +14 -0
- package/dist/lifeops/telemetry-mapping.d.ts.map +1 -0
- package/dist/lifeops/telemetry-mapping.js +115 -0
- package/dist/lifeops/telemetry-mapping.js.map +1 -0
- package/dist/lifeops/telemetry-retention.d.ts +21 -0
- package/dist/lifeops/telemetry-retention.d.ts.map +1 -0
- package/dist/lifeops/telemetry-retention.js +13 -0
- package/dist/lifeops/telemetry-retention.js.map +1 -0
- package/dist/lifeops/time/timezone.d.ts +4 -0
- package/dist/lifeops/time/timezone.d.ts.map +1 -0
- package/dist/lifeops/time/timezone.js +154 -0
- package/dist/lifeops/time/timezone.js.map +1 -0
- package/dist/lifeops/time-util.d.ts +10 -0
- package/dist/lifeops/time-util.d.ts.map +1 -0
- package/dist/lifeops/time-util.js +14 -0
- package/dist/lifeops/time-util.js.map +1 -0
- package/dist/lifeops/time.d.ts +17 -0
- package/dist/lifeops/time.d.ts.map +1 -0
- package/dist/lifeops/time.js +152 -0
- package/dist/lifeops/time.js.map +1 -0
- package/dist/lifeops/travel-booking.types.d.ts +46 -0
- package/dist/lifeops/travel-booking.types.d.ts.map +1 -0
- package/dist/lifeops/travel-booking.types.js +1 -0
- package/dist/lifeops/travel-booking.types.js.map +1 -0
- package/dist/lifeops/triggers/schedule-once.d.ts +19 -0
- package/dist/lifeops/triggers/schedule-once.d.ts.map +1 -0
- package/dist/lifeops/triggers/schedule-once.js +99 -0
- package/dist/lifeops/triggers/schedule-once.js.map +1 -0
- package/dist/lifeops/validate/coding-task-request.d.ts +18 -0
- package/dist/lifeops/validate/coding-task-request.d.ts.map +1 -0
- package/dist/lifeops/validate/coding-task-request.js +16 -0
- package/dist/lifeops/validate/coding-task-request.js.map +1 -0
- package/dist/lifeops/voice/grounded-reply.d.ts +41 -0
- package/dist/lifeops/voice/grounded-reply.d.ts.map +1 -0
- package/dist/lifeops/voice/grounded-reply.js +24 -0
- package/dist/lifeops/voice/grounded-reply.js.map +1 -0
- package/dist/lifeops/voice-affect.d.ts +79 -0
- package/dist/lifeops/voice-affect.d.ts.map +1 -0
- package/dist/lifeops/voice-affect.js +253 -0
- package/dist/lifeops/voice-affect.js.map +1 -0
- package/dist/lifeops/wave1-types.d.ts +125 -0
- package/dist/lifeops/wave1-types.d.ts.map +1 -0
- package/dist/lifeops/wave1-types.js +1 -0
- package/dist/lifeops/wave1-types.js.map +1 -0
- package/dist/lifeops/work-threads/field-evaluator-thread-ops.d.ts +33 -0
- package/dist/lifeops/work-threads/field-evaluator-thread-ops.d.ts.map +1 -0
- package/dist/lifeops/work-threads/field-evaluator-thread-ops.js +226 -0
- package/dist/lifeops/work-threads/field-evaluator-thread-ops.js.map +1 -0
- package/dist/lifeops/work-threads/index.d.ts +3 -0
- package/dist/lifeops/work-threads/index.d.ts.map +1 -0
- package/dist/lifeops/work-threads/index.js +7 -0
- package/dist/lifeops/work-threads/index.js.map +1 -0
- package/dist/lifeops/work-threads/store.d.ts +91 -0
- package/dist/lifeops/work-threads/store.d.ts.map +1 -0
- package/dist/lifeops/work-threads/store.js +245 -0
- package/dist/lifeops/work-threads/store.js.map +1 -0
- package/dist/lifeops/work-threads/types.d.ts +58 -0
- package/dist/lifeops/work-threads/types.d.ts.map +1 -0
- package/dist/lifeops/work-threads/types.js +1 -0
- package/dist/lifeops/work-threads/types.js.map +1 -0
- package/dist/platform/host.d.ts +16 -0
- package/dist/platform/host.d.ts.map +1 -0
- package/dist/platform/host.js +22 -0
- package/dist/platform/host.js.map +1 -0
- package/dist/platform/index.d.ts +3 -0
- package/dist/platform/index.d.ts.map +1 -0
- package/dist/platform/index.js +3 -0
- package/dist/platform/index.js.map +1 -0
- package/dist/platform/lifeops-github.d.ts +15 -0
- package/dist/platform/lifeops-github.d.ts.map +1 -0
- package/dist/platform/lifeops-github.js +146 -0
- package/dist/platform/lifeops-github.js.map +1 -0
- package/dist/plugin.d.ts +106 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +989 -0
- package/dist/plugin.js.map +1 -0
- package/dist/provider.d.ts +4 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/provider.js +108 -0
- package/dist/provider.js.map +1 -0
- package/dist/providers/activity-profile.d.ts +3 -0
- package/dist/providers/activity-profile.d.ts.map +1 -0
- package/dist/providers/activity-profile.js +140 -0
- package/dist/providers/activity-profile.js.map +1 -0
- package/dist/providers/cross-channel-context.d.ts +29 -0
- package/dist/providers/cross-channel-context.d.ts.map +1 -0
- package/dist/providers/cross-channel-context.js +206 -0
- package/dist/providers/cross-channel-context.js.map +1 -0
- package/dist/providers/first-run.d.ts +22 -0
- package/dist/providers/first-run.d.ts.map +1 -0
- package/dist/providers/first-run.js +93 -0
- package/dist/providers/first-run.js.map +1 -0
- package/dist/providers/health.d.ts +2 -0
- package/dist/providers/health.d.ts.map +1 -0
- package/dist/providers/health.js +14 -0
- package/dist/providers/health.js.map +1 -0
- package/dist/providers/inbox-triage.d.ts +3 -0
- package/dist/providers/inbox-triage.d.ts.map +1 -0
- package/dist/providers/inbox-triage.js +134 -0
- package/dist/providers/inbox-triage.js.map +1 -0
- package/dist/providers/lifeops.d.ts +3 -0
- package/dist/providers/lifeops.d.ts.map +1 -0
- package/dist/providers/lifeops.js +548 -0
- package/dist/providers/lifeops.js.map +1 -0
- package/dist/providers/pending-prompts.d.ts +38 -0
- package/dist/providers/pending-prompts.d.ts.map +1 -0
- package/dist/providers/pending-prompts.js +81 -0
- package/dist/providers/pending-prompts.js.map +1 -0
- package/dist/providers/recent-task-states.d.ts +52 -0
- package/dist/providers/recent-task-states.d.ts.map +1 -0
- package/dist/providers/recent-task-states.js +166 -0
- package/dist/providers/recent-task-states.js.map +1 -0
- package/dist/providers/room-policy.d.ts +16 -0
- package/dist/providers/room-policy.d.ts.map +1 -0
- package/dist/providers/room-policy.js +71 -0
- package/dist/providers/room-policy.js.map +1 -0
- package/dist/providers/work-threads.d.ts +3 -0
- package/dist/providers/work-threads.d.ts.map +1 -0
- package/dist/providers/work-threads.js +97 -0
- package/dist/providers/work-threads.js.map +1 -0
- package/dist/public.d.ts +3 -0
- package/dist/public.d.ts.map +1 -0
- package/dist/public.js +17 -0
- package/dist/public.js.map +1 -0
- package/dist/routes/cloud-features-routes.d.ts +9 -0
- package/dist/routes/cloud-features-routes.d.ts.map +1 -0
- package/dist/routes/cloud-features-routes.js +164 -0
- package/dist/routes/cloud-features-routes.js.map +1 -0
- package/dist/routes/entities.d.ts +14 -0
- package/dist/routes/entities.d.ts.map +1 -0
- package/dist/routes/entities.js +203 -0
- package/dist/routes/entities.js.map +1 -0
- package/dist/routes/lifeops-routes.d.ts +20 -0
- package/dist/routes/lifeops-routes.d.ts.map +1 -0
- package/dist/routes/lifeops-routes.js +2337 -0
- package/dist/routes/lifeops-routes.js.map +1 -0
- package/dist/routes/plugin.d.ts +9 -0
- package/dist/routes/plugin.d.ts.map +1 -0
- package/dist/routes/plugin.js +568 -0
- package/dist/routes/plugin.js.map +1 -0
- package/dist/routes/relationships.d.ts +13 -0
- package/dist/routes/relationships.d.ts.map +1 -0
- package/dist/routes/relationships.js +195 -0
- package/dist/routes/relationships.js.map +1 -0
- package/dist/routes/scheduled-tasks.d.ts +102 -0
- package/dist/routes/scheduled-tasks.d.ts.map +1 -0
- package/dist/routes/scheduled-tasks.js +322 -0
- package/dist/routes/scheduled-tasks.js.map +1 -0
- package/dist/routes/sleep-routes.d.ts +3 -0
- package/dist/routes/sleep-routes.d.ts.map +1 -0
- package/dist/routes/sleep-routes.js +33 -0
- package/dist/routes/sleep-routes.js.map +1 -0
- package/dist/routes/travel-provider-relay-routes.d.ts +2 -0
- package/dist/routes/travel-provider-relay-routes.d.ts.map +1 -0
- package/dist/routes/travel-provider-relay-routes.js +7 -0
- package/dist/routes/travel-provider-relay-routes.js.map +1 -0
- package/dist/routes/website-blocker-routes.d.ts +6 -0
- package/dist/routes/website-blocker-routes.d.ts.map +1 -0
- package/dist/routes/website-blocker-routes.js +218 -0
- package/dist/routes/website-blocker-routes.js.map +1 -0
- package/dist/security/action-confirmation.d.ts +12 -0
- package/dist/security/action-confirmation.d.ts.map +1 -0
- package/dist/security/action-confirmation.js +36 -0
- package/dist/security/action-confirmation.js.map +1 -0
- package/dist/service.d.ts +34 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/service.js +111 -0
- package/dist/service.js.map +1 -0
- package/dist/travel-time/calendar-create.d.ts +17 -0
- package/dist/travel-time/calendar-create.d.ts.map +1 -0
- package/dist/travel-time/calendar-create.js +28 -0
- package/dist/travel-time/calendar-create.js.map +1 -0
- package/dist/travel-time/service.d.ts +114 -0
- package/dist/travel-time/service.d.ts.map +1 -0
- package/dist/travel-time/service.js +209 -0
- package/dist/travel-time/service.js.map +1 -0
- package/dist/types/app-blocker-settings-card.d.ts +2 -0
- package/dist/types/app-blocker-settings-card.d.ts.map +1 -0
- package/dist/types/app-blocker-settings-card.js +1 -0
- package/dist/types/app-blocker-settings-card.js.map +1 -0
- package/dist/types/briefing.d.ts +59 -0
- package/dist/types/briefing.d.ts.map +1 -0
- package/dist/types/briefing.js +1 -0
- package/dist/types/briefing.js.map +1 -0
- package/dist/types/document-request.d.ts +41 -0
- package/dist/types/document-request.d.ts.map +1 -0
- package/dist/types/document-request.js +1 -0
- package/dist/types/document-request.js.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/website-blocker-settings-card.d.ts +2 -0
- package/dist/types/website-blocker-settings-card.d.ts.map +1 -0
- package/dist/types/website-blocker-settings-card.js +1 -0
- package/dist/types/website-blocker-settings-card.js.map +1 -0
- package/dist/ui.d.ts +13 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +25 -0
- package/dist/ui.js.map +1 -0
- package/dist/utils/format-duration.d.ts +2 -0
- package/dist/utils/format-duration.d.ts.map +1 -0
- package/dist/utils/format-duration.js +13 -0
- package/dist/utils/format-duration.js.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/lifeops-url.d.ts +3 -0
- package/dist/utils/lifeops-url.d.ts.map +1 -0
- package/dist/utils/lifeops-url.js +28 -0
- package/dist/utils/lifeops-url.js.map +1 -0
- package/dist/website-blocker/chat-integration/block-activator.d.ts +32 -0
- package/dist/website-blocker/chat-integration/block-activator.d.ts.map +1 -0
- package/dist/website-blocker/chat-integration/block-activator.js +30 -0
- package/dist/website-blocker/chat-integration/block-activator.js.map +1 -0
- package/dist/website-blocker/chat-integration/block-rule-reconciler.d.ts +7 -0
- package/dist/website-blocker/chat-integration/block-rule-reconciler.d.ts.map +1 -0
- package/dist/website-blocker/chat-integration/block-rule-reconciler.js +115 -0
- package/dist/website-blocker/chat-integration/block-rule-reconciler.js.map +1 -0
- package/dist/website-blocker/chat-integration/block-rule-schema.d.ts +39 -0
- package/dist/website-blocker/chat-integration/block-rule-schema.d.ts.map +1 -0
- package/dist/website-blocker/chat-integration/block-rule-schema.js +133 -0
- package/dist/website-blocker/chat-integration/block-rule-schema.js.map +1 -0
- package/dist/website-blocker/chat-integration/block-rule-service.d.ts +21 -0
- package/dist/website-blocker/chat-integration/block-rule-service.d.ts.map +1 -0
- package/dist/website-blocker/chat-integration/block-rule-service.js +230 -0
- package/dist/website-blocker/chat-integration/block-rule-service.js.map +1 -0
- package/dist/website-blocker/chat-integration/harsh-mode-check.d.ts +13 -0
- package/dist/website-blocker/chat-integration/harsh-mode-check.d.ts.map +1 -0
- package/dist/website-blocker/chat-integration/harsh-mode-check.js +22 -0
- package/dist/website-blocker/chat-integration/harsh-mode-check.js.map +1 -0
- package/dist/website-blocker/chat-integration/index.d.ts +5 -0
- package/dist/website-blocker/chat-integration/index.d.ts.map +1 -0
- package/dist/website-blocker/chat-integration/index.js +26 -0
- package/dist/website-blocker/chat-integration/index.js.map +1 -0
- package/dist/website-blocker/proactive-block-bridge.d.ts +75 -0
- package/dist/website-blocker/proactive-block-bridge.d.ts.map +1 -0
- package/dist/website-blocker/proactive-block-bridge.js +154 -0
- package/dist/website-blocker/proactive-block-bridge.js.map +1 -0
- package/dist/website-blocker/public.d.ts +12 -0
- package/dist/website-blocker/public.d.ts.map +1 -0
- package/dist/website-blocker/public.js +51 -0
- package/dist/website-blocker/public.js.map +1 -0
- package/package.json +28 -28
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AUTO_MERGE_CONFIDENCE_THRESHOLD,
|
|
3
|
+
decideIdentityOutcome,
|
|
4
|
+
findIdentityMatches,
|
|
5
|
+
foldIdentity,
|
|
6
|
+
mergeEntities,
|
|
7
|
+
OVERRIDE_CONFIDENCE_DELTA
|
|
8
|
+
} from "@elizaos/shared";
|
|
9
|
+
export {
|
|
10
|
+
AUTO_MERGE_CONFIDENCE_THRESHOLD,
|
|
11
|
+
OVERRIDE_CONFIDENCE_DELTA,
|
|
12
|
+
decideIdentityOutcome,
|
|
13
|
+
findIdentityMatches,
|
|
14
|
+
foldIdentity,
|
|
15
|
+
mergeEntities
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=merge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lifeops/entities/merge.ts"],"sourcesContent":["/**\n * Identity-merge engine for the EntityStore.\n *\n * Canonical home is `@elizaos/shared` (`knowledge-graph/merge.ts`). This\n * module re-exports the pure merge functions so the DB-backed `EntityStore`\n * and the rest of LifeOps keep importing from `./merge.js`.\n */\n\nexport {\n AUTO_MERGE_CONFIDENCE_THRESHOLD,\n decideIdentityOutcome,\n findIdentityMatches,\n foldIdentity,\n type IdentityMatchInput,\n type IdentityObserveOutcome,\n mergeEntities,\n OVERRIDE_CONFIDENCE_DELTA,\n} from \"@elizaos/shared\";\n"],"mappings":"AAQA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,EACA;AAAA,OACK;","names":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EntityStore re-export shim.
|
|
3
|
+
*
|
|
4
|
+
* The DB-backed `EntityStore` is now a runtime primitive owned by
|
|
5
|
+
* `@elizaos/agent` and surfaced through `KnowledgeGraphService`. This module
|
|
6
|
+
* re-exports it so the rest of LifeOps keeps importing from `./store.js`.
|
|
7
|
+
* New code should resolve the store via the runtime service:
|
|
8
|
+
*
|
|
9
|
+
* resolveKnowledgeGraphService(runtime)?.getEntityStore(agentId)
|
|
10
|
+
*/
|
|
11
|
+
export { EntityStore } from "@elizaos/agent";
|
|
12
|
+
export { AUTO_MERGE_CONFIDENCE_THRESHOLD } from "@elizaos/shared";
|
|
13
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/lifeops/entities/store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,+BAA+B,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lifeops/entities/store.ts"],"sourcesContent":["/**\n * EntityStore re-export shim.\n *\n * The DB-backed `EntityStore` is now a runtime primitive owned by\n * `@elizaos/agent` and surfaced through `KnowledgeGraphService`. This module\n * re-exports it so the rest of LifeOps keeps importing from `./store.js`.\n * New code should resolve the store via the runtime service:\n *\n * resolveKnowledgeGraphService(runtime)?.getEntityStore(agentId)\n */\n\nexport { EntityStore } from \"@elizaos/agent\";\nexport { AUTO_MERGE_CONFIDENCE_THRESHOLD } from \"@elizaos/shared\";\n"],"mappings":"AAWA,SAAS,mBAAmB;AAC5B,SAAS,uCAAuC;","names":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entity types for the LifeOps knowledge graph.
|
|
3
|
+
*
|
|
4
|
+
* Canonical home is `@elizaos/shared` (`knowledge-graph/entity-types.ts`).
|
|
5
|
+
* This module re-exports the runtime-level primitives so the DB-backed
|
|
6
|
+
* `EntityStore` and the rest of LifeOps keep importing from `./types.js`.
|
|
7
|
+
*/
|
|
8
|
+
export { BUILT_IN_ENTITY_TYPES, type BuiltInEntityType, defaultEntityTypeRegistry, type Entity, type EntityAttribute, type EntityFilter, type EntityIdentity, type EntityIdentityAddedVia, type EntityResolveCandidate, type EntityState, EntityTypeRegistry, type EntityVisibility, SELF_ENTITY_ID, } from "@elizaos/shared";
|
|
9
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lifeops/entities/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,qBAAqB,EACrB,KAAK,iBAAiB,EACtB,yBAAyB,EACzB,KAAK,MAAM,EACX,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,WAAW,EAChB,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,cAAc,GACf,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {
|
|
2
|
+
BUILT_IN_ENTITY_TYPES,
|
|
3
|
+
defaultEntityTypeRegistry,
|
|
4
|
+
EntityTypeRegistry,
|
|
5
|
+
SELF_ENTITY_ID
|
|
6
|
+
} from "@elizaos/shared";
|
|
7
|
+
export {
|
|
8
|
+
BUILT_IN_ENTITY_TYPES,
|
|
9
|
+
EntityTypeRegistry,
|
|
10
|
+
SELF_ENTITY_ID,
|
|
11
|
+
defaultEntityTypeRegistry
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lifeops/entities/types.ts"],"sourcesContent":["/**\n * Entity types for the LifeOps knowledge graph.\n *\n * Canonical home is `@elizaos/shared` (`knowledge-graph/entity-types.ts`).\n * This module re-exports the runtime-level primitives so the DB-backed\n * `EntityStore` and the rest of LifeOps keep importing from `./types.js`.\n */\n\nexport {\n BUILT_IN_ENTITY_TYPES,\n type BuiltInEntityType,\n defaultEntityTypeRegistry,\n type Entity,\n type EntityAttribute,\n type EntityFilter,\n type EntityIdentity,\n type EntityIdentityAddedVia,\n type EntityResolveCandidate,\n type EntityState,\n EntityTypeRegistry,\n type EntityVisibility,\n SELF_ENTITY_ID,\n} from \"@elizaos/shared\";\n"],"mappings":"AAQA;AAAA,EACE;AAAA,EAEA;AAAA,EAQA;AAAA,EAEA;AAAA,OACK;","names":[]}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Voice-attribution helpers: bind a voice-imprint observation to an
|
|
3
|
+
* Entity (creating one if no match), extract name claims from
|
|
4
|
+
* utterance text, and resolve pending relationships when a previously-
|
|
5
|
+
* named partner finally speaks.
|
|
6
|
+
*
|
|
7
|
+
* Read R2-speaker.md §7 for the "Jill scenario" semantics that this
|
|
8
|
+
* module exists to implement.
|
|
9
|
+
*/
|
|
10
|
+
import type { EntityStore } from "./store.js";
|
|
11
|
+
import type { SELF_ENTITY_ID } from "./types.js";
|
|
12
|
+
export declare function extractSelfNameClaim(text: string | null | undefined): string | null;
|
|
13
|
+
interface PartnerClaim {
|
|
14
|
+
name: string;
|
|
15
|
+
label: string;
|
|
16
|
+
type: "partner_of";
|
|
17
|
+
}
|
|
18
|
+
export declare function extractPartnerClaim(text: string | null | undefined): PartnerClaim | null;
|
|
19
|
+
export interface PendingRelationship {
|
|
20
|
+
type: "partner_of";
|
|
21
|
+
fromEntityId: typeof SELF_ENTITY_ID;
|
|
22
|
+
toName: string;
|
|
23
|
+
label: string;
|
|
24
|
+
evidenceId: string;
|
|
25
|
+
createdAt: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* In-memory pending-relationship queue. The "Jill scenario" needs
|
|
29
|
+
* cross-utterance state: Shaw says "this is Jill, Jill is my wife"
|
|
30
|
+
* **before** Jill ever speaks, so we can't resolve the relationship
|
|
31
|
+
* until Jill is known. The queue lives in process memory; the engine
|
|
32
|
+
* persists it (when needed) by writing the source utterance evidence
|
|
33
|
+
* id into the relationship audit log on resolution.
|
|
34
|
+
*/
|
|
35
|
+
export declare class PendingRelationshipQueue {
|
|
36
|
+
private pending;
|
|
37
|
+
enqueue(claim: PendingRelationship): void;
|
|
38
|
+
resolveByName(name: string): PendingRelationship[];
|
|
39
|
+
all(): readonly PendingRelationship[];
|
|
40
|
+
size(): number;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Result of binding a voice-imprint observation to an Entity.
|
|
44
|
+
*/
|
|
45
|
+
export interface BindVoiceTurnResult {
|
|
46
|
+
entityId: string;
|
|
47
|
+
wasCreated: boolean;
|
|
48
|
+
resolvedClaimedName: string | null;
|
|
49
|
+
pendingRelationships: PendingRelationship[];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Bind a voice-imprint observation to an Entity. If the imprint match
|
|
53
|
+
* resolves to an existing entity, returns that entity's id. Otherwise
|
|
54
|
+
* tries to extract a self-name claim from the utterance; either way,
|
|
55
|
+
* runs through `EntityStore.observeIdentity` with `platform:"voice"`.
|
|
56
|
+
*
|
|
57
|
+
* Pending-relationship resolution is delegated to the caller — the
|
|
58
|
+
* caller pulls `result.pendingRelationships` and applies them.
|
|
59
|
+
*/
|
|
60
|
+
export declare function bindVoiceTurnToEntity(args: {
|
|
61
|
+
entityStore: EntityStore;
|
|
62
|
+
pendingQueue: PendingRelationshipQueue;
|
|
63
|
+
matchedEntityId: string | null;
|
|
64
|
+
utteranceText: string;
|
|
65
|
+
imprintClusterId: string;
|
|
66
|
+
evidenceIds: string[];
|
|
67
|
+
matchConfidence: number;
|
|
68
|
+
}): Promise<BindVoiceTurnResult>;
|
|
69
|
+
export {};
|
|
70
|
+
//# sourceMappingURL=voice-attribution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voice-attribution.d.ts","sourceRoot":"","sources":["../../../src/lifeops/entities/voice-attribution.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAgCjD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC9B,MAAM,GAAG,IAAI,CAUf;AA0BD,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,YAAY,CAAC;CACpB;AAyBD,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC9B,YAAY,GAAG,IAAI,CAarB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,YAAY,CAAC;IACnB,YAAY,EAAE,OAAO,cAAc,CAAC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,OAAO,CAA6B;IAE5C,OAAO,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;IAUzC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,EAAE;IASlD,GAAG,IAAI,SAAS,mBAAmB,EAAE;IAIrC,IAAI,IAAI,MAAM;CAGf;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;CAC7C;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,wBAAwB,CAAC;IACvC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAgC/B"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
const NAME_PATTERN = "[A-Z][A-Za-z'.-]{1,40}(?:\\s+[A-Z][A-Za-z'.-]{1,40}){0,2}";
|
|
2
|
+
const NAME_CLAIM_PATTERNS = [
|
|
3
|
+
new RegExp(`\\b[Mm]y\\s+name\\s+is\\s+(${NAME_PATTERN})\\b`),
|
|
4
|
+
new RegExp(`\\b[Ii]\\s+am\\s+(${NAME_PATTERN})\\b`),
|
|
5
|
+
new RegExp(`\\b[Ii]['\u2019]?m\\s+(${NAME_PATTERN})\\b`),
|
|
6
|
+
new RegExp(`\\b[Tt]his\\s+is\\s+(${NAME_PATTERN})\\b`),
|
|
7
|
+
new RegExp(`\\b[Ii]t['\u2019]?s\\s+(${NAME_PATTERN})\\b`)
|
|
8
|
+
];
|
|
9
|
+
function extractSelfNameClaim(text) {
|
|
10
|
+
if (!text) return null;
|
|
11
|
+
for (const pattern of NAME_CLAIM_PATTERNS) {
|
|
12
|
+
const m = pattern.exec(text);
|
|
13
|
+
if (m?.[1]) {
|
|
14
|
+
const cleaned = m[1].replace(/[.,;:!?]+$/, "").trim();
|
|
15
|
+
if (cleaned.length > 0) return cleaned;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
const PARTNER_LABELS = [
|
|
21
|
+
"wife",
|
|
22
|
+
"husband",
|
|
23
|
+
"spouse",
|
|
24
|
+
"partner",
|
|
25
|
+
"girlfriend",
|
|
26
|
+
"boyfriend",
|
|
27
|
+
"fiance",
|
|
28
|
+
"fianc\xE9e",
|
|
29
|
+
"fianc\xE9"
|
|
30
|
+
];
|
|
31
|
+
const PARTNER_CLAIM_PATTERNS = [
|
|
32
|
+
{
|
|
33
|
+
pattern: new RegExp(
|
|
34
|
+
`\\b([A-Z][A-Za-z'.-]{1,40}(?:\\s+[A-Z][A-Za-z'.-]{1,40}){0,2})\\s+is\\s+my\\s+(${PARTNER_LABELS.join("|")})\\b`,
|
|
35
|
+
"i"
|
|
36
|
+
),
|
|
37
|
+
nameGroup: 1,
|
|
38
|
+
labelGroup: 2
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
pattern: new RegExp(
|
|
42
|
+
`\\bthis\\s+is\\s+([A-Z][A-Za-z'.-]{1,40}(?:\\s+[A-Z][A-Za-z'.-]{1,40}){0,2})\\s*,\\s*my\\s+(${PARTNER_LABELS.join("|")})\\b`,
|
|
43
|
+
"i"
|
|
44
|
+
),
|
|
45
|
+
nameGroup: 1,
|
|
46
|
+
labelGroup: 2
|
|
47
|
+
}
|
|
48
|
+
];
|
|
49
|
+
function extractPartnerClaim(text) {
|
|
50
|
+
if (!text) return null;
|
|
51
|
+
for (const { pattern, nameGroup, labelGroup } of PARTNER_CLAIM_PATTERNS) {
|
|
52
|
+
const m = pattern.exec(text);
|
|
53
|
+
if (m?.[nameGroup] && m[labelGroup]) {
|
|
54
|
+
const name = m[nameGroup].replace(/[.,;:!?]+$/, "").trim();
|
|
55
|
+
const label = m[labelGroup].toLowerCase();
|
|
56
|
+
if (name.length > 0) {
|
|
57
|
+
return { name, label, type: "partner_of" };
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
class PendingRelationshipQueue {
|
|
64
|
+
pending = [];
|
|
65
|
+
enqueue(claim) {
|
|
66
|
+
this.pending = this.pending.filter(
|
|
67
|
+
(p) => p.toName.toLowerCase() !== claim.toName.toLowerCase() || p.type !== claim.type
|
|
68
|
+
);
|
|
69
|
+
this.pending.push(claim);
|
|
70
|
+
}
|
|
71
|
+
resolveByName(name) {
|
|
72
|
+
const lower = name.toLowerCase();
|
|
73
|
+
const resolved = this.pending.filter(
|
|
74
|
+
(p) => p.toName.toLowerCase() === lower
|
|
75
|
+
);
|
|
76
|
+
this.pending = this.pending.filter((p) => p.toName.toLowerCase() !== lower);
|
|
77
|
+
return resolved;
|
|
78
|
+
}
|
|
79
|
+
all() {
|
|
80
|
+
return this.pending;
|
|
81
|
+
}
|
|
82
|
+
size() {
|
|
83
|
+
return this.pending.length;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
async function bindVoiceTurnToEntity(args) {
|
|
87
|
+
if (args.matchedEntityId) {
|
|
88
|
+
const resolved = args.pendingQueue.resolveByName(
|
|
89
|
+
(await args.entityStore.get(args.matchedEntityId))?.preferredName ?? ""
|
|
90
|
+
);
|
|
91
|
+
return {
|
|
92
|
+
entityId: args.matchedEntityId,
|
|
93
|
+
wasCreated: false,
|
|
94
|
+
resolvedClaimedName: null,
|
|
95
|
+
pendingRelationships: resolved
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
const claimedName = extractSelfNameClaim(args.utteranceText);
|
|
99
|
+
const result = await args.entityStore.observeIdentity({
|
|
100
|
+
platform: "voice",
|
|
101
|
+
handle: args.imprintClusterId,
|
|
102
|
+
...claimedName ? { displayName: claimedName } : {},
|
|
103
|
+
evidence: args.evidenceIds,
|
|
104
|
+
confidence: claimedName ? Math.max(0.7, args.matchConfidence) : 0.5,
|
|
105
|
+
suggestedType: "person"
|
|
106
|
+
});
|
|
107
|
+
const pendingRelationships = claimedName ? args.pendingQueue.resolveByName(claimedName) : [];
|
|
108
|
+
return {
|
|
109
|
+
entityId: result.entity.entityId,
|
|
110
|
+
wasCreated: result.mergedFrom === void 0,
|
|
111
|
+
resolvedClaimedName: claimedName,
|
|
112
|
+
pendingRelationships
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
export {
|
|
116
|
+
PendingRelationshipQueue,
|
|
117
|
+
bindVoiceTurnToEntity,
|
|
118
|
+
extractPartnerClaim,
|
|
119
|
+
extractSelfNameClaim
|
|
120
|
+
};
|
|
121
|
+
//# sourceMappingURL=voice-attribution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lifeops/entities/voice-attribution.ts"],"sourcesContent":["/**\n * Voice-attribution helpers: bind a voice-imprint observation to an\n * Entity (creating one if no match), extract name claims from\n * utterance text, and resolve pending relationships when a previously-\n * named partner finally speaks.\n *\n * Read R2-speaker.md §7 for the \"Jill scenario\" semantics that this\n * module exists to implement.\n */\n\nimport type { EntityStore } from \"./store.js\";\nimport type { SELF_ENTITY_ID } from \"./types.js\";\n\n/**\n * Regex-first extractor of a self-name claim in an utterance.\n *\n * Covers:\n * - \"I'm Jill\" / \"I am Jill\"\n * - \"My name is Jill\"\n * - \"This is Jill\"\n * - \"Hey there, I'm Jill\"\n * - \"Hi, it's Jill\"\n *\n * Returns the captured name (untrimmed of trailing punctuation by\n * design — let the caller normalize) or `null` when the regex misses.\n * The R2 spec calls for an LLM fallback when the regex misses; that\n * fallback is wired in `voice-observer.ts` so this module stays\n * dependency-free for unit testing.\n */\n// Trigger phrases (\"my name is\", \"i'm\", \"this is\", ...) match common ASR\n// casing variants explicitly. The captured name stays anchored on an uppercase\n// first letter to filter lowercased noise; JavaScript RegExp does not support\n// scoped flag groups such as `(?-i:...)`.\nconst NAME_PATTERN =\n \"[A-Z][A-Za-z'.-]{1,40}(?:\\\\s+[A-Z][A-Za-z'.-]{1,40}){0,2}\";\nconst NAME_CLAIM_PATTERNS: RegExp[] = [\n new RegExp(`\\\\b[Mm]y\\\\s+name\\\\s+is\\\\s+(${NAME_PATTERN})\\\\b`),\n new RegExp(`\\\\b[Ii]\\\\s+am\\\\s+(${NAME_PATTERN})\\\\b`),\n new RegExp(`\\\\b[Ii]['’]?m\\\\s+(${NAME_PATTERN})\\\\b`),\n new RegExp(`\\\\b[Tt]his\\\\s+is\\\\s+(${NAME_PATTERN})\\\\b`),\n new RegExp(`\\\\b[Ii]t['’]?s\\\\s+(${NAME_PATTERN})\\\\b`),\n];\n\nexport function extractSelfNameClaim(\n text: string | null | undefined,\n): string | null {\n if (!text) return null;\n for (const pattern of NAME_CLAIM_PATTERNS) {\n const m = pattern.exec(text);\n if (m?.[1]) {\n const cleaned = m[1].replace(/[.,;:!?]+$/, \"\").trim();\n if (cleaned.length > 0) return cleaned;\n }\n }\n return null;\n}\n\n/**\n * Extract a \"<owner> says <name> is my <label>\" assertion.\n *\n * Covers:\n * - \"Jill is my wife\" → {name:\"Jill\", label:\"wife\"}\n * - \"this is Jill, my wife\" → {name:\"Jill\", label:\"wife\"}\n * - \"Bob is my husband\" → {name:\"Bob\", label:\"husband\"}\n * - \"Sam is my partner\"\n *\n * Returns the first match; multi-relationship sentences are rare\n * enough to warrant punting until we have a real classifier.\n */\nconst PARTNER_LABELS = [\n \"wife\",\n \"husband\",\n \"spouse\",\n \"partner\",\n \"girlfriend\",\n \"boyfriend\",\n \"fiance\",\n \"fiancée\",\n \"fiancé\",\n];\n\ninterface PartnerClaim {\n name: string;\n label: string;\n type: \"partner_of\";\n}\n\nconst PARTNER_CLAIM_PATTERNS: ReadonlyArray<{\n pattern: RegExp;\n nameGroup: number;\n labelGroup: number;\n}> = [\n {\n pattern: new RegExp(\n `\\\\b([A-Z][A-Za-z'.-]{1,40}(?:\\\\s+[A-Z][A-Za-z'.-]{1,40}){0,2})\\\\s+is\\\\s+my\\\\s+(${PARTNER_LABELS.join(\"|\")})\\\\b`,\n \"i\",\n ),\n nameGroup: 1,\n labelGroup: 2,\n },\n {\n pattern: new RegExp(\n `\\\\bthis\\\\s+is\\\\s+([A-Z][A-Za-z'.-]{1,40}(?:\\\\s+[A-Z][A-Za-z'.-]{1,40}){0,2})\\\\s*,\\\\s*my\\\\s+(${PARTNER_LABELS.join(\"|\")})\\\\b`,\n \"i\",\n ),\n nameGroup: 1,\n labelGroup: 2,\n },\n];\n\nexport function extractPartnerClaim(\n text: string | null | undefined,\n): PartnerClaim | null {\n if (!text) return null;\n for (const { pattern, nameGroup, labelGroup } of PARTNER_CLAIM_PATTERNS) {\n const m = pattern.exec(text);\n if (m?.[nameGroup] && m[labelGroup]) {\n const name = m[nameGroup].replace(/[.,;:!?]+$/, \"\").trim();\n const label = m[labelGroup].toLowerCase();\n if (name.length > 0) {\n return { name, label, type: \"partner_of\" };\n }\n }\n }\n return null;\n}\n\nexport interface PendingRelationship {\n type: \"partner_of\";\n fromEntityId: typeof SELF_ENTITY_ID;\n toName: string;\n label: string;\n evidenceId: string;\n createdAt: string;\n}\n\n/**\n * In-memory pending-relationship queue. The \"Jill scenario\" needs\n * cross-utterance state: Shaw says \"this is Jill, Jill is my wife\"\n * **before** Jill ever speaks, so we can't resolve the relationship\n * until Jill is known. The queue lives in process memory; the engine\n * persists it (when needed) by writing the source utterance evidence\n * id into the relationship audit log on resolution.\n */\nexport class PendingRelationshipQueue {\n private pending: PendingRelationship[] = [];\n\n enqueue(claim: PendingRelationship): void {\n // De-dupe by (toName, type) — the most recent claim wins.\n this.pending = this.pending.filter(\n (p) =>\n p.toName.toLowerCase() !== claim.toName.toLowerCase() ||\n p.type !== claim.type,\n );\n this.pending.push(claim);\n }\n\n resolveByName(name: string): PendingRelationship[] {\n const lower = name.toLowerCase();\n const resolved = this.pending.filter(\n (p) => p.toName.toLowerCase() === lower,\n );\n this.pending = this.pending.filter((p) => p.toName.toLowerCase() !== lower);\n return resolved;\n }\n\n all(): readonly PendingRelationship[] {\n return this.pending;\n }\n\n size(): number {\n return this.pending.length;\n }\n}\n\n/**\n * Result of binding a voice-imprint observation to an Entity.\n */\nexport interface BindVoiceTurnResult {\n entityId: string;\n wasCreated: boolean;\n resolvedClaimedName: string | null;\n pendingRelationships: PendingRelationship[];\n}\n\n/**\n * Bind a voice-imprint observation to an Entity. If the imprint match\n * resolves to an existing entity, returns that entity's id. Otherwise\n * tries to extract a self-name claim from the utterance; either way,\n * runs through `EntityStore.observeIdentity` with `platform:\"voice\"`.\n *\n * Pending-relationship resolution is delegated to the caller — the\n * caller pulls `result.pendingRelationships` and applies them.\n */\nexport async function bindVoiceTurnToEntity(args: {\n entityStore: EntityStore;\n pendingQueue: PendingRelationshipQueue;\n matchedEntityId: string | null;\n utteranceText: string;\n imprintClusterId: string;\n evidenceIds: string[];\n matchConfidence: number;\n}): Promise<BindVoiceTurnResult> {\n if (args.matchedEntityId) {\n const resolved = args.pendingQueue.resolveByName(\n (await args.entityStore.get(args.matchedEntityId))?.preferredName ?? \"\",\n );\n return {\n entityId: args.matchedEntityId,\n wasCreated: false,\n resolvedClaimedName: null,\n pendingRelationships: resolved,\n };\n }\n const claimedName = extractSelfNameClaim(args.utteranceText);\n const result = await args.entityStore.observeIdentity({\n platform: \"voice\",\n handle: args.imprintClusterId,\n ...(claimedName ? { displayName: claimedName } : {}),\n evidence: args.evidenceIds,\n confidence: claimedName ? Math.max(0.7, args.matchConfidence) : 0.5,\n suggestedType: \"person\",\n });\n\n const pendingRelationships = claimedName\n ? args.pendingQueue.resolveByName(claimedName)\n : [];\n\n return {\n entityId: result.entity.entityId,\n wasCreated: result.mergedFrom === undefined,\n resolvedClaimedName: claimedName,\n pendingRelationships,\n };\n}\n"],"mappings":"AAiCA,MAAM,eACJ;AACF,MAAM,sBAAgC;AAAA,EACpC,IAAI,OAAO,8BAA8B,YAAY,MAAM;AAAA,EAC3D,IAAI,OAAO,qBAAqB,YAAY,MAAM;AAAA,EAClD,IAAI,OAAO,0BAAqB,YAAY,MAAM;AAAA,EAClD,IAAI,OAAO,wBAAwB,YAAY,MAAM;AAAA,EACrD,IAAI,OAAO,2BAAsB,YAAY,MAAM;AACrD;AAEO,SAAS,qBACd,MACe;AACf,MAAI,CAAC,KAAM,QAAO;AAClB,aAAW,WAAW,qBAAqB;AACzC,UAAM,IAAI,QAAQ,KAAK,IAAI;AAC3B,QAAI,IAAI,CAAC,GAAG;AACV,YAAM,UAAU,EAAE,CAAC,EAAE,QAAQ,cAAc,EAAE,EAAE,KAAK;AACpD,UAAI,QAAQ,SAAS,EAAG,QAAO;AAAA,IACjC;AAAA,EACF;AACA,SAAO;AACT;AAcA,MAAM,iBAAiB;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAQA,MAAM,yBAID;AAAA,EACH;AAAA,IACE,SAAS,IAAI;AAAA,MACX,kFAAkF,eAAe,KAAK,GAAG,CAAC;AAAA,MAC1G;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,YAAY;AAAA,EACd;AAAA,EACA;AAAA,IACE,SAAS,IAAI;AAAA,MACX,+FAA+F,eAAe,KAAK,GAAG,CAAC;AAAA,MACvH;AAAA,IACF;AAAA,IACA,WAAW;AAAA,IACX,YAAY;AAAA,EACd;AACF;AAEO,SAAS,oBACd,MACqB;AACrB,MAAI,CAAC,KAAM,QAAO;AAClB,aAAW,EAAE,SAAS,WAAW,WAAW,KAAK,wBAAwB;AACvE,UAAM,IAAI,QAAQ,KAAK,IAAI;AAC3B,QAAI,IAAI,SAAS,KAAK,EAAE,UAAU,GAAG;AACnC,YAAM,OAAO,EAAE,SAAS,EAAE,QAAQ,cAAc,EAAE,EAAE,KAAK;AACzD,YAAM,QAAQ,EAAE,UAAU,EAAE,YAAY;AACxC,UAAI,KAAK,SAAS,GAAG;AACnB,eAAO,EAAE,MAAM,OAAO,MAAM,aAAa;AAAA,MAC3C;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAmBO,MAAM,yBAAyB;AAAA,EAC5B,UAAiC,CAAC;AAAA,EAE1C,QAAQ,OAAkC;AAExC,SAAK,UAAU,KAAK,QAAQ;AAAA,MAC1B,CAAC,MACC,EAAE,OAAO,YAAY,MAAM,MAAM,OAAO,YAAY,KACpD,EAAE,SAAS,MAAM;AAAA,IACrB;AACA,SAAK,QAAQ,KAAK,KAAK;AAAA,EACzB;AAAA,EAEA,cAAc,MAAqC;AACjD,UAAM,QAAQ,KAAK,YAAY;AAC/B,UAAM,WAAW,KAAK,QAAQ;AAAA,MAC5B,CAAC,MAAM,EAAE,OAAO,YAAY,MAAM;AAAA,IACpC;AACA,SAAK,UAAU,KAAK,QAAQ,OAAO,CAAC,MAAM,EAAE,OAAO,YAAY,MAAM,KAAK;AAC1E,WAAO;AAAA,EACT;AAAA,EAEA,MAAsC;AACpC,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,OAAe;AACb,WAAO,KAAK,QAAQ;AAAA,EACtB;AACF;AAqBA,eAAsB,sBAAsB,MAQX;AAC/B,MAAI,KAAK,iBAAiB;AACxB,UAAM,WAAW,KAAK,aAAa;AAAA,OAChC,MAAM,KAAK,YAAY,IAAI,KAAK,eAAe,IAAI,iBAAiB;AAAA,IACvE;AACA,WAAO;AAAA,MACL,UAAU,KAAK;AAAA,MACf,YAAY;AAAA,MACZ,qBAAqB;AAAA,MACrB,sBAAsB;AAAA,IACxB;AAAA,EACF;AACA,QAAM,cAAc,qBAAqB,KAAK,aAAa;AAC3D,QAAM,SAAS,MAAM,KAAK,YAAY,gBAAgB;AAAA,IACpD,UAAU;AAAA,IACV,QAAQ,KAAK;AAAA,IACb,GAAI,cAAc,EAAE,aAAa,YAAY,IAAI,CAAC;AAAA,IAClD,UAAU,KAAK;AAAA,IACf,YAAY,cAAc,KAAK,IAAI,KAAK,KAAK,eAAe,IAAI;AAAA,IAChE,eAAe;AAAA,EACjB,CAAC;AAED,QAAM,uBAAuB,cACzB,KAAK,aAAa,cAAc,WAAW,IAC3C,CAAC;AAEL,SAAO;AAAA,IACL,UAAU,OAAO,OAAO;AAAA,IACxB,YAAY,OAAO,eAAe;AAAA,IAClC,qBAAqB;AAAA,IACrB;AAAA,EACF;AACF;","names":[]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime bridge: connect the core `VOICE_TURN_OBSERVED` event to the
|
|
3
|
+
* LifeOps `VoiceObserver` (the merge-engine path), and emit
|
|
4
|
+
* `VOICE_ENTITY_BOUND` back so the voice-profile owner can persist the
|
|
5
|
+
* binding.
|
|
6
|
+
*
|
|
7
|
+
* This is the production wiring that was missing: `VoiceObserver` and
|
|
8
|
+
* the merge engine (`EntityStore.observeIdentity`) existed and were
|
|
9
|
+
* tested, but nothing drove them at runtime. A voice/speaker-ID plugin
|
|
10
|
+
* (plugin-local-inference) emits `VOICE_TURN_OBSERVED`; this handler
|
|
11
|
+
* folds the turn into the entity + relationship graph and round-trips
|
|
12
|
+
* the resulting entity id via `VOICE_ENTITY_BOUND`.
|
|
13
|
+
*
|
|
14
|
+
* No plugin imports the other: the only shared surface is the core
|
|
15
|
+
* event seam. If plugin-local-inference is absent the emit is a no-op;
|
|
16
|
+
* if plugin-lifeops is absent the observation simply has no consumer.
|
|
17
|
+
*/
|
|
18
|
+
import { type IAgentRuntime, type VoiceTurnObservedPayload } from "@elizaos/core";
|
|
19
|
+
import { VoiceObserver } from "./voice-observer.js";
|
|
20
|
+
/** Test seam: override how the per-runtime observer is built. */
|
|
21
|
+
export type VoiceObserverFactory = (runtime: IAgentRuntime) => Promise<VoiceObserver>;
|
|
22
|
+
export declare function setVoiceObserverFactory(factory: VoiceObserverFactory | null): void;
|
|
23
|
+
/**
|
|
24
|
+
* Handler for {@link EventType.VOICE_TURN_OBSERVED}. Folds the turn into
|
|
25
|
+
* the merge engine, then emits {@link EventType.VOICE_ENTITY_BOUND}.
|
|
26
|
+
*
|
|
27
|
+
* Errors are contained at this boundary: a failed ingest must not crash
|
|
28
|
+
* the producer's voice pipeline. We log and return without round-tripping
|
|
29
|
+
* (the producer keeps its profile unbound and can retry on the next turn).
|
|
30
|
+
*/
|
|
31
|
+
export declare function handleVoiceTurnObserved(payload: VoiceTurnObservedPayload): Promise<void>;
|
|
32
|
+
//# sourceMappingURL=voice-observer-bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voice-observer-bridge.d.ts","sourceRoot":"","sources":["../../../src/lifeops/entities/voice-observer-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAEL,KAAK,aAAa,EAElB,KAAK,wBAAwB,EAC9B,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AASpD,iEAAiE;AACjE,MAAM,MAAM,oBAAoB,GAAG,CACjC,OAAO,EAAE,aAAa,KACnB,OAAO,CAAC,aAAa,CAAC,CAAC;AAI5B,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,oBAAoB,GAAG,IAAI,GACnC,IAAI,CAEN;AAmBD;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CAsCf"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import {
|
|
2
|
+
EventType,
|
|
3
|
+
logger
|
|
4
|
+
} from "@elizaos/core";
|
|
5
|
+
import { LifeOpsRepository } from "../repository.js";
|
|
6
|
+
import { VoiceObserver } from "./voice-observer.js";
|
|
7
|
+
const observersByRuntime = /* @__PURE__ */ new WeakMap();
|
|
8
|
+
let observerFactoryOverride = null;
|
|
9
|
+
function setVoiceObserverFactory(factory) {
|
|
10
|
+
observerFactoryOverride = factory;
|
|
11
|
+
}
|
|
12
|
+
function resolveObserver(runtime) {
|
|
13
|
+
const cached = observersByRuntime.get(runtime);
|
|
14
|
+
if (cached) return cached;
|
|
15
|
+
const built = observerFactoryOverride ? observerFactoryOverride(runtime) : (async () => {
|
|
16
|
+
const repository = new LifeOpsRepository(runtime);
|
|
17
|
+
const [entityStore, relationshipStore] = await Promise.all([
|
|
18
|
+
repository.entityStore(runtime.agentId),
|
|
19
|
+
repository.relationshipStore(runtime.agentId)
|
|
20
|
+
]);
|
|
21
|
+
return new VoiceObserver({ entityStore, relationshipStore });
|
|
22
|
+
})();
|
|
23
|
+
observersByRuntime.set(runtime, built);
|
|
24
|
+
return built;
|
|
25
|
+
}
|
|
26
|
+
async function handleVoiceTurnObserved(payload) {
|
|
27
|
+
const { runtime } = payload;
|
|
28
|
+
let entityId;
|
|
29
|
+
let wasCreated;
|
|
30
|
+
let displayName;
|
|
31
|
+
try {
|
|
32
|
+
const observer = await resolveObserver(runtime);
|
|
33
|
+
const result = await observer.ingestTurn({
|
|
34
|
+
turnId: payload.turnId,
|
|
35
|
+
text: payload.text,
|
|
36
|
+
imprintClusterId: payload.imprintClusterId,
|
|
37
|
+
matchConfidence: payload.matchConfidence,
|
|
38
|
+
matchedEntityId: payload.matchedEntityId,
|
|
39
|
+
...payload.observedAt ? { observedAt: payload.observedAt } : {},
|
|
40
|
+
...payload.isOwner !== void 0 ? { isOwner: payload.isOwner } : {}
|
|
41
|
+
});
|
|
42
|
+
entityId = result.binding.entityId;
|
|
43
|
+
wasCreated = result.binding.wasCreated;
|
|
44
|
+
displayName = result.binding.resolvedClaimedName ?? void 0;
|
|
45
|
+
} catch (err) {
|
|
46
|
+
logger.error(
|
|
47
|
+
{
|
|
48
|
+
err,
|
|
49
|
+
turnId: payload.turnId,
|
|
50
|
+
imprintClusterId: payload.imprintClusterId
|
|
51
|
+
},
|
|
52
|
+
"[lifeops] VOICE_TURN_OBSERVED ingest failed"
|
|
53
|
+
);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
await runtime.emitEvent(EventType.VOICE_ENTITY_BOUND, {
|
|
57
|
+
runtime,
|
|
58
|
+
imprintClusterId: payload.imprintClusterId,
|
|
59
|
+
entityId,
|
|
60
|
+
wasCreated,
|
|
61
|
+
...displayName ? { displayName } : {}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
export {
|
|
65
|
+
handleVoiceTurnObserved,
|
|
66
|
+
setVoiceObserverFactory
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=voice-observer-bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lifeops/entities/voice-observer-bridge.ts"],"sourcesContent":["/**\n * Runtime bridge: connect the core `VOICE_TURN_OBSERVED` event to the\n * LifeOps `VoiceObserver` (the merge-engine path), and emit\n * `VOICE_ENTITY_BOUND` back so the voice-profile owner can persist the\n * binding.\n *\n * This is the production wiring that was missing: `VoiceObserver` and\n * the merge engine (`EntityStore.observeIdentity`) existed and were\n * tested, but nothing drove them at runtime. A voice/speaker-ID plugin\n * (plugin-local-inference) emits `VOICE_TURN_OBSERVED`; this handler\n * folds the turn into the entity + relationship graph and round-trips\n * the resulting entity id via `VOICE_ENTITY_BOUND`.\n *\n * No plugin imports the other: the only shared surface is the core\n * event seam. If plugin-local-inference is absent the emit is a no-op;\n * if plugin-lifeops is absent the observation simply has no consumer.\n */\n\nimport {\n EventType,\n type IAgentRuntime,\n logger,\n type VoiceTurnObservedPayload,\n} from \"@elizaos/core\";\nimport { LifeOpsRepository } from \"../repository.js\";\nimport { VoiceObserver } from \"./voice-observer.js\";\n\n/**\n * One `VoiceObserver` per runtime so its in-memory pending-relationship\n * queue (the \"Jill scenario\" cross-utterance state) survives across\n * turns. Keyed weakly so it's collected with the runtime.\n */\nconst observersByRuntime = new WeakMap<IAgentRuntime, Promise<VoiceObserver>>();\n\n/** Test seam: override how the per-runtime observer is built. */\nexport type VoiceObserverFactory = (\n runtime: IAgentRuntime,\n) => Promise<VoiceObserver>;\n\nlet observerFactoryOverride: VoiceObserverFactory | null = null;\n\nexport function setVoiceObserverFactory(\n factory: VoiceObserverFactory | null,\n): void {\n observerFactoryOverride = factory;\n}\n\nfunction resolveObserver(runtime: IAgentRuntime): Promise<VoiceObserver> {\n const cached = observersByRuntime.get(runtime);\n if (cached) return cached;\n const built = observerFactoryOverride\n ? observerFactoryOverride(runtime)\n : (async () => {\n const repository = new LifeOpsRepository(runtime);\n const [entityStore, relationshipStore] = await Promise.all([\n repository.entityStore(runtime.agentId),\n repository.relationshipStore(runtime.agentId),\n ]);\n return new VoiceObserver({ entityStore, relationshipStore });\n })();\n observersByRuntime.set(runtime, built);\n return built;\n}\n\n/**\n * Handler for {@link EventType.VOICE_TURN_OBSERVED}. Folds the turn into\n * the merge engine, then emits {@link EventType.VOICE_ENTITY_BOUND}.\n *\n * Errors are contained at this boundary: a failed ingest must not crash\n * the producer's voice pipeline. We log and return without round-tripping\n * (the producer keeps its profile unbound and can retry on the next turn).\n */\nexport async function handleVoiceTurnObserved(\n payload: VoiceTurnObservedPayload,\n): Promise<void> {\n const { runtime } = payload;\n let entityId: string;\n let wasCreated: boolean;\n let displayName: string | undefined;\n try {\n const observer = await resolveObserver(runtime);\n const result = await observer.ingestTurn({\n turnId: payload.turnId,\n text: payload.text,\n imprintClusterId: payload.imprintClusterId,\n matchConfidence: payload.matchConfidence,\n matchedEntityId: payload.matchedEntityId,\n ...(payload.observedAt ? { observedAt: payload.observedAt } : {}),\n ...(payload.isOwner !== undefined ? { isOwner: payload.isOwner } : {}),\n });\n entityId = result.binding.entityId;\n wasCreated = result.binding.wasCreated;\n displayName = result.binding.resolvedClaimedName ?? undefined;\n } catch (err) {\n logger.error(\n {\n err,\n turnId: payload.turnId,\n imprintClusterId: payload.imprintClusterId,\n },\n \"[lifeops] VOICE_TURN_OBSERVED ingest failed\",\n );\n return;\n }\n\n await runtime.emitEvent(EventType.VOICE_ENTITY_BOUND, {\n runtime,\n imprintClusterId: payload.imprintClusterId,\n entityId,\n wasCreated,\n ...(displayName ? { displayName } : {}),\n });\n}\n"],"mappings":"AAkBA;AAAA,EACE;AAAA,EAEA;AAAA,OAEK;AACP,SAAS,yBAAyB;AAClC,SAAS,qBAAqB;AAO9B,MAAM,qBAAqB,oBAAI,QAA+C;AAO9E,IAAI,0BAAuD;AAEpD,SAAS,wBACd,SACM;AACN,4BAA0B;AAC5B;AAEA,SAAS,gBAAgB,SAAgD;AACvE,QAAM,SAAS,mBAAmB,IAAI,OAAO;AAC7C,MAAI,OAAQ,QAAO;AACnB,QAAM,QAAQ,0BACV,wBAAwB,OAAO,KAC9B,YAAY;AACX,UAAM,aAAa,IAAI,kBAAkB,OAAO;AAChD,UAAM,CAAC,aAAa,iBAAiB,IAAI,MAAM,QAAQ,IAAI;AAAA,MACzD,WAAW,YAAY,QAAQ,OAAO;AAAA,MACtC,WAAW,kBAAkB,QAAQ,OAAO;AAAA,IAC9C,CAAC;AACD,WAAO,IAAI,cAAc,EAAE,aAAa,kBAAkB,CAAC;AAAA,EAC7D,GAAG;AACP,qBAAmB,IAAI,SAAS,KAAK;AACrC,SAAO;AACT;AAUA,eAAsB,wBACpB,SACe;AACf,QAAM,EAAE,QAAQ,IAAI;AACpB,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI;AACF,UAAM,WAAW,MAAM,gBAAgB,OAAO;AAC9C,UAAM,SAAS,MAAM,SAAS,WAAW;AAAA,MACvC,QAAQ,QAAQ;AAAA,MAChB,MAAM,QAAQ;AAAA,MACd,kBAAkB,QAAQ;AAAA,MAC1B,iBAAiB,QAAQ;AAAA,MACzB,iBAAiB,QAAQ;AAAA,MACzB,GAAI,QAAQ,aAAa,EAAE,YAAY,QAAQ,WAAW,IAAI,CAAC;AAAA,MAC/D,GAAI,QAAQ,YAAY,SAAY,EAAE,SAAS,QAAQ,QAAQ,IAAI,CAAC;AAAA,IACtE,CAAC;AACD,eAAW,OAAO,QAAQ;AAC1B,iBAAa,OAAO,QAAQ;AAC5B,kBAAc,OAAO,QAAQ,uBAAuB;AAAA,EACtD,SAAS,KAAK;AACZ,WAAO;AAAA,MACL;AAAA,QACE;AAAA,QACA,QAAQ,QAAQ;AAAA,QAChB,kBAAkB,QAAQ;AAAA,MAC5B;AAAA,MACA;AAAA,IACF;AACA;AAAA,EACF;AAEA,QAAM,QAAQ,UAAU,UAAU,oBAAoB;AAAA,IACpD;AAAA,IACA,kBAAkB,QAAQ;AAAA,IAC1B;AAAA,IACA;AAAA,IACA,GAAI,cAAc,EAAE,YAAY,IAAI,CAAC;AAAA,EACvC,CAAC;AACH;","names":[]}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* High-level voice-attribution observer that wires a voice turn into
|
|
3
|
+
* the LifeOps entity + relationship graph.
|
|
4
|
+
*
|
|
5
|
+
* Implements the R2-speaker.md §7.3 "Jill scenario" semantics:
|
|
6
|
+
* - Match-or-create an Entity from the imprint cluster.
|
|
7
|
+
* - On a self-name claim ("I'm Jill" / "hey there, I'm Jill"), use
|
|
8
|
+
* that name as the entity's preferredName via observeIdentity.
|
|
9
|
+
* - On an owner-relationship claim ("Jill is my wife"), queue a
|
|
10
|
+
* pending `partner_of` row that resolves the first time Jill is
|
|
11
|
+
* observed via voice and her name is known.
|
|
12
|
+
*
|
|
13
|
+
* The observer is intentionally stateful — the pending-relationship
|
|
14
|
+
* queue lives on the instance. The engine constructs one observer per
|
|
15
|
+
* runtime; tests construct one per scenario.
|
|
16
|
+
*/
|
|
17
|
+
import type { RelationshipStore } from "../relationships/store.js";
|
|
18
|
+
import type { EntityStore } from "./store.js";
|
|
19
|
+
import { type BindVoiceTurnResult, PendingRelationshipQueue } from "./voice-attribution.js";
|
|
20
|
+
export interface VoiceObserverDeps {
|
|
21
|
+
entityStore: EntityStore;
|
|
22
|
+
relationshipStore: RelationshipStore;
|
|
23
|
+
}
|
|
24
|
+
/** One ingested voice turn. */
|
|
25
|
+
export interface VoiceTurnObservation {
|
|
26
|
+
/** Stable utterance id (transcriber turn id is fine). */
|
|
27
|
+
turnId: string;
|
|
28
|
+
/** Recognized text. */
|
|
29
|
+
text: string;
|
|
30
|
+
/** Imprint cluster id from the voice profile store. */
|
|
31
|
+
imprintClusterId: string;
|
|
32
|
+
/** Confidence of the imprint match (0..1). */
|
|
33
|
+
matchConfidence: number;
|
|
34
|
+
/** Matched entity if the imprint had a binding, else null. */
|
|
35
|
+
matchedEntityId: string | null;
|
|
36
|
+
/** When the turn was observed. */
|
|
37
|
+
observedAt?: string;
|
|
38
|
+
/** True if this turn was spoken by the OWNER. */
|
|
39
|
+
isOwner?: boolean;
|
|
40
|
+
}
|
|
41
|
+
export interface VoiceTurnIngestResult {
|
|
42
|
+
binding: BindVoiceTurnResult;
|
|
43
|
+
/** Relationship rows produced for this turn (resolved or new). */
|
|
44
|
+
relationshipIds: string[];
|
|
45
|
+
/** Partner claims queued for later resolution (typically when isOwner=true). */
|
|
46
|
+
queuedPartnerClaims: number;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* `VoiceObserver` — single instance per runtime. Holds the pending
|
|
50
|
+
* relationships queue across utterances.
|
|
51
|
+
*/
|
|
52
|
+
export declare class VoiceObserver {
|
|
53
|
+
private readonly deps;
|
|
54
|
+
private readonly pendingQueue;
|
|
55
|
+
constructor(deps: VoiceObserverDeps);
|
|
56
|
+
get pendingRelationshipsCount(): number;
|
|
57
|
+
/**
|
|
58
|
+
* Ingest one voice turn. Side effects:
|
|
59
|
+
* - `EntityStore.observeIdentity({ platform:"voice", ... })` may
|
|
60
|
+
* create or merge an entity row.
|
|
61
|
+
* - When the speaker is the OWNER and the utterance contains an
|
|
62
|
+
* ownership-relationship claim ("X is my wife"), the queue is
|
|
63
|
+
* bumped — the row lands later, when X first speaks.
|
|
64
|
+
* - When the speaker is *not* the OWNER and their self-name claim
|
|
65
|
+
* matches a previously-queued partner claim, the pending
|
|
66
|
+
* relationship is realized via `RelationshipStore.observe`.
|
|
67
|
+
*/
|
|
68
|
+
ingestTurn(turn: VoiceTurnObservation): Promise<VoiceTurnIngestResult>;
|
|
69
|
+
/** Test utility: peek at the pending queue. */
|
|
70
|
+
peekPending(): ReturnType<PendingRelationshipQueue["all"]>;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=voice-observer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voice-observer.d.ts","sourceRoot":"","sources":["../../../src/lifeops/entities/voice-observer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EACL,KAAK,mBAAmB,EAGxB,wBAAwB,EACzB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,WAAW,CAAC;IACzB,iBAAiB,EAAE,iBAAiB,CAAC;CACtC;AAED,+BAA+B;AAC/B,MAAM,WAAW,oBAAoB;IACnC,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,gBAAgB,EAAE,MAAM,CAAC;IACzB,8CAA8C;IAC9C,eAAe,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,mBAAmB,CAAC;IAC7B,kEAAkE;IAClE,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,gFAAgF;IAChF,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;;GAGG;AACH,qBAAa,aAAa;IAGZ,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkC;gBAElC,IAAI,EAAE,iBAAiB;IAEpD,IAAI,yBAAyB,IAAI,MAAM,CAEtC;IAED;;;;;;;;;;OAUG;IACG,UAAU,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA4E5E,+CAA+C;IAC/C,WAAW,IAAI,UAAU,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;CAG3D"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { SELF_ENTITY_ID } from "./types.js";
|
|
2
|
+
import {
|
|
3
|
+
bindVoiceTurnToEntity,
|
|
4
|
+
extractPartnerClaim,
|
|
5
|
+
PendingRelationshipQueue
|
|
6
|
+
} from "./voice-attribution.js";
|
|
7
|
+
class VoiceObserver {
|
|
8
|
+
constructor(deps) {
|
|
9
|
+
this.deps = deps;
|
|
10
|
+
}
|
|
11
|
+
deps;
|
|
12
|
+
pendingQueue = new PendingRelationshipQueue();
|
|
13
|
+
get pendingRelationshipsCount() {
|
|
14
|
+
return this.pendingQueue.size();
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Ingest one voice turn. Side effects:
|
|
18
|
+
* - `EntityStore.observeIdentity({ platform:"voice", ... })` may
|
|
19
|
+
* create or merge an entity row.
|
|
20
|
+
* - When the speaker is the OWNER and the utterance contains an
|
|
21
|
+
* ownership-relationship claim ("X is my wife"), the queue is
|
|
22
|
+
* bumped — the row lands later, when X first speaks.
|
|
23
|
+
* - When the speaker is *not* the OWNER and their self-name claim
|
|
24
|
+
* matches a previously-queued partner claim, the pending
|
|
25
|
+
* relationship is realized via `RelationshipStore.observe`.
|
|
26
|
+
*/
|
|
27
|
+
async ingestTurn(turn) {
|
|
28
|
+
const binding = await bindVoiceTurnToEntity({
|
|
29
|
+
entityStore: this.deps.entityStore,
|
|
30
|
+
pendingQueue: this.pendingQueue,
|
|
31
|
+
matchedEntityId: turn.matchedEntityId,
|
|
32
|
+
utteranceText: turn.text,
|
|
33
|
+
imprintClusterId: turn.imprintClusterId,
|
|
34
|
+
evidenceIds: [turn.turnId],
|
|
35
|
+
matchConfidence: turn.matchConfidence
|
|
36
|
+
});
|
|
37
|
+
const relationshipIds = [];
|
|
38
|
+
for (const pending of binding.pendingRelationships) {
|
|
39
|
+
const rel = await this.deps.relationshipStore.observe({
|
|
40
|
+
fromEntityId: pending.fromEntityId,
|
|
41
|
+
toEntityId: binding.entityId,
|
|
42
|
+
type: pending.type,
|
|
43
|
+
metadataPatch: { label: pending.label },
|
|
44
|
+
evidence: [pending.evidenceId, turn.turnId],
|
|
45
|
+
confidence: 0.7,
|
|
46
|
+
source: "extraction",
|
|
47
|
+
occurredAt: turn.observedAt
|
|
48
|
+
});
|
|
49
|
+
relationshipIds.push(rel.relationshipId);
|
|
50
|
+
}
|
|
51
|
+
let queuedPartnerClaims = 0;
|
|
52
|
+
if (turn.isOwner) {
|
|
53
|
+
const claim = extractPartnerClaim(turn.text);
|
|
54
|
+
if (claim) {
|
|
55
|
+
const candidates = await this.deps.entityStore.resolve({
|
|
56
|
+
name: claim.name,
|
|
57
|
+
type: "person"
|
|
58
|
+
});
|
|
59
|
+
const exact = candidates.find(
|
|
60
|
+
(c) => c.entity.preferredName.toLowerCase() === claim.name.toLowerCase() && c.entity.entityId !== SELF_ENTITY_ID
|
|
61
|
+
);
|
|
62
|
+
if (exact) {
|
|
63
|
+
const rel = await this.deps.relationshipStore.observe({
|
|
64
|
+
fromEntityId: SELF_ENTITY_ID,
|
|
65
|
+
toEntityId: exact.entity.entityId,
|
|
66
|
+
type: "partner_of",
|
|
67
|
+
metadataPatch: { label: claim.label },
|
|
68
|
+
evidence: [turn.turnId],
|
|
69
|
+
confidence: 0.7,
|
|
70
|
+
source: "extraction",
|
|
71
|
+
occurredAt: turn.observedAt
|
|
72
|
+
});
|
|
73
|
+
relationshipIds.push(rel.relationshipId);
|
|
74
|
+
} else {
|
|
75
|
+
this.pendingQueue.enqueue({
|
|
76
|
+
type: "partner_of",
|
|
77
|
+
fromEntityId: SELF_ENTITY_ID,
|
|
78
|
+
toName: claim.name,
|
|
79
|
+
label: claim.label,
|
|
80
|
+
evidenceId: turn.turnId,
|
|
81
|
+
createdAt: turn.observedAt ?? (/* @__PURE__ */ new Date()).toISOString()
|
|
82
|
+
});
|
|
83
|
+
queuedPartnerClaims += 1;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return { binding, relationshipIds, queuedPartnerClaims };
|
|
88
|
+
}
|
|
89
|
+
/** Test utility: peek at the pending queue. */
|
|
90
|
+
peekPending() {
|
|
91
|
+
return this.pendingQueue.all();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
export {
|
|
95
|
+
VoiceObserver
|
|
96
|
+
};
|
|
97
|
+
//# sourceMappingURL=voice-observer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lifeops/entities/voice-observer.ts"],"sourcesContent":["/**\n * High-level voice-attribution observer that wires a voice turn into\n * the LifeOps entity + relationship graph.\n *\n * Implements the R2-speaker.md §7.3 \"Jill scenario\" semantics:\n * - Match-or-create an Entity from the imprint cluster.\n * - On a self-name claim (\"I'm Jill\" / \"hey there, I'm Jill\"), use\n * that name as the entity's preferredName via observeIdentity.\n * - On an owner-relationship claim (\"Jill is my wife\"), queue a\n * pending `partner_of` row that resolves the first time Jill is\n * observed via voice and her name is known.\n *\n * The observer is intentionally stateful — the pending-relationship\n * queue lives on the instance. The engine constructs one observer per\n * runtime; tests construct one per scenario.\n */\n\nimport type { RelationshipStore } from \"../relationships/store.js\";\nimport type { EntityStore } from \"./store.js\";\nimport { SELF_ENTITY_ID } from \"./types.js\";\nimport {\n type BindVoiceTurnResult,\n bindVoiceTurnToEntity,\n extractPartnerClaim,\n PendingRelationshipQueue,\n} from \"./voice-attribution.js\";\n\nexport interface VoiceObserverDeps {\n entityStore: EntityStore;\n relationshipStore: RelationshipStore;\n}\n\n/** One ingested voice turn. */\nexport interface VoiceTurnObservation {\n /** Stable utterance id (transcriber turn id is fine). */\n turnId: string;\n /** Recognized text. */\n text: string;\n /** Imprint cluster id from the voice profile store. */\n imprintClusterId: string;\n /** Confidence of the imprint match (0..1). */\n matchConfidence: number;\n /** Matched entity if the imprint had a binding, else null. */\n matchedEntityId: string | null;\n /** When the turn was observed. */\n observedAt?: string;\n /** True if this turn was spoken by the OWNER. */\n isOwner?: boolean;\n}\n\nexport interface VoiceTurnIngestResult {\n binding: BindVoiceTurnResult;\n /** Relationship rows produced for this turn (resolved or new). */\n relationshipIds: string[];\n /** Partner claims queued for later resolution (typically when isOwner=true). */\n queuedPartnerClaims: number;\n}\n\n/**\n * `VoiceObserver` — single instance per runtime. Holds the pending\n * relationships queue across utterances.\n */\nexport class VoiceObserver {\n private readonly pendingQueue = new PendingRelationshipQueue();\n\n constructor(private readonly deps: VoiceObserverDeps) {}\n\n get pendingRelationshipsCount(): number {\n return this.pendingQueue.size();\n }\n\n /**\n * Ingest one voice turn. Side effects:\n * - `EntityStore.observeIdentity({ platform:\"voice\", ... })` may\n * create or merge an entity row.\n * - When the speaker is the OWNER and the utterance contains an\n * ownership-relationship claim (\"X is my wife\"), the queue is\n * bumped — the row lands later, when X first speaks.\n * - When the speaker is *not* the OWNER and their self-name claim\n * matches a previously-queued partner claim, the pending\n * relationship is realized via `RelationshipStore.observe`.\n */\n async ingestTurn(turn: VoiceTurnObservation): Promise<VoiceTurnIngestResult> {\n // Step 1: bind the imprint to an entity (create or match).\n const binding = await bindVoiceTurnToEntity({\n entityStore: this.deps.entityStore,\n pendingQueue: this.pendingQueue,\n matchedEntityId: turn.matchedEntityId,\n utteranceText: turn.text,\n imprintClusterId: turn.imprintClusterId,\n evidenceIds: [turn.turnId],\n matchConfidence: turn.matchConfidence,\n });\n\n // Step 2: realize any pending relationships the binding resolved.\n const relationshipIds: string[] = [];\n for (const pending of binding.pendingRelationships) {\n const rel = await this.deps.relationshipStore.observe({\n fromEntityId: pending.fromEntityId,\n toEntityId: binding.entityId,\n type: pending.type,\n metadataPatch: { label: pending.label },\n evidence: [pending.evidenceId, turn.turnId],\n confidence: 0.7,\n source: \"extraction\",\n occurredAt: turn.observedAt,\n });\n relationshipIds.push(rel.relationshipId);\n }\n\n // Step 3: if the OWNER speaks an ownership-relationship claim,\n // queue it for later resolution. We don't resolve it on the\n // owner's turn because we don't yet know which entity the named\n // person is.\n let queuedPartnerClaims = 0;\n if (turn.isOwner) {\n const claim = extractPartnerClaim(turn.text);\n if (claim) {\n // Try eager resolution — the owner might be referring to a\n // person we've already heard speak (named via self-claim).\n const candidates = await this.deps.entityStore.resolve({\n name: claim.name,\n type: \"person\",\n });\n const exact = candidates.find(\n (c) =>\n c.entity.preferredName.toLowerCase() === claim.name.toLowerCase() &&\n c.entity.entityId !== SELF_ENTITY_ID,\n );\n if (exact) {\n const rel = await this.deps.relationshipStore.observe({\n fromEntityId: SELF_ENTITY_ID,\n toEntityId: exact.entity.entityId,\n type: \"partner_of\",\n metadataPatch: { label: claim.label },\n evidence: [turn.turnId],\n confidence: 0.7,\n source: \"extraction\",\n occurredAt: turn.observedAt,\n });\n relationshipIds.push(rel.relationshipId);\n } else {\n this.pendingQueue.enqueue({\n type: \"partner_of\",\n fromEntityId: SELF_ENTITY_ID,\n toName: claim.name,\n label: claim.label,\n evidenceId: turn.turnId,\n createdAt: turn.observedAt ?? new Date().toISOString(),\n });\n queuedPartnerClaims += 1;\n }\n }\n }\n\n return { binding, relationshipIds, queuedPartnerClaims };\n }\n\n /** Test utility: peek at the pending queue. */\n peekPending(): ReturnType<PendingRelationshipQueue[\"all\"]> {\n return this.pendingQueue.all();\n }\n}\n"],"mappings":"AAmBA,SAAS,sBAAsB;AAC/B;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAqCA,MAAM,cAAc;AAAA,EAGzB,YAA6B,MAAyB;AAAzB;AAAA,EAA0B;AAAA,EAA1B;AAAA,EAFZ,eAAe,IAAI,yBAAyB;AAAA,EAI7D,IAAI,4BAAoC;AACtC,WAAO,KAAK,aAAa,KAAK;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,MAAM,WAAW,MAA4D;AAE3E,UAAM,UAAU,MAAM,sBAAsB;AAAA,MAC1C,aAAa,KAAK,KAAK;AAAA,MACvB,cAAc,KAAK;AAAA,MACnB,iBAAiB,KAAK;AAAA,MACtB,eAAe,KAAK;AAAA,MACpB,kBAAkB,KAAK;AAAA,MACvB,aAAa,CAAC,KAAK,MAAM;AAAA,MACzB,iBAAiB,KAAK;AAAA,IACxB,CAAC;AAGD,UAAM,kBAA4B,CAAC;AACnC,eAAW,WAAW,QAAQ,sBAAsB;AAClD,YAAM,MAAM,MAAM,KAAK,KAAK,kBAAkB,QAAQ;AAAA,QACpD,cAAc,QAAQ;AAAA,QACtB,YAAY,QAAQ;AAAA,QACpB,MAAM,QAAQ;AAAA,QACd,eAAe,EAAE,OAAO,QAAQ,MAAM;AAAA,QACtC,UAAU,CAAC,QAAQ,YAAY,KAAK,MAAM;AAAA,QAC1C,YAAY;AAAA,QACZ,QAAQ;AAAA,QACR,YAAY,KAAK;AAAA,MACnB,CAAC;AACD,sBAAgB,KAAK,IAAI,cAAc;AAAA,IACzC;AAMA,QAAI,sBAAsB;AAC1B,QAAI,KAAK,SAAS;AAChB,YAAM,QAAQ,oBAAoB,KAAK,IAAI;AAC3C,UAAI,OAAO;AAGT,cAAM,aAAa,MAAM,KAAK,KAAK,YAAY,QAAQ;AAAA,UACrD,MAAM,MAAM;AAAA,UACZ,MAAM;AAAA,QACR,CAAC;AACD,cAAM,QAAQ,WAAW;AAAA,UACvB,CAAC,MACC,EAAE,OAAO,cAAc,YAAY,MAAM,MAAM,KAAK,YAAY,KAChE,EAAE,OAAO,aAAa;AAAA,QAC1B;AACA,YAAI,OAAO;AACT,gBAAM,MAAM,MAAM,KAAK,KAAK,kBAAkB,QAAQ;AAAA,YACpD,cAAc;AAAA,YACd,YAAY,MAAM,OAAO;AAAA,YACzB,MAAM;AAAA,YACN,eAAe,EAAE,OAAO,MAAM,MAAM;AAAA,YACpC,UAAU,CAAC,KAAK,MAAM;AAAA,YACtB,YAAY;AAAA,YACZ,QAAQ;AAAA,YACR,YAAY,KAAK;AAAA,UACnB,CAAC;AACD,0BAAgB,KAAK,IAAI,cAAc;AAAA,QACzC,OAAO;AACL,eAAK,aAAa,QAAQ;AAAA,YACxB,MAAM;AAAA,YACN,cAAc;AAAA,YACd,QAAQ,MAAM;AAAA,YACd,OAAO,MAAM;AAAA,YACb,YAAY,KAAK;AAAA,YACjB,WAAW,KAAK,eAAc,oBAAI,KAAK,GAAE,YAAY;AAAA,UACvD,CAAC;AACD,iCAAuB;AAAA,QACzB;AAAA,MACF;AAAA,IACF;AAEA,WAAO,EAAE,SAAS,iBAAiB,oBAAoB;AAAA,EACzD;AAAA;AAAA,EAGA,cAA2D;AACzD,WAAO,KAAK,aAAa,IAAI;AAAA,EAC/B;AACF;","names":[]}
|