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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (980) hide show
  1. package/apps/app-companion/src/components/companion/CompanionAppView.d.ts.map +1 -1
  2. package/apps/app-companion/src/components/companion/CompanionAppView.js +6 -2
  3. package/apps/app-companion/src/components/companion/CompanionHeader.d.ts +3 -1
  4. package/apps/app-companion/src/components/companion/CompanionHeader.d.ts.map +1 -1
  5. package/apps/app-companion/src/components/companion/CompanionHeader.js +8 -2
  6. package/apps/app-companion/src/components/companion/CompanionPerformanceSettings.d.ts +2 -0
  7. package/apps/app-companion/src/components/companion/CompanionPerformanceSettings.d.ts.map +1 -0
  8. package/apps/app-companion/src/components/companion/CompanionPerformanceSettings.js +33 -0
  9. package/apps/app-companion/src/components/companion/CompanionSettingsPanel.d.ts +2 -0
  10. package/apps/app-companion/src/components/companion/CompanionSettingsPanel.d.ts.map +1 -0
  11. package/apps/app-companion/src/components/companion/CompanionSettingsPanel.js +7 -0
  12. package/apps/app-companion/src/components/companion/CompanionShell.d.ts.map +1 -1
  13. package/apps/app-companion/src/components/companion/CompanionShell.js +1 -1
  14. package/apps/app-companion/src/components/companion/CompanionView.d.ts.map +1 -1
  15. package/apps/app-companion/src/components/companion/CompanionView.js +6 -2
  16. package/apps/app-companion/src/types/render-modes.d.ts +4 -0
  17. package/apps/app-companion/src/types/render-modes.d.ts.map +1 -0
  18. package/apps/app-companion/src/types/render-modes.js +6 -0
  19. package/apps/app-elizamaker/src/drop-routes.d.ts.map +1 -1
  20. package/apps/app-elizamaker/src/drop-service.d.ts +1 -1
  21. package/apps/app-elizamaker/src/drop-service.d.ts.map +1 -1
  22. package/apps/app-elizamaker/src/og-tracker.d.ts.map +1 -1
  23. package/apps/app-elizamaker/src/og-tracker.js +1 -1
  24. package/apps/app-elizamaker/src/twitter-verify.js +1 -1
  25. package/apps/app-lifeops/src/actions/website-blocker.d.ts.map +1 -1
  26. package/apps/app-lifeops/src/actions/website-blocker.js +18 -16
  27. package/apps/app-lifeops/src/api/client-lifeops.d.ts +37 -75
  28. package/apps/app-lifeops/src/api/client-lifeops.d.ts.map +1 -1
  29. package/apps/app-lifeops/src/api/client-lifeops.js +119 -0
  30. package/apps/app-lifeops/src/inbox/channel-deep-links.d.ts +2 -4
  31. package/apps/app-lifeops/src/inbox/channel-deep-links.d.ts.map +1 -1
  32. package/apps/app-lifeops/src/inbox/channel-deep-links.js +8 -38
  33. package/apps/app-lifeops/src/inbox/message-fetcher.d.ts +1 -1
  34. package/apps/app-lifeops/src/inbox/message-fetcher.d.ts.map +1 -1
  35. package/apps/app-lifeops/src/inbox/message-fetcher.js +180 -77
  36. package/apps/app-lifeops/src/inbox/types.d.ts +1 -1
  37. package/apps/app-lifeops/src/inbox/types.d.ts.map +1 -1
  38. package/apps/app-lifeops/src/lifeops/browser-extension-store.d.ts.map +1 -1
  39. package/apps/app-lifeops/src/lifeops/browser-readiness.d.ts +16 -0
  40. package/apps/app-lifeops/src/lifeops/browser-readiness.d.ts.map +1 -0
  41. package/apps/app-lifeops/src/lifeops/browser-readiness.js +74 -0
  42. package/apps/app-lifeops/src/lifeops/browser-session-lifecycle.d.ts.map +1 -1
  43. package/apps/app-lifeops/src/lifeops/browser-session-lifecycle.js +1 -1
  44. package/apps/app-lifeops/src/lifeops/checkin/checkin-service.d.ts.map +1 -1
  45. package/apps/app-lifeops/src/lifeops/defaults.d.ts +1 -1
  46. package/apps/app-lifeops/src/lifeops/defaults.d.ts.map +1 -1
  47. package/apps/app-lifeops/src/lifeops/discord-desktop-cdp.d.ts +16 -0
  48. package/apps/app-lifeops/src/lifeops/discord-desktop-cdp.d.ts.map +1 -1
  49. package/apps/app-lifeops/src/lifeops/discord-desktop-cdp.js +217 -1
  50. package/apps/app-lifeops/src/lifeops/email-unsubscribe-gmail.d.ts.map +1 -1
  51. package/apps/app-lifeops/src/lifeops/email-unsubscribe-gmail.js +8 -3
  52. package/apps/app-lifeops/src/lifeops/feature-flags.types.d.ts.map +1 -1
  53. package/apps/app-lifeops/src/lifeops/goal-semantic-evaluator.js +1 -1
  54. package/apps/app-lifeops/src/lifeops/google-calendar.d.ts.map +1 -1
  55. package/apps/app-lifeops/src/lifeops/google-calendar.js +24 -31
  56. package/apps/app-lifeops/src/lifeops/google-drive.d.ts.map +1 -1
  57. package/apps/app-lifeops/src/lifeops/google-drive.js +7 -1
  58. package/apps/app-lifeops/src/lifeops/google-fetch.d.ts +1 -1
  59. package/apps/app-lifeops/src/lifeops/google-fetch.d.ts.map +1 -1
  60. package/apps/app-lifeops/src/lifeops/google-fetch.js +4 -6
  61. package/apps/app-lifeops/src/lifeops/google-gmail.d.ts.map +1 -1
  62. package/apps/app-lifeops/src/lifeops/google-gmail.js +50 -34
  63. package/apps/app-lifeops/src/lifeops/health-bridge.d.ts.map +1 -1
  64. package/apps/app-lifeops/src/lifeops/health-bridge.js +53 -10
  65. package/apps/app-lifeops/src/lifeops/health-connectors.d.ts +23 -0
  66. package/apps/app-lifeops/src/lifeops/health-connectors.d.ts.map +1 -0
  67. package/apps/app-lifeops/src/lifeops/health-connectors.js +962 -0
  68. package/apps/app-lifeops/src/lifeops/health-oauth.d.ts +62 -0
  69. package/apps/app-lifeops/src/lifeops/health-oauth.d.ts.map +1 -0
  70. package/apps/app-lifeops/src/lifeops/health-oauth.js +496 -0
  71. package/apps/app-lifeops/src/lifeops/payment-csv-import.d.ts.map +1 -1
  72. package/apps/app-lifeops/src/lifeops/payment-csv-import.js +1 -5
  73. package/apps/app-lifeops/src/lifeops/payment-recurrence.d.ts.map +1 -1
  74. package/apps/app-lifeops/src/lifeops/payment-recurrence.js +2 -1
  75. package/apps/app-lifeops/src/lifeops/payment-types.d.ts +8 -7
  76. package/apps/app-lifeops/src/lifeops/payment-types.d.ts.map +1 -1
  77. package/apps/app-lifeops/src/lifeops/priority-scoring.d.ts.map +1 -1
  78. package/apps/app-lifeops/src/lifeops/repository.d.ts +46 -10
  79. package/apps/app-lifeops/src/lifeops/repository.d.ts.map +1 -1
  80. package/apps/app-lifeops/src/lifeops/repository.js +683 -65
  81. package/apps/app-lifeops/src/lifeops/schedule-insight.d.ts.map +1 -1
  82. package/apps/app-lifeops/src/lifeops/schedule-insight.js +2 -3
  83. package/apps/app-lifeops/src/lifeops/schema.d.ts +6403 -3831
  84. package/apps/app-lifeops/src/lifeops/schema.d.ts.map +1 -1
  85. package/apps/app-lifeops/src/lifeops/schema.js +105 -18
  86. package/apps/app-lifeops/src/lifeops/seed-routines.d.ts +1 -1
  87. package/apps/app-lifeops/src/lifeops/seed-routines.d.ts.map +1 -1
  88. package/apps/app-lifeops/src/lifeops/seed-routines.js +7 -2
  89. package/apps/app-lifeops/src/lifeops/service-constants.d.ts +15 -0
  90. package/apps/app-lifeops/src/lifeops/service-constants.d.ts.map +1 -1
  91. package/apps/app-lifeops/src/lifeops/service-constants.js +21 -3
  92. package/apps/app-lifeops/src/lifeops/service-helpers-browser.d.ts +1 -1
  93. package/apps/app-lifeops/src/lifeops/service-helpers-browser.d.ts.map +1 -1
  94. package/apps/app-lifeops/src/lifeops/service-helpers-browser.js +1 -1
  95. package/apps/app-lifeops/src/lifeops/service-helpers-misc.d.ts.map +1 -1
  96. package/apps/app-lifeops/src/lifeops/service-helpers-misc.js +5 -5
  97. package/apps/app-lifeops/src/lifeops/service-helpers-occurrence.d.ts.map +1 -1
  98. package/apps/app-lifeops/src/lifeops/service-helpers-occurrence.js +1 -1
  99. package/apps/app-lifeops/src/lifeops/service-helpers-reminder.d.ts +48 -1
  100. package/apps/app-lifeops/src/lifeops/service-helpers-reminder.d.ts.map +1 -1
  101. package/apps/app-lifeops/src/lifeops/service-helpers-reminder.js +191 -17
  102. package/apps/app-lifeops/src/lifeops/service-mixin-browser.d.ts.map +1 -1
  103. package/apps/app-lifeops/src/lifeops/service-mixin-browser.js +10 -7
  104. package/apps/app-lifeops/src/lifeops/service-mixin-calendar.d.ts.map +1 -1
  105. package/apps/app-lifeops/src/lifeops/service-mixin-calendar.js +4 -11
  106. package/apps/app-lifeops/src/lifeops/service-mixin-core.d.ts.map +1 -1
  107. package/apps/app-lifeops/src/lifeops/service-mixin-core.js +5 -2
  108. package/apps/app-lifeops/src/lifeops/service-mixin-definitions.d.ts.map +1 -1
  109. package/apps/app-lifeops/src/lifeops/service-mixin-definitions.js +7 -6
  110. package/apps/app-lifeops/src/lifeops/service-mixin-discord.js +237 -32
  111. package/apps/app-lifeops/src/lifeops/service-mixin-drive.d.ts.map +1 -1
  112. package/apps/app-lifeops/src/lifeops/service-mixin-drive.js +6 -5
  113. package/apps/app-lifeops/src/lifeops/service-mixin-gmail.d.ts.map +1 -1
  114. package/apps/app-lifeops/src/lifeops/service-mixin-gmail.js +86 -31
  115. package/apps/app-lifeops/src/lifeops/service-mixin-goals.d.ts.map +1 -1
  116. package/apps/app-lifeops/src/lifeops/service-mixin-goals.js +14 -15
  117. package/apps/app-lifeops/src/lifeops/service-mixin-google.d.ts.map +1 -1
  118. package/apps/app-lifeops/src/lifeops/service-mixin-google.js +71 -51
  119. package/apps/app-lifeops/src/lifeops/service-mixin-health.js +528 -1
  120. package/apps/app-lifeops/src/lifeops/service-mixin-imessage.d.ts.map +1 -1
  121. package/apps/app-lifeops/src/lifeops/service-mixin-imessage.js +94 -6
  122. package/apps/app-lifeops/src/lifeops/service-mixin-inbox.d.ts.map +1 -1
  123. package/apps/app-lifeops/src/lifeops/service-mixin-inbox.js +9 -0
  124. package/apps/app-lifeops/src/lifeops/service-mixin-payments.d.ts +3 -0
  125. package/apps/app-lifeops/src/lifeops/service-mixin-payments.d.ts.map +1 -1
  126. package/apps/app-lifeops/src/lifeops/service-mixin-payments.js +93 -26
  127. package/apps/app-lifeops/src/lifeops/service-mixin-reminders.d.ts.map +1 -1
  128. package/apps/app-lifeops/src/lifeops/service-mixin-reminders.js +331 -167
  129. package/apps/app-lifeops/src/lifeops/service-mixin-scheduling.js +5 -10
  130. package/apps/app-lifeops/src/lifeops/service-mixin-screentime.js +372 -10
  131. package/apps/app-lifeops/src/lifeops/service-mixin-signal.js +179 -43
  132. package/apps/app-lifeops/src/lifeops/service-mixin-sleep.js +31 -1
  133. package/apps/app-lifeops/src/lifeops/service-mixin-status.d.ts.map +1 -1
  134. package/apps/app-lifeops/src/lifeops/service-mixin-status.js +82 -13
  135. package/apps/app-lifeops/src/lifeops/service-mixin-subscriptions.js +1 -1
  136. package/apps/app-lifeops/src/lifeops/service-mixin-telegram.js +59 -12
  137. package/apps/app-lifeops/src/lifeops/service-mixin-whatsapp.js +165 -22
  138. package/apps/app-lifeops/src/lifeops/service-mixin-workflows.d.ts.map +1 -1
  139. package/apps/app-lifeops/src/lifeops/service-mixin-workflows.js +3 -0
  140. package/apps/app-lifeops/src/lifeops/service-normalize-calendar.d.ts.map +1 -1
  141. package/apps/app-lifeops/src/lifeops/service-normalize-calendar.js +4 -4
  142. package/apps/app-lifeops/src/lifeops/service-normalize-gmail.d.ts +3 -1
  143. package/apps/app-lifeops/src/lifeops/service-normalize-gmail.d.ts.map +1 -1
  144. package/apps/app-lifeops/src/lifeops/service-normalize-gmail.js +5 -3
  145. package/apps/app-lifeops/src/lifeops/service-normalize-health.d.ts.map +1 -1
  146. package/apps/app-lifeops/src/lifeops/service-normalize-health.js +4 -3
  147. package/apps/app-lifeops/src/lifeops/service-normalize-task.d.ts.map +1 -1
  148. package/apps/app-lifeops/src/lifeops/service-normalize-task.js +10 -1
  149. package/apps/app-lifeops/src/lifeops/service-normalize.d.ts.map +1 -1
  150. package/apps/app-lifeops/src/lifeops/service-normalize.js +3 -3
  151. package/apps/app-lifeops/src/lifeops/service-types.d.ts +1 -1
  152. package/apps/app-lifeops/src/lifeops/service-types.d.ts.map +1 -1
  153. package/apps/app-lifeops/src/lifeops/service.d.ts +92 -166
  154. package/apps/app-lifeops/src/lifeops/service.d.ts.map +1 -1
  155. package/apps/app-lifeops/src/lifeops/service.js +2 -2
  156. package/apps/app-lifeops/src/lifeops/signal-auth.d.ts +7 -0
  157. package/apps/app-lifeops/src/lifeops/signal-auth.d.ts.map +1 -1
  158. package/apps/app-lifeops/src/lifeops/signal-auth.js +50 -6
  159. package/apps/app-lifeops/src/lifeops/signal-local-client.d.ts +7 -0
  160. package/apps/app-lifeops/src/lifeops/signal-local-client.d.ts.map +1 -1
  161. package/apps/app-lifeops/src/lifeops/signal-local-client.js +95 -4
  162. package/apps/app-lifeops/src/lifeops/sleep-cycle.d.ts +7 -1
  163. package/apps/app-lifeops/src/lifeops/sleep-cycle.d.ts.map +1 -1
  164. package/apps/app-lifeops/src/lifeops/sleep-cycle.js +16 -6
  165. package/apps/app-lifeops/src/lifeops/sleep-episode-store.d.ts +2 -1
  166. package/apps/app-lifeops/src/lifeops/sleep-episode-store.d.ts.map +1 -1
  167. package/apps/app-lifeops/src/lifeops/sleep-episode-store.js +7 -3
  168. package/apps/app-lifeops/src/lifeops/social-taxonomy.d.ts.map +1 -1
  169. package/apps/app-lifeops/src/lifeops/social-taxonomy.js +68 -16
  170. package/apps/app-lifeops/src/lifeops/subscriptions-playbooks.d.ts.map +1 -1
  171. package/apps/app-lifeops/src/lifeops/subscriptions-playbooks.js +24 -14
  172. package/apps/app-lifeops/src/lifeops/subscriptions-types.d.ts.map +1 -1
  173. package/apps/app-lifeops/src/lifeops/telegram-auth.d.ts +8 -1
  174. package/apps/app-lifeops/src/lifeops/telegram-auth.d.ts.map +1 -1
  175. package/apps/app-lifeops/src/lifeops/telegram-auth.js +44 -5
  176. package/apps/app-lifeops/src/lifeops/telegram-local-client.d.ts +1 -0
  177. package/apps/app-lifeops/src/lifeops/telegram-local-client.d.ts.map +1 -1
  178. package/apps/app-lifeops/src/lifeops/telegram-local-client.js +141 -7
  179. package/apps/app-lifeops/src/lifeops/twilio.d.ts.map +1 -1
  180. package/apps/app-lifeops/src/lifeops/twilio.js +3 -1
  181. package/apps/app-lifeops/src/lifeops/whatsapp-client.d.ts.map +1 -1
  182. package/apps/app-lifeops/src/lifeops/whatsapp-client.js +7 -4
  183. package/apps/app-lifeops/src/lifeops/x-poster.d.ts.map +1 -1
  184. package/apps/app-lifeops/src/lifeops/x-poster.js +3 -1
  185. package/apps/app-lifeops/src/lifeops/x-reader.d.ts.map +1 -1
  186. package/apps/app-lifeops/src/lifeops/x-reader.js +10 -3
  187. package/apps/app-lifeops/src/providers/website-blocker.js +2 -2
  188. package/apps/app-lifeops/src/public.d.ts +2 -2
  189. package/apps/app-lifeops/src/public.d.ts.map +1 -1
  190. package/apps/app-lifeops/src/public.js +2 -2
  191. package/apps/app-lifeops/src/routes/lifeops-routes.d.ts.map +1 -1
  192. package/apps/app-lifeops/src/routes/lifeops-routes.js +327 -92
  193. package/apps/app-lifeops/src/routes/plugin.d.ts.map +1 -1
  194. package/apps/app-lifeops/src/routes/plugin.js +79 -50
  195. package/apps/app-lifeops/src/routes/sleep-routes.d.ts.map +1 -1
  196. package/apps/app-lifeops/src/website-blocker/access.d.ts +1 -1
  197. package/apps/app-lifeops/src/website-blocker/access.d.ts.map +1 -1
  198. package/apps/app-lifeops/src/website-blocker/access.js +13 -9
  199. package/apps/app-lifeops/src/website-blocker/engine.d.ts.map +1 -1
  200. package/apps/app-lifeops/src/website-blocker/engine.js +23 -2
  201. package/apps/app-lifeops/src/website-blocker/public.d.ts +4 -4
  202. package/apps/app-lifeops/src/website-blocker/public.d.ts.map +1 -1
  203. package/apps/app-lifeops/src/website-blocker/public.js +2 -2
  204. package/apps/app-lifeops/src/website-blocker/roles.d.ts +2 -4
  205. package/apps/app-lifeops/src/website-blocker/roles.d.ts.map +1 -1
  206. package/apps/app-lifeops/src/website-blocker/roles.js +1 -4
  207. package/apps/app-steward/src/actions/check-balance.d.ts.map +1 -1
  208. package/apps/app-steward/src/actions/wallet-action-shared.d.ts.map +1 -1
  209. package/apps/app-steward/src/actions/wallet-action-shared.js +1 -1
  210. package/apps/app-steward/src/api/wallet-evm-balance.d.ts.map +1 -1
  211. package/apps/app-steward/src/browser-workspace-wallet.d.ts +15 -1
  212. package/apps/app-steward/src/browser-workspace-wallet.d.ts.map +1 -1
  213. package/apps/app-steward/src/browser-workspace-wallet.js +7 -1
  214. package/apps/app-steward/src/index.d.ts +4 -4
  215. package/apps/app-steward/src/index.d.ts.map +1 -1
  216. package/apps/app-steward/src/index.js +4 -4
  217. package/apps/app-steward/src/routes/steward-bridge.d.ts.map +1 -1
  218. package/apps/app-steward/src/routes/steward-bridge.js +1 -1
  219. package/apps/app-steward/src/routes/wallet-browser-compat-routes.d.ts.map +1 -1
  220. package/apps/app-steward/src/routes/wallet-browser-compat-routes.js +88 -1
  221. package/apps/app-training/src/backends/atropos.d.ts.map +1 -1
  222. package/apps/app-training/src/backends/atropos.js +2 -2
  223. package/apps/app-training/src/backends/native.d.ts +1 -1
  224. package/apps/app-training/src/backends/native.d.ts.map +1 -1
  225. package/apps/app-training/src/backends/tinker.d.ts.map +1 -1
  226. package/apps/app-training/src/core/index.d.ts +5 -5
  227. package/apps/app-training/src/core/index.d.ts.map +1 -1
  228. package/apps/app-training/src/core/index.js +4 -4
  229. package/apps/app-training/src/core/privacy-filter.d.ts.map +1 -1
  230. package/apps/app-training/src/core/training-orchestrator.d.ts.map +1 -1
  231. package/apps/app-training/src/optimizers/bootstrap-fewshot.d.ts.map +1 -1
  232. package/apps/app-training/src/optimizers/bootstrap-fewshot.js +7 -3
  233. package/apps/app-training/src/optimizers/index.d.ts +4 -4
  234. package/apps/app-training/src/optimizers/index.d.ts.map +1 -1
  235. package/apps/app-training/src/optimizers/index.js +2 -2
  236. package/apps/app-training/src/optimizers/instruction-search.d.ts.map +1 -1
  237. package/apps/app-training/src/optimizers/instruction-search.js +6 -1
  238. package/apps/app-training/src/optimizers/prompt-evolution.d.ts.map +1 -1
  239. package/apps/app-training/src/optimizers/prompt-evolution.js +6 -1
  240. package/apps/app-training/src/optimizers/scoring.d.ts +5 -7
  241. package/apps/app-training/src/optimizers/scoring.d.ts.map +1 -1
  242. package/apps/app-training/src/optimizers/types.d.ts.map +1 -1
  243. package/apps/app-training/src/routes/index.d.ts +1 -1
  244. package/apps/app-training/src/routes/index.d.ts.map +1 -1
  245. package/apps/app-training/src/routes/index.js +1 -1
  246. package/apps/app-training/src/services/index.d.ts +3 -3
  247. package/apps/app-training/src/services/index.d.ts.map +1 -1
  248. package/apps/app-training/src/services/index.js +2 -2
  249. package/apps/app-training/src/services/training-trigger.d.ts.map +1 -1
  250. package/package.json +4 -4
  251. package/packages/agent/src/actions/browser-session.d.ts.map +1 -1
  252. package/packages/agent/src/actions/browser-session.js +73 -5
  253. package/packages/agent/src/actions/extract-page.d.ts.map +1 -1
  254. package/packages/agent/src/actions/extract-page.js +11 -3
  255. package/packages/agent/src/actions/launchpad-launch.d.ts +16 -0
  256. package/packages/agent/src/actions/launchpad-launch.d.ts.map +1 -0
  257. package/packages/agent/src/actions/launchpad-launch.js +207 -0
  258. package/packages/agent/src/actions/logs.d.ts.map +1 -1
  259. package/packages/agent/src/actions/logs.js +19 -2
  260. package/packages/agent/src/actions/manage-tasks.d.ts.map +1 -1
  261. package/packages/agent/src/actions/manage-tasks.js +55 -0
  262. package/packages/agent/src/actions/page-action-groups.d.ts +17 -0
  263. package/packages/agent/src/actions/page-action-groups.d.ts.map +1 -0
  264. package/packages/agent/src/actions/page-action-groups.js +171 -0
  265. package/packages/agent/src/actions/scratchpad.d.ts.map +1 -1
  266. package/packages/agent/src/actions/scratchpad.js +17 -2
  267. package/packages/agent/src/actions/web-search.d.ts.map +1 -1
  268. package/packages/agent/src/actions/web-search.js +10 -2
  269. package/packages/agent/src/api/accounts-routes.d.ts.map +1 -1
  270. package/packages/agent/src/api/accounts-routes.js +8 -10
  271. package/packages/agent/src/api/chat-augmentation.d.ts.map +1 -1
  272. package/packages/agent/src/api/chat-augmentation.js +18 -6
  273. package/packages/agent/src/api/cloud-relay-routes.d.ts.map +1 -1
  274. package/packages/agent/src/api/cloud-relay-routes.js +3 -2
  275. package/packages/agent/src/api/cloud-routes.d.ts +3 -0
  276. package/packages/agent/src/api/cloud-routes.d.ts.map +1 -1
  277. package/packages/agent/src/api/cloud-routes.js +54 -1
  278. package/packages/agent/src/api/cloud-status-routes.d.ts.map +1 -1
  279. package/packages/agent/src/api/cloud-status-routes.js +25 -15
  280. package/packages/agent/src/api/connector-routes.d.ts +8 -0
  281. package/packages/agent/src/api/connector-routes.d.ts.map +1 -1
  282. package/packages/agent/src/api/connector-routes.js +25 -1
  283. package/packages/agent/src/api/experience-routes.d.ts.map +1 -1
  284. package/packages/agent/src/api/experience-routes.js +57 -0
  285. package/packages/agent/src/api/index.d.ts +1 -1
  286. package/packages/agent/src/api/index.d.ts.map +1 -1
  287. package/packages/agent/src/api/index.js +5 -5
  288. package/packages/agent/src/api/provider-switch-config.d.ts +4 -1
  289. package/packages/agent/src/api/provider-switch-config.d.ts.map +1 -1
  290. package/packages/agent/src/api/provider-switch-config.js +8 -1
  291. package/packages/agent/src/api/provider-switch-routes.d.ts +7 -1
  292. package/packages/agent/src/api/provider-switch-routes.d.ts.map +1 -1
  293. package/packages/agent/src/api/provider-switch-routes.js +62 -27
  294. package/packages/agent/src/api/runtime-plugin-routes.d.ts +5 -0
  295. package/packages/agent/src/api/runtime-plugin-routes.d.ts.map +1 -1
  296. package/packages/agent/src/api/runtime-plugin-routes.js +13 -0
  297. package/packages/agent/src/api/server-helpers-auth.d.ts.map +1 -1
  298. package/packages/agent/src/api/server-helpers-auth.js +7 -0
  299. package/packages/agent/src/api/server.d.ts.map +1 -1
  300. package/packages/agent/src/api/server.js +73 -11
  301. package/packages/agent/src/api/subscription-routes.d.ts.map +1 -1
  302. package/packages/agent/src/api/subscription-routes.js +6 -2
  303. package/packages/agent/src/auth/credentials.d.ts.map +1 -1
  304. package/packages/agent/src/auth/credentials.js +6 -2
  305. package/packages/agent/src/autonomy/index.d.ts.map +1 -1
  306. package/packages/agent/src/autonomy/index.js +5 -3
  307. package/packages/agent/src/bin.js +25 -0
  308. package/packages/agent/src/cli/index.d.ts.map +1 -1
  309. package/packages/agent/src/cli/index.js +17 -1
  310. package/packages/agent/src/cloud/cloud-manager.d.ts +1 -0
  311. package/packages/agent/src/cloud/cloud-manager.d.ts.map +1 -1
  312. package/packages/agent/src/cloud/cloud-manager.js +9 -0
  313. package/packages/agent/src/providers/page-scoped-context.d.ts.map +1 -1
  314. package/packages/agent/src/providers/page-scoped-context.js +48 -8
  315. package/packages/agent/src/runtime/aosp-llama-adapter.d.ts +193 -0
  316. package/packages/agent/src/runtime/aosp-llama-adapter.d.ts.map +1 -0
  317. package/packages/agent/src/runtime/aosp-llama-adapter.js +938 -0
  318. package/packages/agent/src/runtime/aosp-local-inference-bootstrap.d.ts +42 -0
  319. package/packages/agent/src/runtime/aosp-local-inference-bootstrap.d.ts.map +1 -0
  320. package/packages/agent/src/runtime/aosp-local-inference-bootstrap.js +299 -0
  321. package/packages/agent/src/runtime/core-plugins.d.ts +20 -0
  322. package/packages/agent/src/runtime/core-plugins.d.ts.map +1 -1
  323. package/packages/agent/src/runtime/core-plugins.js +22 -2
  324. package/packages/agent/src/runtime/discord-local-plugin.d.ts.map +1 -1
  325. package/packages/agent/src/runtime/discord-local-plugin.js +36 -0
  326. package/packages/agent/src/runtime/eliza-plugin.d.ts.map +1 -1
  327. package/packages/agent/src/runtime/eliza-plugin.js +9 -0
  328. package/packages/agent/src/runtime/eliza.d.ts.map +1 -1
  329. package/packages/agent/src/runtime/eliza.js +18 -8
  330. package/packages/agent/src/runtime/first-time-setup.d.ts +1 -0
  331. package/packages/agent/src/runtime/first-time-setup.d.ts.map +1 -1
  332. package/packages/agent/src/runtime/first-time-setup.js +1 -0
  333. package/packages/agent/src/runtime/operations/classifier.d.ts +36 -0
  334. package/packages/agent/src/runtime/operations/classifier.d.ts.map +1 -0
  335. package/packages/agent/src/runtime/operations/classifier.js +72 -0
  336. package/packages/agent/src/runtime/operations/cold-strategy.d.ts +19 -0
  337. package/packages/agent/src/runtime/operations/cold-strategy.d.ts.map +1 -0
  338. package/packages/agent/src/runtime/operations/cold-strategy.js +83 -0
  339. package/packages/agent/src/runtime/operations/health-checks.d.ts +24 -0
  340. package/packages/agent/src/runtime/operations/health-checks.d.ts.map +1 -0
  341. package/packages/agent/src/runtime/operations/health-checks.js +186 -0
  342. package/packages/agent/src/runtime/operations/health.d.ts +32 -0
  343. package/packages/agent/src/runtime/operations/health.d.ts.map +1 -0
  344. package/packages/agent/src/runtime/operations/health.js +151 -0
  345. package/packages/agent/src/runtime/operations/index.d.ts +16 -0
  346. package/packages/agent/src/runtime/operations/index.d.ts.map +1 -0
  347. package/packages/agent/src/runtime/operations/index.js +14 -0
  348. package/packages/agent/src/runtime/operations/manager.d.ts +68 -0
  349. package/packages/agent/src/runtime/operations/manager.d.ts.map +1 -0
  350. package/packages/agent/src/runtime/operations/manager.js +182 -0
  351. package/packages/agent/src/runtime/operations/reload-hot.d.ts +40 -0
  352. package/packages/agent/src/runtime/operations/reload-hot.d.ts.map +1 -0
  353. package/packages/agent/src/runtime/operations/reload-hot.js +176 -0
  354. package/packages/agent/src/runtime/operations/repository.d.ts +44 -0
  355. package/packages/agent/src/runtime/operations/repository.d.ts.map +1 -0
  356. package/packages/agent/src/runtime/operations/repository.js +233 -0
  357. package/packages/agent/src/runtime/operations/types.d.ts +201 -0
  358. package/packages/agent/src/runtime/operations/types.d.ts.map +1 -0
  359. package/packages/agent/src/runtime/operations/types.js +30 -0
  360. package/packages/agent/src/runtime/plugin-collector.d.ts.map +1 -1
  361. package/packages/agent/src/runtime/plugin-collector.js +47 -7
  362. package/packages/agent/src/runtime/plugin-role-gating.d.ts.map +1 -1
  363. package/packages/agent/src/runtime/plugin-role-gating.js +42 -9
  364. package/packages/agent/src/runtime/restart.d.ts +14 -38
  365. package/packages/agent/src/runtime/restart.d.ts.map +1 -1
  366. package/packages/agent/src/runtime/restart.js +14 -39
  367. package/packages/agent/src/services/browser-workspace-desktop.d.ts.map +1 -1
  368. package/packages/agent/src/services/browser-workspace-desktop.js +107 -0
  369. package/packages/agent/src/services/browser-workspace-types.d.ts +7 -1
  370. package/packages/agent/src/services/browser-workspace-types.d.ts.map +1 -1
  371. package/packages/agent/src/services/browser-workspace.d.ts.map +1 -1
  372. package/packages/agent/src/services/browser-workspace.js +7 -0
  373. package/packages/agent/src/services/index.d.ts +1 -0
  374. package/packages/agent/src/services/index.d.ts.map +1 -1
  375. package/packages/agent/src/services/index.js +1 -0
  376. package/packages/agent/src/services/launchpads/image-generator.d.ts +22 -0
  377. package/packages/agent/src/services/launchpads/image-generator.d.ts.map +1 -0
  378. package/packages/agent/src/services/launchpads/image-generator.js +46 -0
  379. package/packages/agent/src/services/launchpads/launchpad-engine.d.ts +32 -0
  380. package/packages/agent/src/services/launchpads/launchpad-engine.d.ts.map +1 -0
  381. package/packages/agent/src/services/launchpads/launchpad-engine.js +191 -0
  382. package/packages/agent/src/services/launchpads/launchpad-types.d.ts +116 -0
  383. package/packages/agent/src/services/launchpads/launchpad-types.d.ts.map +1 -0
  384. package/packages/agent/src/services/launchpads/launchpad-types.js +19 -0
  385. package/packages/agent/src/services/launchpads/metadata-generator.d.ts +24 -0
  386. package/packages/agent/src/services/launchpads/metadata-generator.d.ts.map +1 -0
  387. package/packages/agent/src/services/launchpads/metadata-generator.js +96 -0
  388. package/packages/agent/src/services/launchpads/profiles/flap-sh.d.ts +25 -0
  389. package/packages/agent/src/services/launchpads/profiles/flap-sh.d.ts.map +1 -0
  390. package/packages/agent/src/services/launchpads/profiles/flap-sh.js +80 -0
  391. package/packages/agent/src/services/launchpads/profiles/four-meme.d.ts +11 -0
  392. package/packages/agent/src/services/launchpads/profiles/four-meme.d.ts.map +1 -0
  393. package/packages/agent/src/services/launchpads/profiles/four-meme.js +70 -0
  394. package/packages/agent/src/services/registry-client.js +1 -1
  395. package/packages/agent/src/services/research-task-executor.d.ts.map +1 -1
  396. package/packages/agent/src/services/research-task-executor.js +3 -1
  397. package/packages/app-core/src/App.d.ts.map +1 -1
  398. package/packages/app-core/src/App.js +6 -8
  399. package/packages/app-core/src/api/auth/sessions.js +1 -1
  400. package/packages/app-core/src/api/auth/tokens.d.ts +3 -0
  401. package/packages/app-core/src/api/auth/tokens.d.ts.map +1 -0
  402. package/packages/app-core/src/api/auth/tokens.js +13 -0
  403. package/packages/app-core/src/api/auth.d.ts +1 -3
  404. package/packages/app-core/src/api/auth.d.ts.map +1 -1
  405. package/packages/app-core/src/api/auth.js +2 -16
  406. package/packages/app-core/src/api/client-agent.d.ts +14 -3
  407. package/packages/app-core/src/api/client-agent.d.ts.map +1 -1
  408. package/packages/app-core/src/api/client-agent.js +74 -1
  409. package/packages/app-core/src/api/client-base.d.ts.map +1 -1
  410. package/packages/app-core/src/api/client-base.js +34 -2
  411. package/packages/app-core/src/api/client-cloud.d.ts +5 -1
  412. package/packages/app-core/src/api/client-cloud.d.ts.map +1 -1
  413. package/packages/app-core/src/api/client-cloud.js +9 -2
  414. package/packages/app-core/src/api/client-types-chat.d.ts +8 -0
  415. package/packages/app-core/src/api/client-types-chat.d.ts.map +1 -1
  416. package/packages/app-core/src/api/client-types-cloud.d.ts +2 -0
  417. package/packages/app-core/src/api/client-types-cloud.d.ts.map +1 -1
  418. package/packages/app-core/src/api/client-types-config.d.ts +1 -1
  419. package/packages/app-core/src/api/client-types-config.d.ts.map +1 -1
  420. package/packages/app-core/src/api/client-types-core.d.ts +1 -1
  421. package/packages/app-core/src/api/client-types-core.d.ts.map +1 -1
  422. package/packages/app-core/src/api/client-types-experience.d.ts +50 -0
  423. package/packages/app-core/src/api/client-types-experience.d.ts.map +1 -1
  424. package/packages/app-core/src/api/client-wallet.d.ts +7 -1
  425. package/packages/app-core/src/api/client-wallet.d.ts.map +1 -1
  426. package/packages/app-core/src/api/client-wallet.js +6 -0
  427. package/packages/app-core/src/components/accounts/AccountCard.d.ts.map +1 -1
  428. package/packages/app-core/src/components/accounts/AccountCard.js +5 -3
  429. package/packages/app-core/src/components/accounts/AccountList.d.ts.map +1 -1
  430. package/packages/app-core/src/components/accounts/AccountList.js +1 -9
  431. package/packages/app-core/src/components/accounts/AddAccountDialog.d.ts.map +1 -1
  432. package/packages/app-core/src/components/accounts/AddAccountDialog.js +2 -27
  433. package/packages/app-core/src/components/accounts/RotationStrategyPicker.d.ts.map +1 -1
  434. package/packages/app-core/src/components/accounts/RotationStrategyPicker.js +0 -5
  435. package/packages/app-core/src/components/apps/AppsCatalogGrid.js +1 -1
  436. package/packages/app-core/src/components/apps/app-identity.d.ts +8 -0
  437. package/packages/app-core/src/components/apps/app-identity.d.ts.map +1 -1
  438. package/packages/app-core/src/components/apps/app-identity.js +23 -2
  439. package/packages/app-core/src/components/apps/catalog-loader.d.ts.map +1 -1
  440. package/packages/app-core/src/components/apps/catalog-loader.js +10 -1
  441. package/packages/app-core/src/components/apps/helpers.d.ts +5 -2
  442. package/packages/app-core/src/components/apps/helpers.d.ts.map +1 -1
  443. package/packages/app-core/src/components/apps/helpers.js +14 -3
  444. package/packages/app-core/src/components/apps/overlay-app-registry.d.ts.map +1 -1
  445. package/packages/app-core/src/components/apps/overlay-app-registry.js +13 -2
  446. package/packages/app-core/src/components/character/CharacterExperienceWorkspace.d.ts.map +1 -1
  447. package/packages/app-core/src/components/character/CharacterExperienceWorkspace.js +220 -3
  448. package/packages/app-core/src/components/character/character-hub-helpers.d.ts.map +1 -1
  449. package/packages/app-core/src/components/character/character-hub-helpers.js +4 -0
  450. package/packages/app-core/src/components/character/character-hub-types.d.ts +4 -0
  451. package/packages/app-core/src/components/character/character-hub-types.d.ts.map +1 -1
  452. package/packages/app-core/src/components/chat/AppsSection.d.ts.map +1 -1
  453. package/packages/app-core/src/components/chat/AppsSection.js +24 -1
  454. package/packages/app-core/src/components/chat/TasksEventsPanel.d.ts.map +1 -1
  455. package/packages/app-core/src/components/chat/TasksEventsPanel.js +1 -1
  456. package/packages/app-core/src/components/connectors/ConnectorModeSelector.d.ts +35 -0
  457. package/packages/app-core/src/components/connectors/ConnectorModeSelector.d.ts.map +1 -0
  458. package/packages/app-core/src/components/connectors/ConnectorModeSelector.js +150 -0
  459. package/packages/app-core/src/components/conversations/ConversationsSidebar.d.ts.map +1 -1
  460. package/packages/app-core/src/components/conversations/ConversationsSidebar.js +8 -6
  461. package/packages/app-core/src/components/custom-actions/custom-action-form.d.ts +1 -1
  462. package/packages/app-core/src/components/custom-actions/custom-action-form.d.ts.map +1 -1
  463. package/packages/app-core/src/components/custom-actions/custom-action-form.js +1 -1
  464. package/packages/app-core/src/components/local-inference/LocalInferencePanel.d.ts.map +1 -1
  465. package/packages/app-core/src/components/local-inference/LocalInferencePanel.js +1 -3
  466. package/packages/app-core/src/components/local-inference/ProvidersList.d.ts +0 -13
  467. package/packages/app-core/src/components/local-inference/ProvidersList.d.ts.map +1 -1
  468. package/packages/app-core/src/components/local-inference/ProvidersList.js +10 -21
  469. package/packages/app-core/src/components/local-inference/RoutingMatrix.d.ts +0 -11
  470. package/packages/app-core/src/components/local-inference/RoutingMatrix.d.ts.map +1 -1
  471. package/packages/app-core/src/components/local-inference/RoutingMatrix.js +21 -18
  472. package/packages/app-core/src/components/local-inference/SlotAssignments.d.ts.map +1 -1
  473. package/packages/app-core/src/components/local-inference/SlotAssignments.js +11 -11
  474. package/packages/app-core/src/components/onboarding/BootstrapStep.d.ts +5 -2
  475. package/packages/app-core/src/components/onboarding/BootstrapStep.d.ts.map +1 -1
  476. package/packages/app-core/src/components/onboarding/BootstrapStep.js +54 -6
  477. package/packages/app-core/src/components/pages/AppDetailsView.d.ts +4 -6
  478. package/packages/app-core/src/components/pages/AppDetailsView.d.ts.map +1 -1
  479. package/packages/app-core/src/components/pages/AppDetailsView.js +109 -54
  480. package/packages/app-core/src/components/pages/AppsView.d.ts.map +1 -1
  481. package/packages/app-core/src/components/pages/AppsView.js +33 -53
  482. package/packages/app-core/src/components/pages/AutomationsView.d.ts.map +1 -1
  483. package/packages/app-core/src/components/pages/AutomationsView.js +6 -22
  484. package/packages/app-core/src/components/pages/BrowserWorkspaceView.d.ts +14 -0
  485. package/packages/app-core/src/components/pages/BrowserWorkspaceView.d.ts.map +1 -1
  486. package/packages/app-core/src/components/pages/BrowserWorkspaceView.js +462 -45
  487. package/packages/app-core/src/components/pages/ChatView.d.ts.map +1 -1
  488. package/packages/app-core/src/components/pages/ChatView.js +1 -1
  489. package/packages/app-core/src/components/pages/ConfigPageView.js +2 -2
  490. package/packages/app-core/src/components/pages/InventoryView.js +4 -4
  491. package/packages/app-core/src/components/pages/KnowledgeView.js +1 -1
  492. package/packages/app-core/src/components/pages/LogsView.d.ts.map +1 -1
  493. package/packages/app-core/src/components/pages/LogsView.js +0 -4
  494. package/packages/app-core/src/components/pages/SecretsView.js +1 -1
  495. package/packages/app-core/src/components/pages/SettingsView.d.ts.map +1 -1
  496. package/packages/app-core/src/components/pages/SettingsView.js +76 -176
  497. package/packages/app-core/src/components/pages/WorkflowGraphViewer.js +1 -1
  498. package/packages/app-core/src/components/pages/page-scoped-conversations.d.ts +1 -1
  499. package/packages/app-core/src/components/pages/page-scoped-conversations.d.ts.map +1 -1
  500. package/packages/app-core/src/components/pages/page-scoped-conversations.js +62 -7
  501. package/packages/app-core/src/components/pages/plugin-list-utils.d.ts.map +1 -1
  502. package/packages/app-core/src/components/pages/plugin-list-utils.js +0 -1
  503. package/packages/app-core/src/components/pages/plugin-view-connectors.d.ts.map +1 -1
  504. package/packages/app-core/src/components/pages/plugin-view-connectors.js +12 -4
  505. package/packages/app-core/src/components/pages/useBrowserWorkspaceWalletBridge.d.ts.map +1 -1
  506. package/packages/app-core/src/components/pages/useBrowserWorkspaceWalletBridge.js +41 -0
  507. package/packages/app-core/src/components/settings/AppearanceSettingsSection.d.ts.map +1 -1
  508. package/packages/app-core/src/components/settings/AppearanceSettingsSection.js +3 -42
  509. package/packages/app-core/src/components/settings/ProviderSwitcher.d.ts.map +1 -1
  510. package/packages/app-core/src/components/settings/ProviderSwitcher.js +74 -39
  511. package/packages/app-core/src/components/settings/SubscriptionStatus.d.ts.map +1 -1
  512. package/packages/app-core/src/components/settings/SubscriptionStatus.js +2 -2
  513. package/packages/app-core/src/components/settings/permission-controls.d.ts.map +1 -1
  514. package/packages/app-core/src/components/settings/permission-controls.js +41 -7
  515. package/packages/app-core/src/components/shell/BugReportModal.js +2 -2
  516. package/packages/app-core/src/components/shell/CommandPalette.d.ts.map +1 -1
  517. package/packages/app-core/src/components/shell/CommandPalette.js +3 -3
  518. package/packages/app-core/src/components/shell/Header.js +2 -2
  519. package/packages/app-core/src/components/shell/RuntimeGate.d.ts.map +1 -1
  520. package/packages/app-core/src/components/shell/RuntimeGate.js +309 -57
  521. package/packages/app-core/src/components/shell/StartupShell.js +2 -2
  522. package/packages/app-core/src/components/workspace/AppWorkspaceChrome.js +2 -2
  523. package/packages/app-core/src/config/boot-config-store.d.ts +35 -6
  524. package/packages/app-core/src/config/boot-config-store.d.ts.map +1 -1
  525. package/packages/app-core/src/hooks/useAccounts.d.ts +1 -1
  526. package/packages/app-core/src/hooks/useAccounts.d.ts.map +1 -1
  527. package/packages/app-core/src/hooks/voice-chat-playback.d.ts.map +1 -1
  528. package/packages/app-core/src/hooks/voice-chat-playback.js +2 -2
  529. package/packages/app-core/src/i18n/locales/en.json +229 -210
  530. package/packages/app-core/src/i18n/locales/es.json +255 -236
  531. package/packages/app-core/src/i18n/locales/ko.json +255 -236
  532. package/packages/app-core/src/i18n/locales/pt.json +255 -236
  533. package/packages/app-core/src/i18n/locales/tl.json +254 -235
  534. package/packages/app-core/src/i18n/locales/vi.json +255 -236
  535. package/packages/app-core/src/i18n/locales/zh-CN.json +255 -236
  536. package/packages/app-core/src/onboarding/mobile-runtime-mode.d.ts +1 -1
  537. package/packages/app-core/src/onboarding/mobile-runtime-mode.d.ts.map +1 -1
  538. package/packages/app-core/src/onboarding/mobile-runtime-mode.js +3 -0
  539. package/packages/app-core/src/onboarding/probe-local-agent.d.ts +44 -0
  540. package/packages/app-core/src/onboarding/probe-local-agent.d.ts.map +1 -0
  541. package/packages/app-core/src/onboarding/probe-local-agent.js +126 -0
  542. package/packages/app-core/src/onboarding-config.d.ts +1 -0
  543. package/packages/app-core/src/onboarding-config.d.ts.map +1 -1
  544. package/packages/app-core/src/onboarding-config.js +3 -0
  545. package/packages/app-core/src/platform/init.d.ts +8 -0
  546. package/packages/app-core/src/platform/init.d.ts.map +1 -1
  547. package/packages/app-core/src/platform/init.js +10 -0
  548. package/packages/app-core/src/services/account-pool.d.ts +98 -0
  549. package/packages/app-core/src/services/account-pool.d.ts.map +1 -0
  550. package/packages/app-core/src/services/account-pool.js +506 -0
  551. package/packages/app-core/src/services/account-usage.d.ts +75 -0
  552. package/packages/app-core/src/services/account-usage.d.ts.map +1 -0
  553. package/packages/app-core/src/services/account-usage.js +179 -0
  554. package/packages/app-core/src/services/local-inference/active-model.d.ts +14 -0
  555. package/packages/app-core/src/services/local-inference/active-model.d.ts.map +1 -1
  556. package/packages/app-core/src/services/local-inference/device-bridge.d.ts +7 -0
  557. package/packages/app-core/src/services/local-inference/device-bridge.d.ts.map +1 -1
  558. package/packages/app-core/src/services/local-inference/device-bridge.js +108 -3
  559. package/packages/app-core/src/services/local-inference/paths.d.ts +9 -2
  560. package/packages/app-core/src/services/local-inference/paths.d.ts.map +1 -1
  561. package/packages/app-core/src/services/local-inference/paths.js +10 -3
  562. package/packages/app-core/src/services/local-inference/providers.d.ts +1 -1
  563. package/packages/app-core/src/services/local-inference/providers.d.ts.map +1 -1
  564. package/packages/app-core/src/services/local-inference/providers.js +46 -0
  565. package/packages/app-core/src/services/local-inference/routing-preferences.d.ts +3 -1
  566. package/packages/app-core/src/services/local-inference/routing-preferences.d.ts.map +1 -1
  567. package/packages/app-core/src/services/local-inference/routing-preferences.js +1 -0
  568. package/packages/app-core/src/services/local-inference/types.d.ts +1 -1
  569. package/packages/app-core/src/services/local-inference/types.d.ts.map +1 -1
  570. package/packages/app-core/src/shell/AppWindowRenderer.d.ts.map +1 -1
  571. package/packages/app-core/src/shell/AppWindowRenderer.js +14 -26
  572. package/packages/app-core/src/state/AppContext.d.ts +1 -1
  573. package/packages/app-core/src/state/AppContext.d.ts.map +1 -1
  574. package/packages/app-core/src/state/AppContext.js +1 -1
  575. package/packages/app-core/src/state/connector-deeplink.d.ts +30 -0
  576. package/packages/app-core/src/state/connector-deeplink.d.ts.map +1 -0
  577. package/packages/app-core/src/state/connector-deeplink.js +46 -0
  578. package/packages/app-core/src/state/index.d.ts +1 -0
  579. package/packages/app-core/src/state/index.d.ts.map +1 -1
  580. package/packages/app-core/src/state/index.js +1 -0
  581. package/packages/app-core/src/state/useCloudState.d.ts.map +1 -1
  582. package/packages/app-core/src/state/useCloudState.js +4 -1
  583. package/packages/app-core/src/state/useMiscUiState.js +1 -1
  584. package/packages/app-core/src/utils/asset-url.d.ts.map +1 -1
  585. package/packages/app-core/src/utils/asset-url.js +14 -1
  586. package/packages/app-core/src/utils/browser-tabs-renderer-registry.d.ts +56 -0
  587. package/packages/app-core/src/utils/browser-tabs-renderer-registry.d.ts.map +1 -0
  588. package/packages/app-core/src/utils/browser-tabs-renderer-registry.js +738 -0
  589. package/packages/app-core/src/utils/errors.d.ts +13 -0
  590. package/packages/app-core/src/utils/errors.d.ts.map +1 -0
  591. package/packages/app-core/src/utils/errors.js +25 -0
  592. package/packages/shared/src/connector-cred-types.d.ts +27 -0
  593. package/packages/shared/src/connector-cred-types.d.ts.map +1 -0
  594. package/packages/shared/src/connector-cred-types.js +63 -0
  595. package/packages/shared/src/contracts/apps.d.ts.map +1 -1
  596. package/packages/shared/src/contracts/apps.js +10 -0
  597. package/packages/shared/src/contracts/lifeops-extensions.d.ts +145 -0
  598. package/packages/shared/src/contracts/lifeops-extensions.d.ts.map +1 -1
  599. package/packages/shared/src/contracts/lifeops-extensions.js +6 -0
  600. package/packages/shared/src/contracts/lifeops.d.ts +265 -25
  601. package/packages/shared/src/contracts/lifeops.d.ts.map +1 -1
  602. package/packages/shared/src/contracts/lifeops.js +56 -0
  603. package/packages/shared/src/contracts/service-routing.d.ts +1 -0
  604. package/packages/shared/src/contracts/service-routing.d.ts.map +1 -1
  605. package/packages/shared/src/contracts/service-routing.js +3 -0
  606. package/packages/shared/src/index.d.ts +1 -0
  607. package/packages/shared/src/index.d.ts.map +1 -1
  608. package/packages/shared/src/index.js +1 -0
  609. package/packages/shared/src/runtime-env.d.ts +2 -0
  610. package/packages/shared/src/runtime-env.d.ts.map +1 -1
  611. package/packages/shared/src/runtime-env.js +20 -0
  612. package/packages/shared/src/spoken-text.js +2 -2
  613. package/packages/typescript/src/action-docs.d.ts +4 -0
  614. package/packages/typescript/src/action-docs.d.ts.map +1 -1
  615. package/packages/typescript/src/action-docs.js +29 -5
  616. package/packages/typescript/src/actions.d.ts.map +1 -1
  617. package/packages/typescript/src/actions.js +19 -3
  618. package/packages/typescript/src/features/advanced-capabilities/actions/removeContact.d.ts.map +1 -1
  619. package/packages/typescript/src/features/advanced-capabilities/actions/removeContact.js +23 -4
  620. package/packages/typescript/src/features/advanced-capabilities/actions/scheduleFollowUp.d.ts.map +1 -1
  621. package/packages/typescript/src/features/advanced-capabilities/actions/scheduleFollowUp.js +2 -0
  622. package/packages/typescript/src/features/advanced-capabilities/actions/searchContacts.d.ts.map +1 -1
  623. package/packages/typescript/src/features/advanced-capabilities/actions/searchContacts.js +2 -0
  624. package/packages/typescript/src/features/advanced-capabilities/actions/updateContact.d.ts.map +1 -1
  625. package/packages/typescript/src/features/advanced-capabilities/actions/updateContact.js +23 -3
  626. package/packages/typescript/src/features/advanced-capabilities/clipboard/actions/read-attachment.d.ts.map +1 -1
  627. package/packages/typescript/src/features/advanced-capabilities/clipboard/actions/read-attachment.js +9 -1
  628. package/packages/typescript/src/features/advanced-capabilities/clipboard/actions/read-file.d.ts.map +1 -1
  629. package/packages/typescript/src/features/advanced-capabilities/clipboard/actions/read-file.js +4 -0
  630. package/packages/typescript/src/features/advanced-capabilities/clipboard/actions/save-attachment-to-clipboard.d.ts.map +1 -1
  631. package/packages/typescript/src/features/advanced-capabilities/clipboard/actions/save-attachment-to-clipboard.js +8 -1
  632. package/packages/typescript/src/features/advanced-capabilities/clipboard/types.d.ts +1 -1
  633. package/packages/typescript/src/features/advanced-capabilities/clipboard/types.d.ts.map +1 -1
  634. package/packages/typescript/src/features/advanced-capabilities/evaluators/factExtractor.js +2 -2
  635. package/packages/typescript/src/features/advanced-capabilities/experience/actions/record-experience.d.ts.map +1 -1
  636. package/packages/typescript/src/features/advanced-capabilities/experience/actions/record-experience.js +1 -0
  637. package/packages/typescript/src/features/advanced-capabilities/experience/actions/search-experiences.d.ts +3 -0
  638. package/packages/typescript/src/features/advanced-capabilities/experience/actions/search-experiences.d.ts.map +1 -0
  639. package/packages/typescript/src/features/advanced-capabilities/experience/actions/search-experiences.js +110 -0
  640. package/packages/typescript/src/features/advanced-capabilities/experience/evaluators/experienceEvaluator.d.ts.map +1 -1
  641. package/packages/typescript/src/features/advanced-capabilities/experience/evaluators/experienceEvaluator.js +5 -0
  642. package/packages/typescript/src/features/advanced-capabilities/experience/index.d.ts +1 -0
  643. package/packages/typescript/src/features/advanced-capabilities/experience/index.d.ts.map +1 -1
  644. package/packages/typescript/src/features/advanced-capabilities/experience/index.js +1 -0
  645. package/packages/typescript/src/features/advanced-capabilities/experience/providers/experienceProvider.d.ts.map +1 -1
  646. package/packages/typescript/src/features/advanced-capabilities/experience/providers/experienceProvider.js +16 -6
  647. package/packages/typescript/src/features/advanced-capabilities/experience/service.d.ts +21 -1
  648. package/packages/typescript/src/features/advanced-capabilities/experience/service.d.ts.map +1 -1
  649. package/packages/typescript/src/features/advanced-capabilities/experience/service.js +391 -8
  650. package/packages/typescript/src/features/advanced-capabilities/experience/types.d.ts +44 -0
  651. package/packages/typescript/src/features/advanced-capabilities/experience/types.d.ts.map +1 -1
  652. package/packages/typescript/src/features/advanced-capabilities/experience/utils/experienceFormatter.d.ts +24 -0
  653. package/packages/typescript/src/features/advanced-capabilities/experience/utils/experienceFormatter.d.ts.map +1 -0
  654. package/packages/typescript/src/features/advanced-capabilities/experience/utils/experienceFormatter.js +152 -0
  655. package/packages/typescript/src/features/advanced-capabilities/experience/utils/experienceText.d.ts +1 -0
  656. package/packages/typescript/src/features/advanced-capabilities/experience/utils/experienceText.d.ts.map +1 -1
  657. package/packages/typescript/src/features/advanced-capabilities/experience/utils/experienceText.js +53 -1
  658. package/packages/typescript/src/features/advanced-capabilities/index.d.ts.map +1 -1
  659. package/packages/typescript/src/features/advanced-capabilities/index.js +4 -2
  660. package/packages/typescript/src/features/advanced-capabilities/personality/index.d.ts +1 -2
  661. package/packages/typescript/src/features/advanced-capabilities/personality/index.d.ts.map +1 -1
  662. package/packages/typescript/src/features/advanced-capabilities/personality/index.js +1 -2
  663. package/packages/typescript/src/features/advanced-planning/actions/chain-example.d.ts.map +1 -1
  664. package/packages/typescript/src/features/advanced-planning/actions/chain-example.js +4 -7
  665. package/packages/typescript/src/features/basic-capabilities/actions/reply.d.ts.map +1 -1
  666. package/packages/typescript/src/features/basic-capabilities/actions/reply.js +1 -0
  667. package/packages/typescript/src/features/basic-capabilities/index.d.ts +1 -1
  668. package/packages/typescript/src/features/basic-capabilities/index.d.ts.map +1 -1
  669. package/packages/typescript/src/features/basic-capabilities/providers/actions.d.ts.map +1 -1
  670. package/packages/typescript/src/features/basic-capabilities/providers/actions.js +40 -2
  671. package/packages/typescript/src/features/index.js +1 -1
  672. package/packages/typescript/src/features/knowledge/actions.d.ts.map +1 -1
  673. package/packages/typescript/src/features/knowledge/actions.js +42 -16
  674. package/packages/typescript/src/features/plugin-manager/actions/coreStatusAction.d.ts.map +1 -1
  675. package/packages/typescript/src/features/plugin-manager/actions/coreStatusAction.js +23 -5
  676. package/packages/typescript/src/features/plugin-manager/actions/listEjectedPluginsAction.d.ts.map +1 -1
  677. package/packages/typescript/src/features/plugin-manager/actions/listEjectedPluginsAction.js +31 -6
  678. package/packages/typescript/src/features/plugin-manager/actions/plugin-handlers/core-status.d.ts.map +1 -1
  679. package/packages/typescript/src/features/plugin-manager/actions/plugin-handlers/create.d.ts.map +1 -1
  680. package/packages/typescript/src/features/plugin-manager/actions/plugin-handlers/create.js +21 -5
  681. package/packages/typescript/src/features/plugin-manager/actions/plugin-handlers/eject.d.ts.map +1 -1
  682. package/packages/typescript/src/features/plugin-manager/actions/plugin-handlers/eject.js +3 -1
  683. package/packages/typescript/src/features/plugin-manager/actions/plugin-handlers/install.d.ts.map +1 -1
  684. package/packages/typescript/src/features/plugin-manager/actions/plugin.d.ts.map +1 -1
  685. package/packages/typescript/src/features/plugin-manager/actions/plugin.js +4 -1
  686. package/packages/typescript/src/features/plugin-manager/actions/searchPluginAction.d.ts.map +1 -1
  687. package/packages/typescript/src/features/plugin-manager/actions/searchPluginAction.js +44 -11
  688. package/packages/typescript/src/features/plugin-manager/index.d.ts +2 -2
  689. package/packages/typescript/src/features/plugin-manager/index.d.ts.map +1 -1
  690. package/packages/typescript/src/features/plugin-manager/index.js +3 -3
  691. package/packages/typescript/src/features/plugin-manager/security.d.ts.map +1 -1
  692. package/packages/typescript/src/features/plugin-manager/services/pluginManagerService.d.ts.map +1 -1
  693. package/packages/typescript/src/features/plugin-manager/services/pluginManagerService.js +0 -1
  694. package/packages/typescript/src/features/plugin-manager/services/pluginRegistryService.d.ts.map +1 -1
  695. package/packages/typescript/src/features/plugin-manager/services/pluginRegistryService.js +1 -2
  696. package/packages/typescript/src/features/secrets/actions/manage-secret.d.ts.map +1 -1
  697. package/packages/typescript/src/features/secrets/actions/manage-secret.js +13 -2
  698. package/packages/typescript/src/features/secrets/actions/request-secret.d.ts.map +1 -1
  699. package/packages/typescript/src/features/secrets/actions/request-secret.js +23 -5
  700. package/packages/typescript/src/features/secrets/actions/set-secret.d.ts.map +1 -1
  701. package/packages/typescript/src/features/secrets/actions/set-secret.js +22 -4
  702. package/packages/typescript/src/features/secrets/index.d.ts +22 -0
  703. package/packages/typescript/src/features/secrets/index.d.ts.map +1 -0
  704. package/packages/typescript/src/features/secrets/index.js +24 -0
  705. package/packages/typescript/src/features/secrets/onboarding/action.d.ts.map +1 -1
  706. package/packages/typescript/src/features/secrets/onboarding/action.js +1 -0
  707. package/packages/typescript/src/features/secrets/plugin.d.ts +70 -0
  708. package/packages/typescript/src/features/secrets/plugin.d.ts.map +1 -0
  709. package/packages/typescript/src/features/secrets/plugin.js +87 -0
  710. package/packages/typescript/src/features/secrets/services/index.d.ts +7 -0
  711. package/packages/typescript/src/features/secrets/services/index.d.ts.map +1 -0
  712. package/packages/typescript/src/features/secrets/services/index.js +5 -0
  713. package/packages/typescript/src/features/secrets/types.d.ts +1 -1
  714. package/packages/typescript/src/features/secrets/types.js +1 -1
  715. package/packages/typescript/src/features/trust/actions/evaluateTrust.d.ts.map +1 -1
  716. package/packages/typescript/src/features/trust/actions/evaluateTrust.js +5 -0
  717. package/packages/typescript/src/features/trust/actions/recordTrustInteraction.d.ts.map +1 -1
  718. package/packages/typescript/src/features/trust/actions/recordTrustInteraction.js +5 -0
  719. package/packages/typescript/src/features/trust/actions/requestElevation.d.ts.map +1 -1
  720. package/packages/typescript/src/features/trust/actions/requestElevation.js +5 -0
  721. package/packages/typescript/src/features/trust/actions/roles.d.ts.map +1 -1
  722. package/packages/typescript/src/features/trust/actions/roles.js +4 -0
  723. package/packages/typescript/src/features/trust/actions/settings.d.ts.map +1 -1
  724. package/packages/typescript/src/features/trust/actions/settings.js +17 -4
  725. package/packages/typescript/src/features/trust/index.js +4 -4
  726. package/packages/typescript/src/features/trust/providers/settings.js +1 -1
  727. package/packages/typescript/src/features/trust/services/SecurityStore.d.ts +1 -1
  728. package/packages/typescript/src/features/trust/services/SecurityStore.js +1 -1
  729. package/packages/typescript/src/features/trust/services/db.js +1 -1
  730. package/packages/typescript/src/generated/action-docs.d.ts +93 -15
  731. package/packages/typescript/src/generated/action-docs.d.ts.map +1 -1
  732. package/packages/typescript/src/generated/action-docs.js +93 -16
  733. package/packages/typescript/src/index.node.d.ts +3 -0
  734. package/packages/typescript/src/index.node.d.ts.map +1 -1
  735. package/packages/typescript/src/index.node.js +4 -0
  736. package/packages/typescript/src/lifeops-passive-connectors.d.ts +7 -0
  737. package/packages/typescript/src/lifeops-passive-connectors.d.ts.map +1 -0
  738. package/packages/typescript/src/lifeops-passive-connectors.js +39 -0
  739. package/packages/typescript/src/runtime.d.ts +1 -0
  740. package/packages/typescript/src/runtime.d.ts.map +1 -1
  741. package/packages/typescript/src/runtime.js +199 -9
  742. package/packages/typescript/src/services/message.d.ts +7 -0
  743. package/packages/typescript/src/services/message.d.ts.map +1 -1
  744. package/packages/typescript/src/services/message.js +222 -25
  745. package/packages/typescript/src/types/components.d.ts +5 -0
  746. package/packages/typescript/src/types/components.d.ts.map +1 -1
  747. package/packages/typescript/src/types/memory.d.ts +2 -1
  748. package/packages/typescript/src/types/memory.d.ts.map +1 -1
  749. package/packages/typescript/src/utils/context-catalog.d.ts.map +1 -1
  750. package/packages/typescript/src/utils/context-catalog.js +124 -14
  751. package/packages/typescript/src/utils/context-routing.d.ts.map +1 -1
  752. package/packages/typescript/src/utils/context-routing.js +42 -0
  753. package/packages/typescript/src/utils/prompt-compression.d.ts +6 -0
  754. package/packages/typescript/src/utils/prompt-compression.d.ts.map +1 -0
  755. package/packages/typescript/src/utils/prompt-compression.js +14 -0
  756. package/packages/typescript/src/utils.d.ts +1 -0
  757. package/packages/typescript/src/utils.d.ts.map +1 -1
  758. package/packages/typescript/src/utils.js +2 -1
  759. package/packages/ui/src/components/composites/chat/chat-composer-shell.js +1 -1
  760. package/packages/ui/src/components/composites/sidebar/sidebar-root.js +3 -3
  761. package/packages/ui/src/components/ui/dialog.js +1 -1
  762. package/packages/ui/src/components/ui/drawer-sheet.js +1 -1
  763. package/packages/ui/src/components/ui/themed-select.js +2 -2
  764. package/packages/ui/src/components/ui/tooltip-extended.js +1 -1
  765. package/packages/ui/src/components/ui/tooltip.js +1 -1
  766. package/packages/ui/src/layouts/page-layout/page-layout-mobile-drawer.js +1 -1
  767. package/packages/ui/src/layouts/workspace-layout/workspace-layout.js +2 -2
  768. package/plugins/plugin-browser-bridge/src/actions.d.ts +44 -0
  769. package/plugins/plugin-browser-bridge/src/actions.d.ts.map +1 -0
  770. package/plugins/plugin-browser-bridge/src/actions.js +234 -0
  771. package/plugins/plugin-browser-bridge/src/contracts.d.ts +272 -0
  772. package/plugins/plugin-browser-bridge/src/contracts.d.ts.map +1 -0
  773. package/plugins/plugin-browser-bridge/src/contracts.js +48 -0
  774. package/plugins/plugin-browser-bridge/src/index.d.ts +19 -0
  775. package/plugins/plugin-browser-bridge/src/index.d.ts.map +1 -0
  776. package/plugins/plugin-browser-bridge/src/index.js +18 -0
  777. package/plugins/plugin-browser-bridge/src/packaging.d.ts +27 -0
  778. package/plugins/plugin-browser-bridge/src/packaging.d.ts.map +1 -0
  779. package/plugins/plugin-browser-bridge/src/packaging.js +503 -0
  780. package/plugins/plugin-browser-bridge/src/plugin.d.ts +10 -0
  781. package/plugins/plugin-browser-bridge/src/plugin.d.ts.map +1 -0
  782. package/plugins/plugin-browser-bridge/src/plugin.js +140 -0
  783. package/plugins/plugin-browser-bridge/src/routes.d.ts +37 -0
  784. package/plugins/plugin-browser-bridge/src/routes.d.ts.map +1 -0
  785. package/plugins/plugin-browser-bridge/src/routes.js +496 -0
  786. package/plugins/plugin-browser-bridge/src/schema.d.ts +2250 -0
  787. package/plugins/plugin-browser-bridge/src/schema.d.ts.map +1 -0
  788. package/plugins/plugin-browser-bridge/src/schema.js +111 -0
  789. package/plugins/plugin-browser-bridge/src/service.d.ts +28 -0
  790. package/plugins/plugin-browser-bridge/src/service.d.ts.map +1 -0
  791. package/plugins/plugin-browser-bridge/src/service.js +1 -0
  792. package/apps/app-lifeops/src/components/AppBlockerSettingsCard.d.ts +0 -3
  793. package/apps/app-lifeops/src/components/AppBlockerSettingsCard.d.ts.map +0 -1
  794. package/apps/app-lifeops/src/components/AppBlockerSettingsCard.js +0 -189
  795. package/apps/app-lifeops/src/components/BrowserBridgeSetupPanel.d.ts +0 -2
  796. package/apps/app-lifeops/src/components/BrowserBridgeSetupPanel.d.ts.map +0 -1
  797. package/apps/app-lifeops/src/components/BrowserBridgeSetupPanel.js +0 -1065
  798. package/apps/app-lifeops/src/components/BrowserBridgeStatusChip.d.ts +0 -7
  799. package/apps/app-lifeops/src/components/BrowserBridgeStatusChip.d.ts.map +0 -1
  800. package/apps/app-lifeops/src/components/BrowserBridgeStatusChip.js +0 -71
  801. package/apps/app-lifeops/src/components/DataSourcesStrip.d.ts +0 -14
  802. package/apps/app-lifeops/src/components/DataSourcesStrip.d.ts.map +0 -1
  803. package/apps/app-lifeops/src/components/DataSourcesStrip.js +0 -36
  804. package/apps/app-lifeops/src/components/EventEditorDrawer.d.ts +0 -23
  805. package/apps/app-lifeops/src/components/EventEditorDrawer.d.ts.map +0 -1
  806. package/apps/app-lifeops/src/components/EventEditorDrawer.js +0 -514
  807. package/apps/app-lifeops/src/components/LifeOpsActivitySignalsEffect.d.ts +0 -2
  808. package/apps/app-lifeops/src/components/LifeOpsActivitySignalsEffect.d.ts.map +0 -1
  809. package/apps/app-lifeops/src/components/LifeOpsActivitySignalsEffect.js +0 -10
  810. package/apps/app-lifeops/src/components/LifeOpsCalendarSection.d.ts +0 -15
  811. package/apps/app-lifeops/src/components/LifeOpsCalendarSection.d.ts.map +0 -1
  812. package/apps/app-lifeops/src/components/LifeOpsCalendarSection.js +0 -515
  813. package/apps/app-lifeops/src/components/LifeOpsChatAdapter.d.ts +0 -34
  814. package/apps/app-lifeops/src/components/LifeOpsChatAdapter.d.ts.map +0 -1
  815. package/apps/app-lifeops/src/components/LifeOpsChatAdapter.js +0 -175
  816. package/apps/app-lifeops/src/components/LifeOpsFeatureTogglesSection.d.ts +0 -2
  817. package/apps/app-lifeops/src/components/LifeOpsFeatureTogglesSection.d.ts.map +0 -1
  818. package/apps/app-lifeops/src/components/LifeOpsFeatureTogglesSection.js +0 -99
  819. package/apps/app-lifeops/src/components/LifeOpsHabitVisuals.d.ts +0 -37
  820. package/apps/app-lifeops/src/components/LifeOpsHabitVisuals.d.ts.map +0 -1
  821. package/apps/app-lifeops/src/components/LifeOpsHabitVisuals.js +0 -88
  822. package/apps/app-lifeops/src/components/LifeOpsInboxSection.d.ts +0 -13
  823. package/apps/app-lifeops/src/components/LifeOpsInboxSection.d.ts.map +0 -1
  824. package/apps/app-lifeops/src/components/LifeOpsInboxSection.js +0 -491
  825. package/apps/app-lifeops/src/components/LifeOpsLinkBankButton.d.ts +0 -12
  826. package/apps/app-lifeops/src/components/LifeOpsLinkBankButton.d.ts.map +0 -1
  827. package/apps/app-lifeops/src/components/LifeOpsLinkBankButton.js +0 -92
  828. package/apps/app-lifeops/src/components/LifeOpsLinkPaypalButton.d.ts +0 -12
  829. package/apps/app-lifeops/src/components/LifeOpsLinkPaypalButton.d.ts.map +0 -1
  830. package/apps/app-lifeops/src/components/LifeOpsLinkPaypalButton.js +0 -160
  831. package/apps/app-lifeops/src/components/LifeOpsMoneySection.d.ts +0 -3
  832. package/apps/app-lifeops/src/components/LifeOpsMoneySection.d.ts.map +0 -1
  833. package/apps/app-lifeops/src/components/LifeOpsMoneySection.js +0 -373
  834. package/apps/app-lifeops/src/components/LifeOpsNavRail.d.ts +0 -9
  835. package/apps/app-lifeops/src/components/LifeOpsNavRail.d.ts.map +0 -1
  836. package/apps/app-lifeops/src/components/LifeOpsNavRail.js +0 -93
  837. package/apps/app-lifeops/src/components/LifeOpsOperationalPanels.d.ts +0 -4
  838. package/apps/app-lifeops/src/components/LifeOpsOperationalPanels.d.ts.map +0 -1
  839. package/apps/app-lifeops/src/components/LifeOpsOperationalPanels.js +0 -274
  840. package/apps/app-lifeops/src/components/LifeOpsOverviewSection.d.ts +0 -7
  841. package/apps/app-lifeops/src/components/LifeOpsOverviewSection.d.ts.map +0 -1
  842. package/apps/app-lifeops/src/components/LifeOpsOverviewSection.js +0 -670
  843. package/apps/app-lifeops/src/components/LifeOpsPageSections.d.ts +0 -42
  844. package/apps/app-lifeops/src/components/LifeOpsPageSections.d.ts.map +0 -1
  845. package/apps/app-lifeops/src/components/LifeOpsPageSections.js +0 -166
  846. package/apps/app-lifeops/src/components/LifeOpsPageView.d.ts +0 -2
  847. package/apps/app-lifeops/src/components/LifeOpsPageView.d.ts.map +0 -1
  848. package/apps/app-lifeops/src/components/LifeOpsPageView.js +0 -566
  849. package/apps/app-lifeops/src/components/LifeOpsRemindersSection.d.ts +0 -2
  850. package/apps/app-lifeops/src/components/LifeOpsRemindersSection.d.ts.map +0 -1
  851. package/apps/app-lifeops/src/components/LifeOpsRemindersSection.js +0 -749
  852. package/apps/app-lifeops/src/components/LifeOpsResizableSidebar.d.ts +0 -27
  853. package/apps/app-lifeops/src/components/LifeOpsResizableSidebar.d.ts.map +0 -1
  854. package/apps/app-lifeops/src/components/LifeOpsResizableSidebar.js +0 -106
  855. package/apps/app-lifeops/src/components/LifeOpsScreenTimeSection.d.ts +0 -2
  856. package/apps/app-lifeops/src/components/LifeOpsScreenTimeSection.d.ts.map +0 -1
  857. package/apps/app-lifeops/src/components/LifeOpsScreenTimeSection.js +0 -373
  858. package/apps/app-lifeops/src/components/LifeOpsSectionContent.d.ts +0 -10
  859. package/apps/app-lifeops/src/components/LifeOpsSectionContent.d.ts.map +0 -1
  860. package/apps/app-lifeops/src/components/LifeOpsSectionContent.js +0 -30
  861. package/apps/app-lifeops/src/components/LifeOpsSelectionContext.d.ts +0 -21
  862. package/apps/app-lifeops/src/components/LifeOpsSelectionContext.d.ts.map +0 -1
  863. package/apps/app-lifeops/src/components/LifeOpsSelectionContext.js +0 -30
  864. package/apps/app-lifeops/src/components/LifeOpsSettingsSection.d.ts +0 -20
  865. package/apps/app-lifeops/src/components/LifeOpsSettingsSection.d.ts.map +0 -1
  866. package/apps/app-lifeops/src/components/LifeOpsSettingsSection.js +0 -598
  867. package/apps/app-lifeops/src/components/LifeOpsSetupGate.d.ts +0 -13
  868. package/apps/app-lifeops/src/components/LifeOpsSetupGate.d.ts.map +0 -1
  869. package/apps/app-lifeops/src/components/LifeOpsSetupGate.js +0 -134
  870. package/apps/app-lifeops/src/components/LifeOpsSleepSection.d.ts +0 -10
  871. package/apps/app-lifeops/src/components/LifeOpsSleepSection.d.ts.map +0 -1
  872. package/apps/app-lifeops/src/components/LifeOpsSleepSection.js +0 -425
  873. package/apps/app-lifeops/src/components/LifeOpsWorkspaceShell.d.ts +0 -11
  874. package/apps/app-lifeops/src/components/LifeOpsWorkspaceShell.d.ts.map +0 -1
  875. package/apps/app-lifeops/src/components/LifeOpsWorkspaceShell.js +0 -49
  876. package/apps/app-lifeops/src/components/LifeOpsWorkspaceView.d.ts +0 -2
  877. package/apps/app-lifeops/src/components/LifeOpsWorkspaceView.d.ts.map +0 -1
  878. package/apps/app-lifeops/src/components/LifeOpsWorkspaceView.js +0 -1041
  879. package/apps/app-lifeops/src/components/MessagingConnectorCards.d.ts +0 -7
  880. package/apps/app-lifeops/src/components/MessagingConnectorCards.d.ts.map +0 -1
  881. package/apps/app-lifeops/src/components/MessagingConnectorCards.js +0 -643
  882. package/apps/app-lifeops/src/components/MissingSourceCard.d.ts +0 -9
  883. package/apps/app-lifeops/src/components/MissingSourceCard.d.ts.map +0 -1
  884. package/apps/app-lifeops/src/components/MissingSourceCard.js +0 -5
  885. package/apps/app-lifeops/src/components/MobileSignalsSetupCard.d.ts +0 -2
  886. package/apps/app-lifeops/src/components/MobileSignalsSetupCard.d.ts.map +0 -1
  887. package/apps/app-lifeops/src/components/MobileSignalsSetupCard.js +0 -163
  888. package/apps/app-lifeops/src/components/SleepInspectionPanel.d.ts +0 -8
  889. package/apps/app-lifeops/src/components/SleepInspectionPanel.d.ts.map +0 -1
  890. package/apps/app-lifeops/src/components/SleepInspectionPanel.js +0 -59
  891. package/apps/app-lifeops/src/components/WebsiteBlockerSettingsCard.d.ts +0 -3
  892. package/apps/app-lifeops/src/components/WebsiteBlockerSettingsCard.d.ts.map +0 -1
  893. package/apps/app-lifeops/src/components/WebsiteBlockerSettingsCard.js +0 -75
  894. package/apps/app-lifeops/src/components/WhatsAppQrOverlay.d.ts +0 -8
  895. package/apps/app-lifeops/src/components/WhatsAppQrOverlay.d.ts.map +0 -1
  896. package/apps/app-lifeops/src/components/WhatsAppQrOverlay.js +0 -48
  897. package/apps/app-lifeops/src/components/lifeops-labels.d.ts +0 -2
  898. package/apps/app-lifeops/src/components/lifeops-labels.d.ts.map +0 -1
  899. package/apps/app-lifeops/src/components/lifeops-labels.js +0 -5
  900. package/apps/app-lifeops/src/events/index.d.ts +0 -34
  901. package/apps/app-lifeops/src/events/index.d.ts.map +0 -1
  902. package/apps/app-lifeops/src/events/index.js +0 -23
  903. package/apps/app-lifeops/src/hooks/useCalendarWeek.d.ts +0 -28
  904. package/apps/app-lifeops/src/hooks/useCalendarWeek.d.ts.map +0 -1
  905. package/apps/app-lifeops/src/hooks/useCalendarWeek.js +0 -93
  906. package/apps/app-lifeops/src/hooks/useDiscordConnector.d.ts +0 -14
  907. package/apps/app-lifeops/src/hooks/useDiscordConnector.d.ts.map +0 -1
  908. package/apps/app-lifeops/src/hooks/useDiscordConnector.js +0 -126
  909. package/apps/app-lifeops/src/hooks/useGoogleLifeOpsConnector.d.ts +0 -29
  910. package/apps/app-lifeops/src/hooks/useGoogleLifeOpsConnector.d.ts.map +0 -1
  911. package/apps/app-lifeops/src/hooks/useGoogleLifeOpsConnector.js +0 -481
  912. package/apps/app-lifeops/src/hooks/useIMessageConnector.d.ts +0 -10
  913. package/apps/app-lifeops/src/hooks/useIMessageConnector.d.ts.map +0 -1
  914. package/apps/app-lifeops/src/hooks/useIMessageConnector.js +0 -50
  915. package/apps/app-lifeops/src/hooks/useInbox.d.ts +0 -34
  916. package/apps/app-lifeops/src/hooks/useInbox.d.ts.map +0 -1
  917. package/apps/app-lifeops/src/hooks/useInbox.js +0 -98
  918. package/apps/app-lifeops/src/hooks/useLifeOpsActivitySignals.d.ts +0 -2
  919. package/apps/app-lifeops/src/hooks/useLifeOpsActivitySignals.d.ts.map +0 -1
  920. package/apps/app-lifeops/src/hooks/useLifeOpsActivitySignals.js +0 -383
  921. package/apps/app-lifeops/src/hooks/useLifeOpsAppState.d.ts +0 -9
  922. package/apps/app-lifeops/src/hooks/useLifeOpsAppState.d.ts.map +0 -1
  923. package/apps/app-lifeops/src/hooks/useLifeOpsAppState.js +0 -83
  924. package/apps/app-lifeops/src/hooks/useLifeOpsCapabilitiesStatus.d.ts +0 -8
  925. package/apps/app-lifeops/src/hooks/useLifeOpsCapabilitiesStatus.d.ts.map +0 -1
  926. package/apps/app-lifeops/src/hooks/useLifeOpsCapabilitiesStatus.js +0 -60
  927. package/apps/app-lifeops/src/hooks/useLifeOpsScheduleInspection.d.ts +0 -18
  928. package/apps/app-lifeops/src/hooks/useLifeOpsScheduleInspection.d.ts.map +0 -1
  929. package/apps/app-lifeops/src/hooks/useLifeOpsScheduleInspection.js +0 -66
  930. package/apps/app-lifeops/src/hooks/useLifeOpsScheduleState.d.ts +0 -14
  931. package/apps/app-lifeops/src/hooks/useLifeOpsScheduleState.d.ts.map +0 -1
  932. package/apps/app-lifeops/src/hooks/useLifeOpsScheduleState.js +0 -79
  933. package/apps/app-lifeops/src/hooks/useLifeOpsSection.d.ts +0 -18
  934. package/apps/app-lifeops/src/hooks/useLifeOpsSection.d.ts.map +0 -1
  935. package/apps/app-lifeops/src/hooks/useLifeOpsSection.js +0 -78
  936. package/apps/app-lifeops/src/hooks/useLifeOpsXConnector.d.ts +0 -14
  937. package/apps/app-lifeops/src/hooks/useLifeOpsXConnector.d.ts.map +0 -1
  938. package/apps/app-lifeops/src/hooks/useLifeOpsXConnector.js +0 -160
  939. package/apps/app-lifeops/src/hooks/useSignalConnector.d.ts +0 -16
  940. package/apps/app-lifeops/src/hooks/useSignalConnector.d.ts.map +0 -1
  941. package/apps/app-lifeops/src/hooks/useSignalConnector.js +0 -198
  942. package/apps/app-lifeops/src/hooks/useTelegramConnector.d.ts +0 -21
  943. package/apps/app-lifeops/src/hooks/useTelegramConnector.d.ts.map +0 -1
  944. package/apps/app-lifeops/src/hooks/useTelegramConnector.js +0 -177
  945. package/apps/app-lifeops/src/hooks/useWhatsAppConnector.d.ts +0 -8
  946. package/apps/app-lifeops/src/hooks/useWhatsAppConnector.d.ts.map +0 -1
  947. package/apps/app-lifeops/src/hooks/useWhatsAppConnector.js +0 -58
  948. package/apps/app-lifeops/src/hooks/useWhatsAppPairing.d.ts +0 -12
  949. package/apps/app-lifeops/src/hooks/useWhatsAppPairing.d.ts.map +0 -1
  950. package/apps/app-lifeops/src/hooks/useWhatsAppPairing.js +0 -159
  951. package/apps/app-lifeops/src/lifeops-route.d.ts +0 -74
  952. package/apps/app-lifeops/src/lifeops-route.d.ts.map +0 -1
  953. package/apps/app-lifeops/src/lifeops-route.js +0 -204
  954. package/apps/app-lifeops/src/platform/lifeops-github.d.ts +0 -15
  955. package/apps/app-lifeops/src/platform/lifeops-github.d.ts.map +0 -1
  956. package/apps/app-lifeops/src/platform/lifeops-github.js +0 -135
  957. package/apps/app-lifeops/src/types/app-blocker-settings-card.d.ts +0 -2
  958. package/apps/app-lifeops/src/types/app-blocker-settings-card.d.ts.map +0 -1
  959. package/apps/app-lifeops/src/types/app-blocker-settings-card.js +0 -1
  960. package/apps/app-lifeops/src/types/index.d.ts +0 -3
  961. package/apps/app-lifeops/src/types/index.d.ts.map +0 -1
  962. package/apps/app-lifeops/src/types/index.js +0 -1
  963. package/apps/app-lifeops/src/types/website-blocker-settings-card.d.ts +0 -2
  964. package/apps/app-lifeops/src/types/website-blocker-settings-card.d.ts.map +0 -1
  965. package/apps/app-lifeops/src/types/website-blocker-settings-card.js +0 -1
  966. package/apps/app-lifeops/src/ui.d.ts +0 -11
  967. package/apps/app-lifeops/src/ui.d.ts.map +0 -1
  968. package/apps/app-lifeops/src/ui.js +0 -9
  969. package/apps/app-lifeops/src/utils/lifeops-url.d.ts +0 -5
  970. package/apps/app-lifeops/src/utils/lifeops-url.d.ts.map +0 -1
  971. package/apps/app-lifeops/src/utils/lifeops-url.js +0 -35
  972. package/packages/native-plugins/mobile-signals/src/definitions.d.ts +0 -162
  973. package/packages/native-plugins/mobile-signals/src/definitions.d.ts.map +0 -1
  974. package/packages/native-plugins/mobile-signals/src/definitions.js +0 -1
  975. package/packages/native-plugins/mobile-signals/src/index.d.ts +0 -4
  976. package/packages/native-plugins/mobile-signals/src/index.d.ts.map +0 -1
  977. package/packages/native-plugins/mobile-signals/src/index.js +0 -6
  978. package/packages/native-plugins/mobile-signals/src/web.d.ts +0 -29
  979. package/packages/native-plugins/mobile-signals/src/web.d.ts.map +0 -1
  980. package/packages/native-plugins/mobile-signals/src/web.js +0 -269
