@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.
Files changed (1317) hide show
  1. package/dist/actions/app-block.d.ts +15 -0
  2. package/dist/actions/app-block.d.ts.map +1 -0
  3. package/dist/actions/app-block.js +349 -0
  4. package/dist/actions/app-block.js.map +1 -0
  5. package/dist/actions/autofill.d.ts +20 -0
  6. package/dist/actions/autofill.d.ts.map +1 -0
  7. package/dist/actions/autofill.js +370 -0
  8. package/dist/actions/autofill.js.map +1 -0
  9. package/dist/actions/block.d.ts +30 -0
  10. package/dist/actions/block.d.ts.map +1 -0
  11. package/dist/actions/block.js +326 -0
  12. package/dist/actions/block.js.map +1 -0
  13. package/dist/actions/book-travel.d.ts +10 -0
  14. package/dist/actions/book-travel.d.ts.map +1 -0
  15. package/dist/actions/book-travel.js +467 -0
  16. package/dist/actions/book-travel.js.map +1 -0
  17. package/dist/actions/brief.d.ts +60 -0
  18. package/dist/actions/brief.d.ts.map +1 -0
  19. package/dist/actions/brief.js +485 -0
  20. package/dist/actions/brief.js.map +1 -0
  21. package/dist/actions/calendar.d.ts +22 -0
  22. package/dist/actions/calendar.d.ts.map +1 -0
  23. package/dist/actions/calendar.js +832 -0
  24. package/dist/actions/calendar.js.map +1 -0
  25. package/dist/actions/conflict-detect.d.ts +67 -0
  26. package/dist/actions/conflict-detect.d.ts.map +1 -0
  27. package/dist/actions/conflict-detect.js +310 -0
  28. package/dist/actions/conflict-detect.js.map +1 -0
  29. package/dist/actions/connector.d.ts +5 -0
  30. package/dist/actions/connector.d.ts.map +1 -0
  31. package/dist/actions/connector.js +1354 -0
  32. package/dist/actions/connector.js.map +1 -0
  33. package/dist/actions/credentials.d.ts +14 -0
  34. package/dist/actions/credentials.d.ts.map +1 -0
  35. package/dist/actions/credentials.js +191 -0
  36. package/dist/actions/credentials.js.map +1 -0
  37. package/dist/actions/document.d.ts +36 -0
  38. package/dist/actions/document.d.ts.map +1 -0
  39. package/dist/actions/document.js +613 -0
  40. package/dist/actions/document.js.map +1 -0
  41. package/dist/actions/entity.d.ts +20 -0
  42. package/dist/actions/entity.d.ts.map +1 -0
  43. package/dist/actions/entity.js +785 -0
  44. package/dist/actions/entity.js.map +1 -0
  45. package/dist/actions/health.d.ts +4 -0
  46. package/dist/actions/health.d.ts.map +1 -0
  47. package/dist/actions/health.js +37 -0
  48. package/dist/actions/health.js.map +1 -0
  49. package/dist/actions/inbox.d.ts +12 -0
  50. package/dist/actions/inbox.d.ts.map +1 -0
  51. package/dist/actions/inbox.js +13 -0
  52. package/dist/actions/inbox.js.map +1 -0
  53. package/dist/actions/lib/calendly-handler.d.ts +3 -0
  54. package/dist/actions/lib/calendly-handler.d.ts.map +1 -0
  55. package/dist/actions/lib/calendly-handler.js +506 -0
  56. package/dist/actions/lib/calendly-handler.js.map +1 -0
  57. package/dist/actions/lib/extract-goal-plan.d.ts +69 -0
  58. package/dist/actions/lib/extract-goal-plan.d.ts.map +1 -0
  59. package/dist/actions/lib/extract-goal-plan.js +488 -0
  60. package/dist/actions/lib/extract-goal-plan.js.map +1 -0
  61. package/dist/actions/lib/extract-life-operation.d.ts +18 -0
  62. package/dist/actions/lib/extract-life-operation.d.ts.map +1 -0
  63. package/dist/actions/lib/extract-life-operation.js +318 -0
  64. package/dist/actions/lib/extract-life-operation.js.map +1 -0
  65. package/dist/actions/lib/extract-task-plan.d.ts +78 -0
  66. package/dist/actions/lib/extract-task-plan.d.ts.map +1 -0
  67. package/dist/actions/lib/extract-task-plan.js +355 -0
  68. package/dist/actions/lib/extract-task-plan.js.map +1 -0
  69. package/dist/actions/lib/extract-update-fields.d.ts +27 -0
  70. package/dist/actions/lib/extract-update-fields.d.ts.map +1 -0
  71. package/dist/actions/lib/extract-update-fields.js +172 -0
  72. package/dist/actions/lib/extract-update-fields.js.map +1 -0
  73. package/dist/actions/lib/lifeops-deferred-draft.d.ts +68 -0
  74. package/dist/actions/lib/lifeops-deferred-draft.d.ts.map +1 -0
  75. package/dist/actions/lib/lifeops-deferred-draft.js +315 -0
  76. package/dist/actions/lib/lifeops-deferred-draft.js.map +1 -0
  77. package/dist/actions/lib/messaging-helpers.d.ts +20 -0
  78. package/dist/actions/lib/messaging-helpers.d.ts.map +1 -0
  79. package/dist/actions/lib/messaging-helpers.js +103 -0
  80. package/dist/actions/lib/messaging-helpers.js.map +1 -0
  81. package/dist/actions/lib/owner-policy-writes.d.ts +49 -0
  82. package/dist/actions/lib/owner-policy-writes.d.ts.map +1 -0
  83. package/dist/actions/lib/owner-policy-writes.js +157 -0
  84. package/dist/actions/lib/owner-policy-writes.js.map +1 -0
  85. package/dist/actions/lib/prompt-format.d.ts +3 -0
  86. package/dist/actions/lib/prompt-format.d.ts.map +1 -0
  87. package/dist/actions/lib/prompt-format.js +42 -0
  88. package/dist/actions/lib/prompt-format.js.map +1 -0
  89. package/dist/actions/lib/scheduling-handler.d.ts +93 -0
  90. package/dist/actions/lib/scheduling-handler.d.ts.map +1 -0
  91. package/dist/actions/lib/scheduling-handler.js +868 -0
  92. package/dist/actions/lib/scheduling-handler.js.map +1 -0
  93. package/dist/actions/life.d.ts +13 -0
  94. package/dist/actions/life.d.ts.map +1 -0
  95. package/dist/actions/life.js +2524 -0
  96. package/dist/actions/life.js.map +1 -0
  97. package/dist/actions/money.d.ts +24 -0
  98. package/dist/actions/money.d.ts.map +1 -0
  99. package/dist/actions/money.js +41 -0
  100. package/dist/actions/money.js.map +1 -0
  101. package/dist/actions/owner-surfaces.d.ts +11 -0
  102. package/dist/actions/owner-surfaces.d.ts.map +1 -0
  103. package/dist/actions/owner-surfaces.js +493 -0
  104. package/dist/actions/owner-surfaces.js.map +1 -0
  105. package/dist/actions/password-manager.d.ts +10 -0
  106. package/dist/actions/password-manager.d.ts.map +1 -0
  107. package/dist/actions/password-manager.js +195 -0
  108. package/dist/actions/password-manager.js.map +1 -0
  109. package/dist/actions/payments.d.ts +10 -0
  110. package/dist/actions/payments.d.ts.map +1 -0
  111. package/dist/actions/payments.js +5 -0
  112. package/dist/actions/payments.js.map +1 -0
  113. package/dist/actions/prioritize.d.ts +49 -0
  114. package/dist/actions/prioritize.d.ts.map +1 -0
  115. package/dist/actions/prioritize.js +313 -0
  116. package/dist/actions/prioritize.js.map +1 -0
  117. package/dist/actions/remote-desktop.d.ts +13 -0
  118. package/dist/actions/remote-desktop.d.ts.map +1 -0
  119. package/dist/actions/remote-desktop.js +11 -0
  120. package/dist/actions/remote-desktop.js.map +1 -0
  121. package/dist/actions/resolve-request.d.ts +12 -0
  122. package/dist/actions/resolve-request.d.ts.map +1 -0
  123. package/dist/actions/resolve-request.js +427 -0
  124. package/dist/actions/resolve-request.js.map +1 -0
  125. package/dist/actions/schedule.d.ts +10 -0
  126. package/dist/actions/schedule.d.ts.map +1 -0
  127. package/dist/actions/schedule.js +113 -0
  128. package/dist/actions/schedule.js.map +1 -0
  129. package/dist/actions/scheduled-task.d.ts +32 -0
  130. package/dist/actions/scheduled-task.d.ts.map +1 -0
  131. package/dist/actions/scheduled-task.js +661 -0
  132. package/dist/actions/scheduled-task.js.map +1 -0
  133. package/dist/actions/screen-time.d.ts +4 -0
  134. package/dist/actions/screen-time.d.ts.map +1 -0
  135. package/dist/actions/screen-time.js +47 -0
  136. package/dist/actions/screen-time.js.map +1 -0
  137. package/dist/actions/subscriptions.d.ts +8 -0
  138. package/dist/actions/subscriptions.d.ts.map +1 -0
  139. package/dist/actions/subscriptions.js +327 -0
  140. package/dist/actions/subscriptions.js.map +1 -0
  141. package/dist/actions/voice-call.d.ts +16 -0
  142. package/dist/actions/voice-call.d.ts.map +1 -0
  143. package/dist/actions/voice-call.js +756 -0
  144. package/dist/actions/voice-call.js.map +1 -0
  145. package/dist/actions/website-block.d.ts +15 -0
  146. package/dist/actions/website-block.d.ts.map +1 -0
  147. package/dist/actions/website-block.js +719 -0
  148. package/dist/actions/website-block.js.map +1 -0
  149. package/dist/actions/work-thread.d.ts +5 -0
  150. package/dist/actions/work-thread.d.ts.map +1 -0
  151. package/dist/actions/work-thread.js +556 -0
  152. package/dist/actions/work-thread.js.map +1 -0
  153. package/dist/activity-profile/activity-tracker-repo.d.ts +28 -0
  154. package/dist/activity-profile/activity-tracker-repo.d.ts.map +1 -0
  155. package/dist/activity-profile/activity-tracker-repo.js +61 -0
  156. package/dist/activity-profile/activity-tracker-repo.js.map +1 -0
  157. package/dist/activity-profile/activity-tracker-reporting.d.ts +52 -0
  158. package/dist/activity-profile/activity-tracker-reporting.d.ts.map +1 -0
  159. package/dist/activity-profile/activity-tracker-reporting.js +119 -0
  160. package/dist/activity-profile/activity-tracker-reporting.js.map +1 -0
  161. package/dist/activity-profile/activity-tracker-service.d.ts +36 -0
  162. package/dist/activity-profile/activity-tracker-service.d.ts.map +1 -0
  163. package/dist/activity-profile/activity-tracker-service.js +187 -0
  164. package/dist/activity-profile/activity-tracker-service.js.map +1 -0
  165. package/dist/activity-profile/analyzer.d.ts +23 -0
  166. package/dist/activity-profile/analyzer.d.ts.map +1 -0
  167. package/dist/activity-profile/analyzer.js +485 -0
  168. package/dist/activity-profile/analyzer.js.map +1 -0
  169. package/dist/activity-profile/presence-signal-bridge-service.d.ts +14 -0
  170. package/dist/activity-profile/presence-signal-bridge-service.d.ts.map +1 -0
  171. package/dist/activity-profile/presence-signal-bridge-service.js +159 -0
  172. package/dist/activity-profile/presence-signal-bridge-service.js.map +1 -0
  173. package/dist/activity-profile/proactive-inbox-digest.d.ts +3 -0
  174. package/dist/activity-profile/proactive-inbox-digest.d.ts.map +1 -0
  175. package/dist/activity-profile/proactive-inbox-digest.js +21 -0
  176. package/dist/activity-profile/proactive-inbox-digest.js.map +1 -0
  177. package/dist/activity-profile/proactive-planner.d.ts +150 -0
  178. package/dist/activity-profile/proactive-planner.d.ts.map +1 -0
  179. package/dist/activity-profile/proactive-planner.js +529 -0
  180. package/dist/activity-profile/proactive-planner.js.map +1 -0
  181. package/dist/activity-profile/proactive-worker.d.ts +33 -0
  182. package/dist/activity-profile/proactive-worker.d.ts.map +1 -0
  183. package/dist/activity-profile/proactive-worker.js +779 -0
  184. package/dist/activity-profile/proactive-worker.js.map +1 -0
  185. package/dist/activity-profile/profile-metadata.d.ts +10 -0
  186. package/dist/activity-profile/profile-metadata.d.ts.map +1 -0
  187. package/dist/activity-profile/profile-metadata.js +16 -0
  188. package/dist/activity-profile/profile-metadata.js.map +1 -0
  189. package/dist/activity-profile/redactor.d.ts +15 -0
  190. package/dist/activity-profile/redactor.d.ts.map +1 -0
  191. package/dist/activity-profile/redactor.js +22 -0
  192. package/dist/activity-profile/redactor.js.map +1 -0
  193. package/dist/activity-profile/service.d.ts +11 -0
  194. package/dist/activity-profile/service.d.ts.map +1 -0
  195. package/dist/activity-profile/service.js +272 -0
  196. package/dist/activity-profile/service.js.map +1 -0
  197. package/dist/activity-profile/types.d.ts +97 -0
  198. package/dist/activity-profile/types.d.ts.map +1 -0
  199. package/dist/activity-profile/types.js +36 -0
  200. package/dist/activity-profile/types.js.map +1 -0
  201. package/dist/agent-lifeops.d.ts +2 -0
  202. package/dist/agent-lifeops.d.ts.map +1 -0
  203. package/dist/agent-lifeops.js +2 -0
  204. package/dist/agent-lifeops.js.map +1 -0
  205. package/dist/api/client-lifeops.d.ts +319 -0
  206. package/dist/api/client-lifeops.d.ts.map +1 -0
  207. package/dist/api/client-lifeops.js +794 -0
  208. package/dist/api/client-lifeops.js.map +1 -0
  209. package/dist/automation-node-contributor.d.ts +2 -0
  210. package/dist/automation-node-contributor.d.ts.map +1 -0
  211. package/dist/automation-node-contributor.js +184 -0
  212. package/dist/automation-node-contributor.js.map +1 -0
  213. package/dist/client.d.ts +16 -0
  214. package/dist/client.d.ts.map +1 -0
  215. package/dist/client.js +18 -0
  216. package/dist/client.js.map +1 -0
  217. package/dist/components/AppBlockerSettingsCard.d.ts +3 -0
  218. package/dist/components/AppBlockerSettingsCard.d.ts.map +1 -0
  219. package/dist/components/AppBlockerSettingsCard.js +538 -0
  220. package/dist/components/AppBlockerSettingsCard.js.map +1 -0
  221. package/dist/components/WebsiteBlockerSettingsCard.d.ts +3 -0
  222. package/dist/components/WebsiteBlockerSettingsCard.d.ts.map +1 -0
  223. package/dist/components/WebsiteBlockerSettingsCard.js +148 -0
  224. package/dist/components/WebsiteBlockerSettingsCard.js.map +1 -0
  225. package/dist/contracts/index.d.ts +2 -0
  226. package/dist/contracts/index.d.ts.map +1 -0
  227. package/dist/contracts/index.js +2 -0
  228. package/dist/contracts/index.js.map +1 -0
  229. package/dist/contracts/lifeops.d.ts +2 -0
  230. package/dist/contracts/lifeops.d.ts.map +1 -0
  231. package/dist/contracts/lifeops.js +2 -0
  232. package/dist/contracts/lifeops.js.map +1 -0
  233. package/dist/default-packs/autofill-whitelist-pack.d.ts +17 -0
  234. package/dist/default-packs/autofill-whitelist-pack.d.ts.map +1 -0
  235. package/dist/default-packs/autofill-whitelist-pack.js +56 -0
  236. package/dist/default-packs/autofill-whitelist-pack.js.map +1 -0
  237. package/dist/default-packs/consolidation-policies.d.ts +14 -0
  238. package/dist/default-packs/consolidation-policies.d.ts.map +1 -0
  239. package/dist/default-packs/consolidation-policies.js +17 -0
  240. package/dist/default-packs/consolidation-policies.js.map +1 -0
  241. package/dist/default-packs/contract-types.d.ts +200 -0
  242. package/dist/default-packs/contract-types.d.ts.map +1 -0
  243. package/dist/default-packs/contract-types.js +1 -0
  244. package/dist/default-packs/contract-types.js.map +1 -0
  245. package/dist/default-packs/daily-rhythm.d.ts +28 -0
  246. package/dist/default-packs/daily-rhythm.d.ts.map +1 -0
  247. package/dist/default-packs/daily-rhythm.js +136 -0
  248. package/dist/default-packs/daily-rhythm.js.map +1 -0
  249. package/dist/default-packs/escalation-ladders.d.ts +18 -0
  250. package/dist/default-packs/escalation-ladders.d.ts.map +1 -0
  251. package/dist/default-packs/escalation-ladders.js +17 -0
  252. package/dist/default-packs/escalation-ladders.js.map +1 -0
  253. package/dist/default-packs/executive-assistant.d.ts +50 -0
  254. package/dist/default-packs/executive-assistant.d.ts.map +1 -0
  255. package/dist/default-packs/executive-assistant.js +745 -0
  256. package/dist/default-packs/executive-assistant.js.map +1 -0
  257. package/dist/default-packs/followup-starter.d.ts +49 -0
  258. package/dist/default-packs/followup-starter.d.ts.map +1 -0
  259. package/dist/default-packs/followup-starter.js +104 -0
  260. package/dist/default-packs/followup-starter.js.map +1 -0
  261. package/dist/default-packs/habit-starters.d.ts +37 -0
  262. package/dist/default-packs/habit-starters.d.ts.map +1 -0
  263. package/dist/default-packs/habit-starters.js +255 -0
  264. package/dist/default-packs/habit-starters.js.map +1 -0
  265. package/dist/default-packs/inbox-triage-starter.d.ts +23 -0
  266. package/dist/default-packs/inbox-triage-starter.d.ts.map +1 -0
  267. package/dist/default-packs/inbox-triage-starter.js +61 -0
  268. package/dist/default-packs/inbox-triage-starter.js.map +1 -0
  269. package/dist/default-packs/index.d.ts +54 -0
  270. package/dist/default-packs/index.d.ts.map +1 -0
  271. package/dist/default-packs/index.js +150 -0
  272. package/dist/default-packs/index.js.map +1 -0
  273. package/dist/default-packs/lint.d.ts +62 -0
  274. package/dist/default-packs/lint.d.ts.map +1 -0
  275. package/dist/default-packs/lint.js +161 -0
  276. package/dist/default-packs/lint.js.map +1 -0
  277. package/dist/default-packs/morning-brief.d.ts +44 -0
  278. package/dist/default-packs/morning-brief.d.ts.map +1 -0
  279. package/dist/default-packs/morning-brief.js +69 -0
  280. package/dist/default-packs/morning-brief.js.map +1 -0
  281. package/dist/default-packs/quiet-user-watcher.d.ts +49 -0
  282. package/dist/default-packs/quiet-user-watcher.d.ts.map +1 -0
  283. package/dist/default-packs/quiet-user-watcher.js +92 -0
  284. package/dist/default-packs/quiet-user-watcher.js.map +1 -0
  285. package/dist/default-packs/registry-types.d.ts +51 -0
  286. package/dist/default-packs/registry-types.d.ts.map +1 -0
  287. package/dist/default-packs/registry-types.js +1 -0
  288. package/dist/default-packs/registry-types.js.map +1 -0
  289. package/dist/default-packs/task-definitions.d.ts +88 -0
  290. package/dist/default-packs/task-definitions.d.ts.map +1 -0
  291. package/dist/default-packs/task-definitions.js +87 -0
  292. package/dist/default-packs/task-definitions.js.map +1 -0
  293. package/dist/events/index.d.ts +34 -0
  294. package/dist/events/index.d.ts.map +1 -0
  295. package/dist/events/index.js +30 -0
  296. package/dist/events/index.js.map +1 -0
  297. package/dist/followup/actions/listOverdueFollowups.d.ts +3 -0
  298. package/dist/followup/actions/listOverdueFollowups.d.ts.map +1 -0
  299. package/dist/followup/actions/listOverdueFollowups.js +90 -0
  300. package/dist/followup/actions/listOverdueFollowups.js.map +1 -0
  301. package/dist/followup/actions/markFollowupDone.d.ts +3 -0
  302. package/dist/followup/actions/markFollowupDone.d.ts.map +1 -0
  303. package/dist/followup/actions/markFollowupDone.js +171 -0
  304. package/dist/followup/actions/markFollowupDone.js.map +1 -0
  305. package/dist/followup/actions/setFollowupThreshold.d.ts +3 -0
  306. package/dist/followup/actions/setFollowupThreshold.d.ts.map +1 -0
  307. package/dist/followup/actions/setFollowupThreshold.js +171 -0
  308. package/dist/followup/actions/setFollowupThreshold.js.map +1 -0
  309. package/dist/followup/followup-tracker.d.ts +83 -0
  310. package/dist/followup/followup-tracker.d.ts.map +1 -0
  311. package/dist/followup/followup-tracker.js +311 -0
  312. package/dist/followup/followup-tracker.js.map +1 -0
  313. package/dist/followup/index.d.ts +5 -0
  314. package/dist/followup/index.d.ts.map +1 -0
  315. package/dist/followup/index.js +39 -0
  316. package/dist/followup/index.js.map +1 -0
  317. package/dist/hooks/connector-error.d.ts +2 -0
  318. package/dist/hooks/connector-error.d.ts.map +1 -0
  319. package/dist/hooks/connector-error.js +13 -0
  320. package/dist/hooks/connector-error.js.map +1 -0
  321. package/dist/hooks/useDiscordConnector.d.ts +11 -0
  322. package/dist/hooks/useDiscordConnector.d.ts.map +1 -0
  323. package/dist/hooks/useDiscordConnector.js +95 -0
  324. package/dist/hooks/useDiscordConnector.js.map +1 -0
  325. package/dist/hooks/useGoogleLifeOpsConnector.d.ts +23 -0
  326. package/dist/hooks/useGoogleLifeOpsConnector.d.ts.map +1 -0
  327. package/dist/hooks/useGoogleLifeOpsConnector.js +630 -0
  328. package/dist/hooks/useGoogleLifeOpsConnector.js.map +1 -0
  329. package/dist/hooks/useIMessageConnector.d.ts +10 -0
  330. package/dist/hooks/useIMessageConnector.d.ts.map +1 -0
  331. package/dist/hooks/useIMessageConnector.js +57 -0
  332. package/dist/hooks/useIMessageConnector.js.map +1 -0
  333. package/dist/hooks/useInbox.d.ts +36 -0
  334. package/dist/hooks/useInbox.d.ts.map +1 -0
  335. package/dist/hooks/useInbox.js +96 -0
  336. package/dist/hooks/useInbox.js.map +1 -0
  337. package/dist/hooks/useLifeOpsActivitySignals.d.ts +2 -0
  338. package/dist/hooks/useLifeOpsActivitySignals.d.ts.map +1 -0
  339. package/dist/hooks/useLifeOpsActivitySignals.js +358 -0
  340. package/dist/hooks/useLifeOpsActivitySignals.js.map +1 -0
  341. package/dist/hooks/useLifeOpsAppState.d.ts +9 -0
  342. package/dist/hooks/useLifeOpsAppState.d.ts.map +1 -0
  343. package/dist/hooks/useLifeOpsAppState.js +79 -0
  344. package/dist/hooks/useLifeOpsAppState.js.map +1 -0
  345. package/dist/hooks/useLifeOpsCapabilitiesStatus.d.ts +8 -0
  346. package/dist/hooks/useLifeOpsCapabilitiesStatus.d.ts.map +1 -0
  347. package/dist/hooks/useLifeOpsCapabilitiesStatus.js +60 -0
  348. package/dist/hooks/useLifeOpsCapabilitiesStatus.js.map +1 -0
  349. package/dist/hooks/useLifeOpsXConnector.d.ts +11 -0
  350. package/dist/hooks/useLifeOpsXConnector.d.ts.map +1 -0
  351. package/dist/hooks/useLifeOpsXConnector.js +92 -0
  352. package/dist/hooks/useLifeOpsXConnector.js.map +1 -0
  353. package/dist/hooks/useSignalConnector.d.ts +14 -0
  354. package/dist/hooks/useSignalConnector.d.ts.map +1 -0
  355. package/dist/hooks/useSignalConnector.js +89 -0
  356. package/dist/hooks/useSignalConnector.js.map +1 -0
  357. package/dist/hooks/useTelegramConnector.d.ts +14 -0
  358. package/dist/hooks/useTelegramConnector.d.ts.map +1 -0
  359. package/dist/hooks/useTelegramConnector.js +97 -0
  360. package/dist/hooks/useTelegramConnector.js.map +1 -0
  361. package/dist/hooks/useWhatsAppConnector.d.ts +8 -0
  362. package/dist/hooks/useWhatsAppConnector.d.ts.map +1 -0
  363. package/dist/hooks/useWhatsAppConnector.js +62 -0
  364. package/dist/hooks/useWhatsAppConnector.js.map +1 -0
  365. package/dist/inbox/message-fetcher.d.ts +11 -0
  366. package/dist/inbox/message-fetcher.d.ts.map +1 -0
  367. package/dist/inbox/message-fetcher.js +13 -0
  368. package/dist/inbox/message-fetcher.js.map +1 -0
  369. package/dist/inbox/repository.d.ts +11 -0
  370. package/dist/inbox/repository.d.ts.map +1 -0
  371. package/dist/inbox/repository.js +5 -0
  372. package/dist/inbox/repository.js.map +1 -0
  373. package/dist/inbox/types.d.ts +10 -0
  374. package/dist/inbox/types.d.ts.map +1 -0
  375. package/dist/inbox/types.js +2 -0
  376. package/dist/inbox/types.js.map +1 -0
  377. package/dist/index.d.ts +36 -0
  378. package/dist/index.d.ts.map +1 -0
  379. package/dist/index.js +188 -0
  380. package/dist/index.js.map +1 -0
  381. package/dist/lifeops/access.d.ts +29 -0
  382. package/dist/lifeops/access.d.ts.map +1 -0
  383. package/dist/lifeops/access.js +56 -0
  384. package/dist/lifeops/access.js.map +1 -0
  385. package/dist/lifeops/app-state.d.ts +22 -0
  386. package/dist/lifeops/app-state.d.ts.map +1 -0
  387. package/dist/lifeops/app-state.js +67 -0
  388. package/dist/lifeops/app-state.js.map +1 -0
  389. package/dist/lifeops/apple-reminders.d.ts +67 -0
  390. package/dist/lifeops/apple-reminders.d.ts.map +1 -0
  391. package/dist/lifeops/apple-reminders.js +396 -0
  392. package/dist/lifeops/apple-reminders.js.map +1 -0
  393. package/dist/lifeops/approval-queue.d.ts +38 -0
  394. package/dist/lifeops/approval-queue.d.ts.map +1 -0
  395. package/dist/lifeops/approval-queue.js +575 -0
  396. package/dist/lifeops/approval-queue.js.map +1 -0
  397. package/dist/lifeops/approval-queue.types.d.ts +172 -0
  398. package/dist/lifeops/approval-queue.types.d.ts.map +1 -0
  399. package/dist/lifeops/approval-queue.types.js +27 -0
  400. package/dist/lifeops/approval-queue.types.js.map +1 -0
  401. package/dist/lifeops/autofill-whitelist.d.ts +20 -0
  402. package/dist/lifeops/autofill-whitelist.d.ts.map +1 -0
  403. package/dist/lifeops/autofill-whitelist.js +59 -0
  404. package/dist/lifeops/autofill-whitelist.js.map +1 -0
  405. package/dist/lifeops/background-planner-dispatch.d.ts +60 -0
  406. package/dist/lifeops/background-planner-dispatch.d.ts.map +1 -0
  407. package/dist/lifeops/background-planner-dispatch.js +113 -0
  408. package/dist/lifeops/background-planner-dispatch.js.map +1 -0
  409. package/dist/lifeops/background-planner.d.ts +140 -0
  410. package/dist/lifeops/background-planner.d.ts.map +1 -0
  411. package/dist/lifeops/background-planner.js +359 -0
  412. package/dist/lifeops/background-planner.js.map +1 -0
  413. package/dist/lifeops/bill-extraction.d.ts +46 -0
  414. package/dist/lifeops/bill-extraction.d.ts.map +1 -0
  415. package/dist/lifeops/bill-extraction.js +325 -0
  416. package/dist/lifeops/bill-extraction.js.map +1 -0
  417. package/dist/lifeops/browser-constants.d.ts +4 -0
  418. package/dist/lifeops/browser-constants.d.ts.map +1 -0
  419. package/dist/lifeops/browser-constants.js +27 -0
  420. package/dist/lifeops/browser-constants.js.map +1 -0
  421. package/dist/lifeops/browser-extension-store.d.ts +61 -0
  422. package/dist/lifeops/browser-extension-store.d.ts.map +1 -0
  423. package/dist/lifeops/browser-extension-store.js +176 -0
  424. package/dist/lifeops/browser-extension-store.js.map +1 -0
  425. package/dist/lifeops/browser-session-lifecycle.d.ts +57 -0
  426. package/dist/lifeops/browser-session-lifecycle.d.ts.map +1 -0
  427. package/dist/lifeops/browser-session-lifecycle.js +308 -0
  428. package/dist/lifeops/browser-session-lifecycle.js.map +1 -0
  429. package/dist/lifeops/bulk-review.d.ts +333 -0
  430. package/dist/lifeops/bulk-review.d.ts.map +1 -0
  431. package/dist/lifeops/bulk-review.js +1120 -0
  432. package/dist/lifeops/bulk-review.js.map +1 -0
  433. package/dist/lifeops/calendar-gate.d.ts +20 -0
  434. package/dist/lifeops/calendar-gate.d.ts.map +1 -0
  435. package/dist/lifeops/calendar-gate.js +30 -0
  436. package/dist/lifeops/calendar-gate.js.map +1 -0
  437. package/dist/lifeops/channels/contract.d.ts +47 -0
  438. package/dist/lifeops/channels/contract.d.ts.map +1 -0
  439. package/dist/lifeops/channels/contract.js +1 -0
  440. package/dist/lifeops/channels/contract.js.map +1 -0
  441. package/dist/lifeops/channels/default-pack.d.ts +26 -0
  442. package/dist/lifeops/channels/default-pack.d.ts.map +1 -0
  443. package/dist/lifeops/channels/default-pack.js +243 -0
  444. package/dist/lifeops/channels/default-pack.js.map +1 -0
  445. package/dist/lifeops/channels/index.d.ts +5 -0
  446. package/dist/lifeops/channels/index.d.ts.map +1 -0
  447. package/dist/lifeops/channels/index.js +23 -0
  448. package/dist/lifeops/channels/index.js.map +1 -0
  449. package/dist/lifeops/channels/priority-posture.d.ts +36 -0
  450. package/dist/lifeops/channels/priority-posture.d.ts.map +1 -0
  451. package/dist/lifeops/channels/priority-posture.js +27 -0
  452. package/dist/lifeops/channels/priority-posture.js.map +1 -0
  453. package/dist/lifeops/channels/registry.d.ts +7 -0
  454. package/dist/lifeops/channels/registry.d.ts.map +1 -0
  455. package/dist/lifeops/channels/registry.js +49 -0
  456. package/dist/lifeops/channels/registry.js.map +1 -0
  457. package/dist/lifeops/checkin/checkin-service.d.ts +66 -0
  458. package/dist/lifeops/checkin/checkin-service.d.ts.map +1 -0
  459. package/dist/lifeops/checkin/checkin-service.js +1084 -0
  460. package/dist/lifeops/checkin/checkin-service.js.map +1 -0
  461. package/dist/lifeops/checkin/schedule-resolver.d.ts +17 -0
  462. package/dist/lifeops/checkin/schedule-resolver.d.ts.map +1 -0
  463. package/dist/lifeops/checkin/schedule-resolver.js +26 -0
  464. package/dist/lifeops/checkin/schedule-resolver.js.map +1 -0
  465. package/dist/lifeops/checkin/types.d.ts +106 -0
  466. package/dist/lifeops/checkin/types.d.ts.map +1 -0
  467. package/dist/lifeops/checkin/types.js +1 -0
  468. package/dist/lifeops/checkin/types.js.map +1 -0
  469. package/dist/lifeops/connectors/_helpers.d.ts +51 -0
  470. package/dist/lifeops/connectors/_helpers.d.ts.map +1 -0
  471. package/dist/lifeops/connectors/_helpers.js +104 -0
  472. package/dist/lifeops/connectors/_helpers.js.map +1 -0
  473. package/dist/lifeops/connectors/calendly.d.ts +11 -0
  474. package/dist/lifeops/connectors/calendly.d.ts.map +1 -0
  475. package/dist/lifeops/connectors/calendly.js +61 -0
  476. package/dist/lifeops/connectors/calendly.js.map +1 -0
  477. package/dist/lifeops/connectors/contract.d.ts +88 -0
  478. package/dist/lifeops/connectors/contract.d.ts.map +1 -0
  479. package/dist/lifeops/connectors/contract.js +1 -0
  480. package/dist/lifeops/connectors/contract.js.map +1 -0
  481. package/dist/lifeops/connectors/default-pack.d.ts +35 -0
  482. package/dist/lifeops/connectors/default-pack.d.ts.map +1 -0
  483. package/dist/lifeops/connectors/default-pack.js +37 -0
  484. package/dist/lifeops/connectors/default-pack.js.map +1 -0
  485. package/dist/lifeops/connectors/discord.d.ts +8 -0
  486. package/dist/lifeops/connectors/discord.d.ts.map +1 -0
  487. package/dist/lifeops/connectors/discord.js +53 -0
  488. package/dist/lifeops/connectors/discord.js.map +1 -0
  489. package/dist/lifeops/connectors/dispatch-policy.d.ts +75 -0
  490. package/dist/lifeops/connectors/dispatch-policy.d.ts.map +1 -0
  491. package/dist/lifeops/connectors/dispatch-policy.js +35 -0
  492. package/dist/lifeops/connectors/dispatch-policy.js.map +1 -0
  493. package/dist/lifeops/connectors/duffel.d.ts +11 -0
  494. package/dist/lifeops/connectors/duffel.d.ts.map +1 -0
  495. package/dist/lifeops/connectors/duffel.js +74 -0
  496. package/dist/lifeops/connectors/duffel.js.map +1 -0
  497. package/dist/lifeops/connectors/google.d.ts +27 -0
  498. package/dist/lifeops/connectors/google.d.ts.map +1 -0
  499. package/dist/lifeops/connectors/google.js +80 -0
  500. package/dist/lifeops/connectors/google.js.map +1 -0
  501. package/dist/lifeops/connectors/imessage.d.ts +11 -0
  502. package/dist/lifeops/connectors/imessage.d.ts.map +1 -0
  503. package/dist/lifeops/connectors/imessage.js +55 -0
  504. package/dist/lifeops/connectors/imessage.js.map +1 -0
  505. package/dist/lifeops/connectors/index.d.ts +5 -0
  506. package/dist/lifeops/connectors/index.d.ts.map +1 -0
  507. package/dist/lifeops/connectors/index.js +23 -0
  508. package/dist/lifeops/connectors/index.js.map +1 -0
  509. package/dist/lifeops/connectors/mockoon-redirect.d.ts +54 -0
  510. package/dist/lifeops/connectors/mockoon-redirect.d.ts.map +1 -0
  511. package/dist/lifeops/connectors/mockoon-redirect.js +71 -0
  512. package/dist/lifeops/connectors/mockoon-redirect.js.map +1 -0
  513. package/dist/lifeops/connectors/registry.d.ts +7 -0
  514. package/dist/lifeops/connectors/registry.d.ts.map +1 -0
  515. package/dist/lifeops/connectors/registry.js +55 -0
  516. package/dist/lifeops/connectors/registry.js.map +1 -0
  517. package/dist/lifeops/connectors/signal.d.ts +8 -0
  518. package/dist/lifeops/connectors/signal.d.ts.map +1 -0
  519. package/dist/lifeops/connectors/signal.js +60 -0
  520. package/dist/lifeops/connectors/signal.js.map +1 -0
  521. package/dist/lifeops/connectors/telegram.d.ts +12 -0
  522. package/dist/lifeops/connectors/telegram.d.ts.map +1 -0
  523. package/dist/lifeops/connectors/telegram.js +65 -0
  524. package/dist/lifeops/connectors/telegram.js.map +1 -0
  525. package/dist/lifeops/connectors/twilio.d.ts +15 -0
  526. package/dist/lifeops/connectors/twilio.d.ts.map +1 -0
  527. package/dist/lifeops/connectors/twilio.js +126 -0
  528. package/dist/lifeops/connectors/twilio.js.map +1 -0
  529. package/dist/lifeops/connectors/whatsapp.d.ts +10 -0
  530. package/dist/lifeops/connectors/whatsapp.d.ts.map +1 -0
  531. package/dist/lifeops/connectors/whatsapp.js +56 -0
  532. package/dist/lifeops/connectors/whatsapp.js.map +1 -0
  533. package/dist/lifeops/connectors/x.d.ts +8 -0
  534. package/dist/lifeops/connectors/x.d.ts.map +1 -0
  535. package/dist/lifeops/connectors/x.js +62 -0
  536. package/dist/lifeops/connectors/x.js.map +1 -0
  537. package/dist/lifeops/contact-route-policy.d.ts +27 -0
  538. package/dist/lifeops/contact-route-policy.d.ts.map +1 -0
  539. package/dist/lifeops/contact-route-policy.js +153 -0
  540. package/dist/lifeops/contact-route-policy.js.map +1 -0
  541. package/dist/lifeops/continuity-probe.d.ts +49 -0
  542. package/dist/lifeops/continuity-probe.d.ts.map +1 -0
  543. package/dist/lifeops/continuity-probe.js +161 -0
  544. package/dist/lifeops/continuity-probe.js.map +1 -0
  545. package/dist/lifeops/cross-channel-search.d.ts +108 -0
  546. package/dist/lifeops/cross-channel-search.d.ts.map +1 -0
  547. package/dist/lifeops/cross-channel-search.js +888 -0
  548. package/dist/lifeops/cross-channel-search.js.map +1 -0
  549. package/dist/lifeops/defaults.d.ts +30 -0
  550. package/dist/lifeops/defaults.d.ts.map +1 -0
  551. package/dist/lifeops/defaults.js +206 -0
  552. package/dist/lifeops/defaults.js.map +1 -0
  553. package/dist/lifeops/device-bus-service.d.ts +16 -0
  554. package/dist/lifeops/device-bus-service.d.ts.map +1 -0
  555. package/dist/lifeops/device-bus-service.js +20 -0
  556. package/dist/lifeops/device-bus-service.js.map +1 -0
  557. package/dist/lifeops/device-identity.d.ts +31 -0
  558. package/dist/lifeops/device-identity.d.ts.map +1 -0
  559. package/dist/lifeops/device-identity.js +94 -0
  560. package/dist/lifeops/device-identity.js.map +1 -0
  561. package/dist/lifeops/document-review.d.ts +264 -0
  562. package/dist/lifeops/document-review.d.ts.map +1 -0
  563. package/dist/lifeops/document-review.js +925 -0
  564. package/dist/lifeops/document-review.js.map +1 -0
  565. package/dist/lifeops/email-classifier.d.ts +9 -0
  566. package/dist/lifeops/email-classifier.d.ts.map +1 -0
  567. package/dist/lifeops/email-classifier.js +15 -0
  568. package/dist/lifeops/email-classifier.js.map +1 -0
  569. package/dist/lifeops/email-curation.d.ts +13 -0
  570. package/dist/lifeops/email-curation.d.ts.map +1 -0
  571. package/dist/lifeops/email-curation.js +2 -0
  572. package/dist/lifeops/email-curation.js.map +1 -0
  573. package/dist/lifeops/email-unsubscribe-types.d.ts +7 -0
  574. package/dist/lifeops/email-unsubscribe-types.d.ts.map +1 -0
  575. package/dist/lifeops/email-unsubscribe-types.js +1 -0
  576. package/dist/lifeops/email-unsubscribe-types.js.map +1 -0
  577. package/dist/lifeops/enforcement-windows.d.ts +34 -0
  578. package/dist/lifeops/enforcement-windows.d.ts.map +1 -0
  579. package/dist/lifeops/enforcement-windows.js +80 -0
  580. package/dist/lifeops/enforcement-windows.js.map +1 -0
  581. package/dist/lifeops/engine.d.ts +8 -0
  582. package/dist/lifeops/engine.d.ts.map +1 -0
  583. package/dist/lifeops/engine.js +540 -0
  584. package/dist/lifeops/engine.js.map +1 -0
  585. package/dist/lifeops/entities/index.d.ts +4 -0
  586. package/dist/lifeops/entities/index.d.ts.map +1 -0
  587. package/dist/lifeops/entities/index.js +29 -0
  588. package/dist/lifeops/entities/index.js.map +1 -0
  589. package/dist/lifeops/entities/merge.d.ts +9 -0
  590. package/dist/lifeops/entities/merge.d.ts.map +1 -0
  591. package/dist/lifeops/entities/merge.js +17 -0
  592. package/dist/lifeops/entities/merge.js.map +1 -0
  593. package/dist/lifeops/entities/store.d.ts +13 -0
  594. package/dist/lifeops/entities/store.d.ts.map +1 -0
  595. package/dist/lifeops/entities/store.js +7 -0
  596. package/dist/lifeops/entities/store.js.map +1 -0
  597. package/dist/lifeops/entities/types.d.ts +9 -0
  598. package/dist/lifeops/entities/types.d.ts.map +1 -0
  599. package/dist/lifeops/entities/types.js +13 -0
  600. package/dist/lifeops/entities/types.js.map +1 -0
  601. package/dist/lifeops/entities/voice-attribution.d.ts +70 -0
  602. package/dist/lifeops/entities/voice-attribution.d.ts.map +1 -0
  603. package/dist/lifeops/entities/voice-attribution.js +121 -0
  604. package/dist/lifeops/entities/voice-attribution.js.map +1 -0
  605. package/dist/lifeops/entities/voice-observer-bridge.d.ts +32 -0
  606. package/dist/lifeops/entities/voice-observer-bridge.d.ts.map +1 -0
  607. package/dist/lifeops/entities/voice-observer-bridge.js +68 -0
  608. package/dist/lifeops/entities/voice-observer-bridge.js.map +1 -0
  609. package/dist/lifeops/entities/voice-observer.d.ts +72 -0
  610. package/dist/lifeops/entities/voice-observer.d.ts.map +1 -0
  611. package/dist/lifeops/entities/voice-observer.js +97 -0
  612. package/dist/lifeops/entities/voice-observer.js.map +1 -0
  613. package/dist/lifeops/escalation-ladders.d.ts +28 -0
  614. package/dist/lifeops/escalation-ladders.d.ts.map +1 -0
  615. package/dist/lifeops/escalation-ladders.js +17 -0
  616. package/dist/lifeops/escalation-ladders.js.map +1 -0
  617. package/dist/lifeops/fda-probe.d.ts +23 -0
  618. package/dist/lifeops/fda-probe.d.ts.map +1 -0
  619. package/dist/lifeops/fda-probe.js +59 -0
  620. package/dist/lifeops/fda-probe.js.map +1 -0
  621. package/dist/lifeops/feature-flags.d.ts +24 -0
  622. package/dist/lifeops/feature-flags.d.ts.map +1 -0
  623. package/dist/lifeops/feature-flags.js +261 -0
  624. package/dist/lifeops/feature-flags.js.map +1 -0
  625. package/dist/lifeops/feature-flags.types.d.ts +156 -0
  626. package/dist/lifeops/feature-flags.types.d.ts.map +1 -0
  627. package/dist/lifeops/feature-flags.types.js +129 -0
  628. package/dist/lifeops/feature-flags.types.js.map +1 -0
  629. package/dist/lifeops/first-run/defaults.d.ts +57 -0
  630. package/dist/lifeops/first-run/defaults.d.ts.map +1 -0
  631. package/dist/lifeops/first-run/defaults.js +159 -0
  632. package/dist/lifeops/first-run/defaults.js.map +1 -0
  633. package/dist/lifeops/first-run/questions.d.ts +74 -0
  634. package/dist/lifeops/first-run/questions.d.ts.map +1 -0
  635. package/dist/lifeops/first-run/questions.js +184 -0
  636. package/dist/lifeops/first-run/questions.js.map +1 -0
  637. package/dist/lifeops/first-run/replay.d.ts +41 -0
  638. package/dist/lifeops/first-run/replay.d.ts.map +1 -0
  639. package/dist/lifeops/first-run/replay.js +34 -0
  640. package/dist/lifeops/first-run/replay.js.map +1 -0
  641. package/dist/lifeops/first-run/service.d.ts +147 -0
  642. package/dist/lifeops/first-run/service.d.ts.map +1 -0
  643. package/dist/lifeops/first-run/service.js +455 -0
  644. package/dist/lifeops/first-run/service.js.map +1 -0
  645. package/dist/lifeops/first-run/state.d.ts +36 -0
  646. package/dist/lifeops/first-run/state.d.ts.map +1 -0
  647. package/dist/lifeops/first-run/state.js +128 -0
  648. package/dist/lifeops/first-run/state.js.map +1 -0
  649. package/dist/lifeops/global-pause/store.d.ts +22 -0
  650. package/dist/lifeops/global-pause/store.d.ts.map +1 -0
  651. package/dist/lifeops/global-pause/store.js +18 -0
  652. package/dist/lifeops/global-pause/store.js.map +1 -0
  653. package/dist/lifeops/goal-grounding.d.ts +9 -0
  654. package/dist/lifeops/goal-grounding.d.ts.map +1 -0
  655. package/dist/lifeops/goal-grounding.js +19 -0
  656. package/dist/lifeops/goal-grounding.js.map +1 -0
  657. package/dist/lifeops/goal-semantic-evaluator.d.ts +8 -0
  658. package/dist/lifeops/goal-semantic-evaluator.d.ts.map +1 -0
  659. package/dist/lifeops/goal-semantic-evaluator.js +7 -0
  660. package/dist/lifeops/goal-semantic-evaluator.js.map +1 -0
  661. package/dist/lifeops/google/format-helpers.d.ts +63 -0
  662. package/dist/lifeops/google/format-helpers.d.ts.map +1 -0
  663. package/dist/lifeops/google/format-helpers.js +597 -0
  664. package/dist/lifeops/google/format-helpers.js.map +1 -0
  665. package/dist/lifeops/google-plugin-delegates.d.ts +59 -0
  666. package/dist/lifeops/google-plugin-delegates.d.ts.map +1 -0
  667. package/dist/lifeops/google-plugin-delegates.js +408 -0
  668. package/dist/lifeops/google-plugin-delegates.js.map +1 -0
  669. package/dist/lifeops/google-scopes.d.ts +15 -0
  670. package/dist/lifeops/google-scopes.d.ts.map +1 -0
  671. package/dist/lifeops/google-scopes.js +118 -0
  672. package/dist/lifeops/google-scopes.js.map +1 -0
  673. package/dist/lifeops/handoff/store.d.ts +23 -0
  674. package/dist/lifeops/handoff/store.d.ts.map +1 -0
  675. package/dist/lifeops/handoff/store.js +20 -0
  676. package/dist/lifeops/handoff/store.js.map +1 -0
  677. package/dist/lifeops/i18n/localized-examples-provider.d.ts +16 -0
  678. package/dist/lifeops/i18n/localized-examples-provider.d.ts.map +1 -0
  679. package/dist/lifeops/i18n/localized-examples-provider.js +33 -0
  680. package/dist/lifeops/i18n/localized-examples-provider.js.map +1 -0
  681. package/dist/lifeops/i18n/localized-examples-resolver.d.ts +32 -0
  682. package/dist/lifeops/i18n/localized-examples-resolver.d.ts.map +1 -0
  683. package/dist/lifeops/i18n/localized-examples-resolver.js +28 -0
  684. package/dist/lifeops/i18n/localized-examples-resolver.js.map +1 -0
  685. package/dist/lifeops/i18n/prompt-registry.d.ts +64 -0
  686. package/dist/lifeops/i18n/prompt-registry.d.ts.map +1 -0
  687. package/dist/lifeops/i18n/prompt-registry.js +283 -0
  688. package/dist/lifeops/i18n/prompt-registry.js.map +1 -0
  689. package/dist/lifeops/imessage-outbound-probe.d.ts +7 -0
  690. package/dist/lifeops/imessage-outbound-probe.d.ts.map +1 -0
  691. package/dist/lifeops/imessage-outbound-probe.js +81 -0
  692. package/dist/lifeops/imessage-outbound-probe.js.map +1 -0
  693. package/dist/lifeops/index.d.ts +24 -0
  694. package/dist/lifeops/index.d.ts.map +1 -0
  695. package/dist/lifeops/index.js +24 -0
  696. package/dist/lifeops/index.js.map +1 -0
  697. package/dist/lifeops/intent-sync.d.ts +64 -0
  698. package/dist/lifeops/intent-sync.d.ts.map +1 -0
  699. package/dist/lifeops/intent-sync.js +321 -0
  700. package/dist/lifeops/intent-sync.js.map +1 -0
  701. package/dist/lifeops/messaging/index.d.ts +2 -0
  702. package/dist/lifeops/messaging/index.d.ts.map +1 -0
  703. package/dist/lifeops/messaging/index.js +5 -0
  704. package/dist/lifeops/messaging/index.js.map +1 -0
  705. package/dist/lifeops/messaging/owner-send-policy.d.ts +3 -0
  706. package/dist/lifeops/messaging/owner-send-policy.d.ts.map +1 -0
  707. package/dist/lifeops/messaging/owner-send-policy.js +83 -0
  708. package/dist/lifeops/messaging/owner-send-policy.js.map +1 -0
  709. package/dist/lifeops/notifications-push.d.ts +37 -0
  710. package/dist/lifeops/notifications-push.d.ts.map +1 -0
  711. package/dist/lifeops/notifications-push.js +95 -0
  712. package/dist/lifeops/notifications-push.js.map +1 -0
  713. package/dist/lifeops/optimized-prompt-instructions.d.ts +5 -0
  714. package/dist/lifeops/optimized-prompt-instructions.d.ts.map +1 -0
  715. package/dist/lifeops/optimized-prompt-instructions.js +48 -0
  716. package/dist/lifeops/optimized-prompt-instructions.js.map +1 -0
  717. package/dist/lifeops/owner/fact-store.d.ts +143 -0
  718. package/dist/lifeops/owner/fact-store.d.ts.map +1 -0
  719. package/dist/lifeops/owner/fact-store.js +446 -0
  720. package/dist/lifeops/owner/fact-store.js.map +1 -0
  721. package/dist/lifeops/owner/profile-extraction-evaluator.d.ts +3 -0
  722. package/dist/lifeops/owner/profile-extraction-evaluator.d.ts.map +1 -0
  723. package/dist/lifeops/owner/profile-extraction-evaluator.js +241 -0
  724. package/dist/lifeops/owner/profile-extraction-evaluator.js.map +1 -0
  725. package/dist/lifeops/owner-profile.d.ts +61 -0
  726. package/dist/lifeops/owner-profile.d.ts.map +1 -0
  727. package/dist/lifeops/owner-profile.js +407 -0
  728. package/dist/lifeops/owner-profile.js.map +1 -0
  729. package/dist/lifeops/pending-prompts/store.d.ts +23 -0
  730. package/dist/lifeops/pending-prompts/store.d.ts.map +1 -0
  731. package/dist/lifeops/pending-prompts/store.js +16 -0
  732. package/dist/lifeops/pending-prompts/store.js.map +1 -0
  733. package/dist/lifeops/policy-memory.d.ts +190 -0
  734. package/dist/lifeops/policy-memory.d.ts.map +1 -0
  735. package/dist/lifeops/policy-memory.js +1026 -0
  736. package/dist/lifeops/policy-memory.js.map +1 -0
  737. package/dist/lifeops/priority-scoring.d.ts +51 -0
  738. package/dist/lifeops/priority-scoring.d.ts.map +1 -0
  739. package/dist/lifeops/priority-scoring.js +305 -0
  740. package/dist/lifeops/priority-scoring.js.map +1 -0
  741. package/dist/lifeops/privacy-egress.d.ts +92 -0
  742. package/dist/lifeops/privacy-egress.d.ts.map +1 -0
  743. package/dist/lifeops/privacy-egress.js +230 -0
  744. package/dist/lifeops/privacy-egress.js.map +1 -0
  745. package/dist/lifeops/privacy.d.ts +49 -0
  746. package/dist/lifeops/privacy.d.ts.map +1 -0
  747. package/dist/lifeops/privacy.js +66 -0
  748. package/dist/lifeops/privacy.js.map +1 -0
  749. package/dist/lifeops/redact-sensitive-data.d.ts +32 -0
  750. package/dist/lifeops/redact-sensitive-data.d.ts.map +1 -0
  751. package/dist/lifeops/redact-sensitive-data.js +98 -0
  752. package/dist/lifeops/redact-sensitive-data.js.map +1 -0
  753. package/dist/lifeops/registries/app-blocker-contribution.d.ts +13 -0
  754. package/dist/lifeops/registries/app-blocker-contribution.d.ts.map +1 -0
  755. package/dist/lifeops/registries/app-blocker-contribution.js +73 -0
  756. package/dist/lifeops/registries/app-blocker-contribution.js.map +1 -0
  757. package/dist/lifeops/registries/blocker-registry.d.ts +76 -0
  758. package/dist/lifeops/registries/blocker-registry.d.ts.map +1 -0
  759. package/dist/lifeops/registries/blocker-registry.js +40 -0
  760. package/dist/lifeops/registries/blocker-registry.js.map +1 -0
  761. package/dist/lifeops/registries/event-kind-registry.d.ts +57 -0
  762. package/dist/lifeops/registries/event-kind-registry.d.ts.map +1 -0
  763. package/dist/lifeops/registries/event-kind-registry.js +82 -0
  764. package/dist/lifeops/registries/event-kind-registry.js.map +1 -0
  765. package/dist/lifeops/registries/family-registry.d.ts +72 -0
  766. package/dist/lifeops/registries/family-registry.d.ts.map +1 -0
  767. package/dist/lifeops/registries/family-registry.js +98 -0
  768. package/dist/lifeops/registries/family-registry.js.map +1 -0
  769. package/dist/lifeops/registries/feature-flag-default-pack.d.ts +32 -0
  770. package/dist/lifeops/registries/feature-flag-default-pack.d.ts.map +1 -0
  771. package/dist/lifeops/registries/feature-flag-default-pack.js +36 -0
  772. package/dist/lifeops/registries/feature-flag-default-pack.js.map +1 -0
  773. package/dist/lifeops/registries/feature-flag-registry.d.ts +76 -0
  774. package/dist/lifeops/registries/feature-flag-registry.d.ts.map +1 -0
  775. package/dist/lifeops/registries/feature-flag-registry.js +68 -0
  776. package/dist/lifeops/registries/feature-flag-registry.js.map +1 -0
  777. package/dist/lifeops/registries/index.d.ts +24 -0
  778. package/dist/lifeops/registries/index.d.ts.map +1 -0
  779. package/dist/lifeops/registries/index.js +115 -0
  780. package/dist/lifeops/registries/index.js.map +1 -0
  781. package/dist/lifeops/registries/website-blocker-contribution.d.ts +21 -0
  782. package/dist/lifeops/registries/website-blocker-contribution.d.ts.map +1 -0
  783. package/dist/lifeops/registries/website-blocker-contribution.js +76 -0
  784. package/dist/lifeops/registries/website-blocker-contribution.js.map +1 -0
  785. package/dist/lifeops/registries/workflow-step-default-pack.d.ts +30 -0
  786. package/dist/lifeops/registries/workflow-step-default-pack.d.ts.map +1 -0
  787. package/dist/lifeops/registries/workflow-step-default-pack.js +315 -0
  788. package/dist/lifeops/registries/workflow-step-default-pack.js.map +1 -0
  789. package/dist/lifeops/registries/workflow-step-registry.d.ts +101 -0
  790. package/dist/lifeops/registries/workflow-step-registry.d.ts.map +1 -0
  791. package/dist/lifeops/registries/workflow-step-registry.js +56 -0
  792. package/dist/lifeops/registries/workflow-step-registry.js.map +1 -0
  793. package/dist/lifeops/relationships/extraction.d.ts +77 -0
  794. package/dist/lifeops/relationships/extraction.d.ts.map +1 -0
  795. package/dist/lifeops/relationships/extraction.js +146 -0
  796. package/dist/lifeops/relationships/extraction.js.map +1 -0
  797. package/dist/lifeops/relationships/index.d.ts +4 -0
  798. package/dist/lifeops/relationships/index.d.ts.map +1 -0
  799. package/dist/lifeops/relationships/index.js +19 -0
  800. package/dist/lifeops/relationships/index.js.map +1 -0
  801. package/dist/lifeops/relationships/mapping.d.ts +34 -0
  802. package/dist/lifeops/relationships/mapping.d.ts.map +1 -0
  803. package/dist/lifeops/relationships/mapping.js +87 -0
  804. package/dist/lifeops/relationships/mapping.js.map +1 -0
  805. package/dist/lifeops/relationships/store.d.ts +12 -0
  806. package/dist/lifeops/relationships/store.d.ts.map +1 -0
  807. package/dist/lifeops/relationships/store.js +5 -0
  808. package/dist/lifeops/relationships/store.js.map +1 -0
  809. package/dist/lifeops/relationships/types.d.ts +9 -0
  810. package/dist/lifeops/relationships/types.d.ts.map +1 -0
  811. package/dist/lifeops/relationships/types.js +11 -0
  812. package/dist/lifeops/relationships/types.js.map +1 -0
  813. package/dist/lifeops/relative-schedule-resolver.d.ts +13 -0
  814. package/dist/lifeops/relative-schedule-resolver.d.ts.map +1 -0
  815. package/dist/lifeops/relative-schedule-resolver.js +107 -0
  816. package/dist/lifeops/relative-schedule-resolver.js.map +1 -0
  817. package/dist/lifeops/relative-time.d.ts +15 -0
  818. package/dist/lifeops/relative-time.d.ts.map +1 -0
  819. package/dist/lifeops/relative-time.js +191 -0
  820. package/dist/lifeops/relative-time.js.map +1 -0
  821. package/dist/lifeops/repository.d.ts +638 -0
  822. package/dist/lifeops/repository.d.ts.map +1 -0
  823. package/dist/lifeops/repository.js +6289 -0
  824. package/dist/lifeops/repository.js.map +1 -0
  825. package/dist/lifeops/runtime-cache.d.ts +4 -0
  826. package/dist/lifeops/runtime-cache.d.ts.map +1 -0
  827. package/dist/lifeops/runtime-cache.js +7 -0
  828. package/dist/lifeops/runtime-cache.js.map +1 -0
  829. package/dist/lifeops/runtime-service-delegates.d.ts +236 -0
  830. package/dist/lifeops/runtime-service-delegates.d.ts.map +1 -0
  831. package/dist/lifeops/runtime-service-delegates.js +839 -0
  832. package/dist/lifeops/runtime-service-delegates.js.map +1 -0
  833. package/dist/lifeops/runtime.d.ts +13 -0
  834. package/dist/lifeops/runtime.d.ts.map +1 -0
  835. package/dist/lifeops/runtime.js +104 -0
  836. package/dist/lifeops/runtime.js.map +1 -0
  837. package/dist/lifeops/schedule-insight.d.ts +133 -0
  838. package/dist/lifeops/schedule-insight.d.ts.map +1 -0
  839. package/dist/lifeops/schedule-insight.js +726 -0
  840. package/dist/lifeops/schedule-insight.js.map +1 -0
  841. package/dist/lifeops/schedule-state.d.ts +39 -0
  842. package/dist/lifeops/schedule-state.d.ts.map +1 -0
  843. package/dist/lifeops/schedule-state.js +671 -0
  844. package/dist/lifeops/schedule-state.js.map +1 -0
  845. package/dist/lifeops/schedule-sync-config.d.ts +3 -0
  846. package/dist/lifeops/schedule-sync-config.d.ts.map +1 -0
  847. package/dist/lifeops/schedule-sync-config.js +23 -0
  848. package/dist/lifeops/schedule-sync-config.js.map +1 -0
  849. package/dist/lifeops/schedule-sync-contracts.d.ts +2 -0
  850. package/dist/lifeops/schedule-sync-contracts.d.ts.map +1 -0
  851. package/dist/lifeops/schedule-sync-contracts.js +2 -0
  852. package/dist/lifeops/schedule-sync-contracts.js.map +1 -0
  853. package/dist/lifeops/scheduled-task/index.d.ts +13 -0
  854. package/dist/lifeops/scheduled-task/index.d.ts.map +1 -0
  855. package/dist/lifeops/scheduled-task/index.js +14 -0
  856. package/dist/lifeops/scheduled-task/index.js.map +1 -0
  857. package/dist/lifeops/scheduled-task/runtime-wiring.d.ts +33 -0
  858. package/dist/lifeops/scheduled-task/runtime-wiring.d.ts.map +1 -0
  859. package/dist/lifeops/scheduled-task/runtime-wiring.js +334 -0
  860. package/dist/lifeops/scheduled-task/runtime-wiring.js.map +1 -0
  861. package/dist/lifeops/scheduled-task/scheduler.d.ts +28 -0
  862. package/dist/lifeops/scheduled-task/scheduler.d.ts.map +1 -0
  863. package/dist/lifeops/scheduled-task/scheduler.js +202 -0
  864. package/dist/lifeops/scheduled-task/scheduler.js.map +1 -0
  865. package/dist/lifeops/scheduled-task/service.d.ts +61 -0
  866. package/dist/lifeops/scheduled-task/service.d.ts.map +1 -0
  867. package/dist/lifeops/scheduled-task/service.js +64 -0
  868. package/dist/lifeops/scheduled-task/service.js.map +1 -0
  869. package/dist/lifeops/scheduler-task.d.ts +19 -0
  870. package/dist/lifeops/scheduler-task.d.ts.map +1 -0
  871. package/dist/lifeops/scheduler-task.js +201 -0
  872. package/dist/lifeops/scheduler-task.js.map +1 -0
  873. package/dist/lifeops/schema.d.ts +28068 -0
  874. package/dist/lifeops/schema.d.ts.map +1 -0
  875. package/dist/lifeops/schema.js +1689 -0
  876. package/dist/lifeops/schema.js.map +1 -0
  877. package/dist/lifeops/screen-context.d.ts +66 -0
  878. package/dist/lifeops/screen-context.d.ts.map +1 -0
  879. package/dist/lifeops/screen-context.js +347 -0
  880. package/dist/lifeops/screen-context.js.map +1 -0
  881. package/dist/lifeops/seed-routine-migration/migrator.d.ts +113 -0
  882. package/dist/lifeops/seed-routine-migration/migrator.d.ts.map +1 -0
  883. package/dist/lifeops/seed-routine-migration/migrator.js +142 -0
  884. package/dist/lifeops/seed-routine-migration/migrator.js.map +1 -0
  885. package/dist/lifeops/seed-routines.d.ts +24 -0
  886. package/dist/lifeops/seed-routines.d.ts.map +1 -0
  887. package/dist/lifeops/seed-routines.js +140 -0
  888. package/dist/lifeops/seed-routines.js.map +1 -0
  889. package/dist/lifeops/send-policy/contract.d.ts +81 -0
  890. package/dist/lifeops/send-policy/contract.d.ts.map +1 -0
  891. package/dist/lifeops/send-policy/contract.js +1 -0
  892. package/dist/lifeops/send-policy/contract.js.map +1 -0
  893. package/dist/lifeops/send-policy/index.d.ts +3 -0
  894. package/dist/lifeops/send-policy/index.d.ts.map +1 -0
  895. package/dist/lifeops/send-policy/index.js +13 -0
  896. package/dist/lifeops/send-policy/index.js.map +1 -0
  897. package/dist/lifeops/send-policy/registry.d.ts +7 -0
  898. package/dist/lifeops/send-policy/registry.d.ts.map +1 -0
  899. package/dist/lifeops/send-policy/registry.js +62 -0
  900. package/dist/lifeops/send-policy/registry.js.map +1 -0
  901. package/dist/lifeops/sensitive-request-delivery.d.ts +46 -0
  902. package/dist/lifeops/sensitive-request-delivery.d.ts.map +1 -0
  903. package/dist/lifeops/sensitive-request-delivery.js +103 -0
  904. package/dist/lifeops/sensitive-request-delivery.js.map +1 -0
  905. package/dist/lifeops/service-constants.d.ts +10 -0
  906. package/dist/lifeops/service-constants.d.ts.map +1 -0
  907. package/dist/lifeops/service-constants.js +129 -0
  908. package/dist/lifeops/service-constants.js.map +1 -0
  909. package/dist/lifeops/service-helpers-browser.d.ts +41 -0
  910. package/dist/lifeops/service-helpers-browser.d.ts.map +1 -0
  911. package/dist/lifeops/service-helpers-browser.js +290 -0
  912. package/dist/lifeops/service-helpers-browser.js.map +1 -0
  913. package/dist/lifeops/service-helpers-misc.d.ts +68 -0
  914. package/dist/lifeops/service-helpers-misc.d.ts.map +1 -0
  915. package/dist/lifeops/service-helpers-misc.js +531 -0
  916. package/dist/lifeops/service-helpers-misc.js.map +1 -0
  917. package/dist/lifeops/service-helpers-occurrence.d.ts +23 -0
  918. package/dist/lifeops/service-helpers-occurrence.d.ts.map +1 -0
  919. package/dist/lifeops/service-helpers-occurrence.js +257 -0
  920. package/dist/lifeops/service-helpers-occurrence.js.map +1 -0
  921. package/dist/lifeops/service-helpers-reminder.d.ts +260 -0
  922. package/dist/lifeops/service-helpers-reminder.d.ts.map +1 -0
  923. package/dist/lifeops/service-helpers-reminder.js +1186 -0
  924. package/dist/lifeops/service-helpers-reminder.js.map +1 -0
  925. package/dist/lifeops/service-mixin-browser.d.ts +31 -0
  926. package/dist/lifeops/service-mixin-browser.d.ts.map +1 -0
  927. package/dist/lifeops/service-mixin-browser.js +975 -0
  928. package/dist/lifeops/service-mixin-browser.js.map +1 -0
  929. package/dist/lifeops/service-mixin-calendar.d.ts +53 -0
  930. package/dist/lifeops/service-mixin-calendar.d.ts.map +1 -0
  931. package/dist/lifeops/service-mixin-calendar.js +68 -0
  932. package/dist/lifeops/service-mixin-calendar.js.map +1 -0
  933. package/dist/lifeops/service-mixin-core.d.ts +51 -0
  934. package/dist/lifeops/service-mixin-core.d.ts.map +1 -0
  935. package/dist/lifeops/service-mixin-core.js +500 -0
  936. package/dist/lifeops/service-mixin-core.js.map +1 -0
  937. package/dist/lifeops/service-mixin-definitions.d.ts +14 -0
  938. package/dist/lifeops/service-mixin-definitions.d.ts.map +1 -0
  939. package/dist/lifeops/service-mixin-definitions.js +470 -0
  940. package/dist/lifeops/service-mixin-definitions.js.map +1 -0
  941. package/dist/lifeops/service-mixin-discord.d.ts +49 -0
  942. package/dist/lifeops/service-mixin-discord.d.ts.map +1 -0
  943. package/dist/lifeops/service-mixin-discord.js +1253 -0
  944. package/dist/lifeops/service-mixin-discord.js.map +1 -0
  945. package/dist/lifeops/service-mixin-drive.d.ts +96 -0
  946. package/dist/lifeops/service-mixin-drive.d.ts.map +1 -0
  947. package/dist/lifeops/service-mixin-drive.js +213 -0
  948. package/dist/lifeops/service-mixin-drive.js.map +1 -0
  949. package/dist/lifeops/service-mixin-email-unsubscribe.d.ts +23 -0
  950. package/dist/lifeops/service-mixin-email-unsubscribe.d.ts.map +1 -0
  951. package/dist/lifeops/service-mixin-email-unsubscribe.js +27 -0
  952. package/dist/lifeops/service-mixin-email-unsubscribe.js.map +1 -0
  953. package/dist/lifeops/service-mixin-gmail.d.ts +43 -0
  954. package/dist/lifeops/service-mixin-gmail.d.ts.map +1 -0
  955. package/dist/lifeops/service-mixin-gmail.js +727 -0
  956. package/dist/lifeops/service-mixin-gmail.js.map +1 -0
  957. package/dist/lifeops/service-mixin-goals.d.ts +22 -0
  958. package/dist/lifeops/service-mixin-goals.d.ts.map +1 -0
  959. package/dist/lifeops/service-mixin-goals.js +884 -0
  960. package/dist/lifeops/service-mixin-goals.js.map +1 -0
  961. package/dist/lifeops/service-mixin-google.d.ts +13 -0
  962. package/dist/lifeops/service-mixin-google.d.ts.map +1 -0
  963. package/dist/lifeops/service-mixin-google.js +398 -0
  964. package/dist/lifeops/service-mixin-google.js.map +1 -0
  965. package/dist/lifeops/service-mixin-health.d.ts +27 -0
  966. package/dist/lifeops/service-mixin-health.d.ts.map +1 -0
  967. package/dist/lifeops/service-mixin-health.js +670 -0
  968. package/dist/lifeops/service-mixin-health.js.map +1 -0
  969. package/dist/lifeops/service-mixin-imessage.d.ts +106 -0
  970. package/dist/lifeops/service-mixin-imessage.d.ts.map +1 -0
  971. package/dist/lifeops/service-mixin-imessage.js +303 -0
  972. package/dist/lifeops/service-mixin-imessage.js.map +1 -0
  973. package/dist/lifeops/service-mixin-inbox.d.ts +55 -0
  974. package/dist/lifeops/service-mixin-inbox.d.ts.map +1 -0
  975. package/dist/lifeops/service-mixin-inbox.js +597 -0
  976. package/dist/lifeops/service-mixin-inbox.js.map +1 -0
  977. package/dist/lifeops/service-mixin-relationships.d.ts +65 -0
  978. package/dist/lifeops/service-mixin-relationships.d.ts.map +1 -0
  979. package/dist/lifeops/service-mixin-relationships.js +150 -0
  980. package/dist/lifeops/service-mixin-relationships.js.map +1 -0
  981. package/dist/lifeops/service-mixin-reminders.d.ts +62 -0
  982. package/dist/lifeops/service-mixin-reminders.d.ts.map +1 -0
  983. package/dist/lifeops/service-mixin-reminders.js +4003 -0
  984. package/dist/lifeops/service-mixin-reminders.js.map +1 -0
  985. package/dist/lifeops/service-mixin-scheduling.d.ts +53 -0
  986. package/dist/lifeops/service-mixin-scheduling.d.ts.map +1 -0
  987. package/dist/lifeops/service-mixin-scheduling.js +405 -0
  988. package/dist/lifeops/service-mixin-scheduling.js.map +1 -0
  989. package/dist/lifeops/service-mixin-screentime.d.ts +71 -0
  990. package/dist/lifeops/service-mixin-screentime.d.ts.map +1 -0
  991. package/dist/lifeops/service-mixin-screentime.js +530 -0
  992. package/dist/lifeops/service-mixin-screentime.js.map +1 -0
  993. package/dist/lifeops/service-mixin-signal.d.ts +74 -0
  994. package/dist/lifeops/service-mixin-signal.d.ts.map +1 -0
  995. package/dist/lifeops/service-mixin-signal.js +214 -0
  996. package/dist/lifeops/service-mixin-signal.js.map +1 -0
  997. package/dist/lifeops/service-mixin-sleep.d.ts +68 -0
  998. package/dist/lifeops/service-mixin-sleep.d.ts.map +1 -0
  999. package/dist/lifeops/service-mixin-sleep.js +43 -0
  1000. package/dist/lifeops/service-mixin-sleep.js.map +1 -0
  1001. package/dist/lifeops/service-mixin-status.d.ts +31 -0
  1002. package/dist/lifeops/service-mixin-status.d.ts.map +1 -0
  1003. package/dist/lifeops/service-mixin-status.js +373 -0
  1004. package/dist/lifeops/service-mixin-status.js.map +1 -0
  1005. package/dist/lifeops/service-mixin-subscriptions.d.ts +101 -0
  1006. package/dist/lifeops/service-mixin-subscriptions.d.ts.map +1 -0
  1007. package/dist/lifeops/service-mixin-subscriptions.js +50 -0
  1008. package/dist/lifeops/service-mixin-subscriptions.js.map +1 -0
  1009. package/dist/lifeops/service-mixin-telegram.d.ts +104 -0
  1010. package/dist/lifeops/service-mixin-telegram.d.ts.map +1 -0
  1011. package/dist/lifeops/service-mixin-telegram.js +280 -0
  1012. package/dist/lifeops/service-mixin-telegram.js.map +1 -0
  1013. package/dist/lifeops/service-mixin-travel.d.ts +66 -0
  1014. package/dist/lifeops/service-mixin-travel.d.ts.map +1 -0
  1015. package/dist/lifeops/service-mixin-travel.js +275 -0
  1016. package/dist/lifeops/service-mixin-travel.js.map +1 -0
  1017. package/dist/lifeops/service-mixin-whatsapp.d.ts +96 -0
  1018. package/dist/lifeops/service-mixin-whatsapp.d.ts.map +1 -0
  1019. package/dist/lifeops/service-mixin-whatsapp.js +186 -0
  1020. package/dist/lifeops/service-mixin-whatsapp.js.map +1 -0
  1021. package/dist/lifeops/service-mixin-workflows.d.ts +15 -0
  1022. package/dist/lifeops/service-mixin-workflows.d.ts.map +1 -0
  1023. package/dist/lifeops/service-mixin-workflows.js +710 -0
  1024. package/dist/lifeops/service-mixin-workflows.js.map +1 -0
  1025. package/dist/lifeops/service-mixin-x-read.d.ts +31 -0
  1026. package/dist/lifeops/service-mixin-x-read.d.ts.map +1 -0
  1027. package/dist/lifeops/service-mixin-x-read.js +267 -0
  1028. package/dist/lifeops/service-mixin-x-read.js.map +1 -0
  1029. package/dist/lifeops/service-mixin-x.d.ts +66 -0
  1030. package/dist/lifeops/service-mixin-x.d.ts.map +1 -0
  1031. package/dist/lifeops/service-mixin-x.js +501 -0
  1032. package/dist/lifeops/service-mixin-x.js.map +1 -0
  1033. package/dist/lifeops/service-normalize-connector.d.ts +19 -0
  1034. package/dist/lifeops/service-normalize-connector.d.ts.map +1 -0
  1035. package/dist/lifeops/service-normalize-connector.js +816 -0
  1036. package/dist/lifeops/service-normalize-connector.js.map +1 -0
  1037. package/dist/lifeops/service-normalize-gmail.d.ts +11 -0
  1038. package/dist/lifeops/service-normalize-gmail.d.ts.map +1 -0
  1039. package/dist/lifeops/service-normalize-gmail.js +85 -0
  1040. package/dist/lifeops/service-normalize-gmail.js.map +1 -0
  1041. package/dist/lifeops/service-normalize-task.d.ts +9 -0
  1042. package/dist/lifeops/service-normalize-task.d.ts.map +1 -0
  1043. package/dist/lifeops/service-normalize-task.js +567 -0
  1044. package/dist/lifeops/service-normalize-task.js.map +1 -0
  1045. package/dist/lifeops/service-normalize.d.ts +9 -0
  1046. package/dist/lifeops/service-normalize.d.ts.map +1 -0
  1047. package/dist/lifeops/service-normalize.js +53 -0
  1048. package/dist/lifeops/service-normalize.js.map +1 -0
  1049. package/dist/lifeops/service-types.d.ts +75 -0
  1050. package/dist/lifeops/service-types.d.ts.map +1 -0
  1051. package/dist/lifeops/service-types.js +5 -0
  1052. package/dist/lifeops/service-types.js.map +1 -0
  1053. package/dist/lifeops/service.d.ts +482 -0
  1054. package/dist/lifeops/service.d.ts.map +1 -0
  1055. package/dist/lifeops/service.js +62 -0
  1056. package/dist/lifeops/service.js.map +1 -0
  1057. package/dist/lifeops/signal-runtime-config.d.ts +13 -0
  1058. package/dist/lifeops/signal-runtime-config.d.ts.map +1 -0
  1059. package/dist/lifeops/signal-runtime-config.js +44 -0
  1060. package/dist/lifeops/signal-runtime-config.js.map +1 -0
  1061. package/dist/lifeops/signals/bus.d.ts +78 -0
  1062. package/dist/lifeops/signals/bus.d.ts.map +1 -0
  1063. package/dist/lifeops/signals/bus.js +117 -0
  1064. package/dist/lifeops/signals/bus.js.map +1 -0
  1065. package/dist/lifeops/sql.d.ts +65 -0
  1066. package/dist/lifeops/sql.d.ts.map +1 -0
  1067. package/dist/lifeops/sql.js +182 -0
  1068. package/dist/lifeops/sql.js.map +1 -0
  1069. package/dist/lifeops/stretch-decider.d.ts +73 -0
  1070. package/dist/lifeops/stretch-decider.d.ts.map +1 -0
  1071. package/dist/lifeops/stretch-decider.js +49 -0
  1072. package/dist/lifeops/stretch-decider.js.map +1 -0
  1073. package/dist/lifeops/telemetry-mapping.d.ts +14 -0
  1074. package/dist/lifeops/telemetry-mapping.d.ts.map +1 -0
  1075. package/dist/lifeops/telemetry-mapping.js +115 -0
  1076. package/dist/lifeops/telemetry-mapping.js.map +1 -0
  1077. package/dist/lifeops/telemetry-retention.d.ts +21 -0
  1078. package/dist/lifeops/telemetry-retention.d.ts.map +1 -0
  1079. package/dist/lifeops/telemetry-retention.js +13 -0
  1080. package/dist/lifeops/telemetry-retention.js.map +1 -0
  1081. package/dist/lifeops/time/timezone.d.ts +4 -0
  1082. package/dist/lifeops/time/timezone.d.ts.map +1 -0
  1083. package/dist/lifeops/time/timezone.js +154 -0
  1084. package/dist/lifeops/time/timezone.js.map +1 -0
  1085. package/dist/lifeops/time-util.d.ts +10 -0
  1086. package/dist/lifeops/time-util.d.ts.map +1 -0
  1087. package/dist/lifeops/time-util.js +14 -0
  1088. package/dist/lifeops/time-util.js.map +1 -0
  1089. package/dist/lifeops/time.d.ts +17 -0
  1090. package/dist/lifeops/time.d.ts.map +1 -0
  1091. package/dist/lifeops/time.js +152 -0
  1092. package/dist/lifeops/time.js.map +1 -0
  1093. package/dist/lifeops/travel-booking.types.d.ts +46 -0
  1094. package/dist/lifeops/travel-booking.types.d.ts.map +1 -0
  1095. package/dist/lifeops/travel-booking.types.js +1 -0
  1096. package/dist/lifeops/travel-booking.types.js.map +1 -0
  1097. package/dist/lifeops/triggers/schedule-once.d.ts +19 -0
  1098. package/dist/lifeops/triggers/schedule-once.d.ts.map +1 -0
  1099. package/dist/lifeops/triggers/schedule-once.js +99 -0
  1100. package/dist/lifeops/triggers/schedule-once.js.map +1 -0
  1101. package/dist/lifeops/validate/coding-task-request.d.ts +18 -0
  1102. package/dist/lifeops/validate/coding-task-request.d.ts.map +1 -0
  1103. package/dist/lifeops/validate/coding-task-request.js +16 -0
  1104. package/dist/lifeops/validate/coding-task-request.js.map +1 -0
  1105. package/dist/lifeops/voice/grounded-reply.d.ts +41 -0
  1106. package/dist/lifeops/voice/grounded-reply.d.ts.map +1 -0
  1107. package/dist/lifeops/voice/grounded-reply.js +24 -0
  1108. package/dist/lifeops/voice/grounded-reply.js.map +1 -0
  1109. package/dist/lifeops/voice-affect.d.ts +79 -0
  1110. package/dist/lifeops/voice-affect.d.ts.map +1 -0
  1111. package/dist/lifeops/voice-affect.js +253 -0
  1112. package/dist/lifeops/voice-affect.js.map +1 -0
  1113. package/dist/lifeops/wave1-types.d.ts +125 -0
  1114. package/dist/lifeops/wave1-types.d.ts.map +1 -0
  1115. package/dist/lifeops/wave1-types.js +1 -0
  1116. package/dist/lifeops/wave1-types.js.map +1 -0
  1117. package/dist/lifeops/work-threads/field-evaluator-thread-ops.d.ts +33 -0
  1118. package/dist/lifeops/work-threads/field-evaluator-thread-ops.d.ts.map +1 -0
  1119. package/dist/lifeops/work-threads/field-evaluator-thread-ops.js +226 -0
  1120. package/dist/lifeops/work-threads/field-evaluator-thread-ops.js.map +1 -0
  1121. package/dist/lifeops/work-threads/index.d.ts +3 -0
  1122. package/dist/lifeops/work-threads/index.d.ts.map +1 -0
  1123. package/dist/lifeops/work-threads/index.js +7 -0
  1124. package/dist/lifeops/work-threads/index.js.map +1 -0
  1125. package/dist/lifeops/work-threads/store.d.ts +91 -0
  1126. package/dist/lifeops/work-threads/store.d.ts.map +1 -0
  1127. package/dist/lifeops/work-threads/store.js +245 -0
  1128. package/dist/lifeops/work-threads/store.js.map +1 -0
  1129. package/dist/lifeops/work-threads/types.d.ts +58 -0
  1130. package/dist/lifeops/work-threads/types.d.ts.map +1 -0
  1131. package/dist/lifeops/work-threads/types.js +1 -0
  1132. package/dist/lifeops/work-threads/types.js.map +1 -0
  1133. package/dist/platform/host.d.ts +16 -0
  1134. package/dist/platform/host.d.ts.map +1 -0
  1135. package/dist/platform/host.js +22 -0
  1136. package/dist/platform/host.js.map +1 -0
  1137. package/dist/platform/index.d.ts +3 -0
  1138. package/dist/platform/index.d.ts.map +1 -0
  1139. package/dist/platform/index.js +3 -0
  1140. package/dist/platform/index.js.map +1 -0
  1141. package/dist/platform/lifeops-github.d.ts +15 -0
  1142. package/dist/platform/lifeops-github.d.ts.map +1 -0
  1143. package/dist/platform/lifeops-github.js +146 -0
  1144. package/dist/platform/lifeops-github.js.map +1 -0
  1145. package/dist/plugin.d.ts +106 -0
  1146. package/dist/plugin.d.ts.map +1 -0
  1147. package/dist/plugin.js +989 -0
  1148. package/dist/plugin.js.map +1 -0
  1149. package/dist/provider.d.ts +4 -0
  1150. package/dist/provider.d.ts.map +1 -0
  1151. package/dist/provider.js +108 -0
  1152. package/dist/provider.js.map +1 -0
  1153. package/dist/providers/activity-profile.d.ts +3 -0
  1154. package/dist/providers/activity-profile.d.ts.map +1 -0
  1155. package/dist/providers/activity-profile.js +140 -0
  1156. package/dist/providers/activity-profile.js.map +1 -0
  1157. package/dist/providers/cross-channel-context.d.ts +29 -0
  1158. package/dist/providers/cross-channel-context.d.ts.map +1 -0
  1159. package/dist/providers/cross-channel-context.js +206 -0
  1160. package/dist/providers/cross-channel-context.js.map +1 -0
  1161. package/dist/providers/first-run.d.ts +22 -0
  1162. package/dist/providers/first-run.d.ts.map +1 -0
  1163. package/dist/providers/first-run.js +93 -0
  1164. package/dist/providers/first-run.js.map +1 -0
  1165. package/dist/providers/health.d.ts +2 -0
  1166. package/dist/providers/health.d.ts.map +1 -0
  1167. package/dist/providers/health.js +14 -0
  1168. package/dist/providers/health.js.map +1 -0
  1169. package/dist/providers/inbox-triage.d.ts +3 -0
  1170. package/dist/providers/inbox-triage.d.ts.map +1 -0
  1171. package/dist/providers/inbox-triage.js +134 -0
  1172. package/dist/providers/inbox-triage.js.map +1 -0
  1173. package/dist/providers/lifeops.d.ts +3 -0
  1174. package/dist/providers/lifeops.d.ts.map +1 -0
  1175. package/dist/providers/lifeops.js +548 -0
  1176. package/dist/providers/lifeops.js.map +1 -0
  1177. package/dist/providers/pending-prompts.d.ts +38 -0
  1178. package/dist/providers/pending-prompts.d.ts.map +1 -0
  1179. package/dist/providers/pending-prompts.js +81 -0
  1180. package/dist/providers/pending-prompts.js.map +1 -0
  1181. package/dist/providers/recent-task-states.d.ts +52 -0
  1182. package/dist/providers/recent-task-states.d.ts.map +1 -0
  1183. package/dist/providers/recent-task-states.js +166 -0
  1184. package/dist/providers/recent-task-states.js.map +1 -0
  1185. package/dist/providers/room-policy.d.ts +16 -0
  1186. package/dist/providers/room-policy.d.ts.map +1 -0
  1187. package/dist/providers/room-policy.js +71 -0
  1188. package/dist/providers/room-policy.js.map +1 -0
  1189. package/dist/providers/work-threads.d.ts +3 -0
  1190. package/dist/providers/work-threads.d.ts.map +1 -0
  1191. package/dist/providers/work-threads.js +97 -0
  1192. package/dist/providers/work-threads.js.map +1 -0
  1193. package/dist/public.d.ts +3 -0
  1194. package/dist/public.d.ts.map +1 -0
  1195. package/dist/public.js +17 -0
  1196. package/dist/public.js.map +1 -0
  1197. package/dist/routes/cloud-features-routes.d.ts +9 -0
  1198. package/dist/routes/cloud-features-routes.d.ts.map +1 -0
  1199. package/dist/routes/cloud-features-routes.js +164 -0
  1200. package/dist/routes/cloud-features-routes.js.map +1 -0
  1201. package/dist/routes/entities.d.ts +14 -0
  1202. package/dist/routes/entities.d.ts.map +1 -0
  1203. package/dist/routes/entities.js +203 -0
  1204. package/dist/routes/entities.js.map +1 -0
  1205. package/dist/routes/lifeops-routes.d.ts +20 -0
  1206. package/dist/routes/lifeops-routes.d.ts.map +1 -0
  1207. package/dist/routes/lifeops-routes.js +2337 -0
  1208. package/dist/routes/lifeops-routes.js.map +1 -0
  1209. package/dist/routes/plugin.d.ts +9 -0
  1210. package/dist/routes/plugin.d.ts.map +1 -0
  1211. package/dist/routes/plugin.js +568 -0
  1212. package/dist/routes/plugin.js.map +1 -0
  1213. package/dist/routes/relationships.d.ts +13 -0
  1214. package/dist/routes/relationships.d.ts.map +1 -0
  1215. package/dist/routes/relationships.js +195 -0
  1216. package/dist/routes/relationships.js.map +1 -0
  1217. package/dist/routes/scheduled-tasks.d.ts +102 -0
  1218. package/dist/routes/scheduled-tasks.d.ts.map +1 -0
  1219. package/dist/routes/scheduled-tasks.js +322 -0
  1220. package/dist/routes/scheduled-tasks.js.map +1 -0
  1221. package/dist/routes/sleep-routes.d.ts +3 -0
  1222. package/dist/routes/sleep-routes.d.ts.map +1 -0
  1223. package/dist/routes/sleep-routes.js +33 -0
  1224. package/dist/routes/sleep-routes.js.map +1 -0
  1225. package/dist/routes/travel-provider-relay-routes.d.ts +2 -0
  1226. package/dist/routes/travel-provider-relay-routes.d.ts.map +1 -0
  1227. package/dist/routes/travel-provider-relay-routes.js +7 -0
  1228. package/dist/routes/travel-provider-relay-routes.js.map +1 -0
  1229. package/dist/routes/website-blocker-routes.d.ts +6 -0
  1230. package/dist/routes/website-blocker-routes.d.ts.map +1 -0
  1231. package/dist/routes/website-blocker-routes.js +218 -0
  1232. package/dist/routes/website-blocker-routes.js.map +1 -0
  1233. package/dist/security/action-confirmation.d.ts +12 -0
  1234. package/dist/security/action-confirmation.d.ts.map +1 -0
  1235. package/dist/security/action-confirmation.js +36 -0
  1236. package/dist/security/action-confirmation.js.map +1 -0
  1237. package/dist/service.d.ts +34 -0
  1238. package/dist/service.d.ts.map +1 -0
  1239. package/dist/service.js +111 -0
  1240. package/dist/service.js.map +1 -0
  1241. package/dist/travel-time/calendar-create.d.ts +17 -0
  1242. package/dist/travel-time/calendar-create.d.ts.map +1 -0
  1243. package/dist/travel-time/calendar-create.js +28 -0
  1244. package/dist/travel-time/calendar-create.js.map +1 -0
  1245. package/dist/travel-time/service.d.ts +114 -0
  1246. package/dist/travel-time/service.d.ts.map +1 -0
  1247. package/dist/travel-time/service.js +209 -0
  1248. package/dist/travel-time/service.js.map +1 -0
  1249. package/dist/types/app-blocker-settings-card.d.ts +2 -0
  1250. package/dist/types/app-blocker-settings-card.d.ts.map +1 -0
  1251. package/dist/types/app-blocker-settings-card.js +1 -0
  1252. package/dist/types/app-blocker-settings-card.js.map +1 -0
  1253. package/dist/types/briefing.d.ts +59 -0
  1254. package/dist/types/briefing.d.ts.map +1 -0
  1255. package/dist/types/briefing.js +1 -0
  1256. package/dist/types/briefing.js.map +1 -0
  1257. package/dist/types/document-request.d.ts +41 -0
  1258. package/dist/types/document-request.d.ts.map +1 -0
  1259. package/dist/types/document-request.js +1 -0
  1260. package/dist/types/document-request.js.map +1 -0
  1261. package/dist/types/index.d.ts +5 -0
  1262. package/dist/types/index.d.ts.map +1 -0
  1263. package/dist/types/index.js +1 -0
  1264. package/dist/types/index.js.map +1 -0
  1265. package/dist/types/website-blocker-settings-card.d.ts +2 -0
  1266. package/dist/types/website-blocker-settings-card.d.ts.map +1 -0
  1267. package/dist/types/website-blocker-settings-card.js +1 -0
  1268. package/dist/types/website-blocker-settings-card.js.map +1 -0
  1269. package/dist/ui.d.ts +13 -0
  1270. package/dist/ui.d.ts.map +1 -0
  1271. package/dist/ui.js +25 -0
  1272. package/dist/ui.js.map +1 -0
  1273. package/dist/utils/format-duration.d.ts +2 -0
  1274. package/dist/utils/format-duration.d.ts.map +1 -0
  1275. package/dist/utils/format-duration.js +13 -0
  1276. package/dist/utils/format-duration.js.map +1 -0
  1277. package/dist/utils/index.d.ts +3 -0
  1278. package/dist/utils/index.d.ts.map +1 -0
  1279. package/dist/utils/index.js +3 -0
  1280. package/dist/utils/index.js.map +1 -0
  1281. package/dist/utils/lifeops-url.d.ts +3 -0
  1282. package/dist/utils/lifeops-url.d.ts.map +1 -0
  1283. package/dist/utils/lifeops-url.js +28 -0
  1284. package/dist/utils/lifeops-url.js.map +1 -0
  1285. package/dist/website-blocker/chat-integration/block-activator.d.ts +32 -0
  1286. package/dist/website-blocker/chat-integration/block-activator.d.ts.map +1 -0
  1287. package/dist/website-blocker/chat-integration/block-activator.js +30 -0
  1288. package/dist/website-blocker/chat-integration/block-activator.js.map +1 -0
  1289. package/dist/website-blocker/chat-integration/block-rule-reconciler.d.ts +7 -0
  1290. package/dist/website-blocker/chat-integration/block-rule-reconciler.d.ts.map +1 -0
  1291. package/dist/website-blocker/chat-integration/block-rule-reconciler.js +115 -0
  1292. package/dist/website-blocker/chat-integration/block-rule-reconciler.js.map +1 -0
  1293. package/dist/website-blocker/chat-integration/block-rule-schema.d.ts +39 -0
  1294. package/dist/website-blocker/chat-integration/block-rule-schema.d.ts.map +1 -0
  1295. package/dist/website-blocker/chat-integration/block-rule-schema.js +133 -0
  1296. package/dist/website-blocker/chat-integration/block-rule-schema.js.map +1 -0
  1297. package/dist/website-blocker/chat-integration/block-rule-service.d.ts +21 -0
  1298. package/dist/website-blocker/chat-integration/block-rule-service.d.ts.map +1 -0
  1299. package/dist/website-blocker/chat-integration/block-rule-service.js +230 -0
  1300. package/dist/website-blocker/chat-integration/block-rule-service.js.map +1 -0
  1301. package/dist/website-blocker/chat-integration/harsh-mode-check.d.ts +13 -0
  1302. package/dist/website-blocker/chat-integration/harsh-mode-check.d.ts.map +1 -0
  1303. package/dist/website-blocker/chat-integration/harsh-mode-check.js +22 -0
  1304. package/dist/website-blocker/chat-integration/harsh-mode-check.js.map +1 -0
  1305. package/dist/website-blocker/chat-integration/index.d.ts +5 -0
  1306. package/dist/website-blocker/chat-integration/index.d.ts.map +1 -0
  1307. package/dist/website-blocker/chat-integration/index.js +26 -0
  1308. package/dist/website-blocker/chat-integration/index.js.map +1 -0
  1309. package/dist/website-blocker/proactive-block-bridge.d.ts +75 -0
  1310. package/dist/website-blocker/proactive-block-bridge.d.ts.map +1 -0
  1311. package/dist/website-blocker/proactive-block-bridge.js +154 -0
  1312. package/dist/website-blocker/proactive-block-bridge.js.map +1 -0
  1313. package/dist/website-blocker/public.d.ts +12 -0
  1314. package/dist/website-blocker/public.d.ts.map +1 -0
  1315. package/dist/website-blocker/public.js +51 -0
  1316. package/dist/website-blocker/public.js.map +1 -0
  1317. package/package.json +28 -28
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lifeops/service-mixin-inbox.ts"],"sourcesContent":["import type { IAgentRuntime } from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\nimport {\n type GetLifeOpsInboxRequest,\n LIFEOPS_INBOX_CHANNELS,\n type LifeOpsInbox,\n type LifeOpsInboxCacheMode,\n type LifeOpsInboxChannel,\n type LifeOpsInboxChannelCount,\n type LifeOpsInboxMessage,\n type LifeOpsInboxThreadGroup,\n} from \"@elizaos/shared\";\nimport {\n fetchAllMessages,\n type GmailInboxSource,\n type XDmInboxSource,\n} from \"../inbox/message-fetcher.js\";\nimport type { InboundMessage } from \"../inbox/types.js\";\nimport { loadLifeOpsAppState } from \"./app-state.js\";\nimport {\n type PriorityCategory,\n type PriorityScore,\n scoreInboxMessages,\n} from \"./priority-scoring.js\";\nimport type { LifeOpsCachedInboxMessage } from \"./repository.js\";\nimport type {\n Constructor,\n LifeOpsServiceBase,\n MixinClass,\n} from \"./service-mixin-core.js\";\nimport { fail, requireNonEmptyString } from \"./service-normalize.js\";\n\nconst DEFAULT_INBOX_LIMIT = 100;\nconst INBOX_CACHE_FRESH_MS = 60_000;\nconst INBOX_CACHE_WARM_LIMIT = 200;\nconst INBOX_CACHE_READ_LIMIT = 800;\nconst INBOX_CACHE_FULL_LIMIT = 5000;\nconst INBOX_CHANNEL_SET = new Set<LifeOpsInboxChannel>(LIFEOPS_INBOX_CHANNELS);\nconst PHONE_BACKED_INBOX_CHANNELS = new Set<LifeOpsInboxChannel>([\n \"imessage\",\n \"sms\",\n \"whatsapp\",\n]);\nconst SUBJECT_REPLY_PREFIX = /^(?:\\s*(?:re|fwd|fw)\\s*:\\s*)+/i;\nconst MISSED_REPLY_GAP_MS = 24 * 60 * 60 * 1000;\nconst MISSED_MIN_PRIORITY = 50;\n\nexport type InboxChatType = \"dm\" | \"group\" | \"channel\";\n\nexport function normalizeInboxChannel(\n source: string | null | undefined,\n): LifeOpsInboxChannel | null {\n if (typeof source !== \"string\") return null;\n const trimmed = source.trim().toLowerCase();\n if (!trimmed) return null;\n if (INBOX_CHANNEL_SET.has(trimmed as LifeOpsInboxChannel)) {\n return trimmed as LifeOpsInboxChannel;\n }\n return null;\n}\n\nfunction normalizePhoneAccountKey(value: string): string {\n return value.trim().toLowerCase();\n}\n\nfunction isPhoneBackedInboxChannel(channel: LifeOpsInboxChannel): boolean {\n return PHONE_BACKED_INBOX_CHANNELS.has(channel);\n}\n\nfunction matchesPhoneAccountFilter(\n message: LifeOpsInboxMessage,\n phoneAccountIds: ReadonlySet<string>,\n): boolean {\n const candidates = [\n message.phoneAccountId,\n message.phoneNumber,\n message.sourceRef.phoneAccountId,\n message.sourceRef.phoneNumber,\n ];\n return candidates.some(\n (value) =>\n typeof value === \"string\" &&\n phoneAccountIds.has(normalizePhoneAccountKey(value)),\n );\n}\n\nfunction emptyChannelCounts(): Record<\n LifeOpsInboxChannel,\n LifeOpsInboxChannelCount\n> {\n const counts = {} as Record<LifeOpsInboxChannel, LifeOpsInboxChannelCount>;\n for (const channel of LIFEOPS_INBOX_CHANNELS) {\n counts[channel] = { total: 0, unread: 0 };\n }\n return counts;\n}\n\nfunction deriveThreadId(\n message: InboundMessage,\n channel: LifeOpsInboxChannel,\n externalId: string,\n): string {\n if (typeof message.threadId === \"string\" && message.threadId.length > 0) {\n return message.threadId;\n }\n if (channel === \"x_dm\" && message.xConversationId) {\n return message.xConversationId;\n }\n if (channel === \"gmail\") {\n const subject = message.channelName\n .replace(/^Email from\\s+/i, \"\")\n .replace(SUBJECT_REPLY_PREFIX, \"\")\n .trim();\n const fromKey =\n message.senderEmail?.trim().toLowerCase() ?? message.senderName;\n return `gmail:${fromKey}:${subject || externalId}`;\n }\n if (message.roomId) {\n return message.roomId;\n }\n return externalId;\n}\n\nexport function toInboxMessage(\n message: InboundMessage,\n channel: LifeOpsInboxChannel,\n index: number,\n): LifeOpsInboxMessage {\n const externalId =\n channel === \"gmail\" ? (message.gmailMessageId ?? message.id) : message.id;\n const senderId =\n channel === \"gmail\"\n ? (message.gmailMessageId ?? message.id)\n : (message.entityId ?? message.roomId ?? message.id);\n const receivedAt = new Date(message.timestamp).toISOString();\n const subject =\n channel === \"gmail\"\n ? message.channelName.startsWith(\"Email from \")\n ? message.channelName.slice(\"Email from \".length)\n : message.channelName\n : null;\n\n // Gmail triage exposes `likelyReplyNeeded`/`isImportant` but the shared\n // `InboundMessage` shape does not carry a per-channel read flag yet. Until\n // the chat fetcher tracks read state per memory, mark chat messages as\n // unread so the inbox surfaces them for triage.\n const unread =\n channel === \"gmail\"\n ? Boolean(\n message.gmailLikelyReplyNeeded === true ||\n message.gmailIsImportant === true,\n )\n : true;\n\n const threadId = deriveThreadId(message, channel, externalId);\n const chatType: InboxChatType =\n message.chatType ??\n (channel === \"gmail\"\n ? \"dm\"\n : message.channelType === \"group\"\n ? \"group\"\n : \"dm\");\n\n return {\n id: `${channel}:${externalId || `${message.timestamp}-${index}`}`,\n channel,\n sender: {\n id: senderId,\n displayName: message.senderName || \"Unknown\",\n email: message.senderEmail?.trim().toLowerCase() || null,\n avatarUrl: null,\n },\n subject,\n snippet: message.snippet,\n receivedAt,\n unread,\n deepLink: message.deepLink ?? null,\n sourceRef: {\n channel,\n externalId: externalId,\n ...(message.phoneAccountId\n ? { phoneAccountId: message.phoneAccountId }\n : {}),\n ...(message.phoneAccountLabel\n ? { phoneAccountLabel: message.phoneAccountLabel }\n : {}),\n ...(message.phoneNumber ? { phoneNumber: message.phoneNumber } : {}),\n },\n threadId,\n chatType,\n participantCount: message.participantCount,\n gmailAccountId: message.gmailAccountId,\n gmailAccountEmail: message.gmailAccountEmail,\n phoneAccountId: message.phoneAccountId,\n phoneAccountLabel: message.phoneAccountLabel,\n phoneNumber: message.phoneNumber,\n lastSeenAt: message.lastSeenAt,\n repliedAt: message.repliedAt,\n priorityScore: message.priorityScore,\n };\n}\n\nexport function toInboxMessages(\n inbound: InboundMessage[],\n): LifeOpsInboxMessage[] {\n const messages: LifeOpsInboxMessage[] = [];\n let index = 0;\n for (const message of inbound) {\n const channel = normalizeInboxChannel(message.source);\n index += 1;\n if (!channel) continue;\n messages.push(toInboxMessage(message, channel, index - 1));\n }\n return messages;\n}\n\ninterface InboxBuildOptions {\n limit: number;\n allowed: Set<LifeOpsInboxChannel>;\n groupByThread?: boolean;\n chatTypeFilter?: ReadonlyArray<InboxChatType>;\n maxParticipants?: number;\n gmailAccountId?: string;\n phoneAccountIds?: ReadonlySet<string>;\n ownerName?: string | null;\n missedOnly?: boolean;\n /**\n * When true, thread groups are sorted by maxPriorityScore desc with recency\n * as tiebreaker. When false (default), groups are sorted by recency only.\n * Messages mode opts in; Mail mode keeps recency-first because email\n * priority is less actionable.\n */\n sortByPriority?: boolean;\n /** Optional precomputed score map keyed by message id. */\n llmScores?: ReadonlyMap<string, PriorityScore>;\n}\n\n/**\n * Compute a v1 small-group importance score for a thread group. Used as the\n * fallback path when LLM priority scoring is disabled or fails. Returns a\n * number in [0, 100].\n */\nfunction scoreSmallGroupThread(\n members: LifeOpsInboxMessage[],\n ownerNameLower: string | null,\n isMostRecentGroupActivity: boolean,\n): number {\n let score = 0;\n let mentionsOwner = false;\n let hasQuestion = false;\n let hasDateLike = false;\n for (const member of members) {\n const text = `${member.subject ?? \"\"} ${member.snippet}`;\n if (!mentionsOwner) {\n if (\n ownerNameLower &&\n ownerNameLower.length > 0 &&\n text.toLowerCase().includes(ownerNameLower)\n ) {\n mentionsOwner = true;\n } else if (/@me\\b/i.test(text)) {\n mentionsOwner = true;\n }\n }\n if (!hasQuestion && text.includes(\"?\")) {\n hasQuestion = true;\n }\n if (!hasDateLike) {\n // Catches \"3pm\", \"3:30\", \"tomorrow\", \"Mon\"-\"Sun\", \"Jan-Dec\".\n if (\n /\\b(?:[01]?\\d|2[0-3])(?::[0-5]\\d)?\\s*(?:am|pm)\\b/i.test(text) ||\n /\\b(?:tomorrow|tonight|today|tmr|tmrw)\\b/i.test(text) ||\n /\\b(?:mon|tue|tues|wed|thu|thur|thurs|fri|sat|sun)\\b/i.test(text) ||\n /\\b(?:jan|feb|mar|apr|may|jun|jul|aug|sep|sept|oct|nov|dec)\\b/i.test(\n text,\n )\n ) {\n hasDateLike = true;\n }\n }\n }\n if (mentionsOwner) score += 30;\n if (hasQuestion) score += 20;\n if (hasDateLike) score += 15;\n if (isMostRecentGroupActivity) score += 10;\n return Math.min(score, 100);\n}\n\nfunction applyLlmScores(\n messages: LifeOpsInboxMessage[],\n scores: ReadonlyMap<string, PriorityScore>,\n): void {\n if (scores.size === 0) return;\n for (const message of messages) {\n const score = scores.get(message.id);\n if (!score) continue;\n message.priorityScore = score.score;\n message.priorityCategory = score.category;\n }\n}\n\nfunction buildThreadGroups(\n messages: LifeOpsInboxMessage[],\n ownerName: string | null,\n llmScores?: ReadonlyMap<string, PriorityScore>,\n sortByPriority = false,\n): LifeOpsInboxThreadGroup[] {\n const buckets = new Map<string, LifeOpsInboxMessage[]>();\n for (const message of messages) {\n const key = message.threadId ?? message.id;\n const bucket = buckets.get(key) ?? [];\n bucket.push(message);\n buckets.set(key, bucket);\n }\n\n // Identify the group thread with the most-recent activity to award the\n // \"most-recent group activity\" heuristic point in the fallback path.\n let mostRecentGroupKey: string | null = null;\n let mostRecentGroupTs = -Infinity;\n for (const [key, members] of buckets) {\n const latest = members[0];\n if (!latest || latest.chatType !== \"group\") continue;\n const ts = Date.parse(latest.receivedAt);\n if (Number.isFinite(ts) && ts > mostRecentGroupTs) {\n mostRecentGroupTs = ts;\n mostRecentGroupKey = key;\n }\n }\n\n const ownerNameLower =\n typeof ownerName === \"string\" && ownerName.trim().length > 0\n ? ownerName.trim().toLowerCase()\n : null;\n\n const groups: LifeOpsInboxThreadGroup[] = [];\n for (const [key, members] of buckets) {\n members.sort((a, b) => Date.parse(b.receivedAt) - Date.parse(a.receivedAt));\n const latestMessage = members[0];\n if (!latestMessage) continue;\n const totalCount = members.length;\n const unreadCount = members.filter((m) => m.unread).length;\n const participantCount = members.find(\n (m) => typeof m.participantCount === \"number\",\n )?.participantCount;\n\n let priorityScores = members\n .map((m) => m.priorityScore)\n .filter((value): value is number => typeof value === \"number\");\n\n // Determine the dominant category from persisted or current LLM scoring.\n let priorityCategory: PriorityCategory | undefined;\n let bestPersistedCategory: {\n category: PriorityCategory;\n score: number;\n } | null = null;\n for (const member of members) {\n if (!member.priorityCategory) continue;\n const score = member.priorityScore ?? 0;\n if (!bestPersistedCategory || score > bestPersistedCategory.score) {\n bestPersistedCategory = {\n category: member.priorityCategory,\n score,\n };\n }\n }\n if (bestPersistedCategory) {\n priorityCategory = bestPersistedCategory.category;\n }\n if (llmScores && llmScores.size > 0) {\n const seen = new Map<PriorityCategory, number>();\n let best: { category: PriorityCategory; score: number } | null = null;\n for (const member of members) {\n const score = llmScores.get(member.id);\n if (!score) continue;\n seen.set(score.category, (seen.get(score.category) ?? 0) + 1);\n if (!best || score.score > best.score) {\n best = { category: score.category, score: score.score };\n }\n }\n // Prefer the category attached to the highest-scoring message; ties\n // fall back to the most common category.\n if (best) {\n priorityCategory = best.category;\n } else if (seen.size > 0) {\n let topCategory: PriorityCategory = \"casual\";\n let topCount = -1;\n for (const [cat, count] of seen) {\n if (count > topCount) {\n topCount = count;\n topCategory = cat;\n }\n }\n priorityCategory = topCategory;\n }\n }\n\n // Fallback: only run the v1 heuristic for small groups when the LLM\n // produced nothing for the latest message.\n const latestHasLlmScore = llmScores?.has(latestMessage.id) === true;\n if (\n !latestHasLlmScore &&\n latestMessage.chatType === \"group\" &&\n typeof participantCount === \"number\" &&\n participantCount <= 15\n ) {\n const heuristicScore = scoreSmallGroupThread(\n members,\n ownerNameLower,\n key === mostRecentGroupKey,\n );\n if (heuristicScore > 0) {\n latestMessage.priorityScore = Math.max(\n latestMessage.priorityScore ?? 0,\n heuristicScore,\n );\n priorityScores = [...priorityScores, heuristicScore];\n }\n }\n\n const maxPriorityScore =\n priorityScores.length > 0 ? Math.max(...priorityScores) : undefined;\n\n groups.push({\n threadId: key,\n channel: latestMessage.channel,\n chatType: latestMessage.chatType ?? \"dm\",\n latestMessage,\n totalCount,\n unreadCount,\n participantCount,\n maxPriorityScore,\n priorityCategory,\n messages: [...members],\n });\n }\n\n if (sortByPriority) {\n groups.sort((a, b) => {\n const aScore = a.maxPriorityScore ?? -1;\n const bScore = b.maxPriorityScore ?? -1;\n if (aScore !== bScore) return bScore - aScore;\n return (\n Date.parse(b.latestMessage.receivedAt) -\n Date.parse(a.latestMessage.receivedAt)\n );\n });\n } else {\n groups.sort(\n (a, b) =>\n Date.parse(b.latestMessage.receivedAt) -\n Date.parse(a.latestMessage.receivedAt),\n );\n }\n return groups;\n}\n\nfunction isMissedMessage(message: LifeOpsInboxMessage, nowMs: number): boolean {\n if (typeof message.repliedAt === \"string\" && message.repliedAt.length > 0) {\n return false;\n }\n const score = message.priorityScore;\n if (typeof score !== \"number\" || score < MISSED_MIN_PRIORITY) {\n return false;\n }\n const received = Date.parse(message.receivedAt);\n if (!Number.isFinite(received)) return false;\n return nowMs - received >= MISSED_REPLY_GAP_MS;\n}\n\nfunction isMissedThreadGroup(\n group: LifeOpsInboxThreadGroup,\n nowMs: number,\n): boolean {\n return group.messages.some((message) => isMissedMessage(message, nowMs));\n}\n\nexport function buildInbox(\n inbound: InboundMessage[],\n options: InboxBuildOptions,\n): LifeOpsInbox {\n return buildInboxFromMessages(toInboxMessages(inbound), options);\n}\n\nexport function buildInboxFromMessages(\n sourceMessages: readonly LifeOpsInboxMessage[],\n options: InboxBuildOptions,\n): LifeOpsInbox {\n const collected: LifeOpsInboxMessage[] = [];\n const counts = emptyChannelCounts();\n const chatTypeFilter =\n options.chatTypeFilter && options.chatTypeFilter.length > 0\n ? new Set(options.chatTypeFilter)\n : null;\n\n for (const message of sourceMessages) {\n const channel = message.channel;\n if (!channel || !options.allowed.has(channel)) {\n continue;\n }\n const normalized = { ...message, sender: { ...message.sender } };\n\n if (chatTypeFilter && !chatTypeFilter.has(normalized.chatType ?? \"dm\")) {\n continue;\n }\n if (\n typeof options.maxParticipants === \"number\" &&\n normalized.chatType === \"group\" &&\n typeof normalized.participantCount === \"number\" &&\n normalized.participantCount > options.maxParticipants\n ) {\n continue;\n }\n if (\n options.gmailAccountId &&\n channel === \"gmail\" &&\n normalized.gmailAccountId !== options.gmailAccountId\n ) {\n continue;\n }\n if (\n options.phoneAccountIds &&\n options.phoneAccountIds.size > 0 &&\n isPhoneBackedInboxChannel(channel) &&\n !matchesPhoneAccountFilter(normalized, options.phoneAccountIds)\n ) {\n continue;\n }\n\n collected.push(normalized);\n const channelCount = counts[channel];\n channelCount.total += 1;\n if (normalized.unread) {\n channelCount.unread += 1;\n }\n }\n\n collected.sort((a, b) => Date.parse(b.receivedAt) - Date.parse(a.receivedAt));\n\n const trimmed =\n collected.length > options.limit\n ? collected.slice(0, options.limit)\n : collected;\n\n if (options.llmScores && options.llmScores.size > 0) {\n applyLlmScores(trimmed, options.llmScores);\n }\n\n let messages = trimmed;\n let threadGroups: LifeOpsInboxThreadGroup[] | undefined;\n\n if (options.groupByThread) {\n threadGroups = buildThreadGroups(\n trimmed,\n options.ownerName ?? null,\n options.llmScores,\n options.sortByPriority === true,\n );\n }\n\n if (options.missedOnly === true) {\n const nowMs = Date.now();\n messages = messages.filter((m) => isMissedMessage(m, nowMs));\n if (threadGroups) {\n threadGroups = threadGroups.filter((g) => isMissedThreadGroup(g, nowMs));\n }\n }\n\n const inbox: LifeOpsInbox = {\n messages,\n channelCounts: counts,\n fetchedAt: new Date().toISOString(),\n };\n\n if (threadGroups) {\n inbox.threadGroups = threadGroups;\n }\n\n return inbox;\n}\n\nfunction cacheReadLimitFor(resolved: ResolvedInboxRequest): number {\n if (resolved.cacheMode === \"cache-only\") {\n return Math.max(resolved.limit, resolved.cacheLimit);\n }\n if (resolved.cacheLimit > INBOX_CACHE_READ_LIMIT) {\n return Math.max(resolved.limit, resolved.cacheLimit);\n }\n return Math.min(\n INBOX_CACHE_READ_LIMIT,\n Math.max(resolved.limit * 4, INBOX_CACHE_WARM_LIMIT),\n );\n}\n\nfunction cacheWarmLimitFor(resolved: ResolvedInboxRequest): number {\n if (resolved.cacheMode === \"refresh\") {\n return resolved.cacheLimit;\n }\n return Math.min(500, Math.max(resolved.limit, INBOX_CACHE_WARM_LIMIT));\n}\n\nfunction isFreshCache(records: readonly LifeOpsCachedInboxMessage[]): boolean {\n if (records.length === 0) return false;\n let newest = 0;\n for (const record of records) {\n const parsed = Date.parse(record.cachedAt);\n if (Number.isFinite(parsed) && parsed > newest) newest = parsed;\n }\n return newest > 0 && Date.now() - newest <= INBOX_CACHE_FRESH_MS;\n}\n\nfunction flattenInboxMessages(inbox: LifeOpsInbox): LifeOpsInboxMessage[] {\n const messages = new Map<string, LifeOpsInboxMessage>();\n for (const message of inbox.messages) {\n messages.set(message.id, message);\n }\n for (const group of inbox.threadGroups ?? []) {\n messages.set(group.latestMessage.id, group.latestMessage);\n for (const message of group.messages) {\n messages.set(message.id, message);\n }\n }\n return [...messages.values()];\n}\n\nexport interface ResolvedInboxRequest {\n limit: number;\n allowed: Set<LifeOpsInboxChannel>;\n groupByThread: boolean;\n chatTypeFilter?: ReadonlyArray<InboxChatType>;\n maxParticipants?: number;\n gmailAccountId?: string;\n phoneAccountIds?: ReadonlySet<string>;\n missedOnly: boolean;\n sortByPriority: boolean;\n cacheMode: LifeOpsInboxCacheMode;\n cacheLimit: number;\n}\n\nexport function resolveInboxRequest(\n request: GetLifeOpsInboxRequest,\n): ResolvedInboxRequest {\n const limit =\n typeof request.limit === \"number\" &&\n Number.isFinite(request.limit) &&\n request.limit > 0\n ? Math.min(Math.floor(request.limit), 500)\n : DEFAULT_INBOX_LIMIT;\n const requestedChannels =\n request.channels && request.channels.length > 0\n ? (request.channels.filter((channel) =>\n INBOX_CHANNEL_SET.has(channel),\n ) as LifeOpsInboxChannel[])\n : [...LIFEOPS_INBOX_CHANNELS];\n const chatTypeFilter =\n Array.isArray(request.chatTypeFilter) && request.chatTypeFilter.length > 0\n ? (request.chatTypeFilter.filter(\n (value) => value === \"dm\" || value === \"group\" || value === \"channel\",\n ) as InboxChatType[])\n : undefined;\n const cacheMode: LifeOpsInboxCacheMode =\n request.cacheMode === \"refresh\" || request.cacheMode === \"cache-only\"\n ? request.cacheMode\n : \"read-through\";\n const requestedCacheLimit =\n typeof request.cacheLimit === \"number\" &&\n Number.isFinite(request.cacheLimit) &&\n request.cacheLimit > 0\n ? Math.floor(request.cacheLimit)\n : undefined;\n const cacheLimit = Math.min(\n requestedCacheLimit ??\n (cacheMode === \"read-through\"\n ? INBOX_CACHE_WARM_LIMIT\n : INBOX_CACHE_FULL_LIMIT),\n INBOX_CACHE_FULL_LIMIT,\n );\n const phoneAccountIds =\n Array.isArray(request.phoneAccountIds) && request.phoneAccountIds.length > 0\n ? new Set(\n request.phoneAccountIds\n .map((value) =>\n typeof value === \"string\" ? normalizePhoneAccountKey(value) : \"\",\n )\n .filter(Boolean),\n )\n : undefined;\n return {\n limit,\n allowed: new Set<LifeOpsInboxChannel>(requestedChannels),\n groupByThread: request.groupByThread === true,\n chatTypeFilter,\n maxParticipants:\n typeof request.maxParticipants === \"number\" &&\n Number.isFinite(request.maxParticipants) &&\n request.maxParticipants > 0\n ? Math.floor(request.maxParticipants)\n : undefined,\n gmailAccountId:\n typeof request.gmailAccountId === \"string\" &&\n request.gmailAccountId.trim().length > 0\n ? request.gmailAccountId.trim()\n : undefined,\n phoneAccountIds,\n missedOnly: request.missedOnly === true,\n sortByPriority: request.sortByPriority === true,\n cacheMode,\n cacheLimit,\n };\n}\n\nfunction resolveOwnerName(runtime: IAgentRuntime): string | null {\n const name = runtime.character.name;\n return typeof name === \"string\" && name.trim().length > 0\n ? name.trim()\n : null;\n}\n\nasync function loadPriorityScoringSettings(\n runtime: IAgentRuntime,\n): Promise<{ enabled: boolean; model: string | null }> {\n try {\n const state = await loadLifeOpsAppState(runtime);\n return {\n enabled: state.priorityScoring.enabled === true,\n model: state.priorityScoring.model ?? null,\n };\n } catch (error) {\n logger.warn(\n {\n src: \"lifeops.inbox\",\n error: error instanceof Error ? error.message : String(error),\n },\n \"[LifeOpsInbox] failed to load priority scoring settings; using default model\",\n );\n return { enabled: true, model: null };\n }\n}\n\nasync function computeLlmScores(\n runtime: IAgentRuntime,\n messages: LifeOpsInboxMessage[],\n ownerName: string | null,\n): Promise<Map<string, PriorityScore>> {\n const out = new Map<string, PriorityScore>();\n if (messages.length === 0) return out;\n const settings = await loadPriorityScoringSettings(runtime);\n if (!settings.enabled) return out;\n const scored = await scoreInboxMessages(runtime, messages, {\n ownerName,\n model: settings.model,\n });\n for (let i = 0; i < messages.length; i += 1) {\n const message = messages[i];\n const score = scored[i];\n if (!message || !score) continue;\n out.set(message.id, score);\n }\n return out;\n}\n\n/**\n * Build the inbox once with a synchronous shell (channel allow-list, filters,\n * trimming) so we know which messages survive, then score those messages\n * with the LLM and rebuild thread groups with priority data attached.\n */\nasync function buildInboxWithLlm(\n runtime: IAgentRuntime,\n inbound: InboundMessage[],\n resolved: ResolvedInboxRequest,\n): Promise<LifeOpsInbox> {\n const ownerName = resolveOwnerName(runtime);\n // First pass: trim and filter without LLM scoring or grouping. We still\n // honor the chatType / participant / gmail filters here because LLM scoring\n // should only run on messages the user will actually see.\n const initial = buildInbox(inbound, {\n limit: resolved.limit,\n allowed: resolved.allowed,\n chatTypeFilter: resolved.chatTypeFilter,\n maxParticipants: resolved.maxParticipants,\n gmailAccountId: resolved.gmailAccountId,\n phoneAccountIds: resolved.phoneAccountIds,\n ownerName,\n // groupByThread/missedOnly are deferred to the second pass so we can\n // factor in LLM scores before grouping/filtering.\n groupByThread: false,\n });\n\n const llmScores = await computeLlmScores(\n runtime,\n initial.messages,\n ownerName,\n );\n\n // Second pass: re-build with the LLM scores so thread grouping picks them\n // up and missedOnly can filter on score >= 50.\n return buildInbox(inbound, {\n limit: resolved.limit,\n allowed: resolved.allowed,\n chatTypeFilter: resolved.chatTypeFilter,\n maxParticipants: resolved.maxParticipants,\n gmailAccountId: resolved.gmailAccountId,\n phoneAccountIds: resolved.phoneAccountIds,\n ownerName,\n groupByThread: resolved.groupByThread,\n missedOnly: resolved.missedOnly,\n sortByPriority: resolved.sortByPriority,\n llmScores,\n });\n}\n\nexport async function fetchInbox(\n runtime: IAgentRuntime,\n request: GetLifeOpsInboxRequest = {},\n gmailSource?: GmailInboxSource,\n xDmSource?: XDmInboxSource,\n): Promise<LifeOpsInbox> {\n const resolved = resolveInboxRequest(request);\n const inbound = await fetchAllMessages(runtime, {\n sources: Array.from(resolved.allowed),\n limit:\n resolved.cacheMode === \"refresh\" ? resolved.cacheLimit : resolved.limit,\n includeGmail: resolved.allowed.has(\"gmail\"),\n gmailSource,\n xDmSource,\n gmailGrantId: resolved.gmailAccountId,\n });\n return buildInboxWithLlm(runtime, inbound, resolved);\n}\n\nexport interface LifeOpsInboxService {\n getInbox(request?: GetLifeOpsInboxRequest): Promise<LifeOpsInbox>;\n markInboxEntryRead(inboxEntryId: string): Promise<LifeOpsInboxMessage>;\n}\n\ntype InboxMixinDependencies = LifeOpsServiceBase &\n GmailInboxSource &\n XDmInboxSource;\n\n/** @internal */\nexport function withInbox<TBase extends Constructor<LifeOpsServiceBase>>(\n Base: TBase,\n): MixinClass<TBase, LifeOpsInboxService> {\n const InboxBase = Base as unknown as Constructor<InboxMixinDependencies>;\n\n class LifeOpsInboxServiceMixin extends InboxBase {\n async getInbox(\n request: GetLifeOpsInboxRequest = {},\n ): Promise<LifeOpsInbox> {\n const resolved = resolveInboxRequest(request);\n const ownerName = resolveOwnerName(this.runtime);\n const buildFromCache = (\n messages: readonly LifeOpsCachedInboxMessage[],\n ): LifeOpsInbox =>\n buildInboxFromMessages(messages, {\n limit: resolved.limit,\n allowed: resolved.allowed,\n chatTypeFilter: resolved.chatTypeFilter,\n maxParticipants: resolved.maxParticipants,\n gmailAccountId: resolved.gmailAccountId,\n phoneAccountIds: resolved.phoneAccountIds,\n ownerName,\n groupByThread: resolved.groupByThread,\n missedOnly: resolved.missedOnly,\n sortByPriority: resolved.sortByPriority,\n });\n const cached = await this.repository.listCachedInboxMessages(\n this.runtime.agentId,\n {\n channels: Array.from(resolved.allowed),\n maxResults: cacheReadLimitFor(resolved),\n gmailAccountId: resolved.gmailAccountId,\n },\n );\n if (resolved.cacheMode === \"cache-only\") {\n return buildFromCache(cached);\n }\n if (resolved.cacheMode !== \"refresh\" && isFreshCache(cached)) {\n return buildFromCache(cached);\n }\n\n const inbound = await fetchAllMessages(this.runtime, {\n sources: Array.from(resolved.allowed),\n limit: cacheWarmLimitFor(resolved),\n includeGmail: resolved.allowed.has(\"gmail\"),\n gmailSource: this,\n xDmSource: this,\n gmailGrantId: resolved.gmailAccountId,\n });\n await this.repository.upsertCachedInboxMessages(\n this.runtime.agentId,\n toInboxMessages(inbound),\n );\n const inbox = await buildInboxWithLlm(this.runtime, inbound, resolved);\n await this.repository.upsertCachedInboxMessages(\n this.runtime.agentId,\n flattenInboxMessages(inbox),\n );\n return inbox;\n }\n\n async markInboxEntryRead(\n inboxEntryId: string,\n ): Promise<LifeOpsInboxMessage> {\n const id = requireNonEmptyString(inboxEntryId, \"inboxEntryId\");\n const message = await this.repository.markCachedInboxMessageRead(\n this.runtime.agentId,\n id,\n );\n if (!message) {\n fail(404, \"life-ops inbox entry not found\");\n }\n return message;\n }\n }\n\n return LifeOpsInboxServiceMixin as unknown as MixinClass<\n TBase,\n LifeOpsInboxService\n >;\n}\n"],"mappings":"AACA,SAAS,cAAc;AACvB;AAAA,EAEE;AAAA,OAOK;AACP;AAAA,EACE;AAAA,OAGK;AAEP,SAAS,2BAA2B;AACpC;AAAA,EAGE;AAAA,OACK;AAOP,SAAS,MAAM,6BAA6B;AAE5C,MAAM,sBAAsB;AAC5B,MAAM,uBAAuB;AAC7B,MAAM,yBAAyB;AAC/B,MAAM,yBAAyB;AAC/B,MAAM,yBAAyB;AAC/B,MAAM,oBAAoB,IAAI,IAAyB,sBAAsB;AAC7E,MAAM,8BAA8B,oBAAI,IAAyB;AAAA,EAC/D;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACD,MAAM,uBAAuB;AAC7B,MAAM,sBAAsB,KAAK,KAAK,KAAK;AAC3C,MAAM,sBAAsB;AAIrB,SAAS,sBACd,QAC4B;AAC5B,MAAI,OAAO,WAAW,SAAU,QAAO;AACvC,QAAM,UAAU,OAAO,KAAK,EAAE,YAAY;AAC1C,MAAI,CAAC,QAAS,QAAO;AACrB,MAAI,kBAAkB,IAAI,OAA8B,GAAG;AACzD,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEA,SAAS,yBAAyB,OAAuB;AACvD,SAAO,MAAM,KAAK,EAAE,YAAY;AAClC;AAEA,SAAS,0BAA0B,SAAuC;AACxE,SAAO,4BAA4B,IAAI,OAAO;AAChD;AAEA,SAAS,0BACP,SACA,iBACS;AACT,QAAM,aAAa;AAAA,IACjB,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ,UAAU;AAAA,IAClB,QAAQ,UAAU;AAAA,EACpB;AACA,SAAO,WAAW;AAAA,IAChB,CAAC,UACC,OAAO,UAAU,YACjB,gBAAgB,IAAI,yBAAyB,KAAK,CAAC;AAAA,EACvD;AACF;AAEA,SAAS,qBAGP;AACA,QAAM,SAAS,CAAC;AAChB,aAAW,WAAW,wBAAwB;AAC5C,WAAO,OAAO,IAAI,EAAE,OAAO,GAAG,QAAQ,EAAE;AAAA,EAC1C;AACA,SAAO;AACT;AAEA,SAAS,eACP,SACA,SACA,YACQ;AACR,MAAI,OAAO,QAAQ,aAAa,YAAY,QAAQ,SAAS,SAAS,GAAG;AACvE,WAAO,QAAQ;AAAA,EACjB;AACA,MAAI,YAAY,UAAU,QAAQ,iBAAiB;AACjD,WAAO,QAAQ;AAAA,EACjB;AACA,MAAI,YAAY,SAAS;AACvB,UAAM,UAAU,QAAQ,YACrB,QAAQ,mBAAmB,EAAE,EAC7B,QAAQ,sBAAsB,EAAE,EAChC,KAAK;AACR,UAAM,UACJ,QAAQ,aAAa,KAAK,EAAE,YAAY,KAAK,QAAQ;AACvD,WAAO,SAAS,OAAO,IAAI,WAAW,UAAU;AAAA,EAClD;AACA,MAAI,QAAQ,QAAQ;AAClB,WAAO,QAAQ;AAAA,EACjB;AACA,SAAO;AACT;AAEO,SAAS,eACd,SACA,SACA,OACqB;AACrB,QAAM,aACJ,YAAY,UAAW,QAAQ,kBAAkB,QAAQ,KAAM,QAAQ;AACzE,QAAM,WACJ,YAAY,UACP,QAAQ,kBAAkB,QAAQ,KAClC,QAAQ,YAAY,QAAQ,UAAU,QAAQ;AACrD,QAAM,aAAa,IAAI,KAAK,QAAQ,SAAS,EAAE,YAAY;AAC3D,QAAM,UACJ,YAAY,UACR,QAAQ,YAAY,WAAW,aAAa,IAC1C,QAAQ,YAAY,MAAM,cAAc,MAAM,IAC9C,QAAQ,cACV;AAMN,QAAM,SACJ,YAAY,UACR;AAAA,IACE,QAAQ,2BAA2B,QACjC,QAAQ,qBAAqB;AAAA,EACjC,IACA;AAEN,QAAM,WAAW,eAAe,SAAS,SAAS,UAAU;AAC5D,QAAM,WACJ,QAAQ,aACP,YAAY,UACT,OACA,QAAQ,gBAAgB,UACtB,UACA;AAER,SAAO;AAAA,IACL,IAAI,GAAG,OAAO,IAAI,cAAc,GAAG,QAAQ,SAAS,IAAI,KAAK,EAAE;AAAA,IAC/D;AAAA,IACA,QAAQ;AAAA,MACN,IAAI;AAAA,MACJ,aAAa,QAAQ,cAAc;AAAA,MACnC,OAAO,QAAQ,aAAa,KAAK,EAAE,YAAY,KAAK;AAAA,MACpD,WAAW;AAAA,IACb;AAAA,IACA;AAAA,IACA,SAAS,QAAQ;AAAA,IACjB;AAAA,IACA;AAAA,IACA,UAAU,QAAQ,YAAY;AAAA,IAC9B,WAAW;AAAA,MACT;AAAA,MACA;AAAA,MACA,GAAI,QAAQ,iBACR,EAAE,gBAAgB,QAAQ,eAAe,IACzC,CAAC;AAAA,MACL,GAAI,QAAQ,oBACR,EAAE,mBAAmB,QAAQ,kBAAkB,IAC/C,CAAC;AAAA,MACL,GAAI,QAAQ,cAAc,EAAE,aAAa,QAAQ,YAAY,IAAI,CAAC;AAAA,IACpE;AAAA,IACA;AAAA,IACA;AAAA,IACA,kBAAkB,QAAQ;AAAA,IAC1B,gBAAgB,QAAQ;AAAA,IACxB,mBAAmB,QAAQ;AAAA,IAC3B,gBAAgB,QAAQ;AAAA,IACxB,mBAAmB,QAAQ;AAAA,IAC3B,aAAa,QAAQ;AAAA,IACrB,YAAY,QAAQ;AAAA,IACpB,WAAW,QAAQ;AAAA,IACnB,eAAe,QAAQ;AAAA,EACzB;AACF;AAEO,SAAS,gBACd,SACuB;AACvB,QAAM,WAAkC,CAAC;AACzC,MAAI,QAAQ;AACZ,aAAW,WAAW,SAAS;AAC7B,UAAM,UAAU,sBAAsB,QAAQ,MAAM;AACpD,aAAS;AACT,QAAI,CAAC,QAAS;AACd,aAAS,KAAK,eAAe,SAAS,SAAS,QAAQ,CAAC,CAAC;AAAA,EAC3D;AACA,SAAO;AACT;AA4BA,SAAS,sBACP,SACA,gBACA,2BACQ;AACR,MAAI,QAAQ;AACZ,MAAI,gBAAgB;AACpB,MAAI,cAAc;AAClB,MAAI,cAAc;AAClB,aAAW,UAAU,SAAS;AAC5B,UAAM,OAAO,GAAG,OAAO,WAAW,EAAE,IAAI,OAAO,OAAO;AACtD,QAAI,CAAC,eAAe;AAClB,UACE,kBACA,eAAe,SAAS,KACxB,KAAK,YAAY,EAAE,SAAS,cAAc,GAC1C;AACA,wBAAgB;AAAA,MAClB,WAAW,SAAS,KAAK,IAAI,GAAG;AAC9B,wBAAgB;AAAA,MAClB;AAAA,IACF;AACA,QAAI,CAAC,eAAe,KAAK,SAAS,GAAG,GAAG;AACtC,oBAAc;AAAA,IAChB;AACA,QAAI,CAAC,aAAa;AAEhB,UACE,mDAAmD,KAAK,IAAI,KAC5D,2CAA2C,KAAK,IAAI,KACpD,uDAAuD,KAAK,IAAI,KAChE,gEAAgE;AAAA,QAC9D;AAAA,MACF,GACA;AACA,sBAAc;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AACA,MAAI,cAAe,UAAS;AAC5B,MAAI,YAAa,UAAS;AAC1B,MAAI,YAAa,UAAS;AAC1B,MAAI,0BAA2B,UAAS;AACxC,SAAO,KAAK,IAAI,OAAO,GAAG;AAC5B;AAEA,SAAS,eACP,UACA,QACM;AACN,MAAI,OAAO,SAAS,EAAG;AACvB,aAAW,WAAW,UAAU;AAC9B,UAAM,QAAQ,OAAO,IAAI,QAAQ,EAAE;AACnC,QAAI,CAAC,MAAO;AACZ,YAAQ,gBAAgB,MAAM;AAC9B,YAAQ,mBAAmB,MAAM;AAAA,EACnC;AACF;AAEA,SAAS,kBACP,UACA,WACA,WACA,iBAAiB,OACU;AAC3B,QAAM,UAAU,oBAAI,IAAmC;AACvD,aAAW,WAAW,UAAU;AAC9B,UAAM,MAAM,QAAQ,YAAY,QAAQ;AACxC,UAAM,SAAS,QAAQ,IAAI,GAAG,KAAK,CAAC;AACpC,WAAO,KAAK,OAAO;AACnB,YAAQ,IAAI,KAAK,MAAM;AAAA,EACzB;AAIA,MAAI,qBAAoC;AACxC,MAAI,oBAAoB;AACxB,aAAW,CAAC,KAAK,OAAO,KAAK,SAAS;AACpC,UAAM,SAAS,QAAQ,CAAC;AACxB,QAAI,CAAC,UAAU,OAAO,aAAa,QAAS;AAC5C,UAAM,KAAK,KAAK,MAAM,OAAO,UAAU;AACvC,QAAI,OAAO,SAAS,EAAE,KAAK,KAAK,mBAAmB;AACjD,0BAAoB;AACpB,2BAAqB;AAAA,IACvB;AAAA,EACF;AAEA,QAAM,iBACJ,OAAO,cAAc,YAAY,UAAU,KAAK,EAAE,SAAS,IACvD,UAAU,KAAK,EAAE,YAAY,IAC7B;AAEN,QAAM,SAAoC,CAAC;AAC3C,aAAW,CAAC,KAAK,OAAO,KAAK,SAAS;AACpC,YAAQ,KAAK,CAAC,GAAG,MAAM,KAAK,MAAM,EAAE,UAAU,IAAI,KAAK,MAAM,EAAE,UAAU,CAAC;AAC1E,UAAM,gBAAgB,QAAQ,CAAC;AAC/B,QAAI,CAAC,cAAe;AACpB,UAAM,aAAa,QAAQ;AAC3B,UAAM,cAAc,QAAQ,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE;AACpD,UAAM,mBAAmB,QAAQ;AAAA,MAC/B,CAAC,MAAM,OAAO,EAAE,qBAAqB;AAAA,IACvC,GAAG;AAEH,QAAI,iBAAiB,QAClB,IAAI,CAAC,MAAM,EAAE,aAAa,EAC1B,OAAO,CAAC,UAA2B,OAAO,UAAU,QAAQ;AAG/D,QAAI;AACJ,QAAI,wBAGO;AACX,eAAW,UAAU,SAAS;AAC5B,UAAI,CAAC,OAAO,iBAAkB;AAC9B,YAAM,QAAQ,OAAO,iBAAiB;AACtC,UAAI,CAAC,yBAAyB,QAAQ,sBAAsB,OAAO;AACjE,gCAAwB;AAAA,UACtB,UAAU,OAAO;AAAA,UACjB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AACA,QAAI,uBAAuB;AACzB,yBAAmB,sBAAsB;AAAA,IAC3C;AACA,QAAI,aAAa,UAAU,OAAO,GAAG;AACnC,YAAM,OAAO,oBAAI,IAA8B;AAC/C,UAAI,OAA6D;AACjE,iBAAW,UAAU,SAAS;AAC5B,cAAM,QAAQ,UAAU,IAAI,OAAO,EAAE;AACrC,YAAI,CAAC,MAAO;AACZ,aAAK,IAAI,MAAM,WAAW,KAAK,IAAI,MAAM,QAAQ,KAAK,KAAK,CAAC;AAC5D,YAAI,CAAC,QAAQ,MAAM,QAAQ,KAAK,OAAO;AACrC,iBAAO,EAAE,UAAU,MAAM,UAAU,OAAO,MAAM,MAAM;AAAA,QACxD;AAAA,MACF;AAGA,UAAI,MAAM;AACR,2BAAmB,KAAK;AAAA,MAC1B,WAAW,KAAK,OAAO,GAAG;AACxB,YAAI,cAAgC;AACpC,YAAI,WAAW;AACf,mBAAW,CAAC,KAAK,KAAK,KAAK,MAAM;AAC/B,cAAI,QAAQ,UAAU;AACpB,uBAAW;AACX,0BAAc;AAAA,UAChB;AAAA,QACF;AACA,2BAAmB;AAAA,MACrB;AAAA,IACF;AAIA,UAAM,oBAAoB,WAAW,IAAI,cAAc,EAAE,MAAM;AAC/D,QACE,CAAC,qBACD,cAAc,aAAa,WAC3B,OAAO,qBAAqB,YAC5B,oBAAoB,IACpB;AACA,YAAM,iBAAiB;AAAA,QACrB;AAAA,QACA;AAAA,QACA,QAAQ;AAAA,MACV;AACA,UAAI,iBAAiB,GAAG;AACtB,sBAAc,gBAAgB,KAAK;AAAA,UACjC,cAAc,iBAAiB;AAAA,UAC/B;AAAA,QACF;AACA,yBAAiB,CAAC,GAAG,gBAAgB,cAAc;AAAA,MACrD;AAAA,IACF;AAEA,UAAM,mBACJ,eAAe,SAAS,IAAI,KAAK,IAAI,GAAG,cAAc,IAAI;AAE5D,WAAO,KAAK;AAAA,MACV,UAAU;AAAA,MACV,SAAS,cAAc;AAAA,MACvB,UAAU,cAAc,YAAY;AAAA,MACpC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU,CAAC,GAAG,OAAO;AAAA,IACvB,CAAC;AAAA,EACH;AAEA,MAAI,gBAAgB;AAClB,WAAO,KAAK,CAAC,GAAG,MAAM;AACpB,YAAM,SAAS,EAAE,oBAAoB;AACrC,YAAM,SAAS,EAAE,oBAAoB;AACrC,UAAI,WAAW,OAAQ,QAAO,SAAS;AACvC,aACE,KAAK,MAAM,EAAE,cAAc,UAAU,IACrC,KAAK,MAAM,EAAE,cAAc,UAAU;AAAA,IAEzC,CAAC;AAAA,EACH,OAAO;AACL,WAAO;AAAA,MACL,CAAC,GAAG,MACF,KAAK,MAAM,EAAE,cAAc,UAAU,IACrC,KAAK,MAAM,EAAE,cAAc,UAAU;AAAA,IACzC;AAAA,EACF;AACA,SAAO;AACT;AAEA,SAAS,gBAAgB,SAA8B,OAAwB;AAC7E,MAAI,OAAO,QAAQ,cAAc,YAAY,QAAQ,UAAU,SAAS,GAAG;AACzE,WAAO;AAAA,EACT;AACA,QAAM,QAAQ,QAAQ;AACtB,MAAI,OAAO,UAAU,YAAY,QAAQ,qBAAqB;AAC5D,WAAO;AAAA,EACT;AACA,QAAM,WAAW,KAAK,MAAM,QAAQ,UAAU;AAC9C,MAAI,CAAC,OAAO,SAAS,QAAQ,EAAG,QAAO;AACvC,SAAO,QAAQ,YAAY;AAC7B;AAEA,SAAS,oBACP,OACA,OACS;AACT,SAAO,MAAM,SAAS,KAAK,CAAC,YAAY,gBAAgB,SAAS,KAAK,CAAC;AACzE;AAEO,SAAS,WACd,SACA,SACc;AACd,SAAO,uBAAuB,gBAAgB,OAAO,GAAG,OAAO;AACjE;AAEO,SAAS,uBACd,gBACA,SACc;AACd,QAAM,YAAmC,CAAC;AAC1C,QAAM,SAAS,mBAAmB;AAClC,QAAM,iBACJ,QAAQ,kBAAkB,QAAQ,eAAe,SAAS,IACtD,IAAI,IAAI,QAAQ,cAAc,IAC9B;AAEN,aAAW,WAAW,gBAAgB;AACpC,UAAM,UAAU,QAAQ;AACxB,QAAI,CAAC,WAAW,CAAC,QAAQ,QAAQ,IAAI,OAAO,GAAG;AAC7C;AAAA,IACF;AACA,UAAM,aAAa,EAAE,GAAG,SAAS,QAAQ,EAAE,GAAG,QAAQ,OAAO,EAAE;AAE/D,QAAI,kBAAkB,CAAC,eAAe,IAAI,WAAW,YAAY,IAAI,GAAG;AACtE;AAAA,IACF;AACA,QACE,OAAO,QAAQ,oBAAoB,YACnC,WAAW,aAAa,WACxB,OAAO,WAAW,qBAAqB,YACvC,WAAW,mBAAmB,QAAQ,iBACtC;AACA;AAAA,IACF;AACA,QACE,QAAQ,kBACR,YAAY,WACZ,WAAW,mBAAmB,QAAQ,gBACtC;AACA;AAAA,IACF;AACA,QACE,QAAQ,mBACR,QAAQ,gBAAgB,OAAO,KAC/B,0BAA0B,OAAO,KACjC,CAAC,0BAA0B,YAAY,QAAQ,eAAe,GAC9D;AACA;AAAA,IACF;AAEA,cAAU,KAAK,UAAU;AACzB,UAAM,eAAe,OAAO,OAAO;AACnC,iBAAa,SAAS;AACtB,QAAI,WAAW,QAAQ;AACrB,mBAAa,UAAU;AAAA,IACzB;AAAA,EACF;AAEA,YAAU,KAAK,CAAC,GAAG,MAAM,KAAK,MAAM,EAAE,UAAU,IAAI,KAAK,MAAM,EAAE,UAAU,CAAC;AAE5E,QAAM,UACJ,UAAU,SAAS,QAAQ,QACvB,UAAU,MAAM,GAAG,QAAQ,KAAK,IAChC;AAEN,MAAI,QAAQ,aAAa,QAAQ,UAAU,OAAO,GAAG;AACnD,mBAAe,SAAS,QAAQ,SAAS;AAAA,EAC3C;AAEA,MAAI,WAAW;AACf,MAAI;AAEJ,MAAI,QAAQ,eAAe;AACzB,mBAAe;AAAA,MACb;AAAA,MACA,QAAQ,aAAa;AAAA,MACrB,QAAQ;AAAA,MACR,QAAQ,mBAAmB;AAAA,IAC7B;AAAA,EACF;AAEA,MAAI,QAAQ,eAAe,MAAM;AAC/B,UAAM,QAAQ,KAAK,IAAI;AACvB,eAAW,SAAS,OAAO,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAC3D,QAAI,cAAc;AAChB,qBAAe,aAAa,OAAO,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAAA,IACzE;AAAA,EACF;AAEA,QAAM,QAAsB;AAAA,IAC1B;AAAA,IACA,eAAe;AAAA,IACf,YAAW,oBAAI,KAAK,GAAE,YAAY;AAAA,EACpC;AAEA,MAAI,cAAc;AAChB,UAAM,eAAe;AAAA,EACvB;AAEA,SAAO;AACT;AAEA,SAAS,kBAAkB,UAAwC;AACjE,MAAI,SAAS,cAAc,cAAc;AACvC,WAAO,KAAK,IAAI,SAAS,OAAO,SAAS,UAAU;AAAA,EACrD;AACA,MAAI,SAAS,aAAa,wBAAwB;AAChD,WAAO,KAAK,IAAI,SAAS,OAAO,SAAS,UAAU;AAAA,EACrD;AACA,SAAO,KAAK;AAAA,IACV;AAAA,IACA,KAAK,IAAI,SAAS,QAAQ,GAAG,sBAAsB;AAAA,EACrD;AACF;AAEA,SAAS,kBAAkB,UAAwC;AACjE,MAAI,SAAS,cAAc,WAAW;AACpC,WAAO,SAAS;AAAA,EAClB;AACA,SAAO,KAAK,IAAI,KAAK,KAAK,IAAI,SAAS,OAAO,sBAAsB,CAAC;AACvE;AAEA,SAAS,aAAa,SAAwD;AAC5E,MAAI,QAAQ,WAAW,EAAG,QAAO;AACjC,MAAI,SAAS;AACb,aAAW,UAAU,SAAS;AAC5B,UAAM,SAAS,KAAK,MAAM,OAAO,QAAQ;AACzC,QAAI,OAAO,SAAS,MAAM,KAAK,SAAS,OAAQ,UAAS;AAAA,EAC3D;AACA,SAAO,SAAS,KAAK,KAAK,IAAI,IAAI,UAAU;AAC9C;AAEA,SAAS,qBAAqB,OAA4C;AACxE,QAAM,WAAW,oBAAI,IAAiC;AACtD,aAAW,WAAW,MAAM,UAAU;AACpC,aAAS,IAAI,QAAQ,IAAI,OAAO;AAAA,EAClC;AACA,aAAW,SAAS,MAAM,gBAAgB,CAAC,GAAG;AAC5C,aAAS,IAAI,MAAM,cAAc,IAAI,MAAM,aAAa;AACxD,eAAW,WAAW,MAAM,UAAU;AACpC,eAAS,IAAI,QAAQ,IAAI,OAAO;AAAA,IAClC;AAAA,EACF;AACA,SAAO,CAAC,GAAG,SAAS,OAAO,CAAC;AAC9B;AAgBO,SAAS,oBACd,SACsB;AACtB,QAAM,QACJ,OAAO,QAAQ,UAAU,YACzB,OAAO,SAAS,QAAQ,KAAK,KAC7B,QAAQ,QAAQ,IACZ,KAAK,IAAI,KAAK,MAAM,QAAQ,KAAK,GAAG,GAAG,IACvC;AACN,QAAM,oBACJ,QAAQ,YAAY,QAAQ,SAAS,SAAS,IACzC,QAAQ,SAAS;AAAA,IAAO,CAAC,YACxB,kBAAkB,IAAI,OAAO;AAAA,EAC/B,IACA,CAAC,GAAG,sBAAsB;AAChC,QAAM,iBACJ,MAAM,QAAQ,QAAQ,cAAc,KAAK,QAAQ,eAAe,SAAS,IACpE,QAAQ,eAAe;AAAA,IACtB,CAAC,UAAU,UAAU,QAAQ,UAAU,WAAW,UAAU;AAAA,EAC9D,IACA;AACN,QAAM,YACJ,QAAQ,cAAc,aAAa,QAAQ,cAAc,eACrD,QAAQ,YACR;AACN,QAAM,sBACJ,OAAO,QAAQ,eAAe,YAC9B,OAAO,SAAS,QAAQ,UAAU,KAClC,QAAQ,aAAa,IACjB,KAAK,MAAM,QAAQ,UAAU,IAC7B;AACN,QAAM,aAAa,KAAK;AAAA,IACtB,wBACG,cAAc,iBACX,yBACA;AAAA,IACN;AAAA,EACF;AACA,QAAM,kBACJ,MAAM,QAAQ,QAAQ,eAAe,KAAK,QAAQ,gBAAgB,SAAS,IACvE,IAAI;AAAA,IACF,QAAQ,gBACL;AAAA,MAAI,CAAC,UACJ,OAAO,UAAU,WAAW,yBAAyB,KAAK,IAAI;AAAA,IAChE,EACC,OAAO,OAAO;AAAA,EACnB,IACA;AACN,SAAO;AAAA,IACL;AAAA,IACA,SAAS,IAAI,IAAyB,iBAAiB;AAAA,IACvD,eAAe,QAAQ,kBAAkB;AAAA,IACzC;AAAA,IACA,iBACE,OAAO,QAAQ,oBAAoB,YACnC,OAAO,SAAS,QAAQ,eAAe,KACvC,QAAQ,kBAAkB,IACtB,KAAK,MAAM,QAAQ,eAAe,IAClC;AAAA,IACN,gBACE,OAAO,QAAQ,mBAAmB,YAClC,QAAQ,eAAe,KAAK,EAAE,SAAS,IACnC,QAAQ,eAAe,KAAK,IAC5B;AAAA,IACN;AAAA,IACA,YAAY,QAAQ,eAAe;AAAA,IACnC,gBAAgB,QAAQ,mBAAmB;AAAA,IAC3C;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,iBAAiB,SAAuC;AAC/D,QAAM,OAAO,QAAQ,UAAU;AAC/B,SAAO,OAAO,SAAS,YAAY,KAAK,KAAK,EAAE,SAAS,IACpD,KAAK,KAAK,IACV;AACN;AAEA,eAAe,4BACb,SACqD;AACrD,MAAI;AACF,UAAM,QAAQ,MAAM,oBAAoB,OAAO;AAC/C,WAAO;AAAA,MACL,SAAS,MAAM,gBAAgB,YAAY;AAAA,MAC3C,OAAO,MAAM,gBAAgB,SAAS;AAAA,IACxC;AAAA,EACF,SAAS,OAAO;AACd,WAAO;AAAA,MACL;AAAA,QACE,KAAK;AAAA,QACL,OAAO,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,MAC9D;AAAA,MACA;AAAA,IACF;AACA,WAAO,EAAE,SAAS,MAAM,OAAO,KAAK;AAAA,EACtC;AACF;AAEA,eAAe,iBACb,SACA,UACA,WACqC;AACrC,QAAM,MAAM,oBAAI,IAA2B;AAC3C,MAAI,SAAS,WAAW,EAAG,QAAO;AAClC,QAAM,WAAW,MAAM,4BAA4B,OAAO;AAC1D,MAAI,CAAC,SAAS,QAAS,QAAO;AAC9B,QAAM,SAAS,MAAM,mBAAmB,SAAS,UAAU;AAAA,IACzD;AAAA,IACA,OAAO,SAAS;AAAA,EAClB,CAAC;AACD,WAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK,GAAG;AAC3C,UAAM,UAAU,SAAS,CAAC;AAC1B,UAAM,QAAQ,OAAO,CAAC;AACtB,QAAI,CAAC,WAAW,CAAC,MAAO;AACxB,QAAI,IAAI,QAAQ,IAAI,KAAK;AAAA,EAC3B;AACA,SAAO;AACT;AAOA,eAAe,kBACb,SACA,SACA,UACuB;AACvB,QAAM,YAAY,iBAAiB,OAAO;AAI1C,QAAM,UAAU,WAAW,SAAS;AAAA,IAClC,OAAO,SAAS;AAAA,IAChB,SAAS,SAAS;AAAA,IAClB,gBAAgB,SAAS;AAAA,IACzB,iBAAiB,SAAS;AAAA,IAC1B,gBAAgB,SAAS;AAAA,IACzB,iBAAiB,SAAS;AAAA,IAC1B;AAAA;AAAA;AAAA,IAGA,eAAe;AAAA,EACjB,CAAC;AAED,QAAM,YAAY,MAAM;AAAA,IACtB;AAAA,IACA,QAAQ;AAAA,IACR;AAAA,EACF;AAIA,SAAO,WAAW,SAAS;AAAA,IACzB,OAAO,SAAS;AAAA,IAChB,SAAS,SAAS;AAAA,IAClB,gBAAgB,SAAS;AAAA,IACzB,iBAAiB,SAAS;AAAA,IAC1B,gBAAgB,SAAS;AAAA,IACzB,iBAAiB,SAAS;AAAA,IAC1B;AAAA,IACA,eAAe,SAAS;AAAA,IACxB,YAAY,SAAS;AAAA,IACrB,gBAAgB,SAAS;AAAA,IACzB;AAAA,EACF,CAAC;AACH;AAEA,eAAsB,WACpB,SACA,UAAkC,CAAC,GACnC,aACA,WACuB;AACvB,QAAM,WAAW,oBAAoB,OAAO;AAC5C,QAAM,UAAU,MAAM,iBAAiB,SAAS;AAAA,IAC9C,SAAS,MAAM,KAAK,SAAS,OAAO;AAAA,IACpC,OACE,SAAS,cAAc,YAAY,SAAS,aAAa,SAAS;AAAA,IACpE,cAAc,SAAS,QAAQ,IAAI,OAAO;AAAA,IAC1C;AAAA,IACA;AAAA,IACA,cAAc,SAAS;AAAA,EACzB,CAAC;AACD,SAAO,kBAAkB,SAAS,SAAS,QAAQ;AACrD;AAYO,SAAS,UACd,MACwC;AACxC,QAAM,YAAY;AAAA,EAElB,MAAM,iCAAiC,UAAU;AAAA,IAC/C,MAAM,SACJ,UAAkC,CAAC,GACZ;AACvB,YAAM,WAAW,oBAAoB,OAAO;AAC5C,YAAM,YAAY,iBAAiB,KAAK,OAAO;AAC/C,YAAM,iBAAiB,CACrB,aAEA,uBAAuB,UAAU;AAAA,QAC/B,OAAO,SAAS;AAAA,QAChB,SAAS,SAAS;AAAA,QAClB,gBAAgB,SAAS;AAAA,QACzB,iBAAiB,SAAS;AAAA,QAC1B,gBAAgB,SAAS;AAAA,QACzB,iBAAiB,SAAS;AAAA,QAC1B;AAAA,QACA,eAAe,SAAS;AAAA,QACxB,YAAY,SAAS;AAAA,QACrB,gBAAgB,SAAS;AAAA,MAC3B,CAAC;AACH,YAAM,SAAS,MAAM,KAAK,WAAW;AAAA,QACnC,KAAK,QAAQ;AAAA,QACb;AAAA,UACE,UAAU,MAAM,KAAK,SAAS,OAAO;AAAA,UACrC,YAAY,kBAAkB,QAAQ;AAAA,UACtC,gBAAgB,SAAS;AAAA,QAC3B;AAAA,MACF;AACA,UAAI,SAAS,cAAc,cAAc;AACvC,eAAO,eAAe,MAAM;AAAA,MAC9B;AACA,UAAI,SAAS,cAAc,aAAa,aAAa,MAAM,GAAG;AAC5D,eAAO,eAAe,MAAM;AAAA,MAC9B;AAEA,YAAM,UAAU,MAAM,iBAAiB,KAAK,SAAS;AAAA,QACnD,SAAS,MAAM,KAAK,SAAS,OAAO;AAAA,QACpC,OAAO,kBAAkB,QAAQ;AAAA,QACjC,cAAc,SAAS,QAAQ,IAAI,OAAO;AAAA,QAC1C,aAAa;AAAA,QACb,WAAW;AAAA,QACX,cAAc,SAAS;AAAA,MACzB,CAAC;AACD,YAAM,KAAK,WAAW;AAAA,QACpB,KAAK,QAAQ;AAAA,QACb,gBAAgB,OAAO;AAAA,MACzB;AACA,YAAM,QAAQ,MAAM,kBAAkB,KAAK,SAAS,SAAS,QAAQ;AACrE,YAAM,KAAK,WAAW;AAAA,QACpB,KAAK,QAAQ;AAAA,QACb,qBAAqB,KAAK;AAAA,MAC5B;AACA,aAAO;AAAA,IACT;AAAA,IAEA,MAAM,mBACJ,cAC8B;AAC9B,YAAM,KAAK,sBAAsB,cAAc,cAAc;AAC7D,YAAM,UAAU,MAAM,KAAK,WAAW;AAAA,QACpC,KAAK,QAAQ;AAAA,QACb;AAAA,MACF;AACA,UAAI,CAAC,SAAS;AACZ,aAAK,KAAK,gCAAgC;AAAA,MAC5C;AACA,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AAIT;","names":[]}
@@ -0,0 +1,65 @@
1
+ import { type LifeOpsMessageChannel, type LifeOpsRelationship, type LifeOpsRelationshipInteraction } from "@elizaos/shared";
2
+ import type { Constructor, LifeOpsServiceBase } from "./service-mixin-core.js";
3
+ /** @internal */
4
+ export declare function withRelationships<TBase extends Constructor<LifeOpsServiceBase>>(Base: TBase): {
5
+ new (...args: any[]): {
6
+ upsertRelationship(input: Omit<LifeOpsRelationship, "id" | "agentId" | "createdAt" | "updatedAt"> & {
7
+ id?: string;
8
+ }): Promise<LifeOpsRelationship>;
9
+ getRelationship(id: string): Promise<LifeOpsRelationship | null>;
10
+ listRelationships(opts?: {
11
+ limit?: number;
12
+ primaryChannel?: LifeOpsMessageChannel;
13
+ }): Promise<LifeOpsRelationship[]>;
14
+ logInteraction(input: Omit<LifeOpsRelationshipInteraction, "id" | "agentId" | "createdAt">): Promise<LifeOpsRelationshipInteraction>;
15
+ getDaysSinceContact(relationshipId: string): Promise<number | null>;
16
+ readonly repository: import("./repository.js").LifeOpsRepository;
17
+ readonly explicitOwnerEntityIdValue: string | null;
18
+ readonly ownerEntityIdValue: string;
19
+ readonly scheduleSyncClient: import("@elizaos/plugin-elizacloud/cloud/lifeops-schedule-sync-client").LifeOpsScheduleSyncClient;
20
+ ownerRoutingEntityIdPromise: Promise<string | null> | null;
21
+ adaptiveWindowPolicyCache: {
22
+ policy: ReturnType<typeof import("./defaults.js").computeAdaptiveWindowPolicy>;
23
+ computedAt: number;
24
+ } | null;
25
+ readonly runtime: import("@elizaos/core").IAgentRuntime;
26
+ agentId(): string;
27
+ ownerEntityId(): string;
28
+ ownerRoutingEntityId(): Promise<string | null>;
29
+ getBrowserSettingsInternal(): Promise<import("@elizaos/plugin-browser").BrowserBridgeSettings>;
30
+ isBrowserPaused(settings: import("@elizaos/plugin-browser").BrowserBridgeSettings): boolean;
31
+ requireBrowserAvailableForActions(actions: readonly import("@elizaos/plugin-browser").BrowserBridgeAction[]): Promise<import("@elizaos/plugin-browser").BrowserBridgeSettings>;
32
+ buildBrowserCompanion(request: import("@elizaos/plugin-browser").UpsertBrowserBridgeCompanionRequest, current: import("@elizaos/plugin-browser").BrowserBridgeCompanionStatus | null): import("@elizaos/plugin-browser").BrowserBridgeCompanionStatus;
33
+ normalizeOwnership(input: import("@elizaos/shared").LifeOpsOwnershipInput | undefined, current?: import("@elizaos/shared").LifeOpsOwnership): import("@elizaos/shared").LifeOpsOwnership;
34
+ normalizeChildOwnership(parent: import("@elizaos/shared").LifeOpsOwnership, input: import("@elizaos/shared").LifeOpsOwnershipInput | undefined, field?: string): import("@elizaos/shared").LifeOpsOwnership;
35
+ logLifeOpsWarn(operation: string, message: string, context?: Record<string, unknown>): void;
36
+ logLifeOpsError(operation: string, error: unknown, context?: Record<string, unknown>): void;
37
+ withReminderProcessingLock<T>(operation: () => Promise<T>): Promise<T>;
38
+ recordAudit(eventType: import("@elizaos/shared").LifeOpsAuditEventType, ownerType: "definition" | "occurrence" | "goal", ownerId: string, reason: string, inputs: Record<string, unknown>, decision: Record<string, unknown>): Promise<void>;
39
+ recordConnectorAudit(ownerId: string, reason: string, inputs: Record<string, unknown>, decision: Record<string, unknown>): Promise<void>;
40
+ recordChannelPolicyAudit(ownerId: string, reason: string, inputs: Record<string, unknown>, decision: Record<string, unknown>): Promise<void>;
41
+ recordWorkflowAudit(eventType: "workflow_created" | "workflow_updated" | "workflow_run", ownerId: string, actor: "user" | "workflow" | undefined, reason: string, inputs: Record<string, unknown>, decision: Record<string, unknown>): Promise<import("@elizaos/shared").LifeOpsAuditEvent>;
42
+ recordReminderAudit(eventType: "reminder_due" | "reminder_delivered" | "reminder_blocked" | "reminder_escalation_started" | "reminder_escalation_resolved", ownerType: "occurrence" | "calendar_event", ownerId: string, reason: string, inputs: Record<string, unknown>, decision: Record<string, unknown>): Promise<void>;
43
+ recordBrowserAudit(eventType: "browser_session_created" | "browser_session_updated", ownerId: string, reason: string, inputs: Record<string, unknown>, decision: Record<string, unknown>): Promise<void>;
44
+ recordXPostAudit(ownerId: string, reason: string, inputs: Record<string, unknown>, decision: Record<string, unknown>): Promise<void>;
45
+ clearGoogleGrantAuthFailure(grant: import("@elizaos/shared").LifeOpsConnectorGrant): Promise<import("@elizaos/shared").LifeOpsConnectorGrant>;
46
+ markGoogleGrantNeedsReauth(grant: import("@elizaos/shared").LifeOpsConnectorGrant, message: string): Promise<import("@elizaos/shared").LifeOpsConnectorGrant>;
47
+ emitAssistantEvent(text: string, source: string, data?: Record<string, unknown>): void;
48
+ getWorkflowDefinition(workflowId: string): Promise<import("@elizaos/shared").LifeOpsWorkflowDefinition>;
49
+ requireXGrant(requestedMode?: import("@elizaos/shared").LifeOpsConnectorMode): Promise<import("@elizaos/shared").LifeOpsConnectorGrant>;
50
+ };
51
+ } & TBase;
52
+ /** Public surface added by {@link withRelationships}; listed on the LifeOpsService
53
+ * declaration-merge (mixin composition exceeds TS inference depth). Type-only. */
54
+ export interface LifeOpsRelationshipService {
55
+ upsertRelationship(input: Omit<LifeOpsRelationship, "id" | "agentId" | "createdAt" | "updatedAt"> & {
56
+ id?: string;
57
+ }): Promise<LifeOpsRelationship>;
58
+ getRelationship(id: string): Promise<LifeOpsRelationship | null>;
59
+ listRelationships(opts?: {
60
+ limit?: number;
61
+ primaryChannel?: LifeOpsMessageChannel;
62
+ }): Promise<LifeOpsRelationship[]>;
63
+ logInteraction(input: Omit<LifeOpsRelationshipInteraction, "id" | "agentId" | "createdAt">): Promise<LifeOpsRelationshipInteraction>;
64
+ }
65
+ //# sourceMappingURL=service-mixin-relationships.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-mixin-relationships.d.ts","sourceRoot":"","sources":["../../src/lifeops/service-mixin-relationships.ts"],"names":[],"mappings":"AAaA,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,8BAA8B,EAEpC,MAAM,iBAAiB,CAAC;AASzB,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAM/E,gBAAgB;AAChB,wBAAgB,iBAAiB,CAC/B,KAAK,SAAS,WAAW,CAAC,kBAAkB,CAAC,EAC7C,IAAI,EAAE,KAAK;;kCAGA,IAAI,CACT,mBAAmB,EACnB,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,CAC7C,GAAG;YAAE,EAAE,CAAC,EAAE,MAAM,CAAA;SAAE,GAClB,OAAO,CAAC,mBAAmB,CAAC;4BAqEL,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;iCAavC;YAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,cAAc,CAAC,EAAE,qBAAqB,CAAC;SACxC,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;8BA4BzB,IAAI,CACT,8BAA8B,EAC9B,IAAI,GAAG,SAAS,GAAG,WAAW,CAC/B,GACA,OAAO,CAAC,8BAA8B,CAAC;4CA0BA,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAqB5E;AAED;kFACkF;AAClF,MAAM,WAAW,0BAA0B;IACzC,kBAAkB,CAChB,KAAK,EAAE,IAAI,CACT,mBAAmB,EACnB,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,WAAW,CAC7C,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GAClB,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAChC,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;IACjE,iBAAiB,CAAC,IAAI,CAAC,EAAE;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,cAAc,CAAC,EAAE,qBAAqB,CAAC;KACxC,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACnC,cAAc,CACZ,KAAK,EAAE,IAAI,CAAC,8BAA8B,EAAE,IAAI,GAAG,SAAS,GAAG,WAAW,CAAC,GAC1E,OAAO,CAAC,8BAA8B,CAAC,CAAC;CAC5C"}
@@ -0,0 +1,150 @@
1
+ import crypto from "node:crypto";
2
+ import {
3
+ SELF_ENTITY_ID
4
+ } from "@elizaos/shared";
5
+ import {
6
+ contactAttributes,
7
+ contactEdgeId,
8
+ contactIdentities,
9
+ LIFEOPS_CONTACT_TAG,
10
+ lifeOpsRelationshipFromEntity,
11
+ userTags
12
+ } from "./relationships/mapping.js";
13
+ function isoNow() {
14
+ return (/* @__PURE__ */ new Date()).toISOString();
15
+ }
16
+ function withRelationships(Base) {
17
+ class LifeOpsRelationshipsServiceMixin extends Base {
18
+ async upsertRelationship(input) {
19
+ const agentId = this.agentId();
20
+ const entityStore = await this.repository.entityStore(agentId);
21
+ const relationshipStore = await this.repository.relationshipStore(agentId);
22
+ await entityStore.ensureSelf();
23
+ const now = isoNow();
24
+ const fields = {
25
+ primaryChannel: input.primaryChannel,
26
+ primaryHandle: input.primaryHandle,
27
+ email: input.email ?? null,
28
+ phone: input.phone ?? null,
29
+ notes: input.notes
30
+ };
31
+ let entityId = input.id ?? null;
32
+ if (!entityId) {
33
+ const observed = await entityStore.observeIdentity({
34
+ platform: input.primaryChannel,
35
+ handle: input.primaryHandle,
36
+ displayName: input.name,
37
+ evidence: [LIFEOPS_CONTACT_TAG],
38
+ confidence: 1,
39
+ suggestedType: "person"
40
+ });
41
+ entityId = observed.entity.entityId;
42
+ }
43
+ const existing = await entityStore.get(entityId);
44
+ const tags = Array.from(
45
+ /* @__PURE__ */ new Set([...userTags(input.tags), LIFEOPS_CONTACT_TAG])
46
+ );
47
+ const entity = await entityStore.upsert({
48
+ entityId,
49
+ type: "person",
50
+ preferredName: input.name,
51
+ identities: contactIdentities(fields, now),
52
+ attributes: contactAttributes(fields, now),
53
+ tags,
54
+ visibility: "owner_agent_admin",
55
+ state: input.lastContactedAt ? {
56
+ ...existing?.state ?? {},
57
+ lastObservedAt: input.lastContactedAt,
58
+ lastInboundAt: input.lastContactedAt
59
+ } : existing?.state ?? {}
60
+ });
61
+ const edge = await relationshipStore.upsert({
62
+ relationshipId: contactEdgeId(entity.entityId),
63
+ fromEntityId: SELF_ENTITY_ID,
64
+ toEntityId: entity.entityId,
65
+ type: input.relationshipType || "contact",
66
+ metadata: { ...input.metadata },
67
+ state: input.lastContactedAt ? { lastInteractionAt: input.lastContactedAt } : {},
68
+ evidence: [LIFEOPS_CONTACT_TAG],
69
+ confidence: 1,
70
+ source: "import"
71
+ });
72
+ return lifeOpsRelationshipFromEntity(agentId, entity, edge);
73
+ }
74
+ async getRelationship(id) {
75
+ const agentId = this.agentId();
76
+ const entityStore = await this.repository.entityStore(agentId);
77
+ const entity = await entityStore.get(id);
78
+ if (!entity) {
79
+ return null;
80
+ }
81
+ const relationshipStore = await this.repository.relationshipStore(agentId);
82
+ const edge = await relationshipStore.get(contactEdgeId(id));
83
+ return lifeOpsRelationshipFromEntity(agentId, entity, edge);
84
+ }
85
+ async listRelationships(opts) {
86
+ const agentId = this.agentId();
87
+ const entityStore = await this.repository.entityStore(agentId);
88
+ const relationshipStore = await this.repository.relationshipStore(agentId);
89
+ const entities = await entityStore.list({
90
+ type: "person",
91
+ tag: LIFEOPS_CONTACT_TAG,
92
+ ...opts?.limit ? { limit: opts.limit } : {}
93
+ });
94
+ const result = [];
95
+ for (const entity of entities) {
96
+ const edge = await relationshipStore.get(
97
+ contactEdgeId(entity.entityId)
98
+ );
99
+ const dto = lifeOpsRelationshipFromEntity(agentId, entity, edge);
100
+ if (opts?.primaryChannel && dto.primaryChannel !== opts.primaryChannel) {
101
+ continue;
102
+ }
103
+ result.push(dto);
104
+ }
105
+ return result;
106
+ }
107
+ async logInteraction(input) {
108
+ const agentId = this.agentId();
109
+ const record = {
110
+ id: crypto.randomUUID(),
111
+ agentId,
112
+ relationshipId: input.relationshipId,
113
+ channel: input.channel,
114
+ direction: input.direction,
115
+ summary: input.summary,
116
+ occurredAt: input.occurredAt,
117
+ metadata: input.metadata,
118
+ createdAt: isoNow()
119
+ };
120
+ await this.repository.logRelationshipInteraction(record);
121
+ const entityStore = await this.repository.entityStore(agentId);
122
+ await entityStore.recordInteraction(input.relationshipId, {
123
+ platform: input.channel,
124
+ direction: input.direction,
125
+ summary: input.summary,
126
+ occurredAt: input.occurredAt
127
+ });
128
+ return record;
129
+ }
130
+ async getDaysSinceContact(relationshipId) {
131
+ const entityStore = await this.repository.entityStore(this.agentId());
132
+ const entity = await entityStore.get(relationshipId);
133
+ const last = entity?.state.lastObservedAt ?? entity?.state.lastInboundAt ?? entity?.state.lastOutboundAt ?? null;
134
+ if (!last) {
135
+ return null;
136
+ }
137
+ const lastMs = Date.parse(last);
138
+ if (!Number.isFinite(lastMs)) {
139
+ return null;
140
+ }
141
+ const diffMs = Date.now() - lastMs;
142
+ return Math.max(0, Math.floor(diffMs / (24 * 60 * 60 * 1e3)));
143
+ }
144
+ }
145
+ return LifeOpsRelationshipsServiceMixin;
146
+ }
147
+ export {
148
+ withRelationships
149
+ };
150
+ //# sourceMappingURL=service-mixin-relationships.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lifeops/service-mixin-relationships.ts"],"sourcesContent":["/**\n * Relationship / contact surface of `LifeOpsService`.\n *\n * Contacts live in the runtime knowledge graph (`EntityStore` person nodes +\n * a single SELF→contact `RelationshipStore` edge) — the single source of\n * truth. There is no `life_relationships` table and no best-effort dual-write\n * projection: writes go straight to the graph and surface their errors.\n *\n * Per-interaction history is kept in `life_relationship_interactions` (keyed by\n * the graph `entityId`); the graph deliberately delegates per-edge history to\n * that audit log rather than replicating it (see `EntityStore.recordInteraction`).\n */\nimport crypto from \"node:crypto\";\nimport {\n type LifeOpsMessageChannel,\n type LifeOpsRelationship,\n type LifeOpsRelationshipInteraction,\n SELF_ENTITY_ID,\n} from \"@elizaos/shared\";\nimport {\n contactAttributes,\n contactEdgeId,\n contactIdentities,\n LIFEOPS_CONTACT_TAG,\n lifeOpsRelationshipFromEntity,\n userTags,\n} from \"./relationships/mapping.js\";\nimport type { Constructor, LifeOpsServiceBase } from \"./service-mixin-core.js\";\n\nfunction isoNow(): string {\n return new Date().toISOString();\n}\n\n/** @internal */\nexport function withRelationships<\n TBase extends Constructor<LifeOpsServiceBase>,\n>(Base: TBase) {\n class LifeOpsRelationshipsServiceMixin extends Base {\n async upsertRelationship(\n input: Omit<\n LifeOpsRelationship,\n \"id\" | \"agentId\" | \"createdAt\" | \"updatedAt\"\n > & { id?: string },\n ): Promise<LifeOpsRelationship> {\n const agentId = this.agentId();\n const entityStore = await this.repository.entityStore(agentId);\n const relationshipStore =\n await this.repository.relationshipStore(agentId);\n await entityStore.ensureSelf();\n\n const now = isoNow();\n const fields = {\n primaryChannel: input.primaryChannel,\n primaryHandle: input.primaryHandle,\n email: input.email ?? null,\n phone: input.phone ?? null,\n notes: input.notes,\n };\n\n // Resolve the canonical entity: an explicit id updates in place;\n // otherwise dedup by the primary (platform, handle) via the merge engine.\n let entityId = input.id ?? null;\n if (!entityId) {\n const observed = await entityStore.observeIdentity({\n platform: input.primaryChannel,\n handle: input.primaryHandle,\n displayName: input.name,\n evidence: [LIFEOPS_CONTACT_TAG],\n confidence: 1,\n suggestedType: \"person\",\n });\n entityId = observed.entity.entityId;\n }\n\n const existing = await entityStore.get(entityId);\n const tags = Array.from(\n new Set([...userTags(input.tags), LIFEOPS_CONTACT_TAG]),\n );\n const entity = await entityStore.upsert({\n entityId,\n type: \"person\",\n preferredName: input.name,\n identities: contactIdentities(fields, now),\n attributes: contactAttributes(fields, now),\n tags,\n visibility: \"owner_agent_admin\",\n state: input.lastContactedAt\n ? {\n ...(existing?.state ?? {}),\n lastObservedAt: input.lastContactedAt,\n lastInboundAt: input.lastContactedAt,\n }\n : (existing?.state ?? {}),\n });\n\n const edge = await relationshipStore.upsert({\n relationshipId: contactEdgeId(entity.entityId),\n fromEntityId: SELF_ENTITY_ID,\n toEntityId: entity.entityId,\n type: input.relationshipType || \"contact\",\n metadata: { ...input.metadata },\n state: input.lastContactedAt\n ? { lastInteractionAt: input.lastContactedAt }\n : {},\n evidence: [LIFEOPS_CONTACT_TAG],\n confidence: 1,\n source: \"import\",\n });\n\n return lifeOpsRelationshipFromEntity(agentId, entity, edge);\n }\n\n async getRelationship(id: string): Promise<LifeOpsRelationship | null> {\n const agentId = this.agentId();\n const entityStore = await this.repository.entityStore(agentId);\n const entity = await entityStore.get(id);\n if (!entity) {\n return null;\n }\n const relationshipStore =\n await this.repository.relationshipStore(agentId);\n const edge = await relationshipStore.get(contactEdgeId(id));\n return lifeOpsRelationshipFromEntity(agentId, entity, edge);\n }\n\n async listRelationships(opts?: {\n limit?: number;\n primaryChannel?: LifeOpsMessageChannel;\n }): Promise<LifeOpsRelationship[]> {\n const agentId = this.agentId();\n const entityStore = await this.repository.entityStore(agentId);\n const relationshipStore =\n await this.repository.relationshipStore(agentId);\n const entities = await entityStore.list({\n type: \"person\",\n tag: LIFEOPS_CONTACT_TAG,\n ...(opts?.limit ? { limit: opts.limit } : {}),\n });\n const result: LifeOpsRelationship[] = [];\n for (const entity of entities) {\n const edge = await relationshipStore.get(\n contactEdgeId(entity.entityId),\n );\n const dto = lifeOpsRelationshipFromEntity(agentId, entity, edge);\n if (\n opts?.primaryChannel &&\n dto.primaryChannel !== opts.primaryChannel\n ) {\n continue;\n }\n result.push(dto);\n }\n return result;\n }\n\n async logInteraction(\n input: Omit<\n LifeOpsRelationshipInteraction,\n \"id\" | \"agentId\" | \"createdAt\"\n >,\n ): Promise<LifeOpsRelationshipInteraction> {\n const agentId = this.agentId();\n const record: LifeOpsRelationshipInteraction = {\n id: crypto.randomUUID(),\n agentId,\n relationshipId: input.relationshipId,\n channel: input.channel,\n direction: input.direction,\n summary: input.summary,\n occurredAt: input.occurredAt,\n metadata: input.metadata,\n createdAt: isoNow(),\n };\n // Per-interaction audit log (keyed by the graph entityId) ...\n await this.repository.logRelationshipInteraction(record);\n // ... plus aggregate recency state on the graph entity.\n const entityStore = await this.repository.entityStore(agentId);\n await entityStore.recordInteraction(input.relationshipId, {\n platform: input.channel,\n direction: input.direction,\n summary: input.summary,\n occurredAt: input.occurredAt,\n });\n return record;\n }\n\n async getDaysSinceContact(relationshipId: string): Promise<number | null> {\n const entityStore = await this.repository.entityStore(this.agentId());\n const entity = await entityStore.get(relationshipId);\n const last =\n entity?.state.lastObservedAt ??\n entity?.state.lastInboundAt ??\n entity?.state.lastOutboundAt ??\n null;\n if (!last) {\n return null;\n }\n const lastMs = Date.parse(last);\n if (!Number.isFinite(lastMs)) {\n return null;\n }\n const diffMs = Date.now() - lastMs;\n return Math.max(0, Math.floor(diffMs / (24 * 60 * 60 * 1000)));\n }\n }\n\n return LifeOpsRelationshipsServiceMixin;\n}\n\n/** Public surface added by {@link withRelationships}; listed on the LifeOpsService\n * declaration-merge (mixin composition exceeds TS inference depth). Type-only. */\nexport interface LifeOpsRelationshipService {\n upsertRelationship(\n input: Omit<\n LifeOpsRelationship,\n \"id\" | \"agentId\" | \"createdAt\" | \"updatedAt\"\n > & { id?: string },\n ): Promise<LifeOpsRelationship>;\n getRelationship(id: string): Promise<LifeOpsRelationship | null>;\n listRelationships(opts?: {\n limit?: number;\n primaryChannel?: LifeOpsMessageChannel;\n }): Promise<LifeOpsRelationship[]>;\n logInteraction(\n input: Omit<LifeOpsRelationshipInteraction, \"id\" | \"agentId\" | \"createdAt\">,\n ): Promise<LifeOpsRelationshipInteraction>;\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,62 @@
1
+ import { type IAgentRuntime } from "@elizaos/core";
2
+ import type { SyncLifeOpsScheduleObservationsRequest, SyncLifeOpsScheduleObservationsResponse } from "@elizaos/plugin-elizacloud/cloud/lifeops-schedule-sync-contracts";
3
+ import type { AcknowledgeLifeOpsReminderRequest, CaptureLifeOpsActivitySignalRequest, CaptureLifeOpsManualOverrideRequest, CaptureLifeOpsPhoneConsentRequest, LifeOpsActivitySignal, LifeOpsChannelPolicy, LifeOpsManualOverrideResult, LifeOpsReminderAttempt, LifeOpsReminderInspection, LifeOpsReminderPreference, LifeOpsReminderProcessingResult, LifeOpsReminderStep, LifeOpsReminderUrgency, LifeOpsWorkflowRun, SetLifeOpsReminderPreferenceRequest, UpsertLifeOpsChannelPolicyRequest } from "../contracts/index.js";
4
+ import type { Constructor, LifeOpsServiceBase, MixinClass } from "./service-mixin-core.js";
5
+ export { REMINDER_DISPATCH_INSTRUCTIONS } from "./optimized-prompt-instructions.js";
6
+ type ReminderAttemptLifecycle = "plan" | "escalation";
7
+ export interface LifeOpsReminderService {
8
+ getReminderPreference(definitionId?: string | null): Promise<LifeOpsReminderPreference>;
9
+ setReminderPreference(request: SetLifeOpsReminderPreferenceRequest): Promise<LifeOpsReminderPreference>;
10
+ captureActivitySignal(request: CaptureLifeOpsActivitySignalRequest): Promise<LifeOpsActivitySignal>;
11
+ captureManualOverride(request: CaptureLifeOpsManualOverrideRequest): Promise<LifeOpsManualOverrideResult>;
12
+ listActivitySignals(args?: {
13
+ sinceAt?: string | null;
14
+ limit?: number | null;
15
+ states?: LifeOpsActivitySignal["state"][] | null;
16
+ }): Promise<LifeOpsActivitySignal[]>;
17
+ upsertChannelPolicy(request: UpsertLifeOpsChannelPolicyRequest): Promise<LifeOpsChannelPolicy>;
18
+ capturePhoneConsent(request: CaptureLifeOpsPhoneConsentRequest): Promise<{
19
+ phoneNumber: string;
20
+ policies: LifeOpsChannelPolicy[];
21
+ }>;
22
+ processReminders(request?: {
23
+ now?: string;
24
+ limit?: number;
25
+ }): Promise<LifeOpsReminderProcessingResult>;
26
+ processScheduledWork(request?: {
27
+ now?: string;
28
+ reminderLimit?: number;
29
+ workflowLimit?: number;
30
+ scheduledTaskLimit?: number;
31
+ }): Promise<{
32
+ now: string;
33
+ reminderAttempts: LifeOpsReminderAttempt[];
34
+ workflowRuns: LifeOpsWorkflowRun[];
35
+ scheduledTaskFires: Array<Record<string, unknown>>;
36
+ scheduledTaskCompletionTimeouts: Array<Record<string, unknown>>;
37
+ }>;
38
+ relockWebsiteAccessGroup(groupKey: string, now?: Date): Promise<{
39
+ ok: true;
40
+ }>;
41
+ resolveWebsiteAccessCallback(callbackKey: string, now?: Date): Promise<{
42
+ ok: true;
43
+ }>;
44
+ inspectReminder(ownerType: "occurrence" | "calendar_event", ownerId: string): Promise<LifeOpsReminderInspection>;
45
+ acknowledgeReminder(request: AcknowledgeLifeOpsReminderRequest): Promise<{
46
+ ok: true;
47
+ }>;
48
+ ingestScheduleObservations(request: SyncLifeOpsScheduleObservationsRequest): Promise<SyncLifeOpsScheduleObservationsResponse>;
49
+ }
50
+ export declare function buildReminderDispatchPrompt(args: {
51
+ runtime: IAgentRuntime;
52
+ title: string;
53
+ reminderAt: string;
54
+ channel: LifeOpsReminderStep["channel"];
55
+ lifecycle: ReminderAttemptLifecycle;
56
+ urgency: LifeOpsReminderUrgency;
57
+ recentConversation: readonly string[];
58
+ nearbyReminderTitles?: string[];
59
+ }): string;
60
+ /** @internal */
61
+ export declare function withReminders<TBase extends Constructor<LifeOpsServiceBase>>(Base: TBase): MixinClass<TBase, LifeOpsReminderService>;
62
+ //# sourceMappingURL=service-mixin-reminders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-mixin-reminders.d.ts","sourceRoot":"","sources":["../../src/lifeops/service-mixin-reminders.ts"],"names":[],"mappings":"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"}