@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
@@ -7,8 +7,8 @@ import { clampVisualHeight, visualContentHeight } from './logic/visual-height.js
7
7
  */
8
8
  const SILENCE_MS = 3000;
9
9
  function timeout(ms, run) {
10
- const timer = setTimeout(run, ms);
11
- return () => clearTimeout(timer);
10
+ const timer = setTimeout(run, ms);
11
+ return () => clearTimeout(timer);
12
12
  }
13
13
  /*
14
14
  * Talks to the frame of one visual. It hands the sandbox host page the visual's page when it says it
@@ -17,135 +17,135 @@ function timeout(ms, run) {
17
17
  * messages that come from the page count only once the page was sent.
18
18
  */
19
19
  export class VisualBridge {
20
- options;
21
- theme;
22
- html = null;
23
- /* Whether the sandbox host page ever said it listens, which is what tells it from an error page. */
24
- heard = false;
25
- /* The sandbox host page listens and has not been sent the page yet. */
26
- waiting = false;
27
- /* The theme the page was last sent, from the moment it was sent; null before that. */
28
- sent = null;
29
- /* Whether the page reported a size since it was sent, which says it runs and is drawn. */
30
- live = false;
31
- viewportReady = false;
32
- viewport = null;
33
- disposed = false;
34
- cancelSilence = () => undefined;
35
- constructor(options) {
36
- this.options = options;
37
- this.theme = options.theme;
38
- options.page.then((html) => {
39
- this.html = html;
40
- this.sendPage();
41
- }, () => {
42
- if (!this.disposed) {
43
- options.onFailure();
44
- }
45
- });
20
+ options;
21
+ theme;
22
+ html = null;
23
+ /* Whether the sandbox host page ever said it listens, which is what tells it from an error page. */
24
+ heard = false;
25
+ /* The sandbox host page listens and has not been sent the page yet. */
26
+ waiting = false;
27
+ /* The theme the page was last sent, from the moment it was sent; null before that. */
28
+ sent = null;
29
+ /* Whether the page reported a size since it was sent, which says it runs and is drawn. */
30
+ live = false;
31
+ viewportReady = false;
32
+ viewport = null;
33
+ disposed = false;
34
+ cancelSilence = () => undefined;
35
+ constructor(options) {
36
+ this.options = options;
37
+ this.theme = options.theme;
38
+ options.page.then(html => {
39
+ this.html = html;
40
+ this.sendPage();
41
+ }, () => {
42
+ if (!this.disposed) {
43
+ options.onFailure();
44
+ }
45
+ });
46
+ }
47
+ /* A `message` event of the window the frame is in. */
48
+ receive(event) {
49
+ const frame = this.options.frame();
50
+ if (this.disposed || frame === null || event.source !== frame) {
51
+ return;
46
52
  }
47
- /* A `message` event of the window the frame is in. */
48
- receive(event) {
49
- const frame = this.options.frame();
50
- if (this.disposed || frame === null || event.source !== frame) {
51
- return;
53
+ const message = parseVisualMessage(event.data);
54
+ switch (message?.method) {
55
+ case VISUAL_BRIDGE_METHODS.sandboxProxyReady:
56
+ // A frame that loads again starts over from the sandbox host page.
57
+ this.heard = true;
58
+ this.waiting = true;
59
+ this.sent = null;
60
+ this.live = false;
61
+ this.viewportReady = false;
62
+ this.cancelSilence();
63
+ this.sendPage();
64
+ return;
65
+ case VISUAL_BRIDGE_METHODS.sizeChanged:
66
+ if (this.sent === null) {
67
+ return;
52
68
  }
53
- const message = parseVisualMessage(event.data);
54
- switch (message?.method) {
55
- case VISUAL_BRIDGE_METHODS.sandboxProxyReady:
56
- // A frame that loads again starts over from the sandbox host page.
57
- this.heard = true;
58
- this.waiting = true;
59
- this.sent = null;
60
- this.live = false;
61
- this.viewportReady = false;
62
- this.cancelSilence();
63
- this.sendPage();
64
- return;
65
- case VISUAL_BRIDGE_METHODS.sizeChanged:
66
- if (this.sent === null) {
67
- return;
68
- }
69
- if (!this.live) {
70
- this.live = true;
71
- this.options.onAppearance(this.sent.appearance);
72
- }
73
- this.options.onHeight(this.options.onViewportReady ? visualContentHeight(message.height) : clampVisualHeight(this.options.visual, message.height));
74
- return;
75
- case VISUAL_BRIDGE_METHODS.viewportReady:
76
- if (this.sent === null) {
77
- return;
78
- }
79
- this.viewportReady = true;
80
- this.options.onViewportReady?.();
81
- this.setViewport(this.viewport);
82
- return;
83
- case VISUAL_BRIDGE_METHODS.scrollRequest:
84
- if (this.sent !== null && this.viewportReady && this.viewport !== null) {
85
- this.options.onScroll?.(message.request);
86
- }
87
- return;
88
- case VISUAL_BRIDGE_METHODS.openLink:
89
- if (this.sent === null) {
90
- return;
91
- }
92
- if (this.options.mayOpenLink()) {
93
- this.options.openLink(message.url);
94
- }
95
- frame.postMessage(visualOpenLinkResult(message.id), '*');
96
- return;
97
- default:
98
- return;
69
+ if (!this.live) {
70
+ this.live = true;
71
+ this.options.onAppearance(this.sent.appearance);
99
72
  }
100
- }
101
- setViewport(viewport) {
102
- this.viewport = viewport;
103
- if (!this.disposed && this.sent !== null && this.viewportReady) {
104
- this.options.frame()?.postMessage(visualViewportMessage(viewport), '*');
73
+ this.options.onHeight(this.options.onViewportReady ? visualContentHeight(message.height) : clampVisualHeight(this.options.visual, message.height));
74
+ return;
75
+ case VISUAL_BRIDGE_METHODS.viewportReady:
76
+ if (this.sent === null) {
77
+ return;
105
78
  }
106
- }
107
- /* The app's theme changed; a page that was sent follows it at once, without loading again. */
108
- setTheme(theme) {
109
- this.theme = theme;
110
- const frame = this.options.frame();
111
- if (this.disposed || this.sent === null || frame === null) {
112
- return;
79
+ this.viewportReady = true;
80
+ this.options.onViewportReady?.();
81
+ this.setViewport(this.viewport);
82
+ return;
83
+ case VISUAL_BRIDGE_METHODS.scrollRequest:
84
+ if (this.sent !== null && this.viewportReady && this.viewport !== null) {
85
+ this.options.onScroll?.(message.request);
113
86
  }
114
- this.postTheme(frame);
115
- if (this.live) {
116
- this.options.onAppearance(theme.appearance);
87
+ return;
88
+ case VISUAL_BRIDGE_METHODS.openLink:
89
+ if (this.sent === null) {
90
+ return;
117
91
  }
118
- }
119
- /* The frame fired `load`. */
120
- loaded() {
121
- if (this.heard || this.disposed) {
122
- return;
92
+ if (this.options.mayOpenLink()) {
93
+ this.options.openLink(message.url);
123
94
  }
124
- this.cancelSilence();
125
- this.cancelSilence = (this.options.after ?? timeout)(SILENCE_MS, () => {
126
- if (!this.heard && !this.disposed) {
127
- this.options.onFailure();
128
- }
129
- });
95
+ frame.postMessage(visualOpenLinkResult(message.id), '*');
96
+ return;
97
+ default:
98
+ return;
130
99
  }
131
- dispose() {
132
- this.disposed = true;
133
- this.cancelSilence();
100
+ }
101
+ setViewport(viewport) {
102
+ this.viewport = viewport;
103
+ if (!this.disposed && this.sent !== null && this.viewportReady) {
104
+ this.options.frame()?.postMessage(visualViewportMessage(viewport), '*');
134
105
  }
135
- sendPage() {
136
- const frame = this.options.frame();
137
- if (this.disposed || !this.waiting || this.html === null || frame === null) {
138
- return;
139
- }
140
- this.waiting = false;
141
- // Any origin, since the frame's own is opaque; `receive` checks every answer's source instead.
142
- frame.postMessage(visualResourceReadyMessage(this.html), '*');
143
- // The page writes itself as that message arrives and listens before the next one, so a theme
144
- // that changed since the frame's address was set follows right after it.
145
- this.postTheme(frame);
106
+ }
107
+ /* The app's theme changed; a page that was sent follows it at once, without loading again. */
108
+ setTheme(theme) {
109
+ this.theme = theme;
110
+ const frame = this.options.frame();
111
+ if (this.disposed || this.sent === null || frame === null) {
112
+ return;
146
113
  }
147
- postTheme(frame) {
148
- this.sent = this.theme;
149
- frame.postMessage(visualHostContextMessage(this.theme), '*');
114
+ this.postTheme(frame);
115
+ if (this.live) {
116
+ this.options.onAppearance(theme.appearance);
150
117
  }
151
- }
118
+ }
119
+ /* The frame fired `load`. */
120
+ loaded() {
121
+ if (this.heard || this.disposed) {
122
+ return;
123
+ }
124
+ this.cancelSilence();
125
+ this.cancelSilence = (this.options.after ?? timeout)(SILENCE_MS, () => {
126
+ if (!this.heard && !this.disposed) {
127
+ this.options.onFailure();
128
+ }
129
+ });
130
+ }
131
+ dispose() {
132
+ this.disposed = true;
133
+ this.cancelSilence();
134
+ }
135
+ sendPage() {
136
+ const frame = this.options.frame();
137
+ if (this.disposed || !this.waiting || this.html === null || frame === null) {
138
+ return;
139
+ }
140
+ this.waiting = false;
141
+ // Any origin, since the frame's own is opaque; `receive` checks every answer's source instead.
142
+ frame.postMessage(visualResourceReadyMessage(this.html), '*');
143
+ // The page writes itself as that message arrives and listens before the next one, so a theme
144
+ // that changed since the frame's address was set follows right after it.
145
+ this.postTheme(frame);
146
+ }
147
+ postTheme(frame) {
148
+ this.sent = this.theme;
149
+ frame.postMessage(visualHostContextMessage(this.theme), '*');
150
+ }
151
+ }
@@ -1,92 +1,103 @@
1
1
  import { visualViewportGeometry } from './logic/visual-viewport.js';
2
2
  /* Keeps one small frame in a full-height timeline row, without rendering React on scroll. */
3
3
  export class VisualViewportController {
4
- box;
5
- viewport;
6
- scroller;
7
- bridge;
8
- observer;
9
- attributes;
10
- view;
11
- frame = 0;
12
- disposed = false;
13
- last = '';
14
- pendingDelta = 0;
15
- onScroll;
16
- constructor(box, viewport, scroller, bridge) {
17
- this.box = box;
18
- this.viewport = viewport;
19
- this.scroller = scroller;
20
- this.bridge = bridge;
21
- this.view = box.ownerDocument.defaultView;
22
- this.onScroll = () => this.refresh();
23
- this.observer = new ResizeObserver(this.onScroll);
24
- this.observer.observe(box);
25
- this.observer.observe(scroller);
26
- this.attributes = new MutationObserver(this.onScroll);
27
- const row = box.closest('[data-index]');
28
- if (row) {
29
- this.attributes.observe(row, { attributes: true, attributeFilter: ['style'] });
30
- }
31
- scroller.addEventListener('scroll', this.onScroll, { passive: true });
32
- this.refresh();
4
+ box;
5
+ viewport;
6
+ scroller;
7
+ bridge;
8
+ observer;
9
+ attributes;
10
+ view;
11
+ frame = 0;
12
+ disposed = false;
13
+ last = '';
14
+ pendingDelta = 0;
15
+ onScroll;
16
+ constructor(box, viewport, scroller, bridge) {
17
+ this.box = box;
18
+ this.viewport = viewport;
19
+ this.scroller = scroller;
20
+ this.bridge = bridge;
21
+ this.view = box.ownerDocument.defaultView;
22
+ this.onScroll = () => this.refresh();
23
+ this.observer = new ResizeObserver(this.onScroll);
24
+ this.observer.observe(box);
25
+ this.observer.observe(scroller);
26
+ this.attributes = new MutationObserver(this.onScroll);
27
+ const row = box.closest('[data-index]');
28
+ if (row) {
29
+ this.attributes.observe(row, {
30
+ attributes: true,
31
+ attributeFilter: ['style']
32
+ });
33
33
  }
34
- refresh() {
35
- if (this.disposed) {
36
- return;
37
- }
38
- const top = this.offsetInScroller(this.scroller.getBoundingClientRect(), this.box.getBoundingClientRect());
39
- const available = this.scroller.clientHeight;
40
- const geometry = visualViewportGeometry(this.box.offsetHeight, available, top);
41
- this.viewport.style.height = `${geometry.height}px`;
42
- const key = `${geometry.top}:${geometry.height}`;
43
- if (key !== this.last) {
44
- this.last = key;
45
- this.bridge.setViewport(geometry);
46
- }
34
+ scroller.addEventListener('scroll', this.onScroll, {
35
+ passive: true
36
+ });
37
+ this.refresh();
38
+ }
39
+ refresh() {
40
+ if (this.disposed) {
41
+ return;
47
42
  }
48
- scroll(request) {
49
- const outer = this.scroller.getBoundingClientRect();
50
- const box = this.box.getBoundingClientRect();
51
- if (this.disposed || box.bottom <= outer.top || box.top >= outer.bottom) {
52
- return;
53
- }
54
- if ('by' in request) {
55
- this.pendingDelta += request.by;
56
- this.schedule();
57
- return;
58
- }
59
- this.pendingDelta = 0;
60
- const start = this.scroller.scrollTop + this.offsetInScroller(outer, box);
61
- const top = 'to' in request ? start + request.to : request.edge === 'start' ? 0 : this.scroller.scrollHeight;
62
- this.scroller.scrollTo({ top, behavior: 'instant' });
63
- this.refresh();
43
+ const top = this.offsetInScroller(this.scroller.getBoundingClientRect(), this.box.getBoundingClientRect());
44
+ const available = this.scroller.clientHeight;
45
+ const geometry = visualViewportGeometry(this.box.offsetHeight, available, top);
46
+ this.viewport.style.height = `${geometry.height}px`;
47
+ const key = `${geometry.top}:${geometry.height}`;
48
+ if (key !== this.last) {
49
+ this.last = key;
50
+ this.bridge.setViewport(geometry);
64
51
  }
65
- dispose() {
66
- this.disposed = true;
67
- this.view.cancelAnimationFrame(this.frame);
68
- this.observer.disconnect();
69
- this.attributes.disconnect();
70
- this.scroller.removeEventListener('scroll', this.onScroll);
71
- this.bridge.setViewport(null);
52
+ }
53
+ scroll(request) {
54
+ const outer = this.scroller.getBoundingClientRect();
55
+ const box = this.box.getBoundingClientRect();
56
+ if (this.disposed || box.bottom <= outer.top || box.top >= outer.bottom) {
57
+ return;
72
58
  }
73
- /* The box's top below the scroller's visible top, in the scroller's own pixels. */
74
- offsetInScroller(outer, box) {
75
- // A chat on a canvas can be scaled; messages inside its frame use unscaled CSS pixels.
76
- const scale = outer.height / this.scroller.offsetHeight || 1;
77
- return (box.top - outer.top) / scale - this.scroller.clientTop;
59
+ if ('by' in request) {
60
+ this.pendingDelta += request.by;
61
+ this.schedule();
62
+ return;
78
63
  }
79
- schedule() {
80
- if (this.frame || this.disposed) {
81
- return;
82
- }
83
- this.frame = this.view.requestAnimationFrame(() => {
84
- this.frame = 0;
85
- if (this.pendingDelta !== 0) {
86
- this.scroller.scrollBy({ top: this.pendingDelta, behavior: 'instant' });
87
- this.pendingDelta = 0;
88
- }
89
- this.refresh();
90
- });
64
+ this.pendingDelta = 0;
65
+ const start = this.scroller.scrollTop + this.offsetInScroller(outer, box);
66
+ const top = 'to' in request ? start + request.to : request.edge === 'start' ? 0 : this.scroller.scrollHeight;
67
+ this.scroller.scrollTo({
68
+ top,
69
+ behavior: 'instant'
70
+ });
71
+ this.refresh();
72
+ }
73
+ dispose() {
74
+ this.disposed = true;
75
+ this.view.cancelAnimationFrame(this.frame);
76
+ this.observer.disconnect();
77
+ this.attributes.disconnect();
78
+ this.scroller.removeEventListener('scroll', this.onScroll);
79
+ this.bridge.setViewport(null);
80
+ }
81
+ /* The box's top below the scroller's visible top, in the scroller's own pixels. */
82
+ offsetInScroller(outer, box) {
83
+ // A chat on a canvas can be scaled; messages inside its frame use unscaled CSS pixels.
84
+ const scale = outer.height / this.scroller.offsetHeight || 1;
85
+ return (box.top - outer.top) / scale - this.scroller.clientTop;
86
+ }
87
+ schedule() {
88
+ if (this.frame || this.disposed) {
89
+ return;
91
90
  }
92
- }
91
+ this.frame = this.view.requestAnimationFrame(() => {
92
+ this.frame = 0;
93
+ if (this.pendingDelta !== 0) {
94
+ this.scroller.scrollBy({
95
+ top: this.pendingDelta,
96
+ behavior: 'instant'
97
+ });
98
+ this.pendingDelta = 0;
99
+ }
100
+ this.refresh();
101
+ });
102
+ }
103
+ }
@@ -1,8 +1,16 @@
1
1
  import { create } from 'zustand';
2
- export const useVisualDialog = create((set) => ({
2
+ export const useVisualDialog = create(set => ({
3
+ chatKey: null,
4
+ visualId: null,
5
+ kind: null,
6
+ open: (chatKey, visualId, kind) => set({
7
+ chatKey,
8
+ visualId,
9
+ kind
10
+ }),
11
+ close: () => set({
3
12
  chatKey: null,
4
13
  visualId: null,
5
- kind: null,
6
- open: (chatKey, visualId, kind) => set({ chatKey, visualId, kind }),
7
- close: () => set({ chatKey: null, visualId: null, kind: null })
8
- }));
14
+ kind: null
15
+ })
16
+ }));
@@ -0,0 +1,29 @@
1
+ import type { ProviderPlatform } from '@adecore/agent-contracts';
2
+ import { type ChatHost, type CommandLook } from './host.js';
3
+ export declare function useHostCodeMode(): 'light' | 'dark';
4
+ export declare function useHostCodeThemes(): {
5
+ light: string;
6
+ dark: string;
7
+ };
8
+ export declare function useHostAttachmentUrl(...args: Parameters<ChatHost['attachments']['useUrl']>): ReturnType<ChatHost['attachments']['useUrl']>;
9
+ export declare function useHostTasks(...args: Parameters<ChatHost['tasks']['useTasks']>): ReturnType<ChatHost['tasks']['useTasks']>;
10
+ export declare function useHostTask(...args: Parameters<ChatHost['tasks']['useTask']>): ReturnType<ChatHost['tasks']['useTask']>;
11
+ export declare function useHostExtraPrompts(...args: Parameters<ChatHost['prompts']['useExtra']>): ReturnType<ChatHost['prompts']['useExtra']>;
12
+ export declare function useHostStreaming(): ReturnType<ChatHost['useStreaming']>;
13
+ export declare function useHostSendDelivery(): ReturnType<ChatHost['useSendDelivery']>;
14
+ export declare function useHostTimelineFind(...args: Parameters<ChatHost['useTimelineFind']>): ReturnType<ChatHost['useTimelineFind']>;
15
+ export declare function useHostReferableChats(): ReturnType<ChatHost['useReferableChats']>;
16
+ export declare function useHostLoginBlocked(...args: Parameters<ChatHost['useLoginBlocked']>): ReturnType<ChatHost['useLoginBlocked']>;
17
+ export declare function useHostMachinePlatform(scopeId: string): ProviderPlatform | null;
18
+ export declare function useHostProjectLook(...args: Parameters<ChatHost['useProjectLook']>): ReturnType<ChatHost['useProjectLook']>;
19
+ export declare function useHostMachineLabel(...args: Parameters<ChatHost['useMachineLabel']>): ReturnType<ChatHost['useMachineLabel']>;
20
+ export declare function useHostChatPlace(...args: Parameters<ChatHost['useChatPlace']>): ReturnType<ChatHost['useChatPlace']>;
21
+ export declare function useHostContextSources(...args: Parameters<ChatHost['useContextSources']>): ReturnType<ChatHost['useContextSources']>;
22
+ export declare function useHostHidesFolder(...args: Parameters<ChatHost['useHidesFolder']>): ReturnType<ChatHost['useHidesFolder']>;
23
+ export declare function useHostWelcome(...args: Parameters<ChatHost['useWelcome']>): ReturnType<ChatHost['useWelcome']>;
24
+ export declare function useHostResumeAtReset(...args: Parameters<ChatHost['useResumeAtReset']>): ReturnType<ChatHost['useResumeAtReset']>;
25
+ export declare function useHostComposerPlaceholder(...args: Parameters<ChatHost['useComposerPlaceholder']>): ReturnType<ChatHost['useComposerPlaceholder']>;
26
+ export declare function useHostThreadCards(...args: Parameters<ChatHost['useThreadCards']>): ReturnType<ChatHost['useThreadCards']>;
27
+ export declare function useHostReplyAuthor(...args: Parameters<ChatHost['useReplyAuthor']>): ReturnType<ChatHost['useReplyAuthor']>;
28
+ export declare function useHostMapSource(maps: NonNullable<ChatHost['maps']>, scopeId: string): ReturnType<NonNullable<ChatHost['maps']>['useSource']>;
29
+ export declare function useCommandNames(look: Required<Pick<CommandLook, 'useNames'>>, scopeId: string, chatId: string): ReturnType<NonNullable<CommandLook['useNames']>>;
@@ -0,0 +1,78 @@
1
+ 'use no memo';
2
+
3
+ import { useChatHost } from './host.js';
4
+ export function useHostCodeMode() {
5
+ return useChatHost().code.useMode();
6
+ }
7
+ export function useHostCodeThemes() {
8
+ return useChatHost().code.useThemes();
9
+ }
10
+ export function useHostAttachmentUrl(...args) {
11
+ return useChatHost().attachments.useUrl(...args);
12
+ }
13
+ export function useHostTasks(...args) {
14
+ return useChatHost().tasks.useTasks(...args);
15
+ }
16
+ export function useHostTask(...args) {
17
+ return useChatHost().tasks.useTask(...args);
18
+ }
19
+ export function useHostExtraPrompts(...args) {
20
+ return useChatHost().prompts.useExtra(...args);
21
+ }
22
+ export function useHostStreaming() {
23
+ return useChatHost().useStreaming();
24
+ }
25
+ export function useHostSendDelivery() {
26
+ return useChatHost().useSendDelivery();
27
+ }
28
+ export function useHostTimelineFind(...args) {
29
+ return useChatHost().useTimelineFind(...args);
30
+ }
31
+ export function useHostReferableChats() {
32
+ return useChatHost().useReferableChats();
33
+ }
34
+ export function useHostLoginBlocked(...args) {
35
+ return useChatHost().useLoginBlocked(...args);
36
+ }
37
+ const noPlatform = () => null;
38
+ /* Null where the host does not say, as it need not. */
39
+ export function useHostMachinePlatform(scopeId) {
40
+ const useMachinePlatform = useChatHost().useMachinePlatform ?? noPlatform;
41
+ return useMachinePlatform(scopeId);
42
+ }
43
+ export function useHostProjectLook(...args) {
44
+ return useChatHost().useProjectLook(...args);
45
+ }
46
+ export function useHostMachineLabel(...args) {
47
+ return useChatHost().useMachineLabel(...args);
48
+ }
49
+ export function useHostChatPlace(...args) {
50
+ return useChatHost().useChatPlace(...args);
51
+ }
52
+ export function useHostContextSources(...args) {
53
+ return useChatHost().useContextSources(...args);
54
+ }
55
+ export function useHostHidesFolder(...args) {
56
+ return useChatHost().useHidesFolder(...args);
57
+ }
58
+ export function useHostWelcome(...args) {
59
+ return useChatHost().useWelcome(...args);
60
+ }
61
+ export function useHostResumeAtReset(...args) {
62
+ return useChatHost().useResumeAtReset(...args);
63
+ }
64
+ export function useHostComposerPlaceholder(...args) {
65
+ return useChatHost().useComposerPlaceholder(...args);
66
+ }
67
+ export function useHostThreadCards(...args) {
68
+ return useChatHost().useThreadCards(...args);
69
+ }
70
+ export function useHostReplyAuthor(...args) {
71
+ return useChatHost().useReplyAuthor(...args);
72
+ }
73
+ export function useHostMapSource(maps, scopeId) {
74
+ return maps.useSource(scopeId);
75
+ }
76
+ export function useCommandNames(look, scopeId, chatId) {
77
+ return look.useNames(scopeId, chatId);
78
+ }