@shipit-ai/cli 1.167.1 → 1.169.0

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 (396) hide show
  1. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/antigravity.json +1 -1
  2. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/bash.json +1 -0
  3. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/cursor-cli.json +1 -1
  4. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/cursor.json +1 -1
  5. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/fish.json +1 -0
  6. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/powershell.json +1 -0
  7. package/dist/packages/core/src/infrastructure/services/tool-installer/tools/zsh.json +1 -0
  8. package/dist/src/presentation/web/app/layout.d.ts.map +1 -1
  9. package/dist/src/presentation/web/app/layout.js +15 -2
  10. package/dist/src/presentation/web/components/common/base-drawer/base-drawer.d.ts.map +1 -1
  11. package/dist/src/presentation/web/components/common/base-drawer/base-drawer.js +4 -1
  12. package/dist/src/presentation/web/components/common/page-header/page-header.d.ts +3 -1
  13. package/dist/src/presentation/web/components/common/page-header/page-header.d.ts.map +1 -1
  14. package/dist/src/presentation/web/components/common/page-header/page-header.js +8 -2
  15. package/dist/src/presentation/web/components/common/repository-node/repository-node.d.ts.map +1 -1
  16. package/dist/src/presentation/web/components/common/repository-node/repository-node.js +6 -1
  17. package/dist/src/presentation/web/components/common/shipit-ai-logo/shipit-ai-logo.d.ts +9 -1
  18. package/dist/src/presentation/web/components/common/shipit-ai-logo/shipit-ai-logo.d.ts.map +1 -1
  19. package/dist/src/presentation/web/components/common/shipit-ai-logo/shipit-ai-logo.js +12 -6
  20. package/dist/src/presentation/web/components/common/sidebar-collapse-toggle/sidebar-collapse-toggle.d.ts.map +1 -1
  21. package/dist/src/presentation/web/components/common/sidebar-collapse-toggle/sidebar-collapse-toggle.js +5 -1
  22. package/dist/src/presentation/web/components/common/sidebar-nav-item/sidebar-nav-item.d.ts.map +1 -1
  23. package/dist/src/presentation/web/components/common/sidebar-nav-item/sidebar-nav-item.js +15 -0
  24. package/dist/src/presentation/web/components/features/chat/ChatSheet.d.ts.map +1 -1
  25. package/dist/src/presentation/web/components/features/chat/ChatSheet.js +18 -5
  26. package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.d.ts.map +1 -1
  27. package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.js +1 -1
  28. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts.map +1 -1
  29. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.js +5 -1
  30. package/dist/src/presentation/web/components/features/settings/agent-settings-section.d.ts +3 -3
  31. package/dist/src/presentation/web/components/features/settings/agent-settings-section.d.ts.map +1 -1
  32. package/dist/src/presentation/web/components/features/settings/agent-settings-section.js +23 -102
  33. package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.d.ts +2 -3
  34. package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.d.ts.map +1 -1
  35. package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.js +18 -22
  36. package/dist/src/presentation/web/components/features/settings/ci-settings-section.d.ts.map +1 -1
  37. package/dist/src/presentation/web/components/features/settings/ci-settings-section.js +14 -5
  38. package/dist/src/presentation/web/components/features/settings/database-settings-section.d.ts.map +1 -1
  39. package/dist/src/presentation/web/components/features/settings/database-settings-section.js +14 -4
  40. package/dist/src/presentation/web/components/features/settings/environment-settings-section.d.ts +9 -3
  41. package/dist/src/presentation/web/components/features/settings/environment-settings-section.d.ts.map +1 -1
  42. package/dist/src/presentation/web/components/features/settings/environment-settings-section.js +75 -65
  43. package/dist/src/presentation/web/components/features/settings/environment-settings-section.stories.d.ts.map +1 -1
  44. package/dist/src/presentation/web/components/features/settings/environment-settings-section.stories.js +20 -18
  45. package/dist/src/presentation/web/components/features/settings/fab-layout-settings-section.d.ts.map +1 -1
  46. package/dist/src/presentation/web/components/features/settings/fab-layout-settings-section.js +1 -1
  47. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.d.ts +3 -3
  48. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.d.ts.map +1 -1
  49. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.js +48 -50
  50. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.d.ts.map +1 -1
  51. package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.js +25 -25
  52. package/dist/src/presentation/web/components/features/settings/interactive-agent-settings-section.d.ts.map +1 -1
  53. package/dist/src/presentation/web/components/features/settings/interactive-agent-settings-section.js +3 -3
  54. package/dist/src/presentation/web/components/features/settings/notification-settings-section.d.ts +3 -3
  55. package/dist/src/presentation/web/components/features/settings/notification-settings-section.d.ts.map +1 -1
  56. package/dist/src/presentation/web/components/features/settings/notification-settings-section.js +64 -47
  57. package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.d.ts.map +1 -1
  58. package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.js +32 -24
  59. package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
  60. package/dist/src/presentation/web/components/features/settings/settings-page-client.js +28 -381
  61. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts +2 -0
  62. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts.map +1 -1
  63. package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.js +13 -0
  64. package/dist/src/presentation/web/components/features/settings/settings-section-utils.d.ts +13 -10
  65. package/dist/src/presentation/web/components/features/settings/settings-section-utils.d.ts.map +1 -1
  66. package/dist/src/presentation/web/components/features/settings/settings-section-utils.js +10 -10
  67. package/dist/src/presentation/web/components/features/settings/settings-section-utils.stories.d.ts +1 -1
  68. package/dist/src/presentation/web/components/features/settings/settings-section-utils.stories.d.ts.map +1 -1
  69. package/dist/src/presentation/web/components/features/settings/settings-section-utils.stories.js +7 -7
  70. package/dist/src/presentation/web/components/features/settings/stage-timeouts-settings-section.d.ts.map +1 -1
  71. package/dist/src/presentation/web/components/features/settings/stage-timeouts-settings-section.js +1 -1
  72. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.d.ts +3 -3
  73. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.d.ts.map +1 -1
  74. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.js +118 -165
  75. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.d.ts +1 -1
  76. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.d.ts.map +1 -1
  77. package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.js +26 -64
  78. package/dist/src/presentation/web/components/features/skills/category-filter.d.ts.map +1 -1
  79. package/dist/src/presentation/web/components/features/skills/category-filter.js +12 -2
  80. package/dist/src/presentation/web/components/features/skills/skill-card.d.ts.map +1 -1
  81. package/dist/src/presentation/web/components/features/skills/skill-card.js +3 -3
  82. package/dist/src/presentation/web/components/features/skills/skill-detail-drawer.d.ts.map +1 -1
  83. package/dist/src/presentation/web/components/features/skills/skill-detail-drawer.js +27 -1
  84. package/dist/src/presentation/web/components/features/skills/skill-list.js +2 -2
  85. package/dist/src/presentation/web/components/features/skills/skills-page-client.d.ts.map +1 -1
  86. package/dist/src/presentation/web/components/features/skills/skills-page-client.js +2 -2
  87. package/dist/src/presentation/web/components/features/tools/tool-card.d.ts.map +1 -1
  88. package/dist/src/presentation/web/components/features/tools/tool-card.js +20 -11
  89. package/dist/src/presentation/web/components/features/tools/tool-detail-drawer.js +1 -1
  90. package/dist/src/presentation/web/components/features/tools/tools-page-client.d.ts.map +1 -1
  91. package/dist/src/presentation/web/components/features/tools/tools-page-client.js +6 -1
  92. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
  93. package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +39 -43
  94. package/dist/src/presentation/web/components/ui/card.d.ts.map +1 -1
  95. package/dist/src/presentation/web/components/ui/card.js +9 -1
  96. package/dist/src/presentation/web/components/ui/drawer.d.ts.map +1 -1
  97. package/dist/src/presentation/web/components/ui/drawer.js +8 -2
  98. package/dist/src/presentation/web/components/ui/tooltip.d.ts.map +1 -1
  99. package/dist/src/presentation/web/components/ui/tooltip.js +3 -3
  100. package/dist/translations/ar/web.json +1 -0
  101. package/dist/translations/de/web.json +1 -0
  102. package/dist/translations/en/web.json +1 -0
  103. package/dist/translations/es/web.json +1 -0
  104. package/dist/translations/fr/web.json +1 -0
  105. package/dist/translations/he/web.json +1 -0
  106. package/dist/translations/pt/web.json +1 -0
  107. package/dist/translations/ru/web.json +1 -0
  108. package/dist/tsconfig.build.tsbuildinfo +1 -1
  109. package/package.json +1 -1
  110. package/web/.next/BUILD_ID +1 -1
  111. package/web/.next/build-manifest.json +3 -3
  112. package/web/.next/fallback-build-manifest.json +3 -3
  113. package/web/.next/prerender-manifest.json +3 -3
  114. package/web/.next/required-server-files.js +2 -2
  115. package/web/.next/required-server-files.json +2 -2
  116. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/next-font-manifest.json +6 -2
  117. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
  118. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +1 -1
  119. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  120. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  121. package/web/.next/server/app/(dashboard)/@drawer/chat/page/next-font-manifest.json +6 -2
  122. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
  123. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +1 -1
  124. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  125. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  126. package/web/.next/server/app/(dashboard)/@drawer/create/page/next-font-manifest.json +6 -2
  127. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +31 -31
  128. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +1 -1
  129. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  130. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  131. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/next-font-manifest.json +6 -2
  132. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
  133. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +2 -2
  134. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  135. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  136. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/next-font-manifest.json +6 -2
  137. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +37 -37
  138. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +2 -2
  139. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  140. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  141. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/next-font-manifest.json +6 -2
  142. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  143. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +1 -1
  144. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  145. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  146. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/next-font-manifest.json +6 -2
  147. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  148. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -1
  149. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  150. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  151. package/web/.next/server/app/(dashboard)/chat/page/next-font-manifest.json +6 -2
  152. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
  153. package/web/.next/server/app/(dashboard)/chat/page.js +1 -1
  154. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  155. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  156. package/web/.next/server/app/(dashboard)/create/page/next-font-manifest.json +6 -2
  157. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +31 -31
  158. package/web/.next/server/app/(dashboard)/create/page.js +1 -1
  159. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  160. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  161. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/next-font-manifest.json +6 -2
  162. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +37 -37
  163. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +2 -2
  164. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  165. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  166. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/next-font-manifest.json +6 -2
  167. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +37 -37
  168. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +2 -2
  169. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  170. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  171. package/web/.next/server/app/(dashboard)/page/next-font-manifest.json +6 -2
  172. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
  173. package/web/.next/server/app/(dashboard)/page.js +1 -1
  174. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  175. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  176. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/next-font-manifest.json +6 -2
  177. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +28 -28
  178. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +1 -1
  179. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  180. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  181. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/next-font-manifest.json +6 -2
  182. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
  183. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -1
  184. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  185. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  186. package/web/.next/server/app/_global-error.html +1 -1
  187. package/web/.next/server/app/_global-error.rsc +1 -1
  188. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  189. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  190. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  191. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  192. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  193. package/web/.next/server/app/_not-found/page/next-font-manifest.json +6 -2
  194. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
  195. package/web/.next/server/app/_not-found/page.js +1 -1
  196. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  197. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  198. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  199. package/web/.next/server/app/api/dialog/pick-files/route.js.nft.json +1 -1
  200. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  201. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  202. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  203. package/web/.next/server/app/settings/page/next-font-manifest.json +6 -2
  204. package/web/.next/server/app/settings/page/server-reference-manifest.json +11 -11
  205. package/web/.next/server/app/settings/page.js +1 -1
  206. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  207. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  208. package/web/.next/server/app/skills/page/next-font-manifest.json +6 -2
  209. package/web/.next/server/app/skills/page/server-reference-manifest.json +11 -11
  210. package/web/.next/server/app/skills/page.js +1 -1
  211. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  212. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  213. package/web/.next/server/app/tools/page/next-font-manifest.json +6 -2
  214. package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
  215. package/web/.next/server/app/tools/page.js +1 -1
  216. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  217. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  218. package/web/.next/server/app/version/page/next-font-manifest.json +6 -2
  219. package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
  220. package/web/.next/server/app/version/page.js +1 -1
  221. package/web/.next/server/app/version/page.js.nft.json +1 -1
  222. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  223. package/web/.next/server/chunks/[root-of-the-server]__0tb~wwk._.js +1 -1
  224. package/web/.next/server/chunks/ssr/08qz_lucide-react_dist_esm_icons_0c0dui7._.js +3 -0
  225. package/web/.next/server/chunks/ssr/08qz_lucide-react_dist_esm_icons_0c0dui7._.js.map +1 -0
  226. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js +1 -1
  227. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js.map +1 -1
  228. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js +2 -2
  229. package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js.map +1 -1
  230. package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js +1 -1
  231. package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js.map +1 -1
  232. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js +1 -1
  233. package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js.map +1 -1
  234. package/web/.next/server/chunks/ssr/[root-of-the-server]__05_qc0n._.js +1 -1
  235. package/web/.next/server/chunks/ssr/[root-of-the-server]__05_qc0n._.js.map +1 -1
  236. package/web/.next/server/chunks/ssr/{[root-of-the-server]__0uy_5rw._.js → [root-of-the-server]__0ge~xny._.js} +2 -2
  237. package/web/.next/server/chunks/ssr/{[root-of-the-server]__0uy_5rw._.js.map → [root-of-the-server]__0ge~xny._.js.map} +1 -1
  238. package/web/.next/server/chunks/ssr/[root-of-the-server]__0jy4nha._.js +3 -0
  239. package/web/.next/server/chunks/ssr/[root-of-the-server]__0jy4nha._.js.map +1 -0
  240. package/web/.next/server/chunks/ssr/{_0e5cv3q._.js → [root-of-the-server]__0n~o-g-._.js} +2 -2
  241. package/web/.next/server/chunks/ssr/[root-of-the-server]__0n~o-g-._.js.map +1 -0
  242. package/web/.next/server/chunks/ssr/{[root-of-the-server]__02.89uf._.js → [root-of-the-server]__0qda~yi._.js} +2 -2
  243. package/web/.next/server/chunks/ssr/{[root-of-the-server]__02.89uf._.js.map → [root-of-the-server]__0qda~yi._.js.map} +1 -1
  244. package/web/.next/server/chunks/ssr/{[root-of-the-server]__0c0xoi_._.js → [root-of-the-server]__0qxd563._.js} +2 -2
  245. package/web/.next/server/chunks/ssr/{[root-of-the-server]__0c0xoi_._.js.map → [root-of-the-server]__0qxd563._.js.map} +1 -1
  246. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rv1gci._.js +1 -1
  247. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rvrr1j._.js +1 -1
  248. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rvrr1j._.js.map +1 -1
  249. package/web/.next/server/chunks/ssr/[root-of-the-server]__0tq2syh._.js +1 -1
  250. package/web/.next/server/chunks/ssr/{[root-of-the-server]__0r5zhk.._.js → [root-of-the-server]__0t~u8sd._.js} +2 -2
  251. package/web/.next/server/chunks/ssr/{[root-of-the-server]__0r5zhk.._.js.map → [root-of-the-server]__0t~u8sd._.js.map} +1 -1
  252. package/web/.next/server/chunks/ssr/{[root-of-the-server]__04rq9lr._.js → [root-of-the-server]__10tll_l._.js} +2 -2
  253. package/web/.next/server/chunks/ssr/{[root-of-the-server]__04rq9lr._.js.map → [root-of-the-server]__10tll_l._.js.map} +1 -1
  254. package/web/.next/server/chunks/ssr/[root-of-the-server]__12j29w-._.js +1 -1
  255. package/web/.next/server/chunks/ssr/[root-of-the-server]__12j29w-._.js.map +1 -1
  256. package/web/.next/server/chunks/ssr/_0-09vq7._.js +1 -1
  257. package/web/.next/server/chunks/ssr/_0-09vq7._.js.map +1 -1
  258. package/web/.next/server/chunks/ssr/{_138qywk._.js → _01qdxy2._.js} +2 -2
  259. package/web/.next/server/chunks/ssr/{_138qywk._.js.map → _01qdxy2._.js.map} +1 -1
  260. package/web/.next/server/chunks/ssr/_01sesw0._.js +1 -1
  261. package/web/.next/server/chunks/ssr/_01sesw0._.js.map +1 -1
  262. package/web/.next/server/chunks/ssr/_069y.js._.js +2 -2
  263. package/web/.next/server/chunks/ssr/_069y.js._.js.map +1 -1
  264. package/web/.next/server/chunks/ssr/_09r54oy._.js +7 -0
  265. package/web/.next/server/chunks/ssr/_09r54oy._.js.map +1 -0
  266. package/web/.next/server/chunks/ssr/_0__4si~._.js +1 -1
  267. package/web/.next/server/chunks/ssr/_0__4si~._.js.map +1 -1
  268. package/web/.next/server/chunks/ssr/_0_m17kl._.js +1 -1
  269. package/web/.next/server/chunks/ssr/_0_m17kl._.js.map +1 -1
  270. package/web/.next/server/chunks/ssr/_0a_8rlj._.js +3 -0
  271. package/web/.next/server/chunks/ssr/_0a_8rlj._.js.map +1 -0
  272. package/web/.next/server/chunks/ssr/_0d4miu.._.js +1 -1
  273. package/web/.next/server/chunks/ssr/_0d4miu.._.js.map +1 -1
  274. package/web/.next/server/chunks/ssr/_0dy8.0k._.js +3 -0
  275. package/web/.next/server/chunks/ssr/_0dy8.0k._.js.map +1 -0
  276. package/web/.next/server/chunks/ssr/_0e8ern9._.js +1 -1
  277. package/web/.next/server/chunks/ssr/_0e8ern9._.js.map +1 -1
  278. package/web/.next/server/chunks/ssr/_0l2~~pi._.js +3 -0
  279. package/web/.next/server/chunks/ssr/_0l2~~pi._.js.map +1 -0
  280. package/web/.next/server/chunks/ssr/_0n.magx._.js +1 -1
  281. package/web/.next/server/chunks/ssr/_0p3~u8u._.js +2 -2
  282. package/web/.next/server/chunks/ssr/_0p3~u8u._.js.map +1 -1
  283. package/web/.next/server/chunks/ssr/{_00k65h-._.js → _0pa1dkv._.js} +2 -2
  284. package/web/.next/server/chunks/ssr/_0pa1dkv._.js.map +1 -0
  285. package/web/.next/server/chunks/ssr/_0r.3n~3._.js +1 -1
  286. package/web/.next/server/chunks/ssr/_0r.3n~3._.js.map +1 -1
  287. package/web/.next/server/chunks/ssr/_0t59q8r._.js +1 -1
  288. package/web/.next/server/chunks/ssr/_0t59q8r._.js.map +1 -1
  289. package/web/.next/server/chunks/ssr/_0vjw-e_._.js +7 -0
  290. package/web/.next/server/chunks/ssr/_0vjw-e_._.js.map +1 -0
  291. package/web/.next/server/chunks/ssr/_0vyfc4b._.js +1 -1
  292. package/web/.next/server/chunks/ssr/_0vyfc4b._.js.map +1 -1
  293. package/web/.next/server/chunks/ssr/_0w-_hww._.js +1 -1
  294. package/web/.next/server/chunks/ssr/_0w-_hww._.js.map +1 -1
  295. package/web/.next/server/chunks/ssr/{_0-.ckn5._.js → _0wor25i._.js} +2 -2
  296. package/web/.next/server/chunks/ssr/{_0-.ckn5._.js.map → _0wor25i._.js.map} +1 -1
  297. package/web/.next/server/chunks/ssr/_0zk-h5w._.js +1 -1
  298. package/web/.next/server/chunks/ssr/_0zk-h5w._.js.map +1 -1
  299. package/web/.next/server/chunks/ssr/{_0hwjfpu._.js → _0~0jkp_._.js} +2 -2
  300. package/web/.next/server/chunks/ssr/_0~0jkp_._.js.map +1 -0
  301. package/web/.next/server/chunks/ssr/_0~7lwu_._.js +1 -1
  302. package/web/.next/server/chunks/ssr/_0~7lwu_._.js.map +1 -1
  303. package/web/.next/server/chunks/ssr/_1161g9x._.js +1 -1
  304. package/web/.next/server/chunks/ssr/_1161g9x._.js.map +1 -1
  305. package/web/.next/server/chunks/ssr/src_presentation_web_0y11iiz._.js +1 -1
  306. package/web/.next/server/chunks/ssr/src_presentation_web_0y11iiz._.js.map +1 -1
  307. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js +1 -1
  308. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js.map +1 -1
  309. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js +1 -1
  310. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js.map +1 -1
  311. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_0pjb_re._.js +1 -1
  312. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_0w2wqvu._.js +1 -1
  313. package/web/.next/server/chunks/ssr/src_presentation_web_components_0sk2qdt._.js +1 -1
  314. package/web/.next/server/chunks/ssr/src_presentation_web_components_0sk2qdt._.js.map +1 -1
  315. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js +1 -1
  316. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js.map +1 -1
  317. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_0aji.op._.js +1 -1
  318. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_0aji.op._.js.map +1 -1
  319. package/web/.next/server/middleware-build-manifest.js +3 -3
  320. package/web/.next/server/next-font-manifest.js +1 -1
  321. package/web/.next/server/next-font-manifest.json +60 -2
  322. package/web/.next/server/pages/500.html +1 -1
  323. package/web/.next/server/server-reference-manifest.js +1 -1
  324. package/web/.next/server/server-reference-manifest.json +50 -50
  325. package/web/.next/static/chunks/{05enics63g._-.js → 0-ud~1jj7chzu.js} +4 -4
  326. package/web/.next/static/chunks/00m_fbc2z1gyi.js +5 -0
  327. package/web/.next/static/chunks/{0q7ohuqneuur4.js → 09f2lesd_dd3~.js} +1 -1
  328. package/web/.next/static/chunks/0c0dau5pmseko.js +1 -0
  329. package/web/.next/static/chunks/{0ps5sykbi-z5-.js → 0dq50gtgaj63f.js} +1 -1
  330. package/web/.next/static/chunks/{11bi612fz8agh.js → 0in4l8mne5y~_.js} +1 -1
  331. package/web/.next/static/chunks/0inayq2zzadja.js +1 -0
  332. package/web/.next/static/chunks/{0t3xjndx2s1_j.css → 0j.1nx3ly591i.css} +1 -0
  333. package/web/.next/static/chunks/{0-woqr2brccx_.js → 0k0j7anrbg-of.js} +1 -1
  334. package/web/.next/static/chunks/{0ma7k9iohb3bb.js → 0o33urrd3lk~u.js} +1 -1
  335. package/web/.next/static/chunks/0o4m0k3642219.js +1 -0
  336. package/web/.next/static/chunks/0pt-d18f7zxvv.js +1 -0
  337. package/web/.next/static/chunks/{0ls0v8h_qbctm.js → 0u_27fdqa2jeg.js} +1 -1
  338. package/web/.next/static/chunks/0udlnp30o1kjd.js +5 -0
  339. package/web/.next/static/chunks/0xwh.0u-dexsl.js +1 -0
  340. package/web/.next/static/chunks/0yibymrb2j05t.css +1 -0
  341. package/web/.next/static/chunks/103xnw203o9k1.js +1 -0
  342. package/web/.next/static/chunks/{022nrd6snse79.js → 11vbir.u7_zf7.js} +1 -1
  343. package/web/.next/static/chunks/{02phgt~f2c-2q.js → 121v1_d_dfk2k.js} +1 -1
  344. package/web/.next/static/chunks/{0q8ax~44oybo2.js → 12axopx66pocj.js} +1 -1
  345. package/web/.next/static/chunks/12pd180jp8zu..js +5 -0
  346. package/web/.next/static/chunks/13fcwhkw7dle2.js +1 -0
  347. package/web/.next/static/chunks/13q1peb_t9vj8.js +1 -0
  348. package/web/.next/static/chunks/183ehj-b80a~o.js +1 -0
  349. package/web/.next/static/chunks/{0j.wph28jrce1.js → 1874_wt9rit96.js} +1 -1
  350. package/web/.next/static/media/1bffadaabf893a1e-s.16ipb6fqu393i.woff2 +0 -0
  351. package/web/.next/static/media/2bbe8d2671613f1f-s.067x_6k0k23tk.woff2 +0 -0
  352. package/web/.next/static/media/2c55a0e60120577a-s.0bjc5tiuqdqro.woff2 +0 -0
  353. package/web/.next/static/media/5476f68d60460930-s.0wxq9webf.ew4.woff2 +0 -0
  354. package/web/.next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2 +0 -0
  355. package/web/.next/static/media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2 +0 -0
  356. package/web/.next/static/media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2 +0 -0
  357. package/web/package.json +2 -2
  358. package/web/public/favicon.svg +10 -0
  359. package/web/public/icons/tools/antigravity.svg +1 -0
  360. package/web/public/icons/tools/bash.svg +38 -0
  361. package/web/public/icons/tools/cursor-cli.svg +12 -0
  362. package/web/public/icons/tools/cursor.svg +1 -0
  363. package/web/public/icons/tools/fish.svg +153 -0
  364. package/web/public/icons/tools/powershell.svg +29 -0
  365. package/web/public/icons/tools/zsh.svg +1 -0
  366. package/web/.next/server/chunks/ssr/08qz_lucide-react_dist_esm_icons_0zwb4s4._.js +0 -3
  367. package/web/.next/server/chunks/ssr/08qz_lucide-react_dist_esm_icons_0zwb4s4._.js.map +0 -1
  368. package/web/.next/server/chunks/ssr/[root-of-the-server]__0lslgap._.js +0 -7
  369. package/web/.next/server/chunks/ssr/[root-of-the-server]__0lslgap._.js.map +0 -1
  370. package/web/.next/server/chunks/ssr/_00k65h-._.js.map +0 -1
  371. package/web/.next/server/chunks/ssr/_08i-c2n._.js +0 -3
  372. package/web/.next/server/chunks/ssr/_08i-c2n._.js.map +0 -1
  373. package/web/.next/server/chunks/ssr/_0aaotn-._.js +0 -3
  374. package/web/.next/server/chunks/ssr/_0aaotn-._.js.map +0 -1
  375. package/web/.next/server/chunks/ssr/_0e5cv3q._.js.map +0 -1
  376. package/web/.next/server/chunks/ssr/_0hwjfpu._.js.map +0 -1
  377. package/web/.next/server/chunks/ssr/_0phryzt._.js +0 -3
  378. package/web/.next/server/chunks/ssr/_0phryzt._.js.map +0 -1
  379. package/web/.next/server/chunks/ssr/_12un22l._.js +0 -7
  380. package/web/.next/server/chunks/ssr/_12un22l._.js.map +0 -1
  381. package/web/.next/static/chunks/0-lu0b1ewsb0_.js +0 -1
  382. package/web/.next/static/chunks/01~dudieyb7wl.js +0 -5
  383. package/web/.next/static/chunks/02kpdawdtqcxm.js +0 -1
  384. package/web/.next/static/chunks/03s7z6w1lj0w~.js +0 -1
  385. package/web/.next/static/chunks/04~sw.nhpwy6s.css +0 -1
  386. package/web/.next/static/chunks/08611baheit.t.js +0 -1
  387. package/web/.next/static/chunks/0_9k2ybutuphq.js +0 -1
  388. package/web/.next/static/chunks/0m5~9kij3s~81.js +0 -1
  389. package/web/.next/static/chunks/0q~uf2s33.48w.js +0 -1
  390. package/web/.next/static/chunks/15m2wfd5k_7fj.js +0 -1
  391. package/web/.next/static/chunks/15rbgqykl.er8.js +0 -1
  392. package/web/.next/static/chunks/164dnpi666fv_.js +0 -5
  393. package/web/.next/static/chunks/17z2sq7c5z8cr.js +0 -5
  394. /package/web/.next/static/{GSG_c1emY-f_AA00vD56y → SNdaKJ9fpre8tUMRe1jlA}/_buildManifest.js +0 -0
  395. /package/web/.next/static/{GSG_c1emY-f_AA00vD56y → SNdaKJ9fpre8tUMRe1jlA}/_clientMiddlewareManifest.js +0 -0
  396. /package/web/.next/static/{GSG_c1emY-f_AA00vD56y → SNdaKJ9fpre8tUMRe1jlA}/_ssgManifest.js +0 -0
