@elizaos/ui 2.0.0-alpha.382 → 2.0.0-alpha.385

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 (777) hide show
  1. package/apps/app-companion/src/components/avatar/VrmViewer.d.ts.map +1 -1
  2. package/apps/app-companion/src/components/avatar/VrmViewer.js +2 -1
  3. package/apps/app-companion/src/components/companion/CompanionAppView.d.ts.map +1 -1
  4. package/apps/app-companion/src/components/companion/CompanionAppView.js +2 -1
  5. package/apps/app-companion/src/components/companion/CompanionView.d.ts.map +1 -1
  6. package/apps/app-companion/src/components/companion/CompanionView.js +2 -1
  7. package/apps/app-companion/src/components/companion/EmotePicker.d.ts.map +1 -1
  8. package/apps/app-companion/src/components/companion/EmotePicker.js +1 -1
  9. package/apps/app-companion/src/components/companion/scene-overlay-bridge.d.ts.map +1 -1
  10. package/apps/app-companion/src/components/companion/scene-overlay-bridge.js +2 -1
  11. package/apps/app-companion/src/index.d.ts +3 -3
  12. package/apps/app-companion/src/index.d.ts.map +1 -1
  13. package/apps/app-companion/src/index.js +3 -3
  14. package/apps/app-elizamaker/src/drop-service.d.ts +2 -2
  15. package/apps/app-elizamaker/src/drop-service.d.ts.map +1 -1
  16. package/apps/app-elizamaker/src/twitter-verify.d.ts +2 -2
  17. package/apps/app-elizamaker/src/twitter-verify.d.ts.map +1 -1
  18. package/apps/app-lifeops/src/api/client-lifeops.d.ts +1 -1
  19. package/apps/app-lifeops/src/api/client-lifeops.d.ts.map +1 -1
  20. package/apps/app-lifeops/src/contracts/index.d.ts +1 -1
  21. package/apps/app-lifeops/src/contracts/index.d.ts.map +1 -1
  22. package/apps/app-lifeops/src/contracts/index.js +1 -1
  23. package/apps/app-lifeops/src/inbox/message-fetcher.d.ts.map +1 -1
  24. package/apps/app-lifeops/src/inbox/message-fetcher.js +4 -2
  25. package/apps/app-lifeops/src/lifeops/google-managed-client.d.ts.map +1 -1
  26. package/apps/app-lifeops/src/lifeops/google-managed-client.js +4 -3
  27. package/apps/app-lifeops/src/lifeops/paypal-managed-client.d.ts.map +1 -1
  28. package/apps/app-lifeops/src/lifeops/paypal-managed-client.js +4 -3
  29. package/apps/app-lifeops/src/lifeops/plaid-managed-client.d.ts.map +1 -1
  30. package/apps/app-lifeops/src/lifeops/plaid-managed-client.js +4 -3
  31. package/apps/app-lifeops/src/lifeops/repository.d.ts +12 -1
  32. package/apps/app-lifeops/src/lifeops/repository.d.ts.map +1 -1
  33. package/apps/app-lifeops/src/lifeops/repository.js +135 -0
  34. package/apps/app-lifeops/src/lifeops/schedule-sync-client.js +1 -1
  35. package/apps/app-lifeops/src/lifeops/schema.d.ts +4587 -3791
  36. package/apps/app-lifeops/src/lifeops/schema.d.ts.map +1 -1
  37. package/apps/app-lifeops/src/lifeops/schema.js +30 -0
  38. package/apps/app-lifeops/src/lifeops/service-mixin-inbox.d.ts +2 -0
  39. package/apps/app-lifeops/src/lifeops/service-mixin-inbox.d.ts.map +1 -1
  40. package/apps/app-lifeops/src/lifeops/service-mixin-inbox.js +103 -13
  41. package/apps/app-lifeops/src/routes/cloud-features-routes.d.ts.map +1 -1
  42. package/apps/app-lifeops/src/routes/cloud-features-routes.js +2 -1
  43. package/apps/app-lifeops/src/routes/travel-provider-relay-routes.d.ts.map +1 -1
  44. package/apps/app-lifeops/src/routes/travel-provider-relay-routes.js +2 -1
  45. package/package.json +1 -1
  46. package/packages/agent/src/actions/grounded-action-reply.d.ts.map +1 -1
  47. package/packages/agent/src/actions/grounded-action-reply.js +1 -1
  48. package/packages/agent/src/actions/index.d.ts +1 -0
  49. package/packages/agent/src/actions/index.d.ts.map +1 -1
  50. package/packages/agent/src/actions/index.js +1 -0
  51. package/packages/agent/src/actions/scratchpad.d.ts +7 -0
  52. package/packages/agent/src/actions/scratchpad.d.ts.map +1 -0
  53. package/packages/agent/src/actions/scratchpad.js +394 -0
  54. package/packages/agent/src/actions/settings-actions.js +1 -1
  55. package/packages/agent/src/actions/terminal.d.ts.map +1 -1
  56. package/packages/agent/src/actions/terminal.js +10 -2
  57. package/packages/agent/src/api/apps-routes.d.ts.map +1 -1
  58. package/packages/agent/src/api/apps-routes.js +171 -0
  59. package/packages/agent/src/api/binance-skill-helpers.d.ts.map +1 -1
  60. package/packages/agent/src/api/chat-routes.d.ts +3 -0
  61. package/packages/agent/src/api/chat-routes.d.ts.map +1 -1
  62. package/packages/agent/src/api/chat-routes.js +33 -14
  63. package/packages/agent/src/api/conversation-routes.js +2 -2
  64. package/packages/agent/src/api/misc-routes.d.ts.map +1 -1
  65. package/packages/agent/src/api/misc-routes.js +2 -2
  66. package/packages/agent/src/api/permissions-routes.js +1 -1
  67. package/packages/agent/src/api/plugin-routes.d.ts.map +1 -1
  68. package/packages/agent/src/api/plugin-routes.js +7 -1
  69. package/packages/agent/src/api/provider-switch-config.js +1 -1
  70. package/packages/agent/src/api/registry-service.d.ts +1 -1
  71. package/packages/agent/src/api/registry-service.d.ts.map +1 -1
  72. package/packages/agent/src/api/server-auth.d.ts.map +1 -1
  73. package/packages/agent/src/api/server-auth.js +119 -1
  74. package/packages/agent/src/api/server-helpers-auth.d.ts.map +1 -1
  75. package/packages/agent/src/api/server-helpers-auth.js +119 -1
  76. package/packages/agent/src/api/server-helpers-swarm.d.ts +1 -1
  77. package/packages/agent/src/api/server-helpers-swarm.d.ts.map +1 -1
  78. package/packages/agent/src/api/server-helpers.js +1 -1
  79. package/packages/agent/src/api/server-types.d.ts +2 -2
  80. package/packages/agent/src/api/server-types.d.ts.map +1 -1
  81. package/packages/agent/src/api/server.d.ts.map +1 -1
  82. package/packages/agent/src/api/server.js +5 -4
  83. package/packages/agent/src/api/training-backend-check.d.ts +1 -1
  84. package/packages/agent/src/api/training-backend-check.d.ts.map +1 -1
  85. package/packages/agent/src/api/training-backend-check.js +1 -1
  86. package/packages/agent/src/api/training-routes.d.ts +1 -1
  87. package/packages/agent/src/api/training-routes.d.ts.map +1 -1
  88. package/packages/agent/src/api/training-routes.js +1 -1
  89. package/packages/agent/src/api/training-service-like.d.ts +1 -1
  90. package/packages/agent/src/api/training-service-like.d.ts.map +1 -1
  91. package/packages/agent/src/api/trajectory-routes.d.ts +1 -1
  92. package/packages/agent/src/api/trajectory-routes.d.ts.map +1 -1
  93. package/packages/agent/src/api/trajectory-routes.js +1 -1
  94. package/packages/agent/src/api/wallet-capability.js +1 -1
  95. package/packages/agent/src/api/wallet-evm-balance.js +1 -1
  96. package/packages/agent/src/api/wallet.d.ts +1 -1
  97. package/packages/agent/src/api/wallet.d.ts.map +1 -1
  98. package/packages/agent/src/api/wallet.js +2 -2
  99. package/packages/agent/src/awareness/index.d.ts +2 -0
  100. package/packages/agent/src/awareness/index.d.ts.map +1 -0
  101. package/packages/agent/src/awareness/index.js +1 -0
  102. package/packages/agent/src/config/config.d.ts.map +1 -1
  103. package/packages/agent/src/config/config.js +2 -0
  104. package/packages/agent/src/config/index.d.ts +1 -0
  105. package/packages/agent/src/config/index.d.ts.map +1 -1
  106. package/packages/agent/src/config/index.js +1 -0
  107. package/packages/agent/src/config/model-metadata.d.ts +20 -0
  108. package/packages/agent/src/config/model-metadata.d.ts.map +1 -0
  109. package/packages/agent/src/config/model-metadata.js +133 -0
  110. package/packages/agent/src/config/zod-schema.core.d.ts +28 -28
  111. package/packages/agent/src/config/zod-schema.core.d.ts.map +1 -1
  112. package/packages/agent/src/config/zod-schema.core.js +16 -9
  113. package/packages/agent/src/config/zod-schema.d.ts +10 -10
  114. package/packages/agent/src/index.d.ts +6 -11
  115. package/packages/agent/src/index.d.ts.map +1 -1
  116. package/packages/agent/src/index.js +8 -10
  117. package/packages/agent/src/providers/media-provider.js +1 -1
  118. package/packages/agent/src/runtime/custom-actions.d.ts.map +1 -1
  119. package/packages/agent/src/runtime/custom-actions.js +1 -1
  120. package/packages/agent/src/runtime/eliza-plugin.d.ts.map +1 -1
  121. package/packages/agent/src/runtime/eliza-plugin.js +6 -0
  122. package/packages/agent/src/runtime/eliza.d.ts.map +1 -1
  123. package/packages/agent/src/runtime/eliza.js +7 -7
  124. package/packages/agent/src/runtime/prompt-optimization.d.ts +24 -1
  125. package/packages/agent/src/runtime/prompt-optimization.d.ts.map +1 -1
  126. package/packages/agent/src/runtime/prompt-optimization.js +292 -27
  127. package/packages/agent/src/runtime/trajectory-internals.d.ts +1 -0
  128. package/packages/agent/src/runtime/trajectory-internals.d.ts.map +1 -1
  129. package/packages/agent/src/runtime/trajectory-storage.d.ts.map +1 -1
  130. package/packages/agent/src/runtime/trajectory-storage.js +3 -0
  131. package/packages/agent/src/services/index.d.ts +4 -4
  132. package/packages/agent/src/services/index.d.ts.map +1 -1
  133. package/packages/agent/src/services/index.js +2 -2
  134. package/packages/agent/src/services/registry-client-app-meta.d.ts.map +1 -1
  135. package/packages/agent/src/services/registry-client-app-meta.js +0 -61
  136. package/packages/agent/src/services/skill-marketplace.d.ts.map +1 -1
  137. package/packages/app-core/src/App.js +1 -1
  138. package/packages/app-core/src/api/auth.js +1 -1
  139. package/packages/app-core/src/api/client-agent.d.ts +1 -2
  140. package/packages/app-core/src/api/client-agent.d.ts.map +1 -1
  141. package/packages/app-core/src/api/client-chat.d.ts +10 -1
  142. package/packages/app-core/src/api/client-chat.d.ts.map +1 -1
  143. package/packages/app-core/src/api/client-chat.js +33 -0
  144. package/packages/app-core/src/api/client-skills.d.ts.map +1 -1
  145. package/packages/app-core/src/api/client-types-chat.d.ts +1 -0
  146. package/packages/app-core/src/api/client-types-chat.d.ts.map +1 -1
  147. package/packages/app-core/src/api/client-types-config.d.ts +2 -2
  148. package/packages/app-core/src/api/client-types-config.d.ts.map +1 -1
  149. package/packages/app-core/src/api/client-wallet.d.ts +2 -4
  150. package/packages/app-core/src/api/client-wallet.d.ts.map +1 -1
  151. package/packages/app-core/src/api/client.d.ts +3 -4
  152. package/packages/app-core/src/api/client.d.ts.map +1 -1
  153. package/packages/app-core/src/api/client.js +1 -1
  154. package/packages/app-core/src/api/compat-route-shared.d.ts +1 -1
  155. package/packages/app-core/src/api/compat-route-shared.d.ts.map +1 -1
  156. package/packages/app-core/src/api/compat-route-shared.js +117 -1
  157. package/packages/app-core/src/api/server-cloud-tts.js +1 -1
  158. package/packages/app-core/src/api/trusted-local-request.d.ts +4 -0
  159. package/packages/app-core/src/api/trusted-local-request.d.ts.map +1 -0
  160. package/packages/app-core/src/api/trusted-local-request.js +176 -0
  161. package/packages/app-core/src/autonomy/index.d.ts.map +1 -1
  162. package/packages/app-core/src/autonomy/index.js +3 -1
  163. package/packages/app-core/src/components/auth/LoginView.d.ts +3 -23
  164. package/packages/app-core/src/components/auth/LoginView.d.ts.map +1 -1
  165. package/packages/app-core/src/components/auth/LoginView.js +43 -33
  166. package/packages/app-core/src/components/chat/AppsSection.d.ts.map +1 -1
  167. package/packages/app-core/src/components/chat/AppsSection.js +61 -6
  168. package/packages/app-core/src/components/chat/MessageContent.d.ts.map +1 -1
  169. package/packages/app-core/src/components/chat/MessageContent.js +26 -3
  170. package/packages/app-core/src/components/chat/message-choice-parser.d.ts +20 -0
  171. package/packages/app-core/src/components/chat/message-choice-parser.d.ts.map +1 -0
  172. package/packages/app-core/src/components/chat/message-choice-parser.js +53 -0
  173. package/packages/app-core/src/components/chat/widgets/ChoiceWidget.d.ts +24 -0
  174. package/packages/app-core/src/components/chat/widgets/ChoiceWidget.d.ts.map +1 -0
  175. package/packages/app-core/src/components/chat/widgets/ChoiceWidget.js +38 -0
  176. package/packages/app-core/src/components/connectors/ConnectorSetupPanel.js +1 -1
  177. package/packages/app-core/src/components/custom-actions/CustomActionEditor.d.ts.map +1 -1
  178. package/packages/app-core/src/components/custom-actions/CustomActionsPanel.d.ts.map +1 -1
  179. package/packages/app-core/src/components/custom-actions/CustomActionsView.d.ts.map +1 -1
  180. package/packages/app-core/src/components/custom-actions/custom-action-form.d.ts.map +1 -1
  181. package/packages/app-core/src/components/pages/BrowserWorkspaceView.js +1 -1
  182. package/packages/app-core/src/components/pages/KnowledgeView.d.ts.map +1 -1
  183. package/packages/app-core/src/components/pages/KnowledgeView.js +11 -1
  184. package/packages/app-core/src/components/pages/PluginConfigForm.d.ts.map +1 -1
  185. package/packages/app-core/src/components/pages/PluginConfigForm.js +1 -1
  186. package/packages/app-core/src/components/pages/ScratchpadView.d.ts +2 -0
  187. package/packages/app-core/src/components/pages/ScratchpadView.d.ts.map +1 -0
  188. package/packages/app-core/src/components/pages/ScratchpadView.js +364 -0
  189. package/packages/app-core/src/components/pages/SettingsView.d.ts.map +1 -1
  190. package/packages/app-core/src/components/pages/SettingsView.js +29 -5
  191. package/packages/app-core/src/components/pages/VectorBrowserView.d.ts.map +1 -1
  192. package/packages/app-core/src/components/pages/VectorBrowserView.js +1 -1
  193. package/packages/app-core/src/components/pages/config-page-sections.d.ts +1 -1
  194. package/packages/app-core/src/components/pages/config-page-sections.d.ts.map +1 -1
  195. package/packages/app-core/src/components/pages/config-page-sections.js +1 -1
  196. package/packages/app-core/src/components/pages/plugin-list-utils.d.ts +1 -1
  197. package/packages/app-core/src/components/pages/plugin-list-utils.d.ts.map +1 -1
  198. package/packages/app-core/src/components/pages/useBrowserWorkspaceWalletBridge.d.ts +1 -1
  199. package/packages/app-core/src/components/pages/useBrowserWorkspaceWalletBridge.d.ts.map +1 -1
  200. package/packages/app-core/src/components/pages/useBrowserWorkspaceWalletBridge.js +1 -1
  201. package/packages/app-core/src/components/settings/ApiKeyConfig.js +1 -1
  202. package/packages/app-core/src/components/settings/AppearanceSettingsSection.d.ts.map +1 -1
  203. package/packages/app-core/src/components/settings/AppearanceSettingsSection.js +1 -1
  204. package/packages/app-core/src/components/settings/AppsManagementSection.d.ts +12 -0
  205. package/packages/app-core/src/components/settings/AppsManagementSection.d.ts.map +1 -0
  206. package/packages/app-core/src/components/settings/AppsManagementSection.js +285 -0
  207. package/packages/app-core/src/components/settings/PermissionsSection.js +1 -1
  208. package/packages/app-core/src/components/settings/ProviderSwitcher.d.ts.map +1 -1
  209. package/packages/app-core/src/components/settings/ProviderSwitcher.js +2 -2
  210. package/packages/app-core/src/components/settings/SecuritySettingsSection.d.ts.map +1 -1
  211. package/packages/app-core/src/components/settings/SecuritySettingsSection.js +150 -33
  212. package/packages/app-core/src/components/settings/cloud-model-schema.d.ts +1 -1
  213. package/packages/app-core/src/components/settings/cloud-model-schema.d.ts.map +1 -1
  214. package/packages/app-core/src/components/shell/Header.d.ts.map +1 -1
  215. package/packages/app-core/src/components/shell/Header.js +28 -1
  216. package/packages/app-core/src/components/steward/injected.d.ts.map +1 -1
  217. package/packages/app-core/src/components/steward/injected.js +1 -1
  218. package/packages/app-core/src/components/training/injected.d.ts.map +1 -1
  219. package/packages/app-core/src/components/training/injected.js +1 -1
  220. package/packages/app-core/src/config/boot-config-store.d.ts +1 -1
  221. package/packages/app-core/src/config/boot-config-store.d.ts.map +1 -1
  222. package/packages/app-core/src/content-packs/bundled-packs.d.ts.map +1 -1
  223. package/packages/app-core/src/hooks/index.d.ts +0 -2
  224. package/packages/app-core/src/hooks/index.d.ts.map +1 -1
  225. package/packages/app-core/src/hooks/index.js +0 -2
  226. package/packages/app-core/src/hooks/useAuthStatus.d.ts +5 -0
  227. package/packages/app-core/src/hooks/useAuthStatus.d.ts.map +1 -1
  228. package/packages/app-core/src/hooks/useAuthStatus.js +41 -18
  229. package/packages/app-core/src/hooks/useSignalPairing.d.ts +1 -1
  230. package/packages/app-core/src/hooks/useSignalPairing.d.ts.map +1 -1
  231. package/packages/app-core/src/hooks/useWhatsAppPairing.d.ts +1 -1
  232. package/packages/app-core/src/hooks/useWhatsAppPairing.d.ts.map +1 -1
  233. package/packages/app-core/src/i18n/locales/en.json +0 -1
  234. package/packages/app-core/src/i18n/locales/es.json +0 -1
  235. package/packages/app-core/src/i18n/locales/ko.json +0 -1
  236. package/packages/app-core/src/i18n/locales/pt.json +0 -1
  237. package/packages/app-core/src/i18n/locales/tl.json +0 -1
  238. package/packages/app-core/src/i18n/locales/vi.json +0 -1
  239. package/packages/app-core/src/i18n/locales/zh-CN.json +0 -1
  240. package/packages/app-core/src/index.d.ts +0 -1
  241. package/packages/app-core/src/index.d.ts.map +1 -1
  242. package/packages/app-core/src/index.js +0 -1
  243. package/packages/app-core/src/runtime/channel-plugin-map.d.ts.map +1 -1
  244. package/packages/app-core/src/runtime/channel-plugin-map.js +1 -1
  245. package/packages/app-core/src/runtime/plugin-manager-guard.d.ts.map +1 -1
  246. package/packages/app-core/src/runtime/plugin-manager-guard.js +1 -1
  247. package/packages/app-core/src/services/plugin-installer.d.ts.map +1 -1
  248. package/packages/app-core/src/services/plugin-installer.js +1 -8
  249. package/packages/app-core/src/state/index.d.ts +0 -1
  250. package/packages/app-core/src/state/index.d.ts.map +1 -1
  251. package/packages/app-core/src/state/index.js +0 -1
  252. package/packages/app-core/src/state/startup-phase-restore.d.ts.map +1 -1
  253. package/packages/app-core/src/state/startup-phase-restore.js +1 -1
  254. package/packages/app-core/src/state/useOnboardingState.js +2 -2
  255. package/packages/app-core/src/state/usePluginsSkillsState.d.ts +4 -4
  256. package/packages/app-core/src/types/index.d.ts +1 -1
  257. package/packages/app-core/src/types/index.d.ts.map +1 -1
  258. package/packages/shared/src/contracts/index.d.ts +1 -0
  259. package/packages/shared/src/contracts/index.d.ts.map +1 -1
  260. package/packages/shared/src/contracts/index.js +1 -0
  261. package/packages/shared/src/contracts/scratchpad.d.ts +136 -0
  262. package/packages/shared/src/contracts/scratchpad.d.ts.map +1 -0
  263. package/packages/shared/src/contracts/scratchpad.js +90 -0
  264. package/packages/shared/src/index.d.ts +13 -13
  265. package/packages/shared/src/index.d.ts.map +1 -1
  266. package/packages/shared/src/index.js +19 -19
  267. package/packages/shared/src/spoken-text.js +1 -1
  268. package/packages/typescript/src/features/advanced-capabilities/evaluators/factExtractor.d.ts.map +1 -1
  269. package/packages/typescript/src/features/advanced-capabilities/evaluators/factExtractor.js +12 -6
  270. package/packages/typescript/src/generated/action-docs.d.ts +25 -0
  271. package/packages/typescript/src/generated/action-docs.d.ts.map +1 -1
  272. package/packages/typescript/src/generated/action-docs.js +51 -0
  273. package/packages/typescript/src/services/message.d.ts.map +1 -1
  274. package/packages/typescript/src/services/message.js +1 -3
  275. package/packages/typescript/src/types/tools.d.ts.map +1 -1
  276. package/packages/typescript/src/types/tools.js +7 -3
  277. package/apps/app-lifeops/src/action.d.ts +0 -3
  278. package/apps/app-lifeops/src/action.d.ts.map +0 -1
  279. package/apps/app-lifeops/src/action.js +0 -351
  280. package/apps/app-lifeops/src/actions/activity-report.d.ts +0 -13
  281. package/apps/app-lifeops/src/actions/activity-report.d.ts.map +0 -1
  282. package/apps/app-lifeops/src/actions/activity-report.js +0 -313
  283. package/apps/app-lifeops/src/actions/app-blocker.d.ts +0 -7
  284. package/apps/app-lifeops/src/actions/app-blocker.d.ts.map +0 -1
  285. package/apps/app-lifeops/src/actions/app-blocker.js +0 -454
  286. package/apps/app-lifeops/src/actions/approval.d.ts +0 -21
  287. package/apps/app-lifeops/src/actions/approval.d.ts.map +0 -1
  288. package/apps/app-lifeops/src/actions/approval.js +0 -342
  289. package/apps/app-lifeops/src/actions/autofill.d.ts +0 -35
  290. package/apps/app-lifeops/src/actions/autofill.d.ts.map +0 -1
  291. package/apps/app-lifeops/src/actions/autofill.js +0 -475
  292. package/apps/app-lifeops/src/actions/book-travel-executor.d.ts +0 -9
  293. package/apps/app-lifeops/src/actions/book-travel-executor.d.ts.map +0 -1
  294. package/apps/app-lifeops/src/actions/book-travel-executor.js +0 -65
  295. package/apps/app-lifeops/src/actions/book-travel.d.ts +0 -5
  296. package/apps/app-lifeops/src/actions/book-travel.d.ts.map +0 -1
  297. package/apps/app-lifeops/src/actions/book-travel.js +0 -491
  298. package/apps/app-lifeops/src/actions/calendar.d.ts +0 -19
  299. package/apps/app-lifeops/src/actions/calendar.d.ts.map +0 -1
  300. package/apps/app-lifeops/src/actions/calendar.js +0 -3189
  301. package/apps/app-lifeops/src/actions/calendly.d.ts +0 -3
  302. package/apps/app-lifeops/src/actions/calendly.d.ts.map +0 -1
  303. package/apps/app-lifeops/src/actions/calendly.js +0 -285
  304. package/apps/app-lifeops/src/actions/chat-thread-control.d.ts +0 -3
  305. package/apps/app-lifeops/src/actions/chat-thread-control.d.ts.map +0 -1
  306. package/apps/app-lifeops/src/actions/chat-thread-control.js +0 -260
  307. package/apps/app-lifeops/src/actions/checkin.d.ts +0 -8
  308. package/apps/app-lifeops/src/actions/checkin.d.ts.map +0 -1
  309. package/apps/app-lifeops/src/actions/checkin.js +0 -230
  310. package/apps/app-lifeops/src/actions/computer-use.d.ts +0 -14
  311. package/apps/app-lifeops/src/actions/computer-use.d.ts.map +0 -1
  312. package/apps/app-lifeops/src/actions/computer-use.js +0 -365
  313. package/apps/app-lifeops/src/actions/cross-channel-send.d.ts +0 -34
  314. package/apps/app-lifeops/src/actions/cross-channel-send.d.ts.map +0 -1
  315. package/apps/app-lifeops/src/actions/cross-channel-send.js +0 -964
  316. package/apps/app-lifeops/src/actions/device-bus.d.ts +0 -19
  317. package/apps/app-lifeops/src/actions/device-bus.d.ts.map +0 -1
  318. package/apps/app-lifeops/src/actions/device-bus.js +0 -386
  319. package/apps/app-lifeops/src/actions/dossier.d.ts +0 -5
  320. package/apps/app-lifeops/src/actions/dossier.d.ts.map +0 -1
  321. package/apps/app-lifeops/src/actions/dossier.js +0 -227
  322. package/apps/app-lifeops/src/actions/email-unsubscribe.d.ts +0 -5
  323. package/apps/app-lifeops/src/actions/email-unsubscribe.d.ts.map +0 -1
  324. package/apps/app-lifeops/src/actions/email-unsubscribe.js +0 -172
  325. package/apps/app-lifeops/src/actions/gmail.d.ts +0 -57
  326. package/apps/app-lifeops/src/actions/gmail.d.ts.map +0 -1
  327. package/apps/app-lifeops/src/actions/gmail.js +0 -2540
  328. package/apps/app-lifeops/src/actions/health.d.ts +0 -9
  329. package/apps/app-lifeops/src/actions/health.d.ts.map +0 -1
  330. package/apps/app-lifeops/src/actions/health.js +0 -398
  331. package/apps/app-lifeops/src/actions/inbox.d.ts +0 -5
  332. package/apps/app-lifeops/src/actions/inbox.d.ts.map +0 -1
  333. package/apps/app-lifeops/src/actions/inbox.js +0 -1244
  334. package/apps/app-lifeops/src/actions/intent-sync.d.ts +0 -5
  335. package/apps/app-lifeops/src/actions/intent-sync.d.ts.map +0 -1
  336. package/apps/app-lifeops/src/actions/intent-sync.js +0 -326
  337. package/apps/app-lifeops/src/actions/life-goal-extractor.d.ts +0 -69
  338. package/apps/app-lifeops/src/actions/life-goal-extractor.d.ts.map +0 -1
  339. package/apps/app-lifeops/src/actions/life-goal-extractor.js +0 -420
  340. package/apps/app-lifeops/src/actions/life-param-extractor.d.ts +0 -78
  341. package/apps/app-lifeops/src/actions/life-param-extractor.d.ts.map +0 -1
  342. package/apps/app-lifeops/src/actions/life-param-extractor.js +0 -431
  343. package/apps/app-lifeops/src/actions/life-recent-context.d.ts +0 -9
  344. package/apps/app-lifeops/src/actions/life-recent-context.d.ts.map +0 -1
  345. package/apps/app-lifeops/src/actions/life-recent-context.js +0 -78
  346. package/apps/app-lifeops/src/actions/life-update-extractor.d.ts +0 -27
  347. package/apps/app-lifeops/src/actions/life-update-extractor.d.ts.map +0 -1
  348. package/apps/app-lifeops/src/actions/life-update-extractor.js +0 -195
  349. package/apps/app-lifeops/src/actions/life.d.ts +0 -5
  350. package/apps/app-lifeops/src/actions/life.d.ts.map +0 -1
  351. package/apps/app-lifeops/src/actions/life.extractor.d.ts +0 -18
  352. package/apps/app-lifeops/src/actions/life.extractor.d.ts.map +0 -1
  353. package/apps/app-lifeops/src/actions/life.extractor.js +0 -363
  354. package/apps/app-lifeops/src/actions/life.js +0 -3247
  355. package/apps/app-lifeops/src/actions/lifeops-connector.d.ts +0 -5
  356. package/apps/app-lifeops/src/actions/lifeops-connector.d.ts.map +0 -1
  357. package/apps/app-lifeops/src/actions/lifeops-connector.js +0 -683
  358. package/apps/app-lifeops/src/actions/lifeops-extraction-config.d.ts +0 -16
  359. package/apps/app-lifeops/src/actions/lifeops-extraction-config.d.ts.map +0 -1
  360. package/apps/app-lifeops/src/actions/lifeops-extraction-config.js +0 -25
  361. package/apps/app-lifeops/src/actions/lifeops-google-helpers.d.ts +0 -64
  362. package/apps/app-lifeops/src/actions/lifeops-google-helpers.d.ts.map +0 -1
  363. package/apps/app-lifeops/src/actions/lifeops-google-helpers.js +0 -671
  364. package/apps/app-lifeops/src/actions/lifeops-mutate.d.ts +0 -5
  365. package/apps/app-lifeops/src/actions/lifeops-mutate.d.ts.map +0 -1
  366. package/apps/app-lifeops/src/actions/lifeops-mutate.js +0 -769
  367. package/apps/app-lifeops/src/actions/list-remote-sessions.d.ts +0 -6
  368. package/apps/app-lifeops/src/actions/list-remote-sessions.d.ts.map +0 -1
  369. package/apps/app-lifeops/src/actions/list-remote-sessions.js +0 -45
  370. package/apps/app-lifeops/src/actions/non-actionable-request.d.ts +0 -17
  371. package/apps/app-lifeops/src/actions/non-actionable-request.d.ts.map +0 -1
  372. package/apps/app-lifeops/src/actions/non-actionable-request.js +0 -25
  373. package/apps/app-lifeops/src/actions/owner-app-block.d.ts +0 -12
  374. package/apps/app-lifeops/src/actions/owner-app-block.d.ts.map +0 -1
  375. package/apps/app-lifeops/src/actions/owner-app-block.js +0 -144
  376. package/apps/app-lifeops/src/actions/owner-calendar.d.ts +0 -15
  377. package/apps/app-lifeops/src/actions/owner-calendar.d.ts.map +0 -1
  378. package/apps/app-lifeops/src/actions/owner-calendar.js +0 -762
  379. package/apps/app-lifeops/src/actions/owner-inbox.d.ts +0 -5
  380. package/apps/app-lifeops/src/actions/owner-inbox.d.ts.map +0 -1
  381. package/apps/app-lifeops/src/actions/owner-inbox.js +0 -662
  382. package/apps/app-lifeops/src/actions/owner-remote-desktop.d.ts +0 -12
  383. package/apps/app-lifeops/src/actions/owner-remote-desktop.d.ts.map +0 -1
  384. package/apps/app-lifeops/src/actions/owner-remote-desktop.js +0 -173
  385. package/apps/app-lifeops/src/actions/owner-schedule.d.ts +0 -3
  386. package/apps/app-lifeops/src/actions/owner-schedule.d.ts.map +0 -1
  387. package/apps/app-lifeops/src/actions/owner-schedule.js +0 -174
  388. package/apps/app-lifeops/src/actions/owner-screen-time.d.ts +0 -10
  389. package/apps/app-lifeops/src/actions/owner-screen-time.d.ts.map +0 -1
  390. package/apps/app-lifeops/src/actions/owner-screen-time.js +0 -213
  391. package/apps/app-lifeops/src/actions/owner-website-block.d.ts +0 -12
  392. package/apps/app-lifeops/src/actions/owner-website-block.d.ts.map +0 -1
  393. package/apps/app-lifeops/src/actions/owner-website-block.js +0 -424
  394. package/apps/app-lifeops/src/actions/password-manager.d.ts +0 -5
  395. package/apps/app-lifeops/src/actions/password-manager.d.ts.map +0 -1
  396. package/apps/app-lifeops/src/actions/password-manager.js +0 -217
  397. package/apps/app-lifeops/src/actions/payments.d.ts +0 -5
  398. package/apps/app-lifeops/src/actions/payments.d.ts.map +0 -1
  399. package/apps/app-lifeops/src/actions/payments.js +0 -236
  400. package/apps/app-lifeops/src/actions/relationships.d.ts +0 -12
  401. package/apps/app-lifeops/src/actions/relationships.d.ts.map +0 -1
  402. package/apps/app-lifeops/src/actions/relationships.js +0 -880
  403. package/apps/app-lifeops/src/actions/remote-desktop.d.ts +0 -5
  404. package/apps/app-lifeops/src/actions/remote-desktop.d.ts.map +0 -1
  405. package/apps/app-lifeops/src/actions/remote-desktop.js +0 -248
  406. package/apps/app-lifeops/src/actions/revoke-remote-session.d.ts +0 -6
  407. package/apps/app-lifeops/src/actions/revoke-remote-session.d.ts.map +0 -1
  408. package/apps/app-lifeops/src/actions/revoke-remote-session.js +0 -73
  409. package/apps/app-lifeops/src/actions/schedule-x-dm-reply.d.ts +0 -3
  410. package/apps/app-lifeops/src/actions/schedule-x-dm-reply.d.ts.map +0 -1
  411. package/apps/app-lifeops/src/actions/schedule-x-dm-reply.js +0 -134
  412. package/apps/app-lifeops/src/actions/scheduled-trigger-task.d.ts +0 -19
  413. package/apps/app-lifeops/src/actions/scheduled-trigger-task.d.ts.map +0 -1
  414. package/apps/app-lifeops/src/actions/scheduled-trigger-task.js +0 -82
  415. package/apps/app-lifeops/src/actions/scheduling.d.ts +0 -70
  416. package/apps/app-lifeops/src/actions/scheduling.d.ts.map +0 -1
  417. package/apps/app-lifeops/src/actions/scheduling.js +0 -1078
  418. package/apps/app-lifeops/src/actions/screen-time.d.ts +0 -8
  419. package/apps/app-lifeops/src/actions/screen-time.d.ts.map +0 -1
  420. package/apps/app-lifeops/src/actions/screen-time.js +0 -249
  421. package/apps/app-lifeops/src/actions/search-across-channels.d.ts +0 -13
  422. package/apps/app-lifeops/src/actions/search-across-channels.d.ts.map +0 -1
  423. package/apps/app-lifeops/src/actions/search-across-channels.js +0 -338
  424. package/apps/app-lifeops/src/actions/start-remote-session.d.ts +0 -14
  425. package/apps/app-lifeops/src/actions/start-remote-session.d.ts.map +0 -1
  426. package/apps/app-lifeops/src/actions/start-remote-session.js +0 -139
  427. package/apps/app-lifeops/src/actions/subscriptions.d.ts +0 -5
  428. package/apps/app-lifeops/src/actions/subscriptions.d.ts.map +0 -1
  429. package/apps/app-lifeops/src/actions/subscriptions.js +0 -404
  430. package/apps/app-lifeops/src/actions/timezone-normalization.d.ts +0 -4
  431. package/apps/app-lifeops/src/actions/timezone-normalization.d.ts.map +0 -1
  432. package/apps/app-lifeops/src/actions/timezone-normalization.js +0 -159
  433. package/apps/app-lifeops/src/actions/twilio-call.d.ts +0 -20
  434. package/apps/app-lifeops/src/actions/twilio-call.d.ts.map +0 -1
  435. package/apps/app-lifeops/src/actions/twilio-call.js +0 -853
  436. package/apps/app-lifeops/src/actions/update-owner-profile.d.ts +0 -5
  437. package/apps/app-lifeops/src/actions/update-owner-profile.d.ts.map +0 -1
  438. package/apps/app-lifeops/src/actions/update-owner-profile.js +0 -181
  439. package/apps/app-lifeops/src/actions/x-read.d.ts +0 -5
  440. package/apps/app-lifeops/src/actions/x-read.d.ts.map +0 -1
  441. package/apps/app-lifeops/src/actions/x-read.js +0 -561
  442. package/apps/app-lifeops/src/activity-profile/activity-tracker-service.d.ts +0 -36
  443. package/apps/app-lifeops/src/activity-profile/activity-tracker-service.d.ts.map +0 -1
  444. package/apps/app-lifeops/src/activity-profile/activity-tracker-service.js +0 -160
  445. package/apps/app-lifeops/src/activity-profile/analyzer.d.ts +0 -23
  446. package/apps/app-lifeops/src/activity-profile/analyzer.d.ts.map +0 -1
  447. package/apps/app-lifeops/src/activity-profile/analyzer.js +0 -555
  448. package/apps/app-lifeops/src/activity-profile/presence-signal-bridge-service.d.ts +0 -14
  449. package/apps/app-lifeops/src/activity-profile/presence-signal-bridge-service.d.ts.map +0 -1
  450. package/apps/app-lifeops/src/activity-profile/presence-signal-bridge-service.js +0 -133
  451. package/apps/app-lifeops/src/activity-profile/proactive-planner.d.ts +0 -71
  452. package/apps/app-lifeops/src/activity-profile/proactive-planner.d.ts.map +0 -1
  453. package/apps/app-lifeops/src/activity-profile/proactive-planner.js +0 -567
  454. package/apps/app-lifeops/src/activity-profile/proactive-worker.d.ts +0 -32
  455. package/apps/app-lifeops/src/activity-profile/proactive-worker.d.ts.map +0 -1
  456. package/apps/app-lifeops/src/activity-profile/proactive-worker.js +0 -676
  457. package/apps/app-lifeops/src/activity-profile/service.d.ts +0 -11
  458. package/apps/app-lifeops/src/activity-profile/service.d.ts.map +0 -1
  459. package/apps/app-lifeops/src/activity-profile/service.js +0 -246
  460. package/apps/app-lifeops/src/app-blocker/access.d.ts +0 -8
  461. package/apps/app-lifeops/src/app-blocker/access.d.ts.map +0 -1
  462. package/apps/app-lifeops/src/app-blocker/access.js +0 -35
  463. package/apps/app-lifeops/src/app-blocker/engine.d.ts +0 -10
  464. package/apps/app-lifeops/src/app-blocker/engine.d.ts.map +0 -1
  465. package/apps/app-lifeops/src/app-blocker/engine.js +0 -43
  466. package/apps/app-lifeops/src/components/AppBlockerSettingsCard.d.ts +0 -3
  467. package/apps/app-lifeops/src/components/AppBlockerSettingsCard.d.ts.map +0 -1
  468. package/apps/app-lifeops/src/components/AppBlockerSettingsCard.js +0 -189
  469. package/apps/app-lifeops/src/components/BrowserBridgeSetupPanel.d.ts +0 -2
  470. package/apps/app-lifeops/src/components/BrowserBridgeSetupPanel.d.ts.map +0 -1
  471. package/apps/app-lifeops/src/components/BrowserBridgeSetupPanel.js +0 -1065
  472. package/apps/app-lifeops/src/components/BrowserBridgeStatusChip.d.ts +0 -7
  473. package/apps/app-lifeops/src/components/BrowserBridgeStatusChip.d.ts.map +0 -1
  474. package/apps/app-lifeops/src/components/BrowserBridgeStatusChip.js +0 -74
  475. package/apps/app-lifeops/src/components/DataSourcesStrip.d.ts +0 -14
  476. package/apps/app-lifeops/src/components/DataSourcesStrip.d.ts.map +0 -1
  477. package/apps/app-lifeops/src/components/DataSourcesStrip.js +0 -36
  478. package/apps/app-lifeops/src/components/EventEditorDrawer.d.ts +0 -23
  479. package/apps/app-lifeops/src/components/EventEditorDrawer.d.ts.map +0 -1
  480. package/apps/app-lifeops/src/components/EventEditorDrawer.js +0 -514
  481. package/apps/app-lifeops/src/components/LifeOpsActivitySignalsEffect.d.ts +0 -2
  482. package/apps/app-lifeops/src/components/LifeOpsActivitySignalsEffect.d.ts.map +0 -1
  483. package/apps/app-lifeops/src/components/LifeOpsActivitySignalsEffect.js +0 -10
  484. package/apps/app-lifeops/src/components/LifeOpsCalendarSection.d.ts +0 -15
  485. package/apps/app-lifeops/src/components/LifeOpsCalendarSection.d.ts.map +0 -1
  486. package/apps/app-lifeops/src/components/LifeOpsCalendarSection.js +0 -515
  487. package/apps/app-lifeops/src/components/LifeOpsChatAdapter.d.ts +0 -34
  488. package/apps/app-lifeops/src/components/LifeOpsChatAdapter.d.ts.map +0 -1
  489. package/apps/app-lifeops/src/components/LifeOpsChatAdapter.js +0 -175
  490. package/apps/app-lifeops/src/components/LifeOpsFeatureTogglesSection.d.ts +0 -2
  491. package/apps/app-lifeops/src/components/LifeOpsFeatureTogglesSection.d.ts.map +0 -1
  492. package/apps/app-lifeops/src/components/LifeOpsFeatureTogglesSection.js +0 -99
  493. package/apps/app-lifeops/src/components/LifeOpsHabitVisuals.d.ts +0 -37
  494. package/apps/app-lifeops/src/components/LifeOpsHabitVisuals.d.ts.map +0 -1
  495. package/apps/app-lifeops/src/components/LifeOpsHabitVisuals.js +0 -88
  496. package/apps/app-lifeops/src/components/LifeOpsInboxSection.d.ts +0 -13
  497. package/apps/app-lifeops/src/components/LifeOpsInboxSection.d.ts.map +0 -1
  498. package/apps/app-lifeops/src/components/LifeOpsInboxSection.js +0 -490
  499. package/apps/app-lifeops/src/components/LifeOpsLinkBankButton.d.ts +0 -12
  500. package/apps/app-lifeops/src/components/LifeOpsLinkBankButton.d.ts.map +0 -1
  501. package/apps/app-lifeops/src/components/LifeOpsLinkBankButton.js +0 -92
  502. package/apps/app-lifeops/src/components/LifeOpsLinkPaypalButton.d.ts +0 -12
  503. package/apps/app-lifeops/src/components/LifeOpsLinkPaypalButton.d.ts.map +0 -1
  504. package/apps/app-lifeops/src/components/LifeOpsLinkPaypalButton.js +0 -160
  505. package/apps/app-lifeops/src/components/LifeOpsMoneySection.d.ts +0 -3
  506. package/apps/app-lifeops/src/components/LifeOpsMoneySection.d.ts.map +0 -1
  507. package/apps/app-lifeops/src/components/LifeOpsMoneySection.js +0 -373
  508. package/apps/app-lifeops/src/components/LifeOpsNavRail.d.ts +0 -9
  509. package/apps/app-lifeops/src/components/LifeOpsNavRail.d.ts.map +0 -1
  510. package/apps/app-lifeops/src/components/LifeOpsNavRail.js +0 -93
  511. package/apps/app-lifeops/src/components/LifeOpsOperationalPanels.d.ts +0 -4
  512. package/apps/app-lifeops/src/components/LifeOpsOperationalPanels.d.ts.map +0 -1
  513. package/apps/app-lifeops/src/components/LifeOpsOperationalPanels.js +0 -274
  514. package/apps/app-lifeops/src/components/LifeOpsOverviewSection.d.ts +0 -7
  515. package/apps/app-lifeops/src/components/LifeOpsOverviewSection.d.ts.map +0 -1
  516. package/apps/app-lifeops/src/components/LifeOpsOverviewSection.js +0 -670
  517. package/apps/app-lifeops/src/components/LifeOpsPageSections.d.ts +0 -42
  518. package/apps/app-lifeops/src/components/LifeOpsPageSections.d.ts.map +0 -1
  519. package/apps/app-lifeops/src/components/LifeOpsPageSections.js +0 -166
  520. package/apps/app-lifeops/src/components/LifeOpsPageView.d.ts +0 -2
  521. package/apps/app-lifeops/src/components/LifeOpsPageView.d.ts.map +0 -1
  522. package/apps/app-lifeops/src/components/LifeOpsPageView.js +0 -565
  523. package/apps/app-lifeops/src/components/LifeOpsRemindersSection.d.ts +0 -2
  524. package/apps/app-lifeops/src/components/LifeOpsRemindersSection.d.ts.map +0 -1
  525. package/apps/app-lifeops/src/components/LifeOpsRemindersSection.js +0 -749
  526. package/apps/app-lifeops/src/components/LifeOpsResizableSidebar.d.ts +0 -27
  527. package/apps/app-lifeops/src/components/LifeOpsResizableSidebar.d.ts.map +0 -1
  528. package/apps/app-lifeops/src/components/LifeOpsResizableSidebar.js +0 -106
  529. package/apps/app-lifeops/src/components/LifeOpsScreenTimeSection.d.ts +0 -2
  530. package/apps/app-lifeops/src/components/LifeOpsScreenTimeSection.d.ts.map +0 -1
  531. package/apps/app-lifeops/src/components/LifeOpsScreenTimeSection.js +0 -373
  532. package/apps/app-lifeops/src/components/LifeOpsSectionContent.d.ts +0 -10
  533. package/apps/app-lifeops/src/components/LifeOpsSectionContent.d.ts.map +0 -1
  534. package/apps/app-lifeops/src/components/LifeOpsSectionContent.js +0 -30
  535. package/apps/app-lifeops/src/components/LifeOpsSelectionContext.d.ts +0 -21
  536. package/apps/app-lifeops/src/components/LifeOpsSelectionContext.d.ts.map +0 -1
  537. package/apps/app-lifeops/src/components/LifeOpsSelectionContext.js +0 -30
  538. package/apps/app-lifeops/src/components/LifeOpsSettingsSection.d.ts +0 -20
  539. package/apps/app-lifeops/src/components/LifeOpsSettingsSection.d.ts.map +0 -1
  540. package/apps/app-lifeops/src/components/LifeOpsSettingsSection.js +0 -597
  541. package/apps/app-lifeops/src/components/LifeOpsSetupGate.d.ts +0 -13
  542. package/apps/app-lifeops/src/components/LifeOpsSetupGate.d.ts.map +0 -1
  543. package/apps/app-lifeops/src/components/LifeOpsSetupGate.js +0 -134
  544. package/apps/app-lifeops/src/components/LifeOpsSleepSection.d.ts +0 -10
  545. package/apps/app-lifeops/src/components/LifeOpsSleepSection.d.ts.map +0 -1
  546. package/apps/app-lifeops/src/components/LifeOpsSleepSection.js +0 -425
  547. package/apps/app-lifeops/src/components/LifeOpsWorkspaceShell.d.ts +0 -11
  548. package/apps/app-lifeops/src/components/LifeOpsWorkspaceShell.d.ts.map +0 -1
  549. package/apps/app-lifeops/src/components/LifeOpsWorkspaceShell.js +0 -49
  550. package/apps/app-lifeops/src/components/LifeOpsWorkspaceView.d.ts +0 -2
  551. package/apps/app-lifeops/src/components/LifeOpsWorkspaceView.d.ts.map +0 -1
  552. package/apps/app-lifeops/src/components/LifeOpsWorkspaceView.js +0 -1041
  553. package/apps/app-lifeops/src/components/MessagingConnectorCards.d.ts +0 -7
  554. package/apps/app-lifeops/src/components/MessagingConnectorCards.d.ts.map +0 -1
  555. package/apps/app-lifeops/src/components/MessagingConnectorCards.js +0 -643
  556. package/apps/app-lifeops/src/components/MissingSourceCard.d.ts +0 -9
  557. package/apps/app-lifeops/src/components/MissingSourceCard.d.ts.map +0 -1
  558. package/apps/app-lifeops/src/components/MissingSourceCard.js +0 -5
  559. package/apps/app-lifeops/src/components/MobileSignalsSetupCard.d.ts +0 -2
  560. package/apps/app-lifeops/src/components/MobileSignalsSetupCard.d.ts.map +0 -1
  561. package/apps/app-lifeops/src/components/MobileSignalsSetupCard.js +0 -162
  562. package/apps/app-lifeops/src/components/SleepInspectionPanel.d.ts +0 -8
  563. package/apps/app-lifeops/src/components/SleepInspectionPanel.d.ts.map +0 -1
  564. package/apps/app-lifeops/src/components/SleepInspectionPanel.js +0 -59
  565. package/apps/app-lifeops/src/components/WebsiteBlockerSettingsCard.d.ts +0 -3
  566. package/apps/app-lifeops/src/components/WebsiteBlockerSettingsCard.d.ts.map +0 -1
  567. package/apps/app-lifeops/src/components/WebsiteBlockerSettingsCard.js +0 -75
  568. package/apps/app-lifeops/src/components/WhatsAppQrOverlay.d.ts +0 -8
  569. package/apps/app-lifeops/src/components/WhatsAppQrOverlay.d.ts.map +0 -1
  570. package/apps/app-lifeops/src/components/WhatsAppQrOverlay.js +0 -48
  571. package/apps/app-lifeops/src/components/lifeops-labels.d.ts +0 -2
  572. package/apps/app-lifeops/src/components/lifeops-labels.d.ts.map +0 -1
  573. package/apps/app-lifeops/src/components/lifeops-labels.js +0 -5
  574. package/apps/app-lifeops/src/events/index.d.ts +0 -34
  575. package/apps/app-lifeops/src/events/index.d.ts.map +0 -1
  576. package/apps/app-lifeops/src/events/index.js +0 -23
  577. package/apps/app-lifeops/src/followup/actions/listOverdueFollowups.d.ts +0 -3
  578. package/apps/app-lifeops/src/followup/actions/listOverdueFollowups.d.ts.map +0 -1
  579. package/apps/app-lifeops/src/followup/actions/listOverdueFollowups.js +0 -48
  580. package/apps/app-lifeops/src/followup/actions/markFollowupDone.d.ts +0 -3
  581. package/apps/app-lifeops/src/followup/actions/markFollowupDone.d.ts.map +0 -1
  582. package/apps/app-lifeops/src/followup/actions/markFollowupDone.js +0 -173
  583. package/apps/app-lifeops/src/followup/actions/setFollowupThreshold.d.ts +0 -3
  584. package/apps/app-lifeops/src/followup/actions/setFollowupThreshold.d.ts.map +0 -1
  585. package/apps/app-lifeops/src/followup/actions/setFollowupThreshold.js +0 -172
  586. package/apps/app-lifeops/src/followup/followup-tracker.d.ts +0 -82
  587. package/apps/app-lifeops/src/followup/followup-tracker.d.ts.map +0 -1
  588. package/apps/app-lifeops/src/followup/followup-tracker.js +0 -279
  589. package/apps/app-lifeops/src/followup/index.d.ts +0 -5
  590. package/apps/app-lifeops/src/followup/index.d.ts.map +0 -1
  591. package/apps/app-lifeops/src/followup/index.js +0 -4
  592. package/apps/app-lifeops/src/hooks/useCalendarWeek.d.ts +0 -28
  593. package/apps/app-lifeops/src/hooks/useCalendarWeek.d.ts.map +0 -1
  594. package/apps/app-lifeops/src/hooks/useCalendarWeek.js +0 -93
  595. package/apps/app-lifeops/src/hooks/useDiscordConnector.d.ts +0 -14
  596. package/apps/app-lifeops/src/hooks/useDiscordConnector.d.ts.map +0 -1
  597. package/apps/app-lifeops/src/hooks/useDiscordConnector.js +0 -126
  598. package/apps/app-lifeops/src/hooks/useGoogleLifeOpsConnector.d.ts +0 -29
  599. package/apps/app-lifeops/src/hooks/useGoogleLifeOpsConnector.d.ts.map +0 -1
  600. package/apps/app-lifeops/src/hooks/useGoogleLifeOpsConnector.js +0 -481
  601. package/apps/app-lifeops/src/hooks/useIMessageConnector.d.ts +0 -10
  602. package/apps/app-lifeops/src/hooks/useIMessageConnector.d.ts.map +0 -1
  603. package/apps/app-lifeops/src/hooks/useIMessageConnector.js +0 -50
  604. package/apps/app-lifeops/src/hooks/useInbox.d.ts +0 -34
  605. package/apps/app-lifeops/src/hooks/useInbox.d.ts.map +0 -1
  606. package/apps/app-lifeops/src/hooks/useInbox.js +0 -98
  607. package/apps/app-lifeops/src/hooks/useLifeOpsActivitySignals.d.ts +0 -2
  608. package/apps/app-lifeops/src/hooks/useLifeOpsActivitySignals.d.ts.map +0 -1
  609. package/apps/app-lifeops/src/hooks/useLifeOpsActivitySignals.js +0 -382
  610. package/apps/app-lifeops/src/hooks/useLifeOpsAppState.d.ts +0 -21
  611. package/apps/app-lifeops/src/hooks/useLifeOpsAppState.d.ts.map +0 -1
  612. package/apps/app-lifeops/src/hooks/useLifeOpsAppState.js +0 -83
  613. package/apps/app-lifeops/src/hooks/useLifeOpsCapabilitiesStatus.d.ts +0 -8
  614. package/apps/app-lifeops/src/hooks/useLifeOpsCapabilitiesStatus.d.ts.map +0 -1
  615. package/apps/app-lifeops/src/hooks/useLifeOpsCapabilitiesStatus.js +0 -60
  616. package/apps/app-lifeops/src/hooks/useLifeOpsScheduleInspection.d.ts +0 -18
  617. package/apps/app-lifeops/src/hooks/useLifeOpsScheduleInspection.d.ts.map +0 -1
  618. package/apps/app-lifeops/src/hooks/useLifeOpsScheduleInspection.js +0 -66
  619. package/apps/app-lifeops/src/hooks/useLifeOpsScheduleState.d.ts +0 -14
  620. package/apps/app-lifeops/src/hooks/useLifeOpsScheduleState.d.ts.map +0 -1
  621. package/apps/app-lifeops/src/hooks/useLifeOpsScheduleState.js +0 -79
  622. package/apps/app-lifeops/src/hooks/useLifeOpsSection.d.ts +0 -18
  623. package/apps/app-lifeops/src/hooks/useLifeOpsSection.d.ts.map +0 -1
  624. package/apps/app-lifeops/src/hooks/useLifeOpsSection.js +0 -78
  625. package/apps/app-lifeops/src/hooks/useLifeOpsXConnector.d.ts +0 -14
  626. package/apps/app-lifeops/src/hooks/useLifeOpsXConnector.d.ts.map +0 -1
  627. package/apps/app-lifeops/src/hooks/useLifeOpsXConnector.js +0 -160
  628. package/apps/app-lifeops/src/hooks/useSignalConnector.d.ts +0 -16
  629. package/apps/app-lifeops/src/hooks/useSignalConnector.d.ts.map +0 -1
  630. package/apps/app-lifeops/src/hooks/useSignalConnector.js +0 -198
  631. package/apps/app-lifeops/src/hooks/useTelegramConnector.d.ts +0 -21
  632. package/apps/app-lifeops/src/hooks/useTelegramConnector.d.ts.map +0 -1
  633. package/apps/app-lifeops/src/hooks/useTelegramConnector.js +0 -177
  634. package/apps/app-lifeops/src/hooks/useWhatsAppConnector.d.ts +0 -8
  635. package/apps/app-lifeops/src/hooks/useWhatsAppConnector.d.ts.map +0 -1
  636. package/apps/app-lifeops/src/hooks/useWhatsAppConnector.js +0 -58
  637. package/apps/app-lifeops/src/hooks/useWhatsAppPairing.d.ts +0 -12
  638. package/apps/app-lifeops/src/hooks/useWhatsAppPairing.d.ts.map +0 -1
  639. package/apps/app-lifeops/src/hooks/useWhatsAppPairing.js +0 -152
  640. package/apps/app-lifeops/src/inbox/config.d.ts +0 -7
  641. package/apps/app-lifeops/src/inbox/config.d.ts.map +0 -1
  642. package/apps/app-lifeops/src/inbox/config.js +0 -67
  643. package/apps/app-lifeops/src/inbox/reflection.d.ts +0 -40
  644. package/apps/app-lifeops/src/inbox/reflection.d.ts.map +0 -1
  645. package/apps/app-lifeops/src/inbox/reflection.js +0 -115
  646. package/apps/app-lifeops/src/inbox/repository.d.ts +0 -52
  647. package/apps/app-lifeops/src/inbox/repository.d.ts.map +0 -1
  648. package/apps/app-lifeops/src/inbox/repository.js +0 -262
  649. package/apps/app-lifeops/src/inbox/triage-classifier.d.ts +0 -15
  650. package/apps/app-lifeops/src/inbox/triage-classifier.d.ts.map +0 -1
  651. package/apps/app-lifeops/src/inbox/triage-classifier.js +0 -179
  652. package/apps/app-lifeops/src/index.d.ts +0 -20
  653. package/apps/app-lifeops/src/index.d.ts.map +0 -1
  654. package/apps/app-lifeops/src/index.js +0 -18
  655. package/apps/app-lifeops/src/lifeops/approval-queue.d.ts +0 -24
  656. package/apps/app-lifeops/src/lifeops/approval-queue.d.ts.map +0 -1
  657. package/apps/app-lifeops/src/lifeops/approval-queue.js +0 -500
  658. package/apps/app-lifeops/src/lifeops/approval-queue.types.d.ts +0 -166
  659. package/apps/app-lifeops/src/lifeops/approval-queue.types.d.ts.map +0 -1
  660. package/apps/app-lifeops/src/lifeops/approval-queue.types.js +0 -22
  661. package/apps/app-lifeops/src/lifeops/autofill-whitelist.d.ts +0 -15
  662. package/apps/app-lifeops/src/lifeops/autofill-whitelist.d.ts.map +0 -1
  663. package/apps/app-lifeops/src/lifeops/autofill-whitelist.js +0 -116
  664. package/apps/app-lifeops/src/lifeops/background-planner-dispatch.d.ts +0 -60
  665. package/apps/app-lifeops/src/lifeops/background-planner-dispatch.d.ts.map +0 -1
  666. package/apps/app-lifeops/src/lifeops/background-planner-dispatch.js +0 -134
  667. package/apps/app-lifeops/src/lifeops/background-planner.d.ts +0 -141
  668. package/apps/app-lifeops/src/lifeops/background-planner.d.ts.map +0 -1
  669. package/apps/app-lifeops/src/lifeops/background-planner.js +0 -377
  670. package/apps/app-lifeops/src/lifeops/calendly-client.d.ts +0 -61
  671. package/apps/app-lifeops/src/lifeops/calendly-client.d.ts.map +0 -1
  672. package/apps/app-lifeops/src/lifeops/calendly-client.js +0 -234
  673. package/apps/app-lifeops/src/lifeops/checkin/schedule-resolver.d.ts +0 -14
  674. package/apps/app-lifeops/src/lifeops/checkin/schedule-resolver.d.ts.map +0 -1
  675. package/apps/app-lifeops/src/lifeops/checkin/schedule-resolver.js +0 -27
  676. package/apps/app-lifeops/src/lifeops/cross-channel-search.d.ts +0 -88
  677. package/apps/app-lifeops/src/lifeops/cross-channel-search.d.ts.map +0 -1
  678. package/apps/app-lifeops/src/lifeops/cross-channel-search.js +0 -446
  679. package/apps/app-lifeops/src/lifeops/intent-sync.d.ts +0 -59
  680. package/apps/app-lifeops/src/lifeops/intent-sync.d.ts.map +0 -1
  681. package/apps/app-lifeops/src/lifeops/intent-sync.js +0 -305
  682. package/apps/app-lifeops/src/lifeops/notifications-push.d.ts +0 -37
  683. package/apps/app-lifeops/src/lifeops/notifications-push.d.ts.map +0 -1
  684. package/apps/app-lifeops/src/lifeops/notifications-push.js +0 -92
  685. package/apps/app-lifeops/src/lifeops/password-manager-bridge.d.ts +0 -50
  686. package/apps/app-lifeops/src/lifeops/password-manager-bridge.d.ts.map +0 -1
  687. package/apps/app-lifeops/src/lifeops/password-manager-bridge.js +0 -448
  688. package/apps/app-lifeops/src/lifeops/remote-desktop.d.ts +0 -38
  689. package/apps/app-lifeops/src/lifeops/remote-desktop.d.ts.map +0 -1
  690. package/apps/app-lifeops/src/lifeops/remote-desktop.js +0 -372
  691. package/apps/app-lifeops/src/lifeops/runtime.d.ts +0 -11
  692. package/apps/app-lifeops/src/lifeops/runtime.d.ts.map +0 -1
  693. package/apps/app-lifeops/src/lifeops/runtime.js +0 -57
  694. package/apps/app-lifeops/src/lifeops/screen-context.d.ts +0 -52
  695. package/apps/app-lifeops/src/lifeops/screen-context.d.ts.map +0 -1
  696. package/apps/app-lifeops/src/lifeops/screen-context.js +0 -349
  697. package/apps/app-lifeops/src/lifeops-route.d.ts +0 -74
  698. package/apps/app-lifeops/src/lifeops-route.d.ts.map +0 -1
  699. package/apps/app-lifeops/src/lifeops-route.js +0 -204
  700. package/apps/app-lifeops/src/platform/index.d.ts +0 -2
  701. package/apps/app-lifeops/src/platform/index.d.ts.map +0 -1
  702. package/apps/app-lifeops/src/platform/index.js +0 -1
  703. package/apps/app-lifeops/src/platform/lifeops-github.d.ts +0 -15
  704. package/apps/app-lifeops/src/platform/lifeops-github.d.ts.map +0 -1
  705. package/apps/app-lifeops/src/platform/lifeops-github.js +0 -135
  706. package/apps/app-lifeops/src/plugin.d.ts +0 -33
  707. package/apps/app-lifeops/src/plugin.d.ts.map +0 -1
  708. package/apps/app-lifeops/src/plugin.js +0 -316
  709. package/apps/app-lifeops/src/provider.d.ts +0 -4
  710. package/apps/app-lifeops/src/provider.d.ts.map +0 -1
  711. package/apps/app-lifeops/src/provider.js +0 -77
  712. package/apps/app-lifeops/src/providers/activity-profile.d.ts +0 -3
  713. package/apps/app-lifeops/src/providers/activity-profile.d.ts.map +0 -1
  714. package/apps/app-lifeops/src/providers/activity-profile.js +0 -140
  715. package/apps/app-lifeops/src/providers/app-blocker.d.ts +0 -3
  716. package/apps/app-lifeops/src/providers/app-blocker.d.ts.map +0 -1
  717. package/apps/app-lifeops/src/providers/app-blocker.js +0 -86
  718. package/apps/app-lifeops/src/providers/cross-channel-context.d.ts +0 -29
  719. package/apps/app-lifeops/src/providers/cross-channel-context.d.ts.map +0 -1
  720. package/apps/app-lifeops/src/providers/cross-channel-context.js +0 -182
  721. package/apps/app-lifeops/src/providers/inbox-triage.d.ts +0 -3
  722. package/apps/app-lifeops/src/providers/inbox-triage.d.ts.map +0 -1
  723. package/apps/app-lifeops/src/providers/inbox-triage.js +0 -90
  724. package/apps/app-lifeops/src/providers/lifeops.d.ts +0 -3
  725. package/apps/app-lifeops/src/providers/lifeops.d.ts.map +0 -1
  726. package/apps/app-lifeops/src/providers/lifeops.js +0 -197
  727. package/apps/app-lifeops/src/remote/pairing-code.d.ts +0 -39
  728. package/apps/app-lifeops/src/remote/pairing-code.d.ts.map +0 -1
  729. package/apps/app-lifeops/src/remote/pairing-code.js +0 -76
  730. package/apps/app-lifeops/src/remote/remote-session-service.d.ts +0 -107
  731. package/apps/app-lifeops/src/remote/remote-session-service.d.ts.map +0 -1
  732. package/apps/app-lifeops/src/remote/remote-session-service.js +0 -253
  733. package/apps/app-lifeops/src/service.d.ts +0 -32
  734. package/apps/app-lifeops/src/service.d.ts.map +0 -1
  735. package/apps/app-lifeops/src/service.js +0 -67
  736. package/apps/app-lifeops/src/travel-time/calendar-create.d.ts +0 -17
  737. package/apps/app-lifeops/src/travel-time/calendar-create.d.ts.map +0 -1
  738. package/apps/app-lifeops/src/travel-time/calendar-create.js +0 -21
  739. package/apps/app-lifeops/src/travel-time/service.d.ts +0 -60
  740. package/apps/app-lifeops/src/travel-time/service.d.ts.map +0 -1
  741. package/apps/app-lifeops/src/travel-time/service.js +0 -142
  742. package/apps/app-lifeops/src/utils/lifeops-url.d.ts +0 -5
  743. package/apps/app-lifeops/src/utils/lifeops-url.d.ts.map +0 -1
  744. package/apps/app-lifeops/src/utils/lifeops-url.js +0 -35
  745. package/apps/app-lifeops/src/website-blocker/chat-integration/actions/blockUntilTaskComplete.d.ts +0 -3
  746. package/apps/app-lifeops/src/website-blocker/chat-integration/actions/blockUntilTaskComplete.d.ts.map +0 -1
  747. package/apps/app-lifeops/src/website-blocker/chat-integration/actions/blockUntilTaskComplete.js +0 -246
  748. package/apps/app-lifeops/src/website-blocker/chat-integration/actions/listActiveBlocks.d.ts +0 -3
  749. package/apps/app-lifeops/src/website-blocker/chat-integration/actions/listActiveBlocks.d.ts.map +0 -1
  750. package/apps/app-lifeops/src/website-blocker/chat-integration/actions/listActiveBlocks.js +0 -83
  751. package/apps/app-lifeops/src/website-blocker/chat-integration/actions/releaseBlock.d.ts +0 -3
  752. package/apps/app-lifeops/src/website-blocker/chat-integration/actions/releaseBlock.d.ts.map +0 -1
  753. package/apps/app-lifeops/src/website-blocker/chat-integration/actions/releaseBlock.js +0 -98
  754. package/apps/app-lifeops/src/website-blocker/chat-integration/block-rule-reconciler.d.ts +0 -7
  755. package/apps/app-lifeops/src/website-blocker/chat-integration/block-rule-reconciler.d.ts.map +0 -1
  756. package/apps/app-lifeops/src/website-blocker/chat-integration/block-rule-reconciler.js +0 -111
  757. package/apps/app-lifeops/src/website-blocker/chat-integration/block-rule-schema.d.ts +0 -39
  758. package/apps/app-lifeops/src/website-blocker/chat-integration/block-rule-schema.d.ts.map +0 -1
  759. package/apps/app-lifeops/src/website-blocker/chat-integration/block-rule-schema.js +0 -123
  760. package/apps/app-lifeops/src/website-blocker/chat-integration/block-rule-service.d.ts +0 -21
  761. package/apps/app-lifeops/src/website-blocker/chat-integration/block-rule-service.d.ts.map +0 -1
  762. package/apps/app-lifeops/src/website-blocker/chat-integration/block-rule-service.js +0 -258
  763. package/apps/app-lifeops/src/website-blocker/chat-integration/index.d.ts +0 -8
  764. package/apps/app-lifeops/src/website-blocker/chat-integration/index.d.ts.map +0 -1
  765. package/apps/app-lifeops/src/website-blocker/chat-integration/index.js +0 -6
  766. package/packages/app-core/src/api/client-lifeops.d.ts +0 -35
  767. package/packages/app-core/src/api/client-lifeops.d.ts.map +0 -1
  768. package/packages/app-core/src/api/client-lifeops.js +0 -114
  769. package/packages/app-core/src/hooks/useGoogleLifeOpsConnector.d.ts +0 -20
  770. package/packages/app-core/src/hooks/useGoogleLifeOpsConnector.d.ts.map +0 -1
  771. package/packages/app-core/src/hooks/useGoogleLifeOpsConnector.js +0 -69
  772. package/packages/app-core/src/hooks/useLifeOpsAppState.d.ts +0 -21
  773. package/packages/app-core/src/hooks/useLifeOpsAppState.d.ts.map +0 -1
  774. package/packages/app-core/src/hooks/useLifeOpsAppState.js +0 -81
  775. package/packages/app-core/src/services/steward-sidecar.d.ts +0 -6
  776. package/packages/app-core/src/services/steward-sidecar.d.ts.map +0 -1
  777. package/packages/app-core/src/services/steward-sidecar.js +0 -5
