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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1317) hide show
  1. package/dist/actions/app-block.d.ts +15 -0
  2. package/dist/actions/app-block.d.ts.map +1 -0
  3. package/dist/actions/app-block.js +349 -0
  4. package/dist/actions/app-block.js.map +1 -0
  5. package/dist/actions/autofill.d.ts +20 -0
  6. package/dist/actions/autofill.d.ts.map +1 -0
  7. package/dist/actions/autofill.js +370 -0
  8. package/dist/actions/autofill.js.map +1 -0
  9. package/dist/actions/block.d.ts +30 -0
  10. package/dist/actions/block.d.ts.map +1 -0
  11. package/dist/actions/block.js +326 -0
  12. package/dist/actions/block.js.map +1 -0
  13. package/dist/actions/book-travel.d.ts +10 -0
  14. package/dist/actions/book-travel.d.ts.map +1 -0
  15. package/dist/actions/book-travel.js +467 -0
  16. package/dist/actions/book-travel.js.map +1 -0
  17. package/dist/actions/brief.d.ts +60 -0
  18. package/dist/actions/brief.d.ts.map +1 -0
  19. package/dist/actions/brief.js +485 -0
  20. package/dist/actions/brief.js.map +1 -0
  21. package/dist/actions/calendar.d.ts +22 -0
  22. package/dist/actions/calendar.d.ts.map +1 -0
  23. package/dist/actions/calendar.js +832 -0
  24. package/dist/actions/calendar.js.map +1 -0
  25. package/dist/actions/conflict-detect.d.ts +67 -0
  26. package/dist/actions/conflict-detect.d.ts.map +1 -0
  27. package/dist/actions/conflict-detect.js +310 -0
  28. package/dist/actions/conflict-detect.js.map +1 -0
  29. package/dist/actions/connector.d.ts +5 -0
  30. package/dist/actions/connector.d.ts.map +1 -0
  31. package/dist/actions/connector.js +1354 -0
  32. package/dist/actions/connector.js.map +1 -0
  33. package/dist/actions/credentials.d.ts +14 -0
  34. package/dist/actions/credentials.d.ts.map +1 -0
  35. package/dist/actions/credentials.js +191 -0
  36. package/dist/actions/credentials.js.map +1 -0
  37. package/dist/actions/document.d.ts +36 -0
  38. package/dist/actions/document.d.ts.map +1 -0
  39. package/dist/actions/document.js +613 -0
  40. package/dist/actions/document.js.map +1 -0
  41. package/dist/actions/entity.d.ts +20 -0
  42. package/dist/actions/entity.d.ts.map +1 -0
  43. package/dist/actions/entity.js +785 -0
  44. package/dist/actions/entity.js.map +1 -0
  45. package/dist/actions/health.d.ts +4 -0
  46. package/dist/actions/health.d.ts.map +1 -0
  47. package/dist/actions/health.js +37 -0
  48. package/dist/actions/health.js.map +1 -0
  49. package/dist/actions/inbox.d.ts +12 -0
  50. package/dist/actions/inbox.d.ts.map +1 -0
  51. package/dist/actions/inbox.js +13 -0
  52. package/dist/actions/inbox.js.map +1 -0
  53. package/dist/actions/lib/calendly-handler.d.ts +3 -0
  54. package/dist/actions/lib/calendly-handler.d.ts.map +1 -0
  55. package/dist/actions/lib/calendly-handler.js +506 -0
  56. package/dist/actions/lib/calendly-handler.js.map +1 -0
  57. package/dist/actions/lib/extract-goal-plan.d.ts +69 -0
  58. package/dist/actions/lib/extract-goal-plan.d.ts.map +1 -0
  59. package/dist/actions/lib/extract-goal-plan.js +488 -0
  60. package/dist/actions/lib/extract-goal-plan.js.map +1 -0
  61. package/dist/actions/lib/extract-life-operation.d.ts +18 -0
  62. package/dist/actions/lib/extract-life-operation.d.ts.map +1 -0
  63. package/dist/actions/lib/extract-life-operation.js +318 -0
  64. package/dist/actions/lib/extract-life-operation.js.map +1 -0
  65. package/dist/actions/lib/extract-task-plan.d.ts +78 -0
  66. package/dist/actions/lib/extract-task-plan.d.ts.map +1 -0
  67. package/dist/actions/lib/extract-task-plan.js +355 -0
  68. package/dist/actions/lib/extract-task-plan.js.map +1 -0
  69. package/dist/actions/lib/extract-update-fields.d.ts +27 -0
  70. package/dist/actions/lib/extract-update-fields.d.ts.map +1 -0
  71. package/dist/actions/lib/extract-update-fields.js +172 -0
  72. package/dist/actions/lib/extract-update-fields.js.map +1 -0
  73. package/dist/actions/lib/lifeops-deferred-draft.d.ts +68 -0
  74. package/dist/actions/lib/lifeops-deferred-draft.d.ts.map +1 -0
  75. package/dist/actions/lib/lifeops-deferred-draft.js +315 -0
  76. package/dist/actions/lib/lifeops-deferred-draft.js.map +1 -0
  77. package/dist/actions/lib/messaging-helpers.d.ts +20 -0
  78. package/dist/actions/lib/messaging-helpers.d.ts.map +1 -0
  79. package/dist/actions/lib/messaging-helpers.js +103 -0
  80. package/dist/actions/lib/messaging-helpers.js.map +1 -0
  81. package/dist/actions/lib/owner-policy-writes.d.ts +49 -0
  82. package/dist/actions/lib/owner-policy-writes.d.ts.map +1 -0
  83. package/dist/actions/lib/owner-policy-writes.js +157 -0
  84. package/dist/actions/lib/owner-policy-writes.js.map +1 -0
  85. package/dist/actions/lib/prompt-format.d.ts +3 -0
  86. package/dist/actions/lib/prompt-format.d.ts.map +1 -0
  87. package/dist/actions/lib/prompt-format.js +42 -0
  88. package/dist/actions/lib/prompt-format.js.map +1 -0
  89. package/dist/actions/lib/scheduling-handler.d.ts +93 -0
  90. package/dist/actions/lib/scheduling-handler.d.ts.map +1 -0
  91. package/dist/actions/lib/scheduling-handler.js +868 -0
  92. package/dist/actions/lib/scheduling-handler.js.map +1 -0
  93. package/dist/actions/life.d.ts +13 -0
  94. package/dist/actions/life.d.ts.map +1 -0
  95. package/dist/actions/life.js +2524 -0
  96. package/dist/actions/life.js.map +1 -0
  97. package/dist/actions/money.d.ts +24 -0
  98. package/dist/actions/money.d.ts.map +1 -0
  99. package/dist/actions/money.js +41 -0
  100. package/dist/actions/money.js.map +1 -0
  101. package/dist/actions/owner-surfaces.d.ts +11 -0
  102. package/dist/actions/owner-surfaces.d.ts.map +1 -0
  103. package/dist/actions/owner-surfaces.js +493 -0
  104. package/dist/actions/owner-surfaces.js.map +1 -0
  105. package/dist/actions/password-manager.d.ts +10 -0
  106. package/dist/actions/password-manager.d.ts.map +1 -0
  107. package/dist/actions/password-manager.js +195 -0
  108. package/dist/actions/password-manager.js.map +1 -0
  109. package/dist/actions/payments.d.ts +10 -0
  110. package/dist/actions/payments.d.ts.map +1 -0
  111. package/dist/actions/payments.js +5 -0
  112. package/dist/actions/payments.js.map +1 -0
  113. package/dist/actions/prioritize.d.ts +49 -0
  114. package/dist/actions/prioritize.d.ts.map +1 -0
  115. package/dist/actions/prioritize.js +313 -0
  116. package/dist/actions/prioritize.js.map +1 -0
  117. package/dist/actions/remote-desktop.d.ts +13 -0
  118. package/dist/actions/remote-desktop.d.ts.map +1 -0
  119. package/dist/actions/remote-desktop.js +11 -0
  120. package/dist/actions/remote-desktop.js.map +1 -0
  121. package/dist/actions/resolve-request.d.ts +12 -0
  122. package/dist/actions/resolve-request.d.ts.map +1 -0
  123. package/dist/actions/resolve-request.js +427 -0
  124. package/dist/actions/resolve-request.js.map +1 -0
  125. package/dist/actions/schedule.d.ts +10 -0
  126. package/dist/actions/schedule.d.ts.map +1 -0
  127. package/dist/actions/schedule.js +113 -0
  128. package/dist/actions/schedule.js.map +1 -0
  129. package/dist/actions/scheduled-task.d.ts +32 -0
  130. package/dist/actions/scheduled-task.d.ts.map +1 -0
  131. package/dist/actions/scheduled-task.js +661 -0
  132. package/dist/actions/scheduled-task.js.map +1 -0
  133. package/dist/actions/screen-time.d.ts +4 -0
  134. package/dist/actions/screen-time.d.ts.map +1 -0
  135. package/dist/actions/screen-time.js +47 -0
  136. package/dist/actions/screen-time.js.map +1 -0
  137. package/dist/actions/subscriptions.d.ts +8 -0
  138. package/dist/actions/subscriptions.d.ts.map +1 -0
  139. package/dist/actions/subscriptions.js +327 -0
  140. package/dist/actions/subscriptions.js.map +1 -0
  141. package/dist/actions/voice-call.d.ts +16 -0
  142. package/dist/actions/voice-call.d.ts.map +1 -0
  143. package/dist/actions/voice-call.js +756 -0
  144. package/dist/actions/voice-call.js.map +1 -0
  145. package/dist/actions/website-block.d.ts +15 -0
  146. package/dist/actions/website-block.d.ts.map +1 -0
  147. package/dist/actions/website-block.js +719 -0
  148. package/dist/actions/website-block.js.map +1 -0
  149. package/dist/actions/work-thread.d.ts +5 -0
  150. package/dist/actions/work-thread.d.ts.map +1 -0
  151. package/dist/actions/work-thread.js +556 -0
  152. package/dist/actions/work-thread.js.map +1 -0
  153. package/dist/activity-profile/activity-tracker-repo.d.ts +28 -0
  154. package/dist/activity-profile/activity-tracker-repo.d.ts.map +1 -0
  155. package/dist/activity-profile/activity-tracker-repo.js +61 -0
  156. package/dist/activity-profile/activity-tracker-repo.js.map +1 -0
  157. package/dist/activity-profile/activity-tracker-reporting.d.ts +52 -0
  158. package/dist/activity-profile/activity-tracker-reporting.d.ts.map +1 -0
  159. package/dist/activity-profile/activity-tracker-reporting.js +119 -0
  160. package/dist/activity-profile/activity-tracker-reporting.js.map +1 -0
  161. package/dist/activity-profile/activity-tracker-service.d.ts +36 -0
  162. package/dist/activity-profile/activity-tracker-service.d.ts.map +1 -0
  163. package/dist/activity-profile/activity-tracker-service.js +187 -0
  164. package/dist/activity-profile/activity-tracker-service.js.map +1 -0
  165. package/dist/activity-profile/analyzer.d.ts +23 -0
  166. package/dist/activity-profile/analyzer.d.ts.map +1 -0
  167. package/dist/activity-profile/analyzer.js +485 -0
  168. package/dist/activity-profile/analyzer.js.map +1 -0
  169. package/dist/activity-profile/presence-signal-bridge-service.d.ts +14 -0
  170. package/dist/activity-profile/presence-signal-bridge-service.d.ts.map +1 -0
  171. package/dist/activity-profile/presence-signal-bridge-service.js +159 -0
  172. package/dist/activity-profile/presence-signal-bridge-service.js.map +1 -0
  173. package/dist/activity-profile/proactive-inbox-digest.d.ts +3 -0
  174. package/dist/activity-profile/proactive-inbox-digest.d.ts.map +1 -0
  175. package/dist/activity-profile/proactive-inbox-digest.js +21 -0
  176. package/dist/activity-profile/proactive-inbox-digest.js.map +1 -0
  177. package/dist/activity-profile/proactive-planner.d.ts +150 -0
  178. package/dist/activity-profile/proactive-planner.d.ts.map +1 -0
  179. package/dist/activity-profile/proactive-planner.js +529 -0
  180. package/dist/activity-profile/proactive-planner.js.map +1 -0
  181. package/dist/activity-profile/proactive-worker.d.ts +33 -0
  182. package/dist/activity-profile/proactive-worker.d.ts.map +1 -0
  183. package/dist/activity-profile/proactive-worker.js +779 -0
  184. package/dist/activity-profile/proactive-worker.js.map +1 -0
  185. package/dist/activity-profile/profile-metadata.d.ts +10 -0
  186. package/dist/activity-profile/profile-metadata.d.ts.map +1 -0
  187. package/dist/activity-profile/profile-metadata.js +16 -0
  188. package/dist/activity-profile/profile-metadata.js.map +1 -0
  189. package/dist/activity-profile/redactor.d.ts +15 -0
  190. package/dist/activity-profile/redactor.d.ts.map +1 -0
  191. package/dist/activity-profile/redactor.js +22 -0
  192. package/dist/activity-profile/redactor.js.map +1 -0
  193. package/dist/activity-profile/service.d.ts +11 -0
  194. package/dist/activity-profile/service.d.ts.map +1 -0
  195. package/dist/activity-profile/service.js +272 -0
  196. package/dist/activity-profile/service.js.map +1 -0
  197. package/dist/activity-profile/types.d.ts +97 -0
  198. package/dist/activity-profile/types.d.ts.map +1 -0
  199. package/dist/activity-profile/types.js +36 -0
  200. package/dist/activity-profile/types.js.map +1 -0
  201. package/dist/agent-lifeops.d.ts +2 -0
  202. package/dist/agent-lifeops.d.ts.map +1 -0
  203. package/dist/agent-lifeops.js +2 -0
  204. package/dist/agent-lifeops.js.map +1 -0
  205. package/dist/api/client-lifeops.d.ts +319 -0
  206. package/dist/api/client-lifeops.d.ts.map +1 -0
  207. package/dist/api/client-lifeops.js +794 -0
  208. package/dist/api/client-lifeops.js.map +1 -0
  209. package/dist/automation-node-contributor.d.ts +2 -0
  210. package/dist/automation-node-contributor.d.ts.map +1 -0
  211. package/dist/automation-node-contributor.js +184 -0
  212. package/dist/automation-node-contributor.js.map +1 -0
  213. package/dist/client.d.ts +16 -0
  214. package/dist/client.d.ts.map +1 -0
  215. package/dist/client.js +18 -0
  216. package/dist/client.js.map +1 -0
  217. package/dist/components/AppBlockerSettingsCard.d.ts +3 -0
  218. package/dist/components/AppBlockerSettingsCard.d.ts.map +1 -0
  219. package/dist/components/AppBlockerSettingsCard.js +538 -0
  220. package/dist/components/AppBlockerSettingsCard.js.map +1 -0
  221. package/dist/components/WebsiteBlockerSettingsCard.d.ts +3 -0
  222. package/dist/components/WebsiteBlockerSettingsCard.d.ts.map +1 -0
  223. package/dist/components/WebsiteBlockerSettingsCard.js +148 -0
  224. package/dist/components/WebsiteBlockerSettingsCard.js.map +1 -0
  225. package/dist/contracts/index.d.ts +2 -0
  226. package/dist/contracts/index.d.ts.map +1 -0
  227. package/dist/contracts/index.js +2 -0
  228. package/dist/contracts/index.js.map +1 -0
  229. package/dist/contracts/lifeops.d.ts +2 -0
  230. package/dist/contracts/lifeops.d.ts.map +1 -0
  231. package/dist/contracts/lifeops.js +2 -0
  232. package/dist/contracts/lifeops.js.map +1 -0
  233. package/dist/default-packs/autofill-whitelist-pack.d.ts +17 -0
  234. package/dist/default-packs/autofill-whitelist-pack.d.ts.map +1 -0
  235. package/dist/default-packs/autofill-whitelist-pack.js +56 -0
  236. package/dist/default-packs/autofill-whitelist-pack.js.map +1 -0
  237. package/dist/default-packs/consolidation-policies.d.ts +14 -0
  238. package/dist/default-packs/consolidation-policies.d.ts.map +1 -0
  239. package/dist/default-packs/consolidation-policies.js +17 -0
  240. package/dist/default-packs/consolidation-policies.js.map +1 -0
  241. package/dist/default-packs/contract-types.d.ts +200 -0
  242. package/dist/default-packs/contract-types.d.ts.map +1 -0
  243. package/dist/default-packs/contract-types.js +1 -0
  244. package/dist/default-packs/contract-types.js.map +1 -0
  245. package/dist/default-packs/daily-rhythm.d.ts +28 -0
  246. package/dist/default-packs/daily-rhythm.d.ts.map +1 -0
  247. package/dist/default-packs/daily-rhythm.js +136 -0
  248. package/dist/default-packs/daily-rhythm.js.map +1 -0
  249. package/dist/default-packs/escalation-ladders.d.ts +18 -0
  250. package/dist/default-packs/escalation-ladders.d.ts.map +1 -0
  251. package/dist/default-packs/escalation-ladders.js +17 -0
  252. package/dist/default-packs/escalation-ladders.js.map +1 -0
  253. package/dist/default-packs/executive-assistant.d.ts +50 -0
  254. package/dist/default-packs/executive-assistant.d.ts.map +1 -0
  255. package/dist/default-packs/executive-assistant.js +745 -0
  256. package/dist/default-packs/executive-assistant.js.map +1 -0
  257. package/dist/default-packs/followup-starter.d.ts +49 -0
  258. package/dist/default-packs/followup-starter.d.ts.map +1 -0
  259. package/dist/default-packs/followup-starter.js +104 -0
  260. package/dist/default-packs/followup-starter.js.map +1 -0
  261. package/dist/default-packs/habit-starters.d.ts +37 -0
  262. package/dist/default-packs/habit-starters.d.ts.map +1 -0
  263. package/dist/default-packs/habit-starters.js +255 -0
  264. package/dist/default-packs/habit-starters.js.map +1 -0
  265. package/dist/default-packs/inbox-triage-starter.d.ts +23 -0
  266. package/dist/default-packs/inbox-triage-starter.d.ts.map +1 -0
  267. package/dist/default-packs/inbox-triage-starter.js +61 -0
  268. package/dist/default-packs/inbox-triage-starter.js.map +1 -0
  269. package/dist/default-packs/index.d.ts +54 -0
  270. package/dist/default-packs/index.d.ts.map +1 -0
  271. package/dist/default-packs/index.js +150 -0
  272. package/dist/default-packs/index.js.map +1 -0
  273. package/dist/default-packs/lint.d.ts +62 -0
  274. package/dist/default-packs/lint.d.ts.map +1 -0
  275. package/dist/default-packs/lint.js +161 -0
  276. package/dist/default-packs/lint.js.map +1 -0
  277. package/dist/default-packs/morning-brief.d.ts +44 -0
  278. package/dist/default-packs/morning-brief.d.ts.map +1 -0
  279. package/dist/default-packs/morning-brief.js +69 -0
  280. package/dist/default-packs/morning-brief.js.map +1 -0
  281. package/dist/default-packs/quiet-user-watcher.d.ts +49 -0
  282. package/dist/default-packs/quiet-user-watcher.d.ts.map +1 -0
  283. package/dist/default-packs/quiet-user-watcher.js +92 -0
  284. package/dist/default-packs/quiet-user-watcher.js.map +1 -0
  285. package/dist/default-packs/registry-types.d.ts +51 -0
  286. package/dist/default-packs/registry-types.d.ts.map +1 -0
  287. package/dist/default-packs/registry-types.js +1 -0
  288. package/dist/default-packs/registry-types.js.map +1 -0
  289. package/dist/default-packs/task-definitions.d.ts +88 -0
  290. package/dist/default-packs/task-definitions.d.ts.map +1 -0
  291. package/dist/default-packs/task-definitions.js +87 -0
  292. package/dist/default-packs/task-definitions.js.map +1 -0
  293. package/dist/events/index.d.ts +34 -0
  294. package/dist/events/index.d.ts.map +1 -0
  295. package/dist/events/index.js +30 -0
  296. package/dist/events/index.js.map +1 -0
  297. package/dist/followup/actions/listOverdueFollowups.d.ts +3 -0
  298. package/dist/followup/actions/listOverdueFollowups.d.ts.map +1 -0
  299. package/dist/followup/actions/listOverdueFollowups.js +90 -0
  300. package/dist/followup/actions/listOverdueFollowups.js.map +1 -0
  301. package/dist/followup/actions/markFollowupDone.d.ts +3 -0
  302. package/dist/followup/actions/markFollowupDone.d.ts.map +1 -0
  303. package/dist/followup/actions/markFollowupDone.js +171 -0
  304. package/dist/followup/actions/markFollowupDone.js.map +1 -0
  305. package/dist/followup/actions/setFollowupThreshold.d.ts +3 -0
  306. package/dist/followup/actions/setFollowupThreshold.d.ts.map +1 -0
  307. package/dist/followup/actions/setFollowupThreshold.js +171 -0
  308. package/dist/followup/actions/setFollowupThreshold.js.map +1 -0
  309. package/dist/followup/followup-tracker.d.ts +83 -0
  310. package/dist/followup/followup-tracker.d.ts.map +1 -0
  311. package/dist/followup/followup-tracker.js +311 -0
  312. package/dist/followup/followup-tracker.js.map +1 -0
  313. package/dist/followup/index.d.ts +5 -0
  314. package/dist/followup/index.d.ts.map +1 -0
  315. package/dist/followup/index.js +39 -0
  316. package/dist/followup/index.js.map +1 -0
  317. package/dist/hooks/connector-error.d.ts +2 -0
  318. package/dist/hooks/connector-error.d.ts.map +1 -0
  319. package/dist/hooks/connector-error.js +13 -0
  320. package/dist/hooks/connector-error.js.map +1 -0
  321. package/dist/hooks/useDiscordConnector.d.ts +11 -0
  322. package/dist/hooks/useDiscordConnector.d.ts.map +1 -0
  323. package/dist/hooks/useDiscordConnector.js +95 -0
  324. package/dist/hooks/useDiscordConnector.js.map +1 -0
  325. package/dist/hooks/useGoogleLifeOpsConnector.d.ts +23 -0
  326. package/dist/hooks/useGoogleLifeOpsConnector.d.ts.map +1 -0
  327. package/dist/hooks/useGoogleLifeOpsConnector.js +630 -0
  328. package/dist/hooks/useGoogleLifeOpsConnector.js.map +1 -0
  329. package/dist/hooks/useIMessageConnector.d.ts +10 -0
  330. package/dist/hooks/useIMessageConnector.d.ts.map +1 -0
  331. package/dist/hooks/useIMessageConnector.js +57 -0
  332. package/dist/hooks/useIMessageConnector.js.map +1 -0
  333. package/dist/hooks/useInbox.d.ts +36 -0
  334. package/dist/hooks/useInbox.d.ts.map +1 -0
  335. package/dist/hooks/useInbox.js +96 -0
  336. package/dist/hooks/useInbox.js.map +1 -0
  337. package/dist/hooks/useLifeOpsActivitySignals.d.ts +2 -0
  338. package/dist/hooks/useLifeOpsActivitySignals.d.ts.map +1 -0
  339. package/dist/hooks/useLifeOpsActivitySignals.js +358 -0
  340. package/dist/hooks/useLifeOpsActivitySignals.js.map +1 -0
  341. package/dist/hooks/useLifeOpsAppState.d.ts +9 -0
  342. package/dist/hooks/useLifeOpsAppState.d.ts.map +1 -0
  343. package/dist/hooks/useLifeOpsAppState.js +79 -0
  344. package/dist/hooks/useLifeOpsAppState.js.map +1 -0
  345. package/dist/hooks/useLifeOpsCapabilitiesStatus.d.ts +8 -0
  346. package/dist/hooks/useLifeOpsCapabilitiesStatus.d.ts.map +1 -0
  347. package/dist/hooks/useLifeOpsCapabilitiesStatus.js +60 -0
  348. package/dist/hooks/useLifeOpsCapabilitiesStatus.js.map +1 -0
  349. package/dist/hooks/useLifeOpsXConnector.d.ts +11 -0
  350. package/dist/hooks/useLifeOpsXConnector.d.ts.map +1 -0
  351. package/dist/hooks/useLifeOpsXConnector.js +92 -0
  352. package/dist/hooks/useLifeOpsXConnector.js.map +1 -0
  353. package/dist/hooks/useSignalConnector.d.ts +14 -0
  354. package/dist/hooks/useSignalConnector.d.ts.map +1 -0
  355. package/dist/hooks/useSignalConnector.js +89 -0
  356. package/dist/hooks/useSignalConnector.js.map +1 -0
  357. package/dist/hooks/useTelegramConnector.d.ts +14 -0
  358. package/dist/hooks/useTelegramConnector.d.ts.map +1 -0
  359. package/dist/hooks/useTelegramConnector.js +97 -0
  360. package/dist/hooks/useTelegramConnector.js.map +1 -0
  361. package/dist/hooks/useWhatsAppConnector.d.ts +8 -0
  362. package/dist/hooks/useWhatsAppConnector.d.ts.map +1 -0
  363. package/dist/hooks/useWhatsAppConnector.js +62 -0
  364. package/dist/hooks/useWhatsAppConnector.js.map +1 -0
  365. package/dist/inbox/message-fetcher.d.ts +11 -0
  366. package/dist/inbox/message-fetcher.d.ts.map +1 -0
  367. package/dist/inbox/message-fetcher.js +13 -0
  368. package/dist/inbox/message-fetcher.js.map +1 -0
  369. package/dist/inbox/repository.d.ts +11 -0
  370. package/dist/inbox/repository.d.ts.map +1 -0
  371. package/dist/inbox/repository.js +5 -0
  372. package/dist/inbox/repository.js.map +1 -0
  373. package/dist/inbox/types.d.ts +10 -0
  374. package/dist/inbox/types.d.ts.map +1 -0
  375. package/dist/inbox/types.js +2 -0
  376. package/dist/inbox/types.js.map +1 -0
  377. package/dist/index.d.ts +36 -0
  378. package/dist/index.d.ts.map +1 -0
  379. package/dist/index.js +188 -0
  380. package/dist/index.js.map +1 -0
  381. package/dist/lifeops/access.d.ts +29 -0
  382. package/dist/lifeops/access.d.ts.map +1 -0
  383. package/dist/lifeops/access.js +56 -0
  384. package/dist/lifeops/access.js.map +1 -0
  385. package/dist/lifeops/app-state.d.ts +22 -0
  386. package/dist/lifeops/app-state.d.ts.map +1 -0
  387. package/dist/lifeops/app-state.js +67 -0
  388. package/dist/lifeops/app-state.js.map +1 -0
  389. package/dist/lifeops/apple-reminders.d.ts +67 -0
  390. package/dist/lifeops/apple-reminders.d.ts.map +1 -0
  391. package/dist/lifeops/apple-reminders.js +396 -0
  392. package/dist/lifeops/apple-reminders.js.map +1 -0
  393. package/dist/lifeops/approval-queue.d.ts +38 -0
  394. package/dist/lifeops/approval-queue.d.ts.map +1 -0
  395. package/dist/lifeops/approval-queue.js +575 -0
  396. package/dist/lifeops/approval-queue.js.map +1 -0
  397. package/dist/lifeops/approval-queue.types.d.ts +172 -0
  398. package/dist/lifeops/approval-queue.types.d.ts.map +1 -0
  399. package/dist/lifeops/approval-queue.types.js +27 -0
  400. package/dist/lifeops/approval-queue.types.js.map +1 -0
  401. package/dist/lifeops/autofill-whitelist.d.ts +20 -0
  402. package/dist/lifeops/autofill-whitelist.d.ts.map +1 -0
  403. package/dist/lifeops/autofill-whitelist.js +59 -0
  404. package/dist/lifeops/autofill-whitelist.js.map +1 -0
  405. package/dist/lifeops/background-planner-dispatch.d.ts +60 -0
  406. package/dist/lifeops/background-planner-dispatch.d.ts.map +1 -0
  407. package/dist/lifeops/background-planner-dispatch.js +113 -0
  408. package/dist/lifeops/background-planner-dispatch.js.map +1 -0
  409. package/dist/lifeops/background-planner.d.ts +140 -0
  410. package/dist/lifeops/background-planner.d.ts.map +1 -0
  411. package/dist/lifeops/background-planner.js +359 -0
  412. package/dist/lifeops/background-planner.js.map +1 -0
  413. package/dist/lifeops/bill-extraction.d.ts +46 -0
  414. package/dist/lifeops/bill-extraction.d.ts.map +1 -0
  415. package/dist/lifeops/bill-extraction.js +325 -0
  416. package/dist/lifeops/bill-extraction.js.map +1 -0
  417. package/dist/lifeops/browser-constants.d.ts +4 -0
  418. package/dist/lifeops/browser-constants.d.ts.map +1 -0
  419. package/dist/lifeops/browser-constants.js +27 -0
  420. package/dist/lifeops/browser-constants.js.map +1 -0
  421. package/dist/lifeops/browser-extension-store.d.ts +61 -0
  422. package/dist/lifeops/browser-extension-store.d.ts.map +1 -0
  423. package/dist/lifeops/browser-extension-store.js +176 -0
  424. package/dist/lifeops/browser-extension-store.js.map +1 -0
  425. package/dist/lifeops/browser-session-lifecycle.d.ts +57 -0
  426. package/dist/lifeops/browser-session-lifecycle.d.ts.map +1 -0
  427. package/dist/lifeops/browser-session-lifecycle.js +308 -0
  428. package/dist/lifeops/browser-session-lifecycle.js.map +1 -0
  429. package/dist/lifeops/bulk-review.d.ts +333 -0
  430. package/dist/lifeops/bulk-review.d.ts.map +1 -0
  431. package/dist/lifeops/bulk-review.js +1120 -0
  432. package/dist/lifeops/bulk-review.js.map +1 -0
  433. package/dist/lifeops/calendar-gate.d.ts +20 -0
  434. package/dist/lifeops/calendar-gate.d.ts.map +1 -0
  435. package/dist/lifeops/calendar-gate.js +30 -0
  436. package/dist/lifeops/calendar-gate.js.map +1 -0
  437. package/dist/lifeops/channels/contract.d.ts +47 -0
  438. package/dist/lifeops/channels/contract.d.ts.map +1 -0
  439. package/dist/lifeops/channels/contract.js +1 -0
  440. package/dist/lifeops/channels/contract.js.map +1 -0
  441. package/dist/lifeops/channels/default-pack.d.ts +26 -0
  442. package/dist/lifeops/channels/default-pack.d.ts.map +1 -0
  443. package/dist/lifeops/channels/default-pack.js +243 -0
  444. package/dist/lifeops/channels/default-pack.js.map +1 -0
  445. package/dist/lifeops/channels/index.d.ts +5 -0
  446. package/dist/lifeops/channels/index.d.ts.map +1 -0
  447. package/dist/lifeops/channels/index.js +23 -0
  448. package/dist/lifeops/channels/index.js.map +1 -0
  449. package/dist/lifeops/channels/priority-posture.d.ts +36 -0
  450. package/dist/lifeops/channels/priority-posture.d.ts.map +1 -0
  451. package/dist/lifeops/channels/priority-posture.js +27 -0
  452. package/dist/lifeops/channels/priority-posture.js.map +1 -0
  453. package/dist/lifeops/channels/registry.d.ts +7 -0
  454. package/dist/lifeops/channels/registry.d.ts.map +1 -0
  455. package/dist/lifeops/channels/registry.js +49 -0
  456. package/dist/lifeops/channels/registry.js.map +1 -0
  457. package/dist/lifeops/checkin/checkin-service.d.ts +66 -0
  458. package/dist/lifeops/checkin/checkin-service.d.ts.map +1 -0
  459. package/dist/lifeops/checkin/checkin-service.js +1084 -0
  460. package/dist/lifeops/checkin/checkin-service.js.map +1 -0
  461. package/dist/lifeops/checkin/schedule-resolver.d.ts +17 -0
  462. package/dist/lifeops/checkin/schedule-resolver.d.ts.map +1 -0
  463. package/dist/lifeops/checkin/schedule-resolver.js +26 -0
  464. package/dist/lifeops/checkin/schedule-resolver.js.map +1 -0
  465. package/dist/lifeops/checkin/types.d.ts +106 -0
  466. package/dist/lifeops/checkin/types.d.ts.map +1 -0
  467. package/dist/lifeops/checkin/types.js +1 -0
  468. package/dist/lifeops/checkin/types.js.map +1 -0
  469. package/dist/lifeops/connectors/_helpers.d.ts +51 -0
  470. package/dist/lifeops/connectors/_helpers.d.ts.map +1 -0
  471. package/dist/lifeops/connectors/_helpers.js +104 -0
  472. package/dist/lifeops/connectors/_helpers.js.map +1 -0
  473. package/dist/lifeops/connectors/calendly.d.ts +11 -0
  474. package/dist/lifeops/connectors/calendly.d.ts.map +1 -0
  475. package/dist/lifeops/connectors/calendly.js +61 -0
  476. package/dist/lifeops/connectors/calendly.js.map +1 -0
  477. package/dist/lifeops/connectors/contract.d.ts +88 -0
  478. package/dist/lifeops/connectors/contract.d.ts.map +1 -0
  479. package/dist/lifeops/connectors/contract.js +1 -0
  480. package/dist/lifeops/connectors/contract.js.map +1 -0
  481. package/dist/lifeops/connectors/default-pack.d.ts +35 -0
  482. package/dist/lifeops/connectors/default-pack.d.ts.map +1 -0
  483. package/dist/lifeops/connectors/default-pack.js +37 -0
  484. package/dist/lifeops/connectors/default-pack.js.map +1 -0
  485. package/dist/lifeops/connectors/discord.d.ts +8 -0
  486. package/dist/lifeops/connectors/discord.d.ts.map +1 -0
  487. package/dist/lifeops/connectors/discord.js +53 -0
  488. package/dist/lifeops/connectors/discord.js.map +1 -0
  489. package/dist/lifeops/connectors/dispatch-policy.d.ts +75 -0
  490. package/dist/lifeops/connectors/dispatch-policy.d.ts.map +1 -0
  491. package/dist/lifeops/connectors/dispatch-policy.js +35 -0
  492. package/dist/lifeops/connectors/dispatch-policy.js.map +1 -0
  493. package/dist/lifeops/connectors/duffel.d.ts +11 -0
  494. package/dist/lifeops/connectors/duffel.d.ts.map +1 -0
  495. package/dist/lifeops/connectors/duffel.js +74 -0
  496. package/dist/lifeops/connectors/duffel.js.map +1 -0
  497. package/dist/lifeops/connectors/google.d.ts +27 -0
  498. package/dist/lifeops/connectors/google.d.ts.map +1 -0
  499. package/dist/lifeops/connectors/google.js +80 -0
  500. package/dist/lifeops/connectors/google.js.map +1 -0
  501. package/dist/lifeops/connectors/imessage.d.ts +11 -0
  502. package/dist/lifeops/connectors/imessage.d.ts.map +1 -0
  503. package/dist/lifeops/connectors/imessage.js +55 -0
  504. package/dist/lifeops/connectors/imessage.js.map +1 -0
  505. package/dist/lifeops/connectors/index.d.ts +5 -0
  506. package/dist/lifeops/connectors/index.d.ts.map +1 -0
  507. package/dist/lifeops/connectors/index.js +23 -0
  508. package/dist/lifeops/connectors/index.js.map +1 -0
  509. package/dist/lifeops/connectors/mockoon-redirect.d.ts +54 -0
  510. package/dist/lifeops/connectors/mockoon-redirect.d.ts.map +1 -0
  511. package/dist/lifeops/connectors/mockoon-redirect.js +71 -0
  512. package/dist/lifeops/connectors/mockoon-redirect.js.map +1 -0
  513. package/dist/lifeops/connectors/registry.d.ts +7 -0
  514. package/dist/lifeops/connectors/registry.d.ts.map +1 -0
  515. package/dist/lifeops/connectors/registry.js +55 -0
  516. package/dist/lifeops/connectors/registry.js.map +1 -0
  517. package/dist/lifeops/connectors/signal.d.ts +8 -0
  518. package/dist/lifeops/connectors/signal.d.ts.map +1 -0
  519. package/dist/lifeops/connectors/signal.js +60 -0
  520. package/dist/lifeops/connectors/signal.js.map +1 -0
  521. package/dist/lifeops/connectors/telegram.d.ts +12 -0
  522. package/dist/lifeops/connectors/telegram.d.ts.map +1 -0
  523. package/dist/lifeops/connectors/telegram.js +65 -0
  524. package/dist/lifeops/connectors/telegram.js.map +1 -0
  525. package/dist/lifeops/connectors/twilio.d.ts +15 -0
  526. package/dist/lifeops/connectors/twilio.d.ts.map +1 -0
  527. package/dist/lifeops/connectors/twilio.js +126 -0
  528. package/dist/lifeops/connectors/twilio.js.map +1 -0
  529. package/dist/lifeops/connectors/whatsapp.d.ts +10 -0
  530. package/dist/lifeops/connectors/whatsapp.d.ts.map +1 -0
  531. package/dist/lifeops/connectors/whatsapp.js +56 -0
  532. package/dist/lifeops/connectors/whatsapp.js.map +1 -0
  533. package/dist/lifeops/connectors/x.d.ts +8 -0
  534. package/dist/lifeops/connectors/x.d.ts.map +1 -0
  535. package/dist/lifeops/connectors/x.js +62 -0
  536. package/dist/lifeops/connectors/x.js.map +1 -0
  537. package/dist/lifeops/contact-route-policy.d.ts +27 -0
  538. package/dist/lifeops/contact-route-policy.d.ts.map +1 -0
  539. package/dist/lifeops/contact-route-policy.js +153 -0
  540. package/dist/lifeops/contact-route-policy.js.map +1 -0
  541. package/dist/lifeops/continuity-probe.d.ts +49 -0
  542. package/dist/lifeops/continuity-probe.d.ts.map +1 -0
  543. package/dist/lifeops/continuity-probe.js +161 -0
  544. package/dist/lifeops/continuity-probe.js.map +1 -0
  545. package/dist/lifeops/cross-channel-search.d.ts +108 -0
  546. package/dist/lifeops/cross-channel-search.d.ts.map +1 -0
  547. package/dist/lifeops/cross-channel-search.js +888 -0
  548. package/dist/lifeops/cross-channel-search.js.map +1 -0
  549. package/dist/lifeops/defaults.d.ts +30 -0
  550. package/dist/lifeops/defaults.d.ts.map +1 -0
  551. package/dist/lifeops/defaults.js +206 -0
  552. package/dist/lifeops/defaults.js.map +1 -0
  553. package/dist/lifeops/device-bus-service.d.ts +16 -0
  554. package/dist/lifeops/device-bus-service.d.ts.map +1 -0
  555. package/dist/lifeops/device-bus-service.js +20 -0
  556. package/dist/lifeops/device-bus-service.js.map +1 -0
  557. package/dist/lifeops/device-identity.d.ts +31 -0
  558. package/dist/lifeops/device-identity.d.ts.map +1 -0
  559. package/dist/lifeops/device-identity.js +94 -0
  560. package/dist/lifeops/device-identity.js.map +1 -0
  561. package/dist/lifeops/document-review.d.ts +264 -0
  562. package/dist/lifeops/document-review.d.ts.map +1 -0
  563. package/dist/lifeops/document-review.js +925 -0
  564. package/dist/lifeops/document-review.js.map +1 -0
  565. package/dist/lifeops/email-classifier.d.ts +9 -0
  566. package/dist/lifeops/email-classifier.d.ts.map +1 -0
  567. package/dist/lifeops/email-classifier.js +15 -0
  568. package/dist/lifeops/email-classifier.js.map +1 -0
  569. package/dist/lifeops/email-curation.d.ts +13 -0
  570. package/dist/lifeops/email-curation.d.ts.map +1 -0
  571. package/dist/lifeops/email-curation.js +2 -0
  572. package/dist/lifeops/email-curation.js.map +1 -0
  573. package/dist/lifeops/email-unsubscribe-types.d.ts +7 -0
  574. package/dist/lifeops/email-unsubscribe-types.d.ts.map +1 -0
  575. package/dist/lifeops/email-unsubscribe-types.js +1 -0
  576. package/dist/lifeops/email-unsubscribe-types.js.map +1 -0
  577. package/dist/lifeops/enforcement-windows.d.ts +34 -0
  578. package/dist/lifeops/enforcement-windows.d.ts.map +1 -0
  579. package/dist/lifeops/enforcement-windows.js +80 -0
  580. package/dist/lifeops/enforcement-windows.js.map +1 -0
  581. package/dist/lifeops/engine.d.ts +8 -0
  582. package/dist/lifeops/engine.d.ts.map +1 -0
  583. package/dist/lifeops/engine.js +540 -0
  584. package/dist/lifeops/engine.js.map +1 -0
  585. package/dist/lifeops/entities/index.d.ts +4 -0
  586. package/dist/lifeops/entities/index.d.ts.map +1 -0
  587. package/dist/lifeops/entities/index.js +29 -0
  588. package/dist/lifeops/entities/index.js.map +1 -0
  589. package/dist/lifeops/entities/merge.d.ts +9 -0
  590. package/dist/lifeops/entities/merge.d.ts.map +1 -0
  591. package/dist/lifeops/entities/merge.js +17 -0
  592. package/dist/lifeops/entities/merge.js.map +1 -0
  593. package/dist/lifeops/entities/store.d.ts +13 -0
  594. package/dist/lifeops/entities/store.d.ts.map +1 -0
  595. package/dist/lifeops/entities/store.js +7 -0
  596. package/dist/lifeops/entities/store.js.map +1 -0
  597. package/dist/lifeops/entities/types.d.ts +9 -0
  598. package/dist/lifeops/entities/types.d.ts.map +1 -0
  599. package/dist/lifeops/entities/types.js +13 -0
  600. package/dist/lifeops/entities/types.js.map +1 -0
  601. package/dist/lifeops/entities/voice-attribution.d.ts +70 -0
  602. package/dist/lifeops/entities/voice-attribution.d.ts.map +1 -0
  603. package/dist/lifeops/entities/voice-attribution.js +121 -0
  604. package/dist/lifeops/entities/voice-attribution.js.map +1 -0
  605. package/dist/lifeops/entities/voice-observer-bridge.d.ts +32 -0
  606. package/dist/lifeops/entities/voice-observer-bridge.d.ts.map +1 -0
  607. package/dist/lifeops/entities/voice-observer-bridge.js +68 -0
  608. package/dist/lifeops/entities/voice-observer-bridge.js.map +1 -0
  609. package/dist/lifeops/entities/voice-observer.d.ts +72 -0
  610. package/dist/lifeops/entities/voice-observer.d.ts.map +1 -0
  611. package/dist/lifeops/entities/voice-observer.js +97 -0
  612. package/dist/lifeops/entities/voice-observer.js.map +1 -0
  613. package/dist/lifeops/escalation-ladders.d.ts +28 -0
  614. package/dist/lifeops/escalation-ladders.d.ts.map +1 -0
  615. package/dist/lifeops/escalation-ladders.js +17 -0
  616. package/dist/lifeops/escalation-ladders.js.map +1 -0
  617. package/dist/lifeops/fda-probe.d.ts +23 -0
  618. package/dist/lifeops/fda-probe.d.ts.map +1 -0
  619. package/dist/lifeops/fda-probe.js +59 -0
  620. package/dist/lifeops/fda-probe.js.map +1 -0
  621. package/dist/lifeops/feature-flags.d.ts +24 -0
  622. package/dist/lifeops/feature-flags.d.ts.map +1 -0
  623. package/dist/lifeops/feature-flags.js +261 -0
  624. package/dist/lifeops/feature-flags.js.map +1 -0
  625. package/dist/lifeops/feature-flags.types.d.ts +156 -0
  626. package/dist/lifeops/feature-flags.types.d.ts.map +1 -0
  627. package/dist/lifeops/feature-flags.types.js +129 -0
  628. package/dist/lifeops/feature-flags.types.js.map +1 -0
  629. package/dist/lifeops/first-run/defaults.d.ts +57 -0
  630. package/dist/lifeops/first-run/defaults.d.ts.map +1 -0
  631. package/dist/lifeops/first-run/defaults.js +159 -0
  632. package/dist/lifeops/first-run/defaults.js.map +1 -0
  633. package/dist/lifeops/first-run/questions.d.ts +74 -0
  634. package/dist/lifeops/first-run/questions.d.ts.map +1 -0
  635. package/dist/lifeops/first-run/questions.js +184 -0
  636. package/dist/lifeops/first-run/questions.js.map +1 -0
  637. package/dist/lifeops/first-run/replay.d.ts +41 -0
  638. package/dist/lifeops/first-run/replay.d.ts.map +1 -0
  639. package/dist/lifeops/first-run/replay.js +34 -0
  640. package/dist/lifeops/first-run/replay.js.map +1 -0
  641. package/dist/lifeops/first-run/service.d.ts +147 -0
  642. package/dist/lifeops/first-run/service.d.ts.map +1 -0
  643. package/dist/lifeops/first-run/service.js +455 -0
  644. package/dist/lifeops/first-run/service.js.map +1 -0
  645. package/dist/lifeops/first-run/state.d.ts +36 -0
  646. package/dist/lifeops/first-run/state.d.ts.map +1 -0
  647. package/dist/lifeops/first-run/state.js +128 -0
  648. package/dist/lifeops/first-run/state.js.map +1 -0
  649. package/dist/lifeops/global-pause/store.d.ts +22 -0
  650. package/dist/lifeops/global-pause/store.d.ts.map +1 -0
  651. package/dist/lifeops/global-pause/store.js +18 -0
  652. package/dist/lifeops/global-pause/store.js.map +1 -0
  653. package/dist/lifeops/goal-grounding.d.ts +9 -0
  654. package/dist/lifeops/goal-grounding.d.ts.map +1 -0
  655. package/dist/lifeops/goal-grounding.js +19 -0
  656. package/dist/lifeops/goal-grounding.js.map +1 -0
  657. package/dist/lifeops/goal-semantic-evaluator.d.ts +8 -0
  658. package/dist/lifeops/goal-semantic-evaluator.d.ts.map +1 -0
  659. package/dist/lifeops/goal-semantic-evaluator.js +7 -0
  660. package/dist/lifeops/goal-semantic-evaluator.js.map +1 -0
  661. package/dist/lifeops/google/format-helpers.d.ts +63 -0
  662. package/dist/lifeops/google/format-helpers.d.ts.map +1 -0
  663. package/dist/lifeops/google/format-helpers.js +597 -0
  664. package/dist/lifeops/google/format-helpers.js.map +1 -0
  665. package/dist/lifeops/google-plugin-delegates.d.ts +59 -0
  666. package/dist/lifeops/google-plugin-delegates.d.ts.map +1 -0
  667. package/dist/lifeops/google-plugin-delegates.js +408 -0
  668. package/dist/lifeops/google-plugin-delegates.js.map +1 -0
  669. package/dist/lifeops/google-scopes.d.ts +15 -0
  670. package/dist/lifeops/google-scopes.d.ts.map +1 -0
  671. package/dist/lifeops/google-scopes.js +118 -0
  672. package/dist/lifeops/google-scopes.js.map +1 -0
  673. package/dist/lifeops/handoff/store.d.ts +23 -0
  674. package/dist/lifeops/handoff/store.d.ts.map +1 -0
  675. package/dist/lifeops/handoff/store.js +20 -0
  676. package/dist/lifeops/handoff/store.js.map +1 -0
  677. package/dist/lifeops/i18n/localized-examples-provider.d.ts +16 -0
  678. package/dist/lifeops/i18n/localized-examples-provider.d.ts.map +1 -0
  679. package/dist/lifeops/i18n/localized-examples-provider.js +33 -0
  680. package/dist/lifeops/i18n/localized-examples-provider.js.map +1 -0
  681. package/dist/lifeops/i18n/localized-examples-resolver.d.ts +32 -0
  682. package/dist/lifeops/i18n/localized-examples-resolver.d.ts.map +1 -0
  683. package/dist/lifeops/i18n/localized-examples-resolver.js +28 -0
  684. package/dist/lifeops/i18n/localized-examples-resolver.js.map +1 -0
  685. package/dist/lifeops/i18n/prompt-registry.d.ts +64 -0
  686. package/dist/lifeops/i18n/prompt-registry.d.ts.map +1 -0
  687. package/dist/lifeops/i18n/prompt-registry.js +283 -0
  688. package/dist/lifeops/i18n/prompt-registry.js.map +1 -0
  689. package/dist/lifeops/imessage-outbound-probe.d.ts +7 -0
  690. package/dist/lifeops/imessage-outbound-probe.d.ts.map +1 -0
  691. package/dist/lifeops/imessage-outbound-probe.js +81 -0
  692. package/dist/lifeops/imessage-outbound-probe.js.map +1 -0
  693. package/dist/lifeops/index.d.ts +24 -0
  694. package/dist/lifeops/index.d.ts.map +1 -0
  695. package/dist/lifeops/index.js +24 -0
  696. package/dist/lifeops/index.js.map +1 -0
  697. package/dist/lifeops/intent-sync.d.ts +64 -0
  698. package/dist/lifeops/intent-sync.d.ts.map +1 -0
  699. package/dist/lifeops/intent-sync.js +321 -0
  700. package/dist/lifeops/intent-sync.js.map +1 -0
  701. package/dist/lifeops/messaging/index.d.ts +2 -0
  702. package/dist/lifeops/messaging/index.d.ts.map +1 -0
  703. package/dist/lifeops/messaging/index.js +5 -0
  704. package/dist/lifeops/messaging/index.js.map +1 -0
  705. package/dist/lifeops/messaging/owner-send-policy.d.ts +3 -0
  706. package/dist/lifeops/messaging/owner-send-policy.d.ts.map +1 -0
  707. package/dist/lifeops/messaging/owner-send-policy.js +83 -0
  708. package/dist/lifeops/messaging/owner-send-policy.js.map +1 -0
  709. package/dist/lifeops/notifications-push.d.ts +37 -0
  710. package/dist/lifeops/notifications-push.d.ts.map +1 -0
  711. package/dist/lifeops/notifications-push.js +95 -0
  712. package/dist/lifeops/notifications-push.js.map +1 -0
  713. package/dist/lifeops/optimized-prompt-instructions.d.ts +5 -0
  714. package/dist/lifeops/optimized-prompt-instructions.d.ts.map +1 -0
  715. package/dist/lifeops/optimized-prompt-instructions.js +48 -0
  716. package/dist/lifeops/optimized-prompt-instructions.js.map +1 -0
  717. package/dist/lifeops/owner/fact-store.d.ts +143 -0
  718. package/dist/lifeops/owner/fact-store.d.ts.map +1 -0
  719. package/dist/lifeops/owner/fact-store.js +446 -0
  720. package/dist/lifeops/owner/fact-store.js.map +1 -0
  721. package/dist/lifeops/owner/profile-extraction-evaluator.d.ts +3 -0
  722. package/dist/lifeops/owner/profile-extraction-evaluator.d.ts.map +1 -0
  723. package/dist/lifeops/owner/profile-extraction-evaluator.js +241 -0
  724. package/dist/lifeops/owner/profile-extraction-evaluator.js.map +1 -0
  725. package/dist/lifeops/owner-profile.d.ts +61 -0
  726. package/dist/lifeops/owner-profile.d.ts.map +1 -0
  727. package/dist/lifeops/owner-profile.js +407 -0
  728. package/dist/lifeops/owner-profile.js.map +1 -0
  729. package/dist/lifeops/pending-prompts/store.d.ts +23 -0
  730. package/dist/lifeops/pending-prompts/store.d.ts.map +1 -0
  731. package/dist/lifeops/pending-prompts/store.js +16 -0
  732. package/dist/lifeops/pending-prompts/store.js.map +1 -0
  733. package/dist/lifeops/policy-memory.d.ts +190 -0
  734. package/dist/lifeops/policy-memory.d.ts.map +1 -0
  735. package/dist/lifeops/policy-memory.js +1026 -0
  736. package/dist/lifeops/policy-memory.js.map +1 -0
  737. package/dist/lifeops/priority-scoring.d.ts +51 -0
  738. package/dist/lifeops/priority-scoring.d.ts.map +1 -0
  739. package/dist/lifeops/priority-scoring.js +305 -0
  740. package/dist/lifeops/priority-scoring.js.map +1 -0
  741. package/dist/lifeops/privacy-egress.d.ts +92 -0
  742. package/dist/lifeops/privacy-egress.d.ts.map +1 -0
  743. package/dist/lifeops/privacy-egress.js +230 -0
  744. package/dist/lifeops/privacy-egress.js.map +1 -0
  745. package/dist/lifeops/privacy.d.ts +49 -0
  746. package/dist/lifeops/privacy.d.ts.map +1 -0
  747. package/dist/lifeops/privacy.js +66 -0
  748. package/dist/lifeops/privacy.js.map +1 -0
  749. package/dist/lifeops/redact-sensitive-data.d.ts +32 -0
  750. package/dist/lifeops/redact-sensitive-data.d.ts.map +1 -0
  751. package/dist/lifeops/redact-sensitive-data.js +98 -0
  752. package/dist/lifeops/redact-sensitive-data.js.map +1 -0
  753. package/dist/lifeops/registries/app-blocker-contribution.d.ts +13 -0
  754. package/dist/lifeops/registries/app-blocker-contribution.d.ts.map +1 -0
  755. package/dist/lifeops/registries/app-blocker-contribution.js +73 -0
  756. package/dist/lifeops/registries/app-blocker-contribution.js.map +1 -0
  757. package/dist/lifeops/registries/blocker-registry.d.ts +76 -0
  758. package/dist/lifeops/registries/blocker-registry.d.ts.map +1 -0
  759. package/dist/lifeops/registries/blocker-registry.js +40 -0
  760. package/dist/lifeops/registries/blocker-registry.js.map +1 -0
  761. package/dist/lifeops/registries/event-kind-registry.d.ts +57 -0
  762. package/dist/lifeops/registries/event-kind-registry.d.ts.map +1 -0
  763. package/dist/lifeops/registries/event-kind-registry.js +82 -0
  764. package/dist/lifeops/registries/event-kind-registry.js.map +1 -0
  765. package/dist/lifeops/registries/family-registry.d.ts +72 -0
  766. package/dist/lifeops/registries/family-registry.d.ts.map +1 -0
  767. package/dist/lifeops/registries/family-registry.js +98 -0
  768. package/dist/lifeops/registries/family-registry.js.map +1 -0
  769. package/dist/lifeops/registries/feature-flag-default-pack.d.ts +32 -0
  770. package/dist/lifeops/registries/feature-flag-default-pack.d.ts.map +1 -0
  771. package/dist/lifeops/registries/feature-flag-default-pack.js +36 -0
  772. package/dist/lifeops/registries/feature-flag-default-pack.js.map +1 -0
  773. package/dist/lifeops/registries/feature-flag-registry.d.ts +76 -0
  774. package/dist/lifeops/registries/feature-flag-registry.d.ts.map +1 -0
  775. package/dist/lifeops/registries/feature-flag-registry.js +68 -0
  776. package/dist/lifeops/registries/feature-flag-registry.js.map +1 -0
  777. package/dist/lifeops/registries/index.d.ts +24 -0
  778. package/dist/lifeops/registries/index.d.ts.map +1 -0
  779. package/dist/lifeops/registries/index.js +115 -0
  780. package/dist/lifeops/registries/index.js.map +1 -0
  781. package/dist/lifeops/registries/website-blocker-contribution.d.ts +21 -0
  782. package/dist/lifeops/registries/website-blocker-contribution.d.ts.map +1 -0
  783. package/dist/lifeops/registries/website-blocker-contribution.js +76 -0
  784. package/dist/lifeops/registries/website-blocker-contribution.js.map +1 -0
  785. package/dist/lifeops/registries/workflow-step-default-pack.d.ts +30 -0
  786. package/dist/lifeops/registries/workflow-step-default-pack.d.ts.map +1 -0
  787. package/dist/lifeops/registries/workflow-step-default-pack.js +315 -0
  788. package/dist/lifeops/registries/workflow-step-default-pack.js.map +1 -0
  789. package/dist/lifeops/registries/workflow-step-registry.d.ts +101 -0
  790. package/dist/lifeops/registries/workflow-step-registry.d.ts.map +1 -0
  791. package/dist/lifeops/registries/workflow-step-registry.js +56 -0
  792. package/dist/lifeops/registries/workflow-step-registry.js.map +1 -0
  793. package/dist/lifeops/relationships/extraction.d.ts +77 -0
  794. package/dist/lifeops/relationships/extraction.d.ts.map +1 -0
  795. package/dist/lifeops/relationships/extraction.js +146 -0
  796. package/dist/lifeops/relationships/extraction.js.map +1 -0
  797. package/dist/lifeops/relationships/index.d.ts +4 -0
  798. package/dist/lifeops/relationships/index.d.ts.map +1 -0
  799. package/dist/lifeops/relationships/index.js +19 -0
  800. package/dist/lifeops/relationships/index.js.map +1 -0
  801. package/dist/lifeops/relationships/mapping.d.ts +34 -0
  802. package/dist/lifeops/relationships/mapping.d.ts.map +1 -0
  803. package/dist/lifeops/relationships/mapping.js +87 -0
  804. package/dist/lifeops/relationships/mapping.js.map +1 -0
  805. package/dist/lifeops/relationships/store.d.ts +12 -0
  806. package/dist/lifeops/relationships/store.d.ts.map +1 -0
  807. package/dist/lifeops/relationships/store.js +5 -0
  808. package/dist/lifeops/relationships/store.js.map +1 -0
  809. package/dist/lifeops/relationships/types.d.ts +9 -0
  810. package/dist/lifeops/relationships/types.d.ts.map +1 -0
  811. package/dist/lifeops/relationships/types.js +11 -0
  812. package/dist/lifeops/relationships/types.js.map +1 -0
  813. package/dist/lifeops/relative-schedule-resolver.d.ts +13 -0
  814. package/dist/lifeops/relative-schedule-resolver.d.ts.map +1 -0
  815. package/dist/lifeops/relative-schedule-resolver.js +107 -0
  816. package/dist/lifeops/relative-schedule-resolver.js.map +1 -0
  817. package/dist/lifeops/relative-time.d.ts +15 -0
  818. package/dist/lifeops/relative-time.d.ts.map +1 -0
  819. package/dist/lifeops/relative-time.js +191 -0
  820. package/dist/lifeops/relative-time.js.map +1 -0
  821. package/dist/lifeops/repository.d.ts +638 -0
  822. package/dist/lifeops/repository.d.ts.map +1 -0
  823. package/dist/lifeops/repository.js +6289 -0
  824. package/dist/lifeops/repository.js.map +1 -0
  825. package/dist/lifeops/runtime-cache.d.ts +4 -0
  826. package/dist/lifeops/runtime-cache.d.ts.map +1 -0
  827. package/dist/lifeops/runtime-cache.js +7 -0
  828. package/dist/lifeops/runtime-cache.js.map +1 -0
  829. package/dist/lifeops/runtime-service-delegates.d.ts +236 -0
  830. package/dist/lifeops/runtime-service-delegates.d.ts.map +1 -0
  831. package/dist/lifeops/runtime-service-delegates.js +839 -0
  832. package/dist/lifeops/runtime-service-delegates.js.map +1 -0
  833. package/dist/lifeops/runtime.d.ts +13 -0
  834. package/dist/lifeops/runtime.d.ts.map +1 -0
  835. package/dist/lifeops/runtime.js +104 -0
  836. package/dist/lifeops/runtime.js.map +1 -0
  837. package/dist/lifeops/schedule-insight.d.ts +133 -0
  838. package/dist/lifeops/schedule-insight.d.ts.map +1 -0
  839. package/dist/lifeops/schedule-insight.js +726 -0
  840. package/dist/lifeops/schedule-insight.js.map +1 -0
  841. package/dist/lifeops/schedule-state.d.ts +39 -0
  842. package/dist/lifeops/schedule-state.d.ts.map +1 -0
  843. package/dist/lifeops/schedule-state.js +671 -0
  844. package/dist/lifeops/schedule-state.js.map +1 -0
  845. package/dist/lifeops/schedule-sync-config.d.ts +3 -0
  846. package/dist/lifeops/schedule-sync-config.d.ts.map +1 -0
  847. package/dist/lifeops/schedule-sync-config.js +23 -0
  848. package/dist/lifeops/schedule-sync-config.js.map +1 -0
  849. package/dist/lifeops/schedule-sync-contracts.d.ts +2 -0
  850. package/dist/lifeops/schedule-sync-contracts.d.ts.map +1 -0
  851. package/dist/lifeops/schedule-sync-contracts.js +2 -0
  852. package/dist/lifeops/schedule-sync-contracts.js.map +1 -0
  853. package/dist/lifeops/scheduled-task/index.d.ts +13 -0
  854. package/dist/lifeops/scheduled-task/index.d.ts.map +1 -0
  855. package/dist/lifeops/scheduled-task/index.js +14 -0
  856. package/dist/lifeops/scheduled-task/index.js.map +1 -0
  857. package/dist/lifeops/scheduled-task/runtime-wiring.d.ts +33 -0
  858. package/dist/lifeops/scheduled-task/runtime-wiring.d.ts.map +1 -0
  859. package/dist/lifeops/scheduled-task/runtime-wiring.js +334 -0
  860. package/dist/lifeops/scheduled-task/runtime-wiring.js.map +1 -0
  861. package/dist/lifeops/scheduled-task/scheduler.d.ts +28 -0
  862. package/dist/lifeops/scheduled-task/scheduler.d.ts.map +1 -0
  863. package/dist/lifeops/scheduled-task/scheduler.js +202 -0
  864. package/dist/lifeops/scheduled-task/scheduler.js.map +1 -0
  865. package/dist/lifeops/scheduled-task/service.d.ts +61 -0
  866. package/dist/lifeops/scheduled-task/service.d.ts.map +1 -0
  867. package/dist/lifeops/scheduled-task/service.js +64 -0
  868. package/dist/lifeops/scheduled-task/service.js.map +1 -0
  869. package/dist/lifeops/scheduler-task.d.ts +19 -0
  870. package/dist/lifeops/scheduler-task.d.ts.map +1 -0
  871. package/dist/lifeops/scheduler-task.js +201 -0
  872. package/dist/lifeops/scheduler-task.js.map +1 -0
  873. package/dist/lifeops/schema.d.ts +28068 -0
  874. package/dist/lifeops/schema.d.ts.map +1 -0
  875. package/dist/lifeops/schema.js +1689 -0
  876. package/dist/lifeops/schema.js.map +1 -0
  877. package/dist/lifeops/screen-context.d.ts +66 -0
  878. package/dist/lifeops/screen-context.d.ts.map +1 -0
  879. package/dist/lifeops/screen-context.js +347 -0
  880. package/dist/lifeops/screen-context.js.map +1 -0
  881. package/dist/lifeops/seed-routine-migration/migrator.d.ts +113 -0
  882. package/dist/lifeops/seed-routine-migration/migrator.d.ts.map +1 -0
  883. package/dist/lifeops/seed-routine-migration/migrator.js +142 -0
  884. package/dist/lifeops/seed-routine-migration/migrator.js.map +1 -0
  885. package/dist/lifeops/seed-routines.d.ts +24 -0
  886. package/dist/lifeops/seed-routines.d.ts.map +1 -0
  887. package/dist/lifeops/seed-routines.js +140 -0
  888. package/dist/lifeops/seed-routines.js.map +1 -0
  889. package/dist/lifeops/send-policy/contract.d.ts +81 -0
  890. package/dist/lifeops/send-policy/contract.d.ts.map +1 -0
  891. package/dist/lifeops/send-policy/contract.js +1 -0
  892. package/dist/lifeops/send-policy/contract.js.map +1 -0
  893. package/dist/lifeops/send-policy/index.d.ts +3 -0
  894. package/dist/lifeops/send-policy/index.d.ts.map +1 -0
  895. package/dist/lifeops/send-policy/index.js +13 -0
  896. package/dist/lifeops/send-policy/index.js.map +1 -0
  897. package/dist/lifeops/send-policy/registry.d.ts +7 -0
  898. package/dist/lifeops/send-policy/registry.d.ts.map +1 -0
  899. package/dist/lifeops/send-policy/registry.js +62 -0
  900. package/dist/lifeops/send-policy/registry.js.map +1 -0
  901. package/dist/lifeops/sensitive-request-delivery.d.ts +46 -0
  902. package/dist/lifeops/sensitive-request-delivery.d.ts.map +1 -0
  903. package/dist/lifeops/sensitive-request-delivery.js +103 -0
  904. package/dist/lifeops/sensitive-request-delivery.js.map +1 -0
  905. package/dist/lifeops/service-constants.d.ts +10 -0
  906. package/dist/lifeops/service-constants.d.ts.map +1 -0
  907. package/dist/lifeops/service-constants.js +129 -0
  908. package/dist/lifeops/service-constants.js.map +1 -0
  909. package/dist/lifeops/service-helpers-browser.d.ts +41 -0
  910. package/dist/lifeops/service-helpers-browser.d.ts.map +1 -0
  911. package/dist/lifeops/service-helpers-browser.js +290 -0
  912. package/dist/lifeops/service-helpers-browser.js.map +1 -0
  913. package/dist/lifeops/service-helpers-misc.d.ts +68 -0
  914. package/dist/lifeops/service-helpers-misc.d.ts.map +1 -0
  915. package/dist/lifeops/service-helpers-misc.js +531 -0
  916. package/dist/lifeops/service-helpers-misc.js.map +1 -0
  917. package/dist/lifeops/service-helpers-occurrence.d.ts +23 -0
  918. package/dist/lifeops/service-helpers-occurrence.d.ts.map +1 -0
  919. package/dist/lifeops/service-helpers-occurrence.js +257 -0
  920. package/dist/lifeops/service-helpers-occurrence.js.map +1 -0
  921. package/dist/lifeops/service-helpers-reminder.d.ts +260 -0
  922. package/dist/lifeops/service-helpers-reminder.d.ts.map +1 -0
  923. package/dist/lifeops/service-helpers-reminder.js +1186 -0
  924. package/dist/lifeops/service-helpers-reminder.js.map +1 -0
  925. package/dist/lifeops/service-mixin-browser.d.ts +31 -0
  926. package/dist/lifeops/service-mixin-browser.d.ts.map +1 -0
  927. package/dist/lifeops/service-mixin-browser.js +975 -0
  928. package/dist/lifeops/service-mixin-browser.js.map +1 -0
  929. package/dist/lifeops/service-mixin-calendar.d.ts +53 -0
  930. package/dist/lifeops/service-mixin-calendar.d.ts.map +1 -0
  931. package/dist/lifeops/service-mixin-calendar.js +68 -0
  932. package/dist/lifeops/service-mixin-calendar.js.map +1 -0
  933. package/dist/lifeops/service-mixin-core.d.ts +51 -0
  934. package/dist/lifeops/service-mixin-core.d.ts.map +1 -0
  935. package/dist/lifeops/service-mixin-core.js +500 -0
  936. package/dist/lifeops/service-mixin-core.js.map +1 -0
  937. package/dist/lifeops/service-mixin-definitions.d.ts +14 -0
  938. package/dist/lifeops/service-mixin-definitions.d.ts.map +1 -0
  939. package/dist/lifeops/service-mixin-definitions.js +470 -0
  940. package/dist/lifeops/service-mixin-definitions.js.map +1 -0
  941. package/dist/lifeops/service-mixin-discord.d.ts +49 -0
  942. package/dist/lifeops/service-mixin-discord.d.ts.map +1 -0
  943. package/dist/lifeops/service-mixin-discord.js +1253 -0
  944. package/dist/lifeops/service-mixin-discord.js.map +1 -0
  945. package/dist/lifeops/service-mixin-drive.d.ts +96 -0
  946. package/dist/lifeops/service-mixin-drive.d.ts.map +1 -0
  947. package/dist/lifeops/service-mixin-drive.js +213 -0
  948. package/dist/lifeops/service-mixin-drive.js.map +1 -0
  949. package/dist/lifeops/service-mixin-email-unsubscribe.d.ts +23 -0
  950. package/dist/lifeops/service-mixin-email-unsubscribe.d.ts.map +1 -0
  951. package/dist/lifeops/service-mixin-email-unsubscribe.js +27 -0
  952. package/dist/lifeops/service-mixin-email-unsubscribe.js.map +1 -0
  953. package/dist/lifeops/service-mixin-gmail.d.ts +43 -0
  954. package/dist/lifeops/service-mixin-gmail.d.ts.map +1 -0
  955. package/dist/lifeops/service-mixin-gmail.js +727 -0
  956. package/dist/lifeops/service-mixin-gmail.js.map +1 -0
  957. package/dist/lifeops/service-mixin-goals.d.ts +22 -0
  958. package/dist/lifeops/service-mixin-goals.d.ts.map +1 -0
  959. package/dist/lifeops/service-mixin-goals.js +884 -0
  960. package/dist/lifeops/service-mixin-goals.js.map +1 -0
  961. package/dist/lifeops/service-mixin-google.d.ts +13 -0
  962. package/dist/lifeops/service-mixin-google.d.ts.map +1 -0
  963. package/dist/lifeops/service-mixin-google.js +398 -0
  964. package/dist/lifeops/service-mixin-google.js.map +1 -0
  965. package/dist/lifeops/service-mixin-health.d.ts +27 -0
  966. package/dist/lifeops/service-mixin-health.d.ts.map +1 -0
  967. package/dist/lifeops/service-mixin-health.js +670 -0
  968. package/dist/lifeops/service-mixin-health.js.map +1 -0
  969. package/dist/lifeops/service-mixin-imessage.d.ts +106 -0
  970. package/dist/lifeops/service-mixin-imessage.d.ts.map +1 -0
  971. package/dist/lifeops/service-mixin-imessage.js +303 -0
  972. package/dist/lifeops/service-mixin-imessage.js.map +1 -0
  973. package/dist/lifeops/service-mixin-inbox.d.ts +55 -0
  974. package/dist/lifeops/service-mixin-inbox.d.ts.map +1 -0
  975. package/dist/lifeops/service-mixin-inbox.js +597 -0
  976. package/dist/lifeops/service-mixin-inbox.js.map +1 -0
  977. package/dist/lifeops/service-mixin-relationships.d.ts +65 -0
  978. package/dist/lifeops/service-mixin-relationships.d.ts.map +1 -0
  979. package/dist/lifeops/service-mixin-relationships.js +150 -0
  980. package/dist/lifeops/service-mixin-relationships.js.map +1 -0
  981. package/dist/lifeops/service-mixin-reminders.d.ts +62 -0
  982. package/dist/lifeops/service-mixin-reminders.d.ts.map +1 -0
  983. package/dist/lifeops/service-mixin-reminders.js +4003 -0
  984. package/dist/lifeops/service-mixin-reminders.js.map +1 -0
  985. package/dist/lifeops/service-mixin-scheduling.d.ts +53 -0
  986. package/dist/lifeops/service-mixin-scheduling.d.ts.map +1 -0
  987. package/dist/lifeops/service-mixin-scheduling.js +405 -0
  988. package/dist/lifeops/service-mixin-scheduling.js.map +1 -0
  989. package/dist/lifeops/service-mixin-screentime.d.ts +71 -0
  990. package/dist/lifeops/service-mixin-screentime.d.ts.map +1 -0
  991. package/dist/lifeops/service-mixin-screentime.js +530 -0
  992. package/dist/lifeops/service-mixin-screentime.js.map +1 -0
  993. package/dist/lifeops/service-mixin-signal.d.ts +74 -0
  994. package/dist/lifeops/service-mixin-signal.d.ts.map +1 -0
  995. package/dist/lifeops/service-mixin-signal.js +214 -0
  996. package/dist/lifeops/service-mixin-signal.js.map +1 -0
  997. package/dist/lifeops/service-mixin-sleep.d.ts +68 -0
  998. package/dist/lifeops/service-mixin-sleep.d.ts.map +1 -0
  999. package/dist/lifeops/service-mixin-sleep.js +43 -0
  1000. package/dist/lifeops/service-mixin-sleep.js.map +1 -0
  1001. package/dist/lifeops/service-mixin-status.d.ts +31 -0
  1002. package/dist/lifeops/service-mixin-status.d.ts.map +1 -0
  1003. package/dist/lifeops/service-mixin-status.js +373 -0
  1004. package/dist/lifeops/service-mixin-status.js.map +1 -0
  1005. package/dist/lifeops/service-mixin-subscriptions.d.ts +101 -0
  1006. package/dist/lifeops/service-mixin-subscriptions.d.ts.map +1 -0
  1007. package/dist/lifeops/service-mixin-subscriptions.js +50 -0
  1008. package/dist/lifeops/service-mixin-subscriptions.js.map +1 -0
  1009. package/dist/lifeops/service-mixin-telegram.d.ts +104 -0
  1010. package/dist/lifeops/service-mixin-telegram.d.ts.map +1 -0
  1011. package/dist/lifeops/service-mixin-telegram.js +280 -0
  1012. package/dist/lifeops/service-mixin-telegram.js.map +1 -0
  1013. package/dist/lifeops/service-mixin-travel.d.ts +66 -0
  1014. package/dist/lifeops/service-mixin-travel.d.ts.map +1 -0
  1015. package/dist/lifeops/service-mixin-travel.js +275 -0
  1016. package/dist/lifeops/service-mixin-travel.js.map +1 -0
  1017. package/dist/lifeops/service-mixin-whatsapp.d.ts +96 -0
  1018. package/dist/lifeops/service-mixin-whatsapp.d.ts.map +1 -0
  1019. package/dist/lifeops/service-mixin-whatsapp.js +186 -0
  1020. package/dist/lifeops/service-mixin-whatsapp.js.map +1 -0
  1021. package/dist/lifeops/service-mixin-workflows.d.ts +15 -0
  1022. package/dist/lifeops/service-mixin-workflows.d.ts.map +1 -0
  1023. package/dist/lifeops/service-mixin-workflows.js +710 -0
  1024. package/dist/lifeops/service-mixin-workflows.js.map +1 -0
  1025. package/dist/lifeops/service-mixin-x-read.d.ts +31 -0
  1026. package/dist/lifeops/service-mixin-x-read.d.ts.map +1 -0
  1027. package/dist/lifeops/service-mixin-x-read.js +267 -0
  1028. package/dist/lifeops/service-mixin-x-read.js.map +1 -0
  1029. package/dist/lifeops/service-mixin-x.d.ts +66 -0
  1030. package/dist/lifeops/service-mixin-x.d.ts.map +1 -0
  1031. package/dist/lifeops/service-mixin-x.js +501 -0
  1032. package/dist/lifeops/service-mixin-x.js.map +1 -0
  1033. package/dist/lifeops/service-normalize-connector.d.ts +19 -0
  1034. package/dist/lifeops/service-normalize-connector.d.ts.map +1 -0
  1035. package/dist/lifeops/service-normalize-connector.js +816 -0
  1036. package/dist/lifeops/service-normalize-connector.js.map +1 -0
  1037. package/dist/lifeops/service-normalize-gmail.d.ts +11 -0
  1038. package/dist/lifeops/service-normalize-gmail.d.ts.map +1 -0
  1039. package/dist/lifeops/service-normalize-gmail.js +85 -0
  1040. package/dist/lifeops/service-normalize-gmail.js.map +1 -0
  1041. package/dist/lifeops/service-normalize-task.d.ts +9 -0
  1042. package/dist/lifeops/service-normalize-task.d.ts.map +1 -0
  1043. package/dist/lifeops/service-normalize-task.js +567 -0
  1044. package/dist/lifeops/service-normalize-task.js.map +1 -0
  1045. package/dist/lifeops/service-normalize.d.ts +9 -0
  1046. package/dist/lifeops/service-normalize.d.ts.map +1 -0
  1047. package/dist/lifeops/service-normalize.js +53 -0
  1048. package/dist/lifeops/service-normalize.js.map +1 -0
  1049. package/dist/lifeops/service-types.d.ts +75 -0
  1050. package/dist/lifeops/service-types.d.ts.map +1 -0
  1051. package/dist/lifeops/service-types.js +5 -0
  1052. package/dist/lifeops/service-types.js.map +1 -0
  1053. package/dist/lifeops/service.d.ts +482 -0
  1054. package/dist/lifeops/service.d.ts.map +1 -0
  1055. package/dist/lifeops/service.js +62 -0
  1056. package/dist/lifeops/service.js.map +1 -0
  1057. package/dist/lifeops/signal-runtime-config.d.ts +13 -0
  1058. package/dist/lifeops/signal-runtime-config.d.ts.map +1 -0
  1059. package/dist/lifeops/signal-runtime-config.js +44 -0
  1060. package/dist/lifeops/signal-runtime-config.js.map +1 -0
  1061. package/dist/lifeops/signals/bus.d.ts +78 -0
  1062. package/dist/lifeops/signals/bus.d.ts.map +1 -0
  1063. package/dist/lifeops/signals/bus.js +117 -0
  1064. package/dist/lifeops/signals/bus.js.map +1 -0
  1065. package/dist/lifeops/sql.d.ts +65 -0
  1066. package/dist/lifeops/sql.d.ts.map +1 -0
  1067. package/dist/lifeops/sql.js +182 -0
  1068. package/dist/lifeops/sql.js.map +1 -0
  1069. package/dist/lifeops/stretch-decider.d.ts +73 -0
  1070. package/dist/lifeops/stretch-decider.d.ts.map +1 -0
  1071. package/dist/lifeops/stretch-decider.js +49 -0
  1072. package/dist/lifeops/stretch-decider.js.map +1 -0
  1073. package/dist/lifeops/telemetry-mapping.d.ts +14 -0
  1074. package/dist/lifeops/telemetry-mapping.d.ts.map +1 -0
  1075. package/dist/lifeops/telemetry-mapping.js +115 -0
  1076. package/dist/lifeops/telemetry-mapping.js.map +1 -0
  1077. package/dist/lifeops/telemetry-retention.d.ts +21 -0
  1078. package/dist/lifeops/telemetry-retention.d.ts.map +1 -0
  1079. package/dist/lifeops/telemetry-retention.js +13 -0
  1080. package/dist/lifeops/telemetry-retention.js.map +1 -0
  1081. package/dist/lifeops/time/timezone.d.ts +4 -0
  1082. package/dist/lifeops/time/timezone.d.ts.map +1 -0
  1083. package/dist/lifeops/time/timezone.js +154 -0
  1084. package/dist/lifeops/time/timezone.js.map +1 -0
  1085. package/dist/lifeops/time-util.d.ts +10 -0
  1086. package/dist/lifeops/time-util.d.ts.map +1 -0
  1087. package/dist/lifeops/time-util.js +14 -0
  1088. package/dist/lifeops/time-util.js.map +1 -0
  1089. package/dist/lifeops/time.d.ts +17 -0
  1090. package/dist/lifeops/time.d.ts.map +1 -0
  1091. package/dist/lifeops/time.js +152 -0
  1092. package/dist/lifeops/time.js.map +1 -0
  1093. package/dist/lifeops/travel-booking.types.d.ts +46 -0
  1094. package/dist/lifeops/travel-booking.types.d.ts.map +1 -0
  1095. package/dist/lifeops/travel-booking.types.js +1 -0
  1096. package/dist/lifeops/travel-booking.types.js.map +1 -0
  1097. package/dist/lifeops/triggers/schedule-once.d.ts +19 -0
  1098. package/dist/lifeops/triggers/schedule-once.d.ts.map +1 -0
  1099. package/dist/lifeops/triggers/schedule-once.js +99 -0
  1100. package/dist/lifeops/triggers/schedule-once.js.map +1 -0
  1101. package/dist/lifeops/validate/coding-task-request.d.ts +18 -0
  1102. package/dist/lifeops/validate/coding-task-request.d.ts.map +1 -0
  1103. package/dist/lifeops/validate/coding-task-request.js +16 -0
  1104. package/dist/lifeops/validate/coding-task-request.js.map +1 -0
  1105. package/dist/lifeops/voice/grounded-reply.d.ts +41 -0
  1106. package/dist/lifeops/voice/grounded-reply.d.ts.map +1 -0
  1107. package/dist/lifeops/voice/grounded-reply.js +24 -0
  1108. package/dist/lifeops/voice/grounded-reply.js.map +1 -0
  1109. package/dist/lifeops/voice-affect.d.ts +79 -0
  1110. package/dist/lifeops/voice-affect.d.ts.map +1 -0
  1111. package/dist/lifeops/voice-affect.js +253 -0
  1112. package/dist/lifeops/voice-affect.js.map +1 -0
  1113. package/dist/lifeops/wave1-types.d.ts +125 -0
  1114. package/dist/lifeops/wave1-types.d.ts.map +1 -0
  1115. package/dist/lifeops/wave1-types.js +1 -0
  1116. package/dist/lifeops/wave1-types.js.map +1 -0
  1117. package/dist/lifeops/work-threads/field-evaluator-thread-ops.d.ts +33 -0
  1118. package/dist/lifeops/work-threads/field-evaluator-thread-ops.d.ts.map +1 -0
  1119. package/dist/lifeops/work-threads/field-evaluator-thread-ops.js +226 -0
  1120. package/dist/lifeops/work-threads/field-evaluator-thread-ops.js.map +1 -0
  1121. package/dist/lifeops/work-threads/index.d.ts +3 -0
  1122. package/dist/lifeops/work-threads/index.d.ts.map +1 -0
  1123. package/dist/lifeops/work-threads/index.js +7 -0
  1124. package/dist/lifeops/work-threads/index.js.map +1 -0
  1125. package/dist/lifeops/work-threads/store.d.ts +91 -0
  1126. package/dist/lifeops/work-threads/store.d.ts.map +1 -0
  1127. package/dist/lifeops/work-threads/store.js +245 -0
  1128. package/dist/lifeops/work-threads/store.js.map +1 -0
  1129. package/dist/lifeops/work-threads/types.d.ts +58 -0
  1130. package/dist/lifeops/work-threads/types.d.ts.map +1 -0
  1131. package/dist/lifeops/work-threads/types.js +1 -0
  1132. package/dist/lifeops/work-threads/types.js.map +1 -0
  1133. package/dist/platform/host.d.ts +16 -0
  1134. package/dist/platform/host.d.ts.map +1 -0
  1135. package/dist/platform/host.js +22 -0
  1136. package/dist/platform/host.js.map +1 -0
  1137. package/dist/platform/index.d.ts +3 -0
  1138. package/dist/platform/index.d.ts.map +1 -0
  1139. package/dist/platform/index.js +3 -0
  1140. package/dist/platform/index.js.map +1 -0
  1141. package/dist/platform/lifeops-github.d.ts +15 -0
  1142. package/dist/platform/lifeops-github.d.ts.map +1 -0
  1143. package/dist/platform/lifeops-github.js +146 -0
  1144. package/dist/platform/lifeops-github.js.map +1 -0
  1145. package/dist/plugin.d.ts +106 -0
  1146. package/dist/plugin.d.ts.map +1 -0
  1147. package/dist/plugin.js +989 -0
  1148. package/dist/plugin.js.map +1 -0
  1149. package/dist/provider.d.ts +4 -0
  1150. package/dist/provider.d.ts.map +1 -0
  1151. package/dist/provider.js +108 -0
  1152. package/dist/provider.js.map +1 -0
  1153. package/dist/providers/activity-profile.d.ts +3 -0
  1154. package/dist/providers/activity-profile.d.ts.map +1 -0
  1155. package/dist/providers/activity-profile.js +140 -0
  1156. package/dist/providers/activity-profile.js.map +1 -0
  1157. package/dist/providers/cross-channel-context.d.ts +29 -0
  1158. package/dist/providers/cross-channel-context.d.ts.map +1 -0
  1159. package/dist/providers/cross-channel-context.js +206 -0
  1160. package/dist/providers/cross-channel-context.js.map +1 -0
  1161. package/dist/providers/first-run.d.ts +22 -0
  1162. package/dist/providers/first-run.d.ts.map +1 -0
  1163. package/dist/providers/first-run.js +93 -0
  1164. package/dist/providers/first-run.js.map +1 -0
  1165. package/dist/providers/health.d.ts +2 -0
  1166. package/dist/providers/health.d.ts.map +1 -0
  1167. package/dist/providers/health.js +14 -0
  1168. package/dist/providers/health.js.map +1 -0
  1169. package/dist/providers/inbox-triage.d.ts +3 -0
  1170. package/dist/providers/inbox-triage.d.ts.map +1 -0
  1171. package/dist/providers/inbox-triage.js +134 -0
  1172. package/dist/providers/inbox-triage.js.map +1 -0
  1173. package/dist/providers/lifeops.d.ts +3 -0
  1174. package/dist/providers/lifeops.d.ts.map +1 -0
  1175. package/dist/providers/lifeops.js +548 -0
  1176. package/dist/providers/lifeops.js.map +1 -0
  1177. package/dist/providers/pending-prompts.d.ts +38 -0
  1178. package/dist/providers/pending-prompts.d.ts.map +1 -0
  1179. package/dist/providers/pending-prompts.js +81 -0
  1180. package/dist/providers/pending-prompts.js.map +1 -0
  1181. package/dist/providers/recent-task-states.d.ts +52 -0
  1182. package/dist/providers/recent-task-states.d.ts.map +1 -0
  1183. package/dist/providers/recent-task-states.js +166 -0
  1184. package/dist/providers/recent-task-states.js.map +1 -0
  1185. package/dist/providers/room-policy.d.ts +16 -0
  1186. package/dist/providers/room-policy.d.ts.map +1 -0
  1187. package/dist/providers/room-policy.js +71 -0
  1188. package/dist/providers/room-policy.js.map +1 -0
  1189. package/dist/providers/work-threads.d.ts +3 -0
  1190. package/dist/providers/work-threads.d.ts.map +1 -0
  1191. package/dist/providers/work-threads.js +97 -0
  1192. package/dist/providers/work-threads.js.map +1 -0
  1193. package/dist/public.d.ts +3 -0
  1194. package/dist/public.d.ts.map +1 -0
  1195. package/dist/public.js +17 -0
  1196. package/dist/public.js.map +1 -0
  1197. package/dist/routes/cloud-features-routes.d.ts +9 -0
  1198. package/dist/routes/cloud-features-routes.d.ts.map +1 -0
  1199. package/dist/routes/cloud-features-routes.js +164 -0
  1200. package/dist/routes/cloud-features-routes.js.map +1 -0
  1201. package/dist/routes/entities.d.ts +14 -0
  1202. package/dist/routes/entities.d.ts.map +1 -0
  1203. package/dist/routes/entities.js +203 -0
  1204. package/dist/routes/entities.js.map +1 -0
  1205. package/dist/routes/lifeops-routes.d.ts +20 -0
  1206. package/dist/routes/lifeops-routes.d.ts.map +1 -0
  1207. package/dist/routes/lifeops-routes.js +2337 -0
  1208. package/dist/routes/lifeops-routes.js.map +1 -0
  1209. package/dist/routes/plugin.d.ts +9 -0
  1210. package/dist/routes/plugin.d.ts.map +1 -0
  1211. package/dist/routes/plugin.js +568 -0
  1212. package/dist/routes/plugin.js.map +1 -0
  1213. package/dist/routes/relationships.d.ts +13 -0
  1214. package/dist/routes/relationships.d.ts.map +1 -0
  1215. package/dist/routes/relationships.js +195 -0
  1216. package/dist/routes/relationships.js.map +1 -0
  1217. package/dist/routes/scheduled-tasks.d.ts +102 -0
  1218. package/dist/routes/scheduled-tasks.d.ts.map +1 -0
  1219. package/dist/routes/scheduled-tasks.js +322 -0
  1220. package/dist/routes/scheduled-tasks.js.map +1 -0
  1221. package/dist/routes/sleep-routes.d.ts +3 -0
  1222. package/dist/routes/sleep-routes.d.ts.map +1 -0
  1223. package/dist/routes/sleep-routes.js +33 -0
  1224. package/dist/routes/sleep-routes.js.map +1 -0
  1225. package/dist/routes/travel-provider-relay-routes.d.ts +2 -0
  1226. package/dist/routes/travel-provider-relay-routes.d.ts.map +1 -0
  1227. package/dist/routes/travel-provider-relay-routes.js +7 -0
  1228. package/dist/routes/travel-provider-relay-routes.js.map +1 -0
  1229. package/dist/routes/website-blocker-routes.d.ts +6 -0
  1230. package/dist/routes/website-blocker-routes.d.ts.map +1 -0
  1231. package/dist/routes/website-blocker-routes.js +218 -0
  1232. package/dist/routes/website-blocker-routes.js.map +1 -0
  1233. package/dist/security/action-confirmation.d.ts +12 -0
  1234. package/dist/security/action-confirmation.d.ts.map +1 -0
  1235. package/dist/security/action-confirmation.js +36 -0
  1236. package/dist/security/action-confirmation.js.map +1 -0
  1237. package/dist/service.d.ts +34 -0
  1238. package/dist/service.d.ts.map +1 -0
  1239. package/dist/service.js +111 -0
  1240. package/dist/service.js.map +1 -0
  1241. package/dist/travel-time/calendar-create.d.ts +17 -0
  1242. package/dist/travel-time/calendar-create.d.ts.map +1 -0
  1243. package/dist/travel-time/calendar-create.js +28 -0
  1244. package/dist/travel-time/calendar-create.js.map +1 -0
  1245. package/dist/travel-time/service.d.ts +114 -0
  1246. package/dist/travel-time/service.d.ts.map +1 -0
  1247. package/dist/travel-time/service.js +209 -0
  1248. package/dist/travel-time/service.js.map +1 -0
  1249. package/dist/types/app-blocker-settings-card.d.ts +2 -0
  1250. package/dist/types/app-blocker-settings-card.d.ts.map +1 -0
  1251. package/dist/types/app-blocker-settings-card.js +1 -0
  1252. package/dist/types/app-blocker-settings-card.js.map +1 -0
  1253. package/dist/types/briefing.d.ts +59 -0
  1254. package/dist/types/briefing.d.ts.map +1 -0
  1255. package/dist/types/briefing.js +1 -0
  1256. package/dist/types/briefing.js.map +1 -0
  1257. package/dist/types/document-request.d.ts +41 -0
  1258. package/dist/types/document-request.d.ts.map +1 -0
  1259. package/dist/types/document-request.js +1 -0
  1260. package/dist/types/document-request.js.map +1 -0
  1261. package/dist/types/index.d.ts +5 -0
  1262. package/dist/types/index.d.ts.map +1 -0
  1263. package/dist/types/index.js +1 -0
  1264. package/dist/types/index.js.map +1 -0
  1265. package/dist/types/website-blocker-settings-card.d.ts +2 -0
  1266. package/dist/types/website-blocker-settings-card.d.ts.map +1 -0
  1267. package/dist/types/website-blocker-settings-card.js +1 -0
  1268. package/dist/types/website-blocker-settings-card.js.map +1 -0
  1269. package/dist/ui.d.ts +13 -0
  1270. package/dist/ui.d.ts.map +1 -0
  1271. package/dist/ui.js +25 -0
  1272. package/dist/ui.js.map +1 -0
  1273. package/dist/utils/format-duration.d.ts +2 -0
  1274. package/dist/utils/format-duration.d.ts.map +1 -0
  1275. package/dist/utils/format-duration.js +13 -0
  1276. package/dist/utils/format-duration.js.map +1 -0
  1277. package/dist/utils/index.d.ts +3 -0
  1278. package/dist/utils/index.d.ts.map +1 -0
  1279. package/dist/utils/index.js +3 -0
  1280. package/dist/utils/index.js.map +1 -0
  1281. package/dist/utils/lifeops-url.d.ts +3 -0
  1282. package/dist/utils/lifeops-url.d.ts.map +1 -0
  1283. package/dist/utils/lifeops-url.js +28 -0
  1284. package/dist/utils/lifeops-url.js.map +1 -0
  1285. package/dist/website-blocker/chat-integration/block-activator.d.ts +32 -0
  1286. package/dist/website-blocker/chat-integration/block-activator.d.ts.map +1 -0
  1287. package/dist/website-blocker/chat-integration/block-activator.js +30 -0
  1288. package/dist/website-blocker/chat-integration/block-activator.js.map +1 -0
  1289. package/dist/website-blocker/chat-integration/block-rule-reconciler.d.ts +7 -0
  1290. package/dist/website-blocker/chat-integration/block-rule-reconciler.d.ts.map +1 -0
  1291. package/dist/website-blocker/chat-integration/block-rule-reconciler.js +115 -0
  1292. package/dist/website-blocker/chat-integration/block-rule-reconciler.js.map +1 -0
  1293. package/dist/website-blocker/chat-integration/block-rule-schema.d.ts +39 -0
  1294. package/dist/website-blocker/chat-integration/block-rule-schema.d.ts.map +1 -0
  1295. package/dist/website-blocker/chat-integration/block-rule-schema.js +133 -0
  1296. package/dist/website-blocker/chat-integration/block-rule-schema.js.map +1 -0
  1297. package/dist/website-blocker/chat-integration/block-rule-service.d.ts +21 -0
  1298. package/dist/website-blocker/chat-integration/block-rule-service.d.ts.map +1 -0
  1299. package/dist/website-blocker/chat-integration/block-rule-service.js +230 -0
  1300. package/dist/website-blocker/chat-integration/block-rule-service.js.map +1 -0
  1301. package/dist/website-blocker/chat-integration/harsh-mode-check.d.ts +13 -0
  1302. package/dist/website-blocker/chat-integration/harsh-mode-check.d.ts.map +1 -0
  1303. package/dist/website-blocker/chat-integration/harsh-mode-check.js +22 -0
  1304. package/dist/website-blocker/chat-integration/harsh-mode-check.js.map +1 -0
  1305. package/dist/website-blocker/chat-integration/index.d.ts +5 -0
  1306. package/dist/website-blocker/chat-integration/index.d.ts.map +1 -0
  1307. package/dist/website-blocker/chat-integration/index.js +26 -0
  1308. package/dist/website-blocker/chat-integration/index.js.map +1 -0
  1309. package/dist/website-blocker/proactive-block-bridge.d.ts +75 -0
  1310. package/dist/website-blocker/proactive-block-bridge.d.ts.map +1 -0
  1311. package/dist/website-blocker/proactive-block-bridge.js +154 -0
  1312. package/dist/website-blocker/proactive-block-bridge.js.map +1 -0
  1313. package/dist/website-blocker/public.d.ts +12 -0
  1314. package/dist/website-blocker/public.d.ts.map +1 -0
  1315. package/dist/website-blocker/public.js +51 -0
  1316. package/dist/website-blocker/public.js.map +1 -0
  1317. package/package.json +28 -28
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Default escalation ladders. The runner injects one of these ladders when a
3
+ * `ScheduledTask` lacks an explicit `escalation` block, keyed off the task's
4
+ * `priority`:
5
+ * - `priority_low_default` — single attempt, no ladder.
6
+ * - `priority_medium_default` — 1 retry after 30 min.
7
+ * - `priority_high_default` — 3 steps across channels (in_app → push → imessage).
8
+ *
9
+ * Channel keys (`in_app`, `push`, `imessage`) reference
10
+ * {@link import("./channels/contract.js").ChannelContribution.kind}; the
11
+ * channel registry is responsible for resolving them at dispatch time.
12
+ */
13
+ export type EscalationIntensity = "soft" | "normal" | "urgent";
14
+ export interface EscalationStep {
15
+ delayMinutes: number;
16
+ channelKey: string;
17
+ intensity?: EscalationIntensity;
18
+ }
19
+ export interface EscalationLadder {
20
+ steps: EscalationStep[];
21
+ }
22
+ export declare const DEFAULT_ESCALATION_LADDERS: Readonly<{
23
+ priority_low_default: EscalationLadder;
24
+ priority_medium_default: EscalationLadder;
25
+ priority_high_default: EscalationLadder;
26
+ }>;
27
+ export type DefaultEscalationLadderKey = keyof typeof DEFAULT_ESCALATION_LADDERS;
28
+ //# sourceMappingURL=escalation-ladders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escalation-ladders.d.ts","sourceRoot":"","sources":["../../src/lifeops/escalation-ladders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE/D,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACjC;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC;IAChD,oBAAoB,EAAE,gBAAgB,CAAC;IACvC,uBAAuB,EAAE,gBAAgB,CAAC;IAC1C,qBAAqB,EAAE,gBAAgB,CAAC;CACzC,CAYS,CAAC;AAEX,MAAM,MAAM,0BAA0B,GACpC,MAAM,OAAO,0BAA0B,CAAC"}
@@ -0,0 +1,17 @@
1
+ const DEFAULT_ESCALATION_LADDERS = {
2
+ priority_low_default: { steps: [] },
3
+ priority_medium_default: {
4
+ steps: [{ delayMinutes: 30, channelKey: "in_app", intensity: "normal" }]
5
+ },
6
+ priority_high_default: {
7
+ steps: [
8
+ { delayMinutes: 0, channelKey: "in_app", intensity: "soft" },
9
+ { delayMinutes: 15, channelKey: "push", intensity: "normal" },
10
+ { delayMinutes: 45, channelKey: "imessage", intensity: "urgent" }
11
+ ]
12
+ }
13
+ };
14
+ export {
15
+ DEFAULT_ESCALATION_LADDERS
16
+ };
17
+ //# sourceMappingURL=escalation-ladders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lifeops/escalation-ladders.ts"],"sourcesContent":["/**\n * Default escalation ladders. The runner injects one of these ladders when a\n * `ScheduledTask` lacks an explicit `escalation` block, keyed off the task's\n * `priority`:\n * - `priority_low_default` — single attempt, no ladder.\n * - `priority_medium_default` — 1 retry after 30 min.\n * - `priority_high_default` — 3 steps across channels (in_app → push → imessage).\n *\n * Channel keys (`in_app`, `push`, `imessage`) reference\n * {@link import(\"./channels/contract.js\").ChannelContribution.kind}; the\n * channel registry is responsible for resolving them at dispatch time.\n */\n\nexport type EscalationIntensity = \"soft\" | \"normal\" | \"urgent\";\n\nexport interface EscalationStep {\n delayMinutes: number;\n channelKey: string;\n intensity?: EscalationIntensity;\n}\n\nexport interface EscalationLadder {\n steps: EscalationStep[];\n}\n\nexport const DEFAULT_ESCALATION_LADDERS: Readonly<{\n priority_low_default: EscalationLadder;\n priority_medium_default: EscalationLadder;\n priority_high_default: EscalationLadder;\n}> = {\n priority_low_default: { steps: [] },\n priority_medium_default: {\n steps: [{ delayMinutes: 30, channelKey: \"in_app\", intensity: \"normal\" }],\n },\n priority_high_default: {\n steps: [\n { delayMinutes: 0, channelKey: \"in_app\", intensity: \"soft\" },\n { delayMinutes: 15, channelKey: \"push\", intensity: \"normal\" },\n { delayMinutes: 45, channelKey: \"imessage\", intensity: \"urgent\" },\n ],\n },\n} as const;\n\nexport type DefaultEscalationLadderKey =\n keyof typeof DEFAULT_ESCALATION_LADDERS;\n"],"mappings":"AAyBO,MAAM,6BAIR;AAAA,EACH,sBAAsB,EAAE,OAAO,CAAC,EAAE;AAAA,EAClC,yBAAyB;AAAA,IACvB,OAAO,CAAC,EAAE,cAAc,IAAI,YAAY,UAAU,WAAW,SAAS,CAAC;AAAA,EACzE;AAAA,EACA,uBAAuB;AAAA,IACrB,OAAO;AAAA,MACL,EAAE,cAAc,GAAG,YAAY,UAAU,WAAW,OAAO;AAAA,MAC3D,EAAE,cAAc,IAAI,YAAY,QAAQ,WAAW,SAAS;AAAA,MAC5D,EAAE,cAAc,IAAI,YAAY,YAAY,WAAW,SAAS;AAAA,IAClE;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Probe macOS Full Disk Access (FDA) availability by attempting to open the
3
+ * user's `chat.db`. Used by the permissions panel to show whether the
4
+ * iMessage outbound probe is actually running or silently disabled.
5
+ *
6
+ * Status semantics:
7
+ * - "granted": the chat.db file opened successfully.
8
+ * - "revoked": file exists but OS denied read (EPERM / EACCES).
9
+ * - "not_applicable": not darwin, or chat.db is missing (user never used
10
+ * iMessage on this mac).
11
+ * - "unknown": probe threw an unclassified error.
12
+ */
13
+ export type FullDiskAccessStatus = "granted" | "revoked" | "not_applicable" | "unknown";
14
+ export interface FullDiskAccessProbeResult {
15
+ status: FullDiskAccessStatus;
16
+ checkedAt: string;
17
+ chatDbPath: string;
18
+ reason: string | null;
19
+ }
20
+ export declare function probeFullDiskAccess(overrides?: {
21
+ chatDbPath?: string | null;
22
+ }): Promise<FullDiskAccessProbeResult>;
23
+ //# sourceMappingURL=fda-probe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fda-probe.d.ts","sourceRoot":"","sources":["../../src/lifeops/fda-probe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,MAAM,MAAM,oBAAoB,GAC5B,SAAS,GACT,SAAS,GACT,gBAAgB,GAChB,SAAS,CAAC;AAEd,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAcD,wBAAsB,mBAAmB,CAAC,SAAS,CAAC,EAAE;IACpD,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAmDrC"}
@@ -0,0 +1,59 @@
1
+ import { promises as fs } from "node:fs";
2
+ import { homedir } from "node:os";
3
+ import { join } from "node:path";
4
+ const DEFAULT_CHAT_DB_PATH = join(homedir(), "Library", "Messages", "chat.db");
5
+ function isNodeErrno(value) {
6
+ return value instanceof Error && typeof value.code === "string";
7
+ }
8
+ async function probeFullDiskAccess(overrides) {
9
+ const checkedAt = (/* @__PURE__ */ new Date()).toISOString();
10
+ if (process.platform !== "darwin") {
11
+ return {
12
+ status: "not_applicable",
13
+ checkedAt,
14
+ chatDbPath: "",
15
+ reason: "FDA is only meaningful on macOS"
16
+ };
17
+ }
18
+ const chatDbPath = (overrides?.chatDbPath?.trim() || null) ?? process.env.IMESSAGE_DB_PATH?.trim() ?? DEFAULT_CHAT_DB_PATH;
19
+ try {
20
+ const handle = await fs.open(chatDbPath, "r");
21
+ await handle.close();
22
+ return { status: "granted", checkedAt, chatDbPath, reason: null };
23
+ } catch (error) {
24
+ if (isNodeErrno(error)) {
25
+ if (error.code === "ENOENT") {
26
+ return {
27
+ status: "not_applicable",
28
+ checkedAt,
29
+ chatDbPath,
30
+ reason: "chat.db not present (user may never have used iMessage)"
31
+ };
32
+ }
33
+ if (error.code === "EPERM" || error.code === "EACCES") {
34
+ return {
35
+ status: "revoked",
36
+ checkedAt,
37
+ chatDbPath,
38
+ reason: "Full Disk Access is required to read chat.db. Grant it to the app running Eliza, such as Eliza.app, Terminal, iTerm, or Cursor, then relaunch."
39
+ };
40
+ }
41
+ return {
42
+ status: "unknown",
43
+ checkedAt,
44
+ chatDbPath,
45
+ reason: `${error.code}: ${error.message}`
46
+ };
47
+ }
48
+ return {
49
+ status: "unknown",
50
+ checkedAt,
51
+ chatDbPath,
52
+ reason: error instanceof Error ? error.message : String(error)
53
+ };
54
+ }
55
+ }
56
+ export {
57
+ probeFullDiskAccess
58
+ };
59
+ //# sourceMappingURL=fda-probe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lifeops/fda-probe.ts"],"sourcesContent":["/**\n * Probe macOS Full Disk Access (FDA) availability by attempting to open the\n * user's `chat.db`. Used by the permissions panel to show whether the\n * iMessage outbound probe is actually running or silently disabled.\n *\n * Status semantics:\n * - \"granted\": the chat.db file opened successfully.\n * - \"revoked\": file exists but OS denied read (EPERM / EACCES).\n * - \"not_applicable\": not darwin, or chat.db is missing (user never used\n * iMessage on this mac).\n * - \"unknown\": probe threw an unclassified error.\n */\n\nimport { promises as fs } from \"node:fs\";\nimport { homedir } from \"node:os\";\nimport { join } from \"node:path\";\n\nexport type FullDiskAccessStatus =\n | \"granted\"\n | \"revoked\"\n | \"not_applicable\"\n | \"unknown\";\n\nexport interface FullDiskAccessProbeResult {\n status: FullDiskAccessStatus;\n checkedAt: string;\n chatDbPath: string;\n reason: string | null;\n}\n\nconst DEFAULT_CHAT_DB_PATH = join(homedir(), \"Library\", \"Messages\", \"chat.db\");\n\ninterface NodeErrno extends Error {\n code?: string;\n}\n\nfunction isNodeErrno(value: unknown): value is NodeErrno {\n return (\n value instanceof Error && typeof (value as NodeErrno).code === \"string\"\n );\n}\n\nexport async function probeFullDiskAccess(overrides?: {\n chatDbPath?: string | null;\n}): Promise<FullDiskAccessProbeResult> {\n const checkedAt = new Date().toISOString();\n if (process.platform !== \"darwin\") {\n return {\n status: \"not_applicable\",\n checkedAt,\n chatDbPath: \"\",\n reason: \"FDA is only meaningful on macOS\",\n };\n }\n const chatDbPath =\n (overrides?.chatDbPath?.trim() || null) ??\n process.env.IMESSAGE_DB_PATH?.trim() ??\n DEFAULT_CHAT_DB_PATH;\n try {\n const handle = await fs.open(chatDbPath, \"r\");\n await handle.close();\n return { status: \"granted\", checkedAt, chatDbPath, reason: null };\n } catch (error) {\n if (isNodeErrno(error)) {\n if (error.code === \"ENOENT\") {\n return {\n status: \"not_applicable\",\n checkedAt,\n chatDbPath,\n reason: \"chat.db not present (user may never have used iMessage)\",\n };\n }\n if (error.code === \"EPERM\" || error.code === \"EACCES\") {\n return {\n status: \"revoked\",\n checkedAt,\n chatDbPath,\n reason:\n \"Full Disk Access is required to read chat.db. Grant it to the app running Eliza, such as Eliza.app, Terminal, iTerm, or Cursor, then relaunch.\",\n };\n }\n return {\n status: \"unknown\",\n checkedAt,\n chatDbPath,\n reason: `${error.code}: ${error.message}`,\n };\n }\n return {\n status: \"unknown\",\n checkedAt,\n chatDbPath,\n reason: error instanceof Error ? error.message : String(error),\n };\n }\n}\n"],"mappings":"AAaA,SAAS,YAAY,UAAU;AAC/B,SAAS,eAAe;AACxB,SAAS,YAAY;AAerB,MAAM,uBAAuB,KAAK,QAAQ,GAAG,WAAW,YAAY,SAAS;AAM7E,SAAS,YAAY,OAAoC;AACvD,SACE,iBAAiB,SAAS,OAAQ,MAAoB,SAAS;AAEnE;AAEA,eAAsB,oBAAoB,WAEH;AACrC,QAAM,aAAY,oBAAI,KAAK,GAAE,YAAY;AACzC,MAAI,QAAQ,aAAa,UAAU;AACjC,WAAO;AAAA,MACL,QAAQ;AAAA,MACR;AAAA,MACA,YAAY;AAAA,MACZ,QAAQ;AAAA,IACV;AAAA,EACF;AACA,QAAM,cACH,WAAW,YAAY,KAAK,KAAK,SAClC,QAAQ,IAAI,kBAAkB,KAAK,KACnC;AACF,MAAI;AACF,UAAM,SAAS,MAAM,GAAG,KAAK,YAAY,GAAG;AAC5C,UAAM,OAAO,MAAM;AACnB,WAAO,EAAE,QAAQ,WAAW,WAAW,YAAY,QAAQ,KAAK;AAAA,EAClE,SAAS,OAAO;AACd,QAAI,YAAY,KAAK,GAAG;AACtB,UAAI,MAAM,SAAS,UAAU;AAC3B,eAAO;AAAA,UACL,QAAQ;AAAA,UACR;AAAA,UACA;AAAA,UACA,QAAQ;AAAA,QACV;AAAA,MACF;AACA,UAAI,MAAM,SAAS,WAAW,MAAM,SAAS,UAAU;AACrD,eAAO;AAAA,UACL,QAAQ;AAAA,UACR;AAAA,UACA;AAAA,UACA,QACE;AAAA,QACJ;AAAA,MACF;AACA,aAAO;AAAA,QACL,QAAQ;AAAA,QACR;AAAA,QACA;AAAA,QACA,QAAQ,GAAG,MAAM,IAAI,KAAK,MAAM,OAAO;AAAA,MACzC;AAAA,IACF;AACA,WAAO;AAAA,MACL,QAAQ;AAAA,MACR;AAAA,MACA;AAAA,MACA,QAAQ,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,IAC/D;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,24 @@
1
+ import { type IAgentRuntime } from "@elizaos/core";
2
+ import { type FeatureFlagService, type LifeOpsFeatureFlagKey } from "./feature-flags.types.js";
3
+ /**
4
+ * Cached factory — returns the same service instance per runtime so
5
+ * `subscribeChanges` listeners stay attached across action invocations.
6
+ */
7
+ export declare function createFeatureFlagService(runtime: IAgentRuntime): FeatureFlagService;
8
+ /**
9
+ * Convenience guard for action handlers. Throws `FeatureNotEnabledError`
10
+ * when the feature is off, with Cloud-aware messaging so the planner can
11
+ * suggest signing in to Eliza Cloud as the easiest path.
12
+ *
13
+ * Accepts both built-in `LifeOpsFeatureKey` values (compile-time safety
14
+ * preserved for first-party callers like `requireFeatureEnabled(runtime,
15
+ * "travel.book_flight")`) and any registered 3rd-party `LifeOpsFeatureFlagKey`.
16
+ */
17
+ export declare function requireFeatureEnabled(runtime: IAgentRuntime, key: LifeOpsFeatureFlagKey): Promise<void>;
18
+ /**
19
+ * Re-export of the baseline. Most callers should use
20
+ * `resolveFeatureDefaults({cloudLinked})` instead — this constant exists
21
+ * for descriptions/labels that do not vary with Cloud-link state.
22
+ */
23
+ export { BASE_FEATURE_DEFAULTS } from "./feature-flags.types.js";
24
+ //# sourceMappingURL=feature-flags.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-flags.d.ts","sourceRoot":"","sources":["../../src/lifeops/feature-flags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAwB,MAAM,eAAe,CAAC;AACzE,OAAO,EAGL,KAAK,kBAAkB,EAIvB,KAAK,qBAAqB,EAE3B,MAAM,0BAA0B,CAAC;AAyUlC;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,aAAa,GACrB,kBAAkB,CAMpB;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,aAAa,EACtB,GAAG,EAAE,qBAAqB,GACzB,OAAO,CAAC,IAAI,CAAC,CAaf;AAED;;;;GAIG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,261 @@
1
+ import { logger } from "@elizaos/core";
2
+ import {
3
+ ALL_FEATURE_KEYS,
4
+ isLifeOpsFeatureKey,
5
+ resolveFeatureDefaults
6
+ } from "./feature-flags.types.js";
7
+ import {
8
+ getFeatureFlagRegistry,
9
+ UnknownFeatureFlagError
10
+ } from "./registries/feature-flag-registry.js";
11
+ import {
12
+ executeRawSql,
13
+ parseJsonRecord,
14
+ sqlBoolean,
15
+ sqlJson,
16
+ sqlText,
17
+ toBoolean,
18
+ toText
19
+ } from "./sql.js";
20
+ const SELECT_COLUMNS = "feature_key, enabled, source, enabled_at, enabled_by, metadata, created_at, updated_at";
21
+ const ALLOWED_SOURCES = /* @__PURE__ */ new Set([
22
+ "local",
23
+ "cloud"
24
+ ]);
25
+ function isCloudAuthService(service) {
26
+ return service !== null && typeof service.isAuthenticated === "function";
27
+ }
28
+ function readCloudLinked(runtime) {
29
+ const getService = runtime.getService;
30
+ const service = typeof getService === "function" ? getService.call(runtime, "CLOUD_AUTH") : null;
31
+ if (!isCloudAuthService(service)) {
32
+ return false;
33
+ }
34
+ return service.isAuthenticated() === true;
35
+ }
36
+ function resolveDescriptor(runtime, key, cloudLinked) {
37
+ if (isLifeOpsFeatureKey(key)) {
38
+ const def = resolveFeatureDefaults({ cloudLinked })[key];
39
+ return {
40
+ enabled: def.enabled,
41
+ label: def.label,
42
+ description: def.description,
43
+ costsMoney: def.costsMoney
44
+ };
45
+ }
46
+ const registry = getFeatureFlagRegistry(runtime);
47
+ const contribution = registry?.get(key) ?? null;
48
+ if (!contribution) {
49
+ const known = registry?.list().map((c) => c.key) ?? [];
50
+ throw new UnknownFeatureFlagError(key, known);
51
+ }
52
+ const costsMoney = contribution.metadata?.costsMoney === "true";
53
+ return {
54
+ enabled: contribution.defaultEnabled,
55
+ label: contribution.label,
56
+ description: contribution.description,
57
+ costsMoney
58
+ };
59
+ }
60
+ function rowToState(runtime, row, fallback, cloudLinked) {
61
+ const featureKey = toText(row.feature_key);
62
+ const descriptor = resolveDescriptor(runtime, featureKey, cloudLinked);
63
+ const sourceText = toText(row.source);
64
+ if (!ALLOWED_SOURCES.has(sourceText)) {
65
+ throw new Error(`[FeatureFlags] unknown source from db: ${sourceText}`);
66
+ }
67
+ const enabledAtRaw = row.enabled_at;
68
+ let enabledAt = null;
69
+ if (enabledAtRaw instanceof Date) {
70
+ enabledAt = enabledAtRaw;
71
+ } else if (typeof enabledAtRaw === "string" && enabledAtRaw.length > 0) {
72
+ const parsed = new Date(enabledAtRaw);
73
+ if (Number.isNaN(parsed.getTime())) {
74
+ throw new Error(
75
+ `[FeatureFlags] invalid enabled_at for ${fallback}: ${enabledAtRaw}`
76
+ );
77
+ }
78
+ enabledAt = parsed;
79
+ }
80
+ const enabledByText = toText(row.enabled_by);
81
+ return {
82
+ featureKey,
83
+ enabled: toBoolean(row.enabled),
84
+ source: sourceText,
85
+ enabledAt,
86
+ enabledBy: enabledByText.length > 0 ? enabledByText : null,
87
+ label: descriptor.label,
88
+ description: descriptor.description,
89
+ costsMoney: descriptor.costsMoney,
90
+ metadata: parseJsonRecord(row.metadata)
91
+ };
92
+ }
93
+ function defaultState(runtime, key, cloudLinked) {
94
+ const descriptor = resolveDescriptor(runtime, key, cloudLinked);
95
+ return {
96
+ featureKey: key,
97
+ enabled: descriptor.enabled,
98
+ source: "default",
99
+ enabledAt: null,
100
+ enabledBy: null,
101
+ label: descriptor.label,
102
+ description: descriptor.description,
103
+ costsMoney: descriptor.costsMoney,
104
+ metadata: {}
105
+ };
106
+ }
107
+ class PgFeatureFlagService {
108
+ runtime;
109
+ listeners = /* @__PURE__ */ new Set();
110
+ /**
111
+ * Per-request cache of the Cloud-link state. Service instances live for
112
+ * the runtime's lifetime; we re-resolve on every entrypoint call so that
113
+ * sign-in/sign-out flips are picked up without restarting the runtime.
114
+ * The cache exists only to dedupe within a single high-level call (e.g.
115
+ * `list()` resolves once even though it composes many rows).
116
+ */
117
+ cloudLinkedSnapshot = null;
118
+ constructor(runtime) {
119
+ this.runtime = runtime;
120
+ }
121
+ snapshotCloudLinked() {
122
+ if (this.cloudLinkedSnapshot !== null) {
123
+ return this.cloudLinkedSnapshot;
124
+ }
125
+ const linked = readCloudLinked(this.runtime);
126
+ this.cloudLinkedSnapshot = linked;
127
+ return linked;
128
+ }
129
+ clearCloudSnapshot() {
130
+ this.cloudLinkedSnapshot = null;
131
+ }
132
+ async isEnabled(key) {
133
+ const state = await this.get(key);
134
+ return state.enabled;
135
+ }
136
+ async get(key) {
137
+ const cloudLinked = this.snapshotCloudLinked();
138
+ try {
139
+ const sql = `SELECT ${SELECT_COLUMNS} FROM app_lifeops.lifeops_features
140
+ WHERE feature_key = ${sqlText(key)}
141
+ LIMIT 1`;
142
+ const rows = await executeRawSql(this.runtime, sql);
143
+ if (rows.length === 0) {
144
+ return defaultState(this.runtime, key, cloudLinked);
145
+ }
146
+ return rowToState(this.runtime, rows[0], key, cloudLinked);
147
+ } finally {
148
+ this.clearCloudSnapshot();
149
+ }
150
+ }
151
+ async list() {
152
+ const cloudLinked = this.snapshotCloudLinked();
153
+ try {
154
+ const sql = `SELECT ${SELECT_COLUMNS} FROM app_lifeops.lifeops_features`;
155
+ const rows = await executeRawSql(this.runtime, sql);
156
+ const byKey = /* @__PURE__ */ new Map();
157
+ for (const row of rows) {
158
+ const text = toText(row.feature_key);
159
+ byKey.set(text, rowToState(this.runtime, row, text, cloudLinked));
160
+ }
161
+ const registry = getFeatureFlagRegistry(this.runtime);
162
+ const known = new Set(ALL_FEATURE_KEYS);
163
+ if (registry) {
164
+ for (const contribution of registry.list()) {
165
+ known.add(contribution.key);
166
+ }
167
+ }
168
+ return Array.from(known).map(
169
+ (key) => byKey.get(key) ?? defaultState(this.runtime, key, cloudLinked)
170
+ );
171
+ } finally {
172
+ this.clearCloudSnapshot();
173
+ }
174
+ }
175
+ enable(key, source, enabledBy, metadata) {
176
+ return this.upsert(key, true, source, enabledBy, metadata);
177
+ }
178
+ disable(key, source, enabledBy) {
179
+ return this.upsert(key, false, source, enabledBy, void 0);
180
+ }
181
+ subscribeChanges(handler) {
182
+ this.listeners.add(handler);
183
+ return () => {
184
+ this.listeners.delete(handler);
185
+ };
186
+ }
187
+ async upsert(key, enabled, source, enabledBy, metadata) {
188
+ if (source === "default") {
189
+ throw new Error(
190
+ "[FeatureFlags] refusing to write a row with source='default'"
191
+ );
192
+ }
193
+ const cloudLinked = this.snapshotCloudLinked();
194
+ try {
195
+ const enabledAtSql = enabled ? `(${sqlText((/* @__PURE__ */ new Date()).toISOString())}::timestamptz)` : "NULL";
196
+ const enabledBySql = enabledBy ? sqlText(enabledBy) : "NULL";
197
+ const metadataSql = sqlJson(metadata ?? {});
198
+ const sql = `INSERT INTO app_lifeops.lifeops_features (
199
+ feature_key, enabled, source, enabled_at, enabled_by, metadata, created_at, updated_at
200
+ ) VALUES (
201
+ ${sqlText(key)},
202
+ ${sqlBoolean(enabled)},
203
+ ${sqlText(source)},
204
+ ${enabledAtSql},
205
+ ${enabledBySql},
206
+ ${metadataSql},
207
+ now(),
208
+ now()
209
+ )
210
+ ON CONFLICT (feature_key) DO UPDATE SET
211
+ enabled = EXCLUDED.enabled,
212
+ source = EXCLUDED.source,
213
+ enabled_at = EXCLUDED.enabled_at,
214
+ enabled_by = EXCLUDED.enabled_by,
215
+ metadata = EXCLUDED.metadata,
216
+ updated_at = now()
217
+ RETURNING ${SELECT_COLUMNS}`;
218
+ const rows = await executeRawSql(this.runtime, sql);
219
+ if (rows.length === 0) {
220
+ throw new Error(`[FeatureFlags] upsert returned no rows for ${key}`);
221
+ }
222
+ const state = rowToState(this.runtime, rows[0], key, cloudLinked);
223
+ logger.info(
224
+ `[FeatureFlags] ${key} ${enabled ? "enabled" : "disabled"} via ${source}` + (enabledBy ? ` by ${enabledBy}` : "")
225
+ );
226
+ for (const listener of this.listeners) {
227
+ listener(state);
228
+ }
229
+ return state;
230
+ } finally {
231
+ this.clearCloudSnapshot();
232
+ }
233
+ }
234
+ }
235
+ const RUNTIME_CACHE = /* @__PURE__ */ new WeakMap();
236
+ function createFeatureFlagService(runtime) {
237
+ const existing = RUNTIME_CACHE.get(runtime);
238
+ if (existing) return existing;
239
+ const service = new PgFeatureFlagService(runtime);
240
+ RUNTIME_CACHE.set(runtime, service);
241
+ return service;
242
+ }
243
+ async function requireFeatureEnabled(runtime, key) {
244
+ const service = createFeatureFlagService(runtime);
245
+ if (await service.isEnabled(key)) return;
246
+ const { FeatureNotEnabledError } = await import("./feature-flags.types.js");
247
+ const registry = getFeatureFlagRegistry(runtime);
248
+ const contribution = registry?.get(key) ?? null;
249
+ const costsMoney = contribution?.metadata?.costsMoney === "true";
250
+ throw new FeatureNotEnabledError(key, {
251
+ cloudLinked: readCloudLinked(runtime),
252
+ costsMoney
253
+ });
254
+ }
255
+ import { BASE_FEATURE_DEFAULTS } from "./feature-flags.types.js";
256
+ export {
257
+ BASE_FEATURE_DEFAULTS,
258
+ createFeatureFlagService,
259
+ requireFeatureEnabled
260
+ };
261
+ //# sourceMappingURL=feature-flags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lifeops/feature-flags.ts"],"sourcesContent":["import { type IAgentRuntime, logger, type Service } from \"@elizaos/core\";\nimport {\n ALL_FEATURE_KEYS,\n type FeatureFlagChangeListener,\n type FeatureFlagService,\n type FeatureFlagSource,\n type FeatureFlagState,\n isLifeOpsFeatureKey,\n type LifeOpsFeatureFlagKey,\n resolveFeatureDefaults,\n} from \"./feature-flags.types.js\";\nimport {\n getFeatureFlagRegistry,\n UnknownFeatureFlagError,\n} from \"./registries/feature-flag-registry.js\";\nimport {\n executeRawSql,\n parseJsonRecord,\n sqlBoolean,\n sqlJson,\n sqlText,\n toBoolean,\n toText,\n} from \"./sql.js\";\n\n/**\n * SQL-backed FeatureFlagService.\n *\n * Reads & writes the `app_lifeops.lifeops_features` table owned by `app-lifeops` and\n * migrated via the plugin's `schema` export.\n * Compile-time defaults (`FEATURE_DEFAULTS`) are the authority when no row\n * exists. The runtime never writes a row with `source = 'default'` —\n * absence is the canonical representation of an unmodified default\n * (Commandment 7).\n */\n\nconst SELECT_COLUMNS =\n \"feature_key, enabled, source, enabled_at, enabled_by, metadata, created_at, updated_at\";\n\nconst ALLOWED_SOURCES: ReadonlySet<FeatureFlagSource> = new Set([\n \"local\",\n \"cloud\",\n]);\n\ninterface CloudAuthService extends Service {\n isAuthenticated(): boolean;\n}\n\nfunction isCloudAuthService(\n service: Service | null,\n): service is Service & CloudAuthService {\n return (\n service !== null &&\n typeof (service as Partial<CloudAuthService>).isAuthenticated === \"function\"\n );\n}\n\nfunction readCloudLinked(runtime: IAgentRuntime): boolean {\n const getService = (\n runtime as IAgentRuntime & {\n getService?: (serviceType: string) => Service | null;\n }\n ).getService;\n const service =\n typeof getService === \"function\"\n ? getService.call(runtime, \"CLOUD_AUTH\")\n : null;\n if (!isCloudAuthService(service)) {\n return false;\n }\n return service.isAuthenticated() === true;\n}\n\ninterface FeatureFlagDescriptor {\n readonly enabled: boolean;\n readonly label: string;\n readonly description: string;\n readonly costsMoney: boolean;\n}\n\n/**\n * Resolve label/description/baseline-enabled/costsMoney for a feature key.\n *\n * Built-in keys (`isLifeOpsFeatureKey`) read from the Cloud-aware\n * `resolveFeatureDefaults`. Registered 3rd-party keys read from the\n * `FeatureFlagRegistry` contribution. Unknown keys throw\n * `UnknownFeatureFlagError`.\n */\nfunction resolveDescriptor(\n runtime: IAgentRuntime,\n key: LifeOpsFeatureFlagKey,\n cloudLinked: boolean,\n): FeatureFlagDescriptor {\n if (isLifeOpsFeatureKey(key)) {\n const def = resolveFeatureDefaults({ cloudLinked })[key];\n return {\n enabled: def.enabled,\n label: def.label,\n description: def.description,\n costsMoney: def.costsMoney,\n };\n }\n const registry = getFeatureFlagRegistry(runtime);\n const contribution = registry?.get(key) ?? null;\n if (!contribution) {\n const known = registry?.list().map((c) => c.key) ?? [];\n throw new UnknownFeatureFlagError(key, known);\n }\n const costsMoney = contribution.metadata?.costsMoney === \"true\";\n return {\n enabled: contribution.defaultEnabled,\n label: contribution.label,\n description: contribution.description,\n costsMoney,\n };\n}\n\nfunction rowToState(\n runtime: IAgentRuntime,\n row: Record<string, unknown>,\n fallback: LifeOpsFeatureFlagKey,\n cloudLinked: boolean,\n): FeatureFlagState {\n const featureKey = toText(row.feature_key);\n const descriptor = resolveDescriptor(runtime, featureKey, cloudLinked);\n const sourceText = toText(row.source);\n if (!ALLOWED_SOURCES.has(sourceText as FeatureFlagSource)) {\n throw new Error(`[FeatureFlags] unknown source from db: ${sourceText}`);\n }\n const enabledAtRaw = row.enabled_at;\n let enabledAt: Date | null = null;\n if (enabledAtRaw instanceof Date) {\n enabledAt = enabledAtRaw;\n } else if (typeof enabledAtRaw === \"string\" && enabledAtRaw.length > 0) {\n const parsed = new Date(enabledAtRaw);\n if (Number.isNaN(parsed.getTime())) {\n throw new Error(\n `[FeatureFlags] invalid enabled_at for ${fallback}: ${enabledAtRaw}`,\n );\n }\n enabledAt = parsed;\n }\n const enabledByText = toText(row.enabled_by);\n return {\n featureKey,\n enabled: toBoolean(row.enabled),\n source: sourceText as FeatureFlagSource,\n enabledAt,\n enabledBy: enabledByText.length > 0 ? enabledByText : null,\n label: descriptor.label,\n description: descriptor.description,\n costsMoney: descriptor.costsMoney,\n metadata: parseJsonRecord(row.metadata),\n };\n}\n\nfunction defaultState(\n runtime: IAgentRuntime,\n key: LifeOpsFeatureFlagKey,\n cloudLinked: boolean,\n): FeatureFlagState {\n const descriptor = resolveDescriptor(runtime, key, cloudLinked);\n return {\n featureKey: key,\n enabled: descriptor.enabled,\n source: \"default\",\n enabledAt: null,\n enabledBy: null,\n label: descriptor.label,\n description: descriptor.description,\n costsMoney: descriptor.costsMoney,\n metadata: {},\n };\n}\n\nclass PgFeatureFlagService implements FeatureFlagService {\n private readonly runtime: IAgentRuntime;\n private readonly listeners = new Set<FeatureFlagChangeListener>();\n /**\n * Per-request cache of the Cloud-link state. Service instances live for\n * the runtime's lifetime; we re-resolve on every entrypoint call so that\n * sign-in/sign-out flips are picked up without restarting the runtime.\n * The cache exists only to dedupe within a single high-level call (e.g.\n * `list()` resolves once even though it composes many rows).\n */\n private cloudLinkedSnapshot: boolean | null = null;\n\n constructor(runtime: IAgentRuntime) {\n this.runtime = runtime;\n }\n\n private snapshotCloudLinked(): boolean {\n if (this.cloudLinkedSnapshot !== null) {\n return this.cloudLinkedSnapshot;\n }\n const linked = readCloudLinked(this.runtime);\n this.cloudLinkedSnapshot = linked;\n return linked;\n }\n\n private clearCloudSnapshot(): void {\n this.cloudLinkedSnapshot = null;\n }\n\n async isEnabled(key: LifeOpsFeatureFlagKey): Promise<boolean> {\n const state = await this.get(key);\n return state.enabled;\n }\n\n async get(key: LifeOpsFeatureFlagKey): Promise<FeatureFlagState> {\n const cloudLinked = this.snapshotCloudLinked();\n try {\n const sql = `SELECT ${SELECT_COLUMNS} FROM app_lifeops.lifeops_features\n WHERE feature_key = ${sqlText(key)}\n LIMIT 1`;\n const rows = await executeRawSql(this.runtime, sql);\n if (rows.length === 0) {\n return defaultState(this.runtime, key, cloudLinked);\n }\n return rowToState(this.runtime, rows[0], key, cloudLinked);\n } finally {\n this.clearCloudSnapshot();\n }\n }\n\n async list(): Promise<ReadonlyArray<FeatureFlagState>> {\n const cloudLinked = this.snapshotCloudLinked();\n try {\n const sql = `SELECT ${SELECT_COLUMNS} FROM app_lifeops.lifeops_features`;\n const rows = await executeRawSql(this.runtime, sql);\n const byKey = new Map<LifeOpsFeatureFlagKey, FeatureFlagState>();\n for (const row of rows) {\n const text = toText(row.feature_key);\n byKey.set(text, rowToState(this.runtime, row, text, cloudLinked));\n }\n // The registry is the source of truth for \"which flags exist\". Built-in\n // keys are always included (for back-compat with `ALL_FEATURE_KEYS`\n // callers); 3rd-party registered keys are surfaced too. DB-only rows\n // for keys the registry doesn't know about are dropped (caller likely\n // un-registered them).\n const registry = getFeatureFlagRegistry(this.runtime);\n const known = new Set<LifeOpsFeatureFlagKey>(ALL_FEATURE_KEYS);\n if (registry) {\n for (const contribution of registry.list()) {\n known.add(contribution.key);\n }\n }\n return Array.from(known).map(\n (key) => byKey.get(key) ?? defaultState(this.runtime, key, cloudLinked),\n );\n } finally {\n this.clearCloudSnapshot();\n }\n }\n\n enable(\n key: LifeOpsFeatureFlagKey,\n source: FeatureFlagSource,\n enabledBy: string | null,\n metadata?: Readonly<Record<string, unknown>>,\n ): Promise<FeatureFlagState> {\n return this.upsert(key, true, source, enabledBy, metadata);\n }\n\n disable(\n key: LifeOpsFeatureFlagKey,\n source: FeatureFlagSource,\n enabledBy: string | null,\n ): Promise<FeatureFlagState> {\n return this.upsert(key, false, source, enabledBy, undefined);\n }\n\n subscribeChanges(handler: FeatureFlagChangeListener): () => void {\n this.listeners.add(handler);\n return () => {\n this.listeners.delete(handler);\n };\n }\n\n private async upsert(\n key: LifeOpsFeatureFlagKey,\n enabled: boolean,\n source: FeatureFlagSource,\n enabledBy: string | null,\n metadata: Readonly<Record<string, unknown>> | undefined,\n ): Promise<FeatureFlagState> {\n if (source === \"default\") {\n throw new Error(\n \"[FeatureFlags] refusing to write a row with source='default'\",\n );\n }\n const cloudLinked = this.snapshotCloudLinked();\n try {\n const enabledAtSql = enabled\n ? `(${sqlText(new Date().toISOString())}::timestamptz)`\n : \"NULL\";\n const enabledBySql = enabledBy ? sqlText(enabledBy) : \"NULL\";\n const metadataSql = sqlJson(metadata ?? {});\n const sql = `INSERT INTO app_lifeops.lifeops_features (\n feature_key, enabled, source, enabled_at, enabled_by, metadata, created_at, updated_at\n ) VALUES (\n ${sqlText(key)},\n ${sqlBoolean(enabled)},\n ${sqlText(source)},\n ${enabledAtSql},\n ${enabledBySql},\n ${metadataSql},\n now(),\n now()\n )\n ON CONFLICT (feature_key) DO UPDATE SET\n enabled = EXCLUDED.enabled,\n source = EXCLUDED.source,\n enabled_at = EXCLUDED.enabled_at,\n enabled_by = EXCLUDED.enabled_by,\n metadata = EXCLUDED.metadata,\n updated_at = now()\n RETURNING ${SELECT_COLUMNS}`;\n const rows = await executeRawSql(this.runtime, sql);\n if (rows.length === 0) {\n throw new Error(`[FeatureFlags] upsert returned no rows for ${key}`);\n }\n const state = rowToState(this.runtime, rows[0], key, cloudLinked);\n logger.info(\n `[FeatureFlags] ${key} ${enabled ? \"enabled\" : \"disabled\"} via ${source}` +\n (enabledBy ? ` by ${enabledBy}` : \"\"),\n );\n for (const listener of this.listeners) {\n listener(state);\n }\n return state;\n } finally {\n this.clearCloudSnapshot();\n }\n }\n}\n\nconst RUNTIME_CACHE = new WeakMap<IAgentRuntime, FeatureFlagService>();\n\n/**\n * Cached factory — returns the same service instance per runtime so\n * `subscribeChanges` listeners stay attached across action invocations.\n */\nexport function createFeatureFlagService(\n runtime: IAgentRuntime,\n): FeatureFlagService {\n const existing = RUNTIME_CACHE.get(runtime);\n if (existing) return existing;\n const service = new PgFeatureFlagService(runtime);\n RUNTIME_CACHE.set(runtime, service);\n return service;\n}\n\n/**\n * Convenience guard for action handlers. Throws `FeatureNotEnabledError`\n * when the feature is off, with Cloud-aware messaging so the planner can\n * suggest signing in to Eliza Cloud as the easiest path.\n *\n * Accepts both built-in `LifeOpsFeatureKey` values (compile-time safety\n * preserved for first-party callers like `requireFeatureEnabled(runtime,\n * \"travel.book_flight\")`) and any registered 3rd-party `LifeOpsFeatureFlagKey`.\n */\nexport async function requireFeatureEnabled(\n runtime: IAgentRuntime,\n key: LifeOpsFeatureFlagKey,\n): Promise<void> {\n const service = createFeatureFlagService(runtime);\n if (await service.isEnabled(key)) return;\n const { FeatureNotEnabledError } = await import(\"./feature-flags.types.js\");\n // Carry costsMoney from the registry contribution so 3rd-party flags get\n // the same Cloud opt-in suggestion treatment as built-ins.\n const registry = getFeatureFlagRegistry(runtime);\n const contribution = registry?.get(key) ?? null;\n const costsMoney = contribution?.metadata?.costsMoney === \"true\";\n throw new FeatureNotEnabledError(key, {\n cloudLinked: readCloudLinked(runtime),\n costsMoney,\n });\n}\n\n/**\n * Re-export of the baseline. Most callers should use\n * `resolveFeatureDefaults({cloudLinked})` instead — this constant exists\n * for descriptions/labels that do not vary with Cloud-link state.\n */\nexport { BASE_FEATURE_DEFAULTS } from \"./feature-flags.types.js\";\n"],"mappings":"AAAA,SAA6B,cAA4B;AACzD;AAAA,EACE;AAAA,EAKA;AAAA,EAEA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAaP,MAAM,iBACJ;AAEF,MAAM,kBAAkD,oBAAI,IAAI;AAAA,EAC9D;AAAA,EACA;AACF,CAAC;AAMD,SAAS,mBACP,SACuC;AACvC,SACE,YAAY,QACZ,OAAQ,QAAsC,oBAAoB;AAEtE;AAEA,SAAS,gBAAgB,SAAiC;AACxD,QAAM,aACJ,QAGA;AACF,QAAM,UACJ,OAAO,eAAe,aAClB,WAAW,KAAK,SAAS,YAAY,IACrC;AACN,MAAI,CAAC,mBAAmB,OAAO,GAAG;AAChC,WAAO;AAAA,EACT;AACA,SAAO,QAAQ,gBAAgB,MAAM;AACvC;AAiBA,SAAS,kBACP,SACA,KACA,aACuB;AACvB,MAAI,oBAAoB,GAAG,GAAG;AAC5B,UAAM,MAAM,uBAAuB,EAAE,YAAY,CAAC,EAAE,GAAG;AACvD,WAAO;AAAA,MACL,SAAS,IAAI;AAAA,MACb,OAAO,IAAI;AAAA,MACX,aAAa,IAAI;AAAA,MACjB,YAAY,IAAI;AAAA,IAClB;AAAA,EACF;AACA,QAAM,WAAW,uBAAuB,OAAO;AAC/C,QAAM,eAAe,UAAU,IAAI,GAAG,KAAK;AAC3C,MAAI,CAAC,cAAc;AACjB,UAAM,QAAQ,UAAU,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC;AACrD,UAAM,IAAI,wBAAwB,KAAK,KAAK;AAAA,EAC9C;AACA,QAAM,aAAa,aAAa,UAAU,eAAe;AACzD,SAAO;AAAA,IACL,SAAS,aAAa;AAAA,IACtB,OAAO,aAAa;AAAA,IACpB,aAAa,aAAa;AAAA,IAC1B;AAAA,EACF;AACF;AAEA,SAAS,WACP,SACA,KACA,UACA,aACkB;AAClB,QAAM,aAAa,OAAO,IAAI,WAAW;AACzC,QAAM,aAAa,kBAAkB,SAAS,YAAY,WAAW;AACrE,QAAM,aAAa,OAAO,IAAI,MAAM;AACpC,MAAI,CAAC,gBAAgB,IAAI,UAA+B,GAAG;AACzD,UAAM,IAAI,MAAM,0CAA0C,UAAU,EAAE;AAAA,EACxE;AACA,QAAM,eAAe,IAAI;AACzB,MAAI,YAAyB;AAC7B,MAAI,wBAAwB,MAAM;AAChC,gBAAY;AAAA,EACd,WAAW,OAAO,iBAAiB,YAAY,aAAa,SAAS,GAAG;AACtE,UAAM,SAAS,IAAI,KAAK,YAAY;AACpC,QAAI,OAAO,MAAM,OAAO,QAAQ,CAAC,GAAG;AAClC,YAAM,IAAI;AAAA,QACR,yCAAyC,QAAQ,KAAK,YAAY;AAAA,MACpE;AAAA,IACF;AACA,gBAAY;AAAA,EACd;AACA,QAAM,gBAAgB,OAAO,IAAI,UAAU;AAC3C,SAAO;AAAA,IACL;AAAA,IACA,SAAS,UAAU,IAAI,OAAO;AAAA,IAC9B,QAAQ;AAAA,IACR;AAAA,IACA,WAAW,cAAc,SAAS,IAAI,gBAAgB;AAAA,IACtD,OAAO,WAAW;AAAA,IAClB,aAAa,WAAW;AAAA,IACxB,YAAY,WAAW;AAAA,IACvB,UAAU,gBAAgB,IAAI,QAAQ;AAAA,EACxC;AACF;AAEA,SAAS,aACP,SACA,KACA,aACkB;AAClB,QAAM,aAAa,kBAAkB,SAAS,KAAK,WAAW;AAC9D,SAAO;AAAA,IACL,YAAY;AAAA,IACZ,SAAS,WAAW;AAAA,IACpB,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,WAAW;AAAA,IACX,OAAO,WAAW;AAAA,IAClB,aAAa,WAAW;AAAA,IACxB,YAAY,WAAW;AAAA,IACvB,UAAU,CAAC;AAAA,EACb;AACF;AAEA,MAAM,qBAAmD;AAAA,EACtC;AAAA,EACA,YAAY,oBAAI,IAA+B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQxD,sBAAsC;AAAA,EAE9C,YAAY,SAAwB;AAClC,SAAK,UAAU;AAAA,EACjB;AAAA,EAEQ,sBAA+B;AACrC,QAAI,KAAK,wBAAwB,MAAM;AACrC,aAAO,KAAK;AAAA,IACd;AACA,UAAM,SAAS,gBAAgB,KAAK,OAAO;AAC3C,SAAK,sBAAsB;AAC3B,WAAO;AAAA,EACT;AAAA,EAEQ,qBAA2B;AACjC,SAAK,sBAAsB;AAAA,EAC7B;AAAA,EAEA,MAAM,UAAU,KAA8C;AAC5D,UAAM,QAAQ,MAAM,KAAK,IAAI,GAAG;AAChC,WAAO,MAAM;AAAA,EACf;AAAA,EAEA,MAAM,IAAI,KAAuD;AAC/D,UAAM,cAAc,KAAK,oBAAoB;AAC7C,QAAI;AACF,YAAM,MAAM,UAAU,cAAc;AAAA,8BACZ,QAAQ,GAAG,CAAC;AAAA;AAEpC,YAAM,OAAO,MAAM,cAAc,KAAK,SAAS,GAAG;AAClD,UAAI,KAAK,WAAW,GAAG;AACrB,eAAO,aAAa,KAAK,SAAS,KAAK,WAAW;AAAA,MACpD;AACA,aAAO,WAAW,KAAK,SAAS,KAAK,CAAC,GAAG,KAAK,WAAW;AAAA,IAC3D,UAAE;AACA,WAAK,mBAAmB;AAAA,IAC1B;AAAA,EACF;AAAA,EAEA,MAAM,OAAiD;AACrD,UAAM,cAAc,KAAK,oBAAoB;AAC7C,QAAI;AACF,YAAM,MAAM,UAAU,cAAc;AACpC,YAAM,OAAO,MAAM,cAAc,KAAK,SAAS,GAAG;AAClD,YAAM,QAAQ,oBAAI,IAA6C;AAC/D,iBAAW,OAAO,MAAM;AACtB,cAAM,OAAO,OAAO,IAAI,WAAW;AACnC,cAAM,IAAI,MAAM,WAAW,KAAK,SAAS,KAAK,MAAM,WAAW,CAAC;AAAA,MAClE;AAMA,YAAM,WAAW,uBAAuB,KAAK,OAAO;AACpD,YAAM,QAAQ,IAAI,IAA2B,gBAAgB;AAC7D,UAAI,UAAU;AACZ,mBAAW,gBAAgB,SAAS,KAAK,GAAG;AAC1C,gBAAM,IAAI,aAAa,GAAG;AAAA,QAC5B;AAAA,MACF;AACA,aAAO,MAAM,KAAK,KAAK,EAAE;AAAA,QACvB,CAAC,QAAQ,MAAM,IAAI,GAAG,KAAK,aAAa,KAAK,SAAS,KAAK,WAAW;AAAA,MACxE;AAAA,IACF,UAAE;AACA,WAAK,mBAAmB;AAAA,IAC1B;AAAA,EACF;AAAA,EAEA,OACE,KACA,QACA,WACA,UAC2B;AAC3B,WAAO,KAAK,OAAO,KAAK,MAAM,QAAQ,WAAW,QAAQ;AAAA,EAC3D;AAAA,EAEA,QACE,KACA,QACA,WAC2B;AAC3B,WAAO,KAAK,OAAO,KAAK,OAAO,QAAQ,WAAW,MAAS;AAAA,EAC7D;AAAA,EAEA,iBAAiB,SAAgD;AAC/D,SAAK,UAAU,IAAI,OAAO;AAC1B,WAAO,MAAM;AACX,WAAK,UAAU,OAAO,OAAO;AAAA,IAC/B;AAAA,EACF;AAAA,EAEA,MAAc,OACZ,KACA,SACA,QACA,WACA,UAC2B;AAC3B,QAAI,WAAW,WAAW;AACxB,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AACA,UAAM,cAAc,KAAK,oBAAoB;AAC7C,QAAI;AACF,YAAM,eAAe,UACjB,IAAI,SAAQ,oBAAI,KAAK,GAAE,YAAY,CAAC,CAAC,mBACrC;AACJ,YAAM,eAAe,YAAY,QAAQ,SAAS,IAAI;AACtD,YAAM,cAAc,QAAQ,YAAY,CAAC,CAAC;AAC1C,YAAM,MAAM;AAAA;AAAA;AAAA,YAGN,QAAQ,GAAG,CAAC;AAAA,YACZ,WAAW,OAAO,CAAC;AAAA,YACnB,QAAQ,MAAM,CAAC;AAAA,YACf,YAAY;AAAA,YACZ,YAAY;AAAA,YACZ,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAWH,cAAc;AAC5B,YAAM,OAAO,MAAM,cAAc,KAAK,SAAS,GAAG;AAClD,UAAI,KAAK,WAAW,GAAG;AACrB,cAAM,IAAI,MAAM,8CAA8C,GAAG,EAAE;AAAA,MACrE;AACA,YAAM,QAAQ,WAAW,KAAK,SAAS,KAAK,CAAC,GAAG,KAAK,WAAW;AAChE,aAAO;AAAA,QACL,kBAAkB,GAAG,IAAI,UAAU,YAAY,UAAU,QAAQ,MAAM,MACpE,YAAY,OAAO,SAAS,KAAK;AAAA,MACtC;AACA,iBAAW,YAAY,KAAK,WAAW;AACrC,iBAAS,KAAK;AAAA,MAChB;AACA,aAAO;AAAA,IACT,UAAE;AACA,WAAK,mBAAmB;AAAA,IAC1B;AAAA,EACF;AACF;AAEA,MAAM,gBAAgB,oBAAI,QAA2C;AAM9D,SAAS,yBACd,SACoB;AACpB,QAAM,WAAW,cAAc,IAAI,OAAO;AAC1C,MAAI,SAAU,QAAO;AACrB,QAAM,UAAU,IAAI,qBAAqB,OAAO;AAChD,gBAAc,IAAI,SAAS,OAAO;AAClC,SAAO;AACT;AAWA,eAAsB,sBACpB,SACA,KACe;AACf,QAAM,UAAU,yBAAyB,OAAO;AAChD,MAAI,MAAM,QAAQ,UAAU,GAAG,EAAG;AAClC,QAAM,EAAE,uBAAuB,IAAI,MAAM,OAAO,0BAA0B;AAG1E,QAAM,WAAW,uBAAuB,OAAO;AAC/C,QAAM,eAAe,UAAU,IAAI,GAAG,KAAK;AAC3C,QAAM,aAAa,cAAc,UAAU,eAAe;AAC1D,QAAM,IAAI,uBAAuB,KAAK;AAAA,IACpC,aAAa,gBAAgB,OAAO;AAAA,IACpC;AAAA,EACF,CAAC;AACH;AAOA,SAAS,6BAA6B;","names":[]}
@@ -0,0 +1,156 @@
1
+ /**
2
+ * LifeOps feature opt-in framework — closed enums + typed envelope.
3
+ *
4
+ * Source of truth (Commandment 7):
5
+ * - The literal union `LifeOpsFeatureKey` enumerates every gateable
6
+ * capability.
7
+ * - `BASE_FEATURE_DEFAULTS` declares the compile-time baseline. The DB
8
+ * table only stores *overrides* — never used to discover new keys.
9
+ * - The actions/services that gate on these keys must throw
10
+ * `FeatureNotEnabledError` before they touch the network or spend
11
+ * money. Silent fallbacks are not allowed (Commandment 8).
12
+ *
13
+ * Source rules:
14
+ * - `default` — the row is absent in the DB; `enabled` reflects the
15
+ * resolved compile-time default for the current Cloud-link context.
16
+ * The runtime never *writes* a `default` row.
17
+ * - `local` — toggled from the desktop UI / chat command.
18
+ * - `cloud` — auto-provisioned by an Eliza Cloud package sync.
19
+ *
20
+ * Cloud rows are read-only from the local UI: a Cloud-managed enable
21
+ * cannot be revoked locally, only by removing the Cloud package.
22
+ *
23
+ * Cloud-default policy:
24
+ * - When the user is signed into Eliza Cloud, travel features and the
25
+ * cloud-managed travel-billing flag flip ON by default. Cost is
26
+ * metered Cloud-side; the local code never recomputes that markup
27
+ * (Commandment 2).
28
+ * - Without Cloud, paid features stay OFF until the user opts in
29
+ * locally (which then requires them to bring their own travel-provider
30
+ * API credentials via `ELIZA_DUFFEL_DIRECT=1` + `DUFFEL_API_KEY`).
31
+ */
32
+ export type LifeOpsFeatureKey = "travel.search_flight" | "travel.search_hotel" | "travel.book_flight" | "travel.book_hotel" | "notifications.push" | "cross_channel.escalate" | "browser.automation" | "email.draft" | "email.send" | "cloud.duffel";
33
+ /**
34
+ * Open-key sibling of `LifeOpsFeatureKey`. The closed union remains the
35
+ * compile-time authority for the built-in 10 flags (Cloud-default policy,
36
+ * `BASE_FEATURE_DEFAULTS`, typed gate calls). The runtime
37
+ * `FeatureFlagRegistry` is the source of truth for what flags exist —
38
+ * including 3rd-party plugin contributions — so anywhere that ingests a
39
+ * key from outside (chat input, REST routes, dev-registries view) uses
40
+ * `LifeOpsFeatureFlagKey`. Parallel to
41
+ * `LifeOpsBusFamily = LifeOpsTelemetryFamily | string`.
42
+ */
43
+ export type LifeOpsFeatureFlagKey = LifeOpsFeatureKey | string;
44
+ export type FeatureFlagSource = "default" | "local" | "cloud";
45
+ export interface FeatureFlagDefault {
46
+ /** Compile-time baseline — applies until a row overrides it. May be
47
+ * flipped by `resolveFeatureDefaults` based on Cloud-link state. */
48
+ readonly enabled: boolean;
49
+ /** Short user-facing label shown in settings and confirmations. */
50
+ readonly label: string;
51
+ /** One-line user-facing description shown in the settings UI. */
52
+ readonly description: string;
53
+ /**
54
+ * True when toggling the feature on commits the user to recurring spend
55
+ * or external billing (e.g. live flight booking, paid SMS). Surfaced in
56
+ * the UI so the user understands the implication.
57
+ */
58
+ readonly costsMoney: boolean;
59
+ }
60
+ /**
61
+ * Compile-time baseline. Conservative — assumes no Cloud account.
62
+ *
63
+ * `resolveFeatureDefaults({cloudLinked})` is the only function callers
64
+ * should use to read effective defaults. Direct reads of this constant
65
+ * skip the Cloud-aware policy and will under-report enablement for
66
+ * Cloud-linked users.
67
+ */
68
+ export declare const BASE_FEATURE_DEFAULTS: Readonly<Record<LifeOpsFeatureKey, FeatureFlagDefault>>;
69
+ /**
70
+ * Feature keys that default to ON when the user is signed into Eliza
71
+ * Cloud. Service fees are applied Cloud-side (Commandment 2/4 — no client
72
+ * math), so flipping these on locally is purely a default-policy decision:
73
+ * it does not change billing.
74
+ */
75
+ export declare const CLOUD_LINKED_DEFAULT_ON: ReadonlySet<LifeOpsFeatureKey>;
76
+ export declare function isCloudLinkedDefaultOnFeatureKey(key: LifeOpsFeatureKey): boolean;
77
+ export interface ResolveFeatureDefaultsArgs {
78
+ readonly cloudLinked: boolean;
79
+ }
80
+ /**
81
+ * Resolve effective compile-time defaults for the given Cloud-link state.
82
+ *
83
+ * - `cloudLinked: true` → travel + `cloud.duffel` ON, billed via
84
+ * Eliza Cloud's managed travel-provider billing.
85
+ * - `cloudLinked: false` → baseline (paid features OFF) until the user
86
+ * opts in locally and supplies their own travel-provider credentials.
87
+ */
88
+ export declare function resolveFeatureDefaults(args: ResolveFeatureDefaultsArgs): Readonly<Record<LifeOpsFeatureKey, FeatureFlagDefault>>;
89
+ export declare const ALL_FEATURE_KEYS: ReadonlyArray<LifeOpsFeatureKey>;
90
+ export declare function isLifeOpsFeatureKey(value: unknown): value is LifeOpsFeatureKey;
91
+ export interface FeatureFlagState {
92
+ readonly featureKey: LifeOpsFeatureFlagKey;
93
+ readonly enabled: boolean;
94
+ readonly source: FeatureFlagSource;
95
+ readonly enabledAt: Date | null;
96
+ readonly enabledBy: string | null;
97
+ readonly label: string;
98
+ readonly description: string;
99
+ readonly costsMoney: boolean;
100
+ readonly metadata: Readonly<Record<string, unknown>>;
101
+ }
102
+ export interface LifeOpsFeatureFlagRowDto {
103
+ readonly featureKey: LifeOpsFeatureFlagKey;
104
+ readonly enabled: boolean;
105
+ readonly source: FeatureFlagSource;
106
+ readonly label: string;
107
+ readonly description: string;
108
+ readonly costsMoney: boolean;
109
+ readonly enabledAt: string | null;
110
+ readonly enabledBy: string | null;
111
+ readonly packageId: string | null;
112
+ readonly cloudDefaultOn: boolean;
113
+ }
114
+ export interface LifeOpsFeatureFlagsResponse {
115
+ readonly features: ReadonlyArray<LifeOpsFeatureFlagRowDto>;
116
+ }
117
+ export interface LifeOpsFeatureFlagsSyncResponse extends LifeOpsFeatureFlagsResponse {
118
+ readonly synced: number;
119
+ }
120
+ export interface LifeOpsFeatureToggleResponse {
121
+ readonly feature: LifeOpsFeatureFlagRowDto;
122
+ }
123
+ export interface FeatureToggleRequest {
124
+ readonly featureKey: LifeOpsFeatureFlagKey;
125
+ readonly enabled: boolean;
126
+ readonly source: FeatureFlagSource;
127
+ readonly enabledBy: string | null;
128
+ readonly metadata?: Readonly<Record<string, unknown>>;
129
+ }
130
+ export type FeatureFlagChangeListener = (state: FeatureFlagState) => void;
131
+ export interface FeatureFlagService {
132
+ isEnabled(key: LifeOpsFeatureFlagKey): Promise<boolean>;
133
+ get(key: LifeOpsFeatureFlagKey): Promise<FeatureFlagState>;
134
+ list(): Promise<ReadonlyArray<FeatureFlagState>>;
135
+ enable(key: LifeOpsFeatureFlagKey, source: FeatureFlagSource, enabledBy: string | null, metadata?: Readonly<Record<string, unknown>>): Promise<FeatureFlagState>;
136
+ disable(key: LifeOpsFeatureFlagKey, source: FeatureFlagSource, enabledBy: string | null): Promise<FeatureFlagState>;
137
+ subscribeChanges(handler: FeatureFlagChangeListener): () => void;
138
+ }
139
+ /**
140
+ * Thrown by gated actions before they perform any side effect when the
141
+ * required feature key is disabled. Carries enough context for the LLM
142
+ * planner to surface a useful "enable this" message back to the owner —
143
+ * including a Cloud-aware suggestion when the user is not signed in.
144
+ */
145
+ export declare class FeatureNotEnabledError extends Error {
146
+ readonly code: "FEATURE_NOT_ENABLED";
147
+ readonly featureKey: LifeOpsFeatureFlagKey;
148
+ readonly cloudOptIn: boolean;
149
+ readonly cloudLinked: boolean;
150
+ constructor(featureKey: LifeOpsFeatureFlagKey, args?: {
151
+ cloudLinked?: boolean;
152
+ message?: string;
153
+ costsMoney?: boolean;
154
+ });
155
+ }
156
+ //# sourceMappingURL=feature-flags.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-flags.types.d.ts","sourceRoot":"","sources":["../../src/lifeops/feature-flags.types.ts"],"names":[],"mappings":"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"}