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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1317) hide show
  1. package/dist/actions/app-block.d.ts +15 -0
  2. package/dist/actions/app-block.d.ts.map +1 -0
  3. package/dist/actions/app-block.js +349 -0
  4. package/dist/actions/app-block.js.map +1 -0
  5. package/dist/actions/autofill.d.ts +20 -0
  6. package/dist/actions/autofill.d.ts.map +1 -0
  7. package/dist/actions/autofill.js +370 -0
  8. package/dist/actions/autofill.js.map +1 -0
  9. package/dist/actions/block.d.ts +30 -0
  10. package/dist/actions/block.d.ts.map +1 -0
  11. package/dist/actions/block.js +326 -0
  12. package/dist/actions/block.js.map +1 -0
  13. package/dist/actions/book-travel.d.ts +10 -0
  14. package/dist/actions/book-travel.d.ts.map +1 -0
  15. package/dist/actions/book-travel.js +467 -0
  16. package/dist/actions/book-travel.js.map +1 -0
  17. package/dist/actions/brief.d.ts +60 -0
  18. package/dist/actions/brief.d.ts.map +1 -0
  19. package/dist/actions/brief.js +485 -0
  20. package/dist/actions/brief.js.map +1 -0
  21. package/dist/actions/calendar.d.ts +22 -0
  22. package/dist/actions/calendar.d.ts.map +1 -0
  23. package/dist/actions/calendar.js +832 -0
  24. package/dist/actions/calendar.js.map +1 -0
  25. package/dist/actions/conflict-detect.d.ts +67 -0
  26. package/dist/actions/conflict-detect.d.ts.map +1 -0
  27. package/dist/actions/conflict-detect.js +310 -0
  28. package/dist/actions/conflict-detect.js.map +1 -0
  29. package/dist/actions/connector.d.ts +5 -0
  30. package/dist/actions/connector.d.ts.map +1 -0
  31. package/dist/actions/connector.js +1354 -0
  32. package/dist/actions/connector.js.map +1 -0
  33. package/dist/actions/credentials.d.ts +14 -0
  34. package/dist/actions/credentials.d.ts.map +1 -0
  35. package/dist/actions/credentials.js +191 -0
  36. package/dist/actions/credentials.js.map +1 -0
  37. package/dist/actions/document.d.ts +36 -0
  38. package/dist/actions/document.d.ts.map +1 -0
  39. package/dist/actions/document.js +613 -0
  40. package/dist/actions/document.js.map +1 -0
  41. package/dist/actions/entity.d.ts +20 -0
  42. package/dist/actions/entity.d.ts.map +1 -0
  43. package/dist/actions/entity.js +785 -0
  44. package/dist/actions/entity.js.map +1 -0
  45. package/dist/actions/health.d.ts +4 -0
  46. package/dist/actions/health.d.ts.map +1 -0
  47. package/dist/actions/health.js +37 -0
  48. package/dist/actions/health.js.map +1 -0
  49. package/dist/actions/inbox.d.ts +12 -0
  50. package/dist/actions/inbox.d.ts.map +1 -0
  51. package/dist/actions/inbox.js +13 -0
  52. package/dist/actions/inbox.js.map +1 -0
  53. package/dist/actions/lib/calendly-handler.d.ts +3 -0
  54. package/dist/actions/lib/calendly-handler.d.ts.map +1 -0
  55. package/dist/actions/lib/calendly-handler.js +506 -0
  56. package/dist/actions/lib/calendly-handler.js.map +1 -0
  57. package/dist/actions/lib/extract-goal-plan.d.ts +69 -0
  58. package/dist/actions/lib/extract-goal-plan.d.ts.map +1 -0
  59. package/dist/actions/lib/extract-goal-plan.js +488 -0
  60. package/dist/actions/lib/extract-goal-plan.js.map +1 -0
  61. package/dist/actions/lib/extract-life-operation.d.ts +18 -0
  62. package/dist/actions/lib/extract-life-operation.d.ts.map +1 -0
  63. package/dist/actions/lib/extract-life-operation.js +318 -0
  64. package/dist/actions/lib/extract-life-operation.js.map +1 -0
  65. package/dist/actions/lib/extract-task-plan.d.ts +78 -0
  66. package/dist/actions/lib/extract-task-plan.d.ts.map +1 -0
  67. package/dist/actions/lib/extract-task-plan.js +355 -0
  68. package/dist/actions/lib/extract-task-plan.js.map +1 -0
  69. package/dist/actions/lib/extract-update-fields.d.ts +27 -0
  70. package/dist/actions/lib/extract-update-fields.d.ts.map +1 -0
  71. package/dist/actions/lib/extract-update-fields.js +172 -0
  72. package/dist/actions/lib/extract-update-fields.js.map +1 -0
  73. package/dist/actions/lib/lifeops-deferred-draft.d.ts +68 -0
  74. package/dist/actions/lib/lifeops-deferred-draft.d.ts.map +1 -0
  75. package/dist/actions/lib/lifeops-deferred-draft.js +315 -0
  76. package/dist/actions/lib/lifeops-deferred-draft.js.map +1 -0
  77. package/dist/actions/lib/messaging-helpers.d.ts +20 -0
  78. package/dist/actions/lib/messaging-helpers.d.ts.map +1 -0
  79. package/dist/actions/lib/messaging-helpers.js +103 -0
  80. package/dist/actions/lib/messaging-helpers.js.map +1 -0
  81. package/dist/actions/lib/owner-policy-writes.d.ts +49 -0
  82. package/dist/actions/lib/owner-policy-writes.d.ts.map +1 -0
  83. package/dist/actions/lib/owner-policy-writes.js +157 -0
  84. package/dist/actions/lib/owner-policy-writes.js.map +1 -0
  85. package/dist/actions/lib/prompt-format.d.ts +3 -0
  86. package/dist/actions/lib/prompt-format.d.ts.map +1 -0
  87. package/dist/actions/lib/prompt-format.js +42 -0
  88. package/dist/actions/lib/prompt-format.js.map +1 -0
  89. package/dist/actions/lib/scheduling-handler.d.ts +93 -0
  90. package/dist/actions/lib/scheduling-handler.d.ts.map +1 -0
  91. package/dist/actions/lib/scheduling-handler.js +868 -0
  92. package/dist/actions/lib/scheduling-handler.js.map +1 -0
  93. package/dist/actions/life.d.ts +13 -0
  94. package/dist/actions/life.d.ts.map +1 -0
  95. package/dist/actions/life.js +2524 -0
  96. package/dist/actions/life.js.map +1 -0
  97. package/dist/actions/money.d.ts +24 -0
  98. package/dist/actions/money.d.ts.map +1 -0
  99. package/dist/actions/money.js +41 -0
  100. package/dist/actions/money.js.map +1 -0
  101. package/dist/actions/owner-surfaces.d.ts +11 -0
  102. package/dist/actions/owner-surfaces.d.ts.map +1 -0
  103. package/dist/actions/owner-surfaces.js +493 -0
  104. package/dist/actions/owner-surfaces.js.map +1 -0
  105. package/dist/actions/password-manager.d.ts +10 -0
  106. package/dist/actions/password-manager.d.ts.map +1 -0
  107. package/dist/actions/password-manager.js +195 -0
  108. package/dist/actions/password-manager.js.map +1 -0
  109. package/dist/actions/payments.d.ts +10 -0
  110. package/dist/actions/payments.d.ts.map +1 -0
  111. package/dist/actions/payments.js +5 -0
  112. package/dist/actions/payments.js.map +1 -0
  113. package/dist/actions/prioritize.d.ts +49 -0
  114. package/dist/actions/prioritize.d.ts.map +1 -0
  115. package/dist/actions/prioritize.js +313 -0
  116. package/dist/actions/prioritize.js.map +1 -0
  117. package/dist/actions/remote-desktop.d.ts +13 -0
  118. package/dist/actions/remote-desktop.d.ts.map +1 -0
  119. package/dist/actions/remote-desktop.js +11 -0
  120. package/dist/actions/remote-desktop.js.map +1 -0
  121. package/dist/actions/resolve-request.d.ts +12 -0
  122. package/dist/actions/resolve-request.d.ts.map +1 -0
  123. package/dist/actions/resolve-request.js +427 -0
  124. package/dist/actions/resolve-request.js.map +1 -0
  125. package/dist/actions/schedule.d.ts +10 -0
  126. package/dist/actions/schedule.d.ts.map +1 -0
  127. package/dist/actions/schedule.js +113 -0
  128. package/dist/actions/schedule.js.map +1 -0
  129. package/dist/actions/scheduled-task.d.ts +32 -0
  130. package/dist/actions/scheduled-task.d.ts.map +1 -0
  131. package/dist/actions/scheduled-task.js +661 -0
  132. package/dist/actions/scheduled-task.js.map +1 -0
  133. package/dist/actions/screen-time.d.ts +4 -0
  134. package/dist/actions/screen-time.d.ts.map +1 -0
  135. package/dist/actions/screen-time.js +47 -0
  136. package/dist/actions/screen-time.js.map +1 -0
  137. package/dist/actions/subscriptions.d.ts +8 -0
  138. package/dist/actions/subscriptions.d.ts.map +1 -0
  139. package/dist/actions/subscriptions.js +327 -0
  140. package/dist/actions/subscriptions.js.map +1 -0
  141. package/dist/actions/voice-call.d.ts +16 -0
  142. package/dist/actions/voice-call.d.ts.map +1 -0
  143. package/dist/actions/voice-call.js +756 -0
  144. package/dist/actions/voice-call.js.map +1 -0
  145. package/dist/actions/website-block.d.ts +15 -0
  146. package/dist/actions/website-block.d.ts.map +1 -0
  147. package/dist/actions/website-block.js +719 -0
  148. package/dist/actions/website-block.js.map +1 -0
  149. package/dist/actions/work-thread.d.ts +5 -0
  150. package/dist/actions/work-thread.d.ts.map +1 -0
  151. package/dist/actions/work-thread.js +556 -0
  152. package/dist/actions/work-thread.js.map +1 -0
  153. package/dist/activity-profile/activity-tracker-repo.d.ts +28 -0
  154. package/dist/activity-profile/activity-tracker-repo.d.ts.map +1 -0
  155. package/dist/activity-profile/activity-tracker-repo.js +61 -0
  156. package/dist/activity-profile/activity-tracker-repo.js.map +1 -0
  157. package/dist/activity-profile/activity-tracker-reporting.d.ts +52 -0
  158. package/dist/activity-profile/activity-tracker-reporting.d.ts.map +1 -0
  159. package/dist/activity-profile/activity-tracker-reporting.js +119 -0
  160. package/dist/activity-profile/activity-tracker-reporting.js.map +1 -0
  161. package/dist/activity-profile/activity-tracker-service.d.ts +36 -0
  162. package/dist/activity-profile/activity-tracker-service.d.ts.map +1 -0
  163. package/dist/activity-profile/activity-tracker-service.js +187 -0
  164. package/dist/activity-profile/activity-tracker-service.js.map +1 -0
  165. package/dist/activity-profile/analyzer.d.ts +23 -0
  166. package/dist/activity-profile/analyzer.d.ts.map +1 -0
  167. package/dist/activity-profile/analyzer.js +485 -0
  168. package/dist/activity-profile/analyzer.js.map +1 -0
  169. package/dist/activity-profile/presence-signal-bridge-service.d.ts +14 -0
  170. package/dist/activity-profile/presence-signal-bridge-service.d.ts.map +1 -0
  171. package/dist/activity-profile/presence-signal-bridge-service.js +159 -0
  172. package/dist/activity-profile/presence-signal-bridge-service.js.map +1 -0
  173. package/dist/activity-profile/proactive-inbox-digest.d.ts +3 -0
  174. package/dist/activity-profile/proactive-inbox-digest.d.ts.map +1 -0
  175. package/dist/activity-profile/proactive-inbox-digest.js +21 -0
  176. package/dist/activity-profile/proactive-inbox-digest.js.map +1 -0
  177. package/dist/activity-profile/proactive-planner.d.ts +150 -0
  178. package/dist/activity-profile/proactive-planner.d.ts.map +1 -0
  179. package/dist/activity-profile/proactive-planner.js +529 -0
  180. package/dist/activity-profile/proactive-planner.js.map +1 -0
  181. package/dist/activity-profile/proactive-worker.d.ts +33 -0
  182. package/dist/activity-profile/proactive-worker.d.ts.map +1 -0
  183. package/dist/activity-profile/proactive-worker.js +779 -0
  184. package/dist/activity-profile/proactive-worker.js.map +1 -0
  185. package/dist/activity-profile/profile-metadata.d.ts +10 -0
  186. package/dist/activity-profile/profile-metadata.d.ts.map +1 -0
  187. package/dist/activity-profile/profile-metadata.js +16 -0
  188. package/dist/activity-profile/profile-metadata.js.map +1 -0
  189. package/dist/activity-profile/redactor.d.ts +15 -0
  190. package/dist/activity-profile/redactor.d.ts.map +1 -0
  191. package/dist/activity-profile/redactor.js +22 -0
  192. package/dist/activity-profile/redactor.js.map +1 -0
  193. package/dist/activity-profile/service.d.ts +11 -0
  194. package/dist/activity-profile/service.d.ts.map +1 -0
  195. package/dist/activity-profile/service.js +272 -0
  196. package/dist/activity-profile/service.js.map +1 -0
  197. package/dist/activity-profile/types.d.ts +97 -0
  198. package/dist/activity-profile/types.d.ts.map +1 -0
  199. package/dist/activity-profile/types.js +36 -0
  200. package/dist/activity-profile/types.js.map +1 -0
  201. package/dist/agent-lifeops.d.ts +2 -0
  202. package/dist/agent-lifeops.d.ts.map +1 -0
  203. package/dist/agent-lifeops.js +2 -0
  204. package/dist/agent-lifeops.js.map +1 -0
  205. package/dist/api/client-lifeops.d.ts +319 -0
  206. package/dist/api/client-lifeops.d.ts.map +1 -0
  207. package/dist/api/client-lifeops.js +794 -0
  208. package/dist/api/client-lifeops.js.map +1 -0
  209. package/dist/automation-node-contributor.d.ts +2 -0
  210. package/dist/automation-node-contributor.d.ts.map +1 -0
  211. package/dist/automation-node-contributor.js +184 -0
  212. package/dist/automation-node-contributor.js.map +1 -0
  213. package/dist/client.d.ts +16 -0
  214. package/dist/client.d.ts.map +1 -0
  215. package/dist/client.js +18 -0
  216. package/dist/client.js.map +1 -0
  217. package/dist/components/AppBlockerSettingsCard.d.ts +3 -0
  218. package/dist/components/AppBlockerSettingsCard.d.ts.map +1 -0
  219. package/dist/components/AppBlockerSettingsCard.js +538 -0
  220. package/dist/components/AppBlockerSettingsCard.js.map +1 -0
  221. package/dist/components/WebsiteBlockerSettingsCard.d.ts +3 -0
  222. package/dist/components/WebsiteBlockerSettingsCard.d.ts.map +1 -0
  223. package/dist/components/WebsiteBlockerSettingsCard.js +148 -0
  224. package/dist/components/WebsiteBlockerSettingsCard.js.map +1 -0
  225. package/dist/contracts/index.d.ts +2 -0
  226. package/dist/contracts/index.d.ts.map +1 -0
  227. package/dist/contracts/index.js +2 -0
  228. package/dist/contracts/index.js.map +1 -0
  229. package/dist/contracts/lifeops.d.ts +2 -0
  230. package/dist/contracts/lifeops.d.ts.map +1 -0
  231. package/dist/contracts/lifeops.js +2 -0
  232. package/dist/contracts/lifeops.js.map +1 -0
  233. package/dist/default-packs/autofill-whitelist-pack.d.ts +17 -0
  234. package/dist/default-packs/autofill-whitelist-pack.d.ts.map +1 -0
  235. package/dist/default-packs/autofill-whitelist-pack.js +56 -0
  236. package/dist/default-packs/autofill-whitelist-pack.js.map +1 -0
  237. package/dist/default-packs/consolidation-policies.d.ts +14 -0
  238. package/dist/default-packs/consolidation-policies.d.ts.map +1 -0
  239. package/dist/default-packs/consolidation-policies.js +17 -0
  240. package/dist/default-packs/consolidation-policies.js.map +1 -0
  241. package/dist/default-packs/contract-types.d.ts +200 -0
  242. package/dist/default-packs/contract-types.d.ts.map +1 -0
  243. package/dist/default-packs/contract-types.js +1 -0
  244. package/dist/default-packs/contract-types.js.map +1 -0
  245. package/dist/default-packs/daily-rhythm.d.ts +28 -0
  246. package/dist/default-packs/daily-rhythm.d.ts.map +1 -0
  247. package/dist/default-packs/daily-rhythm.js +136 -0
  248. package/dist/default-packs/daily-rhythm.js.map +1 -0
  249. package/dist/default-packs/escalation-ladders.d.ts +18 -0
  250. package/dist/default-packs/escalation-ladders.d.ts.map +1 -0
  251. package/dist/default-packs/escalation-ladders.js +17 -0
  252. package/dist/default-packs/escalation-ladders.js.map +1 -0
  253. package/dist/default-packs/executive-assistant.d.ts +50 -0
  254. package/dist/default-packs/executive-assistant.d.ts.map +1 -0
  255. package/dist/default-packs/executive-assistant.js +745 -0
  256. package/dist/default-packs/executive-assistant.js.map +1 -0
  257. package/dist/default-packs/followup-starter.d.ts +49 -0
  258. package/dist/default-packs/followup-starter.d.ts.map +1 -0
  259. package/dist/default-packs/followup-starter.js +104 -0
  260. package/dist/default-packs/followup-starter.js.map +1 -0
  261. package/dist/default-packs/habit-starters.d.ts +37 -0
  262. package/dist/default-packs/habit-starters.d.ts.map +1 -0
  263. package/dist/default-packs/habit-starters.js +255 -0
  264. package/dist/default-packs/habit-starters.js.map +1 -0
  265. package/dist/default-packs/inbox-triage-starter.d.ts +23 -0
  266. package/dist/default-packs/inbox-triage-starter.d.ts.map +1 -0
  267. package/dist/default-packs/inbox-triage-starter.js +61 -0
  268. package/dist/default-packs/inbox-triage-starter.js.map +1 -0
  269. package/dist/default-packs/index.d.ts +54 -0
  270. package/dist/default-packs/index.d.ts.map +1 -0
  271. package/dist/default-packs/index.js +150 -0
  272. package/dist/default-packs/index.js.map +1 -0
  273. package/dist/default-packs/lint.d.ts +62 -0
  274. package/dist/default-packs/lint.d.ts.map +1 -0
  275. package/dist/default-packs/lint.js +161 -0
  276. package/dist/default-packs/lint.js.map +1 -0
  277. package/dist/default-packs/morning-brief.d.ts +44 -0
  278. package/dist/default-packs/morning-brief.d.ts.map +1 -0
  279. package/dist/default-packs/morning-brief.js +69 -0
  280. package/dist/default-packs/morning-brief.js.map +1 -0
  281. package/dist/default-packs/quiet-user-watcher.d.ts +49 -0
  282. package/dist/default-packs/quiet-user-watcher.d.ts.map +1 -0
  283. package/dist/default-packs/quiet-user-watcher.js +92 -0
  284. package/dist/default-packs/quiet-user-watcher.js.map +1 -0
  285. package/dist/default-packs/registry-types.d.ts +51 -0
  286. package/dist/default-packs/registry-types.d.ts.map +1 -0
  287. package/dist/default-packs/registry-types.js +1 -0
  288. package/dist/default-packs/registry-types.js.map +1 -0
  289. package/dist/default-packs/task-definitions.d.ts +88 -0
  290. package/dist/default-packs/task-definitions.d.ts.map +1 -0
  291. package/dist/default-packs/task-definitions.js +87 -0
  292. package/dist/default-packs/task-definitions.js.map +1 -0
  293. package/dist/events/index.d.ts +34 -0
  294. package/dist/events/index.d.ts.map +1 -0
  295. package/dist/events/index.js +30 -0
  296. package/dist/events/index.js.map +1 -0
  297. package/dist/followup/actions/listOverdueFollowups.d.ts +3 -0
  298. package/dist/followup/actions/listOverdueFollowups.d.ts.map +1 -0
  299. package/dist/followup/actions/listOverdueFollowups.js +90 -0
  300. package/dist/followup/actions/listOverdueFollowups.js.map +1 -0
  301. package/dist/followup/actions/markFollowupDone.d.ts +3 -0
  302. package/dist/followup/actions/markFollowupDone.d.ts.map +1 -0
  303. package/dist/followup/actions/markFollowupDone.js +171 -0
  304. package/dist/followup/actions/markFollowupDone.js.map +1 -0
  305. package/dist/followup/actions/setFollowupThreshold.d.ts +3 -0
  306. package/dist/followup/actions/setFollowupThreshold.d.ts.map +1 -0
  307. package/dist/followup/actions/setFollowupThreshold.js +171 -0
  308. package/dist/followup/actions/setFollowupThreshold.js.map +1 -0
  309. package/dist/followup/followup-tracker.d.ts +83 -0
  310. package/dist/followup/followup-tracker.d.ts.map +1 -0
  311. package/dist/followup/followup-tracker.js +311 -0
  312. package/dist/followup/followup-tracker.js.map +1 -0
  313. package/dist/followup/index.d.ts +5 -0
  314. package/dist/followup/index.d.ts.map +1 -0
  315. package/dist/followup/index.js +39 -0
  316. package/dist/followup/index.js.map +1 -0
  317. package/dist/hooks/connector-error.d.ts +2 -0
  318. package/dist/hooks/connector-error.d.ts.map +1 -0
  319. package/dist/hooks/connector-error.js +13 -0
  320. package/dist/hooks/connector-error.js.map +1 -0
  321. package/dist/hooks/useDiscordConnector.d.ts +11 -0
  322. package/dist/hooks/useDiscordConnector.d.ts.map +1 -0
  323. package/dist/hooks/useDiscordConnector.js +95 -0
  324. package/dist/hooks/useDiscordConnector.js.map +1 -0
  325. package/dist/hooks/useGoogleLifeOpsConnector.d.ts +23 -0
  326. package/dist/hooks/useGoogleLifeOpsConnector.d.ts.map +1 -0
  327. package/dist/hooks/useGoogleLifeOpsConnector.js +630 -0
  328. package/dist/hooks/useGoogleLifeOpsConnector.js.map +1 -0
  329. package/dist/hooks/useIMessageConnector.d.ts +10 -0
  330. package/dist/hooks/useIMessageConnector.d.ts.map +1 -0
  331. package/dist/hooks/useIMessageConnector.js +57 -0
  332. package/dist/hooks/useIMessageConnector.js.map +1 -0
  333. package/dist/hooks/useInbox.d.ts +36 -0
  334. package/dist/hooks/useInbox.d.ts.map +1 -0
  335. package/dist/hooks/useInbox.js +96 -0
  336. package/dist/hooks/useInbox.js.map +1 -0
  337. package/dist/hooks/useLifeOpsActivitySignals.d.ts +2 -0
  338. package/dist/hooks/useLifeOpsActivitySignals.d.ts.map +1 -0
  339. package/dist/hooks/useLifeOpsActivitySignals.js +358 -0
  340. package/dist/hooks/useLifeOpsActivitySignals.js.map +1 -0
  341. package/dist/hooks/useLifeOpsAppState.d.ts +9 -0
  342. package/dist/hooks/useLifeOpsAppState.d.ts.map +1 -0
  343. package/dist/hooks/useLifeOpsAppState.js +79 -0
  344. package/dist/hooks/useLifeOpsAppState.js.map +1 -0
  345. package/dist/hooks/useLifeOpsCapabilitiesStatus.d.ts +8 -0
  346. package/dist/hooks/useLifeOpsCapabilitiesStatus.d.ts.map +1 -0
  347. package/dist/hooks/useLifeOpsCapabilitiesStatus.js +60 -0
  348. package/dist/hooks/useLifeOpsCapabilitiesStatus.js.map +1 -0
  349. package/dist/hooks/useLifeOpsXConnector.d.ts +11 -0
  350. package/dist/hooks/useLifeOpsXConnector.d.ts.map +1 -0
  351. package/dist/hooks/useLifeOpsXConnector.js +92 -0
  352. package/dist/hooks/useLifeOpsXConnector.js.map +1 -0
  353. package/dist/hooks/useSignalConnector.d.ts +14 -0
  354. package/dist/hooks/useSignalConnector.d.ts.map +1 -0
  355. package/dist/hooks/useSignalConnector.js +89 -0
  356. package/dist/hooks/useSignalConnector.js.map +1 -0
  357. package/dist/hooks/useTelegramConnector.d.ts +14 -0
  358. package/dist/hooks/useTelegramConnector.d.ts.map +1 -0
  359. package/dist/hooks/useTelegramConnector.js +97 -0
  360. package/dist/hooks/useTelegramConnector.js.map +1 -0
  361. package/dist/hooks/useWhatsAppConnector.d.ts +8 -0
  362. package/dist/hooks/useWhatsAppConnector.d.ts.map +1 -0
  363. package/dist/hooks/useWhatsAppConnector.js +62 -0
  364. package/dist/hooks/useWhatsAppConnector.js.map +1 -0
  365. package/dist/inbox/message-fetcher.d.ts +11 -0
  366. package/dist/inbox/message-fetcher.d.ts.map +1 -0
  367. package/dist/inbox/message-fetcher.js +13 -0
  368. package/dist/inbox/message-fetcher.js.map +1 -0
  369. package/dist/inbox/repository.d.ts +11 -0
  370. package/dist/inbox/repository.d.ts.map +1 -0
  371. package/dist/inbox/repository.js +5 -0
  372. package/dist/inbox/repository.js.map +1 -0
  373. package/dist/inbox/types.d.ts +10 -0
  374. package/dist/inbox/types.d.ts.map +1 -0
  375. package/dist/inbox/types.js +2 -0
  376. package/dist/inbox/types.js.map +1 -0
  377. package/dist/index.d.ts +36 -0
  378. package/dist/index.d.ts.map +1 -0
  379. package/dist/index.js +188 -0
  380. package/dist/index.js.map +1 -0
  381. package/dist/lifeops/access.d.ts +29 -0
  382. package/dist/lifeops/access.d.ts.map +1 -0
  383. package/dist/lifeops/access.js +56 -0
  384. package/dist/lifeops/access.js.map +1 -0
  385. package/dist/lifeops/app-state.d.ts +22 -0
  386. package/dist/lifeops/app-state.d.ts.map +1 -0
  387. package/dist/lifeops/app-state.js +67 -0
  388. package/dist/lifeops/app-state.js.map +1 -0
  389. package/dist/lifeops/apple-reminders.d.ts +67 -0
  390. package/dist/lifeops/apple-reminders.d.ts.map +1 -0
  391. package/dist/lifeops/apple-reminders.js +396 -0
  392. package/dist/lifeops/apple-reminders.js.map +1 -0
  393. package/dist/lifeops/approval-queue.d.ts +38 -0
  394. package/dist/lifeops/approval-queue.d.ts.map +1 -0
  395. package/dist/lifeops/approval-queue.js +575 -0
  396. package/dist/lifeops/approval-queue.js.map +1 -0
  397. package/dist/lifeops/approval-queue.types.d.ts +172 -0
  398. package/dist/lifeops/approval-queue.types.d.ts.map +1 -0
  399. package/dist/lifeops/approval-queue.types.js +27 -0
  400. package/dist/lifeops/approval-queue.types.js.map +1 -0
  401. package/dist/lifeops/autofill-whitelist.d.ts +20 -0
  402. package/dist/lifeops/autofill-whitelist.d.ts.map +1 -0
  403. package/dist/lifeops/autofill-whitelist.js +59 -0
  404. package/dist/lifeops/autofill-whitelist.js.map +1 -0
  405. package/dist/lifeops/background-planner-dispatch.d.ts +60 -0
  406. package/dist/lifeops/background-planner-dispatch.d.ts.map +1 -0
  407. package/dist/lifeops/background-planner-dispatch.js +113 -0
  408. package/dist/lifeops/background-planner-dispatch.js.map +1 -0
  409. package/dist/lifeops/background-planner.d.ts +140 -0
  410. package/dist/lifeops/background-planner.d.ts.map +1 -0
  411. package/dist/lifeops/background-planner.js +359 -0
  412. package/dist/lifeops/background-planner.js.map +1 -0
  413. package/dist/lifeops/bill-extraction.d.ts +46 -0
  414. package/dist/lifeops/bill-extraction.d.ts.map +1 -0
  415. package/dist/lifeops/bill-extraction.js +325 -0
  416. package/dist/lifeops/bill-extraction.js.map +1 -0
  417. package/dist/lifeops/browser-constants.d.ts +4 -0
  418. package/dist/lifeops/browser-constants.d.ts.map +1 -0
  419. package/dist/lifeops/browser-constants.js +27 -0
  420. package/dist/lifeops/browser-constants.js.map +1 -0
  421. package/dist/lifeops/browser-extension-store.d.ts +61 -0
  422. package/dist/lifeops/browser-extension-store.d.ts.map +1 -0
  423. package/dist/lifeops/browser-extension-store.js +176 -0
  424. package/dist/lifeops/browser-extension-store.js.map +1 -0
  425. package/dist/lifeops/browser-session-lifecycle.d.ts +57 -0
  426. package/dist/lifeops/browser-session-lifecycle.d.ts.map +1 -0
  427. package/dist/lifeops/browser-session-lifecycle.js +308 -0
  428. package/dist/lifeops/browser-session-lifecycle.js.map +1 -0
  429. package/dist/lifeops/bulk-review.d.ts +333 -0
  430. package/dist/lifeops/bulk-review.d.ts.map +1 -0
  431. package/dist/lifeops/bulk-review.js +1120 -0
  432. package/dist/lifeops/bulk-review.js.map +1 -0
  433. package/dist/lifeops/calendar-gate.d.ts +20 -0
  434. package/dist/lifeops/calendar-gate.d.ts.map +1 -0
  435. package/dist/lifeops/calendar-gate.js +30 -0
  436. package/dist/lifeops/calendar-gate.js.map +1 -0
  437. package/dist/lifeops/channels/contract.d.ts +47 -0
  438. package/dist/lifeops/channels/contract.d.ts.map +1 -0
  439. package/dist/lifeops/channels/contract.js +1 -0
  440. package/dist/lifeops/channels/contract.js.map +1 -0
  441. package/dist/lifeops/channels/default-pack.d.ts +26 -0
  442. package/dist/lifeops/channels/default-pack.d.ts.map +1 -0
  443. package/dist/lifeops/channels/default-pack.js +243 -0
  444. package/dist/lifeops/channels/default-pack.js.map +1 -0
  445. package/dist/lifeops/channels/index.d.ts +5 -0
  446. package/dist/lifeops/channels/index.d.ts.map +1 -0
  447. package/dist/lifeops/channels/index.js +23 -0
  448. package/dist/lifeops/channels/index.js.map +1 -0
  449. package/dist/lifeops/channels/priority-posture.d.ts +36 -0
  450. package/dist/lifeops/channels/priority-posture.d.ts.map +1 -0
  451. package/dist/lifeops/channels/priority-posture.js +27 -0
  452. package/dist/lifeops/channels/priority-posture.js.map +1 -0
  453. package/dist/lifeops/channels/registry.d.ts +7 -0
  454. package/dist/lifeops/channels/registry.d.ts.map +1 -0
  455. package/dist/lifeops/channels/registry.js +49 -0
  456. package/dist/lifeops/channels/registry.js.map +1 -0
  457. package/dist/lifeops/checkin/checkin-service.d.ts +66 -0
  458. package/dist/lifeops/checkin/checkin-service.d.ts.map +1 -0
  459. package/dist/lifeops/checkin/checkin-service.js +1084 -0
  460. package/dist/lifeops/checkin/checkin-service.js.map +1 -0
  461. package/dist/lifeops/checkin/schedule-resolver.d.ts +17 -0
  462. package/dist/lifeops/checkin/schedule-resolver.d.ts.map +1 -0
  463. package/dist/lifeops/checkin/schedule-resolver.js +26 -0
  464. package/dist/lifeops/checkin/schedule-resolver.js.map +1 -0
  465. package/dist/lifeops/checkin/types.d.ts +106 -0
  466. package/dist/lifeops/checkin/types.d.ts.map +1 -0
  467. package/dist/lifeops/checkin/types.js +1 -0
  468. package/dist/lifeops/checkin/types.js.map +1 -0
  469. package/dist/lifeops/connectors/_helpers.d.ts +51 -0
  470. package/dist/lifeops/connectors/_helpers.d.ts.map +1 -0
  471. package/dist/lifeops/connectors/_helpers.js +104 -0
  472. package/dist/lifeops/connectors/_helpers.js.map +1 -0
  473. package/dist/lifeops/connectors/calendly.d.ts +11 -0
  474. package/dist/lifeops/connectors/calendly.d.ts.map +1 -0
  475. package/dist/lifeops/connectors/calendly.js +61 -0
  476. package/dist/lifeops/connectors/calendly.js.map +1 -0
  477. package/dist/lifeops/connectors/contract.d.ts +88 -0
  478. package/dist/lifeops/connectors/contract.d.ts.map +1 -0
  479. package/dist/lifeops/connectors/contract.js +1 -0
  480. package/dist/lifeops/connectors/contract.js.map +1 -0
  481. package/dist/lifeops/connectors/default-pack.d.ts +35 -0
  482. package/dist/lifeops/connectors/default-pack.d.ts.map +1 -0
  483. package/dist/lifeops/connectors/default-pack.js +37 -0
  484. package/dist/lifeops/connectors/default-pack.js.map +1 -0
  485. package/dist/lifeops/connectors/discord.d.ts +8 -0
  486. package/dist/lifeops/connectors/discord.d.ts.map +1 -0
  487. package/dist/lifeops/connectors/discord.js +53 -0
  488. package/dist/lifeops/connectors/discord.js.map +1 -0
  489. package/dist/lifeops/connectors/dispatch-policy.d.ts +75 -0
  490. package/dist/lifeops/connectors/dispatch-policy.d.ts.map +1 -0
  491. package/dist/lifeops/connectors/dispatch-policy.js +35 -0
  492. package/dist/lifeops/connectors/dispatch-policy.js.map +1 -0
  493. package/dist/lifeops/connectors/duffel.d.ts +11 -0
  494. package/dist/lifeops/connectors/duffel.d.ts.map +1 -0
  495. package/dist/lifeops/connectors/duffel.js +74 -0
  496. package/dist/lifeops/connectors/duffel.js.map +1 -0
  497. package/dist/lifeops/connectors/google.d.ts +27 -0
  498. package/dist/lifeops/connectors/google.d.ts.map +1 -0
  499. package/dist/lifeops/connectors/google.js +80 -0
  500. package/dist/lifeops/connectors/google.js.map +1 -0
  501. package/dist/lifeops/connectors/imessage.d.ts +11 -0
  502. package/dist/lifeops/connectors/imessage.d.ts.map +1 -0
  503. package/dist/lifeops/connectors/imessage.js +55 -0
  504. package/dist/lifeops/connectors/imessage.js.map +1 -0
  505. package/dist/lifeops/connectors/index.d.ts +5 -0
  506. package/dist/lifeops/connectors/index.d.ts.map +1 -0
  507. package/dist/lifeops/connectors/index.js +23 -0
  508. package/dist/lifeops/connectors/index.js.map +1 -0
  509. package/dist/lifeops/connectors/mockoon-redirect.d.ts +54 -0
  510. package/dist/lifeops/connectors/mockoon-redirect.d.ts.map +1 -0
  511. package/dist/lifeops/connectors/mockoon-redirect.js +71 -0
  512. package/dist/lifeops/connectors/mockoon-redirect.js.map +1 -0
  513. package/dist/lifeops/connectors/registry.d.ts +7 -0
  514. package/dist/lifeops/connectors/registry.d.ts.map +1 -0
  515. package/dist/lifeops/connectors/registry.js +55 -0
  516. package/dist/lifeops/connectors/registry.js.map +1 -0
  517. package/dist/lifeops/connectors/signal.d.ts +8 -0
  518. package/dist/lifeops/connectors/signal.d.ts.map +1 -0
  519. package/dist/lifeops/connectors/signal.js +60 -0
  520. package/dist/lifeops/connectors/signal.js.map +1 -0
  521. package/dist/lifeops/connectors/telegram.d.ts +12 -0
  522. package/dist/lifeops/connectors/telegram.d.ts.map +1 -0
  523. package/dist/lifeops/connectors/telegram.js +65 -0
  524. package/dist/lifeops/connectors/telegram.js.map +1 -0
  525. package/dist/lifeops/connectors/twilio.d.ts +15 -0
  526. package/dist/lifeops/connectors/twilio.d.ts.map +1 -0
  527. package/dist/lifeops/connectors/twilio.js +126 -0
  528. package/dist/lifeops/connectors/twilio.js.map +1 -0
  529. package/dist/lifeops/connectors/whatsapp.d.ts +10 -0
  530. package/dist/lifeops/connectors/whatsapp.d.ts.map +1 -0
  531. package/dist/lifeops/connectors/whatsapp.js +56 -0
  532. package/dist/lifeops/connectors/whatsapp.js.map +1 -0
  533. package/dist/lifeops/connectors/x.d.ts +8 -0
  534. package/dist/lifeops/connectors/x.d.ts.map +1 -0
  535. package/dist/lifeops/connectors/x.js +62 -0
  536. package/dist/lifeops/connectors/x.js.map +1 -0
  537. package/dist/lifeops/contact-route-policy.d.ts +27 -0
  538. package/dist/lifeops/contact-route-policy.d.ts.map +1 -0
  539. package/dist/lifeops/contact-route-policy.js +153 -0
  540. package/dist/lifeops/contact-route-policy.js.map +1 -0
  541. package/dist/lifeops/continuity-probe.d.ts +49 -0
  542. package/dist/lifeops/continuity-probe.d.ts.map +1 -0
  543. package/dist/lifeops/continuity-probe.js +161 -0
  544. package/dist/lifeops/continuity-probe.js.map +1 -0
  545. package/dist/lifeops/cross-channel-search.d.ts +108 -0
  546. package/dist/lifeops/cross-channel-search.d.ts.map +1 -0
  547. package/dist/lifeops/cross-channel-search.js +888 -0
  548. package/dist/lifeops/cross-channel-search.js.map +1 -0
  549. package/dist/lifeops/defaults.d.ts +30 -0
  550. package/dist/lifeops/defaults.d.ts.map +1 -0
  551. package/dist/lifeops/defaults.js +206 -0
  552. package/dist/lifeops/defaults.js.map +1 -0
  553. package/dist/lifeops/device-bus-service.d.ts +16 -0
  554. package/dist/lifeops/device-bus-service.d.ts.map +1 -0
  555. package/dist/lifeops/device-bus-service.js +20 -0
  556. package/dist/lifeops/device-bus-service.js.map +1 -0
  557. package/dist/lifeops/device-identity.d.ts +31 -0
  558. package/dist/lifeops/device-identity.d.ts.map +1 -0
  559. package/dist/lifeops/device-identity.js +94 -0
  560. package/dist/lifeops/device-identity.js.map +1 -0
  561. package/dist/lifeops/document-review.d.ts +264 -0
  562. package/dist/lifeops/document-review.d.ts.map +1 -0
  563. package/dist/lifeops/document-review.js +925 -0
  564. package/dist/lifeops/document-review.js.map +1 -0
  565. package/dist/lifeops/email-classifier.d.ts +9 -0
  566. package/dist/lifeops/email-classifier.d.ts.map +1 -0
  567. package/dist/lifeops/email-classifier.js +15 -0
  568. package/dist/lifeops/email-classifier.js.map +1 -0
  569. package/dist/lifeops/email-curation.d.ts +13 -0
  570. package/dist/lifeops/email-curation.d.ts.map +1 -0
  571. package/dist/lifeops/email-curation.js +2 -0
  572. package/dist/lifeops/email-curation.js.map +1 -0
  573. package/dist/lifeops/email-unsubscribe-types.d.ts +7 -0
  574. package/dist/lifeops/email-unsubscribe-types.d.ts.map +1 -0
  575. package/dist/lifeops/email-unsubscribe-types.js +1 -0
  576. package/dist/lifeops/email-unsubscribe-types.js.map +1 -0
  577. package/dist/lifeops/enforcement-windows.d.ts +34 -0
  578. package/dist/lifeops/enforcement-windows.d.ts.map +1 -0
  579. package/dist/lifeops/enforcement-windows.js +80 -0
  580. package/dist/lifeops/enforcement-windows.js.map +1 -0
  581. package/dist/lifeops/engine.d.ts +8 -0
  582. package/dist/lifeops/engine.d.ts.map +1 -0
  583. package/dist/lifeops/engine.js +540 -0
  584. package/dist/lifeops/engine.js.map +1 -0
  585. package/dist/lifeops/entities/index.d.ts +4 -0
  586. package/dist/lifeops/entities/index.d.ts.map +1 -0
  587. package/dist/lifeops/entities/index.js +29 -0
  588. package/dist/lifeops/entities/index.js.map +1 -0
  589. package/dist/lifeops/entities/merge.d.ts +9 -0
  590. package/dist/lifeops/entities/merge.d.ts.map +1 -0
  591. package/dist/lifeops/entities/merge.js +17 -0
  592. package/dist/lifeops/entities/merge.js.map +1 -0
  593. package/dist/lifeops/entities/store.d.ts +13 -0
  594. package/dist/lifeops/entities/store.d.ts.map +1 -0
  595. package/dist/lifeops/entities/store.js +7 -0
  596. package/dist/lifeops/entities/store.js.map +1 -0
  597. package/dist/lifeops/entities/types.d.ts +9 -0
  598. package/dist/lifeops/entities/types.d.ts.map +1 -0
  599. package/dist/lifeops/entities/types.js +13 -0
  600. package/dist/lifeops/entities/types.js.map +1 -0
  601. package/dist/lifeops/entities/voice-attribution.d.ts +70 -0
  602. package/dist/lifeops/entities/voice-attribution.d.ts.map +1 -0
  603. package/dist/lifeops/entities/voice-attribution.js +121 -0
  604. package/dist/lifeops/entities/voice-attribution.js.map +1 -0
  605. package/dist/lifeops/entities/voice-observer-bridge.d.ts +32 -0
  606. package/dist/lifeops/entities/voice-observer-bridge.d.ts.map +1 -0
  607. package/dist/lifeops/entities/voice-observer-bridge.js +68 -0
  608. package/dist/lifeops/entities/voice-observer-bridge.js.map +1 -0
  609. package/dist/lifeops/entities/voice-observer.d.ts +72 -0
  610. package/dist/lifeops/entities/voice-observer.d.ts.map +1 -0
  611. package/dist/lifeops/entities/voice-observer.js +97 -0
  612. package/dist/lifeops/entities/voice-observer.js.map +1 -0
  613. package/dist/lifeops/escalation-ladders.d.ts +28 -0
  614. package/dist/lifeops/escalation-ladders.d.ts.map +1 -0
  615. package/dist/lifeops/escalation-ladders.js +17 -0
  616. package/dist/lifeops/escalation-ladders.js.map +1 -0
  617. package/dist/lifeops/fda-probe.d.ts +23 -0
  618. package/dist/lifeops/fda-probe.d.ts.map +1 -0
  619. package/dist/lifeops/fda-probe.js +59 -0
  620. package/dist/lifeops/fda-probe.js.map +1 -0
  621. package/dist/lifeops/feature-flags.d.ts +24 -0
  622. package/dist/lifeops/feature-flags.d.ts.map +1 -0
  623. package/dist/lifeops/feature-flags.js +261 -0
  624. package/dist/lifeops/feature-flags.js.map +1 -0
  625. package/dist/lifeops/feature-flags.types.d.ts +156 -0
  626. package/dist/lifeops/feature-flags.types.d.ts.map +1 -0
  627. package/dist/lifeops/feature-flags.types.js +129 -0
  628. package/dist/lifeops/feature-flags.types.js.map +1 -0
  629. package/dist/lifeops/first-run/defaults.d.ts +57 -0
  630. package/dist/lifeops/first-run/defaults.d.ts.map +1 -0
  631. package/dist/lifeops/first-run/defaults.js +159 -0
  632. package/dist/lifeops/first-run/defaults.js.map +1 -0
  633. package/dist/lifeops/first-run/questions.d.ts +74 -0
  634. package/dist/lifeops/first-run/questions.d.ts.map +1 -0
  635. package/dist/lifeops/first-run/questions.js +184 -0
  636. package/dist/lifeops/first-run/questions.js.map +1 -0
  637. package/dist/lifeops/first-run/replay.d.ts +41 -0
  638. package/dist/lifeops/first-run/replay.d.ts.map +1 -0
  639. package/dist/lifeops/first-run/replay.js +34 -0
  640. package/dist/lifeops/first-run/replay.js.map +1 -0
  641. package/dist/lifeops/first-run/service.d.ts +147 -0
  642. package/dist/lifeops/first-run/service.d.ts.map +1 -0
  643. package/dist/lifeops/first-run/service.js +455 -0
  644. package/dist/lifeops/first-run/service.js.map +1 -0
  645. package/dist/lifeops/first-run/state.d.ts +36 -0
  646. package/dist/lifeops/first-run/state.d.ts.map +1 -0
  647. package/dist/lifeops/first-run/state.js +128 -0
  648. package/dist/lifeops/first-run/state.js.map +1 -0
  649. package/dist/lifeops/global-pause/store.d.ts +22 -0
  650. package/dist/lifeops/global-pause/store.d.ts.map +1 -0
  651. package/dist/lifeops/global-pause/store.js +18 -0
  652. package/dist/lifeops/global-pause/store.js.map +1 -0
  653. package/dist/lifeops/goal-grounding.d.ts +9 -0
  654. package/dist/lifeops/goal-grounding.d.ts.map +1 -0
  655. package/dist/lifeops/goal-grounding.js +19 -0
  656. package/dist/lifeops/goal-grounding.js.map +1 -0
  657. package/dist/lifeops/goal-semantic-evaluator.d.ts +8 -0
  658. package/dist/lifeops/goal-semantic-evaluator.d.ts.map +1 -0
  659. package/dist/lifeops/goal-semantic-evaluator.js +7 -0
  660. package/dist/lifeops/goal-semantic-evaluator.js.map +1 -0
  661. package/dist/lifeops/google/format-helpers.d.ts +63 -0
  662. package/dist/lifeops/google/format-helpers.d.ts.map +1 -0
  663. package/dist/lifeops/google/format-helpers.js +597 -0
  664. package/dist/lifeops/google/format-helpers.js.map +1 -0
  665. package/dist/lifeops/google-plugin-delegates.d.ts +59 -0
  666. package/dist/lifeops/google-plugin-delegates.d.ts.map +1 -0
  667. package/dist/lifeops/google-plugin-delegates.js +408 -0
  668. package/dist/lifeops/google-plugin-delegates.js.map +1 -0
  669. package/dist/lifeops/google-scopes.d.ts +15 -0
  670. package/dist/lifeops/google-scopes.d.ts.map +1 -0
  671. package/dist/lifeops/google-scopes.js +118 -0
  672. package/dist/lifeops/google-scopes.js.map +1 -0
  673. package/dist/lifeops/handoff/store.d.ts +23 -0
  674. package/dist/lifeops/handoff/store.d.ts.map +1 -0
  675. package/dist/lifeops/handoff/store.js +20 -0
  676. package/dist/lifeops/handoff/store.js.map +1 -0
  677. package/dist/lifeops/i18n/localized-examples-provider.d.ts +16 -0
  678. package/dist/lifeops/i18n/localized-examples-provider.d.ts.map +1 -0
  679. package/dist/lifeops/i18n/localized-examples-provider.js +33 -0
  680. package/dist/lifeops/i18n/localized-examples-provider.js.map +1 -0
  681. package/dist/lifeops/i18n/localized-examples-resolver.d.ts +32 -0
  682. package/dist/lifeops/i18n/localized-examples-resolver.d.ts.map +1 -0
  683. package/dist/lifeops/i18n/localized-examples-resolver.js +28 -0
  684. package/dist/lifeops/i18n/localized-examples-resolver.js.map +1 -0
  685. package/dist/lifeops/i18n/prompt-registry.d.ts +64 -0
  686. package/dist/lifeops/i18n/prompt-registry.d.ts.map +1 -0
  687. package/dist/lifeops/i18n/prompt-registry.js +283 -0
  688. package/dist/lifeops/i18n/prompt-registry.js.map +1 -0
  689. package/dist/lifeops/imessage-outbound-probe.d.ts +7 -0
  690. package/dist/lifeops/imessage-outbound-probe.d.ts.map +1 -0
  691. package/dist/lifeops/imessage-outbound-probe.js +81 -0
  692. package/dist/lifeops/imessage-outbound-probe.js.map +1 -0
  693. package/dist/lifeops/index.d.ts +24 -0
  694. package/dist/lifeops/index.d.ts.map +1 -0
  695. package/dist/lifeops/index.js +24 -0
  696. package/dist/lifeops/index.js.map +1 -0
  697. package/dist/lifeops/intent-sync.d.ts +64 -0
  698. package/dist/lifeops/intent-sync.d.ts.map +1 -0
  699. package/dist/lifeops/intent-sync.js +321 -0
  700. package/dist/lifeops/intent-sync.js.map +1 -0
  701. package/dist/lifeops/messaging/index.d.ts +2 -0
  702. package/dist/lifeops/messaging/index.d.ts.map +1 -0
  703. package/dist/lifeops/messaging/index.js +5 -0
  704. package/dist/lifeops/messaging/index.js.map +1 -0
  705. package/dist/lifeops/messaging/owner-send-policy.d.ts +3 -0
  706. package/dist/lifeops/messaging/owner-send-policy.d.ts.map +1 -0
  707. package/dist/lifeops/messaging/owner-send-policy.js +83 -0
  708. package/dist/lifeops/messaging/owner-send-policy.js.map +1 -0
  709. package/dist/lifeops/notifications-push.d.ts +37 -0
  710. package/dist/lifeops/notifications-push.d.ts.map +1 -0
  711. package/dist/lifeops/notifications-push.js +95 -0
  712. package/dist/lifeops/notifications-push.js.map +1 -0
  713. package/dist/lifeops/optimized-prompt-instructions.d.ts +5 -0
  714. package/dist/lifeops/optimized-prompt-instructions.d.ts.map +1 -0
  715. package/dist/lifeops/optimized-prompt-instructions.js +48 -0
  716. package/dist/lifeops/optimized-prompt-instructions.js.map +1 -0
  717. package/dist/lifeops/owner/fact-store.d.ts +143 -0
  718. package/dist/lifeops/owner/fact-store.d.ts.map +1 -0
  719. package/dist/lifeops/owner/fact-store.js +446 -0
  720. package/dist/lifeops/owner/fact-store.js.map +1 -0
  721. package/dist/lifeops/owner/profile-extraction-evaluator.d.ts +3 -0
  722. package/dist/lifeops/owner/profile-extraction-evaluator.d.ts.map +1 -0
  723. package/dist/lifeops/owner/profile-extraction-evaluator.js +241 -0
  724. package/dist/lifeops/owner/profile-extraction-evaluator.js.map +1 -0
  725. package/dist/lifeops/owner-profile.d.ts +61 -0
  726. package/dist/lifeops/owner-profile.d.ts.map +1 -0
  727. package/dist/lifeops/owner-profile.js +407 -0
  728. package/dist/lifeops/owner-profile.js.map +1 -0
  729. package/dist/lifeops/pending-prompts/store.d.ts +23 -0
  730. package/dist/lifeops/pending-prompts/store.d.ts.map +1 -0
  731. package/dist/lifeops/pending-prompts/store.js +16 -0
  732. package/dist/lifeops/pending-prompts/store.js.map +1 -0
  733. package/dist/lifeops/policy-memory.d.ts +190 -0
  734. package/dist/lifeops/policy-memory.d.ts.map +1 -0
  735. package/dist/lifeops/policy-memory.js +1026 -0
  736. package/dist/lifeops/policy-memory.js.map +1 -0
  737. package/dist/lifeops/priority-scoring.d.ts +51 -0
  738. package/dist/lifeops/priority-scoring.d.ts.map +1 -0
  739. package/dist/lifeops/priority-scoring.js +305 -0
  740. package/dist/lifeops/priority-scoring.js.map +1 -0
  741. package/dist/lifeops/privacy-egress.d.ts +92 -0
  742. package/dist/lifeops/privacy-egress.d.ts.map +1 -0
  743. package/dist/lifeops/privacy-egress.js +230 -0
  744. package/dist/lifeops/privacy-egress.js.map +1 -0
  745. package/dist/lifeops/privacy.d.ts +49 -0
  746. package/dist/lifeops/privacy.d.ts.map +1 -0
  747. package/dist/lifeops/privacy.js +66 -0
  748. package/dist/lifeops/privacy.js.map +1 -0
  749. package/dist/lifeops/redact-sensitive-data.d.ts +32 -0
  750. package/dist/lifeops/redact-sensitive-data.d.ts.map +1 -0
  751. package/dist/lifeops/redact-sensitive-data.js +98 -0
  752. package/dist/lifeops/redact-sensitive-data.js.map +1 -0
  753. package/dist/lifeops/registries/app-blocker-contribution.d.ts +13 -0
  754. package/dist/lifeops/registries/app-blocker-contribution.d.ts.map +1 -0
  755. package/dist/lifeops/registries/app-blocker-contribution.js +73 -0
  756. package/dist/lifeops/registries/app-blocker-contribution.js.map +1 -0
  757. package/dist/lifeops/registries/blocker-registry.d.ts +76 -0
  758. package/dist/lifeops/registries/blocker-registry.d.ts.map +1 -0
  759. package/dist/lifeops/registries/blocker-registry.js +40 -0
  760. package/dist/lifeops/registries/blocker-registry.js.map +1 -0
  761. package/dist/lifeops/registries/event-kind-registry.d.ts +57 -0
  762. package/dist/lifeops/registries/event-kind-registry.d.ts.map +1 -0
  763. package/dist/lifeops/registries/event-kind-registry.js +82 -0
  764. package/dist/lifeops/registries/event-kind-registry.js.map +1 -0
  765. package/dist/lifeops/registries/family-registry.d.ts +72 -0
  766. package/dist/lifeops/registries/family-registry.d.ts.map +1 -0
  767. package/dist/lifeops/registries/family-registry.js +98 -0
  768. package/dist/lifeops/registries/family-registry.js.map +1 -0
  769. package/dist/lifeops/registries/feature-flag-default-pack.d.ts +32 -0
  770. package/dist/lifeops/registries/feature-flag-default-pack.d.ts.map +1 -0
  771. package/dist/lifeops/registries/feature-flag-default-pack.js +36 -0
  772. package/dist/lifeops/registries/feature-flag-default-pack.js.map +1 -0
  773. package/dist/lifeops/registries/feature-flag-registry.d.ts +76 -0
  774. package/dist/lifeops/registries/feature-flag-registry.d.ts.map +1 -0
  775. package/dist/lifeops/registries/feature-flag-registry.js +68 -0
  776. package/dist/lifeops/registries/feature-flag-registry.js.map +1 -0
  777. package/dist/lifeops/registries/index.d.ts +24 -0
  778. package/dist/lifeops/registries/index.d.ts.map +1 -0
  779. package/dist/lifeops/registries/index.js +115 -0
  780. package/dist/lifeops/registries/index.js.map +1 -0
  781. package/dist/lifeops/registries/website-blocker-contribution.d.ts +21 -0
  782. package/dist/lifeops/registries/website-blocker-contribution.d.ts.map +1 -0
  783. package/dist/lifeops/registries/website-blocker-contribution.js +76 -0
  784. package/dist/lifeops/registries/website-blocker-contribution.js.map +1 -0
  785. package/dist/lifeops/registries/workflow-step-default-pack.d.ts +30 -0
  786. package/dist/lifeops/registries/workflow-step-default-pack.d.ts.map +1 -0
  787. package/dist/lifeops/registries/workflow-step-default-pack.js +315 -0
  788. package/dist/lifeops/registries/workflow-step-default-pack.js.map +1 -0
  789. package/dist/lifeops/registries/workflow-step-registry.d.ts +101 -0
  790. package/dist/lifeops/registries/workflow-step-registry.d.ts.map +1 -0
  791. package/dist/lifeops/registries/workflow-step-registry.js +56 -0
  792. package/dist/lifeops/registries/workflow-step-registry.js.map +1 -0
  793. package/dist/lifeops/relationships/extraction.d.ts +77 -0
  794. package/dist/lifeops/relationships/extraction.d.ts.map +1 -0
  795. package/dist/lifeops/relationships/extraction.js +146 -0
  796. package/dist/lifeops/relationships/extraction.js.map +1 -0
  797. package/dist/lifeops/relationships/index.d.ts +4 -0
  798. package/dist/lifeops/relationships/index.d.ts.map +1 -0
  799. package/dist/lifeops/relationships/index.js +19 -0
  800. package/dist/lifeops/relationships/index.js.map +1 -0
  801. package/dist/lifeops/relationships/mapping.d.ts +34 -0
  802. package/dist/lifeops/relationships/mapping.d.ts.map +1 -0
  803. package/dist/lifeops/relationships/mapping.js +87 -0
  804. package/dist/lifeops/relationships/mapping.js.map +1 -0
  805. package/dist/lifeops/relationships/store.d.ts +12 -0
  806. package/dist/lifeops/relationships/store.d.ts.map +1 -0
  807. package/dist/lifeops/relationships/store.js +5 -0
  808. package/dist/lifeops/relationships/store.js.map +1 -0
  809. package/dist/lifeops/relationships/types.d.ts +9 -0
  810. package/dist/lifeops/relationships/types.d.ts.map +1 -0
  811. package/dist/lifeops/relationships/types.js +11 -0
  812. package/dist/lifeops/relationships/types.js.map +1 -0
  813. package/dist/lifeops/relative-schedule-resolver.d.ts +13 -0
  814. package/dist/lifeops/relative-schedule-resolver.d.ts.map +1 -0
  815. package/dist/lifeops/relative-schedule-resolver.js +107 -0
  816. package/dist/lifeops/relative-schedule-resolver.js.map +1 -0
  817. package/dist/lifeops/relative-time.d.ts +15 -0
  818. package/dist/lifeops/relative-time.d.ts.map +1 -0
  819. package/dist/lifeops/relative-time.js +191 -0
  820. package/dist/lifeops/relative-time.js.map +1 -0
  821. package/dist/lifeops/repository.d.ts +638 -0
  822. package/dist/lifeops/repository.d.ts.map +1 -0
  823. package/dist/lifeops/repository.js +6289 -0
  824. package/dist/lifeops/repository.js.map +1 -0
  825. package/dist/lifeops/runtime-cache.d.ts +4 -0
  826. package/dist/lifeops/runtime-cache.d.ts.map +1 -0
  827. package/dist/lifeops/runtime-cache.js +7 -0
  828. package/dist/lifeops/runtime-cache.js.map +1 -0
  829. package/dist/lifeops/runtime-service-delegates.d.ts +236 -0
  830. package/dist/lifeops/runtime-service-delegates.d.ts.map +1 -0
  831. package/dist/lifeops/runtime-service-delegates.js +839 -0
  832. package/dist/lifeops/runtime-service-delegates.js.map +1 -0
  833. package/dist/lifeops/runtime.d.ts +13 -0
  834. package/dist/lifeops/runtime.d.ts.map +1 -0
  835. package/dist/lifeops/runtime.js +104 -0
  836. package/dist/lifeops/runtime.js.map +1 -0
  837. package/dist/lifeops/schedule-insight.d.ts +133 -0
  838. package/dist/lifeops/schedule-insight.d.ts.map +1 -0
  839. package/dist/lifeops/schedule-insight.js +726 -0
  840. package/dist/lifeops/schedule-insight.js.map +1 -0
  841. package/dist/lifeops/schedule-state.d.ts +39 -0
  842. package/dist/lifeops/schedule-state.d.ts.map +1 -0
  843. package/dist/lifeops/schedule-state.js +671 -0
  844. package/dist/lifeops/schedule-state.js.map +1 -0
  845. package/dist/lifeops/schedule-sync-config.d.ts +3 -0
  846. package/dist/lifeops/schedule-sync-config.d.ts.map +1 -0
  847. package/dist/lifeops/schedule-sync-config.js +23 -0
  848. package/dist/lifeops/schedule-sync-config.js.map +1 -0
  849. package/dist/lifeops/schedule-sync-contracts.d.ts +2 -0
  850. package/dist/lifeops/schedule-sync-contracts.d.ts.map +1 -0
  851. package/dist/lifeops/schedule-sync-contracts.js +2 -0
  852. package/dist/lifeops/schedule-sync-contracts.js.map +1 -0
  853. package/dist/lifeops/scheduled-task/index.d.ts +13 -0
  854. package/dist/lifeops/scheduled-task/index.d.ts.map +1 -0
  855. package/dist/lifeops/scheduled-task/index.js +14 -0
  856. package/dist/lifeops/scheduled-task/index.js.map +1 -0
  857. package/dist/lifeops/scheduled-task/runtime-wiring.d.ts +33 -0
  858. package/dist/lifeops/scheduled-task/runtime-wiring.d.ts.map +1 -0
  859. package/dist/lifeops/scheduled-task/runtime-wiring.js +334 -0
  860. package/dist/lifeops/scheduled-task/runtime-wiring.js.map +1 -0
  861. package/dist/lifeops/scheduled-task/scheduler.d.ts +28 -0
  862. package/dist/lifeops/scheduled-task/scheduler.d.ts.map +1 -0
  863. package/dist/lifeops/scheduled-task/scheduler.js +202 -0
  864. package/dist/lifeops/scheduled-task/scheduler.js.map +1 -0
  865. package/dist/lifeops/scheduled-task/service.d.ts +61 -0
  866. package/dist/lifeops/scheduled-task/service.d.ts.map +1 -0
  867. package/dist/lifeops/scheduled-task/service.js +64 -0
  868. package/dist/lifeops/scheduled-task/service.js.map +1 -0
  869. package/dist/lifeops/scheduler-task.d.ts +19 -0
  870. package/dist/lifeops/scheduler-task.d.ts.map +1 -0
  871. package/dist/lifeops/scheduler-task.js +201 -0
  872. package/dist/lifeops/scheduler-task.js.map +1 -0
  873. package/dist/lifeops/schema.d.ts +28068 -0
  874. package/dist/lifeops/schema.d.ts.map +1 -0
  875. package/dist/lifeops/schema.js +1689 -0
  876. package/dist/lifeops/schema.js.map +1 -0
  877. package/dist/lifeops/screen-context.d.ts +66 -0
  878. package/dist/lifeops/screen-context.d.ts.map +1 -0
  879. package/dist/lifeops/screen-context.js +347 -0
  880. package/dist/lifeops/screen-context.js.map +1 -0
  881. package/dist/lifeops/seed-routine-migration/migrator.d.ts +113 -0
  882. package/dist/lifeops/seed-routine-migration/migrator.d.ts.map +1 -0
  883. package/dist/lifeops/seed-routine-migration/migrator.js +142 -0
  884. package/dist/lifeops/seed-routine-migration/migrator.js.map +1 -0
  885. package/dist/lifeops/seed-routines.d.ts +24 -0
  886. package/dist/lifeops/seed-routines.d.ts.map +1 -0
  887. package/dist/lifeops/seed-routines.js +140 -0
  888. package/dist/lifeops/seed-routines.js.map +1 -0
  889. package/dist/lifeops/send-policy/contract.d.ts +81 -0
  890. package/dist/lifeops/send-policy/contract.d.ts.map +1 -0
  891. package/dist/lifeops/send-policy/contract.js +1 -0
  892. package/dist/lifeops/send-policy/contract.js.map +1 -0
  893. package/dist/lifeops/send-policy/index.d.ts +3 -0
  894. package/dist/lifeops/send-policy/index.d.ts.map +1 -0
  895. package/dist/lifeops/send-policy/index.js +13 -0
  896. package/dist/lifeops/send-policy/index.js.map +1 -0
  897. package/dist/lifeops/send-policy/registry.d.ts +7 -0
  898. package/dist/lifeops/send-policy/registry.d.ts.map +1 -0
  899. package/dist/lifeops/send-policy/registry.js +62 -0
  900. package/dist/lifeops/send-policy/registry.js.map +1 -0
  901. package/dist/lifeops/sensitive-request-delivery.d.ts +46 -0
  902. package/dist/lifeops/sensitive-request-delivery.d.ts.map +1 -0
  903. package/dist/lifeops/sensitive-request-delivery.js +103 -0
  904. package/dist/lifeops/sensitive-request-delivery.js.map +1 -0
  905. package/dist/lifeops/service-constants.d.ts +10 -0
  906. package/dist/lifeops/service-constants.d.ts.map +1 -0
  907. package/dist/lifeops/service-constants.js +129 -0
  908. package/dist/lifeops/service-constants.js.map +1 -0
  909. package/dist/lifeops/service-helpers-browser.d.ts +41 -0
  910. package/dist/lifeops/service-helpers-browser.d.ts.map +1 -0
  911. package/dist/lifeops/service-helpers-browser.js +290 -0
  912. package/dist/lifeops/service-helpers-browser.js.map +1 -0
  913. package/dist/lifeops/service-helpers-misc.d.ts +68 -0
  914. package/dist/lifeops/service-helpers-misc.d.ts.map +1 -0
  915. package/dist/lifeops/service-helpers-misc.js +531 -0
  916. package/dist/lifeops/service-helpers-misc.js.map +1 -0
  917. package/dist/lifeops/service-helpers-occurrence.d.ts +23 -0
  918. package/dist/lifeops/service-helpers-occurrence.d.ts.map +1 -0
  919. package/dist/lifeops/service-helpers-occurrence.js +257 -0
  920. package/dist/lifeops/service-helpers-occurrence.js.map +1 -0
  921. package/dist/lifeops/service-helpers-reminder.d.ts +260 -0
  922. package/dist/lifeops/service-helpers-reminder.d.ts.map +1 -0
  923. package/dist/lifeops/service-helpers-reminder.js +1186 -0
  924. package/dist/lifeops/service-helpers-reminder.js.map +1 -0
  925. package/dist/lifeops/service-mixin-browser.d.ts +31 -0
  926. package/dist/lifeops/service-mixin-browser.d.ts.map +1 -0
  927. package/dist/lifeops/service-mixin-browser.js +975 -0
  928. package/dist/lifeops/service-mixin-browser.js.map +1 -0
  929. package/dist/lifeops/service-mixin-calendar.d.ts +53 -0
  930. package/dist/lifeops/service-mixin-calendar.d.ts.map +1 -0
  931. package/dist/lifeops/service-mixin-calendar.js +68 -0
  932. package/dist/lifeops/service-mixin-calendar.js.map +1 -0
  933. package/dist/lifeops/service-mixin-core.d.ts +51 -0
  934. package/dist/lifeops/service-mixin-core.d.ts.map +1 -0
  935. package/dist/lifeops/service-mixin-core.js +500 -0
  936. package/dist/lifeops/service-mixin-core.js.map +1 -0
  937. package/dist/lifeops/service-mixin-definitions.d.ts +14 -0
  938. package/dist/lifeops/service-mixin-definitions.d.ts.map +1 -0
  939. package/dist/lifeops/service-mixin-definitions.js +470 -0
  940. package/dist/lifeops/service-mixin-definitions.js.map +1 -0
  941. package/dist/lifeops/service-mixin-discord.d.ts +49 -0
  942. package/dist/lifeops/service-mixin-discord.d.ts.map +1 -0
  943. package/dist/lifeops/service-mixin-discord.js +1253 -0
  944. package/dist/lifeops/service-mixin-discord.js.map +1 -0
  945. package/dist/lifeops/service-mixin-drive.d.ts +96 -0
  946. package/dist/lifeops/service-mixin-drive.d.ts.map +1 -0
  947. package/dist/lifeops/service-mixin-drive.js +213 -0
  948. package/dist/lifeops/service-mixin-drive.js.map +1 -0
  949. package/dist/lifeops/service-mixin-email-unsubscribe.d.ts +23 -0
  950. package/dist/lifeops/service-mixin-email-unsubscribe.d.ts.map +1 -0
  951. package/dist/lifeops/service-mixin-email-unsubscribe.js +27 -0
  952. package/dist/lifeops/service-mixin-email-unsubscribe.js.map +1 -0
  953. package/dist/lifeops/service-mixin-gmail.d.ts +43 -0
  954. package/dist/lifeops/service-mixin-gmail.d.ts.map +1 -0
  955. package/dist/lifeops/service-mixin-gmail.js +727 -0
  956. package/dist/lifeops/service-mixin-gmail.js.map +1 -0
  957. package/dist/lifeops/service-mixin-goals.d.ts +22 -0
  958. package/dist/lifeops/service-mixin-goals.d.ts.map +1 -0
  959. package/dist/lifeops/service-mixin-goals.js +884 -0
  960. package/dist/lifeops/service-mixin-goals.js.map +1 -0
  961. package/dist/lifeops/service-mixin-google.d.ts +13 -0
  962. package/dist/lifeops/service-mixin-google.d.ts.map +1 -0
  963. package/dist/lifeops/service-mixin-google.js +398 -0
  964. package/dist/lifeops/service-mixin-google.js.map +1 -0
  965. package/dist/lifeops/service-mixin-health.d.ts +27 -0
  966. package/dist/lifeops/service-mixin-health.d.ts.map +1 -0
  967. package/dist/lifeops/service-mixin-health.js +670 -0
  968. package/dist/lifeops/service-mixin-health.js.map +1 -0
  969. package/dist/lifeops/service-mixin-imessage.d.ts +106 -0
  970. package/dist/lifeops/service-mixin-imessage.d.ts.map +1 -0
  971. package/dist/lifeops/service-mixin-imessage.js +303 -0
  972. package/dist/lifeops/service-mixin-imessage.js.map +1 -0
  973. package/dist/lifeops/service-mixin-inbox.d.ts +55 -0
  974. package/dist/lifeops/service-mixin-inbox.d.ts.map +1 -0
  975. package/dist/lifeops/service-mixin-inbox.js +597 -0
  976. package/dist/lifeops/service-mixin-inbox.js.map +1 -0
  977. package/dist/lifeops/service-mixin-relationships.d.ts +65 -0
  978. package/dist/lifeops/service-mixin-relationships.d.ts.map +1 -0
  979. package/dist/lifeops/service-mixin-relationships.js +150 -0
  980. package/dist/lifeops/service-mixin-relationships.js.map +1 -0
  981. package/dist/lifeops/service-mixin-reminders.d.ts +62 -0
  982. package/dist/lifeops/service-mixin-reminders.d.ts.map +1 -0
  983. package/dist/lifeops/service-mixin-reminders.js +4003 -0
  984. package/dist/lifeops/service-mixin-reminders.js.map +1 -0
  985. package/dist/lifeops/service-mixin-scheduling.d.ts +53 -0
  986. package/dist/lifeops/service-mixin-scheduling.d.ts.map +1 -0
  987. package/dist/lifeops/service-mixin-scheduling.js +405 -0
  988. package/dist/lifeops/service-mixin-scheduling.js.map +1 -0
  989. package/dist/lifeops/service-mixin-screentime.d.ts +71 -0
  990. package/dist/lifeops/service-mixin-screentime.d.ts.map +1 -0
  991. package/dist/lifeops/service-mixin-screentime.js +530 -0
  992. package/dist/lifeops/service-mixin-screentime.js.map +1 -0
  993. package/dist/lifeops/service-mixin-signal.d.ts +74 -0
  994. package/dist/lifeops/service-mixin-signal.d.ts.map +1 -0
  995. package/dist/lifeops/service-mixin-signal.js +214 -0
  996. package/dist/lifeops/service-mixin-signal.js.map +1 -0
  997. package/dist/lifeops/service-mixin-sleep.d.ts +68 -0
  998. package/dist/lifeops/service-mixin-sleep.d.ts.map +1 -0
  999. package/dist/lifeops/service-mixin-sleep.js +43 -0
  1000. package/dist/lifeops/service-mixin-sleep.js.map +1 -0
  1001. package/dist/lifeops/service-mixin-status.d.ts +31 -0
  1002. package/dist/lifeops/service-mixin-status.d.ts.map +1 -0
  1003. package/dist/lifeops/service-mixin-status.js +373 -0
  1004. package/dist/lifeops/service-mixin-status.js.map +1 -0
  1005. package/dist/lifeops/service-mixin-subscriptions.d.ts +101 -0
  1006. package/dist/lifeops/service-mixin-subscriptions.d.ts.map +1 -0
  1007. package/dist/lifeops/service-mixin-subscriptions.js +50 -0
  1008. package/dist/lifeops/service-mixin-subscriptions.js.map +1 -0
  1009. package/dist/lifeops/service-mixin-telegram.d.ts +104 -0
  1010. package/dist/lifeops/service-mixin-telegram.d.ts.map +1 -0
  1011. package/dist/lifeops/service-mixin-telegram.js +280 -0
  1012. package/dist/lifeops/service-mixin-telegram.js.map +1 -0
  1013. package/dist/lifeops/service-mixin-travel.d.ts +66 -0
  1014. package/dist/lifeops/service-mixin-travel.d.ts.map +1 -0
  1015. package/dist/lifeops/service-mixin-travel.js +275 -0
  1016. package/dist/lifeops/service-mixin-travel.js.map +1 -0
  1017. package/dist/lifeops/service-mixin-whatsapp.d.ts +96 -0
  1018. package/dist/lifeops/service-mixin-whatsapp.d.ts.map +1 -0
  1019. package/dist/lifeops/service-mixin-whatsapp.js +186 -0
  1020. package/dist/lifeops/service-mixin-whatsapp.js.map +1 -0
  1021. package/dist/lifeops/service-mixin-workflows.d.ts +15 -0
  1022. package/dist/lifeops/service-mixin-workflows.d.ts.map +1 -0
  1023. package/dist/lifeops/service-mixin-workflows.js +710 -0
  1024. package/dist/lifeops/service-mixin-workflows.js.map +1 -0
  1025. package/dist/lifeops/service-mixin-x-read.d.ts +31 -0
  1026. package/dist/lifeops/service-mixin-x-read.d.ts.map +1 -0
  1027. package/dist/lifeops/service-mixin-x-read.js +267 -0
  1028. package/dist/lifeops/service-mixin-x-read.js.map +1 -0
  1029. package/dist/lifeops/service-mixin-x.d.ts +66 -0
  1030. package/dist/lifeops/service-mixin-x.d.ts.map +1 -0
  1031. package/dist/lifeops/service-mixin-x.js +501 -0
  1032. package/dist/lifeops/service-mixin-x.js.map +1 -0
  1033. package/dist/lifeops/service-normalize-connector.d.ts +19 -0
  1034. package/dist/lifeops/service-normalize-connector.d.ts.map +1 -0
  1035. package/dist/lifeops/service-normalize-connector.js +816 -0
  1036. package/dist/lifeops/service-normalize-connector.js.map +1 -0
  1037. package/dist/lifeops/service-normalize-gmail.d.ts +11 -0
  1038. package/dist/lifeops/service-normalize-gmail.d.ts.map +1 -0
  1039. package/dist/lifeops/service-normalize-gmail.js +85 -0
  1040. package/dist/lifeops/service-normalize-gmail.js.map +1 -0
  1041. package/dist/lifeops/service-normalize-task.d.ts +9 -0
  1042. package/dist/lifeops/service-normalize-task.d.ts.map +1 -0
  1043. package/dist/lifeops/service-normalize-task.js +567 -0
  1044. package/dist/lifeops/service-normalize-task.js.map +1 -0
  1045. package/dist/lifeops/service-normalize.d.ts +9 -0
  1046. package/dist/lifeops/service-normalize.d.ts.map +1 -0
  1047. package/dist/lifeops/service-normalize.js +53 -0
  1048. package/dist/lifeops/service-normalize.js.map +1 -0
  1049. package/dist/lifeops/service-types.d.ts +75 -0
  1050. package/dist/lifeops/service-types.d.ts.map +1 -0
  1051. package/dist/lifeops/service-types.js +5 -0
  1052. package/dist/lifeops/service-types.js.map +1 -0
  1053. package/dist/lifeops/service.d.ts +482 -0
  1054. package/dist/lifeops/service.d.ts.map +1 -0
  1055. package/dist/lifeops/service.js +62 -0
  1056. package/dist/lifeops/service.js.map +1 -0
  1057. package/dist/lifeops/signal-runtime-config.d.ts +13 -0
  1058. package/dist/lifeops/signal-runtime-config.d.ts.map +1 -0
  1059. package/dist/lifeops/signal-runtime-config.js +44 -0
  1060. package/dist/lifeops/signal-runtime-config.js.map +1 -0
  1061. package/dist/lifeops/signals/bus.d.ts +78 -0
  1062. package/dist/lifeops/signals/bus.d.ts.map +1 -0
  1063. package/dist/lifeops/signals/bus.js +117 -0
  1064. package/dist/lifeops/signals/bus.js.map +1 -0
  1065. package/dist/lifeops/sql.d.ts +65 -0
  1066. package/dist/lifeops/sql.d.ts.map +1 -0
  1067. package/dist/lifeops/sql.js +182 -0
  1068. package/dist/lifeops/sql.js.map +1 -0
  1069. package/dist/lifeops/stretch-decider.d.ts +73 -0
  1070. package/dist/lifeops/stretch-decider.d.ts.map +1 -0
  1071. package/dist/lifeops/stretch-decider.js +49 -0
  1072. package/dist/lifeops/stretch-decider.js.map +1 -0
  1073. package/dist/lifeops/telemetry-mapping.d.ts +14 -0
  1074. package/dist/lifeops/telemetry-mapping.d.ts.map +1 -0
  1075. package/dist/lifeops/telemetry-mapping.js +115 -0
  1076. package/dist/lifeops/telemetry-mapping.js.map +1 -0
  1077. package/dist/lifeops/telemetry-retention.d.ts +21 -0
  1078. package/dist/lifeops/telemetry-retention.d.ts.map +1 -0
  1079. package/dist/lifeops/telemetry-retention.js +13 -0
  1080. package/dist/lifeops/telemetry-retention.js.map +1 -0
  1081. package/dist/lifeops/time/timezone.d.ts +4 -0
  1082. package/dist/lifeops/time/timezone.d.ts.map +1 -0
  1083. package/dist/lifeops/time/timezone.js +154 -0
  1084. package/dist/lifeops/time/timezone.js.map +1 -0
  1085. package/dist/lifeops/time-util.d.ts +10 -0
  1086. package/dist/lifeops/time-util.d.ts.map +1 -0
  1087. package/dist/lifeops/time-util.js +14 -0
  1088. package/dist/lifeops/time-util.js.map +1 -0
  1089. package/dist/lifeops/time.d.ts +17 -0
  1090. package/dist/lifeops/time.d.ts.map +1 -0
  1091. package/dist/lifeops/time.js +152 -0
  1092. package/dist/lifeops/time.js.map +1 -0
  1093. package/dist/lifeops/travel-booking.types.d.ts +46 -0
  1094. package/dist/lifeops/travel-booking.types.d.ts.map +1 -0
  1095. package/dist/lifeops/travel-booking.types.js +1 -0
  1096. package/dist/lifeops/travel-booking.types.js.map +1 -0
  1097. package/dist/lifeops/triggers/schedule-once.d.ts +19 -0
  1098. package/dist/lifeops/triggers/schedule-once.d.ts.map +1 -0
  1099. package/dist/lifeops/triggers/schedule-once.js +99 -0
  1100. package/dist/lifeops/triggers/schedule-once.js.map +1 -0
  1101. package/dist/lifeops/validate/coding-task-request.d.ts +18 -0
  1102. package/dist/lifeops/validate/coding-task-request.d.ts.map +1 -0
  1103. package/dist/lifeops/validate/coding-task-request.js +16 -0
  1104. package/dist/lifeops/validate/coding-task-request.js.map +1 -0
  1105. package/dist/lifeops/voice/grounded-reply.d.ts +41 -0
  1106. package/dist/lifeops/voice/grounded-reply.d.ts.map +1 -0
  1107. package/dist/lifeops/voice/grounded-reply.js +24 -0
  1108. package/dist/lifeops/voice/grounded-reply.js.map +1 -0
  1109. package/dist/lifeops/voice-affect.d.ts +79 -0
  1110. package/dist/lifeops/voice-affect.d.ts.map +1 -0
  1111. package/dist/lifeops/voice-affect.js +253 -0
  1112. package/dist/lifeops/voice-affect.js.map +1 -0
  1113. package/dist/lifeops/wave1-types.d.ts +125 -0
  1114. package/dist/lifeops/wave1-types.d.ts.map +1 -0
  1115. package/dist/lifeops/wave1-types.js +1 -0
  1116. package/dist/lifeops/wave1-types.js.map +1 -0
  1117. package/dist/lifeops/work-threads/field-evaluator-thread-ops.d.ts +33 -0
  1118. package/dist/lifeops/work-threads/field-evaluator-thread-ops.d.ts.map +1 -0
  1119. package/dist/lifeops/work-threads/field-evaluator-thread-ops.js +226 -0
  1120. package/dist/lifeops/work-threads/field-evaluator-thread-ops.js.map +1 -0
  1121. package/dist/lifeops/work-threads/index.d.ts +3 -0
  1122. package/dist/lifeops/work-threads/index.d.ts.map +1 -0
  1123. package/dist/lifeops/work-threads/index.js +7 -0
  1124. package/dist/lifeops/work-threads/index.js.map +1 -0
  1125. package/dist/lifeops/work-threads/store.d.ts +91 -0
  1126. package/dist/lifeops/work-threads/store.d.ts.map +1 -0
  1127. package/dist/lifeops/work-threads/store.js +245 -0
  1128. package/dist/lifeops/work-threads/store.js.map +1 -0
  1129. package/dist/lifeops/work-threads/types.d.ts +58 -0
  1130. package/dist/lifeops/work-threads/types.d.ts.map +1 -0
  1131. package/dist/lifeops/work-threads/types.js +1 -0
  1132. package/dist/lifeops/work-threads/types.js.map +1 -0
  1133. package/dist/platform/host.d.ts +16 -0
  1134. package/dist/platform/host.d.ts.map +1 -0
  1135. package/dist/platform/host.js +22 -0
  1136. package/dist/platform/host.js.map +1 -0
  1137. package/dist/platform/index.d.ts +3 -0
  1138. package/dist/platform/index.d.ts.map +1 -0
  1139. package/dist/platform/index.js +3 -0
  1140. package/dist/platform/index.js.map +1 -0
  1141. package/dist/platform/lifeops-github.d.ts +15 -0
  1142. package/dist/platform/lifeops-github.d.ts.map +1 -0
  1143. package/dist/platform/lifeops-github.js +146 -0
  1144. package/dist/platform/lifeops-github.js.map +1 -0
  1145. package/dist/plugin.d.ts +106 -0
  1146. package/dist/plugin.d.ts.map +1 -0
  1147. package/dist/plugin.js +989 -0
  1148. package/dist/plugin.js.map +1 -0
  1149. package/dist/provider.d.ts +4 -0
  1150. package/dist/provider.d.ts.map +1 -0
  1151. package/dist/provider.js +108 -0
  1152. package/dist/provider.js.map +1 -0
  1153. package/dist/providers/activity-profile.d.ts +3 -0
  1154. package/dist/providers/activity-profile.d.ts.map +1 -0
  1155. package/dist/providers/activity-profile.js +140 -0
  1156. package/dist/providers/activity-profile.js.map +1 -0
  1157. package/dist/providers/cross-channel-context.d.ts +29 -0
  1158. package/dist/providers/cross-channel-context.d.ts.map +1 -0
  1159. package/dist/providers/cross-channel-context.js +206 -0
  1160. package/dist/providers/cross-channel-context.js.map +1 -0
  1161. package/dist/providers/first-run.d.ts +22 -0
  1162. package/dist/providers/first-run.d.ts.map +1 -0
  1163. package/dist/providers/first-run.js +93 -0
  1164. package/dist/providers/first-run.js.map +1 -0
  1165. package/dist/providers/health.d.ts +2 -0
  1166. package/dist/providers/health.d.ts.map +1 -0
  1167. package/dist/providers/health.js +14 -0
  1168. package/dist/providers/health.js.map +1 -0
  1169. package/dist/providers/inbox-triage.d.ts +3 -0
  1170. package/dist/providers/inbox-triage.d.ts.map +1 -0
  1171. package/dist/providers/inbox-triage.js +134 -0
  1172. package/dist/providers/inbox-triage.js.map +1 -0
  1173. package/dist/providers/lifeops.d.ts +3 -0
  1174. package/dist/providers/lifeops.d.ts.map +1 -0
  1175. package/dist/providers/lifeops.js +548 -0
  1176. package/dist/providers/lifeops.js.map +1 -0
  1177. package/dist/providers/pending-prompts.d.ts +38 -0
  1178. package/dist/providers/pending-prompts.d.ts.map +1 -0
  1179. package/dist/providers/pending-prompts.js +81 -0
  1180. package/dist/providers/pending-prompts.js.map +1 -0
  1181. package/dist/providers/recent-task-states.d.ts +52 -0
  1182. package/dist/providers/recent-task-states.d.ts.map +1 -0
  1183. package/dist/providers/recent-task-states.js +166 -0
  1184. package/dist/providers/recent-task-states.js.map +1 -0
  1185. package/dist/providers/room-policy.d.ts +16 -0
  1186. package/dist/providers/room-policy.d.ts.map +1 -0
  1187. package/dist/providers/room-policy.js +71 -0
  1188. package/dist/providers/room-policy.js.map +1 -0
  1189. package/dist/providers/work-threads.d.ts +3 -0
  1190. package/dist/providers/work-threads.d.ts.map +1 -0
  1191. package/dist/providers/work-threads.js +97 -0
  1192. package/dist/providers/work-threads.js.map +1 -0
  1193. package/dist/public.d.ts +3 -0
  1194. package/dist/public.d.ts.map +1 -0
  1195. package/dist/public.js +17 -0
  1196. package/dist/public.js.map +1 -0
  1197. package/dist/routes/cloud-features-routes.d.ts +9 -0
  1198. package/dist/routes/cloud-features-routes.d.ts.map +1 -0
  1199. package/dist/routes/cloud-features-routes.js +164 -0
  1200. package/dist/routes/cloud-features-routes.js.map +1 -0
  1201. package/dist/routes/entities.d.ts +14 -0
  1202. package/dist/routes/entities.d.ts.map +1 -0
  1203. package/dist/routes/entities.js +203 -0
  1204. package/dist/routes/entities.js.map +1 -0
  1205. package/dist/routes/lifeops-routes.d.ts +20 -0
  1206. package/dist/routes/lifeops-routes.d.ts.map +1 -0
  1207. package/dist/routes/lifeops-routes.js +2337 -0
  1208. package/dist/routes/lifeops-routes.js.map +1 -0
  1209. package/dist/routes/plugin.d.ts +9 -0
  1210. package/dist/routes/plugin.d.ts.map +1 -0
  1211. package/dist/routes/plugin.js +568 -0
  1212. package/dist/routes/plugin.js.map +1 -0
  1213. package/dist/routes/relationships.d.ts +13 -0
  1214. package/dist/routes/relationships.d.ts.map +1 -0
  1215. package/dist/routes/relationships.js +195 -0
  1216. package/dist/routes/relationships.js.map +1 -0
  1217. package/dist/routes/scheduled-tasks.d.ts +102 -0
  1218. package/dist/routes/scheduled-tasks.d.ts.map +1 -0
  1219. package/dist/routes/scheduled-tasks.js +322 -0
  1220. package/dist/routes/scheduled-tasks.js.map +1 -0
  1221. package/dist/routes/sleep-routes.d.ts +3 -0
  1222. package/dist/routes/sleep-routes.d.ts.map +1 -0
  1223. package/dist/routes/sleep-routes.js +33 -0
  1224. package/dist/routes/sleep-routes.js.map +1 -0
  1225. package/dist/routes/travel-provider-relay-routes.d.ts +2 -0
  1226. package/dist/routes/travel-provider-relay-routes.d.ts.map +1 -0
  1227. package/dist/routes/travel-provider-relay-routes.js +7 -0
  1228. package/dist/routes/travel-provider-relay-routes.js.map +1 -0
  1229. package/dist/routes/website-blocker-routes.d.ts +6 -0
  1230. package/dist/routes/website-blocker-routes.d.ts.map +1 -0
  1231. package/dist/routes/website-blocker-routes.js +218 -0
  1232. package/dist/routes/website-blocker-routes.js.map +1 -0
  1233. package/dist/security/action-confirmation.d.ts +12 -0
  1234. package/dist/security/action-confirmation.d.ts.map +1 -0
  1235. package/dist/security/action-confirmation.js +36 -0
  1236. package/dist/security/action-confirmation.js.map +1 -0
  1237. package/dist/service.d.ts +34 -0
  1238. package/dist/service.d.ts.map +1 -0
  1239. package/dist/service.js +111 -0
  1240. package/dist/service.js.map +1 -0
  1241. package/dist/travel-time/calendar-create.d.ts +17 -0
  1242. package/dist/travel-time/calendar-create.d.ts.map +1 -0
  1243. package/dist/travel-time/calendar-create.js +28 -0
  1244. package/dist/travel-time/calendar-create.js.map +1 -0
  1245. package/dist/travel-time/service.d.ts +114 -0
  1246. package/dist/travel-time/service.d.ts.map +1 -0
  1247. package/dist/travel-time/service.js +209 -0
  1248. package/dist/travel-time/service.js.map +1 -0
  1249. package/dist/types/app-blocker-settings-card.d.ts +2 -0
  1250. package/dist/types/app-blocker-settings-card.d.ts.map +1 -0
  1251. package/dist/types/app-blocker-settings-card.js +1 -0
  1252. package/dist/types/app-blocker-settings-card.js.map +1 -0
  1253. package/dist/types/briefing.d.ts +59 -0
  1254. package/dist/types/briefing.d.ts.map +1 -0
  1255. package/dist/types/briefing.js +1 -0
  1256. package/dist/types/briefing.js.map +1 -0
  1257. package/dist/types/document-request.d.ts +41 -0
  1258. package/dist/types/document-request.d.ts.map +1 -0
  1259. package/dist/types/document-request.js +1 -0
  1260. package/dist/types/document-request.js.map +1 -0
  1261. package/dist/types/index.d.ts +5 -0
  1262. package/dist/types/index.d.ts.map +1 -0
  1263. package/dist/types/index.js +1 -0
  1264. package/dist/types/index.js.map +1 -0
  1265. package/dist/types/website-blocker-settings-card.d.ts +2 -0
  1266. package/dist/types/website-blocker-settings-card.d.ts.map +1 -0
  1267. package/dist/types/website-blocker-settings-card.js +1 -0
  1268. package/dist/types/website-blocker-settings-card.js.map +1 -0
  1269. package/dist/ui.d.ts +13 -0
  1270. package/dist/ui.d.ts.map +1 -0
  1271. package/dist/ui.js +25 -0
  1272. package/dist/ui.js.map +1 -0
  1273. package/dist/utils/format-duration.d.ts +2 -0
  1274. package/dist/utils/format-duration.d.ts.map +1 -0
  1275. package/dist/utils/format-duration.js +13 -0
  1276. package/dist/utils/format-duration.js.map +1 -0
  1277. package/dist/utils/index.d.ts +3 -0
  1278. package/dist/utils/index.d.ts.map +1 -0
  1279. package/dist/utils/index.js +3 -0
  1280. package/dist/utils/index.js.map +1 -0
  1281. package/dist/utils/lifeops-url.d.ts +3 -0
  1282. package/dist/utils/lifeops-url.d.ts.map +1 -0
  1283. package/dist/utils/lifeops-url.js +28 -0
  1284. package/dist/utils/lifeops-url.js.map +1 -0
  1285. package/dist/website-blocker/chat-integration/block-activator.d.ts +32 -0
  1286. package/dist/website-blocker/chat-integration/block-activator.d.ts.map +1 -0
  1287. package/dist/website-blocker/chat-integration/block-activator.js +30 -0
  1288. package/dist/website-blocker/chat-integration/block-activator.js.map +1 -0
  1289. package/dist/website-blocker/chat-integration/block-rule-reconciler.d.ts +7 -0
  1290. package/dist/website-blocker/chat-integration/block-rule-reconciler.d.ts.map +1 -0
  1291. package/dist/website-blocker/chat-integration/block-rule-reconciler.js +115 -0
  1292. package/dist/website-blocker/chat-integration/block-rule-reconciler.js.map +1 -0
  1293. package/dist/website-blocker/chat-integration/block-rule-schema.d.ts +39 -0
  1294. package/dist/website-blocker/chat-integration/block-rule-schema.d.ts.map +1 -0
  1295. package/dist/website-blocker/chat-integration/block-rule-schema.js +133 -0
  1296. package/dist/website-blocker/chat-integration/block-rule-schema.js.map +1 -0
  1297. package/dist/website-blocker/chat-integration/block-rule-service.d.ts +21 -0
  1298. package/dist/website-blocker/chat-integration/block-rule-service.d.ts.map +1 -0
  1299. package/dist/website-blocker/chat-integration/block-rule-service.js +230 -0
  1300. package/dist/website-blocker/chat-integration/block-rule-service.js.map +1 -0
  1301. package/dist/website-blocker/chat-integration/harsh-mode-check.d.ts +13 -0
  1302. package/dist/website-blocker/chat-integration/harsh-mode-check.d.ts.map +1 -0
  1303. package/dist/website-blocker/chat-integration/harsh-mode-check.js +22 -0
  1304. package/dist/website-blocker/chat-integration/harsh-mode-check.js.map +1 -0
  1305. package/dist/website-blocker/chat-integration/index.d.ts +5 -0
  1306. package/dist/website-blocker/chat-integration/index.d.ts.map +1 -0
  1307. package/dist/website-blocker/chat-integration/index.js +26 -0
  1308. package/dist/website-blocker/chat-integration/index.js.map +1 -0
  1309. package/dist/website-blocker/proactive-block-bridge.d.ts +75 -0
  1310. package/dist/website-blocker/proactive-block-bridge.d.ts.map +1 -0
  1311. package/dist/website-blocker/proactive-block-bridge.js +154 -0
  1312. package/dist/website-blocker/proactive-block-bridge.js.map +1 -0
  1313. package/dist/website-blocker/public.d.ts +12 -0
  1314. package/dist/website-blocker/public.d.ts.map +1 -0
  1315. package/dist/website-blocker/public.js +51 -0
  1316. package/dist/website-blocker/public.js.map +1 -0
  1317. package/package.json +28 -28
