@elizaos/agent 2.0.0-alpha.353 → 2.0.0-alpha.358
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/apps/app-lifeops/src/inbox/message-fetcher.d.ts +6 -2
- package/apps/app-lifeops/src/inbox/message-fetcher.d.ts.map +1 -1
- package/apps/app-lifeops/src/inbox/message-fetcher.js +55 -1
- package/apps/app-lifeops/src/inbox/types.d.ts +20 -0
- package/apps/app-lifeops/src/inbox/types.d.ts.map +1 -1
- package/apps/app-lifeops/src/lifeops/payment-types.d.ts +20 -0
- package/apps/app-lifeops/src/lifeops/payment-types.d.ts.map +1 -1
- package/apps/app-lifeops/src/lifeops/paypal-managed-client.d.ts +110 -0
- package/apps/app-lifeops/src/lifeops/paypal-managed-client.d.ts.map +1 -0
- package/apps/app-lifeops/src/lifeops/paypal-managed-client.js +148 -0
- package/apps/app-lifeops/src/lifeops/plaid-managed-client.d.ts +86 -0
- package/apps/app-lifeops/src/lifeops/plaid-managed-client.d.ts.map +1 -0
- package/apps/app-lifeops/src/lifeops/plaid-managed-client.js +134 -0
- package/apps/app-lifeops/src/lifeops/service-mixin-inbox.d.ts +17 -4
- package/apps/app-lifeops/src/lifeops/service-mixin-inbox.d.ts.map +1 -1
- package/apps/app-lifeops/src/lifeops/service-mixin-inbox.js +204 -12
- package/apps/app-lifeops/src/lifeops/service-mixin-payments.js +465 -0
- package/apps/app-lifeops/src/lifeops/service-mixin-sleep.d.ts +2 -0
- package/apps/app-lifeops/src/lifeops/service-mixin-sleep.d.ts.map +1 -0
- package/apps/app-lifeops/src/lifeops/service-mixin-sleep.js +144 -0
- package/apps/app-lifeops/src/lifeops/service-mixin-subscriptions.js +18 -0
- package/apps/app-lifeops/src/lifeops/service.d.ts +188 -77
- package/apps/app-lifeops/src/lifeops/service.d.ts.map +1 -1
- package/apps/app-lifeops/src/lifeops/service.js +2 -1
- package/apps/app-lifeops/src/routes/lifeops-routes.d.ts.map +1 -1
- package/apps/app-lifeops/src/routes/lifeops-routes.js +163 -9
- package/apps/app-lifeops/src/routes/plugin.d.ts.map +1 -1
- package/apps/app-lifeops/src/routes/plugin.js +41 -8
- package/apps/app-lifeops/src/routes/sleep-routes.d.ts +3 -0
- package/apps/app-lifeops/src/routes/sleep-routes.d.ts.map +1 -0
- package/apps/app-lifeops/src/routes/sleep-routes.js +109 -0
- package/package.json +9 -8
- package/packages/agent/src/actions/manage-tasks.d.ts +0 -1
- package/packages/agent/src/actions/manage-tasks.d.ts.map +1 -1
- package/packages/agent/src/actions/manage-tasks.js +5 -50
- package/packages/agent/src/api/index.d.ts +1 -0
- package/packages/agent/src/api/index.d.ts.map +1 -1
- package/packages/agent/src/api/index.js +1 -0
- package/packages/agent/src/api/runtime-plugin-routes.d.ts.map +1 -1
- package/packages/agent/src/api/runtime-plugin-routes.js +8 -2
- package/packages/agent/src/api/server-helpers-config.d.ts.map +1 -1
- package/packages/agent/src/api/server-helpers-config.js +1 -1
- package/packages/agent/src/api/server.d.ts.map +1 -1
- package/packages/agent/src/api/server.js +24 -0
- package/packages/agent/src/config/plugin-auto-enable.d.ts.map +1 -1
- package/packages/agent/src/middleware/x402/index.d.ts +43 -0
- package/packages/agent/src/middleware/x402/index.d.ts.map +1 -0
- package/packages/agent/src/middleware/x402/index.js +40 -0
- package/packages/agent/src/middleware/x402/payment-config.d.ts +251 -0
- package/packages/agent/src/middleware/x402/payment-config.d.ts.map +1 -0
- package/packages/agent/src/middleware/x402/payment-config.js +568 -0
- package/packages/agent/src/middleware/x402/payment-wrapper.d.ts +42 -0
- package/packages/agent/src/middleware/x402/payment-wrapper.d.ts.map +1 -0
- package/packages/agent/src/middleware/x402/payment-wrapper.js +1342 -0
- package/packages/agent/src/middleware/x402/startup-validator.d.ts +28 -0
- package/packages/agent/src/middleware/x402/startup-validator.d.ts.map +1 -0
- package/packages/agent/src/middleware/x402/startup-validator.js +225 -0
- package/packages/agent/src/middleware/x402/types.d.ts +158 -0
- package/packages/agent/src/middleware/x402/types.d.ts.map +1 -0
- package/packages/agent/src/middleware/x402/types.js +5 -0
- package/packages/agent/src/middleware/x402/x402-facilitator-binding.d.ts +9 -0
- package/packages/agent/src/middleware/x402/x402-facilitator-binding.d.ts.map +1 -0
- package/packages/agent/src/middleware/x402/x402-facilitator-binding.js +74 -0
- package/packages/agent/src/middleware/x402/x402-replay-durable.d.ts +30 -0
- package/packages/agent/src/middleware/x402/x402-replay-durable.d.ts.map +1 -0
- package/packages/agent/src/middleware/x402/x402-replay-durable.js +202 -0
- package/packages/agent/src/middleware/x402/x402-replay-guard.d.ts +28 -0
- package/packages/agent/src/middleware/x402/x402-replay-guard.d.ts.map +1 -0
- package/packages/agent/src/middleware/x402/x402-replay-guard.js +134 -0
- package/packages/agent/src/middleware/x402/x402-replay-keys.d.ts +21 -0
- package/packages/agent/src/middleware/x402/x402-replay-keys.d.ts.map +1 -0
- package/packages/agent/src/middleware/x402/x402-replay-keys.js +141 -0
- package/packages/agent/src/middleware/x402/x402-resolve.d.ts +6 -0
- package/packages/agent/src/middleware/x402/x402-resolve.d.ts.map +1 -0
- package/packages/agent/src/middleware/x402/x402-resolve.js +31 -0
- package/packages/agent/src/middleware/x402/x402-standard-payment.d.ts +130 -0
- package/packages/agent/src/middleware/x402/x402-standard-payment.d.ts.map +1 -0
- package/packages/agent/src/middleware/x402/x402-standard-payment.js +387 -0
- package/packages/agent/src/middleware/x402/x402-types.d.ts +130 -0
- package/packages/agent/src/middleware/x402/x402-types.d.ts.map +1 -0
- package/packages/agent/src/middleware/x402/x402-types.js +189 -0
- package/packages/agent/src/runtime/eliza.d.ts.map +1 -1
- package/packages/agent/src/runtime/eliza.js +16 -5
- package/packages/agent/src/runtime/task-heartbeat.d.ts +22 -0
- package/packages/agent/src/runtime/task-heartbeat.d.ts.map +1 -0
- package/packages/agent/src/runtime/task-heartbeat.js +84 -0
- package/packages/app-core/src/navigation/index.js +2 -2
- package/packages/shared/src/contracts/lifeops.d.ts +108 -0
- package/packages/shared/src/contracts/lifeops.d.ts.map +1 -1
- package/packages/shared/src/i18n/generated/validation-keyword-data.d.ts +24 -0
- package/packages/shared/src/i18n/generated/validation-keyword-data.d.ts.map +1 -1
- package/packages/shared/src/i18n/generated/validation-keyword-data.js +24 -0
- package/packages/typescript/src/features/advanced-capabilities/providers/facts.d.ts +3 -5
- package/packages/typescript/src/features/advanced-capabilities/providers/facts.d.ts.map +1 -1
- package/packages/typescript/src/features/advanced-capabilities/providers/facts.js +178 -70
- package/packages/typescript/src/i18n/generated/validation-keyword-data.d.ts +24 -0
- package/packages/typescript/src/i18n/generated/validation-keyword-data.d.ts.map +1 -1
- package/packages/typescript/src/i18n/generated/validation-keyword-data.js +24 -0
- package/packages/typescript/src/prompts.d.ts +2 -0
- package/packages/typescript/src/prompts.d.ts.map +1 -1
- package/packages/typescript/src/prompts.js +113 -0
- package/packages/typescript/src/types/memory.d.ts +78 -0
- package/packages/typescript/src/types/memory.d.ts.map +1 -1
- package/packages/typescript/src/types/payment.d.ts +23 -1
- package/packages/typescript/src/types/payment.d.ts.map +1 -1
- package/packages/typescript/src/types/plugin.d.ts +38 -0
- package/packages/typescript/src/types/plugin.d.ts.map +1 -1
- package/apps/app-companion/src/actions/emote.d.ts +0 -10
- package/apps/app-companion/src/actions/emote.d.ts.map +0 -1
- package/apps/app-companion/src/actions/emote.js +0 -80
- package/apps/app-companion/src/plugin.d.ts +0 -9
- package/apps/app-companion/src/plugin.d.ts.map +0 -1
- package/apps/app-companion/src/plugin.js +0 -15
- package/apps/app-lifeops/src/action.d.ts +0 -3
- package/apps/app-lifeops/src/action.d.ts.map +0 -1
- package/apps/app-lifeops/src/action.js +0 -351
- package/apps/app-lifeops/src/actions/activity-report.d.ts +0 -13
- package/apps/app-lifeops/src/actions/activity-report.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/activity-report.js +0 -313
- package/apps/app-lifeops/src/actions/app-blocker.d.ts +0 -7
- package/apps/app-lifeops/src/actions/app-blocker.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/app-blocker.js +0 -454
- package/apps/app-lifeops/src/actions/approval.d.ts +0 -21
- package/apps/app-lifeops/src/actions/approval.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/approval.js +0 -342
- package/apps/app-lifeops/src/actions/autofill.d.ts +0 -35
- package/apps/app-lifeops/src/actions/autofill.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/autofill.js +0 -455
- package/apps/app-lifeops/src/actions/book-travel-executor.d.ts +0 -9
- package/apps/app-lifeops/src/actions/book-travel-executor.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/book-travel-executor.js +0 -65
- package/apps/app-lifeops/src/actions/book-travel.d.ts +0 -5
- package/apps/app-lifeops/src/actions/book-travel.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/book-travel.js +0 -491
- package/apps/app-lifeops/src/actions/calendar.d.ts +0 -19
- package/apps/app-lifeops/src/actions/calendar.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/calendar.js +0 -3221
- package/apps/app-lifeops/src/actions/calendly.d.ts +0 -3
- package/apps/app-lifeops/src/actions/calendly.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/calendly.js +0 -361
- package/apps/app-lifeops/src/actions/chat-thread-control.d.ts +0 -3
- package/apps/app-lifeops/src/actions/chat-thread-control.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/chat-thread-control.js +0 -260
- package/apps/app-lifeops/src/actions/checkin.d.ts +0 -8
- package/apps/app-lifeops/src/actions/checkin.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/checkin.js +0 -230
- package/apps/app-lifeops/src/actions/computer-use.d.ts +0 -14
- package/apps/app-lifeops/src/actions/computer-use.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/computer-use.js +0 -408
- package/apps/app-lifeops/src/actions/cross-channel-send.d.ts +0 -34
- package/apps/app-lifeops/src/actions/cross-channel-send.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/cross-channel-send.js +0 -964
- package/apps/app-lifeops/src/actions/device-bus.d.ts +0 -19
- package/apps/app-lifeops/src/actions/device-bus.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/device-bus.js +0 -376
- package/apps/app-lifeops/src/actions/dossier.d.ts +0 -5
- package/apps/app-lifeops/src/actions/dossier.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/dossier.js +0 -217
- package/apps/app-lifeops/src/actions/email-unsubscribe.d.ts +0 -5
- package/apps/app-lifeops/src/actions/email-unsubscribe.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/email-unsubscribe.js +0 -172
- package/apps/app-lifeops/src/actions/gmail.d.ts +0 -41
- package/apps/app-lifeops/src/actions/gmail.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/gmail.js +0 -2277
- package/apps/app-lifeops/src/actions/health.d.ts +0 -9
- package/apps/app-lifeops/src/actions/health.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/health.js +0 -398
- package/apps/app-lifeops/src/actions/inbox.d.ts +0 -5
- package/apps/app-lifeops/src/actions/inbox.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/inbox.js +0 -1249
- package/apps/app-lifeops/src/actions/intent-sync.d.ts +0 -5
- package/apps/app-lifeops/src/actions/intent-sync.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/intent-sync.js +0 -320
- package/apps/app-lifeops/src/actions/life-goal-extractor.d.ts +0 -69
- package/apps/app-lifeops/src/actions/life-goal-extractor.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/life-goal-extractor.js +0 -420
- package/apps/app-lifeops/src/actions/life-param-extractor.d.ts +0 -78
- package/apps/app-lifeops/src/actions/life-param-extractor.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/life-param-extractor.js +0 -431
- package/apps/app-lifeops/src/actions/life-recent-context.d.ts +0 -9
- package/apps/app-lifeops/src/actions/life-recent-context.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/life-recent-context.js +0 -78
- package/apps/app-lifeops/src/actions/life-update-extractor.d.ts +0 -27
- package/apps/app-lifeops/src/actions/life-update-extractor.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/life-update-extractor.js +0 -195
- package/apps/app-lifeops/src/actions/life.d.ts +0 -5
- package/apps/app-lifeops/src/actions/life.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/life.extractor.d.ts +0 -18
- package/apps/app-lifeops/src/actions/life.extractor.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/life.extractor.js +0 -363
- package/apps/app-lifeops/src/actions/life.js +0 -3402
- package/apps/app-lifeops/src/actions/lifeops-extraction-config.d.ts +0 -16
- package/apps/app-lifeops/src/actions/lifeops-extraction-config.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/lifeops-extraction-config.js +0 -25
- package/apps/app-lifeops/src/actions/lifeops-google-helpers.d.ts +0 -64
- package/apps/app-lifeops/src/actions/lifeops-google-helpers.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/lifeops-google-helpers.js +0 -671
- package/apps/app-lifeops/src/actions/list-remote-sessions.d.ts +0 -6
- package/apps/app-lifeops/src/actions/list-remote-sessions.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/list-remote-sessions.js +0 -45
- package/apps/app-lifeops/src/actions/non-actionable-request.d.ts +0 -20
- package/apps/app-lifeops/src/actions/non-actionable-request.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/non-actionable-request.js +0 -58
- package/apps/app-lifeops/src/actions/owner-app-block.d.ts +0 -12
- package/apps/app-lifeops/src/actions/owner-app-block.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/owner-app-block.js +0 -136
- package/apps/app-lifeops/src/actions/owner-calendar.d.ts +0 -57
- package/apps/app-lifeops/src/actions/owner-calendar.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/owner-calendar.js +0 -924
- package/apps/app-lifeops/src/actions/owner-inbox.d.ts +0 -5
- package/apps/app-lifeops/src/actions/owner-inbox.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/owner-inbox.js +0 -652
- package/apps/app-lifeops/src/actions/owner-remote-desktop.d.ts +0 -12
- package/apps/app-lifeops/src/actions/owner-remote-desktop.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/owner-remote-desktop.js +0 -163
- package/apps/app-lifeops/src/actions/owner-schedule.d.ts +0 -3
- package/apps/app-lifeops/src/actions/owner-schedule.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/owner-schedule.js +0 -174
- package/apps/app-lifeops/src/actions/owner-screen-time.d.ts +0 -10
- package/apps/app-lifeops/src/actions/owner-screen-time.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/owner-screen-time.js +0 -209
- package/apps/app-lifeops/src/actions/owner-website-block.d.ts +0 -12
- package/apps/app-lifeops/src/actions/owner-website-block.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/owner-website-block.js +0 -397
- package/apps/app-lifeops/src/actions/password-manager.d.ts +0 -5
- package/apps/app-lifeops/src/actions/password-manager.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/password-manager.js +0 -257
- package/apps/app-lifeops/src/actions/payments.d.ts +0 -5
- package/apps/app-lifeops/src/actions/payments.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/payments.js +0 -236
- package/apps/app-lifeops/src/actions/relationships.d.ts +0 -12
- package/apps/app-lifeops/src/actions/relationships.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/relationships.js +0 -869
- package/apps/app-lifeops/src/actions/remote-desktop.d.ts +0 -5
- package/apps/app-lifeops/src/actions/remote-desktop.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/remote-desktop.js +0 -304
- package/apps/app-lifeops/src/actions/revoke-remote-session.d.ts +0 -6
- package/apps/app-lifeops/src/actions/revoke-remote-session.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/revoke-remote-session.js +0 -73
- package/apps/app-lifeops/src/actions/schedule-x-dm-reply.d.ts +0 -3
- package/apps/app-lifeops/src/actions/schedule-x-dm-reply.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/schedule-x-dm-reply.js +0 -134
- package/apps/app-lifeops/src/actions/scheduled-trigger-task.d.ts +0 -19
- package/apps/app-lifeops/src/actions/scheduled-trigger-task.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/scheduled-trigger-task.js +0 -83
- package/apps/app-lifeops/src/actions/scheduling.d.ts +0 -70
- package/apps/app-lifeops/src/actions/scheduling.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/scheduling.js +0 -1076
- package/apps/app-lifeops/src/actions/screen-time.d.ts +0 -8
- package/apps/app-lifeops/src/actions/screen-time.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/screen-time.js +0 -256
- package/apps/app-lifeops/src/actions/search-across-channels.d.ts +0 -13
- package/apps/app-lifeops/src/actions/search-across-channels.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/search-across-channels.js +0 -338
- package/apps/app-lifeops/src/actions/start-remote-session.d.ts +0 -14
- package/apps/app-lifeops/src/actions/start-remote-session.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/start-remote-session.js +0 -139
- package/apps/app-lifeops/src/actions/subscriptions.d.ts +0 -5
- package/apps/app-lifeops/src/actions/subscriptions.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/subscriptions.js +0 -404
- package/apps/app-lifeops/src/actions/timezone-normalization.d.ts +0 -4
- package/apps/app-lifeops/src/actions/timezone-normalization.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/timezone-normalization.js +0 -159
- package/apps/app-lifeops/src/actions/twilio-call.d.ts +0 -20
- package/apps/app-lifeops/src/actions/twilio-call.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/twilio-call.js +0 -805
- package/apps/app-lifeops/src/actions/update-owner-profile.d.ts +0 -5
- package/apps/app-lifeops/src/actions/update-owner-profile.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/update-owner-profile.js +0 -181
- package/apps/app-lifeops/src/actions/x-read.d.ts +0 -5
- package/apps/app-lifeops/src/actions/x-read.d.ts.map +0 -1
- package/apps/app-lifeops/src/actions/x-read.js +0 -561
- package/apps/app-lifeops/src/activity-profile/activity-tracker-service.d.ts +0 -36
- package/apps/app-lifeops/src/activity-profile/activity-tracker-service.d.ts.map +0 -1
- package/apps/app-lifeops/src/activity-profile/activity-tracker-service.js +0 -160
- package/apps/app-lifeops/src/activity-profile/analyzer.d.ts +0 -23
- package/apps/app-lifeops/src/activity-profile/analyzer.d.ts.map +0 -1
- package/apps/app-lifeops/src/activity-profile/analyzer.js +0 -555
- package/apps/app-lifeops/src/activity-profile/presence-signal-bridge-service.d.ts +0 -14
- package/apps/app-lifeops/src/activity-profile/presence-signal-bridge-service.d.ts.map +0 -1
- package/apps/app-lifeops/src/activity-profile/presence-signal-bridge-service.js +0 -133
- package/apps/app-lifeops/src/activity-profile/proactive-planner.d.ts +0 -71
- package/apps/app-lifeops/src/activity-profile/proactive-planner.d.ts.map +0 -1
- package/apps/app-lifeops/src/activity-profile/proactive-planner.js +0 -567
- package/apps/app-lifeops/src/activity-profile/proactive-worker.d.ts +0 -32
- package/apps/app-lifeops/src/activity-profile/proactive-worker.d.ts.map +0 -1
- package/apps/app-lifeops/src/activity-profile/proactive-worker.js +0 -677
- package/apps/app-lifeops/src/activity-profile/service.d.ts +0 -11
- package/apps/app-lifeops/src/activity-profile/service.d.ts.map +0 -1
- package/apps/app-lifeops/src/activity-profile/service.js +0 -246
- package/apps/app-lifeops/src/app-blocker/access.d.ts +0 -8
- package/apps/app-lifeops/src/app-blocker/access.d.ts.map +0 -1
- package/apps/app-lifeops/src/app-blocker/access.js +0 -28
- package/apps/app-lifeops/src/app-blocker/engine.d.ts +0 -10
- package/apps/app-lifeops/src/app-blocker/engine.d.ts.map +0 -1
- package/apps/app-lifeops/src/app-blocker/engine.js +0 -43
- package/apps/app-lifeops/src/followup/actions/listOverdueFollowups.d.ts +0 -3
- package/apps/app-lifeops/src/followup/actions/listOverdueFollowups.d.ts.map +0 -1
- package/apps/app-lifeops/src/followup/actions/listOverdueFollowups.js +0 -48
- package/apps/app-lifeops/src/followup/actions/markFollowupDone.d.ts +0 -3
- package/apps/app-lifeops/src/followup/actions/markFollowupDone.d.ts.map +0 -1
- package/apps/app-lifeops/src/followup/actions/markFollowupDone.js +0 -173
- package/apps/app-lifeops/src/followup/actions/setFollowupThreshold.d.ts +0 -3
- package/apps/app-lifeops/src/followup/actions/setFollowupThreshold.d.ts.map +0 -1
- package/apps/app-lifeops/src/followup/actions/setFollowupThreshold.js +0 -172
- package/apps/app-lifeops/src/followup/followup-tracker.d.ts +0 -82
- package/apps/app-lifeops/src/followup/followup-tracker.d.ts.map +0 -1
- package/apps/app-lifeops/src/followup/followup-tracker.js +0 -279
- package/apps/app-lifeops/src/followup/index.d.ts +0 -5
- package/apps/app-lifeops/src/followup/index.d.ts.map +0 -1
- package/apps/app-lifeops/src/followup/index.js +0 -4
- package/apps/app-lifeops/src/inbox/config.d.ts +0 -7
- package/apps/app-lifeops/src/inbox/config.d.ts.map +0 -1
- package/apps/app-lifeops/src/inbox/config.js +0 -67
- package/apps/app-lifeops/src/inbox/reflection.d.ts +0 -40
- package/apps/app-lifeops/src/inbox/reflection.d.ts.map +0 -1
- package/apps/app-lifeops/src/inbox/reflection.js +0 -115
- package/apps/app-lifeops/src/inbox/repository.d.ts +0 -52
- package/apps/app-lifeops/src/inbox/repository.d.ts.map +0 -1
- package/apps/app-lifeops/src/inbox/repository.js +0 -262
- package/apps/app-lifeops/src/inbox/triage-classifier.d.ts +0 -15
- package/apps/app-lifeops/src/inbox/triage-classifier.d.ts.map +0 -1
- package/apps/app-lifeops/src/inbox/triage-classifier.js +0 -179
- package/apps/app-lifeops/src/lifeops/approval-queue.d.ts +0 -24
- package/apps/app-lifeops/src/lifeops/approval-queue.d.ts.map +0 -1
- package/apps/app-lifeops/src/lifeops/approval-queue.js +0 -500
- package/apps/app-lifeops/src/lifeops/approval-queue.types.d.ts +0 -166
- package/apps/app-lifeops/src/lifeops/approval-queue.types.d.ts.map +0 -1
- package/apps/app-lifeops/src/lifeops/approval-queue.types.js +0 -22
- package/apps/app-lifeops/src/lifeops/autofill-whitelist.d.ts +0 -15
- package/apps/app-lifeops/src/lifeops/autofill-whitelist.d.ts.map +0 -1
- package/apps/app-lifeops/src/lifeops/autofill-whitelist.js +0 -116
- package/apps/app-lifeops/src/lifeops/background-planner-dispatch.d.ts +0 -60
- package/apps/app-lifeops/src/lifeops/background-planner-dispatch.d.ts.map +0 -1
- package/apps/app-lifeops/src/lifeops/background-planner-dispatch.js +0 -134
- package/apps/app-lifeops/src/lifeops/background-planner.d.ts +0 -141
- package/apps/app-lifeops/src/lifeops/background-planner.d.ts.map +0 -1
- package/apps/app-lifeops/src/lifeops/background-planner.js +0 -377
- package/apps/app-lifeops/src/lifeops/calendly-client.d.ts +0 -61
- package/apps/app-lifeops/src/lifeops/calendly-client.d.ts.map +0 -1
- package/apps/app-lifeops/src/lifeops/calendly-client.js +0 -234
- package/apps/app-lifeops/src/lifeops/checkin/schedule-resolver.d.ts +0 -14
- package/apps/app-lifeops/src/lifeops/checkin/schedule-resolver.d.ts.map +0 -1
- package/apps/app-lifeops/src/lifeops/checkin/schedule-resolver.js +0 -27
- package/apps/app-lifeops/src/lifeops/cross-channel-search.d.ts +0 -88
- package/apps/app-lifeops/src/lifeops/cross-channel-search.d.ts.map +0 -1
- package/apps/app-lifeops/src/lifeops/cross-channel-search.js +0 -443
- package/apps/app-lifeops/src/lifeops/intent-sync.d.ts +0 -59
- package/apps/app-lifeops/src/lifeops/intent-sync.d.ts.map +0 -1
- package/apps/app-lifeops/src/lifeops/intent-sync.js +0 -305
- package/apps/app-lifeops/src/lifeops/notifications-push.d.ts +0 -37
- package/apps/app-lifeops/src/lifeops/notifications-push.d.ts.map +0 -1
- package/apps/app-lifeops/src/lifeops/notifications-push.js +0 -92
- package/apps/app-lifeops/src/lifeops/password-manager-bridge.d.ts +0 -50
- package/apps/app-lifeops/src/lifeops/password-manager-bridge.d.ts.map +0 -1
- package/apps/app-lifeops/src/lifeops/password-manager-bridge.js +0 -448
- package/apps/app-lifeops/src/lifeops/remote-desktop.d.ts +0 -38
- package/apps/app-lifeops/src/lifeops/remote-desktop.d.ts.map +0 -1
- package/apps/app-lifeops/src/lifeops/remote-desktop.js +0 -372
- package/apps/app-lifeops/src/lifeops/runtime.d.ts +0 -11
- package/apps/app-lifeops/src/lifeops/runtime.d.ts.map +0 -1
- package/apps/app-lifeops/src/lifeops/runtime.js +0 -57
- package/apps/app-lifeops/src/lifeops/screen-context.d.ts +0 -52
- package/apps/app-lifeops/src/lifeops/screen-context.d.ts.map +0 -1
- package/apps/app-lifeops/src/lifeops/screen-context.js +0 -349
- package/apps/app-lifeops/src/plugin.d.ts +0 -30
- package/apps/app-lifeops/src/plugin.d.ts.map +0 -1
- package/apps/app-lifeops/src/plugin.js +0 -340
- package/apps/app-lifeops/src/provider.d.ts +0 -4
- package/apps/app-lifeops/src/provider.d.ts.map +0 -1
- package/apps/app-lifeops/src/provider.js +0 -77
- package/apps/app-lifeops/src/providers/activity-profile.d.ts +0 -3
- package/apps/app-lifeops/src/providers/activity-profile.d.ts.map +0 -1
- package/apps/app-lifeops/src/providers/activity-profile.js +0 -140
- package/apps/app-lifeops/src/providers/app-blocker.d.ts +0 -3
- package/apps/app-lifeops/src/providers/app-blocker.d.ts.map +0 -1
- package/apps/app-lifeops/src/providers/app-blocker.js +0 -86
- package/apps/app-lifeops/src/providers/cross-channel-context.d.ts +0 -29
- package/apps/app-lifeops/src/providers/cross-channel-context.d.ts.map +0 -1
- package/apps/app-lifeops/src/providers/cross-channel-context.js +0 -182
- package/apps/app-lifeops/src/providers/inbox-triage.d.ts +0 -3
- package/apps/app-lifeops/src/providers/inbox-triage.d.ts.map +0 -1
- package/apps/app-lifeops/src/providers/inbox-triage.js +0 -90
- package/apps/app-lifeops/src/providers/lifeops.d.ts +0 -3
- package/apps/app-lifeops/src/providers/lifeops.d.ts.map +0 -1
- package/apps/app-lifeops/src/providers/lifeops.js +0 -197
- package/apps/app-lifeops/src/remote/pairing-code.d.ts +0 -39
- package/apps/app-lifeops/src/remote/pairing-code.d.ts.map +0 -1
- package/apps/app-lifeops/src/remote/pairing-code.js +0 -76
- package/apps/app-lifeops/src/remote/remote-session-service.d.ts +0 -107
- package/apps/app-lifeops/src/remote/remote-session-service.d.ts.map +0 -1
- package/apps/app-lifeops/src/remote/remote-session-service.js +0 -253
- package/apps/app-lifeops/src/service.d.ts +0 -33
- package/apps/app-lifeops/src/service.d.ts.map +0 -1
- package/apps/app-lifeops/src/service.js +0 -67
- package/apps/app-lifeops/src/travel-time/calendar-create.d.ts +0 -17
- package/apps/app-lifeops/src/travel-time/calendar-create.d.ts.map +0 -1
- package/apps/app-lifeops/src/travel-time/calendar-create.js +0 -21
- package/apps/app-lifeops/src/travel-time/service.d.ts +0 -60
- package/apps/app-lifeops/src/travel-time/service.d.ts.map +0 -1
- package/apps/app-lifeops/src/travel-time/service.js +0 -142
- package/apps/app-lifeops/src/website-blocker/chat-integration/actions/blockUntilTaskComplete.d.ts +0 -3
- package/apps/app-lifeops/src/website-blocker/chat-integration/actions/blockUntilTaskComplete.d.ts.map +0 -1
- package/apps/app-lifeops/src/website-blocker/chat-integration/actions/blockUntilTaskComplete.js +0 -246
- package/apps/app-lifeops/src/website-blocker/chat-integration/actions/listActiveBlocks.d.ts +0 -3
- package/apps/app-lifeops/src/website-blocker/chat-integration/actions/listActiveBlocks.d.ts.map +0 -1
- package/apps/app-lifeops/src/website-blocker/chat-integration/actions/listActiveBlocks.js +0 -83
- package/apps/app-lifeops/src/website-blocker/chat-integration/actions/releaseBlock.d.ts +0 -3
- package/apps/app-lifeops/src/website-blocker/chat-integration/actions/releaseBlock.d.ts.map +0 -1
- package/apps/app-lifeops/src/website-blocker/chat-integration/actions/releaseBlock.js +0 -98
- package/apps/app-lifeops/src/website-blocker/chat-integration/block-rule-reconciler.d.ts +0 -7
- package/apps/app-lifeops/src/website-blocker/chat-integration/block-rule-reconciler.d.ts.map +0 -1
- package/apps/app-lifeops/src/website-blocker/chat-integration/block-rule-reconciler.js +0 -111
- package/apps/app-lifeops/src/website-blocker/chat-integration/block-rule-schema.d.ts +0 -39
- package/apps/app-lifeops/src/website-blocker/chat-integration/block-rule-schema.d.ts.map +0 -1
- package/apps/app-lifeops/src/website-blocker/chat-integration/block-rule-schema.js +0 -123
- package/apps/app-lifeops/src/website-blocker/chat-integration/block-rule-service.d.ts +0 -21
- package/apps/app-lifeops/src/website-blocker/chat-integration/block-rule-service.d.ts.map +0 -1
- package/apps/app-lifeops/src/website-blocker/chat-integration/block-rule-service.js +0 -258
- package/apps/app-lifeops/src/website-blocker/chat-integration/index.d.ts +0 -8
- package/apps/app-lifeops/src/website-blocker/chat-integration/index.d.ts.map +0 -1
- package/apps/app-lifeops/src/website-blocker/chat-integration/index.js +0 -6
- package/packages/agent/src/onboarding-presets.d.ts +0 -2
- package/packages/agent/src/onboarding-presets.d.ts.map +0 -1
- package/packages/agent/src/onboarding-presets.js +0 -1
- package/packages/app-core/src/bridge/native-plugins.d.ts +0 -504
- package/packages/app-core/src/bridge/native-plugins.d.ts.map +0 -1
- package/packages/app-core/src/bridge/native-plugins.js +0 -67
- package/packages/native-plugins/activity-tracker/src/index.d.ts +0 -69
- package/packages/native-plugins/activity-tracker/src/index.d.ts.map +0 -1
- package/packages/native-plugins/activity-tracker/src/index.js +0 -147
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { IAgentRuntime } from "@elizaos/core";
|
|
2
|
-
import type { LifeOpsGmailTriageFeed, LifeOpsGoogleConnectorStatus, LifeOpsXConnectorStatus, LifeOpsXDm } from "@elizaos/shared/contracts/lifeops";
|
|
2
|
+
import type { GetLifeOpsGmailTriageRequest, LifeOpsGmailTriageFeed, LifeOpsGoogleConnectorStatus, LifeOpsXConnectorStatus, LifeOpsXDm } from "@elizaos/shared/contracts/lifeops";
|
|
3
3
|
import type { InboundMessage } from "./types.js";
|
|
4
4
|
export interface GmailInboxSource {
|
|
5
5
|
getGoogleConnectorStatus(requestUrl: URL): Promise<LifeOpsGoogleConnectorStatus>;
|
|
6
|
-
getGmailTriage(requestUrl: URL): Promise<LifeOpsGmailTriageFeed>;
|
|
6
|
+
getGmailTriage(requestUrl: URL, request?: GetLifeOpsGmailTriageRequest): Promise<LifeOpsGmailTriageFeed>;
|
|
7
7
|
}
|
|
8
8
|
export interface XDmInboxSource {
|
|
9
9
|
getXConnectorStatus(): Promise<LifeOpsXConnectorStatus>;
|
|
@@ -27,6 +27,8 @@ export declare function fetchChatMessages(runtime: IAgentRuntime, opts: {
|
|
|
27
27
|
export declare function fetchGmailMessages(source: GmailInboxSource, opts: {
|
|
28
28
|
sinceIso?: string;
|
|
29
29
|
limit?: number;
|
|
30
|
+
/** Filter to a single Gmail account by Google grant id. */
|
|
31
|
+
grantId?: string;
|
|
30
32
|
}): Promise<InboundMessage[]>;
|
|
31
33
|
export declare function fetchXDmMessages(source: XDmInboxSource, opts: {
|
|
32
34
|
sinceIso?: string;
|
|
@@ -39,5 +41,7 @@ export declare function fetchAllMessages(runtime: IAgentRuntime, opts: {
|
|
|
39
41
|
includeGmail?: boolean;
|
|
40
42
|
gmailSource?: GmailInboxSource;
|
|
41
43
|
xDmSource?: XDmInboxSource;
|
|
44
|
+
/** Filter Gmail to a single account by Google grant id. */
|
|
45
|
+
gmailGrantId?: string;
|
|
42
46
|
}): Promise<InboundMessage[]>;
|
|
43
47
|
//# sourceMappingURL=message-fetcher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-fetcher.d.ts","sourceRoot":"","sources":["../../../../../../../apps/app-lifeops/src/inbox/message-fetcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAA6B,MAAM,eAAe,CAAC;AAK9E,OAAO,KAAK,EACV,sBAAsB,EACtB,4BAA4B,EAC5B,uBAAuB,EACvB,UAAU,EACX,MAAM,mCAAmC,CAAC;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"message-fetcher.d.ts","sourceRoot":"","sources":["../../../../../../../apps/app-lifeops/src/inbox/message-fetcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAA6B,MAAM,eAAe,CAAC;AAK9E,OAAO,KAAK,EACV,4BAA4B,EAC5B,sBAAsB,EACtB,4BAA4B,EAC5B,uBAAuB,EACvB,UAAU,EACX,MAAM,mCAAmC,CAAC;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAyBjD,MAAM,WAAW,gBAAgB;IAC/B,wBAAwB,CACtB,UAAU,EAAE,GAAG,GACd,OAAO,CAAC,4BAA4B,CAAC,CAAC;IACzC,cAAc,CACZ,UAAU,EAAE,GAAG,EACf,OAAO,CAAC,EAAE,4BAA4B,GACrC,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,mBAAmB,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACxD,QAAQ,CAAC,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjE,OAAO,CAAC,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;CAC3D;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE;IACJ,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACA,OAAO,CAAC,cAAc,EAAE,CAAC,CAkI3B;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE;IACJ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GACA,OAAO,CAAC,cAAc,EAAE,CAAC,CAqD3B;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE;IACJ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACA,OAAO,CAAC,cAAc,EAAE,CAAC,CAgD3B;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE;IACJ,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GACA,OAAO,CAAC,cAAc,EAAE,CAAC,CAsC3B"}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { expandConnectorSourceFilter, normalizeConnectorSource, } from "@elizaos/shared/connectors";
|
|
2
2
|
import { buildDeepLink, resolveChannelName } from "./channel-deep-links.js";
|
|
3
|
+
/**
|
|
4
|
+
* Discord public channels are typically larger than DMs / threads. We use this
|
|
5
|
+
* threshold both to treat sufficiently-large groups as broadcast channels and
|
|
6
|
+
* to drive the v1 small-group filter in the Messages section.
|
|
7
|
+
*/
|
|
8
|
+
const PUBLIC_CHANNEL_PARTICIPANT_THRESHOLD = 15;
|
|
3
9
|
const DEFAULT_SOURCES = [
|
|
4
10
|
"discord",
|
|
5
11
|
"telegram",
|
|
@@ -71,6 +77,13 @@ export async function fetchChatMessages(runtime, opts) {
|
|
|
71
77
|
arr.push(m);
|
|
72
78
|
messagesByRoom.set(m.roomId, arr);
|
|
73
79
|
}
|
|
80
|
+
// Fetch participant counts per room exactly once. Used to classify groups
|
|
81
|
+
// vs public channels and to filter out >15-person rooms in the inbox.
|
|
82
|
+
const participantCountByRoom = new Map();
|
|
83
|
+
await Promise.all(sourceRooms.map(async (room) => {
|
|
84
|
+
const ids = await runtime.getParticipantsForRoom(room.id);
|
|
85
|
+
participantCountByRoom.set(room.id, ids.length);
|
|
86
|
+
}));
|
|
74
87
|
const results = [];
|
|
75
88
|
for (const memory of filtered.slice(0, limit)) {
|
|
76
89
|
const room = roomMap.get(memory.roomId);
|
|
@@ -81,6 +94,8 @@ export async function fetchChatMessages(runtime, opts) {
|
|
|
81
94
|
const senderName = extractSenderName(memory) ?? "Unknown";
|
|
82
95
|
const channelName = resolveChannelName(source, room?.name, senderName);
|
|
83
96
|
const channelType = detectChannelType(room);
|
|
97
|
+
const participantCount = participantCountByRoom.get(memory.roomId);
|
|
98
|
+
const chatType = classifyChatType(room, channelType, participantCount);
|
|
84
99
|
const world = room?.worldId ? worldMap.get(room.worldId) : undefined;
|
|
85
100
|
const deepLink = await buildDeepLink(runtime, source, {
|
|
86
101
|
roomId: memory.roomId,
|
|
@@ -110,6 +125,9 @@ export async function fetchChatMessages(runtime, opts) {
|
|
|
110
125
|
timestamp: memory.createdAt ?? Date.now(),
|
|
111
126
|
deepLink: deepLink ?? undefined,
|
|
112
127
|
threadMessages: threadMessages.length > 0 ? threadMessages : undefined,
|
|
128
|
+
threadId: memory.roomId,
|
|
129
|
+
chatType,
|
|
130
|
+
participantCount,
|
|
113
131
|
});
|
|
114
132
|
}
|
|
115
133
|
return results;
|
|
@@ -121,7 +139,11 @@ export async function fetchGmailMessages(source, opts) {
|
|
|
121
139
|
const capabilities = status.grantedCapabilities ?? [];
|
|
122
140
|
if (!capabilities.includes("google.gmail.triage"))
|
|
123
141
|
return [];
|
|
124
|
-
|
|
142
|
+
// When no grantId is supplied, the service-side getGmailTriage already
|
|
143
|
+
// aggregates across every Google grant and tags each summary with grantId
|
|
144
|
+
// and accountEmail. We forward those onto the InboundMessage so the inbox
|
|
145
|
+
// mixin can group by account and render account chips.
|
|
146
|
+
const triageFeed = await source.getGmailTriage(INTERNAL_URL, opts.grantId ? { grantId: opts.grantId } : undefined);
|
|
125
147
|
if (triageFeed.messages.length === 0)
|
|
126
148
|
return [];
|
|
127
149
|
const limit = opts.limit ?? 50;
|
|
@@ -150,6 +172,10 @@ export async function fetchGmailMessages(source, opts) {
|
|
|
150
172
|
gmailMessageId: msg.externalId || msg.id,
|
|
151
173
|
gmailIsImportant: msg.isImportant ?? false,
|
|
152
174
|
gmailLikelyReplyNeeded: msg.likelyReplyNeeded ?? false,
|
|
175
|
+
threadId: msg.threadId,
|
|
176
|
+
chatType: "dm",
|
|
177
|
+
gmailAccountId: msg.grantId,
|
|
178
|
+
gmailAccountEmail: msg.accountEmail ?? undefined,
|
|
153
179
|
});
|
|
154
180
|
}
|
|
155
181
|
return results;
|
|
@@ -179,6 +205,7 @@ export async function fetchXDmMessages(source, opts) {
|
|
|
179
205
|
? metadata.participantId.trim()
|
|
180
206
|
: dm.senderId;
|
|
181
207
|
const isGroup = participantIds.length > 2;
|
|
208
|
+
const xParticipantCount = participantIds.length || (isGroup ? undefined : 2);
|
|
182
209
|
results.push({
|
|
183
210
|
id: dm.id,
|
|
184
211
|
source: "x_dm",
|
|
@@ -191,6 +218,9 @@ export async function fetchXDmMessages(source, opts) {
|
|
|
191
218
|
text: dm.text,
|
|
192
219
|
snippet: dm.text.slice(0, SNIPPET_MAX_LENGTH),
|
|
193
220
|
timestamp: Number.isFinite(receivedMs) ? receivedMs : Date.now(),
|
|
221
|
+
threadId: dm.conversationId,
|
|
222
|
+
chatType: isGroup ? "group" : "dm",
|
|
223
|
+
participantCount: xParticipantCount,
|
|
194
224
|
});
|
|
195
225
|
}
|
|
196
226
|
return results;
|
|
@@ -203,6 +233,7 @@ export async function fetchAllMessages(runtime, opts) {
|
|
|
203
233
|
? fetchGmailMessages(opts.gmailSource, {
|
|
204
234
|
sinceIso: opts.sinceIso,
|
|
205
235
|
limit: opts.limit,
|
|
236
|
+
grantId: opts.gmailGrantId,
|
|
206
237
|
})
|
|
207
238
|
: Promise.reject(new Error("fetchAllMessages requires gmailSource when Gmail is included"))
|
|
208
239
|
: Promise.resolve([]);
|
|
@@ -284,3 +315,26 @@ function detectChannelType(room) {
|
|
|
284
315
|
}
|
|
285
316
|
return "dm";
|
|
286
317
|
}
|
|
318
|
+
/**
|
|
319
|
+
* Classify a room as DM, small group, or public channel/broadcast.
|
|
320
|
+
* Discord text channels (`GUILD_TEXT`, `voice`, etc.) are treated as channels.
|
|
321
|
+
* Anything with more than {@link PUBLIC_CHANNEL_PARTICIPANT_THRESHOLD}
|
|
322
|
+
* participants is also treated as a channel so the inbox can hide it.
|
|
323
|
+
*/
|
|
324
|
+
function classifyChatType(room, channelType, participantCount) {
|
|
325
|
+
const rawType = typeof room?.type === "string" ? room.type.toLowerCase() : "";
|
|
326
|
+
const isLikelyPublicChannel = rawType.includes("guild") ||
|
|
327
|
+
rawType.includes("voice") ||
|
|
328
|
+
rawType.includes("forum") ||
|
|
329
|
+
rawType.includes("public") ||
|
|
330
|
+
rawType.includes("broadcast");
|
|
331
|
+
if (channelType === "dm") {
|
|
332
|
+
return "dm";
|
|
333
|
+
}
|
|
334
|
+
if (isLikelyPublicChannel ||
|
|
335
|
+
(typeof participantCount === "number" &&
|
|
336
|
+
participantCount > PUBLIC_CHANNEL_PARTICIPANT_THRESHOLD)) {
|
|
337
|
+
return "channel";
|
|
338
|
+
}
|
|
339
|
+
return "group";
|
|
340
|
+
}
|
|
@@ -36,6 +36,26 @@ export interface InboundMessage {
|
|
|
36
36
|
gmailMessageId?: string;
|
|
37
37
|
gmailIsImportant?: boolean;
|
|
38
38
|
gmailLikelyReplyNeeded?: boolean;
|
|
39
|
+
/** Stable per-conversation key. For chat: roomId. For Gmail: thread id. */
|
|
40
|
+
threadId?: string;
|
|
41
|
+
/** Identifies which Google grant the message came from when multiple Gmail accounts exist. */
|
|
42
|
+
gmailAccountId?: string;
|
|
43
|
+
/** Display label for the Gmail account (e.g., `work@example.com`). */
|
|
44
|
+
gmailAccountEmail?: string;
|
|
45
|
+
/** ISO timestamp of when the user last viewed this thread. */
|
|
46
|
+
lastSeenAt?: string;
|
|
47
|
+
/** ISO timestamp if the user has replied since this message arrived. */
|
|
48
|
+
repliedAt?: string;
|
|
49
|
+
/** 0–100 score; higher = more important. */
|
|
50
|
+
priorityScore?: number;
|
|
51
|
+
/**
|
|
52
|
+
* DM, small/medium group chat, or public channel/broadcast.
|
|
53
|
+
* Mirrors the existing `channelType` field but with broader coverage; downstream
|
|
54
|
+
* code will migrate from `channelType` to `chatType` over time.
|
|
55
|
+
*/
|
|
56
|
+
chatType?: "dm" | "group" | "channel";
|
|
57
|
+
/** For groups, number of participants. */
|
|
58
|
+
participantCount?: number;
|
|
39
59
|
}
|
|
40
60
|
export interface TriageEntry {
|
|
41
61
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../apps/app-lifeops/src/inbox/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAM1C,MAAM,MAAM,oBAAoB,GAC5B,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,aAAa,GACb,QAAQ,CAAC;AAEb,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEtD,MAAM,MAAM,WAAW,GACnB,WAAW,GACX,cAAc,GACd,cAAc,GACd,SAAS,CAAC;AAMd,MAAM,WAAW,cAAc;IAC7B,sDAAsD;IACtD,EAAE,EAAE,MAAM,CAAC;IACX,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,WAAW,EAAE,IAAI,GAAG,OAAO,CAAC;IAC5B,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAG1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,sBAAsB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../apps/app-lifeops/src/inbox/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -70,9 +70,22 @@ export interface LifeOpsSpendingSummary {
|
|
|
70
70
|
transactionCount: number;
|
|
71
71
|
}>;
|
|
72
72
|
}
|
|
73
|
+
export interface LifeOpsRecurringChargePlaybookHit {
|
|
74
|
+
merchantNormalized: string;
|
|
75
|
+
playbookKey: string;
|
|
76
|
+
serviceName: string;
|
|
77
|
+
managementUrl: string;
|
|
78
|
+
executorPreference: "user_browser" | "agent_browser" | "desktop_native";
|
|
79
|
+
}
|
|
73
80
|
export interface LifeOpsPaymentsDashboard {
|
|
74
81
|
sources: LifeOpsPaymentSource[];
|
|
75
82
|
recurring: LifeOpsRecurringCharge[];
|
|
83
|
+
/**
|
|
84
|
+
* For every recurring charge whose merchant matches a known cancellation
|
|
85
|
+
* playbook (Netflix, Spotify, NYT, etc.), this map carries the playbook
|
|
86
|
+
* descriptor. UI shows a deep-link "Cancel" button only when there is a hit.
|
|
87
|
+
*/
|
|
88
|
+
recurringPlaybookHits: LifeOpsRecurringChargePlaybookHit[];
|
|
76
89
|
spending: LifeOpsSpendingSummary;
|
|
77
90
|
gmailSubscriptionAuditId: string | null;
|
|
78
91
|
generatedAt: string;
|
|
@@ -113,4 +126,11 @@ export interface SpendingSummaryRequest {
|
|
|
113
126
|
windowDays?: number | null;
|
|
114
127
|
sourceId?: string | null;
|
|
115
128
|
}
|
|
129
|
+
export type LifeOpsMoneyDashboard = LifeOpsPaymentsDashboard;
|
|
130
|
+
export type LifeOpsMoneySource = LifeOpsPaymentSource;
|
|
131
|
+
export type LifeOpsMoneySourceKind = LifeOpsPaymentSourceKind;
|
|
132
|
+
export type LifeOpsMoneySourceStatus = LifeOpsPaymentSourceStatus;
|
|
133
|
+
export type LifeOpsMoneyTransaction = LifeOpsPaymentTransaction;
|
|
134
|
+
export type LifeOpsMoneyDirection = LifeOpsPaymentDirection;
|
|
135
|
+
export type AddMoneySourceRequest = AddPaymentSourceRequest;
|
|
116
136
|
//# sourceMappingURL=payment-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment-types.d.ts","sourceRoot":"","sources":["../../../../../../../apps/app-lifeops/src/lifeops/payment-types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"payment-types.d.ts","sourceRoot":"","sources":["../../../../../../../apps/app-lifeops/src/lifeops/payment-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Milady-runtime client for Eliza Cloud's PayPal bridge endpoints.
|
|
3
|
+
*
|
|
4
|
+
* Same pattern as PlaidManagedClient: cloud holds the PAYPAL_* secrets,
|
|
5
|
+
* we just authenticate with the user's Eliza Cloud API key and forward
|
|
6
|
+
* the OAuth + Reporting API calls.
|
|
7
|
+
*
|
|
8
|
+
* The Reporting API (transaction sync) is only available to merchant-tier
|
|
9
|
+
* PayPal accounts. Personal accounts can authorize Login but the API
|
|
10
|
+
* returns 403; the cloud surfaces this as
|
|
11
|
+
* `{ error, fallback: "csv_export" }` so we can route the user to CSV
|
|
12
|
+
* import instead.
|
|
13
|
+
*/
|
|
14
|
+
export declare class PaypalManagedClientError extends Error {
|
|
15
|
+
readonly status: number;
|
|
16
|
+
readonly fallback: "csv_export" | null;
|
|
17
|
+
constructor(status: number, message: string, fallback?: "csv_export" | null);
|
|
18
|
+
}
|
|
19
|
+
interface ResolvedCloudConfig {
|
|
20
|
+
configured: boolean;
|
|
21
|
+
apiKey: string | null;
|
|
22
|
+
apiBaseUrl: string;
|
|
23
|
+
siteUrl: string;
|
|
24
|
+
}
|
|
25
|
+
export interface PaypalAuthorizeUrlResponse {
|
|
26
|
+
url: string;
|
|
27
|
+
scope: string;
|
|
28
|
+
environment: "live" | "sandbox";
|
|
29
|
+
}
|
|
30
|
+
export interface PaypalCallbackResponse {
|
|
31
|
+
accessToken: string;
|
|
32
|
+
refreshToken: string | null;
|
|
33
|
+
expiresIn: number;
|
|
34
|
+
scope: string;
|
|
35
|
+
capability: {
|
|
36
|
+
hasReporting: boolean;
|
|
37
|
+
hasIdentity: boolean;
|
|
38
|
+
};
|
|
39
|
+
identity: {
|
|
40
|
+
payerId: string;
|
|
41
|
+
emails: string[];
|
|
42
|
+
name: string | null;
|
|
43
|
+
} | null;
|
|
44
|
+
}
|
|
45
|
+
export interface PaypalTransactionDto {
|
|
46
|
+
transaction_info: {
|
|
47
|
+
transaction_id: string;
|
|
48
|
+
transaction_initiation_date: string;
|
|
49
|
+
transaction_updated_date: string | null;
|
|
50
|
+
transaction_amount: {
|
|
51
|
+
currency_code: string;
|
|
52
|
+
value: string;
|
|
53
|
+
};
|
|
54
|
+
transaction_status: string;
|
|
55
|
+
transaction_subject: string | null;
|
|
56
|
+
transaction_note: string | null;
|
|
57
|
+
};
|
|
58
|
+
payer_info?: {
|
|
59
|
+
email_address?: string;
|
|
60
|
+
payer_name?: {
|
|
61
|
+
alternate_full_name?: string;
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
shipping_info?: {
|
|
65
|
+
name?: string;
|
|
66
|
+
};
|
|
67
|
+
cart_info?: {
|
|
68
|
+
item_details?: Array<{
|
|
69
|
+
item_name?: string;
|
|
70
|
+
item_amount?: {
|
|
71
|
+
currency_code: string;
|
|
72
|
+
value: string;
|
|
73
|
+
};
|
|
74
|
+
}>;
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
export interface PaypalTransactionsResponse {
|
|
78
|
+
transactions: PaypalTransactionDto[];
|
|
79
|
+
totalItems: number;
|
|
80
|
+
totalPages: number;
|
|
81
|
+
page: number;
|
|
82
|
+
}
|
|
83
|
+
export declare class PaypalManagedClient {
|
|
84
|
+
private readonly configSource;
|
|
85
|
+
constructor(configSource?: () => ResolvedCloudConfig);
|
|
86
|
+
private requireConfig;
|
|
87
|
+
get configured(): boolean;
|
|
88
|
+
buildAuthorizeUrl(args: {
|
|
89
|
+
state: string;
|
|
90
|
+
}): Promise<PaypalAuthorizeUrlResponse>;
|
|
91
|
+
exchangeCode(args: {
|
|
92
|
+
code: string;
|
|
93
|
+
}): Promise<PaypalCallbackResponse>;
|
|
94
|
+
refreshAccessToken(args: {
|
|
95
|
+
refreshToken: string;
|
|
96
|
+
}): Promise<{
|
|
97
|
+
accessToken: string;
|
|
98
|
+
refreshToken: string | null;
|
|
99
|
+
expiresIn: number;
|
|
100
|
+
scope: string;
|
|
101
|
+
}>;
|
|
102
|
+
searchTransactions(args: {
|
|
103
|
+
accessToken: string;
|
|
104
|
+
startDate: string;
|
|
105
|
+
endDate: string;
|
|
106
|
+
page?: number;
|
|
107
|
+
}): Promise<PaypalTransactionsResponse>;
|
|
108
|
+
}
|
|
109
|
+
export {};
|
|
110
|
+
//# sourceMappingURL=paypal-managed-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paypal-managed-client.d.ts","sourceRoot":"","sources":["../../../../../../../apps/app-lifeops/src/lifeops/paypal-managed-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Milady-runtime client for Eliza Cloud's PayPal bridge endpoints.
|
|
3
|
+
*
|
|
4
|
+
* Same pattern as PlaidManagedClient: cloud holds the PAYPAL_* secrets,
|
|
5
|
+
* we just authenticate with the user's Eliza Cloud API key and forward
|
|
6
|
+
* the OAuth + Reporting API calls.
|
|
7
|
+
*
|
|
8
|
+
* The Reporting API (transaction sync) is only available to merchant-tier
|
|
9
|
+
* PayPal accounts. Personal accounts can authorize Login but the API
|
|
10
|
+
* returns 403; the cloud surfaces this as
|
|
11
|
+
* `{ error, fallback: "csv_export" }` so we can route the user to CSV
|
|
12
|
+
* import instead.
|
|
13
|
+
*/
|
|
14
|
+
import { normalizeCloudSiteUrl, resolveCloudApiBaseUrl, } from "@elizaos/agent/cloud/base-url";
|
|
15
|
+
import { loadElizaConfig } from "@elizaos/agent/config/config";
|
|
16
|
+
const PAYPAL_REQUEST_TIMEOUT_MS = 30_000;
|
|
17
|
+
export class PaypalManagedClientError extends Error {
|
|
18
|
+
status;
|
|
19
|
+
fallback;
|
|
20
|
+
constructor(status, message, fallback = null) {
|
|
21
|
+
super(message);
|
|
22
|
+
this.status = status;
|
|
23
|
+
this.fallback = fallback;
|
|
24
|
+
this.name = "PaypalManagedClientError";
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function normalizeApiKey(value) {
|
|
28
|
+
const trimmed = value?.trim();
|
|
29
|
+
if (!trimmed)
|
|
30
|
+
return null;
|
|
31
|
+
return trimmed.toUpperCase() === "[REDACTED]" ? null : trimmed;
|
|
32
|
+
}
|
|
33
|
+
function resolveCloudConfig() {
|
|
34
|
+
let configKey = null;
|
|
35
|
+
let configBase = null;
|
|
36
|
+
try {
|
|
37
|
+
const config = loadElizaConfig();
|
|
38
|
+
const cloud = config.cloud && typeof config.cloud === "object"
|
|
39
|
+
? config.cloud
|
|
40
|
+
: null;
|
|
41
|
+
if (cloud) {
|
|
42
|
+
if (typeof cloud.apiKey === "string") {
|
|
43
|
+
configKey = normalizeApiKey(cloud.apiKey);
|
|
44
|
+
}
|
|
45
|
+
if (typeof cloud.baseUrl === "string" && cloud.baseUrl.trim().length) {
|
|
46
|
+
configBase = cloud.baseUrl.trim();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
// Fall through to env.
|
|
52
|
+
}
|
|
53
|
+
const apiKey = configKey ?? normalizeApiKey(process.env.ELIZAOS_CLOUD_API_KEY);
|
|
54
|
+
const baseUrl = configBase ?? process.env.ELIZAOS_CLOUD_BASE_URL ?? undefined;
|
|
55
|
+
return {
|
|
56
|
+
configured: Boolean(apiKey),
|
|
57
|
+
apiKey,
|
|
58
|
+
apiBaseUrl: resolveCloudApiBaseUrl(baseUrl),
|
|
59
|
+
siteUrl: normalizeCloudSiteUrl(baseUrl),
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
async function readJson(response) {
|
|
63
|
+
if (!response.ok) {
|
|
64
|
+
let detail = `${response.status} ${response.statusText}`.trim();
|
|
65
|
+
let fallback = null;
|
|
66
|
+
const text = await response.text();
|
|
67
|
+
if (text.trim().length > 0) {
|
|
68
|
+
try {
|
|
69
|
+
const parsed = JSON.parse(text);
|
|
70
|
+
detail = parsed.message ?? parsed.error ?? text.slice(0, 240);
|
|
71
|
+
fallback = parsed.fallback ?? null;
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
detail = text.slice(0, 240);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
throw new PaypalManagedClientError(response.status, detail, fallback);
|
|
78
|
+
}
|
|
79
|
+
return (await response.json());
|
|
80
|
+
}
|
|
81
|
+
export class PaypalManagedClient {
|
|
82
|
+
configSource;
|
|
83
|
+
constructor(configSource = resolveCloudConfig) {
|
|
84
|
+
this.configSource = configSource;
|
|
85
|
+
}
|
|
86
|
+
requireConfig() {
|
|
87
|
+
const config = this.configSource();
|
|
88
|
+
if (!config.apiKey) {
|
|
89
|
+
throw new PaypalManagedClientError(409, "Eliza Cloud is not connected.");
|
|
90
|
+
}
|
|
91
|
+
return { ...config, apiKey: config.apiKey };
|
|
92
|
+
}
|
|
93
|
+
get configured() {
|
|
94
|
+
return this.configSource().configured;
|
|
95
|
+
}
|
|
96
|
+
async buildAuthorizeUrl(args) {
|
|
97
|
+
const config = this.requireConfig();
|
|
98
|
+
const response = await fetch(`${config.apiBaseUrl}/v1/milady/paypal/authorize`, {
|
|
99
|
+
method: "POST",
|
|
100
|
+
headers: {
|
|
101
|
+
Authorization: `Bearer ${config.apiKey}`,
|
|
102
|
+
"Content-Type": "application/json",
|
|
103
|
+
},
|
|
104
|
+
body: JSON.stringify({ state: args.state }),
|
|
105
|
+
signal: AbortSignal.timeout(PAYPAL_REQUEST_TIMEOUT_MS),
|
|
106
|
+
});
|
|
107
|
+
return readJson(response);
|
|
108
|
+
}
|
|
109
|
+
async exchangeCode(args) {
|
|
110
|
+
const config = this.requireConfig();
|
|
111
|
+
const response = await fetch(`${config.apiBaseUrl}/v1/milady/paypal/callback`, {
|
|
112
|
+
method: "POST",
|
|
113
|
+
headers: {
|
|
114
|
+
Authorization: `Bearer ${config.apiKey}`,
|
|
115
|
+
"Content-Type": "application/json",
|
|
116
|
+
},
|
|
117
|
+
body: JSON.stringify({ code: args.code }),
|
|
118
|
+
signal: AbortSignal.timeout(PAYPAL_REQUEST_TIMEOUT_MS),
|
|
119
|
+
});
|
|
120
|
+
return readJson(response);
|
|
121
|
+
}
|
|
122
|
+
async refreshAccessToken(args) {
|
|
123
|
+
const config = this.requireConfig();
|
|
124
|
+
const response = await fetch(`${config.apiBaseUrl}/v1/milady/paypal/refresh`, {
|
|
125
|
+
method: "POST",
|
|
126
|
+
headers: {
|
|
127
|
+
Authorization: `Bearer ${config.apiKey}`,
|
|
128
|
+
"Content-Type": "application/json",
|
|
129
|
+
},
|
|
130
|
+
body: JSON.stringify({ refreshToken: args.refreshToken }),
|
|
131
|
+
signal: AbortSignal.timeout(PAYPAL_REQUEST_TIMEOUT_MS),
|
|
132
|
+
});
|
|
133
|
+
return readJson(response);
|
|
134
|
+
}
|
|
135
|
+
async searchTransactions(args) {
|
|
136
|
+
const config = this.requireConfig();
|
|
137
|
+
const response = await fetch(`${config.apiBaseUrl}/v1/milady/paypal/transactions`, {
|
|
138
|
+
method: "POST",
|
|
139
|
+
headers: {
|
|
140
|
+
Authorization: `Bearer ${config.apiKey}`,
|
|
141
|
+
"Content-Type": "application/json",
|
|
142
|
+
},
|
|
143
|
+
body: JSON.stringify(args),
|
|
144
|
+
signal: AbortSignal.timeout(PAYPAL_REQUEST_TIMEOUT_MS * 2),
|
|
145
|
+
});
|
|
146
|
+
return readJson(response);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Milady-runtime client for Eliza Cloud's Plaid bridge endpoints.
|
|
3
|
+
*
|
|
4
|
+
* Pattern matches GoogleManagedClient: read the cloud apiKey from
|
|
5
|
+
* loadElizaConfig() / ELIZAOS_CLOUD_API_KEY, hit the cloud at
|
|
6
|
+
* /api/v1/milady/plaid/*, and surface a typed PlaidManagedClientError on
|
|
7
|
+
* non-2xx responses so callers can show actionable messages.
|
|
8
|
+
*
|
|
9
|
+
* The cloud API holds the long-lived Plaid `access_token` for transaction
|
|
10
|
+
* sync. The Milady runtime never sees Plaid client secrets, only the cloud
|
|
11
|
+
* api key.
|
|
12
|
+
*/
|
|
13
|
+
export declare class PlaidManagedClientError extends Error {
|
|
14
|
+
readonly status: number;
|
|
15
|
+
constructor(status: number, message: string);
|
|
16
|
+
}
|
|
17
|
+
interface ResolvedCloudConfig {
|
|
18
|
+
configured: boolean;
|
|
19
|
+
apiKey: string | null;
|
|
20
|
+
apiBaseUrl: string;
|
|
21
|
+
siteUrl: string;
|
|
22
|
+
}
|
|
23
|
+
export interface PlaidLinkTokenResponse {
|
|
24
|
+
linkToken: string;
|
|
25
|
+
expiration: string;
|
|
26
|
+
environment: "sandbox" | "development" | "production";
|
|
27
|
+
}
|
|
28
|
+
export interface PlaidExchangeResponse {
|
|
29
|
+
accessToken: string;
|
|
30
|
+
itemId: string;
|
|
31
|
+
institution: {
|
|
32
|
+
institutionId: string;
|
|
33
|
+
institutionName: string;
|
|
34
|
+
primaryAccountMask: string | null;
|
|
35
|
+
accounts: Array<{
|
|
36
|
+
accountId: string;
|
|
37
|
+
name: string;
|
|
38
|
+
mask: string | null;
|
|
39
|
+
type: string;
|
|
40
|
+
subtype: string | null;
|
|
41
|
+
}>;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export interface PlaidSyncResponse {
|
|
45
|
+
added: PlaidTransactionDto[];
|
|
46
|
+
modified: PlaidTransactionDto[];
|
|
47
|
+
removed: Array<{
|
|
48
|
+
transaction_id: string;
|
|
49
|
+
}>;
|
|
50
|
+
nextCursor: string;
|
|
51
|
+
hasMore: boolean;
|
|
52
|
+
}
|
|
53
|
+
export interface PlaidTransactionDto {
|
|
54
|
+
transaction_id: string;
|
|
55
|
+
account_id: string;
|
|
56
|
+
amount: number;
|
|
57
|
+
iso_currency_code: string | null;
|
|
58
|
+
unofficial_currency_code: string | null;
|
|
59
|
+
date: string;
|
|
60
|
+
authorized_date: string | null;
|
|
61
|
+
name: string;
|
|
62
|
+
merchant_name: string | null;
|
|
63
|
+
pending: boolean;
|
|
64
|
+
category: string[] | null;
|
|
65
|
+
personal_finance_category: {
|
|
66
|
+
primary: string;
|
|
67
|
+
detailed: string;
|
|
68
|
+
} | null;
|
|
69
|
+
}
|
|
70
|
+
export declare class PlaidManagedClient {
|
|
71
|
+
private readonly configSource;
|
|
72
|
+
constructor(configSource?: () => ResolvedCloudConfig);
|
|
73
|
+
private requireConfig;
|
|
74
|
+
get configured(): boolean;
|
|
75
|
+
createLinkToken(): Promise<PlaidLinkTokenResponse>;
|
|
76
|
+
exchangePublicToken(args: {
|
|
77
|
+
publicToken: string;
|
|
78
|
+
}): Promise<PlaidExchangeResponse>;
|
|
79
|
+
syncTransactions(args: {
|
|
80
|
+
accessToken: string;
|
|
81
|
+
cursor?: string;
|
|
82
|
+
count?: number;
|
|
83
|
+
}): Promise<PlaidSyncResponse>;
|
|
84
|
+
}
|
|
85
|
+
export {};
|
|
86
|
+
//# sourceMappingURL=plaid-managed-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plaid-managed-client.d.ts","sourceRoot":"","sources":["../../../../../../../apps/app-lifeops/src/lifeops/plaid-managed-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAUH,qBAAa,uBAAwB,SAAQ,KAAK;aAE9B,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM,EAC9B,OAAO,EAAE,MAAM;CAKlB;AAED,UAAU,mBAAmB;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AA0DD,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,SAAS,GAAG,aAAa,GAAG,YAAY,CAAC;CACvD;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE;QACX,aAAa,EAAE,MAAM,CAAC;QACtB,eAAe,EAAE,MAAM,CAAC;QACxB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,QAAQ,EAAE,KAAK,CAAC;YACd,SAAS,EAAE,MAAM,CAAC;YAClB,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;YACpB,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;SACxB,CAAC,CAAC;KACJ,CAAC;CACH;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,OAAO,EAAE,KAAK,CAAC;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC1B,yBAAyB,EAAE;QACzB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KAClB,GAAG,IAAI,CAAC;CACV;AAED,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,GAAE,MAAM,mBAAwC;IAG/E,OAAO,CAAC,aAAa;IAQrB,IAAI,UAAU,IAAI,OAAO,CAExB;IAEK,eAAe,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAiBlD,mBAAmB,CAAC,IAAI,EAAE;QAC9B,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAiB5B,gBAAgB,CAAC,IAAI,EAAE;QAC3B,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAiB/B"}
|