@agent-native/toolkit 0.23.1 → 0.198.1

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 (2903) hide show
  1. package/README.md +20 -10
  2. package/agent-native.eject.json +1197 -1
  3. package/dist/app/PrimitiveButton.d.ts +5 -0
  4. package/dist/app/PrimitiveButton.d.ts.map +1 -0
  5. package/dist/app/PrimitiveButton.js +17 -0
  6. package/dist/app/PrimitiveButton.js.map +1 -0
  7. package/dist/app/agent-page/AgentContextTab.d.ts +5 -0
  8. package/dist/app/agent-page/AgentContextTab.d.ts.map +1 -0
  9. package/dist/app/agent-page/AgentContextTab.js +202 -0
  10. package/dist/app/agent-page/AgentContextTab.js.map +1 -0
  11. package/dist/app/agent-page/AgentEmptyState.d.ts +14 -0
  12. package/dist/app/agent-page/AgentEmptyState.d.ts.map +1 -0
  13. package/dist/app/agent-page/AgentEmptyState.js +10 -0
  14. package/dist/app/agent-page/AgentEmptyState.js.map +1 -0
  15. package/dist/app/agent-page/AgentJobsTab.d.ts +15 -0
  16. package/dist/app/agent-page/AgentJobsTab.d.ts.map +1 -0
  17. package/dist/app/agent-page/AgentJobsTab.js +379 -0
  18. package/dist/app/agent-page/AgentJobsTab.js.map +1 -0
  19. package/dist/app/agent-page/AgentTabFrame.d.ts +14 -0
  20. package/dist/app/agent-page/AgentTabFrame.d.ts.map +1 -0
  21. package/dist/app/agent-page/AgentTabFrame.js +9 -0
  22. package/dist/app/agent-page/AgentTabFrame.js.map +1 -0
  23. package/dist/app/agent-page/AgentTabsPage.d.ts +28 -0
  24. package/dist/app/agent-page/AgentTabsPage.d.ts.map +1 -0
  25. package/dist/app/agent-page/AgentTabsPage.js +425 -0
  26. package/dist/app/agent-page/AgentTabsPage.js.map +1 -0
  27. package/dist/app/agent-page/AgentWorkspaceContent.d.ts +10 -0
  28. package/dist/app/agent-page/AgentWorkspaceContent.d.ts.map +1 -0
  29. package/dist/app/agent-page/AgentWorkspaceContent.js +127 -0
  30. package/dist/app/agent-page/AgentWorkspaceContent.js.map +1 -0
  31. package/dist/app/agent-page/AutomationDetailsDialog.d.ts +21 -0
  32. package/dist/app/agent-page/AutomationDetailsDialog.d.ts.map +1 -0
  33. package/dist/app/agent-page/AutomationDetailsDialog.js +40 -0
  34. package/dist/app/agent-page/AutomationDetailsDialog.js.map +1 -0
  35. package/dist/app/agent-page/AutomationScheduleDialog.d.ts +17 -0
  36. package/dist/app/agent-page/AutomationScheduleDialog.d.ts.map +1 -0
  37. package/dist/app/agent-page/AutomationScheduleDialog.js +161 -0
  38. package/dist/app/agent-page/AutomationScheduleDialog.js.map +1 -0
  39. package/dist/app/agent-page/ScheduledTriggerNotice.d.ts +7 -0
  40. package/dist/app/agent-page/ScheduledTriggerNotice.d.ts.map +1 -0
  41. package/dist/app/agent-page/ScheduledTriggerNotice.js +58 -0
  42. package/dist/app/agent-page/ScheduledTriggerNotice.js.map +1 -0
  43. package/dist/app/agent-page/TimezoneSelect.d.ts +13 -0
  44. package/dist/app/agent-page/TimezoneSelect.d.ts.map +1 -0
  45. package/dist/app/agent-page/TimezoneSelect.js +90 -0
  46. package/dist/app/agent-page/TimezoneSelect.js.map +1 -0
  47. package/dist/app/agent-page/automation-schedule.d.ts +44 -0
  48. package/dist/app/agent-page/automation-schedule.d.ts.map +1 -0
  49. package/dist/app/agent-page/automation-schedule.js +199 -0
  50. package/dist/app/agent-page/automation-schedule.js.map +1 -0
  51. package/dist/app/agent-page/index.d.ts +4 -0
  52. package/dist/app/agent-page/index.d.ts.map +1 -0
  53. package/dist/app/agent-page/index.js +2 -0
  54. package/dist/app/agent-page/index.js.map +1 -0
  55. package/dist/app/agent-page/scheduled-trigger-state.d.ts +14 -0
  56. package/dist/app/agent-page/scheduled-trigger-state.d.ts.map +1 -0
  57. package/dist/app/agent-page/scheduled-trigger-state.js +7 -0
  58. package/dist/app/agent-page/scheduled-trigger-state.js.map +1 -0
  59. package/dist/app/agent-page/types.d.ts +14 -0
  60. package/dist/app/agent-page/types.d.ts.map +1 -0
  61. package/dist/app/agent-page/types.js +9 -0
  62. package/dist/app/agent-page/types.js.map +1 -0
  63. package/dist/app/agent-page/use-jobs.d.ts +103 -0
  64. package/dist/app/agent-page/use-jobs.d.ts.map +1 -0
  65. package/dist/app/agent-page/use-jobs.js +118 -0
  66. package/dist/app/agent-page/use-jobs.js.map +1 -0
  67. package/dist/app/agentkit/index.d.ts +2 -0
  68. package/dist/app/agentkit/index.d.ts.map +1 -0
  69. package/dist/app/agentkit/index.js +2 -0
  70. package/dist/app/agentkit/index.js.map +1 -0
  71. package/dist/app/agentkit/react/chat.d.ts +27 -0
  72. package/dist/app/agentkit/react/chat.d.ts.map +1 -0
  73. package/dist/app/agentkit/react/chat.js +19 -0
  74. package/dist/app/agentkit/react/chat.js.map +1 -0
  75. package/dist/app/agentkit/react/components.d.ts +110 -0
  76. package/dist/app/agentkit/react/components.d.ts.map +1 -0
  77. package/dist/app/agentkit/react/components.js +2138 -0
  78. package/dist/app/agentkit/react/components.js.map +1 -0
  79. package/dist/app/agentkit/react/composer-submission.d.ts +22 -0
  80. package/dist/app/agentkit/react/composer-submission.d.ts.map +1 -0
  81. package/dist/app/agentkit/react/composer-submission.js +33 -0
  82. package/dist/app/agentkit/react/composer-submission.js.map +1 -0
  83. package/dist/app/agentkit/react/context.d.ts +315 -0
  84. package/dist/app/agentkit/react/context.d.ts.map +1 -0
  85. package/dist/app/agentkit/react/context.js +399 -0
  86. package/dist/app/agentkit/react/context.js.map +1 -0
  87. package/dist/app/agentkit/react/headless.d.ts +3 -0
  88. package/dist/app/agentkit/react/headless.d.ts.map +1 -0
  89. package/dist/app/agentkit/react/headless.js +3 -0
  90. package/dist/app/agentkit/react/headless.js.map +1 -0
  91. package/dist/app/agentkit/react/index.d.ts +6 -0
  92. package/dist/app/agentkit/react/index.d.ts.map +1 -0
  93. package/dist/app/agentkit/react/index.js +6 -0
  94. package/dist/app/agentkit/react/index.js.map +1 -0
  95. package/dist/app/agentkit/react/root.d.ts +49 -0
  96. package/dist/app/agentkit/react/root.d.ts.map +1 -0
  97. package/dist/app/agentkit/react/root.js +145 -0
  98. package/dist/app/agentkit/react/root.js.map +1 -0
  99. package/dist/app/agentkit/react/streaming-text.d.ts +17 -0
  100. package/dist/app/agentkit/react/streaming-text.d.ts.map +1 -0
  101. package/dist/app/agentkit/react/streaming-text.js +257 -0
  102. package/dist/app/agentkit/react/streaming-text.js.map +1 -0
  103. package/dist/app/agentkit/react/styles.css +1898 -0
  104. package/dist/app/auth/AuthPage.d.ts +34 -0
  105. package/dist/app/auth/AuthPage.d.ts.map +1 -0
  106. package/dist/app/auth/AuthPage.js +2122 -0
  107. package/dist/app/auth/AuthPage.js.map +1 -0
  108. package/dist/app/auth/RequireSession.d.ts +15 -0
  109. package/dist/app/auth/RequireSession.d.ts.map +1 -0
  110. package/dist/app/auth/RequireSession.js +43 -0
  111. package/dist/app/auth/RequireSession.js.map +1 -0
  112. package/dist/app/auth/ResetPasswordPage.d.ts +6 -0
  113. package/dist/app/auth/ResetPasswordPage.d.ts.map +1 -0
  114. package/dist/app/auth/ResetPasswordPage.js +122 -0
  115. package/dist/app/auth/ResetPasswordPage.js.map +1 -0
  116. package/dist/app/auth/entry.d.ts +2 -0
  117. package/dist/app/auth/entry.d.ts.map +1 -0
  118. package/dist/app/auth/entry.js +24 -0
  119. package/dist/app/auth/entry.js.map +1 -0
  120. package/dist/app/auth/index.d.ts +4 -0
  121. package/dist/app/auth/index.d.ts.map +1 -0
  122. package/dist/app/auth/index.js +4 -0
  123. package/dist/app/auth/index.js.map +1 -0
  124. package/dist/app/blocks/AiEditableField.d.ts +8 -0
  125. package/dist/app/blocks/AiEditableField.d.ts.map +1 -0
  126. package/dist/app/blocks/AiEditableField.js +10 -0
  127. package/dist/app/blocks/AiEditableField.js.map +1 -0
  128. package/dist/app/blocks/BlockView.d.ts +17 -0
  129. package/dist/app/blocks/BlockView.d.ts.map +1 -0
  130. package/dist/app/blocks/BlockView.js +39 -0
  131. package/dist/app/blocks/BlockView.js.map +1 -0
  132. package/dist/app/blocks/RegistryBlockDataProvider.d.ts +7 -0
  133. package/dist/app/blocks/RegistryBlockDataProvider.d.ts.map +1 -0
  134. package/dist/app/blocks/RegistryBlockDataProvider.js +54 -0
  135. package/dist/app/blocks/RegistryBlockDataProvider.js.map +1 -0
  136. package/dist/app/blocks/SchemaBlockEditor.d.ts +11 -0
  137. package/dist/app/blocks/SchemaBlockEditor.d.ts.map +1 -0
  138. package/dist/app/blocks/SchemaBlockEditor.js +139 -0
  139. package/dist/app/blocks/SchemaBlockEditor.js.map +1 -0
  140. package/dist/app/blocks/code-block-direction.d.ts +6 -0
  141. package/dist/app/blocks/code-block-direction.d.ts.map +1 -0
  142. package/dist/app/blocks/code-block-direction.js +5 -0
  143. package/dist/app/blocks/code-block-direction.js.map +1 -0
  144. package/dist/app/blocks/index.d.ts +68 -0
  145. package/dist/app/blocks/index.d.ts.map +1 -0
  146. package/dist/app/blocks/index.js +68 -0
  147. package/dist/app/blocks/index.js.map +1 -0
  148. package/dist/app/blocks/library/AnnotatedCodeBlock.d.ts +6 -0
  149. package/dist/app/blocks/library/AnnotatedCodeBlock.d.ts.map +1 -0
  150. package/dist/app/blocks/library/AnnotatedCodeBlock.js +225 -0
  151. package/dist/app/blocks/library/AnnotatedCodeBlock.js.map +1 -0
  152. package/dist/app/blocks/library/ApiEndpointBlock.d.ts +5 -0
  153. package/dist/app/blocks/library/ApiEndpointBlock.d.ts.map +1 -0
  154. package/dist/app/blocks/library/ApiEndpointBlock.js +267 -0
  155. package/dist/app/blocks/library/ApiEndpointBlock.js.map +1 -0
  156. package/dist/app/blocks/library/DataModelBlock.d.ts +5 -0
  157. package/dist/app/blocks/library/DataModelBlock.d.ts.map +1 -0
  158. package/dist/app/blocks/library/DataModelBlock.js +222 -0
  159. package/dist/app/blocks/library/DataModelBlock.js.map +1 -0
  160. package/dist/app/blocks/library/DiffBlock.d.ts +12 -0
  161. package/dist/app/blocks/library/DiffBlock.d.ts.map +1 -0
  162. package/dist/app/blocks/library/DiffBlock.js +777 -0
  163. package/dist/app/blocks/library/DiffBlock.js.map +1 -0
  164. package/dist/app/blocks/library/FileTreeBlock.d.ts +5 -0
  165. package/dist/app/blocks/library/FileTreeBlock.d.ts.map +1 -0
  166. package/dist/app/blocks/library/FileTreeBlock.js +298 -0
  167. package/dist/app/blocks/library/FileTreeBlock.js.map +1 -0
  168. package/dist/app/blocks/library/HighlightedCode.d.ts +14 -0
  169. package/dist/app/blocks/library/HighlightedCode.d.ts.map +1 -0
  170. package/dist/app/blocks/library/HighlightedCode.js +152 -0
  171. package/dist/app/blocks/library/HighlightedCode.js.map +1 -0
  172. package/dist/app/blocks/library/JsonExplorerBlock.d.ts +16 -0
  173. package/dist/app/blocks/library/JsonExplorerBlock.d.ts.map +1 -0
  174. package/dist/app/blocks/library/JsonExplorerBlock.js +223 -0
  175. package/dist/app/blocks/library/JsonExplorerBlock.js.map +1 -0
  176. package/dist/app/blocks/library/MermaidBlock.d.ts +5 -0
  177. package/dist/app/blocks/library/MermaidBlock.d.ts.map +1 -0
  178. package/dist/app/blocks/library/MermaidBlock.js +152 -0
  179. package/dist/app/blocks/library/MermaidBlock.js.map +1 -0
  180. package/dist/app/blocks/library/OpenApiSpecBlock.d.ts +12 -0
  181. package/dist/app/blocks/library/OpenApiSpecBlock.d.ts.map +1 -0
  182. package/dist/app/blocks/library/OpenApiSpecBlock.js +459 -0
  183. package/dist/app/blocks/library/OpenApiSpecBlock.js.map +1 -0
  184. package/dist/app/blocks/library/annotation-rail.d.ts +175 -0
  185. package/dist/app/blocks/library/annotation-rail.d.ts.map +1 -0
  186. package/dist/app/blocks/library/annotation-rail.js +467 -0
  187. package/dist/app/blocks/library/annotation-rail.js.map +1 -0
  188. package/dist/app/blocks/library/block-copy.d.ts +33 -0
  189. package/dist/app/blocks/library/block-copy.d.ts.map +1 -0
  190. package/dist/app/blocks/library/block-copy.js +361 -0
  191. package/dist/app/blocks/library/block-copy.js.map +1 -0
  192. package/dist/app/blocks/library/callout.d.ts +6 -0
  193. package/dist/app/blocks/library/callout.d.ts.map +1 -0
  194. package/dist/app/blocks/library/callout.js +45 -0
  195. package/dist/app/blocks/library/callout.js.map +1 -0
  196. package/dist/app/blocks/library/checklist.d.ts +8 -0
  197. package/dist/app/blocks/library/checklist.d.ts.map +1 -0
  198. package/dist/app/blocks/library/checklist.js +45 -0
  199. package/dist/app/blocks/library/checklist.js.map +1 -0
  200. package/dist/app/blocks/library/code-copy-button.d.ts +4 -0
  201. package/dist/app/blocks/library/code-copy-button.d.ts.map +1 -0
  202. package/dist/app/blocks/library/code-copy-button.js +13 -0
  203. package/dist/app/blocks/library/code-copy-button.js.map +1 -0
  204. package/dist/app/blocks/library/code-filename-label.d.ts +8 -0
  205. package/dist/app/blocks/library/code-filename-label.d.ts.map +1 -0
  206. package/dist/app/blocks/library/code-filename-label.js +15 -0
  207. package/dist/app/blocks/library/code-filename-label.js.map +1 -0
  208. package/dist/app/blocks/library/code-highlight.d.ts +5 -0
  209. package/dist/app/blocks/library/code-highlight.d.ts.map +1 -0
  210. package/dist/app/blocks/library/code-highlight.js +142 -0
  211. package/dist/app/blocks/library/code-highlight.js.map +1 -0
  212. package/dist/app/blocks/library/code-tabs.d.ts +3 -0
  213. package/dist/app/blocks/library/code-tabs.d.ts.map +1 -0
  214. package/dist/app/blocks/library/code-tabs.js +258 -0
  215. package/dist/app/blocks/library/code-tabs.js.map +1 -0
  216. package/dist/app/blocks/library/code.d.ts +3 -0
  217. package/dist/app/blocks/library/code.d.ts.map +1 -0
  218. package/dist/app/blocks/library/code.js +107 -0
  219. package/dist/app/blocks/library/code.js.map +1 -0
  220. package/dist/app/blocks/library/columns.d.ts +6 -0
  221. package/dist/app/blocks/library/columns.d.ts.map +1 -0
  222. package/dist/app/blocks/library/columns.js +178 -0
  223. package/dist/app/blocks/library/columns.js.map +1 -0
  224. package/dist/app/blocks/library/dev-doc-ui.d.ts +40 -0
  225. package/dist/app/blocks/library/dev-doc-ui.d.ts.map +1 -0
  226. package/dist/app/blocks/library/dev-doc-ui.js +37 -0
  227. package/dist/app/blocks/library/dev-doc-ui.js.map +1 -0
  228. package/dist/app/blocks/library/diagram.d.ts +10 -0
  229. package/dist/app/blocks/library/diagram.d.ts.map +1 -0
  230. package/dist/app/blocks/library/diagram.js +347 -0
  231. package/dist/app/blocks/library/diagram.js.map +1 -0
  232. package/dist/app/blocks/library/html.d.ts +6 -0
  233. package/dist/app/blocks/library/html.d.ts.map +1 -0
  234. package/dist/app/blocks/library/html.js +88 -0
  235. package/dist/app/blocks/library/html.js.map +1 -0
  236. package/dist/app/blocks/library/narrow-container.d.ts +6 -0
  237. package/dist/app/blocks/library/narrow-container.d.ts.map +1 -0
  238. package/dist/app/blocks/library/narrow-container.js +10 -0
  239. package/dist/app/blocks/library/narrow-container.js.map +1 -0
  240. package/dist/app/blocks/library/question-form.d.ts +8 -0
  241. package/dist/app/blocks/library/question-form.d.ts.map +1 -0
  242. package/dist/app/blocks/library/question-form.js +319 -0
  243. package/dist/app/blocks/library/question-form.js.map +1 -0
  244. package/dist/app/blocks/library/sanitize-html.d.ts +7 -0
  245. package/dist/app/blocks/library/sanitize-html.d.ts.map +1 -0
  246. package/dist/app/blocks/library/sanitize-html.js +326 -0
  247. package/dist/app/blocks/library/sanitize-html.js.map +1 -0
  248. package/dist/app/blocks/library/specs.d.ts +8 -0
  249. package/dist/app/blocks/library/specs.d.ts.map +1 -0
  250. package/dist/app/blocks/library/specs.js +211 -0
  251. package/dist/app/blocks/library/specs.js.map +1 -0
  252. package/dist/app/blocks/library/table.d.ts +3 -0
  253. package/dist/app/blocks/library/table.d.ts.map +1 -0
  254. package/dist/app/blocks/library/table.js +156 -0
  255. package/dist/app/blocks/library/table.js.map +1 -0
  256. package/dist/app/blocks/library/tabs.d.ts +6 -0
  257. package/dist/app/blocks/library/tabs.d.ts.map +1 -0
  258. package/dist/app/blocks/library/tabs.js +250 -0
  259. package/dist/app/blocks/library/tabs.js.map +1 -0
  260. package/dist/app/blocks/library/wireframe-icons.d.ts +2 -0
  261. package/dist/app/blocks/library/wireframe-icons.d.ts.map +1 -0
  262. package/dist/app/blocks/library/wireframe-icons.js +175 -0
  263. package/dist/app/blocks/library/wireframe-icons.js.map +1 -0
  264. package/dist/app/blocks/library/wireframe-kit.d.ts +234 -0
  265. package/dist/app/blocks/library/wireframe-kit.d.ts.map +1 -0
  266. package/dist/app/blocks/library/wireframe-kit.js +1017 -0
  267. package/dist/app/blocks/library/wireframe-kit.js.map +1 -0
  268. package/dist/app/blocks/library/wireframe.d.ts +6 -0
  269. package/dist/app/blocks/library/wireframe.d.ts.map +1 -0
  270. package/dist/app/blocks/library/wireframe.js +174 -0
  271. package/dist/app/blocks/library/wireframe.js.map +1 -0
  272. package/dist/app/blocks/provider.d.ts +16 -0
  273. package/dist/app/blocks/provider.d.ts.map +1 -0
  274. package/dist/app/blocks/provider.js +17 -0
  275. package/dist/app/blocks/provider.js.map +1 -0
  276. package/dist/app/changelog/Changelog.d.ts +31 -0
  277. package/dist/app/changelog/Changelog.d.ts.map +1 -0
  278. package/dist/app/changelog/Changelog.js +100 -0
  279. package/dist/app/changelog/Changelog.js.map +1 -0
  280. package/dist/app/changelog/index.d.ts +2 -0
  281. package/dist/app/changelog/index.d.ts.map +1 -0
  282. package/dist/app/changelog/index.js +2 -0
  283. package/dist/app/changelog/index.js.map +1 -0
  284. package/dist/app/chat/AgentAskPopover.d.ts +16 -0
  285. package/dist/app/chat/AgentAskPopover.d.ts.map +1 -0
  286. package/dist/app/chat/AgentAskPopover.js +25 -0
  287. package/dist/app/chat/AgentAskPopover.js.map +1 -0
  288. package/dist/app/chat/AgentChatHome.d.ts +9 -0
  289. package/dist/app/chat/AgentChatHome.d.ts.map +1 -0
  290. package/dist/app/chat/AgentChatHome.js +7 -0
  291. package/dist/app/chat/AgentChatHome.js.map +1 -0
  292. package/dist/app/chat/AgentKitAssistantChat.d.ts +15 -0
  293. package/dist/app/chat/AgentKitAssistantChat.d.ts.map +1 -0
  294. package/dist/app/chat/AgentKitAssistantChat.js +3023 -0
  295. package/dist/app/chat/AgentKitAssistantChat.js.map +1 -0
  296. package/dist/app/chat/AgentNativeEmbedded.d.ts +14 -0
  297. package/dist/app/chat/AgentNativeEmbedded.d.ts.map +1 -0
  298. package/dist/app/chat/AgentNativeEmbedded.js +35 -0
  299. package/dist/app/chat/AgentNativeEmbedded.js.map +1 -0
  300. package/dist/app/chat/AgentPanel.d.ts +128 -0
  301. package/dist/app/chat/AgentPanel.d.ts.map +1 -0
  302. package/dist/app/chat/AgentPanel.js +1216 -0
  303. package/dist/app/chat/AgentPanel.js.map +1 -0
  304. package/dist/app/chat/AgentSidebar.d.ts +89 -0
  305. package/dist/app/chat/AgentSidebar.d.ts.map +1 -0
  306. package/dist/app/chat/AgentSidebar.js +827 -0
  307. package/dist/app/chat/AgentSidebar.js.map +1 -0
  308. package/dist/app/chat/AgentSidebarPanel.d.ts +3 -0
  309. package/dist/app/chat/AgentSidebarPanel.d.ts.map +1 -0
  310. package/dist/app/chat/AgentSidebarPanel.js +8 -0
  311. package/dist/app/chat/AgentSidebarPanel.js.map +1 -0
  312. package/dist/app/chat/AgentTaskCard.d.ts +9 -0
  313. package/dist/app/chat/AgentTaskCard.d.ts.map +1 -0
  314. package/dist/app/chat/AgentTaskCard.js +127 -0
  315. package/dist/app/chat/AgentTaskCard.js.map +1 -0
  316. package/dist/app/chat/BuilderReferralInviteRow.d.ts +4 -0
  317. package/dist/app/chat/BuilderReferralInviteRow.d.ts.map +1 -0
  318. package/dist/app/chat/BuilderReferralInviteRow.js +17 -0
  319. package/dist/app/chat/BuilderReferralInviteRow.js.map +1 -0
  320. package/dist/app/chat/ConnectBuilderCard.d.ts +11 -0
  321. package/dist/app/chat/ConnectBuilderCard.d.ts.map +1 -0
  322. package/dist/app/chat/ConnectBuilderCard.js +231 -0
  323. package/dist/app/chat/ConnectBuilderCard.js.map +1 -0
  324. package/dist/app/chat/FileStorageSetupPopover.d.ts +19 -0
  325. package/dist/app/chat/FileStorageSetupPopover.d.ts.map +1 -0
  326. package/dist/app/chat/FileStorageSetupPopover.js +60 -0
  327. package/dist/app/chat/FileStorageSetupPopover.js.map +1 -0
  328. package/dist/app/chat/HighlightedCodeBlock.d.ts +20 -0
  329. package/dist/app/chat/HighlightedCodeBlock.d.ts.map +1 -0
  330. package/dist/app/chat/HighlightedCodeBlock.js +98 -0
  331. package/dist/app/chat/HighlightedCodeBlock.js.map +1 -0
  332. package/dist/app/chat/KeepTabOpenNotice.d.ts +11 -0
  333. package/dist/app/chat/KeepTabOpenNotice.d.ts.map +1 -0
  334. package/dist/app/chat/KeepTabOpenNotice.js +75 -0
  335. package/dist/app/chat/KeepTabOpenNotice.js.map +1 -0
  336. package/dist/app/chat/MultiTabAssistantChat.d.ts +75 -0
  337. package/dist/app/chat/MultiTabAssistantChat.d.ts.map +1 -0
  338. package/dist/app/chat/MultiTabAssistantChat.js +2237 -0
  339. package/dist/app/chat/MultiTabAssistantChat.js.map +1 -0
  340. package/dist/app/chat/RunStuckBanner.d.ts +16 -0
  341. package/dist/app/chat/RunStuckBanner.d.ts.map +1 -0
  342. package/dist/app/chat/RunStuckBanner.js +207 -0
  343. package/dist/app/chat/RunStuckBanner.js.map +1 -0
  344. package/dist/app/chat/agent-sidebar-context.d.ts +2 -0
  345. package/dist/app/chat/agent-sidebar-context.d.ts.map +1 -0
  346. package/dist/app/chat/agent-sidebar-context.js +3 -0
  347. package/dist/app/chat/agent-sidebar-context.js.map +1 -0
  348. package/dist/app/chat/agent-sidebar-events.d.ts +7 -0
  349. package/dist/app/chat/agent-sidebar-events.d.ts.map +1 -0
  350. package/dist/app/chat/agent-sidebar-events.js +21 -0
  351. package/dist/app/chat/agent-sidebar-events.js.map +1 -0
  352. package/dist/app/chat/agent-sidebar-url-sync.d.ts +15 -0
  353. package/dist/app/chat/agent-sidebar-url-sync.d.ts.map +1 -0
  354. package/dist/app/chat/agent-sidebar-url-sync.js +169 -0
  355. package/dist/app/chat/agent-sidebar-url-sync.js.map +1 -0
  356. package/dist/app/chat/agentkit-chat/action-widget.d.ts +4 -0
  357. package/dist/app/chat/agentkit-chat/action-widget.d.ts.map +1 -0
  358. package/dist/app/chat/agentkit-chat/action-widget.js +76 -0
  359. package/dist/app/chat/agentkit-chat/action-widget.js.map +1 -0
  360. package/dist/app/chat/agentkit-chat/approval-card.d.ts +8 -0
  361. package/dist/app/chat/agentkit-chat/approval-card.d.ts.map +1 -0
  362. package/dist/app/chat/agentkit-chat/approval-card.js +85 -0
  363. package/dist/app/chat/agentkit-chat/approval-card.js.map +1 -0
  364. package/dist/app/chat/agentkit-chat/composer.d.ts +2 -0
  365. package/dist/app/chat/agentkit-chat/composer.d.ts.map +1 -0
  366. package/dist/app/chat/agentkit-chat/composer.js +2 -0
  367. package/dist/app/chat/agentkit-chat/composer.js.map +1 -0
  368. package/dist/app/chat/agentkit-chat/connections.d.ts +5 -0
  369. package/dist/app/chat/agentkit-chat/connections.d.ts.map +1 -0
  370. package/dist/app/chat/agentkit-chat/connections.js +27 -0
  371. package/dist/app/chat/agentkit-chat/connections.js.map +1 -0
  372. package/dist/app/chat/agentkit-chat/guided-questions.d.ts +148 -0
  373. package/dist/app/chat/agentkit-chat/guided-questions.d.ts.map +1 -0
  374. package/dist/app/chat/agentkit-chat/guided-questions.js +658 -0
  375. package/dist/app/chat/agentkit-chat/guided-questions.js.map +1 -0
  376. package/dist/app/chat/agentkit-chat/history.d.ts +109 -0
  377. package/dist/app/chat/agentkit-chat/history.d.ts.map +1 -0
  378. package/dist/app/chat/agentkit-chat/history.js +647 -0
  379. package/dist/app/chat/agentkit-chat/history.js.map +1 -0
  380. package/dist/app/chat/agentkit-chat/index.d.ts +16 -0
  381. package/dist/app/chat/agentkit-chat/index.d.ts.map +1 -0
  382. package/dist/app/chat/agentkit-chat/index.js +16 -0
  383. package/dist/app/chat/agentkit-chat/index.js.map +1 -0
  384. package/dist/app/chat/agentkit-chat/parity-renderers.d.ts +11 -0
  385. package/dist/app/chat/agentkit-chat/parity-renderers.d.ts.map +1 -0
  386. package/dist/app/chat/agentkit-chat/parity-renderers.js +45 -0
  387. package/dist/app/chat/agentkit-chat/parity-renderers.js.map +1 -0
  388. package/dist/app/chat/agentkit-chat/questions.d.ts +2 -0
  389. package/dist/app/chat/agentkit-chat/questions.d.ts.map +1 -0
  390. package/dist/app/chat/agentkit-chat/questions.js +2 -0
  391. package/dist/app/chat/agentkit-chat/questions.js.map +1 -0
  392. package/dist/app/chat/agentkit-chat/rail.d.ts +5 -0
  393. package/dist/app/chat/agentkit-chat/rail.d.ts.map +1 -0
  394. package/dist/app/chat/agentkit-chat/rail.js +5 -0
  395. package/dist/app/chat/agentkit-chat/rail.js.map +1 -0
  396. package/dist/app/chat/agentkit-chat/root.d.ts +3 -0
  397. package/dist/app/chat/agentkit-chat/root.d.ts.map +1 -0
  398. package/dist/app/chat/agentkit-chat/root.js +12 -0
  399. package/dist/app/chat/agentkit-chat/root.js.map +1 -0
  400. package/dist/app/chat/agentkit-chat/suggestions.d.ts +2 -0
  401. package/dist/app/chat/agentkit-chat/suggestions.d.ts.map +1 -0
  402. package/dist/app/chat/agentkit-chat/suggestions.js +2 -0
  403. package/dist/app/chat/agentkit-chat/suggestions.js.map +1 -0
  404. package/dist/app/chat/chat/ChatHistoryList.d.ts +2 -0
  405. package/dist/app/chat/chat/ChatHistoryList.d.ts.map +1 -0
  406. package/dist/app/chat/chat/ChatHistoryList.js +2 -0
  407. package/dist/app/chat/chat/ChatHistoryList.js.map +1 -0
  408. package/dist/app/chat/chat/IframeEmbed.d.ts +10 -0
  409. package/dist/app/chat/chat/IframeEmbed.d.ts.map +1 -0
  410. package/dist/app/chat/chat/IframeEmbed.js +100 -0
  411. package/dist/app/chat/chat/IframeEmbed.js.map +1 -0
  412. package/dist/app/chat/chat/action-chat-ui-surface.d.ts +8 -0
  413. package/dist/app/chat/chat/action-chat-ui-surface.d.ts.map +1 -0
  414. package/dist/app/chat/chat/action-chat-ui-surface.js +14 -0
  415. package/dist/app/chat/chat/action-chat-ui-surface.js.map +1 -0
  416. package/dist/app/chat/chat/agent-activity-object.d.ts +15 -0
  417. package/dist/app/chat/chat/agent-activity-object.d.ts.map +1 -0
  418. package/dist/app/chat/chat/agent-activity-object.js +19 -0
  419. package/dist/app/chat/chat/agent-activity-object.js.map +1 -0
  420. package/dist/app/chat/chat/agent-activity-trace.d.ts +34 -0
  421. package/dist/app/chat/chat/agent-activity-trace.d.ts.map +1 -0
  422. package/dist/app/chat/chat/agent-activity-trace.js +56 -0
  423. package/dist/app/chat/chat/agent-activity-trace.js.map +1 -0
  424. package/dist/app/chat/chat/agent-approval-card.d.ts +42 -0
  425. package/dist/app/chat/chat/agent-approval-card.d.ts.map +1 -0
  426. package/dist/app/chat/chat/agent-approval-card.js +32 -0
  427. package/dist/app/chat/chat/agent-approval-card.js.map +1 -0
  428. package/dist/app/chat/chat/history-types.d.ts +50 -0
  429. package/dist/app/chat/chat/history-types.d.ts.map +1 -0
  430. package/dist/app/chat/chat/history-types.js +2 -0
  431. package/dist/app/chat/chat/history-types.js.map +1 -0
  432. package/dist/app/chat/chat/index.d.ts +36 -0
  433. package/dist/app/chat/chat/index.d.ts.map +1 -0
  434. package/dist/app/chat/chat/index.js +34 -0
  435. package/dist/app/chat/chat/index.js.map +1 -0
  436. package/dist/app/chat/chat/legacy-chart-shorthand.d.ts +22 -0
  437. package/dist/app/chat/chat/legacy-chart-shorthand.d.ts.map +1 -0
  438. package/dist/app/chat/chat/legacy-chart-shorthand.js +279 -0
  439. package/dist/app/chat/chat/legacy-chart-shorthand.js.map +1 -0
  440. package/dist/app/chat/chat/markdown-renderer.d.ts +77 -0
  441. package/dist/app/chat/chat/markdown-renderer.d.ts.map +1 -0
  442. package/dist/app/chat/chat/markdown-renderer.js +578 -0
  443. package/dist/app/chat/chat/markdown-renderer.js.map +1 -0
  444. package/dist/app/chat/chat/run-recovery.d.ts +60 -0
  445. package/dist/app/chat/chat/run-recovery.d.ts.map +1 -0
  446. package/dist/app/chat/chat/run-recovery.js +433 -0
  447. package/dist/app/chat/chat/run-recovery.js.map +1 -0
  448. package/dist/app/chat/chat/surface-types.d.ts +353 -0
  449. package/dist/app/chat/chat/surface-types.d.ts.map +1 -0
  450. package/dist/app/chat/chat/surface-types.js +4 -0
  451. package/dist/app/chat/chat/surface-types.js.map +1 -0
  452. package/dist/app/chat/chat/tool-call-display.d.ts +129 -0
  453. package/dist/app/chat/chat/tool-call-display.d.ts.map +1 -0
  454. package/dist/app/chat/chat/tool-call-display.js +718 -0
  455. package/dist/app/chat/chat/tool-call-display.js.map +1 -0
  456. package/dist/app/chat/chat/tool-chips.d.ts +30 -0
  457. package/dist/app/chat/chat/tool-chips.d.ts.map +1 -0
  458. package/dist/app/chat/chat/tool-chips.js +28 -0
  459. package/dist/app/chat/chat/tool-chips.js.map +1 -0
  460. package/dist/app/chat/chat/tool-integration.d.ts +9 -0
  461. package/dist/app/chat/chat/tool-integration.d.ts.map +1 -0
  462. package/dist/app/chat/chat/tool-integration.js +52 -0
  463. package/dist/app/chat/chat/tool-integration.js.map +1 -0
  464. package/dist/app/chat/chat/tool-render-registry.d.ts +42 -0
  465. package/dist/app/chat/chat/tool-render-registry.d.ts.map +1 -0
  466. package/dist/app/chat/chat/tool-render-registry.js +83 -0
  467. package/dist/app/chat/chat/tool-render-registry.js.map +1 -0
  468. package/dist/app/chat/chat/widgets/ActionCard.d.ts +10 -0
  469. package/dist/app/chat/chat/widgets/ActionCard.d.ts.map +1 -0
  470. package/dist/app/chat/chat/widgets/ActionCard.js +6 -0
  471. package/dist/app/chat/chat/widgets/ActionCard.js.map +1 -0
  472. package/dist/app/chat/chat/widgets/AgentTeamProgressWidget.d.ts +3 -0
  473. package/dist/app/chat/chat/widgets/AgentTeamProgressWidget.d.ts.map +1 -0
  474. package/dist/app/chat/chat/widgets/AgentTeamProgressWidget.js +28 -0
  475. package/dist/app/chat/chat/widgets/AgentTeamProgressWidget.js.map +1 -0
  476. package/dist/app/chat/chat/widgets/ConnectRequiredWidget.d.ts +5 -0
  477. package/dist/app/chat/chat/widgets/ConnectRequiredWidget.d.ts.map +1 -0
  478. package/dist/app/chat/chat/widgets/ConnectRequiredWidget.js +19 -0
  479. package/dist/app/chat/chat/widgets/ConnectRequiredWidget.js.map +1 -0
  480. package/dist/app/chat/chat/widgets/DataChartRenderer.d.ts +5 -0
  481. package/dist/app/chat/chat/widgets/DataChartRenderer.d.ts.map +1 -0
  482. package/dist/app/chat/chat/widgets/DataChartRenderer.js +112 -0
  483. package/dist/app/chat/chat/widgets/DataChartRenderer.js.map +1 -0
  484. package/dist/app/chat/chat/widgets/DataChartWidget.d.ts +5 -0
  485. package/dist/app/chat/chat/widgets/DataChartWidget.d.ts.map +1 -0
  486. package/dist/app/chat/chat/widgets/DataChartWidget.js +21 -0
  487. package/dist/app/chat/chat/widgets/DataChartWidget.js.map +1 -0
  488. package/dist/app/chat/chat/widgets/DataInsightsWidget.d.ts +5 -0
  489. package/dist/app/chat/chat/widgets/DataInsightsWidget.d.ts.map +1 -0
  490. package/dist/app/chat/chat/widgets/DataInsightsWidget.js +20 -0
  491. package/dist/app/chat/chat/widgets/DataInsightsWidget.js.map +1 -0
  492. package/dist/app/chat/chat/widgets/DataTableWidget.d.ts +9 -0
  493. package/dist/app/chat/chat/widgets/DataTableWidget.d.ts.map +1 -0
  494. package/dist/app/chat/chat/widgets/DataTableWidget.js +125 -0
  495. package/dist/app/chat/chat/widgets/DataTableWidget.js.map +1 -0
  496. package/dist/app/chat/chat/widgets/InlineExtensionWidget.d.ts +6 -0
  497. package/dist/app/chat/chat/widgets/InlineExtensionWidget.d.ts.map +1 -0
  498. package/dist/app/chat/chat/widgets/InlineExtensionWidget.js +18 -0
  499. package/dist/app/chat/chat/widgets/InlineExtensionWidget.js.map +1 -0
  500. package/dist/app/chat/chat/widgets/RecordChangeWidget.d.ts +12 -0
  501. package/dist/app/chat/chat/widgets/RecordChangeWidget.d.ts.map +1 -0
  502. package/dist/app/chat/chat/widgets/RecordChangeWidget.js +261 -0
  503. package/dist/app/chat/chat/widgets/RecordChangeWidget.js.map +1 -0
  504. package/dist/app/chat/chat/widgets/WorkspaceFileWidget.d.ts +5 -0
  505. package/dist/app/chat/chat/widgets/WorkspaceFileWidget.d.ts.map +1 -0
  506. package/dist/app/chat/chat/widgets/WorkspaceFileWidget.js +35 -0
  507. package/dist/app/chat/chat/widgets/WorkspaceFileWidget.js.map +1 -0
  508. package/dist/app/chat/chat/widgets/builtin-tool-renderers.d.ts +8 -0
  509. package/dist/app/chat/chat/widgets/builtin-tool-renderers.d.ts.map +1 -0
  510. package/dist/app/chat/chat/widgets/builtin-tool-renderers.js +352 -0
  511. package/dist/app/chat/chat/widgets/builtin-tool-renderers.js.map +1 -0
  512. package/dist/app/chat/chat/widgets/data-widget-types.d.ts +2 -0
  513. package/dist/app/chat/chat/widgets/data-widget-types.d.ts.map +1 -0
  514. package/dist/app/chat/chat/widgets/data-widget-types.js +2 -0
  515. package/dist/app/chat/chat/widgets/data-widget-types.js.map +1 -0
  516. package/dist/app/chat/chat/widgets/inline-extension-result.d.ts +14 -0
  517. package/dist/app/chat/chat/widgets/inline-extension-result.d.ts.map +1 -0
  518. package/dist/app/chat/chat/widgets/inline-extension-result.js +67 -0
  519. package/dist/app/chat/chat/widgets/inline-extension-result.js.map +1 -0
  520. package/dist/app/chat/chat/widgets/workspace-file-result.d.ts +12 -0
  521. package/dist/app/chat/chat/widgets/workspace-file-result.d.ts.map +1 -0
  522. package/dist/app/chat/chat/widgets/workspace-file-result.js +34 -0
  523. package/dist/app/chat/chat/widgets/workspace-file-result.js.map +1 -0
  524. package/dist/app/chat/chat-first/ChatFirstAgentActivityPanel.d.ts +12 -0
  525. package/dist/app/chat/chat-first/ChatFirstAgentActivityPanel.d.ts.map +1 -0
  526. package/dist/app/chat/chat-first/ChatFirstAgentActivityPanel.js +52 -0
  527. package/dist/app/chat/chat-first/ChatFirstAgentActivityPanel.js.map +1 -0
  528. package/dist/app/chat/chat-first/ChatFirstSurfacePanelToggle.d.ts +6 -0
  529. package/dist/app/chat/chat-first/ChatFirstSurfacePanelToggle.d.ts.map +1 -0
  530. package/dist/app/chat/chat-first/ChatFirstSurfacePanelToggle.js +7 -0
  531. package/dist/app/chat/chat-first/ChatFirstSurfacePanelToggle.js.map +1 -0
  532. package/dist/app/chat/chat-first/active-surface.d.ts +16 -0
  533. package/dist/app/chat/chat-first/active-surface.d.ts.map +1 -0
  534. package/dist/app/chat/chat-first/active-surface.js +17 -0
  535. package/dist/app/chat/chat-first/active-surface.js.map +1 -0
  536. package/dist/app/chat/chat-first/agents-pane.d.ts +3 -0
  537. package/dist/app/chat/chat-first/agents-pane.d.ts.map +1 -0
  538. package/dist/app/chat/chat-first/agents-pane.js +7 -0
  539. package/dist/app/chat/chat-first/agents-pane.js.map +1 -0
  540. package/dist/app/chat/chat-first/app-open-actions.d.ts +31 -0
  541. package/dist/app/chat/chat-first/app-open-actions.d.ts.map +1 -0
  542. package/dist/app/chat/chat-first/app-open-actions.js +28 -0
  543. package/dist/app/chat/chat-first/app-open-actions.js.map +1 -0
  544. package/dist/app/chat/chat-first/app-pane.d.ts +3 -0
  545. package/dist/app/chat/chat-first/app-pane.d.ts.map +1 -0
  546. package/dist/app/chat/chat-first/app-pane.js +7 -0
  547. package/dist/app/chat/chat-first/app-pane.js.map +1 -0
  548. package/dist/app/chat/chat-first/apps-rail.d.ts +4 -0
  549. package/dist/app/chat/chat-first/apps-rail.d.ts.map +1 -0
  550. package/dist/app/chat/chat-first/apps-rail.js +148 -0
  551. package/dist/app/chat/chat-first/apps-rail.js.map +1 -0
  552. package/dist/app/chat/chat-first/browser-pane.d.ts +3 -0
  553. package/dist/app/chat/chat-first/browser-pane.d.ts.map +1 -0
  554. package/dist/app/chat/chat-first/browser-pane.js +68 -0
  555. package/dist/app/chat/chat-first/browser-pane.js.map +1 -0
  556. package/dist/app/chat/chat-first/chat-history.d.ts +9 -0
  557. package/dist/app/chat/chat-first/chat-history.d.ts.map +1 -0
  558. package/dist/app/chat/chat-first/chat-history.js +11 -0
  559. package/dist/app/chat/chat-first/chat-history.js.map +1 -0
  560. package/dist/app/chat/chat-first/copy.d.ts +3 -0
  561. package/dist/app/chat/chat-first/copy.d.ts.map +1 -0
  562. package/dist/app/chat/chat-first/copy.js +122 -0
  563. package/dist/app/chat/chat-first/copy.js.map +1 -0
  564. package/dist/app/chat/chat-first/index.d.ts +18 -0
  565. package/dist/app/chat/chat-first/index.d.ts.map +1 -0
  566. package/dist/app/chat/chat-first/index.js +17 -0
  567. package/dist/app/chat/chat-first/index.js.map +1 -0
  568. package/dist/app/chat/chat-first/primary-nav.d.ts +14 -0
  569. package/dist/app/chat/chat-first/primary-nav.d.ts.map +1 -0
  570. package/dist/app/chat/chat-first/primary-nav.js +34 -0
  571. package/dist/app/chat/chat-first/primary-nav.js.map +1 -0
  572. package/dist/app/chat/chat-first/session-watch-pane.d.ts +3 -0
  573. package/dist/app/chat/chat-first/session-watch-pane.d.ts.map +1 -0
  574. package/dist/app/chat/chat-first/session-watch-pane.js +10 -0
  575. package/dist/app/chat/chat-first/session-watch-pane.js.map +1 -0
  576. package/dist/app/chat/chat-first/surface-panel.d.ts +10 -0
  577. package/dist/app/chat/chat-first/surface-panel.d.ts.map +1 -0
  578. package/dist/app/chat/chat-first/surface-panel.js +10 -0
  579. package/dist/app/chat/chat-first/surface-panel.js.map +1 -0
  580. package/dist/app/chat/chat-first/surface-tabs.d.ts +10 -0
  581. package/dist/app/chat/chat-first/surface-tabs.d.ts.map +1 -0
  582. package/dist/app/chat/chat-first/surface-tabs.js +88 -0
  583. package/dist/app/chat/chat-first/surface-tabs.js.map +1 -0
  584. package/dist/app/chat/chat-first/types.d.ts +93 -0
  585. package/dist/app/chat/chat-first/types.d.ts.map +1 -0
  586. package/dist/app/chat/chat-first/types.js +2 -0
  587. package/dist/app/chat/chat-first/types.js.map +1 -0
  588. package/dist/app/chat/components/CodeAgentIndicator.d.ts +6 -0
  589. package/dist/app/chat/components/CodeAgentIndicator.d.ts.map +1 -0
  590. package/dist/app/chat/components/CodeAgentIndicator.js +22 -0
  591. package/dist/app/chat/components/CodeAgentIndicator.js.map +1 -0
  592. package/dist/app/chat/components/CodeRequiredDialog.d.ts +7 -0
  593. package/dist/app/chat/components/CodeRequiredDialog.d.ts.map +1 -0
  594. package/dist/app/chat/components/CodeRequiredDialog.js +251 -0
  595. package/dist/app/chat/components/CodeRequiredDialog.js.map +1 -0
  596. package/dist/app/chat/components/ui/button-classes.d.ts +2 -0
  597. package/dist/app/chat/components/ui/button-classes.d.ts.map +1 -0
  598. package/dist/app/chat/components/ui/button-classes.js +2 -0
  599. package/dist/app/chat/components/ui/button-classes.js.map +1 -0
  600. package/dist/app/chat/components/ui/message-scroller.d.ts +16 -0
  601. package/dist/app/chat/components/ui/message-scroller.d.ts.map +1 -0
  602. package/dist/app/chat/components/ui/message-scroller.js +30 -0
  603. package/dist/app/chat/components/ui/message-scroller.js.map +1 -0
  604. package/dist/app/chat/composer/assistant-ui-recovery.d.ts +36 -0
  605. package/dist/app/chat/composer/assistant-ui-recovery.d.ts.map +1 -0
  606. package/dist/app/chat/composer/assistant-ui-recovery.js +136 -0
  607. package/dist/app/chat/composer/assistant-ui-recovery.js.map +1 -0
  608. package/dist/app/chat/composer/index.d.ts +9 -0
  609. package/dist/app/chat/composer/index.d.ts.map +1 -0
  610. package/dist/app/chat/composer/index.js +9 -0
  611. package/dist/app/chat/composer/index.js.map +1 -0
  612. package/dist/app/chat/composer/model-runtime-adapters.d.ts +3 -0
  613. package/dist/app/chat/composer/model-runtime-adapters.d.ts.map +1 -0
  614. package/dist/app/chat/composer/model-runtime-adapters.js +15 -0
  615. package/dist/app/chat/composer/model-runtime-adapters.js.map +1 -0
  616. package/dist/app/chat/composer/runtime-adapters.d.ts +9 -0
  617. package/dist/app/chat/composer/runtime-adapters.d.ts.map +1 -0
  618. package/dist/app/chat/composer/runtime-adapters.js +80 -0
  619. package/dist/app/chat/composer/runtime-adapters.js.map +1 -0
  620. package/dist/app/chat/composer/use-agentkit-capabilities.d.ts +194 -0
  621. package/dist/app/chat/composer/use-agentkit-capabilities.d.ts.map +1 -0
  622. package/dist/app/chat/composer/use-agentkit-capabilities.js +89 -0
  623. package/dist/app/chat/composer/use-agentkit-capabilities.js.map +1 -0
  624. package/dist/app/chat/composer/use-agentkit-integration-menu.d.ts +9 -0
  625. package/dist/app/chat/composer/use-agentkit-integration-menu.d.ts.map +1 -0
  626. package/dist/app/chat/composer/use-agentkit-integration-menu.js +62 -0
  627. package/dist/app/chat/composer/use-agentkit-integration-menu.js.map +1 -0
  628. package/dist/app/chat/composer/use-mention-search.d.ts +7 -0
  629. package/dist/app/chat/composer/use-mention-search.d.ts.map +1 -0
  630. package/dist/app/chat/composer/use-mention-search.js +6 -0
  631. package/dist/app/chat/composer/use-mention-search.js.map +1 -0
  632. package/dist/app/chat/composer/use-send-to-agent-chat.d.ts +7 -0
  633. package/dist/app/chat/composer/use-send-to-agent-chat.d.ts.map +1 -0
  634. package/dist/app/chat/composer/use-send-to-agent-chat.js +11 -0
  635. package/dist/app/chat/composer/use-send-to-agent-chat.js.map +1 -0
  636. package/dist/app/chat/composer/wired-components.d.ts +11 -0
  637. package/dist/app/chat/composer/wired-components.d.ts.map +1 -0
  638. package/dist/app/chat/composer/wired-components.js +51 -0
  639. package/dist/app/chat/composer/wired-components.js.map +1 -0
  640. package/dist/app/chat/conversation/AgentConversation.d.ts +18 -0
  641. package/dist/app/chat/conversation/AgentConversation.d.ts.map +1 -0
  642. package/dist/app/chat/conversation/AgentConversation.js +206 -0
  643. package/dist/app/chat/conversation/AgentConversation.js.map +1 -0
  644. package/dist/app/chat/conversation/code-agent-transcript.d.ts +22 -0
  645. package/dist/app/chat/conversation/code-agent-transcript.d.ts.map +1 -0
  646. package/dist/app/chat/conversation/code-agent-transcript.js +207 -0
  647. package/dist/app/chat/conversation/code-agent-transcript.js.map +1 -0
  648. package/dist/app/chat/conversation/index.d.ts +5 -0
  649. package/dist/app/chat/conversation/index.d.ts.map +1 -0
  650. package/dist/app/chat/conversation/index.js +4 -0
  651. package/dist/app/chat/conversation/index.js.map +1 -0
  652. package/dist/app/chat/conversation/types.d.ts +67 -0
  653. package/dist/app/chat/conversation/types.d.ts.map +1 -0
  654. package/dist/app/chat/conversation/types.js +2 -0
  655. package/dist/app/chat/conversation/types.js.map +1 -0
  656. package/dist/app/chat/conversation/use-near-bottom-autoscroll.d.ts +30 -0
  657. package/dist/app/chat/conversation/use-near-bottom-autoscroll.d.ts.map +1 -0
  658. package/dist/app/chat/conversation/use-near-bottom-autoscroll.js +271 -0
  659. package/dist/app/chat/conversation/use-near-bottom-autoscroll.js.map +1 -0
  660. package/dist/app/chat/external-agent-host.d.ts +24 -0
  661. package/dist/app/chat/external-agent-host.d.ts.map +1 -0
  662. package/dist/app/chat/external-agent-host.js +343 -0
  663. package/dist/app/chat/external-agent-host.js.map +1 -0
  664. package/dist/app/chat/index.d.ts +26 -0
  665. package/dist/app/chat/index.d.ts.map +1 -0
  666. package/dist/app/chat/index.js +24 -0
  667. package/dist/app/chat/index.js.map +1 -0
  668. package/dist/app/chat/mcp-apps/McpAppRenderer.d.ts +18 -0
  669. package/dist/app/chat/mcp-apps/McpAppRenderer.d.ts.map +1 -0
  670. package/dist/app/chat/mcp-apps/McpAppRenderer.js +684 -0
  671. package/dist/app/chat/mcp-apps/McpAppRenderer.js.map +1 -0
  672. package/dist/app/chat/thinking-display.d.ts +17 -0
  673. package/dist/app/chat/thinking-display.d.ts.map +1 -0
  674. package/dist/app/chat/thinking-display.js +73 -0
  675. package/dist/app/chat/thinking-display.js.map +1 -0
  676. package/dist/app/chat/tool-cells/BashCell.d.ts +16 -0
  677. package/dist/app/chat/tool-cells/BashCell.d.ts.map +1 -0
  678. package/dist/app/chat/tool-cells/BashCell.js +38 -0
  679. package/dist/app/chat/tool-cells/BashCell.js.map +1 -0
  680. package/dist/app/chat/tool-cells/EditCell.d.ts +14 -0
  681. package/dist/app/chat/tool-cells/EditCell.d.ts.map +1 -0
  682. package/dist/app/chat/tool-cells/EditCell.js +110 -0
  683. package/dist/app/chat/tool-cells/EditCell.js.map +1 -0
  684. package/dist/app/chat/tool-cells/FilesChangedSummary.d.ts +7 -0
  685. package/dist/app/chat/tool-cells/FilesChangedSummary.d.ts.map +1 -0
  686. package/dist/app/chat/tool-cells/FilesChangedSummary.js +95 -0
  687. package/dist/app/chat/tool-cells/FilesChangedSummary.js.map +1 -0
  688. package/dist/app/chat/tool-cells/WriteCell.d.ts +14 -0
  689. package/dist/app/chat/tool-cells/WriteCell.d.ts.map +1 -0
  690. package/dist/app/chat/tool-cells/WriteCell.js +24 -0
  691. package/dist/app/chat/tool-cells/WriteCell.js.map +1 -0
  692. package/dist/app/chat/tool-cells/index.d.ts +8 -0
  693. package/dist/app/chat/tool-cells/index.d.ts.map +1 -0
  694. package/dist/app/chat/tool-cells/index.js +5 -0
  695. package/dist/app/chat/tool-cells/index.js.map +1 -0
  696. package/dist/app/context-xray/ContextMeter.d.ts +7 -0
  697. package/dist/app/context-xray/ContextMeter.d.ts.map +1 -0
  698. package/dist/app/context-xray/ContextMeter.js +70 -0
  699. package/dist/app/context-xray/ContextMeter.js.map +1 -0
  700. package/dist/app/context-xray/ContextSegmentRow.d.ts +9 -0
  701. package/dist/app/context-xray/ContextSegmentRow.d.ts.map +1 -0
  702. package/dist/app/context-xray/ContextSegmentRow.js +6 -0
  703. package/dist/app/context-xray/ContextSegmentRow.js.map +1 -0
  704. package/dist/app/context-xray/ContextTreemap.d.ts +7 -0
  705. package/dist/app/context-xray/ContextTreemap.d.ts.map +1 -0
  706. package/dist/app/context-xray/ContextTreemap.js +6 -0
  707. package/dist/app/context-xray/ContextTreemap.js.map +1 -0
  708. package/dist/app/context-xray/ContextXRayPanel.d.ts +9 -0
  709. package/dist/app/context-xray/ContextXRayPanel.d.ts.map +1 -0
  710. package/dist/app/context-xray/ContextXRayPanel.js +28 -0
  711. package/dist/app/context-xray/ContextXRayPanel.js.map +1 -0
  712. package/dist/app/context-xray/SegmentProvenancePopover.d.ts +7 -0
  713. package/dist/app/context-xray/SegmentProvenancePopover.d.ts.map +1 -0
  714. package/dist/app/context-xray/SegmentProvenancePopover.js +6 -0
  715. package/dist/app/context-xray/SegmentProvenancePopover.js.map +1 -0
  716. package/dist/app/context-xray/index.d.ts +6 -0
  717. package/dist/app/context-xray/index.d.ts.map +1 -0
  718. package/dist/app/context-xray/index.js +6 -0
  719. package/dist/app/context-xray/index.js.map +1 -0
  720. package/dist/app/db-admin/DataGrid.d.ts +34 -0
  721. package/dist/app/db-admin/DataGrid.d.ts.map +1 -0
  722. package/dist/app/db-admin/DataGrid.js +204 -0
  723. package/dist/app/db-admin/DataGrid.js.map +1 -0
  724. package/dist/app/db-admin/DbAdminPage.d.ts +10 -0
  725. package/dist/app/db-admin/DbAdminPage.d.ts.map +1 -0
  726. package/dist/app/db-admin/DbAdminPage.js +58 -0
  727. package/dist/app/db-admin/DbAdminPage.js.map +1 -0
  728. package/dist/app/db-admin/DevDatabaseLink.d.ts +6 -0
  729. package/dist/app/db-admin/DevDatabaseLink.d.ts.map +1 -0
  730. package/dist/app/db-admin/DevDatabaseLink.js +4 -0
  731. package/dist/app/db-admin/DevDatabaseLink.js.map +1 -0
  732. package/dist/app/db-admin/EditableCell.d.ts +18 -0
  733. package/dist/app/db-admin/EditableCell.d.ts.map +1 -0
  734. package/dist/app/db-admin/EditableCell.js +145 -0
  735. package/dist/app/db-admin/EditableCell.js.map +1 -0
  736. package/dist/app/db-admin/FilterBar.d.ts +8 -0
  737. package/dist/app/db-admin/FilterBar.d.ts.map +1 -0
  738. package/dist/app/db-admin/FilterBar.js +68 -0
  739. package/dist/app/db-admin/FilterBar.js.map +1 -0
  740. package/dist/app/db-admin/ResultsGrid.d.ts +6 -0
  741. package/dist/app/db-admin/ResultsGrid.d.ts.map +1 -0
  742. package/dist/app/db-admin/ResultsGrid.js +33 -0
  743. package/dist/app/db-admin/ResultsGrid.js.map +1 -0
  744. package/dist/app/db-admin/RowSidePanel.d.ts +12 -0
  745. package/dist/app/db-admin/RowSidePanel.d.ts.map +1 -0
  746. package/dist/app/db-admin/RowSidePanel.js +100 -0
  747. package/dist/app/db-admin/RowSidePanel.js.map +1 -0
  748. package/dist/app/db-admin/SqlEditor.d.ts +8 -0
  749. package/dist/app/db-admin/SqlEditor.d.ts.map +1 -0
  750. package/dist/app/db-admin/SqlEditor.js +318 -0
  751. package/dist/app/db-admin/SqlEditor.js.map +1 -0
  752. package/dist/app/db-admin/TableBrowser.d.ts +10 -0
  753. package/dist/app/db-admin/TableBrowser.d.ts.map +1 -0
  754. package/dist/app/db-admin/TableBrowser.js +56 -0
  755. package/dist/app/db-admin/TableBrowser.js.map +1 -0
  756. package/dist/app/db-admin/TableEditor.d.ts +10 -0
  757. package/dist/app/db-admin/TableEditor.d.ts.map +1 -0
  758. package/dist/app/db-admin/TableEditor.js +258 -0
  759. package/dist/app/db-admin/TableEditor.js.map +1 -0
  760. package/dist/app/db-admin/cell-format.d.ts +21 -0
  761. package/dist/app/db-admin/cell-format.d.ts.map +1 -0
  762. package/dist/app/db-admin/cell-format.js +188 -0
  763. package/dist/app/db-admin/cell-format.js.map +1 -0
  764. package/dist/app/db-admin/changeset.d.ts +36 -0
  765. package/dist/app/db-admin/changeset.d.ts.map +1 -0
  766. package/dist/app/db-admin/changeset.js +164 -0
  767. package/dist/app/db-admin/changeset.js.map +1 -0
  768. package/dist/app/db-admin/export-utils.d.ts +5 -0
  769. package/dist/app/db-admin/export-utils.d.ts.map +1 -0
  770. package/dist/app/db-admin/export-utils.js +53 -0
  771. package/dist/app/db-admin/export-utils.js.map +1 -0
  772. package/dist/app/db-admin/index.d.ts +7 -0
  773. package/dist/app/db-admin/index.d.ts.map +1 -0
  774. package/dist/app/db-admin/index.js +7 -0
  775. package/dist/app/db-admin/index.js.map +1 -0
  776. package/dist/app/db-admin/sql-storage.d.ts +16 -0
  777. package/dist/app/db-admin/sql-storage.d.ts.map +1 -0
  778. package/dist/app/db-admin/sql-storage.js +95 -0
  779. package/dist/app/db-admin/sql-storage.js.map +1 -0
  780. package/dist/app/db-admin/storage.d.ts +13 -0
  781. package/dist/app/db-admin/storage.d.ts.map +1 -0
  782. package/dist/app/db-admin/storage.js +47 -0
  783. package/dist/app/db-admin/storage.js.map +1 -0
  784. package/dist/app/db-admin/useAgentSync.d.ts +13 -0
  785. package/dist/app/db-admin/useAgentSync.d.ts.map +1 -0
  786. package/dist/app/db-admin/useAgentSync.js +142 -0
  787. package/dist/app/db-admin/useAgentSync.js.map +1 -0
  788. package/dist/app/db-admin/useDbAdmin.d.ts +23 -0
  789. package/dist/app/db-admin/useDbAdmin.d.ts.map +1 -0
  790. package/dist/app/db-admin/useDbAdmin.js +139 -0
  791. package/dist/app/db-admin/useDbAdmin.js.map +1 -0
  792. package/dist/app/dev-overlay/DevOverlay.d.ts +7 -0
  793. package/dist/app/dev-overlay/DevOverlay.d.ts.map +1 -0
  794. package/dist/app/dev-overlay/DevOverlay.js +296 -0
  795. package/dist/app/dev-overlay/DevOverlay.js.map +1 -0
  796. package/dist/app/dev-overlay/index.d.ts +2 -0
  797. package/dist/app/dev-overlay/index.d.ts.map +1 -0
  798. package/dist/app/dev-overlay/index.js +2 -0
  799. package/dist/app/dev-overlay/index.js.map +1 -0
  800. package/dist/app/eject/remote-mcp-presets.d.ts +18 -0
  801. package/dist/app/eject/remote-mcp-presets.d.ts.map +1 -0
  802. package/dist/app/eject/remote-mcp-presets.js +114 -0
  803. package/dist/app/eject/remote-mcp-presets.js.map +1 -0
  804. package/dist/app/eject/setup-readiness-ui.d.ts +5 -0
  805. package/dist/app/eject/setup-readiness-ui.d.ts.map +1 -0
  806. package/dist/app/eject/setup-readiness-ui.js +4 -0
  807. package/dist/app/eject/setup-readiness-ui.js.map +1 -0
  808. package/dist/app/extensions/AgentNativeExtensionFrame.d.ts +49 -0
  809. package/dist/app/extensions/AgentNativeExtensionFrame.d.ts.map +1 -0
  810. package/dist/app/extensions/AgentNativeExtensionFrame.js +355 -0
  811. package/dist/app/extensions/AgentNativeExtensionFrame.js.map +1 -0
  812. package/dist/app/extensions/EmbeddedExtension.d.ts +12 -0
  813. package/dist/app/extensions/EmbeddedExtension.d.ts.map +1 -0
  814. package/dist/app/extensions/EmbeddedExtension.js +377 -0
  815. package/dist/app/extensions/EmbeddedExtension.js.map +1 -0
  816. package/dist/app/extensions/ExtensionEditor.d.ts +5 -0
  817. package/dist/app/extensions/ExtensionEditor.d.ts.map +1 -0
  818. package/dist/app/extensions/ExtensionEditor.js +173 -0
  819. package/dist/app/extensions/ExtensionEditor.js.map +1 -0
  820. package/dist/app/extensions/ExtensionQueryErrorState.d.ts +8 -0
  821. package/dist/app/extensions/ExtensionQueryErrorState.d.ts.map +1 -0
  822. package/dist/app/extensions/ExtensionQueryErrorState.js +11 -0
  823. package/dist/app/extensions/ExtensionQueryErrorState.js.map +1 -0
  824. package/dist/app/extensions/ExtensionSlot.d.ts +10 -0
  825. package/dist/app/extensions/ExtensionSlot.d.ts.map +1 -0
  826. package/dist/app/extensions/ExtensionSlot.js +146 -0
  827. package/dist/app/extensions/ExtensionSlot.js.map +1 -0
  828. package/dist/app/extensions/ExtensionViewer.d.ts +5 -0
  829. package/dist/app/extensions/ExtensionViewer.d.ts.map +1 -0
  830. package/dist/app/extensions/ExtensionViewer.js +789 -0
  831. package/dist/app/extensions/ExtensionViewer.js.map +1 -0
  832. package/dist/app/extensions/ExtensionViewerPage.d.ts +2 -0
  833. package/dist/app/extensions/ExtensionViewerPage.d.ts.map +1 -0
  834. package/dist/app/extensions/ExtensionViewerPage.js +31 -0
  835. package/dist/app/extensions/ExtensionViewerPage.js.map +1 -0
  836. package/dist/app/extensions/ExtensionsListPage.d.ts +5 -0
  837. package/dist/app/extensions/ExtensionsListPage.d.ts.map +1 -0
  838. package/dist/app/extensions/ExtensionsListPage.js +142 -0
  839. package/dist/app/extensions/ExtensionsListPage.js.map +1 -0
  840. package/dist/app/extensions/ExtensionsSidebarSection.d.ts +2 -0
  841. package/dist/app/extensions/ExtensionsSidebarSection.d.ts.map +1 -0
  842. package/dist/app/extensions/ExtensionsSidebarSection.js +729 -0
  843. package/dist/app/extensions/ExtensionsSidebarSection.js.map +1 -0
  844. package/dist/app/extensions/InlineExtensionFrame.d.ts +25 -0
  845. package/dist/app/extensions/InlineExtensionFrame.d.ts.map +1 -0
  846. package/dist/app/extensions/InlineExtensionFrame.js +518 -0
  847. package/dist/app/extensions/InlineExtensionFrame.js.map +1 -0
  848. package/dist/app/extensions/delete-extension.d.ts +12 -0
  849. package/dist/app/extensions/delete-extension.d.ts.map +1 -0
  850. package/dist/app/extensions/delete-extension.js +51 -0
  851. package/dist/app/extensions/delete-extension.js.map +1 -0
  852. package/dist/app/extensions/extension-load-error.d.ts +7 -0
  853. package/dist/app/extensions/extension-load-error.d.ts.map +1 -0
  854. package/dist/app/extensions/extension-load-error.js +19 -0
  855. package/dist/app/extensions/extension-load-error.js.map +1 -0
  856. package/dist/app/extensions/extension-order.d.ts +7 -0
  857. package/dist/app/extensions/extension-order.d.ts.map +1 -0
  858. package/dist/app/extensions/extension-order.js +47 -0
  859. package/dist/app/extensions/extension-order.js.map +1 -0
  860. package/dist/app/extensions/extension-popularity.d.ts +5 -0
  861. package/dist/app/extensions/extension-popularity.d.ts.map +1 -0
  862. package/dist/app/extensions/extension-popularity.js +52 -0
  863. package/dist/app/extensions/extension-popularity.js.map +1 -0
  864. package/dist/app/extensions/iframe-bridge.d.ts +21 -0
  865. package/dist/app/extensions/iframe-bridge.d.ts.map +1 -0
  866. package/dist/app/extensions/iframe-bridge.js +238 -0
  867. package/dist/app/extensions/iframe-bridge.js.map +1 -0
  868. package/dist/app/extensions/index.d.ts +19 -0
  869. package/dist/app/extensions/index.d.ts.map +1 -0
  870. package/dist/app/extensions/index.js +19 -0
  871. package/dist/app/extensions/index.js.map +1 -0
  872. package/dist/app/extensions/portable-extension.d.ts +81 -0
  873. package/dist/app/extensions/portable-extension.d.ts.map +1 -0
  874. package/dist/app/extensions/portable-extension.js +799 -0
  875. package/dist/app/extensions/portable-extension.js.map +1 -0
  876. package/dist/app/feature-flags/FeatureFlagsPanel.d.ts +10 -0
  877. package/dist/app/feature-flags/FeatureFlagsPanel.d.ts.map +1 -0
  878. package/dist/app/feature-flags/FeatureFlagsPanel.js +154 -0
  879. package/dist/app/feature-flags/FeatureFlagsPanel.js.map +1 -0
  880. package/dist/app/feature-flags/index.d.ts +2 -0
  881. package/dist/app/feature-flags/index.d.ts.map +1 -0
  882. package/dist/app/feature-flags/index.js +2 -0
  883. package/dist/app/feature-flags/index.js.map +1 -0
  884. package/dist/app/feedback/ErrorReportActions.d.ts +13 -0
  885. package/dist/app/feedback/ErrorReportActions.d.ts.map +1 -0
  886. package/dist/app/feedback/ErrorReportActions.js +14 -0
  887. package/dist/app/feedback/ErrorReportActions.js.map +1 -0
  888. package/dist/app/feedback/FeedbackButton.d.ts +31 -0
  889. package/dist/app/feedback/FeedbackButton.d.ts.map +1 -0
  890. package/dist/app/feedback/FeedbackButton.js +423 -0
  891. package/dist/app/feedback/FeedbackButton.js.map +1 -0
  892. package/dist/app/feedback/index.d.ts +4 -0
  893. package/dist/app/feedback/index.d.ts.map +1 -0
  894. package/dist/app/feedback/index.js +4 -0
  895. package/dist/app/feedback/index.js.map +1 -0
  896. package/dist/app/i18n/catalog.d.ts +5 -0
  897. package/dist/app/i18n/catalog.d.ts.map +1 -0
  898. package/dist/app/i18n/catalog.js +109 -0
  899. package/dist/app/i18n/catalog.js.map +1 -0
  900. package/dist/app/i18n/catalogs/ar-SA.d.ts +4 -0
  901. package/dist/app/i18n/catalogs/ar-SA.d.ts.map +1 -0
  902. package/dist/app/i18n/catalogs/ar-SA.js +2219 -0
  903. package/dist/app/i18n/catalogs/ar-SA.js.map +1 -0
  904. package/dist/app/i18n/catalogs/de-DE.d.ts +4 -0
  905. package/dist/app/i18n/catalogs/de-DE.d.ts.map +1 -0
  906. package/dist/app/i18n/catalogs/de-DE.js +2147 -0
  907. package/dist/app/i18n/catalogs/de-DE.js.map +1 -0
  908. package/dist/app/i18n/catalogs/en-US.d.ts +2147 -0
  909. package/dist/app/i18n/catalogs/en-US.d.ts.map +1 -0
  910. package/dist/app/i18n/catalogs/en-US.js +2147 -0
  911. package/dist/app/i18n/catalogs/en-US.js.map +1 -0
  912. package/dist/app/i18n/catalogs/es-ES.d.ts +4 -0
  913. package/dist/app/i18n/catalogs/es-ES.d.ts.map +1 -0
  914. package/dist/app/i18n/catalogs/es-ES.js +2165 -0
  915. package/dist/app/i18n/catalogs/es-ES.js.map +1 -0
  916. package/dist/app/i18n/catalogs/fr-FR.d.ts +4 -0
  917. package/dist/app/i18n/catalogs/fr-FR.d.ts.map +1 -0
  918. package/dist/app/i18n/catalogs/fr-FR.js +2165 -0
  919. package/dist/app/i18n/catalogs/fr-FR.js.map +1 -0
  920. package/dist/app/i18n/catalogs/hi-IN.d.ts +4 -0
  921. package/dist/app/i18n/catalogs/hi-IN.d.ts.map +1 -0
  922. package/dist/app/i18n/catalogs/hi-IN.js +2147 -0
  923. package/dist/app/i18n/catalogs/hi-IN.js.map +1 -0
  924. package/dist/app/i18n/catalogs/ja-JP.d.ts +4 -0
  925. package/dist/app/i18n/catalogs/ja-JP.d.ts.map +1 -0
  926. package/dist/app/i18n/catalogs/ja-JP.js +2130 -0
  927. package/dist/app/i18n/catalogs/ja-JP.js.map +1 -0
  928. package/dist/app/i18n/catalogs/ko-KR.d.ts +4 -0
  929. package/dist/app/i18n/catalogs/ko-KR.d.ts.map +1 -0
  930. package/dist/app/i18n/catalogs/ko-KR.js +2130 -0
  931. package/dist/app/i18n/catalogs/ko-KR.js.map +1 -0
  932. package/dist/app/i18n/catalogs/pt-BR.d.ts +4 -0
  933. package/dist/app/i18n/catalogs/pt-BR.d.ts.map +1 -0
  934. package/dist/app/i18n/catalogs/pt-BR.js +2165 -0
  935. package/dist/app/i18n/catalogs/pt-BR.js.map +1 -0
  936. package/dist/app/i18n/catalogs/zh-CN.d.ts +4 -0
  937. package/dist/app/i18n/catalogs/zh-CN.d.ts.map +1 -0
  938. package/dist/app/i18n/catalogs/zh-CN.js +2130 -0
  939. package/dist/app/i18n/catalogs/zh-CN.js.map +1 -0
  940. package/dist/app/i18n/catalogs/zh-TW.d.ts +4 -0
  941. package/dist/app/i18n/catalogs/zh-TW.d.ts.map +1 -0
  942. package/dist/app/i18n/catalogs/zh-TW.js +2130 -0
  943. package/dist/app/i18n/catalogs/zh-TW.js.map +1 -0
  944. package/dist/app/i18n/types.d.ts +8 -0
  945. package/dist/app/i18n/types.d.ts.map +1 -0
  946. package/dist/app/i18n/types.js +2 -0
  947. package/dist/app/i18n/types.js.map +1 -0
  948. package/dist/app/i18n.d.ts +13 -0
  949. package/dist/app/i18n.d.ts.map +1 -0
  950. package/dist/app/i18n.js +49 -0
  951. package/dist/app/i18n.js.map +1 -0
  952. package/dist/app/integrations/BuilderIntegrationPage.d.ts +12 -0
  953. package/dist/app/integrations/BuilderIntegrationPage.d.ts.map +1 -0
  954. package/dist/app/integrations/BuilderIntegrationPage.js +304 -0
  955. package/dist/app/integrations/BuilderIntegrationPage.js.map +1 -0
  956. package/dist/app/integrations/ChannelsPage.d.ts +16 -0
  957. package/dist/app/integrations/ChannelsPage.d.ts.map +1 -0
  958. package/dist/app/integrations/ChannelsPage.js +384 -0
  959. package/dist/app/integrations/ChannelsPage.js.map +1 -0
  960. package/dist/app/integrations/GoogleProductLogo.d.ts +6 -0
  961. package/dist/app/integrations/GoogleProductLogo.d.ts.map +1 -0
  962. package/dist/app/integrations/GoogleProductLogo.js +46 -0
  963. package/dist/app/integrations/GoogleProductLogo.js.map +1 -0
  964. package/dist/app/integrations/IntegrationConnectionChoice.d.ts +17 -0
  965. package/dist/app/integrations/IntegrationConnectionChoice.d.ts.map +1 -0
  966. package/dist/app/integrations/IntegrationConnectionChoice.js +11 -0
  967. package/dist/app/integrations/IntegrationConnectionChoice.js.map +1 -0
  968. package/dist/app/integrations/IntegrationDetailPage.d.ts +15 -0
  969. package/dist/app/integrations/IntegrationDetailPage.d.ts.map +1 -0
  970. package/dist/app/integrations/IntegrationDetailPage.js +337 -0
  971. package/dist/app/integrations/IntegrationDetailPage.js.map +1 -0
  972. package/dist/app/integrations/IntegrationDetailParts.d.ts +56 -0
  973. package/dist/app/integrations/IntegrationDetailParts.d.ts.map +1 -0
  974. package/dist/app/integrations/IntegrationDetailParts.js +69 -0
  975. package/dist/app/integrations/IntegrationDetailParts.js.map +1 -0
  976. package/dist/app/integrations/IntegrationGrid.d.ts +25 -0
  977. package/dist/app/integrations/IntegrationGrid.d.ts.map +1 -0
  978. package/dist/app/integrations/IntegrationGrid.js +22 -0
  979. package/dist/app/integrations/IntegrationGrid.js.map +1 -0
  980. package/dist/app/integrations/IntegrationsPage.d.ts +23 -0
  981. package/dist/app/integrations/IntegrationsPage.d.ts.map +1 -0
  982. package/dist/app/integrations/IntegrationsPage.js +241 -0
  983. package/dist/app/integrations/IntegrationsPage.js.map +1 -0
  984. package/dist/app/integrations/IntegrationsPanel.d.ts +70 -0
  985. package/dist/app/integrations/IntegrationsPanel.d.ts.map +1 -0
  986. package/dist/app/integrations/IntegrationsPanel.js +663 -0
  987. package/dist/app/integrations/IntegrationsPanel.js.map +1 -0
  988. package/dist/app/integrations/channel-extensions.d.ts +30 -0
  989. package/dist/app/integrations/channel-extensions.d.ts.map +1 -0
  990. package/dist/app/integrations/channel-extensions.js +48 -0
  991. package/dist/app/integrations/channel-extensions.js.map +1 -0
  992. package/dist/app/integrations/channel-icons.d.ts +9 -0
  993. package/dist/app/integrations/channel-icons.d.ts.map +1 -0
  994. package/dist/app/integrations/channel-icons.js +15 -0
  995. package/dist/app/integrations/channel-icons.js.map +1 -0
  996. package/dist/app/integrations/index.d.ts +13 -0
  997. package/dist/app/integrations/index.d.ts.map +1 -0
  998. package/dist/app/integrations/index.js +13 -0
  999. package/dist/app/integrations/index.js.map +1 -0
  1000. package/dist/app/integrations/settings-page-link.d.ts +18 -0
  1001. package/dist/app/integrations/settings-page-link.d.ts.map +1 -0
  1002. package/dist/app/integrations/settings-page-link.js +32 -0
  1003. package/dist/app/integrations/settings-page-link.js.map +1 -0
  1004. package/dist/app/labs/ExperimentsSettings.d.ts +9 -0
  1005. package/dist/app/labs/ExperimentsSettings.d.ts.map +1 -0
  1006. package/dist/app/labs/ExperimentsSettings.js +6 -0
  1007. package/dist/app/labs/ExperimentsSettings.js.map +1 -0
  1008. package/dist/app/labs/LabsSettings.d.ts +15 -0
  1009. package/dist/app/labs/LabsSettings.d.ts.map +1 -0
  1010. package/dist/app/labs/LabsSettings.js +72 -0
  1011. package/dist/app/labs/LabsSettings.js.map +1 -0
  1012. package/dist/app/labs/index.d.ts +3 -0
  1013. package/dist/app/labs/index.d.ts.map +1 -0
  1014. package/dist/app/labs/index.js +3 -0
  1015. package/dist/app/labs/index.js.map +1 -0
  1016. package/dist/app/notifications/NotificationsBell.d.ts +11 -0
  1017. package/dist/app/notifications/NotificationsBell.d.ts.map +1 -0
  1018. package/dist/app/notifications/NotificationsBell.js +190 -0
  1019. package/dist/app/notifications/NotificationsBell.js.map +1 -0
  1020. package/dist/app/notifications/index.d.ts +2 -0
  1021. package/dist/app/notifications/index.d.ts.map +1 -0
  1022. package/dist/app/notifications/index.js +2 -0
  1023. package/dist/app/notifications/index.js.map +1 -0
  1024. package/dist/app/observability/ObservabilityDashboard.d.ts +31 -0
  1025. package/dist/app/observability/ObservabilityDashboard.d.ts.map +1 -0
  1026. package/dist/app/observability/ObservabilityDashboard.js +1210 -0
  1027. package/dist/app/observability/ObservabilityDashboard.js.map +1 -0
  1028. package/dist/app/observability/ObservabilityReviewSummaryButton.d.ts +12 -0
  1029. package/dist/app/observability/ObservabilityReviewSummaryButton.d.ts.map +1 -0
  1030. package/dist/app/observability/ObservabilityReviewSummaryButton.js +61 -0
  1031. package/dist/app/observability/ObservabilityReviewSummaryButton.js.map +1 -0
  1032. package/dist/app/observability/OutputPreview.d.ts +51 -0
  1033. package/dist/app/observability/OutputPreview.d.ts.map +1 -0
  1034. package/dist/app/observability/OutputPreview.js +572 -0
  1035. package/dist/app/observability/OutputPreview.js.map +1 -0
  1036. package/dist/app/observability/ThumbsFeedback.d.ts +8 -0
  1037. package/dist/app/observability/ThumbsFeedback.d.ts.map +1 -0
  1038. package/dist/app/observability/ThumbsFeedback.js +185 -0
  1039. package/dist/app/observability/ThumbsFeedback.js.map +1 -0
  1040. package/dist/app/observability/index.d.ts +4 -0
  1041. package/dist/app/observability/index.d.ts.map +1 -0
  1042. package/dist/app/observability/index.js +4 -0
  1043. package/dist/app/observability/index.js.map +1 -0
  1044. package/dist/app/observability/useObservability.d.ts +168 -0
  1045. package/dist/app/observability/useObservability.d.ts.map +1 -0
  1046. package/dist/app/observability/useObservability.js +200 -0
  1047. package/dist/app/observability/useObservability.js.map +1 -0
  1048. package/dist/app/onboarding/FirstRunOnboarding.d.ts +14 -0
  1049. package/dist/app/onboarding/FirstRunOnboarding.d.ts.map +1 -0
  1050. package/dist/app/onboarding/FirstRunOnboarding.js +540 -0
  1051. package/dist/app/onboarding/FirstRunOnboarding.js.map +1 -0
  1052. package/dist/app/onboarding/NewWorkspaceAppFlow.d.ts +23 -0
  1053. package/dist/app/onboarding/NewWorkspaceAppFlow.d.ts.map +1 -0
  1054. package/dist/app/onboarding/NewWorkspaceAppFlow.js +312 -0
  1055. package/dist/app/onboarding/NewWorkspaceAppFlow.js.map +1 -0
  1056. package/dist/app/onboarding/OnboardingBanner.d.ts +8 -0
  1057. package/dist/app/onboarding/OnboardingBanner.d.ts.map +1 -0
  1058. package/dist/app/onboarding/OnboardingBanner.js +36 -0
  1059. package/dist/app/onboarding/OnboardingBanner.js.map +1 -0
  1060. package/dist/app/onboarding/OnboardingPanel.d.ts +8 -0
  1061. package/dist/app/onboarding/OnboardingPanel.d.ts.map +1 -0
  1062. package/dist/app/onboarding/OnboardingPanel.js +521 -0
  1063. package/dist/app/onboarding/OnboardingPanel.js.map +1 -0
  1064. package/dist/app/onboarding/OnboardingStepLayout.d.ts +12 -0
  1065. package/dist/app/onboarding/OnboardingStepLayout.d.ts.map +1 -0
  1066. package/dist/app/onboarding/OnboardingStepLayout.js +7 -0
  1067. package/dist/app/onboarding/OnboardingStepLayout.js.map +1 -0
  1068. package/dist/app/onboarding/SetupButton.d.ts +4 -0
  1069. package/dist/app/onboarding/SetupButton.d.ts.map +1 -0
  1070. package/dist/app/onboarding/SetupButton.js +37 -0
  1071. package/dist/app/onboarding/SetupButton.js.map +1 -0
  1072. package/dist/app/onboarding/first-run-startup-gate.d.ts +8 -0
  1073. package/dist/app/onboarding/first-run-startup-gate.d.ts.map +1 -0
  1074. package/dist/app/onboarding/first-run-startup-gate.js +85 -0
  1075. package/dist/app/onboarding/first-run-startup-gate.js.map +1 -0
  1076. package/dist/app/onboarding/index.d.ts +8 -0
  1077. package/dist/app/onboarding/index.d.ts.map +1 -0
  1078. package/dist/app/onboarding/index.js +8 -0
  1079. package/dist/app/onboarding/index.js.map +1 -0
  1080. package/dist/app/org/AppsAccessSection.d.ts +12 -0
  1081. package/dist/app/org/AppsAccessSection.d.ts.map +1 -0
  1082. package/dist/app/org/AppsAccessSection.js +47 -0
  1083. package/dist/app/org/AppsAccessSection.js.map +1 -0
  1084. package/dist/app/org/AuthenticationSection.d.ts +15 -0
  1085. package/dist/app/org/AuthenticationSection.d.ts.map +1 -0
  1086. package/dist/app/org/AuthenticationSection.js +179 -0
  1087. package/dist/app/org/AuthenticationSection.js.map +1 -0
  1088. package/dist/app/org/BulkInviteForm.d.ts +8 -0
  1089. package/dist/app/org/BulkInviteForm.d.ts.map +1 -0
  1090. package/dist/app/org/BulkInviteForm.js +185 -0
  1091. package/dist/app/org/BulkInviteForm.js.map +1 -0
  1092. package/dist/app/org/GroupsSection.d.ts +37 -0
  1093. package/dist/app/org/GroupsSection.d.ts.map +1 -0
  1094. package/dist/app/org/GroupsSection.js +152 -0
  1095. package/dist/app/org/GroupsSection.js.map +1 -0
  1096. package/dist/app/org/InvitationBanner.d.ts +5 -0
  1097. package/dist/app/org/InvitationBanner.d.ts.map +1 -0
  1098. package/dist/app/org/InvitationBanner.js +49 -0
  1099. package/dist/app/org/InvitationBanner.js.map +1 -0
  1100. package/dist/app/org/MemberAppRoles.d.ts +12 -0
  1101. package/dist/app/org/MemberAppRoles.d.ts.map +1 -0
  1102. package/dist/app/org/MemberAppRoles.js +100 -0
  1103. package/dist/app/org/MemberAppRoles.js.map +1 -0
  1104. package/dist/app/org/MembersSection.d.ts +75 -0
  1105. package/dist/app/org/MembersSection.d.ts.map +1 -0
  1106. package/dist/app/org/MembersSection.js +267 -0
  1107. package/dist/app/org/MembersSection.js.map +1 -0
  1108. package/dist/app/org/OrgGeneralSection.d.ts +29 -0
  1109. package/dist/app/org/OrgGeneralSection.d.ts.map +1 -0
  1110. package/dist/app/org/OrgGeneralSection.js +183 -0
  1111. package/dist/app/org/OrgGeneralSection.js.map +1 -0
  1112. package/dist/app/org/OrgIdentitySettings.d.ts +12 -0
  1113. package/dist/app/org/OrgIdentitySettings.d.ts.map +1 -0
  1114. package/dist/app/org/OrgIdentitySettings.js +124 -0
  1115. package/dist/app/org/OrgIdentitySettings.js.map +1 -0
  1116. package/dist/app/org/OrgSwitcher.d.ts +58 -0
  1117. package/dist/app/org/OrgSwitcher.d.ts.map +1 -0
  1118. package/dist/app/org/OrgSwitcher.js +273 -0
  1119. package/dist/app/org/OrgSwitcher.js.map +1 -0
  1120. package/dist/app/org/RequireActiveOrg.d.ts +9 -0
  1121. package/dist/app/org/RequireActiveOrg.d.ts.map +1 -0
  1122. package/dist/app/org/RequireActiveOrg.js +59 -0
  1123. package/dist/app/org/RequireActiveOrg.js.map +1 -0
  1124. package/dist/app/org/RequirePermission.d.ts +8 -0
  1125. package/dist/app/org/RequirePermission.d.ts.map +1 -0
  1126. package/dist/app/org/RequirePermission.js +6 -0
  1127. package/dist/app/org/RequirePermission.js.map +1 -0
  1128. package/dist/app/org/SuccessorPicker.d.ts +19 -0
  1129. package/dist/app/org/SuccessorPicker.d.ts.map +1 -0
  1130. package/dist/app/org/SuccessorPicker.js +48 -0
  1131. package/dist/app/org/SuccessorPicker.js.map +1 -0
  1132. package/dist/app/org/TeamOnboardingCards.d.ts +10 -0
  1133. package/dist/app/org/TeamOnboardingCards.d.ts.map +1 -0
  1134. package/dist/app/org/TeamOnboardingCards.js +55 -0
  1135. package/dist/app/org/TeamOnboardingCards.js.map +1 -0
  1136. package/dist/app/org/TeamPage.d.ts +16 -0
  1137. package/dist/app/org/TeamPage.d.ts.map +1 -0
  1138. package/dist/app/org/TeamPage.js +36 -0
  1139. package/dist/app/org/TeamPage.js.map +1 -0
  1140. package/dist/app/org/TeamPrimitives.d.ts +25 -0
  1141. package/dist/app/org/TeamPrimitives.d.ts.map +1 -0
  1142. package/dist/app/org/TeamPrimitives.js +41 -0
  1143. package/dist/app/org/TeamPrimitives.js.map +1 -0
  1144. package/dist/app/org/WorkspaceNotice.d.ts +4 -0
  1145. package/dist/app/org/WorkspaceNotice.d.ts.map +1 -0
  1146. package/dist/app/org/WorkspaceNotice.js +44 -0
  1147. package/dist/app/org/WorkspaceNotice.js.map +1 -0
  1148. package/dist/app/org/index.d.ts +23 -0
  1149. package/dist/app/org/index.d.ts.map +1 -0
  1150. package/dist/app/org/index.js +20 -0
  1151. package/dist/app/org/index.js.map +1 -0
  1152. package/dist/app/org/pages/OrgAppsPage.d.ts +6 -0
  1153. package/dist/app/org/pages/OrgAppsPage.d.ts.map +1 -0
  1154. package/dist/app/org/pages/OrgAppsPage.js +59 -0
  1155. package/dist/app/org/pages/OrgAppsPage.js.map +1 -0
  1156. package/dist/app/org/pages/OrgAuthenticationPage.d.ts +10 -0
  1157. package/dist/app/org/pages/OrgAuthenticationPage.d.ts.map +1 -0
  1158. package/dist/app/org/pages/OrgAuthenticationPage.js +60 -0
  1159. package/dist/app/org/pages/OrgAuthenticationPage.js.map +1 -0
  1160. package/dist/app/org/pages/OrgGeneralPage.d.ts +3 -0
  1161. package/dist/app/org/pages/OrgGeneralPage.d.ts.map +1 -0
  1162. package/dist/app/org/pages/OrgGeneralPage.js +97 -0
  1163. package/dist/app/org/pages/OrgGeneralPage.js.map +1 -0
  1164. package/dist/app/org/pages/OrgMembersPage.d.ts +11 -0
  1165. package/dist/app/org/pages/OrgMembersPage.d.ts.map +1 -0
  1166. package/dist/app/org/pages/OrgMembersPage.js +152 -0
  1167. package/dist/app/org/pages/OrgMembersPage.js.map +1 -0
  1168. package/dist/app/org/pages/OrgPageGate.d.ts +20 -0
  1169. package/dist/app/org/pages/OrgPageGate.d.ts.map +1 -0
  1170. package/dist/app/org/pages/OrgPageGate.js +38 -0
  1171. package/dist/app/org/pages/OrgPageGate.js.map +1 -0
  1172. package/dist/app/org/workspace-app-links.d.ts +38 -0
  1173. package/dist/app/org/workspace-app-links.d.ts.map +1 -0
  1174. package/dist/app/org/workspace-app-links.js +312 -0
  1175. package/dist/app/org/workspace-app-links.js.map +1 -0
  1176. package/dist/app/progress/RunsTray.d.ts +17 -0
  1177. package/dist/app/progress/RunsTray.d.ts.map +1 -0
  1178. package/dist/app/progress/RunsTray.js +366 -0
  1179. package/dist/app/progress/RunsTray.js.map +1 -0
  1180. package/dist/app/progress/index.d.ts +2 -0
  1181. package/dist/app/progress/index.d.ts.map +1 -0
  1182. package/dist/app/progress/index.js +2 -0
  1183. package/dist/app/progress/index.js.map +1 -0
  1184. package/dist/app/providers/AppProviders.d.ts +30 -0
  1185. package/dist/app/providers/AppProviders.d.ts.map +1 -0
  1186. package/dist/app/providers/AppProviders.js +233 -0
  1187. package/dist/app/providers/AppProviders.js.map +1 -0
  1188. package/dist/app/providers/index.d.ts +2 -0
  1189. package/dist/app/providers/index.d.ts.map +1 -0
  1190. package/dist/app/providers/index.js +2 -0
  1191. package/dist/app/providers/index.js.map +1 -0
  1192. package/dist/app/resources/BuiltinCapabilityDetail.d.ts +11 -0
  1193. package/dist/app/resources/BuiltinCapabilityDetail.d.ts.map +1 -0
  1194. package/dist/app/resources/BuiltinCapabilityDetail.js +51 -0
  1195. package/dist/app/resources/BuiltinCapabilityDetail.js.map +1 -0
  1196. package/dist/app/resources/McpAccessSettings.d.ts +11 -0
  1197. package/dist/app/resources/McpAccessSettings.d.ts.map +1 -0
  1198. package/dist/app/resources/McpAccessSettings.js +118 -0
  1199. package/dist/app/resources/McpAccessSettings.js.map +1 -0
  1200. package/dist/app/resources/McpAgentKitConnectionRequest.d.ts +22 -0
  1201. package/dist/app/resources/McpAgentKitConnectionRequest.d.ts.map +1 -0
  1202. package/dist/app/resources/McpAgentKitConnectionRequest.js +42 -0
  1203. package/dist/app/resources/McpAgentKitConnectionRequest.js.map +1 -0
  1204. package/dist/app/resources/McpConnectionSuggestion.d.ts +19 -0
  1205. package/dist/app/resources/McpConnectionSuggestion.d.ts.map +1 -0
  1206. package/dist/app/resources/McpConnectionSuggestion.js +207 -0
  1207. package/dist/app/resources/McpConnectionSuggestion.js.map +1 -0
  1208. package/dist/app/resources/McpIntegrationDialog.d.ts +21 -0
  1209. package/dist/app/resources/McpIntegrationDialog.d.ts.map +1 -0
  1210. package/dist/app/resources/McpIntegrationDialog.js +694 -0
  1211. package/dist/app/resources/McpIntegrationDialog.js.map +1 -0
  1212. package/dist/app/resources/McpIntegrationDialogDeferred.d.ts +6 -0
  1213. package/dist/app/resources/McpIntegrationDialogDeferred.d.ts.map +1 -0
  1214. package/dist/app/resources/McpIntegrationDialogDeferred.js +17 -0
  1215. package/dist/app/resources/McpIntegrationDialogDeferred.js.map +1 -0
  1216. package/dist/app/resources/McpIntegrationLogo.d.ts +12 -0
  1217. package/dist/app/resources/McpIntegrationLogo.d.ts.map +1 -0
  1218. package/dist/app/resources/McpIntegrationLogo.js +15 -0
  1219. package/dist/app/resources/McpIntegrationLogo.js.map +1 -0
  1220. package/dist/app/resources/McpServerDetail.d.ts +8 -0
  1221. package/dist/app/resources/McpServerDetail.d.ts.map +1 -0
  1222. package/dist/app/resources/McpServerDetail.js +59 -0
  1223. package/dist/app/resources/McpServerDetail.js.map +1 -0
  1224. package/dist/app/resources/ResourceEditor.d.ts +12 -0
  1225. package/dist/app/resources/ResourceEditor.d.ts.map +1 -0
  1226. package/dist/app/resources/ResourceEditor.js +442 -0
  1227. package/dist/app/resources/ResourceEditor.js.map +1 -0
  1228. package/dist/app/resources/ResourceSettingsGroups.d.ts +71 -0
  1229. package/dist/app/resources/ResourceSettingsGroups.d.ts.map +1 -0
  1230. package/dist/app/resources/ResourceSettingsGroups.js +163 -0
  1231. package/dist/app/resources/ResourceSettingsGroups.js.map +1 -0
  1232. package/dist/app/resources/ResourceTree.d.ts +31 -0
  1233. package/dist/app/resources/ResourceTree.d.ts.map +1 -0
  1234. package/dist/app/resources/ResourceTree.js +271 -0
  1235. package/dist/app/resources/ResourceTree.js.map +1 -0
  1236. package/dist/app/resources/ResourcesPanel.d.ts +92 -0
  1237. package/dist/app/resources/ResourcesPanel.d.ts.map +1 -0
  1238. package/dist/app/resources/ResourcesPanel.js +1151 -0
  1239. package/dist/app/resources/ResourcesPanel.js.map +1 -0
  1240. package/dist/app/resources/index.d.ts +13 -0
  1241. package/dist/app/resources/index.d.ts.map +1 -0
  1242. package/dist/app/resources/index.js +13 -0
  1243. package/dist/app/resources/index.js.map +1 -0
  1244. package/dist/app/review/InlineMarkdown.d.ts +20 -0
  1245. package/dist/app/review/InlineMarkdown.d.ts.map +1 -0
  1246. package/dist/app/review/InlineMarkdown.js +68 -0
  1247. package/dist/app/review/InlineMarkdown.js.map +1 -0
  1248. package/dist/app/review/ReviewCommentComposer.d.ts +33 -0
  1249. package/dist/app/review/ReviewCommentComposer.d.ts.map +1 -0
  1250. package/dist/app/review/ReviewCommentComposer.js +215 -0
  1251. package/dist/app/review/ReviewCommentComposer.js.map +1 -0
  1252. package/dist/app/review/ReviewStatusBadge.d.ts +7 -0
  1253. package/dist/app/review/ReviewStatusBadge.d.ts.map +1 -0
  1254. package/dist/app/review/ReviewStatusBadge.js +19 -0
  1255. package/dist/app/review/ReviewStatusBadge.js.map +1 -0
  1256. package/dist/app/review/ReviewThreadPanel.d.ts +88 -0
  1257. package/dist/app/review/ReviewThreadPanel.d.ts.map +1 -0
  1258. package/dist/app/review/ReviewThreadPanel.js +742 -0
  1259. package/dist/app/review/ReviewThreadPanel.js.map +1 -0
  1260. package/dist/app/review/index.d.ts +5 -0
  1261. package/dist/app/review/index.d.ts.map +1 -0
  1262. package/dist/app/review/index.js +5 -0
  1263. package/dist/app/review/index.js.map +1 -0
  1264. package/dist/app/settings/AccountSettingsCard.d.ts +9 -0
  1265. package/dist/app/settings/AccountSettingsCard.d.ts.map +1 -0
  1266. package/dist/app/settings/AccountSettingsCard.js +169 -0
  1267. package/dist/app/settings/AccountSettingsCard.js.map +1 -0
  1268. package/dist/app/settings/AgentDirectorySection.d.ts +14 -0
  1269. package/dist/app/settings/AgentDirectorySection.d.ts.map +1 -0
  1270. package/dist/app/settings/AgentDirectorySection.js +65 -0
  1271. package/dist/app/settings/AgentDirectorySection.js.map +1 -0
  1272. package/dist/app/settings/AgentPersonalizationSettings.d.ts +2 -0
  1273. package/dist/app/settings/AgentPersonalizationSettings.d.ts.map +1 -0
  1274. package/dist/app/settings/AgentPersonalizationSettings.js +115 -0
  1275. package/dist/app/settings/AgentPersonalizationSettings.js.map +1 -0
  1276. package/dist/app/settings/AgentProviderPicker.d.ts +12 -0
  1277. package/dist/app/settings/AgentProviderPicker.d.ts.map +1 -0
  1278. package/dist/app/settings/AgentProviderPicker.js +47 -0
  1279. package/dist/app/settings/AgentProviderPicker.js.map +1 -0
  1280. package/dist/app/settings/AgentsSection.d.ts +130 -0
  1281. package/dist/app/settings/AgentsSection.d.ts.map +1 -0
  1282. package/dist/app/settings/AgentsSection.js +1079 -0
  1283. package/dist/app/settings/AgentsSection.js.map +1 -0
  1284. package/dist/app/settings/ApiKeySettings.d.ts +6 -0
  1285. package/dist/app/settings/ApiKeySettings.d.ts.map +1 -0
  1286. package/dist/app/settings/ApiKeySettings.js +200 -0
  1287. package/dist/app/settings/ApiKeySettings.js.map +1 -0
  1288. package/dist/app/settings/AutomationsSection.d.ts +4 -0
  1289. package/dist/app/settings/AutomationsSection.d.ts.map +1 -0
  1290. package/dist/app/settings/AutomationsSection.js +18 -0
  1291. package/dist/app/settings/AutomationsSection.js.map +1 -0
  1292. package/dist/app/settings/BuilderConnectPopover.d.ts +28 -0
  1293. package/dist/app/settings/BuilderConnectPopover.d.ts.map +1 -0
  1294. package/dist/app/settings/BuilderConnectPopover.js +94 -0
  1295. package/dist/app/settings/BuilderConnectPopover.js.map +1 -0
  1296. package/dist/app/settings/DemoModeSection.d.ts +4 -0
  1297. package/dist/app/settings/DemoModeSection.d.ts.map +1 -0
  1298. package/dist/app/settings/DemoModeSection.js +12 -0
  1299. package/dist/app/settings/DemoModeSection.js.map +1 -0
  1300. package/dist/app/settings/ExtensionsSettingsContent.d.ts +2 -0
  1301. package/dist/app/settings/ExtensionsSettingsContent.d.ts.map +1 -0
  1302. package/dist/app/settings/ExtensionsSettingsContent.js +10 -0
  1303. package/dist/app/settings/ExtensionsSettingsContent.js.map +1 -0
  1304. package/dist/app/settings/KeyProviderTile.d.ts +12 -0
  1305. package/dist/app/settings/KeyProviderTile.d.ts.map +1 -0
  1306. package/dist/app/settings/KeyProviderTile.js +59 -0
  1307. package/dist/app/settings/KeyProviderTile.js.map +1 -0
  1308. package/dist/app/settings/NewKeyMenu.d.ts +26 -0
  1309. package/dist/app/settings/NewKeyMenu.d.ts.map +1 -0
  1310. package/dist/app/settings/NewKeyMenu.js +40 -0
  1311. package/dist/app/settings/NewKeyMenu.js.map +1 -0
  1312. package/dist/app/settings/ProviderSetupForm.d.ts +24 -0
  1313. package/dist/app/settings/ProviderSetupForm.d.ts.map +1 -0
  1314. package/dist/app/settings/ProviderSetupForm.js +253 -0
  1315. package/dist/app/settings/ProviderSetupForm.js.map +1 -0
  1316. package/dist/app/settings/SchedulingTimezoneField.d.ts +4 -0
  1317. package/dist/app/settings/SchedulingTimezoneField.d.ts.map +1 -0
  1318. package/dist/app/settings/SchedulingTimezoneField.js +25 -0
  1319. package/dist/app/settings/SchedulingTimezoneField.js.map +1 -0
  1320. package/dist/app/settings/SecretsSection.d.ts +6 -0
  1321. package/dist/app/settings/SecretsSection.d.ts.map +1 -0
  1322. package/dist/app/settings/SecretsSection.js +469 -0
  1323. package/dist/app/settings/SecretsSection.js.map +1 -0
  1324. package/dist/app/settings/SettingsCrossLinkHint.d.ts +6 -0
  1325. package/dist/app/settings/SettingsCrossLinkHint.d.ts.map +1 -0
  1326. package/dist/app/settings/SettingsCrossLinkHint.js +5 -0
  1327. package/dist/app/settings/SettingsCrossLinkHint.js.map +1 -0
  1328. package/dist/app/settings/SettingsPanel.d.ts +52 -0
  1329. package/dist/app/settings/SettingsPanel.d.ts.map +1 -0
  1330. package/dist/app/settings/SettingsPanel.js +1750 -0
  1331. package/dist/app/settings/SettingsPanel.js.map +1 -0
  1332. package/dist/app/settings/SettingsRow.d.ts +22 -0
  1333. package/dist/app/settings/SettingsRow.d.ts.map +1 -0
  1334. package/dist/app/settings/SettingsRow.js +11 -0
  1335. package/dist/app/settings/SettingsRow.js.map +1 -0
  1336. package/dist/app/settings/SettingsSection.d.ts +24 -0
  1337. package/dist/app/settings/SettingsSection.d.ts.map +1 -0
  1338. package/dist/app/settings/SettingsSection.js +62 -0
  1339. package/dist/app/settings/SettingsSection.js.map +1 -0
  1340. package/dist/app/settings/SettingsSkeleton.d.ts +11 -0
  1341. package/dist/app/settings/SettingsSkeleton.d.ts.map +1 -0
  1342. package/dist/app/settings/SettingsSkeleton.js +13 -0
  1343. package/dist/app/settings/SettingsSkeleton.js.map +1 -0
  1344. package/dist/app/settings/SettingsTabsPage.d.ts +123 -0
  1345. package/dist/app/settings/SettingsTabsPage.d.ts.map +1 -0
  1346. package/dist/app/settings/SettingsTabsPage.js +590 -0
  1347. package/dist/app/settings/SettingsTabsPage.js.map +1 -0
  1348. package/dist/app/settings/StorageSettingsForm.d.ts +29 -0
  1349. package/dist/app/settings/StorageSettingsForm.d.ts.map +1 -0
  1350. package/dist/app/settings/StorageSettingsForm.js +283 -0
  1351. package/dist/app/settings/StorageSettingsForm.js.map +1 -0
  1352. package/dist/app/settings/UsageSection.d.ts +19 -0
  1353. package/dist/app/settings/UsageSection.d.ts.map +1 -0
  1354. package/dist/app/settings/UsageSection.js +358 -0
  1355. package/dist/app/settings/UsageSection.js.map +1 -0
  1356. package/dist/app/settings/VoiceTranscriptionSection.d.ts +5 -0
  1357. package/dist/app/settings/VoiceTranscriptionSection.d.ts.map +1 -0
  1358. package/dist/app/settings/VoiceTranscriptionSection.js +443 -0
  1359. package/dist/app/settings/VoiceTranscriptionSection.js.map +1 -0
  1360. package/dist/app/settings/account/PreferencesSettings.d.ts +6 -0
  1361. package/dist/app/settings/account/PreferencesSettings.d.ts.map +1 -0
  1362. package/dist/app/settings/account/PreferencesSettings.js +18 -0
  1363. package/dist/app/settings/account/PreferencesSettings.js.map +1 -0
  1364. package/dist/app/settings/account/ProfileSettings.d.ts +3 -0
  1365. package/dist/app/settings/account/ProfileSettings.d.ts.map +1 -0
  1366. package/dist/app/settings/account/ProfileSettings.js +123 -0
  1367. package/dist/app/settings/account/ProfileSettings.js.map +1 -0
  1368. package/dist/app/settings/account/SecuritySettings.d.ts +3 -0
  1369. package/dist/app/settings/account/SecuritySettings.d.ts.map +1 -0
  1370. package/dist/app/settings/account/SecuritySettings.js +161 -0
  1371. package/dist/app/settings/account/SecuritySettings.js.map +1 -0
  1372. package/dist/app/settings/account/account-copy.d.ts +10 -0
  1373. package/dist/app/settings/account/account-copy.d.ts.map +1 -0
  1374. package/dist/app/settings/account/account-copy.js +25 -0
  1375. package/dist/app/settings/account/account-copy.js.map +1 -0
  1376. package/dist/app/settings/account/account-hooks.d.ts +81 -0
  1377. package/dist/app/settings/account/account-hooks.d.ts.map +1 -0
  1378. package/dist/app/settings/account/account-hooks.js +298 -0
  1379. package/dist/app/settings/account/account-hooks.js.map +1 -0
  1380. package/dist/app/settings/account/search-entries.d.ts +5 -0
  1381. package/dist/app/settings/account/search-entries.d.ts.map +1 -0
  1382. package/dist/app/settings/account/search-entries.js +70 -0
  1383. package/dist/app/settings/account/search-entries.js.map +1 -0
  1384. package/dist/app/settings/agent-settings-search.d.ts +30 -0
  1385. package/dist/app/settings/agent-settings-search.d.ts.map +1 -0
  1386. package/dist/app/settings/agent-settings-search.js +261 -0
  1387. package/dist/app/settings/agent-settings-search.js.map +1 -0
  1388. package/dist/app/settings/api-keys/ApiKeyDialogs.d.ts +51 -0
  1389. package/dist/app/settings/api-keys/ApiKeyDialogs.d.ts.map +1 -0
  1390. package/dist/app/settings/api-keys/ApiKeyDialogs.js +237 -0
  1391. package/dist/app/settings/api-keys/ApiKeyDialogs.js.map +1 -0
  1392. package/dist/app/settings/api-keys/ApiKeysSettingsPage.d.ts +8 -0
  1393. package/dist/app/settings/api-keys/ApiKeysSettingsPage.d.ts.map +1 -0
  1394. package/dist/app/settings/api-keys/ApiKeysSettingsPage.js +178 -0
  1395. package/dist/app/settings/api-keys/ApiKeysSettingsPage.js.map +1 -0
  1396. package/dist/app/settings/api-keys/api-keys-client.d.ts +25 -0
  1397. package/dist/app/settings/api-keys/api-keys-client.d.ts.map +1 -0
  1398. package/dist/app/settings/api-keys/api-keys-client.js +59 -0
  1399. package/dist/app/settings/api-keys/api-keys-client.js.map +1 -0
  1400. package/dist/app/settings/api-keys/api-keys-state.d.ts +51 -0
  1401. package/dist/app/settings/api-keys/api-keys-state.d.ts.map +1 -0
  1402. package/dist/app/settings/api-keys/api-keys-state.js +92 -0
  1403. package/dist/app/settings/api-keys/api-keys-state.js.map +1 -0
  1404. package/dist/app/settings/app-group/AppDefaultModelRow.d.ts +10 -0
  1405. package/dist/app/settings/app-group/AppDefaultModelRow.d.ts.map +1 -0
  1406. package/dist/app/settings/app-group/AppDefaultModelRow.js +125 -0
  1407. package/dist/app/settings/app-group/AppDefaultModelRow.js.map +1 -0
  1408. package/dist/app/settings/app-group/ReadOnlySettingValue.d.ts +6 -0
  1409. package/dist/app/settings/app-group/ReadOnlySettingValue.d.ts.map +1 -0
  1410. package/dist/app/settings/app-group/ReadOnlySettingValue.js +8 -0
  1411. package/dist/app/settings/app-group/ReadOnlySettingValue.js.map +1 -0
  1412. package/dist/app/settings/app-group/SettingsHeaderBadge.d.ts +6 -0
  1413. package/dist/app/settings/app-group/SettingsHeaderBadge.d.ts.map +1 -0
  1414. package/dist/app/settings/app-group/SettingsHeaderBadge.js +11 -0
  1415. package/dist/app/settings/app-group/SettingsHeaderBadge.js.map +1 -0
  1416. package/dist/app/settings/app-settings-tabs.d.ts +18 -0
  1417. package/dist/app/settings/app-settings-tabs.d.ts.map +1 -0
  1418. package/dist/app/settings/app-settings-tabs.js +45 -0
  1419. package/dist/app/settings/app-settings-tabs.js.map +1 -0
  1420. package/dist/app/settings/deferred-builder-connect-popover.d.ts +4 -0
  1421. package/dist/app/settings/deferred-builder-connect-popover.d.ts.map +1 -0
  1422. package/dist/app/settings/deferred-builder-connect-popover.js +15 -0
  1423. package/dist/app/settings/deferred-builder-connect-popover.js.map +1 -0
  1424. package/dist/app/settings/index.d.ts +25 -0
  1425. package/dist/app/settings/index.d.ts.map +1 -0
  1426. package/dist/app/settings/index.js +23 -0
  1427. package/dist/app/settings/index.js.map +1 -0
  1428. package/dist/app/settings/infra/EnvironmentDialogs.d.ts +9 -0
  1429. package/dist/app/settings/infra/EnvironmentDialogs.d.ts.map +1 -0
  1430. package/dist/app/settings/infra/EnvironmentDialogs.js +102 -0
  1431. package/dist/app/settings/infra/EnvironmentDialogs.js.map +1 -0
  1432. package/dist/app/settings/infra/InfrastructureSettingsPage.d.ts +8 -0
  1433. package/dist/app/settings/infra/InfrastructureSettingsPage.d.ts.map +1 -0
  1434. package/dist/app/settings/infra/InfrastructureSettingsPage.js +397 -0
  1435. package/dist/app/settings/infra/InfrastructureSettingsPage.js.map +1 -0
  1436. package/dist/app/settings/infra/ServiceDialog.d.ts +23 -0
  1437. package/dist/app/settings/infra/ServiceDialog.d.ts.map +1 -0
  1438. package/dist/app/settings/infra/ServiceDialog.js +94 -0
  1439. package/dist/app/settings/infra/ServiceDialog.js.map +1 -0
  1440. package/dist/app/settings/infra/infra-page-state.d.ts +86 -0
  1441. package/dist/app/settings/infra/infra-page-state.d.ts.map +1 -0
  1442. package/dist/app/settings/infra/infra-page-state.js +182 -0
  1443. package/dist/app/settings/infra/infra-page-state.js.map +1 -0
  1444. package/dist/app/settings/infra/logos.d.ts +21 -0
  1445. package/dist/app/settings/infra/logos.d.ts.map +1 -0
  1446. package/dist/app/settings/infra/logos.js +21 -0
  1447. package/dist/app/settings/infra/logos.js.map +1 -0
  1448. package/dist/app/settings/managed-secrets.d.ts +19 -0
  1449. package/dist/app/settings/managed-secrets.d.ts.map +1 -0
  1450. package/dist/app/settings/managed-secrets.js +40 -0
  1451. package/dist/app/settings/managed-secrets.js.map +1 -0
  1452. package/dist/app/settings/model/ChatGPTSubscriptionRow.d.ts +3 -0
  1453. package/dist/app/settings/model/ChatGPTSubscriptionRow.d.ts.map +1 -0
  1454. package/dist/app/settings/model/ChatGPTSubscriptionRow.js +95 -0
  1455. package/dist/app/settings/model/ChatGPTSubscriptionRow.js.map +1 -0
  1456. package/dist/app/settings/model/ModelSettingsPage.d.ts +8 -0
  1457. package/dist/app/settings/model/ModelSettingsPage.d.ts.map +1 -0
  1458. package/dist/app/settings/model/ModelSettingsPage.js +490 -0
  1459. package/dist/app/settings/model/ModelSettingsPage.js.map +1 -0
  1460. package/dist/app/settings/model/ProviderDialog.d.ts +38 -0
  1461. package/dist/app/settings/model/ProviderDialog.d.ts.map +1 -0
  1462. package/dist/app/settings/model/ProviderDialog.js +467 -0
  1463. package/dist/app/settings/model/ProviderDialog.js.map +1 -0
  1464. package/dist/app/settings/model/RemoveProviderDialog.d.ts +20 -0
  1465. package/dist/app/settings/model/RemoveProviderDialog.d.ts.map +1 -0
  1466. package/dist/app/settings/model/RemoveProviderDialog.js +93 -0
  1467. package/dist/app/settings/model/RemoveProviderDialog.js.map +1 -0
  1468. package/dist/app/settings/model/RestrictKeysDialog.d.ts +12 -0
  1469. package/dist/app/settings/model/RestrictKeysDialog.d.ts.map +1 -0
  1470. package/dist/app/settings/model/RestrictKeysDialog.js +55 -0
  1471. package/dist/app/settings/model/RestrictKeysDialog.js.map +1 -0
  1472. package/dist/app/settings/model/model-page-state.d.ts +101 -0
  1473. package/dist/app/settings/model/model-page-state.d.ts.map +1 -0
  1474. package/dist/app/settings/model/model-page-state.js +193 -0
  1475. package/dist/app/settings/model/model-page-state.js.map +1 -0
  1476. package/dist/app/settings/recent-prompt-groups.d.ts +13 -0
  1477. package/dist/app/settings/recent-prompt-groups.d.ts.map +1 -0
  1478. package/dist/app/settings/recent-prompt-groups.js +21 -0
  1479. package/dist/app/settings/recent-prompt-groups.js.map +1 -0
  1480. package/dist/app/settings/shell/SettingsShell.d.ts +34 -0
  1481. package/dist/app/settings/shell/SettingsShell.d.ts.map +1 -0
  1482. package/dist/app/settings/shell/SettingsShell.js +573 -0
  1483. package/dist/app/settings/shell/SettingsShell.js.map +1 -0
  1484. package/dist/app/settings/shell/SettingsShellSkeleton.d.ts +5 -0
  1485. package/dist/app/settings/shell/SettingsShellSkeleton.d.ts.map +1 -0
  1486. package/dist/app/settings/shell/SettingsShellSkeleton.js +13 -0
  1487. package/dist/app/settings/shell/SettingsShellSkeleton.js.map +1 -0
  1488. package/dist/app/settings/shell/app-identity.d.ts +15 -0
  1489. package/dist/app/settings/shell/app-identity.d.ts.map +1 -0
  1490. package/dist/app/settings/shell/app-identity.js +50 -0
  1491. package/dist/app/settings/shell/app-identity.js.map +1 -0
  1492. package/dist/app/settings/shell/bridge.d.ts +85 -0
  1493. package/dist/app/settings/shell/bridge.d.ts.map +1 -0
  1494. package/dist/app/settings/shell/bridge.js +187 -0
  1495. package/dist/app/settings/shell/bridge.js.map +1 -0
  1496. package/dist/app/settings/shell/context.d.ts +26 -0
  1497. package/dist/app/settings/shell/context.d.ts.map +1 -0
  1498. package/dist/app/settings/shell/context.js +22 -0
  1499. package/dist/app/settings/shell/context.js.map +1 -0
  1500. package/dist/app/settings/shell/core-pages.d.ts +9 -0
  1501. package/dist/app/settings/shell/core-pages.d.ts.map +1 -0
  1502. package/dist/app/settings/shell/core-pages.js +599 -0
  1503. package/dist/app/settings/shell/core-pages.js.map +1 -0
  1504. package/dist/app/settings/shell/index.d.ts +12 -0
  1505. package/dist/app/settings/shell/index.d.ts.map +1 -0
  1506. package/dist/app/settings/shell/index.js +17 -0
  1507. package/dist/app/settings/shell/index.js.map +1 -0
  1508. package/dist/app/settings/shell/pages/api-keys.d.ts +3 -0
  1509. package/dist/app/settings/shell/pages/api-keys.d.ts.map +1 -0
  1510. package/dist/app/settings/shell/pages/api-keys.js +8 -0
  1511. package/dist/app/settings/shell/pages/api-keys.js.map +1 -0
  1512. package/dist/app/settings/shell/pages/app.d.ts +7 -0
  1513. package/dist/app/settings/shell/pages/app.d.ts.map +1 -0
  1514. package/dist/app/settings/shell/pages/app.js +36 -0
  1515. package/dist/app/settings/shell/pages/app.js.map +1 -0
  1516. package/dist/app/settings/shell/pages/apps.d.ts +2 -0
  1517. package/dist/app/settings/shell/pages/apps.d.ts.map +1 -0
  1518. package/dist/app/settings/shell/pages/apps.js +6 -0
  1519. package/dist/app/settings/shell/pages/apps.js.map +1 -0
  1520. package/dist/app/settings/shell/pages/audit.d.ts +4 -0
  1521. package/dist/app/settings/shell/pages/audit.d.ts.map +1 -0
  1522. package/dist/app/settings/shell/pages/audit.js +200 -0
  1523. package/dist/app/settings/shell/pages/audit.js.map +1 -0
  1524. package/dist/app/settings/shell/pages/auth.d.ts +2 -0
  1525. package/dist/app/settings/shell/pages/auth.d.ts.map +1 -0
  1526. package/dist/app/settings/shell/pages/auth.js +6 -0
  1527. package/dist/app/settings/shell/pages/auth.js.map +1 -0
  1528. package/dist/app/settings/shell/pages/automations.d.ts +8 -0
  1529. package/dist/app/settings/shell/pages/automations.d.ts.map +1 -0
  1530. package/dist/app/settings/shell/pages/automations.js +30 -0
  1531. package/dist/app/settings/shell/pages/automations.js.map +1 -0
  1532. package/dist/app/settings/shell/pages/bridged-tab.d.ts +4 -0
  1533. package/dist/app/settings/shell/pages/bridged-tab.d.ts.map +1 -0
  1534. package/dist/app/settings/shell/pages/bridged-tab.js +6 -0
  1535. package/dist/app/settings/shell/pages/bridged-tab.js.map +1 -0
  1536. package/dist/app/settings/shell/pages/channels.d.ts +3 -0
  1537. package/dist/app/settings/shell/pages/channels.d.ts.map +1 -0
  1538. package/dist/app/settings/shell/pages/channels.js +14 -0
  1539. package/dist/app/settings/shell/pages/channels.js.map +1 -0
  1540. package/dist/app/settings/shell/pages/creative-context.d.ts +8 -0
  1541. package/dist/app/settings/shell/pages/creative-context.d.ts.map +1 -0
  1542. package/dist/app/settings/shell/pages/creative-context.js +18 -0
  1543. package/dist/app/settings/shell/pages/creative-context.js.map +1 -0
  1544. package/dist/app/settings/shell/pages/files.d.ts +2 -0
  1545. package/dist/app/settings/shell/pages/files.d.ts.map +1 -0
  1546. package/dist/app/settings/shell/pages/files.js +39 -0
  1547. package/dist/app/settings/shell/pages/files.js.map +1 -0
  1548. package/dist/app/settings/shell/pages/infra.d.ts +3 -0
  1549. package/dist/app/settings/shell/pages/infra.d.ts.map +1 -0
  1550. package/dist/app/settings/shell/pages/infra.js +6 -0
  1551. package/dist/app/settings/shell/pages/infra.js.map +1 -0
  1552. package/dist/app/settings/shell/pages/instructions.d.ts +2 -0
  1553. package/dist/app/settings/shell/pages/instructions.d.ts.map +1 -0
  1554. package/dist/app/settings/shell/pages/instructions.js +35 -0
  1555. package/dist/app/settings/shell/pages/instructions.js.map +1 -0
  1556. package/dist/app/settings/shell/pages/integrations.d.ts +3 -0
  1557. package/dist/app/settings/shell/pages/integrations.d.ts.map +1 -0
  1558. package/dist/app/settings/shell/pages/integrations.js +23 -0
  1559. package/dist/app/settings/shell/pages/integrations.js.map +1 -0
  1560. package/dist/app/settings/shell/pages/labs.d.ts +3 -0
  1561. package/dist/app/settings/shell/pages/labs.d.ts.map +1 -0
  1562. package/dist/app/settings/shell/pages/labs.js +8 -0
  1563. package/dist/app/settings/shell/pages/labs.js.map +1 -0
  1564. package/dist/app/settings/shell/pages/mcp.d.ts +3 -0
  1565. package/dist/app/settings/shell/pages/mcp.d.ts.map +1 -0
  1566. package/dist/app/settings/shell/pages/mcp.js +27 -0
  1567. package/dist/app/settings/shell/pages/mcp.js.map +1 -0
  1568. package/dist/app/settings/shell/pages/members.d.ts +2 -0
  1569. package/dist/app/settings/shell/pages/members.d.ts.map +1 -0
  1570. package/dist/app/settings/shell/pages/members.js +6 -0
  1571. package/dist/app/settings/shell/pages/members.js.map +1 -0
  1572. package/dist/app/settings/shell/pages/memory.d.ts +2 -0
  1573. package/dist/app/settings/shell/pages/memory.d.ts.map +1 -0
  1574. package/dist/app/settings/shell/pages/memory.js +41 -0
  1575. package/dist/app/settings/shell/pages/memory.js.map +1 -0
  1576. package/dist/app/settings/shell/pages/model.d.ts +3 -0
  1577. package/dist/app/settings/shell/pages/model.d.ts.map +1 -0
  1578. package/dist/app/settings/shell/pages/model.js +13 -0
  1579. package/dist/app/settings/shell/pages/model.js.map +1 -0
  1580. package/dist/app/settings/shell/pages/notifications.d.ts +3 -0
  1581. package/dist/app/settings/shell/pages/notifications.d.ts.map +1 -0
  1582. package/dist/app/settings/shell/pages/notifications.js +5 -0
  1583. package/dist/app/settings/shell/pages/notifications.js.map +1 -0
  1584. package/dist/app/settings/shell/pages/org.d.ts +2 -0
  1585. package/dist/app/settings/shell/pages/org.d.ts.map +1 -0
  1586. package/dist/app/settings/shell/pages/org.js +6 -0
  1587. package/dist/app/settings/shell/pages/org.js.map +1 -0
  1588. package/dist/app/settings/shell/pages/pending.d.ts +3 -0
  1589. package/dist/app/settings/shell/pages/pending.d.ts.map +1 -0
  1590. package/dist/app/settings/shell/pages/pending.js +8 -0
  1591. package/dist/app/settings/shell/pages/pending.js.map +1 -0
  1592. package/dist/app/settings/shell/pages/preferences.d.ts +2 -0
  1593. package/dist/app/settings/shell/pages/preferences.d.ts.map +1 -0
  1594. package/dist/app/settings/shell/pages/preferences.js +6 -0
  1595. package/dist/app/settings/shell/pages/preferences.js.map +1 -0
  1596. package/dist/app/settings/shell/pages/profile.d.ts +2 -0
  1597. package/dist/app/settings/shell/pages/profile.d.ts.map +1 -0
  1598. package/dist/app/settings/shell/pages/profile.js +6 -0
  1599. package/dist/app/settings/shell/pages/profile.js.map +1 -0
  1600. package/dist/app/settings/shell/pages/resource-collection.d.ts +6 -0
  1601. package/dist/app/settings/shell/pages/resource-collection.d.ts.map +1 -0
  1602. package/dist/app/settings/shell/pages/resource-collection.js +11 -0
  1603. package/dist/app/settings/shell/pages/resource-collection.js.map +1 -0
  1604. package/dist/app/settings/shell/pages/resource-settings-page.d.ts +63 -0
  1605. package/dist/app/settings/shell/pages/resource-settings-page.d.ts.map +1 -0
  1606. package/dist/app/settings/shell/pages/resource-settings-page.js +237 -0
  1607. package/dist/app/settings/shell/pages/resource-settings-page.js.map +1 -0
  1608. package/dist/app/settings/shell/pages/security.d.ts +2 -0
  1609. package/dist/app/settings/shell/pages/security.d.ts.map +1 -0
  1610. package/dist/app/settings/shell/pages/security.js +6 -0
  1611. package/dist/app/settings/shell/pages/security.js.map +1 -0
  1612. package/dist/app/settings/shell/pages/skills.d.ts +2 -0
  1613. package/dist/app/settings/shell/pages/skills.d.ts.map +1 -0
  1614. package/dist/app/settings/shell/pages/skills.js +39 -0
  1615. package/dist/app/settings/shell/pages/skills.js.map +1 -0
  1616. package/dist/app/settings/shell/pages/sub-agents.d.ts +27 -0
  1617. package/dist/app/settings/shell/pages/sub-agents.d.ts.map +1 -0
  1618. package/dist/app/settings/shell/pages/sub-agents.js +336 -0
  1619. package/dist/app/settings/shell/pages/sub-agents.js.map +1 -0
  1620. package/dist/app/settings/shell/pages/usage.d.ts +3 -0
  1621. package/dist/app/settings/shell/pages/usage.d.ts.map +1 -0
  1622. package/dist/app/settings/shell/pages/usage.js +6 -0
  1623. package/dist/app/settings/shell/pages/usage.js.map +1 -0
  1624. package/dist/app/settings/shell/pages/whats-new.d.ts +3 -0
  1625. package/dist/app/settings/shell/pages/whats-new.d.ts.map +1 -0
  1626. package/dist/app/settings/shell/pages/whats-new.js +30 -0
  1627. package/dist/app/settings/shell/pages/whats-new.js.map +1 -0
  1628. package/dist/app/settings/shell/registry.d.ts +99 -0
  1629. package/dist/app/settings/shell/registry.d.ts.map +1 -0
  1630. package/dist/app/settings/shell/registry.js +80 -0
  1631. package/dist/app/settings/shell/registry.js.map +1 -0
  1632. package/dist/app/settings/shell/return-path.d.ts +10 -0
  1633. package/dist/app/settings/shell/return-path.d.ts.map +1 -0
  1634. package/dist/app/settings/shell/return-path.js +45 -0
  1635. package/dist/app/settings/shell/return-path.js.map +1 -0
  1636. package/dist/app/settings/shell/routing.d.ts +62 -0
  1637. package/dist/app/settings/shell/routing.d.ts.map +1 -0
  1638. package/dist/app/settings/shell/routing.js +190 -0
  1639. package/dist/app/settings/shell/routing.js.map +1 -0
  1640. package/dist/app/settings/shell/search.d.ts +26 -0
  1641. package/dist/app/settings/shell/search.d.ts.map +1 -0
  1642. package/dist/app/settings/shell/search.js +65 -0
  1643. package/dist/app/settings/shell/search.js.map +1 -0
  1644. package/dist/app/settings/usage/UsageAlerts.d.ts +11 -0
  1645. package/dist/app/settings/usage/UsageAlerts.d.ts.map +1 -0
  1646. package/dist/app/settings/usage/UsageAlerts.js +174 -0
  1647. package/dist/app/settings/usage/UsageAlerts.js.map +1 -0
  1648. package/dist/app/settings/usage/UsageCharts.d.ts +37 -0
  1649. package/dist/app/settings/usage/UsageCharts.d.ts.map +1 -0
  1650. package/dist/app/settings/usage/UsageCharts.js +70 -0
  1651. package/dist/app/settings/usage/UsageCharts.js.map +1 -0
  1652. package/dist/app/settings/usage/UsageGroup.d.ts +18 -0
  1653. package/dist/app/settings/usage/UsageGroup.d.ts.map +1 -0
  1654. package/dist/app/settings/usage/UsageGroup.js +16 -0
  1655. package/dist/app/settings/usage/UsageGroup.js.map +1 -0
  1656. package/dist/app/settings/usage/UsagePage.d.ts +10 -0
  1657. package/dist/app/settings/usage/UsagePage.d.ts.map +1 -0
  1658. package/dist/app/settings/usage/UsagePage.js +283 -0
  1659. package/dist/app/settings/usage/UsagePage.js.map +1 -0
  1660. package/dist/app/settings/usage/usage-model.d.ts +143 -0
  1661. package/dist/app/settings/usage/usage-model.d.ts.map +1 -0
  1662. package/dist/app/settings/usage/usage-model.js +111 -0
  1663. package/dist/app/settings/usage/usage-model.js.map +1 -0
  1664. package/dist/app/settings/use-provider-key-save-scope.d.ts +15 -0
  1665. package/dist/app/settings/use-provider-key-save-scope.d.ts.map +1 -0
  1666. package/dist/app/settings/use-provider-key-save-scope.js +17 -0
  1667. package/dist/app/settings/use-provider-key-save-scope.js.map +1 -0
  1668. package/dist/app/settings/useBuilderStatus.d.ts +176 -0
  1669. package/dist/app/settings/useBuilderStatus.d.ts.map +1 -0
  1670. package/dist/app/settings/useBuilderStatus.js +1313 -0
  1671. package/dist/app/settings/useBuilderStatus.js.map +1 -0
  1672. package/dist/app/settings/useSettingsPanelController.d.ts +22 -0
  1673. package/dist/app/settings/useSettingsPanelController.d.ts.map +1 -0
  1674. package/dist/app/settings/useSettingsPanelController.js +134 -0
  1675. package/dist/app/settings/useSettingsPanelController.js.map +1 -0
  1676. package/dist/app/setup-connections/BuilderConnectCard.d.ts +34 -0
  1677. package/dist/app/setup-connections/BuilderConnectCard.d.ts.map +1 -0
  1678. package/dist/app/setup-connections/BuilderConnectCard.js +185 -0
  1679. package/dist/app/setup-connections/BuilderConnectCard.js.map +1 -0
  1680. package/dist/app/setup-connections/ProviderReadinessBadge.d.ts +8 -0
  1681. package/dist/app/setup-connections/ProviderReadinessBadge.d.ts.map +1 -0
  1682. package/dist/app/setup-connections/ProviderReadinessBadge.js +32 -0
  1683. package/dist/app/setup-connections/ProviderReadinessBadge.js.map +1 -0
  1684. package/dist/app/setup-connections/SetupConnectionsPage.d.ts +17 -0
  1685. package/dist/app/setup-connections/SetupConnectionsPage.d.ts.map +1 -0
  1686. package/dist/app/setup-connections/SetupConnectionsPage.js +10 -0
  1687. package/dist/app/setup-connections/SetupConnectionsPage.js.map +1 -0
  1688. package/dist/app/setup-connections/index.d.ts +5 -0
  1689. package/dist/app/setup-connections/index.d.ts.map +1 -0
  1690. package/dist/app/setup-connections/index.js +5 -0
  1691. package/dist/app/setup-connections/index.js.map +1 -0
  1692. package/dist/app/setup-connections/useBuilderConnectCardController.d.ts +43 -0
  1693. package/dist/app/setup-connections/useBuilderConnectCardController.d.ts.map +1 -0
  1694. package/dist/app/setup-connections/useBuilderConnectCardController.js +48 -0
  1695. package/dist/app/setup-connections/useBuilderConnectCardController.js.map +1 -0
  1696. package/dist/app/shared/AboutAgentNativeDialog.d.ts +6 -0
  1697. package/dist/app/shared/AboutAgentNativeDialog.d.ts.map +1 -0
  1698. package/dist/app/shared/AboutAgentNativeDialog.js +57 -0
  1699. package/dist/app/shared/AboutAgentNativeDialog.js.map +1 -0
  1700. package/dist/app/shared/AgentNativeIcon.d.ts +7 -0
  1701. package/dist/app/shared/AgentNativeIcon.d.ts.map +1 -0
  1702. package/dist/app/shared/AgentNativeIcon.js +5 -0
  1703. package/dist/app/shared/AgentNativeIcon.js.map +1 -0
  1704. package/dist/app/shared/AppShellSkeleton.d.ts +8 -0
  1705. package/dist/app/shared/AppShellSkeleton.d.ts.map +1 -0
  1706. package/dist/app/shared/AppShellSkeleton.js +506 -0
  1707. package/dist/app/shared/AppShellSkeleton.js.map +1 -0
  1708. package/dist/app/shared/AppSidebar.d.ts +19 -0
  1709. package/dist/app/shared/AppSidebar.d.ts.map +1 -0
  1710. package/dist/app/shared/AppSidebar.js +45 -0
  1711. package/dist/app/shared/AppSidebar.js.map +1 -0
  1712. package/dist/app/shared/AppearancePicker.d.ts +7 -0
  1713. package/dist/app/shared/AppearancePicker.d.ts.map +1 -0
  1714. package/dist/app/shared/AppearancePicker.js +16 -0
  1715. package/dist/app/shared/AppearancePicker.js.map +1 -0
  1716. package/dist/app/shared/ClientOnly.d.ts +6 -0
  1717. package/dist/app/shared/ClientOnly.d.ts.map +1 -0
  1718. package/dist/app/shared/ClientOnly.js +10 -0
  1719. package/dist/app/shared/ClientOnly.js.map +1 -0
  1720. package/dist/app/shared/CommandMenu.d.ts +84 -0
  1721. package/dist/app/shared/CommandMenu.d.ts.map +1 -0
  1722. package/dist/app/shared/CommandMenu.js +419 -0
  1723. package/dist/app/shared/CommandMenu.js.map +1 -0
  1724. package/dist/app/shared/DefaultSpinner.d.ts +14 -0
  1725. package/dist/app/shared/DefaultSpinner.d.ts.map +1 -0
  1726. package/dist/app/shared/DefaultSpinner.js +80 -0
  1727. package/dist/app/shared/DefaultSpinner.js.map +1 -0
  1728. package/dist/app/shared/EnvironmentBadge.d.ts +17 -0
  1729. package/dist/app/shared/EnvironmentBadge.d.ts.map +1 -0
  1730. package/dist/app/shared/EnvironmentBadge.js +231 -0
  1731. package/dist/app/shared/EnvironmentBadge.js.map +1 -0
  1732. package/dist/app/shared/ErrorBoundary.d.ts +3 -0
  1733. package/dist/app/shared/ErrorBoundary.d.ts.map +1 -0
  1734. package/dist/app/shared/ErrorBoundary.js +267 -0
  1735. package/dist/app/shared/ErrorBoundary.js.map +1 -0
  1736. package/dist/app/shared/LanguagePicker.d.ts +9 -0
  1737. package/dist/app/shared/LanguagePicker.d.ts.map +1 -0
  1738. package/dist/app/shared/LanguagePicker.js +129 -0
  1739. package/dist/app/shared/LanguagePicker.js.map +1 -0
  1740. package/dist/app/shared/LazyChunkErrorBoundary.d.ts +17 -0
  1741. package/dist/app/shared/LazyChunkErrorBoundary.d.ts.map +1 -0
  1742. package/dist/app/shared/LazyChunkErrorBoundary.js +17 -0
  1743. package/dist/app/shared/LazyChunkErrorBoundary.js.map +1 -0
  1744. package/dist/app/shared/LazyChunkRetryFallback.d.ts +4 -0
  1745. package/dist/app/shared/LazyChunkRetryFallback.d.ts.map +1 -0
  1746. package/dist/app/shared/LazyChunkRetryFallback.js +10 -0
  1747. package/dist/app/shared/LazyChunkRetryFallback.js.map +1 -0
  1748. package/dist/app/shared/PoweredByBadge.d.ts +12 -0
  1749. package/dist/app/shared/PoweredByBadge.d.ts.map +1 -0
  1750. package/dist/app/shared/PoweredByBadge.js +184 -0
  1751. package/dist/app/shared/PoweredByBadge.js.map +1 -0
  1752. package/dist/app/shared/PrimitiveButton.d.ts +7 -0
  1753. package/dist/app/shared/PrimitiveButton.d.ts.map +1 -0
  1754. package/dist/app/shared/PrimitiveButton.js +29 -0
  1755. package/dist/app/shared/PrimitiveButton.js.map +1 -0
  1756. package/dist/app/shared/RouteTransitionIndicator.d.ts +4 -0
  1757. package/dist/app/shared/RouteTransitionIndicator.d.ts.map +1 -0
  1758. package/dist/app/shared/RouteTransitionIndicator.js +36 -0
  1759. package/dist/app/shared/RouteTransitionIndicator.js.map +1 -0
  1760. package/dist/app/shared/RuntimeConfigNotice.d.ts +2 -0
  1761. package/dist/app/shared/RuntimeConfigNotice.d.ts.map +1 -0
  1762. package/dist/app/shared/RuntimeConfigNotice.js +98 -0
  1763. package/dist/app/shared/RuntimeConfigNotice.js.map +1 -0
  1764. package/dist/app/shared/StarfieldBackground.d.ts +7 -0
  1765. package/dist/app/shared/StarfieldBackground.d.ts.map +1 -0
  1766. package/dist/app/shared/StarfieldBackground.js +369 -0
  1767. package/dist/app/shared/StarfieldBackground.js.map +1 -0
  1768. package/dist/app/shared/Turnstile.d.ts +19 -0
  1769. package/dist/app/shared/Turnstile.d.ts.map +1 -0
  1770. package/dist/app/shared/Turnstile.js +67 -0
  1771. package/dist/app/shared/Turnstile.js.map +1 -0
  1772. package/dist/app/shared/index.d.ts +20 -0
  1773. package/dist/app/shared/index.d.ts.map +1 -0
  1774. package/dist/app/shared/index.js +20 -0
  1775. package/dist/app/shared/index.js.map +1 -0
  1776. package/dist/app/sharing/AgentShareSection.d.ts +9 -0
  1777. package/dist/app/sharing/AgentShareSection.d.ts.map +1 -0
  1778. package/dist/app/sharing/AgentShareSection.js +63 -0
  1779. package/dist/app/sharing/AgentShareSection.js.map +1 -0
  1780. package/dist/app/sharing/ShareButton.d.ts +89 -0
  1781. package/dist/app/sharing/ShareButton.d.ts.map +1 -0
  1782. package/dist/app/sharing/ShareButton.js +491 -0
  1783. package/dist/app/sharing/ShareButton.js.map +1 -0
  1784. package/dist/app/sharing/ShareDialog.d.ts +15 -0
  1785. package/dist/app/sharing/ShareDialog.d.ts.map +1 -0
  1786. package/dist/app/sharing/ShareDialog.js +85 -0
  1787. package/dist/app/sharing/ShareDialog.js.map +1 -0
  1788. package/dist/app/sharing/VisibilityBadge.d.ts +2 -0
  1789. package/dist/app/sharing/VisibilityBadge.d.ts.map +1 -0
  1790. package/dist/app/sharing/VisibilityBadge.js +2 -0
  1791. package/dist/app/sharing/VisibilityBadge.js.map +1 -0
  1792. package/dist/app/sharing/index.d.ts +5 -0
  1793. package/dist/app/sharing/index.d.ts.map +1 -0
  1794. package/dist/app/sharing/index.js +5 -0
  1795. package/dist/app/sharing/index.js.map +1 -0
  1796. package/dist/app/styles/agent-conversation.css +770 -0
  1797. package/dist/app/styles/agent-native.css +1429 -0
  1798. package/dist/app/styles/blocks.css +1668 -0
  1799. package/dist/app/styles/chat-history-list.css +15 -0
  1800. package/dist/app/styles/rich-markdown-editor.css +1 -0
  1801. package/dist/app/styles/tokens/agent-kit.css +116 -0
  1802. package/dist/app/terminal/AgentTerminal.d.ts +23 -0
  1803. package/dist/app/terminal/AgentTerminal.d.ts.map +1 -0
  1804. package/dist/app/terminal/AgentTerminal.js +442 -0
  1805. package/dist/app/terminal/AgentTerminal.js.map +1 -0
  1806. package/dist/app/terminal/index.d.ts +2 -0
  1807. package/dist/app/terminal/index.d.ts.map +1 -0
  1808. package/dist/app/terminal/index.js +2 -0
  1809. package/dist/app/terminal/index.js.map +1 -0
  1810. package/dist/app/transcription/BuilderTranscriptionCta.d.ts +2 -0
  1811. package/dist/app/transcription/BuilderTranscriptionCta.d.ts.map +1 -0
  1812. package/dist/app/transcription/BuilderTranscriptionCta.js +26 -0
  1813. package/dist/app/transcription/BuilderTranscriptionCta.js.map +1 -0
  1814. package/dist/app/transcription/index.d.ts +2 -0
  1815. package/dist/app/transcription/index.d.ts.map +1 -0
  1816. package/dist/app/transcription/index.js +2 -0
  1817. package/dist/app/transcription/index.js.map +1 -0
  1818. package/dist/app-shell/prompt-home.css +4 -0
  1819. package/dist/composer/ComposerContextMenu.d.ts +11 -1
  1820. package/dist/composer/ComposerContextMenu.d.ts.map +1 -1
  1821. package/dist/composer/ComposerContextMenu.js +122 -59
  1822. package/dist/composer/ComposerContextMenu.js.map +1 -1
  1823. package/dist/composer/ComposerContextPickerDialog.d.ts.map +1 -1
  1824. package/dist/composer/ComposerContextPickerDialog.js +41 -11
  1825. package/dist/composer/ComposerContextPickerDialog.js.map +1 -1
  1826. package/dist/composer/ComposerPlusMenu.d.ts +10 -6
  1827. package/dist/composer/ComposerPlusMenu.d.ts.map +1 -1
  1828. package/dist/composer/ComposerPlusMenu.js +247 -273
  1829. package/dist/composer/ComposerPlusMenu.js.map +1 -1
  1830. package/dist/composer/MentionPopover.d.ts.map +1 -1
  1831. package/dist/composer/MentionPopover.js +1 -1
  1832. package/dist/composer/MentionPopover.js.map +1 -1
  1833. package/dist/composer/PromptComposer.d.ts +10 -4
  1834. package/dist/composer/PromptComposer.d.ts.map +1 -1
  1835. package/dist/composer/PromptComposer.js +11 -10
  1836. package/dist/composer/PromptComposer.js.map +1 -1
  1837. package/dist/composer/TiptapComposer.d.ts +18 -8
  1838. package/dist/composer/TiptapComposer.d.ts.map +1 -1
  1839. package/dist/composer/TiptapComposer.js +446 -92
  1840. package/dist/composer/TiptapComposer.js.map +1 -1
  1841. package/dist/composer/attachment-accept.d.ts +4 -2
  1842. package/dist/composer/attachment-accept.d.ts.map +1 -1
  1843. package/dist/composer/attachment-accept.js +10 -2
  1844. package/dist/composer/attachment-accept.js.map +1 -1
  1845. package/dist/composer/index.d.ts +1 -0
  1846. package/dist/composer/index.d.ts.map +1 -1
  1847. package/dist/composer/index.js +1 -0
  1848. package/dist/composer/index.js.map +1 -1
  1849. package/dist/composer/types.d.ts +1 -1
  1850. package/dist/composer/types.d.ts.map +1 -1
  1851. package/dist/composer/use-composer-panel-placement.d.ts +10 -0
  1852. package/dist/composer/use-composer-panel-placement.d.ts.map +1 -0
  1853. package/dist/composer/use-composer-panel-placement.js +63 -0
  1854. package/dist/composer/use-composer-panel-placement.js.map +1 -0
  1855. package/dist/composer/use-mention-search.d.ts +2 -0
  1856. package/dist/composer/use-mention-search.d.ts.map +1 -1
  1857. package/dist/composer/use-mention-search.js +50 -22
  1858. package/dist/composer/use-mention-search.js.map +1 -1
  1859. package/dist/composer/use-skills.d.ts.map +1 -1
  1860. package/dist/composer/use-skills.js +47 -3
  1861. package/dist/composer/use-skills.js.map +1 -1
  1862. package/dist/composer/useComposerContextPicker.d.ts +5 -1
  1863. package/dist/composer/useComposerContextPicker.d.ts.map +1 -1
  1864. package/dist/composer/useComposerContextPicker.js +2 -2
  1865. package/dist/composer/useComposerContextPicker.js.map +1 -1
  1866. package/dist/styles.css +2 -3
  1867. package/eject/remote-mcp-presets.spec.ts +66 -0
  1868. package/package.json +325 -5
  1869. package/src/app/PrimitiveButton.tsx +43 -0
  1870. package/src/app/agent-page/AgentContextTab.spec.ts +35 -0
  1871. package/src/app/agent-page/AgentContextTab.tsx +493 -0
  1872. package/src/app/agent-page/AgentEmptyState.tsx +61 -0
  1873. package/src/app/agent-page/AgentJobsTab.blocked.spec.tsx +300 -0
  1874. package/src/app/agent-page/AgentJobsTab.spec.tsx +435 -0
  1875. package/src/app/agent-page/AgentJobsTab.tsx +967 -0
  1876. package/src/app/agent-page/AgentTabFrame.spec.tsx +48 -0
  1877. package/src/app/agent-page/AgentTabFrame.tsx +66 -0
  1878. package/src/app/agent-page/AgentTabsPage.spec.ts +31 -0
  1879. package/src/app/agent-page/AgentTabsPage.tsx +938 -0
  1880. package/src/app/agent-page/AgentWorkspaceContent.tsx +266 -0
  1881. package/src/app/agent-page/AutomationDetailsDialog.tsx +246 -0
  1882. package/src/app/agent-page/AutomationScheduleDialog.spec.tsx +86 -0
  1883. package/src/app/agent-page/AutomationScheduleDialog.tsx +545 -0
  1884. package/src/app/agent-page/ConnectionsTab.render.spec.tsx +103 -0
  1885. package/src/app/agent-page/ConnectionsTab.spec.tsx +96 -0
  1886. package/src/app/agent-page/ScheduledTriggerNotice.spec.tsx +166 -0
  1887. package/src/app/agent-page/ScheduledTriggerNotice.tsx +136 -0
  1888. package/src/app/agent-page/TimezoneSelect.spec.tsx +111 -0
  1889. package/src/app/agent-page/TimezoneSelect.tsx +230 -0
  1890. package/src/app/agent-page/automation-schedule.spec.ts +73 -0
  1891. package/src/app/agent-page/automation-schedule.ts +251 -0
  1892. package/src/app/agent-page/index.ts +3 -0
  1893. package/src/app/agent-page/scheduled-trigger-state.ts +19 -0
  1894. package/src/app/agent-page/types.ts +15 -0
  1895. package/src/app/agent-page/use-jobs.ts +264 -0
  1896. package/src/app/agentkit/index.ts +1 -0
  1897. package/src/app/agentkit/react/chat.tsx +86 -0
  1898. package/src/app/agentkit/react/components.interaction.spec.tsx +1445 -0
  1899. package/src/app/agentkit/react/components.spec.tsx +1636 -0
  1900. package/src/app/agentkit/react/components.tsx +4432 -0
  1901. package/src/app/agentkit/react/composer-context.spec.tsx +766 -0
  1902. package/src/app/agentkit/react/composer-submission.ts +62 -0
  1903. package/src/app/agentkit/react/context.tsx +887 -0
  1904. package/src/app/agentkit/react/headless.ts +2 -0
  1905. package/src/app/agentkit/react/index.ts +5 -0
  1906. package/src/app/agentkit/react/lifecycle.spec.tsx +3188 -0
  1907. package/src/app/agentkit/react/markdown.spec.tsx +175 -0
  1908. package/src/app/agentkit/react/render-boundary.spec.tsx +118 -0
  1909. package/src/app/agentkit/react/root.tsx +287 -0
  1910. package/src/app/agentkit/react/streaming-text.spec.ts +134 -0
  1911. package/src/app/agentkit/react/streaming-text.tsx +346 -0
  1912. package/src/app/agentkit/react/styles.css +1898 -0
  1913. package/src/app/agentkit/react/suggestions.spec.tsx +266 -0
  1914. package/src/app/auth/AuthPage.deploy-settings-error.spec.tsx +108 -0
  1915. package/src/app/auth/AuthPage.interaction.spec.tsx +156 -0
  1916. package/src/app/auth/AuthPage.resend.spec.tsx +172 -0
  1917. package/src/app/auth/AuthPage.spec.tsx +372 -0
  1918. package/src/app/auth/AuthPage.tsx +3139 -0
  1919. package/src/app/auth/RequireSession.spec.tsx +314 -0
  1920. package/src/app/auth/RequireSession.tsx +100 -0
  1921. package/src/app/auth/ResetPasswordPage.spec.tsx +30 -0
  1922. package/src/app/auth/ResetPasswordPage.tsx +205 -0
  1923. package/src/app/auth/entry.tsx +25 -0
  1924. package/src/app/auth/index.ts +3 -0
  1925. package/src/app/blocks/AiEditableField.tsx +33 -0
  1926. package/src/app/blocks/BlockView.tsx +122 -0
  1927. package/src/app/blocks/RegistryBlockDataProvider.spec.tsx +100 -0
  1928. package/src/app/blocks/RegistryBlockDataProvider.tsx +121 -0
  1929. package/src/app/blocks/SchemaBlockEditor.tsx +432 -0
  1930. package/src/app/blocks/code-block-direction.ts +6 -0
  1931. package/src/app/blocks/index.ts +302 -0
  1932. package/src/app/blocks/library/AnnotatedCodeBlock.spec.tsx +741 -0
  1933. package/src/app/blocks/library/AnnotatedCodeBlock.tsx +660 -0
  1934. package/src/app/blocks/library/ApiEndpointBlock.spec.tsx +227 -0
  1935. package/src/app/blocks/library/ApiEndpointBlock.tsx +1013 -0
  1936. package/src/app/blocks/library/DataModelBlock.tsx +707 -0
  1937. package/src/app/blocks/library/DiffBlock.spec.tsx +815 -0
  1938. package/src/app/blocks/library/DiffBlock.tsx +1695 -0
  1939. package/src/app/blocks/library/FileTreeBlock.spec.tsx +295 -0
  1940. package/src/app/blocks/library/FileTreeBlock.tsx +784 -0
  1941. package/src/app/blocks/library/HighlightedCode.tsx +235 -0
  1942. package/src/app/blocks/library/JsonExplorerBlock.spec.tsx +220 -0
  1943. package/src/app/blocks/library/JsonExplorerBlock.tsx +577 -0
  1944. package/src/app/blocks/library/MermaidBlock.render.spec.tsx +118 -0
  1945. package/src/app/blocks/library/MermaidBlock.tsx +314 -0
  1946. package/src/app/blocks/library/OpenApiSpecBlock.tsx +955 -0
  1947. package/src/app/blocks/library/annotation-rail.spec.ts +158 -0
  1948. package/src/app/blocks/library/annotation-rail.tsx +899 -0
  1949. package/src/app/blocks/library/block-copy.ts +399 -0
  1950. package/src/app/blocks/library/callout.tsx +135 -0
  1951. package/src/app/blocks/library/checklist.tsx +175 -0
  1952. package/src/app/blocks/library/code-copy-button.tsx +30 -0
  1953. package/src/app/blocks/library/code-filename-label.tsx +59 -0
  1954. package/src/app/blocks/library/code-highlight.tsx +160 -0
  1955. package/src/app/blocks/library/code-tabs.tsx +585 -0
  1956. package/src/app/blocks/library/code.spec.tsx +186 -0
  1957. package/src/app/blocks/library/code.tsx +396 -0
  1958. package/src/app/blocks/library/columns.render.spec.tsx +80 -0
  1959. package/src/app/blocks/library/columns.spec.ts +77 -0
  1960. package/src/app/blocks/library/columns.tsx +281 -0
  1961. package/src/app/blocks/library/dev-doc-ui.tsx +170 -0
  1962. package/src/app/blocks/library/diagram.spec.tsx +452 -0
  1963. package/src/app/blocks/library/diagram.tsx +902 -0
  1964. package/src/app/blocks/library/html.tsx +245 -0
  1965. package/src/app/blocks/library/narrow-container.tsx +15 -0
  1966. package/src/app/blocks/library/question-form.spec.tsx +239 -0
  1967. package/src/app/blocks/library/question-form.tsx +923 -0
  1968. package/src/app/blocks/library/sanitize-html.ts +385 -0
  1969. package/src/app/blocks/library/specs.tsx +275 -0
  1970. package/src/app/blocks/library/tab-rails.spec.tsx +414 -0
  1971. package/src/app/blocks/library/table.tsx +414 -0
  1972. package/src/app/blocks/library/tabs.spec.ts +93 -0
  1973. package/src/app/blocks/library/tabs.tsx +625 -0
  1974. package/src/app/blocks/library/wireframe-icons.ts +210 -0
  1975. package/src/app/blocks/library/wireframe-kit.tsx +1923 -0
  1976. package/src/app/blocks/library/wireframe.render.spec.tsx +443 -0
  1977. package/src/app/blocks/library/wireframe.tsx +461 -0
  1978. package/src/app/blocks/provider.tsx +40 -0
  1979. package/src/app/changelog/Changelog.spec.tsx +165 -0
  1980. package/src/app/changelog/Changelog.tsx +319 -0
  1981. package/src/app/changelog/index.ts +1 -0
  1982. package/src/app/chat/AgentAskPopover.tsx +85 -0
  1983. package/src/app/chat/AgentChatHome.tsx +57 -0
  1984. package/src/app/chat/AgentKitAssistantChat.spec.tsx +4077 -0
  1985. package/src/app/chat/AgentKitAssistantChat.tsx +4887 -0
  1986. package/src/app/chat/AgentNativeEmbedded.tsx +99 -0
  1987. package/src/app/chat/AgentPanel.header.spec.ts +1143 -0
  1988. package/src/app/chat/AgentPanel.overlay.spec.tsx +309 -0
  1989. package/src/app/chat/AgentPanel.tsx +2966 -0
  1990. package/src/app/chat/AgentSidebar.spec.tsx +394 -0
  1991. package/src/app/chat/AgentSidebar.tsx +1412 -0
  1992. package/src/app/chat/AgentSidebarPanel.tsx +12 -0
  1993. package/src/app/chat/AgentTaskCard.tsx +241 -0
  1994. package/src/app/chat/BuilderReferralInviteRow.tsx +35 -0
  1995. package/src/app/chat/ConnectBuilderCard.spec.tsx +441 -0
  1996. package/src/app/chat/ConnectBuilderCard.tsx +578 -0
  1997. package/src/app/chat/FileStorageSetupPopover.tsx +189 -0
  1998. package/src/app/chat/HighlightedCodeBlock.tsx +145 -0
  1999. package/src/app/chat/KeepTabOpenNotice.spec.tsx +196 -0
  2000. package/src/app/chat/KeepTabOpenNotice.tsx +125 -0
  2001. package/src/app/chat/MultiTabAssistantChat.messageCount.spec.tsx +27 -0
  2002. package/src/app/chat/MultiTabAssistantChat.spec.tsx +3623 -0
  2003. package/src/app/chat/MultiTabAssistantChat.tsx +3234 -0
  2004. package/src/app/chat/RunStuckBanner.tsx +346 -0
  2005. package/src/app/chat/agent-sidebar-context.ts +3 -0
  2006. package/src/app/chat/agent-sidebar-events.ts +27 -0
  2007. package/src/app/chat/agent-sidebar-url-sync.spec.tsx +48 -0
  2008. package/src/app/chat/agent-sidebar-url-sync.tsx +203 -0
  2009. package/src/app/chat/agentkit-chat/action-widget.spec.tsx +410 -0
  2010. package/src/app/chat/agentkit-chat/action-widget.tsx +123 -0
  2011. package/src/app/chat/agentkit-chat/approval-card.spec.tsx +400 -0
  2012. package/src/app/chat/agentkit-chat/approval-card.tsx +191 -0
  2013. package/src/app/chat/agentkit-chat/composer.tsx +1 -0
  2014. package/src/app/chat/agentkit-chat/connections.spec.tsx +81 -0
  2015. package/src/app/chat/agentkit-chat/connections.ts +39 -0
  2016. package/src/app/chat/agentkit-chat/dev-checkpoint-restore.spec.ts +35 -0
  2017. package/src/app/chat/agentkit-chat/guided-answers-context.spec.ts +77 -0
  2018. package/src/app/chat/agentkit-chat/guided-questions.flow.spec.tsx +897 -0
  2019. package/src/app/chat/agentkit-chat/guided-questions.spec.ts +66 -0
  2020. package/src/app/chat/agentkit-chat/guided-questions.tsx +1357 -0
  2021. package/src/app/chat/agentkit-chat/history.spec.ts +143 -0
  2022. package/src/app/chat/agentkit-chat/history.tsx +1134 -0
  2023. package/src/app/chat/agentkit-chat/index.spec.tsx +53 -0
  2024. package/src/app/chat/agentkit-chat/index.ts +75 -0
  2025. package/src/app/chat/agentkit-chat/parity-renderers.spec.tsx +70 -0
  2026. package/src/app/chat/agentkit-chat/parity-renderers.tsx +87 -0
  2027. package/src/app/chat/agentkit-chat/questions.ts +5 -0
  2028. package/src/app/chat/agentkit-chat/rail.ts +14 -0
  2029. package/src/app/chat/agentkit-chat/root.tsx +17 -0
  2030. package/src/app/chat/agentkit-chat/suggestions.ts +4 -0
  2031. package/src/app/chat/chat/ChatHistoryList.tsx +7 -0
  2032. package/src/app/chat/chat/IframeEmbed.tsx +142 -0
  2033. package/src/app/chat/chat/action-chat-ui-surface.tsx +43 -0
  2034. package/src/app/chat/chat/agent-activity-object.tsx +74 -0
  2035. package/src/app/chat/chat/agent-activity-trace.spec.tsx +122 -0
  2036. package/src/app/chat/chat/agent-activity-trace.tsx +252 -0
  2037. package/src/app/chat/chat/agent-approval-card.tsx +287 -0
  2038. package/src/app/chat/chat/history-types.ts +75 -0
  2039. package/src/app/chat/chat/index.ts +250 -0
  2040. package/src/app/chat/chat/legacy-chart-shorthand.render.spec.tsx +40 -0
  2041. package/src/app/chat/chat/legacy-chart-shorthand.spec.ts +225 -0
  2042. package/src/app/chat/chat/legacy-chart-shorthand.tsx +426 -0
  2043. package/src/app/chat/chat/markdown-renderer.dom-stability.spec.tsx +99 -0
  2044. package/src/app/chat/chat/markdown-renderer.spec.tsx +281 -0
  2045. package/src/app/chat/chat/markdown-renderer.tsx +919 -0
  2046. package/src/app/chat/chat/run-recovery.spec.tsx +1040 -0
  2047. package/src/app/chat/chat/run-recovery.tsx +1116 -0
  2048. package/src/app/chat/chat/surface-types.ts +394 -0
  2049. package/src/app/chat/chat/tool-call-display.spec.tsx +2915 -0
  2050. package/src/app/chat/chat/tool-call-display.tsx +1829 -0
  2051. package/src/app/chat/chat/tool-chips.spec.tsx +59 -0
  2052. package/src/app/chat/chat/tool-chips.tsx +153 -0
  2053. package/src/app/chat/chat/tool-integration.spec.tsx +71 -0
  2054. package/src/app/chat/chat/tool-integration.tsx +87 -0
  2055. package/src/app/chat/chat/tool-render-registry.spec.tsx +228 -0
  2056. package/src/app/chat/chat/tool-render-registry.tsx +150 -0
  2057. package/src/app/chat/chat/widgets/ActionCard.spec.tsx +32 -0
  2058. package/src/app/chat/chat/widgets/ActionCard.tsx +58 -0
  2059. package/src/app/chat/chat/widgets/AgentTeamProgressWidget.tsx +58 -0
  2060. package/src/app/chat/chat/widgets/ConnectRequiredWidget.tsx +43 -0
  2061. package/src/app/chat/chat/widgets/DataChartRenderer.tsx +245 -0
  2062. package/src/app/chat/chat/widgets/DataChartWidget.ssr.spec.tsx +28 -0
  2063. package/src/app/chat/chat/widgets/DataChartWidget.tsx +60 -0
  2064. package/src/app/chat/chat/widgets/DataInsightsWidget.tsx +62 -0
  2065. package/src/app/chat/chat/widgets/DataTableWidget.spec.tsx +130 -0
  2066. package/src/app/chat/chat/widgets/DataTableWidget.tsx +245 -0
  2067. package/src/app/chat/chat/widgets/InlineExtensionWidget.tsx +33 -0
  2068. package/src/app/chat/chat/widgets/RecordChangeWidget.tsx +396 -0
  2069. package/src/app/chat/chat/widgets/WorkspaceFileWidget.spec.tsx +52 -0
  2070. package/src/app/chat/chat/widgets/WorkspaceFileWidget.tsx +72 -0
  2071. package/src/app/chat/chat/widgets/agent-team-progress-widget.spec.tsx +92 -0
  2072. package/src/app/chat/chat/widgets/builtin-connect-required-renderer.spec.tsx +210 -0
  2073. package/src/app/chat/chat/widgets/builtin-tool-renderers.spec.ts +110 -0
  2074. package/src/app/chat/chat/widgets/builtin-tool-renderers.tsx +527 -0
  2075. package/src/app/chat/chat/widgets/builtin-workspace-file-renderer.spec.tsx +105 -0
  2076. package/src/app/chat/chat/widgets/data-widget-types.ts +1 -0
  2077. package/src/app/chat/chat/widgets/inline-extension-result.ts +87 -0
  2078. package/src/app/chat/chat/widgets/record-change-widget.spec.tsx +748 -0
  2079. package/src/app/chat/chat/widgets/workspace-file-result.spec.ts +55 -0
  2080. package/src/app/chat/chat/widgets/workspace-file-result.ts +49 -0
  2081. package/src/app/chat/chat-first/ChatFirstAgentActivityPanel.tsx +200 -0
  2082. package/src/app/chat/chat-first/ChatFirstSurfacePanelToggle.tsx +29 -0
  2083. package/src/app/chat/chat-first/active-surface.spec.ts +93 -0
  2084. package/src/app/chat/chat-first/active-surface.ts +39 -0
  2085. package/src/app/chat/chat-first/agents-pane.tsx +29 -0
  2086. package/src/app/chat/chat-first/app-open-actions.tsx +167 -0
  2087. package/src/app/chat/chat-first/app-pane.tsx +53 -0
  2088. package/src/app/chat/chat-first/apps-rail.spec.tsx +538 -0
  2089. package/src/app/chat/chat-first/apps-rail.tsx +611 -0
  2090. package/src/app/chat/chat-first/browser-pane.spec.tsx +58 -0
  2091. package/src/app/chat/chat-first/browser-pane.tsx +221 -0
  2092. package/src/app/chat/chat-first/chat-history.spec.tsx +95 -0
  2093. package/src/app/chat/chat-first/chat-history.tsx +62 -0
  2094. package/src/app/chat/chat-first/copy.spec.ts +23 -0
  2095. package/src/app/chat/chat-first/copy.ts +133 -0
  2096. package/src/app/chat/chat-first/index.ts +64 -0
  2097. package/src/app/chat/chat-first/primary-nav.spec.tsx +255 -0
  2098. package/src/app/chat/chat-first/primary-nav.tsx +179 -0
  2099. package/src/app/chat/chat-first/session-watch-pane.tsx +48 -0
  2100. package/src/app/chat/chat-first/surface-panel.tsx +43 -0
  2101. package/src/app/chat/chat-first/surface-tabs.spec.tsx +157 -0
  2102. package/src/app/chat/chat-first/surface-tabs.tsx +337 -0
  2103. package/src/app/chat/chat-first/types.ts +116 -0
  2104. package/src/app/chat/components/CodeAgentIndicator.tsx +49 -0
  2105. package/src/app/chat/components/CodeRequiredDialog.spec.tsx +100 -0
  2106. package/src/app/chat/components/CodeRequiredDialog.tsx +452 -0
  2107. package/src/app/chat/components/ui/button-classes.ts +2 -0
  2108. package/src/app/chat/components/ui/message-scroller.tsx +148 -0
  2109. package/src/app/chat/composer/assistant-ui-recovery.tsx +228 -0
  2110. package/src/app/chat/composer/index.ts +20 -0
  2111. package/src/app/chat/composer/model-runtime-adapters.ts +26 -0
  2112. package/src/app/chat/composer/runtime-adapters.spec.tsx +58 -0
  2113. package/src/app/chat/composer/runtime-adapters.tsx +129 -0
  2114. package/src/app/chat/composer/use-agentkit-capabilities.hardening.spec.tsx +266 -0
  2115. package/src/app/chat/composer/use-agentkit-capabilities.spec.ts +42 -0
  2116. package/src/app/chat/composer/use-agentkit-capabilities.ts +114 -0
  2117. package/src/app/chat/composer/use-agentkit-integration-menu.hardening.spec.tsx +102 -0
  2118. package/src/app/chat/composer/use-agentkit-integration-menu.spec.tsx +179 -0
  2119. package/src/app/chat/composer/use-agentkit-integration-menu.tsx +91 -0
  2120. package/src/app/chat/composer/use-mention-search.ts +6 -0
  2121. package/src/app/chat/composer/use-send-to-agent-chat.tsx +19 -0
  2122. package/src/app/chat/composer/wired-components.spec.tsx +159 -0
  2123. package/src/app/chat/composer/wired-components.tsx +112 -0
  2124. package/src/app/chat/conversation/AgentConversation.spec.tsx +306 -0
  2125. package/src/app/chat/conversation/AgentConversation.tsx +567 -0
  2126. package/src/app/chat/conversation/code-agent-transcript.spec.ts +249 -0
  2127. package/src/app/chat/conversation/code-agent-transcript.ts +279 -0
  2128. package/src/app/chat/conversation/index.ts +22 -0
  2129. package/src/app/chat/conversation/types.ts +83 -0
  2130. package/src/app/chat/conversation/use-near-bottom-autoscroll.spec.tsx +469 -0
  2131. package/src/app/chat/conversation/use-near-bottom-autoscroll.ts +313 -0
  2132. package/src/app/chat/external-agent-host.spec.ts +85 -0
  2133. package/src/app/chat/external-agent-host.tsx +493 -0
  2134. package/src/app/chat/index.ts +80 -0
  2135. package/src/app/chat/mcp-apps/McpAppRenderer.spec.ts +490 -0
  2136. package/src/app/chat/mcp-apps/McpAppRenderer.tsx +956 -0
  2137. package/src/app/chat/thinking-display.spec.tsx +159 -0
  2138. package/src/app/chat/thinking-display.tsx +112 -0
  2139. package/src/app/chat/tool-cells/BashCell.tsx +150 -0
  2140. package/src/app/chat/tool-cells/EditCell.tsx +282 -0
  2141. package/src/app/chat/tool-cells/FilesChangedSummary.spec.tsx +56 -0
  2142. package/src/app/chat/tool-cells/FilesChangedSummary.tsx +179 -0
  2143. package/src/app/chat/tool-cells/WriteCell.tsx +141 -0
  2144. package/src/app/chat/tool-cells/index.ts +7 -0
  2145. package/src/app/context-xray/ContextMeter.tsx +131 -0
  2146. package/src/app/context-xray/ContextSegmentRow.tsx +26 -0
  2147. package/src/app/context-xray/ContextTreemap.tsx +23 -0
  2148. package/src/app/context-xray/ContextXRayPanel.spec.tsx +94 -0
  2149. package/src/app/context-xray/ContextXRayPanel.tsx +59 -0
  2150. package/src/app/context-xray/SegmentProvenancePopover.tsx +17 -0
  2151. package/src/app/context-xray/index.ts +5 -0
  2152. package/src/app/db-admin/DataGrid.tsx +543 -0
  2153. package/src/app/db-admin/DbAdminPage.tsx +193 -0
  2154. package/src/app/db-admin/DevDatabaseLink.spec.tsx +11 -0
  2155. package/src/app/db-admin/DevDatabaseLink.tsx +8 -0
  2156. package/src/app/db-admin/EditableCell.tsx +434 -0
  2157. package/src/app/db-admin/FilterBar.tsx +202 -0
  2158. package/src/app/db-admin/ResultsGrid.tsx +105 -0
  2159. package/src/app/db-admin/RowSidePanel.tsx +323 -0
  2160. package/src/app/db-admin/SqlEditor.tsx +781 -0
  2161. package/src/app/db-admin/TableBrowser.tsx +206 -0
  2162. package/src/app/db-admin/TableEditor.tsx +741 -0
  2163. package/src/app/db-admin/cell-format.ts +202 -0
  2164. package/src/app/db-admin/changeset.ts +252 -0
  2165. package/src/app/db-admin/export-utils.spec.ts +20 -0
  2166. package/src/app/db-admin/export-utils.ts +60 -0
  2167. package/src/app/db-admin/index.ts +32 -0
  2168. package/src/app/db-admin/sql-storage.ts +108 -0
  2169. package/src/app/db-admin/storage.ts +55 -0
  2170. package/src/app/db-admin/useAgentSync.spec.tsx +80 -0
  2171. package/src/app/db-admin/useAgentSync.ts +184 -0
  2172. package/src/app/db-admin/useDbAdmin.ts +238 -0
  2173. package/src/app/dev-overlay/DevOverlay.tsx +548 -0
  2174. package/src/app/dev-overlay/index.ts +1 -0
  2175. package/src/app/eject/remote-mcp-presets.ts +173 -0
  2176. package/src/app/eject/setup-readiness-ui.tsx +17 -0
  2177. package/src/app/extensions/AgentNativeExtensionFrame.e2e-host.tsx +136 -0
  2178. package/src/app/extensions/AgentNativeExtensionFrame.e2e.spec.ts +193 -0
  2179. package/src/app/extensions/AgentNativeExtensionFrame.spec.tsx +99 -0
  2180. package/src/app/extensions/AgentNativeExtensionFrame.tsx +699 -0
  2181. package/src/app/extensions/EmbeddedExtension.spec.ts +41 -0
  2182. package/src/app/extensions/EmbeddedExtension.tsx +624 -0
  2183. package/src/app/extensions/ExtensionEditor.tsx +454 -0
  2184. package/src/app/extensions/ExtensionQueryErrorState.tsx +46 -0
  2185. package/src/app/extensions/ExtensionSlot.spec.tsx +177 -0
  2186. package/src/app/extensions/ExtensionSlot.tsx +332 -0
  2187. package/src/app/extensions/ExtensionViewer.spec.tsx +374 -0
  2188. package/src/app/extensions/ExtensionViewer.tsx +1553 -0
  2189. package/src/app/extensions/ExtensionViewerPage.tsx +37 -0
  2190. package/src/app/extensions/ExtensionsListPage.spec.tsx +177 -0
  2191. package/src/app/extensions/ExtensionsListPage.tsx +457 -0
  2192. package/src/app/extensions/ExtensionsSidebarSection.spec.tsx +200 -0
  2193. package/src/app/extensions/ExtensionsSidebarSection.tsx +1278 -0
  2194. package/src/app/extensions/InlineExtensionFrame.spec.tsx +416 -0
  2195. package/src/app/extensions/InlineExtensionFrame.tsx +687 -0
  2196. package/src/app/extensions/delete-extension.spec.ts +81 -0
  2197. package/src/app/extensions/delete-extension.ts +77 -0
  2198. package/src/app/extensions/extension-load-error.ts +26 -0
  2199. package/src/app/extensions/extension-order.ts +49 -0
  2200. package/src/app/extensions/extension-popularity.ts +61 -0
  2201. package/src/app/extensions/iframe-bridge.spec.ts +323 -0
  2202. package/src/app/extensions/iframe-bridge.ts +333 -0
  2203. package/src/app/extensions/index.ts +78 -0
  2204. package/src/app/extensions/portable-extension.spec.ts +252 -0
  2205. package/src/app/extensions/portable-extension.ts +1023 -0
  2206. package/src/app/feature-flags/FeatureFlagsPanel.tsx +529 -0
  2207. package/src/app/feature-flags/index.ts +1 -0
  2208. package/src/app/feedback/ErrorReportActions.tsx +64 -0
  2209. package/src/app/feedback/FeedbackButton.spec.ts +134 -0
  2210. package/src/app/feedback/FeedbackButton.tsx +683 -0
  2211. package/src/app/feedback/index.ts +9 -0
  2212. package/src/app/i18n/catalog.spec.ts +61 -0
  2213. package/src/app/i18n/catalog.ts +135 -0
  2214. package/src/app/i18n/catalogs/ar-SA.ts +2759 -0
  2215. package/src/app/i18n/catalogs/de-DE.ts +2841 -0
  2216. package/src/app/i18n/catalogs/en-US.ts +2716 -0
  2217. package/src/app/i18n/catalogs/es-ES.ts +2844 -0
  2218. package/src/app/i18n/catalogs/fr-FR.ts +2877 -0
  2219. package/src/app/i18n/catalogs/hi-IN.ts +2652 -0
  2220. package/src/app/i18n/catalogs/ja-JP.ts +2736 -0
  2221. package/src/app/i18n/catalogs/ko-KR.ts +2689 -0
  2222. package/src/app/i18n/catalogs/pt-BR.ts +2837 -0
  2223. package/src/app/i18n/catalogs/zh-CN.ts +2481 -0
  2224. package/src/app/i18n/catalogs/zh-TW.ts +2493 -0
  2225. package/src/app/i18n/types.ts +11 -0
  2226. package/src/app/i18n.ts +95 -0
  2227. package/src/app/integrations/BuilderIntegrationPage.spec.tsx +479 -0
  2228. package/src/app/integrations/BuilderIntegrationPage.tsx +773 -0
  2229. package/src/app/integrations/ChannelsPage.spec.tsx +824 -0
  2230. package/src/app/integrations/ChannelsPage.tsx +1173 -0
  2231. package/src/app/integrations/GoogleProductLogo.tsx +179 -0
  2232. package/src/app/integrations/IntegrationConnectionChoice.tsx +131 -0
  2233. package/src/app/integrations/IntegrationDetailPage.spec.tsx +497 -0
  2234. package/src/app/integrations/IntegrationDetailPage.tsx +823 -0
  2235. package/src/app/integrations/IntegrationDetailParts.tsx +233 -0
  2236. package/src/app/integrations/IntegrationGrid.tsx +181 -0
  2237. package/src/app/integrations/IntegrationsPage.spec.tsx +394 -0
  2238. package/src/app/integrations/IntegrationsPage.tsx +826 -0
  2239. package/src/app/integrations/IntegrationsPanel.spec.tsx +441 -0
  2240. package/src/app/integrations/IntegrationsPanel.tsx +1623 -0
  2241. package/src/app/integrations/channel-extensions.spec.ts +29 -0
  2242. package/src/app/integrations/channel-extensions.ts +88 -0
  2243. package/src/app/integrations/channel-icons.spec.ts +13 -0
  2244. package/src/app/integrations/channel-icons.ts +33 -0
  2245. package/src/app/integrations/index.ts +12 -0
  2246. package/src/app/integrations/settings-page-link.tsx +66 -0
  2247. package/src/app/labs/ExperimentsSettings.tsx +18 -0
  2248. package/src/app/labs/LabsSettings.tsx +178 -0
  2249. package/src/app/labs/index.ts +2 -0
  2250. package/src/app/notifications/NotificationsBell.spec.tsx +68 -0
  2251. package/src/app/notifications/NotificationsBell.tsx +356 -0
  2252. package/src/app/notifications/index.ts +1 -0
  2253. package/src/app/observability/ObservabilityDashboard.review.spec.tsx +2649 -0
  2254. package/src/app/observability/ObservabilityDashboard.spec.tsx +201 -0
  2255. package/src/app/observability/ObservabilityDashboard.tsx +3330 -0
  2256. package/src/app/observability/ObservabilityReviewSummaryButton.spec.tsx +242 -0
  2257. package/src/app/observability/ObservabilityReviewSummaryButton.tsx +158 -0
  2258. package/src/app/observability/OutputPreview.render.spec.tsx +595 -0
  2259. package/src/app/observability/OutputPreview.spec.ts +283 -0
  2260. package/src/app/observability/OutputPreview.tsx +1046 -0
  2261. package/src/app/observability/ThumbsFeedback.spec.tsx +819 -0
  2262. package/src/app/observability/ThumbsFeedback.tsx +335 -0
  2263. package/src/app/observability/index.ts +21 -0
  2264. package/src/app/observability/useObservability.spec.ts +54 -0
  2265. package/src/app/observability/useObservability.ts +421 -0
  2266. package/src/app/onboarding/FirstRunOnboarding.spec.tsx +1671 -0
  2267. package/src/app/onboarding/FirstRunOnboarding.tsx +1307 -0
  2268. package/src/app/onboarding/NewWorkspaceAppFlow.spec.ts +497 -0
  2269. package/src/app/onboarding/NewWorkspaceAppFlow.tsx +626 -0
  2270. package/src/app/onboarding/OnboardingBanner.tsx +65 -0
  2271. package/src/app/onboarding/OnboardingPanel.tsx +1064 -0
  2272. package/src/app/onboarding/OnboardingStepLayout.tsx +46 -0
  2273. package/src/app/onboarding/SetupButton.tsx +56 -0
  2274. package/src/app/onboarding/first-run-startup-gate.spec.tsx +479 -0
  2275. package/src/app/onboarding/first-run-startup-gate.tsx +159 -0
  2276. package/src/app/onboarding/index.ts +7 -0
  2277. package/src/app/org/AppsAccessSection.tsx +169 -0
  2278. package/src/app/org/AuthenticationSection.tsx +536 -0
  2279. package/src/app/org/BulkInviteForm.spec.tsx +274 -0
  2280. package/src/app/org/BulkInviteForm.tsx +505 -0
  2281. package/src/app/org/GroupsSection.tsx +524 -0
  2282. package/src/app/org/InvitationBanner.tsx +148 -0
  2283. package/src/app/org/MemberAppRoles.tsx +334 -0
  2284. package/src/app/org/MembersSection.tsx +998 -0
  2285. package/src/app/org/OrgGeneralSection.tsx +561 -0
  2286. package/src/app/org/OrgIdentitySettings.spec.tsx +160 -0
  2287. package/src/app/org/OrgIdentitySettings.tsx +522 -0
  2288. package/src/app/org/OrgSwitcher.spec.tsx +779 -0
  2289. package/src/app/org/OrgSwitcher.tsx +927 -0
  2290. package/src/app/org/RequireActiveOrg.tsx +323 -0
  2291. package/src/app/org/RequirePermission.tsx +17 -0
  2292. package/src/app/org/SuccessorPicker.spec.tsx +101 -0
  2293. package/src/app/org/SuccessorPicker.tsx +156 -0
  2294. package/src/app/org/TeamOnboardingCards.tsx +188 -0
  2295. package/src/app/org/TeamPage.search.spec.tsx +294 -0
  2296. package/src/app/org/TeamPage.spec.tsx +479 -0
  2297. package/src/app/org/TeamPage.tsx +140 -0
  2298. package/src/app/org/TeamPrimitives.tsx +113 -0
  2299. package/src/app/org/WorkspaceNotice.spec.tsx +89 -0
  2300. package/src/app/org/WorkspaceNotice.tsx +84 -0
  2301. package/src/app/org/index.ts +129 -0
  2302. package/src/app/org/pages/OrgAppsPage.tsx +207 -0
  2303. package/src/app/org/pages/OrgAuthenticationPage.tsx +228 -0
  2304. package/src/app/org/pages/OrgGeneralPage.tsx +287 -0
  2305. package/src/app/org/pages/OrgMembersPage.tsx +618 -0
  2306. package/src/app/org/pages/OrgPageGate.tsx +107 -0
  2307. package/src/app/org/pages/OrgSettingsPages.spec.tsx +389 -0
  2308. package/src/app/org/workspace-app-links.spec.ts +134 -0
  2309. package/src/app/org/workspace-app-links.ts +425 -0
  2310. package/src/app/progress/RunsTray.spec.tsx +201 -0
  2311. package/src/app/progress/RunsTray.tsx +867 -0
  2312. package/src/app/progress/index.ts +1 -0
  2313. package/src/app/providers/AppProviders.spec.tsx +557 -0
  2314. package/src/app/providers/AppProviders.tsx +522 -0
  2315. package/src/app/providers/AppProviders.webmcp-lifecycle.spec.tsx +217 -0
  2316. package/src/app/providers/index.ts +5 -0
  2317. package/src/app/resources/BuiltinCapabilityDetail.tsx +257 -0
  2318. package/src/app/resources/McpAccessSettings.spec.tsx +214 -0
  2319. package/src/app/resources/McpAccessSettings.tsx +369 -0
  2320. package/src/app/resources/McpAgentKitConnectionRequest.spec.tsx +62 -0
  2321. package/src/app/resources/McpAgentKitConnectionRequest.tsx +100 -0
  2322. package/src/app/resources/McpConnectionSuggestion.render.spec.tsx +174 -0
  2323. package/src/app/resources/McpConnectionSuggestion.spec.ts +167 -0
  2324. package/src/app/resources/McpConnectionSuggestion.tsx +388 -0
  2325. package/src/app/resources/McpIntegrationDialog.hardening.spec.tsx +213 -0
  2326. package/src/app/resources/McpIntegrationDialog.spec.tsx +1235 -0
  2327. package/src/app/resources/McpIntegrationDialog.tsx +1330 -0
  2328. package/src/app/resources/McpIntegrationDialogDeferred.tsx +37 -0
  2329. package/src/app/resources/McpIntegrationLogo.spec.tsx +109 -0
  2330. package/src/app/resources/McpIntegrationLogo.tsx +62 -0
  2331. package/src/app/resources/McpServerDetail.tsx +214 -0
  2332. package/src/app/resources/ResourceEditor.spec.tsx +98 -0
  2333. package/src/app/resources/ResourceEditor.tsx +854 -0
  2334. package/src/app/resources/ResourceSettingsGroups.tsx +596 -0
  2335. package/src/app/resources/ResourceTree.spec.tsx +56 -0
  2336. package/src/app/resources/ResourceTree.tsx +880 -0
  2337. package/src/app/resources/ResourcesPanel.spec.ts +803 -0
  2338. package/src/app/resources/ResourcesPanel.tsx +2544 -0
  2339. package/src/app/resources/index.ts +12 -0
  2340. package/src/app/review/InlineMarkdown.spec.tsx +153 -0
  2341. package/src/app/review/InlineMarkdown.tsx +169 -0
  2342. package/src/app/review/ReviewCommentComposer.spec.tsx +445 -0
  2343. package/src/app/review/ReviewCommentComposer.tsx +499 -0
  2344. package/src/app/review/ReviewStatusBadge.tsx +39 -0
  2345. package/src/app/review/ReviewThreadPanel.spec.tsx +1047 -0
  2346. package/src/app/review/ReviewThreadPanel.tsx +1695 -0
  2347. package/src/app/review/index.ts +4 -0
  2348. package/src/app/settings/AccountSettingsCard.spec.tsx +457 -0
  2349. package/src/app/settings/AccountSettingsCard.tsx +841 -0
  2350. package/src/app/settings/AgentDirectorySection.tsx +207 -0
  2351. package/src/app/settings/AgentPersonalizationSettings.tsx +244 -0
  2352. package/src/app/settings/AgentProviderPicker.tsx +189 -0
  2353. package/src/app/settings/AgentsSection.spec.tsx +237 -0
  2354. package/src/app/settings/AgentsSection.tsx +2441 -0
  2355. package/src/app/settings/ApiKeySettings.tsx +304 -0
  2356. package/src/app/settings/AutomationsSection.spec.tsx +51 -0
  2357. package/src/app/settings/AutomationsSection.tsx +52 -0
  2358. package/src/app/settings/BuilderConnectPopover.spec.tsx +399 -0
  2359. package/src/app/settings/BuilderConnectPopover.tsx +237 -0
  2360. package/src/app/settings/DemoModeSection.tsx +39 -0
  2361. package/src/app/settings/ExtensionsSettingsContent.tsx +21 -0
  2362. package/src/app/settings/KeyProviderTile.spec.tsx +44 -0
  2363. package/src/app/settings/KeyProviderTile.tsx +91 -0
  2364. package/src/app/settings/NewKeyMenu.tsx +185 -0
  2365. package/src/app/settings/ProviderSetupForm.scope.spec.tsx +180 -0
  2366. package/src/app/settings/ProviderSetupForm.tsx +680 -0
  2367. package/src/app/settings/SchedulingTimezoneField.tsx +84 -0
  2368. package/src/app/settings/SecretsSection.spec.tsx +706 -0
  2369. package/src/app/settings/SecretsSection.tsx +1225 -0
  2370. package/src/app/settings/SettingsCrossLinkHint.tsx +21 -0
  2371. package/src/app/settings/SettingsPanel.connections.spec.tsx +468 -0
  2372. package/src/app/settings/SettingsPanel.model-defaults.spec.tsx +125 -0
  2373. package/src/app/settings/SettingsPanel.provider-save.spec.tsx +1020 -0
  2374. package/src/app/settings/SettingsPanel.tsx +4747 -0
  2375. package/src/app/settings/SettingsRow.spec.tsx +76 -0
  2376. package/src/app/settings/SettingsRow.tsx +114 -0
  2377. package/src/app/settings/SettingsSection.spec.tsx +41 -0
  2378. package/src/app/settings/SettingsSection.tsx +249 -0
  2379. package/src/app/settings/SettingsSkeleton.spec.tsx +44 -0
  2380. package/src/app/settings/SettingsSkeleton.tsx +94 -0
  2381. package/src/app/settings/SettingsTabsPage.gate.spec.tsx +122 -0
  2382. package/src/app/settings/SettingsTabsPage.mount.spec.tsx +61 -0
  2383. package/src/app/settings/SettingsTabsPage.spec.ts +55 -0
  2384. package/src/app/settings/SettingsTabsPage.spec.tsx +1285 -0
  2385. package/src/app/settings/SettingsTabsPage.tsx +1072 -0
  2386. package/src/app/settings/StorageSettingsForm.spec.tsx +317 -0
  2387. package/src/app/settings/StorageSettingsForm.tsx +590 -0
  2388. package/src/app/settings/UsageSection.tsx +1397 -0
  2389. package/src/app/settings/VoiceTranscriptionSection.spec.tsx +228 -0
  2390. package/src/app/settings/VoiceTranscriptionSection.tsx +1047 -0
  2391. package/src/app/settings/account/PreferencesSettings.spec.tsx +105 -0
  2392. package/src/app/settings/account/PreferencesSettings.tsx +45 -0
  2393. package/src/app/settings/account/ProfileSettings.spec.tsx +248 -0
  2394. package/src/app/settings/account/ProfileSettings.tsx +325 -0
  2395. package/src/app/settings/account/SecuritySettings.spec.tsx +337 -0
  2396. package/src/app/settings/account/SecuritySettings.tsx +629 -0
  2397. package/src/app/settings/account/account-copy.ts +42 -0
  2398. package/src/app/settings/account/account-hooks.ts +385 -0
  2399. package/src/app/settings/account/search-entries.spec.ts +47 -0
  2400. package/src/app/settings/account/search-entries.ts +76 -0
  2401. package/src/app/settings/agent-settings-search.spec.ts +75 -0
  2402. package/src/app/settings/agent-settings-search.ts +319 -0
  2403. package/src/app/settings/api-keys/ApiKeyDialogs.tsx +650 -0
  2404. package/src/app/settings/api-keys/ApiKeysSettingsPage.spec.tsx +616 -0
  2405. package/src/app/settings/api-keys/ApiKeysSettingsPage.tsx +533 -0
  2406. package/src/app/settings/api-keys/api-keys-client.ts +85 -0
  2407. package/src/app/settings/api-keys/api-keys-state.ts +146 -0
  2408. package/src/app/settings/app-group/AppDefaultModelRow.tsx +241 -0
  2409. package/src/app/settings/app-group/ReadOnlySettingValue.tsx +33 -0
  2410. package/src/app/settings/app-group/SettingsHeaderBadge.tsx +34 -0
  2411. package/src/app/settings/app-settings-tabs.ts +65 -0
  2412. package/src/app/settings/deferred-builder-connect-popover.tsx +30 -0
  2413. package/src/app/settings/extension-settings-capability.spec.ts +16 -0
  2414. package/src/app/settings/index.node-esm.spec.ts +45 -0
  2415. package/src/app/settings/index.ts +114 -0
  2416. package/src/app/settings/infra/EnvironmentDialogs.tsx +377 -0
  2417. package/src/app/settings/infra/InfrastructureSettingsPage.spec.tsx +687 -0
  2418. package/src/app/settings/infra/InfrastructureSettingsPage.tsx +906 -0
  2419. package/src/app/settings/infra/ServiceDialog.tsx +230 -0
  2420. package/src/app/settings/infra/infra-page-state.spec.ts +251 -0
  2421. package/src/app/settings/infra/infra-page-state.ts +282 -0
  2422. package/src/app/settings/infra/logos.tsx +62 -0
  2423. package/src/app/settings/managed-secrets.ts +57 -0
  2424. package/src/app/settings/model/ChatGPTSubscriptionRow.tsx +151 -0
  2425. package/src/app/settings/model/ModelSettingsPage.spec.tsx +743 -0
  2426. package/src/app/settings/model/ModelSettingsPage.tsx +1118 -0
  2427. package/src/app/settings/model/ProviderDialog.spec.tsx +616 -0
  2428. package/src/app/settings/model/ProviderDialog.tsx +1113 -0
  2429. package/src/app/settings/model/RemoveProviderDialog.tsx +213 -0
  2430. package/src/app/settings/model/RestrictKeysDialog.tsx +155 -0
  2431. package/src/app/settings/model/model-page-state.spec.ts +266 -0
  2432. package/src/app/settings/model/model-page-state.ts +305 -0
  2433. package/src/app/settings/recent-prompt-groups.spec.ts +41 -0
  2434. package/src/app/settings/recent-prompt-groups.ts +30 -0
  2435. package/src/app/settings/shell/SettingsShell.spec.tsx +879 -0
  2436. package/src/app/settings/shell/SettingsShell.tsx +1104 -0
  2437. package/src/app/settings/shell/SettingsShellSkeleton.tsx +56 -0
  2438. package/src/app/settings/shell/app-identity.ts +86 -0
  2439. package/src/app/settings/shell/bridge.spec.ts +289 -0
  2440. package/src/app/settings/shell/bridge.ts +276 -0
  2441. package/src/app/settings/shell/context.tsx +48 -0
  2442. package/src/app/settings/shell/core-pages.ts +668 -0
  2443. package/src/app/settings/shell/index.ts +73 -0
  2444. package/src/app/settings/shell/pages/api-keys.tsx +8 -0
  2445. package/src/app/settings/shell/pages/app-group-pages.spec.tsx +527 -0
  2446. package/src/app/settings/shell/pages/app.tsx +105 -0
  2447. package/src/app/settings/shell/pages/apps.tsx +5 -0
  2448. package/src/app/settings/shell/pages/audit.spec.tsx +262 -0
  2449. package/src/app/settings/shell/pages/audit.tsx +520 -0
  2450. package/src/app/settings/shell/pages/auth.tsx +5 -0
  2451. package/src/app/settings/shell/pages/automations.tsx +61 -0
  2452. package/src/app/settings/shell/pages/bridged-tab.tsx +9 -0
  2453. package/src/app/settings/shell/pages/channels.tsx +31 -0
  2454. package/src/app/settings/shell/pages/creative-context.tsx +24 -0
  2455. package/src/app/settings/shell/pages/files.tsx +65 -0
  2456. package/src/app/settings/shell/pages/infra.tsx +6 -0
  2457. package/src/app/settings/shell/pages/instructions.tsx +62 -0
  2458. package/src/app/settings/shell/pages/integrations.tsx +47 -0
  2459. package/src/app/settings/shell/pages/labs.tsx +14 -0
  2460. package/src/app/settings/shell/pages/mcp.tsx +54 -0
  2461. package/src/app/settings/shell/pages/members.tsx +5 -0
  2462. package/src/app/settings/shell/pages/memory.tsx +81 -0
  2463. package/src/app/settings/shell/pages/model.tsx +23 -0
  2464. package/src/app/settings/shell/pages/notifications.tsx +7 -0
  2465. package/src/app/settings/shell/pages/org.tsx +5 -0
  2466. package/src/app/settings/shell/pages/pending.tsx +11 -0
  2467. package/src/app/settings/shell/pages/preferences.tsx +5 -0
  2468. package/src/app/settings/shell/pages/profile.tsx +5 -0
  2469. package/src/app/settings/shell/pages/resource-collection.tsx +25 -0
  2470. package/src/app/settings/shell/pages/resource-pages.spec.tsx +316 -0
  2471. package/src/app/settings/shell/pages/resource-settings-page.tsx +602 -0
  2472. package/src/app/settings/shell/pages/security.tsx +5 -0
  2473. package/src/app/settings/shell/pages/skills.tsx +65 -0
  2474. package/src/app/settings/shell/pages/sub-agents.spec.tsx +329 -0
  2475. package/src/app/settings/shell/pages/sub-agents.tsx +1039 -0
  2476. package/src/app/settings/shell/pages/usage.tsx +6 -0
  2477. package/src/app/settings/shell/pages/whats-new.tsx +58 -0
  2478. package/src/app/settings/shell/registry.spec.ts +156 -0
  2479. package/src/app/settings/shell/registry.ts +194 -0
  2480. package/src/app/settings/shell/return-path.ts +51 -0
  2481. package/src/app/settings/shell/routing.spec.ts +290 -0
  2482. package/src/app/settings/shell/routing.ts +276 -0
  2483. package/src/app/settings/shell/search.spec.ts +93 -0
  2484. package/src/app/settings/shell/search.ts +98 -0
  2485. package/src/app/settings/usage/UsageAlerts.tsx +475 -0
  2486. package/src/app/settings/usage/UsageCharts.tsx +316 -0
  2487. package/src/app/settings/usage/UsageGroup.tsx +48 -0
  2488. package/src/app/settings/usage/UsagePage.spec.tsx +394 -0
  2489. package/src/app/settings/usage/UsagePage.tsx +878 -0
  2490. package/src/app/settings/usage/usage-model.spec.ts +98 -0
  2491. package/src/app/settings/usage/usage-model.ts +248 -0
  2492. package/src/app/settings/use-provider-key-save-scope.ts +32 -0
  2493. package/src/app/settings/useBuilderStatus.spec.tsx +2813 -0
  2494. package/src/app/settings/useBuilderStatus.ts +1720 -0
  2495. package/src/app/settings/useSettingsPanelController.spec.ts +138 -0
  2496. package/src/app/settings/useSettingsPanelController.ts +186 -0
  2497. package/src/app/setup-connections/BuilderConnectCard.spec.tsx +534 -0
  2498. package/src/app/setup-connections/BuilderConnectCard.tsx +514 -0
  2499. package/src/app/setup-connections/ProviderReadinessBadge.tsx +72 -0
  2500. package/src/app/setup-connections/SetupConnectionsPage.tsx +94 -0
  2501. package/src/app/setup-connections/index.ts +11 -0
  2502. package/src/app/setup-connections/useBuilderConnectCardController.spec.tsx +238 -0
  2503. package/src/app/setup-connections/useBuilderConnectCardController.ts +113 -0
  2504. package/src/app/shared/AboutAgentNativeDialog.tsx +149 -0
  2505. package/src/app/shared/AgentNativeIcon.tsx +33 -0
  2506. package/src/app/shared/AppShellSkeleton.tsx +1120 -0
  2507. package/src/app/shared/AppSidebar.spec.tsx +135 -0
  2508. package/src/app/shared/AppSidebar.tsx +202 -0
  2509. package/src/app/shared/AppearancePicker.tsx +74 -0
  2510. package/src/app/shared/ClientOnly.spec.tsx +61 -0
  2511. package/src/app/shared/ClientOnly.tsx +17 -0
  2512. package/src/app/shared/CommandMenu.spec.tsx +942 -0
  2513. package/src/app/shared/CommandMenu.tsx +863 -0
  2514. package/src/app/shared/DefaultSpinner.tsx +129 -0
  2515. package/src/app/shared/EnvironmentBadge.tsx +525 -0
  2516. package/src/app/shared/ErrorBoundary.spec.tsx +28 -0
  2517. package/src/app/shared/ErrorBoundary.tsx +350 -0
  2518. package/src/app/shared/LanguagePicker.spec.tsx +652 -0
  2519. package/src/app/shared/LanguagePicker.tsx +247 -0
  2520. package/src/app/shared/LazyChunkErrorBoundary.tsx +22 -0
  2521. package/src/app/shared/LazyChunkRetryFallback.tsx +27 -0
  2522. package/src/app/shared/PoweredByBadge.tsx +264 -0
  2523. package/src/app/shared/PrimitiveButton.spec.tsx +210 -0
  2524. package/src/app/shared/PrimitiveButton.tsx +58 -0
  2525. package/src/app/shared/RouteTransitionIndicator.spec.tsx +189 -0
  2526. package/src/app/shared/RouteTransitionIndicator.tsx +55 -0
  2527. package/src/app/shared/RuntimeConfigNotice.tsx +181 -0
  2528. package/src/app/shared/StarfieldBackground.tsx +423 -0
  2529. package/src/app/shared/Turnstile.tsx +111 -0
  2530. package/src/app/shared/index.ts +19 -0
  2531. package/src/app/shared/lazy-chunk-error-boundary.spec.tsx +72 -0
  2532. package/src/app/sharing/AgentShareSection.tsx +138 -0
  2533. package/src/app/sharing/ShareButton.spec.tsx +1238 -0
  2534. package/src/app/sharing/ShareButton.tsx +1625 -0
  2535. package/src/app/sharing/ShareDialog.spec.tsx +197 -0
  2536. package/src/app/sharing/ShareDialog.tsx +511 -0
  2537. package/src/app/sharing/VisibilityBadge.tsx +4 -0
  2538. package/src/app/sharing/index.ts +4 -0
  2539. package/src/app/sharing/use-share-org-member-search.spec.tsx +72 -0
  2540. package/src/app/sharing/useShareButtonController.spec.tsx +356 -0
  2541. package/src/app/sharing/useShareDialogController.spec.tsx +385 -0
  2542. package/src/app/styles/agent-conversation.css +770 -0
  2543. package/src/app/styles/agent-native.css +1429 -0
  2544. package/src/app/styles/agent-native.spec.ts +420 -0
  2545. package/src/app/styles/blocks.css +1668 -0
  2546. package/src/app/styles/chat-history-list.css +15 -0
  2547. package/src/app/styles/rich-markdown-editor.css +1 -0
  2548. package/src/app/styles/tokens/agent-kit.css +116 -0
  2549. package/src/app/terminal/AgentTerminal.spec.ts +328 -0
  2550. package/src/app/terminal/AgentTerminal.tsx +542 -0
  2551. package/src/app/terminal/index.ts +6 -0
  2552. package/src/app/transcription/BuilderTranscriptionCta.spec.tsx +59 -0
  2553. package/src/app/transcription/BuilderTranscriptionCta.tsx +65 -0
  2554. package/src/app/transcription/index.ts +1 -0
  2555. package/src/app-shell/prompt-home.css +4 -0
  2556. package/src/composer/ComposerContextMenu.spec.tsx +260 -38
  2557. package/src/composer/ComposerContextMenu.tsx +252 -93
  2558. package/src/composer/ComposerContextPicker.spec.tsx +16 -19
  2559. package/src/composer/ComposerContextPickerDialog.spec.tsx +121 -3
  2560. package/src/composer/ComposerContextPickerDialog.tsx +153 -17
  2561. package/src/composer/ComposerPlusMenu.parity.spec.tsx +777 -0
  2562. package/src/composer/ComposerPlusMenu.tsx +419 -728
  2563. package/src/composer/MentionPopover.tsx +4 -1
  2564. package/src/composer/PromptComposer.context.spec.tsx +558 -23
  2565. package/src/composer/PromptComposer.submission.spec.tsx +488 -0
  2566. package/src/composer/PromptComposer.tsx +38 -32
  2567. package/src/composer/TiptapComposer.spec.ts +567 -11
  2568. package/src/composer/TiptapComposer.tsx +563 -140
  2569. package/src/composer/attachment-accept.spec.ts +12 -0
  2570. package/src/composer/attachment-accept.ts +20 -3
  2571. package/src/composer/index.ts +4 -0
  2572. package/src/composer/types.ts +1 -1
  2573. package/src/composer/use-composer-panel-placement.ts +70 -0
  2574. package/src/composer/use-mention-search.spec.tsx +123 -0
  2575. package/src/composer/use-mention-search.ts +57 -22
  2576. package/src/composer/use-skills.spec.tsx +154 -0
  2577. package/src/composer/use-skills.ts +61 -3
  2578. package/src/composer/useComposerContextPicker.ts +7 -3
  2579. package/src/styles.css +2 -3
  2580. package/dist/app-shell/PromptHome.spec.d.ts +0 -2
  2581. package/dist/app-shell/PromptHome.spec.d.ts.map +0 -1
  2582. package/dist/app-shell/PromptHome.spec.js +0 -289
  2583. package/dist/app-shell/PromptHome.spec.js.map +0 -1
  2584. package/dist/app-shell/TemplatePreviewDialog.spec.d.ts +0 -2
  2585. package/dist/app-shell/TemplatePreviewDialog.spec.d.ts.map +0 -1
  2586. package/dist/app-shell/TemplatePreviewDialog.spec.js +0 -258
  2587. package/dist/app-shell/TemplatePreviewDialog.spec.js.map +0 -1
  2588. package/dist/app-shell/sidebar-footer-actions.spec.d.ts +0 -2
  2589. package/dist/app-shell/sidebar-footer-actions.spec.d.ts.map +0 -1
  2590. package/dist/app-shell/sidebar-footer-actions.spec.js +0 -43
  2591. package/dist/app-shell/sidebar-footer-actions.spec.js.map +0 -1
  2592. package/dist/app-shell/sidebar-overflow.spec.d.ts +0 -2
  2593. package/dist/app-shell/sidebar-overflow.spec.d.ts.map +0 -1
  2594. package/dist/app-shell/sidebar-overflow.spec.js +0 -109
  2595. package/dist/app-shell/sidebar-overflow.spec.js.map +0 -1
  2596. package/dist/app-shell/sidebar.spec.d.ts +0 -2
  2597. package/dist/app-shell/sidebar.spec.d.ts.map +0 -1
  2598. package/dist/app-shell/sidebar.spec.js +0 -112
  2599. package/dist/app-shell/sidebar.spec.js.map +0 -1
  2600. package/dist/app-shell/use-persistent-sidebar-collapsed.spec.d.ts +0 -2
  2601. package/dist/app-shell/use-persistent-sidebar-collapsed.spec.d.ts.map +0 -1
  2602. package/dist/app-shell/use-persistent-sidebar-collapsed.spec.js +0 -157
  2603. package/dist/app-shell/use-persistent-sidebar-collapsed.spec.js.map +0 -1
  2604. package/dist/canvas-annotations/DrawOverlay.spec.d.ts +0 -2
  2605. package/dist/canvas-annotations/DrawOverlay.spec.d.ts.map +0 -1
  2606. package/dist/canvas-annotations/DrawOverlay.spec.js +0 -119
  2607. package/dist/canvas-annotations/DrawOverlay.spec.js.map +0 -1
  2608. package/dist/canvas-interactions/canvas-interactions.spec.d.ts +0 -2
  2609. package/dist/canvas-interactions/canvas-interactions.spec.d.ts.map +0 -1
  2610. package/dist/canvas-interactions/canvas-interactions.spec.js +0 -593
  2611. package/dist/canvas-interactions/canvas-interactions.spec.js.map +0 -1
  2612. package/dist/chat-history/ChatHistoryList.spec.d.ts +0 -2
  2613. package/dist/chat-history/ChatHistoryList.spec.d.ts.map +0 -1
  2614. package/dist/chat-history/ChatHistoryList.spec.js +0 -289
  2615. package/dist/chat-history/ChatHistoryList.spec.js.map +0 -1
  2616. package/dist/chat-history/ChatHistoryRail.spec.d.ts +0 -2
  2617. package/dist/chat-history/ChatHistoryRail.spec.d.ts.map +0 -1
  2618. package/dist/chat-history/ChatHistoryRail.spec.js +0 -185
  2619. package/dist/chat-history/ChatHistoryRail.spec.js.map +0 -1
  2620. package/dist/chat-history/useChatHistoryRailController.spec.d.ts +0 -2
  2621. package/dist/chat-history/useChatHistoryRailController.spec.d.ts.map +0 -1
  2622. package/dist/chat-history/useChatHistoryRailController.spec.js +0 -101
  2623. package/dist/chat-history/useChatHistoryRailController.spec.js.map +0 -1
  2624. package/dist/collab-ui/PresenceBar.spec.d.ts +0 -2
  2625. package/dist/collab-ui/PresenceBar.spec.d.ts.map +0 -1
  2626. package/dist/collab-ui/PresenceBar.spec.js +0 -101
  2627. package/dist/collab-ui/PresenceBar.spec.js.map +0 -1
  2628. package/dist/collab-ui/lead-client.spec.d.ts +0 -2
  2629. package/dist/collab-ui/lead-client.spec.d.ts.map +0 -1
  2630. package/dist/collab-ui/lead-client.spec.js +0 -15
  2631. package/dist/collab-ui/lead-client.spec.js.map +0 -1
  2632. package/dist/collab-ui/types.spec.d.ts +0 -2
  2633. package/dist/collab-ui/types.spec.d.ts.map +0 -1
  2634. package/dist/collab-ui/types.spec.js +0 -49
  2635. package/dist/collab-ui/types.spec.js.map +0 -1
  2636. package/dist/composer/AgentComposerFrame.spec.d.ts +0 -2
  2637. package/dist/composer/AgentComposerFrame.spec.d.ts.map +0 -1
  2638. package/dist/composer/AgentComposerFrame.spec.js +0 -18
  2639. package/dist/composer/AgentComposerFrame.spec.js.map +0 -1
  2640. package/dist/composer/AgentComposerFrame.viewport.spec.d.ts +0 -2
  2641. package/dist/composer/AgentComposerFrame.viewport.spec.d.ts.map +0 -1
  2642. package/dist/composer/AgentComposerFrame.viewport.spec.js +0 -96
  2643. package/dist/composer/AgentComposerFrame.viewport.spec.js.map +0 -1
  2644. package/dist/composer/AgentSuggestionBar.spec.d.ts +0 -2
  2645. package/dist/composer/AgentSuggestionBar.spec.d.ts.map +0 -1
  2646. package/dist/composer/AgentSuggestionBar.spec.js +0 -63
  2647. package/dist/composer/AgentSuggestionBar.spec.js.map +0 -1
  2648. package/dist/composer/ComposerContextMenu.spec.d.ts +0 -2
  2649. package/dist/composer/ComposerContextMenu.spec.d.ts.map +0 -1
  2650. package/dist/composer/ComposerContextMenu.spec.js +0 -307
  2651. package/dist/composer/ComposerContextMenu.spec.js.map +0 -1
  2652. package/dist/composer/ComposerContextPicker.spec.d.ts +0 -2
  2653. package/dist/composer/ComposerContextPicker.spec.d.ts.map +0 -1
  2654. package/dist/composer/ComposerContextPicker.spec.js +0 -454
  2655. package/dist/composer/ComposerContextPicker.spec.js.map +0 -1
  2656. package/dist/composer/ComposerContextPickerDialog.spec.d.ts +0 -2
  2657. package/dist/composer/ComposerContextPickerDialog.spec.d.ts.map +0 -1
  2658. package/dist/composer/ComposerContextPickerDialog.spec.js +0 -336
  2659. package/dist/composer/ComposerContextPickerDialog.spec.js.map +0 -1
  2660. package/dist/composer/ComposerPlusMenu.spec.d.ts +0 -2
  2661. package/dist/composer/ComposerPlusMenu.spec.d.ts.map +0 -1
  2662. package/dist/composer/ComposerPlusMenu.spec.js +0 -12
  2663. package/dist/composer/ComposerPlusMenu.spec.js.map +0 -1
  2664. package/dist/composer/MentionItemMedia.spec.d.ts +0 -2
  2665. package/dist/composer/MentionItemMedia.spec.d.ts.map +0 -1
  2666. package/dist/composer/MentionItemMedia.spec.js +0 -72
  2667. package/dist/composer/MentionItemMedia.spec.js.map +0 -1
  2668. package/dist/composer/MessageQueueDrawer.spec.d.ts +0 -2
  2669. package/dist/composer/MessageQueueDrawer.spec.d.ts.map +0 -1
  2670. package/dist/composer/MessageQueueDrawer.spec.js +0 -108
  2671. package/dist/composer/MessageQueueDrawer.spec.js.map +0 -1
  2672. package/dist/composer/PastedTextChip.spec.d.ts +0 -2
  2673. package/dist/composer/PastedTextChip.spec.d.ts.map +0 -1
  2674. package/dist/composer/PastedTextChip.spec.js +0 -42
  2675. package/dist/composer/PastedTextChip.spec.js.map +0 -1
  2676. package/dist/composer/PromptComposer.context.spec.d.ts +0 -2
  2677. package/dist/composer/PromptComposer.context.spec.d.ts.map +0 -1
  2678. package/dist/composer/PromptComposer.context.spec.js +0 -671
  2679. package/dist/composer/PromptComposer.context.spec.js.map +0 -1
  2680. package/dist/composer/PromptComposer.spec.d.ts +0 -2
  2681. package/dist/composer/PromptComposer.spec.d.ts.map +0 -1
  2682. package/dist/composer/PromptComposer.spec.js +0 -188
  2683. package/dist/composer/PromptComposer.spec.js.map +0 -1
  2684. package/dist/composer/RealtimeVoiceMode.spec.d.ts +0 -2
  2685. package/dist/composer/RealtimeVoiceMode.spec.d.ts.map +0 -1
  2686. package/dist/composer/RealtimeVoiceMode.spec.js +0 -541
  2687. package/dist/composer/RealtimeVoiceMode.spec.js.map +0 -1
  2688. package/dist/composer/TiptapComposer.spec.d.ts +0 -2
  2689. package/dist/composer/TiptapComposer.spec.d.ts.map +0 -1
  2690. package/dist/composer/TiptapComposer.spec.js +0 -1780
  2691. package/dist/composer/TiptapComposer.spec.js.map +0 -1
  2692. package/dist/composer/VoiceButton.spec.d.ts +0 -2
  2693. package/dist/composer/VoiceButton.spec.d.ts.map +0 -1
  2694. package/dist/composer/VoiceButton.spec.js +0 -27
  2695. package/dist/composer/VoiceButton.spec.js.map +0 -1
  2696. package/dist/composer/asset-picker-url.spec.d.ts +0 -2
  2697. package/dist/composer/asset-picker-url.spec.d.ts.map +0 -1
  2698. package/dist/composer/asset-picker-url.spec.js +0 -23
  2699. package/dist/composer/asset-picker-url.spec.js.map +0 -1
  2700. package/dist/composer/attachment-accept.spec.d.ts +0 -2
  2701. package/dist/composer/attachment-accept.spec.d.ts.map +0 -1
  2702. package/dist/composer/attachment-accept.spec.js +0 -39
  2703. package/dist/composer/attachment-accept.spec.js.map +0 -1
  2704. package/dist/composer/context-items.spec.d.ts +0 -2
  2705. package/dist/composer/context-items.spec.d.ts.map +0 -1
  2706. package/dist/composer/context-items.spec.js +0 -43
  2707. package/dist/composer/context-items.spec.js.map +0 -1
  2708. package/dist/composer/draft-key.spec.d.ts +0 -2
  2709. package/dist/composer/draft-key.spec.d.ts.map +0 -1
  2710. package/dist/composer/draft-key.spec.js +0 -13
  2711. package/dist/composer/draft-key.spec.js.map +0 -1
  2712. package/dist/composer/model-selection.spec.d.ts +0 -2
  2713. package/dist/composer/model-selection.spec.d.ts.map +0 -1
  2714. package/dist/composer/model-selection.spec.js +0 -46
  2715. package/dist/composer/model-selection.spec.js.map +0 -1
  2716. package/dist/composer/pasted-text.spec.d.ts +0 -2
  2717. package/dist/composer/pasted-text.spec.d.ts.map +0 -1
  2718. package/dist/composer/pasted-text.spec.js +0 -105
  2719. package/dist/composer/pasted-text.spec.js.map +0 -1
  2720. package/dist/composer/prompt-attachments.spec.d.ts +0 -2
  2721. package/dist/composer/prompt-attachments.spec.d.ts.map +0 -1
  2722. package/dist/composer/prompt-attachments.spec.js +0 -63
  2723. package/dist/composer/prompt-attachments.spec.js.map +0 -1
  2724. package/dist/composer/realtime-voice-audio-level.spec.d.ts +0 -2
  2725. package/dist/composer/realtime-voice-audio-level.spec.d.ts.map +0 -1
  2726. package/dist/composer/realtime-voice-audio-level.spec.js +0 -32
  2727. package/dist/composer/realtime-voice-audio-level.spec.js.map +0 -1
  2728. package/dist/composer/realtime-voice-transcript.spec.d.ts +0 -2
  2729. package/dist/composer/realtime-voice-transcript.spec.d.ts.map +0 -1
  2730. package/dist/composer/realtime-voice-transcript.spec.js +0 -73
  2731. package/dist/composer/realtime-voice-transcript.spec.js.map +0 -1
  2732. package/dist/composer/runtime-adapters.spec.d.ts +0 -2
  2733. package/dist/composer/runtime-adapters.spec.d.ts.map +0 -1
  2734. package/dist/composer/runtime-adapters.spec.js +0 -68
  2735. package/dist/composer/runtime-adapters.spec.js.map +0 -1
  2736. package/dist/composer/useRealtimeVoiceMode.spec.d.ts +0 -2
  2737. package/dist/composer/useRealtimeVoiceMode.spec.d.ts.map +0 -1
  2738. package/dist/composer/useRealtimeVoiceMode.spec.js +0 -959
  2739. package/dist/composer/useRealtimeVoiceMode.spec.js.map +0 -1
  2740. package/dist/composer/useVoiceDictation.browser.spec.d.ts +0 -2
  2741. package/dist/composer/useVoiceDictation.browser.spec.d.ts.map +0 -1
  2742. package/dist/composer/useVoiceDictation.browser.spec.js +0 -220
  2743. package/dist/composer/useVoiceDictation.browser.spec.js.map +0 -1
  2744. package/dist/composer/useVoiceDictation.spec.d.ts +0 -2
  2745. package/dist/composer/useVoiceDictation.spec.d.ts.map +0 -1
  2746. package/dist/composer/useVoiceDictation.spec.js +0 -32
  2747. package/dist/composer/useVoiceDictation.spec.js.map +0 -1
  2748. package/dist/conformance/conformance.spec.d.ts +0 -2
  2749. package/dist/conformance/conformance.spec.d.ts.map +0 -1
  2750. package/dist/conformance/conformance.spec.js +0 -87
  2751. package/dist/conformance/conformance.spec.js.map +0 -1
  2752. package/dist/context-ui/ContextMeter.spec.d.ts +0 -2
  2753. package/dist/context-ui/ContextMeter.spec.d.ts.map +0 -1
  2754. package/dist/context-ui/ContextMeter.spec.js +0 -52
  2755. package/dist/context-ui/ContextMeter.spec.js.map +0 -1
  2756. package/dist/dashboard/GenericChartPanel.spec.d.ts +0 -2
  2757. package/dist/dashboard/GenericChartPanel.spec.d.ts.map +0 -1
  2758. package/dist/dashboard/GenericChartPanel.spec.js +0 -41
  2759. package/dist/dashboard/GenericChartPanel.spec.js.map +0 -1
  2760. package/dist/dashboard/dashboard-layout.spec.d.ts +0 -2
  2761. package/dist/dashboard/dashboard-layout.spec.d.ts.map +0 -1
  2762. package/dist/dashboard/dashboard-layout.spec.js +0 -52
  2763. package/dist/dashboard/dashboard-layout.spec.js.map +0 -1
  2764. package/dist/data-grid/DataGrid.spec.d.ts +0 -2
  2765. package/dist/data-grid/DataGrid.spec.d.ts.map +0 -1
  2766. package/dist/data-grid/DataGrid.spec.js +0 -226
  2767. package/dist/data-grid/DataGrid.spec.js.map +0 -1
  2768. package/dist/design-system/default-adapter.spec.d.ts +0 -2
  2769. package/dist/design-system/default-adapter.spec.d.ts.map +0 -1
  2770. package/dist/design-system/default-adapter.spec.js +0 -129
  2771. package/dist/design-system/default-adapter.spec.js.map +0 -1
  2772. package/dist/design-system/design-system.spec.d.ts +0 -2
  2773. package/dist/design-system/design-system.spec.d.ts.map +0 -1
  2774. package/dist/design-system/design-system.spec.js +0 -231
  2775. package/dist/design-system/design-system.spec.js.map +0 -1
  2776. package/dist/design-system/theme.spec.d.ts +0 -2
  2777. package/dist/design-system/theme.spec.d.ts.map +0 -1
  2778. package/dist/design-system/theme.spec.js +0 -43
  2779. package/dist/design-system/theme.spec.js.map +0 -1
  2780. package/dist/design-tweaks/font-family.spec.d.ts +0 -2
  2781. package/dist/design-tweaks/font-family.spec.d.ts.map +0 -1
  2782. package/dist/design-tweaks/font-family.spec.js +0 -29
  2783. package/dist/design-tweaks/font-family.spec.js.map +0 -1
  2784. package/dist/design-tweaks/visual-style-controls.spec.d.ts +0 -2
  2785. package/dist/design-tweaks/visual-style-controls.spec.d.ts.map +0 -1
  2786. package/dist/design-tweaks/visual-style-controls.spec.js +0 -457
  2787. package/dist/design-tweaks/visual-style-controls.spec.js.map +0 -1
  2788. package/dist/editor/DragHandle.spec.d.ts +0 -2
  2789. package/dist/editor/DragHandle.spec.d.ts.map +0 -1
  2790. package/dist/editor/DragHandle.spec.js +0 -532
  2791. package/dist/editor/DragHandle.spec.js.map +0 -1
  2792. package/dist/editor/ImageExtension.roundtrip.spec.d.ts +0 -2
  2793. package/dist/editor/ImageExtension.roundtrip.spec.d.ts.map +0 -1
  2794. package/dist/editor/ImageExtension.roundtrip.spec.js +0 -83
  2795. package/dist/editor/ImageExtension.roundtrip.spec.js.map +0 -1
  2796. package/dist/editor/RegistryBlockNode.spec.d.ts +0 -2
  2797. package/dist/editor/RegistryBlockNode.spec.d.ts.map +0 -1
  2798. package/dist/editor/RegistryBlockNode.spec.js +0 -275
  2799. package/dist/editor/RegistryBlockNode.spec.js.map +0 -1
  2800. package/dist/editor/RichMarkdownEditor.collab.spec.d.ts +0 -2
  2801. package/dist/editor/RichMarkdownEditor.collab.spec.d.ts.map +0 -1
  2802. package/dist/editor/RichMarkdownEditor.collab.spec.js +0 -57
  2803. package/dist/editor/RichMarkdownEditor.collab.spec.js.map +0 -1
  2804. package/dist/editor/RichMarkdownEditor.roundtrip.spec.d.ts +0 -2
  2805. package/dist/editor/RichMarkdownEditor.roundtrip.spec.d.ts.map +0 -1
  2806. package/dist/editor/RichMarkdownEditor.roundtrip.spec.js +0 -131
  2807. package/dist/editor/RichMarkdownEditor.roundtrip.spec.js.map +0 -1
  2808. package/dist/editor/SharedRichEditor.spec.d.ts +0 -2
  2809. package/dist/editor/SharedRichEditor.spec.d.ts.map +0 -1
  2810. package/dist/editor/SharedRichEditor.spec.js +0 -133
  2811. package/dist/editor/SharedRichEditor.spec.js.map +0 -1
  2812. package/dist/editor/SlashCommandMenu.spec.d.ts +0 -2
  2813. package/dist/editor/SlashCommandMenu.spec.d.ts.map +0 -1
  2814. package/dist/editor/SlashCommandMenu.spec.js +0 -67
  2815. package/dist/editor/SlashCommandMenu.spec.js.map +0 -1
  2816. package/dist/editor/TaskListPaste.spec.d.ts +0 -2
  2817. package/dist/editor/TaskListPaste.spec.d.ts.map +0 -1
  2818. package/dist/editor/TaskListPaste.spec.js +0 -239
  2819. package/dist/editor/TaskListPaste.spec.js.map +0 -1
  2820. package/dist/editor/disableHistory.spec.d.ts +0 -2
  2821. package/dist/editor/disableHistory.spec.d.ts.map +0 -1
  2822. package/dist/editor/disableHistory.spec.js +0 -57
  2823. package/dist/editor/disableHistory.spec.js.map +0 -1
  2824. package/dist/editor/gfmDoc.spec.d.ts +0 -2
  2825. package/dist/editor/gfmDoc.spec.d.ts.map +0 -1
  2826. package/dist/editor/gfmDoc.spec.js +0 -159
  2827. package/dist/editor/gfmDoc.spec.js.map +0 -1
  2828. package/dist/editor/structuralReorderUndo.spec.d.ts +0 -2
  2829. package/dist/editor/structuralReorderUndo.spec.d.ts.map +0 -1
  2830. package/dist/editor/structuralReorderUndo.spec.js +0 -92
  2831. package/dist/editor/structuralReorderUndo.spec.js.map +0 -1
  2832. package/dist/editor/surgical-apply.spec.d.ts +0 -2
  2833. package/dist/editor/surgical-apply.spec.d.ts.map +0 -1
  2834. package/dist/editor/surgical-apply.spec.js +0 -398
  2835. package/dist/editor/surgical-apply.spec.js.map +0 -1
  2836. package/dist/editor/useCollabReconcile.concurrent.spec.d.ts +0 -2
  2837. package/dist/editor/useCollabReconcile.concurrent.spec.d.ts.map +0 -1
  2838. package/dist/editor/useCollabReconcile.concurrent.spec.js +0 -2062
  2839. package/dist/editor/useCollabReconcile.concurrent.spec.js.map +0 -1
  2840. package/dist/editor/useCollabReconcile.idempotent.spec.d.ts +0 -2
  2841. package/dist/editor/useCollabReconcile.idempotent.spec.d.ts.map +0 -1
  2842. package/dist/editor/useCollabReconcile.idempotent.spec.js +0 -199
  2843. package/dist/editor/useCollabReconcile.idempotent.spec.js.map +0 -1
  2844. package/dist/editor/useCollabReconcile.seed.spec.d.ts +0 -2
  2845. package/dist/editor/useCollabReconcile.seed.spec.d.ts.map +0 -1
  2846. package/dist/editor/useCollabReconcile.seed.spec.js +0 -55
  2847. package/dist/editor/useCollabReconcile.seed.spec.js.map +0 -1
  2848. package/dist/editor/useCollabReconcile.spec.d.ts +0 -2
  2849. package/dist/editor/useCollabReconcile.spec.d.ts.map +0 -1
  2850. package/dist/editor/useCollabReconcile.spec.js +0 -20
  2851. package/dist/editor/useCollabReconcile.spec.js.map +0 -1
  2852. package/dist/icons/ResourceIcon.spec.d.ts +0 -2
  2853. package/dist/icons/ResourceIcon.spec.d.ts.map +0 -1
  2854. package/dist/icons/ResourceIcon.spec.js +0 -23
  2855. package/dist/icons/ResourceIcon.spec.js.map +0 -1
  2856. package/dist/icons/catalog.spec.d.ts +0 -2
  2857. package/dist/icons/catalog.spec.d.ts.map +0 -1
  2858. package/dist/icons/catalog.spec.js +0 -29
  2859. package/dist/icons/catalog.spec.js.map +0 -1
  2860. package/dist/icons/emoji-catalog.spec.d.ts +0 -2
  2861. package/dist/icons/emoji-catalog.spec.d.ts.map +0 -1
  2862. package/dist/icons/emoji-catalog.spec.js +0 -29
  2863. package/dist/icons/emoji-catalog.spec.js.map +0 -1
  2864. package/dist/icons/icon-persistence.spec.d.ts +0 -2
  2865. package/dist/icons/icon-persistence.spec.d.ts.map +0 -1
  2866. package/dist/icons/icon-persistence.spec.js +0 -38
  2867. package/dist/icons/icon-persistence.spec.js.map +0 -1
  2868. package/dist/icons/recents.spec.d.ts +0 -2
  2869. package/dist/icons/recents.spec.d.ts.map +0 -1
  2870. package/dist/icons/recents.spec.js +0 -29
  2871. package/dist/icons/recents.spec.js.map +0 -1
  2872. package/dist/onboarding/AuthForm.spec.d.ts +0 -2
  2873. package/dist/onboarding/AuthForm.spec.d.ts.map +0 -1
  2874. package/dist/onboarding/AuthForm.spec.js +0 -25
  2875. package/dist/onboarding/AuthForm.spec.js.map +0 -1
  2876. package/dist/sharing/ShareControls.spec.d.ts +0 -2
  2877. package/dist/sharing/ShareControls.spec.d.ts.map +0 -1
  2878. package/dist/sharing/ShareControls.spec.js +0 -55
  2879. package/dist/sharing/ShareControls.spec.js.map +0 -1
  2880. package/dist/sharing/VisibilityBadge.spec.d.ts +0 -2
  2881. package/dist/sharing/VisibilityBadge.spec.d.ts.map +0 -1
  2882. package/dist/sharing/VisibilityBadge.spec.js +0 -60
  2883. package/dist/sharing/VisibilityBadge.spec.js.map +0 -1
  2884. package/dist/ui/command.spec.d.ts +0 -2
  2885. package/dist/ui/command.spec.d.ts.map +0 -1
  2886. package/dist/ui/command.spec.js +0 -48
  2887. package/dist/ui/command.spec.js.map +0 -1
  2888. package/dist/ui/cube-loader.spec.d.ts +0 -2
  2889. package/dist/ui/cube-loader.spec.d.ts.map +0 -1
  2890. package/dist/ui/cube-loader.spec.js +0 -79
  2891. package/dist/ui/cube-loader.spec.js.map +0 -1
  2892. package/dist/ui/dialog.spec.d.ts +0 -2
  2893. package/dist/ui/dialog.spec.d.ts.map +0 -1
  2894. package/dist/ui/dialog.spec.js +0 -21
  2895. package/dist/ui/dialog.spec.js.map +0 -1
  2896. package/dist/ui/filter-trigger.spec.d.ts +0 -2
  2897. package/dist/ui/filter-trigger.spec.d.ts.map +0 -1
  2898. package/dist/ui/filter-trigger.spec.js +0 -22
  2899. package/dist/ui/filter-trigger.spec.js.map +0 -1
  2900. package/dist/ui/menu-shortcut-spacing.test.d.ts +0 -2
  2901. package/dist/ui/menu-shortcut-spacing.test.d.ts.map +0 -1
  2902. package/dist/ui/menu-shortcut-spacing.test.js +0 -18
  2903. package/dist/ui/menu-shortcut-spacing.test.js.map +0 -1
@@ -0,0 +1,3139 @@
1
+ /** @jsxRuntime classic */
2
+
3
+ import { frameworkRoutePrefix } from "@agent-native/core/client/api-path";
4
+ import {
5
+ isAgentNativeDesktop,
6
+ isBuilderDesktop,
7
+ normalizeOAuthReturnPath,
8
+ shouldRetryAuthSessionProbe,
9
+ } from "@agent-native/core/client/auth/auth-page-helpers";
10
+ import { openOAuthPopup } from "@agent-native/core/client/oauth-popup";
11
+ import { normalizeLocaleCode } from "@agent-native/core/localization/shared";
12
+ import { canonicalTrackingEvent } from "@agent-native/core/shared/analytics-events";
13
+ import { getAppStatus } from "@agent-native/core/shared/app-status";
14
+ import { AUTH_SIGNUP_INVITE_ONLY_CODE } from "@agent-native/core/shared/auth-copy";
15
+ import type {
16
+ AuthLocaleOption,
17
+ AuthPageProps,
18
+ AuthView,
19
+ } from "@agent-native/core/shared/auth-page-types";
20
+ import { toPublicFrameworkPath } from "@agent-native/core/shared/framework-route-prefix";
21
+ import { isQaTestEmail } from "@agent-native/core/shared/qa-test-email";
22
+ import { DEPLOY_SETTINGS_REQUIRED_CODE } from "@agent-native/core/shared/runtime-config";
23
+ import {
24
+ isVerificationLinkInvalid,
25
+ signInJourney,
26
+ type SignInJourney,
27
+ } from "@agent-native/core/shared/sign-in-journey";
28
+ import { isSyntheticTrafficValue } from "@agent-native/core/shared/test-traffic";
29
+ import { AuthForm } from "@agent-native/toolkit/onboarding";
30
+ import { IconLoader2 } from "@tabler/icons-react";
31
+ import * as React from "react";
32
+
33
+ import { StarfieldBackground } from "../shared/StarfieldBackground.js";
34
+
35
+ export type {
36
+ AuthLegalNotice,
37
+ AuthLocaleOption,
38
+ AuthMarketingProps,
39
+ AuthPageProps,
40
+ AuthView,
41
+ } from "@agent-native/core/shared/auth-page-types";
42
+ export {
43
+ isAgentNativeDesktop,
44
+ isBuilderDesktop,
45
+ isElectron,
46
+ normalizeOAuthReturnPath,
47
+ shouldRetryAuthSessionProbe,
48
+ } from "@agent-native/core/client/auth/auth-page-helpers";
49
+
50
+ type Notice = { kind: "error" | "success"; text: string } | null;
51
+ type AuthRequestResult = {
52
+ response: Response;
53
+ data: Record<string, unknown>;
54
+ readable: boolean;
55
+ };
56
+
57
+ const EMAIL_PATTERN = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
58
+ const TAB_STORAGE_KEY = "an.onboarding.tab";
59
+ const PENDING_SIGNUP_EMAIL_STORAGE_KEY = "an.onboarding.pendingSignupEmail";
60
+ const ANALYTICS_ANONYMOUS_ID_KEY = "agent-native.anonymous_id";
61
+ const ANALYTICS_SESSION_ID_KEY = "agent-native.session_id";
62
+ const FIRST_TOUCH_STORAGE_KEY = "an_attribution";
63
+ const FIRST_TOUCH_COOKIE = "an_ft";
64
+ const GOOGLE_AUTH_URL_PATH = "/_agent-native/google/auth-url";
65
+ const BUILDER_DESKTOP_RETURN_ORIGIN = "http://127.0.0.1:8080";
66
+ const useIsomorphicLayoutEffect =
67
+ typeof window === "undefined" ? React.useEffect : React.useLayoutEffect;
68
+
69
+ export { isVerificationLinkInvalid };
70
+
71
+ function normalizeEmail(value: string): string {
72
+ return value.trim().toLowerCase();
73
+ }
74
+
75
+ function isValidEmail(value: string): boolean {
76
+ return EMAIL_PATTERN.test(normalizeEmail(value));
77
+ }
78
+
79
+ function copyText(
80
+ locales: Record<string, Record<string, string>>,
81
+ defaultLocale: string,
82
+ locale: string,
83
+ key: string,
84
+ ): string {
85
+ return locales[locale]?.[key] ?? locales[defaultLocale]?.[key] ?? key;
86
+ }
87
+
88
+ function resolveLocale(
89
+ value: string | undefined,
90
+ localeOptions: AuthLocaleOption[],
91
+ defaultLocale: string,
92
+ ): string {
93
+ if (!value || value === "system") return defaultLocale;
94
+ return (
95
+ normalizeLocaleCode(
96
+ value,
97
+ localeOptions.map((option) => option.value),
98
+ ) ?? defaultLocale
99
+ );
100
+ }
101
+
102
+ function resolveSystemLocale(
103
+ localeOptions: AuthLocaleOption[],
104
+ defaultLocale: string,
105
+ ): string {
106
+ if (typeof navigator === "undefined") return defaultLocale;
107
+ const candidates = navigator.languages?.length
108
+ ? navigator.languages
109
+ : [navigator.language];
110
+ for (const candidate of candidates) {
111
+ const locale = resolveLocale(candidate, localeOptions, defaultLocale);
112
+ if (locale !== defaultLocale || candidate?.startsWith(defaultLocale)) {
113
+ return locale;
114
+ }
115
+ }
116
+ return defaultLocale;
117
+ }
118
+
119
+ function inferWorkspaceBasePath(pathname: string): string {
120
+ const firstSegment = pathname.split("/").find(Boolean);
121
+ if (
122
+ !firstSegment ||
123
+ ["_agent-native", "api", "sign-in", "login", "signup"].includes(
124
+ firstSegment,
125
+ )
126
+ ) {
127
+ return "";
128
+ }
129
+ return `/${firstSegment}`;
130
+ }
131
+
132
+ function readStorage(key: string): string {
133
+ try {
134
+ return window.localStorage.getItem(key) ?? "";
135
+ } catch {
136
+ // coercion-ok: localStorage is optional; an empty value means no saved state.
137
+ return "";
138
+ }
139
+ }
140
+
141
+ function writeStorage(key: string, value: string): void {
142
+ try {
143
+ window.localStorage.setItem(key, value);
144
+ } catch {
145
+ // coercion-ok: browser storage is optional and auth has in-memory fallbacks.
146
+ }
147
+ }
148
+
149
+ function removeStorage(key: string): void {
150
+ try {
151
+ window.localStorage.removeItem(key);
152
+ } catch {
153
+ // coercion-ok: browser storage is optional.
154
+ }
155
+ }
156
+
157
+ function authErrorText(
158
+ data: Record<string, unknown>,
159
+ fallback: string,
160
+ inviteOnlyMessage = fallback,
161
+ ): string {
162
+ if (
163
+ data.code === AUTH_SIGNUP_INVITE_ONLY_CODE ||
164
+ data.error === AUTH_SIGNUP_INVITE_ONLY_CODE
165
+ ) {
166
+ return inviteOnlyMessage;
167
+ }
168
+ const candidate = data.error ?? data.message;
169
+ if (typeof candidate !== "string" || !candidate.trim()) return fallback;
170
+ const message = candidate.trim();
171
+ if (
172
+ /failed query|\bselect\b.*\bfrom\b|\binsert\b.*\binto\b|\bupdate\b.*\bset\b|\bdelete\b.*\bfrom\b|\bsql\b|database|relation .* does not exist|column .* does not exist|syntax error|constraint|connection refused|econn|timeout/i.test(
173
+ message,
174
+ )
175
+ ) {
176
+ return fallback;
177
+ }
178
+ return message;
179
+ }
180
+
181
+ export function isConfirmedAnonymousAuthSession(
182
+ response: Pick<Response, "ok" | "status">,
183
+ data: Record<string, unknown>,
184
+ readable: boolean,
185
+ ): boolean {
186
+ return (
187
+ response.ok &&
188
+ response.status === 200 &&
189
+ readable &&
190
+ data.error === "Not authenticated"
191
+ );
192
+ }
193
+
194
+ export function isAuthenticatedAuthSession(
195
+ response: Pick<Response, "ok">,
196
+ data: Record<string, unknown>,
197
+ ): boolean {
198
+ return response.ok && typeof data.email === "string" && !data.error;
199
+ }
200
+
201
+ async function requestJson(
202
+ url: string,
203
+ init: RequestInit = {},
204
+ ): Promise<AuthRequestResult> {
205
+ const response = await fetch(url, {
206
+ credentials: "include",
207
+ ...init,
208
+ });
209
+ let data: Record<string, unknown> = {};
210
+ let readable = false;
211
+ try {
212
+ const parsed: unknown = await response.json();
213
+ if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
214
+ data = parsed as Record<string, unknown>;
215
+ readable = true;
216
+ }
217
+ } catch {
218
+ // coercion-ok: a non-JSON response still has a status the caller can inspect.
219
+ }
220
+ return { response, data, readable };
221
+ }
222
+
223
+ function generateAnonymousId(): string {
224
+ try {
225
+ if (typeof crypto.randomUUID === "function") return crypto.randomUUID();
226
+ } catch {
227
+ // coercion-ok: the browser fallback remains usable when crypto is unavailable.
228
+ }
229
+ return `${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;
230
+ }
231
+
232
+ function safeAttributionValue(value: string | null): string {
233
+ return typeof value === "string" ? value.trim().slice(0, 120) : "";
234
+ }
235
+
236
+ function trackAuth(
237
+ app: string,
238
+ name: string,
239
+ properties: Record<string, unknown> = {},
240
+ email: string,
241
+ ): void {
242
+ if (!isValidEmail(email) || isQaTestEmail(email)) return;
243
+ if (
244
+ isSyntheticTrafficValue(
245
+ (
246
+ window as Window & {
247
+ __AGENT_NATIVE_SYNTHETIC_TRAFFIC__?: unknown;
248
+ }
249
+ ).__AGENT_NATIVE_SYNTHETIC_TRAFFIC__,
250
+ )
251
+ ) {
252
+ return;
253
+ }
254
+ try {
255
+ const config = (
256
+ window as Window & {
257
+ __AGENT_NATIVE_CONFIG__?: {
258
+ agentNativeAnalyticsPublicKey?: string;
259
+ agentNativeAnalyticsEndpoint?: string;
260
+ };
261
+ }
262
+ ).__AGENT_NATIVE_CONFIG__;
263
+ if (!config?.agentNativeAnalyticsPublicKey) return;
264
+ const anonymousId = readStorage(ANALYTICS_ANONYMOUS_ID_KEY);
265
+ if (!anonymousId) return;
266
+ const sessionId = (() => {
267
+ try {
268
+ return window.sessionStorage.getItem(ANALYTICS_SESSION_ID_KEY) ?? "";
269
+ } catch {
270
+ // coercion-ok: analytics session storage is optional.
271
+ return "";
272
+ }
273
+ })();
274
+ const endpoint =
275
+ config.agentNativeAnalyticsEndpoint ??
276
+ "https://analytics.agent-native.com/track";
277
+ const legacyProperties = { app, ...properties };
278
+ const events: Array<{
279
+ name: string;
280
+ properties: Record<string, unknown>;
281
+ }> = [{ name, properties: legacyProperties }];
282
+ const canonical = canonicalTrackingEvent(name, legacyProperties);
283
+ if (canonical) events.push(canonical);
284
+ for (const event of events) {
285
+ const body = JSON.stringify({
286
+ publicKey: config.agentNativeAnalyticsPublicKey,
287
+ event: event.name,
288
+ properties: event.properties,
289
+ anonymousId,
290
+ sessionId: sessionId || undefined,
291
+ timestamp: new Date().toISOString(),
292
+ });
293
+ if (navigator.sendBeacon?.(endpoint, body)) continue;
294
+ void fetch(endpoint, {
295
+ method: "POST",
296
+ body,
297
+ keepalive: true,
298
+ headers: { "Content-Type": "text/plain;charset=UTF-8" },
299
+ }).catch(() => undefined);
300
+ }
301
+ } catch {
302
+ // coercion-ok: analytics is best effort and cannot block authentication.
303
+ }
304
+ }
305
+
306
+ function isLoopbackHostname(): boolean {
307
+ if (typeof window === "undefined") return false;
308
+ const hostname = window.location.hostname.toLowerCase();
309
+ return (
310
+ hostname === "localhost" ||
311
+ hostname === "::1" ||
312
+ hostname === "127.0.0.1" ||
313
+ hostname.startsWith("127.")
314
+ );
315
+ }
316
+
317
+ function isBuilderPreviewHostname(): boolean {
318
+ if (typeof window === "undefined") return false;
319
+ const hostname = window.location.hostname.toLowerCase();
320
+ return (
321
+ hostname.endsWith(".builderio.xyz") ||
322
+ hostname.endsWith(".builderio.dev") ||
323
+ hostname.endsWith(".builder.codes") ||
324
+ hostname.endsWith(".builder.my")
325
+ );
326
+ }
327
+
328
+ function isBuilderPreview(): boolean {
329
+ try {
330
+ const params = new URLSearchParams(window.location.search);
331
+ if (
332
+ params.has("builder.preview") ||
333
+ params.has("builder.frameEditing") ||
334
+ params.has("__builder_editing__")
335
+ ) {
336
+ window.sessionStorage.setItem("__an_builder_preview_seen", "1");
337
+ return true;
338
+ }
339
+ if (window.sessionStorage.getItem("__an_builder_preview_seen") === "1") {
340
+ return true;
341
+ }
342
+ } catch {
343
+ // coercion-ok: preview storage is optional; referrer detection remains available.
344
+ }
345
+ const referrer = document.referrer;
346
+ return /builder\.io|builder\.my|builderio\.xyz|builderio\.dev|builder\.codes/i.test(
347
+ referrer,
348
+ );
349
+ }
350
+
351
+ export function shouldAutoFederateIdentitySso(input: {
352
+ identitySsoAuto: boolean;
353
+ publicOAuthOrigin: string;
354
+ currentOrigin: string;
355
+ }): boolean {
356
+ if (!input.identitySsoAuto || !input.publicOAuthOrigin) return false;
357
+ try {
358
+ return (
359
+ new URL(input.publicOAuthOrigin).origin ===
360
+ new URL(input.currentOrigin).origin
361
+ );
362
+ } catch {
363
+ // coercion-ok: malformed optional origin metadata fails closed for auto SSO.
364
+ return false;
365
+ }
366
+ }
367
+
368
+ function isInFrame(): boolean {
369
+ try {
370
+ return window.self !== window.top;
371
+ } catch {
372
+ // coercion-ok: cross-origin frame inspection can be denied; assume embedded.
373
+ return true;
374
+ }
375
+ }
376
+
377
+ function configuredOAuthOrigin(
378
+ value: string,
379
+ currentOrigin = typeof window === "undefined" ? "" : window.location.origin,
380
+ ): string {
381
+ if (!value) return "";
382
+ try {
383
+ const origin = new URL(value).origin;
384
+ return origin !== currentOrigin ? origin : "";
385
+ } catch {
386
+ // coercion-ok: malformed optional OAuth configuration uses same-origin behavior.
387
+ return "";
388
+ }
389
+ }
390
+
391
+ function builderPreviewReturnOrigin(): string {
392
+ if (typeof window === "undefined") return "";
393
+ const candidates = [window.location.href, document.referrer];
394
+ try {
395
+ if (window.location.ancestorOrigins) {
396
+ for (const origin of window.location.ancestorOrigins)
397
+ candidates.push(origin);
398
+ }
399
+ } catch {
400
+ // coercion-ok: ancestor frame metadata is optional and may be inaccessible.
401
+ }
402
+ for (const candidate of candidates) {
403
+ try {
404
+ const url = new URL(candidate);
405
+ const hostname = url.hostname.toLowerCase();
406
+ const isBuilderHost =
407
+ hostname === "builderio.xyz" ||
408
+ hostname.endsWith(".builderio.xyz") ||
409
+ hostname === "builderio.dev" ||
410
+ hostname.endsWith(".builderio.dev") ||
411
+ hostname === "builder.codes" ||
412
+ hostname.endsWith(".builder.codes") ||
413
+ hostname === "builder.my" ||
414
+ hostname.endsWith(".builder.my");
415
+ if (url.protocol === "https:" && isBuilderHost) return url.origin;
416
+ } catch {
417
+ // coercion-ok: malformed frame metadata is ignored.
418
+ }
419
+ }
420
+ return "";
421
+ }
422
+
423
+ export function resolveOAuthReturnOrigin(input: {
424
+ previewOrigin: string;
425
+ workspaceGatewayReturnOrigin: string;
426
+ userAgent: string;
427
+ }): string {
428
+ return (
429
+ input.previewOrigin ||
430
+ input.workspaceGatewayReturnOrigin ||
431
+ (isAgentNativeDesktop(input.userAgent) || isBuilderDesktop(input.userAgent)
432
+ ? BUILDER_DESKTOP_RETURN_ORIGIN
433
+ : "")
434
+ );
435
+ }
436
+
437
+ export function oauthReturnTarget(
438
+ target: string,
439
+ workspaceGatewayReturnOrigin: string,
440
+ userAgent = typeof navigator === "undefined" ? "" : navigator.userAgent,
441
+ ): string {
442
+ const path = normalizeOAuthReturnPath(target);
443
+ const origin = resolveOAuthReturnOrigin({
444
+ previewOrigin: builderPreviewReturnOrigin(),
445
+ workspaceGatewayReturnOrigin,
446
+ userAgent,
447
+ });
448
+ return origin ? origin + path : path;
449
+ }
450
+
451
+ export function resolveGoogleAuthUrlPath(input: {
452
+ builderPreview: boolean;
453
+ currentOrigin: string;
454
+ publicOAuthOrigin: string;
455
+ runtimeAppBasePath: string;
456
+ }): string {
457
+ const previewOrigin = input.builderPreview
458
+ ? configuredOAuthOrigin(input.publicOAuthOrigin, input.currentOrigin)
459
+ : "";
460
+ return previewOrigin
461
+ ? `${previewOrigin}${GOOGLE_AUTH_URL_PATH}`
462
+ : `${input.runtimeAppBasePath}${GOOGLE_AUTH_URL_PATH}`;
463
+ }
464
+
465
+ export function shouldUseIdentitySsoForGoogle(input: {
466
+ googleViaIdentitySso: boolean;
467
+ currentOrigin: string;
468
+ }): boolean {
469
+ if (!input.googleViaIdentitySso) return false;
470
+ try {
471
+ const url = new URL(input.currentOrigin);
472
+ return (
473
+ url.protocol === "https:" &&
474
+ /^[a-f0-9]{24}--agent-native-[a-z0-9-]+\.netlify\.app$/.test(url.hostname)
475
+ );
476
+ } catch {
477
+ // coercion-ok: an invalid browser origin cannot select the preview flow.
478
+ return false;
479
+ }
480
+ }
481
+
482
+ function createFlowId(): string {
483
+ try {
484
+ if (typeof crypto.randomUUID === "function") return crypto.randomUUID();
485
+ } catch {
486
+ // coercion-ok: the browser fallback remains usable when crypto is unavailable.
487
+ }
488
+ return `agent-native-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;
489
+ }
490
+
491
+ function createVerifier(): string {
492
+ try {
493
+ if (typeof crypto.randomUUID === "function") {
494
+ return crypto.randomUUID() + crypto.randomUUID();
495
+ }
496
+ if (typeof crypto.getRandomValues === "function") {
497
+ const bytes = new Uint8Array(32);
498
+ crypto.getRandomValues(bytes);
499
+ let binary = "";
500
+ for (const byte of bytes) binary += String.fromCharCode(byte);
501
+ return btoa(binary)
502
+ .replace(/\+/g, "-")
503
+ .replace(/\//g, "_")
504
+ .replace(/=+$/, "");
505
+ }
506
+ } catch {
507
+ // coercion-ok: no verifier is a typed failure handled by the OAuth caller.
508
+ return "";
509
+ }
510
+ return "";
511
+ }
512
+
513
+ const GOOGLE_BRAND_COLORS = {
514
+ // guard:allow-raw-color - Google brand mark must retain provider colors.
515
+ blue: "#4285F4",
516
+ // guard:allow-raw-color - Google brand mark must retain provider colors.
517
+ green: "#34A853",
518
+ // guard:allow-raw-color - Google brand mark must retain provider colors.
519
+ yellow: "#FBBC05",
520
+ // guard:allow-raw-color - Google brand mark must retain provider colors.
521
+ red: "#EA4335",
522
+ } as const;
523
+
524
+ function googleSvg(): React.ReactNode {
525
+ return (
526
+ <svg viewBox="0 0 24 24" aria-hidden="true">
527
+ <path
528
+ fill={GOOGLE_BRAND_COLORS.blue}
529
+ d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92a5.06 5.06 0 0 1-2.2 3.32v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.1z"
530
+ />
531
+ <path
532
+ fill={GOOGLE_BRAND_COLORS.green}
533
+ d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"
534
+ />
535
+ <path
536
+ fill={GOOGLE_BRAND_COLORS.yellow}
537
+ d="M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"
538
+ />
539
+ <path
540
+ fill={GOOGLE_BRAND_COLORS.red}
541
+ d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"
542
+ />
543
+ </svg>
544
+ );
545
+ }
546
+
547
+ function headingKeys(view: AuthView): { heading: string; subtitle: string } {
548
+ if (view === "login") {
549
+ return { heading: "welcomeBackTitle", subtitle: "signInSubtitle" };
550
+ }
551
+ if (view === "forgot") {
552
+ return { heading: "resetPasswordTitle", subtitle: "resetPasswordSubtitle" };
553
+ }
554
+ if (view === "twoFactor") {
555
+ return { heading: "twoFactorTitle", subtitle: "twoFactorSubtitle" };
556
+ }
557
+ if (view === "verification") {
558
+ return { heading: "checkEmailTitle", subtitle: "finishAccountSubtitle" };
559
+ }
560
+ if (view === "googleOnly") {
561
+ return { heading: "signInTitle", subtitle: "googleOnlySubtitle" };
562
+ }
563
+ if (view === "magicLinkSent") {
564
+ return { heading: "magicLinkSent", subtitle: "magicLinkSentCopy" };
565
+ }
566
+ if (view === "magicLink") {
567
+ return { heading: "magicLinkTitle", subtitle: "magicLinkSubtitle" };
568
+ }
569
+ return { heading: "welcomeTitle", subtitle: "createAccountSubtitle" };
570
+ }
571
+
572
+ export function shouldHideAuthSubtitle(
573
+ view: AuthView,
574
+ localDevAvailable: boolean,
575
+ ): boolean {
576
+ return view === "signup" && localDevAvailable;
577
+ }
578
+
579
+ export function shouldStartWithLocalDev(
580
+ pathname: string,
581
+ search: string,
582
+ ): boolean {
583
+ const params = new URLSearchParams(search);
584
+ const path = pathname.replace(/\/+$/, "") || "/";
585
+ return (
586
+ !params.has("tab") &&
587
+ !params.has("verified") &&
588
+ !isVerificationLinkInvalid(params.get("error")) &&
589
+ !path.endsWith("/login") &&
590
+ !path.endsWith("/signup")
591
+ );
592
+ }
593
+
594
+ function AuthMarketingBackground() {
595
+ return (
596
+ <div
597
+ aria-hidden="true"
598
+ className="auth-marketing-screenshot"
599
+ data-agent-native-marketing-background
600
+ />
601
+ );
602
+ }
603
+
604
+ export function AuthPage(props: AuthPageProps) {
605
+ const {
606
+ authMode,
607
+ googleOnly,
608
+ initialPrompt,
609
+ appBasePath,
610
+ homePath,
611
+ initialResumeHref,
612
+ workspaceRuntime,
613
+ trackingApp,
614
+ defaultLocale,
615
+ localeStorageKey,
616
+ locales,
617
+ localeMetadata,
618
+ localeOptions,
619
+ marketing,
620
+ marketingLocales,
621
+ brandMarkSrc,
622
+ brandMarkLightSrc,
623
+ githubUrl,
624
+ appName,
625
+ showGoogle,
626
+ organizationSsoEnabled = false,
627
+ googleViaIdentitySso = false,
628
+ signupLegalNotice,
629
+ signupLocalModeNote,
630
+ docsAuthUrl,
631
+ identitySsoEnabled = false,
632
+ identitySsoAuto = false,
633
+ publicOAuthOrigin,
634
+ workspaceGatewayReturnOrigin,
635
+ googleAuthMode,
636
+ builderPreviewLocalDevEnabled,
637
+ } = props;
638
+ const [localePreference, setLocalePreference] = React.useState("system");
639
+ const [locale, setLocale] = React.useState(defaultLocale);
640
+ const [browserLocationReady, setBrowserLocationReady] = React.useState(false);
641
+ React.useEffect(() => setBrowserLocationReady(true), []);
642
+ const [localeMenuOpen, setLocaleMenuOpen] = React.useState(false);
643
+ const [view, setView] = React.useState<AuthView>(props.initialView);
644
+ const [messages, setMessages] = React.useState<Record<string, Notice>>({});
645
+ const [submitting, setSubmitting] = React.useState<string | null>(null);
646
+ const [localDevAvailable, setLocalDevAvailable] = React.useState(false);
647
+ const [localDevBusy, setLocalDevBusy] = React.useState(false);
648
+ const [fullAuthOptionsVisible, setFullAuthOptionsVisible] =
649
+ React.useState(true);
650
+ const [upgradeVisible, setUpgradeVisible] = React.useState(false);
651
+ const [magicLinkEmail, setMagicLinkEmail] = React.useState("");
652
+ const [signupEmail, setSignupEmail] = React.useState("");
653
+ const [signupPassword, setSignupPassword] = React.useState("");
654
+ const [signupPasswordConfirmation, setSignupPasswordConfirmation] =
655
+ React.useState("");
656
+ const [loginEmail, setLoginEmail] = React.useState("");
657
+ const [loginPassword, setLoginPassword] = React.useState("");
658
+ const [twoFactorCode, setTwoFactorCode] = React.useState("");
659
+ const [forgotEmail, setForgotEmail] = React.useState("");
660
+ const [forgotSent, setForgotSent] = React.useState(false);
661
+ const [verificationEmail, setVerificationEmail] = React.useState("");
662
+ const [verificationResendUntil, setVerificationResendUntil] =
663
+ React.useState(0);
664
+ const [verificationResendNow, setVerificationResendNow] = React.useState(0);
665
+ const clearVerificationResendCooldown = React.useCallback(() => {
666
+ setVerificationResendUntil(0);
667
+ setVerificationResendNow((current) =>
668
+ current === 0 ? current : Date.now(),
669
+ );
670
+ }, []);
671
+ const [googleBusy, setGoogleBusy] = React.useState(false);
672
+ const [magicLinkBusy, setMagicLinkBusy] = React.useState(false);
673
+ const [ssoEmail, setSsoEmail] = React.useState("");
674
+ const [ssoBusy, setSsoBusy] = React.useState(false);
675
+ const [copiedLocalMode, setCopiedLocalMode] = React.useState(false);
676
+ const signupViewTrackedRef = React.useRef(false);
677
+ const pendingSignupPassword = React.useRef("");
678
+ const oauthPollTimer = React.useRef<number | null>(null);
679
+ const oauthPollInFlight = React.useRef(false);
680
+ const oauthPopupTimer = React.useRef<number | null>(null);
681
+ const oauthPopupGraceTimer = React.useRef<number | null>(null);
682
+ const oauthFlowId = React.useRef<string | null>(null);
683
+ const nativeOAuthFlowId = React.useRef<string | null>(null);
684
+ const nativeOAuthRequestPending = React.useRef(false);
685
+ const nativeOAuthAbandonTimer = React.useRef<number | null>(null);
686
+ const verificationCheckInFlight = React.useRef(false);
687
+ const verifiedReturnHandled = React.useRef(false);
688
+ const verificationStepStartedRef = React.useRef(false);
689
+ const [sessionProbeComplete, setSessionProbeComplete] = React.useState(false);
690
+ const [sessionProbeAnonymous, setSessionProbeAnonymous] =
691
+ React.useState(false);
692
+
693
+ const [runtimeAppBasePath, setRuntimeAppBasePath] =
694
+ React.useState(appBasePath);
695
+ const [runtimeBasePathResolved, setRuntimeBasePathResolved] = React.useState(
696
+ Boolean(appBasePath || !workspaceRuntime),
697
+ );
698
+
699
+ React.useEffect(() => {
700
+ if (appBasePath || !workspaceRuntime) {
701
+ setRuntimeBasePathResolved(true);
702
+ return;
703
+ }
704
+ setRuntimeAppBasePath(inferWorkspaceBasePath(window.location.pathname));
705
+ setRuntimeBasePathResolved(true);
706
+ }, [appBasePath, workspaceRuntime]);
707
+
708
+ const t = React.useCallback(
709
+ (key: string) => copyText(locales, defaultLocale, locale, key),
710
+ [defaultLocale, locale, locales],
711
+ );
712
+ const apiPath = React.useCallback(
713
+ (path: string) =>
714
+ `${runtimeAppBasePath}${toPublicFrameworkPath(path, { publicPrefix: frameworkRoutePrefix() })}`,
715
+ [runtimeAppBasePath],
716
+ );
717
+ const identityHref = React.useMemo(
718
+ () => apiPath("/_agent-native/identity/login"),
719
+ [apiPath],
720
+ );
721
+ const journey = React.useCallback((): SignInJourney => {
722
+ if (typeof window === "undefined" || !browserLocationReady) {
723
+ return signInJourney({
724
+ at: initialResumeHref ?? `${runtimeAppBasePath}/`,
725
+ basePath: runtimeAppBasePath,
726
+ homePath,
727
+ });
728
+ }
729
+ return signInJourney({
730
+ at:
731
+ window.location.pathname +
732
+ window.location.search +
733
+ window.location.hash,
734
+ continuation: new URLSearchParams(window.location.search).get("c"),
735
+ legacyReturn: new URLSearchParams(window.location.search).get("return"),
736
+ basePath: runtimeAppBasePath,
737
+ homePath,
738
+ });
739
+ }, [browserLocationReady, homePath, initialResumeHref, runtimeAppBasePath]);
740
+ const resumeHref = React.useCallback(() => journey().resumeHref, [journey]);
741
+ const identityLoginHref = React.useMemo(
742
+ () =>
743
+ `${identityHref}?${new URLSearchParams({ return: resumeHref() }).toString()}`,
744
+ [identityHref, resumeHref],
745
+ );
746
+ const identityBootstrapHref = React.useCallback(
747
+ (target?: string) => {
748
+ const safeTarget = target || resumeHref();
749
+ if (!identitySsoEnabled || isAgentNativeDesktop()) return safeTarget;
750
+ const url = new URL(
751
+ apiPath("/_agent-native/identity/bootstrap"),
752
+ window.location.origin,
753
+ );
754
+ url.searchParams.set("return", safeTarget);
755
+ return `${url.pathname}${url.search}`;
756
+ },
757
+ [apiPath, identitySsoEnabled, resumeHref],
758
+ );
759
+ const redirectToSignedInApp = React.useCallback(
760
+ (target?: string) => {
761
+ window.location.replace(identityBootstrapHref(target));
762
+ },
763
+ [identityBootstrapHref],
764
+ );
765
+ const setNotice = React.useCallback((key: string, notice: Notice) => {
766
+ setMessages((current) => ({ ...current, [key]: notice }));
767
+ }, []);
768
+ const notice = React.useCallback(
769
+ (key: string) => {
770
+ const current = messages[key];
771
+ if (!current) return null;
772
+ return (
773
+ <p
774
+ className={`msg ${current.kind} show`}
775
+ role="status"
776
+ aria-live="polite"
777
+ >
778
+ {current.text}
779
+ </p>
780
+ );
781
+ },
782
+ [messages],
783
+ );
784
+ // The server serves a setup page instead of this one while sign-in cannot
785
+ // work, but a copy of this page cached before a setting went missing can
786
+ // still submit, and the refusal should say why.
787
+ const accountFailureText = React.useCallback(
788
+ (data: Record<string, unknown>, fallback: string) =>
789
+ data.code === DEPLOY_SETTINGS_REQUIRED_CODE
790
+ ? t("deploySettingsMissingError")
791
+ : authErrorText(data, fallback, t("signupInviteOnly")),
792
+ [t],
793
+ );
794
+
795
+ const pendingEmailStorageKey = React.useCallback(
796
+ () => `${PENDING_SIGNUP_EMAIL_STORAGE_KEY}:${runtimeAppBasePath || "/"}`,
797
+ [runtimeAppBasePath],
798
+ );
799
+ const rememberPendingSignupEmail = React.useCallback(
800
+ (email: string) => {
801
+ if (email) writeStorage(pendingEmailStorageKey(), normalizeEmail(email));
802
+ else removeStorage(pendingEmailStorageKey());
803
+ },
804
+ [pendingEmailStorageKey],
805
+ );
806
+ const readPendingSignupEmail = React.useCallback(() => {
807
+ const email = readStorage(pendingEmailStorageKey());
808
+ return isValidEmail(email) ? normalizeEmail(email) : "";
809
+ }, [pendingEmailStorageKey]);
810
+
811
+ React.useEffect(() => {
812
+ const stored = readStorage(localeStorageKey);
813
+ const preference = stored || "system";
814
+ const nextLocale =
815
+ preference === "system"
816
+ ? resolveSystemLocale(localeOptions, defaultLocale)
817
+ : resolveLocale(preference, localeOptions, defaultLocale);
818
+ setLocalePreference(preference);
819
+ setLocale(nextLocale);
820
+ document.documentElement.lang = nextLocale;
821
+ document.documentElement.dir = localeMetadata[nextLocale]?.dir || "ltr";
822
+ document.documentElement.dataset.locale = nextLocale;
823
+ }, [defaultLocale, localeMetadata, localeOptions, localeStorageKey]);
824
+
825
+ React.useEffect(() => {
826
+ const closeMenu = (event: MouseEvent) => {
827
+ const target = event.target;
828
+ if (
829
+ target instanceof Node &&
830
+ document.querySelector(".locale-picker")?.contains(target)
831
+ ) {
832
+ return;
833
+ }
834
+ setLocaleMenuOpen(false);
835
+ };
836
+ const closeOnEscape = (event: KeyboardEvent) => {
837
+ if (event.key === "Escape") setLocaleMenuOpen(false);
838
+ };
839
+ document.addEventListener("click", closeMenu);
840
+ document.addEventListener("keydown", closeOnEscape);
841
+ return () => {
842
+ document.removeEventListener("click", closeMenu);
843
+ document.removeEventListener("keydown", closeOnEscape);
844
+ };
845
+ }, []);
846
+
847
+ React.useEffect(() => {
848
+ const nextTitle = appName
849
+ ? `${appName} — ${t("pageTitleSignIn")}`
850
+ : t("pageTitleWelcome");
851
+ document.title = nextTitle;
852
+ document.documentElement.lang = locale;
853
+ document.documentElement.dir = localeMetadata[locale]?.dir || "ltr";
854
+ document.documentElement.dataset.locale = locale;
855
+ }, [appName, locale, localeMetadata, t]);
856
+
857
+ React.useEffect(() => {
858
+ if (googleOnly) return;
859
+ const path = window.location.pathname.replace(/\/+$/, "") || "/";
860
+ const params = new URLSearchParams(window.location.search);
861
+ const verificationError = isVerificationLinkInvalid(params.get("error"));
862
+ if (params.get("verified") || verificationError) {
863
+ setView("login");
864
+ const rememberedEmail = readPendingSignupEmail();
865
+ if (rememberedEmail) setLoginEmail(rememberedEmail);
866
+ if (verificationError) {
867
+ setNotice("login", {
868
+ kind: "error",
869
+ text: t("verificationLinkInvalid"),
870
+ });
871
+ }
872
+ return;
873
+ }
874
+ if (params.get("tab") === "login" || path.endsWith("/login")) {
875
+ setView("login");
876
+ return;
877
+ }
878
+ if (params.get("tab") === "signup" || path.endsWith("/signup")) {
879
+ setView("signup");
880
+ return;
881
+ }
882
+ if (authMode === "magic-link") {
883
+ setView("magicLink");
884
+ return;
885
+ }
886
+ if (params.get("c")) {
887
+ setView("login");
888
+ return;
889
+ }
890
+ const storedTab = readStorage(TAB_STORAGE_KEY);
891
+ if (storedTab === "login" || storedTab === "signup") setView(storedTab);
892
+ }, [authMode, googleOnly, readPendingSignupEmail, setNotice, t]);
893
+
894
+ React.useEffect(() => {
895
+ if (!runtimeBasePathResolved) return;
896
+ const probe = async () => {
897
+ for (let attempt = 0; attempt < 3; attempt += 1) {
898
+ let retry = false;
899
+ try {
900
+ const { response, data, readable } = await requestJson(
901
+ apiPath("/_agent-native/auth/session"),
902
+ {
903
+ headers: { Accept: "application/json" },
904
+ cache: "no-store",
905
+ },
906
+ );
907
+ if (isAuthenticatedAuthSession(response, data)) {
908
+ redirectToSignedInApp();
909
+ return;
910
+ }
911
+ if (isConfirmedAnonymousAuthSession(response, data, readable)) {
912
+ setSessionProbeAnonymous(true);
913
+ return;
914
+ }
915
+ retry = shouldRetryAuthSessionProbe(response, readable);
916
+ } catch {
917
+ retry = true;
918
+ }
919
+ if (!retry || attempt === 2) return;
920
+ await new Promise<void>((resolve) =>
921
+ window.setTimeout(resolve, 250 * (attempt + 1)),
922
+ );
923
+ }
924
+ };
925
+ void probe().finally(() => setSessionProbeComplete(true));
926
+ }, [apiPath, redirectToSignedInApp, runtimeBasePathResolved]);
927
+
928
+ React.useEffect(() => {
929
+ if (
930
+ !shouldAutoFederateIdentitySso({
931
+ identitySsoAuto,
932
+ publicOAuthOrigin,
933
+ currentOrigin: window.location.origin,
934
+ }) ||
935
+ !runtimeBasePathResolved ||
936
+ !sessionProbeComplete ||
937
+ !sessionProbeAnonymous ||
938
+ isAgentNativeDesktop() ||
939
+ (view !== "login" && view !== "signup")
940
+ ) {
941
+ return;
942
+ }
943
+ const params = new URLSearchParams(window.location.search);
944
+ if (params.has("sso") || params.has("error") || params.has("verified")) {
945
+ return;
946
+ }
947
+ const probeParams = new URLSearchParams({
948
+ return: resumeHref(),
949
+ prompt: "none",
950
+ });
951
+ window.location.replace(`${identityHref}?${probeParams.toString()}`);
952
+ }, [
953
+ identityHref,
954
+ identitySsoAuto,
955
+ publicOAuthOrigin,
956
+ resumeHref,
957
+ runtimeBasePathResolved,
958
+ sessionProbeAnonymous,
959
+ sessionProbeComplete,
960
+ view,
961
+ ]);
962
+
963
+ React.useEffect(() => {
964
+ if (!runtimeBasePathResolved || view !== "magicLinkSent") return;
965
+ let cancelled = false;
966
+ let inFlight = false;
967
+
968
+ const probe = async () => {
969
+ if (cancelled || inFlight || document.visibilityState === "hidden") {
970
+ return;
971
+ }
972
+ inFlight = true;
973
+ try {
974
+ const { response, data } = await requestJson(
975
+ apiPath("/_agent-native/auth/session"),
976
+ {
977
+ headers: { Accept: "application/json" },
978
+ cache: "no-store",
979
+ },
980
+ );
981
+ if (!cancelled && isAuthenticatedAuthSession(response, data)) {
982
+ redirectToSignedInApp();
983
+ }
984
+ } catch {
985
+ // coercion-ok: a transient probe failure leaves the completion view in place; the
986
+ // next visibility event or interval retries it.
987
+ } finally {
988
+ inFlight = false;
989
+ }
990
+ };
991
+ const probeOnReturn = () => {
992
+ if (document.visibilityState === "visible") void probe();
993
+ };
994
+ const timer = window.setInterval(() => void probe(), 1000);
995
+ window.addEventListener("focus", probeOnReturn);
996
+ document.addEventListener("visibilitychange", probeOnReturn);
997
+ void probe();
998
+ return () => {
999
+ cancelled = true;
1000
+ window.clearInterval(timer);
1001
+ window.removeEventListener("focus", probeOnReturn);
1002
+ document.removeEventListener("visibilitychange", probeOnReturn);
1003
+ };
1004
+ }, [apiPath, redirectToSignedInApp, runtimeBasePathResolved, view]);
1005
+
1006
+ React.useEffect(() => {
1007
+ let anonymousId = readStorage(ANALYTICS_ANONYMOUS_ID_KEY);
1008
+ if (!/^[A-Za-z0-9_-]{1,128}$/.test(anonymousId)) {
1009
+ anonymousId = generateAnonymousId();
1010
+ writeStorage(ANALYTICS_ANONYMOUS_ID_KEY, anonymousId);
1011
+ }
1012
+ try {
1013
+ document.cookie = `an_aid=${encodeURIComponent(anonymousId)}; path=/; max-age=2592000; SameSite=Lax`;
1014
+ } catch {
1015
+ // coercion-ok: attribution cookies are optional for authentication.
1016
+ }
1017
+ try {
1018
+ const existing = readStorage(FIRST_TOUCH_STORAGE_KEY);
1019
+ if (
1020
+ !existing &&
1021
+ !document.cookie
1022
+ .split(";")
1023
+ .some((part) => part.trim().startsWith(`${FIRST_TOUCH_COOKIE}=`))
1024
+ ) {
1025
+ const params = new URLSearchParams(window.location.search);
1026
+ const attribution: Record<string, string> = {};
1027
+ for (const key of [
1028
+ "ref",
1029
+ "via",
1030
+ "utm_source",
1031
+ "utm_medium",
1032
+ "utm_campaign",
1033
+ "utm_content",
1034
+ "utm_term",
1035
+ ]) {
1036
+ const value = safeAttributionValue(params.get(key));
1037
+ if (value) attribution[key] = value;
1038
+ }
1039
+ const returnPath = signInJourney({
1040
+ at: window.location.pathname,
1041
+ continuation: params.get("c"),
1042
+ legacyReturn: params.get("return"),
1043
+ basePath: runtimeAppBasePath,
1044
+ homePath,
1045
+ }).resumeHref;
1046
+ const landingPath = safeAttributionValue(returnPath);
1047
+ if (landingPath) attribution.landing_path = landingPath;
1048
+ try {
1049
+ const referrer = new URL(document.referrer);
1050
+ if (referrer.host !== window.location.host) {
1051
+ attribution.landing_referrer = safeAttributionValue(referrer.host);
1052
+ }
1053
+ } catch {
1054
+ // coercion-ok: a non-URL referrer is not useful attribution.
1055
+ }
1056
+ attribution.landed_at = new Date().toISOString();
1057
+ const json = JSON.stringify(attribution);
1058
+ writeStorage(FIRST_TOUCH_STORAGE_KEY, json);
1059
+ document.cookie = `${FIRST_TOUCH_COOKIE}=${encodeURIComponent(json)}; path=/; max-age=2592000; SameSite=Lax`;
1060
+ }
1061
+ } catch {
1062
+ // coercion-ok: attribution is best effort and never blocks authentication.
1063
+ }
1064
+ const identity = normalizeEmail(signupEmail);
1065
+ if (
1066
+ view !== "signup" ||
1067
+ signupViewTrackedRef.current ||
1068
+ !isValidEmail(identity)
1069
+ ) {
1070
+ return;
1071
+ }
1072
+ signupViewTrackedRef.current = true;
1073
+ trackAuth(
1074
+ trackingApp,
1075
+ "auth.signup_viewed",
1076
+ {
1077
+ surface: "signup",
1078
+ auth_mode: authMode,
1079
+ auth_view: view,
1080
+ },
1081
+ identity,
1082
+ );
1083
+ }, [authMode, homePath, runtimeAppBasePath, signupEmail, trackingApp, view]);
1084
+
1085
+ const localDevAllowed = React.useMemo(
1086
+ () =>
1087
+ isLoopbackHostname() ||
1088
+ (builderPreviewLocalDevEnabled && isBuilderPreviewHostname()),
1089
+ [builderPreviewLocalDevEnabled],
1090
+ );
1091
+
1092
+ useIsomorphicLayoutEffect(() => {
1093
+ if (
1094
+ !localDevAllowed ||
1095
+ verificationStepStartedRef.current ||
1096
+ !shouldStartWithLocalDev(window.location.pathname, window.location.search)
1097
+ ) {
1098
+ return;
1099
+ }
1100
+ setLocalDevAvailable(true);
1101
+ setFullAuthOptionsVisible(false);
1102
+ }, [localDevAllowed]);
1103
+
1104
+ React.useEffect(() => {
1105
+ if (!runtimeBasePathResolved || !localDevAllowed) return;
1106
+ let active = true;
1107
+ const loadAvailability = async () => {
1108
+ try {
1109
+ const { response, data } = await requestJson(
1110
+ apiPath("/_agent-native/auth/local-dev"),
1111
+ {
1112
+ method: "GET",
1113
+ cache: "no-store",
1114
+ headers: { Accept: "application/json" },
1115
+ },
1116
+ );
1117
+ if (!active) return;
1118
+ const available = response.ok && data.available === true;
1119
+ setLocalDevAvailable(available);
1120
+ if (!available) {
1121
+ setFullAuthOptionsVisible(true);
1122
+ return;
1123
+ }
1124
+ if (verificationStepStartedRef.current) {
1125
+ setFullAuthOptionsVisible(true);
1126
+ return;
1127
+ }
1128
+ const startWithLocalDev = shouldStartWithLocalDev(
1129
+ window.location.pathname,
1130
+ window.location.search,
1131
+ );
1132
+ setFullAuthOptionsVisible((visible) => visible || !startWithLocalDev);
1133
+ } catch {
1134
+ if (active) {
1135
+ setLocalDevAvailable(false);
1136
+ setFullAuthOptionsVisible(true);
1137
+ }
1138
+ }
1139
+ };
1140
+ void loadAvailability();
1141
+ return () => {
1142
+ active = false;
1143
+ };
1144
+ }, [apiPath, localDevAllowed, runtimeBasePathResolved]);
1145
+
1146
+ React.useEffect(() => {
1147
+ const params = new URLSearchParams(window.location.search);
1148
+ let shouldShow =
1149
+ params.get("signin") === "1" || params.get("upgrade-from-local") === "1";
1150
+ if (!shouldShow) shouldShow = readStorage("an_migrate_from_local") === "1";
1151
+ setUpgradeVisible(shouldShow);
1152
+ }, []);
1153
+
1154
+ React.useEffect(() => {
1155
+ if (window.parent !== window) return;
1156
+ try {
1157
+ if (localDevAllowed) {
1158
+ const forceUrl = new URL(window.location.href);
1159
+ if (forceUrl.searchParams.get(props.betaForceQueryParam) === "true") {
1160
+ window.sessionStorage.setItem(props.betaForceSessionStorageKey, "1");
1161
+ }
1162
+ }
1163
+ const optOutUrl = new URL(window.location.href);
1164
+ const optOutValue = optOutUrl.searchParams.get(
1165
+ props.betaOptOutQueryParam,
1166
+ );
1167
+ if (optOutValue !== null) {
1168
+ const expiry = Number(optOutValue);
1169
+ if (Number.isFinite(expiry) && expiry > Date.now()) {
1170
+ window.localStorage.setItem(
1171
+ props.betaOptOutStorageKey,
1172
+ String(expiry),
1173
+ );
1174
+ }
1175
+ optOutUrl.searchParams.delete(props.betaOptOutQueryParam);
1176
+ window.history.replaceState(null, "", optOutUrl.toString());
1177
+ }
1178
+ } catch {
1179
+ // coercion-ok: beta controls are optional.
1180
+ }
1181
+ }, [localDevAllowed, props]);
1182
+
1183
+ const stopOAuthPolling = React.useCallback(() => {
1184
+ if (oauthPollTimer.current !== null) {
1185
+ window.clearInterval(oauthPollTimer.current);
1186
+ oauthPollTimer.current = null;
1187
+ }
1188
+ if (oauthPopupTimer.current !== null) {
1189
+ window.clearInterval(oauthPopupTimer.current);
1190
+ oauthPopupTimer.current = null;
1191
+ }
1192
+ if (oauthPopupGraceTimer.current !== null) {
1193
+ window.clearTimeout(oauthPopupGraceTimer.current);
1194
+ oauthPopupGraceTimer.current = null;
1195
+ }
1196
+ oauthPollInFlight.current = false;
1197
+ }, []);
1198
+
1199
+ const clearNativeOAuthRecovery = React.useCallback(() => {
1200
+ if (nativeOAuthAbandonTimer.current !== null) {
1201
+ window.clearTimeout(nativeOAuthAbandonTimer.current);
1202
+ nativeOAuthAbandonTimer.current = null;
1203
+ }
1204
+ }, []);
1205
+
1206
+ const stopNativeOAuth = React.useCallback(() => {
1207
+ clearNativeOAuthRecovery();
1208
+ nativeOAuthFlowId.current = null;
1209
+ nativeOAuthRequestPending.current = false;
1210
+ }, [clearNativeOAuthRecovery]);
1211
+
1212
+ React.useEffect(() => stopOAuthPolling, [stopOAuthPolling]);
1213
+
1214
+ React.useEffect(() => {
1215
+ if (!isAgentNativeDesktop()) return;
1216
+ const recoverAfterReturn = () => {
1217
+ const flowId = nativeOAuthFlowId.current;
1218
+ if (
1219
+ !flowId ||
1220
+ nativeOAuthRequestPending.current ||
1221
+ oauthPollTimer.current === null
1222
+ ) {
1223
+ return;
1224
+ }
1225
+ clearNativeOAuthRecovery();
1226
+ nativeOAuthAbandonTimer.current = window.setTimeout(() => {
1227
+ nativeOAuthAbandonTimer.current = null;
1228
+ if (
1229
+ flowId !== nativeOAuthFlowId.current ||
1230
+ nativeOAuthRequestPending.current ||
1231
+ oauthPollTimer.current === null
1232
+ ) {
1233
+ return;
1234
+ }
1235
+ stopOAuthPolling();
1236
+ nativeOAuthFlowId.current = null;
1237
+ nativeOAuthRequestPending.current = false;
1238
+ setGoogleBusy(false);
1239
+ }, 5000);
1240
+ };
1241
+ const clearRecoveryWhileHidden = () => clearNativeOAuthRecovery();
1242
+ const handleVisibilityChange = () => {
1243
+ if (document.visibilityState === "visible") recoverAfterReturn();
1244
+ else clearRecoveryWhileHidden();
1245
+ };
1246
+ window.addEventListener("focus", recoverAfterReturn);
1247
+ document.addEventListener("visibilitychange", handleVisibilityChange);
1248
+ return () => {
1249
+ window.removeEventListener("focus", recoverAfterReturn);
1250
+ document.removeEventListener("visibilitychange", handleVisibilityChange);
1251
+ clearNativeOAuthRecovery();
1252
+ };
1253
+ }, [clearNativeOAuthRecovery, stopOAuthPolling]);
1254
+
1255
+ const finishOAuthExchange = React.useCallback(
1256
+ (target: string, sessionToken?: string) => {
1257
+ stopOAuthPolling();
1258
+ stopNativeOAuth();
1259
+ setGoogleBusy(false);
1260
+ setMagicLinkBusy(false);
1261
+ if (isBuilderPreview() && sessionToken) {
1262
+ try {
1263
+ const url = new URL(target, window.location.origin);
1264
+ url.searchParams.set("_session", sessionToken);
1265
+ window.location.replace(url.pathname + url.search + url.hash);
1266
+ return;
1267
+ } catch {
1268
+ // coercion-ok: same-origin continuation remains safe if preview parsing fails.
1269
+ }
1270
+ }
1271
+ redirectToSignedInApp(target);
1272
+ },
1273
+ [redirectToSignedInApp, stopNativeOAuth, stopOAuthPolling],
1274
+ );
1275
+
1276
+ const startOAuthExchange = React.useCallback(
1277
+ (
1278
+ flowId: string,
1279
+ target: string,
1280
+ verifier: string,
1281
+ kind: "google" | "magic-link",
1282
+ popup?: Window | null,
1283
+ onAuthenticated?: (email?: string) => void,
1284
+ ) => {
1285
+ const startedAt = Date.now();
1286
+ const check = async () => {
1287
+ if (oauthPollInFlight.current) return;
1288
+ oauthPollInFlight.current = true;
1289
+ try {
1290
+ const { data } = await requestJson(
1291
+ `${apiPath("/_agent-native/auth/desktop-exchange")}?flow_id=${encodeURIComponent(flowId)}`,
1292
+ {
1293
+ headers: verifier
1294
+ ? { "X-Agent-Native-Desktop-Verifier": verifier }
1295
+ : undefined,
1296
+ },
1297
+ );
1298
+ if (flowId !== oauthFlowId.current) return;
1299
+ if (
1300
+ typeof data.email === "string" ||
1301
+ typeof data.token === "string"
1302
+ ) {
1303
+ onAuthenticated?.(
1304
+ typeof data.email === "string" ? data.email : undefined,
1305
+ );
1306
+ finishOAuthExchange(
1307
+ target,
1308
+ typeof data.token === "string" ? data.token : undefined,
1309
+ );
1310
+ return;
1311
+ }
1312
+ if (data.error) {
1313
+ stopOAuthPolling();
1314
+ stopNativeOAuth();
1315
+ setGoogleBusy(false);
1316
+ setMagicLinkBusy(false);
1317
+ if (kind === "magic-link") setView("magicLink");
1318
+ setNotice(kind, {
1319
+ kind: "error",
1320
+ text: authErrorText(
1321
+ data,
1322
+ kind === "magic-link"
1323
+ ? t("magicLinkFailed")
1324
+ : t("googleNotConfigured"),
1325
+ t("signupInviteOnly"),
1326
+ ),
1327
+ });
1328
+ return;
1329
+ }
1330
+ } catch {
1331
+ // coercion-ok: external OAuth completion may transiently fail while polling.
1332
+ } finally {
1333
+ oauthPollInFlight.current = false;
1334
+ }
1335
+ if (Date.now() - startedAt > 5 * 60 * 1000) {
1336
+ stopOAuthPolling();
1337
+ stopNativeOAuth();
1338
+ setGoogleBusy(false);
1339
+ setMagicLinkBusy(false);
1340
+ if (kind === "magic-link") setView("magicLink");
1341
+ setNotice(kind, {
1342
+ kind: "error",
1343
+ text:
1344
+ kind === "magic-link"
1345
+ ? t("magicLinkFailed")
1346
+ : t("googleNeverFinished"),
1347
+ });
1348
+ }
1349
+ };
1350
+ stopOAuthPolling();
1351
+ oauthPollTimer.current = window.setInterval(() => void check(), 1000);
1352
+ if (popup) {
1353
+ oauthPopupTimer.current = window.setInterval(() => {
1354
+ let closed = false;
1355
+ try {
1356
+ closed = popup.closed;
1357
+ } catch {
1358
+ closed = true;
1359
+ }
1360
+ if (!closed) return;
1361
+ if (oauthPopupTimer.current !== null) {
1362
+ window.clearInterval(oauthPopupTimer.current);
1363
+ oauthPopupTimer.current = null;
1364
+ }
1365
+ oauthPopupGraceTimer.current = window.setTimeout(() => {
1366
+ oauthPopupGraceTimer.current = null;
1367
+ if (flowId !== oauthFlowId.current) return;
1368
+ void requestJson(apiPath("/_agent-native/auth/session"), {
1369
+ headers: { Accept: "application/json" },
1370
+ })
1371
+ .then(({ response, data }) => {
1372
+ if (flowId !== oauthFlowId.current) return;
1373
+ if (
1374
+ response.ok &&
1375
+ typeof data.email === "string" &&
1376
+ !data.error
1377
+ ) {
1378
+ onAuthenticated?.(data.email);
1379
+ finishOAuthExchange(target);
1380
+ return;
1381
+ }
1382
+ stopOAuthPolling();
1383
+ setGoogleBusy(false);
1384
+ setNotice("google", {
1385
+ kind: "error",
1386
+ text: t("googlePopupHelp"),
1387
+ });
1388
+ })
1389
+ .catch(() => {
1390
+ if (flowId !== oauthFlowId.current) return;
1391
+ stopOAuthPolling();
1392
+ setGoogleBusy(false);
1393
+ setNotice("google", {
1394
+ kind: "error",
1395
+ text: t("googlePopupHelp"),
1396
+ });
1397
+ });
1398
+ }, 5000);
1399
+ }, 500);
1400
+ }
1401
+ window.setTimeout(() => void check(), 500);
1402
+ },
1403
+ [
1404
+ apiPath,
1405
+ finishOAuthExchange,
1406
+ setNotice,
1407
+ stopNativeOAuth,
1408
+ stopOAuthPolling,
1409
+ t,
1410
+ ],
1411
+ );
1412
+
1413
+ const resolveGoogleFlow = React.useCallback(() => {
1414
+ const preview = isBuilderPreview();
1415
+ if (preview) return isInFrame() ? "popup" : "redirect";
1416
+ const requested = new URLSearchParams(window.location.search).get(
1417
+ "authMode",
1418
+ );
1419
+ if (requested === "popup" || requested === "redirect") return requested;
1420
+ if (googleAuthMode === "popup" || googleAuthMode === "redirect") {
1421
+ return googleAuthMode;
1422
+ }
1423
+ return isAgentNativeDesktop() ? "redirect" : "popup";
1424
+ }, [googleAuthMode]);
1425
+
1426
+ const googleAuthUrlPath = React.useCallback(
1427
+ () =>
1428
+ resolveGoogleAuthUrlPath({
1429
+ builderPreview: isBuilderPreview(),
1430
+ currentOrigin: window.location.origin,
1431
+ publicOAuthOrigin,
1432
+ runtimeAppBasePath,
1433
+ }),
1434
+ [publicOAuthOrigin, runtimeAppBasePath],
1435
+ );
1436
+
1437
+ const startGoogle = React.useCallback(async () => {
1438
+ if (!showGoogle || googleBusy) return;
1439
+ setGoogleBusy(true);
1440
+ setNotice("google", null);
1441
+ try {
1442
+ window.sessionStorage.setItem("__an_signin", "1");
1443
+ } catch {
1444
+ // coercion-ok: analytics session storage is optional.
1445
+ }
1446
+ const target = resumeHref();
1447
+ if (
1448
+ !isBuilderPreview() &&
1449
+ !isAgentNativeDesktop() &&
1450
+ shouldUseIdentitySsoForGoogle({
1451
+ googleViaIdentitySso,
1452
+ currentOrigin: window.location.origin,
1453
+ })
1454
+ ) {
1455
+ const params = new URLSearchParams({ return: target });
1456
+ window.location.replace(`${identityHref}?${params.toString()}`);
1457
+ return;
1458
+ }
1459
+ const flowId = createFlowId();
1460
+ oauthFlowId.current = flowId;
1461
+ const flow = resolveGoogleFlow();
1462
+ const nativeDesktop = flow === "redirect" && isAgentNativeDesktop();
1463
+ const oauthTarget = oauthReturnTarget(
1464
+ flow === "redirect" && !nativeDesktop
1465
+ ? identityBootstrapHref(target)
1466
+ : target,
1467
+ workspaceGatewayReturnOrigin,
1468
+ );
1469
+ if (nativeDesktop) {
1470
+ stopNativeOAuth();
1471
+ nativeOAuthFlowId.current = flowId;
1472
+ nativeOAuthRequestPending.current = true;
1473
+ } else {
1474
+ stopNativeOAuth();
1475
+ }
1476
+ const authUrl = googleAuthUrlPath();
1477
+ if (flow === "redirect" && !nativeDesktop) {
1478
+ const params = new URLSearchParams({
1479
+ return: oauthTarget,
1480
+ redirect: "1",
1481
+ });
1482
+ window.location.replace(`${authUrl}?${params.toString()}`);
1483
+ return;
1484
+ }
1485
+ const verifier = createVerifier();
1486
+ if (!verifier) {
1487
+ stopNativeOAuth();
1488
+ setGoogleBusy(false);
1489
+ setNotice("google", { kind: "error", text: t("failedToConnect") });
1490
+ return;
1491
+ }
1492
+ let popup: Window | null = null;
1493
+ if (flow === "popup") {
1494
+ const redirectFallbackUnsafe = isInFrame();
1495
+ try {
1496
+ popup = openOAuthPopup({
1497
+ initialUrl: new URL(
1498
+ apiPath("/_agent-native/oauth/popup"),
1499
+ window.location.origin,
1500
+ ).href,
1501
+ features: "width=640,height=760",
1502
+ });
1503
+ if (!popup) {
1504
+ if (redirectFallbackUnsafe) {
1505
+ setGoogleBusy(false);
1506
+ setNotice("google", {
1507
+ kind: "error",
1508
+ text: t("googlePopupHelp"),
1509
+ });
1510
+ return;
1511
+ }
1512
+ const params = new URLSearchParams({
1513
+ return: oauthTarget,
1514
+ redirect: "1",
1515
+ });
1516
+ window.location.replace(`${authUrl}?${params.toString()}`);
1517
+ return;
1518
+ }
1519
+ try {
1520
+ popup.opener = null;
1521
+ } catch {
1522
+ // coercion-ok: some browsers expose popup.opener as read-only.
1523
+ }
1524
+ } catch {
1525
+ if (redirectFallbackUnsafe) {
1526
+ setGoogleBusy(false);
1527
+ setNotice("google", {
1528
+ kind: "error",
1529
+ text: t("googlePopupHelp"),
1530
+ });
1531
+ return;
1532
+ }
1533
+ const params = new URLSearchParams({
1534
+ return: oauthTarget,
1535
+ redirect: "1",
1536
+ });
1537
+ window.location.replace(`${authUrl}?${params.toString()}`);
1538
+ return;
1539
+ }
1540
+ }
1541
+ try {
1542
+ const params = new URLSearchParams({
1543
+ return: oauthTarget,
1544
+ desktop: "1",
1545
+ flow_id: flowId,
1546
+ });
1547
+ const { response, data } = await requestJson(
1548
+ `${authUrl}?${params.toString()}`,
1549
+ {
1550
+ method: "POST",
1551
+ headers: {
1552
+ Accept: "application/json",
1553
+ "X-Agent-Native-Desktop-Verifier": verifier,
1554
+ },
1555
+ },
1556
+ );
1557
+ if (!response.ok || typeof data.url !== "string" || !data.url) {
1558
+ throw new Error(
1559
+ authErrorText(data, t("failedToConnect"), t("signupInviteOnly")),
1560
+ );
1561
+ }
1562
+ if (nativeDesktop) nativeOAuthRequestPending.current = false;
1563
+ startOAuthExchange(flowId, target, verifier, "google", popup, (email) => {
1564
+ if (!email) return;
1565
+ trackAuth(
1566
+ trackingApp,
1567
+ view === "login" ? "auth.login_clicked" : "auth.signup_clicked",
1568
+ {
1569
+ surface: view === "login" ? "login" : "signup",
1570
+ method: "google",
1571
+ auth_view: view,
1572
+ },
1573
+ email,
1574
+ );
1575
+ });
1576
+ if (popup) {
1577
+ popup.location.href = data.url;
1578
+ } else {
1579
+ window.location.href = data.url;
1580
+ }
1581
+ } catch {
1582
+ try {
1583
+ popup?.close();
1584
+ } catch {
1585
+ // Ignore a popup that has already closed.
1586
+ }
1587
+ stopNativeOAuth();
1588
+ setGoogleBusy(false);
1589
+ setNotice("google", {
1590
+ kind: "error",
1591
+ text: t("failedToConnect"),
1592
+ });
1593
+ }
1594
+ }, [
1595
+ apiPath,
1596
+ googleAuthUrlPath,
1597
+ googleBusy,
1598
+ identityHref,
1599
+ identityBootstrapHref,
1600
+ googleViaIdentitySso,
1601
+ resolveGoogleFlow,
1602
+ resumeHref,
1603
+ setNotice,
1604
+ showGoogle,
1605
+ startOAuthExchange,
1606
+ stopNativeOAuth,
1607
+ t,
1608
+ trackingApp,
1609
+ view,
1610
+ workspaceGatewayReturnOrigin,
1611
+ ]);
1612
+
1613
+ const handleLocalDev = React.useCallback(async () => {
1614
+ if (localDevBusy) return;
1615
+ setLocalDevBusy(true);
1616
+ setNotice("local-dev", null);
1617
+ try {
1618
+ const { response } = await requestJson(
1619
+ apiPath("/_agent-native/auth/local-dev"),
1620
+ {
1621
+ method: "POST",
1622
+ headers: { Accept: "application/json" },
1623
+ },
1624
+ );
1625
+ if (!response.ok) throw new Error("local-dev-auth-failed");
1626
+ redirectToSignedInApp();
1627
+ } catch {
1628
+ setLocalDevBusy(false);
1629
+ setLocalDevAvailable(false);
1630
+ setFullAuthOptionsVisible(true);
1631
+ setNotice("local-dev", { kind: "error", text: t("localDevFailed") });
1632
+ }
1633
+ }, [apiPath, localDevBusy, redirectToSignedInApp, setNotice, t]);
1634
+
1635
+ const showVerificationStep = React.useCallback(
1636
+ (email: string, password: string) => {
1637
+ const normalized = normalizeEmail(email);
1638
+ pendingSignupPassword.current = password;
1639
+ clearVerificationResendCooldown();
1640
+ setVerificationEmail(normalized);
1641
+ rememberPendingSignupEmail(normalized);
1642
+ setNotice("verification", null);
1643
+ verificationStepStartedRef.current = true;
1644
+ setFullAuthOptionsVisible(true);
1645
+ setView("verification");
1646
+ writeStorage(TAB_STORAGE_KEY, "signup");
1647
+ },
1648
+ [clearVerificationResendCooldown, rememberPendingSignupEmail, setNotice],
1649
+ );
1650
+
1651
+ const tryPendingSignupLogin = React.useCallback(async () => {
1652
+ const email = verificationEmail || readPendingSignupEmail();
1653
+ const password = pendingSignupPassword.current;
1654
+ if (!email || !password) return { ok: false, needsManualSignIn: true };
1655
+ const { response, data } = await requestJson(
1656
+ apiPath("/_agent-native/auth/login"),
1657
+ {
1658
+ method: "POST",
1659
+ headers: { "Content-Type": "application/json" },
1660
+ body: JSON.stringify({ email, password }),
1661
+ },
1662
+ );
1663
+ if (response.ok) {
1664
+ removeStorage(pendingEmailStorageKey());
1665
+ redirectToSignedInApp();
1666
+ return { ok: true, needsManualSignIn: false };
1667
+ }
1668
+ const error = authErrorText(
1669
+ data,
1670
+ t("finishSignInFailed"),
1671
+ t("signupInviteOnly"),
1672
+ );
1673
+ return {
1674
+ ok: false,
1675
+ needsManualSignIn: false,
1676
+ error,
1677
+ isWaitingForVerification: /not verified|verification/i.test(error),
1678
+ };
1679
+ }, [
1680
+ apiPath,
1681
+ pendingEmailStorageKey,
1682
+ readPendingSignupEmail,
1683
+ redirectToSignedInApp,
1684
+ t,
1685
+ verificationEmail,
1686
+ ]);
1687
+
1688
+ const checkVerification = React.useCallback(
1689
+ async (fallbackText?: string) => {
1690
+ if (verificationCheckInFlight.current) return;
1691
+ verificationCheckInFlight.current = true;
1692
+ setNotice("verification", {
1693
+ kind: "success",
1694
+ text: t("checkingVerification"),
1695
+ });
1696
+ try {
1697
+ const { response, data } = await requestJson(
1698
+ apiPath("/_agent-native/auth/session"),
1699
+ {
1700
+ headers: { Accept: "application/json" },
1701
+ },
1702
+ );
1703
+ if (response.ok && typeof data.email === "string" && !data.error) {
1704
+ removeStorage(pendingEmailStorageKey());
1705
+ redirectToSignedInApp();
1706
+ return;
1707
+ }
1708
+ const loginResult = await tryPendingSignupLogin();
1709
+ if (loginResult.ok) return;
1710
+ if (
1711
+ loginResult.needsManualSignIn ||
1712
+ !loginResult.isWaitingForVerification
1713
+ ) {
1714
+ setLoginEmail(verificationEmail || readPendingSignupEmail());
1715
+ setView("login");
1716
+ setNotice("login", {
1717
+ kind: "success",
1718
+ text: fallbackText || t("enterPasswordAfterVerification"),
1719
+ });
1720
+ return;
1721
+ }
1722
+ setNotice("verification", {
1723
+ kind: "error",
1724
+ text: fallbackText || t("stillWaitingVerification"),
1725
+ });
1726
+ } catch {
1727
+ setNotice("verification", {
1728
+ kind: "error",
1729
+ text: t("checkVerificationFailed"),
1730
+ });
1731
+ } finally {
1732
+ verificationCheckInFlight.current = false;
1733
+ }
1734
+ },
1735
+ [
1736
+ apiPath,
1737
+ pendingEmailStorageKey,
1738
+ readPendingSignupEmail,
1739
+ redirectToSignedInApp,
1740
+ setNotice,
1741
+ t,
1742
+ tryPendingSignupLogin,
1743
+ verificationEmail,
1744
+ ],
1745
+ );
1746
+
1747
+ React.useEffect(() => {
1748
+ if (
1749
+ !runtimeBasePathResolved ||
1750
+ googleOnly ||
1751
+ verifiedReturnHandled.current
1752
+ ) {
1753
+ return;
1754
+ }
1755
+ const params = new URLSearchParams(window.location.search);
1756
+ if (params.get("verified") !== "1") return;
1757
+ verifiedReturnHandled.current = true;
1758
+ setNotice("login", {
1759
+ kind: "success",
1760
+ text: t("emailVerifiedFinishing"),
1761
+ });
1762
+ void checkVerification(t("emailVerifiedSignIn"));
1763
+ }, [checkVerification, googleOnly, runtimeBasePathResolved, setNotice, t]);
1764
+
1765
+ React.useEffect(() => {
1766
+ if (view !== "verification") return;
1767
+ const onFocus = () => void checkVerification();
1768
+ window.addEventListener("focus", onFocus);
1769
+ document.addEventListener("visibilitychange", onFocus);
1770
+ return () => {
1771
+ window.removeEventListener("focus", onFocus);
1772
+ document.removeEventListener("visibilitychange", onFocus);
1773
+ };
1774
+ }, [checkVerification, view]);
1775
+
1776
+ React.useEffect(() => {
1777
+ if (view !== "verification") {
1778
+ clearVerificationResendCooldown();
1779
+ }
1780
+ }, [clearVerificationResendCooldown, view]);
1781
+
1782
+ React.useEffect(() => {
1783
+ if (!verificationResendUntil) return;
1784
+ const refreshCooldown = () => {
1785
+ const now = Date.now();
1786
+ setVerificationResendNow(now);
1787
+ if (now >= verificationResendUntil) setVerificationResendUntil(0);
1788
+ };
1789
+ refreshCooldown();
1790
+ const timer = window.setInterval(refreshCooldown, 1000);
1791
+ window.addEventListener("focus", refreshCooldown);
1792
+ document.addEventListener("visibilitychange", refreshCooldown);
1793
+ return () => {
1794
+ window.clearInterval(timer);
1795
+ window.removeEventListener("focus", refreshCooldown);
1796
+ document.removeEventListener("visibilitychange", refreshCooldown);
1797
+ };
1798
+ }, [verificationResendUntil]);
1799
+
1800
+ const verificationResendActive =
1801
+ verificationResendUntil > verificationResendNow;
1802
+
1803
+ const handleSignup = React.useCallback(
1804
+ async (event: React.FormEvent<HTMLFormElement>) => {
1805
+ event.preventDefault();
1806
+ const email = normalizeEmail(signupEmail);
1807
+ if (!isValidEmail(email)) {
1808
+ setNotice("signup", { kind: "error", text: t("invalidEmail") });
1809
+ return;
1810
+ }
1811
+ if (signupPassword !== signupPasswordConfirmation) {
1812
+ setNotice("signup", { kind: "error", text: t("passwordsMismatch") });
1813
+ return;
1814
+ }
1815
+ setSubmitting("signup");
1816
+ setNotice("signup", null);
1817
+ trackAuth(
1818
+ trackingApp,
1819
+ "auth.signup_clicked",
1820
+ {
1821
+ surface: "signup",
1822
+ method: "password",
1823
+ auth_view: view,
1824
+ },
1825
+ email,
1826
+ );
1827
+ try {
1828
+ const { response, data } = await requestJson(
1829
+ apiPath("/_agent-native/auth/register"),
1830
+ {
1831
+ method: "POST",
1832
+ headers: { "Content-Type": "application/json" },
1833
+ body: JSON.stringify({
1834
+ email,
1835
+ password: signupPassword,
1836
+ callbackURL: identityBootstrapHref(resumeHref()),
1837
+ }),
1838
+ },
1839
+ );
1840
+ if (!response.ok) {
1841
+ setNotice("signup", {
1842
+ kind: "error",
1843
+ text: accountFailureText(data, t("registrationFailed")),
1844
+ });
1845
+ return;
1846
+ }
1847
+ const loginResult = await requestJson(
1848
+ apiPath("/_agent-native/auth/login"),
1849
+ {
1850
+ method: "POST",
1851
+ headers: { "Content-Type": "application/json" },
1852
+ body: JSON.stringify({ email, password: signupPassword }),
1853
+ },
1854
+ );
1855
+ if (loginResult.response.ok) {
1856
+ removeStorage(pendingEmailStorageKey());
1857
+ setNotice("signup", {
1858
+ kind: "success",
1859
+ text: t("accountCreatedSigningIn"),
1860
+ });
1861
+ redirectToSignedInApp();
1862
+ return;
1863
+ }
1864
+ const loginError = accountFailureText(
1865
+ loginResult.data,
1866
+ t("registrationFailed"),
1867
+ );
1868
+ if (
1869
+ loginResult.response.status === 403 &&
1870
+ /not verified|verification/i.test(loginError)
1871
+ ) {
1872
+ showVerificationStep(email, signupPassword);
1873
+ return;
1874
+ }
1875
+ setNotice("signup", { kind: "error", text: loginError });
1876
+ } catch {
1877
+ setNotice("signup", {
1878
+ kind: "error",
1879
+ text: t("networkErrorDashRetry"),
1880
+ });
1881
+ } finally {
1882
+ setSubmitting(null);
1883
+ }
1884
+ },
1885
+ [
1886
+ accountFailureText,
1887
+ apiPath,
1888
+ identityBootstrapHref,
1889
+ pendingEmailStorageKey,
1890
+ redirectToSignedInApp,
1891
+ resumeHref,
1892
+ setNotice,
1893
+ showVerificationStep,
1894
+ signupEmail,
1895
+ signupPassword,
1896
+ signupPasswordConfirmation,
1897
+ t,
1898
+ trackingApp,
1899
+ view,
1900
+ ],
1901
+ );
1902
+
1903
+ const handleLogin = React.useCallback(
1904
+ async (event: React.FormEvent<HTMLFormElement>) => {
1905
+ event.preventDefault();
1906
+ const email = normalizeEmail(loginEmail);
1907
+ if (!isValidEmail(email)) {
1908
+ setNotice("login", { kind: "error", text: t("invalidEmail") });
1909
+ return;
1910
+ }
1911
+ setSubmitting("login");
1912
+ setNotice("login", null);
1913
+ trackAuth(
1914
+ trackingApp,
1915
+ "auth.login_clicked",
1916
+ {
1917
+ surface: "login",
1918
+ method: "password",
1919
+ auth_view: view,
1920
+ },
1921
+ email,
1922
+ );
1923
+ try {
1924
+ const { response, data } = await requestJson(
1925
+ apiPath("/_agent-native/auth/login"),
1926
+ {
1927
+ method: "POST",
1928
+ headers: { "Content-Type": "application/json" },
1929
+ body: JSON.stringify({ email, password: loginPassword }),
1930
+ },
1931
+ );
1932
+ if (response.ok) {
1933
+ if (data.twoFactorRedirect === true) {
1934
+ setTwoFactorCode("");
1935
+ setView("twoFactor");
1936
+ return;
1937
+ }
1938
+ removeStorage(pendingEmailStorageKey());
1939
+ redirectToSignedInApp();
1940
+ return;
1941
+ }
1942
+ setNotice("login", {
1943
+ kind: "error",
1944
+ text: accountFailureText(data, t("invalidLogin")),
1945
+ });
1946
+ } catch {
1947
+ setNotice("login", { kind: "error", text: t("networkErrorDashRetry") });
1948
+ } finally {
1949
+ setSubmitting(null);
1950
+ }
1951
+ },
1952
+ [
1953
+ accountFailureText,
1954
+ apiPath,
1955
+ loginEmail,
1956
+ loginPassword,
1957
+ pendingEmailStorageKey,
1958
+ redirectToSignedInApp,
1959
+ setNotice,
1960
+ t,
1961
+ trackingApp,
1962
+ view,
1963
+ ],
1964
+ );
1965
+
1966
+ const handleTwoFactor = React.useCallback(
1967
+ async (event: React.FormEvent<HTMLFormElement>) => {
1968
+ event.preventDefault();
1969
+ const code = twoFactorCode.trim();
1970
+ if (!/^\d{6,8}$/.test(code)) {
1971
+ setNotice("twoFactor", { kind: "error", text: t("twoFactorInvalid") });
1972
+ return;
1973
+ }
1974
+ setSubmitting("twoFactor");
1975
+ setNotice("twoFactor", null);
1976
+ try {
1977
+ const { response, data } = await requestJson(
1978
+ apiPath("/_agent-native/auth/two-factor/verify"),
1979
+ {
1980
+ method: "POST",
1981
+ headers: { "Content-Type": "application/json" },
1982
+ body: JSON.stringify({ code }),
1983
+ },
1984
+ );
1985
+ if (response.ok && data.ok === true) {
1986
+ removeStorage(pendingEmailStorageKey());
1987
+ redirectToSignedInApp();
1988
+ return;
1989
+ }
1990
+ setNotice("twoFactor", {
1991
+ kind: "error",
1992
+ text: authErrorText(data, t("twoFactorInvalid")),
1993
+ });
1994
+ } catch {
1995
+ setNotice("twoFactor", {
1996
+ kind: "error",
1997
+ text: t("networkErrorDashRetry"),
1998
+ });
1999
+ } finally {
2000
+ setSubmitting(null);
2001
+ }
2002
+ },
2003
+ [
2004
+ apiPath,
2005
+ pendingEmailStorageKey,
2006
+ redirectToSignedInApp,
2007
+ setNotice,
2008
+ t,
2009
+ twoFactorCode,
2010
+ ],
2011
+ );
2012
+
2013
+ const handleForgot = React.useCallback(
2014
+ async (event: React.FormEvent<HTMLFormElement>) => {
2015
+ event.preventDefault();
2016
+ const email = normalizeEmail(forgotEmail);
2017
+ if (!isValidEmail(email)) {
2018
+ setNotice("forgot", { kind: "error", text: t("invalidEmail") });
2019
+ return;
2020
+ }
2021
+ setSubmitting("forgot");
2022
+ setNotice("forgot", null);
2023
+ try {
2024
+ const { response, data } = await requestJson(
2025
+ apiPath("/_agent-native/auth/ba/request-password-reset"),
2026
+ {
2027
+ method: "POST",
2028
+ headers: { "Content-Type": "application/json" },
2029
+ body: JSON.stringify({ email }),
2030
+ },
2031
+ );
2032
+ if (response.ok) {
2033
+ setForgotSent(true);
2034
+ setNotice("forgot", { kind: "success", text: t("resetEmailSent") });
2035
+ return;
2036
+ }
2037
+ setNotice("forgot", {
2038
+ kind: "error",
2039
+ text: authErrorText(
2040
+ data,
2041
+ t("resetEmailFailed"),
2042
+ t("signupInviteOnly"),
2043
+ ),
2044
+ });
2045
+ } catch {
2046
+ setNotice("forgot", {
2047
+ kind: "error",
2048
+ text: t("networkErrorDashRetry"),
2049
+ });
2050
+ } finally {
2051
+ setSubmitting(null);
2052
+ }
2053
+ },
2054
+ [apiPath, forgotEmail, setNotice, t],
2055
+ );
2056
+
2057
+ const handleMagicLink = React.useCallback(
2058
+ async (event: React.FormEvent<HTMLFormElement>) => {
2059
+ event.preventDefault();
2060
+ const email = normalizeEmail(magicLinkEmail);
2061
+ if (!isValidEmail(email)) {
2062
+ setNotice("magic-link", { kind: "error", text: t("invalidEmail") });
2063
+ return;
2064
+ }
2065
+ setMagicLinkBusy(true);
2066
+ setNotice("magic-link", null);
2067
+ trackAuth(
2068
+ trackingApp,
2069
+ "auth.signup_clicked",
2070
+ {
2071
+ surface: "signup",
2072
+ method: "magic_link",
2073
+ auth_view: view,
2074
+ },
2075
+ email,
2076
+ );
2077
+ const desktop = isAgentNativeDesktop();
2078
+ try {
2079
+ const { response, data } = await requestJson(
2080
+ apiPath("/_agent-native/auth/magic-link"),
2081
+ {
2082
+ method: "POST",
2083
+ headers: { "Content-Type": "application/json" },
2084
+ body: JSON.stringify({
2085
+ email,
2086
+ callbackURL: desktop
2087
+ ? apiPath("/_agent-native/auth/magic-link/desktop-callback")
2088
+ : identityBootstrapHref(resumeHref()),
2089
+ }),
2090
+ },
2091
+ );
2092
+ if (!response.ok) {
2093
+ setNotice("magic-link", {
2094
+ kind: "error",
2095
+ text: authErrorText(
2096
+ data,
2097
+ t("magicLinkFailed"),
2098
+ t("signupInviteOnly"),
2099
+ ),
2100
+ });
2101
+ return;
2102
+ }
2103
+ setMagicLinkEmail(email);
2104
+ setView("magicLinkSent");
2105
+ if (
2106
+ desktop &&
2107
+ typeof data.flowId === "string" &&
2108
+ typeof data.verifier === "string"
2109
+ ) {
2110
+ oauthFlowId.current = data.flowId;
2111
+ startOAuthExchange(
2112
+ data.flowId,
2113
+ resumeHref(),
2114
+ data.verifier,
2115
+ "magic-link",
2116
+ );
2117
+ }
2118
+ } catch {
2119
+ setNotice("magic-link", {
2120
+ kind: "error",
2121
+ text: t("networkErrorDashRetry"),
2122
+ });
2123
+ } finally {
2124
+ setMagicLinkBusy(false);
2125
+ }
2126
+ },
2127
+ [
2128
+ apiPath,
2129
+ identityBootstrapHref,
2130
+ magicLinkEmail,
2131
+ resumeHref,
2132
+ setNotice,
2133
+ startOAuthExchange,
2134
+ t,
2135
+ trackingApp,
2136
+ view,
2137
+ ],
2138
+ );
2139
+
2140
+ const handleOrganizationSso = React.useCallback(
2141
+ async (event: React.FormEvent<HTMLFormElement>) => {
2142
+ event.preventDefault();
2143
+ const email = normalizeEmail(ssoEmail);
2144
+ if (!isValidEmail(email)) {
2145
+ setNotice("sso", { kind: "error", text: t("invalidEmail") });
2146
+ return;
2147
+ }
2148
+ setSsoBusy(true);
2149
+ setNotice("sso", null);
2150
+ try {
2151
+ const callbackURL = new URL(
2152
+ resumeHref(),
2153
+ window.location.origin,
2154
+ ).toString();
2155
+ const { response, data } = await requestJson(
2156
+ apiPath("/_agent-native/auth/ba/sign-in/sso"),
2157
+ {
2158
+ method: "POST",
2159
+ headers: { "Content-Type": "application/json" },
2160
+ body: JSON.stringify({
2161
+ email,
2162
+ callbackURL,
2163
+ errorCallbackURL: callbackURL,
2164
+ newUserCallbackURL: callbackURL,
2165
+ }),
2166
+ },
2167
+ );
2168
+ if (!response.ok || typeof data.url !== "string" || !data.url) {
2169
+ setNotice("sso", {
2170
+ kind: "error",
2171
+ text: authErrorText(data, t("ssoFailed"), t("signupInviteOnly")),
2172
+ });
2173
+ return;
2174
+ }
2175
+ window.location.assign(data.url);
2176
+ } catch {
2177
+ setNotice("sso", { kind: "error", text: t("networkErrorDashRetry") });
2178
+ } finally {
2179
+ setSsoBusy(false);
2180
+ }
2181
+ },
2182
+ [apiPath, resumeHref, setNotice, ssoEmail, t],
2183
+ );
2184
+
2185
+ const resendVerification = React.useCallback(async () => {
2186
+ const email = verificationEmail || readPendingSignupEmail();
2187
+ if (!email || verificationResendUntil > Date.now()) return;
2188
+ setNotice("verification", null);
2189
+ try {
2190
+ const { response, data } = await requestJson(
2191
+ apiPath("/_agent-native/auth/ba/send-verification-email"),
2192
+ {
2193
+ method: "POST",
2194
+ headers: { "Content-Type": "application/json" },
2195
+ body: JSON.stringify({
2196
+ email,
2197
+ callbackURL: identityBootstrapHref(resumeHref()),
2198
+ }),
2199
+ },
2200
+ );
2201
+ if (response.ok) {
2202
+ const resendUntil = Date.now() + 60_000;
2203
+ setVerificationResendNow(Date.now());
2204
+ setVerificationResendUntil(resendUntil);
2205
+ setNotice("verification", {
2206
+ kind: "success",
2207
+ text: t("sentVerification"),
2208
+ });
2209
+ return;
2210
+ }
2211
+ setNotice("verification", {
2212
+ kind: "error",
2213
+ text: authErrorText(
2214
+ data,
2215
+ t("resendVerificationFailed"),
2216
+ t("signupInviteOnly"),
2217
+ ),
2218
+ });
2219
+ } catch {
2220
+ setNotice("verification", {
2221
+ kind: "error",
2222
+ text: t("networkErrorRetry"),
2223
+ });
2224
+ }
2225
+ }, [
2226
+ apiPath,
2227
+ identityBootstrapHref,
2228
+ readPendingSignupEmail,
2229
+ resumeHref,
2230
+ setNotice,
2231
+ t,
2232
+ verificationEmail,
2233
+ verificationResendUntil,
2234
+ ]);
2235
+
2236
+ const selectLocale = React.useCallback(
2237
+ (preference: string) => {
2238
+ const nextLocale =
2239
+ preference === "system"
2240
+ ? resolveSystemLocale(localeOptions, defaultLocale)
2241
+ : resolveLocale(preference, localeOptions, defaultLocale);
2242
+ writeStorage(localeStorageKey, preference);
2243
+ setLocalePreference(preference);
2244
+ setLocale(nextLocale);
2245
+ setLocaleMenuOpen(false);
2246
+ },
2247
+ [defaultLocale, localeOptions, localeStorageKey],
2248
+ );
2249
+
2250
+ const handlePasswordInvalid = React.useCallback(
2251
+ (event: React.FormEvent<HTMLInputElement>) => {
2252
+ const input = event.currentTarget;
2253
+ if (input.validity.tooShort)
2254
+ input.setCustomValidity(t("passwordMinPlaceholder"));
2255
+ else if (input.validity.tooLong)
2256
+ input.setCustomValidity(props.passwordMaxCopy);
2257
+ },
2258
+ [props.passwordMaxCopy, t],
2259
+ );
2260
+ const clearPasswordValidity = React.useCallback(
2261
+ (event: React.FormEvent<HTMLInputElement>) =>
2262
+ event.currentTarget.setCustomValidity(""),
2263
+ [],
2264
+ );
2265
+
2266
+ const copySignupLocalMode = React.useCallback(async () => {
2267
+ if (!signupLocalModeNote) return;
2268
+ try {
2269
+ await navigator.clipboard?.writeText(signupLocalModeNote.command);
2270
+ setCopiedLocalMode(true);
2271
+ window.setTimeout(() => setCopiedLocalMode(false), 1600);
2272
+ } catch {
2273
+ // coercion-ok: clipboard permission is optional.
2274
+ }
2275
+ }, [signupLocalModeNote]);
2276
+
2277
+ const keys = headingKeys(view);
2278
+ const localizedMarketing = marketingLocales[locale];
2279
+ const marketingCopy = marketing
2280
+ ? localizedMarketing?.authHeadline && localizedMarketing.authDescription
2281
+ ? { ...marketing, ...localizedMarketing }
2282
+ : marketing
2283
+ : undefined;
2284
+ const marketingAppName =
2285
+ marketingCopy?.appName.replace(/^Agent-Native\s+/i, "") ?? "";
2286
+ const marketingStatus = getAppStatus(trackingApp || marketingAppName);
2287
+ const usesMarketingWelcome =
2288
+ !!marketingCopy &&
2289
+ (view === "signup" ||
2290
+ view === "login" ||
2291
+ view === "magicLink" ||
2292
+ view === "googleOnly");
2293
+ const cardClassName = [
2294
+ "card",
2295
+ localDevAvailable ? "local-dev-available" : "",
2296
+ view === "verification" ? "verifying" : "",
2297
+ view === "magicLinkSent" ? "magic-link-complete" : "",
2298
+ ]
2299
+ .filter(Boolean)
2300
+ .join(" ");
2301
+ const localModeNote = signupLocalModeNote ? (
2302
+ <div
2303
+ className="signup-local-mode-note"
2304
+ id="signup-local-mode-note"
2305
+ data-command={signupLocalModeNote.command}
2306
+ >
2307
+ <p>{signupLocalModeNote.text}</p>
2308
+ <code>{signupLocalModeNote.command}</code>
2309
+ <button
2310
+ type="button"
2311
+ className="copy-run-local"
2312
+ id="copy-signup-local-mode"
2313
+ data-copy-signup-local-mode="true"
2314
+ data-i18n="copyCommand"
2315
+ onClick={() => void copySignupLocalMode()}
2316
+ >
2317
+ {copiedLocalMode ? t("copied") : t("copyCommand")}
2318
+ </button>
2319
+ </div>
2320
+ ) : null;
2321
+ const legalNote = signupLegalNotice ? (
2322
+ <p className="legal-note">
2323
+ <span data-i18n="legalPrefix">
2324
+ {signupLegalNotice.prefix ?? t("legalPrefix")}
2325
+ </span>{" "}
2326
+ <a
2327
+ href={signupLegalNotice.termsUrl}
2328
+ target="_blank"
2329
+ rel="noreferrer"
2330
+ data-i18n={signupLegalNotice.termsLabel ? undefined : "legalTerms"}
2331
+ >
2332
+ {signupLegalNotice.termsLabel ?? t("legalTerms")}
2333
+ </a>{" "}
2334
+ <span data-i18n="legalConnector">
2335
+ {signupLegalNotice.connector ?? t("legalConnector")}
2336
+ </span>{" "}
2337
+ <a
2338
+ href={signupLegalNotice.privacyUrl}
2339
+ target="_blank"
2340
+ rel="noreferrer"
2341
+ data-i18n={signupLegalNotice.privacyLabel ? undefined : "legalPrivacy"}
2342
+ >
2343
+ {signupLegalNotice.privacyLabel ?? t("legalPrivacy")}
2344
+ </a>
2345
+ <span data-i18n="legalSuffix">
2346
+ {signupLegalNotice.suffix ?? t("legalSuffix")}
2347
+ </span>
2348
+ </p>
2349
+ ) : null;
2350
+ const signupWave =
2351
+ usesMarketingWelcome && view === "signup" ? (
2352
+ <div className="auth-marketing-signup-wave">
2353
+ <StarfieldBackground
2354
+ className="auth-marketing-signup-wave-canvas"
2355
+ transparent
2356
+ />
2357
+ </div>
2358
+ ) : null;
2359
+ const signupForm = (
2360
+ <AuthForm
2361
+ id="signup-form"
2362
+ className={view === "signup" ? "active" : undefined}
2363
+ onSubmit={handleSignup}
2364
+ fields={[
2365
+ {
2366
+ id: "s-email",
2367
+ label: t("email"),
2368
+ labelProps: { "data-i18n": "email" },
2369
+ inputProps: {
2370
+ type: "email",
2371
+ autoComplete: "email",
2372
+ placeholder: t("emailPlaceholder"),
2373
+ required: true,
2374
+ value: signupEmail,
2375
+ onChange: (event) => setSignupEmail(event.currentTarget.value),
2376
+ },
2377
+ },
2378
+ {
2379
+ id: "s-pass",
2380
+ label: t("password"),
2381
+ labelProps: { "data-i18n": "password" },
2382
+ inputProps: {
2383
+ type: "password",
2384
+ autoComplete: "new-password",
2385
+ placeholder: t("passwordMinPlaceholder"),
2386
+ "data-i18n-placeholder": "passwordMinPlaceholder",
2387
+ required: true,
2388
+ minLength: props.passwordMinLength,
2389
+ maxLength: props.passwordMaxLength,
2390
+ value: signupPassword,
2391
+ onChange: (event) => setSignupPassword(event.currentTarget.value),
2392
+ onInvalid: handlePasswordInvalid,
2393
+ onInput: clearPasswordValidity,
2394
+ },
2395
+ },
2396
+ {
2397
+ id: "s-pass2",
2398
+ label: t("confirmPassword"),
2399
+ labelProps: { "data-i18n": "confirmPassword" },
2400
+ inputProps: {
2401
+ type: "password",
2402
+ autoComplete: "new-password",
2403
+ placeholder: t("confirmPasswordPlaceholder"),
2404
+ "data-i18n-placeholder": "confirmPasswordPlaceholder",
2405
+ required: true,
2406
+ minLength: props.passwordMinLength,
2407
+ maxLength: props.passwordMaxLength,
2408
+ value: signupPasswordConfirmation,
2409
+ onChange: (event) =>
2410
+ setSignupPasswordConfirmation(event.currentTarget.value),
2411
+ onInvalid: handlePasswordInvalid,
2412
+ onInput: clearPasswordValidity,
2413
+ },
2414
+ },
2415
+ ]}
2416
+ submitLabel={t("createAccount")}
2417
+ submitProps={{
2418
+ "data-i18n": "createAccount",
2419
+ disabled: submitting === "signup",
2420
+ }}
2421
+ footer={
2422
+ <>
2423
+ {legalNote}
2424
+ {signupWave}
2425
+ {localModeNote}
2426
+ </>
2427
+ }
2428
+ messageId="s-msg"
2429
+ messageClassName={`msg ${messages.signup ? `${messages.signup.kind} show` : ""}`}
2430
+ message={messages.signup?.text}
2431
+ />
2432
+ );
2433
+ const authCard = (
2434
+ <div className={cardClassName}>
2435
+ <h1
2436
+ id="heading"
2437
+ data-i18n={usesMarketingWelcome ? "welcomeToApp" : keys.heading}
2438
+ data-auth-marketing-title={usesMarketingWelcome ? "true" : undefined}
2439
+ >
2440
+ {usesMarketingWelcome
2441
+ ? t("welcomeToApp").replace("{appName}", marketingAppName)
2442
+ : t(keys.heading)}
2443
+ </h1>
2444
+ <p
2445
+ id="subtitle"
2446
+ className="subtitle"
2447
+ data-i18n={usesMarketingWelcome ? undefined : keys.subtitle}
2448
+ data-auth-marketing-subtitle={usesMarketingWelcome ? "true" : undefined}
2449
+ hidden={
2450
+ usesMarketingWelcome
2451
+ ? false
2452
+ : shouldHideAuthSubtitle(view, localDevAvailable)
2453
+ }
2454
+ >
2455
+ {usesMarketingWelcome ? t("welcomeSubtitle") : t(keys.subtitle)}
2456
+ </p>
2457
+ <p
2458
+ className={`upgrade-note ${upgradeVisible ? "show" : ""}`}
2459
+ id="upgrade-note"
2460
+ data-upgrade-copy={t("upgradeCopy")}
2461
+ data-i18n-data-upgrade-copy="upgradeCopy"
2462
+ >
2463
+ {upgradeVisible ? t("upgradeCopy") : null}
2464
+ </p>
2465
+ {identitySsoEnabled && !identitySsoAuto && !googleOnly ? (
2466
+ <div className="identity-sso-entry" id="identity-sso-entry">
2467
+ <a
2468
+ className="btn-primary btn-identity-sso"
2469
+ id="identity-sso-btn"
2470
+ href={identityLoginHref}
2471
+ aria-describedby="identity-sso-hint"
2472
+ data-i18n="continueWithAgentNative"
2473
+ >
2474
+ {t("continueWithAgentNative")}
2475
+ </a>
2476
+ <p
2477
+ className="identity-sso-hint"
2478
+ id="identity-sso-hint"
2479
+ data-i18n="identitySsoHint"
2480
+ >
2481
+ {t("identitySsoHint")}
2482
+ </p>
2483
+ </div>
2484
+ ) : null}
2485
+ <div
2486
+ className="local-dev-signin"
2487
+ id="local-dev-signin"
2488
+ hidden={!localDevAvailable}
2489
+ >
2490
+ <button
2491
+ type="button"
2492
+ className="btn-local-dev btn-primary"
2493
+ id="local-dev-btn"
2494
+ title={t("localDevDescription")}
2495
+ data-i18n="localDevButton"
2496
+ data-i18n-title="localDevDescription"
2497
+ aria-describedby="local-dev-description"
2498
+ disabled={localDevBusy}
2499
+ onClick={() => void handleLocalDev()}
2500
+ >
2501
+ {localDevBusy ? t("localDevSigningIn") : t("localDevButton")}
2502
+ </button>
2503
+ <p className="local-dev-description" id="local-dev-description">
2504
+ <span data-i18n="localDevDescription">
2505
+ {t("localDevDescription")}
2506
+ </span>
2507
+ <a
2508
+ className="local-dev-help"
2509
+ id="local-dev-help"
2510
+ href={docsAuthUrl}
2511
+ target="_blank"
2512
+ rel="noreferrer"
2513
+ aria-label={t("localDevHelp")}
2514
+ title={t("localDevHelp")}
2515
+ data-i18n-title="localDevHelp"
2516
+ data-i18n-aria-label="localDevHelp"
2517
+ >
2518
+ <span className="local-dev-help-glyph" aria-hidden="true">
2519
+ ?
2520
+ </span>
2521
+ </a>
2522
+ </p>
2523
+ <button
2524
+ type="button"
2525
+ className="local-dev-full-options"
2526
+ id="local-dev-full-options"
2527
+ hidden={!localDevAvailable}
2528
+ aria-controls="full-auth-options"
2529
+ aria-expanded={fullAuthOptionsVisible}
2530
+ data-i18n={
2531
+ fullAuthOptionsVisible
2532
+ ? "localDevHideFullOptions"
2533
+ : "localDevFullOptions"
2534
+ }
2535
+ onClick={() => setFullAuthOptionsVisible((visible) => !visible)}
2536
+ >
2537
+ {t(
2538
+ fullAuthOptionsVisible
2539
+ ? "localDevHideFullOptions"
2540
+ : "localDevFullOptions",
2541
+ )}
2542
+ </button>
2543
+ {notice("local-dev")}
2544
+ </div>
2545
+ <div
2546
+ id="full-auth-options"
2547
+ className="full-auth-options"
2548
+ hidden={!fullAuthOptionsVisible}
2549
+ >
2550
+ {googleOnly && !showGoogle ? (
2551
+ <p
2552
+ className="google-error show"
2553
+ id="google-err"
2554
+ role="status"
2555
+ data-i18n="googleNotConfigured"
2556
+ >
2557
+ {t("googleNotConfigured")}
2558
+ </p>
2559
+ ) : null}
2560
+ {showGoogle ? (
2561
+ <div className="google-signin" id="google-signin">
2562
+ <button
2563
+ className={`btn-google ${view === "magicLink" && isValidEmail(magicLinkEmail) ? "magic-link-secondary" : ""}`}
2564
+ id="google-btn"
2565
+ type="button"
2566
+ disabled={googleBusy}
2567
+ aria-busy={googleBusy}
2568
+ onClick={() => void startGoogle()}
2569
+ >
2570
+ {googleBusy ? (
2571
+ <IconLoader2 className="animate-spin" aria-hidden="true" />
2572
+ ) : (
2573
+ googleSvg()
2574
+ )}
2575
+ <span data-i18n="googleButton">{t("googleButton")}</span>
2576
+ </button>
2577
+ {notice("google")}
2578
+ <p className="google-debug" id="google-debug" />
2579
+ </div>
2580
+ ) : null}
2581
+ {organizationSsoEnabled && !googleOnly ? (
2582
+ <form
2583
+ id="organization-sso-form"
2584
+ className="sso-signin"
2585
+ onSubmit={handleOrganizationSso}
2586
+ >
2587
+ <label htmlFor="sso-email" data-i18n="email">
2588
+ {t("email")}
2589
+ </label>
2590
+ <input
2591
+ id="sso-email"
2592
+ type="email"
2593
+ autoComplete="email"
2594
+ placeholder={t("ssoEmailPlaceholder")}
2595
+ required
2596
+ value={ssoEmail}
2597
+ onChange={(event) => setSsoEmail(event.currentTarget.value)}
2598
+ />
2599
+ <button
2600
+ type="submit"
2601
+ id="organization-sso-submit"
2602
+ disabled={ssoBusy || !isValidEmail(ssoEmail)}
2603
+ data-i18n="ssoButton"
2604
+ >
2605
+ {ssoBusy ? t("checking") : t("ssoButton")}
2606
+ </button>
2607
+ {notice("sso")}
2608
+ </form>
2609
+ ) : null}
2610
+ {!googleOnly && showGoogle ? (
2611
+ <div className="divider" id="auth-divider" data-i18n="dividerOr">
2612
+ {t("dividerOr")}
2613
+ </div>
2614
+ ) : null}
2615
+ {!googleOnly && authMode === "magic-link" ? (
2616
+ <form
2617
+ id="magic-link-form"
2618
+ className={`form ${view === "magicLink" ? "active" : ""}`}
2619
+ onSubmit={handleMagicLink}
2620
+ >
2621
+ <label htmlFor="m-email" data-i18n="email">
2622
+ {t("email")}
2623
+ </label>
2624
+ <input
2625
+ id="m-email"
2626
+ type="email"
2627
+ autoComplete="email"
2628
+ placeholder={t("emailPlaceholder")}
2629
+ required
2630
+ value={magicLinkEmail}
2631
+ onChange={(event) => setMagicLinkEmail(event.currentTarget.value)}
2632
+ />
2633
+ <button
2634
+ type="submit"
2635
+ id="magic-link-submit"
2636
+ className="magic-link-submit"
2637
+ disabled={magicLinkBusy || !isValidEmail(magicLinkEmail)}
2638
+ data-i18n="sendMagicLink"
2639
+ >
2640
+ {magicLinkBusy ? t("sending") : t("sendMagicLink")}
2641
+ </button>
2642
+ {notice("magic-link")}
2643
+ <p className="auth-mode-switch">
2644
+ <button
2645
+ type="button"
2646
+ className="link-button auth-mode-link"
2647
+ id="use-password-link"
2648
+ data-i18n="usePasswordInstead"
2649
+ onClick={() => setView("login")}
2650
+ >
2651
+ {t("usePasswordInstead")}
2652
+ </button>
2653
+ </p>
2654
+ {legalNote}
2655
+ </form>
2656
+ ) : null}
2657
+ {authMode === "magic-link" ? (
2658
+ <div
2659
+ className={`magic-link-success ${view === "magicLinkSent" ? "is-visible" : ""}`}
2660
+ id="magic-link-success"
2661
+ aria-live="polite"
2662
+ hidden={view !== "magicLinkSent"}
2663
+ >
2664
+ <p className="magic-link-success-copy">
2665
+ <span data-i18n="magicLinkSentCopy">
2666
+ {t("magicLinkSentCopy")}
2667
+ </span>{" "}
2668
+ <strong id="magic-link-success-email">{magicLinkEmail}</strong>.
2669
+ </p>
2670
+ <button
2671
+ type="button"
2672
+ className="link-button magic-link-back"
2673
+ id="magic-link-back"
2674
+ data-i18n="back"
2675
+ onClick={() => {
2676
+ setMagicLinkEmail("");
2677
+ setView("magicLink");
2678
+ }}
2679
+ >
2680
+ {t("back")}
2681
+ </button>
2682
+ </div>
2683
+ ) : null}
2684
+ {!googleOnly ? (
2685
+ <div
2686
+ className="tabs"
2687
+ id="auth-tabs"
2688
+ hidden={
2689
+ view === "magicLink" ||
2690
+ view === "magicLinkSent" ||
2691
+ view === "twoFactor"
2692
+ }
2693
+ >
2694
+ <button
2695
+ className={`tab ${view === "signup" ? "active" : ""}`}
2696
+ type="button"
2697
+ data-tab="signup"
2698
+ data-i18n="createAccount"
2699
+ onClick={() => {
2700
+ setView("signup");
2701
+ writeStorage(TAB_STORAGE_KEY, "signup");
2702
+ }}
2703
+ >
2704
+ {t("createAccount")}
2705
+ </button>
2706
+ <button
2707
+ className={`tab ${view === "login" || view === "forgot" ? "active" : ""}`}
2708
+ type="button"
2709
+ data-tab="login"
2710
+ data-i18n="signIn"
2711
+ onClick={() => {
2712
+ setView("login");
2713
+ writeStorage(TAB_STORAGE_KEY, "login");
2714
+ }}
2715
+ >
2716
+ {t("signIn")}
2717
+ </button>
2718
+ </div>
2719
+ ) : null}
2720
+ {!googleOnly ? signupForm : null}
2721
+ <div
2722
+ id="verification-step"
2723
+ className={`form verification-step ${view === "verification" ? "active" : ""}`}
2724
+ aria-live="polite"
2725
+ >
2726
+ <div
2727
+ className="step-progress"
2728
+ aria-label={t("signupProgress")}
2729
+ data-i18n-aria-label="signupProgress"
2730
+ >
2731
+ <div className="progress-step complete">
2732
+ <span>1</span>
2733
+ <strong data-i18n="progressAccount">
2734
+ {t("progressAccount")}
2735
+ </strong>
2736
+ </div>
2737
+ <div className="progress-step current">
2738
+ <span>2</span>
2739
+ <strong data-i18n="progressVerify">{t("progressVerify")}</strong>
2740
+ </div>
2741
+ <div className="progress-step">
2742
+ <span>3</span>
2743
+ <strong data-i18n="progressStart">{t("progressStart")}</strong>
2744
+ </div>
2745
+ </div>
2746
+ <div className="verification-panel">
2747
+ <p className="verification-kicker" data-i18n="verificationSent">
2748
+ {t("verificationSent")}
2749
+ </p>
2750
+ <p className="verification-copy">
2751
+ <span data-i18n="verifyCopyPrefix">{t("verifyCopyPrefix")}</span>{" "}
2752
+ <strong id="verify-email">{verificationEmail}</strong>
2753
+ <span data-i18n="verifyCopySuffix">{t("verifyCopySuffix")}</span>
2754
+ </p>
2755
+ <p className="verification-note" data-i18n="verificationNote">
2756
+ {t("verificationNote")}
2757
+ </p>
2758
+ </div>
2759
+ <button
2760
+ type="button"
2761
+ className="btn-primary"
2762
+ id="verify-continue"
2763
+ data-i18n="continue"
2764
+ onClick={() => void checkVerification()}
2765
+ >
2766
+ {t("continue")}
2767
+ </button>
2768
+ <div className="inline-actions">
2769
+ <button
2770
+ type="button"
2771
+ className="link-button"
2772
+ id="resend-verification"
2773
+ disabled={verificationResendActive}
2774
+ data-i18n="resendEmail"
2775
+ onClick={() => void resendVerification()}
2776
+ >
2777
+ {t("resendEmail")}
2778
+ {verificationResendActive
2779
+ ? ` (${Math.ceil((verificationResendUntil - Date.now()) / 1000)}s)`
2780
+ : ""}
2781
+ </button>
2782
+ <button
2783
+ type="button"
2784
+ className="link-button"
2785
+ id="back-to-signup"
2786
+ data-i18n="back"
2787
+ onClick={() => {
2788
+ clearVerificationResendCooldown();
2789
+ removeStorage(pendingEmailStorageKey());
2790
+ setView("signup");
2791
+ }}
2792
+ >
2793
+ {t("back")}
2794
+ </button>
2795
+ </div>
2796
+ {notice("verification")}
2797
+ </div>
2798
+ <form
2799
+ id="two-factor-form"
2800
+ className={`form ${view === "twoFactor" ? "active" : ""}`}
2801
+ onSubmit={handleTwoFactor}
2802
+ >
2803
+ <label htmlFor="two-factor-code" data-i18n="twoFactorCodeLabel">
2804
+ {t("twoFactorCodeLabel")}
2805
+ </label>
2806
+ <input
2807
+ id="two-factor-code"
2808
+ type="text"
2809
+ inputMode="numeric"
2810
+ autoComplete="one-time-code"
2811
+ pattern="[0-9]{6,8}"
2812
+ maxLength={8}
2813
+ placeholder={t("twoFactorCodePlaceholder")}
2814
+ value={twoFactorCode}
2815
+ onChange={(event) =>
2816
+ setTwoFactorCode(event.currentTarget.value.replace(/\D/g, ""))
2817
+ }
2818
+ required
2819
+ />
2820
+ <button
2821
+ type="submit"
2822
+ data-i18n="twoFactorVerify"
2823
+ disabled={submitting === "twoFactor"}
2824
+ >
2825
+ {submitting === "twoFactor"
2826
+ ? t("twoFactorVerifying")
2827
+ : t("twoFactorVerify")}
2828
+ </button>
2829
+ {notice("twoFactor")}
2830
+ <button
2831
+ type="button"
2832
+ className="link-button"
2833
+ data-i18n="twoFactorBack"
2834
+ onClick={() => {
2835
+ setTwoFactorCode("");
2836
+ setNotice("twoFactor", null);
2837
+ setView("login");
2838
+ }}
2839
+ >
2840
+ {t("twoFactorBack")}
2841
+ </button>
2842
+ </form>
2843
+ <form
2844
+ id="login-form"
2845
+ className={`form ${view === "login" ? "active" : ""}`}
2846
+ onSubmit={handleLogin}
2847
+ >
2848
+ <label htmlFor="l-email" data-i18n="email">
2849
+ {t("email")}
2850
+ </label>
2851
+ <input
2852
+ id="l-email"
2853
+ type="email"
2854
+ autoComplete="email"
2855
+ placeholder={t("emailPlaceholder")}
2856
+ required
2857
+ value={loginEmail}
2858
+ onChange={(event) => setLoginEmail(event.currentTarget.value)}
2859
+ />
2860
+ <label htmlFor="l-pass" data-i18n="password">
2861
+ {t("password")}
2862
+ </label>
2863
+ <input
2864
+ id="l-pass"
2865
+ type="password"
2866
+ autoComplete="current-password"
2867
+ placeholder={t("enterPasswordPlaceholder")}
2868
+ data-i18n-placeholder="enterPasswordPlaceholder"
2869
+ required
2870
+ value={loginPassword}
2871
+ onChange={(event) => setLoginPassword(event.currentTarget.value)}
2872
+ onInvalid={handlePasswordInvalid}
2873
+ onInput={clearPasswordValidity}
2874
+ />
2875
+ <button
2876
+ type="submit"
2877
+ data-i18n="signIn"
2878
+ disabled={submitting === "login"}
2879
+ >
2880
+ {submitting === "login" ? t("signingIn") : t("signIn")}
2881
+ </button>
2882
+ {notice("login")}
2883
+ <p
2884
+ style={{
2885
+ marginTop: "0.75rem",
2886
+ fontSize: "0.75rem",
2887
+ textAlign: "right",
2888
+ }}
2889
+ >
2890
+ <button
2891
+ type="button"
2892
+ id="forgot-link"
2893
+ className="link-button"
2894
+ data-i18n="forgotPassword"
2895
+ onClick={() => {
2896
+ setForgotEmail(loginEmail);
2897
+ setView("forgot");
2898
+ }}
2899
+ >
2900
+ {t("forgotPassword")}
2901
+ </button>
2902
+ </p>
2903
+ {authMode === "magic-link" ? (
2904
+ <p
2905
+ style={{
2906
+ marginTop: "0.5rem",
2907
+ fontSize: "0.75rem",
2908
+ textAlign: "center",
2909
+ }}
2910
+ >
2911
+ <button
2912
+ type="button"
2913
+ className="link-button"
2914
+ id="back-to-magic-link"
2915
+ data-i18n="backToMagicLink"
2916
+ onClick={() => setView("magicLink")}
2917
+ >
2918
+ {t("backToMagicLink")}
2919
+ </button>
2920
+ </p>
2921
+ ) : null}
2922
+ </form>
2923
+ <form
2924
+ id="forgot-form"
2925
+ className={`form ${view === "forgot" ? "active" : ""}`}
2926
+ onSubmit={handleForgot}
2927
+ >
2928
+ <label htmlFor="f-email" data-i18n="email">
2929
+ {t("email")}
2930
+ </label>
2931
+ <input
2932
+ id="f-email"
2933
+ type="email"
2934
+ autoComplete="email"
2935
+ placeholder={t("emailPlaceholder")}
2936
+ required
2937
+ value={forgotEmail}
2938
+ onChange={(event) => setForgotEmail(event.currentTarget.value)}
2939
+ />
2940
+ <button
2941
+ type="submit"
2942
+ data-i18n="sendResetLink"
2943
+ disabled={forgotSent || submitting === "forgot"}
2944
+ >
2945
+ {forgotSent
2946
+ ? t("sent")
2947
+ : submitting === "forgot"
2948
+ ? t("sending")
2949
+ : t("sendResetLink")}
2950
+ </button>
2951
+ {notice("forgot")}
2952
+ <p
2953
+ style={{
2954
+ marginTop: "0.75rem",
2955
+ fontSize: "0.75rem",
2956
+ textAlign: "center",
2957
+ }}
2958
+ >
2959
+ <button
2960
+ type="button"
2961
+ className="link-button"
2962
+ id="back-to-login"
2963
+ data-i18n="backToSignIn"
2964
+ onClick={() => setView("login")}
2965
+ >
2966
+ {t("backToSignIn")}
2967
+ </button>
2968
+ </p>
2969
+ </form>
2970
+ </div>
2971
+ </div>
2972
+ );
2973
+ const marketingContent = marketingCopy ? (
2974
+ <div className="marketing-content">
2975
+ <h2 className="app-name">
2976
+ <picture>
2977
+ {brandMarkLightSrc ? (
2978
+ <source
2979
+ media="(prefers-color-scheme: light)"
2980
+ srcSet={brandMarkLightSrc}
2981
+ />
2982
+ ) : null}
2983
+ <img
2984
+ className="brand-mark"
2985
+ src={brandMarkSrc}
2986
+ alt=""
2987
+ aria-hidden="true"
2988
+ />
2989
+ </picture>
2990
+ <span className="app-name-label">{marketingAppName}</span>
2991
+ <span className="app-status-badge">{marketingStatus}</span>
2992
+ </h2>
2993
+ <div className="marketing-copy">
2994
+ <p className="auth-marketing-headline" data-marketing-field="headline">
2995
+ {marketingCopy.authHeadline ?? marketingCopy.tagline}
2996
+ </p>
2997
+ {(marketingCopy.authDescription ?? marketingCopy.description) ||
2998
+ marketingCopy.learnMoreUrl ? (
2999
+ <p
3000
+ className="auth-marketing-description"
3001
+ data-marketing-field="description"
3002
+ >
3003
+ {marketingCopy.authDescription ?? marketingCopy.description}
3004
+ {marketingCopy.learnMoreUrl ? (
3005
+ <>
3006
+ {" "}
3007
+ <a
3008
+ className="auth-marketing-description-link"
3009
+ href={marketingCopy.learnMoreUrl}
3010
+ target="_blank"
3011
+ rel="noreferrer"
3012
+ >
3013
+ {t("learnMore")}
3014
+ </a>
3015
+ </>
3016
+ ) : null}
3017
+ </p>
3018
+ ) : null}
3019
+ <div className="marketing-actions">
3020
+ <a
3021
+ className="oss-badge"
3022
+ href={githubUrl}
3023
+ target="_blank"
3024
+ rel="noreferrer"
3025
+ >
3026
+ <svg
3027
+ aria-hidden="true"
3028
+ viewBox="0 0 24 24"
3029
+ width={16}
3030
+ height={16}
3031
+ fill="none"
3032
+ stroke="currentColor"
3033
+ strokeWidth={2}
3034
+ strokeLinecap="round"
3035
+ strokeLinejoin="round"
3036
+ >
3037
+ <path d="M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2a4.6 4.6 0 0 0 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5" />
3038
+ </svg>
3039
+ <span data-i18n="openSource">{t("openSource")}</span>
3040
+ </a>
3041
+ </div>
3042
+ </div>
3043
+ </div>
3044
+ ) : null;
3045
+ const marketingSurface = marketingCopy ? (
3046
+ <main className="auth-marketing-home" data-agent-native-marketing-home>
3047
+ <div className="auth-marketing-shell">
3048
+ <div className="split auth-marketing-layout">
3049
+ <aside className="form-panel w-full max-w-md justify-self-end">
3050
+ {authCard}
3051
+ </aside>
3052
+ <section className="marketing-panel">
3053
+ <div className="auth-marketing-visual">
3054
+ <div className="auth-marketing-screenshot-wrap">
3055
+ <AuthMarketingBackground />
3056
+ </div>
3057
+ {marketingContent}
3058
+ </div>
3059
+ </section>
3060
+ </div>
3061
+ </div>
3062
+ </main>
3063
+ ) : (
3064
+ <div className="auth-centered">{authCard}</div>
3065
+ );
3066
+ const localePicker = (
3067
+ <div className="locale-picker">
3068
+ <button
3069
+ type="button"
3070
+ className="locale-trigger"
3071
+ id="auth-locale-trigger"
3072
+ aria-haspopup="menu"
3073
+ aria-expanded={localeMenuOpen}
3074
+ aria-controls="auth-locale-menu"
3075
+ aria-label={t("languageLabel")}
3076
+ title={t("languageLabel")}
3077
+ data-i18n-aria-label="languageLabel"
3078
+ data-i18n-title="languageLabel"
3079
+ onClick={() => setLocaleMenuOpen((open) => !open)}
3080
+ >
3081
+ <svg viewBox="0 0 24 24" aria-hidden="true">
3082
+ <path d="M4 5h7" />
3083
+ <path d="M7.5 4v1" />
3084
+ <path d="M9.5 5c-.8 4.4-2.6 7.2-5.5 9" />
3085
+ <path d="M5 9c1.2 2.1 3.2 3.8 6 5" />
3086
+ <path d="M13 20l4-9 4 9" />
3087
+ <path d="M14.5 17h5" />
3088
+ </svg>
3089
+ </button>
3090
+ <div
3091
+ className="locale-menu"
3092
+ id="auth-locale-menu"
3093
+ role="menu"
3094
+ aria-labelledby="auth-locale-trigger"
3095
+ hidden={!localeMenuOpen}
3096
+ >
3097
+ <button
3098
+ type="button"
3099
+ className="locale-menu-item"
3100
+ role="menuitemradio"
3101
+ aria-checked={localePreference === "system"}
3102
+ data-locale-value="system"
3103
+ onClick={() => selectLocale("system")}
3104
+ >
3105
+ <span className="locale-menu-check" aria-hidden="true">
3106
+ ✓
3107
+ </span>
3108
+ <span data-system-language>{t("systemLanguage")}</span>
3109
+ </button>
3110
+ {localeOptions.map((option) => (
3111
+ <button
3112
+ type="button"
3113
+ className="locale-menu-item"
3114
+ role="menuitemradio"
3115
+ aria-checked={localePreference === option.value}
3116
+ data-locale-value={option.value}
3117
+ key={option.value}
3118
+ onClick={() => selectLocale(option.value)}
3119
+ >
3120
+ <span className="locale-menu-check" aria-hidden="true">
3121
+ ✓
3122
+ </span>
3123
+ <span>{option.label}</span>
3124
+ </button>
3125
+ ))}
3126
+ </div>
3127
+ </div>
3128
+ );
3129
+ return (
3130
+ <>
3131
+ {localePicker}
3132
+ {initialPrompt ? (
3133
+ <div className="auth-centered">{authCard}</div>
3134
+ ) : (
3135
+ marketingSurface
3136
+ )}
3137
+ </>
3138
+ );
3139
+ }