@@ -0,0 +1,92 @@
1
+ import type { ActionResult, HandlerCallback, IAgentRuntime, Memory } from "@elizaos/core";
2
+ import type { LifeOpsConnectorGrant } from "../contracts/index.js";
3
+ export declare const LIFEOPS_EGRESS_DATA_CLASSES: readonly ["metadata", "snippet", "body", "recipients_attendees", "health", "payments", "browser_activity", "drafts", "send_targets", "deep_links"];
4
+ export type LifeOpsEgressDataClass = (typeof LIFEOPS_EGRESS_DATA_CLASSES)[number];
5
+ export declare const LIFEOPS_ACCOUNT_PRIVACY_SCOPES: readonly ["owner_only", "metadata_only", "shared"];
6
+ export type LifeOpsAccountPrivacyScope = (typeof LIFEOPS_ACCOUNT_PRIVACY_SCOPES)[number];
7
+ export type LifeOpsEgressActor = "owner" | "non_owner" | "route_owner";
8
+ export interface LifeOpsEgressContext {
9
+ actor: LifeOpsEgressActor;
10
+ agentId?: string;
11
+ entityId?: string | null;
12
+ }
13
+ export interface LifeOpsConnectorAccountPrivacyPolicy {
14
+ id: string;
15
+ agentId: string;
16
+ provider: string;
17
+ connectorAccountId: string;
18
+ visibilityScope: LifeOpsAccountPrivacyScope;
19
+ allowedDataClasses: LifeOpsEgressDataClass[];
20
+ metadata: Record<string, unknown>;
21
+ createdAt: string;
22
+ updatedAt: string;
23
+ }
24
+ export type LifeOpsConnectorAccountPrivacyInput = Pick<LifeOpsConnectorAccountPrivacyPolicy, "agentId" | "provider" | "connectorAccountId"> & Partial<Pick<LifeOpsConnectorAccountPrivacyPolicy, "id" | "visibilityScope" | "allowedDataClasses" | "metadata">>;
25
+ export declare const DEFAULT_LIFEOPS_ACCOUNT_PRIVACY_SCOPE: LifeOpsAccountPrivacyScope;
26
+ export declare function isLifeOpsEgressDataClass(value: unknown): value is LifeOpsEgressDataClass;
27
+ export declare function normalizeLifeOpsEgressDataClasses(value: unknown): LifeOpsEgressDataClass[];
28
+ export declare function normalizeLifeOpsAccountPrivacyScope(value: unknown): LifeOpsAccountPrivacyScope;
29
+ export declare function createLifeOpsEgressContext(args: {
30
+ isOwner: boolean;
31
+ agentId?: string;
32
+ entityId?: string | null;
33
+ }): LifeOpsEgressContext;
34
+ export declare function createLifeOpsRouteEgressContext(args: {
35
+ agentId?: string;
36
+ adminEntityId?: string | null;
37
+ }): LifeOpsEgressContext;
38
+ export declare function createLifeOpsMessageEgressContext(args: {
39
+ runtime: IAgentRuntime;
40
+ message: Memory;
41
+ hasOwnerAccess: (runtime: IAgentRuntime, message: Memory) => Promise<boolean>;
42
+ }): Promise<LifeOpsEgressContext>;
43
+ export declare function canEgress(context: LifeOpsEgressContext, dataClass: LifeOpsEgressDataClass, policy?: LifeOpsConnectorAccountPrivacyPolicy | null): boolean;
44
+ export declare function canSurfaceConnectorAccountData(args: {
45
+ context: LifeOpsEgressContext;
46
+ provider: string;
47
+ connectorAccountId?: string | null;
48
+ dataClass: LifeOpsEgressDataClass;
49
+ policy?: LifeOpsConnectorAccountPrivacyPolicy | null;
50
+ }): boolean;
51
+ export declare function redactTextForEgress(value: string | null | undefined, args: {
52
+ context: LifeOpsEgressContext;
53
+ dataClass: LifeOpsEgressDataClass;
54
+ policy?: LifeOpsConnectorAccountPrivacyPolicy | null;
55
+ replacement?: string;
56
+ }): string;
57
+ export declare function redactUrlForEgress(value: string | null | undefined, args: {
58
+ context: LifeOpsEgressContext;
59
+ policy?: LifeOpsConnectorAccountPrivacyPolicy | null;
60
+ }): string | null;
61
+ export declare function filterActionResultForEgress(result: ActionResult, args: {
62
+ context: LifeOpsEgressContext;
63
+ dataClasses: readonly LifeOpsEgressDataClass[];
64
+ policy?: LifeOpsConnectorAccountPrivacyPolicy | null;
65
+ redactedText?: string;
66
+ }): ActionResult;
67
+ export declare function callbackWithPrivacy(callback: HandlerCallback | undefined, result: ActionResult, args: {
68
+ context: LifeOpsEgressContext;
69
+ dataClasses: readonly LifeOpsEgressDataClass[];
70
+ policy?: LifeOpsConnectorAccountPrivacyPolicy | null;
71
+ source: string;
72
+ action: string;
73
+ }): Promise<ActionResult>;
74
+ export declare function connectorAccountPrivacyKey(provider: string, connectorAccountId: string): string;
75
+ export declare function mapConnectorAccountPrivacyPolicies(policies: readonly LifeOpsConnectorAccountPrivacyPolicy[]): Map<string, LifeOpsConnectorAccountPrivacyPolicy>;
76
+ export declare function normalizeConnectorAccountId(value: unknown): string | null;
77
+ export declare function deriveConnectorAccountId(args: {
78
+ provider: string;
79
+ side?: string | null;
80
+ identity?: Record<string, unknown> | null;
81
+ identityEmail?: string | null;
82
+ cloudConnectionId?: string | null;
83
+ grantId?: string | null;
84
+ }): string | null;
85
+ export declare function grantScopedConnectorAccountId(args: {
86
+ provider: string;
87
+ side?: string | null;
88
+ grantId: string;
89
+ }): string;
90
+ export declare function deriveConnectorAccountIdFromGrant(grant: Pick<LifeOpsConnectorGrant, "id" | "provider" | "side" | "identity" | "identityEmail" | "cloudConnectionId" | "metadata">): string;
91
+ export declare function createConnectorAccountPrivacyPolicy(input: LifeOpsConnectorAccountPrivacyInput, now?: string): LifeOpsConnectorAccountPrivacyPolicy;
92
+ //# sourceMappingURL=privacy-egress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privacy-egress.d.ts","sourceRoot":"","sources":["../../src/lifeops/privacy-egress.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,230 @@
1
+ import crypto from "node:crypto";
2
+ const LIFEOPS_EGRESS_DATA_CLASSES = [
3
+ "metadata",
4
+ "snippet",
5
+ "body",
6
+ "recipients_attendees",
7
+ "health",
8
+ "payments",
9
+ "browser_activity",
10
+ "drafts",
11
+ "send_targets",
12
+ "deep_links"
13
+ ];
14
+ const LIFEOPS_ACCOUNT_PRIVACY_SCOPES = [
15
+ "owner_only",
16
+ "metadata_only",
17
+ "shared"
18
+ ];
19
+ const DEFAULT_LIFEOPS_ACCOUNT_PRIVACY_SCOPE = "owner_only";
20
+ const DATA_CLASS_SET = new Set(LIFEOPS_EGRESS_DATA_CLASSES);
21
+ const ACCOUNT_PRIVACY_SCOPE_SET = new Set(
22
+ LIFEOPS_ACCOUNT_PRIVACY_SCOPES
23
+ );
24
+ function isLifeOpsEgressDataClass(value) {
25
+ return typeof value === "string" && DATA_CLASS_SET.has(value);
26
+ }
27
+ function normalizeLifeOpsEgressDataClasses(value) {
28
+ if (!Array.isArray(value)) return [];
29
+ const classes = [];
30
+ const seen = /* @__PURE__ */ new Set();
31
+ for (const entry of value) {
32
+ if (!isLifeOpsEgressDataClass(entry) || seen.has(entry)) continue;
33
+ seen.add(entry);
34
+ classes.push(entry);
35
+ }
36
+ return classes;
37
+ }
38
+ function normalizeLifeOpsAccountPrivacyScope(value) {
39
+ return typeof value === "string" && ACCOUNT_PRIVACY_SCOPE_SET.has(value) ? value : DEFAULT_LIFEOPS_ACCOUNT_PRIVACY_SCOPE;
40
+ }
41
+ function createLifeOpsEgressContext(args) {
42
+ return {
43
+ actor: args.isOwner ? "owner" : "non_owner",
44
+ agentId: args.agentId,
45
+ entityId: args.entityId ?? null
46
+ };
47
+ }
48
+ function createLifeOpsRouteEgressContext(args) {
49
+ return {
50
+ actor: "route_owner",
51
+ agentId: args.agentId,
52
+ entityId: args.adminEntityId ?? null
53
+ };
54
+ }
55
+ async function createLifeOpsMessageEgressContext(args) {
56
+ return createLifeOpsEgressContext({
57
+ isOwner: await args.hasOwnerAccess(args.runtime, args.message),
58
+ agentId: args.runtime.agentId,
59
+ entityId: typeof args.message.entityId === "string" ? args.message.entityId : null
60
+ });
61
+ }
62
+ function canEgress(context, dataClass, policy) {
63
+ if (context.actor === "owner" || context.actor === "route_owner") {
64
+ return true;
65
+ }
66
+ const visibilityScope = policy?.visibilityScope ?? DEFAULT_LIFEOPS_ACCOUNT_PRIVACY_SCOPE;
67
+ if (visibilityScope === "owner_only") {
68
+ return false;
69
+ }
70
+ if (visibilityScope === "metadata_only") {
71
+ return dataClass === "metadata";
72
+ }
73
+ return policy?.allowedDataClasses.includes(dataClass) ?? dataClass === "metadata";
74
+ }
75
+ function canSurfaceConnectorAccountData(args) {
76
+ if (args.provider.trim().length === 0) {
77
+ return false;
78
+ }
79
+ if (!args.connectorAccountId) {
80
+ return canEgress(args.context, args.dataClass, args.policy);
81
+ }
82
+ return canEgress(args.context, args.dataClass, args.policy);
83
+ }
84
+ function redactTextForEgress(value, args) {
85
+ if (canEgress(args.context, args.dataClass, args.policy)) {
86
+ return value ?? "";
87
+ }
88
+ return args.replacement ?? "[hidden by LifeOps privacy]";
89
+ }
90
+ function redactUrlForEgress(value, args) {
91
+ if (!value) return null;
92
+ return canEgress(args.context, "deep_links", args.policy) ? value : null;
93
+ }
94
+ function filterActionResultForEgress(result, args) {
95
+ const canSurface = args.dataClasses.every(
96
+ (dataClass) => canEgress(args.context, dataClass, args.policy)
97
+ );
98
+ if (canSurface) return result;
99
+ return {
100
+ ...result,
101
+ text: args.redactedText ?? "Result hidden by LifeOps privacy policy.",
102
+ data: {
103
+ privacyFiltered: true,
104
+ originalSuccess: result.success
105
+ }
106
+ };
107
+ }
108
+ async function callbackWithPrivacy(callback, result, args) {
109
+ const filtered = filterActionResultForEgress(result, args);
110
+ await callback?.({
111
+ text: filtered.text ?? "",
112
+ source: args.source,
113
+ action: args.action
114
+ });
115
+ return filtered;
116
+ }
117
+ function connectorAccountPrivacyKey(provider, connectorAccountId) {
118
+ return `${provider}:${connectorAccountId}`;
119
+ }
120
+ function mapConnectorAccountPrivacyPolicies(policies) {
121
+ return new Map(
122
+ policies.map((policy) => [
123
+ connectorAccountPrivacyKey(policy.provider, policy.connectorAccountId),
124
+ policy
125
+ ])
126
+ );
127
+ }
128
+ function normalizeConnectorAccountId(value) {
129
+ if (typeof value !== "string") return null;
130
+ const trimmed = value.trim();
131
+ return trimmed.length > 0 ? trimmed : null;
132
+ }
133
+ function digestConnectorAccountComponent(value) {
134
+ return crypto.createHash("sha256").update(value).digest("hex").slice(0, 32);
135
+ }
136
+ function readString(value) {
137
+ if (typeof value !== "string") return null;
138
+ const trimmed = value.trim();
139
+ return trimmed.length > 0 ? trimmed : null;
140
+ }
141
+ function readIdentityEmail(identity) {
142
+ return readString(identity.email) ?? readString(identity.emailAddress) ?? readString(identity.primaryEmail);
143
+ }
144
+ function readIdentityStableId(identity) {
145
+ return readString(identity.sub) ?? readString(identity.id) ?? readString(identity.accountId) ?? readString(identity.userId) ?? readString(identity.phone) ?? readString(identity.handle);
146
+ }
147
+ function deriveConnectorAccountId(args) {
148
+ const provider = args.provider.trim().toLowerCase();
149
+ if (!provider) return null;
150
+ const side = (args.side ?? "owner").trim().toLowerCase() || "owner";
151
+ const identity = args.identity ?? {};
152
+ const email = readString(args.identityEmail)?.toLowerCase() ?? readIdentityEmail(identity)?.toLowerCase();
153
+ if (email) {
154
+ return `${provider}:${side}:email:${digestConnectorAccountComponent(email)}`;
155
+ }
156
+ const stableIdentity = readIdentityStableId(identity);
157
+ if (stableIdentity) {
158
+ return `${provider}:${side}:identity:${digestConnectorAccountComponent(stableIdentity)}`;
159
+ }
160
+ const cloudConnectionId = readString(args.cloudConnectionId);
161
+ if (cloudConnectionId) {
162
+ return `${provider}:${side}:cloud:${digestConnectorAccountComponent(cloudConnectionId)}`;
163
+ }
164
+ return null;
165
+ }
166
+ function grantScopedConnectorAccountId(args) {
167
+ const provider = args.provider.trim().toLowerCase();
168
+ const side = (args.side ?? "owner").trim().toLowerCase() || "owner";
169
+ return `${provider}:${side}:grant:${digestConnectorAccountComponent(args.grantId)}`;
170
+ }
171
+ function deriveConnectorAccountIdFromGrant(grant) {
172
+ const explicit = normalizeConnectorAccountId(
173
+ grant.metadata.connectorAccountId
174
+ );
175
+ if (explicit) return explicit;
176
+ return deriveConnectorAccountId({
177
+ provider: grant.provider,
178
+ side: grant.side,
179
+ identity: grant.identity,
180
+ identityEmail: grant.identityEmail,
181
+ cloudConnectionId: grant.cloudConnectionId,
182
+ grantId: grant.id
183
+ }) ?? grantScopedConnectorAccountId({
184
+ provider: grant.provider,
185
+ side: grant.side,
186
+ grantId: grant.id
187
+ });
188
+ }
189
+ function createConnectorAccountPrivacyPolicy(input, now = (/* @__PURE__ */ new Date()).toISOString()) {
190
+ return {
191
+ id: input.id ?? `acct_priv_${digestConnectorAccountComponent(
192
+ `${input.agentId}:${input.provider}:${input.connectorAccountId}`
193
+ )}`,
194
+ agentId: input.agentId,
195
+ provider: input.provider,
196
+ connectorAccountId: input.connectorAccountId,
197
+ visibilityScope: normalizeLifeOpsAccountPrivacyScope(input.visibilityScope),
198
+ allowedDataClasses: normalizeLifeOpsEgressDataClasses(
199
+ input.allowedDataClasses
200
+ ),
201
+ metadata: input.metadata ?? {},
202
+ createdAt: now,
203
+ updatedAt: now
204
+ };
205
+ }
206
+ export {
207
+ DEFAULT_LIFEOPS_ACCOUNT_PRIVACY_SCOPE,
208
+ LIFEOPS_ACCOUNT_PRIVACY_SCOPES,
209
+ LIFEOPS_EGRESS_DATA_CLASSES,
210
+ callbackWithPrivacy,
211
+ canEgress,
212
+ canSurfaceConnectorAccountData,
213
+ connectorAccountPrivacyKey,
214
+ createConnectorAccountPrivacyPolicy,
215
+ createLifeOpsEgressContext,
216
+ createLifeOpsMessageEgressContext,
217
+ createLifeOpsRouteEgressContext,
218
+ deriveConnectorAccountId,
219
+ deriveConnectorAccountIdFromGrant,
220
+ filterActionResultForEgress,
221
+ grantScopedConnectorAccountId,
222
+ isLifeOpsEgressDataClass,
223
+ mapConnectorAccountPrivacyPolicies,
224
+ normalizeConnectorAccountId,
225
+ normalizeLifeOpsAccountPrivacyScope,
226
+ normalizeLifeOpsEgressDataClasses,
227
+ redactTextForEgress,
228
+ redactUrlForEgress
229
+ };
230
+ //# sourceMappingURL=privacy-egress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lifeops/privacy-egress.ts"],"sourcesContent":["import crypto from \"node:crypto\";\nimport type {\n ActionResult,\n HandlerCallback,\n IAgentRuntime,\n Memory,\n} from \"@elizaos/core\";\nimport type { LifeOpsConnectorGrant } from \"../contracts/index.js\";\n\nexport const LIFEOPS_EGRESS_DATA_CLASSES = [\n \"metadata\",\n \"snippet\",\n \"body\",\n \"recipients_attendees\",\n \"health\",\n \"payments\",\n \"browser_activity\",\n \"drafts\",\n \"send_targets\",\n \"deep_links\",\n] as const;\n\nexport type LifeOpsEgressDataClass =\n (typeof LIFEOPS_EGRESS_DATA_CLASSES)[number];\n\nexport const LIFEOPS_ACCOUNT_PRIVACY_SCOPES = [\n \"owner_only\",\n \"metadata_only\",\n \"shared\",\n] as const;\n\nexport type LifeOpsAccountPrivacyScope =\n (typeof LIFEOPS_ACCOUNT_PRIVACY_SCOPES)[number];\n\nexport type LifeOpsEgressActor = \"owner\" | \"non_owner\" | \"route_owner\";\n\nexport interface LifeOpsEgressContext {\n actor: LifeOpsEgressActor;\n agentId?: string;\n entityId?: string | null;\n}\n\nexport interface LifeOpsConnectorAccountPrivacyPolicy {\n id: string;\n agentId: string;\n provider: string;\n connectorAccountId: string;\n visibilityScope: LifeOpsAccountPrivacyScope;\n allowedDataClasses: LifeOpsEgressDataClass[];\n metadata: Record<string, unknown>;\n createdAt: string;\n updatedAt: string;\n}\n\nexport type LifeOpsConnectorAccountPrivacyInput = Pick<\n LifeOpsConnectorAccountPrivacyPolicy,\n \"agentId\" | \"provider\" | \"connectorAccountId\"\n> &\n Partial<\n Pick<\n LifeOpsConnectorAccountPrivacyPolicy,\n \"id\" | \"visibilityScope\" | \"allowedDataClasses\" | \"metadata\"\n >\n >;\n\nexport const DEFAULT_LIFEOPS_ACCOUNT_PRIVACY_SCOPE: LifeOpsAccountPrivacyScope =\n \"owner_only\";\n\nconst DATA_CLASS_SET = new Set<string>(LIFEOPS_EGRESS_DATA_CLASSES);\nconst ACCOUNT_PRIVACY_SCOPE_SET = new Set<string>(\n LIFEOPS_ACCOUNT_PRIVACY_SCOPES,\n);\n\nexport function isLifeOpsEgressDataClass(\n value: unknown,\n): value is LifeOpsEgressDataClass {\n return typeof value === \"string\" && DATA_CLASS_SET.has(value);\n}\n\nexport function normalizeLifeOpsEgressDataClasses(\n value: unknown,\n): LifeOpsEgressDataClass[] {\n if (!Array.isArray(value)) return [];\n const classes: LifeOpsEgressDataClass[] = [];\n const seen = new Set<LifeOpsEgressDataClass>();\n for (const entry of value) {\n if (!isLifeOpsEgressDataClass(entry) || seen.has(entry)) continue;\n seen.add(entry);\n classes.push(entry);\n }\n return classes;\n}\n\nexport function normalizeLifeOpsAccountPrivacyScope(\n value: unknown,\n): LifeOpsAccountPrivacyScope {\n return typeof value === \"string\" && ACCOUNT_PRIVACY_SCOPE_SET.has(value)\n ? (value as LifeOpsAccountPrivacyScope)\n : DEFAULT_LIFEOPS_ACCOUNT_PRIVACY_SCOPE;\n}\n\nexport function createLifeOpsEgressContext(args: {\n isOwner: boolean;\n agentId?: string;\n entityId?: string | null;\n}): LifeOpsEgressContext {\n return {\n actor: args.isOwner ? \"owner\" : \"non_owner\",\n agentId: args.agentId,\n entityId: args.entityId ?? null,\n };\n}\n\nexport function createLifeOpsRouteEgressContext(args: {\n agentId?: string;\n adminEntityId?: string | null;\n}): LifeOpsEgressContext {\n return {\n actor: \"route_owner\",\n agentId: args.agentId,\n entityId: args.adminEntityId ?? null,\n };\n}\n\nexport async function createLifeOpsMessageEgressContext(args: {\n runtime: IAgentRuntime;\n message: Memory;\n hasOwnerAccess: (runtime: IAgentRuntime, message: Memory) => Promise<boolean>;\n}): Promise<LifeOpsEgressContext> {\n return createLifeOpsEgressContext({\n isOwner: await args.hasOwnerAccess(args.runtime, args.message),\n agentId: args.runtime.agentId,\n entityId:\n typeof args.message.entityId === \"string\" ? args.message.entityId : null,\n });\n}\n\nexport function canEgress(\n context: LifeOpsEgressContext,\n dataClass: LifeOpsEgressDataClass,\n policy?: LifeOpsConnectorAccountPrivacyPolicy | null,\n): boolean {\n if (context.actor === \"owner\" || context.actor === \"route_owner\") {\n return true;\n }\n\n const visibilityScope =\n policy?.visibilityScope ?? DEFAULT_LIFEOPS_ACCOUNT_PRIVACY_SCOPE;\n if (visibilityScope === \"owner_only\") {\n return false;\n }\n if (visibilityScope === \"metadata_only\") {\n return dataClass === \"metadata\";\n }\n return (\n policy?.allowedDataClasses.includes(dataClass) ?? dataClass === \"metadata\"\n );\n}\n\nexport function canSurfaceConnectorAccountData(args: {\n context: LifeOpsEgressContext;\n provider: string;\n connectorAccountId?: string | null;\n dataClass: LifeOpsEgressDataClass;\n policy?: LifeOpsConnectorAccountPrivacyPolicy | null;\n}): boolean {\n if (args.provider.trim().length === 0) {\n return false;\n }\n if (!args.connectorAccountId) {\n return canEgress(args.context, args.dataClass, args.policy);\n }\n return canEgress(args.context, args.dataClass, args.policy);\n}\n\nexport function redactTextForEgress(\n value: string | null | undefined,\n args: {\n context: LifeOpsEgressContext;\n dataClass: LifeOpsEgressDataClass;\n policy?: LifeOpsConnectorAccountPrivacyPolicy | null;\n replacement?: string;\n },\n): string {\n if (canEgress(args.context, args.dataClass, args.policy)) {\n return value ?? \"\";\n }\n return args.replacement ?? \"[hidden by LifeOps privacy]\";\n}\n\nexport function redactUrlForEgress(\n value: string | null | undefined,\n args: {\n context: LifeOpsEgressContext;\n policy?: LifeOpsConnectorAccountPrivacyPolicy | null;\n },\n): string | null {\n if (!value) return null;\n return canEgress(args.context, \"deep_links\", args.policy) ? value : null;\n}\n\nexport function filterActionResultForEgress(\n result: ActionResult,\n args: {\n context: LifeOpsEgressContext;\n dataClasses: readonly LifeOpsEgressDataClass[];\n policy?: LifeOpsConnectorAccountPrivacyPolicy | null;\n redactedText?: string;\n },\n): ActionResult {\n const canSurface = args.dataClasses.every((dataClass) =>\n canEgress(args.context, dataClass, args.policy),\n );\n if (canSurface) return result;\n return {\n ...result,\n text: args.redactedText ?? \"Result hidden by LifeOps privacy policy.\",\n data: {\n privacyFiltered: true,\n originalSuccess: result.success,\n },\n };\n}\n\nexport async function callbackWithPrivacy(\n callback: HandlerCallback | undefined,\n result: ActionResult,\n args: {\n context: LifeOpsEgressContext;\n dataClasses: readonly LifeOpsEgressDataClass[];\n policy?: LifeOpsConnectorAccountPrivacyPolicy | null;\n source: string;\n action: string;\n },\n): Promise<ActionResult> {\n const filtered = filterActionResultForEgress(result, args);\n await callback?.({\n text: filtered.text ?? \"\",\n source: args.source,\n action: args.action,\n });\n return filtered;\n}\n\nexport function connectorAccountPrivacyKey(\n provider: string,\n connectorAccountId: string,\n): string {\n return `${provider}:${connectorAccountId}`;\n}\n\nexport function mapConnectorAccountPrivacyPolicies(\n policies: readonly LifeOpsConnectorAccountPrivacyPolicy[],\n): Map<string, LifeOpsConnectorAccountPrivacyPolicy> {\n return new Map(\n policies.map((policy) => [\n connectorAccountPrivacyKey(policy.provider, policy.connectorAccountId),\n policy,\n ]),\n );\n}\n\nexport function normalizeConnectorAccountId(value: unknown): string | null {\n if (typeof value !== \"string\") return null;\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : null;\n}\n\nfunction digestConnectorAccountComponent(value: string): string {\n return crypto.createHash(\"sha256\").update(value).digest(\"hex\").slice(0, 32);\n}\n\nfunction readString(value: unknown): string | null {\n if (typeof value !== \"string\") return null;\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : null;\n}\n\nfunction readIdentityEmail(identity: Record<string, unknown>): string | null {\n return (\n readString(identity.email) ??\n readString(identity.emailAddress) ??\n readString(identity.primaryEmail)\n );\n}\n\nfunction readIdentityStableId(\n identity: Record<string, unknown>,\n): string | null {\n return (\n readString(identity.sub) ??\n readString(identity.id) ??\n readString(identity.accountId) ??\n readString(identity.userId) ??\n readString(identity.phone) ??\n readString(identity.handle)\n );\n}\n\nexport function deriveConnectorAccountId(args: {\n provider: string;\n side?: string | null;\n identity?: Record<string, unknown> | null;\n identityEmail?: string | null;\n cloudConnectionId?: string | null;\n grantId?: string | null;\n}): string | null {\n const provider = args.provider.trim().toLowerCase();\n if (!provider) return null;\n const side = (args.side ?? \"owner\").trim().toLowerCase() || \"owner\";\n const identity = args.identity ?? {};\n const email =\n readString(args.identityEmail)?.toLowerCase() ??\n readIdentityEmail(identity)?.toLowerCase();\n if (email) {\n return `${provider}:${side}:email:${digestConnectorAccountComponent(email)}`;\n }\n\n const stableIdentity = readIdentityStableId(identity);\n if (stableIdentity) {\n return `${provider}:${side}:identity:${digestConnectorAccountComponent(stableIdentity)}`;\n }\n\n const cloudConnectionId = readString(args.cloudConnectionId);\n if (cloudConnectionId) {\n return `${provider}:${side}:cloud:${digestConnectorAccountComponent(cloudConnectionId)}`;\n }\n\n return null;\n}\n\nexport function grantScopedConnectorAccountId(args: {\n provider: string;\n side?: string | null;\n grantId: string;\n}): string {\n const provider = args.provider.trim().toLowerCase();\n const side = (args.side ?? \"owner\").trim().toLowerCase() || \"owner\";\n return `${provider}:${side}:grant:${digestConnectorAccountComponent(args.grantId)}`;\n}\n\nexport function deriveConnectorAccountIdFromGrant(\n grant: Pick<\n LifeOpsConnectorGrant,\n | \"id\"\n | \"provider\"\n | \"side\"\n | \"identity\"\n | \"identityEmail\"\n | \"cloudConnectionId\"\n | \"metadata\"\n >,\n): string {\n const explicit = normalizeConnectorAccountId(\n grant.metadata.connectorAccountId,\n );\n if (explicit) return explicit;\n\n return (\n deriveConnectorAccountId({\n provider: grant.provider,\n side: grant.side,\n identity: grant.identity,\n identityEmail: grant.identityEmail,\n cloudConnectionId: grant.cloudConnectionId,\n grantId: grant.id,\n }) ??\n grantScopedConnectorAccountId({\n provider: grant.provider,\n side: grant.side,\n grantId: grant.id,\n })\n );\n}\n\nexport function createConnectorAccountPrivacyPolicy(\n input: LifeOpsConnectorAccountPrivacyInput,\n now = new Date().toISOString(),\n): LifeOpsConnectorAccountPrivacyPolicy {\n return {\n id:\n input.id ??\n `acct_priv_${digestConnectorAccountComponent(\n `${input.agentId}:${input.provider}:${input.connectorAccountId}`,\n )}`,\n agentId: input.agentId,\n provider: input.provider,\n connectorAccountId: input.connectorAccountId,\n visibilityScope: normalizeLifeOpsAccountPrivacyScope(input.visibilityScope),\n allowedDataClasses: normalizeLifeOpsEgressDataClasses(\n input.allowedDataClasses,\n ),\n metadata: input.metadata ?? {},\n createdAt: now,\n updatedAt: now,\n };\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,49 @@
1
+ import { type ConnectorAccount, type IAgentRuntime, type PrivacyLevel } from "@elizaos/core";
2
+ /**
3
+ * The audience receiving content surfaced from a connector account.
4
+ *
5
+ * - `owner`: the account owner (always allowed by every privacy level).
6
+ * - `team`: a team or admin role user.
7
+ * - `agent_message_recipient`: any non-team participant addressing the agent.
8
+ * - `public`: a broadcast surface (public posts, etc.).
9
+ */
10
+ export type LifeOpsAudience = "owner" | "team" | "agent_message_recipient" | "public";
11
+ /**
12
+ * Returns true when an account at the given `privacy` level may be surfaced
13
+ * to the given `audience`.
14
+ *
15
+ * Lattice:
16
+ * owner_only -> owner
17
+ * team_visible -> owner | team
18
+ * semi_public -> owner | team | agent_message_recipient
19
+ * public -> any
20
+ */
21
+ export declare function canSurfaceForAudience(privacy: PrivacyLevel, audience: LifeOpsAudience): boolean;
22
+ export interface CanSurfaceAccountDataOptions {
23
+ runtime: IAgentRuntime;
24
+ provider: string;
25
+ accountId: string;
26
+ audience: LifeOpsAudience;
27
+ }
28
+ /**
29
+ * Resolve a connector account and apply `canSurfaceForAudience` against the
30
+ * stored privacy level. Returns false if the account cannot be loaded — the
31
+ * caller must not surface the data.
32
+ */
33
+ export declare function canSurfaceAccountData(opts: CanSurfaceAccountDataOptions): Promise<boolean>;
34
+ /**
35
+ * Filter a list of connector accounts down to those that may be surfaced to
36
+ * the given audience. Logs a structured debug line indicating how many were
37
+ * filtered out — does not log any account data.
38
+ */
39
+ export declare function filterAccountsForAudience(accounts: readonly ConnectorAccount[], audience: LifeOpsAudience, context?: {
40
+ provider: string;
41
+ runtime?: IAgentRuntime;
42
+ }): ConnectorAccount[];
43
+ export declare const LIFEOPS_REDACTED_PLACEHOLDER = "[redacted: owner_only]";
44
+ /**
45
+ * Choose the replacement text for a redacted account when the privacy level
46
+ * blocks surfacing to the audience.
47
+ */
48
+ export declare function redactedPlaceholder(privacy: PrivacyLevel): string;
49
+ //# sourceMappingURL=privacy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privacy.d.ts","sourceRoot":"","sources":["../../src/lifeops/privacy.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EAIrB,KAAK,aAAa,EAElB,KAAK,YAAY,EAClB,MAAM,eAAe,CAAC;AAEvB;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GACvB,OAAO,GACP,MAAM,GACN,yBAAyB,GACzB,QAAQ,CAAC;AAEb;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,eAAe,GACxB,OAAO,CAcT;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,eAAe,CAAC;CAC3B;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,4BAA4B,GACjC,OAAO,CAAC,OAAO,CAAC,CAYlB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,EACrC,QAAQ,EAAE,eAAe,EACzB,OAAO,GAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,aAAa,CAAA;CAEnD,GACA,gBAAgB,EAAE,CAiBpB;AAED,eAAO,MAAM,4BAA4B,2BAA2B,CAAC;AAErE;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAIjE"}
@@ -0,0 +1,66 @@
1
+ import {
2
+ DEFAULT_PRIVACY_LEVEL,
3
+ getAccountPrivacy,
4
+ getConnectorAccountManager,
5
+ logger
6
+ } from "@elizaos/core";
7
+ function canSurfaceForAudience(privacy, audience) {
8
+ if (audience === "owner") return true;
9
+ switch (privacy) {
10
+ case "owner_only":
11
+ return false;
12
+ case "team_visible":
13
+ return audience === "team";
14
+ case "semi_public":
15
+ return audience === "team" || audience === "agent_message_recipient";
16
+ case "public":
17
+ return true;
18
+ default:
19
+ return false;
20
+ }
21
+ }
22
+ async function canSurfaceAccountData(opts) {
23
+ const provider = opts.provider.trim().toLowerCase();
24
+ const accountId = opts.accountId.trim();
25
+ if (!provider || !accountId) {
26
+ return false;
27
+ }
28
+ const manager = getConnectorAccountManager(opts.runtime);
29
+ const account = await manager.getAccount(provider, accountId);
30
+ if (!account) {
31
+ return false;
32
+ }
33
+ return canSurfaceForAudience(getAccountPrivacy(account), opts.audience);
34
+ }
35
+ function filterAccountsForAudience(accounts, audience, context = {
36
+ provider: "unknown"
37
+ }) {
38
+ const allowed = [];
39
+ let filtered = 0;
40
+ for (const account of accounts) {
41
+ const privacy = getAccountPrivacy(account);
42
+ if (canSurfaceForAudience(privacy, audience)) {
43
+ allowed.push(account);
44
+ } else {
45
+ filtered += 1;
46
+ }
47
+ }
48
+ if (filtered > 0) {
49
+ logger.debug(
50
+ `[LifeOpsPrivacy] filtered ${filtered} accounts of provider ${context.provider} for audience ${audience}`
51
+ );
52
+ }
53
+ return allowed;
54
+ }
55
+ const LIFEOPS_REDACTED_PLACEHOLDER = "[redacted: owner_only]";
56
+ function redactedPlaceholder(privacy) {
57
+ return privacy === DEFAULT_PRIVACY_LEVEL ? LIFEOPS_REDACTED_PLACEHOLDER : `[redacted: ${privacy}]`;
58
+ }
59
+ export {
60
+ LIFEOPS_REDACTED_PLACEHOLDER,
61
+ canSurfaceAccountData,
62
+ canSurfaceForAudience,
63
+ filterAccountsForAudience,
64
+ redactedPlaceholder
65
+ };
66
+ //# sourceMappingURL=privacy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lifeops/privacy.ts"],"sourcesContent":["import {\n type ConnectorAccount,\n DEFAULT_PRIVACY_LEVEL,\n getAccountPrivacy,\n getConnectorAccountManager,\n type IAgentRuntime,\n logger,\n type PrivacyLevel,\n} from \"@elizaos/core\";\n\n/**\n * The audience receiving content surfaced from a connector account.\n *\n * - `owner`: the account owner (always allowed by every privacy level).\n * - `team`: a team or admin role user.\n * - `agent_message_recipient`: any non-team participant addressing the agent.\n * - `public`: a broadcast surface (public posts, etc.).\n */\nexport type LifeOpsAudience =\n | \"owner\"\n | \"team\"\n | \"agent_message_recipient\"\n | \"public\";\n\n/**\n * Returns true when an account at the given `privacy` level may be surfaced\n * to the given `audience`.\n *\n * Lattice:\n * owner_only -> owner\n * team_visible -> owner | team\n * semi_public -> owner | team | agent_message_recipient\n * public -> any\n */\nexport function canSurfaceForAudience(\n privacy: PrivacyLevel,\n audience: LifeOpsAudience,\n): boolean {\n if (audience === \"owner\") return true;\n switch (privacy) {\n case \"owner_only\":\n return false;\n case \"team_visible\":\n return audience === \"team\";\n case \"semi_public\":\n return audience === \"team\" || audience === \"agent_message_recipient\";\n case \"public\":\n return true;\n default:\n return false;\n }\n}\n\nexport interface CanSurfaceAccountDataOptions {\n runtime: IAgentRuntime;\n provider: string;\n accountId: string;\n audience: LifeOpsAudience;\n}\n\n/**\n * Resolve a connector account and apply `canSurfaceForAudience` against the\n * stored privacy level. Returns false if the account cannot be loaded — the\n * caller must not surface the data.\n */\nexport async function canSurfaceAccountData(\n opts: CanSurfaceAccountDataOptions,\n): Promise<boolean> {\n const provider = opts.provider.trim().toLowerCase();\n const accountId = opts.accountId.trim();\n if (!provider || !accountId) {\n return false;\n }\n const manager = getConnectorAccountManager(opts.runtime);\n const account = await manager.getAccount(provider, accountId);\n if (!account) {\n return false;\n }\n return canSurfaceForAudience(getAccountPrivacy(account), opts.audience);\n}\n\n/**\n * Filter a list of connector accounts down to those that may be surfaced to\n * the given audience. Logs a structured debug line indicating how many were\n * filtered out — does not log any account data.\n */\nexport function filterAccountsForAudience(\n accounts: readonly ConnectorAccount[],\n audience: LifeOpsAudience,\n context: { provider: string; runtime?: IAgentRuntime } = {\n provider: \"unknown\",\n },\n): ConnectorAccount[] {\n const allowed: ConnectorAccount[] = [];\n let filtered = 0;\n for (const account of accounts) {\n const privacy = getAccountPrivacy(account);\n if (canSurfaceForAudience(privacy, audience)) {\n allowed.push(account);\n } else {\n filtered += 1;\n }\n }\n if (filtered > 0) {\n logger.debug(\n `[LifeOpsPrivacy] filtered ${filtered} accounts of provider ${context.provider} for audience ${audience}`,\n );\n }\n return allowed;\n}\n\nexport const LIFEOPS_REDACTED_PLACEHOLDER = \"[redacted: owner_only]\";\n\n/**\n * Choose the replacement text for a redacted account when the privacy level\n * blocks surfacing to the audience.\n */\nexport function redactedPlaceholder(privacy: PrivacyLevel): string {\n return privacy === DEFAULT_PRIVACY_LEVEL\n ? LIFEOPS_REDACTED_PLACEHOLDER\n : `[redacted: ${privacy}]`;\n}\n"],"mappings":"AAAA;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,OAEK;AA0BA,SAAS,sBACd,SACA,UACS;AACT,MAAI,aAAa,QAAS,QAAO;AACjC,UAAQ,SAAS;AAAA,IACf,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO,aAAa;AAAA,IACtB,KAAK;AACH,aAAO,aAAa,UAAU,aAAa;AAAA,IAC7C,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EACX;AACF;AAcA,eAAsB,sBACpB,MACkB;AAClB,QAAM,WAAW,KAAK,SAAS,KAAK,EAAE,YAAY;AAClD,QAAM,YAAY,KAAK,UAAU,KAAK;AACtC,MAAI,CAAC,YAAY,CAAC,WAAW;AAC3B,WAAO;AAAA,EACT;AACA,QAAM,UAAU,2BAA2B,KAAK,OAAO;AACvD,QAAM,UAAU,MAAM,QAAQ,WAAW,UAAU,SAAS;AAC5D,MAAI,CAAC,SAAS;AACZ,WAAO;AAAA,EACT;AACA,SAAO,sBAAsB,kBAAkB,OAAO,GAAG,KAAK,QAAQ;AACxE;AAOO,SAAS,0BACd,UACA,UACA,UAAyD;AAAA,EACvD,UAAU;AACZ,GACoB;AACpB,QAAM,UAA8B,CAAC;AACrC,MAAI,WAAW;AACf,aAAW,WAAW,UAAU;AAC9B,UAAM,UAAU,kBAAkB,OAAO;AACzC,QAAI,sBAAsB,SAAS,QAAQ,GAAG;AAC5C,cAAQ,KAAK,OAAO;AAAA,IACtB,OAAO;AACL,kBAAY;AAAA,IACd;AAAA,EACF;AACA,MAAI,WAAW,GAAG;AAChB,WAAO;AAAA,MACL,6BAA6B,QAAQ,yBAAyB,QAAQ,QAAQ,iBAAiB,QAAQ;AAAA,IACzG;AAAA,EACF;AACA,SAAO;AACT;AAEO,MAAM,+BAA+B;AAMrC,SAAS,oBAAoB,SAA+B;AACjE,SAAO,YAAY,wBACf,+BACA,cAAc,OAAO;AAC3B;","names":[]}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Redact PII / secrets from arbitrary nested values before they land in
3
+ * audit-event payloads or error logs.
4
+ *
5
+ * The redactor walks the value depth-first and replaces any string assigned
6
+ * to a sensitive key with a redaction token. Email-looking substrings are also
7
+ * redacted in otherwise non-sensitive strings so audit context remains useful
8
+ * without leaking arbitrary addresses. Long subjects / bodies are truncated to
9
+ * a fixed prefix after PII redaction so an audit trail still has enough context
10
+ * to debug, but cannot be used to leak the full message body.
11
+ *
12
+ * Sensitive key names (matched case-insensitively, exact name OR substring
13
+ * for the obvious credential terms):
14
+ *
15
+ * - body, snippet, subject, fromEmail, toList, to, from, email
16
+ * - password, token, secret, apiKey, authorization
17
+ */
18
+ interface RedactOptions {
19
+ readonly subjectPreview?: number;
20
+ readonly bodyPreview?: number;
21
+ }
22
+ /**
23
+ * Redact a value (object, array, or primitive) for safe inclusion in audit
24
+ * events or log lines. Strings under sensitive keys are replaced with a
25
+ * redaction token; subjects/bodies are truncated.
26
+ *
27
+ * The function is non-mutating — callers receive a fresh structure and the
28
+ * input value is left intact.
29
+ */
30
+ export declare function redactSensitiveData<T>(value: T, opts?: RedactOptions): T;
31
+ export {};
32
+ //# sourceMappingURL=redact-sensitive-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redact-sensitive-data.d.ts","sourceRoot":"","sources":["../../src/lifeops/redact-sensitive-data.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAoCH,UAAU,aAAa;IACrB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAkFD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,GAAE,aAAkB,GAAG,CAAC,CAE5E"}
@@ -0,0 +1,98 @@
1
+ const REDACTED = "[REDACTED]";
2
+ const REDACTED_EMAIL = "[REDACTED_EMAIL]";
3
+ const DEFAULT_SUBJECT_PREVIEW = 20;
4
+ const DEFAULT_BODY_PREVIEW = 30;
5
+ const EMAIL_ADDRESS_PATTERN = /\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b/gi;
6
+ const FULL_REDACT_KEYS = /* @__PURE__ */ new Set([
7
+ "password",
8
+ "token",
9
+ "secret",
10
+ "apikey",
11
+ "api_key",
12
+ "authorization"
13
+ ]);
14
+ const EMAIL_LIKE_KEYS = /* @__PURE__ */ new Set([
15
+ "fromemail",
16
+ "tolist",
17
+ "to",
18
+ "from",
19
+ "email",
20
+ "cc",
21
+ "bcc",
22
+ "ccemail",
23
+ "bccemail",
24
+ "replyto"
25
+ ]);
26
+ const SUBJECT_KEYS = /* @__PURE__ */ new Set(["subject"]);
27
+ const BODY_KEYS = /* @__PURE__ */ new Set(["body", "bodytext", "snippet", "preview"]);
28
+ const FULL_REDACT_SUBSTRINGS = ["password", "secret", "apikey", "token"];
29
+ function isFullRedactKey(normalizedKey) {
30
+ if (FULL_REDACT_KEYS.has(normalizedKey)) return true;
31
+ for (const needle of FULL_REDACT_SUBSTRINGS) {
32
+ if (normalizedKey.includes(needle)) return true;
33
+ }
34
+ return false;
35
+ }
36
+ function shortenSubject(value, max) {
37
+ if (value.length <= max) return value;
38
+ return `${value.slice(0, max).trimEnd()}\u2026`;
39
+ }
40
+ function shortenBody(value, max) {
41
+ if (value.length <= max) return value;
42
+ return `${value.slice(0, max).trimEnd()}\u2026 [+${value.length - max} chars]`;
43
+ }
44
+ function redactEmailAddresses(value) {
45
+ return value.replace(EMAIL_ADDRESS_PATTERN, REDACTED_EMAIL);
46
+ }
47
+ function redactString(rawKey, value, opts) {
48
+ const key = rawKey.toLowerCase();
49
+ if (isFullRedactKey(key)) {
50
+ return REDACTED;
51
+ }
52
+ if (EMAIL_LIKE_KEYS.has(key)) {
53
+ return REDACTED;
54
+ }
55
+ const valueWithoutEmails = redactEmailAddresses(value);
56
+ if (SUBJECT_KEYS.has(key)) {
57
+ return shortenSubject(
58
+ valueWithoutEmails,
59
+ opts.subjectPreview ?? DEFAULT_SUBJECT_PREVIEW
60
+ );
61
+ }
62
+ if (BODY_KEYS.has(key)) {
63
+ return shortenBody(
64
+ valueWithoutEmails,
65
+ opts.bodyPreview ?? DEFAULT_BODY_PREVIEW
66
+ );
67
+ }
68
+ return valueWithoutEmails;
69
+ }
70
+ function redactValue(rawKey, value, opts, seen) {
71
+ if (value === null || value === void 0) return value;
72
+ if (typeof value === "string") {
73
+ return redactString(rawKey, value, opts);
74
+ }
75
+ if (Array.isArray(value)) {
76
+ if (seen.has(value)) return "[Circular]";
77
+ seen.add(value);
78
+ return value.map((entry) => redactValue(rawKey, entry, opts, seen));
79
+ }
80
+ if (typeof value === "object") {
81
+ const obj = value;
82
+ if (seen.has(obj)) return "[Circular]";
83
+ seen.add(obj);
84
+ const out = {};
85
+ for (const [k, v] of Object.entries(obj)) {
86
+ out[k] = redactValue(k, v, opts, seen);
87
+ }
88
+ return out;
89
+ }
90
+ return value;
91
+ }
92
+ function redactSensitiveData(value, opts = {}) {
93
+ return redactValue("", value, opts, /* @__PURE__ */ new WeakSet());
94
+ }
95
+ export {
96
+ redactSensitiveData
97
+ };
98
+ //# sourceMappingURL=redact-sensitive-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lifeops/redact-sensitive-data.ts"],"sourcesContent":["/**\n * Redact PII / secrets from arbitrary nested values before they land in\n * audit-event payloads or error logs.\n *\n * The redactor walks the value depth-first and replaces any string assigned\n * to a sensitive key with a redaction token. Email-looking substrings are also\n * redacted in otherwise non-sensitive strings so audit context remains useful\n * without leaking arbitrary addresses. Long subjects / bodies are truncated to\n * a fixed prefix after PII redaction so an audit trail still has enough context\n * to debug, but cannot be used to leak the full message body.\n *\n * Sensitive key names (matched case-insensitively, exact name OR substring\n * for the obvious credential terms):\n *\n * - body, snippet, subject, fromEmail, toList, to, from, email\n * - password, token, secret, apiKey, authorization\n */\n\nconst REDACTED = \"[REDACTED]\";\nconst REDACTED_EMAIL = \"[REDACTED_EMAIL]\";\nconst DEFAULT_SUBJECT_PREVIEW = 20;\nconst DEFAULT_BODY_PREVIEW = 30;\nconst EMAIL_ADDRESS_PATTERN = /\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,}\\b/gi;\n\nconst FULL_REDACT_KEYS = new Set([\n \"password\",\n \"token\",\n \"secret\",\n \"apikey\",\n \"api_key\",\n \"authorization\",\n]);\n\nconst EMAIL_LIKE_KEYS = new Set([\n \"fromemail\",\n \"tolist\",\n \"to\",\n \"from\",\n \"email\",\n \"cc\",\n \"bcc\",\n \"ccemail\",\n \"bccemail\",\n \"replyto\",\n]);\n\nconst SUBJECT_KEYS = new Set([\"subject\"]);\nconst BODY_KEYS = new Set([\"body\", \"bodytext\", \"snippet\", \"preview\"]);\n\n/** Substring match for credential-ish keys we always want fully redacted. */\nconst FULL_REDACT_SUBSTRINGS = [\"password\", \"secret\", \"apikey\", \"token\"];\n\ninterface RedactOptions {\n readonly subjectPreview?: number;\n readonly bodyPreview?: number;\n}\n\nfunction isFullRedactKey(normalizedKey: string): boolean {\n if (FULL_REDACT_KEYS.has(normalizedKey)) return true;\n for (const needle of FULL_REDACT_SUBSTRINGS) {\n if (normalizedKey.includes(needle)) return true;\n }\n return false;\n}\n\nfunction shortenSubject(value: string, max: number): string {\n if (value.length <= max) return value;\n return `${value.slice(0, max).trimEnd()}…`;\n}\n\nfunction shortenBody(value: string, max: number): string {\n if (value.length <= max) return value;\n return `${value.slice(0, max).trimEnd()}… [+${value.length - max} chars]`;\n}\n\nfunction redactEmailAddresses(value: string): string {\n return value.replace(EMAIL_ADDRESS_PATTERN, REDACTED_EMAIL);\n}\n\nfunction redactString(\n rawKey: string,\n value: string,\n opts: RedactOptions,\n): string {\n const key = rawKey.toLowerCase();\n if (isFullRedactKey(key)) {\n return REDACTED;\n }\n if (EMAIL_LIKE_KEYS.has(key)) {\n return REDACTED;\n }\n const valueWithoutEmails = redactEmailAddresses(value);\n if (SUBJECT_KEYS.has(key)) {\n return shortenSubject(\n valueWithoutEmails,\n opts.subjectPreview ?? DEFAULT_SUBJECT_PREVIEW,\n );\n }\n if (BODY_KEYS.has(key)) {\n return shortenBody(\n valueWithoutEmails,\n opts.bodyPreview ?? DEFAULT_BODY_PREVIEW,\n );\n }\n return valueWithoutEmails;\n}\n\nfunction redactValue(\n rawKey: string,\n value: unknown,\n opts: RedactOptions,\n seen: WeakSet<object>,\n): unknown {\n if (value === null || value === undefined) return value;\n if (typeof value === \"string\") {\n return redactString(rawKey, value, opts);\n }\n if (Array.isArray(value)) {\n if (seen.has(value)) return \"[Circular]\";\n seen.add(value);\n // Arrays use the parent key for redaction context (e.g. `toList: [...]`).\n return value.map((entry) => redactValue(rawKey, entry, opts, seen));\n }\n if (typeof value === \"object\") {\n const obj = value as Record<string, unknown>;\n if (seen.has(obj)) return \"[Circular]\";\n seen.add(obj);\n const out: Record<string, unknown> = {};\n for (const [k, v] of Object.entries(obj)) {\n out[k] = redactValue(k, v, opts, seen);\n }\n return out;\n }\n // numbers / booleans / bigint / symbol — pass through unchanged.\n return value;\n}\n\n/**\n * Redact a value (object, array, or primitive) for safe inclusion in audit\n * events or log lines. Strings under sensitive keys are replaced with a\n * redaction token; subjects/bodies are truncated.\n *\n * The function is non-mutating — callers receive a fresh structure and the\n * input value is left intact.\n */\nexport function redactSensitiveData<T>(value: T, opts: RedactOptions = {}): T {\n return redactValue(\"\", value, opts, new WeakSet()) as T;\n}\n"],"mappings":"AAkBA,MAAM,WAAW;AACjB,MAAM,iBAAiB;AACvB,MAAM,0BAA0B;AAChC,MAAM,uBAAuB;AAC7B,MAAM,wBAAwB;AAE9B,MAAM,mBAAmB,oBAAI,IAAI;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAED,MAAM,kBAAkB,oBAAI,IAAI;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAED,MAAM,eAAe,oBAAI,IAAI,CAAC,SAAS,CAAC;AACxC,MAAM,YAAY,oBAAI,IAAI,CAAC,QAAQ,YAAY,WAAW,SAAS,CAAC;AAGpE,MAAM,yBAAyB,CAAC,YAAY,UAAU,UAAU,OAAO;AAOvE,SAAS,gBAAgB,eAAgC;AACvD,MAAI,iBAAiB,IAAI,aAAa,EAAG,QAAO;AAChD,aAAW,UAAU,wBAAwB;AAC3C,QAAI,cAAc,SAAS,MAAM,EAAG,QAAO;AAAA,EAC7C;AACA,SAAO;AACT;AAEA,SAAS,eAAe,OAAe,KAAqB;AAC1D,MAAI,MAAM,UAAU,IAAK,QAAO;AAChC,SAAO,GAAG,MAAM,MAAM,GAAG,GAAG,EAAE,QAAQ,CAAC;AACzC;AAEA,SAAS,YAAY,OAAe,KAAqB;AACvD,MAAI,MAAM,UAAU,IAAK,QAAO;AAChC,SAAO,GAAG,MAAM,MAAM,GAAG,GAAG,EAAE,QAAQ,CAAC,YAAO,MAAM,SAAS,GAAG;AAClE;AAEA,SAAS,qBAAqB,OAAuB;AACnD,SAAO,MAAM,QAAQ,uBAAuB,cAAc;AAC5D;AAEA,SAAS,aACP,QACA,OACA,MACQ;AACR,QAAM,MAAM,OAAO,YAAY;AAC/B,MAAI,gBAAgB,GAAG,GAAG;AACxB,WAAO;AAAA,EACT;AACA,MAAI,gBAAgB,IAAI,GAAG,GAAG;AAC5B,WAAO;AAAA,EACT;AACA,QAAM,qBAAqB,qBAAqB,KAAK;AACrD,MAAI,aAAa,IAAI,GAAG,GAAG;AACzB,WAAO;AAAA,MACL;AAAA,MACA,KAAK,kBAAkB;AAAA,IACzB;AAAA,EACF;AACA,MAAI,UAAU,IAAI,GAAG,GAAG;AACtB,WAAO;AAAA,MACL;AAAA,MACA,KAAK,eAAe;AAAA,IACtB;AAAA,EACF;AACA,SAAO;AACT;AAEA,SAAS,YACP,QACA,OACA,MACA,MACS;AACT,MAAI,UAAU,QAAQ,UAAU,OAAW,QAAO;AAClD,MAAI,OAAO,UAAU,UAAU;AAC7B,WAAO,aAAa,QAAQ,OAAO,IAAI;AAAA,EACzC;AACA,MAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,QAAI,KAAK,IAAI,KAAK,EAAG,QAAO;AAC5B,SAAK,IAAI,KAAK;AAEd,WAAO,MAAM,IAAI,CAAC,UAAU,YAAY,QAAQ,OAAO,MAAM,IAAI,CAAC;AAAA,EACpE;AACA,MAAI,OAAO,UAAU,UAAU;AAC7B,UAAM,MAAM;AACZ,QAAI,KAAK,IAAI,GAAG,EAAG,QAAO;AAC1B,SAAK,IAAI,GAAG;AACZ,UAAM,MAA+B,CAAC;AACtC,eAAW,CAAC,GAAG,CAAC,KAAK,OAAO,QAAQ,GAAG,GAAG;AACxC,UAAI,CAAC,IAAI,YAAY,GAAG,GAAG,MAAM,IAAI;AAAA,IACvC;AACA,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAUO,SAAS,oBAAuB,OAAU,OAAsB,CAAC,GAAM;AAC5E,SAAO,YAAY,IAAI,OAAO,MAAM,oBAAI,QAAQ,CAAC;AACnD;","names":[]}