@agent-native/toolkit 0.228.0-nightly-20261111212500 → 0.228.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/agent-native.eject.json +2 -0
  2. package/dist/app/agentkit/react/approval-card.d.ts.map +1 -1
  3. package/dist/app/agentkit/react/approval-card.js +5 -3
  4. package/dist/app/agentkit/react/approval-card.js.map +1 -1
  5. package/dist/app/agentkit/react/code-block.d.ts +32 -0
  6. package/dist/app/agentkit/react/code-block.d.ts.map +1 -0
  7. package/dist/app/agentkit/react/code-block.js +125 -0
  8. package/dist/app/agentkit/react/code-block.js.map +1 -0
  9. package/dist/app/agentkit/react/components.d.ts +33 -14
  10. package/dist/app/agentkit/react/components.d.ts.map +1 -1
  11. package/dist/app/agentkit/react/components.js +843 -168
  12. package/dist/app/agentkit/react/components.js.map +1 -1
  13. package/dist/app/agentkit/react/context-usage.d.ts +45 -0
  14. package/dist/app/agentkit/react/context-usage.d.ts.map +1 -0
  15. package/dist/app/agentkit/react/context-usage.js +93 -0
  16. package/dist/app/agentkit/react/context-usage.js.map +1 -0
  17. package/dist/app/agentkit/react/context.d.ts +42 -3
  18. package/dist/app/agentkit/react/context.d.ts.map +1 -1
  19. package/dist/app/agentkit/react/context.js +46 -1
  20. package/dist/app/agentkit/react/context.js.map +1 -1
  21. package/dist/app/agentkit/react/disclosure-content.d.ts +12 -0
  22. package/dist/app/agentkit/react/disclosure-content.d.ts.map +1 -0
  23. package/dist/app/agentkit/react/disclosure-content.js +33 -0
  24. package/dist/app/agentkit/react/disclosure-content.js.map +1 -0
  25. package/dist/app/agentkit/react/duration.d.ts +6 -0
  26. package/dist/app/agentkit/react/duration.d.ts.map +1 -0
  27. package/dist/app/agentkit/react/duration.js +21 -0
  28. package/dist/app/agentkit/react/duration.js.map +1 -0
  29. package/dist/app/agentkit/react/file-change.d.ts +33 -0
  30. package/dist/app/agentkit/react/file-change.d.ts.map +1 -0
  31. package/dist/app/agentkit/react/file-change.js +83 -0
  32. package/dist/app/agentkit/react/file-change.js.map +1 -0
  33. package/dist/app/agentkit/react/file-diff.d.ts +17 -0
  34. package/dist/app/agentkit/react/file-diff.d.ts.map +1 -0
  35. package/dist/app/agentkit/react/file-diff.js +94 -0
  36. package/dist/app/agentkit/react/file-diff.js.map +1 -0
  37. package/dist/app/agentkit/react/index.d.ts +7 -0
  38. package/dist/app/agentkit/react/index.d.ts.map +1 -1
  39. package/dist/app/agentkit/react/index.js +7 -0
  40. package/dist/app/agentkit/react/index.js.map +1 -1
  41. package/dist/app/agentkit/react/question-card.d.ts +67 -0
  42. package/dist/app/agentkit/react/question-card.d.ts.map +1 -0
  43. package/dist/app/agentkit/react/question-card.js +198 -0
  44. package/dist/app/agentkit/react/question-card.js.map +1 -0
  45. package/dist/app/agentkit/react/root.d.ts +3 -2
  46. package/dist/app/agentkit/react/root.d.ts.map +1 -1
  47. package/dist/app/agentkit/react/root.js +2 -2
  48. package/dist/app/agentkit/react/root.js.map +1 -1
  49. package/dist/app/agentkit/react/roving-focus.d.ts +4 -0
  50. package/dist/app/agentkit/react/roving-focus.d.ts.map +1 -0
  51. package/dist/app/agentkit/react/roving-focus.js +75 -0
  52. package/dist/app/agentkit/react/roving-focus.js.map +1 -0
  53. package/dist/app/agentkit/react/stack-trace.d.ts +34 -0
  54. package/dist/app/agentkit/react/stack-trace.d.ts.map +1 -0
  55. package/dist/app/agentkit/react/stack-trace.js +121 -0
  56. package/dist/app/agentkit/react/stack-trace.js.map +1 -0
  57. package/dist/app/agentkit/react/stop-button.d.ts.map +1 -1
  58. package/dist/app/agentkit/react/stop-button.js +22 -6
  59. package/dist/app/agentkit/react/stop-button.js.map +1 -1
  60. package/dist/app/agentkit/react/styles.css +1306 -395
  61. package/dist/app/agentkit/react/terminal.d.ts +28 -0
  62. package/dist/app/agentkit/react/terminal.d.ts.map +1 -0
  63. package/dist/app/agentkit/react/terminal.js +84 -0
  64. package/dist/app/agentkit/react/terminal.js.map +1 -0
  65. package/dist/app/agentkit/react/trace.d.ts +31 -0
  66. package/dist/app/agentkit/react/trace.d.ts.map +1 -0
  67. package/dist/app/agentkit/react/trace.js +73 -0
  68. package/dist/app/agentkit/react/trace.js.map +1 -0
  69. package/dist/app/blocks/library/HighlightedCode.d.ts +2 -1
  70. package/dist/app/blocks/library/HighlightedCode.d.ts.map +1 -1
  71. package/dist/app/blocks/library/HighlightedCode.js +8 -111
  72. package/dist/app/blocks/library/HighlightedCode.js.map +1 -1
  73. package/dist/app/chat/AgentKitAssistantChat.d.ts.map +1 -1
  74. package/dist/app/chat/AgentKitAssistantChat.js +23 -245
  75. package/dist/app/chat/AgentKitAssistantChat.js.map +1 -1
  76. package/dist/app/chat/agentkit-chat/guided-questions.d.ts +15 -1
  77. package/dist/app/chat/agentkit-chat/guided-questions.d.ts.map +1 -1
  78. package/dist/app/chat/agentkit-chat/guided-questions.js +142 -2
  79. package/dist/app/chat/agentkit-chat/guided-questions.js.map +1 -1
  80. package/dist/app/chat/agentkit-chat/history.js +1 -1
  81. package/dist/app/chat/agentkit-chat/history.js.map +1 -1
  82. package/dist/app/chat/agentkit-chat/index.d.ts +1 -1
  83. package/dist/app/chat/agentkit-chat/index.d.ts.map +1 -1
  84. package/dist/app/chat/agentkit-chat/index.js +1 -1
  85. package/dist/app/chat/agentkit-chat/index.js.map +1 -1
  86. package/dist/app/chat/agentkit-chat/labels.d.ts +5 -0
  87. package/dist/app/chat/agentkit-chat/labels.d.ts.map +1 -0
  88. package/dist/app/chat/agentkit-chat/labels.js +245 -0
  89. package/dist/app/chat/agentkit-chat/labels.js.map +1 -0
  90. package/dist/app/chat/agentkit-chat/questions.d.ts +1 -1
  91. package/dist/app/chat/agentkit-chat/questions.d.ts.map +1 -1
  92. package/dist/app/chat/agentkit-chat/questions.js +1 -1
  93. package/dist/app/chat/agentkit-chat/questions.js.map +1 -1
  94. package/dist/app/chat/agentkit-chat/root.d.ts.map +1 -1
  95. package/dist/app/chat/agentkit-chat/root.js +5 -64
  96. package/dist/app/chat/agentkit-chat/root.js.map +1 -1
  97. package/dist/app/chat/agentkit-chat/work-step-labels.d.ts +2 -0
  98. package/dist/app/chat/agentkit-chat/work-step-labels.d.ts.map +1 -1
  99. package/dist/app/chat/agentkit-chat/work-step-labels.js +31 -0
  100. package/dist/app/chat/agentkit-chat/work-step-labels.js.map +1 -1
  101. package/dist/app/chat/chat/markdown-renderer.d.ts +2 -12
  102. package/dist/app/chat/chat/markdown-renderer.d.ts.map +1 -1
  103. package/dist/app/chat/chat/markdown-renderer.js +2 -41
  104. package/dist/app/chat/chat/markdown-renderer.js.map +1 -1
  105. package/dist/app/chat/chat/tool-call-display.d.ts.map +1 -1
  106. package/dist/app/chat/chat/tool-call-display.js +2 -2
  107. package/dist/app/chat/chat/tool-call-display.js.map +1 -1
  108. package/dist/app/chat/conversation/AgentConversation.d.ts.map +1 -1
  109. package/dist/app/chat/conversation/AgentConversation.js +2 -37
  110. package/dist/app/chat/conversation/AgentConversation.js.map +1 -1
  111. package/dist/app/chat/tool-cells/BashCell.d.ts +3 -1
  112. package/dist/app/chat/tool-cells/BashCell.d.ts.map +1 -1
  113. package/dist/app/chat/tool-cells/BashCell.js +4 -40
  114. package/dist/app/chat/tool-cells/BashCell.js.map +1 -1
  115. package/dist/app/chat/tool-cells/EditCell.d.ts.map +1 -1
  116. package/dist/app/chat/tool-cells/EditCell.js +5 -108
  117. package/dist/app/chat/tool-cells/EditCell.js.map +1 -1
  118. package/dist/app/chat/tool-cells/FilesChangedSummary.d.ts.map +1 -1
  119. package/dist/app/chat/tool-cells/FilesChangedSummary.js +23 -81
  120. package/dist/app/chat/tool-cells/FilesChangedSummary.js.map +1 -1
  121. package/dist/app/chat/tool-cells/WriteCell.d.ts.map +1 -1
  122. package/dist/app/chat/tool-cells/WriteCell.js +5 -24
  123. package/dist/app/chat/tool-cells/WriteCell.js.map +1 -1
  124. package/dist/app/code-highlighter.d.ts +11 -0
  125. package/dist/app/code-highlighter.d.ts.map +1 -0
  126. package/dist/app/code-highlighter.js +122 -0
  127. package/dist/app/code-highlighter.js.map +1 -0
  128. package/dist/app/context-xray/ThreadContextRing.js +3 -3
  129. package/dist/app/context-xray/ThreadContextRing.js.map +1 -1
  130. package/dist/app/i18n/catalogs/ar-SA.d.ts.map +1 -1
  131. package/dist/app/i18n/catalogs/ar-SA.js +22 -0
  132. package/dist/app/i18n/catalogs/ar-SA.js.map +1 -1
  133. package/dist/app/i18n/catalogs/de-DE.d.ts.map +1 -1
  134. package/dist/app/i18n/catalogs/de-DE.js +22 -0
  135. package/dist/app/i18n/catalogs/de-DE.js.map +1 -1
  136. package/dist/app/i18n/catalogs/en-US.d.ts +22 -0
  137. package/dist/app/i18n/catalogs/en-US.d.ts.map +1 -1
  138. package/dist/app/i18n/catalogs/en-US.js +22 -0
  139. package/dist/app/i18n/catalogs/en-US.js.map +1 -1
  140. package/dist/app/i18n/catalogs/es-ES.d.ts.map +1 -1
  141. package/dist/app/i18n/catalogs/es-ES.js +22 -0
  142. package/dist/app/i18n/catalogs/es-ES.js.map +1 -1
  143. package/dist/app/i18n/catalogs/fr-FR.d.ts.map +1 -1
  144. package/dist/app/i18n/catalogs/fr-FR.js +22 -0
  145. package/dist/app/i18n/catalogs/fr-FR.js.map +1 -1
  146. package/dist/app/i18n/catalogs/hi-IN.d.ts.map +1 -1
  147. package/dist/app/i18n/catalogs/hi-IN.js +22 -0
  148. package/dist/app/i18n/catalogs/hi-IN.js.map +1 -1
  149. package/dist/app/i18n/catalogs/ja-JP.d.ts.map +1 -1
  150. package/dist/app/i18n/catalogs/ja-JP.js +22 -0
  151. package/dist/app/i18n/catalogs/ja-JP.js.map +1 -1
  152. package/dist/app/i18n/catalogs/ko-KR.d.ts.map +1 -1
  153. package/dist/app/i18n/catalogs/ko-KR.js +22 -0
  154. package/dist/app/i18n/catalogs/ko-KR.js.map +1 -1
  155. package/dist/app/i18n/catalogs/pt-BR.d.ts.map +1 -1
  156. package/dist/app/i18n/catalogs/pt-BR.js +22 -0
  157. package/dist/app/i18n/catalogs/pt-BR.js.map +1 -1
  158. package/dist/app/i18n/catalogs/zh-CN.d.ts.map +1 -1
  159. package/dist/app/i18n/catalogs/zh-CN.js +22 -0
  160. package/dist/app/i18n/catalogs/zh-CN.js.map +1 -1
  161. package/dist/app/i18n/catalogs/zh-TW.d.ts.map +1 -1
  162. package/dist/app/i18n/catalogs/zh-TW.js +22 -0
  163. package/dist/app/i18n/catalogs/zh-TW.js.map +1 -1
  164. package/dist/app/onboarding/first-run-first-paint.d.ts +10 -0
  165. package/dist/app/onboarding/first-run-first-paint.d.ts.map +1 -0
  166. package/dist/app/onboarding/first-run-first-paint.js +22 -0
  167. package/dist/app/onboarding/first-run-first-paint.js.map +1 -0
  168. package/dist/app/onboarding/first-run-startup-gate.d.ts +3 -1
  169. package/dist/app/onboarding/first-run-startup-gate.d.ts.map +1 -1
  170. package/dist/app/onboarding/first-run-startup-gate.js +30 -6
  171. package/dist/app/onboarding/first-run-startup-gate.js.map +1 -1
  172. package/dist/app/providers/AppProviders.d.ts.map +1 -1
  173. package/dist/app/providers/AppProviders.js +9 -2
  174. package/dist/app/providers/AppProviders.js.map +1 -1
  175. package/dist/app/providers/BuilderSignupActivation.d.ts +2 -1
  176. package/dist/app/providers/BuilderSignupActivation.d.ts.map +1 -1
  177. package/dist/app/providers/BuilderSignupActivation.js +6 -3
  178. package/dist/app/providers/BuilderSignupActivation.js.map +1 -1
  179. package/dist/app/shared/AppShellSkeleton.d.ts.map +1 -1
  180. package/dist/app/shared/AppShellSkeleton.js +11 -1
  181. package/dist/app/shared/AppShellSkeleton.js.map +1 -1
  182. package/dist/app/styles/agent-native.css +2 -2
  183. package/dist/app/styles/tokens/agent-kit.css +20 -3
  184. package/dist/composer/AgentSuggestionBar.d.ts.map +1 -1
  185. package/dist/composer/AgentSuggestionBar.js +2 -2
  186. package/dist/composer/AgentSuggestionBar.js.map +1 -1
  187. package/dist/composer/ComposerContextMenu.js +4 -4
  188. package/dist/composer/ComposerContextMenu.js.map +1 -1
  189. package/dist/composer/ComposerContextPicker.d.ts.map +1 -1
  190. package/dist/composer/ComposerContextPicker.js +2 -2
  191. package/dist/composer/ComposerContextPicker.js.map +1 -1
  192. package/dist/composer/ComposerContextPickerDialog.d.ts.map +1 -1
  193. package/dist/composer/ComposerContextPickerDialog.js +2 -2
  194. package/dist/composer/ComposerContextPickerDialog.js.map +1 -1
  195. package/dist/composer/ComposerModePicker.d.ts.map +1 -1
  196. package/dist/composer/ComposerModePicker.js +2 -1
  197. package/dist/composer/ComposerModePicker.js.map +1 -1
  198. package/dist/composer/ComposerPlusMenu.js +1 -1
  199. package/dist/composer/ComposerPlusMenu.js.map +1 -1
  200. package/dist/composer/MentionChip.js +1 -1
  201. package/dist/composer/MentionChip.js.map +1 -1
  202. package/dist/composer/MentionPopover.d.ts +3 -0
  203. package/dist/composer/MentionPopover.d.ts.map +1 -1
  204. package/dist/composer/MentionPopover.js +34 -15
  205. package/dist/composer/MentionPopover.js.map +1 -1
  206. package/dist/composer/MessageQueueDrawer.d.ts.map +1 -1
  207. package/dist/composer/MessageQueueDrawer.js +14 -9
  208. package/dist/composer/MessageQueueDrawer.js.map +1 -1
  209. package/dist/composer/PastedTextChip.d.ts.map +1 -1
  210. package/dist/composer/PastedTextChip.js +14 -18
  211. package/dist/composer/PastedTextChip.js.map +1 -1
  212. package/dist/composer/PromptBar.js +1 -1
  213. package/dist/composer/PromptBar.js.map +1 -1
  214. package/dist/composer/PromptComposer.d.ts.map +1 -1
  215. package/dist/composer/PromptComposer.js +11 -9
  216. package/dist/composer/PromptComposer.js.map +1 -1
  217. package/dist/composer/RealtimeVoiceMode.js +2 -2
  218. package/dist/composer/RealtimeVoiceMode.js.map +1 -1
  219. package/dist/composer/TiptapComposer.d.ts.map +1 -1
  220. package/dist/composer/TiptapComposer.js +52 -89
  221. package/dist/composer/TiptapComposer.js.map +1 -1
  222. package/dist/composer/VoiceButton.d.ts +3 -1
  223. package/dist/composer/VoiceButton.d.ts.map +1 -1
  224. package/dist/composer/VoiceButton.js +10 -8
  225. package/dist/composer/VoiceButton.js.map +1 -1
  226. package/dist/composer/composer-notice.js +3 -3
  227. package/dist/composer/composer-notice.js.map +1 -1
  228. package/dist/composer/extensions/FileReference.js +1 -1
  229. package/dist/composer/extensions/FileReference.js.map +1 -1
  230. package/dist/composer/extensions/SkillReference.js +1 -1
  231. package/dist/composer/extensions/SkillReference.js.map +1 -1
  232. package/dist/composer/popover-surface.d.ts +1 -1
  233. package/dist/composer/popover-surface.d.ts.map +1 -1
  234. package/dist/composer/popover-surface.js +1 -1
  235. package/dist/composer/popover-surface.js.map +1 -1
  236. package/dist/context-ui/ContextUsageRing.d.ts +1 -45
  237. package/dist/context-ui/ContextUsageRing.d.ts.map +1 -1
  238. package/dist/context-ui/ContextUsageRing.js +2 -87
  239. package/dist/context-ui/ContextUsageRing.js.map +1 -1
  240. package/dist/context-ui/index.d.ts +2 -2
  241. package/dist/context-ui/index.d.ts.map +1 -1
  242. package/dist/context-ui/index.js +2 -2
  243. package/dist/context-ui/index.js.map +1 -1
  244. package/package.json +4 -4
  245. package/src/app/agentkit/react/approval-card.tsx +14 -2
  246. package/src/app/agentkit/react/code-block.spec.tsx +154 -0
  247. package/src/app/agentkit/react/code-block.tsx +317 -0
  248. package/src/app/agentkit/react/components.interaction.spec.tsx +7 -0
  249. package/src/app/agentkit/react/components.papercuts.spec.tsx +143 -2
  250. package/src/app/agentkit/react/components.spec.tsx +40 -47
  251. package/src/app/agentkit/react/components.tsx +1533 -413
  252. package/src/app/agentkit/react/composer-context.spec.tsx +35 -0
  253. package/src/app/agentkit/react/context-usage.tsx +353 -0
  254. package/src/app/agentkit/react/context.tsx +93 -1
  255. package/src/app/agentkit/react/disclosure-content.ts +42 -0
  256. package/src/app/agentkit/react/disclosures.spec.tsx +62 -4
  257. package/src/app/agentkit/react/duration.ts +22 -0
  258. package/src/app/agentkit/react/file-change.spec.tsx +124 -0
  259. package/src/app/agentkit/react/file-change.tsx +228 -0
  260. package/src/app/agentkit/react/file-diff.ts +110 -0
  261. package/src/app/agentkit/react/index.ts +7 -0
  262. package/src/app/agentkit/react/lifecycle.spec.tsx +565 -20
  263. package/src/app/agentkit/react/markdown.spec.tsx +18 -8
  264. package/src/app/agentkit/react/message-actions.spec.tsx +55 -1
  265. package/src/app/agentkit/react/notices.spec.tsx +4 -4
  266. package/src/app/agentkit/react/optimistic-send.spec.tsx +43 -0
  267. package/src/app/agentkit/react/question-card.spec.tsx +276 -0
  268. package/src/app/agentkit/react/question-card.tsx +533 -0
  269. package/src/app/agentkit/react/root.tsx +4 -0
  270. package/src/app/agentkit/react/roving-focus.spec.tsx +114 -0
  271. package/src/app/agentkit/react/roving-focus.ts +82 -0
  272. package/src/app/agentkit/react/stack-trace.spec.tsx +177 -0
  273. package/src/app/agentkit/react/stack-trace.tsx +281 -0
  274. package/src/app/agentkit/react/stop-button.spec.tsx +40 -0
  275. package/src/app/agentkit/react/stop-button.tsx +22 -5
  276. package/src/app/agentkit/react/styles.css +1306 -395
  277. package/src/app/agentkit/react/subagent-step.spec.tsx +554 -0
  278. package/src/app/agentkit/react/terminal.spec.tsx +228 -0
  279. package/src/app/agentkit/react/terminal.tsx +228 -0
  280. package/src/app/agentkit/react/trace.spec.tsx +120 -0
  281. package/src/app/agentkit/react/trace.tsx +239 -0
  282. package/src/app/blocks/library/HighlightedCode.tsx +14 -126
  283. package/src/app/chat/AgentKitAssistantChat.spec.tsx +28 -12
  284. package/src/app/chat/AgentKitAssistantChat.tsx +27 -253
  285. package/src/app/chat/agentkit-chat/approval-card.spec.tsx +1 -0
  286. package/src/app/chat/agentkit-chat/guided-questions.flow.spec.tsx +381 -0
  287. package/src/app/chat/agentkit-chat/guided-questions.tsx +236 -3
  288. package/src/app/chat/agentkit-chat/history.tsx +1 -1
  289. package/src/app/chat/agentkit-chat/index.ts +2 -0
  290. package/src/app/chat/agentkit-chat/labels.ts +259 -0
  291. package/src/app/chat/agentkit-chat/questions.ts +2 -0
  292. package/src/app/chat/agentkit-chat/root.spec.tsx +18 -0
  293. package/src/app/chat/agentkit-chat/root.tsx +5 -64
  294. package/src/app/chat/agentkit-chat/work-step-labels.ts +42 -0
  295. package/src/app/chat/chat/markdown-renderer.tsx +2 -59
  296. package/src/app/chat/chat/tool-call-display.spec.tsx +26 -14
  297. package/src/app/chat/chat/tool-call-display.tsx +2 -1
  298. package/src/app/chat/conversation/AgentConversation.tsx +2 -50
  299. package/src/app/chat/tool-cells/BashCell.tsx +14 -136
  300. package/src/app/chat/tool-cells/EditCell.tsx +11 -248
  301. package/src/app/chat/tool-cells/FilesChangedSummary.spec.tsx +62 -5
  302. package/src/app/chat/tool-cells/FilesChangedSummary.tsx +31 -162
  303. package/src/app/chat/tool-cells/WriteCell.tsx +11 -121
  304. package/src/app/code-highlighter.ts +131 -0
  305. package/src/app/context-xray/ThreadContextRing.tsx +7 -7
  306. package/src/app/i18n/catalogs/ar-SA.ts +22 -0
  307. package/src/app/i18n/catalogs/de-DE.ts +22 -0
  308. package/src/app/i18n/catalogs/en-US.ts +22 -0
  309. package/src/app/i18n/catalogs/es-ES.ts +22 -0
  310. package/src/app/i18n/catalogs/fr-FR.ts +22 -0
  311. package/src/app/i18n/catalogs/hi-IN.ts +22 -0
  312. package/src/app/i18n/catalogs/ja-JP.ts +22 -0
  313. package/src/app/i18n/catalogs/ko-KR.ts +22 -0
  314. package/src/app/i18n/catalogs/pt-BR.ts +22 -0
  315. package/src/app/i18n/catalogs/zh-CN.ts +22 -0
  316. package/src/app/i18n/catalogs/zh-TW.ts +22 -0
  317. package/src/app/onboarding/first-run-first-paint.spec.ts +39 -0
  318. package/src/app/onboarding/first-run-first-paint.ts +24 -0
  319. package/src/app/onboarding/first-run-startup-gate.spec.tsx +125 -13
  320. package/src/app/onboarding/first-run-startup-gate.tsx +48 -5
  321. package/src/app/providers/AppProviders.tsx +18 -0
  322. package/src/app/providers/BuilderSignupActivation.tsx +8 -2
  323. package/src/app/shared/AppShellSkeleton.spec.tsx +60 -1
  324. package/src/app/shared/AppShellSkeleton.tsx +31 -1
  325. package/src/app/styles/agent-native.css +2 -2
  326. package/src/app/styles/agent-native.spec.ts +2 -2
  327. package/src/app/styles/tokens/agent-kit.css +20 -3
  328. package/src/composer/AgentSuggestionBar.spec.tsx +3 -1
  329. package/src/composer/AgentSuggestionBar.tsx +5 -2
  330. package/src/composer/ComposerContextMenu.tsx +4 -4
  331. package/src/composer/ComposerContextPicker.tsx +8 -2
  332. package/src/composer/ComposerContextPickerDialog.tsx +5 -2
  333. package/src/composer/ComposerModePicker.tsx +2 -1
  334. package/src/composer/ComposerPlusMenu.tsx +1 -1
  335. package/src/composer/MentionChip.tsx +1 -1
  336. package/src/composer/MentionPopover.spec.tsx +108 -2
  337. package/src/composer/MentionPopover.tsx +93 -17
  338. package/src/composer/MessageQueueDrawer.spec.tsx +5 -5
  339. package/src/composer/MessageQueueDrawer.tsx +19 -12
  340. package/src/composer/PastedTextChip.spec.tsx +36 -0
  341. package/src/composer/PastedTextChip.tsx +52 -58
  342. package/src/composer/PromptBar.tsx +1 -1
  343. package/src/composer/PromptComposer.context.spec.tsx +2 -2
  344. package/src/composer/PromptComposer.submission.spec.tsx +27 -0
  345. package/src/composer/PromptComposer.tsx +17 -9
  346. package/src/composer/RealtimeVoiceMode.tsx +2 -2
  347. package/src/composer/TiptapComposer.model-picker.spec.tsx +23 -82
  348. package/src/composer/TiptapComposer.tsx +68 -145
  349. package/src/composer/VoiceButton.tsx +12 -7
  350. package/src/composer/composer-notice.tsx +3 -3
  351. package/src/composer/extensions/FileReference.tsx +1 -1
  352. package/src/composer/extensions/SkillReference.tsx +1 -1
  353. package/src/composer/popover-surface.ts +1 -1
  354. package/src/context-ui/ContextUsageRing.spec.tsx +33 -8
  355. package/src/context-ui/ContextUsageRing.tsx +13 -348
  356. package/src/context-ui/index.ts +7 -1
  357. package/dist/composer/ModelPickerParts.d.ts +0 -20
  358. package/dist/composer/ModelPickerParts.d.ts.map +0 -1
  359. package/dist/composer/ModelPickerParts.js +0 -77
  360. package/dist/composer/ModelPickerParts.js.map +0 -1
  361. package/src/composer/ModelPickerParts.tsx +0 -188
