@elizaos/agent 2.0.0-alpha.441 → 2.0.0-alpha.501

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 (980) hide show
  1. package/apps/app-companion/src/components/companion/CompanionAppView.d.ts.map +1 -1
  2. package/apps/app-companion/src/components/companion/CompanionAppView.js +6 -2
  3. package/apps/app-companion/src/components/companion/CompanionHeader.d.ts +3 -1
  4. package/apps/app-companion/src/components/companion/CompanionHeader.d.ts.map +1 -1
  5. package/apps/app-companion/src/components/companion/CompanionHeader.js +8 -2
  6. package/apps/app-companion/src/components/companion/CompanionPerformanceSettings.d.ts +2 -0
  7. package/apps/app-companion/src/components/companion/CompanionPerformanceSettings.d.ts.map +1 -0
  8. package/apps/app-companion/src/components/companion/CompanionPerformanceSettings.js +33 -0
  9. package/apps/app-companion/src/components/companion/CompanionSettingsPanel.d.ts +2 -0
  10. package/apps/app-companion/src/components/companion/CompanionSettingsPanel.d.ts.map +1 -0
  11. package/apps/app-companion/src/components/companion/CompanionSettingsPanel.js +7 -0
  12. package/apps/app-companion/src/components/companion/CompanionShell.d.ts.map +1 -1
  13. package/apps/app-companion/src/components/companion/CompanionShell.js +1 -1
  14. package/apps/app-companion/src/components/companion/CompanionView.d.ts.map +1 -1
  15. package/apps/app-companion/src/components/companion/CompanionView.js +6 -2
  16. package/apps/app-companion/src/types/render-modes.d.ts +4 -0
  17. package/apps/app-companion/src/types/render-modes.d.ts.map +1 -0
  18. package/apps/app-companion/src/types/render-modes.js +6 -0
  19. package/apps/app-elizamaker/src/drop-routes.d.ts.map +1 -1
  20. package/apps/app-elizamaker/src/drop-service.d.ts +1 -1
  21. package/apps/app-elizamaker/src/drop-service.d.ts.map +1 -1
  22. package/apps/app-elizamaker/src/og-tracker.d.ts.map +1 -1
  23. package/apps/app-elizamaker/src/og-tracker.js +1 -1
  24. package/apps/app-elizamaker/src/twitter-verify.js +1 -1
  25. package/apps/app-lifeops/src/actions/website-blocker.d.ts.map +1 -1
  26. package/apps/app-lifeops/src/actions/website-blocker.js +18 -16
  27. package/apps/app-lifeops/src/api/client-lifeops.d.ts +37 -75
  28. package/apps/app-lifeops/src/api/client-lifeops.d.ts.map +1 -1
  29. package/apps/app-lifeops/src/api/client-lifeops.js +119 -0
  30. package/apps/app-lifeops/src/inbox/channel-deep-links.d.ts +2 -4
  31. package/apps/app-lifeops/src/inbox/channel-deep-links.d.ts.map +1 -1
  32. package/apps/app-lifeops/src/inbox/channel-deep-links.js +8 -38
  33. package/apps/app-lifeops/src/inbox/message-fetcher.d.ts +1 -1
  34. package/apps/app-lifeops/src/inbox/message-fetcher.d.ts.map +1 -1
  35. package/apps/app-lifeops/src/inbox/message-fetcher.js +180 -77
  36. package/apps/app-lifeops/src/inbox/types.d.ts +1 -1
  37. package/apps/app-lifeops/src/inbox/types.d.ts.map +1 -1
  38. package/apps/app-lifeops/src/lifeops/browser-extension-store.d.ts.map +1 -1
  39. package/apps/app-lifeops/src/lifeops/browser-readiness.d.ts +16 -0
  40. package/apps/app-lifeops/src/lifeops/browser-readiness.d.ts.map +1 -0
  41. package/apps/app-lifeops/src/lifeops/browser-readiness.js +74 -0
  42. package/apps/app-lifeops/src/lifeops/browser-session-lifecycle.d.ts.map +1 -1
  43. package/apps/app-lifeops/src/lifeops/browser-session-lifecycle.js +1 -1
  44. package/apps/app-lifeops/src/lifeops/checkin/checkin-service.d.ts.map +1 -1
  45. package/apps/app-lifeops/src/lifeops/defaults.d.ts +1 -1
  46. package/apps/app-lifeops/src/lifeops/defaults.d.ts.map +1 -1
  47. package/apps/app-lifeops/src/lifeops/discord-desktop-cdp.d.ts +16 -0
  48. package/apps/app-lifeops/src/lifeops/discord-desktop-cdp.d.ts.map +1 -1
  49. package/apps/app-lifeops/src/lifeops/discord-desktop-cdp.js +217 -1
  50. package/apps/app-lifeops/src/lifeops/email-unsubscribe-gmail.d.ts.map +1 -1
  51. package/apps/app-lifeops/src/lifeops/email-unsubscribe-gmail.js +8 -3
  52. package/apps/app-lifeops/src/lifeops/feature-flags.types.d.ts.map +1 -1
  53. package/apps/app-lifeops/src/lifeops/goal-semantic-evaluator.js +1 -1
  54. package/apps/app-lifeops/src/lifeops/google-calendar.d.ts.map +1 -1
  55. package/apps/app-lifeops/src/lifeops/google-calendar.js +24 -31
  56. package/apps/app-lifeops/src/lifeops/google-drive.d.ts.map +1 -1
  57. package/apps/app-lifeops/src/lifeops/google-drive.js +7 -1
  58. package/apps/app-lifeops/src/lifeops/google-fetch.d.ts +1 -1
  59. package/apps/app-lifeops/src/lifeops/google-fetch.d.ts.map +1 -1
  60. package/apps/app-lifeops/src/lifeops/google-fetch.js +4 -6
  61. package/apps/app-lifeops/src/lifeops/google-gmail.d.ts.map +1 -1
  62. package/apps/app-lifeops/src/lifeops/google-gmail.js +50 -34
  63. package/apps/app-lifeops/src/lifeops/health-bridge.d.ts.map +1 -1
  64. package/apps/app-lifeops/src/lifeops/health-bridge.js +53 -10
  65. package/apps/app-lifeops/src/lifeops/health-connectors.d.ts +23 -0
  66. package/apps/app-lifeops/src/lifeops/health-connectors.d.ts.map +1 -0
  67. package/apps/app-lifeops/src/lifeops/health-connectors.js +962 -0
  68. package/apps/app-lifeops/src/lifeops/health-oauth.d.ts +62 -0
  69. package/apps/app-lifeops/src/lifeops/health-oauth.d.ts.map +1 -0
  70. package/apps/app-lifeops/src/lifeops/health-oauth.js +496 -0
  71. package/apps/app-lifeops/src/lifeops/payment-csv-import.d.ts.map +1 -1
  72. package/apps/app-lifeops/src/lifeops/payment-csv-import.js +1 -5
  73. package/apps/app-lifeops/src/lifeops/payment-recurrence.d.ts.map +1 -1
  74. package/apps/app-lifeops/src/lifeops/payment-recurrence.js +2 -1
  75. package/apps/app-lifeops/src/lifeops/payment-types.d.ts +8 -7
  76. package/apps/app-lifeops/src/lifeops/payment-types.d.ts.map +1 -1
  77. package/apps/app-lifeops/src/lifeops/priority-scoring.d.ts.map +1 -1
  78. package/apps/app-lifeops/src/lifeops/repository.d.ts +46 -10
  79. package/apps/app-lifeops/src/lifeops/repository.d.ts.map +1 -1
  80. package/apps/app-lifeops/src/lifeops/repository.js +683 -65
  81. package/apps/app-lifeops/src/lifeops/schedule-insight.d.ts.map +1 -1
  82. package/apps/app-lifeops/src/lifeops/schedule-insight.js +2 -3
  83. package/apps/app-lifeops/src/lifeops/schema.d.ts +6403 -3831
  84. package/apps/app-lifeops/src/lifeops/schema.d.ts.map +1 -1
  85. package/apps/app-lifeops/src/lifeops/schema.js +105 -18
  86. package/apps/app-lifeops/src/lifeops/seed-routines.d.ts +1 -1
  87. package/apps/app-lifeops/src/lifeops/seed-routines.d.ts.map +1 -1
  88. package/apps/app-lifeops/src/lifeops/seed-routines.js +7 -2
  89. package/apps/app-lifeops/src/lifeops/service-constants.d.ts +15 -0
  90. package/apps/app-lifeops/src/lifeops/service-constants.d.ts.map +1 -1
  91. package/apps/app-lifeops/src/lifeops/service-constants.js +21 -3
  92. package/apps/app-lifeops/src/lifeops/service-helpers-browser.d.ts +1 -1
  93. package/apps/app-lifeops/src/lifeops/service-helpers-browser.d.ts.map +1 -1
  94. package/apps/app-lifeops/src/lifeops/service-helpers-browser.js +1 -1
  95. package/apps/app-lifeops/src/lifeops/service-helpers-misc.d.ts.map +1 -1
  96. package/apps/app-lifeops/src/lifeops/service-helpers-misc.js +5 -5
  97. package/apps/app-lifeops/src/lifeops/service-helpers-occurrence.d.ts.map +1 -1
  98. package/apps/app-lifeops/src/lifeops/service-helpers-occurrence.js +1 -1
  99. package/apps/app-lifeops/src/lifeops/service-helpers-reminder.d.ts +48 -1
  100. package/apps/app-lifeops/src/lifeops/service-helpers-reminder.d.ts.map +1 -1
  101. package/apps/app-lifeops/src/lifeops/service-helpers-reminder.js +191 -17
  102. package/apps/app-lifeops/src/lifeops/service-mixin-browser.d.ts.map +1 -1
  103. package/apps/app-lifeops/src/lifeops/service-mixin-browser.js +10 -7
  104. package/apps/app-lifeops/src/lifeops/service-mixin-calendar.d.ts.map +1 -1
  105. package/apps/app-lifeops/src/lifeops/service-mixin-calendar.js +4 -11
  106. package/apps/app-lifeops/src/lifeops/service-mixin-core.d.ts.map +1 -1
  107. package/apps/app-lifeops/src/lifeops/service-mixin-core.js +5 -2
  108. package/apps/app-lifeops/src/lifeops/service-mixin-definitions.d.ts.map +1 -1
  109. package/apps/app-lifeops/src/lifeops/service-mixin-definitions.js +7 -6
  110. package/apps/app-lifeops/src/lifeops/service-mixin-discord.js +237 -32
  111. package/apps/app-lifeops/src/lifeops/service-mixin-drive.d.ts.map +1 -1
  112. package/apps/app-lifeops/src/lifeops/service-mixin-drive.js +6 -5
  113. package/apps/app-lifeops/src/lifeops/service-mixin-gmail.d.ts.map +1 -1
  114. package/apps/app-lifeops/src/lifeops/service-mixin-gmail.js +86 -31
  115. package/apps/app-lifeops/src/lifeops/service-mixin-goals.d.ts.map +1 -1
  116. package/apps/app-lifeops/src/lifeops/service-mixin-goals.js +14 -15
  117. package/apps/app-lifeops/src/lifeops/service-mixin-google.d.ts.map +1 -1
  118. package/apps/app-lifeops/src/lifeops/service-mixin-google.js +71 -51
  119. package/apps/app-lifeops/src/lifeops/service-mixin-health.js +528 -1
  120. package/apps/app-lifeops/src/lifeops/service-mixin-imessage.d.ts.map +1 -1
  121. package/apps/app-lifeops/src/lifeops/service-mixin-imessage.js +94 -6
  122. package/apps/app-lifeops/src/lifeops/service-mixin-inbox.d.ts.map +1 -1
  123. package/apps/app-lifeops/src/lifeops/service-mixin-inbox.js +9 -0
  124. package/apps/app-lifeops/src/lifeops/service-mixin-payments.d.ts +3 -0
  125. package/apps/app-lifeops/src/lifeops/service-mixin-payments.d.ts.map +1 -1
  126. package/apps/app-lifeops/src/lifeops/service-mixin-payments.js +93 -26
  127. package/apps/app-lifeops/src/lifeops/service-mixin-reminders.d.ts.map +1 -1
  128. package/apps/app-lifeops/src/lifeops/service-mixin-reminders.js +331 -167
  129. package/apps/app-lifeops/src/lifeops/service-mixin-scheduling.js +5 -10
  130. package/apps/app-lifeops/src/lifeops/service-mixin-screentime.js +372 -10
  131. package/apps/app-lifeops/src/lifeops/service-mixin-signal.js +179 -43
  132. package/apps/app-lifeops/src/lifeops/service-mixin-sleep.js +31 -1
  133. package/apps/app-lifeops/src/lifeops/service-mixin-status.d.ts.map +1 -1
  134. package/apps/app-lifeops/src/lifeops/service-mixin-status.js +82 -13
  135. package/apps/app-lifeops/src/lifeops/service-mixin-subscriptions.js +1 -1
  136. package/apps/app-lifeops/src/lifeops/service-mixin-telegram.js +59 -12
  137. package/apps/app-lifeops/src/lifeops/service-mixin-whatsapp.js +165 -22
  138. package/apps/app-lifeops/src/lifeops/service-mixin-workflows.d.ts.map +1 -1
  139. package/apps/app-lifeops/src/lifeops/service-mixin-workflows.js +3 -0
  140. package/apps/app-lifeops/src/lifeops/service-normalize-calendar.d.ts.map +1 -1
  141. package/apps/app-lifeops/src/lifeops/service-normalize-calendar.js +4 -4
  142. package/apps/app-lifeops/src/lifeops/service-normalize-gmail.d.ts +3 -1
  143. package/apps/app-lifeops/src/lifeops/service-normalize-gmail.d.ts.map +1 -1
  144. package/apps/app-lifeops/src/lifeops/service-normalize-gmail.js +5 -3
  145. package/apps/app-lifeops/src/lifeops/service-normalize-health.d.ts.map +1 -1
  146. package/apps/app-lifeops/src/lifeops/service-normalize-health.js +4 -3
  147. package/apps/app-lifeops/src/lifeops/service-normalize-task.d.ts.map +1 -1
  148. package/apps/app-lifeops/src/lifeops/service-normalize-task.js +10 -1
  149. package/apps/app-lifeops/src/lifeops/service-normalize.d.ts.map +1 -1
  150. package/apps/app-lifeops/src/lifeops/service-normalize.js +3 -3
  151. package/apps/app-lifeops/src/lifeops/service-types.d.ts +1 -1
  152. package/apps/app-lifeops/src/lifeops/service-types.d.ts.map +1 -1
  153. package/apps/app-lifeops/src/lifeops/service.d.ts +92 -166
  154. package/apps/app-lifeops/src/lifeops/service.d.ts.map +1 -1
  155. package/apps/app-lifeops/src/lifeops/service.js +2 -2
  156. package/apps/app-lifeops/src/lifeops/signal-auth.d.ts +7 -0
  157. package/apps/app-lifeops/src/lifeops/signal-auth.d.ts.map +1 -1
  158. package/apps/app-lifeops/src/lifeops/signal-auth.js +50 -6
  159. package/apps/app-lifeops/src/lifeops/signal-local-client.d.ts +7 -0
  160. package/apps/app-lifeops/src/lifeops/signal-local-client.d.ts.map +1 -1
  161. package/apps/app-lifeops/src/lifeops/signal-local-client.js +95 -4
  162. package/apps/app-lifeops/src/lifeops/sleep-cycle.d.ts +7 -1
  163. package/apps/app-lifeops/src/lifeops/sleep-cycle.d.ts.map +1 -1
  164. package/apps/app-lifeops/src/lifeops/sleep-cycle.js +16 -6
  165. package/apps/app-lifeops/src/lifeops/sleep-episode-store.d.ts +2 -1
  166. package/apps/app-lifeops/src/lifeops/sleep-episode-store.d.ts.map +1 -1
  167. package/apps/app-lifeops/src/lifeops/sleep-episode-store.js +7 -3
  168. package/apps/app-lifeops/src/lifeops/social-taxonomy.d.ts.map +1 -1
  169. package/apps/app-lifeops/src/lifeops/social-taxonomy.js +68 -16
  170. package/apps/app-lifeops/src/lifeops/subscriptions-playbooks.d.ts.map +1 -1
  171. package/apps/app-lifeops/src/lifeops/subscriptions-playbooks.js +24 -14
  172. package/apps/app-lifeops/src/lifeops/subscriptions-types.d.ts.map +1 -1
  173. package/apps/app-lifeops/src/lifeops/telegram-auth.d.ts +8 -1
  174. package/apps/app-lifeops/src/lifeops/telegram-auth.d.ts.map +1 -1
  175. package/apps/app-lifeops/src/lifeops/telegram-auth.js +44 -5
  176. package/apps/app-lifeops/src/lifeops/telegram-local-client.d.ts +1 -0
  177. package/apps/app-lifeops/src/lifeops/telegram-local-client.d.ts.map +1 -1
  178. package/apps/app-lifeops/src/lifeops/telegram-local-client.js +141 -7
  179. package/apps/app-lifeops/src/lifeops/twilio.d.ts.map +1 -1
  180. package/apps/app-lifeops/src/lifeops/twilio.js +3 -1
  181. package/apps/app-lifeops/src/lifeops/whatsapp-client.d.ts.map +1 -1
  182. package/apps/app-lifeops/src/lifeops/whatsapp-client.js +7 -4
  183. package/apps/app-lifeops/src/lifeops/x-poster.d.ts.map +1 -1
  184. package/apps/app-lifeops/src/lifeops/x-poster.js +3 -1
  185. package/apps/app-lifeops/src/lifeops/x-reader.d.ts.map +1 -1
  186. package/apps/app-lifeops/src/lifeops/x-reader.js +10 -3
  187. package/apps/app-lifeops/src/providers/website-blocker.js +2 -2
  188. package/apps/app-lifeops/src/public.d.ts +2 -2
  189. package/apps/app-lifeops/src/public.d.ts.map +1 -1
  190. package/apps/app-lifeops/src/public.js +2 -2
  191. package/apps/app-lifeops/src/routes/lifeops-routes.d.ts.map +1 -1
  192. package/apps/app-lifeops/src/routes/lifeops-routes.js +327 -92
  193. package/apps/app-lifeops/src/routes/plugin.d.ts.map +1 -1
  194. package/apps/app-lifeops/src/routes/plugin.js +79 -50
  195. package/apps/app-lifeops/src/routes/sleep-routes.d.ts.map +1 -1
  196. package/apps/app-lifeops/src/website-blocker/access.d.ts +1 -1
  197. package/apps/app-lifeops/src/website-blocker/access.d.ts.map +1 -1
  198. package/apps/app-lifeops/src/website-blocker/access.js +13 -9
  199. package/apps/app-lifeops/src/website-blocker/engine.d.ts.map +1 -1
  200. package/apps/app-lifeops/src/website-blocker/engine.js +23 -2
  201. package/apps/app-lifeops/src/website-blocker/public.d.ts +4 -4
  202. package/apps/app-lifeops/src/website-blocker/public.d.ts.map +1 -1
  203. package/apps/app-lifeops/src/website-blocker/public.js +2 -2
  204. package/apps/app-lifeops/src/website-blocker/roles.d.ts +2 -4
  205. package/apps/app-lifeops/src/website-blocker/roles.d.ts.map +1 -1
  206. package/apps/app-lifeops/src/website-blocker/roles.js +1 -4
  207. package/apps/app-steward/src/actions/check-balance.d.ts.map +1 -1
  208. package/apps/app-steward/src/actions/wallet-action-shared.d.ts.map +1 -1
  209. package/apps/app-steward/src/actions/wallet-action-shared.js +1 -1
  210. package/apps/app-steward/src/api/wallet-evm-balance.d.ts.map +1 -1
  211. package/apps/app-steward/src/browser-workspace-wallet.d.ts +15 -1
  212. package/apps/app-steward/src/browser-workspace-wallet.d.ts.map +1 -1
  213. package/apps/app-steward/src/browser-workspace-wallet.js +7 -1
  214. package/apps/app-steward/src/index.d.ts +4 -4
  215. package/apps/app-steward/src/index.d.ts.map +1 -1
  216. package/apps/app-steward/src/index.js +4 -4
  217. package/apps/app-steward/src/routes/steward-bridge.d.ts.map +1 -1
  218. package/apps/app-steward/src/routes/steward-bridge.js +1 -1
  219. package/apps/app-steward/src/routes/wallet-browser-compat-routes.d.ts.map +1 -1
  220. package/apps/app-steward/src/routes/wallet-browser-compat-routes.js +88 -1
  221. package/apps/app-training/src/backends/atropos.d.ts.map +1 -1
  222. package/apps/app-training/src/backends/atropos.js +2 -2
  223. package/apps/app-training/src/backends/native.d.ts +1 -1
  224. package/apps/app-training/src/backends/native.d.ts.map +1 -1
  225. package/apps/app-training/src/backends/tinker.d.ts.map +1 -1
  226. package/apps/app-training/src/core/index.d.ts +5 -5
  227. package/apps/app-training/src/core/index.d.ts.map +1 -1
  228. package/apps/app-training/src/core/index.js +4 -4
  229. package/apps/app-training/src/core/privacy-filter.d.ts.map +1 -1
  230. package/apps/app-training/src/core/training-orchestrator.d.ts.map +1 -1
  231. package/apps/app-training/src/optimizers/bootstrap-fewshot.d.ts.map +1 -1
  232. package/apps/app-training/src/optimizers/bootstrap-fewshot.js +7 -3
  233. package/apps/app-training/src/optimizers/index.d.ts +4 -4
  234. package/apps/app-training/src/optimizers/index.d.ts.map +1 -1
  235. package/apps/app-training/src/optimizers/index.js +2 -2
  236. package/apps/app-training/src/optimizers/instruction-search.d.ts.map +1 -1
  237. package/apps/app-training/src/optimizers/instruction-search.js +6 -1
  238. package/apps/app-training/src/optimizers/prompt-evolution.d.ts.map +1 -1
  239. package/apps/app-training/src/optimizers/prompt-evolution.js +6 -1
  240. package/apps/app-training/src/optimizers/scoring.d.ts +5 -7
  241. package/apps/app-training/src/optimizers/scoring.d.ts.map +1 -1
  242. package/apps/app-training/src/optimizers/types.d.ts.map +1 -1
  243. package/apps/app-training/src/routes/index.d.ts +1 -1
  244. package/apps/app-training/src/routes/index.d.ts.map +1 -1
  245. package/apps/app-training/src/routes/index.js +1 -1
  246. package/apps/app-training/src/services/index.d.ts +3 -3
  247. package/apps/app-training/src/services/index.d.ts.map +1 -1
  248. package/apps/app-training/src/services/index.js +2 -2
  249. package/apps/app-training/src/services/training-trigger.d.ts.map +1 -1
  250. package/package.json +4 -4
  251. package/packages/agent/src/actions/browser-session.d.ts.map +1 -1
  252. package/packages/agent/src/actions/browser-session.js +73 -5
  253. package/packages/agent/src/actions/extract-page.d.ts.map +1 -1
  254. package/packages/agent/src/actions/extract-page.js +11 -3
  255. package/packages/agent/src/actions/launchpad-launch.d.ts +16 -0
  256. package/packages/agent/src/actions/launchpad-launch.d.ts.map +1 -0
  257. package/packages/agent/src/actions/launchpad-launch.js +207 -0
  258. package/packages/agent/src/actions/logs.d.ts.map +1 -1
  259. package/packages/agent/src/actions/logs.js +19 -2
  260. package/packages/agent/src/actions/manage-tasks.d.ts.map +1 -1
  261. package/packages/agent/src/actions/manage-tasks.js +55 -0
  262. package/packages/agent/src/actions/page-action-groups.d.ts +17 -0
  263. package/packages/agent/src/actions/page-action-groups.d.ts.map +1 -0
  264. package/packages/agent/src/actions/page-action-groups.js +171 -0
  265. package/packages/agent/src/actions/scratchpad.d.ts.map +1 -1
  266. package/packages/agent/src/actions/scratchpad.js +17 -2
  267. package/packages/agent/src/actions/web-search.d.ts.map +1 -1
  268. package/packages/agent/src/actions/web-search.js +10 -2
  269. package/packages/agent/src/api/accounts-routes.d.ts.map +1 -1
  270. package/packages/agent/src/api/accounts-routes.js +8 -10
  271. package/packages/agent/src/api/chat-augmentation.d.ts.map +1 -1
  272. package/packages/agent/src/api/chat-augmentation.js +18 -6
  273. package/packages/agent/src/api/cloud-relay-routes.d.ts.map +1 -1
  274. package/packages/agent/src/api/cloud-relay-routes.js +3 -2
  275. package/packages/agent/src/api/cloud-routes.d.ts +3 -0
  276. package/packages/agent/src/api/cloud-routes.d.ts.map +1 -1
  277. package/packages/agent/src/api/cloud-routes.js +54 -1
  278. package/packages/agent/src/api/cloud-status-routes.d.ts.map +1 -1
  279. package/packages/agent/src/api/cloud-status-routes.js +25 -15
  280. package/packages/agent/src/api/connector-routes.d.ts +8 -0
  281. package/packages/agent/src/api/connector-routes.d.ts.map +1 -1
  282. package/packages/agent/src/api/connector-routes.js +25 -1
  283. package/packages/agent/src/api/experience-routes.d.ts.map +1 -1
  284. package/packages/agent/src/api/experience-routes.js +57 -0
  285. package/packages/agent/src/api/index.d.ts +1 -1
  286. package/packages/agent/src/api/index.d.ts.map +1 -1
  287. package/packages/agent/src/api/index.js +5 -5
  288. package/packages/agent/src/api/provider-switch-config.d.ts +4 -1
  289. package/packages/agent/src/api/provider-switch-config.d.ts.map +1 -1
  290. package/packages/agent/src/api/provider-switch-config.js +8 -1
  291. package/packages/agent/src/api/provider-switch-routes.d.ts +7 -1
  292. package/packages/agent/src/api/provider-switch-routes.d.ts.map +1 -1
  293. package/packages/agent/src/api/provider-switch-routes.js +62 -27
  294. package/packages/agent/src/api/runtime-plugin-routes.d.ts +5 -0
  295. package/packages/agent/src/api/runtime-plugin-routes.d.ts.map +1 -1
  296. package/packages/agent/src/api/runtime-plugin-routes.js +13 -0
  297. package/packages/agent/src/api/server-helpers-auth.d.ts.map +1 -1
  298. package/packages/agent/src/api/server-helpers-auth.js +7 -0
  299. package/packages/agent/src/api/server.d.ts.map +1 -1
  300. package/packages/agent/src/api/server.js +73 -11
  301. package/packages/agent/src/api/subscription-routes.d.ts.map +1 -1
  302. package/packages/agent/src/api/subscription-routes.js +6 -2
  303. package/packages/agent/src/auth/credentials.d.ts.map +1 -1
  304. package/packages/agent/src/auth/credentials.js +6 -2
  305. package/packages/agent/src/autonomy/index.d.ts.map +1 -1
  306. package/packages/agent/src/autonomy/index.js +5 -3
  307. package/packages/agent/src/bin.js +25 -0
  308. package/packages/agent/src/cli/index.d.ts.map +1 -1
  309. package/packages/agent/src/cli/index.js +17 -1
  310. package/packages/agent/src/cloud/cloud-manager.d.ts +1 -0
  311. package/packages/agent/src/cloud/cloud-manager.d.ts.map +1 -1
  312. package/packages/agent/src/cloud/cloud-manager.js +9 -0
  313. package/packages/agent/src/providers/page-scoped-context.d.ts.map +1 -1
  314. package/packages/agent/src/providers/page-scoped-context.js +48 -8
  315. package/packages/agent/src/runtime/aosp-llama-adapter.d.ts +193 -0
  316. package/packages/agent/src/runtime/aosp-llama-adapter.d.ts.map +1 -0
  317. package/packages/agent/src/runtime/aosp-llama-adapter.js +938 -0
  318. package/packages/agent/src/runtime/aosp-local-inference-bootstrap.d.ts +42 -0
  319. package/packages/agent/src/runtime/aosp-local-inference-bootstrap.d.ts.map +1 -0
  320. package/packages/agent/src/runtime/aosp-local-inference-bootstrap.js +299 -0
  321. package/packages/agent/src/runtime/core-plugins.d.ts +20 -0
  322. package/packages/agent/src/runtime/core-plugins.d.ts.map +1 -1
  323. package/packages/agent/src/runtime/core-plugins.js +22 -2
  324. package/packages/agent/src/runtime/discord-local-plugin.d.ts.map +1 -1
  325. package/packages/agent/src/runtime/discord-local-plugin.js +36 -0
  326. package/packages/agent/src/runtime/eliza-plugin.d.ts.map +1 -1
  327. package/packages/agent/src/runtime/eliza-plugin.js +9 -0
  328. package/packages/agent/src/runtime/eliza.d.ts.map +1 -1
  329. package/packages/agent/src/runtime/eliza.js +18 -8
  330. package/packages/agent/src/runtime/first-time-setup.d.ts +1 -0
  331. package/packages/agent/src/runtime/first-time-setup.d.ts.map +1 -1
  332. package/packages/agent/src/runtime/first-time-setup.js +1 -0
  333. package/packages/agent/src/runtime/operations/classifier.d.ts +36 -0
  334. package/packages/agent/src/runtime/operations/classifier.d.ts.map +1 -0
  335. package/packages/agent/src/runtime/operations/classifier.js +72 -0
  336. package/packages/agent/src/runtime/operations/cold-strategy.d.ts +19 -0
  337. package/packages/agent/src/runtime/operations/cold-strategy.d.ts.map +1 -0
  338. package/packages/agent/src/runtime/operations/cold-strategy.js +83 -0
  339. package/packages/agent/src/runtime/operations/health-checks.d.ts +24 -0
  340. package/packages/agent/src/runtime/operations/health-checks.d.ts.map +1 -0
  341. package/packages/agent/src/runtime/operations/health-checks.js +186 -0
  342. package/packages/agent/src/runtime/operations/health.d.ts +32 -0
  343. package/packages/agent/src/runtime/operations/health.d.ts.map +1 -0
  344. package/packages/agent/src/runtime/operations/health.js +151 -0
  345. package/packages/agent/src/runtime/operations/index.d.ts +16 -0
  346. package/packages/agent/src/runtime/operations/index.d.ts.map +1 -0
  347. package/packages/agent/src/runtime/operations/index.js +14 -0
  348. package/packages/agent/src/runtime/operations/manager.d.ts +68 -0
  349. package/packages/agent/src/runtime/operations/manager.d.ts.map +1 -0
  350. package/packages/agent/src/runtime/operations/manager.js +182 -0
  351. package/packages/agent/src/runtime/operations/reload-hot.d.ts +40 -0
  352. package/packages/agent/src/runtime/operations/reload-hot.d.ts.map +1 -0
  353. package/packages/agent/src/runtime/operations/reload-hot.js +176 -0
  354. package/packages/agent/src/runtime/operations/repository.d.ts +44 -0
  355. package/packages/agent/src/runtime/operations/repository.d.ts.map +1 -0
  356. package/packages/agent/src/runtime/operations/repository.js +233 -0
  357. package/packages/agent/src/runtime/operations/types.d.ts +201 -0
  358. package/packages/agent/src/runtime/operations/types.d.ts.map +1 -0
  359. package/packages/agent/src/runtime/operations/types.js +30 -0
  360. package/packages/agent/src/runtime/plugin-collector.d.ts.map +1 -1
  361. package/packages/agent/src/runtime/plugin-collector.js +47 -7
  362. package/packages/agent/src/runtime/plugin-role-gating.d.ts.map +1 -1
  363. package/packages/agent/src/runtime/plugin-role-gating.js +42 -9
  364. package/packages/agent/src/runtime/restart.d.ts +14 -38
  365. package/packages/agent/src/runtime/restart.d.ts.map +1 -1
  366. package/packages/agent/src/runtime/restart.js +14 -39
  367. package/packages/agent/src/services/browser-workspace-desktop.d.ts.map +1 -1
  368. package/packages/agent/src/services/browser-workspace-desktop.js +107 -0
  369. package/packages/agent/src/services/browser-workspace-types.d.ts +7 -1
  370. package/packages/agent/src/services/browser-workspace-types.d.ts.map +1 -1
  371. package/packages/agent/src/services/browser-workspace.d.ts.map +1 -1
  372. package/packages/agent/src/services/browser-workspace.js +7 -0
  373. package/packages/agent/src/services/index.d.ts +1 -0
  374. package/packages/agent/src/services/index.d.ts.map +1 -1
  375. package/packages/agent/src/services/index.js +1 -0
  376. package/packages/agent/src/services/launchpads/image-generator.d.ts +22 -0
  377. package/packages/agent/src/services/launchpads/image-generator.d.ts.map +1 -0
  378. package/packages/agent/src/services/launchpads/image-generator.js +46 -0
  379. package/packages/agent/src/services/launchpads/launchpad-engine.d.ts +32 -0
  380. package/packages/agent/src/services/launchpads/launchpad-engine.d.ts.map +1 -0
  381. package/packages/agent/src/services/launchpads/launchpad-engine.js +191 -0
  382. package/packages/agent/src/services/launchpads/launchpad-types.d.ts +116 -0
  383. package/packages/agent/src/services/launchpads/launchpad-types.d.ts.map +1 -0
  384. package/packages/agent/src/services/launchpads/launchpad-types.js +19 -0
  385. package/packages/agent/src/services/launchpads/metadata-generator.d.ts +24 -0
  386. package/packages/agent/src/services/launchpads/metadata-generator.d.ts.map +1 -0
  387. package/packages/agent/src/services/launchpads/metadata-generator.js +96 -0
  388. package/packages/agent/src/services/launchpads/profiles/flap-sh.d.ts +25 -0
  389. package/packages/agent/src/services/launchpads/profiles/flap-sh.d.ts.map +1 -0
  390. package/packages/agent/src/services/launchpads/profiles/flap-sh.js +80 -0
  391. package/packages/agent/src/services/launchpads/profiles/four-meme.d.ts +11 -0
  392. package/packages/agent/src/services/launchpads/profiles/four-meme.d.ts.map +1 -0
  393. package/packages/agent/src/services/launchpads/profiles/four-meme.js +70 -0
  394. package/packages/agent/src/services/registry-client.js +1 -1
  395. package/packages/agent/src/services/research-task-executor.d.ts.map +1 -1
  396. package/packages/agent/src/services/research-task-executor.js +3 -1
  397. package/packages/app-core/src/App.d.ts.map +1 -1
  398. package/packages/app-core/src/App.js +6 -8
  399. package/packages/app-core/src/api/auth/sessions.js +1 -1
  400. package/packages/app-core/src/api/auth/tokens.d.ts +3 -0
  401. package/packages/app-core/src/api/auth/tokens.d.ts.map +1 -0
  402. package/packages/app-core/src/api/auth/tokens.js +13 -0
  403. package/packages/app-core/src/api/auth.d.ts +1 -3
  404. package/packages/app-core/src/api/auth.d.ts.map +1 -1
  405. package/packages/app-core/src/api/auth.js +2 -16
  406. package/packages/app-core/src/api/client-agent.d.ts +14 -3
  407. package/packages/app-core/src/api/client-agent.d.ts.map +1 -1
  408. package/packages/app-core/src/api/client-agent.js +74 -1
  409. package/packages/app-core/src/api/client-base.d.ts.map +1 -1
  410. package/packages/app-core/src/api/client-base.js +34 -2
  411. package/packages/app-core/src/api/client-cloud.d.ts +5 -1
  412. package/packages/app-core/src/api/client-cloud.d.ts.map +1 -1
  413. package/packages/app-core/src/api/client-cloud.js +9 -2
  414. package/packages/app-core/src/api/client-types-chat.d.ts +8 -0
  415. package/packages/app-core/src/api/client-types-chat.d.ts.map +1 -1
  416. package/packages/app-core/src/api/client-types-cloud.d.ts +2 -0
  417. package/packages/app-core/src/api/client-types-cloud.d.ts.map +1 -1
  418. package/packages/app-core/src/api/client-types-config.d.ts +1 -1
  419. package/packages/app-core/src/api/client-types-config.d.ts.map +1 -1
  420. package/packages/app-core/src/api/client-types-core.d.ts +1 -1
  421. package/packages/app-core/src/api/client-types-core.d.ts.map +1 -1
  422. package/packages/app-core/src/api/client-types-experience.d.ts +50 -0
  423. package/packages/app-core/src/api/client-types-experience.d.ts.map +1 -1
  424. package/packages/app-core/src/api/client-wallet.d.ts +7 -1
  425. package/packages/app-core/src/api/client-wallet.d.ts.map +1 -1
  426. package/packages/app-core/src/api/client-wallet.js +6 -0
  427. package/packages/app-core/src/components/accounts/AccountCard.d.ts.map +1 -1
  428. package/packages/app-core/src/components/accounts/AccountCard.js +5 -3
  429. package/packages/app-core/src/components/accounts/AccountList.d.ts.map +1 -1
  430. package/packages/app-core/src/components/accounts/AccountList.js +1 -9
  431. package/packages/app-core/src/components/accounts/AddAccountDialog.d.ts.map +1 -1
  432. package/packages/app-core/src/components/accounts/AddAccountDialog.js +2 -27
  433. package/packages/app-core/src/components/accounts/RotationStrategyPicker.d.ts.map +1 -1
  434. package/packages/app-core/src/components/accounts/RotationStrategyPicker.js +0 -5
  435. package/packages/app-core/src/components/apps/AppsCatalogGrid.js +1 -1
  436. package/packages/app-core/src/components/apps/app-identity.d.ts +8 -0
  437. package/packages/app-core/src/components/apps/app-identity.d.ts.map +1 -1
  438. package/packages/app-core/src/components/apps/app-identity.js +23 -2
  439. package/packages/app-core/src/components/apps/catalog-loader.d.ts.map +1 -1
  440. package/packages/app-core/src/components/apps/catalog-loader.js +10 -1
  441. package/packages/app-core/src/components/apps/helpers.d.ts +5 -2
  442. package/packages/app-core/src/components/apps/helpers.d.ts.map +1 -1
  443. package/packages/app-core/src/components/apps/helpers.js +14 -3
  444. package/packages/app-core/src/components/apps/overlay-app-registry.d.ts.map +1 -1
  445. package/packages/app-core/src/components/apps/overlay-app-registry.js +13 -2
  446. package/packages/app-core/src/components/character/CharacterExperienceWorkspace.d.ts.map +1 -1
  447. package/packages/app-core/src/components/character/CharacterExperienceWorkspace.js +220 -3
  448. package/packages/app-core/src/components/character/character-hub-helpers.d.ts.map +1 -1
  449. package/packages/app-core/src/components/character/character-hub-helpers.js +4 -0
  450. package/packages/app-core/src/components/character/character-hub-types.d.ts +4 -0
  451. package/packages/app-core/src/components/character/character-hub-types.d.ts.map +1 -1
  452. package/packages/app-core/src/components/chat/AppsSection.d.ts.map +1 -1
  453. package/packages/app-core/src/components/chat/AppsSection.js +24 -1
  454. package/packages/app-core/src/components/chat/TasksEventsPanel.d.ts.map +1 -1
  455. package/packages/app-core/src/components/chat/TasksEventsPanel.js +1 -1
  456. package/packages/app-core/src/components/connectors/ConnectorModeSelector.d.ts +35 -0
  457. package/packages/app-core/src/components/connectors/ConnectorModeSelector.d.ts.map +1 -0
  458. package/packages/app-core/src/components/connectors/ConnectorModeSelector.js +150 -0
  459. package/packages/app-core/src/components/conversations/ConversationsSidebar.d.ts.map +1 -1
  460. package/packages/app-core/src/components/conversations/ConversationsSidebar.js +8 -6
  461. package/packages/app-core/src/components/custom-actions/custom-action-form.d.ts +1 -1
  462. package/packages/app-core/src/components/custom-actions/custom-action-form.d.ts.map +1 -1
  463. package/packages/app-core/src/components/custom-actions/custom-action-form.js +1 -1
  464. package/packages/app-core/src/components/local-inference/LocalInferencePanel.d.ts.map +1 -1
  465. package/packages/app-core/src/components/local-inference/LocalInferencePanel.js +1 -3
  466. package/packages/app-core/src/components/local-inference/ProvidersList.d.ts +0 -13
  467. package/packages/app-core/src/components/local-inference/ProvidersList.d.ts.map +1 -1
  468. package/packages/app-core/src/components/local-inference/ProvidersList.js +10 -21
  469. package/packages/app-core/src/components/local-inference/RoutingMatrix.d.ts +0 -11
  470. package/packages/app-core/src/components/local-inference/RoutingMatrix.d.ts.map +1 -1
  471. package/packages/app-core/src/components/local-inference/RoutingMatrix.js +21 -18
  472. package/packages/app-core/src/components/local-inference/SlotAssignments.d.ts.map +1 -1
  473. package/packages/app-core/src/components/local-inference/SlotAssignments.js +11 -11
  474. package/packages/app-core/src/components/onboarding/BootstrapStep.d.ts +5 -2
  475. package/packages/app-core/src/components/onboarding/BootstrapStep.d.ts.map +1 -1
  476. package/packages/app-core/src/components/onboarding/BootstrapStep.js +54 -6
  477. package/packages/app-core/src/components/pages/AppDetailsView.d.ts +4 -6
  478. package/packages/app-core/src/components/pages/AppDetailsView.d.ts.map +1 -1
  479. package/packages/app-core/src/components/pages/AppDetailsView.js +109 -54
  480. package/packages/app-core/src/components/pages/AppsView.d.ts.map +1 -1
  481. package/packages/app-core/src/components/pages/AppsView.js +33 -53
  482. package/packages/app-core/src/components/pages/AutomationsView.d.ts.map +1 -1
  483. package/packages/app-core/src/components/pages/AutomationsView.js +6 -22
  484. package/packages/app-core/src/components/pages/BrowserWorkspaceView.d.ts +14 -0
  485. package/packages/app-core/src/components/pages/BrowserWorkspaceView.d.ts.map +1 -1
  486. package/packages/app-core/src/components/pages/BrowserWorkspaceView.js +462 -45
  487. package/packages/app-core/src/components/pages/ChatView.d.ts.map +1 -1
  488. package/packages/app-core/src/components/pages/ChatView.js +1 -1
  489. package/packages/app-core/src/components/pages/ConfigPageView.js +2 -2
  490. package/packages/app-core/src/components/pages/InventoryView.js +4 -4
  491. package/packages/app-core/src/components/pages/KnowledgeView.js +1 -1
  492. package/packages/app-core/src/components/pages/LogsView.d.ts.map +1 -1
  493. package/packages/app-core/src/components/pages/LogsView.js +0 -4
  494. package/packages/app-core/src/components/pages/SecretsView.js +1 -1
  495. package/packages/app-core/src/components/pages/SettingsView.d.ts.map +1 -1
  496. package/packages/app-core/src/components/pages/SettingsView.js +76 -176
  497. package/packages/app-core/src/components/pages/WorkflowGraphViewer.js +1 -1
  498. package/packages/app-core/src/components/pages/page-scoped-conversations.d.ts +1 -1
  499. package/packages/app-core/src/components/pages/page-scoped-conversations.d.ts.map +1 -1
  500. package/packages/app-core/src/components/pages/page-scoped-conversations.js +62 -7
  501. package/packages/app-core/src/components/pages/plugin-list-utils.d.ts.map +1 -1
  502. package/packages/app-core/src/components/pages/plugin-list-utils.js +0 -1
  503. package/packages/app-core/src/components/pages/plugin-view-connectors.d.ts.map +1 -1
  504. package/packages/app-core/src/components/pages/plugin-view-connectors.js +12 -4
  505. package/packages/app-core/src/components/pages/useBrowserWorkspaceWalletBridge.d.ts.map +1 -1
  506. package/packages/app-core/src/components/pages/useBrowserWorkspaceWalletBridge.js +41 -0
  507. package/packages/app-core/src/components/settings/AppearanceSettingsSection.d.ts.map +1 -1
  508. package/packages/app-core/src/components/settings/AppearanceSettingsSection.js +3 -42
  509. package/packages/app-core/src/components/settings/ProviderSwitcher.d.ts.map +1 -1
  510. package/packages/app-core/src/components/settings/ProviderSwitcher.js +74 -39
  511. package/packages/app-core/src/components/settings/SubscriptionStatus.d.ts.map +1 -1
  512. package/packages/app-core/src/components/settings/SubscriptionStatus.js +2 -2
  513. package/packages/app-core/src/components/settings/permission-controls.d.ts.map +1 -1
  514. package/packages/app-core/src/components/settings/permission-controls.js +41 -7
  515. package/packages/app-core/src/components/shell/BugReportModal.js +2 -2
  516. package/packages/app-core/src/components/shell/CommandPalette.d.ts.map +1 -1
  517. package/packages/app-core/src/components/shell/CommandPalette.js +3 -3
  518. package/packages/app-core/src/components/shell/Header.js +2 -2
  519. package/packages/app-core/src/components/shell/RuntimeGate.d.ts.map +1 -1
  520. package/packages/app-core/src/components/shell/RuntimeGate.js +309 -57
  521. package/packages/app-core/src/components/shell/StartupShell.js +2 -2
  522. package/packages/app-core/src/components/workspace/AppWorkspaceChrome.js +2 -2
  523. package/packages/app-core/src/config/boot-config-store.d.ts +35 -6
  524. package/packages/app-core/src/config/boot-config-store.d.ts.map +1 -1
  525. package/packages/app-core/src/hooks/useAccounts.d.ts +1 -1
  526. package/packages/app-core/src/hooks/useAccounts.d.ts.map +1 -1
  527. package/packages/app-core/src/hooks/voice-chat-playback.d.ts.map +1 -1
  528. package/packages/app-core/src/hooks/voice-chat-playback.js +2 -2
  529. package/packages/app-core/src/i18n/locales/en.json +229 -210
  530. package/packages/app-core/src/i18n/locales/es.json +255 -236
  531. package/packages/app-core/src/i18n/locales/ko.json +255 -236
  532. package/packages/app-core/src/i18n/locales/pt.json +255 -236
  533. package/packages/app-core/src/i18n/locales/tl.json +254 -235
  534. package/packages/app-core/src/i18n/locales/vi.json +255 -236
  535. package/packages/app-core/src/i18n/locales/zh-CN.json +255 -236
  536. package/packages/app-core/src/onboarding/mobile-runtime-mode.d.ts +1 -1
  537. package/packages/app-core/src/onboarding/mobile-runtime-mode.d.ts.map +1 -1
  538. package/packages/app-core/src/onboarding/mobile-runtime-mode.js +3 -0
  539. package/packages/app-core/src/onboarding/probe-local-agent.d.ts +44 -0
  540. package/packages/app-core/src/onboarding/probe-local-agent.d.ts.map +1 -0
  541. package/packages/app-core/src/onboarding/probe-local-agent.js +126 -0
  542. package/packages/app-core/src/onboarding-config.d.ts +1 -0
  543. package/packages/app-core/src/onboarding-config.d.ts.map +1 -1
  544. package/packages/app-core/src/onboarding-config.js +3 -0
  545. package/packages/app-core/src/platform/init.d.ts +8 -0
  546. package/packages/app-core/src/platform/init.d.ts.map +1 -1
  547. package/packages/app-core/src/platform/init.js +10 -0
  548. package/packages/app-core/src/services/account-pool.d.ts +98 -0
  549. package/packages/app-core/src/services/account-pool.d.ts.map +1 -0
  550. package/packages/app-core/src/services/account-pool.js +506 -0
  551. package/packages/app-core/src/services/account-usage.d.ts +75 -0
  552. package/packages/app-core/src/services/account-usage.d.ts.map +1 -0
  553. package/packages/app-core/src/services/account-usage.js +179 -0
  554. package/packages/app-core/src/services/local-inference/active-model.d.ts +14 -0
  555. package/packages/app-core/src/services/local-inference/active-model.d.ts.map +1 -1
  556. package/packages/app-core/src/services/local-inference/device-bridge.d.ts +7 -0
  557. package/packages/app-core/src/services/local-inference/device-bridge.d.ts.map +1 -1
  558. package/packages/app-core/src/services/local-inference/device-bridge.js +108 -3
  559. package/packages/app-core/src/services/local-inference/paths.d.ts +9 -2
  560. package/packages/app-core/src/services/local-inference/paths.d.ts.map +1 -1
  561. package/packages/app-core/src/services/local-inference/paths.js +10 -3
  562. package/packages/app-core/src/services/local-inference/providers.d.ts +1 -1
  563. package/packages/app-core/src/services/local-inference/providers.d.ts.map +1 -1
  564. package/packages/app-core/src/services/local-inference/providers.js +46 -0
  565. package/packages/app-core/src/services/local-inference/routing-preferences.d.ts +3 -1
  566. package/packages/app-core/src/services/local-inference/routing-preferences.d.ts.map +1 -1
  567. package/packages/app-core/src/services/local-inference/routing-preferences.js +1 -0
  568. package/packages/app-core/src/services/local-inference/types.d.ts +1 -1
  569. package/packages/app-core/src/services/local-inference/types.d.ts.map +1 -1
  570. package/packages/app-core/src/shell/AppWindowRenderer.d.ts.map +1 -1
  571. package/packages/app-core/src/shell/AppWindowRenderer.js +14 -26
  572. package/packages/app-core/src/state/AppContext.d.ts +1 -1
  573. package/packages/app-core/src/state/AppContext.d.ts.map +1 -1
  574. package/packages/app-core/src/state/AppContext.js +1 -1
  575. package/packages/app-core/src/state/connector-deeplink.d.ts +30 -0
  576. package/packages/app-core/src/state/connector-deeplink.d.ts.map +1 -0
  577. package/packages/app-core/src/state/connector-deeplink.js +46 -0
  578. package/packages/app-core/src/state/index.d.ts +1 -0
  579. package/packages/app-core/src/state/index.d.ts.map +1 -1
  580. package/packages/app-core/src/state/index.js +1 -0
  581. package/packages/app-core/src/state/useCloudState.d.ts.map +1 -1
  582. package/packages/app-core/src/state/useCloudState.js +4 -1
  583. package/packages/app-core/src/state/useMiscUiState.js +1 -1
  584. package/packages/app-core/src/utils/asset-url.d.ts.map +1 -1
  585. package/packages/app-core/src/utils/asset-url.js +14 -1
  586. package/packages/app-core/src/utils/browser-tabs-renderer-registry.d.ts +56 -0
  587. package/packages/app-core/src/utils/browser-tabs-renderer-registry.d.ts.map +1 -0
  588. package/packages/app-core/src/utils/browser-tabs-renderer-registry.js +738 -0
  589. package/packages/app-core/src/utils/errors.d.ts +13 -0
  590. package/packages/app-core/src/utils/errors.d.ts.map +1 -0
  591. package/packages/app-core/src/utils/errors.js +25 -0
  592. package/packages/shared/src/connector-cred-types.d.ts +27 -0
  593. package/packages/shared/src/connector-cred-types.d.ts.map +1 -0
  594. package/packages/shared/src/connector-cred-types.js +63 -0
  595. package/packages/shared/src/contracts/apps.d.ts.map +1 -1
  596. package/packages/shared/src/contracts/apps.js +10 -0
  597. package/packages/shared/src/contracts/lifeops-extensions.d.ts +145 -0
  598. package/packages/shared/src/contracts/lifeops-extensions.d.ts.map +1 -1
  599. package/packages/shared/src/contracts/lifeops-extensions.js +6 -0
  600. package/packages/shared/src/contracts/lifeops.d.ts +265 -25
  601. package/packages/shared/src/contracts/lifeops.d.ts.map +1 -1
  602. package/packages/shared/src/contracts/lifeops.js +56 -0
  603. package/packages/shared/src/contracts/service-routing.d.ts +1 -0
  604. package/packages/shared/src/contracts/service-routing.d.ts.map +1 -1
  605. package/packages/shared/src/contracts/service-routing.js +3 -0
  606. package/packages/shared/src/index.d.ts +1 -0
  607. package/packages/shared/src/index.d.ts.map +1 -1
  608. package/packages/shared/src/index.js +1 -0
  609. package/packages/shared/src/runtime-env.d.ts +2 -0
  610. package/packages/shared/src/runtime-env.d.ts.map +1 -1
  611. package/packages/shared/src/runtime-env.js +20 -0
  612. package/packages/shared/src/spoken-text.js +2 -2
  613. package/packages/typescript/src/action-docs.d.ts +4 -0
  614. package/packages/typescript/src/action-docs.d.ts.map +1 -1
  615. package/packages/typescript/src/action-docs.js +29 -5
  616. package/packages/typescript/src/actions.d.ts.map +1 -1
  617. package/packages/typescript/src/actions.js +19 -3
  618. package/packages/typescript/src/features/advanced-capabilities/actions/removeContact.d.ts.map +1 -1
  619. package/packages/typescript/src/features/advanced-capabilities/actions/removeContact.js +23 -4
  620. package/packages/typescript/src/features/advanced-capabilities/actions/scheduleFollowUp.d.ts.map +1 -1
  621. package/packages/typescript/src/features/advanced-capabilities/actions/scheduleFollowUp.js +2 -0
  622. package/packages/typescript/src/features/advanced-capabilities/actions/searchContacts.d.ts.map +1 -1
  623. package/packages/typescript/src/features/advanced-capabilities/actions/searchContacts.js +2 -0
  624. package/packages/typescript/src/features/advanced-capabilities/actions/updateContact.d.ts.map +1 -1
  625. package/packages/typescript/src/features/advanced-capabilities/actions/updateContact.js +23 -3
  626. package/packages/typescript/src/features/advanced-capabilities/clipboard/actions/read-attachment.d.ts.map +1 -1
  627. package/packages/typescript/src/features/advanced-capabilities/clipboard/actions/read-attachment.js +9 -1
  628. package/packages/typescript/src/features/advanced-capabilities/clipboard/actions/read-file.d.ts.map +1 -1
  629. package/packages/typescript/src/features/advanced-capabilities/clipboard/actions/read-file.js +4 -0
  630. package/packages/typescript/src/features/advanced-capabilities/clipboard/actions/save-attachment-to-clipboard.d.ts.map +1 -1
  631. package/packages/typescript/src/features/advanced-capabilities/clipboard/actions/save-attachment-to-clipboard.js +8 -1
  632. package/packages/typescript/src/features/advanced-capabilities/clipboard/types.d.ts +1 -1
  633. package/packages/typescript/src/features/advanced-capabilities/clipboard/types.d.ts.map +1 -1
  634. package/packages/typescript/src/features/advanced-capabilities/evaluators/factExtractor.js +2 -2
  635. package/packages/typescript/src/features/advanced-capabilities/experience/actions/record-experience.d.ts.map +1 -1
  636. package/packages/typescript/src/features/advanced-capabilities/experience/actions/record-experience.js +1 -0
  637. package/packages/typescript/src/features/advanced-capabilities/experience/actions/search-experiences.d.ts +3 -0
  638. package/packages/typescript/src/features/advanced-capabilities/experience/actions/search-experiences.d.ts.map +1 -0
  639. package/packages/typescript/src/features/advanced-capabilities/experience/actions/search-experiences.js +110 -0
  640. package/packages/typescript/src/features/advanced-capabilities/experience/evaluators/experienceEvaluator.d.ts.map +1 -1
  641. package/packages/typescript/src/features/advanced-capabilities/experience/evaluators/experienceEvaluator.js +5 -0
  642. package/packages/typescript/src/features/advanced-capabilities/experience/index.d.ts +1 -0
  643. package/packages/typescript/src/features/advanced-capabilities/experience/index.d.ts.map +1 -1
  644. package/packages/typescript/src/features/advanced-capabilities/experience/index.js +1 -0
  645. package/packages/typescript/src/features/advanced-capabilities/experience/providers/experienceProvider.d.ts.map +1 -1
  646. package/packages/typescript/src/features/advanced-capabilities/experience/providers/experienceProvider.js +16 -6
  647. package/packages/typescript/src/features/advanced-capabilities/experience/service.d.ts +21 -1
  648. package/packages/typescript/src/features/advanced-capabilities/experience/service.d.ts.map +1 -1
  649. package/packages/typescript/src/features/advanced-capabilities/experience/service.js +391 -8
  650. package/packages/typescript/src/features/advanced-capabilities/experience/types.d.ts +44 -0
  651. package/packages/typescript/src/features/advanced-capabilities/experience/types.d.ts.map +1 -1
  652. package/packages/typescript/src/features/advanced-capabilities/experience/utils/experienceFormatter.d.ts +24 -0
  653. package/packages/typescript/src/features/advanced-capabilities/experience/utils/experienceFormatter.d.ts.map +1 -0
  654. package/packages/typescript/src/features/advanced-capabilities/experience/utils/experienceFormatter.js +152 -0
  655. package/packages/typescript/src/features/advanced-capabilities/experience/utils/experienceText.d.ts +1 -0
  656. package/packages/typescript/src/features/advanced-capabilities/experience/utils/experienceText.d.ts.map +1 -1
  657. package/packages/typescript/src/features/advanced-capabilities/experience/utils/experienceText.js +53 -1
  658. package/packages/typescript/src/features/advanced-capabilities/index.d.ts.map +1 -1
  659. package/packages/typescript/src/features/advanced-capabilities/index.js +4 -2
  660. package/packages/typescript/src/features/advanced-capabilities/personality/index.d.ts +1 -2
  661. package/packages/typescript/src/features/advanced-capabilities/personality/index.d.ts.map +1 -1
  662. package/packages/typescript/src/features/advanced-capabilities/personality/index.js +1 -2
  663. package/packages/typescript/src/features/advanced-planning/actions/chain-example.d.ts.map +1 -1
  664. package/packages/typescript/src/features/advanced-planning/actions/chain-example.js +4 -7
  665. package/packages/typescript/src/features/basic-capabilities/actions/reply.d.ts.map +1 -1
  666. package/packages/typescript/src/features/basic-capabilities/actions/reply.js +1 -0
  667. package/packages/typescript/src/features/basic-capabilities/index.d.ts +1 -1
  668. package/packages/typescript/src/features/basic-capabilities/index.d.ts.map +1 -1
  669. package/packages/typescript/src/features/basic-capabilities/providers/actions.d.ts.map +1 -1
  670. package/packages/typescript/src/features/basic-capabilities/providers/actions.js +40 -2
  671. package/packages/typescript/src/features/index.js +1 -1
  672. package/packages/typescript/src/features/knowledge/actions.d.ts.map +1 -1
  673. package/packages/typescript/src/features/knowledge/actions.js +42 -16
  674. package/packages/typescript/src/features/plugin-manager/actions/coreStatusAction.d.ts.map +1 -1
  675. package/packages/typescript/src/features/plugin-manager/actions/coreStatusAction.js +23 -5
  676. package/packages/typescript/src/features/plugin-manager/actions/listEjectedPluginsAction.d.ts.map +1 -1
  677. package/packages/typescript/src/features/plugin-manager/actions/listEjectedPluginsAction.js +31 -6
  678. package/packages/typescript/src/features/plugin-manager/actions/plugin-handlers/core-status.d.ts.map +1 -1
  679. package/packages/typescript/src/features/plugin-manager/actions/plugin-handlers/create.d.ts.map +1 -1
  680. package/packages/typescript/src/features/plugin-manager/actions/plugin-handlers/create.js +21 -5
  681. package/packages/typescript/src/features/plugin-manager/actions/plugin-handlers/eject.d.ts.map +1 -1
  682. package/packages/typescript/src/features/plugin-manager/actions/plugin-handlers/eject.js +3 -1
  683. package/packages/typescript/src/features/plugin-manager/actions/plugin-handlers/install.d.ts.map +1 -1
  684. package/packages/typescript/src/features/plugin-manager/actions/plugin.d.ts.map +1 -1
  685. package/packages/typescript/src/features/plugin-manager/actions/plugin.js +4 -1
  686. package/packages/typescript/src/features/plugin-manager/actions/searchPluginAction.d.ts.map +1 -1
  687. package/packages/typescript/src/features/plugin-manager/actions/searchPluginAction.js +44 -11
  688. package/packages/typescript/src/features/plugin-manager/index.d.ts +2 -2
  689. package/packages/typescript/src/features/plugin-manager/index.d.ts.map +1 -1
  690. package/packages/typescript/src/features/plugin-manager/index.js +3 -3
  691. package/packages/typescript/src/features/plugin-manager/security.d.ts.map +1 -1
  692. package/packages/typescript/src/features/plugin-manager/services/pluginManagerService.d.ts.map +1 -1
  693. package/packages/typescript/src/features/plugin-manager/services/pluginManagerService.js +0 -1
  694. package/packages/typescript/src/features/plugin-manager/services/pluginRegistryService.d.ts.map +1 -1
  695. package/packages/typescript/src/features/plugin-manager/services/pluginRegistryService.js +1 -2
  696. package/packages/typescript/src/features/secrets/actions/manage-secret.d.ts.map +1 -1
  697. package/packages/typescript/src/features/secrets/actions/manage-secret.js +13 -2
  698. package/packages/typescript/src/features/secrets/actions/request-secret.d.ts.map +1 -1
  699. package/packages/typescript/src/features/secrets/actions/request-secret.js +23 -5
  700. package/packages/typescript/src/features/secrets/actions/set-secret.d.ts.map +1 -1
  701. package/packages/typescript/src/features/secrets/actions/set-secret.js +22 -4
  702. package/packages/typescript/src/features/secrets/index.d.ts +22 -0
  703. package/packages/typescript/src/features/secrets/index.d.ts.map +1 -0
  704. package/packages/typescript/src/features/secrets/index.js +24 -0
  705. package/packages/typescript/src/features/secrets/onboarding/action.d.ts.map +1 -1
  706. package/packages/typescript/src/features/secrets/onboarding/action.js +1 -0
  707. package/packages/typescript/src/features/secrets/plugin.d.ts +70 -0
  708. package/packages/typescript/src/features/secrets/plugin.d.ts.map +1 -0
  709. package/packages/typescript/src/features/secrets/plugin.js +87 -0
  710. package/packages/typescript/src/features/secrets/services/index.d.ts +7 -0
  711. package/packages/typescript/src/features/secrets/services/index.d.ts.map +1 -0
  712. package/packages/typescript/src/features/secrets/services/index.js +5 -0
  713. package/packages/typescript/src/features/secrets/types.d.ts +1 -1
  714. package/packages/typescript/src/features/secrets/types.js +1 -1
  715. package/packages/typescript/src/features/trust/actions/evaluateTrust.d.ts.map +1 -1
  716. package/packages/typescript/src/features/trust/actions/evaluateTrust.js +5 -0
  717. package/packages/typescript/src/features/trust/actions/recordTrustInteraction.d.ts.map +1 -1
  718. package/packages/typescript/src/features/trust/actions/recordTrustInteraction.js +5 -0
  719. package/packages/typescript/src/features/trust/actions/requestElevation.d.ts.map +1 -1
  720. package/packages/typescript/src/features/trust/actions/requestElevation.js +5 -0
  721. package/packages/typescript/src/features/trust/actions/roles.d.ts.map +1 -1
  722. package/packages/typescript/src/features/trust/actions/roles.js +4 -0
  723. package/packages/typescript/src/features/trust/actions/settings.d.ts.map +1 -1
  724. package/packages/typescript/src/features/trust/actions/settings.js +17 -4
  725. package/packages/typescript/src/features/trust/index.js +4 -4
  726. package/packages/typescript/src/features/trust/providers/settings.js +1 -1
  727. package/packages/typescript/src/features/trust/services/SecurityStore.d.ts +1 -1
  728. package/packages/typescript/src/features/trust/services/SecurityStore.js +1 -1
  729. package/packages/typescript/src/features/trust/services/db.js +1 -1
  730. package/packages/typescript/src/generated/action-docs.d.ts +93 -15
  731. package/packages/typescript/src/generated/action-docs.d.ts.map +1 -1
  732. package/packages/typescript/src/generated/action-docs.js +93 -16
  733. package/packages/typescript/src/index.node.d.ts +3 -0
  734. package/packages/typescript/src/index.node.d.ts.map +1 -1
  735. package/packages/typescript/src/index.node.js +4 -0
  736. package/packages/typescript/src/lifeops-passive-connectors.d.ts +7 -0
  737. package/packages/typescript/src/lifeops-passive-connectors.d.ts.map +1 -0
  738. package/packages/typescript/src/lifeops-passive-connectors.js +39 -0
  739. package/packages/typescript/src/runtime.d.ts +1 -0
  740. package/packages/typescript/src/runtime.d.ts.map +1 -1
  741. package/packages/typescript/src/runtime.js +199 -9
  742. package/packages/typescript/src/services/message.d.ts +7 -0
  743. package/packages/typescript/src/services/message.d.ts.map +1 -1
  744. package/packages/typescript/src/services/message.js +222 -25
  745. package/packages/typescript/src/types/components.d.ts +5 -0
  746. package/packages/typescript/src/types/components.d.ts.map +1 -1
  747. package/packages/typescript/src/types/memory.d.ts +2 -1
  748. package/packages/typescript/src/types/memory.d.ts.map +1 -1
  749. package/packages/typescript/src/utils/context-catalog.d.ts.map +1 -1
  750. package/packages/typescript/src/utils/context-catalog.js +124 -14
  751. package/packages/typescript/src/utils/context-routing.d.ts.map +1 -1
  752. package/packages/typescript/src/utils/context-routing.js +42 -0
  753. package/packages/typescript/src/utils/prompt-compression.d.ts +6 -0
  754. package/packages/typescript/src/utils/prompt-compression.d.ts.map +1 -0
  755. package/packages/typescript/src/utils/prompt-compression.js +14 -0
  756. package/packages/typescript/src/utils.d.ts +1 -0
  757. package/packages/typescript/src/utils.d.ts.map +1 -1
  758. package/packages/typescript/src/utils.js +2 -1
  759. package/packages/ui/src/components/composites/chat/chat-composer-shell.js +1 -1
  760. package/packages/ui/src/components/composites/sidebar/sidebar-root.js +3 -3
  761. package/packages/ui/src/components/ui/dialog.js +1 -1
  762. package/packages/ui/src/components/ui/drawer-sheet.js +1 -1
  763. package/packages/ui/src/components/ui/themed-select.js +2 -2
  764. package/packages/ui/src/components/ui/tooltip-extended.js +1 -1
  765. package/packages/ui/src/components/ui/tooltip.js +1 -1
  766. package/packages/ui/src/layouts/page-layout/page-layout-mobile-drawer.js +1 -1
  767. package/packages/ui/src/layouts/workspace-layout/workspace-layout.js +2 -2
  768. package/plugins/plugin-browser-bridge/src/actions.d.ts +44 -0
  769. package/plugins/plugin-browser-bridge/src/actions.d.ts.map +1 -0
  770. package/plugins/plugin-browser-bridge/src/actions.js +234 -0
  771. package/plugins/plugin-browser-bridge/src/contracts.d.ts +272 -0
  772. package/plugins/plugin-browser-bridge/src/contracts.d.ts.map +1 -0
  773. package/plugins/plugin-browser-bridge/src/contracts.js +48 -0
  774. package/plugins/plugin-browser-bridge/src/index.d.ts +19 -0
  775. package/plugins/plugin-browser-bridge/src/index.d.ts.map +1 -0
  776. package/plugins/plugin-browser-bridge/src/index.js +18 -0
  777. package/plugins/plugin-browser-bridge/src/packaging.d.ts +27 -0
  778. package/plugins/plugin-browser-bridge/src/packaging.d.ts.map +1 -0
  779. package/plugins/plugin-browser-bridge/src/packaging.js +503 -0
  780. package/plugins/plugin-browser-bridge/src/plugin.d.ts +10 -0
  781. package/plugins/plugin-browser-bridge/src/plugin.d.ts.map +1 -0
  782. package/plugins/plugin-browser-bridge/src/plugin.js +140 -0
  783. package/plugins/plugin-browser-bridge/src/routes.d.ts +37 -0
  784. package/plugins/plugin-browser-bridge/src/routes.d.ts.map +1 -0
  785. package/plugins/plugin-browser-bridge/src/routes.js +496 -0
  786. package/plugins/plugin-browser-bridge/src/schema.d.ts +2250 -0
  787. package/plugins/plugin-browser-bridge/src/schema.d.ts.map +1 -0
  788. package/plugins/plugin-browser-bridge/src/schema.js +111 -0
  789. package/plugins/plugin-browser-bridge/src/service.d.ts +28 -0
  790. package/plugins/plugin-browser-bridge/src/service.d.ts.map +1 -0
  791. package/plugins/plugin-browser-bridge/src/service.js +1 -0
  792. package/apps/app-lifeops/src/components/AppBlockerSettingsCard.d.ts +0 -3
  793. package/apps/app-lifeops/src/components/AppBlockerSettingsCard.d.ts.map +0 -1
  794. package/apps/app-lifeops/src/components/AppBlockerSettingsCard.js +0 -189
  795. package/apps/app-lifeops/src/components/BrowserBridgeSetupPanel.d.ts +0 -2
  796. package/apps/app-lifeops/src/components/BrowserBridgeSetupPanel.d.ts.map +0 -1
  797. package/apps/app-lifeops/src/components/BrowserBridgeSetupPanel.js +0 -1065
  798. package/apps/app-lifeops/src/components/BrowserBridgeStatusChip.d.ts +0 -7
  799. package/apps/app-lifeops/src/components/BrowserBridgeStatusChip.d.ts.map +0 -1
  800. package/apps/app-lifeops/src/components/BrowserBridgeStatusChip.js +0 -71
  801. package/apps/app-lifeops/src/components/DataSourcesStrip.d.ts +0 -14
  802. package/apps/app-lifeops/src/components/DataSourcesStrip.d.ts.map +0 -1
  803. package/apps/app-lifeops/src/components/DataSourcesStrip.js +0 -36
  804. package/apps/app-lifeops/src/components/EventEditorDrawer.d.ts +0 -23
  805. package/apps/app-lifeops/src/components/EventEditorDrawer.d.ts.map +0 -1
  806. package/apps/app-lifeops/src/components/EventEditorDrawer.js +0 -514
  807. package/apps/app-lifeops/src/components/LifeOpsActivitySignalsEffect.d.ts +0 -2
  808. package/apps/app-lifeops/src/components/LifeOpsActivitySignalsEffect.d.ts.map +0 -1
  809. package/apps/app-lifeops/src/components/LifeOpsActivitySignalsEffect.js +0 -10
  810. package/apps/app-lifeops/src/components/LifeOpsCalendarSection.d.ts +0 -15
  811. package/apps/app-lifeops/src/components/LifeOpsCalendarSection.d.ts.map +0 -1
  812. package/apps/app-lifeops/src/components/LifeOpsCalendarSection.js +0 -515
  813. package/apps/app-lifeops/src/components/LifeOpsChatAdapter.d.ts +0 -34
  814. package/apps/app-lifeops/src/components/LifeOpsChatAdapter.d.ts.map +0 -1
  815. package/apps/app-lifeops/src/components/LifeOpsChatAdapter.js +0 -175
  816. package/apps/app-lifeops/src/components/LifeOpsFeatureTogglesSection.d.ts +0 -2
  817. package/apps/app-lifeops/src/components/LifeOpsFeatureTogglesSection.d.ts.map +0 -1
  818. package/apps/app-lifeops/src/components/LifeOpsFeatureTogglesSection.js +0 -99
  819. package/apps/app-lifeops/src/components/LifeOpsHabitVisuals.d.ts +0 -37
  820. package/apps/app-lifeops/src/components/LifeOpsHabitVisuals.d.ts.map +0 -1
  821. package/apps/app-lifeops/src/components/LifeOpsHabitVisuals.js +0 -88
  822. package/apps/app-lifeops/src/components/LifeOpsInboxSection.d.ts +0 -13
  823. package/apps/app-lifeops/src/components/LifeOpsInboxSection.d.ts.map +0 -1
  824. package/apps/app-lifeops/src/components/LifeOpsInboxSection.js +0 -491
  825. package/apps/app-lifeops/src/components/LifeOpsLinkBankButton.d.ts +0 -12
  826. package/apps/app-lifeops/src/components/LifeOpsLinkBankButton.d.ts.map +0 -1
  827. package/apps/app-lifeops/src/components/LifeOpsLinkBankButton.js +0 -92
  828. package/apps/app-lifeops/src/components/LifeOpsLinkPaypalButton.d.ts +0 -12
  829. package/apps/app-lifeops/src/components/LifeOpsLinkPaypalButton.d.ts.map +0 -1
  830. package/apps/app-lifeops/src/components/LifeOpsLinkPaypalButton.js +0 -160
  831. package/apps/app-lifeops/src/components/LifeOpsMoneySection.d.ts +0 -3
  832. package/apps/app-lifeops/src/components/LifeOpsMoneySection.d.ts.map +0 -1
  833. package/apps/app-lifeops/src/components/LifeOpsMoneySection.js +0 -373
  834. package/apps/app-lifeops/src/components/LifeOpsNavRail.d.ts +0 -9
  835. package/apps/app-lifeops/src/components/LifeOpsNavRail.d.ts.map +0 -1
  836. package/apps/app-lifeops/src/components/LifeOpsNavRail.js +0 -93
  837. package/apps/app-lifeops/src/components/LifeOpsOperationalPanels.d.ts +0 -4
  838. package/apps/app-lifeops/src/components/LifeOpsOperationalPanels.d.ts.map +0 -1
  839. package/apps/app-lifeops/src/components/LifeOpsOperationalPanels.js +0 -274
  840. package/apps/app-lifeops/src/components/LifeOpsOverviewSection.d.ts +0 -7
  841. package/apps/app-lifeops/src/components/LifeOpsOverviewSection.d.ts.map +0 -1
  842. package/apps/app-lifeops/src/components/LifeOpsOverviewSection.js +0 -670
  843. package/apps/app-lifeops/src/components/LifeOpsPageSections.d.ts +0 -42
  844. package/apps/app-lifeops/src/components/LifeOpsPageSections.d.ts.map +0 -1
  845. package/apps/app-lifeops/src/components/LifeOpsPageSections.js +0 -166
  846. package/apps/app-lifeops/src/components/LifeOpsPageView.d.ts +0 -2
  847. package/apps/app-lifeops/src/components/LifeOpsPageView.d.ts.map +0 -1
  848. package/apps/app-lifeops/src/components/LifeOpsPageView.js +0 -566
  849. package/apps/app-lifeops/src/components/LifeOpsRemindersSection.d.ts +0 -2
  850. package/apps/app-lifeops/src/components/LifeOpsRemindersSection.d.ts.map +0 -1
  851. package/apps/app-lifeops/src/components/LifeOpsRemindersSection.js +0 -749
  852. package/apps/app-lifeops/src/components/LifeOpsResizableSidebar.d.ts +0 -27
  853. package/apps/app-lifeops/src/components/LifeOpsResizableSidebar.d.ts.map +0 -1
  854. package/apps/app-lifeops/src/components/LifeOpsResizableSidebar.js +0 -106
  855. package/apps/app-lifeops/src/components/LifeOpsScreenTimeSection.d.ts +0 -2
  856. package/apps/app-lifeops/src/components/LifeOpsScreenTimeSection.d.ts.map +0 -1
  857. package/apps/app-lifeops/src/components/LifeOpsScreenTimeSection.js +0 -373
  858. package/apps/app-lifeops/src/components/LifeOpsSectionContent.d.ts +0 -10
  859. package/apps/app-lifeops/src/components/LifeOpsSectionContent.d.ts.map +0 -1
  860. package/apps/app-lifeops/src/components/LifeOpsSectionContent.js +0 -30
  861. package/apps/app-lifeops/src/components/LifeOpsSelectionContext.d.ts +0 -21
  862. package/apps/app-lifeops/src/components/LifeOpsSelectionContext.d.ts.map +0 -1
  863. package/apps/app-lifeops/src/components/LifeOpsSelectionContext.js +0 -30
  864. package/apps/app-lifeops/src/components/LifeOpsSettingsSection.d.ts +0 -20
  865. package/apps/app-lifeops/src/components/LifeOpsSettingsSection.d.ts.map +0 -1
  866. package/apps/app-lifeops/src/components/LifeOpsSettingsSection.js +0 -598
  867. package/apps/app-lifeops/src/components/LifeOpsSetupGate.d.ts +0 -13
  868. package/apps/app-lifeops/src/components/LifeOpsSetupGate.d.ts.map +0 -1
  869. package/apps/app-lifeops/src/components/LifeOpsSetupGate.js +0 -134
  870. package/apps/app-lifeops/src/components/LifeOpsSleepSection.d.ts +0 -10
  871. package/apps/app-lifeops/src/components/LifeOpsSleepSection.d.ts.map +0 -1
  872. package/apps/app-lifeops/src/components/LifeOpsSleepSection.js +0 -425
  873. package/apps/app-lifeops/src/components/LifeOpsWorkspaceShell.d.ts +0 -11
  874. package/apps/app-lifeops/src/components/LifeOpsWorkspaceShell.d.ts.map +0 -1
  875. package/apps/app-lifeops/src/components/LifeOpsWorkspaceShell.js +0 -49
  876. package/apps/app-lifeops/src/components/LifeOpsWorkspaceView.d.ts +0 -2
  877. package/apps/app-lifeops/src/components/LifeOpsWorkspaceView.d.ts.map +0 -1
  878. package/apps/app-lifeops/src/components/LifeOpsWorkspaceView.js +0 -1041
  879. package/apps/app-lifeops/src/components/MessagingConnectorCards.d.ts +0 -7
  880. package/apps/app-lifeops/src/components/MessagingConnectorCards.d.ts.map +0 -1
  881. package/apps/app-lifeops/src/components/MessagingConnectorCards.js +0 -643
  882. package/apps/app-lifeops/src/components/MissingSourceCard.d.ts +0 -9
  883. package/apps/app-lifeops/src/components/MissingSourceCard.d.ts.map +0 -1
  884. package/apps/app-lifeops/src/components/MissingSourceCard.js +0 -5
  885. package/apps/app-lifeops/src/components/MobileSignalsSetupCard.d.ts +0 -2
  886. package/apps/app-lifeops/src/components/MobileSignalsSetupCard.d.ts.map +0 -1
  887. package/apps/app-lifeops/src/components/MobileSignalsSetupCard.js +0 -163
  888. package/apps/app-lifeops/src/components/SleepInspectionPanel.d.ts +0 -8
  889. package/apps/app-lifeops/src/components/SleepInspectionPanel.d.ts.map +0 -1
  890. package/apps/app-lifeops/src/components/SleepInspectionPanel.js +0 -59
  891. package/apps/app-lifeops/src/components/WebsiteBlockerSettingsCard.d.ts +0 -3
  892. package/apps/app-lifeops/src/components/WebsiteBlockerSettingsCard.d.ts.map +0 -1
  893. package/apps/app-lifeops/src/components/WebsiteBlockerSettingsCard.js +0 -75
  894. package/apps/app-lifeops/src/components/WhatsAppQrOverlay.d.ts +0 -8
  895. package/apps/app-lifeops/src/components/WhatsAppQrOverlay.d.ts.map +0 -1
  896. package/apps/app-lifeops/src/components/WhatsAppQrOverlay.js +0 -48
  897. package/apps/app-lifeops/src/components/lifeops-labels.d.ts +0 -2
  898. package/apps/app-lifeops/src/components/lifeops-labels.d.ts.map +0 -1
  899. package/apps/app-lifeops/src/components/lifeops-labels.js +0 -5
  900. package/apps/app-lifeops/src/events/index.d.ts +0 -34
  901. package/apps/app-lifeops/src/events/index.d.ts.map +0 -1
  902. package/apps/app-lifeops/src/events/index.js +0 -23
  903. package/apps/app-lifeops/src/hooks/useCalendarWeek.d.ts +0 -28
  904. package/apps/app-lifeops/src/hooks/useCalendarWeek.d.ts.map +0 -1
  905. package/apps/app-lifeops/src/hooks/useCalendarWeek.js +0 -93
  906. package/apps/app-lifeops/src/hooks/useDiscordConnector.d.ts +0 -14
  907. package/apps/app-lifeops/src/hooks/useDiscordConnector.d.ts.map +0 -1
  908. package/apps/app-lifeops/src/hooks/useDiscordConnector.js +0 -126
  909. package/apps/app-lifeops/src/hooks/useGoogleLifeOpsConnector.d.ts +0 -29
  910. package/apps/app-lifeops/src/hooks/useGoogleLifeOpsConnector.d.ts.map +0 -1
  911. package/apps/app-lifeops/src/hooks/useGoogleLifeOpsConnector.js +0 -481
  912. package/apps/app-lifeops/src/hooks/useIMessageConnector.d.ts +0 -10
  913. package/apps/app-lifeops/src/hooks/useIMessageConnector.d.ts.map +0 -1
  914. package/apps/app-lifeops/src/hooks/useIMessageConnector.js +0 -50
  915. package/apps/app-lifeops/src/hooks/useInbox.d.ts +0 -34
  916. package/apps/app-lifeops/src/hooks/useInbox.d.ts.map +0 -1
  917. package/apps/app-lifeops/src/hooks/useInbox.js +0 -98
  918. package/apps/app-lifeops/src/hooks/useLifeOpsActivitySignals.d.ts +0 -2
  919. package/apps/app-lifeops/src/hooks/useLifeOpsActivitySignals.d.ts.map +0 -1
  920. package/apps/app-lifeops/src/hooks/useLifeOpsActivitySignals.js +0 -383
  921. package/apps/app-lifeops/src/hooks/useLifeOpsAppState.d.ts +0 -9
  922. package/apps/app-lifeops/src/hooks/useLifeOpsAppState.d.ts.map +0 -1
  923. package/apps/app-lifeops/src/hooks/useLifeOpsAppState.js +0 -83
  924. package/apps/app-lifeops/src/hooks/useLifeOpsCapabilitiesStatus.d.ts +0 -8
  925. package/apps/app-lifeops/src/hooks/useLifeOpsCapabilitiesStatus.d.ts.map +0 -1
  926. package/apps/app-lifeops/src/hooks/useLifeOpsCapabilitiesStatus.js +0 -60
  927. package/apps/app-lifeops/src/hooks/useLifeOpsScheduleInspection.d.ts +0 -18
  928. package/apps/app-lifeops/src/hooks/useLifeOpsScheduleInspection.d.ts.map +0 -1
  929. package/apps/app-lifeops/src/hooks/useLifeOpsScheduleInspection.js +0 -66
  930. package/apps/app-lifeops/src/hooks/useLifeOpsScheduleState.d.ts +0 -14
  931. package/apps/app-lifeops/src/hooks/useLifeOpsScheduleState.d.ts.map +0 -1
  932. package/apps/app-lifeops/src/hooks/useLifeOpsScheduleState.js +0 -79
  933. package/apps/app-lifeops/src/hooks/useLifeOpsSection.d.ts +0 -18
  934. package/apps/app-lifeops/src/hooks/useLifeOpsSection.d.ts.map +0 -1
  935. package/apps/app-lifeops/src/hooks/useLifeOpsSection.js +0 -78
  936. package/apps/app-lifeops/src/hooks/useLifeOpsXConnector.d.ts +0 -14
  937. package/apps/app-lifeops/src/hooks/useLifeOpsXConnector.d.ts.map +0 -1
  938. package/apps/app-lifeops/src/hooks/useLifeOpsXConnector.js +0 -160
  939. package/apps/app-lifeops/src/hooks/useSignalConnector.d.ts +0 -16
  940. package/apps/app-lifeops/src/hooks/useSignalConnector.d.ts.map +0 -1
  941. package/apps/app-lifeops/src/hooks/useSignalConnector.js +0 -198
  942. package/apps/app-lifeops/src/hooks/useTelegramConnector.d.ts +0 -21
  943. package/apps/app-lifeops/src/hooks/useTelegramConnector.d.ts.map +0 -1
  944. package/apps/app-lifeops/src/hooks/useTelegramConnector.js +0 -177
  945. package/apps/app-lifeops/src/hooks/useWhatsAppConnector.d.ts +0 -8
  946. package/apps/app-lifeops/src/hooks/useWhatsAppConnector.d.ts.map +0 -1
  947. package/apps/app-lifeops/src/hooks/useWhatsAppConnector.js +0 -58
  948. package/apps/app-lifeops/src/hooks/useWhatsAppPairing.d.ts +0 -12
  949. package/apps/app-lifeops/src/hooks/useWhatsAppPairing.d.ts.map +0 -1
  950. package/apps/app-lifeops/src/hooks/useWhatsAppPairing.js +0 -159
  951. package/apps/app-lifeops/src/lifeops-route.d.ts +0 -74
  952. package/apps/app-lifeops/src/lifeops-route.d.ts.map +0 -1
  953. package/apps/app-lifeops/src/lifeops-route.js +0 -204
  954. package/apps/app-lifeops/src/platform/lifeops-github.d.ts +0 -15
  955. package/apps/app-lifeops/src/platform/lifeops-github.d.ts.map +0 -1
  956. package/apps/app-lifeops/src/platform/lifeops-github.js +0 -135
  957. package/apps/app-lifeops/src/types/app-blocker-settings-card.d.ts +0 -2
  958. package/apps/app-lifeops/src/types/app-blocker-settings-card.d.ts.map +0 -1
  959. package/apps/app-lifeops/src/types/app-blocker-settings-card.js +0 -1
  960. package/apps/app-lifeops/src/types/index.d.ts +0 -3
  961. package/apps/app-lifeops/src/types/index.d.ts.map +0 -1
  962. package/apps/app-lifeops/src/types/index.js +0 -1
  963. package/apps/app-lifeops/src/types/website-blocker-settings-card.d.ts +0 -2
  964. package/apps/app-lifeops/src/types/website-blocker-settings-card.d.ts.map +0 -1
  965. package/apps/app-lifeops/src/types/website-blocker-settings-card.js +0 -1
  966. package/apps/app-lifeops/src/ui.d.ts +0 -11
  967. package/apps/app-lifeops/src/ui.d.ts.map +0 -1
  968. package/apps/app-lifeops/src/ui.js +0 -9
  969. package/apps/app-lifeops/src/utils/lifeops-url.d.ts +0 -5
  970. package/apps/app-lifeops/src/utils/lifeops-url.d.ts.map +0 -1
  971. package/apps/app-lifeops/src/utils/lifeops-url.js +0 -35
  972. package/packages/native-plugins/mobile-signals/src/definitions.d.ts +0 -162
  973. package/packages/native-plugins/mobile-signals/src/definitions.d.ts.map +0 -1
  974. package/packages/native-plugins/mobile-signals/src/definitions.js +0 -1
  975. package/packages/native-plugins/mobile-signals/src/index.d.ts +0 -4
  976. package/packages/native-plugins/mobile-signals/src/index.d.ts.map +0 -1
  977. package/packages/native-plugins/mobile-signals/src/index.js +0 -6
  978. package/packages/native-plugins/mobile-signals/src/web.d.ts +0 -29
  979. package/packages/native-plugins/mobile-signals/src/web.d.ts.map +0 -1
  980. package/packages/native-plugins/mobile-signals/src/web.js +0 -269