@@ -6,12 +6,16 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
6
  *
7
7
  * Mounted by AppsView when the apps sub-path is `/apps/<slug>/details`.
8
8
  */
9
- import { Pin, PinOff, Settings as SettingsIcon, TriangleAlert, } from "lucide-react";
10
- import { useCallback, useEffect, useMemo, useRef, useState, } from "react";
11
- import { invokeDesktopBridgeRequest } from "../../bridge";
9
+ import { Pin, PinOff, Rocket, Settings as SettingsIcon, TriangleAlert, } from "lucide-react";
10
+ import { useCallback, useEffect, useMemo, useState } from "react";
11
+ import { client } from "../../api";
12
+ import { invokeDesktopBridgeRequest, isElectrobunRuntime } from "../../bridge";
12
13
  import { useApp } from "../../state/useApp";
14
+ import { openExternalUrl } from "../../utils";
13
15
  import { getWidgetComponent } from "../../widgets/registry";
14
16
  import { isWidgetVisible, loadChatSidebarVisibility, saveChatSidebarVisibility, widgetVisibilityKey, } from "../../widgets/visibility";
17
+ import { resolveRuntimeImageUrl } from "../apps/app-identity";
18
+ import { getAppDetailExtension } from "../apps/extensions/registry";
15
19
  import { findAppBySlug, getAppSlug } from "../apps/helpers";
