@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,51 +1,230 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { c as _c } from "react/compiler-runtime";
2
2
  import { useTranslation } from 'react-i18next';
3
3
  import { Hand, MessageCircleQuestionMark } from 'lucide-react';
4
4
  import { useChatHost } from '../../host.js';
5
5
  import { headingKey, isPrimaryKey, staysInCard, stepIndex, toolbarKey } from '../logic/keys.js';
6
6
  import { Icon } from '@adecore/ui';
7
7
  /* The raised glass a chat's composer is made of, for a card that stands on its own over a canvas. */
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
9
  export const PROMPT_SURFACE = 'flex flex-col overflow-hidden rounded-2xl border border-border bg-[color-mix(in_srgb,var(--surface-raised)_92%,transparent)] shadow-float backdrop-blur-[14px]';
9
- const ICONS = { approval: Hand, question: MessageCircleQuestionMark, waiting: MessageCircleQuestionMark };
10
+ const ICONS = {
11
+ approval: Hand,
12
+ question: MessageCircleQuestionMark,
13
+ waiting: MessageCircleQuestionMark
14
+ };
10
15
  /*
11
16
  * The keys every card shares: Mod+Enter, entering from the heading and the action row. The body handles
12
17
  * its own keys first and says so with `preventDefault`.
13
18
  */