@@ -37,7 +37,7 @@ import React, { createContext, forwardRef, useCallback, useEffect, useImperative
37
37
  import { toast } from "sonner";
38
38
  import { ComposerNotice, ComposerNoticeScope, } from "../../composer/composer-notice.js";
39
39
  import { approvalRequestKind } from "../agentkit/react/approval-card.js";
40
- import { AgentKitChat, AgentKitComposer, AgentKitEmptyState, AgentKitTranscriptSkeleton, AgentApprovalPrompt, AgentInteractionItem, AgentMessageView, useAgentKit, useAgentKitBeginPendingSubmission, useAgentKitControl, useAgentKitInWorkStep, useAgentKitPendingSubmissions, useAgentKitStopButton, useAgentKitSubmissionHoldsTurn, useAgentThread, useAgentThreadSelector, } from "../agentkit/react/index.js";
40
+ import { AgentKitChat, AgentKitComposer, AgentKitEmptyState, AgentKitTranscriptSkeleton, AgentApprovalPrompt, AgentMessageView, useAgentKit, useAgentKitBeginPendingSubmission, useAgentKitControl, useAgentKitInWorkStep, useAgentKitPendingSubmissions, useAgentKitStopButton, useAgentKitSubmissionHoldsTurn, useAgentThread, useAgentThreadSelector, } from "../agentkit/react/index.js";
41
41
  import { AGENTKIT_CLIENT_REQUEST_ID_METADATA_KEY, agentKitTurnInProgress, pendingSubmissionFiles, } from "../agentkit/react/pending-submissions.js";
42
42
  import { isStreamingVoiceMessage } from "../agentkit/react/voice-transcripts.js";
43
43
  import { ThreadContextRing } from "../context-xray/ThreadContextRing.js";
@@ -45,10 +45,10 @@ import { threadHasFinishedReply } from "../context-xray/use-thread-context-usage
45
45
  import { ThumbsFeedback } from "../observability/ThumbsFeedback.js";
46
46
  import { useFirstRunOnboardingGateOwnsSurface } from "../onboarding/first-run-startup-gate.js";
47
47
  import { AgentKitDevCheckpointProvider, AgentKitDevCheckpointRestore, useOptionalAgentKitHistory, } from "./agentkit-chat/history.js";
48
- import { CoreComposerRuntimeProvider, createAgentNativeAgentKitTransport, GuidedQuestionProviderGate, findMcpConnectionSuggestionIntegration, GuidedQuestionFlow, McpAgentKitConnectionRequestCard, McpAgentKitConnectionResume, McpConnectionSuggestion, AgentKitHistoryBeginningRevert, AgentKitHistoryMessageSupplement, AgentKitHistoryProvider, useGuidedQuestionFlow, } from "./agentkit-chat/index.js";
48
+ import { CoreComposerRuntimeProvider, createAgentNativeAgentKitTransport, GuidedQuestionProviderGate, findMcpConnectionSuggestionIntegration, GuidedQuestionCard, McpAgentKitConnectionRequestCard, McpAgentKitConnectionResume, McpConnectionSuggestion, AgentKitHistoryBeginningRevert, AgentKitHistoryMessageSupplement, AgentKitHistoryProvider, useGuidedQuestionFlow, useRefetchGuidedQuestionsWhenAsked, } from "./agentkit-chat/index.js";
49
+ import { agentKitChatLabels } from "./agentkit-chat/labels.js";
49
50
  import { AgentKitFilesChangedSummary, AgentKitMarkdownText, } from "./agentkit-chat/parity-renderers.js";
50
51
  import { CoreAgentKitRoot } from "./agentkit-chat/root.js";
51
- import { agentKitWorkStepLabels } from "./agentkit-chat/work-step-labels.js";
52
52
  import { AgentApprovalCard } from "./chat/agent-approval-card.js";
53
53
  import { renderMarkdownToClipboardHtml } from "./chat/markdown-renderer.js";
54
54
  import { RunErrorRecoveryCard, BuilderSetupCard, LoopLimitContinueCard, IMPLEMENT_PLAN_PROMPT, PlanModeCallout, getReplyRequestMode, isMissingLlmProviderRunError, } from "./chat/run-recovery.js";
@@ -927,9 +927,6 @@ const agentKitRegistry = {
927
927
  "connect-builder": AgentKitTool,
928
928
  "connect-file-storage": AgentKitTool,
929
929
  },
930
- agentInteractions: {
931
- failed: AgentKitFailedInteraction,
932
- },
933
930
  };
