@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
@@ -31,10 +31,9 @@
31
31
  --agentkit-accent: var(--agent-kit-accent, CanvasText);
32
32
  --agentkit-accent-text: var(--agent-kit-accent-text, Canvas);
33
33
  --agentkit-danger: var(--agent-kit-danger, CanvasText);
34
- --agentkit-danger-text: color-mix(
35
- in srgb,
36
- var(--agentkit-danger) 60%,
37
- var(--agentkit-text)
34
+ --agentkit-danger-text: var(
35
+ --agent-kit-danger-text,
36
+ color-mix(in srgb, var(--agentkit-danger) 60%, var(--agentkit-text))
38
37
  );
39
38
  --agentkit-warning: var(--agent-kit-warning-color, CanvasText);
40
39
  --agentkit-text-muted-strong: color-mix(
@@ -43,9 +42,38 @@
43
42
  var(--agentkit-text)
44
43
  );
45
44
  --agentkit-success: var(--agent-kit-success, CanvasText);
45
+ /* Own tokens: a host's success color may be its near-black primary. */
46
+ --agentkit-diff-added: var(
47
+ --agent-kit-diff-added-color,
48
+ var(--agentkit-success)
49
+ );
50
+ --agentkit-diff-removed: var(
51
+ --agent-kit-diff-removed-color,
52
+ var(--agentkit-danger)
53
+ );
54
+ /* Pure diff green or red sits near 3:1 as text on a light surface. */
55
+ --agentkit-diff-added-text: color-mix(
56
+ in srgb,
57
+ var(--agentkit-diff-added) 70%,
58
+ var(--agentkit-text)
59
+ );
60
+ --agentkit-diff-removed-text: color-mix(
61
+ in srgb,
62
+ var(--agentkit-diff-removed) 70%,
63
+ var(--agentkit-text)
64
+ );
46
65
  --agentkit-focus: var(--agent-kit-focus, Highlight);
47
- --agentkit-radius: var(--radius-xl, calc(var(--radius, 0.75rem) + 0.5rem));
48
- --agentkit-radius-inner: var(--radius-lg, var(--radius, 0.75rem));
66
+ /* Not the accent: a short dark arc on a light track reads as a spinner. */
67
+ --agentkit-progress: var(--agent-kit-progress-color, Highlight);
68
+ /* Radius by element size, not the theme's --radius; nested corners are
69
+ outer = inner + inset. xs: 24px and under; sm: 32px controls, cards,
70
+ popovers; md: dialogs and sheets; lg: the composer. */
71
+ --agentkit-radius-xs: var(--agent-kit-radius-xs, 0.25rem);
72
+ --agentkit-radius-sm: var(--agent-kit-radius-sm, 0.5rem);
73
+ --agentkit-radius-md: var(--agent-kit-radius-md, 0.75rem);
74
+ --agentkit-radius-lg: var(--agent-kit-radius-lg, 1rem);
75
+ --agentkit-radius: var(--agentkit-radius-md);
76
+ --agentkit-radius-inner: var(--agentkit-radius-sm);
49
77
  --agentkit-elevation: var(--agent-kit-composer-elevation, none);
50
78
  --agentkit-composer-border: var(
51
79
  --agent-kit-composer-border-color,
@@ -65,8 +93,8 @@
65
93
  --agentkit-composer-inset: 0.75rem;
66
94
  /* Concentric with the 32px Send circle, which sits about 8px inside the
67
95
  edge: 16 + 8. */
68
- --agentkit-composer-radius: 1.5rem;
69
- --agentkit-composer-control-radius: var(--agentkit-radius-inner);
96
+ --agentkit-composer-radius: var(--agentkit-radius-lg);
97
+ --agentkit-composer-control-radius: var(--agentkit-radius-xs);
70
98
  --agentkit-composer-primary-control-size: var(
71
99
  --agent-kit-composer-control-size,
72
100
  2rem
@@ -255,86 +283,10 @@
255
283
  transform: translateY(0.5rem);
256
284
  }
257
285
 
286
+ /* Rows keep the drawer's own styles; the list only fills it to scroll. */
258
287
  .agentkit-composer-stack [data-agent-message-queue="true"] ul {
259
- display: flex;
260
288
  block-size: 100%;
261
289
  max-block-size: 10rem;
262
- flex-direction: column;
263
- gap: 0.25rem;
264
- margin: 0;
265
- padding: 0.25rem 0;
266
- overflow-y: auto;
267
- list-style: none;
268
- }
269
-
270
- .agentkit-composer-stack [data-agent-message-queue-variant="recessed"] ul {
271
- max-block-size: 10rem;
272
- gap: 0;
273
- padding: 0;
274
- overflow-y: auto;
275
- }
276
-
277
- .agentkit-composer-stack [data-agent-message-queue="true"] li {
278
- display: flex;
279
- min-block-size: 2.25rem;
280
- min-inline-size: 0;
281
- align-items: center;
282
- gap: 0.5rem;
283
- padding: 0.5rem 1rem;
284
- color: var(--agentkit-text);
285
- font-size: 0.8125rem;
286
- line-height: 1rem;
287
- }
288
-
289
- .agentkit-composer-stack [data-agent-message-queue-variant="recessed"] li {
290
- padding-block: 0.25rem;
291
- }
292
-
293
- .agentkit-composer-stack [data-agent-message-queue="true"] li > svg {
294
- inline-size: 0.875rem;
295
- block-size: 0.875rem;
296
- flex: none;
297
- color: var(--agentkit-text-muted);
298
- }
299
-
300
- /* Keyed on attributes, not :first-of-type: a :first-of-type above the subject
301
- makes WebKit restyle the whole page whenever an element is inserted at the
302
- top of <body>, which every Radix menu and popover does as it opens. */
303
- .agentkit-composer-stack
304
- [data-agent-message-queue="true"]
305
- li
306
- > [data-agent-message-queue-body="true"] {
307
- min-inline-size: 0;
308
- flex: 1;
309
- }
310
-
311
- .agentkit-composer-stack
312
- [data-agent-message-queue="true"]
313
- li
314
- > [data-agent-message-queue-body="true"]
315
- > [data-agent-message-queue-text="true"] {
316
- overflow: hidden;
317
- text-overflow: ellipsis;
318
- white-space: nowrap;
319
- }
320
-
321
- .agentkit-composer-stack
322
- [data-agent-message-queue="true"]
323
- li
324
- > div:last-child {
325
- display: flex;
326
- flex: none;
327
- align-items: center;
328
- gap: 0.25rem;
329
- color: var(--agentkit-text-muted-strong);
330
- }
331
-
332
- .agentkit-composer-stack [data-agent-message-queue="true"] img {
333
- inline-size: 2rem;
334
- block-size: 2rem;
335
- border: 1px solid var(--agentkit-border);
336
- border-radius: var(--radius-md, var(--radius));
337
- object-fit: cover;
338
290
  }
339
291
 
340
292
  .agentkit-suggestions {
@@ -464,7 +416,7 @@
464
416
  border-radius: var(--agentkit-radius);
465
417
  color: var(--agentkit-text);
466
418
  background: color-mix(in srgb, var(--agentkit-canvas) 88%, transparent);
467
- font-size: 0.875rem;
419
+ font-size: var(--agent-kit-body-font-size, 0.875rem);
468
420
  font-weight: 600;
469
421
  pointer-events: none;
470
422
  }
@@ -551,7 +503,7 @@
551
503
  min-inline-size: 0;
552
504
  max-inline-size: calc(min(100cqi, var(--agentkit-lane-width)) - 2rem);
553
505
  overflow: hidden;
554
- font-size: 0.8125rem;
506
+ font-size: var(--agent-kit-density-font-size, 0.8125rem);
555
507
  font-weight: 560;
556
508
  text-overflow: ellipsis;
557
509
  white-space: nowrap;
@@ -602,7 +554,8 @@
602
554
  background: transparent;
603
555
  }
604
556
 
605
- .agentkit-transcript[data-scrollbar-visible="true"] {
557
+ /* Also on hover, for a pointer user looking for the scrollbar to drag. */
558
+ .agentkit-transcript:is([data-scrollbar-visible="true"], :hover) {
606
559
  scrollbar-color: color-mix(
607
560
  in srgb,
608
561
  var(--agentkit-text-muted) 42%,
@@ -611,11 +564,17 @@
611
564
  transparent;
612
565
  }
613
566
 
614
- .agentkit-transcript[data-scrollbar-visible="true"]::-webkit-scrollbar-thumb {
567
+ .agentkit-transcript:is(
568
+ [data-scrollbar-visible="true"],
569
+ :hover
570
+ )::-webkit-scrollbar-thumb {
615
571
  background: color-mix(in srgb, var(--agentkit-text-muted) 42%, transparent);
616
572
  }
617
573
 
618
- .agentkit-transcript[data-scrollbar-visible="true"]::-webkit-scrollbar-thumb:hover {
574
+ .agentkit-transcript:is(
575
+ [data-scrollbar-visible="true"],
576
+ :hover
577
+ )::-webkit-scrollbar-thumb:hover {
619
578
  background: color-mix(in srgb, var(--agentkit-text-muted) 62%, transparent);
620
579
  }
621
580
 
@@ -685,6 +644,38 @@
685
644
  pointer-events: none;
686
645
  }
687
646
 
647
+ .agentkit-skip-link {
648
+ position: absolute;
649
+ z-index: 4;
650
+ grid-column: 1 / 2;
651
+ grid-row: 2 / 3;
652
+ inset-inline: 0;
653
+ inset-block-start: 0.5rem;
654
+ inline-size: fit-content;
655
+ block-size: 2rem;
656
+ margin-inline: auto;
657
+ padding-inline: 0.75rem;
658
+ border: 1px solid var(--agentkit-border);
659
+ border-radius: var(--agentkit-radius-sm);
660
+ background: var(--agentkit-surface);
661
+ box-shadow: var(--agent-kit-overlay-elevation);
662
+ color: var(--agentkit-text);
663
+ font: inherit;
664
+ font-size: var(--agent-kit-density-font-size, 0.8125rem);
665
+ line-height: var(--agent-kit-density-line-height, 1.25rem);
666
+ cursor: pointer;
667
+ }
668
+
669
+ .agentkit-skip-link:not(:focus) {
670
+ inline-size: 1px;
671
+ block-size: 1px;
672
+ padding: 0;
673
+ overflow: hidden;
674
+ border: 0;
675
+ clip-path: inset(50%);
676
+ white-space: nowrap;
677
+ }
678
+
688
679
  .agentkit-visually-hidden {
689
680
  position: absolute;
690
681
  inline-size: 1px;
@@ -702,7 +693,7 @@
702
693
  flex-direction: column;
703
694
  align-items: flex-start;
704
695
  margin-block: 0 var(--agentkit-transcript-message-gap, 1.5rem);
705
- font-size: 0.875rem;
696
+ font-size: var(--agent-kit-body-font-size, 0.875rem);
706
697
  font-family: var(
707
698
  --agentkit-transcript-font-family,
708
699
  var(--font-sans, inherit)
@@ -837,11 +828,13 @@
837
828
  min-block-size: 1.25rem;
838
829
  padding: 0 0.5rem;
839
830
  border: 1px solid var(--agentkit-border);
840
- border-radius: var(--agentkit-radius-inner);
831
+ border-radius: var(--agentkit-radius-xs);
841
832
  color: var(--agentkit-text);
842
833
  background: color-mix(in srgb, var(--agentkit-subtle) 75%, transparent);
843
- font-size: 0.75rem;
834
+ font-size: var(--agent-kit-supporting-font-size, 0.75rem);
844
835
  font-weight: 550;
836
+ /* Keeps the chip at 20px including its border. */
837
+ line-height: var(--agent-kit-supporting-line-height, 1rem);
845
838
  vertical-align: middle;
846
839
  user-select: text;
847
840
  }
@@ -866,11 +859,11 @@
866
859
  padding-block: 0;
867
860
  padding-inline: 0.5rem;
868
861
  border: 0;
869
- border-radius: var(--agentkit-radius-inner);
862
+ border-radius: var(--agentkit-radius-xs);
870
863
  color: var(--agentkit-text-muted-strong);
871
864
  background: transparent;
872
865
  font: inherit;
873
- font-size: 0.75rem;
866
+ font-size: var(--agent-kit-supporting-font-size, 0.75rem);
874
867
  cursor: pointer;
875
868
  }
876
869
 
@@ -1123,7 +1116,7 @@
1123
1116
  .agentkit-markdown :not(pre) > code {
1124
1117
  padding: 0.125rem 0.25rem;
1125
1118
  line-height: 1;
1126
- border-radius: var(--radius-sm, calc(var(--radius, 0.75rem) / 2));
1119
+ border-radius: var(--agentkit-radius-xs);
1127
1120
  background: var(--agentkit-subtle);
1128
1121
  font-size: 0.875em;
1129
1122
  }
@@ -1140,14 +1133,19 @@
1140
1133
  }
1141
1134
 
1142
1135
  .agentkit-markdown pre code {
1143
- font-size: 0.8125rem;
1136
+ font-size: var(--agent-kit-density-font-size, 0.8125rem);
1144
1137
  }
1145
1138
 
1146
1139
  .agentkit-code-block {
1140
+ /* Actions sit 4px inside the block, so their corners are 4px tighter. */
1141
+ --agentkit-code-action-radius: var(--agentkit-radius-xs);
1142
+
1143
+ position: relative;
1147
1144
  margin: 0 0 0.75rem;
1148
1145
  overflow: hidden;
1149
1146
  border: 1px solid var(--agentkit-border);
1150
1147
  border-radius: var(--agentkit-radius-inner);
1148
+ background: var(--agentkit-subtle);
1151
1149
  }
1152
1150
 
1153
1151
  .agentkit-code-block-header {
@@ -1160,20 +1158,160 @@
1160
1158
  background: var(--agentkit-subtle);
1161
1159
  }
1162
1160
 
1163
- .agentkit-code-block-language {
1161
+ .agentkit-code-block-title {
1164
1162
  min-inline-size: 0;
1165
1163
  overflow: hidden;
1166
1164
  color: var(--agentkit-text-muted-strong);
1167
- font-size: 0.75rem;
1165
+ font-size: var(--agent-kit-supporting-font-size, 0.75rem);
1168
1166
  text-overflow: ellipsis;
1169
1167
  white-space: nowrap;
1170
1168
  }
1171
1169
 
1172
- .agentkit-markdown .agentkit-code-block > pre {
1170
+ .agentkit-code-block-actions {
1171
+ display: flex;
1172
+ flex: none;
1173
+ align-items: center;
1174
+ gap: 0.125rem;
1175
+ margin-inline-start: auto;
1176
+ }
1177
+
1178
+ /* Without a header the actions float over the content's top corner. */
1179
+ .agentkit-code-block > .agentkit-code-block-actions {
1180
+ position: absolute;
1181
+ inset-block-start: 0.25rem;
1182
+ inset-inline-end: 0.25rem;
1183
+ opacity: 0;
1184
+ transition: opacity 120ms ease;
1185
+ }
1186
+
1187
+ .agentkit-code-block:hover > .agentkit-code-block-actions,
1188
+ .agentkit-code-block:focus-within > .agentkit-code-block-actions {
1189
+ opacity: 1;
1190
+ }
1191
+
1192
+ .agentkit-code-block-content {
1193
+ box-sizing: border-box;
1194
+ max-inline-size: 100%;
1195
+ margin: 0;
1196
+ padding: 0.75rem;
1197
+ overflow: auto;
1198
+ color: var(--agentkit-text);
1199
+ font-family: var(--font-mono, ui-monospace, monospace);
1200
+ font-size: var(--agent-kit-density-font-size, 0.8125rem);
1201
+ line-height: var(--agent-kit-density-line-height, 1.25rem);
1202
+ text-align: left;
1203
+ white-space: pre;
1204
+ counter-reset: agentkit-code-line var(--agentkit-code-start-line, 0);
1205
+ }
1206
+
1207
+ .agentkit-code-block-content > code {
1208
+ font: inherit;
1209
+ }
1210
+
1211
+ /* Beats `.agentkit-markdown pre`, which frames a bare fenced block. */
1212
+ .agentkit-code-block > .agentkit-code-block-content {
1173
1213
  margin: 0;
1174
- overflow-x: auto;
1175
1214
  border: 0;
1176
1215
  border-radius: 0;
1216
+ background: transparent;
1217
+ }
1218
+
1219
+ .agentkit-code-block-content:focus-visible {
1220
+ outline: 2px solid var(--agentkit-focus);
1221
+ outline-offset: -2px;
1222
+ }
1223
+
1224
+ .agentkit-code-block-content[data-wrap="true"] {
1225
+ white-space: pre-wrap;
1226
+ overflow-wrap: anywhere;
1227
+ }
1228
+
1229
+ .agentkit-code-block[data-size="sm"] .agentkit-code-block-content {
1230
+ padding: 0.5rem 0.75rem;
1231
+ font-size: var(--agent-kit-supporting-font-size, 0.75rem);
1232
+ line-height: var(--agent-kit-supporting-line-height, 1rem);
1233
+ }
1234
+
1235
+ .agentkit-code-block[data-variant="destructive"] {
1236
+ border-color: color-mix(
1237
+ in srgb,
1238
+ var(--agentkit-warning) 40%,
1239
+ var(--agentkit-border)
1240
+ );
1241
+ }
1242
+
1243
+ .agentkit-code-token {
1244
+ color: var(--shiki-light);
1245
+ font-style: var(--shiki-light-font-style, inherit);
1246
+ }
1247
+
1248
+ :where(.dark, [data-theme="dark"]) .agentkit-code-token {
1249
+ color: var(--shiki-dark);
1250
+ font-style: var(--shiki-dark-font-style, inherit);
1251
+ }
1252
+
1253
+ .agentkit-code-line-change {
1254
+ user-select: none;
1255
+ }
1256
+
1257
+ .agentkit-code-line[data-variant] {
1258
+ display: inline-block;
1259
+ box-sizing: border-box;
1260
+ min-inline-size: 100%;
1261
+ }
1262
+
1263
+ .agentkit-code-line[data-variant="added"] {
1264
+ background: color-mix(in srgb, var(--agentkit-diff-added) 12%, transparent);
1265
+ }
1266
+
1267
+ .agentkit-code-line[data-variant="removed"] {
1268
+ background: color-mix(
1269
+ in srgb,
1270
+ var(--agentkit-diff-removed) 12%,
1271
+ transparent
1272
+ );
1273
+ }
1274
+
1275
+ .agentkit-code-line[data-variant="highlighted"] {
1276
+ background: color-mix(in srgb, var(--agentkit-text) 8%, transparent);
1277
+ }
1278
+
1279
+ .agentkit-code-line[data-variant="added"]::before {
1280
+ content: "+ " / "";
1281
+ }
1282
+
1283
+ .agentkit-code-line[data-variant="removed"]::before {
1284
+ content: "\2212 " / "";
1285
+ }
1286
+
1287
+ [data-line-numbers="true"] > code > .agentkit-code-line::before {
1288
+ display: inline-block;
1289
+ min-inline-size: 2ch;
1290
+ margin-inline-end: 1rem;
1291
+ color: var(--agentkit-text-muted);
1292
+ text-align: end;
1293
+ content: counter(agentkit-code-line) / "";
1294
+ counter-increment: agentkit-code-line;
1295
+ user-select: none;
1296
+ }
1297
+
1298
+ [data-line-numbers="true"]
1299
+ > code
1300
+ > .agentkit-code-line[data-variant="added"]::before {
1301
+ content: counter(agentkit-code-line) " +" / "";
1302
+ }
1303
+
1304
+ [data-line-numbers="true"]
1305
+ > code
1306
+ > .agentkit-code-line[data-variant="removed"]::before {
1307
+ content: counter(agentkit-code-line) " \2212" / "";
1308
+ }
1309
+
1310
+ /* Aligns with the code's 12px edge. */
1311
+ .agentkit-code-block-footer {
1312
+ display: flex;
1313
+ align-items: center;
1314
+ padding: 0.25rem 0.75rem;
1177
1315
  }
1178
1316
 
1179
1317
  .agentkit-markdown a {
@@ -1345,7 +1483,7 @@
1345
1483
  margin: 0.25rem 0 0.5rem 0.5rem;
1346
1484
  padding-inline-start: 1rem;
1347
1485
  border-inline-start: 1px solid var(--agentkit-border);
1348
- font-size: 0.875rem;
1486
+ font-size: var(--agent-kit-body-font-size, 0.875rem);
1349
1487
  }
1350
1488
 
1351
1489
  .agentkit-run-details-row {
@@ -1491,11 +1629,11 @@
1491
1629
  gap: 0.25rem;
1492
1630
  padding-inline: 0.5rem;
1493
1631
  border: 0;
1494
- border-radius: var(--radius-md, var(--radius));
1632
+ border-radius: var(--agentkit-radius-xs);
1495
1633
  color: inherit;
1496
1634
  background: transparent;
1497
1635
  font: inherit;
1498
- font-size: 0.75rem;
1636
+ font-size: var(--agent-kit-supporting-font-size, 0.75rem);
1499
1637
  white-space: nowrap;
1500
1638
  cursor: pointer;
1501
1639
  }
@@ -1542,7 +1680,7 @@
1542
1680
 
1543
1681
  .agentkit-message-actions time {
1544
1682
  margin-inline-start: 0.25rem;
1545
- font-size: 0.6875rem;
1683
+ font-size: var(--agent-kit-caption-font-size, 0.6875rem);
1546
1684
  }
1547
1685
 
1548
1686
  .agentkit-branch-navigation {
@@ -1550,7 +1688,7 @@
1550
1688
  align-items: center;
1551
1689
  gap: 0.25rem;
1552
1690
  margin-inline-start: 0.25rem;
1553
- font-size: 0.6875rem;
1691
+ font-size: var(--agent-kit-caption-font-size, 0.6875rem);
1554
1692
  }
1555
1693
 
1556
1694
  .agentkit-icon {
@@ -1567,7 +1705,7 @@
1567
1705
  .agentkit-tasks {
1568
1706
  margin-block: var(--agentkit-run-segment-gap, 0.75rem);
1569
1707
  color: var(--agentkit-text-muted);
1570
- font-size: 0.8125rem;
1708
+ font-size: var(--agent-kit-density-font-size, 0.8125rem);
1571
1709
  }
1572
1710
 
1573
1711
  .agentkit-agent-feed {
@@ -1607,7 +1745,7 @@
1607
1745
  margin: 0;
1608
1746
  padding: 0.25rem 0;
1609
1747
  border: 0;
1610
- border-radius: var(--agentkit-radius-inner, 0.375rem);
1748
+ border-radius: var(--agentkit-radius-xs);
1611
1749
  color: inherit;
1612
1750
  background: transparent;
1613
1751
  font: inherit;
@@ -1626,11 +1764,20 @@
1626
1764
  /* Inside a row the trigger keeps its content width, so a detail that
1627
1765
  does not fit drops to its own line instead of squeezing the label. */
1628
1766
  .agentkit-disclosure-row > .agentkit-disclosure-summary {
1767
+ position: relative;
1629
1768
  inline-size: auto;
1630
1769
  flex: none;
1631
1770
  padding-block: 0;
1632
1771
  }
1633
1772
 
1773
+ /* The row is 20px; the press target reaches 24px without changing it. */
1774
+ .agentkit-disclosure-row > .agentkit-disclosure-summary::after {
1775
+ position: absolute;
1776
+ inset-block: -0.125rem;
1777
+ inset-inline: 0;
1778
+ content: "";
1779
+ }
1780
+
1634
1781
  .agentkit-disclosure-icon-slot {
1635
1782
  display: inline-grid;
1636
1783
  inline-size: 1rem;
@@ -1665,6 +1812,63 @@
1665
1812
  display: none;
1666
1813
  }
1667
1814
 
1815
+ /* Zero specificity, so a row rule or host class on the same element wins. */
1816
+ :where(.agentkit-trace) {
1817
+ display: grid;
1818
+ grid-template-columns: minmax(0, 1fr);
1819
+ gap: 0.25rem;
1820
+ }
1821
+
1822
+ :where(.agentkit-trace-line) {
1823
+ display: flex;
1824
+ min-inline-size: 0;
1825
+ max-inline-size: 100%;
1826
+ align-items: center;
1827
+ gap: var(--agentkit-disclosure-gap, 0.5rem);
1828
+ color: var(--agentkit-text-muted);
1829
+ }
1830
+
1831
+ /* Joins the summary's flex row, so steps share the disclosure icon column. */
1832
+ :where(.agentkit-disclosure-summary > .agentkit-trace-line) {
1833
+ display: contents;
1834
+ color: inherit;
1835
+ }
1836
+
1837
+ /* Muted, not faded, to keep contrast. On the children: a `display:
1838
+ contents` box passes no color to a child that sets its own. */
1839
+ :where(.agentkit-trace-line[data-trace-status="pending"]) > * {
1840
+ color: var(--agentkit-text-muted);
1841
+ }
1842
+
1843
+ :where(.agentkit-trace-line[data-trace-status="error"])
1844
+ > :where(.agentkit-disclosure-icon-slot) {
1845
+ color: var(--agentkit-warning);
1846
+ }
1847
+
1848
+ :where(.agentkit-trace-title) {
1849
+ min-inline-size: 0;
1850
+ overflow: hidden;
1851
+ color: var(--agentkit-text);
1852
+ text-overflow: ellipsis;
1853
+ white-space: nowrap;
1854
+ }
1855
+
1856
+ :where(.agentkit-trace-description) {
1857
+ flex: none;
1858
+ color: var(--agentkit-text-muted);
1859
+ font-variant-numeric: tabular-nums;
1860
+ }
1861
+
1862
+ :where(.agentkit-trace-content) {
1863
+ margin-inline-start: 1.5rem;
1864
+ padding: 0.25rem 0 0.5rem;
1865
+ color: var(--agentkit-text);
1866
+ }
1867
+
1868
+ .agentkit-trace-content[hidden]:not([hidden="until-found"]) {
1869
+ display: none;
1870
+ }
1871
+
1668
1872
  .agentkit-disclosure-summary:not([aria-disabled="true"], span):hover,
1669
1873
  .agentkit-disclosure-row[data-expandable="true"]:hover,
1670
1874
  .agentkit-agent-interaction:hover,
@@ -1678,16 +1882,17 @@
1678
1882
  max-inline-size: 12rem;
1679
1883
  flex: none;
1680
1884
  align-items: center;
1681
- min-block-size: 1.5rem;
1885
+ gap: 0.25rem;
1886
+ min-block-size: 1.25rem;
1682
1887
  padding: 0 0.5rem;
1683
1888
  border: 1px solid var(--agentkit-border);
1684
- border-radius: 999px;
1889
+ border-radius: var(--agentkit-radius-xs);
1685
1890
  color: var(--agentkit-text);
1686
1891
  overflow: hidden;
1687
1892
  background: var(--agentkit-subtle);
1688
- font-size: 0.75rem;
1893
+ font-size: var(--agent-kit-supporting-font-size, 0.75rem);
1689
1894
  font-weight: 500;
1690
- line-height: 1.25rem;
1895
+ line-height: var(--agent-kit-supporting-line-height, 1rem);
1691
1896
  }
1692
1897
 
1693
1898
  .agentkit-agent-name,
@@ -1699,25 +1904,24 @@
1699
1904
  }
1700
1905
 
1701
1906
  .agentkit-agent[data-status="working"] .agentkit-agent-name {
1702
- color: transparent;
1703
- background: linear-gradient(
1704
- 90deg,
1705
- var(--agentkit-text),
1706
- color-mix(in srgb, var(--agentkit-text) 34%, transparent),
1707
- var(--agentkit-text)
1708
- );
1709
- background-size: 200% 100%;
1710
- background-clip: text;
1711
- animation: agentkit-shimmer 1.8s linear infinite;
1907
+ --agentkit-shimmer-base: var(--agentkit-text);
1908
+ --agentkit-shimmer-highlight: var(--agentkit-text-muted);
1712
1909
  }
1713
1910
 
1911
+ /* Failures are warnings: amber, not destructive red. */
1714
1912
  .agentkit-agent[data-status="failed"] {
1715
1913
  border-color: color-mix(
1716
1914
  in srgb,
1717
- var(--agentkit-danger) 32%,
1915
+ var(--agentkit-warning) 32%,
1718
1916
  var(--agentkit-border)
1719
1917
  );
1720
- color: var(--agentkit-danger);
1918
+ color: var(--agentkit-warning);
1919
+ }
1920
+
1921
+ .agentkit-agent > .agentkit-icon {
1922
+ flex: none;
1923
+ inline-size: 0.875rem;
1924
+ block-size: 0.875rem;
1721
1925
  }
1722
1926
 
1723
1927
  .agentkit-agent-interaction-detail {
@@ -1778,7 +1982,7 @@
1778
1982
  .agentkit-activity-cluster-count,
1779
1983
  .agentkit-tasks-count,
1780
1984
  .agentkit-task-progress {
1781
- color: color-mix(in srgb, var(--agentkit-text-muted) 75%, transparent);
1985
+ color: var(--agentkit-text-muted);
1782
1986
  font-variant-numeric: tabular-nums;
1783
1987
  }
1784
1988
 
@@ -1819,7 +2023,7 @@
1819
2023
  min-inline-size: 0;
1820
2024
  overflow: hidden;
1821
2025
  color: var(--agentkit-text);
1822
- font-size: 0.875rem;
2026
+ font-size: var(--agent-kit-body-font-size, 0.875rem);
1823
2027
  font-weight: 500;
1824
2028
  text-overflow: ellipsis;
1825
2029
  white-space: nowrap;
@@ -1843,11 +2047,11 @@
1843
2047
  gap: 0.25rem;
1844
2048
  padding-inline: 0.25rem;
1845
2049
  color: var(--agentkit-text-muted);
1846
- font-size: 0.75rem;
2050
+ font-size: var(--agent-kit-supporting-font-size, 0.75rem);
1847
2051
  }
1848
2052
 
1849
2053
  .agentkit-active-run-actions-feedback-error {
1850
- color: var(--agentkit-danger);
2054
+ color: var(--agentkit-warning);
1851
2055
  }
1852
2056
 
1853
2057
  .agentkit-active-run-actions-trigger {
@@ -1948,16 +2152,8 @@
1948
2152
  }
1949
2153
 
1950
2154
  .agentkit-work-step-label[data-active="true"] {
1951
- color: transparent;
1952
- background: linear-gradient(
1953
- 90deg,
1954
- var(--agentkit-text),
1955
- color-mix(in srgb, var(--agentkit-text) 28%, transparent),
1956
- var(--agentkit-text)
1957
- );
1958
- background-size: 200% 100%;
1959
- background-clip: text;
1960
- animation: agentkit-shimmer 1.8s linear infinite;
2155
+ --agentkit-shimmer-base: var(--agentkit-text);
2156
+ --agentkit-shimmer-highlight: var(--agentkit-text-muted);
1961
2157
  }
1962
2158
 
1963
2159
  .agentkit-work-step-body {
@@ -2013,14 +2209,14 @@
2013
2209
  .agentkit-work-object[data-kind="url"] {
2014
2210
  padding: 0 0.5rem;
2015
2211
  border: 1px solid var(--agentkit-border);
2016
- border-radius: 999px;
2017
- font-size: 0.75rem;
2212
+ border-radius: var(--agentkit-radius-xs);
2213
+ font-size: var(--agent-kit-supporting-font-size, 0.75rem);
2018
2214
  line-height: 1.125rem;
2019
2215
  }
2020
2216
 
2021
2217
  .agentkit-work-object:is([data-kind="file"], [data-kind="command"]) {
2022
2218
  font-family: var(--font-mono, ui-monospace, monospace);
2023
- font-size: 0.75rem;
2219
+ font-size: var(--agent-kit-supporting-font-size, 0.75rem);
2024
2220
  }
2025
2221
 
2026
2222
  .agentkit-work-objects-more {
@@ -2044,19 +2240,6 @@
2044
2240
  text-overflow: ellipsis;
2045
2241
  }
2046
2242
 
2047
- .agentkit-work-group[data-running="true"] .agentkit-work-group-label {
2048
- color: transparent;
2049
- background: linear-gradient(
2050
- 90deg,
2051
- var(--agentkit-text-muted),
2052
- color-mix(in srgb, var(--agentkit-text-muted) 28%, transparent),
2053
- var(--agentkit-text-muted)
2054
- );
2055
- background-size: 200% 100%;
2056
- background-clip: text;
2057
- animation: agentkit-shimmer 1.8s linear infinite;
2058
- }
2059
-
2060
2243
  .agentkit-work-more {
2061
2244
  color: var(--agentkit-text-muted);
2062
2245
  }
@@ -2084,19 +2267,6 @@
2084
2267
  white-space: nowrap;
2085
2268
  }
2086
2269
 
2087
- .agentkit-task-row[data-status="running"] .agentkit-task-title {
2088
- color: transparent;
2089
- background: linear-gradient(
2090
- 90deg,
2091
- var(--agentkit-text-muted),
2092
- color-mix(in srgb, var(--agentkit-text-muted) 28%, transparent),
2093
- var(--agentkit-text-muted)
2094
- );
2095
- background-size: 200% 100%;
2096
- background-clip: text;
2097
- animation: agentkit-shimmer 1.8s linear infinite;
2098
- }
2099
-
2100
2270
  .agentkit-activity-label {
2101
2271
  min-inline-size: 0;
2102
2272
  overflow: hidden;
@@ -2105,13 +2275,6 @@
2105
2275
  white-space: nowrap;
2106
2276
  }
2107
2277
 
2108
- .agentkit-activity-item[data-status="failed"]
2109
- > .agentkit-activity-row
2110
- .agentkit-disclosure-icon-slot
2111
- > .agentkit-icon {
2112
- color: var(--agentkit-warning);
2113
- }
2114
-
2115
2278
  .agentkit-activity-error {
2116
2279
  display: block;
2117
2280
  min-inline-size: 0;
@@ -2126,27 +2289,10 @@
2126
2289
  color: var(--agentkit-text-muted);
2127
2290
  }
2128
2291
 
2129
- .agentkit-task-row[data-status="failed"] .agentkit-task-status-icon {
2130
- color: var(--agentkit-warning);
2131
- }
2132
-
2133
2292
  .agentkit-task-status-icon {
2134
2293
  flex: none;
2135
2294
  }
2136
2295
 
2137
- .agentkit-activity-item[data-status="running"] .agentkit-activity-label {
2138
- color: transparent;
2139
- background: linear-gradient(
2140
- 90deg,
2141
- var(--agentkit-text-muted),
2142
- color-mix(in srgb, var(--agentkit-text-muted) 28%, transparent),
2143
- var(--agentkit-text-muted)
2144
- );
2145
- background-size: 200% 100%;
2146
- background-clip: text;
2147
- animation: agentkit-shimmer 1.8s linear infinite;
2148
- }
2149
-
2150
2296
  .agentkit-activity-detail,
2151
2297
  .agentkit-object {
2152
2298
  display: flex;
@@ -2194,241 +2340,1011 @@
2194
2340
  }
2195
2341
 
2196
2342
  .agentkit-diff-added {
2197
- color: var(--agentkit-success);
2343
+ color: var(--agentkit-diff-added-text);
2344
+ }
2345
+
2346
+ .agentkit-diff-removed {
2347
+ color: var(--agentkit-diff-removed-text);
2348
+ }
2349
+
2350
+ .agentkit-activity-summary {
2351
+ margin-inline-start: 1.5rem;
2352
+ padding: 0.25rem 0 0.5rem;
2353
+ color: var(--agentkit-text);
2354
+ }
2355
+
2356
+ /* The composer's frame and type scale, so the two read as one input. */
2357
+ .agentkit-question {
2358
+ display: grid;
2359
+ grid-template-columns: minmax(0, 1fr);
2360
+ gap: 0.5rem;
2361
+ padding: 0.5rem var(--agent-kit-composer-editor-padding-inline, 1rem);
2362
+ border: 1px solid var(--agentkit-composer-border);
2363
+ border-radius: var(--agentkit-composer-radius);
2364
+ color: var(--agentkit-text);
2365
+ /* Composer surface variables, so restyling the composer restyles this. */
2366
+ background: var(
2367
+ --agentkit-composer-background,
2368
+ var(--agent-kit-composer-surface, var(--agentkit-surface))
2369
+ );
2370
+ box-shadow: var(--agentkit-elevation);
2371
+ font-size: var(--agent-kit-composer-font-size, 0.875rem);
2372
+ line-height: var(--agent-kit-composer-line-height, 1.25rem);
2373
+ }
2374
+
2375
+ .agentkit-question-header {
2376
+ display: flex;
2377
+ min-inline-size: 0;
2378
+ align-items: center;
2379
+ gap: 0.5rem;
2380
+ min-block-size: 1.5rem;
2381
+ color: var(--agentkit-text-muted);
2382
+ font-size: var(--agent-kit-supporting-font-size, 0.75rem);
2383
+ line-height: var(--agent-kit-supporting-line-height, 1rem);
2384
+ }
2385
+
2386
+ .agentkit-question-header > .agentkit-icon {
2387
+ inline-size: 0.875rem;
2388
+ block-size: 0.875rem;
2389
+ }
2390
+
2391
+ .agentkit-question-title {
2392
+ margin: 0;
2393
+ font: inherit;
2394
+ }
2395
+
2396
+ .agentkit-question-progress {
2397
+ font-variant-numeric: tabular-nums;
2398
+ }
2399
+
2400
+ /* The icon button's glyph sits on the text's edge, not its box's. */
2401
+ .agentkit-question-dismiss {
2402
+ margin-inline: auto -0.25rem;
2403
+ }
2404
+
2405
+ .agentkit-question-text,
2406
+ .agentkit-question-description {
2407
+ margin: 0;
2408
+ overflow-wrap: anywhere;
2409
+ }
2410
+
2411
+ .agentkit-question-description {
2412
+ color: var(--agentkit-text-muted);
2413
+ }
2414
+
2415
+ /* Row text sits flush with the text above. */
2416
+ .agentkit-question-options {
2417
+ display: grid;
2418
+ grid-template-columns: minmax(0, 1fr);
2419
+ margin-inline: -0.5rem;
2420
+ }
2421
+
2422
+ .agentkit-question-option {
2423
+ display: flex;
2424
+ min-inline-size: 0;
2425
+ align-items: center;
2426
+ gap: 0.5rem;
2427
+ min-block-size: 1.75rem;
2428
+ padding: 0.25rem 0.5rem;
2429
+ border: 0;
2430
+ border-radius: var(--agentkit-radius-xs);
2431
+ color: inherit;
2432
+ background: transparent;
2433
+ font: inherit;
2434
+ text-align: start;
2435
+ cursor: pointer;
2436
+ }
2437
+
2438
+ .agentkit-question-option:hover,
2439
+ .agentkit-question-option[data-selected="true"] {
2440
+ background: var(--agentkit-subtle);
2441
+ }
2442
+
2443
+ .agentkit-question-option:focus-visible {
2444
+ outline: 2px solid var(--agentkit-focus);
2445
+ outline-offset: -2px;
2446
+ }
2447
+
2448
+ .agentkit-question-option[aria-disabled="true"] {
2449
+ cursor: default;
2450
+ }
2451
+
2452
+ .agentkit-question-key {
2453
+ display: inline-flex;
2454
+ flex: none;
2455
+ align-items: center;
2456
+ justify-content: center;
2457
+ inline-size: 1rem;
2458
+ block-size: 1rem;
2459
+ border: 1px solid var(--agentkit-border);
2460
+ border-radius: var(--agentkit-radius-xs);
2461
+ color: var(--agentkit-text-muted);
2462
+ font-size: var(--agent-kit-caption-font-size, 0.6875rem);
2463
+ line-height: 1;
2464
+ font-variant-numeric: tabular-nums;
2465
+ }
2466
+
2467
+ .agentkit-question-option[data-selected="true"] .agentkit-question-key {
2468
+ border-color: var(--agentkit-text);
2469
+ color: var(
2470
+ --agentkit-composer-background,
2471
+ var(--agent-kit-composer-surface, var(--agentkit-surface))
2472
+ );
2473
+ background: var(--agentkit-text);
2474
+ }
2475
+
2476
+ .agentkit-question-option-label {
2477
+ min-inline-size: 0;
2478
+ overflow: hidden;
2479
+ text-overflow: ellipsis;
2480
+ white-space: nowrap;
2481
+ }
2482
+
2483
+ .agentkit-question-recommended {
2484
+ display: inline-flex;
2485
+ flex: none;
2486
+ align-items: center;
2487
+ padding: 0 0.25rem;
2488
+ border: 1px solid var(--agentkit-border);
2489
+ border-radius: var(--agentkit-radius-xs);
2490
+ color: var(--agentkit-text-muted);
2491
+ font-size: var(--agent-kit-caption-font-size, 0.6875rem);
2492
+ line-height: var(--agent-kit-caption-line-height, 1rem);
2493
+ }
2494
+
2495
+ .agentkit-question-swatch {
2496
+ flex: none;
2497
+ inline-size: 1rem;
2498
+ block-size: 1rem;
2499
+ border-radius: var(--agentkit-radius-xs);
2500
+ box-shadow: inset 0 0 0 1px var(--agentkit-border);
2501
+ }
2502
+
2503
+ .agentkit-question-range {
2504
+ display: flex;
2505
+ min-inline-size: 0;
2506
+ align-items: center;
2507
+ gap: 0.5rem;
2508
+ min-block-size: 1.75rem;
2509
+ color: var(--agentkit-text-muted);
2510
+ font-size: var(--agent-kit-supporting-font-size, 0.75rem);
2511
+ line-height: var(--agent-kit-supporting-line-height, 1rem);
2512
+ font-variant-numeric: tabular-nums;
2513
+ }
2514
+
2515
+ .agentkit-question-range input {
2516
+ flex: 1 1 auto;
2517
+ min-inline-size: 0;
2518
+ margin: 0;
2519
+ accent-color: var(--agentkit-text);
2520
+ }
2521
+
2522
+ .agentkit-question-range-value {
2523
+ min-inline-size: 2rem;
2524
+ color: var(--agentkit-text);
2525
+ font-size: var(--agent-kit-composer-font-size, 0.875rem);
2526
+ line-height: var(--agent-kit-composer-line-height, 1.25rem);
2527
+ text-align: end;
2528
+ }
2529
+
2530
+ .agentkit-question-files {
2531
+ display: flex;
2532
+ flex-wrap: wrap;
2533
+ min-inline-size: 0;
2534
+ align-items: center;
2535
+ gap: 0.25rem;
2536
+ }
2537
+
2538
+ /* Matches the shared chip. */
2539
+ .agentkit-question-file {
2540
+ display: inline-flex;
2541
+ min-inline-size: 0;
2542
+ max-inline-size: 16rem;
2543
+ align-items: center;
2544
+ gap: 0.25rem;
2545
+ block-size: 1.25rem;
2546
+ padding-inline: 0.5rem 0.125rem;
2547
+ border: 1px solid var(--agentkit-border);
2548
+ border-radius: var(--agentkit-radius-xs);
2549
+ color: var(--agentkit-text);
2550
+ background: var(--agentkit-subtle);
2551
+ font-size: var(--agent-kit-supporting-font-size, 0.75rem);
2552
+ line-height: var(--agent-kit-supporting-line-height, 1rem);
2553
+ }
2554
+
2555
+ .agentkit-question-file-name {
2556
+ min-inline-size: 0;
2557
+ overflow: hidden;
2558
+ text-overflow: ellipsis;
2559
+ white-space: nowrap;
2560
+ }
2561
+
2562
+ .agentkit-question-file-remove {
2563
+ display: inline-flex;
2564
+ flex: none;
2565
+ align-items: center;
2566
+ justify-content: center;
2567
+ inline-size: 1rem;
2568
+ block-size: 1rem;
2569
+ padding: 0;
2570
+ border: 0;
2571
+ border-radius: var(--agentkit-radius-xs);
2572
+ color: var(--agentkit-text-muted);
2573
+ background: transparent;
2574
+ cursor: pointer;
2575
+ }
2576
+
2577
+ .agentkit-question-file-remove:hover {
2578
+ color: var(--agentkit-text);
2579
+ }
2580
+
2581
+ .agentkit-question-file-remove .agentkit-icon {
2582
+ inline-size: 0.75rem;
2583
+ block-size: 0.75rem;
2584
+ }
2585
+
2586
+ /* A field of its own: shows the composer's focus border, 8px in from the
2587
+ card's corner. */
2588
+ .agentkit-question-footer {
2589
+ display: flex;
2590
+ min-inline-size: 0;
2591
+ align-items: center;
2592
+ gap: 0.5rem;
2593
+ margin-inline: calc(
2594
+ 0.5rem - var(--agent-kit-composer-editor-padding-inline, 1rem)
2595
+ );
2596
+ padding: 0.25rem 0.25rem 0.25rem
2597
+ calc(var(--agent-kit-composer-editor-padding-inline, 1rem) - 0.5rem - 1px);
2598
+ border: 1px solid transparent;
2599
+ border-radius: calc(var(--agentkit-composer-radius) - 0.5rem);
2600
+ }
2601
+
2602
+ .agentkit-question-footer:has(.agentkit-question-other:focus-within) {
2603
+ border-color: var(--agentkit-composer-focus-border);
2604
+ }
2605
+
2606
+ .agentkit-question-other,
2607
+ .agentkit-question-spacer {
2608
+ display: flex;
2609
+ flex: 1 1 auto;
2610
+ min-inline-size: 0;
2611
+ align-items: center;
2612
+ gap: 0.5rem;
2613
+ }
2614
+
2615
+ .agentkit-question-other {
2616
+ color: var(--agentkit-text-muted);
2617
+ }
2618
+
2619
+ .agentkit-question-other > .agentkit-icon {
2620
+ inline-size: 0.875rem;
2621
+ block-size: 0.875rem;
2622
+ }
2623
+
2624
+ .agentkit-question-other input {
2625
+ flex: 1 1 auto;
2626
+ min-inline-size: 0;
2627
+ min-block-size: 1.5rem;
2628
+ padding: 0;
2629
+ border: 0;
2630
+ outline: 0;
2631
+ color: var(--agentkit-text);
2632
+ background: transparent;
2633
+ font: inherit;
2634
+ }
2635
+
2636
+ .agentkit-question-other input::placeholder {
2637
+ color: var(--agentkit-text-muted);
2638
+ }
2639
+
2640
+ .agentkit-question-actions {
2641
+ display: flex;
2642
+ flex: none;
2643
+ align-items: center;
2644
+ gap: 0.25rem;
2645
+ }
2646
+
2647
+ /* Rows keep the trace's muted ink; the reply reads as text. */
2648
+ .agentkit-subagent-content {
2649
+ display: grid;
2650
+ grid-template-columns: minmax(0, 1fr);
2651
+ gap: 0.25rem;
2652
+ margin-inline-start: 1.5rem;
2653
+ padding: 0.25rem 0 0.5rem;
2654
+ }
2655
+
2656
+ .agentkit-subagent-content
2657
+ > :not(.agentkit-activity-item, .agentkit-agent-interaction) {
2658
+ color: var(--agentkit-text);
2659
+ }
2660
+
2661
+ .agentkit-code-block.agentkit-activity-summary-section {
2662
+ margin-block: 0.5rem 0;
2663
+ }
2664
+
2665
+ .agentkit-activity-summary-value {
2666
+ max-block-size: 12rem;
2667
+ }
2668
+
2669
+ .agentkit-activity-tool-options {
2670
+ display: flex;
2671
+ flex-wrap: wrap;
2672
+ gap: 0.125rem 0.75rem;
2673
+ margin: 0;
2674
+ color: var(--agentkit-text-muted);
2675
+ font-family: var(--font-mono, ui-monospace, monospace);
2676
+ font-size: var(--agent-kit-caption-font-size, 0.6875rem);
2677
+ }
2678
+
2679
+ .agentkit-activity-tool-options > div {
2680
+ display: flex;
2681
+ min-inline-size: 0;
2682
+ gap: 0.375rem;
2683
+ }
2684
+
2685
+ .agentkit-activity-tool-options dd {
2686
+ min-inline-size: 0;
2687
+ margin: 0;
2688
+ overflow: hidden;
2689
+ color: var(--agentkit-text);
2690
+ text-overflow: ellipsis;
2691
+ white-space: nowrap;
2692
+ }
2693
+
2694
+ /* The approval card draws its own chrome; it only takes the spacing. */
2695
+ .agentkit-approval {
2696
+ margin-block: var(--agentkit-run-segment-gap, 0.75rem);
2697
+ }
2698
+
2699
+ .agentkit-connection-request,
2700
+ .agentkit-widget {
2701
+ overflow: hidden;
2702
+ margin-block: 0.75rem 1.25rem;
2703
+ border: 1px solid var(--agentkit-border);
2704
+ border-radius: var(--agentkit-radius-inner);
2705
+ background: var(--agentkit-surface);
2706
+ }
2707
+
2708
+ /* Every card in a turn shares this frame. */
2709
+ .agentkit-connection-request-copy,
2710
+ .agentkit-widget {
2711
+ padding: 0.75rem;
2712
+ }
2713
+
2714
+ .agentkit-widget {
2715
+ inline-size: 100%;
2716
+ }
2717
+
2718
+ .agentkit-connection-request h3,
2719
+ .agentkit-widget h3 {
2720
+ margin: 0;
2721
+ font-size: var(--agent-kit-body-font-size, 0.875rem);
2722
+ font-weight: 600;
2723
+ }
2724
+
2725
+ .agentkit-connection-request p,
2726
+ .agentkit-widget p {
2727
+ margin: 0.25rem 0 0;
2728
+ color: var(--agentkit-text-muted);
2729
+ font-size: var(--agent-kit-supporting-font-size, 0.75rem);
2730
+ }
2731
+
2732
+ .agentkit-connection-request-copy {
2733
+ display: flex;
2734
+ align-items: flex-start;
2735
+ gap: 0.75rem;
2736
+ }
2737
+
2738
+ .agentkit-connection-request-copy > .agentkit-icon {
2739
+ flex: 0 0 auto;
2740
+ margin-block-start: 0.125rem;
2741
+ color: var(--agentkit-text-muted);
2742
+ }
2743
+
2744
+ .agentkit-connection-request[data-status="connected"]
2745
+ .agentkit-connection-request-copy
2746
+ > .agentkit-icon {
2747
+ color: var(--agentkit-success);
2748
+ }
2749
+
2750
+ .agentkit-connection-request-actions {
2751
+ display: flex;
2752
+ justify-content: flex-end;
2753
+ gap: 0.5rem;
2754
+ padding: 0.75rem;
2755
+ border-block-start: 1px solid var(--agentkit-border);
2756
+ }
2757
+
2758
+ .agentkit-connection-request > .agentkit-command-error {
2759
+ display: flex;
2760
+ align-items: center;
2761
+ gap: 0.5rem;
2762
+ margin: 0;
2763
+ padding: 0 1rem 0.75rem;
2764
+ }
2765
+
2766
+ .agentkit-approval-options {
2767
+ display: grid;
2768
+ gap: 0.5rem;
2769
+ }
2770
+
2771
+ .agentkit-approval-options button {
2772
+ display: grid;
2773
+ gap: 0.25rem;
2774
+ padding: 0.75rem;
2775
+ border: 1px solid var(--agentkit-border);
2776
+ border-radius: var(--agentkit-radius-sm);
2777
+ color: var(--agentkit-text);
2778
+ background: transparent;
2779
+ font: inherit;
2780
+ font-size: var(--agent-kit-body-font-size, 0.875rem);
2781
+ text-align: start;
2782
+ cursor: pointer;
2783
+ }
2784
+
2785
+ .agentkit-approval-options button[data-kind="danger"] {
2786
+ border-color: color-mix(
2787
+ in srgb,
2788
+ var(--agentkit-danger) 40%,
2789
+ var(--agentkit-border)
2790
+ );
2791
+ color: var(--agentkit-danger-text);
2792
+ }
2793
+
2794
+ .agentkit-approval-options button[aria-pressed="true"],
2795
+ .agentkit-approval-options button[aria-checked="true"] {
2796
+ border-color: var(--agentkit-accent);
2797
+ background: color-mix(in srgb, var(--agentkit-accent) 8%, transparent);
2798
+ }
2799
+
2800
+ .agentkit-approval-options small {
2801
+ color: var(--agentkit-text-muted);
2802
+ font-size: var(--agent-kit-supporting-font-size, 0.75rem);
2803
+ }
2804
+
2805
+ .agentkit-approval-input input {
2806
+ color: var(--agentkit-text);
2807
+ }
2808
+
2809
+ .agentkit-approval-input {
2810
+ display: grid;
2811
+ color: var(--agentkit-text-muted);
2812
+ font-size: var(--agent-kit-supporting-font-size, 0.75rem);
2813
+ }
2814
+
2815
+ .agentkit-widget-actions {
2816
+ display: flex;
2817
+ justify-content: flex-end;
2818
+ gap: 0.5rem;
2819
+ padding: 0.75rem;
2820
+ border-block-start: 1px solid var(--agentkit-border);
2821
+ }
2822
+
2823
+ /* Full-bleed divider inside the padded widget card. */
2824
+ .agentkit-widget-actions {
2825
+ margin-inline: -1rem;
2826
+ margin-block-end: -1rem;
2827
+ }
2828
+
2829
+ /* Plain buttons only: a design-system Button would pick up this border. */
2830
+ :where(.agentkit-widget-actions) :where(button:not([data-slot="button"])) {
2831
+ min-block-size: 2rem;
2832
+ padding-inline: 0.75rem;
2833
+ border: 1px solid var(--agentkit-border);
2834
+ border-radius: var(--agentkit-radius-sm);
2835
+ color: var(--agentkit-text);
2836
+ background: transparent;
2837
+ font: inherit;
2838
+ font-size: var(--agent-kit-supporting-font-size, 0.75rem);
2839
+ cursor: pointer;
2840
+ }
2841
+
2842
+ .agentkit-primary-button {
2843
+ border-color: var(--agentkit-accent);
2844
+ color: var(--agentkit-accent-text);
2845
+ background: var(--agentkit-accent);
2846
+ }
2847
+
2848
+ .agentkit-widget-action {
2849
+ display: grid;
2850
+ justify-items: end;
2851
+ gap: 0.25rem;
2852
+ }
2853
+
2854
+ /* Amber: red is only for destructive actions. */
2855
+ .agentkit-command-error {
2856
+ color: var(--agentkit-warning);
2857
+ font-size: var(--agent-kit-supporting-font-size, 0.75rem);
2858
+ line-height: var(--agent-kit-supporting-line-height, 1rem);
2859
+ }
2860
+
2861
+ .agentkit-file {
2862
+ display: inline-flex;
2863
+ align-items: center;
2864
+ gap: 0.5rem;
2865
+ color: var(--agentkit-text-muted-strong);
2866
+ text-decoration: none;
2867
+ }
2868
+
2869
+ .agentkit-file--pasted-text {
2870
+ border: 1px solid var(--agentkit-border);
2871
+ border-radius: var(--agentkit-radius-xs);
2872
+ min-block-size: 1.5rem;
2873
+ padding: 0 0.5rem;
2874
+ font-size: var(--agent-kit-supporting-font-size, 0.75rem);
2875
+ }
2876
+
2877
+ .agentkit-annotations,
2878
+ .agentkit-citations {
2879
+ display: flex;
2880
+ flex-wrap: wrap;
2881
+ gap: 0.5rem;
2882
+ margin-block-start: 0.5rem;
2883
+ font-size: var(--agent-kit-supporting-font-size, 0.75rem);
2884
+ }
2885
+
2886
+ .agentkit-context-ring-trigger {
2887
+ display: flex;
2888
+ flex: none;
2889
+ inline-size: 1.5rem;
2890
+ block-size: 1.5rem;
2891
+ align-items: center;
2892
+ justify-content: center;
2893
+ padding: 0;
2894
+ border: 0;
2895
+ border-radius: var(--agentkit-composer-control-radius);
2896
+ color: var(--agentkit-text-muted);
2897
+ background: transparent;
2898
+ cursor: pointer;
2899
+ }
2900
+
2901
+ .agentkit-context-ring-trigger:hover,
2902
+ .agentkit-context-ring-trigger[data-state="open"] {
2903
+ background: var(--agentkit-subtle);
2904
+ }
2905
+
2906
+ .agentkit-context-ring-trigger:focus-visible {
2907
+ outline: 2px solid var(--agentkit-focus);
2908
+ outline-offset: 1px;
2909
+ }
2910
+
2911
+ .agentkit-context-ring {
2912
+ inline-size: 1.25rem;
2913
+ block-size: 1.25rem;
2914
+ transform: rotate(-90deg);
2915
+ }
2916
+
2917
+ /* Unused window. The subtle surface would vanish on a dark-mode popover. */
2918
+ .agentkit-context-ring-trigger,
2919
+ .agentkit-context-usage {
2920
+ --agentkit-context-free: color-mix(
2921
+ in srgb,
2922
+ var(--agentkit-text-muted) 25%,
2923
+ transparent
2924
+ );
2925
+ }
2926
+
2927
+ .agentkit-context-ring-track {
2928
+ stroke: var(--agentkit-context-free);
2929
+ }
2930
+
2931
+ .agentkit-context-ring-fill {
2932
+ stroke: var(--agentkit-progress);
2933
+ transition: stroke-dashoffset 300ms ease;
2934
+ }
2935
+
2936
+ .agentkit-context-ring-fill[data-warning="true"] {
2937
+ stroke: var(--agentkit-warning);
2938
+ }
2939
+
2940
+ /* The shared popover surface pads 4px; 8px more puts content 12px in. */
2941
+ .agentkit-context-usage {
2942
+ display: grid;
2943
+ gap: 0.75rem;
2944
+ padding: 0.5rem;
2945
+ color: var(--agentkit-text);
2946
+ font-size: var(--agent-kit-density-font-size, 0.8125rem);
2947
+ line-height: var(--agent-kit-density-line-height, 1.25rem);
2948
+ }
2949
+
2950
+ .agentkit-context-usage-header {
2951
+ display: flex;
2952
+ min-inline-size: 0;
2953
+ align-items: center;
2954
+ gap: 0.5rem;
2955
+ }
2956
+
2957
+ .agentkit-context-usage-title {
2958
+ flex: 1 1 auto;
2959
+ min-inline-size: 0;
2960
+ overflow: hidden;
2961
+ color: var(--agentkit-text-muted);
2962
+ text-overflow: ellipsis;
2963
+ white-space: nowrap;
2964
+ }
2965
+
2966
+ .agentkit-context-usage-total {
2967
+ flex: none;
2968
+ font-variant-numeric: tabular-nums;
2969
+ }
2970
+
2971
+ .agentkit-context-usage-toggle {
2972
+ flex: none;
2973
+ margin-inline-end: -0.25rem;
2974
+ }
2975
+
2976
+ .agentkit-context-usage-bar {
2977
+ display: flex;
2978
+ inline-size: 100%;
2979
+ block-size: 0.5rem;
2980
+ overflow: hidden;
2981
+ border-radius: var(--agentkit-radius-xs);
2982
+ background: var(--agentkit-context-free);
2983
+ }
2984
+
2985
+ .agentkit-context-usage-bar > span {
2986
+ block-size: 100%;
2987
+ }
2988
+
2989
+ .agentkit-context-usage-breakdown {
2990
+ max-block-size: 12rem;
2991
+ margin-block: -0.25rem;
2992
+ overflow-y: auto;
2993
+ }
2994
+
2995
+ .agentkit-context-usage-breakdown[hidden] {
2996
+ display: none;
2997
+ }
2998
+
2999
+ .agentkit-context-usage-breakdown table {
3000
+ inline-size: 100%;
3001
+ border-collapse: collapse;
3002
+ table-layout: fixed;
3003
+ }
3004
+
3005
+ .agentkit-context-usage-breakdown td {
3006
+ padding-block: 0.125rem;
3007
+ vertical-align: middle;
3008
+ }
3009
+
3010
+ .agentkit-context-usage-breakdown td:first-child {
3011
+ inline-size: 1rem;
3012
+ }
3013
+
3014
+ .agentkit-context-usage-breakdown td:nth-child(2) {
3015
+ overflow: hidden;
3016
+ text-overflow: ellipsis;
3017
+ white-space: nowrap;
3018
+ }
3019
+
3020
+ .agentkit-context-usage-breakdown td:nth-child(3),
3021
+ .agentkit-context-usage-breakdown td:nth-child(4) {
3022
+ padding-inline-start: 0.75rem;
3023
+ text-align: end;
3024
+ font-variant-numeric: tabular-nums;
3025
+ }
3026
+
3027
+ .agentkit-context-usage-breakdown td:nth-child(3) {
3028
+ inline-size: 5rem;
3029
+ color: var(--agentkit-text-muted);
3030
+ }
3031
+
3032
+ .agentkit-context-usage-breakdown td:nth-child(4) {
3033
+ inline-size: 4rem;
3034
+ }
3035
+
3036
+ .agentkit-context-usage-swatch {
3037
+ display: block;
3038
+ inline-size: 0.5rem;
3039
+ block-size: 0.5rem;
3040
+ border-radius: calc(var(--agentkit-radius-xs) / 2);
3041
+ background: var(--agentkit-context-free);
3042
+ }
3043
+
3044
+ .agentkit-context-usage-caption {
3045
+ display: flex;
3046
+ align-items: flex-start;
3047
+ gap: 0.375rem;
3048
+ margin: 0;
3049
+ color: var(--agentkit-text-muted);
3050
+ font-size: var(--agent-kit-caption-font-size, 0.6875rem);
3051
+ line-height: var(--agent-kit-caption-line-height, 1rem);
3052
+ }
3053
+
3054
+ .agentkit-context-usage-caption[data-warning="true"] {
3055
+ color: var(--agentkit-warning);
3056
+ }
3057
+
3058
+ .agentkit-context-usage-caption > .agentkit-icon {
3059
+ margin-block-start: 0;
3060
+ }
3061
+
3062
+ .agentkit-context-usage-actions {
3063
+ display: flex;
3064
+ justify-content: flex-end;
3065
+ }
3066
+
3067
+ .agentkit-file-path {
3068
+ display: flex;
3069
+ min-inline-size: 0;
3070
+ font-family: var(--font-mono, ui-monospace, monospace);
3071
+ font-size: var(--agent-kit-density-font-size, 0.8125rem);
3072
+ }
3073
+
3074
+ /* The directory gives way first, so the file name stays readable. */
3075
+ .agentkit-file-path-directory {
3076
+ min-inline-size: 0;
3077
+ overflow: hidden;
3078
+ text-overflow: ellipsis;
3079
+ }
3080
+
3081
+ /* Not while running: a colored child would cancel the title's shimmer. */
3082
+ .agentkit-trace-line:not([data-trace-status="running"])
3083
+ .agentkit-file-path-directory {
3084
+ color: var(--agentkit-text-muted);
3085
+ }
3086
+
3087
+ /* Holds its width until the directory has collapsed. */
3088
+ .agentkit-file-path-name {
3089
+ flex: none;
3090
+ max-inline-size: 100%;
3091
+ overflow: hidden;
3092
+ text-overflow: ellipsis;
3093
+ }
3094
+
3095
+ /* Open steps show the whole title; a hover-only title fails keyboard and
3096
+ touch users. */
3097
+ .agentkit-trace-collapsible[data-state="open"]
3098
+ > :is(.agentkit-disclosure-summary, * > .agentkit-disclosure-summary)
3099
+ :is(
3100
+ .agentkit-trace-title,
3101
+ .agentkit-trace-description,
3102
+ .agentkit-file-path-directory,
3103
+ .agentkit-file-path-name
3104
+ ) {
3105
+ overflow: visible;
3106
+ white-space: normal;
3107
+ overflow-wrap: anywhere;
3108
+ }
3109
+
3110
+ .agentkit-trace-collapsible[data-state="open"]
3111
+ > :is(.agentkit-disclosure-summary, * > .agentkit-disclosure-summary)
3112
+ .agentkit-file-path {
3113
+ flex-wrap: wrap;
3114
+ }
3115
+
3116
+ .agentkit-file-change-stats {
3117
+ display: inline-flex;
3118
+ gap: 0.375rem;
3119
+ margin-inline-start: auto;
3120
+ font-size: var(--agent-kit-supporting-font-size, 0.75rem);
3121
+ }
3122
+
3123
+ .agentkit-file-change-stats > [data-sign="added"] {
3124
+ color: var(--agentkit-diff-added-text);
2198
3125
  }
2199
3126
 
2200
- .agentkit-diff-removed {
2201
- color: var(--agentkit-danger);
3127
+ .agentkit-file-change-stats > [data-sign="removed"] {
3128
+ color: var(--agentkit-diff-removed-text);
2202
3129
  }
2203
3130
 
2204
- .agentkit-activity-summary {
2205
- margin-inline-start: 1.5rem;
2206
- padding: 0.25rem 0 0.5rem;
2207
- color: var(--agentkit-text);
3131
+ .agentkit-file-change .agentkit-file-change-content {
3132
+ padding-block-end: 0;
2208
3133
  }
2209
3134
 
2210
- .agentkit-activity-summary-section {
2211
- display: grid;
2212
- gap: 0.25rem;
2213
- margin-block-start: 0.5rem;
3135
+ .agentkit-file-change .agentkit-code-block {
3136
+ margin: 0;
2214
3137
  }
2215
3138
 
2216
- .agentkit-activity-summary-label {
2217
- color: var(--agentkit-text-muted);
2218
- font-size: 0.6875rem;
2219
- font-weight: 500;
3139
+ .agentkit-file-change-body .agentkit-code-block-content {
3140
+ max-block-size: 24rem;
2220
3141
  }
2221
3142
 
2222
- .agentkit-activity-summary-value {
2223
- max-block-size: 12rem;
2224
- overflow: auto;
2225
- border: 1px solid var(--agentkit-border);
2226
- border-radius: var(--radius-md, var(--radius));
2227
- padding: 0.5rem 0.75rem;
2228
- background: var(--agentkit-subtle);
2229
- color: var(--agentkit-text);
2230
- font: inherit;
2231
- font-family: var(--font-mono, ui-monospace, monospace);
2232
- font-size: 0.75rem;
2233
- line-height: 1.5;
2234
- white-space: pre-wrap;
2235
- overflow-wrap: anywhere;
3143
+ .agentkit-files-changed {
3144
+ gap: 0;
2236
3145
  }
2237
3146
 
2238
- .agentkit-activity-summary-value:focus-visible {
2239
- outline: 2px solid var(--agentkit-focus);
2240
- outline-offset: 2px;
3147
+ .agentkit-terminal-row {
3148
+ display: flex;
3149
+ min-inline-size: 0;
3150
+ align-items: center;
3151
+ gap: 0.25rem;
2241
3152
  }
2242
3153
 
2243
- /* The approval card draws its own chrome; it only takes the spacing. */
2244
- .agentkit-approval {
2245
- margin-block: var(--agentkit-run-segment-gap, 0.75rem);
3154
+ .agentkit-terminal-row > .agentkit-disclosure-summary {
3155
+ flex: 1 1 auto;
3156
+ min-inline-size: 0;
2246
3157
  }
2247
3158
 
2248
- .agentkit-connection-request,
2249
- .agentkit-widget {
2250
- overflow: hidden;
2251
- margin-block: 0.75rem 1.25rem;
2252
- border: 1px solid var(--agentkit-border);
2253
- border-radius: var(--agentkit-radius-inner);
2254
- background: var(--agentkit-surface);
3159
+ .agentkit-terminal-command {
3160
+ font-family: var(--font-mono, ui-monospace, monospace);
3161
+ font-size: var(--agent-kit-density-font-size, 0.8125rem);
2255
3162
  }
2256
3163
 
2257
- .agentkit-connection-request-copy,
2258
- .agentkit-widget {
2259
- padding: 1rem;
3164
+ .agentkit-terminal-actions {
3165
+ flex: none;
3166
+ opacity: 0;
3167
+ transition: opacity 120ms ease;
2260
3168
  }
2261
3169
 
2262
- .agentkit-widget {
2263
- inline-size: 100%;
3170
+ .agentkit-terminal-row:hover > .agentkit-terminal-actions,
3171
+ .agentkit-terminal-row:focus-within > .agentkit-terminal-actions,
3172
+ [data-state="open"] > .agentkit-terminal-row > .agentkit-terminal-actions {
3173
+ opacity: 1;
2264
3174
  }
2265
3175
 
2266
- .agentkit-connection-request h3,
2267
- .agentkit-widget h3 {
2268
- margin: 0;
2269
- font-size: 0.875rem;
2270
- font-weight: 600;
3176
+ .agentkit-terminal .agentkit-terminal-body {
3177
+ padding-block-end: 0;
2271
3178
  }
2272
3179
 
2273
- .agentkit-connection-request p,
2274
- .agentkit-widget p {
2275
- margin: 0.25rem 0 0;
2276
- color: var(--agentkit-text-muted);
2277
- font-size: 0.75rem;
3180
+ .agentkit-terminal .agentkit-code-block {
3181
+ margin: 0;
2278
3182
  }
2279
3183
 
2280
- .agentkit-connection-request-copy {
2281
- display: flex;
2282
- align-items: flex-start;
2283
- gap: 0.75rem;
3184
+ .agentkit-terminal-output {
3185
+ max-block-size: 16rem;
2284
3186
  }
2285
3187
 
2286
- .agentkit-connection-request-copy > .agentkit-icon {
2287
- flex: 0 0 auto;
2288
- margin-block-start: 0.125rem;
2289
- color: var(--agentkit-text-muted);
3188
+ .agentkit-terminal-earlier {
3189
+ padding: 0;
3190
+ border: 0;
3191
+ color: var(--agentkit-text-muted-strong);
3192
+ background: none;
3193
+ font: inherit;
3194
+ font-size: var(--agent-kit-supporting-font-size, 0.75rem);
3195
+ text-decoration: underline;
3196
+ text-underline-offset: 0.2em;
3197
+ cursor: pointer;
2290
3198
  }
2291
3199
 
2292
- .agentkit-connection-request[data-status="connected"]
2293
- .agentkit-connection-request-copy
2294
- > .agentkit-icon {
2295
- color: var(--agentkit-success);
3200
+ .agentkit-terminal-earlier:hover {
3201
+ color: var(--agentkit-text);
2296
3202
  }
2297
3203
 
2298
- .agentkit-connection-request-actions {
2299
- display: flex;
2300
- justify-content: flex-end;
2301
- gap: 0.5rem;
2302
- padding: 0.75rem 1rem;
2303
- border-block-start: 1px solid var(--agentkit-border);
3204
+ .agentkit-stack-trace {
3205
+ margin-block: 0.5rem 0;
2304
3206
  }
2305
3207
 
2306
- .agentkit-connection-request > .agentkit-command-error {
3208
+ .agentkit-stack-trace-row {
2307
3209
  display: flex;
3210
+ min-inline-size: 0;
2308
3211
  align-items: center;
2309
- gap: 0.5rem;
2310
- margin: 0;
2311
- padding: 0 1rem 0.75rem;
3212
+ gap: 0.25rem;
2312
3213
  }
2313
3214
 
2314
- .agentkit-approval-options {
2315
- display: grid;
2316
- gap: 0.5rem;
3215
+ .agentkit-stack-trace-row > .agentkit-disclosure-summary {
3216
+ flex: 1 1 auto;
3217
+ min-inline-size: 0;
2317
3218
  }
2318
3219
 
2319
- .agentkit-approval-options button {
2320
- display: grid;
2321
- gap: 0.25rem;
2322
- padding: 0.75rem;
2323
- border: 1px solid var(--agentkit-border);
2324
- border-radius: var(--radius-md, var(--radius));
2325
- color: var(--agentkit-text);
2326
- background: transparent;
2327
- font: inherit;
2328
- font-size: 0.875rem;
2329
- text-align: start;
2330
- cursor: pointer;
3220
+ .agentkit-stack-trace-actions {
3221
+ flex: none;
3222
+ opacity: 0;
3223
+ transition: opacity 120ms ease;
2331
3224
  }
2332
3225
 
2333
- .agentkit-approval-options button[data-kind="danger"] {
2334
- border-color: color-mix(
2335
- in srgb,
2336
- var(--agentkit-danger) 40%,
2337
- var(--agentkit-border)
2338
- );
2339
- color: var(--agentkit-danger-text);
3226
+ .agentkit-stack-trace-row:hover > .agentkit-stack-trace-actions,
3227
+ .agentkit-stack-trace-row:focus-within > .agentkit-stack-trace-actions,
3228
+ [data-state="open"]
3229
+ > .agentkit-stack-trace-row
3230
+ > .agentkit-stack-trace-actions {
3231
+ opacity: 1;
2340
3232
  }
2341
3233
 
2342
- .agentkit-approval-options button[aria-pressed="true"],
2343
- .agentkit-approval-options button[aria-checked="true"] {
2344
- border-color: var(--agentkit-accent);
2345
- background: color-mix(in srgb, var(--agentkit-accent) 8%, transparent);
3234
+ /* Touch has no hover, so show these. Must follow the base rules. */
3235
+ @media (hover: none), (any-pointer: coarse) {
3236
+ .agentkit-code-block > .agentkit-code-block-actions,
3237
+ .agentkit-terminal-actions,
3238
+ .agentkit-stack-trace-actions {
3239
+ opacity: 1;
3240
+ }
2346
3241
  }
2347
3242
 
2348
- .agentkit-approval-options small {
2349
- color: var(--agentkit-text-muted);
2350
- font-size: 0.75rem;
3243
+ .agentkit-stack-trace .agentkit-stack-trace-body {
3244
+ margin-inline-start: 0;
3245
+ padding: 0.5rem 0.75rem;
3246
+ overflow-x: auto;
3247
+ border: 1px solid
3248
+ color-mix(in srgb, var(--agentkit-warning) 40%, var(--agentkit-border));
3249
+ border-radius: var(--agentkit-radius-inner);
3250
+ background: var(--agentkit-subtle);
3251
+ font-family: var(--font-mono, ui-monospace, monospace);
3252
+ font-size: var(--agent-kit-supporting-font-size, 0.75rem);
3253
+ line-height: var(--agent-kit-supporting-line-height, 1rem);
2351
3254
  }
2352
3255
 
2353
- .agentkit-approval-input input {
3256
+ .agentkit-stack-trace-error {
3257
+ margin: 0 0 0.25rem;
2354
3258
  color: var(--agentkit-text);
3259
+ white-space: pre-wrap;
3260
+ overflow-wrap: anywhere;
2355
3261
  }
2356
3262
 
2357
- .agentkit-approval-input {
3263
+ .agentkit-stack-frames {
2358
3264
  display: grid;
2359
- color: var(--agentkit-text-muted);
2360
- font-size: 0.75rem;
3265
+ grid-template-columns: minmax(0, 1fr);
3266
+ margin: 0;
3267
+ padding: 0;
3268
+ list-style: none;
2361
3269
  }
2362
3270
 
2363
- .agentkit-widget-actions {
3271
+ .agentkit-stack-frame {
2364
3272
  display: flex;
2365
- justify-content: flex-end;
3273
+ min-inline-size: 0;
2366
3274
  gap: 0.5rem;
2367
- padding: 0.75rem 1rem;
2368
- border-block-start: 1px solid var(--agentkit-border);
3275
+ padding-inline-start: 1rem;
3276
+ color: var(--agentkit-text);
3277
+ white-space: nowrap;
2369
3278
  }
2370
3279
 
2371
- /* Full-bleed divider inside the padded widget card. */
2372
- .agentkit-widget-actions {
2373
- margin-inline: -1rem;
2374
- margin-block-end: -1rem;
3280
+ .agentkit-stack-frame[data-internal="true"] {
3281
+ color: var(--agentkit-text-muted);
2375
3282
  }
2376
3283
 
2377
- /* Plain buttons only: a design-system Button would also pick up the
2378
- properties its own variant leaves unset, such as this border. */
2379
- :where(.agentkit-widget-actions) :where(button:not([data-slot="button"])) {
2380
- min-block-size: 2rem;
2381
- padding-inline: 0.75rem;
2382
- border: 1px solid var(--agentkit-border);
2383
- border-radius: var(--radius-md, var(--radius));
2384
- color: var(--agentkit-text);
2385
- background: transparent;
3284
+ .agentkit-stack-frame-name {
3285
+ flex: none;
3286
+ }
3287
+
3288
+ .agentkit-stack-frame-location {
3289
+ min-inline-size: 0;
3290
+ overflow: hidden;
3291
+ padding: 0;
3292
+ border: 0;
3293
+ color: var(--agentkit-text-muted);
3294
+ background: none;
2386
3295
  font: inherit;
2387
- font-size: 0.75rem;
3296
+ text-align: start;
3297
+ text-overflow: ellipsis;
3298
+ }
3299
+
3300
+ button.agentkit-stack-frame-location {
3301
+ color: var(--agentkit-text);
3302
+ text-decoration: underline;
3303
+ text-decoration-color: var(--agentkit-text-muted);
3304
+ text-underline-offset: 0.2em;
2388
3305
  cursor: pointer;
2389
3306
  }
2390
3307
 
2391
- .agentkit-primary-button {
2392
- border-color: var(--agentkit-accent);
2393
- color: var(--agentkit-accent-text);
2394
- background: var(--agentkit-accent);
3308
+ .agentkit-stack-frames-folded .agentkit-disclosure-summary {
3309
+ padding-inline-start: 1rem;
3310
+ font-family: inherit;
3311
+ font-size: inherit;
2395
3312
  }
2396
3313
 
2397
- .agentkit-widget-action {
2398
- display: grid;
2399
- justify-items: end;
2400
- gap: 0.25rem;
3314
+ .agentkit-stack-frames-folded .agentkit-trace-content {
3315
+ margin-inline-start: 0;
3316
+ padding: 0;
2401
3317
  }
2402
3318
 
2403
- .agentkit-command-error {
2404
- color: var(--agentkit-danger-text);
2405
- font-size: 0.75rem;
2406
- line-height: 1.35;
3319
+ .agentkit-sources {
3320
+ margin-block-start: 0.5rem;
2407
3321
  }
2408
3322
 
2409
- .agentkit-file {
2410
- display: inline-flex;
2411
- align-items: center;
2412
- gap: 0.5rem;
2413
- color: var(--agentkit-text-muted-strong);
3323
+ .agentkit-sources-list {
3324
+ display: grid;
3325
+ grid-template-columns: minmax(0, 1fr);
3326
+ gap: 0.125rem;
3327
+ margin: 0;
3328
+ padding: 0;
3329
+ list-style: none;
3330
+ }
3331
+
3332
+ .agentkit-sources-list a {
3333
+ display: flex;
3334
+ min-inline-size: 0;
3335
+ padding-block: 0.125rem;
3336
+ color: inherit;
2414
3337
  text-decoration: none;
2415
3338
  }
2416
3339
 
2417
- .agentkit-file--pasted-text {
2418
- border: 1px solid var(--agentkit-border);
2419
- border-radius: 999px;
2420
- min-block-size: 1.5rem;
2421
- padding: 0 0.5rem;
2422
- font-size: 0.75rem;
3340
+ .agentkit-sources-list a:hover .agentkit-trace-title {
3341
+ text-decoration: underline;
3342
+ text-underline-offset: 0.2em;
2423
3343
  }
2424
3344
 
2425
- .agentkit-annotations,
2426
- .agentkit-citations {
2427
- display: flex;
2428
- flex-wrap: wrap;
2429
- gap: 0.5rem;
2430
- margin-block-start: 0.5rem;
2431
- font-size: 0.75rem;
3345
+ .agentkit-sources .agentkit-trace-content {
3346
+ margin-inline-start: 0;
3347
+ padding-block-end: 0;
2432
3348
  }
2433
3349
 
2434
3350
  .agentkit-annotations a,
@@ -2446,7 +3362,7 @@
2446
3362
  .agentkit-reasoning {
2447
3363
  margin-block: 0.5rem 0.75rem;
2448
3364
  color: var(--agentkit-text-muted);
2449
- font-size: 0.8125rem;
3365
+ font-size: var(--agent-kit-density-font-size, 0.8125rem);
2450
3366
  }
2451
3367
 
2452
3368
  .agentkit-reasoning-summary {
@@ -2460,26 +3376,13 @@
2460
3376
  white-space: nowrap;
2461
3377
  }
2462
3378
 
2463
- .agentkit-reasoning[data-active="true"] .agentkit-reasoning-label {
2464
- color: transparent;
2465
- background: linear-gradient(
2466
- 90deg,
2467
- var(--agentkit-text-muted),
2468
- color-mix(in srgb, var(--agentkit-text-muted) 28%, transparent),
2469
- var(--agentkit-text-muted)
2470
- );
2471
- background-size: 200% 100%;
2472
- background-clip: text;
2473
- animation: agentkit-shimmer 1.8s linear infinite;
2474
- }
2475
-
2476
3379
  .agentkit-reasoning-content {
2477
3380
  min-inline-size: 0;
2478
3381
  overflow-wrap: anywhere;
2479
3382
  margin-inline-start: 1.5rem;
2480
3383
  padding: 0.25rem 0 0.5rem;
2481
3384
  color: var(--agentkit-text-muted);
2482
- font-size: 0.8125rem;
3385
+ font-size: var(--agent-kit-density-font-size, 0.8125rem);
2483
3386
  }
2484
3387
 
2485
3388
  .agentkit-reasoning-content p {
@@ -2496,12 +3399,11 @@
2496
3399
  align-items: start;
2497
3400
  gap: 0.25rem 0.5rem;
2498
3401
  margin-block: var(--agentkit-run-segment-gap, 0.75rem);
2499
- padding: 0.75rem 1rem;
3402
+ padding: 0.75rem;
2500
3403
  border: 1px solid
2501
- color-mix(in srgb, var(--agentkit-danger) 32%, var(--agentkit-border));
3404
+ color-mix(in srgb, var(--agentkit-warning) 32%, var(--agentkit-border));
2502
3405
  border-radius: var(--agentkit-radius-inner);
2503
- background: color-mix(in srgb, var(--agentkit-danger) 6%, transparent);
2504
- font-size: 0.75rem;
3406
+ font-size: var(--agent-kit-supporting-font-size, 0.75rem);
2505
3407
  }
2506
3408
 
2507
3409
  .agentkit-error > :not(.agentkit-icon) {
@@ -2510,7 +3412,7 @@
2510
3412
 
2511
3413
  .agentkit-error > .agentkit-icon {
2512
3414
  margin-block-start: 0.0625rem;
2513
- color: var(--agentkit-danger-text);
3415
+ color: var(--agentkit-warning);
2514
3416
  }
2515
3417
 
2516
3418
  .agentkit-error > span:not(.agentkit-command-error) {
@@ -2529,9 +3431,9 @@
2529
3431
  gap: 0.5rem;
2530
3432
  margin-block: var(--agentkit-run-segment-gap, 0.75rem);
2531
3433
  padding-block: 0.25rem;
2532
- color: var(--agentkit-danger);
2533
- font-size: 0.75rem;
2534
- line-height: 1.4;
3434
+ color: var(--agentkit-warning);
3435
+ font-size: var(--agent-kit-supporting-font-size, 0.75rem);
3436
+ line-height: var(--agent-kit-supporting-line-height, 1rem);
2535
3437
  }
2536
3438
 
2537
3439
  .agentkit-run-failure > .agentkit-icon {
@@ -2547,7 +3449,7 @@
2547
3449
  }
2548
3450
 
2549
3451
  .agentkit-run-failure-copy strong {
2550
- color: var(--agentkit-danger-text);
3452
+ color: var(--agentkit-text);
2551
3453
  font-weight: 600;
2552
3454
  }
2553
3455
 
@@ -2562,20 +3464,6 @@
2562
3464
 
2563
3465
  .agentkit-run-failure-copy > .agentkit-command-error {
2564
3466
  flex-basis: 100%;
2565
- color: var(--agentkit-danger-text);
2566
- }
2567
-
2568
- .agentkit-run-failure[data-tone="warning"] {
2569
- color: var(--agentkit-warning);
2570
- }
2571
-
2572
- .agentkit-run-failure[data-tone="warning"] .agentkit-run-failure-copy strong {
2573
- color: var(--agentkit-text);
2574
- }
2575
-
2576
- .agentkit-run-failure[data-tone="warning"]
2577
- .agentkit-run-failure-copy
2578
- > .agentkit-command-error {
2579
3467
  color: var(--agentkit-text-muted-strong);
2580
3468
  }
2581
3469
 
@@ -2672,7 +3560,7 @@
2672
3560
  .agentkit-run-stopped {
2673
3561
  margin-block-start: 0.25rem;
2674
3562
  color: var(--agentkit-text-muted);
2675
- font-size: 0.8125rem;
3563
+ font-size: var(--agent-kit-density-font-size, 0.8125rem);
2676
3564
  }
2677
3565
 
2678
3566
  .agentkit-transcript-skeleton {
@@ -2694,10 +3582,30 @@
2694
3582
  gap: 0.75rem;
2695
3583
  padding-block: 1.5rem;
2696
3584
  color: var(--agentkit-text-muted);
2697
- font-size: 0.875rem;
3585
+ font-size: var(--agent-kit-body-font-size, 0.875rem);
2698
3586
  text-align: center;
2699
3587
  }
2700
3588
 
3589
+ /* Sweep between two readable colors, never toward the background, or the
3590
+ label drops under 4.5:1. The trace title keeps real specificity so a row
3591
+ color class cannot cancel the transparent fill. */
3592
+ .agentkit-trace-line[data-trace-status="running"] .agentkit-trace-title,
3593
+ .agentkit-agent[data-status="working"] .agentkit-agent-name,
3594
+ .agentkit-reasoning[data-active="true"] .agentkit-reasoning-label,
3595
+ .agentkit-work-step-label[data-active="true"],
3596
+ .agentkit-work-group[data-running="true"] .agentkit-work-group-label {
3597
+ color: transparent;
3598
+ background: linear-gradient(
3599
+ 90deg,
3600
+ var(--agentkit-shimmer-base, var(--agentkit-text-muted)),
3601
+ var(--agentkit-shimmer-highlight, var(--agentkit-text)),
3602
+ var(--agentkit-shimmer-base, var(--agentkit-text-muted))
3603
+ );
3604
+ background-size: 200% 100%;
3605
+ background-clip: text;
3606
+ animation: agentkit-shimmer 1.8s linear infinite;
3607
+ }
3608
+
2701
3609
  @keyframes agentkit-shimmer {
2702
3610
  to {
2703
3611
  background-position: -200% 0;
@@ -2705,15 +3613,17 @@
2705
3613
  }
2706
3614
 
2707
3615
  @media (prefers-reduced-motion: reduce) {
2708
- .agentkit-activity-item[data-status="running"] .agentkit-activity-label,
3616
+ .agentkit-trace-line[data-trace-status="running"] .agentkit-trace-title,
2709
3617
  .agentkit-agent[data-status="working"] .agentkit-agent-name,
2710
3618
  .agentkit-reasoning[data-active="true"] .agentkit-reasoning-label,
2711
3619
  .agentkit-work-step-label[data-active="true"],
2712
- .agentkit-work-group[data-running="true"] .agentkit-work-group-label,
2713
- .agentkit-task-row[data-status="running"] .agentkit-task-title {
3620
+ .agentkit-work-group[data-running="true"] .agentkit-work-group-label {
3621
+ color: var(--agentkit-shimmer-base, var(--agentkit-text-muted));
3622
+ background: none;
2714
3623
  animation: none;
2715
3624
  }
2716
3625
 
3626
+ .agentkit-context-ring-fill,
2717
3627
  .agentkit-message-actions,
2718
3628
  .agentkit-message-toolbar,
2719
3629
  .agentkit-scroll-to-bottom-control,
@@ -2761,7 +3671,8 @@
2761
3671
  --agentkit-composer-inset: 1rem;
2762
3672
  --agentkit-composer-editor-padding-top: 1rem;
2763
3673
  --agentkit-composer-toolbar-padding-bottom: 0.75rem;
2764
- --agentkit-composer-radius: 1.75rem;
3674
+ /* Concentric with the 8px Send at this size's 12px inset. */
3675
+ --agentkit-composer-radius: calc(var(--agentkit-radius-sm) + 0.75rem);
2765
3676
  }
2766
3677
 
2767
3678
  @container agentkit-chat (max-width: 40rem) {