16
20
  import { getInternalToolAppDescriptors, getInternalToolAppHasDetailsPage, getInternalToolApps, getInternalToolAppTargetTab, isInternalToolApp, } from "../apps/internal-tool-apps";
17
21
  import { getLaunchHistoryForApp, recordLaunchAttempt, } from "../apps/launch-history";
@@ -69,6 +73,9 @@ function sourceLabel(source) {
69
73
  return "Unknown";
70
74
  }
71
75
  }
76
+ function isOverlayLaunchApp(app) {
77
+ return isOverlayApp(app.name) || app.launchType === "overlay";
78
+ }
72
79
  function formatTimestamp(value) {
73
80
  try {
74
81
  return new Date(value).toLocaleString();
@@ -77,6 +84,9 @@ function formatTimestamp(value) {
77
84
  return String(value);
78
85
  }
79
86
  }
87
+ function formatLabel(value) {
88
+ return value.replaceAll("-", " ");
89
+ }
80
90
  function SectionHeader({ children }) {
81
91
  return (_jsx("h3", { className: "text-xs-tight font-semibold uppercase tracking-[0.18em] text-accent", children: children }));
82
92
  }
@@ -153,12 +163,20 @@ export function AppDetailsView({ slug, onLaunched, }) {
153
163
  }, [appRuns, resolved]);
