@adecore/agents-react 0.31.12 → 0.33.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 (409) hide show
  1. package/README.md +1 -1
  2. package/dist/agents/AccountDot.js +57 -6
  3. package/dist/agents/AgentIcon.js +88 -12
  4. package/dist/agents/ModelOptionControl.js +153 -18
  5. package/dist/agents/ProviderLogo.js +49 -4
  6. package/dist/agents/account-limits.js +17 -14
  7. package/dist/agents/accounts.js +99 -67
  8. package/dist/agents/agent-marks.js +5 -3
  9. package/dist/agents/model-name.js +42 -31
  10. package/dist/agents/model-options.js +8 -8
  11. package/dist/agents/model-requirement.js +17 -14
  12. package/dist/agents/option-words.d.ts +7 -0
  13. package/dist/agents/option-words.js +35 -0
  14. package/dist/agents/provider-paths.js +6 -6
  15. package/dist/agents/status-look.js +32 -12
  16. package/dist/chat/account-choice.d.ts +13 -0
  17. package/dist/chat/account-choice.js +90 -20
  18. package/dist/chat/actions.js +126 -59
  19. package/dist/chat/activity.js +5 -5
  20. package/dist/chat/attachments.js +74 -53
  21. package/dist/chat/bookmarks.js +58 -48
  22. package/dist/chat/chat-client.js +344 -263
  23. package/dist/chat/chat-references.js +3 -3
  24. package/dist/chat/composer-effort.d.ts +5 -0
  25. package/dist/chat/composer-effort.js +26 -0
  26. package/dist/chat/composer-send.js +13 -13
  27. package/dist/chat/drafts.js +115 -79
  28. package/dist/chat/forks.js +81 -24
  29. package/dist/chat/guards.js +15 -43
  30. package/dist/chat/index.d.ts +3 -1
  31. package/dist/chat/index.js +3 -2
  32. package/dist/chat/logic/ansi.js +170 -167
  33. package/dist/chat/logic/answers.js +2 -2
  34. package/dist/chat/logic/bookmarks.js +19 -19
  35. package/dist/chat/logic/command-looks.js +138 -96
  36. package/dist/chat/logic/context-usage.js +13 -9
  37. package/dist/chat/logic/continue-after-stop.js +15 -19
  38. package/dist/chat/logic/effort.d.ts +14 -0
  39. package/dist/chat/logic/effort.js +34 -0
  40. package/dist/chat/logic/embedded-code.js +387 -326
  41. package/dist/chat/logic/fork.js +134 -110
  42. package/dist/chat/logic/generated-image.js +54 -23
  43. package/dist/chat/logic/goal.js +28 -20
  44. package/dist/chat/logic/handback.js +6 -6
  45. package/dist/chat/logic/json.js +2 -2
  46. package/dist/chat/logic/limit.js +46 -30
  47. package/dist/chat/logic/picker-entries.d.ts +5 -3
  48. package/dist/chat/logic/picker-entries.js +83 -43
  49. package/dist/chat/logic/resume-compaction.d.ts +14 -1
  50. package/dist/chat/logic/resume-compaction.js +93 -24
  51. package/dist/chat/logic/scrubber.js +188 -136
  52. package/dist/chat/logic/thought.js +13 -16
  53. package/dist/chat/logic/thread-cards.js +60 -48
  54. package/dist/chat/logic/timeline-copy.js +30 -38
  55. package/dist/chat/logic/timeline-target.js +92 -63
  56. package/dist/chat/logic/timeline.js +499 -355
  57. package/dist/chat/logic/tool-catalog.js +54 -34
  58. package/dist/chat/logic/tools.js +106 -82
  59. package/dist/chat/logic/visual-height.js +18 -18
  60. package/dist/chat/logic/visual-viewport.js +6 -3
  61. package/dist/chat/logic/welcome.js +9 -9
  62. package/dist/chat/logic/workflow.d.ts +10 -0
  63. package/dist/chat/logic/workflow.js +130 -32
  64. package/dist/chat/mentions.js +149 -109
  65. package/dist/chat/persisted-json.js +51 -54
  66. package/dist/chat/preferences.d.ts +4 -0
  67. package/dist/chat/preferences.js +162 -84
  68. package/dist/chat/prompt-hold.js +9 -9
  69. package/dist/chat/quote.js +21 -30
  70. package/dist/chat/reading-width.js +12 -10
  71. package/dist/chat/recent-messages.js +34 -21
  72. package/dist/chat/resume-compaction-dismissals.js +25 -5
  73. package/dist/chat/runtime-modes.js +3 -3
  74. package/dist/chat/send-key.js +11 -7
  75. package/dist/chat/stash.js +89 -69
  76. package/dist/chat/subagent-conversation.js +181 -139
  77. package/dist/chat/subagent-list.js +65 -67
  78. package/dist/chat/subagent-support.js +12 -7
  79. package/dist/chat/subagent-view.js +132 -44
  80. package/dist/chat/thumbnails.js +88 -60
  81. package/dist/chat/timeline-flash.js +24 -12
  82. package/dist/chat/timeline-scroll.js +116 -86
  83. package/dist/chat/ui/AccountPill.js +126 -15
  84. package/dist/chat/ui/AnsiOutput.js +62 -6
  85. package/dist/chat/ui/BookmarkMarker.js +231 -41
  86. package/dist/chat/ui/BookmarkSubmenu.js +165 -18
  87. package/dist/chat/ui/ChatActivity.js +649 -70
  88. package/dist/chat/ui/ChatReferenceChip.js +104 -9
  89. package/dist/chat/ui/CodeBlock.js +132 -58
  90. package/dist/chat/ui/Composer.js +866 -132
  91. package/dist/chat/ui/ComposerInput.js +309 -120
  92. package/dist/chat/ui/DiffPool.js +75 -14
  93. package/dist/chat/ui/EditDiff.js +160 -21
  94. package/dist/chat/ui/FadingWords.js +32 -3
  95. package/dist/chat/ui/GoalDock.js +235 -42
  96. package/dist/chat/ui/ImageView.js +617 -61
  97. package/dist/chat/ui/LimitState.js +446 -72
  98. package/dist/chat/ui/Markdown.js +991 -173
  99. package/dist/chat/ui/MermaidBlock.js +285 -79
  100. package/dist/chat/ui/MessageActions.js +251 -39
  101. package/dist/chat/ui/ModelMarks.js +55 -5
  102. package/dist/chat/ui/Pickers.js +664 -113
  103. package/dist/chat/ui/PromptComposer.js +281 -51
  104. package/dist/chat/ui/QuoteButton.js +151 -57
  105. package/dist/chat/ui/ResumeCompactionDock.d.ts +6 -2
  106. package/dist/chat/ui/ResumeCompactionDock.js +141 -6
  107. package/dist/chat/ui/RowTime.js +59 -5
  108. package/dist/chat/ui/RunSettings.js +1744 -154
  109. package/dist/chat/ui/Scrubber.js +517 -88
  110. package/dist/chat/ui/ShellCommand.js +183 -107
  111. package/dist/chat/ui/SubagentControls.js +212 -24
  112. package/dist/chat/ui/SubagentInfo.js +170 -13
  113. package/dist/chat/ui/SubagentStopButton.js +115 -24
  114. package/dist/chat/ui/SubagentTimeline.js +357 -91
  115. package/dist/chat/ui/Timeline.js +988 -476
  116. package/dist/chat/ui/TimelineMenu.js +552 -37
  117. package/dist/chat/ui/UnifiedDiff.js +234 -27
  118. package/dist/chat/ui/UploadThumb.js +37 -7
  119. package/dist/chat/ui/VisualDialogs.js +251 -20
  120. package/dist/chat/ui/VisualFrame.js +321 -95
  121. package/dist/chat/ui/Welcome.js +72 -7
  122. package/dist/chat/ui/chips.js +1 -1
  123. package/dist/chat/ui/code-lines.js +36 -36
  124. package/dist/chat/ui/code-streaming.js +1 -1
  125. package/dist/chat/ui/code-theme.js +7 -7
  126. package/dist/chat/ui/composer/ComposerControls.js +329 -21
  127. package/dist/chat/ui/composer/ComposerMenu.js +358 -30
  128. package/dist/chat/ui/composer/DraftParts.js +185 -11
  129. package/dist/chat/ui/composer/QueuedMessages.js +138 -13
  130. package/dist/chat/ui/composer/chips.js +29 -19
  131. package/dist/chat/ui/composer/editor.js +79 -63
  132. package/dist/chat/ui/composer/insert.js +26 -12
  133. package/dist/chat/ui/composer/key-handler.js +180 -127
  134. package/dist/chat/ui/composer/keys.js +90 -73
  135. package/dist/chat/ui/composer/menu-aria.js +18 -9
  136. package/dist/chat/ui/composer/placeholder.js +78 -31
  137. package/dist/chat/ui/composer/surface.js +13 -37
  138. package/dist/chat/ui/composer/use-chat-controls.js +230 -90
  139. package/dist/chat/ui/composer/use-compaction-offer.js +50 -18
  140. package/dist/chat/ui/composer/use-composer-draft.js +65 -34
  141. package/dist/chat/ui/composer/use-composer-menus.js +478 -193
  142. package/dist/chat/ui/composer/use-composer-submit.js +251 -109
  143. package/dist/chat/ui/composer/use-continuable-turn.js +33 -6
  144. package/dist/chat/ui/composer/use-draft-files.js +245 -93
  145. package/dist/chat/ui/composer/use-effort-stepper.d.ts +13 -0
  146. package/dist/chat/ui/composer/use-effort-stepper.js +88 -0
  147. package/dist/chat/ui/composer/use-notice.js +61 -16
  148. package/dist/chat/ui/composer/use-pending-requests.js +38 -17
  149. package/dist/chat/ui/composer/use-prompt-history.js +117 -45
  150. package/dist/chat/ui/composer/use-prompt-hold.js +119 -35
  151. package/dist/chat/ui/composer/use-take-back.js +94 -72
  152. package/dist/chat/ui/diff/ApprovalReview.js +101 -23
  153. package/dist/chat/ui/diff/DiffFallbackBoundary.js +21 -13
  154. package/dist/chat/ui/diff/DiffOmitted.js +56 -6
  155. package/dist/chat/ui/diff/DiffStack.js +92 -8
  156. package/dist/chat/ui/diff/DiffUnavailable.js +56 -6
  157. package/dist/chat/ui/diff/EditorEditDiff.js +263 -51
  158. package/dist/chat/ui/diff/EditorPatchDiff.js +39 -14
  159. package/dist/chat/ui/diff/LegacyDiffPool.js +27 -10
  160. package/dist/chat/ui/diff/LegacyEditDiff.js +97 -20
  161. package/dist/chat/ui/diff/LegacyUnifiedDiff.js +172 -42
  162. package/dist/chat/ui/diff/RawDiff.js +65 -5
  163. package/dist/chat/ui/diff/ReviewDiff.js +77 -5
  164. package/dist/chat/ui/diff/diff-props.js +1 -1
  165. package/dist/chat/ui/diff/diff-source-budget.js +46 -35
  166. package/dist/chat/ui/diff/editor-edit-model.js +18 -14
  167. package/dist/chat/ui/diff/review-plan.js +63 -40
  168. package/dist/chat/ui/diff/review-settle.js +24 -9
  169. package/dist/chat/ui/diff/syntax-runtime.js +236 -201
  170. package/dist/chat/ui/diff/use-review-stack.js +146 -25
  171. package/dist/chat/ui/diff-syntax.js +70 -58
  172. package/dist/chat/ui/diff-theme.js +31 -12
  173. package/dist/chat/ui/file-links.js +39 -10
  174. package/dist/chat/ui/find-reveal.js +29 -8
  175. package/dist/chat/ui/full-diff.js +17 -12
  176. package/dist/chat/ui/highlighter.js +143 -113
  177. package/dist/chat/ui/icons.js +16 -7
  178. package/dist/chat/ui/index.js +1 -1
  179. package/dist/chat/ui/intelligent-ui/UiBlockFrame.js +556 -82
  180. package/dist/chat/ui/intelligent-ui/UiFallbackPart.js +73 -5
  181. package/dist/chat/ui/intelligent-ui/UiReply.js +666 -262
  182. package/dist/chat/ui/intelligent-ui/block-local.js +59 -31
  183. package/dist/chat/ui/intelligent-ui/chart-data.js +77 -67
  184. package/dist/chat/ui/intelligent-ui/node-text.js +77 -91
  185. package/dist/chat/ui/intelligent-ui/registry.js +46 -46
  186. package/dist/chat/ui/intelligent-ui/render-context.js +1 -1
  187. package/dist/chat/ui/intelligent-ui/renderers/base-land.js +1 -1
  188. package/dist/chat/ui/intelligent-ui/renderers/binding.js +3 -3
  189. package/dist/chat/ui/intelligent-ui/renderers/chart.js +1223 -123
  190. package/dist/chat/ui/intelligent-ui/renderers/choices.js +312 -34
  191. package/dist/chat/ui/intelligent-ui/renderers/content.js +1241 -86
  192. package/dist/chat/ui/intelligent-ui/renderers/data.js +619 -54
  193. package/dist/chat/ui/intelligent-ui/renderers/inputs.js +868 -67
  194. package/dist/chat/ui/intelligent-ui/renderers/links.js +366 -62
  195. package/dist/chat/ui/intelligent-ui/renderers/map-slots.js +118 -60
  196. package/dist/chat/ui/intelligent-ui/renderers/map-style.js +85 -78
  197. package/dist/chat/ui/intelligent-ui/renderers/map-view.js +282 -217
  198. package/dist/chat/ui/intelligent-ui/renderers/map.js +621 -69
  199. package/dist/chat/ui/intelligent-ui/renderers/place-point.js +15 -8
  200. package/dist/chat/ui/intelligent-ui/renderers/structure.js +262 -20
  201. package/dist/chat/ui/intelligent-ui/renderers/text.js +674 -49
  202. package/dist/chat/ui/intelligent-ui/reply-parts.js +24 -15
  203. package/dist/chat/ui/intelligent-ui/table-data.js +97 -57
  204. package/dist/chat/ui/intelligent-ui/tones.js +31 -31
  205. package/dist/chat/ui/intelligent-ui/use-in-view.js +30 -12
  206. package/dist/chat/ui/intelligent-ui/use-later.js +28 -13
  207. package/dist/chat/ui/intelligent-ui/use-truncated.js +45 -21
  208. package/dist/chat/ui/intelligent-ui/use-ui-links.js +296 -109
  209. package/dist/chat/ui/intelligent-ui/use-ui-queries.js +256 -246
  210. package/dist/chat/ui/markdown-blocks.js +296 -262
  211. package/dist/chat/ui/mermaid.d.ts +8 -20
  212. package/dist/chat/ui/mermaid.js +47 -84
  213. package/dist/chat/ui/quote-selection.js +32 -29
  214. package/dist/chat/ui/rehype-chips.js +35 -23
  215. package/dist/chat/ui/rehype-fade.js +28 -17
  216. package/dist/chat/ui/remark-html-as-text.js +22 -15
  217. package/dist/chat/ui/reply-context.js +1 -1
  218. package/dist/chat/ui/reveal.js +161 -72
  219. package/dist/chat/ui/rows/ForksRow.js +226 -24
  220. package/dist/chat/ui/rows/GeneratedImageRow.js +541 -87
  221. package/dist/chat/ui/rows/MessageRows.js +1706 -159
  222. package/dist/chat/ui/rows/RowContainer.js +57 -7
  223. package/dist/chat/ui/rows/Rows.js +463 -54
  224. package/dist/chat/ui/rows/SubagentRow.js +577 -60
  225. package/dist/chat/ui/rows/TaskRow.js +359 -40
  226. package/dist/chat/ui/rows/VisualRow.js +233 -11
  227. package/dist/chat/ui/rows/WorkRows.d.ts +3 -0
  228. package/dist/chat/ui/rows/WorkRows.js +1945 -164
  229. package/dist/chat/ui/rows/WorkflowRow.js +756 -37
  230. package/dist/chat/ui/rows/row-rhythm.js +27 -17
  231. package/dist/chat/ui/theme-watch.js +26 -23
  232. package/dist/chat/ui/timestamp-format.js +4 -1
  233. package/dist/chat/ui/use-diff-source-tokens.js +70 -34
  234. package/dist/chat/ui/useToggleSet.js +51 -19
  235. package/dist/chat/ui/visual-theme.js +153 -128
  236. package/dist/chat/visual-bridge.js +123 -123
  237. package/dist/chat/visual-viewport.js +94 -83
  238. package/dist/chat/visuals.js +13 -5
  239. package/dist/host-hooks.d.ts +29 -0
  240. package/dist/host-hooks.js +78 -0
  241. package/dist/host.js +120 -48
  242. package/dist/index.js +1 -1
  243. package/dist/lazy.js +38 -32
  244. package/dist/locales/en/agent-chat.d.ts +42 -0
  245. package/dist/locales/en/agent-chat.js +755 -713
  246. package/dist/locales/en/agent-prompts.js +42 -42
  247. package/dist/locales/en/agent-providers.d.ts +1 -0
  248. package/dist/locales/en/agent-providers.js +166 -165
  249. package/dist/locales/en/agent-usage.d.ts +6 -0
  250. package/dist/locales/en/agent-usage.js +129 -123
  251. package/dist/locales/nl/agent-chat.d.ts +42 -0
  252. package/dist/locales/nl/agent-chat.js +755 -713
  253. package/dist/locales/nl/agent-prompts.js +42 -42
  254. package/dist/locales/nl/agent-providers.d.ts +1 -0
  255. package/dist/locales/nl/agent-providers.js +166 -165
  256. package/dist/locales/nl/agent-usage.d.ts +6 -0
  257. package/dist/locales/nl/agent-usage.js +129 -123
  258. package/dist/locales.js +14 -14
  259. package/dist/mounted-registry.js +31 -30
  260. package/dist/port-transport.js +122 -111
  261. package/dist/prompts/index.js +1 -1
  262. package/dist/prompts/logic/focus.js +15 -14
  263. package/dist/prompts/logic/keys.js +93 -59
  264. package/dist/prompts/logic/prompts.js +27 -14
  265. package/dist/prompts/logic/subjects.js +60 -46
  266. package/dist/prompts/logic/useFocusAfterAnswer.js +60 -20
  267. package/dist/prompts/logic/usePromptSession.js +88 -77
  268. package/dist/prompts/ui/ApprovalBody.js +246 -27
  269. package/dist/prompts/ui/PromptActions.js +215 -9
  270. package/dist/prompts/ui/PromptCard.js +215 -36
  271. package/dist/prompts/ui/PromptView.js +372 -34
  272. package/dist/prompts/ui/QuestionBody.js +269 -73
  273. package/dist/providers/AccountColors.js +36 -5
  274. package/dist/providers/AccountDetail.js +683 -50
  275. package/dist/providers/AccountVariables.js +139 -32
  276. package/dist/providers/AddAccountForm.js +125 -38
  277. package/dist/providers/CliDetail.js +343 -36
  278. package/dist/providers/InstallPage.js +644 -59
  279. package/dist/providers/ProviderList.d.ts +2 -1
  280. package/dist/providers/ProviderList.js +215 -23
  281. package/dist/providers/ProvidersPane.d.ts +4 -2
  282. package/dist/providers/ProvidersPane.js +244 -64
  283. package/dist/providers/account-actions.js +54 -30
  284. package/dist/providers/index.js +1 -1
  285. package/dist/providers/install-steps.js +12 -9
  286. package/dist/providers/pane-target.d.ts +3 -0
  287. package/dist/providers/pane-target.js +34 -13
  288. package/dist/providers/parts.js +62 -12
  289. package/dist/providers/provider-abilities.js +5 -5
  290. package/dist/providers/provider-groups.js +75 -40
  291. package/dist/providers/variables.js +73 -39
  292. package/dist/scope.js +6 -6
  293. package/dist/settings/sections.js +18 -18
  294. package/dist/state/chats.js +404 -192
  295. package/dist/state/index.js +1 -1
  296. package/dist/state/provider-accounts.js +70 -47
  297. package/dist/state/providers.js +45 -16
  298. package/dist/state/usage.js +154 -77
  299. package/dist/storage.js +69 -68
  300. package/dist/testing/index.js +1 -1
  301. package/dist/testing/prompts.js +105 -67
  302. package/dist/transport.js +10 -10
  303. package/dist/ui/PlainTextarea.js +27 -3
  304. package/dist/usage/LimitsList.js +646 -40
  305. package/dist/usage/UsageBreakdown.js +879 -38
  306. package/dist/usage/UsageChart.js +311 -32
  307. package/dist/usage/UsageDialog.js +46 -4
  308. package/dist/usage/UsageLimits.js +467 -34
  309. package/dist/usage/UsageLimitsCard.js +95 -11
  310. package/dist/usage/UsagePage.js +817 -96
  311. package/dist/usage/UsagePane.js +164 -10
  312. package/dist/usage/UsageSummary.js +151 -6
  313. package/dist/usage/UsageTiles.js +164 -14
  314. package/dist/usage/format.js +32 -32
  315. package/dist/usage/index.d.ts +1 -1
  316. package/dist/usage/index.js +2 -1
  317. package/dist/usage/limit-groups.d.ts +2 -0
  318. package/dist/usage/limit-groups.js +77 -59
  319. package/dist/usage/limits.js +78 -43
  320. package/dist/usage/money.js +20 -4
  321. package/dist/usage/summary.js +85 -64
  322. package/package.json +9 -9
  323. package/src/agents/ModelOptionControl.tsx +3 -1
  324. package/src/agents/option-words.ts +27 -0
  325. package/src/chat/account-choice.ts +41 -1
  326. package/src/chat/composer-effort.ts +32 -0
  327. package/src/chat/forks.ts +4 -5
  328. package/src/chat/index.ts +3 -1
  329. package/src/chat/logic/effort.ts +32 -0
  330. package/src/chat/logic/picker-entries.ts +45 -10
  331. package/src/chat/logic/resume-compaction.ts +95 -17
  332. package/src/chat/logic/timeline.ts +11 -3
  333. package/src/chat/logic/workflow.ts +86 -4
  334. package/src/chat/preferences.ts +35 -0
  335. package/src/chat/subagent-view.ts +2 -3
  336. package/src/chat/ui/AnsiOutput.tsx +1 -2
  337. package/src/chat/ui/BookmarkSubmenu.tsx +3 -3
  338. package/src/chat/ui/ChatActivity.tsx +14 -22
  339. package/src/chat/ui/ChatReferenceChip.tsx +2 -3
  340. package/src/chat/ui/Composer.tsx +15 -7
  341. package/src/chat/ui/EditDiff.tsx +2 -3
  342. package/src/chat/ui/LimitState.tsx +2 -2
  343. package/src/chat/ui/Markdown.tsx +10 -8
  344. package/src/chat/ui/MermaidBlock.tsx +57 -49
  345. package/src/chat/ui/Pickers.tsx +49 -29
  346. package/src/chat/ui/PromptComposer.tsx +7 -9
  347. package/src/chat/ui/ResumeCompactionDock.tsx +16 -4
  348. package/src/chat/ui/RunSettings.tsx +67 -28
  349. package/src/chat/ui/Scrubber.tsx +3 -3
  350. package/src/chat/ui/ShellCommand.tsx +2 -0
  351. package/src/chat/ui/SubagentInfo.tsx +2 -3
  352. package/src/chat/ui/SubagentTimeline.tsx +12 -16
  353. package/src/chat/ui/Timeline.tsx +6 -6
  354. package/src/chat/ui/UnifiedDiff.tsx +3 -4
  355. package/src/chat/ui/VisualFrame.tsx +5 -8
  356. package/src/chat/ui/code-theme.ts +4 -4
  357. package/src/chat/ui/composer/placeholder.ts +2 -2
  358. package/src/chat/ui/composer/use-compaction-offer.ts +36 -16
  359. package/src/chat/ui/composer/use-composer-menus.ts +4 -9
  360. package/src/chat/ui/composer/use-composer-submit.ts +2 -1
  361. package/src/chat/ui/composer/use-effort-stepper.ts +56 -0
  362. package/src/chat/ui/composer/use-notice.ts +2 -2
  363. package/src/chat/ui/diff/EditorEditDiff.tsx +9 -13
  364. package/src/chat/ui/diff/LegacyEditDiff.tsx +12 -17
  365. package/src/chat/ui/diff/LegacyUnifiedDiff.tsx +13 -21
  366. package/src/chat/ui/diff/use-review-stack.ts +4 -4
  367. package/src/chat/ui/diff-theme.ts +3 -3
  368. package/src/chat/ui/file-links.ts +2 -2
  369. package/src/chat/ui/intelligent-ui/UiReply.tsx +2 -0
  370. package/src/chat/ui/intelligent-ui/renderers/chart.tsx +3 -3
  371. package/src/chat/ui/intelligent-ui/renderers/content.tsx +5 -6
  372. package/src/chat/ui/intelligent-ui/renderers/map-view.tsx +2 -1
  373. package/src/chat/ui/intelligent-ui/renderers/map.tsx +2 -1
  374. package/src/chat/ui/intelligent-ui/use-truncated.ts +16 -19
  375. package/src/chat/ui/intelligent-ui/use-ui-links.ts +3 -3
  376. package/src/chat/ui/mermaid.ts +52 -96
  377. package/src/chat/ui/rows/ForksRow.tsx +3 -5
  378. package/src/chat/ui/rows/GeneratedImageRow.tsx +2 -1
  379. package/src/chat/ui/rows/MessageRows.tsx +12 -21
  380. package/src/chat/ui/rows/SubagentRow.tsx +3 -3
  381. package/src/chat/ui/rows/TaskRow.tsx +1 -1
  382. package/src/chat/ui/rows/WorkRows.tsx +11 -6
  383. package/src/chat/ui/rows/WorkflowRow.tsx +144 -54
  384. package/src/chat/ui/useToggleSet.ts +15 -18
  385. package/src/chat/ui/visual-theme.ts +2 -3
  386. package/src/host-hooks.ts +113 -0
  387. package/src/lazy.tsx +2 -0
  388. package/src/locales/en/agent-chat.ts +142 -108
  389. package/src/locales/en/agent-prompts.ts +7 -7
  390. package/src/locales/en/agent-providers.ts +35 -34
  391. package/src/locales/en/agent-usage.ts +26 -20
  392. package/src/locales/nl/agent-chat.ts +134 -100
  393. package/src/locales/nl/agent-prompts.ts +5 -5
  394. package/src/locales/nl/agent-providers.ts +33 -32
  395. package/src/locales/nl/agent-usage.ts +25 -20
  396. package/src/providers/CliDetail.tsx +2 -1
  397. package/src/providers/InstallPage.tsx +2 -4
  398. package/src/providers/ProviderList.tsx +12 -2
  399. package/src/providers/ProvidersPane.tsx +45 -15
  400. package/src/providers/pane-target.ts +20 -4
  401. package/src/state/chats.ts +2 -2
  402. package/src/usage/LimitsList.tsx +12 -13
  403. package/src/usage/UsageBreakdown.tsx +17 -6
  404. package/src/usage/UsageLimits.tsx +2 -1
  405. package/src/usage/UsagePage.tsx +3 -3
  406. package/src/usage/index.ts +1 -1
  407. package/src/usage/limit-groups.ts +12 -0
  408. package/src/usage/limits.ts +2 -2
  409. package/src/usage/money.ts +1 -2
