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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1317) hide show
  1. package/dist/actions/app-block.d.ts +15 -0
  2. package/dist/actions/app-block.d.ts.map +1 -0
  3. package/dist/actions/app-block.js +349 -0
  4. package/dist/actions/app-block.js.map +1 -0
  5. package/dist/actions/autofill.d.ts +20 -0
  6. package/dist/actions/autofill.d.ts.map +1 -0
  7. package/dist/actions/autofill.js +370 -0
  8. package/dist/actions/autofill.js.map +1 -0
  9. package/dist/actions/block.d.ts +30 -0
  10. package/dist/actions/block.d.ts.map +1 -0
  11. package/dist/actions/block.js +326 -0
  12. package/dist/actions/block.js.map +1 -0
  13. package/dist/actions/book-travel.d.ts +10 -0
  14. package/dist/actions/book-travel.d.ts.map +1 -0
  15. package/dist/actions/book-travel.js +467 -0
  16. package/dist/actions/book-travel.js.map +1 -0
  17. package/dist/actions/brief.d.ts +60 -0
  18. package/dist/actions/brief.d.ts.map +1 -0
  19. package/dist/actions/brief.js +485 -0
  20. package/dist/actions/brief.js.map +1 -0
  21. package/dist/actions/calendar.d.ts +22 -0
  22. package/dist/actions/calendar.d.ts.map +1 -0
  23. package/dist/actions/calendar.js +832 -0
  24. package/dist/actions/calendar.js.map +1 -0
  25. package/dist/actions/conflict-detect.d.ts +67 -0
  26. package/dist/actions/conflict-detect.d.ts.map +1 -0
  27. package/dist/actions/conflict-detect.js +310 -0
  28. package/dist/actions/conflict-detect.js.map +1 -0
  29. package/dist/actions/connector.d.ts +5 -0
  30. package/dist/actions/connector.d.ts.map +1 -0
  31. package/dist/actions/connector.js +1354 -0
  32. package/dist/actions/connector.js.map +1 -0
  33. package/dist/actions/credentials.d.ts +14 -0
  34. package/dist/actions/credentials.d.ts.map +1 -0
  35. package/dist/actions/credentials.js +191 -0
  36. package/dist/actions/credentials.js.map +1 -0
  37. package/dist/actions/document.d.ts +36 -0
  38. package/dist/actions/document.d.ts.map +1 -0
  39. package/dist/actions/document.js +613 -0
  40. package/dist/actions/document.js.map +1 -0
  41. package/dist/actions/entity.d.ts +20 -0
  42. package/dist/actions/entity.d.ts.map +1 -0
  43. package/dist/actions/entity.js +785 -0
  44. package/dist/actions/entity.js.map +1 -0
  45. package/dist/actions/health.d.ts +4 -0
  46. package/dist/actions/health.d.ts.map +1 -0
  47. package/dist/actions/health.js +37 -0
  48. package/dist/actions/health.js.map +1 -0
  49. package/dist/actions/inbox.d.ts +12 -0
  50. package/dist/actions/inbox.d.ts.map +1 -0
  51. package/dist/actions/inbox.js +13 -0
  52. package/dist/actions/inbox.js.map +1 -0
  53. package/dist/actions/lib/calendly-handler.d.ts +3 -0
  54. package/dist/actions/lib/calendly-handler.d.ts.map +1 -0
  55. package/dist/actions/lib/calendly-handler.js +506 -0
  56. package/dist/actions/lib/calendly-handler.js.map +1 -0
  57. package/dist/actions/lib/extract-goal-plan.d.ts +69 -0
  58. package/dist/actions/lib/extract-goal-plan.d.ts.map +1 -0
  59. package/dist/actions/lib/extract-goal-plan.js +488 -0
  60. package/dist/actions/lib/extract-goal-plan.js.map +1 -0
  61. package/dist/actions/lib/extract-life-operation.d.ts +18 -0
  62. package/dist/actions/lib/extract-life-operation.d.ts.map +1 -0
  63. package/dist/actions/lib/extract-life-operation.js +318 -0
  64. package/dist/actions/lib/extract-life-operation.js.map +1 -0
  65. package/dist/actions/lib/extract-task-plan.d.ts +78 -0
  66. package/dist/actions/lib/extract-task-plan.d.ts.map +1 -0
  67. package/dist/actions/lib/extract-task-plan.js +355 -0
  68. package/dist/actions/lib/extract-task-plan.js.map +1 -0
  69. package/dist/actions/lib/extract-update-fields.d.ts +27 -0
  70. package/dist/actions/lib/extract-update-fields.d.ts.map +1 -0
  71. package/dist/actions/lib/extract-update-fields.js +172 -0
  72. package/dist/actions/lib/extract-update-fields.js.map +1 -0
  73. package/dist/actions/lib/lifeops-deferred-draft.d.ts +68 -0
  74. package/dist/actions/lib/lifeops-deferred-draft.d.ts.map +1 -0
  75. package/dist/actions/lib/lifeops-deferred-draft.js +315 -0
  76. package/dist/actions/lib/lifeops-deferred-draft.js.map +1 -0
  77. package/dist/actions/lib/messaging-helpers.d.ts +20 -0
  78. package/dist/actions/lib/messaging-helpers.d.ts.map +1 -0
  79. package/dist/actions/lib/messaging-helpers.js +103 -0
  80. package/dist/actions/lib/messaging-helpers.js.map +1 -0
  81. package/dist/actions/lib/owner-policy-writes.d.ts +49 -0
  82. package/dist/actions/lib/owner-policy-writes.d.ts.map +1 -0
  83. package/dist/actions/lib/owner-policy-writes.js +157 -0
  84. package/dist/actions/lib/owner-policy-writes.js.map +1 -0
  85. package/dist/actions/lib/prompt-format.d.ts +3 -0
  86. package/dist/actions/lib/prompt-format.d.ts.map +1 -0
  87. package/dist/actions/lib/prompt-format.js +42 -0
  88. package/dist/actions/lib/prompt-format.js.map +1 -0
  89. package/dist/actions/lib/scheduling-handler.d.ts +93 -0
  90. package/dist/actions/lib/scheduling-handler.d.ts.map +1 -0
  91. package/dist/actions/lib/scheduling-handler.js +868 -0
  92. package/dist/actions/lib/scheduling-handler.js.map +1 -0
  93. package/dist/actions/life.d.ts +13 -0
  94. package/dist/actions/life.d.ts.map +1 -0
  95. package/dist/actions/life.js +2524 -0
  96. package/dist/actions/life.js.map +1 -0
  97. package/dist/actions/money.d.ts +24 -0
  98. package/dist/actions/money.d.ts.map +1 -0
  99. package/dist/actions/money.js +41 -0
  100. package/dist/actions/money.js.map +1 -0
  101. package/dist/actions/owner-surfaces.d.ts +11 -0
  102. package/dist/actions/owner-surfaces.d.ts.map +1 -0
  103. package/dist/actions/owner-surfaces.js +493 -0
  104. package/dist/actions/owner-surfaces.js.map +1 -0
  105. package/dist/actions/password-manager.d.ts +10 -0
  106. package/dist/actions/password-manager.d.ts.map +1 -0
  107. package/dist/actions/password-manager.js +195 -0
  108. package/dist/actions/password-manager.js.map +1 -0
  109. package/dist/actions/payments.d.ts +10 -0
  110. package/dist/actions/payments.d.ts.map +1 -0
  111. package/dist/actions/payments.js +5 -0
  112. package/dist/actions/payments.js.map +1 -0
  113. package/dist/actions/prioritize.d.ts +49 -0
  114. package/dist/actions/prioritize.d.ts.map +1 -0
  115. package/dist/actions/prioritize.js +313 -0
  116. package/dist/actions/prioritize.js.map +1 -0
  117. package/dist/actions/remote-desktop.d.ts +13 -0
  118. package/dist/actions/remote-desktop.d.ts.map +1 -0
  119. package/dist/actions/remote-desktop.js +11 -0
  120. package/dist/actions/remote-desktop.js.map +1 -0
  121. package/dist/actions/resolve-request.d.ts +12 -0
  122. package/dist/actions/resolve-request.d.ts.map +1 -0
  123. package/dist/actions/resolve-request.js +427 -0
  124. package/dist/actions/resolve-request.js.map +1 -0
  125. package/dist/actions/schedule.d.ts +10 -0
  126. package/dist/actions/schedule.d.ts.map +1 -0
  127. package/dist/actions/schedule.js +113 -0
  128. package/dist/actions/schedule.js.map +1 -0
  129. package/dist/actions/scheduled-task.d.ts +32 -0
  130. package/dist/actions/scheduled-task.d.ts.map +1 -0
  131. package/dist/actions/scheduled-task.js +661 -0
  132. package/dist/actions/scheduled-task.js.map +1 -0
  133. package/dist/actions/screen-time.d.ts +4 -0
  134. package/dist/actions/screen-time.d.ts.map +1 -0
  135. package/dist/actions/screen-time.js +47 -0
  136. package/dist/actions/screen-time.js.map +1 -0
  137. package/dist/actions/subscriptions.d.ts +8 -0
  138. package/dist/actions/subscriptions.d.ts.map +1 -0
  139. package/dist/actions/subscriptions.js +327 -0
  140. package/dist/actions/subscriptions.js.map +1 -0
  141. package/dist/actions/voice-call.d.ts +16 -0
  142. package/dist/actions/voice-call.d.ts.map +1 -0
  143. package/dist/actions/voice-call.js +756 -0
  144. package/dist/actions/voice-call.js.map +1 -0
  145. package/dist/actions/website-block.d.ts +15 -0
  146. package/dist/actions/website-block.d.ts.map +1 -0
  147. package/dist/actions/website-block.js +719 -0
  148. package/dist/actions/website-block.js.map +1 -0
  149. package/dist/actions/work-thread.d.ts +5 -0
  150. package/dist/actions/work-thread.d.ts.map +1 -0
  151. package/dist/actions/work-thread.js +556 -0
  152. package/dist/actions/work-thread.js.map +1 -0
  153. package/dist/activity-profile/activity-tracker-repo.d.ts +28 -0
  154. package/dist/activity-profile/activity-tracker-repo.d.ts.map +1 -0
  155. package/dist/activity-profile/activity-tracker-repo.js +61 -0
  156. package/dist/activity-profile/activity-tracker-repo.js.map +1 -0
  157. package/dist/activity-profile/activity-tracker-reporting.d.ts +52 -0
  158. package/dist/activity-profile/activity-tracker-reporting.d.ts.map +1 -0
  159. package/dist/activity-profile/activity-tracker-reporting.js +119 -0
  160. package/dist/activity-profile/activity-tracker-reporting.js.map +1 -0
  161. package/dist/activity-profile/activity-tracker-service.d.ts +36 -0
  162. package/dist/activity-profile/activity-tracker-service.d.ts.map +1 -0
  163. package/dist/activity-profile/activity-tracker-service.js +187 -0
  164. package/dist/activity-profile/activity-tracker-service.js.map +1 -0
  165. package/dist/activity-profile/analyzer.d.ts +23 -0
  166. package/dist/activity-profile/analyzer.d.ts.map +1 -0
  167. package/dist/activity-profile/analyzer.js +485 -0
  168. package/dist/activity-profile/analyzer.js.map +1 -0
  169. package/dist/activity-profile/presence-signal-bridge-service.d.ts +14 -0
  170. package/dist/activity-profile/presence-signal-bridge-service.d.ts.map +1 -0
  171. package/dist/activity-profile/presence-signal-bridge-service.js +159 -0
  172. package/dist/activity-profile/presence-signal-bridge-service.js.map +1 -0
  173. package/dist/activity-profile/proactive-inbox-digest.d.ts +3 -0
  174. package/dist/activity-profile/proactive-inbox-digest.d.ts.map +1 -0
  175. package/dist/activity-profile/proactive-inbox-digest.js +21 -0
  176. package/dist/activity-profile/proactive-inbox-digest.js.map +1 -0
  177. package/dist/activity-profile/proactive-planner.d.ts +150 -0
  178. package/dist/activity-profile/proactive-planner.d.ts.map +1 -0
  179. package/dist/activity-profile/proactive-planner.js +529 -0
  180. package/dist/activity-profile/proactive-planner.js.map +1 -0
  181. package/dist/activity-profile/proactive-worker.d.ts +33 -0
  182. package/dist/activity-profile/proactive-worker.d.ts.map +1 -0
  183. package/dist/activity-profile/proactive-worker.js +779 -0
  184. package/dist/activity-profile/proactive-worker.js.map +1 -0
  185. package/dist/activity-profile/profile-metadata.d.ts +10 -0
  186. package/dist/activity-profile/profile-metadata.d.ts.map +1 -0
  187. package/dist/activity-profile/profile-metadata.js +16 -0
  188. package/dist/activity-profile/profile-metadata.js.map +1 -0
  189. package/dist/activity-profile/redactor.d.ts +15 -0
  190. package/dist/activity-profile/redactor.d.ts.map +1 -0
  191. package/dist/activity-profile/redactor.js +22 -0
  192. package/dist/activity-profile/redactor.js.map +1 -0
  193. package/dist/activity-profile/service.d.ts +11 -0
  194. package/dist/activity-profile/service.d.ts.map +1 -0
  195. package/dist/activity-profile/service.js +272 -0
  196. package/dist/activity-profile/service.js.map +1 -0
  197. package/dist/activity-profile/types.d.ts +97 -0
  198. package/dist/activity-profile/types.d.ts.map +1 -0
  199. package/dist/activity-profile/types.js +36 -0
  200. package/dist/activity-profile/types.js.map +1 -0
  201. package/dist/agent-lifeops.d.ts +2 -0
  202. package/dist/agent-lifeops.d.ts.map +1 -0
  203. package/dist/agent-lifeops.js +2 -0
  204. package/dist/agent-lifeops.js.map +1 -0
  205. package/dist/api/client-lifeops.d.ts +319 -0
  206. package/dist/api/client-lifeops.d.ts.map +1 -0
  207. package/dist/api/client-lifeops.js +794 -0
  208. package/dist/api/client-lifeops.js.map +1 -0
  209. package/dist/automation-node-contributor.d.ts +2 -0
  210. package/dist/automation-node-contributor.d.ts.map +1 -0
  211. package/dist/automation-node-contributor.js +184 -0
  212. package/dist/automation-node-contributor.js.map +1 -0
  213. package/dist/client.d.ts +16 -0
  214. package/dist/client.d.ts.map +1 -0
  215. package/dist/client.js +18 -0
  216. package/dist/client.js.map +1 -0
  217. package/dist/components/AppBlockerSettingsCard.d.ts +3 -0
  218. package/dist/components/AppBlockerSettingsCard.d.ts.map +1 -0
  219. package/dist/components/AppBlockerSettingsCard.js +538 -0
  220. package/dist/components/AppBlockerSettingsCard.js.map +1 -0
  221. package/dist/components/WebsiteBlockerSettingsCard.d.ts +3 -0
  222. package/dist/components/WebsiteBlockerSettingsCard.d.ts.map +1 -0
  223. package/dist/components/WebsiteBlockerSettingsCard.js +148 -0
  224. package/dist/components/WebsiteBlockerSettingsCard.js.map +1 -0
  225. package/dist/contracts/index.d.ts +2 -0
  226. package/dist/contracts/index.d.ts.map +1 -0
  227. package/dist/contracts/index.js +2 -0
  228. package/dist/contracts/index.js.map +1 -0
  229. package/dist/contracts/lifeops.d.ts +2 -0
  230. package/dist/contracts/lifeops.d.ts.map +1 -0
  231. package/dist/contracts/lifeops.js +2 -0
  232. package/dist/contracts/lifeops.js.map +1 -0
  233. package/dist/default-packs/autofill-whitelist-pack.d.ts +17 -0
  234. package/dist/default-packs/autofill-whitelist-pack.d.ts.map +1 -0
  235. package/dist/default-packs/autofill-whitelist-pack.js +56 -0
  236. package/dist/default-packs/autofill-whitelist-pack.js.map +1 -0
  237. package/dist/default-packs/consolidation-policies.d.ts +14 -0
  238. package/dist/default-packs/consolidation-policies.d.ts.map +1 -0
  239. package/dist/default-packs/consolidation-policies.js +17 -0
  240. package/dist/default-packs/consolidation-policies.js.map +1 -0
  241. package/dist/default-packs/contract-types.d.ts +200 -0
  242. package/dist/default-packs/contract-types.d.ts.map +1 -0
  243. package/dist/default-packs/contract-types.js +1 -0
  244. package/dist/default-packs/contract-types.js.map +1 -0
  245. package/dist/default-packs/daily-rhythm.d.ts +28 -0
  246. package/dist/default-packs/daily-rhythm.d.ts.map +1 -0
  247. package/dist/default-packs/daily-rhythm.js +136 -0
  248. package/dist/default-packs/daily-rhythm.js.map +1 -0
  249. package/dist/default-packs/escalation-ladders.d.ts +18 -0
  250. package/dist/default-packs/escalation-ladders.d.ts.map +1 -0
  251. package/dist/default-packs/escalation-ladders.js +17 -0
  252. package/dist/default-packs/escalation-ladders.js.map +1 -0
  253. package/dist/default-packs/executive-assistant.d.ts +50 -0
  254. package/dist/default-packs/executive-assistant.d.ts.map +1 -0
  255. package/dist/default-packs/executive-assistant.js +745 -0
  256. package/dist/default-packs/executive-assistant.js.map +1 -0
  257. package/dist/default-packs/followup-starter.d.ts +49 -0
  258. package/dist/default-packs/followup-starter.d.ts.map +1 -0
  259. package/dist/default-packs/followup-starter.js +104 -0
  260. package/dist/default-packs/followup-starter.js.map +1 -0
  261. package/dist/default-packs/habit-starters.d.ts +37 -0
  262. package/dist/default-packs/habit-starters.d.ts.map +1 -0
  263. package/dist/default-packs/habit-starters.js +255 -0
  264. package/dist/default-packs/habit-starters.js.map +1 -0
  265. package/dist/default-packs/inbox-triage-starter.d.ts +23 -0
  266. package/dist/default-packs/inbox-triage-starter.d.ts.map +1 -0
  267. package/dist/default-packs/inbox-triage-starter.js +61 -0
  268. package/dist/default-packs/inbox-triage-starter.js.map +1 -0
  269. package/dist/default-packs/index.d.ts +54 -0
  270. package/dist/default-packs/index.d.ts.map +1 -0
  271. package/dist/default-packs/index.js +150 -0
  272. package/dist/default-packs/index.js.map +1 -0
  273. package/dist/default-packs/lint.d.ts +62 -0
  274. package/dist/default-packs/lint.d.ts.map +1 -0
  275. package/dist/default-packs/lint.js +161 -0
  276. package/dist/default-packs/lint.js.map +1 -0
  277. package/dist/default-packs/morning-brief.d.ts +44 -0
  278. package/dist/default-packs/morning-brief.d.ts.map +1 -0
  279. package/dist/default-packs/morning-brief.js +69 -0
  280. package/dist/default-packs/morning-brief.js.map +1 -0
  281. package/dist/default-packs/quiet-user-watcher.d.ts +49 -0
  282. package/dist/default-packs/quiet-user-watcher.d.ts.map +1 -0
  283. package/dist/default-packs/quiet-user-watcher.js +92 -0
  284. package/dist/default-packs/quiet-user-watcher.js.map +1 -0
  285. package/dist/default-packs/registry-types.d.ts +51 -0
  286. package/dist/default-packs/registry-types.d.ts.map +1 -0
  287. package/dist/default-packs/registry-types.js +1 -0
  288. package/dist/default-packs/registry-types.js.map +1 -0
  289. package/dist/default-packs/task-definitions.d.ts +88 -0
  290. package/dist/default-packs/task-definitions.d.ts.map +1 -0
  291. package/dist/default-packs/task-definitions.js +87 -0
  292. package/dist/default-packs/task-definitions.js.map +1 -0
  293. package/dist/events/index.d.ts +34 -0
  294. package/dist/events/index.d.ts.map +1 -0
  295. package/dist/events/index.js +30 -0
  296. package/dist/events/index.js.map +1 -0
  297. package/dist/followup/actions/listOverdueFollowups.d.ts +3 -0
  298. package/dist/followup/actions/listOverdueFollowups.d.ts.map +1 -0
  299. package/dist/followup/actions/listOverdueFollowups.js +90 -0
  300. package/dist/followup/actions/listOverdueFollowups.js.map +1 -0
  301. package/dist/followup/actions/markFollowupDone.d.ts +3 -0
  302. package/dist/followup/actions/markFollowupDone.d.ts.map +1 -0
  303. package/dist/followup/actions/markFollowupDone.js +171 -0
  304. package/dist/followup/actions/markFollowupDone.js.map +1 -0
  305. package/dist/followup/actions/setFollowupThreshold.d.ts +3 -0
  306. package/dist/followup/actions/setFollowupThreshold.d.ts.map +1 -0
  307. package/dist/followup/actions/setFollowupThreshold.js +171 -0
  308. package/dist/followup/actions/setFollowupThreshold.js.map +1 -0
  309. package/dist/followup/followup-tracker.d.ts +83 -0
  310. package/dist/followup/followup-tracker.d.ts.map +1 -0
  311. package/dist/followup/followup-tracker.js +311 -0
  312. package/dist/followup/followup-tracker.js.map +1 -0
  313. package/dist/followup/index.d.ts +5 -0
  314. package/dist/followup/index.d.ts.map +1 -0
  315. package/dist/followup/index.js +39 -0
  316. package/dist/followup/index.js.map +1 -0
  317. package/dist/hooks/connector-error.d.ts +2 -0
  318. package/dist/hooks/connector-error.d.ts.map +1 -0
  319. package/dist/hooks/connector-error.js +13 -0
  320. package/dist/hooks/connector-error.js.map +1 -0
  321. package/dist/hooks/useDiscordConnector.d.ts +11 -0
  322. package/dist/hooks/useDiscordConnector.d.ts.map +1 -0
  323. package/dist/hooks/useDiscordConnector.js +95 -0
  324. package/dist/hooks/useDiscordConnector.js.map +1 -0
  325. package/dist/hooks/useGoogleLifeOpsConnector.d.ts +23 -0
  326. package/dist/hooks/useGoogleLifeOpsConnector.d.ts.map +1 -0
  327. package/dist/hooks/useGoogleLifeOpsConnector.js +630 -0
  328. package/dist/hooks/useGoogleLifeOpsConnector.js.map +1 -0
  329. package/dist/hooks/useIMessageConnector.d.ts +10 -0
  330. package/dist/hooks/useIMessageConnector.d.ts.map +1 -0
  331. package/dist/hooks/useIMessageConnector.js +57 -0
  332. package/dist/hooks/useIMessageConnector.js.map +1 -0
  333. package/dist/hooks/useInbox.d.ts +36 -0
  334. package/dist/hooks/useInbox.d.ts.map +1 -0
  335. package/dist/hooks/useInbox.js +96 -0
  336. package/dist/hooks/useInbox.js.map +1 -0
  337. package/dist/hooks/useLifeOpsActivitySignals.d.ts +2 -0
  338. package/dist/hooks/useLifeOpsActivitySignals.d.ts.map +1 -0
  339. package/dist/hooks/useLifeOpsActivitySignals.js +358 -0
  340. package/dist/hooks/useLifeOpsActivitySignals.js.map +1 -0
  341. package/dist/hooks/useLifeOpsAppState.d.ts +9 -0
  342. package/dist/hooks/useLifeOpsAppState.d.ts.map +1 -0
  343. package/dist/hooks/useLifeOpsAppState.js +79 -0
  344. package/dist/hooks/useLifeOpsAppState.js.map +1 -0
  345. package/dist/hooks/useLifeOpsCapabilitiesStatus.d.ts +8 -0
  346. package/dist/hooks/useLifeOpsCapabilitiesStatus.d.ts.map +1 -0
  347. package/dist/hooks/useLifeOpsCapabilitiesStatus.js +60 -0
  348. package/dist/hooks/useLifeOpsCapabilitiesStatus.js.map +1 -0
  349. package/dist/hooks/useLifeOpsXConnector.d.ts +11 -0
  350. package/dist/hooks/useLifeOpsXConnector.d.ts.map +1 -0
  351. package/dist/hooks/useLifeOpsXConnector.js +92 -0
  352. package/dist/hooks/useLifeOpsXConnector.js.map +1 -0
  353. package/dist/hooks/useSignalConnector.d.ts +14 -0
  354. package/dist/hooks/useSignalConnector.d.ts.map +1 -0
  355. package/dist/hooks/useSignalConnector.js +89 -0
  356. package/dist/hooks/useSignalConnector.js.map +1 -0
  357. package/dist/hooks/useTelegramConnector.d.ts +14 -0
  358. package/dist/hooks/useTelegramConnector.d.ts.map +1 -0
  359. package/dist/hooks/useTelegramConnector.js +97 -0
  360. package/dist/hooks/useTelegramConnector.js.map +1 -0
  361. package/dist/hooks/useWhatsAppConnector.d.ts +8 -0
  362. package/dist/hooks/useWhatsAppConnector.d.ts.map +1 -0
  363. package/dist/hooks/useWhatsAppConnector.js +62 -0
  364. package/dist/hooks/useWhatsAppConnector.js.map +1 -0
  365. package/dist/inbox/message-fetcher.d.ts +11 -0
  366. package/dist/inbox/message-fetcher.d.ts.map +1 -0
  367. package/dist/inbox/message-fetcher.js +13 -0
  368. package/dist/inbox/message-fetcher.js.map +1 -0
  369. package/dist/inbox/repository.d.ts +11 -0
  370. package/dist/inbox/repository.d.ts.map +1 -0
  371. package/dist/inbox/repository.js +5 -0
  372. package/dist/inbox/repository.js.map +1 -0
  373. package/dist/inbox/types.d.ts +10 -0
  374. package/dist/inbox/types.d.ts.map +1 -0
  375. package/dist/inbox/types.js +2 -0
  376. package/dist/inbox/types.js.map +1 -0
  377. package/dist/index.d.ts +36 -0
  378. package/dist/index.d.ts.map +1 -0
  379. package/dist/index.js +188 -0
  380. package/dist/index.js.map +1 -0
  381. package/dist/lifeops/access.d.ts +29 -0
  382. package/dist/lifeops/access.d.ts.map +1 -0
  383. package/dist/lifeops/access.js +56 -0
  384. package/dist/lifeops/access.js.map +1 -0
  385. package/dist/lifeops/app-state.d.ts +22 -0
  386. package/dist/lifeops/app-state.d.ts.map +1 -0
  387. package/dist/lifeops/app-state.js +67 -0
  388. package/dist/lifeops/app-state.js.map +1 -0
  389. package/dist/lifeops/apple-reminders.d.ts +67 -0
  390. package/dist/lifeops/apple-reminders.d.ts.map +1 -0
  391. package/dist/lifeops/apple-reminders.js +396 -0
  392. package/dist/lifeops/apple-reminders.js.map +1 -0
  393. package/dist/lifeops/approval-queue.d.ts +38 -0
  394. package/dist/lifeops/approval-queue.d.ts.map +1 -0
  395. package/dist/lifeops/approval-queue.js +575 -0
  396. package/dist/lifeops/approval-queue.js.map +1 -0
  397. package/dist/lifeops/approval-queue.types.d.ts +172 -0
  398. package/dist/lifeops/approval-queue.types.d.ts.map +1 -0
  399. package/dist/lifeops/approval-queue.types.js +27 -0
  400. package/dist/lifeops/approval-queue.types.js.map +1 -0
  401. package/dist/lifeops/autofill-whitelist.d.ts +20 -0
  402. package/dist/lifeops/autofill-whitelist.d.ts.map +1 -0
  403. package/dist/lifeops/autofill-whitelist.js +59 -0
  404. package/dist/lifeops/autofill-whitelist.js.map +1 -0
  405. package/dist/lifeops/background-planner-dispatch.d.ts +60 -0
  406. package/dist/lifeops/background-planner-dispatch.d.ts.map +1 -0
  407. package/dist/lifeops/background-planner-dispatch.js +113 -0
  408. package/dist/lifeops/background-planner-dispatch.js.map +1 -0
  409. package/dist/lifeops/background-planner.d.ts +140 -0
  410. package/dist/lifeops/background-planner.d.ts.map +1 -0
  411. package/dist/lifeops/background-planner.js +359 -0
  412. package/dist/lifeops/background-planner.js.map +1 -0
  413. package/dist/lifeops/bill-extraction.d.ts +46 -0
  414. package/dist/lifeops/bill-extraction.d.ts.map +1 -0
  415. package/dist/lifeops/bill-extraction.js +325 -0
  416. package/dist/lifeops/bill-extraction.js.map +1 -0
  417. package/dist/lifeops/browser-constants.d.ts +4 -0
  418. package/dist/lifeops/browser-constants.d.ts.map +1 -0
  419. package/dist/lifeops/browser-constants.js +27 -0
  420. package/dist/lifeops/browser-constants.js.map +1 -0
  421. package/dist/lifeops/browser-extension-store.d.ts +61 -0
  422. package/dist/lifeops/browser-extension-store.d.ts.map +1 -0
  423. package/dist/lifeops/browser-extension-store.js +176 -0
  424. package/dist/lifeops/browser-extension-store.js.map +1 -0
  425. package/dist/lifeops/browser-session-lifecycle.d.ts +57 -0
  426. package/dist/lifeops/browser-session-lifecycle.d.ts.map +1 -0
  427. package/dist/lifeops/browser-session-lifecycle.js +308 -0
  428. package/dist/lifeops/browser-session-lifecycle.js.map +1 -0
  429. package/dist/lifeops/bulk-review.d.ts +333 -0
  430. package/dist/lifeops/bulk-review.d.ts.map +1 -0
  431. package/dist/lifeops/bulk-review.js +1120 -0
  432. package/dist/lifeops/bulk-review.js.map +1 -0
  433. package/dist/lifeops/calendar-gate.d.ts +20 -0
  434. package/dist/lifeops/calendar-gate.d.ts.map +1 -0
  435. package/dist/lifeops/calendar-gate.js +30 -0
  436. package/dist/lifeops/calendar-gate.js.map +1 -0
  437. package/dist/lifeops/channels/contract.d.ts +47 -0
  438. package/dist/lifeops/channels/contract.d.ts.map +1 -0
  439. package/dist/lifeops/channels/contract.js +1 -0
  440. package/dist/lifeops/channels/contract.js.map +1 -0
  441. package/dist/lifeops/channels/default-pack.d.ts +26 -0
  442. package/dist/lifeops/channels/default-pack.d.ts.map +1 -0
  443. package/dist/lifeops/channels/default-pack.js +243 -0
  444. package/dist/lifeops/channels/default-pack.js.map +1 -0
  445. package/dist/lifeops/channels/index.d.ts +5 -0
  446. package/dist/lifeops/channels/index.d.ts.map +1 -0
  447. package/dist/lifeops/channels/index.js +23 -0
  448. package/dist/lifeops/channels/index.js.map +1 -0
  449. package/dist/lifeops/channels/priority-posture.d.ts +36 -0
  450. package/dist/lifeops/channels/priority-posture.d.ts.map +1 -0
  451. package/dist/lifeops/channels/priority-posture.js +27 -0
  452. package/dist/lifeops/channels/priority-posture.js.map +1 -0
  453. package/dist/lifeops/channels/registry.d.ts +7 -0
  454. package/dist/lifeops/channels/registry.d.ts.map +1 -0
  455. package/dist/lifeops/channels/registry.js +49 -0
  456. package/dist/lifeops/channels/registry.js.map +1 -0
  457. package/dist/lifeops/checkin/checkin-service.d.ts +66 -0
  458. package/dist/lifeops/checkin/checkin-service.d.ts.map +1 -0
  459. package/dist/lifeops/checkin/checkin-service.js +1084 -0
  460. package/dist/lifeops/checkin/checkin-service.js.map +1 -0
  461. package/dist/lifeops/checkin/schedule-resolver.d.ts +17 -0
  462. package/dist/lifeops/checkin/schedule-resolver.d.ts.map +1 -0
  463. package/dist/lifeops/checkin/schedule-resolver.js +26 -0
  464. package/dist/lifeops/checkin/schedule-resolver.js.map +1 -0
  465. package/dist/lifeops/checkin/types.d.ts +106 -0
  466. package/dist/lifeops/checkin/types.d.ts.map +1 -0
  467. package/dist/lifeops/checkin/types.js +1 -0
  468. package/dist/lifeops/checkin/types.js.map +1 -0
  469. package/dist/lifeops/connectors/_helpers.d.ts +51 -0
  470. package/dist/lifeops/connectors/_helpers.d.ts.map +1 -0
  471. package/dist/lifeops/connectors/_helpers.js +104 -0
  472. package/dist/lifeops/connectors/_helpers.js.map +1 -0
  473. package/dist/lifeops/connectors/calendly.d.ts +11 -0
  474. package/dist/lifeops/connectors/calendly.d.ts.map +1 -0
  475. package/dist/lifeops/connectors/calendly.js +61 -0
  476. package/dist/lifeops/connectors/calendly.js.map +1 -0
  477. package/dist/lifeops/connectors/contract.d.ts +88 -0
  478. package/dist/lifeops/connectors/contract.d.ts.map +1 -0
  479. package/dist/lifeops/connectors/contract.js +1 -0
  480. package/dist/lifeops/connectors/contract.js.map +1 -0
  481. package/dist/lifeops/connectors/default-pack.d.ts +35 -0
  482. package/dist/lifeops/connectors/default-pack.d.ts.map +1 -0
  483. package/dist/lifeops/connectors/default-pack.js +37 -0
  484. package/dist/lifeops/connectors/default-pack.js.map +1 -0
  485. package/dist/lifeops/connectors/discord.d.ts +8 -0
  486. package/dist/lifeops/connectors/discord.d.ts.map +1 -0
  487. package/dist/lifeops/connectors/discord.js +53 -0
  488. package/dist/lifeops/connectors/discord.js.map +1 -0
  489. package/dist/lifeops/connectors/dispatch-policy.d.ts +75 -0
  490. package/dist/lifeops/connectors/dispatch-policy.d.ts.map +1 -0
  491. package/dist/lifeops/connectors/dispatch-policy.js +35 -0
  492. package/dist/lifeops/connectors/dispatch-policy.js.map +1 -0
  493. package/dist/lifeops/connectors/duffel.d.ts +11 -0
  494. package/dist/lifeops/connectors/duffel.d.ts.map +1 -0
  495. package/dist/lifeops/connectors/duffel.js +74 -0
  496. package/dist/lifeops/connectors/duffel.js.map +1 -0
  497. package/dist/lifeops/connectors/google.d.ts +27 -0
  498. package/dist/lifeops/connectors/google.d.ts.map +1 -0
  499. package/dist/lifeops/connectors/google.js +80 -0
  500. package/dist/lifeops/connectors/google.js.map +1 -0
  501. package/dist/lifeops/connectors/imessage.d.ts +11 -0
  502. package/dist/lifeops/connectors/imessage.d.ts.map +1 -0
  503. package/dist/lifeops/connectors/imessage.js +55 -0
  504. package/dist/lifeops/connectors/imessage.js.map +1 -0
  505. package/dist/lifeops/connectors/index.d.ts +5 -0
  506. package/dist/lifeops/connectors/index.d.ts.map +1 -0
  507. package/dist/lifeops/connectors/index.js +23 -0
  508. package/dist/lifeops/connectors/index.js.map +1 -0
  509. package/dist/lifeops/connectors/mockoon-redirect.d.ts +54 -0
  510. package/dist/lifeops/connectors/mockoon-redirect.d.ts.map +1 -0
  511. package/dist/lifeops/connectors/mockoon-redirect.js +71 -0
  512. package/dist/lifeops/connectors/mockoon-redirect.js.map +1 -0
  513. package/dist/lifeops/connectors/registry.d.ts +7 -0
  514. package/dist/lifeops/connectors/registry.d.ts.map +1 -0
  515. package/dist/lifeops/connectors/registry.js +55 -0
  516. package/dist/lifeops/connectors/registry.js.map +1 -0
  517. package/dist/lifeops/connectors/signal.d.ts +8 -0
  518. package/dist/lifeops/connectors/signal.d.ts.map +1 -0
  519. package/dist/lifeops/connectors/signal.js +60 -0
  520. package/dist/lifeops/connectors/signal.js.map +1 -0
  521. package/dist/lifeops/connectors/telegram.d.ts +12 -0
  522. package/dist/lifeops/connectors/telegram.d.ts.map +1 -0
  523. package/dist/lifeops/connectors/telegram.js +65 -0
  524. package/dist/lifeops/connectors/telegram.js.map +1 -0
  525. package/dist/lifeops/connectors/twilio.d.ts +15 -0
  526. package/dist/lifeops/connectors/twilio.d.ts.map +1 -0
  527. package/dist/lifeops/connectors/twilio.js +126 -0
  528. package/dist/lifeops/connectors/twilio.js.map +1 -0
  529. package/dist/lifeops/connectors/whatsapp.d.ts +10 -0
  530. package/dist/lifeops/connectors/whatsapp.d.ts.map +1 -0
  531. package/dist/lifeops/connectors/whatsapp.js +56 -0
  532. package/dist/lifeops/connectors/whatsapp.js.map +1 -0
  533. package/dist/lifeops/connectors/x.d.ts +8 -0
  534. package/dist/lifeops/connectors/x.d.ts.map +1 -0
  535. package/dist/lifeops/connectors/x.js +62 -0
  536. package/dist/lifeops/connectors/x.js.map +1 -0
  537. package/dist/lifeops/contact-route-policy.d.ts +27 -0
  538. package/dist/lifeops/contact-route-policy.d.ts.map +1 -0
  539. package/dist/lifeops/contact-route-policy.js +153 -0
  540. package/dist/lifeops/contact-route-policy.js.map +1 -0
  541. package/dist/lifeops/continuity-probe.d.ts +49 -0
  542. package/dist/lifeops/continuity-probe.d.ts.map +1 -0
  543. package/dist/lifeops/continuity-probe.js +161 -0
  544. package/dist/lifeops/continuity-probe.js.map +1 -0
  545. package/dist/lifeops/cross-channel-search.d.ts +108 -0
  546. package/dist/lifeops/cross-channel-search.d.ts.map +1 -0
  547. package/dist/lifeops/cross-channel-search.js +888 -0
  548. package/dist/lifeops/cross-channel-search.js.map +1 -0
  549. package/dist/lifeops/defaults.d.ts +30 -0
  550. package/dist/lifeops/defaults.d.ts.map +1 -0
  551. package/dist/lifeops/defaults.js +206 -0
  552. package/dist/lifeops/defaults.js.map +1 -0
  553. package/dist/lifeops/device-bus-service.d.ts +16 -0
  554. package/dist/lifeops/device-bus-service.d.ts.map +1 -0
  555. package/dist/lifeops/device-bus-service.js +20 -0
  556. package/dist/lifeops/device-bus-service.js.map +1 -0
  557. package/dist/lifeops/device-identity.d.ts +31 -0
  558. package/dist/lifeops/device-identity.d.ts.map +1 -0
  559. package/dist/lifeops/device-identity.js +94 -0
  560. package/dist/lifeops/device-identity.js.map +1 -0
  561. package/dist/lifeops/document-review.d.ts +264 -0
  562. package/dist/lifeops/document-review.d.ts.map +1 -0
  563. package/dist/lifeops/document-review.js +925 -0
  564. package/dist/lifeops/document-review.js.map +1 -0
  565. package/dist/lifeops/email-classifier.d.ts +9 -0
  566. package/dist/lifeops/email-classifier.d.ts.map +1 -0
  567. package/dist/lifeops/email-classifier.js +15 -0
  568. package/dist/lifeops/email-classifier.js.map +1 -0
  569. package/dist/lifeops/email-curation.d.ts +13 -0
  570. package/dist/lifeops/email-curation.d.ts.map +1 -0
  571. package/dist/lifeops/email-curation.js +2 -0
  572. package/dist/lifeops/email-curation.js.map +1 -0
  573. package/dist/lifeops/email-unsubscribe-types.d.ts +7 -0
  574. package/dist/lifeops/email-unsubscribe-types.d.ts.map +1 -0
  575. package/dist/lifeops/email-unsubscribe-types.js +1 -0
  576. package/dist/lifeops/email-unsubscribe-types.js.map +1 -0
  577. package/dist/lifeops/enforcement-windows.d.ts +34 -0
  578. package/dist/lifeops/enforcement-windows.d.ts.map +1 -0
  579. package/dist/lifeops/enforcement-windows.js +80 -0
  580. package/dist/lifeops/enforcement-windows.js.map +1 -0
  581. package/dist/lifeops/engine.d.ts +8 -0
  582. package/dist/lifeops/engine.d.ts.map +1 -0
  583. package/dist/lifeops/engine.js +540 -0
  584. package/dist/lifeops/engine.js.map +1 -0
  585. package/dist/lifeops/entities/index.d.ts +4 -0
  586. package/dist/lifeops/entities/index.d.ts.map +1 -0
  587. package/dist/lifeops/entities/index.js +29 -0
  588. package/dist/lifeops/entities/index.js.map +1 -0
  589. package/dist/lifeops/entities/merge.d.ts +9 -0
  590. package/dist/lifeops/entities/merge.d.ts.map +1 -0
  591. package/dist/lifeops/entities/merge.js +17 -0
  592. package/dist/lifeops/entities/merge.js.map +1 -0
  593. package/dist/lifeops/entities/store.d.ts +13 -0
  594. package/dist/lifeops/entities/store.d.ts.map +1 -0
  595. package/dist/lifeops/entities/store.js +7 -0
  596. package/dist/lifeops/entities/store.js.map +1 -0
  597. package/dist/lifeops/entities/types.d.ts +9 -0
  598. package/dist/lifeops/entities/types.d.ts.map +1 -0
  599. package/dist/lifeops/entities/types.js +13 -0
  600. package/dist/lifeops/entities/types.js.map +1 -0
  601. package/dist/lifeops/entities/voice-attribution.d.ts +70 -0
  602. package/dist/lifeops/entities/voice-attribution.d.ts.map +1 -0
  603. package/dist/lifeops/entities/voice-attribution.js +121 -0
  604. package/dist/lifeops/entities/voice-attribution.js.map +1 -0
  605. package/dist/lifeops/entities/voice-observer-bridge.d.ts +32 -0
  606. package/dist/lifeops/entities/voice-observer-bridge.d.ts.map +1 -0
  607. package/dist/lifeops/entities/voice-observer-bridge.js +68 -0
  608. package/dist/lifeops/entities/voice-observer-bridge.js.map +1 -0
  609. package/dist/lifeops/entities/voice-observer.d.ts +72 -0
  610. package/dist/lifeops/entities/voice-observer.d.ts.map +1 -0
  611. package/dist/lifeops/entities/voice-observer.js +97 -0
  612. package/dist/lifeops/entities/voice-observer.js.map +1 -0
  613. package/dist/lifeops/escalation-ladders.d.ts +28 -0
  614. package/dist/lifeops/escalation-ladders.d.ts.map +1 -0
  615. package/dist/lifeops/escalation-ladders.js +17 -0
  616. package/dist/lifeops/escalation-ladders.js.map +1 -0
  617. package/dist/lifeops/fda-probe.d.ts +23 -0
  618. package/dist/lifeops/fda-probe.d.ts.map +1 -0
  619. package/dist/lifeops/fda-probe.js +59 -0
  620. package/dist/lifeops/fda-probe.js.map +1 -0
  621. package/dist/lifeops/feature-flags.d.ts +24 -0
  622. package/dist/lifeops/feature-flags.d.ts.map +1 -0
  623. package/dist/lifeops/feature-flags.js +261 -0
  624. package/dist/lifeops/feature-flags.js.map +1 -0
  625. package/dist/lifeops/feature-flags.types.d.ts +156 -0
  626. package/dist/lifeops/feature-flags.types.d.ts.map +1 -0
  627. package/dist/lifeops/feature-flags.types.js +129 -0
  628. package/dist/lifeops/feature-flags.types.js.map +1 -0
  629. package/dist/lifeops/first-run/defaults.d.ts +57 -0
  630. package/dist/lifeops/first-run/defaults.d.ts.map +1 -0
  631. package/dist/lifeops/first-run/defaults.js +159 -0
  632. package/dist/lifeops/first-run/defaults.js.map +1 -0
  633. package/dist/lifeops/first-run/questions.d.ts +74 -0
  634. package/dist/lifeops/first-run/questions.d.ts.map +1 -0
  635. package/dist/lifeops/first-run/questions.js +184 -0
  636. package/dist/lifeops/first-run/questions.js.map +1 -0
  637. package/dist/lifeops/first-run/replay.d.ts +41 -0
  638. package/dist/lifeops/first-run/replay.d.ts.map +1 -0
  639. package/dist/lifeops/first-run/replay.js +34 -0
  640. package/dist/lifeops/first-run/replay.js.map +1 -0
  641. package/dist/lifeops/first-run/service.d.ts +147 -0
  642. package/dist/lifeops/first-run/service.d.ts.map +1 -0
  643. package/dist/lifeops/first-run/service.js +455 -0
  644. package/dist/lifeops/first-run/service.js.map +1 -0
  645. package/dist/lifeops/first-run/state.d.ts +36 -0
  646. package/dist/lifeops/first-run/state.d.ts.map +1 -0
  647. package/dist/lifeops/first-run/state.js +128 -0
  648. package/dist/lifeops/first-run/state.js.map +1 -0
  649. package/dist/lifeops/global-pause/store.d.ts +22 -0
  650. package/dist/lifeops/global-pause/store.d.ts.map +1 -0
  651. package/dist/lifeops/global-pause/store.js +18 -0
  652. package/dist/lifeops/global-pause/store.js.map +1 -0
  653. package/dist/lifeops/goal-grounding.d.ts +9 -0
  654. package/dist/lifeops/goal-grounding.d.ts.map +1 -0
  655. package/dist/lifeops/goal-grounding.js +19 -0
  656. package/dist/lifeops/goal-grounding.js.map +1 -0
  657. package/dist/lifeops/goal-semantic-evaluator.d.ts +8 -0
  658. package/dist/lifeops/goal-semantic-evaluator.d.ts.map +1 -0
  659. package/dist/lifeops/goal-semantic-evaluator.js +7 -0
  660. package/dist/lifeops/goal-semantic-evaluator.js.map +1 -0
  661. package/dist/lifeops/google/format-helpers.d.ts +63 -0
  662. package/dist/lifeops/google/format-helpers.d.ts.map +1 -0
  663. package/dist/lifeops/google/format-helpers.js +597 -0
  664. package/dist/lifeops/google/format-helpers.js.map +1 -0
  665. package/dist/lifeops/google-plugin-delegates.d.ts +59 -0
  666. package/dist/lifeops/google-plugin-delegates.d.ts.map +1 -0
  667. package/dist/lifeops/google-plugin-delegates.js +408 -0
  668. package/dist/lifeops/google-plugin-delegates.js.map +1 -0
  669. package/dist/lifeops/google-scopes.d.ts +15 -0
  670. package/dist/lifeops/google-scopes.d.ts.map +1 -0
  671. package/dist/lifeops/google-scopes.js +118 -0
  672. package/dist/lifeops/google-scopes.js.map +1 -0
  673. package/dist/lifeops/handoff/store.d.ts +23 -0
  674. package/dist/lifeops/handoff/store.d.ts.map +1 -0
  675. package/dist/lifeops/handoff/store.js +20 -0
  676. package/dist/lifeops/handoff/store.js.map +1 -0
  677. package/dist/lifeops/i18n/localized-examples-provider.d.ts +16 -0
  678. package/dist/lifeops/i18n/localized-examples-provider.d.ts.map +1 -0
  679. package/dist/lifeops/i18n/localized-examples-provider.js +33 -0
  680. package/dist/lifeops/i18n/localized-examples-provider.js.map +1 -0
  681. package/dist/lifeops/i18n/localized-examples-resolver.d.ts +32 -0
  682. package/dist/lifeops/i18n/localized-examples-resolver.d.ts.map +1 -0
  683. package/dist/lifeops/i18n/localized-examples-resolver.js +28 -0
  684. package/dist/lifeops/i18n/localized-examples-resolver.js.map +1 -0
  685. package/dist/lifeops/i18n/prompt-registry.d.ts +64 -0
  686. package/dist/lifeops/i18n/prompt-registry.d.ts.map +1 -0
  687. package/dist/lifeops/i18n/prompt-registry.js +283 -0
  688. package/dist/lifeops/i18n/prompt-registry.js.map +1 -0
  689. package/dist/lifeops/imessage-outbound-probe.d.ts +7 -0
  690. package/dist/lifeops/imessage-outbound-probe.d.ts.map +1 -0
  691. package/dist/lifeops/imessage-outbound-probe.js +81 -0
  692. package/dist/lifeops/imessage-outbound-probe.js.map +1 -0
  693. package/dist/lifeops/index.d.ts +24 -0
  694. package/dist/lifeops/index.d.ts.map +1 -0
  695. package/dist/lifeops/index.js +24 -0
  696. package/dist/lifeops/index.js.map +1 -0
  697. package/dist/lifeops/intent-sync.d.ts +64 -0
  698. package/dist/lifeops/intent-sync.d.ts.map +1 -0
  699. package/dist/lifeops/intent-sync.js +321 -0
  700. package/dist/lifeops/intent-sync.js.map +1 -0
  701. package/dist/lifeops/messaging/index.d.ts +2 -0
  702. package/dist/lifeops/messaging/index.d.ts.map +1 -0
  703. package/dist/lifeops/messaging/index.js +5 -0
  704. package/dist/lifeops/messaging/index.js.map +1 -0
  705. package/dist/lifeops/messaging/owner-send-policy.d.ts +3 -0
  706. package/dist/lifeops/messaging/owner-send-policy.d.ts.map +1 -0
  707. package/dist/lifeops/messaging/owner-send-policy.js +83 -0
  708. package/dist/lifeops/messaging/owner-send-policy.js.map +1 -0
  709. package/dist/lifeops/notifications-push.d.ts +37 -0
  710. package/dist/lifeops/notifications-push.d.ts.map +1 -0
  711. package/dist/lifeops/notifications-push.js +95 -0
  712. package/dist/lifeops/notifications-push.js.map +1 -0
  713. package/dist/lifeops/optimized-prompt-instructions.d.ts +5 -0
  714. package/dist/lifeops/optimized-prompt-instructions.d.ts.map +1 -0
  715. package/dist/lifeops/optimized-prompt-instructions.js +48 -0
  716. package/dist/lifeops/optimized-prompt-instructions.js.map +1 -0
  717. package/dist/lifeops/owner/fact-store.d.ts +143 -0
  718. package/dist/lifeops/owner/fact-store.d.ts.map +1 -0
  719. package/dist/lifeops/owner/fact-store.js +446 -0
  720. package/dist/lifeops/owner/fact-store.js.map +1 -0
  721. package/dist/lifeops/owner/profile-extraction-evaluator.d.ts +3 -0
  722. package/dist/lifeops/owner/profile-extraction-evaluator.d.ts.map +1 -0
  723. package/dist/lifeops/owner/profile-extraction-evaluator.js +241 -0
  724. package/dist/lifeops/owner/profile-extraction-evaluator.js.map +1 -0
  725. package/dist/lifeops/owner-profile.d.ts +61 -0
  726. package/dist/lifeops/owner-profile.d.ts.map +1 -0
  727. package/dist/lifeops/owner-profile.js +407 -0
  728. package/dist/lifeops/owner-profile.js.map +1 -0
  729. package/dist/lifeops/pending-prompts/store.d.ts +23 -0
  730. package/dist/lifeops/pending-prompts/store.d.ts.map +1 -0
  731. package/dist/lifeops/pending-prompts/store.js +16 -0
  732. package/dist/lifeops/pending-prompts/store.js.map +1 -0
  733. package/dist/lifeops/policy-memory.d.ts +190 -0
  734. package/dist/lifeops/policy-memory.d.ts.map +1 -0
  735. package/dist/lifeops/policy-memory.js +1026 -0
  736. package/dist/lifeops/policy-memory.js.map +1 -0
  737. package/dist/lifeops/priority-scoring.d.ts +51 -0
  738. package/dist/lifeops/priority-scoring.d.ts.map +1 -0
  739. package/dist/lifeops/priority-scoring.js +305 -0
  740. package/dist/lifeops/priority-scoring.js.map +1 -0
  741. package/dist/lifeops/privacy-egress.d.ts +92 -0
  742. package/dist/lifeops/privacy-egress.d.ts.map +1 -0
  743. package/dist/lifeops/privacy-egress.js +230 -0
  744. package/dist/lifeops/privacy-egress.js.map +1 -0
  745. package/dist/lifeops/privacy.d.ts +49 -0
  746. package/dist/lifeops/privacy.d.ts.map +1 -0
  747. package/dist/lifeops/privacy.js +66 -0
  748. package/dist/lifeops/privacy.js.map +1 -0
  749. package/dist/lifeops/redact-sensitive-data.d.ts +32 -0
  750. package/dist/lifeops/redact-sensitive-data.d.ts.map +1 -0
  751. package/dist/lifeops/redact-sensitive-data.js +98 -0
  752. package/dist/lifeops/redact-sensitive-data.js.map +1 -0
  753. package/dist/lifeops/registries/app-blocker-contribution.d.ts +13 -0
  754. package/dist/lifeops/registries/app-blocker-contribution.d.ts.map +1 -0
  755. package/dist/lifeops/registries/app-blocker-contribution.js +73 -0
  756. package/dist/lifeops/registries/app-blocker-contribution.js.map +1 -0
  757. package/dist/lifeops/registries/blocker-registry.d.ts +76 -0
  758. package/dist/lifeops/registries/blocker-registry.d.ts.map +1 -0
  759. package/dist/lifeops/registries/blocker-registry.js +40 -0
  760. package/dist/lifeops/registries/blocker-registry.js.map +1 -0
  761. package/dist/lifeops/registries/event-kind-registry.d.ts +57 -0
  762. package/dist/lifeops/registries/event-kind-registry.d.ts.map +1 -0
  763. package/dist/lifeops/registries/event-kind-registry.js +82 -0
  764. package/dist/lifeops/registries/event-kind-registry.js.map +1 -0
  765. package/dist/lifeops/registries/family-registry.d.ts +72 -0
  766. package/dist/lifeops/registries/family-registry.d.ts.map +1 -0
  767. package/dist/lifeops/registries/family-registry.js +98 -0
  768. package/dist/lifeops/registries/family-registry.js.map +1 -0
  769. package/dist/lifeops/registries/feature-flag-default-pack.d.ts +32 -0
  770. package/dist/lifeops/registries/feature-flag-default-pack.d.ts.map +1 -0
  771. package/dist/lifeops/registries/feature-flag-default-pack.js +36 -0
  772. package/dist/lifeops/registries/feature-flag-default-pack.js.map +1 -0
  773. package/dist/lifeops/registries/feature-flag-registry.d.ts +76 -0
  774. package/dist/lifeops/registries/feature-flag-registry.d.ts.map +1 -0
  775. package/dist/lifeops/registries/feature-flag-registry.js +68 -0
  776. package/dist/lifeops/registries/feature-flag-registry.js.map +1 -0
  777. package/dist/lifeops/registries/index.d.ts +24 -0
  778. package/dist/lifeops/registries/index.d.ts.map +1 -0
  779. package/dist/lifeops/registries/index.js +115 -0
  780. package/dist/lifeops/registries/index.js.map +1 -0
  781. package/dist/lifeops/registries/website-blocker-contribution.d.ts +21 -0
  782. package/dist/lifeops/registries/website-blocker-contribution.d.ts.map +1 -0
  783. package/dist/lifeops/registries/website-blocker-contribution.js +76 -0
  784. package/dist/lifeops/registries/website-blocker-contribution.js.map +1 -0
  785. package/dist/lifeops/registries/workflow-step-default-pack.d.ts +30 -0
  786. package/dist/lifeops/registries/workflow-step-default-pack.d.ts.map +1 -0
  787. package/dist/lifeops/registries/workflow-step-default-pack.js +315 -0
  788. package/dist/lifeops/registries/workflow-step-default-pack.js.map +1 -0
  789. package/dist/lifeops/registries/workflow-step-registry.d.ts +101 -0
  790. package/dist/lifeops/registries/workflow-step-registry.d.ts.map +1 -0
  791. package/dist/lifeops/registries/workflow-step-registry.js +56 -0
  792. package/dist/lifeops/registries/workflow-step-registry.js.map +1 -0
  793. package/dist/lifeops/relationships/extraction.d.ts +77 -0
  794. package/dist/lifeops/relationships/extraction.d.ts.map +1 -0
  795. package/dist/lifeops/relationships/extraction.js +146 -0
  796. package/dist/lifeops/relationships/extraction.js.map +1 -0
  797. package/dist/lifeops/relationships/index.d.ts +4 -0
  798. package/dist/lifeops/relationships/index.d.ts.map +1 -0
  799. package/dist/lifeops/relationships/index.js +19 -0
  800. package/dist/lifeops/relationships/index.js.map +1 -0
  801. package/dist/lifeops/relationships/mapping.d.ts +34 -0
  802. package/dist/lifeops/relationships/mapping.d.ts.map +1 -0
  803. package/dist/lifeops/relationships/mapping.js +87 -0
  804. package/dist/lifeops/relationships/mapping.js.map +1 -0
  805. package/dist/lifeops/relationships/store.d.ts +12 -0
  806. package/dist/lifeops/relationships/store.d.ts.map +1 -0
  807. package/dist/lifeops/relationships/store.js +5 -0
  808. package/dist/lifeops/relationships/store.js.map +1 -0
  809. package/dist/lifeops/relationships/types.d.ts +9 -0
  810. package/dist/lifeops/relationships/types.d.ts.map +1 -0
  811. package/dist/lifeops/relationships/types.js +11 -0
  812. package/dist/lifeops/relationships/types.js.map +1 -0
  813. package/dist/lifeops/relative-schedule-resolver.d.ts +13 -0
  814. package/dist/lifeops/relative-schedule-resolver.d.ts.map +1 -0
  815. package/dist/lifeops/relative-schedule-resolver.js +107 -0
  816. package/dist/lifeops/relative-schedule-resolver.js.map +1 -0
  817. package/dist/lifeops/relative-time.d.ts +15 -0
  818. package/dist/lifeops/relative-time.d.ts.map +1 -0
  819. package/dist/lifeops/relative-time.js +191 -0
  820. package/dist/lifeops/relative-time.js.map +1 -0
  821. package/dist/lifeops/repository.d.ts +638 -0
  822. package/dist/lifeops/repository.d.ts.map +1 -0
  823. package/dist/lifeops/repository.js +6289 -0
  824. package/dist/lifeops/repository.js.map +1 -0
  825. package/dist/lifeops/runtime-cache.d.ts +4 -0
  826. package/dist/lifeops/runtime-cache.d.ts.map +1 -0
  827. package/dist/lifeops/runtime-cache.js +7 -0
  828. package/dist/lifeops/runtime-cache.js.map +1 -0
  829. package/dist/lifeops/runtime-service-delegates.d.ts +236 -0
  830. package/dist/lifeops/runtime-service-delegates.d.ts.map +1 -0
  831. package/dist/lifeops/runtime-service-delegates.js +839 -0
  832. package/dist/lifeops/runtime-service-delegates.js.map +1 -0
  833. package/dist/lifeops/runtime.d.ts +13 -0
  834. package/dist/lifeops/runtime.d.ts.map +1 -0
  835. package/dist/lifeops/runtime.js +104 -0
  836. package/dist/lifeops/runtime.js.map +1 -0
  837. package/dist/lifeops/schedule-insight.d.ts +133 -0
  838. package/dist/lifeops/schedule-insight.d.ts.map +1 -0
  839. package/dist/lifeops/schedule-insight.js +726 -0
  840. package/dist/lifeops/schedule-insight.js.map +1 -0
  841. package/dist/lifeops/schedule-state.d.ts +39 -0
  842. package/dist/lifeops/schedule-state.d.ts.map +1 -0
  843. package/dist/lifeops/schedule-state.js +671 -0
  844. package/dist/lifeops/schedule-state.js.map +1 -0
  845. package/dist/lifeops/schedule-sync-config.d.ts +3 -0
  846. package/dist/lifeops/schedule-sync-config.d.ts.map +1 -0
  847. package/dist/lifeops/schedule-sync-config.js +23 -0
  848. package/dist/lifeops/schedule-sync-config.js.map +1 -0
  849. package/dist/lifeops/schedule-sync-contracts.d.ts +2 -0
  850. package/dist/lifeops/schedule-sync-contracts.d.ts.map +1 -0
  851. package/dist/lifeops/schedule-sync-contracts.js +2 -0
  852. package/dist/lifeops/schedule-sync-contracts.js.map +1 -0
  853. package/dist/lifeops/scheduled-task/index.d.ts +13 -0
  854. package/dist/lifeops/scheduled-task/index.d.ts.map +1 -0
  855. package/dist/lifeops/scheduled-task/index.js +14 -0
  856. package/dist/lifeops/scheduled-task/index.js.map +1 -0
  857. package/dist/lifeops/scheduled-task/runtime-wiring.d.ts +33 -0
  858. package/dist/lifeops/scheduled-task/runtime-wiring.d.ts.map +1 -0
  859. package/dist/lifeops/scheduled-task/runtime-wiring.js +334 -0
  860. package/dist/lifeops/scheduled-task/runtime-wiring.js.map +1 -0
  861. package/dist/lifeops/scheduled-task/scheduler.d.ts +28 -0
  862. package/dist/lifeops/scheduled-task/scheduler.d.ts.map +1 -0
  863. package/dist/lifeops/scheduled-task/scheduler.js +202 -0
  864. package/dist/lifeops/scheduled-task/scheduler.js.map +1 -0
  865. package/dist/lifeops/scheduled-task/service.d.ts +61 -0
  866. package/dist/lifeops/scheduled-task/service.d.ts.map +1 -0
  867. package/dist/lifeops/scheduled-task/service.js +64 -0
  868. package/dist/lifeops/scheduled-task/service.js.map +1 -0
  869. package/dist/lifeops/scheduler-task.d.ts +19 -0
  870. package/dist/lifeops/scheduler-task.d.ts.map +1 -0
  871. package/dist/lifeops/scheduler-task.js +201 -0
  872. package/dist/lifeops/scheduler-task.js.map +1 -0
  873. package/dist/lifeops/schema.d.ts +28068 -0
  874. package/dist/lifeops/schema.d.ts.map +1 -0
  875. package/dist/lifeops/schema.js +1689 -0
  876. package/dist/lifeops/schema.js.map +1 -0
  877. package/dist/lifeops/screen-context.d.ts +66 -0
  878. package/dist/lifeops/screen-context.d.ts.map +1 -0
  879. package/dist/lifeops/screen-context.js +347 -0
  880. package/dist/lifeops/screen-context.js.map +1 -0
  881. package/dist/lifeops/seed-routine-migration/migrator.d.ts +113 -0
  882. package/dist/lifeops/seed-routine-migration/migrator.d.ts.map +1 -0
  883. package/dist/lifeops/seed-routine-migration/migrator.js +142 -0
  884. package/dist/lifeops/seed-routine-migration/migrator.js.map +1 -0
  885. package/dist/lifeops/seed-routines.d.ts +24 -0
  886. package/dist/lifeops/seed-routines.d.ts.map +1 -0
  887. package/dist/lifeops/seed-routines.js +140 -0
  888. package/dist/lifeops/seed-routines.js.map +1 -0
  889. package/dist/lifeops/send-policy/contract.d.ts +81 -0
  890. package/dist/lifeops/send-policy/contract.d.ts.map +1 -0
  891. package/dist/lifeops/send-policy/contract.js +1 -0
  892. package/dist/lifeops/send-policy/contract.js.map +1 -0
  893. package/dist/lifeops/send-policy/index.d.ts +3 -0
  894. package/dist/lifeops/send-policy/index.d.ts.map +1 -0
  895. package/dist/lifeops/send-policy/index.js +13 -0
  896. package/dist/lifeops/send-policy/index.js.map +1 -0
  897. package/dist/lifeops/send-policy/registry.d.ts +7 -0
  898. package/dist/lifeops/send-policy/registry.d.ts.map +1 -0
  899. package/dist/lifeops/send-policy/registry.js +62 -0
  900. package/dist/lifeops/send-policy/registry.js.map +1 -0
  901. package/dist/lifeops/sensitive-request-delivery.d.ts +46 -0
  902. package/dist/lifeops/sensitive-request-delivery.d.ts.map +1 -0
  903. package/dist/lifeops/sensitive-request-delivery.js +103 -0
  904. package/dist/lifeops/sensitive-request-delivery.js.map +1 -0
  905. package/dist/lifeops/service-constants.d.ts +10 -0
  906. package/dist/lifeops/service-constants.d.ts.map +1 -0
  907. package/dist/lifeops/service-constants.js +129 -0
  908. package/dist/lifeops/service-constants.js.map +1 -0
  909. package/dist/lifeops/service-helpers-browser.d.ts +41 -0
  910. package/dist/lifeops/service-helpers-browser.d.ts.map +1 -0
  911. package/dist/lifeops/service-helpers-browser.js +290 -0
  912. package/dist/lifeops/service-helpers-browser.js.map +1 -0
  913. package/dist/lifeops/service-helpers-misc.d.ts +68 -0
  914. package/dist/lifeops/service-helpers-misc.d.ts.map +1 -0
  915. package/dist/lifeops/service-helpers-misc.js +531 -0
  916. package/dist/lifeops/service-helpers-misc.js.map +1 -0
  917. package/dist/lifeops/service-helpers-occurrence.d.ts +23 -0
  918. package/dist/lifeops/service-helpers-occurrence.d.ts.map +1 -0
  919. package/dist/lifeops/service-helpers-occurrence.js +257 -0
  920. package/dist/lifeops/service-helpers-occurrence.js.map +1 -0
  921. package/dist/lifeops/service-helpers-reminder.d.ts +260 -0
  922. package/dist/lifeops/service-helpers-reminder.d.ts.map +1 -0
  923. package/dist/lifeops/service-helpers-reminder.js +1186 -0
  924. package/dist/lifeops/service-helpers-reminder.js.map +1 -0
  925. package/dist/lifeops/service-mixin-browser.d.ts +31 -0
  926. package/dist/lifeops/service-mixin-browser.d.ts.map +1 -0
  927. package/dist/lifeops/service-mixin-browser.js +975 -0
  928. package/dist/lifeops/service-mixin-browser.js.map +1 -0
  929. package/dist/lifeops/service-mixin-calendar.d.ts +53 -0
  930. package/dist/lifeops/service-mixin-calendar.d.ts.map +1 -0
  931. package/dist/lifeops/service-mixin-calendar.js +68 -0
  932. package/dist/lifeops/service-mixin-calendar.js.map +1 -0
  933. package/dist/lifeops/service-mixin-core.d.ts +51 -0
  934. package/dist/lifeops/service-mixin-core.d.ts.map +1 -0
  935. package/dist/lifeops/service-mixin-core.js +500 -0
  936. package/dist/lifeops/service-mixin-core.js.map +1 -0
  937. package/dist/lifeops/service-mixin-definitions.d.ts +14 -0
  938. package/dist/lifeops/service-mixin-definitions.d.ts.map +1 -0
  939. package/dist/lifeops/service-mixin-definitions.js +470 -0
  940. package/dist/lifeops/service-mixin-definitions.js.map +1 -0
  941. package/dist/lifeops/service-mixin-discord.d.ts +49 -0
  942. package/dist/lifeops/service-mixin-discord.d.ts.map +1 -0
  943. package/dist/lifeops/service-mixin-discord.js +1253 -0
  944. package/dist/lifeops/service-mixin-discord.js.map +1 -0
  945. package/dist/lifeops/service-mixin-drive.d.ts +96 -0
  946. package/dist/lifeops/service-mixin-drive.d.ts.map +1 -0
  947. package/dist/lifeops/service-mixin-drive.js +213 -0
  948. package/dist/lifeops/service-mixin-drive.js.map +1 -0
  949. package/dist/lifeops/service-mixin-email-unsubscribe.d.ts +23 -0
  950. package/dist/lifeops/service-mixin-email-unsubscribe.d.ts.map +1 -0
  951. package/dist/lifeops/service-mixin-email-unsubscribe.js +27 -0
  952. package/dist/lifeops/service-mixin-email-unsubscribe.js.map +1 -0
  953. package/dist/lifeops/service-mixin-gmail.d.ts +43 -0
  954. package/dist/lifeops/service-mixin-gmail.d.ts.map +1 -0
  955. package/dist/lifeops/service-mixin-gmail.js +727 -0
  956. package/dist/lifeops/service-mixin-gmail.js.map +1 -0
  957. package/dist/lifeops/service-mixin-goals.d.ts +22 -0
  958. package/dist/lifeops/service-mixin-goals.d.ts.map +1 -0
  959. package/dist/lifeops/service-mixin-goals.js +884 -0
  960. package/dist/lifeops/service-mixin-goals.js.map +1 -0
  961. package/dist/lifeops/service-mixin-google.d.ts +13 -0
  962. package/dist/lifeops/service-mixin-google.d.ts.map +1 -0
  963. package/dist/lifeops/service-mixin-google.js +398 -0
  964. package/dist/lifeops/service-mixin-google.js.map +1 -0
  965. package/dist/lifeops/service-mixin-health.d.ts +27 -0
  966. package/dist/lifeops/service-mixin-health.d.ts.map +1 -0
  967. package/dist/lifeops/service-mixin-health.js +670 -0
  968. package/dist/lifeops/service-mixin-health.js.map +1 -0
  969. package/dist/lifeops/service-mixin-imessage.d.ts +106 -0
  970. package/dist/lifeops/service-mixin-imessage.d.ts.map +1 -0
  971. package/dist/lifeops/service-mixin-imessage.js +303 -0
  972. package/dist/lifeops/service-mixin-imessage.js.map +1 -0
  973. package/dist/lifeops/service-mixin-inbox.d.ts +55 -0
  974. package/dist/lifeops/service-mixin-inbox.d.ts.map +1 -0
  975. package/dist/lifeops/service-mixin-inbox.js +597 -0
  976. package/dist/lifeops/service-mixin-inbox.js.map +1 -0
  977. package/dist/lifeops/service-mixin-relationships.d.ts +65 -0
  978. package/dist/lifeops/service-mixin-relationships.d.ts.map +1 -0
  979. package/dist/lifeops/service-mixin-relationships.js +150 -0
  980. package/dist/lifeops/service-mixin-relationships.js.map +1 -0
  981. package/dist/lifeops/service-mixin-reminders.d.ts +62 -0
  982. package/dist/lifeops/service-mixin-reminders.d.ts.map +1 -0
  983. package/dist/lifeops/service-mixin-reminders.js +4003 -0
  984. package/dist/lifeops/service-mixin-reminders.js.map +1 -0
  985. package/dist/lifeops/service-mixin-scheduling.d.ts +53 -0
  986. package/dist/lifeops/service-mixin-scheduling.d.ts.map +1 -0
  987. package/dist/lifeops/service-mixin-scheduling.js +405 -0
  988. package/dist/lifeops/service-mixin-scheduling.js.map +1 -0
  989. package/dist/lifeops/service-mixin-screentime.d.ts +71 -0
  990. package/dist/lifeops/service-mixin-screentime.d.ts.map +1 -0
  991. package/dist/lifeops/service-mixin-screentime.js +530 -0
  992. package/dist/lifeops/service-mixin-screentime.js.map +1 -0
  993. package/dist/lifeops/service-mixin-signal.d.ts +74 -0
  994. package/dist/lifeops/service-mixin-signal.d.ts.map +1 -0
  995. package/dist/lifeops/service-mixin-signal.js +214 -0
  996. package/dist/lifeops/service-mixin-signal.js.map +1 -0
  997. package/dist/lifeops/service-mixin-sleep.d.ts +68 -0
  998. package/dist/lifeops/service-mixin-sleep.d.ts.map +1 -0
  999. package/dist/lifeops/service-mixin-sleep.js +43 -0
  1000. package/dist/lifeops/service-mixin-sleep.js.map +1 -0
  1001. package/dist/lifeops/service-mixin-status.d.ts +31 -0
  1002. package/dist/lifeops/service-mixin-status.d.ts.map +1 -0
  1003. package/dist/lifeops/service-mixin-status.js +373 -0
  1004. package/dist/lifeops/service-mixin-status.js.map +1 -0
  1005. package/dist/lifeops/service-mixin-subscriptions.d.ts +101 -0
  1006. package/dist/lifeops/service-mixin-subscriptions.d.ts.map +1 -0
  1007. package/dist/lifeops/service-mixin-subscriptions.js +50 -0
  1008. package/dist/lifeops/service-mixin-subscriptions.js.map +1 -0
  1009. package/dist/lifeops/service-mixin-telegram.d.ts +104 -0
  1010. package/dist/lifeops/service-mixin-telegram.d.ts.map +1 -0
  1011. package/dist/lifeops/service-mixin-telegram.js +280 -0
  1012. package/dist/lifeops/service-mixin-telegram.js.map +1 -0
  1013. package/dist/lifeops/service-mixin-travel.d.ts +66 -0
  1014. package/dist/lifeops/service-mixin-travel.d.ts.map +1 -0
  1015. package/dist/lifeops/service-mixin-travel.js +275 -0
  1016. package/dist/lifeops/service-mixin-travel.js.map +1 -0
  1017. package/dist/lifeops/service-mixin-whatsapp.d.ts +96 -0
  1018. package/dist/lifeops/service-mixin-whatsapp.d.ts.map +1 -0
  1019. package/dist/lifeops/service-mixin-whatsapp.js +186 -0
  1020. package/dist/lifeops/service-mixin-whatsapp.js.map +1 -0
  1021. package/dist/lifeops/service-mixin-workflows.d.ts +15 -0
  1022. package/dist/lifeops/service-mixin-workflows.d.ts.map +1 -0
  1023. package/dist/lifeops/service-mixin-workflows.js +710 -0
  1024. package/dist/lifeops/service-mixin-workflows.js.map +1 -0
  1025. package/dist/lifeops/service-mixin-x-read.d.ts +31 -0
  1026. package/dist/lifeops/service-mixin-x-read.d.ts.map +1 -0
  1027. package/dist/lifeops/service-mixin-x-read.js +267 -0
  1028. package/dist/lifeops/service-mixin-x-read.js.map +1 -0
  1029. package/dist/lifeops/service-mixin-x.d.ts +66 -0
  1030. package/dist/lifeops/service-mixin-x.d.ts.map +1 -0
  1031. package/dist/lifeops/service-mixin-x.js +501 -0
  1032. package/dist/lifeops/service-mixin-x.js.map +1 -0
  1033. package/dist/lifeops/service-normalize-connector.d.ts +19 -0
  1034. package/dist/lifeops/service-normalize-connector.d.ts.map +1 -0
  1035. package/dist/lifeops/service-normalize-connector.js +816 -0
  1036. package/dist/lifeops/service-normalize-connector.js.map +1 -0
  1037. package/dist/lifeops/service-normalize-gmail.d.ts +11 -0
  1038. package/dist/lifeops/service-normalize-gmail.d.ts.map +1 -0
  1039. package/dist/lifeops/service-normalize-gmail.js +85 -0
  1040. package/dist/lifeops/service-normalize-gmail.js.map +1 -0
  1041. package/dist/lifeops/service-normalize-task.d.ts +9 -0
  1042. package/dist/lifeops/service-normalize-task.d.ts.map +1 -0
  1043. package/dist/lifeops/service-normalize-task.js +567 -0
  1044. package/dist/lifeops/service-normalize-task.js.map +1 -0
  1045. package/dist/lifeops/service-normalize.d.ts +9 -0
  1046. package/dist/lifeops/service-normalize.d.ts.map +1 -0
  1047. package/dist/lifeops/service-normalize.js +53 -0
  1048. package/dist/lifeops/service-normalize.js.map +1 -0
  1049. package/dist/lifeops/service-types.d.ts +75 -0
  1050. package/dist/lifeops/service-types.d.ts.map +1 -0
  1051. package/dist/lifeops/service-types.js +5 -0
  1052. package/dist/lifeops/service-types.js.map +1 -0
  1053. package/dist/lifeops/service.d.ts +482 -0
  1054. package/dist/lifeops/service.d.ts.map +1 -0
  1055. package/dist/lifeops/service.js +62 -0
  1056. package/dist/lifeops/service.js.map +1 -0
  1057. package/dist/lifeops/signal-runtime-config.d.ts +13 -0
  1058. package/dist/lifeops/signal-runtime-config.d.ts.map +1 -0
  1059. package/dist/lifeops/signal-runtime-config.js +44 -0
  1060. package/dist/lifeops/signal-runtime-config.js.map +1 -0
  1061. package/dist/lifeops/signals/bus.d.ts +78 -0
  1062. package/dist/lifeops/signals/bus.d.ts.map +1 -0
  1063. package/dist/lifeops/signals/bus.js +117 -0
  1064. package/dist/lifeops/signals/bus.js.map +1 -0
  1065. package/dist/lifeops/sql.d.ts +65 -0
  1066. package/dist/lifeops/sql.d.ts.map +1 -0
  1067. package/dist/lifeops/sql.js +182 -0
  1068. package/dist/lifeops/sql.js.map +1 -0
  1069. package/dist/lifeops/stretch-decider.d.ts +73 -0
  1070. package/dist/lifeops/stretch-decider.d.ts.map +1 -0
  1071. package/dist/lifeops/stretch-decider.js +49 -0
  1072. package/dist/lifeops/stretch-decider.js.map +1 -0
  1073. package/dist/lifeops/telemetry-mapping.d.ts +14 -0
  1074. package/dist/lifeops/telemetry-mapping.d.ts.map +1 -0
  1075. package/dist/lifeops/telemetry-mapping.js +115 -0
  1076. package/dist/lifeops/telemetry-mapping.js.map +1 -0
  1077. package/dist/lifeops/telemetry-retention.d.ts +21 -0
  1078. package/dist/lifeops/telemetry-retention.d.ts.map +1 -0
  1079. package/dist/lifeops/telemetry-retention.js +13 -0
  1080. package/dist/lifeops/telemetry-retention.js.map +1 -0
  1081. package/dist/lifeops/time/timezone.d.ts +4 -0
  1082. package/dist/lifeops/time/timezone.d.ts.map +1 -0
  1083. package/dist/lifeops/time/timezone.js +154 -0
  1084. package/dist/lifeops/time/timezone.js.map +1 -0
  1085. package/dist/lifeops/time-util.d.ts +10 -0
  1086. package/dist/lifeops/time-util.d.ts.map +1 -0
  1087. package/dist/lifeops/time-util.js +14 -0
  1088. package/dist/lifeops/time-util.js.map +1 -0
  1089. package/dist/lifeops/time.d.ts +17 -0
  1090. package/dist/lifeops/time.d.ts.map +1 -0
  1091. package/dist/lifeops/time.js +152 -0
  1092. package/dist/lifeops/time.js.map +1 -0
  1093. package/dist/lifeops/travel-booking.types.d.ts +46 -0
  1094. package/dist/lifeops/travel-booking.types.d.ts.map +1 -0
  1095. package/dist/lifeops/travel-booking.types.js +1 -0
  1096. package/dist/lifeops/travel-booking.types.js.map +1 -0
  1097. package/dist/lifeops/triggers/schedule-once.d.ts +19 -0
  1098. package/dist/lifeops/triggers/schedule-once.d.ts.map +1 -0
  1099. package/dist/lifeops/triggers/schedule-once.js +99 -0
  1100. package/dist/lifeops/triggers/schedule-once.js.map +1 -0
  1101. package/dist/lifeops/validate/coding-task-request.d.ts +18 -0
  1102. package/dist/lifeops/validate/coding-task-request.d.ts.map +1 -0
  1103. package/dist/lifeops/validate/coding-task-request.js +16 -0
  1104. package/dist/lifeops/validate/coding-task-request.js.map +1 -0
  1105. package/dist/lifeops/voice/grounded-reply.d.ts +41 -0
  1106. package/dist/lifeops/voice/grounded-reply.d.ts.map +1 -0
  1107. package/dist/lifeops/voice/grounded-reply.js +24 -0
  1108. package/dist/lifeops/voice/grounded-reply.js.map +1 -0
  1109. package/dist/lifeops/voice-affect.d.ts +79 -0
  1110. package/dist/lifeops/voice-affect.d.ts.map +1 -0
  1111. package/dist/lifeops/voice-affect.js +253 -0
  1112. package/dist/lifeops/voice-affect.js.map +1 -0
  1113. package/dist/lifeops/wave1-types.d.ts +125 -0
  1114. package/dist/lifeops/wave1-types.d.ts.map +1 -0
  1115. package/dist/lifeops/wave1-types.js +1 -0
  1116. package/dist/lifeops/wave1-types.js.map +1 -0
  1117. package/dist/lifeops/work-threads/field-evaluator-thread-ops.d.ts +33 -0
  1118. package/dist/lifeops/work-threads/field-evaluator-thread-ops.d.ts.map +1 -0
  1119. package/dist/lifeops/work-threads/field-evaluator-thread-ops.js +226 -0
  1120. package/dist/lifeops/work-threads/field-evaluator-thread-ops.js.map +1 -0
  1121. package/dist/lifeops/work-threads/index.d.ts +3 -0
  1122. package/dist/lifeops/work-threads/index.d.ts.map +1 -0
  1123. package/dist/lifeops/work-threads/index.js +7 -0
  1124. package/dist/lifeops/work-threads/index.js.map +1 -0
  1125. package/dist/lifeops/work-threads/store.d.ts +91 -0
  1126. package/dist/lifeops/work-threads/store.d.ts.map +1 -0
  1127. package/dist/lifeops/work-threads/store.js +245 -0
  1128. package/dist/lifeops/work-threads/store.js.map +1 -0
  1129. package/dist/lifeops/work-threads/types.d.ts +58 -0
  1130. package/dist/lifeops/work-threads/types.d.ts.map +1 -0
  1131. package/dist/lifeops/work-threads/types.js +1 -0
  1132. package/dist/lifeops/work-threads/types.js.map +1 -0
  1133. package/dist/platform/host.d.ts +16 -0
  1134. package/dist/platform/host.d.ts.map +1 -0
  1135. package/dist/platform/host.js +22 -0
  1136. package/dist/platform/host.js.map +1 -0
  1137. package/dist/platform/index.d.ts +3 -0
  1138. package/dist/platform/index.d.ts.map +1 -0
  1139. package/dist/platform/index.js +3 -0
  1140. package/dist/platform/index.js.map +1 -0
  1141. package/dist/platform/lifeops-github.d.ts +15 -0
  1142. package/dist/platform/lifeops-github.d.ts.map +1 -0
  1143. package/dist/platform/lifeops-github.js +146 -0
  1144. package/dist/platform/lifeops-github.js.map +1 -0
  1145. package/dist/plugin.d.ts +106 -0
  1146. package/dist/plugin.d.ts.map +1 -0
  1147. package/dist/plugin.js +989 -0
  1148. package/dist/plugin.js.map +1 -0
  1149. package/dist/provider.d.ts +4 -0
  1150. package/dist/provider.d.ts.map +1 -0
  1151. package/dist/provider.js +108 -0
  1152. package/dist/provider.js.map +1 -0
  1153. package/dist/providers/activity-profile.d.ts +3 -0
  1154. package/dist/providers/activity-profile.d.ts.map +1 -0
  1155. package/dist/providers/activity-profile.js +140 -0
  1156. package/dist/providers/activity-profile.js.map +1 -0
  1157. package/dist/providers/cross-channel-context.d.ts +29 -0
  1158. package/dist/providers/cross-channel-context.d.ts.map +1 -0
  1159. package/dist/providers/cross-channel-context.js +206 -0
  1160. package/dist/providers/cross-channel-context.js.map +1 -0
  1161. package/dist/providers/first-run.d.ts +22 -0
  1162. package/dist/providers/first-run.d.ts.map +1 -0
  1163. package/dist/providers/first-run.js +93 -0
  1164. package/dist/providers/first-run.js.map +1 -0
  1165. package/dist/providers/health.d.ts +2 -0
  1166. package/dist/providers/health.d.ts.map +1 -0
  1167. package/dist/providers/health.js +14 -0
  1168. package/dist/providers/health.js.map +1 -0
  1169. package/dist/providers/inbox-triage.d.ts +3 -0
  1170. package/dist/providers/inbox-triage.d.ts.map +1 -0
  1171. package/dist/providers/inbox-triage.js +134 -0
  1172. package/dist/providers/inbox-triage.js.map +1 -0
  1173. package/dist/providers/lifeops.d.ts +3 -0
  1174. package/dist/providers/lifeops.d.ts.map +1 -0
  1175. package/dist/providers/lifeops.js +548 -0
  1176. package/dist/providers/lifeops.js.map +1 -0
  1177. package/dist/providers/pending-prompts.d.ts +38 -0
  1178. package/dist/providers/pending-prompts.d.ts.map +1 -0
  1179. package/dist/providers/pending-prompts.js +81 -0
  1180. package/dist/providers/pending-prompts.js.map +1 -0
  1181. package/dist/providers/recent-task-states.d.ts +52 -0
  1182. package/dist/providers/recent-task-states.d.ts.map +1 -0
  1183. package/dist/providers/recent-task-states.js +166 -0
  1184. package/dist/providers/recent-task-states.js.map +1 -0
  1185. package/dist/providers/room-policy.d.ts +16 -0
  1186. package/dist/providers/room-policy.d.ts.map +1 -0
  1187. package/dist/providers/room-policy.js +71 -0
  1188. package/dist/providers/room-policy.js.map +1 -0
  1189. package/dist/providers/work-threads.d.ts +3 -0
  1190. package/dist/providers/work-threads.d.ts.map +1 -0
  1191. package/dist/providers/work-threads.js +97 -0
  1192. package/dist/providers/work-threads.js.map +1 -0
  1193. package/dist/public.d.ts +3 -0
  1194. package/dist/public.d.ts.map +1 -0
  1195. package/dist/public.js +17 -0
  1196. package/dist/public.js.map +1 -0
  1197. package/dist/routes/cloud-features-routes.d.ts +9 -0
  1198. package/dist/routes/cloud-features-routes.d.ts.map +1 -0
  1199. package/dist/routes/cloud-features-routes.js +164 -0
  1200. package/dist/routes/cloud-features-routes.js.map +1 -0
  1201. package/dist/routes/entities.d.ts +14 -0
  1202. package/dist/routes/entities.d.ts.map +1 -0
  1203. package/dist/routes/entities.js +203 -0
  1204. package/dist/routes/entities.js.map +1 -0
  1205. package/dist/routes/lifeops-routes.d.ts +20 -0
  1206. package/dist/routes/lifeops-routes.d.ts.map +1 -0
  1207. package/dist/routes/lifeops-routes.js +2337 -0
  1208. package/dist/routes/lifeops-routes.js.map +1 -0
  1209. package/dist/routes/plugin.d.ts +9 -0
  1210. package/dist/routes/plugin.d.ts.map +1 -0
  1211. package/dist/routes/plugin.js +568 -0
  1212. package/dist/routes/plugin.js.map +1 -0
  1213. package/dist/routes/relationships.d.ts +13 -0
  1214. package/dist/routes/relationships.d.ts.map +1 -0
  1215. package/dist/routes/relationships.js +195 -0
  1216. package/dist/routes/relationships.js.map +1 -0
  1217. package/dist/routes/scheduled-tasks.d.ts +102 -0
  1218. package/dist/routes/scheduled-tasks.d.ts.map +1 -0
  1219. package/dist/routes/scheduled-tasks.js +322 -0
  1220. package/dist/routes/scheduled-tasks.js.map +1 -0
  1221. package/dist/routes/sleep-routes.d.ts +3 -0
  1222. package/dist/routes/sleep-routes.d.ts.map +1 -0
  1223. package/dist/routes/sleep-routes.js +33 -0
  1224. package/dist/routes/sleep-routes.js.map +1 -0
  1225. package/dist/routes/travel-provider-relay-routes.d.ts +2 -0
  1226. package/dist/routes/travel-provider-relay-routes.d.ts.map +1 -0
  1227. package/dist/routes/travel-provider-relay-routes.js +7 -0
  1228. package/dist/routes/travel-provider-relay-routes.js.map +1 -0
  1229. package/dist/routes/website-blocker-routes.d.ts +6 -0
  1230. package/dist/routes/website-blocker-routes.d.ts.map +1 -0
  1231. package/dist/routes/website-blocker-routes.js +218 -0
  1232. package/dist/routes/website-blocker-routes.js.map +1 -0
  1233. package/dist/security/action-confirmation.d.ts +12 -0
  1234. package/dist/security/action-confirmation.d.ts.map +1 -0
  1235. package/dist/security/action-confirmation.js +36 -0
  1236. package/dist/security/action-confirmation.js.map +1 -0
  1237. package/dist/service.d.ts +34 -0
  1238. package/dist/service.d.ts.map +1 -0
  1239. package/dist/service.js +111 -0
  1240. package/dist/service.js.map +1 -0
  1241. package/dist/travel-time/calendar-create.d.ts +17 -0
  1242. package/dist/travel-time/calendar-create.d.ts.map +1 -0
  1243. package/dist/travel-time/calendar-create.js +28 -0
  1244. package/dist/travel-time/calendar-create.js.map +1 -0
  1245. package/dist/travel-time/service.d.ts +114 -0
  1246. package/dist/travel-time/service.d.ts.map +1 -0
  1247. package/dist/travel-time/service.js +209 -0
  1248. package/dist/travel-time/service.js.map +1 -0
  1249. package/dist/types/app-blocker-settings-card.d.ts +2 -0
  1250. package/dist/types/app-blocker-settings-card.d.ts.map +1 -0
  1251. package/dist/types/app-blocker-settings-card.js +1 -0
  1252. package/dist/types/app-blocker-settings-card.js.map +1 -0
  1253. package/dist/types/briefing.d.ts +59 -0
  1254. package/dist/types/briefing.d.ts.map +1 -0
  1255. package/dist/types/briefing.js +1 -0
  1256. package/dist/types/briefing.js.map +1 -0
  1257. package/dist/types/document-request.d.ts +41 -0
  1258. package/dist/types/document-request.d.ts.map +1 -0
  1259. package/dist/types/document-request.js +1 -0
  1260. package/dist/types/document-request.js.map +1 -0
  1261. package/dist/types/index.d.ts +5 -0
  1262. package/dist/types/index.d.ts.map +1 -0
  1263. package/dist/types/index.js +1 -0
  1264. package/dist/types/index.js.map +1 -0
  1265. package/dist/types/website-blocker-settings-card.d.ts +2 -0
  1266. package/dist/types/website-blocker-settings-card.d.ts.map +1 -0
  1267. package/dist/types/website-blocker-settings-card.js +1 -0
  1268. package/dist/types/website-blocker-settings-card.js.map +1 -0
  1269. package/dist/ui.d.ts +13 -0
  1270. package/dist/ui.d.ts.map +1 -0
  1271. package/dist/ui.js +25 -0
  1272. package/dist/ui.js.map +1 -0
  1273. package/dist/utils/format-duration.d.ts +2 -0
  1274. package/dist/utils/format-duration.d.ts.map +1 -0
  1275. package/dist/utils/format-duration.js +13 -0
  1276. package/dist/utils/format-duration.js.map +1 -0
  1277. package/dist/utils/index.d.ts +3 -0
  1278. package/dist/utils/index.d.ts.map +1 -0
  1279. package/dist/utils/index.js +3 -0
  1280. package/dist/utils/index.js.map +1 -0
  1281. package/dist/utils/lifeops-url.d.ts +3 -0
  1282. package/dist/utils/lifeops-url.d.ts.map +1 -0
  1283. package/dist/utils/lifeops-url.js +28 -0
  1284. package/dist/utils/lifeops-url.js.map +1 -0
  1285. package/dist/website-blocker/chat-integration/block-activator.d.ts +32 -0
  1286. package/dist/website-blocker/chat-integration/block-activator.d.ts.map +1 -0
  1287. package/dist/website-blocker/chat-integration/block-activator.js +30 -0
  1288. package/dist/website-blocker/chat-integration/block-activator.js.map +1 -0
  1289. package/dist/website-blocker/chat-integration/block-rule-reconciler.d.ts +7 -0
  1290. package/dist/website-blocker/chat-integration/block-rule-reconciler.d.ts.map +1 -0
  1291. package/dist/website-blocker/chat-integration/block-rule-reconciler.js +115 -0
  1292. package/dist/website-blocker/chat-integration/block-rule-reconciler.js.map +1 -0
  1293. package/dist/website-blocker/chat-integration/block-rule-schema.d.ts +39 -0
  1294. package/dist/website-blocker/chat-integration/block-rule-schema.d.ts.map +1 -0
  1295. package/dist/website-blocker/chat-integration/block-rule-schema.js +133 -0
  1296. package/dist/website-blocker/chat-integration/block-rule-schema.js.map +1 -0
  1297. package/dist/website-blocker/chat-integration/block-rule-service.d.ts +21 -0
  1298. package/dist/website-blocker/chat-integration/block-rule-service.d.ts.map +1 -0
  1299. package/dist/website-blocker/chat-integration/block-rule-service.js +230 -0
  1300. package/dist/website-blocker/chat-integration/block-rule-service.js.map +1 -0
  1301. package/dist/website-blocker/chat-integration/harsh-mode-check.d.ts +13 -0
  1302. package/dist/website-blocker/chat-integration/harsh-mode-check.d.ts.map +1 -0
  1303. package/dist/website-blocker/chat-integration/harsh-mode-check.js +22 -0
  1304. package/dist/website-blocker/chat-integration/harsh-mode-check.js.map +1 -0
  1305. package/dist/website-blocker/chat-integration/index.d.ts +5 -0
  1306. package/dist/website-blocker/chat-integration/index.d.ts.map +1 -0
  1307. package/dist/website-blocker/chat-integration/index.js +26 -0
  1308. package/dist/website-blocker/chat-integration/index.js.map +1 -0
  1309. package/dist/website-blocker/proactive-block-bridge.d.ts +75 -0
  1310. package/dist/website-blocker/proactive-block-bridge.d.ts.map +1 -0
  1311. package/dist/website-blocker/proactive-block-bridge.js +154 -0
  1312. package/dist/website-blocker/proactive-block-bridge.js.map +1 -0
  1313. package/dist/website-blocker/public.d.ts +12 -0
  1314. package/dist/website-blocker/public.d.ts.map +1 -0
  1315. package/dist/website-blocker/public.js +51 -0
  1316. package/dist/website-blocker/public.js.map +1 -0
  1317. package/package.json +28 -28
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lifeops/schedule-state.ts"],"sourcesContent":["import crypto from \"node:crypto\";\nimport type {\n LifeOpsScheduleDeviceKind,\n LifeOpsScheduleMergedState,\n LifeOpsScheduleObservation,\n LifeOpsScheduleObservationOrigin,\n LifeOpsScheduleObservationSnapshot,\n LifeOpsScheduleStateScope,\n SyncLifeOpsScheduleObservationInput,\n SyncLifeOpsScheduleObservationsRequest,\n} from \"@elizaos/plugin-elizacloud/cloud/lifeops-schedule-sync-contracts\";\nimport {\n asRecord,\n type LifeOpsAwakeProbability,\n type LifeOpsCircadianState,\n type LifeOpsPersonalBaseline,\n type LifeOpsScheduleInsight,\n type LifeOpsScheduleMealInsight,\n type LifeOpsScheduleMealLabel,\n type LifeOpsScheduleRegularity,\n type LifeOpsUnclearReason,\n} from \"@elizaos/shared\";\nimport { resolveLifeOpsRelativeTime } from \"./relative-time.js\";\nimport type { LifeOpsScheduleInsightRecord } from \"./repository.js\";\nimport {\n addDaysToLocalDate,\n buildUtcDateFromLocalParts,\n getLocalDateKey,\n getZonedDateParts,\n} from \"./time.js\";\nimport { parseIsoMs, roundConfidence } from \"./time-util.js\";\n\nexport const SCHEDULE_OBSERVATION_BUCKET_MINUTES = 30;\nexport const SCHEDULE_OBSERVATION_LOOKBACK_MS = 48 * 60 * 60 * 1_000;\nexport const SCHEDULE_CLOUD_SYNC_TTL_MS = 15 * 60 * 1_000;\nexport const SCHEDULE_CLOUD_STATE_FRESH_MS = 45 * 60 * 1_000;\n\nconst OBSERVATION_TTL_MS: Record<LifeOpsCircadianState, number> = {\n awake: 4 * 60 * 60 * 1_000,\n winding_down: 3 * 60 * 60 * 1_000,\n sleeping: 8 * 60 * 60 * 1_000,\n waking: 2 * 60 * 60 * 1_000,\n napping: 2 * 60 * 60 * 1_000,\n unclear: 60 * 60 * 1_000,\n};\n\nconst STATE_RANK: Record<LifeOpsCircadianState, number> = {\n sleeping: 5,\n napping: 4,\n waking: 3,\n winding_down: 2,\n awake: 1,\n unclear: 0,\n};\n\ntype BucketMode = \"floor\" | \"ceil\" | \"nearest\";\ntype MergeObservationSnapshot = Partial<LifeOpsScheduleObservationSnapshot>;\n\nexport type ResolvedScheduleDeviceIdentity = {\n deviceId: string;\n deviceKind: LifeOpsScheduleDeviceKind;\n};\n\nfunction defaultAwakeProbability(computedAt: string): LifeOpsAwakeProbability {\n return {\n pAwake: 0,\n pAsleep: 0,\n pUnknown: 1,\n contributingSources: [],\n computedAt,\n };\n}\n\nfunction defaultScheduleRegularity(): LifeOpsScheduleRegularity {\n return {\n sri: 0,\n bedtimeStddevMin: 0,\n wakeStddevMin: 0,\n midSleepStddevMin: 0,\n regularityClass: \"insufficient_data\",\n sampleCount: 0,\n windowDays: 28,\n };\n}\n\nfunction bucketIso(\n value: string | null | undefined,\n timezone: string,\n mode: BucketMode = \"nearest\",\n): string | null {\n const parsed = parseIsoMs(value);\n if (parsed === null) {\n return null;\n }\n const date = new Date(parsed);\n const parts = getZonedDateParts(date, timezone);\n const totalMinutes = parts.hour * 60 + parts.minute;\n const bucketSize = SCHEDULE_OBSERVATION_BUCKET_MINUTES;\n const roundedMinutes =\n mode === \"floor\"\n ? Math.floor(totalMinutes / bucketSize) * bucketSize\n : mode === \"ceil\"\n ? Math.ceil(totalMinutes / bucketSize) * bucketSize\n : Math.round(totalMinutes / bucketSize) * bucketSize;\n const dayDelta = Math.floor(roundedMinutes / (24 * 60));\n const minutesOfDay = ((roundedMinutes % (24 * 60)) + 24 * 60) % (24 * 60);\n const dateOnly = addDaysToLocalDate(parts, dayDelta);\n const bucketed = buildUtcDateFromLocalParts(timezone, {\n year: dateOnly.year,\n month: dateOnly.month,\n day: dateOnly.day,\n hour: Math.floor(minutesOfDay / 60),\n minute: minutesOfDay % 60,\n second: 0,\n });\n return bucketed.toISOString();\n}\n\nfunction isAsleepState(state: LifeOpsCircadianState): boolean {\n return state === \"sleeping\" || state === \"napping\";\n}\n\nfunction snapshotUncertainty(\n state: LifeOpsCircadianState,\n reason: LifeOpsUnclearReason | null | undefined,\n): LifeOpsUnclearReason | null {\n return state === \"unclear\" ? (reason ?? \"no_signals\") : null;\n}\n\nfunction toObservationSnapshot(\n insight: LifeOpsScheduleInsight,\n): LifeOpsScheduleObservationSnapshot {\n return {\n effectiveDayKey: insight.effectiveDayKey,\n localDate: insight.localDate,\n phase: insight.circadianState,\n circadianState: insight.circadianState,\n stateConfidence: roundConfidence(insight.stateConfidence),\n uncertaintyReason: insight.uncertaintyReason,\n relativeTime: insight.relativeTime,\n awakeProbability: insight.awakeProbability,\n regularity: insight.regularity,\n baseline: insight.baseline,\n sleepStatus: insight.sleepStatus,\n isProbablySleeping: isAsleepState(insight.circadianState),\n sleepConfidence: roundConfidence(insight.sleepConfidence),\n currentSleepStartedAt: insight.currentSleepStartedAt,\n lastSleepStartedAt: insight.lastSleepStartedAt,\n lastSleepEndedAt: insight.lastSleepEndedAt,\n lastSleepDurationMinutes: insight.lastSleepDurationMinutes,\n wakeAt: insight.wakeAt,\n firstActiveAt: insight.firstActiveAt,\n lastActiveAt: insight.lastActiveAt,\n lastMealAt: insight.lastMealAt,\n nextMealLabel: insight.nextMealLabel,\n nextMealWindowStartAt: insight.nextMealWindowStartAt,\n nextMealWindowEndAt: insight.nextMealWindowEndAt,\n nextMealConfidence: roundConfidence(insight.nextMealConfidence),\n };\n}\n\nfunction bucketSnapshot(\n snapshot: LifeOpsScheduleObservationSnapshot,\n timezone: string,\n): LifeOpsScheduleObservationSnapshot {\n return {\n ...snapshot,\n stateConfidence: roundConfidence(snapshot.stateConfidence),\n relativeTime: {\n ...snapshot.relativeTime,\n confidence: roundConfidence(snapshot.relativeTime.confidence),\n },\n sleepConfidence: roundConfidence(snapshot.sleepConfidence),\n currentSleepStartedAt: bucketIso(\n snapshot.currentSleepStartedAt,\n timezone,\n \"floor\",\n ),\n lastSleepStartedAt: bucketIso(\n snapshot.lastSleepStartedAt,\n timezone,\n \"floor\",\n ),\n lastSleepEndedAt: bucketIso(snapshot.lastSleepEndedAt, timezone, \"nearest\"),\n wakeAt: bucketIso(snapshot.wakeAt, timezone, \"nearest\"),\n firstActiveAt: bucketIso(snapshot.firstActiveAt, timezone, \"nearest\"),\n lastActiveAt: bucketIso(snapshot.lastActiveAt, timezone, \"nearest\"),\n lastMealAt: bucketIso(snapshot.lastMealAt, timezone, \"nearest\"),\n nextMealWindowStartAt: bucketIso(\n snapshot.nextMealWindowStartAt,\n timezone,\n \"floor\",\n ),\n nextMealWindowEndAt: bucketIso(\n snapshot.nextMealWindowEndAt,\n timezone,\n \"ceil\",\n ),\n nextMealConfidence: roundConfidence(snapshot.nextMealConfidence),\n };\n}\n\nfunction observationMetadata(args: {\n snapshot: LifeOpsScheduleObservationSnapshot;\n source: \"schedule_insight\" | \"schedule_sync\";\n extra?: Record<string, unknown>;\n}): Record<string, unknown> {\n return {\n source: args.source,\n snapshot: args.snapshot,\n ...(args.extra ?? {}),\n };\n}\n\nfunction observationId(args: {\n agentId: string;\n origin: LifeOpsScheduleObservationOrigin;\n deviceId: string;\n circadianState: LifeOpsCircadianState;\n windowStartAt: string;\n mealLabel: LifeOpsScheduleMealLabel | null;\n}): string {\n const digest = crypto\n .createHash(\"sha1\")\n .update(\n [\n args.agentId,\n args.origin,\n args.deviceId,\n args.circadianState,\n args.windowStartAt,\n args.mealLabel ?? \"\",\n ].join(\"|\"),\n )\n .digest(\"hex\")\n .slice(0, 16);\n return `lifeops-schedule-observation:${digest}`;\n}\n\nfunction buildObservationRecord(args: {\n agentId: string;\n origin: LifeOpsScheduleObservationOrigin;\n deviceId: string;\n deviceKind: LifeOpsScheduleDeviceKind;\n timezone: string;\n observedAt: string;\n circadianState: LifeOpsCircadianState;\n stateConfidence: number;\n uncertaintyReason: LifeOpsUnclearReason | null;\n mealLabel: LifeOpsScheduleMealLabel | null;\n windowStartAt: string;\n windowEndAt: string | null;\n metadata: Record<string, unknown>;\n}): LifeOpsScheduleObservation {\n return {\n id: observationId({\n agentId: args.agentId,\n origin: args.origin,\n deviceId: args.deviceId,\n circadianState: args.circadianState,\n windowStartAt: args.windowStartAt,\n mealLabel: args.mealLabel,\n }),\n agentId: args.agentId,\n origin: args.origin,\n deviceId: args.deviceId,\n deviceKind: args.deviceKind,\n timezone: args.timezone,\n observedAt: args.observedAt,\n windowStartAt: args.windowStartAt,\n windowEndAt: args.windowEndAt,\n circadianState: args.circadianState,\n stateConfidence: roundConfidence(args.stateConfidence),\n uncertaintyReason: args.uncertaintyReason,\n mealLabel: args.mealLabel,\n metadata: args.metadata,\n createdAt: args.observedAt,\n updatedAt: args.observedAt,\n };\n}\n\nfunction normalizeDurationMinutes(\n value: number | null | undefined,\n): number | null {\n if (value === null || value === undefined || !Number.isFinite(value)) {\n return null;\n }\n return Math.max(0, Math.round(value));\n}\n\nexport function resolveScheduleDeviceIdentity(): ResolvedScheduleDeviceIdentity {\n const envDeviceId =\n process.env.ELIZA_DEVICE_ID?.trim() ?? process.env.HOSTNAME?.trim();\n const deviceId =\n envDeviceId && envDeviceId.length > 0\n ? envDeviceId\n : `${process.platform}-${crypto.createHash(\"sha1\").update(process.cwd()).digest(\"hex\").slice(0, 8)}`;\n const envDeviceKind =\n process.env.ELIZA_DEVICE_KIND?.trim().toLowerCase() ?? \"\";\n if (\n envDeviceKind === \"iphone\" ||\n envDeviceKind === \"ipad\" ||\n envDeviceKind === \"mac\" ||\n envDeviceKind === \"watch\" ||\n envDeviceKind === \"cloud\"\n ) {\n return {\n deviceId,\n deviceKind: envDeviceKind,\n };\n }\n return {\n deviceId,\n deviceKind: process.platform === \"darwin\" ? \"mac\" : \"unknown\",\n };\n}\n\nexport function deriveLocalScheduleObservations(args: {\n agentId: string;\n deviceId: string;\n deviceKind: LifeOpsScheduleDeviceKind;\n timezone: string;\n observedAt?: string;\n insight: LifeOpsScheduleInsightRecord | LifeOpsScheduleInsight;\n}): LifeOpsScheduleObservation[] {\n const observedAt = args.observedAt ?? new Date().toISOString();\n const snapshot = bucketSnapshot(\n toObservationSnapshot(args.insight),\n args.timezone,\n );\n const windowStartAt = isAsleepState(snapshot.circadianState)\n ? (snapshot.currentSleepStartedAt ??\n snapshot.lastSleepStartedAt ??\n bucketIso(observedAt, args.timezone, \"floor\"))\n : snapshot.circadianState === \"waking\"\n ? (snapshot.wakeAt ?? bucketIso(observedAt, args.timezone, \"nearest\"))\n : (snapshot.firstActiveAt ??\n snapshot.wakeAt ??\n snapshot.lastActiveAt ??\n bucketIso(observedAt, args.timezone, \"nearest\"));\n const observations: LifeOpsScheduleObservation[] = [];\n if (windowStartAt) {\n observations.push(\n buildObservationRecord({\n agentId: args.agentId,\n origin: \"local_inference\",\n deviceId: args.deviceId,\n deviceKind: args.deviceKind,\n timezone: args.timezone,\n observedAt,\n circadianState: snapshot.circadianState,\n stateConfidence: snapshot.stateConfidence,\n uncertaintyReason: snapshot.uncertaintyReason,\n mealLabel: null,\n windowStartAt,\n windowEndAt: isAsleepState(snapshot.circadianState)\n ? null\n : (snapshot.lastActiveAt ??\n bucketIso(observedAt, args.timezone, \"nearest\")),\n metadata: observationMetadata({\n snapshot,\n source: \"schedule_insight\",\n }),\n }),\n );\n }\n if (\n snapshot.nextMealLabel &&\n snapshot.nextMealWindowStartAt &&\n snapshot.nextMealConfidence >= 0.35\n ) {\n observations.push(\n buildObservationRecord({\n agentId: args.agentId,\n origin: \"local_inference\",\n deviceId: args.deviceId,\n deviceKind: args.deviceKind,\n timezone: args.timezone,\n observedAt,\n circadianState: \"awake\",\n stateConfidence: snapshot.nextMealConfidence,\n uncertaintyReason: null,\n mealLabel: snapshot.nextMealLabel,\n windowStartAt: snapshot.nextMealWindowStartAt,\n windowEndAt:\n snapshot.nextMealWindowEndAt ?? snapshot.nextMealWindowStartAt,\n metadata: observationMetadata({\n snapshot,\n source: \"schedule_insight\",\n extra: { meal: true },\n }),\n }),\n );\n }\n return observations;\n}\n\nfunction recordFromSyncInput(args: {\n agentId: string;\n timezone: string;\n observedAt: string;\n origin: LifeOpsScheduleObservationOrigin;\n deviceId: string;\n deviceKind: LifeOpsScheduleDeviceKind;\n input: SyncLifeOpsScheduleObservationInput;\n}): LifeOpsScheduleObservation {\n const snapshotSource = args.input.snapshot ?? {};\n const bucketedWindowStartAt =\n bucketIso(args.input.windowStartAt, args.timezone, \"floor\") ??\n args.input.windowStartAt;\n const bucketedWindowEndAt = bucketIso(\n args.input.windowEndAt ?? null,\n args.timezone,\n \"ceil\",\n );\n const circadianState = args.input.circadianState;\n const uncertaintyReason = snapshotUncertainty(\n circadianState,\n args.input.uncertaintyReason,\n );\n const snapshotBase = {\n effectiveDayKey:\n typeof snapshotSource.effectiveDayKey === \"string\"\n ? snapshotSource.effectiveDayKey\n : getLocalDateKey(\n getZonedDateParts(new Date(args.observedAt), args.timezone),\n ),\n localDate:\n typeof snapshotSource.localDate === \"string\"\n ? snapshotSource.localDate\n : getLocalDateKey(\n getZonedDateParts(new Date(args.observedAt), args.timezone),\n ),\n phase: circadianState,\n circadianState,\n stateConfidence: roundConfidence(\n snapshotSource.stateConfidence ?? args.input.stateConfidence,\n ),\n uncertaintyReason,\n awakeProbability:\n snapshotSource.awakeProbability ??\n defaultAwakeProbability(args.observedAt),\n regularity: snapshotSource.regularity ?? defaultScheduleRegularity(),\n baseline: snapshotSource.baseline ?? null,\n sleepStatus: snapshotSource.sleepStatus ?? \"unknown\",\n isProbablySleeping: isAsleepState(circadianState),\n sleepConfidence: roundConfidence(\n snapshotSource.sleepConfidence ?? args.input.stateConfidence,\n ),\n currentSleepStartedAt:\n bucketIso(snapshotSource.currentSleepStartedAt, args.timezone, \"floor\") ??\n (isAsleepState(circadianState)\n ? bucketIso(args.input.windowStartAt, args.timezone, \"floor\")\n : null),\n lastSleepStartedAt: bucketIso(\n snapshotSource.lastSleepStartedAt,\n args.timezone,\n \"floor\",\n ),\n lastSleepEndedAt: bucketIso(\n snapshotSource.lastSleepEndedAt,\n args.timezone,\n \"nearest\",\n ),\n lastSleepDurationMinutes: normalizeDurationMinutes(\n snapshotSource.lastSleepDurationMinutes ?? null,\n ),\n wakeAt:\n bucketIso(snapshotSource.wakeAt, args.timezone, \"nearest\") ??\n (circadianState === \"waking\"\n ? bucketIso(args.input.windowStartAt, args.timezone, \"nearest\")\n : null),\n firstActiveAt: bucketIso(\n snapshotSource.firstActiveAt,\n args.timezone,\n \"nearest\",\n ),\n lastActiveAt:\n bucketIso(snapshotSource.lastActiveAt, args.timezone, \"nearest\") ??\n (circadianState === \"awake\"\n ? bucketIso(args.input.windowStartAt, args.timezone, \"nearest\")\n : null),\n lastMealAt: bucketIso(snapshotSource.lastMealAt, args.timezone, \"nearest\"),\n nextMealLabel: snapshotSource.nextMealLabel ?? args.input.mealLabel ?? null,\n nextMealWindowStartAt:\n bucketIso(snapshotSource.nextMealWindowStartAt, args.timezone, \"floor\") ??\n (args.input.mealLabel ? bucketedWindowStartAt : null),\n nextMealWindowEndAt:\n bucketIso(snapshotSource.nextMealWindowEndAt, args.timezone, \"ceil\") ??\n (args.input.mealLabel ? bucketedWindowEndAt : null),\n nextMealConfidence: roundConfidence(\n snapshotSource.nextMealConfidence ??\n (args.input.mealLabel ? args.input.stateConfidence : 0),\n ),\n } satisfies Omit<LifeOpsScheduleObservationSnapshot, \"relativeTime\">;\n const snapshot: LifeOpsScheduleObservationSnapshot = {\n ...snapshotBase,\n relativeTime: resolveLifeOpsRelativeTime({\n nowMs: parseIsoMs(args.observedAt) ?? Date.now(),\n timezone: args.timezone,\n schedule: snapshotBase,\n }),\n };\n return buildObservationRecord({\n agentId: args.agentId,\n origin: args.origin,\n deviceId: args.deviceId,\n deviceKind: args.deviceKind,\n timezone: args.timezone,\n observedAt: args.observedAt,\n circadianState,\n stateConfidence: args.input.stateConfidence,\n uncertaintyReason,\n mealLabel: args.input.mealLabel ?? snapshot.nextMealLabel ?? null,\n windowStartAt: bucketedWindowStartAt,\n windowEndAt: bucketedWindowEndAt,\n metadata: observationMetadata({\n snapshot,\n source: \"schedule_sync\",\n extra: args.input.metadata,\n }),\n });\n}\n\nexport function recordsFromSyncRequest(args: {\n agentId: string;\n origin: LifeOpsScheduleObservationOrigin;\n request: SyncLifeOpsScheduleObservationsRequest;\n}): LifeOpsScheduleObservation[] {\n const observedAt = args.request.observedAt ?? new Date().toISOString();\n return args.request.observations.map((input) =>\n recordFromSyncInput({\n agentId: args.agentId,\n timezone: args.request.timezone,\n observedAt,\n origin: args.origin,\n deviceId: args.request.deviceId,\n deviceKind: args.request.deviceKind,\n input,\n }),\n );\n}\n\nfunction observationSnapshot(\n observation: LifeOpsScheduleObservation,\n): MergeObservationSnapshot | null {\n const metadata = asRecord(observation.metadata);\n const snapshot = asRecord(metadata?.snapshot);\n return snapshot as MergeObservationSnapshot | null;\n}\n\nfunction observationRelevant(\n observation: LifeOpsScheduleObservation,\n nowMs: number,\n): boolean {\n const observedMs = parseIsoMs(observation.observedAt);\n if (observedMs === null) {\n return false;\n }\n const ttl = OBSERVATION_TTL_MS[observation.circadianState];\n if (observedMs >= nowMs - ttl) {\n return true;\n }\n const startMs = parseIsoMs(observation.windowStartAt);\n const endMs = parseIsoMs(observation.windowEndAt);\n if (startMs === null) {\n return false;\n }\n return startMs <= nowMs && (endMs === null || endMs >= nowMs - ttl);\n}\n\nfunction latestSnapshotValue<T>(\n observations: LifeOpsScheduleObservation[],\n read: (snapshot: MergeObservationSnapshot) => T | null | undefined,\n): T | null {\n for (const observation of observations) {\n const snapshot = observationSnapshot(observation);\n const value = snapshot ? read(snapshot) : null;\n if (value !== null && value !== undefined) {\n return value;\n }\n }\n return null;\n}\n\nfunction isFutureIsoAt(\n value: string | null | undefined,\n nowMs: number,\n): boolean {\n const parsed = parseIsoMs(value);\n return parsed !== null && parsed >= nowMs;\n}\n\nfunction pickFutureSnapshotValue(\n observations: LifeOpsScheduleObservation[],\n read: (snapshot: MergeObservationSnapshot) => string | null | undefined,\n nowMs: number,\n): string | null {\n for (const observation of observations) {\n const snapshot = observationSnapshot(observation);\n const value = snapshot ? read(snapshot) : null;\n if (value && isFutureIsoAt(value, nowMs)) {\n return value;\n }\n }\n return null;\n}\n\nfunction latestRelevantObservations(\n observations: LifeOpsScheduleObservation[],\n nowMs: number,\n): LifeOpsScheduleObservation[] {\n return observations\n .filter((observation) => observationRelevant(observation, nowMs))\n .sort((left, right) => {\n const leftMs = parseIsoMs(left.observedAt) ?? 0;\n const rightMs = parseIsoMs(right.observedAt) ?? 0;\n return rightMs - leftMs;\n });\n}\n\nfunction bestObservation(\n observations: LifeOpsScheduleObservation[],\n predicate: (observation: LifeOpsScheduleObservation) => boolean,\n): LifeOpsScheduleObservation | null {\n const matches = observations.filter(predicate);\n if (matches.length === 0) {\n return null;\n }\n return (\n matches.sort((left, right) => {\n if (right.stateConfidence !== left.stateConfidence) {\n return right.stateConfidence - left.stateConfidence;\n }\n const leftMs = parseIsoMs(left.observedAt) ?? 0;\n const rightMs = parseIsoMs(right.observedAt) ?? 0;\n return rightMs - leftMs;\n })[0] ?? null\n );\n}\n\nfunction mergedMeals(\n observations: LifeOpsScheduleObservation[],\n): LifeOpsScheduleMealInsight[] {\n const meals = observations\n .filter((observation) => observation.mealLabel !== null)\n .sort((left, right) => {\n const leftMs = parseIsoMs(left.windowStartAt) ?? 0;\n const rightMs = parseIsoMs(right.windowStartAt) ?? 0;\n return leftMs - rightMs;\n })\n .map((observation) => ({\n label: observation.mealLabel as LifeOpsScheduleMealLabel,\n detectedAt: observation.windowStartAt,\n confidence: roundConfidence(observation.stateConfidence),\n source: \"expected_window\" as const,\n }));\n const unique = new Map<string, LifeOpsScheduleMealInsight>();\n for (const meal of meals) {\n const key = `${meal.label}:${meal.detectedAt}`;\n unique.set(key, meal);\n }\n return [...unique.values()];\n}\n\nfunction resolveMergedCircadianState(relevant: LifeOpsScheduleObservation[]): {\n circadianState: LifeOpsCircadianState;\n stateConfidence: number;\n uncertaintyReason: LifeOpsUnclearReason | null;\n} {\n const candidates = relevant.filter(\n (observation) => observation.circadianState !== \"unclear\",\n );\n if (candidates.length === 0) {\n const fallback = relevant[0];\n return {\n circadianState: fallback?.circadianState,\n stateConfidence: fallback?.stateConfidence,\n uncertaintyReason:\n fallback?.uncertaintyReason ??\n (relevant.length === 0 ? \"no_signals\" : \"contradictory_signals\"),\n };\n }\n const [best] = candidates.sort((left, right) => {\n const rankDelta =\n STATE_RANK[right.circadianState] - STATE_RANK[left.circadianState];\n if (rankDelta !== 0) {\n return rankDelta;\n }\n if (right.stateConfidence !== left.stateConfidence) {\n return right.stateConfidence - left.stateConfidence;\n }\n const leftMs = parseIsoMs(left.observedAt) ?? 0;\n const rightMs = parseIsoMs(right.observedAt) ?? 0;\n return rightMs - leftMs;\n });\n if (!best) {\n return {\n circadianState: \"unclear\",\n stateConfidence: 0,\n uncertaintyReason: \"no_signals\",\n };\n }\n return {\n circadianState: best.circadianState,\n stateConfidence: best.stateConfidence,\n uncertaintyReason: best.uncertaintyReason,\n };\n}\n\nexport function mergeScheduleObservations(args: {\n agentId: string;\n scope: LifeOpsScheduleStateScope;\n timezone: string;\n now?: Date;\n observations: LifeOpsScheduleObservation[];\n}): LifeOpsScheduleMergedState | null {\n const now = args.now ?? new Date();\n const nowMs = now.getTime();\n const relevant = latestRelevantObservations(args.observations, nowMs);\n if (relevant.length === 0) {\n return null;\n }\n const { circadianState, stateConfidence, uncertaintyReason } =\n resolveMergedCircadianState(relevant);\n const currentSleep = bestObservation(relevant, (observation) =>\n isAsleepState(observation.circadianState),\n );\n const recentWake = bestObservation(\n relevant,\n (observation) => observation.circadianState === \"waking\",\n );\n const mealWindow = bestObservation(\n relevant,\n (observation) => observation.mealLabel !== null,\n );\n const currentSleepStartedAt =\n latestSnapshotValue(\n relevant,\n (snapshot) => snapshot.currentSleepStartedAt,\n ) ??\n currentSleep?.windowStartAt ??\n null;\n const lastSleepStartedAt =\n latestSnapshotValue(relevant, (snapshot) => snapshot.lastSleepStartedAt) ??\n currentSleepStartedAt;\n const lastSleepEndedAt =\n latestSnapshotValue(relevant, (snapshot) => snapshot.lastSleepEndedAt) ??\n null;\n const wakeAt =\n latestSnapshotValue(relevant, (snapshot) => snapshot.wakeAt) ??\n recentWake?.windowStartAt ??\n null;\n const firstActiveAt =\n latestSnapshotValue(relevant, (snapshot) => snapshot.firstActiveAt) ??\n wakeAt;\n const lastActiveAt =\n latestSnapshotValue(relevant, (snapshot) => snapshot.lastActiveAt) ??\n bestObservation(\n relevant,\n (observation) => observation.circadianState === \"awake\",\n )?.windowStartAt ??\n null;\n const sleepStatus = isAsleepState(circadianState)\n ? \"sleeping_now\"\n : lastSleepEndedAt\n ? \"slept\"\n : stateConfidence >= 0.55\n ? \"likely_missed\"\n : \"unknown\";\n const sleepConfidence = roundConfidence(\n currentSleep?.stateConfidence ??\n latestSnapshotValue(relevant, (snapshot) => snapshot.sleepConfidence) ??\n 0,\n );\n const meals = mergedMeals(relevant);\n const lastMealAt =\n meals.length > 0 ? (meals[meals.length - 1]?.detectedAt ?? null) : null;\n const mergedAt = now.toISOString();\n const effectiveDayKey =\n latestSnapshotValue(relevant, (snapshot) => snapshot.effectiveDayKey) ??\n getLocalDateKey(getZonedDateParts(now, args.timezone));\n const localDate =\n latestSnapshotValue(relevant, (snapshot) => snapshot.localDate) ??\n getLocalDateKey(getZonedDateParts(now, args.timezone));\n const awakeProbability =\n latestSnapshotValue(relevant, (snapshot) => snapshot.awakeProbability) ??\n defaultAwakeProbability(mergedAt);\n const regularity =\n latestSnapshotValue(relevant, (snapshot) => snapshot.regularity) ??\n defaultScheduleRegularity();\n const baseline = latestSnapshotValue<LifeOpsPersonalBaseline | null>(\n relevant,\n (snapshot) => snapshot.baseline ?? null,\n );\n const relativeTime = resolveLifeOpsRelativeTime({\n nowMs,\n timezone: args.timezone,\n schedule: {\n circadianState,\n stateConfidence,\n uncertaintyReason,\n awakeProbability,\n regularity,\n baseline,\n sleepConfidence,\n currentSleepStartedAt,\n lastSleepStartedAt,\n lastSleepEndedAt,\n wakeAt,\n firstActiveAt,\n },\n });\n const mealWindowStartFromObservation =\n mealWindow && isFutureIsoAt(mealWindow.windowStartAt, nowMs)\n ? mealWindow.windowStartAt\n : null;\n const mealWindowStartFromSnapshot =\n mealWindowStartFromObservation === null\n ? pickFutureSnapshotValue(\n relevant,\n (snapshot) => snapshot.nextMealWindowStartAt,\n nowMs,\n )\n : null;\n const mealWindowSource: \"observation\" | \"snapshot\" | null =\n mealWindowStartFromObservation !== null\n ? \"observation\"\n : mealWindowStartFromSnapshot !== null\n ? \"snapshot\"\n : null;\n const nextMealWindowStartAt =\n mealWindowStartFromObservation ?? mealWindowStartFromSnapshot ?? null;\n const nextMealLabel =\n mealWindowSource === \"observation\"\n ? (mealWindow?.mealLabel ?? null)\n : mealWindowSource === \"snapshot\"\n ? (latestSnapshotValue(\n relevant,\n (snapshot) => snapshot.nextMealLabel,\n ) ?? null)\n : null;\n const nextMealWindowEndAt =\n mealWindowSource === \"observation\"\n ? (mealWindow?.windowEndAt ?? null)\n : mealWindowSource === \"snapshot\"\n ? (latestSnapshotValue(\n relevant,\n (snapshot) => snapshot.nextMealWindowEndAt,\n ) ?? null)\n : null;\n const nextMealConfidence = roundConfidence(\n mealWindowSource === \"observation\"\n ? (mealWindow?.stateConfidence ?? 0)\n : mealWindowSource === \"snapshot\"\n ? (latestSnapshotValue(\n relevant,\n (snapshot) => snapshot.nextMealConfidence,\n ) ?? 0)\n : 0,\n );\n const contributingDeviceKinds = [\n ...new Set(relevant.map((observation) => observation.deviceKind)),\n ];\n return {\n id: `lifeops-schedule-merged:${args.agentId}:${args.scope}:${args.timezone}`,\n agentId: args.agentId,\n scope: args.scope,\n mergedAt,\n effectiveDayKey,\n localDate,\n timezone: args.timezone,\n inferredAt: mergedAt,\n circadianState,\n stateConfidence: roundConfidence(stateConfidence),\n uncertaintyReason,\n relativeTime,\n awakeProbability,\n regularity,\n baseline,\n // Merged states do not preserve individual observation firings — the\n // scorer runs per-device. Inspection UIs should read the latest local\n // insight row when they need to enumerate contributing rules.\n circadianRuleFirings: [],\n sleepStatus,\n sleepConfidence,\n currentSleepStartedAt,\n lastSleepStartedAt,\n lastSleepEndedAt,\n lastSleepDurationMinutes:\n latestSnapshotValue(\n relevant,\n (snapshot) => snapshot.lastSleepDurationMinutes,\n ) ?? null,\n wakeAt,\n firstActiveAt,\n lastActiveAt,\n meals,\n lastMealAt,\n nextMealLabel,\n nextMealWindowStartAt,\n nextMealWindowEndAt,\n nextMealConfidence,\n observationCount: relevant.length,\n deviceCount: new Set(relevant.map((observation) => observation.deviceId))\n .size,\n contributingDeviceKinds,\n metadata: {\n latestObservationAt: relevant[0]?.observedAt ?? mergedAt,\n deviceIds: [\n ...new Set(relevant.map((observation) => observation.deviceId)),\n ],\n relativeTime,\n },\n createdAt: mergedAt,\n updatedAt: mergedAt,\n };\n}\n\nfunction freshnessMs(\n state: LifeOpsScheduleMergedState,\n nowMs: number,\n): number | null {\n const updatedMs = parseIsoMs(state.updatedAt);\n if (updatedMs === null) {\n return null;\n }\n return nowMs - updatedMs;\n}\n\nexport function isFreshCloudMergedState(\n state: LifeOpsScheduleMergedState | null | undefined,\n now: Date,\n): boolean {\n if (!state || state.scope !== \"cloud\") {\n return false;\n }\n const ageMs = freshnessMs(state, now.getTime());\n return ageMs !== null && ageMs <= SCHEDULE_CLOUD_STATE_FRESH_MS;\n}\n\nexport function preferEffectiveMergedState(args: {\n now: Date;\n local: LifeOpsScheduleMergedState | null;\n cloud: LifeOpsScheduleMergedState | null;\n}): LifeOpsScheduleMergedState | null {\n if (isFreshCloudMergedState(args.cloud, args.now)) {\n return args.cloud;\n }\n return args.local ?? args.cloud ?? null;\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,3 @@
1
+ import { type ResolvedLifeOpsScheduleSyncConfig } from "@elizaos/plugin-elizacloud/cloud/lifeops-schedule-sync-client";
2
+ export declare function resolveLifeOpsScheduleSyncConfigFromElizaConfig(): ResolvedLifeOpsScheduleSyncConfig;
3
+ //# sourceMappingURL=schedule-sync-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule-sync-config.d.ts","sourceRoot":"","sources":["../../src/lifeops/schedule-sync-config.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,iCAAiC,EAEvC,MAAM,+DAA+D,CAAC;AAEvE,wBAAgB,+CAA+C,IAAI,iCAAiC,CAyBnG"}
@@ -0,0 +1,23 @@
1
+ import { loadElizaConfig } from "@elizaos/agent";
2
+ import {
3
+ resolveLifeOpsScheduleSyncConfig
4
+ } from "@elizaos/plugin-elizacloud/cloud/lifeops-schedule-sync-client";
5
+ function resolveLifeOpsScheduleSyncConfigFromElizaConfig() {
6
+ try {
7
+ const config = loadElizaConfig();
8
+ const cloud = config.cloud && typeof config.cloud === "object" ? config.cloud : null;
9
+ return resolveLifeOpsScheduleSyncConfig({
10
+ remoteApiBase: cloud && typeof cloud.remoteApiBase === "string" ? cloud.remoteApiBase : null,
11
+ remoteAccessToken: cloud && typeof cloud.remoteAccessToken === "string" ? cloud.remoteAccessToken : null,
12
+ apiKey: cloud && typeof cloud.apiKey === "string" ? cloud.apiKey : null,
13
+ baseUrl: cloud && typeof cloud.baseUrl === "string" ? cloud.baseUrl : null,
14
+ agentId: cloud && typeof cloud.agentId === "string" ? cloud.agentId : null
15
+ });
16
+ } catch {
17
+ return resolveLifeOpsScheduleSyncConfig();
18
+ }
19
+ }
20
+ export {
21
+ resolveLifeOpsScheduleSyncConfigFromElizaConfig
22
+ };
23
+ //# sourceMappingURL=schedule-sync-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lifeops/schedule-sync-config.ts"],"sourcesContent":["import { loadElizaConfig } from \"@elizaos/agent\";\nimport {\n type ResolvedLifeOpsScheduleSyncConfig,\n resolveLifeOpsScheduleSyncConfig,\n} from \"@elizaos/plugin-elizacloud/cloud/lifeops-schedule-sync-client\";\n\nexport function resolveLifeOpsScheduleSyncConfigFromElizaConfig(): ResolvedLifeOpsScheduleSyncConfig {\n try {\n const config = loadElizaConfig();\n const cloud =\n config.cloud && typeof config.cloud === \"object\"\n ? (config.cloud as Record<string, unknown>)\n : null;\n return resolveLifeOpsScheduleSyncConfig({\n remoteApiBase:\n cloud && typeof cloud.remoteApiBase === \"string\"\n ? cloud.remoteApiBase\n : null,\n remoteAccessToken:\n cloud && typeof cloud.remoteAccessToken === \"string\"\n ? cloud.remoteAccessToken\n : null,\n apiKey: cloud && typeof cloud.apiKey === \"string\" ? cloud.apiKey : null,\n baseUrl:\n cloud && typeof cloud.baseUrl === \"string\" ? cloud.baseUrl : null,\n agentId:\n cloud && typeof cloud.agentId === \"string\" ? cloud.agentId : null,\n });\n } catch {\n return resolveLifeOpsScheduleSyncConfig();\n }\n}\n"],"mappings":"AAAA,SAAS,uBAAuB;AAChC;AAAA,EAEE;AAAA,OACK;AAEA,SAAS,kDAAqF;AACnG,MAAI;AACF,UAAM,SAAS,gBAAgB;AAC/B,UAAM,QACJ,OAAO,SAAS,OAAO,OAAO,UAAU,WACnC,OAAO,QACR;AACN,WAAO,iCAAiC;AAAA,MACtC,eACE,SAAS,OAAO,MAAM,kBAAkB,WACpC,MAAM,gBACN;AAAA,MACN,mBACE,SAAS,OAAO,MAAM,sBAAsB,WACxC,MAAM,oBACN;AAAA,MACN,QAAQ,SAAS,OAAO,MAAM,WAAW,WAAW,MAAM,SAAS;AAAA,MACnE,SACE,SAAS,OAAO,MAAM,YAAY,WAAW,MAAM,UAAU;AAAA,MAC/D,SACE,SAAS,OAAO,MAAM,YAAY,WAAW,MAAM,UAAU;AAAA,IACjE,CAAC;AAAA,EACH,QAAQ;AACN,WAAO,iCAAiC;AAAA,EAC1C;AACF;","names":[]}
@@ -0,0 +1,2 @@
1
+ export * from "@elizaos/plugin-elizacloud/cloud/lifeops-schedule-sync-contracts";
2
+ //# sourceMappingURL=schedule-sync-contracts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule-sync-contracts.d.ts","sourceRoot":"","sources":["../../src/lifeops/schedule-sync-contracts.ts"],"names":[],"mappings":"AAAA,cAAc,kEAAkE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "@elizaos/plugin-elizacloud/cloud/lifeops-schedule-sync-contracts";
2
+ //# sourceMappingURL=schedule-sync-contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lifeops/schedule-sync-contracts.ts"],"sourcesContent":["export * from \"@elizaos/plugin-elizacloud/cloud/lifeops-schedule-sync-contracts\";\n"],"mappings":"AAAA,cAAc;","names":[]}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * LifeOps ScheduledTask barrel.
3
+ *
4
+ * The storage-agnostic spine (types, runner, registries, due/next-fire-at math,
5
+ * anchors) now lives in `@elizaos/plugin-scheduling` and is re-exported here so
6
+ * existing PA importers keep their `./scheduled-task/index.js` path. The tick
7
+ * driver (`processDueScheduledTasks`) and the runner Service stay PA-local
8
+ * during the decomposition.
9
+ */
10
+ export * from "@elizaos/plugin-scheduling";
11
+ export { type ProcessDueScheduledTasksRequest, type ProcessDueScheduledTasksResult, processDueScheduledTasks, type ScheduledTaskProcessingError, } from "./scheduler.js";
12
+ export { type GetScheduledTaskRunnerOptions, getScheduledTaskRunner, ScheduledTaskRunnerService, } from "./service.js";
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lifeops/scheduled-task/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EACL,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EACnC,wBAAwB,EACxB,KAAK,4BAA4B,GAClC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,KAAK,6BAA6B,EAClC,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,cAAc,CAAC"}
@@ -0,0 +1,14 @@
1
+ export * from "@elizaos/plugin-scheduling";
2
+ import {
3
+ processDueScheduledTasks
4
+ } from "./scheduler.js";
5
+ import {
6
+ getScheduledTaskRunner,
7
+ ScheduledTaskRunnerService
8
+ } from "./service.js";
9
+ export {
10
+ ScheduledTaskRunnerService,
11
+ getScheduledTaskRunner,
12
+ processDueScheduledTasks
13
+ };
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lifeops/scheduled-task/index.ts"],"sourcesContent":["/**\n * LifeOps ScheduledTask barrel.\n *\n * The storage-agnostic spine (types, runner, registries, due/next-fire-at math,\n * anchors) now lives in `@elizaos/plugin-scheduling` and is re-exported here so\n * existing PA importers keep their `./scheduled-task/index.js` path. The tick\n * driver (`processDueScheduledTasks`) and the runner Service stay PA-local\n * during the decomposition.\n */\nexport * from \"@elizaos/plugin-scheduling\";\nexport {\n type ProcessDueScheduledTasksRequest,\n type ProcessDueScheduledTasksResult,\n processDueScheduledTasks,\n type ScheduledTaskProcessingError,\n} from \"./scheduler.js\";\nexport {\n type GetScheduledTaskRunnerOptions,\n getScheduledTaskRunner,\n ScheduledTaskRunnerService,\n} from \"./service.js\";\n"],"mappings":"AASA,cAAc;AACd;AAAA,EAGE;AAAA,OAEK;AACP;AAAA,EAEE;AAAA,EACA;AAAA,OACK;","names":[]}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Runtime wiring for the ScheduledTask spine.
3
+ *
4
+ * Bridges the runner's typed dependencies to the live `IAgentRuntime` /
5
+ * `LifeOpsRepository`. Diagnostic providers below stand in until callers register
6
+ * the production `OwnerFactStore`, `GlobalPauseStore`, `EntityStore`,
7
+ * `RelationshipStore`, and connector / channel registries.
8
+ */
9
+ import { type IAgentRuntime } from "@elizaos/core";
10
+ import type { ActivitySignalBusView, GlobalPauseView, OwnerFactsView, ScheduledTaskDispatcher, SubjectStoreView, TaskExecutionProfile } from "@elizaos/plugin-scheduling";
11
+ import { type ScheduledTaskRunnerHandle } from "@elizaos/plugin-scheduling";
12
+ export declare function createProductionScheduledTaskDispatcher(opts: {
13
+ runtime: IAgentRuntime;
14
+ }): ScheduledTaskDispatcher;
15
+ export interface CreateRuntimeRunnerOptions {
16
+ runtime: IAgentRuntime;
17
+ agentId: string;
18
+ /** Override the default runtime providers as agents wire up. */
19
+ ownerFacts?: () => OwnerFactsView | Promise<OwnerFactsView>;
20
+ globalPause?: GlobalPauseView;
21
+ activity?: ActivitySignalBusView;
22
+ subjectStore?: SubjectStoreView;
23
+ /**
24
+ * Override the host-capability probe. The default reads
25
+ * `getHostExecutionCapabilities(runtime)` from `@elizaos/app-core`,
26
+ * which detects iOS BackgroundRunner / Android FGS / Node desktop. Tests
27
+ * inject a fixed set to exercise substitution behavior.
28
+ */
29
+ hostCapabilities?: () => ReadonlySet<TaskExecutionProfile>;
30
+ now?: () => Date;
31
+ }
32
+ export declare function createRuntimeScheduledTaskRunner(opts: CreateRuntimeRunnerOptions): ScheduledTaskRunnerHandle;
33
+ //# sourceMappingURL=runtime-wiring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-wiring.d.ts","sourceRoot":"","sources":["../../../src/lifeops/scheduled-task/runtime-wiring.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAE,KAAK,aAAa,EAAuB,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,EACV,qBAAqB,EACrB,eAAe,EACf,cAAc,EAEd,uBAAuB,EAKvB,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAcL,KAAK,yBAAyB,EAE/B,MAAM,4BAA4B,CAAC;AA8OpC,wBAAgB,uCAAuC,CAAC,IAAI,EAAE;IAC5D,OAAO,EAAE,aAAa,CAAC;CACxB,GAAG,uBAAuB,CA8G1B;AAeD,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC5D,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,QAAQ,CAAC,EAAE,qBAAqB,CAAC;IACjC,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAC3D,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,0BAA0B,GAC/B,yBAAyB,CAyD3B"}
@@ -0,0 +1,334 @@
1
+ import crypto from "node:crypto";
2
+ import { getAgentEventService } from "@elizaos/agent";
3
+ import { getHostExecutionCapabilities } from "@elizaos/app-core/services/task-host-capabilities";
4
+ import { logger, ServiceType } from "@elizaos/core";
5
+ import {
6
+ createAnchorRegistry,
7
+ createCompletionCheckRegistry,
8
+ createConsolidationRegistry,
9
+ createEscalationLadderRegistry,
10
+ createScheduledTaskRunner,
11
+ createTaskGateRegistry,
12
+ getAnchorRegistry,
13
+ registerAnchorRegistry,
14
+ registerAppLifeOpsAnchors,
15
+ registerBuiltInCompletionChecks,
16
+ registerBuiltInGates,
17
+ registerDefaultEscalationLadders,
18
+ registerFallbackAnchors
19
+ } from "@elizaos/plugin-scheduling";
20
+ import { getChannelRegistry } from "../channels/index.js";
21
+ import { resolveDefaultTimeZone } from "../defaults.js";
22
+ import { resolveGlobalPauseStore } from "../global-pause/store.js";
23
+ import {
24
+ ownerFactsToView,
25
+ resolveOwnerFactStore
26
+ } from "../owner/fact-store.js";
27
+ import { LifeOpsRepository } from "../repository.js";
28
+ import { preferEffectiveMergedState } from "../schedule-state.js";
29
+ import { getSendPolicyRegistry } from "../send-policy/index.js";
30
+ import { getActivitySignalBus } from "../signals/bus.js";
31
+ function makeRepositoryBackedStores(runtime, agentId) {
32
+ const repo = new LifeOpsRepository(runtime);
33
+ return {
34
+ store: {
35
+ async upsert(task, options) {
36
+ await repo.upsertScheduledTask(agentId, task, {
37
+ nextFireAtIso: options?.nextFireAtIso ?? null
38
+ });
39
+ },
40
+ async claimForFire({ taskId, firedAtIso }) {
41
+ return repo.claimScheduledTaskForFire(agentId, {
42
+ taskId,
43
+ firedAtIso
44
+ });
45
+ },
46
+ async get(taskId) {
47
+ return repo.getScheduledTask(agentId, taskId);
48
+ },
49
+ async findByIdempotencyKey(key) {
50
+ return repo.getScheduledTaskByIdempotencyKey(agentId, key);
51
+ },
52
+ async list(filter) {
53
+ const status = filter?.status;
54
+ const statusList = Array.isArray(status) ? status : status ? [status] : void 0;
55
+ return repo.listScheduledTasks(agentId, {
56
+ kind: filter?.kind,
57
+ status: statusList,
58
+ subjectKind: filter?.subject?.kind,
59
+ subjectId: filter?.subject?.id,
60
+ source: filter?.source,
61
+ ownerVisibleOnly: filter?.ownerVisibleOnly
62
+ });
63
+ },
64
+ async delete(taskId) {
65
+ await repo.deleteScheduledTask(agentId, taskId);
66
+ }
67
+ },
68
+ logStore: {
69
+ async append(entry) {
70
+ await repo.appendScheduledTaskLog(entry);
71
+ },
72
+ async list(args) {
73
+ return repo.listScheduledTaskLog({
74
+ agentId,
75
+ taskId: args.taskId,
76
+ sinceIso: args.sinceIso,
77
+ untilIso: args.untilIso,
78
+ excludeRollups: args.excludeRollups,
79
+ limit: args.limit
80
+ });
81
+ },
82
+ async rollupOlderThan(args) {
83
+ return repo.rollupScheduledTaskLog({
84
+ agentId,
85
+ olderThanIso: args.olderThanIso
86
+ });
87
+ }
88
+ }
89
+ };
90
+ }
91
+ function defaultOwnerFactsProvider(runtime) {
92
+ return async () => {
93
+ const store = resolveOwnerFactStore(runtime);
94
+ const view = ownerFactsToView(await store.read());
95
+ const timezone = view.timezone ?? resolveDefaultTimeZone();
96
+ try {
97
+ const repo = new LifeOpsRepository(runtime);
98
+ const [local, cloud] = await Promise.all([
99
+ repo.getScheduleMergedState(runtime.agentId, "local", timezone),
100
+ repo.getScheduleMergedState(runtime.agentId, "cloud", timezone)
101
+ ]);
102
+ const effective = preferEffectiveMergedState({
103
+ now: /* @__PURE__ */ new Date(),
104
+ local,
105
+ cloud
106
+ });
107
+ const sampleCount = effective?.baseline?.sampleCount;
108
+ if (typeof sampleCount === "number" && Number.isFinite(sampleCount)) {
109
+ view.personalBaseline = {
110
+ sampleCount,
111
+ windowDays: effective?.baseline?.windowDays
112
+ };
113
+ }
114
+ } catch (error) {
115
+ logger.warn(
116
+ {
117
+ src: "lifeops:scheduled-task:runtime-wiring",
118
+ agentId: runtime.agentId,
119
+ error
120
+ },
121
+ "Failed to project schedule baseline sample count into owner facts; baseline-dependent gates will deny until it is available."
122
+ );
123
+ }
124
+ return view;
125
+ };
126
+ }
127
+ function makeMissingActivityBusView(runtime) {
128
+ let warned = false;
129
+ return {
130
+ hasSignalSince() {
131
+ if (!warned) {
132
+ warned = true;
133
+ logger.warn(
134
+ {
135
+ src: "lifeops:scheduled-task:runtime-wiring",
136
+ agentId: runtime.agentId
137
+ },
138
+ "ActivitySignalBus not registered; completion-checks depending on activity signals will report no-signal. Call registerActivitySignalBus during plugin init."
139
+ );
140
+ }
141
+ return false;
142
+ }
143
+ };
144
+ }
145
+ function makeMissingSubjectStoreView(runtime) {
146
+ let warned = false;
147
+ return {
148
+ wasUpdatedSince() {
149
+ if (!warned) {
150
+ warned = true;
151
+ logger.warn(
152
+ {
153
+ src: "lifeops:scheduled-task:runtime-wiring",
154
+ agentId: runtime.agentId
155
+ },
156
+ "SubjectStore not registered; subject_updated completion-checks will report no-update. Inject a SubjectStoreView via createRuntimeScheduledTaskRunner({ subjectStore })."
157
+ );
158
+ }
159
+ return false;
160
+ }
161
+ };
162
+ }
163
+ function normalizeChannelTarget(channelKey, target) {
164
+ if (!target) return void 0;
165
+ const prefix = `${channelKey}:`;
166
+ return target.startsWith(prefix) ? target.slice(prefix.length) : target;
167
+ }
168
+ function getNotifier(runtime) {
169
+ const svc = runtime.getService(
170
+ ServiceType.NOTIFICATION
171
+ );
172
+ return svc && typeof svc.notify === "function" ? svc : null;
173
+ }
174
+ function deniedDecisionToDispatchResult(decision) {
175
+ if (decision.kind === "allow") return null;
176
+ if (decision.kind === "deny") {
177
+ return decision.asDispatchResult ?? {
178
+ ok: false,
179
+ reason: "auth_expired",
180
+ userActionable: decision.userActionable,
181
+ message: decision.reason
182
+ };
183
+ }
184
+ return {
185
+ ok: false,
186
+ reason: "auth_expired",
187
+ userActionable: true,
188
+ message: decision.reason ?? "Send requires approval."
189
+ };
190
+ }
191
+ function createProductionScheduledTaskDispatcher(opts) {
192
+ return {
193
+ async dispatch(record) {
194
+ const registry = getChannelRegistry(opts.runtime);
195
+ const channel = registry?.get(record.channelKey) ?? null;
196
+ if (!channel?.send) {
197
+ if (record.channelKey === "in_app" || record.channelKey === "push" || record.output?.destination === "in_app_card") {
198
+ const eventService = getAgentEventService(opts.runtime);
199
+ eventService?.emit?.({
200
+ runId: crypto.randomUUID(),
201
+ stream: "assistant",
202
+ agentId: opts.runtime.agentId,
203
+ data: {
204
+ text: record.promptInstructions,
205
+ source: "lifeops-scheduled-task",
206
+ taskId: record.taskId,
207
+ firedAtIso: record.firedAtIso,
208
+ channelKey: record.channelKey,
209
+ target: normalizeChannelTarget(
210
+ record.channelKey,
211
+ record.output?.target
212
+ ),
213
+ ...record.intensity ? { intensity: record.intensity } : {},
214
+ ...record.contextRequest ? { contextRequest: record.contextRequest } : {}
215
+ }
216
+ });
217
+ const isUrgent = record.intensity === "urgent";
218
+ void getNotifier(opts.runtime)?.notify({
219
+ title: isUrgent ? "Approval needed" : "Reminder",
220
+ body: record.promptInstructions,
221
+ category: isUrgent ? "approval" : "reminder",
222
+ priority: isUrgent ? "urgent" : "normal",
223
+ source: "lifeops",
224
+ groupKey: `lifeops:${record.taskId}`,
225
+ deepLink: "/chat",
226
+ data: {
227
+ taskId: record.taskId,
228
+ firedAtIso: record.firedAtIso,
229
+ channelKey: record.channelKey
230
+ }
231
+ }).catch((error) => {
232
+ logger.debug(
233
+ { src: "lifeops:scheduled-task", error },
234
+ "Notification emit failed"
235
+ );
236
+ });
237
+ return {
238
+ ok: true,
239
+ messageId: `in_app:${record.taskId}:${record.firedAtIso}`
240
+ };
241
+ }
242
+ return {
243
+ ok: false,
244
+ reason: "disconnected",
245
+ userActionable: true,
246
+ message: `Channel "${record.channelKey}" is not connected for send.`
247
+ };
248
+ }
249
+ const payload = {
250
+ target: normalizeChannelTarget(
251
+ record.channelKey,
252
+ record.output?.target ?? record.channelKey
253
+ ),
254
+ message: record.promptInstructions,
255
+ metadata: {
256
+ taskId: record.taskId,
257
+ firedAtIso: record.firedAtIso,
258
+ ...record.intensity ? { intensity: record.intensity } : {},
259
+ ...record.contextRequest ? { contextRequest: record.contextRequest } : {},
260
+ ...record.consolidationBatchId ? { consolidationBatchId: record.consolidationBatchId } : {}
261
+ }
262
+ };
263
+ const sendPolicies = getSendPolicyRegistry(opts.runtime);
264
+ const policyDecision = await sendPolicies?.evaluate({
265
+ source: { kind: "channel", key: record.channelKey },
266
+ capability: "send",
267
+ payload,
268
+ taskId: record.taskId
269
+ });
270
+ if (policyDecision) {
271
+ const denied = deniedDecisionToDispatchResult(policyDecision);
272
+ if (denied) return denied;
273
+ }
274
+ return channel.send(payload);
275
+ }
276
+ };
277
+ }
278
+ function resolveRuntimeAnchorRegistry(runtime) {
279
+ const existing = getAnchorRegistry(runtime);
280
+ if (existing) {
281
+ registerFallbackAnchors(existing);
282
+ return existing;
283
+ }
284
+ const registry = createAnchorRegistry();
285
+ registerAppLifeOpsAnchors(registry);
286
+ registerFallbackAnchors(registry);
287
+ registerAnchorRegistry(runtime, registry);
288
+ return registry;
289
+ }
290
+ function createRuntimeScheduledTaskRunner(opts) {
291
+ const stores = makeRepositoryBackedStores(opts.runtime, opts.agentId);
292
+ const gates = createTaskGateRegistry();
293
+ registerBuiltInGates(gates);
294
+ const completionChecks = createCompletionCheckRegistry();
295
+ registerBuiltInCompletionChecks(completionChecks);
296
+ const ladders = createEscalationLadderRegistry();
297
+ registerDefaultEscalationLadders(ladders);
298
+ const anchors = resolveRuntimeAnchorRegistry(opts.runtime);
299
+ const consolidation = createConsolidationRegistry();
300
+ const globalPause = opts.globalPause ?? resolveGlobalPauseStore(opts.runtime);
301
+ const activity = opts.activity ?? getActivitySignalBus(opts.runtime) ?? makeMissingActivityBusView(opts.runtime);
302
+ const subjectStore = opts.subjectStore ?? makeMissingSubjectStoreView(opts.runtime);
303
+ return createScheduledTaskRunner({
304
+ agentId: opts.agentId,
305
+ store: stores.store,
306
+ logStore: stores.logStore,
307
+ gates,
308
+ completionChecks,
309
+ ladders,
310
+ anchors,
311
+ consolidation,
312
+ ownerFacts: opts.ownerFacts ?? defaultOwnerFactsProvider(opts.runtime),
313
+ globalPause,
314
+ activity,
315
+ subjectStore,
316
+ now: opts.now,
317
+ channelKeys: () => {
318
+ const registry = getChannelRegistry(opts.runtime);
319
+ if (!registry) return /* @__PURE__ */ new Set();
320
+ return new Set(registry.list().map((c) => c.kind));
321
+ },
322
+ hostCapabilities: opts.hostCapabilities ?? (() => getHostExecutionCapabilities(
323
+ opts.runtime
324
+ )),
325
+ dispatcher: createProductionScheduledTaskDispatcher({
326
+ runtime: opts.runtime
327
+ })
328
+ });
329
+ }
330
+ export {
331
+ createProductionScheduledTaskDispatcher,
332
+ createRuntimeScheduledTaskRunner
333
+ };
334
+ //# sourceMappingURL=runtime-wiring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lifeops/scheduled-task/runtime-wiring.ts"],"sourcesContent":["/**\n * Runtime wiring for the ScheduledTask spine.\n *\n * Bridges the runner's typed dependencies to the live `IAgentRuntime` /\n * `LifeOpsRepository`. Diagnostic providers below stand in until callers register\n * the production `OwnerFactStore`, `GlobalPauseStore`, `EntityStore`,\n * `RelationshipStore`, and connector / channel registries.\n */\n\nimport crypto from \"node:crypto\";\nimport { getAgentEventService } from \"@elizaos/agent\";\nimport { getHostExecutionCapabilities } from \"@elizaos/app-core/services/task-host-capabilities\";\nimport { type IAgentRuntime, logger, ServiceType } from \"@elizaos/core\";\nimport type {\n ActivitySignalBusView,\n GlobalPauseView,\n OwnerFactsView,\n ScheduledTask,\n ScheduledTaskDispatcher,\n ScheduledTaskDispatchRecord,\n ScheduledTaskFilter,\n ScheduledTaskLogEntry,\n ScheduledTaskLogStore,\n SubjectStoreView,\n TaskExecutionProfile,\n} from \"@elizaos/plugin-scheduling\";\nimport {\n createAnchorRegistry,\n createCompletionCheckRegistry,\n createConsolidationRegistry,\n createEscalationLadderRegistry,\n createScheduledTaskRunner,\n createTaskGateRegistry,\n getAnchorRegistry,\n registerAnchorRegistry,\n registerAppLifeOpsAnchors,\n registerBuiltInCompletionChecks,\n registerBuiltInGates,\n registerDefaultEscalationLadders,\n registerFallbackAnchors,\n type ScheduledTaskRunnerHandle,\n type ScheduledTaskStore,\n} from \"@elizaos/plugin-scheduling\";\nimport { getChannelRegistry } from \"../channels/index.js\";\nimport type { DispatchResult } from \"../connectors/contract.js\";\nimport { resolveDefaultTimeZone } from \"../defaults.js\";\nimport { resolveGlobalPauseStore } from \"../global-pause/store.js\";\nimport {\n ownerFactsToView,\n resolveOwnerFactStore,\n} from \"../owner/fact-store.js\";\nimport { LifeOpsRepository } from \"../repository.js\";\nimport { preferEffectiveMergedState } from \"../schedule-state.js\";\nimport { getSendPolicyRegistry } from \"../send-policy/index.js\";\nimport { getActivitySignalBus } from \"../signals/bus.js\";\n\ninterface RepositoryBackedStores {\n store: ScheduledTaskStore;\n logStore: ScheduledTaskLogStore;\n}\n\n/**\n * Bind the in-memory facade to the LifeOpsRepository SQL methods. Each\n * call routes through the repository so the runner is DB-backed but\n * agnostic about the storage shape.\n */\nfunction makeRepositoryBackedStores(\n runtime: IAgentRuntime,\n agentId: string,\n): RepositoryBackedStores {\n const repo = new LifeOpsRepository(runtime);\n return {\n store: {\n async upsert(task: ScheduledTask, options) {\n await repo.upsertScheduledTask(agentId, task, {\n nextFireAtIso: options?.nextFireAtIso ?? null,\n });\n },\n async claimForFire({ taskId, firedAtIso }) {\n return repo.claimScheduledTaskForFire(agentId, {\n taskId,\n firedAtIso,\n });\n },\n async get(taskId: string) {\n return repo.getScheduledTask(agentId, taskId);\n },\n async findByIdempotencyKey(key: string) {\n return repo.getScheduledTaskByIdempotencyKey(agentId, key);\n },\n async list(filter?: ScheduledTaskFilter) {\n const status = filter?.status;\n const statusList = Array.isArray(status)\n ? status\n : status\n ? [status]\n : undefined;\n return repo.listScheduledTasks(agentId, {\n kind: filter?.kind,\n status: statusList,\n subjectKind: filter?.subject?.kind,\n subjectId: filter?.subject?.id,\n source: filter?.source,\n ownerVisibleOnly: filter?.ownerVisibleOnly,\n });\n },\n async delete(taskId: string) {\n await repo.deleteScheduledTask(agentId, taskId);\n },\n },\n logStore: {\n async append(entry: ScheduledTaskLogEntry) {\n await repo.appendScheduledTaskLog(entry);\n },\n async list(args) {\n return repo.listScheduledTaskLog({\n agentId,\n taskId: args.taskId,\n sinceIso: args.sinceIso,\n untilIso: args.untilIso,\n excludeRollups: args.excludeRollups,\n limit: args.limit,\n });\n },\n async rollupOlderThan(args) {\n return repo.rollupScheduledTaskLog({\n agentId,\n olderThanIso: args.olderThanIso,\n });\n },\n },\n };\n}\n\nfunction defaultOwnerFactsProvider(\n runtime: IAgentRuntime,\n): () => Promise<OwnerFactsView> {\n return async () => {\n const store = resolveOwnerFactStore(runtime);\n const view = ownerFactsToView(await store.read());\n const timezone = view.timezone ?? resolveDefaultTimeZone();\n try {\n const repo = new LifeOpsRepository(runtime);\n const [local, cloud] = await Promise.all([\n repo.getScheduleMergedState(runtime.agentId, \"local\", timezone),\n repo.getScheduleMergedState(runtime.agentId, \"cloud\", timezone),\n ]);\n const effective = preferEffectiveMergedState({\n now: new Date(),\n local,\n cloud,\n });\n const sampleCount = effective?.baseline?.sampleCount;\n if (typeof sampleCount === \"number\" && Number.isFinite(sampleCount)) {\n view.personalBaseline = {\n sampleCount,\n windowDays: effective?.baseline?.windowDays,\n };\n }\n } catch (error) {\n logger.warn(\n {\n src: \"lifeops:scheduled-task:runtime-wiring\",\n agentId: runtime.agentId,\n error,\n },\n \"Failed to project schedule baseline sample count into owner facts; baseline-dependent gates will deny until it is available.\",\n );\n }\n return view;\n };\n}\n\n/**\n * Diagnostic stand-in for `ActivitySignalBusView` when no bus was registered\n * for this runtime. Logs once per runner construction so the missing wiring\n * is visible at boot; completion-checks depending on signals will return\n * `false` (their honest \"no signal observed\" state) but the operator sees\n * the warning and can wire `registerActivitySignalBus` in plugin init.\n */\nfunction makeMissingActivityBusView(\n runtime: IAgentRuntime,\n): ActivitySignalBusView {\n let warned = false;\n return {\n hasSignalSince() {\n if (!warned) {\n warned = true;\n logger.warn(\n {\n src: \"lifeops:scheduled-task:runtime-wiring\",\n agentId: runtime.agentId,\n },\n \"ActivitySignalBus not registered; completion-checks depending on activity signals will report no-signal. Call registerActivitySignalBus during plugin init.\",\n );\n }\n return false;\n },\n };\n}\n\n/**\n * Diagnostic stand-in for `SubjectStoreView` when no store was injected.\n * Same warn-once semantics as the activity-bus shim; `subject_updated`\n * completion-checks will report no-update until a real store is wired.\n */\nfunction makeMissingSubjectStoreView(runtime: IAgentRuntime): SubjectStoreView {\n let warned = false;\n return {\n wasUpdatedSince() {\n if (!warned) {\n warned = true;\n logger.warn(\n {\n src: \"lifeops:scheduled-task:runtime-wiring\",\n agentId: runtime.agentId,\n },\n \"SubjectStore not registered; subject_updated completion-checks will report no-update. Inject a SubjectStoreView via createRuntimeScheduledTaskRunner({ subjectStore }).\",\n );\n }\n return false;\n },\n };\n}\n\nfunction normalizeChannelTarget(\n channelKey: string,\n target: string | undefined,\n): string | undefined {\n if (!target) return undefined;\n const prefix = `${channelKey}:`;\n return target.startsWith(prefix) ? target.slice(prefix.length) : target;\n}\n\ninterface NotificationEmitter {\n notify: (input: {\n title: string;\n body?: string;\n category?: string;\n priority?: string;\n source?: string;\n deepLink?: string;\n groupKey?: string;\n data?: Record<string, unknown>;\n }) => Promise<unknown>;\n}\n\nfunction getNotifier(runtime: IAgentRuntime): NotificationEmitter | null {\n const svc = runtime.getService(\n ServiceType.NOTIFICATION,\n ) as NotificationEmitter | null;\n return svc && typeof svc.notify === \"function\" ? svc : null;\n}\n\nfunction deniedDecisionToDispatchResult(\n decision: Awaited<\n ReturnType<\n NonNullable<ReturnType<typeof getSendPolicyRegistry>>[\"evaluate\"]\n >\n >,\n): DispatchResult | null {\n if (decision.kind === \"allow\") return null;\n if (decision.kind === \"deny\") {\n return (\n decision.asDispatchResult ?? {\n ok: false,\n reason: \"auth_expired\",\n userActionable: decision.userActionable,\n message: decision.reason,\n }\n );\n }\n return {\n ok: false,\n reason: \"auth_expired\",\n userActionable: true,\n message: decision.reason ?? \"Send requires approval.\",\n };\n}\n\nexport function createProductionScheduledTaskDispatcher(opts: {\n runtime: IAgentRuntime;\n}): ScheduledTaskDispatcher {\n return {\n async dispatch(\n record: ScheduledTaskDispatchRecord,\n ): Promise<DispatchResult> {\n const registry = getChannelRegistry(opts.runtime);\n const channel = registry?.get(record.channelKey) ?? null;\n if (!channel?.send) {\n if (\n record.channelKey === \"in_app\" ||\n record.channelKey === \"push\" ||\n record.output?.destination === \"in_app_card\"\n ) {\n const eventService = getAgentEventService(opts.runtime) as {\n emit?: (event: {\n runId: string;\n stream: string;\n data: Record<string, unknown>;\n agentId?: string;\n }) => void;\n } | null;\n eventService?.emit?.({\n runId: crypto.randomUUID(),\n stream: \"assistant\",\n agentId: opts.runtime.agentId,\n data: {\n text: record.promptInstructions,\n source: \"lifeops-scheduled-task\",\n taskId: record.taskId,\n firedAtIso: record.firedAtIso,\n channelKey: record.channelKey,\n target: normalizeChannelTarget(\n record.channelKey,\n record.output?.target,\n ),\n ...(record.intensity ? { intensity: record.intensity } : {}),\n ...(record.contextRequest\n ? { contextRequest: record.contextRequest }\n : {}),\n },\n });\n const isUrgent = record.intensity === \"urgent\";\n void getNotifier(opts.runtime)\n ?.notify({\n title: isUrgent ? \"Approval needed\" : \"Reminder\",\n body: record.promptInstructions,\n category: isUrgent ? \"approval\" : \"reminder\",\n priority: isUrgent ? \"urgent\" : \"normal\",\n source: \"lifeops\",\n groupKey: `lifeops:${record.taskId}`,\n deepLink: \"/chat\",\n data: {\n taskId: record.taskId,\n firedAtIso: record.firedAtIso,\n channelKey: record.channelKey,\n },\n })\n .catch((error: unknown) => {\n logger.debug(\n { src: \"lifeops:scheduled-task\", error },\n \"Notification emit failed\",\n );\n });\n return {\n ok: true,\n messageId: `in_app:${record.taskId}:${record.firedAtIso}`,\n };\n }\n return {\n ok: false,\n reason: \"disconnected\",\n userActionable: true,\n message: `Channel \"${record.channelKey}\" is not connected for send.`,\n };\n }\n\n const payload = {\n target: normalizeChannelTarget(\n record.channelKey,\n record.output?.target ?? record.channelKey,\n ),\n message: record.promptInstructions,\n metadata: {\n taskId: record.taskId,\n firedAtIso: record.firedAtIso,\n ...(record.intensity ? { intensity: record.intensity } : {}),\n ...(record.contextRequest\n ? { contextRequest: record.contextRequest }\n : {}),\n ...(record.consolidationBatchId\n ? { consolidationBatchId: record.consolidationBatchId }\n : {}),\n },\n };\n\n const sendPolicies = getSendPolicyRegistry(opts.runtime);\n const policyDecision = await sendPolicies?.evaluate({\n source: { kind: \"channel\", key: record.channelKey },\n capability: \"send\",\n payload,\n taskId: record.taskId,\n });\n if (policyDecision) {\n const denied = deniedDecisionToDispatchResult(policyDecision);\n if (denied) return denied;\n }\n\n return channel.send(payload);\n },\n };\n}\n\nfunction resolveRuntimeAnchorRegistry(runtime: IAgentRuntime) {\n const existing = getAnchorRegistry(runtime);\n if (existing) {\n registerFallbackAnchors(existing);\n return existing;\n }\n const registry = createAnchorRegistry();\n registerAppLifeOpsAnchors(registry);\n registerFallbackAnchors(registry);\n registerAnchorRegistry(runtime, registry);\n return registry;\n}\n\nexport interface CreateRuntimeRunnerOptions {\n runtime: IAgentRuntime;\n agentId: string;\n /** Override the default runtime providers as agents wire up. */\n ownerFacts?: () => OwnerFactsView | Promise<OwnerFactsView>;\n globalPause?: GlobalPauseView;\n activity?: ActivitySignalBusView;\n subjectStore?: SubjectStoreView;\n /**\n * Override the host-capability probe. The default reads\n * `getHostExecutionCapabilities(runtime)` from `@elizaos/app-core`,\n * which detects iOS BackgroundRunner / Android FGS / Node desktop. Tests\n * inject a fixed set to exercise substitution behavior.\n */\n hostCapabilities?: () => ReadonlySet<TaskExecutionProfile>;\n now?: () => Date;\n}\n\nexport function createRuntimeScheduledTaskRunner(\n opts: CreateRuntimeRunnerOptions,\n): ScheduledTaskRunnerHandle {\n const stores = makeRepositoryBackedStores(opts.runtime, opts.agentId);\n\n const gates = createTaskGateRegistry();\n registerBuiltInGates(gates);\n\n const completionChecks = createCompletionCheckRegistry();\n registerBuiltInCompletionChecks(completionChecks);\n\n const ladders = createEscalationLadderRegistry();\n registerDefaultEscalationLadders(ladders);\n\n const anchors = resolveRuntimeAnchorRegistry(opts.runtime);\n\n const consolidation = createConsolidationRegistry();\n\n // Default the production providers from the runtime. Tests / harnesses can\n // still inject overrides via the options bag. The diagnostic shims warn-once\n // on missing wiring so silent always-allow / always-false defaults are gone.\n const globalPause: GlobalPauseView =\n opts.globalPause ?? resolveGlobalPauseStore(opts.runtime);\n const activity: ActivitySignalBusView =\n opts.activity ??\n getActivitySignalBus(opts.runtime) ??\n makeMissingActivityBusView(opts.runtime);\n const subjectStore: SubjectStoreView =\n opts.subjectStore ?? makeMissingSubjectStoreView(opts.runtime);\n\n return createScheduledTaskRunner({\n agentId: opts.agentId,\n store: stores.store,\n logStore: stores.logStore,\n gates,\n completionChecks,\n ladders,\n anchors,\n consolidation,\n ownerFacts: opts.ownerFacts ?? defaultOwnerFactsProvider(opts.runtime),\n globalPause,\n activity,\n subjectStore,\n now: opts.now,\n channelKeys: () => {\n const registry = getChannelRegistry(opts.runtime);\n if (!registry) return new Set();\n return new Set(registry.list().map((c) => c.kind));\n },\n hostCapabilities:\n opts.hostCapabilities ??\n (() =>\n getHostExecutionCapabilities(\n opts.runtime,\n ) as ReadonlySet<TaskExecutionProfile>),\n dispatcher: createProductionScheduledTaskDispatcher({\n runtime: opts.runtime,\n }),\n });\n}\n"],"mappings":"AASA,OAAO,YAAY;AACnB,SAAS,4BAA4B;AACrC,SAAS,oCAAoC;AAC7C,SAA6B,QAAQ,mBAAmB;AAcxD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAGK;AACP,SAAS,0BAA0B;AAEnC,SAAS,8BAA8B;AACvC,SAAS,+BAA+B;AACxC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,yBAAyB;AAClC,SAAS,kCAAkC;AAC3C,SAAS,6BAA6B;AACtC,SAAS,4BAA4B;AAYrC,SAAS,2BACP,SACA,SACwB;AACxB,QAAM,OAAO,IAAI,kBAAkB,OAAO;AAC1C,SAAO;AAAA,IACL,OAAO;AAAA,MACL,MAAM,OAAO,MAAqB,SAAS;AACzC,cAAM,KAAK,oBAAoB,SAAS,MAAM;AAAA,UAC5C,eAAe,SAAS,iBAAiB;AAAA,QAC3C,CAAC;AAAA,MACH;AAAA,MACA,MAAM,aAAa,EAAE,QAAQ,WAAW,GAAG;AACzC,eAAO,KAAK,0BAA0B,SAAS;AAAA,UAC7C;AAAA,UACA;AAAA,QACF,CAAC;AAAA,MACH;AAAA,MACA,MAAM,IAAI,QAAgB;AACxB,eAAO,KAAK,iBAAiB,SAAS,MAAM;AAAA,MAC9C;AAAA,MACA,MAAM,qBAAqB,KAAa;AACtC,eAAO,KAAK,iCAAiC,SAAS,GAAG;AAAA,MAC3D;AAAA,MACA,MAAM,KAAK,QAA8B;AACvC,cAAM,SAAS,QAAQ;AACvB,cAAM,aAAa,MAAM,QAAQ,MAAM,IACnC,SACA,SACE,CAAC,MAAM,IACP;AACN,eAAO,KAAK,mBAAmB,SAAS;AAAA,UACtC,MAAM,QAAQ;AAAA,UACd,QAAQ;AAAA,UACR,aAAa,QAAQ,SAAS;AAAA,UAC9B,WAAW,QAAQ,SAAS;AAAA,UAC5B,QAAQ,QAAQ;AAAA,UAChB,kBAAkB,QAAQ;AAAA,QAC5B,CAAC;AAAA,MACH;AAAA,MACA,MAAM,OAAO,QAAgB;AAC3B,cAAM,KAAK,oBAAoB,SAAS,MAAM;AAAA,MAChD;AAAA,IACF;AAAA,IACA,UAAU;AAAA,MACR,MAAM,OAAO,OAA8B;AACzC,cAAM,KAAK,uBAAuB,KAAK;AAAA,MACzC;AAAA,MACA,MAAM,KAAK,MAAM;AACf,eAAO,KAAK,qBAAqB;AAAA,UAC/B;AAAA,UACA,QAAQ,KAAK;AAAA,UACb,UAAU,KAAK;AAAA,UACf,UAAU,KAAK;AAAA,UACf,gBAAgB,KAAK;AAAA,UACrB,OAAO,KAAK;AAAA,QACd,CAAC;AAAA,MACH;AAAA,MACA,MAAM,gBAAgB,MAAM;AAC1B,eAAO,KAAK,uBAAuB;AAAA,UACjC;AAAA,UACA,cAAc,KAAK;AAAA,QACrB,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,0BACP,SAC+B;AAC/B,SAAO,YAAY;AACjB,UAAM,QAAQ,sBAAsB,OAAO;AAC3C,UAAM,OAAO,iBAAiB,MAAM,MAAM,KAAK,CAAC;AAChD,UAAM,WAAW,KAAK,YAAY,uBAAuB;AACzD,QAAI;AACF,YAAM,OAAO,IAAI,kBAAkB,OAAO;AAC1C,YAAM,CAAC,OAAO,KAAK,IAAI,MAAM,QAAQ,IAAI;AAAA,QACvC,KAAK,uBAAuB,QAAQ,SAAS,SAAS,QAAQ;AAAA,QAC9D,KAAK,uBAAuB,QAAQ,SAAS,SAAS,QAAQ;AAAA,MAChE,CAAC;AACD,YAAM,YAAY,2BAA2B;AAAA,QAC3C,KAAK,oBAAI,KAAK;AAAA,QACd;AAAA,QACA;AAAA,MACF,CAAC;AACD,YAAM,cAAc,WAAW,UAAU;AACzC,UAAI,OAAO,gBAAgB,YAAY,OAAO,SAAS,WAAW,GAAG;AACnE,aAAK,mBAAmB;AAAA,UACtB;AAAA,UACA,YAAY,WAAW,UAAU;AAAA,QACnC;AAAA,MACF;AAAA,IACF,SAAS,OAAO;AACd,aAAO;AAAA,QACL;AAAA,UACE,KAAK;AAAA,UACL,SAAS,QAAQ;AAAA,UACjB;AAAA,QACF;AAAA,QACA;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACF;AASA,SAAS,2BACP,SACuB;AACvB,MAAI,SAAS;AACb,SAAO;AAAA,IACL,iBAAiB;AACf,UAAI,CAAC,QAAQ;AACX,iBAAS;AACT,eAAO;AAAA,UACL;AAAA,YACE,KAAK;AAAA,YACL,SAAS,QAAQ;AAAA,UACnB;AAAA,UACA;AAAA,QACF;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAOA,SAAS,4BAA4B,SAA0C;AAC7E,MAAI,SAAS;AACb,SAAO;AAAA,IACL,kBAAkB;AAChB,UAAI,CAAC,QAAQ;AACX,iBAAS;AACT,eAAO;AAAA,UACL;AAAA,YACE,KAAK;AAAA,YACL,SAAS,QAAQ;AAAA,UACnB;AAAA,UACA;AAAA,QACF;AAAA,MACF;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEA,SAAS,uBACP,YACA,QACoB;AACpB,MAAI,CAAC,OAAQ,QAAO;AACpB,QAAM,SAAS,GAAG,UAAU;AAC5B,SAAO,OAAO,WAAW,MAAM,IAAI,OAAO,MAAM,OAAO,MAAM,IAAI;AACnE;AAeA,SAAS,YAAY,SAAoD;AACvE,QAAM,MAAM,QAAQ;AAAA,IAClB,YAAY;AAAA,EACd;AACA,SAAO,OAAO,OAAO,IAAI,WAAW,aAAa,MAAM;AACzD;AAEA,SAAS,+BACP,UAKuB;AACvB,MAAI,SAAS,SAAS,QAAS,QAAO;AACtC,MAAI,SAAS,SAAS,QAAQ;AAC5B,WACE,SAAS,oBAAoB;AAAA,MAC3B,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,gBAAgB,SAAS;AAAA,MACzB,SAAS,SAAS;AAAA,IACpB;AAAA,EAEJ;AACA,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,QAAQ;AAAA,IACR,gBAAgB;AAAA,IAChB,SAAS,SAAS,UAAU;AAAA,EAC9B;AACF;AAEO,SAAS,wCAAwC,MAE5B;AAC1B,SAAO;AAAA,IACL,MAAM,SACJ,QACyB;AACzB,YAAM,WAAW,mBAAmB,KAAK,OAAO;AAChD,YAAM,UAAU,UAAU,IAAI,OAAO,UAAU,KAAK;AACpD,UAAI,CAAC,SAAS,MAAM;AAClB,YACE,OAAO,eAAe,YACtB,OAAO,eAAe,UACtB,OAAO,QAAQ,gBAAgB,eAC/B;AACA,gBAAM,eAAe,qBAAqB,KAAK,OAAO;AAQtD,wBAAc,OAAO;AAAA,YACnB,OAAO,OAAO,WAAW;AAAA,YACzB,QAAQ;AAAA,YACR,SAAS,KAAK,QAAQ;AAAA,YACtB,MAAM;AAAA,cACJ,MAAM,OAAO;AAAA,cACb,QAAQ;AAAA,cACR,QAAQ,OAAO;AAAA,cACf,YAAY,OAAO;AAAA,cACnB,YAAY,OAAO;AAAA,cACnB,QAAQ;AAAA,gBACN,OAAO;AAAA,gBACP,OAAO,QAAQ;AAAA,cACjB;AAAA,cACA,GAAI,OAAO,YAAY,EAAE,WAAW,OAAO,UAAU,IAAI,CAAC;AAAA,cAC1D,GAAI,OAAO,iBACP,EAAE,gBAAgB,OAAO,eAAe,IACxC,CAAC;AAAA,YACP;AAAA,UACF,CAAC;AACD,gBAAM,WAAW,OAAO,cAAc;AACtC,eAAK,YAAY,KAAK,OAAO,GACzB,OAAO;AAAA,YACP,OAAO,WAAW,oBAAoB;AAAA,YACtC,MAAM,OAAO;AAAA,YACb,UAAU,WAAW,aAAa;AAAA,YAClC,UAAU,WAAW,WAAW;AAAA,YAChC,QAAQ;AAAA,YACR,UAAU,WAAW,OAAO,MAAM;AAAA,YAClC,UAAU;AAAA,YACV,MAAM;AAAA,cACJ,QAAQ,OAAO;AAAA,cACf,YAAY,OAAO;AAAA,cACnB,YAAY,OAAO;AAAA,YACrB;AAAA,UACF,CAAC,EACA,MAAM,CAAC,UAAmB;AACzB,mBAAO;AAAA,cACL,EAAE,KAAK,0BAA0B,MAAM;AAAA,cACvC;AAAA,YACF;AAAA,UACF,CAAC;AACH,iBAAO;AAAA,YACL,IAAI;AAAA,YACJ,WAAW,UAAU,OAAO,MAAM,IAAI,OAAO,UAAU;AAAA,UACzD;AAAA,QACF;AACA,eAAO;AAAA,UACL,IAAI;AAAA,UACJ,QAAQ;AAAA,UACR,gBAAgB;AAAA,UAChB,SAAS,YAAY,OAAO,UAAU;AAAA,QACxC;AAAA,MACF;AAEA,YAAM,UAAU;AAAA,QACd,QAAQ;AAAA,UACN,OAAO;AAAA,UACP,OAAO,QAAQ,UAAU,OAAO;AAAA,QAClC;AAAA,QACA,SAAS,OAAO;AAAA,QAChB,UAAU;AAAA,UACR,QAAQ,OAAO;AAAA,UACf,YAAY,OAAO;AAAA,UACnB,GAAI,OAAO,YAAY,EAAE,WAAW,OAAO,UAAU,IAAI,CAAC;AAAA,UAC1D,GAAI,OAAO,iBACP,EAAE,gBAAgB,OAAO,eAAe,IACxC,CAAC;AAAA,UACL,GAAI,OAAO,uBACP,EAAE,sBAAsB,OAAO,qBAAqB,IACpD,CAAC;AAAA,QACP;AAAA,MACF;AAEA,YAAM,eAAe,sBAAsB,KAAK,OAAO;AACvD,YAAM,iBAAiB,MAAM,cAAc,SAAS;AAAA,QAClD,QAAQ,EAAE,MAAM,WAAW,KAAK,OAAO,WAAW;AAAA,QAClD,YAAY;AAAA,QACZ;AAAA,QACA,QAAQ,OAAO;AAAA,MACjB,CAAC;AACD,UAAI,gBAAgB;AAClB,cAAM,SAAS,+BAA+B,cAAc;AAC5D,YAAI,OAAQ,QAAO;AAAA,MACrB;AAEA,aAAO,QAAQ,KAAK,OAAO;AAAA,IAC7B;AAAA,EACF;AACF;AAEA,SAAS,6BAA6B,SAAwB;AAC5D,QAAM,WAAW,kBAAkB,OAAO;AAC1C,MAAI,UAAU;AACZ,4BAAwB,QAAQ;AAChC,WAAO;AAAA,EACT;AACA,QAAM,WAAW,qBAAqB;AACtC,4BAA0B,QAAQ;AAClC,0BAAwB,QAAQ;AAChC,yBAAuB,SAAS,QAAQ;AACxC,SAAO;AACT;AAoBO,SAAS,iCACd,MAC2B;AAC3B,QAAM,SAAS,2BAA2B,KAAK,SAAS,KAAK,OAAO;AAEpE,QAAM,QAAQ,uBAAuB;AACrC,uBAAqB,KAAK;AAE1B,QAAM,mBAAmB,8BAA8B;AACvD,kCAAgC,gBAAgB;AAEhD,QAAM,UAAU,+BAA+B;AAC/C,mCAAiC,OAAO;AAExC,QAAM,UAAU,6BAA6B,KAAK,OAAO;AAEzD,QAAM,gBAAgB,4BAA4B;AAKlD,QAAM,cACJ,KAAK,eAAe,wBAAwB,KAAK,OAAO;AAC1D,QAAM,WACJ,KAAK,YACL,qBAAqB,KAAK,OAAO,KACjC,2BAA2B,KAAK,OAAO;AACzC,QAAM,eACJ,KAAK,gBAAgB,4BAA4B,KAAK,OAAO;AAE/D,SAAO,0BAA0B;AAAA,IAC/B,SAAS,KAAK;AAAA,IACd,OAAO,OAAO;AAAA,IACd,UAAU,OAAO;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,YAAY,KAAK,cAAc,0BAA0B,KAAK,OAAO;AAAA,IACrE;AAAA,IACA;AAAA,IACA;AAAA,IACA,KAAK,KAAK;AAAA,IACV,aAAa,MAAM;AACjB,YAAM,WAAW,mBAAmB,KAAK,OAAO;AAChD,UAAI,CAAC,SAAU,QAAO,oBAAI,IAAI;AAC9B,aAAO,IAAI,IAAI,SAAS,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AAAA,IACnD;AAAA,IACA,kBACE,KAAK,qBACJ,MACC;AAAA,MACE,KAAK;AAAA,IACP;AAAA,IACJ,YAAY,wCAAwC;AAAA,MAClD,SAAS,KAAK;AAAA,IAChB,CAAC;AAAA,EACH,CAAC;AACH;","names":[]}