934
931
  export const AgentKitAssistantChat = forwardRef(function AgentKitAssistantChat(props, ref) {
935
932
  if (props.createAdapter !== undefined) {
@@ -937,6 +934,7 @@ export const AgentKitAssistantChat = forwardRef(function AgentKitAssistantChat(p
937
934
  }
938
935
  const t = useT();
939
936
  const translatorRef = useRef(t);
937
+ const formatAgentInteractionDetail = useAgentInteractionDetail();
940
938
  translatorRef.current = t;
941
939
  const { formatDate } = useFormatters();
942
940
  const threadId = props.threadId ?? props.tabId;
@@ -1021,233 +1019,8 @@ export const AgentKitAssistantChat = forwardRef(function AgentKitAssistantChat(p
1021
1019
  return () => window.clearTimeout(timer);
1022
1020
  }, [restoreRetryLoadPhase, restoreRetryThreadId, threadId]);
1023
1021
  const labels = useMemo(() => ({
1024
- conversation: t("agentChat.message.messages"),
1025
- assistant: t("agentChat.common.agent"),
1026
- you: t("agentChat.common.you"),
1027
- approvalApprove: t("agentChat.approval.approve"),
1028
- approvalDeny: t("agentChat.approval.deny"),
1029
- approvalSubmit: t("agentChat.approval.submit"),
1030
- approvalOther: t("agentChat.approval.other"),
1031
- approvalOtherPlaceholder: t("agentChat.approval.otherPlaceholder"),
1032
- approvalPending: t("agentChat.approval.pending"),
1033
- approvalAnswerPending: t("agentChat.approval.answerPending"),
1034
- connectionConnect: t("agentChat.common.connect"),
1035
- connectionConnecting: t("agentChat.connection.connecting"),
1036
- connectionRetry: t("agentChat.common.retry"),
1037
- connectionConnected: t("agentChat.integrations.connectedSection"),
1038
- connectionNotNow: t("agentChat.connection.notNow"),
1039
- connectionFailed: t("agentChat.connection.failed"),
1040
- connectionAdminRequired: t("agentChat.connection.adminRequired"),
1041
- activities: t("agentChat.activity.groupLabel"),
1042
- activityBuckets: {
1043
- thinking: t("agentChat.activity.bucketThinking"),
1044
- research: t("agentChat.activity.bucketResearch"),
1045
- actions: t("agentChat.activity.bucketActions"),
1046
- other: t("agentChat.activity.bucketOther"),
1047
- },
1048
- agents: t("agentChat.activity.agents"),
1049
- tasks: t("agentChat.activity.tasks"),
1050
- toolInput: t("agentChat.tool.input"),
1051
- toolResult: t("agentChat.tool.result"),
1052
- activityValueIdentifierHidden: t("agentChat.tool.identifierHidden"),
1053
- activityValueOmitted: t("agentChat.tool.contentOmitted"),
1054
- activityValueCircular: t("agentChat.tool.circularReference"),
1055
- working: t("agentChat.status.working"),
1056
- workingFor: t("agentChat.status.workingFor", {
1057
- duration: "{{duration}}",
1058
- }),
1059
- worked: t("agentChat.tool.worked"),
1060
- workedFor: t("agentChat.tool.workedFor", { duration: "{{duration}}" }),
1061
- showMoreActivities: t("agentChat.activity.showMore", {
1062
- count: "{{count}}",
1063
- }),
1064
- ...agentKitWorkStepLabels(t),
1065
- durationHourShort: t("agentChat.duration.hourShort"),
1066
- durationMinuteShort: t("agentChat.duration.minuteShort"),
1067
- durationSecondShort: t("agentChat.duration.secondShort"),
1068
- composerLabel: t("agentChat.composer.messageAgent"),
1022
+ ...agentKitChatLabels(t, formatDate),
1069
1023
  composerPlaceholder: props.composerPlaceholder || t("agentChat.composer.newChatPlaceholder"),
1070
- composerReplyPlaceholder: t("agentChat.composer.replyPlaceholder"),
1071
- emptyStateText: t("agentChat.empty.prompt"),
1072
- queue: t("agentChat.queue.label"),
1073
- queueSendNow: t("agentChat.queue.sendNow"),
1074
- queueSendNowHint: t("agentChat.queue.sendNowHint"),
1075
- queueSendNext: t("agentChat.queue.sendNext"),
1076
- queueSendNextHint: t("agentChat.queue.sendNextHint"),
1077
- queueItemBusy: t("agentChat.queue.itemBusy"),
1078
- queueItemBlocked: t("agentChat.queue.itemBlocked"),
1079
- queueOrderStale: t("agentChat.queue.orderStale"),
1080
- queueRemove: t("agentChat.queue.remove"),
1081
- queueMore: t("agentChat.queue.moreActions"),
1082
- suggestions: t("agentChat.composer.suggestedPrompts"),
1083
- copy: t("agentChat.message.copyMessage"),
1084
- copied: t("agentChat.common.copied"),
1085
- messageActions: t("agentChat.message.actions"),
1086
- copyRequestId: t("agentChat.message.copyRequestId"),
1087
- usage: t("agentChat.message.usage"),
1088
- usageLoading: t("agentChat.message.usageLoading"),
1089
- usageUnavailable: t("agentChat.message.usageUnavailable"),
1090
- usageNotRecorded: t("agentChat.message.usageNotRecorded"),
1091
- usageIncomplete: t("agentChat.message.usageIncomplete"),
1092
- usageReportedCost: t("agentChat.message.usageReportedCost", {
1093
- amount: "{{amount}}",
1094
- }),
1095
- usageEstimatedCost: t("agentChat.message.usageEstimatedCost", {
1096
- amount: "{{amount}}",
1097
- }),
1098
- usageMixedCost: t("agentChat.message.usageMixedCost", {
1099
- amount: "{{amount}}",
1100
- }),
1101
- usageBuilderCredits: t("agentChat.message.usageBuilderCredits", {
1102
- amount: "{{amount}}",
1103
- }),
1104
- usageEstimatedBuilderCredits: t("agentChat.message.usageEstimatedBuilderCredits", { amount: "{{amount}}" }),
1105
- usageMixedBuilderCredits: t("agentChat.message.usageMixedBuilderCredits", { amount: "{{amount}}" }),
1106
- requestIdUnavailable: t("agentChat.message.requestIdUnavailable"),
1107
- runDetails: t("agentChat.message.runDetails"),
1108
- runCreditsUsed: t("agentChat.message.creditsUsed"),
1109
- runCost: t("agentChat.message.cost"),
1110
- runToolCalls: t("agentChat.message.toolCalls"),
1111
- runModel: t("agentChat.message.modelUsed"),
1112
- runDetailUnavailable: t("agentChat.message.detailUnavailable"),
1113
- runDetailNotRecorded: t("agentChat.message.notRecorded"),
1114
- runDetailIncomplete: t("agentChat.message.incomplete"),
1115
- runDetailEstimated: t("agentChat.message.estimatedAmount", {
1116
- amount: "{{amount}}",
1117
- }),
1118
- runDetailMixed: t("agentChat.message.mixedAmount", {
1119
- amount: "{{amount}}",
1120
- }),
1121
- suggestedActions: t("agentChat.composer.suggestedActions"),
1122
- messageUnavailable: t("agentChat.message.unavailable"),
1123
- navigationUnavailable: t("agentChat.message.navigationUnavailable"),
1124
- copyUnavailable: t("agentChat.recovery.copyFailed"),
1125
- positiveFeedback: t("agentChat.feedback.thumbsUp"),
1126
- negativeFeedback: t("agentChat.feedback.notHelpful"),
1127
- feedbackSubmitted: t("agentChat.feedback.submitted"),
1128
- feedbackWhatWentWrong: t("agentChat.feedback.whatWentWrong"),
1129
- feedbackPlaceholder: t("agentChat.feedback.placeholder"),
1130
- feedbackKeyboardHint: t("agentChat.feedback.keyboardHint", {
1131
- shortcut: "{{shortcut}}",
1132
- }),
1133
- feedbackSubmit: t("agentChat.feedback.submit"),
1134
- feedbackReasonMisread: t("agentChat.feedback.reasonMisread"),
1135
- feedbackReasonNotDone: t("agentChat.feedback.reasonNotDone"),
1136
- feedbackReasonWrongNumbers: t("agentChat.feedback.reasonWrongNumbers"),
1137
- feedbackReasonTooSlow: t("agentChat.feedback.tooSlow"),
1138
- feedbackCopyDetails: t("agentChat.feedback.copyDetails"),
1139
- feedback: t("agentChat.feedback.label"),
1140
- feedbackGood: t("agentChat.feedback.goodResponse"),
1141
- feedbackBad: t("agentChat.feedback.badResponse"),
1142
- rateResponse: t("agentChat.feedback.rate"),
1143
- forkFromHere: t("agentChat.message.forkFromHere"),
1144
- feedbackNote: t("agentChat.feedback.note"),
1145
- moreMessageActions: t("agentChat.message.moreActions"),
1146
- fewerMessageActions: t("agentChat.message.fewerActions"),
1147
- fork: t("agentChat.message.forkChat"),
1148
- previousBranch: t("agentChat.message.previousBranch"),
1149
- nextBranch: t("agentChat.message.nextBranch"),
1150
- branchPosition: "{{index}}/{{count}}",
1151
- error: t("agentChat.error.failed"),
1152
- renderError: t("agentChat.error.render"),
1153
- runFailed: t("agentChat.error.failed"),
1154
- continueRun: t("agentChat.common.continue"),
1155
- continueRunUnavailable: t("agentChat.recovery.continueUnavailable"),
1156
- reconnect: t("agentChat.common.reconnect"),
1157
- dismissNotice: t("agentChat.common.dismiss"),
1158
- reasoning: t("agentChat.status.thinking"),
1159
- expandActivity: t("agentChat.common.expand"),
1160
- collapseActivity: t("agentChat.common.collapse"),
1161
- agentStarted: t("agentChat.agent.started"),
1162
- agentResumed: t("agentChat.agent.resumed"),
1163
- agentMessaged: t("agentChat.agent.messaged"),
1164
- agentDelegated: t("agentChat.agent.delegated"),
1165
- agentPaused: t("agentChat.agent.paused"),
1166
- agentCompleted: t("agentChat.agent.completed"),
1167
- agentFailed: t("agentChat.agent.failed"),
1168
- agentClosed: t("agentChat.agent.closed"),
1169
- editMessage: t("agentChat.message.edit"),
1170
- editingMessage: t("agentChat.message.editing"),
1171
- editingMessageHint: t("agentChat.message.editingHint"),
1172
- cancelEditing: t("agentChat.common.cancel"),
1173
- regenerateResponse: t("agentChat.common.retry"),
1174
- expandMessage: t("agentChat.common.expand"),
1175
- collapseMessage: t("agentChat.common.collapse"),
1176
- previewAttachment: t("agentChat.composer.previewAttachment", {
1177
- name: "{{name}}",
1178
- }),
1179
- pastedText: t("agentChat.pastedText.title"),
1180
- attachmentNotSaved: t("agentChat.composer.attachmentNotSaved"),
1181
- imagePreview: t("agentChat.composer.imagePreview"),
1182
- closePreview: t("agentChat.composer.closePreview"),
1183
- dropFilesToAttach: t("agentChat.composer.dropToAttach"),
1184
- dropFileFailed: t("agentChat.composer.droppedFileError"),
1185
- scrollToBottom: t("agentChat.composer.scrollToBottom"),
1186
- stop: t("agentChat.composer.stop"),
1187
- copyCode: t("agentChat.message.copyCode"),
1188
- codeCopied: t("agentChat.message.codeCopied"),
1189
- codeBlock: t("agentChat.message.codeBlock"),
1190
- codeBlockLanguage: t("agentChat.message.codeBlockLanguage", {
1191
- language: "{{language}}",
1192
- }),
1193
- table: t("agentChat.message.table"),
1194
- runStopped: t("agentChat.message.runStopped"),
1195
- responseReady: t("agentChat.message.responseReady"),
1196
- responseFailed: t("agentChat.message.responseFailed"),
1197
- waitingForApproval: t("agentChat.message.waitingForApproval"),
1198
- waitingForInput: t("agentChat.message.waitingForInput"),
1199
- workSummaryFailedCount: t("agentChat.message.workSummaryFailedCount", {
1200
- summary: "{{summary}}",
1201
- count: "{{count}}",
1202
- }),
1203
- taskStatusPending: t("agentChat.message.taskStatusPending"),
1204
- taskStatusRunning: t("agentChat.message.taskStatusRunning"),
1205
- taskStatusCompleted: t("agentChat.message.taskStatusCompleted"),
1206
- taskStatusFailed: t("agentChat.message.taskStatusFailed"),
1207
- taskStatusAwaitingInput: t("agentChat.message.taskStatusAwaitingInput"),
1208
- untitledTask: t("agentChat.message.untitledTask"),
1209
- connectionConnectProvider: t("agentChat.message.connectProvider", {
1210
- provider: "{{provider}}",
1211
- }),
1212
- connectionDeclined: t("agentChat.message.connectionDeclined", {
1213
- provider: "{{provider}}",
1214
- }),
1215
- connectionAdminRequiredTitle: t("agentChat.message.connectionAdminRequiredTitle", { provider: "{{provider}}" }),
1216
- branchPositionLabel: t("agentChat.message.branchPositionLabel", {
1217
- index: "{{index}}",
1218
- count: "{{count}}",
1219
- }),
1220
- taskListChecked: t("agentChat.message.taskListChecked"),
1221
- taskListUnchecked: t("agentChat.message.taskListUnchecked"),
1222
- threadUnavailable: t("agentChat.message.threadNotFound"),
1223
- newChat: t("agentChat.tabs.newChat"),
1224
- loadingConversation: t("agentChat.empty.loadingChat"),
1225
- formatTimestamp: (createdAt) => {
1226
- const date = new Date(createdAt);
1227
- if (Number.isNaN(date.getTime()))
1228
- return createdAt;
1229
- const now = new Date();
1230
- const yesterday = new Date(now);
1231
- yesterday.setDate(now.getDate() - 1);
1232
- const time = formatDate(date, {
1233
- hour: "numeric",
1234
- minute: "2-digit",
1235
- });
1236
- const sameDay = (left, right) => left.getFullYear() === right.getFullYear() &&
1237
- left.getMonth() === right.getMonth() &&
1238
- left.getDate() === right.getDate();
1239
- if (sameDay(date, now))
1240
- return time;
1241
- if (sameDay(date, yesterday)) {
1242
- return `${t("agentChat.history.yesterday")} ${time}`;
1243
- }
1244
- return formatDate(date, {
1245
- month: "short",
1246
- day: "numeric",
1247
- hour: "numeric",
1248
- minute: "2-digit",
1249
- });
1250
- },
1251
1024
  }), [formatDate, props.composerPlaceholder, t]);
1252
1025
  const { session: uploadSession } = useSession();
1253
1026
  const uploadScopeKey = JSON.stringify([
@@ -1469,7 +1242,7 @@ export const AgentKitAssistantChat = forwardRef(function AgentKitAssistantChat(p
1469
1242
  : agentKitSlots, [props.workedForSummarySlot]);
1470
1243
  const onForkedThread = props.onForkedThread;
1471
1244
  const onThreadForked = useCallback((thread) => onForkedThread?.(thread.id), [onForkedThread]);
1472
- return (_jsx(ThinkingDisplayProvider, { value: props.thinkingDisplay, children: _jsx(CoreComposerRuntimeProvider, { children: _jsx(CoreAgentKitRoot, { transport: transport, clientOptions: clientOptions, threadId: threadId, load: agentKitLoad, onLoadError: onThreadRestoreLoadError, slots: slots, registry: agentKitRegistry, labels: labels, resolveMessageContentOrder: props.resolveMessageContentOrder, branchNavigation: props.branchNavigation, buildFeedbackReport: formatFeedbackReport, workedForRowLayout: props.workedForRowLayout, dataChartLayout: props.dataChartLayout, formatWorkedForDuration: props.formatWorkedForDuration, onThreadForked: onThreadForked, onCopyMessage: copyAgentKitMessage, onClientEffect: dispatchAgentKitClientEffect, children: history ? (_jsx(AgentKitHistoryProvider, { history: history, children: _jsx(AgentKitDevCheckpointProvider, { apiUrl: props.apiUrl ?? agentNativePath("/_agent-native/agent-chat"), children: _jsx(AgentKitAssistantChatBody, { ...props, threadId: threadId, handoffSnapshot: handoffSnapshot, getThreadSnapshot: getThreadSnapshot, threadRestore: threadRestore, retryThreadRestore: retryThreadRestore, onThreadRestoreLoaded: onThreadRestoreLoaded, ref: ref }) }) })) : (_jsx(AgentKitDevCheckpointProvider, { apiUrl: props.apiUrl ?? agentNativePath("/_agent-native/agent-chat"), children: _jsx(AgentKitAssistantChatBody, { ...props, threadId: threadId, handoffSnapshot: handoffSnapshot, getThreadSnapshot: getThreadSnapshot, threadRestore: threadRestore, retryThreadRestore: retryThreadRestore, onThreadRestoreLoaded: onThreadRestoreLoaded, ref: ref }) })) }) }) }));
1245
+ return (_jsx(ThinkingDisplayProvider, { value: props.thinkingDisplay, children: _jsx(CoreComposerRuntimeProvider, { children: _jsx(CoreAgentKitRoot, { transport: transport, clientOptions: clientOptions, threadId: threadId, load: agentKitLoad, onLoadError: onThreadRestoreLoadError, slots: slots, registry: agentKitRegistry, labels: labels, resolveMessageContentOrder: props.resolveMessageContentOrder, branchNavigation: props.branchNavigation, buildFeedbackReport: formatFeedbackReport, workedForRowLayout: props.workedForRowLayout, dataChartLayout: props.dataChartLayout, formatWorkedForDuration: props.formatWorkedForDuration, formatAgentInteractionDetail: formatAgentInteractionDetail, onThreadForked: onThreadForked, onCopyMessage: copyAgentKitMessage, onClientEffect: dispatchAgentKitClientEffect, children: history ? (_jsx(AgentKitHistoryProvider, { history: history, children: _jsx(AgentKitDevCheckpointProvider, { apiUrl: props.apiUrl ?? agentNativePath("/_agent-native/agent-chat"), children: _jsx(AgentKitAssistantChatBody, { ...props, threadId: threadId, handoffSnapshot: handoffSnapshot, getThreadSnapshot: getThreadSnapshot, threadRestore: threadRestore, retryThreadRestore: retryThreadRestore, onThreadRestoreLoaded: onThreadRestoreLoaded, ref: ref }) }) })) : (_jsx(AgentKitDevCheckpointProvider, { apiUrl: props.apiUrl ?? agentNativePath("/_agent-native/agent-chat"), children: _jsx(AgentKitAssistantChatBody, { ...props, threadId: threadId, handoffSnapshot: handoffSnapshot, getThreadSnapshot: getThreadSnapshot, threadRestore: threadRestore, retryThreadRestore: retryThreadRestore, onThreadRestoreLoaded: onThreadRestoreLoaded, ref: ref }) })) }) }) }));
1473
1246
  });
1474
1247
  const AgentKitAssistantChatBody = forwardRef(function AgentKitAssistantChatBody(props, ref) {
1475
1248
  const { controller, threadId, requestComposerFocus } = useAgentKit();
@@ -3669,6 +3442,10 @@ function AgentKitTranscript({ children, threadId }) {
3669
3442
  return { delivered: true };
3670
3443
  },
3671
3444
  });
3445
+ useRefetchGuidedQuestionsWhenAsked({
3446
+ tools: thread.tools,
3447
+ refetch: guided.refetchPendingQuestion,
3448
+ });
3672
3449
  const activeRunId = thread.activeRunIds.at(-1);
3673
3450
  const [requestIdCopyFeedback, setRequestIdCopyFeedback] = useState(null);
3674
3451
  const activeRunRequestIdCopyStatus = requestIdCopyFeedback && requestIdCopyFeedback.runId === activeRunId
@@ -3736,9 +3513,9 @@ function AgentKitTranscript({ children, threadId }) {
3736
3513
  "agentkit-active-run-actions-feedback-error"), role: activeRunRequestIdCopyStatus === "failed" ? "alert" : "status", children: [activeRunRequestIdCopyStatus === "copied" ? (_jsx(IconCircleCheck, { size: 14, "aria-hidden": "true" })) : (_jsx(IconAlertTriangle, { size: 14, "aria-hidden": "true" })), activeRunRequestIdCopyStatus === "copied"
3737
3514
  ? t("agentChat.common.copied")
3738
3515
  : t("agentChat.recovery.copyFailed")] })) : null, _jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(IconButton, { label: t("agentChat.message.actions"), title: t("agentChat.message.actions"), icon: _jsx(IconDotsVertical, { "aria-hidden": "true" }), size: "compact", className: "agentkit-active-run-actions-trigger" }) }), _jsx(DropdownMenuContent, { align: "end", sideOffset: 6, children: _jsxs(DropdownMenuItem, { onSelect: () => void copyActiveRunRequestId(), children: [activeRunRequestIdCopyStatus === "copied" ? (_jsx(IconCircleCheck, { size: 14, "aria-hidden": "true" })) : activeRunRequestIdCopyStatus === "failed" ? (_jsx(IconAlertTriangle, { size: 14, "aria-hidden": "true" })) : (_jsx(IconCopy, { size: 14, "aria-hidden": "true" })), t("agentChat.message.copyRequestId")] }) })] })] })) : null, handoffMessages.map((message) => (_jsx(MessageView, { value: message, threadId: threadId }, message.id))), showThinking ? (_jsx("div", { className: "agentkit-activities agentkit-activities-summary-content", role: "status", "aria-live": "polite", children: _jsx("span", { className: "agentkit-activities-current", "data-running": "true", "data-agentkit-current-activity": "true", children: _jsx("span", { className: "agentkit-activities-current-label agent-running-shimmer", children: t("agentChat.status.thinking") }) }) })) : null, surface.props.showGuidedQuestions !== false &&