14
19
  function onCardKeyDown(event, apple) {
15
- const card = event.currentTarget;
16
- const target = event.target instanceof HTMLElement ? event.target : null;
17
- if (!event.defaultPrevented) {
18
- if (isPrimaryKey(event.nativeEvent, apple)) {
19
- event.preventDefault();
20
- // A click on the button itself, so a disabled Next or Answer stays as disabled as it looks.
21
- card.querySelector('[data-prompt-primary]:not(:disabled)')?.click();
22
- }
23
- else if (target?.classList.contains('prompt-heading') && headingKey(event.nativeEvent)) {
24
- event.preventDefault();
25
- card.querySelector('[data-prompt-entry]:not(:disabled), [data-prompt-primary]:not(:disabled)')?.focus();
26
- }
27
- else {
28
- const toolbar = target?.closest('[role="toolbar"]');
29
- const step = toolbar ? toolbarKey(event.nativeEvent) : null;
30
- if (toolbar && step !== null) {
31
- event.preventDefault();
32
- const buttons = [...toolbar.querySelectorAll('button:not(:disabled)')];
33
- const current = buttons.findIndex((button) => button.contains(target));
34
- buttons[stepIndex(current, buttons.length, step)]?.focus();
35
- }
36
- }
37
- }
38
- if (event.defaultPrevented || staysInCard(event.nativeEvent)) {
39
- event.stopPropagation();
20
+ const card = event.currentTarget;
21
+ const target = event.target instanceof HTMLElement ? event.target : null;
22
+ if (!event.defaultPrevented) {
23
+ if (isPrimaryKey(event.nativeEvent, apple)) {
24
+ event.preventDefault();
25
+ // A click on the button itself, so a disabled Next or Answer stays as disabled as it looks.
26
+ card.querySelector('[data-prompt-primary]:not(:disabled)')?.click();
27
+ } else if (target?.classList.contains('prompt-heading') && headingKey(event.nativeEvent)) {
28
+ event.preventDefault();
29
+ card.querySelector('[data-prompt-entry]:not(:disabled), [data-prompt-primary]:not(:disabled)')?.focus();
30
+ } else {
31
+ const toolbar = target?.closest('[role="toolbar"]');
32
+ const step = toolbar ? toolbarKey(event.nativeEvent) : null;
33
+ if (toolbar && step !== null) {
34
+ event.preventDefault();
35
+ const buttons = [...toolbar.querySelectorAll('button:not(:disabled)')];
36
+ const current = buttons.findIndex(button => button.contains(target));
37
+ buttons[stepIndex(current, buttons.length, step)]?.focus();
38
+ }
40
39
  }
40
+ }
41
+ if (event.defaultPrevented || staysInCard(event.nativeEvent)) {
42
+ event.stopPropagation();
43
+ }
41
44
  }
42
45
  /* What every prompt looks like, whatever asked it: in a chat's composer and in a canvas's stack. */
43
- export function PromptCard({ kind, heading, meta, top, actions, busy, notice, error, children }) {
44
- const { t } = useTranslation('agent-prompts');
45
- const { isApplePlatform } = useChatHost();
46
- const card = (_jsxs("div", { className: "prompt-card flex min-h-0 flex-col gap-2 p-3", role: "group", "aria-label": t(`card.${kind}`), "aria-busy": busy, onKeyDown: (event) => onCardKeyDown(event, isApplePlatform()), children: [_jsx("div", { className: "-m-1.5 max-h-[min(50dvh,480px)] overflow-auto overscroll-contain p-1.5", children: _jsxs("div", { className: "flex flex-col gap-2", children: [_jsxs("div", { className: "flex items-start gap-2", children: [_jsx(Icon, { icon: ICONS[kind], size: 16, className: "mt-[3px] shrink-0 text-status-needs-you" }), _jsx("h3", { tabIndex: -1, className: "prompt-heading min-w-0 break-words text-sm font-semibold text-text outline-offset-4", children: heading })] }), meta && _jsx("div", { className: "flex flex-wrap gap-x-3 gap-y-1 text-xs text-text-muted", children: meta }), children, notice && _jsx("p", { className: "text-xs text-text-muted", children: notice }), error && (_jsx("p", { role: "alert", className: "text-xs text-status-error", children: error }))] }) }), _jsx("div", { role: "toolbar", "aria-label": t('toolbar'), className: "flex flex-wrap items-center gap-1.5", children: actions })] }));
47
- if (top === undefined) {
48
- return card;
49
- }
50
- return (_jsxs("div", { className: "flex min-h-0 flex-col", children: [top, card] }));
51
- }
46
+ export function PromptCard(t0) {
47
+ const $ = _c(38);
48
+ const {
49
+ kind,
50
+ heading,
51
+ meta,
52
+ top,
53
+ actions,
54
+ busy,
55
+ notice,
56
+ error,
57
+ children
58
+ } = t0;
59
+ const {
60
+ t
61
+ } = useTranslation("agent-prompts");
62
+ const {
63
+ isApplePlatform
64
+ } = useChatHost();
65
+ const t1 = `card.${kind}`;
66
+ let t2;
67
+ if ($[0] !== t || $[1] !== t1) {
68
+ t2 = t(t1);
69
+ $[0] = t;
70
+ $[1] = t1;
71
+ $[2] = t2;
72
+ } else {
73
+ t2 = $[2];
74
+ }
75
+ let t3;
76
+ if ($[3] !== isApplePlatform) {
77
+ t3 = event => onCardKeyDown(event, isApplePlatform());
78
+ $[3] = isApplePlatform;
79
+ $[4] = t3;
80
+ } else {
81
+ t3 = $[4];
82
+ }
83
+ const t4 = ICONS[kind];
84
+ let t5;
85
+ if ($[5] !== t4) {
86
+ t5 = /*#__PURE__*/_jsx(Icon, {
87
+ icon: t4,
88
+ size: 16,
89
+ className: "mt-[3px] shrink-0 text-status-needs-you"
90
+ });
91
+ $[5] = t4;
92
+ $[6] = t5;
93
+ } else {
94
+ t5 = $[6];
95
+ }
96
+ let t6;
97
+ if ($[7] !== heading) {
98
+ t6 = /*#__PURE__*/_jsx("h3", {
99
+ tabIndex: -1,
100
+ className: "prompt-heading min-w-0 break-words text-sm font-semibold text-text outline-offset-4",
101
+ children: heading
102
+ });
103
+ $[7] = heading;
104
+ $[8] = t6;
105
+ } else {
106
+ t6 = $[8];
107
+ }
108
+ let t7;
109
+ if ($[9] !== t5 || $[10] !== t6) {
110
+ t7 = /*#__PURE__*/_jsxs("div", {
111
+ className: "flex items-start gap-2",
112
+ children: [t5, t6]
113
+ });
114
+ $[9] = t5;
115
+ $[10] = t6;
116
+ $[11] = t7;
117
+ } else {
118
+ t7 = $[11];
119
+ }
120
+ let t8;
121
+ if ($[12] !== meta) {
122
+ t8 = meta && /*#__PURE__*/_jsx("div", {
123
+ className: "flex flex-wrap gap-x-3 gap-y-1 text-xs text-text-muted",
124
+ children: meta
125
+ });
126
+ $[12] = meta;
127
+ $[13] = t8;
128
+ } else {
129
+ t8 = $[13];
130
+ }
131
+ let t9;
132
+ if ($[14] !== notice) {
133
+ t9 = notice && /*#__PURE__*/_jsx("p", {
134
+ className: "text-xs text-text-muted",
135
+ children: notice
136
+ });
137
+ $[14] = notice;
138
+ $[15] = t9;
139
+ } else {
140
+ t9 = $[15];
141
+ }
142
+ let t10;
143
+ if ($[16] !== error) {
144
+ t10 = error && /*#__PURE__*/_jsx("p", {
145
+ role: "alert",
146
+ className: "text-xs text-status-error",
147
+ children: error
148
+ });
149
+ $[16] = error;
150
+ $[17] = t10;
151
+ } else {
152
+ t10 = $[17];
153
+ }
154
+ let t11;
155
+ if ($[18] !== children || $[19] !== t10 || $[20] !== t7 || $[21] !== t8 || $[22] !== t9) {
156
+ t11 = /*#__PURE__*/_jsx("div", {
157
+ className: "-m-1.5 max-h-[min(50dvh,480px)] overflow-auto overscroll-contain p-1.5",
158
+ children: /*#__PURE__*/_jsxs("div", {
159
+ className: "flex flex-col gap-2",
160
+ children: [t7, t8, children, t9, t10]
161
+ })
162
+ });
163
+ $[18] = children;
164
+ $[19] = t10;
165
+ $[20] = t7;
166
+ $[21] = t8;
167
+ $[22] = t9;
168
+ $[23] = t11;
169
+ } else {
170
+ t11 = $[23];
171
+ }
172
+ let t12;
173
+ if ($[24] !== t) {
174
+ t12 = t("toolbar");
175
+ $[24] = t;
176
+ $[25] = t12;
177
+ } else {
178
+ t12 = $[25];
179
+ }
180
+ let t13;
181
+ if ($[26] !== actions || $[27] !== t12) {
182
+ t13 = /*#__PURE__*/_jsx("div", {
183
+ role: "toolbar",
184
+ "aria-label": t12,
185
+ className: "flex flex-wrap items-center gap-1.5",
186
+ children: actions
187
+ });
188
+ $[26] = actions;
189
+ $[27] = t12;
190
+ $[28] = t13;
191
+ } else {
192
+ t13 = $[28];
193
+ }
194
+ let t14;
195
+ if ($[29] !== busy || $[30] !== t11 || $[31] !== t13 || $[32] !== t2 || $[33] !== t3) {
196
+ t14 = /*#__PURE__*/_jsxs("div", {
197
+ className: "prompt-card flex min-h-0 flex-col gap-2 p-3",
198
+ role: "group",
199
+ "aria-label": t2,
200
+ "aria-busy": busy,
201
+ onKeyDown: t3,
202
+ children: [t11, t13]
203
+ });
204
+ $[29] = busy;
205
+ $[30] = t11;
206
+ $[31] = t13;
207
+ $[32] = t2;
208
+ $[33] = t3;
209
+ $[34] = t14;
210
+ } else {
211
+ t14 = $[34];
212
+ }
213
+ const card = t14;
214
+ if (top === undefined) {
215
+ return card;
216
+ }
217
+ let t15;
218
+ if ($[35] !== card || $[36] !== top) {
219
+ t15 = /*#__PURE__*/_jsxs("div", {
220
+ className: "flex min-h-0 flex-col",
221
+ children: [top, card]
222
+ });
223
+ $[35] = card;
224
+ $[36] = top;
225
+ $[37] = t15;
226
+ } else {
227
+ t15 = $[37];
228
+ }
229
+ return t15;
230
+ }
@@ -1,4 +1,4 @@
1
- import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { c as _c } from "react/compiler-runtime";
2
2
  import { useTranslation } from 'react-i18next';
3
3
  import { toolSummary } from '../../chat/logic/tools.js';
4
4
  import { useChatHost } from '../../host.js';
@@ -9,40 +9,378 @@ import { ApprovalActions, QuestionActions } from './PromptActions.js';
9
9
  import { PromptCard } from './PromptCard.js';
10
10
  import { QuestionBody } from './QuestionBody.js';
11
11
  /* A permission request or question, answered in place: a chat's, or one of the app's own that it draws itself. */
12
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
12
13
  export function PromptView(props) {
13
- const { subject, draft, onDraft, onAction, more, hasDraft, denyReason, disabled, sending, error, top } = props;
14
- const { t } = useTranslation('agent-prompts');
15
- const { prompts } = useChatHost();
16
- const locked = sending || disabled;
17
- const notice = disabled ? t('error.notConnected') : null;
18
- const buttons = approvalButtons(subject, draft.reason).map(({ action, ...button }) => ({ ...button, onPress: () => onAction(action) }));
19
- if (subject.kind === 'host') {
20
- return prompts.render(subject.prompt, props);
21
- }
22
- const { item } = subject;
23
- const question = item.kind === 'question' ? item.questions[Math.min(draft.index, item.questions.length - 1)] : null;
24
- const answer = question ? questionAnswer(draft, question) : null;
25
- const last = item.kind === 'question' && draft.index === item.questions.length - 1;
26
- // Whether Next or Answer may go with this draft. The keys ask it as well as the button.
27
- const readyWith = (next) => item.kind === 'question' && !!question && !!answerValue(questionAnswer(next, question)) && !(last && !promptAnswers(item, next));
28
- const commit = (next) => {
29
- if (item.kind !== 'question' || locked || !readyWith(next)) {
30
- return;
31
- }
32
- if (!last) {
33
- onDraft({ ...next, index: next.index + 1 });
34
- }
35
- else {
36
- const answers = promptAnswers(item, next);
37
- if (answers) {
38
- onAction({ kind: 'answer', answers });
39
- }
14
+ const $ = _c(98);
15
+ const {
16
+ subject,
17
+ draft,
18
+ onDraft,
19
+ onAction,
20
+ more,
21
+ hasDraft,
22
+ denyReason,
23
+ disabled,
24
+ sending,
25
+ error,
26
+ top
27
+ } = props;
28
+ const {
29
+ t
30
+ } = useTranslation("agent-prompts");
31
+ const {
32
+ prompts
33
+ } = useChatHost();
34
+ const locked = sending || disabled;
35
+ let t0;
36
+ if ($[0] !== disabled || $[1] !== t) {
37
+ t0 = disabled ? t("error.notConnected") : null;
38
+ $[0] = disabled;
39
+ $[1] = t;
40
+ $[2] = t0;
41
+ } else {
42
+ t0 = $[2];
43
+ }
44
+ const notice = t0;
45
+ let t1;
46
+ if ($[3] !== draft.reason || $[4] !== onAction || $[5] !== subject) {
47
+ let t2;
48
+ if ($[7] !== onAction) {
49
+ t2 = t3 => {
50
+ const {
51
+ action,
52
+ ...button
53
+ } = t3;
54
+ return {
55
+ ...button,
56
+ onPress: () => onAction(action)
57
+ };
58
+ };
59
+ $[7] = onAction;
60
+ $[8] = t2;
61
+ } else {
62
+ t2 = $[8];
63
+ }
64
+ t1 = approvalButtons(subject, draft.reason).map(t2);
65
+ $[3] = draft.reason;
66
+ $[4] = onAction;
67
+ $[5] = subject;
68
+ $[6] = t1;
69
+ } else {
70
+ t1 = $[6];
71
+ }
72
+ const buttons = t1;
73
+ if (subject.kind === "host") {
74
+ let t2;
75
+ if ($[9] !== prompts || $[10] !== props || $[11] !== subject.prompt) {
76
+ t2 = prompts.render(subject.prompt, props);
77
+ $[9] = prompts;
78
+ $[10] = props;
79
+ $[11] = subject.prompt;
80
+ $[12] = t2;
81
+ } else {
82
+ t2 = $[12];
83
+ }
84
+ return t2;
85
+ }
86
+ const {
87
+ item
88
+ } = subject;
89
+ const question = item.kind === "question" ? item.questions[Math.min(draft.index, item.questions.length - 1)] : null;
90
+ let t2;
91
+ if ($[13] !== draft || $[14] !== question) {
92
+ t2 = question ? questionAnswer(draft, question) : null;
93
+ $[13] = draft;
94
+ $[14] = question;
95
+ $[15] = t2;
96
+ } else {
97
+ t2 = $[15];
98
+ }
99
+ const answer = t2;
100
+ const last = item.kind === "question" && draft.index === item.questions.length - 1;
101
+ let t3;
102
+ if ($[16] !== item || $[17] !== last || $[18] !== question) {
103
+ t3 = next => item.kind === "question" && !!question && !!answerValue(questionAnswer(next, question)) && !(last && !promptAnswers(item, next));
104
+ $[16] = item;
105
+ $[17] = last;
106
+ $[18] = question;
107
+ $[19] = t3;
108
+ } else {
109
+ t3 = $[19];
110
+ }
111
+ const readyWith = t3;
112
+ let t4;
113
+ if ($[20] !== item || $[21] !== last || $[22] !== locked || $[23] !== onAction || $[24] !== onDraft || $[25] !== readyWith) {
114
+ t4 = next_0 => {
115
+ if (item.kind !== "question" || locked || !readyWith(next_0)) {
116
+ return;
117
+ }
118
+ if (!last) {
119
+ onDraft({
120
+ ...next_0,
121
+ index: next_0.index + 1
122
+ });
123
+ } else {
124
+ const answers = promptAnswers(item, next_0);
125
+ if (answers) {
126
+ onAction({
127
+ kind: "answer",
128
+ answers
129
+ });
40
130
  }
131
+ }
41
132
  };
42
- const multiple = item.kind === 'question' && item.questions.length > 1;
43
- const meta = more > 0 || hasDraft || multiple ? (_jsxs(_Fragment, { children: [more > 0 && _jsx("span", { className: "tabular-nums", children: t('meta.waiting', { count: more + 1 }) }), multiple && _jsx("span", { className: "tabular-nums", children: t('meta.question', { index: draft.index + 1, total: item.questions.length }) }), hasDraft && _jsx("span", { children: t('meta.draftSaved') })] })) : null;
44
- if (item.kind === 'approval') {
45
- return (_jsx(PromptCard, { kind: "approval", heading: `${item.toolName === 'Bash' ? t('approval.runCommand') : item.toolName} ${item.toolName === 'Bash' ? '' : toolSummary(item.toolName, item.input)}`, meta: meta, top: top, busy: sending, notice: notice, error: error, actions: _jsx(ApprovalActions, { buttons: buttons, onAddReason: denyReason && !draft.showReason ? () => onDraft({ ...draft, showReason: true }) : undefined, locked: locked, sending: sending }), children: _jsx(ApprovalBody, { item: item, draft: draft, onDraft: onDraft, denyReason: denyReason, locked: locked }) }));
133
+ $[20] = item;
134
+ $[21] = last;
135
+ $[22] = locked;
136
+ $[23] = onAction;
137
+ $[24] = onDraft;
138
+ $[25] = readyWith;
139
+ $[26] = t4;
140
+ } else {
141
+ t4 = $[26];
142
+ }
143
+ const commit = t4;
144
+ const multiple = item.kind === "question" && item.questions.length > 1;
145
+ let t5;
146
+ if ($[27] !== draft.index || $[28] !== hasDraft || $[29] !== item.questions || $[30] !== more || $[31] !== multiple || $[32] !== t) {
147
+ t5 = more > 0 || hasDraft || multiple ? /*#__PURE__*/_jsxs(_Fragment, {
148
+ children: [more > 0 && /*#__PURE__*/_jsx("span", {
149
+ className: "tabular-nums",
150
+ children: t("meta.waiting", {
151
+ count: more + 1
152
+ })
153
+ }), multiple && /*#__PURE__*/_jsx("span", {
154
+ className: "tabular-nums",
155
+ children: t("meta.question", {
156
+ index: draft.index + 1,
157
+ total: item.questions.length
158
+ })
159
+ }), hasDraft && /*#__PURE__*/_jsx("span", {
160
+ children: t("meta.draftSaved")
161
+ })]
162
+ }) : null;
163
+ $[27] = draft.index;
164
+ $[28] = hasDraft;
165
+ $[29] = item.questions;
166
+ $[30] = more;
167
+ $[31] = multiple;
168
+ $[32] = t;
169
+ $[33] = t5;
170
+ } else {
171
+ t5 = $[33];
172
+ }
173
+ const meta = t5;
174
+ if (item.kind === "approval") {
175
+ let t6;
176
+ if ($[34] !== item.toolName || $[35] !== t) {
177
+ t6 = item.toolName === "Bash" ? t("approval.runCommand") : item.toolName;
178
+ $[34] = item.toolName;
179
+ $[35] = t;
180
+ $[36] = t6;
181
+ } else {
182
+ t6 = $[36];
183
+ }
184
+ let t7;
185
+ if ($[37] !== item.input || $[38] !== item.toolName) {
186
+ t7 = item.toolName === "Bash" ? "" : toolSummary(item.toolName, item.input);
187
+ $[37] = item.input;
188
+ $[38] = item.toolName;
189
+ $[39] = t7;
190
+ } else {
191
+ t7 = $[39];
192
+ }
193
+ const t8 = `${t6} ${t7}`;
194
+ let t9;
195
+ if ($[40] !== denyReason || $[41] !== draft || $[42] !== onDraft) {
196
+ t9 = denyReason && !draft.showReason ? () => onDraft({
197
+ ...draft,
198
+ showReason: true
199
+ }) : undefined;
200
+ $[40] = denyReason;
201
+ $[41] = draft;
202
+ $[42] = onDraft;
203
+ $[43] = t9;
204
+ } else {
205
+ t9 = $[43];
46
206
  }
47
- return (_jsx(PromptCard, { kind: "question", heading: question?.question, meta: meta, top: top, busy: sending, notice: notice, error: error, actions: _jsx(QuestionActions, { index: draft.index, dismissable: item.async === true, last: last, ready: readyWith(draft), locked: locked, sending: sending, onPrevious: () => onDraft({ ...draft, index: draft.index - 1 }), onDismiss: () => onAction({ kind: 'dismiss' }), onCommit: () => commit(draft) }), children: question && answer && (_jsx(QuestionBody, { question: question, answer: answer, onAnswer: (next) => onDraft({ ...draft, answers: { ...draft.answers, [question.id]: next } }), onCommit: (next) => commit({ ...draft, answers: { ...draft.answers, [question.id]: next } }), locked: locked })) }));
48
- }
207
+ let t10;
208
+ if ($[44] !== buttons || $[45] !== locked || $[46] !== sending || $[47] !== t9) {
209
+ t10 = /*#__PURE__*/_jsx(ApprovalActions, {
210
+ buttons: buttons,
211
+ onAddReason: t9,
212
+ locked: locked,
213
+ sending: sending
214
+ });
215
+ $[44] = buttons;
216
+ $[45] = locked;
217
+ $[46] = sending;
218
+ $[47] = t9;
219
+ $[48] = t10;
220
+ } else {
221
+ t10 = $[48];
222
+ }
223
+ let t11;
224
+ if ($[49] !== denyReason || $[50] !== draft || $[51] !== item || $[52] !== locked || $[53] !== onDraft) {
225
+ t11 = /*#__PURE__*/_jsx(ApprovalBody, {
226
+ item: item,
227
+ draft: draft,
228
+ onDraft: onDraft,
229
+ denyReason: denyReason,
230
+ locked: locked
231
+ });
232
+ $[49] = denyReason;
233
+ $[50] = draft;
234
+ $[51] = item;
235
+ $[52] = locked;
236
+ $[53] = onDraft;
237
+ $[54] = t11;
238
+ } else {
239
+ t11 = $[54];
240
+ }
241
+ let t12;
242
+ if ($[55] !== error || $[56] !== meta || $[57] !== notice || $[58] !== sending || $[59] !== t10 || $[60] !== t11 || $[61] !== t8 || $[62] !== top) {
243
+ t12 = /*#__PURE__*/_jsx(PromptCard, {
244
+ kind: "approval",
245
+ heading: t8,
246
+ meta: meta,
247
+ top: top,
248
+ busy: sending,
249
+ notice: notice,
250
+ error: error,
251
+ actions: t10,
252
+ children: t11
253
+ });
254
+ $[55] = error;
255
+ $[56] = meta;
256
+ $[57] = notice;
257
+ $[58] = sending;
258
+ $[59] = t10;
259
+ $[60] = t11;
260
+ $[61] = t8;
261
+ $[62] = top;
262
+ $[63] = t12;
263
+ } else {
264
+ t12 = $[63];
265
+ }
266
+ return t12;
267
+ }
268
+ const t6 = question?.question;
269
+ const t7 = draft.index;
270
+ const t8 = item.async === true;
271
+ const t9 = readyWith(draft);
272
+ let t10;
273
+ if ($[64] !== draft || $[65] !== onDraft) {
274
+ t10 = () => onDraft({
275
+ ...draft,
276
+ index: draft.index - 1
277
+ });
278
+ $[64] = draft;
279
+ $[65] = onDraft;
280
+ $[66] = t10;
281
+ } else {
282
+ t10 = $[66];
283
+ }
284
+ let t11;
285
+ if ($[67] !== onAction) {
286
+ t11 = () => onAction({
287
+ kind: "dismiss"
288
+ });
289
+ $[67] = onAction;
290
+ $[68] = t11;
291
+ } else {
292
+ t11 = $[68];
293
+ }
294
+ let t12;
295
+ if ($[69] !== commit || $[70] !== draft) {
296
+ t12 = () => commit(draft);
297
+ $[69] = commit;
298
+ $[70] = draft;
299
+ $[71] = t12;
300
+ } else {
301
+ t12 = $[71];
302
+ }
303
+ let t13;
304
+ if ($[72] !== draft.index || $[73] !== last || $[74] !== locked || $[75] !== sending || $[76] !== t10 || $[77] !== t11 || $[78] !== t12 || $[79] !== t8 || $[80] !== t9) {
305
+ t13 = /*#__PURE__*/_jsx(QuestionActions, {
306
+ index: t7,
307
+ dismissable: t8,
308
+ last: last,
309
+ ready: t9,
310
+ locked: locked,
311
+ sending: sending,
312
+ onPrevious: t10,
313
+ onDismiss: t11,
314
+ onCommit: t12
315
+ });
316
+ $[72] = draft.index;
317
+ $[73] = last;
318
+ $[74] = locked;
319
+ $[75] = sending;
320
+ $[76] = t10;
321
+ $[77] = t11;
322
+ $[78] = t12;
323
+ $[79] = t8;
324
+ $[80] = t9;
325
+ $[81] = t13;
326
+ } else {
327
+ t13 = $[81];
328
+ }
329
+ let t14;
330
+ if ($[82] !== answer || $[83] !== commit || $[84] !== draft || $[85] !== locked || $[86] !== onDraft || $[87] !== question) {
331
+ t14 = question && answer && /*#__PURE__*/_jsx(QuestionBody, {
332
+ question: question,
333
+ answer: answer,
334
+ onAnswer: next_1 => onDraft({
335
+ ...draft,
336
+ answers: {
337
+ ...draft.answers,
338
+ [question.id]: next_1
339
+ }
340
+ }),
341
+ onCommit: next_2 => commit({
342
+ ...draft,
343
+ answers: {
344
+ ...draft.answers,
345
+ [question.id]: next_2
346
+ }
347
+ }),
348
+ locked: locked
349
+ });
350
+ $[82] = answer;
351
+ $[83] = commit;
352
+ $[84] = draft;
353
+ $[85] = locked;
354
+ $[86] = onDraft;
355
+ $[87] = question;
356
+ $[88] = t14;
357
+ } else {
358
+ t14 = $[88];
359
+ }
360
+ let t15;
361
+ if ($[89] !== error || $[90] !== meta || $[91] !== notice || $[92] !== sending || $[93] !== t13 || $[94] !== t14 || $[95] !== t6 || $[96] !== top) {
362
+ t15 = /*#__PURE__*/_jsx(PromptCard, {
363
+ kind: "question",
364
+ heading: t6,
365
+ meta: meta,
366
+ top: top,
367
+ busy: sending,
368
+ notice: notice,
369
+ error: error,
370
+ actions: t13,
371
+ children: t14
372
+ });
373
+ $[89] = error;
374
+ $[90] = meta;
375
+ $[91] = notice;
376
+ $[92] = sending;
377
+ $[93] = t13;
378
+ $[94] = t14;
379
+ $[95] = t6;
380
+ $[96] = top;
381
+ $[97] = t15;
382
+ } else {
383
+ t15 = $[97];
384
+ }
385
+ return t15;
386
+ }