@elizaos/plugin-personal-assistant 2.0.3-beta.6 → 2.0.3-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,548 @@
1
+ import {
2
+ getAccountPrivacy,
3
+ getConnectorAccountManager,
4
+ logger
5
+ } from "@elizaos/core";
6
+ import { hasLifeOpsAccess } from "../lifeops/access.js";
7
+ import { getConnectorRegistry } from "../lifeops/connectors/registry.js";
8
+ import {
9
+ readLifeOpsOwnerProfile
10
+ } from "../lifeops/owner-profile.js";
11
+ import {
12
+ canSurfaceForAudience
13
+ } from "../lifeops/privacy.js";
14
+ import {
15
+ canSurfaceConnectorAccountData,
16
+ connectorAccountPrivacyKey,
17
+ createLifeOpsEgressContext,
18
+ deriveConnectorAccountIdFromGrant,
19
+ mapConnectorAccountPrivacyPolicies,
20
+ redactTextForEgress
21
+ } from "../lifeops/privacy-egress.js";
22
+ import { LifeOpsService } from "../lifeops/service.js";
23
+ const INTERNAL_URL = new URL("http://127.0.0.1/");
24
+ const GOAL_TITLE_MAX_LENGTH = 80;
25
+ const GOAL_TITLES_MAX_DISPLAYED = 5;
26
+ const MAX_ACCOUNT_LINES = 5;
27
+ function formatCount(label, count) {
28
+ return `${label}: ${count}`;
29
+ }
30
+ async function summarizeConnectorDegradation(runtime) {
31
+ const registry = getConnectorRegistry(runtime);
32
+ if (!registry) return [];
33
+ const contributions = registry.list();
34
+ if (contributions.length === 0) return [];
35
+ const statuses = await Promise.all(
36
+ contributions.map(async (contribution) => {
37
+ try {
38
+ const status = await contribution.status();
39
+ return { contribution, status };
40
+ } catch (error) {
41
+ const message = error instanceof Error ? error.message : String(error);
42
+ return {
43
+ contribution,
44
+ status: {
45
+ state: "disconnected",
46
+ message,
47
+ observedAt: (/* @__PURE__ */ new Date()).toISOString()
48
+ }
49
+ };
50
+ }
51
+ })
52
+ );
53
+ const lines = [];
54
+ for (const { contribution, status } of statuses) {
55
+ if (status.state === "ok") continue;
56
+ const detail = status.message ? `: ${status.message}` : "";
57
+ lines.push(
58
+ `Connector ${contribution.describe.label} ${status.state}${detail}`
59
+ );
60
+ }
61
+ return lines;
62
+ }
63
+ function truncateGoalTitle(title) {
64
+ const trimmed = title.trim();
65
+ if (trimmed.length <= GOAL_TITLE_MAX_LENGTH) {
66
+ return trimmed;
67
+ }
68
+ return `${trimmed.slice(0, GOAL_TITLE_MAX_LENGTH - 1).trimEnd()}\u2026`;
69
+ }
70
+ function readGoalReviewedAt(goal) {
71
+ const metadata = goal.metadata;
72
+ if (metadata && typeof metadata === "object") {
73
+ const computed = metadata.computedGoalReview;
74
+ if (computed && typeof computed === "object") {
75
+ const reviewedAt = computed.reviewedAt;
76
+ if (typeof reviewedAt === "string" && reviewedAt.length > 0) {
77
+ return reviewedAt;
78
+ }
79
+ }
80
+ }
81
+ return null;
82
+ }
83
+ function formatRelativePast(fromIso, now) {
84
+ const fromMs = new Date(fromIso).getTime();
85
+ if (!Number.isFinite(fromMs)) {
86
+ return "unknown";
87
+ }
88
+ const deltaMs = now.getTime() - fromMs;
89
+ if (deltaMs < 6e4) {
90
+ return "just now";
91
+ }
92
+ const minutes = Math.floor(deltaMs / 6e4);
93
+ if (minutes < 60) {
94
+ return `${minutes}m ago`;
95
+ }
96
+ const hours = Math.floor(minutes / 60);
97
+ if (hours < 24) {
98
+ return `${hours}h ago`;
99
+ }
100
+ const days = Math.floor(hours / 24);
101
+ if (days < 7) {
102
+ return `${days}d ago`;
103
+ }
104
+ const weeks = Math.floor(days / 7);
105
+ if (weeks < 5) {
106
+ return `${weeks}w ago`;
107
+ }
108
+ const months = Math.floor(days / 30);
109
+ if (months < 12) {
110
+ return `${months}mo ago`;
111
+ }
112
+ const years = Math.floor(days / 365);
113
+ return `${years}y ago`;
114
+ }
115
+ function summarizeActiveGoals(goals, now) {
116
+ const active = goals.filter((goal) => goal.status === "active");
117
+ if (active.length === 0) {
118
+ return [];
119
+ }
120
+ const sorted = [...active].sort((left, right) => {
121
+ const leftActivityIso = readGoalReviewedAt(left) ?? left.updatedAt;
122
+ const rightActivityIso = readGoalReviewedAt(right) ?? right.updatedAt;
123
+ const leftMs = new Date(leftActivityIso).getTime();
124
+ const rightMs = new Date(rightActivityIso).getTime();
125
+ const leftSafe = Number.isFinite(leftMs) ? leftMs : 0;
126
+ const rightSafe = Number.isFinite(rightMs) ? rightMs : 0;
127
+ return rightSafe - leftSafe;
128
+ });
129
+ const top = sorted.slice(0, GOAL_TITLES_MAX_DISPLAYED);
130
+ const lines = top.map((goal) => {
131
+ const reviewedAtIso = readGoalReviewedAt(goal);
132
+ const lastReviewedFragment = reviewedAtIso ? `last reviewed ${formatRelativePast(reviewedAtIso, now)}` : "review pending";
133
+ return `- ${truncateGoalTitle(goal.title)} (${goal.reviewState}, ${lastReviewedFragment})`;
134
+ });
135
+ if (active.length > top.length) {
136
+ lines.push(`- (+${active.length - top.length} more active goals)`);
137
+ }
138
+ return lines;
139
+ }
140
+ function summarizeOccurrences(title, occurrences) {
141
+ if (occurrences.length === 0) {
142
+ return [];
143
+ }
144
+ return [
145
+ title,
146
+ ...occurrences.slice(0, 3).map((occurrence) => `- ${occurrence.title} (${occurrence.state})`)
147
+ ];
148
+ }
149
+ function formatRelativeMinutes(minutes) {
150
+ if (minutes <= 0) return "now";
151
+ if (minutes < 60) return `${Math.round(minutes)}m`;
152
+ const hours = Math.floor(minutes / 60);
153
+ const remaining = Math.round(minutes % 60);
154
+ if (remaining === 0) return `${hours}h`;
155
+ return `${hours}h ${remaining}m`;
156
+ }
157
+ function summarizeNextEvent(context) {
158
+ if (!context.event) {
159
+ return [];
160
+ }
161
+ const event = context.event;
162
+ const timing = context.startsInMinutes !== null ? ` (${formatRelativeMinutes(context.startsInMinutes)})` : "";
163
+ const lines = [`Next event: ${event.title}${timing}`];
164
+ if (context.attendeeNames.length > 0) {
165
+ lines.push(` With: ${context.attendeeNames.slice(0, 3).join(", ")}`);
166
+ }
167
+ if (context.location) {
168
+ lines.push(` At: ${context.location}`);
169
+ }
170
+ return lines;
171
+ }
172
+ function summarizeGmailTriage(summary) {
173
+ const parts = [];
174
+ if (summary.unreadCount > 0) parts.push(`${summary.unreadCount} unread`);
175
+ if (summary.importantNewCount > 0)
176
+ parts.push(`${summary.importantNewCount} important`);
177
+ if (summary.likelyReplyNeededCount > 0)
178
+ parts.push(`${summary.likelyReplyNeededCount} needing reply`);
179
+ if (parts.length === 0) {
180
+ return [];
181
+ }
182
+ return [`Inbox: ${parts.join(", ")}`];
183
+ }
184
+ function summarizeOwnerProfile(profile) {
185
+ return [
186
+ `Owner profile: name=${profile.name} | relationship=${profile.relationshipStatus} | partner=${profile.partnerName} | orientation=${profile.orientation} | gender=${profile.gender} | age=${profile.age} | location=${profile.location} | travelPrefs=${profile.travelBookingPreferences}`
187
+ ];
188
+ }
189
+ const lifeOpsProvider = {
190
+ name: "lifeops",
191
+ description: "Owner and agent only. Provides owner operations overview plus live calendar and Gmail context. Route todos to OWNER_TODOS, reminders to OWNER_REMINDERS, alarms to OWNER_ALARMS, habits/routines to OWNER_ROUTINES, goals to OWNER_GOALS, owner health reads to OWNER_HEALTH, screen-time reads to OWNER_SCREENTIME, owner finance/subscription work to OWNER_FINANCES, all owner calendar/scheduling/availability work to CALENDAR, all owner inbox/email/draft/reply/message-management work to MESSAGE with the appropriate action, stable owner facts through automatic profile extraction, contact/entity facts to ENTITY or CONTACT, travel booking and scheduling workflows to PERSONAL_ASSISTANT, X/Twitter DMs to MESSAGE with source=x, X/Twitter feed/search to POST with source=x, website and app blocking to BLOCK with target=website or target=app, browser-companion management to MANAGE_BROWSER_BRIDGE, browser tab control to BROWSER, credential lookup/autofill to CREDENTIALS, and pending approval decisions to RESOLVE_REQUEST. Morning/night self-review briefings run as scheduled tasks rather than as a planner-visible action. Available in private owner conversations, including Discord.",
192
+ descriptionCompressed: "Owner operations overview, upcoming calendar, email triage. Owner only.",
193
+ dynamic: true,
194
+ position: 12,
195
+ contexts: [
196
+ "tasks",
197
+ "calendar",
198
+ "email",
199
+ "contacts",
200
+ "payments",
201
+ "finance",
202
+ "subscriptions",
203
+ "health",
204
+ "screen_time",
205
+ "browser",
206
+ "messaging"
207
+ ],
208
+ contextGate: {
209
+ anyOf: [
210
+ "tasks",
211
+ "calendar",
212
+ "email",
213
+ "contacts",
214
+ "payments",
215
+ "finance",
216
+ "subscriptions",
217
+ "health",
218
+ "screen_time",
219
+ "browser",
220
+ "messaging"
221
+ ]
222
+ },
223
+ cacheScope: "turn",
224
+ roleGate: { minRole: "OWNER" },
225
+ async get(runtime, message, _state) {
226
+ const isOwner = await hasLifeOpsAccess(runtime, message);
227
+ if (!isOwner) {
228
+ return { text: "", values: {}, data: {} };
229
+ }
230
+ const audience = "owner";
231
+ try {
232
+ const service = new LifeOpsService(runtime);
233
+ const ownerProfile = await readLifeOpsOwnerProfile(runtime);
234
+ const overview = await service.getOverview();
235
+ const egressContext = createLifeOpsEgressContext({
236
+ isOwner: true,
237
+ agentId: runtime.agentId,
238
+ entityId: message.entityId
239
+ });
240
+ const accountManager = getConnectorAccountManager(runtime);
241
+ const connectorAccounts = await accountManager.listAccounts("google").catch(() => []);
242
+ const privacyByAccountKey = /* @__PURE__ */ new Map();
243
+ for (const account of connectorAccounts) {
244
+ const privacy = getAccountPrivacy(account);
245
+ privacyByAccountKey.set(account.id, privacy);
246
+ if (account.externalId) {
247
+ privacyByAccountKey.set(account.externalId, privacy);
248
+ }
249
+ const email = typeof account.metadata?.email === "string" ? account.metadata.email.toLowerCase() : null;
250
+ if (email) {
251
+ privacyByAccountKey.set(`email:${email}`, privacy);
252
+ }
253
+ }
254
+ const resolveAccountPrivacy = (connectorAccountId, identityEmail) => {
255
+ if (connectorAccountId) {
256
+ const direct = privacyByAccountKey.get(connectorAccountId);
257
+ if (direct) return direct;
258
+ }
259
+ if (identityEmail) {
260
+ const byEmail = privacyByAccountKey.get(
261
+ `email:${identityEmail.toLowerCase()}`
262
+ );
263
+ if (byEmail) return byEmail;
264
+ }
265
+ return "owner_only";
266
+ };
267
+ let privacyFilteredCount = 0;
268
+ let privacyPolicies = mapConnectorAccountPrivacyPolicies([]);
269
+ try {
270
+ privacyPolicies = mapConnectorAccountPrivacyPolicies(
271
+ await service.repository.listConnectorAccountPrivacy(
272
+ service.agentId()
273
+ )
274
+ );
275
+ } catch (cause) {
276
+ logger.debug(
277
+ { err: cause },
278
+ "[LifeOpsProvider] account privacy table unavailable \u2014 defaulting to owner-only context"
279
+ );
280
+ }
281
+ const now = /* @__PURE__ */ new Date();
282
+ const ownerLines = summarizeOccurrences(
283
+ "Owner active items:",
284
+ overview.owner.occurrences
285
+ );
286
+ const ownerGoalLines = summarizeActiveGoals(overview.owner.goals, now);
287
+ const agentLines = summarizeOccurrences(
288
+ "Agent ops:",
289
+ overview.agentOps.occurrences
290
+ );
291
+ const calendarLines = [];
292
+ const emailLines = [];
293
+ const accountLines = [];
294
+ let nextEventContext = null;
295
+ let gmailSummary = null;
296
+ try {
297
+ const accounts = await service.getGoogleConnectorAccounts(INTERNAL_URL);
298
+ const connectedAccounts = accounts.filter((a) => a.connected);
299
+ if (connectedAccounts.length > 1) {
300
+ accountLines.push("Available Google accounts:");
301
+ for (const account of connectedAccounts.slice(0, MAX_ACCOUNT_LINES)) {
302
+ const connectorAccountId = account.grant ? account.grant.connectorAccountId ?? deriveConnectorAccountIdFromGrant(account.grant) : null;
303
+ const identityEmail = typeof account.identity?.email === "string" ? String(account.identity.email) : null;
304
+ const accountPrivacy = resolveAccountPrivacy(
305
+ connectorAccountId,
306
+ identityEmail
307
+ );
308
+ if (!canSurfaceForAudience(accountPrivacy, audience)) {
309
+ privacyFilteredCount += 1;
310
+ accountLines.push("- Google account [redacted: owner_only]");
311
+ continue;
312
+ }
313
+ const policy = connectorAccountId ? privacyPolicies.get(
314
+ connectorAccountPrivacyKey("google", connectorAccountId)
315
+ ) ?? null : null;
316
+ if (!canSurfaceConnectorAccountData({
317
+ context: egressContext,
318
+ provider: "google",
319
+ connectorAccountId,
320
+ dataClass: "metadata",
321
+ policy
322
+ })) {
323
+ accountLines.push("- Google account hidden by privacy policy");
324
+ continue;
325
+ }
326
+ const email = redactTextForEgress(
327
+ String(
328
+ account.identity?.email ?? "unknown"
329
+ ),
330
+ { context: egressContext, dataClass: "metadata", policy }
331
+ );
332
+ accountLines.push(
333
+ `- ${email} (connectorAccountId: ${connectorAccountId ?? "unknown"})`
334
+ );
335
+ }
336
+ }
337
+ const status = connectedAccounts[0];
338
+ if (status?.connected) {
339
+ const connectorAccountId = status.grant ? status.grant.connectorAccountId ?? deriveConnectorAccountIdFromGrant(status.grant) : null;
340
+ const statusIdentityEmail = typeof status.identity?.email === "string" ? String(status.identity.email) : null;
341
+ const statusPrivacy = resolveAccountPrivacy(
342
+ connectorAccountId,
343
+ statusIdentityEmail
344
+ );
345
+ const statusAllowedByMetadataPrivacy = canSurfaceForAudience(
346
+ statusPrivacy,
347
+ audience
348
+ );
349
+ if (!statusAllowedByMetadataPrivacy) {
350
+ privacyFilteredCount += 1;
351
+ }
352
+ const policy = connectorAccountId ? privacyPolicies.get(
353
+ connectorAccountPrivacyKey("google", connectorAccountId)
354
+ ) ?? null : null;
355
+ const capabilities = status.grantedCapabilities ?? [];
356
+ const hasCalendar = capabilities.some(
357
+ (c) => c.startsWith("google.calendar")
358
+ );
359
+ const hasGmail = capabilities.some(
360
+ (c) => c.startsWith("google.gmail")
361
+ );
362
+ if (hasCalendar) {
363
+ if (!statusAllowedByMetadataPrivacy) {
364
+ calendarLines.push("Calendar context [redacted: owner_only]");
365
+ } else if (!canSurfaceConnectorAccountData({
366
+ context: egressContext,
367
+ provider: "google",
368
+ connectorAccountId,
369
+ dataClass: "snippet",
370
+ policy
371
+ })) {
372
+ calendarLines.push("Calendar context hidden by privacy policy.");
373
+ } else {
374
+ try {
375
+ nextEventContext = await service.getNextCalendarEventContext(INTERNAL_URL);
376
+ calendarLines.push(...summarizeNextEvent(nextEventContext));
377
+ } catch (cause) {
378
+ logger.warn(
379
+ { err: cause },
380
+ "[LifeOpsProvider] calendar fetch failed \u2014 omitting calendar context"
381
+ );
382
+ calendarLines.push(
383
+ `Calendar connector degraded: ${cause instanceof Error ? cause.message : String(cause)}`
384
+ );
385
+ }
386
+ }
387
+ }
388
+ if (hasGmail) {
389
+ if (!statusAllowedByMetadataPrivacy) {
390
+ emailLines.push("Gmail context [redacted: owner_only]");
391
+ } else if (!canSurfaceConnectorAccountData({
392
+ context: egressContext,
393
+ provider: "google",
394
+ connectorAccountId,
395
+ dataClass: "metadata",
396
+ policy
397
+ })) {
398
+ emailLines.push("Gmail context hidden by privacy policy.");
399
+ } else {
400
+ try {
401
+ const triage = await service.getGmailTriage(INTERNAL_URL, {
402
+ maxResults: 5
403
+ });
404
+ gmailSummary = triage.summary;
405
+ emailLines.push(...summarizeGmailTriage(triage.summary));
406
+ } catch (cause) {
407
+ logger.warn(
408
+ { err: cause },
409
+ "[LifeOpsProvider] gmail triage fetch failed \u2014 omitting email context"
410
+ );
411
+ emailLines.push(
412
+ `Gmail connector degraded: ${cause instanceof Error ? cause.message : String(cause)}`
413
+ );
414
+ }
415
+ }
416
+ }
417
+ }
418
+ if (calendarLines.length === 0 && audience === "owner") {
419
+ try {
420
+ nextEventContext = await service.getNextCalendarEventContext(INTERNAL_URL);
421
+ calendarLines.push(...summarizeNextEvent(nextEventContext));
422
+ } catch (cause) {
423
+ logger.debug(
424
+ { err: cause },
425
+ "[LifeOpsProvider] native calendar context unavailable \u2014 omitting calendar context"
426
+ );
427
+ }
428
+ }
429
+ } catch (cause) {
430
+ logger.debug(
431
+ { err: cause },
432
+ "[LifeOpsProvider] Google connector unavailable \u2014 skipping calendar/email context"
433
+ );
434
+ accountLines.push(
435
+ `Google connector status unavailable: ${cause instanceof Error ? cause.message : String(cause)}`
436
+ );
437
+ }
438
+ if (privacyFilteredCount > 0) {
439
+ logger.debug(
440
+ `[LifeOpsPrivacy] filtered ${privacyFilteredCount} accounts of provider google for audience ${audience}`
441
+ );
442
+ }
443
+ const connectorDegradationLines = await summarizeConnectorDegradation(runtime);
444
+ return {
445
+ text: [
446
+ "## Owner Operations",
447
+ "Use OWNER_TODOS for personal todos and live todo-status questions. Use OWNER_REMINDERS for one-off or recurring reminders. Use OWNER_ALARMS for alarm-like reminders. Use OWNER_ROUTINES for habits and daily/weekly routines. Use OWNER_GOALS for long-term goals. Examples: 'add a todo', 'remember to call mom on Sunday', 'track my gym sessions three times a week', 'set a goal to save $5,000'. Do not use REPLY or ENTITY for these.",
448
+ "Use CALENDAR for live calendar reads, calendar writes, availability, proposed meeting times, scheduling preferences, and scheduling negotiation. Examples: 'what's my next meeting?', 'show me my calendar for today', 'what does my week look like?', 'schedule a dentist appointment next Tuesday at 3pm', 'find meeting options with Alice', or 'protect my sleep window from calls'. Do not answer these from provider context alone.",
449
+ "Use MESSAGE action=triage/list_inbox/search_inbox for Gmail, email, and cross-channel inbox review: 'triage my Gmail inbox', 'summarize my unread emails', 'triage my inbox', 'give me my inbox digest', daily briefs, missed-call repair, and group-chat handoff. Use MESSAGE action=draft_reply when the owner asks to draft a reply to an existing message, MESSAGE action=respond when the owner asks to send/respond to an existing message, and MESSAGE action=manage for unsubscribe, block, archive, trash, spam, label, or mark-read requests. Do not use MESSAGE just because the user mentioned email or messages while venting.",
450
+ "Use MESSAGE action=send_draft for owner-scoped outbound messages and drafts on the owner's behalf. Examples: 'send a Telegram message to Jane saying I am running late', 'send a Signal message to Priya saying thanks', 'email alice@example.com the notes', 'DM Bob on Discord', or 'text Sam that I am outside'. Always prefer MESSAGE action=send_draft over CALENDAR for relaying a message, even if the message text mentions a meeting.",
451
+ "Use CREDENTIALS for credential lookup, saved-login requests, and trusted-page autofill. Examples: 'look up my GitHub password', 'show me my saved logins for github.com', 'copy my AWS password to clipboard', 'log me into github on this sign-in page'. Do not surface raw secrets in chat.",
452
+ "Use ENTITY for Rolodex contacts and typed relationships (add a contact, log an interaction, set an identity, set a relationship, merge duplicates). Examples: 'who are my closest contacts?', 'add Sam to my Rolodex', 'Pat is my manager'. Use SCHEDULED_TASKS for follow-up cadence questions: 'remind me to follow up with David next week', 'how long has it been since I talked to David?', 'who is overdue for follow-up?'.",
453
+ "Use OWNER_SCREENTIME for quantitative device/app/website usage questions. Examples: 'how much screen time have I used today?', 'break down my screen time by app this week', 'what websites did I spend the most time on?'. If the owner is only reflecting or venting like 'I spend too much time on my phone', stay in chat instead of calling OWNER_SCREENTIME.",
454
+ "Use BLOCK for phone app and website blocking requests. Pass target=app for phone apps and target=website for websites. Examples: 'block all games on my phone until 6pm', 'block Slack while I focus on deep work', 'block reddit.com until after my workout'.",
455
+ "Use OWNER_FINANCES for subscription audits, recurring membership reviews, cancellation requests, and cancellation-status checks. Examples: 'audit my subscriptions', 'cancel my Google Play subscription', 'what happened with that subscription cancellation?', 'cancel this subscription even if it needs sign-in first'. Use MESSAGE action=manage for email newsletter unsubscribe requests.",
456
+ "Use PERSONAL_ASSISTANT action=sign_document for document-signature flows that must be drafted or queued before an appointment, including NDA or DocuSign requests.",
457
+ "Route all meeting-time proposals, availability checks, durable scheduling rules, and explicit multi-turn scheduling negotiations through CALENDAR.",
458
+ "Stable owner-only profile details and reusable travel-preference checklists are extracted automatically by evaluators. Do not use a planner action for goals, todos, reminders, temporary plans, or live task state.",
459
+ "Use MESSAGE action=read_channel/search with source=x for X/Twitter DMs. Use POST action=read/search with source=x for X/Twitter timeline, mentions, and topic search. Do not route X reads/search to a platform-specific X action.",
460
+ "Use BLOCK target=website for website blocking requests, including timed focus sessions, indefinite distraction blocking, or phrasing like 'block these sites until I finish my workout'. Clarify duration or unblock expectations when details are ambiguous; there is no separate todo-gated website block action.",
461
+ "Use ROOM for targeted connector chat mute/unmute when the owner names a Telegram/Discord/etc. room that is not the current chat, especially temporary mutes like 'mute the crypto signals Telegram group for 24 hours'. Pass platform + chatName + durationMinutes; ROOM also handles current-room follow/unfollow/mute/unmute when those parameters are omitted.",
462
+ "Use COMPUTER_USE for portal uploads, Finder/Desktop work like taking screenshots or creating folders, browser workflows, and file-handling tasks on the owner's machine, including deferred instructions like 'when I send over the deck, upload it to the portal for me.'",
463
+ "Use MANAGE_BROWSER_BRIDGE for installing/refreshing the Chrome/Safari companion extension and managing companion connection state ('open chrome extensions', 'reveal the bridge folder', 'refresh browser bridge'). Use BROWSER for tab control, navigation, clicks, typing, screenshots, and DOM reads \u2014 including LifeOps browser sessions like 'list my browser tabs' or 'navigate the work tab to gmail'.",
464
+ "Use REMOTE_DESKTOP to start, list, check, end, or revoke a remote desktop session so the owner can connect from a phone. Requests like 'start a remote desktop session' or 'let me connect from my phone' belong here even if the action needs confirmation or a pairing step.",
465
+ "Use RESOLVE_REQUEST when the owner is resolving a pending approval item. Examples: 'approve the pending travel booking request' or 'reject that pending approval request and say it needs changes'.",
466
+ "Use VOICE_CALL for phone-call escalation or booking calls. These actions can draft or request confirmation first; they do not require the dial to happen on the first turn. Requests like 'if you get stuck in the browser or on my computer, call me and let me jump in to unblock it' belong here. Requests like 'call the dentist and reschedule my appointment' or 'phone my cable company about the outage' also belong to VOICE_CALL, not CALENDAR, OWNER_TODOS, or MESSAGE action=send_draft.",
467
+ "When the owner is only making an observation or venting like 'my calendar has been crazy this quarter', 'I hate email', or 'I think I spend too much time on my phone', stay in REPLY instead of calling a LifeOps action unless they actually ask you to do something.",
468
+ "Treat owner instructions phrased as standing policies, triggers, or conditionals like 'if this happens, do x' or 'when that arrives, handle it' as executable requests, not hypotheticals.",
469
+ "When the owner clearly asks for one of these LifeOps executive-assistant operations, call the best-fit action instead of staying in advice-only chat. If details are missing, let the action ask the minimum follow-up question.",
470
+ "Route examples: sleep/no-call windows -> CALENDAR; daily brief additions, missed-call repair, or group-chat handoff -> MESSAGE action=triage; 'if direct relaying gets messy here, suggest making a group chat handoff instead' -> MESSAGE action=triage; outbound Telegram/Signal/email/Discord/SMS drafts -> MESSAGE action=send_draft; subscription audits or cancellations -> OWNER_FINANCES; travel preference memory -> automatic owner profile extraction; portal upload or browser filing -> COMPUTER_USE; if the agent gets stuck and should phone the owner -> VOICE_CALL.",
471
+ "When the owner asks about their stable personal details for LifeOps, answer from the stored owner profile values below. If a field is not n/a, treat it as known instead of saying it is missing.",
472
+ "Owner life-ops are private to the owner and the agent. Agent ops are internal and should stay separated unless explicitly requested.",
473
+ ...summarizeOwnerProfile(ownerProfile),
474
+ formatCount(
475
+ "Owner open occurrences",
476
+ overview.owner.summary.activeOccurrenceCount
477
+ ),
478
+ formatCount(
479
+ "Owner active goals",
480
+ overview.owner.summary.activeGoalCount
481
+ ),
482
+ ...ownerGoalLines,
483
+ formatCount(
484
+ "Owner live reminders",
485
+ overview.owner.summary.activeReminderCount
486
+ ),
487
+ ...ownerLines,
488
+ ...accountLines,
489
+ ...calendarLines,
490
+ ...emailLines,
491
+ ...connectorDegradationLines,
492
+ formatCount(
493
+ "Agent open occurrences",
494
+ overview.agentOps.summary.activeOccurrenceCount
495
+ ),
496
+ formatCount(
497
+ "Agent active goals",
498
+ overview.agentOps.summary.activeGoalCount
499
+ ),
500
+ ...agentLines
501
+ ].join("\n"),
502
+ values: {
503
+ ownerOpenOccurrences: overview.owner.summary.activeOccurrenceCount,
504
+ ownerActiveGoals: overview.owner.summary.activeGoalCount,
505
+ ownerActiveGoalTitles: overview.owner.goals.filter((goal) => goal.status === "active").slice(0, GOAL_TITLES_MAX_DISPLAYED).map((goal) => goal.title),
506
+ ownerProfileName: ownerProfile.name,
507
+ ownerRelationshipStatus: ownerProfile.relationshipStatus,
508
+ ownerPartnerName: ownerProfile.partnerName,
509
+ ownerOrientation: ownerProfile.orientation,
510
+ ownerGender: ownerProfile.gender,
511
+ ownerAge: ownerProfile.age,
512
+ ownerLocation: ownerProfile.location,
513
+ agentOpenOccurrences: overview.agentOps.summary.activeOccurrenceCount,
514
+ agentActiveGoals: overview.agentOps.summary.activeGoalCount
515
+ },
516
+ data: {
517
+ ownerProfile,
518
+ overview: {
519
+ ...overview,
520
+ owner: {
521
+ ...overview.owner,
522
+ goals: overview.owner.goals.slice(0, GOAL_TITLES_MAX_DISPLAYED),
523
+ occurrences: overview.owner.occurrences.slice(0, 5)
524
+ },
525
+ agentOps: {
526
+ ...overview.agentOps,
527
+ occurrences: overview.agentOps.occurrences.slice(0, 5)
528
+ }
529
+ },
530
+ nextEventContext,
531
+ gmailSummary
532
+ }
533
+ };
534
+ } catch (error) {
535
+ return {
536
+ text: "LifeOps overview unavailable.",
537
+ values: { ownerOpenOccurrences: 0, ownerActiveGoals: 0 },
538
+ data: {
539
+ error: error instanceof Error ? error.message : String(error)
540
+ }
541
+ };
542
+ }
543
+ }
544
+ };
545
+ export {
546
+ lifeOpsProvider
547
+ };
548
+ //# sourceMappingURL=lifeops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/providers/lifeops.ts"],"sourcesContent":["import {\n getAccountPrivacy,\n getConnectorAccountManager,\n type IAgentRuntime,\n logger,\n type Memory,\n type Provider,\n type ProviderResult,\n type State,\n} from \"@elizaos/core\";\nimport type {\n LifeOpsGmailTriageSummary,\n LifeOpsGoalDefinition,\n LifeOpsNextCalendarEventContext,\n} from \"../contracts/index.js\";\nimport { hasLifeOpsAccess } from \"../lifeops/access.js\";\nimport type { ConnectorStatus } from \"../lifeops/connectors/contract.js\";\nimport { getConnectorRegistry } from \"../lifeops/connectors/registry.js\";\nimport {\n type LifeOpsOwnerProfile,\n readLifeOpsOwnerProfile,\n} from \"../lifeops/owner-profile.js\";\nimport {\n canSurfaceForAudience,\n type LifeOpsAudience,\n} from \"../lifeops/privacy.js\";\nimport {\n canSurfaceConnectorAccountData,\n connectorAccountPrivacyKey,\n createLifeOpsEgressContext,\n deriveConnectorAccountIdFromGrant,\n mapConnectorAccountPrivacyPolicies,\n redactTextForEgress,\n} from \"../lifeops/privacy-egress.js\";\nimport { LifeOpsService } from \"../lifeops/service.js\";\n\nconst INTERNAL_URL = new URL(\"http://127.0.0.1/\");\nconst GOAL_TITLE_MAX_LENGTH = 80;\nconst GOAL_TITLES_MAX_DISPLAYED = 5;\nconst MAX_ACCOUNT_LINES = 5;\n\nfunction formatCount(label: string, count: number): string {\n return `${label}: ${count}`;\n}\n\n/**\n * Inspect every registered connector and surface degraded / disconnected\n * connectors so the morning brief and planner context highlight them. The\n * status comes from `ConnectorContribution.status()`; this helper maps it\n * into one-line strings the planner can quote verbatim.\n */\nasync function summarizeConnectorDegradation(\n runtime: IAgentRuntime,\n): Promise<string[]> {\n const registry = getConnectorRegistry(runtime);\n if (!registry) return [];\n const contributions = registry.list();\n if (contributions.length === 0) return [];\n const statuses = await Promise.all(\n contributions.map(async (contribution) => {\n try {\n const status = await contribution.status();\n return { contribution, status };\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n return {\n contribution,\n status: {\n state: \"disconnected\",\n message,\n observedAt: new Date().toISOString(),\n } satisfies ConnectorStatus,\n };\n }\n }),\n );\n const lines: string[] = [];\n for (const { contribution, status } of statuses) {\n if (status.state === \"ok\") continue;\n const detail = status.message ? `: ${status.message}` : \"\";\n lines.push(\n `Connector ${contribution.describe.label} ${status.state}${detail}`,\n );\n }\n return lines;\n}\n\nfunction truncateGoalTitle(title: string): string {\n const trimmed = title.trim();\n if (trimmed.length <= GOAL_TITLE_MAX_LENGTH) {\n return trimmed;\n }\n return `${trimmed.slice(0, GOAL_TITLE_MAX_LENGTH - 1).trimEnd()}…`;\n}\n\nfunction readGoalReviewedAt(goal: LifeOpsGoalDefinition): string | null {\n const metadata = goal.metadata;\n if (metadata && typeof metadata === \"object\") {\n const computed = (metadata as Record<string, unknown>).computedGoalReview;\n if (computed && typeof computed === \"object\") {\n const reviewedAt = (computed as Record<string, unknown>).reviewedAt;\n if (typeof reviewedAt === \"string\" && reviewedAt.length > 0) {\n return reviewedAt;\n }\n }\n }\n return null;\n}\n\nfunction formatRelativePast(fromIso: string, now: Date): string {\n const fromMs = new Date(fromIso).getTime();\n if (!Number.isFinite(fromMs)) {\n return \"unknown\";\n }\n const deltaMs = now.getTime() - fromMs;\n if (deltaMs < 60_000) {\n return \"just now\";\n }\n const minutes = Math.floor(deltaMs / 60_000);\n if (minutes < 60) {\n return `${minutes}m ago`;\n }\n const hours = Math.floor(minutes / 60);\n if (hours < 24) {\n return `${hours}h ago`;\n }\n const days = Math.floor(hours / 24);\n if (days < 7) {\n return `${days}d ago`;\n }\n const weeks = Math.floor(days / 7);\n if (weeks < 5) {\n return `${weeks}w ago`;\n }\n const months = Math.floor(days / 30);\n if (months < 12) {\n return `${months}mo ago`;\n }\n const years = Math.floor(days / 365);\n return `${years}y ago`;\n}\n\nfunction summarizeActiveGoals(\n goals: LifeOpsGoalDefinition[],\n now: Date,\n): string[] {\n const active = goals.filter((goal) => goal.status === \"active\");\n if (active.length === 0) {\n return [];\n }\n const sorted = [...active].sort((left, right) => {\n const leftActivityIso = readGoalReviewedAt(left) ?? left.updatedAt;\n const rightActivityIso = readGoalReviewedAt(right) ?? right.updatedAt;\n const leftMs = new Date(leftActivityIso).getTime();\n const rightMs = new Date(rightActivityIso).getTime();\n const leftSafe = Number.isFinite(leftMs) ? leftMs : 0;\n const rightSafe = Number.isFinite(rightMs) ? rightMs : 0;\n return rightSafe - leftSafe;\n });\n const top = sorted.slice(0, GOAL_TITLES_MAX_DISPLAYED);\n const lines = top.map((goal) => {\n const reviewedAtIso = readGoalReviewedAt(goal);\n const lastReviewedFragment = reviewedAtIso\n ? `last reviewed ${formatRelativePast(reviewedAtIso, now)}`\n : \"review pending\";\n return `- ${truncateGoalTitle(goal.title)} (${goal.reviewState}, ${lastReviewedFragment})`;\n });\n if (active.length > top.length) {\n lines.push(`- (+${active.length - top.length} more active goals)`);\n }\n return lines;\n}\n\nfunction summarizeOccurrences(\n title: string,\n occurrences: Array<{ title: string; state: string }>,\n): string[] {\n if (occurrences.length === 0) {\n return [];\n }\n return [\n title,\n ...occurrences\n .slice(0, 3)\n .map((occurrence) => `- ${occurrence.title} (${occurrence.state})`),\n ];\n}\n\nfunction formatRelativeMinutes(minutes: number): string {\n if (minutes <= 0) return \"now\";\n if (minutes < 60) return `${Math.round(minutes)}m`;\n const hours = Math.floor(minutes / 60);\n const remaining = Math.round(minutes % 60);\n if (remaining === 0) return `${hours}h`;\n return `${hours}h ${remaining}m`;\n}\n\nfunction summarizeNextEvent(\n context: LifeOpsNextCalendarEventContext,\n): string[] {\n if (!context.event) {\n return [];\n }\n const event = context.event;\n const timing =\n context.startsInMinutes !== null\n ? ` (${formatRelativeMinutes(context.startsInMinutes)})`\n : \"\";\n const lines = [`Next event: ${event.title}${timing}`];\n if (context.attendeeNames.length > 0) {\n lines.push(` With: ${context.attendeeNames.slice(0, 3).join(\", \")}`);\n }\n if (context.location) {\n lines.push(` At: ${context.location}`);\n }\n return lines;\n}\n\nfunction summarizeGmailTriage(summary: LifeOpsGmailTriageSummary): string[] {\n const parts: string[] = [];\n if (summary.unreadCount > 0) parts.push(`${summary.unreadCount} unread`);\n if (summary.importantNewCount > 0)\n parts.push(`${summary.importantNewCount} important`);\n if (summary.likelyReplyNeededCount > 0)\n parts.push(`${summary.likelyReplyNeededCount} needing reply`);\n if (parts.length === 0) {\n return [];\n }\n return [`Inbox: ${parts.join(\", \")}`];\n}\n\nfunction summarizeOwnerProfile(profile: LifeOpsOwnerProfile): string[] {\n return [\n `Owner profile: name=${profile.name} | relationship=${profile.relationshipStatus} | partner=${profile.partnerName} | orientation=${profile.orientation} | gender=${profile.gender} | age=${profile.age} | location=${profile.location} | travelPrefs=${profile.travelBookingPreferences}`,\n ];\n}\n\nexport const lifeOpsProvider: Provider = {\n name: \"lifeops\",\n description:\n \"Owner and agent only. Provides owner operations overview plus live calendar and Gmail context. Route todos to OWNER_TODOS, reminders to OWNER_REMINDERS, alarms to OWNER_ALARMS, habits/routines to OWNER_ROUTINES, goals to OWNER_GOALS, owner health reads to OWNER_HEALTH, screen-time reads to OWNER_SCREENTIME, owner finance/subscription work to OWNER_FINANCES, all owner calendar/scheduling/availability work to CALENDAR, all owner inbox/email/draft/reply/message-management work to MESSAGE with the appropriate action, stable owner facts through automatic profile extraction, contact/entity facts to ENTITY or CONTACT, travel booking and scheduling workflows to PERSONAL_ASSISTANT, X/Twitter DMs to MESSAGE with source=x, X/Twitter feed/search to POST with source=x, website and app blocking to BLOCK with target=website or target=app, browser-companion management to MANAGE_BROWSER_BRIDGE, browser tab control to BROWSER, credential lookup/autofill to CREDENTIALS, and pending approval decisions to RESOLVE_REQUEST. Morning/night self-review briefings run as scheduled tasks rather than as a planner-visible action. Available in private owner conversations, including Discord.\",\n descriptionCompressed:\n \"Owner operations overview, upcoming calendar, email triage. Owner only.\",\n dynamic: true,\n position: 12,\n contexts: [\n \"tasks\",\n \"calendar\",\n \"email\",\n \"contacts\",\n \"payments\",\n \"finance\",\n \"subscriptions\",\n \"health\",\n \"screen_time\",\n \"browser\",\n \"messaging\",\n ],\n contextGate: {\n anyOf: [\n \"tasks\",\n \"calendar\",\n \"email\",\n \"contacts\",\n \"payments\",\n \"finance\",\n \"subscriptions\",\n \"health\",\n \"screen_time\",\n \"browser\",\n \"messaging\",\n ],\n },\n cacheScope: \"turn\",\n roleGate: { minRole: \"OWNER\" },\n async get(\n runtime: IAgentRuntime,\n message: Memory,\n _state: State,\n ): Promise<ProviderResult> {\n const isOwner = await hasLifeOpsAccess(runtime, message);\n if (!isOwner) {\n return { text: \"\", values: {}, data: {} };\n }\n const audience: LifeOpsAudience = \"owner\";\n\n try {\n const service = new LifeOpsService(runtime);\n const ownerProfile = await readLifeOpsOwnerProfile(runtime);\n const overview = await service.getOverview();\n const egressContext = createLifeOpsEgressContext({\n isOwner: true,\n agentId: runtime.agentId,\n entityId: message.entityId,\n });\n const accountManager = getConnectorAccountManager(runtime);\n const connectorAccounts = await accountManager\n .listAccounts(\"google\")\n .catch(() => []);\n const privacyByAccountKey = new Map<\n string,\n ReturnType<typeof getAccountPrivacy>\n >();\n for (const account of connectorAccounts) {\n const privacy = getAccountPrivacy(account);\n privacyByAccountKey.set(account.id, privacy);\n if (account.externalId) {\n privacyByAccountKey.set(account.externalId, privacy);\n }\n const email =\n typeof account.metadata?.email === \"string\"\n ? account.metadata.email.toLowerCase()\n : null;\n if (email) {\n privacyByAccountKey.set(`email:${email}`, privacy);\n }\n }\n\n const resolveAccountPrivacy = (\n connectorAccountId: string | null,\n identityEmail: string | null,\n ): ReturnType<typeof getAccountPrivacy> => {\n if (connectorAccountId) {\n const direct = privacyByAccountKey.get(connectorAccountId);\n if (direct) return direct;\n }\n if (identityEmail) {\n const byEmail = privacyByAccountKey.get(\n `email:${identityEmail.toLowerCase()}`,\n );\n if (byEmail) return byEmail;\n }\n return \"owner_only\";\n };\n\n let privacyFilteredCount = 0;\n let privacyPolicies = mapConnectorAccountPrivacyPolicies([]);\n try {\n privacyPolicies = mapConnectorAccountPrivacyPolicies(\n await service.repository.listConnectorAccountPrivacy(\n service.agentId(),\n ),\n );\n } catch (cause) {\n logger.debug(\n { err: cause },\n \"[LifeOpsProvider] account privacy table unavailable — defaulting to owner-only context\",\n );\n }\n const now = new Date();\n const ownerLines = summarizeOccurrences(\n \"Owner active items:\",\n overview.owner.occurrences,\n );\n const ownerGoalLines = summarizeActiveGoals(overview.owner.goals, now);\n const agentLines = summarizeOccurrences(\n \"Agent ops:\",\n overview.agentOps.occurrences,\n );\n\n const calendarLines: string[] = [];\n const emailLines: string[] = [];\n const accountLines: string[] = [];\n let nextEventContext: LifeOpsNextCalendarEventContext | null = null;\n let gmailSummary: LifeOpsGmailTriageSummary | null = null;\n\n try {\n const accounts = await service.getGoogleConnectorAccounts(INTERNAL_URL);\n const connectedAccounts = accounts.filter((a) => a.connected);\n\n if (connectedAccounts.length > 1) {\n accountLines.push(\"Available Google accounts:\");\n for (const account of connectedAccounts.slice(0, MAX_ACCOUNT_LINES)) {\n const connectorAccountId = account.grant\n ? (account.grant.connectorAccountId ??\n deriveConnectorAccountIdFromGrant(account.grant))\n : null;\n const identityEmail =\n typeof (account.identity as Record<string, unknown> | null)\n ?.email === \"string\"\n ? String((account.identity as Record<string, unknown>).email)\n : null;\n const accountPrivacy = resolveAccountPrivacy(\n connectorAccountId,\n identityEmail,\n );\n if (!canSurfaceForAudience(accountPrivacy, audience)) {\n privacyFilteredCount += 1;\n accountLines.push(\"- Google account [redacted: owner_only]\");\n continue;\n }\n const policy = connectorAccountId\n ? (privacyPolicies.get(\n connectorAccountPrivacyKey(\"google\", connectorAccountId),\n ) ?? null)\n : null;\n if (\n !canSurfaceConnectorAccountData({\n context: egressContext,\n provider: \"google\",\n connectorAccountId,\n dataClass: \"metadata\",\n policy,\n })\n ) {\n accountLines.push(\"- Google account hidden by privacy policy\");\n continue;\n }\n const email = redactTextForEgress(\n String(\n (account.identity as Record<string, unknown> | null)?.email ??\n \"unknown\",\n ),\n { context: egressContext, dataClass: \"metadata\", policy },\n );\n accountLines.push(\n `- ${email} (connectorAccountId: ${connectorAccountId ?? \"unknown\"})`,\n );\n }\n }\n\n const status = connectedAccounts[0];\n if (status?.connected) {\n const connectorAccountId = status.grant\n ? (status.grant.connectorAccountId ??\n deriveConnectorAccountIdFromGrant(status.grant))\n : null;\n const statusIdentityEmail =\n typeof (status.identity as Record<string, unknown> | null)\n ?.email === \"string\"\n ? String((status.identity as Record<string, unknown>).email)\n : null;\n const statusPrivacy = resolveAccountPrivacy(\n connectorAccountId,\n statusIdentityEmail,\n );\n const statusAllowedByMetadataPrivacy = canSurfaceForAudience(\n statusPrivacy,\n audience,\n );\n if (!statusAllowedByMetadataPrivacy) {\n privacyFilteredCount += 1;\n }\n const policy = connectorAccountId\n ? (privacyPolicies.get(\n connectorAccountPrivacyKey(\"google\", connectorAccountId),\n ) ?? null)\n : null;\n const capabilities = status.grantedCapabilities ?? [];\n const hasCalendar = capabilities.some((c) =>\n c.startsWith(\"google.calendar\"),\n );\n const hasGmail = capabilities.some((c) =>\n c.startsWith(\"google.gmail\"),\n );\n\n if (hasCalendar) {\n if (!statusAllowedByMetadataPrivacy) {\n calendarLines.push(\"Calendar context [redacted: owner_only]\");\n } else if (\n !canSurfaceConnectorAccountData({\n context: egressContext,\n provider: \"google\",\n connectorAccountId,\n dataClass: \"snippet\",\n policy,\n })\n ) {\n calendarLines.push(\"Calendar context hidden by privacy policy.\");\n } else {\n try {\n nextEventContext =\n await service.getNextCalendarEventContext(INTERNAL_URL);\n calendarLines.push(...summarizeNextEvent(nextEventContext));\n } catch (cause) {\n logger.warn(\n { err: cause },\n \"[LifeOpsProvider] calendar fetch failed — omitting calendar context\",\n );\n calendarLines.push(\n `Calendar connector degraded: ${cause instanceof Error ? cause.message : String(cause)}`,\n );\n }\n }\n }\n\n if (hasGmail) {\n if (!statusAllowedByMetadataPrivacy) {\n emailLines.push(\"Gmail context [redacted: owner_only]\");\n } else if (\n !canSurfaceConnectorAccountData({\n context: egressContext,\n provider: \"google\",\n connectorAccountId,\n dataClass: \"metadata\",\n policy,\n })\n ) {\n emailLines.push(\"Gmail context hidden by privacy policy.\");\n } else {\n try {\n const triage = await service.getGmailTriage(INTERNAL_URL, {\n maxResults: 5,\n });\n gmailSummary = triage.summary;\n emailLines.push(...summarizeGmailTriage(triage.summary));\n } catch (cause) {\n logger.warn(\n { err: cause },\n \"[LifeOpsProvider] gmail triage fetch failed — omitting email context\",\n );\n emailLines.push(\n `Gmail connector degraded: ${cause instanceof Error ? cause.message : String(cause)}`,\n );\n }\n }\n }\n }\n\n if (calendarLines.length === 0 && audience === \"owner\") {\n try {\n nextEventContext =\n await service.getNextCalendarEventContext(INTERNAL_URL);\n calendarLines.push(...summarizeNextEvent(nextEventContext));\n } catch (cause) {\n logger.debug(\n { err: cause },\n \"[LifeOpsProvider] native calendar context unavailable — omitting calendar context\",\n );\n }\n }\n } catch (cause) {\n logger.debug(\n { err: cause },\n \"[LifeOpsProvider] Google connector unavailable — skipping calendar/email context\",\n );\n accountLines.push(\n `Google connector status unavailable: ${cause instanceof Error ? cause.message : String(cause)}`,\n );\n }\n\n if (privacyFilteredCount > 0) {\n logger.debug(\n `[LifeOpsPrivacy] filtered ${privacyFilteredCount} accounts of provider google for audience ${audience}`,\n );\n }\n\n const connectorDegradationLines =\n await summarizeConnectorDegradation(runtime);\n\n return {\n text: [\n \"## Owner Operations\",\n \"Use OWNER_TODOS for personal todos and live todo-status questions. Use OWNER_REMINDERS for one-off or recurring reminders. Use OWNER_ALARMS for alarm-like reminders. Use OWNER_ROUTINES for habits and daily/weekly routines. Use OWNER_GOALS for long-term goals. Examples: 'add a todo', 'remember to call mom on Sunday', 'track my gym sessions three times a week', 'set a goal to save $5,000'. Do not use REPLY or ENTITY for these.\",\n \"Use CALENDAR for live calendar reads, calendar writes, availability, proposed meeting times, scheduling preferences, and scheduling negotiation. Examples: 'what's my next meeting?', 'show me my calendar for today', 'what does my week look like?', 'schedule a dentist appointment next Tuesday at 3pm', 'find meeting options with Alice', or 'protect my sleep window from calls'. Do not answer these from provider context alone.\",\n \"Use MESSAGE action=triage/list_inbox/search_inbox for Gmail, email, and cross-channel inbox review: 'triage my Gmail inbox', 'summarize my unread emails', 'triage my inbox', 'give me my inbox digest', daily briefs, missed-call repair, and group-chat handoff. Use MESSAGE action=draft_reply when the owner asks to draft a reply to an existing message, MESSAGE action=respond when the owner asks to send/respond to an existing message, and MESSAGE action=manage for unsubscribe, block, archive, trash, spam, label, or mark-read requests. Do not use MESSAGE just because the user mentioned email or messages while venting.\",\n \"Use MESSAGE action=send_draft for owner-scoped outbound messages and drafts on the owner's behalf. Examples: 'send a Telegram message to Jane saying I am running late', 'send a Signal message to Priya saying thanks', 'email alice@example.com the notes', 'DM Bob on Discord', or 'text Sam that I am outside'. Always prefer MESSAGE action=send_draft over CALENDAR for relaying a message, even if the message text mentions a meeting.\",\n \"Use CREDENTIALS for credential lookup, saved-login requests, and trusted-page autofill. Examples: 'look up my GitHub password', 'show me my saved logins for github.com', 'copy my AWS password to clipboard', 'log me into github on this sign-in page'. Do not surface raw secrets in chat.\",\n \"Use ENTITY for Rolodex contacts and typed relationships (add a contact, log an interaction, set an identity, set a relationship, merge duplicates). Examples: 'who are my closest contacts?', 'add Sam to my Rolodex', 'Pat is my manager'. Use SCHEDULED_TASKS for follow-up cadence questions: 'remind me to follow up with David next week', 'how long has it been since I talked to David?', 'who is overdue for follow-up?'.\",\n \"Use OWNER_SCREENTIME for quantitative device/app/website usage questions. Examples: 'how much screen time have I used today?', 'break down my screen time by app this week', 'what websites did I spend the most time on?'. If the owner is only reflecting or venting like 'I spend too much time on my phone', stay in chat instead of calling OWNER_SCREENTIME.\",\n \"Use BLOCK for phone app and website blocking requests. Pass target=app for phone apps and target=website for websites. Examples: 'block all games on my phone until 6pm', 'block Slack while I focus on deep work', 'block reddit.com until after my workout'.\",\n \"Use OWNER_FINANCES for subscription audits, recurring membership reviews, cancellation requests, and cancellation-status checks. Examples: 'audit my subscriptions', 'cancel my Google Play subscription', 'what happened with that subscription cancellation?', 'cancel this subscription even if it needs sign-in first'. Use MESSAGE action=manage for email newsletter unsubscribe requests.\",\n \"Use PERSONAL_ASSISTANT action=sign_document for document-signature flows that must be drafted or queued before an appointment, including NDA or DocuSign requests.\",\n \"Route all meeting-time proposals, availability checks, durable scheduling rules, and explicit multi-turn scheduling negotiations through CALENDAR.\",\n \"Stable owner-only profile details and reusable travel-preference checklists are extracted automatically by evaluators. Do not use a planner action for goals, todos, reminders, temporary plans, or live task state.\",\n \"Use MESSAGE action=read_channel/search with source=x for X/Twitter DMs. Use POST action=read/search with source=x for X/Twitter timeline, mentions, and topic search. Do not route X reads/search to a platform-specific X action.\",\n \"Use BLOCK target=website for website blocking requests, including timed focus sessions, indefinite distraction blocking, or phrasing like 'block these sites until I finish my workout'. Clarify duration or unblock expectations when details are ambiguous; there is no separate todo-gated website block action.\",\n \"Use ROOM for targeted connector chat mute/unmute when the owner names a Telegram/Discord/etc. room that is not the current chat, especially temporary mutes like 'mute the crypto signals Telegram group for 24 hours'. Pass platform + chatName + durationMinutes; ROOM also handles current-room follow/unfollow/mute/unmute when those parameters are omitted.\",\n \"Use COMPUTER_USE for portal uploads, Finder/Desktop work like taking screenshots or creating folders, browser workflows, and file-handling tasks on the owner's machine, including deferred instructions like 'when I send over the deck, upload it to the portal for me.'\",\n \"Use MANAGE_BROWSER_BRIDGE for installing/refreshing the Chrome/Safari companion extension and managing companion connection state ('open chrome extensions', 'reveal the bridge folder', 'refresh browser bridge'). Use BROWSER for tab control, navigation, clicks, typing, screenshots, and DOM reads — including LifeOps browser sessions like 'list my browser tabs' or 'navigate the work tab to gmail'.\",\n \"Use REMOTE_DESKTOP to start, list, check, end, or revoke a remote desktop session so the owner can connect from a phone. Requests like 'start a remote desktop session' or 'let me connect from my phone' belong here even if the action needs confirmation or a pairing step.\",\n \"Use RESOLVE_REQUEST when the owner is resolving a pending approval item. Examples: 'approve the pending travel booking request' or 'reject that pending approval request and say it needs changes'.\",\n \"Use VOICE_CALL for phone-call escalation or booking calls. These actions can draft or request confirmation first; they do not require the dial to happen on the first turn. Requests like 'if you get stuck in the browser or on my computer, call me and let me jump in to unblock it' belong here. Requests like 'call the dentist and reschedule my appointment' or 'phone my cable company about the outage' also belong to VOICE_CALL, not CALENDAR, OWNER_TODOS, or MESSAGE action=send_draft.\",\n \"When the owner is only making an observation or venting like 'my calendar has been crazy this quarter', 'I hate email', or 'I think I spend too much time on my phone', stay in REPLY instead of calling a LifeOps action unless they actually ask you to do something.\",\n \"Treat owner instructions phrased as standing policies, triggers, or conditionals like 'if this happens, do x' or 'when that arrives, handle it' as executable requests, not hypotheticals.\",\n \"When the owner clearly asks for one of these LifeOps executive-assistant operations, call the best-fit action instead of staying in advice-only chat. If details are missing, let the action ask the minimum follow-up question.\",\n \"Route examples: sleep/no-call windows -> CALENDAR; daily brief additions, missed-call repair, or group-chat handoff -> MESSAGE action=triage; 'if direct relaying gets messy here, suggest making a group chat handoff instead' -> MESSAGE action=triage; outbound Telegram/Signal/email/Discord/SMS drafts -> MESSAGE action=send_draft; subscription audits or cancellations -> OWNER_FINANCES; travel preference memory -> automatic owner profile extraction; portal upload or browser filing -> COMPUTER_USE; if the agent gets stuck and should phone the owner -> VOICE_CALL.\",\n \"When the owner asks about their stable personal details for LifeOps, answer from the stored owner profile values below. If a field is not n/a, treat it as known instead of saying it is missing.\",\n \"Owner life-ops are private to the owner and the agent. Agent ops are internal and should stay separated unless explicitly requested.\",\n ...summarizeOwnerProfile(ownerProfile),\n formatCount(\n \"Owner open occurrences\",\n overview.owner.summary.activeOccurrenceCount,\n ),\n formatCount(\n \"Owner active goals\",\n overview.owner.summary.activeGoalCount,\n ),\n ...ownerGoalLines,\n formatCount(\n \"Owner live reminders\",\n overview.owner.summary.activeReminderCount,\n ),\n ...ownerLines,\n ...accountLines,\n ...calendarLines,\n ...emailLines,\n ...connectorDegradationLines,\n formatCount(\n \"Agent open occurrences\",\n overview.agentOps.summary.activeOccurrenceCount,\n ),\n formatCount(\n \"Agent active goals\",\n overview.agentOps.summary.activeGoalCount,\n ),\n ...agentLines,\n ].join(\"\\n\"),\n values: {\n ownerOpenOccurrences: overview.owner.summary.activeOccurrenceCount,\n ownerActiveGoals: overview.owner.summary.activeGoalCount,\n ownerActiveGoalTitles: overview.owner.goals\n .filter((goal) => goal.status === \"active\")\n .slice(0, GOAL_TITLES_MAX_DISPLAYED)\n .map((goal) => goal.title),\n ownerProfileName: ownerProfile.name,\n ownerRelationshipStatus: ownerProfile.relationshipStatus,\n ownerPartnerName: ownerProfile.partnerName,\n ownerOrientation: ownerProfile.orientation,\n ownerGender: ownerProfile.gender,\n ownerAge: ownerProfile.age,\n ownerLocation: ownerProfile.location,\n agentOpenOccurrences: overview.agentOps.summary.activeOccurrenceCount,\n agentActiveGoals: overview.agentOps.summary.activeGoalCount,\n },\n data: {\n ownerProfile,\n overview: {\n ...overview,\n owner: {\n ...overview.owner,\n goals: overview.owner.goals.slice(0, GOAL_TITLES_MAX_DISPLAYED),\n occurrences: overview.owner.occurrences.slice(0, 5),\n },\n agentOps: {\n ...overview.agentOps,\n occurrences: overview.agentOps.occurrences.slice(0, 5),\n },\n },\n nextEventContext,\n gmailSummary,\n },\n };\n } catch (error) {\n return {\n text: \"LifeOps overview unavailable.\",\n values: { ownerOpenOccurrences: 0, ownerActiveGoals: 0 },\n data: {\n error: error instanceof Error ? error.message : String(error),\n },\n };\n }\n },\n};\n"],"mappings":"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","names":[]}