@elizaos/ui 2.0.0-beta.2 → 2.0.3-beta.3

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 (3952) hide show
  1. package/App.d.ts +6 -1
  2. package/App.d.ts.map +1 -1
  3. package/App.js +991 -339
  4. package/agent-surface/AgentElementOverlay.d.ts +9 -0
  5. package/agent-surface/AgentElementOverlay.d.ts.map +1 -0
  6. package/agent-surface/AgentElementOverlay.js +85 -0
  7. package/agent-surface/AgentSurfaceContext.d.ts +18 -0
  8. package/agent-surface/AgentSurfaceContext.d.ts.map +1 -0
  9. package/agent-surface/AgentSurfaceContext.hooks.d.ts +16 -0
  10. package/agent-surface/AgentSurfaceContext.hooks.d.ts.map +1 -0
  11. package/agent-surface/AgentSurfaceContext.hooks.js +11 -0
  12. package/agent-surface/AgentSurfaceContext.js +33 -0
  13. package/agent-surface/__e2e__/fixture.d.ts +14 -0
  14. package/agent-surface/__e2e__/fixture.d.ts.map +1 -0
  15. package/agent-surface/__e2e__/fixture.js +52 -0
  16. package/agent-surface/__e2e__/real-view-fixture.d.ts +21 -0
  17. package/agent-surface/__e2e__/real-view-fixture.d.ts.map +1 -0
  18. package/agent-surface/__e2e__/real-view-fixture.js +54 -0
  19. package/agent-surface/capabilities.d.ts +20 -0
  20. package/agent-surface/capabilities.d.ts.map +1 -0
  21. package/agent-surface/capabilities.js +85 -0
  22. package/agent-surface/components.d.ts +52 -0
  23. package/agent-surface/components.d.ts.map +1 -0
  24. package/agent-surface/components.js +41 -0
  25. package/agent-surface/element-reporter.d.ts +19 -0
  26. package/agent-surface/element-reporter.d.ts.map +1 -0
  27. package/agent-surface/element-reporter.hooks.d.ts +27 -0
  28. package/agent-surface/element-reporter.hooks.d.ts.map +1 -0
  29. package/agent-surface/element-reporter.hooks.js +79 -0
  30. package/agent-surface/element-reporter.js +24 -0
  31. package/agent-surface/index.d.ts +16 -0
  32. package/agent-surface/index.d.ts.map +1 -0
  33. package/agent-surface/index.js +15 -0
  34. package/agent-surface/registry.d.ts +48 -0
  35. package/agent-surface/registry.d.ts.map +1 -0
  36. package/agent-surface/registry.js +274 -0
  37. package/agent-surface/types.d.ts +93 -0
  38. package/agent-surface/types.d.ts.map +1 -0
  39. package/agent-surface/types.js +40 -0
  40. package/agent-surface/useAgentElement.d.ts +31 -0
  41. package/agent-surface/useAgentElement.d.ts.map +1 -0
  42. package/agent-surface/useAgentElement.js +96 -0
  43. package/api/android-native-agent-transport.d.ts +26 -1
  44. package/api/android-native-agent-transport.d.ts.map +1 -1
  45. package/api/android-native-agent-transport.js +255 -50
  46. package/api/auth-client.d.ts.map +1 -1
  47. package/api/auth-client.js +61 -0
  48. package/api/browser-contracts.d.ts +222 -0
  49. package/api/browser-contracts.d.ts.map +1 -0
  50. package/api/client-agent.d.ts +83 -11
  51. package/api/client-agent.d.ts.map +1 -1
  52. package/api/client-agent.js +990 -289
  53. package/api/client-approvals.d.ts +16 -0
  54. package/api/client-approvals.d.ts.map +1 -0
  55. package/api/client-approvals.js +4 -0
  56. package/api/client-automations.d.ts +1 -1
  57. package/api/client-background.d.ts +15 -0
  58. package/api/client-background.d.ts.map +1 -0
  59. package/api/client-background.js +10 -0
  60. package/api/client-base.d.ts +69 -9
  61. package/api/client-base.d.ts.map +1 -1
  62. package/api/client-base.js +686 -215
  63. package/api/client-browser-workspace.d.ts +1 -1
  64. package/api/client-browser-workspace.d.ts.map +1 -1
  65. package/api/client-chat.d.ts +93 -6
  66. package/api/client-chat.d.ts.map +1 -1
  67. package/api/client-chat.js +315 -95
  68. package/api/client-cloud.d.ts +140 -11
  69. package/api/client-cloud.d.ts.map +1 -1
  70. package/api/client-cloud.js +488 -55
  71. package/api/client-computeruse.d.ts +1 -1
  72. package/api/client-computeruse.d.ts.map +1 -1
  73. package/api/client-files.d.ts +36 -0
  74. package/api/client-files.d.ts.map +1 -0
  75. package/api/client-files.js +19 -0
  76. package/api/client-local-inference.d.ts +54 -8
  77. package/api/client-local-inference.d.ts.map +1 -1
  78. package/api/client-local-inference.js +80 -6
  79. package/api/client-notifications.d.ts +31 -0
  80. package/api/client-notifications.d.ts.map +1 -0
  81. package/api/client-notifications.js +34 -0
  82. package/api/client-skills.d.ts +110 -127
  83. package/api/client-skills.d.ts.map +1 -1
  84. package/api/client-skills.js +116 -90
  85. package/api/client-transcripts.d.ts +50 -0
  86. package/api/client-transcripts.d.ts.map +1 -0
  87. package/api/client-transcripts.js +31 -0
  88. package/api/client-types-chat.d.ts +240 -5
  89. package/api/client-types-chat.d.ts.map +1 -1
  90. package/api/client-types-cloud.d.ts +321 -188
  91. package/api/client-types-cloud.d.ts.map +1 -1
  92. package/api/client-types-cloud.js +4 -4
  93. package/api/client-types-commands.d.ts +55 -0
  94. package/api/client-types-commands.d.ts.map +1 -0
  95. package/api/client-types-commands.js +7 -0
  96. package/api/client-types-config.d.ts +1034 -20
  97. package/api/client-types-config.d.ts.map +1 -1
  98. package/api/client-types-core.d.ts +109 -156
  99. package/api/client-types-core.d.ts.map +1 -1
  100. package/api/client-types-feed.d.ts +248 -0
  101. package/api/client-types-feed.d.ts.map +1 -0
  102. package/api/client-types-feed.js +2 -0
  103. package/api/client-types.d.ts +8 -8
  104. package/api/client-types.d.ts.map +1 -1
  105. package/api/client-types.js +1 -1
  106. package/api/client-voice-models.d.ts +67 -0
  107. package/api/client-voice-models.d.ts.map +1 -0
  108. package/api/client-voice-models.js +34 -0
  109. package/api/client-voice-profiles.d.ts +153 -0
  110. package/api/client-voice-profiles.d.ts.map +1 -0
  111. package/api/client-voice-profiles.js +261 -0
  112. package/api/client-wallet.d.ts +3 -3
  113. package/api/client-workflow.d.ts +9 -1
  114. package/api/client-workflow.d.ts.map +1 -1
  115. package/api/client-workflow.js +29 -0
  116. package/api/client-xr.d.ts +18 -0
  117. package/api/client-xr.d.ts.map +1 -0
  118. package/api/client-xr.js +4 -0
  119. package/api/client.d.ts +34 -25
  120. package/api/client.d.ts.map +1 -1
  121. package/api/client.js +11 -3
  122. package/api/csrf-client.d.ts.map +1 -1
  123. package/api/csrf-client.js +11 -1
  124. package/api/desktop-http-transport.d.ts +1 -1
  125. package/api/desktop-http-transport.d.ts.map +1 -1
  126. package/api/desktop-http-transport.js +28 -24
  127. package/api/i18n-locale-client.d.ts +15 -0
  128. package/api/i18n-locale-client.d.ts.map +1 -0
  129. package/api/i18n-locale-client.js +36 -0
  130. package/api/index.d.ts +2 -1
  131. package/api/index.d.ts.map +1 -1
  132. package/api/index.js +1 -0
  133. package/api/ios-local-agent-kernel.d.ts +1 -1
  134. package/api/ios-local-agent-kernel.d.ts.map +1 -1
  135. package/api/ios-local-agent-kernel.js +914 -134
  136. package/api/ios-local-agent-transport.d.ts +33 -1
  137. package/api/ios-local-agent-transport.d.ts.map +1 -1
  138. package/api/ios-local-agent-transport.js +558 -4
  139. package/api/ittp-agent-transport.d.ts +9 -2
  140. package/api/ittp-agent-transport.d.ts.map +1 -1
  141. package/api/ittp-agent-transport.js +11 -1
  142. package/api/native-agent-stream.d.ts +57 -0
  143. package/api/native-agent-stream.d.ts.map +1 -0
  144. package/api/native-agent-stream.js +126 -0
  145. package/api/native-cloud-http-transport.d.ts +1 -1
  146. package/api/native-cloud-http-transport.d.ts.map +1 -1
  147. package/api/native-cloud-http-transport.js +84 -28
  148. package/api/request-timeout.d.ts.map +1 -1
  149. package/api/request-timeout.js +47 -1
  150. package/api/runtime-mode-client.d.ts.map +1 -1
  151. package/api/transport.d.ts +14 -0
  152. package/api/transport.d.ts.map +1 -1
  153. package/api/transport.js +49 -0
  154. package/app-navigate-view.d.ts +57 -0
  155. package/app-navigate-view.d.ts.map +1 -0
  156. package/app-navigate-view.js +188 -0
  157. package/app-shell-components.d.ts +26 -37
  158. package/app-shell-components.d.ts.map +1 -1
  159. package/app-shell-components.js +14 -13
  160. package/app-shell-registry.d.ts +33 -5
  161. package/app-shell-registry.d.ts.map +1 -1
  162. package/app-shell-registry.js +17 -1
  163. package/backgrounds/AppBackground.d.ts +16 -0
  164. package/backgrounds/AppBackground.d.ts.map +1 -0
  165. package/backgrounds/AppBackground.js +30 -0
  166. package/backgrounds/BackgroundHost.d.ts +14 -0
  167. package/backgrounds/BackgroundHost.d.ts.map +1 -0
  168. package/backgrounds/BackgroundHost.js +20 -0
  169. package/backgrounds/ImageBackground.d.ts +12 -0
  170. package/backgrounds/ImageBackground.d.ts.map +1 -0
  171. package/backgrounds/ImageBackground.js +15 -0
  172. package/backgrounds/ShaderBackground.d.ts +12 -0
  173. package/backgrounds/ShaderBackground.d.ts.map +1 -0
  174. package/backgrounds/ShaderBackground.js +39 -0
  175. package/backgrounds/index.d.ts +8 -0
  176. package/backgrounds/index.d.ts.map +1 -0
  177. package/backgrounds/index.js +6 -0
  178. package/backgrounds/types.d.ts +13 -0
  179. package/backgrounds/types.d.ts.map +1 -0
  180. package/backgrounds/types.js +12 -0
  181. package/backgrounds/useBackgroundApplyChannel.d.ts +21 -0
  182. package/backgrounds/useBackgroundApplyChannel.d.ts.map +1 -0
  183. package/backgrounds/useBackgroundApplyChannel.js +53 -0
  184. package/bridge/capacitor-bridge.d.ts +1 -1
  185. package/bridge/capacitor-bridge.d.ts.map +1 -1
  186. package/bridge/capacitor-bridge.js +18 -2
  187. package/bridge/electrobun-rpc.d.ts +115 -0
  188. package/bridge/electrobun-rpc.d.ts.map +1 -1
  189. package/bridge/electrobun-rpc.js +128 -1
  190. package/bridge/electrobun-runtime.d.ts.map +1 -1
  191. package/bridge/electrobun-runtime.js +33 -5
  192. package/bridge/gateway-discovery.d.ts.map +1 -1
  193. package/bridge/gateway-discovery.js +3 -1
  194. package/bridge/index.d.ts +6 -6
  195. package/bridge/native-notifications.d.ts +40 -0
  196. package/bridge/native-notifications.d.ts.map +1 -0
  197. package/bridge/native-notifications.js +171 -0
  198. package/bridge/native-plugins.d.ts +250 -5
  199. package/bridge/native-plugins.d.ts.map +1 -1
  200. package/bridge/native-plugins.js +9 -0
  201. package/bridge/plugin-bridge.d.ts +2 -2
  202. package/bridge/plugin-bridge.d.ts.map +1 -1
  203. package/bridge/plugin-bridge.js +2 -10
  204. package/bridge/storage-bridge.d.ts.map +1 -1
  205. package/bridge/storage-bridge.js +163 -32
  206. package/browser.d.ts +132 -64
  207. package/browser.d.ts.map +1 -1
  208. package/browser.js +95 -18
  209. package/build-variant.d.ts +1 -1
  210. package/build-variant.js +3 -3
  211. package/cache-telemetry.d.ts +18 -0
  212. package/cache-telemetry.d.ts.map +1 -0
  213. package/cache-telemetry.js +26 -0
  214. package/character/character-draft-helpers.d.ts +1 -1
  215. package/character-catalog.d.ts +1 -1
  216. package/chat/coding-agent-session-state.d.ts +1 -1
  217. package/chat/index.d.ts +24 -4
  218. package/chat/index.d.ts.map +1 -1
  219. package/chat/index.js +59 -7
  220. package/chat/slash-menu.d.ts +140 -0
  221. package/chat/slash-menu.d.ts.map +1 -0
  222. package/chat/slash-menu.js +479 -0
  223. package/chat/useSlashCommandController.d.ts +64 -0
  224. package/chat/useSlashCommandController.d.ts.map +1 -0
  225. package/chat/useSlashCommandController.js +248 -0
  226. package/cloud/account-security/AccountRoute.d.ts +22 -0
  227. package/cloud/account-security/AccountRoute.d.ts.map +1 -0
  228. package/cloud/account-security/AccountRoute.js +50 -0
  229. package/cloud/account-security/AccountSection.d.ts +12 -0
  230. package/cloud/account-security/AccountSection.d.ts.map +1 -0
  231. package/cloud/account-security/AccountSection.js +16 -0
  232. package/cloud/account-security/PermissionsRoute.d.ts +21 -0
  233. package/cloud/account-security/PermissionsRoute.d.ts.map +1 -0
  234. package/cloud/account-security/PermissionsRoute.js +33 -0
  235. package/cloud/account-security/PermissionsSection.d.ts +11 -0
  236. package/cloud/account-security/PermissionsSection.d.ts.map +1 -0
  237. package/cloud/account-security/PermissionsSection.js +15 -0
  238. package/cloud/account-security/SecurityRoute.d.ts +20 -0
  239. package/cloud/account-security/SecurityRoute.d.ts.map +1 -0
  240. package/cloud/account-security/SecurityRoute.js +42 -0
  241. package/cloud/account-security/SecuritySection.d.ts +10 -0
  242. package/cloud/account-security/SecuritySection.d.ts.map +1 -0
  243. package/cloud/account-security/SecuritySection.js +14 -0
  244. package/cloud/account-security/components/AuditEventList.d.ts +20 -0
  245. package/cloud/account-security/components/AuditEventList.d.ts.map +1 -0
  246. package/cloud/account-security/components/AuditEventList.js +30 -0
  247. package/cloud/account-security/components/account-details.d.ts +12 -0
  248. package/cloud/account-security/components/account-details.d.ts.map +1 -0
  249. package/cloud/account-security/components/account-details.js +54 -0
  250. package/cloud/account-security/components/account-page-client.d.ts +16 -0
  251. package/cloud/account-security/components/account-page-client.d.ts.map +1 -0
  252. package/cloud/account-security/components/account-page-client.js +26 -0
  253. package/cloud/account-security/components/active-sessions-panel.d.ts +10 -0
  254. package/cloud/account-security/components/active-sessions-panel.d.ts.map +1 -0
  255. package/cloud/account-security/components/active-sessions-panel.js +93 -0
  256. package/cloud/account-security/components/api-keys-link.d.ts +8 -0
  257. package/cloud/account-security/components/api-keys-link.d.ts.map +1 -0
  258. package/cloud/account-security/components/api-keys-link.js +17 -0
  259. package/cloud/account-security/components/incident-report-panel.d.ts +7 -0
  260. package/cloud/account-security/components/incident-report-panel.d.ts.map +1 -0
  261. package/cloud/account-security/components/incident-report-panel.js +65 -0
  262. package/cloud/account-security/components/mfa-panel.d.ts +11 -0
  263. package/cloud/account-security/components/mfa-panel.d.ts.map +1 -0
  264. package/cloud/account-security/components/mfa-panel.js +66 -0
  265. package/cloud/account-security/components/organization-info.d.ts +13 -0
  266. package/cloud/account-security/components/organization-info.d.ts.map +1 -0
  267. package/cloud/account-security/components/organization-info.js +46 -0
  268. package/cloud/account-security/components/plugin-permissions-page-client.d.ts +10 -0
  269. package/cloud/account-security/components/plugin-permissions-page-client.d.ts.map +1 -0
  270. package/cloud/account-security/components/plugin-permissions-page-client.js +72 -0
  271. package/cloud/account-security/components/privacy-panel.d.ts +12 -0
  272. package/cloud/account-security/components/privacy-panel.d.ts.map +1 -0
  273. package/cloud/account-security/components/privacy-panel.js +161 -0
  274. package/cloud/account-security/components/profile-form.d.ts +21 -0
  275. package/cloud/account-security/components/profile-form.d.ts.map +1 -0
  276. package/cloud/account-security/components/profile-form.js +255 -0
  277. package/cloud/account-security/components/recent-audit-events.d.ts +7 -0
  278. package/cloud/account-security/components/recent-audit-events.d.ts.map +1 -0
  279. package/cloud/account-security/components/recent-audit-events.js +48 -0
  280. package/cloud/account-security/data/audit-client.d.ts +33 -0
  281. package/cloud/account-security/data/audit-client.d.ts.map +1 -0
  282. package/cloud/account-security/data/audit-client.js +37 -0
  283. package/cloud/account-security/data/consent-store.d.ts +11 -0
  284. package/cloud/account-security/data/consent-store.d.ts.map +1 -0
  285. package/cloud/account-security/data/consent-store.js +45 -0
  286. package/cloud/account-security/data/use-session-auth.d.ts +39 -0
  287. package/cloud/account-security/data/use-session-auth.d.ts.map +1 -0
  288. package/cloud/account-security/data/use-session-auth.js +95 -0
  289. package/cloud/account-security/data/user.d.ts +238 -0
  290. package/cloud/account-security/data/user.d.ts.map +1 -0
  291. package/cloud/account-security/data/user.js +77 -0
  292. package/cloud/account-security/index.d.ts +44 -0
  293. package/cloud/account-security/index.d.ts.map +1 -0
  294. package/cloud/account-security/index.js +66 -0
  295. package/cloud/admin/AdminGate.d.ts +24 -0
  296. package/cloud/admin/AdminGate.d.ts.map +1 -0
  297. package/cloud/admin/AdminGate.js +84 -0
  298. package/cloud/admin/ModerationPage.d.ts +16 -0
  299. package/cloud/admin/ModerationPage.d.ts.map +1 -0
  300. package/cloud/admin/ModerationPage.js +234 -0
  301. package/cloud/admin/ModerationRoute.d.ts +3 -0
  302. package/cloud/admin/ModerationRoute.d.ts.map +1 -0
  303. package/cloud/admin/ModerationRoute.js +7 -0
  304. package/cloud/admin/RedemptionsPage.d.ts +21 -0
  305. package/cloud/admin/RedemptionsPage.d.ts.map +1 -0
  306. package/cloud/admin/RedemptionsPage.js +322 -0
  307. package/cloud/admin/RedemptionsRoute.d.ts +3 -0
  308. package/cloud/admin/RedemptionsRoute.d.ts.map +1 -0
  309. package/cloud/admin/RedemptionsRoute.js +7 -0
  310. package/cloud/admin/RpcStatusPage.d.ts +12 -0
  311. package/cloud/admin/RpcStatusPage.d.ts.map +1 -0
  312. package/cloud/admin/RpcStatusPage.js +54 -0
  313. package/cloud/admin/RpcStatusRoute.d.ts +3 -0
  314. package/cloud/admin/RpcStatusRoute.d.ts.map +1 -0
  315. package/cloud/admin/RpcStatusRoute.js +7 -0
  316. package/cloud/admin/data/use-admin-gate.d.ts +48 -0
  317. package/cloud/admin/data/use-admin-gate.d.ts.map +1 -0
  318. package/cloud/admin/data/use-admin-gate.js +93 -0
  319. package/cloud/admin/index.d.ts +48 -0
  320. package/cloud/admin/index.d.ts.map +1 -0
  321. package/cloud/admin/index.js +69 -0
  322. package/cloud/analytics/Page.d.ts +17 -0
  323. package/cloud/analytics/Page.d.ts.map +1 -0
  324. package/cloud/analytics/Page.js +46 -0
  325. package/cloud/analytics/_components/analytics-page-client.d.ts +18 -0
  326. package/cloud/analytics/_components/analytics-page-client.d.ts.map +1 -0
  327. package/cloud/analytics/_components/analytics-page-client.js +166 -0
  328. package/cloud/analytics/_components/filters.d.ts +2 -0
  329. package/cloud/analytics/_components/filters.d.ts.map +1 -0
  330. package/cloud/analytics/_components/filters.js +101 -0
  331. package/cloud/analytics/_components/model-breakdown.d.ts +12 -0
  332. package/cloud/analytics/_components/model-breakdown.d.ts.map +1 -0
  333. package/cloud/analytics/_components/model-breakdown.js +69 -0
  334. package/cloud/analytics/_components/projections-chart.d.ts +13 -0
  335. package/cloud/analytics/_components/projections-chart.d.ts.map +1 -0
  336. package/cloud/analytics/_components/projections-chart.js +123 -0
  337. package/cloud/analytics/_components/provider-breakdown.d.ts +12 -0
  338. package/cloud/analytics/_components/provider-breakdown.d.ts.map +1 -0
  339. package/cloud/analytics/_components/provider-breakdown.js +48 -0
  340. package/cloud/analytics/_components/usage-chart.d.ts +18 -0
  341. package/cloud/analytics/_components/usage-chart.d.ts.map +1 -0
  342. package/cloud/analytics/_components/usage-chart.js +117 -0
  343. package/cloud/analytics/index.d.ts +17 -0
  344. package/cloud/analytics/index.d.ts.map +1 -0
  345. package/cloud/analytics/index.js +23 -0
  346. package/cloud/analytics/lib/analytics-data.d.ts +41 -0
  347. package/cloud/analytics/lib/analytics-data.d.ts.map +1 -0
  348. package/cloud/analytics/lib/analytics-data.js +55 -0
  349. package/cloud/analytics/lib/auth-query.d.ts +23 -0
  350. package/cloud/analytics/lib/auth-query.d.ts.map +1 -0
  351. package/cloud/analytics/lib/auth-query.js +30 -0
  352. package/cloud/analytics/lib/format.d.ts +14 -0
  353. package/cloud/analytics/lib/format.d.ts.map +1 -0
  354. package/cloud/analytics/lib/format.js +15 -0
  355. package/cloud/analytics/lib/time-range.d.ts +14 -0
  356. package/cloud/analytics/lib/time-range.d.ts.map +1 -0
  357. package/cloud/analytics/lib/time-range.js +28 -0
  358. package/cloud/api-explorer/ApiExplorerPage.d.ts +23 -0
  359. package/cloud/api-explorer/ApiExplorerPage.d.ts.map +1 -0
  360. package/cloud/api-explorer/ApiExplorerPage.js +216 -0
  361. package/cloud/api-explorer/api-tester.d.ts +22 -0
  362. package/cloud/api-explorer/api-tester.d.ts.map +1 -0
  363. package/cloud/api-explorer/api-tester.js +440 -0
  364. package/cloud/api-explorer/auth-manager.d.ts +19 -0
  365. package/cloud/api-explorer/auth-manager.d.ts.map +1 -0
  366. package/cloud/api-explorer/auth-manager.js +49 -0
  367. package/cloud/api-explorer/index.d.ts +44 -0
  368. package/cloud/api-explorer/index.d.ts.map +1 -0
  369. package/cloud/api-explorer/index.js +53 -0
  370. package/cloud/api-explorer/toast.d.ts +10 -0
  371. package/cloud/api-explorer/toast.d.ts.map +1 -0
  372. package/cloud/api-explorer/toast.js +16 -0
  373. package/cloud/api-explorer/use-explorer-api-key.d.ts +30 -0
  374. package/cloud/api-explorer/use-explorer-api-key.d.ts.map +1 -0
  375. package/cloud/api-explorer/use-explorer-api-key.js +57 -0
  376. package/cloud/api-explorer/use-session-auth.d.ts +44 -0
  377. package/cloud/api-explorer/use-session-auth.d.ts.map +1 -0
  378. package/cloud/api-explorer/use-session-auth.js +152 -0
  379. package/cloud/api-keys/ApiKeysRoute.d.ts +20 -0
  380. package/cloud/api-keys/ApiKeysRoute.d.ts.map +1 -0
  381. package/cloud/api-keys/ApiKeysRoute.js +84 -0
  382. package/cloud/api-keys/ApiKeysSection.d.ts +15 -0
  383. package/cloud/api-keys/ApiKeysSection.d.ts.map +1 -0
  384. package/cloud/api-keys/ApiKeysSection.js +18 -0
  385. package/cloud/api-keys/ApiKeysView.d.ts +27 -0
  386. package/cloud/api-keys/ApiKeysView.d.ts.map +1 -0
  387. package/cloud/api-keys/ApiKeysView.js +312 -0
  388. package/cloud/api-keys/auth-gate.d.ts +28 -0
  389. package/cloud/api-keys/auth-gate.d.ts.map +1 -0
  390. package/cloud/api-keys/auth-gate.js +33 -0
  391. package/cloud/api-keys/copy-api-key.d.ts +31 -0
  392. package/cloud/api-keys/copy-api-key.d.ts.map +1 -0
  393. package/cloud/api-keys/copy-api-key.js +35 -0
  394. package/cloud/api-keys/index.d.ts +42 -0
  395. package/cloud/api-keys/index.d.ts.map +1 -0
  396. package/cloud/api-keys/index.js +50 -0
  397. package/cloud/api-keys/use-api-keys.d.ts +25 -0
  398. package/cloud/api-keys/use-api-keys.d.ts.map +1 -0
  399. package/cloud/api-keys/use-api-keys.js +29 -0
  400. package/cloud/applications/ApplicationDetailPage.d.ts +10 -0
  401. package/cloud/applications/ApplicationDetailPage.d.ts.map +1 -0
  402. package/cloud/applications/ApplicationDetailPage.js +71 -0
  403. package/cloud/applications/ApplicationsPage.d.ts +12 -0
  404. package/cloud/applications/ApplicationsPage.d.ts.map +1 -0
  405. package/cloud/applications/ApplicationsPage.js +43 -0
  406. package/cloud/applications/components/app-analytics.d.ts +12 -0
  407. package/cloud/applications/components/app-analytics.d.ts.map +1 -0
  408. package/cloud/applications/components/app-analytics.js +199 -0
  409. package/cloud/applications/components/app-details-tabs.d.ts +14 -0
  410. package/cloud/applications/components/app-details-tabs.d.ts.map +1 -0
  411. package/cloud/applications/components/app-details-tabs.js +81 -0
  412. package/cloud/applications/components/app-domains.d.ts +13 -0
  413. package/cloud/applications/components/app-domains.d.ts.map +1 -0
  414. package/cloud/applications/components/app-domains.js +351 -0
  415. package/cloud/applications/components/app-earnings-dashboard.d.ts +11 -0
  416. package/cloud/applications/components/app-earnings-dashboard.d.ts.map +1 -0
  417. package/cloud/applications/components/app-earnings-dashboard.js +130 -0
  418. package/cloud/applications/components/app-monetization-settings.d.ts +12 -0
  419. package/cloud/applications/components/app-monetization-settings.d.ts.map +1 -0
  420. package/cloud/applications/components/app-monetization-settings.js +201 -0
  421. package/cloud/applications/components/app-overview.d.ts +14 -0
  422. package/cloud/applications/components/app-overview.d.ts.map +1 -0
  423. package/cloud/applications/components/app-overview.js +270 -0
  424. package/cloud/applications/components/app-promote.d.ts +22 -0
  425. package/cloud/applications/components/app-promote.d.ts.map +1 -0
  426. package/cloud/applications/components/app-promote.js +106 -0
  427. package/cloud/applications/components/app-settings.d.ts +15 -0
  428. package/cloud/applications/components/app-settings.d.ts.map +1 -0
  429. package/cloud/applications/components/app-settings.js +193 -0
  430. package/cloud/applications/components/app-users.d.ts +12 -0
  431. package/cloud/applications/components/app-users.d.ts.map +1 -0
  432. package/cloud/applications/components/app-users.js +82 -0
  433. package/cloud/applications/components/apps-table.d.ts +15 -0
  434. package/cloud/applications/components/apps-table.d.ts.map +1 -0
  435. package/cloud/applications/components/apps-table.js +74 -0
  436. package/cloud/applications/components/create-app-button.d.ts +6 -0
  437. package/cloud/applications/components/create-app-button.d.ts.map +1 -0
  438. package/cloud/applications/components/create-app-button.js +15 -0
  439. package/cloud/applications/components/create-app-dialog.d.ts +20 -0
  440. package/cloud/applications/components/create-app-dialog.d.ts.map +1 -0
  441. package/cloud/applications/components/create-app-dialog.js +157 -0
  442. package/cloud/applications/components/single-app-page-wrapper.d.ts +12 -0
  443. package/cloud/applications/components/single-app-page-wrapper.d.ts.map +1 -0
  444. package/cloud/applications/components/single-app-page-wrapper.js +5 -0
  445. package/cloud/applications/components/withdraw-dialog.d.ts +20 -0
  446. package/cloud/applications/components/withdraw-dialog.d.ts.map +1 -0
  447. package/cloud/applications/components/withdraw-dialog.js +60 -0
  448. package/cloud/applications/index.d.ts +39 -0
  449. package/cloud/applications/index.d.ts.map +1 -0
  450. package/cloud/applications/index.js +54 -0
  451. package/cloud/applications/lib/apps.d.ts +78 -0
  452. package/cloud/applications/lib/apps.d.ts.map +1 -0
  453. package/cloud/applications/lib/apps.js +96 -0
  454. package/cloud/applications/lib/one-time-app-api-key.d.ts +12 -0
  455. package/cloud/applications/lib/one-time-app-api-key.d.ts.map +1 -0
  456. package/cloud/applications/lib/one-time-app-api-key.js +22 -0
  457. package/cloud/applications/lib/utils.d.ts +7 -0
  458. package/cloud/applications/lib/utils.d.ts.map +1 -0
  459. package/cloud/applications/lib/utils.js +9 -0
  460. package/cloud/approvals/ApprovalsRoute.d.ts +27 -0
  461. package/cloud/approvals/ApprovalsRoute.d.ts.map +1 -0
  462. package/cloud/approvals/ApprovalsRoute.js +45 -0
  463. package/cloud/approvals/components/approvals-tab.d.ts +14 -0
  464. package/cloud/approvals/components/approvals-tab.d.ts.map +1 -0
  465. package/cloud/approvals/components/approvals-tab.js +98 -0
  466. package/cloud/approvals/components/ballots-tab.d.ts +8 -0
  467. package/cloud/approvals/components/ballots-tab.d.ts.map +1 -0
  468. package/cloud/approvals/components/ballots-tab.js +86 -0
  469. package/cloud/approvals/components/sensitive-tab.d.ts +13 -0
  470. package/cloud/approvals/components/sensitive-tab.d.ts.map +1 -0
  471. package/cloud/approvals/components/sensitive-tab.js +50 -0
  472. package/cloud/approvals/components/status-badge.d.ts +13 -0
  473. package/cloud/approvals/components/status-badge.d.ts.map +1 -0
  474. package/cloud/approvals/components/status-badge.js +49 -0
  475. package/cloud/approvals/index.d.ts +32 -0
  476. package/cloud/approvals/index.d.ts.map +1 -0
  477. package/cloud/approvals/index.js +41 -0
  478. package/cloud/approvals/lib/approvals.d.ts +164 -0
  479. package/cloud/approvals/lib/approvals.d.ts.map +1 -0
  480. package/cloud/approvals/lib/approvals.js +186 -0
  481. package/cloud/approvals/lib/wallet-sign.d.ts +33 -0
  482. package/cloud/approvals/lib/wallet-sign.d.ts.map +1 -0
  483. package/cloud/approvals/lib/wallet-sign.js +79 -0
  484. package/cloud/billing/BillingSection.d.ts +18 -0
  485. package/cloud/billing/BillingSection.d.ts.map +1 -0
  486. package/cloud/billing/BillingSection.js +52 -0
  487. package/cloud/billing/BillingSuccessPage.d.ts +13 -0
  488. package/cloud/billing/BillingSuccessPage.d.ts.map +1 -0
  489. package/cloud/billing/BillingSuccessPage.js +78 -0
  490. package/cloud/billing/InvoiceDetailPage.d.ts +7 -0
  491. package/cloud/billing/InvoiceDetailPage.d.ts.map +1 -0
  492. package/cloud/billing/InvoiceDetailPage.js +38 -0
  493. package/cloud/billing/components/auto-top-up-card.d.ts +12 -0
  494. package/cloud/billing/components/auto-top-up-card.d.ts.map +1 -0
  495. package/cloud/billing/components/auto-top-up-card.js +137 -0
  496. package/cloud/billing/components/billing-tab.d.ts +18 -0
  497. package/cloud/billing/components/billing-tab.d.ts.map +1 -0
  498. package/cloud/billing/components/billing-tab.js +222 -0
  499. package/cloud/billing/components/direct-crypto-credit-card.d.ts +14 -0
  500. package/cloud/billing/components/direct-crypto-credit-card.d.ts.map +1 -0
  501. package/cloud/billing/components/direct-crypto-credit-card.js +329 -0
  502. package/cloud/billing/components/invoice-detail-client.d.ts +12 -0
  503. package/cloud/billing/components/invoice-detail-client.d.ts.map +1 -0
  504. package/cloud/billing/components/invoice-detail-client.js +81 -0
  505. package/cloud/billing/components/numeric-field.d.ts +13 -0
  506. package/cloud/billing/components/numeric-field.d.ts.map +1 -0
  507. package/cloud/billing/components/numeric-field.js +7 -0
  508. package/cloud/billing/components/pay-as-you-go-card.d.ts +11 -0
  509. package/cloud/billing/components/pay-as-you-go-card.d.ts.map +1 -0
  510. package/cloud/billing/components/pay-as-you-go-card.js +50 -0
  511. package/cloud/billing/components/payment-waiting-overlay.d.ts +36 -0
  512. package/cloud/billing/components/payment-waiting-overlay.d.ts.map +1 -0
  513. package/cloud/billing/components/payment-waiting-overlay.js +138 -0
  514. package/cloud/billing/components/success-client.d.ts +11 -0
  515. package/cloud/billing/components/success-client.d.ts.map +1 -0
  516. package/cloud/billing/components/success-client.js +64 -0
  517. package/cloud/billing/data/billing-data.d.ts +211 -0
  518. package/cloud/billing/data/billing-data.d.ts.map +1 -0
  519. package/cloud/billing/data/billing-data.js +120 -0
  520. package/cloud/billing/index.d.ts +26 -0
  521. package/cloud/billing/index.d.ts.map +1 -0
  522. package/cloud/billing/index.js +28 -0
  523. package/cloud/billing/routes.d.ts +16 -0
  524. package/cloud/billing/routes.d.ts.map +1 -0
  525. package/cloud/billing/routes.js +34 -0
  526. package/cloud/billing/types.d.ts +142 -0
  527. package/cloud/billing/types.d.ts.map +1 -0
  528. package/cloud/billing/types.js +12 -0
  529. package/cloud/billing/use-session-auth.d.ts +43 -0
  530. package/cloud/billing/use-session-auth.d.ts.map +1 -0
  531. package/cloud/billing/use-session-auth.js +138 -0
  532. package/cloud/billing/wallet/ConditionalWalletProviders.d.ts +18 -0
  533. package/cloud/billing/wallet/ConditionalWalletProviders.d.ts.map +1 -0
  534. package/cloud/billing/wallet/ConditionalWalletProviders.js +79 -0
  535. package/cloud/billing/wallet/steward-wallet-providers.d.ts +17 -0
  536. package/cloud/billing/wallet/steward-wallet-providers.d.ts.map +1 -0
  537. package/cloud/billing/wallet/steward-wallet-providers.js +59 -0
  538. package/cloud/connectors/CloudConnectorsSection.d.ts +12 -0
  539. package/cloud/connectors/CloudConnectorsSection.d.ts.map +1 -0
  540. package/cloud/connectors/CloudConnectorsSection.js +33 -0
  541. package/cloud/connectors/blooio-connection.d.ts +10 -0
  542. package/cloud/connectors/blooio-connection.d.ts.map +1 -0
  543. package/cloud/connectors/blooio-connection.js +230 -0
  544. package/cloud/connectors/discord-gateway-connection.d.ts +11 -0
  545. package/cloud/connectors/discord-gateway-connection.d.ts.map +1 -0
  546. package/cloud/connectors/discord-gateway-connection.js +480 -0
  547. package/cloud/connectors/google-connection.d.ts +10 -0
  548. package/cloud/connectors/google-connection.d.ts.map +1 -0
  549. package/cloud/connectors/google-connection.js +109 -0
  550. package/cloud/connectors/index.d.ts +50 -0
  551. package/cloud/connectors/index.d.ts.map +1 -0
  552. package/cloud/connectors/index.js +74 -0
  553. package/cloud/connectors/microsoft-connection.d.ts +10 -0
  554. package/cloud/connectors/microsoft-connection.d.ts.map +1 -0
  555. package/cloud/connectors/microsoft-connection.js +133 -0
  556. package/cloud/connectors/oauth-connection.d.ts +52 -0
  557. package/cloud/connectors/oauth-connection.d.ts.map +1 -0
  558. package/cloud/connectors/oauth-connection.js +114 -0
  559. package/cloud/connectors/telegram-connection.d.ts +11 -0
  560. package/cloud/connectors/telegram-connection.d.ts.map +1 -0
  561. package/cloud/connectors/telegram-connection.js +158 -0
  562. package/cloud/connectors/twilio-connection.d.ts +10 -0
  563. package/cloud/connectors/twilio-connection.d.ts.map +1 -0
  564. package/cloud/connectors/twilio-connection.js +189 -0
  565. package/cloud/connectors/use-connection-status.d.ts +13 -0
  566. package/cloud/connectors/use-connection-status.d.ts.map +1 -0
  567. package/cloud/connectors/use-connection-status.js +45 -0
  568. package/cloud/connectors/whatsapp-connection.d.ts +11 -0
  569. package/cloud/connectors/whatsapp-connection.d.ts.map +1 -0
  570. package/cloud/connectors/whatsapp-connection.js +223 -0
  571. package/cloud/documents/DocumentsRoute.d.ts +21 -0
  572. package/cloud/documents/DocumentsRoute.d.ts.map +1 -0
  573. package/cloud/documents/DocumentsRoute.js +45 -0
  574. package/cloud/documents/DocumentsSection.d.ts +15 -0
  575. package/cloud/documents/DocumentsSection.d.ts.map +1 -0
  576. package/cloud/documents/DocumentsSection.js +18 -0
  577. package/cloud/documents/components/document-list.d.ts +19 -0
  578. package/cloud/documents/components/document-list.d.ts.map +1 -0
  579. package/cloud/documents/components/document-list.js +75 -0
  580. package/cloud/documents/components/document-query.d.ts +15 -0
  581. package/cloud/documents/components/document-query.d.ts.map +1 -0
  582. package/cloud/documents/components/document-query.js +92 -0
  583. package/cloud/documents/components/document-upload.d.ts +16 -0
  584. package/cloud/documents/components/document-upload.d.ts.map +1 -0
  585. package/cloud/documents/components/document-upload.js +180 -0
  586. package/cloud/documents/components/documents-page-client.d.ts +20 -0
  587. package/cloud/documents/components/documents-page-client.d.ts.map +1 -0
  588. package/cloud/documents/components/documents-page-client.js +80 -0
  589. package/cloud/documents/index.d.ts +37 -0
  590. package/cloud/documents/index.d.ts.map +1 -0
  591. package/cloud/documents/index.js +45 -0
  592. package/cloud/documents/lib/agents.d.ts +23 -0
  593. package/cloud/documents/lib/agents.d.ts.map +1 -0
  594. package/cloud/documents/lib/agents.js +26 -0
  595. package/cloud/documents/lib/documents.d.ts +54 -0
  596. package/cloud/documents/lib/documents.d.ts.map +1 -0
  597. package/cloud/documents/lib/documents.js +118 -0
  598. package/cloud/handoff/__integration__/two-agent-handoff.d.mts +2 -0
  599. package/cloud/handoff/__integration__/two-agent-handoff.d.mts.map +1 -0
  600. package/cloud/handoff/__integration__/two-agent-handoff.mjs +114 -0
  601. package/cloud/handoff/cloud-handoff-supervisor.d.ts +47 -0
  602. package/cloud/handoff/cloud-handoff-supervisor.d.ts.map +1 -0
  603. package/cloud/handoff/cloud-handoff-supervisor.js +67 -0
  604. package/cloud/handoff/conversation-handoff.d.ts +73 -0
  605. package/cloud/handoff/conversation-handoff.d.ts.map +1 -0
  606. package/cloud/handoff/conversation-handoff.js +98 -0
  607. package/cloud/handoff/run-cloud-agent-handoff.d.ts +18 -0
  608. package/cloud/handoff/run-cloud-agent-handoff.d.ts.map +1 -0
  609. package/cloud/handoff/run-cloud-agent-handoff.js +51 -0
  610. package/cloud/index.d.ts +14 -0
  611. package/cloud/index.d.ts.map +1 -0
  612. package/cloud/index.js +13 -0
  613. package/cloud/instances/AgentChatPage.d.ts +13 -0
  614. package/cloud/instances/AgentChatPage.d.ts.map +1 -0
  615. package/cloud/instances/AgentChatPage.js +217 -0
  616. package/cloud/instances/AgentDetailPage.d.ts +6 -0
  617. package/cloud/instances/AgentDetailPage.d.ts.map +1 -0
  618. package/cloud/instances/AgentDetailPage.js +169 -0
  619. package/cloud/instances/AgentsPage.d.ts +6 -0
  620. package/cloud/instances/AgentsPage.d.ts.map +1 -0
  621. package/cloud/instances/AgentsPage.js +50 -0
  622. package/cloud/instances/MyAgentsPage.d.ts +7 -0
  623. package/cloud/instances/MyAgentsPage.d.ts.map +1 -0
  624. package/cloud/instances/MyAgentsPage.js +22 -0
  625. package/cloud/instances/components/agent-actions.d.ts +10 -0
  626. package/cloud/instances/components/agent-actions.d.ts.map +1 -0
  627. package/cloud/instances/components/agent-actions.js +231 -0
  628. package/cloud/instances/components/agent-card.d.ts +37 -0
  629. package/cloud/instances/components/agent-card.d.ts.map +1 -0
  630. package/cloud/instances/components/agent-card.js +291 -0
  631. package/cloud/instances/components/agent-cost-badge.d.ts +10 -0
  632. package/cloud/instances/components/agent-cost-badge.d.ts.map +1 -0
  633. package/cloud/instances/components/agent-cost-badge.js +25 -0
  634. package/cloud/instances/components/character-filters.d.ts +23 -0
  635. package/cloud/instances/components/character-filters.d.ts.map +1 -0
  636. package/cloud/instances/components/character-filters.js +36 -0
  637. package/cloud/instances/components/character-library-grid.d.ts +18 -0
  638. package/cloud/instances/components/character-library-grid.d.ts.map +1 -0
  639. package/cloud/instances/components/character-library-grid.js +17 -0
  640. package/cloud/instances/components/create-eliza-agent-dialog.d.ts +10 -0
  641. package/cloud/instances/components/create-eliza-agent-dialog.d.ts.map +1 -0
  642. package/cloud/instances/components/create-eliza-agent-dialog.js +376 -0
  643. package/cloud/instances/components/docker-logs-viewer.d.ts +8 -0
  644. package/cloud/instances/components/docker-logs-viewer.d.ts.map +1 -0
  645. package/cloud/instances/components/docker-logs-viewer.js +108 -0
  646. package/cloud/instances/components/eliza-agent-backups-panel.d.ts +8 -0
  647. package/cloud/instances/components/eliza-agent-backups-panel.d.ts.map +1 -0
  648. package/cloud/instances/components/eliza-agent-backups-panel.js +112 -0
  649. package/cloud/instances/components/eliza-agent-logs-viewer.d.ts +9 -0
  650. package/cloud/instances/components/eliza-agent-logs-viewer.d.ts.map +1 -0
  651. package/cloud/instances/components/eliza-agent-logs-viewer.js +180 -0
  652. package/cloud/instances/components/eliza-agent-pricing-banner.d.ts +13 -0
  653. package/cloud/instances/components/eliza-agent-pricing-banner.d.ts.map +1 -0
  654. package/cloud/instances/components/eliza-agent-pricing-banner.js +47 -0
  655. package/cloud/instances/components/eliza-agent-tabs.d.ts +8 -0
  656. package/cloud/instances/components/eliza-agent-tabs.d.ts.map +1 -0
  657. package/cloud/instances/components/eliza-agent-tabs.js +27 -0
  658. package/cloud/instances/components/eliza-agents-table.d.ts +25 -0
  659. package/cloud/instances/components/eliza-agents-table.d.ts.map +1 -0
  660. package/cloud/instances/components/eliza-agents-table.js +536 -0
  661. package/cloud/instances/components/eliza-connect-button.d.ts +6 -0
  662. package/cloud/instances/components/eliza-connect-button.d.ts.map +1 -0
  663. package/cloud/instances/components/eliza-connect-button.js +10 -0
  664. package/cloud/instances/components/eliza-policies-section.d.ts +6 -0
  665. package/cloud/instances/components/eliza-policies-section.d.ts.map +1 -0
  666. package/cloud/instances/components/eliza-policies-section.js +71 -0
  667. package/cloud/instances/components/eliza-transactions-section.d.ts +6 -0
  668. package/cloud/instances/components/eliza-transactions-section.d.ts.map +1 -0
  669. package/cloud/instances/components/eliza-transactions-section.js +147 -0
  670. package/cloud/instances/components/eliza-wallet-section.d.ts +6 -0
  671. package/cloud/instances/components/eliza-wallet-section.d.ts.map +1 -0
  672. package/cloud/instances/components/eliza-wallet-section.js +125 -0
  673. package/cloud/instances/components/empty-state.d.ts +6 -0
  674. package/cloud/instances/components/empty-state.d.ts.map +1 -0
  675. package/cloud/instances/components/empty-state.js +23 -0
  676. package/cloud/instances/components/my-agents.d.ts +8 -0
  677. package/cloud/instances/components/my-agents.d.ts.map +1 -0
  678. package/cloud/instances/components/my-agents.js +268 -0
  679. package/cloud/instances/components/types.d.ts +3 -0
  680. package/cloud/instances/components/types.d.ts.map +1 -0
  681. package/cloud/instances/components/types.js +1 -0
  682. package/cloud/instances/index.d.ts +36 -0
  683. package/cloud/instances/index.d.ts.map +1 -0
  684. package/cloud/instances/index.js +58 -0
  685. package/cloud/instances/lib/auth-query.d.ts +16 -0
  686. package/cloud/instances/lib/auth-query.d.ts.map +1 -0
  687. package/cloud/instances/lib/auth-query.js +20 -0
  688. package/cloud/instances/lib/data/credits.d.ts +14 -0
  689. package/cloud/instances/lib/data/credits.d.ts.map +1 -0
  690. package/cloud/instances/lib/data/credits.js +21 -0
  691. package/cloud/instances/lib/data/eliza-agents.d.ts +12 -0
  692. package/cloud/instances/lib/data/eliza-agents.d.ts.map +1 -0
  693. package/cloud/instances/lib/data/eliza-agents.js +33 -0
  694. package/cloud/instances/lib/i18n.d.ts +11 -0
  695. package/cloud/instances/lib/i18n.d.ts.map +1 -0
  696. package/cloud/instances/lib/i18n.js +10 -0
  697. package/cloud/instances/lib/open-web-ui.d.ts +14 -0
  698. package/cloud/instances/lib/open-web-ui.d.ts.map +1 -0
  699. package/cloud/instances/lib/open-web-ui.js +88 -0
  700. package/cloud/instances/lib/sandbox-status.d.ts +18 -0
  701. package/cloud/instances/lib/sandbox-status.d.ts.map +1 -0
  702. package/cloud/instances/lib/sandbox-status.js +54 -0
  703. package/cloud/instances/lib/use-job-poller.d.ts +34 -0
  704. package/cloud/instances/lib/use-job-poller.d.ts.map +1 -0
  705. package/cloud/instances/lib/use-job-poller.js +146 -0
  706. package/cloud/instances/lib/use-sandbox-status-poll.d.ts +50 -0
  707. package/cloud/instances/lib/use-sandbox-status-poll.d.ts.map +1 -0
  708. package/cloud/instances/lib/use-sandbox-status-poll.js +179 -0
  709. package/cloud/instances/lib/use-session-auth.d.ts +44 -0
  710. package/cloud/instances/lib/use-session-auth.d.ts.map +1 -0
  711. package/cloud/instances/lib/use-session-auth.js +141 -0
  712. package/cloud/join/JoinPage.d.ts +19 -0
  713. package/cloud/join/JoinPage.d.ts.map +1 -0
  714. package/cloud/join/JoinPage.js +128 -0
  715. package/cloud/join/index.d.ts +19 -0
  716. package/cloud/join/index.d.ts.map +1 -0
  717. package/cloud/join/index.js +18 -0
  718. package/cloud/join/lib/resolve-cloud-connection.d.ts +21 -0
  719. package/cloud/join/lib/resolve-cloud-connection.d.ts.map +1 -0
  720. package/cloud/join/lib/resolve-cloud-connection.js +29 -0
  721. package/cloud/join/lib/run-join-flow.d.ts +95 -0
  722. package/cloud/join/lib/run-join-flow.d.ts.map +1 -0
  723. package/cloud/join/lib/run-join-flow.js +98 -0
  724. package/cloud/join/lib/use-join-session.d.ts +18 -0
  725. package/cloud/join/lib/use-join-session.d.ts.map +1 -0
  726. package/cloud/join/lib/use-join-session.js +62 -0
  727. package/cloud/join/register.d.ts +17 -0
  728. package/cloud/join/register.d.ts.map +1 -0
  729. package/cloud/join/register.js +29 -0
  730. package/cloud/lib/api-client.d.ts +33 -0
  731. package/cloud/lib/api-client.d.ts.map +1 -0
  732. package/cloud/lib/api-client.js +160 -0
  733. package/cloud/lib/auth-query.d.ts +19 -0
  734. package/cloud/lib/auth-query.d.ts.map +1 -0
  735. package/cloud/lib/auth-query.js +23 -0
  736. package/cloud/lib/format-usd.d.ts +9 -0
  737. package/cloud/lib/format-usd.d.ts.map +1 -0
  738. package/cloud/lib/format-usd.js +16 -0
  739. package/cloud/lib/jwt.d.ts +26 -0
  740. package/cloud/lib/jwt.d.ts.map +1 -0
  741. package/cloud/lib/jwt.js +34 -0
  742. package/cloud/lib/query-client.d.ts +9 -0
  743. package/cloud/lib/query-client.d.ts.map +1 -0
  744. package/cloud/lib/query-client.js +27 -0
  745. package/cloud/lib/steward-session.d.ts +28 -0
  746. package/cloud/lib/steward-session.d.ts.map +1 -0
  747. package/cloud/lib/steward-session.js +29 -0
  748. package/cloud/lib/use-copy-feedback.d.ts +5 -0
  749. package/cloud/lib/use-copy-feedback.d.ts.map +1 -0
  750. package/cloud/lib/use-copy-feedback.js +15 -0
  751. package/cloud/lib/use-document-title.d.ts +2 -0
  752. package/cloud/lib/use-document-title.d.ts.map +1 -0
  753. package/cloud/lib/use-document-title.js +19 -0
  754. package/cloud/lib/use-session-auth.d.ts +31 -0
  755. package/cloud/lib/use-session-auth.d.ts.map +1 -0
  756. package/cloud/lib/use-session-auth.js +100 -0
  757. package/cloud/mcps/McpDetailDrawer.d.ts +20 -0
  758. package/cloud/mcps/McpDetailDrawer.d.ts.map +1 -0
  759. package/cloud/mcps/McpDetailDrawer.js +155 -0
  760. package/cloud/mcps/McpEditorDialog.d.ts +22 -0
  761. package/cloud/mcps/McpEditorDialog.d.ts.map +1 -0
  762. package/cloud/mcps/McpEditorDialog.js +224 -0
  763. package/cloud/mcps/McpsRoute.d.ts +12 -0
  764. package/cloud/mcps/McpsRoute.d.ts.map +1 -0
  765. package/cloud/mcps/McpsRoute.js +28 -0
  766. package/cloud/mcps/McpsSection.d.ts +10 -0
  767. package/cloud/mcps/McpsSection.d.ts.map +1 -0
  768. package/cloud/mcps/McpsSection.js +13 -0
  769. package/cloud/mcps/McpsView.d.ts +13 -0
  770. package/cloud/mcps/McpsView.d.ts.map +1 -0
  771. package/cloud/mcps/McpsView.js +149 -0
  772. package/cloud/mcps/index.d.ts +53 -0
  773. package/cloud/mcps/index.d.ts.map +1 -0
  774. package/cloud/mcps/index.js +77 -0
  775. package/cloud/mcps/lib/api-types.d.ts +213 -0
  776. package/cloud/mcps/lib/api-types.d.ts.map +1 -0
  777. package/cloud/mcps/lib/api-types.js +17 -0
  778. package/cloud/mcps/lib/mcp-mutations.d.ts +17 -0
  779. package/cloud/mcps/lib/mcp-mutations.d.ts.map +1 -0
  780. package/cloud/mcps/lib/mcp-mutations.js +82 -0
  781. package/cloud/mcps/lib/test-connection.d.ts +30 -0
  782. package/cloud/mcps/lib/test-connection.d.ts.map +1 -0
  783. package/cloud/mcps/lib/test-connection.js +140 -0
  784. package/cloud/mcps/lib/use-mcps.d.ts +30 -0
  785. package/cloud/mcps/lib/use-mcps.d.ts.map +1 -0
  786. package/cloud/mcps/lib/use-mcps.js +67 -0
  787. package/cloud/monetization/MonetizationRoute.d.ts +9 -0
  788. package/cloud/monetization/MonetizationRoute.d.ts.map +1 -0
  789. package/cloud/monetization/MonetizationRoute.js +19 -0
  790. package/cloud/monetization/MonetizationSection.d.ts +19 -0
  791. package/cloud/monetization/MonetizationSection.d.ts.map +1 -0
  792. package/cloud/monetization/MonetizationSection.js +34 -0
  793. package/cloud/monetization/affiliates/AffiliatesPageClient.d.ts +18 -0
  794. package/cloud/monetization/affiliates/AffiliatesPageClient.d.ts.map +1 -0
  795. package/cloud/monetization/affiliates/AffiliatesPageClient.js +249 -0
  796. package/cloud/monetization/affiliates/AffiliatesRoute.d.ts +19 -0
  797. package/cloud/monetization/affiliates/AffiliatesRoute.d.ts.map +1 -0
  798. package/cloud/monetization/affiliates/AffiliatesRoute.js +42 -0
  799. package/cloud/monetization/affiliates/referral-me.d.ts +27 -0
  800. package/cloud/monetization/affiliates/referral-me.d.ts.map +1 -0
  801. package/cloud/monetization/affiliates/referral-me.js +69 -0
  802. package/cloud/monetization/affiliates/use-dashboard-referral-me.d.ts +19 -0
  803. package/cloud/monetization/affiliates/use-dashboard-referral-me.d.ts.map +1 -0
  804. package/cloud/monetization/affiliates/use-dashboard-referral-me.js +49 -0
  805. package/cloud/monetization/auth-gate.d.ts +27 -0
  806. package/cloud/monetization/auth-gate.d.ts.map +1 -0
  807. package/cloud/monetization/auth-gate.js +60 -0
  808. package/cloud/monetization/earnings/EarningsPageClient.d.ts +24 -0
  809. package/cloud/monetization/earnings/EarningsPageClient.d.ts.map +1 -0
  810. package/cloud/monetization/earnings/EarningsPageClient.js +311 -0
  811. package/cloud/monetization/earnings/EarningsRoute.d.ts +19 -0
  812. package/cloud/monetization/earnings/EarningsRoute.d.ts.map +1 -0
  813. package/cloud/monetization/earnings/EarningsRoute.js +44 -0
  814. package/cloud/monetization/index.d.ts +43 -0
  815. package/cloud/monetization/index.d.ts.map +1 -0
  816. package/cloud/monetization/index.js +64 -0
  817. package/cloud/monetization/lib/clipboard.d.ts +21 -0
  818. package/cloud/monetization/lib/clipboard.d.ts.map +1 -0
  819. package/cloud/monetization/lib/clipboard.js +55 -0
  820. package/cloud/organization/OrganizationPage.d.ts +12 -0
  821. package/cloud/organization/OrganizationPage.d.ts.map +1 -0
  822. package/cloud/organization/OrganizationPage.js +15 -0
  823. package/cloud/organization/OrganizationSection.d.ts +15 -0
  824. package/cloud/organization/OrganizationSection.d.ts.map +1 -0
  825. package/cloud/organization/OrganizationSection.js +31 -0
  826. package/cloud/organization/data/cloud-org-types.d.ts +66 -0
  827. package/cloud/organization/data/cloud-org-types.d.ts.map +1 -0
  828. package/cloud/organization/data/cloud-org-types.js +19 -0
  829. package/cloud/organization/data/use-organization.d.ts +44 -0
  830. package/cloud/organization/data/use-organization.d.ts.map +1 -0
  831. package/cloud/organization/data/use-organization.js +124 -0
  832. package/cloud/organization/index.d.ts +30 -0
  833. package/cloud/organization/index.d.ts.map +1 -0
  834. package/cloud/organization/index.js +29 -0
  835. package/cloud/organization/invite-member-dialog.d.ts +26 -0
  836. package/cloud/organization/invite-member-dialog.d.ts.map +1 -0
  837. package/cloud/organization/invite-member-dialog.js +58 -0
  838. package/cloud/organization/members-list.d.ts +27 -0
  839. package/cloud/organization/members-list.d.ts.map +1 -0
  840. package/cloud/organization/members-list.js +96 -0
  841. package/cloud/organization/members-tab.d.ts +19 -0
  842. package/cloud/organization/members-tab.d.ts.map +1 -0
  843. package/cloud/organization/members-tab.js +99 -0
  844. package/cloud/organization/organization-general-tab.d.ts +17 -0
  845. package/cloud/organization/organization-general-tab.d.ts.map +1 -0
  846. package/cloud/organization/organization-general-tab.js +17 -0
  847. package/cloud/organization/organization-tab.d.ts +17 -0
  848. package/cloud/organization/organization-tab.d.ts.map +1 -0
  849. package/cloud/organization/organization-tab.js +23 -0
  850. package/cloud/organization/pending-invites-list.d.ts +19 -0
  851. package/cloud/organization/pending-invites-list.d.ts.map +1 -0
  852. package/cloud/organization/pending-invites-list.js +64 -0
  853. package/cloud/organization/routes.d.ts +18 -0
  854. package/cloud/organization/routes.d.ts.map +1 -0
  855. package/cloud/organization/routes.js +23 -0
  856. package/cloud/public-pages/index.d.ts +36 -0
  857. package/cloud/public-pages/index.d.ts.map +1 -0
  858. package/cloud/public-pages/index.js +35 -0
  859. package/cloud/public-pages/lib/error-message.d.ts +3 -0
  860. package/cloud/public-pages/lib/error-message.d.ts.map +1 -0
  861. package/cloud/public-pages/lib/error-message.js +4 -0
  862. package/cloud/public-pages/lib/login-return-to.d.ts +15 -0
  863. package/cloud/public-pages/lib/login-return-to.d.ts.map +1 -0
  864. package/cloud/public-pages/lib/login-return-to.js +76 -0
  865. package/cloud/public-pages/lib/steward-oauth-url.d.ts +25 -0
  866. package/cloud/public-pages/lib/steward-oauth-url.d.ts.map +1 -0
  867. package/cloud/public-pages/lib/steward-oauth-url.js +32 -0
  868. package/cloud/public-pages/lib/steward-session.d.ts +54 -0
  869. package/cloud/public-pages/lib/steward-session.d.ts.map +1 -0
  870. package/cloud/public-pages/lib/steward-session.js +143 -0
  871. package/cloud/public-pages/lib/use-page-title.d.ts +18 -0
  872. package/cloud/public-pages/lib/use-page-title.d.ts.map +1 -0
  873. package/cloud/public-pages/lib/use-page-title.js +40 -0
  874. package/cloud/public-pages/lib/use-session-auth.d.ts +40 -0
  875. package/cloud/public-pages/lib/use-session-auth.d.ts.map +1 -0
  876. package/cloud/public-pages/lib/use-session-auth.js +135 -0
  877. package/cloud/public-pages/pages/app-auth/app-authorize-page.d.ts +7 -0
  878. package/cloud/public-pages/pages/app-auth/app-authorize-page.d.ts.map +1 -0
  879. package/cloud/public-pages/pages/app-auth/app-authorize-page.js +17 -0
  880. package/cloud/public-pages/pages/approve/approval-page.d.ts +9 -0
  881. package/cloud/public-pages/pages/approve/approval-page.d.ts.map +1 -0
  882. package/cloud/public-pages/pages/approve/approval-page.js +171 -0
  883. package/cloud/public-pages/pages/auth/auth-error-page.d.ts +7 -0
  884. package/cloud/public-pages/pages/auth/auth-error-page.d.ts.map +1 -0
  885. package/cloud/public-pages/pages/auth/auth-error-page.js +50 -0
  886. package/cloud/public-pages/pages/auth/auth-success-page.d.ts +7 -0
  887. package/cloud/public-pages/pages/auth/auth-success-page.d.ts.map +1 -0
  888. package/cloud/public-pages/pages/auth/auth-success-page.js +72 -0
  889. package/cloud/public-pages/pages/auth/cli-login-page.d.ts +8 -0
  890. package/cloud/public-pages/pages/auth/cli-login-page.d.ts.map +1 -0
  891. package/cloud/public-pages/pages/auth/cli-login-page.js +213 -0
  892. package/cloud/public-pages/pages/auth/email-callback-page.d.ts +8 -0
  893. package/cloud/public-pages/pages/auth/email-callback-page.d.ts.map +1 -0
  894. package/cloud/public-pages/pages/auth/email-callback-page.js +104 -0
  895. package/cloud/public-pages/pages/ballot/ballot-page.d.ts +8 -0
  896. package/cloud/public-pages/pages/ballot/ballot-page.d.ts.map +1 -0
  897. package/cloud/public-pages/pages/ballot/ballot-page.js +126 -0
  898. package/cloud/public-pages/pages/bsc-page.d.ts +16 -0
  899. package/cloud/public-pages/pages/bsc-page.d.ts.map +1 -0
  900. package/cloud/public-pages/pages/bsc-page.js +58 -0
  901. package/cloud/public-pages/pages/chat/public-chat-page.d.ts +17 -0
  902. package/cloud/public-pages/pages/chat/public-chat-page.d.ts.map +1 -0
  903. package/cloud/public-pages/pages/chat/public-chat-page.js +100 -0
  904. package/cloud/public-pages/pages/invite/invite-accept-page.d.ts +12 -0
  905. package/cloud/public-pages/pages/invite/invite-accept-page.d.ts.map +1 -0
  906. package/cloud/public-pages/pages/invite/invite-accept-page.js +162 -0
  907. package/cloud/public-pages/pages/legal/privacy-policy-page.d.ts +7 -0
  908. package/cloud/public-pages/pages/legal/privacy-policy-page.d.ts.map +1 -0
  909. package/cloud/public-pages/pages/legal/privacy-policy-page.js +116 -0
  910. package/cloud/public-pages/pages/legal/terms-of-service-page.d.ts +10 -0
  911. package/cloud/public-pages/pages/legal/terms-of-service-page.d.ts.map +1 -0
  912. package/cloud/public-pages/pages/legal/terms-of-service-page.js +109 -0
  913. package/cloud/public-pages/pages/login/login-page.d.ts +7 -0
  914. package/cloud/public-pages/pages/login/login-page.d.ts.map +1 -0
  915. package/cloud/public-pages/pages/login/login-page.js +27 -0
  916. package/cloud/public-pages/pages/login/steward-login-section.d.ts +16 -0
  917. package/cloud/public-pages/pages/login/steward-login-section.d.ts.map +1 -0
  918. package/cloud/public-pages/pages/login/steward-login-section.js +448 -0
  919. package/cloud/public-pages/pages/payment/app-charge-page.d.ts +9 -0
  920. package/cloud/public-pages/pages/payment/app-charge-page.d.ts.map +1 -0
  921. package/cloud/public-pages/pages/payment/app-charge-page.js +200 -0
  922. package/cloud/public-pages/pages/payment/payment-navigation.d.ts +3 -0
  923. package/cloud/public-pages/pages/payment/payment-navigation.d.ts.map +1 -0
  924. package/cloud/public-pages/pages/payment/payment-navigation.js +4 -0
  925. package/cloud/public-pages/pages/payment/payment-request-page.d.ts +10 -0
  926. package/cloud/public-pages/pages/payment/payment-request-page.d.ts.map +1 -0
  927. package/cloud/public-pages/pages/payment/payment-request-page.js +142 -0
  928. package/cloud/public-pages/pages/payment/payment-success-page.d.ts +9 -0
  929. package/cloud/public-pages/pages/payment/payment-success-page.d.ts.map +1 -0
  930. package/cloud/public-pages/pages/payment/payment-success-page.js +57 -0
  931. package/cloud/public-pages/pages/sensitive-requests/sensitive-request-page.d.ts +9 -0
  932. package/cloud/public-pages/pages/sensitive-requests/sensitive-request-page.d.ts.map +1 -0
  933. package/cloud/public-pages/pages/sensitive-requests/sensitive-request-page.js +199 -0
  934. package/cloud/public-pages/register.d.ts +20 -0
  935. package/cloud/public-pages/register.d.ts.map +1 -0
  936. package/cloud/public-pages/register.js +158 -0
  937. package/cloud/register-all.d.ts +26 -0
  938. package/cloud/register-all.d.ts.map +1 -0
  939. package/cloud/register-all.js +55 -0
  940. package/cloud/settings/CloudSettingsSectionShell.d.ts +39 -0
  941. package/cloud/settings/CloudSettingsSectionShell.d.ts.map +1 -0
  942. package/cloud/settings/CloudSettingsSectionShell.js +50 -0
  943. package/cloud/settings/cloud-settings-group.d.ts +35 -0
  944. package/cloud/settings/cloud-settings-group.d.ts.map +1 -0
  945. package/cloud/settings/cloud-settings-group.js +43 -0
  946. package/cloud/settings/index.d.ts +14 -0
  947. package/cloud/settings/index.d.ts.map +1 -0
  948. package/cloud/settings/index.js +13 -0
  949. package/cloud/settings/register-cloud-settings.d.ts +33 -0
  950. package/cloud/settings/register-cloud-settings.d.ts.map +1 -0
  951. package/cloud/settings/register-cloud-settings.js +161 -0
  952. package/cloud/settings/sections.d.ts +29 -0
  953. package/cloud/settings/sections.d.ts.map +1 -0
  954. package/cloud/settings/sections.js +74 -0
  955. package/cloud/shell/CloudI18nProvider.d.ts +32 -0
  956. package/cloud/shell/CloudI18nProvider.d.ts.map +1 -0
  957. package/cloud/shell/CloudI18nProvider.js +88 -0
  958. package/cloud/shell/CloudRouterShell.d.ts +39 -0
  959. package/cloud/shell/CloudRouterShell.d.ts.map +1 -0
  960. package/cloud/shell/CloudRouterShell.js +109 -0
  961. package/cloud/shell/StewardProvider.d.ts +25 -0
  962. package/cloud/shell/StewardProvider.d.ts.map +1 -0
  963. package/cloud/shell/StewardProvider.js +86 -0
  964. package/cloud/shell/StewardProviderRuntime.d.ts +19 -0
  965. package/cloud/shell/StewardProviderRuntime.d.ts.map +1 -0
  966. package/cloud/shell/StewardProviderRuntime.js +209 -0
  967. package/cloud/shell/StewardProviderShared.d.ts +27 -0
  968. package/cloud/shell/StewardProviderShared.d.ts.map +1 -0
  969. package/cloud/shell/StewardProviderShared.js +112 -0
  970. package/cloud/shell/cloud-route-registry.d.ts +41 -0
  971. package/cloud/shell/cloud-route-registry.d.ts.map +1 -0
  972. package/cloud/shell/cloud-route-registry.js +41 -0
  973. package/cloud/shell/steward-url.d.ts +12 -0
  974. package/cloud/shell/steward-url.d.ts.map +1 -0
  975. package/cloud/shell/steward-url.js +63 -0
  976. package/cloud-ui/components/ai-elements/eliza-avatar.d.ts +11 -0
  977. package/cloud-ui/components/ai-elements/eliza-avatar.d.ts.map +1 -0
  978. package/cloud-ui/components/ai-elements/eliza-avatar.js +102 -0
  979. package/cloud-ui/components/ai-elements/hooks/use-typewriter-text.d.ts +9 -0
  980. package/cloud-ui/components/ai-elements/hooks/use-typewriter-text.d.ts.map +1 -0
  981. package/cloud-ui/components/ai-elements/hooks/use-typewriter-text.js +88 -0
  982. package/cloud-ui/components/ai-elements/index.d.ts +4 -0
  983. package/cloud-ui/components/ai-elements/index.d.ts.map +1 -0
  984. package/cloud-ui/components/ai-elements/index.js +3 -0
  985. package/cloud-ui/components/ai-elements/memoized-chat-message.d.ts +39 -0
  986. package/cloud-ui/components/ai-elements/memoized-chat-message.d.ts.map +1 -0
  987. package/cloud-ui/components/ai-elements/memoized-chat-message.js +250 -0
  988. package/cloud-ui/components/analytics/cost-alerts.d.ts +9 -0
  989. package/cloud-ui/components/analytics/cost-alerts.d.ts.map +1 -0
  990. package/cloud-ui/components/analytics/cost-alerts.js +42 -0
  991. package/cloud-ui/components/analytics/cost-insights-card.d.ts +8 -0
  992. package/cloud-ui/components/analytics/cost-insights-card.d.ts.map +1 -0
  993. package/cloud-ui/components/analytics/cost-insights-card.js +20 -0
  994. package/cloud-ui/components/analytics/export-button.d.ts +20 -0
  995. package/cloud-ui/components/analytics/export-button.d.ts.map +1 -0
  996. package/cloud-ui/components/analytics/export-button.js +32 -0
  997. package/cloud-ui/components/analytics/index.d.ts +4 -0
  998. package/cloud-ui/components/analytics/index.d.ts.map +1 -0
  999. package/cloud-ui/components/analytics/index.js +3 -0
  1000. package/cloud-ui/components/api-key-empty-state.d.ts +6 -0
  1001. package/cloud-ui/components/api-key-empty-state.d.ts.map +1 -0
  1002. package/cloud-ui/components/api-key-empty-state.js +10 -0
  1003. package/cloud-ui/components/auth/authorize-content.d.ts +2 -0
  1004. package/cloud-ui/components/auth/authorize-content.d.ts.map +1 -0
  1005. package/cloud-ui/components/auth/authorize-content.js +181 -0
  1006. package/cloud-ui/components/auth/authorize-return.d.ts +17 -0
  1007. package/cloud-ui/components/auth/authorize-return.d.ts.map +1 -0
  1008. package/cloud-ui/components/auth/authorize-return.js +76 -0
  1009. package/cloud-ui/components/brand/brand-button.d.ts +17 -0
  1010. package/cloud-ui/components/brand/brand-button.d.ts.map +1 -0
  1011. package/cloud-ui/components/brand/brand-button.js +37 -0
  1012. package/cloud-ui/components/brand/brand-card.d.ts +31 -0
  1013. package/cloud-ui/components/brand/brand-card.d.ts.map +1 -0
  1014. package/cloud-ui/components/brand/brand-card.js +24 -0
  1015. package/cloud-ui/components/brand/brand-tabs-responsive.d.ts +40 -0
  1016. package/cloud-ui/components/brand/brand-tabs-responsive.d.ts.map +1 -0
  1017. package/cloud-ui/components/brand/brand-tabs-responsive.js +38 -0
  1018. package/cloud-ui/components/brand/brand-tabs.d.ts +19 -0
  1019. package/cloud-ui/components/brand/brand-tabs.d.ts.map +1 -0
  1020. package/cloud-ui/components/brand/brand-tabs.js +20 -0
  1021. package/cloud-ui/components/brand/corner-brackets.d.ts +11 -0
  1022. package/cloud-ui/components/brand/corner-brackets.d.ts.map +1 -0
  1023. package/cloud-ui/components/brand/corner-brackets.js +28 -0
  1024. package/cloud-ui/components/brand/dashboard-section.d.ts +11 -0
  1025. package/cloud-ui/components/brand/dashboard-section.d.ts.map +1 -0
  1026. package/cloud-ui/components/brand/dashboard-section.js +5 -0
  1027. package/cloud-ui/components/brand/dashboard-stat-card.d.ts +14 -0
  1028. package/cloud-ui/components/brand/dashboard-stat-card.d.ts.map +1 -0
  1029. package/cloud-ui/components/brand/dashboard-stat-card.js +15 -0
  1030. package/cloud-ui/components/brand/eliza-cloud-lockup.d.ts +8 -0
  1031. package/cloud-ui/components/brand/eliza-cloud-lockup.d.ts.map +1 -0
  1032. package/cloud-ui/components/brand/eliza-cloud-lockup.js +5 -0
  1033. package/cloud-ui/components/brand/eliza-logo.d.ts +8 -0
  1034. package/cloud-ui/components/brand/eliza-logo.d.ts.map +1 -0
  1035. package/cloud-ui/components/brand/eliza-logo.js +6 -0
  1036. package/cloud-ui/components/brand/hud-container.d.ts +8 -0
  1037. package/cloud-ui/components/brand/hud-container.d.ts.map +1 -0
  1038. package/cloud-ui/components/brand/hud-container.js +6 -0
  1039. package/cloud-ui/components/brand/index.d.ts +26 -0
  1040. package/cloud-ui/components/brand/index.d.ts.map +1 -0
  1041. package/cloud-ui/components/brand/index.js +20 -0
  1042. package/cloud-ui/components/brand/key-metrics-grid.d.ts +21 -0
  1043. package/cloud-ui/components/brand/key-metrics-grid.d.ts.map +1 -0
  1044. package/cloud-ui/components/brand/key-metrics-grid.js +25 -0
  1045. package/cloud-ui/components/brand/lock-on-button.d.ts +5 -0
  1046. package/cloud-ui/components/brand/lock-on-button.d.ts.map +1 -0
  1047. package/cloud-ui/components/brand/lock-on-button.js +10 -0
  1048. package/cloud-ui/components/brand/lock-on-button.variants.d.ts +11 -0
  1049. package/cloud-ui/components/brand/lock-on-button.variants.d.ts.map +1 -0
  1050. package/cloud-ui/components/brand/lock-on-button.variants.js +20 -0
  1051. package/cloud-ui/components/brand/mini-stat-card.d.ts +9 -0
  1052. package/cloud-ui/components/brand/mini-stat-card.d.ts.map +1 -0
  1053. package/cloud-ui/components/brand/mini-stat-card.js +5 -0
  1054. package/cloud-ui/components/brand/prompt-card.d.ts +17 -0
  1055. package/cloud-ui/components/brand/prompt-card.d.ts.map +1 -0
  1056. package/cloud-ui/components/brand/prompt-card.js +12 -0
  1057. package/cloud-ui/components/brand/section-header.d.ts +17 -0
  1058. package/cloud-ui/components/brand/section-header.d.ts.map +1 -0
  1059. package/cloud-ui/components/brand/section-header.js +16 -0
  1060. package/cloud-ui/components/code/code-display.d.ts +7 -0
  1061. package/cloud-ui/components/code/code-display.d.ts.map +1 -0
  1062. package/cloud-ui/components/code/code-display.js +48 -0
  1063. package/cloud-ui/components/code/index.d.ts +4 -0
  1064. package/cloud-ui/components/code/index.d.ts.map +1 -0
  1065. package/cloud-ui/components/code/index.js +2 -0
  1066. package/cloud-ui/components/code/monaco-editor-skeleton.d.ts +10 -0
  1067. package/cloud-ui/components/code/monaco-editor-skeleton.d.ts.map +1 -0
  1068. package/cloud-ui/components/code/monaco-editor-skeleton.js +10 -0
  1069. package/cloud-ui/components/code/prism-light.d.ts +6 -0
  1070. package/cloud-ui/components/code/prism-light.d.ts.map +1 -0
  1071. package/cloud-ui/components/code/prism-light.js +45 -0
  1072. package/cloud-ui/components/connection-card.d.ts +85 -0
  1073. package/cloud-ui/components/connection-card.d.ts.map +1 -0
  1074. package/cloud-ui/components/connection-card.js +58 -0
  1075. package/cloud-ui/components/dashboard/cloud-dashboard-components.d.ts +33 -0
  1076. package/cloud-ui/components/dashboard/cloud-dashboard-components.d.ts.map +1 -0
  1077. package/cloud-ui/components/dashboard/cloud-dashboard-components.js +78 -0
  1078. package/cloud-ui/components/dashboard/dashboard-route-error.d.ts +8 -0
  1079. package/cloud-ui/components/dashboard/dashboard-route-error.d.ts.map +1 -0
  1080. package/cloud-ui/components/dashboard/dashboard-route-error.helpers.d.ts +7 -0
  1081. package/cloud-ui/components/dashboard/dashboard-route-error.helpers.d.ts.map +1 -0
  1082. package/cloud-ui/components/dashboard/dashboard-route-error.helpers.js +12 -0
  1083. package/cloud-ui/components/dashboard/dashboard-route-error.js +9 -0
  1084. package/cloud-ui/components/dashboard/route-placeholders.d.ts +15 -0
  1085. package/cloud-ui/components/dashboard/route-placeholders.d.ts.map +1 -0
  1086. package/cloud-ui/components/dashboard/route-placeholders.js +19 -0
  1087. package/cloud-ui/components/data-list/api-keys-summary.d.ts +12 -0
  1088. package/cloud-ui/components/data-list/api-keys-summary.d.ts.map +1 -0
  1089. package/cloud-ui/components/data-list/api-keys-summary.js +35 -0
  1090. package/cloud-ui/components/data-list/api-keys-table.d.ts +22 -0
  1091. package/cloud-ui/components/data-list/api-keys-table.d.ts.map +1 -0
  1092. package/cloud-ui/components/data-list/api-keys-table.js +79 -0
  1093. package/cloud-ui/components/data-list/apps-list-view.d.ts +26 -0
  1094. package/cloud-ui/components/data-list/apps-list-view.d.ts.map +1 -0
  1095. package/cloud-ui/components/data-list/apps-list-view.js +72 -0
  1096. package/cloud-ui/components/data-list/dashboard-data-list.d.ts +30 -0
  1097. package/cloud-ui/components/data-list/dashboard-data-list.d.ts.map +1 -0
  1098. package/cloud-ui/components/data-list/dashboard-data-list.js +17 -0
  1099. package/cloud-ui/components/data-list/dashboard-table-skeleton.d.ts +15 -0
  1100. package/cloud-ui/components/data-list/dashboard-table-skeleton.d.ts.map +1 -0
  1101. package/cloud-ui/components/data-list/dashboard-table-skeleton.js +8 -0
  1102. package/cloud-ui/components/data-list/data-list-empty-state.d.ts +18 -0
  1103. package/cloud-ui/components/data-list/data-list-empty-state.d.ts.map +1 -0
  1104. package/cloud-ui/components/data-list/data-list-empty-state.js +11 -0
  1105. package/cloud-ui/components/data-list/index.d.ts +9 -0
  1106. package/cloud-ui/components/data-list/index.d.ts.map +1 -0
  1107. package/cloud-ui/components/data-list/index.js +7 -0
  1108. package/cloud-ui/components/data-list/list-action-menu.d.ts +40 -0
  1109. package/cloud-ui/components/data-list/list-action-menu.d.ts.map +1 -0
  1110. package/cloud-ui/components/data-list/list-action-menu.js +18 -0
  1111. package/cloud-ui/components/docs/api-parameter-select.d.ts +13 -0
  1112. package/cloud-ui/components/docs/api-parameter-select.d.ts.map +1 -0
  1113. package/cloud-ui/components/docs/api-parameter-select.js +7 -0
  1114. package/cloud-ui/components/docs/api-route-explorer-client.d.ts +5 -0
  1115. package/cloud-ui/components/docs/api-route-explorer-client.d.ts.map +1 -0
  1116. package/cloud-ui/components/docs/api-route-explorer-client.js +162 -0
  1117. package/cloud-ui/components/docs/docs-layout.d.ts +10 -0
  1118. package/cloud-ui/components/docs/docs-layout.d.ts.map +1 -0
  1119. package/cloud-ui/components/docs/docs-layout.js +21 -0
  1120. package/cloud-ui/components/docs/docs-types.d.ts +26 -0
  1121. package/cloud-ui/components/docs/docs-types.d.ts.map +1 -0
  1122. package/cloud-ui/components/docs/docs-types.js +1 -0
  1123. package/cloud-ui/components/docs/endpoint-card.d.ts +30 -0
  1124. package/cloud-ui/components/docs/endpoint-card.d.ts.map +1 -0
  1125. package/cloud-ui/components/docs/endpoint-card.js +29 -0
  1126. package/cloud-ui/components/docs/index.d.ts +12 -0
  1127. package/cloud-ui/components/docs/index.d.ts.map +1 -0
  1128. package/cloud-ui/components/docs/index.js +6 -0
  1129. package/cloud-ui/components/docs/llms-txt-badge.d.ts +2 -0
  1130. package/cloud-ui/components/docs/llms-txt-badge.d.ts.map +1 -0
  1131. package/cloud-ui/components/docs/llms-txt-badge.js +17 -0
  1132. package/cloud-ui/components/docs/mdx-components.d.ts +34 -0
  1133. package/cloud-ui/components/docs/mdx-components.d.ts.map +1 -0
  1134. package/cloud-ui/components/docs/mdx-components.js +25 -0
  1135. package/cloud-ui/components/docs/openapi-viewer.d.ts +6 -0
  1136. package/cloud-ui/components/docs/openapi-viewer.d.ts.map +1 -0
  1137. package/cloud-ui/components/docs/openapi-viewer.js +7 -0
  1138. package/cloud-ui/components/drawer.d.ts +14 -0
  1139. package/cloud-ui/components/drawer.d.ts.map +1 -0
  1140. package/cloud-ui/components/drawer.js +39 -0
  1141. package/cloud-ui/components/icons.d.ts +7 -0
  1142. package/cloud-ui/components/icons.d.ts.map +1 -0
  1143. package/cloud-ui/components/icons.js +16 -0
  1144. package/cloud-ui/components/image-gen/empty-state.d.ts +3 -0
  1145. package/cloud-ui/components/image-gen/empty-state.d.ts.map +1 -0
  1146. package/cloud-ui/components/image-gen/empty-state.js +12 -0
  1147. package/cloud-ui/components/image-gen/enhanced-loading.d.ts +14 -0
  1148. package/cloud-ui/components/image-gen/enhanced-loading.d.ts.map +1 -0
  1149. package/cloud-ui/components/image-gen/enhanced-loading.js +23 -0
  1150. package/cloud-ui/components/image-gen/index.d.ts +5 -0
  1151. package/cloud-ui/components/image-gen/index.d.ts.map +1 -0
  1152. package/cloud-ui/components/image-gen/index.js +4 -0
  1153. package/cloud-ui/components/image-gen/loading-state.d.ts +2 -0
  1154. package/cloud-ui/components/image-gen/loading-state.d.ts.map +1 -0
  1155. package/cloud-ui/components/image-gen/loading-state.js +11 -0
  1156. package/cloud-ui/components/image-gen/prompt-input.d.ts +32 -0
  1157. package/cloud-ui/components/image-gen/prompt-input.d.ts.map +1 -0
  1158. package/cloud-ui/components/image-gen/prompt-input.js +24 -0
  1159. package/cloud-ui/components/layout/dashboard-header.d.ts +18 -0
  1160. package/cloud-ui/components/layout/dashboard-header.d.ts.map +1 -0
  1161. package/cloud-ui/components/layout/dashboard-header.js +10 -0
  1162. package/cloud-ui/components/layout/dashboard-page.d.ts +25 -0
  1163. package/cloud-ui/components/layout/dashboard-page.d.ts.map +1 -0
  1164. package/cloud-ui/components/layout/dashboard-page.js +24 -0
  1165. package/cloud-ui/components/layout/dashboard-route-page.d.ts +20 -0
  1166. package/cloud-ui/components/layout/dashboard-route-page.d.ts.map +1 -0
  1167. package/cloud-ui/components/layout/dashboard-route-page.js +31 -0
  1168. package/cloud-ui/components/layout/dashboard-shell.d.ts +8 -0
  1169. package/cloud-ui/components/layout/dashboard-shell.d.ts.map +1 -0
  1170. package/cloud-ui/components/layout/dashboard-shell.js +5 -0
  1171. package/cloud-ui/components/layout/dashboard-sidebar-item.d.ts +12 -0
  1172. package/cloud-ui/components/layout/dashboard-sidebar-item.d.ts.map +1 -0
  1173. package/cloud-ui/components/layout/dashboard-sidebar-item.js +65 -0
  1174. package/cloud-ui/components/layout/dashboard-sidebar-section.d.ts +15 -0
  1175. package/cloud-ui/components/layout/dashboard-sidebar-section.d.ts.map +1 -0
  1176. package/cloud-ui/components/layout/dashboard-sidebar-section.js +51 -0
  1177. package/cloud-ui/components/layout/dashboard-sidebar-types.d.ts +29 -0
  1178. package/cloud-ui/components/layout/dashboard-sidebar-types.d.ts.map +1 -0
  1179. package/cloud-ui/components/layout/dashboard-sidebar-types.js +1 -0
  1180. package/cloud-ui/components/layout/dashboard-sidebar.d.ts +22 -0
  1181. package/cloud-ui/components/layout/dashboard-sidebar.d.ts.map +1 -0
  1182. package/cloud-ui/components/layout/dashboard-sidebar.js +17 -0
  1183. package/cloud-ui/components/layout/index.d.ts +12 -0
  1184. package/cloud-ui/components/layout/index.d.ts.map +1 -0
  1185. package/cloud-ui/components/layout/index.js +10 -0
  1186. package/cloud-ui/components/layout/page-header-context.d.ts +11 -0
  1187. package/cloud-ui/components/layout/page-header-context.d.ts.map +1 -0
  1188. package/cloud-ui/components/layout/page-header-context.hooks.d.ts +30 -0
  1189. package/cloud-ui/components/layout/page-header-context.hooks.d.ts.map +1 -0
  1190. package/cloud-ui/components/layout/page-header-context.hooks.js +49 -0
  1191. package/cloud-ui/components/layout/page-header-context.js +31 -0
  1192. package/cloud-ui/components/layout/page-transition.d.ts +10 -0
  1193. package/cloud-ui/components/layout/page-transition.d.ts.map +1 -0
  1194. package/cloud-ui/components/layout/page-transition.js +27 -0
  1195. package/cloud-ui/components/log-viewer.d.ts +87 -0
  1196. package/cloud-ui/components/log-viewer.d.ts.map +1 -0
  1197. package/cloud-ui/components/log-viewer.js +98 -0
  1198. package/cloud-ui/components/monetization/animated-counter.d.ts +26 -0
  1199. package/cloud-ui/components/monetization/animated-counter.d.ts.map +1 -0
  1200. package/cloud-ui/components/monetization/animated-counter.js +46 -0
  1201. package/cloud-ui/components/monetization/earnings-simulator.d.ts +12 -0
  1202. package/cloud-ui/components/monetization/earnings-simulator.d.ts.map +1 -0
  1203. package/cloud-ui/components/monetization/earnings-simulator.js +40 -0
  1204. package/cloud-ui/components/monetization/index.d.ts +5 -0
  1205. package/cloud-ui/components/monetization/index.d.ts.map +1 -0
  1206. package/cloud-ui/components/monetization/index.js +4 -0
  1207. package/cloud-ui/components/monetization/milestone-progress.d.ts +18 -0
  1208. package/cloud-ui/components/monetization/milestone-progress.d.ts.map +1 -0
  1209. package/cloud-ui/components/monetization/milestone-progress.js +28 -0
  1210. package/cloud-ui/components/monetization/revenue-flow-diagram.d.ts +12 -0
  1211. package/cloud-ui/components/monetization/revenue-flow-diagram.d.ts.map +1 -0
  1212. package/cloud-ui/components/monetization/revenue-flow-diagram.js +26 -0
  1213. package/cloud-ui/components/navigation-progress.d.ts +11 -0
  1214. package/cloud-ui/components/navigation-progress.d.ts.map +1 -0
  1215. package/cloud-ui/components/navigation-progress.js +42 -0
  1216. package/cloud-ui/components/primitives.d.ts +58 -0
  1217. package/cloud-ui/components/primitives.d.ts.map +1 -0
  1218. package/cloud-ui/components/primitives.js +56 -0
  1219. package/cloud-ui/components/product-switcher.d.ts +16 -0
  1220. package/cloud-ui/components/product-switcher.d.ts.map +1 -0
  1221. package/cloud-ui/components/product-switcher.js +7 -0
  1222. package/cloud-ui/components/promotion/promote-app-dialog.d.ts +18 -0
  1223. package/cloud-ui/components/promotion/promote-app-dialog.d.ts.map +1 -0
  1224. package/cloud-ui/components/promotion/promote-app-dialog.js +243 -0
  1225. package/cloud-ui/components/promotion/social-connection-hint.d.ts +29 -0
  1226. package/cloud-ui/components/promotion/social-connection-hint.d.ts.map +1 -0
  1227. package/cloud-ui/components/promotion/social-connection-hint.js +63 -0
  1228. package/cloud-ui/components/resizable.d.ts +21 -0
  1229. package/cloud-ui/components/resizable.d.ts.map +1 -0
  1230. package/cloud-ui/components/resizable.js +153 -0
  1231. package/cloud-ui/components/share/index.d.ts +2 -0
  1232. package/cloud-ui/components/share/index.d.ts.map +1 -0
  1233. package/cloud-ui/components/share/index.js +1 -0
  1234. package/cloud-ui/components/share/share-buttons.d.ts +16 -0
  1235. package/cloud-ui/components/share/share-buttons.d.ts.map +1 -0
  1236. package/cloud-ui/components/share/share-buttons.js +62 -0
  1237. package/cloud-ui/components/sonner.d.ts +4 -0
  1238. package/cloud-ui/components/sonner.d.ts.map +1 -0
  1239. package/cloud-ui/components/sonner.js +13 -0
  1240. package/cloud-ui/components/spotlight.d.ts +7 -0
  1241. package/cloud-ui/components/spotlight.d.ts.map +1 -0
  1242. package/cloud-ui/components/spotlight.js +5 -0
  1243. package/cloud-ui/components/theme/index.d.ts +8 -0
  1244. package/cloud-ui/components/theme/index.d.ts.map +1 -0
  1245. package/cloud-ui/components/theme/index.js +7 -0
  1246. package/cloud-ui/components/theme/theme-provider.d.ts +13 -0
  1247. package/cloud-ui/components/theme/theme-provider.d.ts.map +1 -0
  1248. package/cloud-ui/components/theme/theme-provider.hooks.d.ts +16 -0
  1249. package/cloud-ui/components/theme/theme-provider.hooks.d.ts.map +1 -0
  1250. package/cloud-ui/components/theme/theme-provider.hooks.js +15 -0
  1251. package/cloud-ui/components/theme/theme-provider.js +88 -0
  1252. package/cloud-ui/components/theme/theme-toggle.d.ts +2 -0
  1253. package/cloud-ui/components/theme/theme-toggle.d.ts.map +1 -0
  1254. package/cloud-ui/components/theme/theme-toggle.js +9 -0
  1255. package/cloud-ui/components/timeline.d.ts +12 -0
  1256. package/cloud-ui/components/timeline.d.ts.map +1 -0
  1257. package/cloud-ui/components/timeline.js +28 -0
  1258. package/cloud-ui/components/voice/audio-utils.d.ts +4 -0
  1259. package/cloud-ui/components/voice/audio-utils.d.ts.map +1 -0
  1260. package/cloud-ui/components/voice/audio-utils.js +24 -0
  1261. package/cloud-ui/components/voice/index.d.ts +9 -0
  1262. package/cloud-ui/components/voice/index.d.ts.map +1 -0
  1263. package/cloud-ui/components/voice/index.js +7 -0
  1264. package/cloud-ui/components/voice/types.d.ts +30 -0
  1265. package/cloud-ui/components/voice/types.d.ts.map +1 -0
  1266. package/cloud-ui/components/voice/types.js +4 -0
  1267. package/cloud-ui/components/voice/use-audio-player.d.ts +13 -0
  1268. package/cloud-ui/components/voice/use-audio-player.d.ts.map +1 -0
  1269. package/cloud-ui/components/voice/use-audio-player.js +119 -0
  1270. package/cloud-ui/components/voice/use-audio-recorder.d.ts +14 -0
  1271. package/cloud-ui/components/voice/use-audio-recorder.d.ts.map +1 -0
  1272. package/cloud-ui/components/voice/use-audio-recorder.js +166 -0
  1273. package/cloud-ui/components/voice/voice-audio-player.d.ts +14 -0
  1274. package/cloud-ui/components/voice/voice-audio-player.d.ts.map +1 -0
  1275. package/cloud-ui/components/voice/voice-audio-player.js +89 -0
  1276. package/cloud-ui/components/voice/voice-empty-state.d.ts +6 -0
  1277. package/cloud-ui/components/voice/voice-empty-state.d.ts.map +1 -0
  1278. package/cloud-ui/components/voice/voice-empty-state.js +11 -0
  1279. package/cloud-ui/components/voice/voice-status-badge.d.ts +10 -0
  1280. package/cloud-ui/components/voice/voice-status-badge.d.ts.map +1 -0
  1281. package/cloud-ui/components/voice/voice-status-badge.helpers.d.ts +11 -0
  1282. package/cloud-ui/components/voice/voice-status-badge.helpers.d.ts.map +1 -0
  1283. package/cloud-ui/components/voice/voice-status-badge.helpers.js +23 -0
  1284. package/cloud-ui/components/voice/voice-status-badge.js +36 -0
  1285. package/cloud-ui/index.css +3 -0
  1286. package/cloud-ui/index.d.ts +31 -0
  1287. package/cloud-ui/index.d.ts.map +1 -0
  1288. package/cloud-ui/index.js +28 -0
  1289. package/cloud-ui/lib/utils.d.ts +2 -0
  1290. package/cloud-ui/lib/utils.d.ts.map +1 -0
  1291. package/cloud-ui/lib/utils.js +1 -0
  1292. package/cloud-ui/runtime/dynamic.d.ts +11 -0
  1293. package/cloud-ui/runtime/dynamic.d.ts.map +1 -0
  1294. package/cloud-ui/runtime/dynamic.js +16 -0
  1295. package/cloud-ui/runtime/image.d.ts +18 -0
  1296. package/cloud-ui/runtime/image.d.ts.map +1 -0
  1297. package/cloud-ui/runtime/image.js +13 -0
  1298. package/cloud-ui/runtime/navigation.d.ts +24 -0
  1299. package/cloud-ui/runtime/navigation.d.ts.map +1 -0
  1300. package/cloud-ui/runtime/navigation.js +90 -0
  1301. package/cloud-ui/runtime/render-telemetry.d.ts +6 -0
  1302. package/cloud-ui/runtime/render-telemetry.d.ts.map +1 -0
  1303. package/cloud-ui/runtime/render-telemetry.js +51 -0
  1304. package/cloud-ui/types/chat-media.d.ts +24 -0
  1305. package/cloud-ui/types/chat-media.d.ts.map +1 -0
  1306. package/cloud-ui/types/chat-media.js +12 -0
  1307. package/cloud-ui/types/cloud-api.d.ts +518 -0
  1308. package/cloud-ui/types/cloud-api.d.ts.map +1 -0
  1309. package/cloud-ui/types/cloud-api.js +1 -0
  1310. package/companion/desktop-bar/CompanionBar.d.ts +14 -0
  1311. package/companion/desktop-bar/CompanionBar.d.ts.map +1 -0
  1312. package/companion/desktop-bar/CompanionBar.js +82 -0
  1313. package/companion/desktop-bar/index.d.ts +7 -0
  1314. package/companion/desktop-bar/index.d.ts.map +1 -0
  1315. package/companion/desktop-bar/index.js +4 -0
  1316. package/companion/desktop-bar/platform/electrobun-tray.d.ts +30 -0
  1317. package/companion/desktop-bar/platform/electrobun-tray.d.ts.map +1 -0
  1318. package/companion/desktop-bar/platform/electrobun-tray.js +36 -0
  1319. package/companion/desktop-bar/platform/index.d.ts +4 -0
  1320. package/companion/desktop-bar/platform/index.d.ts.map +1 -0
  1321. package/companion/desktop-bar/platform/index.js +14 -0
  1322. package/companion/desktop-bar/platform/web-fallback.d.ts +3 -0
  1323. package/companion/desktop-bar/platform/web-fallback.d.ts.map +1 -0
  1324. package/companion/desktop-bar/platform/web-fallback.js +6 -0
  1325. package/companion/desktop-bar/types.d.ts +16 -0
  1326. package/companion/desktop-bar/types.d.ts.map +1 -0
  1327. package/companion/desktop-bar/types.js +1 -0
  1328. package/companion/desktop-bar/useKeyboardShortcuts.d.ts +19 -0
  1329. package/companion/desktop-bar/useKeyboardShortcuts.d.ts.map +1 -0
  1330. package/companion/desktop-bar/useKeyboardShortcuts.js +100 -0
  1331. package/companion/desktop-bar/usePushToTalk.d.ts +17 -0
  1332. package/companion/desktop-bar/usePushToTalk.d.ts.map +1 -0
  1333. package/companion/desktop-bar/usePushToTalk.js +68 -0
  1334. package/components/accounts/AccountCard.d.ts +1 -1
  1335. package/components/accounts/AccountCard.d.ts.map +1 -1
  1336. package/components/accounts/AccountCard.js +21 -21
  1337. package/components/accounts/AccountList.d.ts.map +1 -1
  1338. package/components/accounts/AccountList.js +6 -5
  1339. package/components/accounts/AddAccountDialog.d.ts.map +1 -1
  1340. package/components/accounts/AddAccountDialog.js +22 -5
  1341. package/components/accounts/EditableAccountLabel.d.ts.map +1 -1
  1342. package/components/accounts/EditableAccountLabel.js +3 -2
  1343. package/components/accounts/RotationStrategyPicker.d.ts +1 -1
  1344. package/components/accounts/RotationStrategyPicker.d.ts.map +1 -1
  1345. package/components/accounts/RotationStrategyPicker.js +4 -4
  1346. package/components/apps/AppWindowRenderer.d.ts +5 -0
  1347. package/components/apps/AppWindowRenderer.d.ts.map +1 -0
  1348. package/components/apps/AppWindowRenderer.helpers.d.ts +4 -0
  1349. package/components/apps/AppWindowRenderer.helpers.d.ts.map +1 -0
  1350. package/components/apps/AppWindowRenderer.helpers.js +20 -0
  1351. package/components/apps/AppWindowRenderer.js +85 -0
  1352. package/components/apps/AppsCatalogGrid.d.ts +3 -2
  1353. package/components/apps/AppsCatalogGrid.d.ts.map +1 -1
  1354. package/components/apps/AppsCatalogGrid.js +37 -22
  1355. package/components/apps/AppsSidebar.d.ts +1 -1
  1356. package/components/apps/AppsSidebar.d.ts.map +1 -1
  1357. package/components/apps/AppsSidebar.js +27 -14
  1358. package/components/apps/GameView.d.ts +0 -4
  1359. package/components/apps/GameView.d.ts.map +1 -1
  1360. package/components/apps/GameView.helpers.d.ts +3 -0
  1361. package/components/apps/GameView.helpers.d.ts.map +1 -0
  1362. package/components/apps/GameView.helpers.js +50 -0
  1363. package/components/apps/GameView.js +219 -175
  1364. package/components/apps/GameViewOverlay.d.ts.map +1 -1
  1365. package/components/apps/GameViewOverlay.js +65 -10
  1366. package/components/apps/RunningAppsRow.d.ts +1 -1
  1367. package/components/apps/RunningAppsRow.d.ts.map +1 -1
  1368. package/components/apps/RunningAppsRow.js +15 -13
  1369. package/components/apps/app-identity.d.ts +7 -12
  1370. package/components/apps/app-identity.d.ts.map +1 -1
  1371. package/components/apps/app-identity.helpers.d.ts +13 -0
  1372. package/components/apps/app-identity.helpers.d.ts.map +1 -0
  1373. package/components/apps/app-identity.helpers.js +49 -0
  1374. package/components/apps/app-identity.js +8 -54
  1375. package/components/apps/apps-cache.d.ts +1 -1
  1376. package/components/apps/apps-cache.d.ts.map +1 -1
  1377. package/components/apps/catalog-loader.d.ts +1 -1
  1378. package/components/apps/extensions/registry.d.ts +3 -3
  1379. package/components/apps/extensions/registry.js +1 -1
  1380. package/components/apps/extensions/surface.d.ts +2 -7
  1381. package/components/apps/extensions/surface.d.ts.map +1 -1
  1382. package/components/apps/extensions/surface.helpers.d.ts +8 -0
  1383. package/components/apps/extensions/surface.helpers.d.ts.map +1 -0
  1384. package/components/apps/extensions/surface.helpers.js +66 -0
  1385. package/components/apps/extensions/surface.js +9 -75
  1386. package/components/apps/extensions/types.d.ts +1 -1
  1387. package/components/apps/helpers.d.ts +10 -6
  1388. package/components/apps/helpers.d.ts.map +1 -1
  1389. package/components/apps/helpers.js +38 -48
  1390. package/components/apps/home-grid-apps.d.ts +19 -0
  1391. package/components/apps/home-grid-apps.d.ts.map +1 -0
  1392. package/components/apps/home-grid-apps.js +75 -0
  1393. package/components/apps/internal-tool-apps.d.ts +2 -2
  1394. package/components/apps/internal-tool-apps.d.ts.map +1 -1
  1395. package/components/apps/internal-tool-apps.js +43 -23
  1396. package/components/apps/launch-history.d.ts +1 -1
  1397. package/components/apps/load-apps-catalog.d.ts +1 -1
  1398. package/components/apps/load-apps-catalog.d.ts.map +1 -1
  1399. package/components/apps/load-apps-catalog.js +6 -22
  1400. package/components/apps/overlay-app-api.d.ts +17 -4
  1401. package/components/apps/overlay-app-api.d.ts.map +1 -1
  1402. package/components/apps/overlay-app-registry.d.ts +10 -7
  1403. package/components/apps/overlay-app-registry.d.ts.map +1 -1
  1404. package/components/apps/overlay-app-registry.js +24 -16
  1405. package/components/apps/provenance.d.ts +36 -0
  1406. package/components/apps/provenance.d.ts.map +1 -0
  1407. package/components/apps/provenance.js +40 -0
  1408. package/components/apps/run-attention.d.ts +1 -1
  1409. package/components/apps/surfaces/GameOperatorShell.d.ts +1 -9
  1410. package/components/apps/surfaces/GameOperatorShell.d.ts.map +1 -1
  1411. package/components/apps/surfaces/GameOperatorShell.js +5 -11
  1412. package/components/apps/surfaces/registry.d.ts +2 -2
  1413. package/components/apps/surfaces/registry.js +1 -1
  1414. package/components/apps/useRegistryCatalog.d.ts +2 -1
  1415. package/components/apps/useRegistryCatalog.d.ts.map +1 -1
  1416. package/components/apps/useRegistryCatalog.js +12 -4
  1417. package/components/apps/viewer-auth.d.ts +11 -2
  1418. package/components/apps/viewer-auth.d.ts.map +1 -1
  1419. package/components/apps/viewer-auth.js +12 -3
  1420. package/components/auth/LoginView.d.ts +1 -1
  1421. package/components/auth/LoginView.d.ts.map +1 -1
  1422. package/components/auth/LoginView.js +51 -11
  1423. package/components/brand/eliza-mark.d.ts +16 -0
  1424. package/components/brand/eliza-mark.d.ts.map +1 -0
  1425. package/components/brand/eliza-mark.js +15 -0
  1426. package/components/character/CharacterEditor.d.ts +4 -1
  1427. package/components/character/CharacterEditor.d.ts.map +1 -1
  1428. package/components/character/CharacterEditor.js +242 -140
  1429. package/components/character/CharacterEditorPanels.d.ts +1 -1
  1430. package/components/character/CharacterEditorPanels.d.ts.map +1 -1
  1431. package/components/character/CharacterEditorPanels.js +227 -118
  1432. package/components/character/CharacterExperienceWorkspace.d.ts +1 -1
  1433. package/components/character/CharacterExperienceWorkspace.d.ts.map +1 -1
  1434. package/components/character/CharacterExperienceWorkspace.js +216 -214
  1435. package/components/character/CharacterHubView.d.ts +4 -2
  1436. package/components/character/CharacterHubView.d.ts.map +1 -1
  1437. package/components/character/CharacterHubView.js +101 -350
  1438. package/components/character/CharacterLearnedSkillsSection.d.ts.map +1 -1
  1439. package/components/character/CharacterLearnedSkillsSection.js +67 -34
  1440. package/components/character/CharacterOverviewSection.d.ts +7 -10
  1441. package/components/character/CharacterOverviewSection.d.ts.map +1 -1
  1442. package/components/character/CharacterOverviewSection.js +19 -20
  1443. package/components/character/CharacterPersonalityTimeline.d.ts +1 -1
  1444. package/components/character/CharacterPersonalityTimeline.js +1 -1
  1445. package/components/character/CharacterRoster.d.ts +2 -12
  1446. package/components/character/CharacterRoster.d.ts.map +1 -1
  1447. package/components/character/CharacterRoster.helpers.d.ts +13 -0
  1448. package/components/character/CharacterRoster.helpers.d.ts.map +1 -0
  1449. package/components/character/CharacterRoster.helpers.js +43 -0
  1450. package/components/character/CharacterRoster.js +8 -60
  1451. package/components/character/MusicLibraryCharacterWidget.d.ts +1 -1
  1452. package/components/character/MusicLibraryCharacterWidget.js +2 -2
  1453. package/components/character/character-editor-helpers.d.ts +4 -4
  1454. package/components/character/character-editor-helpers.d.ts.map +1 -1
  1455. package/components/character/character-editor-helpers.js +1 -1
  1456. package/components/character/character-hub-helpers.d.ts +2 -2
  1457. package/components/character/character-voice-config.d.ts +2 -2
  1458. package/components/character/useCharacterHubData.d.ts +41 -0
  1459. package/components/character/useCharacterHubData.d.ts.map +1 -0
  1460. package/components/character/useCharacterHubData.js +112 -0
  1461. package/components/chat/AccountRequiredCard.d.ts +12 -2
  1462. package/components/chat/AccountRequiredCard.d.ts.map +1 -1
  1463. package/components/chat/AccountRequiredCard.js +55 -5
  1464. package/components/chat/AgentActivityBox.d.ts +1 -1
  1465. package/components/chat/AgentActivityBox.d.ts.map +1 -1
  1466. package/components/chat/AgentActivityBox.js +29 -18
  1467. package/components/chat/AppsSection.d.ts.map +1 -1
  1468. package/components/chat/AppsSection.js +14 -15
  1469. package/components/chat/ConnectorAccountPicker.d.ts +1 -1
  1470. package/components/chat/ConnectorAccountPicker.d.ts.map +1 -1
  1471. package/components/chat/ConnectorAccountPicker.js +5 -1
  1472. package/components/chat/InlineWidgetText.d.ts +6 -0
  1473. package/components/chat/InlineWidgetText.d.ts.map +1 -0
  1474. package/components/chat/InlineWidgetText.js +99 -0
  1475. package/components/chat/MessageAttachments.d.ts +40 -0
  1476. package/components/chat/MessageAttachments.d.ts.map +1 -0
  1477. package/components/chat/MessageAttachments.js +524 -0
  1478. package/components/chat/MessageContent.d.ts +15 -33
  1479. package/components/chat/MessageContent.d.ts.map +1 -1
  1480. package/components/chat/MessageContent.js +241 -428
  1481. package/components/chat/SaveCommandModal.js +8 -6
  1482. package/components/chat/TasksEventsPanel.d.ts +2 -3
  1483. package/components/chat/TasksEventsPanel.d.ts.map +1 -1
  1484. package/components/chat/TasksEventsPanel.js +7 -9
  1485. package/components/chat/ThinkingBlock.d.ts +14 -0
  1486. package/components/chat/ThinkingBlock.d.ts.map +1 -0
  1487. package/components/chat/ThinkingBlock.js +19 -0
  1488. package/components/chat/TranscriptViewerOverlay.d.ts +32 -0
  1489. package/components/chat/TranscriptViewerOverlay.d.ts.map +1 -0
  1490. package/components/chat/TranscriptViewerOverlay.js +329 -0
  1491. package/components/chat/WidgetVisibilityPanel.d.ts +3 -4
  1492. package/components/chat/WidgetVisibilityPanel.d.ts.map +1 -1
  1493. package/components/chat/WidgetVisibilityPanel.helpers.d.ts +3 -0
  1494. package/components/chat/WidgetVisibilityPanel.helpers.d.ts.map +1 -0
  1495. package/components/chat/WidgetVisibilityPanel.helpers.js +13 -0
  1496. package/components/chat/WidgetVisibilityPanel.js +3 -22
  1497. package/components/chat/connector-send-as.d.ts +1 -1
  1498. package/components/chat/message-choice-parser.d.ts +3 -1
  1499. package/components/chat/message-choice-parser.d.ts.map +1 -1
  1500. package/components/chat/message-choice-parser.js +8 -2
  1501. package/components/chat/message-followups-parser.d.ts +38 -0
  1502. package/components/chat/message-followups-parser.d.ts.map +1 -0
  1503. package/components/chat/message-followups-parser.js +81 -0
  1504. package/components/chat/message-form-parser.d.ts +65 -0
  1505. package/components/chat/message-form-parser.d.ts.map +1 -0
  1506. package/components/chat/message-form-parser.js +144 -0
  1507. package/components/chat/message-parser-helpers.d.ts +139 -0
  1508. package/components/chat/message-parser-helpers.d.ts.map +1 -0
  1509. package/components/chat/message-parser-helpers.js +490 -0
  1510. package/components/chat/message-task-parser.d.ts +39 -0
  1511. package/components/chat/message-task-parser.d.ts.map +1 -0
  1512. package/components/chat/message-task-parser.js +56 -0
  1513. package/components/chat/widgets/ChoiceWidget.d.ts +3 -1
  1514. package/components/chat/widgets/ChoiceWidget.d.ts.map +1 -1
  1515. package/components/chat/widgets/ChoiceWidget.js +19 -4
  1516. package/components/chat/widgets/__e2e__/orchestrator-accounts-fixture.d.ts +2 -0
  1517. package/components/chat/widgets/__e2e__/orchestrator-accounts-fixture.d.ts.map +1 -0
  1518. package/components/chat/widgets/__e2e__/orchestrator-accounts-fixture.js +131 -0
  1519. package/components/chat/widgets/agent-orchestrator-accounts-view.d.ts +13 -0
  1520. package/components/chat/widgets/agent-orchestrator-accounts-view.d.ts.map +1 -0
  1521. package/components/chat/widgets/agent-orchestrator-accounts-view.js +87 -0
  1522. package/components/chat/widgets/agent-orchestrator.d.ts +1 -1
  1523. package/components/chat/widgets/agent-orchestrator.d.ts.map +1 -1
  1524. package/components/chat/widgets/agent-orchestrator.js +191 -49
  1525. package/components/chat/widgets/browser-launch-widget.d.ts +19 -0
  1526. package/components/chat/widgets/browser-launch-widget.d.ts.map +1 -0
  1527. package/components/chat/widgets/browser-launch-widget.js +38 -0
  1528. package/components/chat/widgets/browser-status.d.ts +1 -2
  1529. package/components/chat/widgets/browser-status.d.ts.map +1 -1
  1530. package/components/chat/widgets/browser-status.helpers.d.ts +3 -0
  1531. package/components/chat/widgets/browser-status.helpers.d.ts.map +1 -0
  1532. package/components/chat/widgets/browser-status.helpers.js +8 -0
  1533. package/components/chat/widgets/browser-status.js +18 -35
  1534. package/components/chat/widgets/calendar-upcoming.d.ts +17 -0
  1535. package/components/chat/widgets/calendar-upcoming.d.ts.map +1 -0
  1536. package/components/chat/widgets/calendar-upcoming.js +149 -0
  1537. package/components/chat/widgets/credential-request-widget.d.ts +40 -0
  1538. package/components/chat/widgets/credential-request-widget.d.ts.map +1 -0
  1539. package/components/chat/widgets/credential-request-widget.js +52 -0
  1540. package/components/chat/widgets/finances-alerts.d.ts +17 -0
  1541. package/components/chat/widgets/finances-alerts.d.ts.map +1 -0
  1542. package/components/chat/widgets/finances-alerts.js +214 -0
  1543. package/components/chat/widgets/followups.d.ts +35 -0
  1544. package/components/chat/widgets/followups.d.ts.map +1 -0
  1545. package/components/chat/widgets/followups.js +56 -0
  1546. package/components/chat/widgets/form-request.d.ts +23 -0
  1547. package/components/chat/widgets/form-request.d.ts.map +1 -0
  1548. package/components/chat/widgets/form-request.js +97 -0
  1549. package/components/chat/widgets/goals-attention.d.ts +17 -0
  1550. package/components/chat/widgets/goals-attention.d.ts.map +1 -0
  1551. package/components/chat/widgets/goals-attention.js +155 -0
  1552. package/components/chat/widgets/health-sleep.d.ts +18 -0
  1553. package/components/chat/widgets/health-sleep.d.ts.map +1 -0
  1554. package/components/chat/widgets/health-sleep.js +159 -0
  1555. package/components/chat/widgets/home-widget-card.d.ts +47 -0
  1556. package/components/chat/widgets/home-widget-card.d.ts.map +1 -0
  1557. package/components/chat/widgets/home-widget-card.js +64 -0
  1558. package/components/chat/widgets/inbox-unread.d.ts +10 -0
  1559. package/components/chat/widgets/inbox-unread.d.ts.map +1 -0
  1560. package/components/chat/widgets/inbox-unread.js +119 -0
  1561. package/components/chat/widgets/inline-builtins.d.ts +12 -0
  1562. package/components/chat/widgets/inline-builtins.d.ts.map +1 -0
  1563. package/components/chat/widgets/inline-builtins.js +36 -0
  1564. package/components/chat/widgets/inline-registry.d.ts +59 -0
  1565. package/components/chat/widgets/inline-registry.d.ts.map +1 -0
  1566. package/components/chat/widgets/inline-registry.js +33 -0
  1567. package/components/chat/widgets/messages.d.ts +8 -0
  1568. package/components/chat/widgets/messages.d.ts.map +1 -0
  1569. package/components/chat/widgets/messages.js +38 -0
  1570. package/components/chat/widgets/music-player.d.ts +1 -2
  1571. package/components/chat/widgets/music-player.d.ts.map +1 -1
  1572. package/components/chat/widgets/music-player.helpers.d.ts +3 -0
  1573. package/components/chat/widgets/music-player.helpers.d.ts.map +1 -0
  1574. package/components/chat/widgets/music-player.helpers.js +8 -0
  1575. package/components/chat/widgets/music-player.js +5 -10
  1576. package/components/chat/widgets/needs-attention.d.ts +22 -0
  1577. package/components/chat/widgets/needs-attention.d.ts.map +1 -0
  1578. package/components/chat/widgets/needs-attention.js +109 -0
  1579. package/components/chat/widgets/notifications.d.ts +9 -0
  1580. package/components/chat/widgets/notifications.d.ts.map +1 -0
  1581. package/components/chat/widgets/notifications.js +42 -0
  1582. package/components/chat/widgets/orchestrator-grilling-card.d.ts +24 -0
  1583. package/components/chat/widgets/orchestrator-grilling-card.d.ts.map +1 -0
  1584. package/components/chat/widgets/orchestrator-grilling-card.js +57 -0
  1585. package/components/chat/widgets/relationships-attention.d.ts +18 -0
  1586. package/components/chat/widgets/relationships-attention.d.ts.map +1 -0
  1587. package/components/chat/widgets/relationships-attention.js +135 -0
  1588. package/components/chat/widgets/shared.js +2 -2
  1589. package/components/chat/widgets/task-widget.d.ts +34 -0
  1590. package/components/chat/widgets/task-widget.d.ts.map +1 -0
  1591. package/components/chat/widgets/task-widget.js +187 -0
  1592. package/components/chat/widgets/todo.d.ts +1 -1
  1593. package/components/chat/widgets/todo.d.ts.map +1 -1
  1594. package/components/chat/widgets/todo.js +46 -27
  1595. package/components/chat/widgets/topic-chips-bar.d.ts +23 -0
  1596. package/components/chat/widgets/topic-chips-bar.d.ts.map +1 -0
  1597. package/components/chat/widgets/topic-chips-bar.js +22 -0
  1598. package/components/chat/widgets/topic-grouped-transcript.d.ts +20 -0
  1599. package/components/chat/widgets/topic-grouped-transcript.d.ts.map +1 -0
  1600. package/components/chat/widgets/topic-grouped-transcript.js +45 -0
  1601. package/components/chat/widgets/types.d.ts +5 -2
  1602. package/components/chat/widgets/types.d.ts.map +1 -1
  1603. package/components/chat/widgets/use-inline-widget-context.d.ts +18 -0
  1604. package/components/chat/widgets/use-inline-widget-context.d.ts.map +1 -0
  1605. package/components/chat/widgets/use-inline-widget-context.js +46 -0
  1606. package/components/cloud/CloudSourceControls.d.ts.map +1 -1
  1607. package/components/cloud/CloudSourceControls.js +7 -6
  1608. package/components/cloud/CloudStatusBadge.d.ts +0 -18
  1609. package/components/cloud/CloudStatusBadge.d.ts.map +1 -1
  1610. package/components/cloud/CloudStatusBadge.js +8 -9
  1611. package/components/cloud/FlaminaGuide.d.ts +1 -1
  1612. package/components/cloud/FlaminaGuide.d.ts.map +1 -1
  1613. package/components/cloud/FlaminaGuide.js +17 -12
  1614. package/components/cloud/StripeEmbeddedCheckout.js +2 -2
  1615. package/components/companion/injected.d.ts +1 -3
  1616. package/components/companion/injected.d.ts.map +1 -1
  1617. package/components/companion/injected.hooks.d.ts +4 -0
  1618. package/components/companion/injected.hooks.d.ts.map +1 -0
  1619. package/components/companion/injected.hooks.js +12 -0
  1620. package/components/companion/injected.js +1 -13
  1621. package/components/composites/OwnerBadge.d.ts +35 -0
  1622. package/components/composites/OwnerBadge.d.ts.map +1 -0
  1623. package/components/composites/OwnerBadge.js +35 -0
  1624. package/components/composites/chat/ChatVoiceStatusBar.d.ts +38 -0
  1625. package/components/composites/chat/ChatVoiceStatusBar.d.ts.map +1 -0
  1626. package/components/composites/chat/ChatVoiceStatusBar.js +71 -0
  1627. package/components/composites/chat/ContinuousChatToggle.d.ts +26 -0
  1628. package/components/composites/chat/ContinuousChatToggle.d.ts.map +1 -0
  1629. package/components/composites/chat/ContinuousChatToggle.js +66 -0
  1630. package/components/composites/chat/chat-attachment-strip.d.ts +1 -1
  1631. package/components/composites/chat/chat-attachment-strip.d.ts.map +1 -1
  1632. package/components/composites/chat/chat-attachment-strip.js +7 -2
  1633. package/components/composites/chat/chat-bubble.d.ts.map +1 -1
  1634. package/components/composites/chat/chat-bubble.js +7 -2
  1635. package/components/composites/chat/chat-composer-shell.d.ts +1 -1
  1636. package/components/composites/chat/chat-composer-shell.js +4 -4
  1637. package/components/composites/chat/chat-composer.d.ts +12 -7
  1638. package/components/composites/chat/chat-composer.d.ts.map +1 -1
  1639. package/components/composites/chat/chat-composer.js +53 -55
  1640. package/components/composites/chat/chat-conversation-item.d.ts +2 -2
  1641. package/components/composites/chat/chat-conversation-item.d.ts.map +1 -1
  1642. package/components/composites/chat/chat-conversation-item.js +21 -19
  1643. package/components/composites/chat/chat-empty-state.d.ts +1 -1
  1644. package/components/composites/chat/chat-empty-state.js +1 -1
  1645. package/components/composites/chat/chat-message-actions.d.ts +1 -1
  1646. package/components/composites/chat/chat-message-actions.js +1 -1
  1647. package/components/composites/chat/chat-message.d.ts +18 -3
  1648. package/components/composites/chat/chat-message.d.ts.map +1 -1
  1649. package/components/composites/chat/chat-message.js +134 -36
  1650. package/components/composites/chat/chat-source.d.ts +15 -17
  1651. package/components/composites/chat/chat-source.d.ts.map +1 -1
  1652. package/components/composites/chat/chat-source.helpers.d.ts +25 -0
  1653. package/components/composites/chat/chat-source.helpers.d.ts.map +1 -0
  1654. package/components/composites/chat/chat-source.helpers.js +66 -0
  1655. package/components/composites/chat/chat-source.js +18 -51
  1656. package/components/composites/chat/chat-thread-layout.d.ts +1 -1
  1657. package/components/composites/chat/chat-thread-layout.d.ts.map +1 -1
  1658. package/components/composites/chat/chat-thread-layout.js +2 -2
  1659. package/components/composites/chat/chat-transcript.d.ts +6 -2
  1660. package/components/composites/chat/chat-transcript.d.ts.map +1 -1
  1661. package/components/composites/chat/chat-transcript.js +42 -7
  1662. package/components/composites/chat/chat-types.d.ts +25 -0
  1663. package/components/composites/chat/chat-types.d.ts.map +1 -1
  1664. package/components/composites/chat/chat-typing-indicator.d.ts +1 -1
  1665. package/components/composites/chat/chat-typing-indicator.js +1 -1
  1666. package/components/composites/chat/index.d.ts +16 -17
  1667. package/components/composites/chat/index.d.ts.map +1 -1
  1668. package/components/composites/chat/index.js +2 -3
  1669. package/components/composites/chat/permission-card.d.ts +1 -62
  1670. package/components/composites/chat/permission-card.d.ts.map +1 -1
  1671. package/components/composites/chat/permission-card.helpers.d.ts +67 -0
  1672. package/components/composites/chat/permission-card.helpers.d.ts.map +1 -0
  1673. package/components/composites/chat/permission-card.helpers.js +182 -0
  1674. package/components/composites/chat/permission-card.js +82 -171
  1675. package/components/composites/chat/permission-card.render.d.ts +7 -0
  1676. package/components/composites/chat/permission-card.render.d.ts.map +1 -0
  1677. package/components/composites/chat/permission-card.render.js +9 -0
  1678. package/components/composites/chat-search-hint.d.ts +21 -0
  1679. package/components/composites/chat-search-hint.d.ts.map +1 -0
  1680. package/components/composites/chat-search-hint.js +24 -0
  1681. package/components/composites/code/DiffReviewPanel.d.ts +17 -0
  1682. package/components/composites/code/DiffReviewPanel.d.ts.map +1 -0
  1683. package/components/composites/code/DiffReviewPanel.js +97 -0
  1684. package/components/composites/code/index.d.ts +2 -0
  1685. package/components/composites/code/index.d.ts.map +1 -0
  1686. package/components/composites/code/index.js +1 -0
  1687. package/components/composites/form-field/index.d.ts +1 -1
  1688. package/components/composites/index.d.ts +29 -25
  1689. package/components/composites/index.d.ts.map +1 -1
  1690. package/components/composites/index.js +5 -1
  1691. package/components/composites/page-panel/index.d.ts +21 -18
  1692. package/components/composites/page-panel/index.d.ts.map +1 -1
  1693. package/components/composites/page-panel/index.js +3 -0
  1694. package/components/composites/page-panel/page-panel-collapsible-section.d.ts +1 -1
  1695. package/components/composites/page-panel/page-panel-collapsible-section.d.ts.map +1 -1
  1696. package/components/composites/page-panel/page-panel-collapsible-section.js +2 -2
  1697. package/components/composites/page-panel/page-panel-empty.d.ts +1 -1
  1698. package/components/composites/page-panel/page-panel-empty.d.ts.map +1 -1
  1699. package/components/composites/page-panel/page-panel-empty.js +4 -4
  1700. package/components/composites/page-panel/page-panel-feature-empty.d.ts +22 -0
  1701. package/components/composites/page-panel/page-panel-feature-empty.d.ts.map +1 -0
  1702. package/components/composites/page-panel/page-panel-feature-empty.js +9 -0
  1703. package/components/composites/page-panel/page-panel-frame.d.ts +1 -1
  1704. package/components/composites/page-panel/page-panel-frame.d.ts.map +1 -1
  1705. package/components/composites/page-panel/page-panel-frame.js +1 -1
  1706. package/components/composites/page-panel/page-panel-header.d.ts +1 -1
  1707. package/components/composites/page-panel/page-panel-header.d.ts.map +1 -1
  1708. package/components/composites/page-panel/page-panel-header.js +13 -13
  1709. package/components/composites/page-panel/page-panel-loading.d.ts +1 -1
  1710. package/components/composites/page-panel/page-panel-loading.d.ts.map +1 -1
  1711. package/components/composites/page-panel/page-panel-loading.js +3 -3
  1712. package/components/composites/page-panel/page-panel-root.d.ts +3 -3
  1713. package/components/composites/page-panel/page-panel-root.d.ts.map +1 -1
  1714. package/components/composites/page-panel/page-panel-root.js +7 -6
  1715. package/components/composites/page-panel/page-panel-toolbar.d.ts +1 -1
  1716. package/components/composites/page-panel/page-panel-types.d.ts +2 -2
  1717. package/components/composites/page-panel/page-panel-types.d.ts.map +1 -1
  1718. package/components/composites/search/index.d.ts +1 -2
  1719. package/components/composites/search/index.d.ts.map +1 -1
  1720. package/components/composites/search/index.js +0 -1
  1721. package/components/composites/search/searchbar.d.ts +0 -10
  1722. package/components/composites/search/searchbar.d.ts.map +1 -1
  1723. package/components/composites/search/searchbar.js +1 -12
  1724. package/components/composites/sidebar/index.d.ts +10 -10
  1725. package/components/composites/sidebar/index.d.ts.map +1 -1
  1726. package/components/composites/sidebar/index.js +1 -1
  1727. package/components/composites/sidebar/nav-active.d.ts +16 -0
  1728. package/components/composites/sidebar/nav-active.d.ts.map +1 -0
  1729. package/components/composites/sidebar/nav-active.js +15 -0
  1730. package/components/composites/sidebar/sidebar-auto-rail.d.ts +1 -1
  1731. package/components/composites/sidebar/sidebar-body.d.ts +1 -1
  1732. package/components/composites/sidebar/sidebar-collapsed-rail.d.ts +1 -1
  1733. package/components/composites/sidebar/sidebar-content.d.ts.map +1 -1
  1734. package/components/composites/sidebar/sidebar-content.js +9 -8
  1735. package/components/composites/sidebar/sidebar-header-stack.d.ts +1 -1
  1736. package/components/composites/sidebar/sidebar-header.d.ts +2 -2
  1737. package/components/composites/sidebar/sidebar-header.d.ts.map +1 -1
  1738. package/components/composites/sidebar/sidebar-panel.d.ts +1 -1
  1739. package/components/composites/sidebar/sidebar-root.d.ts +1 -1
  1740. package/components/composites/sidebar/sidebar-root.d.ts.map +1 -1
  1741. package/components/composites/sidebar/sidebar-root.js +42 -16
  1742. package/components/composites/sidebar/sidebar-scroll-region.d.ts +1 -1
  1743. package/components/composites/sidebar/sidebar-types.d.ts +0 -19
  1744. package/components/composites/sidebar/sidebar-types.d.ts.map +1 -1
  1745. package/components/composites/skills/index.d.ts +1 -1
  1746. package/components/composites/skills/skill-sidebar-item.js +2 -2
  1747. package/components/composites/trajectories/index.d.ts +7 -7
  1748. package/components/composites/trajectories/trajectory-cache-stats.js +1 -1
  1749. package/components/composites/trajectories/trajectory-code-block.d.ts.map +1 -1
  1750. package/components/composites/trajectories/trajectory-code-block.js +4 -3
  1751. package/components/composites/trajectories/trajectory-context-diff-list.js +2 -2
  1752. package/components/composites/trajectories/trajectory-event-timeline.js +1 -1
  1753. package/components/composites/trajectories/trajectory-llm-call-card.d.ts +2 -3
  1754. package/components/composites/trajectories/trajectory-llm-call-card.d.ts.map +1 -1
  1755. package/components/composites/trajectories/trajectory-llm-call-card.js +2 -2
  1756. package/components/composites/trajectories/trajectory-pipeline-graph.js +6 -6
  1757. package/components/config-ui/config-control-primitives.d.ts +0 -10
  1758. package/components/config-ui/config-control-primitives.d.ts.map +1 -1
  1759. package/components/config-ui/config-control-primitives.helpers.d.ts +11 -0
  1760. package/components/config-ui/config-control-primitives.helpers.d.ts.map +1 -0
  1761. package/components/config-ui/config-control-primitives.helpers.js +15 -0
  1762. package/components/config-ui/config-control-primitives.js +0 -15
  1763. package/components/config-ui/config-field.d.ts +1 -48
  1764. package/components/config-ui/config-field.d.ts.map +1 -1
  1765. package/components/config-ui/config-field.helpers.d.ts +49 -0
  1766. package/components/config-ui/config-field.helpers.d.ts.map +1 -0
  1767. package/components/config-ui/config-field.helpers.js +870 -0
  1768. package/components/config-ui/config-field.js +4 -849
  1769. package/components/config-ui/config-renderer.d.ts +3 -133
  1770. package/components/config-ui/config-renderer.d.ts.map +1 -1
  1771. package/components/config-ui/config-renderer.helpers.d.ts +25 -0
  1772. package/components/config-ui/config-renderer.helpers.d.ts.map +1 -0
  1773. package/components/config-ui/config-renderer.helpers.js +30 -0
  1774. package/components/config-ui/config-renderer.js +9 -41
  1775. package/components/config-ui/index.d.ts +7 -4
  1776. package/components/config-ui/index.d.ts.map +1 -1
  1777. package/components/config-ui/index.js +4 -1
  1778. package/components/config-ui/ui-renderer.d.ts +1 -6
  1779. package/components/config-ui/ui-renderer.d.ts.map +1 -1
  1780. package/components/config-ui/ui-renderer.helpers.d.ts +9 -0
  1781. package/components/config-ui/ui-renderer.helpers.d.ts.map +1 -0
  1782. package/components/config-ui/ui-renderer.helpers.js +175 -0
  1783. package/components/config-ui/ui-renderer.js +30 -137
  1784. package/components/connectors/BlueBubblesStatusPanel.d.ts.map +1 -1
  1785. package/components/connectors/BlueBubblesStatusPanel.js +14 -26
  1786. package/components/connectors/ConnectorAccountAuditList.d.ts.map +1 -1
  1787. package/components/connectors/ConnectorAccountAuditList.js +40 -33
  1788. package/components/connectors/ConnectorAccountCard.d.ts +1 -1
  1789. package/components/connectors/ConnectorAccountCard.d.ts.map +1 -1
  1790. package/components/connectors/ConnectorAccountCard.js +100 -32
  1791. package/components/connectors/ConnectorAccountList.d.ts +23 -2
  1792. package/components/connectors/ConnectorAccountList.d.ts.map +1 -1
  1793. package/components/connectors/ConnectorAccountList.js +38 -8
  1794. package/components/connectors/ConnectorAccountPrivacySelector.d.ts +1 -1
  1795. package/components/connectors/ConnectorAccountPrivacySelector.d.ts.map +1 -1
  1796. package/components/connectors/ConnectorAccountPrivacySelector.js +33 -6
  1797. package/components/connectors/ConnectorAccountPurposeSelector.d.ts +1 -1
  1798. package/components/connectors/ConnectorAccountPurposeSelector.d.ts.map +1 -1
  1799. package/components/connectors/ConnectorAccountPurposeSelector.js +20 -3
  1800. package/components/connectors/ConnectorAccountSetupScope.d.ts.map +1 -1
  1801. package/components/connectors/ConnectorAccountSetupScope.js +18 -5
  1802. package/components/connectors/ConnectorModeSelector.d.ts +1 -30
  1803. package/components/connectors/ConnectorModeSelector.d.ts.map +1 -1
  1804. package/components/connectors/ConnectorModeSelector.helpers.d.ts +21 -0
  1805. package/components/connectors/ConnectorModeSelector.helpers.d.ts.map +1 -0
  1806. package/components/connectors/ConnectorModeSelector.helpers.js +257 -0
  1807. package/components/connectors/ConnectorModeSelector.hooks.d.ts +13 -0
  1808. package/components/connectors/ConnectorModeSelector.hooks.d.ts.map +1 -0
  1809. package/components/connectors/ConnectorModeSelector.hooks.js +22 -0
  1810. package/components/connectors/ConnectorModeSelector.js +9 -248
  1811. package/components/connectors/ConnectorQrPairingOverlay.d.ts +33 -0
  1812. package/components/connectors/ConnectorQrPairingOverlay.d.ts.map +1 -0
  1813. package/components/connectors/ConnectorQrPairingOverlay.js +50 -0
  1814. package/components/connectors/ConnectorSetupPanel.d.ts +0 -8
  1815. package/components/connectors/ConnectorSetupPanel.d.ts.map +1 -1
  1816. package/components/connectors/ConnectorSetupPanel.helpers.d.ts +11 -0
  1817. package/components/connectors/ConnectorSetupPanel.helpers.d.ts.map +1 -0
  1818. package/components/connectors/ConnectorSetupPanel.helpers.js +52 -0
  1819. package/components/connectors/ConnectorSetupPanel.js +1 -50
  1820. package/components/connectors/DiscordLocalConnectorPanel.d.ts.map +1 -1
  1821. package/components/connectors/DiscordLocalConnectorPanel.js +13 -12
  1822. package/components/connectors/IMessageStatusPanel.d.ts.map +1 -1
  1823. package/components/connectors/IMessageStatusPanel.js +6 -5
  1824. package/components/connectors/OwnerAgentConnectorSetupPanel.d.ts +34 -0
  1825. package/components/connectors/OwnerAgentConnectorSetupPanel.d.ts.map +1 -0
  1826. package/components/connectors/OwnerAgentConnectorSetupPanel.js +32 -0
  1827. package/components/connectors/SignalQrOverlay.d.ts.map +1 -1
  1828. package/components/connectors/SignalQrOverlay.js +37 -60
  1829. package/components/connectors/TelegramAccountConnectorPanel.d.ts.map +1 -1
  1830. package/components/connectors/TelegramAccountConnectorPanel.js +25 -23
  1831. package/components/connectors/TelegramBotSetupPanel.d.ts.map +1 -1
  1832. package/components/connectors/TelegramBotSetupPanel.js +17 -11
  1833. package/components/connectors/WhatsAppQrOverlay.d.ts.map +1 -1
  1834. package/components/connectors/WhatsAppQrOverlay.js +26 -50
  1835. package/components/connectors/XRPairingPanel.d.ts +2 -0
  1836. package/components/connectors/XRPairingPanel.d.ts.map +1 -0
  1837. package/components/connectors/XRPairingPanel.js +57 -0
  1838. package/components/connectors/connector-account-options.d.ts +1 -1
  1839. package/components/conversations/ConversationRenameDialog.d.ts.map +1 -1
  1840. package/components/conversations/ConversationRenameDialog.js +5 -3
  1841. package/components/conversations/ConversationsSidebar.d.ts.map +1 -1
  1842. package/components/conversations/ConversationsSidebar.js +36 -79
  1843. package/components/conversations/conversation-sidebar-model.d.ts +2 -2
  1844. package/components/conversations/conversation-sidebar-model.d.ts.map +1 -1
  1845. package/components/conversations/conversation-sidebar-model.js +1 -1
  1846. package/components/conversations/conversation-utils.d.ts +2 -2
  1847. package/components/conversations/conversation-utils.d.ts.map +1 -1
  1848. package/components/conversations/conversation-utils.js +2 -58
  1849. package/components/custom-actions/CustomActionEditor.d.ts.map +1 -1
  1850. package/components/custom-actions/CustomActionEditor.js +10 -4
  1851. package/components/custom-actions/CustomActionsPanel.d.ts.map +1 -1
  1852. package/components/custom-actions/CustomActionsPanel.js +24 -14
  1853. package/components/custom-actions/CustomActionsView.d.ts.map +1 -1
  1854. package/components/custom-actions/CustomActionsView.js +20 -19
  1855. package/components/custom-actions/custom-action-form.d.ts +5 -5
  1856. package/components/custom-actions/custom-action-form.d.ts.map +1 -1
  1857. package/components/custom-actions/custom-action-form.js +3 -3
  1858. package/components/desktop/DesktopTabBar.d.ts +24 -0
  1859. package/components/desktop/DesktopTabBar.d.ts.map +1 -0
  1860. package/components/desktop/DesktopTabBar.js +34 -0
  1861. package/components/index.d.ts +161 -108
  1862. package/components/index.d.ts.map +1 -1
  1863. package/components/index.js +79 -17
  1864. package/components/local-inference/ActiveModelBar.d.ts +1 -1
  1865. package/components/local-inference/ActiveModelBar.d.ts.map +1 -1
  1866. package/components/local-inference/ActiveModelBar.js +15 -6
  1867. package/components/local-inference/DeviceBridgeStatus.d.ts +4 -1
  1868. package/components/local-inference/DeviceBridgeStatus.d.ts.map +1 -1
  1869. package/components/local-inference/DeviceBridgeStatus.js +18 -28
  1870. package/components/local-inference/DevicesPanel.d.ts +4 -1
  1871. package/components/local-inference/DevicesPanel.d.ts.map +1 -1
  1872. package/components/local-inference/DevicesPanel.js +21 -29
  1873. package/components/local-inference/DownloadProgress.d.ts +1 -1
  1874. package/components/local-inference/DownloadProgress.d.ts.map +1 -1
  1875. package/components/local-inference/DownloadProgress.js +13 -1
  1876. package/components/local-inference/DownloadQueue.d.ts +8 -2
  1877. package/components/local-inference/DownloadQueue.d.ts.map +1 -1
  1878. package/components/local-inference/DownloadQueue.js +17 -6
  1879. package/components/local-inference/FirstRunOffer.d.ts +3 -2
  1880. package/components/local-inference/FirstRunOffer.d.ts.map +1 -1
  1881. package/components/local-inference/FirstRunOffer.js +43 -23
  1882. package/components/local-inference/HardwareBadge.d.ts +1 -1
  1883. package/components/local-inference/HardwareBadge.d.ts.map +1 -1
  1884. package/components/local-inference/HardwareBadge.js +12 -2
  1885. package/components/local-inference/LocalInferencePanel.d.ts +1 -1
  1886. package/components/local-inference/LocalInferencePanel.d.ts.map +1 -1
  1887. package/components/local-inference/LocalInferencePanel.js +218 -61
  1888. package/components/local-inference/ModelCard.d.ts +3 -2
  1889. package/components/local-inference/ModelCard.d.ts.map +1 -1
  1890. package/components/local-inference/ModelCard.js +26 -5
  1891. package/components/local-inference/ModelHubView.d.ts +1 -1
  1892. package/components/local-inference/ModelHubView.d.ts.map +1 -1
  1893. package/components/local-inference/ModelHubView.js +33 -6
  1894. package/components/local-inference/ModelUpdatesPanel.d.ts +52 -0
  1895. package/components/local-inference/ModelUpdatesPanel.d.ts.map +1 -0
  1896. package/components/local-inference/ModelUpdatesPanel.js +113 -0
  1897. package/components/local-inference/ProvidersList.d.ts.map +1 -1
  1898. package/components/local-inference/ProvidersList.js +51 -17
  1899. package/components/local-inference/RoutingMatrix.d.ts.map +1 -1
  1900. package/components/local-inference/RoutingMatrix.js +194 -37
  1901. package/components/local-inference/SlotAssignments.d.ts +1 -1
  1902. package/components/local-inference/SlotAssignments.d.ts.map +1 -1
  1903. package/components/local-inference/SlotAssignments.js +65 -29
  1904. package/components/local-inference/hub-utils.d.ts +6 -2
  1905. package/components/local-inference/hub-utils.d.ts.map +1 -1
  1906. package/components/local-inference/hub-utils.js +16 -8
  1907. package/components/local-inference/runtime-class-ui.d.ts +44 -0
  1908. package/components/local-inference/runtime-class-ui.d.ts.map +1 -0
  1909. package/components/local-inference/runtime-class-ui.js +61 -0
  1910. package/components/local-inference/slot-metadata.d.ts +9 -0
  1911. package/components/local-inference/slot-metadata.d.ts.map +1 -0
  1912. package/components/local-inference/slot-metadata.js +32 -0
  1913. package/components/local-inference/useDeviceBridgeStatus.d.ts +4 -0
  1914. package/components/local-inference/useDeviceBridgeStatus.d.ts.map +1 -0
  1915. package/components/local-inference/useDeviceBridgeStatus.js +35 -0
  1916. package/components/local-inference/useHomeModelStatus.d.ts +9 -0
  1917. package/components/local-inference/useHomeModelStatus.d.ts.map +1 -0
  1918. package/components/local-inference/useHomeModelStatus.js +65 -0
  1919. package/components/pages/AppDetailsView.d.ts +2 -13
  1920. package/components/pages/AppDetailsView.d.ts.map +1 -1
  1921. package/components/pages/AppDetailsView.helpers.d.ts +11 -0
  1922. package/components/pages/AppDetailsView.helpers.d.ts.map +1 -0
  1923. package/components/pages/AppDetailsView.helpers.js +35 -0
  1924. package/components/pages/AppDetailsView.js +216 -64
  1925. package/components/pages/AppsPageView.d.ts.map +1 -1
  1926. package/components/pages/AppsPageView.js +19 -13
  1927. package/components/pages/AppsView.d.ts +0 -1
  1928. package/components/pages/AppsView.d.ts.map +1 -1
  1929. package/components/pages/AppsView.js +103 -65
  1930. package/components/pages/AutomationsFeed.d.ts +8 -19
  1931. package/components/pages/AutomationsFeed.d.ts.map +1 -1
  1932. package/components/pages/AutomationsFeed.js +275 -121
  1933. package/components/pages/BackgroundView.d.ts +10 -0
  1934. package/components/pages/BackgroundView.d.ts.map +1 -0
  1935. package/components/pages/BackgroundView.js +14 -0
  1936. package/components/pages/BrowserWorkspaceView.d.ts +65 -11
  1937. package/components/pages/BrowserWorkspaceView.d.ts.map +1 -1
  1938. package/components/pages/BrowserWorkspaceView.js +264 -130
  1939. package/components/pages/CameraPageView.d.ts +2 -0
  1940. package/components/pages/CameraPageView.d.ts.map +1 -0
  1941. package/components/pages/CameraPageView.js +149 -0
  1942. package/components/pages/ChatView.d.ts +9 -3
  1943. package/components/pages/ChatView.d.ts.map +1 -1
  1944. package/components/pages/ChatView.js +295 -90
  1945. package/components/pages/ConfigPageView.d.ts.map +1 -1
  1946. package/components/pages/ConfigPageView.js +139 -76
  1947. package/components/pages/DatabasePageView.d.ts.map +1 -1
  1948. package/components/pages/DatabasePageView.js +36 -9
  1949. package/components/pages/DatabaseView.d.ts.map +1 -1
  1950. package/components/pages/DatabaseView.js +145 -70
  1951. package/components/pages/DocumentsView.d.ts +2 -2
  1952. package/components/pages/DocumentsView.d.ts.map +1 -1
  1953. package/components/pages/DocumentsView.js +153 -76
  1954. package/components/pages/ElizaCloudDashboard.d.ts.map +1 -1
  1955. package/components/pages/ElizaCloudDashboard.js +46 -21
  1956. package/components/pages/ElizaOsAppsView.d.ts.map +1 -1
  1957. package/components/pages/ElizaOsAppsView.js +417 -47
  1958. package/components/pages/FilesView.d.ts +15 -0
  1959. package/components/pages/FilesView.d.ts.map +1 -0
  1960. package/components/pages/FilesView.js +201 -0
  1961. package/components/pages/GeneratedViewHero.d.ts +31 -0
  1962. package/components/pages/GeneratedViewHero.d.ts.map +1 -0
  1963. package/components/pages/GeneratedViewHero.js +118 -0
  1964. package/components/pages/HeartbeatForm.d.ts +3 -3
  1965. package/components/pages/HeartbeatForm.d.ts.map +1 -1
  1966. package/components/pages/HeartbeatForm.js +322 -28
  1967. package/components/pages/HeartbeatsView.d.ts.map +1 -1
  1968. package/components/pages/HeartbeatsView.js +182 -50
  1969. package/components/pages/LogsView.d.ts +0 -6
  1970. package/components/pages/LogsView.d.ts.map +1 -1
  1971. package/components/pages/LogsView.js +123 -43
  1972. package/components/pages/MediaGalleryView.d.ts.map +1 -1
  1973. package/components/pages/MediaGalleryView.js +118 -32
  1974. package/components/pages/MemoryDetailPanel.d.ts +1 -1
  1975. package/components/pages/MemoryDetailPanel.d.ts.map +1 -1
  1976. package/components/pages/MemoryDetailPanel.js +11 -5
  1977. package/components/pages/MemoryViewerView.d.ts.map +1 -1
  1978. package/components/pages/MemoryViewerView.js +265 -88
  1979. package/components/pages/PluginCard.d.ts +2 -2
  1980. package/components/pages/PluginCard.d.ts.map +1 -1
  1981. package/components/pages/PluginCard.js +68 -104
  1982. package/components/pages/PluginConfigForm.d.ts +1 -12
  1983. package/components/pages/PluginConfigForm.d.ts.map +1 -1
  1984. package/components/pages/PluginConfigForm.js +7 -6
  1985. package/components/pages/PluginVisual.d.ts +12 -0
  1986. package/components/pages/PluginVisual.d.ts.map +1 -0
  1987. package/components/pages/PluginVisual.js +66 -0
  1988. package/components/pages/PluginsPageView.d.ts.map +1 -1
  1989. package/components/pages/PluginsPageView.js +2 -1
  1990. package/components/pages/PluginsView.d.ts +1 -2
  1991. package/components/pages/PluginsView.d.ts.map +1 -1
  1992. package/components/pages/PluginsView.js +164 -73
  1993. package/components/pages/RelationshipsGraphPanel.d.ts +1 -1
  1994. package/components/pages/RelationshipsGraphPanel.d.ts.map +1 -1
  1995. package/components/pages/RelationshipsGraphPanel.js +58 -15
  1996. package/components/pages/RelationshipsIdentityCluster.d.ts +1 -1
  1997. package/components/pages/RelationshipsIdentityCluster.js +1 -1
  1998. package/components/pages/RelationshipsView.d.ts.map +1 -1
  1999. package/components/pages/RelationshipsView.js +2 -1
  2000. package/components/pages/ReleaseCenterView.d.ts.map +1 -1
  2001. package/components/pages/ReleaseCenterView.js +197 -50
  2002. package/components/pages/RuntimeView.d.ts.map +1 -1
  2003. package/components/pages/RuntimeView.js +127 -65
  2004. package/components/pages/SecretsView.d.ts.map +1 -1
  2005. package/components/pages/SecretsView.js +64 -49
  2006. package/components/pages/SettingsView.d.ts +1 -1
  2007. package/components/pages/SettingsView.d.ts.map +1 -1
  2008. package/components/pages/SettingsView.js +154 -492
  2009. package/components/pages/SkillsView.d.ts.map +1 -1
  2010. package/components/pages/SkillsView.js +229 -87
  2011. package/components/pages/Springboard.d.ts +49 -0
  2012. package/components/pages/Springboard.d.ts.map +1 -0
  2013. package/components/pages/Springboard.js +238 -0
  2014. package/components/pages/SpringboardSurface.d.ts +6 -0
  2015. package/components/pages/SpringboardSurface.d.ts.map +1 -0
  2016. package/components/pages/SpringboardSurface.js +120 -0
  2017. package/components/pages/SqlEditorPanel.d.ts +1 -1
  2018. package/components/pages/SqlEditorPanel.d.ts.map +1 -1
  2019. package/components/pages/SqlEditorPanel.js +9 -7
  2020. package/components/pages/StreamView.d.ts.map +1 -1
  2021. package/components/pages/StreamView.js +68 -64
  2022. package/components/pages/TaskEditor.d.ts +3 -4
  2023. package/components/pages/TaskEditor.d.ts.map +1 -1
  2024. package/components/pages/TaskEditor.js +107 -11
  2025. package/components/pages/TasksPageView.d.ts +4 -0
  2026. package/components/pages/TasksPageView.d.ts.map +1 -1
  2027. package/components/pages/TasksPageView.js +7 -7
  2028. package/components/pages/TrajectoriesView.d.ts.map +1 -1
  2029. package/components/pages/TrajectoriesView.js +70 -41
  2030. package/components/pages/TrajectoryDetailView.d.ts.map +1 -1
  2031. package/components/pages/TrajectoryDetailView.js +82 -72
  2032. package/components/pages/WorkflowEditor.d.ts +4 -4
  2033. package/components/pages/WorkflowEditor.d.ts.map +1 -1
  2034. package/components/pages/WorkflowEditor.js +393 -54
  2035. package/components/pages/WorkflowGraphViewer.d.ts +1 -1
  2036. package/components/pages/WorkflowGraphViewer.d.ts.map +1 -1
  2037. package/components/pages/WorkflowGraphViewer.js +86 -72
  2038. package/components/pages/__e2e__/background-fixture.d.ts +2 -0
  2039. package/components/pages/__e2e__/background-fixture.d.ts.map +1 -0
  2040. package/components/pages/__e2e__/background-fixture.js +84 -0
  2041. package/components/pages/__e2e__/springboard-fixture.d.ts +2 -0
  2042. package/components/pages/__e2e__/springboard-fixture.d.ts.map +1 -0
  2043. package/components/pages/__e2e__/springboard-fixture.js +103 -0
  2044. package/components/pages/automation-conversations.d.ts +1 -1
  2045. package/components/pages/automations-missing-creds.d.ts +1 -1
  2046. package/components/pages/background-image.d.ts +10 -0
  2047. package/components/pages/background-image.d.ts.map +1 -0
  2048. package/components/pages/background-image.js +61 -0
  2049. package/components/pages/browser-workspace-wallet.d.ts +9 -2
  2050. package/components/pages/browser-workspace-wallet.d.ts.map +1 -1
  2051. package/components/pages/browser-workspace-wallet.js +54 -5
  2052. package/components/pages/chat-view-hooks.d.ts +19 -9
  2053. package/components/pages/chat-view-hooks.d.ts.map +1 -1
  2054. package/components/pages/chat-view-hooks.js +189 -86
  2055. package/components/pages/cloud-dashboard-utils.d.ts +1 -1
  2056. package/components/pages/config-page-sections.d.ts +1 -45
  2057. package/components/pages/config-page-sections.d.ts.map +1 -1
  2058. package/components/pages/config-page-sections.helpers.d.ts +37 -0
  2059. package/components/pages/config-page-sections.helpers.d.ts.map +1 -0
  2060. package/components/pages/config-page-sections.helpers.js +4 -0
  2061. package/components/pages/config-page-sections.js +27 -19
  2062. package/components/pages/database-utils.d.ts +2 -7
  2063. package/components/pages/database-utils.d.ts.map +1 -1
  2064. package/components/pages/database-utils.js +49 -40
  2065. package/components/pages/documents-detail.d.ts +0 -4
  2066. package/components/pages/documents-detail.d.ts.map +1 -1
  2067. package/components/pages/documents-detail.helpers.d.ts +5 -0
  2068. package/components/pages/documents-detail.helpers.d.ts.map +1 -0
  2069. package/components/pages/documents-detail.helpers.js +24 -0
  2070. package/components/pages/documents-detail.js +61 -34
  2071. package/components/pages/documents-upload.d.ts +1 -18
  2072. package/components/pages/documents-upload.d.ts.map +1 -1
  2073. package/components/pages/documents-upload.helpers.d.ts +19 -0
  2074. package/components/pages/documents-upload.helpers.d.ts.map +1 -0
  2075. package/components/pages/documents-upload.helpers.js +46 -0
  2076. package/components/pages/documents-upload.js +119 -62
  2077. package/components/pages/heartbeat-utils.d.ts +5 -7
  2078. package/components/pages/heartbeat-utils.d.ts.map +1 -1
  2079. package/components/pages/heartbeat-utils.js +11 -26
  2080. package/components/pages/help/HelpView.d.ts +3 -0
  2081. package/components/pages/help/HelpView.d.ts.map +1 -0
  2082. package/components/pages/help/HelpView.js +80 -0
  2083. package/components/pages/help/help-content.d.ts +28 -0
  2084. package/components/pages/help/help-content.d.ts.map +1 -0
  2085. package/components/pages/help/help-content.js +481 -0
  2086. package/components/pages/page-scoped-conversations.d.ts +3 -3
  2087. package/components/pages/page-scoped-conversations.d.ts.map +1 -1
  2088. package/components/pages/page-scoped-conversations.js +2 -19
  2089. package/components/pages/plugin-list-utils.d.ts +13 -4
  2090. package/components/pages/plugin-list-utils.d.ts.map +1 -1
  2091. package/components/pages/plugin-list-utils.js +51 -6
  2092. package/components/pages/plugin-view-connectors.d.ts +2 -2
  2093. package/components/pages/plugin-view-connectors.d.ts.map +1 -1
  2094. package/components/pages/plugin-view-connectors.js +227 -53
  2095. package/components/pages/plugin-view-dialogs.d.ts +3 -9
  2096. package/components/pages/plugin-view-dialogs.d.ts.map +1 -1
  2097. package/components/pages/plugin-view-dialogs.js +59 -13
  2098. package/components/pages/plugin-view-modal.d.ts +2 -2
  2099. package/components/pages/plugin-view-modal.d.ts.map +1 -1
  2100. package/components/pages/plugin-view-modal.js +91 -10
  2101. package/components/pages/plugin-view-sidebar.d.ts +3 -5
  2102. package/components/pages/plugin-view-sidebar.d.ts.map +1 -1
  2103. package/components/pages/plugin-view-sidebar.js +87 -21
  2104. package/components/pages/relationships/RelationshipsActivityFeed.d.ts.map +1 -1
  2105. package/components/pages/relationships/RelationshipsActivityFeed.js +17 -7
  2106. package/components/pages/relationships/RelationshipsCandidateMergesPanel.d.ts +1 -1
  2107. package/components/pages/relationships/RelationshipsCandidateMergesPanel.d.ts.map +1 -1
  2108. package/components/pages/relationships/RelationshipsCandidateMergesPanel.js +34 -6
  2109. package/components/pages/relationships/RelationshipsPersonPanels.d.ts +1 -1
  2110. package/components/pages/relationships/RelationshipsPersonPanels.d.ts.map +1 -1
  2111. package/components/pages/relationships/RelationshipsPersonPanels.js +171 -50
  2112. package/components/pages/relationships/RelationshipsSidebar.d.ts +2 -5
  2113. package/components/pages/relationships/RelationshipsSidebar.d.ts.map +1 -1
  2114. package/components/pages/relationships/RelationshipsSidebar.js +8 -12
  2115. package/components/pages/relationships/RelationshipsWorkspaceView.d.ts.map +1 -1
  2116. package/components/pages/relationships/RelationshipsWorkspaceView.js +80 -19
  2117. package/components/pages/relationships/relationships-utils.d.ts +1 -1
  2118. package/components/pages/skill-detail-panel.d.ts.map +1 -1
  2119. package/components/pages/skill-detail-panel.js +77 -15
  2120. package/components/pages/skill-marketplace.d.ts +2 -2
  2121. package/components/pages/skill-marketplace.d.ts.map +1 -1
  2122. package/components/pages/skill-marketplace.js +85 -24
  2123. package/components/pages/tutorial/TutorialNarrator.d.ts +13 -0
  2124. package/components/pages/tutorial/TutorialNarrator.d.ts.map +1 -0
  2125. package/components/pages/tutorial/TutorialNarrator.js +43 -0
  2126. package/components/pages/tutorial/TutorialOverlay.d.ts +3 -0
  2127. package/components/pages/tutorial/TutorialOverlay.d.ts.map +1 -0
  2128. package/components/pages/tutorial/TutorialOverlay.js +182 -0
  2129. package/components/pages/tutorial/TutorialSpotlight.d.ts +25 -0
  2130. package/components/pages/tutorial/TutorialSpotlight.d.ts.map +1 -0
  2131. package/components/pages/tutorial/TutorialSpotlight.js +139 -0
  2132. package/components/pages/tutorial/TutorialView.d.ts +9 -0
  2133. package/components/pages/tutorial/TutorialView.d.ts.map +1 -0
  2134. package/components/pages/tutorial/TutorialView.js +28 -0
  2135. package/components/pages/tutorial/tutorial-controller.d.ts +10 -0
  2136. package/components/pages/tutorial/tutorial-controller.d.ts.map +1 -0
  2137. package/components/pages/tutorial/tutorial-controller.js +54 -0
  2138. package/components/pages/tutorial/tutorial-steps.d.ts +83 -0
  2139. package/components/pages/tutorial/tutorial-steps.d.ts.map +1 -0
  2140. package/components/pages/tutorial/tutorial-steps.js +95 -0
  2141. package/components/pages/useBrowserWorkspaceWalletBridge.d.ts +21 -2
  2142. package/components/pages/useBrowserWorkspaceWalletBridge.d.ts.map +1 -1
  2143. package/components/pages/useBrowserWorkspaceWalletBridge.js +58 -182
  2144. package/components/pages/workflow-action-handoff.d.ts +4 -0
  2145. package/components/pages/workflow-action-handoff.d.ts.map +1 -0
  2146. package/components/pages/workflow-action-handoff.js +24 -0
  2147. package/components/permissions/PermissionRecoveryCallout.d.ts +13 -0
  2148. package/components/permissions/PermissionRecoveryCallout.d.ts.map +1 -0
  2149. package/components/permissions/PermissionRecoveryCallout.js +46 -0
  2150. package/components/permissions/StreamingPermissions.d.ts +1 -2
  2151. package/components/permissions/StreamingPermissions.d.ts.map +1 -1
  2152. package/components/permissions/StreamingPermissions.js +11 -13
  2153. package/components/plugins/showcase-data.d.ts +1 -1
  2154. package/components/plugins/showcase-data.d.ts.map +1 -1
  2155. package/components/plugins/showcase-data.js +3 -3
  2156. package/components/policy-controls/ApprovedAddressesSection.d.ts +1 -2
  2157. package/components/policy-controls/ApprovedAddressesSection.d.ts.map +1 -1
  2158. package/components/policy-controls/ApprovedAddressesSection.helpers.d.ts +3 -0
  2159. package/components/policy-controls/ApprovedAddressesSection.helpers.d.ts.map +1 -0
  2160. package/components/policy-controls/ApprovedAddressesSection.helpers.js +5 -0
  2161. package/components/policy-controls/ApprovedAddressesSection.js +36 -15
  2162. package/components/policy-controls/AutoApproveSection.d.ts +1 -2
  2163. package/components/policy-controls/AutoApproveSection.d.ts.map +1 -1
  2164. package/components/policy-controls/AutoApproveSection.helpers.d.ts +3 -0
  2165. package/components/policy-controls/AutoApproveSection.helpers.d.ts.map +1 -0
  2166. package/components/policy-controls/AutoApproveSection.helpers.js +3 -0
  2167. package/components/policy-controls/AutoApproveSection.js +10 -6
  2168. package/components/policy-controls/PolicyToggle.d.ts.map +1 -1
  2169. package/components/policy-controls/PolicyToggle.js +5 -3
  2170. package/components/policy-controls/RateLimitSection.d.ts +1 -2
  2171. package/components/policy-controls/RateLimitSection.d.ts.map +1 -1
  2172. package/components/policy-controls/RateLimitSection.helpers.d.ts +3 -0
  2173. package/components/policy-controls/RateLimitSection.helpers.d.ts.map +1 -0
  2174. package/components/policy-controls/RateLimitSection.helpers.js +3 -0
  2175. package/components/policy-controls/RateLimitSection.js +5 -5
  2176. package/components/policy-controls/SpendingLimitSection.d.ts +1 -2
  2177. package/components/policy-controls/SpendingLimitSection.d.ts.map +1 -1
  2178. package/components/policy-controls/SpendingLimitSection.helpers.d.ts +3 -0
  2179. package/components/policy-controls/SpendingLimitSection.helpers.d.ts.map +1 -0
  2180. package/components/policy-controls/SpendingLimitSection.helpers.js +3 -0
  2181. package/components/policy-controls/SpendingLimitSection.js +7 -5
  2182. package/components/policy-controls/TimeWindowSection.d.ts +1 -2
  2183. package/components/policy-controls/TimeWindowSection.d.ts.map +1 -1
  2184. package/components/policy-controls/TimeWindowSection.helpers.d.ts +3 -0
  2185. package/components/policy-controls/TimeWindowSection.helpers.d.ts.map +1 -0
  2186. package/components/policy-controls/TimeWindowSection.helpers.js +10 -0
  2187. package/components/policy-controls/TimeWindowSection.js +8 -14
  2188. package/components/policy-controls/constants.d.ts +1 -1
  2189. package/components/policy-controls/helpers.d.ts +1 -1
  2190. package/components/policy-controls/index.d.ts +14 -9
  2191. package/components/policy-controls/index.d.ts.map +1 -1
  2192. package/components/policy-controls/index.js +10 -5
  2193. package/components/policy-controls/types.js +1 -1
  2194. package/components/primitives/index.d.ts +27 -23
  2195. package/components/primitives/index.d.ts.map +1 -1
  2196. package/components/primitives/index.js +5 -1
  2197. package/components/release-center/sections.d.ts +1 -1
  2198. package/components/release-center/sections.d.ts.map +1 -1
  2199. package/components/release-center/sections.js +23 -21
  2200. package/components/release-center/shared.d.ts +0 -3
  2201. package/components/release-center/shared.d.ts.map +1 -1
  2202. package/components/release-center/shared.helpers.d.ts +4 -0
  2203. package/components/release-center/shared.helpers.d.ts.map +1 -0
  2204. package/components/release-center/shared.helpers.js +21 -0
  2205. package/components/release-center/shared.js +3 -24
  2206. package/components/settings/AdvancedSection.d.ts +2 -0
  2207. package/components/settings/AdvancedSection.d.ts.map +1 -0
  2208. package/components/settings/AdvancedSection.js +159 -0
  2209. package/components/settings/AdvancedToggle.d.ts +15 -0
  2210. package/components/settings/AdvancedToggle.d.ts.map +1 -0
  2211. package/components/settings/AdvancedToggle.hooks.d.ts +22 -0
  2212. package/components/settings/AdvancedToggle.hooks.d.ts.map +1 -0
  2213. package/components/settings/AdvancedToggle.hooks.js +63 -0
  2214. package/components/settings/AdvancedToggle.js +39 -0
  2215. package/components/settings/ApiKeyConfig.d.ts +3 -9
  2216. package/components/settings/ApiKeyConfig.d.ts.map +1 -1
  2217. package/components/settings/ApiKeyConfig.js +128 -84
  2218. package/components/settings/AppPermissionsSection.d.ts +10 -0
  2219. package/components/settings/AppPermissionsSection.d.ts.map +1 -0
  2220. package/components/settings/AppPermissionsSection.js +152 -0
  2221. package/components/settings/AppearanceSettingsSection.d.ts.map +1 -1
  2222. package/components/settings/AppearanceSettingsSection.js +50 -249
  2223. package/components/settings/AppsManagementSection.d.ts +1 -7
  2224. package/components/settings/AppsManagementSection.d.ts.map +1 -1
  2225. package/components/settings/AppsManagementSection.js +204 -76
  2226. package/components/settings/BackgroundSettingsControls.d.ts +5 -0
  2227. package/components/settings/BackgroundSettingsControls.d.ts.map +1 -0
  2228. package/components/settings/BackgroundSettingsControls.js +118 -0
  2229. package/components/settings/CapabilitiesSection.d.ts.map +1 -1
  2230. package/components/settings/CapabilitiesSection.js +372 -30
  2231. package/components/settings/CloudAgentsSection.d.ts +7 -0
  2232. package/components/settings/CloudAgentsSection.d.ts.map +1 -0
  2233. package/components/settings/CloudAgentsSection.js +422 -0
  2234. package/components/settings/ConnectorsSection.d.ts +9 -0
  2235. package/components/settings/ConnectorsSection.d.ts.map +1 -0
  2236. package/components/settings/ConnectorsSection.js +183 -0
  2237. package/components/settings/DesktopWorkspaceDisplay.d.ts +6 -0
  2238. package/components/settings/DesktopWorkspaceDisplay.d.ts.map +1 -0
  2239. package/components/settings/DesktopWorkspaceDisplay.hooks.d.ts +4 -0
  2240. package/components/settings/DesktopWorkspaceDisplay.hooks.d.ts.map +1 -0
  2241. package/components/settings/DesktopWorkspaceDisplay.hooks.js +27 -0
  2242. package/components/settings/DesktopWorkspaceDisplay.js +5 -0
  2243. package/components/settings/DesktopWorkspaceSection.d.ts +0 -2
  2244. package/components/settings/DesktopWorkspaceSection.d.ts.map +1 -1
  2245. package/components/settings/DesktopWorkspaceSection.js +198 -323
  2246. package/components/settings/IdentitySettingsSection.d.ts.map +1 -1
  2247. package/components/settings/IdentitySettingsSection.js +70 -60
  2248. package/components/settings/LoadContentPackForm.d.ts +2 -0
  2249. package/components/settings/LoadContentPackForm.d.ts.map +1 -0
  2250. package/components/settings/LoadContentPackForm.js +78 -0
  2251. package/components/settings/LoadedPacksList.d.ts +9 -0
  2252. package/components/settings/LoadedPacksList.d.ts.map +1 -0
  2253. package/components/settings/LoadedPacksList.js +28 -0
  2254. package/components/settings/PermissionsSection.d.ts.map +1 -1
  2255. package/components/settings/PermissionsSection.js +262 -65
  2256. package/components/settings/PolicyControlsView.d.ts.map +1 -1
  2257. package/components/settings/PolicyControlsView.js +299 -80
  2258. package/components/settings/ProviderCard.d.ts +27 -0
  2259. package/components/settings/ProviderCard.d.ts.map +1 -0
  2260. package/components/settings/ProviderCard.js +30 -0
  2261. package/components/settings/ProviderPanels.d.ts +60 -0
  2262. package/components/settings/ProviderPanels.d.ts.map +1 -0
  2263. package/components/settings/ProviderPanels.js +51 -0
  2264. package/components/settings/ProviderRoutingPanel.d.ts +22 -0
  2265. package/components/settings/ProviderRoutingPanel.d.ts.map +1 -0
  2266. package/components/settings/ProviderRoutingPanel.js +22 -0
  2267. package/components/settings/ProviderSwitcher.d.ts +1 -11
  2268. package/components/settings/ProviderSwitcher.d.ts.map +1 -1
  2269. package/components/settings/ProviderSwitcher.js +75 -618
  2270. package/components/settings/RemotePluginHostSection.d.ts +6 -0
  2271. package/components/settings/RemotePluginHostSection.d.ts.map +1 -0
  2272. package/components/settings/RemotePluginHostSection.js +302 -0
  2273. package/components/settings/RuntimeSettingsSection.d.ts +0 -8
  2274. package/components/settings/RuntimeSettingsSection.d.ts.map +1 -1
  2275. package/components/settings/RuntimeSettingsSection.js +49 -56
  2276. package/components/settings/SecretsManagerSection.d.ts +1 -4
  2277. package/components/settings/SecretsManagerSection.d.ts.map +1 -1
  2278. package/components/settings/SecretsManagerSection.js +18 -36
  2279. package/components/settings/SecuritySettingsSection.d.ts.map +1 -1
  2280. package/components/settings/SecuritySettingsSection.js +307 -91
  2281. package/components/settings/SubscriptionStatus.d.ts +2 -7
  2282. package/components/settings/SubscriptionStatus.d.ts.map +1 -1
  2283. package/components/settings/SubscriptionStatus.js +81 -38
  2284. package/components/settings/VaultInventoryPanel.d.ts +1 -1
  2285. package/components/settings/VaultInventoryPanel.d.ts.map +1 -1
  2286. package/components/settings/VaultInventoryPanel.js +270 -23
  2287. package/components/settings/VoiceConfigView.d.ts +0 -2
  2288. package/components/settings/VoiceConfigView.d.ts.map +1 -1
  2289. package/components/settings/VoiceConfigView.helpers.d.ts +3 -0
  2290. package/components/settings/VoiceConfigView.helpers.d.ts.map +1 -0
  2291. package/components/settings/VoiceConfigView.helpers.js +34 -0
  2292. package/components/settings/VoiceConfigView.js +364 -172
  2293. package/components/settings/VoiceProfileSection.d.ts +17 -0
  2294. package/components/settings/VoiceProfileSection.d.ts.map +1 -0
  2295. package/components/settings/VoiceProfileSection.js +318 -0
  2296. package/components/settings/VoiceSection.d.ts +58 -0
  2297. package/components/settings/VoiceSection.d.ts.map +1 -0
  2298. package/components/settings/VoiceSection.helpers.d.ts +4 -0
  2299. package/components/settings/VoiceSection.helpers.d.ts.map +1 -0
  2300. package/components/settings/VoiceSection.helpers.js +12 -0
  2301. package/components/settings/VoiceSection.js +122 -0
  2302. package/components/settings/VoiceSectionMount.d.ts +17 -0
  2303. package/components/settings/VoiceSectionMount.d.ts.map +1 -0
  2304. package/components/settings/VoiceSectionMount.js +112 -0
  2305. package/components/settings/VoiceTierBanner.d.ts +19 -0
  2306. package/components/settings/VoiceTierBanner.d.ts.map +1 -0
  2307. package/components/settings/VoiceTierBanner.helpers.d.ts +4 -0
  2308. package/components/settings/VoiceTierBanner.helpers.d.ts.map +1 -0
  2309. package/components/settings/VoiceTierBanner.helpers.js +7 -0
  2310. package/components/settings/VoiceTierBanner.js +46 -0
  2311. package/components/settings/WalletKeysSection.d.ts +3 -13
  2312. package/components/settings/WalletKeysSection.d.ts.map +1 -1
  2313. package/components/settings/WalletKeysSection.js +113 -26
  2314. package/components/settings/WalletRpcSection.d.ts +2 -0
  2315. package/components/settings/WalletRpcSection.d.ts.map +1 -0
  2316. package/components/settings/WalletRpcSection.js +7 -0
  2317. package/components/settings/XRSettingsSection.d.ts +2 -0
  2318. package/components/settings/XRSettingsSection.d.ts.map +1 -0
  2319. package/components/settings/XRSettingsSection.js +114 -0
  2320. package/components/settings/appearance-primitives.helpers.d.ts +2 -0
  2321. package/components/settings/appearance-primitives.helpers.d.ts.map +1 -0
  2322. package/components/settings/appearance-primitives.helpers.js +5 -0
  2323. package/components/settings/cloud-model-schema.d.ts +4 -4
  2324. package/components/settings/cloud-model-schema.d.ts.map +1 -1
  2325. package/components/settings/cloud-model-schema.js +1 -8
  2326. package/components/settings/desktop-workspace-audit-config.d.ts +3 -0
  2327. package/components/settings/desktop-workspace-audit-config.d.ts.map +1 -0
  2328. package/components/settings/desktop-workspace-audit-config.js +171 -0
  2329. package/components/settings/permission-controls.d.ts +2 -18
  2330. package/components/settings/permission-controls.d.ts.map +1 -1
  2331. package/components/settings/permission-controls.hooks.d.ts +18 -0
  2332. package/components/settings/permission-controls.hooks.d.ts.map +1 -0
  2333. package/components/settings/permission-controls.hooks.js +434 -0
  2334. package/components/settings/permission-controls.js +86 -463
  2335. package/components/settings/permission-types.d.ts +2 -2
  2336. package/components/settings/permission-types.d.ts.map +1 -1
  2337. package/components/settings/permission-types.js +150 -22
  2338. package/components/settings/settings-agent-rows.d.ts +120 -0
  2339. package/components/settings/settings-agent-rows.d.ts.map +1 -0
  2340. package/components/settings/settings-agent-rows.js +138 -0
  2341. package/components/settings/settings-control-primitives.d.ts +4 -5
  2342. package/components/settings/settings-control-primitives.d.ts.map +1 -1
  2343. package/components/settings/settings-control-primitives.hooks.d.ts +14 -0
  2344. package/components/settings/settings-control-primitives.hooks.d.ts.map +1 -0
  2345. package/components/settings/settings-control-primitives.hooks.js +43 -0
  2346. package/components/settings/settings-control-primitives.js +10 -12
  2347. package/components/settings/settings-layout.d.ts +84 -0
  2348. package/components/settings/settings-layout.d.ts.map +1 -0
  2349. package/components/settings/settings-layout.js +38 -0
  2350. package/components/settings/settings-section-meta.d.ts +26 -0
  2351. package/components/settings/settings-section-meta.d.ts.map +1 -0
  2352. package/components/settings/settings-section-meta.js +42 -0
  2353. package/components/settings/settings-section-registry.d.ts +73 -0
  2354. package/components/settings/settings-section-registry.d.ts.map +1 -0
  2355. package/components/settings/settings-section-registry.js +33 -0
  2356. package/components/settings/settings-section-tokens.d.ts +18 -0
  2357. package/components/settings/settings-section-tokens.d.ts.map +1 -0
  2358. package/components/settings/settings-section-tokens.js +66 -0
  2359. package/components/settings/settings-sections.d.ts +21 -0
  2360. package/components/settings/settings-sections.d.ts.map +1 -0
  2361. package/components/settings/settings-sections.js +234 -0
  2362. package/components/settings/useCloudModelConfig.d.ts +28 -0
  2363. package/components/settings/useCloudModelConfig.d.ts.map +1 -0
  2364. package/components/settings/useCloudModelConfig.js +198 -0
  2365. package/components/settings/useDesktopWindowControls.d.ts +12 -0
  2366. package/components/settings/useDesktopWindowControls.d.ts.map +1 -0
  2367. package/components/settings/useDesktopWindowControls.js +59 -0
  2368. package/components/settings/useProviderBootstrap.d.ts +15 -0
  2369. package/components/settings/useProviderBootstrap.d.ts.map +1 -0
  2370. package/components/settings/useProviderBootstrap.js +74 -0
  2371. package/components/settings/useProviderEntries.d.ts +51 -0
  2372. package/components/settings/useProviderEntries.d.ts.map +1 -0
  2373. package/components/settings/useProviderEntries.js +180 -0
  2374. package/components/settings/useProviderSelection.d.ts +31 -0
  2375. package/components/settings/useProviderSelection.d.ts.map +1 -0
  2376. package/components/settings/useProviderSelection.js +235 -0
  2377. package/components/settings/vault-tabs/LoginsTab.d.ts +0 -2
  2378. package/components/settings/vault-tabs/LoginsTab.d.ts.map +1 -1
  2379. package/components/settings/vault-tabs/LoginsTab.js +144 -28
  2380. package/components/settings/vault-tabs/OverviewTab.d.ts +4 -6
  2381. package/components/settings/vault-tabs/OverviewTab.d.ts.map +1 -1
  2382. package/components/settings/vault-tabs/OverviewTab.js +247 -20
  2383. package/components/settings/vault-tabs/RoutingTab.d.ts +3 -6
  2384. package/components/settings/vault-tabs/RoutingTab.d.ts.map +1 -1
  2385. package/components/settings/vault-tabs/RoutingTab.js +187 -22
  2386. package/components/settings/vault-tabs/SecretsTab.d.ts +1 -1
  2387. package/components/settings/vault-tabs/SecretsTab.d.ts.map +1 -1
  2388. package/components/settings/vault-tabs/SecretsTab.js +3 -1
  2389. package/components/settings/vault-tabs/types.d.ts +7 -1
  2390. package/components/settings/vault-tabs/types.d.ts.map +1 -1
  2391. package/components/settings/vault-tabs/types.js +30 -1
  2392. package/components/setup/BootstrapStep.d.ts +35 -0
  2393. package/components/setup/BootstrapStep.d.ts.map +1 -0
  2394. package/components/setup/BootstrapStep.js +180 -0
  2395. package/components/setup/setup-classes.d.ts +28 -0
  2396. package/components/setup/setup-classes.d.ts.map +1 -0
  2397. package/components/setup/setup-classes.js +32 -0
  2398. package/components/setup/setup-form-primitives.d.ts +20 -0
  2399. package/components/setup/setup-form-primitives.d.ts.map +1 -0
  2400. package/components/setup/setup-form-primitives.js +11 -0
  2401. package/components/setup/setup-step-chrome.d.ts +2 -0
  2402. package/components/setup/setup-step-chrome.d.ts.map +1 -0
  2403. package/components/setup/setup-step-chrome.js +4 -0
  2404. package/components/shared/AppPageSidebar.d.ts +1 -1
  2405. package/components/shared/AppPageSidebar.d.ts.map +1 -1
  2406. package/components/shared/AppPageSidebar.js +3 -3
  2407. package/components/shared/CollapsibleSidebarSection.js +2 -2
  2408. package/components/shared/LanguageDropdown.d.ts +1 -8
  2409. package/components/shared/LanguageDropdown.d.ts.map +1 -1
  2410. package/components/shared/LanguageDropdown.helpers.d.ts +9 -0
  2411. package/components/shared/LanguageDropdown.helpers.d.ts.map +1 -0
  2412. package/components/shared/LanguageDropdown.helpers.js +12 -0
  2413. package/components/shared/LanguageDropdown.js +8 -20
  2414. package/components/shared/ThemeToggle.d.ts +1 -1
  2415. package/components/shared/ThemeToggle.d.ts.map +1 -1
  2416. package/components/shared/ThemeToggle.js +7 -3
  2417. package/components/shared/confirm-delete-control.d.ts.map +1 -1
  2418. package/components/shared/confirm-delete-control.js +3 -3
  2419. package/components/shell/ActionBanner.d.ts +10 -0
  2420. package/components/shell/ActionBanner.d.ts.map +1 -0
  2421. package/components/shell/ActionBanner.js +28 -0
  2422. package/components/shell/AssistantOverlay.d.ts +25 -0
  2423. package/components/shell/AssistantOverlay.d.ts.map +1 -0
  2424. package/components/shell/AssistantOverlay.js +113 -0
  2425. package/components/shell/BugReportModal.d.ts.map +1 -1
  2426. package/components/shell/BugReportModal.js +23 -22
  2427. package/components/shell/ChatSurface.d.ts +12 -0
  2428. package/components/shell/ChatSurface.d.ts.map +1 -0
  2429. package/components/shell/ChatSurface.js +60 -0
  2430. package/components/shell/CloudHandoffBanner.d.ts +16 -0
  2431. package/components/shell/CloudHandoffBanner.d.ts.map +1 -0
  2432. package/components/shell/CloudHandoffBanner.js +44 -0
  2433. package/components/shell/CommandPalette.d.ts.map +1 -1
  2434. package/components/shell/CommandPalette.js +61 -7
  2435. package/components/shell/ComputerUseApprovalOverlay.d.ts.map +1 -1
  2436. package/components/shell/ComputerUseApprovalOverlay.js +85 -20
  2437. package/components/shell/ConnectionFailedBanner.d.ts.map +1 -1
  2438. package/components/shell/ConnectionFailedBanner.js +14 -6
  2439. package/components/shell/ConnectionLostOverlay.d.ts.map +1 -1
  2440. package/components/shell/ConnectionLostOverlay.js +12 -6
  2441. package/components/shell/ContinuousChatOverlay.d.ts +25 -0
  2442. package/components/shell/ContinuousChatOverlay.d.ts.map +1 -0
  2443. package/components/shell/ContinuousChatOverlay.js +2370 -0
  2444. package/components/shell/HomePill.d.ts +15 -0
  2445. package/components/shell/HomePill.d.ts.map +1 -0
  2446. package/components/shell/HomePill.js +27 -0
  2447. package/components/shell/HomeScreen.d.ts +35 -0
  2448. package/components/shell/HomeScreen.d.ts.map +1 -0
  2449. package/components/shell/HomeScreen.js +148 -0
  2450. package/components/shell/HomeSpringboardSurface.d.ts +21 -0
  2451. package/components/shell/HomeSpringboardSurface.d.ts.map +1 -0
  2452. package/components/shell/HomeSpringboardSurface.js +134 -0
  2453. package/components/shell/KioskViewCanvas.d.ts +23 -0
  2454. package/components/shell/KioskViewCanvas.d.ts.map +1 -0
  2455. package/components/shell/KioskViewCanvas.js +82 -0
  2456. package/components/shell/LoadingScreen.d.ts +2 -3
  2457. package/components/shell/LoadingScreen.d.ts.map +1 -1
  2458. package/components/shell/LoadingScreen.js +30 -17
  2459. package/components/shell/NotificationCenter.d.ts +16 -0
  2460. package/components/shell/NotificationCenter.d.ts.map +1 -0
  2461. package/components/shell/NotificationCenter.js +128 -0
  2462. package/components/shell/PairingCommandHint.d.ts.map +1 -1
  2463. package/components/shell/PairingCommandHint.js +14 -16
  2464. package/components/shell/PairingView.d.ts.map +1 -1
  2465. package/components/shell/PairingView.js +23 -8
  2466. package/components/shell/RestartBanner.d.ts.map +1 -1
  2467. package/components/shell/RestartBanner.js +14 -6
  2468. package/components/shell/ShellControllerContext.d.ts +10 -0
  2469. package/components/shell/ShellControllerContext.d.ts.map +1 -0
  2470. package/components/shell/ShellControllerContext.hooks.d.ts +6 -0
  2471. package/components/shell/ShellControllerContext.hooks.d.ts.map +1 -0
  2472. package/components/shell/ShellControllerContext.hooks.js +6 -0
  2473. package/components/shell/ShellControllerContext.js +12 -0
  2474. package/components/shell/ShellHeaderControls.d.ts +3 -3
  2475. package/components/shell/ShellHeaderControls.d.ts.map +1 -1
  2476. package/components/shell/ShellHeaderControls.js +8 -7
  2477. package/components/shell/ShellOverlays.d.ts +1 -1
  2478. package/components/shell/ShellOverlays.d.ts.map +1 -1
  2479. package/components/shell/ShellOverlays.js +74 -2
  2480. package/components/shell/ShortcutsOverlay.d.ts.map +1 -1
  2481. package/components/shell/ShortcutsOverlay.js +12 -5
  2482. package/components/shell/SlashCommandMenu.d.ts +47 -0
  2483. package/components/shell/SlashCommandMenu.d.ts.map +1 -0
  2484. package/components/shell/SlashCommandMenu.js +150 -0
  2485. package/components/shell/StartupFailureView.d.ts +1 -1
  2486. package/components/shell/StartupFailureView.d.ts.map +1 -1
  2487. package/components/shell/StartupFailureView.js +11 -93
  2488. package/components/shell/StartupScreen.d.ts +2 -0
  2489. package/components/shell/StartupScreen.d.ts.map +1 -0
  2490. package/components/shell/StartupScreen.js +8 -0
  2491. package/components/shell/StartupShell.d.ts +2 -11
  2492. package/components/shell/StartupShell.d.ts.map +1 -1
  2493. package/components/shell/StartupShell.js +43 -219
  2494. package/components/shell/SystemWarningBanner.d.ts.map +1 -1
  2495. package/components/shell/SystemWarningBanner.js +9 -5
  2496. package/components/shell/TopicChipsBar.d.ts +14 -0
  2497. package/components/shell/TopicChipsBar.d.ts.map +1 -0
  2498. package/components/shell/TopicChipsBar.js +18 -0
  2499. package/components/shell/TopicGroup.d.ts +21 -0
  2500. package/components/shell/TopicGroup.d.ts.map +1 -0
  2501. package/components/shell/TopicGroup.js +30 -0
  2502. package/components/shell/__e2e__/chat-ambient-fixture.d.ts +2 -0
  2503. package/components/shell/__e2e__/chat-ambient-fixture.d.ts.map +1 -0
  2504. package/components/shell/__e2e__/chat-ambient-fixture.js +9 -0
  2505. package/components/shell/__e2e__/chat-sheet-fixture.d.ts +2 -0
  2506. package/components/shell/__e2e__/chat-sheet-fixture.d.ts.map +1 -0
  2507. package/components/shell/__e2e__/chat-sheet-fixture.js +276 -0
  2508. package/components/shell/__e2e__/chatux-gesture-fixture.d.ts +13 -0
  2509. package/components/shell/__e2e__/chatux-gesture-fixture.d.ts.map +1 -0
  2510. package/components/shell/__e2e__/chatux-gesture-fixture.js +65 -0
  2511. package/components/shell/__e2e__/home-screen-fixture.activity-stub.d.ts +10 -0
  2512. package/components/shell/__e2e__/home-screen-fixture.activity-stub.d.ts.map +1 -0
  2513. package/components/shell/__e2e__/home-screen-fixture.activity-stub.js +12 -0
  2514. package/components/shell/__e2e__/home-screen-fixture.api-stub.d.ts +103 -0
  2515. package/components/shell/__e2e__/home-screen-fixture.api-stub.d.ts.map +1 -0
  2516. package/components/shell/__e2e__/home-screen-fixture.api-stub.js +32 -0
  2517. package/components/shell/__e2e__/home-screen-fixture.catalog-stub.d.ts +20 -0
  2518. package/components/shell/__e2e__/home-screen-fixture.catalog-stub.d.ts.map +1 -0
  2519. package/components/shell/__e2e__/home-screen-fixture.catalog-stub.js +23 -0
  2520. package/components/shell/__e2e__/home-screen-fixture.core-stub.d.ts +3 -0
  2521. package/components/shell/__e2e__/home-screen-fixture.core-stub.d.ts.map +1 -0
  2522. package/components/shell/__e2e__/home-screen-fixture.core-stub.js +6 -0
  2523. package/components/shell/__e2e__/home-screen-fixture.d.ts +2 -0
  2524. package/components/shell/__e2e__/home-screen-fixture.d.ts.map +1 -0
  2525. package/components/shell/__e2e__/home-screen-fixture.docvis-stub.d.ts +3 -0
  2526. package/components/shell/__e2e__/home-screen-fixture.docvis-stub.d.ts.map +1 -0
  2527. package/components/shell/__e2e__/home-screen-fixture.docvis-stub.js +3 -0
  2528. package/components/shell/__e2e__/home-screen-fixture.js +22 -0
  2529. package/components/shell/__e2e__/home-screen-fixture.platform-stub.d.ts +3 -0
  2530. package/components/shell/__e2e__/home-screen-fixture.platform-stub.d.ts.map +1 -0
  2531. package/components/shell/__e2e__/home-screen-fixture.platform-stub.js +6 -0
  2532. package/components/shell/__e2e__/home-screen-fixture.view-kinds-stub.d.ts +5 -0
  2533. package/components/shell/__e2e__/home-screen-fixture.view-kinds-stub.d.ts.map +1 -0
  2534. package/components/shell/__e2e__/home-screen-fixture.view-kinds-stub.js +3 -0
  2535. package/components/shell/__e2e__/home-screen-fixture.views-stub.d.ts +15 -0
  2536. package/components/shell/__e2e__/home-screen-fixture.views-stub.d.ts.map +1 -0
  2537. package/components/shell/__e2e__/home-screen-fixture.views-stub.js +78 -0
  2538. package/components/shell/__e2e__/usePromptSuggestions.stub.d.ts +2 -0
  2539. package/components/shell/__e2e__/usePromptSuggestions.stub.d.ts.map +1 -0
  2540. package/components/shell/__e2e__/usePromptSuggestions.stub.js +11 -0
  2541. package/components/shell/first-run-theme.d.ts +6 -0
  2542. package/components/shell/first-run-theme.d.ts.map +1 -0
  2543. package/components/shell/first-run-theme.js +31 -0
  2544. package/components/shell/glass-composer.d.ts +13 -0
  2545. package/components/shell/glass-composer.d.ts.map +1 -0
  2546. package/components/shell/glass-composer.helpers.d.ts +3 -0
  2547. package/components/shell/glass-composer.helpers.d.ts.map +1 -0
  2548. package/components/shell/glass-composer.helpers.js +2 -0
  2549. package/components/shell/glass-composer.js +43 -0
  2550. package/components/shell/home-springboard-events.d.ts +7 -0
  2551. package/components/shell/home-springboard-events.d.ts.map +1 -0
  2552. package/components/shell/home-springboard-events.js +6 -0
  2553. package/components/shell/shell-state.d.ts +48 -0
  2554. package/components/shell/shell-state.d.ts.map +1 -0
  2555. package/components/shell/shell-state.js +19 -0
  2556. package/components/shell/startup-shell-types.d.ts +25 -0
  2557. package/components/shell/startup-shell-types.d.ts.map +1 -0
  2558. package/components/shell/startup-shell-types.js +1 -0
  2559. package/components/shell/topic-grouping.d.ts +39 -0
  2560. package/components/shell/topic-grouping.d.ts.map +1 -0
  2561. package/components/shell/topic-grouping.js +81 -0
  2562. package/components/shell/use-conversation-reset.d.ts +14 -0
  2563. package/components/shell/use-conversation-reset.d.ts.map +1 -0
  2564. package/components/shell/use-conversation-reset.js +25 -0
  2565. package/components/shell/use-pull-gesture.d.ts +69 -0
  2566. package/components/shell/use-pull-gesture.d.ts.map +1 -0
  2567. package/components/shell/use-pull-gesture.js +210 -0
  2568. package/components/shell/useKioskViewSurfaces.d.ts +28 -0
  2569. package/components/shell/useKioskViewSurfaces.d.ts.map +1 -0
  2570. package/components/shell/useKioskViewSurfaces.js +56 -0
  2571. package/components/shell/usePromptSuggestions.d.ts +39 -0
  2572. package/components/shell/usePromptSuggestions.d.ts.map +1 -0
  2573. package/components/shell/usePromptSuggestions.js +277 -0
  2574. package/components/shell/useShellController.d.ts +133 -0
  2575. package/components/shell/useShellController.d.ts.map +1 -0
  2576. package/components/shell/useShellController.js +869 -0
  2577. package/components/shell/useShellVoiceOutput.d.ts +38 -0
  2578. package/components/shell/useShellVoiceOutput.d.ts.map +1 -0
  2579. package/components/shell/useShellVoiceOutput.js +116 -0
  2580. package/components/steward/injected.d.ts +1 -1
  2581. package/components/steward/injected.js +1 -1
  2582. package/components/stream/StatusBar.d.ts.map +1 -1
  2583. package/components/stream/StatusBar.js +8 -18
  2584. package/components/stream/popout-url.d.ts +3 -0
  2585. package/components/stream/popout-url.d.ts.map +1 -0
  2586. package/components/stream/popout-url.js +17 -0
  2587. package/components/tool-events/ToolCallEventLog.d.ts +1 -3
  2588. package/components/tool-events/ToolCallEventLog.d.ts.map +1 -1
  2589. package/components/tool-events/ToolCallEventLog.helpers.d.ts +5 -0
  2590. package/components/tool-events/ToolCallEventLog.helpers.d.ts.map +1 -0
  2591. package/components/tool-events/ToolCallEventLog.helpers.js +19 -0
  2592. package/components/tool-events/ToolCallEventLog.js +3 -21
  2593. package/components/training/BudgetPanel.d.ts +14 -0
  2594. package/components/training/BudgetPanel.d.ts.map +1 -0
  2595. package/components/training/BudgetPanel.js +91 -0
  2596. package/components/training/InferenceEndpointPanel.d.ts.map +1 -1
  2597. package/components/training/InferenceEndpointPanel.js +52 -11
  2598. package/components/training/JobDetailPanel.d.ts.map +1 -1
  2599. package/components/training/JobDetailPanel.js +38 -14
  2600. package/components/training/TrainingDashboard.d.ts.map +1 -1
  2601. package/components/training/TrainingDashboard.js +78 -16
  2602. package/components/training/hooks/useTrainingApi.d.ts +13 -1
  2603. package/components/training/hooks/useTrainingApi.d.ts.map +1 -1
  2604. package/components/training/hooks/useTrainingApi.js +49 -24
  2605. package/components/training/injected.d.ts +1 -1
  2606. package/components/training/injected.js +1 -1
  2607. package/components/training/types.d.ts +26 -0
  2608. package/components/training/types.d.ts.map +1 -1
  2609. package/components/transcripts/TranscriptBody.d.ts +22 -0
  2610. package/components/transcripts/TranscriptBody.d.ts.map +1 -0
  2611. package/components/transcripts/TranscriptBody.js +49 -0
  2612. package/components/transcripts/TranscriptPlayer.d.ts +17 -0
  2613. package/components/transcripts/TranscriptPlayer.d.ts.map +1 -0
  2614. package/components/transcripts/TranscriptPlayer.js +17 -0
  2615. package/components/transcripts/TranscriptsPage.d.ts +9 -0
  2616. package/components/transcripts/TranscriptsPage.d.ts.map +1 -0
  2617. package/components/transcripts/TranscriptsPage.js +41 -0
  2618. package/components/transcripts/TranscriptsView.d.ts +19 -0
  2619. package/components/transcripts/TranscriptsView.d.ts.map +1 -0
  2620. package/components/transcripts/TranscriptsView.js +30 -0
  2621. package/components/transcripts/index.d.ts +5 -0
  2622. package/components/transcripts/index.d.ts.map +1 -0
  2623. package/components/transcripts/index.js +4 -0
  2624. package/components/transcripts/useAudioElement.d.ts +22 -0
  2625. package/components/transcripts/useAudioElement.d.ts.map +1 -0
  2626. package/components/transcripts/useAudioElement.js +77 -0
  2627. package/components/ui/accordion.d.ts +12 -0
  2628. package/components/ui/accordion.d.ts.map +1 -0
  2629. package/components/ui/accordion.js +17 -0
  2630. package/components/ui/admin-dialog.d.ts +4 -4
  2631. package/components/ui/admin-dialog.d.ts.map +1 -1
  2632. package/components/ui/admin-dialog.js +7 -6
  2633. package/components/ui/alert-dialog.d.ts +15 -0
  2634. package/components/ui/alert-dialog.d.ts.map +1 -0
  2635. package/components/ui/alert-dialog.js +39 -0
  2636. package/components/ui/alert.d.ts +14 -0
  2637. package/components/ui/alert.d.ts.map +1 -0
  2638. package/components/ui/alert.js +28 -0
  2639. package/components/ui/avatar.d.ts +7 -0
  2640. package/components/ui/avatar.d.ts.map +1 -0
  2641. package/components/ui/avatar.js +18 -0
  2642. package/components/ui/badge.js +1 -1
  2643. package/components/ui/banner.d.ts.map +1 -1
  2644. package/components/ui/button.d.ts +2 -2
  2645. package/components/ui/button.d.ts.map +1 -1
  2646. package/components/ui/button.js +20 -16
  2647. package/components/ui/calendar.d.ts +9 -0
  2648. package/components/ui/calendar.d.ts.map +1 -0
  2649. package/components/ui/calendar.js +78 -0
  2650. package/components/ui/card.d.ts +3 -2
  2651. package/components/ui/card.d.ts.map +1 -1
  2652. package/components/ui/card.js +8 -6
  2653. package/components/ui/carousel.d.ts +24 -0
  2654. package/components/ui/carousel.d.ts.map +1 -0
  2655. package/components/ui/carousel.js +106 -0
  2656. package/components/ui/chart.d.ts +74 -0
  2657. package/components/ui/chart.d.ts.map +1 -0
  2658. package/components/ui/chart.js +139 -0
  2659. package/components/ui/checkbox.js +1 -1
  2660. package/components/ui/code-block.d.ts +14 -0
  2661. package/components/ui/code-block.d.ts.map +1 -0
  2662. package/components/ui/code-block.js +21 -0
  2663. package/components/ui/collapsible.d.ts +6 -0
  2664. package/components/ui/collapsible.d.ts.map +1 -0
  2665. package/components/ui/collapsible.js +17 -0
  2666. package/components/ui/confirm-delete.js +3 -3
  2667. package/components/ui/confirm-dialog.d.ts +0 -8
  2668. package/components/ui/confirm-dialog.d.ts.map +1 -1
  2669. package/components/ui/confirm-dialog.hooks.d.ts +10 -0
  2670. package/components/ui/confirm-dialog.hooks.d.ts.map +1 -0
  2671. package/components/ui/confirm-dialog.hooks.js +53 -0
  2672. package/components/ui/confirm-dialog.js +2 -54
  2673. package/components/ui/connection-status.d.ts.map +1 -1
  2674. package/components/ui/connection-status.js +7 -7
  2675. package/components/ui/copy-button.d.ts.map +1 -1
  2676. package/components/ui/copy-button.js +24 -4
  2677. package/components/ui/dialog.d.ts.map +1 -1
  2678. package/components/ui/dialog.js +10 -3
  2679. package/components/ui/dropdown-menu.js +6 -6
  2680. package/components/ui/empty-state.d.ts +2 -0
  2681. package/components/ui/empty-state.d.ts.map +1 -1
  2682. package/components/ui/empty-state.js +2 -1
  2683. package/components/ui/error-boundary.d.ts +1 -1
  2684. package/components/ui/error-boundary.d.ts.map +1 -1
  2685. package/components/ui/error-boundary.js +3 -3
  2686. package/components/ui/field-switch.js +1 -1
  2687. package/components/ui/form-select.d.ts +1 -1
  2688. package/components/ui/form-select.js +2 -2
  2689. package/components/ui/form.d.ts +62 -0
  2690. package/components/ui/form.d.ts.map +1 -0
  2691. package/components/ui/form.js +98 -0
  2692. package/components/ui/grid.d.ts +1 -1
  2693. package/components/ui/hover-card.d.ts +7 -0
  2694. package/components/ui/hover-card.d.ts.map +1 -0
  2695. package/components/ui/hover-card.js +18 -0
  2696. package/components/ui/input-group.d.ts +25 -0
  2697. package/components/ui/input-group.d.ts.map +1 -0
  2698. package/components/ui/input-group.js +44 -0
  2699. package/components/ui/input.js +3 -3
  2700. package/components/ui/new-action-button.d.ts +1 -1
  2701. package/components/ui/new-action-button.js +1 -1
  2702. package/components/ui/pagination.d.ts +18 -0
  2703. package/components/ui/pagination.d.ts.map +1 -0
  2704. package/components/ui/pagination.js +33 -0
  2705. package/components/ui/popover.js +1 -1
  2706. package/components/ui/progress.d.ts +5 -0
  2707. package/components/ui/progress.d.ts.map +1 -0
  2708. package/components/ui/progress.js +8 -0
  2709. package/components/ui/scroll-area.d.ts +8 -0
  2710. package/components/ui/scroll-area.d.ts.map +1 -0
  2711. package/components/ui/scroll-area.js +17 -0
  2712. package/components/ui/segmented-control.js +4 -4
  2713. package/components/ui/select.js +3 -3
  2714. package/components/ui/settings-controls.d.ts +18 -19
  2715. package/components/ui/settings-controls.d.ts.map +1 -1
  2716. package/components/ui/settings-controls.js +30 -21
  2717. package/components/ui/skeleton-layouts.d.ts +17 -0
  2718. package/components/ui/skeleton-layouts.d.ts.map +1 -0
  2719. package/components/ui/skeleton-layouts.js +26 -0
  2720. package/components/ui/skeleton.js +1 -1
  2721. package/components/ui/slider.d.ts +3 -1
  2722. package/components/ui/slider.d.ts.map +1 -1
  2723. package/components/ui/slider.js +1 -1
  2724. package/components/ui/stack.d.ts +3 -3
  2725. package/components/ui/status-badge.d.ts +4 -4
  2726. package/components/ui/status-badge.d.ts.map +1 -1
  2727. package/components/ui/status-badge.helpers.d.ts +6 -0
  2728. package/components/ui/status-badge.helpers.d.ts.map +1 -0
  2729. package/components/ui/status-badge.helpers.js +72 -0
  2730. package/components/ui/status-badge.js +41 -51
  2731. package/components/ui/switch.d.ts +5 -2
  2732. package/components/ui/switch.d.ts.map +1 -1
  2733. package/components/ui/switch.js +18 -3
  2734. package/components/ui/table.d.ts +15 -0
  2735. package/components/ui/table.d.ts.map +1 -0
  2736. package/components/ui/table.js +24 -0
  2737. package/components/ui/tabs.d.ts.map +1 -1
  2738. package/components/ui/tabs.js +3 -3
  2739. package/components/ui/tag-editor.js +1 -1
  2740. package/components/ui/textarea.js +3 -3
  2741. package/components/ui/toggle.d.ts +10 -0
  2742. package/components/ui/toggle.d.ts.map +1 -0
  2743. package/components/ui/toggle.js +30 -0
  2744. package/components/ui/tooltip-extended.d.ts +1 -1
  2745. package/components/ui/tooltip-extended.d.ts.map +1 -1
  2746. package/components/ui/tooltip-extended.js +5 -3
  2747. package/components/ui/tooltip.d.ts +6 -4
  2748. package/components/ui/tooltip.d.ts.map +1 -1
  2749. package/components/ui/tooltip.js +1 -1
  2750. package/components/ui/typography.d.ts +1 -1
  2751. package/components/views/DynamicViewLoader.d.ts +64 -0
  2752. package/components/views/DynamicViewLoader.d.ts.map +1 -0
  2753. package/components/views/DynamicViewLoader.js +960 -0
  2754. package/components/views/ShellViewAgentSurface.d.ts +22 -0
  2755. package/components/views/ShellViewAgentSurface.d.ts.map +1 -0
  2756. package/components/views/ShellViewAgentSurface.js +71 -0
  2757. package/components/views/TerminalPluginView.d.ts +10 -0
  2758. package/components/views/TerminalPluginView.d.ts.map +1 -0
  2759. package/components/views/TerminalPluginView.js +145 -0
  2760. package/components/views/ViewIcon.d.ts +7 -0
  2761. package/components/views/ViewIcon.d.ts.map +1 -0
  2762. package/components/views/ViewIcon.js +115 -0
  2763. package/components/views/ViewTileImage.d.ts +25 -0
  2764. package/components/views/ViewTileImage.d.ts.map +1 -0
  2765. package/components/views/ViewTileImage.js +52 -0
  2766. package/components/views/view-interact-registry.d.ts +32 -0
  2767. package/components/views/view-interact-registry.d.ts.map +1 -0
  2768. package/components/views/view-interact-registry.js +81 -0
  2769. package/components/workspace/AppWorkspaceChrome.d.ts +20 -53
  2770. package/components/workspace/AppWorkspaceChrome.d.ts.map +1 -1
  2771. package/components/workspace/AppWorkspaceChrome.js +26 -212
  2772. package/config/allowed-hosts.d.ts +1 -7
  2773. package/config/allowed-hosts.d.ts.map +1 -1
  2774. package/config/allowed-hosts.js +1 -43
  2775. package/config/api-key-prefix-hints.d.ts +1 -24
  2776. package/config/api-key-prefix-hints.d.ts.map +1 -1
  2777. package/config/api-key-prefix-hints.js +1 -26
  2778. package/config/boot-config-react.hooks.d.ts +5 -0
  2779. package/config/boot-config-react.hooks.d.ts.map +1 -0
  2780. package/config/boot-config-react.hooks.js +12 -0
  2781. package/config/boot-config-store.d.ts +46 -31
  2782. package/config/boot-config-store.d.ts.map +1 -1
  2783. package/config/boot-config-store.js +3 -52
  2784. package/config/boot-config.d.ts +1 -1
  2785. package/config/boot-config.js +1 -1
  2786. package/config/branding-base.d.ts +71 -0
  2787. package/config/branding-base.d.ts.map +1 -0
  2788. package/config/branding-base.js +18 -0
  2789. package/config/branding-react.hooks.d.ts +4 -0
  2790. package/config/branding-react.hooks.d.ts.map +1 -0
  2791. package/config/branding-react.hooks.js +11 -0
  2792. package/config/branding.d.ts +2 -68
  2793. package/config/branding.d.ts.map +1 -1
  2794. package/config/branding.js +2 -23
  2795. package/config/cloud-only.d.ts +1 -5
  2796. package/config/cloud-only.d.ts.map +1 -1
  2797. package/config/cloud-only.js +1 -15
  2798. package/config/config-catalog.d.ts +10 -366
  2799. package/config/config-catalog.d.ts.map +1 -1
  2800. package/config/config-catalog.js +10 -705
  2801. package/config/index.d.ts +9 -8
  2802. package/config/index.d.ts.map +1 -1
  2803. package/config/index.js +2 -2
  2804. package/config/plugin-ui-spec.d.ts +1 -41
  2805. package/config/plugin-ui-spec.d.ts.map +1 -1
  2806. package/config/plugin-ui-spec.js +1 -256
  2807. package/config/ui-spec.d.ts +1 -163
  2808. package/config/ui-spec.d.ts.map +1 -1
  2809. package/config/ui-spec.js +0 -12
  2810. package/content-packs/apply-pack.d.ts +4 -4
  2811. package/content-packs/apply-pack.d.ts.map +1 -1
  2812. package/content-packs/apply-pack.js +4 -4
  2813. package/content-packs/index.d.ts +3 -3
  2814. package/desktop-shell-compat.d.ts +7 -0
  2815. package/desktop-shell-compat.d.ts.map +1 -0
  2816. package/desktop-shell-compat.js +9 -0
  2817. package/events/index.d.ts +103 -46
  2818. package/events/index.d.ts.map +1 -1
  2819. package/events/index.js +128 -34
  2820. package/first-run/AgentPicker.d.ts +32 -0
  2821. package/first-run/AgentPicker.d.ts.map +1 -0
  2822. package/first-run/AgentPicker.js +45 -0
  2823. package/first-run/CompactOnboarding.d.ts +3 -0
  2824. package/first-run/CompactOnboarding.d.ts.map +1 -0
  2825. package/first-run/CompactOnboarding.js +114 -0
  2826. package/first-run/__e2e__/onboarding-fixture.d.ts +2 -0
  2827. package/first-run/__e2e__/onboarding-fixture.d.ts.map +1 -0
  2828. package/first-run/__e2e__/onboarding-fixture.js +16 -0
  2829. package/first-run/__e2e__/use-first-run-controller.stub.d.ts +41 -0
  2830. package/first-run/__e2e__/use-first-run-controller.stub.d.ts.map +1 -0
  2831. package/first-run/__e2e__/use-first-run-controller.stub.js +70 -0
  2832. package/first-run/auto-download-recommended.d.ts +24 -0
  2833. package/first-run/auto-download-recommended.d.ts.map +1 -0
  2834. package/first-run/auto-download-recommended.js +118 -0
  2835. package/first-run/deep-link-handler.d.ts +62 -0
  2836. package/first-run/deep-link-handler.d.ts.map +1 -0
  2837. package/first-run/deep-link-handler.js +147 -0
  2838. package/first-run/ensure-store-build-workspace-folder.d.ts +22 -0
  2839. package/first-run/ensure-store-build-workspace-folder.d.ts.map +1 -0
  2840. package/first-run/ensure-store-build-workspace-folder.js +45 -0
  2841. package/first-run/first-run-config.d.ts +55 -0
  2842. package/first-run/first-run-config.d.ts.map +1 -0
  2843. package/first-run/first-run-config.js +227 -0
  2844. package/first-run/first-run.d.ts +89 -0
  2845. package/first-run/first-run.d.ts.map +1 -0
  2846. package/first-run/first-run.js +339 -0
  2847. package/first-run/local-agent-token.d.ts +5 -0
  2848. package/first-run/local-agent-token.d.ts.map +1 -0
  2849. package/first-run/local-agent-token.js +53 -0
  2850. package/first-run/mobile-runtime-mode.d.ts +32 -0
  2851. package/first-run/mobile-runtime-mode.d.ts.map +1 -0
  2852. package/first-run/mobile-runtime-mode.js +201 -0
  2853. package/first-run/onboarding-intent.d.ts +34 -0
  2854. package/first-run/onboarding-intent.d.ts.map +1 -0
  2855. package/first-run/onboarding-intent.js +38 -0
  2856. package/first-run/pre-seed-local-runtime.d.ts +6 -0
  2857. package/first-run/pre-seed-local-runtime.d.ts.map +1 -0
  2858. package/first-run/pre-seed-local-runtime.js +91 -0
  2859. package/first-run/probe-local-agent.d.ts +50 -0
  2860. package/first-run/probe-local-agent.d.ts.map +1 -0
  2861. package/first-run/probe-local-agent.js +219 -0
  2862. package/first-run/reload-into-first-run-runtime.d.ts +14 -0
  2863. package/first-run/reload-into-first-run-runtime.d.ts.map +1 -0
  2864. package/first-run/reload-into-first-run-runtime.js +46 -0
  2865. package/first-run/runtime-target.d.ts +4 -0
  2866. package/first-run/runtime-target.d.ts.map +1 -0
  2867. package/first-run/runtime-target.js +13 -0
  2868. package/first-run/setup-steps.d.ts +22 -0
  2869. package/first-run/setup-steps.d.ts.map +1 -0
  2870. package/first-run/setup-steps.js +55 -0
  2871. package/first-run/use-first-run-controller.d.ts +46 -0
  2872. package/first-run/use-first-run-controller.d.ts.map +1 -0
  2873. package/first-run/use-first-run-controller.js +1146 -0
  2874. package/first-run/use-microphone-permission.d.ts +17 -0
  2875. package/first-run/use-microphone-permission.d.ts.map +1 -0
  2876. package/first-run/use-microphone-permission.js +106 -0
  2877. package/first-run/voice-readiness.d.ts +14 -0
  2878. package/first-run/voice-readiness.d.ts.map +1 -0
  2879. package/first-run/voice-readiness.js +78 -0
  2880. package/genui/actions.d.ts +8 -0
  2881. package/genui/actions.d.ts.map +1 -0
  2882. package/genui/actions.js +28 -0
  2883. package/genui/catalog.d.ts +11 -0
  2884. package/genui/catalog.d.ts.map +1 -0
  2885. package/genui/catalog.js +58 -0
  2886. package/genui/index.d.ts +9 -0
  2887. package/genui/index.d.ts.map +1 -0
  2888. package/genui/index.js +8 -0
  2889. package/genui/modes.d.ts +7 -0
  2890. package/genui/modes.d.ts.map +1 -0
  2891. package/genui/modes.js +41 -0
  2892. package/genui/pipe.d.ts +10 -0
  2893. package/genui/pipe.d.ts.map +1 -0
  2894. package/genui/pipe.js +122 -0
  2895. package/genui/renderer.d.ts +4 -0
  2896. package/genui/renderer.d.ts.map +1 -0
  2897. package/genui/renderer.js +213 -0
  2898. package/genui/starter-pack-demo.d.ts +3 -0
  2899. package/genui/starter-pack-demo.d.ts.map +1 -0
  2900. package/genui/starter-pack-demo.js +114 -0
  2901. package/genui/streaming.d.ts +5 -0
  2902. package/genui/streaming.d.ts.map +1 -0
  2903. package/genui/streaming.js +145 -0
  2904. package/genui/types.d.ts +132 -0
  2905. package/genui/types.d.ts.map +1 -0
  2906. package/genui/types.js +1 -0
  2907. package/genui/use-json-render-message.d.ts +20 -0
  2908. package/genui/use-json-render-message.d.ts.map +1 -0
  2909. package/genui/use-json-render-message.js +38 -0
  2910. package/genui/use-ui-stream.d.ts +8 -0
  2911. package/genui/use-ui-stream.d.ts.map +1 -0
  2912. package/genui/use-ui-stream.js +56 -0
  2913. package/genui/validator.d.ts +4 -0
  2914. package/genui/validator.d.ts.map +1 -0
  2915. package/genui/validator.js +301 -0
  2916. package/hooks/BugReportProvider.d.ts +7 -0
  2917. package/hooks/BugReportProvider.d.ts.map +1 -0
  2918. package/hooks/BugReportProvider.js +5 -0
  2919. package/hooks/frame-budget.d.ts +124 -0
  2920. package/hooks/frame-budget.d.ts.map +1 -0
  2921. package/hooks/frame-budget.js +183 -0
  2922. package/hooks/index.d.ts +27 -19
  2923. package/hooks/index.d.ts.map +1 -1
  2924. package/hooks/index.js +12 -4
  2925. package/hooks/resource-cache.d.ts +58 -0
  2926. package/hooks/resource-cache.d.ts.map +1 -0
  2927. package/hooks/resource-cache.js +277 -0
  2928. package/hooks/useAccounts.d.ts +2 -4
  2929. package/hooks/useAccounts.d.ts.map +1 -1
  2930. package/hooks/useAccounts.js +8 -12
  2931. package/hooks/useActivityEvents.d.ts +12 -0
  2932. package/hooks/useActivityEvents.d.ts.map +1 -1
  2933. package/hooks/useActivityEvents.js +57 -67
  2934. package/hooks/useAuthStatus.d.ts +2 -2
  2935. package/hooks/useAuthStatus.d.ts.map +1 -1
  2936. package/hooks/useAuthStatus.js +53 -23
  2937. package/hooks/useAvailableViews.d.ts +86 -0
  2938. package/hooks/useAvailableViews.d.ts.map +1 -0
  2939. package/hooks/useAvailableViews.js +238 -0
  2940. package/hooks/useBugReport.hooks.d.ts +21 -0
  2941. package/hooks/useBugReport.hooks.d.ts.map +1 -0
  2942. package/hooks/useBugReport.hooks.js +24 -0
  2943. package/hooks/useCachedResource.d.ts +38 -0
  2944. package/hooks/useCachedResource.d.ts.map +1 -0
  2945. package/hooks/useCachedResource.js +108 -0
  2946. package/hooks/useChatAvatarVoiceBridge.d.ts +0 -1
  2947. package/hooks/useChatAvatarVoiceBridge.d.ts.map +1 -1
  2948. package/hooks/useCloudHandoffPhase.d.ts +11 -0
  2949. package/hooks/useCloudHandoffPhase.d.ts.map +1 -0
  2950. package/hooks/useCloudHandoffPhase.js +45 -0
  2951. package/hooks/useConnectorAccounts.d.ts +2 -4
  2952. package/hooks/useConnectorAccounts.d.ts.map +1 -1
  2953. package/hooks/useConnectorAccounts.js +3 -9
  2954. package/hooks/useConnectorReconnect.d.ts +81 -0
  2955. package/hooks/useConnectorReconnect.d.ts.map +1 -0
  2956. package/hooks/useConnectorReconnect.js +180 -0
  2957. package/hooks/useConnectorSendAsAccount.d.ts +3 -5
  2958. package/hooks/useConnectorSendAsAccount.d.ts.map +1 -1
  2959. package/hooks/useConnectorSendAsAccount.js +14 -14
  2960. package/hooks/useContextMenu.d.ts +1 -1
  2961. package/hooks/useContextMenu.d.ts.map +1 -1
  2962. package/hooks/useContextMenu.js +7 -3
  2963. package/hooks/useContinuousChat.d.ts +109 -0
  2964. package/hooks/useContinuousChat.d.ts.map +1 -0
  2965. package/hooks/useContinuousChat.js +241 -0
  2966. package/hooks/useDefaultProviderPresets.d.ts +46 -0
  2967. package/hooks/useDefaultProviderPresets.d.ts.map +1 -0
  2968. package/hooks/useDefaultProviderPresets.js +54 -0
  2969. package/hooks/useDesktopBridgeEvent.d.ts +29 -0
  2970. package/hooks/useDesktopBridgeEvent.d.ts.map +1 -0
  2971. package/hooks/useDesktopBridgeEvent.js +39 -0
  2972. package/hooks/useDesktopTabs.d.ts +26 -0
  2973. package/hooks/useDesktopTabs.d.ts.map +1 -0
  2974. package/hooks/useDesktopTabs.js +113 -0
  2975. package/hooks/useFetchData.d.ts +37 -0
  2976. package/hooks/useFetchData.d.ts.map +1 -0
  2977. package/hooks/useFetchData.js +93 -0
  2978. package/hooks/useFrameBudgetMonitor.d.ts +30 -0
  2979. package/hooks/useFrameBudgetMonitor.d.ts.map +1 -0
  2980. package/hooks/useFrameBudgetMonitor.js +105 -0
  2981. package/hooks/useKeyboardShortcuts.d.ts +6 -13
  2982. package/hooks/useKeyboardShortcuts.d.ts.map +1 -1
  2983. package/hooks/useKeyboardShortcuts.js +21 -46
  2984. package/hooks/useLayoutShiftMonitor.d.ts +43 -0
  2985. package/hooks/useLayoutShiftMonitor.d.ts.map +1 -0
  2986. package/hooks/useLayoutShiftMonitor.js +128 -0
  2987. package/hooks/useModalState.d.ts +31 -0
  2988. package/hooks/useModalState.d.ts.map +1 -0
  2989. package/hooks/useModalState.js +45 -0
  2990. package/hooks/useNow.d.ts +10 -0
  2991. package/hooks/useNow.d.ts.map +1 -0
  2992. package/hooks/useNow.js +18 -0
  2993. package/hooks/useRenderGuard.d.ts +51 -12
  2994. package/hooks/useRenderGuard.d.ts.map +1 -1
  2995. package/hooks/useRenderGuard.js +157 -30
  2996. package/hooks/useRuntimeMode.d.ts +1 -1
  2997. package/hooks/useRuntimeMode.d.ts.map +1 -1
  2998. package/hooks/useSignalPairing.d.ts +2 -2
  2999. package/hooks/useViewCatalog.d.ts +25 -0
  3000. package/hooks/useViewCatalog.d.ts.map +1 -0
  3001. package/hooks/useViewCatalog.js +85 -0
  3002. package/hooks/useViewEvent.d.ts +28 -0
  3003. package/hooks/useViewEvent.d.ts.map +1 -0
  3004. package/hooks/useViewEvent.js +40 -0
  3005. package/hooks/useVoiceChat.d.ts +23 -6
  3006. package/hooks/useVoiceChat.d.ts.map +1 -1
  3007. package/hooks/useVoiceChat.js +665 -98
  3008. package/hooks/useWhatsAppPairing.d.ts +2 -2
  3009. package/hooks/useWhatsAppPairing.d.ts.map +1 -1
  3010. package/hooks/useWhatsAppPairing.js +28 -5
  3011. package/hooks/view-catalog.d.ts +106 -0
  3012. package/hooks/view-catalog.d.ts.map +1 -0
  3013. package/hooks/view-catalog.js +176 -0
  3014. package/i18n/index.d.ts +2 -2
  3015. package/i18n/index.d.ts.map +1 -1
  3016. package/i18n/index.js +4 -2
  3017. package/i18n/locales/en.json +4849 -668
  3018. package/i18n/locales/es.json +5334 -1210
  3019. package/i18n/locales/ja.json +7417 -0
  3020. package/i18n/locales/ko.json +5223 -1099
  3021. package/i18n/locales/pt.json +5215 -1091
  3022. package/i18n/locales/tl.json +5449 -1325
  3023. package/i18n/locales/vi.json +5151 -1027
  3024. package/i18n/locales/zh-CN.json +5096 -972
  3025. package/i18n/messages.d.ts +15 -1
  3026. package/i18n/messages.d.ts.map +1 -1
  3027. package/i18n/messages.js +54 -13
  3028. package/i18n/region.d.ts +43 -0
  3029. package/i18n/region.d.ts.map +1 -0
  3030. package/i18n/region.js +169 -0
  3031. package/index.d.ts +148 -40
  3032. package/index.d.ts.map +1 -1
  3033. package/index.js +112 -9
  3034. package/layouts/chat-panel-layout/chat-panel-layout.js +2 -2
  3035. package/layouts/chat-panel-layout/index.d.ts +1 -1
  3036. package/layouts/content-layout/index.d.ts +1 -1
  3037. package/layouts/index.d.ts +4 -4
  3038. package/layouts/page-layout/index.d.ts +4 -4
  3039. package/layouts/page-layout/page-layout-mobile-drawer.d.ts +1 -1
  3040. package/layouts/page-layout/page-layout-mobile-drawer.d.ts.map +1 -1
  3041. package/layouts/page-layout/page-layout-mobile-drawer.js +2 -2
  3042. package/layouts/page-layout/page-layout-types.d.ts +2 -2
  3043. package/layouts/page-layout/page-layout.d.ts +1 -1
  3044. package/layouts/workspace-layout/index.d.ts +3 -3
  3045. package/layouts/workspace-layout/index.d.ts.map +1 -1
  3046. package/layouts/workspace-layout/index.js +1 -1
  3047. package/layouts/workspace-layout/workspace-layout-types.d.ts +1 -1
  3048. package/layouts/workspace-layout/workspace-layout.d.ts +1 -1
  3049. package/layouts/workspace-layout/workspace-layout.d.ts.map +1 -1
  3050. package/layouts/workspace-layout/workspace-layout.js +2 -3
  3051. package/layouts/workspace-layout/workspace-mobile-sidebar-controls.hooks.d.ts +13 -0
  3052. package/layouts/workspace-layout/workspace-mobile-sidebar-controls.hooks.d.ts.map +1 -0
  3053. package/lib/floating-layers.d.ts +1 -2
  3054. package/lib/floating-layers.d.ts.map +1 -1
  3055. package/lib/floating-layers.js +2 -3
  3056. package/navigation/index.d.ts +18 -21
  3057. package/navigation/index.d.ts.map +1 -1
  3058. package/navigation/index.js +113 -75
  3059. package/navigation/main-tab.d.ts +6 -11
  3060. package/navigation/main-tab.d.ts.map +1 -1
  3061. package/navigation/main-tab.js +8 -17
  3062. package/navigation/nav-lock.d.ts +18 -0
  3063. package/navigation/nav-lock.d.ts.map +1 -0
  3064. package/navigation/nav-lock.js +34 -0
  3065. package/package.json +304 -19
  3066. package/perf/PerfOverlay.d.ts +21 -0
  3067. package/perf/PerfOverlay.d.ts.map +1 -0
  3068. package/perf/PerfOverlay.js +90 -0
  3069. package/perf/perf-hud-control.d.ts +21 -0
  3070. package/perf/perf-hud-control.d.ts.map +1 -0
  3071. package/perf/perf-hud-control.js +98 -0
  3072. package/platform/android-runtime.d.ts +3 -3
  3073. package/platform/android-runtime.d.ts.map +1 -1
  3074. package/platform/android-runtime.js +4 -7
  3075. package/platform/aosp-user-agent.d.ts +10 -0
  3076. package/platform/aosp-user-agent.d.ts.map +1 -0
  3077. package/platform/aosp-user-agent.js +13 -0
  3078. package/platform/assistant-launch-payload.d.ts +27 -0
  3079. package/platform/assistant-launch-payload.d.ts.map +1 -0
  3080. package/platform/assistant-launch-payload.js +110 -0
  3081. package/platform/browser-launch.d.ts +1 -0
  3082. package/platform/browser-launch.d.ts.map +1 -1
  3083. package/platform/browser-launch.js +56 -12
  3084. package/platform/cloud-preference-patch.d.ts +1 -5
  3085. package/platform/cloud-preference-patch.d.ts.map +1 -1
  3086. package/platform/cloud-preference-patch.js +2 -24
  3087. package/platform/desktop-permissions-client.d.ts +1 -1
  3088. package/platform/empty-node-module.d.ts +2 -2
  3089. package/platform/empty-node-module.d.ts.map +1 -1
  3090. package/platform/empty-node-module.js +2 -2
  3091. package/platform/first-run-reset.d.ts +21 -0
  3092. package/platform/first-run-reset.d.ts.map +1 -0
  3093. package/platform/first-run-reset.js +140 -0
  3094. package/platform/index.d.ts +14 -10
  3095. package/platform/index.d.ts.map +1 -1
  3096. package/platform/index.js +7 -10
  3097. package/platform/init.d.ts +16 -18
  3098. package/platform/init.d.ts.map +1 -1
  3099. package/platform/init.js +41 -29
  3100. package/platform/ios-runtime.d.ts +18 -1
  3101. package/platform/ios-runtime.d.ts.map +1 -1
  3102. package/platform/ios-runtime.js +45 -24
  3103. package/platform/mobile-permissions-client.d.ts +25 -0
  3104. package/platform/mobile-permissions-client.d.ts.map +1 -0
  3105. package/platform/mobile-permissions-client.js +628 -0
  3106. package/platform/platform-guards.d.ts +47 -0
  3107. package/platform/platform-guards.d.ts.map +1 -0
  3108. package/platform/platform-guards.js +55 -0
  3109. package/platform/types.d.ts +7 -11
  3110. package/platform/types.d.ts.map +1 -1
  3111. package/platform/window-shell.d.ts +21 -4
  3112. package/platform/window-shell.d.ts.map +1 -1
  3113. package/platform/window-shell.js +25 -5
  3114. package/providers/index.d.ts +1 -1
  3115. package/providers/index.d.ts.map +1 -1
  3116. package/providers/index.js +1 -1
  3117. package/retained-lazy.d.ts +27 -0
  3118. package/retained-lazy.d.ts.map +1 -0
  3119. package/retained-lazy.js +285 -0
  3120. package/services/app-updates/update-policy.d.ts +64 -0
  3121. package/services/app-updates/update-policy.d.ts.map +1 -0
  3122. package/services/app-updates/update-policy.js +228 -0
  3123. package/services/local-inference/active-model.d.ts +8 -86
  3124. package/services/local-inference/active-model.d.ts.map +1 -1
  3125. package/services/local-inference/active-model.js +88 -23
  3126. package/services/local-inference/assignments.d.ts +15 -17
  3127. package/services/local-inference/assignments.d.ts.map +1 -1
  3128. package/services/local-inference/assignments.js +53 -26
  3129. package/services/local-inference/bundled-models.d.ts +1 -1
  3130. package/services/local-inference/bundled-models.js +1 -1
  3131. package/services/local-inference/catalog-policy.d.ts +7 -0
  3132. package/services/local-inference/catalog-policy.d.ts.map +1 -0
  3133. package/services/local-inference/catalog-policy.js +19 -0
  3134. package/services/local-inference/catalog.d.ts +6 -51
  3135. package/services/local-inference/catalog.d.ts.map +1 -1
  3136. package/services/local-inference/catalog.js +6 -268
  3137. package/services/local-inference/custom-search.d.ts +34 -0
  3138. package/services/local-inference/custom-search.d.ts.map +1 -0
  3139. package/services/local-inference/custom-search.js +61 -0
  3140. package/services/local-inference/device-bridge.d.ts +36 -5
  3141. package/services/local-inference/device-bridge.d.ts.map +1 -1
  3142. package/services/local-inference/device-bridge.js +56 -3
  3143. package/services/local-inference/disk-space.d.ts +15 -0
  3144. package/services/local-inference/disk-space.d.ts.map +1 -0
  3145. package/services/local-inference/disk-space.js +29 -0
  3146. package/services/local-inference/downloader.d.ts +40 -5
  3147. package/services/local-inference/downloader.d.ts.map +1 -1
  3148. package/services/local-inference/downloader.js +102 -144
  3149. package/services/local-inference/engine.d.ts +18 -32
  3150. package/services/local-inference/engine.d.ts.map +1 -1
  3151. package/services/local-inference/engine.js +42 -207
  3152. package/services/local-inference/external-scanner.d.ts +1 -1
  3153. package/services/local-inference/handler-registry.d.ts +1 -1
  3154. package/services/local-inference/handler-registry.d.ts.map +1 -1
  3155. package/services/local-inference/handler-registry.js +14 -7
  3156. package/services/local-inference/hardware.d.ts +44 -10
  3157. package/services/local-inference/hardware.d.ts.map +1 -1
  3158. package/services/local-inference/hardware.js +187 -76
  3159. package/services/local-inference/hf-search.d.ts +7 -15
  3160. package/services/local-inference/hf-search.d.ts.map +1 -1
  3161. package/services/local-inference/hf-search.js +17 -164
  3162. package/services/local-inference/home-model-status.d.ts +25 -0
  3163. package/services/local-inference/home-model-status.d.ts.map +1 -0
  3164. package/services/local-inference/home-model-status.js +90 -0
  3165. package/services/local-inference/index.d.ts +11 -8
  3166. package/services/local-inference/index.d.ts.map +1 -1
  3167. package/services/local-inference/index.js +5 -2
  3168. package/services/local-inference/load-args.d.ts +60 -0
  3169. package/services/local-inference/load-args.d.ts.map +1 -0
  3170. package/services/local-inference/load-args.js +10 -0
  3171. package/services/local-inference/manifest.d.ts +45 -0
  3172. package/services/local-inference/manifest.d.ts.map +1 -0
  3173. package/services/local-inference/manifest.js +26 -0
  3174. package/services/local-inference/paths.d.ts +1 -7
  3175. package/services/local-inference/paths.d.ts.map +1 -1
  3176. package/services/local-inference/paths.js +1 -7
  3177. package/services/local-inference/readiness.d.ts +1 -1
  3178. package/services/local-inference/readiness.js +1 -1
  3179. package/services/local-inference/recommendation.d.ts +10 -7
  3180. package/services/local-inference/recommendation.d.ts.map +1 -1
  3181. package/services/local-inference/recommendation.js +64 -53
  3182. package/services/local-inference/registry.d.ts +11 -13
  3183. package/services/local-inference/registry.d.ts.map +1 -1
  3184. package/services/local-inference/registry.js +19 -17
  3185. package/services/local-inference/resource-snapshot-bridge.d.ts +51 -0
  3186. package/services/local-inference/resource-snapshot-bridge.d.ts.map +1 -0
  3187. package/services/local-inference/resource-snapshot-bridge.js +90 -0
  3188. package/services/local-inference/routing-policy.d.ts +6 -2
  3189. package/services/local-inference/routing-policy.d.ts.map +1 -1
  3190. package/services/local-inference/routing-policy.js +39 -5
  3191. package/services/local-inference/routing-preferences.d.ts +1 -7
  3192. package/services/local-inference/routing-preferences.d.ts.map +1 -1
  3193. package/services/local-inference/routing-preferences.js +1 -7
  3194. package/services/local-inference/service.d.ts +15 -5
  3195. package/services/local-inference/service.d.ts.map +1 -1
  3196. package/services/local-inference/service.js +38 -8
  3197. package/services/local-inference/token-tree.d.ts +188 -0
  3198. package/services/local-inference/token-tree.d.ts.map +1 -0
  3199. package/services/local-inference/token-tree.js +185 -0
  3200. package/services/local-inference/tokenizer-client.d.ts +88 -0
  3201. package/services/local-inference/tokenizer-client.d.ts.map +1 -0
  3202. package/services/local-inference/tokenizer-client.js +166 -0
  3203. package/services/local-inference/types.d.ts +5 -235
  3204. package/services/local-inference/types.d.ts.map +1 -1
  3205. package/services/local-inference/types.js +5 -18
  3206. package/services/local-inference/verify.d.ts +1 -7
  3207. package/services/local-inference/verify.d.ts.map +1 -1
  3208. package/services/local-inference/verify.js +1 -7
  3209. package/shell-params.d.ts +1 -1
  3210. package/shell-params.d.ts.map +1 -1
  3211. package/shell-params.js +0 -1
  3212. package/slots/task-coordinator-slots.d.ts +8 -26
  3213. package/slots/task-coordinator-slots.d.ts.map +1 -1
  3214. package/slots/task-coordinator-slots.helpers.d.ts +32 -0
  3215. package/slots/task-coordinator-slots.helpers.d.ts.map +1 -0
  3216. package/slots/task-coordinator-slots.helpers.js +14 -0
  3217. package/slots/task-coordinator-slots.js +19 -8
  3218. package/spatial/context.d.ts +24 -0
  3219. package/spatial/context.d.ts.map +1 -0
  3220. package/spatial/context.js +15 -0
  3221. package/spatial/dom.d.ts +48 -0
  3222. package/spatial/dom.d.ts.map +1 -0
  3223. package/spatial/dom.js +51 -0
  3224. package/spatial/evaluate.d.ts +67 -0
  3225. package/spatial/evaluate.d.ts.map +1 -0
  3226. package/spatial/evaluate.js +233 -0
  3227. package/spatial/example.d.ts +19 -0
  3228. package/spatial/example.d.ts.map +1 -0
  3229. package/spatial/example.js +28 -0
  3230. package/spatial/gallery.d.ts +20 -0
  3231. package/spatial/gallery.d.ts.map +1 -0
  3232. package/spatial/gallery.js +179 -0
  3233. package/spatial/index.d.ts +24 -0
  3234. package/spatial/index.d.ts.map +1 -0
  3235. package/spatial/index.js +25 -0
  3236. package/spatial/ir.d.ts +157 -0
  3237. package/spatial/ir.d.ts.map +1 -0
  3238. package/spatial/ir.js +41 -0
  3239. package/spatial/primitives.d.ts +107 -0
  3240. package/spatial/primitives.d.ts.map +1 -0
  3241. package/spatial/primitives.js +450 -0
  3242. package/spatial/tui/engine.d.ts +28 -0
  3243. package/spatial/tui/engine.d.ts.map +1 -0
  3244. package/spatial/tui/engine.js +488 -0
  3245. package/spatial/tui/framing.d.ts +33 -0
  3246. package/spatial/tui/framing.d.ts.map +1 -0
  3247. package/spatial/tui/framing.js +189 -0
  3248. package/spatial/tui/index.d.ts +10 -0
  3249. package/spatial/tui/index.d.ts.map +1 -0
  3250. package/spatial/tui/index.js +10 -0
  3251. package/spatial/tui/renderer.d.ts +62 -0
  3252. package/spatial/tui/renderer.d.ts.map +1 -0
  3253. package/spatial/tui/renderer.js +161 -0
  3254. package/state/AppContext.d.ts +1 -3
  3255. package/state/AppContext.d.ts.map +1 -1
  3256. package/state/AppContext.hooks.d.ts +15 -0
  3257. package/state/AppContext.hooks.d.ts.map +1 -0
  3258. package/state/AppContext.hooks.js +11 -0
  3259. package/state/AppContext.js +698 -586
  3260. package/state/ChatComposerContext.hooks.d.ts +59 -0
  3261. package/state/ChatComposerContext.hooks.d.ts.map +1 -0
  3262. package/state/ChatComposerContext.hooks.js +148 -0
  3263. package/state/ChatTurnStatusContext.hooks.d.ts +27 -0
  3264. package/state/ChatTurnStatusContext.hooks.d.ts.map +1 -0
  3265. package/state/ChatTurnStatusContext.hooks.js +24 -0
  3266. package/state/CompanionSceneConfigContext.hooks.d.ts +28 -0
  3267. package/state/CompanionSceneConfigContext.hooks.d.ts.map +1 -0
  3268. package/state/CompanionSceneConfigContext.hooks.js +33 -0
  3269. package/state/ConversationMessagesContext.hooks.d.ts +26 -0
  3270. package/state/ConversationMessagesContext.hooks.d.ts.map +1 -0
  3271. package/state/ConversationMessagesContext.hooks.js +22 -0
  3272. package/state/PtySessionsContext.hooks.d.ts +18 -0
  3273. package/state/PtySessionsContext.hooks.d.ts.map +1 -0
  3274. package/state/PtySessionsContext.hooks.js +18 -0
  3275. package/state/TranslationContext.hooks.d.ts +28 -0
  3276. package/state/TranslationContext.hooks.d.ts.map +1 -0
  3277. package/state/TranslationContext.hooks.js +38 -0
  3278. package/state/TranslationProvider.d.ts +23 -0
  3279. package/state/TranslationProvider.d.ts.map +1 -0
  3280. package/state/TranslationProvider.js +86 -0
  3281. package/state/action-banner.d.ts +18 -0
  3282. package/state/action-banner.d.ts.map +1 -0
  3283. package/state/action-banner.js +1 -0
  3284. package/state/action-notice.d.ts +31 -1
  3285. package/state/action-notice.d.ts.map +1 -1
  3286. package/state/action-notice.js +27 -1
  3287. package/state/agent-profiles.d.ts +10 -2
  3288. package/state/agent-profiles.d.ts.map +1 -1
  3289. package/state/agent-profiles.js +21 -2
  3290. package/state/agent-runtime-target.d.ts +2 -2
  3291. package/state/agent-runtime-target.d.ts.map +1 -1
  3292. package/state/agent-runtime-target.js +5 -1
  3293. package/state/app-store.d.ts +52 -0
  3294. package/state/app-store.d.ts.map +1 -0
  3295. package/state/app-store.js +169 -0
  3296. package/state/autonomy.d.ts +1 -1
  3297. package/state/chat-conversation-guards.d.ts +1 -1
  3298. package/state/chat-conversation-guards.d.ts.map +1 -1
  3299. package/state/chat-conversation-guards.js +0 -1
  3300. package/state/cloud-steward-login.d.ts +44 -0
  3301. package/state/cloud-steward-login.d.ts.map +1 -0
  3302. package/state/cloud-steward-login.js +52 -0
  3303. package/state/complete-reset-local-state-after-wipe.d.ts +8 -8
  3304. package/state/complete-reset-local-state-after-wipe.d.ts.map +1 -1
  3305. package/state/complete-reset-local-state-after-wipe.js +6 -6
  3306. package/state/conversation-message-filter.d.ts +10 -0
  3307. package/state/conversation-message-filter.d.ts.map +1 -0
  3308. package/state/conversation-message-filter.js +18 -0
  3309. package/state/first-run-bootstrap.d.ts +17 -0
  3310. package/state/first-run-bootstrap.d.ts.map +1 -0
  3311. package/state/first-run-bootstrap.js +62 -0
  3312. package/state/first-run-restart.d.ts +8 -0
  3313. package/state/first-run-restart.d.ts.map +1 -0
  3314. package/state/first-run-restart.js +8 -0
  3315. package/state/handle-reset-applied-from-main.d.ts +3 -3
  3316. package/state/index.d.ts +24 -15
  3317. package/state/index.d.ts.map +1 -1
  3318. package/state/index.js +15 -6
  3319. package/state/internal.d.ts +11 -8
  3320. package/state/internal.d.ts.map +1 -1
  3321. package/state/internal.js +8 -6
  3322. package/state/notifications/navigate-deep-link.d.ts +27 -0
  3323. package/state/notifications/navigate-deep-link.d.ts.map +1 -0
  3324. package/state/notifications/navigate-deep-link.js +48 -0
  3325. package/state/notifications/notification-store.d.ts +35 -0
  3326. package/state/notifications/notification-store.d.ts.map +1 -0
  3327. package/state/notifications/notification-store.js +179 -0
  3328. package/state/parsers.d.ts +3 -3
  3329. package/state/parsers.d.ts.map +1 -1
  3330. package/state/parsers.js +16 -3
  3331. package/state/persistence.d.ts +59 -15
  3332. package/state/persistence.d.ts.map +1 -1
  3333. package/state/persistence.js +218 -86
  3334. package/state/private-network-host.d.ts +11 -0
  3335. package/state/private-network-host.d.ts.map +1 -0
  3336. package/state/private-network-host.js +35 -0
  3337. package/state/screen-capture-bridge.d.ts +8 -0
  3338. package/state/screen-capture-bridge.d.ts.map +1 -0
  3339. package/state/screen-capture-bridge.js +124 -0
  3340. package/state/setup-resume.d.ts +9 -0
  3341. package/state/setup-resume.d.ts.map +1 -0
  3342. package/state/setup-resume.js +98 -0
  3343. package/state/shell-routing.d.ts +5 -5
  3344. package/state/shell-routing.d.ts.map +1 -1
  3345. package/state/shell-surface-store.d.ts +50 -0
  3346. package/state/shell-surface-store.d.ts.map +1 -0
  3347. package/state/shell-surface-store.js +130 -0
  3348. package/state/springboard-layout.d.ts +85 -0
  3349. package/state/springboard-layout.d.ts.map +1 -0
  3350. package/state/springboard-layout.js +180 -0
  3351. package/state/startup-coordinator.d.ts +47 -23
  3352. package/state/startup-coordinator.d.ts.map +1 -1
  3353. package/state/startup-coordinator.js +94 -44
  3354. package/state/startup-phase-hydrate.d.ts +11 -10
  3355. package/state/startup-phase-hydrate.d.ts.map +1 -1
  3356. package/state/startup-phase-hydrate.js +212 -103
  3357. package/state/startup-phase-poll.d.ts +81 -28
  3358. package/state/startup-phase-poll.d.ts.map +1 -1
  3359. package/state/startup-phase-poll.js +359 -83
  3360. package/state/startup-phase-restore.d.ts +36 -12
  3361. package/state/startup-phase-restore.d.ts.map +1 -1
  3362. package/state/startup-phase-restore.js +259 -101
  3363. package/state/startup-phase-runtime.d.ts +9 -5
  3364. package/state/startup-phase-runtime.d.ts.map +1 -1
  3365. package/state/startup-phase-runtime.js +227 -17
  3366. package/state/startup-telemetry.d.ts +73 -0
  3367. package/state/startup-telemetry.d.ts.map +1 -0
  3368. package/state/startup-telemetry.js +139 -0
  3369. package/state/types.d.ts +162 -111
  3370. package/state/types.d.ts.map +1 -1
  3371. package/state/types.js +60 -13
  3372. package/state/ui-preferences.d.ts +45 -0
  3373. package/state/ui-preferences.d.ts.map +1 -1
  3374. package/state/ui-preferences.js +30 -1
  3375. package/state/use-startup-shell-controller.d.ts +14 -0
  3376. package/state/use-startup-shell-controller.d.ts.map +1 -0
  3377. package/state/use-startup-shell-controller.js +230 -0
  3378. package/state/useApp.d.ts +1 -1
  3379. package/state/useApp.d.ts.map +1 -1
  3380. package/state/useApp.js +6 -2
  3381. package/state/useAppLifecycleEvents.d.ts +32 -0
  3382. package/state/useAppLifecycleEvents.d.ts.map +1 -0
  3383. package/state/useAppLifecycleEvents.js +102 -0
  3384. package/state/useAppProviderEffects.d.ts +3 -3
  3385. package/state/useAppProviderEffects.d.ts.map +1 -1
  3386. package/state/useAppProviderEffects.js +20 -13
  3387. package/state/useAppShellState.d.ts +6 -6
  3388. package/state/useBackgroundConfig.d.ts +16 -0
  3389. package/state/useBackgroundConfig.d.ts.map +1 -0
  3390. package/state/useBackgroundConfig.js +21 -0
  3391. package/state/useCharacterState.d.ts +2 -2
  3392. package/state/useCharacterState.js +1 -1
  3393. package/state/useChatCallbacks.d.ts +65 -33
  3394. package/state/useChatCallbacks.d.ts.map +1 -1
  3395. package/state/useChatCallbacks.js +245 -168
  3396. package/state/useChatLifecycle.d.ts +36 -29
  3397. package/state/useChatLifecycle.d.ts.map +1 -1
  3398. package/state/useChatLifecycle.js +151 -125
  3399. package/state/useChatSend.d.ts +8 -6
  3400. package/state/useChatSend.d.ts.map +1 -1
  3401. package/state/useChatSend.js +416 -107
  3402. package/state/useChatState.d.ts +4 -9
  3403. package/state/useChatState.d.ts.map +1 -1
  3404. package/state/useChatState.js +1 -9
  3405. package/state/useCloudState.d.ts +7 -3
  3406. package/state/useCloudState.d.ts.map +1 -1
  3407. package/state/useCloudState.js +187 -27
  3408. package/state/useContentPack.d.ts +27 -0
  3409. package/state/useContentPack.d.ts.map +1 -0
  3410. package/state/useContentPack.js +220 -0
  3411. package/state/useDataLoaders.d.ts +11 -10
  3412. package/state/useDataLoaders.d.ts.map +1 -1
  3413. package/state/useDataLoaders.js +133 -27
  3414. package/state/useDeveloperMode.d.ts.map +1 -1
  3415. package/state/useDeveloperMode.js +48 -8
  3416. package/state/useDisplayPreferences.d.ts +8 -4
  3417. package/state/useDisplayPreferences.d.ts.map +1 -1
  3418. package/state/useDisplayPreferences.js +68 -16
  3419. package/state/useFirstRunCallbacks.d.ts +102 -0
  3420. package/state/useFirstRunCallbacks.d.ts.map +1 -0
  3421. package/state/useFirstRunCallbacks.js +838 -0
  3422. package/state/useFirstRunState.d.ts +126 -0
  3423. package/state/useFirstRunState.d.ts.map +1 -0
  3424. package/state/useFirstRunState.js +259 -0
  3425. package/state/useLifecycleState.d.ts +26 -11
  3426. package/state/useLifecycleState.d.ts.map +1 -1
  3427. package/state/useLifecycleState.js +79 -27
  3428. package/state/useLogsState.d.ts +1 -1
  3429. package/state/useMiscUiState.d.ts +1 -1
  3430. package/state/useMiscUiState.js +1 -1
  3431. package/state/useNavigationState.d.ts +4 -5
  3432. package/state/useNavigationState.d.ts.map +1 -1
  3433. package/state/useNavigationState.js +34 -27
  3434. package/state/usePluginsSkillsState.d.ts +9 -6
  3435. package/state/usePluginsSkillsState.d.ts.map +1 -1
  3436. package/state/usePluginsSkillsState.js +58 -13
  3437. package/state/usePreviewMode.d.ts +4 -0
  3438. package/state/usePreviewMode.d.ts.map +1 -0
  3439. package/state/usePreviewMode.js +93 -0
  3440. package/state/useStartupCoordinator.d.ts +9 -6
  3441. package/state/useStartupCoordinator.d.ts.map +1 -1
  3442. package/state/useStartupCoordinator.js +133 -28
  3443. package/state/useStreamingText.d.ts +74 -0
  3444. package/state/useStreamingText.d.ts.map +1 -0
  3445. package/state/useStreamingText.js +104 -0
  3446. package/state/useTabSync.d.ts +32 -0
  3447. package/state/useTabSync.d.ts.map +1 -0
  3448. package/state/useTabSync.js +81 -0
  3449. package/state/useTriggersState.d.ts +3 -3
  3450. package/state/useTriggersState.d.ts.map +1 -1
  3451. package/state/useViewKinds.d.ts +19 -0
  3452. package/state/useViewKinds.d.ts.map +1 -0
  3453. package/state/useViewKinds.js +28 -0
  3454. package/state/useWalletState.d.ts +5 -5
  3455. package/state/useWalletState.d.ts.map +1 -1
  3456. package/state/useWalletState.js +13 -4
  3457. package/state/view-chat-binding.d.ts +29 -0
  3458. package/state/view-chat-binding.d.ts.map +1 -0
  3459. package/state/view-chat-binding.js +41 -0
  3460. package/state/vrm.d.ts +1 -1
  3461. package/storage/workspace-folder.d.ts +30 -0
  3462. package/storage/workspace-folder.d.ts.map +1 -0
  3463. package/storage/workspace-folder.js +74 -0
  3464. package/stories/layout-story-fixtures.d.ts +0 -5
  3465. package/stories/layout-story-fixtures.d.ts.map +1 -1
  3466. package/stories/layout-story-fixtures.data.d.ts +6 -0
  3467. package/stories/layout-story-fixtures.data.d.ts.map +1 -0
  3468. package/stories/layout-story-fixtures.data.js +7 -0
  3469. package/stories/layout-story-fixtures.js +9 -8
  3470. package/storybook/home-widget-decorator.d.ts +21 -0
  3471. package/storybook/home-widget-decorator.d.ts.map +1 -0
  3472. package/storybook/home-widget-decorator.js +53 -0
  3473. package/storybook/mock-providers.d.ts +24 -0
  3474. package/storybook/mock-providers.d.ts.map +1 -0
  3475. package/storybook/mock-providers.helpers.d.ts +10 -0
  3476. package/storybook/mock-providers.helpers.d.ts.map +1 -0
  3477. package/storybook/mock-providers.helpers.js +11 -0
  3478. package/storybook/mock-providers.js +95 -0
  3479. package/styles/base.css +407 -162
  3480. package/styles/brand-gold.css +238 -197
  3481. package/styles/electrobun-mac-window-drag.css +3 -3
  3482. package/styles/styles.css +77 -146
  3483. package/styles/tailwind-theme.css +140 -0
  3484. package/styles/theme.css +78 -61
  3485. package/styles.d.ts +4 -0
  3486. package/styles.d.ts.map +1 -0
  3487. package/styles.js +9 -0
  3488. package/testing/layout-stability.d.ts +67 -0
  3489. package/testing/layout-stability.d.ts.map +1 -0
  3490. package/testing/layout-stability.js +106 -0
  3491. package/testing/render-counter.d.ts +56 -0
  3492. package/testing/render-counter.d.ts.map +1 -0
  3493. package/testing/render-counter.js +62 -0
  3494. package/themes/apply-theme.d.ts +0 -5
  3495. package/themes/apply-theme.d.ts.map +1 -1
  3496. package/themes/apply-theme.js +1 -9
  3497. package/themes/index.d.ts +14 -0
  3498. package/themes/index.d.ts.map +1 -0
  3499. package/themes/index.js +12 -0
  3500. package/themes/presets.d.ts +7 -0
  3501. package/themes/presets.d.ts.map +1 -0
  3502. package/themes/presets.js +159 -0
  3503. package/types/host-external-modules.d.ts +5 -0
  3504. package/types/host-external-modules.d.ts.map +1 -0
  3505. package/types/host-external-modules.js +1 -0
  3506. package/types/index.d.ts +1 -654
  3507. package/types/index.d.ts.map +1 -1
  3508. package/types/index.js +1 -4
  3509. package/types/plugin-views.d.ts +17 -0
  3510. package/types/plugin-views.d.ts.map +1 -0
  3511. package/types/plugin-views.js +1 -0
  3512. package/utils/attachment-url.d.ts +42 -0
  3513. package/utils/attachment-url.d.ts.map +1 -0
  3514. package/utils/attachment-url.js +130 -0
  3515. package/utils/browser-tab-kit-types.d.ts +1 -80
  3516. package/utils/browser-tab-kit-types.d.ts.map +1 -1
  3517. package/utils/browser-tab-kit-types.js +0 -21
  3518. package/utils/browser-tabs-renderer-registry.d.ts +1 -55
  3519. package/utils/browser-tabs-renderer-registry.d.ts.map +1 -1
  3520. package/utils/browser-tabs-renderer-registry.js +1 -1223
  3521. package/utils/character-message-examples.d.ts +1 -6
  3522. package/utils/character-message-examples.d.ts.map +1 -1
  3523. package/utils/character-message-examples.js +1 -122
  3524. package/utils/cloud-agent-base.d.ts +49 -0
  3525. package/utils/cloud-agent-base.d.ts.map +1 -0
  3526. package/utils/cloud-agent-base.js +132 -0
  3527. package/utils/cloud-status.d.ts +1 -2
  3528. package/utils/cloud-status.d.ts.map +1 -1
  3529. package/utils/cloud-status.js +1 -10
  3530. package/utils/desktop-workspace.d.ts +1 -1
  3531. package/utils/desktop-workspace.d.ts.map +1 -1
  3532. package/utils/desktop-workspace.js +0 -5
  3533. package/utils/documents-upload-image.d.ts +1 -26
  3534. package/utils/documents-upload-image.d.ts.map +1 -1
  3535. package/utils/documents-upload-image.js +1 -146
  3536. package/utils/download-share.d.ts +65 -0
  3537. package/utils/download-share.d.ts.map +1 -0
  3538. package/utils/download-share.js +292 -0
  3539. package/utils/eliza-cloud-model-route.d.ts +1 -2
  3540. package/utils/eliza-cloud-model-route.d.ts.map +1 -1
  3541. package/utils/eliza-cloud-model-route.js +1 -9
  3542. package/utils/eliza-globals.d.ts +1 -12
  3543. package/utils/eliza-globals.d.ts.map +1 -1
  3544. package/utils/eliza-globals.js +1 -48
  3545. package/utils/errors.d.ts +1 -12
  3546. package/utils/errors.d.ts.map +1 -1
  3547. package/utils/errors.js +1 -25
  3548. package/utils/event-source.d.ts +17 -0
  3549. package/utils/event-source.d.ts.map +1 -0
  3550. package/utils/event-source.js +36 -0
  3551. package/utils/format.d.ts +8 -62
  3552. package/utils/format.d.ts.map +1 -1
  3553. package/utils/format.js +34 -117
  3554. package/utils/globals.js +1 -1
  3555. package/utils/host-capabilities.d.ts +39 -0
  3556. package/utils/host-capabilities.d.ts.map +1 -0
  3557. package/utils/host-capabilities.js +85 -0
  3558. package/utils/image-attachment.d.ts +187 -0
  3559. package/utils/image-attachment.d.ts.map +1 -0
  3560. package/utils/image-attachment.js +313 -0
  3561. package/utils/index.d.ts +34 -33
  3562. package/utils/index.d.ts.map +1 -1
  3563. package/utils/index.js +5 -4
  3564. package/utils/labels.d.ts +1 -5
  3565. package/utils/labels.d.ts.map +1 -1
  3566. package/utils/labels.js +1 -41
  3567. package/utils/log-prefix.d.ts +1 -1
  3568. package/utils/log-prefix.d.ts.map +1 -1
  3569. package/utils/log-prefix.js +1 -53
  3570. package/utils/name-tokens.d.ts +1 -23
  3571. package/utils/name-tokens.d.ts.map +1 -1
  3572. package/utils/name-tokens.js +1 -36
  3573. package/utils/namespace-defaults.d.ts +1 -5
  3574. package/utils/namespace-defaults.d.ts.map +1 -1
  3575. package/utils/namespace-defaults.js +1 -15
  3576. package/utils/openExternalUrl.d.ts.map +1 -1
  3577. package/utils/openExternalUrl.js +3 -6
  3578. package/utils/owner-name.d.ts +1 -2
  3579. package/utils/owner-name.d.ts.map +1 -1
  3580. package/utils/owner-name.js +1 -7
  3581. package/utils/rate-limiter.d.ts +1 -31
  3582. package/utils/rate-limiter.d.ts.map +1 -1
  3583. package/utils/rate-limiter.js +1 -52
  3584. package/utils/serialise.d.ts +1 -11
  3585. package/utils/serialise.d.ts.map +1 -1
  3586. package/utils/serialise.js +1 -21
  3587. package/utils/sql-compat.d.ts +1 -9
  3588. package/utils/sql-compat.d.ts.map +1 -1
  3589. package/utils/sql-compat.js +1 -111
  3590. package/utils/streaming-text.d.ts +1 -8
  3591. package/utils/streaming-text.d.ts.map +1 -1
  3592. package/utils/streaming-text.js +1 -112
  3593. package/utils/subscription-auth.d.ts +1 -8
  3594. package/utils/subscription-auth.d.ts.map +1 -1
  3595. package/utils/subscription-auth.js +1 -48
  3596. package/utils/trajectory-format.d.ts +1 -5
  3597. package/utils/trajectory-format.d.ts.map +1 -1
  3598. package/utils/trajectory-format.js +1 -43
  3599. package/utils/transient-fetch.d.ts +20 -0
  3600. package/utils/transient-fetch.d.ts.map +1 -0
  3601. package/utils/transient-fetch.js +36 -0
  3602. package/utils/tts-debug.d.ts.map +1 -1
  3603. package/utils/tts-debug.js +3 -24
  3604. package/utils/workflow-executions.d.ts +26 -0
  3605. package/utils/workflow-executions.d.ts.map +1 -0
  3606. package/utils/workflow-executions.js +166 -0
  3607. package/utils/workflow-json.d.ts +1 -1
  3608. package/utils/workflow-json.d.ts.map +1 -1
  3609. package/utils/workflow-json.js +10 -0
  3610. package/view-recents.d.ts +6 -0
  3611. package/view-recents.d.ts.map +1 -0
  3612. package/view-recents.js +35 -0
  3613. package/view-telemetry.d.ts +30 -0
  3614. package/view-telemetry.d.ts.map +1 -0
  3615. package/view-telemetry.js +47 -0
  3616. package/views/view-event-bus.d.ts +40 -0
  3617. package/views/view-event-bus.d.ts.map +1 -0
  3618. package/views/view-event-bus.js +94 -0
  3619. package/views/view-event-types.d.ts +24 -0
  3620. package/views/view-event-types.d.ts.map +1 -0
  3621. package/views/view-event-types.js +22 -0
  3622. package/views/view-interact-protocol.d.ts +45 -0
  3623. package/views/view-interact-protocol.d.ts.map +1 -0
  3624. package/views/view-interact-protocol.js +28 -0
  3625. package/voice/audio-frame-diarization-harness.d.ts +43 -0
  3626. package/voice/audio-frame-diarization-harness.d.ts.map +1 -0
  3627. package/voice/audio-frame-diarization-harness.js +63 -0
  3628. package/voice/audio-frame-pump.d.ts +68 -0
  3629. package/voice/audio-frame-pump.d.ts.map +1 -0
  3630. package/voice/audio-frame-pump.js +137 -0
  3631. package/voice/character-voice-config.d.ts +3 -1
  3632. package/voice/character-voice-config.d.ts.map +1 -1
  3633. package/voice/character-voice-config.js +8 -0
  3634. package/voice/emotion.d.ts +43 -0
  3635. package/voice/emotion.d.ts.map +1 -0
  3636. package/voice/emotion.js +131 -0
  3637. package/voice/end-of-turn.d.ts +84 -0
  3638. package/voice/end-of-turn.d.ts.map +1 -0
  3639. package/voice/end-of-turn.js +119 -0
  3640. package/voice/index.d.ts +11 -2
  3641. package/voice/index.d.ts.map +1 -1
  3642. package/voice/index.js +9 -0
  3643. package/voice/jni-voice-harness.d.ts +67 -0
  3644. package/voice/jni-voice-harness.d.ts.map +1 -0
  3645. package/voice/jni-voice-harness.js +125 -0
  3646. package/voice/jni-voice-pipeline.d.ts +127 -0
  3647. package/voice/jni-voice-pipeline.d.ts.map +1 -0
  3648. package/voice/jni-voice-pipeline.js +276 -0
  3649. package/voice/local-asr-capture.d.ts +46 -0
  3650. package/voice/local-asr-capture.d.ts.map +1 -0
  3651. package/voice/local-asr-capture.js +238 -0
  3652. package/voice/local-asr-transcribe.d.ts +42 -0
  3653. package/voice/local-asr-transcribe.d.ts.map +1 -0
  3654. package/voice/local-asr-transcribe.js +93 -0
  3655. package/voice/playback-frame-pump.d.ts +49 -0
  3656. package/voice/playback-frame-pump.d.ts.map +1 -0
  3657. package/voice/playback-frame-pump.js +387 -0
  3658. package/voice/should-respond.d.ts +11 -0
  3659. package/voice/should-respond.d.ts.map +1 -0
  3660. package/voice/should-respond.js +10 -0
  3661. package/voice/transcript-session.d.ts +49 -0
  3662. package/voice/transcript-session.d.ts.map +1 -0
  3663. package/voice/transcript-session.js +136 -0
  3664. package/voice/transcription-exit.d.ts +40 -0
  3665. package/voice/transcription-exit.d.ts.map +1 -0
  3666. package/voice/transcription-exit.js +114 -0
  3667. package/voice/useVoiceConfig.d.ts +18 -0
  3668. package/voice/useVoiceConfig.d.ts.map +1 -0
  3669. package/voice/useVoiceConfig.js +79 -0
  3670. package/voice/voice-capture-factory.d.ts +116 -0
  3671. package/voice/voice-capture-factory.d.ts.map +1 -0
  3672. package/voice/voice-capture-factory.js +328 -0
  3673. package/voice/voice-chat-playback.d.ts +3 -0
  3674. package/voice/voice-chat-playback.d.ts.map +1 -1
  3675. package/voice/voice-chat-playback.js +10 -2
  3676. package/voice/voice-chat-types.d.ts +147 -19
  3677. package/voice/voice-chat-types.d.ts.map +1 -1
  3678. package/voice/voice-chat-types.js +11 -9
  3679. package/voice/voice-provider-defaults.d.ts +43 -0
  3680. package/voice/voice-provider-defaults.d.ts.map +1 -0
  3681. package/voice/voice-provider-defaults.js +53 -0
  3682. package/voice/voice-selftest/VoiceSelfTestShell.d.ts +28 -0
  3683. package/voice/voice-selftest/VoiceSelfTestShell.d.ts.map +1 -0
  3684. package/voice/voice-selftest/VoiceSelfTestShell.js +127 -0
  3685. package/voice/voice-selftest/VoiceWorkbenchShell.d.ts +29 -0
  3686. package/voice/voice-selftest/VoiceWorkbenchShell.d.ts.map +1 -0
  3687. package/voice/voice-selftest/VoiceWorkbenchShell.js +133 -0
  3688. package/voice/voice-selftest/fixtures/known-phrase.d.ts +3 -0
  3689. package/voice/voice-selftest/fixtures/known-phrase.d.ts.map +1 -0
  3690. package/voice/voice-selftest/fixtures/known-phrase.js +5 -0
  3691. package/voice/voice-selftest/timing.d.ts +8 -0
  3692. package/voice/voice-selftest/timing.d.ts.map +1 -0
  3693. package/voice/voice-selftest/timing.js +7 -0
  3694. package/voice/voice-selftest/voice-selftest-harness.d.ts +66 -0
  3695. package/voice/voice-selftest/voice-selftest-harness.d.ts.map +1 -0
  3696. package/voice/voice-selftest/voice-selftest-harness.js +319 -0
  3697. package/voice/voice-selftest/voice-workbench-player.d.ts +139 -0
  3698. package/voice/voice-selftest/voice-workbench-player.d.ts.map +1 -0
  3699. package/voice/voice-selftest/voice-workbench-player.js +401 -0
  3700. package/voice/voice-turn-signal.d.ts +16 -0
  3701. package/voice/voice-turn-signal.d.ts.map +1 -0
  3702. package/voice/voice-turn-signal.js +15 -0
  3703. package/widgets/WidgetHost.constants.d.ts +2 -0
  3704. package/widgets/WidgetHost.constants.d.ts.map +1 -0
  3705. package/widgets/WidgetHost.constants.js +1 -0
  3706. package/widgets/WidgetHost.d.ts +17 -4
  3707. package/widgets/WidgetHost.d.ts.map +1 -1
  3708. package/widgets/WidgetHost.js +166 -34
  3709. package/widgets/__fixtures__/home-widget-mock-data.d.ts +89 -0
  3710. package/widgets/__fixtures__/home-widget-mock-data.d.ts.map +1 -0
  3711. package/widgets/__fixtures__/home-widget-mock-data.js +388 -0
  3712. package/widgets/home-attention-store.d.ts +40 -0
  3713. package/widgets/home-attention-store.d.ts.map +1 -0
  3714. package/widgets/home-attention-store.js +84 -0
  3715. package/widgets/home-priority.d.ts +136 -0
  3716. package/widgets/home-priority.d.ts.map +1 -0
  3717. package/widgets/home-priority.js +276 -0
  3718. package/widgets/index.d.ts +10 -6
  3719. package/widgets/index.d.ts.map +1 -1
  3720. package/widgets/index.js +5 -2
  3721. package/widgets/registry-store.d.ts +9 -11
  3722. package/widgets/registry-store.d.ts.map +1 -1
  3723. package/widgets/registry-store.js +9 -13
  3724. package/widgets/registry.d.ts +16 -12
  3725. package/widgets/registry.d.ts.map +1 -1
  3726. package/widgets/registry.js +434 -22
  3727. package/widgets/types.d.ts +12 -4
  3728. package/widgets/types.d.ts.map +1 -1
  3729. package/widgets/types.js +7 -1
  3730. package/widgets/useChatSidebarVisibility.d.ts +6 -3
  3731. package/widgets/useChatSidebarVisibility.d.ts.map +1 -1
  3732. package/widgets/useChatSidebarVisibility.js +16 -12
  3733. package/widgets/visibility.d.ts +16 -10
  3734. package/widgets/visibility.d.ts.map +1 -1
  3735. package/widgets/visibility.js +26 -15
  3736. package/api/agent-client-type-shim.d.ts +0 -106
  3737. package/api/agent-client-type-shim.d.ts.map +0 -1
  3738. package/api/client-types-babylon.d.ts +0 -254
  3739. package/api/client-types-babylon.d.ts.map +0 -1
  3740. package/api/client-types-babylon.js +0 -2
  3741. package/components/character/CharacterRelationshipsSection.d.ts +0 -7
  3742. package/components/character/CharacterRelationshipsSection.d.ts.map +0 -1
  3743. package/components/character/CharacterRelationshipsSection.js +0 -4
  3744. package/components/chat/widgets/registry.d.ts +0 -8
  3745. package/components/chat/widgets/registry.d.ts.map +0 -1
  3746. package/components/chat/widgets/registry.js +0 -7
  3747. package/components/composites/chat/chat-sidebar.d.ts +0 -54
  3748. package/components/composites/chat/chat-sidebar.d.ts.map +0 -1
  3749. package/components/composites/chat/chat-sidebar.js +0 -64
  3750. package/components/composites/chat/create-task-popover.d.ts +0 -13
  3751. package/components/composites/chat/create-task-popover.d.ts.map +0 -1
  3752. package/components/composites/chat/create-task-popover.js +0 -44
  3753. package/components/composites/search/search-input.d.ts +0 -11
  3754. package/components/composites/search/search-input.d.ts.map +0 -1
  3755. package/components/composites/search/search-input.js +0 -10
  3756. package/components/composites/sidebar/sidebar-filter-bar.d.ts +0 -3
  3757. package/components/composites/sidebar/sidebar-filter-bar.d.ts.map +0 -1
  3758. package/components/composites/sidebar/sidebar-filter-bar.js +0 -14
  3759. package/components/local-inference/HuggingFaceSearch.d.ts +0 -22
  3760. package/components/local-inference/HuggingFaceSearch.d.ts.map +0 -1
  3761. package/components/local-inference/HuggingFaceSearch.js +0 -68
  3762. package/components/onboarding/BootstrapStep.d.ts +0 -35
  3763. package/components/onboarding/BootstrapStep.d.ts.map +0 -1
  3764. package/components/onboarding/BootstrapStep.js +0 -151
  3765. package/components/onboarding/PasswordSetupStep.d.ts +0 -28
  3766. package/components/onboarding/PasswordSetupStep.d.ts.map +0 -1
  3767. package/components/onboarding/PasswordSetupStep.js +0 -82
  3768. package/components/onboarding/onboarding-form-primitives.d.ts +0 -54
  3769. package/components/onboarding/onboarding-form-primitives.d.ts.map +0 -1
  3770. package/components/onboarding/onboarding-form-primitives.js +0 -55
  3771. package/components/onboarding/onboarding-step-chrome.d.ts +0 -40
  3772. package/components/onboarding/onboarding-step-chrome.d.ts.map +0 -1
  3773. package/components/onboarding/onboarding-step-chrome.js +0 -74
  3774. package/components/pages/AutomationsChatPane.d.ts +0 -19
  3775. package/components/pages/AutomationsChatPane.d.ts.map +0 -1
  3776. package/components/pages/AutomationsChatPane.js +0 -15
  3777. package/components/pages/ChatModalView.d.ts +0 -13
  3778. package/components/pages/ChatModalView.d.ts.map +0 -1
  3779. package/components/pages/ChatModalView.js +0 -17
  3780. package/components/pages/ChatPanelLayout.d.ts +0 -11
  3781. package/components/pages/ChatPanelLayout.d.ts.map +0 -1
  3782. package/components/pages/ChatPanelLayout.js +0 -37
  3783. package/components/pages/ConnectorsPageView.d.ts +0 -8
  3784. package/components/pages/ConnectorsPageView.d.ts.map +0 -1
  3785. package/components/pages/ConnectorsPageView.js +0 -8
  3786. package/components/pages/HomePlaceholderView.d.ts +0 -16
  3787. package/components/pages/HomePlaceholderView.d.ts.map +0 -1
  3788. package/components/pages/HomePlaceholderView.js +0 -17
  3789. package/components/pages/PageScopedChatPane.d.ts +0 -51
  3790. package/components/pages/PageScopedChatPane.d.ts.map +0 -1
  3791. package/components/pages/PageScopedChatPane.js +0 -586
  3792. package/components/pages/VectorBrowserView.d.ts +0 -13
  3793. package/components/pages/VectorBrowserView.d.ts.map +0 -1
  3794. package/components/pages/VectorBrowserView.js +0 -863
  3795. package/components/settings/CloudInstancePanel.d.ts +0 -2
  3796. package/components/settings/CloudInstancePanel.d.ts.map +0 -1
  3797. package/components/settings/CloudInstancePanel.js +0 -48
  3798. package/components/shell/DnaLoader.d.ts +0 -8
  3799. package/components/shell/DnaLoader.d.ts.map +0 -1
  3800. package/components/shell/DnaLoader.js +0 -50
  3801. package/components/shell/Header.d.ts +0 -12
  3802. package/components/shell/Header.d.ts.map +0 -1
  3803. package/components/shell/Header.js +0 -316
  3804. package/components/shell/RuntimeGate.d.ts +0 -51
  3805. package/components/shell/RuntimeGate.d.ts.map +0 -1
  3806. package/components/shell/RuntimeGate.js +0 -1293
  3807. package/components/shell/SplashServerChooser.d.ts +0 -14
  3808. package/components/shell/SplashServerChooser.d.ts.map +0 -1
  3809. package/components/shell/SplashServerChooser.js +0 -23
  3810. package/components/shell/onboarding-theme.d.ts +0 -6
  3811. package/components/shell/onboarding-theme.d.ts.map +0 -1
  3812. package/components/shell/onboarding-theme.js +0 -29
  3813. package/components/ui/drawer-sheet.d.ts +0 -19
  3814. package/components/ui/drawer-sheet.d.ts.map +0 -1
  3815. package/components/ui/drawer-sheet.js +0 -21
  3816. package/components/ui/section-card.d.ts +0 -15
  3817. package/components/ui/section-card.d.ts.map +0 -1
  3818. package/components/ui/section-card.js +0 -10
  3819. package/config/app-config.d.ts +0 -273
  3820. package/config/app-config.d.ts.map +0 -1
  3821. package/config/app-config.js +0 -31
  3822. package/config/boot-config-react.d.ts +0 -5
  3823. package/config/boot-config-react.d.ts.map +0 -1
  3824. package/config/boot-config-react.js +0 -7
  3825. package/config/branding-react.d.ts +0 -4
  3826. package/config/branding-react.d.ts.map +0 -1
  3827. package/config/branding-react.js +0 -11
  3828. package/desktop-runtime/AppWindowRenderer.d.ts +0 -17
  3829. package/desktop-runtime/AppWindowRenderer.d.ts.map +0 -1
  3830. package/desktop-runtime/AppWindowRenderer.js +0 -327
  3831. package/desktop-runtime/DesktopOnboardingRuntime.d.ts +0 -9
  3832. package/desktop-runtime/DesktopOnboardingRuntime.d.ts.map +0 -1
  3833. package/desktop-runtime/DesktopOnboardingRuntime.js +0 -10
  3834. package/desktop-runtime/DesktopSurfaceNavigationRuntime.d.ts +0 -2
  3835. package/desktop-runtime/DesktopSurfaceNavigationRuntime.d.ts.map +0 -1
  3836. package/desktop-runtime/DesktopSurfaceNavigationRuntime.js +0 -48
  3837. package/desktop-runtime/DesktopTrayRuntime.d.ts +0 -11
  3838. package/desktop-runtime/DesktopTrayRuntime.d.ts.map +0 -1
  3839. package/desktop-runtime/DesktopTrayRuntime.js +0 -265
  3840. package/desktop-runtime/DetachedShellRoot.d.ts +0 -10
  3841. package/desktop-runtime/DetachedShellRoot.d.ts.map +0 -1
  3842. package/desktop-runtime/DetachedShellRoot.js +0 -114
  3843. package/desktop-runtime/index.d.ts +0 -6
  3844. package/desktop-runtime/index.d.ts.map +0 -1
  3845. package/desktop-runtime/index.js +0 -5
  3846. package/hooks/useBugReport.d.ts +0 -26
  3847. package/hooks/useBugReport.d.ts.map +0 -1
  3848. package/hooks/useBugReport.js +0 -28
  3849. package/hooks/useStreamPopoutNavigation.d.ts +0 -3
  3850. package/hooks/useStreamPopoutNavigation.d.ts.map +0 -1
  3851. package/hooks/useStreamPopoutNavigation.js +0 -4
  3852. package/hooks/useWorkflowGenerationState.d.ts +0 -20
  3853. package/hooks/useWorkflowGenerationState.d.ts.map +0 -1
  3854. package/hooks/useWorkflowGenerationState.js +0 -43
  3855. package/layouts/workspace-layout/workspace-mobile-sidebar-controls.d.ts +0 -13
  3856. package/layouts/workspace-layout/workspace-mobile-sidebar-controls.d.ts.map +0 -1
  3857. package/onboarding/auto-download-recommended.d.ts +0 -30
  3858. package/onboarding/auto-download-recommended.d.ts.map +0 -1
  3859. package/onboarding/auto-download-recommended.js +0 -105
  3860. package/onboarding/flow.d.ts +0 -66
  3861. package/onboarding/flow.d.ts.map +0 -1
  3862. package/onboarding/flow.js +0 -100
  3863. package/onboarding/local-agent-token.d.ts +0 -6
  3864. package/onboarding/local-agent-token.d.ts.map +0 -1
  3865. package/onboarding/local-agent-token.js +0 -79
  3866. package/onboarding/mobile-runtime-mode.d.ts +0 -19
  3867. package/onboarding/mobile-runtime-mode.d.ts.map +0 -1
  3868. package/onboarding/mobile-runtime-mode.js +0 -91
  3869. package/onboarding/pre-seed-local-runtime.d.ts +0 -53
  3870. package/onboarding/pre-seed-local-runtime.d.ts.map +0 -1
  3871. package/onboarding/pre-seed-local-runtime.js +0 -111
  3872. package/onboarding/probe-local-agent.d.ts +0 -51
  3873. package/onboarding/probe-local-agent.d.ts.map +0 -1
  3874. package/onboarding/probe-local-agent.js +0 -235
  3875. package/onboarding/reload-into-runtime-picker.d.ts +0 -25
  3876. package/onboarding/reload-into-runtime-picker.d.ts.map +0 -1
  3877. package/onboarding/reload-into-runtime-picker.js +0 -45
  3878. package/onboarding/server-target.d.ts +0 -4
  3879. package/onboarding/server-target.d.ts.map +0 -1
  3880. package/onboarding/server-target.js +0 -13
  3881. package/onboarding-config.d.ts +0 -61
  3882. package/onboarding-config.d.ts.map +0 -1
  3883. package/onboarding-config.js +0 -172
  3884. package/platform/onboarding-reset.d.ts +0 -11
  3885. package/platform/onboarding-reset.d.ts.map +0 -1
  3886. package/platform/onboarding-reset.js +0 -127
  3887. package/services/local-inference/dflash-doctor.d.ts +0 -22
  3888. package/services/local-inference/dflash-doctor.d.ts.map +0 -1
  3889. package/services/local-inference/dflash-doctor.js +0 -139
  3890. package/services/local-inference/dflash-server.d.ts +0 -76
  3891. package/services/local-inference/dflash-server.d.ts.map +0 -1
  3892. package/services/local-inference/dflash-server.js +0 -451
  3893. package/services/local-inference/providers.d.ts +0 -61
  3894. package/services/local-inference/providers.d.ts.map +0 -1
  3895. package/services/local-inference/providers.js +0 -306
  3896. package/state/ChatComposerContext.d.ts +0 -28
  3897. package/state/ChatComposerContext.d.ts.map +0 -1
  3898. package/state/ChatComposerContext.js +0 -30
  3899. package/state/CompanionSceneConfigContext.d.ts +0 -27
  3900. package/state/CompanionSceneConfigContext.d.ts.map +0 -1
  3901. package/state/CompanionSceneConfigContext.js +0 -32
  3902. package/state/PtySessionsContext.d.ts +0 -15
  3903. package/state/PtySessionsContext.d.ts.map +0 -1
  3904. package/state/PtySessionsContext.js +0 -15
  3905. package/state/TranslationContext.d.ts +0 -37
  3906. package/state/TranslationContext.d.ts.map +0 -1
  3907. package/state/TranslationContext.js +0 -63
  3908. package/state/connector-deeplink.d.ts +0 -30
  3909. package/state/connector-deeplink.d.ts.map +0 -1
  3910. package/state/connector-deeplink.js +0 -46
  3911. package/state/navigation-events.d.ts +0 -12
  3912. package/state/navigation-events.d.ts.map +0 -1
  3913. package/state/navigation-events.js +0 -25
  3914. package/state/onboarding-bootstrap.d.ts +0 -28
  3915. package/state/onboarding-bootstrap.d.ts.map +0 -1
  3916. package/state/onboarding-bootstrap.js +0 -76
  3917. package/state/onboarding-restart.d.ts +0 -8
  3918. package/state/onboarding-restart.d.ts.map +0 -1
  3919. package/state/onboarding-restart.js +0 -8
  3920. package/state/onboarding-resume.d.ts +0 -9
  3921. package/state/onboarding-resume.d.ts.map +0 -1
  3922. package/state/onboarding-resume.js +0 -93
  3923. package/state/useOnboardingCallbacks.d.ts +0 -100
  3924. package/state/useOnboardingCallbacks.d.ts.map +0 -1
  3925. package/state/useOnboardingCallbacks.js +0 -804
  3926. package/state/useOnboardingCompat.d.ts +0 -61
  3927. package/state/useOnboardingCompat.d.ts.map +0 -1
  3928. package/state/useOnboardingCompat.js +0 -110
  3929. package/state/useOnboardingState.d.ts +0 -126
  3930. package/state/useOnboardingState.d.ts.map +0 -1
  3931. package/state/useOnboardingState.js +0 -263
  3932. package/state/useVincentState.d.ts +0 -3
  3933. package/state/useVincentState.d.ts.map +0 -1
  3934. package/state/useVincentState.js +0 -13
  3935. package/styles/onboarding-game.css +0 -568
  3936. package/terminal/links.d.ts +0 -9
  3937. package/terminal/links.d.ts.map +0 -1
  3938. package/terminal/links.js +0 -20
  3939. package/utils/assistant-text.d.ts +0 -2
  3940. package/utils/assistant-text.d.ts.map +0 -1
  3941. package/utils/assistant-text.js +0 -167
  3942. package/utils/eliza-root.d.ts +0 -9
  3943. package/utils/eliza-root.d.ts.map +0 -1
  3944. package/utils/eliza-root.js +0 -101
  3945. package/utils/exec-safety.d.ts +0 -2
  3946. package/utils/exec-safety.d.ts.map +0 -1
  3947. package/utils/exec-safety.js +0 -21
  3948. package/utils/number-parsing.d.ts +0 -26
  3949. package/utils/number-parsing.d.ts.map +0 -1
  3950. package/utils/number-parsing.js +0 -51
  3951. /package/api/{agent-client-type-shim.js → browser-contracts.js} +0 -0
  3952. /package/layouts/workspace-layout/{workspace-mobile-sidebar-controls.js → workspace-mobile-sidebar-controls.hooks.js} +0 -0
@@ -0,0 +1,2370 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { transcriptPlainText } from "@elizaos/shared/transcripts";
3
+ import { Check, Copy, FileText, Film, LayoutGrid, Loader2, Maximize2, Mic, Minimize2, Music, RotateCcw, SendHorizontal, } from "lucide-react";
4
+ import { AnimatePresence, animate, motion, useMotionValue, useMotionValueEvent, useReducedMotion, useTransform, } from "motion/react";
5
+ import * as React from "react";
6
+ import { client } from "../../api/client.js";
7
+ import { parseSlashDraft, resolveClientShortcutExecution, runSlashExecution, splitLeadingSlashCommand, } from "../../chat/slash-menu.js";
8
+ import { CHAT_PREFILL_EVENT, TUTORIAL_CHAT_CONTROL_EVENT, } from "../../events/index.js";
9
+ import { Z_SHELL_OVERLAY } from "../../lib/floating-layers.js";
10
+ import { cn } from "../../lib/utils.js";
11
+ import { useViewChatBinding } from "../../state/view-chat-binding.js";
12
+ import { copyTextToClipboard } from "../../utils/clipboard.js";
13
+ import { CHAT_UPLOAD_ACCEPT, chatUploadKind, classifyComposerPaste, intakeAttachmentFiles, MAX_CHAT_IMAGES, summarizeDroppedAttachments, } from "../../utils/image-attachment.js";
14
+ import { InlineWidgetText } from "../chat/InlineWidgetText.js";
15
+ import { MessageAttachments } from "../chat/MessageAttachments.js";
16
+ import { SensitiveRequestBlock } from "../chat/MessageContent.js";
17
+ import { conversationTranscriptText } from "../chat/message-parser-helpers.js";
18
+ import { ThinkingBlock } from "../chat/ThinkingBlock.js";
19
+ import { withTranscriptMarker } from "../chat/TranscriptViewerOverlay.js";
20
+ import { SlashCommandMenu, useSlashMenu } from "./SlashCommandMenu.js";
21
+ import { selectVisibleShellMessages } from "./shell-state.js";
22
+ import { TopicChipsBar } from "./TopicChipsBar.js";
23
+ import { TopicGroup } from "./TopicGroup.js";
24
+ import { deriveChannelTopics, groupMessagesByTopic } from "./topic-grouping.js";
25
+ import { usePullGesture } from "./use-pull-gesture.js";
26
+ import { usePromptSuggestions } from "./usePromptSuggestions.js";
27
+ /** No-op slash controller so the overlay renders without a provider (stories). */
28
+ const EMPTY_SLASH_CONTROLLER = {
29
+ commands: [],
30
+ loading: false,
31
+ naturalShortcutsEnabled: false,
32
+ resolveChoices: () => [],
33
+ resolveSection: () => undefined,
34
+ navigateTab: () => { },
35
+ navigateSettings: () => { },
36
+ navigateView: () => { },
37
+ clearChat: () => { },
38
+ openCommandPalette: () => { },
39
+ };
40
+ /**
41
+ * The continuous-chat overlay: one always-present, ambient glass conversation
42
+ * that floats over EVERY view. There are no separate chats and no switcher — it
43
+ * is a single endless thread (the app's one active conversation, via
44
+ * useShellController).
45
+ *
46
+ * Layout is a fixed composer at the bottom with a pull-up history SHEET above
47
+ * it. At rest the sheet is a slim peek (the grabber + the latest line); pull it
48
+ * UP — anywhere on the sheet — or just start typing to spring it open into the
49
+ * full transcript; pull the grabber back DOWN, or press Escape, to close.
50
+ * Nothing else dismisses it — clicking or scrolling the view behind does
51
+ * nothing. The composer never moves; the history slides up over it.
52
+ *
53
+ * The container is pointer-events-none (the view behind stays live); only the
54
+ * composer + sheet capture input, so it is non-blocking — unlike the
55
+ * focus-trapping AssistantOverlay it supersedes in the main shell.
56
+ *
57
+ * Two design rules keep it intimate rather than app-like:
58
+ * 1. SELF-CONTAINED CONTRAST — every surface carries its own dark-glass scrim
59
+ * (or, for floating text, a soft shadow) plus fixed light text, never the
60
+ * theme's `--txt`, so it stays legible over any substrate: a bright view, a
61
+ * dark view, or the warm "good evening" backdrop.
62
+ * 2. NO CHROME/SIGNAGE — the thread speaks for itself: no message counter, no
63
+ * "new chat", no tab strip; controls dissolve into the glass, and status is
64
+ * a soft breath of light, not a brand-colored alert ring.
65
+ *
66
+ * Pure/presentational: it takes the controller as a prop so it can be rendered
67
+ * in isolation (stories / harness) with a mock. The app wraps it in a small
68
+ * context-reading mount (see App.tsx) that supplies the shared controller.
69
+ */
70
+ // Floating (un-scrimmed) text gets a soft shadow so it reads over bright views.
71
+ const FLOAT_SHADOW = "[text-shadow:0_1px_4px_rgba(0,0,0,0.7)]";
72
+ // Shared easing for the overlay's cheap motion path. Open/close must stay
73
+ // opacity/translate only: animating blur/filter or scaling a scrollable
74
+ // transcript repaints too much of the viewport and visibly janks on laptops.
75
+ const OVERLAY_EASE = [0.22, 1, 0.36, 1];
76
+ const SHEET_HALF_VH = 0.46; // fraction of viewport height at the HALF detent
77
+ // px kept clear above the panel. Sized to clear an edge-to-edge status bar
78
+ // (~58px) plus a buffer so the grabber sits BELOW the notification-shade pull
79
+ // zone — the full sheet reaches the top without fighting the system gesture.
80
+ const SHEET_TOP_MARGIN = 72;
81
+ // Detent magnetism: on a deliberate (non-flick) drag release, a height within
82
+ // this many px of a detent (collapsed/half/full) snaps to that detent instead
83
+ // of resting free — so near-detent releases are deterministic + clean, and only
84
+ // the clear gaps between detents keep the free-drag rest height.
85
+ const SHEET_DETENT_MAGNET = 64;
86
+ // Feature flag: the resting one-tap prompt-suggestion strip. Off for now so the
87
+ // composer can be tested without it; flip to true to bring the strip back.
88
+ const SHOW_PROMPT_SUGGESTIONS = false;
89
+ // A light iOS-style impact on each detent cross. Self-contained + guarded so it
90
+ // is a no-op off-native (and in jsdom tests) without coupling the overlay to the
91
+ // Capacitor bridge module. Mirrors `bridge/capacitor-bridge.ts` `haptics.light()`.
92
+ function detentHaptic() {
93
+ try {
94
+ const cap = globalThis.Capacitor;
95
+ if (cap?.isNativePlatform?.()) {
96
+ void cap.Plugins?.Haptics?.impact?.({ style: "LIGHT" });
97
+ }
98
+ }
99
+ catch {
100
+ // Haptics are a nicety — never let them throw into the gesture path.
101
+ }
102
+ }
103
+ const SHEET_SPRING = {
104
+ type: "spring",
105
+ stiffness: 320,
106
+ damping: 34,
107
+ mass: 0.9,
108
+ };
109
+ // Slightly springier preset for the pill→input "liquid glass" open: a touch
110
+ // less damping than the height spring so the input reads as springing IN on a
111
+ // flick, while the live drag-tracking gives a slow pull its "lerp" character.
112
+ const OPEN_SPRING = {
113
+ type: "spring",
114
+ stiffness: 300,
115
+ damping: 26,
116
+ mass: 0.85,
117
+ };
118
+ // Finger travel (px) that fully opens the input from the pill. A live pill drag
119
+ // maps offset → openProgress ∈ [0,1] over this distance; past it, the excess
120
+ // flows into the thread height so pill → input → chat is one continuous motion.
121
+ const PILL_OPEN_DISTANCE = 120;
122
+ // Rubber-band resistance applied to drag past a detent (iOS-style overscroll).
123
+ function rubberBand(overshoot) {
124
+ return Math.sign(overshoot) * Math.sqrt(Math.abs(overshoot)) * 6;
125
+ }
126
+ // Glyphs (viewBox 0 0 36 36), rendered in currentColor inside a soft chip. Send
127
+ // + mic now use lucide icons (SendHorizontal / Mic); the rest stay hand-drawn.
128
+ const PLUS_GLYPH = "M16 8H20V16H28V20H20V28H16V20H8V16H16Z";
129
+ // Stop generating: a centered rounded square (the universal "stop" affordance).
130
+ const STOP_GLYPH = "M12 12H24V24H12Z";
131
+ /** Base64-encode WAV bytes in chunks (avoids the apply() arg-count limit). */
132
+ function wavBytesToBase64(bytes) {
133
+ let binary = "";
134
+ const chunk = 0x8000;
135
+ for (let i = 0; i < bytes.length; i += chunk) {
136
+ binary += String.fromCharCode(...Array.from(bytes.subarray(i, i + chunk)));
137
+ }
138
+ return btoa(binary);
139
+ }
140
+ /** UTF-8-safe base64 for a transcript turned into a composer text attachment. */
141
+ function textToBase64(text) {
142
+ return wavBytesToBase64(new TextEncoder().encode(text));
143
+ }
144
+ // Muted-speaker glyph for the autoplay-blocked "tap to enable sound" prompt.
145
+ const SPEAKER_MUTED_GLYPH = "M7 15H12L18 10V26L12 21H7Z M21 12.4L22.4 11L31 19.6L29.6 21Z";
146
+ function Glyph({ d }) {
147
+ return (_jsx("svg", { viewBox: "0 0 36 36", className: "h-[26px] w-[26px]", "aria-hidden": "true", children: _jsx("path", { fill: "currentColor", fillRule: "evenodd", d: d }) }));
148
+ }
149
+ /** A soft round glass control that dissolves into the bar; brightens only when active. */
150
+ function SoftButton({ glyph, icon: Icon, label, onClick, onPointerDown, onPointerUp, onPointerCancel, disabled, active, testId, }) {
151
+ return (_jsx("button", { type: "button", "data-testid": testId, "aria-label": label, "aria-pressed": active, "aria-disabled": disabled, onClick: disabled ? undefined : onClick, onPointerDown: disabled ? undefined : onPointerDown, onPointerUp: disabled ? undefined : onPointerUp, onPointerCancel: disabled ? undefined : onPointerCancel, className: cn(
152
+ // 44×44 hit target (WCAG 2.5.5) — comfortably thumb-tappable without
153
+ // crowding the bar (split the difference back down from 48).
154
+ "grid h-11 w-11 shrink-0 place-items-center rounded-full border transition-colors", " ", active
155
+ ? "border-white/40 bg-white/85 text-black"
156
+ : "border-white/15 bg-white/10 text-white/75 hover:bg-white/20 hover:text-white", disabled && "opacity-40"), children: Icon ? (_jsx(Icon, { className: "h-[22px] w-[22px]", "aria-hidden": true })) : glyph ? (_jsx(Glyph, { d: glyph })) : null }));
157
+ }
158
+ /** A compact glass control for the full-state header (maximize / clear /
159
+ * settings). Smaller than SoftButton; same neutral resting → neutral-hover
160
+ * language (no blue), `active` gets the white fill. Renders a lucide icon. */
161
+ function HeaderButton({ icon: Icon, label, onClick, active, disabled, testId, }) {
162
+ return (_jsx("button", { type: "button", "data-testid": testId, "aria-label": label, "aria-pressed": active, disabled: disabled, "aria-disabled": disabled || undefined, onClick: onClick, className: cn("grid h-9 w-9 shrink-0 place-items-center rounded-full border transition-colors", " ", disabled
163
+ ? // On the view it targets: shown but inert + dimmed (we disable, not hide).
164
+ "cursor-default border-white/10 bg-white/[0.05] text-white/35"
165
+ : active
166
+ ? "border-white/40 bg-white/85 text-black"
167
+ : "border-white/15 bg-white/10 text-white/75 hover:bg-white/20 hover:text-white"), children: _jsx(Icon, { className: "h-[18px] w-[18px]", "aria-hidden": true }) }));
168
+ }
169
+ /** Horizontal travel (px) at which a conversation-swipe edge hint is fully lit. */
170
+ const SWIPE_HINT_FULL = 96;
171
+ /** Inert conversation-nav fallback for minimal mock controllers. */
172
+ const EMPTY_CONVERSATION_NAV = {
173
+ hasPrev: false,
174
+ hasNext: false,
175
+ goPrev: () => { },
176
+ goNext: () => { },
177
+ };
178
+ /**
179
+ * A soft glass glow on the sheet edge the next/previous conversation will slide
180
+ * in from during a horizontal swipe (#8929). Brightens with the drag distance;
181
+ * inert and non-interactive.
182
+ */
183
+ function SwipeEdgeHint({ side, active, amount, }) {
184
+ if (!active)
185
+ return null;
186
+ const opacity = Math.min(1, Math.max(0, amount) / SWIPE_HINT_FULL);
187
+ if (opacity <= 0)
188
+ return null;
189
+ return (_jsx("div", { "aria-hidden": true, "data-testid": `conversation-swipe-hint-${side}`, className: cn("pointer-events-none absolute inset-y-0 z-20 w-16", side === "left"
190
+ ? "left-0 bg-gradient-to-r from-white/25 to-transparent"
191
+ : "right-0 bg-gradient-to-l from-white/25 to-transparent"), style: { opacity } }));
192
+ }
193
+ /**
194
+ * The drag handle at the top of the chat sheet — pull UP to open the history,
195
+ * pull DOWN to close it. It is also keyboard-operable (Enter/Space toggles,
196
+ * ArrowUp opens, ArrowDown/Escape closes) so the drag-only affordance stays
197
+ * WCAG 2.1.1 operable. `touch-none` keeps the browser from scroll/refreshing
198
+ * mid-drag. A faint warm sheen rides the handle while the agent is live.
199
+ */
200
+ function SheetGrabber({ open, onOpen, onClose, binding, glow, opacity, pilled, }) {
201
+ return (_jsx(motion.button, { style: { opacity, pointerEvents: pilled ? "none" : "auto" },
202
+ // Invisible + inert while pilled: the pill capsule below owns the drag, so
203
+ // keep this out of the tab order and the a11y tree until it's the handle.
204
+ tabIndex: pilled ? -1 : undefined, "aria-hidden": pilled || undefined,
205
+ // A disclosure toggle for the chat history, not a value-bearing separator:
206
+ // button + aria-expanded is the accurate semantic and stays keyboard-
207
+ // operable (Enter/Space toggle, Arrow keys nudge) per WCAG 2.1.1.
208
+ type: "button", "aria-expanded": open, "aria-label": open ? "drag down to close chat" : "drag up to open chat", "data-testid": "chat-sheet-grabber", "data-open": open ? "true" : "false", onKeyDown: (e) => {
209
+ if (e.key === "Enter" || e.key === " ") {
210
+ e.preventDefault();
211
+ if (open)
212
+ onClose();
213
+ else
214
+ onOpen();
215
+ }
216
+ else if (e.key === "ArrowUp") {
217
+ e.preventDefault();
218
+ onOpen();
219
+ }
220
+ else if (e.key === "ArrowDown" || e.key === "Escape") {
221
+ e.preventDefault();
222
+ onClose();
223
+ }
224
+ }, ...binding, className: cn("appearance-none border-0 bg-transparent text-left",
225
+ // ABSOLUTELY positioned over the panel top (zero layout height — it
226
+ // floats slightly on top of the input row, so collapsed height == the
227
+ // input bar). The bar sits a touch lower; the BIG invisible `before` hit
228
+ // zone reaches UP into the empty space above the panel (3× taller/wider
229
+ // than the bar) so it's easy to grab without covering the edge buttons.
230
+ // z-20 keeps it above the input row (z-10) so it always wins the drag.
231
+ "absolute left-1/2 top-0.5 z-20 -translate-x-1/2 flex cursor-grab touch-none select-none items-center justify-center px-16 py-1 active:cursor-grabbing",
232
+ // The hit zone reaches UP into the empty space above the panel (easy to
233
+ // grab) and stops at the handle's own bottom — it never reaches the
234
+ // vertically-centered textarea, so a tap on the composer lands natively
235
+ // on the textarea and raises the keyboard (a programmatic focus from the
236
+ // handle wouldn't). Pull gestures start from the bar / the upward zone.
237
+ "before:absolute before:-inset-x-6 before:-top-16 before:bottom-0 before:content-['']", " "), children: _jsx("span", { "aria-hidden": "true", className: cn(
238
+ // The visible grabber line. Its show/hide is driven by the WRAPPER's
239
+ // `grabberOpacity` crossfade (fades in over [0.55, 0.95] of the open),
240
+ // strictly anti-phase with the pill bar so the two are never on screen
241
+ // together. The bar paints at full opacity — a prior regression pinned
242
+ // it to `opacity-0`, leaving the handle grabbable but invisible (#9142).
243
+ "h-2.5 w-16 rounded-full opacity-100 transition-colors duration-300", glow ? "bg-[rgba(255,180,120,0.8)]" : "bg-white/45") }) }));
244
+ }
245
+ /**
246
+ * The fully-collapsed PILL — the chat reduced to a small glass capsule at the
247
+ * very bottom. Tap or flick/pull it up to bring the input back. Big invisible
248
+ * hit area so it's easy to grab; the visible capsule stays small.
249
+ */
250
+ function PillHandle({ binding, onOpen, glow, pilled, }) {
251
+ return (_jsx("button", { type: "button", "data-testid": "chat-pill", "aria-label": "open chat",
252
+ // No onClick: the pull-gesture binding is the single tap authority (a tap
253
+ // routes through onPointerUp → onTap → openFromPill), matching the
254
+ // SheetGrabber. A native onClick would ALSO fire on every tap, opening the
255
+ // pill twice in one gesture (double haptic + a stale focus-suppress flag
256
+ // that swallowed the next focus→expand). Keyboard activation still routes
257
+ // through onKeyDown below.
258
+ onKeyDown: (e) => {
259
+ if (e.key === "Enter" || e.key === " " || e.key === "ArrowUp") {
260
+ e.preventDefault();
261
+ onOpen();
262
+ }
263
+ }, ...binding, tabIndex: pilled ? undefined : -1, "aria-hidden": pilled ? undefined : true, className: cn(
264
+ // The bar hugs the BOTTOM (small pb) where the collapsed input sat — not
265
+ // floating mid-air; the tall pt keeps a generous upward grab/flick zone.
266
+ "flex cursor-grab touch-none select-none items-end justify-center px-16 pb-1.5 pt-10 active:cursor-grabbing",
267
+ // Interactive only while pilled. When NOT pilled the (faded) handle must
268
+ // let taps fall through to the composer textarea below it — otherwise its
269
+ // tall hit zone steals the tap and the keyboard never opens.
270
+ pilled ? "pointer-events-auto" : "pointer-events-none", " "), children: _jsx("span", { "aria-hidden": "true", className: cn(
271
+ // Identical to the SheetGrabber bar — same white shape + color whether
272
+ // the chat is open or collapsed to the pill. Its show/hide is driven by
273
+ // the WRAPPER's `pillOpacity` crossfade (anti-phase with the grabber).
274
+ // The bar paints at full opacity — a prior regression pinned it to
275
+ // `opacity-0`, leaving the pill handle grabbable but invisible (#9142).
276
+ "h-2.5 w-16 rounded-full opacity-100 transition-colors duration-300", glow ? "bg-[rgba(255,180,120,0.8)]" : "bg-white/45") }) }));
277
+ }
278
+ /** Humanize an action/tool symbol ("SEND_MESSAGE" → "Send message") for the
279
+ * status label so it reads as prose, not a constant. */
280
+ function humanizeStatusName(name) {
281
+ const cleaned = name.trim().replace(/[_-]+/g, " ").toLowerCase();
282
+ if (!cleaned)
283
+ return "";
284
+ return cleaned.charAt(0).toUpperCase() + cleaned.slice(1);
285
+ }
286
+ /** The phase label shown beside the breathing dots. Server-provided `label`
287
+ * always wins; otherwise derive a concise phrase from the kind (+ action/tool
288
+ * name when present). */
289
+ function turnStatusLabel(status) {
290
+ if (status.label?.trim())
291
+ return status.label.trim();
292
+ switch (status.kind) {
293
+ case "thinking":
294
+ return "Thinking";
295
+ case "streaming":
296
+ return "Replying";
297
+ case "running_action":
298
+ return status.actionName
299
+ ? `Running ${humanizeStatusName(status.actionName)}`
300
+ : "Working";
301
+ case "running_tool":
302
+ return status.toolName
303
+ ? `Using ${humanizeStatusName(status.toolName)}`
304
+ : "Using a tool";
305
+ case "evaluating":
306
+ return "Reflecting";
307
+ case "waking":
308
+ return "Waking the agent";
309
+ case "speaking":
310
+ return "Speaking";
311
+ }
312
+ }
313
+ // Min time (ms) a phase label must stay on screen before the next one replaces
314
+ // it. Without this, a fast thinking→action→streaming sequence flickers through
315
+ // labels faster than the eye can read. The text content the user sees is
316
+ // debounced; the dots animate continuously throughout.
317
+ const STATUS_MIN_DWELL_MS = 320;
318
+ /** Debounce a fast-changing status to a min on-screen dwell so a rapid
319
+ * thinking→action→streaming sequence doesn't strobe the label. The dots animate
320
+ * continuously; only the words wait their turn. Returns null when status is
321
+ * null (between turns). */
322
+ function useDebouncedTurnStatus(status) {
323
+ const [shown, setShown] = React.useState(status);
324
+ const lastChangeRef = React.useRef(0);
325
+ const timerRef = React.useRef(null);
326
+ React.useEffect(() => {
327
+ if (!status) {
328
+ setShown(null);
329
+ return;
330
+ }
331
+ const now = Date.now();
332
+ const elapsed = now - lastChangeRef.current;
333
+ if (elapsed >= STATUS_MIN_DWELL_MS) {
334
+ lastChangeRef.current = now;
335
+ setShown(status);
336
+ return;
337
+ }
338
+ if (timerRef.current !== null)
339
+ window.clearTimeout(timerRef.current);
340
+ timerRef.current = window.setTimeout(() => {
341
+ lastChangeRef.current = Date.now();
342
+ setShown(status);
343
+ timerRef.current = null;
344
+ }, STATUS_MIN_DWELL_MS - elapsed);
345
+ return () => {
346
+ if (timerRef.current !== null) {
347
+ window.clearTimeout(timerRef.current);
348
+ timerRef.current = null;
349
+ }
350
+ };
351
+ }, [status]);
352
+ return shown;
353
+ }
354
+ /**
355
+ * The breathing dots + phase label content of the status indicator, WITHOUT a
356
+ * bubble/motion wrapper — used both standalone (wrapped by TurnStatusIndicator)
357
+ * and inline inside the in-flight assistant bubble.
358
+ *
359
+ * Mirrors ChatVoiceStatusBar's a11y (`role="status"` + `aria-live="polite"`).
360
+ * Honors reduced motion (no pulse). Brand-safe: orange (the accent) ONLY for
361
+ * `speaking`; every other phase is neutral white. No blue anywhere. Degrades to
362
+ * plain dots when no status has arrived.
363
+ */
364
+ function TurnStatusInner({ status, }) {
365
+ const shown = useDebouncedTurnStatus(status);
366
+ const speaking = shown?.kind === "speaking";
367
+ const label = shown ? turnStatusLabel(shown) : null;
368
+ return (_jsxs("span", { className: "inline-flex items-center gap-2", "data-testid": "turn-status-indicator", "data-status-kind": shown?.kind ?? "none", role: "status", "aria-live": "polite", children: [_jsx("span", { className: "flex gap-1.5", "data-testid": "typing-dots", "aria-hidden": "true", children: [0, 1, 2].map((i) => (_jsx("span", { className: cn("h-1.5 w-1.5 animate-pulse rounded-full motion-reduce:animate-none", speaking ? "bg-[rgba(255,190,140,0.9)]" : "bg-white/70"), style: { animationDelay: `${i * 180}ms` } }, i))) }), label ? (_jsx("span", { className: cn("text-[13px] font-medium", speaking ? "text-[rgba(255,200,150,0.95)]" : "text-white/90"), "data-testid": "turn-status-label", children: label })) : null] }));
369
+ }
370
+ /**
371
+ * The rich, phase-aware status row shown while the assistant works (#8813),
372
+ * replacing the bare typing dots in the pre-placeholder gap. Wraps
373
+ * TurnStatusInner in its own glass bubble + fade so it reads as a turn.
374
+ */
375
+ function TurnStatusIndicator({ status, reduce, }) {
376
+ const speaking = status?.kind === "speaking";
377
+ return (_jsx(motion.div, { className: "mb-2.5 flex w-full justify-start",
378
+ // Fade in/out so the row dissolves with the reply rather than popping.
379
+ initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, transition: { duration: reduce ? 0 : 0.45, ease: OVERLAY_EASE }, children: _jsx("div", { className: cn("rounded-2xl rounded-bl-md border px-3.5 py-2", FLOAT_SHADOW,
380
+ // Orange (the accent) ONLY for spoken replies; every other phase is
381
+ // neutral white glass. No blue anywhere.
382
+ speaking
383
+ ? "border-[rgba(255,180,120,0.45)] bg-black/55"
384
+ : "border-white/10 bg-black/45"), children: _jsx(TurnStatusInner, { status: status }) }) }));
385
+ }
386
+ /**
387
+ * One turn of the transcript as a chat bubble — assistant on the left, user on
388
+ * the right. Memoized so a live drag (which re-renders the overlay on every
389
+ * pointer-move frame) doesn't re-render every message in a long thread.
390
+ */
391
+ // Press-and-hold copy: a still hold this long fires; any finger travel past the
392
+ // move threshold first cancels it (so it yields to the thread's scroll).
393
+ const COPY_HOLD_MS = 420;
394
+ const COPY_MOVE_CANCEL_PX = 10;
395
+ /**
396
+ * Render a user turn's text, bolding a leading slash command so a sent
397
+ * `/command` reads as a command in the transcript (mirroring the composer's
398
+ * inline autocomplete). Plain prose renders unchanged.
399
+ */
400
+ function ThreadLineText({ content }) {
401
+ const slash = splitLeadingSlashCommand(content);
402
+ if (!slash)
403
+ return content;
404
+ return (_jsxs(_Fragment, { children: [_jsx("span", { className: "font-bold", "data-testid": "slash-command-token", children: slash.command }), slash.rest] }));
405
+ }
406
+ const ThreadLine = React.memo(function ThreadLine({ message, floating, reduce, onCopy, onOpenSettings, turnStatus, }) {
407
+ const isUser = message.role === "user";
408
+ const isAssistant = message.role === "assistant";
409
+ // Press-and-hold to copy an assistant answer — the only extraction affordance
410
+ // on touch (no hover row). A still hold past COPY_HOLD_MS copies + flashes
411
+ // "Copied" + a light haptic; real finger travel cancels so it never fights the
412
+ // thread's touch-pan-y scroll.
413
+ const [copied, setCopied] = React.useState(false);
414
+ const holdTimer = React.useRef(null);
415
+ const holdStart = React.useRef(null);
416
+ const copiedTimer = React.useRef(null);
417
+ const clearHold = React.useCallback(() => {
418
+ if (holdTimer.current !== null) {
419
+ window.clearTimeout(holdTimer.current);
420
+ holdTimer.current = null;
421
+ }
422
+ holdStart.current = null;
423
+ }, []);
424
+ React.useEffect(() => () => {
425
+ if (holdTimer.current !== null)
426
+ window.clearTimeout(holdTimer.current);
427
+ if (copiedTimer.current !== null)
428
+ window.clearTimeout(copiedTimer.current);
429
+ }, []);
430
+ const canCopy = isAssistant && !!onCopy && message.content.trim().length > 0;
431
+ const copyHandlers = canCopy
432
+ ? {
433
+ onPointerDown: (e) => {
434
+ holdStart.current = { x: e.clientX, y: e.clientY };
435
+ holdTimer.current = window.setTimeout(() => {
436
+ onCopy?.(message.content);
437
+ detentHaptic();
438
+ setCopied(true);
439
+ if (copiedTimer.current !== null)
440
+ window.clearTimeout(copiedTimer.current);
441
+ copiedTimer.current = window.setTimeout(() => setCopied(false), 1100);
442
+ holdTimer.current = null;
443
+ }, COPY_HOLD_MS);
444
+ },
445
+ onPointerMove: (e) => {
446
+ const s = holdStart.current;
447
+ if (!s)
448
+ return;
449
+ if (Math.abs(e.clientX - s.x) > COPY_MOVE_CANCEL_PX ||
450
+ Math.abs(e.clientY - s.y) > COPY_MOVE_CANCEL_PX)
451
+ clearHold();
452
+ },
453
+ onPointerUp: clearHold,
454
+ onPointerCancel: clearHold,
455
+ }
456
+ : null;
457
+ // A failed turn the user can't recover from without wiring a provider: render
458
+ // a structured gate (not the raw error text) with a one-tap jump to Settings.
459
+ if (isAssistant && message.failureKind === "no_provider") {
460
+ return (_jsx(motion.div, { "data-testid": "thread-line", "data-role": message.role, "data-failure": "no_provider", initial: reduce ? { opacity: 0 } : { opacity: 0, y: 14 }, animate: reduce ? { opacity: 1 } : { opacity: 1, y: 0 }, exit: reduce ? { opacity: 0 } : { opacity: 0, y: -8 }, transition: { duration: reduce ? 0.15 : 0.52, ease: OVERLAY_EASE }, className: cn("flex w-full justify-start", floating ? "mb-1.5" : "mb-2.5"), children: _jsxs("div", { className: cn("max-w-[85%] rounded-2xl rounded-bl-md border border-amber-300/30 bg-black/60 px-3.5 py-3 text-white", FLOAT_SHADOW), children: [_jsx("div", { className: "mb-1 text-[14px] font-medium", children: "Connect a provider to chat" }), _jsx("div", { className: "mb-2.5 whitespace-pre-wrap text-[13px] leading-relaxed text-white/80 [overflow-wrap:anywhere]", children: message.content }), _jsx("button", { type: "button", "data-testid": "chat-no-provider-settings", onClick: () => onOpenSettings?.(), className: "rounded-full border border-white/20 bg-white/15 px-3 py-1.5 text-[13px] font-medium text-white transition-colors hover:bg-white/25 ", children: "Open Settings" })] }) }));
461
+ }
462
+ return (_jsx(motion.div, { "data-testid": "thread-line", "data-role": message.role,
463
+ // New turns rise+fade in. Transform/opacity only; reduced motion collapses
464
+ // it to a quick fade with no positional movement.
465
+ initial: reduce ? { opacity: 0 } : { opacity: 0, y: 14 }, animate: reduce ? { opacity: 1 } : { opacity: 1, y: 0 }, exit: reduce ? { opacity: 0 } : { opacity: 0, y: -8 }, transition: { duration: reduce ? 0.15 : 0.52, ease: OVERLAY_EASE }, className: cn("flex w-full", floating ? "mb-1.5" : "mb-2.5", isUser ? "justify-end" : "justify-start"), children: _jsxs("div", { ...(copyHandlers ?? {}), className: cn(
466
+ // whitespace-pre-wrap keeps newlines; overflow-wrap breaks long URLs /
467
+ // hashes / paths so they can't blow out the bubble width on a phone.
468
+ "relative max-w-[80%] whitespace-pre-wrap rounded-2xl px-3.5 py-2 text-[14px] leading-relaxed [overflow-wrap:anywhere]",
469
+ // The chrome-free transcript renders floating: each bubble carries its
470
+ // own dark glass so it stays legible directly over whatever view is
471
+ // behind. The light tone is for any embedding that supplies its own
472
+ // surrounding scrim.
473
+ isUser ? "rounded-br-md" : "rounded-bl-md",
474
+ // Message text must remain selectable for normal highlight/copy.
475
+ // Assistant bubbles still keep the press-and-hold copy shortcut.
476
+ "select-text [-webkit-touch-callout:default]", floating
477
+ ? cn("border", isUser
478
+ ? "border-white/15 bg-black/55 text-white"
479
+ : "border-white/10 bg-black/45 text-white/90", FLOAT_SHADOW)
480
+ : isUser
481
+ ? "bg-white/20 text-white"
482
+ : "bg-white/10 text-white/90"), children: [_jsx("div", { "data-chat-selectable": "true", children: isAssistant &&
483
+ !message.content.trim() &&
484
+ !message.attachments?.length ? (_jsxs(_Fragment, { children: [_jsx(TurnStatusInner, { status: turnStatus ?? null }), message.attachments?.length ? (_jsx(MessageAttachments, { attachments: message.attachments })) : null] })) : isUser ? (_jsxs(_Fragment, { children: [_jsx(ThreadLineText, { content: message.content }), message.attachments?.length ? (_jsx(MessageAttachments, { attachments: message.attachments })) : null] })) : (_jsxs(_Fragment, { children: [_jsx(InlineWidgetText, { content: message.content }), message.attachments?.length ? (_jsx(MessageAttachments, { attachments: message.attachments })) : null, message.secretRequest ? (_jsx("div", { className: "pointer-events-auto", children: _jsx(SensitiveRequestBlock, { request: message.secretRequest }) })) : null, message.reasoning?.trim() ? (_jsx(ThinkingBlock, { reasoning: message.reasoning })) : null] })) }), _jsx(AnimatePresence, { children: copied ? (_jsx(motion.span, { "data-testid": "thread-line-copied", initial: reduce ? { opacity: 0 } : { opacity: 0, y: 4 }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0 }, transition: { duration: reduce ? 0 : 0.18 }, className: "pointer-events-none absolute -top-2 right-2 rounded-full bg-white/90 px-2 py-0.5 text-[11px] font-medium text-black", children: "Copied" }, "copied")) : null })] }) }));
485
+ });
486
+ export function ContinuousChatOverlay({ controller, agentName = "Eliza", slash: slashProp, }) {
487
+ const { messages, phase, responding, turnStatus, send, canSend, recording, startRecording, stopRecording, handsFree, toggleHandsFree, transcriptionMode, toggleTranscriptionMode, stopTranscriptionAndMic, setDictationSink, setTranscriptSessionSink, setComposerHasDraft, transcript, needsAudioUnlock, unlockAudio, openSettings, navigateHome, currentTab, clearConversation, stop, modelStatus, } = controller;
488
+ // Defensive default so a minimal mock controller (stories/tests) that predates
489
+ // the swipe-nav surface still renders without crashing.
490
+ const conversationNav = controller.conversationNav ?? EMPTY_CONVERSATION_NAV;
491
+ // True while a clear/swipe is fetching an uncached thread — gates the empty
492
+ // thread's loading spinner. Defaulted for minimal mock controllers.
493
+ const conversationLoading = controller.conversationLoading ?? false;
494
+ // Horizontal swipe between conversations (#8929). `swipeDx` is the live
495
+ // horizontal drag (+left toward the next/older chat, -right toward the
496
+ // newer/previous chat) and drives the edge hint. The gesture defers pointer
497
+ // capture until a horizontal commit, so vertical thread scrolling is
498
+ // unaffected; it is only bound while the sheet is open (below).
499
+ const [swipeDx, setSwipeDx] = React.useState(0);
500
+ const conversationSwipe = usePullGesture({
501
+ onDragX: setSwipeDx,
502
+ onSwipeLeft: () => {
503
+ setSwipeDx(0);
504
+ conversationNav.goNext();
505
+ },
506
+ onSwipeRight: () => {
507
+ setSwipeDx(0);
508
+ conversationNav.goPrev();
509
+ },
510
+ });
511
+ // Copy an assistant answer (press-and-hold on its bubble). Stable identity so
512
+ // the memoized ThreadLine isn't re-rendered every parent tick.
513
+ const handleCopyMessage = React.useCallback((text) => {
514
+ void copyTextToClipboard(text);
515
+ }, []);
516
+ const slash = slashProp ?? EMPTY_SLASH_CONTROLLER;
517
+ // Honor the OS "reduce motion" setting: every overlay animation collapses to
518
+ // a near-instant cross-fade with no positional movement when this is true.
519
+ const reduce = useReducedMotion() ?? false;
520
+ const [draft, setDraft] = React.useState("");
521
+ // The active view can take over the composer: override the placeholder and
522
+ // receive the live draft (e.g. Help uses the chat as its search box).
523
+ const viewChatBinding = useViewChatBinding();
524
+ // Escape dismisses the slash menu without clearing the draft; typing reopens.
525
+ const [slashDismissed, setSlashDismissed] = React.useState(false);
526
+ // The chat-history sheet: closed (a slim peek + grabber) ↔ open (full
527
+ // scrollable history). The ONLY open/close driver — opened by a pull-up drag,
528
+ // by focusing the composer, or by sending; closed by a pull-down drag or
529
+ // Escape. Never by click-out, scroll, or blur.
530
+ // The sheet's vertical position is ONE ordinal — the single source of truth for
531
+ // how far the chat is open: `input` (composer-only peek) → `half` (reading
532
+ // height) → `full` (near-fullscreen). `sheetOpen`/`expanded` are derived
533
+ // read-only views so the two can never disagree (no impossible "open but not
534
+ // open" combos). `pilled` sits BELOW input; `maximized` drops the inset at full.
535
+ // Grabber pulls step through the detents (each cross haptics); programmatic
536
+ // opens (send/focus) go full.
537
+ // ONE openness state machine (see ChatMode). pilled / sheetOpen / expanded /
538
+ // detent are all DERIVED from it — so the impossible "open but not open" or
539
+ // pilled-and-full combos can't exist and no transition has to hand-sync two
540
+ // separate states (which is what bred the old stuck states).
541
+ const [mode, setMode] = React.useState("input");
542
+ const pilled = mode === "pill";
543
+ const sheetOpen = mode === "half" || mode === "full";
544
+ const expanded = mode === "full";
545
+ // Free-drag rest height (px): when set, the sheet rests exactly where the user
546
+ // released a deliberate drag instead of snapping to a detent. Cleared whenever
547
+ // a detent is taken (tap/flick/focus/collapse) so the detents stay the
548
+ // snap-to targets and free-positioning is purely the drag affordance.
549
+ const [freeH, setFreeH] = React.useState(null);
550
+ // FULL-SCREEN (maximized): at the FULL detent the user can drop the inset
551
+ // (max-width, side padding, top margin, rounding) so the chat is edge-to-edge.
552
+ // Invariant: only true while at FULL (sheetOpen && expanded && !pilled); every
553
+ // leave-full transition resets it.
554
+ const [maximized, setMaximized] = React.useState(false);
555
+ // Whether the sheet was collapsed when the composer last gained focus — so
556
+ // dismissing the keyboard (tap the handle, tap the scrim, tap outside) returns
557
+ // to the prior resting state (collapsed → input) instead of leaving the sheet
558
+ // hanging open, while a sheet that was ALREADY open before focus stays open.
559
+ const preFocusCollapsedRef = React.useRef(true);
560
+ // Snapshot of "was the composer focused (keyboard up) at the last pointerdown".
561
+ // The browser can auto-blur the input between a scrim pointerdown and its
562
+ // click, so the scrim's click handler can't read live focus — it reads this to
563
+ // tell a FIRST tap (keyboard up → just dismiss + restore) from a SECOND tap
564
+ // (keyboard already down → close the chat).
565
+ const composerFocusedAtPressRef = React.useRef(false);
566
+ // Composer focus ⟺ the soft keyboard is up on mobile. This is the reliable
567
+ // keyboard signal: Capacitor's resize:"body" shrinks innerHeight too, so a
568
+ // visualViewport-derived keyboardInset reads 0 and can't gate the layout.
569
+ const [composerFocused, setComposerFocused] = React.useState(false);
570
+ // The live thread (history) height in px, as a MOTION VALUE — driven directly
571
+ // by the pointer during a drag and spring-animated to a detent on release.
572
+ // Keeping it off React state means a drag updates the DOM height every frame
573
+ // with NO component re-render, so the gesture stays buttery. `draggingRef`
574
+ // gates the settle effect so it doesn't fight an in-flight finger drag.
575
+ const threadHeight = useMotionValue(0);
576
+ // Pill → input morph progress (0 = pill capsule, 1 = full input bar), OFF React
577
+ // state like threadHeight so a pill drag morphs the glass at 60fps with no
578
+ // re-render. Drives the glass/content crossfade + scale; `threadHeight` stays
579
+ // 0 until the input is fully formed, then takes over for input → chat.
580
+ const openProgress = useMotionValue(pilled ? 0 : 1);
581
+ // Imperative animations triggered from gesture callbacks are outside React's
582
+ // effect cleanup, so keep one owner per motion value and stop stale springs
583
+ // before starting another.
584
+ const threadAnimationRef = React.useRef(null);
585
+ const openProgressAnimationRef = React.useRef(null);
586
+ const delayedNavigationTimerRef = React.useRef(null);
587
+ const prefillFocusFrameRef = React.useRef(null);
588
+ const prefillFocusTimerRef = React.useRef(null);
589
+ const stopThreadAnimation = React.useCallback(() => {
590
+ threadAnimationRef.current?.stop();
591
+ threadAnimationRef.current = null;
592
+ }, []);
593
+ const stopOpenProgressAnimation = React.useCallback(() => {
594
+ openProgressAnimationRef.current?.stop();
595
+ openProgressAnimationRef.current = null;
596
+ }, []);
597
+ const animateThreadHeight = React.useCallback((target) => {
598
+ stopThreadAnimation();
599
+ threadAnimationRef.current = animate(threadHeight, target, SHEET_SPRING);
600
+ }, [stopThreadAnimation, threadHeight]);
601
+ const animateOpenProgress = React.useCallback((target) => {
602
+ stopOpenProgressAnimation();
603
+ openProgressAnimationRef.current = animate(openProgress, target, OPEN_SPRING);
604
+ }, [openProgress, stopOpenProgressAnimation]);
605
+ const clearPrefillFocusSchedule = React.useCallback(() => {
606
+ if (prefillFocusFrameRef.current !== null &&
607
+ typeof window !== "undefined" &&
608
+ typeof window.cancelAnimationFrame === "function") {
609
+ window.cancelAnimationFrame(prefillFocusFrameRef.current);
610
+ }
611
+ if (prefillFocusTimerRef.current !== null &&
612
+ typeof window !== "undefined") {
613
+ window.clearTimeout(prefillFocusTimerRef.current);
614
+ }
615
+ prefillFocusFrameRef.current = null;
616
+ prefillFocusTimerRef.current = null;
617
+ }, []);
618
+ React.useEffect(() => () => {
619
+ stopThreadAnimation();
620
+ stopOpenProgressAnimation();
621
+ if (delayedNavigationTimerRef.current !== null) {
622
+ window.clearTimeout(delayedNavigationTimerRef.current);
623
+ delayedNavigationTimerRef.current = null;
624
+ }
625
+ clearPrefillFocusSchedule();
626
+ }, [stopThreadAnimation, stopOpenProgressAnimation, clearPrefillFocusSchedule]);
627
+ // Latest `settleDrag` (defined below) exposed to the viewport-resize effect
628
+ // (which runs earlier). A rotation can orphan an in-flight drag — re-settling
629
+ // the morph keeps the pill↔input crossfade from stranding both bars visible.
630
+ const settleDragRef = React.useRef(null);
631
+ const draggingRef = React.useRef(false);
632
+ // Push-to-talk phase (single source of truth) + a label-only mirror.
633
+ const pttRef = React.useRef({ kind: "idle" });
634
+ const [pttHolding, setPttHolding] = React.useState(false);
635
+ // Swallow exactly the one click that follows a held PTT release.
636
+ const suppressNextClickRef = React.useRef(false);
637
+ const [pendingImages, setPendingImages] = React.useState([]);
638
+ const [imageError, setImageError] = React.useState(null);
639
+ const endRef = React.useRef(null);
640
+ const inputRef = React.useRef(null);
641
+ const fileInputRef = React.useRef(null);
642
+ const overlayRef = React.useRef(null);
643
+ const panelRef = React.useRef(null);
644
+ const threadRef = React.useRef(null);
645
+ // The composer content (textarea + thread). Held so we can imperatively clear
646
+ // its `inert` (set while pilled) the instant the pill is tapped open, before
647
+ // React re-renders — iOS only raises the keyboard for a focus() that lands on
648
+ // a non-inert element synchronously inside the originating tap gesture.
649
+ const contentRef = React.useRef(null);
650
+ // Set for one focus() when we open the pill to the bare input bar: that focus
651
+ // is only there to raise the iOS keyboard and must NOT trip the focus→expand
652
+ // that the normal "tap the visible composer" path relies on (which would
653
+ // fling a history thread open to half instead of resting on the input bar).
654
+ const suppressExpandOnFocusRef = React.useRef(false);
655
+ const focusThreadRef = React.useRef(false);
656
+ // Recomputed only when the thread or phase changes — NOT on every drag/draft
657
+ // re-render. Pure windowing (empty-turn filter + most-recent cap, with the
658
+ // streaming-assistant exception) lives in shell-state so it's unit-tested.
659
+ const visibleMessages = React.useMemo(() => selectVisibleShellMessages(messages, phase), [messages, phase]);
660
+ const lastId = visibleMessages.at(-1)?.id ?? null;
661
+ const lastContent = visibleMessages.at(-1)?.content ?? "";
662
+ // Copy the whole thread as a plain-text transcript from the full-state header
663
+ // — parity with the desktop ChatView header. Flashes a check on success.
664
+ const [conversationCopied, setConversationCopied] = React.useState(false);
665
+ const conversationCopiedTimerRef = React.useRef(null);
666
+ React.useEffect(() => () => {
667
+ if (conversationCopiedTimerRef.current) {
668
+ clearTimeout(conversationCopiedTimerRef.current);
669
+ }
670
+ }, []);
671
+ const handleCopyConversation = React.useCallback(() => {
672
+ const transcript = conversationTranscriptText(visibleMessages.map((m) => ({ role: m.role, text: m.content })), { agentName });
673
+ if (!transcript)
674
+ return;
675
+ void copyTextToClipboard(transcript);
676
+ setConversationCopied(true);
677
+ if (conversationCopiedTimerRef.current) {
678
+ clearTimeout(conversationCopiedTimerRef.current);
679
+ }
680
+ conversationCopiedTimerRef.current = setTimeout(() => setConversationCopied(false), 2000);
681
+ }, [agentName, visibleMessages]);
682
+ // The last line id the scroll effect pinned to — lets it tell a NEW line
683
+ // (always pin to bottom) from streaming growth of the current line (follow
684
+ // only when the reader is already at the bottom).
685
+ const scrollPinnedIdRef = React.useRef(lastId);
686
+ // Topic grouping + chips bar (#8928). Derived from the per-message Stage-1
687
+ // topic tags; when no message is tagged the transcript renders flat (the
688
+ // chips bar and groups simply don't appear), preserving the prior behavior.
689
+ const channelTopics = React.useMemo(() => deriveChannelTopics(visibleMessages), [visibleMessages]);
690
+ const topicSegments = React.useMemo(() => groupMessagesByTopic(visibleMessages), [visibleMessages]);
691
+ const hasTopics = channelTopics.length > 0;
692
+ const [collapsedTopics, setCollapsedTopics] = React.useState(() => new Set());
693
+ const setTopicCollapsed = React.useCallback((key, collapsed) => {
694
+ setCollapsedTopics((prev) => {
695
+ if (collapsed === prev.has(key))
696
+ return prev;
697
+ const next = new Set(prev);
698
+ if (collapsed)
699
+ next.add(key);
700
+ else
701
+ next.delete(key);
702
+ return next;
703
+ });
704
+ }, []);
705
+ // Tapping a chip expands its group and scrolls its header into view.
706
+ const scrollToTopic = React.useCallback((topic) => {
707
+ setCollapsedTopics((prev) => {
708
+ if (!prev.has(topic))
709
+ return prev;
710
+ const next = new Set(prev);
711
+ next.delete(topic);
712
+ return next;
713
+ });
714
+ if (typeof requestAnimationFrame === "undefined")
715
+ return;
716
+ requestAnimationFrame(() => {
717
+ const escaped = typeof CSS !== "undefined" && typeof CSS.escape === "function"
718
+ ? CSS.escape(topic)
719
+ : topic.replace(/"/g, '\\"');
720
+ const el = threadRef.current?.querySelector(`[data-topic="${escaped}"]`);
721
+ el?.scrollIntoView({ behavior: "smooth", block: "start" });
722
+ });
723
+ }, []);
724
+ // Render one transcript line; shared by the flat and topic-grouped paths so
725
+ // the in-flight-turn detection stays identical.
726
+ const renderThreadLine = React.useCallback((m, index) => {
727
+ const isInFlight = index === visibleMessages.length - 1 &&
728
+ m.role === "assistant" &&
729
+ !m.content.trim();
730
+ return (_jsx(ThreadLine, { message: m, floating: true, reduce: reduce, onCopy: handleCopyMessage, onOpenSettings: openSettings, turnStatus: isInFlight ? turnStatus : undefined }, m.id));
731
+ }, [
732
+ visibleMessages.length,
733
+ reduce,
734
+ handleCopyMessage,
735
+ openSettings,
736
+ turnStatus,
737
+ ]);
738
+ const booting = phase === "booting";
739
+ const listening = phase === "listening";
740
+ const hasDraft = draft.trim().length > 0;
741
+ const hasImages = pendingImages.length > 0;
742
+ // The suggestion strip is a keyboard-style row of one-tap prompts shown in the
743
+ // RESTING (closed) state — ready, nothing typed or attached, not recording. It
744
+ // unmounts once the sheet opens or a draft starts; this condition also gates
745
+ // the small-model fetch so it isn't called for a hidden strip.
746
+ const suggestionsVisible = SHOW_PROMPT_SUGGESTIONS &&
747
+ !pilled &&
748
+ !sheetOpen &&
749
+ !recording &&
750
+ !booting &&
751
+ canSend &&
752
+ !hasDraft &&
753
+ !hasImages;
754
+ // Three tailored prompt suggestions for the resting overlay (model-backed via
755
+ // TEXT_SMALL, with a static offline fallback).
756
+ const suggestions = usePromptSuggestions(messages, {
757
+ enabled: suggestionsVisible,
758
+ });
759
+ // Defensive unmount: clear a pending timer and stop a stuck dictation capture
760
+ // if the overlay unmounts mid-press (the controller outlives the overlay).
761
+ // biome-ignore lint/correctness/useExhaustiveDependencies: stopRecording is stable; this runs once on unmount
762
+ React.useEffect(() => () => {
763
+ const phase = pttRef.current;
764
+ if (phase.kind === "pending")
765
+ window.clearTimeout(phase.timer);
766
+ if (phase.kind === "holding")
767
+ stopRecording();
768
+ pttRef.current = { kind: "idle" };
769
+ suppressNextClickRef.current = false;
770
+ }, []);
771
+ // Keep the transcript pinned to the latest line. On first open jump INSTANTLY
772
+ // to the bottom — a layout effect runs before paint, so the thread never
773
+ // flashes at the top. A NEW line (the user's own send, or a fresh reply)
774
+ // always re-pins to the bottom; streaming growth of the current line follows
775
+ // only when the reader is already resting at the bottom, so scrolling up to
776
+ // read history is never yanked down.
777
+ const wasOpenRef = React.useRef(false);
778
+ // Coalesces the per-token streaming-follow scroll into one rAF so a burst of
779
+ // tokens landing within a frame triggers at most one measure+write instead of
780
+ // a forced reflow per token. New-line / first-open pins stay synchronous below.
781
+ const followRafRef = React.useRef(null);
782
+ React.useEffect(() => () => {
783
+ if (followRafRef.current != null)
784
+ cancelAnimationFrame(followRafRef.current);
785
+ }, []);
786
+ // biome-ignore lint/correctness/useExhaustiveDependencies: lastId/lastContent/sheetOpen are the triggers; the body reads refs
787
+ React.useLayoutEffect(() => {
788
+ const el = threadRef.current;
789
+ if (!el)
790
+ return;
791
+ const isNewLine = lastId !== scrollPinnedIdRef.current;
792
+ scrollPinnedIdRef.current = lastId;
793
+ // CLOSED peek: always pin to the bottom so it whispers the LATEST line (the
794
+ // one nearest the composer) — even though it can't be user-scrolled, the
795
+ // clipped content must show the end of the thread, not the top.
796
+ if (!sheetOpen) {
797
+ wasOpenRef.current = false;
798
+ el.scrollTop = el.scrollHeight;
799
+ return;
800
+ }
801
+ // OPEN: jump to the bottom on first open; a NEW line re-pins (smooth); while
802
+ // already resting at the bottom, follow streaming growth — but never yank a
803
+ // reader who has scrolled up to read history. Direct scrollTop assignment is
804
+ // more reliable than scrollIntoView inside this clipped flex column.
805
+ const justOpened = !wasOpenRef.current;
806
+ wasOpenRef.current = true;
807
+ // New line or first open: pin synchronously (pre-paint) so the thread never
808
+ // flashes at the top. Infrequent — once per turn, not per token.
809
+ if (isNewLine || justOpened) {
810
+ const atBottom = el.scrollHeight - el.scrollTop - el.clientHeight < 80;
811
+ // Pin to the latest line ONLY on first open, or when the reader is already
812
+ // resting at the bottom. If they have scrolled UP to read history, a new
813
+ // line must NOT yank them down — the previous code force-pinned on every
814
+ // new line (the `else` ran whenever !atBottom), which is exactly the
815
+ // "scroll up to the first message and get snapped back to the bottom" bug.
816
+ if (justOpened || atBottom) {
817
+ if (isNewLine && !justOpened && !reduce) {
818
+ endRef.current?.scrollIntoView({ behavior: "smooth", block: "end" });
819
+ }
820
+ else {
821
+ el.scrollTop = el.scrollHeight;
822
+ }
823
+ }
824
+ if (justOpened && focusThreadRef.current) {
825
+ el.focus();
826
+ focusThreadRef.current = false;
827
+ }
828
+ return;
829
+ }
830
+ // Streaming growth of the current line: coalesce the bottom-follow into a
831
+ // single rAF (measure atBottom + write scrollTop at most once per frame).
832
+ // Same semantics as before — only follows when the reader is at the bottom.
833
+ if (followRafRef.current != null)
834
+ return;
835
+ followRafRef.current = requestAnimationFrame(() => {
836
+ followRafRef.current = null;
837
+ const node = threadRef.current;
838
+ if (!node)
839
+ return;
840
+ const atBottom = node.scrollHeight - node.scrollTop - node.clientHeight < 80;
841
+ if (atBottom)
842
+ node.scrollTop = node.scrollHeight;
843
+ });
844
+ }, [lastId, lastContent, sheetOpen]);
845
+ // The closed peek must always whisper the NEWEST line, but closing is an
846
+ // animated height collapse: a one-shot scroll set runs before the height
847
+ // finishes shrinking, leaving the peek parked mid-thread as clientHeight
848
+ // drops. Observe the peek while closed and re-pin to the bottom on every size
849
+ // change (animation frames, web-font reflow, viewport resize) until it
850
+ // settles. Disconnects the moment the sheet opens.
851
+ React.useEffect(() => {
852
+ const el = threadRef.current;
853
+ if (!el || sheetOpen || typeof ResizeObserver === "undefined")
854
+ return;
855
+ const pin = () => {
856
+ el.scrollTop = el.scrollHeight;
857
+ };
858
+ pin();
859
+ const ro = new ResizeObserver(pin);
860
+ ro.observe(el);
861
+ return () => ro.disconnect();
862
+ }, [sheetOpen]);
863
+ // Send `text` (and optional images) through the normal chat pipeline, clearing
864
+ // the composer. Shared by the send button, the slash menu (agent commands),
865
+ // and suggestion taps.
866
+ const submitText = React.useCallback((text, images = []) => {
867
+ const trimmed = text.trim();
868
+ // An image-only turn is valid; only bail when there's nothing to send.
869
+ if ((!trimmed && images.length === 0) || !canSend)
870
+ return;
871
+ setDraft("");
872
+ setSlashDismissed(false);
873
+ setPendingImages([]);
874
+ setImageError(null);
875
+ if (images.length) {
876
+ send(trimmed, { images });
877
+ }
878
+ else {
879
+ send(trimmed);
880
+ }
881
+ // Open the thread to show the conversation + the streaming reply, the same
882
+ // HALF detent focusing/typing uses — NOT a full-screen takeover on every
883
+ // send (that shoved the messages up too high). Keep a taller detent if the
884
+ // user already opened one; clear any free-rest so the height matches.
885
+ setFreeH(null);
886
+ setMode((m) => (m === "half" || m === "full" ? m : "half"));
887
+ // Sending COMMITS to the open chat: a deliberate message means this is now
888
+ // an active conversation, so dismissing the keyboard afterwards keeps the
889
+ // thread open (preFocusCollapsedRef gates that) instead of collapsing the
890
+ // whole conversation back to the bare input peek — even when the chat was
891
+ // opened by tapping the collapsed input.
892
+ preFocusCollapsedRef.current = false;
893
+ detentHaptic();
894
+ inputRef.current?.focus();
895
+ }, [canSend, send]);
896
+ // Tapping a suggestion sends it immediately (same path as submit), so the
897
+ // strip is a one-tap shortcut, not just a draft pre-fill.
898
+ const pickSuggestion = React.useCallback((text) => {
899
+ if (!canSend)
900
+ return;
901
+ setDraft("");
902
+ send(text);
903
+ // Open to HALF (conversation above the keyboard), not a full-screen jump.
904
+ setFreeH(null);
905
+ setMode((m) => (m === "half" || m === "full" ? m : "half"));
906
+ detentHaptic();
907
+ inputRef.current?.focus();
908
+ }, [canSend, send]);
909
+ const addImageFiles = React.useCallback((files) => {
910
+ void intakeAttachmentFiles(files)
911
+ .then(({ attachments, droppedTooLarge }) => {
912
+ // The overlay is a pure component without an i18n translator, so it
913
+ // surfaces the "kept N, dropped M" notice inline in English (matching
914
+ // its other hardcoded strings) via the existing imageError channel.
915
+ const summary = summarizeDroppedAttachments({
916
+ acceptedCount: attachments.length,
917
+ droppedTooLarge,
918
+ droppedOverCount: [],
919
+ });
920
+ setImageError(summary
921
+ ? `Kept ${summary.kept}, dropped ${summary.dropped} (too large — max ${summary.maxMb}MB)`
922
+ : null);
923
+ if (attachments.length) {
924
+ setPendingImages((prev) => [...prev, ...attachments].slice(0, MAX_CHAT_IMAGES));
925
+ }
926
+ })
927
+ .catch((err) => {
928
+ // Surface the failure inline rather than silently dropping the image —
929
+ // the overlay is pure, so it can't reach the global notice channel.
930
+ setImageError(err instanceof Error ? err.message : "Couldn't read image");
931
+ });
932
+ }, []);
933
+ const removeImage = React.useCallback((index) => {
934
+ setPendingImages((prev) => prev.filter((_, i) => i !== index));
935
+ }, []);
936
+ // ── Push-to-talk state machine ──────────────────────────────────────────────
937
+ // ONE phase ref is the source of truth: idle → (press) pending → (200ms hold)
938
+ // holding → (release) idle. `pttHolding` mirrors only what the label needs.
939
+ // A quick tap releases while still "pending" (never started a capture) and
940
+ // falls through to handleMicClick → toggleHandsFree. A held release stops the
941
+ // dictation and suppresses the trailing click so it doesn't ALSO toggle.
942
+ const beginPushToTalkPress = React.useCallback((event) => {
943
+ // Only arm from idle, primary button, no draft, and no capture already
944
+ // live (a tap while hands-free toggles it off — handleMicClick). No
945
+ // `booting` guard: voice capture is independent of agent-respond readiness.
946
+ if (pttRef.current.kind !== "idle" ||
947
+ event.button !== 0 ||
948
+ hasDraft ||
949
+ recording ||
950
+ transcriptionMode ||
951
+ // Voice input is gated while a reply is in flight; type + send to queue
952
+ // another turn instead. Re-enabled the instant the reply finishes.
953
+ responding)
954
+ return;
955
+ const { pointerId } = event;
956
+ try {
957
+ event.currentTarget.setPointerCapture(pointerId);
958
+ }
959
+ catch {
960
+ // Synthetic/detached pointer — capture is best-effort.
961
+ }
962
+ const timer = window.setTimeout(() => {
963
+ // Promote to holding only if still pending for THIS pointer.
964
+ const phase = pttRef.current;
965
+ if (phase.kind !== "pending" || phase.pointerId !== pointerId)
966
+ return;
967
+ pttRef.current = { kind: "holding", pointerId };
968
+ setPttHolding(true);
969
+ // Press-and-hold = dictation: fills the composer draft (no send).
970
+ startRecording("dictate");
971
+ }, 200);
972
+ pttRef.current = { kind: "pending", pointerId, timer };
973
+ }, [hasDraft, recording, responding, startRecording, transcriptionMode]);
974
+ // One funnel for BOTH pointerup (cancelled=false) and pointercancel
975
+ // (cancelled=true). Always clears the pending timer + releases pointer capture
976
+ // FIRST — before any early return — so a quick tap can never leak a stuck timer
977
+ // or a captured pointer (the bug that mis-routed later events).
978
+ const finishPushToTalkPress = React.useCallback((event, cancelled) => {
979
+ const phase = pttRef.current;
980
+ if (phase.kind === "pending")
981
+ window.clearTimeout(phase.timer);
982
+ if (typeof event.currentTarget.hasPointerCapture === "function" &&
983
+ event.currentTarget.hasPointerCapture(event.pointerId)) {
984
+ event.currentTarget.releasePointerCapture(event.pointerId);
985
+ }
986
+ pttRef.current = { kind: "idle" };
987
+ if (phase.kind === "holding") {
988
+ stopRecording();
989
+ setPttHolding(false);
990
+ // A real click follows a pointer-UP (never a cancel); suppress it so the
991
+ // dictation release doesn't also toggle hands-free. Setting it ONLY here
992
+ // means it can never leak true into the next legitimate tap.
993
+ if (!cancelled)
994
+ suppressNextClickRef.current = true;
995
+ }
996
+ }, [stopRecording]);
997
+ const handleMicClick = React.useCallback(() => {
998
+ if (suppressNextClickRef.current) {
999
+ suppressNextClickRef.current = false;
1000
+ return;
1001
+ }
1002
+ // Voice can't be turned ON while a reply is in flight (it's gated until the
1003
+ // turn finishes), but an active hands-free session can always be turned OFF.
1004
+ if (responding && !handsFree)
1005
+ return;
1006
+ // While transcribing, the mic is the master voice control: a tap turns the
1007
+ // mic OFF, which also ends transcription (mic = parent — turning off the mic
1008
+ // turns off transcript). This is distinct from the transcript button, which
1009
+ // turns transcript off but LEAVES THE MIC ON. The finished transcript still
1010
+ // drops into the composer as an attachment.
1011
+ if (transcriptionMode) {
1012
+ stopTranscriptionAndMic();
1013
+ return;
1014
+ }
1015
+ // Quick tap = hands-free conversation: the agent speaks its replies back and
1016
+ // the mic re-opens after each one. Tap again to end.
1017
+ toggleHandsFree();
1018
+ }, [
1019
+ responding,
1020
+ handsFree,
1021
+ toggleHandsFree,
1022
+ transcriptionMode,
1023
+ stopTranscriptionAndMic,
1024
+ ]);
1025
+ const hasThread = visibleMessages.length > 0;
1026
+ // Track the VISUAL viewport so the chat sizes to — and sits above — whatever
1027
+ // the mobile keyboard leaves visible. `height` shrinks when the keyboard opens
1028
+ // (on iOS innerHeight does not, so read visualViewport); `keyboardInset` is how
1029
+ // far the keyboard intrudes from the layout bottom, used to lift the whole
1030
+ // overlay above it. `bottomPad` is the overlay's own safe-area/nav padding,
1031
+ // reserved when bounding the panel height.
1032
+ const readViewport = React.useCallback(() => {
1033
+ if (typeof window === "undefined")
1034
+ return { height: 800, keyboardInset: 0, innerHeight: 800 };
1035
+ const vv = window.visualViewport;
1036
+ const innerHeight = window.innerHeight;
1037
+ const height = vv?.height ?? innerHeight;
1038
+ const keyboardInset = vv
1039
+ ? Math.max(0, innerHeight - vv.height - vv.offsetTop)
1040
+ : 0;
1041
+ // innerHeight is the LAYOUT viewport: on Android it shrinks (adjustResize)
1042
+ // when the keyboard opens, on iOS (`resize: "body"`) it does not. The lift
1043
+ // math below uses that to avoid double-counting the keyboard.
1044
+ return { height, keyboardInset, innerHeight };
1045
+ }, []);
1046
+ const [viewport, setViewport] = React.useState(readViewport);
1047
+ const [bottomPad, setBottomPad] = React.useState(0);
1048
+ React.useEffect(() => {
1049
+ if (typeof window === "undefined")
1050
+ return undefined;
1051
+ const commit = () => {
1052
+ // Bail out of the re-render when the viewport values are unchanged — vv
1053
+ // `scroll` fires constantly while the keyboard animates but the height/
1054
+ // inset frequently don't actually move between events.
1055
+ setViewport((prev) => {
1056
+ const next = readViewport();
1057
+ return prev.height === next.height &&
1058
+ prev.keyboardInset === next.keyboardInset &&
1059
+ prev.innerHeight === next.innerHeight
1060
+ ? prev
1061
+ : next;
1062
+ });
1063
+ const el = overlayRef.current;
1064
+ if (el) {
1065
+ const pad = Number.parseFloat(getComputedStyle(el).paddingBottom) || 0;
1066
+ setBottomPad((prev) => (prev === pad ? prev : pad));
1067
+ }
1068
+ };
1069
+ // Coalesce the high-rate vv `scroll` to at most one commit per frame so the
1070
+ // keyboard-animation storm can't drive >60 forced style reads + setStates/s.
1071
+ let rafId = 0;
1072
+ const sync = () => {
1073
+ if (rafId !== 0)
1074
+ return;
1075
+ rafId = requestAnimationFrame(() => {
1076
+ rafId = 0;
1077
+ commit();
1078
+ });
1079
+ };
1080
+ // A viewport SIZE change (rotation) must never strand the pill↔input morph
1081
+ // mid-crossfade — rotation often cancels the in-flight pointer with no
1082
+ // pointerup, leaving the drag orphaned (openProgress frozen mid-range = BOTH
1083
+ // the grabber bar and the pill bar visible). Re-settle to a clean 0/1 end so
1084
+ // the crossfade always resolves to exactly one bar. (No-op at rest; a live
1085
+ // legit drag rotating is rare and settling is the right call there too.)
1086
+ // Plain `sync` (no settle) stays on vv `scroll` — that fires constantly while
1087
+ // the keyboard animates and must not interrupt an open sheet.
1088
+ const syncAndSettle = () => {
1089
+ sync();
1090
+ settleDragRef.current?.();
1091
+ };
1092
+ syncAndSettle();
1093
+ const vv = window.visualViewport;
1094
+ window.addEventListener("resize", syncAndSettle);
1095
+ vv?.addEventListener("resize", syncAndSettle);
1096
+ vv?.addEventListener("scroll", sync, { passive: true });
1097
+ return () => {
1098
+ if (rafId !== 0)
1099
+ cancelAnimationFrame(rafId);
1100
+ window.removeEventListener("resize", syncAndSettle);
1101
+ vv?.removeEventListener("resize", syncAndSettle);
1102
+ vv?.removeEventListener("scroll", sync);
1103
+ };
1104
+ }, [readViewport]);
1105
+ const viewportH = viewport.height;
1106
+ const keyboardInset = viewport.keyboardInset;
1107
+ // iOS keyboard avoidance. With Capacitor `resize:"body"`, the software
1108
+ // keyboard shrinks the BODY but NOT the visual viewport's relationship to a
1109
+ // `position: fixed` element, and the visualViewport delta above frequently
1110
+ // reads 0 — so `keyboardInset` alone can't lift the fixed composer and it
1111
+ // ends up hidden BEHIND the keyboard (reported on device + simulator).
1112
+ // Subscribe to the Capacitor Keyboard plugin for the authoritative keyboard
1113
+ // height and lift by whichever inset is larger.
1114
+ const [nativeKeyboardHeight, setNativeKeyboardHeight] = React.useState(0);
1115
+ React.useEffect(() => {
1116
+ if (typeof window === "undefined")
1117
+ return undefined;
1118
+ let cancelled = false;
1119
+ const handles = [];
1120
+ void import("@capacitor/keyboard")
1121
+ .then(({ Keyboard }) => {
1122
+ if (cancelled)
1123
+ return;
1124
+ void Keyboard.addListener("keyboardWillShow", (info) => {
1125
+ setNativeKeyboardHeight(info?.keyboardHeight ?? 0);
1126
+ })
1127
+ .then((handle) => {
1128
+ if (cancelled)
1129
+ handle.remove();
1130
+ else
1131
+ handles.push(handle);
1132
+ })
1133
+ .catch(() => { });
1134
+ void Keyboard.addListener("keyboardWillHide", () => {
1135
+ setNativeKeyboardHeight(0);
1136
+ })
1137
+ .then((handle) => {
1138
+ if (cancelled)
1139
+ handle.remove();
1140
+ else
1141
+ handles.push(handle);
1142
+ })
1143
+ .catch(() => { });
1144
+ })
1145
+ .catch(() => {
1146
+ // Web / non-native: no Keyboard plugin; visualViewport handles it.
1147
+ });
1148
+ return () => {
1149
+ cancelled = true;
1150
+ for (const handle of handles)
1151
+ handle.remove();
1152
+ };
1153
+ }, []);
1154
+ // Track the layout-viewport height with the keyboard DOWN. On Android the
1155
+ // WebView window shrinks (adjustResize) when the keyboard opens, so the fixed
1156
+ // overlay's `bottom: 0` already rises with it; on iOS (`resize: "body"`) the
1157
+ // layout height is unchanged and the fixed composer stays behind the keyboard.
1158
+ const baseInnerHeightRef = React.useRef(viewport.innerHeight);
1159
+ React.useEffect(() => {
1160
+ if (nativeKeyboardHeight === 0) {
1161
+ baseInnerHeightRef.current = viewport.innerHeight;
1162
+ }
1163
+ }, [nativeKeyboardHeight, viewport.innerHeight]);
1164
+ // Lift the composer above the keyboard by ONLY the part the layout didn't
1165
+ // already absorb. On Android the window shrank by ~the keyboard height
1166
+ // (layoutShrink ≈ keyboardHeight), so the extra native lift is ~0 — without
1167
+ // this the chat double-counts and jumps a whole keyboard height too high. On
1168
+ // iOS the layout doesn't shrink (layoutShrink = 0), so the full native height
1169
+ // lifts the fixed composer above the keyboard. Web (no native plugin) keeps
1170
+ // the visualViewport-derived inset.
1171
+ const layoutShrink = Math.max(0, baseInnerHeightRef.current - viewport.innerHeight);
1172
+ const nativeLift = Math.max(0, nativeKeyboardHeight - layoutShrink);
1173
+ const effectiveKeyboardInset = Math.max(keyboardInset, nativeLift);
1174
+ // FULL-SCREEN derived gate: maximized only takes effect AT the full detent, so
1175
+ // a stale flag can never leak into half/collapsed/pill. Drives the edge-to-edge
1176
+ // panel styles + a zero top margin.
1177
+ const fullBleed = maximized && expanded && sheetOpen && !pilled;
1178
+ // The chat panel may never exceed the visible height minus its own
1179
+ // safe-area/nav padding and a top margin — so it can't spill above the screen.
1180
+ // The thread (flex-shrink) gives way to this cap, scrolling instead of pushing
1181
+ // the panel off-screen. Maximized drops the top margin so it reaches the top.
1182
+ const topMargin = fullBleed ? 0 : SHEET_TOP_MARGIN;
1183
+ // Full-bleed drops the overlay's own bottom padding (its `paddingBottom` is 0
1184
+ // edge-to-edge — the composer carries the home-gesture clearance itself), so
1185
+ // the panel must fill the ENTIRE viewport height. Subtracting the (bottom-anchored)
1186
+ // `bottomPad` here would shrink the panel by the gesture inset and float it a
1187
+ // gesture-inset BELOW the top — the gap that left a hard-cut glass seam under
1188
+ // the status bar and pushed the safe-area-padded header buttons down.
1189
+ const panelMaxH = Math.max(200, viewportH - (fullBleed ? 0 : bottomPad) - topMargin);
1190
+ // History-height detents: COLLAPSED (0) → HALF → FULL — the thread's ideal
1191
+ // flex-basis; flex-shrink clamps the real height to fit. FULL == panelMaxH so
1192
+ // the detent target matches the visible height (no dead slack at the top of a
1193
+ // pull-down) while the sheet rises all the way to the top.
1194
+ const openH = panelMaxH;
1195
+ const halfH = Math.round(viewportH * SHEET_HALF_VH);
1196
+ const detentH = !sheetOpen ? 0 : expanded ? openH : halfH;
1197
+ // A free-drag rest height wins over the detent until a detent is re-taken.
1198
+ const baseH = freeH != null ? Math.min(freeH, panelMaxH) : detentH;
1199
+ // The single explicit state of the chat surface — the named machine the rest
1200
+ // of the component (header gate, data attribute, transitions) reads from. It
1201
+ // is DERIVED from the resting height so it always agrees with what's on
1202
+ // screen; the live drag stays on the `threadHeight` motion value (no
1203
+ // re-render per frame). The five states:
1204
+ // CLOSED — pill only (sheet pilled away)
1205
+ // INPUT — composer bar, no thread (the resting closed state)
1206
+ // OPEN_UNDER_HALF — opened but below the half detent (a deliberate slow
1207
+ // pull rested here); header buttons stay hidden
1208
+ // OPEN_HALF_OR_OVER — at the half detent or taller (header buttons show)
1209
+ // MAXIMIZED — full-bleed edge-to-edge
1210
+ // Transitions: pill tap / flick-up → INPUT; focus·type·flick·send → an OPEN_*
1211
+ // state; pull-down → INPUT → CLOSED; maximize toggle ↔ MAXIMIZED; Home/Settings
1212
+ // animate out of MAXIMIZED then collapse (see navigateAndClose).
1213
+ // MAXIMIZED is keyed off the SAME `fullBleed` predicate the styles use, so the
1214
+ // enum and the full-bleed layout can never disagree (no "maximized at half"
1215
+ // ghost state).
1216
+ const chatState = pilled
1217
+ ? "CLOSED"
1218
+ : !sheetOpen
1219
+ ? "INPUT"
1220
+ : fullBleed
1221
+ ? "MAXIMIZED"
1222
+ : baseH >= halfH - 1
1223
+ ? "OPEN_HALF_OR_OVER"
1224
+ : "OPEN_UNDER_HALF";
1225
+ // Header buttons (maximize/clear/home/settings) are gated on the LIVE rendered
1226
+ // height, NOT the settled enum — otherwise dragging the panel below half keeps
1227
+ // the header mounted on a too-short panel (the "buttons between input and half"
1228
+ // bug). They show only when the panel actually renders at/over half (or is
1229
+ // full-bleed), tracking the finger frame-by-frame; the prev===next guard keeps
1230
+ // re-renders to the two threshold crossings.
1231
+ const evalHeaderVisible = React.useCallback((h) => !pilled && (fullBleed || h >= halfH - 1), [pilled, fullBleed, halfH]);
1232
+ const [headerVisible, setHeaderVisible] = React.useState(false);
1233
+ useMotionValueEvent(threadHeight, "change", (h) => {
1234
+ const next = evalHeaderVisible(h);
1235
+ setHeaderVisible((prev) => (prev === next ? prev : next));
1236
+ });
1237
+ // Re-evaluate on settled-state changes that don't tick the height (programmatic
1238
+ // pill/maximize/open with the spring already at rest).
1239
+ // biome-ignore lint/correctness/useExhaustiveDependencies: threadHeight is a stable motion ref
1240
+ React.useEffect(() => {
1241
+ setHeaderVisible(evalHeaderVisible(threadHeight.get()));
1242
+ }, [evalHeaderVisible]);
1243
+ // Map a raw drag height: rubber-band past FULL, hard-clamp the bottom to 0.
1244
+ const clampHeight = React.useCallback((raw) => raw > openH ? openH + rubberBand(raw - openH) : Math.max(0, raw), [openH]);
1245
+ // Backdrop dimming + the suggestion-strip fade follow the live height; the
1246
+ // thread's flex-basis is the live height as a px string.
1247
+ const revealed = useTransform(threadHeight, (h) => Math.min(1, Math.max(0, h / Math.max(1, openH))));
1248
+ // At rest (threadHeight 0 = INPUT/CLOSED) the full-viewport dimming scrim sits
1249
+ // at opacity 0. Drive `visibility` off the SAME motion value so it drops out
1250
+ // of compositing/paint at rest (no reflow, compositor-only, zero re-render) and
1251
+ // flips back the instant the thread opens.
1252
+ const scrimVisibility = useTransform(threadHeight, (h) => h > 0 ? "visible" : "hidden");
1253
+ const suggestionsOpacity = useTransform(threadHeight, (h) => Math.max(0, 1 - h / Math.max(1, openH * 0.5)));
1254
+ const threadFlexBasis = useTransform(threadHeight, (h) => `${h}px`);
1255
+ // Corner radius tracks the live height so it can't flash as a tall full-pill
1256
+ // mid-pull: a perfect pill at rest (collapsed input, matching the round
1257
+ // buttons) relaxing to a calm 24px the instant the thread starts opening.
1258
+ const panelRadius = useTransform(threadHeight, [0, 12], [9999, 24], {
1259
+ clamp: true,
1260
+ });
1261
+ // --- Liquid-glass pill → input morph (driven by openProgress) ---------------
1262
+ // The panel is ONE persistent element; the pill capsule and the full
1263
+ // input crossfade by opacity (compositor-cheap) while the whole panel scales
1264
+ // up from a capsule. transform + opacity only.
1265
+ const panelScale = useTransform(openProgress, [0, 1], [0.9, 1]);
1266
+ // Glass surface + its content crossfade IN as the input forms (one wrapper, so
1267
+ // sheen/glow/thread/composer resolve together with the glass).
1268
+ const glassOpacity = useTransform(openProgress, [0, 1], [0, 1]);
1269
+ // The pill capsule fades OUT over the first half of the open so it has cleared
1270
+ // before the input controls resolve (no double-image mid-morph).
1271
+ const pillOpacity = useTransform(openProgress, [0, 0.55], [1, 0], {
1272
+ clamp: true,
1273
+ });
1274
+ // The drag-handle (SheetGrabber) bar is IDENTICAL to the pill bar, so they must
1275
+ // never both be on screen. The pill fades OUT over [0, 0.55]; the grabber fades
1276
+ // IN only over [0.55, 0.95] — a strict crossfade with no overlap. (Before, the
1277
+ // grabber mounted at full opacity the instant `pilled` flipped false, while the
1278
+ // pill was still fading out → two bars = the "two pills" bug.)
1279
+ const grabberOpacity = useTransform(openProgress, [0.55, 0.95], [0, 1], {
1280
+ clamp: true,
1281
+ });
1282
+ // Header reveal tracks the LIVE height: as the panel approaches the half
1283
+ // detent the top buttons FADE in and their space LERPS open; pulling back
1284
+ // below half fades them out and collapses the space — no pop. (Maximized sits
1285
+ // at openH ≫ half, so it's fully revealed.) overflow-hidden on the header clips
1286
+ // the buttons while the space is still opening.
1287
+ const headerOpacity = useTransform(threadHeight, [halfH - 64, halfH], [0, 1], {
1288
+ clamp: true,
1289
+ });
1290
+ const headerMaxH = useTransform(threadHeight, [halfH - 64, halfH], [0, 100], {
1291
+ clamp: true,
1292
+ });
1293
+ // The header's top padding LERPS with the same live height. A flex item's
1294
+ // `min-height:auto` lets its padding survive `max-height:0`, so a static
1295
+ // `pt-2.5` would leak ~10px above the composer in the collapsed/input state
1296
+ // (extra, irregular top margin). Driving padding-top 0 → 10px alongside the
1297
+ // reveal keeps the collapsed panel exactly the input-bar height, then opens
1298
+ // the breathing room as the header fades in.
1299
+ const headerPadTop = useTransform(threadHeight, [halfH - 64, halfH], [0, 10], {
1300
+ clamp: true,
1301
+ });
1302
+ // Grabber clearance: when the chat is OPEN but BELOW the half detent the header
1303
+ // is hidden, so the thread viewport would start at the panel's very top —
1304
+ // tucking the topmost line under the floating drag handle (a partial bubble
1305
+ // pinned beneath the grabber at a small free-rest height). Inset the thread
1306
+ // down by the grabber's height in that window only: 0 at the collapsed peek
1307
+ // (threadHeight ~0, so the closed input bar stays exactly its own height),
1308
+ // ramping to the inset once a thread is actually open, then back to 0 as the
1309
+ // header reveals at half+ (it provides the clearance itself).
1310
+ const threadGrabberClearance = useTransform(threadHeight, [0, 40, halfH - 64, halfH], [0, 20, 20, 0], { clamp: true });
1311
+ // Sub-threshold release: spring back to the current detent (no state change).
1312
+ // Also settles the pill→input morph to its resting end (0 while pilled, 1 once
1313
+ // open) so a half-finished pill drag springs cleanly back to the capsule.
1314
+ const settleDrag = React.useCallback(() => {
1315
+ draggingRef.current = false;
1316
+ const open = pilled ? 0 : 1;
1317
+ if (reduce) {
1318
+ stopThreadAnimation();
1319
+ stopOpenProgressAnimation();
1320
+ threadHeight.set(baseH);
1321
+ openProgress.set(open);
1322
+ }
1323
+ else {
1324
+ animateThreadHeight(baseH);
1325
+ animateOpenProgress(open);
1326
+ }
1327
+ }, [
1328
+ threadHeight,
1329
+ openProgress,
1330
+ baseH,
1331
+ pilled,
1332
+ reduce,
1333
+ stopThreadAnimation,
1334
+ stopOpenProgressAnimation,
1335
+ animateThreadHeight,
1336
+ animateOpenProgress,
1337
+ ]);
1338
+ // Keep the ref the (earlier-declared) viewport-resize effect calls pointing at
1339
+ // the latest settleDrag, so a rotation re-settles with current pilled/baseH.
1340
+ settleDragRef.current = settleDrag;
1341
+ // Drive openProgress from the pilled flag for NON-drag transitions (tap the
1342
+ // pill, programmatic open/close): a live finger drag owns openProgress itself
1343
+ // (draggingRef gates this so it never fights the gesture).
1344
+ React.useEffect(() => {
1345
+ if (draggingRef.current)
1346
+ return;
1347
+ const open = pilled ? 0 : 1;
1348
+ if (reduce) {
1349
+ stopOpenProgressAnimation();
1350
+ openProgress.set(open);
1351
+ return;
1352
+ }
1353
+ animateOpenProgress(open);
1354
+ return stopOpenProgressAnimation;
1355
+ }, [
1356
+ pilled,
1357
+ reduce,
1358
+ openProgress,
1359
+ animateOpenProgress,
1360
+ stopOpenProgressAnimation,
1361
+ ]);
1362
+ const closeSheet = React.useCallback(() => {
1363
+ draggingRef.current = false;
1364
+ stopThreadAnimation();
1365
+ stopOpenProgressAnimation();
1366
+ setFreeH(null);
1367
+ setMaximized(false);
1368
+ setMode("input");
1369
+ }, [stopThreadAnimation, stopOpenProgressAnimation]);
1370
+ // Leaving the chat for Settings/Home: animate OUT of maximize and collapse the
1371
+ // sheet (closeSheet un-maximizes + springs the thread height down) BEFORE
1372
+ // swapping the page underneath, so it reads as the chat closing into the new
1373
+ // view rather than a jump-cut from full-screen. The page swap waits a beat for
1374
+ // the collapse spring to start (a touch longer when leaving MAXIMIZED, since
1375
+ // there's more to unwind); reduced motion navigates immediately.
1376
+ const navigateAndClose = React.useCallback((go) => {
1377
+ const wasMaximized = maximized;
1378
+ closeSheet();
1379
+ if (delayedNavigationTimerRef.current !== null) {
1380
+ window.clearTimeout(delayedNavigationTimerRef.current);
1381
+ }
1382
+ delayedNavigationTimerRef.current = window.setTimeout(() => {
1383
+ delayedNavigationTimerRef.current = null;
1384
+ go();
1385
+ }, reduce ? 0 : wasMaximized ? 260 : 190);
1386
+ }, [closeSheet, maximized, reduce]);
1387
+ // Maximize toggle. Maximizing from ANY open detent (half or a free rest) first
1388
+ // rises to the FULL detent, then drops the inset — so the height spring
1389
+ // animates up and the panel goes edge-to-edge in one gesture (previously
1390
+ // full-bleed required `expanded`, so tapping maximize at the half detent did
1391
+ // nothing). Un-maximizing drops back to the inset FULL detent.
1392
+ const toggleMaximize = React.useCallback(() => {
1393
+ if (maximized) {
1394
+ stopThreadAnimation();
1395
+ setMaximized(false);
1396
+ return;
1397
+ }
1398
+ // Snap the morph fully open BEFORE flipping to full-bleed so no in-flight
1399
+ // pill-open spring can leak a sub-1 scale into the maximized frame (top gap).
1400
+ draggingRef.current = false;
1401
+ stopThreadAnimation();
1402
+ stopOpenProgressAnimation();
1403
+ openProgress.set(1);
1404
+ setFreeH(null);
1405
+ setMode("full");
1406
+ setMaximized(true);
1407
+ }, [maximized, openProgress, stopThreadAnimation, stopOpenProgressAnimation]);
1408
+ // The single detent→detent animator: whenever the settled detent (or viewport)
1409
+ // changes and we're not mid finger-drag, spring the history height to it. The
1410
+ // gesture / open paths just flip sheetOpen/expanded and this reacts — no
1411
+ // per-frame React state, so the live drag stays buttery.
1412
+ React.useEffect(() => {
1413
+ if (draggingRef.current)
1414
+ return;
1415
+ if (reduce) {
1416
+ stopThreadAnimation();
1417
+ threadHeight.set(baseH);
1418
+ return;
1419
+ }
1420
+ animateThreadHeight(baseH);
1421
+ return stopThreadAnimation;
1422
+ }, [baseH, reduce, threadHeight, animateThreadHeight, stopThreadAnimation]);
1423
+ // Snap to one of the three iOS-style detents and settle the live drag. A
1424
+ // detent change fires a light haptic so the snap feels physical on device.
1425
+ // "collapsed" hides the history entirely (just the input); "half" is the
1426
+ // comfortable reading height; "full" the near-fullscreen reading mode.
1427
+ const goToDetent = React.useCallback((to) => {
1428
+ // Flip the settled detent; the [baseH] effect springs the height to it.
1429
+ // A detent always clears any free-drag rest height and (since only FULL
1430
+ // can be maximized) drops full-bleed when stepping anywhere else.
1431
+ draggingRef.current = false;
1432
+ stopThreadAnimation();
1433
+ setFreeH(null);
1434
+ if (to !== "full")
1435
+ setMaximized(false);
1436
+ // "collapsed" is the input peek (sheet closed); half/full open the thread.
1437
+ setMode(to === "collapsed" ? "input" : to);
1438
+ // Stepping all the way down closes the keyboard (the chat is dismissed).
1439
+ if (to === "collapsed")
1440
+ inputRef.current?.blur();
1441
+ detentHaptic();
1442
+ }, [stopThreadAnimation]);
1443
+ // Collapsing always drops input focus, so the mobile keyboard goes away the
1444
+ // moment the chat is dismissed (pull-down, Escape, or click-out) — the chat is
1445
+ // no longer "focused". Blurring (rather than the old refocus dance) also means
1446
+ // there's no focus→expand bounce to guard against, so the model stays simple.
1447
+ const collapse = React.useCallback(() => {
1448
+ // If focus is sitting inside the thread log, pull it out before the log
1449
+ // becomes aria-hidden / tabIndex=-1 — never park focus on a hidden element.
1450
+ if (typeof document !== "undefined" &&
1451
+ threadRef.current &&
1452
+ document.activeElement instanceof HTMLElement &&
1453
+ threadRef.current.contains(document.activeElement)) {
1454
+ document.activeElement.blur();
1455
+ }
1456
+ closeSheet();
1457
+ inputRef.current?.blur();
1458
+ }, [closeSheet]);
1459
+ // Dismiss the keyboard and return to the resting state from BEFORE the composer
1460
+ // was focused — the single restore path shared by every "drop the keyboard"
1461
+ // gesture (tap the grabber, tap the scrim, tap outside the panel). A sheet that
1462
+ // was COLLAPSED before focus re-collapses (back to the input bar); one that was
1463
+ // ALREADY OPEN stays open and springs back to its detent size as the keyboard
1464
+ // retracts (the viewport grows → the [baseH] effect re-animates the height).
1465
+ // Never a surprise full close.
1466
+ const dismissKeyboardToPriorState = React.useCallback(() => {
1467
+ inputRef.current?.blur();
1468
+ if (preFocusCollapsedRef.current)
1469
+ collapse();
1470
+ }, [collapse]);
1471
+ // The composer overlay floats over every view and survives tab changes, so
1472
+ // navigating away from a focused composer (chat → Settings / Home / …) would
1473
+ // otherwise leave the textarea holding DOM focus on the new view (its
1474
+ // collapsed/resting look is gated on sheet state, not on document focus). On
1475
+ // iOS that strands the keyboard input-accessory bar (the ‹ › chevrons +
1476
+ // "Done") at the bottom of the screen with no keyboard while the composer
1477
+ // reads as inactive. Drop composer focus whenever the active view changes to a
1478
+ // non-chat tab; an intentional tap to focus the composer on that view (no tab
1479
+ // change) is left untouched. Keyboard.hide() guarantees iOS dismisses the
1480
+ // accessory bar, not just the soft keyboard.
1481
+ React.useEffect(() => {
1482
+ if (currentTab === "chat")
1483
+ return;
1484
+ const input = inputRef.current;
1485
+ if (typeof document === "undefined" ||
1486
+ !input ||
1487
+ document.activeElement !== input) {
1488
+ return;
1489
+ }
1490
+ input.blur();
1491
+ void import("@capacitor/keyboard")
1492
+ .then(({ Keyboard }) => Keyboard.hide())
1493
+ .catch(() => {
1494
+ // Web/desktop or no native bridge — blur() above already dropped focus.
1495
+ });
1496
+ }, [currentTab]);
1497
+ // Focusing or typing in the composer opens the chat (keyboard + history) when
1498
+ // there's a thread to show. Opens to HALF — the conversation is visible above
1499
+ // the keyboard without a full-screen takeover; the maximize button is for that.
1500
+ // Remember whether we opened from collapsed so dismissing the keyboard (tap the
1501
+ // handle) can return to that prior resting state. Clears any free-rest so the
1502
+ // height matches the detent (no stale freeH pinning it below half).
1503
+ const expand = React.useCallback(() => {
1504
+ if (!hasThread)
1505
+ return;
1506
+ preFocusCollapsedRef.current = !sheetOpen;
1507
+ setFreeH(null);
1508
+ // Open to at least HALF; if already at half/full, keep the taller mode.
1509
+ setMode((m) => (m === "half" || m === "full" ? m : "half"));
1510
+ }, [hasThread, sheetOpen]);
1511
+ // Interactive tour control: the tutorial drives the chat into a clean, known
1512
+ // state at the start of each frame (so the spotlight always lands on the right
1513
+ // control) and pre-fills the composer for the guided "ask to navigate" demo.
1514
+ // Decoupled via a window event so the tour never reaches into these internals.
1515
+ React.useEffect(() => {
1516
+ if (typeof window === "undefined")
1517
+ return undefined;
1518
+ const onControl = (event) => {
1519
+ const detail = event.detail;
1520
+ if (!detail)
1521
+ return;
1522
+ switch (detail.action) {
1523
+ case "pill":
1524
+ setMode("pill");
1525
+ inputRef.current?.blur();
1526
+ break;
1527
+ case "rest":
1528
+ // goToDetent("collapsed") → input mode, which un-pills.
1529
+ goToDetent("collapsed");
1530
+ break;
1531
+ case "expand":
1532
+ goToDetent("full");
1533
+ break;
1534
+ case "prefill":
1535
+ setMode((m) => (m === "pill" ? "input" : m));
1536
+ setDraft(detail.text ?? "");
1537
+ requestAnimationFrame(() => inputRef.current?.focus());
1538
+ break;
1539
+ case "reset":
1540
+ // Tour ended (cancel / complete): restore a normal interactive chat.
1541
+ // A frame may have collapsed it to the pill, where the composer is
1542
+ // `inert` — clear inert imperatively (React clears it only on the next
1543
+ // render, too late for the stranded input), drop the tour's prefilled
1544
+ // draft, and goToDetent("collapsed") un-pills back to the input bar.
1545
+ contentRef.current?.removeAttribute("inert");
1546
+ setDraft("");
1547
+ goToDetent("collapsed");
1548
+ break;
1549
+ }
1550
+ };
1551
+ window.addEventListener(TUTORIAL_CHAT_CONTROL_EVENT, onControl);
1552
+ return () => window.removeEventListener(TUTORIAL_CHAT_CONTROL_EVENT, onControl);
1553
+ }, [goToDetent]);
1554
+ React.useEffect(() => {
1555
+ if (typeof window === "undefined")
1556
+ return undefined;
1557
+ const onPrefill = (event) => {
1558
+ const detail = event.detail;
1559
+ const text = typeof detail?.text === "string" ? detail.text : "";
1560
+ if (!text.trim())
1561
+ return;
1562
+ setMode((m) => (m === "pill" ? "input" : m));
1563
+ setDraft(text);
1564
+ const focusComposer = () => {
1565
+ prefillFocusFrameRef.current = null;
1566
+ prefillFocusTimerRef.current = null;
1567
+ const input = inputRef.current;
1568
+ input?.focus();
1569
+ if (detail?.select) {
1570
+ input?.setSelectionRange(0, text.length);
1571
+ }
1572
+ };
1573
+ clearPrefillFocusSchedule();
1574
+ if (typeof window.requestAnimationFrame === "function") {
1575
+ prefillFocusFrameRef.current =
1576
+ window.requestAnimationFrame(focusComposer);
1577
+ }
1578
+ else {
1579
+ prefillFocusTimerRef.current = window.setTimeout(focusComposer, 0);
1580
+ }
1581
+ };
1582
+ window.addEventListener(CHAT_PREFILL_EVENT, onPrefill);
1583
+ return () => window.removeEventListener(CHAT_PREFILL_EVENT, onPrefill);
1584
+ }, [clearPrefillFocusSchedule]);
1585
+ // Push-to-talk dictation drops its final transcript into the composer draft
1586
+ // (no send): register the sink with the controller while this overlay is
1587
+ // mounted, appending to whatever the user has already typed.
1588
+ React.useEffect(() => {
1589
+ setDictationSink((text) => {
1590
+ setDraft((current) => (current ? `${current} ${text}` : text));
1591
+ inputRef.current?.focus();
1592
+ expand();
1593
+ });
1594
+ return () => setDictationSink(null);
1595
+ }, [setDictationSink, expand]);
1596
+ // A completed transcription SESSION drops its transcript into the composer as
1597
+ // an ATTACHMENT — it does NOT auto-send as a message. The user sends it (with
1598
+ // any typed text) when ready; the mic stays on the whole time, so transcribing
1599
+ // is an additive layer, not a mode that takes over the conversation. The
1600
+ // recording is also archived (Transcript record + audio + knowledge mirror)
1601
+ // for the Transcripts view, best-effort and silent.
1602
+ React.useEffect(() => {
1603
+ setTranscriptSessionSink((segments, startedAtMs, audioWav) => {
1604
+ if (segments.length === 0)
1605
+ return;
1606
+ const text = transcriptPlainText(segments);
1607
+ const stamp = new Date(startedAtMs)
1608
+ .toISOString()
1609
+ .slice(0, 16)
1610
+ .replace("T", " ");
1611
+ const attachmentName = `Transcript ${stamp}.md`;
1612
+ if (text) {
1613
+ const attachment = {
1614
+ data: textToBase64(text),
1615
+ mimeType: "text/markdown",
1616
+ name: attachmentName,
1617
+ };
1618
+ setPendingImages((prev) => [...prev, attachment].slice(0, MAX_CHAT_IMAGES));
1619
+ expand();
1620
+ inputRef.current?.focus();
1621
+ }
1622
+ void client
1623
+ .createTranscript({
1624
+ segments,
1625
+ createdAt: startedAtMs,
1626
+ ...(audioWav
1627
+ ? {
1628
+ audioBase64: wavBytesToBase64(audioWav),
1629
+ audioContentType: "audio/wav",
1630
+ }
1631
+ : {}),
1632
+ })
1633
+ .then(({ transcript }) => {
1634
+ // Link the pending attachment to the saved record so tapping it opens
1635
+ // the editable viewer and edits persist — both via the client-only
1636
+ // `transcriptId` field and a durable marker embedded in the markdown
1637
+ // (which survives the server round-trip in the attachment's text).
1638
+ if (!text)
1639
+ return;
1640
+ setPendingImages((prev) => prev.map((a) => a.name === attachmentName &&
1641
+ a.mimeType === "text/markdown" &&
1642
+ !a.transcriptId
1643
+ ? {
1644
+ ...a,
1645
+ transcriptId: transcript.id,
1646
+ data: textToBase64(withTranscriptMarker(transcript.id, text)),
1647
+ }
1648
+ : a));
1649
+ })
1650
+ .catch(() => {
1651
+ /* archival is best-effort; a failed save just skips the record */
1652
+ });
1653
+ });
1654
+ return () => setTranscriptSessionSink(null);
1655
+ }, [setTranscriptSessionSink, expand]);
1656
+ // Tell the controller whether a draft is pending so the hands-free always-on
1657
+ // loop pauses while the user is typing (or editing a PTT dictation) and
1658
+ // resumes the prior voice state once the draft clears on send.
1659
+ React.useEffect(() => {
1660
+ setComposerHasDraft(hasDraft);
1661
+ }, [hasDraft, setComposerHasDraft]);
1662
+ // ── Slash commands ─────────────────────────────────────────────────────────
1663
+ // Inline command autocomplete: the menu derives from the draft + the loaded
1664
+ // catalog; Escape dismisses it (without clearing the draft); typing reopens.
1665
+ const slashMenu = useSlashMenu(draft, slash);
1666
+ // Short-circuit the slash parse on the common (non-slash) keystroke path — a
1667
+ // draft that doesn't start with "/" is never a slash command, so skip the work.
1668
+ const isSlashDraft = draft.startsWith("/") && parseSlashDraft(draft).isSlash;
1669
+ const slashOpen = slashMenu.open && !slashDismissed;
1670
+ // Combobox a11y for the composer input — only when a slash catalog is wired
1671
+ // in. Spread so the input is a plain message box (no role) otherwise.
1672
+ const comboboxAria = slashProp
1673
+ ? {
1674
+ role: "combobox",
1675
+ "aria-autocomplete": "list",
1676
+ "aria-expanded": slashOpen,
1677
+ "aria-controls": slashOpen ? "slash-command-listbox" : undefined,
1678
+ "aria-activedescendant": slashOpen && slashMenu.items[slashMenu.activeIndex]
1679
+ ? `slash-option-${slashMenu.items[slashMenu.activeIndex].id}`
1680
+ : undefined,
1681
+ }
1682
+ : {};
1683
+ // biome-ignore lint/correctness/useExhaustiveDependencies: draft IS the trigger — any edit re-arms the menu after an Escape dismissal.
1684
+ React.useEffect(() => {
1685
+ setSlashDismissed(false);
1686
+ }, [draft]);
1687
+ // Run a resolved slash execution: agent commands flow through the normal send
1688
+ // pipeline; navigation/client commands run their app- or overlay-level effect
1689
+ // and clear the composer.
1690
+ const runExecution = React.useCallback((exec) => {
1691
+ if (exec.kind === "send") {
1692
+ submitText(exec.text);
1693
+ return;
1694
+ }
1695
+ runSlashExecution(exec, {
1696
+ navigateTab: slash.navigateTab,
1697
+ navigateSettings: slash.navigateSettings,
1698
+ navigateView: slash.navigateView,
1699
+ clearChat: slash.clearChat,
1700
+ newConversation: () => controller.clearConversation(),
1701
+ // The overlay owns full-screen via the `maximized` detent flag, not a
1702
+ // controller method, so toggle it directly here.
1703
+ toggleFullscreen: toggleMaximize,
1704
+ openCommandPalette: slash.openCommandPalette,
1705
+ showCommands: slash.openCommandPalette,
1706
+ toggleTranscription: toggleTranscriptionMode,
1707
+ send: (text) => submitText(text),
1708
+ });
1709
+ setDraft("");
1710
+ setSlashDismissed(true);
1711
+ inputRef.current?.focus();
1712
+ }, [slash, controller, submitText, toggleMaximize, toggleTranscriptionMode]);
1713
+ const submit = React.useCallback(() => {
1714
+ const shortcut = pendingImages.length === 0
1715
+ ? resolveClientShortcutExecution(slash.commands, draft, slash.resolveSection, {
1716
+ allowNatural: slash.naturalShortcutsEnabled,
1717
+ resolveChoices: slash.resolveChoices,
1718
+ })
1719
+ : null;
1720
+ if (shortcut) {
1721
+ runExecution(shortcut);
1722
+ return;
1723
+ }
1724
+ submitText(draft, pendingImages);
1725
+ }, [draft, pendingImages, runExecution, slash, submitText]);
1726
+ const pickSlashItem = React.useCallback((index) => {
1727
+ const exec = slashMenu.resolve(index);
1728
+ if (exec)
1729
+ runExecution(exec);
1730
+ }, [slashMenu, runExecution]);
1731
+ // Tapping ANYWHERE outside the chat panel drops the keyboard: if the composer
1732
+ // holds focus and the pointer lands outside the panel, blur it. This is the
1733
+ // iOS-standard "tap the background to dismiss the keyboard" behaviour and works
1734
+ // whether the chat is open (over the scrim) or collapsed (over the live view).
1735
+ React.useEffect(() => {
1736
+ if (typeof document === "undefined")
1737
+ return undefined;
1738
+ const onPointerDown = (event) => {
1739
+ const input = inputRef.current;
1740
+ const focused = !!input && document.activeElement === input;
1741
+ // Record the keyboard state at PRESS time: the scrim's click handler reads
1742
+ // this (focus may be gone by the time the click fires) to tell a first
1743
+ // "dismiss the keyboard" tap from a second "close the chat" tap.
1744
+ composerFocusedAtPressRef.current = focused;
1745
+ // Keyboard already down → outside taps do nothing here (the chat only
1746
+ // closes via a pull-down, the scrim, or Escape).
1747
+ if (!focused)
1748
+ return;
1749
+ const target = event.target;
1750
+ if (target && panelRef.current?.contains(target))
1751
+ return;
1752
+ // Leave a tap on the GRABBER to onTap, which both drops the keyboard AND
1753
+ // returns to the pre-focus resting state — blurring here would preempt it.
1754
+ if (target instanceof Element &&
1755
+ target.closest('[data-testid="chat-sheet-grabber"]')) {
1756
+ return;
1757
+ }
1758
+ // Any other outside tap (incl. the dimming scrim) drops the keyboard and
1759
+ // returns to the pre-focus resting state — never a surprise full close.
1760
+ dismissKeyboardToPriorState();
1761
+ };
1762
+ document.addEventListener("pointerdown", onPointerDown, true);
1763
+ return () => document.removeEventListener("pointerdown", onPointerDown, true);
1764
+ }, [dismissKeyboardToPriorState]);
1765
+ // Escape collapses the chat from ANY open state, even a free-drag open with no
1766
+ // focused element (the element-level handlers on the textarea/thread only fire
1767
+ // when one of them holds focus). Registered only while open.
1768
+ React.useEffect(() => {
1769
+ if (typeof document === "undefined" || !sheetOpen)
1770
+ return undefined;
1771
+ const onKey = (e) => {
1772
+ if (e.key === "Escape") {
1773
+ e.preventDefault();
1774
+ collapse();
1775
+ }
1776
+ };
1777
+ document.addEventListener("keydown", onKey);
1778
+ return () => document.removeEventListener("keydown", onKey);
1779
+ }, [sheetOpen, collapse]);
1780
+ // Auto-grow the composer with multi-line input: snap to the content height
1781
+ // (capped by `max-h` in CSS, which then scrolls). Runs on every draft change
1782
+ // so it also springs back to one line after a send clears the draft.
1783
+ // biome-ignore lint/correctness/useExhaustiveDependencies: draft is the trigger; the body reads the textarea ref
1784
+ React.useLayoutEffect(() => {
1785
+ const el = inputRef.current;
1786
+ if (!el)
1787
+ return;
1788
+ el.style.height = "auto";
1789
+ el.style.height = `${el.scrollHeight}px`;
1790
+ }, [draft]);
1791
+ // Open the input back out of the collapsed pill (tap or keyboard-activate).
1792
+ // A tap routes through the gesture's `onDrag(0)` first, which sets
1793
+ // draggingRef=true AND openProgress=0 — so we MUST clear draggingRef here, or
1794
+ // the pilled→openProgress effect early-returns and the morph stays stuck at 0
1795
+ // (a visible-but-inert pill, no input: the "bad state"). We also spring
1796
+ // openProgress → 1 directly so the open never depends on that effect's timing.
1797
+ const openFromPill = React.useCallback(() => {
1798
+ draggingRef.current = false;
1799
+ // A pill tap OPENS the chat. With a conversation to show, go straight to the
1800
+ // HALF detent — a tap reveals the thread exactly like a flick-up, so a SINGLE
1801
+ // tap always opens the chat (never the old "tap lands on a bare input bar,
1802
+ // tap again to actually open" two-step). Mark it deliberately open so
1803
+ // dismissing the keyboard then KEEPS it at half (preFocusCollapsedRef gates
1804
+ // that). With no thread yet, there's nothing to open into — just form the
1805
+ // bare input bar, and treat a later keyboard dismiss as a re-collapse.
1806
+ if (hasThread) {
1807
+ goToDetent("half");
1808
+ preFocusCollapsedRef.current = false;
1809
+ }
1810
+ else {
1811
+ setMode("input");
1812
+ preFocusCollapsedRef.current = true;
1813
+ detentHaptic();
1814
+ }
1815
+ if (reduce) {
1816
+ stopOpenProgressAnimation();
1817
+ openProgress.set(1);
1818
+ }
1819
+ else
1820
+ animateOpenProgress(1);
1821
+ // Raise the keyboard on the SAME tap that opens the pill. While pilled, the
1822
+ // composer content is `inert`, and React only clears that on the next
1823
+ // render — too late for iOS WebKit, which honors focus() only synchronously
1824
+ // inside the originating user gesture AND only on a non-inert element. So
1825
+ // clear inert imperatively now and focus immediately; otherwise the first
1826
+ // tap opens a composer that silently refuses keyboard input until a second
1827
+ // tap (the reported "chat input doesn't accept text on iOS" bug). Suppress
1828
+ // the focus→expand: the target detent is already set above, and letting
1829
+ // expand run would clobber preFocusCollapsedRef with the (pre-render, still
1830
+ // pilled) sheet state and treat this deliberate open as a re-collapse.
1831
+ contentRef.current?.removeAttribute("inert");
1832
+ suppressExpandOnFocusRef.current = true;
1833
+ inputRef.current?.focus();
1834
+ }, [
1835
+ openProgress,
1836
+ reduce,
1837
+ hasThread,
1838
+ goToDetent,
1839
+ stopOpenProgressAnimation,
1840
+ animateOpenProgress,
1841
+ ]);
1842
+ // --- Pull gesture --------------------------------------------------------
1843
+ // The grabber is the draggable handle. A live drag sets the threadHeight motion
1844
+ // value DIRECTLY (no React state → no re-render per frame, so it tracks the
1845
+ // finger 1:1); release fires onPullUp/onPullDown (distance OR velocity, via
1846
+ // usePullGesture) to snap to a detent.
1847
+ const onDragOffset = React.useCallback((offset) => {
1848
+ if (!draggingRef.current) {
1849
+ stopThreadAnimation();
1850
+ stopOpenProgressAnimation();
1851
+ }
1852
+ draggingRef.current = true;
1853
+ // PILL drag: map the upward travel to the pill→input morph (openProgress).
1854
+ // The thread stays at 0 until the input is fully formed; only the EXCESS
1855
+ // past PILL_OPEN_DISTANCE flows into the thread height, so a single
1856
+ // continuous pull reads pill → input → chat (and a flick-up no longer
1857
+ // flashes a chat sliver, since the thread only grows after the morph).
1858
+ if (pilled) {
1859
+ const up = Math.max(0, offset);
1860
+ openProgress.set(Math.min(1, up / PILL_OPEN_DISTANCE));
1861
+ const excess = up - PILL_OPEN_DISTANCE;
1862
+ threadHeight.set(excess > 0 ? clampHeight(excess) : 0);
1863
+ return;
1864
+ }
1865
+ // INPUT → PILL drag (collapsed, dragging DOWN): the mirror of the pill
1866
+ // drag — map the downward travel to the input→pill morph (openProgress
1867
+ // 1 → 0) so the input bar visibly scales down into the pill capsule under
1868
+ // the finger, instead of staying fully formed and snapping to the pill only
1869
+ // on release (the dead, unresponsive collapse gesture). The thread stays at
1870
+ // 0 (nothing to size below the input).
1871
+ if (!sheetOpen && offset < 0) {
1872
+ const down = -offset;
1873
+ openProgress.set(Math.max(0, 1 - down / PILL_OPEN_DISTANCE));
1874
+ threadHeight.set(0);
1875
+ return;
1876
+ }
1877
+ // Pin the dead direction at each end so the panel feels held: collapsed →
1878
+ // only upward (positive); full → only downward (negative); half → both.
1879
+ const off = !sheetOpen
1880
+ ? Math.max(0, offset)
1881
+ : expanded
1882
+ ? Math.min(0, offset)
1883
+ : offset;
1884
+ threadHeight.set(clampHeight(baseH + off));
1885
+ }, [
1886
+ pilled,
1887
+ sheetOpen,
1888
+ expanded,
1889
+ baseH,
1890
+ clampHeight,
1891
+ threadHeight,
1892
+ openProgress,
1893
+ stopThreadAnimation,
1894
+ stopOpenProgressAnimation,
1895
+ ]);
1896
+ const pullBinding = usePullGesture({
1897
+ onDrag: onDragOffset,
1898
+ // Pulls STEP one detent at a time (peek→half→full and back) rather than
1899
+ // jumping straight to the ends — the iOS sheet feel. The inline closures are
1900
+ // rebuilt every render, so they always read the current detent.
1901
+ onPullUp: () => {
1902
+ if (pilled) {
1903
+ // PILL → INPUT, or straight into the chat when there's history: a flick
1904
+ // up opens. Mirror the slow-drag path so a flick and a slow drag BOTH
1905
+ // reach the chat (no hard stop at the bare input). Releasing draggingRef
1906
+ // first lets the pilled→openProgress effect spring the morph 0→1.
1907
+ draggingRef.current = false;
1908
+ if (hasThread) {
1909
+ focusThreadRef.current = true;
1910
+ goToDetent("half");
1911
+ }
1912
+ else {
1913
+ // Pill → bare input bar (no thread to open into).
1914
+ setMode("input");
1915
+ if (reduce) {
1916
+ stopThreadAnimation();
1917
+ threadHeight.set(0);
1918
+ }
1919
+ else
1920
+ animateThreadHeight(0);
1921
+ detentHaptic();
1922
+ }
1923
+ return;
1924
+ }
1925
+ if (!sheetOpen) {
1926
+ if (!hasThread)
1927
+ return settleDrag();
1928
+ goToDetent("half");
1929
+ focusThreadRef.current = true;
1930
+ }
1931
+ else if (!expanded) {
1932
+ goToDetent("full");
1933
+ focusThreadRef.current = true;
1934
+ }
1935
+ else {
1936
+ settleDrag();
1937
+ }
1938
+ },
1939
+ onPullDown: () => {
1940
+ if (pilled)
1941
+ return settleDrag(); // already the lowest detent
1942
+ // Step down ONE detent based on the EFFECTIVE height (so a free-rest above
1943
+ // half steps to half first, never skipping it). A downward flick also
1944
+ // closes the keyboard — goToDetent("collapsed") blurs; half-step blurs too.
1945
+ const effectiveH = freeH != null ? Math.min(freeH, panelMaxH) : detentH;
1946
+ if (sheetOpen && effectiveH > halfH + 1) {
1947
+ inputRef.current?.blur();
1948
+ goToDetent("half");
1949
+ }
1950
+ else if (sheetOpen) {
1951
+ goToDetent("collapsed");
1952
+ }
1953
+ else {
1954
+ // INPUT → PILL: collapse the input away into a pill at the bottom.
1955
+ setMode("pill");
1956
+ setMaximized(false);
1957
+ draggingRef.current = false;
1958
+ inputRef.current?.blur();
1959
+ detentHaptic();
1960
+ }
1961
+ },
1962
+ // A tap (no drag) on the handle. A tap on the PILL brings the input back.
1963
+ // When OPEN, the handle is the bar ABOVE the thread, so tapping it with the
1964
+ // keyboard up dismisses it and returns to the pre-focus resting state.
1965
+ // When COLLAPSED the handle's hit zone OVERLAPS the composer, so a tap there
1966
+ // is just "focus to type" — it must only focus the input, never dismiss or
1967
+ // collapse (the native focus already raised the keyboard, and the tap pierces
1968
+ // through to the input). Tapping OUTSIDE the panel is what drops the keyboard.
1969
+ onTap: () => {
1970
+ if (pilled) {
1971
+ openFromPill();
1972
+ return;
1973
+ }
1974
+ if (sheetOpen) {
1975
+ const composerFocused = typeof document !== "undefined" &&
1976
+ document.activeElement === inputRef.current;
1977
+ // Keyboard up → drop it and return to the pre-focus resting state (an
1978
+ // already-open sheet stays open; an auto-opened one re-collapses).
1979
+ // Keyboard down → the grabber is just the open chat's top bar; a tap
1980
+ // there does nothing (collapse is a pull-down / Escape / scrim tap).
1981
+ if (composerFocused)
1982
+ dismissKeyboardToPriorState();
1983
+ return;
1984
+ }
1985
+ inputRef.current?.focus();
1986
+ },
1987
+ // A deliberate (slow) drag: REST exactly where released instead of snapping
1988
+ // to a detent — drag the sheet to any size and it stays.
1989
+ onSettleFree: (direction) => {
1990
+ draggingRef.current = false;
1991
+ if (pilled) {
1992
+ // From the pill: a slow drag under the halfway-open mark (openProgress
1993
+ // < 0.5) springs back to the capsule; past it we commit to LEAVING the
1994
+ // pill — but we must NOT force the half detent. A short pull only forms
1995
+ // the input bar (threadHeight stays ~0 until the drag exceeds
1996
+ // PILL_OPEN_DISTANCE), so clear `pilled` and FALL THROUGH to the shared
1997
+ // detent magnetism below: a release near the input (threadHeight within
1998
+ // SHEET_DETENT_MAGNET of 0) settles at the INPUT state, and only a pull
1999
+ // that actually reached up into the thread opens to half/full. This is
2000
+ // what makes pill → input → chat one continuum instead of skipping the
2001
+ // input state straight to half on a short slow pull.
2002
+ const opened = direction === "up" && openProgress.get() >= 0.5;
2003
+ if (!opened) {
2004
+ settleDrag(); // springs openProgress → 0 (mode stays "pill") + thread → 0
2005
+ return;
2006
+ }
2007
+ // Leaving the pill: fall through to the magnetism below, which sets the
2008
+ // mode (input / half / full) from where the drag was released — so pill →
2009
+ // input → chat reads as one continuum.
2010
+ if (hasThread)
2011
+ focusThreadRef.current = true;
2012
+ }
2013
+ // From the collapsed input, a downward drag has nothing to "size" below
2014
+ // it — collapse straight to the pill (matches the flick-down path).
2015
+ if (!sheetOpen && direction === "down") {
2016
+ setMode("pill");
2017
+ inputRef.current?.blur();
2018
+ detentHaptic();
2019
+ return;
2020
+ }
2021
+ const h = Math.max(0, Math.min(threadHeight.get(), panelMaxH));
2022
+ // DETENT MAGNETISM — the resting positions are the detents {collapsed:0,
2023
+ // half, full}; a release within SHEET_DETENT_MAGNET of one snaps to it
2024
+ // (deterministic, no janky near-detent slivers), and only the clear gaps
2025
+ // between them keep the free-drag rest height. goToDetent commits the
2026
+ // honest flags so data-detent + the maximize header match the height.
2027
+ if (h <= SHEET_DETENT_MAGNET) {
2028
+ // Near the bottom → collapse to the input peek.
2029
+ closeSheet();
2030
+ return;
2031
+ }
2032
+ focusThreadRef.current = true;
2033
+ if (h >= openH - SHEET_DETENT_MAGNET) {
2034
+ goToDetent("full");
2035
+ }
2036
+ else if (Math.abs(h - halfH) <= SHEET_DETENT_MAGNET) {
2037
+ goToDetent("half");
2038
+ }
2039
+ else {
2040
+ // In a gap between detents → rest exactly where released. `half` is the
2041
+ // open base; `freeH` overrides the actual height to where the finger left.
2042
+ setFreeH(h);
2043
+ setMode("half");
2044
+ }
2045
+ },
2046
+ });
2047
+ // NOTE: the chat has NO close-on-outside-pointerdown beyond the keyboard blur;
2048
+ // it COLLAPSES on a pull-down, Escape, or a click on the dimming scrim.
2049
+ return (_jsxs("div", { ref: overlayRef, className: cn("pointer-events-none fixed inset-x-0 bottom-0 flex w-full min-w-0 flex-col items-center",
2050
+ // Full-bleed (maximized) removes the side inset so the chat is edge-to-edge.
2051
+ fullBleed ? "px-0" : "px-3 sm:px-4"),
2052
+ // Lift the whole overlay above the on-screen keyboard (`bottom`); padding
2053
+ // below the composer is conditional: when the composer is FOCUSED (keyboard
2054
+ // up), only a small gap (0.75rem, matching the side margin) sits between the
2055
+ // composer and the keyboard — the home-gesture clearance isn't needed
2056
+ // because the keyboard covers it. At rest, clear the home-gesture zone (max
2057
+ // safe-area / android inset) plus a hair, keeping the chat low without
2058
+ // touching that zone.
2059
+ style: {
2060
+ zIndex: Z_SHELL_OVERLAY,
2061
+ bottom: effectiveKeyboardInset,
2062
+ // Full-bleed fills the screen edge-to-edge: NO overlay bottom padding,
2063
+ // so the glass panel reaches the true bottom (no orange gap). The
2064
+ // gesture-zone clearance moves INSIDE the composer row (below) so the
2065
+ // input still sits above the home-gesture bar. Non-full-bleed keeps the
2066
+ // chat lifted off the gesture zone as before.
2067
+ paddingBottom: fullBleed
2068
+ ? 0
2069
+ : composerFocused
2070
+ ? "0.75rem"
2071
+ : "calc(var(--eliza-mobile-nav-offset, 0px) + max(var(--safe-area-bottom, 0px), var(--android-gesture-inset-bottom, 0px)) + 0.25rem)",
2072
+ }, "data-testid": "continuous-chat-overlay", "data-open": sheetOpen ? "true" : undefined, children: [_jsx(motion.div, { "aria-hidden": "true", "data-testid": "chat-sheet-backdrop", "data-active": sheetOpen ? "true" : "false", onClick: sheetOpen
2073
+ ? () => {
2074
+ // First tap with the keyboard up only dismisses it (the
2075
+ // pointerdown handler already dropped the keyboard and restored
2076
+ // the pre-focus detent) — don't ALSO collapse. A tap with the
2077
+ // keyboard already down closes the chat back to the input.
2078
+ if (composerFocusedAtPressRef.current) {
2079
+ composerFocusedAtPressRef.current = false;
2080
+ return;
2081
+ }
2082
+ collapse();
2083
+ }
2084
+ : undefined, className: "fixed inset-0 bg-[linear-gradient(160deg,rgba(255,255,255,0.06)_0%,rgba(8,10,18,0.55)_46%,rgba(0,0,0,0.66)_100%)]",
2085
+ // Opacity follows the live history height (motion value) — no re-render
2086
+ // during a drag. Capture clicks only once open.
2087
+ style: {
2088
+ opacity: revealed,
2089
+ visibility: scrimVisibility,
2090
+ pointerEvents: sheetOpen ? "auto" : "none",
2091
+ } }), recording && transcript ? (_jsxs("div", { role: "status", "aria-live": "polite", "aria-atomic": "true", className: cn("pointer-events-none relative mb-2 w-full max-w-3xl text-center text-sm italic text-white/85", FLOAT_SHADOW), children: [transcript, _jsx("span", { "aria-hidden": "true", children: "\u2026" })] })) : null, needsAudioUnlock ? (_jsx("div", { role: "status", "aria-live": "polite", className: "pointer-events-none relative mb-2 flex w-full justify-center", children: _jsxs("button", { type: "button", onClick: unlockAudio, "data-testid": "overlay-voice-audio-unlock", className: cn("pointer-events-auto inline-flex items-center gap-1.5 rounded-full border px-3 py-1.5 text-sm font-medium transition-colors", "border-warn/40 bg-warn/15 text-warn hover:bg-warn/25", " ", FLOAT_SHADOW), children: [_jsx(Glyph, { d: SPEAKER_MUTED_GLYPH }), _jsx("span", { children: "Tap to enable sound" })] }) })) : null, modelStatus.kind === "downloading" || modelStatus.kind === "loading" ? (_jsx("div", { role: "status", "aria-live": "polite", "aria-atomic": "true", "data-testid": "overlay-model-download-status", className: "pointer-events-none relative mb-2 flex w-full justify-center", children: _jsxs("span", { className: cn("inline-flex items-center gap-2 rounded-full border border-white/15 bg-white/10 px-3 py-1.5 text-sm font-medium text-white/85", FLOAT_SHADOW), children: [_jsx(Loader2, { className: "h-3.5 w-3.5 animate-spin text-[#FF5800]" }), modelStatus.kind === "downloading" ? (_jsxs("span", { children: ["Downloading ", modelStatus.modelName ?? "local model", typeof modelStatus.percent === "number"
2092
+ ? ` — ${Math.round(modelStatus.percent)}%`
2093
+ : "…"] })) : (_jsxs("span", { children: ["Loading ", modelStatus.modelName ?? "local model", "\u2026"] }))] }) })) : null, suggestionsVisible ? (_jsx(motion.fieldset, { "aria-label": "Suggested prompts", className: cn("pointer-events-auto relative m-0 mb-2 flex w-full max-w-3xl flex-wrap items-center justify-center gap-2 border-0 p-0"), style: { order: -1, opacity: suggestionsOpacity }, "data-testid": "chat-suggestions", children: suggestions.map((s, i) => (_jsx("button", { type: "button", "data-testid": `chat-suggestion-${i}`, "aria-label": s, onClick: () => pickSuggestion(s), className: cn("max-w-full truncate rounded-full border border-white/15 bg-black/40 px-3 py-1.5", "text-[12px] text-white/80 transition-colors", "hover:border-white/30 hover:bg-white/15 hover:text-white", " "), children: s }, s))) })) : null, _jsxs("div", { className: cn("pointer-events-none relative flex w-full flex-col items-center", fullBleed ? "max-w-none" : "max-w-3xl"), children: [!fullBleed ? (_jsx(SheetGrabber, { open: sheetOpen, onOpen: () => {
2094
+ if (!hasThread)
2095
+ return;
2096
+ goToDetent("half");
2097
+ focusThreadRef.current = true;
2098
+ }, onClose: collapse, binding: pullBinding, glow: listening || responding, opacity: grabberOpacity, pilled: pilled })) : null, _jsxs(motion.fieldset, { ref: panelRef, "aria-label": "Chat composer", "data-testid": "chat-sheet", "data-variant": sheetOpen ? "open" : "closed", "data-detent": pilled
2099
+ ? "pill"
2100
+ : !sheetOpen
2101
+ ? "collapsed"
2102
+ : freeH != null
2103
+ ? Math.min(freeH, panelMaxH) >= openH - 1
2104
+ ? "full"
2105
+ : "half"
2106
+ : expanded
2107
+ ? "full"
2108
+ : "half", "data-maximized": fullBleed ? "true" : undefined, "data-revealed": sheetOpen ? "true" : "false", "data-chat-state": chatState, "data-header-shown": headerVisible ? "true" : "false",
2109
+ // ONE persistent element across pill ↔ input ↔ chat (never remounts —
2110
+ // that pop was the core jank). It's a transparent scale/position
2111
+ // container; the liquid glass lives in an inner layer faded by
2112
+ // openProgress, so pill → input is a continuous scale + crossfade.
2113
+ // maxHeight keeps it from spilling off the top (thread scrolls instead).
2114
+ style: {
2115
+ maxHeight: panelMaxH,
2116
+ // Full-bleed must be exactly scale 1 — a sub-1 morph scale with a
2117
+ // bottom transform-origin would drop the top edge below the status
2118
+ // bar (the "gap at the top when maximized" bug).
2119
+ scale: fullBleed ? 1 : panelScale,
2120
+ // Grow UP out of the pill at the bottom.
2121
+ transformOrigin: "bottom center",
2122
+ // Pilled: span the (invisible) input area but pass taps through to the
2123
+ // home screen — only the pill-capsule child re-enables pointer events.
2124
+ pointerEvents: pilled ? "none" : "auto",
2125
+ }, className: cn(
2126
+ // overflow-VISIBLE on the outer fieldset: the pill's tall grab zone
2127
+ // must bleed past the box. The rounded thread-clip lives on the inner
2128
+ // content wrapper instead, so clipping the scroll never clips a hard
2129
+ // square edge over the content.
2130
+ "relative m-0 flex w-full min-w-0 flex-col overflow-visible border-0 p-0"), children: [_jsx(motion.div, { "aria-hidden": "true", className: cn("pointer-events-none absolute inset-0 z-0", fullBleed ? "border-0" : "border border-white/[0.16]",
2131
+ // A solid dark fill so white text stays legible over any view
2132
+ // behind (a bright view, a dark view, or the warm ambient field).
2133
+ "bg-black/45"), style: {
2134
+ opacity: glassOpacity,
2135
+ borderRadius: fullBleed ? 0 : panelRadius,
2136
+ // Full-bleed: extend the glass UP through the safe-area-top so the
2137
+ // dark background reaches the true top of the screen. The panel
2138
+ // height comes from visualViewport (which excludes the Android
2139
+ // status bar) while the panel sits in a screen-top fixed container,
2140
+ // so without this the glass starts a status-bar-height below the top
2141
+ // (the "safe-area gap" above maximized chat). overflow-visible on the
2142
+ // panel lets it bleed up; content (header, with its own safe-area
2143
+ // padding) is untouched. Harmless when the inset is 0.
2144
+ ...(fullBleed
2145
+ ? { top: "calc(-1 * env(safe-area-inset-top, 0px))" }
2146
+ : null),
2147
+ } }), _jsxs(motion.div, { ref: contentRef, "data-testid": "chat-content", inert: pilled || undefined,
2148
+ // overflow-hidden + the live radius clips the sheen/thread to the
2149
+ // panel's rounded shape (the clip the fieldset used to do) WITHOUT
2150
+ // touching the sibling glass layer's shadow.
2151
+ className: "relative z-10 flex min-h-0 w-full flex-col overflow-hidden", style: {
2152
+ opacity: glassOpacity,
2153
+ pointerEvents: pilled ? "none" : "auto",
2154
+ borderRadius: fullBleed ? 0 : panelRadius,
2155
+ }, children: [sheetOpen ? (_jsxs(_Fragment, { children: [_jsx(SwipeEdgeHint, { side: "left", active: swipeDx < 0 && conversationNav.hasPrev, amount: -swipeDx }), _jsx(SwipeEdgeHint, { side: "right", active: swipeDx > 0 && conversationNav.hasNext, amount: swipeDx })] })) : null, _jsx("div", { "aria-hidden": "true", className: "pointer-events-none absolute inset-x-0 top-0 z-0 h-20 bg-gradient-to-b from-white/[0.07] to-transparent" }), !pilled ? (_jsxs(motion.div
2156
+ // Always mounted (when not pilled) so it can FADE + LERP its
2157
+ // space open/closed with the live height instead of popping in
2158
+ // on a mount. `headerVisible` (live-height boolean) gates
2159
+ // interactivity + the a11y tree so the faded/collapsed header
2160
+ // can't be clicked or read.
2161
+ , {
2162
+ // Always mounted (when not pilled) so it can FADE + LERP its
2163
+ // space open/closed with the live height instead of popping in
2164
+ // on a mount. `headerVisible` (live-height boolean) gates
2165
+ // interactivity + the a11y tree so the faded/collapsed header
2166
+ // can't be clicked or read.
2167
+ inert: !headerVisible || undefined, style: {
2168
+ // Full-bleed is always fully open: show the header at full
2169
+ // opacity and UNCAP its height. The reveal lerp tops out at
2170
+ // 100px, but the safe-area top padding (status-bar height +
2171
+ // 0.5rem) plus the button row exceeds that, so a 100px cap
2172
+ // clipped the buttons — uncap it edge-to-edge.
2173
+ opacity: fullBleed ? 1 : headerOpacity,
2174
+ maxHeight: fullBleed ? "none" : headerMaxH,
2175
+ // Collapsed → 0 top padding (no leaked margin above the
2176
+ // composer); opens to ~10px as the header reveals. Maximized
2177
+ // goes edge-to-edge under the status bar, so the header insets
2178
+ // its buttons below the safe area (the clock/battery) while the
2179
+ // sheet bg stays full-bleed — set inline (not a Tailwind
2180
+ // arbitrary class, whose env(...,0px) comma breaks the parser
2181
+ // so no padding was generated and the buttons sat under the
2182
+ // status bar).
2183
+ paddingTop: fullBleed
2184
+ ? "calc(var(--safe-area-top, 0px) + 0.5rem)"
2185
+ : headerPadTop,
2186
+ }, className: cn("relative z-10 flex shrink-0 items-center justify-between gap-1.5 overflow-hidden px-3"), children: [_jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx(HeaderButton, { icon: maximized ? Minimize2 : Maximize2, label: maximized ? "exit full screen" : "full screen", active: maximized, onClick: toggleMaximize, testId: "chat-full-maximize" }), hasThread ? (_jsx(HeaderButton, { icon: conversationCopied ? Check : Copy, label: conversationCopied
2187
+ ? "conversation copied"
2188
+ : "copy conversation", onClick: handleCopyConversation, testId: "chat-full-copy-conversation" })) : null, _jsx(HeaderButton, { icon: RotateCcw, label: "clear conversation", onClick: () => clearConversation(), testId: "chat-full-clear" })] }), transcriptionMode ? (_jsx("div", { "data-testid": "chat-transcribing-badge", className: "pointer-events-none absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 whitespace-nowrap rounded-full bg-[var(--brand-orange,#ff6a00)]/15 px-2.5 py-0.5 text-[11px] font-medium text-[var(--brand-orange,#ff6a00)]", children: "Transcribing \u2014 say \u201Cexit transcription mode\u201D to stop" })) : null, _jsx("div", { className: "flex items-center gap-1.5", children: _jsx(HeaderButton, { icon: LayoutGrid, label: "springboard", onClick: () => navigateAndClose(() => navigateHome?.()), testId: "chat-full-springboard" }) })] })) : null, hasThread || sheetOpen ? (_jsx(motion.div, { "data-testid": "chat-thread", className: cn("relative z-10 min-h-0 w-full shrink grow-0 overflow-hidden",
2189
+ // When open, fade the top edge into the glass so the topmost
2190
+ // message dissolves under the drag handle instead of butting
2191
+ // against it.
2192
+ sheetOpen &&
2193
+ "[mask-image:linear-gradient(to_bottom,transparent_0,#000_34px)] [-webkit-mask-image:linear-gradient(to_bottom,transparent_0,#000_34px)]"),
2194
+ // Flex-basis IS the motion value (px string) — set 1:1 during a drag,
2195
+ // spring-animated to a detent on release; no `animate`/`transition`,
2196
+ // so no re-render. `shrink min-h-0` lets the panel's `maxHeight` cap
2197
+ // win: a tall detent (or the keyboard) shrinks the thread (it
2198
+ // scrolls) instead of pushing the panel off-screen. paddingTop
2199
+ // insets the scroll viewport below the floating grabber while the
2200
+ // header is hidden (0 once the header reveals at half+).
2201
+ style: {
2202
+ flexBasis: threadFlexBasis,
2203
+ paddingTop: threadGrabberClearance,
2204
+ }, children: _jsxs("div", { id: "continuous-thread", ref: threadRef, role: "log", "aria-label": "conversation history", "aria-live": "polite", "aria-hidden": !sheetOpen ? true : undefined, tabIndex: sheetOpen ? 0 : -1, onKeyDown: (e) => {
2205
+ if (e.key === "Escape") {
2206
+ e.preventDefault();
2207
+ collapse();
2208
+ }
2209
+ }, ...(sheetOpen ? conversationSwipe : {}), className: "relative flex h-full w-full touch-pan-y flex-col overflow-y-auto px-5 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden", children: [visibleMessages.length === 0 && conversationLoading ? (_jsx("div", { "data-testid": "chat-thread-loading", className: "pointer-events-none absolute inset-0 grid place-items-center", children: _jsx(Loader2, { className: "h-6 w-6 animate-spin text-[#FF5800]" }) })) : null, hasTopics ? (_jsx(TopicChipsBar, { topics: channelTopics, onSelectTopic: scrollToTopic, className: "sticky top-0 z-[2] -mx-5 mb-1 bg-gradient-to-b from-black/40 to-transparent px-5" })) : null, _jsxs("div", { className: "mt-auto flex flex-col pb-3 pt-1", children: [hasTopics
2210
+ ? // Topic-grouped transcript: each cluster collapses via a
2211
+ // gesture on its header (no visible buttons).
2212
+ (() => {
2213
+ let lineIndex = 0;
2214
+ return topicSegments.map((segment) => {
2215
+ const lines = segment.messages.map((m) => renderThreadLine(m, lineIndex++));
2216
+ return (_jsx(TopicGroup, { topic: segment.topic, count: segment.messages.length, collapsed: collapsedTopics.has(segment.key), onCollapsedChange: (collapsed) => setTopicCollapsed(segment.key, collapsed), children: _jsx(AnimatePresence, { initial: false, children: lines }) }, segment.messages[0]?.id ?? segment.key));
2217
+ });
2218
+ })()
2219
+ : // Flat transcript (no topic tags) — unchanged behavior.
2220
+ // Only the LAST, content-less assistant turn (the
2221
+ // in-flight one) reads turnStatus — every settled bubble
2222
+ // gets undefined so its memo identity is unchanged.
2223
+ null, hasTopics ? null : (_jsx(AnimatePresence, { initial: false, children: visibleMessages.map((m, i) => renderThreadLine(m, i)) })), _jsx(AnimatePresence, { children: responding &&
2224
+ !(visibleMessages.at(-1)?.role === "assistant" &&
2225
+ !visibleMessages.at(-1)?.content.trim()) ? (_jsx(TurnStatusIndicator, { status: turnStatus, reduce: reduce })) : null }), _jsx("div", { ref: endRef })] })] }) })) : null, hasImages || imageError ? (_jsxs("div", { className: "relative z-10 flex shrink-0 flex-col gap-1.5 px-3 pt-2", children: [hasImages ? (_jsx("div", { className: "flex flex-wrap gap-2", children: pendingImages.map((img, i) => {
2226
+ const kind = chatUploadKind(img.mimeType);
2227
+ const removeButton = (_jsx("button", { type: "button", "aria-label": `remove ${img.name}`, onClick: () => removeImage(i),
2228
+ // Small visual disc, but a 44px-class hit zone via the
2229
+ // invisible `before` overlay so it's thumb-tappable
2230
+ // without crowding the tile.
2231
+ className: "absolute -right-1.5 -top-1.5 grid h-5 w-5 place-items-center rounded-full border border-white/20 bg-black/70 text-xs text-white/90 transition-colors before:absolute before:-inset-3 before:content-[''] hover:bg-black/90", children: "\u00D7" }));
2232
+ const tileKey = `${img.name}-${img.mimeType}-${img.data.length}`;
2233
+ if (kind === "image") {
2234
+ return (_jsxs("div", { className: "group relative h-14 w-14 shrink-0", children: [_jsx("img", { src: `data:${img.mimeType};base64,${img.data}`, alt: img.name, className: "h-14 w-14 rounded-lg border border-white/20 object-cover" }), removeButton] }, tileKey));
2235
+ }
2236
+ const KindIcon = kind === "audio"
2237
+ ? Music
2238
+ : kind === "video"
2239
+ ? Film
2240
+ : FileText;
2241
+ return (_jsxs("div", { className: "group relative flex h-14 min-w-[3.5rem] max-w-[10rem] shrink-0 items-center gap-2 rounded-lg border border-white/20 bg-white/10 px-2.5 text-white/90", title: img.name, children: [_jsx(KindIcon, { className: "h-5 w-5 shrink-0 text-white/70" }), _jsx("span", { className: "min-w-0 truncate text-[11px] leading-tight", children: img.name }), removeButton] }, tileKey));
2242
+ }) })) : null, imageError ? (_jsx("p", { role: "alert", className: cn("text-xs text-red-200/90", FLOAT_SHADOW), children: imageError })) : null] })) : null, _jsx("input", { ref: fileInputRef, type: "file", accept: CHAT_UPLOAD_ACCEPT, multiple: true, className: "hidden", onChange: (e) => {
2243
+ if (e.target.files)
2244
+ addImageFiles(e.target.files);
2245
+ e.target.value = "";
2246
+ } }), _jsxs("div", { className: cn(
2247
+ // items-center vertically centers a single-line composer with
2248
+ // the round +/mic buttons (the common case); a multi-line draft
2249
+ // grows the textarea and the buttons stay centered. shrink-0
2250
+ // keeps the input fully visible when the panel hits its
2251
+ // maxHeight cap (only the thread above gives way).
2252
+ // Equal inset on all sides (px == py): a round button nested in
2253
+ // the pill's round end-cap reads as concentric, with the same
2254
+ // gap on the sides as top/bottom.
2255
+ "relative z-10 flex min-w-0 shrink-0 items-center gap-1.5 px-2 py-2 sm:gap-2", sheetOpen ? "border-t border-white/10" : ""),
2256
+ // Full-bleed has no overlay bottom padding (the panel is
2257
+ // edge-to-edge), so the composer carries the home-gesture
2258
+ // clearance itself — except while the keyboard is up, which
2259
+ // already covers that zone.
2260
+ style: fullBleed && !composerFocused
2261
+ ? {
2262
+ paddingBottom: "calc(0.5rem + max(var(--safe-area-bottom, 0px), var(--android-gesture-inset-bottom, 0px)))",
2263
+ }
2264
+ : undefined, children: [slashProp && !slashDismissed ? (_jsx(SlashCommandMenu, { state: slashMenu, loading: isSlashDraft && slash.loading, onPick: pickSlashItem })) : null, _jsx(SoftButton, { glyph: PLUS_GLYPH, label: "attach image", disabled: pendingImages.length >= MAX_CHAT_IMAGES, onClick: () => fileInputRef.current?.click(), testId: "chat-composer-attach" }), _jsx("textarea", { ref: inputRef, rows: 1, value: draft, onChange: (e) => {
2265
+ setDraft(e.target.value);
2266
+ // Mirror the live draft to the active view (Help search etc.).
2267
+ viewChatBinding?.onQuery?.(e.target.value);
2268
+ if (e.target.value.trim().length > 0)
2269
+ expand();
2270
+ }, onFocus: () => {
2271
+ setComposerFocused(true);
2272
+ // A pill-open focus only raises the keyboard; it must not
2273
+ // expand a history thread (see suppressExpandOnFocusRef).
2274
+ if (suppressExpandOnFocusRef.current) {
2275
+ suppressExpandOnFocusRef.current = false;
2276
+ }
2277
+ else {
2278
+ expand();
2279
+ }
2280
+ }, onBlur: () => setComposerFocused(false), onPaste: (e) => {
2281
+ // Shared with the desktop composer: a pasted image/file
2282
+ // attaches, a large plain-text paste becomes a collapsed
2283
+ // text-attachment chip, and small text falls through to the
2284
+ // textarea as normal.
2285
+ const intent = classifyComposerPaste({
2286
+ files: Array.from(e.clipboardData?.files ?? []),
2287
+ text: e.clipboardData?.getData("text") ?? "",
2288
+ });
2289
+ if (intent.kind === "files") {
2290
+ e.preventDefault();
2291
+ addImageFiles(intent.files);
2292
+ return;
2293
+ }
2294
+ if (intent.kind === "text-attachment") {
2295
+ e.preventDefault();
2296
+ setPendingImages((prev) => [...prev, intent.attachment].slice(0, MAX_CHAT_IMAGES));
2297
+ }
2298
+ }, onKeyDown: (e) => {
2299
+ // The slash menu intercepts navigation/commit keys when open.
2300
+ if (slashOpen) {
2301
+ if (e.key === "ArrowDown") {
2302
+ e.preventDefault();
2303
+ slashMenu.move(1);
2304
+ return;
2305
+ }
2306
+ if (e.key === "ArrowUp") {
2307
+ e.preventDefault();
2308
+ slashMenu.move(-1);
2309
+ return;
2310
+ }
2311
+ if (e.key === "Tab") {
2312
+ const completed = slashMenu.complete();
2313
+ if (completed != null) {
2314
+ e.preventDefault();
2315
+ setDraft(completed);
2316
+ return;
2317
+ }
2318
+ }
2319
+ if (e.key === "Enter" && !e.shiftKey) {
2320
+ const exec = slashMenu.resolve();
2321
+ if (exec) {
2322
+ e.preventDefault();
2323
+ runExecution(exec);
2324
+ return;
2325
+ }
2326
+ }
2327
+ if (e.key === "Escape") {
2328
+ e.preventDefault();
2329
+ e.stopPropagation();
2330
+ setSlashDismissed(true);
2331
+ return;
2332
+ }
2333
+ }
2334
+ // Enter sends; Shift+Enter inserts a newline (multi-line compose).
2335
+ if (e.key === "Enter" && !e.shiftKey) {
2336
+ e.preventDefault();
2337
+ submit();
2338
+ }
2339
+ else if (e.key === "Escape" && sheetOpen) {
2340
+ e.preventDefault();
2341
+ collapse();
2342
+ }
2343
+ }, placeholder: booting
2344
+ ? `Ask ${agentName} — waking up…`
2345
+ : (viewChatBinding?.placeholder ?? `Ask ${agentName}`), "aria-label": "message", "data-testid": "chat-composer-textarea", "aria-describedby": booting ? "cc-booting-hint" : undefined, ...comboboxAria, className: "max-h-[8.5rem] min-h-8 min-w-0 flex-1 resize-none self-center border-none bg-transparent px-1.5 py-1 text-left text-sm leading-relaxed text-white/[0.92] outline-none [scrollbar-width:none] placeholder:text-white/45 [&::-webkit-scrollbar]:hidden" }), _jsxs("span", { id: "cc-booting-hint", className: "sr-only", children: [agentName, " is waking up \u2014 you can type now; your message sends and the reply arrives in a moment."] }), _jsx("div", { className: "flex shrink-0 items-center gap-1.5 sm:gap-2", children: _jsx("div", { className: "shrink-0", children: (hasDraft || hasImages) && !recording ? (_jsx(SoftButton, { icon: SendHorizontal, label: !canSend
2346
+ ? "send (agent stopped)"
2347
+ : responding
2348
+ ? "send another"
2349
+ : "send", disabled: !canSend,
2350
+ // Keep focus in the textarea on tap: without this the
2351
+ // button steals focus, the textarea blurs, the keyboard
2352
+ // retracts and the composer relayouts between pointerdown
2353
+ // and click — so the first tap only dismissed the keyboard
2354
+ // and a second tap was needed to actually send. Chromium
2355
+ // still dispatches click after a preventDefaulted
2356
+ // pointerdown, so onClick fires on the first tap and the
2357
+ // keyboard stays up for the next message.
2358
+ onPointerDown: (e) => e.preventDefault(), onClick: submit, testId: "chat-composer-action" })) : !recording && responding ? (_jsx(SoftButton, { glyph: STOP_GLYPH, label: "stop generating", onClick: () => stop(), testId: "chat-composer-stop" })) : (_jsx(SoftButton, { icon: Mic, label: pttHolding
2359
+ ? "release to send"
2360
+ : transcriptionMode
2361
+ ? "stop transcription"
2362
+ : handsFree
2363
+ ? "end conversation"
2364
+ : recording
2365
+ ? "stop listening"
2366
+ : "talk", active: recording || handsFree || transcriptionMode, onClick: handleMicClick, onPointerDown: beginPushToTalkPress, onPointerUp: (e) => finishPushToTalkPress(e, false), onPointerCancel: (e) => finishPushToTalkPress(e, true), testId: "chat-composer-mic" })) }) })] })] }), _jsx(motion.div, { className: "absolute inset-x-0 bottom-0 z-30 flex justify-center", style: {
2367
+ opacity: pillOpacity,
2368
+ pointerEvents: pilled ? "auto" : "none",
2369
+ }, children: _jsx(PillHandle, { binding: pullBinding, onOpen: openFromPill, glow: listening || responding, pilled: pilled }) })] })] })] }));
2370
+ }