154
164
  // Launch action.
155
165
  const [launching, setLaunching] = useState(false);
156
- const launchedRef = useRef(false);
157
166
  const handleLaunch = useCallback(async () => {
158
167
  if (!resolved || launching)
159
168
  return;
160
169
  setLaunching(true);
161
- launchedRef.current = false;
170
+ const recordResult = (succeeded, errorMessage) => {
171
+ recordLaunchAttempt({
172
+ appName: resolved.info.name,
173
+ timestamp: Date.now(),
174
+ succeeded,
175
+ diagnostics: [],
176
+ ...(errorMessage ? { errorMessage } : {}),
177
+ });
178
+ setHistory(getLaunchHistoryForApp(resolved.info.name));
179
+ };
162
180
  try {
163
181
  if (config.launchMode === "inline") {
164
182
  // Inline: for internal tools, switch the main shell tab; for
@@ -167,33 +185,56 @@ export function AppDetailsView({ slug, onLaunched, }) {
167
185
  const tab = getInternalToolAppTargetTab(resolved.info.name);
168
186
  if (tab) {
169
187
  setTab(tab);
170
- launchedRef.current = true;
171
- recordLaunchAttempt({
172
- appName: resolved.info.name,
173
- timestamp: Date.now(),
174
- succeeded: true,
175
- diagnostics: [],
176
- });
177
- setHistory(getLaunchHistoryForApp(resolved.info.name));
188
+ recordResult(true);
178
189
  onLaunched?.({ mode: "inline", slug });
179
190
  return;
180
191
  }
181
192
  }
182
- if (resolved.source === "overlay") {
193
+ if (resolved.source === "overlay" ||
194
+ isOverlayLaunchApp(resolved.info)) {
183
195
  setState("activeOverlayApp", resolved.info.name);
184
- launchedRef.current = true;
185
- recordLaunchAttempt({
186
- appName: resolved.info.name,
187
- timestamp: Date.now(),
188
- succeeded: true,
189
- diagnostics: [],
190
- });
191
- setHistory(getLaunchHistoryForApp(resolved.info.name));
196
+ recordResult(true);
192
197
  onLaunched?.({ mode: "inline", slug });
193
198
  return;
194
199
  }
195
200
  // Fall through to window mode — inline not supported for this app.
196
201
  }
202
+ if (!isElectrobunRuntime()) {
203
+ const tab = getInternalToolAppTargetTab(resolved.info.name);
204
+ if (tab) {
205
+ setTab(tab);
206
+ recordResult(true);
207
+ onLaunched?.({ mode: "inline", slug });
208
+ return;
209
+ }
210
+ if (isOverlayLaunchApp(resolved.info)) {
211
+ setState("activeOverlayApp", resolved.info.name);
212
+ recordResult(true);
213
+ onLaunched?.({ mode: "inline", slug });
214
+ return;
215
+ }
216
+ const result = await client.launchApp(resolved.info.name);
217
+ const primaryDiagnostic = result.diagnostics?.find((diagnostic) => diagnostic.severity === "error") ?? result.diagnostics?.[0];
218
+ if (result.run?.viewer?.url) {
219
+ setState("activeGameRunId", result.run.runId);
220
+ setState("tab", "apps");
221
+ setState("appsSubTab", "games");
222
+ recordResult(true);
223
+ onLaunched?.({ mode: "window", slug });
224
+ return;
225
+ }
226
+ const targetUrl = result.launchUrl ?? resolved.info.launchUrl;
227
+ if (targetUrl) {
228
+ await openExternalUrl(targetUrl);
229
+ recordResult(true);
230
+ onLaunched?.({ mode: "window", slug });
231
+ return;
232
+ }
233
+ throw new Error(primaryDiagnostic?.message ??
234
+ t("appdetails.LaunchedNoViewer", {
235
+ defaultValue: "This app launched without a viewer URL.",
236
+ }));
237
+ }
197
238
  // Window mode (default).
198
239
  const created = await invokeDesktopBridgeRequest({
199
240
  rpcMethod: "desktopOpenAppWindow",
@@ -208,26 +249,12 @@ export function AppDetailsView({ slug, onLaunched, }) {
208
249
  if (!created?.id) {
209
250
  throw new Error("Desktop bridge declined to open the window.");
210
251
  }
211
- launchedRef.current = true;
212
- recordLaunchAttempt({
213
- appName: resolved.info.name,
214
- timestamp: Date.now(),
215
- succeeded: true,
216
- diagnostics: [],
217
- });
218
- setHistory(getLaunchHistoryForApp(resolved.info.name));
252
+ recordResult(true);
219
253
  onLaunched?.({ mode: "window", slug });
220
254
  }
221
255
  catch (err) {
222
256
  const message = err instanceof Error ? err.message : String(err);
223
- recordLaunchAttempt({
224
- appName: resolved.info.name,
225
- timestamp: Date.now(),
226
- succeeded: false,
227
- diagnostics: [],
228
- errorMessage: message,
229
- });
230
- setHistory(getLaunchHistoryForApp(resolved.info.name));
257
+ recordResult(false, message);
231
258
  setActionNotice(t("appdetails.LaunchFailed", {
232
259
  defaultValue: `Could not launch ${resolved.info.displayName}: ${message}`,
233
260
  }), "error", 4000);
@@ -255,35 +282,63 @@ export function AppDetailsView({ slug, onLaunched, }) {
255
282
  }
256
283
  const isInternal = resolved.source === "internal-tool";
257
284
  const supportsInlineMode = isInternal || resolved.source === "overlay";
258
- return (_jsxs("div", { className: "device-layout mx-auto flex w-full max-w-4xl flex-col gap-6 px-4 py-6 lg:px-6", children: [_jsxs("header", { className: "flex flex-col gap-3 border-b border-border/35 pb-5 sm:flex-row sm:items-center sm:justify-between", children: [_jsxs("div", { className: "flex items-center gap-4", children: [resolved.info.heroImage ? (_jsx("img", { src: resolved.info.heroImage, alt: "", className: "h-14 w-14 rounded-lg border border-border/40 object-cover" })) : (_jsx("div", { className: "flex h-14 w-14 items-center justify-center rounded-lg border border-border/40 bg-card/40 text-xs uppercase text-muted", children: (resolved.info.displayName ?? resolved.info.name)
259
- .slice(0, 2)
260
- .toUpperCase() })), _jsxs("div", { className: "min-w-0", children: [_jsx("h2", { className: "truncate text-base font-semibold text-foreground", children: resolved.info.displayName ?? resolved.info.name }), _jsx("p", { className: "truncate text-xs text-muted", children: resolved.info.name }), _jsxs("div", { className: "mt-1 flex flex-wrap items-center gap-2 text-[10px] uppercase tracking-[0.16em] text-muted", children: [_jsx("span", { children: sourceLabel(resolved.source) }), recentRuns.length > 0 ? (_jsxs("span", { className: "rounded-full bg-accent/15 px-2 py-0.5 text-accent", children: [recentRuns.length, " running"] })) : null] })] })] }), _jsx("button", { type: "button", onClick: handleLaunch, disabled: launching, className: "rounded-full bg-accent px-5 py-2 text-xs font-semibold uppercase tracking-[0.16em] text-accent-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-60", children: launching
261
- ? "Launching…"
262
- : `Launch ${resolved.info.displayName ?? "App"}` })] }), _jsxs("section", { className: "flex flex-col gap-3", children: [_jsx(SectionHeader, { children: "About" }), resolved.info.description ? (_jsx("p", { className: "text-sm text-muted", children: resolved.info.description })) : null, _jsx(ChipList, { items: resolved.info.capabilities ?? [] })] }), recentRuns.length > 0 ? (_jsxs("section", { className: "flex flex-col gap-2", children: [_jsx(SectionHeader, { children: "Recent Runs" }), _jsx("ul", { className: "flex flex-col gap-1 text-xs text-muted", children: recentRuns.map((run) => (_jsxs("li", { className: "flex items-center justify-between rounded-md border border-border/40 bg-card/30 px-3 py-1.5", children: [_jsx("span", { className: "truncate", children: run.runId }), _jsx("span", { className: "ml-2 shrink-0 uppercase tracking-[0.14em]", children: run.status })] }, run.runId))) })] })) : null, _jsxs("section", { className: "flex flex-col gap-2", children: [_jsx(SectionHeader, { children: "Launch Diagnostics" }), history.length === 0 ? (_jsx("p", { className: "text-xs text-muted", children: "No launch history yet." })) : (_jsx("ul", { className: "flex flex-col gap-1 text-xs", children: history.slice(0, 5).map((entry) => (_jsxs("li", { className: "rounded-md border border-border/40 bg-card/30 px-3 py-1.5", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-muted", children: formatTimestamp(entry.timestamp) }), _jsx("span", { className: entry.succeeded ? "text-accent" : "text-destructive", children: entry.succeeded ? "OK" : "FAILED" })] }), entry.errorMessage ? (_jsx("p", { className: "mt-1 text-muted", children: entry.errorMessage })) : null] }, entry.timestamp))) }))] }), widgets.length > 0 ? (_jsxs("section", { className: "flex flex-col gap-2", children: [_jsx(SectionHeader, { children: "Widgets" }), _jsx("ul", { className: "flex flex-col gap-2", children: widgets.map((decl) => {
285
+ const DetailExtension = getAppDetailExtension(resolved.info);
286
+ const activeRun = recentRuns[0] ?? null;
287
+ const latestFailure = history.find((entry) => !entry.succeeded);
288
+ const viewerUrl = resolved.info.viewer?.url ?? resolved.info.launchUrl;
289
+ const launchTarget = viewerUrl ?? resolved.windowPath;
290
+ const sessionMode = resolved.info.session?.mode;
291
+ const sessionFeatures = resolved.info.session?.features ?? [];
292
+ const launchModeLabel = config.launchMode === "inline" && supportsInlineMode
293
+ ? "Main window"
294
+ : "Dedicated window";
295
+ return (_jsxs("div", { className: "device-layout mx-auto flex w-full max-w-4xl flex-col gap-6 px-4 py-6 lg:px-6", children: [_jsx("header", { className: "flex flex-col gap-3 border-b border-border/35 pb-5", children: _jsxs("div", { className: "flex items-center gap-4", children: [resolved.info.heroImage ? (_jsx("img", { src: resolveRuntimeImageUrl(resolved.info.heroImage), alt: "", className: "h-14 w-14 rounded-lg border border-border/40 object-cover" })) : (_jsx("div", { className: "flex h-14 w-14 items-center justify-center rounded-lg border border-border/40 bg-card/40 text-xs uppercase text-muted", children: (resolved.info.displayName ?? resolved.info.name)
296
+ .slice(0, 2)
297
+ .toUpperCase() })), _jsxs("div", { className: "min-w-0", children: [_jsx("h2", { className: "truncate text-base font-semibold text-foreground", children: resolved.info.displayName ?? resolved.info.name }), _jsx("p", { className: "truncate text-xs text-muted", children: resolved.info.name }), _jsxs("div", { className: "mt-1 flex flex-wrap items-center gap-2 text-[10px] uppercase tracking-[0.16em] text-muted", children: [_jsx("span", { children: sourceLabel(resolved.source) }), recentRuns.length > 0 ? (_jsxs("span", { className: "rounded-full bg-accent/15 px-2 py-0.5 text-accent", children: [recentRuns.length, " running"] })) : null] })] })] }) }), _jsxs("section", { "data-testid": "app-launch-panel", className: "flex flex-col gap-4 rounded-lg border border-border/45 bg-card/30 p-4", children: [_jsxs("div", { className: "flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between", children: [_jsxs("div", { className: "flex flex-col gap-1", children: [_jsx(SectionHeader, { children: "Launch" }), _jsx("p", { className: "text-xs text-muted", children: activeRun
298
+ ? `${activeRun.displayName} is ${activeRun.status}.`
299
+ : "Ready to launch." })] }), _jsxs("button", { type: "button", onClick: handleLaunch, disabled: launching, className: "inline-flex items-center justify-center gap-2 rounded-full bg-accent px-5 py-2 text-xs font-semibold uppercase tracking-[0.16em] text-accent-foreground transition-opacity hover:opacity-90 disabled:cursor-not-allowed disabled:opacity-60", children: [_jsx(Rocket, { className: "h-3.5 w-3.5", "aria-hidden": "true" }), launching
300
+ ? "Launching..."
301
+ : `Launch ${resolved.info.displayName ?? "App"}`] })] }), _jsxs("div", { className: "grid gap-3 sm:grid-cols-2 lg:grid-cols-4", children: [_jsxs("div", { className: "min-w-0 border-l border-border/35 pl-3", children: [_jsx("div", { className: "text-[10px] uppercase tracking-[0.14em] text-muted", children: "Run" }), _jsx("div", { className: "truncate text-sm font-medium text-foreground", children: activeRun?.status ?? "Ready" })] }), _jsxs("div", { className: "min-w-0 border-l border-border/35 pl-3", children: [_jsx("div", { className: "text-[10px] uppercase tracking-[0.14em] text-muted", children: "Window" }), _jsx("div", { className: "truncate text-sm font-medium text-foreground", children: launchModeLabel })] }), _jsxs("div", { className: "min-w-0 border-l border-border/35 pl-3", children: [_jsx("div", { className: "text-[10px] uppercase tracking-[0.14em] text-muted", children: "Target" }), _jsx("div", { className: "truncate text-sm font-medium text-foreground", title: launchTarget, children: viewerUrl ? "Viewer" : "App route" })] }), _jsxs("div", { className: "min-w-0 border-l border-border/35 pl-3", children: [_jsx("div", { className: "text-[10px] uppercase tracking-[0.14em] text-muted", children: "Session" }), _jsx("div", { className: "truncate text-sm font-medium text-foreground", children: sessionMode ? formatLabel(sessionMode) : "Not declared" })] })] }), sessionFeatures.length > 0 ? (_jsx("div", { className: "flex flex-wrap gap-1.5", children: sessionFeatures.map((feature) => (_jsx("span", { className: "rounded-full border border-border/60 bg-card/50 px-2 py-0.5 text-xs text-muted", children: formatLabel(feature) }, feature))) })) : null, latestFailure ? (_jsxs("div", { className: "rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-xs text-muted", children: [_jsx("span", { className: "font-medium text-destructive", children: "Last failure: " }), latestFailure.errorMessage ?? "Launch failed."] })) : null, _jsxs("fieldset", { className: "flex flex-col gap-2 rounded-md border border-border/40 bg-bg/20 p-3", children: [_jsxs("legend", { className: "px-1 text-xs uppercase tracking-[0.14em] text-muted", children: [_jsx(SettingsIcon, { className: "mr-1 inline h-3 w-3" }), " Launch Destination"] }), _jsxs("label", { className: "flex cursor-pointer items-center gap-2 text-sm", children: [_jsx("input", { type: "radio", checked: config.launchMode === "window", onChange: () => updateConfig({ launchMode: "window" }), className: "h-3.5 w-3.5 accent-accent" }), _jsx("span", { children: "Dedicated window" })] }), _jsxs("label", { className: `flex items-center gap-2 text-sm ${supportsInlineMode
302
+ ? "cursor-pointer"
303
+ : "cursor-not-allowed opacity-50"}`, children: [_jsx("input", { type: "radio", checked: config.launchMode === "inline", disabled: !supportsInlineMode, onChange: () => updateConfig({ launchMode: "inline" }), className: "h-3.5 w-3.5 accent-accent" }), _jsxs("span", { children: ["Main window", !supportsInlineMode ? " (not supported)" : ""] })] })] }), _jsxs("label", { className: `inline-flex items-center gap-2 self-start rounded-full border border-border/60 bg-bg/20 px-3 py-1.5 text-xs ${config.launchMode === "window"
304
+ ? "cursor-pointer"
305
+ : "cursor-not-allowed opacity-50"}`, children: [_jsx("input", { type: "checkbox", checked: config.alwaysOnTop, disabled: config.launchMode !== "window", onChange: (event) => updateConfig({ alwaysOnTop: event.currentTarget.checked }), className: "h-3.5 w-3.5 accent-accent" }), config.alwaysOnTop ? (_jsx(Pin, { className: "h-3.5 w-3.5", "aria-hidden": "true" })) : (_jsx(PinOff, { className: "h-3.5 w-3.5", "aria-hidden": "true" })), _jsx("span", { children: "Keep this app's window on top" })] })] }), _jsxs("section", { className: "flex flex-col gap-3", children: [_jsx(SectionHeader, { children: "About" }), resolved.info.description ? (_jsx("p", { className: "text-sm text-muted", children: resolved.info.description })) : null, _jsx(ChipList, { items: resolved.info.capabilities ?? [] })] }), DetailExtension ? (_jsxs("section", { className: "flex flex-col gap-3", children: [_jsx(SectionHeader, { children: "Details" }), _jsx(DetailExtension, { app: resolved.info })] })) : null, recentRuns.length > 0 ? (_jsxs("section", { className: "flex flex-col gap-2", children: [_jsx(SectionHeader, { children: "Recent Runs" }), _jsx("ul", { className: "flex flex-col gap-1 text-xs text-muted", children: recentRuns.map((run) => (_jsxs("li", { className: "flex items-center justify-between rounded-md border border-border/40 bg-card/30 px-3 py-1.5", children: [_jsx("span", { className: "truncate", children: run.runId }), _jsx("span", { className: "ml-2 shrink-0 uppercase tracking-[0.14em]", children: run.status })] }, run.runId))) })] })) : null, _jsxs("section", { className: "flex flex-col gap-2", children: [_jsx(SectionHeader, { children: "Launch Diagnostics" }), history.length === 0 ? (_jsx("p", { className: "text-xs text-muted", children: "No launch history yet." })) : (_jsx("ul", { className: "flex flex-col gap-1 text-xs", children: history.slice(0, 5).map((entry) => (_jsxs("li", { className: "rounded-md border border-border/40 bg-card/30 px-3 py-1.5", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "text-muted", children: formatTimestamp(entry.timestamp) }), _jsx("span", { className: entry.succeeded ? "text-accent" : "text-destructive", children: entry.succeeded ? "OK" : "FAILED" })] }), entry.errorMessage ? (_jsx("p", { className: "mt-1 text-muted", children: entry.errorMessage })) : null] }, entry.timestamp))) }))] }), widgets.length > 0 ? (_jsxs("section", { className: "flex flex-col gap-2", children: [_jsx(SectionHeader, { children: "Widgets" }), _jsx("ul", { className: "flex flex-col gap-2", children: widgets.map((decl) => {
263
306
  const visible = isWidgetVisible(decl, visibility.overrides);
264
307
  const widgetKey = widgetVisibilityKey(decl.pluginId, decl.id);
265
308
  const expanded = expandedWidget === widgetKey;
266
309
  return (_jsxs("li", { className: "rounded-md border border-border/40 bg-card/30", children: [_jsxs("div", { className: "flex items-center justify-between gap-3 px-3 py-2", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "truncate text-sm font-medium text-foreground", children: decl.label }), _jsx("div", { className: "truncate text-[10px] uppercase tracking-[0.14em] text-muted", children: decl.slot })] }), _jsxs("div", { className: "flex shrink-0 items-center gap-2", children: [_jsx("button", { type: "button", onClick: () => setExpandedWidget(expanded ? null : widgetKey), className: "rounded-full border border-border/60 px-2 py-0.5 text-[10px] uppercase tracking-[0.14em] text-muted transition-colors hover:text-foreground", children: expanded ? "Hide" : "Preview" }), _jsxs("label", { className: "inline-flex cursor-pointer items-center gap-1.5 text-xs", children: [_jsx("input", { type: "checkbox", checked: visible, onChange: (event) => toggleWidget(decl, event.currentTarget.checked), className: "h-3.5 w-3.5 accent-accent" }), _jsx("span", { className: "text-muted", children: "Show" })] })] })] }), expanded ? (_jsx("div", { className: "border-t border-border/40 p-3", children: _jsx(WidgetPreview, { declaration: decl, pluginId: resolved.pluginId }) })) : null] }, widgetKey));
267
- }) })] })) : null, _jsxs("section", { className: "flex flex-col gap-3", children: [_jsx(SectionHeader, { children: "Config" }), _jsxs("fieldset", { className: "flex flex-col gap-2 rounded-md border border-border/40 bg-card/30 p-3", children: [_jsxs("legend", { className: "px-1 text-xs uppercase tracking-[0.14em] text-muted", children: [_jsx(SettingsIcon, { className: "mr-1 inline h-3 w-3" }), " Launch Mode"] }), _jsxs("label", { className: "flex cursor-pointer items-center gap-2 text-sm", children: [_jsx("input", { type: "radio", checked: config.launchMode === "window", onChange: () => updateConfig({ launchMode: "window" }), className: "h-3.5 w-3.5 accent-accent" }), _jsx("span", { children: "Open in dedicated window" })] }), _jsxs("label", { className: `flex items-center gap-2 text-sm ${supportsInlineMode
268
- ? "cursor-pointer"
269
- : "cursor-not-allowed opacity-50"}`, children: [_jsx("input", { type: "radio", checked: config.launchMode === "inline", disabled: !supportsInlineMode, onChange: () => updateConfig({ launchMode: "inline" }), className: "h-3.5 w-3.5 accent-accent" }), _jsxs("span", { children: ["Replace current view in main window", !supportsInlineMode ? " (not supported for this app)" : ""] })] })] }), _jsxs("label", { className: `inline-flex items-center gap-2 self-start rounded-full border border-border/60 bg-card/40 px-3 py-1.5 text-xs ${config.launchMode === "window"
270
- ? "cursor-pointer"
271
- : "cursor-not-allowed opacity-50"}`, children: [_jsx("input", { type: "checkbox", checked: config.alwaysOnTop, disabled: config.launchMode !== "window", onChange: (event) => updateConfig({ alwaysOnTop: event.currentTarget.checked }), className: "h-3.5 w-3.5 accent-accent" }), config.alwaysOnTop ? (_jsx(Pin, { className: "h-3.5 w-3.5", "aria-hidden": "true" })) : (_jsx(PinOff, { className: "h-3.5 w-3.5", "aria-hidden": "true" })), _jsx("span", { children: "Keep this app's window on top" })] })] })] }));
310
+ }) })] })) : null] }));
272
311
  }