3739
- guided.questions?.length ? (_jsx("div", { className: "px-3 pb-3", children: _jsx(GuidedQuestionFlow, { questions: guided.questions, onSubmit: guided.handleSubmit, onSkip: guided.handleSkip, isSubmitting: guided.isSubmitting, isSubmissionBlocked: !surface.canChat, providerStatus: surface.providerStatus, modelListUnavailable: surface.modelListUnavailable, showProviderStatusGate: !composerShowsSetupCard(surface), onRetryProviderStatus: surface.modelListUnavailable
3516
+ guided.questions?.length ? (_jsx("div", { className: "px-3 pb-3", children: _jsx(GuidedQuestionCard, { questions: guided.questions, onSubmit: guided.handleSubmit, onSkip: guided.handleSkip, isSubmitting: guided.isSubmitting, isSubmissionBlocked: !surface.canChat, providerStatus: surface.providerStatus, modelListUnavailable: surface.modelListUnavailable, showProviderStatusGate: !composerShowsSetupCard(surface), onRetryProviderStatus: surface.modelListUnavailable
3740
3517
  ? surface.retryModelList
3741
- : surface.retryProviderStatus, ...(guided.title ? { title: guided.title } : {}), ...(guided.description ? { description: guided.description } : {}), ...(guided.skipLabel ? { skipLabel: guided.skipLabel } : {}), ...(guided.submitLabel ? { submitLabel: guided.submitLabel } : {}), className: "h-auto items-stretch justify-stretch bg-transparent" }) })) : null, renderThreadSlot(surface.props.threadFooterSlot, threadId, surface.props.tabId)] }));
3518
+ : surface.retryProviderStatus, ...(guided.title ? { title: guided.title } : {}), ...(guided.description ? { description: guided.description } : {}), ...(guided.skipLabel ? { skipLabel: guided.skipLabel } : {}), ...(guided.submitLabel ? { submitLabel: guided.submitLabel } : {}) }) })) : null, renderThreadSlot(surface.props.threadFooterSlot, threadId, surface.props.tabId)] }));
3742
3519
  }
