@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,140 @@
1
+ /**
2
+ * WS5 — Background-job pipeline parity (PRD lines 418-433).
3
+ *
4
+ * Single shared LLM planner entry-point for every LifeOps background job.
5
+ * Mirrors the chat planner pattern used in `actions/inbox.ts` (`resolveSubactionPlan`)
6
+ * and `actions/life.ts`: structured JSON model output, no English keyword
7
+ * routing, no regex, multilingual-safe.
8
+ *
9
+ * Every job calls `planJob({...})` to get a typed `{action, payload,
10
+ * requiresApproval, reason}` decision. Sensitive actions
11
+ * (requiresApproval=true) are then enqueued via the WS6 approval queue
12
+ * (`approval-queue.types.ts`) instead of being executed directly.
13
+ *
14
+ * --------------------------------------------------------------------------
15
+ * Background-job inventory (search results for brief|followup|reminder|
16
+ * escalation|digest|watchdog|nudge|sweep|cron|schedule under
17
+ * `eliza/plugins/plugin-personal-assistant/src/lifeops/` and adjacent job dirs).
18
+ *
19
+ * Real registered task workers (runtime.registerTaskWorker callsites):
20
+ *
21
+ * 1. LIFEOPS_SCHEDULER
22
+ * - file: lifeops/runtime.ts (registerLifeOpsTaskWorker)
23
+ * - exec: executeLifeOpsSchedulerTask -> service.processScheduledWork
24
+ * - downstream:
25
+ * a. service-mixin-reminders.ts processReminders (PRD: meeting reminder ladder, draft aging sweeper)
26
+ * b. service-mixin-workflows.ts runDueWorkflows (PRD: travel conflict detector, event asset sweeper)
27
+ * c. service-mixin-reminders.ts syncWebsiteAccessState (enforcement window sweep)
28
+ *
29
+ * 2. PROACTIVE_AGENT
30
+ * - file: activity-profile/proactive-worker.ts (registerProactiveTaskWorker)
31
+ * - exec: executeProactiveTask
32
+ * - downstream:
33
+ * a. planGm (PRD: daily brief builder — morning)
34
+ * b. planGn (PRD: evening closeout)
35
+ * c. planNudges (PRD: meeting reminder ladder)
36
+ * d. planDowntimeNudges (PRD: pending-decision nudger / decision nudger)
37
+ * e. planGoalCheckIns (PRD: relationship/goal overdue detector)
38
+ * f. planSeedingOffer (onboarding seed)
39
+ * g. classifyCalendarEventsForProactivePlanning (already LLM-routed)
40
+ *
41
+ * 3. FOLLOWUP_TRACKER_RECONCILE
42
+ * - file: followup/followup-tracker.ts (registerFollowupTrackerWorker)
43
+ * - exec: reconcileFollowupsOnce -> computeOverdueFollowups
44
+ * - downstream: writeOverdueDigestMemory (PRD: follow-up watchdog, relationship-overdue-detector)
45
+ *
46
+ * 4. WEBSITE_BLOCKER_UNBLOCK_TASK_NAME
47
+ * - file: website-blocker/service.ts (out of EA scope; kept for completeness)
48
+ *
49
+ * 5. BLOCK_RULE_RECONCILE_TASK_NAME
50
+ * - file: website-blocker/chat-integration/block-rule-reconciler.ts
51
+ *
52
+ * Other background entry points / sweeps that flow through the workers above:
53
+ *
54
+ * - Activity profile rebuilds: activity-profile/service.ts (driven by PROACTIVE_AGENT)
55
+ * - Reminder enforcement windows: lifeops/enforcement-windows.ts (driven by reminders mixin)
56
+ *
57
+ * Mapping to PRD §"Background Jobs And Cron Handlers" (lines 418-433):
58
+ *
59
+ * PRD job | Job key (this module)
60
+ * -----------------------------------------+--------------------------------
61
+ * Inbox ingest per connector | inbox_ingest (event-driven)
62
+ * Daily brief builder | daily_brief (proactive_gm)
63
+ * Evening closeout | evening_closeout (proactive_gn)
64
+ * Follow-up watchdog | followup_watchdog (followup_tracker)
65
+ * Decision nudger | decision_nudger (proactive downtime)
66
+ * Meeting reminder ladder | meeting_reminder (proactive nudges + reminders)
67
+ * Travel conflict detector | travel_conflict (workflows)
68
+ * Event asset sweeper | event_asset_sweep (workflows)
69
+ * Draft aging sweeper | draft_aging_sweep (reminders)
70
+ * Remote stuck-agent escalator | remote_stuck_escalate (browser/computer-use)
71
+ * Pending-decision nudger | pending_decision (proactive downtime)
72
+ * Missed-commitment repair | missed_commitment (followup_tracker)
73
+ * Unsent-draft resurfacer | unsent_draft (reminders)
74
+ * Relationship-overdue detector | relationship_overdue (followup_tracker)
75
+ * Deadline escalator | deadline_escalate (reminders)
76
+ * Travel-ops rechecker | travel_ops (workflows)
77
+ *
78
+ * --------------------------------------------------------------------------
79
+ */
80
+ import type { IAgentRuntime } from "@elizaos/core";
81
+ import type { ApprovalAction, ApprovalChannel, ApprovalPayload } from "./approval-queue.types.js";
82
+ /** Background-job kinds the planner knows about. Keep in sync with the
83
+ * inventory comment above. Adding a new kind requires updating the
84
+ * contract test (`background-job-parity.contract.test.ts`). */
85
+ export type BackgroundJobKind = "inbox_ingest" | "daily_brief" | "evening_closeout" | "followup_watchdog" | "decision_nudger" | "meeting_reminder" | "travel_conflict" | "event_asset_sweep" | "draft_aging_sweep" | "remote_stuck_escalate" | "pending_decision" | "missed_commitment" | "unsent_draft" | "relationship_overdue" | "deadline_escalate" | "travel_ops";
86
+ /**
87
+ * Result of `planJob`. `action` is null when the planner decided no action is
88
+ * warranted right now (e.g. the GM window already fired). Callers MUST
89
+ * inspect `requiresApproval` and route through the WS6 approval queue when
90
+ * true — they MUST NOT execute sensitive actions directly.
91
+ */
92
+ export interface TypedJobPlan {
93
+ /** Closed-enum action selected by the planner, or null for noop. */
94
+ readonly action: ApprovalAction | null;
95
+ /** Action-specific payload. Null when `action` is null. */
96
+ readonly payload: ApprovalPayload | null;
97
+ /** When true, the caller MUST enqueue this in the approval queue
98
+ * (WS6) instead of executing directly. */
99
+ readonly requiresApproval: boolean;
100
+ /** Channel through which the action will be carried out. */
101
+ readonly channel: ApprovalChannel;
102
+ /** Human-readable justification from the planner. Always non-empty. */
103
+ readonly reason: string;
104
+ }
105
+ /**
106
+ * Context passed into the planner by a background job. Jobs assemble this
107
+ * from their own runtime context (overdue digest, fired-actions log, etc.)
108
+ * and let the LLM decide what to do.
109
+ */
110
+ export interface BackgroundJobContext {
111
+ readonly jobKind: BackgroundJobKind;
112
+ readonly subjectUserId: string;
113
+ /** Free-form structured snapshot of the job state (occurrences, calendar
114
+ * events, overdue contacts, ...). The planner reads this verbatim. */
115
+ readonly snapshot: Readonly<Record<string, unknown>>;
116
+ /** Channels enabled for this owner. Limits the planner's choices. */
117
+ readonly availableChannels: ReadonlyArray<ApprovalChannel>;
118
+ /** Reason the job ran — cron tick, event-driven trigger, etc. */
119
+ readonly trigger: string;
120
+ }
121
+ /**
122
+ * Error raised when the planner is unavailable or returned unparsable
123
+ * output. We surface this loudly — the caller MUST decide whether to skip
124
+ * this tick or escalate. We never silently fall back to a default action.
125
+ */
126
+ export declare class BackgroundPlannerError extends Error {
127
+ readonly jobKind: BackgroundJobKind;
128
+ readonly cause?: unknown;
129
+ constructor(jobKind: BackgroundJobKind, message: string, cause?: unknown);
130
+ }
131
+ /**
132
+ * Plan a background-job action via the same LLM pipeline used by chat
133
+ * actions. Returns a typed plan; throws `BackgroundPlannerError` on hard
134
+ * planner failure (model unavailable, unparsable output). Callers MUST
135
+ * route sensitive actions through the WS6 approval queue.
136
+ */
137
+ export declare function planJob(runtime: IAgentRuntime, jobContext: BackgroundJobContext): Promise<TypedJobPlan>;
138
+ /** Test-only helper: list all PRD job kinds the planner knows about. */
139
+ export declare const KNOWN_JOB_KINDS: ReadonlyArray<BackgroundJobKind>;
140
+ //# sourceMappingURL=background-planner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background-planner.d.ts","sourceRoot":"","sources":["../../src/lifeops/background-planner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAOnD,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,eAAe,EAChB,MAAM,2BAA2B,CAAC;AAOnC;;gEAEgE;AAChE,MAAM,MAAM,iBAAiB,GACzB,cAAc,GACd,aAAa,GACb,kBAAkB,GAClB,mBAAmB,GACnB,iBAAiB,GACjB,kBAAkB,GAClB,iBAAiB,GACjB,mBAAmB,GACnB,mBAAmB,GACnB,uBAAuB,GACvB,kBAAkB,GAClB,mBAAmB,GACnB,cAAc,GACd,sBAAsB,GACtB,mBAAmB,GACnB,YAAY,CAAC;AAEjB;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,oEAAoE;IACpE,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,2DAA2D;IAC3D,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC;+CAC2C;IAC3C,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACnC,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,uEAAuE;IACvE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B;2EACuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrD,qEAAqE;IACrE,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IAC3D,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAyCD;;;;GAIG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,SAAgB,OAAO,EAAE,iBAAiB,CAAC;IAC3C,SAAgB,KAAK,CAAC,EAAE,OAAO,CAAC;gBAEpB,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;CAMzE;AAyTD;;;;;GAKG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,aAAa,EACtB,UAAU,EAAE,oBAAoB,GAC/B,OAAO,CAAC,YAAY,CAAC,CAoFvB;AAED,wEAAwE;AACxE,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,iBAAiB,CAiB5D,CAAC"}
@@ -0,0 +1,359 @@
1
+ import {
2
+ logger,
3
+ ModelType,
4
+ parseJsonModelRecord,
5
+ runWithTrajectoryContext
6
+ } from "@elizaos/core";
7
+ const SENSITIVE_ACTIONS = /* @__PURE__ */ new Set([
8
+ "send_message",
9
+ "send_email",
10
+ "schedule_event",
11
+ "modify_event",
12
+ "cancel_event",
13
+ "book_travel",
14
+ "make_call",
15
+ "execute_workflow",
16
+ "spend_money"
17
+ ]);
18
+ const ALL_ACTIONS = [
19
+ "send_message",
20
+ "send_email",
21
+ "schedule_event",
22
+ "modify_event",
23
+ "cancel_event",
24
+ "book_travel",
25
+ "make_call",
26
+ "execute_workflow",
27
+ "spend_money",
28
+ "noop"
29
+ ];
30
+ const ALL_CHANNELS = [
31
+ "telegram",
32
+ "discord",
33
+ "slack",
34
+ "imessage",
35
+ "sms",
36
+ "x_dm",
37
+ "email",
38
+ "google_calendar",
39
+ "browser",
40
+ "phone",
41
+ "internal"
42
+ ];
43
+ class BackgroundPlannerError extends Error {
44
+ jobKind;
45
+ cause;
46
+ constructor(jobKind, message, cause) {
47
+ super(`[BackgroundPlanner:${jobKind}] ${message}`);
48
+ this.name = "BackgroundPlannerError";
49
+ this.jobKind = jobKind;
50
+ this.cause = cause;
51
+ }
52
+ }
53
+ function isApprovalAction(value) {
54
+ return typeof value === "string" && SENSITIVE_ACTIONS.has(value);
55
+ }
56
+ function isApprovalChannel(value) {
57
+ return typeof value === "string" && ALL_CHANNELS.includes(value);
58
+ }
59
+ function formatPromptValue(value, depth = 0) {
60
+ const indent = " ".repeat(depth);
61
+ const childIndent = " ".repeat(depth + 1);
62
+ if (value === null) return "null";
63
+ if (value === void 0) return "";
64
+ if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
65
+ return String(value);
66
+ }
67
+ if (Array.isArray(value)) {
68
+ if (value.length === 0) return "(none)";
69
+ return value.map((entry) => `${childIndent}- ${formatPromptValue(entry, depth + 1)}`).join("\n");
70
+ }
71
+ if (typeof value === "object") {
72
+ const entries = Object.entries(value);
73
+ if (entries.length === 0) return "(empty)";
74
+ return entries.map(([key, entry]) => {
75
+ const formatted = formatPromptValue(entry, depth + 1);
76
+ return formatted.includes("\n") ? `${indent}${key}:
77
+ ${formatted}` : `${indent}${key}: ${formatted}`;
78
+ }).join("\n");
79
+ }
80
+ return String(value);
81
+ }
82
+ function buildPrompt(jobContext) {
83
+ return [
84
+ `Plan the BACKGROUND JOB action for job kind: ${jobContext.jobKind}.`,
85
+ "You are routing a background tick for an executive assistant.",
86
+ "Decide whether the assistant should take an action right now, and if so",
87
+ "which action and through which channel. The assistant MUST NOT execute",
88
+ "sensitive actions directly \u2014 anything that contacts a person, modifies a",
89
+ "calendar, books travel, makes a call, runs a workflow, or spends money",
90
+ "returns requiresApproval=true so the user can confirm.",
91
+ "",
92
+ "Return ONLY a JSON object with exactly these top-level fields:",
93
+ `action: one of ${ALL_ACTIONS.join(", ")}`,
94
+ `channel: one of ${ALL_CHANNELS.join(", ")}`,
95
+ "requiresApproval: boolean",
96
+ "reason: short justification",
97
+ "payload: action-specific object, or null when action=noop",
98
+ "",
99
+ 'Example noop: {"action":"noop","channel":"internal","requiresApproval":false,"reason":"Nothing is overdue on this tick.","payload":null}',
100
+ "",
101
+ 'Example email: {"action":"send_email","channel":"email","requiresApproval":true,"reason":"The contact is overdue and email is the enabled channel.","payload":{"to":["person@example.com"],"subject":"Follow-up","body":"Short draft for user approval."}}',
102
+ "",
103
+ "Rules:",
104
+ "- Choose action=noop when no action is warranted this tick (e.g. nothing overdue).",
105
+ "- requiresApproval=true for any action that touches a person or external system.",
106
+ "- requiresApproval=false ONLY when action=noop or the action is purely internal (logging, internal workflow with no side effects).",
107
+ "- The reason must explain WHY this tick warrants the chosen action, in any language.",
108
+ "",
109
+ `Job trigger: ${jobContext.trigger}`,
110
+ `Subject user: ${jobContext.subjectUserId}`,
111
+ "Available channels:",
112
+ formatPromptValue(jobContext.availableChannels),
113
+ "Snapshot:",
114
+ formatPromptValue(jobContext.snapshot)
115
+ ].join("\n");
116
+ }
117
+ function emptyPayloadFor(_action) {
118
+ return null;
119
+ }
120
+ function stringOrNull(record, key) {
121
+ const value = record[key];
122
+ return typeof value === "string" && value.trim().length > 0 ? value : null;
123
+ }
124
+ function coerceTravelSearch(value) {
125
+ if (!value || typeof value !== "object" || Array.isArray(value)) return null;
126
+ const record = value;
127
+ const origin = stringOrNull(record, "origin");
128
+ const destination = stringOrNull(record, "destination");
129
+ const departureDate = stringOrNull(record, "departureDate");
130
+ if (!origin || !destination || !departureDate) return null;
131
+ const passengers = typeof record.passengers === "number" && Number.isFinite(record.passengers) ? Math.max(1, Math.floor(record.passengers)) : void 0;
132
+ return {
133
+ origin,
134
+ destination,
135
+ departureDate,
136
+ returnDate: stringOrNull(record, "returnDate") ?? void 0,
137
+ passengers
138
+ };
139
+ }
140
+ function coerceTravelPassengers(value) {
141
+ if (!Array.isArray(value)) return [];
142
+ return value.flatMap((entry) => {
143
+ if (!entry || typeof entry !== "object" || Array.isArray(entry)) return [];
144
+ const record = entry;
145
+ const givenName = stringOrNull(record, "givenName");
146
+ const familyName = stringOrNull(record, "familyName");
147
+ const bornOn = stringOrNull(record, "bornOn");
148
+ if (!givenName || !familyName || !bornOn) return [];
149
+ return [
150
+ {
151
+ offerPassengerId: stringOrNull(record, "offerPassengerId"),
152
+ givenName,
153
+ familyName,
154
+ bornOn,
155
+ email: stringOrNull(record, "email"),
156
+ phoneNumber: stringOrNull(record, "phoneNumber"),
157
+ title: stringOrNull(record, "title"),
158
+ gender: stringOrNull(record, "gender")
159
+ }
160
+ ];
161
+ });
162
+ }
163
+ function coerceTravelCalendarSync(value) {
164
+ if (!value || typeof value !== "object" || Array.isArray(value)) return null;
165
+ const record = value;
166
+ return {
167
+ enabled: record.enabled === true,
168
+ calendarId: stringOrNull(record, "calendarId"),
169
+ title: stringOrNull(record, "title"),
170
+ description: stringOrNull(record, "description"),
171
+ location: stringOrNull(record, "location"),
172
+ timeZone: stringOrNull(record, "timeZone")
173
+ };
174
+ }
175
+ function coercePayload(action, rawPayload) {
176
+ if (!rawPayload || typeof rawPayload !== "object" || Array.isArray(rawPayload)) {
177
+ return emptyPayloadFor(action);
178
+ }
179
+ const record = rawPayload;
180
+ switch (action) {
181
+ case "send_message": {
182
+ const recipient = typeof record.recipient === "string" ? record.recipient : null;
183
+ const body = typeof record.body === "string" ? record.body : null;
184
+ if (!recipient || !body) return null;
185
+ return {
186
+ action,
187
+ recipient,
188
+ body,
189
+ replyToMessageId: typeof record.replyToMessageId === "string" ? record.replyToMessageId : null
190
+ };
191
+ }
192
+ case "send_email": {
193
+ const subject = typeof record.subject === "string" ? record.subject : null;
194
+ const body = typeof record.body === "string" ? record.body : null;
195
+ const to = Array.isArray(record.to) ? record.to.filter((v) => typeof v === "string") : [];
196
+ if (!subject || !body || to.length === 0) return null;
197
+ return {
198
+ action,
199
+ to,
200
+ cc: Array.isArray(record.cc) ? record.cc.filter((v) => typeof v === "string") : [],
201
+ bcc: Array.isArray(record.bcc) ? record.bcc.filter((v) => typeof v === "string") : [],
202
+ subject,
203
+ body,
204
+ threadId: typeof record.threadId === "string" ? record.threadId : null
205
+ };
206
+ }
207
+ case "execute_workflow": {
208
+ const workflowId = typeof record.workflowId === "string" ? record.workflowId : null;
209
+ if (!workflowId) return null;
210
+ const inputRaw = record.input;
211
+ const input = {};
212
+ if (inputRaw && typeof inputRaw === "object" && !Array.isArray(inputRaw)) {
213
+ for (const [k, v] of Object.entries(
214
+ inputRaw
215
+ )) {
216
+ if (typeof v === "string" || typeof v === "number" || typeof v === "boolean") {
217
+ input[k] = v;
218
+ }
219
+ }
220
+ }
221
+ return { action, workflowId, input };
222
+ }
223
+ case "book_travel": {
224
+ const provider = typeof record.provider === "string" ? record.provider : null;
225
+ const itineraryRef = typeof record.itineraryRef === "string" ? record.itineraryRef : null;
226
+ const totalCents = typeof record.totalCents === "number" && Number.isFinite(record.totalCents) ? Math.round(record.totalCents) : null;
227
+ const currency = typeof record.currency === "string" ? record.currency : null;
228
+ const kind = record.kind === "flight" || record.kind === "hotel" || record.kind === "ground" ? record.kind : null;
229
+ const search = coerceTravelSearch(record.search);
230
+ const passengers = coerceTravelPassengers(record.passengers);
231
+ const calendarSync = coerceTravelCalendarSync(record.calendarSync);
232
+ if (!provider || !itineraryRef || totalCents === null || !currency || !kind) {
233
+ return null;
234
+ }
235
+ return {
236
+ action,
237
+ kind,
238
+ provider,
239
+ itineraryRef,
240
+ totalCents,
241
+ currency,
242
+ offerId: typeof record.offerId === "string" ? record.offerId : null,
243
+ offerRequestId: typeof record.offerRequestId === "string" ? record.offerRequestId : null,
244
+ orderType: record.orderType === "hold" || record.orderType === "instant" ? record.orderType : null,
245
+ search,
246
+ passengers,
247
+ calendarSync,
248
+ summary: typeof record.summary === "string" ? record.summary : null
249
+ };
250
+ }
251
+ default:
252
+ return null;
253
+ }
254
+ }
255
+ function parsePlannerOutput(raw) {
256
+ return parseJsonModelRecord(raw);
257
+ }
258
+ function coerceBoolean(value) {
259
+ if (typeof value === "boolean") return value;
260
+ if (typeof value === "string") {
261
+ const normalized = value.trim().toLowerCase();
262
+ if (["true", "yes", "1"].includes(normalized)) return true;
263
+ if (["false", "no", "0"].includes(normalized)) return false;
264
+ }
265
+ return null;
266
+ }
267
+ async function planJob(runtime, jobContext) {
268
+ if (typeof runtime.useModel !== "function") {
269
+ throw new BackgroundPlannerError(
270
+ jobContext.jobKind,
271
+ "runtime.useModel is unavailable; background job cannot run"
272
+ );
273
+ }
274
+ const prompt = buildPrompt(jobContext);
275
+ let result;
276
+ try {
277
+ result = await runWithTrajectoryContext(
278
+ { purpose: "lifeops-background-planner" },
279
+ () => runtime.useModel(ModelType.TEXT_SMALL, { prompt })
280
+ );
281
+ } catch (error) {
282
+ throw new BackgroundPlannerError(
283
+ jobContext.jobKind,
284
+ `model call failed: ${error instanceof Error ? error.message : String(error)}`,
285
+ error
286
+ );
287
+ }
288
+ const raw = typeof result === "string" ? result : "";
289
+ const parsed = parsePlannerOutput(raw);
290
+ if (!parsed) {
291
+ throw new BackgroundPlannerError(
292
+ jobContext.jobKind,
293
+ `planner returned unparsable output: ${raw.slice(0, 200)}`
294
+ );
295
+ }
296
+ const rawAction = parsed.action;
297
+ const rawChannel = parsed.channel;
298
+ const reason = typeof parsed.reason === "string" && parsed.reason.trim().length > 0 ? parsed.reason.trim() : null;
299
+ if (!reason) {
300
+ throw new BackgroundPlannerError(
301
+ jobContext.jobKind,
302
+ "planner output missing required `reason` field"
303
+ );
304
+ }
305
+ const channel = isApprovalChannel(rawChannel) ? rawChannel : "internal";
306
+ if (rawAction === "noop" || rawAction === null || rawAction === void 0) {
307
+ logger.debug(`[BackgroundPlanner:${jobContext.jobKind}] noop \u2014 ${reason}`);
308
+ return {
309
+ action: null,
310
+ payload: null,
311
+ requiresApproval: false,
312
+ channel,
313
+ reason
314
+ };
315
+ }
316
+ if (!isApprovalAction(rawAction)) {
317
+ throw new BackgroundPlannerError(
318
+ jobContext.jobKind,
319
+ `planner returned unknown action: ${String(rawAction)}`
320
+ );
321
+ }
322
+ const payload = coercePayload(rawAction, parsed.payload);
323
+ const parsedRequiresApproval = coerceBoolean(parsed.requiresApproval);
324
+ const requiresApproval = parsedRequiresApproval === false ? false : SENSITIVE_ACTIONS.has(rawAction);
325
+ logger.info(
326
+ `[BackgroundPlanner:${jobContext.jobKind}] action=${rawAction} channel=${channel} requiresApproval=${requiresApproval} \u2014 ${reason}`
327
+ );
328
+ return {
329
+ action: rawAction,
330
+ payload,
331
+ requiresApproval,
332
+ channel,
333
+ reason
334
+ };
335
+ }
336
+ const KNOWN_JOB_KINDS = [
337
+ "inbox_ingest",
338
+ "daily_brief",
339
+ "evening_closeout",
340
+ "followup_watchdog",
341
+ "decision_nudger",
342
+ "meeting_reminder",
343
+ "travel_conflict",
344
+ "event_asset_sweep",
345
+ "draft_aging_sweep",
346
+ "remote_stuck_escalate",
347
+ "pending_decision",
348
+ "missed_commitment",
349
+ "unsent_draft",
350
+ "relationship_overdue",
351
+ "deadline_escalate",
352
+ "travel_ops"
353
+ ];
354
+ export {
355
+ BackgroundPlannerError,
356
+ KNOWN_JOB_KINDS,
357
+ planJob
358
+ };
359
+ //# sourceMappingURL=background-planner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lifeops/background-planner.ts"],"sourcesContent":["/**\n * WS5 — Background-job pipeline parity (PRD lines 418-433).\n *\n * Single shared LLM planner entry-point for every LifeOps background job.\n * Mirrors the chat planner pattern used in `actions/inbox.ts` (`resolveSubactionPlan`)\n * and `actions/life.ts`: structured JSON model output, no English keyword\n * routing, no regex, multilingual-safe.\n *\n * Every job calls `planJob({...})` to get a typed `{action, payload,\n * requiresApproval, reason}` decision. Sensitive actions\n * (requiresApproval=true) are then enqueued via the WS6 approval queue\n * (`approval-queue.types.ts`) instead of being executed directly.\n *\n * --------------------------------------------------------------------------\n * Background-job inventory (search results for brief|followup|reminder|\n * escalation|digest|watchdog|nudge|sweep|cron|schedule under\n * `eliza/plugins/plugin-personal-assistant/src/lifeops/` and adjacent job dirs).\n *\n * Real registered task workers (runtime.registerTaskWorker callsites):\n *\n * 1. LIFEOPS_SCHEDULER\n * - file: lifeops/runtime.ts (registerLifeOpsTaskWorker)\n * - exec: executeLifeOpsSchedulerTask -> service.processScheduledWork\n * - downstream:\n * a. service-mixin-reminders.ts processReminders (PRD: meeting reminder ladder, draft aging sweeper)\n * b. service-mixin-workflows.ts runDueWorkflows (PRD: travel conflict detector, event asset sweeper)\n * c. service-mixin-reminders.ts syncWebsiteAccessState (enforcement window sweep)\n *\n * 2. PROACTIVE_AGENT\n * - file: activity-profile/proactive-worker.ts (registerProactiveTaskWorker)\n * - exec: executeProactiveTask\n * - downstream:\n * a. planGm (PRD: daily brief builder — morning)\n * b. planGn (PRD: evening closeout)\n * c. planNudges (PRD: meeting reminder ladder)\n * d. planDowntimeNudges (PRD: pending-decision nudger / decision nudger)\n * e. planGoalCheckIns (PRD: relationship/goal overdue detector)\n * f. planSeedingOffer (onboarding seed)\n * g. classifyCalendarEventsForProactivePlanning (already LLM-routed)\n *\n * 3. FOLLOWUP_TRACKER_RECONCILE\n * - file: followup/followup-tracker.ts (registerFollowupTrackerWorker)\n * - exec: reconcileFollowupsOnce -> computeOverdueFollowups\n * - downstream: writeOverdueDigestMemory (PRD: follow-up watchdog, relationship-overdue-detector)\n *\n * 4. WEBSITE_BLOCKER_UNBLOCK_TASK_NAME\n * - file: website-blocker/service.ts (out of EA scope; kept for completeness)\n *\n * 5. BLOCK_RULE_RECONCILE_TASK_NAME\n * - file: website-blocker/chat-integration/block-rule-reconciler.ts\n *\n * Other background entry points / sweeps that flow through the workers above:\n *\n * - Activity profile rebuilds: activity-profile/service.ts (driven by PROACTIVE_AGENT)\n * - Reminder enforcement windows: lifeops/enforcement-windows.ts (driven by reminders mixin)\n *\n * Mapping to PRD §\"Background Jobs And Cron Handlers\" (lines 418-433):\n *\n * PRD job | Job key (this module)\n * -----------------------------------------+--------------------------------\n * Inbox ingest per connector | inbox_ingest (event-driven)\n * Daily brief builder | daily_brief (proactive_gm)\n * Evening closeout | evening_closeout (proactive_gn)\n * Follow-up watchdog | followup_watchdog (followup_tracker)\n * Decision nudger | decision_nudger (proactive downtime)\n * Meeting reminder ladder | meeting_reminder (proactive nudges + reminders)\n * Travel conflict detector | travel_conflict (workflows)\n * Event asset sweeper | event_asset_sweep (workflows)\n * Draft aging sweeper | draft_aging_sweep (reminders)\n * Remote stuck-agent escalator | remote_stuck_escalate (browser/computer-use)\n * Pending-decision nudger | pending_decision (proactive downtime)\n * Missed-commitment repair | missed_commitment (followup_tracker)\n * Unsent-draft resurfacer | unsent_draft (reminders)\n * Relationship-overdue detector | relationship_overdue (followup_tracker)\n * Deadline escalator | deadline_escalate (reminders)\n * Travel-ops rechecker | travel_ops (workflows)\n *\n * --------------------------------------------------------------------------\n */\n\nimport type { IAgentRuntime } from \"@elizaos/core\";\nimport {\n logger,\n ModelType,\n parseJsonModelRecord,\n runWithTrajectoryContext,\n} from \"@elizaos/core\";\nimport type {\n ApprovalAction,\n ApprovalChannel,\n ApprovalPayload,\n} from \"./approval-queue.types.js\";\nimport type { TravelBookingPayloadFields } from \"./travel-booking.types.js\";\n\n// ---------------------------------------------------------------------------\n// Job kinds — closed enum aligned to PRD §\"Background Jobs And Cron Handlers\"\n// ---------------------------------------------------------------------------\n\n/** Background-job kinds the planner knows about. Keep in sync with the\n * inventory comment above. Adding a new kind requires updating the\n * contract test (`background-job-parity.contract.test.ts`). */\nexport type BackgroundJobKind =\n | \"inbox_ingest\"\n | \"daily_brief\"\n | \"evening_closeout\"\n | \"followup_watchdog\"\n | \"decision_nudger\"\n | \"meeting_reminder\"\n | \"travel_conflict\"\n | \"event_asset_sweep\"\n | \"draft_aging_sweep\"\n | \"remote_stuck_escalate\"\n | \"pending_decision\"\n | \"missed_commitment\"\n | \"unsent_draft\"\n | \"relationship_overdue\"\n | \"deadline_escalate\"\n | \"travel_ops\";\n\n/**\n * Result of `planJob`. `action` is null when the planner decided no action is\n * warranted right now (e.g. the GM window already fired). Callers MUST\n * inspect `requiresApproval` and route through the WS6 approval queue when\n * true — they MUST NOT execute sensitive actions directly.\n */\nexport interface TypedJobPlan {\n /** Closed-enum action selected by the planner, or null for noop. */\n readonly action: ApprovalAction | null;\n /** Action-specific payload. Null when `action` is null. */\n readonly payload: ApprovalPayload | null;\n /** When true, the caller MUST enqueue this in the approval queue\n * (WS6) instead of executing directly. */\n readonly requiresApproval: boolean;\n /** Channel through which the action will be carried out. */\n readonly channel: ApprovalChannel;\n /** Human-readable justification from the planner. Always non-empty. */\n readonly reason: string;\n}\n\n/**\n * Context passed into the planner by a background job. Jobs assemble this\n * from their own runtime context (overdue digest, fired-actions log, etc.)\n * and let the LLM decide what to do.\n */\nexport interface BackgroundJobContext {\n readonly jobKind: BackgroundJobKind;\n readonly subjectUserId: string;\n /** Free-form structured snapshot of the job state (occurrences, calendar\n * events, overdue contacts, ...). The planner reads this verbatim. */\n readonly snapshot: Readonly<Record<string, unknown>>;\n /** Channels enabled for this owner. Limits the planner's choices. */\n readonly availableChannels: ReadonlyArray<ApprovalChannel>;\n /** Reason the job ran — cron tick, event-driven trigger, etc. */\n readonly trigger: string;\n}\n\nconst SENSITIVE_ACTIONS: ReadonlySet<ApprovalAction> = new Set<ApprovalAction>([\n \"send_message\",\n \"send_email\",\n \"schedule_event\",\n \"modify_event\",\n \"cancel_event\",\n \"book_travel\",\n \"make_call\",\n \"execute_workflow\",\n \"spend_money\",\n]);\n\nconst ALL_ACTIONS: ReadonlyArray<ApprovalAction | \"noop\"> = [\n \"send_message\",\n \"send_email\",\n \"schedule_event\",\n \"modify_event\",\n \"cancel_event\",\n \"book_travel\",\n \"make_call\",\n \"execute_workflow\",\n \"spend_money\",\n \"noop\",\n];\n\nconst ALL_CHANNELS: ReadonlyArray<ApprovalChannel> = [\n \"telegram\",\n \"discord\",\n \"slack\",\n \"imessage\",\n \"sms\",\n \"x_dm\",\n \"email\",\n \"google_calendar\",\n \"browser\",\n \"phone\",\n \"internal\",\n];\n\n/**\n * Error raised when the planner is unavailable or returned unparsable\n * output. We surface this loudly — the caller MUST decide whether to skip\n * this tick or escalate. We never silently fall back to a default action.\n */\nexport class BackgroundPlannerError extends Error {\n public readonly jobKind: BackgroundJobKind;\n public readonly cause?: unknown;\n\n constructor(jobKind: BackgroundJobKind, message: string, cause?: unknown) {\n super(`[BackgroundPlanner:${jobKind}] ${message}`);\n this.name = \"BackgroundPlannerError\";\n this.jobKind = jobKind;\n this.cause = cause;\n }\n}\n\nfunction isApprovalAction(value: unknown): value is ApprovalAction {\n return (\n typeof value === \"string\" && SENSITIVE_ACTIONS.has(value as ApprovalAction)\n );\n}\n\nfunction isApprovalChannel(value: unknown): value is ApprovalChannel {\n return (\n typeof value === \"string\" &&\n (ALL_CHANNELS as ReadonlyArray<string>).includes(value)\n );\n}\n\nfunction formatPromptValue(value: unknown, depth = 0): string {\n const indent = \" \".repeat(depth);\n const childIndent = \" \".repeat(depth + 1);\n if (value === null) return \"null\";\n if (value === undefined) return \"\";\n if (\n typeof value === \"string\" ||\n typeof value === \"number\" ||\n typeof value === \"boolean\"\n ) {\n return String(value);\n }\n if (Array.isArray(value)) {\n if (value.length === 0) return \"(none)\";\n return value\n .map((entry) => `${childIndent}- ${formatPromptValue(entry, depth + 1)}`)\n .join(\"\\n\");\n }\n if (typeof value === \"object\") {\n const entries = Object.entries(value as Record<string, unknown>);\n if (entries.length === 0) return \"(empty)\";\n return entries\n .map(([key, entry]) => {\n const formatted = formatPromptValue(entry, depth + 1);\n return formatted.includes(\"\\n\")\n ? `${indent}${key}:\\n${formatted}`\n : `${indent}${key}: ${formatted}`;\n })\n .join(\"\\n\");\n }\n return String(value);\n}\n\nfunction buildPrompt(jobContext: BackgroundJobContext): string {\n return [\n `Plan the BACKGROUND JOB action for job kind: ${jobContext.jobKind}.`,\n \"You are routing a background tick for an executive assistant.\",\n \"Decide whether the assistant should take an action right now, and if so\",\n \"which action and through which channel. The assistant MUST NOT execute\",\n \"sensitive actions directly — anything that contacts a person, modifies a\",\n \"calendar, books travel, makes a call, runs a workflow, or spends money\",\n \"returns requiresApproval=true so the user can confirm.\",\n \"\",\n \"Return ONLY a JSON object with exactly these top-level fields:\",\n `action: one of ${ALL_ACTIONS.join(\", \")}`,\n `channel: one of ${ALL_CHANNELS.join(\", \")}`,\n \"requiresApproval: boolean\",\n \"reason: short justification\",\n \"payload: action-specific object, or null when action=noop\",\n \"\",\n 'Example noop: {\"action\":\"noop\",\"channel\":\"internal\",\"requiresApproval\":false,\"reason\":\"Nothing is overdue on this tick.\",\"payload\":null}',\n \"\",\n 'Example email: {\"action\":\"send_email\",\"channel\":\"email\",\"requiresApproval\":true,\"reason\":\"The contact is overdue and email is the enabled channel.\",\"payload\":{\"to\":[\"person@example.com\"],\"subject\":\"Follow-up\",\"body\":\"Short draft for user approval.\"}}',\n \"\",\n \"Rules:\",\n \"- Choose action=noop when no action is warranted this tick (e.g. nothing overdue).\",\n \"- requiresApproval=true for any action that touches a person or external system.\",\n \"- requiresApproval=false ONLY when action=noop or the action is purely internal (logging, internal workflow with no side effects).\",\n \"- The reason must explain WHY this tick warrants the chosen action, in any language.\",\n \"\",\n `Job trigger: ${jobContext.trigger}`,\n `Subject user: ${jobContext.subjectUserId}`,\n \"Available channels:\",\n formatPromptValue(jobContext.availableChannels),\n \"Snapshot:\",\n formatPromptValue(jobContext.snapshot),\n ].join(\"\\n\");\n}\n\nfunction emptyPayloadFor(_action: ApprovalAction): ApprovalPayload | null {\n // Sensitive payloads are required to be fully formed — we do not invent\n // recipients or amounts. If the planner returned a sensitive action with\n // no usable payload, the caller will see payload=null and skip the tick.\n return null;\n}\n\nfunction stringOrNull(\n record: Record<string, unknown>,\n key: string,\n): string | null {\n const value = record[key];\n return typeof value === \"string\" && value.trim().length > 0 ? value : null;\n}\n\nfunction coerceTravelSearch(\n value: unknown,\n): TravelBookingPayloadFields[\"search\"] {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return null;\n const record = value as Record<string, unknown>;\n const origin = stringOrNull(record, \"origin\");\n const destination = stringOrNull(record, \"destination\");\n const departureDate = stringOrNull(record, \"departureDate\");\n if (!origin || !destination || !departureDate) return null;\n const passengers =\n typeof record.passengers === \"number\" && Number.isFinite(record.passengers)\n ? Math.max(1, Math.floor(record.passengers))\n : undefined;\n return {\n origin,\n destination,\n departureDate,\n returnDate: stringOrNull(record, \"returnDate\") ?? undefined,\n passengers,\n };\n}\n\nfunction coerceTravelPassengers(\n value: unknown,\n): TravelBookingPayloadFields[\"passengers\"] {\n if (!Array.isArray(value)) return [];\n return value.flatMap((entry) => {\n if (!entry || typeof entry !== \"object\" || Array.isArray(entry)) return [];\n const record = entry as Record<string, unknown>;\n const givenName = stringOrNull(record, \"givenName\");\n const familyName = stringOrNull(record, \"familyName\");\n const bornOn = stringOrNull(record, \"bornOn\");\n if (!givenName || !familyName || !bornOn) return [];\n return [\n {\n offerPassengerId: stringOrNull(record, \"offerPassengerId\"),\n givenName,\n familyName,\n bornOn,\n email: stringOrNull(record, \"email\"),\n phoneNumber: stringOrNull(record, \"phoneNumber\"),\n title: stringOrNull(record, \"title\"),\n gender: stringOrNull(record, \"gender\"),\n },\n ];\n });\n}\n\nfunction coerceTravelCalendarSync(\n value: unknown,\n): TravelBookingPayloadFields[\"calendarSync\"] {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return null;\n const record = value as Record<string, unknown>;\n return {\n enabled: record.enabled === true,\n calendarId: stringOrNull(record, \"calendarId\"),\n title: stringOrNull(record, \"title\"),\n description: stringOrNull(record, \"description\"),\n location: stringOrNull(record, \"location\"),\n timeZone: stringOrNull(record, \"timeZone\"),\n };\n}\n\nfunction coercePayload(\n action: ApprovalAction,\n rawPayload: unknown,\n): ApprovalPayload | null {\n if (\n !rawPayload ||\n typeof rawPayload !== \"object\" ||\n Array.isArray(rawPayload)\n ) {\n return emptyPayloadFor(action);\n }\n const record = rawPayload as Record<string, unknown>;\n\n switch (action) {\n case \"send_message\": {\n const recipient =\n typeof record.recipient === \"string\" ? record.recipient : null;\n const body = typeof record.body === \"string\" ? record.body : null;\n if (!recipient || !body) return null;\n return {\n action,\n recipient,\n body,\n replyToMessageId:\n typeof record.replyToMessageId === \"string\"\n ? record.replyToMessageId\n : null,\n };\n }\n case \"send_email\": {\n const subject =\n typeof record.subject === \"string\" ? record.subject : null;\n const body = typeof record.body === \"string\" ? record.body : null;\n const to = Array.isArray(record.to)\n ? record.to.filter((v): v is string => typeof v === \"string\")\n : [];\n if (!subject || !body || to.length === 0) return null;\n return {\n action,\n to,\n cc: Array.isArray(record.cc)\n ? record.cc.filter((v): v is string => typeof v === \"string\")\n : [],\n bcc: Array.isArray(record.bcc)\n ? record.bcc.filter((v): v is string => typeof v === \"string\")\n : [],\n subject,\n body,\n threadId: typeof record.threadId === \"string\" ? record.threadId : null,\n };\n }\n case \"execute_workflow\": {\n const workflowId =\n typeof record.workflowId === \"string\" ? record.workflowId : null;\n if (!workflowId) return null;\n const inputRaw = record.input;\n const input: Record<string, string | number | boolean> = {};\n if (\n inputRaw &&\n typeof inputRaw === \"object\" &&\n !Array.isArray(inputRaw)\n ) {\n for (const [k, v] of Object.entries(\n inputRaw as Record<string, unknown>,\n )) {\n if (\n typeof v === \"string\" ||\n typeof v === \"number\" ||\n typeof v === \"boolean\"\n ) {\n input[k] = v;\n }\n }\n }\n return { action, workflowId, input };\n }\n case \"book_travel\": {\n const provider =\n typeof record.provider === \"string\" ? record.provider : null;\n const itineraryRef =\n typeof record.itineraryRef === \"string\" ? record.itineraryRef : null;\n const totalCents =\n typeof record.totalCents === \"number\" &&\n Number.isFinite(record.totalCents)\n ? Math.round(record.totalCents)\n : null;\n const currency =\n typeof record.currency === \"string\" ? record.currency : null;\n const kind =\n record.kind === \"flight\" ||\n record.kind === \"hotel\" ||\n record.kind === \"ground\"\n ? record.kind\n : null;\n const search = coerceTravelSearch(record.search);\n const passengers = coerceTravelPassengers(record.passengers);\n const calendarSync = coerceTravelCalendarSync(record.calendarSync);\n if (\n !provider ||\n !itineraryRef ||\n totalCents === null ||\n !currency ||\n !kind\n ) {\n return null;\n }\n return {\n action,\n kind,\n provider,\n itineraryRef,\n totalCents,\n currency,\n offerId: typeof record.offerId === \"string\" ? record.offerId : null,\n offerRequestId:\n typeof record.offerRequestId === \"string\"\n ? record.offerRequestId\n : null,\n orderType:\n record.orderType === \"hold\" || record.orderType === \"instant\"\n ? record.orderType\n : null,\n search,\n passengers,\n calendarSync,\n summary: typeof record.summary === \"string\" ? record.summary : null,\n };\n }\n default:\n // For schedule/modify/cancel/book/call/spend the upstream caller has\n // no structured payload extraction. We surface null so the\n // caller can either request approval with a synthesized message or\n // skip this tick. We never fabricate recipients or amounts.\n return null;\n }\n}\n\nfunction parsePlannerOutput(raw: string): Record<string, unknown> | null {\n return parseJsonModelRecord<Record<string, unknown>>(raw);\n}\n\nfunction coerceBoolean(value: unknown): boolean | null {\n if (typeof value === \"boolean\") return value;\n if (typeof value === \"string\") {\n const normalized = value.trim().toLowerCase();\n if ([\"true\", \"yes\", \"1\"].includes(normalized)) return true;\n if ([\"false\", \"no\", \"0\"].includes(normalized)) return false;\n }\n return null;\n}\n\n/**\n * Plan a background-job action via the same LLM pipeline used by chat\n * actions. Returns a typed plan; throws `BackgroundPlannerError` on hard\n * planner failure (model unavailable, unparsable output). Callers MUST\n * route sensitive actions through the WS6 approval queue.\n */\nexport async function planJob(\n runtime: IAgentRuntime,\n jobContext: BackgroundJobContext,\n): Promise<TypedJobPlan> {\n if (typeof runtime.useModel !== \"function\") {\n throw new BackgroundPlannerError(\n jobContext.jobKind,\n \"runtime.useModel is unavailable; background job cannot run\",\n );\n }\n\n const prompt = buildPrompt(jobContext);\n let result: unknown;\n try {\n result = await runWithTrajectoryContext(\n { purpose: \"lifeops-background-planner\" },\n () => runtime.useModel(ModelType.TEXT_SMALL, { prompt }),\n );\n } catch (error) {\n throw new BackgroundPlannerError(\n jobContext.jobKind,\n `model call failed: ${error instanceof Error ? error.message : String(error)}`,\n error,\n );\n }\n const raw = typeof result === \"string\" ? result : \"\";\n const parsed = parsePlannerOutput(raw);\n\n if (!parsed) {\n throw new BackgroundPlannerError(\n jobContext.jobKind,\n `planner returned unparsable output: ${raw.slice(0, 200)}`,\n );\n }\n\n const rawAction = parsed.action;\n const rawChannel = parsed.channel;\n const reason =\n typeof parsed.reason === \"string\" && parsed.reason.trim().length > 0\n ? parsed.reason.trim()\n : null;\n\n if (!reason) {\n throw new BackgroundPlannerError(\n jobContext.jobKind,\n \"planner output missing required `reason` field\",\n );\n }\n\n const channel: ApprovalChannel = isApprovalChannel(rawChannel)\n ? rawChannel\n : \"internal\";\n\n if (rawAction === \"noop\" || rawAction === null || rawAction === undefined) {\n logger.debug(`[BackgroundPlanner:${jobContext.jobKind}] noop — ${reason}`);\n return {\n action: null,\n payload: null,\n requiresApproval: false,\n channel,\n reason,\n };\n }\n\n if (!isApprovalAction(rawAction)) {\n throw new BackgroundPlannerError(\n jobContext.jobKind,\n `planner returned unknown action: ${String(rawAction)}`,\n );\n }\n\n const payload = coercePayload(rawAction, parsed.payload);\n const parsedRequiresApproval = coerceBoolean(parsed.requiresApproval);\n const requiresApproval =\n parsedRequiresApproval === false ? false : SENSITIVE_ACTIONS.has(rawAction);\n\n logger.info(\n `[BackgroundPlanner:${jobContext.jobKind}] action=${rawAction} channel=${channel} requiresApproval=${requiresApproval} — ${reason}`,\n );\n\n return {\n action: rawAction,\n payload,\n requiresApproval,\n channel,\n reason,\n };\n}\n\n/** Test-only helper: list all PRD job kinds the planner knows about. */\nexport const KNOWN_JOB_KINDS: ReadonlyArray<BackgroundJobKind> = [\n \"inbox_ingest\",\n \"daily_brief\",\n \"evening_closeout\",\n \"followup_watchdog\",\n \"decision_nudger\",\n \"meeting_reminder\",\n \"travel_conflict\",\n \"event_asset_sweep\",\n \"draft_aging_sweep\",\n \"remote_stuck_escalate\",\n \"pending_decision\",\n \"missed_commitment\",\n \"unsent_draft\",\n \"relationship_overdue\",\n \"deadline_escalate\",\n \"travel_ops\",\n];\n"],"mappings":"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","names":[]}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Pull a structured bill ({ merchant, amount, currency, dueDate, confidence })
3
+ * out of an email previously classified as "bill".
4
+ *
5
+ * 1. Regex pass first — covers the typical "Your $X is due on Y" /
6
+ * "USD 123.45" / sender-display-name patterns most receipts use.
7
+ * 2. LLM fallback when the regex pass lacks an amount or merchant. Uses the
8
+ * same configurable model setting and cache as the email-classifier.
9
+ *
10
+ * Returns null when the merged confidence is below 0.5 — Money should not
11
+ * accumulate junk rows pretending to be bills.
12
+ */
13
+ import type { IAgentRuntime } from "@elizaos/core";
14
+ import type { EmailLikeMessage } from "./email-classifier.js";
15
+ export interface BillExtraction {
16
+ merchant: string;
17
+ amount: number;
18
+ currency: string;
19
+ dueDate: string | null;
20
+ confidence: number;
21
+ signals: string[];
22
+ }
23
+ export interface ExtractBillOptions {
24
+ modelOverride?: string | null;
25
+ }
26
+ /** Extract the first plausible amount + currency in the text. */
27
+ export declare function extractAmountFromText(text: string): {
28
+ amount: number;
29
+ currency: string;
30
+ } | null;
31
+ /**
32
+ * Extract the first plausible due date from text. Returns ISO YYYY-MM-DD.
33
+ * Recognized shapes:
34
+ * - "due (on)? 4/15/2026" / "due 04/15"
35
+ * - "due (by|on)? Apr 15" / "by April 15, 2026"
36
+ * - "payment due Apr 15"
37
+ */
38
+ export declare function extractDueDateFromText(text: string, now?: Date): string | null;
39
+ /** Heuristic merchant: prefer the "From" display name; strip quotes/email. */
40
+ export declare function extractMerchantFromMessage(message: EmailLikeMessage): string | null;
41
+ /** Pure-regex extraction. Returns null when amount can't be found. */
42
+ export declare function extractBillByRules(message: EmailLikeMessage, now?: Date): BillExtraction | null;
43
+ export declare function extractBill(runtime: IAgentRuntime, message: EmailLikeMessage, opts?: ExtractBillOptions): Promise<BillExtraction | null>;
44
+ /** Test hook: clear in-memory cache. */
45
+ export declare function _resetBillExtractionCache(): void;
46
+ //# sourceMappingURL=bill-extraction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bill-extraction.d.ts","sourceRoot":"","sources":["../../src/lifeops/bill-extraction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAQnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAsGD,iEAAiE;AACjE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,IAAI,CAoCP;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,GAAG,GAAE,IAAiB,GACrB,MAAM,GAAG,IAAI,CAwBf;AAED,8EAA8E;AAC9E,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,gBAAgB,GACxB,MAAM,GAAG,IAAI,CAmBf;AAED,sEAAsE;AACtE,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,gBAAgB,EACzB,GAAG,GAAE,IAAiB,GACrB,cAAc,GAAG,IAAI,CAqBvB;AA8HD,wBAAsB,WAAW,CAC/B,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,gBAAgB,EACzB,IAAI,GAAE,kBAAuB,GAC5B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAyDhC;AAED,wCAAwC;AACxC,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD"}