@@ -1,151 +1,181 @@
1
+ import { c as _c } from "react/compiler-runtime";
1
2
  import { useChatHost } from '../../host.js';
2
3
  import { shikiThemeOf } from './code-theme.js';
3
4
  // A plain language needs no grammar; shiki draws it in the theme's own foreground.
4
5
  const PLAIN = 'text';
5
6
  /* Plain text when the highlighter has no grammar for `lang`, as a bundle without that language answers. */
6
7
  async function grammarOf(loaded, lang) {
7
- if (lang === PLAIN || loaded.getLoadedLanguages().includes(lang)) {
8
- return lang;
9
- }
10
- try {
11
- await loaded.loadLanguage(lang);
12
- return lang;
13
- }
14
- catch {
15
- return PLAIN;
16
- }
8
+ if (lang === PLAIN || loaded.getLoadedLanguages().includes(lang)) {
9
+ return lang;
10
+ }
11
+ try {
12
+ await loaded.loadLanguage(lang);
13
+ return lang;
14
+ } catch {
15
+ return PLAIN;
16
+ }
17
17
  }
18
18
  function createCodeHighlighter(source) {
19
- let highlighter = null;
20
- let highlighterLoad = null;
21
- const languages = new Map();
22
- const languageLoads = new Map();
23
- const themes = new Set();
24
- const themeLoads = new Map();
25
- const tokenizers = new Map();
26
- const load = () => {
27
- highlighterLoad ??= source().then((loaded) => {
28
- highlighter = loaded;
29
- return loaded;
19
+ let highlighter = null;
20
+ let highlighterLoad = null;
21
+ const languages = new Map();
22
+ const languageLoads = new Map();
23
+ const themes = new Set();
24
+ const themeLoads = new Map();
25
+ const tokenizers = new Map();
26
+ const load = () => {
27
+ highlighterLoad ??= source().then(loaded => {
28
+ highlighter = loaded;
29
+ return loaded;
30
+ });
31
+ return highlighterLoad;
32
+ };
33
+ const ready = (langs, theme) => {
34
+ if (highlighter === null || !themes.has(theme)) {
35
+ return null;
36
+ }
37
+ for (const lang of langs) {
38
+ if (!languages.has(lang)) {
39
+ return null;
40
+ }
41
+ }
42
+ return highlighter;
43
+ };
44
+ const language = lang => languages.get(lang) ?? PLAIN;
45
+ return {
46
+ loadLanguage(lang) {
47
+ let pending = languageLoads.get(lang);
48
+ if (!pending) {
49
+ pending = load().then(async loaded => {
50
+ languages.set(lang, await grammarOf(loaded, lang));
51
+ });
52
+ languageLoads.set(lang, pending);
53
+ }
54
+ return pending;
55
+ },
56
+ loadTheme(theme, custom) {
57
+ let pending = themeLoads.get(theme);
58
+ if (!pending) {
59
+ pending = load().then(async loaded => {
60
+ // Loading a theme the highlighter already has replaces it, under whatever else of the host draws with it.
61
+ if (!loaded.getLoadedThemes().includes(theme)) {
62
+ await loaded.loadTheme(shikiThemeOf(theme, custom));
63
+ }
64
+ themes.add(theme);
30
65
  });
31
- return highlighterLoad;
32
- };
33
- const ready = (langs, theme) => {
34
- if (highlighter === null || !themes.has(theme)) {
35
- return null;
36
- }
37
- for (const lang of langs) {
38
- if (!languages.has(lang)) {
39
- return null;
40
- }
41
- }
42
- return highlighter;
43
- };
44
- const language = (lang) => languages.get(lang) ?? PLAIN;
45
- return {
46
- loadLanguage(lang) {
47
- let pending = languageLoads.get(lang);
48
- if (!pending) {
49
- pending = load().then(async (loaded) => {
50
- languages.set(lang, await grammarOf(loaded, lang));
51
- });
52
- languageLoads.set(lang, pending);
53
- }
54
- return pending;
55
- },
56
- loadTheme(theme, custom) {
57
- let pending = themeLoads.get(theme);
58
- if (!pending) {
59
- pending = load().then(async (loaded) => {
60
- // Loading a theme the highlighter already has replaces it, under whatever else of the host draws with it.
61
- if (!loaded.getLoadedThemes().includes(theme)) {
62
- await loaded.loadTheme(shikiThemeOf(theme, custom));
63
- }
64
- themes.add(theme);
65
- });
66
- themeLoads.set(theme, pending);
67
- }
68
- return pending;
69
- },
70
- ready,
71
- language,
72
- tokenizer(lang, theme) {
73
- const loaded = ready([lang], theme);
74
- if (loaded === null) {
75
- return null;
76
- }
77
- const resolved = language(lang);
78
- const key = `${resolved}:${theme}`;
79
- let entry = tokenizers.get(key);
80
- if (!entry) {
81
- const options = { lang: resolved, theme };
82
- entry = {
83
- tokenize: (code, state) => {
84
- const result = loaded.codeToTokens(code, state ? { ...options, grammarState: state } : options);
85
- return { lines: result.tokens, state: result.grammarState };
86
- },
87
- fg: loaded.getTheme(theme).fg
88
- };
89
- tokenizers.set(key, entry);
90
- }
91
- return entry;
92
- }
93
- };
66
+ themeLoads.set(theme, pending);
67
+ }
68
+ return pending;
69
+ },
70
+ ready,
71
+ language,
72
+ tokenizer(lang, theme) {
73
+ const loaded = ready([lang], theme);
74
+ if (loaded === null) {
75
+ return null;
76
+ }
77
+ const resolved = language(lang);
78
+ const key = `${resolved}:${theme}`;
79
+ let entry = tokenizers.get(key);
80
+ if (!entry) {
81
+ const options = {
82
+ lang: resolved,
83
+ theme
84
+ };
85
+ entry = {
86
+ tokenize: (code, state) => {
87
+ const result = loaded.codeToTokens(code, state ? {
88
+ ...options,
89
+ grammarState: state
90
+ } : options);
91
+ return {
92
+ lines: result.tokens,
93
+ state: result.grammarState
94
+ };
95
+ },
96
+ fg: loaded.getTheme(theme).fg
97
+ };
98
+ tokenizers.set(key, entry);
99
+ }
100
+ return entry;
101
+ }
102
+ };
94
103
  }
95
104
  // Shiki loads on the first code it draws, not with the app; the web bundle covers the languages a coding agent writes.
96
105
  function loadBundled() {
97
- return import('shiki/bundle/web').then(({ createHighlighter }) => createHighlighter({ themes: [], langs: [] }));
106
+ return import('shiki/bundle/web').then(({
107
+ createHighlighter
108
+ }) => createHighlighter({
109
+ themes: [],
110
+ langs: []
111
+ }));
98
112
  }
99
113
  let bundled = null;
100
114
  const borrowed = new WeakMap();
101
115
  /* The highlighter a host lends, which stays the host's, or without one the web bundle's of this package. */
102
116
  export function codeHighlighter(source) {
103
- if (source === undefined) {
104
- bundled ??= createCodeHighlighter(loadBundled);
105
- return bundled;
106
- }
107
- let highlighter = borrowed.get(source);
108
- if (highlighter === undefined) {
109
- highlighter = createCodeHighlighter(source);
110
- borrowed.set(source, highlighter);
111
- }
112
- return highlighter;
117
+ if (source === undefined) {
118
+ bundled ??= createCodeHighlighter(loadBundled);
119
+ return bundled;
120
+ }
121
+ let highlighter = borrowed.get(source);
122
+ if (highlighter === undefined) {
123
+ highlighter = createCodeHighlighter(source);
124
+ borrowed.set(source, highlighter);
125
+ }
126
+ return highlighter;
113
127
  }
114
128
  /* The code highlighter of the host this is rendered under. */
115
129
  export function useCodeHighlighter() {
116
- return codeHighlighter(useChatHost().code.highlighter);
130
+ const $ = _c(2);
131
+ const t0 = useChatHost();
132
+ let t1;
133
+ if ($[0] !== t0.code.highlighter) {
134
+ t1 = codeHighlighter(t0.code.highlighter);
135
+ $[0] = t0.code.highlighter;
136
+ $[1] = t1;
137
+ } else {
138
+ t1 = $[1];
139
+ }
140
+ return t1;
117
141
  }
118
142
  /* Loads the grammar of one language into the web bundle's highlighter, once. */
119
143
  export function loadLanguage(lang) {
120
- return codeHighlighter().loadLanguage(lang);
144
+ return codeHighlighter().loadLanguage(lang);
121
145
  }
122
146
  /* Loads a theme into the web bundle's highlighter, once: one of `custom` by its name, or a bundled one by its id. */
123
147
  export function loadTheme(theme, custom) {
124
- return codeHighlighter().loadTheme(theme, custom);
148
+ return codeHighlighter().loadTheme(theme, custom);
125
149
  }
126
150
  /* The web bundle's highlighter once every one of `langs` and `theme` is in, or null while one is still on its way. */
127
151
  export function readyHighlighter(langs, theme) {
128
- return codeHighlighter().ready(langs, theme);
152
+ return codeHighlighter().ready(langs, theme);
129
153
  }
130
154
  /* The language the web bundle draws `lang` in: the bundled grammar, or plain text. Only meaningful once a load settled. */
131
155
  export function loadedLanguage(lang) {
132
- return codeHighlighter().language(lang);
156
+ return codeHighlighter().language(lang);
133
157
  }
134
158
  /* The web bundle's tokenizer for a language in a theme, or null while shiki, the grammar or the theme is still on its way. */
135
159
  export function tokenizerFor(lang, theme) {
136
- return codeHighlighter().tokenizer(lang, theme);
160
+ return codeHighlighter().tokenizer(lang, theme);
137
161
  }
138
162
  /* The inline style of one token; undefined when it only has the surrounding color. */
139
163
  export function tokenStyle(token) {
140
- const style = token.fontStyle ?? 0;
141
- if (token.color === undefined && style <= 0) {
142
- return undefined;
143
- }
144
- const decorations = [style & 4 ? 'underline' : '', style & 8 ? 'line-through' : ''].filter(Boolean).join(' ');
145
- return {
146
- color: token.color,
147
- ...(style & 1 ? { fontStyle: 'italic' } : {}),
148
- ...(style & 2 ? { fontWeight: 'bold' } : {}),
149
- ...(decorations ? { textDecoration: decorations } : {})
150
- };
151
- }
164
+ const style = token.fontStyle ?? 0;
165
+ if (token.color === undefined && style <= 0) {
166
+ return undefined;
167
+ }
168
+ const decorations = [style & 4 ? 'underline' : '', style & 8 ? 'line-through' : ''].filter(Boolean).join(' ');
169
+ return {
170
+ color: token.color,
171
+ ...(style & 1 ? {
172
+ fontStyle: 'italic'
173
+ } : {}),
174
+ ...(style & 2 ? {
175
+ fontWeight: 'bold'
176
+ } : {}),
177
+ ...(decorations ? {
178
+ textDecoration: decorations
179
+ } : {})
180
+ };
181
+ }
@@ -1,7 +1,7 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
1
  import { Hammer, Wrench } from 'lucide-react';
3
2
  import { toolEntry } from '../logic/tool-catalog.js';
4
3
  import { Icon } from '@adecore/ui';
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
5
  const SIZE = 12;
6
6
  /* A pending dock draws its mark a step up from the lines of a transcript, at the size a sidebar
7
7
  row uses, because it is a thing to answer rather than a thing to read past. */
@@ -12,9 +12,18 @@ export const DOCK_ICON_SIZE = 14;
12
12
  export const ROW_GUTTER = 'grid h-5 w-4 shrink-0 place-items-center';
13
13
  /* The icon that says what a tool call is about; unknown tools get the wrench. */
14
14
  export function toolIcon(name, size = SIZE) {
15
- const known = toolEntry(name);
16
- if (known !== undefined) {
17
- return _jsx(Icon, { icon: known.icon, size: size });
18
- }
19
- return name.startsWith('mcp__') ? _jsx(Icon, { icon: Hammer, size: size }) : _jsx(Icon, { icon: Wrench, size: size });
20
- }
15
+ const known = toolEntry(name);
16
+ if (known !== undefined) {
17
+ return /*#__PURE__*/_jsx(Icon, {
18
+ icon: known.icon,
19
+ size: size
20
+ });
21
+ }
22
+ return name.startsWith('mcp__') ? /*#__PURE__*/_jsx(Icon, {
23
+ icon: Hammer,
24
+ size: size
25
+ }) : /*#__PURE__*/_jsx(Icon, {
26
+ icon: Wrench,
27
+ size: size
28
+ });
29
+ }
@@ -42,4 +42,4 @@ export { ReportRow, AssistantRow, NoteRow, AgentTurnRow, CompactionRow } from '.
42
42
  export { TaskRow } from './rows/TaskRow.js';
43
43
  export { WorkRow, WorkGroupRow, WorkingRow } from './rows/WorkRows.js';
44
44
  export { WorkflowRow } from './rows/WorkflowRow.js';
45
- export { useDiffSourceTokens } from './use-diff-source-tokens.js';
45
+ export { useDiffSourceTokens } from './use-diff-source-tokens.js';