@@ -0,0 +1,7 @@
1
+ module.exports=[34466,a=>{"use strict";let b=(0,a.i(97624).default)("maximize-2",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]]);a.s(["Maximize2",0,b],34466)},78760,53206,26732,740,36797,2778,1771,34075,33195,38265,41913,1602,296,15596,40459,18862,3932,11436,30522,34607,a=>{"use strict";var b=a.i(53083),c=a.i(11321);function d(a){let b=[];for(let c of a.effectTasks)try{c()}catch(a){b.push(a)}if(b.length>0)if(1===b.length)throw b[0];else{for(let a of b)console.error(a);throw AggregateError(b,"Errors during commit")}}function e(a){let b=[];for(let c of a.cells)if(c?.type==="effect"&&(c.deps=null,c.cleanup))try{c.cleanup?.()}catch(a){b.push(a)}finally{c.cleanup=void 0}if(b.length>0)if(1===b.length)throw b[0];else{for(let a of b)console.error(a);throw AggregateError(b,"Errors during cleanup")}}let f="u">typeof process&&!1,g=null;function h(){if(!g)throw Error("No resource fiber available");return g}let i=Symbol("fnSymbol");function j(a,b,c,d=function(a){return f?g?.devStrictMode?g.isFirstRender?"child":"root":a?"root":null:null}(!1)){return{type:a,root:b,markDirty:c,devStrictMode:d,cells:[],currentIndex:0,renderContext:void 0,isFirstRender:!0,isMounted:!1,isNeverMounted:!0}}function k(a){if(!a.isMounted)throw Error("Tried to unmount a fiber that is already unmounted");a.isMounted=!1,e(a)}function l(a,b){let c={effectTasks:[],props:b,output:void 0};a.currentIndex=0;let d=g;g=a;try{if((()=>{a.renderContext=c;try{c.output=function(a,b){let c=a[i];if(!c)throw Error("ResourceElement.type is not a valid Resource");return c(b)}(a.type,b)}finally{a.renderContext=void 0}})(),a.isFirstRender=!1,a.cells.length!==a.currentIndex)throw Error(`Rendered ${a.currentIndex} hooks but expected ${a.cells.length}. Hooks must be called in the exact same order in every render.`)}finally{g=d}return c}function m(a,b){a.isMounted=!0,f&&a.isNeverMounted&&"root"===a.devStrictMode&&(a.isNeverMounted=!1,d(b),e(a)),a.isNeverMounted=!1,d(b)}let n=a=>({version:0,committedVersion:0,dispatchUpdate:a,changelog:[],dirtyCells:[]}),o=a=>{for(let b of a.dirtyCells)b.dirty=!1,b.queue.clear(),b.current=b.workInProgress;a.committedVersion=a.version,a.changelog.length=0,a.dirtyCells.length=0},p=(a,b)=>{let c=a.version>b;if(a.version=b,c){for(let b of a.dirtyCells)b.dirty=!1,b.queue.clear(),b.workInProgress=b.current;if(a.dirtyCells.length=0,b===a.committedVersion)a.changelog.length=0;else{if(a.committedVersion>b)throw Error("Version is less than committed version");for(;a.committedVersion+a.changelog.length>b;)a.changelog.pop();a.changelog.forEach(a=>a()),o(a)}}},q=(a,b)=>{b.dirty||(b.dirty=!0,a.markDirty?.(),a.root.dirtyCells.push(b))};function r(a){let b=(0,c.useMemo)(()=>n(a=>e(a)),[]),[d,e]=(0,c.useReducer)((a,c)=>(p(b,a),a+ +!!c()),0);p(b,d);let g=(()=>{if(!f)return null;let a=(0,c.useRef)(0),b=0===a.current;return((0,c.useState)(()=>a.current++),2!==a.current)?null:b?"child":"root"})(),h=(0,c.useMemo)(()=>(a.key,j(a.type,b,void 0,g)),[a.type,a.key,b,g]),i=l(h,a.props);return(0,c.useLayoutEffect)(()=>()=>k(h),[h]),(0,c.useLayoutEffect)(()=>{o(b),m(h,i)}),i.output}function s(a){let b=a=>({type:b,props:a});return b[i]=a,b}a.s(["useResource",0,r],53206),a.s(["resource",0,s],26732);let t=(a,b)=>{let c=h(),d=c.currentIndex++;if(!c.isFirstRender&&d>=c.cells.length)throw Error("Rendered more hooks than during the previous render. Hooks must be called in the exact same order in every render.");let e=c.cells[d];if(e||(e=b(),c.cells[d]=e),e.type!==a)throw Error("Hook order changed between renders");return e};function u(a,b,c,d){let e=t("reducer",()=>{let b=h(),g=d?d(c):c;return f&&b.devStrictMode&&d&&d(c),{type:"reducer",queue:new Set,dirty:!1,workInProgress:g,current:g,reducer:a,dispatch:c=>{let d={action:c,hasEagerState:!1,eagerState:void 0};if(b.renderContext)throw Error("Resource updated during render");if(b.isNeverMounted)throw Error("Resource updated before mount");b.root.dispatchUpdate(()=>{let f=0===b.root.dirtyCells.length&&!d.hasEagerState&&(d.eagerState=a(e.workInProgress,c),d.hasEagerState=!0,Object.is(e.current,d.eagerState))?null:()=>{q(b,e),e.queue.add(d)};return!!f&&(f(),b.root.changelog.push(f),!0)})}}}),g=h(),i=a===e.reducer;for(let b of(e.reducer=a,e.queue))b.hasEagerState&&i||(b.eagerState=a(e.workInProgress,b.action),b.hasEagerState=!0),f&&g.devStrictMode&&a(e.workInProgress,b.action),e.workInProgress=b.eagerState;if(e.queue.clear(),b){let a=b(e.workInProgress);Object.is(a,e.workInProgress)||(q(g,e),e.workInProgress=a)}return[e.workInProgress,e.dispatch]}let v=(a,b)=>{if(a.length!==b.length)return!1;for(let c=0;c<a.length;c++)if(!Object.is(a[c],b[c]))return!1;return!0},w=()=>{throw Error("Memo reducer should not be called")},x=(a,b)=>{let c=h(),[d]=u(w,d=>{if(d&&v(d.deps,b))return d;let e=a();return f&&c.devStrictMode&&a(),{value:e,deps:b}},null,void 0);return d.value};a.s(["tapMemo",0,x],740);let y=()=>({type:"effect",cleanup:void 0,deps:null});function z(a,b){let c=t("effect",y);if(!(b&&c.deps&&v(c.deps,b))){if(null!==c.deps&&!!b!=!!c.deps)throw Error("tapEffect called with and without dependencies across re-renders");h().renderContext.effectTasks.push(()=>{let d=[];try{c.cleanup?.()}catch(a){d.push(a)}finally{c.cleanup=void 0}try{let b=a();if(void 0!==b&&"function"!=typeof b)throw Error(`An effect function must either return a cleanup function or nothing. Received: ${typeof b}`);c.cleanup=b}catch(a){d.push(a)}if(c.deps=b,d.length>0)if(1===d.length)throw d[0];else{for(let a of d)console.error(a);throw AggregateError(d,"Errors during commit")}})}}a.s(["tapEffect",0,z],36797);let A=(a,b)=>x(()=>a,b),B=(a,b)=>"function"==typeof b?b(a):b,C=a=>"function"==typeof a?a():a;function D(a){return u(B,void 0,a,C)}function E(a,b){let[c]=D(a);return c}function F(a){let[b]=D(()=>({current:a}));return b}function G(a,b){let c=F(0),d=c.current,e=E(h,[]),f=E(()=>()=>{c.current++,e.markDirty?.()},[]),g=E(()=>new Map,[]),i=b?A(a,b):a,n=x(()=>{let a=i(),b=new Set,c=[],d=0;for(let h=0;h<a.length;h++){let i=a[h],k=i.key;if(void 0===k)throw Error(`tapResources did not provide a key for array at index ${h}`);if(b.has(k))throw Error(`Duplicate key ${k} in tapResources`);b.add(k);let m=g.get(k);if(m)if(m.fiber.type!==i.type){let a=j(i.type,e.root,f),b=l(a,i.props);m.next=[a,b],c.push(b.output)}else m.next=l(m.fiber,i.props),c.push(m.next.output);else{let a=j(i.type,e.root,f),b=l(a,i.props);m={fiber:a,next:b},d++,g.set(k,m),c.push(b.output)}}if(g.size>c.length-d)for(let a of g.keys())b.has(a)||(g.get(a).next="delete");return c},[i,d]);return z(()=>()=>{for(let a of g.keys())k(g.get(a).fiber)},[]),z(()=>{for(let[a,b]of g.entries())"delete"===b.next?(b.fiber.isMounted&&k(b.fiber),g.delete(a)):Array.isArray(b.next)?(k(b.fiber),b.fiber=b.next[0],m(b.fiber,b.next[1])):m(b.fiber,b.next)},[n]),n}function H(a){let b=F(a);if(z(()=>{b.current=a}),f){let a=h();return A((...c)=>{if(a.renderContext)throw Error("tapEffectEvent cannot be called during render");return b.current(...c)},[a])}return b.current}function I(a,b){let c=h(),d=F(0),e=x(()=>(a.key,j(a.type,c.root,()=>{d.current++,c.markDirty?.()})),[a.type,a.key,c]),f=b?x(()=>l(e,a.props),[e,...b,d.current]):l(e,a.props);return z(()=>()=>k(e),[e]),z(()=>{m(e,f)},[e,f]),f.output}function J(a,b){return{...b,key:a}}a.s(["tapState",0,D],2778),a.s(["tapRef",0,F],1771),a.s(["tapEffectEvent",0,H],34075);let K={schedulers:new Set([]),isScheduled:!1};class L{_task;_isDirty=!1;constructor(a){this._task=a}get isDirty(){return this._isDirty}markDirty(){this._isDirty=!0,K.schedulers.add(this),M()}runTask(){this._isDirty=!1,this._task()}}let M=()=>{K.isScheduled||(K.isScheduled=!0,O())},N=()=>{try{let a=[],b=0;for(let c of K.schedulers)if(K.schedulers.delete(c),c.isDirty){if(++b>50)throw Error("Maximum update depth exceeded. This can happen when a resource repeatedly calls setState inside tapEffect.");try{c.runTask()}catch(b){a.push(b)}}if(a.length>0)if(1===a.length)throw a[0];else{for(let b of a)console.error(b);throw AggregateError(a,"Errors occurred during flushSync")}}finally{K.schedulers.clear(),K.isScheduled=!1}},O=(()=>{if("u">typeof MessageChannel){let a=new MessageChannel;return a.port1.onmessage=N,()=>a.port2.postMessage(null)}return()=>setTimeout(N,0)})();a.s(["UpdateScheduler",0,L,"flushResourcesSync",0,a=>{let b=K;K={schedulers:new Set([]),isScheduled:!0};try{let b=a();return N(),b}finally{K=b}}],33195);let P=Symbol("tap.Context"),Q=a=>({[P]:a}),R=(a,b,c)=>{let d=a[P];a[P]=b;try{return c()}finally{a[P]=d}},S=a=>a[P],T=Symbol("assistant-ui.store.clientIndex"),U=Q([]),V=new Set(["$$typeof","nodeType","then"]),W=(a,b)=>a===Symbol.toStringTag?b:"symbol"==typeof a?void 0:"toJSON"===a?()=>b:!!V.has(a)&&void 0;class X{getOwnPropertyDescriptor(a,b){let c=this.get(a,b);if(void 0!==c)return{value:c,writable:!1,enumerable:!0,configurable:!1}}set(){return!1}setPrototypeOf(){return!1}defineProperty(){return!1}deleteProperty(){return!1}preventExtensions(){return!1}}let Y=a=>{let b=s(a);return a=>{let c=b(a);return void 0===a.key?c:J(a.key,c)}},Z=Symbol("assistant-ui.store.getValue"),$=new Map;class _ extends X{outputRef;index;boundFns;cachedReceiver;constructor(a,b){super(),this.outputRef=a,this.index=b}get(a,b,c){if(b===Z)return this.outputRef.current;if(b===T)return this.index;let d=W(b,"ClientProxy");if(!1!==d)return d;let e=this.outputRef.current[b];if("function"==typeof e){this.cachedReceiver!==c&&(this.boundFns=new Map,this.cachedReceiver=c);let a=this.boundFns.get(b);if(!a){let d;a=(!(d=$.get(b))&&(d=function(...a){if(!this||"object"!=typeof this)throw Error(`Method "${String(b)}" called without proper context. This may indicate the function was called incorrectly.`);let c=this[Z];if(!c)throw Error(`Method "${String(b)}" called on invalid client proxy. Ensure you are calling this method on a valid client instance.`);let d=c[b];if(!d)throw Error(`Method "${String(b)}" is not implemented.`);if("function"!=typeof d)throw Error(`"${String(b)}" is not a function.`);return d(...a)},$.set(b,d)),d).bind(c),this.boundFns.set(b,a)}return a}return e}ownKeys(){return Object.keys(this.outputRef.current)}has(a,b){return b===Z||b===T||b in this.outputRef.current}}let aa=Y(a=>{var b;let c,d=F(null),e=S(U).length,f=x(()=>new Proxy({},new _(d,e)),[e]),g=(b=()=>I(a),c=S(U),R(U,x(()=>[...c,f],[c,f]),b));return d.current||(d.current=g),z(()=>{d.current=g}),{methods:f,state:g.getState?.(),key:a.key}}),ab=Symbol("assistant-ui.store.proxiedAssistantState"),ac=a=>"on"===a||"subscribe"===a||"symbol"==typeof a,ad=a=>new Proxy({},new class extends X{get(b,c){let d=W(c,"AssistantState");if(!1!==d)return d;if(!ac(c)){let b=a[c]()[Z];if(!b)throw Error("Client scope contains a non-client resource. Ensure your Derived get() returns a client created with tapClientResource(), not a plain resource.");return b.getState?.()}}ownKeys(){return Object.keys(a).filter(a=>!ac(a))}has(b,c){return!ac(c)&&c in a}});a.s(["PROXIED_ASSISTANT_STATE_SYMBOL",0,ab,"createProxiedAssistantState",0,ad,"getProxiedAssistantState",0,a=>a[ab]],38265);let ae=()=>()=>{},af=a=>{let b=()=>{throw Error(a)};return b.source=null,b.query=null,b},ag=new Proxy({},new class extends X{get(a,b){if("subscribe"===b||"on"===b)return ae;if(b===ab)return ah;let c=W(b,"DefaultAssistantClient");return!1!==c?c:af("You are using a component or hook that requires an AuiProvider. Wrap your component in an <AuiProvider> component.")}ownKeys(){return["subscribe","on",ab]}has(a,b){return"subscribe"===b||"on"===b||b===ab}}),ah=ad(ag),ai=()=>new Proxy({},{get(a,b){let c=W(b,"AssistantClient");return!1!==c?c:af(`The current scope does not have a "${String(b)}" property.`)}}),aj=(0,c.createContext)(ag),ak=()=>(0,c.useContext)(aj),al=({value:a,children:c})=>(0,b.jsx)(aj.Provider,{value:a,children:c});a.s(["AuiProvider",0,al,"DefaultAssistantClient",0,ag,"createRootAssistantClient",0,ai,"useAssistantContextValue",0,ak],41913);let am=s(a=>null);a.s(["Derived",0,am],1602);let an=Symbol("assistant-ui.transform-scopes");function ao(a,b){if(a[an])throw Error("transformScopes is already attached to this resource");a[an]=b}let ap=a=>x(()=>a,[...Object.entries(a).flat()]),aq=a=>"string"==typeof a?{scope:a.split(".")[0],event:a}:{scope:a.scope,event:a.event};a.s(["normalizeEventSelector",0,aq],296);let ar=s(()=>E(()=>{let a=new Map,b=new Set,c=new Set;return{on(c,d){if("*"===c)return b.add(d),()=>b.delete(d);let e=a.get(c);return e||(e=new Set,a.set(c,e)),e.add(d),()=>{e.delete(d),0===e.size&&a.delete(c)}},emit(c,d,e){let f=a.get(c);(f||0!==b.size)&&queueMicrotask(()=>{let a=[];if(f)for(let b of f)try{b(d,e)}catch(b){a.push(b)}if(b.size>0){let f={event:c,payload:d};for(let c of b)try{c(f,e)}catch(b){a.push(b)}}if(a.length>0)if(1===a.length)throw a[0];else{for(let b of a)console.error(b);throw AggregateError(a,"Errors occurred during event emission")}})},subscribe:a=>(c.add(a),()=>c.delete(a)),notifySubscribers(){for(let a of c)try{a()}catch(a){console.error("NotificationManager: subscriber callback error",a)}}}},[])),as=Q(null),at=()=>{let a=S(as);if(!a)throw Error("AssistantTapContext is not available");return a},au=()=>{let{emit:a}=at(),b=S(U);return H((c,d)=>{a(c,d,b)})},av=a=>x(()=>a,a),aw=s(({element:a,emit:b,clientRef:c})=>{let{methods:d,state:e}=R(as,{clientRef:c,emit:b},()=>I(aa(a)));return x(()=>({state:e,methods:d}),[d,e])}),ax=s(({element:a,notifications:b,clientRef:c,name:d})=>{var e;let g,h,i,q,r,s,t,u,v,w=(e=aw({element:a,emit:b.emit,clientRef:c}),g=E(()=>new L(()=>v(null)),[]),h=E(()=>[],[]),p((i=x(()=>(e.key,j(e.type,n(a=>{(g.isDirty||a())&&(h.push(a),g.markDirty())}))),[e.type,e.key])).root,i.root.committedVersion),q=l(i,e.props),r=F(!1),s=F(e.props),t=F(q.output),u=E(()=>new Set,[]),v=H(a=>{if(null===a&&(p(i.root,2),p(i.root,1),h.forEach(a=>{f&&i.devStrictMode&&a(),a()}),f&&i.devStrictMode&&l(i,s.current),a=l(i,s.current)),g.isDirty)throw Error("Scheduler is dirty, this should never happen");o(i.root),h.length=0,r.current&&m(i,a),g.isDirty||t.current===a.output||(t.current=a.output,u.forEach(a=>a()))}),z(()=>(r.current=!0,()=>{r.current=!1,k(i)}),[i]),z(()=>{s.current=q.props,o(i.root),m(i,q),g.isDirty||t.current===q.output||(t.current=q.output,u.forEach(a=>a()))}),x(()=>({getValue:()=>t.current,subscribe:a=>(u.add(a),()=>u.delete(a))}),[]));return z(()=>w.subscribe(b.notifySubscribers),[w,b]),x(()=>{let a=()=>w.getValue().methods;return Object.defineProperties(a,{source:{value:"root",writable:!1},query:{value:{},writable:!1},name:{value:d,configurable:!0}}),a},[w,d])}),ay=s(()=>x(()=>({clients:[],subscribe:void 0,on:void 0}),[])),az=s(({clients:a,clientRef:b})=>{let c=I(ar());z(()=>b.parent.subscribe(c.notifySubscribers),[b,c]);let d=av(G(()=>Object.keys(a).map(d=>J(d,ax({element:a[d],notifications:c,clientRef:b,name:d}))),[a,c,b]));return x(()=>({clients:d,subscribe:c.subscribe,on:function(a,d){if(!this)throw Error("const { on } = useAui() is not supported. Use aui.on() instead.");let{scope:e,event:f}=aq(a);if("*"!==e&&null===this[e].source)throw Error(`Scope "${e}" is not available. Use { scope: "*", event: "${f}" } to listen globally.`);let g=c.on(f,(a,b)=>{if("*"===e)return void d(a);let c=this[e](),f=c[T];c===b[f]&&d(a)});if("*"!==e&&null===b.parent[e].source)return g;let h=b.parent.on(a,d);return()=>{g(),h()}}}),[d,c,b])}),aA=(a,b,c)=>{if("source"in a&&"query"in a)return a;if(c.dep===a)return c.meta;let d=a.getMeta(b.current);return c.meta=d,c.dep=a,d},aB=s(({element:a,clientRef:b,name:c})=>{let d=H(()=>a.props);return x(()=>{let a=()=>d().get(b.current),e={};return Object.defineProperties(a,{source:{get:()=>aA(d(),b,e).source},query:{get:()=>aA(d(),b,e).query},name:{value:c,configurable:!0}}),a},[b,c])}),aC=s(({clients:a,clientRef:b})=>av(G(()=>Object.keys(a).map(c=>J(c,aB({element:a[c],clientRef:b,name:c}))),[a,b]))),aD=s(({parent:a,clients:b})=>{let{rootClients:c,derivedClients:d}=((a,b)=>{let{rootClients:c,derivedClients:d}=function(a,b){let c={...a},d=new Set,e=!0;for(;e;)for(let a of(e=!1,Object.values(c))){if(a.type===am||d.has(a.type))continue;d.add(a.type);let f=a.type[an];if(f){f(c,b),e=!0;break}}let f={},g={};for(let[a,b]of Object.entries(c))b.type===am?g[a]=b:f[a]=b;return{rootClients:f,derivedClients:g}}(a,b);return{rootClients:ap(c),derivedClients:ap(d)}})(b,a),e=F({parent:a,current:null}).current;z(()=>{e.current=h});let f=I(Object.keys(c).length>0?az({clients:c,clientRef:e}):ay()),g=I(aC({clients:d,clientRef:e})),h=x(()=>{let b=Object.create(a===ag?ai():a);for(let c of(Object.assign(b,{subscribe:f.subscribe??a.subscribe,on:f.on??a.on,[ab]:ad(b)}),f.clients))b[c.name]=c;for(let a of g)b[a.name]=a;return b},[a,f,g]);return null===e.current&&(e.current=h),h});function aE(a,{parent:b}={parent:ak()}){if(a)return r(aD({parent:b??ag,clients:a}));if(null===b)throw Error("received null parent, this usage is not allowed");return b}a.s(["useAui",0,aE],15596);let aF=Y(a=>{if(void 0===a.key)throw Error("tapClientResource: Element has no key");return I(aa(a))});function aG(a,b){let c=G(()=>a().map(a=>aF(a)),b),d=x(()=>Object.keys(c),[c]),e=x(()=>c.reduce((a,b,c)=>(a[b.key]=c,a),{}),[c]);return{state:x(()=>c.map(a=>a.state),[c]),get:a=>{if("index"in a){if(a.index<0||a.index>=d.length)throw Error(`tapClientLookup: Index ${a.index} out of bounds (length: ${d.length})`);return c[a.index].methods}let b=e[a.key];if(void 0===b)throw Error(`tapClientLookup: Key "${a.key}" not found`);return c[b].methods}}}let aH=a=>{let[,b]=D(a.getState);return z(()=>(b(a.getState()),a.subscribe(()=>{b(a.getState())})),[a]),a.getState()},aI=s(({runtime:a})=>{let b=aH(a),c=au();return z(()=>{let b=[];for(let d of["switchedTo","switchedAway"]){let e=a.unstable_on(d,()=>{c(`threadListItem.${d}`,{threadId:a.getState().id})});b.push(e)}return()=>{for(let a of b)a()}},[a,c]),{getState:()=>b,switchTo:a.switchTo,rename:a.rename,archive:a.archive,unarchive:a.unarchive,delete:a.delete,generateTitle:a.generateTitle,initialize:a.initialize,detach:a.detach,__internal_getRuntime:()=>a}}),aJ=s(({runtime:a})=>{let b=aH(a);return{getState:()=>b,remove:a.remove,__internal_getRuntime:()=>a}}),aK=s(({runtime:a,index:b})=>I(aJ({runtime:x(()=>a.getAttachmentByIndex(b),[a,b])}))),aL=s(({threadIdRef:a,messageIdRef:b,runtime:c})=>{let d=aH(c),e=au();z(()=>{let d=[];for(let f of["send","attachmentAdd"]){let g=c.unstable_on(f,()=>{e(`composer.${f}`,{threadId:a.current,...b&&{messageId:b.current}})});d.push(g)}return d.push(c.unstable_on("attachmentAddError",()=>{let d=c.getState().attachments.findLast(a=>"incomplete"===a.status.type&&"error"===a.status.reason);e("composer.attachmentAddError",{threadId:a.current,...b&&{messageId:b.current},...d&&{attachmentId:d.id}})})),()=>{for(let a of d)a()}},[c,e,a,b]);let f=aG(()=>d.attachments.map((a,b)=>J(a.id,aK({runtime:c,index:b}))),[d.attachments,c]),g=x(()=>({text:d.text,role:d.role,attachments:f.state,runConfig:d.runConfig,isEditing:d.isEditing,canCancel:d.canCancel,attachmentAccept:d.attachmentAccept,isEmpty:d.isEmpty,type:d.type??"thread",dictation:d.dictation,quote:d.quote,queue:[]}),[d,f.state]);return{getState:()=>g,setText:c.setText,setRole:c.setRole,setRunConfig:c.setRunConfig,addAttachment:c.addAttachment,reset:c.reset,clearAttachments:c.clearAttachments,send:c.send,cancel:c.cancel,beginEdit:c.beginEdit??(()=>{throw Error("beginEdit is not supported in this runtime")}),startDictation:c.startDictation,stopDictation:c.stopDictation,setQuote:c.setQuote,attachment:a=>"id"in a?f.get({key:a.id}):f.get(a),queueItem:()=>{throw Error("Queue is not supported in this runtime")},__internal_getRuntime:()=>c}}),aM=s(({runtime:a})=>{let b=aH(a);return{getState:()=>b,addToolResult:b=>a.addToolResult(b),resumeToolCall:b=>a.resumeToolCall(b),__internal_getRuntime:()=>a}}),aN=s(({runtime:a,index:b})=>I(aJ({runtime:x(()=>a.getAttachmentByIndex(b),[a,b])}))),aO=s(({runtime:a,index:b})=>I(aM({runtime:x(()=>a.getMessagePartByIndex(b),[a,b])}))),aP=s(({runtime:a,threadIdRef:b})=>{let c=aH(a),[d,e]=D(!1),[f,g]=D(!1),h=x(()=>({get current(){return a.getState().id}}),[a]),i=I(aa(aL({runtime:a.composer,threadIdRef:b,messageIdRef:h}))),j=aG(()=>c.content.map((b,c)=>J("toolCallId"in b&&null!=b.toolCallId?`toolCallId-${b.toolCallId}`:`index-${c}`,aO({runtime:a,index:c}))),[c.content,a]),k=aG(()=>(c.attachments??[]).map((b,c)=>J(b.id,aN({runtime:a,index:c}))),[c.attachments,a]),l=x(()=>({...c,parts:j.state,composer:i.state,isCopied:d,isHovering:f}),[c,j.state,i.state,d,f]);return{getState:()=>l,composer:()=>i.methods,reload:b=>a.reload(b),speak:()=>a.speak(),stopSpeaking:()=>a.stopSpeaking(),submitFeedback:b=>a.submitFeedback(b),switchToBranch:b=>a.switchToBranch(b),getCopyText:()=>a.unstable_getCopyText(),part:a=>"index"in a?j.get({index:a.index}):j.get({key:`toolCallId-${a.toolCallId}`}),attachment:a=>"id"in a?k.get({key:a.id}):k.get(a),setIsCopied:e,setIsHovering:g,__internal_getRuntime:()=>a}}),aQ=s(({runtime:a,id:b,threadIdRef:c})=>I(aP({runtime:x(()=>a.getMessageById(b),[a,b]),threadIdRef:c}))),aR=s(({runtime:a})=>{let b=aH(a),c=au();z(()=>{let b=[];for(let d of["runStart","runEnd","initialize","modelContextUpdate"]){let e=a.unstable_on(d,()=>{c(`thread.${d}`,{threadId:a.getState()?.threadId||"unknown"})});b.push(e)}return()=>{for(let a of b)a()}},[a,c]);let d=x(()=>({get current(){return a.getState().threadId}}),[a]),e=I(aa(aL({runtime:a.composer,threadIdRef:d}))),f=aG(()=>b.messages.map(b=>J(b.id,aQ({runtime:a,id:b.id,threadIdRef:d}))),[b.messages,a,d]),g=x(()=>({isEmpty:0===f.state.length&&!b.isLoading,isDisabled:b.isDisabled,isLoading:b.isLoading,isRunning:b.isRunning,capabilities:b.capabilities,state:b.state,suggestions:b.suggestions,extras:b.extras,speech:b.speech,voice:b.voice,composer:e.state,messages:f.state}),[b,f,e.state]);return{getState:()=>g,composer:()=>e.methods,append:a.append,startRun:a.startRun,resumeRun:a.resumeRun,unstable_resumeRun:a.resumeRun,cancelRun:a.cancelRun,getModelContext:a.getModelContext,export:a.export,import:a.import,reset:a.reset,stopSpeaking:a.stopSpeaking,connectVoice:a.connectVoice,disconnectVoice:a.disconnectVoice,getVoiceVolume:a.getVoiceVolume,subscribeVoiceVolume:a.subscribeVoiceVolume,muteVoice:a.muteVoice,unmuteVoice:a.unmuteVoice,message:a=>"id"in a?f.get({key:a.id}):f.get(a),__internal_getRuntime:()=>a}}),aS=s(({runtime:a,id:b})=>I(aI({runtime:x(()=>a.getItemById(b),[a,b])}))),aT=s(({runtime:a,__internal_assistantRuntime:b})=>{let c=aH(a),d=I(aa(aR({runtime:a.main}))),e=aG(()=>Object.keys(c.threadItems).map(b=>J(b,aS({runtime:a,id:b}))),[c.threadItems,a]),f=x(()=>({mainThreadId:c.mainThreadId,newThreadId:c.newThreadId??null,isLoading:c.isLoading,threadIds:c.threadIds,archivedThreadIds:c.archivedThreadIds,threadItems:e.state,main:d.state}),[c,e.state,d.state]);return{getState:()=>f,thread:()=>d.methods,item:a=>{if("main"===a)return e.get({key:f.mainThreadId});if("id"in a)return e.get({key:a.id});let{index:b,archived:c=!1}=a,d=c?f.archivedThreadIds[b]:f.threadIds[b];return e.get({key:d})},switchToThread:async b=>{await a.switchToThread(b)},switchToNewThread:async()=>{await a.switchToNewThread()},__internal_getAssistantRuntime:()=>b}});class aU{_providers=new Set;getModelContext(){return Array.from(this._providers).map(a=>a.getModelContext()).sort((a,b)=>(b.priority??0)-(a.priority??0)).reduce((a,b)=>{if(b.system&&(a.system?a.system+=`
2
+
3
+ ${b.system}`:a.system=b.system),b.tools)for(let[c,d]of Object.entries(b.tools)){let b=a.tools?.[c];if(b&&b!==d)throw Error(`You tried to define a tool with the name ${c}, but it already exists.`);a.tools||(a.tools={}),a.tools[c]=d}return b.config&&(a.config={...a.config,...b.config}),b.callSettings&&(a.callSettings={...a.callSettings,...b.callSettings}),a},{})}registerModelContextProvider(a){this._providers.add(a);let b=a.subscribe?.(()=>{this.notifySubscribers()});return this.notifySubscribers(),()=>{this._providers.delete(a),b?.(),this.notifySubscribers()}}_subscribers=new Set;notifySubscribers(){for(let a of this._subscribers)a()}subscribe(a){return this._subscribers.add(a),()=>this._subscribers.delete(a)}}a.s(["CompositeContextProvider",0,aU],40459);let aV=s(()=>{let[a]=D(()=>({version:2})),b=x(()=>new aU,[]);return{getState:()=>a,getModelContext:()=>b.getModelContext(),subscribe:a=>b.subscribe(a),register:a=>b.registerModelContextProvider(a)}}),aW=s(a=>({getState:()=>a})),aX=s(a=>{let[b]=D(()=>({suggestions:(a??[]).map(a=>"string"==typeof a?{title:a,label:"",prompt:a}:{title:a.title,label:a.label,prompt:a.prompt})})),c=aG(()=>b.suggestions.map((a,b)=>J(b,aW(a))),[b.suggestions]);return{getState:()=>b,suggestion:({index:a})=>c.get({index:a})}}),aY=s(a=>{let b=at().clientRef;return z(()=>a.registerModelContextProvider(b.current.modelContext()),[a,b]),I(aT({runtime:a.threads,__internal_assistantRuntime:a}))}),aZ=s(()=>{let[a,b]=D(()=>({renderers:{}}));return{getState:()=>a,setDataUI:A((a,c)=>(b(b=>({...b,renderers:{...b.renderers,[a]:[...b.renderers[a]??[],c]}})),()=>{b(b=>({...b,renderers:{...b.renderers,[a]:b.renderers[a]?.filter(a=>a!==c)??[]}}))}),[])}}),a$=s(({toolkit:a})=>{let[b,c]=D(()=>({tools:{}})),d=at().clientRef,e=A((a,b)=>(c(c=>({...c,tools:{...c.tools,[a]:[...c.tools[a]??[],b]}})),()=>{c(c=>({...c,tools:{...c.tools,[a]:c.tools[a]?.filter(a=>a!==b)??[]}}))}),[]);return z(()=>{if(!a)return;let b=[];for(let[c,d]of Object.entries(a))d.render&&b.push(e(c,d.render));let c=Object.entries(a).reduce((a,[b,c])=>{let{render:d,...e}=c;return a[b]=e,a},{});return b.push(d.current.modelContext().register({getModelContext:()=>({tools:c})})),()=>{b.forEach(a=>a())}},[a,e,d]),{getState:()=>b,setToolUI:e}});ao(a$,(a,b)=>{a.modelContext||null!==b.modelContext.source||(a.modelContext=aV())});let a_=s(a=>I(aY(a)));ao(a_,(a,b)=>{a.thread??=am({source:"threads",query:{type:"main"},get:a=>a.threads().thread("main")}),a.threadListItem??=am({source:"threads",query:{type:"main"},get:a=>a.threads().item("main")}),a.composer??=am({source:"thread",query:{},get:a=>a.threads().thread("main").composer()}),a.modelContext||null!==b.modelContext.source||(a.modelContext=aV()),a.suggestions||null!==b.suggestions.source||(a.suggestions=aX()),a.tools||null!==b.tools.source||(a.tools=a$({})),a.dataRenderers||null!==b.dataRenderers.source||(a.dataRenderers=aZ())});let a0=(0,c.memo)(({runtime:a,aui:c=null,children:d})=>{let e=aE({threads:a_(a)},{parent:c}),f=a._core?.RenderComponent;return(0,b.jsxs)(al,{value:e,children:[f&&(0,b.jsx)(f,{}),d]})}),a1=a=>{let b,c=new Set,d=(a,d)=>{let e="function"==typeof a?a(b):a;if(!Object.is(e,b)){let a=b;b=(null!=d?d:"object"!=typeof e||null===e)?e:Object.assign({},b,e),c.forEach(c=>c(b,a))}},e=()=>b,f={setState:d,getState:e,getInitialState:()=>g,subscribe:a=>(c.add(a),()=>c.delete(a))},g=b=a(d,e,f);return f},a2=a=>{let b=a?a1(a):a1,d=a=>(function(a,b=a=>a){let d=c.default.useSyncExternalStore(a.subscribe,c.default.useCallback(()=>b(a.getState()),[a,b]),c.default.useCallback(()=>b(a.getInitialState()),[a,b]));return c.default.useDebugValue(d),d})(b,a);return Object.assign(d,b),d},a3=a=>a?a2(a):a2;a.s(["create",0,a3],18862);let a4=a=>{let b=new Map,c=()=>{let c=0;for(let a of b.values())c+=a;a(c)};return{register:()=>{let a=Symbol();return b.set(a,0),{setHeight:d=>{b.get(a)!==d&&(b.set(a,d),c())},unregister:()=>{b.delete(a),c()}}}}};function a5(a,b){function c(c){let d=a(c);return d?d[b]:null}return{[b]:function(a){let b,d=!1;"function"==typeof a?b=a:a&&"object"==typeof a&&(d=!!a.optional,b=a.selector);let e=c({optional:d});return e?b?e(b):e():null},[`${b}Store`]:c}}a.s(["createContextStoreHook",0,a5],3932);let a6=(0,c.createContext)(null),{useThreadViewport:a7,useThreadViewportStore:a8}=a5(function(a){let b=(0,c.useContext)(a6);if(!a?.optional&&!b)throw Error("This component must be used within ThreadPrimitive.Viewport.");return b},"useThreadViewport");a.s(["ThreadViewportContext",0,a6,"useThreadViewport",0,a7,"useThreadViewportStore",0,a8],11436);let a9=a=>a;a.s(["writableStore",0,a9],30522);let ba=({children:a,options:d={}})=>{let e=(a=>{let b=a8({optional:!0}),[d]=(0,c.useState)(()=>((a={})=>{let b=new Set,c=a4(a=>{f.setState({height:{...f.getState().height,viewport:a}})}),d=a4(a=>{f.setState({height:{...f.getState().height,inset:a}})}),e=a4(a=>{f.setState({height:{...f.getState().height,userMessage:a}})}),f=a3(()=>({isAtBottom:!0,scrollToBottom:({behavior:a="auto"}={})=>{for(let c of b)c({behavior:a})},onScrollToBottom:a=>(b.add(a),()=>{b.delete(a)}),turnAnchor:a.turnAnchor??"bottom",height:{viewport:0,inset:0,userMessage:0},registerViewport:c.register,registerContentInset:d.register,registerUserMessageHeight:e.register}));return f})(a));return(0,c.useEffect)(()=>b?.getState().onScrollToBottom(()=>{d.getState().scrollToBottom()}),[b,d]),(0,c.useEffect)(()=>{if(b)return d.subscribe(a=>{b.getState().isAtBottom!==a.isAtBottom&&a9(b).setState({isAtBottom:a.isAtBottom})})},[d,b]),(0,c.useEffect)(()=>{let b={turnAnchor:a.turnAnchor??"bottom"};d.getState().turnAnchor!==b.turnAnchor&&a9(d).setState(b)},[d,a.turnAnchor]),d})(d),[f]=(0,c.useState)(()=>({useThreadViewport:e}));return(0,b.jsx)(a6.Provider,{value:f,children:a})};a.s(["ThreadPrimitiveViewportProvider",0,ba],34607);let bb=()=>{let a=aE();return(0,c.useEffect)(()=>{},[a]),null},bc=(0,c.memo)(({children:a,aui:c,runtime:d})=>(0,b.jsxs)(a0,{runtime:d,aui:c??null,children:[(0,b.jsx)(bb,{}),(0,b.jsx)(ba,{children:a})]}));a.s(["AssistantRuntimeProvider",0,bc],78760)},39794,a=>{"use strict";let b=(0,a.i(97624).default)("cpu",[["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M17 20v2",key:"1rnc9c"}],["path",{d:"M17 2v2",key:"11trls"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M2 17h2",key:"7oei6x"}],["path",{d:"M2 7h2",key:"asdhe0"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M20 17h2",key:"1fpfkl"}],["path",{d:"M20 7h2",key:"1o8tra"}],["path",{d:"M7 20v2",key:"4gnj0m"}],["path",{d:"M7 2v2",key:"1i4yhu"}],["rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",key:"1vbyd7"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]]);a.s(["Cpu",0,b],39794)},91181,88099,92102,55489,419,12294,26246,77092,a=>{"use strict";a.s([],12918),a.i(12918);var b,c,d=a.i(53083),e=a.i(11321);a.i(69214);var f=a.i(80303),g=Symbol.for("react.lazy"),h=e[" use ".trim().toString()];function i(a){var b;return null!=a&&"object"==typeof a&&"$$typeof"in a&&a.$$typeof===g&&"_payload"in a&&"object"==typeof(b=a._payload)&&null!==b&&"then"in b}var j=Symbol("radix.slottable");function k(a){return e.isValidElement(a)&&"function"==typeof a.type&&"__radixId"in a.type&&a.type.__radixId===j}var l=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((a,b)=>{var c,g;let j,l,m,n=(g=c=`Primitive.${b}`,(j=e.forwardRef((a,b)=>{let{children:c,...d}=a;if(i(c)&&"function"==typeof h&&(c=h(c._payload)),e.isValidElement(c)){var g;let a,h,i=(g=c,(h=(a=Object.getOwnPropertyDescriptor(g.props,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?g.ref:(h=(a=Object.getOwnPropertyDescriptor(g,"ref")?.get)&&"isReactWarning"in a&&a.isReactWarning)?g.props.ref:g.props.ref||g.ref),j=function(a,b){let c={...b};for(let d in b){let e=a[d],f=b[d];/^on[A-Z]/.test(d)?e&&f?c[d]=(...a)=>{let b=f(...a);return e(...a),b}:e&&(c[d]=e):"style"===d?c[d]={...e,...f}:"className"===d&&(c[d]=[e,f].filter(Boolean).join(" "))}return{...a,...c}}(d,c.props);return c.type!==e.Fragment&&(j.ref=b?(0,f.composeRefs)(b,i):i),e.cloneElement(c,j)}return e.Children.count(c)>1?e.Children.only(null):null})).displayName=`${g}.SlotClone`,l=j,(m=e.forwardRef((a,b)=>{let{children:c,...f}=a;i(c)&&"function"==typeof h&&(c=h(c._payload));let g=e.Children.toArray(c),j=g.find(k);if(j){let a=j.props.children,c=g.map(b=>b!==j?b:e.Children.count(a)>1?e.Children.only(null):e.isValidElement(a)?a.props.children:null);return(0,d.jsx)(l,{...f,ref:b,children:e.isValidElement(a)?e.cloneElement(a,void 0,c):null})}return(0,d.jsx)(l,{...f,ref:b,children:c})})).displayName=`${c}.Slot`,m),o=e.forwardRef((a,c)=>{let{asChild:e,...f}=a;return(0,d.jsx)(e?n:b,{...f,ref:c})});return o.displayName=`Primitive.${b}`,{...a,[b]:o}},{});let m=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((a,b)=>{let c,f;return a[b]=(c=l[b],(f=(0,e.forwardRef)(({render:a,asChild:b,children:f,...g},h)=>{if(a&&(0,e.isValidElement)(a)){let b=void 0!==f?f:a.props.children;return(0,d.jsx)(c,{asChild:!0,...g,ref:h,children:(0,e.cloneElement)(a,void 0,b)})}return(0,d.jsx)(c,{asChild:b,...g,ref:h,children:f})})).displayName=`Primitive.${b}`,f),a},{});var n=a.i(15596),o=a.i(38265);let p=a=>{let b=(0,n.useAui)(),c=(0,o.getProxiedAssistantState)(b),d=(0,e.useSyncExternalStore)(b.subscribe,()=>a(c),()=>a(c));if(d===c)throw Error("You tried to return the entire AssistantState. This is not supported due to technical limitations.");return(0,e.useDebugValue)(d),d};(b=c||(c={})).Hidden="hidden",b.Floating="floating",b.Normal="normal";let q=(0,e.createContext)(null),r=(0,e.forwardRef)(({hideWhenRunning:a,autohide:b,autohideFloat:f,...g},h)=>{let[i,j]=(0,e.useState)(0),k=(0,e.useCallback)(()=>{let a=!1;return j(a=>a+1),()=>{a||(a=!0,j(a=>Math.max(0,a-1)))}},[]),l=(0,e.useMemo)(()=>({acquireInteractionLock:k}),[k]),n=(({hideWhenRunning:a,autohide:b,autohideFloat:d,forceVisible:e})=>p(f=>{if(a&&f.thread.isRunning)return c.Hidden;let g="always"===b||"not-last"===b&&!f.message.isLast,h=e||f.message.isHovering;return g?h?"always"===d||"single-branch"===d&&f.message.branchCount<=1?c.Floating:c.Normal:c.Hidden:c.Normal}))({hideWhenRunning:a,autohide:b,autohideFloat:f,forceVisible:i>0});return n===c.Hidden?null:(0,d.jsx)(q.Provider,{value:l,children:(0,d.jsx)(m.div,{...n===c.Floating?{"data-floating":"true"}:null,...g,ref:h})})});r.displayName="ActionBarPrimitive.Root";var s=a.i(59653);let t=(0,e.forwardRef)(({copiedDuration:a,onClick:b,disabled:c,...f},g)=>{let h=p(a=>a.message.isCopied),i=(({copiedDuration:a=3e3}={})=>{let{copy:b,disabled:c}=(({copiedDuration:a=3e3,copyToClipboard:b}={})=>{let c=(0,n.useAui)(),d=p(a=>!(("assistant"!==a.message.role||a.message.status?.type!=="running")&&a.message.parts.some(a=>"text"===a.type&&a.text.length>0))),f=p(a=>a.message.isCopied),g=p(a=>a.composer.isEditing),h=p(a=>a.composer.text);return{copy:(0,e.useCallback)(()=>{let d=g?h:c.message().getCopyText();d&&Promise.resolve((b??(()=>{}))(d)).then(()=>{c.message().setIsCopied(!0),setTimeout(()=>c.message().setIsCopied(!1),a)})},[c,g,h,a,b]),disabled:d,isCopied:f}})({copiedDuration:a,copyToClipboard:a=>navigator.clipboard.writeText(a)});return c?null:b})({copiedDuration:a});return(0,d.jsx)(m.button,{type:"button",...h?{"data-copied":"true"}:{},...f,ref:g,disabled:c||!i,onClick:(0,s.composeEventHandlers)(b,()=>{i?.()})})});t.displayName="ActionBarPrimitive.Copy";let u=(a,b,c=[])=>{let f=(0,e.forwardRef)((a,e)=>{let f={},g={};Object.keys(a).forEach(b=>{c.includes(b)?f[b]=a[b]:g[b]=a[b]});let h=b(f)??void 0;return(0,d.jsx)(m.button,{...g,type:"button",ref:e,disabled:g.disabled||!h,onClick:(0,s.composeEventHandlers)(g.onClick,h)})});return f.displayName=a,f},v=u("ActionBarPrimitive.Reload",()=>{let a,b,{disabled:c,reload:d}=(a=(0,n.useAui)(),b=p(a=>a.thread.isRunning||a.thread.isDisabled||"assistant"!==a.message.role),{reload:(0,e.useCallback)(()=>{a.message().reload()},[a]),disabled:b});return c?null:d}),w=u("ActionBarPrimitive.Edit",()=>{let a,b,{disabled:c,edit:d}=(a=(0,n.useAui)(),b=p(a=>a.composer.isEditing),{edit:(0,e.useCallback)(()=>{a.composer().beginEdit()},[a]),disabled:b});return c?null:d}),x=u("ActionBarPrimitive.Speak",()=>{let a,b,{disabled:c,speak:d}=(a=(0,n.useAui)(),b=p(a=>!(("assistant"!==a.message.role||a.message.status?.type!=="running")&&a.message.parts.some(a=>"text"===a.type&&a.text.length>0))),{speak:(0,e.useCallback)(async()=>{a.message().speak()},[a]),disabled:b});return c?null:d});var y=a.i(91204);let z=(0,e.forwardRef)((a,b)=>{let c=(()=>{let a,b,{disabled:c,stopSpeaking:d}=(a=(0,n.useAui)(),b=p(a=>null==a.message.speech),{stopSpeaking:(0,e.useCallback)(()=>{a.message().stopSpeaking()},[a]),disabled:b});return c?null:d})();return(0,y.useEscapeKeydown)(a=>{c&&(a.preventDefault(),c())}),(0,d.jsx)(m.button,{type:"button",disabled:!c,...a,ref:b,onClick:(0,s.composeEventHandlers)(a.onClick,()=>{c?.()})})});z.displayName="ActionBarPrimitive.StopSpeaking";let A=(0,e.forwardRef)(({onClick:a,disabled:b,...c},f)=>{let g=p(a=>a.message.metadata.submittedFeedback?.type==="positive"),h=(()=>{let a,b,{submit:c}=(a=(0,n.useAui)(),b=p(a=>a.message.metadata.submittedFeedback?.type==="positive"),{submit:(0,e.useCallback)(()=>{a.message().submitFeedback({type:"positive"})},[a]),isSubmitted:b});return c})();return(0,d.jsx)(m.button,{type:"button",...g?{"data-submitted":"true"}:{},...c,ref:f,disabled:b||!h,onClick:(0,s.composeEventHandlers)(a,()=>{h?.()})})});A.displayName="ActionBarPrimitive.FeedbackPositive";let B=(0,e.forwardRef)(({onClick:a,disabled:b,...c},f)=>{let g=p(a=>a.message.metadata.submittedFeedback?.type==="negative"),h=(()=>{let a,b,{submit:c}=(a=(0,n.useAui)(),b=p(a=>a.message.metadata.submittedFeedback?.type==="negative"),{submit:(0,e.useCallback)(()=>{a.message().submitFeedback({type:"negative"})},[a]),isSubmitted:b});return c})();return(0,d.jsx)(m.button,{type:"button",...g?{"data-submitted":"true"}:{},...c,ref:f,disabled:b||!h,onClick:(0,s.composeEventHandlers)(a,()=>{h?.()})})});B.displayName="ActionBarPrimitive.FeedbackNegative";let C=(0,e.forwardRef)(({filename:a,onExport:b,onClick:c,disabled:f,...g},h)=>{let i=(({filename:a,onExport:b}={})=>{let c=(0,n.useAui)(),d=p(a=>("assistant"!==a.message.role||a.message.status?.type!=="running")&&a.message.parts.some(a=>"text"===a.type&&a.text.length>0)),f=(0,e.useCallback)(async()=>{let d=c.message().getCopyText();if(!d)return;if(b)return void await b(d);let e=new Blob([d],{type:"text/markdown"}),f=URL.createObjectURL(e),g=document.createElement("a");g.href=f,g.download=a??`message-${Date.now()}.md`,g.click(),URL.revokeObjectURL(f)},[c,a,b]);return d?f:null})({filename:a,onExport:b});return(0,d.jsx)(m.button,{type:"button",...g,ref:h,disabled:f||!i,onClick:(0,s.composeEventHandlers)(c,()=>{i?.()})})});C.displayName="ActionBarPrimitive.ExportMarkdown",a.s(["Copy",0,t,"Edit",0,w,"ExportMarkdown",0,C,"FeedbackNegative",0,B,"FeedbackPositive",0,A,"Reload",0,v,"Root",0,r,"Speak",0,x,"StopSpeaking",0,z],2770);var D=a.i(2770);a.s(["ActionBarPrimitive",0,D],91181),a.s([],21823),a.i(21823);let E=()=>{let a,b,{disabled:c,send:d}=(a=(0,n.useAui)(),b=p(a=>a.thread.isRunning&&!a.thread.capabilities.queue||!a.composer.isEditing||a.composer.isEmpty),{send:(0,e.useCallback)(b=>{a.composer().send(b)},[a]),disabled:b}),f=(0,e.useCallback)(()=>d(),[d]);return c?null:f},F=u("ComposerPrimitive.Send",E),G=(0,e.forwardRef)(({onSubmit:a,...b},c)=>{let e=E();return(0,d.jsx)(m.form,{...b,ref:c,onSubmit:(0,s.composeEventHandlers)(a,a=>{a.preventDefault(),e&&e()})})});G.displayName="ComposerPrimitive.Root";var H=a.i(90005);function I(){return(I=Object.assign.bind()).apply(null,arguments)}var J="u">typeof document?e.useLayoutEffect:function(){},K=function(a){var b=e.default.useRef(a);return J(function(){b.current=a}),b},L=function(a,b){"function"==typeof a?a(b):a.current=b},M=function(a,b){var c=e.default.useRef();return e.default.useCallback(function(d){a.current=d,c.current&&L(c.current,null),c.current=b,b&&L(b,d)},[b])},N="u">typeof document,O={"min-height":"0","max-height":"none",height:"0",visibility:"hidden",overflow:"hidden",position:"absolute","z-index":"-1000",top:"0",right:"0",display:"block"},P=function(a){Object.keys(O).forEach(function(b){a.style.setProperty(b,O[b],"important")})},Q=null,R=function(a,b){var c=a.scrollHeight;return"border-box"===b.sizingStyle.boxSizing?c+b.borderSize:c-b.paddingSize},S=function(){},T=["borderBottomWidth","borderLeftWidth","borderRightWidth","borderTopWidth","boxSizing","fontFamily","fontSize","fontStyle","fontWeight","letterSpacing","lineHeight","paddingBottom","paddingLeft","paddingRight","paddingTop","tabSize","textIndent","textRendering","textTransform","width","wordBreak","wordSpacing","scrollbarGutter"],U=!!N&&!!document.documentElement.currentStyle,V=function(a){var b=window.getComputedStyle(a);if(null===b)return null;var c=T.reduce(function(a,c){return a[c]=b[c],a},{}),d=c.boxSizing;if(""===d)return null;U&&"border-box"===d&&(c.width=parseFloat(c.width)+parseFloat(c.borderRightWidth)+parseFloat(c.borderLeftWidth)+parseFloat(c.paddingRight)+parseFloat(c.paddingLeft)+"px");var e=parseFloat(c.paddingBottom)+parseFloat(c.paddingTop),f=parseFloat(c.borderBottomWidth)+parseFloat(c.borderTopWidth);return{sizingStyle:c,paddingSize:e,borderSize:f}};function W(a,b,c){var d=K(c);e.useLayoutEffect(function(){var c=function(a){return d.current(a)};if(a)return a.addEventListener(b,c),function(){return a.removeEventListener(b,c)}},[])}var X=function(a,b){W(document.body,"reset",function(c){a.current.form===c.target&&b(c)})},Y=function(a){W(window,"resize",a)},Z=function(a){W(document.fonts,"loadingdone",a)},$=["cacheMeasurements","maxRows","minRows","onChange","onHeightChange"],_=e.forwardRef(function(a,b){var c=a.cacheMeasurements,d=a.maxRows,f=a.minRows,g=a.onChange,h=void 0===g?S:g,i=a.onHeightChange,j=void 0===i?S:i,k=function(a,b){if(null==a)return{};var c={};for(var d in a)if(({}).hasOwnProperty.call(a,d)){if(-1!==b.indexOf(d))continue;c[d]=a[d]}return c}(a,$),l=void 0!==k.value,m=e.useRef(null),n=M(m,b),o=e.useRef(0),p=e.useRef(),q=function(){var a=m.current,b=c&&p.current?p.current:V(a);if(b){p.current=b;var e,g,h,i,k,l,n,q,r,s,t,u=(e=a.value||a.placeholder||"x",void 0===(g=f)&&(g=1),void 0===(h=d)&&(h=1/0),Q||((Q=document.createElement("textarea")).setAttribute("tabindex","-1"),Q.setAttribute("aria-hidden","true"),P(Q)),null===Q.parentNode&&document.body.appendChild(Q),i=b.paddingSize,k=b.borderSize,n=(l=b.sizingStyle).boxSizing,Object.keys(l).forEach(function(a){Q.style[a]=l[a]}),P(Q),Q.value=e,q=R(Q,b),Q.value=e,q=R(Q,b),Q.value="x",s=(r=Q.scrollHeight-i)*g,"border-box"===n&&(s=s+i+k),q=Math.max(s,q),t=r*h,"border-box"===n&&(t=t+i+k),[q=Math.min(t,q),r]),v=u[0],w=u[1];o.current!==v&&(o.current=v,a.style.setProperty("height",v+"px","important"),j(v,{rowHeight:w}))}};return N?(e.useLayoutEffect(q),X(m,function(){if(!l){var a=m.current.value;requestAnimationFrame(function(){var b=m.current;b&&a!==b.value&&q()})}}),Y(q),Z(q),e.createElement("textarea",I({},k,{onChange:function(a){l||q(),h(a)},ref:n}))):e.createElement("textarea",I({},k,{onChange:h,ref:n}))}),aa=a.i(8725),ab=a.i(11436);let ac=a=>{let b=(0,aa.useCallbackRef)(a),c=(0,ab.useThreadViewport)(a=>a.onScrollToBottom);(0,e.useEffect)(()=>c(b),[c,b])};var ad=a.i(33195),ae=a.i(53206);let af=/:([\w-]+)\[([^\]]+)\](?:\{name=([^}]+)\})?/g,ag={serialize(a){let b=a.id!==a.label?`{name=${a.id}}`:"";return`:${a.type}[${a.label}]${b}`},parse(a){let b,c=[],d=0;for(af.lastIndex=0;null!==(b=af.exec(a));){b.index>d&&c.push({kind:"text",text:a.slice(d,b.index)});let e=b[2];c.push({kind:"mention",type:b[1],label:e,id:b[3]??e}),d=af.lastIndex}return d<a.length&&c.push({kind:"text",text:a.slice(d)}),c}};var ah=a.i(26732),ai=a.i(2778),aj=a.i(740),ak=a.i(34075),al=a.i(36797),am=a.i(1771);let an=/\s/,ao=(0,ah.resource)(({adapter:a,text:b,triggerChar:c,formatter:d,aui:e})=>{let[f,g]=(0,ai.tapState)(b.length),h=(0,aj.tapMemo)(()=>{let a=Math.min(f,b.length),d=b.slice(0,a);for(let a=d.length-1;a>=0;a--){let b=d[a];if(an.test(b))break;if(d.startsWith(c,a)){if(a>0&&!an.test(d[a-1]))continue;return{query:d.slice(a+c.length),offset:a}}}return null},[f,b,c]),i=null!==h&&void 0!==a,j=h?.query??"",[k,l]=(0,ai.tapState)(null);(0,al.tapEffect)(()=>{i||l(null)},[i]);let m=(0,aj.tapMemo)(()=>i&&a?a.categories():[],[i,a]),n=i?k:null,o=(0,aj.tapMemo)(()=>n&&a?a.categoryItems(n):[],[n,a]),p=(0,aj.tapMemo)(()=>{if(!i||!a||!j||n)return null;if(a.search)return a.search(j);let b=a.categories(),c=[],d=j.toLowerCase();for(let e of b)for(let b of a.categoryItems(e.id))(b.id.toLowerCase().includes(d)||b.label.toLowerCase().includes(d)||b.description?.toLowerCase().includes(d))&&c.push(b);return c},[i,a,j,n]),q=null!==p,r=(0,aj.tapMemo)(()=>{if(q)return[];if(!j)return m;let a=j.toLowerCase();return m.filter(b=>b.label.toLowerCase().includes(a))},[m,j,q]),s=(0,aj.tapMemo)(()=>{if(q)return p??[];if(!j)return o;let a=j.toLowerCase();return o.filter(b=>b.id.toLowerCase().includes(a)||b.label.toLowerCase().includes(a)||b.description?.toLowerCase().includes(a))},[o,j,q,p]),[t,u]=(0,ai.tapState)(0),v=(0,aj.tapMemo)(()=>q?p??[]:n?s:r,[q,p,n,s,r]);(0,al.tapEffect)(()=>{u(0)},[v]);let w=(0,am.tapRef)(null),x=(0,ak.tapEffectEvent)(a=>(w.current=a,()=>{w.current===a&&(w.current=null)})),y=(0,ak.tapEffectEvent)(a=>{l(a),u(0)}),z=(0,ak.tapEffectEvent)(()=>{l(null),u(0)}),A=(0,ak.tapEffectEvent)(a=>{if(!h)return;if(w.current?.(a)){l(null),u(0);return}let b=e.composer().getState().text,f=b.slice(0,h.offset),g=b.slice(h.offset+c.length+h.query.length),i=f+d.serialize(a)+(g.startsWith(" ")?g:` ${g}`);e.composer().setText(i),l(null),u(0)}),B=(0,ak.tapEffectEvent)(()=>{l(null),u(0),h&&g(h.offset)}),C=(0,ak.tapEffectEvent)(a=>{if(!i)return!1;switch(a.key){case"ArrowDown":return a.preventDefault(),u(a=>{let b=v.length;return 0===b?0:a<b-1?a+1:0}),!0;case"ArrowUp":return a.preventDefault(),u(a=>{let b=v.length;return 0===b?0:a>0?a-1:b-1}),!0;case"Enter":{if(a.shiftKey)return!1;a.preventDefault();let b=v[t];if(!b)return!0;return q||n?A(b):y(b.id),!0}case"Escape":return a.preventDefault(),B(),!0;case"Backspace":if(n&&""===j)return a.preventDefault(),z(),!0;return!1;default:return!1}});return{open:i,query:j,activeCategoryId:n,categories:r,items:s,highlightedIndex:t,isSearchMode:q,formatter:d,selectCategory:y,goBack:z,selectItem:A,close:B,handleKeyDown:C,setCursorPosition:g,registerSelectItemOverride:x}}),ap=(0,e.createContext)(null),aq=()=>{let a=(0,e.useContext)(ap);if(!a)throw Error("useMentionContext must be used within ComposerPrimitive.MentionRoot");return a},ar=()=>(0,e.useContext)(ap),as=(0,e.createContext)(null),at=({children:a,adapter:b,trigger:c="@",formatter:f})=>{let g=(0,n.useAui)(),h=p(a=>a.composer.text),i=(0,e.useCallback)(()=>{try{let a=g.composer().__internal_getRuntime?.();return a?._core?.getState()?.getMentionAdapter?.()}catch{return}},[g]),[j,k]=(0,e.useState)(i);(0,e.useEffect)(()=>g.subscribe(()=>{k(a=>{let b=i();return a===b?a:b})}),[g,i]);let l=(0,ae.useResource)(ao({adapter:b??j,text:h,triggerChar:c,formatter:f??ag,aui:g})),m=(0,e.useMemo)(()=>({setCursorPosition:l.setCursorPosition,registerSelectItemOverride:l.registerSelectItemOverride}),[l.setCursorPosition,l.registerSelectItemOverride]);return(0,d.jsx)(ap.Provider,{value:l,children:(0,d.jsx)(as.Provider,{value:m,children:a})})};at.displayName="ComposerPrimitive.MentionRoot";let au=(0,e.forwardRef)(({autoFocus:a=!1,asChild:b,render:c,disabled:g,onChange:h,onKeyDown:i,onPaste:j,onSelect:k,submitOnEnter:l,submitMode:m,cancelOnEscape:o=!0,unstable_focusOnRunStart:q=!0,unstable_focusOnScrollToBottom:r=!0,unstable_focusOnThreadSwitched:t=!0,addAttachmentOnPaste:u=!0,...v},w)=>{let x=(0,n.useAui)(),z=ar(),A=(0,e.useContext)(as),B=m??(!1===l?"none":"enter"),C=p(a=>a.composer.isEditing?a.composer.text:""),D=p(a=>a.thread.isDisabled||a.composer.dictation?.inputDisabled)||g,E=(0,e.useRef)(null),F=(0,f.useComposedRefs)(w,E);(0,y.useEscapeKeydown)(a=>{if(!E.current?.contains(a.target))return;if(z?.open)return void z.handleKeyDown(a);if(!o)return;let b=x.composer();b.getState().canCancel&&(b.cancel(),a.preventDefault())});let G=async a=>{if(!u)return;let b=x.thread().getState().capabilities,c=Array.from(a.clipboardData?.files||[]);if(b.attachments&&c.length>0)try{a.preventDefault(),await Promise.all(c.map(a=>x.composer().addAttachment(a)))}catch(a){console.error("Error adding attachment:",a)}},I=a&&!D,J=(0,e.useCallback)(()=>{let a=E.current;a&&I&&(a.focus({preventScroll:!0}),a.setSelectionRange(a.value.length,a.value.length))},[I]);(0,e.useEffect)(()=>J(),[J]),ac(()=>{"thread"===x.composer().getState().type&&r&&J()}),(0,e.useEffect)(()=>{if("thread"===x.composer().getState().type&&q)return x.on("thread.runStart",J)},[q,J,x]),(0,e.useEffect)(()=>{if("thread"===x.composer().getState().type&&t)return x.on("threadListItem.switchedTo",J)},[t,J,x]);let K={name:"input",value:C,...v,ref:F,disabled:D,onChange:(0,s.composeEventHandlers)(h,a=>{x.composer().getState().isEditing&&((0,ad.flushResourcesSync)(()=>{x.composer().setText(a.target.value)}),A?.setCursorPosition(a.target.selectionStart??a.target.value.length))}),onKeyDown:(0,s.composeEventHandlers)(i,a=>{if(!D&&!a.nativeEvent.isComposing&&!z?.handleKeyDown(a)&&"Enter"===a.key){let b=x.thread().getState(),c=b.capabilities.queue;if(a.shiftKey&&(a.ctrlKey||a.metaKey)&&c&&"none"!==B&&!x.composer().getState().isEmpty){a.preventDefault(),x.composer().send({steer:!0});return}if(a.shiftKey||b.isRunning&&!c)return;let d=!1;"ctrlEnter"===B?d=a.ctrlKey||a.metaKey:"enter"===B&&(d=!0),d&&(a.preventDefault(),E.current?.closest("form")?.requestSubmit())}}),onSelect:(0,s.composeEventHandlers)(k,a=>{let b=a.target;A?.setCursorPosition(b.selectionStart??b.value.length)}),onPaste:(0,s.composeEventHandlers)(j,G)};if(c&&(0,e.isValidElement)(c)){let a=void 0!==v.children?v.children:c.props.children;return(0,d.jsx)(H.Slot.Root,{...K,children:(0,e.cloneElement)(c,void 0,a)})}let L=b?H.Slot.Root:_;return(0,d.jsx)(L,{...K})});au.displayName="ComposerPrimitive.Input";let av=u("ComposerPrimitive.Cancel",()=>{let a,b,{disabled:c,cancel:d}=(a=(0,n.useAui)(),b=p(a=>!a.composer.canCancel),{cancel:(0,e.useCallback)(()=>{a.composer().cancel()},[a]),disabled:b});return c?null:d}),aw=u("ComposerPrimitive.AddAttachment",({multiple:a=!0}={})=>{let b,c,{disabled:d,addAttachment:f}=(b=(0,n.useAui)(),c=p(a=>!a.composer.isEditing),{addAttachment:(0,e.useCallback)(a=>b.composer().addAttachment(a),[b]),disabled:c}),g=(0,n.useAui)(),h=(0,e.useCallback)(()=>{let b=document.createElement("input");b.type="file",b.multiple=a,b.hidden=!0;let c=g.composer().getState().attachmentAccept;"*"!==c&&(b.accept=c),document.body.appendChild(b),b.onchange=a=>{let c=a.target.files;if(c){for(let a of c)f(a);document.body.removeChild(b)}},b.oncancel=()=>{b.files&&0!==b.files.length||document.body.removeChild(b)},b.click()},[g,a,f]);return d?null:h},["multiple"]),ax=Object.freeze({});function ay({getItemState:a,children:b}){let c,d;return az(b((c=(0,n.useAui)(),d=(0,e.useRef)(void 0),p(()=>(void 0===d.current&&(d.current=a(c)),d.current)),()=>(d.current=void 0,a(c)))))}let az=a=>{let b="object"==typeof a&&null!=a&&"type"in a?a:null,c=b?.type,d=b?.key,f="object"==typeof b?.props&&null!=b.props&&0===Object.entries(b.props).length?ax:b?.props;return(0,e.useMemo)(()=>b,[c,d,f])??a};var aA=a.i(41913),aB=a.i(1602);let aC=({index:a,children:b})=>{let c=(0,n.useAui)({attachment:(0,aB.Derived)({source:"message",query:{type:"index",index:a},get:b=>b.message().attachment({index:a})})});return(0,d.jsx)(aA.AuiProvider,{value:c,children:b})},aD=({index:a,children:b})=>{let c=(0,n.useAui)({attachment:(0,aB.Derived)({source:"composer",query:{type:"index",index:a},get:b=>b.composer().attachment({index:a})})});return(0,d.jsx)(aA.AuiProvider,{value:c,children:b})},aE=(a,b)=>{switch(b.type){case"image":return a?.Image??a?.Attachment;case"document":return a?.Document??a?.Attachment;case"file":return a?.File??a?.Attachment;default:return a?.Attachment}},aF=({components:a})=>{let b=p(a=>a.attachment);if(!b)return null;let c=aE(a,b);return c?(0,d.jsx)(c,{}):null},aG=(0,e.memo)(({index:a,components:b})=>(0,d.jsx)(aD,{index:a,children:(0,d.jsx)(aF,{components:b})}),(a,b)=>a.index===b.index&&a.components?.Image===b.components?.Image&&a.components?.Document===b.components?.Document&&a.components?.File===b.components?.File&&a.components?.Attachment===b.components?.Attachment);aG.displayName="ComposerPrimitive.AttachmentByIndex";let aH=({children:a})=>{let b=p(a=>a.composer.attachments.length);return(0,e.useMemo)(()=>Array.from({length:b},(b,c)=>(0,d.jsx)(aD,{index:c,children:(0,d.jsx)(ay,{getItemState:a=>a.composer().attachment({index:c}).getState(),children:b=>a({get attachment(){return b()}})})},c)),[b,a])},aI=({components:a,children:b})=>a?(0,d.jsx)(aH,{children:({attachment:b})=>{let c=aE(a,b);return c?(0,d.jsx)(c,{}):null}}):(0,d.jsx)(aH,{children:b});aI.displayName="ComposerPrimitive.Attachments";let aJ=(0,e.forwardRef)(({disabled:a,asChild:b=!1,render:c,children:f,...g},h)=>{let[i,j]=(0,e.useState)(!1),k=(0,n.useAui)(),l=(0,e.useCallback)(b=>{a||(b.preventDefault(),j(!0))},[a]),m=(0,e.useCallback)(b=>{!a&&(b.preventDefault(),i||j(!0))},[a,i]),o=(0,e.useCallback)(b=>{if(a)return;b.preventDefault();let c=b.relatedTarget;c&&b.currentTarget.contains(c)||j(!1)},[a]),p=(0,e.useCallback)(async b=>{if(!a)for(let a of(b.preventDefault(),j(!1),b.dataTransfer.files))try{await k.composer().addAttachment(a)}catch(a){console.error("Failed to add attachment:",a)}},[a,k]),q={...i?{"data-dragging":"true"}:null,...g,onDragEnterCapture:(0,s.composeEventHandlers)(g.onDragEnterCapture,l),onDragOverCapture:(0,s.composeEventHandlers)(g.onDragOverCapture,m),onDragLeaveCapture:(0,s.composeEventHandlers)(g.onDragLeaveCapture,o),onDropCapture:(0,s.composeEventHandlers)(g.onDropCapture,p),ref:h};if(c&&(0,e.isValidElement)(c)){let a=void 0!==f?f:c.props.children;return(0,d.jsx)(H.Slot.Root,{...q,children:(0,e.cloneElement)(c,void 0,a)})}let r=b?H.Slot.Root:"div";return(0,d.jsx)(r,{...q,children:f})});aJ.displayName="ComposerPrimitive.AttachmentDropzone";let aK=u("ComposerPrimitive.Dictate",()=>{let a,b,{disabled:c,startDictation:d}=(a=(0,n.useAui)(),b=p(a=>null!=a.composer.dictation||!a.thread.capabilities.dictation||!a.composer.isEditing),{startDictation:(0,e.useCallback)(()=>{a.composer().startDictation()},[a]),disabled:b});return c?null:d}),aL=u("ComposerPrimitive.StopDictation",()=>{let a=(0,n.useAui)(),b=p(a=>null!=a.composer.dictation),c=(0,e.useCallback)(()=>{a.composer().stopDictation()},[a]);return b?c:null}),aM=(0,e.forwardRef)(({children:a,...b},c)=>{let e=p(a=>a.composer.dictation?.transcript);return e?(0,d.jsx)(m.span,{...b,ref:c,children:a??e}):null});aM.displayName="ComposerPrimitive.DictationTranscript";let aN=({children:a,...b})=>p(a=>{if(!0===b.editing&&!a.composer.isEditing||!1===b.editing&&a.composer.isEditing)return!1;let c=null!=a.composer.dictation;return(!0!==b.dictation||!!c)&&(!1!==b.dictation||!c)})?a:null;aN.displayName="ComposerPrimitive.If";let aO=(0,e.forwardRef)((a,b)=>p(a=>a.composer.quote)?(0,d.jsx)(m.div,{...a,ref:b}):null);aO.displayName="ComposerPrimitive.Quote";let aP=(0,e.forwardRef)(({children:a,...b},c)=>{let e=p(a=>a.composer.quote?.text);return e?(0,d.jsx)(m.span,{...b,ref:c,children:a??e}):null});aP.displayName="ComposerPrimitive.QuoteText";let aQ=(0,e.forwardRef)(({onClick:a,...b},c)=>{let f=(0,n.useAui)(),g=(0,e.useCallback)(()=>{f.composer().setQuote(void 0)},[f]);return(0,d.jsx)(m.button,{type:"button",...b,ref:c,onClick:(0,s.composeEventHandlers)(a,g)})});aQ.displayName="ComposerPrimitive.QuoteDismiss";let aR=({index:a,children:b})=>{let c=(0,n.useAui)({queueItem:(0,aB.Derived)({source:"composer",query:{index:a},get:b=>b.composer().queueItem({index:a})})});return(0,d.jsx)(aA.AuiProvider,{value:c,children:b})},aS=(0,e.memo)(({children:a})=>{let b=p(a=>a.composer.queue.length);return(0,e.useMemo)(()=>Array.from({length:b},(b,c)=>(0,d.jsx)(aR,{index:c,children:(0,d.jsx)(ay,{getItemState:a=>a.composer().queueItem({index:c}).getState(),children:b=>a({get queueItem(){return b()}})})},c)),[b,a])});aS.displayName="ComposerPrimitive.Queue";let aT=(0,e.forwardRef)((a,b)=>{let{open:c}=aq();return c?(0,d.jsx)(m.div,{role:"listbox","data-state":"open",...a,ref:b}):null});aT.displayName="ComposerPrimitive.MentionPopover";let aU=(0,e.forwardRef)(({children:a,...b},c)=>{let{categories:e,activeCategoryId:f,isSearchMode:g}=aq();return f||g?null:(0,d.jsx)(m.div,{role:"group",...b,ref:c,children:a(e)})});aU.displayName="ComposerPrimitive.MentionCategories";let aV=(0,e.forwardRef)(({categoryId:a,onClick:b,...c},f)=>{let{selectCategory:g,categories:h,highlightedIndex:i,activeCategoryId:j,isSearchMode:k}=aq(),l=(0,e.useCallback)(()=>{g(a)},[g,a]),n=!j&&!k&&h.findIndex(b=>b.id===a)===i;return(0,d.jsx)(m.button,{type:"button",role:"option","aria-selected":n,"data-highlighted":n?"":void 0,...c,ref:f,onClick:(0,s.composeEventHandlers)(b,l)})});aV.displayName="ComposerPrimitive.MentionCategoryItem";let aW=(0,e.forwardRef)(({children:a,...b},c)=>{let{items:e,activeCategoryId:f,isSearchMode:g}=aq();return f||g?(0,d.jsx)(m.div,{role:"group",...b,ref:c,children:a(e)}):null});aW.displayName="ComposerPrimitive.MentionItems";let aX=(0,e.forwardRef)(({item:a,index:b,onClick:c,...f},g)=>{let{selectItem:h,items:i,highlightedIndex:j,activeCategoryId:k,isSearchMode:l}=aq(),n=(0,e.useCallback)(()=>{h(a)},[h,a]),o=b??i.findIndex(b=>b.id===a.id),p=(l||null!==k)&&o===j;return(0,d.jsx)(m.button,{type:"button",role:"option","aria-selected":p,"data-highlighted":p?"":void 0,...f,ref:g,onClick:(0,s.composeEventHandlers)(c,n)})});aX.displayName="ComposerPrimitive.MentionItem";let aY=(0,e.forwardRef)(({onClick:a,...b},c)=>{let{activeCategoryId:f,isSearchMode:g,goBack:h}=aq(),i=(0,e.useCallback)(()=>{h()},[h]);return!f||g?null:(0,d.jsx)(m.button,{type:"button",...b,ref:c,onClick:(0,s.composeEventHandlers)(a,i)})});aY.displayName="ComposerPrimitive.MentionBack",a.s(["AddAttachment",0,aw,"AttachmentByIndex",0,aG,"AttachmentDropzone",0,aJ,"Attachments",0,aI,"Cancel",0,av,"Dictate",0,aK,"DictationTranscript",0,aM,"If",0,aN,"Input",0,au,"Queue",0,aS,"Quote",0,aO,"QuoteDismiss",0,aQ,"QuoteText",0,aP,"Root",0,G,"Send",0,F,"StopDictation",0,aL,"Unstable_MentionBack",0,aY,"Unstable_MentionCategories",0,aU,"Unstable_MentionCategoryItem",0,aV,"Unstable_MentionItem",0,aX,"Unstable_MentionItems",0,aW,"Unstable_MentionPopover",0,aT,"Unstable_MentionRoot",0,at,"unstable_useMentionContext",0,aq,"unstable_useMentionContextOptional",0,ar],16371);var aZ=a.i(16371);a.s(["ComposerPrimitive",0,aZ],88099),a.s([],47141),a.i(47141);let a$=a=>{let b=(0,e.useRef)(void 0);return(0,e.useCallback)(c=>{b.current&&b.current(),c&&(b.current=a(c))},[a])},a_=(a,b)=>a$((0,e.useCallback)(c=>{if(!a)return;let d=a(),e=()=>{let a=b?b(c):c.offsetHeight;d.setHeight(a)},f=new ResizeObserver(e);return f.observe(c),e(),()=>{f.disconnect(),d.unregister()}},[a,b])),a0=(0,e.createContext)(!1),a1=(a,b)=>{let c=a.match(/^([\d.]+)(em|px|rem)$/);if(!c)return 0;let d=parseFloat(c[1]),e=c[2];return"px"===e?d:"em"===e?d*(parseFloat(getComputedStyle(b).fontSize)||16):"rem"===e?d*(parseFloat(getComputedStyle(document.documentElement).fontSize)||16):0},a2=({children:a,fillClampThreshold:b="10em",fillClampOffset:c="6em"})=>{let f=p(a=>a.message.isLast&&"assistant"===a.message.role&&a.message.index>=1&&a.thread.messages.at(a.message.index-1)?.role==="user"),g=(0,ab.useThreadViewportStore)({optional:!0}),h=(0,e.useContext)(a0),i=a$((0,e.useCallback)(a=>{if(!g||h)return;let d=()=>{let d=g.getState();if("top"===d.turnAnchor&&f){let{viewport:e,inset:f,userMessage:g}=d.height,h=a1(b,a),i=a1(c,a),j=Math.max(0,e-f-(g<=h?g:i));a.style.minHeight=`${j}px`,a.style.flexShrink="0",a.style.transition="min-height 0s"}else a.style.minHeight="",a.style.flexShrink="",a.style.transition=""};return d(),g.subscribe(d)},[g,f,h,b,c]));return(0,d.jsx)(a0.Provider,{value:!0,children:(0,d.jsx)(H.Slot.Root,{ref:i,children:a})})};a2.displayName="ThreadPrimitive.ViewportSlack";let a3=(0,e.forwardRef)((a,b)=>{let c,g,h,i,j=(c=(0,n.useAui)(),g=p(()=>c.message()),a$((0,e.useCallback)(a=>{let b=()=>{g.setIsHovering(!0)},c=()=>{g.setIsHovering(!1)};return a.addEventListener("mouseenter",b),a.addEventListener("mouseleave",c),a.matches(":hover")&&queueMicrotask(()=>g.setIsHovering(!0)),()=>{a.removeEventListener("mouseenter",b),a.removeEventListener("mouseleave",c),g.setIsHovering(!1)}},[g]))),k=(h=(0,ab.useThreadViewport)(a=>a.turnAnchor),i=(0,ab.useThreadViewport)(a=>a.registerUserMessageHeight),a_(p(a=>"top"===h&&"user"===a.message.role&&a.message.index===a.thread.messages.length-2&&a.thread.messages.at(-1)?.role==="assistant")?i:null,(0,e.useCallback)(a=>a.offsetHeight,[]))),l=(0,f.useComposedRefs)(b,j,k),o=p(a=>a.message.id);return(0,d.jsx)(a2,{children:(0,d.jsx)(m.div,{...a,ref:l,"data-message-id":o})})});a3.displayName="MessagePrimitive.Root";let a4=({index:a,children:b})=>{let c=(0,n.useAui)({part:(0,aB.Derived)({source:"message",query:{type:"index",index:a},get:b=>b.message().part({index:a})})});return(0,d.jsx)(aA.AuiProvider,{value:c,children:b})},a5=(0,ah.resource)(({text:a,isRunning:b})=>{let c=(0,aj.tapMemo)(()=>({type:"text",text:a,status:b?{type:"running"}:{type:"complete"}}),[a,b]);return{getState:()=>c,addToolResult:()=>{throw Error("Not supported")},resumeToolCall:()=>{throw Error("Not supported")}}}),a6=({text:a,isRunning:b=!1,children:c})=>{let e=(0,n.useAui)({part:a5({text:a,isRunning:b})});return(0,d.jsx)(aA.AuiProvider,{value:e,children:c})},a7=Object.freeze({type:"complete"}),a8=(0,ah.resource)(({parts:a,getMessagePart:b})=>{let[c,d]=(0,ai.tapState)(!0),e=(0,aj.tapMemo)(()=>{let b=a[a.length-1];return b?.status??a7},[a]),f=(0,aj.tapMemo)(()=>({parts:a,collapsed:c,status:e}),[a,c,e]);return{getState:()=>f,setCollapsed:d,part:b}}),a9=({startIndex:a,endIndex:b,children:c})=>{let e=p(a=>a.message.parts).slice(a,b+1),f=(0,n.useAui)(),g=(0,n.useAui)({chainOfThought:a8({parts:e,getMessagePart:({index:b})=>{if(b<0||b>=e.length)throw Error(`ChainOfThought part index ${b} is out of bounds (0..${e.length-1})`);return f.message().part({index:a+b})}})});return(0,d.jsx)(aA.AuiProvider,{value:g,children:c})},ba=a=>{let b=a.message.metadata;if(b&&"object"==typeof b)return b.custom?.quote},bb=(a,b)=>{let c=a instanceof Map?a:new Map(a.entries()),d=b instanceof Map?b:new Map(b.entries());if(c.size!==d.size)return!1;for(let[a,b]of c)if(!d.has(a)||!Object.is(b,d.get(a)))return!1;return!0},bc=a=>{let b=-1;return{startGroup:a=>{-1===b&&(b=a)},endGroup:(c,d)=>{-1!==b&&(d.push({type:a,startIndex:b,endIndex:c}),b=-1)},finalize:(c,d)=>{-1!==b&&d.push({type:a,startIndex:b,endIndex:c})}}},bd=({Fallback:a,...b})=>{let c=p(c=>{let d=c.tools.tools[b.toolName]??a;return Array.isArray(d)?d[0]??a:d});return c?(0,d.jsx)(c,{...b}):null},be=({Fallback:a,...b})=>{let c=p(c=>{let d=c.dataRenderers.renderers[b.name]??a;return Array.isArray(d)?d[0]??a:d});return c?(0,d.jsx)(c,{...b}):null},bf={Text:()=>null,Reasoning:()=>null,Source:()=>null,Image:()=>null,File:()=>null,Unstable_Audio:()=>null,ToolGroup:({children:a})=>a,ReasoningGroup:({children:a})=>a},bg=({components:{Text:a=bf.Text,Reasoning:b=bf.Reasoning,Image:c=bf.Image,Source:e=bf.Source,File:f=bf.File,Unstable_Audio:g=bf.Unstable_Audio,tools:h={},data:i}={}})=>{let j=(0,n.useAui)(),k=p(a=>a.part),l=k.type;if("tool-call"===l){let a=j.part().addToolResult,b=j.part().resumeToolCall;if("Override"in h)return(0,d.jsx)(h.Override,{...k,addResult:a,resume:b});let c=h.by_name?.[k.toolName]??h.Fallback;return(0,d.jsx)(bd,{...k,Fallback:c,addResult:a,resume:b})}if(k.status?.type==="requires-action")throw Error("Encountered unexpected requires-action status");switch(l){case"text":return(0,d.jsx)(a,{...k});case"reasoning":return(0,d.jsx)(b,{...k});case"source":return(0,d.jsx)(e,{...k});case"image":return(0,d.jsx)(c,{...k});case"file":return(0,d.jsx)(f,{...k});case"audio":return(0,d.jsx)(g,{...k});case"data":{let a=i?.by_name?.[k.name]??i?.Fallback;return(0,d.jsx)(be,{...k,Fallback:a})}default:return console.warn(`Unknown message part type: ${l}`),null}},bh=(0,e.memo)(({index:a,components:b})=>(0,d.jsx)(a4,{index:a,children:(0,d.jsx)(bg,{components:b})}),(a,b)=>a.index===b.index&&a.components?.Text===b.components?.Text&&a.components?.Reasoning===b.components?.Reasoning&&a.components?.Source===b.components?.Source&&a.components?.Image===b.components?.Image&&a.components?.File===b.components?.File&&a.components?.Unstable_Audio===b.components?.Unstable_Audio&&a.components?.tools===b.components?.tools&&a.components?.data===b.components?.data&&a.components?.ToolGroup===b.components?.ToolGroup&&a.components?.ReasoningGroup===b.components?.ReasoningGroup);bh.displayName="MessagePrimitive.PartByIndex";let bi=({status:a,component:b})=>(0,d.jsx)(a6,{text:"",isRunning:"running"===a.type,children:(0,d.jsx)(b,{type:"text",text:"",status:a})}),bj=Object.freeze({type:"complete"}),bk=(0,e.memo)(({components:a})=>{let b=p(a=>a.message.status??bj);return a?.Empty?(0,d.jsx)(a.Empty,{status:b}):"running"!==b.type?null:(0,d.jsx)(bi,{status:b,component:a?.Text??bf.Text})},(a,b)=>a.components?.Empty===b.components?.Empty&&a.components?.Text===b.components?.Text),bl=(0,e.memo)(({components:a,enabled:b})=>p(a=>{if(!b||0===a.message.parts.length)return!1;let c=a.message.parts[a.message.parts.length-1];return c?.type!=="text"&&c?.type!=="reasoning"})?(0,d.jsx)(bk,{components:a}):null,(a,b)=>a.enabled===b.enabled&&a.components?.Empty===b.components?.Empty&&a.components?.Text===b.components?.Text),bm=(0,e.memo)(({Quote:a})=>{let b=p(ba);return b?(0,d.jsx)(a,{text:b.text,messageId:b.messageId}):null}),bn=()=>{let a=(0,n.useAui)(),b=p(a=>a.part),c=p(a=>{if("tool-call"!==a.part.type)return null;let b=a.tools.tools[a.part.toolName];return Array.isArray(b)?b[0]??null:b??null});return c&&"tool-call"===b.type?(0,d.jsx)(c,{...b,addResult:a.part().addToolResult,resume:a.part().resumeToolCall}):null},bo=()=>{let a=p(a=>a.part),b=p(a=>{if("data"!==a.part.type)return null;let b=a.dataRenderers.renderers[a.part.name];return Array.isArray(b)?b[0]??null:b??null});return b&&"data"===a.type?(0,d.jsx)(b,{...a}):null},bp=()=>{let a=p(a=>a.part.type);return"tool-call"===a?(0,d.jsx)(bn,{}):"data"===a?(0,d.jsx)(bo,{}):null},bq=({children:a})=>{let b=(0,n.useAui)(),c=p(a=>a.message.parts.length);return(0,e.useMemo)(()=>Array.from({length:c},(c,e)=>(0,d.jsx)(a4,{index:e,children:(0,d.jsx)(ay,{getItemState:a=>a.message().part({index:e}).getState(),children:c=>{let f=a({get part(){let a=c();if("tool-call"===a.type){let c=b.tools().getState().tools[a.toolName],f=Array.isArray(c)?!!c[0]:!!c,g=b.message().part({index:e});return{...a,toolUI:f?(0,d.jsx)(bn,{}):null,addResult:g.addToolResult,resume:g.resumeToolCall}}if("data"===a.type){let c=b.dataRenderers().getState().renderers[a.name],e=Array.isArray(c)?!!c[0]:!!c;return{...a,dataRendererUI:e?(0,d.jsx)(bo,{}):null}}return a}});return null!==f?f:(0,d.jsx)(bp,{})}})},e)),[c,a])},br=({components:a,unstable_showEmptyOnNonTextEnd:b=!0,children:c})=>c?(0,d.jsx)(bq,{children:c}):(0,d.jsx)(bs,{components:a,unstable_showEmptyOnNonTextEnd:b});br.displayName="MessagePrimitive.Parts";let bs=({components:a,unstable_showEmptyOnNonTextEnd:b})=>{var c,f;let g,h,i=p(a=>a.message.parts.length),j=(c=!!a?.ChainOfThought,h=p((f=a=>a.message.parts.map(a=>a.type),g=e.default.useRef(void 0),a=>{let b=f(a);return!function(a,b){if(Object.is(a,b))return!0;if("object"!=typeof a||null===a||"object"!=typeof b||null===b||Object.getPrototypeOf(a)!==Object.getPrototypeOf(b))return!1;if(Symbol.iterator in a&&Symbol.iterator in b){if("entries"in a&&"entries"in b)return bb(a,b);let c=a[Symbol.iterator](),d=b[Symbol.iterator](),e=c.next(),f=d.next();for(;!e.done&&!f.done;){if(!Object.is(e.value,f.value))return!1;e=c.next(),f=d.next()}return!!e.done&&!!f.done}return bb({entries:()=>Object.entries(a)},{entries:()=>Object.entries(b)})}(g.current,b)?g.current=b:g.current})),(0,e.useMemo)(()=>0===h.length?[]:((a,b)=>{let c=[];if(b){let b=bc("chainOfThoughtGroup");for(let d=0;d<a.length;d++){let e=a[d];"tool-call"===e||"reasoning"===e?b.startGroup(d):(b.endGroup(d-1,c),c.push({type:"single",index:d}))}b.finalize(a.length-1,c)}else{let b=bc("toolGroup"),d=bc("reasoningGroup");for(let e=0;e<a.length;e++){let f=a[e];"tool-call"===f?(d.endGroup(e-1,c),b.startGroup(e)):"reasoning"===f?(b.endGroup(e-1,c),d.startGroup(e)):(b.endGroup(e-1,c),d.endGroup(e-1,c),c.push({type:"single",index:e}))}b.finalize(a.length-1,c),d.finalize(a.length-1,c)}return c})(h,c),[h,c])),k=(0,e.useMemo)(()=>0===i?(0,d.jsx)(bk,{components:a}):j.map(b=>{if("single"===b.type)return(0,d.jsx)(bh,{index:b.index,components:a},b.index);if("chainOfThoughtGroup"===b.type){let c=a?.ChainOfThought;return c?(0,d.jsx)(a9,{startIndex:b.startIndex,endIndex:b.endIndex,children:(0,d.jsx)(c,{})},`chainOfThought-${b.startIndex}`):null}if("toolGroup"===b.type){let c=a?.ToolGroup??bf.ToolGroup;return(0,d.jsx)(c,{startIndex:b.startIndex,endIndex:b.endIndex,children:Array.from({length:b.endIndex-b.startIndex+1},(c,e)=>(0,d.jsx)(bh,{index:b.startIndex+e,components:a},e))},`tool-${b.startIndex}`)}{let c=a?.ReasoningGroup??bf.ReasoningGroup;return(0,d.jsx)(c,{startIndex:b.startIndex,endIndex:b.endIndex,children:Array.from({length:b.endIndex-b.startIndex+1},(c,e)=>(0,d.jsx)(bh,{index:b.startIndex+e,components:a},e))},`reasoning-${b.startIndex}`)}}),[j,a,i]);return(0,d.jsxs)(d.Fragment,{children:[a?.Quote&&(0,d.jsx)(bm,{Quote:a.Quote}),k,(0,d.jsx)(bl,{components:a,enabled:b})]})};a.i(18862);var bt=a.i(3932);let bu=(0,e.createContext)(null),{useSmoothStatus:bv,useSmoothStatusStore:bw}=(0,bt.createContextStoreHook)(function(a){let b=(0,e.useContext)(bu);if(!a?.optional&&!b)throw Error("This component must be used within a SmoothContextProvider.");return b},"useSmoothStatus");var bx=a.i(30522);class by{currentText;setText;animationFrameId=null;lastUpdateTime=Date.now();targetText="";constructor(a,b){this.currentText=a,this.setText=b}start(){null===this.animationFrameId&&(this.lastUpdateTime=Date.now(),this.animate())}stop(){null!==this.animationFrameId&&(cancelAnimationFrame(this.animationFrameId),this.animationFrameId=null)}animate=()=>{let a=Date.now(),b=a-this.lastUpdateTime,c=this.targetText.length-this.currentText.length,d=Math.min(5,250/c),e=0;for(;b>=d&&e<c;)e++,b-=d;e!==c?this.animationFrameId=requestAnimationFrame(this.animate):this.animationFrameId=null,0!==e&&(this.currentText=this.targetText.slice(0,this.currentText.length+e),this.lastUpdateTime=a-b,this.setText(this.currentText))}}let bz=Object.freeze({type:"running"}),bA=(0,e.forwardRef)(({smooth:a=!0,component:b="span",...c},f)=>{let{text:g,status:h}=((a,b=!1)=>{let{text:c}=a,d=p(a=>a.message.id),f=(0,e.useRef)(d),[g,h]=(0,e.useState)("running"===a.status.type?"":c),i=bw({optional:!0}),j=(0,aa.useCallbackRef)(b=>{if(h(b),i){let c=g!==b||"running"===a.status.type?bz:a.status;(0,bx.writableStore)(i).setState(c,!0)}});(0,e.useEffect)(()=>{if(i){let d=b&&(g!==c||"running"===a.status.type)?bz:a.status;(0,bx.writableStore)(i).setState(d,!0)}},[i,b,c,g,a.status]);let[k]=(0,e.useState)(new by(g,j));return(0,e.useEffect)(()=>{if(!b)return void k.stop();if(f.current!==d||!c.startsWith(k.targetText)){f.current=d,"running"===a.status.type?(j(""),k.currentText="",k.targetText=c,k.start()):(j(c),k.currentText=c,k.targetText=c,k.stop());return}k.targetText=c,k.start()},[j,k,d,b,c,a.status.type]),(0,e.useEffect)(()=>()=>{k.stop()},[k]),(0,e.useMemo)(()=>b?{type:"text",text:g,status:c===g?a.status:bz}:a,[b,g,a,c])})(p(a=>{if("text"!==a.part.type&&"reasoning"!==a.part.type)throw Error("MessagePartText can only be used inside text or reasoning message parts.");return a.part}),a);return(0,d.jsx)(b,{"data-status":h.type,...c,ref:f,children:g})});bA.displayName="MessagePartPrimitive.Text";let bB=(0,e.forwardRef)((a,b)=>{let{image:c}=p(a=>{if("image"!==a.part.type)throw Error("MessagePartImage can only be used inside image message parts.");return a.part});return(0,d.jsx)(m.img,{src:c,...a,ref:b})});bB.displayName="MessagePartPrimitive.Image";let bC=({children:a})=>p(a=>"running"===a.part.status.type)?a:null;bC.displayName="MessagePartPrimitive.InProgress";let bD={...bf,Text:()=>(0,d.jsxs)("p",{style:{whiteSpace:"pre-line"},children:[(0,d.jsx)(bA,{}),(0,d.jsx)(bC,{children:(0,d.jsx)("span",{style:{fontFamily:"revert"},children:" ●"})})]}),Image:()=>(0,d.jsx)(bB,{})},bE=a=>{if("children"in a)return(0,d.jsx)(br,{children:a.children});let{components:b,...c}=a,e=b?{Text:b.Text??bD.Text,Image:b.Image??bD.Image,Reasoning:b.Reasoning??bf.Reasoning,Source:b.Source??bf.Source,File:b.File??bf.File,Unstable_Audio:b.Unstable_Audio??bf.Unstable_Audio,..."ChainOfThought"in b?{ChainOfThought:b.ChainOfThought}:{tools:b.tools,data:b.data,ToolGroup:b.ToolGroup??bf.ToolGroup,ReasoningGroup:b.ReasoningGroup??bf.ReasoningGroup},Empty:b.Empty,Quote:b.Quote}:bD;return(0,d.jsx)(br,{components:e,...c})};bE.displayName="MessagePrimitive.Parts";let bF=({children:a,...b})=>p(a=>{let{role:c,attachments:d,parts:e,branchCount:f,isLast:g,speech:h,isCopied:i,isHovering:j}=a.message;return!(!0===b.hasBranches&&f<2||b.user&&"user"!==c||b.assistant&&"assistant"!==c||b.system&&"system"!==c||!0===b.lastOrHover&&!j&&!g||void 0!==b.last&&b.last!==g||!0===b.copied&&!i||!1===b.copied&&i||!0===b.speaking&&null==h||!1===b.speaking&&null!=h||!0===b.hasAttachments&&("user"!==c||!d?.length)||!1===b.hasAttachments&&"user"===c&&d?.length)&&(!0!==b.hasContent||0!==e.length)&&(!1!==b.hasContent||!(e.length>0))&&(void 0===b.submittedFeedback||(a.message.metadata.submittedFeedback?.type??null)===b.submittedFeedback)})?a:null;bF.displayName="MessagePrimitive.If";let bG=(a,b)=>{switch(b.type){case"image":return a?.Image??a?.Attachment;case"document":return a?.Document??a?.Attachment;case"file":return a?.File??a?.Attachment;default:return a?.Attachment}},bH=({components:a})=>{let b=p(a=>a.attachment);if(!b)return null;let c=bG(a,b);return c?(0,d.jsx)(c,{}):null},bI=(0,e.memo)(({index:a,components:b})=>(0,d.jsx)(aC,{index:a,children:(0,d.jsx)(bH,{components:b})}),(a,b)=>a.index===b.index&&a.components?.Image===b.components?.Image&&a.components?.Document===b.components?.Document&&a.components?.File===b.components?.File&&a.components?.Attachment===b.components?.Attachment);bI.displayName="MessagePrimitive.AttachmentByIndex";let bJ=({children:a})=>{let b=p(a=>"user"!==a.message.role?0:a.message.attachments.length);return(0,e.useMemo)(()=>Array.from({length:b},(b,c)=>(0,d.jsx)(aC,{index:c,children:(0,d.jsx)(ay,{getItemState:a=>a.message().attachment({index:c}).getState(),children:b=>a({get attachment(){return b()}})})},c)),[b,a])},bK=({components:a,children:b})=>a?(0,d.jsx)(bJ,{children:({attachment:b})=>{let c=bG(a,b);return c?(0,d.jsx)(c,{}):null}}):(0,d.jsx)(bJ,{children:b});bK.displayName="MessagePrimitive.Attachments";let bL=(0,e.memo)(({children:a})=>{let b=p(ba);return b?(0,d.jsx)(d.Fragment,{children:a(b)}):null});bL.displayName="MessagePrimitive.Quote";let bM=({children:a})=>void 0!==p(a=>a.message.status?.type==="incomplete"&&"error"===a.message.status.reason?a.message.status.error??"An error occurred":void 0)?a:null;bM.displayName="MessagePrimitive.Error";let bN=a=>{let b=new Map;for(let c=0;c<a.length;c++){let d=a[c],e=d?.parentId??`__ungrouped_${c}`,f=b.get(e)??[];f.push(c),b.set(e,f)}let c=[];for(let[a,d]of b){let b=a.startsWith("__ungrouped_")?void 0:a;c.push({groupKey:b,indices:d})}return c},bO=({Fallback:a,...b})=>{let c=p(c=>{let d=c.tools.tools[b.toolName]??a;return Array.isArray(d)?d[0]??a:d});return c?(0,d.jsx)(c,{...b}):null},bP=({Fallback:a,...b})=>{let c=p(c=>{let d=c.dataRenderers.renderers[b.name]??a;return Array.isArray(d)?d[0]??a:d});return c?(0,d.jsx)(c,{...b}):null},bQ=()=>(0,d.jsxs)("p",{style:{whiteSpace:"pre-line"},children:[(0,d.jsx)(bA,{}),(0,d.jsx)(bC,{children:(0,d.jsx)("span",{style:{fontFamily:"revert"},children:" ●"})})]}),bR=()=>null,bS=()=>null,bT=()=>(0,d.jsx)(bB,{}),bU=()=>null,bV=()=>null,bW=({children:a})=>a,bX=({components:{Text:a=bQ,Reasoning:b=bR,Image:c=bT,Source:e=bS,File:f=bU,Unstable_Audio:g=bV,tools:h={},data:i}={}})=>{let j=(0,n.useAui)(),k=p(a=>a.part),l=k.type;if("tool-call"===l){let a=j.part().addToolResult,b=j.part().resumeToolCall;if("Override"in h)return(0,d.jsx)(h.Override,{...k,addResult:a,resume:b});let c=h.by_name?.[k.toolName]??h.Fallback;return(0,d.jsx)(bO,{...k,Fallback:c,addResult:a,resume:b})}if(k.status?.type==="requires-action")throw Error("Encountered unexpected requires-action status");switch(l){case"text":return(0,d.jsx)(a,{...k});case"reasoning":return(0,d.jsx)(b,{...k});case"source":return(0,d.jsx)(e,{...k});case"image":return(0,d.jsx)(c,{...k});case"file":return(0,d.jsx)(f,{...k});case"audio":return(0,d.jsx)(g,{...k});case"data":{let a=i?.by_name?.[k.name]??i?.Fallback;return(0,d.jsx)(bP,{...k,Fallback:a})}default:return console.warn(`Unknown message part type: ${l}`),null}},bY=(0,e.memo)(({partIndex:a,components:b})=>(0,d.jsx)(a4,{index:a,children:(0,d.jsx)(bX,{components:b})}),(a,b)=>a.partIndex===b.partIndex&&a.components?.Text===b.components?.Text&&a.components?.Reasoning===b.components?.Reasoning&&a.components?.Source===b.components?.Source&&a.components?.Image===b.components?.Image&&a.components?.File===b.components?.File&&a.components?.Unstable_Audio===b.components?.Unstable_Audio&&a.components?.tools===b.components?.tools&&a.components?.data===b.components?.data&&a.components?.Group===b.components?.Group),bZ=({status:a,component:b})=>(0,d.jsx)(a6,{text:"",isRunning:"running"===a.type,children:(0,d.jsx)(b,{type:"text",text:"",status:a})}),b$=Object.freeze({type:"complete"}),b_=(0,e.memo)(({components:a})=>{let b=p(a=>a.message.status??b$);return a?.Empty?(0,d.jsx)(a.Empty,{status:b}):(0,d.jsx)(bZ,{status:b,component:a?.Text??bQ})},(a,b)=>a.components?.Empty===b.components?.Empty&&a.components?.Text===b.components?.Text),b0=({groupingFunction:a,components:b})=>{let c,f=p(a=>a.message.parts.length),g=(c=p(a=>a.message.parts),(0,e.useMemo)(()=>0===c.length?[]:a(c),[c,a])),h=(0,e.useMemo)(()=>0===f?(0,d.jsx)(b_,{components:b}):g.map((a,c)=>{let e=b?.Group??bW;return(0,d.jsx)(e,{groupKey:a.groupKey,indices:a.indices,children:a.indices.map(a=>(0,d.jsx)(bY,{partIndex:a,components:b},a))},`group-${c}-${a.groupKey??"ungrouped"}`)}),[g,b,f]);return(0,d.jsx)(d.Fragment,{children:h})};b0.displayName="MessagePrimitive.Unstable_PartsGrouped";let b1=({components:a,...b})=>(0,d.jsx)(b0,{...b,components:a,groupingFunction:bN});b1.displayName="MessagePrimitive.Unstable_PartsGroupedByParentId",a.s(["AttachmentByIndex",0,bI,"Attachments",0,bK,"Content",0,bE,"Error",0,bM,"If",0,bF,"PartByIndex",0,bh,"Parts",0,bE,"Quote",0,bL,"Root",0,a3,"Unstable_PartsGrouped",0,b0,"Unstable_PartsGroupedByParentId",0,b1],33280);var b2=a.i(33280);a.s(["MessagePrimitive",0,b2],92102),a.s([],81399),a.i(81399);let b3=(0,e.forwardRef)((a,b)=>(0,d.jsx)(m.div,{...a,ref:b}));b3.displayName="ThreadPrimitive.Root";let b4=({children:a})=>p(a=>a.thread.isEmpty)?a:null;b4.displayName="ThreadPrimitive.Empty";let b5=({children:a,...b})=>p(a=>(!0!==b.empty||!!a.thread.isEmpty)&&(!1!==b.empty||!a.thread.isEmpty)&&(!0!==b.running||!!a.thread.isRunning)&&(!1!==b.running||!a.thread.isRunning)&&(!0!==b.disabled||!!a.thread.isDisabled)&&(!1!==b.disabled||!a.thread.isDisabled)&&!0)?a:null;b5.displayName="ThreadPrimitive.If";let b6=e.default.createContext(!0);function b7(){throw Error("A function wrapped in useEffectEvent can't be called during rendering.")}let b8="use"in e.default?()=>{try{return e.default.use(b6)}catch{return!1}}:()=>!1;var b9=a.i(296);let ca=(a,b)=>{let c,d=(0,n.useAui)(),f=(c=e.default.useRef(b7),e.default.useInsertionEffect(()=>{c.current=b},[b]),(...a)=>(b8()&&b7(),(0,c.current)(...a))),{scope:g,event:h}=(0,b9.normalizeEventSelector)(a);(0,e.useEffect)(()=>d.on({scope:g,event:h},f),[d,g,h,f])};var cb=a.i(34607);let cc=(0,e.forwardRef)(({autoScroll:a,scrollToBottomOnRunStart:b,scrollToBottomOnInitialize:c,scrollToBottomOnThreadSwitch:g,children:h,...i},j)=>{let k=(({autoScroll:a,scrollToBottomOnRunStart:b=!0,scrollToBottomOnInitialize:c=!0,scrollToBottomOnThreadSwitch:d=!0})=>{var g;let h,i=(0,e.useRef)(null),j=(0,ab.useThreadViewportStore)();void 0===a&&(a="top"!==j.getState().turnAnchor);let k=(0,e.useRef)(0),l=(0,e.useRef)(null),m=(0,e.useCallback)(a=>{let b=i.current;b&&(l.current=a,b.scrollTo({top:b.scrollHeight,behavior:a}))},[]),n=()=>{let a=i.current;if(!a)return;let b=j.getState().isAtBottom,c=1>Math.abs(a.scrollHeight-a.scrollTop-a.clientHeight)||a.scrollHeight<=a.clientHeight;!c&&k.current<a.scrollTop||(c&&(l.current=null),(c||null===l.current)&&c!==b&&(0,bx.writableStore)(j).setState({isAtBottom:c})),k.current=a.scrollTop},o=(g=()=>{let b=l.current;b?m(b):a&&j.getState().isAtBottom&&m("instant"),n()},h=(0,aa.useCallbackRef)(g),a$((0,e.useCallback)(a=>{let b=new ResizeObserver(()=>{h()}),c=new MutationObserver(a=>{a.some(a=>"attributes"!==a.type||"style"!==a.attributeName)&&h()});return b.observe(a),c.observe(a,{childList:!0,subtree:!0,attributes:!0,characterData:!0}),()=>{b.disconnect(),c.disconnect()}},[h]))),p=a$(a=>(a.addEventListener("scroll",n),()=>{a.removeEventListener("scroll",n)}));return ac(({behavior:a})=>{m(a)}),ca("thread.runStart",()=>{b&&(l.current="auto",requestAnimationFrame(()=>{m("auto")}))}),ca("thread.initialize",()=>{c&&(l.current="instant",requestAnimationFrame(()=>{m("instant")}))}),ca("threadListItem.switchedTo",()=>{d&&(l.current="instant",requestAnimationFrame(()=>{m("instant")}))}),(0,f.useComposedRefs)(o,p,i)})({autoScroll:a,scrollToBottomOnRunStart:b,scrollToBottomOnInitialize:c,scrollToBottomOnThreadSwitch:g}),l=a_((0,ab.useThreadViewport)(a=>a.registerViewport),(0,e.useCallback)(a=>a.clientHeight,[])),n=(0,f.useComposedRefs)(j,k,l);return(0,d.jsx)(m.div,{...i,ref:n,children:h})});cc.displayName="ThreadPrimitive.ViewportScrollable";let cd=(0,e.forwardRef)(({turnAnchor:a,...b},c)=>(0,d.jsx)(cb.ThreadPrimitiveViewportProvider,{options:{turnAnchor:a},children:(0,d.jsx)(cc,{...b,ref:c})}));cd.displayName="ThreadPrimitive.Viewport";let ce=(0,e.forwardRef)((a,b)=>{let c=a_((0,ab.useThreadViewport)(a=>a.registerContentInset),(0,e.useCallback)(a=>{let b=parseFloat(getComputedStyle(a).marginTop)||0;return a.offsetHeight+b},[])),g=(0,f.useComposedRefs)(b,c);return(0,d.jsx)(m.div,{...a,ref:g})});ce.displayName="ThreadPrimitive.ViewportFooter";let cf=({index:a,children:b})=>{let c=(0,n.useAui)({message:(0,aB.Derived)({source:"thread",query:{type:"index",index:a},get:b=>b.thread().message({index:a})}),composer:(0,aB.Derived)({source:"message",query:{},get:b=>b.thread().message({index:a}).composer()})});return(0,d.jsx)(aA.AuiProvider,{value:c,children:b})},cg=(a,b)=>a.Message===b.Message&&a.EditComposer===b.EditComposer&&a.UserEditComposer===b.UserEditComposer&&a.AssistantEditComposer===b.AssistantEditComposer&&a.SystemEditComposer===b.SystemEditComposer&&a.UserMessage===b.UserMessage&&a.AssistantMessage===b.AssistantMessage&&a.SystemMessage===b.SystemMessage,ch=()=>null,ci=({components:a})=>{let b=((a,b,c)=>{switch(b){case"user":if(c)return a.UserEditComposer??a.EditComposer??a.UserMessage??a.Message;return a.UserMessage??a.Message;case"assistant":if(c)return a.AssistantEditComposer??a.EditComposer??a.AssistantMessage??a.Message;return a.AssistantMessage??a.Message;case"system":if(c)return a.SystemEditComposer??a.EditComposer??a.SystemMessage??a.Message;return a.SystemMessage??a.Message??ch;default:throw Error(`Unknown message role: ${b}`)}})(a,p(a=>a.message.role),p(a=>a.message.composer.isEditing));return(0,d.jsx)(b,{})},cj=(0,e.memo)(({index:a,components:b})=>(0,d.jsx)(cf,{index:a,children:(0,d.jsx)(ci,{components:b})}),(a,b)=>a.index===b.index&&cg(a.components,b.components));cj.displayName="ThreadPrimitive.MessageByIndex";let ck=({children:a})=>{let b=p(a=>a.thread.messages.length);return(0,e.useMemo)(()=>0===b?null:Array.from({length:b},(b,c)=>(0,d.jsx)(cf,{index:c,children:(0,d.jsx)(ay,{getItemState:a=>a.thread().message({index:c}).getState(),children:b=>a({get message(){return b()}})})},c)),[b,a])},cl=({components:a,children:b})=>a?(0,d.jsx)(ck,{children:()=>(0,d.jsx)(ci,{components:a})}):(0,d.jsx)(ck,{children:b});cl.displayName="ThreadPrimitive.Messages";let cm=(0,e.memo)(cl,(a,b)=>a.children||b.children?a.children===b.children:cg(a.components,b.components)),cn=u("ThreadPrimitive.ScrollToBottom",({behavior:a}={})=>{let b=(0,ab.useThreadViewport)(a=>a.isAtBottom),c=(0,ab.useThreadViewportStore)(),d=(0,e.useCallback)(()=>{c.getState().scrollToBottom({behavior:a})},[c,a]);return b?null:d},["behavior"]),co=u("ThreadPrimitive.Suggestion",({prompt:a,send:b,clearComposer:c,autoSend:d,method:f})=>{let{disabled:g,trigger:h}=(({prompt:a,send:b,clearComposer:c=!0})=>{let d=(0,n.useAui)(),f=p(a=>a.thread.isDisabled),g=b??!1;return{trigger:(0,e.useCallback)(()=>{let b=d.thread().getState().isRunning;if(g&&!b)d.thread().append({content:[{type:"text",text:a}],runConfig:d.composer().getState().runConfig}),c&&d.composer().setText("");else if(c)d.composer().setText(a);else{let b=d.composer().getState().text;d.composer().setText(b.trim()?`${b} ${a}`:a)}},[d,g,c,a]),disabled:f}})({prompt:a,send:b??d??!1,clearComposer:c});return g?null:h},["prompt","send","clearComposer","autoSend","method"]),cp=({index:a,children:b})=>{let c=(0,n.useAui)({suggestion:(0,aB.Derived)({source:"suggestions",query:{index:a},get:b=>b.suggestions().suggestion({index:a})})});return(0,d.jsx)(aA.AuiProvider,{value:c,children:b})},cq=({components:a})=>{let b=a.Suggestion;return(0,d.jsx)(b,{})},cr=(0,e.memo)(({index:a,components:b})=>(0,d.jsx)(cp,{index:a,children:(0,d.jsx)(cq,{components:b})}),(a,b)=>a.index===b.index&&a.components.Suggestion===b.components.Suggestion);cr.displayName="ThreadPrimitive.SuggestionByIndex";let cs=({children:a})=>{let b=p(a=>a.suggestions.suggestions.length);return(0,e.useMemo)(()=>0===b?null:Array.from({length:b},(b,c)=>(0,d.jsx)(cp,{index:c,children:(0,d.jsx)(ay,{getItemState:a=>a.suggestions().suggestion({index:c}).getState(),children:b=>a({get suggestion(){return b()}})})},c)),[b,a])},ct=({components:a,children:b})=>a?(0,d.jsx)(cs,{children:()=>(0,d.jsx)(cq,{components:a})}):(0,d.jsx)(cs,{children:b});ct.displayName="ThreadPrimitive.Suggestions";let cu=(0,e.memo)(ct,(a,b)=>a.children||b.children?a.children===b.children:a.components.Suggestion===b.components.Suggestion);a.s(["Empty",0,b4,"If",0,b5,"MessageByIndex",0,cj,"Messages",0,cm,"Root",0,b3,"ScrollToBottom",0,cn,"Suggestion",0,co,"SuggestionByIndex",0,cr,"Suggestions",0,cu,"Viewport",0,cd,"ViewportFooter",0,ce,"ViewportProvider",()=>cb.ThreadPrimitiveViewportProvider,"ViewportSlack",0,a2],68235);var cv=a.i(68235);a.s(["ThreadPrimitive",0,cv],55489);function cw(a){return function(b){let c,d=!1;"function"==typeof b?c=b:b&&(d=!!b.optional,c=b.selector);let f=a({optional:d});return f?function(a,b=a=>a){a.__isBound||(a.__internal_bindMethods?.(),a.__isBound=!0);let c=(0,e.useSyncExternalStore)(a.subscribe,()=>b(a.getState()),()=>b(a.getState()));return(0,e.useDebugValue)(c),c}(f,c):null}}function cx(a){let b=(0,n.useAui)(),c=p(()=>b.message.source?b.message().__internal_getRuntime?.()??null:null);if(!c&&!a?.optional)throw Error("MessageRuntime is not available");return c}let cy=cw(cx);cw(a=>cx(a)?.composer??null),a.s(["useMessage",0,cy],419);var cz=a.i(97624);let cA=(0,cz.default)("send-horizontal",[["path",{d:"M3.714 3.048a.498.498 0 0 0-.683.627l2.843 7.627a2 2 0 0 1 0 1.396l-2.842 7.627a.498.498 0 0 0 .682.627l18-8.5a.5.5 0 0 0 0-.904z",key:"117uat"}],["path",{d:"M6 12h16",key:"s4cdu5"}]]);a.s(["SendHorizontal",0,cA],12294);let cB=(0,cz.default)("circle-stop",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["rect",{x:"9",y:"9",width:"6",height:"6",rx:"1",key:"1ssd4o"}]]);a.s(["CircleStop",0,cB],26246);var cC=a.i(39388);a.s(["Paperclip",()=>cC.default],77092)},52569,(a,b,c)=>{"use strict";let d="u">typeof Buffer,e=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,f=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/;function g(a,b,c){null==c&&null!==b&&"object"==typeof b&&(c=b,b=void 0),d&&Buffer.isBuffer(a)&&(a=a.toString()),a&&65279===a.charCodeAt(0)&&(a=a.slice(1));let g=JSON.parse(a,b);if(null===g||"object"!=typeof g)return g;let i=c&&c.protoAction||"error",j=c&&c.constructorAction||"error";if("ignore"===i&&"ignore"===j)return g;if("ignore"!==i&&"ignore"!==j){if(!1===e.test(a)&&!1===f.test(a))return g}else if("ignore"!==i&&"ignore"===j){if(!1===e.test(a))return g}else if(!1===f.test(a))return g;return h(g,{protoAction:i,constructorAction:j,safe:c&&c.safe})}function h(a,{protoAction:b="error",constructorAction:c="error",safe:d}={}){let e=[a];for(;e.length;){let a=e;for(let f of(e=[],a)){if("ignore"!==b&&Object.prototype.hasOwnProperty.call(f,"__proto__")){if(!0===d)return null;if("error"===b)throw SyntaxError("Object contains forbidden prototype property");delete f.__proto__}if("ignore"!==c&&Object.prototype.hasOwnProperty.call(f,"constructor")&&null!==f.constructor&&"object"==typeof f.constructor&&Object.prototype.hasOwnProperty.call(f.constructor,"prototype")){if(!0===d)return null;if("error"===c)throw SyntaxError("Object contains forbidden prototype property");delete f.constructor}for(let a in f){let b=f[a];b&&"object"==typeof b&&e.push(b)}}}return a}function i(a,b,c){let{stackTraceLimit:d}=Error;Error.stackTraceLimit=0;try{return g(a,b,c)}finally{Error.stackTraceLimit=d}}b.exports=i,b.exports.default=i,b.exports.parse=i,b.exports.safeParse=function(a,b){let{stackTraceLimit:c}=Error;Error.stackTraceLimit=0;try{return g(a,b,{safe:!0})}catch{return}finally{Error.stackTraceLimit=c}},b.exports.scan=h},30970,a=>{"use strict";var b=a.i(5303),c=a.i(35739),d=a.i(53834),e=class extends c.Removable{#a;#b;#c;#d;constructor(a){super(),this.#a=a.client,this.mutationId=a.mutationId,this.#c=a.mutationCache,this.#b=[],this.state=a.state||f(),this.setOptions(a.options),this.scheduleGc()}setOptions(a){this.options=a,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(a){this.#b.includes(a)||(this.#b.push(a),this.clearGcTimeout(),this.#c.notify({type:"observerAdded",mutation:this,observer:a}))}removeObserver(a){this.#b=this.#b.filter(b=>b!==a),this.scheduleGc(),this.#c.notify({type:"observerRemoved",mutation:this,observer:a})}optionalRemove(){this.#b.length||("pending"===this.state.status?this.scheduleGc():this.#c.remove(this))}continue(){return this.#d?.continue()??this.execute(this.state.variables)}async execute(a){let b=()=>{this.#e({type:"continue"})},c={client:this.#a,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#d=(0,d.createRetryer)({fn:()=>this.options.mutationFn?this.options.mutationFn(a,c):Promise.reject(Error("No mutationFn found")),onFail:(a,b)=>{this.#e({type:"failed",failureCount:a,error:b})},onPause:()=>{this.#e({type:"pause"})},onContinue:b,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#c.canRun(this)});let e="pending"===this.state.status,f=!this.#d.canStart();try{if(e)b();else{this.#e({type:"pending",variables:a,isPaused:f}),this.#c.config.onMutate&&await this.#c.config.onMutate(a,this,c);let b=await this.options.onMutate?.(a,c);b!==this.state.context&&this.#e({type:"pending",context:b,variables:a,isPaused:f})}let d=await this.#d.start();return await this.#c.config.onSuccess?.(d,a,this.state.context,this,c),await this.options.onSuccess?.(d,a,this.state.context,c),await this.#c.config.onSettled?.(d,null,this.state.variables,this.state.context,this,c),await this.options.onSettled?.(d,null,a,this.state.context,c),this.#e({type:"success",data:d}),d}catch(b){try{await this.#c.config.onError?.(b,a,this.state.context,this,c)}catch(a){Promise.reject(a)}try{await this.options.onError?.(b,a,this.state.context,c)}catch(a){Promise.reject(a)}try{await this.#c.config.onSettled?.(void 0,b,this.state.variables,this.state.context,this,c)}catch(a){Promise.reject(a)}try{await this.options.onSettled?.(void 0,b,a,this.state.context,c)}catch(a){Promise.reject(a)}throw this.#e({type:"error",error:b}),b}finally{this.#c.runNext(this)}}#e(a){this.state=(b=>{switch(a.type){case"failed":return{...b,failureCount:a.failureCount,failureReason:a.error};case"pause":return{...b,isPaused:!0};case"continue":return{...b,isPaused:!1};case"pending":return{...b,context:a.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:a.isPaused,status:"pending",variables:a.variables,submittedAt:Date.now()};case"success":return{...b,data:a.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...b,data:void 0,error:a.error,failureCount:b.failureCount+1,failureReason:a.error,isPaused:!1,status:"error"}}})(this.state),b.notifyManager.batch(()=>{this.#b.forEach(b=>{b.onMutationUpdate(a)}),this.#c.notify({mutation:this,type:"updated",action:a})})}};function f(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}a.s(["Mutation",0,e,"getDefaultState",0,f])},61544,a=>{"use strict";var b=a.i(53083),c=a.i(11321);a.i(98617);var d=a.i(50040),e=a.i(78760),f=a.i(65350),g=a.i(39794),h=a.i(85536),i=a.i(69214),j=a.i(91181),k=a.i(88099),l=a.i(92102),m=a.i(55489),n=a.i(419),o=a.i(30332),p=a.i(16828),q=a.i(12294),r=a.i(26246),s=a.i(34948),t=a.i(77092),u=a.i(87638),v=a.i(25670),w=a.i(34466),x=a.i(83695),y=a.i(29345),z=a.i(65798),A=a.i(20901);let B={p:({children:a})=>(0,b.jsx)("p",{className:"mb-2 leading-relaxed last:mb-0",children:a}),strong:({children:a})=>(0,b.jsx)("strong",{className:"font-semibold",children:a}),em:({children:a})=>(0,b.jsx)("em",{className:"italic",children:a}),code:({children:a,className:c})=>c?(0,b.jsx)("code",{className:`${c} text-[11px]`,children:a}):(0,b.jsx)("code",{className:"bg-background/50 rounded-md px-1.5 py-0.5 font-mono text-xs",children:a}),pre:({children:a})=>{let c=a?.props?.className?.replace("language-","")??"",d="string"==typeof a?.props?.children?a.props.children:"";return["html","svg"].includes(c)&&d.length>0?(0,b.jsx)(I,{code:d,language:c}):(0,b.jsx)(H,{language:c,children:a})},ul:({children:a})=>(0,b.jsx)("ul",{className:"mb-2 list-disc ps-4 last:mb-0",children:a}),ol:({children:a})=>(0,b.jsx)("ol",{className:"mb-2 list-decimal ps-4 last:mb-0",children:a}),li:({children:a})=>(0,b.jsx)("li",{className:"mb-0.5",children:a}),h1:({children:a})=>(0,b.jsx)("h1",{className:"mb-1 text-base font-bold",children:a}),h2:({children:a})=>(0,b.jsx)("h2",{className:"mb-1 text-sm font-bold",children:a}),h3:({children:a})=>(0,b.jsx)("h3",{className:"mb-1 text-sm font-semibold",children:a}),a:({children:a,href:c})=>(0,b.jsx)("a",{href:c,className:"text-blue-500 underline",target:"_blank",rel:"noopener noreferrer",children:a}),blockquote:({children:a})=>(0,b.jsx)("blockquote",{className:"border-muted-foreground/30 my-1 border-s-2 ps-3 italic opacity-80",children:a}),table:({children:a})=>(0,b.jsx)("div",{className:"my-2 overflow-x-auto",children:(0,b.jsx)("table",{className:"min-w-full border-collapse text-xs",children:a})}),thead:({children:a})=>(0,b.jsx)("thead",{className:"bg-muted/50 border-b",children:a}),th:({children:a})=>(0,b.jsx)("th",{className:"px-2 py-1 text-start font-semibold",children:a}),td:({children:a})=>(0,b.jsx)("td",{className:"border-muted border-t px-2 py-1",children:a}),tr:({children:a})=>(0,b.jsx)("tr",{children:a}),hr:()=>(0,b.jsx)("hr",{className:"border-border/40 my-3 border-t"})};function C({className:a,statusBar:c,composer:d}){return(0,b.jsxs)(m.ThreadPrimitive.Root,{className:(0,h.cn)("flex h-full flex-col",a),children:[(0,b.jsxs)(m.ThreadPrimitive.Viewport,{className:"flex flex-1 flex-col overflow-y-auto pt-4",children:[(0,b.jsx)(m.ThreadPrimitive.Empty,{children:(0,b.jsx)(D,{})}),(0,b.jsx)(m.ThreadPrimitive.Messages,{components:{UserMessage:E,AssistantMessage:G}})]}),c,d??(0,b.jsx)(R,{})]})}function D(){return(0,b.jsxs)("div",{className:"flex flex-1 flex-col items-center justify-center gap-2 p-8 text-center",children:[(0,b.jsx)(u.Bot,{className:"text-muted-foreground/40 h-10 w-10"}),(0,b.jsx)("p",{className:"text-muted-foreground text-sm",children:"Send a message to start chatting with the agent."})]})}let E=()=>(0,b.jsxs)(l.MessagePrimitive.Root,{className:"group flex w-full items-start gap-2.5 px-4 py-0.5",children:[(0,b.jsx)("div",{className:"mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center rounded-full bg-violet-500/15",children:(0,b.jsx)(v.User,{className:"h-3.5 w-3.5 text-violet-500"})}),(0,b.jsxs)("div",{className:"flex max-w-[85%] min-w-0 flex-col gap-0.5",children:[(0,b.jsx)("div",{className:"text-foreground mt-px overflow-hidden rounded-2xl rounded-tl-sm border border-violet-500/15 bg-violet-500/8 px-4 py-2 text-sm leading-relaxed break-words shadow-sm backdrop-blur-md",children:(0,b.jsx)(l.MessagePrimitive.Content,{components:{Text:F}})}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5 opacity-0 transition-opacity group-hover:opacity-100",children:[(0,b.jsx)(P,{}),(0,b.jsx)(j.ActionBarPrimitive.Root,{className:"flex items-center gap-1",children:(0,b.jsx)(j.ActionBarPrimitive.Copy,{asChild:!0,children:(0,b.jsx)(Q,{tooltip:"Copy",children:(0,b.jsx)(s.Copy,{})})})})]})]})]});function F({text:a}){return(0,b.jsx)("span",{className:"whitespace-pre-wrap",children:a})}let G=()=>(0,b.jsxs)(l.MessagePrimitive.Root,{className:"group flex w-full items-start gap-2.5 px-4 py-0.5",children:[(0,b.jsx)("div",{className:"bg-muted flex h-6 w-6 shrink-0 items-center justify-center rounded-full",children:(0,b.jsx)(u.Bot,{className:"text-muted-foreground h-3.5 w-3.5"})}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-0.5",children:[(0,b.jsx)("div",{className:"bg-muted/50 text-foreground mt-px overflow-hidden rounded-2xl rounded-tl-sm border border-white/5 px-4 py-2 text-sm leading-relaxed break-words shadow-sm backdrop-blur-md",children:(0,b.jsx)(l.MessagePrimitive.Content,{components:{Text:K}})}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5 opacity-0 transition-opacity group-hover:opacity-100",children:[(0,b.jsx)(P,{}),(0,b.jsx)(j.ActionBarPrimitive.Root,{className:"flex items-center gap-1",children:(0,b.jsx)(j.ActionBarPrimitive.Copy,{asChild:!0,children:(0,b.jsx)(Q,{tooltip:"Copy",children:(0,b.jsx)(s.Copy,{})})})})]})]})]});function H({children:a,language:e}){let{t:f}=(0,d.useTranslation)("web"),[g,h]=(0,c.useState)(!1),[i,j]=(0,c.useState)(!1),k=(0,c.useRef)(null);return(0,c.useEffect)(()=>{k.current&&k.current.scrollHeight>240&&j(!0)},[a]),(0,b.jsxs)("div",{className:"bg-background/50 relative my-2 overflow-hidden rounded-md",children:[e?(0,b.jsx)("div",{className:"text-muted-foreground/50 border-b border-white/5 px-3 py-1 font-mono text-[10px] uppercase",children:e}):null,(0,b.jsx)("pre",{ref:k,className:"overflow-x-auto p-3 font-mono text-xs leading-relaxed transition-[max-height] duration-300 ease-in-out",style:{maxHeight:g?"min(60vh, 500px)":i?"200px":"min(60vh, 500px)",overflow:g?"auto":void 0},children:a}),i&&!g?(0,b.jsx)("div",{className:"absolute inset-x-0 bottom-0 flex items-end justify-center bg-gradient-to-t from-black/60 via-black/30 to-transparent pt-12 pb-3",children:(0,b.jsxs)("button",{type:"button",onClick:()=>h(!0),className:"inline-flex items-center gap-1 rounded-full border border-white/10 bg-white/10 px-3 py-1 text-[11px] font-medium text-white/80 shadow-lg backdrop-blur-md transition-all hover:bg-white/20 hover:text-white",children:[(0,b.jsx)(y.ChevronDown,{className:"h-3 w-3"}),f("chat.showMore")]})}):null,i&&g?(0,b.jsx)("div",{className:"flex justify-center border-t border-white/5 py-1.5",children:(0,b.jsxs)("button",{type:"button",onClick:()=>h(!1),className:"inline-flex items-center gap-1 rounded-full px-3 py-0.5 text-[11px] text-white/50 transition-colors hover:text-white/80",children:[(0,b.jsx)(z.ChevronUp,{className:"h-3 w-3"}),f("chat.showLess")]})}):null]})}function I({code:a,language:e}){let{t:f}=(0,d.useTranslation)("web"),[g,j]=(0,c.useState)(!1),[k,l]=(0,c.useState)(!1),[m,n]=(0,c.useState)(!1),o=a.split("\n").length,p=a.length;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"bg-background/50 my-2 overflow-hidden rounded-md border",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between border-b px-3 py-1",children:[(0,b.jsx)("span",{className:"text-muted-foreground font-mono text-xs uppercase",children:e}),(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)("button",{type:"button",onClick:()=>j(!1),className:(0,h.cn)("rounded px-2.5 py-0.5 text-xs font-medium transition-colors",g?"text-muted-foreground hover:text-foreground":"bg-muted text-foreground"),children:f("chat.code")}),(0,b.jsx)("button",{type:"button",onClick:()=>j(!0),className:(0,h.cn)("rounded px-2.5 py-0.5 text-xs font-medium transition-colors",g?"bg-muted text-foreground":"text-muted-foreground hover:text-foreground"),children:f("chat.preview")}),(0,b.jsx)("button",{type:"button",onClick:()=>{n(!g),l(!0)},className:"text-muted-foreground hover:text-foreground ms-1 rounded p-0.5 transition-colors",title:f("chat.openFullscreen"),children:(0,b.jsx)(w.Maximize2,{className:"h-3 w-3"})})]})]}),(0,b.jsx)("div",{style:{height:"min(55vh, 450px)"},children:g?(0,b.jsx)("iframe",{srcDoc:a,sandbox:"allow-scripts",className:"h-full w-full border-0 bg-white",title:f("chat.htmlPreview")}):(0,b.jsx)("pre",{className:"h-full overflow-auto p-3 font-mono text-xs leading-relaxed",children:(0,b.jsx)("code",{children:a})})})]}),k&&"u">typeof document?(0,i.createPortal)((0,b.jsx)("div",{className:"fixed inset-0 z-[9999] flex items-center justify-center bg-black/70 backdrop-blur-sm",onClick:()=>l(!1),children:(0,b.jsxs)("div",{className:"bg-background relative flex h-[95vh] w-[95vw] flex-col overflow-hidden rounded-xl border shadow-2xl",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"bg-muted/80 flex h-12 shrink-0 items-center justify-between border-b px-5",children:[(0,b.jsxs)("div",{className:"bg-muted flex items-center gap-0.5 rounded-lg p-1",children:[(0,b.jsx)("button",{type:"button",onClick:()=>n(!1),className:(0,h.cn)("rounded-md px-4 py-1.5 text-sm font-medium transition-all",m?"text-muted-foreground hover:text-foreground":"bg-background text-foreground shadow-sm"),children:f("chat.preview")}),(0,b.jsx)("button",{type:"button",onClick:()=>n(!0),className:(0,h.cn)("rounded-md px-4 py-1.5 text-sm font-medium transition-all",m?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground"),children:f("chat.code")})]}),(0,b.jsxs)("div",{className:"text-muted-foreground/60 flex items-center gap-4 text-xs",children:[(0,b.jsxs)("span",{children:[o," lines"]}),(0,b.jsxs)("span",{children:[p.toLocaleString()," chars"]}),(0,b.jsx)("span",{className:"font-mono uppercase",children:e})]}),(0,b.jsx)("button",{type:"button",onClick:()=>l(!1),className:"text-muted-foreground hover:bg-muted hover:text-foreground rounded-lg p-2 transition-colors",children:(0,b.jsx)(x.X,{className:"h-5 w-5"})})]}),m?(0,b.jsx)("pre",{className:"flex-1 overflow-auto p-4 font-mono text-xs leading-relaxed",children:(0,b.jsx)("code",{children:a})}):(0,b.jsx)("iframe",{srcDoc:a,sandbox:"allow-scripts",className:"flex-1 border-0 bg-white dark:bg-neutral-900",title:f("chat.htmlPreviewFullscreen")})]})}),document.body):null]})}let J=/^\*⏳ (.+)\*$/;function K({text:a}){if("*Thinking...*"===a||"*Agent is waking up...*"===a)return(0,b.jsx)(O,{booting:a.includes("waking")});let c=J.exec(a);return c?(0,b.jsx)(L,{label:c[1]}):(0,b.jsx)(o.default,{remarkPlugins:[p.default],components:B,children:a})}function L({label:a}){return(0,b.jsxs)("span",{className:"text-muted-foreground inline-flex items-center gap-2 text-sm italic",children:[(0,b.jsx)(A.LoaderCircle,{className:"h-3.5 w-3.5 animate-spin"}),(0,b.jsx)("span",{children:a})]})}let M=["Thinking","Reasoning","Analyzing","Processing","Evaluating","Considering","Reflecting","Pondering"],N=["Waking up","Initializing","Loading tools","Preparing","Connecting"];function O({booting:a}){let d=a?N:M,[e,f]=(0,c.useState)(0),[g,h]=(0,c.useState)(!0);return(0,c.useEffect)(()=>{let a=setInterval(()=>{h(!1),setTimeout(()=>{f(a=>(a+1)%d.length),h(!0)},200)},2e3);return()=>clearInterval(a)},[d]),(0,b.jsxs)("span",{className:"text-muted-foreground inline-flex w-32 items-center gap-1.5 text-sm italic",children:[(0,b.jsx)("span",{className:"inline-block transition-all duration-300 ease-in-out",style:{opacity:+!!g,transform:g?"translateY(0)":"translateY(-4px)"},children:d[e]}),(0,b.jsxs)("span",{className:"inline-flex gap-0.5",children:[(0,b.jsx)("span",{className:"bg-muted-foreground/60 h-1 w-1 animate-bounce rounded-full",style:{animationDelay:"0ms"}}),(0,b.jsx)("span",{className:"bg-muted-foreground/60 h-1 w-1 animate-bounce rounded-full",style:{animationDelay:"150ms"}}),(0,b.jsx)("span",{className:"bg-muted-foreground/60 h-1 w-1 animate-bounce rounded-full",style:{animationDelay:"300ms"}})]})]})}function P(){let a=(0,n.useMessage)(),[d,e]=(0,c.useState)(0);(0,c.useEffect)(()=>{let a=setInterval(()=>e(a=>a+1),3e4);return()=>clearInterval(a)},[]);let f=(0,c.useMemo)(()=>{if(!a?.createdAt)return null;let b=new Date(a.createdAt);return isNaN(b.getTime())?null:{time:b.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}),relative:function(a){let b=Date.now()-a.getTime();if(b<0||b<5e3)return"just now";let c=Math.floor(b/1e3);if(c<60)return`${c}s ago`;let d=Math.floor(c/60);if(d<60)return`${d}m ago`;let e=Math.floor(d/60);return e<24?`${e}h ago`:a.toLocaleDateString()}(b)}},[a?.createdAt,d]);return f?(0,b.jsx)("span",{className:"text-muted-foreground/60 text-[10px]",title:f.time,children:f.relative}):null}let Q=(0,c.forwardRef)(({tooltip:a,children:c,className:d,...e},f)=>(0,b.jsx)("button",{ref:f,type:"button",title:a,className:(0,h.cn)("text-muted-foreground hover:text-foreground hover:bg-muted inline-flex h-7 w-7 items-center justify-center rounded-md transition-colors","[&>svg]:h-3.5 [&>svg]:w-3.5",d),...e,children:c}));function R(){return(0,b.jsxs)(k.ComposerPrimitive.Root,{className:"flex items-end gap-2 border-t p-3",children:[(0,b.jsx)(k.ComposerPrimitive.AddAttachment,{asChild:!0,children:(0,b.jsx)(Q,{tooltip:"Attach file",className:"mb-0.5",children:(0,b.jsx)(t.Paperclip,{})})}),(0,b.jsx)(k.ComposerPrimitive.Input,{rows:1,autoFocus:!0,placeholder:"Write a message...",className:(0,h.cn)("bg-muted min-h-[40px] flex-1 resize-none rounded-xl border-0 px-4 py-2.5 text-sm","focus:ring-ring/30 focus:ring-2 focus:outline-none","placeholder:text-muted-foreground/60","max-h-40 overflow-y-auto")}),(0,b.jsx)(S,{})]})}function S(){return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(m.ThreadPrimitive.If,{running:!1,children:(0,b.jsx)(k.ComposerPrimitive.Send,{className:(0,h.cn)("bg-primary text-primary-foreground inline-flex h-[40px] w-[40px] shrink-0 items-center justify-center rounded-xl","hover:bg-primary/90 disabled:pointer-events-none disabled:opacity-30","transition-colors"),children:(0,b.jsx)(q.SendHorizontal,{className:"size-4"})})}),(0,b.jsx)(m.ThreadPrimitive.If,{running:!0,children:(0,b.jsx)(k.ComposerPrimitive.Cancel,{className:(0,h.cn)("bg-destructive/10 text-destructive inline-flex h-[40px] w-[40px] shrink-0 items-center justify-center rounded-xl","hover:bg-destructive/20","transition-colors"),children:(0,b.jsx)(r.CircleStop,{className:"size-4"})})})]})}Q.displayName="IconButton";let T=new Set(["txt","md","csv","json","yaml","yml","xml","html","css","js","ts","jsx","tsx","py","rb","go","rs","java","kt","c","cpp","h","hpp","cs","swift","sh","bash","zsh","fish","ps1","bat","cmd","sql","graphql","proto","toml","ini","cfg","conf","env","dockerfile","makefile","cmake","gradle","sbt","lock","sum","mod","png","jpg","jpeg","gif","svg","webp","bmp","ico","avif","pdf","doc","docx","xls","xlsx","ppt","pptx","odt","ods","odp","zip","tar","gz","bz2","xz","7z","rar","log","diff","patch"]);var U=a.i(61781),V=a.i(40459);class W{_contextProvider=new V.CompositeContextProvider;registerModelContextProvider(a){return this._contextProvider.registerModelContextProvider(a)}getModelContextProvider(){return this._contextProvider}}let X=Object.freeze([]),Y="DEFAULT_THREAD_ID",Z=Object.freeze([Y]),$=Object.freeze({id:Y,remoteId:void 0,externalId:void 0,status:"regular"}),_=Promise.resolve(),aa=Object.freeze({[Y]:$});class ab{adapter;threadFactory;_mainThreadId=Y;_threads=Z;_archivedThreads=X;_threadData=aa;get isLoading(){return this.adapter.isLoading??!1}get newThreadId(){}get threadIds(){return this._threads}get archivedThreadIds(){return this._archivedThreads}get threadItems(){return this._threadData}getLoadThreadsPromise(){return _}_mainThread;get mainThreadId(){return this._mainThreadId}constructor(a={},b){this.adapter=a,this.threadFactory=b,this._mainThread=this.threadFactory(),this.__internal_setAdapter(a,!0)}getMainThreadRuntimeCore(){return this._mainThread}getThreadRuntimeCore(){throw Error("Method not implemented.")}getItemById(a){for(let b of this.adapter.threads??[])if(b.id===a)return b;for(let b of this.adapter.archivedThreads??[])if(b.id===a)return b;if(a===Y)return $}__internal_setAdapter(a,b=!1){let c=this.adapter;this.adapter=a;let d=a.threadId??Y,e=a.threads??X,f=a.archivedThreads??X,g=c.threadId??Y,h=c.threads??X,i=c.archivedThreads??X;(b||g!==d||h!==e||i!==f)&&(this._threadData={...aa,...Object.fromEntries(a.threads?.map(a=>[a.id,{...a,remoteId:a.remoteId,externalId:a.externalId,status:"regular"}])??[]),...Object.fromEntries(a.archivedThreads?.map(a=>[a.id,{...a,remoteId:a.remoteId,externalId:a.externalId,status:"archived"}])??[])},h!==e&&(this._threads=this.adapter.threads?.map(a=>a.id)??X),i!==f&&(this._archivedThreads=this.adapter.archivedThreads?.map(a=>a.id)??X),g!==d&&(this._mainThreadId=d,this._mainThread=this.threadFactory()),this._notifySubscribers())}async switchToThread(a){if(this._mainThreadId===a)return;let b=this.adapter.onSwitchToThread;if(!b)throw Error("External store adapter does not support switching to thread");await b(a)}async switchToNewThread(){let a=this.adapter.onSwitchToNewThread;if(!a)throw Error("External store adapter does not support switching to new thread");await a()}async rename(a,b){let c=this.adapter.onRename;if(!c)throw Error("External store adapter does not support renaming");await c(a,b)}async detach(){}async archive(a){let b=this.adapter.onArchive;if(!b)throw Error("External store adapter does not support archiving");await b(a)}async unarchive(a){let b=this.adapter.onUnarchive;if(!b)throw Error("External store adapter does not support unarchiving");await b(a)}async delete(a){let b=this.adapter.onDelete;if(!b)throw Error("External store adapter does not support deleting");await b(a)}initialize(a){return Promise.resolve({remoteId:a,externalId:void 0})}generateTitle(){throw Error("Method not implemented.")}_subscriptions=new Set;subscribe(a){return this._subscriptions.add(a),()=>this._subscriptions.delete(a)}_notifySubscribers(){for(let a of this._subscriptions)a()}}let ac=Symbol("innerMessage"),ad=Symbol("innerMessages"),ae=[],af=a=>{let b="messages"in a?a.messages:a,c=b[ad]||b[ac];return c?Array.isArray(c)?c:(b[ad]=[c],b[ad]):ae};class ag{cache=new WeakMap;convertMessages(a,b){return a.map((a,c)=>{let d=b(this.cache.get(a),a,c);return this.cache.set(a,d),d})}}let ah=Symbol("autoStatus"),ai=Object.freeze(Object.assign({type:"running"},{[ah]:!0})),aj=Object.freeze(Object.assign({type:"complete",reason:"unknown"},{[ah]:!0})),ak=Object.freeze(Object.assign({type:"requires-action",reason:"tool-calls"},{[ah]:!0})),al=Object.freeze(Object.assign({type:"requires-action",reason:"interrupt"},{[ah]:!0})),am=(a,b,c,d,e)=>a&&e?Object.assign({type:"incomplete",reason:"error",error:e},{[ah]:!0}):a&&b?ai:c?al:d?ak:aj;var an=a.i(52569);let ao=Symbol("aui.parse-partial-json-object.meta"),ap=((a,b=21)=>(c=b)=>{let d="",e=0|c;for(;e--;)d+=a[Math.random()*a.length|0];return d})("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",7),aq=()=>`__optimistic__${ap()}`,ar=(a,b)=>{if(a.startsWith("data-"))return{type:"data",name:a.substring(5),data:b}},as=(a,b,c)=>{let{role:d,id:e,createdAt:f,attachments:g,status:h,metadata:i}=a,j={id:e??b,createdAt:f??new Date},k="string"==typeof a.content?[{type:"text",text:a.content}]:a.content;if("user"!==d&&g?.length)throw Error("attachments are only supported for user messages");if("assistant"!==d&&h)throw Error("status is only supported for assistant messages");if("assistant"!==d&&i?.steps)throw Error("metadata.steps is only supported for assistant messages");switch(d){case"assistant":return{...j,role:d,content:k.map(a=>{let b=a.type;switch(b){case"text":case"reasoning":if(0===a.text.trim().length)return null;return a;case"file":case"source":case"data":return a;case"image":return(({image:a,...b})=>a.match(/^data:image\/(png|jpeg|jpg|gif|webp);base64,(.*)$/)?{...b,image:a}:(console.warn("Invalid image data format detected"),null))(a);case"tool-call":{let{parentId:b,messages:c,...d}=a,e={...d,toolCallId:a.toolCallId??`tool-${ap()}`,...void 0!==b&&{parentId:b},...void 0!==c&&{messages:c}};if(a.args)return{...e,args:a.args,argsText:a.argsText??JSON.stringify(a.args)};return{...e,args:(a=>{if(0===a.length)return{[ao]:{state:"partial",partialPath:[]}};try{let b=an.default.parse(a);if("object"!=typeof b||null===b)throw Error("argsText is expected to be an object");return b[ao]={state:"complete",partialPath:[]},b}catch{try{let[b,c]=function(a){let b,c=["ROOT"],d=-1,e=null,f=[];function g(){void 0!==b&&(f.push(JSON.parse(`"${b}"`)),b=void 0)}function h(a,b,f){switch(a){case'"':d=b,c.pop(),c.push(f),c.push("INSIDE_STRING"),g();break;case"f":case"t":case"n":d=b,e=b,c.pop(),c.push(f),c.push("INSIDE_LITERAL");break;case"-":c.pop(),c.push(f),c.push("INSIDE_NUMBER"),g();break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":d=b,c.pop(),c.push(f),c.push("INSIDE_NUMBER"),g();break;case"{":d=b,c.pop(),c.push(f),c.push("INSIDE_OBJECT_START"),g();break;case"[":d=b,c.pop(),c.push(f),c.push("INSIDE_ARRAY_START"),g()}}function i(a,e){switch(a){case",":c.pop(),c.push("INSIDE_OBJECT_AFTER_COMMA");break;case"}":d=e,c.pop(),b=f.pop()}}function j(a,e){switch(a){case",":c.pop(),c.push("INSIDE_ARRAY_AFTER_COMMA"),b=(Number(b)+1).toString();break;case"]":d=e,c.pop(),b=f.pop()}}for(let g=0;g<a.length;g++){let k=a[g];switch(c[c.length-1]){case"ROOT":h(k,g,"FINISH");break;case"INSIDE_OBJECT_START":switch(k){case'"':c.pop(),c.push("INSIDE_OBJECT_KEY"),b="";break;case"}":d=g,c.pop(),b=f.pop()}break;case"INSIDE_OBJECT_AFTER_COMMA":'"'===k&&(c.pop(),c.push("INSIDE_OBJECT_KEY"),b="");break;case"INSIDE_OBJECT_KEY":switch(k){case'"':c.pop(),c.push("INSIDE_OBJECT_AFTER_KEY");break;case"\\":c.push("INSIDE_STRING_ESCAPE"),b+=k;break;default:b+=k}break;case"INSIDE_OBJECT_AFTER_KEY":":"===k&&(c.pop(),c.push("INSIDE_OBJECT_BEFORE_VALUE"));break;case"INSIDE_OBJECT_BEFORE_VALUE":h(k,g,"INSIDE_OBJECT_AFTER_VALUE");break;case"INSIDE_OBJECT_AFTER_VALUE":i(k,g);break;case"INSIDE_STRING":switch(k){case'"':c.pop(),d=g,b=f.pop();break;case"\\":c.push("INSIDE_STRING_ESCAPE");break;default:d=g}break;case"INSIDE_ARRAY_START":"]"===k?(d=g,c.pop(),b=f.pop()):(d=g,b="0",h(k,g,"INSIDE_ARRAY_AFTER_VALUE"));break;case"INSIDE_ARRAY_AFTER_VALUE":switch(k){case",":c.pop(),c.push("INSIDE_ARRAY_AFTER_COMMA"),b=(Number(b)+1).toString();break;case"]":d=g,c.pop(),b=f.pop();break;default:d=g}break;case"INSIDE_ARRAY_AFTER_COMMA":h(k,g,"INSIDE_ARRAY_AFTER_VALUE");break;case"INSIDE_STRING_ESCAPE":c.pop(),"INSIDE_STRING"===c[c.length-1]?d=g:"INSIDE_OBJECT_KEY"===c[c.length-1]&&(b+=k);break;case"INSIDE_NUMBER":switch(k){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":d=g;break;case"e":case"E":case"-":case".":break;case",":c.pop(),b=f.pop(),"INSIDE_ARRAY_AFTER_VALUE"===c[c.length-1]&&j(k,g),"INSIDE_OBJECT_AFTER_VALUE"===c[c.length-1]&&i(k,g);break;case"}":c.pop(),b=f.pop(),"INSIDE_OBJECT_AFTER_VALUE"===c[c.length-1]&&i(k,g);break;case"]":c.pop(),b=f.pop(),"INSIDE_ARRAY_AFTER_VALUE"===c[c.length-1]&&j(k,g);break;default:c.pop(),b=f.pop()}break;case"INSIDE_LITERAL":{let b=a.substring(e,g+1);"false".startsWith(b)||"true".startsWith(b)||"null".startsWith(b)?d=g:(c.pop(),"INSIDE_OBJECT_AFTER_VALUE"===c[c.length-1]?i(k,g):"INSIDE_ARRAY_AFTER_VALUE"===c[c.length-1]&&j(k,g))}}}let k=a.slice(0,d+1);for(let b=c.length-1;b>=0;b--)switch(c[b]){case"INSIDE_STRING":k+='"';break;case"INSIDE_OBJECT_KEY":case"INSIDE_OBJECT_AFTER_KEY":case"INSIDE_OBJECT_AFTER_COMMA":case"INSIDE_OBJECT_START":case"INSIDE_OBJECT_BEFORE_VALUE":case"INSIDE_OBJECT_AFTER_VALUE":k+="}";break;case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":k+="]";break;case"INSIDE_LITERAL":{let b=a.substring(e,a.length);"true".startsWith(b)?k+="true".slice(b.length):"false".startsWith(b)?k+="false".slice(b.length):"null".startsWith(b)&&(k+="null".slice(b.length))}}return[k,f]}(a),d=an.default.parse(b);if("object"!=typeof d||null===d)throw Error("argsText is expected to be an object");return d[ao]={state:"partial",partialPath:c},d}catch{return}}})(a.argsText??"")??{},argsText:a.argsText??""}}default:{let c=ar(b,a.data);if(c)return c;throw Error(`Unsupported assistant message part type: ${b}`)}}}).filter(a=>!!a),status:h??c,metadata:{unstable_state:i?.unstable_state??null,unstable_annotations:i?.unstable_annotations??[],unstable_data:i?.unstable_data??[],custom:i?.custom??{},steps:i?.steps??[],...i?.timing&&{timing:i.timing},...i?.submittedFeedback&&{submittedFeedback:i.submittedFeedback}}};case"user":return{...j,role:d,content:k.map(a=>{let b=a.type;switch(b){case"text":case"image":case"audio":case"file":case"data":return a;default:{let c=ar(b,a.data);if(c)return c;throw Error(`Unsupported user message part type: ${b}`)}}}),attachments:(g??[]).map(a=>({...a,content:a.content.map(a=>ar(a.type,a.data)??a)})),metadata:{custom:i?.custom??{}}};case"system":if(1!==k.length||"text"!==k[0].type)throw Error("System messages must have exactly one text message part.");return{...j,role:d,content:k,metadata:{custom:i?.custom??{}}};default:throw Error(`Unknown message role: ${d}`)}},at=a=>a.content.filter(a=>"text"===a.type).map(a=>a.text).join("\n\n"),au=a=>{let b=a.map(a=>as(a,ap(),am(!1,!1,!1,!1,void 0)));return{messages:b.map((a,c)=>({parentId:c>0?b[c-1].id:null,message:a}))}},av=a=>a.next?av(a.next):"current"in a?a:null;class aw{func;_value=null;constructor(a){this.func=a}get value(){return null===this._value&&(this._value=this.func()),this._value}dirty(){this._value=null}}class ax{messages=new Map;head=null;root={children:[],next:null};updateLevels(a,b){for(let c of(a.level=b,a.children)){let a=this.messages.get(c);a&&this.updateLevels(a,b+1)}}performOp(a,b,c){let d=b.prev??this.root,e=a??this.root;if("relink"!==c||d!==e){if("link"!==c&&(d.children=d.children.filter(a=>a!==b.current.id),d.next===b)){let a=d.children.at(-1),b=a?this.messages.get(a):null;if(void 0===b)throw Error("MessageRepository(performOp/cut): Fallback sibling message not found. This is likely an internal bug in assistant-ui.");d.next=b}if("cut"!==c){for(let c=a;c;c=c.prev)if(c.current.id===b.current.id)throw Error("MessageRepository(performOp/link): A message with the same id already exists in the parent tree. This error occurs if the same message id is found multiple times. This is likely an internal bug in assistant-ui.");e.children=[...e.children,b.current.id],(av(b)===this.head||null===e.next)&&(e.next=b),b.prev=a;let c=a?a.level+1:0;this.updateLevels(b,c)}}}_messages=new aw(()=>{let a=Array((this.head?.level??-1)+1);for(let b=this.head;b;b=b.prev)a[b.level]=b.current;return a});get headId(){return this.head?.current.id??null}getMessages(a){if(void 0===a||a===this.head?.current.id)return this._messages.value;let b=this.messages.get(a);if(!b)throw Error("MessageRepository(getMessages): Head message not found. This is likely an internal bug in assistant-ui.");let c=Array(b.level+1);for(let a=b;a;a=a.prev)c[a.level]=a.current;return c}addOrUpdateMessage(a,b){let c=this.messages.get(b.id),d=a?this.messages.get(a):null;if(void 0===d)throw Error("MessageRepository(addOrUpdateMessage): Parent message not found. This is likely an internal bug in assistant-ui.");if(c){c.current=b,this.performOp(d,c,"relink"),this._messages.dirty();return}let e={prev:d,current:b,next:null,children:[],level:d?d.level+1:0};this.messages.set(b.id,e),this.performOp(d,e,"link"),this.head===d&&(this.head=e),this._messages.dirty()}getMessage(a){let b=this.messages.get(a);if(!b)throw Error("MessageRepository(updateMessage): Message not found. This is likely an internal bug in assistant-ui.");return{parentId:b.prev?.current.id??null,message:b.current,index:b.level}}appendOptimisticMessage(a,b){let c;do c=aq();while(this.messages.has(c))return this.addOrUpdateMessage(a,as(b,c,{type:"running"})),c}deleteMessage(a,b){let c=this.messages.get(a);if(!c)throw Error("MessageRepository(deleteMessage): Message not found. This is likely an internal bug in assistant-ui.");let d=void 0===b?c.prev:null===b?null:this.messages.get(b);if(void 0===d)throw Error("MessageRepository(deleteMessage): Replacement not found. This is likely an internal bug in assistant-ui.");for(let a of c.children){let b=this.messages.get(a);if(!b)throw Error("MessageRepository(deleteMessage): Child message not found. This is likely an internal bug in assistant-ui.");this.performOp(d,b,"relink")}this.performOp(null,c,"cut"),this.messages.delete(a),this.head===c&&(this.head=av(d??this.root)),this._messages.dirty()}getBranches(a){let b=this.messages.get(a);if(!b)throw Error("MessageRepository(getBranches): Message not found. This is likely an internal bug in assistant-ui.");let{children:c}=b.prev??this.root;return c}switchToBranch(a){let b=this.messages.get(a);if(!b)throw Error("MessageRepository(switchToBranch): Branch not found. This is likely an internal bug in assistant-ui.");(b.prev??this.root).next=b,this.head=av(b),this._messages.dirty()}resetHead(a){if(null===a)return void this.clear();let b=this.messages.get(a);if(!b)throw Error("MessageRepository(resetHead): Branch not found. This is likely an internal bug in assistant-ui.");if(b.children.length>0){let a=b=>{for(let c of b.children){let b=this.messages.get(c);b&&(a(b),this.messages.delete(c))}};a(b),b.children=[],b.next=null}this.head=b;for(let a=b;a;a=a.prev)a.prev?a.prev.next=a:this.root.next=a;this._messages.dirty()}clear(){this.messages.clear(),this.head=null,this.root={children:[],next:null},this._messages.dirty()}export(){let a=[];for(let[,b]of this.messages)a.push({message:b.current,parentId:b.prev?.current.id??null});return{headId:this.head?.current.id??null,messages:a}}import({headId:a,messages:b}){for(let{message:a,parentId:c}of b)this.addOrUpdateMessage(c,a);this.resetHead(a??b.at(-1)?.message.id??null)}}let ay=Symbol("skip-update");class az{_subscribers=new Set;subscribe(a){return this._subscribers.add(a),()=>this._subscribers.delete(a)}waitForUpdate(){return new Promise(a=>{let b=this.subscribe(()=>{b(),a()})})}_notifySubscribers(){let a=[];for(let b of this._subscribers)try{b()}catch(b){a.push(b)}if(a.length>0)if(1===a.length)throw a[0];else{for(let b of a)console.error(b);throw AggregateError(a)}}}class aA{_subscriptions=new Set;_connection;get isConnected(){return!!this._connection}notifySubscribers(){for(let a of this._subscriptions)a()}_updateConnection(){this._subscriptions.size>0?this._connection||(this._connection=this._connect()):(this._connection?.(),this._connection=void 0)}subscribe(a){return this._subscriptions.add(a),this._updateConnection(),()=>{this._subscriptions.delete(a),this._updateConnection()}}}class aB extends aA{binding;get path(){return this.binding.path}constructor(a){super(),this.binding=a;const b=a.getState();if(b===ay)throw Error("Entry not available in the store");this._previousState=b}_previousState;getState=()=>(this.isConnected||this._syncState(),this._previousState);_syncState(){let a=this.binding.getState();return!(a===ay||function(a,b){if(void 0===a&&void 0===b)return!0;if(void 0===a||void 0===b)return!1;for(let c of Object.keys(a))if(!Object.is(a[c],b[c]))return!1;return!0}(a,this._previousState))&&(this._previousState=a,!0)}_connect(){let a=()=>{this._syncState()&&this.notifySubscribers()};return this.binding.subscribe(a)}}class aC extends aA{binding;get path(){return this.binding.path}constructor(a){super(),this.binding=a}_previousStateDirty=!0;_previousState;getState=()=>{if(!this.isConnected||this._previousStateDirty){let a=this.binding.getState();a!==ay&&(this._previousState=a),this._previousStateDirty=!1}if(void 0===this._previousState)throw Error("Entry not available in the store");return this._previousState};_connect(){let a=()=>{this._previousStateDirty=!0,this.notifySubscribers()};return this.binding.subscribe(a)}}class aD extends aA{binding;get path(){return this.binding.path}constructor(a){super(),this.binding=a}getState(){return this.binding.getState()}outerSubscribe(a){return this.binding.subscribe(a)}_connect(){let a=()=>{this.notifySubscribers()},b=this.binding.getState(),c=b?.subscribe(a),d=()=>{let d=this.binding.getState();d!==b&&(b=d,c?.(),c=d?.subscribe(a),a())},e=this.outerSubscribe(d);return()=>{e?.(),c?.()}}}class aE extends aA{config;constructor(a){super(),this.config=a}getState(){return this.config.binding.getState()}outerSubscribe(a){return this.config.binding.subscribe(a)}_connect(){let a=()=>{this.notifySubscribers()},b=this.config.binding.getState(),c=b?.unstable_on(this.config.event,a),d=()=>{let d=this.config.binding.getState();d!==b&&(b=d,c?.(),c=d?.unstable_on(this.config.event,a))},e=this.outerSubscribe(d);return()=>{e?.(),c?.()}}}class aF extends az{isEditing=!0;get attachmentAccept(){return this.getAttachmentAdapter()?.accept??"*"}_attachments=[];get attachments(){return this._attachments}setAttachments(a){this._attachments=a,this._notifySubscribers()}get isEmpty(){return!this.text.trim()&&!this.attachments.length}_text="";get text(){return this._text}_role="user";get role(){return this._role}_runConfig={};get runConfig(){return this._runConfig}_quote=void 0;get quote(){return this._quote}setQuote(a){this._quote!==a&&(this._quote=a,this._notifySubscribers())}setText(a){if(this._text!==a){if(this._text=a,this._dictation){this._dictationBaseText=a,this._currentInterimText="";let{status:b,inputDisabled:c}=this._dictation;this._dictation=c?{status:b,inputDisabled:c}:{status:b}}this._notifySubscribers()}}setRole(a){this._role!==a&&(this._role=a,this._notifySubscribers())}setRunConfig(a){this._runConfig!==a&&(this._runConfig=a,this._notifySubscribers())}_emptyTextAndAttachments(){this._attachments=[],this._text="",this._notifySubscribers()}async _onClearAttachments(){let a=this.getAttachmentAdapter();if(a){let b=this._attachments.filter(a=>"complete"!==a.status.type);await Promise.all(b.map(b=>a.remove(b)))}}async reset(){if(0===this._attachments.length&&""===this._text&&"user"===this._role&&0===Object.keys(this._runConfig).length&&void 0===this._quote)return;this._role="user",this._runConfig={},this._quote=void 0;let a=this._onClearAttachments();this._emptyTextAndAttachments(),await a}async clearAttachments(){let a=this._onClearAttachments();this.setAttachments([]),await a}async send(){if(this.isEmpty)return;this._dictationSession&&(this._dictationSession.cancel(),this._cleanupDictation());let a=this.getAttachmentAdapter(),b=this.attachments.length>0?Promise.all(this.attachments.map(async b=>{if("complete"===b.status.type)return b;if(!a)throw Error("Attachments are not supported");return await a.send(b)})):[],c=this.text,d=this._quote;this._quote=void 0,this._emptyTextAndAttachments();let e={createdAt:new Date,role:this.role,content:c?[{type:"text",text:c}]:[],attachments:await b,runConfig:this.runConfig,metadata:{custom:{...d?{quote:d}:{}}}};this.handleSend(e),this._notifyEventSubscribers("send")}cancel(){this.handleCancel()}async addAttachment(a){let b;if(!(a instanceof File)){let b={id:a.id??ap(),type:a.type??"document",name:a.name,contentType:a.contentType,content:a.content,status:{type:"complete"}};this._attachments=[...this._attachments,b],this._notifyEventSubscribers("attachmentAdd"),this._notifySubscribers();return}let c=this.getAttachmentAdapter();if(!c)throw Error("Attachments are not supported");if(!function(a,b){if("*"===b)return!0;let c=b.split(",").map(a=>a.trim().toLowerCase()),d=`.${a.name.split(".").pop().toLowerCase()}`,e=a.type.toLowerCase();for(let a of c){if(a.startsWith(".")&&a===d||a.includes("/")&&a===e)return!0;if(a.endsWith("/*")){let b=a.split("/")[0];if(e.startsWith(`${b}/`))return!0}}return!1}({name:a.name,type:a.type},c.accept))throw Error(`File type ${a.type||"unknown"} is not accepted. Accepted types: ${c.accept}`);let d=a=>{let b=this._attachments.findIndex(b=>b.id===a.id);-1!==b?this._attachments=[...this._attachments.slice(0,b),a,...this._attachments.slice(b+1)]:this._attachments=[...this._attachments,a],this._notifySubscribers()};try{let e=c.add({file:a});if(Symbol.asyncIterator in e)for await(let a of e)b=a,d(a);else b=await e,d(b)}catch(a){b&&d({...b,status:{type:"incomplete",reason:"error"}});try{this._notifyEventSubscribers("attachmentAddError")}catch{}throw a}let e=b?.status.type==="incomplete"&&"error"===b.status.reason;this._notifyEventSubscribers(e?"attachmentAddError":"attachmentAdd")}async removeAttachment(a){let b=this._attachments.findIndex(b=>b.id===a);if(-1===b)throw Error("Attachment not found");let c=this._attachments[b];if("complete"!==c.status.type){let a=this.getAttachmentAdapter();if(!a)throw Error("Attachments are not supported");await a.remove(c)}this._attachments=this._attachments.filter(b=>b.id!==a),this._notifySubscribers()}_dictation;_dictationSession;_dictationUnsubscribes=[];_dictationBaseText="";_currentInterimText="";_dictationSessionIdCounter=0;_activeDictationSessionId;_isCleaningDictation=!1;get dictation(){return this._dictation}_isActiveSession(a,b){return this._activeDictationSessionId===a&&this._dictationSession===b}startDictation(){let a=this.getDictationAdapter();if(!a)throw Error("Dictation adapter not configured");if(this._dictationSession){for(let a of this._dictationUnsubscribes)a();this._dictationUnsubscribes=[],this._dictationSession.stop().catch(()=>{}),this._dictationSession=void 0}let b=a.disableInputDuringDictation??!1;this._dictationBaseText=this._text,this._currentInterimText="";let c=a.listen();this._dictationSession=c;let d=++this._dictationSessionIdCounter;this._activeDictationSessionId=d,this._dictation={status:c.status,inputDisabled:b},this._notifySubscribers();let e=c.onSpeech(a=>{if(!this._isActiveSession(d,c))return;let b=!1!==a.isFinal,e=this._dictationBaseText&&!this._dictationBaseText.endsWith(" ")&&a.transcript?" ":"";if(b){if(this._dictationBaseText=this._dictationBaseText+e+a.transcript,this._currentInterimText="",this._text=this._dictationBaseText,this._dictation){let{transcript:a,...b}=this._dictation;this._dictation=b}this._notifySubscribers()}else this._currentInterimText=e+a.transcript,this._text=this._dictationBaseText+this._currentInterimText,this._dictation&&(this._dictation={...this._dictation,transcript:a.transcript}),this._notifySubscribers()});this._dictationUnsubscribes.push(e);let f=c.onSpeechStart(()=>{this._isActiveSession(d,c)&&(this._dictation={status:{type:"running"},inputDisabled:b,...this._dictation?.transcript&&{transcript:this._dictation.transcript}},this._notifySubscribers())});this._dictationUnsubscribes.push(f);let g=c.onSpeechEnd(()=>{this._cleanupDictation({sessionId:d})});this._dictationUnsubscribes.push(g);let h=setInterval(()=>{this._isActiveSession(d,c)&&"ended"===c.status.type&&this._cleanupDictation({sessionId:d})},100);this._dictationUnsubscribes.push(()=>clearInterval(h))}stopDictation(){if(!this._dictationSession)return;let a=this._dictationSession,b=this._activeDictationSessionId;a.stop().finally(()=>{this._cleanupDictation({sessionId:b})})}_cleanupDictation(a){if((a?.sessionId===void 0||a.sessionId===this._activeDictationSessionId)&&!this._isCleaningDictation){this._isCleaningDictation=!0;try{for(let a of this._dictationUnsubscribes)a();this._dictationUnsubscribes=[],this._dictationSession=void 0,this._activeDictationSessionId=void 0,this._dictation=void 0,this._dictationBaseText="",this._currentInterimText="",this._notifySubscribers()}finally{this._isCleaningDictation=!1}}}_eventSubscribers=new Map;_notifyEventSubscribers(a){let b=this._eventSubscribers.get(a);if(b)for(let a of b)a()}unstable_on(a,b){let c=this._eventSubscribers.get(a);return c?c.add(b):this._eventSubscribers.set(a,new Set([b])),()=>{let c=this._eventSubscribers.get(a);c&&c.delete(b)}}}class aG extends aF{runtime;_canCancel=!1;get canCancel(){return this._canCancel}getAttachmentAdapter(){return this.runtime.adapters?.attachments}getDictationAdapter(){return this.runtime.adapters?.dictation}constructor(a){super(),this.runtime=a,this.connect()}connect(){return this.runtime.subscribe(()=>{this.canCancel!==this.runtime.capabilities.cancel&&(this._canCancel=this.runtime.capabilities.cancel,this._notifySubscribers())})}async handleSend(a){this.runtime.append({...a,parentId:this.runtime.messages.at(-1)?.id??null,sourceId:null})}async handleCancel(){this.runtime.cancelRun()}}class aH extends aF{runtime;endEditCallback;get canCancel(){return!0}getAttachmentAdapter(){return this.runtime.adapters?.attachments}getDictationAdapter(){return this.runtime.adapters?.dictation}_nonTextParts;_previousText;_parentId;_sourceId;constructor(a,b,{parentId:c,message:d}){super(),this.runtime=a,this.endEditCallback=b,this._parentId=c,this._sourceId=d.id,this._previousText=at(d),this.setText(this._previousText),this.setRole(d.role),this.setAttachments(d.attachments??[]),this._nonTextParts=d.content.filter(a=>"text"!==a.type),this.setRunConfig({...a.composer.runConfig})}async handleSend(a){at(a)!==this._previousText&&this.runtime.append({...a,content:[...a.content,...this._nonTextParts],parentId:this._parentId,sourceId:this._sourceId}),this.handleCancel()}handleCancel(){this.endEditCallback(),this._notifySubscribers()}}class aI{_contextProvider;_subscriptions=new Set;_isInitialized=!1;repository=new ax;_voiceMessages=[];_voiceGeneration=0;_cachedMergedMessages=null;_cachedVoiceGeneration=-1;_cachedMergedBase=null;_markVoiceMessagesDirty(){this._voiceGeneration++,this._cachedMergedMessages=null}_getBaseMessages(){return this.repository.getMessages()}get messages(){if(0===this._voiceMessages.length)return this._getBaseMessages();let a=this._getBaseMessages();return(this._cachedVoiceGeneration!==this._voiceGeneration||this._cachedMergedBase!==a)&&(this._cachedMergedMessages=[...a,...this._voiceMessages],this._cachedVoiceGeneration=this._voiceGeneration,this._cachedMergedBase=a),this._cachedMergedMessages}get state(){let a;for(let b of this.messages)"assistant"===b.role&&(a=b);return a?.metadata.unstable_state??null}composer=new aG(this);constructor(a){this._contextProvider=a}getModelContext(){return this._contextProvider.getModelContext()}_editComposers=new Map;getEditComposer(a){return this._editComposers.get(a)}beginEdit(a){if(this._editComposers.has(a))throw Error("Edit already in progress");this._editComposers.set(a,new aH(this,()=>this._editComposers.delete(a),this.repository.getMessage(a))),this._notifySubscribers()}getMessageById(a){try{return this.repository.getMessage(a)}catch{let b=this.repository.getMessages(),c=this._voiceMessages.findIndex(b=>b.id===a);if(-1!==c)return{parentId:c>0?this._voiceMessages[c-1].id:b.at(-1)?.id??null,message:this._voiceMessages[c],index:b.length+c};return}}getBranches(a){return this._voiceMessages.some(b=>b.id===a)?[]:this.repository.getBranches(a)}switchToBranch(a){this.repository.switchToBranch(a),this._notifySubscribers()}_notifySubscribers(){for(let a of this._subscriptions)a()}_notifyEventSubscribers(a){let b=this._eventSubscribers.get(a);if(b)for(let a of b)a()}subscribe(a){return this._subscriptions.add(a),()=>this._subscriptions.delete(a)}submitFeedback({messageId:a,type:b}){let c=this.adapters?.feedback;if(!c)throw Error("Feedback adapter not configured");let{message:d,parentId:e}=this.repository.getMessage(a);if(c.submit({message:d,type:b}),"assistant"===d.role){let a={...d,metadata:{...d.metadata,submittedFeedback:{type:b}}};this.repository.addOrUpdateMessage(e,a)}this._notifySubscribers()}_stopSpeaking;speech;speak(a){let b=this.adapters?.speech;if(!b)throw Error("Speech adapter not configured");let{message:c}=this.repository.getMessage(a);this._stopSpeaking?.();let d=b.speak(at(c)),e=d.subscribe(()=>{"ended"===d.status.type?(this._stopSpeaking=void 0,this.speech=void 0):this.speech={messageId:a,status:d.status},this._notifySubscribers()});this.speech={messageId:a,status:d.status},this._notifySubscribers(),this._stopSpeaking=()=>{d.cancel(),e(),this.speech=void 0,this._stopSpeaking=void 0}}stopSpeaking(){if(!this._stopSpeaking)throw Error("No message is being spoken");this._stopSpeaking(),this._notifySubscribers()}_voiceSession;_voiceUnsubs=[];voice;_voiceVolume=0;_voiceVolumeSubscribers=new Set;getVoiceVolume=()=>this._voiceVolume;subscribeVoiceVolume=a=>(this._voiceVolumeSubscribers.add(a),()=>this._voiceVolumeSubscribers.delete(a));connectVoice(){let a=this.adapters?.voice;if(!a)throw Error("Voice adapter not configured");this.disconnectVoice();let b=a.connect({});this._voiceSession=b;let c=[],d="listening";this.voice={status:b.status,isMuted:b.isMuted,mode:d},this._voiceVolume=0,this._notifySubscribers(),c.push(b.onStatusChange(a=>{"ended"===a.type?(this._finishVoiceAssistantMessage(),this._voiceSession=void 0,this.voice=void 0):this.voice={status:a,isMuted:b.isMuted,mode:d},this._notifySubscribers()})),c.push(b.onModeChange(a=>{d=a,this.voice&&(this.voice={...this.voice,mode:a},this._notifySubscribers())})),c.push(b.onVolumeChange(a=>{for(let b of(this._voiceVolume=a,this._voiceVolumeSubscribers))b()})),c.push(b.onTranscript(a=>{this._handleVoiceTranscript(a)})),this._voiceUnsubs=c}_currentAssistantMsg=null;_handleVoiceTranscript(a){if(this.ensureInitialized(),"user"===a.role)this._finishVoiceAssistantMessage(),this._currentAssistantMsg=null,a.isFinal&&(this._voiceMessages.push({id:ap(),role:"user",content:[{type:"text",text:a.text}],metadata:{custom:{}},createdAt:new Date,status:{type:"complete",reason:"unknown"},attachments:[]}),this._markVoiceMessagesDirty(),this._notifySubscribers());else{if(this._currentAssistantMsg){let b=this._voiceMessages.indexOf(this._currentAssistantMsg);if(-1===b)return;let c={...this._currentAssistantMsg,content:[{type:"text",text:a.text}],...a.isFinal?{status:{type:"complete",reason:"stop"}}:{}};this._voiceMessages[b]=c,this._currentAssistantMsg=c}else this._currentAssistantMsg={id:ap(),role:"assistant",content:[{type:"text",text:a.text}],metadata:{unstable_state:this.state,unstable_annotations:[],unstable_data:[],steps:[],custom:{}},status:{type:"running"},createdAt:new Date},this._voiceMessages.push(this._currentAssistantMsg);a.isFinal&&(this._currentAssistantMsg=null),this._markVoiceMessagesDirty(),this._notifySubscribers()}}_finishVoiceAssistantMessage(){let a=this._voiceMessages.at(-1);if(a?.role==="assistant"&&"running"===a.status.type){let b=this._voiceMessages.length-1;this._voiceMessages[b]={...a,status:{type:"complete",reason:"stop"}},this._markVoiceMessagesDirty(),this._notifySubscribers()}}disconnectVoice(){for(let a of(this._finishVoiceAssistantMessage(),this._currentAssistantMsg=null,this._voiceUnsubs))a();for(let a of(this._voiceUnsubs=[],this._voiceSession?.disconnect(),this._voiceSession=void 0,this.voice=void 0,this._voiceVolume=0,this._voiceVolumeSubscribers))a();this._voiceMessages=[],this._markVoiceMessagesDirty(),this._notifySubscribers()}muteVoice(){if(!this._voiceSession)throw Error("No active voice session");this._voiceSession.mute(),this.voice={...this.voice,isMuted:!0},this._notifySubscribers()}unmuteVoice(){if(!this._voiceSession)throw Error("No active voice session");this._voiceSession.unmute(),this.voice={...this.voice,isMuted:!1},this._notifySubscribers()}ensureInitialized(){this._isInitialized||(this._isInitialized=!0,this._notifyEventSubscribers("initialize"))}export(){return this.repository.export()}import(a){this.ensureInitialized(),this.repository.clear(),this.repository.import(a),this._notifySubscribers()}reset(a){this.import(au(a??[]))}_eventSubscribers=new Map;unstable_on(a,b){if("modelContextUpdate"===a)return this._contextProvider.subscribe?.(b)??(()=>{});let c=this._eventSubscribers.get(a);return c?c.add(b):this._eventSubscribers.set(a,new Set([b])),()=>{this._eventSubscribers.get(a).delete(b)}}}let aJ=Object.freeze([]),aK=(a,b)=>{let c=Object.keys(a);if(c.length!==Object.keys(b).length)return!1;for(let d of c)if(a[d]!==b[d])return!1;return!0};class aL extends aI{_assistantOptimisticId=null;_capabilities={switchToBranch:!1,switchBranchDuringRun:!1,edit:!1,reload:!1,cancel:!1,unstable_copy:!1,speech:!1,dictation:!1,voice:!1,attachments:!1,feedback:!1,queue:!1};get capabilities(){return this._capabilities}_messages;isDisabled;get isLoading(){return this._store.isLoading??!1}_getBaseMessages(){return this._messages}get state(){return this._store.state??super.state}get adapters(){return this._store.adapters}suggestions=[];extras=void 0;_converter=new ag;_store;beginEdit(a){if(!this._store.onEdit)throw Error("Runtime does not support editing.");super.beginEdit(a)}constructor(a,b){super(a),this.__internal_setAdapter(b)}__internal_setAdapter(a){let b,c;if(this._store===a)return;let d=a.isRunning??!1;this.isDisabled=a.isDisabled??!1;let e=this._store;this._store=a,this.extras!==a.extras&&(this.extras=a.extras);let f=a.suggestions??aJ;aK(this.suggestions,f)||(this.suggestions=f);let g={switchToBranch:void 0!==this._store.setMessages,switchBranchDuringRun:!1,edit:void 0!==this._store.onEdit,reload:void 0!==this._store.onReload,cancel:void 0!==this._store.onCancel,speech:this._store.adapters?.speech!==void 0,dictation:this._store.adapters?.dictation!==void 0,voice:this._store.adapters?.voice!==void 0,unstable_copy:this._store.unstable_capabilities?.copy!==!1,attachments:!!this._store.adapters?.attachments,feedback:!!this._store.adapters?.feedback,queue:!1};if(aK(this._capabilities,g)||(this._capabilities=g),a.messageRepository){if(e&&e.isRunning===a.isRunning&&e.messageRepository===a.messageRepository)return void this._notifySubscribers();this.repository.clear(),this._assistantOptimisticId=null,this.repository.import(a.messageRepository),b=this.repository.getMessages()}else if(a.messages){if(e){if(e.convertMessage!==a.convertMessage)this._converter=new ag;else if(e.isRunning===a.isRunning&&e.messages===a.messages)return void this._notifySubscribers()}b=a.convertMessage?this._converter.convertMessages(a.messages,(b,c,e)=>{if(!a.convertMessage)return c;let f=am(e===(a.messages?.length??0)-1,d,!1,!1,void 0);if(b&&("assistant"!==b.role||!0!==b.status[ah]||b.status===f))return b;let g=as(a.convertMessage(c,e),e.toString(),f);return ac in g||(g[ac]=c),g}):a.messages;for(let a=0;a<b.length;a++){let c=b[a],d=b[a-1];this.repository.addOrUpdateMessage(d?.id??null,c)}}else throw Error("ExternalStoreAdapter must provide either 'messages' or 'messageRepository'");b.length>0&&this.ensureInitialized(),(e?.isRunning??!1)!==(a.isRunning??!1)&&(a.isRunning?this._notifyEventSubscribers("runStart"):this._notifyEventSubscribers("runEnd")),this._assistantOptimisticId&&(this.repository.deleteMessage(this._assistantOptimisticId),this._assistantOptimisticId=null),c=b,d&&c[c.length-1]?.role!=="assistant"&&(this._assistantOptimisticId=this.repository.appendOptimisticMessage(b.at(-1)?.id??null,{role:"assistant",content:[]})),this.repository.resetHead(this._assistantOptimisticId??b.at(-1)?.id??null),this._messages=this.repository.getMessages(),this._notifySubscribers()}switchToBranch(a){if(!this._store.setMessages)throw Error("Runtime does not support switching branches.");this._store.isRunning||(this.repository.switchToBranch(a),this.updateMessages(this.repository.getMessages()))}async append(a){if(a.parentId!==(this.messages.at(-1)?.id??null)){if(!this._store.onEdit)throw Error("Runtime does not support editing messages.");await this._store.onEdit(a)}else await this._store.onNew(a)}async startRun(a){if(!this._store.onReload)throw Error("Runtime does not support reloading messages.");await this._store.onReload(a.parentId,a)}async resumeRun(a){if(!this._store.onResume)throw Error("Runtime does not support resuming runs.");await this._store.onResume(a)}exportExternalState(){if(!this._store.onExportExternalState)throw Error("Runtime does not support exporting external states.");return this._store.onExportExternalState()}importExternalState(a){if(!this._store.onLoadExternalState)throw Error("Runtime does not support importing external states.");this._store.onLoadExternalState(a)}unstable_loadExternalState(a){this.importExternalState(a)}cancelRun(){if(!this._store.onCancel)throw Error("Runtime does not support cancelling runs.");this._store.onCancel(),this._assistantOptimisticId&&(this.repository.deleteMessage(this._assistantOptimisticId),this._assistantOptimisticId=null);let a=this.repository.getMessages(),b=a[a.length-1];b?.role==="user"&&b.id===a.at(-1)?.id?(this.repository.deleteMessage(b.id),this.composer.text.trim()||this.composer.setText(at(b)),a=this.repository.getMessages()):this._notifySubscribers(),setTimeout(()=>{this.updateMessages(a)},0)}addToolResult(a){if(!this._store.onAddToolResult&&!this._store.onAddToolResult)throw Error("Runtime does not support tool results.");this._store.onAddToolResult?.(a)}resumeToolCall(a){if(!this._store.onResumeToolCall)throw Error("Runtime does not support resuming tool calls.");this._store.onResumeToolCall(a)}reset(a){let b=new ax;b.import(au(a??[])),this.updateMessages(b.getMessages())}import(a){this._assistantOptimisticId=null,super.import(a),this._store.onImport&&this._store.onImport(this.repository.getMessages())}updateMessages=a=>{void 0!==this._store.convertMessage?this._store.setMessages?.(a.flatMap(af)):this._store.setMessages?.(a)}}let aM=a=>a.adapters?.threadList??{};class aN extends W{threads;constructor(a){super(),this.threads=new ab(aM(a),()=>new aL(this._contextProvider,a))}setAdapter(a){this.threads.__internal_setAdapter(aM(a)),this.threads.getMainThreadRuntimeCore().__internal_setAdapter(a)}}class aO{_core;_threadListBinding;get path(){return this._core.path}constructor(a,b){this._core=a,this._threadListBinding=b,this.__internal_bindMethods()}__internal_bindMethods(){this.switchTo=this.switchTo.bind(this),this.rename=this.rename.bind(this),this.archive=this.archive.bind(this),this.unarchive=this.unarchive.bind(this),this.delete=this.delete.bind(this),this.initialize=this.initialize.bind(this),this.generateTitle=this.generateTitle.bind(this),this.subscribe=this.subscribe.bind(this),this.unstable_on=this.unstable_on.bind(this),this.getState=this.getState.bind(this),this.detach=this.detach.bind(this)}getState(){return this._core.getState()}switchTo(){let a=this._core.getState();return this._threadListBinding.switchToThread(a.id)}rename(a){let b=this._core.getState();return this._threadListBinding.rename(b.id,a)}archive(){let a=this._core.getState();return this._threadListBinding.archive(a.id)}unarchive(){let a=this._core.getState();return this._threadListBinding.unarchive(a.id)}delete(){let a=this._core.getState();return this._threadListBinding.delete(a.id)}initialize(){let a=this._core.getState();return this._threadListBinding.initialize(a.id)}generateTitle(){let a=this._core.getState();return this._threadListBinding.generateTitle(a.id)}unstable_on(a,b){let c=this._core.getState().isMain,d=this._core.getState().id;return this.subscribe(()=>{let e=this._core.getState(),f=e.isMain,g=e.id;c===f&&d===g||(c=f,d=g,"switchedTo"===a&&!f||"switchedAway"===a&&f||b())})}subscribe(a){return this._core.subscribe(a)}detach(){let a=this._core.getState();this._threadListBinding.detach(a.id)}__internal_getRuntime(){return this}}class aP{_core;get path(){return this._core.path}constructor(a){this._core=a,this.__internal_bindMethods()}__internal_bindMethods(){this.getState=this.getState.bind(this),this.remove=this.remove.bind(this),this.subscribe=this.subscribe.bind(this)}getState(){return this._core.getState()}subscribe(a){return this._core.subscribe(a)}}class aQ extends aP{_composerApi;constructor(a,b){super(a),this._composerApi=b}remove(){let a=this._composerApi.getState();if(!a)throw Error("Composer is not available");return a.removeAttachment(this.getState().id)}}class aR extends aQ{get source(){return"thread-composer"}}class aS extends aQ{get source(){return"edit-composer"}}class aT extends aP{get source(){return"message"}constructor(a){super(a)}remove(){throw Error("Message attachments cannot be removed")}}let aU=Object.freeze([]),aV=Object.freeze({});class aW{_core;get path(){return this._core.path}constructor(a){this._core=a}__internal_bindMethods(){this.setText=this.setText.bind(this),this.setRunConfig=this.setRunConfig.bind(this),this.getState=this.getState.bind(this),this.subscribe=this.subscribe.bind(this),this.addAttachment=this.addAttachment.bind(this),this.reset=this.reset.bind(this),this.clearAttachments=this.clearAttachments.bind(this),this.send=this.send.bind(this),this.cancel=this.cancel.bind(this),this.setRole=this.setRole.bind(this),this.getAttachmentByIndex=this.getAttachmentByIndex.bind(this),this.startDictation=this.startDictation.bind(this),this.stopDictation=this.stopDictation.bind(this),this.setQuote=this.setQuote.bind(this),this.unstable_on=this.unstable_on.bind(this)}setText(a){let b=this._core.getState();if(!b)throw Error("Composer is not available");b.setText(a)}setRunConfig(a){let b=this._core.getState();if(!b)throw Error("Composer is not available");b.setRunConfig(a)}addAttachment(a){let b=this._core.getState();if(!b)throw Error("Composer is not available");return b.addAttachment(a)}reset(){let a=this._core.getState();if(!a)throw Error("Composer is not available");return a.reset()}clearAttachments(){let a=this._core.getState();if(!a)throw Error("Composer is not available");return a.clearAttachments()}send(){let a=this._core.getState();if(!a)throw Error("Composer is not available");a.send()}cancel(){let a=this._core.getState();if(!a)throw Error("Composer is not available");a.cancel()}setRole(a){let b=this._core.getState();if(!b)throw Error("Composer is not available");b.setRole(a)}startDictation(){let a=this._core.getState();if(!a)throw Error("Composer is not available");a.startDictation()}stopDictation(){let a=this._core.getState();if(!a)throw Error("Composer is not available");a.stopDictation()}setQuote(a){let b=this._core.getState();if(!b)throw Error("Composer is not available");b.setQuote(a)}subscribe(a){return this._core.subscribe(a)}_eventSubscriptionSubjects=new Map;unstable_on(a,b){let c=this._eventSubscriptionSubjects.get(a);return c||(c=new aE({event:a,binding:this._core}),this._eventSubscriptionSubjects.set(a,c)),c.subscribe(b)}}class aX extends aW{get path(){return this._core.path}get type(){return"thread"}_getState;constructor(a){const b=new aC({path:a.path,getState:()=>{let b;return b=a.getState(),Object.freeze({type:"thread",isEditing:b?.isEditing??!1,canCancel:b?.canCancel??!1,isEmpty:b?.isEmpty??!0,attachments:b?.attachments??aU,text:b?.text??"",role:b?.role??"user",runConfig:b?.runConfig??aV,attachmentAccept:b?.attachmentAccept??"",dictation:b?.dictation,quote:b?.quote,value:b?.text??""})},subscribe:b=>a.subscribe(b)});super({path:a.path,getState:()=>a.getState(),subscribe:a=>b.subscribe(a)}),this._getState=b.getState.bind(b),this.__internal_bindMethods()}getState(){return this._getState()}getAttachmentByIndex(a){return new aR(new aB({path:{...this.path,attachmentSource:"thread-composer",attachmentSelector:{type:"index",index:a},ref:`${this.path.ref}.attachments[${a}]`},getState:()=>{let b=this.getState().attachments[a];return b?{...b,source:"thread-composer"}:ay},subscribe:a=>this._core.subscribe(a)}),this._core)}}class aY extends aW{_beginEdit;get path(){return this._core.path}get type(){return"edit"}_getState;constructor(a,b){const c=new aC({path:a.path,getState:()=>{let b;return b=a.getState(),Object.freeze({type:"edit",isEditing:b?.isEditing??!1,canCancel:b?.canCancel??!1,isEmpty:b?.isEmpty??!0,text:b?.text??"",role:b?.role??"user",attachments:b?.attachments??aU,runConfig:b?.runConfig??aV,attachmentAccept:b?.attachmentAccept??"",dictation:b?.dictation,quote:b?.quote,value:b?.text??""})},subscribe:b=>a.subscribe(b)});super({path:a.path,getState:()=>a.getState(),subscribe:a=>c.subscribe(a)}),this._beginEdit=b,this._getState=c.getState.bind(c),this.__internal_bindMethods()}__internal_bindMethods(){super.__internal_bindMethods(),this.beginEdit=this.beginEdit.bind(this)}getState(){return this._getState()}beginEdit(){this._beginEdit()}getAttachmentByIndex(a){return new aS(new aB({path:{...this.path,attachmentSource:"edit-composer",attachmentSelector:{type:"index",index:a},ref:`${this.path.ref}.attachments[${a}]`},getState:()=>{let b=this.getState().attachments[a];return b?{...b,source:"edit-composer"}:ay},subscribe:a=>this._core.subscribe(a)}),this._core)}}let aZ=Symbol.for("aui.tool-response");class a${get[aZ](){return!0}artifact;result;isError;messages;constructor(a){void 0!==a.artifact&&(this.artifact=a.artifact),this.result=a.result,this.isError=a.isError??!1,void 0!==a.messages&&(this.messages=a.messages)}static[Symbol.hasInstance](a){return"object"==typeof a&&null!==a&&aZ in a}static toResponse(a){return a instanceof a$?a:new a$({result:void 0===a?"<no result>":a})}}class a_{contentBinding;messageApi;threadApi;get path(){return this.contentBinding.path}constructor(a,b,c){this.contentBinding=a,this.messageApi=b,this.threadApi=c,this.__internal_bindMethods()}__internal_bindMethods(){this.addToolResult=this.addToolResult.bind(this),this.resumeToolCall=this.resumeToolCall.bind(this),this.getState=this.getState.bind(this),this.subscribe=this.subscribe.bind(this)}getState(){return this.contentBinding.getState()}addToolResult(a){let b=this.contentBinding.getState();if(!b)throw Error("Message part is not available");if("tool-call"!==b.type)throw Error("Tried to add tool result to non-tool message part");if(!this.messageApi)throw Error("Message API is not available. This is likely a bug in assistant-ui.");if(!this.threadApi)throw Error("Thread API is not available");let c=this.messageApi.getState();if(!c)throw Error("Message is not available");let d=b.toolName,e=b.toolCallId,f=a$.toResponse(a);this.threadApi.getState().addToolResult({messageId:c.id,toolName:d,toolCallId:e,result:f.result,artifact:f.artifact,isError:f.isError})}resumeToolCall(a){let b=this.contentBinding.getState();if(!b)throw Error("Message part is not available");if("tool-call"!==b.type)throw Error("Tried to resume tool call on non-tool message part");if(!this.threadApi)throw Error("Thread API is not available");let c=b.toolCallId;this.threadApi.getState().resumeToolCall({toolCallId:c,payload:a})}subscribe(a){return this.contentBinding.subscribe(a)}}let a0=Object.freeze({type:"complete"}),a1=(a,b)=>{let c=a.content[b];if(!c)return ay;let d=((a,b,c)=>{if("assistant"!==a.role)return a0;if("tool-call"===c.type)if(!c.result)return a.status;else return a0;let d=b===Math.max(0,a.content.length-1);return"requires-action"===a.status.type?a0:d?a.status:a0})(a,b,c);return Object.freeze({...c,...{[ac]:c[ac]},status:d})};class a2{_core;_threadBinding;get path(){return this._core.path}constructor(a,b){this._core=a,this._threadBinding=b,this.composer=new aY(new aD({path:{...this.path,ref:`${this.path.ref}${this.path.ref}.composer`,composerSource:"edit"},getState:this._getEditComposerRuntimeCore,subscribe:a=>this._threadBinding.subscribe(a)}),()=>this._threadBinding.getState().beginEdit(this._core.getState().id)),this.__internal_bindMethods()}__internal_bindMethods(){this.reload=this.reload.bind(this),this.getState=this.getState.bind(this),this.subscribe=this.subscribe.bind(this),this.getMessagePartByIndex=this.getMessagePartByIndex.bind(this),this.getMessagePartByToolCallId=this.getMessagePartByToolCallId.bind(this),this.getAttachmentByIndex=this.getAttachmentByIndex.bind(this),this.unstable_getCopyText=this.unstable_getCopyText.bind(this),this.speak=this.speak.bind(this),this.stopSpeaking=this.stopSpeaking.bind(this),this.submitFeedback=this.submitFeedback.bind(this),this.switchToBranch=this.switchToBranch.bind(this)}composer;_getEditComposerRuntimeCore=()=>this._threadBinding.getState().getEditComposer(this._core.getState().id);getState(){return this._core.getState()}reload(a={}){let b=this._getEditComposerRuntimeCore(),c=b??this._threadBinding.getState().composer,{runConfig:d=(b??c).runConfig}=a,e=this._core.getState();if("assistant"!==e.role)throw Error("Can only reload assistant messages");this._threadBinding.getState().startRun({parentId:e.parentId,sourceId:e.id,runConfig:d})}speak(){let a=this._core.getState();return this._threadBinding.getState().speak(a.id)}stopSpeaking(){let a=this._core.getState(),b=this._threadBinding.getState();if(b.speech?.messageId===a.id)this._threadBinding.getState().stopSpeaking();else throw Error("Message is not being spoken")}submitFeedback({type:a}){let b=this._core.getState();this._threadBinding.getState().submitFeedback({messageId:b.id,type:a})}switchToBranch({position:a,branchId:b}){let c=this._core.getState();if(b&&a)throw Error("May not specify both branchId and position");if(!b&&!a)throw Error("Must specify either branchId or position");let d=this._threadBinding.getState().getBranches(c.id),e=b;if("previous"===a?e=d[c.branchNumber-2]:"next"===a&&(e=d[c.branchNumber]),!e)throw Error("Branch not found");this._threadBinding.getState().switchToBranch(e)}unstable_getCopyText(){return at(this.getState())}subscribe(a){return this._core.subscribe(a)}getMessagePartByIndex(a){if(a<0)throw Error("Message part index must be >= 0");return new a_(new aB({path:{...this.path,ref:`${this.path.ref}${this.path.ref}.content[${a}]`,messagePartSelector:{type:"index",index:a}},getState:()=>a1(this.getState(),a),subscribe:a=>this._core.subscribe(a)}),this._core,this._threadBinding)}getMessagePartByToolCallId(a){return new a_(new aB({path:{...this.path,ref:this.path.ref+`${this.path.ref}.content[toolCallId=${JSON.stringify(a)}]`,messagePartSelector:{type:"toolCallId",toolCallId:a}},getState:()=>{let b=this._core.getState(),c=b.content.findIndex(b=>"tool-call"===b.type&&b.toolCallId===a);return -1===c?ay:a1(b,c)},subscribe:a=>this._core.subscribe(a)}),this._core,this._threadBinding)}getAttachmentByIndex(a){return new aT(new aB({path:{...this.path,ref:`${this.path.ref}${this.path.ref}.attachments[${a}]`,attachmentSource:"message",attachmentSelector:{type:"index",index:a}},getState:()=>{let b=this.getState().attachments,c=b?.[a];return c?{...c,source:"message"}:ay},subscribe:a=>this._core.subscribe(a)}))}}class a3{get path(){return this._threadBinding.path}get __internal_threadBinding(){return this._threadBinding}_threadBinding;constructor(a,b){const c=new aB({path:a.path,getState:()=>{var c,d;let e;return c=a.getState(),d=b.getState(),e=c.messages.at(-1),Object.freeze({threadId:d.id,metadata:d,capabilities:c.capabilities,isDisabled:c.isDisabled,isLoading:c.isLoading,isRunning:e?.role==="assistant"&&"running"===e.status.type,messages:c.messages,state:c.state,suggestions:c.suggestions,extras:c.extras,speech:c.speech,voice:c.voice})},subscribe:c=>{let d=a.subscribe(c),e=b.subscribe(c);return()=>{d(),e()}}});this._threadBinding={path:a.path,getState:()=>a.getState(),getStateState:()=>c.getState(),outerSubscribe:b=>a.outerSubscribe(b),subscribe:b=>a.subscribe(b)},this.composer=new aX(new aD({path:{...this.path,ref:`${this.path.ref}.composer`,composerSource:"thread"},getState:()=>this._threadBinding.getState().composer,subscribe:a=>this._threadBinding.subscribe(a)})),this.__internal_bindMethods()}__internal_bindMethods(){this.append=this.append.bind(this),this.resumeRun=this.resumeRun.bind(this),this.unstable_resumeRun=this.unstable_resumeRun.bind(this),this.unstable_loadExternalState=this.unstable_loadExternalState.bind(this),this.importExternalState=this.importExternalState.bind(this),this.exportExternalState=this.exportExternalState.bind(this),this.startRun=this.startRun.bind(this),this.cancelRun=this.cancelRun.bind(this),this.stopSpeaking=this.stopSpeaking.bind(this),this.connectVoice=this.connectVoice.bind(this),this.disconnectVoice=this.disconnectVoice.bind(this),this.muteVoice=this.muteVoice.bind(this),this.unmuteVoice=this.unmuteVoice.bind(this),this.getVoiceVolume=this.getVoiceVolume.bind(this),this.subscribeVoiceVolume=this.subscribeVoiceVolume.bind(this),this.export=this.export.bind(this),this.import=this.import.bind(this),this.reset=this.reset.bind(this),this.getMessageByIndex=this.getMessageByIndex.bind(this),this.getMessageById=this.getMessageById.bind(this),this.subscribe=this.subscribe.bind(this),this.unstable_on=this.unstable_on.bind(this),this.getModelContext=this.getModelContext.bind(this),this.getModelConfig=this.getModelConfig.bind(this),this.getState=this.getState.bind(this)}composer;getState(){return this._threadBinding.getStateState()}append(a){var b;this._threadBinding.getState().append((b=this._threadBinding.getState().messages,"string"==typeof a?{createdAt:new Date,parentId:b.at(-1)?.id??null,sourceId:null,runConfig:{},role:"user",content:[{type:"text",text:a}],attachments:[],metadata:{custom:{}}}:{createdAt:a.createdAt??new Date,parentId:a.parentId??b.at(-1)?.id??null,sourceId:a.sourceId??null,role:a.role??"user",content:a.content,attachments:a.attachments??[],metadata:a.metadata??{custom:{}},runConfig:a.runConfig??{},startRun:a.startRun}))}subscribe(a){return this._threadBinding.subscribe(a)}getModelContext(){return this._threadBinding.getState().getModelContext()}getModelConfig(){return this.getModelContext()}startRun(a){let b;return this._threadBinding.getState().startRun({parentId:(b=null===a||"string"==typeof a?{parentId:a}:a).parentId??null,sourceId:b.sourceId??null,runConfig:b.runConfig??{}})}resumeRun(a){return this._threadBinding.getState().resumeRun({parentId:a.parentId??null,sourceId:a.sourceId??null,runConfig:a.runConfig??{},...a.stream?{stream:a.stream}:{}})}unstable_resumeRun(a){return this.resumeRun(a)}exportExternalState(){return this._threadBinding.getState().exportExternalState()}importExternalState(a){this._threadBinding.getState().importExternalState(a)}unstable_loadExternalState(a){this._threadBinding.getState().unstable_loadExternalState(a)}cancelRun(){this._threadBinding.getState().cancelRun()}stopSpeaking(){return this._threadBinding.getState().stopSpeaking()}connectVoice(){this._threadBinding.getState().connectVoice()}disconnectVoice(){this._threadBinding.getState().disconnectVoice()}getVoiceVolume(){return this._threadBinding.getState().getVoiceVolume()}subscribeVoiceVolume(a){return this._threadBinding.getState().subscribeVoiceVolume(a)}muteVoice(){this._threadBinding.getState().muteVoice()}unmuteVoice(){this._threadBinding.getState().unmuteVoice()}export(){return this._threadBinding.getState().export()}import(a){this._threadBinding.getState().import(a)}reset(a){this._threadBinding.getState().reset(a)}getMessageByIndex(a){if(a<0)throw Error("Message index must be >= 0");return this._getMessageRuntime({...this.path,ref:`${this.path.ref}.messages[${a}]`,messageSelector:{type:"index",index:a}},()=>{let b=this._threadBinding.getState().messages,c=b[a];if(c)return{message:c,parentId:b[a-1]?.id??null,index:a}})}getMessageById(a){return this._getMessageRuntime({...this.path,ref:`${this.path.ref}.messages[messageId=${JSON.stringify(a)}]`,messageSelector:{type:"messageId",messageId:a}},()=>this._threadBinding.getState().getMessageById(a))}_getMessageRuntime(a,b){return new a2(new aB({path:a,getState:()=>{let{message:a,parentId:c,index:d}=b()??{},{messages:e,speech:f}=this._threadBinding.getState();if(!a||void 0===c||void 0===d)return ay;let g=this._threadBinding.getState().getBranches(a.id),h=a.metadata.submittedFeedback;return{...a,...{[ac]:a[ac]},index:d,isLast:e.at(-1)?.id===a.id,parentId:c,branchNumber:g.indexOf(a.id)+1,branchCount:g.length,speech:f?.messageId===a.id?f:void 0,submittedFeedback:h}},subscribe:a=>this._threadBinding.subscribe(a)}),this._threadBinding)}_eventSubscriptionSubjects=new Map;unstable_on(a,b){let c=this._eventSubscriptionSubjects.get(a);return c||(c=new aE({event:a,binding:this._threadBinding}),this._eventSubscriptionSubjects.set(a,c)),c.subscribe(b)}}let a4=(a,b)=>{if(void 0===b)return ay;let c=a.getItemById(b);return c?{id:c.id,remoteId:c.remoteId,externalId:c.externalId,title:c.title,status:c.status,isMain:c.id===a.mainThreadId}:ay};class a5{_core;_runtimeFactory;_getState;constructor(a,b=a3){this._core=a,this._runtimeFactory=b;const c=new aC({path:{},getState:()=>({mainThreadId:a.mainThreadId,newThreadId:a.newThreadId,threadIds:a.threadIds,archivedThreadIds:a.archivedThreadIds,isLoading:a.isLoading,threadItems:a.threadItems}),subscribe:b=>a.subscribe(b)});this._getState=c.getState.bind(c),this._mainThreadListItemRuntime=new aO(new aB({path:{ref:"threadItems[main]",threadSelector:{type:"main"}},getState:()=>a4(this._core,this._core.mainThreadId),subscribe:a=>this._core.subscribe(a)}),this._core),this.main=new b(new aD({path:{ref:"threads.main",threadSelector:{type:"main"}},getState:()=>a.getMainThreadRuntimeCore(),subscribe:b=>a.subscribe(b)}),this._mainThreadListItemRuntime),this.__internal_bindMethods()}__internal_bindMethods(){this.switchToThread=this.switchToThread.bind(this),this.switchToNewThread=this.switchToNewThread.bind(this),this.getState=this.getState.bind(this),this.subscribe=this.subscribe.bind(this),this.getById=this.getById.bind(this),this.getItemById=this.getItemById.bind(this),this.getItemByIndex=this.getItemByIndex.bind(this),this.getArchivedItemByIndex=this.getArchivedItemByIndex.bind(this)}switchToThread(a){return this._core.switchToThread(a)}switchToNewThread(){return this._core.switchToNewThread()}getState(){return this._getState()}subscribe(a){return this._core.subscribe(a)}_mainThreadListItemRuntime;main;get mainItem(){return this._mainThreadListItemRuntime}getById(a){return new this._runtimeFactory(new aD({path:{ref:`threads[threadId=${JSON.stringify(a)}]`,threadSelector:{type:"threadId",threadId:a}},getState:()=>this._core.getThreadRuntimeCore(a),subscribe:a=>this._core.subscribe(a)}),this.mainItem)}getItemByIndex(a){return new aO(new aB({path:{ref:`threadItems[${a}]`,threadSelector:{type:"index",index:a}},getState:()=>a4(this._core,this._core.threadIds[a]),subscribe:a=>this._core.subscribe(a)}),this._core)}getArchivedItemByIndex(a){return new aO(new aB({path:{ref:`archivedThreadItems[${a}]`,threadSelector:{type:"archiveIndex",index:a}},getState:()=>a4(this._core,this._core.archivedThreadIds[a]),subscribe:a=>this._core.subscribe(a)}),this._core)}getItemById(a){return new aO(new aB({path:{ref:`threadItems[threadId=${a}]`,threadSelector:{type:"threadId",threadId:a}},getState:()=>a4(this._core,a),subscribe:a=>this._core.subscribe(a)}),this._core)}}class a6{_core;threads;get threadList(){return this.threads}_thread;constructor(a){this._core=a,this.threads=new a5(a.threads),this._thread=this.threads.main,this.__internal_bindMethods()}__internal_bindMethods(){this.switchToNewThread=this.switchToNewThread.bind(this),this.switchToThread=this.switchToThread.bind(this),this.registerModelContextProvider=this.registerModelContextProvider.bind(this),this.registerModelConfigProvider=this.registerModelConfigProvider.bind(this),this.reset=this.reset.bind(this)}get thread(){return this._thread}switchToNewThread(){return this._core.threads.switchToNewThread()}switchToThread(a){return this._core.threads.switchToThread(a)}registerModelContextProvider(a){return this._core.registerModelContextProvider(a)}registerModelConfigProvider(a){return this.registerModelContextProvider(a)}reset({initialMessages:a}={}){return this._core.threads.getMainThreadRuntimeCore().import(au(a??[]))}}let a7=(0,c.createContext)(null);var a8=a.i(62588),a9=a.i(30970),ba=a.i(5303),bb=a.i(70245),bc=a.i(87648),bd=class extends bb.Subscribable{#a;#f=void 0;#g;#h;constructor(a,b){super(),this.#a=a,this.setOptions(b),this.bindMethods(),this.#i()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(a){let b=this.options;this.options=this.#a.defaultMutationOptions(a),(0,bc.shallowEqualObjects)(this.options,b)||this.#a.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#g,observer:this}),b?.mutationKey&&this.options.mutationKey&&(0,bc.hashKey)(b.mutationKey)!==(0,bc.hashKey)(this.options.mutationKey)?this.reset():this.#g?.state.status==="pending"&&this.#g.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#g?.removeObserver(this)}onMutationUpdate(a){this.#i(),this.#j(a)}getCurrentResult(){return this.#f}reset(){this.#g?.removeObserver(this),this.#g=void 0,this.#i(),this.#j()}mutate(a,b){return this.#h=b,this.#g?.removeObserver(this),this.#g=this.#a.getMutationCache().build(this.#a,this.options),this.#g.addObserver(this),this.#g.execute(a)}#i(){let a=this.#g?.state??(0,a9.getDefaultState)();this.#f={...a,isPending:"pending"===a.status,isSuccess:"success"===a.status,isError:"error"===a.status,isIdle:"idle"===a.status,mutate:this.mutate,reset:this.reset}}#j(a){ba.notifyManager.batch(()=>{if(this.#h&&this.hasListeners()){let b=this.#f.variables,c=this.#f.context,d={client:this.#a,meta:this.options.meta,mutationKey:this.options.mutationKey};if(a?.type==="success"){try{this.#h.onSuccess?.(a.data,b,c,d)}catch(a){Promise.reject(a)}try{this.#h.onSettled?.(a.data,null,b,c,d)}catch(a){Promise.reject(a)}}else if(a?.type==="error"){try{this.#h.onError?.(a.error,b,c,d)}catch(a){Promise.reject(a)}try{this.#h.onSettled?.(void 0,a.error,b,c,d)}catch(a){Promise.reject(a)}}}this.listeners.forEach(a=>{a(this.#f)})})}},be=a.i(81130),bf=a.i(46847);async function bg(a){let b=await fetch(`/api/interactive/chat/${a}/messages`);if(!b.ok)throw console.error(`[ChatState] fetch failed: ${b.status}`,await b.text().catch(()=>"")),Error(`Failed to fetch chat state: ${b.status}`);return b.json()}async function bh(a,b,c,d,e){let f=await fetch(`/api/interactive/chat/${a}/messages`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:b,worktreePath:c,model:d,agentType:e})});if(!f.ok)throw Error(`Failed to send message: ${f.status}`);return(await f.json()).message}function bi(a){return{id:a.id,role:a.role===bf.InteractiveMessageRole.user?"user":"assistant",content:[{type:"text",text:a.content}],createdAt:a.createdAt?new Date(a.createdAt):void 0}}function bj(a){return["chat-messages",a]}var bk=a.i(82934);a.i(307);var bl=a.i(30931);function bm({attachments:a,isDragOver:e,uploadError:f,onDragEnter:g,onDragLeave:i,onDragOver:j,onDrop:l,onPaste:m,onRemoveAttachment:n,onNotesChange:o,onPickFiles:p,agentPicker:q}){let{t:r}=(0,d.useTranslation)("web"),[s,u]=(0,c.useState)(!1),v=(0,c.useRef)(null);return(0,b.jsx)(k.ComposerPrimitive.Root,{className:"shrink-0 border-t p-3",children:(0,b.jsx)("div",{onDragEnter:g,onDragLeave:i,onDragOver:j,onDrop:l,className:(0,h.cn)("flex flex-col gap-1.5 rounded-md border-2 border-transparent p-1 transition-colors",e&&"border-primary/50 bg-primary/5"),children:(0,b.jsxs)("div",{ref:v,onFocus:()=>u(!0),onBlur:()=>u(!1),className:(0,h.cn)("border-input flex flex-col overflow-hidden rounded-md border shadow-xs transition-[color,box-shadow]",s&&"ring-ring/50 border-ring ring-[3px]"),children:[(0,b.jsx)(k.ComposerPrimitive.Input,{rows:1,autoFocus:!0,placeholder:r("chat.writeMessage"),onPaste:m,"aria-invalid":!!f,"aria-describedby":f?"chat-upload-error":void 0,className:"max-h-[4.5rem] min-h-0 resize-none rounded-none border-0 px-3 py-2.5 text-sm shadow-none focus:outline-none focus-visible:ring-0"}),a.length>0?(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 py-2",children:a.map(a=>(0,b.jsx)(bl.AttachmentChip,{name:a.name,size:a.size,mimeType:a.mimeType,path:a.path,onRemove:()=>n(a.id),loading:a.loading,notes:a.notes,onNotesChange:b=>o(a.id,b)},a.id))}):null,f?(0,b.jsx)("p",{id:"chat-upload-error",className:"text-destructive px-3 pb-2 text-xs",role:"alert",children:f}):null,(0,b.jsxs)("div",{className:"border-input flex items-center gap-3 border-t px-3 py-1.5",children:[q,(0,b.jsx)("div",{className:"flex-1"}),(0,b.jsxs)(bk.Tooltip,{children:[(0,b.jsx)(bk.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("button",{type:"button",onClick:p,"aria-label":r("chat.attachFiles"),className:"text-muted-foreground hover:text-foreground cursor-pointer rounded p-1 transition-colors",children:(0,b.jsx)(t.Paperclip,{className:"h-4 w-4"})})}),(0,b.jsx)(bk.TooltipContent,{side:"top",children:r("chat.attachFiles")})]}),(0,b.jsx)(bn,{})]})]})})})}function bn(){return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(m.ThreadPrimitive.If,{running:!1,children:(0,b.jsx)(k.ComposerPrimitive.Send,{className:(0,h.cn)("bg-primary text-primary-foreground inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-md","hover:bg-primary/90 disabled:pointer-events-none disabled:opacity-30","transition-colors"),children:(0,b.jsx)(q.SendHorizontal,{className:"size-3.5"})})}),(0,b.jsx)(m.ThreadPrimitive.If,{running:!0,children:(0,b.jsx)(k.ComposerPrimitive.Cancel,{className:(0,h.cn)("bg-destructive/10 text-destructive inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-md","hover:bg-destructive/20","transition-colors"),children:(0,b.jsx)(r.CircleStop,{className:"size-3.5"})})})]})}function bo(){return(0,b.jsxs)("div",{className:"flex flex-1 flex-col gap-3 p-4 pt-6",children:[(0,b.jsxs)("div",{className:"flex items-start gap-2.5",children:[(0,b.jsx)("div",{className:"bg-muted h-6 w-6 animate-pulse rounded-full"}),(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)("div",{className:"bg-muted h-4 w-48 animate-pulse rounded-lg"}),(0,b.jsx)("div",{className:"bg-muted h-4 w-72 animate-pulse rounded-lg"}),(0,b.jsx)("div",{className:"bg-muted h-4 w-36 animate-pulse rounded-lg"})]})]}),(0,b.jsxs)("div",{className:"flex items-start gap-2.5",children:[(0,b.jsx)("div",{className:"bg-muted h-6 w-6 animate-pulse rounded-full"}),(0,b.jsx)("div",{className:"bg-muted h-4 w-32 animate-pulse rounded-lg"})]}),(0,b.jsxs)("div",{className:"flex items-start gap-2.5",children:[(0,b.jsx)("div",{className:"bg-muted h-6 w-6 animate-pulse rounded-full"}),(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)("div",{className:"bg-muted h-4 w-56 animate-pulse rounded-lg"}),(0,b.jsx)("div",{className:"bg-muted h-4 w-64 animate-pulse rounded-lg"})]})]})]})}function bp({sessionInfo:a,isAgentActive:c,onClear:e,debugMode:h,onDebugToggle:i}){let{t:j}=(0,d.useTranslation)("web");return(0,b.jsxs)("div",{className:"flex h-8 shrink-0 items-center border-b px-3",children:[(0,b.jsx)("div",{className:"flex min-w-0 flex-1 items-center gap-2",children:a?(0,b.jsxs)(b.Fragment,{children:[c?(0,b.jsx)("span",{className:"h-1.5 w-1.5 shrink-0 animate-pulse rounded-full bg-emerald-500"}):(0,b.jsx)(g.Cpu,{className:"text-muted-foreground/40 h-3 w-3 shrink-0"}),(0,b.jsxs)("span",{className:"text-muted-foreground font-mono text-[10px]",children:[a.model??"agent",a.sessionId?` \xb7 ${a.sessionId.slice(0,8)}`:""]})]}):(0,b.jsx)("span",{className:"text-muted-foreground/40 text-[11px]",children:j("chat.noSession")})}),(0,b.jsxs)("div",{className:"flex items-center gap-1 ps-2",children:[i?(0,b.jsxs)("label",{className:"text-muted-foreground/60 flex cursor-pointer items-center gap-1 text-[10px]",children:[(0,b.jsx)("input",{type:"checkbox",checked:h,onChange:a=>i(a.target.checked),className:"h-3 w-3 cursor-pointer rounded"}),"Debug"]}):null,(0,b.jsxs)(bq,{onClick:()=>{e()},title:j("chat.clearChatHistory"),children:[(0,b.jsx)(f.Trash2,{className:"h-2.5 w-2.5"}),(0,b.jsx)("span",{children:j("chat.clear")})]})]})]})}function bq({children:a,onClick:c,title:d,variant:e}){return(0,b.jsx)("button",{type:"button",onClick:c,title:d,className:(0,h.cn)("inline-flex items-center gap-1 rounded-md px-2 py-1 text-xs transition-colors","danger"===e?"text-destructive hover:bg-destructive/10":"text-muted-foreground hover:text-foreground hover:bg-muted"),children:a})}a.s(["ChatTab",0,function({featureId:a,worktreePath:d}){let[f,g]=(0,c.useState)(void 0),[h,i]=(0,c.useState)(void 0),[j,k]=(0,c.useState)(!1),l=function(){let[a,b]=(0,c.useState)([]),[d,e]=(0,c.useState)(null),[f,g]=(0,c.useState)(!1),h=(0,c.useRef)(0),i=(0,c.useRef)(crypto.randomUUID()),j=(0,c.useCallback)(async a=>{for(let b of(e(null),a)){if(b.size>0xa00000)return void e(`"${b.name}" exceeds 10 MB limit`);let a=function(a){let b=a.lastIndexOf(".");return b>0?a.slice(b+1).toLowerCase():null}(b.name);if(a&&!T.has(a))return void e(`File type "${a}" is not allowed`)}for(let c of a){let a=crypto.randomUUID();b(b=>[...b,{id:a,name:c.name,size:c.size,mimeType:c.type||"application/octet-stream",path:"",loading:!0}]);try{let d=new FormData;d.append("file",c),d.append("sessionId",i.current);let f=await fetch("/api/attachments/upload",{method:"POST",body:d});if(!f.ok){let c=await f.json().catch(()=>({error:"Upload failed"}));b(b=>b.filter(b=>b.id!==a)),e(c.error??"Upload failed");return}let g=await f.json();b(b=>b.some(b=>b.id!==a&&b.path===g.path)?b.filter(b=>b.id!==a):b.map(b=>b.id===a?{...g,id:a,loading:!1}:b))}catch{b(b=>b.filter(b=>b.id!==a)),e("Upload failed")}}},[]),k=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),h.current+=1,1===h.current&&g(!0)},[]),l=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),h.current-=1,0===h.current&&g(!1)},[]),m=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation()},[]),n=(0,c.useCallback)(a=>{a.preventDefault(),a.stopPropagation(),h.current=0,g(!1);let b=Array.from(a.dataTransfer.files);b.length>0&&j(b)},[j]),o=(0,c.useCallback)(a=>{let b=a.clipboardData?.items;if(!b)return;let c=[];for(let a of Array.from(b))if("file"===a.kind){let b=a.getAsFile();b&&c.push(b)}c.length>0&&(a.preventDefault(),j(c))},[j]),p=(0,c.useCallback)(a=>{b(b=>b.filter(b=>b.id!==a))},[]),q=(0,c.useCallback)((a,c)=>{b(b=>b.map(b=>b.id===a?{...b,notes:c}:b))},[]),r=(0,c.useCallback)(a=>{b(b=>b.some(b=>b.path===a.path)?b:[...b,{...a,loading:!1}])},[]),s=(0,c.useCallback)(()=>{b([]),e(null)},[]),t=a.filter(a=>!a.loading);return{attachments:a,completedAttachments:t,uploadError:d,isDragOver:f,handleFiles:j,handleDragEnter:k,handleDragLeave:l,handleDragOver:m,handleDrop:n,handlePaste:o,addAttachment:r,removeAttachment:p,updateNotes:q,clearAttachments:s}}(),{runtime:m,status:n,clearChat:o,sessionInfo:p,isChatLoading:q}=function(a,b,d){let e=(0,be.useQueryClient)(),f=(0,c.useRef)(d?.model),g=(0,c.useRef)(d?.agentType);f.current=d?.model,g.current=d?.agentType;let h=(0,c.useRef)(d?.debugMode??!1);h.current=d?.debugMode??!1;let[i,j]=(0,c.useState)([]),k=(0,c.useCallback)((a,b)=>{h.current&&j(c=>[...c,{id:`dbg-${Date.now()}-${Math.random()}`,timestamp:new Date,label:a,detail:b}])},[]),{data:l,isLoading:m}=(0,a8.useQuery)({queryKey:bj(a),queryFn:()=>bg(a),refetchInterval:3e3});(0,c.useEffect)(()=>{l?.turnStatus==="unread"&&fetch(`/api/interactive/chat/${a}/mark-read`,{method:"POST"})},[l?.turnStatus,a]);let n=(0,c.useMemo)(()=>l?.messages??[],[l?.messages]),o=l?.sessionStatus??null,p=(0,c.useRef)(null);(0,c.useEffect)(()=>{if(o&&o!==p.current){let a=l?.sessionInfo;k(`session_${o}`,a?`model=${a.model??"?"}, sid=${a.sessionId?.slice(0,8)??"?"}`:void 0)}p.current=o},[o,l?.sessionInfo,k]);let q=l?.streamingText??null,r=(0,c.useRef)(null);l?.sessionInfo&&(r.current=l.sessionInfo);let s=l?.sessionInfo??r.current,[t,u]=(0,c.useState)(""),[v,w]=(0,c.useState)(null),[x,y]=(0,c.useState)(!1),z=(0,c.useRef)(null),A=(0,c.useRef)(null),B=(0,c.useCallback)(()=>{z.current&&clearTimeout(z.current),z.current=setTimeout(()=>y(!0),600)},[]),C=(0,c.useCallback)(()=>{z.current&&(clearTimeout(z.current),z.current=null),y(!1)},[]),D=n.length>0?n[n.length-1].role:null;(0,c.useEffect)(()=>{D===bf.InteractiveMessageRole.assistant&&C()},[D,n.length,C]),(0,c.useEffect)(()=>{let b=new EventSource(`/api/interactive/chat/${a}/stream`);return A.current=b,b.addEventListener("delta",a=>{try{let b=JSON.parse(a.data);b.delta&&(C(),u(a=>a+b.delta),w(null))}catch{}}),b.addEventListener("activity",b=>{C();try{let a=JSON.parse(b.data);a.activity&&k(`[${a.activity.kind}] ${a.activity.label}`,a.activity.detail)}catch{}e.invalidateQueries({queryKey:bj(a)})}),b.addEventListener("log",a=>{try{let b=JSON.parse(a.data);b.log&&(C(),w(b.log),k("log",b.log))}catch{}}),b.addEventListener("done",()=>{w(null),C(),k("turn_done"),e.invalidateQueries({queryKey:bj(a)}).then(()=>{u("")})}),b.onerror=()=>{},()=>{b.close(),A.current=null}},[a,e,C,k]);let E=function(a){let b=(0,be.useQueryClient)(void 0),[d]=c.useState(()=>new bd(b,a));c.useEffect(()=>{d.setOptions(a)},[d,a]);let e=c.useSyncExternalStore(c.useCallback(a=>d.subscribe(ba.notifyManager.batchCalls(a)),[d]),()=>d.getCurrentResult(),()=>d.getCurrentResult()),f=c.useCallback((a,b)=>{d.mutate(a,b).catch(bc.noop)},[d]);if(e.error&&(0,bc.shouldThrowError)(d.options.throwOnError,[e.error]))throw e.error;return{...e,mutate:f,mutateAsync:e.mutate}}({mutationFn:c=>bh(a,c,b??"",f.current,g.current),onMutate:async b=>{k("send_message",`model=${f.current??"default"}, agent=${g.current??"default"}, len=${b.length}`),B(),await e.cancelQueries({queryKey:bj(a)});let c=e.getQueryData(bj(a));return e.setQueryData(bj(a),c=>({messages:[...c?.messages??[],{id:`optimistic-${Date.now()}`,featureId:a,role:bf.InteractiveMessageRole.user,content:b,createdAt:new Date,updatedAt:new Date}],sessionStatus:c?.sessionStatus??"booting",streamingText:null,sessionInfo:c?.sessionInfo??null})),{previous:c}},onError:(b,c,d)=>{d?.previous&&e.setQueryData(bj(a),d.previous)},onSettled:()=>{e.invalidateQueries({queryKey:bj(a)})}}),F=x||!!t||!!v||"booting"===o,G=t??q??"",H=(0,c.useMemo)(()=>{let a,b=n.map(bi);if(d?.debugMode&&i.length>0){let c=i.map(a=>({id:a.id,role:"assistant",content:[{type:"text",text:a.detail?`🔧 **${a.label}** — ${a.detail}`:`🔧 **${a.label}**`}],createdAt:a.timestamp}));a=[];let d=0,e=0;for(;d<b.length&&e<c.length;)(b[d].createdAt?new Date(b[d].createdAt).getTime():0)<=(c[e].createdAt?new Date(c[e].createdAt).getTime():0)?a.push(b[d++]):a.push(c[e++]);for(;d<b.length;)a.push(b[d++]);for(;e<c.length;)a.push(c[e++])}else a=b;if(G.trim()){let b=[{type:"text",text:G}];v&&b.push({type:"text",text:`*⏳ ${v}*`}),a.push({id:"streaming",role:"assistant",content:b})}else v?a.push({id:"streaming",role:"assistant",content:[{type:"text",text:`*⏳ ${v}*`}]}):(x||"booting"===o)&&a.push({id:"streaming",role:"assistant",content:[{type:"text",text:"booting"===o?"*Agent is waking up...*":"*Thinking...*"}]});return a},[n,G,x,o,v,d?.debugMode,i]),I=(0,c.useMemo)(()=>F?{isRunning:!0,statusText:v}:{isRunning:!1,statusText:null},[F,v]),J=(0,c.useCallback)(async a=>{let b=a.content.find(a=>"text"===a.type);if(b?.type!=="text"||!b.text.trim())return;let c=d?.contentTransform?d.contentTransform(b.text):b.text;E.mutate(c,{onSuccess:()=>d?.onMessageSent?.()})},[E,d]),K=(0,c.useCallback)(async()=>{let b=await fetch(`/api/interactive/chat/${a}/messages`,{method:"DELETE"});if(!b.ok)throw Error(`Failed to clear chat: ${b.status}`);u(""),j([]),w(null),C(),e.invalidateQueries({queryKey:bj(a)})},[a,e,C]),L=(0,c.useCallback)(async()=>{let b=await fetch(`/api/interactive/chat/${a}/stop`,{method:"POST"});if(!b.ok)throw Error(`Failed to stop agent: ${b.status}`);u(""),w(null),C(),e.invalidateQueries({queryKey:bj(a)})},[a,e,C]);return{runtime:(a=>{let[b]=(0,c.useState)(()=>new aN(a));(0,c.useEffect)(()=>{b.setAdapter(a)});let{modelContext:d}=(0,c.useContext)(a7)??{};return(0,c.useEffect)(()=>{if(d)return b.registerModelContextProvider(d)},[d,b]),(0,c.useMemo)(()=>new a6(b),[b])})({messages:H,convertMessage:(0,c.useCallback)(a=>a,[]),isRunning:F,onNew:J,onCancel:(0,c.useCallback)(async()=>{u(""),w(null),C()},[C])}),status:I,clearChat:K,stopAgent:L,sessionInfo:s,isChatLoading:m}}(a,d,{contentTransform:(0,c.useCallback)(a=>(function(a,b){if(!b||0===b.length)return a;let c=b.map(a=>a.notes?.trim()?`@${a.path} [Note: ${a.notes.trim()}]`:`@${a.path}`).join(" ");return`${a}
4
+
5
+ ${c}`})(a,l.completedAttachments.map(a=>({path:a.path,name:a.name,notes:a.notes}))),[l.completedAttachments]),onMessageSent:l.clearAttachments,model:h,agentType:f,debugMode:j}),r=(0,c.useCallback)(async()=>{try{let b=await fetch("/api/dialog/pick-files");if(!b.ok)return;let c=await b.json();if(!c.paths?.length)return;for(let b of c.paths){let c=await fetch("/api/attachments/upload-from-path",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:b,sessionId:`chat-${a}`})});if(!c.ok)continue;let d=await c.json();l.addAttachment(d)}}catch{}},[a,l.addAttachment]),s=(0,b.jsx)(bm,{attachments:l.attachments,isDragOver:l.isDragOver,uploadError:l.uploadError,onDragEnter:l.handleDragEnter,onDragLeave:l.handleDragLeave,onDragOver:l.handleDragOver,onDrop:l.handleDrop,onPaste:l.handlePaste,onRemoveAttachment:l.removeAttachment,onNotesChange:l.updateNotes,onPickFiles:r,agentPicker:(0,b.jsx)(U.AgentModelPicker,{initialAgentType:f??"claude-code",initialModel:h??"claude-sonnet-4-6",mode:"override",onAgentModelChange:(a,b)=>{g(a),i(b)},className:"w-55"})});return(0,b.jsxs)("div",{className:"flex h-full min-h-0 flex-col",children:[(0,b.jsx)(bp,{sessionInfo:p,isAgentActive:n.isRunning,onClear:o,debugMode:j,onDebugToggle:void 0}),(0,b.jsx)("div",{className:"flex min-h-0 flex-1 flex-col",children:q?(0,b.jsx)(bo,{}):(0,b.jsx)(e.AssistantRuntimeProvider,{runtime:m,children:(0,b.jsx)(C,{composer:s})})})]})}],61544)}];
6
+
7
+ //# sourceMappingURL=_0vjw-e_._.js.map