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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1719) hide show
  1. package/App.d.ts +6 -1
  2. package/App.d.ts.map +1 -1
  3. package/App.js +251 -49
  4. package/agent-surface/AgentSurfaceContext.d.ts +1 -1
  5. package/agent-surface/AgentSurfaceContext.hooks.d.ts +2 -2
  6. package/agent-surface/__e2e__/real-view-fixture.d.ts +21 -0
  7. package/agent-surface/__e2e__/real-view-fixture.d.ts.map +1 -0
  8. package/agent-surface/__e2e__/real-view-fixture.js +54 -0
  9. package/agent-surface/capabilities.d.ts +2 -2
  10. package/agent-surface/components.d.ts +1 -1
  11. package/agent-surface/element-reporter.hooks.d.ts +1 -1
  12. package/agent-surface/index.d.ts +10 -10
  13. package/agent-surface/registry.d.ts +1 -1
  14. package/agent-surface/useAgentElement.d.ts +1 -1
  15. package/api/android-native-agent-transport.d.ts +1 -1
  16. package/api/client-agent.d.ts +16 -2
  17. package/api/client-agent.d.ts.map +1 -1
  18. package/api/client-agent.js +13 -3
  19. package/api/client-approvals.d.ts +16 -0
  20. package/api/client-approvals.d.ts.map +1 -0
  21. package/api/client-approvals.js +4 -0
  22. package/api/client-automations.d.ts +1 -1
  23. package/api/client-background.d.ts +15 -0
  24. package/api/client-background.d.ts.map +1 -0
  25. package/api/client-background.js +10 -0
  26. package/api/client-base.d.ts +13 -3
  27. package/api/client-base.d.ts.map +1 -1
  28. package/api/client-base.js +99 -6
  29. package/api/client-browser-workspace.d.ts +1 -1
  30. package/api/client-chat.d.ts +8 -3
  31. package/api/client-chat.d.ts.map +1 -1
  32. package/api/client-chat.js +13 -4
  33. package/api/client-cloud.d.ts +3 -3
  34. package/api/client-cloud.d.ts.map +1 -1
  35. package/api/client-cloud.js +19 -13
  36. package/api/client-files.d.ts +36 -0
  37. package/api/client-files.d.ts.map +1 -0
  38. package/api/client-files.js +19 -0
  39. package/api/client-local-inference.d.ts +52 -6
  40. package/api/client-local-inference.d.ts.map +1 -1
  41. package/api/client-local-inference.js +78 -5
  42. package/api/client-skills.d.ts +3 -3
  43. package/api/client-transcripts.d.ts +8 -0
  44. package/api/client-transcripts.d.ts.map +1 -1
  45. package/api/client-transcripts.js +6 -0
  46. package/api/client-types-chat.d.ts +53 -2
  47. package/api/client-types-chat.d.ts.map +1 -1
  48. package/api/client-types-cloud.d.ts +3 -151
  49. package/api/client-types-cloud.d.ts.map +1 -1
  50. package/api/client-types-config.d.ts +13 -6
  51. package/api/client-types-config.d.ts.map +1 -1
  52. package/api/client-types-core.d.ts +1 -1
  53. package/api/client-types-feed.d.ts +0 -14
  54. package/api/client-types-feed.d.ts.map +1 -1
  55. package/api/client-types.d.ts +8 -8
  56. package/api/client-wallet.d.ts +3 -3
  57. package/api/client-workflow.d.ts +1 -1
  58. package/api/client.d.ts +31 -27
  59. package/api/client.d.ts.map +1 -1
  60. package/api/client.js +3 -0
  61. package/api/desktop-http-transport.d.ts +1 -1
  62. package/api/desktop-http-transport.d.ts.map +1 -1
  63. package/api/desktop-http-transport.js +29 -1
  64. package/api/i18n-locale-client.d.ts +1 -1
  65. package/api/index.d.ts +2 -2
  66. package/api/ios-local-agent-kernel.d.ts +1 -1
  67. package/api/ios-local-agent-kernel.d.ts.map +1 -1
  68. package/api/ios-local-agent-kernel.js +97 -22
  69. package/api/ios-local-agent-transport.d.ts +1 -1
  70. package/api/ios-local-agent-transport.d.ts.map +1 -1
  71. package/api/ios-local-agent-transport.js +1 -7
  72. package/api/ittp-agent-transport.d.ts +1 -1
  73. package/api/native-cloud-http-transport.d.ts +1 -1
  74. package/api/native-cloud-http-transport.d.ts.map +1 -1
  75. package/api/native-cloud-http-transport.js +7 -0
  76. package/app-navigate-view.d.ts +1 -1
  77. package/app-navigate-view.d.ts.map +1 -1
  78. package/app-navigate-view.js +1 -4
  79. package/app-shell-components.d.ts +26 -27
  80. package/app-shell-components.d.ts.map +1 -1
  81. package/app-shell-components.js +3 -1
  82. package/app-shell-registry.d.ts +12 -1
  83. package/app-shell-registry.d.ts.map +1 -1
  84. package/backgrounds/AppBackground.d.ts +16 -0
  85. package/backgrounds/AppBackground.d.ts.map +1 -0
  86. package/backgrounds/AppBackground.js +30 -0
  87. package/backgrounds/ImageBackground.d.ts +12 -0
  88. package/backgrounds/ImageBackground.d.ts.map +1 -0
  89. package/backgrounds/ImageBackground.js +15 -0
  90. package/backgrounds/ShaderBackground.d.ts +12 -0
  91. package/backgrounds/ShaderBackground.d.ts.map +1 -0
  92. package/backgrounds/ShaderBackground.js +39 -0
  93. package/backgrounds/index.d.ts +7 -3
  94. package/backgrounds/index.d.ts.map +1 -1
  95. package/backgrounds/index.js +4 -0
  96. package/backgrounds/useBackgroundApplyChannel.d.ts +21 -0
  97. package/backgrounds/useBackgroundApplyChannel.d.ts.map +1 -0
  98. package/backgrounds/useBackgroundApplyChannel.js +53 -0
  99. package/bridge/capacitor-bridge.d.ts +1 -1
  100. package/bridge/index.d.ts +6 -6
  101. package/bridge/native-notifications.d.ts.map +1 -1
  102. package/bridge/native-notifications.js +6 -1
  103. package/bridge/native-plugins.d.ts +20 -1
  104. package/bridge/native-plugins.d.ts.map +1 -1
  105. package/bridge/plugin-bridge.d.ts +1 -1
  106. package/browser.d.ts +131 -131
  107. package/cache-telemetry.d.ts +2 -0
  108. package/cache-telemetry.d.ts.map +1 -1
  109. package/character/character-draft-helpers.d.ts +1 -1
  110. package/character-catalog.d.ts +1 -1
  111. package/chat/coding-agent-session-state.d.ts +1 -1
  112. package/chat/index.d.ts +24 -4
  113. package/chat/index.d.ts.map +1 -1
  114. package/chat/index.js +59 -6
  115. package/chat/slash-menu.d.ts +37 -2
  116. package/chat/slash-menu.d.ts.map +1 -1
  117. package/chat/slash-menu.js +220 -0
  118. package/chat/useSlashCommandController.d.ts +35 -2
  119. package/chat/useSlashCommandController.d.ts.map +1 -1
  120. package/chat/useSlashCommandController.js +64 -8
  121. package/cloud/account-security/AccountRoute.js +1 -1
  122. package/cloud/account-security/PermissionsRoute.js +1 -1
  123. package/cloud/account-security/SecurityRoute.js +1 -1
  124. package/cloud/account-security/components/account-details.d.ts +1 -1
  125. package/cloud/account-security/components/account-page-client.d.ts +1 -1
  126. package/cloud/account-security/components/organization-info.d.ts +1 -1
  127. package/cloud/account-security/components/profile-form.d.ts +1 -1
  128. package/cloud/account-security/components/profile-form.js +2 -2
  129. package/cloud/account-security/data/use-session-auth.d.ts +1 -1
  130. package/cloud/account-security/index.d.ts +8 -8
  131. package/cloud/admin/ModerationPage.js +1 -1
  132. package/cloud/admin/RedemptionsPage.js +2 -2
  133. package/cloud/admin/RpcStatusPage.js +1 -1
  134. package/cloud/admin/index.d.ts +6 -6
  135. package/cloud/analytics/_components/filters.js +1 -1
  136. package/cloud/analytics/_components/model-breakdown.js +2 -2
  137. package/cloud/analytics/_components/projections-chart.js +2 -2
  138. package/cloud/analytics/_components/provider-breakdown.js +2 -2
  139. package/cloud/analytics/index.d.ts +3 -3
  140. package/cloud/api-explorer/ApiExplorerPage.js +2 -2
  141. package/cloud/api-explorer/api-tester.d.ts.map +1 -1
  142. package/cloud/api-explorer/api-tester.js +15 -8
  143. package/cloud/api-explorer/auth-manager.d.ts +1 -1
  144. package/cloud/api-explorer/auth-manager.js +1 -1
  145. package/cloud/api-explorer/index.d.ts +5 -5
  146. package/cloud/api-explorer/use-session-auth.d.ts +1 -1
  147. package/cloud/api-keys/ApiKeysRoute.js +1 -1
  148. package/cloud/api-keys/ApiKeysView.d.ts +1 -1
  149. package/cloud/api-keys/ApiKeysView.js +5 -5
  150. package/cloud/api-keys/index.d.ts +6 -6
  151. package/cloud/applications/ApplicationDetailPage.js +1 -1
  152. package/cloud/applications/ApplicationsPage.js +1 -1
  153. package/cloud/applications/components/app-analytics.d.ts.map +1 -1
  154. package/cloud/applications/components/app-analytics.js +12 -20
  155. package/cloud/applications/components/app-details-tabs.d.ts +1 -1
  156. package/cloud/applications/components/app-details-tabs.js +1 -1
  157. package/cloud/applications/components/app-domains.d.ts.map +1 -1
  158. package/cloud/applications/components/app-domains.js +5 -2
  159. package/cloud/applications/components/app-overview.d.ts +1 -1
  160. package/cloud/applications/components/app-overview.d.ts.map +1 -1
  161. package/cloud/applications/components/app-overview.js +120 -3
  162. package/cloud/applications/components/app-promote.d.ts +1 -1
  163. package/cloud/applications/components/app-promote.d.ts.map +1 -1
  164. package/cloud/applications/components/app-promote.js +13 -4
  165. package/cloud/applications/components/app-settings.d.ts +1 -1
  166. package/cloud/applications/components/app-settings.js +5 -5
  167. package/cloud/applications/components/apps-table.d.ts +1 -1
  168. package/cloud/applications/components/create-app-dialog.js +1 -1
  169. package/cloud/applications/components/withdraw-dialog.js +1 -1
  170. package/cloud/applications/index.d.ts +5 -5
  171. package/cloud/applications/lib/apps.d.ts +25 -0
  172. package/cloud/applications/lib/apps.d.ts.map +1 -1
  173. package/cloud/applications/lib/apps.js +17 -1
  174. package/cloud/approvals/ApprovalsRoute.js +1 -1
  175. package/cloud/approvals/index.d.ts +3 -3
  176. package/cloud/approvals/lib/approvals.d.ts.map +1 -1
  177. package/cloud/approvals/lib/approvals.js +1 -1
  178. package/cloud/billing/components/billing-tab.d.ts +1 -1
  179. package/cloud/billing/components/direct-crypto-credit-card.d.ts +1 -1
  180. package/cloud/billing/components/direct-crypto-credit-card.js +1 -1
  181. package/cloud/billing/components/invoice-detail-client.d.ts +1 -1
  182. package/cloud/billing/components/payment-waiting-overlay.js +1 -1
  183. package/cloud/billing/data/billing-data.d.ts +2 -2
  184. package/cloud/billing/index.d.ts +9 -9
  185. package/cloud/billing/use-session-auth.d.ts +1 -1
  186. package/cloud/connectors/index.d.ts +10 -10
  187. package/cloud/documents/DocumentsRoute.js +2 -2
  188. package/cloud/documents/index.d.ts +7 -7
  189. package/cloud/documents/lib/agents.d.ts.map +1 -1
  190. package/cloud/documents/lib/agents.js +1 -1
  191. package/cloud/handoff/cloud-handoff-supervisor.d.ts +1 -1
  192. package/cloud/handoff/run-cloud-agent-handoff.d.ts +18 -0
  193. package/cloud/handoff/run-cloud-agent-handoff.d.ts.map +1 -0
  194. package/cloud/handoff/run-cloud-agent-handoff.js +51 -0
  195. package/cloud/index.d.ts +4 -4
  196. package/cloud/instances/AgentChatPage.js +2 -2
  197. package/cloud/instances/AgentDetailPage.js +1 -1
  198. package/cloud/instances/AgentsPage.js +1 -1
  199. package/cloud/instances/MyAgentsPage.js +1 -1
  200. package/cloud/instances/components/agent-actions.js +1 -1
  201. package/cloud/instances/components/agent-card.d.ts +3 -1
  202. package/cloud/instances/components/agent-card.d.ts.map +1 -1
  203. package/cloud/instances/components/agent-card.js +10 -6
  204. package/cloud/instances/components/character-filters.d.ts +1 -1
  205. package/cloud/instances/components/character-filters.js +1 -1
  206. package/cloud/instances/components/character-library-grid.d.ts +1 -1
  207. package/cloud/instances/components/create-eliza-agent-dialog.js +3 -3
  208. package/cloud/instances/components/docker-logs-viewer.d.ts.map +1 -1
  209. package/cloud/instances/components/docker-logs-viewer.js +13 -12
  210. package/cloud/instances/components/eliza-agent-backups-panel.js +2 -2
  211. package/cloud/instances/components/eliza-agents-table.js +1 -1
  212. package/cloud/instances/components/eliza-wallet-section.d.ts.map +1 -1
  213. package/cloud/instances/components/eliza-wallet-section.js +3 -5
  214. package/cloud/instances/components/my-agents.d.ts.map +1 -1
  215. package/cloud/instances/components/my-agents.js +5 -5
  216. package/cloud/instances/index.d.ts +6 -6
  217. package/cloud/instances/lib/i18n.d.ts +1 -1
  218. package/cloud/instances/lib/use-job-poller.d.ts.map +1 -1
  219. package/cloud/instances/lib/use-job-poller.js +4 -0
  220. package/cloud/instances/lib/use-sandbox-status-poll.d.ts.map +1 -1
  221. package/cloud/instances/lib/use-sandbox-status-poll.js +6 -0
  222. package/cloud/instances/lib/use-session-auth.d.ts +1 -1
  223. package/cloud/join/index.d.ts +5 -5
  224. package/cloud/lib/auth-query.d.ts +19 -0
  225. package/cloud/lib/auth-query.d.ts.map +1 -0
  226. package/cloud/{documents/lib → lib}/auth-query.js +7 -5
  227. package/cloud/lib/format-usd.d.ts +9 -0
  228. package/cloud/lib/format-usd.d.ts.map +1 -0
  229. package/cloud/lib/format-usd.js +16 -0
  230. package/cloud/lib/use-copy-feedback.d.ts +5 -0
  231. package/cloud/lib/use-copy-feedback.d.ts.map +1 -0
  232. package/cloud/{instances/lib → lib}/use-copy-feedback.js +2 -0
  233. package/cloud/lib/use-document-title.d.ts +2 -0
  234. package/cloud/lib/use-document-title.d.ts.map +1 -0
  235. package/cloud/{admin → lib}/use-document-title.js +4 -5
  236. package/cloud/lib/use-session-auth.d.ts +31 -0
  237. package/cloud/lib/use-session-auth.d.ts.map +1 -0
  238. package/cloud/{applications/lib → lib}/use-session-auth.js +14 -11
  239. package/cloud/mcps/McpDetailDrawer.d.ts +1 -1
  240. package/cloud/mcps/McpEditorDialog.d.ts +1 -1
  241. package/cloud/mcps/McpsView.d.ts.map +1 -1
  242. package/cloud/mcps/McpsView.js +20 -13
  243. package/cloud/mcps/index.d.ts +10 -10
  244. package/cloud/mcps/lib/mcp-mutations.d.ts +1 -1
  245. package/cloud/mcps/lib/use-mcps.d.ts +1 -1
  246. package/cloud/monetization/affiliates/AffiliatesRoute.js +1 -1
  247. package/cloud/monetization/affiliates/use-dashboard-referral-me.d.ts +1 -1
  248. package/cloud/monetization/earnings/EarningsPageClient.js +1 -1
  249. package/cloud/monetization/earnings/EarningsRoute.js +1 -1
  250. package/cloud/monetization/index.d.ts +8 -8
  251. package/cloud/organization/data/use-organization.d.ts +1 -1
  252. package/cloud/organization/index.d.ts +11 -11
  253. package/cloud/organization/members-list.d.ts +1 -1
  254. package/cloud/organization/members-tab.d.ts +1 -1
  255. package/cloud/organization/organization-general-tab.d.ts +1 -1
  256. package/cloud/organization/organization-tab.d.ts +1 -1
  257. package/cloud/organization/pending-invites-list.d.ts +1 -1
  258. package/cloud/public-pages/index.d.ts +21 -21
  259. package/cloud/public-pages/lib/use-session-auth.d.ts +1 -1
  260. package/cloud/public-pages/pages/auth/cli-login-page.d.ts.map +1 -1
  261. package/cloud/public-pages/pages/auth/cli-login-page.js +46 -9
  262. package/cloud/public-pages/pages/bsc-page.js +5 -5
  263. package/cloud/public-pages/pages/login/steward-login-section.js +2 -2
  264. package/cloud/public-pages/pages/payment/app-charge-page.js +1 -1
  265. package/cloud/public-pages/pages/payment/payment-request-page.js +1 -1
  266. package/cloud/register-all.d.ts +5 -5
  267. package/cloud/settings/index.d.ts +4 -4
  268. package/cloud/settings/sections.js +1 -1
  269. package/cloud/shell/CloudI18nProvider.d.ts +1 -1
  270. package/cloud/shell/StewardProvider.d.ts +1 -31
  271. package/cloud/shell/StewardProvider.d.ts.map +1 -1
  272. package/cloud/shell/StewardProvider.js +3 -122
  273. package/cloud/shell/StewardProviderRuntime.d.ts.map +1 -1
  274. package/cloud/shell/StewardProviderRuntime.js +17 -7
  275. package/cloud/shell/StewardProviderShared.d.ts +27 -0
  276. package/cloud/shell/StewardProviderShared.d.ts.map +1 -0
  277. package/cloud/shell/StewardProviderShared.js +112 -0
  278. package/cloud-ui/components/ai-elements/index.d.ts +3 -3
  279. package/cloud-ui/components/ai-elements/memoized-chat-message.d.ts +1 -1
  280. package/cloud-ui/components/ai-elements/memoized-chat-message.d.ts.map +1 -1
  281. package/cloud-ui/components/ai-elements/memoized-chat-message.js +162 -139
  282. package/cloud-ui/components/analytics/cost-alerts.d.ts +1 -1
  283. package/cloud-ui/components/analytics/cost-insights-card.d.ts +1 -1
  284. package/cloud-ui/components/analytics/index.d.ts +3 -3
  285. package/cloud-ui/components/auth/authorize-content.js +1 -1
  286. package/cloud-ui/components/brand/brand-button.d.ts +1 -1
  287. package/cloud-ui/components/brand/brand-button.js +1 -1
  288. package/cloud-ui/components/brand/brand-tabs-responsive.d.ts.map +1 -1
  289. package/cloud-ui/components/brand/brand-tabs-responsive.js +1 -1
  290. package/cloud-ui/components/brand/brand-tabs.d.ts.map +1 -1
  291. package/cloud-ui/components/brand/brand-tabs.js +2 -2
  292. package/cloud-ui/components/brand/index.d.ts +21 -21
  293. package/cloud-ui/components/brand/lock-on-button.d.ts +2 -2
  294. package/cloud-ui/components/brand/lock-on-button.variants.d.ts +1 -1
  295. package/cloud-ui/components/brand/lock-on-button.variants.js +1 -1
  296. package/cloud-ui/components/code/code-display.d.ts +1 -1
  297. package/cloud-ui/components/code/code-display.d.ts.map +1 -1
  298. package/cloud-ui/components/code/code-display.js +11 -9
  299. package/cloud-ui/components/code/index.d.ts +3 -3
  300. package/cloud-ui/components/data-list/apps-list-view.js +1 -1
  301. package/cloud-ui/components/data-list/index.d.ts +8 -8
  302. package/cloud-ui/components/data-list/list-action-menu.js +1 -1
  303. package/cloud-ui/components/docs/api-parameter-select.js +1 -1
  304. package/cloud-ui/components/docs/api-route-explorer-client.d.ts +1 -1
  305. package/cloud-ui/components/docs/api-route-explorer-client.js +1 -1
  306. package/cloud-ui/components/docs/docs-layout.d.ts +1 -1
  307. package/cloud-ui/components/docs/index.d.ts +11 -11
  308. package/cloud-ui/components/drawer.js +1 -1
  309. package/cloud-ui/components/image-gen/index.d.ts +4 -4
  310. package/cloud-ui/components/image-gen/prompt-input.js +1 -1
  311. package/cloud-ui/components/layout/dashboard-route-page.d.ts +1 -1
  312. package/cloud-ui/components/layout/dashboard-sidebar-item.d.ts +1 -1
  313. package/cloud-ui/components/layout/dashboard-sidebar-section.d.ts +1 -1
  314. package/cloud-ui/components/layout/dashboard-sidebar.d.ts +1 -1
  315. package/cloud-ui/components/layout/dashboard-sidebar.js +1 -1
  316. package/cloud-ui/components/layout/index.d.ts +11 -11
  317. package/cloud-ui/components/log-viewer.d.ts +1 -1
  318. package/cloud-ui/components/log-viewer.d.ts.map +1 -1
  319. package/cloud-ui/components/log-viewer.js +5 -2
  320. package/cloud-ui/components/monetization/animated-counter.d.ts.map +1 -1
  321. package/cloud-ui/components/monetization/animated-counter.js +4 -2
  322. package/cloud-ui/components/monetization/index.d.ts +4 -4
  323. package/cloud-ui/components/primitives.d.ts +57 -57
  324. package/cloud-ui/components/product-switcher.js +1 -1
  325. package/cloud-ui/components/resizable.d.ts.map +1 -1
  326. package/cloud-ui/components/resizable.js +23 -3
  327. package/cloud-ui/components/share/index.d.ts +1 -1
  328. package/cloud-ui/components/theme/index.d.ts +3 -3
  329. package/cloud-ui/components/theme/theme-provider.d.ts +2 -2
  330. package/cloud-ui/components/timeline.d.ts.map +1 -1
  331. package/cloud-ui/components/timeline.js +6 -6
  332. package/cloud-ui/components/voice/index.d.ts +8 -8
  333. package/cloud-ui/index.d.ts +30 -30
  334. package/cloud-ui/lib/utils.d.ts +1 -1
  335. package/companion/desktop-bar/CompanionBar.d.ts +1 -1
  336. package/companion/desktop-bar/CompanionBar.d.ts.map +1 -1
  337. package/companion/desktop-bar/CompanionBar.js +11 -8
  338. package/companion/desktop-bar/index.d.ts +6 -6
  339. package/companion/desktop-bar/platform/electrobun-tray.d.ts +19 -0
  340. package/companion/desktop-bar/platform/electrobun-tray.d.ts.map +1 -1
  341. package/companion/desktop-bar/platform/index.d.ts +2 -2
  342. package/companion/desktop-bar/platform/index.d.ts.map +1 -1
  343. package/companion/desktop-bar/platform/web-fallback.d.ts +1 -1
  344. package/companion/desktop-bar/useKeyboardShortcuts.d.ts +1 -1
  345. package/components/accounts/AccountCard.d.ts +1 -1
  346. package/components/accounts/AccountCard.js +2 -2
  347. package/components/accounts/AccountList.js +2 -2
  348. package/components/accounts/AddAccountDialog.d.ts.map +1 -1
  349. package/components/accounts/AddAccountDialog.js +11 -3
  350. package/components/accounts/RotationStrategyPicker.d.ts +1 -1
  351. package/components/accounts/RotationStrategyPicker.js +2 -2
  352. package/components/apps/AppWindowRenderer.d.ts.map +1 -1
  353. package/components/apps/AppWindowRenderer.helpers.d.ts +1 -1
  354. package/components/apps/AppWindowRenderer.js +23 -10
  355. package/components/apps/AppsCatalogGrid.d.ts +1 -1
  356. package/components/apps/AppsCatalogGrid.d.ts.map +1 -1
  357. package/components/apps/AppsCatalogGrid.js +16 -23
  358. package/components/apps/AppsSidebar.d.ts +1 -1
  359. package/components/apps/AppsSidebar.d.ts.map +1 -1
  360. package/components/apps/AppsSidebar.js +22 -11
  361. package/components/apps/GameView.d.ts.map +1 -1
  362. package/components/apps/GameView.helpers.d.ts +1 -1
  363. package/components/apps/GameView.js +55 -20
  364. package/components/apps/GameViewOverlay.d.ts.map +1 -1
  365. package/components/apps/GameViewOverlay.js +38 -4
  366. package/components/apps/RunningAppsRow.d.ts +1 -1
  367. package/components/apps/RunningAppsRow.d.ts.map +1 -1
  368. package/components/apps/RunningAppsRow.js +12 -10
  369. package/components/apps/app-identity.helpers.d.ts +1 -1
  370. package/components/apps/app-identity.js +1 -1
  371. package/components/apps/catalog-loader.d.ts +1 -1
  372. package/components/apps/extensions/registry.d.ts +2 -2
  373. package/components/apps/extensions/surface.d.ts +2 -2
  374. package/components/apps/extensions/surface.d.ts.map +1 -1
  375. package/components/apps/extensions/surface.helpers.d.ts +2 -2
  376. package/components/apps/extensions/surface.js +9 -9
  377. package/components/apps/extensions/types.d.ts +1 -1
  378. package/components/apps/helpers.d.ts +8 -5
  379. package/components/apps/helpers.d.ts.map +1 -1
  380. package/components/apps/helpers.js +5 -10
  381. package/components/apps/home-grid-apps.d.ts +2 -2
  382. package/components/apps/internal-tool-apps.d.ts +2 -2
  383. package/components/apps/internal-tool-apps.d.ts.map +1 -1
  384. package/components/apps/internal-tool-apps.js +18 -8
  385. package/components/apps/launch-history.d.ts +1 -1
  386. package/components/apps/load-apps-catalog.d.ts +1 -1
  387. package/components/apps/overlay-app-registry.d.ts +5 -2
  388. package/components/apps/overlay-app-registry.d.ts.map +1 -1
  389. package/components/apps/overlay-app-registry.js +3 -6
  390. package/components/apps/run-attention.d.ts +1 -1
  391. package/components/apps/surfaces/registry.d.ts +1 -1
  392. package/components/apps/useRegistryCatalog.d.ts +1 -1
  393. package/components/apps/viewer-auth.d.ts +1 -1
  394. package/components/auth/LoginView.d.ts +1 -1
  395. package/components/auth/LoginView.js +1 -1
  396. package/components/character/CharacterEditor.d.ts +4 -1
  397. package/components/character/CharacterEditor.d.ts.map +1 -1
  398. package/components/character/CharacterEditor.js +54 -14
  399. package/components/character/CharacterEditorPanels.d.ts +1 -1
  400. package/components/character/CharacterEditorPanels.d.ts.map +1 -1
  401. package/components/character/CharacterEditorPanels.js +10 -12
  402. package/components/character/CharacterExperienceWorkspace.d.ts +1 -1
  403. package/components/character/CharacterExperienceWorkspace.d.ts.map +1 -1
  404. package/components/character/CharacterExperienceWorkspace.js +10 -10
  405. package/components/character/CharacterHubView.d.ts +4 -2
  406. package/components/character/CharacterHubView.d.ts.map +1 -1
  407. package/components/character/CharacterHubView.js +57 -201
  408. package/components/character/CharacterOverviewSection.d.ts +1 -1
  409. package/components/character/CharacterOverviewSection.js +1 -1
  410. package/components/character/CharacterPersonalityTimeline.d.ts +1 -1
  411. package/components/character/CharacterRoster.d.ts.map +1 -1
  412. package/components/character/CharacterRoster.helpers.d.ts +1 -1
  413. package/components/character/CharacterRoster.js +2 -10
  414. package/components/character/MusicLibraryCharacterWidget.d.ts +1 -1
  415. package/components/character/character-editor-helpers.d.ts +2 -2
  416. package/components/character/character-hub-helpers.d.ts +2 -2
  417. package/components/character/character-voice-config.d.ts +2 -2
  418. package/components/character/useCharacterHubData.d.ts +41 -0
  419. package/components/character/useCharacterHubData.d.ts.map +1 -0
  420. package/components/character/useCharacterHubData.js +112 -0
  421. package/components/chat/AccountRequiredCard.d.ts +1 -1
  422. package/components/chat/AgentActivityBox.d.ts +1 -1
  423. package/components/chat/AgentActivityBox.d.ts.map +1 -1
  424. package/components/chat/AgentActivityBox.js +28 -17
  425. package/components/chat/AppsSection.d.ts.map +1 -1
  426. package/components/chat/AppsSection.js +13 -14
  427. package/components/chat/ConnectorAccountPicker.d.ts +1 -1
  428. package/components/chat/InlineWidgetText.d.ts +6 -0
  429. package/components/chat/InlineWidgetText.d.ts.map +1 -0
  430. package/components/chat/InlineWidgetText.js +99 -0
  431. package/components/chat/MessageAttachments.d.ts +22 -3
  432. package/components/chat/MessageAttachments.d.ts.map +1 -1
  433. package/components/chat/MessageAttachments.js +381 -14
  434. package/components/chat/MessageContent.d.ts +17 -2
  435. package/components/chat/MessageContent.d.ts.map +1 -1
  436. package/components/chat/MessageContent.js +163 -467
  437. package/components/chat/SaveCommandModal.js +2 -2
  438. package/components/chat/TasksEventsPanel.d.ts +1 -1
  439. package/components/chat/TasksEventsPanel.js +2 -2
  440. package/components/chat/TranscriptViewerOverlay.d.ts +32 -0
  441. package/components/chat/TranscriptViewerOverlay.d.ts.map +1 -0
  442. package/components/chat/TranscriptViewerOverlay.js +329 -0
  443. package/components/chat/WidgetVisibilityPanel.d.ts +3 -3
  444. package/components/chat/WidgetVisibilityPanel.d.ts.map +1 -1
  445. package/components/chat/WidgetVisibilityPanel.helpers.d.ts +1 -1
  446. package/components/chat/connector-send-as.d.ts +1 -1
  447. package/components/chat/message-choice-parser.d.ts +1 -1
  448. package/components/chat/message-choice-parser.d.ts.map +1 -1
  449. package/components/chat/message-choice-parser.js +1 -1
  450. package/components/chat/message-parser-helpers.d.ts +139 -0
  451. package/components/chat/message-parser-helpers.d.ts.map +1 -0
  452. package/components/chat/message-parser-helpers.js +490 -0
  453. package/components/chat/widgets/ChoiceWidget.js +1 -1
  454. package/components/chat/widgets/agent-orchestrator-accounts-view.d.ts +3 -3
  455. package/components/chat/widgets/agent-orchestrator.d.ts +1 -1
  456. package/components/chat/widgets/agent-orchestrator.d.ts.map +1 -1
  457. package/components/chat/widgets/agent-orchestrator.js +60 -39
  458. package/components/chat/widgets/browser-launch-widget.d.ts +19 -0
  459. package/components/chat/widgets/browser-launch-widget.d.ts.map +1 -0
  460. package/components/chat/widgets/browser-launch-widget.js +38 -0
  461. package/components/chat/widgets/browser-status.d.ts +1 -1
  462. package/components/chat/widgets/browser-status.d.ts.map +1 -1
  463. package/components/chat/widgets/browser-status.helpers.d.ts +1 -1
  464. package/components/chat/widgets/browser-status.js +17 -27
  465. package/components/chat/widgets/calendar-upcoming.d.ts +17 -0
  466. package/components/chat/widgets/calendar-upcoming.d.ts.map +1 -0
  467. package/components/chat/widgets/calendar-upcoming.js +149 -0
  468. package/components/chat/widgets/credential-request-widget.d.ts +40 -0
  469. package/components/chat/widgets/credential-request-widget.d.ts.map +1 -0
  470. package/components/chat/widgets/credential-request-widget.js +52 -0
  471. package/components/chat/widgets/finances-alerts.d.ts +17 -0
  472. package/components/chat/widgets/finances-alerts.d.ts.map +1 -0
  473. package/components/chat/widgets/finances-alerts.js +214 -0
  474. package/components/chat/widgets/followups.d.ts +1 -1
  475. package/components/chat/widgets/form-request.d.ts +1 -1
  476. package/components/chat/widgets/goals-attention.d.ts +17 -0
  477. package/components/chat/widgets/goals-attention.d.ts.map +1 -0
  478. package/components/chat/widgets/goals-attention.js +155 -0
  479. package/components/chat/widgets/health-sleep.d.ts +18 -0
  480. package/components/chat/widgets/health-sleep.d.ts.map +1 -0
  481. package/components/chat/widgets/health-sleep.js +159 -0
  482. package/components/chat/widgets/home-widget-card.d.ts +47 -0
  483. package/components/chat/widgets/home-widget-card.d.ts.map +1 -0
  484. package/components/chat/widgets/home-widget-card.js +64 -0
  485. package/components/chat/widgets/inbox-unread.d.ts +10 -0
  486. package/components/chat/widgets/inbox-unread.d.ts.map +1 -0
  487. package/components/chat/widgets/inbox-unread.js +119 -0
  488. package/components/chat/widgets/inline-registry.d.ts +1 -1
  489. package/components/chat/widgets/messages.d.ts +8 -0
  490. package/components/chat/widgets/messages.d.ts.map +1 -0
  491. package/components/chat/widgets/messages.js +38 -0
  492. package/components/chat/widgets/music-player.d.ts +1 -1
  493. package/components/chat/widgets/music-player.helpers.d.ts +1 -1
  494. package/components/chat/widgets/needs-attention.d.ts +22 -0
  495. package/components/chat/widgets/needs-attention.d.ts.map +1 -0
  496. package/components/chat/widgets/needs-attention.js +109 -0
  497. package/components/chat/widgets/notifications.d.ts +9 -0
  498. package/components/chat/widgets/notifications.d.ts.map +1 -0
  499. package/components/chat/widgets/notifications.js +42 -0
  500. package/components/chat/widgets/orchestrator-grilling-card.d.ts +24 -0
  501. package/components/chat/widgets/orchestrator-grilling-card.d.ts.map +1 -0
  502. package/components/chat/widgets/orchestrator-grilling-card.js +57 -0
  503. package/components/chat/widgets/relationships-attention.d.ts +18 -0
  504. package/components/chat/widgets/relationships-attention.d.ts.map +1 -0
  505. package/components/chat/widgets/relationships-attention.js +135 -0
  506. package/components/chat/widgets/shared.js +2 -2
  507. package/components/chat/widgets/task-widget.js +1 -1
  508. package/components/chat/widgets/todo.d.ts +1 -1
  509. package/components/chat/widgets/todo.d.ts.map +1 -1
  510. package/components/chat/widgets/todo.js +39 -10
  511. package/components/chat/widgets/topic-chips-bar.d.ts +23 -0
  512. package/components/chat/widgets/topic-chips-bar.d.ts.map +1 -0
  513. package/components/chat/widgets/topic-chips-bar.js +22 -0
  514. package/components/chat/widgets/topic-grouped-transcript.d.ts +20 -0
  515. package/components/chat/widgets/topic-grouped-transcript.d.ts.map +1 -0
  516. package/components/chat/widgets/topic-grouped-transcript.js +45 -0
  517. package/components/chat/widgets/types.d.ts +5 -2
  518. package/components/chat/widgets/types.d.ts.map +1 -1
  519. package/components/chat/widgets/use-inline-widget-context.d.ts +18 -0
  520. package/components/chat/widgets/use-inline-widget-context.d.ts.map +1 -0
  521. package/components/chat/widgets/use-inline-widget-context.js +46 -0
  522. package/components/cloud/CloudSourceControls.js +2 -2
  523. package/components/cloud/CloudStatusBadge.js +2 -2
  524. package/components/cloud/FlaminaGuide.d.ts +1 -1
  525. package/components/cloud/FlaminaGuide.d.ts.map +1 -1
  526. package/components/cloud/FlaminaGuide.js +10 -5
  527. package/components/companion/injected.d.ts +1 -1
  528. package/components/companion/injected.hooks.d.ts +1 -1
  529. package/components/composites/chat/ChatVoiceStatusBar.d.ts +2 -2
  530. package/components/composites/chat/ChatVoiceStatusBar.js +1 -1
  531. package/components/composites/chat/ContinuousChatToggle.d.ts +1 -1
  532. package/components/composites/chat/ContinuousChatToggle.js +1 -1
  533. package/components/composites/chat/chat-attachment-strip.d.ts +1 -1
  534. package/components/composites/chat/chat-attachment-strip.js +1 -1
  535. package/components/composites/chat/chat-composer-shell.d.ts +1 -1
  536. package/components/composites/chat/chat-composer.d.ts +10 -4
  537. package/components/composites/chat/chat-composer.d.ts.map +1 -1
  538. package/components/composites/chat/chat-composer.js +14 -14
  539. package/components/composites/chat/chat-conversation-item.d.ts +2 -2
  540. package/components/composites/chat/chat-conversation-item.d.ts.map +1 -1
  541. package/components/composites/chat/chat-conversation-item.js +8 -8
  542. package/components/composites/chat/chat-empty-state.d.ts +1 -1
  543. package/components/composites/chat/chat-message-actions.d.ts +1 -1
  544. package/components/composites/chat/chat-message.d.ts +10 -2
  545. package/components/composites/chat/chat-message.d.ts.map +1 -1
  546. package/components/composites/chat/chat-message.js +4 -2
  547. package/components/composites/chat/chat-source.d.ts +2 -2
  548. package/components/composites/chat/chat-source.helpers.d.ts +1 -1
  549. package/components/composites/chat/chat-thread-layout.d.ts +1 -1
  550. package/components/composites/chat/chat-thread-layout.d.ts.map +1 -1
  551. package/components/composites/chat/chat-thread-layout.js +2 -2
  552. package/components/composites/chat/chat-transcript.d.ts +6 -2
  553. package/components/composites/chat/chat-transcript.d.ts.map +1 -1
  554. package/components/composites/chat/chat-transcript.js +18 -3
  555. package/components/composites/chat/chat-types.d.ts +2 -0
  556. package/components/composites/chat/chat-types.d.ts.map +1 -1
  557. package/components/composites/chat/chat-typing-indicator.d.ts +1 -1
  558. package/components/composites/chat/index.d.ts +16 -16
  559. package/components/composites/chat/permission-card.d.ts +1 -1
  560. package/components/composites/chat/permission-card.render.d.ts +2 -2
  561. package/components/composites/code/DiffReviewPanel.d.ts +1 -1
  562. package/components/composites/code/index.d.ts +1 -1
  563. package/components/composites/form-field/index.d.ts +1 -1
  564. package/components/composites/index.d.ts +29 -29
  565. package/components/composites/page-panel/index.d.ts +19 -19
  566. package/components/composites/page-panel/page-panel-collapsible-section.d.ts +1 -1
  567. package/components/composites/page-panel/page-panel-collapsible-section.d.ts.map +1 -1
  568. package/components/composites/page-panel/page-panel-collapsible-section.js +2 -2
  569. package/components/composites/page-panel/page-panel-empty.d.ts +1 -1
  570. package/components/composites/page-panel/page-panel-empty.d.ts.map +1 -1
  571. package/components/composites/page-panel/page-panel-empty.js +4 -4
  572. package/components/composites/page-panel/page-panel-feature-empty.d.ts +1 -1
  573. package/components/composites/page-panel/page-panel-frame.d.ts +1 -1
  574. package/components/composites/page-panel/page-panel-frame.d.ts.map +1 -1
  575. package/components/composites/page-panel/page-panel-frame.js +1 -1
  576. package/components/composites/page-panel/page-panel-header.d.ts +1 -1
  577. package/components/composites/page-panel/page-panel-header.d.ts.map +1 -1
  578. package/components/composites/page-panel/page-panel-header.js +9 -9
  579. package/components/composites/page-panel/page-panel-loading.d.ts +1 -1
  580. package/components/composites/page-panel/page-panel-loading.d.ts.map +1 -1
  581. package/components/composites/page-panel/page-panel-loading.js +3 -3
  582. package/components/composites/page-panel/page-panel-root.d.ts +2 -2
  583. package/components/composites/page-panel/page-panel-root.js +7 -7
  584. package/components/composites/page-panel/page-panel-toolbar.d.ts +1 -1
  585. package/components/composites/page-panel/page-panel-types.d.ts +1 -1
  586. package/components/composites/search/index.d.ts +1 -1
  587. package/components/composites/search/searchbar.js +1 -1
  588. package/components/composites/sidebar/index.d.ts +10 -10
  589. package/components/composites/sidebar/sidebar-auto-rail.d.ts +1 -1
  590. package/components/composites/sidebar/sidebar-body.d.ts +1 -1
  591. package/components/composites/sidebar/sidebar-collapsed-rail.d.ts +1 -1
  592. package/components/composites/sidebar/sidebar-content.js +3 -3
  593. package/components/composites/sidebar/sidebar-header-stack.d.ts +1 -1
  594. package/components/composites/sidebar/sidebar-header.d.ts +1 -1
  595. package/components/composites/sidebar/sidebar-panel.d.ts +1 -1
  596. package/components/composites/sidebar/sidebar-root.d.ts +1 -1
  597. package/components/composites/sidebar/sidebar-root.d.ts.map +1 -1
  598. package/components/composites/sidebar/sidebar-root.js +34 -8
  599. package/components/composites/sidebar/sidebar-scroll-region.d.ts +1 -1
  600. package/components/composites/skills/index.d.ts +1 -1
  601. package/components/composites/trajectories/index.d.ts +7 -7
  602. package/components/composites/trajectories/trajectory-code-block.d.ts.map +1 -1
  603. package/components/composites/trajectories/trajectory-code-block.js +3 -2
  604. package/components/composites/trajectories/trajectory-pipeline-graph.js +3 -3
  605. package/components/config-ui/config-control-primitives.helpers.js +2 -2
  606. package/components/config-ui/config-field.d.ts +1 -1
  607. package/components/config-ui/config-field.helpers.d.ts +1 -1
  608. package/components/config-ui/config-field.helpers.d.ts.map +1 -1
  609. package/components/config-ui/config-field.helpers.js +33 -20
  610. package/components/config-ui/config-field.js +2 -2
  611. package/components/config-ui/config-renderer.d.ts +2 -2
  612. package/components/config-ui/config-renderer.helpers.d.ts +2 -2
  613. package/components/config-ui/config-renderer.js +6 -6
  614. package/components/config-ui/index.d.ts +7 -7
  615. package/components/config-ui/ui-renderer.d.ts +1 -1
  616. package/components/config-ui/ui-renderer.d.ts.map +1 -1
  617. package/components/config-ui/ui-renderer.helpers.d.ts +1 -1
  618. package/components/config-ui/ui-renderer.js +15 -8
  619. package/components/connectors/BlueBubblesStatusPanel.d.ts.map +1 -1
  620. package/components/connectors/BlueBubblesStatusPanel.js +11 -24
  621. package/components/connectors/ConnectorAccountAuditList.d.ts.map +1 -1
  622. package/components/connectors/ConnectorAccountAuditList.js +19 -32
  623. package/components/connectors/ConnectorAccountCard.d.ts +1 -1
  624. package/components/connectors/ConnectorAccountList.d.ts +2 -2
  625. package/components/connectors/ConnectorAccountPrivacySelector.d.ts +1 -1
  626. package/components/connectors/ConnectorAccountPurposeSelector.d.ts +1 -1
  627. package/components/connectors/ConnectorModeSelector.d.ts +1 -1
  628. package/components/connectors/ConnectorModeSelector.helpers.d.ts +1 -1
  629. package/components/connectors/ConnectorModeSelector.hooks.d.ts +1 -1
  630. package/components/connectors/ConnectorModeSelector.js +2 -2
  631. package/components/connectors/ConnectorQrPairingOverlay.js +2 -2
  632. package/components/connectors/DiscordLocalConnectorPanel.js +2 -2
  633. package/components/connectors/IMessageStatusPanel.js +2 -2
  634. package/components/connectors/SignalQrOverlay.js +2 -2
  635. package/components/connectors/TelegramAccountConnectorPanel.js +4 -4
  636. package/components/connectors/TelegramBotSetupPanel.js +3 -3
  637. package/components/connectors/WhatsAppQrOverlay.js +2 -2
  638. package/components/connectors/XRPairingPanel.d.ts.map +1 -1
  639. package/components/connectors/XRPairingPanel.js +6 -3
  640. package/components/connectors/connector-account-options.d.ts +1 -1
  641. package/components/conversations/ConversationRenameDialog.d.ts.map +1 -1
  642. package/components/conversations/ConversationRenameDialog.js +4 -2
  643. package/components/conversations/ConversationsSidebar.d.ts.map +1 -1
  644. package/components/conversations/ConversationsSidebar.js +18 -3
  645. package/components/conversations/conversation-sidebar-model.d.ts +2 -2
  646. package/components/conversations/conversation-utils.d.ts +1 -1
  647. package/components/custom-actions/CustomActionEditor.js +2 -2
  648. package/components/custom-actions/CustomActionsPanel.d.ts.map +1 -1
  649. package/components/custom-actions/CustomActionsPanel.js +16 -5
  650. package/components/custom-actions/CustomActionsView.js +3 -3
  651. package/components/custom-actions/custom-action-form.d.ts +4 -4
  652. package/components/custom-actions/custom-action-form.d.ts.map +1 -1
  653. package/components/custom-actions/custom-action-form.js +2 -2
  654. package/components/desktop/DesktopTabBar.d.ts +2 -2
  655. package/components/desktop/DesktopTabBar.js +4 -4
  656. package/components/index.d.ts +161 -156
  657. package/components/index.d.ts.map +1 -1
  658. package/components/index.js +9 -1
  659. package/components/local-inference/ActiveModelBar.d.ts +1 -1
  660. package/components/local-inference/DeviceBridgeStatus.d.ts +1 -1
  661. package/components/local-inference/DevicesPanel.d.ts +1 -1
  662. package/components/local-inference/DownloadProgress.d.ts +1 -1
  663. package/components/local-inference/DownloadProgress.d.ts.map +1 -1
  664. package/components/local-inference/DownloadProgress.js +1 -3
  665. package/components/local-inference/DownloadQueue.d.ts +8 -2
  666. package/components/local-inference/DownloadQueue.d.ts.map +1 -1
  667. package/components/local-inference/DownloadQueue.js +3 -3
  668. package/components/local-inference/FirstRunOffer.d.ts +1 -1
  669. package/components/local-inference/HardwareBadge.d.ts +1 -1
  670. package/components/local-inference/LocalInferencePanel.d.ts +1 -1
  671. package/components/local-inference/LocalInferencePanel.d.ts.map +1 -1
  672. package/components/local-inference/LocalInferencePanel.js +18 -51
  673. package/components/local-inference/ModelCard.d.ts +1 -1
  674. package/components/local-inference/ModelCard.d.ts.map +1 -1
  675. package/components/local-inference/ModelCard.js +6 -5
  676. package/components/local-inference/ModelHubView.d.ts +1 -1
  677. package/components/local-inference/ModelHubView.d.ts.map +1 -1
  678. package/components/local-inference/ModelHubView.js +10 -6
  679. package/components/local-inference/RoutingMatrix.d.ts.map +1 -1
  680. package/components/local-inference/RoutingMatrix.js +115 -40
  681. package/components/local-inference/SlotAssignments.d.ts +1 -1
  682. package/components/local-inference/SlotAssignments.d.ts.map +1 -1
  683. package/components/local-inference/SlotAssignments.js +27 -10
  684. package/components/local-inference/hub-utils.d.ts +2 -1
  685. package/components/local-inference/hub-utils.d.ts.map +1 -1
  686. package/components/local-inference/hub-utils.js +2 -0
  687. package/components/local-inference/runtime-class-ui.d.ts +44 -0
  688. package/components/local-inference/runtime-class-ui.d.ts.map +1 -0
  689. package/components/local-inference/runtime-class-ui.js +61 -0
  690. package/components/local-inference/slot-metadata.d.ts +1 -1
  691. package/components/local-inference/useDeviceBridgeStatus.d.ts +1 -1
  692. package/components/local-inference/useDeviceBridgeStatus.d.ts.map +1 -1
  693. package/components/local-inference/useDeviceBridgeStatus.js +17 -12
  694. package/components/local-inference/useHomeModelStatus.d.ts +1 -1
  695. package/components/local-inference/useHomeModelStatus.d.ts.map +1 -1
  696. package/components/local-inference/useHomeModelStatus.js +15 -10
  697. package/components/pages/AppDetailsView.d.ts +1 -1
  698. package/components/pages/AppDetailsView.d.ts.map +1 -1
  699. package/components/pages/AppDetailsView.helpers.d.ts +1 -1
  700. package/components/pages/AppDetailsView.js +15 -3
  701. package/components/pages/AppsPageView.d.ts.map +1 -1
  702. package/components/pages/AppsPageView.js +7 -2
  703. package/components/pages/AppsView.d.ts.map +1 -1
  704. package/components/pages/AppsView.js +35 -8
  705. package/components/pages/AutomationsFeed.d.ts +1 -1
  706. package/components/pages/AutomationsFeed.d.ts.map +1 -1
  707. package/components/pages/AutomationsFeed.js +3 -7
  708. package/components/pages/BackgroundView.d.ts +10 -0
  709. package/components/pages/BackgroundView.d.ts.map +1 -0
  710. package/components/pages/BackgroundView.js +14 -0
  711. package/components/pages/BrowserWorkspaceView.d.ts.map +1 -1
  712. package/components/pages/BrowserWorkspaceView.js +13 -8
  713. package/components/pages/CameraPageView.js +2 -2
  714. package/components/pages/ChatView.d.ts +1 -1
  715. package/components/pages/ChatView.d.ts.map +1 -1
  716. package/components/pages/ChatView.js +186 -29
  717. package/components/pages/ConfigPageView.d.ts.map +1 -1
  718. package/components/pages/ConfigPageView.js +11 -2
  719. package/components/pages/DatabasePageView.d.ts.map +1 -1
  720. package/components/pages/DatabasePageView.js +4 -2
  721. package/components/pages/DatabaseView.d.ts.map +1 -1
  722. package/components/pages/DatabaseView.js +14 -12
  723. package/components/pages/DocumentsView.d.ts +2 -2
  724. package/components/pages/DocumentsView.d.ts.map +1 -1
  725. package/components/pages/DocumentsView.js +20 -20
  726. package/components/pages/ElizaCloudDashboard.d.ts.map +1 -1
  727. package/components/pages/ElizaCloudDashboard.js +20 -2
  728. package/components/pages/ElizaOsAppsView.d.ts.map +1 -1
  729. package/components/pages/ElizaOsAppsView.js +29 -22
  730. package/components/pages/FilesView.d.ts +15 -0
  731. package/components/pages/FilesView.d.ts.map +1 -0
  732. package/components/pages/FilesView.js +201 -0
  733. package/components/pages/GeneratedViewHero.js +1 -1
  734. package/components/pages/HeartbeatForm.d.ts +3 -3
  735. package/components/pages/HeartbeatsView.d.ts.map +1 -1
  736. package/components/pages/HeartbeatsView.js +21 -6
  737. package/components/pages/LogsView.d.ts +0 -6
  738. package/components/pages/LogsView.d.ts.map +1 -1
  739. package/components/pages/LogsView.js +41 -25
  740. package/components/pages/MediaGalleryView.d.ts.map +1 -1
  741. package/components/pages/MediaGalleryView.js +59 -11
  742. package/components/pages/MemoryDetailPanel.d.ts +1 -1
  743. package/components/pages/MemoryDetailPanel.d.ts.map +1 -1
  744. package/components/pages/MemoryDetailPanel.js +8 -3
  745. package/components/pages/MemoryViewerView.d.ts.map +1 -1
  746. package/components/pages/MemoryViewerView.js +33 -24
  747. package/components/pages/PluginCard.d.ts +2 -2
  748. package/components/pages/PluginCard.d.ts.map +1 -1
  749. package/components/pages/PluginCard.js +6 -5
  750. package/components/pages/PluginConfigForm.d.ts +1 -1
  751. package/components/pages/PluginConfigForm.js +2 -2
  752. package/components/pages/PluginVisual.d.ts +1 -1
  753. package/components/pages/PluginsView.d.ts +1 -1
  754. package/components/pages/PluginsView.d.ts.map +1 -1
  755. package/components/pages/PluginsView.js +33 -13
  756. package/components/pages/RelationshipsGraphPanel.d.ts +1 -1
  757. package/components/pages/RelationshipsGraphPanel.js +2 -2
  758. package/components/pages/RelationshipsIdentityCluster.d.ts +1 -1
  759. package/components/pages/ReleaseCenterView.d.ts.map +1 -1
  760. package/components/pages/ReleaseCenterView.js +11 -9
  761. package/components/pages/RuntimeView.d.ts.map +1 -1
  762. package/components/pages/RuntimeView.js +13 -12
  763. package/components/pages/SecretsView.d.ts.map +1 -1
  764. package/components/pages/SecretsView.js +21 -18
  765. package/components/pages/SettingsView.d.ts.map +1 -1
  766. package/components/pages/SettingsView.js +34 -14
  767. package/components/pages/SkillsView.d.ts.map +1 -1
  768. package/components/pages/SkillsView.js +47 -11
  769. package/components/pages/Springboard.d.ts +49 -0
  770. package/components/pages/Springboard.d.ts.map +1 -0
  771. package/components/pages/Springboard.js +238 -0
  772. package/components/pages/SpringboardSurface.d.ts +6 -0
  773. package/components/pages/SpringboardSurface.d.ts.map +1 -0
  774. package/components/pages/SpringboardSurface.js +120 -0
  775. package/components/pages/SqlEditorPanel.d.ts +1 -1
  776. package/components/pages/SqlEditorPanel.js +5 -5
  777. package/components/pages/StreamView.d.ts.map +1 -1
  778. package/components/pages/StreamView.js +6 -7
  779. package/components/pages/TaskEditor.d.ts +3 -3
  780. package/components/pages/TrajectoriesView.d.ts.map +1 -1
  781. package/components/pages/TrajectoriesView.js +9 -9
  782. package/components/pages/TrajectoryDetailView.d.ts.map +1 -1
  783. package/components/pages/TrajectoryDetailView.js +58 -39
  784. package/components/pages/WorkflowEditor.d.ts +1 -1
  785. package/components/pages/WorkflowEditor.d.ts.map +1 -1
  786. package/components/pages/WorkflowEditor.js +13 -22
  787. package/components/pages/WorkflowGraphViewer.d.ts +1 -1
  788. package/components/pages/WorkflowGraphViewer.d.ts.map +1 -1
  789. package/components/pages/WorkflowGraphViewer.js +9 -11
  790. package/components/pages/__e2e__/background-fixture.d.ts +2 -0
  791. package/components/pages/__e2e__/background-fixture.d.ts.map +1 -0
  792. package/components/pages/__e2e__/background-fixture.js +84 -0
  793. package/components/pages/__e2e__/springboard-fixture.d.ts +2 -0
  794. package/components/pages/__e2e__/springboard-fixture.d.ts.map +1 -0
  795. package/components/pages/__e2e__/springboard-fixture.js +103 -0
  796. package/components/pages/automation-conversations.d.ts +1 -1
  797. package/components/pages/automations-missing-creds.d.ts +1 -1
  798. package/components/pages/background-image.d.ts +10 -0
  799. package/components/pages/background-image.d.ts.map +1 -0
  800. package/components/pages/background-image.js +61 -0
  801. package/components/pages/browser-workspace-wallet.d.ts +1 -1
  802. package/components/pages/chat-view-hooks.d.ts +5 -5
  803. package/components/pages/cloud-dashboard-utils.d.ts +1 -1
  804. package/components/pages/config-page-sections.d.ts +1 -1
  805. package/components/pages/config-page-sections.d.ts.map +1 -1
  806. package/components/pages/config-page-sections.js +4 -3
  807. package/components/pages/database-utils.d.ts +2 -1
  808. package/components/pages/database-utils.d.ts.map +1 -1
  809. package/components/pages/database-utils.js +38 -25
  810. package/components/pages/documents-detail.d.ts.map +1 -1
  811. package/components/pages/documents-detail.helpers.d.ts +1 -1
  812. package/components/pages/documents-detail.js +55 -8
  813. package/components/pages/documents-upload.d.ts +1 -1
  814. package/components/pages/documents-upload.d.ts.map +1 -1
  815. package/components/pages/documents-upload.helpers.d.ts +1 -1
  816. package/components/pages/documents-upload.js +5 -3
  817. package/components/pages/heartbeat-utils.d.ts +2 -2
  818. package/components/pages/help/HelpView.js +2 -2
  819. package/components/pages/help/help-content.d.ts.map +1 -1
  820. package/components/pages/help/help-content.js +7 -5
  821. package/components/pages/page-scoped-conversations.d.ts +3 -3
  822. package/components/pages/page-scoped-conversations.d.ts.map +1 -1
  823. package/components/pages/page-scoped-conversations.js +1 -18
  824. package/components/pages/plugin-list-utils.d.ts +3 -3
  825. package/components/pages/plugin-list-utils.d.ts.map +1 -1
  826. package/components/pages/plugin-list-utils.js +6 -2
  827. package/components/pages/plugin-view-connectors.d.ts +2 -2
  828. package/components/pages/plugin-view-connectors.d.ts.map +1 -1
  829. package/components/pages/plugin-view-connectors.js +7 -2
  830. package/components/pages/plugin-view-dialogs.d.ts +3 -9
  831. package/components/pages/plugin-view-dialogs.d.ts.map +1 -1
  832. package/components/pages/plugin-view-dialogs.js +1 -1
  833. package/components/pages/plugin-view-modal.d.ts +2 -2
  834. package/components/pages/plugin-view-sidebar.d.ts +2 -2
  835. package/components/pages/relationships/RelationshipsCandidateMergesPanel.d.ts +1 -1
  836. package/components/pages/relationships/RelationshipsPersonPanels.d.ts +1 -1
  837. package/components/pages/relationships/RelationshipsPersonPanels.js +1 -1
  838. package/components/pages/relationships/RelationshipsSidebar.d.ts +1 -1
  839. package/components/pages/relationships/RelationshipsWorkspaceView.d.ts.map +1 -1
  840. package/components/pages/relationships/RelationshipsWorkspaceView.js +5 -4
  841. package/components/pages/relationships/relationships-utils.d.ts +1 -1
  842. package/components/pages/skill-detail-panel.d.ts.map +1 -1
  843. package/components/pages/skill-detail-panel.js +25 -3
  844. package/components/pages/skill-marketplace.d.ts +2 -2
  845. package/components/pages/skill-marketplace.d.ts.map +1 -1
  846. package/components/pages/skill-marketplace.js +3 -3
  847. package/components/pages/tutorial/TutorialNarrator.d.ts.map +1 -1
  848. package/components/pages/tutorial/TutorialNarrator.js +3 -2
  849. package/components/pages/tutorial/TutorialOverlay.d.ts.map +1 -1
  850. package/components/pages/tutorial/TutorialOverlay.js +3 -2
  851. package/components/pages/tutorial/TutorialSpotlight.js +3 -3
  852. package/components/pages/tutorial/TutorialView.d.ts.map +1 -1
  853. package/components/pages/tutorial/TutorialView.js +3 -5
  854. package/components/pages/useBrowserWorkspaceWalletBridge.d.ts +2 -2
  855. package/components/pages/workflow-action-handoff.d.ts +1 -1
  856. package/components/permissions/StreamingPermissions.d.ts +1 -1
  857. package/components/permissions/StreamingPermissions.d.ts.map +1 -1
  858. package/components/permissions/StreamingPermissions.js +5 -6
  859. package/components/plugins/showcase-data.d.ts +1 -1
  860. package/components/policy-controls/ApprovedAddressesSection.d.ts +1 -1
  861. package/components/policy-controls/ApprovedAddressesSection.helpers.d.ts +1 -1
  862. package/components/policy-controls/AutoApproveSection.d.ts +1 -1
  863. package/components/policy-controls/AutoApproveSection.helpers.d.ts +1 -1
  864. package/components/policy-controls/RateLimitSection.d.ts +1 -1
  865. package/components/policy-controls/RateLimitSection.helpers.d.ts +1 -1
  866. package/components/policy-controls/SpendingLimitSection.d.ts +1 -1
  867. package/components/policy-controls/SpendingLimitSection.helpers.d.ts +1 -1
  868. package/components/policy-controls/TimeWindowSection.d.ts +1 -1
  869. package/components/policy-controls/TimeWindowSection.helpers.d.ts +1 -1
  870. package/components/policy-controls/constants.d.ts +1 -1
  871. package/components/policy-controls/helpers.d.ts +1 -1
  872. package/components/policy-controls/index.d.ts +14 -14
  873. package/components/primitives/index.d.ts +27 -27
  874. package/components/release-center/sections.d.ts +1 -1
  875. package/components/release-center/sections.js +7 -7
  876. package/components/release-center/shared.js +2 -2
  877. package/components/settings/AdvancedSection.d.ts.map +1 -1
  878. package/components/settings/AdvancedSection.js +20 -4
  879. package/components/settings/AdvancedToggle.js +1 -1
  880. package/components/settings/ApiKeyConfig.d.ts +2 -2
  881. package/components/settings/ApiKeyConfig.js +2 -2
  882. package/components/settings/AppPermissionsSection.d.ts.map +1 -1
  883. package/components/settings/AppPermissionsSection.js +7 -12
  884. package/components/settings/AppearanceSettingsSection.d.ts.map +1 -1
  885. package/components/settings/AppearanceSettingsSection.js +34 -5
  886. package/components/settings/AppsManagementSection.d.ts.map +1 -1
  887. package/components/settings/AppsManagementSection.js +42 -33
  888. package/components/settings/BackgroundSettingsControls.d.ts +5 -0
  889. package/components/settings/BackgroundSettingsControls.d.ts.map +1 -0
  890. package/components/settings/BackgroundSettingsControls.js +118 -0
  891. package/components/settings/CapabilitiesSection.d.ts.map +1 -1
  892. package/components/settings/CapabilitiesSection.js +115 -13
  893. package/components/settings/CloudAgentsSection.d.ts.map +1 -1
  894. package/components/settings/CloudAgentsSection.js +33 -13
  895. package/components/settings/ConnectorsSection.d.ts.map +1 -1
  896. package/components/settings/ConnectorsSection.js +8 -6
  897. package/components/settings/DesktopWorkspaceDisplay.d.ts +2 -3
  898. package/components/settings/DesktopWorkspaceDisplay.d.ts.map +1 -1
  899. package/components/settings/DesktopWorkspaceDisplay.hooks.d.ts +3 -4
  900. package/components/settings/DesktopWorkspaceDisplay.hooks.d.ts.map +1 -1
  901. package/components/settings/DesktopWorkspaceSection.d.ts.map +1 -1
  902. package/components/settings/DesktopWorkspaceSection.js +4 -2
  903. package/components/settings/IdentitySettingsSection.d.ts.map +1 -1
  904. package/components/settings/IdentitySettingsSection.js +13 -3
  905. package/components/settings/LoadContentPackForm.js +2 -2
  906. package/components/settings/LoadedPacksList.d.ts.map +1 -1
  907. package/components/settings/LoadedPacksList.js +8 -10
  908. package/components/settings/PermissionsSection.d.ts.map +1 -1
  909. package/components/settings/PermissionsSection.js +10 -32
  910. package/components/settings/PolicyControlsView.d.ts.map +1 -1
  911. package/components/settings/PolicyControlsView.js +8 -10
  912. package/components/settings/ProviderCard.d.ts +3 -5
  913. package/components/settings/ProviderCard.d.ts.map +1 -1
  914. package/components/settings/ProviderCard.js +4 -6
  915. package/components/settings/ProviderPanels.d.ts +4 -15
  916. package/components/settings/ProviderPanels.d.ts.map +1 -1
  917. package/components/settings/ProviderPanels.js +11 -17
  918. package/components/settings/ProviderRoutingPanel.d.ts +1 -1
  919. package/components/settings/ProviderRoutingPanel.d.ts.map +1 -1
  920. package/components/settings/ProviderRoutingPanel.js +4 -8
  921. package/components/settings/ProviderSwitcher.d.ts +1 -1
  922. package/components/settings/ProviderSwitcher.d.ts.map +1 -1
  923. package/components/settings/ProviderSwitcher.js +31 -32
  924. package/components/settings/RemotePluginHostSection.d.ts.map +1 -1
  925. package/components/settings/RemotePluginHostSection.js +13 -27
  926. package/components/settings/RuntimeSettingsSection.d.ts.map +1 -1
  927. package/components/settings/RuntimeSettingsSection.js +7 -18
  928. package/components/settings/SecretsManagerSection.d.ts +1 -1
  929. package/components/settings/SecretsManagerSection.d.ts.map +1 -1
  930. package/components/settings/SecretsManagerSection.js +3 -3
  931. package/components/settings/SecuritySettingsSection.d.ts.map +1 -1
  932. package/components/settings/SecuritySettingsSection.js +49 -57
  933. package/components/settings/SubscriptionStatus.d.ts +1 -1
  934. package/components/settings/SubscriptionStatus.js +4 -4
  935. package/components/settings/VaultInventoryPanel.d.ts +1 -1
  936. package/components/settings/VaultInventoryPanel.d.ts.map +1 -1
  937. package/components/settings/VaultInventoryPanel.js +26 -22
  938. package/components/settings/VoiceConfigView.d.ts.map +1 -1
  939. package/components/settings/VoiceConfigView.helpers.d.ts +1 -1
  940. package/components/settings/VoiceConfigView.js +25 -21
  941. package/components/settings/VoiceProfileSection.d.ts +2 -4
  942. package/components/settings/VoiceProfileSection.d.ts.map +1 -1
  943. package/components/settings/VoiceProfileSection.js +57 -34
  944. package/components/settings/VoiceSection.d.ts +8 -7
  945. package/components/settings/VoiceSection.d.ts.map +1 -1
  946. package/components/settings/VoiceSection.helpers.d.ts +1 -1
  947. package/components/settings/VoiceSection.helpers.d.ts.map +1 -1
  948. package/components/settings/VoiceSection.helpers.js +0 -1
  949. package/components/settings/VoiceSection.js +21 -57
  950. package/components/settings/VoiceSectionMount.d.ts.map +1 -1
  951. package/components/settings/VoiceSectionMount.js +16 -7
  952. package/components/settings/VoiceTierBanner.d.ts.map +1 -1
  953. package/components/settings/VoiceTierBanner.helpers.d.ts +1 -1
  954. package/components/settings/VoiceTierBanner.js +13 -19
  955. package/components/settings/WalletKeysSection.d.ts.map +1 -1
  956. package/components/settings/WalletKeysSection.js +3 -9
  957. package/components/settings/cloud-model-schema.d.ts +3 -3
  958. package/components/settings/desktop-workspace-audit-config.d.ts +1 -1
  959. package/components/settings/permission-controls.d.ts +2 -2
  960. package/components/settings/permission-controls.hooks.d.ts +1 -1
  961. package/components/settings/permission-controls.js +3 -3
  962. package/components/settings/permission-types.d.ts +1 -1
  963. package/components/settings/permission-types.js +8 -8
  964. package/components/settings/settings-agent-rows.d.ts +26 -2
  965. package/components/settings/settings-agent-rows.d.ts.map +1 -1
  966. package/components/settings/settings-agent-rows.js +29 -1
  967. package/components/settings/settings-control-primitives.d.ts +1 -1
  968. package/components/settings/settings-layout.d.ts +9 -3
  969. package/components/settings/settings-layout.d.ts.map +1 -1
  970. package/components/settings/settings-layout.js +8 -6
  971. package/components/settings/settings-section-registry.d.ts +19 -1
  972. package/components/settings/settings-section-registry.d.ts.map +1 -1
  973. package/components/settings/settings-sections.d.ts +3 -3
  974. package/components/settings/settings-sections.d.ts.map +1 -1
  975. package/components/settings/settings-sections.js +11 -4
  976. package/components/settings/useCloudModelConfig.d.ts +2 -2
  977. package/components/settings/useDesktopWindowControls.d.ts +3 -4
  978. package/components/settings/useDesktopWindowControls.d.ts.map +1 -1
  979. package/components/settings/useProviderBootstrap.d.ts +2 -2
  980. package/components/settings/useProviderEntries.d.ts +4 -4
  981. package/components/settings/useProviderSelection.d.ts +1 -1
  982. package/components/settings/useProviderSelection.d.ts.map +1 -1
  983. package/components/settings/useProviderSelection.js +9 -5
  984. package/components/settings/vault-tabs/OverviewTab.d.ts +1 -1
  985. package/components/settings/vault-tabs/OverviewTab.d.ts.map +1 -1
  986. package/components/settings/vault-tabs/OverviewTab.js +7 -1
  987. package/components/settings/vault-tabs/RoutingTab.d.ts +1 -1
  988. package/components/settings/vault-tabs/RoutingTab.d.ts.map +1 -1
  989. package/components/settings/vault-tabs/RoutingTab.js +41 -14
  990. package/components/settings/vault-tabs/SecretsTab.d.ts +1 -1
  991. package/components/settings/vault-tabs/SecretsTab.d.ts.map +1 -1
  992. package/components/settings/vault-tabs/SecretsTab.js +3 -1
  993. package/components/setup/BootstrapStep.d.ts +1 -1
  994. package/components/setup/BootstrapStep.d.ts.map +1 -1
  995. package/components/setup/BootstrapStep.js +1 -2
  996. package/components/setup/setup-classes.d.ts +2 -2
  997. package/components/setup/setup-classes.d.ts.map +1 -1
  998. package/components/setup/setup-classes.js +2 -2
  999. package/components/shared/AppPageSidebar.d.ts +1 -1
  1000. package/components/shared/AppPageSidebar.js +1 -1
  1001. package/components/shared/CollapsibleSidebarSection.js +1 -1
  1002. package/components/shared/LanguageDropdown.d.ts +1 -1
  1003. package/components/shared/LanguageDropdown.d.ts.map +1 -1
  1004. package/components/shared/LanguageDropdown.helpers.d.ts +1 -1
  1005. package/components/shared/LanguageDropdown.js +4 -7
  1006. package/components/shared/ThemeToggle.d.ts +1 -1
  1007. package/components/shared/ThemeToggle.js +2 -2
  1008. package/components/shared/confirm-delete-control.js +2 -2
  1009. package/components/shell/ActionBanner.d.ts.map +1 -1
  1010. package/components/shell/ActionBanner.js +3 -2
  1011. package/components/shell/AssistantOverlay.d.ts +1 -1
  1012. package/components/shell/AssistantOverlay.js +3 -3
  1013. package/components/shell/BugReportModal.d.ts.map +1 -1
  1014. package/components/shell/BugReportModal.js +6 -5
  1015. package/components/shell/ChatSurface.d.ts +1 -1
  1016. package/components/shell/ChatSurface.d.ts.map +1 -1
  1017. package/components/shell/ChatSurface.js +7 -2
  1018. package/components/shell/CloudHandoffBanner.d.ts +3 -2
  1019. package/components/shell/CloudHandoffBanner.d.ts.map +1 -1
  1020. package/components/shell/CloudHandoffBanner.js +9 -10
  1021. package/components/shell/CommandPalette.d.ts.map +1 -1
  1022. package/components/shell/CommandPalette.js +57 -5
  1023. package/components/shell/ComputerUseApprovalOverlay.d.ts.map +1 -1
  1024. package/components/shell/ComputerUseApprovalOverlay.js +10 -8
  1025. package/components/shell/ConnectionFailedBanner.d.ts.map +1 -1
  1026. package/components/shell/ConnectionFailedBanner.js +8 -3
  1027. package/components/shell/ConnectionLostOverlay.d.ts.map +1 -1
  1028. package/components/shell/ConnectionLostOverlay.js +7 -2
  1029. package/components/shell/ContinuousChatOverlay.d.ts +2 -2
  1030. package/components/shell/ContinuousChatOverlay.d.ts.map +1 -1
  1031. package/components/shell/ContinuousChatOverlay.js +620 -168
  1032. package/components/shell/HomePill.d.ts +1 -1
  1033. package/components/shell/HomePill.js +1 -1
  1034. package/components/shell/HomeScreen.d.ts +18 -6
  1035. package/components/shell/HomeScreen.d.ts.map +1 -1
  1036. package/components/shell/HomeScreen.js +84 -94
  1037. package/components/shell/HomeSpringboardSurface.d.ts +21 -0
  1038. package/components/shell/HomeSpringboardSurface.d.ts.map +1 -0
  1039. package/components/shell/HomeSpringboardSurface.js +134 -0
  1040. package/components/shell/KioskViewCanvas.d.ts +1 -1
  1041. package/components/shell/LoadingScreen.d.ts +1 -1
  1042. package/components/shell/LoadingScreen.d.ts.map +1 -1
  1043. package/components/shell/LoadingScreen.js +29 -6
  1044. package/components/shell/NotificationCenter.d.ts.map +1 -1
  1045. package/components/shell/NotificationCenter.js +52 -20
  1046. package/components/shell/PairingCommandHint.d.ts.map +1 -1
  1047. package/components/shell/PairingCommandHint.js +4 -2
  1048. package/components/shell/PairingView.d.ts.map +1 -1
  1049. package/components/shell/PairingView.js +11 -2
  1050. package/components/shell/RestartBanner.d.ts.map +1 -1
  1051. package/components/shell/RestartBanner.js +9 -3
  1052. package/components/shell/ShellControllerContext.hooks.d.ts +1 -1
  1053. package/components/shell/ShellHeaderControls.d.ts +3 -3
  1054. package/components/shell/ShellHeaderControls.d.ts.map +1 -1
  1055. package/components/shell/ShellHeaderControls.js +2 -2
  1056. package/components/shell/ShellOverlays.d.ts +1 -1
  1057. package/components/shell/ShellOverlays.d.ts.map +1 -1
  1058. package/components/shell/ShellOverlays.js +19 -4
  1059. package/components/shell/ShortcutsOverlay.d.ts.map +1 -1
  1060. package/components/shell/ShortcutsOverlay.js +10 -3
  1061. package/components/shell/SlashCommandMenu.d.ts +2 -2
  1062. package/components/shell/SlashCommandMenu.d.ts.map +1 -1
  1063. package/components/shell/SlashCommandMenu.js +2 -2
  1064. package/components/shell/StartupFailureView.d.ts +1 -1
  1065. package/components/shell/StartupFailureView.js +3 -3
  1066. package/components/shell/StartupShell.d.ts +1 -1
  1067. package/components/shell/StartupShell.d.ts.map +1 -1
  1068. package/components/shell/StartupShell.js +18 -6
  1069. package/components/shell/SystemWarningBanner.d.ts.map +1 -1
  1070. package/components/shell/SystemWarningBanner.js +5 -3
  1071. package/components/shell/TopicChipsBar.d.ts +14 -0
  1072. package/components/shell/TopicChipsBar.d.ts.map +1 -0
  1073. package/components/shell/TopicChipsBar.js +18 -0
  1074. package/components/shell/TopicGroup.d.ts +21 -0
  1075. package/components/shell/TopicGroup.d.ts.map +1 -0
  1076. package/components/shell/TopicGroup.js +30 -0
  1077. package/components/shell/__e2e__/chat-ambient-fixture.js +2 -2
  1078. package/components/shell/__e2e__/chat-sheet-fixture.js +13 -1
  1079. package/components/shell/__e2e__/chatux-gesture-fixture.d.ts +13 -0
  1080. package/components/shell/__e2e__/chatux-gesture-fixture.d.ts.map +1 -0
  1081. package/components/shell/__e2e__/chatux-gesture-fixture.js +65 -0
  1082. package/components/shell/__e2e__/home-screen-fixture.api-stub.d.ts +97 -9
  1083. package/components/shell/__e2e__/home-screen-fixture.api-stub.d.ts.map +1 -1
  1084. package/components/shell/__e2e__/home-screen-fixture.api-stub.js +30 -9
  1085. package/components/shell/__e2e__/home-screen-fixture.catalog-stub.d.ts +20 -0
  1086. package/components/shell/__e2e__/home-screen-fixture.catalog-stub.d.ts.map +1 -0
  1087. package/components/shell/__e2e__/home-screen-fixture.catalog-stub.js +23 -0
  1088. package/components/shell/__e2e__/home-screen-fixture.core-stub.d.ts +3 -0
  1089. package/components/shell/__e2e__/home-screen-fixture.core-stub.d.ts.map +1 -0
  1090. package/components/shell/__e2e__/home-screen-fixture.core-stub.js +6 -0
  1091. package/components/shell/__e2e__/home-screen-fixture.js +10 -2
  1092. package/components/shell/__e2e__/home-screen-fixture.platform-stub.d.ts +3 -0
  1093. package/components/shell/__e2e__/home-screen-fixture.platform-stub.d.ts.map +1 -0
  1094. package/components/shell/__e2e__/home-screen-fixture.platform-stub.js +6 -0
  1095. package/components/shell/__e2e__/home-screen-fixture.view-kinds-stub.d.ts +5 -0
  1096. package/components/shell/__e2e__/home-screen-fixture.view-kinds-stub.d.ts.map +1 -0
  1097. package/components/shell/__e2e__/home-screen-fixture.view-kinds-stub.js +3 -0
  1098. package/components/shell/__e2e__/home-screen-fixture.views-stub.d.ts +7 -0
  1099. package/components/shell/__e2e__/home-screen-fixture.views-stub.d.ts.map +1 -1
  1100. package/components/shell/__e2e__/home-screen-fixture.views-stub.js +68 -3
  1101. package/components/shell/first-run-theme.d.ts +1 -1
  1102. package/components/shell/glass-composer.helpers.d.ts +2 -2
  1103. package/components/shell/glass-composer.helpers.d.ts.map +1 -1
  1104. package/components/shell/glass-composer.helpers.js +2 -2
  1105. package/components/shell/glass-composer.js +1 -1
  1106. package/components/shell/home-springboard-events.d.ts +7 -0
  1107. package/components/shell/home-springboard-events.d.ts.map +1 -0
  1108. package/components/shell/home-springboard-events.js +6 -0
  1109. package/components/shell/shell-state.d.ts +24 -1
  1110. package/components/shell/shell-state.d.ts.map +1 -1
  1111. package/components/shell/shell-state.js +19 -1
  1112. package/components/shell/startup-shell-types.d.ts +1 -1
  1113. package/components/shell/topic-grouping.d.ts +39 -0
  1114. package/components/shell/topic-grouping.d.ts.map +1 -0
  1115. package/components/shell/topic-grouping.js +81 -0
  1116. package/components/shell/use-conversation-reset.d.ts +14 -0
  1117. package/components/shell/use-conversation-reset.d.ts.map +1 -0
  1118. package/components/shell/use-conversation-reset.js +25 -0
  1119. package/components/shell/use-pull-gesture.d.ts +32 -7
  1120. package/components/shell/use-pull-gesture.d.ts.map +1 -1
  1121. package/components/shell/use-pull-gesture.js +146 -21
  1122. package/components/shell/usePromptSuggestions.d.ts +3 -3
  1123. package/components/shell/usePromptSuggestions.js +1 -1
  1124. package/components/shell/useShellController.d.ts +42 -19
  1125. package/components/shell/useShellController.d.ts.map +1 -1
  1126. package/components/shell/useShellController.js +189 -15
  1127. package/components/shell/useShellVoiceOutput.d.ts +1 -1
  1128. package/components/steward/injected.d.ts +1 -1
  1129. package/components/stream/StatusBar.js +5 -7
  1130. package/components/tool-events/ToolCallEventLog.d.ts +1 -1
  1131. package/components/tool-events/ToolCallEventLog.helpers.d.ts +2 -2
  1132. package/components/training/JobDetailPanel.js +2 -2
  1133. package/components/training/TrainingDashboard.js +1 -1
  1134. package/components/training/hooks/useTrainingApi.d.ts +1 -1
  1135. package/components/training/injected.d.ts +1 -1
  1136. package/components/transcripts/TranscriptBody.d.ts.map +1 -1
  1137. package/components/transcripts/TranscriptBody.js +14 -6
  1138. package/components/transcripts/index.d.ts +4 -4
  1139. package/components/ui/admin-dialog.d.ts +2 -2
  1140. package/components/ui/admin-dialog.js +2 -2
  1141. package/components/ui/badge.js +1 -1
  1142. package/components/ui/button.js +1 -1
  1143. package/components/ui/calendar.d.ts +1 -1
  1144. package/components/ui/calendar.js +3 -3
  1145. package/components/ui/carousel.d.ts +1 -1
  1146. package/components/ui/chart.js +1 -1
  1147. package/components/ui/checkbox.js +1 -1
  1148. package/components/ui/code-block.js +1 -1
  1149. package/components/ui/confirm-dialog.hooks.d.ts +1 -1
  1150. package/components/ui/connection-status.d.ts.map +1 -1
  1151. package/components/ui/connection-status.js +6 -6
  1152. package/components/ui/copy-button.d.ts.map +1 -1
  1153. package/components/ui/copy-button.js +10 -1
  1154. package/components/ui/dialog.js +1 -1
  1155. package/components/ui/dropdown-menu.js +4 -4
  1156. package/components/ui/field-switch.js +1 -1
  1157. package/components/ui/form-select.d.ts +1 -1
  1158. package/components/ui/form-select.js +2 -2
  1159. package/components/ui/grid.d.ts +1 -1
  1160. package/components/ui/input-group.d.ts +1 -1
  1161. package/components/ui/input-group.js +4 -4
  1162. package/components/ui/input.js +3 -3
  1163. package/components/ui/new-action-button.d.ts +1 -1
  1164. package/components/ui/pagination.d.ts +1 -1
  1165. package/components/ui/scroll-area.js +1 -1
  1166. package/components/ui/select.js +2 -2
  1167. package/components/ui/settings-controls.d.ts +6 -6
  1168. package/components/ui/settings-controls.d.ts.map +1 -1
  1169. package/components/ui/settings-controls.js +9 -9
  1170. package/components/ui/slider.js +1 -1
  1171. package/components/ui/stack.d.ts +2 -2
  1172. package/components/ui/status-badge.helpers.d.ts +1 -1
  1173. package/components/ui/switch.js +1 -1
  1174. package/components/ui/tabs.d.ts.map +1 -1
  1175. package/components/ui/tabs.js +2 -2
  1176. package/components/ui/textarea.js +3 -3
  1177. package/components/ui/toggle.js +1 -1
  1178. package/components/ui/tooltip-extended.js +1 -1
  1179. package/components/views/DynamicViewLoader.d.ts +12 -0
  1180. package/components/views/DynamicViewLoader.d.ts.map +1 -1
  1181. package/components/views/DynamicViewLoader.js +82 -18
  1182. package/components/views/ShellViewAgentSurface.d.ts +1 -1
  1183. package/components/views/TerminalPluginView.d.ts.map +1 -1
  1184. package/components/views/TerminalPluginView.js +0 -1
  1185. package/components/views/ViewIcon.d.ts.map +1 -1
  1186. package/components/views/ViewIcon.js +22 -4
  1187. package/components/views/ViewTileImage.d.ts +25 -0
  1188. package/components/views/ViewTileImage.d.ts.map +1 -0
  1189. package/components/views/ViewTileImage.js +52 -0
  1190. package/components/views/view-interact-registry.d.ts +1 -1
  1191. package/components/workspace/AppWorkspaceChrome.d.ts +12 -1
  1192. package/components/workspace/AppWorkspaceChrome.d.ts.map +1 -1
  1193. package/components/workspace/AppWorkspaceChrome.js +3 -3
  1194. package/config/boot-config-store.d.ts +9 -8
  1195. package/config/boot-config-store.d.ts.map +1 -1
  1196. package/config/boot-config-store.js +1 -50
  1197. package/config/branding-react.hooks.d.ts +1 -1
  1198. package/config/branding.d.ts +2 -2
  1199. package/config/config-catalog.d.ts +10 -366
  1200. package/config/config-catalog.d.ts.map +1 -1
  1201. package/config/config-catalog.js +10 -705
  1202. package/config/index.d.ts +7 -7
  1203. package/content-packs/index.d.ts +3 -3
  1204. package/events/index.d.ts +33 -63
  1205. package/events/index.d.ts.map +1 -1
  1206. package/events/index.js +41 -37
  1207. package/first-run/AgentPicker.d.ts +8 -2
  1208. package/first-run/AgentPicker.d.ts.map +1 -1
  1209. package/first-run/AgentPicker.js +4 -4
  1210. package/first-run/CompactOnboarding.d.ts.map +1 -1
  1211. package/first-run/CompactOnboarding.js +2 -2
  1212. package/first-run/deep-link-handler.d.ts +1 -1
  1213. package/first-run/ensure-store-build-workspace-folder.d.ts +1 -1
  1214. package/first-run/first-run-config.d.ts +1 -1
  1215. package/first-run/first-run.d.ts +3 -3
  1216. package/first-run/mobile-runtime-mode.d.ts +1 -1
  1217. package/first-run/pre-seed-local-runtime.d.ts +1 -1
  1218. package/first-run/setup-steps.d.ts +1 -1
  1219. package/first-run/use-first-run-controller.d.ts +3 -3
  1220. package/first-run/use-first-run-controller.d.ts.map +1 -1
  1221. package/first-run/use-first-run-controller.js +64 -68
  1222. package/genui/actions.d.ts +1 -1
  1223. package/genui/index.d.ts +8 -8
  1224. package/genui/modes.d.ts +1 -1
  1225. package/genui/pipe.d.ts +1 -1
  1226. package/genui/renderer.d.ts +1 -1
  1227. package/genui/starter-pack-demo.d.ts +1 -1
  1228. package/genui/streaming.d.ts +1 -1
  1229. package/genui/use-json-render-message.d.ts +1 -1
  1230. package/genui/use-ui-stream.d.ts +1 -1
  1231. package/genui/use-ui-stream.d.ts.map +1 -1
  1232. package/genui/use-ui-stream.js +5 -5
  1233. package/genui/validator.d.ts +1 -1
  1234. package/hooks/BugReportProvider.d.ts +1 -1
  1235. package/hooks/frame-budget.d.ts +124 -0
  1236. package/hooks/frame-budget.d.ts.map +1 -0
  1237. package/hooks/frame-budget.js +183 -0
  1238. package/hooks/index.d.ts +27 -24
  1239. package/hooks/index.d.ts.map +1 -1
  1240. package/hooks/index.js +3 -0
  1241. package/hooks/resource-cache.d.ts.map +1 -1
  1242. package/hooks/resource-cache.js +36 -0
  1243. package/hooks/useAccounts.d.ts +2 -4
  1244. package/hooks/useAccounts.d.ts.map +1 -1
  1245. package/hooks/useAccounts.js +6 -4
  1246. package/hooks/useActivityEvents.d.ts +12 -0
  1247. package/hooks/useActivityEvents.d.ts.map +1 -1
  1248. package/hooks/useActivityEvents.js +48 -69
  1249. package/hooks/useAuthStatus.d.ts +1 -1
  1250. package/hooks/useAuthStatus.d.ts.map +1 -1
  1251. package/hooks/useAuthStatus.js +19 -1
  1252. package/hooks/useAvailableViews.d.ts +17 -3
  1253. package/hooks/useAvailableViews.d.ts.map +1 -1
  1254. package/hooks/useAvailableViews.js +89 -10
  1255. package/hooks/useCachedResource.d.ts +1 -1
  1256. package/hooks/useCloudHandoffPhase.d.ts +1 -1
  1257. package/hooks/useCloudHandoffPhase.d.ts.map +1 -1
  1258. package/hooks/useCloudHandoffPhase.js +15 -9
  1259. package/hooks/useConnectorAccounts.d.ts +2 -4
  1260. package/hooks/useConnectorAccounts.d.ts.map +1 -1
  1261. package/hooks/useConnectorAccounts.js +1 -1
  1262. package/hooks/useConnectorReconnect.d.ts +1 -1
  1263. package/hooks/useConnectorSendAsAccount.d.ts +3 -5
  1264. package/hooks/useConnectorSendAsAccount.d.ts.map +1 -1
  1265. package/hooks/useContextMenu.d.ts +1 -1
  1266. package/hooks/useContextMenu.d.ts.map +1 -1
  1267. package/hooks/useContextMenu.js +6 -2
  1268. package/hooks/useContinuousChat.d.ts +2 -2
  1269. package/hooks/useDefaultProviderPresets.d.ts +1 -1
  1270. package/hooks/useDesktopTabs.d.ts +1 -1
  1271. package/hooks/useDesktopTabs.d.ts.map +1 -1
  1272. package/hooks/useDesktopTabs.js +27 -9
  1273. package/hooks/useFrameBudgetMonitor.d.ts +30 -0
  1274. package/hooks/useFrameBudgetMonitor.d.ts.map +1 -0
  1275. package/hooks/useFrameBudgetMonitor.js +105 -0
  1276. package/hooks/useKeyboardShortcuts.d.ts +4 -0
  1277. package/hooks/useKeyboardShortcuts.d.ts.map +1 -1
  1278. package/hooks/useKeyboardShortcuts.js +19 -11
  1279. package/hooks/useLayoutShiftMonitor.d.ts +43 -0
  1280. package/hooks/useLayoutShiftMonitor.d.ts.map +1 -0
  1281. package/hooks/useLayoutShiftMonitor.js +128 -0
  1282. package/hooks/useNow.d.ts +10 -0
  1283. package/hooks/useNow.d.ts.map +1 -0
  1284. package/hooks/useNow.js +18 -0
  1285. package/hooks/useRuntimeMode.d.ts +1 -1
  1286. package/hooks/useSignalPairing.d.ts +2 -2
  1287. package/hooks/useViewCatalog.d.ts +2 -2
  1288. package/hooks/useViewCatalog.js +5 -5
  1289. package/hooks/useViewEvent.d.ts +1 -1
  1290. package/hooks/useVoiceChat.d.ts +17 -6
  1291. package/hooks/useVoiceChat.d.ts.map +1 -1
  1292. package/hooks/useVoiceChat.js +49 -2
  1293. package/hooks/useWhatsAppPairing.d.ts +2 -2
  1294. package/hooks/view-catalog.d.ts +37 -5
  1295. package/hooks/view-catalog.d.ts.map +1 -1
  1296. package/hooks/view-catalog.js +75 -5
  1297. package/i18n/index.d.ts +1 -1
  1298. package/i18n/locales/en.json +65 -21
  1299. package/i18n/locales/es.json +15 -16
  1300. package/i18n/locales/ja.json +15 -16
  1301. package/i18n/locales/ko.json +15 -16
  1302. package/i18n/locales/pt.json +15 -16
  1303. package/i18n/locales/tl.json +15 -16
  1304. package/i18n/locales/vi.json +15 -16
  1305. package/i18n/locales/zh-CN.json +15 -16
  1306. package/i18n/region.d.ts +1 -1
  1307. package/index.d.ts +146 -138
  1308. package/index.d.ts.map +1 -1
  1309. package/index.js +12 -2
  1310. package/layouts/chat-panel-layout/index.d.ts +1 -1
  1311. package/layouts/content-layout/index.d.ts +1 -1
  1312. package/layouts/index.d.ts +4 -4
  1313. package/layouts/page-layout/index.d.ts +4 -4
  1314. package/layouts/page-layout/page-layout-mobile-drawer.d.ts +1 -1
  1315. package/layouts/page-layout/page-layout-types.d.ts +2 -2
  1316. package/layouts/page-layout/page-layout.d.ts +1 -1
  1317. package/layouts/workspace-layout/index.d.ts +3 -3
  1318. package/layouts/workspace-layout/workspace-layout-types.d.ts +1 -1
  1319. package/layouts/workspace-layout/workspace-layout.d.ts +1 -1
  1320. package/layouts/workspace-layout/workspace-layout.d.ts.map +1 -1
  1321. package/layouts/workspace-layout/workspace-layout.js +2 -1
  1322. package/navigation/index.d.ts +4 -4
  1323. package/navigation/index.d.ts.map +1 -1
  1324. package/navigation/index.js +26 -16
  1325. package/package.json +26 -10
  1326. package/perf/PerfOverlay.d.ts +21 -0
  1327. package/perf/PerfOverlay.d.ts.map +1 -0
  1328. package/perf/PerfOverlay.js +90 -0
  1329. package/perf/perf-hud-control.d.ts +21 -0
  1330. package/perf/perf-hud-control.d.ts.map +1 -0
  1331. package/perf/perf-hud-control.js +98 -0
  1332. package/platform/assistant-launch-payload.d.ts.map +1 -1
  1333. package/platform/assistant-launch-payload.js +0 -3
  1334. package/platform/cloud-preference-patch.d.ts +1 -1
  1335. package/platform/desktop-permissions-client.d.ts +1 -1
  1336. package/platform/first-run-reset.d.ts +1 -1
  1337. package/platform/index.d.ts +14 -14
  1338. package/platform/init.d.ts +1 -1
  1339. package/platform/mobile-permissions-client.d.ts +1 -1
  1340. package/platform/platform-guards.d.ts +8 -0
  1341. package/platform/platform-guards.d.ts.map +1 -1
  1342. package/platform/platform-guards.js +2 -4
  1343. package/platform/types.d.ts +1 -1
  1344. package/platform/window-shell.d.ts +1 -1
  1345. package/retained-lazy.d.ts +1 -2
  1346. package/retained-lazy.d.ts.map +1 -1
  1347. package/services/app-updates/update-policy.d.ts +1 -1
  1348. package/services/app-updates/update-policy.d.ts.map +1 -1
  1349. package/services/app-updates/update-policy.js +1 -1
  1350. package/services/local-inference/active-model.d.ts +3 -3
  1351. package/services/local-inference/assignments.d.ts +6 -8
  1352. package/services/local-inference/assignments.d.ts.map +1 -1
  1353. package/services/local-inference/assignments.js +31 -14
  1354. package/services/local-inference/catalog-policy.d.ts +2 -1
  1355. package/services/local-inference/catalog-policy.d.ts.map +1 -1
  1356. package/services/local-inference/catalog-policy.js +6 -0
  1357. package/services/local-inference/catalog.d.ts +1 -1
  1358. package/services/local-inference/catalog.d.ts.map +1 -1
  1359. package/services/local-inference/catalog.js +1 -1
  1360. package/services/local-inference/custom-search.d.ts +2 -1
  1361. package/services/local-inference/custom-search.d.ts.map +1 -1
  1362. package/services/local-inference/custom-search.js +13 -21
  1363. package/services/local-inference/device-bridge.d.ts +1 -1
  1364. package/services/local-inference/downloader.d.ts +6 -5
  1365. package/services/local-inference/downloader.d.ts.map +1 -1
  1366. package/services/local-inference/downloader.js +9 -5
  1367. package/services/local-inference/engine.d.ts +1 -1
  1368. package/services/local-inference/external-scanner.d.ts +1 -1
  1369. package/services/local-inference/hardware.d.ts +2 -2
  1370. package/services/local-inference/hf-search.d.ts +5 -20
  1371. package/services/local-inference/hf-search.d.ts.map +1 -1
  1372. package/services/local-inference/hf-search.js +14 -272
  1373. package/services/local-inference/home-model-status.d.ts +1 -1
  1374. package/services/local-inference/index.d.ts +10 -10
  1375. package/services/local-inference/readiness.d.ts +1 -1
  1376. package/services/local-inference/recommendation.d.ts +1 -1
  1377. package/services/local-inference/registry.d.ts +11 -13
  1378. package/services/local-inference/registry.d.ts.map +1 -1
  1379. package/services/local-inference/registry.js +18 -17
  1380. package/services/local-inference/routing-policy.d.ts +6 -2
  1381. package/services/local-inference/routing-policy.d.ts.map +1 -1
  1382. package/services/local-inference/routing-policy.js +36 -8
  1383. package/services/local-inference/service.d.ts +6 -6
  1384. package/services/local-inference/service.d.ts.map +1 -1
  1385. package/services/local-inference/service.js +19 -8
  1386. package/services/local-inference/token-tree.d.ts +1 -1
  1387. package/slots/task-coordinator-slots.d.ts +2 -2
  1388. package/spatial/context.d.ts +1 -1
  1389. package/spatial/dom.d.ts +9 -3
  1390. package/spatial/dom.d.ts.map +1 -1
  1391. package/spatial/dom.js +13 -3
  1392. package/spatial/evaluate.d.ts +1 -1
  1393. package/spatial/index.d.ts +6 -6
  1394. package/spatial/primitives.d.ts +3 -3
  1395. package/spatial/primitives.d.ts.map +1 -1
  1396. package/spatial/primitives.js +10 -7
  1397. package/spatial/tui/engine.d.ts +1 -1
  1398. package/spatial/tui/index.d.ts +3 -3
  1399. package/spatial/tui/index.d.ts.map +1 -1
  1400. package/spatial/tui/index.js +2 -2
  1401. package/spatial/tui/renderer.d.ts +9 -2
  1402. package/spatial/tui/renderer.d.ts.map +1 -1
  1403. package/spatial/tui/renderer.js +47 -2
  1404. package/state/AppContext.d.ts +1 -1
  1405. package/state/AppContext.d.ts.map +1 -1
  1406. package/state/AppContext.js +83 -30
  1407. package/state/ChatComposerContext.hooks.d.ts +1 -1
  1408. package/state/ChatTurnStatusContext.hooks.d.ts +27 -0
  1409. package/state/ChatTurnStatusContext.hooks.d.ts.map +1 -0
  1410. package/state/ChatTurnStatusContext.hooks.js +24 -0
  1411. package/state/CompanionSceneConfigContext.hooks.d.ts +3 -3
  1412. package/state/ConversationMessagesContext.hooks.d.ts +26 -0
  1413. package/state/ConversationMessagesContext.hooks.d.ts.map +1 -0
  1414. package/state/ConversationMessagesContext.hooks.js +22 -0
  1415. package/state/PtySessionsContext.hooks.d.ts +1 -1
  1416. package/state/TranslationContext.hooks.d.ts +1 -1
  1417. package/state/TranslationProvider.d.ts +2 -2
  1418. package/state/action-notice.d.ts +31 -1
  1419. package/state/action-notice.d.ts.map +1 -1
  1420. package/state/action-notice.js +27 -1
  1421. package/state/agent-profiles.d.ts +10 -2
  1422. package/state/agent-profiles.d.ts.map +1 -1
  1423. package/state/agent-profiles.js +20 -0
  1424. package/state/agent-runtime-target.d.ts +2 -2
  1425. package/state/app-store.d.ts +52 -0
  1426. package/state/app-store.d.ts.map +1 -0
  1427. package/state/app-store.js +169 -0
  1428. package/state/autonomy.d.ts +1 -1
  1429. package/state/chat-conversation-guards.d.ts +1 -1
  1430. package/state/chat-conversation-guards.d.ts.map +1 -1
  1431. package/state/chat-conversation-guards.js +0 -1
  1432. package/state/complete-reset-local-state-after-wipe.d.ts +1 -1
  1433. package/state/conversation-message-filter.d.ts +1 -1
  1434. package/state/first-run-bootstrap.d.ts +1 -1
  1435. package/state/first-run-restart.d.ts +1 -1
  1436. package/state/handle-reset-applied-from-main.d.ts +2 -2
  1437. package/state/index.d.ts +24 -18
  1438. package/state/index.d.ts.map +1 -1
  1439. package/state/index.js +6 -0
  1440. package/state/internal.d.ts +11 -11
  1441. package/state/notifications/navigate-deep-link.d.ts +27 -0
  1442. package/state/notifications/navigate-deep-link.d.ts.map +1 -0
  1443. package/state/notifications/navigate-deep-link.js +48 -0
  1444. package/state/notifications/notification-store.d.ts +2 -2
  1445. package/state/notifications/notification-store.d.ts.map +1 -1
  1446. package/state/notifications/notification-store.js +4 -4
  1447. package/state/parsers.d.ts +3 -3
  1448. package/state/parsers.d.ts.map +1 -1
  1449. package/state/parsers.js +9 -3
  1450. package/state/persistence.d.ts +23 -8
  1451. package/state/persistence.d.ts.map +1 -1
  1452. package/state/persistence.js +86 -4
  1453. package/state/screen-capture-bridge.d.ts +8 -0
  1454. package/state/screen-capture-bridge.d.ts.map +1 -0
  1455. package/state/screen-capture-bridge.js +124 -0
  1456. package/state/setup-resume.d.ts +2 -2
  1457. package/state/shell-routing.d.ts +3 -3
  1458. package/state/shell-surface-store.d.ts +50 -0
  1459. package/state/shell-surface-store.d.ts.map +1 -0
  1460. package/state/shell-surface-store.js +130 -0
  1461. package/state/springboard-layout.d.ts +85 -0
  1462. package/state/springboard-layout.d.ts.map +1 -0
  1463. package/state/springboard-layout.js +180 -0
  1464. package/state/startup-coordinator.d.ts +1 -1
  1465. package/state/startup-phase-hydrate.d.ts +5 -5
  1466. package/state/startup-phase-hydrate.d.ts.map +1 -1
  1467. package/state/startup-phase-hydrate.js +6 -0
  1468. package/state/startup-phase-poll.d.ts +8 -8
  1469. package/state/startup-phase-restore.d.ts +22 -6
  1470. package/state/startup-phase-restore.d.ts.map +1 -1
  1471. package/state/startup-phase-restore.js +91 -1
  1472. package/state/startup-phase-runtime.d.ts +3 -3
  1473. package/state/startup-telemetry.d.ts +73 -0
  1474. package/state/startup-telemetry.d.ts.map +1 -0
  1475. package/state/startup-telemetry.js +139 -0
  1476. package/state/types.d.ts +36 -12
  1477. package/state/types.d.ts.map +1 -1
  1478. package/state/types.js +13 -0
  1479. package/state/ui-preferences.d.ts +39 -0
  1480. package/state/ui-preferences.d.ts.map +1 -1
  1481. package/state/ui-preferences.js +30 -1
  1482. package/state/use-startup-shell-controller.d.ts +8 -1
  1483. package/state/use-startup-shell-controller.d.ts.map +1 -1
  1484. package/state/use-startup-shell-controller.js +63 -3
  1485. package/state/useApp.d.ts +1 -1
  1486. package/state/useAppLifecycleEvents.d.ts +1 -1
  1487. package/state/useAppProviderEffects.d.ts +3 -3
  1488. package/state/useBackgroundConfig.d.ts +16 -0
  1489. package/state/useBackgroundConfig.d.ts.map +1 -0
  1490. package/state/useBackgroundConfig.js +21 -0
  1491. package/state/useCharacterState.d.ts +2 -2
  1492. package/state/useChatCallbacks.d.ts +40 -7
  1493. package/state/useChatCallbacks.d.ts.map +1 -1
  1494. package/state/useChatCallbacks.js +218 -132
  1495. package/state/useChatLifecycle.d.ts +12 -4
  1496. package/state/useChatLifecycle.d.ts.map +1 -1
  1497. package/state/useChatLifecycle.js +26 -2
  1498. package/state/useChatSend.d.ts +7 -4
  1499. package/state/useChatSend.d.ts.map +1 -1
  1500. package/state/useChatSend.js +126 -21
  1501. package/state/useChatState.d.ts +4 -4
  1502. package/state/useContentPack.d.ts.map +1 -1
  1503. package/state/useContentPack.js +12 -2
  1504. package/state/useDataLoaders.d.ts +6 -5
  1505. package/state/useDataLoaders.d.ts.map +1 -1
  1506. package/state/useDataLoaders.js +99 -5
  1507. package/state/useDeveloperMode.d.ts.map +1 -1
  1508. package/state/useDeveloperMode.js +48 -8
  1509. package/state/useDisplayPreferences.d.ts +6 -2
  1510. package/state/useDisplayPreferences.d.ts.map +1 -1
  1511. package/state/useDisplayPreferences.js +40 -2
  1512. package/state/useFirstRunCallbacks.d.ts +8 -8
  1513. package/state/useFirstRunState.d.ts +3 -3
  1514. package/state/useLifecycleState.d.ts +9 -2
  1515. package/state/useLifecycleState.d.ts.map +1 -1
  1516. package/state/useLifecycleState.js +26 -1
  1517. package/state/useLogsState.d.ts +1 -1
  1518. package/state/useMiscUiState.d.ts +1 -1
  1519. package/state/useNavigationState.d.ts +2 -2
  1520. package/state/usePluginsSkillsState.d.ts +3 -3
  1521. package/state/usePreviewMode.d.ts +4 -0
  1522. package/state/usePreviewMode.d.ts.map +1 -0
  1523. package/state/usePreviewMode.js +93 -0
  1524. package/state/useStartupCoordinator.d.ts +5 -5
  1525. package/state/useStartupCoordinator.d.ts.map +1 -1
  1526. package/state/useStartupCoordinator.js +9 -0
  1527. package/state/useStreamingText.d.ts +1 -1
  1528. package/state/useTriggersState.d.ts +1 -1
  1529. package/state/useViewKinds.d.ts +19 -0
  1530. package/state/useViewKinds.d.ts.map +1 -0
  1531. package/state/useViewKinds.js +28 -0
  1532. package/state/useWalletState.d.ts +3 -3
  1533. package/state/vrm.d.ts +1 -1
  1534. package/storybook/home-widget-decorator.d.ts +21 -0
  1535. package/storybook/home-widget-decorator.d.ts.map +1 -0
  1536. package/storybook/home-widget-decorator.js +53 -0
  1537. package/storybook/mock-providers.d.ts +2 -2
  1538. package/storybook/mock-providers.d.ts.map +1 -1
  1539. package/storybook/mock-providers.helpers.d.ts +1 -1
  1540. package/storybook/mock-providers.js +20 -1
  1541. package/styles/base.css +66 -32
  1542. package/styles/brand-gold.css +0 -7
  1543. package/styles/styles.css +10 -5
  1544. package/testing/layout-stability.d.ts +67 -0
  1545. package/testing/layout-stability.d.ts.map +1 -0
  1546. package/testing/layout-stability.js +106 -0
  1547. package/testing/render-counter.d.ts +56 -0
  1548. package/testing/render-counter.d.ts.map +1 -0
  1549. package/testing/render-counter.js +62 -0
  1550. package/themes/presets.d.ts.map +1 -1
  1551. package/themes/presets.js +17 -15
  1552. package/utils/attachment-url.d.ts +42 -0
  1553. package/utils/attachment-url.d.ts.map +1 -0
  1554. package/utils/attachment-url.js +130 -0
  1555. package/utils/cloud-agent-base.d.ts +0 -1
  1556. package/utils/cloud-agent-base.d.ts.map +1 -1
  1557. package/utils/cloud-agent-base.js +0 -8
  1558. package/utils/download-share.d.ts +65 -0
  1559. package/utils/download-share.d.ts.map +1 -0
  1560. package/utils/download-share.js +292 -0
  1561. package/utils/event-source.d.ts +17 -0
  1562. package/utils/event-source.d.ts.map +1 -0
  1563. package/utils/event-source.js +36 -0
  1564. package/utils/image-attachment.d.ts +156 -4
  1565. package/utils/image-attachment.d.ts.map +1 -1
  1566. package/utils/image-attachment.js +193 -4
  1567. package/utils/index.d.ts +33 -33
  1568. package/utils/workflow-executions.d.ts +1 -1
  1569. package/utils/workflow-json.d.ts +1 -1
  1570. package/view-telemetry.d.ts +30 -0
  1571. package/view-telemetry.d.ts.map +1 -0
  1572. package/view-telemetry.js +47 -0
  1573. package/views/view-interact-protocol.d.ts +6 -0
  1574. package/views/view-interact-protocol.d.ts.map +1 -1
  1575. package/views/view-interact-protocol.js +6 -0
  1576. package/voice/audio-frame-diarization-harness.d.ts +5 -0
  1577. package/voice/audio-frame-diarization-harness.d.ts.map +1 -1
  1578. package/voice/audio-frame-pump.d.ts +1 -1
  1579. package/voice/character-voice-config.d.ts +2 -2
  1580. package/voice/end-of-turn.d.ts +14 -11
  1581. package/voice/end-of-turn.d.ts.map +1 -1
  1582. package/voice/end-of-turn.js +14 -119
  1583. package/voice/index.d.ts +11 -10
  1584. package/voice/index.d.ts.map +1 -1
  1585. package/voice/index.js +1 -0
  1586. package/voice/jni-voice-harness.d.ts +19 -4
  1587. package/voice/jni-voice-harness.d.ts.map +1 -1
  1588. package/voice/jni-voice-harness.js +45 -10
  1589. package/voice/jni-voice-pipeline.d.ts +27 -3
  1590. package/voice/jni-voice-pipeline.d.ts.map +1 -1
  1591. package/voice/jni-voice-pipeline.js +40 -2
  1592. package/voice/local-asr-capture.js +1 -1
  1593. package/voice/local-asr-transcribe.d.ts +2 -2
  1594. package/voice/local-asr-transcribe.d.ts.map +1 -1
  1595. package/voice/local-asr-transcribe.js +3 -3
  1596. package/voice/playback-frame-pump.d.ts +49 -0
  1597. package/voice/playback-frame-pump.d.ts.map +1 -0
  1598. package/voice/playback-frame-pump.js +387 -0
  1599. package/voice/should-respond.d.ts +7 -32
  1600. package/voice/should-respond.d.ts.map +1 -1
  1601. package/voice/should-respond.js +7 -68
  1602. package/voice/useVoiceConfig.d.ts +1 -1
  1603. package/voice/voice-capture-factory.d.ts +2 -2
  1604. package/voice/voice-capture-factory.js +3 -3
  1605. package/voice/voice-chat-playback.d.ts +1 -1
  1606. package/voice/voice-chat-types.d.ts +2 -2
  1607. package/voice/voice-provider-defaults.d.ts +8 -5
  1608. package/voice/voice-provider-defaults.d.ts.map +1 -1
  1609. package/voice/voice-provider-defaults.js +17 -10
  1610. package/voice/voice-selftest/VoiceSelfTestShell.d.ts +11 -0
  1611. package/voice/voice-selftest/VoiceSelfTestShell.d.ts.map +1 -1
  1612. package/voice/voice-selftest/VoiceSelfTestShell.js +1 -4
  1613. package/voice/voice-selftest/VoiceWorkbenchShell.d.ts +29 -0
  1614. package/voice/voice-selftest/VoiceWorkbenchShell.d.ts.map +1 -0
  1615. package/voice/voice-selftest/VoiceWorkbenchShell.js +133 -0
  1616. package/voice/voice-selftest/timing.d.ts +8 -0
  1617. package/voice/voice-selftest/timing.d.ts.map +1 -0
  1618. package/voice/voice-selftest/timing.js +7 -0
  1619. package/voice/voice-selftest/voice-selftest-harness.d.ts +1 -1
  1620. package/voice/voice-selftest/voice-selftest-harness.d.ts.map +1 -1
  1621. package/voice/voice-selftest/voice-selftest-harness.js +1 -2
  1622. package/voice/voice-selftest/voice-workbench-player.d.ts +139 -0
  1623. package/voice/voice-selftest/voice-workbench-player.d.ts.map +1 -0
  1624. package/voice/voice-selftest/voice-workbench-player.js +401 -0
  1625. package/voice/voice-turn-signal.d.ts +15 -26
  1626. package/voice/voice-turn-signal.d.ts.map +1 -1
  1627. package/voice/voice-turn-signal.js +7 -51
  1628. package/widgets/WidgetHost.d.ts +10 -4
  1629. package/widgets/WidgetHost.d.ts.map +1 -1
  1630. package/widgets/WidgetHost.js +149 -30
  1631. package/widgets/__fixtures__/home-widget-mock-data.d.ts +89 -0
  1632. package/widgets/__fixtures__/home-widget-mock-data.d.ts.map +1 -0
  1633. package/widgets/__fixtures__/home-widget-mock-data.js +388 -0
  1634. package/widgets/home-attention-store.d.ts +40 -0
  1635. package/widgets/home-attention-store.d.ts.map +1 -0
  1636. package/widgets/home-attention-store.js +84 -0
  1637. package/widgets/home-priority.d.ts +136 -0
  1638. package/widgets/home-priority.d.ts.map +1 -0
  1639. package/widgets/home-priority.js +276 -0
  1640. package/widgets/index.d.ts +10 -7
  1641. package/widgets/index.d.ts.map +1 -1
  1642. package/widgets/index.js +4 -2
  1643. package/widgets/registry-store.d.ts +9 -11
  1644. package/widgets/registry-store.d.ts.map +1 -1
  1645. package/widgets/registry-store.js +8 -12
  1646. package/widgets/registry.d.ts +16 -4
  1647. package/widgets/registry.d.ts.map +1 -1
  1648. package/widgets/registry.js +432 -8
  1649. package/widgets/types.d.ts +12 -4
  1650. package/widgets/types.d.ts.map +1 -1
  1651. package/widgets/types.js +7 -1
  1652. package/widgets/useChatSidebarVisibility.d.ts +6 -3
  1653. package/widgets/useChatSidebarVisibility.d.ts.map +1 -1
  1654. package/widgets/useChatSidebarVisibility.js +15 -11
  1655. package/widgets/visibility.d.ts +16 -10
  1656. package/widgets/visibility.d.ts.map +1 -1
  1657. package/widgets/visibility.js +25 -13
  1658. package/api/agent-client-type-shim.d.ts +0 -24
  1659. package/api/agent-client-type-shim.d.ts.map +0 -1
  1660. package/api/agent-client-type-shim.js +0 -1
  1661. package/cloud/account-security/use-document-title.d.ts +0 -10
  1662. package/cloud/account-security/use-document-title.d.ts.map +0 -1
  1663. package/cloud/account-security/use-document-title.js +0 -20
  1664. package/cloud/admin/lib/format-usd.d.ts +0 -11
  1665. package/cloud/admin/lib/format-usd.d.ts.map +0 -1
  1666. package/cloud/admin/lib/format-usd.js +0 -18
  1667. package/cloud/admin/use-document-title.d.ts +0 -10
  1668. package/cloud/admin/use-document-title.d.ts.map +0 -1
  1669. package/cloud/api-explorer/use-document-title.d.ts +0 -11
  1670. package/cloud/api-explorer/use-document-title.d.ts.map +0 -1
  1671. package/cloud/api-explorer/use-document-title.js +0 -21
  1672. package/cloud/api-keys/use-document-title.d.ts +0 -10
  1673. package/cloud/api-keys/use-document-title.d.ts.map +0 -1
  1674. package/cloud/api-keys/use-document-title.js +0 -20
  1675. package/cloud/applications/lib/auth-query.d.ts +0 -14
  1676. package/cloud/applications/lib/auth-query.d.ts.map +0 -1
  1677. package/cloud/applications/lib/auth-query.js +0 -18
  1678. package/cloud/applications/lib/use-copy-feedback.d.ts +0 -9
  1679. package/cloud/applications/lib/use-copy-feedback.d.ts.map +0 -1
  1680. package/cloud/applications/lib/use-copy-feedback.js +0 -13
  1681. package/cloud/applications/lib/use-session-auth.d.ts +0 -28
  1682. package/cloud/applications/lib/use-session-auth.d.ts.map +0 -1
  1683. package/cloud/approvals/lib/auth-query.d.ts +0 -18
  1684. package/cloud/approvals/lib/auth-query.d.ts.map +0 -1
  1685. package/cloud/approvals/lib/auth-query.js +0 -22
  1686. package/cloud/approvals/lib/use-session-auth.d.ts +0 -28
  1687. package/cloud/approvals/lib/use-session-auth.d.ts.map +0 -1
  1688. package/cloud/approvals/lib/use-session-auth.js +0 -97
  1689. package/cloud/documents/lib/auth-query.d.ts +0 -17
  1690. package/cloud/documents/lib/auth-query.d.ts.map +0 -1
  1691. package/cloud/documents/lib/use-session-auth.d.ts +0 -27
  1692. package/cloud/documents/lib/use-session-auth.d.ts.map +0 -1
  1693. package/cloud/documents/lib/use-session-auth.js +0 -96
  1694. package/cloud/documents/use-document-title.d.ts +0 -11
  1695. package/cloud/documents/use-document-title.d.ts.map +0 -1
  1696. package/cloud/documents/use-document-title.js +0 -21
  1697. package/cloud/instances/lib/format-bytes.d.ts +0 -19
  1698. package/cloud/instances/lib/format-bytes.d.ts.map +0 -1
  1699. package/cloud/instances/lib/format-bytes.js +0 -25
  1700. package/cloud/instances/lib/use-copy-feedback.d.ts +0 -9
  1701. package/cloud/instances/lib/use-copy-feedback.d.ts.map +0 -1
  1702. package/cloud/instances/lib/use-document-title.d.ts +0 -13
  1703. package/cloud/instances/lib/use-document-title.d.ts.map +0 -1
  1704. package/cloud/instances/lib/use-document-title.js +0 -23
  1705. package/cloud/monetization/lib/format-usd.d.ts +0 -12
  1706. package/cloud/monetization/lib/format-usd.d.ts.map +0 -1
  1707. package/cloud/monetization/lib/format-usd.js +0 -19
  1708. package/cloud/monetization/use-document-title.d.ts +0 -10
  1709. package/cloud/monetization/use-document-title.d.ts.map +0 -1
  1710. package/cloud/monetization/use-document-title.js +0 -20
  1711. package/components/local-inference/CustomModelSearch.d.ts +0 -19
  1712. package/components/local-inference/CustomModelSearch.d.ts.map +0 -1
  1713. package/components/local-inference/CustomModelSearch.js +0 -128
  1714. package/components/pages/ViewCatalog.d.ts +0 -10
  1715. package/components/pages/ViewCatalog.d.ts.map +0 -1
  1716. package/components/pages/ViewCatalog.js +0 -600
  1717. package/components/shell/ChatAmbientBackground.d.ts +0 -8
  1718. package/components/shell/ChatAmbientBackground.d.ts.map +0 -1
  1719. package/components/shell/ChatAmbientBackground.js +0 -51
