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

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 (3576) hide show
  1. package/App.d.ts.map +1 -1
  2. package/App.js +785 -335
  3. package/agent-surface/AgentElementOverlay.d.ts +9 -0
  4. package/agent-surface/AgentElementOverlay.d.ts.map +1 -0
  5. package/agent-surface/AgentElementOverlay.js +85 -0
  6. package/agent-surface/AgentSurfaceContext.d.ts +18 -0
  7. package/agent-surface/AgentSurfaceContext.d.ts.map +1 -0
  8. package/agent-surface/AgentSurfaceContext.hooks.d.ts +16 -0
  9. package/agent-surface/AgentSurfaceContext.hooks.d.ts.map +1 -0
  10. package/agent-surface/AgentSurfaceContext.hooks.js +11 -0
  11. package/agent-surface/AgentSurfaceContext.js +33 -0
  12. package/agent-surface/__e2e__/fixture.d.ts +14 -0
  13. package/agent-surface/__e2e__/fixture.d.ts.map +1 -0
  14. package/agent-surface/__e2e__/fixture.js +52 -0
  15. package/agent-surface/capabilities.d.ts +20 -0
  16. package/agent-surface/capabilities.d.ts.map +1 -0
  17. package/agent-surface/capabilities.js +85 -0
  18. package/agent-surface/components.d.ts +52 -0
  19. package/agent-surface/components.d.ts.map +1 -0
  20. package/agent-surface/components.js +41 -0
  21. package/agent-surface/element-reporter.d.ts +19 -0
  22. package/agent-surface/element-reporter.d.ts.map +1 -0
  23. package/agent-surface/element-reporter.hooks.d.ts +27 -0
  24. package/agent-surface/element-reporter.hooks.d.ts.map +1 -0
  25. package/agent-surface/element-reporter.hooks.js +79 -0
  26. package/agent-surface/element-reporter.js +24 -0
  27. package/agent-surface/index.d.ts +16 -0
  28. package/agent-surface/index.d.ts.map +1 -0
  29. package/agent-surface/index.js +15 -0
  30. package/agent-surface/registry.d.ts +48 -0
  31. package/agent-surface/registry.d.ts.map +1 -0
  32. package/agent-surface/registry.js +274 -0
  33. package/agent-surface/types.d.ts +93 -0
  34. package/agent-surface/types.d.ts.map +1 -0
  35. package/agent-surface/types.js +40 -0
  36. package/agent-surface/useAgentElement.d.ts +31 -0
  37. package/agent-surface/useAgentElement.d.ts.map +1 -0
  38. package/agent-surface/useAgentElement.js +96 -0
  39. package/api/agent-client-type-shim.d.ts +12 -94
  40. package/api/agent-client-type-shim.d.ts.map +1 -1
  41. package/api/android-native-agent-transport.d.ts +25 -0
  42. package/api/android-native-agent-transport.d.ts.map +1 -1
  43. package/api/android-native-agent-transport.js +255 -50
  44. package/api/auth-client.d.ts.map +1 -1
  45. package/api/auth-client.js +61 -0
  46. package/api/browser-contracts.d.ts +222 -0
  47. package/api/browser-contracts.d.ts.map +1 -0
  48. package/api/browser-contracts.js +1 -0
  49. package/api/client-agent.d.ts +68 -10
  50. package/api/client-agent.d.ts.map +1 -1
  51. package/api/client-agent.js +980 -289
  52. package/api/client-base.d.ts +58 -8
  53. package/api/client-base.d.ts.map +1 -1
  54. package/api/client-base.js +591 -213
  55. package/api/client-browser-workspace.d.ts +1 -1
  56. package/api/client-browser-workspace.d.ts.map +1 -1
  57. package/api/client-chat.d.ts +87 -5
  58. package/api/client-chat.d.ts.map +1 -1
  59. package/api/client-chat.js +305 -94
  60. package/api/client-cloud.d.ts +139 -10
  61. package/api/client-cloud.d.ts.map +1 -1
  62. package/api/client-cloud.js +472 -45
  63. package/api/client-computeruse.d.ts +1 -1
  64. package/api/client-computeruse.d.ts.map +1 -1
  65. package/api/client-local-inference.d.ts +2 -2
  66. package/api/client-local-inference.d.ts.map +1 -1
  67. package/api/client-local-inference.js +2 -1
  68. package/api/client-notifications.d.ts +31 -0
  69. package/api/client-notifications.d.ts.map +1 -0
  70. package/api/client-notifications.js +34 -0
  71. package/api/client-skills.d.ts +109 -126
  72. package/api/client-skills.d.ts.map +1 -1
  73. package/api/client-skills.js +116 -90
  74. package/api/client-transcripts.d.ts +42 -0
  75. package/api/client-transcripts.d.ts.map +1 -0
  76. package/api/client-transcripts.js +25 -0
  77. package/api/client-types-chat.d.ts +187 -3
  78. package/api/client-types-chat.d.ts.map +1 -1
  79. package/api/client-types-cloud.d.ts +318 -37
  80. package/api/client-types-cloud.d.ts.map +1 -1
  81. package/api/client-types-cloud.js +4 -4
  82. package/api/client-types-commands.d.ts +55 -0
  83. package/api/client-types-commands.d.ts.map +1 -0
  84. package/api/client-types-commands.js +7 -0
  85. package/api/client-types-config.d.ts +1023 -16
  86. package/api/client-types-config.d.ts.map +1 -1
  87. package/api/client-types-core.d.ts +109 -156
  88. package/api/client-types-core.d.ts.map +1 -1
  89. package/api/client-types-feed.d.ts +262 -0
  90. package/api/client-types-feed.d.ts.map +1 -0
  91. package/api/client-types-feed.js +2 -0
  92. package/api/client-types.d.ts +1 -1
  93. package/api/client-types.d.ts.map +1 -1
  94. package/api/client-types.js +1 -1
  95. package/api/client-voice-models.d.ts +67 -0
  96. package/api/client-voice-models.d.ts.map +1 -0
  97. package/api/client-voice-models.js +34 -0
  98. package/api/client-voice-profiles.d.ts +153 -0
  99. package/api/client-voice-profiles.d.ts.map +1 -0
  100. package/api/client-voice-profiles.js +261 -0
  101. package/api/client-workflow.d.ts +9 -1
  102. package/api/client-workflow.d.ts.map +1 -1
  103. package/api/client-workflow.js +29 -0
  104. package/api/client-xr.d.ts +18 -0
  105. package/api/client-xr.d.ts.map +1 -0
  106. package/api/client-xr.js +4 -0
  107. package/api/client.d.ts +10 -5
  108. package/api/client.d.ts.map +1 -1
  109. package/api/client.js +8 -3
  110. package/api/csrf-client.d.ts.map +1 -1
  111. package/api/csrf-client.js +11 -1
  112. package/api/desktop-http-transport.d.ts.map +1 -1
  113. package/api/desktop-http-transport.js +1 -25
  114. package/api/i18n-locale-client.d.ts +15 -0
  115. package/api/i18n-locale-client.d.ts.map +1 -0
  116. package/api/i18n-locale-client.js +36 -0
  117. package/api/index.d.ts +1 -0
  118. package/api/index.d.ts.map +1 -1
  119. package/api/index.js +1 -0
  120. package/api/ios-local-agent-kernel.d.ts.map +1 -1
  121. package/api/ios-local-agent-kernel.js +821 -116
  122. package/api/ios-local-agent-transport.d.ts +32 -0
  123. package/api/ios-local-agent-transport.d.ts.map +1 -1
  124. package/api/ios-local-agent-transport.js +564 -4
  125. package/api/ittp-agent-transport.d.ts +8 -1
  126. package/api/ittp-agent-transport.d.ts.map +1 -1
  127. package/api/ittp-agent-transport.js +11 -1
  128. package/api/native-agent-stream.d.ts +57 -0
  129. package/api/native-agent-stream.d.ts.map +1 -0
  130. package/api/native-agent-stream.js +126 -0
  131. package/api/native-cloud-http-transport.d.ts.map +1 -1
  132. package/api/native-cloud-http-transport.js +77 -28
  133. package/api/request-timeout.d.ts.map +1 -1
  134. package/api/request-timeout.js +47 -1
  135. package/api/runtime-mode-client.d.ts.map +1 -1
  136. package/api/transport.d.ts +14 -0
  137. package/api/transport.d.ts.map +1 -1
  138. package/api/transport.js +49 -0
  139. package/app-navigate-view.d.ts +57 -0
  140. package/app-navigate-view.d.ts.map +1 -0
  141. package/app-navigate-view.js +191 -0
  142. package/app-shell-components.d.ts +3 -13
  143. package/app-shell-components.d.ts.map +1 -1
  144. package/app-shell-components.js +11 -12
  145. package/app-shell-registry.d.ts +21 -4
  146. package/app-shell-registry.d.ts.map +1 -1
  147. package/app-shell-registry.js +17 -1
  148. package/backgrounds/BackgroundHost.d.ts +14 -0
  149. package/backgrounds/BackgroundHost.d.ts.map +1 -0
  150. package/backgrounds/BackgroundHost.js +20 -0
  151. package/backgrounds/index.d.ts +4 -0
  152. package/backgrounds/index.d.ts.map +1 -0
  153. package/backgrounds/index.js +2 -0
  154. package/backgrounds/types.d.ts +13 -0
  155. package/backgrounds/types.d.ts.map +1 -0
  156. package/backgrounds/types.js +12 -0
  157. package/bridge/capacitor-bridge.d.ts.map +1 -1
  158. package/bridge/capacitor-bridge.js +18 -2
  159. package/bridge/electrobun-rpc.d.ts +115 -0
  160. package/bridge/electrobun-rpc.d.ts.map +1 -1
  161. package/bridge/electrobun-rpc.js +128 -1
  162. package/bridge/electrobun-runtime.d.ts.map +1 -1
  163. package/bridge/electrobun-runtime.js +33 -5
  164. package/bridge/gateway-discovery.d.ts.map +1 -1
  165. package/bridge/gateway-discovery.js +3 -1
  166. package/bridge/native-notifications.d.ts +40 -0
  167. package/bridge/native-notifications.d.ts.map +1 -0
  168. package/bridge/native-notifications.js +166 -0
  169. package/bridge/native-plugins.d.ts +231 -5
  170. package/bridge/native-plugins.d.ts.map +1 -1
  171. package/bridge/native-plugins.js +9 -0
  172. package/bridge/plugin-bridge.d.ts +1 -1
  173. package/bridge/plugin-bridge.d.ts.map +1 -1
  174. package/bridge/plugin-bridge.js +2 -10
  175. package/bridge/storage-bridge.d.ts.map +1 -1
  176. package/bridge/storage-bridge.js +163 -32
  177. package/browser.d.ts +86 -18
  178. package/browser.d.ts.map +1 -1
  179. package/browser.js +95 -18
  180. package/build-variant.d.ts +1 -1
  181. package/build-variant.js +3 -3
  182. package/cache-telemetry.d.ts +16 -0
  183. package/cache-telemetry.d.ts.map +1 -0
  184. package/cache-telemetry.js +26 -0
  185. package/chat/index.d.ts.map +1 -1
  186. package/chat/index.js +0 -1
  187. package/chat/slash-menu.d.ts +105 -0
  188. package/chat/slash-menu.d.ts.map +1 -0
  189. package/chat/slash-menu.js +259 -0
  190. package/chat/useSlashCommandController.d.ts +31 -0
  191. package/chat/useSlashCommandController.d.ts.map +1 -0
  192. package/chat/useSlashCommandController.js +192 -0
  193. package/cloud/account-security/AccountRoute.d.ts +22 -0
  194. package/cloud/account-security/AccountRoute.d.ts.map +1 -0
  195. package/cloud/account-security/AccountRoute.js +50 -0
  196. package/cloud/account-security/AccountSection.d.ts +12 -0
  197. package/cloud/account-security/AccountSection.d.ts.map +1 -0
  198. package/cloud/account-security/AccountSection.js +16 -0
  199. package/cloud/account-security/PermissionsRoute.d.ts +21 -0
  200. package/cloud/account-security/PermissionsRoute.d.ts.map +1 -0
  201. package/cloud/account-security/PermissionsRoute.js +33 -0
  202. package/cloud/account-security/PermissionsSection.d.ts +11 -0
  203. package/cloud/account-security/PermissionsSection.d.ts.map +1 -0
  204. package/cloud/account-security/PermissionsSection.js +15 -0
  205. package/cloud/account-security/SecurityRoute.d.ts +20 -0
  206. package/cloud/account-security/SecurityRoute.d.ts.map +1 -0
  207. package/cloud/account-security/SecurityRoute.js +42 -0
  208. package/cloud/account-security/SecuritySection.d.ts +10 -0
  209. package/cloud/account-security/SecuritySection.d.ts.map +1 -0
  210. package/cloud/account-security/SecuritySection.js +14 -0
  211. package/cloud/account-security/components/AuditEventList.d.ts +20 -0
  212. package/cloud/account-security/components/AuditEventList.d.ts.map +1 -0
  213. package/cloud/account-security/components/AuditEventList.js +30 -0
  214. package/cloud/account-security/components/account-details.d.ts +12 -0
  215. package/cloud/account-security/components/account-details.d.ts.map +1 -0
  216. package/cloud/account-security/components/account-details.js +54 -0
  217. package/cloud/account-security/components/account-page-client.d.ts +16 -0
  218. package/cloud/account-security/components/account-page-client.d.ts.map +1 -0
  219. package/cloud/account-security/components/account-page-client.js +26 -0
  220. package/cloud/account-security/components/active-sessions-panel.d.ts +10 -0
  221. package/cloud/account-security/components/active-sessions-panel.d.ts.map +1 -0
  222. package/cloud/account-security/components/active-sessions-panel.js +93 -0
  223. package/cloud/account-security/components/api-keys-link.d.ts +8 -0
  224. package/cloud/account-security/components/api-keys-link.d.ts.map +1 -0
  225. package/cloud/account-security/components/api-keys-link.js +17 -0
  226. package/cloud/account-security/components/incident-report-panel.d.ts +7 -0
  227. package/cloud/account-security/components/incident-report-panel.d.ts.map +1 -0
  228. package/cloud/account-security/components/incident-report-panel.js +65 -0
  229. package/cloud/account-security/components/mfa-panel.d.ts +11 -0
  230. package/cloud/account-security/components/mfa-panel.d.ts.map +1 -0
  231. package/cloud/account-security/components/mfa-panel.js +66 -0
  232. package/cloud/account-security/components/organization-info.d.ts +13 -0
  233. package/cloud/account-security/components/organization-info.d.ts.map +1 -0
  234. package/cloud/account-security/components/organization-info.js +46 -0
  235. package/cloud/account-security/components/plugin-permissions-page-client.d.ts +10 -0
  236. package/cloud/account-security/components/plugin-permissions-page-client.d.ts.map +1 -0
  237. package/cloud/account-security/components/plugin-permissions-page-client.js +72 -0
  238. package/cloud/account-security/components/privacy-panel.d.ts +12 -0
  239. package/cloud/account-security/components/privacy-panel.d.ts.map +1 -0
  240. package/cloud/account-security/components/privacy-panel.js +161 -0
  241. package/cloud/account-security/components/profile-form.d.ts +21 -0
  242. package/cloud/account-security/components/profile-form.d.ts.map +1 -0
  243. package/cloud/account-security/components/profile-form.js +255 -0
  244. package/cloud/account-security/components/recent-audit-events.d.ts +7 -0
  245. package/cloud/account-security/components/recent-audit-events.d.ts.map +1 -0
  246. package/cloud/account-security/components/recent-audit-events.js +48 -0
  247. package/cloud/account-security/data/audit-client.d.ts +33 -0
  248. package/cloud/account-security/data/audit-client.d.ts.map +1 -0
  249. package/cloud/account-security/data/audit-client.js +37 -0
  250. package/cloud/account-security/data/consent-store.d.ts +11 -0
  251. package/cloud/account-security/data/consent-store.d.ts.map +1 -0
  252. package/cloud/account-security/data/consent-store.js +45 -0
  253. package/cloud/account-security/data/use-session-auth.d.ts +39 -0
  254. package/cloud/account-security/data/use-session-auth.d.ts.map +1 -0
  255. package/cloud/account-security/data/use-session-auth.js +95 -0
  256. package/cloud/account-security/data/user.d.ts +238 -0
  257. package/cloud/account-security/data/user.d.ts.map +1 -0
  258. package/cloud/account-security/data/user.js +77 -0
  259. package/cloud/account-security/index.d.ts +44 -0
  260. package/cloud/account-security/index.d.ts.map +1 -0
  261. package/cloud/account-security/index.js +66 -0
  262. package/cloud/account-security/use-document-title.d.ts +10 -0
  263. package/cloud/account-security/use-document-title.d.ts.map +1 -0
  264. package/cloud/account-security/use-document-title.js +20 -0
  265. package/cloud/admin/AdminGate.d.ts +24 -0
  266. package/cloud/admin/AdminGate.d.ts.map +1 -0
  267. package/cloud/admin/AdminGate.js +84 -0
  268. package/cloud/admin/ModerationPage.d.ts +16 -0
  269. package/cloud/admin/ModerationPage.d.ts.map +1 -0
  270. package/cloud/admin/ModerationPage.js +234 -0
  271. package/cloud/admin/ModerationRoute.d.ts +3 -0
  272. package/cloud/admin/ModerationRoute.d.ts.map +1 -0
  273. package/cloud/admin/ModerationRoute.js +7 -0
  274. package/cloud/admin/RedemptionsPage.d.ts +21 -0
  275. package/cloud/admin/RedemptionsPage.d.ts.map +1 -0
  276. package/cloud/admin/RedemptionsPage.js +322 -0
  277. package/cloud/admin/RedemptionsRoute.d.ts +3 -0
  278. package/cloud/admin/RedemptionsRoute.d.ts.map +1 -0
  279. package/cloud/admin/RedemptionsRoute.js +7 -0
  280. package/cloud/admin/RpcStatusPage.d.ts +12 -0
  281. package/cloud/admin/RpcStatusPage.d.ts.map +1 -0
  282. package/cloud/admin/RpcStatusPage.js +54 -0
  283. package/cloud/admin/RpcStatusRoute.d.ts +3 -0
  284. package/cloud/admin/RpcStatusRoute.d.ts.map +1 -0
  285. package/cloud/admin/RpcStatusRoute.js +7 -0
  286. package/cloud/admin/data/use-admin-gate.d.ts +48 -0
  287. package/cloud/admin/data/use-admin-gate.d.ts.map +1 -0
  288. package/cloud/admin/data/use-admin-gate.js +93 -0
  289. package/cloud/admin/index.d.ts +48 -0
  290. package/cloud/admin/index.d.ts.map +1 -0
  291. package/cloud/admin/index.js +69 -0
  292. package/cloud/admin/lib/format-usd.d.ts +11 -0
  293. package/cloud/admin/lib/format-usd.d.ts.map +1 -0
  294. package/cloud/admin/lib/format-usd.js +18 -0
  295. package/cloud/admin/use-document-title.d.ts +10 -0
  296. package/cloud/admin/use-document-title.d.ts.map +1 -0
  297. package/cloud/admin/use-document-title.js +20 -0
  298. package/cloud/analytics/Page.d.ts +17 -0
  299. package/cloud/analytics/Page.d.ts.map +1 -0
  300. package/cloud/analytics/Page.js +46 -0
  301. package/cloud/analytics/_components/analytics-page-client.d.ts +18 -0
  302. package/cloud/analytics/_components/analytics-page-client.d.ts.map +1 -0
  303. package/cloud/analytics/_components/analytics-page-client.js +166 -0
  304. package/cloud/analytics/_components/filters.d.ts +2 -0
  305. package/cloud/analytics/_components/filters.d.ts.map +1 -0
  306. package/cloud/analytics/_components/filters.js +101 -0
  307. package/cloud/analytics/_components/model-breakdown.d.ts +12 -0
  308. package/cloud/analytics/_components/model-breakdown.d.ts.map +1 -0
  309. package/cloud/analytics/_components/model-breakdown.js +69 -0
  310. package/cloud/analytics/_components/projections-chart.d.ts +13 -0
  311. package/cloud/analytics/_components/projections-chart.d.ts.map +1 -0
  312. package/cloud/analytics/_components/projections-chart.js +123 -0
  313. package/cloud/analytics/_components/provider-breakdown.d.ts +12 -0
  314. package/cloud/analytics/_components/provider-breakdown.d.ts.map +1 -0
  315. package/cloud/analytics/_components/provider-breakdown.js +48 -0
  316. package/cloud/analytics/_components/usage-chart.d.ts +18 -0
  317. package/cloud/analytics/_components/usage-chart.d.ts.map +1 -0
  318. package/cloud/analytics/_components/usage-chart.js +117 -0
  319. package/cloud/analytics/index.d.ts +17 -0
  320. package/cloud/analytics/index.d.ts.map +1 -0
  321. package/cloud/analytics/index.js +23 -0
  322. package/cloud/analytics/lib/analytics-data.d.ts +41 -0
  323. package/cloud/analytics/lib/analytics-data.d.ts.map +1 -0
  324. package/cloud/analytics/lib/analytics-data.js +55 -0
  325. package/cloud/analytics/lib/auth-query.d.ts +23 -0
  326. package/cloud/analytics/lib/auth-query.d.ts.map +1 -0
  327. package/cloud/analytics/lib/auth-query.js +30 -0
  328. package/cloud/analytics/lib/format.d.ts +14 -0
  329. package/cloud/analytics/lib/format.d.ts.map +1 -0
  330. package/cloud/analytics/lib/format.js +15 -0
  331. package/cloud/analytics/lib/time-range.d.ts +14 -0
  332. package/cloud/analytics/lib/time-range.d.ts.map +1 -0
  333. package/cloud/analytics/lib/time-range.js +28 -0
  334. package/cloud/api-explorer/ApiExplorerPage.d.ts +23 -0
  335. package/cloud/api-explorer/ApiExplorerPage.d.ts.map +1 -0
  336. package/cloud/api-explorer/ApiExplorerPage.js +216 -0
  337. package/cloud/api-explorer/api-tester.d.ts +22 -0
  338. package/cloud/api-explorer/api-tester.d.ts.map +1 -0
  339. package/cloud/api-explorer/api-tester.js +433 -0
  340. package/cloud/api-explorer/auth-manager.d.ts +19 -0
  341. package/cloud/api-explorer/auth-manager.d.ts.map +1 -0
  342. package/cloud/api-explorer/auth-manager.js +49 -0
  343. package/cloud/api-explorer/index.d.ts +44 -0
  344. package/cloud/api-explorer/index.d.ts.map +1 -0
  345. package/cloud/api-explorer/index.js +53 -0
  346. package/cloud/api-explorer/toast.d.ts +10 -0
  347. package/cloud/api-explorer/toast.d.ts.map +1 -0
  348. package/cloud/api-explorer/toast.js +16 -0
  349. package/cloud/api-explorer/use-document-title.d.ts +11 -0
  350. package/cloud/api-explorer/use-document-title.d.ts.map +1 -0
  351. package/cloud/api-explorer/use-document-title.js +21 -0
  352. package/cloud/api-explorer/use-explorer-api-key.d.ts +30 -0
  353. package/cloud/api-explorer/use-explorer-api-key.d.ts.map +1 -0
  354. package/cloud/api-explorer/use-explorer-api-key.js +57 -0
  355. package/cloud/api-explorer/use-session-auth.d.ts +44 -0
  356. package/cloud/api-explorer/use-session-auth.d.ts.map +1 -0
  357. package/cloud/api-explorer/use-session-auth.js +152 -0
  358. package/cloud/api-keys/ApiKeysRoute.d.ts +20 -0
  359. package/cloud/api-keys/ApiKeysRoute.d.ts.map +1 -0
  360. package/cloud/api-keys/ApiKeysRoute.js +84 -0
  361. package/cloud/api-keys/ApiKeysSection.d.ts +15 -0
  362. package/cloud/api-keys/ApiKeysSection.d.ts.map +1 -0
  363. package/cloud/api-keys/ApiKeysSection.js +18 -0
  364. package/cloud/api-keys/ApiKeysView.d.ts +27 -0
  365. package/cloud/api-keys/ApiKeysView.d.ts.map +1 -0
  366. package/cloud/api-keys/ApiKeysView.js +312 -0
  367. package/cloud/api-keys/auth-gate.d.ts +28 -0
  368. package/cloud/api-keys/auth-gate.d.ts.map +1 -0
  369. package/cloud/api-keys/auth-gate.js +33 -0
  370. package/cloud/api-keys/copy-api-key.d.ts +31 -0
  371. package/cloud/api-keys/copy-api-key.d.ts.map +1 -0
  372. package/cloud/api-keys/copy-api-key.js +35 -0
  373. package/cloud/api-keys/index.d.ts +42 -0
  374. package/cloud/api-keys/index.d.ts.map +1 -0
  375. package/cloud/api-keys/index.js +50 -0
  376. package/cloud/api-keys/use-api-keys.d.ts +25 -0
  377. package/cloud/api-keys/use-api-keys.d.ts.map +1 -0
  378. package/cloud/api-keys/use-api-keys.js +29 -0
  379. package/cloud/api-keys/use-document-title.d.ts +10 -0
  380. package/cloud/api-keys/use-document-title.d.ts.map +1 -0
  381. package/cloud/api-keys/use-document-title.js +20 -0
  382. package/cloud/applications/ApplicationDetailPage.d.ts +10 -0
  383. package/cloud/applications/ApplicationDetailPage.d.ts.map +1 -0
  384. package/cloud/applications/ApplicationDetailPage.js +71 -0
  385. package/cloud/applications/ApplicationsPage.d.ts +12 -0
  386. package/cloud/applications/ApplicationsPage.d.ts.map +1 -0
  387. package/cloud/applications/ApplicationsPage.js +43 -0
  388. package/cloud/applications/components/app-analytics.d.ts +12 -0
  389. package/cloud/applications/components/app-analytics.d.ts.map +1 -0
  390. package/cloud/applications/components/app-analytics.js +207 -0
  391. package/cloud/applications/components/app-details-tabs.d.ts +14 -0
  392. package/cloud/applications/components/app-details-tabs.d.ts.map +1 -0
  393. package/cloud/applications/components/app-details-tabs.js +81 -0
  394. package/cloud/applications/components/app-domains.d.ts +13 -0
  395. package/cloud/applications/components/app-domains.d.ts.map +1 -0
  396. package/cloud/applications/components/app-domains.js +348 -0
  397. package/cloud/applications/components/app-earnings-dashboard.d.ts +11 -0
  398. package/cloud/applications/components/app-earnings-dashboard.d.ts.map +1 -0
  399. package/cloud/applications/components/app-earnings-dashboard.js +130 -0
  400. package/cloud/applications/components/app-monetization-settings.d.ts +12 -0
  401. package/cloud/applications/components/app-monetization-settings.d.ts.map +1 -0
  402. package/cloud/applications/components/app-monetization-settings.js +201 -0
  403. package/cloud/applications/components/app-overview.d.ts +14 -0
  404. package/cloud/applications/components/app-overview.d.ts.map +1 -0
  405. package/cloud/applications/components/app-overview.js +153 -0
  406. package/cloud/applications/components/app-promote.d.ts +22 -0
  407. package/cloud/applications/components/app-promote.d.ts.map +1 -0
  408. package/cloud/applications/components/app-promote.js +97 -0
  409. package/cloud/applications/components/app-settings.d.ts +15 -0
  410. package/cloud/applications/components/app-settings.d.ts.map +1 -0
  411. package/cloud/applications/components/app-settings.js +193 -0
  412. package/cloud/applications/components/app-users.d.ts +12 -0
  413. package/cloud/applications/components/app-users.d.ts.map +1 -0
  414. package/cloud/applications/components/app-users.js +82 -0
  415. package/cloud/applications/components/apps-table.d.ts +15 -0
  416. package/cloud/applications/components/apps-table.d.ts.map +1 -0
  417. package/cloud/applications/components/apps-table.js +74 -0
  418. package/cloud/applications/components/create-app-button.d.ts +6 -0
  419. package/cloud/applications/components/create-app-button.d.ts.map +1 -0
  420. package/cloud/applications/components/create-app-button.js +15 -0
  421. package/cloud/applications/components/create-app-dialog.d.ts +20 -0
  422. package/cloud/applications/components/create-app-dialog.d.ts.map +1 -0
  423. package/cloud/applications/components/create-app-dialog.js +157 -0
  424. package/cloud/applications/components/single-app-page-wrapper.d.ts +12 -0
  425. package/cloud/applications/components/single-app-page-wrapper.d.ts.map +1 -0
  426. package/cloud/applications/components/single-app-page-wrapper.js +5 -0
  427. package/cloud/applications/components/withdraw-dialog.d.ts +20 -0
  428. package/cloud/applications/components/withdraw-dialog.d.ts.map +1 -0
  429. package/cloud/applications/components/withdraw-dialog.js +60 -0
  430. package/cloud/applications/index.d.ts +39 -0
  431. package/cloud/applications/index.d.ts.map +1 -0
  432. package/cloud/applications/index.js +54 -0
  433. package/cloud/applications/lib/apps.d.ts +53 -0
  434. package/cloud/applications/lib/apps.d.ts.map +1 -0
  435. package/cloud/applications/lib/apps.js +80 -0
  436. package/cloud/applications/lib/auth-query.d.ts +14 -0
  437. package/cloud/applications/lib/auth-query.d.ts.map +1 -0
  438. package/cloud/applications/lib/auth-query.js +18 -0
  439. package/cloud/applications/lib/one-time-app-api-key.d.ts +12 -0
  440. package/cloud/applications/lib/one-time-app-api-key.d.ts.map +1 -0
  441. package/cloud/applications/lib/one-time-app-api-key.js +22 -0
  442. package/cloud/applications/lib/use-copy-feedback.d.ts +9 -0
  443. package/cloud/applications/lib/use-copy-feedback.d.ts.map +1 -0
  444. package/cloud/applications/lib/use-copy-feedback.js +13 -0
  445. package/cloud/applications/lib/use-session-auth.d.ts +28 -0
  446. package/cloud/applications/lib/use-session-auth.d.ts.map +1 -0
  447. package/cloud/applications/lib/use-session-auth.js +97 -0
  448. package/cloud/applications/lib/utils.d.ts +7 -0
  449. package/cloud/applications/lib/utils.d.ts.map +1 -0
  450. package/cloud/applications/lib/utils.js +9 -0
  451. package/cloud/approvals/ApprovalsRoute.d.ts +27 -0
  452. package/cloud/approvals/ApprovalsRoute.d.ts.map +1 -0
  453. package/cloud/approvals/ApprovalsRoute.js +45 -0
  454. package/cloud/approvals/components/approvals-tab.d.ts +14 -0
  455. package/cloud/approvals/components/approvals-tab.d.ts.map +1 -0
  456. package/cloud/approvals/components/approvals-tab.js +98 -0
  457. package/cloud/approvals/components/ballots-tab.d.ts +8 -0
  458. package/cloud/approvals/components/ballots-tab.d.ts.map +1 -0
  459. package/cloud/approvals/components/ballots-tab.js +86 -0
  460. package/cloud/approvals/components/sensitive-tab.d.ts +13 -0
  461. package/cloud/approvals/components/sensitive-tab.d.ts.map +1 -0
  462. package/cloud/approvals/components/sensitive-tab.js +50 -0
  463. package/cloud/approvals/components/status-badge.d.ts +13 -0
  464. package/cloud/approvals/components/status-badge.d.ts.map +1 -0
  465. package/cloud/approvals/components/status-badge.js +49 -0
  466. package/cloud/approvals/index.d.ts +32 -0
  467. package/cloud/approvals/index.d.ts.map +1 -0
  468. package/cloud/approvals/index.js +41 -0
  469. package/cloud/approvals/lib/approvals.d.ts +164 -0
  470. package/cloud/approvals/lib/approvals.d.ts.map +1 -0
  471. package/cloud/approvals/lib/approvals.js +186 -0
  472. package/cloud/approvals/lib/auth-query.d.ts +18 -0
  473. package/cloud/approvals/lib/auth-query.d.ts.map +1 -0
  474. package/cloud/approvals/lib/auth-query.js +22 -0
  475. package/cloud/approvals/lib/use-session-auth.d.ts +28 -0
  476. package/cloud/approvals/lib/use-session-auth.d.ts.map +1 -0
  477. package/cloud/approvals/lib/use-session-auth.js +97 -0
  478. package/cloud/approvals/lib/wallet-sign.d.ts +33 -0
  479. package/cloud/approvals/lib/wallet-sign.d.ts.map +1 -0
  480. package/cloud/approvals/lib/wallet-sign.js +79 -0
  481. package/cloud/billing/BillingSection.d.ts +18 -0
  482. package/cloud/billing/BillingSection.d.ts.map +1 -0
  483. package/cloud/billing/BillingSection.js +52 -0
  484. package/cloud/billing/BillingSuccessPage.d.ts +13 -0
  485. package/cloud/billing/BillingSuccessPage.d.ts.map +1 -0
  486. package/cloud/billing/BillingSuccessPage.js +78 -0
  487. package/cloud/billing/InvoiceDetailPage.d.ts +7 -0
  488. package/cloud/billing/InvoiceDetailPage.d.ts.map +1 -0
  489. package/cloud/billing/InvoiceDetailPage.js +38 -0
  490. package/cloud/billing/components/auto-top-up-card.d.ts +12 -0
  491. package/cloud/billing/components/auto-top-up-card.d.ts.map +1 -0
  492. package/cloud/billing/components/auto-top-up-card.js +137 -0
  493. package/cloud/billing/components/billing-tab.d.ts +18 -0
  494. package/cloud/billing/components/billing-tab.d.ts.map +1 -0
  495. package/cloud/billing/components/billing-tab.js +222 -0
  496. package/cloud/billing/components/direct-crypto-credit-card.d.ts +14 -0
  497. package/cloud/billing/components/direct-crypto-credit-card.d.ts.map +1 -0
  498. package/cloud/billing/components/direct-crypto-credit-card.js +329 -0
  499. package/cloud/billing/components/invoice-detail-client.d.ts +12 -0
  500. package/cloud/billing/components/invoice-detail-client.d.ts.map +1 -0
  501. package/cloud/billing/components/invoice-detail-client.js +81 -0
  502. package/cloud/billing/components/numeric-field.d.ts +13 -0
  503. package/cloud/billing/components/numeric-field.d.ts.map +1 -0
  504. package/cloud/billing/components/numeric-field.js +7 -0
  505. package/cloud/billing/components/pay-as-you-go-card.d.ts +11 -0
  506. package/cloud/billing/components/pay-as-you-go-card.d.ts.map +1 -0
  507. package/cloud/billing/components/pay-as-you-go-card.js +50 -0
  508. package/cloud/billing/components/payment-waiting-overlay.d.ts +36 -0
  509. package/cloud/billing/components/payment-waiting-overlay.d.ts.map +1 -0
  510. package/cloud/billing/components/payment-waiting-overlay.js +138 -0
  511. package/cloud/billing/components/success-client.d.ts +11 -0
  512. package/cloud/billing/components/success-client.d.ts.map +1 -0
  513. package/cloud/billing/components/success-client.js +64 -0
  514. package/cloud/billing/data/billing-data.d.ts +211 -0
  515. package/cloud/billing/data/billing-data.d.ts.map +1 -0
  516. package/cloud/billing/data/billing-data.js +120 -0
  517. package/cloud/billing/index.d.ts +26 -0
  518. package/cloud/billing/index.d.ts.map +1 -0
  519. package/cloud/billing/index.js +28 -0
  520. package/cloud/billing/routes.d.ts +16 -0
  521. package/cloud/billing/routes.d.ts.map +1 -0
  522. package/cloud/billing/routes.js +34 -0
  523. package/cloud/billing/types.d.ts +142 -0
  524. package/cloud/billing/types.d.ts.map +1 -0
  525. package/cloud/billing/types.js +12 -0
  526. package/cloud/billing/use-session-auth.d.ts +43 -0
  527. package/cloud/billing/use-session-auth.d.ts.map +1 -0
  528. package/cloud/billing/use-session-auth.js +138 -0
  529. package/cloud/billing/wallet/ConditionalWalletProviders.d.ts +18 -0
  530. package/cloud/billing/wallet/ConditionalWalletProviders.d.ts.map +1 -0
  531. package/cloud/billing/wallet/ConditionalWalletProviders.js +79 -0
  532. package/cloud/billing/wallet/steward-wallet-providers.d.ts +17 -0
  533. package/cloud/billing/wallet/steward-wallet-providers.d.ts.map +1 -0
  534. package/cloud/billing/wallet/steward-wallet-providers.js +59 -0
  535. package/cloud/connectors/CloudConnectorsSection.d.ts +12 -0
  536. package/cloud/connectors/CloudConnectorsSection.d.ts.map +1 -0
  537. package/cloud/connectors/CloudConnectorsSection.js +33 -0
  538. package/cloud/connectors/blooio-connection.d.ts +10 -0
  539. package/cloud/connectors/blooio-connection.d.ts.map +1 -0
  540. package/cloud/connectors/blooio-connection.js +230 -0
  541. package/cloud/connectors/discord-gateway-connection.d.ts +11 -0
  542. package/cloud/connectors/discord-gateway-connection.d.ts.map +1 -0
  543. package/cloud/connectors/discord-gateway-connection.js +480 -0
  544. package/cloud/connectors/google-connection.d.ts +10 -0
  545. package/cloud/connectors/google-connection.d.ts.map +1 -0
  546. package/cloud/connectors/google-connection.js +109 -0
  547. package/cloud/connectors/index.d.ts +50 -0
  548. package/cloud/connectors/index.d.ts.map +1 -0
  549. package/cloud/connectors/index.js +74 -0
  550. package/cloud/connectors/microsoft-connection.d.ts +10 -0
  551. package/cloud/connectors/microsoft-connection.d.ts.map +1 -0
  552. package/cloud/connectors/microsoft-connection.js +133 -0
  553. package/cloud/connectors/oauth-connection.d.ts +52 -0
  554. package/cloud/connectors/oauth-connection.d.ts.map +1 -0
  555. package/cloud/connectors/oauth-connection.js +114 -0
  556. package/cloud/connectors/telegram-connection.d.ts +11 -0
  557. package/cloud/connectors/telegram-connection.d.ts.map +1 -0
  558. package/cloud/connectors/telegram-connection.js +158 -0
  559. package/cloud/connectors/twilio-connection.d.ts +10 -0
  560. package/cloud/connectors/twilio-connection.d.ts.map +1 -0
  561. package/cloud/connectors/twilio-connection.js +189 -0
  562. package/cloud/connectors/use-connection-status.d.ts +13 -0
  563. package/cloud/connectors/use-connection-status.d.ts.map +1 -0
  564. package/cloud/connectors/use-connection-status.js +45 -0
  565. package/cloud/connectors/whatsapp-connection.d.ts +11 -0
  566. package/cloud/connectors/whatsapp-connection.d.ts.map +1 -0
  567. package/cloud/connectors/whatsapp-connection.js +223 -0
  568. package/cloud/documents/DocumentsRoute.d.ts +21 -0
  569. package/cloud/documents/DocumentsRoute.d.ts.map +1 -0
  570. package/cloud/documents/DocumentsRoute.js +45 -0
  571. package/cloud/documents/DocumentsSection.d.ts +15 -0
  572. package/cloud/documents/DocumentsSection.d.ts.map +1 -0
  573. package/cloud/documents/DocumentsSection.js +18 -0
  574. package/cloud/documents/components/document-list.d.ts +19 -0
  575. package/cloud/documents/components/document-list.d.ts.map +1 -0
  576. package/cloud/documents/components/document-list.js +75 -0
  577. package/cloud/documents/components/document-query.d.ts +15 -0
  578. package/cloud/documents/components/document-query.d.ts.map +1 -0
  579. package/cloud/documents/components/document-query.js +92 -0
  580. package/cloud/documents/components/document-upload.d.ts +16 -0
  581. package/cloud/documents/components/document-upload.d.ts.map +1 -0
  582. package/cloud/documents/components/document-upload.js +180 -0
  583. package/cloud/documents/components/documents-page-client.d.ts +20 -0
  584. package/cloud/documents/components/documents-page-client.d.ts.map +1 -0
  585. package/cloud/documents/components/documents-page-client.js +80 -0
  586. package/cloud/documents/index.d.ts +37 -0
  587. package/cloud/documents/index.d.ts.map +1 -0
  588. package/cloud/documents/index.js +45 -0
  589. package/cloud/documents/lib/agents.d.ts +23 -0
  590. package/cloud/documents/lib/agents.d.ts.map +1 -0
  591. package/cloud/documents/lib/agents.js +26 -0
  592. package/cloud/documents/lib/auth-query.d.ts +17 -0
  593. package/cloud/documents/lib/auth-query.d.ts.map +1 -0
  594. package/cloud/documents/lib/auth-query.js +21 -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/documents/lib/use-session-auth.d.ts +27 -0
  599. package/cloud/documents/lib/use-session-auth.d.ts.map +1 -0
  600. package/cloud/documents/lib/use-session-auth.js +96 -0
  601. package/cloud/documents/use-document-title.d.ts +11 -0
  602. package/cloud/documents/use-document-title.d.ts.map +1 -0
  603. package/cloud/documents/use-document-title.js +21 -0
  604. package/cloud/handoff/__integration__/two-agent-handoff.d.mts +2 -0
  605. package/cloud/handoff/__integration__/two-agent-handoff.d.mts.map +1 -0
  606. package/cloud/handoff/__integration__/two-agent-handoff.mjs +114 -0
  607. package/cloud/handoff/cloud-handoff-supervisor.d.ts +47 -0
  608. package/cloud/handoff/cloud-handoff-supervisor.d.ts.map +1 -0
  609. package/cloud/handoff/cloud-handoff-supervisor.js +67 -0
  610. package/cloud/handoff/conversation-handoff.d.ts +73 -0
  611. package/cloud/handoff/conversation-handoff.d.ts.map +1 -0
  612. package/cloud/handoff/conversation-handoff.js +98 -0
  613. package/cloud/index.d.ts +14 -0
  614. package/cloud/index.d.ts.map +1 -0
  615. package/cloud/index.js +13 -0
  616. package/cloud/instances/AgentChatPage.d.ts +13 -0
  617. package/cloud/instances/AgentChatPage.d.ts.map +1 -0
  618. package/cloud/instances/AgentChatPage.js +217 -0
  619. package/cloud/instances/AgentDetailPage.d.ts +6 -0
  620. package/cloud/instances/AgentDetailPage.d.ts.map +1 -0
  621. package/cloud/instances/AgentDetailPage.js +169 -0
  622. package/cloud/instances/AgentsPage.d.ts +6 -0
  623. package/cloud/instances/AgentsPage.d.ts.map +1 -0
  624. package/cloud/instances/AgentsPage.js +50 -0
  625. package/cloud/instances/MyAgentsPage.d.ts +7 -0
  626. package/cloud/instances/MyAgentsPage.d.ts.map +1 -0
  627. package/cloud/instances/MyAgentsPage.js +22 -0
  628. package/cloud/instances/components/agent-actions.d.ts +10 -0
  629. package/cloud/instances/components/agent-actions.d.ts.map +1 -0
  630. package/cloud/instances/components/agent-actions.js +231 -0
  631. package/cloud/instances/components/agent-card.d.ts +35 -0
  632. package/cloud/instances/components/agent-card.d.ts.map +1 -0
  633. package/cloud/instances/components/agent-card.js +287 -0
  634. package/cloud/instances/components/agent-cost-badge.d.ts +10 -0
  635. package/cloud/instances/components/agent-cost-badge.d.ts.map +1 -0
  636. package/cloud/instances/components/agent-cost-badge.js +25 -0
  637. package/cloud/instances/components/character-filters.d.ts +23 -0
  638. package/cloud/instances/components/character-filters.d.ts.map +1 -0
  639. package/cloud/instances/components/character-filters.js +36 -0
  640. package/cloud/instances/components/character-library-grid.d.ts +18 -0
  641. package/cloud/instances/components/character-library-grid.d.ts.map +1 -0
  642. package/cloud/instances/components/character-library-grid.js +17 -0
  643. package/cloud/instances/components/create-eliza-agent-dialog.d.ts +10 -0
  644. package/cloud/instances/components/create-eliza-agent-dialog.d.ts.map +1 -0
  645. package/cloud/instances/components/create-eliza-agent-dialog.js +376 -0
  646. package/cloud/instances/components/docker-logs-viewer.d.ts +8 -0
  647. package/cloud/instances/components/docker-logs-viewer.d.ts.map +1 -0
  648. package/cloud/instances/components/docker-logs-viewer.js +107 -0
  649. package/cloud/instances/components/eliza-agent-backups-panel.d.ts +8 -0
  650. package/cloud/instances/components/eliza-agent-backups-panel.d.ts.map +1 -0
  651. package/cloud/instances/components/eliza-agent-backups-panel.js +112 -0
  652. package/cloud/instances/components/eliza-agent-logs-viewer.d.ts +9 -0
  653. package/cloud/instances/components/eliza-agent-logs-viewer.d.ts.map +1 -0
  654. package/cloud/instances/components/eliza-agent-logs-viewer.js +180 -0
  655. package/cloud/instances/components/eliza-agent-pricing-banner.d.ts +13 -0
  656. package/cloud/instances/components/eliza-agent-pricing-banner.d.ts.map +1 -0
  657. package/cloud/instances/components/eliza-agent-pricing-banner.js +47 -0
  658. package/cloud/instances/components/eliza-agent-tabs.d.ts +8 -0
  659. package/cloud/instances/components/eliza-agent-tabs.d.ts.map +1 -0
  660. package/cloud/instances/components/eliza-agent-tabs.js +27 -0
  661. package/cloud/instances/components/eliza-agents-table.d.ts +25 -0
  662. package/cloud/instances/components/eliza-agents-table.d.ts.map +1 -0
  663. package/cloud/instances/components/eliza-agents-table.js +536 -0
  664. package/cloud/instances/components/eliza-connect-button.d.ts +6 -0
  665. package/cloud/instances/components/eliza-connect-button.d.ts.map +1 -0
  666. package/cloud/instances/components/eliza-connect-button.js +10 -0
  667. package/cloud/instances/components/eliza-policies-section.d.ts +6 -0
  668. package/cloud/instances/components/eliza-policies-section.d.ts.map +1 -0
  669. package/cloud/instances/components/eliza-policies-section.js +71 -0
  670. package/cloud/instances/components/eliza-transactions-section.d.ts +6 -0
  671. package/cloud/instances/components/eliza-transactions-section.d.ts.map +1 -0
  672. package/cloud/instances/components/eliza-transactions-section.js +147 -0
  673. package/cloud/instances/components/eliza-wallet-section.d.ts +6 -0
  674. package/cloud/instances/components/eliza-wallet-section.d.ts.map +1 -0
  675. package/cloud/instances/components/eliza-wallet-section.js +127 -0
  676. package/cloud/instances/components/empty-state.d.ts +6 -0
  677. package/cloud/instances/components/empty-state.d.ts.map +1 -0
  678. package/cloud/instances/components/empty-state.js +23 -0
  679. package/cloud/instances/components/my-agents.d.ts +8 -0
  680. package/cloud/instances/components/my-agents.d.ts.map +1 -0
  681. package/cloud/instances/components/my-agents.js +268 -0
  682. package/cloud/instances/components/types.d.ts +3 -0
  683. package/cloud/instances/components/types.d.ts.map +1 -0
  684. package/cloud/instances/components/types.js +1 -0
  685. package/cloud/instances/index.d.ts +36 -0
  686. package/cloud/instances/index.d.ts.map +1 -0
  687. package/cloud/instances/index.js +58 -0
  688. package/cloud/instances/lib/auth-query.d.ts +16 -0
  689. package/cloud/instances/lib/auth-query.d.ts.map +1 -0
  690. package/cloud/instances/lib/auth-query.js +20 -0
  691. package/cloud/instances/lib/data/credits.d.ts +14 -0
  692. package/cloud/instances/lib/data/credits.d.ts.map +1 -0
  693. package/cloud/instances/lib/data/credits.js +21 -0
  694. package/cloud/instances/lib/data/eliza-agents.d.ts +12 -0
  695. package/cloud/instances/lib/data/eliza-agents.d.ts.map +1 -0
  696. package/cloud/instances/lib/data/eliza-agents.js +33 -0
  697. package/cloud/instances/lib/format-bytes.d.ts +19 -0
  698. package/cloud/instances/lib/format-bytes.d.ts.map +1 -0
  699. package/cloud/instances/lib/format-bytes.js +25 -0
  700. package/cloud/instances/lib/i18n.d.ts +11 -0
  701. package/cloud/instances/lib/i18n.d.ts.map +1 -0
  702. package/cloud/instances/lib/i18n.js +10 -0
  703. package/cloud/instances/lib/open-web-ui.d.ts +14 -0
  704. package/cloud/instances/lib/open-web-ui.d.ts.map +1 -0
  705. package/cloud/instances/lib/open-web-ui.js +88 -0
  706. package/cloud/instances/lib/sandbox-status.d.ts +18 -0
  707. package/cloud/instances/lib/sandbox-status.d.ts.map +1 -0
  708. package/cloud/instances/lib/sandbox-status.js +54 -0
  709. package/cloud/instances/lib/use-copy-feedback.d.ts +9 -0
  710. package/cloud/instances/lib/use-copy-feedback.d.ts.map +1 -0
  711. package/cloud/instances/lib/use-copy-feedback.js +13 -0
  712. package/cloud/instances/lib/use-document-title.d.ts +13 -0
  713. package/cloud/instances/lib/use-document-title.d.ts.map +1 -0
  714. package/cloud/instances/lib/use-document-title.js +23 -0
  715. package/cloud/instances/lib/use-job-poller.d.ts +34 -0
  716. package/cloud/instances/lib/use-job-poller.d.ts.map +1 -0
  717. package/cloud/instances/lib/use-job-poller.js +142 -0
  718. package/cloud/instances/lib/use-sandbox-status-poll.d.ts +50 -0
  719. package/cloud/instances/lib/use-sandbox-status-poll.d.ts.map +1 -0
  720. package/cloud/instances/lib/use-sandbox-status-poll.js +173 -0
  721. package/cloud/instances/lib/use-session-auth.d.ts +44 -0
  722. package/cloud/instances/lib/use-session-auth.d.ts.map +1 -0
  723. package/cloud/instances/lib/use-session-auth.js +141 -0
  724. package/cloud/join/JoinPage.d.ts +19 -0
  725. package/cloud/join/JoinPage.d.ts.map +1 -0
  726. package/cloud/join/JoinPage.js +128 -0
  727. package/cloud/join/index.d.ts +19 -0
  728. package/cloud/join/index.d.ts.map +1 -0
  729. package/cloud/join/index.js +18 -0
  730. package/cloud/join/lib/resolve-cloud-connection.d.ts +21 -0
  731. package/cloud/join/lib/resolve-cloud-connection.d.ts.map +1 -0
  732. package/cloud/join/lib/resolve-cloud-connection.js +29 -0
  733. package/cloud/join/lib/run-join-flow.d.ts +95 -0
  734. package/cloud/join/lib/run-join-flow.d.ts.map +1 -0
  735. package/cloud/join/lib/run-join-flow.js +98 -0
  736. package/cloud/join/lib/use-join-session.d.ts +18 -0
  737. package/cloud/join/lib/use-join-session.d.ts.map +1 -0
  738. package/cloud/join/lib/use-join-session.js +62 -0
  739. package/cloud/join/register.d.ts +17 -0
  740. package/cloud/join/register.d.ts.map +1 -0
  741. package/cloud/join/register.js +29 -0
  742. package/cloud/lib/api-client.d.ts +33 -0
  743. package/cloud/lib/api-client.d.ts.map +1 -0
  744. package/cloud/lib/api-client.js +160 -0
  745. package/cloud/lib/jwt.d.ts +26 -0
  746. package/cloud/lib/jwt.d.ts.map +1 -0
  747. package/cloud/lib/jwt.js +34 -0
  748. package/cloud/lib/query-client.d.ts +9 -0
  749. package/cloud/lib/query-client.d.ts.map +1 -0
  750. package/cloud/lib/query-client.js +27 -0
  751. package/cloud/lib/steward-session.d.ts +28 -0
  752. package/cloud/lib/steward-session.d.ts.map +1 -0
  753. package/cloud/lib/steward-session.js +29 -0
  754. package/cloud/mcps/McpDetailDrawer.d.ts +20 -0
  755. package/cloud/mcps/McpDetailDrawer.d.ts.map +1 -0
  756. package/cloud/mcps/McpDetailDrawer.js +155 -0
  757. package/cloud/mcps/McpEditorDialog.d.ts +22 -0
  758. package/cloud/mcps/McpEditorDialog.d.ts.map +1 -0
  759. package/cloud/mcps/McpEditorDialog.js +224 -0
  760. package/cloud/mcps/McpsRoute.d.ts +12 -0
  761. package/cloud/mcps/McpsRoute.d.ts.map +1 -0
  762. package/cloud/mcps/McpsRoute.js +28 -0
  763. package/cloud/mcps/McpsSection.d.ts +10 -0
  764. package/cloud/mcps/McpsSection.d.ts.map +1 -0
  765. package/cloud/mcps/McpsSection.js +13 -0
  766. package/cloud/mcps/McpsView.d.ts +13 -0
  767. package/cloud/mcps/McpsView.d.ts.map +1 -0
  768. package/cloud/mcps/McpsView.js +142 -0
  769. package/cloud/mcps/index.d.ts +53 -0
  770. package/cloud/mcps/index.d.ts.map +1 -0
  771. package/cloud/mcps/index.js +77 -0
  772. package/cloud/mcps/lib/api-types.d.ts +213 -0
  773. package/cloud/mcps/lib/api-types.d.ts.map +1 -0
  774. package/cloud/mcps/lib/api-types.js +17 -0
  775. package/cloud/mcps/lib/mcp-mutations.d.ts +17 -0
  776. package/cloud/mcps/lib/mcp-mutations.d.ts.map +1 -0
  777. package/cloud/mcps/lib/mcp-mutations.js +82 -0
  778. package/cloud/mcps/lib/test-connection.d.ts +30 -0
  779. package/cloud/mcps/lib/test-connection.d.ts.map +1 -0
  780. package/cloud/mcps/lib/test-connection.js +140 -0
  781. package/cloud/mcps/lib/use-mcps.d.ts +30 -0
  782. package/cloud/mcps/lib/use-mcps.d.ts.map +1 -0
  783. package/cloud/mcps/lib/use-mcps.js +67 -0
  784. package/cloud/monetization/MonetizationRoute.d.ts +9 -0
  785. package/cloud/monetization/MonetizationRoute.d.ts.map +1 -0
  786. package/cloud/monetization/MonetizationRoute.js +19 -0
  787. package/cloud/monetization/MonetizationSection.d.ts +19 -0
  788. package/cloud/monetization/MonetizationSection.d.ts.map +1 -0
  789. package/cloud/monetization/MonetizationSection.js +34 -0
  790. package/cloud/monetization/affiliates/AffiliatesPageClient.d.ts +18 -0
  791. package/cloud/monetization/affiliates/AffiliatesPageClient.d.ts.map +1 -0
  792. package/cloud/monetization/affiliates/AffiliatesPageClient.js +249 -0
  793. package/cloud/monetization/affiliates/AffiliatesRoute.d.ts +19 -0
  794. package/cloud/monetization/affiliates/AffiliatesRoute.d.ts.map +1 -0
  795. package/cloud/monetization/affiliates/AffiliatesRoute.js +42 -0
  796. package/cloud/monetization/affiliates/referral-me.d.ts +27 -0
  797. package/cloud/monetization/affiliates/referral-me.d.ts.map +1 -0
  798. package/cloud/monetization/affiliates/referral-me.js +69 -0
  799. package/cloud/monetization/affiliates/use-dashboard-referral-me.d.ts +19 -0
  800. package/cloud/monetization/affiliates/use-dashboard-referral-me.d.ts.map +1 -0
  801. package/cloud/monetization/affiliates/use-dashboard-referral-me.js +49 -0
  802. package/cloud/monetization/auth-gate.d.ts +27 -0
  803. package/cloud/monetization/auth-gate.d.ts.map +1 -0
  804. package/cloud/monetization/auth-gate.js +60 -0
  805. package/cloud/monetization/earnings/EarningsPageClient.d.ts +24 -0
  806. package/cloud/monetization/earnings/EarningsPageClient.d.ts.map +1 -0
  807. package/cloud/monetization/earnings/EarningsPageClient.js +311 -0
  808. package/cloud/monetization/earnings/EarningsRoute.d.ts +19 -0
  809. package/cloud/monetization/earnings/EarningsRoute.d.ts.map +1 -0
  810. package/cloud/monetization/earnings/EarningsRoute.js +44 -0
  811. package/cloud/monetization/index.d.ts +43 -0
  812. package/cloud/monetization/index.d.ts.map +1 -0
  813. package/cloud/monetization/index.js +64 -0
  814. package/cloud/monetization/lib/clipboard.d.ts +21 -0
  815. package/cloud/monetization/lib/clipboard.d.ts.map +1 -0
  816. package/cloud/monetization/lib/clipboard.js +55 -0
  817. package/cloud/monetization/lib/format-usd.d.ts +12 -0
  818. package/cloud/monetization/lib/format-usd.d.ts.map +1 -0
  819. package/cloud/monetization/lib/format-usd.js +19 -0
  820. package/cloud/monetization/use-document-title.d.ts +10 -0
  821. package/cloud/monetization/use-document-title.d.ts.map +1 -0
  822. package/cloud/monetization/use-document-title.js +20 -0
  823. package/cloud/organization/OrganizationPage.d.ts +12 -0
  824. package/cloud/organization/OrganizationPage.d.ts.map +1 -0
  825. package/cloud/organization/OrganizationPage.js +15 -0
  826. package/cloud/organization/OrganizationSection.d.ts +15 -0
  827. package/cloud/organization/OrganizationSection.d.ts.map +1 -0
  828. package/cloud/organization/OrganizationSection.js +31 -0
  829. package/cloud/organization/data/cloud-org-types.d.ts +66 -0
  830. package/cloud/organization/data/cloud-org-types.d.ts.map +1 -0
  831. package/cloud/organization/data/cloud-org-types.js +19 -0
  832. package/cloud/organization/data/use-organization.d.ts +44 -0
  833. package/cloud/organization/data/use-organization.d.ts.map +1 -0
  834. package/cloud/organization/data/use-organization.js +124 -0
  835. package/cloud/organization/index.d.ts +30 -0
  836. package/cloud/organization/index.d.ts.map +1 -0
  837. package/cloud/organization/index.js +29 -0
  838. package/cloud/organization/invite-member-dialog.d.ts +26 -0
  839. package/cloud/organization/invite-member-dialog.d.ts.map +1 -0
  840. package/cloud/organization/invite-member-dialog.js +58 -0
  841. package/cloud/organization/members-list.d.ts +27 -0
  842. package/cloud/organization/members-list.d.ts.map +1 -0
  843. package/cloud/organization/members-list.js +96 -0
  844. package/cloud/organization/members-tab.d.ts +19 -0
  845. package/cloud/organization/members-tab.d.ts.map +1 -0
  846. package/cloud/organization/members-tab.js +99 -0
  847. package/cloud/organization/organization-general-tab.d.ts +17 -0
  848. package/cloud/organization/organization-general-tab.d.ts.map +1 -0
  849. package/cloud/organization/organization-general-tab.js +17 -0
  850. package/cloud/organization/organization-tab.d.ts +17 -0
  851. package/cloud/organization/organization-tab.d.ts.map +1 -0
  852. package/cloud/organization/organization-tab.js +23 -0
  853. package/cloud/organization/pending-invites-list.d.ts +19 -0
  854. package/cloud/organization/pending-invites-list.d.ts.map +1 -0
  855. package/cloud/organization/pending-invites-list.js +64 -0
  856. package/cloud/organization/routes.d.ts +18 -0
  857. package/cloud/organization/routes.d.ts.map +1 -0
  858. package/cloud/organization/routes.js +23 -0
  859. package/cloud/public-pages/index.d.ts +36 -0
  860. package/cloud/public-pages/index.d.ts.map +1 -0
  861. package/cloud/public-pages/index.js +35 -0
  862. package/cloud/public-pages/lib/error-message.d.ts +3 -0
  863. package/cloud/public-pages/lib/error-message.d.ts.map +1 -0
  864. package/cloud/public-pages/lib/error-message.js +4 -0
  865. package/cloud/public-pages/lib/login-return-to.d.ts +15 -0
  866. package/cloud/public-pages/lib/login-return-to.d.ts.map +1 -0
  867. package/cloud/public-pages/lib/login-return-to.js +76 -0
  868. package/cloud/public-pages/lib/steward-oauth-url.d.ts +25 -0
  869. package/cloud/public-pages/lib/steward-oauth-url.d.ts.map +1 -0
  870. package/cloud/public-pages/lib/steward-oauth-url.js +32 -0
  871. package/cloud/public-pages/lib/steward-session.d.ts +54 -0
  872. package/cloud/public-pages/lib/steward-session.d.ts.map +1 -0
  873. package/cloud/public-pages/lib/steward-session.js +143 -0
  874. package/cloud/public-pages/lib/use-page-title.d.ts +18 -0
  875. package/cloud/public-pages/lib/use-page-title.d.ts.map +1 -0
  876. package/cloud/public-pages/lib/use-page-title.js +40 -0
  877. package/cloud/public-pages/lib/use-session-auth.d.ts +40 -0
  878. package/cloud/public-pages/lib/use-session-auth.d.ts.map +1 -0
  879. package/cloud/public-pages/lib/use-session-auth.js +135 -0
  880. package/cloud/public-pages/pages/app-auth/app-authorize-page.d.ts +7 -0
  881. package/cloud/public-pages/pages/app-auth/app-authorize-page.d.ts.map +1 -0
  882. package/cloud/public-pages/pages/app-auth/app-authorize-page.js +17 -0
  883. package/cloud/public-pages/pages/approve/approval-page.d.ts +9 -0
  884. package/cloud/public-pages/pages/approve/approval-page.d.ts.map +1 -0
  885. package/cloud/public-pages/pages/approve/approval-page.js +171 -0
  886. package/cloud/public-pages/pages/auth/auth-error-page.d.ts +7 -0
  887. package/cloud/public-pages/pages/auth/auth-error-page.d.ts.map +1 -0
  888. package/cloud/public-pages/pages/auth/auth-error-page.js +50 -0
  889. package/cloud/public-pages/pages/auth/auth-success-page.d.ts +7 -0
  890. package/cloud/public-pages/pages/auth/auth-success-page.d.ts.map +1 -0
  891. package/cloud/public-pages/pages/auth/auth-success-page.js +72 -0
  892. package/cloud/public-pages/pages/auth/cli-login-page.d.ts +8 -0
  893. package/cloud/public-pages/pages/auth/cli-login-page.d.ts.map +1 -0
  894. package/cloud/public-pages/pages/auth/cli-login-page.js +176 -0
  895. package/cloud/public-pages/pages/auth/email-callback-page.d.ts +8 -0
  896. package/cloud/public-pages/pages/auth/email-callback-page.d.ts.map +1 -0
  897. package/cloud/public-pages/pages/auth/email-callback-page.js +104 -0
  898. package/cloud/public-pages/pages/ballot/ballot-page.d.ts +8 -0
  899. package/cloud/public-pages/pages/ballot/ballot-page.d.ts.map +1 -0
  900. package/cloud/public-pages/pages/ballot/ballot-page.js +126 -0
  901. package/cloud/public-pages/pages/bsc-page.d.ts +16 -0
  902. package/cloud/public-pages/pages/bsc-page.d.ts.map +1 -0
  903. package/cloud/public-pages/pages/bsc-page.js +58 -0
  904. package/cloud/public-pages/pages/chat/public-chat-page.d.ts +17 -0
  905. package/cloud/public-pages/pages/chat/public-chat-page.d.ts.map +1 -0
  906. package/cloud/public-pages/pages/chat/public-chat-page.js +100 -0
  907. package/cloud/public-pages/pages/invite/invite-accept-page.d.ts +12 -0
  908. package/cloud/public-pages/pages/invite/invite-accept-page.d.ts.map +1 -0
  909. package/cloud/public-pages/pages/invite/invite-accept-page.js +162 -0
  910. package/cloud/public-pages/pages/legal/privacy-policy-page.d.ts +7 -0
  911. package/cloud/public-pages/pages/legal/privacy-policy-page.d.ts.map +1 -0
  912. package/cloud/public-pages/pages/legal/privacy-policy-page.js +116 -0
  913. package/cloud/public-pages/pages/legal/terms-of-service-page.d.ts +10 -0
  914. package/cloud/public-pages/pages/legal/terms-of-service-page.d.ts.map +1 -0
  915. package/cloud/public-pages/pages/legal/terms-of-service-page.js +109 -0
  916. package/cloud/public-pages/pages/login/login-page.d.ts +7 -0
  917. package/cloud/public-pages/pages/login/login-page.d.ts.map +1 -0
  918. package/cloud/public-pages/pages/login/login-page.js +27 -0
  919. package/cloud/public-pages/pages/login/steward-login-section.d.ts +16 -0
  920. package/cloud/public-pages/pages/login/steward-login-section.d.ts.map +1 -0
  921. package/cloud/public-pages/pages/login/steward-login-section.js +448 -0
  922. package/cloud/public-pages/pages/payment/app-charge-page.d.ts +9 -0
  923. package/cloud/public-pages/pages/payment/app-charge-page.d.ts.map +1 -0
  924. package/cloud/public-pages/pages/payment/app-charge-page.js +200 -0
  925. package/cloud/public-pages/pages/payment/payment-navigation.d.ts +3 -0
  926. package/cloud/public-pages/pages/payment/payment-navigation.d.ts.map +1 -0
  927. package/cloud/public-pages/pages/payment/payment-navigation.js +4 -0
  928. package/cloud/public-pages/pages/payment/payment-request-page.d.ts +10 -0
  929. package/cloud/public-pages/pages/payment/payment-request-page.d.ts.map +1 -0
  930. package/cloud/public-pages/pages/payment/payment-request-page.js +142 -0
  931. package/cloud/public-pages/pages/payment/payment-success-page.d.ts +9 -0
  932. package/cloud/public-pages/pages/payment/payment-success-page.d.ts.map +1 -0
  933. package/cloud/public-pages/pages/payment/payment-success-page.js +57 -0
  934. package/cloud/public-pages/pages/sensitive-requests/sensitive-request-page.d.ts +9 -0
  935. package/cloud/public-pages/pages/sensitive-requests/sensitive-request-page.d.ts.map +1 -0
  936. package/cloud/public-pages/pages/sensitive-requests/sensitive-request-page.js +199 -0
  937. package/cloud/public-pages/register.d.ts +20 -0
  938. package/cloud/public-pages/register.d.ts.map +1 -0
  939. package/cloud/public-pages/register.js +158 -0
  940. package/cloud/register-all.d.ts +26 -0
  941. package/cloud/register-all.d.ts.map +1 -0
  942. package/cloud/register-all.js +55 -0
  943. package/cloud/settings/CloudSettingsSectionShell.d.ts +39 -0
  944. package/cloud/settings/CloudSettingsSectionShell.d.ts.map +1 -0
  945. package/cloud/settings/CloudSettingsSectionShell.js +50 -0
  946. package/cloud/settings/cloud-settings-group.d.ts +35 -0
  947. package/cloud/settings/cloud-settings-group.d.ts.map +1 -0
  948. package/cloud/settings/cloud-settings-group.js +43 -0
  949. package/cloud/settings/index.d.ts +14 -0
  950. package/cloud/settings/index.d.ts.map +1 -0
  951. package/cloud/settings/index.js +13 -0
  952. package/cloud/settings/register-cloud-settings.d.ts +33 -0
  953. package/cloud/settings/register-cloud-settings.d.ts.map +1 -0
  954. package/cloud/settings/register-cloud-settings.js +161 -0
  955. package/cloud/settings/sections.d.ts +29 -0
  956. package/cloud/settings/sections.d.ts.map +1 -0
  957. package/cloud/settings/sections.js +74 -0
  958. package/cloud/shell/CloudI18nProvider.d.ts +32 -0
  959. package/cloud/shell/CloudI18nProvider.d.ts.map +1 -0
  960. package/cloud/shell/CloudI18nProvider.js +88 -0
  961. package/cloud/shell/CloudRouterShell.d.ts +39 -0
  962. package/cloud/shell/CloudRouterShell.d.ts.map +1 -0
  963. package/cloud/shell/CloudRouterShell.js +109 -0
  964. package/cloud/shell/StewardProvider.d.ts +55 -0
  965. package/cloud/shell/StewardProvider.d.ts.map +1 -0
  966. package/cloud/shell/StewardProvider.js +205 -0
  967. package/cloud/shell/StewardProviderRuntime.d.ts +19 -0
  968. package/cloud/shell/StewardProviderRuntime.d.ts.map +1 -0
  969. package/cloud/shell/StewardProviderRuntime.js +199 -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 +227 -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 +46 -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 +95 -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 +44 -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 +133 -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 +79 -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 +11 -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.map +1 -1
  1335. package/components/accounts/AccountCard.js +19 -19
  1336. package/components/accounts/AccountList.d.ts.map +1 -1
  1337. package/components/accounts/AccountList.js +4 -3
  1338. package/components/accounts/AddAccountDialog.d.ts.map +1 -1
  1339. package/components/accounts/AddAccountDialog.js +11 -2
  1340. package/components/accounts/EditableAccountLabel.d.ts.map +1 -1
  1341. package/components/accounts/EditableAccountLabel.js +3 -2
  1342. package/components/accounts/RotationStrategyPicker.d.ts.map +1 -1
  1343. package/components/accounts/RotationStrategyPicker.js +2 -2
  1344. package/components/apps/AppWindowRenderer.d.ts +5 -0
  1345. package/components/apps/AppWindowRenderer.d.ts.map +1 -0
  1346. package/components/apps/AppWindowRenderer.helpers.d.ts +4 -0
  1347. package/components/apps/AppWindowRenderer.helpers.d.ts.map +1 -0
  1348. package/components/apps/AppWindowRenderer.helpers.js +20 -0
  1349. package/components/apps/AppWindowRenderer.js +72 -0
  1350. package/components/apps/AppsCatalogGrid.d.ts +2 -1
  1351. package/components/apps/AppsCatalogGrid.d.ts.map +1 -1
  1352. package/components/apps/AppsCatalogGrid.js +29 -7
  1353. package/components/apps/AppsSidebar.d.ts.map +1 -1
  1354. package/components/apps/AppsSidebar.js +6 -4
  1355. package/components/apps/GameView.d.ts +0 -4
  1356. package/components/apps/GameView.d.ts.map +1 -1
  1357. package/components/apps/GameView.helpers.d.ts +3 -0
  1358. package/components/apps/GameView.helpers.d.ts.map +1 -0
  1359. package/components/apps/GameView.helpers.js +50 -0
  1360. package/components/apps/GameView.js +180 -171
  1361. package/components/apps/GameViewOverlay.d.ts.map +1 -1
  1362. package/components/apps/GameViewOverlay.js +27 -6
  1363. package/components/apps/RunningAppsRow.js +4 -4
  1364. package/components/apps/app-identity.d.ts +7 -12
  1365. package/components/apps/app-identity.d.ts.map +1 -1
  1366. package/components/apps/app-identity.helpers.d.ts +13 -0
  1367. package/components/apps/app-identity.helpers.d.ts.map +1 -0
  1368. package/components/apps/app-identity.helpers.js +49 -0
  1369. package/components/apps/app-identity.js +8 -54
  1370. package/components/apps/apps-cache.d.ts +1 -1
  1371. package/components/apps/apps-cache.d.ts.map +1 -1
  1372. package/components/apps/extensions/registry.d.ts +1 -1
  1373. package/components/apps/extensions/registry.js +1 -1
  1374. package/components/apps/extensions/surface.d.ts +1 -6
  1375. package/components/apps/extensions/surface.d.ts.map +1 -1
  1376. package/components/apps/extensions/surface.helpers.d.ts +8 -0
  1377. package/components/apps/extensions/surface.helpers.d.ts.map +1 -0
  1378. package/components/apps/extensions/surface.helpers.js +66 -0
  1379. package/components/apps/extensions/surface.js +3 -69
  1380. package/components/apps/helpers.d.ts +2 -1
  1381. package/components/apps/helpers.d.ts.map +1 -1
  1382. package/components/apps/helpers.js +39 -44
  1383. package/components/apps/home-grid-apps.d.ts +19 -0
  1384. package/components/apps/home-grid-apps.d.ts.map +1 -0
  1385. package/components/apps/home-grid-apps.js +75 -0
  1386. package/components/apps/internal-tool-apps.d.ts.map +1 -1
  1387. package/components/apps/internal-tool-apps.js +25 -15
  1388. package/components/apps/load-apps-catalog.d.ts.map +1 -1
  1389. package/components/apps/load-apps-catalog.js +6 -22
  1390. package/components/apps/overlay-app-api.d.ts +17 -4
  1391. package/components/apps/overlay-app-api.d.ts.map +1 -1
  1392. package/components/apps/overlay-app-registry.d.ts +5 -5
  1393. package/components/apps/overlay-app-registry.d.ts.map +1 -1
  1394. package/components/apps/overlay-app-registry.js +26 -15
  1395. package/components/apps/provenance.d.ts +36 -0
  1396. package/components/apps/provenance.d.ts.map +1 -0
  1397. package/components/apps/provenance.js +40 -0
  1398. package/components/apps/surfaces/GameOperatorShell.d.ts +1 -9
  1399. package/components/apps/surfaces/GameOperatorShell.d.ts.map +1 -1
  1400. package/components/apps/surfaces/GameOperatorShell.js +5 -11
  1401. package/components/apps/surfaces/registry.d.ts +1 -1
  1402. package/components/apps/surfaces/registry.js +1 -1
  1403. package/components/apps/useRegistryCatalog.d.ts +1 -0
  1404. package/components/apps/useRegistryCatalog.d.ts.map +1 -1
  1405. package/components/apps/useRegistryCatalog.js +12 -4
  1406. package/components/apps/viewer-auth.d.ts +10 -1
  1407. package/components/apps/viewer-auth.d.ts.map +1 -1
  1408. package/components/apps/viewer-auth.js +12 -3
  1409. package/components/auth/LoginView.d.ts.map +1 -1
  1410. package/components/auth/LoginView.js +51 -11
  1411. package/components/brand/eliza-mark.d.ts +16 -0
  1412. package/components/brand/eliza-mark.d.ts.map +1 -0
  1413. package/components/brand/eliza-mark.js +15 -0
  1414. package/components/character/CharacterEditor.d.ts.map +1 -1
  1415. package/components/character/CharacterEditor.js +194 -132
  1416. package/components/character/CharacterEditorPanels.d.ts.map +1 -1
  1417. package/components/character/CharacterEditorPanels.js +228 -117
  1418. package/components/character/CharacterExperienceWorkspace.d.ts.map +1 -1
  1419. package/components/character/CharacterExperienceWorkspace.js +210 -208
  1420. package/components/character/CharacterHubView.d.ts.map +1 -1
  1421. package/components/character/CharacterHubView.js +50 -155
  1422. package/components/character/CharacterLearnedSkillsSection.d.ts.map +1 -1
  1423. package/components/character/CharacterLearnedSkillsSection.js +67 -34
  1424. package/components/character/CharacterOverviewSection.d.ts +6 -9
  1425. package/components/character/CharacterOverviewSection.d.ts.map +1 -1
  1426. package/components/character/CharacterOverviewSection.js +19 -20
  1427. package/components/character/CharacterPersonalityTimeline.js +1 -1
  1428. package/components/character/CharacterRoster.d.ts +2 -12
  1429. package/components/character/CharacterRoster.d.ts.map +1 -1
  1430. package/components/character/CharacterRoster.helpers.d.ts +13 -0
  1431. package/components/character/CharacterRoster.helpers.d.ts.map +1 -0
  1432. package/components/character/CharacterRoster.helpers.js +43 -0
  1433. package/components/character/CharacterRoster.js +6 -50
  1434. package/components/character/MusicLibraryCharacterWidget.js +2 -2
  1435. package/components/character/character-editor-helpers.d.ts +2 -2
  1436. package/components/character/character-editor-helpers.d.ts.map +1 -1
  1437. package/components/character/character-editor-helpers.js +1 -1
  1438. package/components/chat/AccountRequiredCard.d.ts +11 -1
  1439. package/components/chat/AccountRequiredCard.d.ts.map +1 -1
  1440. package/components/chat/AccountRequiredCard.js +55 -5
  1441. package/components/chat/AgentActivityBox.js +1 -1
  1442. package/components/chat/AppsSection.d.ts.map +1 -1
  1443. package/components/chat/AppsSection.js +2 -2
  1444. package/components/chat/ConnectorAccountPicker.d.ts.map +1 -1
  1445. package/components/chat/ConnectorAccountPicker.js +5 -1
  1446. package/components/chat/MessageAttachments.d.ts +21 -0
  1447. package/components/chat/MessageAttachments.d.ts.map +1 -0
  1448. package/components/chat/MessageAttachments.js +157 -0
  1449. package/components/chat/MessageContent.d.ts +1 -34
  1450. package/components/chat/MessageContent.d.ts.map +1 -1
  1451. package/components/chat/MessageContent.js +160 -43
  1452. package/components/chat/SaveCommandModal.js +6 -4
  1453. package/components/chat/TasksEventsPanel.d.ts +1 -2
  1454. package/components/chat/TasksEventsPanel.d.ts.map +1 -1
  1455. package/components/chat/TasksEventsPanel.js +5 -7
  1456. package/components/chat/ThinkingBlock.d.ts +14 -0
  1457. package/components/chat/ThinkingBlock.d.ts.map +1 -0
  1458. package/components/chat/ThinkingBlock.js +19 -0
  1459. package/components/chat/WidgetVisibilityPanel.d.ts +1 -2
  1460. package/components/chat/WidgetVisibilityPanel.d.ts.map +1 -1
  1461. package/components/chat/WidgetVisibilityPanel.helpers.d.ts +3 -0
  1462. package/components/chat/WidgetVisibilityPanel.helpers.d.ts.map +1 -0
  1463. package/components/chat/WidgetVisibilityPanel.helpers.js +13 -0
  1464. package/components/chat/WidgetVisibilityPanel.js +3 -22
  1465. package/components/chat/message-choice-parser.d.ts +2 -0
  1466. package/components/chat/message-choice-parser.d.ts.map +1 -1
  1467. package/components/chat/message-choice-parser.js +8 -2
  1468. package/components/chat/message-followups-parser.d.ts +38 -0
  1469. package/components/chat/message-followups-parser.d.ts.map +1 -0
  1470. package/components/chat/message-followups-parser.js +81 -0
  1471. package/components/chat/message-form-parser.d.ts +65 -0
  1472. package/components/chat/message-form-parser.d.ts.map +1 -0
  1473. package/components/chat/message-form-parser.js +144 -0
  1474. package/components/chat/message-task-parser.d.ts +39 -0
  1475. package/components/chat/message-task-parser.d.ts.map +1 -0
  1476. package/components/chat/message-task-parser.js +56 -0
  1477. package/components/chat/widgets/ChoiceWidget.d.ts +3 -1
  1478. package/components/chat/widgets/ChoiceWidget.d.ts.map +1 -1
  1479. package/components/chat/widgets/ChoiceWidget.js +19 -4
  1480. package/components/chat/widgets/__e2e__/orchestrator-accounts-fixture.d.ts +2 -0
  1481. package/components/chat/widgets/__e2e__/orchestrator-accounts-fixture.d.ts.map +1 -0
  1482. package/components/chat/widgets/__e2e__/orchestrator-accounts-fixture.js +131 -0
  1483. package/components/chat/widgets/agent-orchestrator-accounts-view.d.ts +13 -0
  1484. package/components/chat/widgets/agent-orchestrator-accounts-view.d.ts.map +1 -0
  1485. package/components/chat/widgets/agent-orchestrator-accounts-view.js +87 -0
  1486. package/components/chat/widgets/agent-orchestrator.d.ts.map +1 -1
  1487. package/components/chat/widgets/agent-orchestrator.js +160 -39
  1488. package/components/chat/widgets/browser-status.d.ts +1 -2
  1489. package/components/chat/widgets/browser-status.d.ts.map +1 -1
  1490. package/components/chat/widgets/browser-status.helpers.d.ts +3 -0
  1491. package/components/chat/widgets/browser-status.helpers.d.ts.map +1 -0
  1492. package/components/chat/widgets/browser-status.helpers.js +8 -0
  1493. package/components/chat/widgets/browser-status.js +1 -8
  1494. package/components/chat/widgets/followups.d.ts +35 -0
  1495. package/components/chat/widgets/followups.d.ts.map +1 -0
  1496. package/components/chat/widgets/followups.js +56 -0
  1497. package/components/chat/widgets/form-request.d.ts +23 -0
  1498. package/components/chat/widgets/form-request.d.ts.map +1 -0
  1499. package/components/chat/widgets/form-request.js +97 -0
  1500. package/components/chat/widgets/inline-builtins.d.ts +12 -0
  1501. package/components/chat/widgets/inline-builtins.d.ts.map +1 -0
  1502. package/components/chat/widgets/inline-builtins.js +36 -0
  1503. package/components/chat/widgets/inline-registry.d.ts +59 -0
  1504. package/components/chat/widgets/inline-registry.d.ts.map +1 -0
  1505. package/components/chat/widgets/inline-registry.js +33 -0
  1506. package/components/chat/widgets/music-player.d.ts +1 -2
  1507. package/components/chat/widgets/music-player.d.ts.map +1 -1
  1508. package/components/chat/widgets/music-player.helpers.d.ts +3 -0
  1509. package/components/chat/widgets/music-player.helpers.d.ts.map +1 -0
  1510. package/components/chat/widgets/music-player.helpers.js +8 -0
  1511. package/components/chat/widgets/music-player.js +5 -10
  1512. package/components/chat/widgets/shared.js +1 -1
  1513. package/components/chat/widgets/task-widget.d.ts +34 -0
  1514. package/components/chat/widgets/task-widget.d.ts.map +1 -0
  1515. package/components/chat/widgets/task-widget.js +187 -0
  1516. package/components/chat/widgets/todo.d.ts.map +1 -1
  1517. package/components/chat/widgets/todo.js +7 -17
  1518. package/components/cloud/CloudSourceControls.d.ts.map +1 -1
  1519. package/components/cloud/CloudSourceControls.js +5 -4
  1520. package/components/cloud/CloudStatusBadge.d.ts +0 -18
  1521. package/components/cloud/CloudStatusBadge.d.ts.map +1 -1
  1522. package/components/cloud/CloudStatusBadge.js +8 -9
  1523. package/components/cloud/FlaminaGuide.d.ts.map +1 -1
  1524. package/components/cloud/FlaminaGuide.js +10 -10
  1525. package/components/cloud/StripeEmbeddedCheckout.js +2 -2
  1526. package/components/companion/injected.d.ts +1 -3
  1527. package/components/companion/injected.d.ts.map +1 -1
  1528. package/components/companion/injected.hooks.d.ts +4 -0
  1529. package/components/companion/injected.hooks.d.ts.map +1 -0
  1530. package/components/companion/injected.hooks.js +12 -0
  1531. package/components/companion/injected.js +1 -13
  1532. package/components/composites/OwnerBadge.d.ts +35 -0
  1533. package/components/composites/OwnerBadge.d.ts.map +1 -0
  1534. package/components/composites/OwnerBadge.js +35 -0
  1535. package/components/composites/chat/ChatVoiceStatusBar.d.ts +38 -0
  1536. package/components/composites/chat/ChatVoiceStatusBar.d.ts.map +1 -0
  1537. package/components/composites/chat/ChatVoiceStatusBar.js +71 -0
  1538. package/components/composites/chat/ContinuousChatToggle.d.ts +26 -0
  1539. package/components/composites/chat/ContinuousChatToggle.d.ts.map +1 -0
  1540. package/components/composites/chat/ContinuousChatToggle.js +66 -0
  1541. package/components/composites/chat/chat-attachment-strip.d.ts.map +1 -1
  1542. package/components/composites/chat/chat-attachment-strip.js +7 -2
  1543. package/components/composites/chat/chat-bubble.d.ts.map +1 -1
  1544. package/components/composites/chat/chat-bubble.js +7 -2
  1545. package/components/composites/chat/chat-composer-shell.js +4 -4
  1546. package/components/composites/chat/chat-composer.d.ts +4 -5
  1547. package/components/composites/chat/chat-composer.d.ts.map +1 -1
  1548. package/components/composites/chat/chat-composer.js +51 -53
  1549. package/components/composites/chat/chat-conversation-item.d.ts.map +1 -1
  1550. package/components/composites/chat/chat-conversation-item.js +16 -14
  1551. package/components/composites/chat/chat-empty-state.js +1 -1
  1552. package/components/composites/chat/chat-message-actions.js +1 -1
  1553. package/components/composites/chat/chat-message.d.ts +9 -2
  1554. package/components/composites/chat/chat-message.d.ts.map +1 -1
  1555. package/components/composites/chat/chat-message.js +132 -36
  1556. package/components/composites/chat/chat-source.d.ts +15 -17
  1557. package/components/composites/chat/chat-source.d.ts.map +1 -1
  1558. package/components/composites/chat/chat-source.helpers.d.ts +25 -0
  1559. package/components/composites/chat/chat-source.helpers.d.ts.map +1 -0
  1560. package/components/composites/chat/chat-source.helpers.js +66 -0
  1561. package/components/composites/chat/chat-source.js +18 -51
  1562. package/components/composites/chat/chat-transcript.d.ts.map +1 -1
  1563. package/components/composites/chat/chat-transcript.js +26 -6
  1564. package/components/composites/chat/chat-types.d.ts +23 -0
  1565. package/components/composites/chat/chat-types.d.ts.map +1 -1
  1566. package/components/composites/chat/chat-typing-indicator.js +1 -1
  1567. package/components/composites/chat/index.d.ts +2 -3
  1568. package/components/composites/chat/index.d.ts.map +1 -1
  1569. package/components/composites/chat/index.js +2 -3
  1570. package/components/composites/chat/permission-card.d.ts +1 -62
  1571. package/components/composites/chat/permission-card.d.ts.map +1 -1
  1572. package/components/composites/chat/permission-card.helpers.d.ts +67 -0
  1573. package/components/composites/chat/permission-card.helpers.d.ts.map +1 -0
  1574. package/components/composites/chat/permission-card.helpers.js +182 -0
  1575. package/components/composites/chat/permission-card.js +82 -171
  1576. package/components/composites/chat/permission-card.render.d.ts +7 -0
  1577. package/components/composites/chat/permission-card.render.d.ts.map +1 -0
  1578. package/components/composites/chat/permission-card.render.js +9 -0
  1579. package/components/composites/chat-search-hint.d.ts +21 -0
  1580. package/components/composites/chat-search-hint.d.ts.map +1 -0
  1581. package/components/composites/chat-search-hint.js +24 -0
  1582. package/components/composites/code/DiffReviewPanel.d.ts +17 -0
  1583. package/components/composites/code/DiffReviewPanel.d.ts.map +1 -0
  1584. package/components/composites/code/DiffReviewPanel.js +97 -0
  1585. package/components/composites/code/index.d.ts +2 -0
  1586. package/components/composites/code/index.d.ts.map +1 -0
  1587. package/components/composites/code/index.js +1 -0
  1588. package/components/composites/index.d.ts +5 -1
  1589. package/components/composites/index.d.ts.map +1 -1
  1590. package/components/composites/index.js +5 -1
  1591. package/components/composites/page-panel/index.d.ts +4 -1
  1592. package/components/composites/page-panel/index.d.ts.map +1 -1
  1593. package/components/composites/page-panel/index.js +3 -0
  1594. package/components/composites/page-panel/page-panel-collapsible-section.js +1 -1
  1595. package/components/composites/page-panel/page-panel-empty.js +2 -2
  1596. package/components/composites/page-panel/page-panel-feature-empty.d.ts +22 -0
  1597. package/components/composites/page-panel/page-panel-feature-empty.d.ts.map +1 -0
  1598. package/components/composites/page-panel/page-panel-feature-empty.js +9 -0
  1599. package/components/composites/page-panel/page-panel-header.d.ts.map +1 -1
  1600. package/components/composites/page-panel/page-panel-header.js +9 -9
  1601. package/components/composites/page-panel/page-panel-loading.js +1 -1
  1602. package/components/composites/page-panel/page-panel-root.d.ts +1 -1
  1603. package/components/composites/page-panel/page-panel-root.d.ts.map +1 -1
  1604. package/components/composites/page-panel/page-panel-root.js +7 -6
  1605. package/components/composites/page-panel/page-panel-types.d.ts +1 -1
  1606. package/components/composites/page-panel/page-panel-types.d.ts.map +1 -1
  1607. package/components/composites/search/index.d.ts +0 -1
  1608. package/components/composites/search/index.d.ts.map +1 -1
  1609. package/components/composites/search/index.js +0 -1
  1610. package/components/composites/search/searchbar.d.ts +0 -10
  1611. package/components/composites/search/searchbar.d.ts.map +1 -1
  1612. package/components/composites/search/searchbar.js +1 -12
  1613. package/components/composites/sidebar/index.d.ts +1 -1
  1614. package/components/composites/sidebar/index.d.ts.map +1 -1
  1615. package/components/composites/sidebar/index.js +1 -1
  1616. package/components/composites/sidebar/nav-active.d.ts +16 -0
  1617. package/components/composites/sidebar/nav-active.d.ts.map +1 -0
  1618. package/components/composites/sidebar/nav-active.js +15 -0
  1619. package/components/composites/sidebar/sidebar-content.d.ts.map +1 -1
  1620. package/components/composites/sidebar/sidebar-content.js +6 -5
  1621. package/components/composites/sidebar/sidebar-header.d.ts +1 -1
  1622. package/components/composites/sidebar/sidebar-header.d.ts.map +1 -1
  1623. package/components/composites/sidebar/sidebar-root.d.ts.map +1 -1
  1624. package/components/composites/sidebar/sidebar-root.js +9 -9
  1625. package/components/composites/sidebar/sidebar-types.d.ts +0 -19
  1626. package/components/composites/sidebar/sidebar-types.d.ts.map +1 -1
  1627. package/components/composites/skills/skill-sidebar-item.js +2 -2
  1628. package/components/composites/trajectories/trajectory-cache-stats.js +1 -1
  1629. package/components/composites/trajectories/trajectory-code-block.js +1 -1
  1630. package/components/composites/trajectories/trajectory-context-diff-list.js +2 -2
  1631. package/components/composites/trajectories/trajectory-event-timeline.js +1 -1
  1632. package/components/composites/trajectories/trajectory-llm-call-card.d.ts +2 -3
  1633. package/components/composites/trajectories/trajectory-llm-call-card.d.ts.map +1 -1
  1634. package/components/composites/trajectories/trajectory-llm-call-card.js +2 -2
  1635. package/components/composites/trajectories/trajectory-pipeline-graph.js +4 -4
  1636. package/components/config-ui/config-control-primitives.d.ts +0 -10
  1637. package/components/config-ui/config-control-primitives.d.ts.map +1 -1
  1638. package/components/config-ui/config-control-primitives.helpers.d.ts +11 -0
  1639. package/components/config-ui/config-control-primitives.helpers.d.ts.map +1 -0
  1640. package/components/config-ui/config-control-primitives.helpers.js +15 -0
  1641. package/components/config-ui/config-control-primitives.js +0 -15
  1642. package/components/config-ui/config-field.d.ts +0 -47
  1643. package/components/config-ui/config-field.d.ts.map +1 -1
  1644. package/components/config-ui/config-field.helpers.d.ts +49 -0
  1645. package/components/config-ui/config-field.helpers.d.ts.map +1 -0
  1646. package/components/config-ui/config-field.helpers.js +857 -0
  1647. package/components/config-ui/config-field.js +2 -847
  1648. package/components/config-ui/config-renderer.d.ts +1 -131
  1649. package/components/config-ui/config-renderer.d.ts.map +1 -1
  1650. package/components/config-ui/config-renderer.helpers.d.ts +25 -0
  1651. package/components/config-ui/config-renderer.helpers.d.ts.map +1 -0
  1652. package/components/config-ui/config-renderer.helpers.js +30 -0
  1653. package/components/config-ui/config-renderer.js +3 -35
  1654. package/components/config-ui/index.d.ts +4 -1
  1655. package/components/config-ui/index.d.ts.map +1 -1
  1656. package/components/config-ui/index.js +4 -1
  1657. package/components/config-ui/ui-renderer.d.ts +1 -6
  1658. package/components/config-ui/ui-renderer.d.ts.map +1 -1
  1659. package/components/config-ui/ui-renderer.helpers.d.ts +9 -0
  1660. package/components/config-ui/ui-renderer.helpers.d.ts.map +1 -0
  1661. package/components/config-ui/ui-renderer.helpers.js +175 -0
  1662. package/components/config-ui/ui-renderer.js +15 -129
  1663. package/components/connectors/BlueBubblesStatusPanel.d.ts.map +1 -1
  1664. package/components/connectors/BlueBubblesStatusPanel.js +4 -3
  1665. package/components/connectors/ConnectorAccountAuditList.d.ts.map +1 -1
  1666. package/components/connectors/ConnectorAccountAuditList.js +27 -7
  1667. package/components/connectors/ConnectorAccountCard.d.ts.map +1 -1
  1668. package/components/connectors/ConnectorAccountCard.js +100 -32
  1669. package/components/connectors/ConnectorAccountList.d.ts +23 -2
  1670. package/components/connectors/ConnectorAccountList.d.ts.map +1 -1
  1671. package/components/connectors/ConnectorAccountList.js +38 -8
  1672. package/components/connectors/ConnectorAccountPrivacySelector.d.ts.map +1 -1
  1673. package/components/connectors/ConnectorAccountPrivacySelector.js +33 -6
  1674. package/components/connectors/ConnectorAccountPurposeSelector.d.ts.map +1 -1
  1675. package/components/connectors/ConnectorAccountPurposeSelector.js +20 -3
  1676. package/components/connectors/ConnectorAccountSetupScope.d.ts.map +1 -1
  1677. package/components/connectors/ConnectorAccountSetupScope.js +18 -5
  1678. package/components/connectors/ConnectorModeSelector.d.ts +1 -30
  1679. package/components/connectors/ConnectorModeSelector.d.ts.map +1 -1
  1680. package/components/connectors/ConnectorModeSelector.helpers.d.ts +21 -0
  1681. package/components/connectors/ConnectorModeSelector.helpers.d.ts.map +1 -0
  1682. package/components/connectors/ConnectorModeSelector.helpers.js +257 -0
  1683. package/components/connectors/ConnectorModeSelector.hooks.d.ts +13 -0
  1684. package/components/connectors/ConnectorModeSelector.hooks.d.ts.map +1 -0
  1685. package/components/connectors/ConnectorModeSelector.hooks.js +22 -0
  1686. package/components/connectors/ConnectorModeSelector.js +7 -246
  1687. package/components/connectors/ConnectorQrPairingOverlay.d.ts +33 -0
  1688. package/components/connectors/ConnectorQrPairingOverlay.d.ts.map +1 -0
  1689. package/components/connectors/ConnectorQrPairingOverlay.js +50 -0
  1690. package/components/connectors/ConnectorSetupPanel.d.ts +0 -8
  1691. package/components/connectors/ConnectorSetupPanel.d.ts.map +1 -1
  1692. package/components/connectors/ConnectorSetupPanel.helpers.d.ts +11 -0
  1693. package/components/connectors/ConnectorSetupPanel.helpers.d.ts.map +1 -0
  1694. package/components/connectors/ConnectorSetupPanel.helpers.js +52 -0
  1695. package/components/connectors/ConnectorSetupPanel.js +1 -50
  1696. package/components/connectors/DiscordLocalConnectorPanel.d.ts.map +1 -1
  1697. package/components/connectors/DiscordLocalConnectorPanel.js +11 -10
  1698. package/components/connectors/IMessageStatusPanel.d.ts.map +1 -1
  1699. package/components/connectors/IMessageStatusPanel.js +4 -3
  1700. package/components/connectors/OwnerAgentConnectorSetupPanel.d.ts +34 -0
  1701. package/components/connectors/OwnerAgentConnectorSetupPanel.d.ts.map +1 -0
  1702. package/components/connectors/OwnerAgentConnectorSetupPanel.js +32 -0
  1703. package/components/connectors/SignalQrOverlay.d.ts.map +1 -1
  1704. package/components/connectors/SignalQrOverlay.js +35 -58
  1705. package/components/connectors/TelegramAccountConnectorPanel.d.ts.map +1 -1
  1706. package/components/connectors/TelegramAccountConnectorPanel.js +23 -21
  1707. package/components/connectors/TelegramBotSetupPanel.d.ts.map +1 -1
  1708. package/components/connectors/TelegramBotSetupPanel.js +15 -9
  1709. package/components/connectors/WhatsAppQrOverlay.d.ts.map +1 -1
  1710. package/components/connectors/WhatsAppQrOverlay.js +24 -48
  1711. package/components/connectors/XRPairingPanel.d.ts +2 -0
  1712. package/components/connectors/XRPairingPanel.d.ts.map +1 -0
  1713. package/components/connectors/XRPairingPanel.js +54 -0
  1714. package/components/conversations/ConversationRenameDialog.js +1 -1
  1715. package/components/conversations/ConversationsSidebar.d.ts.map +1 -1
  1716. package/components/conversations/ConversationsSidebar.js +19 -77
  1717. package/components/conversations/conversation-sidebar-model.d.ts.map +1 -1
  1718. package/components/conversations/conversation-sidebar-model.js +1 -1
  1719. package/components/conversations/conversation-utils.d.ts +2 -2
  1720. package/components/conversations/conversation-utils.d.ts.map +1 -1
  1721. package/components/conversations/conversation-utils.js +2 -58
  1722. package/components/custom-actions/CustomActionEditor.d.ts.map +1 -1
  1723. package/components/custom-actions/CustomActionEditor.js +8 -2
  1724. package/components/custom-actions/CustomActionsPanel.d.ts.map +1 -1
  1725. package/components/custom-actions/CustomActionsPanel.js +9 -10
  1726. package/components/custom-actions/CustomActionsView.d.ts.map +1 -1
  1727. package/components/custom-actions/CustomActionsView.js +18 -17
  1728. package/components/custom-actions/custom-action-form.d.ts +5 -5
  1729. package/components/custom-actions/custom-action-form.d.ts.map +1 -1
  1730. package/components/custom-actions/custom-action-form.js +3 -3
  1731. package/components/desktop/DesktopTabBar.d.ts +24 -0
  1732. package/components/desktop/DesktopTabBar.d.ts.map +1 -0
  1733. package/components/desktop/DesktopTabBar.js +34 -0
  1734. package/components/index.d.ts +64 -16
  1735. package/components/index.d.ts.map +1 -1
  1736. package/components/index.js +70 -16
  1737. package/components/local-inference/ActiveModelBar.d.ts.map +1 -1
  1738. package/components/local-inference/ActiveModelBar.js +15 -6
  1739. package/components/local-inference/CustomModelSearch.d.ts +19 -0
  1740. package/components/local-inference/CustomModelSearch.d.ts.map +1 -0
  1741. package/components/local-inference/CustomModelSearch.js +128 -0
  1742. package/components/local-inference/DeviceBridgeStatus.d.ts +4 -1
  1743. package/components/local-inference/DeviceBridgeStatus.d.ts.map +1 -1
  1744. package/components/local-inference/DeviceBridgeStatus.js +18 -28
  1745. package/components/local-inference/DevicesPanel.d.ts +4 -1
  1746. package/components/local-inference/DevicesPanel.d.ts.map +1 -1
  1747. package/components/local-inference/DevicesPanel.js +21 -29
  1748. package/components/local-inference/DownloadProgress.d.ts.map +1 -1
  1749. package/components/local-inference/DownloadProgress.js +16 -2
  1750. package/components/local-inference/DownloadQueue.d.ts.map +1 -1
  1751. package/components/local-inference/DownloadQueue.js +16 -5
  1752. package/components/local-inference/FirstRunOffer.d.ts +3 -2
  1753. package/components/local-inference/FirstRunOffer.d.ts.map +1 -1
  1754. package/components/local-inference/FirstRunOffer.js +43 -23
  1755. package/components/local-inference/HardwareBadge.d.ts.map +1 -1
  1756. package/components/local-inference/HardwareBadge.js +12 -2
  1757. package/components/local-inference/LocalInferencePanel.d.ts.map +1 -1
  1758. package/components/local-inference/LocalInferencePanel.js +228 -38
  1759. package/components/local-inference/ModelCard.d.ts +2 -1
  1760. package/components/local-inference/ModelCard.d.ts.map +1 -1
  1761. package/components/local-inference/ModelCard.js +25 -5
  1762. package/components/local-inference/ModelHubView.d.ts.map +1 -1
  1763. package/components/local-inference/ModelHubView.js +29 -6
  1764. package/components/local-inference/ModelUpdatesPanel.d.ts +52 -0
  1765. package/components/local-inference/ModelUpdatesPanel.d.ts.map +1 -0
  1766. package/components/local-inference/ModelUpdatesPanel.js +113 -0
  1767. package/components/local-inference/ProvidersList.d.ts.map +1 -1
  1768. package/components/local-inference/ProvidersList.js +51 -17
  1769. package/components/local-inference/RoutingMatrix.d.ts.map +1 -1
  1770. package/components/local-inference/RoutingMatrix.js +126 -44
  1771. package/components/local-inference/SlotAssignments.d.ts.map +1 -1
  1772. package/components/local-inference/SlotAssignments.js +46 -27
  1773. package/components/local-inference/hub-utils.d.ts +4 -1
  1774. package/components/local-inference/hub-utils.d.ts.map +1 -1
  1775. package/components/local-inference/hub-utils.js +14 -8
  1776. package/components/local-inference/slot-metadata.d.ts +9 -0
  1777. package/components/local-inference/slot-metadata.d.ts.map +1 -0
  1778. package/components/local-inference/slot-metadata.js +32 -0
  1779. package/components/local-inference/useDeviceBridgeStatus.d.ts +4 -0
  1780. package/components/local-inference/useDeviceBridgeStatus.d.ts.map +1 -0
  1781. package/components/local-inference/useDeviceBridgeStatus.js +30 -0
  1782. package/components/local-inference/useHomeModelStatus.d.ts +9 -0
  1783. package/components/local-inference/useHomeModelStatus.d.ts.map +1 -0
  1784. package/components/local-inference/useHomeModelStatus.js +60 -0
  1785. package/components/pages/AppDetailsView.d.ts +1 -12
  1786. package/components/pages/AppDetailsView.d.ts.map +1 -1
  1787. package/components/pages/AppDetailsView.helpers.d.ts +11 -0
  1788. package/components/pages/AppDetailsView.helpers.d.ts.map +1 -0
  1789. package/components/pages/AppDetailsView.helpers.js +35 -0
  1790. package/components/pages/AppDetailsView.js +201 -61
  1791. package/components/pages/AppsPageView.d.ts.map +1 -1
  1792. package/components/pages/AppsPageView.js +12 -11
  1793. package/components/pages/AppsView.d.ts +0 -1
  1794. package/components/pages/AppsView.d.ts.map +1 -1
  1795. package/components/pages/AppsView.js +68 -57
  1796. package/components/pages/AutomationsFeed.d.ts +7 -18
  1797. package/components/pages/AutomationsFeed.d.ts.map +1 -1
  1798. package/components/pages/AutomationsFeed.js +279 -121
  1799. package/components/pages/BrowserWorkspaceView.d.ts +65 -11
  1800. package/components/pages/BrowserWorkspaceView.d.ts.map +1 -1
  1801. package/components/pages/BrowserWorkspaceView.js +255 -126
  1802. package/components/pages/CameraPageView.d.ts +2 -0
  1803. package/components/pages/CameraPageView.d.ts.map +1 -0
  1804. package/components/pages/CameraPageView.js +149 -0
  1805. package/components/pages/ChatView.d.ts +8 -2
  1806. package/components/pages/ChatView.d.ts.map +1 -1
  1807. package/components/pages/ChatView.js +128 -80
  1808. package/components/pages/ConfigPageView.d.ts.map +1 -1
  1809. package/components/pages/ConfigPageView.js +129 -75
  1810. package/components/pages/DatabasePageView.d.ts.map +1 -1
  1811. package/components/pages/DatabasePageView.js +32 -7
  1812. package/components/pages/DatabaseView.d.ts.map +1 -1
  1813. package/components/pages/DatabaseView.js +140 -67
  1814. package/components/pages/DocumentsView.d.ts +1 -1
  1815. package/components/pages/DocumentsView.d.ts.map +1 -1
  1816. package/components/pages/DocumentsView.js +141 -64
  1817. package/components/pages/ElizaCloudDashboard.d.ts.map +1 -1
  1818. package/components/pages/ElizaCloudDashboard.js +27 -20
  1819. package/components/pages/ElizaOsAppsView.d.ts.map +1 -1
  1820. package/components/pages/ElizaOsAppsView.js +407 -44
  1821. package/components/pages/GeneratedViewHero.d.ts +31 -0
  1822. package/components/pages/GeneratedViewHero.d.ts.map +1 -0
  1823. package/components/pages/GeneratedViewHero.js +118 -0
  1824. package/components/pages/HeartbeatForm.d.ts.map +1 -1
  1825. package/components/pages/HeartbeatForm.js +322 -28
  1826. package/components/pages/HeartbeatsView.d.ts.map +1 -1
  1827. package/components/pages/HeartbeatsView.js +162 -45
  1828. package/components/pages/LogsView.d.ts.map +1 -1
  1829. package/components/pages/LogsView.js +104 -40
  1830. package/components/pages/MediaGalleryView.d.ts.map +1 -1
  1831. package/components/pages/MediaGalleryView.js +65 -27
  1832. package/components/pages/MemoryDetailPanel.d.ts.map +1 -1
  1833. package/components/pages/MemoryDetailPanel.js +4 -3
  1834. package/components/pages/MemoryViewerView.d.ts.map +1 -1
  1835. package/components/pages/MemoryViewerView.js +250 -82
  1836. package/components/pages/PluginCard.d.ts +1 -1
  1837. package/components/pages/PluginCard.d.ts.map +1 -1
  1838. package/components/pages/PluginCard.js +64 -101
  1839. package/components/pages/PluginConfigForm.d.ts +0 -11
  1840. package/components/pages/PluginConfigForm.d.ts.map +1 -1
  1841. package/components/pages/PluginConfigForm.js +5 -4
  1842. package/components/pages/PluginVisual.d.ts +12 -0
  1843. package/components/pages/PluginVisual.d.ts.map +1 -0
  1844. package/components/pages/PluginVisual.js +66 -0
  1845. package/components/pages/PluginsPageView.d.ts.map +1 -1
  1846. package/components/pages/PluginsPageView.js +2 -1
  1847. package/components/pages/PluginsView.d.ts +0 -1
  1848. package/components/pages/PluginsView.d.ts.map +1 -1
  1849. package/components/pages/PluginsView.js +142 -71
  1850. package/components/pages/RelationshipsGraphPanel.d.ts.map +1 -1
  1851. package/components/pages/RelationshipsGraphPanel.js +58 -15
  1852. package/components/pages/RelationshipsIdentityCluster.js +1 -1
  1853. package/components/pages/RelationshipsView.d.ts.map +1 -1
  1854. package/components/pages/RelationshipsView.js +2 -1
  1855. package/components/pages/ReleaseCenterView.d.ts.map +1 -1
  1856. package/components/pages/ReleaseCenterView.js +192 -47
  1857. package/components/pages/RuntimeView.d.ts.map +1 -1
  1858. package/components/pages/RuntimeView.js +121 -60
  1859. package/components/pages/SecretsView.d.ts.map +1 -1
  1860. package/components/pages/SecretsView.js +47 -35
  1861. package/components/pages/SettingsView.d.ts +1 -1
  1862. package/components/pages/SettingsView.d.ts.map +1 -1
  1863. package/components/pages/SettingsView.js +133 -491
  1864. package/components/pages/SkillsView.d.ts.map +1 -1
  1865. package/components/pages/SkillsView.js +188 -82
  1866. package/components/pages/SqlEditorPanel.d.ts.map +1 -1
  1867. package/components/pages/SqlEditorPanel.js +7 -5
  1868. package/components/pages/StreamView.d.ts.map +1 -1
  1869. package/components/pages/StreamView.js +67 -62
  1870. package/components/pages/TaskEditor.d.ts +0 -1
  1871. package/components/pages/TaskEditor.d.ts.map +1 -1
  1872. package/components/pages/TaskEditor.js +107 -11
  1873. package/components/pages/TasksPageView.d.ts +4 -0
  1874. package/components/pages/TasksPageView.d.ts.map +1 -1
  1875. package/components/pages/TasksPageView.js +7 -7
  1876. package/components/pages/TrajectoriesView.d.ts.map +1 -1
  1877. package/components/pages/TrajectoriesView.js +67 -38
  1878. package/components/pages/TrajectoryDetailView.d.ts.map +1 -1
  1879. package/components/pages/TrajectoryDetailView.js +24 -33
  1880. package/components/pages/ViewCatalog.d.ts +10 -0
  1881. package/components/pages/ViewCatalog.d.ts.map +1 -0
  1882. package/components/pages/ViewCatalog.js +600 -0
  1883. package/components/pages/WorkflowEditor.d.ts +4 -4
  1884. package/components/pages/WorkflowEditor.d.ts.map +1 -1
  1885. package/components/pages/WorkflowEditor.js +402 -54
  1886. package/components/pages/WorkflowGraphViewer.d.ts.map +1 -1
  1887. package/components/pages/WorkflowGraphViewer.js +81 -65
  1888. package/components/pages/browser-workspace-wallet.d.ts +8 -1
  1889. package/components/pages/browser-workspace-wallet.d.ts.map +1 -1
  1890. package/components/pages/browser-workspace-wallet.js +54 -5
  1891. package/components/pages/chat-view-hooks.d.ts +17 -7
  1892. package/components/pages/chat-view-hooks.d.ts.map +1 -1
  1893. package/components/pages/chat-view-hooks.js +189 -86
  1894. package/components/pages/config-page-sections.d.ts +1 -45
  1895. package/components/pages/config-page-sections.d.ts.map +1 -1
  1896. package/components/pages/config-page-sections.helpers.d.ts +37 -0
  1897. package/components/pages/config-page-sections.helpers.d.ts.map +1 -0
  1898. package/components/pages/config-page-sections.helpers.js +4 -0
  1899. package/components/pages/config-page-sections.js +24 -17
  1900. package/components/pages/database-utils.d.ts +0 -6
  1901. package/components/pages/database-utils.d.ts.map +1 -1
  1902. package/components/pages/database-utils.js +14 -18
  1903. package/components/pages/documents-detail.d.ts +0 -4
  1904. package/components/pages/documents-detail.d.ts.map +1 -1
  1905. package/components/pages/documents-detail.helpers.d.ts +5 -0
  1906. package/components/pages/documents-detail.helpers.d.ts.map +1 -0
  1907. package/components/pages/documents-detail.helpers.js +24 -0
  1908. package/components/pages/documents-detail.js +8 -28
  1909. package/components/pages/documents-upload.d.ts +1 -18
  1910. package/components/pages/documents-upload.d.ts.map +1 -1
  1911. package/components/pages/documents-upload.helpers.d.ts +19 -0
  1912. package/components/pages/documents-upload.helpers.d.ts.map +1 -0
  1913. package/components/pages/documents-upload.helpers.js +46 -0
  1914. package/components/pages/documents-upload.js +115 -60
  1915. package/components/pages/heartbeat-utils.d.ts +3 -5
  1916. package/components/pages/heartbeat-utils.d.ts.map +1 -1
  1917. package/components/pages/heartbeat-utils.js +11 -26
  1918. package/components/pages/help/HelpView.d.ts +3 -0
  1919. package/components/pages/help/HelpView.d.ts.map +1 -0
  1920. package/components/pages/help/HelpView.js +80 -0
  1921. package/components/pages/help/help-content.d.ts +28 -0
  1922. package/components/pages/help/help-content.d.ts.map +1 -0
  1923. package/components/pages/help/help-content.js +479 -0
  1924. package/components/pages/page-scoped-conversations.js +1 -1
  1925. package/components/pages/plugin-list-utils.d.ts +10 -1
  1926. package/components/pages/plugin-list-utils.d.ts.map +1 -1
  1927. package/components/pages/plugin-list-utils.js +45 -4
  1928. package/components/pages/plugin-view-connectors.d.ts.map +1 -1
  1929. package/components/pages/plugin-view-connectors.js +220 -51
  1930. package/components/pages/plugin-view-dialogs.d.ts.map +1 -1
  1931. package/components/pages/plugin-view-dialogs.js +59 -13
  1932. package/components/pages/plugin-view-modal.d.ts.map +1 -1
  1933. package/components/pages/plugin-view-modal.js +91 -10
  1934. package/components/pages/plugin-view-sidebar.d.ts +1 -3
  1935. package/components/pages/plugin-view-sidebar.d.ts.map +1 -1
  1936. package/components/pages/plugin-view-sidebar.js +87 -21
  1937. package/components/pages/relationships/RelationshipsActivityFeed.d.ts.map +1 -1
  1938. package/components/pages/relationships/RelationshipsActivityFeed.js +17 -7
  1939. package/components/pages/relationships/RelationshipsCandidateMergesPanel.d.ts.map +1 -1
  1940. package/components/pages/relationships/RelationshipsCandidateMergesPanel.js +34 -6
  1941. package/components/pages/relationships/RelationshipsPersonPanels.d.ts.map +1 -1
  1942. package/components/pages/relationships/RelationshipsPersonPanels.js +171 -50
  1943. package/components/pages/relationships/RelationshipsSidebar.d.ts +1 -4
  1944. package/components/pages/relationships/RelationshipsSidebar.d.ts.map +1 -1
  1945. package/components/pages/relationships/RelationshipsSidebar.js +8 -12
  1946. package/components/pages/relationships/RelationshipsWorkspaceView.d.ts.map +1 -1
  1947. package/components/pages/relationships/RelationshipsWorkspaceView.js +77 -17
  1948. package/components/pages/skill-detail-panel.d.ts.map +1 -1
  1949. package/components/pages/skill-detail-panel.js +52 -12
  1950. package/components/pages/skill-marketplace.d.ts.map +1 -1
  1951. package/components/pages/skill-marketplace.js +82 -21
  1952. package/components/pages/tutorial/TutorialNarrator.d.ts +13 -0
  1953. package/components/pages/tutorial/TutorialNarrator.d.ts.map +1 -0
  1954. package/components/pages/tutorial/TutorialNarrator.js +42 -0
  1955. package/components/pages/tutorial/TutorialOverlay.d.ts +3 -0
  1956. package/components/pages/tutorial/TutorialOverlay.d.ts.map +1 -0
  1957. package/components/pages/tutorial/TutorialOverlay.js +181 -0
  1958. package/components/pages/tutorial/TutorialSpotlight.d.ts +25 -0
  1959. package/components/pages/tutorial/TutorialSpotlight.d.ts.map +1 -0
  1960. package/components/pages/tutorial/TutorialSpotlight.js +139 -0
  1961. package/components/pages/tutorial/TutorialView.d.ts +9 -0
  1962. package/components/pages/tutorial/TutorialView.d.ts.map +1 -0
  1963. package/components/pages/tutorial/TutorialView.js +30 -0
  1964. package/components/pages/tutorial/tutorial-controller.d.ts +10 -0
  1965. package/components/pages/tutorial/tutorial-controller.d.ts.map +1 -0
  1966. package/components/pages/tutorial/tutorial-controller.js +54 -0
  1967. package/components/pages/tutorial/tutorial-steps.d.ts +83 -0
  1968. package/components/pages/tutorial/tutorial-steps.d.ts.map +1 -0
  1969. package/components/pages/tutorial/tutorial-steps.js +95 -0
  1970. package/components/pages/useBrowserWorkspaceWalletBridge.d.ts +21 -2
  1971. package/components/pages/useBrowserWorkspaceWalletBridge.d.ts.map +1 -1
  1972. package/components/pages/useBrowserWorkspaceWalletBridge.js +58 -182
  1973. package/components/pages/workflow-action-handoff.d.ts +4 -0
  1974. package/components/pages/workflow-action-handoff.d.ts.map +1 -0
  1975. package/components/pages/workflow-action-handoff.js +24 -0
  1976. package/components/permissions/PermissionRecoveryCallout.d.ts +13 -0
  1977. package/components/permissions/PermissionRecoveryCallout.d.ts.map +1 -0
  1978. package/components/permissions/PermissionRecoveryCallout.js +46 -0
  1979. package/components/permissions/StreamingPermissions.d.ts +0 -1
  1980. package/components/permissions/StreamingPermissions.d.ts.map +1 -1
  1981. package/components/permissions/StreamingPermissions.js +6 -7
  1982. package/components/plugins/showcase-data.d.ts.map +1 -1
  1983. package/components/plugins/showcase-data.js +3 -3
  1984. package/components/policy-controls/ApprovedAddressesSection.d.ts +0 -1
  1985. package/components/policy-controls/ApprovedAddressesSection.d.ts.map +1 -1
  1986. package/components/policy-controls/ApprovedAddressesSection.helpers.d.ts +3 -0
  1987. package/components/policy-controls/ApprovedAddressesSection.helpers.d.ts.map +1 -0
  1988. package/components/policy-controls/ApprovedAddressesSection.helpers.js +5 -0
  1989. package/components/policy-controls/ApprovedAddressesSection.js +36 -15
  1990. package/components/policy-controls/AutoApproveSection.d.ts +0 -1
  1991. package/components/policy-controls/AutoApproveSection.d.ts.map +1 -1
  1992. package/components/policy-controls/AutoApproveSection.helpers.d.ts +3 -0
  1993. package/components/policy-controls/AutoApproveSection.helpers.d.ts.map +1 -0
  1994. package/components/policy-controls/AutoApproveSection.helpers.js +3 -0
  1995. package/components/policy-controls/AutoApproveSection.js +10 -6
  1996. package/components/policy-controls/PolicyToggle.d.ts.map +1 -1
  1997. package/components/policy-controls/PolicyToggle.js +5 -3
  1998. package/components/policy-controls/RateLimitSection.d.ts +0 -1
  1999. package/components/policy-controls/RateLimitSection.d.ts.map +1 -1
  2000. package/components/policy-controls/RateLimitSection.helpers.d.ts +3 -0
  2001. package/components/policy-controls/RateLimitSection.helpers.d.ts.map +1 -0
  2002. package/components/policy-controls/RateLimitSection.helpers.js +3 -0
  2003. package/components/policy-controls/RateLimitSection.js +5 -5
  2004. package/components/policy-controls/SpendingLimitSection.d.ts +0 -1
  2005. package/components/policy-controls/SpendingLimitSection.d.ts.map +1 -1
  2006. package/components/policy-controls/SpendingLimitSection.helpers.d.ts +3 -0
  2007. package/components/policy-controls/SpendingLimitSection.helpers.d.ts.map +1 -0
  2008. package/components/policy-controls/SpendingLimitSection.helpers.js +3 -0
  2009. package/components/policy-controls/SpendingLimitSection.js +7 -5
  2010. package/components/policy-controls/TimeWindowSection.d.ts +0 -1
  2011. package/components/policy-controls/TimeWindowSection.d.ts.map +1 -1
  2012. package/components/policy-controls/TimeWindowSection.helpers.d.ts +3 -0
  2013. package/components/policy-controls/TimeWindowSection.helpers.d.ts.map +1 -0
  2014. package/components/policy-controls/TimeWindowSection.helpers.js +10 -0
  2015. package/components/policy-controls/TimeWindowSection.js +8 -14
  2016. package/components/policy-controls/index.d.ts +10 -5
  2017. package/components/policy-controls/index.d.ts.map +1 -1
  2018. package/components/policy-controls/index.js +10 -5
  2019. package/components/policy-controls/types.js +1 -1
  2020. package/components/primitives/index.d.ts +5 -1
  2021. package/components/primitives/index.d.ts.map +1 -1
  2022. package/components/primitives/index.js +5 -1
  2023. package/components/release-center/sections.d.ts.map +1 -1
  2024. package/components/release-center/sections.js +16 -14
  2025. package/components/release-center/shared.d.ts +0 -3
  2026. package/components/release-center/shared.d.ts.map +1 -1
  2027. package/components/release-center/shared.helpers.d.ts +4 -0
  2028. package/components/release-center/shared.helpers.d.ts.map +1 -0
  2029. package/components/release-center/shared.helpers.js +21 -0
  2030. package/components/release-center/shared.js +1 -22
  2031. package/components/settings/AdvancedSection.d.ts +2 -0
  2032. package/components/settings/AdvancedSection.d.ts.map +1 -0
  2033. package/components/settings/AdvancedSection.js +143 -0
  2034. package/components/settings/AdvancedToggle.d.ts +15 -0
  2035. package/components/settings/AdvancedToggle.d.ts.map +1 -0
  2036. package/components/settings/AdvancedToggle.hooks.d.ts +22 -0
  2037. package/components/settings/AdvancedToggle.hooks.d.ts.map +1 -0
  2038. package/components/settings/AdvancedToggle.hooks.js +63 -0
  2039. package/components/settings/AdvancedToggle.js +39 -0
  2040. package/components/settings/ApiKeyConfig.d.ts +1 -7
  2041. package/components/settings/ApiKeyConfig.d.ts.map +1 -1
  2042. package/components/settings/ApiKeyConfig.js +127 -83
  2043. package/components/settings/AppPermissionsSection.d.ts +10 -0
  2044. package/components/settings/AppPermissionsSection.d.ts.map +1 -0
  2045. package/components/settings/AppPermissionsSection.js +157 -0
  2046. package/components/settings/AppearanceSettingsSection.d.ts.map +1 -1
  2047. package/components/settings/AppearanceSettingsSection.js +22 -250
  2048. package/components/settings/AppsManagementSection.d.ts +1 -7
  2049. package/components/settings/AppsManagementSection.d.ts.map +1 -1
  2050. package/components/settings/AppsManagementSection.js +193 -74
  2051. package/components/settings/CapabilitiesSection.d.ts.map +1 -1
  2052. package/components/settings/CapabilitiesSection.js +268 -28
  2053. package/components/settings/CloudAgentsSection.d.ts +7 -0
  2054. package/components/settings/CloudAgentsSection.d.ts.map +1 -0
  2055. package/components/settings/CloudAgentsSection.js +402 -0
  2056. package/components/settings/ConnectorsSection.d.ts +9 -0
  2057. package/components/settings/ConnectorsSection.d.ts.map +1 -0
  2058. package/components/settings/ConnectorsSection.js +181 -0
  2059. package/components/settings/DesktopWorkspaceDisplay.d.ts +7 -0
  2060. package/components/settings/DesktopWorkspaceDisplay.d.ts.map +1 -0
  2061. package/components/settings/DesktopWorkspaceDisplay.hooks.d.ts +5 -0
  2062. package/components/settings/DesktopWorkspaceDisplay.hooks.d.ts.map +1 -0
  2063. package/components/settings/DesktopWorkspaceDisplay.hooks.js +27 -0
  2064. package/components/settings/DesktopWorkspaceDisplay.js +5 -0
  2065. package/components/settings/DesktopWorkspaceSection.d.ts +0 -2
  2066. package/components/settings/DesktopWorkspaceSection.d.ts.map +1 -1
  2067. package/components/settings/DesktopWorkspaceSection.js +194 -321
  2068. package/components/settings/IdentitySettingsSection.d.ts.map +1 -1
  2069. package/components/settings/IdentitySettingsSection.js +58 -58
  2070. package/components/settings/LoadContentPackForm.d.ts +2 -0
  2071. package/components/settings/LoadContentPackForm.d.ts.map +1 -0
  2072. package/components/settings/LoadContentPackForm.js +78 -0
  2073. package/components/settings/LoadedPacksList.d.ts +9 -0
  2074. package/components/settings/LoadedPacksList.d.ts.map +1 -0
  2075. package/components/settings/LoadedPacksList.js +30 -0
  2076. package/components/settings/PermissionsSection.d.ts.map +1 -1
  2077. package/components/settings/PermissionsSection.js +266 -47
  2078. package/components/settings/PolicyControlsView.d.ts.map +1 -1
  2079. package/components/settings/PolicyControlsView.js +295 -74
  2080. package/components/settings/ProviderCard.d.ts +29 -0
  2081. package/components/settings/ProviderCard.d.ts.map +1 -0
  2082. package/components/settings/ProviderCard.js +32 -0
  2083. package/components/settings/ProviderPanels.d.ts +71 -0
  2084. package/components/settings/ProviderPanels.d.ts.map +1 -0
  2085. package/components/settings/ProviderPanels.js +57 -0
  2086. package/components/settings/ProviderRoutingPanel.d.ts +22 -0
  2087. package/components/settings/ProviderRoutingPanel.d.ts.map +1 -0
  2088. package/components/settings/ProviderRoutingPanel.js +26 -0
  2089. package/components/settings/ProviderSwitcher.d.ts +1 -11
  2090. package/components/settings/ProviderSwitcher.d.ts.map +1 -1
  2091. package/components/settings/ProviderSwitcher.js +58 -600
  2092. package/components/settings/RemotePluginHostSection.d.ts +6 -0
  2093. package/components/settings/RemotePluginHostSection.d.ts.map +1 -0
  2094. package/components/settings/RemotePluginHostSection.js +316 -0
  2095. package/components/settings/RuntimeSettingsSection.d.ts +0 -8
  2096. package/components/settings/RuntimeSettingsSection.d.ts.map +1 -1
  2097. package/components/settings/RuntimeSettingsSection.js +50 -46
  2098. package/components/settings/SecretsManagerSection.d.ts +0 -3
  2099. package/components/settings/SecretsManagerSection.d.ts.map +1 -1
  2100. package/components/settings/SecretsManagerSection.js +18 -36
  2101. package/components/settings/SecuritySettingsSection.d.ts.map +1 -1
  2102. package/components/settings/SecuritySettingsSection.js +298 -74
  2103. package/components/settings/SubscriptionStatus.d.ts +1 -6
  2104. package/components/settings/SubscriptionStatus.d.ts.map +1 -1
  2105. package/components/settings/SubscriptionStatus.js +78 -35
  2106. package/components/settings/VaultInventoryPanel.d.ts.map +1 -1
  2107. package/components/settings/VaultInventoryPanel.js +261 -18
  2108. package/components/settings/VoiceConfigView.d.ts +0 -2
  2109. package/components/settings/VoiceConfigView.d.ts.map +1 -1
  2110. package/components/settings/VoiceConfigView.helpers.d.ts +3 -0
  2111. package/components/settings/VoiceConfigView.helpers.d.ts.map +1 -0
  2112. package/components/settings/VoiceConfigView.helpers.js +34 -0
  2113. package/components/settings/VoiceConfigView.js +354 -166
  2114. package/components/settings/VoiceProfileSection.d.ts +19 -0
  2115. package/components/settings/VoiceProfileSection.d.ts.map +1 -0
  2116. package/components/settings/VoiceProfileSection.js +295 -0
  2117. package/components/settings/VoiceSection.d.ts +57 -0
  2118. package/components/settings/VoiceSection.d.ts.map +1 -0
  2119. package/components/settings/VoiceSection.helpers.d.ts +4 -0
  2120. package/components/settings/VoiceSection.helpers.d.ts.map +1 -0
  2121. package/components/settings/VoiceSection.helpers.js +13 -0
  2122. package/components/settings/VoiceSection.js +158 -0
  2123. package/components/settings/VoiceSectionMount.d.ts +17 -0
  2124. package/components/settings/VoiceSectionMount.d.ts.map +1 -0
  2125. package/components/settings/VoiceSectionMount.js +103 -0
  2126. package/components/settings/VoiceTierBanner.d.ts +19 -0
  2127. package/components/settings/VoiceTierBanner.d.ts.map +1 -0
  2128. package/components/settings/VoiceTierBanner.helpers.d.ts +4 -0
  2129. package/components/settings/VoiceTierBanner.helpers.d.ts.map +1 -0
  2130. package/components/settings/VoiceTierBanner.helpers.js +7 -0
  2131. package/components/settings/VoiceTierBanner.js +52 -0
  2132. package/components/settings/WalletKeysSection.d.ts +3 -13
  2133. package/components/settings/WalletKeysSection.d.ts.map +1 -1
  2134. package/components/settings/WalletKeysSection.js +119 -26
  2135. package/components/settings/WalletRpcSection.d.ts +2 -0
  2136. package/components/settings/WalletRpcSection.d.ts.map +1 -0
  2137. package/components/settings/WalletRpcSection.js +7 -0
  2138. package/components/settings/XRSettingsSection.d.ts +2 -0
  2139. package/components/settings/XRSettingsSection.d.ts.map +1 -0
  2140. package/components/settings/XRSettingsSection.js +114 -0
  2141. package/components/settings/appearance-primitives.helpers.d.ts +2 -0
  2142. package/components/settings/appearance-primitives.helpers.d.ts.map +1 -0
  2143. package/components/settings/appearance-primitives.helpers.js +5 -0
  2144. package/components/settings/cloud-model-schema.d.ts +2 -2
  2145. package/components/settings/cloud-model-schema.d.ts.map +1 -1
  2146. package/components/settings/cloud-model-schema.js +1 -8
  2147. package/components/settings/desktop-workspace-audit-config.d.ts +3 -0
  2148. package/components/settings/desktop-workspace-audit-config.d.ts.map +1 -0
  2149. package/components/settings/desktop-workspace-audit-config.js +171 -0
  2150. package/components/settings/permission-controls.d.ts +1 -17
  2151. package/components/settings/permission-controls.d.ts.map +1 -1
  2152. package/components/settings/permission-controls.hooks.d.ts +18 -0
  2153. package/components/settings/permission-controls.hooks.d.ts.map +1 -0
  2154. package/components/settings/permission-controls.hooks.js +434 -0
  2155. package/components/settings/permission-controls.js +83 -460
  2156. package/components/settings/permission-types.d.ts +1 -1
  2157. package/components/settings/permission-types.d.ts.map +1 -1
  2158. package/components/settings/permission-types.js +144 -16
  2159. package/components/settings/settings-agent-rows.d.ts +96 -0
  2160. package/components/settings/settings-agent-rows.d.ts.map +1 -0
  2161. package/components/settings/settings-agent-rows.js +110 -0
  2162. package/components/settings/settings-control-primitives.d.ts +4 -5
  2163. package/components/settings/settings-control-primitives.d.ts.map +1 -1
  2164. package/components/settings/settings-control-primitives.hooks.d.ts +14 -0
  2165. package/components/settings/settings-control-primitives.hooks.d.ts.map +1 -0
  2166. package/components/settings/settings-control-primitives.hooks.js +43 -0
  2167. package/components/settings/settings-control-primitives.js +10 -12
  2168. package/components/settings/settings-layout.d.ts +78 -0
  2169. package/components/settings/settings-layout.d.ts.map +1 -0
  2170. package/components/settings/settings-layout.js +36 -0
  2171. package/components/settings/settings-section-meta.d.ts +26 -0
  2172. package/components/settings/settings-section-meta.d.ts.map +1 -0
  2173. package/components/settings/settings-section-meta.js +42 -0
  2174. package/components/settings/settings-section-registry.d.ts +55 -0
  2175. package/components/settings/settings-section-registry.d.ts.map +1 -0
  2176. package/components/settings/settings-section-registry.js +33 -0
  2177. package/components/settings/settings-section-tokens.d.ts +18 -0
  2178. package/components/settings/settings-section-tokens.d.ts.map +1 -0
  2179. package/components/settings/settings-section-tokens.js +66 -0
  2180. package/components/settings/settings-sections.d.ts +21 -0
  2181. package/components/settings/settings-sections.d.ts.map +1 -0
  2182. package/components/settings/settings-sections.js +227 -0
  2183. package/components/settings/useCloudModelConfig.d.ts +28 -0
  2184. package/components/settings/useCloudModelConfig.d.ts.map +1 -0
  2185. package/components/settings/useCloudModelConfig.js +198 -0
  2186. package/components/settings/useDesktopWindowControls.d.ts +13 -0
  2187. package/components/settings/useDesktopWindowControls.d.ts.map +1 -0
  2188. package/components/settings/useDesktopWindowControls.js +59 -0
  2189. package/components/settings/useProviderBootstrap.d.ts +15 -0
  2190. package/components/settings/useProviderBootstrap.d.ts.map +1 -0
  2191. package/components/settings/useProviderBootstrap.js +74 -0
  2192. package/components/settings/useProviderEntries.d.ts +51 -0
  2193. package/components/settings/useProviderEntries.d.ts.map +1 -0
  2194. package/components/settings/useProviderEntries.js +180 -0
  2195. package/components/settings/useProviderSelection.d.ts +31 -0
  2196. package/components/settings/useProviderSelection.d.ts.map +1 -0
  2197. package/components/settings/useProviderSelection.js +231 -0
  2198. package/components/settings/vault-tabs/LoginsTab.d.ts +0 -2
  2199. package/components/settings/vault-tabs/LoginsTab.d.ts.map +1 -1
  2200. package/components/settings/vault-tabs/LoginsTab.js +144 -28
  2201. package/components/settings/vault-tabs/OverviewTab.d.ts +3 -5
  2202. package/components/settings/vault-tabs/OverviewTab.d.ts.map +1 -1
  2203. package/components/settings/vault-tabs/OverviewTab.js +240 -19
  2204. package/components/settings/vault-tabs/RoutingTab.d.ts +2 -5
  2205. package/components/settings/vault-tabs/RoutingTab.d.ts.map +1 -1
  2206. package/components/settings/vault-tabs/RoutingTab.js +155 -17
  2207. package/components/settings/vault-tabs/types.d.ts +7 -1
  2208. package/components/settings/vault-tabs/types.d.ts.map +1 -1
  2209. package/components/settings/vault-tabs/types.js +30 -1
  2210. package/components/setup/BootstrapStep.d.ts +35 -0
  2211. package/components/setup/BootstrapStep.d.ts.map +1 -0
  2212. package/components/setup/BootstrapStep.js +181 -0
  2213. package/components/setup/setup-classes.d.ts +28 -0
  2214. package/components/setup/setup-classes.d.ts.map +1 -0
  2215. package/components/setup/setup-classes.js +32 -0
  2216. package/components/setup/setup-form-primitives.d.ts +20 -0
  2217. package/components/setup/setup-form-primitives.d.ts.map +1 -0
  2218. package/components/setup/setup-form-primitives.js +11 -0
  2219. package/components/setup/setup-step-chrome.d.ts +2 -0
  2220. package/components/setup/setup-step-chrome.d.ts.map +1 -0
  2221. package/components/setup/setup-step-chrome.js +4 -0
  2222. package/components/shared/AppPageSidebar.d.ts +1 -1
  2223. package/components/shared/AppPageSidebar.d.ts.map +1 -1
  2224. package/components/shared/AppPageSidebar.js +2 -2
  2225. package/components/shared/CollapsibleSidebarSection.js +1 -1
  2226. package/components/shared/LanguageDropdown.d.ts +0 -7
  2227. package/components/shared/LanguageDropdown.d.ts.map +1 -1
  2228. package/components/shared/LanguageDropdown.helpers.d.ts +9 -0
  2229. package/components/shared/LanguageDropdown.helpers.d.ts.map +1 -0
  2230. package/components/shared/LanguageDropdown.helpers.js +12 -0
  2231. package/components/shared/LanguageDropdown.js +9 -18
  2232. package/components/shared/ThemeToggle.d.ts.map +1 -1
  2233. package/components/shared/ThemeToggle.js +7 -3
  2234. package/components/shared/confirm-delete-control.d.ts.map +1 -1
  2235. package/components/shared/confirm-delete-control.js +1 -1
  2236. package/components/shell/ActionBanner.d.ts +10 -0
  2237. package/components/shell/ActionBanner.d.ts.map +1 -0
  2238. package/components/shell/ActionBanner.js +27 -0
  2239. package/components/shell/AssistantOverlay.d.ts +25 -0
  2240. package/components/shell/AssistantOverlay.d.ts.map +1 -0
  2241. package/components/shell/AssistantOverlay.js +113 -0
  2242. package/components/shell/BugReportModal.d.ts.map +1 -1
  2243. package/components/shell/BugReportModal.js +19 -19
  2244. package/components/shell/ChatAmbientBackground.d.ts +8 -0
  2245. package/components/shell/ChatAmbientBackground.d.ts.map +1 -0
  2246. package/components/shell/ChatAmbientBackground.js +51 -0
  2247. package/components/shell/ChatSurface.d.ts +12 -0
  2248. package/components/shell/ChatSurface.d.ts.map +1 -0
  2249. package/components/shell/ChatSurface.js +55 -0
  2250. package/components/shell/CloudHandoffBanner.d.ts +15 -0
  2251. package/components/shell/CloudHandoffBanner.d.ts.map +1 -0
  2252. package/components/shell/CloudHandoffBanner.js +45 -0
  2253. package/components/shell/CommandPalette.js +4 -2
  2254. package/components/shell/ComputerUseApprovalOverlay.d.ts.map +1 -1
  2255. package/components/shell/ComputerUseApprovalOverlay.js +76 -13
  2256. package/components/shell/ConnectionFailedBanner.d.ts.map +1 -1
  2257. package/components/shell/ConnectionFailedBanner.js +6 -3
  2258. package/components/shell/ConnectionLostOverlay.d.ts.map +1 -1
  2259. package/components/shell/ConnectionLostOverlay.js +5 -4
  2260. package/components/shell/ContinuousChatOverlay.d.ts +25 -0
  2261. package/components/shell/ContinuousChatOverlay.d.ts.map +1 -0
  2262. package/components/shell/ContinuousChatOverlay.js +1918 -0
  2263. package/components/shell/HomePill.d.ts +15 -0
  2264. package/components/shell/HomePill.d.ts.map +1 -0
  2265. package/components/shell/HomePill.js +27 -0
  2266. package/components/shell/HomeScreen.d.ts +23 -0
  2267. package/components/shell/HomeScreen.d.ts.map +1 -0
  2268. package/components/shell/HomeScreen.js +158 -0
  2269. package/components/shell/KioskViewCanvas.d.ts +23 -0
  2270. package/components/shell/KioskViewCanvas.d.ts.map +1 -0
  2271. package/components/shell/KioskViewCanvas.js +82 -0
  2272. package/components/shell/LoadingScreen.d.ts +1 -2
  2273. package/components/shell/LoadingScreen.d.ts.map +1 -1
  2274. package/components/shell/LoadingScreen.js +2 -12
  2275. package/components/shell/NotificationCenter.d.ts +16 -0
  2276. package/components/shell/NotificationCenter.d.ts.map +1 -0
  2277. package/components/shell/NotificationCenter.js +96 -0
  2278. package/components/shell/PairingCommandHint.d.ts.map +1 -1
  2279. package/components/shell/PairingCommandHint.js +10 -14
  2280. package/components/shell/PairingView.d.ts.map +1 -1
  2281. package/components/shell/PairingView.js +12 -6
  2282. package/components/shell/RestartBanner.d.ts.map +1 -1
  2283. package/components/shell/RestartBanner.js +5 -3
  2284. package/components/shell/ShellControllerContext.d.ts +10 -0
  2285. package/components/shell/ShellControllerContext.d.ts.map +1 -0
  2286. package/components/shell/ShellControllerContext.hooks.d.ts +6 -0
  2287. package/components/shell/ShellControllerContext.hooks.d.ts.map +1 -0
  2288. package/components/shell/ShellControllerContext.hooks.js +6 -0
  2289. package/components/shell/ShellControllerContext.js +12 -0
  2290. package/components/shell/ShellHeaderControls.d.ts +1 -1
  2291. package/components/shell/ShellHeaderControls.d.ts.map +1 -1
  2292. package/components/shell/ShellHeaderControls.js +8 -7
  2293. package/components/shell/ShellOverlays.d.ts.map +1 -1
  2294. package/components/shell/ShellOverlays.js +59 -2
  2295. package/components/shell/ShortcutsOverlay.js +2 -2
  2296. package/components/shell/SlashCommandMenu.d.ts +47 -0
  2297. package/components/shell/SlashCommandMenu.d.ts.map +1 -0
  2298. package/components/shell/SlashCommandMenu.js +150 -0
  2299. package/components/shell/StartupFailureView.d.ts.map +1 -1
  2300. package/components/shell/StartupFailureView.js +9 -91
  2301. package/components/shell/StartupScreen.d.ts +2 -0
  2302. package/components/shell/StartupScreen.d.ts.map +1 -0
  2303. package/components/shell/StartupScreen.js +8 -0
  2304. package/components/shell/StartupShell.d.ts +2 -11
  2305. package/components/shell/StartupShell.d.ts.map +1 -1
  2306. package/components/shell/StartupShell.js +32 -220
  2307. package/components/shell/SystemWarningBanner.d.ts.map +1 -1
  2308. package/components/shell/SystemWarningBanner.js +4 -2
  2309. package/components/shell/__e2e__/chat-ambient-fixture.d.ts +2 -0
  2310. package/components/shell/__e2e__/chat-ambient-fixture.d.ts.map +1 -0
  2311. package/components/shell/__e2e__/chat-ambient-fixture.js +9 -0
  2312. package/components/shell/__e2e__/chat-sheet-fixture.d.ts +2 -0
  2313. package/components/shell/__e2e__/chat-sheet-fixture.d.ts.map +1 -0
  2314. package/components/shell/__e2e__/chat-sheet-fixture.js +264 -0
  2315. package/components/shell/__e2e__/home-screen-fixture.activity-stub.d.ts +10 -0
  2316. package/components/shell/__e2e__/home-screen-fixture.activity-stub.d.ts.map +1 -0
  2317. package/components/shell/__e2e__/home-screen-fixture.activity-stub.js +12 -0
  2318. package/components/shell/__e2e__/home-screen-fixture.api-stub.d.ts +15 -0
  2319. package/components/shell/__e2e__/home-screen-fixture.api-stub.d.ts.map +1 -0
  2320. package/components/shell/__e2e__/home-screen-fixture.api-stub.js +11 -0
  2321. package/components/shell/__e2e__/home-screen-fixture.d.ts +2 -0
  2322. package/components/shell/__e2e__/home-screen-fixture.d.ts.map +1 -0
  2323. package/components/shell/__e2e__/home-screen-fixture.docvis-stub.d.ts +3 -0
  2324. package/components/shell/__e2e__/home-screen-fixture.docvis-stub.d.ts.map +1 -0
  2325. package/components/shell/__e2e__/home-screen-fixture.docvis-stub.js +3 -0
  2326. package/components/shell/__e2e__/home-screen-fixture.js +14 -0
  2327. package/components/shell/__e2e__/home-screen-fixture.views-stub.d.ts +8 -0
  2328. package/components/shell/__e2e__/home-screen-fixture.views-stub.d.ts.map +1 -0
  2329. package/components/shell/__e2e__/home-screen-fixture.views-stub.js +13 -0
  2330. package/components/shell/__e2e__/usePromptSuggestions.stub.d.ts +2 -0
  2331. package/components/shell/__e2e__/usePromptSuggestions.stub.d.ts.map +1 -0
  2332. package/components/shell/__e2e__/usePromptSuggestions.stub.js +11 -0
  2333. package/components/shell/first-run-theme.d.ts +6 -0
  2334. package/components/shell/first-run-theme.d.ts.map +1 -0
  2335. package/components/shell/first-run-theme.js +31 -0
  2336. package/components/shell/glass-composer.d.ts +13 -0
  2337. package/components/shell/glass-composer.d.ts.map +1 -0
  2338. package/components/shell/glass-composer.helpers.d.ts +3 -0
  2339. package/components/shell/glass-composer.helpers.d.ts.map +1 -0
  2340. package/components/shell/glass-composer.helpers.js +2 -0
  2341. package/components/shell/glass-composer.js +43 -0
  2342. package/components/shell/shell-state.d.ts +25 -0
  2343. package/components/shell/shell-state.d.ts.map +1 -0
  2344. package/components/shell/shell-state.js +1 -0
  2345. package/components/shell/startup-shell-types.d.ts +25 -0
  2346. package/components/shell/startup-shell-types.d.ts.map +1 -0
  2347. package/components/shell/startup-shell-types.js +1 -0
  2348. package/components/shell/use-pull-gesture.d.ts +44 -0
  2349. package/components/shell/use-pull-gesture.d.ts.map +1 -0
  2350. package/components/shell/use-pull-gesture.js +85 -0
  2351. package/components/shell/useKioskViewSurfaces.d.ts +28 -0
  2352. package/components/shell/useKioskViewSurfaces.d.ts.map +1 -0
  2353. package/components/shell/useKioskViewSurfaces.js +56 -0
  2354. package/components/shell/usePromptSuggestions.d.ts +39 -0
  2355. package/components/shell/usePromptSuggestions.d.ts.map +1 -0
  2356. package/components/shell/usePromptSuggestions.js +277 -0
  2357. package/components/shell/useShellController.d.ts +110 -0
  2358. package/components/shell/useShellController.d.ts.map +1 -0
  2359. package/components/shell/useShellController.js +695 -0
  2360. package/components/shell/useShellVoiceOutput.d.ts +38 -0
  2361. package/components/shell/useShellVoiceOutput.d.ts.map +1 -0
  2362. package/components/shell/useShellVoiceOutput.js +116 -0
  2363. package/components/steward/injected.js +1 -1
  2364. package/components/stream/StatusBar.d.ts.map +1 -1
  2365. package/components/stream/StatusBar.js +6 -14
  2366. package/components/stream/popout-url.d.ts +3 -0
  2367. package/components/stream/popout-url.d.ts.map +1 -0
  2368. package/components/stream/popout-url.js +17 -0
  2369. package/components/tool-events/ToolCallEventLog.d.ts +0 -2
  2370. package/components/tool-events/ToolCallEventLog.d.ts.map +1 -1
  2371. package/components/tool-events/ToolCallEventLog.helpers.d.ts +5 -0
  2372. package/components/tool-events/ToolCallEventLog.helpers.d.ts.map +1 -0
  2373. package/components/tool-events/ToolCallEventLog.helpers.js +19 -0
  2374. package/components/tool-events/ToolCallEventLog.js +3 -21
  2375. package/components/training/BudgetPanel.d.ts +14 -0
  2376. package/components/training/BudgetPanel.d.ts.map +1 -0
  2377. package/components/training/BudgetPanel.js +91 -0
  2378. package/components/training/InferenceEndpointPanel.d.ts.map +1 -1
  2379. package/components/training/InferenceEndpointPanel.js +52 -11
  2380. package/components/training/JobDetailPanel.d.ts.map +1 -1
  2381. package/components/training/JobDetailPanel.js +38 -14
  2382. package/components/training/TrainingDashboard.d.ts.map +1 -1
  2383. package/components/training/TrainingDashboard.js +78 -16
  2384. package/components/training/hooks/useTrainingApi.d.ts +13 -1
  2385. package/components/training/hooks/useTrainingApi.d.ts.map +1 -1
  2386. package/components/training/hooks/useTrainingApi.js +49 -24
  2387. package/components/training/injected.js +1 -1
  2388. package/components/training/types.d.ts +26 -0
  2389. package/components/training/types.d.ts.map +1 -1
  2390. package/components/transcripts/TranscriptBody.d.ts +22 -0
  2391. package/components/transcripts/TranscriptBody.d.ts.map +1 -0
  2392. package/components/transcripts/TranscriptBody.js +41 -0
  2393. package/components/transcripts/TranscriptPlayer.d.ts +17 -0
  2394. package/components/transcripts/TranscriptPlayer.d.ts.map +1 -0
  2395. package/components/transcripts/TranscriptPlayer.js +17 -0
  2396. package/components/transcripts/TranscriptsPage.d.ts +9 -0
  2397. package/components/transcripts/TranscriptsPage.d.ts.map +1 -0
  2398. package/components/transcripts/TranscriptsPage.js +41 -0
  2399. package/components/transcripts/TranscriptsView.d.ts +19 -0
  2400. package/components/transcripts/TranscriptsView.d.ts.map +1 -0
  2401. package/components/transcripts/TranscriptsView.js +30 -0
  2402. package/components/transcripts/index.d.ts +5 -0
  2403. package/components/transcripts/index.d.ts.map +1 -0
  2404. package/components/transcripts/index.js +4 -0
  2405. package/components/transcripts/useAudioElement.d.ts +22 -0
  2406. package/components/transcripts/useAudioElement.d.ts.map +1 -0
  2407. package/components/transcripts/useAudioElement.js +77 -0
  2408. package/components/ui/accordion.d.ts +12 -0
  2409. package/components/ui/accordion.d.ts.map +1 -0
  2410. package/components/ui/accordion.js +17 -0
  2411. package/components/ui/admin-dialog.d.ts +2 -2
  2412. package/components/ui/admin-dialog.d.ts.map +1 -1
  2413. package/components/ui/admin-dialog.js +6 -5
  2414. package/components/ui/alert-dialog.d.ts +15 -0
  2415. package/components/ui/alert-dialog.d.ts.map +1 -0
  2416. package/components/ui/alert-dialog.js +39 -0
  2417. package/components/ui/alert.d.ts +14 -0
  2418. package/components/ui/alert.d.ts.map +1 -0
  2419. package/components/ui/alert.js +28 -0
  2420. package/components/ui/avatar.d.ts +7 -0
  2421. package/components/ui/avatar.d.ts.map +1 -0
  2422. package/components/ui/avatar.js +18 -0
  2423. package/components/ui/badge.js +1 -1
  2424. package/components/ui/banner.d.ts.map +1 -1
  2425. package/components/ui/button.d.ts +2 -2
  2426. package/components/ui/button.d.ts.map +1 -1
  2427. package/components/ui/button.js +20 -16
  2428. package/components/ui/calendar.d.ts +9 -0
  2429. package/components/ui/calendar.d.ts.map +1 -0
  2430. package/components/ui/calendar.js +78 -0
  2431. package/components/ui/card.d.ts +3 -2
  2432. package/components/ui/card.d.ts.map +1 -1
  2433. package/components/ui/card.js +8 -6
  2434. package/components/ui/carousel.d.ts +24 -0
  2435. package/components/ui/carousel.d.ts.map +1 -0
  2436. package/components/ui/carousel.js +106 -0
  2437. package/components/ui/chart.d.ts +74 -0
  2438. package/components/ui/chart.d.ts.map +1 -0
  2439. package/components/ui/chart.js +139 -0
  2440. package/components/ui/code-block.d.ts +14 -0
  2441. package/components/ui/code-block.d.ts.map +1 -0
  2442. package/components/ui/code-block.js +21 -0
  2443. package/components/ui/collapsible.d.ts +6 -0
  2444. package/components/ui/collapsible.d.ts.map +1 -0
  2445. package/components/ui/collapsible.js +17 -0
  2446. package/components/ui/confirm-delete.js +3 -3
  2447. package/components/ui/confirm-dialog.d.ts +0 -8
  2448. package/components/ui/confirm-dialog.d.ts.map +1 -1
  2449. package/components/ui/confirm-dialog.hooks.d.ts +10 -0
  2450. package/components/ui/confirm-dialog.hooks.d.ts.map +1 -0
  2451. package/components/ui/confirm-dialog.hooks.js +53 -0
  2452. package/components/ui/confirm-dialog.js +2 -54
  2453. package/components/ui/connection-status.js +1 -1
  2454. package/components/ui/copy-button.d.ts.map +1 -1
  2455. package/components/ui/copy-button.js +15 -4
  2456. package/components/ui/dialog.d.ts.map +1 -1
  2457. package/components/ui/dialog.js +10 -3
  2458. package/components/ui/dropdown-menu.js +2 -2
  2459. package/components/ui/empty-state.d.ts +2 -0
  2460. package/components/ui/empty-state.d.ts.map +1 -1
  2461. package/components/ui/empty-state.js +2 -1
  2462. package/components/ui/error-boundary.d.ts +1 -1
  2463. package/components/ui/error-boundary.d.ts.map +1 -1
  2464. package/components/ui/error-boundary.js +3 -3
  2465. package/components/ui/field-switch.js +1 -1
  2466. package/components/ui/form-select.js +2 -2
  2467. package/components/ui/form.d.ts +62 -0
  2468. package/components/ui/form.d.ts.map +1 -0
  2469. package/components/ui/form.js +98 -0
  2470. package/components/ui/grid.d.ts +1 -1
  2471. package/components/ui/hover-card.d.ts +7 -0
  2472. package/components/ui/hover-card.d.ts.map +1 -0
  2473. package/components/ui/hover-card.js +18 -0
  2474. package/components/ui/input-group.d.ts +25 -0
  2475. package/components/ui/input-group.d.ts.map +1 -0
  2476. package/components/ui/input-group.js +44 -0
  2477. package/components/ui/input.js +3 -3
  2478. package/components/ui/new-action-button.js +1 -1
  2479. package/components/ui/pagination.d.ts +18 -0
  2480. package/components/ui/pagination.d.ts.map +1 -0
  2481. package/components/ui/pagination.js +33 -0
  2482. package/components/ui/popover.js +1 -1
  2483. package/components/ui/progress.d.ts +5 -0
  2484. package/components/ui/progress.d.ts.map +1 -0
  2485. package/components/ui/progress.js +8 -0
  2486. package/components/ui/scroll-area.d.ts +8 -0
  2487. package/components/ui/scroll-area.d.ts.map +1 -0
  2488. package/components/ui/scroll-area.js +17 -0
  2489. package/components/ui/segmented-control.js +4 -4
  2490. package/components/ui/select.js +2 -2
  2491. package/components/ui/settings-controls.d.ts +12 -13
  2492. package/components/ui/settings-controls.d.ts.map +1 -1
  2493. package/components/ui/settings-controls.js +28 -19
  2494. package/components/ui/skeleton-layouts.d.ts +17 -0
  2495. package/components/ui/skeleton-layouts.d.ts.map +1 -0
  2496. package/components/ui/skeleton-layouts.js +26 -0
  2497. package/components/ui/skeleton.js +1 -1
  2498. package/components/ui/slider.d.ts +3 -1
  2499. package/components/ui/slider.d.ts.map +1 -1
  2500. package/components/ui/slider.js +1 -1
  2501. package/components/ui/stack.d.ts +2 -2
  2502. package/components/ui/status-badge.d.ts +4 -4
  2503. package/components/ui/status-badge.d.ts.map +1 -1
  2504. package/components/ui/status-badge.helpers.d.ts +6 -0
  2505. package/components/ui/status-badge.helpers.d.ts.map +1 -0
  2506. package/components/ui/status-badge.helpers.js +72 -0
  2507. package/components/ui/status-badge.js +41 -51
  2508. package/components/ui/switch.d.ts +5 -2
  2509. package/components/ui/switch.d.ts.map +1 -1
  2510. package/components/ui/switch.js +18 -3
  2511. package/components/ui/table.d.ts +15 -0
  2512. package/components/ui/table.d.ts.map +1 -0
  2513. package/components/ui/table.js +24 -0
  2514. package/components/ui/tabs.js +2 -2
  2515. package/components/ui/tag-editor.js +1 -1
  2516. package/components/ui/textarea.js +3 -3
  2517. package/components/ui/toggle.d.ts +10 -0
  2518. package/components/ui/toggle.d.ts.map +1 -0
  2519. package/components/ui/toggle.js +30 -0
  2520. package/components/ui/tooltip-extended.d.ts +1 -1
  2521. package/components/ui/tooltip-extended.d.ts.map +1 -1
  2522. package/components/ui/tooltip-extended.js +5 -3
  2523. package/components/ui/tooltip.d.ts +6 -4
  2524. package/components/ui/tooltip.d.ts.map +1 -1
  2525. package/components/ui/tooltip.js +1 -1
  2526. package/components/ui/typography.d.ts +1 -1
  2527. package/components/views/DynamicViewLoader.d.ts +52 -0
  2528. package/components/views/DynamicViewLoader.d.ts.map +1 -0
  2529. package/components/views/DynamicViewLoader.js +896 -0
  2530. package/components/views/ShellViewAgentSurface.d.ts +22 -0
  2531. package/components/views/ShellViewAgentSurface.d.ts.map +1 -0
  2532. package/components/views/ShellViewAgentSurface.js +71 -0
  2533. package/components/views/TerminalPluginView.d.ts +10 -0
  2534. package/components/views/TerminalPluginView.d.ts.map +1 -0
  2535. package/components/views/TerminalPluginView.js +146 -0
  2536. package/components/views/ViewIcon.d.ts +7 -0
  2537. package/components/views/ViewIcon.d.ts.map +1 -0
  2538. package/components/views/ViewIcon.js +97 -0
  2539. package/components/views/view-interact-registry.d.ts +32 -0
  2540. package/components/views/view-interact-registry.d.ts.map +1 -0
  2541. package/components/views/view-interact-registry.js +81 -0
  2542. package/components/workspace/AppWorkspaceChrome.d.ts +9 -53
  2543. package/components/workspace/AppWorkspaceChrome.d.ts.map +1 -1
  2544. package/components/workspace/AppWorkspaceChrome.js +26 -212
  2545. package/config/allowed-hosts.d.ts +1 -7
  2546. package/config/allowed-hosts.d.ts.map +1 -1
  2547. package/config/allowed-hosts.js +1 -43
  2548. package/config/api-key-prefix-hints.d.ts +1 -24
  2549. package/config/api-key-prefix-hints.d.ts.map +1 -1
  2550. package/config/api-key-prefix-hints.js +1 -26
  2551. package/config/boot-config-react.hooks.d.ts +5 -0
  2552. package/config/boot-config-react.hooks.d.ts.map +1 -0
  2553. package/config/boot-config-react.hooks.js +12 -0
  2554. package/config/boot-config-store.d.ts +37 -23
  2555. package/config/boot-config-store.d.ts.map +1 -1
  2556. package/config/boot-config-store.js +3 -3
  2557. package/config/boot-config.d.ts +1 -1
  2558. package/config/boot-config.js +1 -1
  2559. package/config/branding-base.d.ts +71 -0
  2560. package/config/branding-base.d.ts.map +1 -0
  2561. package/config/branding-base.js +18 -0
  2562. package/config/branding-react.hooks.d.ts +4 -0
  2563. package/config/branding-react.hooks.d.ts.map +1 -0
  2564. package/config/branding-react.hooks.js +11 -0
  2565. package/config/branding.d.ts +2 -68
  2566. package/config/branding.d.ts.map +1 -1
  2567. package/config/branding.js +2 -23
  2568. package/config/cloud-only.d.ts +1 -5
  2569. package/config/cloud-only.d.ts.map +1 -1
  2570. package/config/cloud-only.js +1 -15
  2571. package/config/index.d.ts +2 -1
  2572. package/config/index.d.ts.map +1 -1
  2573. package/config/index.js +2 -2
  2574. package/config/plugin-ui-spec.d.ts +1 -41
  2575. package/config/plugin-ui-spec.d.ts.map +1 -1
  2576. package/config/plugin-ui-spec.js +1 -256
  2577. package/config/ui-spec.d.ts +1 -163
  2578. package/config/ui-spec.d.ts.map +1 -1
  2579. package/config/ui-spec.js +0 -12
  2580. package/content-packs/apply-pack.d.ts +4 -4
  2581. package/content-packs/apply-pack.d.ts.map +1 -1
  2582. package/content-packs/apply-pack.js +4 -4
  2583. package/desktop-shell-compat.d.ts +7 -0
  2584. package/desktop-shell-compat.d.ts.map +1 -0
  2585. package/desktop-shell-compat.js +9 -0
  2586. package/events/index.d.ts +91 -4
  2587. package/events/index.d.ts.map +1 -1
  2588. package/events/index.js +92 -2
  2589. package/first-run/AgentPicker.d.ts +26 -0
  2590. package/first-run/AgentPicker.d.ts.map +1 -0
  2591. package/first-run/AgentPicker.js +45 -0
  2592. package/first-run/CompactOnboarding.d.ts +3 -0
  2593. package/first-run/CompactOnboarding.d.ts.map +1 -0
  2594. package/first-run/CompactOnboarding.js +114 -0
  2595. package/first-run/__e2e__/onboarding-fixture.d.ts +2 -0
  2596. package/first-run/__e2e__/onboarding-fixture.d.ts.map +1 -0
  2597. package/first-run/__e2e__/onboarding-fixture.js +16 -0
  2598. package/first-run/__e2e__/use-first-run-controller.stub.d.ts +41 -0
  2599. package/first-run/__e2e__/use-first-run-controller.stub.d.ts.map +1 -0
  2600. package/first-run/__e2e__/use-first-run-controller.stub.js +70 -0
  2601. package/first-run/auto-download-recommended.d.ts +24 -0
  2602. package/first-run/auto-download-recommended.d.ts.map +1 -0
  2603. package/first-run/auto-download-recommended.js +118 -0
  2604. package/first-run/deep-link-handler.d.ts +62 -0
  2605. package/first-run/deep-link-handler.d.ts.map +1 -0
  2606. package/first-run/deep-link-handler.js +147 -0
  2607. package/first-run/ensure-store-build-workspace-folder.d.ts +22 -0
  2608. package/first-run/ensure-store-build-workspace-folder.d.ts.map +1 -0
  2609. package/first-run/ensure-store-build-workspace-folder.js +45 -0
  2610. package/first-run/first-run-config.d.ts +55 -0
  2611. package/first-run/first-run-config.d.ts.map +1 -0
  2612. package/first-run/first-run-config.js +227 -0
  2613. package/first-run/first-run.d.ts +89 -0
  2614. package/first-run/first-run.d.ts.map +1 -0
  2615. package/first-run/first-run.js +339 -0
  2616. package/first-run/local-agent-token.d.ts +5 -0
  2617. package/first-run/local-agent-token.d.ts.map +1 -0
  2618. package/first-run/local-agent-token.js +53 -0
  2619. package/first-run/mobile-runtime-mode.d.ts +32 -0
  2620. package/first-run/mobile-runtime-mode.d.ts.map +1 -0
  2621. package/first-run/mobile-runtime-mode.js +201 -0
  2622. package/first-run/onboarding-intent.d.ts +34 -0
  2623. package/first-run/onboarding-intent.d.ts.map +1 -0
  2624. package/first-run/onboarding-intent.js +38 -0
  2625. package/first-run/pre-seed-local-runtime.d.ts +6 -0
  2626. package/first-run/pre-seed-local-runtime.d.ts.map +1 -0
  2627. package/first-run/pre-seed-local-runtime.js +91 -0
  2628. package/first-run/probe-local-agent.d.ts +50 -0
  2629. package/first-run/probe-local-agent.d.ts.map +1 -0
  2630. package/first-run/probe-local-agent.js +219 -0
  2631. package/first-run/reload-into-first-run-runtime.d.ts +14 -0
  2632. package/first-run/reload-into-first-run-runtime.d.ts.map +1 -0
  2633. package/first-run/reload-into-first-run-runtime.js +46 -0
  2634. package/first-run/runtime-target.d.ts +4 -0
  2635. package/first-run/runtime-target.d.ts.map +1 -0
  2636. package/first-run/runtime-target.js +13 -0
  2637. package/first-run/setup-steps.d.ts +22 -0
  2638. package/first-run/setup-steps.d.ts.map +1 -0
  2639. package/first-run/setup-steps.js +55 -0
  2640. package/first-run/use-first-run-controller.d.ts +46 -0
  2641. package/first-run/use-first-run-controller.d.ts.map +1 -0
  2642. package/first-run/use-first-run-controller.js +1150 -0
  2643. package/first-run/use-microphone-permission.d.ts +17 -0
  2644. package/first-run/use-microphone-permission.d.ts.map +1 -0
  2645. package/first-run/use-microphone-permission.js +106 -0
  2646. package/first-run/voice-readiness.d.ts +14 -0
  2647. package/first-run/voice-readiness.d.ts.map +1 -0
  2648. package/first-run/voice-readiness.js +78 -0
  2649. package/genui/actions.d.ts +8 -0
  2650. package/genui/actions.d.ts.map +1 -0
  2651. package/genui/actions.js +28 -0
  2652. package/genui/catalog.d.ts +11 -0
  2653. package/genui/catalog.d.ts.map +1 -0
  2654. package/genui/catalog.js +58 -0
  2655. package/genui/index.d.ts +9 -0
  2656. package/genui/index.d.ts.map +1 -0
  2657. package/genui/index.js +8 -0
  2658. package/genui/modes.d.ts +7 -0
  2659. package/genui/modes.d.ts.map +1 -0
  2660. package/genui/modes.js +41 -0
  2661. package/genui/pipe.d.ts +10 -0
  2662. package/genui/pipe.d.ts.map +1 -0
  2663. package/genui/pipe.js +122 -0
  2664. package/genui/renderer.d.ts +4 -0
  2665. package/genui/renderer.d.ts.map +1 -0
  2666. package/genui/renderer.js +213 -0
  2667. package/genui/starter-pack-demo.d.ts +3 -0
  2668. package/genui/starter-pack-demo.d.ts.map +1 -0
  2669. package/genui/starter-pack-demo.js +114 -0
  2670. package/genui/streaming.d.ts +5 -0
  2671. package/genui/streaming.d.ts.map +1 -0
  2672. package/genui/streaming.js +145 -0
  2673. package/genui/types.d.ts +132 -0
  2674. package/genui/types.d.ts.map +1 -0
  2675. package/genui/types.js +1 -0
  2676. package/genui/use-json-render-message.d.ts +20 -0
  2677. package/genui/use-json-render-message.d.ts.map +1 -0
  2678. package/genui/use-json-render-message.js +38 -0
  2679. package/genui/use-ui-stream.d.ts +8 -0
  2680. package/genui/use-ui-stream.d.ts.map +1 -0
  2681. package/genui/use-ui-stream.js +56 -0
  2682. package/genui/validator.d.ts +4 -0
  2683. package/genui/validator.d.ts.map +1 -0
  2684. package/genui/validator.js +301 -0
  2685. package/hooks/BugReportProvider.d.ts +7 -0
  2686. package/hooks/BugReportProvider.d.ts.map +1 -0
  2687. package/hooks/BugReportProvider.js +5 -0
  2688. package/hooks/index.d.ts +9 -4
  2689. package/hooks/index.d.ts.map +1 -1
  2690. package/hooks/index.js +9 -4
  2691. package/hooks/resource-cache.d.ts +58 -0
  2692. package/hooks/resource-cache.d.ts.map +1 -0
  2693. package/hooks/resource-cache.js +241 -0
  2694. package/hooks/useAccounts.d.ts.map +1 -1
  2695. package/hooks/useAccounts.js +2 -8
  2696. package/hooks/useActivityEvents.d.ts.map +1 -1
  2697. package/hooks/useActivityEvents.js +20 -9
  2698. package/hooks/useAuthStatus.d.ts +1 -1
  2699. package/hooks/useAuthStatus.d.ts.map +1 -1
  2700. package/hooks/useAuthStatus.js +34 -22
  2701. package/hooks/useAvailableViews.d.ts +72 -0
  2702. package/hooks/useAvailableViews.d.ts.map +1 -0
  2703. package/hooks/useAvailableViews.js +159 -0
  2704. package/hooks/useBugReport.hooks.d.ts +21 -0
  2705. package/hooks/useBugReport.hooks.d.ts.map +1 -0
  2706. package/hooks/useBugReport.hooks.js +24 -0
  2707. package/hooks/useCachedResource.d.ts +38 -0
  2708. package/hooks/useCachedResource.d.ts.map +1 -0
  2709. package/hooks/useCachedResource.js +108 -0
  2710. package/hooks/useChatAvatarVoiceBridge.d.ts +0 -1
  2711. package/hooks/useChatAvatarVoiceBridge.d.ts.map +1 -1
  2712. package/hooks/useCloudHandoffPhase.d.ts +11 -0
  2713. package/hooks/useCloudHandoffPhase.d.ts.map +1 -0
  2714. package/hooks/useCloudHandoffPhase.js +39 -0
  2715. package/hooks/useConnectorAccounts.d.ts.map +1 -1
  2716. package/hooks/useConnectorAccounts.js +2 -8
  2717. package/hooks/useConnectorReconnect.d.ts +81 -0
  2718. package/hooks/useConnectorReconnect.d.ts.map +1 -0
  2719. package/hooks/useConnectorReconnect.js +180 -0
  2720. package/hooks/useConnectorSendAsAccount.d.ts.map +1 -1
  2721. package/hooks/useConnectorSendAsAccount.js +14 -14
  2722. package/hooks/useContextMenu.js +1 -1
  2723. package/hooks/useContinuousChat.d.ts +109 -0
  2724. package/hooks/useContinuousChat.d.ts.map +1 -0
  2725. package/hooks/useContinuousChat.js +241 -0
  2726. package/hooks/useDefaultProviderPresets.d.ts +46 -0
  2727. package/hooks/useDefaultProviderPresets.d.ts.map +1 -0
  2728. package/hooks/useDefaultProviderPresets.js +54 -0
  2729. package/hooks/useDesktopBridgeEvent.d.ts +29 -0
  2730. package/hooks/useDesktopBridgeEvent.d.ts.map +1 -0
  2731. package/hooks/useDesktopBridgeEvent.js +39 -0
  2732. package/hooks/useDesktopTabs.d.ts +26 -0
  2733. package/hooks/useDesktopTabs.d.ts.map +1 -0
  2734. package/hooks/useDesktopTabs.js +95 -0
  2735. package/hooks/useFetchData.d.ts +37 -0
  2736. package/hooks/useFetchData.d.ts.map +1 -0
  2737. package/hooks/useFetchData.js +93 -0
  2738. package/hooks/useKeyboardShortcuts.d.ts +2 -13
  2739. package/hooks/useKeyboardShortcuts.d.ts.map +1 -1
  2740. package/hooks/useKeyboardShortcuts.js +5 -38
  2741. package/hooks/useModalState.d.ts +31 -0
  2742. package/hooks/useModalState.d.ts.map +1 -0
  2743. package/hooks/useModalState.js +45 -0
  2744. package/hooks/useRenderGuard.d.ts +51 -12
  2745. package/hooks/useRenderGuard.d.ts.map +1 -1
  2746. package/hooks/useRenderGuard.js +157 -30
  2747. package/hooks/useRuntimeMode.d.ts.map +1 -1
  2748. package/hooks/useViewCatalog.d.ts +25 -0
  2749. package/hooks/useViewCatalog.d.ts.map +1 -0
  2750. package/hooks/useViewCatalog.js +85 -0
  2751. package/hooks/useViewEvent.d.ts +28 -0
  2752. package/hooks/useViewEvent.d.ts.map +1 -0
  2753. package/hooks/useViewEvent.js +40 -0
  2754. package/hooks/useVoiceChat.d.ts +8 -2
  2755. package/hooks/useVoiceChat.d.ts.map +1 -1
  2756. package/hooks/useVoiceChat.js +617 -97
  2757. package/hooks/useWhatsAppPairing.d.ts.map +1 -1
  2758. package/hooks/useWhatsAppPairing.js +28 -5
  2759. package/hooks/view-catalog.d.ts +74 -0
  2760. package/hooks/view-catalog.d.ts.map +1 -0
  2761. package/hooks/view-catalog.js +106 -0
  2762. package/i18n/index.d.ts +2 -2
  2763. package/i18n/index.d.ts.map +1 -1
  2764. package/i18n/index.js +4 -2
  2765. package/i18n/locales/en.json +4803 -666
  2766. package/i18n/locales/es.json +5333 -1208
  2767. package/i18n/locales/ja.json +7418 -0
  2768. package/i18n/locales/ko.json +5221 -1096
  2769. package/i18n/locales/pt.json +5215 -1090
  2770. package/i18n/locales/tl.json +5449 -1324
  2771. package/i18n/locales/vi.json +5150 -1025
  2772. package/i18n/locales/zh-CN.json +5094 -969
  2773. package/i18n/messages.d.ts +15 -1
  2774. package/i18n/messages.d.ts.map +1 -1
  2775. package/i18n/messages.js +54 -13
  2776. package/i18n/region.d.ts +43 -0
  2777. package/i18n/region.d.ts.map +1 -0
  2778. package/i18n/region.js +169 -0
  2779. package/index.d.ts +125 -25
  2780. package/index.d.ts.map +1 -1
  2781. package/index.js +102 -9
  2782. package/layouts/chat-panel-layout/chat-panel-layout.js +2 -2
  2783. package/layouts/page-layout/page-layout-mobile-drawer.d.ts.map +1 -1
  2784. package/layouts/page-layout/page-layout-mobile-drawer.js +2 -2
  2785. package/layouts/workspace-layout/index.d.ts +1 -1
  2786. package/layouts/workspace-layout/index.d.ts.map +1 -1
  2787. package/layouts/workspace-layout/index.js +1 -1
  2788. package/layouts/workspace-layout/workspace-layout.d.ts.map +1 -1
  2789. package/layouts/workspace-layout/workspace-layout.js +1 -3
  2790. package/layouts/workspace-layout/workspace-mobile-sidebar-controls.hooks.d.ts +13 -0
  2791. package/layouts/workspace-layout/workspace-mobile-sidebar-controls.hooks.d.ts.map +1 -0
  2792. package/lib/floating-layers.d.ts +1 -2
  2793. package/lib/floating-layers.d.ts.map +1 -1
  2794. package/lib/floating-layers.js +2 -3
  2795. package/navigation/index.d.ts +17 -20
  2796. package/navigation/index.d.ts.map +1 -1
  2797. package/navigation/index.js +97 -69
  2798. package/navigation/main-tab.d.ts +6 -11
  2799. package/navigation/main-tab.d.ts.map +1 -1
  2800. package/navigation/main-tab.js +8 -17
  2801. package/navigation/nav-lock.d.ts +18 -0
  2802. package/navigation/nav-lock.d.ts.map +1 -0
  2803. package/navigation/nav-lock.js +34 -0
  2804. package/package.json +288 -19
  2805. package/platform/android-runtime.d.ts +3 -3
  2806. package/platform/android-runtime.d.ts.map +1 -1
  2807. package/platform/android-runtime.js +4 -7
  2808. package/platform/aosp-user-agent.d.ts +10 -0
  2809. package/platform/aosp-user-agent.d.ts.map +1 -0
  2810. package/platform/aosp-user-agent.js +13 -0
  2811. package/platform/assistant-launch-payload.d.ts +27 -0
  2812. package/platform/assistant-launch-payload.d.ts.map +1 -0
  2813. package/platform/assistant-launch-payload.js +113 -0
  2814. package/platform/browser-launch.d.ts +1 -0
  2815. package/platform/browser-launch.d.ts.map +1 -1
  2816. package/platform/browser-launch.js +56 -12
  2817. package/platform/cloud-preference-patch.d.ts +0 -4
  2818. package/platform/cloud-preference-patch.d.ts.map +1 -1
  2819. package/platform/cloud-preference-patch.js +2 -24
  2820. package/platform/empty-node-module.d.ts +2 -2
  2821. package/platform/empty-node-module.d.ts.map +1 -1
  2822. package/platform/empty-node-module.js +2 -2
  2823. package/platform/first-run-reset.d.ts +21 -0
  2824. package/platform/first-run-reset.d.ts.map +1 -0
  2825. package/platform/first-run-reset.js +140 -0
  2826. package/platform/index.d.ts +9 -5
  2827. package/platform/index.d.ts.map +1 -1
  2828. package/platform/index.js +7 -10
  2829. package/platform/init.d.ts +16 -18
  2830. package/platform/init.d.ts.map +1 -1
  2831. package/platform/init.js +41 -29
  2832. package/platform/ios-runtime.d.ts +18 -1
  2833. package/platform/ios-runtime.d.ts.map +1 -1
  2834. package/platform/ios-runtime.js +45 -24
  2835. package/platform/mobile-permissions-client.d.ts +25 -0
  2836. package/platform/mobile-permissions-client.d.ts.map +1 -0
  2837. package/platform/mobile-permissions-client.js +628 -0
  2838. package/platform/platform-guards.d.ts +39 -0
  2839. package/platform/platform-guards.d.ts.map +1 -0
  2840. package/platform/platform-guards.js +57 -0
  2841. package/platform/types.d.ts +6 -10
  2842. package/platform/types.d.ts.map +1 -1
  2843. package/platform/window-shell.d.ts +20 -3
  2844. package/platform/window-shell.d.ts.map +1 -1
  2845. package/platform/window-shell.js +25 -5
  2846. package/providers/index.d.ts +1 -1
  2847. package/providers/index.d.ts.map +1 -1
  2848. package/providers/index.js +1 -1
  2849. package/retained-lazy.d.ts +28 -0
  2850. package/retained-lazy.d.ts.map +1 -0
  2851. package/retained-lazy.js +285 -0
  2852. package/services/app-updates/update-policy.d.ts +64 -0
  2853. package/services/app-updates/update-policy.d.ts.map +1 -0
  2854. package/services/app-updates/update-policy.js +228 -0
  2855. package/services/local-inference/active-model.d.ts +5 -83
  2856. package/services/local-inference/active-model.d.ts.map +1 -1
  2857. package/services/local-inference/active-model.js +88 -23
  2858. package/services/local-inference/assignments.d.ts +12 -12
  2859. package/services/local-inference/assignments.d.ts.map +1 -1
  2860. package/services/local-inference/assignments.js +29 -19
  2861. package/services/local-inference/bundled-models.d.ts +1 -1
  2862. package/services/local-inference/bundled-models.js +1 -1
  2863. package/services/local-inference/catalog-policy.d.ts +6 -0
  2864. package/services/local-inference/catalog-policy.d.ts.map +1 -0
  2865. package/services/local-inference/catalog-policy.js +13 -0
  2866. package/services/local-inference/catalog.d.ts +6 -51
  2867. package/services/local-inference/catalog.d.ts.map +1 -1
  2868. package/services/local-inference/catalog.js +6 -268
  2869. package/services/local-inference/custom-search.d.ts +33 -0
  2870. package/services/local-inference/custom-search.d.ts.map +1 -0
  2871. package/services/local-inference/custom-search.js +69 -0
  2872. package/services/local-inference/device-bridge.d.ts +35 -4
  2873. package/services/local-inference/device-bridge.d.ts.map +1 -1
  2874. package/services/local-inference/device-bridge.js +56 -3
  2875. package/services/local-inference/disk-space.d.ts +15 -0
  2876. package/services/local-inference/disk-space.d.ts.map +1 -0
  2877. package/services/local-inference/disk-space.js +29 -0
  2878. package/services/local-inference/downloader.d.ts +35 -1
  2879. package/services/local-inference/downloader.d.ts.map +1 -1
  2880. package/services/local-inference/downloader.js +95 -141
  2881. package/services/local-inference/engine.d.ts +18 -32
  2882. package/services/local-inference/engine.d.ts.map +1 -1
  2883. package/services/local-inference/engine.js +42 -207
  2884. package/services/local-inference/handler-registry.d.ts +1 -1
  2885. package/services/local-inference/handler-registry.d.ts.map +1 -1
  2886. package/services/local-inference/handler-registry.js +14 -7
  2887. package/services/local-inference/hardware.d.ts +44 -10
  2888. package/services/local-inference/hardware.d.ts.map +1 -1
  2889. package/services/local-inference/hardware.js +187 -76
  2890. package/services/local-inference/hf-search.d.ts +7 -0
  2891. package/services/local-inference/hf-search.d.ts.map +1 -1
  2892. package/services/local-inference/hf-search.js +117 -6
  2893. package/services/local-inference/home-model-status.d.ts +25 -0
  2894. package/services/local-inference/home-model-status.d.ts.map +1 -0
  2895. package/services/local-inference/home-model-status.js +90 -0
  2896. package/services/local-inference/index.d.ts +6 -3
  2897. package/services/local-inference/index.d.ts.map +1 -1
  2898. package/services/local-inference/index.js +5 -2
  2899. package/services/local-inference/load-args.d.ts +60 -0
  2900. package/services/local-inference/load-args.d.ts.map +1 -0
  2901. package/services/local-inference/load-args.js +10 -0
  2902. package/services/local-inference/manifest.d.ts +45 -0
  2903. package/services/local-inference/manifest.d.ts.map +1 -0
  2904. package/services/local-inference/manifest.js +26 -0
  2905. package/services/local-inference/paths.d.ts +1 -7
  2906. package/services/local-inference/paths.d.ts.map +1 -1
  2907. package/services/local-inference/paths.js +1 -7
  2908. package/services/local-inference/readiness.js +1 -1
  2909. package/services/local-inference/recommendation.d.ts +9 -6
  2910. package/services/local-inference/recommendation.d.ts.map +1 -1
  2911. package/services/local-inference/recommendation.js +64 -53
  2912. package/services/local-inference/registry.d.ts.map +1 -1
  2913. package/services/local-inference/registry.js +3 -2
  2914. package/services/local-inference/resource-snapshot-bridge.d.ts +51 -0
  2915. package/services/local-inference/resource-snapshot-bridge.d.ts.map +1 -0
  2916. package/services/local-inference/resource-snapshot-bridge.js +90 -0
  2917. package/services/local-inference/routing-policy.d.ts.map +1 -1
  2918. package/services/local-inference/routing-policy.js +6 -0
  2919. package/services/local-inference/routing-preferences.d.ts +1 -7
  2920. package/services/local-inference/routing-preferences.d.ts.map +1 -1
  2921. package/services/local-inference/routing-preferences.js +1 -7
  2922. package/services/local-inference/service.d.ts +11 -1
  2923. package/services/local-inference/service.d.ts.map +1 -1
  2924. package/services/local-inference/service.js +24 -5
  2925. package/services/local-inference/token-tree.d.ts +188 -0
  2926. package/services/local-inference/token-tree.d.ts.map +1 -0
  2927. package/services/local-inference/token-tree.js +185 -0
  2928. package/services/local-inference/tokenizer-client.d.ts +88 -0
  2929. package/services/local-inference/tokenizer-client.d.ts.map +1 -0
  2930. package/services/local-inference/tokenizer-client.js +166 -0
  2931. package/services/local-inference/types.d.ts +5 -235
  2932. package/services/local-inference/types.d.ts.map +1 -1
  2933. package/services/local-inference/types.js +5 -18
  2934. package/services/local-inference/verify.d.ts +1 -7
  2935. package/services/local-inference/verify.d.ts.map +1 -1
  2936. package/services/local-inference/verify.js +1 -7
  2937. package/shell-params.d.ts +1 -1
  2938. package/shell-params.d.ts.map +1 -1
  2939. package/shell-params.js +0 -1
  2940. package/slots/task-coordinator-slots.d.ts +8 -26
  2941. package/slots/task-coordinator-slots.d.ts.map +1 -1
  2942. package/slots/task-coordinator-slots.helpers.d.ts +32 -0
  2943. package/slots/task-coordinator-slots.helpers.d.ts.map +1 -0
  2944. package/slots/task-coordinator-slots.helpers.js +14 -0
  2945. package/slots/task-coordinator-slots.js +19 -8
  2946. package/spatial/context.d.ts +24 -0
  2947. package/spatial/context.d.ts.map +1 -0
  2948. package/spatial/context.js +15 -0
  2949. package/spatial/dom.d.ts +42 -0
  2950. package/spatial/dom.d.ts.map +1 -0
  2951. package/spatial/dom.js +41 -0
  2952. package/spatial/evaluate.d.ts +67 -0
  2953. package/spatial/evaluate.d.ts.map +1 -0
  2954. package/spatial/evaluate.js +233 -0
  2955. package/spatial/example.d.ts +19 -0
  2956. package/spatial/example.d.ts.map +1 -0
  2957. package/spatial/example.js +28 -0
  2958. package/spatial/gallery.d.ts +20 -0
  2959. package/spatial/gallery.d.ts.map +1 -0
  2960. package/spatial/gallery.js +179 -0
  2961. package/spatial/index.d.ts +24 -0
  2962. package/spatial/index.d.ts.map +1 -0
  2963. package/spatial/index.js +25 -0
  2964. package/spatial/ir.d.ts +157 -0
  2965. package/spatial/ir.d.ts.map +1 -0
  2966. package/spatial/ir.js +41 -0
  2967. package/spatial/primitives.d.ts +107 -0
  2968. package/spatial/primitives.d.ts.map +1 -0
  2969. package/spatial/primitives.js +447 -0
  2970. package/spatial/tui/engine.d.ts +28 -0
  2971. package/spatial/tui/engine.d.ts.map +1 -0
  2972. package/spatial/tui/engine.js +488 -0
  2973. package/spatial/tui/framing.d.ts +33 -0
  2974. package/spatial/tui/framing.d.ts.map +1 -0
  2975. package/spatial/tui/framing.js +189 -0
  2976. package/spatial/tui/index.d.ts +10 -0
  2977. package/spatial/tui/index.d.ts.map +1 -0
  2978. package/spatial/tui/index.js +10 -0
  2979. package/spatial/tui/renderer.d.ts +55 -0
  2980. package/spatial/tui/renderer.d.ts.map +1 -0
  2981. package/spatial/tui/renderer.js +116 -0
  2982. package/state/AppContext.d.ts +0 -2
  2983. package/state/AppContext.d.ts.map +1 -1
  2984. package/state/AppContext.hooks.d.ts +15 -0
  2985. package/state/AppContext.hooks.d.ts.map +1 -0
  2986. package/state/AppContext.hooks.js +11 -0
  2987. package/state/AppContext.js +618 -559
  2988. package/state/ChatComposerContext.hooks.d.ts +59 -0
  2989. package/state/ChatComposerContext.hooks.d.ts.map +1 -0
  2990. package/state/ChatComposerContext.hooks.js +148 -0
  2991. package/state/CompanionSceneConfigContext.hooks.d.ts +28 -0
  2992. package/state/CompanionSceneConfigContext.hooks.d.ts.map +1 -0
  2993. package/state/CompanionSceneConfigContext.hooks.js +33 -0
  2994. package/state/PtySessionsContext.hooks.d.ts +18 -0
  2995. package/state/PtySessionsContext.hooks.d.ts.map +1 -0
  2996. package/state/PtySessionsContext.hooks.js +18 -0
  2997. package/state/TranslationContext.hooks.d.ts +28 -0
  2998. package/state/TranslationContext.hooks.d.ts.map +1 -0
  2999. package/state/TranslationContext.hooks.js +38 -0
  3000. package/state/TranslationProvider.d.ts +23 -0
  3001. package/state/TranslationProvider.d.ts.map +1 -0
  3002. package/state/TranslationProvider.js +86 -0
  3003. package/state/action-banner.d.ts +18 -0
  3004. package/state/action-banner.d.ts.map +1 -0
  3005. package/state/action-banner.js +1 -0
  3006. package/state/agent-profiles.d.ts.map +1 -1
  3007. package/state/agent-profiles.js +1 -2
  3008. package/state/agent-runtime-target.d.ts +1 -1
  3009. package/state/agent-runtime-target.d.ts.map +1 -1
  3010. package/state/agent-runtime-target.js +5 -1
  3011. package/state/cloud-steward-login.d.ts +44 -0
  3012. package/state/cloud-steward-login.d.ts.map +1 -0
  3013. package/state/cloud-steward-login.js +52 -0
  3014. package/state/complete-reset-local-state-after-wipe.d.ts +8 -8
  3015. package/state/complete-reset-local-state-after-wipe.d.ts.map +1 -1
  3016. package/state/complete-reset-local-state-after-wipe.js +6 -6
  3017. package/state/conversation-message-filter.d.ts +10 -0
  3018. package/state/conversation-message-filter.d.ts.map +1 -0
  3019. package/state/conversation-message-filter.js +18 -0
  3020. package/state/first-run-bootstrap.d.ts +17 -0
  3021. package/state/first-run-bootstrap.d.ts.map +1 -0
  3022. package/state/first-run-bootstrap.js +62 -0
  3023. package/state/first-run-restart.d.ts +8 -0
  3024. package/state/first-run-restart.d.ts.map +1 -0
  3025. package/state/first-run-restart.js +8 -0
  3026. package/state/handle-reset-applied-from-main.d.ts +1 -1
  3027. package/state/index.d.ts +9 -6
  3028. package/state/index.d.ts.map +1 -1
  3029. package/state/index.js +9 -6
  3030. package/state/internal.d.ts +8 -5
  3031. package/state/internal.d.ts.map +1 -1
  3032. package/state/internal.js +8 -6
  3033. package/state/notifications/notification-store.d.ts +35 -0
  3034. package/state/notifications/notification-store.d.ts.map +1 -0
  3035. package/state/notifications/notification-store.js +179 -0
  3036. package/state/parsers.d.ts.map +1 -1
  3037. package/state/parsers.js +7 -0
  3038. package/state/persistence.d.ts +42 -13
  3039. package/state/persistence.d.ts.map +1 -1
  3040. package/state/persistence.js +141 -91
  3041. package/state/private-network-host.d.ts +11 -0
  3042. package/state/private-network-host.d.ts.map +1 -0
  3043. package/state/private-network-host.js +35 -0
  3044. package/state/setup-resume.d.ts +9 -0
  3045. package/state/setup-resume.d.ts.map +1 -0
  3046. package/state/setup-resume.js +98 -0
  3047. package/state/shell-routing.d.ts +3 -3
  3048. package/state/shell-routing.d.ts.map +1 -1
  3049. package/state/startup-coordinator.d.ts +46 -22
  3050. package/state/startup-coordinator.d.ts.map +1 -1
  3051. package/state/startup-coordinator.js +94 -44
  3052. package/state/startup-phase-hydrate.d.ts +7 -6
  3053. package/state/startup-phase-hydrate.d.ts.map +1 -1
  3054. package/state/startup-phase-hydrate.js +206 -103
  3055. package/state/startup-phase-poll.d.ts +76 -23
  3056. package/state/startup-phase-poll.d.ts.map +1 -1
  3057. package/state/startup-phase-poll.js +359 -83
  3058. package/state/startup-phase-restore.d.ts +16 -8
  3059. package/state/startup-phase-restore.d.ts.map +1 -1
  3060. package/state/startup-phase-restore.js +169 -101
  3061. package/state/startup-phase-runtime.d.ts +7 -3
  3062. package/state/startup-phase-runtime.d.ts.map +1 -1
  3063. package/state/startup-phase-runtime.js +227 -17
  3064. package/state/types.d.ts +131 -104
  3065. package/state/types.d.ts.map +1 -1
  3066. package/state/types.js +47 -13
  3067. package/state/ui-preferences.d.ts +6 -0
  3068. package/state/ui-preferences.d.ts.map +1 -1
  3069. package/state/use-startup-shell-controller.d.ts +7 -0
  3070. package/state/use-startup-shell-controller.d.ts.map +1 -0
  3071. package/state/use-startup-shell-controller.js +170 -0
  3072. package/state/useApp.d.ts.map +1 -1
  3073. package/state/useApp.js +6 -2
  3074. package/state/useAppLifecycleEvents.d.ts +32 -0
  3075. package/state/useAppLifecycleEvents.d.ts.map +1 -0
  3076. package/state/useAppLifecycleEvents.js +102 -0
  3077. package/state/useAppProviderEffects.d.ts.map +1 -1
  3078. package/state/useAppProviderEffects.js +20 -13
  3079. package/state/useAppShellState.d.ts +6 -6
  3080. package/state/useCharacterState.js +1 -1
  3081. package/state/useChatCallbacks.d.ts +28 -29
  3082. package/state/useChatCallbacks.d.ts.map +1 -1
  3083. package/state/useChatCallbacks.js +32 -41
  3084. package/state/useChatLifecycle.d.ts +26 -27
  3085. package/state/useChatLifecycle.d.ts.map +1 -1
  3086. package/state/useChatLifecycle.js +127 -125
  3087. package/state/useChatSend.d.ts +3 -4
  3088. package/state/useChatSend.d.ts.map +1 -1
  3089. package/state/useChatSend.js +303 -99
  3090. package/state/useChatState.d.ts +1 -6
  3091. package/state/useChatState.d.ts.map +1 -1
  3092. package/state/useChatState.js +1 -9
  3093. package/state/useCloudState.d.ts +7 -3
  3094. package/state/useCloudState.d.ts.map +1 -1
  3095. package/state/useCloudState.js +187 -27
  3096. package/state/useContentPack.d.ts +27 -0
  3097. package/state/useContentPack.d.ts.map +1 -0
  3098. package/state/useContentPack.js +210 -0
  3099. package/state/useDataLoaders.d.ts +6 -6
  3100. package/state/useDataLoaders.d.ts.map +1 -1
  3101. package/state/useDataLoaders.js +37 -25
  3102. package/state/useDisplayPreferences.d.ts +3 -3
  3103. package/state/useDisplayPreferences.d.ts.map +1 -1
  3104. package/state/useDisplayPreferences.js +29 -15
  3105. package/state/useFirstRunCallbacks.d.ts +102 -0
  3106. package/state/useFirstRunCallbacks.d.ts.map +1 -0
  3107. package/state/useFirstRunCallbacks.js +838 -0
  3108. package/state/useFirstRunState.d.ts +126 -0
  3109. package/state/useFirstRunState.d.ts.map +1 -0
  3110. package/state/useFirstRunState.js +259 -0
  3111. package/state/useLifecycleState.d.ts +18 -10
  3112. package/state/useLifecycleState.d.ts.map +1 -1
  3113. package/state/useLifecycleState.js +53 -26
  3114. package/state/useMiscUiState.js +1 -1
  3115. package/state/useNavigationState.d.ts +3 -4
  3116. package/state/useNavigationState.d.ts.map +1 -1
  3117. package/state/useNavigationState.js +34 -27
  3118. package/state/usePluginsSkillsState.d.ts +6 -3
  3119. package/state/usePluginsSkillsState.d.ts.map +1 -1
  3120. package/state/usePluginsSkillsState.js +58 -13
  3121. package/state/useStartupCoordinator.d.ts +4 -1
  3122. package/state/useStartupCoordinator.d.ts.map +1 -1
  3123. package/state/useStartupCoordinator.js +125 -29
  3124. package/state/useStreamingText.d.ts +74 -0
  3125. package/state/useStreamingText.d.ts.map +1 -0
  3126. package/state/useStreamingText.js +104 -0
  3127. package/state/useTabSync.d.ts +32 -0
  3128. package/state/useTabSync.d.ts.map +1 -0
  3129. package/state/useTabSync.js +81 -0
  3130. package/state/useTriggersState.d.ts +3 -3
  3131. package/state/useTriggersState.d.ts.map +1 -1
  3132. package/state/useWalletState.d.ts +2 -2
  3133. package/state/useWalletState.d.ts.map +1 -1
  3134. package/state/useWalletState.js +13 -4
  3135. package/state/view-chat-binding.d.ts +29 -0
  3136. package/state/view-chat-binding.d.ts.map +1 -0
  3137. package/state/view-chat-binding.js +41 -0
  3138. package/storage/workspace-folder.d.ts +30 -0
  3139. package/storage/workspace-folder.d.ts.map +1 -0
  3140. package/storage/workspace-folder.js +74 -0
  3141. package/stories/layout-story-fixtures.d.ts +0 -5
  3142. package/stories/layout-story-fixtures.d.ts.map +1 -1
  3143. package/stories/layout-story-fixtures.data.d.ts +6 -0
  3144. package/stories/layout-story-fixtures.data.d.ts.map +1 -0
  3145. package/stories/layout-story-fixtures.data.js +7 -0
  3146. package/stories/layout-story-fixtures.js +9 -8
  3147. package/storybook/mock-providers.d.ts +24 -0
  3148. package/storybook/mock-providers.d.ts.map +1 -0
  3149. package/storybook/mock-providers.helpers.d.ts +10 -0
  3150. package/storybook/mock-providers.helpers.d.ts.map +1 -0
  3151. package/storybook/mock-providers.helpers.js +11 -0
  3152. package/storybook/mock-providers.js +76 -0
  3153. package/styles/base.css +373 -162
  3154. package/styles/brand-gold.css +245 -197
  3155. package/styles/electrobun-mac-window-drag.css +3 -3
  3156. package/styles/styles.css +75 -149
  3157. package/styles/tailwind-theme.css +140 -0
  3158. package/styles/theme.css +78 -61
  3159. package/styles.d.ts +4 -0
  3160. package/styles.d.ts.map +1 -0
  3161. package/styles.js +9 -0
  3162. package/themes/apply-theme.d.ts +0 -5
  3163. package/themes/apply-theme.d.ts.map +1 -1
  3164. package/themes/apply-theme.js +1 -9
  3165. package/themes/index.d.ts +14 -0
  3166. package/themes/index.d.ts.map +1 -0
  3167. package/themes/index.js +12 -0
  3168. package/themes/presets.d.ts +7 -0
  3169. package/themes/presets.d.ts.map +1 -0
  3170. package/themes/presets.js +157 -0
  3171. package/types/host-external-modules.d.ts +5 -0
  3172. package/types/host-external-modules.d.ts.map +1 -0
  3173. package/types/host-external-modules.js +1 -0
  3174. package/types/index.d.ts +1 -654
  3175. package/types/index.d.ts.map +1 -1
  3176. package/types/index.js +1 -4
  3177. package/types/plugin-views.d.ts +17 -0
  3178. package/types/plugin-views.d.ts.map +1 -0
  3179. package/types/plugin-views.js +1 -0
  3180. package/utils/browser-tab-kit-types.d.ts +1 -80
  3181. package/utils/browser-tab-kit-types.d.ts.map +1 -1
  3182. package/utils/browser-tab-kit-types.js +0 -21
  3183. package/utils/browser-tabs-renderer-registry.d.ts +1 -55
  3184. package/utils/browser-tabs-renderer-registry.d.ts.map +1 -1
  3185. package/utils/browser-tabs-renderer-registry.js +1 -1223
  3186. package/utils/character-message-examples.d.ts +1 -6
  3187. package/utils/character-message-examples.d.ts.map +1 -1
  3188. package/utils/character-message-examples.js +1 -122
  3189. package/utils/cloud-agent-base.d.ts +50 -0
  3190. package/utils/cloud-agent-base.d.ts.map +1 -0
  3191. package/utils/cloud-agent-base.js +140 -0
  3192. package/utils/cloud-status.d.ts +1 -2
  3193. package/utils/cloud-status.d.ts.map +1 -1
  3194. package/utils/cloud-status.js +1 -10
  3195. package/utils/desktop-workspace.d.ts +1 -1
  3196. package/utils/desktop-workspace.d.ts.map +1 -1
  3197. package/utils/desktop-workspace.js +0 -5
  3198. package/utils/documents-upload-image.d.ts +1 -26
  3199. package/utils/documents-upload-image.d.ts.map +1 -1
  3200. package/utils/documents-upload-image.js +1 -146
  3201. package/utils/eliza-cloud-model-route.d.ts +1 -2
  3202. package/utils/eliza-cloud-model-route.d.ts.map +1 -1
  3203. package/utils/eliza-cloud-model-route.js +1 -9
  3204. package/utils/eliza-globals.d.ts +1 -12
  3205. package/utils/eliza-globals.d.ts.map +1 -1
  3206. package/utils/eliza-globals.js +1 -48
  3207. package/utils/errors.d.ts +1 -12
  3208. package/utils/errors.d.ts.map +1 -1
  3209. package/utils/errors.js +1 -25
  3210. package/utils/format.d.ts +8 -62
  3211. package/utils/format.d.ts.map +1 -1
  3212. package/utils/format.js +34 -117
  3213. package/utils/globals.js +1 -1
  3214. package/utils/host-capabilities.d.ts +39 -0
  3215. package/utils/host-capabilities.d.ts.map +1 -0
  3216. package/utils/host-capabilities.js +85 -0
  3217. package/utils/image-attachment.d.ts +35 -0
  3218. package/utils/image-attachment.d.ts.map +1 -0
  3219. package/utils/image-attachment.js +124 -0
  3220. package/utils/index.d.ts +5 -4
  3221. package/utils/index.d.ts.map +1 -1
  3222. package/utils/index.js +5 -4
  3223. package/utils/labels.d.ts +1 -5
  3224. package/utils/labels.d.ts.map +1 -1
  3225. package/utils/labels.js +1 -41
  3226. package/utils/log-prefix.d.ts +1 -1
  3227. package/utils/log-prefix.d.ts.map +1 -1
  3228. package/utils/log-prefix.js +1 -53
  3229. package/utils/name-tokens.d.ts +1 -23
  3230. package/utils/name-tokens.d.ts.map +1 -1
  3231. package/utils/name-tokens.js +1 -36
  3232. package/utils/namespace-defaults.d.ts +1 -5
  3233. package/utils/namespace-defaults.d.ts.map +1 -1
  3234. package/utils/namespace-defaults.js +1 -15
  3235. package/utils/openExternalUrl.d.ts.map +1 -1
  3236. package/utils/openExternalUrl.js +3 -6
  3237. package/utils/owner-name.d.ts +1 -2
  3238. package/utils/owner-name.d.ts.map +1 -1
  3239. package/utils/owner-name.js +1 -7
  3240. package/utils/rate-limiter.d.ts +1 -31
  3241. package/utils/rate-limiter.d.ts.map +1 -1
  3242. package/utils/rate-limiter.js +1 -52
  3243. package/utils/serialise.d.ts +1 -11
  3244. package/utils/serialise.d.ts.map +1 -1
  3245. package/utils/serialise.js +1 -21
  3246. package/utils/sql-compat.d.ts +1 -9
  3247. package/utils/sql-compat.d.ts.map +1 -1
  3248. package/utils/sql-compat.js +1 -111
  3249. package/utils/streaming-text.d.ts +1 -8
  3250. package/utils/streaming-text.d.ts.map +1 -1
  3251. package/utils/streaming-text.js +1 -112
  3252. package/utils/subscription-auth.d.ts +1 -8
  3253. package/utils/subscription-auth.d.ts.map +1 -1
  3254. package/utils/subscription-auth.js +1 -48
  3255. package/utils/trajectory-format.d.ts +1 -5
  3256. package/utils/trajectory-format.d.ts.map +1 -1
  3257. package/utils/trajectory-format.js +1 -43
  3258. package/utils/transient-fetch.d.ts +20 -0
  3259. package/utils/transient-fetch.d.ts.map +1 -0
  3260. package/utils/transient-fetch.js +36 -0
  3261. package/utils/tts-debug.d.ts.map +1 -1
  3262. package/utils/tts-debug.js +3 -24
  3263. package/utils/workflow-executions.d.ts +26 -0
  3264. package/utils/workflow-executions.d.ts.map +1 -0
  3265. package/utils/workflow-executions.js +166 -0
  3266. package/utils/workflow-json.d.ts.map +1 -1
  3267. package/utils/workflow-json.js +10 -0
  3268. package/view-recents.d.ts +6 -0
  3269. package/view-recents.d.ts.map +1 -0
  3270. package/view-recents.js +35 -0
  3271. package/views/view-event-bus.d.ts +40 -0
  3272. package/views/view-event-bus.d.ts.map +1 -0
  3273. package/views/view-event-bus.js +94 -0
  3274. package/views/view-event-types.d.ts +24 -0
  3275. package/views/view-event-types.d.ts.map +1 -0
  3276. package/views/view-event-types.js +22 -0
  3277. package/views/view-interact-protocol.d.ts +39 -0
  3278. package/views/view-interact-protocol.d.ts.map +1 -0
  3279. package/views/view-interact-protocol.js +22 -0
  3280. package/voice/audio-frame-diarization-harness.d.ts +38 -0
  3281. package/voice/audio-frame-diarization-harness.d.ts.map +1 -0
  3282. package/voice/audio-frame-diarization-harness.js +63 -0
  3283. package/voice/audio-frame-pump.d.ts +68 -0
  3284. package/voice/audio-frame-pump.d.ts.map +1 -0
  3285. package/voice/audio-frame-pump.js +137 -0
  3286. package/voice/character-voice-config.d.ts +2 -0
  3287. package/voice/character-voice-config.d.ts.map +1 -1
  3288. package/voice/character-voice-config.js +8 -0
  3289. package/voice/emotion.d.ts +43 -0
  3290. package/voice/emotion.d.ts.map +1 -0
  3291. package/voice/emotion.js +131 -0
  3292. package/voice/end-of-turn.d.ts +81 -0
  3293. package/voice/end-of-turn.d.ts.map +1 -0
  3294. package/voice/end-of-turn.js +224 -0
  3295. package/voice/index.d.ts +8 -0
  3296. package/voice/index.d.ts.map +1 -1
  3297. package/voice/index.js +8 -0
  3298. package/voice/jni-voice-harness.d.ts +52 -0
  3299. package/voice/jni-voice-harness.d.ts.map +1 -0
  3300. package/voice/jni-voice-harness.js +90 -0
  3301. package/voice/jni-voice-pipeline.d.ts +103 -0
  3302. package/voice/jni-voice-pipeline.d.ts.map +1 -0
  3303. package/voice/jni-voice-pipeline.js +238 -0
  3304. package/voice/local-asr-capture.d.ts +46 -0
  3305. package/voice/local-asr-capture.d.ts.map +1 -0
  3306. package/voice/local-asr-capture.js +238 -0
  3307. package/voice/local-asr-transcribe.d.ts +42 -0
  3308. package/voice/local-asr-transcribe.d.ts.map +1 -0
  3309. package/voice/local-asr-transcribe.js +93 -0
  3310. package/voice/should-respond.d.ts +36 -0
  3311. package/voice/should-respond.d.ts.map +1 -0
  3312. package/voice/should-respond.js +71 -0
  3313. package/voice/transcript-session.d.ts +49 -0
  3314. package/voice/transcript-session.d.ts.map +1 -0
  3315. package/voice/transcript-session.js +136 -0
  3316. package/voice/transcription-exit.d.ts +40 -0
  3317. package/voice/transcription-exit.d.ts.map +1 -0
  3318. package/voice/transcription-exit.js +114 -0
  3319. package/voice/useVoiceConfig.d.ts +18 -0
  3320. package/voice/useVoiceConfig.d.ts.map +1 -0
  3321. package/voice/useVoiceConfig.js +79 -0
  3322. package/voice/voice-capture-factory.d.ts +116 -0
  3323. package/voice/voice-capture-factory.d.ts.map +1 -0
  3324. package/voice/voice-capture-factory.js +328 -0
  3325. package/voice/voice-chat-playback.d.ts +3 -0
  3326. package/voice/voice-chat-playback.d.ts.map +1 -1
  3327. package/voice/voice-chat-playback.js +10 -2
  3328. package/voice/voice-chat-types.d.ts +146 -18
  3329. package/voice/voice-chat-types.d.ts.map +1 -1
  3330. package/voice/voice-chat-types.js +11 -9
  3331. package/voice/voice-provider-defaults.d.ts +40 -0
  3332. package/voice/voice-provider-defaults.d.ts.map +1 -0
  3333. package/voice/voice-provider-defaults.js +46 -0
  3334. package/voice/voice-selftest/VoiceSelfTestShell.d.ts +17 -0
  3335. package/voice/voice-selftest/VoiceSelfTestShell.d.ts.map +1 -0
  3336. package/voice/voice-selftest/VoiceSelfTestShell.js +130 -0
  3337. package/voice/voice-selftest/fixtures/known-phrase.d.ts +3 -0
  3338. package/voice/voice-selftest/fixtures/known-phrase.d.ts.map +1 -0
  3339. package/voice/voice-selftest/fixtures/known-phrase.js +5 -0
  3340. package/voice/voice-selftest/voice-selftest-harness.d.ts +66 -0
  3341. package/voice/voice-selftest/voice-selftest-harness.d.ts.map +1 -0
  3342. package/voice/voice-selftest/voice-selftest-harness.js +320 -0
  3343. package/voice/voice-turn-signal.d.ts +27 -0
  3344. package/voice/voice-turn-signal.d.ts.map +1 -0
  3345. package/voice/voice-turn-signal.js +59 -0
  3346. package/widgets/WidgetHost.constants.d.ts +2 -0
  3347. package/widgets/WidgetHost.constants.d.ts.map +1 -0
  3348. package/widgets/WidgetHost.constants.js +1 -0
  3349. package/widgets/WidgetHost.d.ts +7 -0
  3350. package/widgets/WidgetHost.d.ts.map +1 -1
  3351. package/widgets/WidgetHost.js +18 -5
  3352. package/widgets/index.d.ts +3 -2
  3353. package/widgets/index.d.ts.map +1 -1
  3354. package/widgets/index.js +2 -1
  3355. package/widgets/registry-store.js +1 -1
  3356. package/widgets/registry.d.ts +0 -8
  3357. package/widgets/registry.d.ts.map +1 -1
  3358. package/widgets/registry.js +5 -17
  3359. package/widgets/useChatSidebarVisibility.js +1 -1
  3360. package/widgets/visibility.d.ts +3 -3
  3361. package/widgets/visibility.d.ts.map +1 -1
  3362. package/widgets/visibility.js +4 -5
  3363. package/api/client-types-babylon.d.ts +0 -254
  3364. package/api/client-types-babylon.d.ts.map +0 -1
  3365. package/api/client-types-babylon.js +0 -2
  3366. package/components/character/CharacterRelationshipsSection.d.ts +0 -7
  3367. package/components/character/CharacterRelationshipsSection.d.ts.map +0 -1
  3368. package/components/character/CharacterRelationshipsSection.js +0 -4
  3369. package/components/chat/widgets/registry.d.ts +0 -8
  3370. package/components/chat/widgets/registry.d.ts.map +0 -1
  3371. package/components/chat/widgets/registry.js +0 -7
  3372. package/components/composites/chat/chat-sidebar.d.ts +0 -54
  3373. package/components/composites/chat/chat-sidebar.d.ts.map +0 -1
  3374. package/components/composites/chat/chat-sidebar.js +0 -64
  3375. package/components/composites/chat/create-task-popover.d.ts +0 -13
  3376. package/components/composites/chat/create-task-popover.d.ts.map +0 -1
  3377. package/components/composites/chat/create-task-popover.js +0 -44
  3378. package/components/composites/search/search-input.d.ts +0 -11
  3379. package/components/composites/search/search-input.d.ts.map +0 -1
  3380. package/components/composites/search/search-input.js +0 -10
  3381. package/components/composites/sidebar/sidebar-filter-bar.d.ts +0 -3
  3382. package/components/composites/sidebar/sidebar-filter-bar.d.ts.map +0 -1
  3383. package/components/composites/sidebar/sidebar-filter-bar.js +0 -14
  3384. package/components/local-inference/HuggingFaceSearch.d.ts +0 -22
  3385. package/components/local-inference/HuggingFaceSearch.d.ts.map +0 -1
  3386. package/components/local-inference/HuggingFaceSearch.js +0 -68
  3387. package/components/onboarding/BootstrapStep.d.ts +0 -35
  3388. package/components/onboarding/BootstrapStep.d.ts.map +0 -1
  3389. package/components/onboarding/BootstrapStep.js +0 -151
  3390. package/components/onboarding/PasswordSetupStep.d.ts +0 -28
  3391. package/components/onboarding/PasswordSetupStep.d.ts.map +0 -1
  3392. package/components/onboarding/PasswordSetupStep.js +0 -82
  3393. package/components/onboarding/onboarding-form-primitives.d.ts +0 -54
  3394. package/components/onboarding/onboarding-form-primitives.d.ts.map +0 -1
  3395. package/components/onboarding/onboarding-form-primitives.js +0 -55
  3396. package/components/onboarding/onboarding-step-chrome.d.ts +0 -40
  3397. package/components/onboarding/onboarding-step-chrome.d.ts.map +0 -1
  3398. package/components/onboarding/onboarding-step-chrome.js +0 -74
  3399. package/components/pages/AutomationsChatPane.d.ts +0 -19
  3400. package/components/pages/AutomationsChatPane.d.ts.map +0 -1
  3401. package/components/pages/AutomationsChatPane.js +0 -15
  3402. package/components/pages/ChatModalView.d.ts +0 -13
  3403. package/components/pages/ChatModalView.d.ts.map +0 -1
  3404. package/components/pages/ChatModalView.js +0 -17
  3405. package/components/pages/ChatPanelLayout.d.ts +0 -11
  3406. package/components/pages/ChatPanelLayout.d.ts.map +0 -1
  3407. package/components/pages/ChatPanelLayout.js +0 -37
  3408. package/components/pages/ConnectorsPageView.d.ts +0 -8
  3409. package/components/pages/ConnectorsPageView.d.ts.map +0 -1
  3410. package/components/pages/ConnectorsPageView.js +0 -8
  3411. package/components/pages/HomePlaceholderView.d.ts +0 -16
  3412. package/components/pages/HomePlaceholderView.d.ts.map +0 -1
  3413. package/components/pages/HomePlaceholderView.js +0 -17
  3414. package/components/pages/PageScopedChatPane.d.ts +0 -51
  3415. package/components/pages/PageScopedChatPane.d.ts.map +0 -1
  3416. package/components/pages/PageScopedChatPane.js +0 -586
  3417. package/components/pages/VectorBrowserView.d.ts +0 -13
  3418. package/components/pages/VectorBrowserView.d.ts.map +0 -1
  3419. package/components/pages/VectorBrowserView.js +0 -863
  3420. package/components/settings/CloudInstancePanel.d.ts +0 -2
  3421. package/components/settings/CloudInstancePanel.d.ts.map +0 -1
  3422. package/components/settings/CloudInstancePanel.js +0 -48
  3423. package/components/shell/DnaLoader.d.ts +0 -8
  3424. package/components/shell/DnaLoader.d.ts.map +0 -1
  3425. package/components/shell/DnaLoader.js +0 -50
  3426. package/components/shell/Header.d.ts +0 -12
  3427. package/components/shell/Header.d.ts.map +0 -1
  3428. package/components/shell/Header.js +0 -316
  3429. package/components/shell/RuntimeGate.d.ts +0 -51
  3430. package/components/shell/RuntimeGate.d.ts.map +0 -1
  3431. package/components/shell/RuntimeGate.js +0 -1293
  3432. package/components/shell/SplashServerChooser.d.ts +0 -14
  3433. package/components/shell/SplashServerChooser.d.ts.map +0 -1
  3434. package/components/shell/SplashServerChooser.js +0 -23
  3435. package/components/shell/onboarding-theme.d.ts +0 -6
  3436. package/components/shell/onboarding-theme.d.ts.map +0 -1
  3437. package/components/shell/onboarding-theme.js +0 -29
  3438. package/components/ui/drawer-sheet.d.ts +0 -19
  3439. package/components/ui/drawer-sheet.d.ts.map +0 -1
  3440. package/components/ui/drawer-sheet.js +0 -21
  3441. package/components/ui/section-card.d.ts +0 -15
  3442. package/components/ui/section-card.d.ts.map +0 -1
  3443. package/components/ui/section-card.js +0 -10
  3444. package/config/app-config.d.ts +0 -273
  3445. package/config/app-config.d.ts.map +0 -1
  3446. package/config/app-config.js +0 -31
  3447. package/config/boot-config-react.d.ts +0 -5
  3448. package/config/boot-config-react.d.ts.map +0 -1
  3449. package/config/boot-config-react.js +0 -7
  3450. package/config/branding-react.d.ts +0 -4
  3451. package/config/branding-react.d.ts.map +0 -1
  3452. package/config/branding-react.js +0 -11
  3453. package/desktop-runtime/AppWindowRenderer.d.ts +0 -17
  3454. package/desktop-runtime/AppWindowRenderer.d.ts.map +0 -1
  3455. package/desktop-runtime/AppWindowRenderer.js +0 -327
  3456. package/desktop-runtime/DesktopOnboardingRuntime.d.ts +0 -9
  3457. package/desktop-runtime/DesktopOnboardingRuntime.d.ts.map +0 -1
  3458. package/desktop-runtime/DesktopOnboardingRuntime.js +0 -10
  3459. package/desktop-runtime/DesktopSurfaceNavigationRuntime.d.ts +0 -2
  3460. package/desktop-runtime/DesktopSurfaceNavigationRuntime.d.ts.map +0 -1
  3461. package/desktop-runtime/DesktopSurfaceNavigationRuntime.js +0 -48
  3462. package/desktop-runtime/DesktopTrayRuntime.d.ts +0 -11
  3463. package/desktop-runtime/DesktopTrayRuntime.d.ts.map +0 -1
  3464. package/desktop-runtime/DesktopTrayRuntime.js +0 -265
  3465. package/desktop-runtime/DetachedShellRoot.d.ts +0 -10
  3466. package/desktop-runtime/DetachedShellRoot.d.ts.map +0 -1
  3467. package/desktop-runtime/DetachedShellRoot.js +0 -114
  3468. package/desktop-runtime/index.d.ts +0 -6
  3469. package/desktop-runtime/index.d.ts.map +0 -1
  3470. package/desktop-runtime/index.js +0 -5
  3471. package/hooks/useBugReport.d.ts +0 -26
  3472. package/hooks/useBugReport.d.ts.map +0 -1
  3473. package/hooks/useBugReport.js +0 -28
  3474. package/hooks/useStreamPopoutNavigation.d.ts +0 -3
  3475. package/hooks/useStreamPopoutNavigation.d.ts.map +0 -1
  3476. package/hooks/useStreamPopoutNavigation.js +0 -4
  3477. package/hooks/useWorkflowGenerationState.d.ts +0 -20
  3478. package/hooks/useWorkflowGenerationState.d.ts.map +0 -1
  3479. package/hooks/useWorkflowGenerationState.js +0 -43
  3480. package/layouts/workspace-layout/workspace-mobile-sidebar-controls.d.ts +0 -13
  3481. package/layouts/workspace-layout/workspace-mobile-sidebar-controls.d.ts.map +0 -1
  3482. package/onboarding/auto-download-recommended.d.ts +0 -30
  3483. package/onboarding/auto-download-recommended.d.ts.map +0 -1
  3484. package/onboarding/auto-download-recommended.js +0 -105
  3485. package/onboarding/flow.d.ts +0 -66
  3486. package/onboarding/flow.d.ts.map +0 -1
  3487. package/onboarding/flow.js +0 -100
  3488. package/onboarding/local-agent-token.d.ts +0 -6
  3489. package/onboarding/local-agent-token.d.ts.map +0 -1
  3490. package/onboarding/local-agent-token.js +0 -79
  3491. package/onboarding/mobile-runtime-mode.d.ts +0 -19
  3492. package/onboarding/mobile-runtime-mode.d.ts.map +0 -1
  3493. package/onboarding/mobile-runtime-mode.js +0 -91
  3494. package/onboarding/pre-seed-local-runtime.d.ts +0 -53
  3495. package/onboarding/pre-seed-local-runtime.d.ts.map +0 -1
  3496. package/onboarding/pre-seed-local-runtime.js +0 -111
  3497. package/onboarding/probe-local-agent.d.ts +0 -51
  3498. package/onboarding/probe-local-agent.d.ts.map +0 -1
  3499. package/onboarding/probe-local-agent.js +0 -235
  3500. package/onboarding/reload-into-runtime-picker.d.ts +0 -25
  3501. package/onboarding/reload-into-runtime-picker.d.ts.map +0 -1
  3502. package/onboarding/reload-into-runtime-picker.js +0 -45
  3503. package/onboarding/server-target.d.ts +0 -4
  3504. package/onboarding/server-target.d.ts.map +0 -1
  3505. package/onboarding/server-target.js +0 -13
  3506. package/onboarding-config.d.ts +0 -61
  3507. package/onboarding-config.d.ts.map +0 -1
  3508. package/onboarding-config.js +0 -172
  3509. package/platform/onboarding-reset.d.ts +0 -11
  3510. package/platform/onboarding-reset.d.ts.map +0 -1
  3511. package/platform/onboarding-reset.js +0 -127
  3512. package/services/local-inference/dflash-doctor.d.ts +0 -22
  3513. package/services/local-inference/dflash-doctor.d.ts.map +0 -1
  3514. package/services/local-inference/dflash-doctor.js +0 -139
  3515. package/services/local-inference/dflash-server.d.ts +0 -76
  3516. package/services/local-inference/dflash-server.d.ts.map +0 -1
  3517. package/services/local-inference/dflash-server.js +0 -451
  3518. package/services/local-inference/providers.d.ts +0 -61
  3519. package/services/local-inference/providers.d.ts.map +0 -1
  3520. package/services/local-inference/providers.js +0 -306
  3521. package/state/ChatComposerContext.d.ts +0 -28
  3522. package/state/ChatComposerContext.d.ts.map +0 -1
  3523. package/state/ChatComposerContext.js +0 -30
  3524. package/state/CompanionSceneConfigContext.d.ts +0 -27
  3525. package/state/CompanionSceneConfigContext.d.ts.map +0 -1
  3526. package/state/CompanionSceneConfigContext.js +0 -32
  3527. package/state/PtySessionsContext.d.ts +0 -15
  3528. package/state/PtySessionsContext.d.ts.map +0 -1
  3529. package/state/PtySessionsContext.js +0 -15
  3530. package/state/TranslationContext.d.ts +0 -37
  3531. package/state/TranslationContext.d.ts.map +0 -1
  3532. package/state/TranslationContext.js +0 -63
  3533. package/state/connector-deeplink.d.ts +0 -30
  3534. package/state/connector-deeplink.d.ts.map +0 -1
  3535. package/state/connector-deeplink.js +0 -46
  3536. package/state/navigation-events.d.ts +0 -12
  3537. package/state/navigation-events.d.ts.map +0 -1
  3538. package/state/navigation-events.js +0 -25
  3539. package/state/onboarding-bootstrap.d.ts +0 -28
  3540. package/state/onboarding-bootstrap.d.ts.map +0 -1
  3541. package/state/onboarding-bootstrap.js +0 -76
  3542. package/state/onboarding-restart.d.ts +0 -8
  3543. package/state/onboarding-restart.d.ts.map +0 -1
  3544. package/state/onboarding-restart.js +0 -8
  3545. package/state/onboarding-resume.d.ts +0 -9
  3546. package/state/onboarding-resume.d.ts.map +0 -1
  3547. package/state/onboarding-resume.js +0 -93
  3548. package/state/useOnboardingCallbacks.d.ts +0 -100
  3549. package/state/useOnboardingCallbacks.d.ts.map +0 -1
  3550. package/state/useOnboardingCallbacks.js +0 -804
  3551. package/state/useOnboardingCompat.d.ts +0 -61
  3552. package/state/useOnboardingCompat.d.ts.map +0 -1
  3553. package/state/useOnboardingCompat.js +0 -110
  3554. package/state/useOnboardingState.d.ts +0 -126
  3555. package/state/useOnboardingState.d.ts.map +0 -1
  3556. package/state/useOnboardingState.js +0 -263
  3557. package/state/useVincentState.d.ts +0 -3
  3558. package/state/useVincentState.d.ts.map +0 -1
  3559. package/state/useVincentState.js +0 -13
  3560. package/styles/onboarding-game.css +0 -568
  3561. package/terminal/links.d.ts +0 -9
  3562. package/terminal/links.d.ts.map +0 -1
  3563. package/terminal/links.js +0 -20
  3564. package/utils/assistant-text.d.ts +0 -2
  3565. package/utils/assistant-text.d.ts.map +0 -1
  3566. package/utils/assistant-text.js +0 -167
  3567. package/utils/eliza-root.d.ts +0 -9
  3568. package/utils/eliza-root.d.ts.map +0 -1
  3569. package/utils/eliza-root.js +0 -101
  3570. package/utils/exec-safety.d.ts +0 -2
  3571. package/utils/exec-safety.d.ts.map +0 -1
  3572. package/utils/exec-safety.js +0 -21
  3573. package/utils/number-parsing.d.ts +0 -26
  3574. package/utils/number-parsing.d.ts.map +0 -1
  3575. package/utils/number-parsing.js +0 -51
  3576. /package/layouts/workspace-layout/{workspace-mobile-sidebar-controls.js → workspace-mobile-sidebar-controls.hooks.js} +0 -0
@@ -0,0 +1,1918 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { transcriptPlainText } from "@elizaos/shared/transcripts";
3
+ import { FileText, Film, Home, LayoutGrid, Loader2, Maximize2, Mic, Minimize2, Music, RotateCcw, SendHorizontal, Settings as SettingsIcon, } 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, runSlashExecution, splitLeadingSlashCommand, } from "../../chat/slash-menu.js";
8
+ import { 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, filesToImageAttachments, MAX_CHAT_IMAGES, } from "../../utils/image-attachment.js";
14
+ import { MessageAttachments } from "../chat/MessageAttachments.js";
15
+ import { ThinkingBlock } from "../chat/ThinkingBlock.js";
16
+ import { SlashCommandMenu, useSlashMenu } from "./SlashCommandMenu.js";
17
+ import { usePullGesture } from "./use-pull-gesture.js";
18
+ import { usePromptSuggestions } from "./usePromptSuggestions.js";
19
+ /** No-op slash controller so the overlay renders without a provider (stories). */
20
+ const EMPTY_SLASH_CONTROLLER = {
21
+ commands: [],
22
+ loading: false,
23
+ resolveChoices: () => [],
24
+ resolveSection: () => undefined,
25
+ navigateTab: () => { },
26
+ navigateSettings: () => { },
27
+ navigateView: () => { },
28
+ clearChat: () => { },
29
+ openCommandPalette: () => { },
30
+ };
31
+ /**
32
+ * The continuous-chat overlay: one always-present, ambient glass conversation
33
+ * that floats over EVERY view. There are no separate chats and no switcher — it
34
+ * is a single endless thread (the app's one active conversation, via
35
+ * useShellController).
36
+ *
37
+ * Layout is a fixed composer at the bottom with a pull-up history SHEET above
38
+ * it. At rest the sheet is a slim peek (the grabber + the latest line); pull it
39
+ * UP — anywhere on the sheet — or just start typing to spring it open into the
40
+ * full transcript; pull the grabber back DOWN, or press Escape, to close.
41
+ * Nothing else dismisses it — clicking or scrolling the view behind does
42
+ * nothing. The composer never moves; the history slides up over it.
43
+ *
44
+ * The container is pointer-events-none (the view behind stays live); only the
45
+ * composer + sheet capture input, so it is non-blocking — unlike the
46
+ * focus-trapping AssistantOverlay it supersedes in the main shell.
47
+ *
48
+ * Two design rules keep it intimate rather than app-like:
49
+ * 1. SELF-CONTAINED CONTRAST — every surface carries its own dark-glass scrim
50
+ * (or, for floating text, a soft shadow) plus fixed light text, never the
51
+ * theme's `--txt`, so it stays legible over any substrate: a bright view, a
52
+ * dark view, or the warm "good evening" backdrop.
53
+ * 2. NO CHROME/SIGNAGE — the thread speaks for itself: no message counter, no
54
+ * "new chat", no tab strip; controls dissolve into the glass, and status is
55
+ * a soft breath of light, not a brand-colored alert ring.
56
+ *
57
+ * Pure/presentational: it takes the controller as a prop so it can be rendered
58
+ * in isolation (stories / harness) with a mock. The app wraps it in a small
59
+ * context-reading mount (see App.tsx) that supplies the shared controller.
60
+ */
61
+ // Floating (un-scrimmed) text gets a soft shadow so it reads over bright views.
62
+ const FLOAT_SHADOW = "[text-shadow:0_1px_4px_rgba(0,0,0,0.7)]";
63
+ // Shared easing for the overlay's cheap motion path. Open/close must stay
64
+ // opacity/translate only: animating blur/filter or scaling a scrollable
65
+ // transcript repaints too much of the viewport and visibly janks on laptops.
66
+ const OVERLAY_EASE = [0.22, 1, 0.36, 1];
67
+ const SHEET_HALF_VH = 0.46; // fraction of viewport height at the HALF detent
68
+ // px kept clear above the panel. Sized to clear an edge-to-edge status bar
69
+ // (~58px) plus a buffer so the grabber sits BELOW the notification-shade pull
70
+ // zone — the full sheet reaches the top without fighting the system gesture.
71
+ const SHEET_TOP_MARGIN = 72;
72
+ // Detent magnetism: on a deliberate (non-flick) drag release, a height within
73
+ // this many px of a detent (collapsed/half/full) snaps to that detent instead
74
+ // of resting free — so near-detent releases are deterministic + clean, and only
75
+ // the clear gaps between detents keep the free-drag rest height.
76
+ const SHEET_DETENT_MAGNET = 64;
77
+ // Cap how many turns are actually rendered. Older messages stay in state (the
78
+ // agent's context is untouched) — this only bounds DOM nodes so a long thread
79
+ // can't jank scrolling on a phone, without pulling in a virtualizer.
80
+ const MAX_RENDERED_MESSAGES = 80;
81
+ // Feature flag: the resting one-tap prompt-suggestion strip. Off for now so the
82
+ // composer can be tested without it; flip to true to bring the strip back.
83
+ const SHOW_PROMPT_SUGGESTIONS = false;
84
+ // A light iOS-style impact on each detent cross. Self-contained + guarded so it
85
+ // is a no-op off-native (and in jsdom tests) without coupling the overlay to the
86
+ // Capacitor bridge module. Mirrors `bridge/capacitor-bridge.ts` `haptics.light()`.
87
+ function detentHaptic() {
88
+ try {
89
+ const cap = globalThis.Capacitor;
90
+ if (cap?.isNativePlatform?.()) {
91
+ void cap.Plugins?.Haptics?.impact?.({ style: "LIGHT" });
92
+ }
93
+ }
94
+ catch {
95
+ // Haptics are a nicety — never let them throw into the gesture path.
96
+ }
97
+ }
98
+ const SHEET_SPRING = {
99
+ type: "spring",
100
+ stiffness: 320,
101
+ damping: 34,
102
+ mass: 0.9,
103
+ };
104
+ // Slightly springier preset for the pill→input "liquid glass" open: a touch
105
+ // less damping than the height spring so the input reads as springing IN on a
106
+ // flick, while the live drag-tracking gives a slow pull its "lerp" character.
107
+ const OPEN_SPRING = {
108
+ type: "spring",
109
+ stiffness: 300,
110
+ damping: 26,
111
+ mass: 0.85,
112
+ };
113
+ // Finger travel (px) that fully opens the input from the pill. A live pill drag
114
+ // maps offset → openProgress ∈ [0,1] over this distance; past it, the excess
115
+ // flows into the thread height so pill → input → chat is one continuous motion.
116
+ const PILL_OPEN_DISTANCE = 120;
117
+ // Rubber-band resistance applied to drag past a detent (iOS-style overscroll).
118
+ function rubberBand(overshoot) {
119
+ return Math.sign(overshoot) * Math.sqrt(Math.abs(overshoot)) * 6;
120
+ }
121
+ // Glyphs (viewBox 0 0 36 36), rendered in currentColor inside a soft chip. Send
122
+ // + mic now use lucide icons (SendHorizontal / Mic); the rest stay hand-drawn.
123
+ const PLUS_GLYPH = "M16 8H20V16H28V20H20V28H16V20H8V16H16Z";
124
+ // Stop generating: a centered rounded square (the universal "stop" affordance).
125
+ const STOP_GLYPH = "M12 12H24V24H12Z";
126
+ /** Base64-encode WAV bytes in chunks (avoids the apply() arg-count limit). */
127
+ function wavBytesToBase64(bytes) {
128
+ let binary = "";
129
+ const chunk = 0x8000;
130
+ for (let i = 0; i < bytes.length; i += chunk) {
131
+ binary += String.fromCharCode(...bytes.subarray(i, i + chunk));
132
+ }
133
+ return btoa(binary);
134
+ }
135
+ /** UTF-8-safe base64 for a transcript turned into a composer text attachment. */
136
+ function textToBase64(text) {
137
+ return wavBytesToBase64(new TextEncoder().encode(text));
138
+ }
139
+ // Muted-speaker glyph for the autoplay-blocked "tap to enable sound" prompt.
140
+ const SPEAKER_MUTED_GLYPH = "M7 15H12L18 10V26L12 21H7Z M21 12.4L22.4 11L31 19.6L29.6 21Z";
141
+ function Glyph({ d }) {
142
+ 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 }) }));
143
+ }
144
+ /** A soft round glass control that dissolves into the bar; brightens only when active. */
145
+ function SoftButton({ glyph, icon: Icon, label, onClick, onPointerDown, onPointerUp, onPointerCancel, disabled, active, testId, }) {
146
+ 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(
147
+ // 44×44 hit target (WCAG 2.5.5) — comfortably thumb-tappable without
148
+ // crowding the bar (split the difference back down from 48).
149
+ "grid h-11 w-11 shrink-0 place-items-center rounded-full border transition-colors", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/70", active
150
+ ? "border-white/40 bg-white/85 text-black"
151
+ : "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 }));
152
+ }
153
+ /** A compact glass control for the full-state header (maximize / clear /
154
+ * settings). Smaller than SoftButton; same neutral resting → neutral-hover
155
+ * language (no blue), `active` gets the white fill. Renders a lucide icon. */
156
+ function HeaderButton({ icon: Icon, label, onClick, active, disabled, testId, }) {
157
+ 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", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/70", disabled
158
+ ? // On the view it targets: shown but inert + dimmed (we disable, not hide).
159
+ "cursor-default border-white/10 bg-white/[0.05] text-white/35"
160
+ : active
161
+ ? "border-white/40 bg-white/85 text-black"
162
+ : "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 }) }));
163
+ }
164
+ /**
165
+ * The drag handle at the top of the chat sheet — pull UP to open the history,
166
+ * pull DOWN to close it. It is also keyboard-operable (Enter/Space toggles,
167
+ * ArrowUp opens, ArrowDown/Escape closes) so the drag-only affordance stays
168
+ * WCAG 2.1.1 operable. `touch-none` keeps the browser from scroll/refreshing
169
+ * mid-drag. A faint warm sheen rides the handle while the agent is live.
170
+ */
171
+ function SheetGrabber({ open, onOpen, onClose, binding, glow, opacity, pilled, }) {
172
+ return (_jsx(motion.button, { style: { opacity, pointerEvents: pilled ? "none" : "auto" },
173
+ // Invisible + inert while pilled: the pill capsule below owns the drag, so
174
+ // keep this out of the tab order and the a11y tree until it's the handle.
175
+ tabIndex: pilled ? -1 : undefined, "aria-hidden": pilled || undefined,
176
+ // A disclosure toggle for the chat history, not a value-bearing separator:
177
+ // button + aria-expanded is the accurate semantic and stays keyboard-
178
+ // operable (Enter/Space toggle, Arrow keys nudge) per WCAG 2.1.1.
179
+ 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) => {
180
+ if (e.key === "Enter" || e.key === " ") {
181
+ e.preventDefault();
182
+ if (open)
183
+ onClose();
184
+ else
185
+ onOpen();
186
+ }
187
+ else if (e.key === "ArrowUp") {
188
+ e.preventDefault();
189
+ onOpen();
190
+ }
191
+ else if (e.key === "ArrowDown" || e.key === "Escape") {
192
+ e.preventDefault();
193
+ onClose();
194
+ }
195
+ }, ...binding, className: cn("appearance-none border-0 bg-transparent text-left",
196
+ // ABSOLUTELY positioned over the panel top (zero layout height — it
197
+ // floats slightly on top of the input row, so collapsed height == the
198
+ // input bar). The bar sits a touch lower; the BIG invisible `before` hit
199
+ // zone reaches UP into the empty space above the panel (3× taller/wider
200
+ // than the bar) so it's easy to grab without covering the edge buttons.
201
+ // z-20 keeps it above the input row (z-10) so it always wins the drag.
202
+ "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",
203
+ // The hit zone reaches UP into the empty space above the panel (easy to
204
+ // grab) and stops at the handle's own bottom — it never reaches the
205
+ // vertically-centered textarea, so a tap on the composer lands natively
206
+ // on the textarea and raises the keyboard (a programmatic focus from the
207
+ // handle wouldn't). Pull gestures start from the bar / the upward zone.
208
+ "before:absolute before:-inset-x-6 before:-top-16 before:bottom-0 before:content-['']", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/50 focus-visible:rounded-full"), children: _jsx("span", { "aria-hidden": "true", className: cn(
209
+ // 30% wider bar (w-11 → w-14), a touch taller, brighter.
210
+ "h-2.5 w-16 rounded-full transition-colors duration-300", glow ? "bg-[rgba(255,180,120,0.8)]" : "bg-white/45") }) }));
211
+ }
212
+ /**
213
+ * The fully-collapsed PILL — the chat reduced to a small glass capsule at the
214
+ * very bottom. Tap or flick/pull it up to bring the input back. Big invisible
215
+ * hit area so it's easy to grab; the visible capsule stays small.
216
+ */
217
+ function PillHandle({ binding, onOpen, glow, pilled, }) {
218
+ return (_jsx("button", { type: "button", "data-testid": "chat-pill", "aria-label": "open chat",
219
+ // No onClick: the pull-gesture binding is the single tap authority (a tap
220
+ // routes through onPointerUp → onTap → openFromPill), matching the
221
+ // SheetGrabber. A native onClick would ALSO fire on every tap, opening the
222
+ // pill twice in one gesture (double haptic + a stale focus-suppress flag
223
+ // that swallowed the next focus→expand). Keyboard activation still routes
224
+ // through onKeyDown below.
225
+ onKeyDown: (e) => {
226
+ if (e.key === "Enter" || e.key === " " || e.key === "ArrowUp") {
227
+ e.preventDefault();
228
+ onOpen();
229
+ }
230
+ }, ...binding, tabIndex: pilled ? undefined : -1, "aria-hidden": pilled ? undefined : true, className: cn(
231
+ // The bar hugs the BOTTOM (small pb) where the collapsed input sat — not
232
+ // floating mid-air; the tall pt keeps a generous upward grab/flick zone.
233
+ "flex cursor-grab touch-none select-none items-end justify-center px-16 pb-1.5 pt-10 active:cursor-grabbing",
234
+ // Interactive only while pilled. When NOT pilled the (faded) handle must
235
+ // let taps fall through to the composer textarea below it — otherwise its
236
+ // tall hit zone steals the tap and the keyboard never opens.
237
+ pilled ? "pointer-events-auto" : "pointer-events-none", "focus-visible:rounded-full focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/50"), children: _jsx("span", { "aria-hidden": "true", className: cn(
238
+ // Identical to the SheetGrabber bar — the handle keeps the same white
239
+ // shape + color whether the chat is open or fully collapsed to the pill.
240
+ "h-2.5 w-16 rounded-full transition-colors duration-300", glow ? "bg-[rgba(255,180,120,0.8)]" : "bg-white/45") }) }));
241
+ }
242
+ /** Three quiet, borderless dots that breathe while the assistant is replying. */
243
+ // Just the three breathing dots — rendered INSIDE a bubble (the in-flight
244
+ // assistant turn, so "thinking" is anchored where the reply will appear) or
245
+ // wrapped in its own bubble by TypingDots for the pre-placeholder gap.
246
+ function TypingDotsInner() {
247
+ return (_jsx("span", { className: "flex gap-1.5 py-1", "data-testid": "typing-dots", role: "status", "aria-label": "assistant is responding", children: [0, 1, 2].map((i) => (_jsx("span", { className: "h-1.5 w-1.5 animate-pulse rounded-full bg-white/70 motion-reduce:animate-none", style: { animationDelay: `${i * 180}ms` } }, i))) }));
248
+ }
249
+ function TypingDots({ reduce }) {
250
+ return (_jsx(motion.div, { className: "mb-2.5 flex w-full justify-start",
251
+ // Fade in/out so the dots dissolve with the reply rather than popping.
252
+ 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 border-white/10 bg-black/45 px-3.5 py-2 text-white/90", FLOAT_SHADOW), children: _jsx(TypingDotsInner, {}) }) }));
253
+ }
254
+ /**
255
+ * One turn of the transcript as a chat bubble — assistant on the left, user on
256
+ * the right. Memoized so a live drag (which re-renders the overlay on every
257
+ * pointer-move frame) doesn't re-render every message in a long thread.
258
+ */
259
+ // Press-and-hold copy: a still hold this long fires; any finger travel past the
260
+ // move threshold first cancels it (so it yields to the thread's scroll).
261
+ const COPY_HOLD_MS = 420;
262
+ const COPY_MOVE_CANCEL_PX = 10;
263
+ /**
264
+ * Render a user turn's text, bolding a leading slash command so a sent
265
+ * `/command` reads as a command in the transcript (mirroring the composer's
266
+ * inline autocomplete). Plain prose renders unchanged.
267
+ */
268
+ function ThreadLineText({ content }) {
269
+ const slash = splitLeadingSlashCommand(content);
270
+ if (!slash)
271
+ return content;
272
+ return (_jsxs(_Fragment, { children: [_jsx("span", { className: "font-bold", "data-testid": "slash-command-token", children: slash.command }), slash.rest] }));
273
+ }
274
+ const ThreadLine = React.memo(function ThreadLine({ message, floating, reduce, onCopy, onOpenSettings, }) {
275
+ const isUser = message.role === "user";
276
+ const isAssistant = message.role === "assistant";
277
+ // Press-and-hold to copy an assistant answer — the only extraction affordance
278
+ // on touch (no hover row). A still hold past COPY_HOLD_MS copies + flashes
279
+ // "Copied" + a light haptic; real finger travel cancels so it never fights the
280
+ // thread's touch-pan-y scroll.
281
+ const [copied, setCopied] = React.useState(false);
282
+ const holdTimer = React.useRef(null);
283
+ const holdStart = React.useRef(null);
284
+ const copiedTimer = React.useRef(null);
285
+ const clearHold = React.useCallback(() => {
286
+ if (holdTimer.current !== null) {
287
+ window.clearTimeout(holdTimer.current);
288
+ holdTimer.current = null;
289
+ }
290
+ holdStart.current = null;
291
+ }, []);
292
+ React.useEffect(() => () => {
293
+ if (holdTimer.current !== null)
294
+ window.clearTimeout(holdTimer.current);
295
+ if (copiedTimer.current !== null)
296
+ window.clearTimeout(copiedTimer.current);
297
+ }, []);
298
+ const canCopy = isAssistant && !!onCopy && message.content.trim().length > 0;
299
+ const copyHandlers = canCopy
300
+ ? {
301
+ onPointerDown: (e) => {
302
+ holdStart.current = { x: e.clientX, y: e.clientY };
303
+ holdTimer.current = window.setTimeout(() => {
304
+ onCopy?.(message.content);
305
+ detentHaptic();
306
+ setCopied(true);
307
+ if (copiedTimer.current !== null)
308
+ window.clearTimeout(copiedTimer.current);
309
+ copiedTimer.current = window.setTimeout(() => setCopied(false), 1100);
310
+ holdTimer.current = null;
311
+ }, COPY_HOLD_MS);
312
+ },
313
+ onPointerMove: (e) => {
314
+ const s = holdStart.current;
315
+ if (!s)
316
+ return;
317
+ if (Math.abs(e.clientX - s.x) > COPY_MOVE_CANCEL_PX ||
318
+ Math.abs(e.clientY - s.y) > COPY_MOVE_CANCEL_PX)
319
+ clearHold();
320
+ },
321
+ onPointerUp: clearHold,
322
+ onPointerCancel: clearHold,
323
+ }
324
+ : null;
325
+ // A failed turn the user can't recover from without wiring a provider: render
326
+ // a structured gate (not the raw error text) with a one-tap jump to Settings.
327
+ if (isAssistant && message.failureKind === "no_provider") {
328
+ 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 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/60", children: "Open Settings" })] }) }));
329
+ }
330
+ return (_jsx(motion.div, { "data-testid": "thread-line", "data-role": message.role,
331
+ // New turns rise+fade in. Transform/opacity only; reduced motion collapses
332
+ // it to a quick fade with no positional movement.
333
+ 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(
334
+ // whitespace-pre-wrap keeps newlines; overflow-wrap breaks long URLs /
335
+ // hashes / paths so they can't blow out the bubble width on a phone.
336
+ "relative max-w-[80%] whitespace-pre-wrap rounded-2xl px-3.5 py-2 text-[14px] leading-relaxed [overflow-wrap:anywhere]",
337
+ // The chrome-free transcript renders floating: each bubble carries its
338
+ // own dark glass so it stays legible directly over whatever view is
339
+ // behind. The light tone is for any embedding that supplies its own
340
+ // surrounding scrim.
341
+ isUser ? "rounded-br-md" : "rounded-bl-md",
342
+ // Assistant bubbles own the press-and-hold copy gesture, so suppress
343
+ // the native long-press selection/callout that would fight it.
344
+ canCopy && "select-none [-webkit-touch-callout:none]", floating
345
+ ? cn("border", isUser
346
+ ? "border-white/15 bg-black/55 text-white"
347
+ : "border-white/10 bg-black/45 text-white/90", FLOAT_SHADOW)
348
+ : isUser
349
+ ? "bg-white/20 text-white"
350
+ : "bg-white/10 text-white/90"), children: [isAssistant &&
351
+ !message.content.trim() &&
352
+ !message.attachments?.length ? (_jsx(TypingDotsInner, {})) : isUser ? (_jsx(ThreadLineText, { content: message.content })) : (message.content), message.attachments?.length ? (_jsx(MessageAttachments, { attachments: message.attachments })) : null, isAssistant && message.reasoning?.trim() ? (_jsx(ThinkingBlock, { reasoning: message.reasoning })) : null, _jsx(AnimatePresence, { children: copied ? (_jsx(motion.span, { "data-testid": "thread-line-copied", initial: { opacity: 0, y: 4 }, animate: { opacity: 1, y: 0 }, exit: { opacity: 0 }, transition: { duration: 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 shadow", children: "Copied" }, "copied")) : null })] }) }));
353
+ });
354
+ export function ContinuousChatOverlay({ controller, agentName = "Eliza", slash: slashProp, }) {
355
+ const { messages, phase, responding, send, canSend, recording, startRecording, stopRecording, handsFree, toggleHandsFree, transcriptionMode, toggleTranscriptionMode, setDictationSink, setTranscriptSessionSink, setComposerHasDraft, transcript, needsAudioUnlock, unlockAudio, openSettings, navigateHome, navigateToViews, currentTab, clearConversation, stop, modelStatus, } = controller;
356
+ // The transcribe control is a voice feature, so it only belongs in the header
357
+ // while voice is actually on — a hands-free conversation, the mic open, or an
358
+ // in-progress transcription. When voice is off it's hidden (the `/transcribe`
359
+ // command still starts transcription from cold). `transcriptionMode` is part
360
+ // of the predicate so the button (then "stop transcription") and its badge
361
+ // stay put across the re-listen gaps where `recording` momentarily drops
362
+ // between utterances.
363
+ const voiceActive = Boolean(recording || handsFree || transcriptionMode);
364
+ // Copy an assistant answer (press-and-hold on its bubble). Stable identity so
365
+ // the memoized ThreadLine isn't re-rendered every parent tick.
366
+ const handleCopyMessage = React.useCallback((text) => {
367
+ void copyTextToClipboard(text);
368
+ }, []);
369
+ const slash = slashProp ?? EMPTY_SLASH_CONTROLLER;
370
+ // Honor the OS "reduce motion" setting: every overlay animation collapses to
371
+ // a near-instant cross-fade with no positional movement when this is true.
372
+ const reduce = useReducedMotion() ?? false;
373
+ const [draft, setDraft] = React.useState("");
374
+ // The active view can take over the composer: override the placeholder and
375
+ // receive the live draft (e.g. Help uses the chat as its search box).
376
+ const viewChatBinding = useViewChatBinding();
377
+ // Escape dismisses the slash menu without clearing the draft; typing reopens.
378
+ const [slashDismissed, setSlashDismissed] = React.useState(false);
379
+ // The chat-history sheet: closed (a slim peek + grabber) ↔ open (full
380
+ // scrollable history). The ONLY open/close driver — opened by a pull-up drag,
381
+ // by focusing the composer, or by sending; closed by a pull-down drag or
382
+ // Escape. Never by click-out, scroll, or blur.
383
+ // The sheet's vertical position is ONE ordinal — the single source of truth for
384
+ // how far the chat is open: `input` (composer-only peek) → `half` (reading
385
+ // height) → `full` (near-fullscreen). `sheetOpen`/`expanded` are derived
386
+ // read-only views so the two can never disagree (no impossible "open but not
387
+ // open" combos). `pilled` sits BELOW input; `maximized` drops the inset at full.
388
+ // Grabber pulls step through the detents (each cross haptics); programmatic
389
+ // opens (send/focus) go full.
390
+ // ONE openness state machine (see ChatMode). pilled / sheetOpen / expanded /
391
+ // detent are all DERIVED from it — so the impossible "open but not open" or
392
+ // pilled-and-full combos can't exist and no transition has to hand-sync two
393
+ // separate states (which is what bred the old stuck states).
394
+ const [mode, setMode] = React.useState("input");
395
+ const pilled = mode === "pill";
396
+ const sheetOpen = mode === "half" || mode === "full";
397
+ const expanded = mode === "full";
398
+ // Free-drag rest height (px): when set, the sheet rests exactly where the user
399
+ // released a deliberate drag instead of snapping to a detent. Cleared whenever
400
+ // a detent is taken (tap/flick/focus/collapse) so the detents stay the
401
+ // snap-to targets and free-positioning is purely the drag affordance.
402
+ const [freeH, setFreeH] = React.useState(null);
403
+ // FULL-SCREEN (maximized): at the FULL detent the user can drop the inset
404
+ // (max-width, side padding, top margin, rounding) so the chat is edge-to-edge.
405
+ // Invariant: only true while at FULL (sheetOpen && expanded && !pilled); every
406
+ // leave-full transition resets it.
407
+ const [maximized, setMaximized] = React.useState(false);
408
+ // Whether the sheet was collapsed when the composer last gained focus — so
409
+ // dismissing the keyboard (tap the handle, tap the scrim, tap outside) returns
410
+ // to the prior resting state (collapsed → input) instead of leaving the sheet
411
+ // hanging open, while a sheet that was ALREADY open before focus stays open.
412
+ const preFocusCollapsedRef = React.useRef(true);
413
+ // Snapshot of "was the composer focused (keyboard up) at the last pointerdown".
414
+ // The browser can auto-blur the input between a scrim pointerdown and its
415
+ // click, so the scrim's click handler can't read live focus — it reads this to
416
+ // tell a FIRST tap (keyboard up → just dismiss + restore) from a SECOND tap
417
+ // (keyboard already down → close the chat).
418
+ const composerFocusedAtPressRef = React.useRef(false);
419
+ // Composer focus ⟺ the soft keyboard is up on mobile. This is the reliable
420
+ // keyboard signal: Capacitor's resize:"body" shrinks innerHeight too, so a
421
+ // visualViewport-derived keyboardInset reads 0 and can't gate the layout.
422
+ const [composerFocused, setComposerFocused] = React.useState(false);
423
+ // The live thread (history) height in px, as a MOTION VALUE — driven directly
424
+ // by the pointer during a drag and spring-animated to a detent on release.
425
+ // Keeping it off React state means a drag updates the DOM height every frame
426
+ // with NO component re-render, so the gesture stays buttery. `draggingRef`
427
+ // gates the settle effect so it doesn't fight an in-flight finger drag.
428
+ const threadHeight = useMotionValue(0);
429
+ // Pill → input morph progress (0 = pill capsule, 1 = full input bar), OFF React
430
+ // state like threadHeight so a pill drag morphs the glass at 60fps with no
431
+ // re-render. Drives the glass/content crossfade + scale; `threadHeight` stays
432
+ // 0 until the input is fully formed, then takes over for input → chat.
433
+ const openProgress = useMotionValue(pilled ? 0 : 1);
434
+ // Latest `settleDrag` (defined below) exposed to the viewport-resize effect
435
+ // (which runs earlier). A rotation can orphan an in-flight drag — re-settling
436
+ // the morph keeps the pill↔input crossfade from stranding both bars visible.
437
+ const settleDragRef = React.useRef(null);
438
+ const draggingRef = React.useRef(false);
439
+ // Push-to-talk phase (single source of truth) + a label-only mirror.
440
+ const pttRef = React.useRef({ kind: "idle" });
441
+ const [pttHolding, setPttHolding] = React.useState(false);
442
+ // Swallow exactly the one click that follows a held PTT release.
443
+ const suppressNextClickRef = React.useRef(false);
444
+ const [pendingImages, setPendingImages] = React.useState([]);
445
+ const [imageError, setImageError] = React.useState(null);
446
+ const endRef = React.useRef(null);
447
+ const inputRef = React.useRef(null);
448
+ const fileInputRef = React.useRef(null);
449
+ const overlayRef = React.useRef(null);
450
+ const panelRef = React.useRef(null);
451
+ const threadRef = React.useRef(null);
452
+ // The composer content (textarea + thread). Held so we can imperatively clear
453
+ // its `inert` (set while pilled) the instant the pill is tapped open, before
454
+ // React re-renders — iOS only raises the keyboard for a focus() that lands on
455
+ // a non-inert element synchronously inside the originating tap gesture.
456
+ const contentRef = React.useRef(null);
457
+ // Set for one focus() when we open the pill to the bare input bar: that focus
458
+ // is only there to raise the iOS keyboard and must NOT trip the focus→expand
459
+ // that the normal "tap the visible composer" path relies on (which would
460
+ // fling a history thread open to half instead of resting on the input bar).
461
+ const suppressExpandOnFocusRef = React.useRef(false);
462
+ const focusThreadRef = React.useRef(false);
463
+ // Recomputed only when the thread changes — NOT on every drag/draft re-render.
464
+ // Filter empty turns, then keep only the most recent window (cap DOM nodes).
465
+ const visibleMessages = React.useMemo(() => messages
466
+ // Drop empty turns — EXCEPT the in-flight assistant turn while a reply is
467
+ // streaming, so its bubble can show the breathing dots anchored where the
468
+ // text fills in (then the text replaces them). It's dropped again the
469
+ // moment we leave `responding`, so a failed/empty turn never lingers.
470
+ .filter((m) => m.content.trim() ||
471
+ (m.role === "assistant" && phase === "responding"))
472
+ .slice(-MAX_RENDERED_MESSAGES), [messages, phase]);
473
+ const lastId = visibleMessages.at(-1)?.id ?? null;
474
+ const lastContent = visibleMessages.at(-1)?.content ?? "";
475
+ // The last line id the scroll effect pinned to — lets it tell a NEW line
476
+ // (always pin to bottom) from streaming growth of the current line (follow
477
+ // only when the reader is already at the bottom).
478
+ const scrollPinnedIdRef = React.useRef(lastId);
479
+ const booting = phase === "booting";
480
+ const listening = phase === "listening";
481
+ const hasDraft = draft.trim().length > 0;
482
+ const hasImages = pendingImages.length > 0;
483
+ // The suggestion strip is a keyboard-style row of one-tap prompts shown in the
484
+ // RESTING (closed) state — ready, nothing typed or attached, not recording. It
485
+ // unmounts once the sheet opens or a draft starts; this condition also gates
486
+ // the small-model fetch so it isn't called for a hidden strip.
487
+ const suggestionsVisible = SHOW_PROMPT_SUGGESTIONS &&
488
+ !pilled &&
489
+ !sheetOpen &&
490
+ !recording &&
491
+ !booting &&
492
+ canSend &&
493
+ !hasDraft &&
494
+ !hasImages;
495
+ // Three tailored prompt suggestions for the resting overlay (model-backed via
496
+ // TEXT_SMALL, with a static offline fallback).
497
+ const suggestions = usePromptSuggestions(messages, {
498
+ enabled: suggestionsVisible,
499
+ });
500
+ // Defensive unmount: clear a pending timer and stop a stuck dictation capture
501
+ // if the overlay unmounts mid-press (the controller outlives the overlay).
502
+ // biome-ignore lint/correctness/useExhaustiveDependencies: stopRecording is stable; this runs once on unmount
503
+ React.useEffect(() => () => {
504
+ const phase = pttRef.current;
505
+ if (phase.kind === "pending")
506
+ window.clearTimeout(phase.timer);
507
+ if (phase.kind === "holding")
508
+ stopRecording();
509
+ pttRef.current = { kind: "idle" };
510
+ suppressNextClickRef.current = false;
511
+ }, []);
512
+ // Keep the transcript pinned to the latest line. On first open jump INSTANTLY
513
+ // to the bottom — a layout effect runs before paint, so the thread never
514
+ // flashes at the top. A NEW line (the user's own send, or a fresh reply)
515
+ // always re-pins to the bottom; streaming growth of the current line follows
516
+ // only when the reader is already resting at the bottom, so scrolling up to
517
+ // read history is never yanked down.
518
+ const wasOpenRef = React.useRef(false);
519
+ // biome-ignore lint/correctness/useExhaustiveDependencies: lastId/lastContent/sheetOpen are the triggers; the body reads refs
520
+ React.useLayoutEffect(() => {
521
+ const el = threadRef.current;
522
+ if (!el)
523
+ return;
524
+ const isNewLine = lastId !== scrollPinnedIdRef.current;
525
+ scrollPinnedIdRef.current = lastId;
526
+ // CLOSED peek: always pin to the bottom so it whispers the LATEST line (the
527
+ // one nearest the composer) — even though it can't be user-scrolled, the
528
+ // clipped content must show the end of the thread, not the top.
529
+ if (!sheetOpen) {
530
+ wasOpenRef.current = false;
531
+ el.scrollTop = el.scrollHeight;
532
+ return;
533
+ }
534
+ // OPEN: jump to the bottom on first open; a NEW line re-pins (smooth); while
535
+ // already resting at the bottom, follow streaming growth — but never yank a
536
+ // reader who has scrolled up to read history. Direct scrollTop assignment is
537
+ // more reliable than scrollIntoView inside this clipped flex column.
538
+ const justOpened = !wasOpenRef.current;
539
+ wasOpenRef.current = true;
540
+ const atBottom = el.scrollHeight - el.scrollTop - el.clientHeight < 80;
541
+ if (isNewLine && !justOpened && !reduce && atBottom) {
542
+ endRef.current?.scrollIntoView({ behavior: "smooth", block: "end" });
543
+ }
544
+ else if (justOpened || isNewLine || atBottom) {
545
+ el.scrollTop = el.scrollHeight;
546
+ }
547
+ if (justOpened && focusThreadRef.current) {
548
+ el.focus();
549
+ focusThreadRef.current = false;
550
+ }
551
+ }, [lastId, lastContent, sheetOpen]);
552
+ // The closed peek must always whisper the NEWEST line, but closing is an
553
+ // animated height collapse: a one-shot scroll set runs before the height
554
+ // finishes shrinking, leaving the peek parked mid-thread as clientHeight
555
+ // drops. Observe the peek while closed and re-pin to the bottom on every size
556
+ // change (animation frames, web-font reflow, viewport resize) until it
557
+ // settles. Disconnects the moment the sheet opens.
558
+ React.useEffect(() => {
559
+ const el = threadRef.current;
560
+ if (!el || sheetOpen || typeof ResizeObserver === "undefined")
561
+ return;
562
+ const pin = () => {
563
+ el.scrollTop = el.scrollHeight;
564
+ };
565
+ pin();
566
+ const ro = new ResizeObserver(pin);
567
+ ro.observe(el);
568
+ return () => ro.disconnect();
569
+ }, [sheetOpen]);
570
+ // Send `text` (and optional images) through the normal chat pipeline, clearing
571
+ // the composer. Shared by the send button, the slash menu (agent commands),
572
+ // and suggestion taps.
573
+ const submitText = React.useCallback((text, images = []) => {
574
+ const trimmed = text.trim();
575
+ // An image-only turn is valid; only bail when there's nothing to send.
576
+ if ((!trimmed && images.length === 0) || !canSend)
577
+ return;
578
+ setDraft("");
579
+ setSlashDismissed(false);
580
+ setPendingImages([]);
581
+ setImageError(null);
582
+ if (images.length) {
583
+ send(trimmed, { images });
584
+ }
585
+ else {
586
+ send(trimmed);
587
+ }
588
+ // Open the thread to show the conversation + the streaming reply, the same
589
+ // HALF detent focusing/typing uses — NOT a full-screen takeover on every
590
+ // send (that shoved the messages up too high). Keep a taller detent if the
591
+ // user already opened one; clear any free-rest so the height matches.
592
+ setFreeH(null);
593
+ setMode((m) => (m === "half" || m === "full" ? m : "half"));
594
+ // Sending COMMITS to the open chat: a deliberate message means this is now
595
+ // an active conversation, so dismissing the keyboard afterwards keeps the
596
+ // thread open (preFocusCollapsedRef gates that) instead of collapsing the
597
+ // whole conversation back to the bare input peek — even when the chat was
598
+ // opened by tapping the collapsed input.
599
+ preFocusCollapsedRef.current = false;
600
+ detentHaptic();
601
+ inputRef.current?.focus();
602
+ }, [canSend, send]);
603
+ const submit = React.useCallback(() => {
604
+ submitText(draft, pendingImages);
605
+ }, [submitText, draft, pendingImages]);
606
+ // Tapping a suggestion sends it immediately (same path as submit), so the
607
+ // strip is a one-tap shortcut, not just a draft pre-fill.
608
+ const pickSuggestion = React.useCallback((text) => {
609
+ if (!canSend)
610
+ return;
611
+ setDraft("");
612
+ send(text);
613
+ // Open to HALF (conversation above the keyboard), not a full-screen jump.
614
+ setFreeH(null);
615
+ setMode((m) => (m === "half" || m === "full" ? m : "half"));
616
+ detentHaptic();
617
+ inputRef.current?.focus();
618
+ }, [canSend, send]);
619
+ const addImageFiles = React.useCallback((files) => {
620
+ void filesToImageAttachments(files)
621
+ .then((attachments) => {
622
+ if (!attachments.length)
623
+ return;
624
+ setImageError(null);
625
+ setPendingImages((prev) => [...prev, ...attachments].slice(0, MAX_CHAT_IMAGES));
626
+ })
627
+ .catch((err) => {
628
+ // Surface the failure inline rather than silently dropping the image —
629
+ // the overlay is pure, so it can't reach the global notice channel.
630
+ setImageError(err instanceof Error ? err.message : "Couldn't read image");
631
+ });
632
+ }, []);
633
+ const removeImage = React.useCallback((index) => {
634
+ setPendingImages((prev) => prev.filter((_, i) => i !== index));
635
+ }, []);
636
+ // ── Push-to-talk state machine ──────────────────────────────────────────────
637
+ // ONE phase ref is the source of truth: idle → (press) pending → (200ms hold)
638
+ // holding → (release) idle. `pttHolding` mirrors only what the label needs.
639
+ // A quick tap releases while still "pending" (never started a capture) and
640
+ // falls through to handleMicClick → toggleHandsFree. A held release stops the
641
+ // dictation and suppresses the trailing click so it doesn't ALSO toggle.
642
+ const beginPushToTalkPress = React.useCallback((event) => {
643
+ // Only arm from idle, primary button, no draft, and no capture already
644
+ // live (a tap while hands-free toggles it off — handleMicClick). No
645
+ // `booting` guard: voice capture is independent of agent-respond readiness.
646
+ if (pttRef.current.kind !== "idle" ||
647
+ event.button !== 0 ||
648
+ hasDraft ||
649
+ recording ||
650
+ // Voice input is gated while a reply is in flight; type + send to queue
651
+ // another turn instead. Re-enabled the instant the reply finishes.
652
+ responding)
653
+ return;
654
+ const { pointerId } = event;
655
+ try {
656
+ event.currentTarget.setPointerCapture(pointerId);
657
+ }
658
+ catch {
659
+ // Synthetic/detached pointer — capture is best-effort.
660
+ }
661
+ const timer = window.setTimeout(() => {
662
+ // Promote to holding only if still pending for THIS pointer.
663
+ const phase = pttRef.current;
664
+ if (phase.kind !== "pending" || phase.pointerId !== pointerId)
665
+ return;
666
+ pttRef.current = { kind: "holding", pointerId };
667
+ setPttHolding(true);
668
+ // Press-and-hold = dictation: fills the composer draft (no send).
669
+ startRecording("dictate");
670
+ }, 200);
671
+ pttRef.current = { kind: "pending", pointerId, timer };
672
+ }, [hasDraft, recording, responding, startRecording]);
673
+ // One funnel for BOTH pointerup (cancelled=false) and pointercancel
674
+ // (cancelled=true). Always clears the pending timer + releases pointer capture
675
+ // FIRST — before any early return — so a quick tap can never leak a stuck timer
676
+ // or a captured pointer (the bug that mis-routed later events).
677
+ const finishPushToTalkPress = React.useCallback((event, cancelled) => {
678
+ const phase = pttRef.current;
679
+ if (phase.kind === "pending")
680
+ window.clearTimeout(phase.timer);
681
+ if (event.currentTarget.hasPointerCapture(event.pointerId)) {
682
+ event.currentTarget.releasePointerCapture(event.pointerId);
683
+ }
684
+ pttRef.current = { kind: "idle" };
685
+ if (phase.kind === "holding") {
686
+ stopRecording();
687
+ setPttHolding(false);
688
+ // A real click follows a pointer-UP (never a cancel); suppress it so the
689
+ // dictation release doesn't also toggle hands-free. Setting it ONLY here
690
+ // means it can never leak true into the next legitimate tap.
691
+ if (!cancelled)
692
+ suppressNextClickRef.current = true;
693
+ }
694
+ }, [stopRecording]);
695
+ const handleMicClick = React.useCallback(() => {
696
+ if (suppressNextClickRef.current) {
697
+ suppressNextClickRef.current = false;
698
+ return;
699
+ }
700
+ // Voice can't be turned ON while a reply is in flight (it's gated until the
701
+ // turn finishes), but an active hands-free session can always be turned OFF.
702
+ if (responding && !handsFree)
703
+ return;
704
+ // While transcribing, the mic is the master voice control: a tap ENDS the
705
+ // transcription (which drops the transcript into the composer as an
706
+ // attachment) instead of starting a second, conflicting capture.
707
+ if (transcriptionMode) {
708
+ toggleTranscriptionMode();
709
+ return;
710
+ }
711
+ // Quick tap = hands-free conversation: the agent speaks its replies back and
712
+ // the mic re-opens after each one. Tap again to end.
713
+ toggleHandsFree();
714
+ }, [
715
+ responding,
716
+ handsFree,
717
+ toggleHandsFree,
718
+ transcriptionMode,
719
+ toggleTranscriptionMode,
720
+ ]);
721
+ const hasThread = visibleMessages.length > 0;
722
+ // Track the VISUAL viewport so the chat sizes to — and sits above — whatever
723
+ // the mobile keyboard leaves visible. `height` shrinks when the keyboard opens
724
+ // (on iOS innerHeight does not, so read visualViewport); `keyboardInset` is how
725
+ // far the keyboard intrudes from the layout bottom, used to lift the whole
726
+ // overlay above it. `bottomPad` is the overlay's own safe-area/nav padding,
727
+ // reserved when bounding the panel height.
728
+ const readViewport = React.useCallback(() => {
729
+ if (typeof window === "undefined")
730
+ return { height: 800, keyboardInset: 0, innerHeight: 800 };
731
+ const vv = window.visualViewport;
732
+ const innerHeight = window.innerHeight;
733
+ const height = vv?.height ?? innerHeight;
734
+ const keyboardInset = vv
735
+ ? Math.max(0, innerHeight - vv.height - vv.offsetTop)
736
+ : 0;
737
+ // innerHeight is the LAYOUT viewport: on Android it shrinks (adjustResize)
738
+ // when the keyboard opens, on iOS (`resize: "body"`) it does not. The lift
739
+ // math below uses that to avoid double-counting the keyboard.
740
+ return { height, keyboardInset, innerHeight };
741
+ }, []);
742
+ const [viewport, setViewport] = React.useState(readViewport);
743
+ const [bottomPad, setBottomPad] = React.useState(0);
744
+ React.useEffect(() => {
745
+ if (typeof window === "undefined")
746
+ return undefined;
747
+ const sync = () => {
748
+ setViewport(readViewport());
749
+ const el = overlayRef.current;
750
+ if (el) {
751
+ setBottomPad(Number.parseFloat(getComputedStyle(el).paddingBottom) || 0);
752
+ }
753
+ };
754
+ // A viewport SIZE change (rotation) must never strand the pill↔input morph
755
+ // mid-crossfade — rotation often cancels the in-flight pointer with no
756
+ // pointerup, leaving the drag orphaned (openProgress frozen mid-range = BOTH
757
+ // the grabber bar and the pill bar visible). Re-settle to a clean 0/1 end so
758
+ // the crossfade always resolves to exactly one bar. (No-op at rest; a live
759
+ // legit drag rotating is rare and settling is the right call there too.)
760
+ // Plain `sync` (no settle) stays on vv `scroll` — that fires constantly while
761
+ // the keyboard animates and must not interrupt an open sheet.
762
+ const syncAndSettle = () => {
763
+ sync();
764
+ settleDragRef.current?.();
765
+ };
766
+ syncAndSettle();
767
+ const vv = window.visualViewport;
768
+ window.addEventListener("resize", syncAndSettle);
769
+ vv?.addEventListener("resize", syncAndSettle);
770
+ vv?.addEventListener("scroll", sync);
771
+ return () => {
772
+ window.removeEventListener("resize", syncAndSettle);
773
+ vv?.removeEventListener("resize", syncAndSettle);
774
+ vv?.removeEventListener("scroll", sync);
775
+ };
776
+ }, [readViewport]);
777
+ const viewportH = viewport.height;
778
+ const keyboardInset = viewport.keyboardInset;
779
+ // iOS keyboard avoidance. With Capacitor `resize:"body"`, the software
780
+ // keyboard shrinks the BODY but NOT the visual viewport's relationship to a
781
+ // `position: fixed` element, and the visualViewport delta above frequently
782
+ // reads 0 — so `keyboardInset` alone can't lift the fixed composer and it
783
+ // ends up hidden BEHIND the keyboard (reported on device + simulator).
784
+ // Subscribe to the Capacitor Keyboard plugin for the authoritative keyboard
785
+ // height and lift by whichever inset is larger.
786
+ const [nativeKeyboardHeight, setNativeKeyboardHeight] = React.useState(0);
787
+ React.useEffect(() => {
788
+ if (typeof window === "undefined")
789
+ return undefined;
790
+ let cancelled = false;
791
+ const handles = [];
792
+ void import("@capacitor/keyboard")
793
+ .then(({ Keyboard }) => {
794
+ if (cancelled)
795
+ return;
796
+ void Keyboard.addListener("keyboardWillShow", (info) => {
797
+ setNativeKeyboardHeight(info?.keyboardHeight ?? 0);
798
+ })
799
+ .then((handle) => {
800
+ if (cancelled)
801
+ handle.remove();
802
+ else
803
+ handles.push(handle);
804
+ })
805
+ .catch(() => { });
806
+ void Keyboard.addListener("keyboardWillHide", () => {
807
+ setNativeKeyboardHeight(0);
808
+ })
809
+ .then((handle) => {
810
+ if (cancelled)
811
+ handle.remove();
812
+ else
813
+ handles.push(handle);
814
+ })
815
+ .catch(() => { });
816
+ })
817
+ .catch(() => {
818
+ // Web / non-native: no Keyboard plugin; visualViewport handles it.
819
+ });
820
+ return () => {
821
+ cancelled = true;
822
+ for (const handle of handles)
823
+ handle.remove();
824
+ };
825
+ }, []);
826
+ // Track the layout-viewport height with the keyboard DOWN. On Android the
827
+ // WebView window shrinks (adjustResize) when the keyboard opens, so the fixed
828
+ // overlay's `bottom: 0` already rises with it; on iOS (`resize: "body"`) the
829
+ // layout height is unchanged and the fixed composer stays behind the keyboard.
830
+ const baseInnerHeightRef = React.useRef(viewport.innerHeight);
831
+ React.useEffect(() => {
832
+ if (nativeKeyboardHeight === 0) {
833
+ baseInnerHeightRef.current = viewport.innerHeight;
834
+ }
835
+ }, [nativeKeyboardHeight, viewport.innerHeight]);
836
+ // Lift the composer above the keyboard by ONLY the part the layout didn't
837
+ // already absorb. On Android the window shrank by ~the keyboard height
838
+ // (layoutShrink ≈ keyboardHeight), so the extra native lift is ~0 — without
839
+ // this the chat double-counts and jumps a whole keyboard height too high. On
840
+ // iOS the layout doesn't shrink (layoutShrink = 0), so the full native height
841
+ // lifts the fixed composer above the keyboard. Web (no native plugin) keeps
842
+ // the visualViewport-derived inset.
843
+ const layoutShrink = Math.max(0, baseInnerHeightRef.current - viewport.innerHeight);
844
+ const nativeLift = Math.max(0, nativeKeyboardHeight - layoutShrink);
845
+ const effectiveKeyboardInset = Math.max(keyboardInset, nativeLift);
846
+ // FULL-SCREEN derived gate: maximized only takes effect AT the full detent, so
847
+ // a stale flag can never leak into half/collapsed/pill. Drives the edge-to-edge
848
+ // panel styles + a zero top margin.
849
+ const fullBleed = maximized && expanded && sheetOpen && !pilled;
850
+ // The chat panel may never exceed the visible height minus its own
851
+ // safe-area/nav padding and a top margin — so it can't spill above the screen.
852
+ // The thread (flex-shrink) gives way to this cap, scrolling instead of pushing
853
+ // the panel off-screen. Maximized drops the top margin so it reaches the top.
854
+ const topMargin = fullBleed ? 0 : SHEET_TOP_MARGIN;
855
+ // Full-bleed drops the overlay's own bottom padding (its `paddingBottom` is 0
856
+ // edge-to-edge — the composer carries the home-gesture clearance itself), so
857
+ // the panel must fill the ENTIRE viewport height. Subtracting the (bottom-anchored)
858
+ // `bottomPad` here would shrink the panel by the gesture inset and float it a
859
+ // gesture-inset BELOW the top — the gap that left a hard-cut glass seam under
860
+ // the status bar and pushed the safe-area-padded header buttons down.
861
+ const panelMaxH = Math.max(200, viewportH - (fullBleed ? 0 : bottomPad) - topMargin);
862
+ // History-height detents: COLLAPSED (0) → HALF → FULL — the thread's ideal
863
+ // flex-basis; flex-shrink clamps the real height to fit. FULL == panelMaxH so
864
+ // the detent target matches the visible height (no dead slack at the top of a
865
+ // pull-down) while the sheet rises all the way to the top.
866
+ const openH = panelMaxH;
867
+ const halfH = Math.round(viewportH * SHEET_HALF_VH);
868
+ const detentH = !sheetOpen ? 0 : expanded ? openH : halfH;
869
+ // A free-drag rest height wins over the detent until a detent is re-taken.
870
+ const baseH = freeH != null ? Math.min(freeH, panelMaxH) : detentH;
871
+ // The single explicit state of the chat surface — the named machine the rest
872
+ // of the component (header gate, data attribute, transitions) reads from. It
873
+ // is DERIVED from the resting height so it always agrees with what's on
874
+ // screen; the live drag stays on the `threadHeight` motion value (no
875
+ // re-render per frame). The five states:
876
+ // CLOSED — pill only (sheet pilled away)
877
+ // INPUT — composer bar, no thread (the resting closed state)
878
+ // OPEN_UNDER_HALF — opened but below the half detent (a deliberate slow
879
+ // pull rested here); header buttons stay hidden
880
+ // OPEN_HALF_OR_OVER — at the half detent or taller (header buttons show)
881
+ // MAXIMIZED — full-bleed edge-to-edge
882
+ // Transitions: pill tap / flick-up → INPUT; focus·type·flick·send → an OPEN_*
883
+ // state; pull-down → INPUT → CLOSED; maximize toggle ↔ MAXIMIZED; Home/Settings
884
+ // animate out of MAXIMIZED then collapse (see navigateAndClose).
885
+ // MAXIMIZED is keyed off the SAME `fullBleed` predicate the styles use, so the
886
+ // enum and the full-bleed layout can never disagree (no "maximized at half"
887
+ // ghost state).
888
+ const chatState = pilled
889
+ ? "CLOSED"
890
+ : !sheetOpen
891
+ ? "INPUT"
892
+ : fullBleed
893
+ ? "MAXIMIZED"
894
+ : baseH >= halfH - 1
895
+ ? "OPEN_HALF_OR_OVER"
896
+ : "OPEN_UNDER_HALF";
897
+ // Header buttons (maximize/clear/home/settings) are gated on the LIVE rendered
898
+ // height, NOT the settled enum — otherwise dragging the panel below half keeps
899
+ // the header mounted on a too-short panel (the "buttons between input and half"
900
+ // bug). They show only when the panel actually renders at/over half (or is
901
+ // full-bleed), tracking the finger frame-by-frame; the prev===next guard keeps
902
+ // re-renders to the two threshold crossings.
903
+ const evalHeaderVisible = React.useCallback((h) => !pilled && (fullBleed || h >= halfH - 1), [pilled, fullBleed, halfH]);
904
+ const [headerVisible, setHeaderVisible] = React.useState(false);
905
+ useMotionValueEvent(threadHeight, "change", (h) => {
906
+ const next = evalHeaderVisible(h);
907
+ setHeaderVisible((prev) => (prev === next ? prev : next));
908
+ });
909
+ // Re-evaluate on settled-state changes that don't tick the height (programmatic
910
+ // pill/maximize/open with the spring already at rest).
911
+ // biome-ignore lint/correctness/useExhaustiveDependencies: threadHeight is a stable motion ref
912
+ React.useEffect(() => {
913
+ setHeaderVisible(evalHeaderVisible(threadHeight.get()));
914
+ }, [evalHeaderVisible]);
915
+ // Map a raw drag height: rubber-band past FULL, hard-clamp the bottom to 0.
916
+ const clampHeight = React.useCallback((raw) => raw > openH ? openH + rubberBand(raw - openH) : Math.max(0, raw), [openH]);
917
+ // Backdrop dimming + the suggestion-strip fade follow the live height; the
918
+ // thread's flex-basis is the live height as a px string.
919
+ const revealed = useTransform(threadHeight, (h) => Math.min(1, Math.max(0, h / Math.max(1, openH))));
920
+ // At rest (threadHeight 0 = INPUT/CLOSED) the full-viewport dimming scrim sits
921
+ // at opacity 0 but stays a live composited layer the glass backdrop-filter
922
+ // samples through. Drive `visibility` off the SAME motion value so it drops out
923
+ // of compositing/paint at rest (no reflow, compositor-only, zero re-render) and
924
+ // flips back the instant the thread opens.
925
+ const scrimVisibility = useTransform(threadHeight, (h) => h > 0 ? "visible" : "hidden");
926
+ const suggestionsOpacity = useTransform(threadHeight, (h) => Math.max(0, 1 - h / Math.max(1, openH * 0.5)));
927
+ const threadFlexBasis = useTransform(threadHeight, (h) => `${h}px`);
928
+ // Corner radius tracks the live height so it can't flash as a tall full-pill
929
+ // mid-pull: a perfect pill at rest (collapsed input, matching the round
930
+ // buttons) relaxing to a calm 24px the instant the thread starts opening.
931
+ const panelRadius = useTransform(threadHeight, [0, 12], [9999, 24], {
932
+ clamp: true,
933
+ });
934
+ // --- Liquid-glass pill → input morph (driven by openProgress) ---------------
935
+ // The panel is ONE persistent element; the pill capsule and the full glass
936
+ // input crossfade by opacity (compositor-cheap — never tween backdrop-blur)
937
+ // while the whole panel scales up from a capsule. transform + opacity only.
938
+ const panelScale = useTransform(openProgress, [0, 1], [0.9, 1]);
939
+ // Glass surface + its content crossfade IN as the input forms (one wrapper, so
940
+ // sheen/glow/thread/composer resolve together with the glass).
941
+ const glassOpacity = useTransform(openProgress, [0, 1], [0, 1]);
942
+ // The pill capsule fades OUT over the first half of the open so it has cleared
943
+ // before the input controls resolve (no double-image mid-morph).
944
+ const pillOpacity = useTransform(openProgress, [0, 0.55], [1, 0], {
945
+ clamp: true,
946
+ });
947
+ // The drag-handle (SheetGrabber) bar is IDENTICAL to the pill bar, so they must
948
+ // never both be on screen. The pill fades OUT over [0, 0.55]; the grabber fades
949
+ // IN only over [0.55, 0.95] — a strict crossfade with no overlap. (Before, the
950
+ // grabber mounted at full opacity the instant `pilled` flipped false, while the
951
+ // pill was still fading out → two bars = the "two pills" bug.)
952
+ const grabberOpacity = useTransform(openProgress, [0.55, 0.95], [0, 1], {
953
+ clamp: true,
954
+ });
955
+ // Header reveal tracks the LIVE height: as the panel approaches the half
956
+ // detent the top buttons FADE in and their space LERPS open; pulling back
957
+ // below half fades them out and collapses the space — no pop. (Maximized sits
958
+ // at openH ≫ half, so it's fully revealed.) overflow-hidden on the header clips
959
+ // the buttons while the space is still opening.
960
+ const headerOpacity = useTransform(threadHeight, [halfH - 64, halfH], [0, 1], {
961
+ clamp: true,
962
+ });
963
+ const headerMaxH = useTransform(threadHeight, [halfH - 64, halfH], [0, 100], {
964
+ clamp: true,
965
+ });
966
+ // The header's top padding LERPS with the same live height. A flex item's
967
+ // `min-height:auto` lets its padding survive `max-height:0`, so a static
968
+ // `pt-2.5` would leak ~10px above the composer in the collapsed/input state
969
+ // (extra, irregular top margin). Driving padding-top 0 → 10px alongside the
970
+ // reveal keeps the collapsed panel exactly the input-bar height, then opens
971
+ // the breathing room as the header fades in.
972
+ const headerPadTop = useTransform(threadHeight, [halfH - 64, halfH], [0, 10], {
973
+ clamp: true,
974
+ });
975
+ // Grabber clearance: when the chat is OPEN but BELOW the half detent the header
976
+ // is hidden, so the thread viewport would start at the panel's very top —
977
+ // tucking the topmost line under the floating drag handle (a partial bubble
978
+ // pinned beneath the grabber at a small free-rest height). Inset the thread
979
+ // down by the grabber's height in that window only: 0 at the collapsed peek
980
+ // (threadHeight ~0, so the closed input bar stays exactly its own height),
981
+ // ramping to the inset once a thread is actually open, then back to 0 as the
982
+ // header reveals at half+ (it provides the clearance itself).
983
+ const threadGrabberClearance = useTransform(threadHeight, [0, 40, halfH - 64, halfH], [0, 20, 20, 0], { clamp: true });
984
+ // Sub-threshold release: spring back to the current detent (no state change).
985
+ // Also settles the pill→input morph to its resting end (0 while pilled, 1 once
986
+ // open) so a half-finished pill drag springs cleanly back to the capsule.
987
+ const settleDrag = React.useCallback(() => {
988
+ draggingRef.current = false;
989
+ const open = pilled ? 0 : 1;
990
+ if (reduce) {
991
+ threadHeight.set(baseH);
992
+ openProgress.set(open);
993
+ }
994
+ else {
995
+ animate(threadHeight, baseH, SHEET_SPRING);
996
+ animate(openProgress, open, OPEN_SPRING);
997
+ }
998
+ }, [threadHeight, openProgress, baseH, pilled, reduce]);
999
+ // Keep the ref the (earlier-declared) viewport-resize effect calls pointing at
1000
+ // the latest settleDrag, so a rotation re-settles with current pilled/baseH.
1001
+ settleDragRef.current = settleDrag;
1002
+ // Drive openProgress from the pilled flag for NON-drag transitions (tap the
1003
+ // pill, programmatic open/close): a live finger drag owns openProgress itself
1004
+ // (draggingRef gates this so it never fights the gesture).
1005
+ // biome-ignore lint/correctness/useExhaustiveDependencies: openProgress is a stable motion value ref
1006
+ React.useEffect(() => {
1007
+ if (draggingRef.current)
1008
+ return;
1009
+ const open = pilled ? 0 : 1;
1010
+ if (reduce) {
1011
+ openProgress.set(open);
1012
+ return;
1013
+ }
1014
+ const controls = animate(openProgress, open, OPEN_SPRING);
1015
+ return () => controls.stop();
1016
+ }, [pilled, reduce]);
1017
+ const closeSheet = React.useCallback(() => {
1018
+ draggingRef.current = false;
1019
+ setFreeH(null);
1020
+ setMaximized(false);
1021
+ setMode("input");
1022
+ }, []);
1023
+ // Leaving the chat for Settings/Home: animate OUT of maximize and collapse the
1024
+ // sheet (closeSheet un-maximizes + springs the thread height down) BEFORE
1025
+ // swapping the page underneath, so it reads as the chat closing into the new
1026
+ // view rather than a jump-cut from full-screen. The page swap waits a beat for
1027
+ // the collapse spring to start (a touch longer when leaving MAXIMIZED, since
1028
+ // there's more to unwind); reduced motion navigates immediately.
1029
+ const navigateAndClose = React.useCallback((go) => {
1030
+ const wasMaximized = maximized;
1031
+ closeSheet();
1032
+ window.setTimeout(go, reduce ? 0 : wasMaximized ? 260 : 190);
1033
+ }, [closeSheet, maximized, reduce]);
1034
+ // Maximize toggle. Maximizing from ANY open detent (half or a free rest) first
1035
+ // rises to the FULL detent, then drops the inset — so the height spring
1036
+ // animates up and the panel goes edge-to-edge in one gesture (previously
1037
+ // full-bleed required `expanded`, so tapping maximize at the half detent did
1038
+ // nothing). Un-maximizing drops back to the inset FULL detent.
1039
+ const toggleMaximize = React.useCallback(() => {
1040
+ if (maximized) {
1041
+ setMaximized(false);
1042
+ return;
1043
+ }
1044
+ // Snap the morph fully open BEFORE flipping to full-bleed so no in-flight
1045
+ // pill-open spring can leak a sub-1 scale into the maximized frame (top gap).
1046
+ draggingRef.current = false;
1047
+ openProgress.set(1);
1048
+ setFreeH(null);
1049
+ setMode("full");
1050
+ setMaximized(true);
1051
+ }, [maximized, openProgress]);
1052
+ // The single detent→detent animator: whenever the settled detent (or viewport)
1053
+ // changes and we're not mid finger-drag, spring the history height to it. The
1054
+ // gesture / open paths just flip sheetOpen/expanded and this reacts — no
1055
+ // per-frame React state, so the live drag stays buttery.
1056
+ // biome-ignore lint/correctness/useExhaustiveDependencies: baseH already encodes sheetOpen/expanded/freeH/viewportH; threadHeight is a stable ref
1057
+ React.useEffect(() => {
1058
+ if (draggingRef.current)
1059
+ return;
1060
+ if (reduce) {
1061
+ threadHeight.set(baseH);
1062
+ return;
1063
+ }
1064
+ const controls = animate(threadHeight, baseH, SHEET_SPRING);
1065
+ return () => controls.stop();
1066
+ }, [baseH, reduce]);
1067
+ // Snap to one of the three iOS-style detents and settle the live drag. A
1068
+ // detent change fires a light haptic so the snap feels physical on device.
1069
+ // "collapsed" hides the history entirely (just the input); "half" is the
1070
+ // comfortable reading height; "full" the near-fullscreen reading mode.
1071
+ const goToDetent = React.useCallback((to) => {
1072
+ // Flip the settled detent; the [baseH] effect springs the height to it.
1073
+ // A detent always clears any free-drag rest height and (since only FULL
1074
+ // can be maximized) drops full-bleed when stepping anywhere else.
1075
+ draggingRef.current = false;
1076
+ setFreeH(null);
1077
+ if (to !== "full")
1078
+ setMaximized(false);
1079
+ // "collapsed" is the input peek (sheet closed); half/full open the thread.
1080
+ setMode(to === "collapsed" ? "input" : to);
1081
+ // Stepping all the way down closes the keyboard (the chat is dismissed).
1082
+ if (to === "collapsed")
1083
+ inputRef.current?.blur();
1084
+ detentHaptic();
1085
+ }, []);
1086
+ // Collapsing always drops input focus, so the mobile keyboard goes away the
1087
+ // moment the chat is dismissed (pull-down, Escape, or click-out) — the chat is
1088
+ // no longer "focused". Blurring (rather than the old refocus dance) also means
1089
+ // there's no focus→expand bounce to guard against, so the model stays simple.
1090
+ const collapse = React.useCallback(() => {
1091
+ // If focus is sitting inside the thread log, pull it out before the log
1092
+ // becomes aria-hidden / tabIndex=-1 — never park focus on a hidden element.
1093
+ if (typeof document !== "undefined" &&
1094
+ threadRef.current &&
1095
+ document.activeElement instanceof HTMLElement &&
1096
+ threadRef.current.contains(document.activeElement)) {
1097
+ document.activeElement.blur();
1098
+ }
1099
+ closeSheet();
1100
+ inputRef.current?.blur();
1101
+ }, [closeSheet]);
1102
+ // Dismiss the keyboard and return to the resting state from BEFORE the composer
1103
+ // was focused — the single restore path shared by every "drop the keyboard"
1104
+ // gesture (tap the grabber, tap the scrim, tap outside the panel). A sheet that
1105
+ // was COLLAPSED before focus re-collapses (back to the input bar); one that was
1106
+ // ALREADY OPEN stays open and springs back to its detent size as the keyboard
1107
+ // retracts (the viewport grows → the [baseH] effect re-animates the height).
1108
+ // Never a surprise full close.
1109
+ const dismissKeyboardToPriorState = React.useCallback(() => {
1110
+ inputRef.current?.blur();
1111
+ if (preFocusCollapsedRef.current)
1112
+ collapse();
1113
+ }, [collapse]);
1114
+ // The composer overlay floats over every view and survives tab changes, so
1115
+ // navigating away from a focused composer (chat → Settings / Home / …) would
1116
+ // otherwise leave the textarea holding DOM focus on the new view (its
1117
+ // collapsed/resting look is gated on sheet state, not on document focus). On
1118
+ // iOS that strands the keyboard input-accessory bar (the ‹ › chevrons +
1119
+ // "Done") at the bottom of the screen with no keyboard while the composer
1120
+ // reads as inactive. Drop composer focus whenever the active view changes to a
1121
+ // non-chat tab; an intentional tap to focus the composer on that view (no tab
1122
+ // change) is left untouched. Keyboard.hide() guarantees iOS dismisses the
1123
+ // accessory bar, not just the soft keyboard.
1124
+ React.useEffect(() => {
1125
+ if (currentTab === "chat")
1126
+ return;
1127
+ const input = inputRef.current;
1128
+ if (typeof document === "undefined" ||
1129
+ !input ||
1130
+ document.activeElement !== input) {
1131
+ return;
1132
+ }
1133
+ input.blur();
1134
+ void import("@capacitor/keyboard")
1135
+ .then(({ Keyboard }) => Keyboard.hide())
1136
+ .catch(() => {
1137
+ // Web/desktop or no native bridge — blur() above already dropped focus.
1138
+ });
1139
+ }, [currentTab]);
1140
+ // Focusing or typing in the composer opens the chat (keyboard + history) when
1141
+ // there's a thread to show. Opens to HALF — the conversation is visible above
1142
+ // the keyboard without a full-screen takeover; the maximize button is for that.
1143
+ // Remember whether we opened from collapsed so dismissing the keyboard (tap the
1144
+ // handle) can return to that prior resting state. Clears any free-rest so the
1145
+ // height matches the detent (no stale freeH pinning it below half).
1146
+ const expand = React.useCallback(() => {
1147
+ if (!hasThread)
1148
+ return;
1149
+ preFocusCollapsedRef.current = !sheetOpen;
1150
+ setFreeH(null);
1151
+ // Open to at least HALF; if already at half/full, keep the taller mode.
1152
+ setMode((m) => (m === "half" || m === "full" ? m : "half"));
1153
+ }, [hasThread, sheetOpen]);
1154
+ // Interactive tour control: the tutorial drives the chat into a clean, known
1155
+ // state at the start of each frame (so the spotlight always lands on the right
1156
+ // control) and pre-fills the composer for the guided "ask to navigate" demo.
1157
+ // Decoupled via a window event so the tour never reaches into these internals.
1158
+ React.useEffect(() => {
1159
+ if (typeof window === "undefined")
1160
+ return undefined;
1161
+ const onControl = (event) => {
1162
+ const detail = event.detail;
1163
+ if (!detail)
1164
+ return;
1165
+ switch (detail.action) {
1166
+ case "pill":
1167
+ setMode("pill");
1168
+ inputRef.current?.blur();
1169
+ break;
1170
+ case "rest":
1171
+ // goToDetent("collapsed") → input mode, which un-pills.
1172
+ goToDetent("collapsed");
1173
+ break;
1174
+ case "expand":
1175
+ goToDetent("full");
1176
+ break;
1177
+ case "prefill":
1178
+ setMode((m) => (m === "pill" ? "input" : m));
1179
+ setDraft(detail.text ?? "");
1180
+ requestAnimationFrame(() => inputRef.current?.focus());
1181
+ break;
1182
+ case "reset":
1183
+ // Tour ended (cancel / complete): restore a normal interactive chat.
1184
+ // A frame may have collapsed it to the pill, where the composer is
1185
+ // `inert` — clear inert imperatively (React clears it only on the next
1186
+ // render, too late for the stranded input), drop the tour's prefilled
1187
+ // draft, and goToDetent("collapsed") un-pills back to the input bar.
1188
+ contentRef.current?.removeAttribute("inert");
1189
+ setDraft("");
1190
+ goToDetent("collapsed");
1191
+ break;
1192
+ }
1193
+ };
1194
+ window.addEventListener(TUTORIAL_CHAT_CONTROL_EVENT, onControl);
1195
+ return () => window.removeEventListener(TUTORIAL_CHAT_CONTROL_EVENT, onControl);
1196
+ }, [goToDetent]);
1197
+ // Push-to-talk dictation drops its final transcript into the composer draft
1198
+ // (no send): register the sink with the controller while this overlay is
1199
+ // mounted, appending to whatever the user has already typed.
1200
+ React.useEffect(() => {
1201
+ setDictationSink((text) => {
1202
+ setDraft((current) => (current ? `${current} ${text}` : text));
1203
+ inputRef.current?.focus();
1204
+ expand();
1205
+ });
1206
+ return () => setDictationSink(null);
1207
+ }, [setDictationSink, expand]);
1208
+ // A completed transcription SESSION drops its transcript into the composer as
1209
+ // an ATTACHMENT — it does NOT auto-send as a message. The user sends it (with
1210
+ // any typed text) when ready; the mic stays on the whole time, so transcribing
1211
+ // is an additive layer, not a mode that takes over the conversation. The
1212
+ // recording is also archived (Transcript record + audio + knowledge mirror)
1213
+ // for the Transcripts view, best-effort and silent.
1214
+ React.useEffect(() => {
1215
+ setTranscriptSessionSink((segments, startedAtMs, audioWav) => {
1216
+ if (segments.length === 0)
1217
+ return;
1218
+ const text = transcriptPlainText(segments);
1219
+ if (text) {
1220
+ const stamp = new Date(startedAtMs)
1221
+ .toISOString()
1222
+ .slice(0, 16)
1223
+ .replace("T", " ");
1224
+ const attachment = {
1225
+ data: textToBase64(text),
1226
+ mimeType: "text/markdown",
1227
+ name: `Transcript ${stamp}.md`,
1228
+ };
1229
+ setPendingImages((prev) => [...prev, attachment].slice(0, MAX_CHAT_IMAGES));
1230
+ expand();
1231
+ inputRef.current?.focus();
1232
+ }
1233
+ void client
1234
+ .createTranscript({
1235
+ segments,
1236
+ createdAt: startedAtMs,
1237
+ ...(audioWav
1238
+ ? {
1239
+ audioBase64: wavBytesToBase64(audioWav),
1240
+ audioContentType: "audio/wav",
1241
+ }
1242
+ : {}),
1243
+ })
1244
+ .catch(() => {
1245
+ /* archival is best-effort; a failed save just skips the record */
1246
+ });
1247
+ });
1248
+ return () => setTranscriptSessionSink(null);
1249
+ }, [setTranscriptSessionSink, expand]);
1250
+ // Tell the controller whether a draft is pending so the hands-free always-on
1251
+ // loop pauses while the user is typing (or editing a PTT dictation) and
1252
+ // resumes the prior voice state once the draft clears on send.
1253
+ React.useEffect(() => {
1254
+ setComposerHasDraft(hasDraft);
1255
+ }, [hasDraft, setComposerHasDraft]);
1256
+ // ── Slash commands ─────────────────────────────────────────────────────────
1257
+ // Inline command autocomplete: the menu derives from the draft + the loaded
1258
+ // catalog; Escape dismisses it (without clearing the draft); typing reopens.
1259
+ const slashMenu = useSlashMenu(draft, slash);
1260
+ // Short-circuit the slash parse on the common (non-slash) keystroke path — a
1261
+ // draft that doesn't start with "/" is never a slash command, so skip the work.
1262
+ const isSlashDraft = draft.startsWith("/") && parseSlashDraft(draft).isSlash;
1263
+ const slashOpen = slashMenu.open && !slashDismissed;
1264
+ // Combobox a11y for the composer input — only when a slash catalog is wired
1265
+ // in. Spread so the input is a plain message box (no role) otherwise.
1266
+ const comboboxAria = slashProp
1267
+ ? {
1268
+ role: "combobox",
1269
+ "aria-autocomplete": "list",
1270
+ "aria-expanded": slashOpen,
1271
+ "aria-controls": slashOpen ? "slash-command-listbox" : undefined,
1272
+ "aria-activedescendant": slashOpen && slashMenu.items[slashMenu.activeIndex]
1273
+ ? `slash-option-${slashMenu.items[slashMenu.activeIndex].id}`
1274
+ : undefined,
1275
+ }
1276
+ : {};
1277
+ // biome-ignore lint/correctness/useExhaustiveDependencies: draft IS the trigger — any edit re-arms the menu after an Escape dismissal.
1278
+ React.useEffect(() => {
1279
+ setSlashDismissed(false);
1280
+ }, [draft]);
1281
+ // Run a resolved slash execution: agent commands flow through the normal send
1282
+ // pipeline; navigation/client commands run their app- or overlay-level effect
1283
+ // and clear the composer.
1284
+ const runExecution = React.useCallback((exec) => {
1285
+ if (exec.kind === "send") {
1286
+ submitText(exec.text);
1287
+ return;
1288
+ }
1289
+ runSlashExecution(exec, {
1290
+ navigateTab: slash.navigateTab,
1291
+ navigateSettings: slash.navigateSettings,
1292
+ navigateView: slash.navigateView,
1293
+ clearChat: slash.clearChat,
1294
+ newConversation: () => controller.clearConversation(),
1295
+ // The overlay owns full-screen via the `maximized` detent flag, not a
1296
+ // controller method, so toggle it directly here.
1297
+ toggleFullscreen: toggleMaximize,
1298
+ openCommandPalette: slash.openCommandPalette,
1299
+ showCommands: slash.openCommandPalette,
1300
+ toggleTranscription: toggleTranscriptionMode,
1301
+ send: (text) => submitText(text),
1302
+ });
1303
+ setDraft("");
1304
+ setSlashDismissed(true);
1305
+ inputRef.current?.focus();
1306
+ }, [slash, controller, submitText, toggleMaximize, toggleTranscriptionMode]);
1307
+ const pickSlashItem = React.useCallback((index) => {
1308
+ const exec = slashMenu.resolve(index);
1309
+ if (exec)
1310
+ runExecution(exec);
1311
+ }, [slashMenu, runExecution]);
1312
+ // Tapping ANYWHERE outside the chat panel drops the keyboard: if the composer
1313
+ // holds focus and the pointer lands outside the panel, blur it. This is the
1314
+ // iOS-standard "tap the background to dismiss the keyboard" behaviour and works
1315
+ // whether the chat is open (over the scrim) or collapsed (over the live view).
1316
+ React.useEffect(() => {
1317
+ if (typeof document === "undefined")
1318
+ return undefined;
1319
+ const onPointerDown = (event) => {
1320
+ const input = inputRef.current;
1321
+ const focused = !!input && document.activeElement === input;
1322
+ // Record the keyboard state at PRESS time: the scrim's click handler reads
1323
+ // this (focus may be gone by the time the click fires) to tell a first
1324
+ // "dismiss the keyboard" tap from a second "close the chat" tap.
1325
+ composerFocusedAtPressRef.current = focused;
1326
+ // Keyboard already down → outside taps do nothing here (the chat only
1327
+ // closes via a pull-down, the scrim, or Escape).
1328
+ if (!focused)
1329
+ return;
1330
+ const target = event.target;
1331
+ if (target && panelRef.current?.contains(target))
1332
+ return;
1333
+ // Leave a tap on the GRABBER to onTap, which both drops the keyboard AND
1334
+ // returns to the pre-focus resting state — blurring here would preempt it.
1335
+ if (target instanceof Element &&
1336
+ target.closest('[data-testid="chat-sheet-grabber"]')) {
1337
+ return;
1338
+ }
1339
+ // Any other outside tap (incl. the dimming scrim) drops the keyboard and
1340
+ // returns to the pre-focus resting state — never a surprise full close.
1341
+ dismissKeyboardToPriorState();
1342
+ };
1343
+ document.addEventListener("pointerdown", onPointerDown, true);
1344
+ return () => document.removeEventListener("pointerdown", onPointerDown, true);
1345
+ }, [dismissKeyboardToPriorState]);
1346
+ // Escape collapses the chat from ANY open state, even a free-drag open with no
1347
+ // focused element (the element-level handlers on the textarea/thread only fire
1348
+ // when one of them holds focus). Registered only while open.
1349
+ React.useEffect(() => {
1350
+ if (typeof document === "undefined" || !sheetOpen)
1351
+ return undefined;
1352
+ const onKey = (e) => {
1353
+ if (e.key === "Escape") {
1354
+ e.preventDefault();
1355
+ collapse();
1356
+ }
1357
+ };
1358
+ document.addEventListener("keydown", onKey);
1359
+ return () => document.removeEventListener("keydown", onKey);
1360
+ }, [sheetOpen, collapse]);
1361
+ // Auto-grow the composer with multi-line input: snap to the content height
1362
+ // (capped by `max-h` in CSS, which then scrolls). Runs on every draft change
1363
+ // so it also springs back to one line after a send clears the draft.
1364
+ // biome-ignore lint/correctness/useExhaustiveDependencies: draft is the trigger; the body reads the textarea ref
1365
+ React.useLayoutEffect(() => {
1366
+ const el = inputRef.current;
1367
+ if (!el)
1368
+ return;
1369
+ el.style.height = "auto";
1370
+ el.style.height = `${el.scrollHeight}px`;
1371
+ }, [draft]);
1372
+ // Open the input back out of the collapsed pill (tap or keyboard-activate).
1373
+ // A tap routes through the gesture's `onDrag(0)` first, which sets
1374
+ // draggingRef=true AND openProgress=0 — so we MUST clear draggingRef here, or
1375
+ // the pilled→openProgress effect early-returns and the morph stays stuck at 0
1376
+ // (a visible-but-inert pill, no input: the "bad state"). We also spring
1377
+ // openProgress → 1 directly so the open never depends on that effect's timing.
1378
+ const openFromPill = React.useCallback(() => {
1379
+ draggingRef.current = false;
1380
+ // A pill tap OPENS the chat. With a conversation to show, go straight to the
1381
+ // HALF detent — a tap reveals the thread exactly like a flick-up, so a SINGLE
1382
+ // tap always opens the chat (never the old "tap lands on a bare input bar,
1383
+ // tap again to actually open" two-step). Mark it deliberately open so
1384
+ // dismissing the keyboard then KEEPS it at half (preFocusCollapsedRef gates
1385
+ // that). With no thread yet, there's nothing to open into — just form the
1386
+ // bare input bar, and treat a later keyboard dismiss as a re-collapse.
1387
+ if (hasThread) {
1388
+ goToDetent("half");
1389
+ preFocusCollapsedRef.current = false;
1390
+ }
1391
+ else {
1392
+ setMode("input");
1393
+ preFocusCollapsedRef.current = true;
1394
+ detentHaptic();
1395
+ }
1396
+ if (reduce)
1397
+ openProgress.set(1);
1398
+ else
1399
+ animate(openProgress, 1, OPEN_SPRING);
1400
+ // Raise the keyboard on the SAME tap that opens the pill. While pilled, the
1401
+ // composer content is `inert`, and React only clears that on the next
1402
+ // render — too late for iOS WebKit, which honors focus() only synchronously
1403
+ // inside the originating user gesture AND only on a non-inert element. So
1404
+ // clear inert imperatively now and focus immediately; otherwise the first
1405
+ // tap opens a composer that silently refuses keyboard input until a second
1406
+ // tap (the reported "chat input doesn't accept text on iOS" bug). Suppress
1407
+ // the focus→expand: the target detent is already set above, and letting
1408
+ // expand run would clobber preFocusCollapsedRef with the (pre-render, still
1409
+ // pilled) sheet state and treat this deliberate open as a re-collapse.
1410
+ contentRef.current?.removeAttribute("inert");
1411
+ suppressExpandOnFocusRef.current = true;
1412
+ inputRef.current?.focus();
1413
+ }, [openProgress, reduce, hasThread, goToDetent]);
1414
+ // --- Pull gesture --------------------------------------------------------
1415
+ // The grabber is the draggable handle. A live drag sets the threadHeight motion
1416
+ // value DIRECTLY (no React state → no re-render per frame, so it tracks the
1417
+ // finger 1:1); release fires onPullUp/onPullDown (distance OR velocity, via
1418
+ // usePullGesture) to snap to a detent.
1419
+ const onDragOffset = React.useCallback((offset) => {
1420
+ draggingRef.current = true;
1421
+ // PILL drag: map the upward travel to the pill→input morph (openProgress).
1422
+ // The thread stays at 0 until the input is fully formed; only the EXCESS
1423
+ // past PILL_OPEN_DISTANCE flows into the thread height, so a single
1424
+ // continuous pull reads pill → input → chat (and a flick-up no longer
1425
+ // flashes a chat sliver, since the thread only grows after the morph).
1426
+ if (pilled) {
1427
+ const up = Math.max(0, offset);
1428
+ openProgress.set(Math.min(1, up / PILL_OPEN_DISTANCE));
1429
+ const excess = up - PILL_OPEN_DISTANCE;
1430
+ threadHeight.set(excess > 0 ? clampHeight(excess) : 0);
1431
+ return;
1432
+ }
1433
+ // INPUT → PILL drag (collapsed, dragging DOWN): the mirror of the pill
1434
+ // drag — map the downward travel to the input→pill morph (openProgress
1435
+ // 1 → 0) so the input bar visibly scales down into the pill capsule under
1436
+ // the finger, instead of staying fully formed and snapping to the pill only
1437
+ // on release (the dead, unresponsive collapse gesture). The thread stays at
1438
+ // 0 (nothing to size below the input).
1439
+ if (!sheetOpen && offset < 0) {
1440
+ const down = -offset;
1441
+ openProgress.set(Math.max(0, 1 - down / PILL_OPEN_DISTANCE));
1442
+ threadHeight.set(0);
1443
+ return;
1444
+ }
1445
+ // Pin the dead direction at each end so the panel feels held: collapsed →
1446
+ // only upward (positive); full → only downward (negative); half → both.
1447
+ const off = !sheetOpen
1448
+ ? Math.max(0, offset)
1449
+ : expanded
1450
+ ? Math.min(0, offset)
1451
+ : offset;
1452
+ threadHeight.set(clampHeight(baseH + off));
1453
+ }, [
1454
+ pilled,
1455
+ sheetOpen,
1456
+ expanded,
1457
+ baseH,
1458
+ clampHeight,
1459
+ threadHeight,
1460
+ openProgress,
1461
+ ]);
1462
+ const pullBinding = usePullGesture({
1463
+ onDrag: onDragOffset,
1464
+ // Pulls STEP one detent at a time (peek→half→full and back) rather than
1465
+ // jumping straight to the ends — the iOS sheet feel. The inline closures are
1466
+ // rebuilt every render, so they always read the current detent.
1467
+ onPullUp: () => {
1468
+ if (pilled) {
1469
+ // PILL → INPUT, or straight into the chat when there's history: a flick
1470
+ // up opens. Mirror the slow-drag path so a flick and a slow drag BOTH
1471
+ // reach the chat (no hard stop at the bare input). Releasing draggingRef
1472
+ // first lets the pilled→openProgress effect spring the morph 0→1.
1473
+ draggingRef.current = false;
1474
+ if (hasThread) {
1475
+ focusThreadRef.current = true;
1476
+ goToDetent("half");
1477
+ }
1478
+ else {
1479
+ // Pill → bare input bar (no thread to open into).
1480
+ setMode("input");
1481
+ if (reduce)
1482
+ threadHeight.set(0);
1483
+ else
1484
+ animate(threadHeight, 0, SHEET_SPRING);
1485
+ detentHaptic();
1486
+ }
1487
+ return;
1488
+ }
1489
+ if (!sheetOpen) {
1490
+ if (!hasThread)
1491
+ return settleDrag();
1492
+ goToDetent("half");
1493
+ focusThreadRef.current = true;
1494
+ }
1495
+ else if (!expanded) {
1496
+ goToDetent("full");
1497
+ focusThreadRef.current = true;
1498
+ }
1499
+ else {
1500
+ settleDrag();
1501
+ }
1502
+ },
1503
+ onPullDown: () => {
1504
+ if (pilled)
1505
+ return settleDrag(); // already the lowest detent
1506
+ // Step down ONE detent based on the EFFECTIVE height (so a free-rest above
1507
+ // half steps to half first, never skipping it). A downward flick also
1508
+ // closes the keyboard — goToDetent("collapsed") blurs; half-step blurs too.
1509
+ const effectiveH = freeH != null ? Math.min(freeH, panelMaxH) : detentH;
1510
+ if (sheetOpen && effectiveH > halfH + 1) {
1511
+ inputRef.current?.blur();
1512
+ goToDetent("half");
1513
+ }
1514
+ else if (sheetOpen) {
1515
+ goToDetent("collapsed");
1516
+ }
1517
+ else {
1518
+ // INPUT → PILL: collapse the input away into a pill at the bottom.
1519
+ setMode("pill");
1520
+ setMaximized(false);
1521
+ draggingRef.current = false;
1522
+ inputRef.current?.blur();
1523
+ detentHaptic();
1524
+ }
1525
+ },
1526
+ // A tap (no drag) on the handle. A tap on the PILL brings the input back.
1527
+ // When OPEN, the handle is the bar ABOVE the thread, so tapping it with the
1528
+ // keyboard up dismisses it and returns to the pre-focus resting state.
1529
+ // When COLLAPSED the handle's hit zone OVERLAPS the composer, so a tap there
1530
+ // is just "focus to type" — it must only focus the input, never dismiss or
1531
+ // collapse (the native focus already raised the keyboard, and the tap pierces
1532
+ // through to the input). Tapping OUTSIDE the panel is what drops the keyboard.
1533
+ onTap: () => {
1534
+ if (pilled) {
1535
+ openFromPill();
1536
+ return;
1537
+ }
1538
+ if (sheetOpen) {
1539
+ const composerFocused = typeof document !== "undefined" &&
1540
+ document.activeElement === inputRef.current;
1541
+ // Keyboard up → drop it and return to the pre-focus resting state (an
1542
+ // already-open sheet stays open; an auto-opened one re-collapses).
1543
+ // Keyboard down → the grabber is just the open chat's top bar; a tap
1544
+ // there does nothing (collapse is a pull-down / Escape / scrim tap).
1545
+ if (composerFocused)
1546
+ dismissKeyboardToPriorState();
1547
+ return;
1548
+ }
1549
+ inputRef.current?.focus();
1550
+ },
1551
+ // A deliberate (slow) drag: REST exactly where released instead of snapping
1552
+ // to a detent — drag the sheet to any size and it stays.
1553
+ onSettleFree: (direction) => {
1554
+ draggingRef.current = false;
1555
+ if (pilled) {
1556
+ // From the pill: a slow drag under the halfway-open mark (openProgress
1557
+ // < 0.5) springs back to the capsule; past it we commit to LEAVING the
1558
+ // pill — but we must NOT force the half detent. A short pull only forms
1559
+ // the input bar (threadHeight stays ~0 until the drag exceeds
1560
+ // PILL_OPEN_DISTANCE), so clear `pilled` and FALL THROUGH to the shared
1561
+ // detent magnetism below: a release near the input (threadHeight within
1562
+ // SHEET_DETENT_MAGNET of 0) settles at the INPUT state, and only a pull
1563
+ // that actually reached up into the thread opens to half/full. This is
1564
+ // what makes pill → input → chat one continuum instead of skipping the
1565
+ // input state straight to half on a short slow pull.
1566
+ const opened = direction === "up" && openProgress.get() >= 0.5;
1567
+ if (!opened) {
1568
+ settleDrag(); // springs openProgress → 0 (mode stays "pill") + thread → 0
1569
+ return;
1570
+ }
1571
+ // Leaving the pill: fall through to the magnetism below, which sets the
1572
+ // mode (input / half / full) from where the drag was released — so pill →
1573
+ // input → chat reads as one continuum.
1574
+ if (hasThread)
1575
+ focusThreadRef.current = true;
1576
+ }
1577
+ // From the collapsed input, a downward drag has nothing to "size" below
1578
+ // it — collapse straight to the pill (matches the flick-down path).
1579
+ if (!sheetOpen && direction === "down") {
1580
+ setMode("pill");
1581
+ inputRef.current?.blur();
1582
+ detentHaptic();
1583
+ return;
1584
+ }
1585
+ const h = Math.max(0, Math.min(threadHeight.get(), panelMaxH));
1586
+ // DETENT MAGNETISM — the resting positions are the detents {collapsed:0,
1587
+ // half, full}; a release within SHEET_DETENT_MAGNET of one snaps to it
1588
+ // (deterministic, no janky near-detent slivers), and only the clear gaps
1589
+ // between them keep the free-drag rest height. goToDetent commits the
1590
+ // honest flags so data-detent + the maximize header match the height.
1591
+ if (h <= SHEET_DETENT_MAGNET) {
1592
+ // Near the bottom → collapse to the input peek.
1593
+ closeSheet();
1594
+ return;
1595
+ }
1596
+ focusThreadRef.current = true;
1597
+ if (h >= openH - SHEET_DETENT_MAGNET) {
1598
+ goToDetent("full");
1599
+ }
1600
+ else if (Math.abs(h - halfH) <= SHEET_DETENT_MAGNET) {
1601
+ goToDetent("half");
1602
+ }
1603
+ else {
1604
+ // In a gap between detents → rest exactly where released. `half` is the
1605
+ // open base; `freeH` overrides the actual height to where the finger left.
1606
+ setFreeH(h);
1607
+ setMode("half");
1608
+ }
1609
+ },
1610
+ });
1611
+ // NOTE: the chat has NO close-on-outside-pointerdown beyond the keyboard blur;
1612
+ // it COLLAPSES on a pull-down, Escape, or a click on the dimming scrim.
1613
+ 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",
1614
+ // Full-bleed (maximized) removes the side inset so the chat is edge-to-edge.
1615
+ fullBleed ? "px-0" : "px-3 sm:px-4"),
1616
+ // Lift the whole overlay above the on-screen keyboard (`bottom`); padding
1617
+ // below the composer is conditional: when the composer is FOCUSED (keyboard
1618
+ // up), only a small gap (0.75rem, matching the side margin) sits between the
1619
+ // composer and the keyboard — the home-gesture clearance isn't needed
1620
+ // because the keyboard covers it. At rest, clear the home-gesture zone (max
1621
+ // safe-area / android inset) plus a hair, keeping the chat low without
1622
+ // touching that zone.
1623
+ style: {
1624
+ zIndex: Z_SHELL_OVERLAY,
1625
+ bottom: effectiveKeyboardInset,
1626
+ // Full-bleed fills the screen edge-to-edge: NO overlay bottom padding,
1627
+ // so the glass panel reaches the true bottom (no orange gap). The
1628
+ // gesture-zone clearance moves INSIDE the composer row (below) so the
1629
+ // input still sits above the home-gesture bar. Non-full-bleed keeps the
1630
+ // chat lifted off the gesture zone as before.
1631
+ paddingBottom: fullBleed
1632
+ ? 0
1633
+ : composerFocused
1634
+ ? "0.75rem"
1635
+ : "calc(var(--eliza-mobile-nav-offset, 0px) + max(var(--safe-area-bottom, 0px), var(--android-gesture-inset-bottom, 0px)) + 0.25rem)",
1636
+ }, "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
1637
+ ? () => {
1638
+ // First tap with the keyboard up only dismisses it (the
1639
+ // pointerdown handler already dropped the keyboard and restored
1640
+ // the pre-focus detent) — don't ALSO collapse. A tap with the
1641
+ // keyboard already down closes the chat back to the input.
1642
+ if (composerFocusedAtPressRef.current) {
1643
+ composerFocusedAtPressRef.current = false;
1644
+ return;
1645
+ }
1646
+ collapse();
1647
+ }
1648
+ : 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%)]",
1649
+ // Opacity follows the live history height (motion value) — no re-render
1650
+ // during a drag. Capture clicks only once open.
1651
+ style: {
1652
+ opacity: revealed,
1653
+ visibility: scrimVisibility,
1654
+ pointerEvents: sheetOpen ? "auto" : "none",
1655
+ } }), 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", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-warn/70", 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 backdrop-blur-sm", 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"
1656
+ ? ` — ${Math.round(modelStatus.percent)}%`
1657
+ : "…"] })) : (_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 backdrop-blur-xl transition-colors", "shadow-[inset_0_1px_0_rgba(255,255,255,0.12),0_10px_30px_-12px_rgba(0,0,0,0.6)]", "hover:border-white/30 hover:bg-white/15 hover:text-white", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/60"), 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: () => {
1658
+ if (!hasThread)
1659
+ return;
1660
+ goToDetent("half");
1661
+ focusThreadRef.current = true;
1662
+ }, 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
1663
+ ? "pill"
1664
+ : !sheetOpen
1665
+ ? "collapsed"
1666
+ : freeH != null
1667
+ ? Math.min(freeH, panelMaxH) >= openH - 1
1668
+ ? "full"
1669
+ : "half"
1670
+ : expanded
1671
+ ? "full"
1672
+ : "half", "data-maximized": fullBleed ? "true" : undefined, "data-revealed": sheetOpen ? "true" : "false", "data-chat-state": chatState, "data-header-shown": headerVisible ? "true" : "false",
1673
+ // ONE persistent element across pill ↔ input ↔ chat (never remounts —
1674
+ // that pop was the core jank). It's a transparent scale/position
1675
+ // container; the liquid glass lives in an inner layer faded by
1676
+ // openProgress, so pill → input is a continuous scale + crossfade.
1677
+ // maxHeight keeps it from spilling off the top (thread scrolls instead).
1678
+ style: {
1679
+ maxHeight: panelMaxH,
1680
+ // Full-bleed must be exactly scale 1 — a sub-1 morph scale with a
1681
+ // bottom transform-origin would drop the top edge below the status
1682
+ // bar (the "gap at the top when maximized" bug).
1683
+ scale: fullBleed ? 1 : panelScale,
1684
+ // Grow UP out of the pill at the bottom.
1685
+ transformOrigin: "bottom center",
1686
+ // Pilled: span the (invisible) input area but pass taps through to the
1687
+ // home screen — only the pill-capsule child re-enables pointer events.
1688
+ pointerEvents: pilled ? "none" : "auto",
1689
+ }, className: cn(
1690
+ // overflow-VISIBLE on the outer fieldset: the glass layer's soft drop
1691
+ // shadow + the pill's tall grab zone must bleed past the box. The
1692
+ // rounded thread-clip lives on the inner content wrapper instead, so
1693
+ // clipping the scroll never clips the shadow into a hard square edge.
1694
+ "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]",
1695
+ // Liquid glass: a near-clear tint that lets the backdrop show
1696
+ // through, BLURRED + over-saturated + brightness-knocked-down so
1697
+ // bright content (the orange ambient) stops white text from washing
1698
+ // out — instead of a heavy dark fill. blur(16px)+saturate+brightness
1699
+ // compose into ONE backdrop-filter pass (blur radius never animated,
1700
+ // so it stays cheap on the per-frame-resizing surface). The base
1701
+ // bg-black/45 is the legible fallback when backdrop-filter is
1702
+ // unavailable; the supports- rule thins it to glass once the filter
1703
+ // is doing the darkening.
1704
+ "bg-black/45 backdrop-blur-lg backdrop-saturate-[1.8] backdrop-brightness-[0.68] supports-[backdrop-filter]:bg-black/[0.12]", fullBleed
1705
+ ? "shadow-none"
1706
+ : "shadow-[inset_0_1px_0_rgba(255,255,255,0.26),inset_0_0_0_0.5px_rgba(255,255,255,0.08),0_18px_50px_-16px_rgba(0,0,0,0.72)]"), style: {
1707
+ opacity: glassOpacity,
1708
+ borderRadius: fullBleed ? 0 : panelRadius,
1709
+ // Full-bleed: extend the glass UP through the safe-area-top so the
1710
+ // dark background reaches the true top of the screen. The panel
1711
+ // height comes from visualViewport (which excludes the Android
1712
+ // status bar) while the panel sits in a screen-top fixed container,
1713
+ // so without this the glass starts a status-bar-height below the top
1714
+ // (the "safe-area gap" above maximized chat). overflow-visible on the
1715
+ // panel lets it bleed up; content (header, with its own safe-area
1716
+ // padding) is untouched. Harmless when the inset is 0.
1717
+ ...(fullBleed
1718
+ ? { top: "calc(-1 * env(safe-area-inset-top, 0px))" }
1719
+ : null),
1720
+ } }), _jsxs(motion.div, { ref: contentRef, "data-testid": "chat-content", inert: pilled || undefined,
1721
+ // overflow-hidden + the live radius clips the sheen/thread to the
1722
+ // panel's rounded shape (the clip the fieldset used to do) WITHOUT
1723
+ // touching the sibling glass layer's shadow.
1724
+ className: "relative z-10 flex min-h-0 w-full flex-col overflow-hidden", style: {
1725
+ opacity: glassOpacity,
1726
+ pointerEvents: pilled ? "none" : "auto",
1727
+ borderRadius: fullBleed ? 0 : panelRadius,
1728
+ }, children: [_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" }), _jsx(motion.div, { "aria-hidden": "true", className: "pointer-events-none absolute inset-x-0 bottom-0 z-0 h-28 blur-xl bg-[rgba(255,180,120,0.30)]", initial: false, animate: { opacity: listening ? 1 : 0 }, transition: { duration: reduce ? 0 : 1.1, ease: "easeInOut" } }), _jsx(motion.div, { "aria-hidden": "true", className: "pointer-events-none absolute inset-x-0 bottom-0 z-0 h-28 blur-xl bg-[rgba(255,140,80,0.18)]", initial: false, animate: { opacity: responding ? 1 : 0 }, transition: { duration: reduce ? 0 : 1.1, ease: "easeInOut" } }), !pilled ? (_jsxs(motion.div
1729
+ // Always mounted (when not pilled) so it can FADE + LERP its
1730
+ // space open/closed with the live height instead of popping in
1731
+ // on a mount. `headerVisible` (live-height boolean) gates
1732
+ // interactivity + the a11y tree so the faded/collapsed header
1733
+ // can't be clicked or read.
1734
+ , {
1735
+ // Always mounted (when not pilled) so it can FADE + LERP its
1736
+ // space open/closed with the live height instead of popping in
1737
+ // on a mount. `headerVisible` (live-height boolean) gates
1738
+ // interactivity + the a11y tree so the faded/collapsed header
1739
+ // can't be clicked or read.
1740
+ inert: !headerVisible || undefined, style: {
1741
+ // Full-bleed is always fully open: show the header at full
1742
+ // opacity and UNCAP its height. The reveal lerp tops out at
1743
+ // 100px, but the safe-area top padding (status-bar height +
1744
+ // 0.5rem) plus the button row exceeds that, so a 100px cap
1745
+ // clipped the buttons — uncap it edge-to-edge.
1746
+ opacity: fullBleed ? 1 : headerOpacity,
1747
+ maxHeight: fullBleed ? "none" : headerMaxH,
1748
+ // Collapsed → 0 top padding (no leaked margin above the
1749
+ // composer); opens to ~10px as the header reveals. Maximized
1750
+ // goes edge-to-edge under the status bar, so the header insets
1751
+ // its buttons below the safe area (the clock/battery) while the
1752
+ // sheet bg stays full-bleed — set inline (not a Tailwind
1753
+ // arbitrary class, whose env(...,0px) comma breaks the parser
1754
+ // so no padding was generated and the buttons sat under the
1755
+ // status bar).
1756
+ paddingTop: fullBleed
1757
+ ? "calc(var(--safe-area-top, 0px) + 0.5rem)"
1758
+ : headerPadTop,
1759
+ }, 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" }), _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, _jsxs("div", { className: "flex items-center gap-1.5", children: [_jsx(HeaderButton, { icon: Home, label: "home", disabled: currentTab === "chat", onClick: () => navigateAndClose(() => navigateHome?.()), testId: "chat-full-home" }), _jsx(HeaderButton, { icon: LayoutGrid, label: "views", disabled: currentTab === "views", onClick: () => navigateAndClose(() => navigateToViews?.()), testId: "chat-full-views" }), _jsx(HeaderButton, { icon: SettingsIcon, label: "settings", disabled: currentTab === "settings", onClick: () => navigateAndClose(() => openSettings()), testId: "chat-full-settings" })] })] })) : null, hasThread ? (_jsx(motion.div, { "data-testid": "chat-thread", className: cn("relative z-10 min-h-0 w-full shrink grow-0 overflow-hidden",
1760
+ // When open, fade the top edge into the glass so the topmost
1761
+ // message dissolves under the drag handle instead of butting
1762
+ // against it.
1763
+ sheetOpen &&
1764
+ "[mask-image:linear-gradient(to_bottom,transparent_0,#000_34px)] [-webkit-mask-image:linear-gradient(to_bottom,transparent_0,#000_34px)]"),
1765
+ // Flex-basis IS the motion value (px string) — set 1:1 during a drag,
1766
+ // spring-animated to a detent on release; no `animate`/`transition`,
1767
+ // so no re-render. `shrink min-h-0` lets the panel's `maxHeight` cap
1768
+ // win: a tall detent (or the keyboard) shrinks the thread (it
1769
+ // scrolls) instead of pushing the panel off-screen. paddingTop
1770
+ // insets the scroll viewport below the floating grabber while the
1771
+ // header is hidden (0 once the header reveals at half+).
1772
+ style: {
1773
+ flexBasis: threadFlexBasis,
1774
+ paddingTop: threadGrabberClearance,
1775
+ }, children: _jsx("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) => {
1776
+ if (e.key === "Escape") {
1777
+ e.preventDefault();
1778
+ collapse();
1779
+ }
1780
+ }, className: "relative flex h-full w-full touch-pan-y flex-col overflow-y-auto px-5 [scrollbar-width:none] focus-visible:outline-none [&::-webkit-scrollbar]:hidden", children: _jsxs("div", { className: "mt-auto flex flex-col pb-3 pt-1", children: [_jsx(AnimatePresence, { initial: false, children: visibleMessages.map((m) => (_jsx(ThreadLine, { message: m, floating: true, reduce: reduce, onCopy: handleCopyMessage, onOpenSettings: openSettings }, m.id))) }), _jsx(AnimatePresence, { children: responding &&
1781
+ !(visibleMessages.at(-1)?.role === "assistant" &&
1782
+ !visibleMessages.at(-1)?.content.trim()) ? (_jsx(TypingDots, { 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) => {
1783
+ const kind = chatUploadKind(img.mimeType);
1784
+ const removeButton = (_jsx("button", { type: "button", "aria-label": `remove ${img.name}`, onClick: () => removeImage(i),
1785
+ // Small visual disc, but a 44px-class hit zone via the
1786
+ // invisible `before` overlay so it's thumb-tappable
1787
+ // without crowding the tile.
1788
+ 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 backdrop-blur transition-colors before:absolute before:-inset-3 before:content-[''] hover:bg-black/90", children: "\u00D7" }));
1789
+ const tileKey = `${img.name}-${img.mimeType}-${img.data.length}`;
1790
+ if (kind === "image") {
1791
+ 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));
1792
+ }
1793
+ const KindIcon = kind === "audio"
1794
+ ? Music
1795
+ : kind === "video"
1796
+ ? Film
1797
+ : FileText;
1798
+ 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));
1799
+ }) })) : 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) => {
1800
+ if (e.target.files)
1801
+ addImageFiles(e.target.files);
1802
+ e.target.value = "";
1803
+ } }), _jsxs("div", { className: cn(
1804
+ // items-center vertically centers a single-line composer with
1805
+ // the round +/mic buttons (the common case); a multi-line draft
1806
+ // grows the textarea and the buttons stay centered. shrink-0
1807
+ // keeps the input fully visible when the panel hits its
1808
+ // maxHeight cap (only the thread above gives way).
1809
+ // Equal inset on all sides (px == py): a round button nested in
1810
+ // the pill's round end-cap reads as concentric, with the same
1811
+ // gap on the sides as top/bottom.
1812
+ "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" : ""),
1813
+ // Full-bleed has no overlay bottom padding (the panel is
1814
+ // edge-to-edge), so the composer carries the home-gesture
1815
+ // clearance itself — except while the keyboard is up, which
1816
+ // already covers that zone.
1817
+ style: fullBleed && !composerFocused
1818
+ ? {
1819
+ paddingBottom: "calc(0.5rem + max(var(--safe-area-bottom, 0px), var(--android-gesture-inset-bottom, 0px)))",
1820
+ }
1821
+ : 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) => {
1822
+ setDraft(e.target.value);
1823
+ // Mirror the live draft to the active view (Help search etc.).
1824
+ viewChatBinding?.onQuery?.(e.target.value);
1825
+ if (e.target.value.trim().length > 0)
1826
+ expand();
1827
+ }, onFocus: () => {
1828
+ setComposerFocused(true);
1829
+ // A pill-open focus only raises the keyboard; it must not
1830
+ // expand a history thread (see suppressExpandOnFocusRef).
1831
+ if (suppressExpandOnFocusRef.current) {
1832
+ suppressExpandOnFocusRef.current = false;
1833
+ }
1834
+ else {
1835
+ expand();
1836
+ }
1837
+ }, onBlur: () => setComposerFocused(false), onPaste: (e) => {
1838
+ // Paste images/files straight into the composer (cmd/ctrl+V).
1839
+ const files = Array.from(e.clipboardData?.files ?? []);
1840
+ if (files.length > 0) {
1841
+ e.preventDefault();
1842
+ addImageFiles(files);
1843
+ }
1844
+ }, onKeyDown: (e) => {
1845
+ // The slash menu intercepts navigation/commit keys when open.
1846
+ if (slashOpen) {
1847
+ if (e.key === "ArrowDown") {
1848
+ e.preventDefault();
1849
+ slashMenu.move(1);
1850
+ return;
1851
+ }
1852
+ if (e.key === "ArrowUp") {
1853
+ e.preventDefault();
1854
+ slashMenu.move(-1);
1855
+ return;
1856
+ }
1857
+ if (e.key === "Tab") {
1858
+ const completed = slashMenu.complete();
1859
+ if (completed != null) {
1860
+ e.preventDefault();
1861
+ setDraft(completed);
1862
+ return;
1863
+ }
1864
+ }
1865
+ if (e.key === "Enter" && !e.shiftKey) {
1866
+ const exec = slashMenu.resolve();
1867
+ if (exec) {
1868
+ e.preventDefault();
1869
+ runExecution(exec);
1870
+ return;
1871
+ }
1872
+ }
1873
+ if (e.key === "Escape") {
1874
+ e.preventDefault();
1875
+ e.stopPropagation();
1876
+ setSlashDismissed(true);
1877
+ return;
1878
+ }
1879
+ }
1880
+ // Enter sends; Shift+Enter inserts a newline (multi-line compose).
1881
+ if (e.key === "Enter" && !e.shiftKey) {
1882
+ e.preventDefault();
1883
+ submit();
1884
+ }
1885
+ else if (e.key === "Escape" && sheetOpen) {
1886
+ e.preventDefault();
1887
+ collapse();
1888
+ }
1889
+ }, placeholder: booting
1890
+ ? `Ask ${agentName} — waking up…`
1891
+ : (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."] }), _jsxs("div", { className: "flex shrink-0 items-center gap-1.5 sm:gap-2", children: [voiceActive ? (_jsx(SoftButton, { icon: FileText, label: transcriptionMode
1892
+ ? "stop transcription"
1893
+ : "transcription mode", active: transcriptionMode, onClick: toggleTranscriptionMode, testId: "chat-composer-transcribe" })) : null, _jsx("div", { className: "shrink-0", children: (hasDraft || hasImages) && !recording ? (_jsx(SoftButton, { icon: SendHorizontal, label: !canSend
1894
+ ? "send (agent stopped)"
1895
+ : responding
1896
+ ? "send another"
1897
+ : "send", disabled: !canSend,
1898
+ // Keep focus in the textarea on tap: without this the
1899
+ // button steals focus, the textarea blurs, the keyboard
1900
+ // retracts and the composer relayouts between pointerdown
1901
+ // and click — so the first tap only dismissed the keyboard
1902
+ // and a second tap was needed to actually send. Chromium
1903
+ // still dispatches click after a preventDefaulted
1904
+ // pointerdown, so onClick fires on the first tap and the
1905
+ // keyboard stays up for the next message.
1906
+ 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
1907
+ ? "release to send"
1908
+ : transcriptionMode
1909
+ ? "stop transcription"
1910
+ : handsFree
1911
+ ? "end conversation"
1912
+ : recording
1913
+ ? "stop listening"
1914
+ : "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: {
1915
+ opacity: pillOpacity,
1916
+ pointerEvents: pilled ? "auto" : "none",
1917
+ }, children: _jsx(PillHandle, { binding: pullBinding, onOpen: openFromPill, glow: listening || responding, pilled: pilled }) })] })] })] }));
1918
+ }