@adecore/agents-react 0.31.11 → 0.32.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 (404) hide show
  1. package/dist/agents/AccountDot.js +57 -6
  2. package/dist/agents/AgentIcon.js +88 -12
  3. package/dist/agents/ModelOptionControl.js +153 -18
  4. package/dist/agents/ProviderLogo.js +49 -4
  5. package/dist/agents/account-limits.js +17 -14
  6. package/dist/agents/accounts.js +99 -67
  7. package/dist/agents/agent-marks.js +5 -3
  8. package/dist/agents/model-name.js +42 -31
  9. package/dist/agents/model-options.js +8 -8
  10. package/dist/agents/model-requirement.js +17 -14
  11. package/dist/agents/option-words.d.ts +7 -0
  12. package/dist/agents/option-words.js +35 -0
  13. package/dist/agents/provider-paths.js +6 -6
  14. package/dist/agents/status-look.js +32 -12
  15. package/dist/chat/account-choice.d.ts +13 -0
  16. package/dist/chat/account-choice.js +90 -20
  17. package/dist/chat/actions.js +126 -59
  18. package/dist/chat/activity.js +5 -5
  19. package/dist/chat/attachments.js +74 -53
  20. package/dist/chat/bookmarks.js +58 -48
  21. package/dist/chat/chat-client.js +344 -263
  22. package/dist/chat/chat-references.js +3 -3
  23. package/dist/chat/composer-effort.d.ts +5 -0
  24. package/dist/chat/composer-effort.js +26 -0
  25. package/dist/chat/composer-send.js +13 -13
  26. package/dist/chat/drafts.js +115 -79
  27. package/dist/chat/forks.js +81 -24
  28. package/dist/chat/guards.js +15 -43
  29. package/dist/chat/index.d.ts +3 -1
  30. package/dist/chat/index.js +3 -2
  31. package/dist/chat/logic/ansi.js +170 -167
  32. package/dist/chat/logic/answers.js +2 -2
  33. package/dist/chat/logic/bookmarks.js +19 -19
  34. package/dist/chat/logic/command-looks.js +138 -96
  35. package/dist/chat/logic/context-usage.js +13 -9
  36. package/dist/chat/logic/continue-after-stop.js +15 -19
  37. package/dist/chat/logic/effort.d.ts +14 -0
  38. package/dist/chat/logic/effort.js +34 -0
  39. package/dist/chat/logic/embedded-code.js +387 -326
  40. package/dist/chat/logic/fork.js +134 -110
  41. package/dist/chat/logic/generated-image.js +54 -23
  42. package/dist/chat/logic/goal.js +28 -20
  43. package/dist/chat/logic/handback.js +6 -6
  44. package/dist/chat/logic/json.js +2 -2
  45. package/dist/chat/logic/limit.js +46 -30
  46. package/dist/chat/logic/picker-entries.d.ts +5 -3
  47. package/dist/chat/logic/picker-entries.js +83 -43
  48. package/dist/chat/logic/resume-compaction.d.ts +14 -1
  49. package/dist/chat/logic/resume-compaction.js +93 -24
  50. package/dist/chat/logic/scrubber.js +188 -136
  51. package/dist/chat/logic/thought.js +13 -16
  52. package/dist/chat/logic/thread-cards.js +60 -48
  53. package/dist/chat/logic/timeline-copy.js +30 -38
  54. package/dist/chat/logic/timeline-target.js +92 -63
  55. package/dist/chat/logic/timeline.js +499 -355
  56. package/dist/chat/logic/tool-catalog.js +54 -34
  57. package/dist/chat/logic/tools.js +106 -82
  58. package/dist/chat/logic/visual-height.js +18 -18
  59. package/dist/chat/logic/visual-viewport.js +6 -3
  60. package/dist/chat/logic/welcome.js +9 -9
  61. package/dist/chat/logic/workflow.js +45 -34
  62. package/dist/chat/mentions.js +149 -109
  63. package/dist/chat/persisted-json.js +51 -54
  64. package/dist/chat/preferences.d.ts +4 -0
  65. package/dist/chat/preferences.js +162 -84
  66. package/dist/chat/prompt-hold.js +9 -9
  67. package/dist/chat/quote.js +21 -30
  68. package/dist/chat/reading-width.js +12 -10
  69. package/dist/chat/recent-messages.js +34 -21
  70. package/dist/chat/resume-compaction-dismissals.js +25 -5
  71. package/dist/chat/runtime-modes.js +3 -3
  72. package/dist/chat/send-key.js +11 -7
  73. package/dist/chat/stash.js +89 -69
  74. package/dist/chat/subagent-conversation.js +181 -139
  75. package/dist/chat/subagent-list.js +65 -67
  76. package/dist/chat/subagent-support.js +12 -7
  77. package/dist/chat/subagent-view.js +132 -44
  78. package/dist/chat/thumbnails.js +88 -60
  79. package/dist/chat/timeline-flash.js +24 -12
  80. package/dist/chat/timeline-scroll.js +116 -86
  81. package/dist/chat/ui/AccountPill.js +126 -15
  82. package/dist/chat/ui/AnsiOutput.js +62 -6
  83. package/dist/chat/ui/BookmarkMarker.js +231 -41
  84. package/dist/chat/ui/BookmarkSubmenu.js +165 -18
  85. package/dist/chat/ui/ChatActivity.js +649 -70
  86. package/dist/chat/ui/ChatReferenceChip.js +104 -9
  87. package/dist/chat/ui/CodeBlock.js +132 -58
  88. package/dist/chat/ui/Composer.js +866 -132
  89. package/dist/chat/ui/ComposerInput.js +309 -120
  90. package/dist/chat/ui/DiffPool.js +75 -14
  91. package/dist/chat/ui/EditDiff.js +160 -21
  92. package/dist/chat/ui/FadingWords.js +32 -3
  93. package/dist/chat/ui/GoalDock.js +235 -42
  94. package/dist/chat/ui/ImageView.js +617 -61
  95. package/dist/chat/ui/LimitState.js +446 -72
  96. package/dist/chat/ui/Markdown.js +991 -173
  97. package/dist/chat/ui/MermaidBlock.js +238 -68
  98. package/dist/chat/ui/MessageActions.js +251 -39
  99. package/dist/chat/ui/ModelMarks.js +55 -5
  100. package/dist/chat/ui/Pickers.js +664 -113
  101. package/dist/chat/ui/PromptComposer.js +281 -51
  102. package/dist/chat/ui/QuoteButton.js +151 -57
  103. package/dist/chat/ui/ResumeCompactionDock.d.ts +6 -2
  104. package/dist/chat/ui/ResumeCompactionDock.js +141 -6
  105. package/dist/chat/ui/RowTime.js +59 -5
  106. package/dist/chat/ui/RunSettings.js +1744 -154
  107. package/dist/chat/ui/Scrubber.js +517 -88
  108. package/dist/chat/ui/ShellCommand.js +183 -107
  109. package/dist/chat/ui/SubagentControls.js +212 -24
  110. package/dist/chat/ui/SubagentInfo.js +170 -13
  111. package/dist/chat/ui/SubagentStopButton.js +115 -24
  112. package/dist/chat/ui/SubagentTimeline.js +357 -91
  113. package/dist/chat/ui/Timeline.js +988 -476
  114. package/dist/chat/ui/TimelineMenu.js +552 -37
  115. package/dist/chat/ui/UnifiedDiff.js +234 -27
  116. package/dist/chat/ui/UploadThumb.js +37 -7
  117. package/dist/chat/ui/VisualDialogs.js +251 -20
  118. package/dist/chat/ui/VisualFrame.js +321 -95
  119. package/dist/chat/ui/Welcome.js +72 -7
  120. package/dist/chat/ui/chips.js +1 -1
  121. package/dist/chat/ui/code-lines.js +36 -36
  122. package/dist/chat/ui/code-streaming.js +1 -1
  123. package/dist/chat/ui/code-theme.js +7 -7
  124. package/dist/chat/ui/composer/ComposerControls.js +329 -21
  125. package/dist/chat/ui/composer/ComposerMenu.js +358 -30
  126. package/dist/chat/ui/composer/DraftParts.js +185 -11
  127. package/dist/chat/ui/composer/QueuedMessages.js +138 -13
  128. package/dist/chat/ui/composer/chips.js +29 -19
  129. package/dist/chat/ui/composer/editor.js +79 -63
  130. package/dist/chat/ui/composer/insert.js +26 -12
  131. package/dist/chat/ui/composer/key-handler.js +180 -127
  132. package/dist/chat/ui/composer/keys.js +90 -73
  133. package/dist/chat/ui/composer/menu-aria.js +18 -9
  134. package/dist/chat/ui/composer/placeholder.js +78 -31
  135. package/dist/chat/ui/composer/surface.js +13 -37
  136. package/dist/chat/ui/composer/use-chat-controls.js +230 -90
  137. package/dist/chat/ui/composer/use-compaction-offer.js +50 -18
  138. package/dist/chat/ui/composer/use-composer-draft.js +65 -34
  139. package/dist/chat/ui/composer/use-composer-menus.js +478 -193
  140. package/dist/chat/ui/composer/use-composer-submit.js +251 -109
  141. package/dist/chat/ui/composer/use-continuable-turn.js +33 -6
  142. package/dist/chat/ui/composer/use-draft-files.js +245 -93
  143. package/dist/chat/ui/composer/use-effort-stepper.d.ts +13 -0
  144. package/dist/chat/ui/composer/use-effort-stepper.js +88 -0
  145. package/dist/chat/ui/composer/use-notice.js +61 -16
  146. package/dist/chat/ui/composer/use-pending-requests.js +38 -17
  147. package/dist/chat/ui/composer/use-prompt-history.js +117 -45
  148. package/dist/chat/ui/composer/use-prompt-hold.js +119 -35
  149. package/dist/chat/ui/composer/use-take-back.js +94 -72
  150. package/dist/chat/ui/diff/ApprovalReview.js +101 -23
  151. package/dist/chat/ui/diff/DiffFallbackBoundary.js +21 -13
  152. package/dist/chat/ui/diff/DiffOmitted.js +56 -6
  153. package/dist/chat/ui/diff/DiffStack.js +92 -8
  154. package/dist/chat/ui/diff/DiffUnavailable.js +56 -6
  155. package/dist/chat/ui/diff/EditorEditDiff.js +263 -51
  156. package/dist/chat/ui/diff/EditorPatchDiff.js +39 -14
  157. package/dist/chat/ui/diff/LegacyDiffPool.js +27 -10
  158. package/dist/chat/ui/diff/LegacyEditDiff.js +97 -20
  159. package/dist/chat/ui/diff/LegacyUnifiedDiff.js +172 -42
  160. package/dist/chat/ui/diff/RawDiff.js +65 -5
  161. package/dist/chat/ui/diff/ReviewDiff.js +77 -5
  162. package/dist/chat/ui/diff/diff-props.js +1 -1
  163. package/dist/chat/ui/diff/diff-source-budget.js +46 -35
  164. package/dist/chat/ui/diff/editor-edit-model.js +18 -14
  165. package/dist/chat/ui/diff/review-plan.js +63 -40
  166. package/dist/chat/ui/diff/review-settle.js +24 -9
  167. package/dist/chat/ui/diff/syntax-runtime.js +236 -201
  168. package/dist/chat/ui/diff/use-review-stack.js +146 -25
  169. package/dist/chat/ui/diff-syntax.js +70 -58
  170. package/dist/chat/ui/diff-theme.js +31 -12
  171. package/dist/chat/ui/file-links.js +39 -10
  172. package/dist/chat/ui/find-reveal.js +29 -8
  173. package/dist/chat/ui/full-diff.js +17 -12
  174. package/dist/chat/ui/highlighter.js +143 -113
  175. package/dist/chat/ui/icons.js +16 -7
  176. package/dist/chat/ui/index.js +1 -1
  177. package/dist/chat/ui/intelligent-ui/UiBlockFrame.js +556 -82
  178. package/dist/chat/ui/intelligent-ui/UiFallbackPart.js +73 -5
  179. package/dist/chat/ui/intelligent-ui/UiReply.js +666 -262
  180. package/dist/chat/ui/intelligent-ui/block-local.js +59 -31
  181. package/dist/chat/ui/intelligent-ui/chart-data.js +77 -67
  182. package/dist/chat/ui/intelligent-ui/node-text.js +77 -91
  183. package/dist/chat/ui/intelligent-ui/registry.js +46 -46
  184. package/dist/chat/ui/intelligent-ui/render-context.js +1 -1
  185. package/dist/chat/ui/intelligent-ui/renderers/base-land.js +1 -1
  186. package/dist/chat/ui/intelligent-ui/renderers/binding.js +3 -3
  187. package/dist/chat/ui/intelligent-ui/renderers/chart.js +1223 -123
  188. package/dist/chat/ui/intelligent-ui/renderers/choices.js +312 -34
  189. package/dist/chat/ui/intelligent-ui/renderers/content.js +1241 -86
  190. package/dist/chat/ui/intelligent-ui/renderers/data.js +619 -54
  191. package/dist/chat/ui/intelligent-ui/renderers/inputs.js +868 -67
  192. package/dist/chat/ui/intelligent-ui/renderers/links.js +366 -62
  193. package/dist/chat/ui/intelligent-ui/renderers/map-slots.js +118 -60
  194. package/dist/chat/ui/intelligent-ui/renderers/map-style.js +85 -78
  195. package/dist/chat/ui/intelligent-ui/renderers/map-view.js +282 -217
  196. package/dist/chat/ui/intelligent-ui/renderers/map.js +621 -69
  197. package/dist/chat/ui/intelligent-ui/renderers/place-point.js +15 -8
  198. package/dist/chat/ui/intelligent-ui/renderers/structure.js +262 -20
  199. package/dist/chat/ui/intelligent-ui/renderers/text.js +674 -49
  200. package/dist/chat/ui/intelligent-ui/reply-parts.js +24 -15
  201. package/dist/chat/ui/intelligent-ui/table-data.js +97 -57
  202. package/dist/chat/ui/intelligent-ui/tones.js +31 -31
  203. package/dist/chat/ui/intelligent-ui/use-in-view.js +30 -12
  204. package/dist/chat/ui/intelligent-ui/use-later.js +28 -13
  205. package/dist/chat/ui/intelligent-ui/use-truncated.js +45 -21
  206. package/dist/chat/ui/intelligent-ui/use-ui-links.js +296 -109
  207. package/dist/chat/ui/intelligent-ui/use-ui-queries.js +256 -246
  208. package/dist/chat/ui/markdown-blocks.js +296 -262
  209. package/dist/chat/ui/mermaid.js +60 -72
  210. package/dist/chat/ui/quote-selection.js +32 -29
  211. package/dist/chat/ui/rehype-chips.js +35 -23
  212. package/dist/chat/ui/rehype-fade.js +28 -17
  213. package/dist/chat/ui/remark-html-as-text.js +22 -15
  214. package/dist/chat/ui/reply-context.js +1 -1
  215. package/dist/chat/ui/reveal.js +161 -72
  216. package/dist/chat/ui/rows/ForksRow.js +226 -24
  217. package/dist/chat/ui/rows/GeneratedImageRow.js +541 -87
  218. package/dist/chat/ui/rows/MessageRows.js +1706 -159
  219. package/dist/chat/ui/rows/RowContainer.js +57 -7
  220. package/dist/chat/ui/rows/Rows.js +463 -54
  221. package/dist/chat/ui/rows/SubagentRow.js +577 -60
  222. package/dist/chat/ui/rows/TaskRow.js +359 -40
  223. package/dist/chat/ui/rows/VisualRow.js +233 -11
  224. package/dist/chat/ui/rows/WorkRows.js +1946 -163
  225. package/dist/chat/ui/rows/WorkflowRow.js +293 -34
  226. package/dist/chat/ui/rows/row-rhythm.js +27 -17
  227. package/dist/chat/ui/theme-watch.js +26 -23
  228. package/dist/chat/ui/timestamp-format.js +4 -1
  229. package/dist/chat/ui/use-diff-source-tokens.js +70 -34
  230. package/dist/chat/ui/useToggleSet.js +51 -19
  231. package/dist/chat/ui/visual-theme.js +153 -128
  232. package/dist/chat/visual-bridge.js +123 -123
  233. package/dist/chat/visual-viewport.js +94 -83
  234. package/dist/chat/visuals.js +13 -5
  235. package/dist/host-hooks.d.ts +29 -0
  236. package/dist/host-hooks.js +78 -0
  237. package/dist/host.js +120 -48
  238. package/dist/index.js +1 -1
  239. package/dist/lazy.js +38 -32
  240. package/dist/locales/en/agent-chat.d.ts +35 -0
  241. package/dist/locales/en/agent-chat.js +747 -712
  242. package/dist/locales/en/agent-prompts.js +42 -42
  243. package/dist/locales/en/agent-providers.d.ts +1 -0
  244. package/dist/locales/en/agent-providers.js +166 -165
  245. package/dist/locales/en/agent-usage.d.ts +6 -0
  246. package/dist/locales/en/agent-usage.js +129 -123
  247. package/dist/locales/nl/agent-chat.d.ts +35 -0
  248. package/dist/locales/nl/agent-chat.js +747 -712
  249. package/dist/locales/nl/agent-prompts.js +42 -42
  250. package/dist/locales/nl/agent-providers.d.ts +1 -0
  251. package/dist/locales/nl/agent-providers.js +166 -165
  252. package/dist/locales/nl/agent-usage.d.ts +6 -0
  253. package/dist/locales/nl/agent-usage.js +129 -123
  254. package/dist/locales.js +14 -14
  255. package/dist/mounted-registry.js +31 -30
  256. package/dist/port-transport.js +122 -111
  257. package/dist/prompts/index.js +1 -1
  258. package/dist/prompts/logic/focus.js +15 -14
  259. package/dist/prompts/logic/keys.js +93 -59
  260. package/dist/prompts/logic/prompts.js +27 -14
  261. package/dist/prompts/logic/subjects.js +60 -46
  262. package/dist/prompts/logic/useFocusAfterAnswer.js +60 -20
  263. package/dist/prompts/logic/usePromptSession.js +88 -77
  264. package/dist/prompts/ui/ApprovalBody.js +246 -25
  265. package/dist/prompts/ui/PromptActions.js +215 -9
  266. package/dist/prompts/ui/PromptCard.js +215 -36
  267. package/dist/prompts/ui/PromptView.js +372 -34
  268. package/dist/prompts/ui/QuestionBody.js +269 -73
  269. package/dist/providers/AccountColors.js +36 -5
  270. package/dist/providers/AccountDetail.js +683 -50
  271. package/dist/providers/AccountVariables.js +139 -32
  272. package/dist/providers/AddAccountForm.js +125 -38
  273. package/dist/providers/CliDetail.js +343 -36
  274. package/dist/providers/InstallPage.js +644 -59
  275. package/dist/providers/ProviderList.d.ts +2 -1
  276. package/dist/providers/ProviderList.js +215 -23
  277. package/dist/providers/ProvidersPane.d.ts +4 -2
  278. package/dist/providers/ProvidersPane.js +244 -64
  279. package/dist/providers/account-actions.js +54 -30
  280. package/dist/providers/index.js +1 -1
  281. package/dist/providers/install-steps.js +12 -9
  282. package/dist/providers/pane-target.d.ts +3 -0
  283. package/dist/providers/pane-target.js +34 -13
  284. package/dist/providers/parts.js +62 -12
  285. package/dist/providers/provider-abilities.js +5 -5
  286. package/dist/providers/provider-groups.js +75 -40
  287. package/dist/providers/variables.js +73 -39
  288. package/dist/scope.js +6 -6
  289. package/dist/settings/sections.js +18 -18
  290. package/dist/state/chats.d.ts +1 -0
  291. package/dist/state/chats.js +408 -192
  292. package/dist/state/index.js +1 -1
  293. package/dist/state/provider-accounts.js +70 -47
  294. package/dist/state/providers.js +45 -16
  295. package/dist/state/usage.js +154 -77
  296. package/dist/storage.js +69 -68
  297. package/dist/testing/index.js +1 -1
  298. package/dist/testing/prompts.js +105 -67
  299. package/dist/transport.js +10 -10
  300. package/dist/ui/PlainTextarea.js +27 -3
  301. package/dist/usage/LimitsList.js +646 -40
  302. package/dist/usage/UsageBreakdown.js +879 -38
  303. package/dist/usage/UsageChart.js +311 -32
  304. package/dist/usage/UsageDialog.js +46 -4
  305. package/dist/usage/UsageLimits.js +467 -34
  306. package/dist/usage/UsageLimitsCard.js +95 -11
  307. package/dist/usage/UsagePage.js +817 -96
  308. package/dist/usage/UsagePane.js +164 -10
  309. package/dist/usage/UsageSummary.js +151 -6
  310. package/dist/usage/UsageTiles.js +164 -14
  311. package/dist/usage/format.js +32 -32
  312. package/dist/usage/index.d.ts +1 -1
  313. package/dist/usage/index.js +2 -1
  314. package/dist/usage/limit-groups.d.ts +2 -0
  315. package/dist/usage/limit-groups.js +77 -59
  316. package/dist/usage/limits.js +78 -43
  317. package/dist/usage/money.js +20 -4
  318. package/dist/usage/summary.js +85 -64
  319. package/package.json +8 -8
  320. package/src/agents/ModelOptionControl.tsx +3 -1
  321. package/src/agents/option-words.ts +27 -0
  322. package/src/chat/account-choice.ts +41 -1
  323. package/src/chat/composer-effort.ts +32 -0
  324. package/src/chat/forks.ts +4 -5
  325. package/src/chat/index.ts +3 -1
  326. package/src/chat/logic/effort.ts +32 -0
  327. package/src/chat/logic/picker-entries.ts +45 -10
  328. package/src/chat/logic/resume-compaction.ts +95 -17
  329. package/src/chat/logic/timeline.ts +11 -3
  330. package/src/chat/preferences.ts +35 -0
  331. package/src/chat/subagent-view.ts +2 -3
  332. package/src/chat/ui/AnsiOutput.tsx +1 -2
  333. package/src/chat/ui/BookmarkSubmenu.tsx +3 -3
  334. package/src/chat/ui/ChatActivity.tsx +14 -22
  335. package/src/chat/ui/ChatReferenceChip.tsx +2 -3
  336. package/src/chat/ui/Composer.tsx +15 -7
  337. package/src/chat/ui/EditDiff.tsx +2 -3
  338. package/src/chat/ui/LimitState.tsx +2 -2
  339. package/src/chat/ui/Markdown.tsx +10 -8
  340. package/src/chat/ui/MermaidBlock.tsx +2 -3
  341. package/src/chat/ui/Pickers.tsx +49 -29
  342. package/src/chat/ui/PromptComposer.tsx +7 -9
  343. package/src/chat/ui/ResumeCompactionDock.tsx +16 -4
  344. package/src/chat/ui/RunSettings.tsx +67 -28
  345. package/src/chat/ui/Scrubber.tsx +3 -3
  346. package/src/chat/ui/ShellCommand.tsx +2 -0
  347. package/src/chat/ui/SubagentInfo.tsx +2 -3
  348. package/src/chat/ui/SubagentTimeline.tsx +12 -16
  349. package/src/chat/ui/Timeline.tsx +6 -6
  350. package/src/chat/ui/UnifiedDiff.tsx +3 -4
  351. package/src/chat/ui/VisualFrame.tsx +5 -8
  352. package/src/chat/ui/code-theme.ts +4 -4
  353. package/src/chat/ui/composer/placeholder.ts +2 -2
  354. package/src/chat/ui/composer/use-compaction-offer.ts +36 -16
  355. package/src/chat/ui/composer/use-composer-menus.ts +4 -9
  356. package/src/chat/ui/composer/use-composer-submit.ts +2 -1
  357. package/src/chat/ui/composer/use-effort-stepper.ts +56 -0
  358. package/src/chat/ui/composer/use-notice.ts +2 -2
  359. package/src/chat/ui/diff/EditorEditDiff.tsx +9 -13
  360. package/src/chat/ui/diff/LegacyEditDiff.tsx +12 -17
  361. package/src/chat/ui/diff/LegacyUnifiedDiff.tsx +13 -21
  362. package/src/chat/ui/diff/use-review-stack.ts +4 -4
  363. package/src/chat/ui/diff-theme.ts +3 -3
  364. package/src/chat/ui/file-links.ts +2 -2
  365. package/src/chat/ui/intelligent-ui/UiReply.tsx +2 -0
  366. package/src/chat/ui/intelligent-ui/renderers/chart.tsx +3 -3
  367. package/src/chat/ui/intelligent-ui/renderers/content.tsx +5 -6
  368. package/src/chat/ui/intelligent-ui/renderers/map-view.tsx +2 -1
  369. package/src/chat/ui/intelligent-ui/renderers/map.tsx +2 -1
  370. package/src/chat/ui/intelligent-ui/use-truncated.ts +16 -19
  371. package/src/chat/ui/intelligent-ui/use-ui-links.ts +3 -3
  372. package/src/chat/ui/rows/ForksRow.tsx +3 -5
  373. package/src/chat/ui/rows/GeneratedImageRow.tsx +2 -1
  374. package/src/chat/ui/rows/MessageRows.tsx +12 -21
  375. package/src/chat/ui/rows/SubagentRow.tsx +3 -3
  376. package/src/chat/ui/rows/TaskRow.tsx +1 -1
  377. package/src/chat/ui/rows/WorkRows.tsx +20 -7
  378. package/src/chat/ui/useToggleSet.ts +15 -18
  379. package/src/chat/ui/visual-theme.ts +2 -3
  380. package/src/host-hooks.ts +113 -0
  381. package/src/lazy.tsx +2 -0
  382. package/src/locales/en/agent-chat.ts +135 -108
  383. package/src/locales/en/agent-prompts.ts +7 -7
  384. package/src/locales/en/agent-providers.ts +35 -34
  385. package/src/locales/en/agent-usage.ts +26 -20
  386. package/src/locales/nl/agent-chat.ts +127 -100
  387. package/src/locales/nl/agent-prompts.ts +5 -5
  388. package/src/locales/nl/agent-providers.ts +33 -32
  389. package/src/locales/nl/agent-usage.ts +25 -20
  390. package/src/prompts/ui/ApprovalBody.tsx +3 -1
  391. package/src/providers/CliDetail.tsx +2 -1
  392. package/src/providers/InstallPage.tsx +2 -4
  393. package/src/providers/ProviderList.tsx +12 -2
  394. package/src/providers/ProvidersPane.tsx +45 -15
  395. package/src/providers/pane-target.ts +20 -4
  396. package/src/state/chats.ts +7 -2
  397. package/src/usage/LimitsList.tsx +12 -13
  398. package/src/usage/UsageBreakdown.tsx +17 -6
  399. package/src/usage/UsageLimits.tsx +2 -1
  400. package/src/usage/UsagePage.tsx +3 -3
  401. package/src/usage/index.ts +1 -1
  402. package/src/usage/limit-groups.ts +12 -0
  403. package/src/usage/limits.ts +2 -2
  404. 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';