@@ -61,7 +61,7 @@ export function ChatVoiceStatusBar({ status, interimTranscript, speaker, ownerEn
61
61
  const primaryLatency = latency?.speechEndToVoiceStartMs ?? null;
62
62
  const tone = latencyTone(primaryLatency);
63
63
  const cached = latency?.firstSegmentCached === true;
64
- return (_jsxs("div", { "data-testid": dataTestId ?? "chat-voice-status-bar", "data-status": status, role: "status", "aria-live": "polite", className: cn("flex flex-wrap items-center gap-2 rounded-sm border border-border/35 bg-card/40 px-3 py-1.5 text-xs", className), children: [_jsx("span", { className: cn("inline-block h-2 w-2 rounded-full", STATUS_DOT_CLASS[status]), "aria-hidden": "true", "data-testid": "chat-voice-status-dot" }), _jsx("span", { className: "font-medium text-txt", "data-testid": "chat-voice-status-label", children: STATUS_LABEL[status] }), speakerName ? (_jsxs("span", { className: "inline-flex items-center gap-1 rounded-sm border border-border/40 bg-card/50 px-2 py-0.5", "data-testid": "chat-voice-speaker-pill", children: [isOwnerSpeaking ? (_jsx(Crown, { className: "h-3 w-3 text-accent", "aria-label": "Owner", "data-testid": "chat-voice-speaker-owner" })) : null, _jsx("span", { className: "text-txt", children: speakerName })] })) : null, micReconnected ? (_jsxs("span", { className: "inline-flex items-center gap-1 rounded-sm border border-border/40 bg-card/50 px-2 py-0.5 text-muted", "data-testid": "chat-voice-mic-reconnected", children: [_jsx(RefreshCw, { className: "h-3 w-3", "aria-hidden": "true" }), _jsx("span", { children: "Mic reconnected" })] })) : null, needsAudioUnlock ? (onUnlockAudio ? (_jsxs("button", { type: "button", onClick: onUnlockAudio, "data-testid": "chat-voice-audio-unlock", className: cn("inline-flex items-center gap-1 rounded-sm border px-2 py-0.5 font-medium transition-colors", "border-warn/40 bg-warn/10 text-warn hover:bg-warn/20", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-bg"), children: [_jsx(VolumeX, { className: "h-3 w-3", "aria-hidden": "true" }), _jsx("span", { children: "Tap to enable sound" })] })) : (_jsxs("span", { className: "inline-flex items-center gap-1 rounded-sm border border-warn/40 bg-warn/10 px-2 py-0.5 font-medium text-warn", "data-testid": "chat-voice-audio-unlock", children: [_jsx(VolumeX, { className: "h-3 w-3", "aria-hidden": "true" }), _jsx("span", { children: "Tap anywhere to enable sound" })] }))) : null, interimTranscript && interimTranscript.trim().length > 0 ? (_jsx("span", { className: "min-w-0 flex-1 truncate italic text-muted", "data-testid": "chat-voice-interim-transcript", title: interimTranscript, children: interimTranscript })) : (_jsx("span", { className: "flex-1" })), _jsxs("span", { className: cn("inline-flex items-center gap-1 rounded-sm border px-2 py-0.5 text-[10px] font-medium", TONE_CLASS[tone]), "data-testid": "chat-voice-latency-badge", "data-tone": tone, title: latency
64
+ return (_jsxs("div", { "data-testid": dataTestId ?? "chat-voice-status-bar", "data-status": status, role: "status", "aria-live": "polite", className: cn("flex flex-wrap items-center gap-2 rounded-sm border border-border/35 bg-card/40 px-3 py-1.5 text-xs", className), children: [_jsx("span", { className: cn("inline-block h-2 w-2 rounded-full", STATUS_DOT_CLASS[status]), "aria-hidden": "true", "data-testid": "chat-voice-status-dot" }), _jsx("span", { className: "font-medium text-txt", "data-testid": "chat-voice-status-label", children: STATUS_LABEL[status] }), speakerName ? (_jsxs("span", { className: "inline-flex items-center gap-1 rounded-sm border border-border/40 bg-card/50 px-2 py-0.5", "data-testid": "chat-voice-speaker-pill", children: [isOwnerSpeaking ? (_jsx(Crown, { className: "h-3 w-3 text-accent", "aria-label": "Owner", "data-testid": "chat-voice-speaker-owner" })) : null, _jsx("span", { className: "text-txt", children: speakerName })] })) : null, micReconnected ? (_jsxs("span", { className: "inline-flex items-center gap-1 rounded-sm border border-border/40 bg-card/50 px-2 py-0.5 text-muted", "data-testid": "chat-voice-mic-reconnected", children: [_jsx(RefreshCw, { className: "h-3 w-3", "aria-hidden": "true" }), _jsx("span", { children: "Mic reconnected" })] })) : null, needsAudioUnlock ? (onUnlockAudio ? (_jsxs("button", { type: "button", onClick: onUnlockAudio, "data-testid": "chat-voice-audio-unlock", className: cn("inline-flex items-center gap-1 rounded-sm border px-2 py-0.5 font-medium transition-colors", "border-warn/40 bg-warn/10 text-warn hover:bg-warn/20", " "), children: [_jsx(VolumeX, { className: "h-3 w-3", "aria-hidden": "true" }), _jsx("span", { children: "Tap to enable sound" })] })) : (_jsxs("span", { className: "inline-flex items-center gap-1 rounded-sm border border-warn/40 bg-warn/10 px-2 py-0.5 font-medium text-warn", "data-testid": "chat-voice-audio-unlock", children: [_jsx(VolumeX, { className: "h-3 w-3", "aria-hidden": "true" }), _jsx("span", { children: "Tap anywhere to enable sound" })] }))) : null, interimTranscript && interimTranscript.trim().length > 0 ? (_jsx("span", { className: "min-w-0 flex-1 truncate italic text-muted", "data-testid": "chat-voice-interim-transcript", title: interimTranscript, children: interimTranscript })) : (_jsx("span", { className: "flex-1" })), _jsxs("span", { className: cn("inline-flex items-center gap-1 rounded-sm border px-2 py-0.5 text-[10px] font-medium", TONE_CLASS[tone]), "data-testid": "chat-voice-latency-badge", "data-tone": tone, title: latency
65
65
  ? `speech-end → first-token: ${formatLatency(latency.speechEndToFirstTokenMs)}\n` +
66
66
  `speech-end → voice-start: ${formatLatency(latency.speechEndToVoiceStartMs)}\n` +
67
67
  `stream → voice-start: ${formatLatency(latency.assistantStreamToVoiceStartMs)}` +
@@ -9,7 +9,7 @@
9
9
  * sheet (we just expose the toggle + a click handler).
10
10
  */
11
11
  import * as React from "react";
12
- import { type VoiceContinuousMode } from "../../../voice/voice-chat-types";
12
+ import { type VoiceContinuousMode } from "../../../voice/voice-chat-types.js";
13
13
  export interface ContinuousChatToggleProps {
14
14
  value: VoiceContinuousMode;
15
15
  onChange: (next: VoiceContinuousMode) => void;
@@ -58,7 +58,7 @@ export function ContinuousChatToggle({ value, onChange, disabled = false, compac
58
58
  const meta = MODE_META[modeId];
59
59
  const Icon = meta.icon;
60
60
  const active = modeId === value;
61
- return (_jsx(TooltipProvider, { delayDuration: 250, children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsxs("button", { type: "button", role: "radio", "aria-checked": active, "data-mode": modeId, "data-active": active ? "true" : "false", onClick: () => handleSelect(modeId), className: cn("inline-flex items-center gap-1.5 rounded-sm px-2 py-1 text-xs font-medium transition-colors", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-bg", active
61
+ return (_jsx(TooltipProvider, { delayDuration: 250, children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsxs("button", { type: "button", role: "radio", "aria-checked": active, "data-mode": modeId, "data-active": active ? "true" : "false", onClick: () => handleSelect(modeId), className: cn("inline-flex items-center gap-1.5 rounded-sm px-2 py-1 text-xs font-medium transition-colors", " ", active
62
62
  ? "bg-accent/15 text-accent"
63
63
  : "text-muted hover:text-txt hover:bg-bg-hover"), children: [_jsx(Icon, { className: "h-3.5 w-3.5" }), _jsx("span", { children: meta.label })] }) }), _jsx(TooltipContent, { side: "bottom", children: _jsx("div", { className: "text-xs max-w-[220px]", children: meta.description }) })] }) }, modeId));
64
64
  }) }));
@@ -1,4 +1,4 @@
1
- import type { ChatAttachmentItem, ChatVariant } from "./chat-types";
1
+ import type { ChatAttachmentItem, ChatVariant } from "./chat-types.js";
2
2
  export interface ChatAttachmentStripProps {
3
3
  items: ChatAttachmentItem[];
4
4
  onRemove: (id: string, index: number) => void;
@@ -9,5 +9,5 @@ export function ChatAttachmentStrip({ items, onRemove, removeLabel = (item) => `
9
9
  if (items.length === 0) {
10
10
  return null;
11
11
  }
12
- return (_jsx("div", { className: `relative flex flex-wrap gap-2 py-1 ${variant === "game-modal" ? "pointer-events-auto" : ""}`, "data-no-camera-drag": variant === "game-modal" || undefined, style: { zIndex: 1 }, children: items.map((item, index) => (_jsxs("div", { className: "relative h-16 w-16 shrink-0 group", children: [!item.kind || item.kind === "image" ? (_jsx("img", { src: item.src, alt: item.alt, className: "h-16 w-16 rounded-sm border border-border object-cover" })) : (_jsx(NonImageTile, { item: item })), _jsx(Button, { variant: variant === "game-modal" ? "surfaceDestructive" : "destructive", size: "icon", title: removeLabel(item), "aria-label": removeLabel(item), onClick: () => onRemove(item.id, index), className: "absolute -right-1.5 -top-1.5 flex h-4 w-4 items-center justify-center rounded-sm text-2xs opacity-100 transition-opacity focus-visible:opacity-100 sm:opacity-0 sm:group-hover:opacity-100", children: "\u00D7" })] }, item.id))) }));
12
+ return (_jsx("div", { className: `relative flex flex-wrap gap-2 py-1 ${variant === "game-modal" ? "pointer-events-auto" : ""}`, "data-no-camera-drag": variant === "game-modal" || undefined, style: { zIndex: 1 }, children: items.map((item, index) => (_jsxs("div", { className: "relative h-16 w-16 shrink-0 group", children: [!item.kind || item.kind === "image" ? (_jsx("img", { src: item.src, alt: item.alt, className: "h-16 w-16 rounded-sm border border-border object-cover" })) : (_jsx(NonImageTile, { item: item })), _jsx(Button, { variant: variant === "game-modal" ? "surfaceDestructive" : "destructive", size: "icon", title: removeLabel(item), "aria-label": removeLabel(item), onClick: () => onRemove(item.id, index), className: "absolute -right-1.5 -top-1.5 flex h-4 w-4 items-center justify-center rounded-sm text-2xs opacity-100 transition-opacity sm:opacity-0 sm:group-hover:opacity-100", children: "\u00D7" })] }, item.id))) }));
13
13
  }
@@ -1,5 +1,5 @@
1
1
  import type * as React from "react";
2
- import type { ChatVariant } from "./chat-types";
2
+ import type { ChatVariant } from "./chat-types.js";
3
3
  type RefLike<T> = ((instance: T | null) => void) | {
4
4
  current: T | null;
5
5
  } | null;
@@ -1,6 +1,6 @@
1
- import { type KeyboardEvent, type RefObject } from "react";
2
- import type { VoiceSessionMode } from "../../../voice/voice-chat-types";
3
- import type { ChatVariant } from "./chat-types";
1
+ import { type ClipboardEvent, type KeyboardEvent, type RefObject } from "react";
2
+ import type { VoiceSessionMode } from "../../../voice/voice-chat-types.js";
3
+ import type { ChatVariant } from "./chat-types.js";
4
4
  export interface ChatComposerVoiceState {
5
5
  assistantTtsQuality?: "enhanced" | "standard";
6
6
  captureMode: VoiceSessionMode;
@@ -25,6 +25,12 @@ export interface ChatComposerProps {
25
25
  onAttachImage: () => void;
26
26
  onChatInputChange: (value: string) => void;
27
27
  onKeyDown: (event: KeyboardEvent<HTMLTextAreaElement>) => void;
28
+ /**
29
+ * Clipboard paste handler — pastes an image/file as an attachment and a large
30
+ * text block as a collapsed text-attachment chip (matching the mobile
31
+ * overlay). Optional; when omitted the textarea pastes normally.
32
+ */
33
+ onPaste?: (event: ClipboardEvent<HTMLTextAreaElement>) => void;
28
34
  onSend: () => void;
29
35
  onStop: () => void;
30
36
  onStopSpeaking: () => void;
@@ -40,5 +46,5 @@ export interface ChatComposerProps {
40
46
  /** Placeholder override for the textarea. */
41
47
  placeholder?: string;
42
48
  }
43
- export declare function ChatComposer({ variant, layout, textareaRef, chatInput, chatPendingImagesCount, isComposerLocked, isAgentStarting, chatSending, voice, agentVoiceEnabled, showAgentVoiceToggle, t, onAttachImage, onChatInputChange, onKeyDown, onSend, onStop, onStopSpeaking, onToggleAgentVoice, hideAttachButton, placeholder, textareaAriaLabel, }: ChatComposerProps): import("react/jsx-runtime").JSX.Element;
49
+ export declare function ChatComposer({ variant, layout, textareaRef, chatInput, chatPendingImagesCount, isComposerLocked, isAgentStarting, chatSending, voice, agentVoiceEnabled, showAgentVoiceToggle, t, onAttachImage, onChatInputChange, onKeyDown, onPaste, onSend, onStop, onStopSpeaking, onToggleAgentVoice, hideAttachButton, placeholder, textareaAriaLabel, }: ChatComposerProps): import("react/jsx-runtime").JSX.Element;
44
50
  //# sourceMappingURL=chat-composer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-composer.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/composites/chat/chat-composer.tsx"],"names":[],"mappings":"AAYA,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAGxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAgEhD,MAAM,WAAW,sBAAsB;IACrC,mBAAmB,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IAC9C,WAAW,EAAE,gBAAgB,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,CACd,IAAI,CAAC,EAAE,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,KACrC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,aAAa,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC9B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,SAAS,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAC;IAC/D,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;IAC9D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,SAAS,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;IACnD,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,sBAAsB,CAAC;IAC9B,uFAAuF;IACvF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,MAAkB,EAClB,WAAW,EACX,SAAS,EACT,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,KAAK,EACL,iBAAiB,EACjB,oBAA2B,EAC3B,CAAC,EACD,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,MAAM,EACN,MAAM,EACN,cAAc,EACd,kBAAkB,EAClB,gBAAwB,EACxB,WAAW,EACX,iBAAiB,GAClB,EAAE,iBAAiB,2CAgnBnB"}
1
+ {"version":3,"file":"chat-composer.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/composites/chat/chat-composer.tsx"],"names":[],"mappings":"AAYA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,aAAa,EAElB,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAGxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAgEhD,MAAM,WAAW,sBAAsB;IACrC,mBAAmB,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IAC9C,WAAW,EAAE,gBAAgB,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,CACd,IAAI,CAAC,EAAE,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,KACrC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,aAAa,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC9B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,SAAS,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAC;IAC/D;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAC;IAC/D,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;IAC9D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,SAAS,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;IACnD,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,sBAAsB,CAAC;IAC9B,uFAAuF;IACvF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,MAAkB,EAClB,WAAW,EACX,SAAS,EACT,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,KAAK,EACL,iBAAiB,EACjB,oBAA2B,EAC3B,CAAC,EACD,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,OAAO,EACP,MAAM,EACN,MAAM,EACN,cAAc,EACd,kBAAkB,EAClB,gBAAwB,EACxB,WAAW,EACX,iBAAiB,GAClB,EAAE,iBAAiB,2CAknBnB"}
@@ -6,9 +6,9 @@ import { Textarea } from "../../ui/textarea.js";
6
6
  const INLINE_TEXTAREA_MIN_HEIGHT_PX = 32;
7
7
  const INLINE_TEXTAREA_MAX_HEIGHT_PX = 128;
8
8
  const INLINE_STACKED_INLINE_PADDING_PX = 12;
9
- const inlineTextareaClass = "block h-8 max-h-[128px] min-h-0 w-full min-w-0 resize-none overflow-y-hidden appearance-none rounded-none border-0 bg-transparent px-2 py-[6px] text-sm leading-5 text-txt outline-none placeholder:text-muted-strong focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2";
9
+ const inlineTextareaClass = "block h-8 max-h-[128px] min-h-0 w-full min-w-0 resize-none overflow-y-hidden appearance-none rounded-none border-0 bg-transparent px-2 py-[6px] text-sm leading-5 text-txt outline-none placeholder:text-muted-strong ";
10
10
  const inlineMeasureTextareaClass = `${inlineTextareaClass} pointer-events-none fixed left-0 top-0 z-[-1] opacity-0`;
11
- const inlineComposerSurfaceClass = "border-[color-mix(in_srgb,var(--border)_62%,var(--txt)_38%)] bg-[color-mix(in_srgb,var(--bg)_78%,var(--txt)_16%)] ring-1 ring-inset ring-white/15 backdrop-blur-sm";
11
+ const inlineComposerSurfaceClass = "border-[color-mix(in_srgb,var(--border)_62%,var(--txt)_38%)] bg-[color-mix(in_srgb,var(--bg)_78%,var(--txt)_16%)] ";
12
12
  function getTextareaVerticalPadding(textarea) {
13
13
  const styles = window.getComputedStyle(textarea);
14
14
  const paddingTop = Number.parseFloat(styles.paddingTop);
@@ -38,7 +38,7 @@ function measureInlineTextarea(textarea, value, width) {
38
38
  wraps: contentHeight > lineHeight * 1.25,
39
39
  };
40
40
  }
41
- export function ChatComposer({ variant, layout = "default", textareaRef, chatInput, chatPendingImagesCount, isComposerLocked, isAgentStarting, chatSending, voice, agentVoiceEnabled, showAgentVoiceToggle = true, t, onAttachImage, onChatInputChange, onKeyDown, onSend, onStop, onStopSpeaking, onToggleAgentVoice, hideAttachButton = false, placeholder, textareaAriaLabel, }) {
41
+ export function ChatComposer({ variant, layout = "default", textareaRef, chatInput, chatPendingImagesCount, isComposerLocked, isAgentStarting, chatSending, voice, agentVoiceEnabled, showAgentVoiceToggle = true, t, onAttachImage, onChatInputChange, onKeyDown, onPaste, onSend, onStop, onStopSpeaking, onToggleAgentVoice, hideAttachButton = false, placeholder, textareaAriaLabel, }) {
42
42
  const [isInlineMultiline, setIsInlineMultiline] = useState(false);
43
43
  const [inlineMeasureVersion, setInlineMeasureVersion] = useState(0);
44
44
  const inlineRootRef = useRef(null);
@@ -218,7 +218,7 @@ export function ChatComposer({ variant, layout = "default", textareaRef, chatInp
218
218
  const inlineAttachButton = !isGameModal && !hideAttachButton ? (_jsx(Button, { variant: "ghost", size: "icon", className: `h-8 w-8 shrink-0 rounded-sm bg-bg p-0 text-muted shadow-none transition-colors hover:bg-bg hover:text-txt ${chatPendingImagesCount > 0 ? "text-accent hover:text-accent" : ""}`, onClick: onAttachImage, "aria-label": t("aria.attachImage"), title: t("aria.attachImage"), disabled: isComposerLocked, children: _jsx(Plus, { className: "h-5 w-5" }) })) : null;
219
219
  const inlineTextarea = (_jsxs("div", { className: isInlineMultiline
220
220
  ? "relative min-w-0 w-full"
221
- : "relative min-w-0 flex-1", children: [_jsx(Textarea, { ref: textareaRef, value: chatInput, onChange: (event) => onChatInputChange(event.target.value), onKeyDown: onKeyDown, "data-testid": "chat-composer-textarea", "aria-label": textareaAriaLabel, variant: null, density: null, className: inlineTextareaClass, placeholder: placeholder ?? defaultTextareaPlaceholder, rows: 1, disabled: isComposerLocked }), voice.isListening && voice.interimTranscript ? (_jsx("div", { className: isInlineMultiline
221
+ : "relative min-w-0 flex-1", children: [_jsx(Textarea, { ref: textareaRef, value: chatInput, onChange: (event) => onChatInputChange(event.target.value), onKeyDown: onKeyDown, onPaste: onPaste, "data-testid": "chat-composer-textarea", "aria-label": textareaAriaLabel, variant: null, density: null, className: inlineTextareaClass, placeholder: placeholder ?? defaultTextareaPlaceholder, rows: 1, disabled: isComposerLocked }), voice.isListening && voice.interimTranscript ? (_jsx("div", { className: isInlineMultiline
222
222
  ? "pointer-events-none absolute inset-x-3 bottom-2 truncate text-xs text-muted"
223
223
  : "pointer-events-none absolute inset-x-2 bottom-2 truncate text-xs text-muted", children: voice.interimTranscript })) : null] }));
224
224
  const inlineMicButton = (_jsx(Button, { variant: "ghost", size: "icon", className: `h-8 w-8 shrink-0 rounded-sm p-0 shadow-none transition-colors active:scale-95 ${voice.isListening
@@ -250,19 +250,19 @@ export function ChatComposer({ variant, layout = "default", textareaRef, chatInp
250
250
  ? "text-accent hover:text-accent"
251
251
  : ""}`, onClick: onAttachImage, "aria-label": t("aria.attachImage"), title: t("aria.attachImage"), disabled: isComposerLocked, children: isInline ? (_jsx(Plus, { className: "h-5 w-5" })) : (_jsx(Paperclip, { className: "h-6 w-6" })) })) : null, !isInline && showVoiceButton ? (_jsx(Button, { variant: "ghost", size: "icon", className: isGameModal
252
252
  ? `flex items-center justify-center h-[46px] w-[46px] shrink-0 ${voice.isListening
253
- ? "animate-pulse select-none rounded-sm border border-border/28 bg-card text-txt ring-1 ring-inset ring-border transition-all duration-300 active:scale-95 "
254
- : "select-none rounded-sm border border-transparent bg-transparent text-muted-strong shadow-none ring-0 transition-[border-color,background-color,color,transform,box-shadow] duration-300 hover:border-border/28 hover:bg-card hover:text-txt active:scale-95"} ${isComposerLocked ? "opacity-50" : ""}`
253
+ ? "animate-pulse select-none rounded-sm border border-border/28 bg-card text-txt transition-all duration-300 active:scale-95 "
254
+ : "select-none rounded-sm border border-transparent bg-transparent text-muted-strong shadow-none transition-[border-color,background-color,color,transform,box-shadow] duration-300 hover:border-border/28 hover:bg-card hover:text-txt active:scale-95"} ${isComposerLocked ? "opacity-50" : ""}`
255
255
  : `h-[38px] w-9 shrink-0 bg-transparent p-0 shadow-none border-0 text-muted hover:bg-transparent hover:text-txt ${voice.isListening ? "text-accent hover:text-accent" : ""}`, "data-testid": "chat-composer-mic", onClick: handleMicClick, onPointerDown: handleMicPointerDown, onPointerUp: handleMicPointerUp, onPointerCancel: handleMicPointerCancel, onPointerLeave: handleMicPointerCancel, "aria-label": isAgentStarting
256
256
  ? t("chat.agentStarting")
257
257
  : voice.isListening
258
258
  ? voice.captureMode === "push-to-talk"
259
259
  ? t("chat.releaseToSend")
260
260
  : t("chat.stopListening")
261
- : t("chat.voiceInput"), "aria-pressed": isGameModal ? undefined : voice.isListening, title: voiceButtonTitle, disabled: isComposerLocked, children: _jsx(Mic, { className: "h-6 w-6" }) })) : null, _jsxs("div", { className: "relative min-w-0 flex-1", children: [_jsx(Textarea, { ref: textareaRef, value: chatInput, onChange: (event) => onChatInputChange(event.target.value), onKeyDown: onKeyDown, "data-testid": "chat-composer-textarea", "aria-label": textareaAriaLabel, variant: isInline ? null : undefined, density: isInline ? null : undefined, className: isGameModal
262
- ? "w-full min-w-0 min-h-0 h-[46px] resize-none overflow-y-hidden max-h-[200px] outline-none focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 font-[var(--font-chat)] disabled:opacity-50 rounded-sm border border-transparent bg-transparent px-4 pb-[13px] pt-[13px] text-[15px] leading-[1.55] text-txt-strong placeholder:text-muted"
261
+ : t("chat.voiceInput"), "aria-pressed": isGameModal ? undefined : voice.isListening, title: voiceButtonTitle, disabled: isComposerLocked, children: _jsx(Mic, { className: "h-6 w-6" }) })) : null, _jsxs("div", { className: "relative min-w-0 flex-1", children: [_jsx(Textarea, { ref: textareaRef, value: chatInput, onChange: (event) => onChatInputChange(event.target.value), onKeyDown: onKeyDown, onPaste: onPaste, "data-testid": "chat-composer-textarea", "aria-label": textareaAriaLabel, variant: isInline ? null : undefined, density: isInline ? null : undefined, className: isGameModal
262
+ ? "w-full min-w-0 min-h-0 h-[46px] resize-none overflow-y-hidden max-h-[200px] outline-none font-[var(--font-chat)] disabled:opacity-50 rounded-sm border border-transparent bg-transparent px-4 pb-[13px] pt-[13px] text-[15px] leading-[1.55] text-txt-strong placeholder:text-muted"
263
263
  : isInline
264
264
  ? inlineTextareaClass
265
- : "w-full min-w-0 min-h-0 h-[38px] resize-none overflow-y-hidden max-h-[200px] outline-none focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 font-[var(--font-chat)] disabled:opacity-50 rounded-sm border-0 bg-card/40 px-4 py-[8px] text-[15px] leading-[1.55] text-txt placeholder:text-muted", placeholder: placeholder ?? defaultTextareaPlaceholder, rows: 1, disabled: isComposerLocked }), voice.isListening && voice.interimTranscript ? (_jsx("div", { className: isInline
265
+ : "w-full min-w-0 min-h-0 h-[38px] resize-none overflow-y-hidden max-h-[200px] outline-none font-[var(--font-chat)] disabled:opacity-50 rounded-sm border-0 bg-card/40 px-4 py-[8px] text-[15px] leading-[1.55] text-txt placeholder:text-muted", placeholder: placeholder ?? defaultTextareaPlaceholder, rows: 1, disabled: isComposerLocked }), voice.isListening && voice.interimTranscript ? (_jsx("div", { className: isInline
266
266
  ? "pointer-events-none absolute inset-x-2 bottom-2 truncate text-xs text-muted"
267
267
  : "pointer-events-none absolute inset-x-4 bottom-2.5 truncate text-xs-tight text-muted", children: voice.interimTranscript })) : null] }), !isInline && showAgentVoiceToggle ? (_jsx(Button, { variant: isGameModal
268
268
  ? "ghost"
@@ -270,8 +270,8 @@ export function ChatComposer({ variant, layout = "default", textareaRef, chatInp
270
270
  ? "surfaceAccent"
271
271
  : "surface", size: "icon", className: isGameModal
272
272
  ? `flex items-center justify-center h-[46px] w-[46px] shrink-0 ${agentVoiceEnabled
273
- ? "select-none rounded-sm border border-border/28 bg-card text-txt ring-1 ring-inset ring-border transition-all duration-300 active:scale-95 "
274
- : "select-none rounded-sm border border-transparent bg-transparent text-muted-strong shadow-none ring-0 transition-[border-color,background-color,color,transform,box-shadow] duration-300 hover:border-border/28 hover:bg-card hover:text-txt active:scale-95"}`
273
+ ? "select-none rounded-sm border border-border/28 bg-card text-txt transition-all duration-300 active:scale-95 "
274
+ : "select-none rounded-sm border border-transparent bg-transparent text-muted-strong shadow-none transition-[border-color,background-color,color,transform,box-shadow] duration-300 hover:border-border/28 hover:bg-card hover:text-txt active:scale-95"}`
275
275
  : "h-[46px] w-[46px] shrink-0", onClick: onToggleAgentVoice, "aria-label": agentVoiceEnabled ? t("aria.agentVoiceOn") : t("aria.agentVoiceOff"), title: agentVoiceEnabled ? t("chat.agentVoiceOn") : t("chat.agentVoiceOff"), disabled: isComposerLocked, children: agentVoiceEnabled ? (_jsx(Volume2, { className: isGameModal ? "h-5 w-5" : "h-4 w-4" })) : (_jsx(VolumeX, { className: isGameModal ? "h-5 w-5" : "h-4 w-4" })) })) : null, shouldShowStopButton ? (_jsx(Button, { variant: "surfaceDestructive", "data-testid": "chat-composer-action", className: isInline
276
276
  ? "h-8 w-8 shrink-0 rounded-sm bg-danger/15 p-0 text-danger shadow-none transition-colors hover:bg-danger/25"
277
277
  : "ml-1 flex items-center justify-center rounded-sm transition-all duration-300 select-none active:scale-95 h-[46px] w-[46px] shrink-0", onClick: onStop, size: "icon", title: actionButtonLabel, "aria-label": actionButtonLabel, children: _jsx(Square, { className: isInline
@@ -284,11 +284,11 @@ export function ChatComposer({ variant, layout = "default", textareaRef, chatInp
284
284
  ? "bg-accent text-bg hover:bg-accent/90 hover:text-bg"
285
285
  : "bg-bg text-muted hover:bg-bg hover:text-txt"}`, "data-testid": "chat-composer-mic", onClick: handleMicClick, onPointerDown: handleMicPointerDown, onPointerUp: handleMicPointerUp, onPointerCancel: handleMicPointerCancel, onPointerLeave: handleMicPointerCancel, disabled: isComposerLocked || !voice.supported, title: voiceButtonTitle, "aria-label": voiceButtonTitle, "aria-pressed": voice.isListening, children: _jsx(Mic, { className: "h-4.5 w-4.5" }) })) : (_jsx(Button, { variant: isGameModal ? "default" : "ghost", "data-testid": "chat-composer-action", size: "icon", className: isGameModal
286
286
  ? `ml-1 flex items-center justify-center rounded-sm transition-all duration-300 select-none active:scale-95 h-[46px] w-[46px] shrink-0 ${hasDraft
287
- ? "select-none rounded-sm border border-border/28 bg-card text-txt ring-1 ring-inset ring-border transition-all duration-300 active:scale-95 "
288
- : "select-none rounded-sm border border-transparent bg-transparent text-muted-strong shadow-none ring-0 transition-[border-color,background-color,color,transform,box-shadow] duration-300 hover:border-border/28 hover:bg-card hover:text-txt active:scale-95 opacity-80"}`
287
+ ? "select-none rounded-sm border border-border/28 bg-card text-txt transition-all duration-300 active:scale-95 "
288
+ : "select-none rounded-sm border border-transparent bg-transparent text-muted-strong shadow-none transition-[border-color,background-color,color,transform,box-shadow] duration-300 hover:border-border/28 hover:bg-card hover:text-txt active:scale-95 opacity-80"}`
289
289
  : isInline
290
290
  ? "h-8 w-8 shrink-0 rounded-sm bg-txt p-0 text-bg shadow-none transition-transform active:scale-95 disabled:opacity-40"
291
- : "ml-1 h-[38px] w-9 shrink-0 bg-transparent p-0 shadow-none border-0 text-muted hover:bg-transparent hover:text-txt transition-colors select-none active:scale-95 disabled:ring-0 disabled:opacity-40", onClick: onSend,
291
+ : "ml-1 h-[38px] w-9 shrink-0 bg-transparent p-0 shadow-none border-0 text-muted hover:bg-transparent hover:text-txt transition-colors select-none active:scale-95 disabled:opacity-40", onClick: onSend,
292
292
  // Keep the textarea focused through the tap so the keyboard doesn't
293
293
  // flicker closed/open on send (see the inline send button).
294
294
  onMouseDown: (e) => e.preventDefault(), disabled: isComposerLocked || !hasDraft, title: actionButtonLabel, "aria-label": actionButtonLabel, children: isInline ? (_jsx(ArrowUp, { className: "h-4.5 w-4.5" })) : (_jsx(Send, { className: isGameModal ? "h-4.5 w-4.5" : "h-6 w-6" })) }))] }));
@@ -1,5 +1,5 @@
1
1
  import type React from "react";
2
- import type { ChatConversationLabels, ChatConversationSummary, ChatVariant } from "./chat-types";
2
+ import type { ChatConversationLabels, ChatConversationSummary, ChatVariant } from "./chat-types.js";
3
3
  export interface ChatConversationItemProps {
4
4
  conversation: ChatConversationSummary;
5
5
  deleting?: boolean;
@@ -17,5 +17,5 @@ export interface ChatConversationItemProps {
17
17
  onSelect: () => void;
18
18
  variant?: ChatVariant;
19
19
  }
20
- export declare function ChatConversationItem({ conversation, deleting, displayTitle, isActive, isConfirmingDelete, isUnread, labels, mobile, onCancelDelete, onConfirmDelete, onOpenActions, onRequestDeleteConfirm, onRequestRename, onSelect, variant, }: ChatConversationItemProps): import("react/jsx-runtime").JSX.Element;
20
+ export declare const ChatConversationItem: React.MemoExoticComponent<({ conversation, deleting, displayTitle, isActive, isConfirmingDelete, isUnread, labels, mobile, onCancelDelete, onConfirmDelete, onOpenActions, onRequestDeleteConfirm, onRequestRename, onSelect, variant, }: ChatConversationItemProps) => import("react/jsx-runtime").JSX.Element>;
21
21
  //# sourceMappingURL=chat-conversation-item.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-conversation-item.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/composites/chat/chat-conversation-item.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAe/B,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACvB,WAAW,EACZ,MAAM,cAAc,CAAC;AAkFtB,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,uBAAuB,CAAC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,aAAa,CAAC,EAAE,CACd,KAAK,EACD,KAAK,CAAC,UAAU,CAAC,iBAAiB,GAAG,cAAc,CAAC,GACpD,KAAK,CAAC,UAAU,CAAC,iBAAiB,GAAG,cAAc,CAAC,EACxD,YAAY,EAAE,uBAAuB,KAClC,IAAI,CAAC;IACV,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;IACpC,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED,wBAAgB,oBAAoB,CAAC,EACnC,YAAY,EACZ,QAAgB,EAChB,YAAY,EACZ,QAAQ,EACR,kBAA0B,EAC1B,QAAgB,EAChB,MAAW,EACX,MAAc,EACd,cAAc,EACd,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,eAAe,EACf,QAAQ,EACR,OAAmB,GACpB,EAAE,yBAAyB,2CAgM3B"}
1
+ {"version":3,"file":"chat-conversation-item.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/composites/chat/chat-conversation-item.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAgB/B,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACvB,WAAW,EACZ,MAAM,cAAc,CAAC;AAkFtB,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,uBAAuB,CAAC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,aAAa,CAAC,EAAE,CACd,KAAK,EACD,KAAK,CAAC,UAAU,CAAC,iBAAiB,GAAG,cAAc,CAAC,GACpD,KAAK,CAAC,UAAU,CAAC,iBAAiB,GAAG,cAAc,CAAC,EACxD,YAAY,EAAE,uBAAuB,KAClC,IAAI,CAAC;IACV,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;IACpC,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED,eAAO,MAAM,oBAAoB,4OAgB9B,yBAAyB,6CAgM1B,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { MoreHorizontal, PencilLine, X } from "lucide-react";
3
- import { useCallback, useEffect, useLayoutEffect, useRef, useState, } from "react";
3
+ import { memo, useCallback, useEffect, useLayoutEffect, useRef, useState, } from "react";
4
4
  import { cn } from "../../../lib/utils.js";
5
5
  // z-[200] mirrors Z_OVERLAY in ../../../lib/floating-layers.ts.
6
6
  // Tailwind v4 cannot detect classes built from runtime template literals,
@@ -46,7 +46,7 @@ function TruncatingConversationTitle({ displayTitle, isActive, variant, }) {
46
46
  }
47
47
  return (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: span }), _jsx(TooltipContent, { side: "right", align: "start", sideOffset: 10, collisionPadding: 12, className: "z-[200] max-w-[min(90vw,22rem)] whitespace-normal break-words px-3 py-2 text-sm leading-snug", children: displayTitle })] }));
48
48
  }
49
- export function ChatConversationItem({ conversation, deleting = false, displayTitle, isActive, isConfirmingDelete = false, isUnread = false, labels = {}, mobile = false, onCancelDelete, onConfirmDelete, onOpenActions, onRequestDeleteConfirm, onRequestRename, onSelect, variant = "default", }) {
49
+ export const ChatConversationItem = memo(function ChatConversationItem({ conversation, deleting = false, displayTitle, isActive, isConfirmingDelete = false, isUnread = false, labels = {}, mobile = false, onCancelDelete, onConfirmDelete, onOpenActions, onRequestDeleteConfirm, onRequestRename, onSelect, variant = "default", }) {
50
50
  const longPressTimerRef = useRef(null);
51
51
  const suppressClickRef = useRef(false);
52
52
  const isGameModal = variant === "game-modal";
@@ -94,27 +94,27 @@ export function ChatConversationItem({ conversation, deleting = false, displayTi
94
94
  onOpenActions(event, conversation);
95
95
  }, onTouchStart: handleTouchStart, onTouchEnd: handleTouchEnd, onTouchCancel: handleTouchEnd, onTouchMove: handleTouchEnd, children: [isUnread ? (_jsx("span", { className: isGameModal
96
96
  ? "absolute left-3 top-3 z-[1] h-2 w-2 shrink-0 rounded-full bg-accent animate-pulse"
97
- : "h-1.5 w-1.5 shrink-0 rounded-full bg-accent " })) : null, _jsx("div", { className: "min-w-0 flex-1", children: _jsx(TruncatingConversationTitle, { displayTitle: renderedTitle, isActive: isActive, variant: variant }) })] }), !isGameModal && !isConfirmingDelete && onOpenActions ? (_jsx(Button, { type: "button", variant: "ghost", size: "icon", "data-testid": "conv-actions", "aria-label": labels.actions ?? "More actions", className: cn("h-6 w-6 shrink-0 rounded-sm p-0 text-muted hover:bg-transparent hover:text-txt focus-visible:opacity-100", mobile
97
+ : "h-1.5 w-1.5 shrink-0 rounded-full bg-accent " })) : null, _jsx("div", { className: "min-w-0 flex-1", children: _jsx(TruncatingConversationTitle, { displayTitle: renderedTitle, isActive: isActive, variant: variant }) })] }), !isGameModal && !isConfirmingDelete && onOpenActions ? (_jsx(Button, { type: "button", variant: "ghost", size: "icon", "data-testid": "conv-actions", "aria-label": labels.actions ?? "More actions", className: cn("h-6 w-6 shrink-0 rounded-sm p-0 text-muted hover:bg-transparent hover:text-txt ", mobile
98
98
  ? "opacity-100"
99
99
  : "opacity-0 pointer-events-none group-hover:opacity-100 group-hover:pointer-events-auto"), onClick: (event) => {
100
100
  event.preventDefault();
101
101
  event.stopPropagation();
102
102
  onOpenActions(event, conversation);
103
103
  }, children: _jsx(MoreHorizontal, { className: "h-4 w-4", "aria-hidden": true }) })) : null, showInlineActions && !isConfirmingDelete ? (_jsx(Button, { size: "icon", variant: isGameModal ? "ghost" : "surface", "data-testid": "conv-rename", "aria-label": labels.rename ?? "Rename conversation", className: cn(isGameModal
104
- ? "h-8 w-8 shrink-0 self-center rounded-sm border border-white/10 bg-black/20 text-[color:var(--first-run-text-muted)] transition-[border-color,background-color,color,opacity] hover:border-[color:var(--first-run-accent-border)] hover:bg-[color:var(--first-run-accent-bg)] hover:text-[color:var(--first-run-text-strong)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-accent"
104
+ ? "h-8 w-8 shrink-0 self-center rounded-sm border border-white/10 bg-black/20 text-[color:var(--first-run-text-muted)] transition-[border-color,background-color,color,opacity] hover:border-[color:var(--first-run-accent-border)] hover:bg-[color:var(--first-run-accent-bg)] hover:text-[color:var(--first-run-text-strong)] "
105
105
  : "h-8 w-8 shrink-0 rounded-sm hover:text-accent", mobile
106
106
  ? "opacity-100"
107
- : "opacity-0 pointer-events-none group-hover:opacity-100 group-hover:pointer-events-auto focus-visible:opacity-100 focus-visible:pointer-events-auto"), onClick: (event) => {
107
+ : "opacity-0 pointer-events-none group-hover:opacity-100 group-hover:pointer-events-auto "), onClick: (event) => {
108
108
  event.preventDefault();
109
109
  event.stopPropagation();
110
110
  onRequestRename?.();
111
111
  }, children: _jsx(PencilLine, { className: "h-3.5 w-3.5", strokeWidth: 2.25, "aria-hidden": true }) })) : null, showInlineActions && !isConfirmingDelete ? (_jsx(Button, { size: "icon", variant: isGameModal ? "ghost" : "surfaceDestructive", "data-testid": "conv-delete", "aria-label": labels.delete ?? "Delete conversation", className: cn(isGameModal
112
- ? "h-8 w-8 shrink-0 self-center rounded-sm border border-white/10 bg-black/20 text-[color:var(--first-run-text-muted)] transition-[border-color,background-color,color,opacity] hover:border-[color:var(--first-run-accent-border)] hover:bg-[color:var(--first-run-accent-bg)] hover:text-[color:var(--first-run-text-strong)] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-accent"
112
+ ? "h-8 w-8 shrink-0 self-center rounded-sm border border-white/10 bg-black/20 text-[color:var(--first-run-text-muted)] transition-[border-color,background-color,color,opacity] hover:border-[color:var(--first-run-accent-border)] hover:bg-[color:var(--first-run-accent-bg)] hover:text-[color:var(--first-run-text-strong)] "
113
113
  : "h-8 w-8 shrink-0 rounded-sm", mobile
114
114
  ? "opacity-100"
115
- : "opacity-0 pointer-events-none group-hover:opacity-100 group-hover:pointer-events-auto focus-visible:opacity-100 focus-visible:pointer-events-auto", "hover:text-danger"), onClick: (event) => {
115
+ : "opacity-0 pointer-events-none group-hover:opacity-100 group-hover:pointer-events-auto ", "hover:text-danger"), onClick: (event) => {
116
116
  event.preventDefault();
117
117
  event.stopPropagation();
118
118
  onRequestDeleteConfirm?.();
119
119
  }, children: _jsx(X, { className: "h-3.5 w-3.5", strokeWidth: 2.25, "aria-hidden": true }) })) : null, isConfirmingDelete ? (_jsxs("div", { className: "flex flex-shrink-0 items-center gap-1.5 rounded-sm border border-danger/30 bg-destructive-subtle px-2 py-1 ", children: [_jsx("span", { className: "text-2xs font-medium text-danger", children: labels.deleteConfirm ?? "Delete?" }), _jsx(Button, { variant: "destructive", size: "sm", className: "h-7 rounded-sm px-2 py-0.5 text-2xs disabled:opacity-50", onClick: () => void onConfirmDelete?.(), disabled: deleting, children: deleting ? "..." : (labels.deleteYes ?? "Yes") }), _jsx(Button, { variant: "outline", size: "sm", className: "h-7 rounded-sm px-2 py-0.5 text-2xs text-muted-strong hover:border-accent/40 hover:text-txt disabled:opacity-50", onClick: onCancelDelete, disabled: deleting, children: labels.deleteNo ?? "No" })] })) : null] }));
120
- }
120
+ });
@@ -1,5 +1,5 @@
1
1
  import type * as React from "react";
2
- import type { ChatVariant } from "./chat-types";
2
+ import type { ChatVariant } from "./chat-types.js";
3
3
  export interface ChatEmptyStateProps {
4
4
  action?: React.ReactNode;
5
5
  agentName: string;
@@ -1,4 +1,4 @@
1
- import type { ChatMessageLabels } from "./chat-types";
1
+ import type { ChatMessageLabels } from "./chat-types.js";
2
2
  export interface ChatMessageActionsProps {
3
3
  canDelete?: boolean;
4
4
  canEdit?: boolean;
@@ -1,5 +1,5 @@
1
1
  import type * as React from "react";
2
- import type { ChatMessageData, ChatMessageLabels } from "./chat-types";
2
+ import type { ChatMessageData, ChatMessageLabels } from "./chat-types.js";
3
3
  export interface ChatMessageProps {
4
4
  agentName?: string;
5
5
  children?: React.ReactNode;
@@ -17,9 +17,17 @@ export interface ChatMessageProps {
17
17
  onDelete?: (messageId: string) => void;
18
18
  onEdit?: (messageId: string, text: string) => Promise<boolean> | boolean;
19
19
  onSpeak?: (messageId: string, text: string) => void;
20
+ /**
21
+ * Dismiss a proactive suggestion (#8792). Distinct from `onDelete` so the
22
+ * suggestion's one-tap dismiss works without enabling delete on every
23
+ * ordinary message. Only rendered on suggestion bubbles.
24
+ */
25
+ onDismissSuggestion?: (messageId: string) => void;
26
+ /** Accept ("Do it") a proactive suggestion (#8792) — sends the implied action. */
27
+ onAcceptSuggestion?: (message: ChatMessageData) => void;
20
28
  replyTarget?: ChatMessageData | null;
21
29
  renderContent?: (message: ChatMessageData) => React.ReactNode;
22
30
  userMessagesOnRight?: boolean;
23
31
  }
24
- export declare const ChatMessage: React.MemoExoticComponent<({ message, isGrouped, agentName, children, enterOnMount, labels, onCopy, onSpeak, onEdit, onDelete, replyTarget, renderContent, userMessagesOnRight, }: ChatMessageProps) => import("react/jsx-runtime").JSX.Element>;
32
+ export declare const ChatMessage: React.MemoExoticComponent<({ message, isGrouped, agentName, children, enterOnMount, labels, onCopy, onSpeak, onEdit, onDelete, onDismissSuggestion, onAcceptSuggestion, replyTarget, renderContent, userMessagesOnRight, }: ChatMessageProps) => import("react/jsx-runtime").JSX.Element>;
25
33
  //# sourceMappingURL=chat-message.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-message.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/composites/chat/chat-message.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAuBpC,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EAElB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,OAAO,EAAE,eAAe,CAAC;IACzB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IACzE,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,WAAW,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACrC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,KAAK,CAAC,SAAS,CAAC;IAC9D,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AA2OD,eAAO,MAAM,WAAW,qLAcrB,gBAAgB,6CAmZF,CAAC"}
1
+ {"version":3,"file":"chat-message.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/composites/chat/chat-message.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAuBpC,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EAElB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,OAAO,EAAE,eAAe,CAAC;IACzB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IACzE,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,kFAAkF;IAClF,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IACxD,WAAW,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACrC,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,KAAK,CAAC,SAAS,CAAC;IAC9D,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AA6OD,eAAO,MAAM,WAAW,8NAgBrB,gBAAgB,6CAiaF,CAAC"}
@@ -138,6 +138,8 @@ function arePropsEqual(prev, next) {
138
138
  prev.labels === next.labels &&
139
139
  prev.onCopy === next.onCopy &&
140
140
  prev.onDelete === next.onDelete &&
141
+ prev.onDismissSuggestion === next.onDismissSuggestion &&
142
+ prev.onAcceptSuggestion === next.onAcceptSuggestion &&
141
143
  prev.onEdit === next.onEdit &&
142
144
  prev.onSpeak === next.onSpeak &&
143
145
  prev.replyTarget?.id === next.replyTarget?.id &&
@@ -174,7 +176,7 @@ function arePropsEqual(prev, next) {
174
176
  prev.userMessagesOnRight === next.userMessagesOnRight &&
175
177
  prev.children === next.children);
176
178
  }
177
- export const ChatMessage = memo(function ChatMessage({ message, isGrouped = false, agentName = "Agent", children, enterOnMount = false, labels = {}, onCopy, onSpeak, onEdit, onDelete, replyTarget = null, renderContent, userMessagesOnRight = true, }) {
179
+ export const ChatMessage = memo(function ChatMessage({ message, isGrouped = false, agentName = "Agent", children, enterOnMount = false, labels = {}, onCopy, onSpeak, onEdit, onDelete, onDismissSuggestion, onAcceptSuggestion, replyTarget = null, renderContent, userMessagesOnRight = true, }) {
178
180
  const [copied, setCopied] = useState(false);
179
181
  const copiedTimerRef = useRef(null);
180
182
  const [showActions, setShowActions] = useState(false);
@@ -344,7 +346,7 @@ export const ChatMessage = memo(function ChatMessage({ message, isGrouped = fals
344
346
  // Suggestion treatment: subtle accent tint + dashed accent border so
345
347
  // a proactive offer reads as a suggestion, not a normal reply.
346
348
  isSuggestion &&
347
- "border border-dashed border-accent/45 bg-accent/[0.06]"), style: { fontFamily: "var(--font-chat)" }, "data-proactive-suggestion": isSuggestion ? "true" : undefined, children: [isSuggestion && !isEditing ? (_jsxs("div", { className: "mb-1.5 flex items-center justify-between gap-2", children: [_jsxs("span", { className: "inline-flex items-center gap-1 text-xs-tight font-medium text-accent/85", children: [_jsx(Sparkles, { className: "h-3.5 w-3.5", "aria-hidden": "true" }), labels.suggestion ?? "Suggestion"] }), onDelete ? (_jsx(Button, { variant: "surface", size: "icon", onClick: () => onDelete?.(message.id), className: "h-6 w-6 rounded-sm text-muted", title: labels.dismiss ?? "Dismiss suggestion", "aria-label": labels.dismiss ?? "Dismiss suggestion", children: _jsx(X, { className: "h-3.5 w-3.5" }) })) : null] })) : null, showReplyReference ? (_jsx("a", { href: `#${getChatMessageAnchorId(replyTargetId)}`, onClick: handleReplyReferenceClick, className: "mb-2 block text-xs font-medium text-muted underline decoration-border/60 underline-offset-2 transition-colors hover:text-txt-strong", children: replyReferenceLabel })) : null, isEditing ? (_jsxs("div", { className: "space-y-3", children: [_jsx(Textarea, { ref: editTextareaRef, value: draftText, onChange: (event) => setDraftText(event.target.value), onKeyDown: handleEditKeyDown, className: "min-h-[110px] w-full rounded-sm border border-border bg-card px-3 py-2.5 text-[15px] leading-[1.7] text-txt outline-none focus-visible:border-accent focus-visible:ring-2 focus-visible:ring-accent/30", style: { fontFamily: "var(--font-chat)" }, "aria-label": labels.edit ?? "Edit message", disabled: savingEdit }), _jsxs("div", { className: "flex items-center justify-end gap-2", children: [_jsx(Button, { variant: "surface", size: "sm", onClick: handleCancelEditing, disabled: savingEdit, className: "h-8 rounded-sm px-3 text-xs", children: labels.cancel ?? "Cancel" }), _jsx(Button, { variant: "surfaceAccent", size: "sm", onClick: () => void handleSaveEdit(), disabled: savingEdit ||
349
+ "border border-dashed border-accent/45 bg-accent/[0.06]"), style: { fontFamily: "var(--font-chat)" }, "data-proactive-suggestion": isSuggestion ? "true" : undefined, children: [isSuggestion && !isEditing ? (_jsxs("div", { className: "mb-1.5 flex items-center justify-between gap-2", children: [_jsxs("span", { className: "inline-flex items-center gap-1 text-xs-tight font-medium text-accent/85", children: [_jsx(Sparkles, { className: "h-3.5 w-3.5", "aria-hidden": "true" }), labels.suggestion ?? "Suggestion"] }), _jsxs("div", { className: "flex items-center gap-1", children: [onAcceptSuggestion ? (_jsx(Button, { variant: "surface", size: "sm", onClick: () => onAcceptSuggestion(message), className: "h-6 rounded-sm px-2 text-xs-tight text-accent", title: labels.acceptSuggestion ?? "Do it", "aria-label": labels.acceptSuggestion ?? "Do it", children: labels.acceptSuggestion ?? "Do it" })) : null, onDismissSuggestion ? (_jsx(Button, { variant: "surface", size: "icon", onClick: () => onDismissSuggestion(message.id), className: "h-6 w-6 rounded-sm text-muted", title: labels.dismiss ?? "Dismiss suggestion", "aria-label": labels.dismiss ?? "Dismiss suggestion", children: _jsx(X, { className: "h-3.5 w-3.5" }) })) : null] })] })) : null, showReplyReference ? (_jsx("a", { href: `#${getChatMessageAnchorId(replyTargetId)}`, onClick: handleReplyReferenceClick, className: "mb-2 block text-xs font-medium text-muted underline decoration-border/60 underline-offset-2 transition-colors hover:text-txt-strong", children: replyReferenceLabel })) : null, isEditing ? (_jsxs("div", { className: "space-y-3", children: [_jsx(Textarea, { ref: editTextareaRef, value: draftText, onChange: (event) => setDraftText(event.target.value), onKeyDown: handleEditKeyDown, className: "min-h-[110px] w-full rounded-sm border border-border bg-card px-3 py-2.5 text-[15px] leading-[1.7] text-txt outline-none ", style: { fontFamily: "var(--font-chat)" }, "aria-label": labels.edit ?? "Edit message", disabled: savingEdit }), _jsxs("div", { className: "flex items-center justify-end gap-2", children: [_jsx(Button, { variant: "surface", size: "sm", onClick: handleCancelEditing, disabled: savingEdit, className: "h-8 rounded-sm px-3 text-xs", children: labels.cancel ?? "Cancel" }), _jsx(Button, { variant: "surfaceAccent", size: "sm", onClick: () => void handleSaveEdit(), disabled: savingEdit ||
348
350
  !draftText.trim() ||
349
351
  draftText.trim() === message.text.trim(), className: "h-8 rounded-sm px-3 text-xs disabled:border-border/20 disabled:bg-bg-accent disabled:text-muted-strong", children: savingEdit
350
352
  ? (labels.saving ?? "Saving...")
@@ -1,5 +1,5 @@
1
- import type { ChatVoiceSpeaker } from "./chat-types";
2
- export type { ChatSourceMeta } from "./chat-source.helpers";
1
+ import type { ChatVoiceSpeaker } from "./chat-types.js";
2
+ export type { ChatSourceMeta } from "./chat-source.helpers.js";
3
3
  export declare function ChatSourceIcon({ source, className, decorative, }: {
4
4
  className?: string;
5
5
  decorative?: boolean;
@@ -1,5 +1,5 @@
1
1
  import type * as React from "react";
2
- import type { ChatVoiceSpeaker } from "./chat-types";
2
+ import type { ChatVoiceSpeaker } from "./chat-types.js";
3
3
  type SourceIconProps = {
4
4
  className?: string;
5
5
  };
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- import type { ChatVariant } from "./chat-types";
2
+ import type { ChatVariant } from "./chat-types.js";
3
3
  type RefLike<T> = ((instance: T | null) => void) | {
4
4
  current: T | null;
5
5
  } | null;
@@ -1 +1 @@
1
- {"version":3,"file":"chat-thread-layout.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/composites/chat/chat-thread-layout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,GAAG;IAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CAAC;AAYhF,MAAM,WAAW,qBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACtC,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED,eAAO,MAAM,gBAAgB,2FA+E3B,CAAC"}
1
+ {"version":3,"file":"chat-thread-layout.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/composites/chat/chat-thread-layout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC,GAAG;IAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CAAC;AAYhF,MAAM,WAAW,qBACf,SAAQ,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,8BAA8B,CAAC,EAAE,MAAM,CAAC;IACxC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACtC,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAED,eAAO,MAAM,gBAAgB,2FA8E3B,CAAC"}
@@ -10,7 +10,7 @@ function assignRef(ref, value) {
10
10
  ref.current = value;
11
11
  }
12
12
  }
13
- export const ChatThreadLayout = React.forwardRef(function ChatThreadLayout({ children, className, composerHeight = 0, composer, footerStack, gameModalComposerGapPx = 18, gameModalMessageBottomFallback = "5.25rem", gameModalMessageTop = "calc(-100% + 1.5rem)", imageDragOver = false, messagesClassName, messagesRef, messagesStyle, messagesTestId = "chat-messages-scroll", variant = "default", ...props }, ref) {
13
+ export const ChatThreadLayout = React.forwardRef(function ChatThreadLayout({ children, className, composerHeight = 0, composer, footerStack, gameModalComposerGapPx = 18, gameModalMessageBottomFallback = "5.25rem", gameModalMessageTop = "calc(-100% + 1.5rem)", imageDragOver: _imageDragOver = false, messagesClassName, messagesRef, messagesStyle, messagesTestId = "chat-messages-scroll", variant = "default", ...props }, ref) {
14
14
  const isGameModal = variant === "game-modal";
15
15
  const resolvedMessagesStyle = isGameModal
16
16
  ? {
@@ -31,7 +31,7 @@ export const ChatThreadLayout = React.forwardRef(function ChatThreadLayout({ chi
31
31
  zIndex: 1,
32
32
  ...messagesStyle,
33
33
  };
34
- return (_jsxs("section", { ref: ref, "aria-label": "Chat workspace", className: cn("relative flex min-h-0 flex-1 flex-col", isGameModal ? "overflow-visible pointer-events-none" : "bg-transparent", imageDragOver && "ring-2 ring-inset ring-accent", className), ...props, children: [_jsx("div", { ref: (node) => assignRef(messagesRef, node), "data-testid": messagesTestId, "data-no-window-drag": false, "data-no-camera-drag": false, "data-no-camera-zoom": false, className: cn(isGameModal
34
+ return (_jsxs("section", { ref: ref, "aria-label": "Chat workspace", className: cn("relative flex min-h-0 flex-1 flex-col", isGameModal ? "overflow-visible pointer-events-none" : "bg-transparent", className), ...props, children: [_jsx("div", { ref: (node) => assignRef(messagesRef, node), "data-testid": messagesTestId, "data-no-window-drag": false, "data-no-camera-drag": false, "data-no-camera-zoom": false, className: cn(isGameModal
35
35
  ? "chat-native-scrollbar absolute inset-x-0 overflow-x-hidden overflow-y-auto pointer-events-auto"
36
36
  : "chat-native-scrollbar relative flex flex-1 flex-col overflow-x-hidden overflow-y-auto px-3 py-3 sm:px-4 sm:py-4 xl:px-5", messagesClassName), style: resolvedMessagesStyle, children: children }), composer, footerStack] }));
37
37
  });
@@ -1,5 +1,5 @@
1
1
  import type * as React from "react";
2
- import type { ChatMessageData, ChatMessageLabels, ChatVariant } from "./chat-types";
2
+ import type { ChatMessageData, ChatMessageLabels, ChatVariant } from "./chat-types.js";
3
3
  export interface ChatTranscriptProps {
4
4
  agentName?: string;
5
5
  carryoverMessages?: ChatMessageData[];
@@ -8,6 +8,10 @@ export interface ChatTranscriptProps {
8
8
  messages: ChatMessageData[];
9
9
  onCopy?: (text: string) => void;
10
10
  onDelete?: (messageId: string) => void;
11
+ /** Dismiss a proactive suggestion bubble (#8792). */
12
+ onDismissSuggestion?: (messageId: string) => void;
13
+ /** Accept ("Do it") a proactive suggestion bubble (#8792). */
14
+ onAcceptSuggestion?: (message: ChatMessageData) => void;
11
15
  onEdit?: (messageId: string, text: string) => Promise<boolean> | boolean;
12
16
  onSpeak?: (messageId: string, text: string) => void;
13
17
  renderMessageContent?: (message: ChatMessageData) => React.ReactNode;
@@ -15,5 +19,5 @@ export interface ChatTranscriptProps {
15
19
  userMessagesOnRight?: boolean;
16
20
  variant?: ChatVariant;
17
21
  }
18
- export declare const ChatTranscript: React.MemoExoticComponent<({ agentName, carryoverMessages, carryoverOpacity, labels, messages, onCopy, onDelete, onEdit, onSpeak, renderMessageContent, typingIndicator, userMessagesOnRight, variant, }: ChatTranscriptProps) => import("react/jsx-runtime").JSX.Element>;
22
+ export declare const ChatTranscript: React.MemoExoticComponent<({ agentName, carryoverMessages, carryoverOpacity, labels, messages, onCopy, onDelete, onDismissSuggestion, onAcceptSuggestion, onEdit, onSpeak, renderMessageContent, typingIndicator, userMessagesOnRight, variant, }: ChatTranscriptProps) => import("react/jsx-runtime").JSX.Element>;
19
23
  //# sourceMappingURL=chat-transcript.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-transcript.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/composites/chat/chat-transcript.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAMpC,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,WAAW,EACZ,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,eAAe,EAAE,CAAC;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IACzE,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,KAAK,CAAC,SAAS,CAAC;IACrE,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAgFD,eAAO,MAAM,cAAc,4MAcxB,mBAAmB,6CAqIpB,CAAC"}
1
+ {"version":3,"file":"chat-transcript.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/composites/chat/chat-transcript.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAMpC,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,WAAW,EACZ,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,eAAe,EAAE,CAAC;IACtC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,qDAAqD;IACrD,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,8DAA8D;IAC9D,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IACxD,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IACzE,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpD,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,KAAK,CAAC,SAAS,CAAC;IACrE,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB;AAiGD,eAAO,MAAM,cAAc,qPAgBxB,mBAAmB,6CAuIpB,CAAC"}
@@ -49,6 +49,21 @@ function normalizeTranscriptMessage(message) {
49
49
  : {}),
50
50
  };
51
51
  }
52
+ // Memoize normalization per message identity. During streaming only the last
53
+ // message object changes each token frame; the other N-1 are the same reference,
54
+ // so this returns their already-normalized result instead of re-running the
55
+ // split + legacy-reply regex over the whole transcript every frame (O(N)→O(1)).
56
+ // Keyed on the (immutable) message object, so a real new message misses and
57
+ // re-parses; a WeakMap lets dropped messages GC.
58
+ const normalizeCache = new WeakMap();
59
+ function normalizeTranscriptMessageCached(message) {
60
+ const cached = normalizeCache.get(message);
61
+ if (cached)
62
+ return cached;
63
+ const normalized = normalizeTranscriptMessage(message);
64
+ normalizeCache.set(message, normalized);
65
+ return normalized;
66
+ }
52
67
  function getMessageGroupingKey(message) {
53
68
  if (message.role !== "user") {
54
69
  return message.role;
@@ -62,8 +77,8 @@ function getMessageGroupingKey(message) {
62
77
  }
63
78
  return `user:${source}|${senderName}|${senderHandle}|${avatarUrl}`;
64
79
  }
65
- export const ChatTranscript = memo(function ChatTranscript({ agentName = "Agent", carryoverMessages = [], carryoverOpacity = 1, labels, messages, onCopy, onDelete, onEdit, onSpeak, renderMessageContent, typingIndicator, userMessagesOnRight = true, variant = "default", }) {
66
- const normalizedMessages = useMemo(() => messages.map(normalizeTranscriptMessage), [messages]);
80
+ export const ChatTranscript = memo(function ChatTranscript({ agentName = "Agent", carryoverMessages = [], carryoverOpacity = 1, labels, messages, onCopy, onDelete, onDismissSuggestion, onAcceptSuggestion, onEdit, onSpeak, renderMessageContent, typingIndicator, userMessagesOnRight = true, variant = "default", }) {
81
+ const normalizedMessages = useMemo(() => messages.map(normalizeTranscriptMessageCached), [messages]);
67
82
  // Index by id so reply-target resolution is O(1) per row instead of an O(n)
68
83
  // .find() — i.e. O(n²) over a long transcript on a phone.
69
84
  const messagesById = useMemo(() => new Map(normalizedMessages.map((m) => [m.id, m])), [normalizedMessages]);
@@ -103,6 +118,6 @@ export const ChatTranscript = memo(function ChatTranscript({ agentName = "Agent"
103
118
  previousMessage != null &&
104
119
  getMessageGroupingKey(previousMessage) ===
105
120
  getMessageGroupingKey(message);
106
- return (_jsx(ChatMessage, { message: message, isGrouped: isGrouped, enterOnMount: animatedIdsRef.current.has(message.id), agentName: agentName, labels: labels, onCopy: onCopy, onDelete: onDelete, onEdit: onEdit, onSpeak: onSpeak, replyTarget: replyTarget, renderContent: renderMessageContent, userMessagesOnRight: userMessagesOnRight }, message.id));
121
+ return (_jsx(ChatMessage, { message: message, isGrouped: isGrouped, enterOnMount: animatedIdsRef.current.has(message.id), agentName: agentName, labels: labels, onCopy: onCopy, onDelete: onDelete, onDismissSuggestion: onDismissSuggestion, onAcceptSuggestion: onAcceptSuggestion, onEdit: onEdit, onSpeak: onSpeak, replyTarget: replyTarget, renderContent: renderMessageContent, userMessagesOnRight: userMessagesOnRight }, message.id));
107
122
  }), typingIndicator] }));
108
123
  });
@@ -19,6 +19,8 @@ export interface ChatLabelSet {
19
19
  suggestion?: string;
20
20
  /** Dismiss control on a proactive suggestion bubble (#8792). */
21
21
  dismiss?: string;
22
+ /** Accept ("Do it") control on a proactive suggestion bubble (#8792). */
23
+ acceptSuggestion?: string;
22
24
  deleteNo?: string;
23
25
  deleteYes?: string;
24
26
  edit?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"chat-types.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/composites/chat/chat-types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,YAAY,CAAC;AAEnD,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,gFAAgF;IAChF,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;CACjD;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,YAAY,CAAC,EAAE,gBAAgB,CAAC;CACjC;AAED,MAAM,WAAW,iBAAkB,SAAQ,YAAY;CAAG;AAE1D,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAuB,SAAQ,YAAY;CAAG"}
1
+ {"version":3,"file":"chat-types.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/composites/chat/chat-types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,YAAY,CAAC;AAEnD,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,gFAAgF;IAChF,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;CACjD;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,YAAY,CAAC,EAAE,gBAAgB,CAAC;CACjC;AAED,MAAM,WAAW,iBAAkB,SAAQ,YAAY;CAAG;AAE1D,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAuB,SAAQ,YAAY;CAAG"}
@@ -1,4 +1,4 @@
1
- import type { ChatVariant } from "./chat-types";
1
+ import type { ChatVariant } from "./chat-types.js";
2
2
  export interface TypingIndicatorProps {
3
3
  agentAvatarSrc?: string | null;
4
4
  agentName: string;