@@ -1,491 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { Button, client, Input, openExternalUrl, Spinner, useApp, useMediaQuery, } from "@elizaos/app-core";
3
- import { LIFEOPS_INBOX_CHANNELS, } from "@elizaos/shared";
4
- import { AlarmClock, ArrowLeft, AtSign, CalendarClock, ExternalLink, MessageCircle, MessageSquare, MessageSquareReply, Phone, Search, Send, Shield, Smartphone, Sparkles, } from "lucide-react";
5
- import { useCallback, useEffect, useMemo, useState, } from "react";
6
- import { useInbox, } from "../hooks/useInbox.js";
7
- import { buildMessageChatPrefill, buildReplyPrefill, useLifeOpsChatLauncher, } from "./LifeOpsChatAdapter.js";
8
- import { useLifeOpsSelection, } from "./LifeOpsSelectionContext.js";
9
- const CHANNEL_STYLES = {
10
- gmail: {
11
- label: "Gmail",
12
- bg: "bg-rose-500/16",
13
- ring: "ring-rose-500/40",
14
- text: "text-rose-300",
15
- icon: _jsx(AtSign, { className: "h-3.5 w-3.5", "aria-hidden": true }),
16
- },
17
- x_dm: {
18
- label: "X DMs",
19
- bg: "bg-zinc-500/18",
20
- ring: "ring-zinc-400/40",
21
- text: "text-zinc-200",
22
- icon: _jsx(MessageSquareReply, { className: "h-3.5 w-3.5", "aria-hidden": true }),
23
- },
24
- discord: {
25
- label: "Discord",
26
- bg: "bg-indigo-500/18",
27
- ring: "ring-indigo-500/40",
28
- text: "text-indigo-300",
29
- icon: _jsx(MessageCircle, { className: "h-3.5 w-3.5", "aria-hidden": true }),
30
- },
31
- telegram: {
32
- label: "Telegram",
33
- bg: "bg-sky-500/18",
34
- ring: "ring-sky-500/40",
35
- text: "text-sky-300",
36
- icon: _jsx(Send, { className: "h-3.5 w-3.5", "aria-hidden": true }),
37
- },
38
- signal: {
39
- label: "Signal",
40
- bg: "bg-blue-500/18",
41
- ring: "ring-blue-500/40",
42
- text: "text-blue-300",
43
- icon: _jsx(Shield, { className: "h-3.5 w-3.5", "aria-hidden": true }),
44
- },
45
- imessage: {
46
- label: "iMessage",
47
- bg: "bg-emerald-500/18",
48
- ring: "ring-emerald-500/40",
49
- text: "text-emerald-300",
50
- icon: _jsx(MessageSquare, { className: "h-3.5 w-3.5", "aria-hidden": true }),
51
- },
52
- whatsapp: {
53
- label: "WhatsApp",
54
- bg: "bg-lime-500/18",
55
- ring: "ring-lime-500/40",
56
- text: "text-lime-300",
57
- icon: _jsx(Smartphone, { className: "h-3.5 w-3.5", "aria-hidden": true }),
58
- },
59
- sms: {
60
- label: "SMS",
61
- bg: "bg-amber-500/18",
62
- ring: "ring-amber-500/40",
63
- text: "text-amber-300",
64
- icon: _jsx(Phone, { className: "h-3.5 w-3.5", "aria-hidden": true }),
65
- },
66
- };
67
- const ALL_CHANNEL_STYLE = {
68
- label: "All",
69
- bg: "bg-violet-500/16",
70
- ring: "ring-violet-500/40",
71
- text: "text-violet-300",
72
- icon: _jsx(MessageSquare, { className: "h-3.5 w-3.5", "aria-hidden": true }),
73
- };
74
- export const LIFEOPS_MESSAGE_CHANNELS = LIFEOPS_INBOX_CHANNELS.filter((channel) => channel !== "gmail");
75
- export const LIFEOPS_MAIL_CHANNELS = ["gmail"];
76
- const SMALL_GROUP_PARTICIPANT_CAP = 15;
77
- const IMPORTANT_PRIORITY_SCORE_THRESHOLD = 70;
78
- const MISSED_REPLY_GAP_MS = 24 * 60 * 60 * 1000;
79
- const MISSED_MIN_PRIORITY = 50;
80
- const ALL_GMAIL_ACCOUNTS = "__all__";
81
- function styleFor(channel) {
82
- return CHANNEL_STYLES[channel];
83
- }
84
- function styleForFilter(channel) {
85
- return channel === "all"
86
- ? ALL_CHANNEL_STYLE
87
- : CHANNEL_STYLES[channel];
88
- }
89
- function messagesForThreadGroup(group) {
90
- const messages = Array.isArray(group.messages) ? group.messages : [];
91
- return messages.length > 0 ? messages : [group.latestMessage];
92
- }
93
- function computeMissedAgeMs(message) {
94
- if (typeof message.repliedAt === "string" && message.repliedAt.length > 0) {
95
- return null;
96
- }
97
- const received = Date.parse(message.receivedAt);
98
- if (!Number.isFinite(received))
99
- return null;
100
- const age = Date.now() - received;
101
- return age >= MISSED_REPLY_GAP_MS ? age : null;
102
- }
103
- function formatMissedAge(ageMs) {
104
- const days = Math.floor(ageMs / (24 * 60 * 60 * 1000));
105
- if (days >= 1)
106
- return `${days}d ago`;
107
- const hours = Math.max(1, Math.floor(ageMs / (60 * 60 * 1000)));
108
- return `${hours}h ago`;
109
- }
110
- function formatRelativeTime(receivedAt) {
111
- const parsed = Date.parse(receivedAt);
112
- if (!Number.isFinite(parsed))
113
- return "";
114
- const diffMs = Date.now() - parsed;
115
- const diffMin = Math.floor(diffMs / 60_000);
116
- if (diffMin < 1)
117
- return "now";
118
- if (diffMin < 60)
119
- return `${diffMin}m`;
120
- const diffH = Math.floor(diffMin / 60);
121
- if (diffH < 24)
122
- return `${diffH}h`;
123
- const diffD = Math.floor(diffH / 24);
124
- return `${diffD}d`;
125
- }
126
- function formatAbsoluteTime(receivedAt) {
127
- const parsed = Date.parse(receivedAt);
128
- return Number.isFinite(parsed) ? new Date(parsed).toLocaleString() : "";
129
- }
130
- function initialsFor(name) {
131
- const parts = name.trim().split(/\s+/).filter(Boolean);
132
- if (parts.length === 0)
133
- return "?";
134
- if (parts.length === 1)
135
- return parts[0]?.slice(0, 2).toUpperCase() ?? "?";
136
- return `${parts[0]?.[0] ?? ""}${parts[1]?.[0] ?? ""}`.toUpperCase();
137
- }
138
- function ChannelChip({ channel, active, count, unread, onClick, }) {
139
- const style = styleForFilter(channel);
140
- return (_jsxs("button", { type: "button", onClick: () => onClick(channel), "aria-pressed": active, className: [
141
- "group inline-flex items-center gap-1.5 rounded-full px-2.5 py-1 text-[11px] font-medium transition-colors",
142
- active
143
- ? `${style.bg} ${style.text} ring-1 ${style.ring}`
144
- : "bg-bg-muted/30 text-muted hover:text-txt",
145
- ].join(" "), children: [_jsx("span", { className: `shrink-0 ${active ? style.text : "text-muted/80"}`, children: style.icon }), _jsx("span", { children: style.label }), count > 0 ? (_jsx("span", { className: `ml-0.5 rounded-full px-1.5 text-[10px] tabular-nums ${unread > 0 ? `${style.text} bg-white/4` : "text-muted bg-white/4"}`, children: unread > 0 ? unread : count })) : null] }));
146
- }
147
- function GmailAccountChip({ label, active, onClick, }) {
148
- const style = CHANNEL_STYLES.gmail;
149
- return (_jsxs("button", { type: "button", onClick: onClick, "aria-pressed": active, className: [
150
- "inline-flex items-center gap-1.5 rounded-full px-2.5 py-1 text-[11px] font-medium transition-colors",
151
- active
152
- ? `${style.bg} ${style.text} ring-1 ${style.ring}`
153
- : "bg-bg-muted/30 text-muted hover:text-txt",
154
- ].join(" "), children: [_jsx("span", { className: `shrink-0 ${active ? style.text : "text-muted/80"}`, children: style.icon }), _jsx("span", { children: label })] }));
155
- }
156
- function ThreadRow({ group, selected, onSelect, onReply, showAccountSubtitle, }) {
157
- const message = group.latestMessage;
158
- const style = styleFor(message.channel);
159
- const subject = message.subject?.trim() || `${style.label} message`;
160
- const score = group.maxPriorityScore ?? message.priorityScore ?? 0;
161
- const category = group.priorityCategory ?? message.priorityCategory ?? null;
162
- const isImportant = score >= IMPORTANT_PRIORITY_SCORE_THRESHOLD || category === "important";
163
- const isPlanning = category === "planning";
164
- const missedAge = computeMissedAgeMs(message);
165
- const isMissed = missedAge !== null && score >= MISSED_MIN_PRIORITY;
166
- const senderLabel = group.chatType === "group" && typeof group.participantCount === "number"
167
- ? `${message.sender.displayName} (${group.participantCount})`
168
- : message.sender.displayName;
169
- return (_jsxs("div", { role: "option", "aria-selected": selected, tabIndex: 0, onClick: onSelect, onKeyDown: (e) => {
170
- if (e.key === "Enter" || e.key === " ") {
171
- e.preventDefault();
172
- onSelect();
173
- }
174
- }, className: [
175
- "group flex cursor-pointer items-start gap-3 border-l-2 px-3 py-2.5 transition-colors",
176
- selected
177
- ? "border-accent bg-accent/8"
178
- : message.unread
179
- ? "border-transparent bg-bg/30 hover:bg-bg-muted/30"
180
- : "border-transparent hover:bg-bg-muted/20",
181
- ].join(" "), children: [_jsxs("div", { className: "relative h-8 w-8 shrink-0", children: [_jsx("div", { className: `flex h-full w-full items-center justify-center overflow-hidden rounded-full text-[11px] font-semibold ${style.bg} ${style.text}`, children: message.sender.avatarUrl ? (_jsx("img", { src: message.sender.avatarUrl, alt: "", "aria-hidden": true, className: "h-full w-full object-cover" })) : (initialsFor(message.sender.displayName)) }), _jsx("span", { className: `pointer-events-none absolute -bottom-1 -right-1 inline-flex h-4 w-4 items-center justify-center rounded-full bg-bg ring-2 ring-bg ${style.text} [&>svg]:h-2.5 [&>svg]:w-2.5`, "aria-hidden": true, children: style.icon })] }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "flex items-baseline justify-between gap-2", children: [_jsx("span", { className: `truncate text-sm ${message.unread
182
- ? "font-semibold text-txt"
183
- : "font-medium text-txt/85"}`, children: senderLabel }), _jsxs("div", { className: "flex shrink-0 items-center gap-1.5", children: [group.totalCount > 1 ? (_jsx("span", { className: "text-[10px] tabular-nums text-muted", children: group.totalCount })) : null, group.unreadCount > 0 ? (_jsx("span", { className: "h-1.5 w-1.5 rounded-full bg-accent" })) : null, _jsx("span", { className: "text-[10px] tabular-nums text-muted", children: formatRelativeTime(message.receivedAt) })] })] }), _jsx("div", { className: "mt-0.5 truncate text-xs text-muted", children: subject }), _jsx("div", { className: "mt-0.5 line-clamp-1 text-[11px] text-muted/70", children: message.snippet }), _jsxs("div", { className: "mt-1 flex flex-wrap items-center gap-1.5", children: [isImportant ? (_jsxs("span", { className: "inline-flex items-center gap-1 rounded-full bg-amber-500/16 px-1.5 py-0.5 text-[10px] font-semibold text-amber-300 ring-1 ring-amber-500/40", title: `Priority score ${score}`, children: [_jsx(Sparkles, { className: "h-2.5 w-2.5", "aria-hidden": true }), "Important"] })) : null, isPlanning ? (_jsxs("span", { className: "inline-flex items-center gap-1 rounded-full bg-sky-500/16 px-1.5 py-0.5 text-[10px] font-semibold text-sky-300 ring-1 ring-sky-500/40", children: [_jsx(CalendarClock, { className: "h-2.5 w-2.5", "aria-hidden": true }), "Planning"] })) : null, showAccountSubtitle && message.gmailAccountEmail ? (_jsx("span", { className: "truncate text-[10px] text-muted/70", children: message.gmailAccountEmail })) : null] })] }), _jsxs("div", { className: "flex shrink-0 flex-col items-end gap-1", children: [isMissed && missedAge !== null ? (_jsxs("span", { className: "inline-flex items-center gap-1 rounded-full bg-amber-500/16 px-1.5 py-0.5 text-[10px] font-semibold text-amber-300 ring-1 ring-amber-500/40", title: "Unreplied for over 24h", children: [_jsx(AlarmClock, { className: "h-2.5 w-2.5", "aria-hidden": true }), "Missed \u00B7 ", formatMissedAge(missedAge)] })) : null, _jsx("button", { type: "button", "aria-label": "Reply", onClick: (e) => {
184
- e.stopPropagation();
185
- onReply();
186
- }, className: "mt-0.5 rounded-full p-1.5 text-muted opacity-0 transition-opacity hover:bg-bg-muted/40 hover:text-txt group-hover:opacity-100", children: _jsx(MessageSquareReply, { className: "h-3.5 w-3.5" }) })] })] }));
187
- }
188
- function MessageRow({ message, selected, onSelect, onReply, }) {
189
- const style = styleFor(message.channel);
190
- const subject = message.subject?.trim() || `${style.label} message`;
191
- return (_jsxs("div", { role: "option", "aria-selected": selected, tabIndex: 0, onClick: onSelect, onKeyDown: (e) => {
192
- if (e.key === "Enter" || e.key === " ") {
193
- e.preventDefault();
194
- onSelect();
195
- }
196
- }, className: [
197
- "group flex cursor-pointer items-start gap-3 border-l-2 px-3 py-2.5 transition-colors",
198
- selected
199
- ? "border-accent bg-accent/8"
200
- : message.unread
201
- ? "border-transparent bg-bg/30 hover:bg-bg-muted/30"
202
- : "border-transparent hover:bg-bg-muted/20",
203
- ].join(" "), children: [_jsxs("div", { className: "relative h-8 w-8 shrink-0", children: [_jsx("div", { className: `flex h-full w-full items-center justify-center overflow-hidden rounded-full text-[11px] font-semibold ${style.bg} ${style.text}`, children: message.sender.avatarUrl ? (_jsx("img", { src: message.sender.avatarUrl, alt: "", "aria-hidden": true, className: "h-full w-full object-cover" })) : (initialsFor(message.sender.displayName)) }), _jsx("span", { className: `pointer-events-none absolute -bottom-1 -right-1 inline-flex h-4 w-4 items-center justify-center rounded-full bg-bg ring-2 ring-bg ${style.text} [&>svg]:h-2.5 [&>svg]:w-2.5`, "aria-hidden": true, children: style.icon })] }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("div", { className: "flex items-baseline justify-between gap-2", children: [_jsx("span", { className: `truncate text-sm ${message.unread
204
- ? "font-semibold text-txt"
205
- : "font-medium text-txt/85"}`, children: message.sender.displayName }), _jsxs("div", { className: "flex shrink-0 items-center gap-1.5", children: [message.unread ? (_jsx("span", { className: "h-1.5 w-1.5 rounded-full bg-accent" })) : null, _jsx("span", { className: "text-[10px] tabular-nums text-muted", children: formatRelativeTime(message.receivedAt) })] })] }), _jsx("div", { className: "mt-0.5 truncate text-xs text-muted", children: subject }), _jsx("div", { className: "mt-0.5 line-clamp-1 text-[11px] text-muted/70", children: message.snippet })] }), _jsx("button", { type: "button", "aria-label": "Reply", onClick: (e) => {
206
- e.stopPropagation();
207
- onReply();
208
- }, className: "mt-0.5 shrink-0 rounded-full p-1.5 text-muted opacity-0 transition-opacity hover:bg-bg-muted/40 hover:text-txt group-hover:opacity-100", children: _jsx(MessageSquareReply, { className: "h-3.5 w-3.5" }) })] }));
209
- }
210
- function ReaderPane({ threadGroup, onReply, onChat, onBack, }) {
211
- const { t } = useApp();
212
- const message = threadGroup?.latestMessage ?? null;
213
- if (!message) {
214
- return (_jsx("div", { className: "flex flex-1 items-center justify-center bg-bg/20 text-xs text-muted", children: _jsxs("div", { className: "flex flex-col items-center gap-2 text-center", children: [_jsx(MessageSquare, { className: "h-6 w-6 text-muted/50", "aria-hidden": true }), t("lifeopsInbox.selectMessage", {
215
- defaultValue: "Select a message",
216
- })] }) }));
217
- }
218
- const style = styleFor(message.channel);
219
- const subject = message.subject?.trim() || `${style.label} message`;
220
- const receivedAt = formatAbsoluteTime(message.receivedAt);
221
- const threadMessages = threadGroup
222
- ? [...messagesForThreadGroup(threadGroup)].sort((left, right) => Date.parse(left.receivedAt) - Date.parse(right.receivedAt))
223
- : [];
224
- return (_jsxs("div", { className: "flex flex-1 flex-col overflow-hidden bg-bg/10", children: [_jsxs("div", { className: "flex items-start gap-3 border-b border-border/12 px-5 py-4", children: [onBack ? (_jsx("button", { type: "button", "aria-label": t("lifeopsInbox.backToList", {
225
- defaultValue: "Back to inbox list",
226
- }), onClick: onBack, className: "mt-0.5 inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-full text-muted transition-colors hover:bg-bg-muted/40 hover:text-txt", children: _jsx(ArrowLeft, { className: "h-4 w-4" }) })) : null, _jsx("div", { className: `flex h-10 w-10 shrink-0 items-center justify-center overflow-hidden rounded-full text-xs font-semibold ${style.bg} ${style.text}`, children: message.sender.avatarUrl ? (_jsx("img", { src: message.sender.avatarUrl, alt: "", "aria-hidden": true, className: "h-full w-full object-cover" })) : (initialsFor(message.sender.displayName)) }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("div", { className: "text-base font-semibold text-txt", children: subject }), _jsxs("div", { className: "mt-0.5 flex flex-wrap items-center gap-2 text-xs text-muted", children: [_jsxs("span", { className: `inline-flex items-center gap-1 ${style.text}`, children: [style.icon, style.label] }), _jsx("span", { children: "\u00B7" }), _jsx("span", { children: threadMessages.length > 1
227
- ? `${threadMessages.length} messages`
228
- : message.sender.displayName }), receivedAt ? (_jsxs(_Fragment, { children: [_jsx("span", { children: "\u00B7" }), _jsx("span", { children: receivedAt })] })) : null] })] })] }), _jsx("div", { className: "flex-1 overflow-y-auto px-5 py-4", children: _jsx("div", { className: "space-y-3", children: (threadMessages.length > 0 ? threadMessages : [message]).map((item) => {
229
- const itemStyle = styleFor(item.channel);
230
- return (_jsxs("article", { className: "rounded-xl border border-border/12 bg-bg/20 px-3 py-3", children: [_jsxs("div", { className: "flex items-start justify-between gap-3", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "truncate text-sm font-medium text-txt", children: item.sender.displayName }), _jsxs("div", { className: "mt-0.5 flex flex-wrap items-center gap-1.5 text-[11px] text-muted", children: [_jsxs("span", { className: `inline-flex items-center gap-1 ${itemStyle.text}`, children: [itemStyle.icon, itemStyle.label] }), item.sender.email ? (_jsx("span", { children: item.sender.email })) : null] })] }), _jsx("span", { className: "shrink-0 text-[11px] tabular-nums text-muted", children: formatAbsoluteTime(item.receivedAt) })] }), _jsx("p", { className: "mt-3 whitespace-pre-wrap text-sm leading-relaxed text-txt/85", children: item.snippet })] }, item.id));
231
- }) }) }), _jsxs("div", { className: "flex flex-wrap items-center gap-2 border-t border-border/12 px-5 py-3", children: [_jsxs(Button, { size: "sm", className: "h-8 rounded-xl px-3 text-xs font-semibold", onClick: () => onReply(message), children: [_jsx(MessageSquareReply, { className: "mr-1.5 h-3.5 w-3.5" }), t("lifeopsInbox.reply", { defaultValue: "Reply" })] }), _jsxs(Button, { size: "sm", variant: "ghost", className: "h-8 rounded-xl px-3 text-xs font-semibold text-muted", onClick: () => onChat(message), children: [_jsx(MessageSquare, { className: "mr-1.5 h-3.5 w-3.5" }), t("common.chat", { defaultValue: "Chat" })] }), message.channel === "gmail" ? (_jsx(InboxUnsubscribeButton, { message: message })) : null, message.deepLink ? (_jsxs(Button, { size: "sm", variant: "ghost", className: "h-8 rounded-xl px-3 text-xs font-semibold text-muted", onClick: () => message.deepLink && void openExternalUrl(message.deepLink), children: [_jsx(ExternalLink, { className: "mr-1.5 h-3.5 w-3.5" }), t("lifeopsInbox.openSource", { defaultValue: "Open source" })] })) : null] })] }));
232
- }
233
- function InboxUnsubscribeButton({ message, }) {
234
- const senderEmail = message.sender.email?.trim().toLowerCase() || null;
235
- const [state, setState] = useState("idle");
236
- const [note, setNote] = useState(null);
237
- const onClick = useCallback(async () => {
238
- if (!senderEmail)
239
- return;
240
- if (!window.confirm(`Send an unsubscribe request to ${senderEmail}?`)) {
241
- return;
242
- }
243
- setState("working");
244
- try {
245
- const result = await client.unsubscribeLifeOpsEmailSender({
246
- senderEmail,
247
- blockAfter: false,
248
- trashExisting: false,
249
- confirmed: true,
250
- });
251
- setState(result.record.status === "succeeded" ? "done" : "error");
252
- setNote(result.record.status);
253
- }
254
- catch (error) {
255
- setState("error");
256
- setNote(error instanceof Error ? error.message : String(error));
257
- }
258
- }, [senderEmail]);
259
- // Hide entirely when the message has no parsed From email (chat channels,
260
- // malformed Gmail headers). Showing a button that can't work is worse than
261
- // not showing it.
262
- if (!senderEmail)
263
- return null;
264
- const label = state === "working"
265
- ? "Unsubscribing…"
266
- : state === "done"
267
- ? "Unsubscribed"
268
- : state === "error"
269
- ? `Failed${note ? `: ${note}` : ""}`
270
- : "Unsubscribe";
271
- return (_jsx(Button, { size: "sm", variant: "ghost", className: "h-8 rounded-xl px-3 text-xs font-semibold text-muted", disabled: state === "working" || state === "done", onClick: () => void onClick(), title: `Send RFC 8058 one-click unsubscribe to ${senderEmail}`, children: label }));
272
- }
273
- function InboxListPane({ inbox, selectedMessageId, onSelect, onReply, emptyLabel, groupedMode, visibleThreadGroups, showGmailAccountSubtitles, }) {
274
- const { t } = useApp();
275
- const isEmpty = groupedMode
276
- ? visibleThreadGroups.length === 0
277
- : inbox.messages.length === 0;
278
- return (_jsxs("div", { className: "flex min-h-0 flex-1 flex-col", children: [_jsx("div", { className: "border-b border-border/10 px-3 py-2", children: _jsxs("div", { className: "relative", children: [_jsx(Search, { className: "absolute left-2.5 top-2 h-3.5 w-3.5 text-muted" }), _jsx(Input, { value: inbox.searchQuery, onChange: (e) => inbox.setSearchQuery(e.target.value), placeholder: t("lifeopsInbox.search", {
279
- defaultValue: "Search…",
280
- }), "aria-label": t("lifeopsInbox.searchAria", {
281
- defaultValue: "Search inbox",
282
- }), className: "h-8 pl-8 text-xs" })] }) }), _jsx("div", { className: "min-h-0 flex-1 overflow-y-auto", role: "listbox", "aria-label": t("lifeopsInbox.listAria", {
283
- defaultValue: "Messages",
284
- }), children: isEmpty ? (_jsx("div", { className: "px-4 py-8 text-center text-xs text-muted", children: inbox.searchQuery
285
- ? t("lifeopsInbox.noResults", {
286
- defaultValue: "No matches.",
287
- })
288
- : t("lifeopsInbox.empty", {
289
- defaultValue: emptyLabel ?? "Inbox clear.",
290
- }) })) : groupedMode ? (visibleThreadGroups.map((group) => (_jsx(ThreadRow, { group: group, selected: group.latestMessage.id === selectedMessageId ||
291
- messagesForThreadGroup(group).some((message) => message.id === selectedMessageId), onSelect: () => onSelect({ messageId: group.latestMessage.id }), onReply: () => onReply(group.latestMessage), showAccountSubtitle: showGmailAccountSubtitles }, group.threadId)))) : (inbox.messages.map((msg) => (_jsx(MessageRow, { message: msg, selected: msg.id === selectedMessageId, onSelect: () => onSelect({ messageId: msg.id }), onReply: () => onReply(msg) }, msg.id)))) })] }));
292
- }
293
- export function LifeOpsInboxSection(props = {}) {
294
- const ctx = useLifeOpsSelection();
295
- const selection = props.selection ?? ctx.selection;
296
- const onSelect = props.onSelect ?? ctx.select;
297
- const { t } = useApp();
298
- const { openLifeOpsChat } = useLifeOpsChatLauncher();
299
- const compactLayout = useMediaQuery("(max-width: 767px)");
300
- const allowedChannels = props.channels ?? LIFEOPS_INBOX_CHANNELS;
301
- // Derive the section mode from the channel set passed in by the route.
302
- // Mail mode is gmail-only; everything else is the Messages section, which
303
- // hides public channels and groups with more than 15 participants.
304
- const isMailMode = allowedChannels.length === 1 && allowedChannels[0] === "gmail";
305
- const isMessagesMode = !isMailMode;
306
- const channelFilters = useMemo(() => allowedChannels.length > 1
307
- ? ["all", ...allowedChannels]
308
- : [...allowedChannels], [allowedChannels]);
309
- const [selectedGmailAccount, setSelectedGmailAccount] = useState(ALL_GMAIL_ACCOUNTS);
310
- const [missedOnly, setMissedOnly] = useState(false);
311
- const chatTypeFilter = useMemo(() => isMessagesMode
312
- ? ["dm", "group"]
313
- : isMailMode
314
- ? ["dm"]
315
- : undefined, [isMessagesMode, isMailMode]);
316
- const inbox = useInbox({
317
- maxResults: 40,
318
- channel: allowedChannels.length === 1 ? allowedChannels[0] : "all",
319
- channels: allowedChannels,
320
- groupByThread: true,
321
- chatTypeFilter,
322
- maxParticipants: isMessagesMode ? SMALL_GROUP_PARTICIPANT_CAP : undefined,
323
- gmailAccountId: isMailMode && selectedGmailAccount !== ALL_GMAIL_ACCOUNTS
324
- ? selectedGmailAccount
325
- : undefined,
326
- missedOnly: isMessagesMode ? missedOnly : false,
327
- // Mail mode keeps recency-first because email priority is less actionable.
328
- sortByPriority: isMessagesMode,
329
- });
330
- const selectedMessageId = selection.messageId ?? null;
331
- // Build the messages-by-id index from both flat messages and thread groups
332
- // so the reader pane can resolve the active message regardless of how we
333
- // ended up selecting it.
334
- const messageById = useMemo(() => {
335
- const map = new Map();
336
- for (const msg of inbox.messages)
337
- map.set(msg.id, msg);
338
- for (const group of inbox.threadGroups) {
339
- map.set(group.latestMessage.id, group.latestMessage);
340
- for (const msg of messagesForThreadGroup(group)) {
341
- map.set(msg.id, msg);
342
- }
343
- }
344
- return map;
345
- }, [inbox.messages, inbox.threadGroups]);
346
- const threadGroupByMessageId = useMemo(() => {
347
- const map = new Map();
348
- for (const group of inbox.threadGroups) {
349
- map.set(group.latestMessage.id, group);
350
- for (const msg of messagesForThreadGroup(group)) {
351
- map.set(msg.id, group);
352
- }
353
- }
354
- return map;
355
- }, [inbox.threadGroups]);
356
- const selectedMessage = (selectedMessageId ? messageById.get(selectedMessageId) : null) ?? null;
357
- const selectedThread = (selectedMessageId
358
- ? threadGroupByMessageId.get(selectedMessageId)
359
- : null) ?? null;
360
- // Distinct Gmail accounts visible in the current feed. Only show the chip
361
- // group when more than one Gmail account has produced messages.
362
- const gmailAccountOptions = useMemo(() => {
363
- if (!isMailMode)
364
- return [];
365
- const seen = new Map();
366
- for (const group of inbox.threadGroups) {
367
- const id = group.latestMessage.gmailAccountId;
368
- const email = group.latestMessage.gmailAccountEmail;
369
- if (id && email && !seen.has(id))
370
- seen.set(id, email);
371
- }
372
- if (seen.size === 0) {
373
- for (const msg of inbox.messages) {
374
- if (msg.gmailAccountId &&
375
- msg.gmailAccountEmail &&
376
- !seen.has(msg.gmailAccountId)) {
377
- seen.set(msg.gmailAccountId, msg.gmailAccountEmail);
378
- }
379
- }
380
- }
381
- return Array.from(seen.entries()).map(([id, label]) => ({ id, label }));
382
- }, [inbox.threadGroups, inbox.messages, isMailMode]);
383
- const showGmailAccountChips = isMailMode && gmailAccountOptions.length > 1;
384
- // Subtitle on every Gmail row when more than one account is connected, so
385
- // users can tell apart two senders that exist in both inboxes.
386
- const showGmailAccountSubtitles = showGmailAccountChips;
387
- // Reset to "all" if the previously selected account disappears from the
388
- // current feed (e.g. account disconnected).
389
- useEffect(() => {
390
- if (selectedGmailAccount !== ALL_GMAIL_ACCOUNTS &&
391
- !gmailAccountOptions.some((opt) => opt.id === selectedGmailAccount)) {
392
- setSelectedGmailAccount(ALL_GMAIL_ACCOUNTS);
393
- }
394
- }, [gmailAccountOptions, selectedGmailAccount]);
395
- const channelCounts = useMemo(() => {
396
- const base = Object.fromEntries(channelFilters.map((channel) => [channel, { total: 0, unread: 0 }]));
397
- for (const message of inbox.messages) {
398
- const all = base.all;
399
- if (all) {
400
- all.total++;
401
- if (message.unread)
402
- all.unread++;
403
- }
404
- const bucket = base[message.channel];
405
- if (bucket) {
406
- bucket.total++;
407
- if (message.unread)
408
- bucket.unread++;
409
- }
410
- }
411
- return base;
412
- }, [channelFilters, inbox.messages]);
413
- // Build the navigable list (thread rows in grouped modes, flat messages
414
- // otherwise) so j/k keyboard navigation walks the same items the user sees.
415
- const navigableItems = useMemo(() => inbox.threadGroups.map((g) => g.latestMessage), [inbox.threadGroups]);
416
- const navigableSelectedIndex = useMemo(() => navigableItems.findIndex((m) => m.id === selectedMessageId), [navigableItems, selectedMessageId]);
417
- const selectByIndex = useCallback((index) => {
418
- const msg = navigableItems[index];
419
- if (msg)
420
- onSelect({ messageId: msg.id });
421
- }, [navigableItems, onSelect]);
422
- const handleReply = useCallback((msg) => {
423
- const label = styleFor(msg.channel).label;
424
- const text = buildReplyPrefill({
425
- channel: msg.channel === "gmail" ? "email" : label,
426
- sender: msg.sender.displayName,
427
- snippet: msg.snippet,
428
- deepLink: msg.deepLink,
429
- });
430
- openLifeOpsChat(text, { messageId: msg.id });
431
- }, [openLifeOpsChat]);
432
- const handleChat = useCallback((msg) => {
433
- openLifeOpsChat(buildMessageChatPrefill(msg), {
434
- messageId: msg.id,
435
- });
436
- }, [openLifeOpsChat]);
437
- useEffect(() => {
438
- const handler = (e) => {
439
- const tag = e.target.tagName;
440
- if (tag === "INPUT" ||
441
- tag === "TEXTAREA" ||
442
- e.target.isContentEditable) {
443
- return;
444
- }
445
- if (e.key === "j") {
446
- e.preventDefault();
447
- selectByIndex(Math.min(navigableSelectedIndex + 1, navigableItems.length - 1));
448
- }
449
- else if (e.key === "k") {
450
- e.preventDefault();
451
- selectByIndex(Math.max(navigableSelectedIndex - 1, 0));
452
- }
453
- else if (e.key === "r" && selectedMessage) {
454
- e.preventDefault();
455
- handleReply(selectedMessage);
456
- }
457
- };
458
- window.addEventListener("keydown", handler);
459
- return () => window.removeEventListener("keydown", handler);
460
- }, [
461
- handleReply,
462
- navigableItems.length,
463
- navigableSelectedIndex,
464
- selectByIndex,
465
- selectedMessage,
466
- ]);
467
- useEffect(() => {
468
- if (!compactLayout &&
469
- navigableItems.length > 0 &&
470
- (!selectedMessageId || navigableSelectedIndex === -1)) {
471
- onSelect({ messageId: navigableItems[0].id });
472
- }
473
- }, [
474
- compactLayout,
475
- navigableItems,
476
- navigableSelectedIndex,
477
- onSelect,
478
- selectedMessageId,
479
- ]);
480
- return (_jsxs("section", { className: "flex h-full min-h-0 flex-col overflow-hidden rounded-3xl border border-border/16 bg-card/18", "data-testid": "lifeops-inbox-section", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-2 border-b border-border/12 px-3 py-2.5", children: [_jsx("div", { className: "mr-auto px-1 text-sm font-semibold text-txt", children: props.title ?? "Messages" }), channelFilters.map((ch) => {
481
- const counts = channelCounts[ch];
482
- return (_jsx(ChannelChip, { channel: ch, active: inbox.channel === ch, count: counts?.total ?? 0, unread: counts?.unread ?? 0, onClick: inbox.setChannel }, ch));
483
- }), isMessagesMode ? (_jsxs("button", { type: "button", "aria-pressed": missedOnly, onClick: () => setMissedOnly((prev) => !prev), title: t("lifeopsInbox.missedTooltip", {
484
- defaultValue: "Threads you have not replied to in 24h with priority ≥ 50",
485
- }), className: [
486
- "inline-flex items-center gap-1.5 rounded-full px-2.5 py-1 text-[11px] font-medium transition-colors",
487
- missedOnly
488
- ? "bg-amber-500/16 text-amber-300 ring-1 ring-amber-500/40"
489
- : "bg-bg-muted/30 text-muted hover:text-txt",
490
- ].join(" "), children: [_jsx(AlarmClock, { className: "h-3.5 w-3.5", "aria-hidden": true }), t("lifeopsInbox.missed", { defaultValue: "Missed" })] })) : null] }), showGmailAccountChips ? (_jsxs("div", { className: "flex flex-wrap items-center gap-2 border-b border-border/10 px-3 py-2", children: [_jsx(GmailAccountChip, { label: t("lifeopsInbox.allGmail", { defaultValue: "All Gmail" }), active: selectedGmailAccount === ALL_GMAIL_ACCOUNTS, onClick: () => setSelectedGmailAccount(ALL_GMAIL_ACCOUNTS) }), gmailAccountOptions.map((opt) => (_jsx(GmailAccountChip, { label: `Gmail · ${opt.label}`, active: selectedGmailAccount === opt.id, onClick: () => setSelectedGmailAccount(opt.id) }, opt.id)))] })) : null, inbox.error ? (_jsx("div", { className: "px-5 py-4 text-xs text-rose-300", children: inbox.error })) : inbox.loading && inbox.messages.length === 0 ? (_jsxs("div", { className: "flex items-center gap-2 px-5 py-8 text-xs text-muted", children: [_jsx(Spinner, { size: 14 }), t("lifeopsInbox.loading", { defaultValue: "Loading inbox…" })] })) : (_jsx("div", { className: "flex min-h-0 flex-1", children: compactLayout ? (selectedThread ? (_jsx(ReaderPane, { threadGroup: selectedThread, onReply: handleReply, onChat: handleChat, onBack: () => onSelect({ messageId: null }) })) : (_jsx(InboxListPane, { inbox: inbox, selectedMessageId: selectedMessageId, onSelect: onSelect, onReply: handleReply, emptyLabel: props.emptyLabel, groupedMode: true, visibleThreadGroups: inbox.threadGroups, showGmailAccountSubtitles: showGmailAccountSubtitles }))) : (_jsxs(_Fragment, { children: [_jsx("div", { className: "flex w-72 shrink-0 flex-col border-r border-border/12", children: _jsx(InboxListPane, { inbox: inbox, selectedMessageId: selectedMessageId, onSelect: onSelect, onReply: handleReply, emptyLabel: props.emptyLabel, groupedMode: true, visibleThreadGroups: inbox.threadGroups, showGmailAccountSubtitles: showGmailAccountSubtitles }) }), _jsx(ReaderPane, { threadGroup: selectedThread, onReply: handleReply, onChat: handleChat })] })) }))] }));
491
- }
@@ -1,12 +0,0 @@
1
- import { type JSX } from "react";
2
- import type { LifeOpsPaymentSource } from "../lifeops/payment-types.js";
3
- interface LifeOpsLinkBankButtonProps {
4
- onLinked?: (source: LifeOpsPaymentSource) => void;
5
- /** Optional override for the trigger label. Default: "Link bank with Plaid". */
6
- label?: string;
7
- /** Optional override for the disabled-state title. */
8
- unavailableTitle?: string;
9
- }
10
- export declare function LifeOpsLinkBankButton({ onLinked, label, unavailableTitle, }: LifeOpsLinkBankButtonProps): JSX.Element;
11
- export {};
12
- //# sourceMappingURL=LifeOpsLinkBankButton.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LifeOpsLinkBankButton.d.ts","sourceRoot":"","sources":["../../../../../../../apps/app-lifeops/src/components/LifeOpsLinkBankButton.tsx"],"names":[],"mappings":"AAoBA,OAAO,EAAE,KAAK,GAAG,EAAoC,MAAM,OAAO,CAAC;AAEnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAExE,UAAU,0BAA0B;IAClC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAClD,gFAAgF;IAChF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,qBAAqB,CAAC,EACpC,QAAQ,EACR,KAA8B,EAC9B,gBAAmH,GACpH,EAAE,0BAA0B,GAAG,GAAG,CAAC,OAAO,CAyG1C"}
@@ -1,92 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * LifeOpsLinkBankButton — drives the Plaid Link flow for the Money page.
4
- *
5
- * Flow:
6
- * 1. On mount of the modal, fetch a fresh `link_token` from Eliza Cloud via
7
- * `client.createLifeOpsPlaidLinkToken()`.
8
- * 2. Hand that token to `usePlaidLink` so the Plaid Link UI can drive the
9
- * bank-selection / login / account-picker flow client-side.
10
- * 3. On `onSuccess(public_token)`, exchange the token via
11
- * `client.completeLifeOpsPlaidLink({ publicToken })`. Eliza Cloud
12
- * exchanges the public_token for a long-lived `access_token`, never
13
- * surfaces the secret to the browser, and we get back a fresh
14
- * payment-source row.
15
- * 4. Caller's `onLinked` runs the dashboard refresh.
16
- *
17
- * The Plaid `link_token` is short-lived; if the user opens the modal but
18
- * cancels, we re-fetch on the next attempt. We do NOT persist link_tokens.
19
- */
20
- import { client, useApp } from "@elizaos/app-core";
21
- import { Banknote, Loader2 } from "lucide-react";
22
- import { useCallback, useEffect, useState } from "react";
23
- import { usePlaidLink } from "react-plaid-link";
24
- export function LifeOpsLinkBankButton({ onLinked, label = "Link bank with Plaid", unavailableTitle = "Plaid link is not available — Eliza Cloud not connected, or PLAID_* env vars not set in cloud.", }) {
25
- const { elizaCloudConnected } = useApp();
26
- const [linkToken, setLinkToken] = useState(null);
27
- const [tokenError, setTokenError] = useState(null);
28
- const [tokenLoading, setTokenLoading] = useState(false);
29
- const [exchangeStatus, setExchangeStatus] = useState("idle");
30
- const [exchangeError, setExchangeError] = useState(null);
31
- const fetchLinkToken = useCallback(async () => {
32
- setTokenLoading(true);
33
- setTokenError(null);
34
- try {
35
- const data = await client.createLifeOpsPlaidLinkToken();
36
- setLinkToken(data.linkToken);
37
- }
38
- catch (err) {
39
- setTokenError(err instanceof Error ? err.message : String(err));
40
- }
41
- finally {
42
- setTokenLoading(false);
43
- }
44
- }, []);
45
- const onSuccess = useCallback(async (publicToken, _metadata) => {
46
- setExchangeStatus("exchanging");
47
- setExchangeError(null);
48
- try {
49
- const result = await client.completeLifeOpsPlaidLink({
50
- publicToken,
51
- });
52
- setExchangeStatus("done");
53
- // Burn the link_token — Plaid only allows it once, and we want a
54
- // fresh one on the next attempt.
55
- setLinkToken(null);
56
- onLinked?.(result.source);
57
- }
58
- catch (err) {
59
- setExchangeStatus("error");
60
- setExchangeError(err instanceof Error ? err.message : String(err));
61
- }
62
- }, [onLinked]);
63
- // We feed `usePlaidLink` an empty token when we don't have one yet —
64
- // the hook tolerates this and just won't be `ready`. This keeps the
65
- // hook unconditional (rules-of-hooks) and lets us drive opening on
66
- // demand without two render passes.
67
- const { open, ready } = usePlaidLink({
68
- token: linkToken ?? "",
69
- onSuccess,
70
- });
71
- // When we have a token AND Plaid Link is ready, open it automatically.
72
- // The button click only triggers `fetchLinkToken`; `open()` runs in this
73
- // effect once Link reports ready.
74
- useEffect(() => {
75
- if (linkToken && ready) {
76
- open();
77
- }
78
- }, [linkToken, ready, open]);
79
- const onClick = useCallback(() => {
80
- setExchangeStatus("idle");
81
- setExchangeError(null);
82
- void fetchLinkToken();
83
- }, [fetchLinkToken]);
84
- const disabled = !elizaCloudConnected || tokenLoading || exchangeStatus === "exchanging";
85
- return (_jsxs("div", { className: "flex flex-col gap-1", children: [_jsxs("button", { type: "button", onClick: onClick, disabled: disabled, title: !elizaCloudConnected ? unavailableTitle : undefined, className: "inline-flex items-center gap-1.5 rounded-md border border-border/30 bg-bg-muted/30 px-2.5 py-1 text-xs font-medium hover:bg-bg-muted/60 disabled:cursor-not-allowed disabled:opacity-50", children: [tokenLoading || exchangeStatus === "exchanging" ? (_jsx(Loader2, { className: "h-3.5 w-3.5 animate-spin", "aria-hidden": true })) : (_jsx(Banknote, { className: "h-3.5 w-3.5", "aria-hidden": true })), exchangeStatus === "exchanging"
86
- ? "Linking…"
87
- : exchangeStatus === "done"
88
- ? "Linked"
89
- : tokenLoading
90
- ? "Preparing Plaid…"
91
- : label] }), tokenError ? (_jsxs("span", { className: "text-[11px] text-rose-300", children: ["Plaid: ", tokenError] })) : null, exchangeError ? (_jsxs("span", { className: "text-[11px] text-rose-300", children: ["Exchange failed: ", exchangeError] })) : null] }));
92
- }
@@ -1,12 +0,0 @@
1
- import { type JSX } from "react";
2
- import type { LifeOpsPaymentSource } from "../lifeops/payment-types.js";
3
- interface LifeOpsLinkPaypalButtonProps {
4
- onLinked?: (source: LifeOpsPaymentSource, capability: {
5
- hasReporting: boolean;
6
- hasIdentity: boolean;
7
- }) => void;
8
- label?: string;
9
- }
10
- export declare function LifeOpsLinkPaypalButton({ onLinked, label, }: LifeOpsLinkPaypalButtonProps): JSX.Element;
11
- export {};
12
- //# sourceMappingURL=LifeOpsLinkPaypalButton.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LifeOpsLinkPaypalButton.d.ts","sourceRoot":"","sources":["../../../../../../../apps/app-lifeops/src/components/LifeOpsLinkPaypalButton.tsx"],"names":[],"mappings":"AAoBA,OAAO,EAAE,KAAK,GAAG,EAA4C,MAAM,OAAO,CAAC;AAC3E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAExE,UAAU,4BAA4B;IACpC,QAAQ,CAAC,EAAE,CACT,MAAM,EAAE,oBAAoB,EAC5B,UAAU,EAAE;QAAE,YAAY,EAAE,OAAO,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,KACxD,IAAI,CAAC;IACV,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAqBD,wBAAgB,uBAAuB,CAAC,EACtC,QAAQ,EACR,KAAqB,GACtB,EAAE,4BAA4B,GAAG,GAAG,CAAC,OAAO,CAwK5C"}