273
312
  /**
274
313
  * Convenience: does this slug resolve to an app that wants the details
275
314
  * page? Used by AppsView.handleLaunch to decide whether to navigate to
276
315
  * /apps/<slug>/details or call openAppRouteWindow directly.
277
316
  *
278
- * Only apps that explicitly declare `hasDetailsPage: true` (today: a
279
- * handful of internal tools with real config / runtime knobs) route
280
- * through the details page. Catalog and overlay apps launch directly —
281
- * launching is the primary action; the user only needs the extra step
282
- * when there's config worth touching first.
317
+ * Internal tools opt in with `hasDetailsPage`; catalog apps opt in through
318
+ * launch metadata that implies setup, runtime control, or a heavier session.
283
319
  */
284
- export function appNeedsDetailsPage(name) {
320
+ export function appNeedsDetailsPage(app) {
321
+ const name = typeof app === "string" ? app : app.name;
285
322
  if (isInternalToolApp(name)) {
286
323
  return getInternalToolAppHasDetailsPage(name);
287
324
  }
325
+ if (isOverlayApp(name)) {
326
+ return false;
327
+ }
328
+ if (typeof app !== "string" && app.launchType === "overlay") {
329
+ return false;
330
+ }
331
+ if (typeof app === "string") {
332
+ return false;
333
+ }
334
+ if (app.uiExtension?.detailPanelId) {
335
+ return true;
336
+ }
337
+ if (app.session) {
338
+ return true;
339
+ }
340
+ if (app.category.trim().toLowerCase() === "game") {
341
+ return true;
342
+ }
288
343
  return false;
289
344
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AppsView.d.ts","sourceRoot":"","sources":["../../../../../../../app-core/src/components/pages/AppsView.tsx"],"names":[],"mappings":"AA0CA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAoJ1D,wBAAgB,QAAQ,4CA8kCvB"}
1
+ {"version":3,"file":"AppsView.d.ts","sourceRoot":"","sources":["../../../../../../../app-core/src/components/pages/AppsView.tsx"],"names":[],"mappings":"AA0CA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AA4I1D,wBAAgB,QAAQ,4CAqiCvB"}
@@ -23,7 +23,6 @@ const APPS_SIDEBAR_COLLAPSED_KEY = "milady:apps:sidebar:collapsed";
23
23
  const APPS_SIDEBAR_DEFAULT_WIDTH = 240;
24
24
  const APPS_SIDEBAR_MIN_WIDTH = 200;
25
25
  const APPS_SIDEBAR_MAX_WIDTH = 520;
26
- const APP_WINDOW_LAUNCH_ENABLED_KEY = "milady:apps:window:launch-enabled";
27
26
  const APP_WINDOW_ALWAYS_ON_TOP_KEY = "milady:apps:window:always-on-top";
28
27
  const APP_WINDOW_HEARTBEAT_MS = 15_000;
29
28
  function clampWidth(value) {
@@ -63,16 +62,6 @@ function loadInitialAppWindowAlwaysOnTop() {
63
62
  return false;
64
63
  }
65
64
  }
66
- function loadInitialAppWindowLaunchEnabled() {
67
- if (typeof window === "undefined")
68
- return false;
69
- try {
70
- return (window.localStorage.getItem(APP_WINDOW_LAUNCH_ENABLED_KEY) === "true");
71
- }
72
- catch {
73
- return false;
74
- }
75
- }
76
65
  function getCurrentAppsPath() {
77
66
  return getWindowNavigationPath();
78
67
  }
@@ -132,8 +121,11 @@ function isManagedWindowsChangedEvent(payload) {
132
121
  const windows = payload.windows;
133
122
  return Array.isArray(windows);
134
123
  }
124
+ function isOverlayLaunchApp(app) {
125
+ return isOverlayApp(app.name) || app.launchType === "overlay";
126
+ }
135
127
  export function AppsView() {
136
- const { appRuns, activeGameRunId, activeGameViewerUrl, appsSubTab, favoriteApps, recentApps, setTab, setState, setActionNotice, t, } = useApp();
128
+ const { appRuns, activeGameRunId, activeGameViewerUrl, appsSubTab, favoriteApps, walletEnabled, recentApps, setTab, setState, setActionNotice, t, } = useApp();
137
129
  const [apps, setApps] = useState([]);
138
130
  const [loading, setLoading] = useState(true);
139
131
  const [error, setError] = useState(null);
@@ -142,7 +134,6 @@ export function AppsView() {
142
134
  const [stoppingRunId, setStoppingRunId] = useState(null);
143
135
  const [sidebarCollapsed, setSidebarCollapsed] = useState(loadInitialSidebarCollapsed);
144
136
  const [sidebarWidth, setSidebarWidth] = useState(loadInitialSidebarWidth);
145
- const [appWindowLaunchEnabled, setAppWindowLaunchEnabled] = useState(loadInitialAppWindowLaunchEnabled);
146
137
  const [appWindowAlwaysOnTop] = useState(loadInitialAppWindowAlwaysOnTop);
147
138
  const [isAppWindow] = useState(isAppWindowRoute);
148
139
  const [appWindows, setAppWindows] = useState([]);
@@ -168,18 +159,6 @@ export function AppsView() {
168
159
  /* ignore */
169
160
  }
170
161
  }, []);
171
- // Upstream re-added handleAppWindowAlwaysOnTopChange but we removed the
172
- // global toggle UI on this branch — keep only the launch-enabled handler
173
- // upstream added (which still has UI in the catalog grid header).
174
- const handleAppWindowLaunchEnabledChange = useCallback((next) => {
175
- setAppWindowLaunchEnabled(next);
176
- try {
177
- window.localStorage.setItem(APP_WINDOW_LAUNCH_ENABLED_KEY, String(next));
178
- }
179
- catch {
180
- /* ignore */
181
- }
182
- }, []);
183
162
  useEffect(() => {
184
163
  appWindowsRef.current = appWindows;
185
164
  }, [appWindows]);
@@ -380,16 +359,22 @@ export function AppsView() {
380
359
  .filter((oa) => !serverApps.some((a) => a.name === oa.name))
381
360
  .filter((oa) => !catalogApps.some((a) => a.name === oa.name))
382
361
  .map(overlayAppToRegistryInfo);
383
- // Server-discovered apps win on conflicts they have live runtime data.
384
- // Catalog apps fill in known-but-not-installed entries (scape, vincent,
385
- // hyperscape, etc.) so the page keeps showing them.
362
+ // Internal-tool entries (first in `catalogApps`) own the canonical
363
+ // metadata (heroImage, category, descriptions). Server runtime data is
364
+ // joined onto them via app-runs elsewhere; we must NOT let bare
365
+ // `serverApps` entries clobber the heroImage by winning the dedup.
366
+ // Keep the FIRST occurrence so internal tools stay authoritative.
367
+ const seen = new Set();
386
368
  const list = [
387
369
  ...catalogApps,
388
370
  ...overlayDescriptors,
389
371
  ...serverApps,
390
- ].filter((app, index, items) => !items
391
- .slice(index + 1)
392
- .some((candidate) => candidate.name === app.name));
372
+ ].filter((app) => {
373
+ if (seen.has(app.name))
374
+ return false;
375
+ seen.add(app.name);
376
+ return true;
377
+ });
393
378
  setApps(list);
394
379
  }
395
380
  catch (err) {
@@ -436,9 +421,7 @@ export function AppsView() {
436
421
  setState("recentApps", next);
437
422
  }, [recentApps, setState]);
438
423
  const openAppRouteWindow = useCallback(async (app) => {
439
- // Upstream gate: opt-in toggle for the per-app native window
440
- // experience (lives in the catalog grid header).
441
- if (!appWindowLaunchEnabled || isAppWindow || !isElectrobunRuntime()) {
424
+ if (isAppWindow || !isElectrobunRuntime()) {
442
425
  return false;
443
426
  }
444
427
  // Internal tools that have an explicit windowPath open as their own
@@ -515,7 +498,6 @@ export function AppsView() {
515
498
  }), "success", 2600);
516
499
  return true;
517
500
  }, [
518
- appWindowLaunchEnabled,
519
501
  appWindowAlwaysOnTop,
520
502
  isAppWindow,
521
503
  pushAppsUrl,
@@ -584,28 +566,20 @@ export function AppsView() {
584
566
  // button on AppDetailsView is what eventually calls the bridge or
585
567
  // navigates inline. Skip when we're already inside an app window
586
568
  // (the slug lives there, not in the main shell).
587
- if (!isAppWindow && appNeedsDetailsPage(app.name)) {
569
+ if (!isAppWindow && appNeedsDetailsPage(app)) {
588
570
  const slug = getAppSlug(app.name);
589
571
  pushRecentApp(app.name);
590
572
  setState("appsSubTab", "browse");
573
+ setAppsDetailsSlug(slug);
591
574
  pushAppsUrl(slug, "details");
592
575
  return;
593
576
  }
594
577
  // In Electrobun, try to open the app's dedicated native window via
595
578
  // `openAppRouteWindow` — slug-deduped + per-app bounds, Ghost-style.
596
- // The helper itself respects the user's `appWindowLaunchEnabled`
597
- // toggle: when off it returns false, and we fall through to the
598
- // web-style launch path (catalog → client.launchApp + iframe-attach;
599
- // internal tool → setTab; overlay → activeOverlayApp). That gives
600
- // the toggle a real opt-out semantics instead of bricking launches.
601
579
  if (isElectrobunRuntime()) {
602
580
  const openedRouteWindow = await openAppRouteWindow(app).catch(() => false);
603
581
  if (openedRouteWindow)
604
582
  return;
605
- // openAppRouteWindow returned false → either the toggle is off,
606
- // we're already inside an app window, or the bridge declined.
607
- // Continue to the web-fallback paths below so the click isn't a
608
- // dead-end.
609
583
  }
610
584
  // Web fallback: internal tools switch tabs in the shell.
611
585
  const internalToolTab = getInternalToolAppTargetTab(app.name);
@@ -615,7 +589,7 @@ export function AppsView() {
615
589
  return;
616
590
  }
617
591
  // Web fallback: overlay apps (e.g. companion) mount inside the shell.
618
- if (isOverlayApp(app.name)) {
592
+ if (isOverlayLaunchApp(app)) {
619
593
  pushRecentApp(app.name);
620
594
  setState("activeOverlayApp", app.name);
621
595
  pushAppsUrl(getAppSlug(app.name));
@@ -689,11 +663,11 @@ export function AppsView() {
689
663
  openRunInDesktopWindow,
690
664
  pushAppsUrl,
691
665
  pushRecentApp,
666
+ isAppWindow,
692
667
  setActionNotice,
693
668
  setState,
694
669
  setTab,
695
670
  t,
696
- isAppWindow,
697
671
  ]);
698
672
  // Auto-launch from URL slug on first load (e.g. /apps/babylon after refresh)
699
673
  useEffect(() => {
@@ -713,7 +687,7 @@ export function AppsView() {
713
687
  return;
714
688
  // Restored game runs should not block direct overlay-app routes like
715
689
  // /apps/companion, which are expected to take over immediately.
716
- if (activeGameRunId && !isOverlayApp(app.name))
690
+ if (activeGameRunId && !isOverlayLaunchApp(app))
717
691
  return;
718
692
  void handleLaunch(app);
719
693
  // eslint-disable-next-line react-hooks/exhaustive-deps -- one-time on first apps load
@@ -802,11 +776,12 @@ export function AppsView() {
802
776
  return filterAppsForCatalog(apps, {
803
777
  activeAppNames,
804
778
  searchQuery,
779
+ walletEnabled,
805
780
  });
806
- }, [activeAppNames, apps, searchQuery]);
781
+ }, [activeAppNames, apps, searchQuery, walletEnabled]);
807
782
  const browseApps = useMemo(() => {
808
- return filterAppsForCatalog(apps);
809
- }, [apps]);
783
+ return filterAppsForCatalog(apps, { walletEnabled });
784
+ }, [apps, walletEnabled]);
810
785
  const handleToggleFavorite = useCallback((appName) => {
811
786
  const current = favoriteApps;
812
787
  const next = current.includes(appName)
@@ -894,10 +869,15 @@ export function AppsView() {
894
869
  }
895
870
  }, [busyAppWindowId, setActionNotice, t]);
896
871
  const appsSidebar = (_jsx(AppsSidebar, { apps: apps, browseApps: browseApps, runs: sortedRuns, activeAppNames: activeAppNames, favoriteAppNames: favoriteAppNames, selectedAppName: activeGameRun?.appName ?? null, collapsed: sidebarCollapsed, onCollapsedChange: handleSidebarCollapsedChange, width: sidebarWidth, onWidthChange: handleSidebarWidthChange, minWidth: APPS_SIDEBAR_MIN_WIDTH, maxWidth: APPS_SIDEBAR_MAX_WIDTH, onLaunchApp: (app) => void handleLaunch(app), onOpenRun: (run) => void handleOpenRun(run) }));
897
- return (_jsx(PageLayout, { className: "h-full bg-transparent", "data-testid": "apps-shell", sidebar: appsSidebar, contentInnerClassName: "w-full", contentClassName: "![scrollbar-width:none] [&::-webkit-scrollbar]:!hidden", children: _jsxs("div", { className: "device-layout mx-auto flex w-full max-w-6xl flex-col gap-4 px-4 py-4 lg:px-6", children: [_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3 border-b border-border/35 pb-3", children: [_jsx("div", { className: "min-w-0", children: _jsx("h2", { className: "text-xs-tight font-semibold uppercase tracking-[0.18em] text-accent", children: "App Windows" }) }), _jsxs("label", { className: "inline-flex cursor-pointer items-center gap-2 rounded-full border border-border/60 bg-card/60 px-3 py-1.5 text-xs font-medium text-muted transition-colors hover:text-foreground", children: [_jsx("input", { type: "checkbox", "aria-label": "Open apps in windows", className: "h-3.5 w-3.5 accent-accent", checked: appWindowLaunchEnabled, onChange: (event) => handleAppWindowLaunchEnabledChange(event.currentTarget.checked) }), _jsx("span", { children: "Open apps in windows" })] })] }), appWindows.length > 0 ? (_jsx("section", { "data-testid": "app-window-controls", className: "flex flex-wrap items-center gap-2", children: appWindows.map((windowRecord) => {
872
+ return (_jsx(PageLayout, { className: "h-full bg-transparent", "data-testid": "apps-shell", sidebar: appsSidebar, contentInnerClassName: "w-full", contentClassName: "![scrollbar-width:none] [&::-webkit-scrollbar]:!hidden", children: _jsxs("div", { className: "device-layout mx-auto flex w-full max-w-6xl flex-col gap-4 px-4 py-4 lg:px-6", children: [appWindows.length > 0 ? (_jsx("section", { "data-testid": "app-window-controls", className: "flex flex-wrap items-center gap-2", children: appWindows.map((windowRecord) => {
898
873
  const busy = busyAppWindowId === windowRecord.id;
899
874
  return (_jsxs("div", { className: "inline-flex min-w-0 items-center gap-2 rounded-full border border-border/55 bg-card/70 px-3 py-1.5 text-xs text-muted", children: [_jsx("span", { className: "max-w-44 truncate font-medium text-foreground", children: windowRecord.displayName }), _jsxs("button", { type: "button", className: "inline-flex items-center gap-1.5 rounded-full border border-border/60 px-2 py-1 text-[0.68rem] font-semibold uppercase tracking-[0.16em] text-muted transition-colors hover:border-accent hover:text-foreground disabled:cursor-not-allowed disabled:opacity-60", onClick: () => void handleToggleAppWindowAlwaysOnTop(windowRecord), disabled: busy, "aria-label": windowRecord.alwaysOnTop
900
875
  ? `Let ${windowRecord.displayName} act like a normal window`
901
876
  : `Keep ${windowRecord.displayName} on top`, children: [windowRecord.alwaysOnTop ? (_jsx(PinOff, { className: "h-3.5 w-3.5", "aria-hidden": "true" })) : (_jsx(Pin, { className: "h-3.5 w-3.5", "aria-hidden": "true" })), windowRecord.alwaysOnTop ? "Normal" : "On top"] })] }, windowRecord.id));
902
- }) })) : null, hasActiveRun ? (_jsx("div", { className: "flex flex-wrap items-center justify-between gap-3", children: _jsx("button", { type: "button", className: "rounded-full border border-ok/35 bg-ok/10 px-3 py-1.5 text-xs-tight font-medium text-ok transition-colors hover:bg-ok/15", onClick: handleOpenCurrentGame, children: hasCurrentGame ? "Live viewer" : "Active run" }) })) : null, appsDetailsSlug ? (_jsx(AppDetailsView, { slug: appsDetailsSlug, onLaunched: () => pushAppsUrl() })) : (_jsxs(_Fragment, { children: [_jsx(RunningAppsRow, { runs: sortedRuns, catalogApps: apps, busyRunId: busyRunId, onOpenRun: (run) => void handleOpenRun(run), onStopRun: (run) => void handleStopRun(run), stoppingRunId: stoppingRunId }), _jsx(AppsCatalogGrid, { activeAppNames: activeAppNames, error: error, favoriteAppNames: favoriteAppNames, loading: loading, searchQuery: searchQuery, visibleApps: visibleApps, onLaunch: (app) => void handleLaunch(app), onToggleFavorite: handleToggleFavorite })] }))] }) }));
877
+ }) })) : null, hasActiveRun ? (_jsx("div", { className: "flex flex-wrap items-center justify-between gap-3", children: _jsx("button", { type: "button", className: "rounded-full border border-ok/35 bg-ok/10 px-3 py-1.5 text-xs-tight font-medium text-ok transition-colors hover:bg-ok/15", onClick: handleOpenCurrentGame, children: hasCurrentGame ? "Live viewer" : "Active run" }) })) : null, appsDetailsSlug ? (_jsx(AppDetailsView, { slug: appsDetailsSlug, onLaunched: (launch) => {
878
+ setAppsDetailsSlug(null);
879
+ if (launch.mode === "window") {
880
+ pushAppsUrl();
881
+ }
882
+ } })) : (_jsxs(_Fragment, { children: [_jsx(RunningAppsRow, { runs: sortedRuns, catalogApps: apps, busyRunId: busyRunId, onOpenRun: (run) => void handleOpenRun(run), onStopRun: (run) => void handleStopRun(run), stoppingRunId: stoppingRunId }), _jsx(AppsCatalogGrid, { activeAppNames: activeAppNames, error: error, favoriteAppNames: favoriteAppNames, loading: loading, searchQuery: searchQuery, visibleApps: visibleApps, onLaunch: (app) => void handleLaunch(app), onToggleFavorite: handleToggleFavorite })] }))] }) }));
903
883
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AutomationsView.d.ts","sourceRoot":"","sources":["../../../../../../../app-core/src/components/pages/AutomationsView.tsx"],"names":[],"mappings":"AAAA;;GAEG;AA+1KH,wBAAgB,eAAe,4CAO9B;AAED,wBAAgB,uBAAuB,4CAoDtC"}
1
+ {"version":3,"file":"AutomationsView.d.ts","sourceRoot":"","sources":["../../../../../../../app-core/src/components/pages/AutomationsView.tsx"],"names":[],"mappings":"AAAA;;GAEG;AAo1KH,wBAAgB,eAAe,4CAO9B;AAED,wBAAgB,uBAAuB,4CAoDtC"}
@@ -8,7 +8,7 @@ import { createContext, useCallback, useContext, useEffect, useMemo, useRef, use
8
8
  import { client } from "../../api";
9
9
  import { isMissingCredentialsResponse, } from "../../api/client";
10
10
  import { useWorkflowGenerationState } from "../../hooks/useWorkflowGenerationState";
11
- import { useApp } from "../../state";
11
+ import { dispatchFocusConnector, prettyCredName, providerFromCredType, useApp, } from "../../state";
12
12
  import { confirmDesktopAction } from "../../utils";
13
13
  import { formatDateTime, formatDurationMs } from "../../utils/format";
14
14
  // Direct sub-path import: `widgets/index.ts` re-exports `WidgetHost` while
@@ -65,24 +65,6 @@ function prefillPageChat(text, options) {
65
65
  },
66
66
  }));