3743
3520
  function renderThreadSlot(slot, threadId, tabId) {
3744
3521
  return typeof slot === "function"
@@ -4253,17 +4030,18 @@ function AgentKitReasoning({ value, active, resetKey, }) {
4253
4030
  return null;
4254
4031
  return (_jsx(ReasoningCell, { text: value.text, isStreaming: active, defaultOpen: active, resetKey: resetKey, inline: inWorkStep }));
4255
4032
  }
4256
- function AgentKitFailedInteraction(props) {
4033
+ /** An unknown persisted failure key reads as the generic reason, never the key. */
4034
+ function useAgentInteractionDetail() {
4257
4035
  const t = useT();
4258
- const reasonKey = props.value.metadata?.failureReasonKey;
4259
- if (typeof reasonKey !== "string")
4260
- return _jsx(AgentInteractionItem, { ...props });
4261
- // The key comes from persisted run state, so one this build does not know
4262
- // falls back to the generic reason rather than printing the key.
4263
- const detail = t(reasonKey, {
4264
- defaultValue: t("agentChat.agent.failureReason.failed"),
4265
- });
4266
- return _jsx(AgentInteractionItem, { ...props, value: { ...props.value, detail } });
4036
+ return useCallback((interaction) => {
4037
+ const reasonKey = interaction.metadata?.failureReasonKey;
4038
+ if (interaction.kind !== "failed" || typeof reasonKey !== "string") {
4039
+ return undefined;
4040
+ }
4041
+ return t(reasonKey, {
4042
+ defaultValue: t("agentChat.agent.failureReason.failed"),
4043
+ });
4044
+ }, [t]);
4267
4045
  }
4268
4046
  function AgentKitConnectionRequest({ value, runId, threadId, }) {
4269
4047
  const surface = useAgentKitSurface();