@@ -1,160 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- /**
3
- * LifeOpsLinkPaypalButton — drives the PayPal OAuth Login flow for the
4
- * Money page using a popup window.
5
- *
6
- * Flow:
7
- * 1. User clicks the button.
8
- * 2. We mint a fresh `state` (CSRF nonce) and ask Eliza Cloud to build
9
- * the PayPal authorize URL.
10
- * 3. Open a popup at that URL. PayPal redirects to the cloud's
11
- * `popup-callback` page after consent; that page posts a message
12
- * back to this window with `{ code, state, error }`.
13
- * 4. We verify the `state` matches the one we generated, then call
14
- * `client.completeLifeOpsPaypalLink({ code })`. Eliza Cloud exchanges
15
- * the code for tokens, persists them to the new payment_source row,
16
- * and tells us whether the granted scope includes the Reporting API.
17
- * 5. If `capability.hasReporting === false`, the user is on a personal
18
- * PayPal account; we show a CSV-export fallback prompt.
19
- */
20
- import { client, useApp } from "@elizaos/app-core";
21
- import { Loader2, Wallet } from "lucide-react";
22
- import { useCallback, useEffect, useRef, useState } from "react";
23
- const POPUP_FEATURES = "width=560,height=720,resizable=yes,scrollbars=yes";
24
- const POPUP_NAME = "milady-paypal-oauth";
25
- const POPUP_TIMEOUT_MS = 5 * 60 * 1000;
26
- const ORIGIN_ALLOWLIST_ENV_FALLBACK = "*";
27
- function isOauthMessage(value) {
28
- if (!value || typeof value !== "object")
29
- return false;
30
- const msg = value;
31
- return msg.type === "milady-paypal-oauth";
32
- }
33
- export function LifeOpsLinkPaypalButton({ onLinked, label = "Link PayPal", }) {
34
- const { elizaCloudConnected } = useApp();
35
- const [status, setStatus] = useState("idle");
36
- const [error, setError] = useState(null);
37
- const [capability, setCapability] = useState(null);
38
- const popupRef = useRef(null);
39
- const stateRef = useRef(null);
40
- const handlerRef = useRef(null);
41
- const watchdogRef = useRef(null);
42
- const cleanup = useCallback(() => {
43
- if (handlerRef.current) {
44
- window.removeEventListener("message", handlerRef.current);
45
- handlerRef.current = null;
46
- }
47
- if (watchdogRef.current) {
48
- clearTimeout(watchdogRef.current);
49
- watchdogRef.current = null;
50
- }
51
- if (popupRef.current && !popupRef.current.closed) {
52
- try {
53
- popupRef.current.close();
54
- }
55
- catch {
56
- // Cross-origin closed by user — ignore.
57
- }
58
- }
59
- popupRef.current = null;
60
- stateRef.current = null;
61
- }, []);
62
- useEffect(() => {
63
- return () => cleanup();
64
- }, [cleanup]);
65
- const onClick = useCallback(async () => {
66
- setError(null);
67
- setCapability(null);
68
- setStatus("preparing");
69
- const state = `${Date.now().toString(36)}_${Math.random().toString(36).slice(2)}`;
70
- stateRef.current = state;
71
- let authorizeUrl;
72
- try {
73
- const result = await client.createLifeOpsPaypalAuthorizeUrl({ state });
74
- authorizeUrl = result.url;
75
- }
76
- catch (err) {
77
- setStatus("error");
78
- setError(err instanceof Error ? err.message : String(err));
79
- return;
80
- }
81
- const popup = window.open(authorizeUrl, POPUP_NAME, POPUP_FEATURES);
82
- if (!popup) {
83
- setStatus("error");
84
- setError("Popup blocked. Allow popups for this site and try again, or use the CSV export from paypal.com.");
85
- return;
86
- }
87
- popupRef.current = popup;
88
- setStatus("awaiting_user");
89
- const handler = (event) => {
90
- const expectedOrigin = process.env.MILADY_APP_ORIGIN ?? ORIGIN_ALLOWLIST_ENV_FALLBACK;
91
- if (expectedOrigin !== "*" &&
92
- event.origin &&
93
- event.origin !== window.location.origin &&
94
- event.origin !== expectedOrigin) {
95
- // Drop messages from unexpected origins.
96
- return;
97
- }
98
- if (!isOauthMessage(event.data))
99
- return;
100
- const payload = event.data;
101
- if (payload.state !== stateRef.current) {
102
- // Stale or forged message — ignore.
103
- return;
104
- }
105
- window.removeEventListener("message", handler);
106
- handlerRef.current = null;
107
- if (watchdogRef.current) {
108
- clearTimeout(watchdogRef.current);
109
- watchdogRef.current = null;
110
- }
111
- if (payload.error) {
112
- setStatus("error");
113
- setError(payload.errorDescription || payload.error);
114
- cleanup();
115
- return;
116
- }
117
- if (!payload.code) {
118
- setStatus("error");
119
- setError("PayPal returned no authorization code.");
120
- cleanup();
121
- return;
122
- }
123
- setStatus("exchanging");
124
- void client
125
- .completeLifeOpsPaypalLink({ code: payload.code })
126
- .then((result) => {
127
- setStatus("done");
128
- setCapability(result.capability);
129
- onLinked?.(result.source, result.capability);
130
- })
131
- .catch((err) => {
132
- setStatus("error");
133
- setError(err instanceof Error ? err.message : String(err));
134
- })
135
- .finally(() => {
136
- cleanup();
137
- });
138
- };
139
- handlerRef.current = handler;
140
- window.addEventListener("message", handler);
141
- watchdogRef.current = setTimeout(() => {
142
- setStatus("error");
143
- setError("PayPal authorization timed out. Try again.");
144
- cleanup();
145
- }, POPUP_TIMEOUT_MS);
146
- }, [cleanup, onLinked]);
147
- const disabled = !elizaCloudConnected || status === "preparing" || status === "exchanging";
148
- let buttonLabel = label;
149
- if (status === "preparing")
150
- buttonLabel = "Preparing PayPal…";
151
- else if (status === "awaiting_user")
152
- buttonLabel = "Waiting for PayPal…";
153
- else if (status === "exchanging")
154
- buttonLabel = "Linking…";
155
- else if (status === "done")
156
- buttonLabel = "Linked";
157
- return (_jsxs("div", { className: "flex flex-col gap-1", children: [_jsxs("button", { type: "button", onClick: onClick, disabled: disabled, title: !elizaCloudConnected
158
- ? "PayPal link is not available — Eliza Cloud not connected, or PAYPAL_* env vars not set in cloud."
159
- : 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: [status === "preparing" || status === "exchanging" ? (_jsx(Loader2, { className: "h-3.5 w-3.5 animate-spin", "aria-hidden": true })) : (_jsx(Wallet, { className: "h-3.5 w-3.5", "aria-hidden": true })), buttonLabel] }), error ? (_jsxs("span", { className: "text-[11px] text-rose-300", children: ["PayPal: ", error] })) : null, status === "done" && capability && !capability.hasReporting ? (_jsx("span", { className: "text-[11px] text-amber-300", children: "PayPal connected, but this account is personal-tier. Use CSV export from paypal.com \u2192 Activity \u2192 Statements to import transactions." })) : null] }));
160
- }
@@ -1,3 +0,0 @@
1
- import { type JSX } from "react";
2
- export declare function LifeOpsMoneySection(): JSX.Element | null;
3
- //# sourceMappingURL=LifeOpsMoneySection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LifeOpsMoneySection.d.ts","sourceRoot":"","sources":["../../../../../../../apps/app-lifeops/src/components/LifeOpsMoneySection.tsx"],"names":[],"mappings":"AAqBA,OAAO,EAAE,KAAK,GAAG,EAA6C,MAAM,OAAO,CAAC;AAkG5E,wBAAgB,mBAAmB,IAAI,GAAG,CAAC,OAAO,GAAG,IAAI,CA4uBxD"}
@@ -1,373 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { client, useApp, } from "@elizaos/app-core";
3
- import { Ban, CalendarClock, CheckCircle2, CreditCard, DollarSign, FilePlus2, Loader2, MessageCircle, RefreshCw, Sparkles, Timer, Trash2, TrendingDown, Upload, } from "lucide-react";
4
- import { useCallback, useEffect, useMemo, useState } from "react";
5
- import { useLifeOpsChatLauncher } from "./LifeOpsChatAdapter.js";
6
- import { LifeOpsLinkBankButton } from "./LifeOpsLinkBankButton.js";
7
- import { LifeOpsLinkPaypalButton } from "./LifeOpsLinkPaypalButton.js";
8
- function formatUsd(value) {
9
- return `$${value.toLocaleString("en-US", {
10
- minimumFractionDigits: 2,
11
- maximumFractionDigits: 2,
12
- })}`;
13
- }
14
- function formatDate(iso) {
15
- try {
16
- return new Date(iso).toLocaleDateString(undefined, {
17
- month: "short",
18
- day: "numeric",
19
- year: "numeric",
20
- });
21
- }
22
- catch {
23
- return iso.slice(0, 10);
24
- }
25
- }
26
- const RELATIVE_TIME_UNITS = [
27
- { unit: "year", ms: 365 * 24 * 60 * 60 * 1000 },
28
- { unit: "month", ms: 30 * 24 * 60 * 60 * 1000 },
29
- { unit: "day", ms: 24 * 60 * 60 * 1000 },
30
- { unit: "hour", ms: 60 * 60 * 1000 },
31
- { unit: "minute", ms: 60 * 1000 },
32
- ];
33
- function formatRelative(iso) {
34
- const ts = Date.parse(iso);
35
- if (!Number.isFinite(ts))
36
- return iso.slice(0, 10);
37
- const diffMs = ts - Date.now();
38
- const absMs = Math.abs(diffMs);
39
- if (absMs < 30_000)
40
- return "just now";
41
- const formatter = new Intl.RelativeTimeFormat(undefined, { numeric: "auto" });
42
- for (const { unit, ms } of RELATIVE_TIME_UNITS) {
43
- if (absMs >= ms) {
44
- return formatter.format(Math.round(diffMs / ms), unit);
45
- }
46
- }
47
- return formatter.format(Math.round(diffMs / 1000), "second");
48
- }
49
- function formatDueRelative(dueDateIso) {
50
- // dueDateIso is YYYY-MM-DD; treat as UTC noon to avoid TZ-shift edge cases.
51
- const due = new Date(`${dueDateIso}T12:00:00.000Z`).getTime();
52
- if (!Number.isFinite(due))
53
- return dueDateIso;
54
- const today = new Date();
55
- const todayUtc = Date.UTC(today.getUTCFullYear(), today.getUTCMonth(), today.getUTCDate(), 12);
56
- const diffDays = Math.round((due - todayUtc) / (24 * 60 * 60 * 1000));
57
- if (diffDays === 0)
58
- return "due today";
59
- if (diffDays === 1)
60
- return "due tomorrow";
61
- if (diffDays > 1)
62
- return `due in ${diffDays}d`;
63
- return `${Math.abs(diffDays)}d overdue`;
64
- }
65
- function formatCredits(value) {
66
- return value.toLocaleString("en-US", {
67
- minimumFractionDigits: 2,
68
- maximumFractionDigits: 2,
69
- });
70
- }
71
- function cadenceLabel(cadence) {
72
- switch (cadence) {
73
- case "weekly":
74
- return "Weekly";
75
- case "biweekly":
76
- return "Every 2 weeks";
77
- case "monthly":
78
- return "Monthly";
79
- case "quarterly":
80
- return "Quarterly";
81
- case "annual":
82
- return "Annual";
83
- case "irregular":
84
- return "Irregular";
85
- }
86
- }
87
- export function LifeOpsMoneySection() {
88
- const [dashboard, setDashboard] = useState(null);
89
- const [loading, setLoading] = useState(true);
90
- const [error, setError] = useState(null);
91
- const [importStatus, setImportStatus] = useState(null);
92
- const { openLifeOpsChat } = useLifeOpsChatLauncher();
93
- const { elizaCloudConnected, elizaCloudCredits, elizaCloudCreditsLow, elizaCloudCreditsCritical, } = useApp();
94
- const [creditTransactions, setCreditTransactions] = useState(null);
95
- const [creditTransactionsLoading, setCreditTransactionsLoading] = useState(false);
96
- const refresh = useCallback(async () => {
97
- setLoading(true);
98
- setError(null);
99
- try {
100
- const dash = await client.getLifeOpsPaymentsDashboard({ windowDays: 30 });
101
- setDashboard(dash);
102
- }
103
- catch (err) {
104
- setError(err instanceof Error ? err.message : String(err));
105
- }
106
- finally {
107
- setLoading(false);
108
- }
109
- }, []);
110
- useEffect(() => {
111
- void refresh();
112
- }, [refresh]);
113
- const refreshCreditTransactions = useCallback(async () => {
114
- if (!elizaCloudConnected) {
115
- setCreditTransactions(null);
116
- return;
117
- }
118
- setCreditTransactionsLoading(true);
119
- try {
120
- const result = await client.getCloudBillingHistory();
121
- const list = result.data ??
122
- result.items ??
123
- result.history ??
124
- [];
125
- setCreditTransactions(list);
126
- }
127
- catch {
128
- // 401/404/network → no data yet, keep section quiet rather than erroring loudly.
129
- setCreditTransactions([]);
130
- }
131
- finally {
132
- setCreditTransactionsLoading(false);
133
- }
134
- }, [elizaCloudConnected]);
135
- useEffect(() => {
136
- void refreshCreditTransactions();
137
- }, [refreshCreditTransactions]);
138
- const onAddSource = useCallback(async () => {
139
- const label = window.prompt("Source label (e.g. 'Chase Checking', 'Amex'):");
140
- if (!label)
141
- return;
142
- const kindAnswer = window.prompt("Source kind — csv / manual / plaid / paypal:", "csv");
143
- const kind = (kindAnswer ?? "csv").trim().toLowerCase();
144
- if (!["csv", "manual", "plaid", "paypal"].includes(kind)) {
145
- window.alert("Invalid kind.");
146
- return;
147
- }
148
- const institution = window.prompt("Institution (optional):", "") ?? undefined;
149
- try {
150
- await client.addLifeOpsPaymentSource({
151
- kind: kind,
152
- label,
153
- institution: institution && institution.trim().length > 0 ? institution : null,
154
- });
155
- await refresh();
156
- }
157
- catch (err) {
158
- window.alert(`Failed to add source: ${err instanceof Error ? err.message : String(err)}`);
159
- }
160
- }, [refresh]);
161
- const onImportCsv = useCallback(async (source) => {
162
- const csvText = window.prompt(`Paste CSV content for "${source.label}" (first row = header):`);
163
- if (!csvText || csvText.trim().length === 0)
164
- return;
165
- setImportStatus(`Importing CSV into ${source.label}…`);
166
- try {
167
- const result = await client.importLifeOpsPaymentCsv({
168
- sourceId: source.id,
169
- csvText,
170
- });
171
- setImportStatus(`Imported ${result.inserted} new transactions (${result.skipped} already on file${result.errors.length > 0 ? `, ${result.errors.length} errors` : ""}).`);
172
- await refresh();
173
- }
174
- catch (err) {
175
- setImportStatus(null);
176
- window.alert(`CSV import failed: ${err instanceof Error ? err.message : String(err)}`);
177
- }
178
- }, [refresh]);
179
- const onDeleteSource = useCallback(async (source) => {
180
- if (!window.confirm(`Delete source "${source.label}"? This removes its transactions too.`)) {
181
- return;
182
- }
183
- try {
184
- await client.deleteLifeOpsPaymentSource(source.id);
185
- await refresh();
186
- }
187
- catch (err) {
188
- window.alert(`Delete failed: ${err instanceof Error ? err.message : String(err)}`);
189
- }
190
- }, [refresh]);
191
- const onSyncPlaid = useCallback(async (source) => {
192
- setImportStatus(`Syncing ${source.label} via Plaid…`);
193
- try {
194
- const result = await client.syncLifeOpsPlaidTransactions({
195
- sourceId: source.id,
196
- });
197
- setImportStatus(`Plaid sync: ${result.inserted} new transaction${result.inserted === 1 ? "" : "s"} (${result.skipped} already on file).`);
198
- await refresh();
199
- }
200
- catch (err) {
201
- setImportStatus(null);
202
- window.alert(`Plaid sync failed: ${err instanceof Error ? err.message : String(err)}`);
203
- }
204
- }, [refresh]);
205
- const onSyncPaypal = useCallback(async (source) => {
206
- setImportStatus(`Syncing ${source.label} via PayPal…`);
207
- try {
208
- const result = await client.syncLifeOpsPaypalTransactions({
209
- sourceId: source.id,
210
- windowDays: 90,
211
- });
212
- if (result.fallback === "csv_export") {
213
- setImportStatus("PayPal Reporting API isn't available for this account (typically personal-tier). Use the CSV export from paypal.com → Activity → Statements.");
214
- }
215
- else {
216
- setImportStatus(`PayPal sync: ${result.inserted} new transaction${result.inserted === 1 ? "" : "s"} (${result.skipped} already on file).`);
217
- }
218
- await refresh();
219
- }
220
- catch (err) {
221
- setImportStatus(null);
222
- window.alert(`PayPal sync failed: ${err instanceof Error ? err.message : String(err)}`);
223
- }
224
- }, [refresh]);
225
- const onScanGmail = useCallback(async () => {
226
- try {
227
- const result = await client.scanLifeOpsEmailSubscriptions();
228
- window.alert(`Scan complete. ${result.summary.uniqueSenderCount} senders found (${result.summary.oneClickEligibleCount} one-click eligible).`);
229
- }
230
- catch (err) {
231
- window.alert(`Scan failed: ${err instanceof Error ? err.message : String(err)}`);
232
- }
233
- }, []);
234
- const onChatAboutRecurringCharge = useCallback((charge) => {
235
- openLifeOpsChat([
236
- `Help me review this recurring charge from ${charge.merchantDisplay}.`,
237
- `Cadence: ${cadenceLabel(charge.cadence)}.`,
238
- `Average charge: ${formatUsd(charge.averageAmountUsd)}.`,
239
- `Annualized cost: ${formatUsd(charge.annualizedCostUsd)}.`,
240
- `Last charged: ${formatDate(charge.latestSeenAt)}.`,
241
- "If it makes sense, prepare the cancellation steps before doing anything destructive.",
242
- ].join(" "));
243
- }, [openLifeOpsChat]);
244
- const onCancelRecurringCharge = useCallback(async (charge, playbookKey) => {
245
- try {
246
- const summary = (await client.cancelLifeOpsSubscription({
247
- serviceSlug: playbookKey,
248
- executor: "user_browser",
249
- confirmed: false,
250
- }));
251
- const status = summary.cancellation.status;
252
- if (status === "completed" || status === "already_canceled") {
253
- window.alert(`${summary.cancellation.serviceName} cancellation: ${status.replace("_", " ")}.`);
254
- await refresh();
255
- return;
256
- }
257
- if (status === "awaiting_confirmation" ||
258
- status === "needs_login" ||
259
- status === "needs_mfa" ||
260
- status === "phone_only" ||
261
- status === "chat_only" ||
262
- status === "blocked") {
263
- openLifeOpsChat([
264
- `Cancellation for ${charge.merchantDisplay} is in state "${status}".`,
265
- "Continue in chat — I'll guide you through the next step (login, MFA, retention prompts, or phone/chat handoff).",
266
- ].join(" "));
267
- return;
268
- }
269
- if (status === "failed" || status === "unsupported_surface") {
270
- // PLAYBOOK_NOT_IMPLEMENTED comes through as `failed` with the error
271
- // string carrying the prefix and the managementUrl populated. Open
272
- // the management page in a new tab so the user can finish manually.
273
- const error = summary.cancellation.error ?? "";
274
- const url = summary.cancellation.managementUrl;
275
- if (error.includes("PLAYBOOK_NOT_IMPLEMENTED") && url) {
276
- window.open(url, "_blank", "noopener");
277
- return;
278
- }
279
- window.alert(`Cancellation could not start: ${error || status}`);
280
- return;
281
- }
282
- }
283
- catch (err) {
284
- window.alert(`Cancellation failed: ${err instanceof Error ? err.message : String(err)}`);
285
- }
286
- }, [openLifeOpsChat, refresh]);
287
- const onMarkBillPaid = useCallback(async (bill) => {
288
- try {
289
- await client.markLifeOpsBillPaid({ billId: bill.id });
290
- await refresh();
291
- }
292
- catch (err) {
293
- window.alert(`Mark paid failed: ${err instanceof Error ? err.message : String(err)}`);
294
- }
295
- }, [refresh]);
296
- const onSnoozeBill = useCallback(async (bill) => {
297
- try {
298
- await client.snoozeLifeOpsBill({ billId: bill.id, days: 7 });
299
- await refresh();
300
- }
301
- catch (err) {
302
- window.alert(`Snooze failed: ${err instanceof Error ? err.message : String(err)}`);
303
- }
304
- }, [refresh]);
305
- const onChatAboutBill = useCallback((bill) => {
306
- openLifeOpsChat([
307
- `Help me look at this bill from ${bill.merchant}.`,
308
- `Amount: ${formatUsd(bill.amountUsd)} ${bill.currency}.`,
309
- `Due: ${bill.dueDate} (${formatDueRelative(bill.dueDate)}).`,
310
- "What should I do about it?",
311
- ].join(" "));
312
- }, [openLifeOpsChat]);
313
- const playbookHitsByMerchant = useMemo(() => {
314
- const map = new Map();
315
- if (!dashboard?.recurringPlaybookHits)
316
- return map;
317
- for (const hit of dashboard.recurringPlaybookHits) {
318
- map.set(hit.merchantNormalized, hit.playbookKey);
319
- }
320
- return map;
321
- }, [dashboard]);
322
- const annualRecurring = useMemo(() => {
323
- if (!dashboard)
324
- return 0;
325
- return dashboard.recurring.reduce((total, charge) => total + charge.annualizedCostUsd, 0);
326
- }, [dashboard]);
327
- if (loading && !dashboard) {
328
- return (_jsxs("div", { className: "flex items-center justify-center gap-2 p-6 text-sm text-muted", children: [_jsx(Loader2, { className: "h-4 w-4 animate-spin", "aria-hidden": true }), "Loading money dashboard\u2026"] }));
329
- }
330
- if (error) {
331
- return (_jsxs("div", { className: "space-y-3 p-6", children: [_jsx("div", { className: "rounded-md border border-rose-500/30 bg-rose-500/10 px-3 py-2 text-xs text-rose-300", children: error }), _jsxs("button", { type: "button", onClick: () => void refresh(), className: "inline-flex items-center gap-2 rounded-md border border-border/30 bg-bg-muted/30 px-3 py-1.5 text-xs font-medium text-txt hover:bg-bg-muted/60", children: [_jsx(RefreshCw, { className: "h-3.5 w-3.5" }), " Retry"] })] }));
332
- }
333
- const dash = dashboard;
334
- if (!dash)
335
- return null;
336
- return (_jsxs("div", { className: "flex h-full w-full flex-col gap-4 p-4", "data-testid": "lifeops-money-section", children: [_jsxs("header", { className: "flex items-center justify-between", children: [_jsx("div", { children: _jsxs("h1", { className: "flex items-center gap-2 text-base font-semibold", children: [_jsx(CreditCard, { className: "h-4 w-4", "aria-hidden": true }), " Money"] }) }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("button", { type: "button", onClick: () => void onScanGmail(), "aria-label": "Scan Gmail for subscription senders", className: "inline-flex h-8 w-8 items-center justify-center rounded-full border border-border/30 bg-bg-muted/30 text-muted hover:bg-bg-muted/60 hover:text-txt", title: "Scan Gmail for subscription senders", children: _jsx(Upload, { className: "h-3.5 w-3.5", "aria-hidden": true }) }), _jsx("button", { type: "button", onClick: () => {
337
- void refresh();
338
- void refreshCreditTransactions();
339
- }, "aria-label": "Refresh dashboard", className: "inline-flex h-8 w-8 items-center justify-center rounded-full border border-border/30 bg-bg-muted/30 text-muted hover:bg-bg-muted/60 hover:text-txt", title: "Refresh dashboard", children: _jsx(RefreshCw, { className: "h-3.5 w-3.5", "aria-hidden": true }) })] })] }), importStatus ? (_jsx("div", { className: "rounded-md border border-emerald-500/30 bg-emerald-500/10 px-3 py-2 text-xs text-emerald-300", children: importStatus })) : null, _jsx(CloudCreditsBalance, { connected: elizaCloudConnected, balance: elizaCloudCredits, low: elizaCloudCreditsLow, critical: elizaCloudCreditsCritical }), _jsxs("section", { className: "grid grid-cols-1 gap-3 md:grid-cols-3", children: [_jsx(Kpi, { label: `Last ${dash.spending.windowDays}d spend`, value: formatUsd(dash.spending.totalSpendUsd), icon: _jsx(TrendingDown, { className: "h-4 w-4", "aria-hidden": true }) }), _jsx(Kpi, { label: "Monthly recurring", value: formatUsd(dash.spending.recurringSpendUsd), icon: _jsx(CreditCard, { className: "h-4 w-4", "aria-hidden": true }) }), _jsx(Kpi, { label: "Annualized recurring", value: formatUsd(annualRecurring), icon: _jsx(DollarSign, { className: "h-4 w-4", "aria-hidden": true }) })] }), _jsxs("div", { className: "grid grid-cols-1 gap-4 lg:grid-cols-[minmax(0,2fr)_minmax(0,1fr)]", children: [_jsxs("div", { className: "grid grid-cols-1 gap-4 md:grid-cols-2", children: [_jsxs("section", { className: "rounded-lg border border-border/20 bg-bg/30 p-3", children: [_jsxs("header", { className: "mb-2 flex items-center justify-between gap-2", children: [_jsx("h2", { className: "text-sm font-semibold", children: "Sources" }), _jsxs("div", { className: "flex flex-wrap items-center gap-1.5", children: [_jsx(LifeOpsLinkBankButton, { onLinked: () => void refresh() }), _jsx(LifeOpsLinkPaypalButton, { onLinked: () => void refresh() }), _jsx("button", { type: "button", onClick: () => void onAddSource(), "aria-label": "Add a source manually", className: "inline-flex h-7 w-7 items-center justify-center rounded-full border border-border/30 bg-bg-muted/30 text-muted hover:bg-bg-muted/60 hover:text-txt", title: "Add a source manually (CSV / manual)", children: _jsx(FilePlus2, { className: "h-3.5 w-3.5", "aria-hidden": true }) })] })] }), dash.sources.length === 0 ? (_jsx("p", { className: "text-xs text-muted", children: "No sources." })) : (_jsx("ul", { className: "space-y-2", children: dash.sources.map((source) => (_jsxs("li", { className: "flex items-center justify-between gap-2 rounded border border-border/20 bg-bg/40 px-3 py-2 text-xs", children: [_jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [_jsx("span", { className: "inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-full border border-border/20 bg-bg-muted/30 font-mono text-[10px] uppercase text-muted", children: source.kind.slice(0, 2) }), _jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "truncate font-medium text-txt", children: source.label }), _jsx("div", { className: "truncate text-[11px] text-muted", children: source.institution ??
340
- (source.lastSyncedAt
341
- ? formatDate(source.lastSyncedAt)
342
- : `${source.transactionCount} tx`) })] })] }), _jsxs("div", { className: "flex shrink-0 items-center gap-1", children: [source.kind === "csv" ? (_jsx("button", { type: "button", onClick: () => void onImportCsv(source), "aria-label": `Import CSV for ${source.label}`, className: "inline-flex h-7 w-7 items-center justify-center rounded-full border border-border/30 bg-bg-muted/30 text-muted hover:bg-bg-muted/60 hover:text-txt", title: "Import CSV", children: _jsx(Upload, { className: "h-3.5 w-3.5", "aria-hidden": true }) })) : null, source.kind === "plaid" ? (_jsx("button", { type: "button", onClick: () => void onSyncPlaid(source), "aria-label": `Sync ${source.label}`, className: "inline-flex h-7 w-7 items-center justify-center rounded-full border border-border/30 bg-bg-muted/30 text-muted hover:bg-bg-muted/60 hover:text-txt", title: "Pull the latest transactions from Plaid", children: _jsx(RefreshCw, { className: "h-3.5 w-3.5", "aria-hidden": true }) })) : null, source.kind === "paypal" ? (_jsx("button", { type: "button", onClick: () => void onSyncPaypal(source), "aria-label": `Sync ${source.label}`, className: "inline-flex h-7 w-7 items-center justify-center rounded-full border border-border/30 bg-bg-muted/30 text-muted hover:bg-bg-muted/60 hover:text-txt", title: "Pull recent PayPal transactions (Reporting API)", children: _jsx(RefreshCw, { className: "h-3.5 w-3.5", "aria-hidden": true }) })) : null, _jsx("button", { type: "button", onClick: () => void onDeleteSource(source), "aria-label": `Remove ${source.label}`, className: "inline-flex h-7 w-7 items-center justify-center rounded-full text-muted hover:bg-bg-muted/40 hover:text-rose-300", title: "Remove source", children: _jsx(Trash2, { className: "h-3.5 w-3.5" }) })] })] }, source.id))) }))] }), _jsxs("section", { className: "rounded-lg border border-border/20 bg-bg/30 p-3", children: [_jsx("h2", { className: "mb-2 text-sm font-semibold", children: "Top categories" }), dash.spending.topCategories.length === 0 ? (_jsx("p", { className: "text-xs text-muted", children: "No categories." })) : (_jsx("ul", { className: "space-y-1.5", children: dash.spending.topCategories.map((category) => (_jsxs("li", { className: "flex items-center justify-between text-xs", children: [_jsx("span", { className: "truncate text-txt/85", children: category.category }), _jsx("span", { className: "tabular-nums text-muted", children: formatUsd(category.totalUsd) })] }, category.category))) }))] })] }), _jsx(CloudCreditsActivity, { connected: elizaCloudConnected, loading: creditTransactionsLoading, transactions: creditTransactions })] }), _jsxs("section", { className: "rounded-lg border border-border/20 bg-bg/30 p-3", "data-testid": "lifeops-money-bills", children: [_jsx("header", { className: "mb-2 flex items-center justify-between gap-2", children: _jsxs("h2", { className: "flex items-center gap-1.5 text-sm font-semibold", children: [_jsx(CalendarClock, { className: "h-3.5 w-3.5", "aria-hidden": true }), " Upcoming bills"] }) }), (dash.upcomingBills ?? []).length === 0 ? (_jsx("p", { className: "text-xs text-muted", children: "No bills detected from email yet." })) : (_jsx("ul", { className: "space-y-1.5", children: (dash.upcomingBills ?? []).map((bill) => (_jsxs("li", { className: "flex items-center justify-between gap-2 rounded border border-border/10 bg-bg/40 px-2.5 py-1.5 text-xs", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "truncate font-medium text-txt", children: bill.merchant }), _jsxs("div", { className: "mt-0.5 flex items-center gap-2 text-[11px] text-muted", children: [_jsx("span", { children: formatDate(bill.dueDate) }), _jsx("span", { className: "rounded bg-bg-muted/40 px-1.5 py-0.5 font-mono text-[10px]", children: formatDueRelative(bill.dueDate) })] })] }), _jsxs("div", { className: "flex shrink-0 items-center gap-1", children: [_jsx("span", { className: "tabular-nums font-semibold text-amber-300", children: formatUsd(bill.amountUsd) }), _jsx("button", { type: "button", onClick: () => void onMarkBillPaid(bill), "aria-label": `Mark ${bill.merchant} paid`, className: "inline-flex h-7 w-7 items-center justify-center rounded-full border border-emerald-500/30 bg-emerald-500/10 text-emerald-200 hover:bg-emerald-500/20", title: "Mark this bill as paid", children: _jsx(CheckCircle2, { className: "h-3.5 w-3.5", "aria-hidden": true }) }), _jsx("button", { type: "button", onClick: () => void onSnoozeBill(bill), "aria-label": `Snooze ${bill.merchant} one week`, className: "inline-flex h-7 w-7 items-center justify-center rounded-full border border-border/30 bg-bg-muted/30 text-muted hover:bg-bg-muted/60 hover:text-txt", title: "Push the due date out a week", children: _jsx(Timer, { className: "h-3.5 w-3.5", "aria-hidden": true }) }), _jsx("button", { type: "button", onClick: () => onChatAboutBill(bill), "aria-label": `Open chat about ${bill.merchant}`, className: "inline-flex h-7 w-7 items-center justify-center rounded-full border border-border/30 bg-bg-muted/30 text-muted hover:bg-bg-muted/60 hover:text-txt", title: "Open chat about this bill", children: _jsx(MessageCircle, { className: "h-3.5 w-3.5", "aria-hidden": true }) })] })] }, bill.id))) }))] }), _jsxs("section", { className: "rounded-lg border border-border/20 bg-bg/30 p-3", children: [_jsx("header", { className: "mb-2 flex items-center justify-between", children: _jsx("h2", { className: "text-sm font-semibold", children: "Recurring charges" }) }), dash.recurring.length === 0 ? (_jsx("p", { className: "text-xs text-muted", children: "No recurring charges." })) : (_jsx("div", { className: "overflow-x-auto", children: _jsxs("table", { className: "w-full min-w-[640px] text-xs", children: [_jsx("thead", { className: "text-left text-[11px] uppercase tracking-wide text-muted", children: _jsxs("tr", { children: [_jsx("th", { className: "py-1.5 pr-3 font-medium", children: "Merchant" }), _jsx("th", { className: "py-1.5 pr-3 font-medium", children: "Cadence" }), _jsx("th", { className: "py-1.5 pr-3 text-right font-medium", children: "Typical" }), _jsx("th", { className: "py-1.5 pr-3 text-right font-medium", children: "Annualized" }), _jsx("th", { className: "py-1.5 pr-3 font-medium", children: "Last charged" }), _jsx("th", { className: "py-1.5 font-medium", children: "Actions" })] }) }), _jsx("tbody", { children: dash.recurring.map((charge) => (_jsxs("tr", { className: "border-t border-border/10", children: [_jsx("td", { className: "py-1.5 pr-3 font-medium text-txt", children: charge.merchantDisplay }), _jsx("td", { className: "py-1.5 pr-3 text-muted", children: cadenceLabel(charge.cadence) }), _jsx("td", { className: "py-1.5 pr-3 text-right tabular-nums", children: formatUsd(charge.averageAmountUsd) }), _jsx("td", { className: "py-1.5 pr-3 text-right tabular-nums font-semibold text-rose-300", children: formatUsd(charge.annualizedCostUsd) }), _jsx("td", { className: "py-1.5 pr-3 text-muted", children: formatDate(charge.latestSeenAt) }), _jsxs("td", { className: "py-1.5 text-muted", children: [(() => {
343
- const playbookKey = playbookHitsByMerchant.get(charge.merchantNormalized);
344
- if (playbookKey) {
345
- return (_jsx("button", { type: "button", onClick: () => void onCancelRecurringCharge(charge, playbookKey), "aria-label": `Cancel ${charge.merchantDisplay}`, className: "mr-1 inline-flex h-7 w-7 items-center justify-center rounded-full border border-rose-500/40 bg-rose-500/10 text-rose-200 hover:bg-rose-500/20", title: `Open the cancellation flow for ${charge.merchantDisplay}`, children: _jsx(Ban, { className: "h-3.5 w-3.5", "aria-hidden": true }) }));
346
- }
347
- return null;
348
- })(), _jsx("button", { type: "button", onClick: () => onChatAboutRecurringCharge(charge), "aria-label": `Open chat about ${charge.merchantDisplay}`, className: "mr-1 inline-flex h-7 w-7 items-center justify-center rounded-full border border-border/30 bg-bg-muted/30 text-muted hover:bg-bg-muted/60 hover:text-txt", title: "Open chat with this recurring charge attached", children: _jsx(MessageCircle, { className: "h-3.5 w-3.5", "aria-hidden": true }) })] })] }, charge.merchantNormalized))) })] }) }))] }), dash.spending.topMerchants.length > 0 ? (_jsxs("section", { className: "rounded-lg border border-border/20 bg-bg/30 p-3", children: [_jsx("h2", { className: "mb-2 text-sm font-semibold", children: "Top merchants" }), _jsx("ul", { className: "grid grid-cols-1 gap-2 md:grid-cols-2", children: dash.spending.topMerchants.map((merchant) => (_jsxs("li", { className: "flex items-center justify-between rounded border border-border/10 bg-bg/40 px-2 py-1 text-xs", children: [_jsx("span", { className: "truncate text-txt/85", children: merchant.merchantDisplay }), _jsxs("span", { className: "tabular-nums text-muted", children: [formatUsd(merchant.totalUsd), " \u00B7 ", merchant.transactionCount, "\u00D7"] })] }, merchant.merchantNormalized))) })] })) : null, loading ? (_jsxs("div", { className: "flex items-center gap-2 text-[11px] text-muted", children: [_jsx(Loader2, { className: "h-3 w-3 animate-spin", "aria-hidden": true }), " Refreshing\u2026"] })) : null] }));
349
- }
350
- function Kpi(props) {
351
- return (_jsxs("div", { className: "rounded-lg border border-border/20 bg-bg/30 px-3 py-3", children: [_jsxs("div", { className: "flex items-center gap-2 text-[11px] text-muted", children: [props.icon, _jsx("span", { children: props.label })] }), _jsx("div", { className: "mt-1 text-lg font-semibold tabular-nums", children: props.value })] }));
352
- }
353
- function CloudCreditsBalance(props) {
354
- if (!props.connected) {
355
- return (_jsxs("section", { className: "flex items-center justify-between gap-3 rounded-lg border border-border/20 bg-bg/30 px-4 py-3 text-xs text-muted", children: [_jsxs("span", { className: "inline-flex items-center gap-2", children: [_jsx(Sparkles, { className: "h-3.5 w-3.5", "aria-hidden": true }), "Eliza Cloud"] }), _jsx("a", { href: "#/settings", className: "font-medium text-txt underline-offset-2 hover:underline", children: "Settings" })] }));
356
- }
357
- const showLoading = props.balance === null;
358
- const accentColor = props.critical
359
- ? "text-rose-300"
360
- : props.low
361
- ? "text-amber-300"
362
- : "text-emerald-300";
363
- return (_jsxs("section", { className: "flex items-center justify-between gap-4 rounded-lg border border-border/20 bg-bg/40 px-4 py-3", title: "Eliza Cloud balance", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "rounded-md border border-border/30 bg-bg-muted/30 p-2 text-txt/80", children: _jsx(Sparkles, { className: "h-4 w-4", "aria-hidden": true }) }), _jsx("div", { children: showLoading ? (_jsx("div", { className: "mt-1 h-6 w-32 animate-pulse rounded bg-bg-muted/40" })) : (_jsx("div", { className: `text-2xl font-semibold tabular-nums ${accentColor}`, children: formatCredits(props.balance ?? 0) })) })] }), props.low && !showLoading ? (_jsx("span", { className: "h-2.5 w-2.5 rounded-full bg-amber-300 shadow-[0_0_0_3px_rgba(245,158,11,0.18)]", title: "Low balance" })) : null] }));
364
- }
365
- function CloudCreditsActivity(props) {
366
- if (!props.connected)
367
- return null;
368
- const recent = (props.transactions ?? []).slice(0, 10);
369
- return (_jsxs("section", { className: "rounded-lg border border-border/20 bg-bg/30 p-3", children: [_jsxs("header", { className: "mb-2 flex items-center justify-between", children: [_jsx("h2", { className: "text-sm font-semibold", children: "Credits" }), props.loading ? (_jsx(Loader2, { className: "h-3.5 w-3.5 animate-spin text-muted", "aria-hidden": true })) : null] }), recent.length === 0 ? (_jsx("p", { className: "text-xs text-muted", children: props.loading ? "Loading…" : "No recent activity" })) : (_jsx("ul", { className: "space-y-1.5", children: recent.map((txn) => {
370
- const isCredit = txn.amount >= 0;
371
- return (_jsxs("li", { className: "flex items-center justify-between gap-2 rounded border border-border/10 bg-bg/40 px-2.5 py-1.5 text-xs", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "truncate font-medium text-txt/90", children: txn.description ?? (isCredit ? "Top-up" : "Usage") }), _jsx("div", { className: "mt-0.5 text-[11px] text-muted", children: formatRelative(txn.createdAt) })] }), _jsxs("span", { className: `shrink-0 tabular-nums font-semibold ${isCredit ? "text-emerald-300" : "text-rose-300"}`, children: [isCredit ? "+" : "−", formatCredits(Math.abs(txn.amount))] })] }, txn.id));
372
- }) }))] }));
373
- }
@@ -1,9 +0,0 @@
1
- import type { LifeOpsSection } from "../hooks/useLifeOpsSection.js";
2
- interface LifeOpsNavRailProps {
3
- activeSection: LifeOpsSection;
4
- onNavigate: (section: LifeOpsSection) => void;
5
- collapsible?: boolean;
6
- }
7
- export declare function LifeOpsNavRail({ activeSection, onNavigate, collapsible, }: LifeOpsNavRailProps): import("react/jsx-runtime").JSX.Element;
8
- export {};
9
- //# sourceMappingURL=LifeOpsNavRail.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LifeOpsNavRail.d.ts","sourceRoot":"","sources":["../../../../../../../apps/app-lifeops/src/components/LifeOpsNavRail.tsx"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEpE,UAAU,mBAAmB;IAC3B,aAAa,EAAE,cAAc,CAAC;IAC9B,UAAU,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9C,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAsFD,wBAAgB,cAAc,CAAC,EAC7B,aAAa,EACb,UAAU,EACV,WAAkB,GACnB,EAAE,mBAAmB,2CA8FrB"}