67
67
  }
68
- /**
69
- * Display name for an n8n credential type. Backend emits raw credential type
70
- * IDs (e.g. `slackApi`, `gmailOAuth2`); the missing-credentials banner shows
71
- * users a friendly service name. Falls back to the raw type if unmapped.
72
- */
73
- const CRED_TYPE_LABELS = {
74
- gmailOAuth2: "Gmail",
75
- gmailOAuth2Api: "Gmail",
76
- slackApi: "Slack",
77
- slackOAuth2Api: "Slack",
78
- discordApi: "Discord",
79
- discordBotApi: "Discord",
80
- discordWebhookApi: "Discord",
81
- telegramApi: "Telegram",
82
- };
83
- function prettyCredName(credType) {
84
- return CRED_TYPE_LABELS[credType] ?? credType;
85
- }
86
68
  function buildWorkflowCopyRequest(workflow, name) {
87
69
  return {
88
70
  name,
@@ -1015,11 +997,11 @@ function getWorkflowTemplates(t) {
1015
997
  function WorkflowTemplatesModal({ open, onOpenChange, onSelectTemplate, onSelectCustom, }) {
1016
998
  const { t } = useAutomationsViewContext();
1017
999
  const templates = getWorkflowTemplates(t);
1018
- return (_jsx(Dialog, { open: open, onOpenChange: onOpenChange, children: _jsxs(DialogContent, { className: "w-[min(calc(100vw-1.5rem),56rem)] max-w-none", children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: t("automations.templatesModalTitle", {
1000
+ return (_jsx(Dialog, { open: open, onOpenChange: onOpenChange, children: _jsxs(DialogContent, { className: "w-[min(calc(100vw_-_1.5rem),56rem)] max-w-none", children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: t("automations.templatesModalTitle", {
1019
1001
  defaultValue: "Start with a template",
1020
1002
  }) }), _jsx(DialogDescription, { children: t("automations.templatesModalSubtitle", {
1021
1003
  defaultValue: "Pick a workflow to customize, or start blank.",
1022
- }) })] }), _jsxs("div", { className: "grid gap-3 sm:grid-cols-2 overflow-y-auto max-h-[min(32rem,calc(100dvh-12rem))] pr-1", children: [templates.map((template) => {
1004
+ }) })] }), _jsxs("div", { className: "grid gap-3 overflow-y-auto pr-1 sm:grid-cols-2 max-h-[min(32rem,calc(100dvh_-_12rem))]", children: [templates.map((template) => {
1023
1005
  const Icon = template.icon;
1024
1006
  return (_jsxs("div", { className: "flex flex-col gap-3 rounded-xl border border-border/40 bg-bg/30 p-4 hover:border-accent/30 hover:bg-accent/5 transition-colors", children: [_jsxs("div", { className: "flex items-start gap-3", children: [_jsx("div", { className: "mt-0.5 rounded-lg bg-accent/10 p-2 text-accent shrink-0", children: _jsx(Icon, { className: "h-4 w-4" }) }), _jsxs("div", { className: "min-w-0 flex-1 space-y-1", children: [_jsx("div", { className: "text-sm font-semibold text-txt", children: template.title }), _jsx("p", { className: "text-sm text-muted leading-snug", children: template.description })] })] }), _jsx(Button, { variant: "outline", size: "sm", className: "self-end h-7 px-3 text-xs", onClick: () => onSelectTemplate(template.seedPrompt), children: t("automations.templateUseButton", {
1025
1007
  defaultValue: "Use template",
@@ -1033,7 +1015,7 @@ function WorkflowTemplatesModal({ open, onOpenChange, onSelectTemplate, onSelect
1033
1015
  }) })] })] })] }) }));
1034
1016
  }
1035
1017
  function CreateAutomationDialog({ open, onOpenChange, onCreateTask, onCreateWorkflow, onDescribeAutomation, }) {
1036
- return (_jsx(Dialog, { open: open, onOpenChange: onOpenChange, children: _jsxs(DialogContent, { className: "w-[min(calc(100vw-1.5rem),34rem)] max-w-none", children: [_jsx(DialogHeader, { children: _jsx(DialogTitle, { children: "Create automation" }) }), _jsx(AutomationCommandBar, { autoFocus: true, onSubmit: async (prompt) => {
1018
+ return (_jsx(Dialog, { open: open, onOpenChange: onOpenChange, children: _jsxs(DialogContent, { className: "w-[min(calc(100vw_-_1.5rem),34rem)] max-w-none", children: [_jsx(DialogHeader, { children: _jsx(DialogTitle, { children: "Create automation" }) }), _jsx(AutomationCommandBar, { autoFocus: true, onSubmit: async (prompt) => {
1037
1019
  await onDescribeAutomation(prompt);
1038
1020
  onOpenChange(false);
1039
1021
  } }), _jsxs("div", { className: "grid gap-3 sm:grid-cols-2", children: [_jsx("button", { type: "button", onClick: onCreateTask, className: "rounded-xl border border-border/30 bg-bg/30 p-4 text-left transition-colors hover:border-accent/40 hover:bg-accent/5", children: _jsx("div", { className: "text-sm font-semibold text-txt", children: "Task" }) }), _jsx("button", { type: "button", onClick: onCreateWorkflow, className: "rounded-xl border border-border/30 bg-bg/30 p-4 text-left transition-colors hover:border-accent/40 hover:bg-accent/5", children: _jsx("div", { className: "text-sm font-semibold text-txt", children: "Workflow" }) })] })] }) }));
@@ -2047,6 +2029,7 @@ function AutomationsLayout() {
2047
2029
  prompt,
2048
2030
  ...(title?.trim() ? { name: title.trim() } : {}),
2049
2031
  ...(workflowId ? { workflowId } : {}),
2032
+ ...(bridgeConversationId ? { bridgeConversationId } : {}),
2050
2033
  });
2051
2034
  if (isMissingCredentialsResponse(result)) {
2052
2035
  setMissingCredentials(result.missingCredentials);
@@ -2465,6 +2448,7 @@ function AutomationsLayout() {
2465
2448
  .map((cred) => prettyCredName(cred.credType))
2466
2449
  .join(", "), " ", "to activate this workflow."] }), _jsx("div", { className: "mt-2 flex flex-wrap gap-2", children: missingCredentials.map((cred) => (_jsxs(Button, { size: "sm", variant: "outline", onClick: () => {
2467
2450
  setTab("settings");
2451
+ dispatchFocusConnector(providerFromCredType(cred.credType));
2468
2452
  setMissingCredentials(null);
2469
2453
  }, children: ["Connect ", prettyCredName(cred.credType), " \u2192"] }, cred.credType))) })] }), _jsx(Button, { variant: "ghost", size: "sm", className: "text-muted hover:text-txt", onClick: () => setMissingCredentials(null), children: "Dismiss" })] }) })), (pageNotice || combinedError) && (_jsx(PagePanel, { variant: "padded", className: "mb-4 border border-danger/20 bg-danger/5", children: _jsxs("div", { className: "flex items-center justify-between gap-3", children: [_jsx("p", { className: "text-sm text-danger", children: pageNotice ?? combinedError }), pageNotice && (_jsx(Button, { variant: "ghost", size: "sm", className: "text-danger hover:bg-danger/10", onClick: () => setPageNotice(null), children: "Dismiss" }))] }) })), editorOpen || editingId || editingTaskId ? (editorMode === "task" || editingTaskId ? (_jsx(TaskForm, {})) : (_jsx(HeartbeatForm, { form: form, editingId: editingId, editorEnabled: editorEnabled, modalTitle: modalTitle, formError: formError, triggersSaving: triggersSaving, templateNotice: templateNotice, triggers: triggers, triggerRunsById: triggerRunsById, t: t, selectedTriggerId: editingId, setField: setField, setForm: setForm, setFormError: setFormError, closeEditor: closeEditor, onSubmit: onSubmitTrigger, onDelete: onDeleteTrigger, onRunSelectedTrigger: onRunSelectedTrigger, onToggleTriggerEnabled: onToggleTriggerEnabled, saveFormAsTemplate: saveFormAsTemplate, loadTriggerRuns: loadTriggerRuns, kickerLabelCreate: form.kind === "workflow" ? "New schedule" : "New task", kickerLabelEdit: form.kind === "workflow" ? "Edit schedule" : "Edit task", submitLabelCreate: form.kind === "workflow" ? "Create schedule" : "Create task", submitLabelEdit: form.kind === "workflow" ? "Save schedule" : "Save task" }))) : activeSubpage === "node-catalog" ? (_jsx(AutomationNodeCatalogPane, { nodes: automationNodes })) : showDashboard ? (_jsx(AutomationsDashboard, { items: ctx.allItems, onSelectItem: selectItem, onCreateTask: handleZeroStateNewTask, onCreateWorkflow: () => void createWorkflowDraft(), onDescribeAutomation: handleDescribeAutomation, onUseIdea: (idea) => {
2470
2454
  if (idea.kind === "workflow") {
@@ -1,3 +1,17 @@
1
1
  import { type JSX } from "react";
2
+ declare module "react" {
3
+ namespace JSX {
4
+ interface IntrinsicElements {
5
+ "electrobun-webview": React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement> & {
6
+ src?: string;
7
+ partition?: string;
8
+ preload?: string;
9
+ sandbox?: boolean | "";
10
+ transparent?: boolean | "";
11
+ hidden?: boolean;
12
+ }, HTMLElement>;
13
+ }
14
+ }
15
+ }
2
16
  export declare function BrowserWorkspaceView(): JSX.Element;
3
17
  //# sourceMappingURL=BrowserWorkspaceView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserWorkspaceView.d.ts","sourceRoot":"","sources":["../../../../../../../app-core/src/components/pages/BrowserWorkspaceView.tsx"],"names":[],"mappings":"AAmBA,OAAO,EACL,KAAK,GAAG,EAMT,MAAM,OAAO,CAAC;AA8Of,wBAAgB,oBAAoB,IAAI,GAAG,CAAC,OAAO,CA85ClD"}
1
+ {"version":3,"file":"BrowserWorkspaceView.d.ts","sourceRoot":"","sources":["../../../../../../../app-core/src/components/pages/BrowserWorkspaceView.tsx"],"names":[],"mappings":"AAmBA,OAAO,EACL,KAAK,GAAG,EAMT,MAAM,OAAO,CAAC;AA6Df,OAAO,QAAQ,OAAO,CAAC;IACrB,UAAU,GAAG,CAAC;QACZ,UAAU,iBAAiB;YACzB,oBAAoB,EAAE,KAAK,CAAC,iBAAiB,CAC3C,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG;gBAClC,GAAG,CAAC,EAAE,MAAM,CAAC;gBACb,SAAS,CAAC,EAAE,MAAM,CAAC;gBACnB,OAAO,CAAC,EAAE,MAAM,CAAC;gBACjB,OAAO,CAAC,EAAE,OAAO,GAAG,EAAE,CAAC;gBACvB,WAAW,CAAC,EAAE,OAAO,GAAG,EAAE,CAAC;gBAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;aAClB,EACD,WAAW,CACZ,CAAC;SACH;KACF;CACF;AA4ND,wBAAgB,oBAAoB,IAAI,GAAG,CAAC,OAAO,CAg7DlD"}