@schlenkr/ragents 0.1.10 → 0.1.11

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 (743) hide show
  1. package/apps/server/package.json +1 -1
  2. package/apps/server/src/access-projection.ts +4 -4
  3. package/apps/server/src/access-service.ts +3 -3
  4. package/apps/server/src/access-session.ts +19 -19
  5. package/apps/server/src/api/contracts.ts +29 -29
  6. package/apps/server/src/api/core-methods.ts +17 -17
  7. package/apps/server/src/api/delivery.ts +2 -2
  8. package/apps/server/src/api/reference.ts +27 -27
  9. package/apps/server/src/api/rights.ts +18 -18
  10. package/apps/server/src/chat-handler.ts +5 -5
  11. package/apps/server/src/config-definition.ts +37 -10
  12. package/apps/server/src/config-file.ts +49 -49
  13. package/apps/server/src/config.ts +2 -0
  14. package/apps/server/src/data-directory.ts +2 -2
  15. package/apps/server/src/external-access.ts +1 -1
  16. package/apps/server/src/folder-install.ts +1 -1
  17. package/apps/server/src/help-files.ts +1 -1
  18. package/apps/server/src/host-api.json +6 -1
  19. package/apps/server/src/host-api.ts +3 -2
  20. package/apps/server/src/host-record.ts +3 -3
  21. package/apps/server/src/host-resolution-hooks.mjs +4 -4
  22. package/apps/server/src/host-version.ts +17 -17
  23. package/apps/server/src/host-web.ts +5 -5
  24. package/apps/server/src/main.ts +6 -6
  25. package/apps/server/src/missing-environment.ts +6 -6
  26. package/apps/server/src/parent-watch.ts +4 -4
  27. package/apps/server/src/plugin-build/build.ts +31 -31
  28. package/apps/server/src/plugin-build/host-api-names.ts +7 -7
  29. package/apps/server/src/plugin-build/plugin-description.ts +15 -15
  30. package/apps/server/src/plugin-build/typecheck.ts +1 -1
  31. package/apps/server/src/plugin-support/actor-programs/app-project.ts +19 -19
  32. package/apps/server/src/plugin-support/actor-programs/client-compiler.ts +4 -4
  33. package/apps/server/src/plugin-support/actor-programs/client-contracts.ts +11 -11
  34. package/apps/server/src/plugin-support/actor-programs/contract.ts +17 -17
  35. package/apps/server/src/plugin-support/actor-programs/runtime-libraries.ts +1 -1
  36. package/apps/server/src/plugin-support/actor-programs/workflow/index.ts +5 -5
  37. package/apps/server/src/plugin-support/actor-programs/workflow/prompt-reader.ts +2 -2
  38. package/apps/server/src/plugin-support/chat-display-policy.ts +2 -2
  39. package/apps/server/src/plugin-support/front-matter.ts +6 -6
  40. package/apps/server/src/plugin-support/http.ts +2 -2
  41. package/apps/server/src/plugin-support/language-server/contract.ts +8 -8
  42. package/apps/server/src/plugin-support/language-server/plugin.ts +2 -2
  43. package/apps/server/src/plugin-support/language-server/snapshot-method.ts +1 -1
  44. package/apps/server/src/plugin-support/language-server/tools.ts +11 -11
  45. package/apps/server/src/plugin-support/model-aliases.ts +30 -20
  46. package/apps/server/src/plugin-support/model-choice.ts +15 -15
  47. package/apps/server/src/plugin-support/model-completion.ts +44 -23
  48. package/apps/server/src/plugin-support/model-providers.ts +170 -0
  49. package/apps/server/src/plugin-support/model-upstreams.ts +1 -1
  50. package/apps/server/src/plugin-support/native-typescript-child.ts +4 -4
  51. package/apps/server/src/plugin-support/native-typescript-executor.ts +12 -12
  52. package/apps/server/src/plugin-support/plugin-config.ts +3 -3
  53. package/apps/server/src/plugin-support/plugin-folder.ts +2 -2
  54. package/apps/server/src/plugin-support/plugins-root.ts +2 -2
  55. package/apps/server/src/plugin-support/process-sandbox.ts +39 -39
  56. package/apps/server/src/plugin-support/product-model-settings-contract.ts +3 -3
  57. package/apps/server/src/plugin-support/product-model-settings.ts +10 -10
  58. package/apps/server/src/plugin-support/product-relay.ts +9 -9
  59. package/apps/server/src/plugin-support/product-start-options.ts +4 -4
  60. package/apps/server/src/plugin-support/prompt.ts +1 -1
  61. package/apps/server/src/plugin-support/provision.ts +8 -8
  62. package/apps/server/src/plugin-support/run-scripts.ts +17 -17
  63. package/apps/server/src/plugin-support/skills.ts +18 -18
  64. package/apps/server/src/plugin-support/start-entries-contract.ts +17 -17
  65. package/apps/server/src/plugin-support/start-options-contract.ts +5 -5
  66. package/apps/server/src/plugin-support/system-prompts.ts +11 -11
  67. package/apps/server/src/plugin-support/thinking-level.ts +2 -2
  68. package/apps/server/src/plugin-support/tool-availability.ts +2 -2
  69. package/apps/server/src/plugin-support/workspace-ownership.ts +5 -5
  70. package/apps/server/src/plugin-support/workspace-sandbox-host.ts +37 -37
  71. package/apps/server/src/plugin-support/zip.ts +7 -7
  72. package/apps/server/src/profile/bundle-manifest.ts +17 -17
  73. package/apps/server/src/profile/compose.ts +12 -7
  74. package/apps/server/src/profile/plugin-discovery.ts +12 -12
  75. package/apps/server/src/profile/provisioning.ts +5 -5
  76. package/apps/server/src/profile-target.ts +10 -10
  77. package/apps/server/src/protocol.ts +2 -2
  78. package/apps/server/src/provider.ts +61 -56
  79. package/apps/server/src/ragents/actor-chat-history.ts +8 -8
  80. package/apps/server/src/ragents/chat-text-positions.ts +2 -2
  81. package/apps/server/src/ragents/coordinator.ts +2 -2
  82. package/apps/server/src/ragents/engine.ts +23 -23
  83. package/apps/server/src/ragents/global-chat.ts +8 -8
  84. package/apps/server/src/ragents/host-services.ts +6 -3
  85. package/apps/server/src/ragents/journal-chat-events.ts +1 -1
  86. package/apps/server/src/ragents/run-owner.ts +2 -2
  87. package/apps/server/src/ragents/session.ts +49 -49
  88. package/apps/server/src/ragents/typescript-tools.ts +12 -12
  89. package/apps/server/src/ragents/workspace-runtime.ts +28 -28
  90. package/apps/server/src/rpc/dispatcher.ts +19 -19
  91. package/apps/server/src/rpc/http-transport.ts +11 -11
  92. package/apps/server/src/rpc/stdio-transport.ts +3 -3
  93. package/apps/server/src/run-preparation-input.ts +5 -5
  94. package/apps/server/src/run-preparation.ts +24 -24
  95. package/apps/server/src/run-transfer.ts +39 -39
  96. package/apps/server/src/server.ts +48 -48
  97. package/apps/server/src/settings.ts +1 -1
  98. package/apps/server/src/startup.ts +3 -3
  99. package/apps/server/src/title-compactor.ts +9 -9
  100. package/apps/server/src/title-settings.ts +3 -3
  101. package/apps/server/src/web-bundles.ts +2 -2
  102. package/apps/server/src/web-stylesheet.ts +2 -2
  103. package/apps/web/dist/assets/{highlighted-body-KPVGNVTW-BO4wLQtE.js → highlighted-body-KPVGNVTW-BfNSGxjB.js} +1 -1
  104. package/apps/web/dist/assets/main-D6bsKcIK.js +11 -0
  105. package/apps/web/dist/assets/mermaid-HWGCJPDP-DROEqEeg.js +608 -0
  106. package/apps/web/dist/assets/runPanel-Dumuuqry.js +21 -0
  107. package/apps/web/dist/help/guide-access.html +5 -5
  108. package/apps/web/dist/help/guide-access.md +2 -2
  109. package/apps/web/dist/help/guide-clients.html +53 -54
  110. package/apps/web/dist/help/guide-clients.md +50 -51
  111. package/apps/web/dist/help/guide-distributed.html +12 -7
  112. package/apps/web/dist/help/guide-distributed.md +9 -4
  113. package/apps/web/dist/help/guide-functions.html +3 -3
  114. package/apps/web/dist/help/guide-getting-started.html +24 -15
  115. package/apps/web/dist/help/guide-getting-started.md +22 -12
  116. package/apps/web/dist/help/guide-ideas.html +3 -3
  117. package/apps/web/dist/help/guide-plugins.html +5 -4
  118. package/apps/web/dist/help/guide-plugins.md +2 -1
  119. package/apps/web/dist/help/guide-programs.html +3 -3
  120. package/apps/web/dist/help/guide-runtime.html +6 -6
  121. package/apps/web/dist/help/guide-runtime.md +3 -3
  122. package/apps/web/dist/help/guide.html +3 -3
  123. package/apps/web/dist/help/index.html +196 -144
  124. package/apps/web/dist/help/mini-app.css +6 -0
  125. package/apps/web/dist/help/mini-app.js +14 -14
  126. package/apps/web/dist/host-web.json +90 -90
  127. package/apps/web/dist/index.html +3 -3
  128. package/apps/web/dist/run-panel.html +3 -3
  129. package/apps/web/package.json +1 -1
  130. package/apps/web/src/AccessContext.tsx +15 -15
  131. package/apps/web/src/App.tsx +13 -13
  132. package/apps/web/src/DiffCode.tsx +2 -2
  133. package/apps/web/src/HelpDialog.tsx +3 -3
  134. package/apps/web/src/Overview.tsx +13 -13
  135. package/apps/web/src/PluginActivation.ts +1 -1
  136. package/apps/web/src/PluginChat.tsx +15 -15
  137. package/apps/web/src/PluginFailureNotice.tsx +1 -1
  138. package/apps/web/src/PluginRegistry.tsx +44 -44
  139. package/apps/web/src/RunPreparationChat.tsx +11 -11
  140. package/apps/web/src/RunStore.ts +1 -1
  141. package/apps/web/src/SessionList.tsx +14 -14
  142. package/apps/web/src/SettingsModal.tsx +112 -112
  143. package/apps/web/src/StartOptions.tsx +11 -11
  144. package/apps/web/src/StartSelection.tsx +11 -11
  145. package/apps/web/src/StartTiles.tsx +8 -8
  146. package/apps/web/src/SurfaceShortcuts.tsx +3 -3
  147. package/apps/web/src/ThemeSettings.tsx +8 -8
  148. package/apps/web/src/TitleModelSettings.tsx +13 -13
  149. package/apps/web/src/WorkspacePanel.tsx +9 -9
  150. package/apps/web/src/access-session.ts +4 -4
  151. package/apps/web/src/access-token.ts +5 -5
  152. package/apps/web/src/actor-conversation.ts +3 -3
  153. package/apps/web/src/actor-programs/client-ui/DataTable.tsx +8 -8
  154. package/apps/web/src/actor-programs/client-ui/FilePicker.tsx +4 -4
  155. package/apps/web/src/actor-programs/client-ui/FlowDiagram.tsx +13 -13
  156. package/apps/web/src/actor-programs/client-ui/Viewers.tsx +4 -4
  157. package/apps/web/src/actor-programs/client-ui/WorkflowDiagram.tsx +1 -1
  158. package/apps/web/src/actor-programs/client-ui/file-contracts.d.ts +4 -4
  159. package/apps/web/src/actor-programs/client-ui/file-selection.ts +1 -1
  160. package/apps/web/src/actor-programs/client-ui/viewer-contracts.d.ts +3 -3
  161. package/apps/web/src/api.ts +7 -7
  162. package/apps/web/src/chat/StoppedActorNotice.tsx +5 -5
  163. package/apps/web/src/chat/chat-target.ts +3 -3
  164. package/apps/web/src/chat/requests.ts +2 -2
  165. package/apps/web/src/chat/useAttachmentCapabilities.ts +2 -2
  166. package/apps/web/src/chat-view-settings.tsx +5 -6
  167. package/apps/web/src/diff-view.css +1 -1
  168. package/apps/web/src/highlighting.css +1 -1
  169. package/apps/web/src/language-server/language-server-plugin.tsx +30 -30
  170. package/apps/web/src/lib/labels.ts +6 -6
  171. package/apps/web/src/main.tsx +4 -4
  172. package/apps/web/src/offered-machines.ts +2 -2
  173. package/apps/web/src/page-opener.tsx +1 -1
  174. package/apps/web/src/panel/ConnectionsPage.tsx +23 -23
  175. package/apps/web/src/panel/LoginForm.tsx +6 -6
  176. package/apps/web/src/panel/PanelDialogs.tsx +22 -22
  177. package/apps/web/src/panel/PanelHeader.tsx +2 -2
  178. package/apps/web/src/panel/PanelPage.tsx +1 -1
  179. package/apps/web/src/panel/RunLine.tsx +4 -4
  180. package/apps/web/src/panel/RunsPage.tsx +15 -15
  181. package/apps/web/src/panel/StartPage.tsx +26 -26
  182. package/apps/web/src/panel/connection-state.ts +9 -9
  183. package/apps/web/src/panel/contract.ts +28 -28
  184. package/apps/web/src/panel.tsx +1 -1
  185. package/apps/web/src/plugin-bootstrap.ts +5 -5
  186. package/apps/web/src/product/ModelControl.tsx +3 -3
  187. package/apps/web/src/product/ProductModelSettings.tsx +16 -16
  188. package/apps/web/src/product/SystemPromptControl.tsx +11 -11
  189. package/apps/web/src/product/model-settings.ts +2 -2
  190. package/apps/web/src/rpc/client.ts +16 -16
  191. package/apps/web/src/rpc.ts +1 -1
  192. package/apps/web/src/run-overview.ts +1 -1
  193. package/apps/web/src/run-panel/RunPanelApp.tsx +39 -39
  194. package/apps/web/src/run-panel/RunPanelHeader.tsx +6 -6
  195. package/apps/web/src/run-panel/RunPanelMenu.tsx +6 -6
  196. package/apps/web/src/run-panel/RunPanelRail.tsx +4 -4
  197. package/apps/web/src/run-panel/RunPanelWorkspace.tsx +3 -3
  198. package/apps/web/src/run-panel/clipboard.ts +3 -3
  199. package/apps/web/src/run-panel/host-contract.ts +5 -5
  200. package/apps/web/src/run-panel/host.ts +15 -15
  201. package/apps/web/src/run-panel/input-bridge.ts +1 -1
  202. package/apps/web/src/run-panel/run-panel-location.ts +5 -5
  203. package/apps/web/src/run-panel/use-session-list.ts +1 -1
  204. package/apps/web/src/run-panel/workspace-state.ts +3 -3
  205. package/apps/web/src/run-panel.tsx +4 -4
  206. package/apps/web/src/run-preparation.ts +2 -2
  207. package/apps/web/src/run-view.ts +3 -3
  208. package/apps/web/src/settings-contributions.ts +32 -32
  209. package/apps/web/src/theme.ts +9 -9
  210. package/apps/web/src/title-model-settings.ts +6 -6
  211. package/apps/web/src/ui/ListDetail.tsx +9 -9
  212. package/apps/web/src/ui/dialog.tsx +2 -2
  213. package/apps/web/src/ui/modal-controller.ts +3 -3
  214. package/apps/web/src/ui/modal.tsx +2 -2
  215. package/apps/web/src/ui/popover.tsx +1 -1
  216. package/apps/web/src/ui/relative-time.ts +8 -8
  217. package/apps/web/src/ui/startup-notice.tsx +2 -2
  218. package/apps/web/src/ui/state-icon.tsx +1 -1
  219. package/apps/web/src/ui/state-vocabulary.ts +16 -16
  220. package/apps/web/src/ui/stop-button.tsx +2 -2
  221. package/bundles/ragents.activity/ragents-bundle.json +2 -2
  222. package/bundles/ragents.activity/web/classes.json +1 -1
  223. package/bundles/ragents.activity/web/index.js +1 -1
  224. package/bundles/ragents.activity/web/index.js.map +2 -2
  225. package/bundles/ragents.actor-programs/ragents-bundle.json +2 -2
  226. package/bundles/ragents.actor-programs/server/index.js +225 -225
  227. package/bundles/ragents.actor-programs/server/index.js.map +2 -2
  228. package/bundles/ragents.actor-programs/web/classes.json +1 -1
  229. package/bundles/ragents.actor-programs/web/index.js +1 -1
  230. package/bundles/ragents.actor-programs/web/index.js.map +3 -3
  231. package/bundles/ragents.ask/ragents-bundle.json +2 -2
  232. package/bundles/ragents.ask/server/chunks/{chunk-PDJO75SQ.js → chunk-YOV27MAR.js} +2 -2
  233. package/bundles/ragents.ask/server/chunks/chunk-YOV27MAR.js.map +7 -0
  234. package/bundles/ragents.ask/server/exports/server/contract.js +1 -1
  235. package/bundles/ragents.ask/server/index.js +23 -23
  236. package/bundles/ragents.ask/server/index.js.map +2 -2
  237. package/bundles/ragents.ask/web/chunks/{chunk-WFN4374U.js → chunk-D6NNB5DS.js} +1 -1
  238. package/bundles/ragents.ask/web/chunks/chunk-D6NNB5DS.js.map +7 -0
  239. package/bundles/ragents.ask/web/chunks/{chunk-MBRPS477.js → chunk-IQBHK7MV.js} +2 -2
  240. package/bundles/ragents.ask/web/chunks/{chunk-MBRPS477.js.map → chunk-IQBHK7MV.js.map} +3 -3
  241. package/bundles/ragents.ask/web/chunks/chunk-PWFIAMX4.js +2 -0
  242. package/bundles/ragents.ask/web/chunks/chunk-PWFIAMX4.js.map +7 -0
  243. package/bundles/ragents.ask/web/chunks/chunk-QHGKEESD.js +2 -0
  244. package/bundles/ragents.ask/web/chunks/chunk-QHGKEESD.js.map +7 -0
  245. package/bundles/ragents.ask/web/classes.json +1 -1
  246. package/bundles/ragents.ask/web/exports/ask-payload.js +1 -1
  247. package/bundles/ragents.ask/web/exports/web/QuestionCard.js +1 -1
  248. package/bundles/ragents.ask/web/exports/web/api.js +1 -1
  249. package/bundles/ragents.ask/web/index.js +1 -1
  250. package/bundles/ragents.ask/web/index.js.map +2 -2
  251. package/bundles/ragents.browser/executor/index.mjs +35 -35
  252. package/bundles/ragents.browser/executor/index.mjs.map +2 -2
  253. package/bundles/ragents.browser/ragents-bundle.json +2 -2
  254. package/bundles/ragents.browser/server/chunks/{chunk-CWLX4VA5.js → chunk-PYEISBNE.js} +1 -1
  255. package/bundles/ragents.browser/server/chunks/{chunk-CWLX4VA5.js.map → chunk-PYEISBNE.js.map} +1 -1
  256. package/bundles/ragents.browser/server/exports/server/contract.js +1 -1
  257. package/bundles/ragents.browser/server/index.js +31 -31
  258. package/bundles/ragents.browser/server/index.js.map +2 -2
  259. package/bundles/ragents.browser/skills/browser-testing/SKILL.md +30 -30
  260. package/bundles/ragents.documents/prompt.hbs +1 -1
  261. package/bundles/ragents.documents/ragents-bundle.json +2 -2
  262. package/bundles/ragents.documents/server/chunks/{chunk-QIECRZ7C.js → chunk-KMZWOVTI.js} +3 -3
  263. package/bundles/ragents.documents/server/chunks/{chunk-QIECRZ7C.js.map → chunk-KMZWOVTI.js.map} +2 -2
  264. package/bundles/ragents.documents/server/exports/contract.js +1 -1
  265. package/bundles/ragents.documents/server/index.js +26 -26
  266. package/bundles/ragents.documents/server/index.js.map +2 -2
  267. package/bundles/ragents.documents/web/classes.json +1 -1
  268. package/bundles/ragents.documents/web/index.js +1 -1
  269. package/bundles/ragents.documents/web/index.js.map +3 -3
  270. package/bundles/ragents.lsp-fsharp/executor/index.mjs +4 -4
  271. package/bundles/ragents.lsp-fsharp/executor/index.mjs.map +2 -2
  272. package/bundles/ragents.lsp-fsharp/ragents-bundle.json +2 -2
  273. package/bundles/ragents.lsp-fsharp/server/index.js +5 -5
  274. package/bundles/ragents.lsp-fsharp/server/index.js.map +2 -2
  275. package/bundles/ragents.lsp-fsharp/web/index.js +1 -1
  276. package/bundles/ragents.lsp-fsharp/web/index.js.map +2 -2
  277. package/bundles/ragents.lsp-roslyn/executor/index.mjs +3 -3
  278. package/bundles/ragents.lsp-roslyn/executor/index.mjs.map +2 -2
  279. package/bundles/ragents.lsp-roslyn/ragents-bundle.json +2 -2
  280. package/bundles/ragents.lsp-roslyn/server/index.js +17 -17
  281. package/bundles/ragents.lsp-roslyn/server/index.js.map +2 -2
  282. package/bundles/ragents.lsp-roslyn/web/index.js +1 -1
  283. package/bundles/ragents.lsp-roslyn/web/index.js.map +2 -2
  284. package/bundles/ragents.lsp-typescript/executor/index.mjs +2 -2
  285. package/bundles/ragents.lsp-typescript/executor/index.mjs.map +2 -2
  286. package/bundles/ragents.lsp-typescript/ragents-bundle.json +2 -2
  287. package/bundles/ragents.lsp-typescript/server/index.js.map +1 -1
  288. package/bundles/ragents.lsp-typescript/web/index.js +1 -1
  289. package/bundles/ragents.lsp-typescript/web/index.js.map +2 -2
  290. package/bundles/ragents.model-relay/ragents-bundle.json +7 -3
  291. package/bundles/ragents.model-relay/server/index.js +25 -21
  292. package/bundles/ragents.model-relay/server/index.js.map +2 -2
  293. package/bundles/ragents.orchestration/ragents-bundle.json +2 -2
  294. package/bundles/ragents.orchestration/server/index.js +28 -28
  295. package/bundles/ragents.orchestration/server/index.js.map +2 -2
  296. package/bundles/ragents.orchestration/web/chunks/{chunk-OSKPH6SZ.js → chunk-CFMJD5ZI.js} +2 -2
  297. package/bundles/ragents.orchestration/web/chunks/chunk-HOBLI364.js +2 -0
  298. package/bundles/ragents.orchestration/web/chunks/{chunk-OQYCNYXN.js.map → chunk-HOBLI364.js.map} +2 -2
  299. package/bundles/ragents.orchestration/web/chunks/{chunk-ODMMQGX2.js → chunk-UCIMT2R4.js} +2 -2
  300. package/bundles/ragents.orchestration/web/classes.json +1 -1
  301. package/bundles/ragents.orchestration/web/exports/web/program-slot.js +1 -1
  302. package/bundles/ragents.orchestration/web/exports/web/surface-entities.js +1 -1
  303. package/bundles/ragents.orchestration/web/index.js +8 -8
  304. package/bundles/ragents.orchestration/web/index.js.map +2 -2
  305. package/bundles/ragents.overseer/ragents-bundle.json +2 -2
  306. package/bundles/ragents.overseer/server/index.js +98 -98
  307. package/bundles/ragents.overseer/server/index.js.map +2 -2
  308. package/bundles/ragents.overseer/web/classes.json +1 -1
  309. package/bundles/ragents.overseer/web/index.js +1 -1
  310. package/bundles/ragents.overseer/web/index.js.map +2 -2
  311. package/bundles/ragents.processes/ragents-bundle.json +2 -2
  312. package/bundles/ragents.processes/server/index.js +11 -11
  313. package/bundles/ragents.processes/server/index.js.map +2 -2
  314. package/bundles/ragents.processes/web/classes.json +1 -1
  315. package/bundles/ragents.processes/web/index.js +3 -3
  316. package/bundles/ragents.processes/web/index.js.map +2 -2
  317. package/bundles/ragents.product/ragents-bundle.json +2 -2
  318. package/bundles/ragents.product/server/index.js +12 -13
  319. package/bundles/ragents.product/server/index.js.map +2 -2
  320. package/bundles/ragents.product/web/classes.json +1 -1
  321. package/bundles/ragents.product/web/index.js +1 -1
  322. package/bundles/ragents.product/web/index.js.map +2 -2
  323. package/bundles/ragents.profile-distribution/ragents-bundle.json +2 -2
  324. package/bundles/ragents.profile-distribution/server/index.js +31 -31
  325. package/bundles/ragents.profile-distribution/server/index.js.map +2 -2
  326. package/bundles/ragents.reference/ragents-bundle.json +2 -2
  327. package/bundles/ragents.reference/run-scripts/balcony-wizard/RUN.md +19 -19
  328. package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/package.json +2 -2
  329. package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/client.tsx +14 -14
  330. package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/conversation.ts +2 -2
  331. package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/tests/conversation.test.ts +49 -49
  332. package/bundles/ragents.reference/run-scripts/balcony-wizard/package.json +1 -1
  333. package/bundles/ragents.reference/run-scripts/balcony-wizard/src/server.ts +9 -9
  334. package/bundles/ragents.reference/run-scripts/balcony-wizard/tests/program.test.ts +9 -9
  335. package/bundles/ragents.reference/run-scripts/conversation-circle/RUN.md +7 -7
  336. package/bundles/ragents.reference/run-scripts/conversation-circle/package.json +1 -1
  337. package/bundles/ragents.reference/run-scripts/conversation-circle/src/server.ts +13 -13
  338. package/bundles/ragents.reference/run-scripts/conversation-circle/tests/helpers.ts +1 -1
  339. package/bundles/ragents.reference/run-scripts/conversation-circle/tests/program.test.ts +8 -8
  340. package/bundles/ragents.reference/run-scripts/learning-afternoon/RUN.md +16 -16
  341. package/bundles/ragents.reference/run-scripts/learning-afternoon/package.json +1 -1
  342. package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/experiment.md +1 -1
  343. package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/helper.md +3 -3
  344. package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/quiz.md +1 -1
  345. package/bundles/ragents.reference/run-scripts/learning-afternoon/src/server.ts +9 -9
  346. package/bundles/ragents.reference/run-scripts/learning-afternoon/tests/program.test.ts +39 -39
  347. package/bundles/ragents.reference/run-scripts/moderated-round/RUN.md +7 -7
  348. package/bundles/ragents.reference/run-scripts/moderated-round/package.json +1 -1
  349. package/bundles/ragents.reference/run-scripts/moderated-round/src/server.ts +9 -9
  350. package/bundles/ragents.reference/run-scripts/moderated-round/tests/helpers.ts +1 -1
  351. package/bundles/ragents.reference/run-scripts/moderated-round/tests/program.test.ts +6 -6
  352. package/bundles/ragents.reference/run-scripts/shared-actor-list/RUN.md +12 -12
  353. package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/package.json +2 -2
  354. package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/contract.ts +3 -3
  355. package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/tests/program.test.ts +4 -4
  356. package/bundles/ragents.reference/run-scripts/shared-actor-list/package.json +1 -1
  357. package/bundles/ragents.reference/run-scripts/shared-actor-list/src/server.ts +11 -11
  358. package/bundles/ragents.reference/run-scripts/shared-actor-list/tests/helpers.ts +1 -1
  359. package/bundles/ragents.reference/run-scripts/shared-actor-list/tests/program.test.ts +13 -13
  360. package/bundles/ragents.reference/run-scripts/word-game/RUN.md +18 -18
  361. package/bundles/ragents.reference/run-scripts/word-game/package.json +2 -2
  362. package/bundles/ragents.reference/run-scripts/word-game/src/client.tsx +1 -1
  363. package/bundles/ragents.reference/run-scripts/word-game/src/contract.ts +2 -2
  364. package/bundles/ragents.reference/run-scripts/word-game/src/server.ts +16 -16
  365. package/bundles/ragents.reference/run-scripts/word-game/tests/program.test.ts +39 -39
  366. package/bundles/ragents.reference/skills/100-shared-actor-list/SKILL.md +5 -5
  367. package/bundles/ragents.reference/skills/110-all-card-slots/SKILL.md +5 -5
  368. package/bundles/ragents.reference/skills/150-editorial-workbench/SKILL.md +5 -5
  369. package/bundles/ragents.reference/skills/160-learning-companion/SKILL.md +5 -5
  370. package/bundles/ragents.reference/skills/170-photo-collection/SKILL.md +5 -5
  371. package/bundles/ragents.reference/skills/180-decision-workbench/SKILL.md +5 -5
  372. package/bundles/ragents.reference/skills/190-review-queue/SKILL.md +5 -5
  373. package/bundles/ragents.reference/skills/20-circle-of-four/SKILL.md +5 -5
  374. package/bundles/ragents.reference/skills/200-typescript-diagnostics/SKILL.md +5 -5
  375. package/bundles/ragents.reference/skills/210-moderator-handover/SKILL.md +5 -5
  376. package/bundles/ragents.reference/skills/220-actor-approval-list/SKILL.md +5 -5
  377. package/bundles/ragents.reference/skills/230-shared-state-views/SKILL.md +5 -5
  378. package/bundles/ragents.reference/skills/240-live-result-list/SKILL.md +5 -5
  379. package/bundles/ragents.reference/skills/250-balcony-wizard/SKILL.md +5 -5
  380. package/bundles/ragents.reference/skills/30-llm-without-runtime-knowledge/SKILL.md +5 -5
  381. package/bundles/ragents.reference/skills/35-actor-input-fifo/SKILL.md +5 -5
  382. package/bundles/ragents.reference/skills/40-subscription-matrix/SKILL.md +5 -5
  383. package/bundles/ragents.reference/skills/50-subscription-removal/SKILL.md +5 -5
  384. package/bundles/ragents.reference/skills/60-stop-in-the-circle/SKILL.md +5 -5
  385. package/bundles/ragents.reference/skills/65-artifact-least-privilege/SKILL.md +5 -5
  386. package/bundles/ragents.reference/skills/70-headless-counter/SKILL.md +5 -5
  387. package/bundles/ragents.reference/skills/75-lsp-demo/SKILL.md +5 -5
  388. package/bundles/ragents.reference/skills/80-actor-text-analysis/SKILL.md +5 -5
  389. package/bundles/ragents.reference/skills/90-actor-notes/SKILL.md +5 -5
  390. package/bundles/ragents.reference/skills/95-hello-world/SKILL.md +5 -5
  391. package/bundles/ragents.reference/skills/decision-brief/SKILL.md +24 -24
  392. package/bundles/ragents.reference/skills/learning-sprint/SKILL.md +24 -24
  393. package/bundles/ragents.reference/web/classes.json +1 -1
  394. package/bundles/ragents.reference/web/index.js +1 -1
  395. package/bundles/ragents.reference/web/index.js.map +2 -2
  396. package/bundles/ragents.todo/ragents-bundle.json +2 -2
  397. package/bundles/ragents.todo/server/index.js +5 -5
  398. package/bundles/ragents.todo/server/index.js.map +2 -2
  399. package/bundles/ragents.todo/web/classes.json +1 -1
  400. package/bundles/ragents.todo/web/index.js +1 -1
  401. package/bundles/ragents.todo/web/index.js.map +2 -2
  402. package/bundles/ragents.transcript/ragents-bundle.json +2 -2
  403. package/bundles/ragents.transcript/server/index.js +11 -11
  404. package/bundles/ragents.transcript/server/index.js.map +2 -2
  405. package/bundles/ragents.watch/ragents-bundle.json +2 -2
  406. package/bundles/ragents.watch/server/index.js +48 -48
  407. package/bundles/ragents.watch/server/index.js.map +2 -2
  408. package/bundles/ragents.workspace/ragents-bundle.json +2 -2
  409. package/bundles/ragents.workspace/server/index.js +81 -81
  410. package/bundles/ragents.workspace/server/index.js.map +2 -2
  411. package/bundles/ragents.workspace/web/classes.json +1 -1
  412. package/bundles/ragents.workspace/web/index.js +1 -1
  413. package/bundles/ragents.workspace/web/index.js.map +2 -2
  414. package/package.json +4 -4
  415. package/packages/agent/dist/core/model-runtime.d.ts +7 -2
  416. package/packages/agent/dist/index.d.ts +1 -1
  417. package/packages/agent/dist/loop/agent-loop.d.ts +2 -2
  418. package/packages/agent/src/core/compaction/utils.ts +1 -1
  419. package/packages/agent/src/core/model-runtime.ts +45 -5
  420. package/packages/agent/src/index.ts +1 -1
  421. package/packages/agent/src/loop/agent-loop.ts +2 -2
  422. package/packages/ai/dist/models.d.ts +1 -0
  423. package/packages/ai/dist/models.generated.d.ts +4544 -983
  424. package/packages/ai/dist/providers/openrouter.models.d.ts +4544 -983
  425. package/packages/ai/src/api/ai-sdk.ts +33 -7
  426. package/packages/ai/src/api-registry.ts +1 -1
  427. package/packages/ai/src/index.ts +2 -2
  428. package/packages/ai/src/models.generated.ts +1 -1
  429. package/packages/ai/src/models.ts +1 -1
  430. package/packages/ai/src/providers/openrouter.models.ts +3723 -550
  431. package/packages/ragents/src/access.ts +12 -12
  432. package/packages/ragents/src/agents/actor-input.ts +33 -33
  433. package/packages/ragents/src/agents/catalog.ts +1 -1
  434. package/packages/ragents/src/agents/delivery.ts +17 -17
  435. package/packages/ragents/src/agents/plugins.ts +1 -1
  436. package/packages/ragents/src/agents/scheduler.ts +7 -7
  437. package/packages/ragents/src/agents/schemas.ts +1 -1
  438. package/packages/ragents/src/agents/tool-orientation.ts +4 -4
  439. package/packages/ragents/src/agents/tools.ts +20 -20
  440. package/packages/ragents/src/agents/toolset.ts +5 -5
  441. package/packages/ragents/src/agents/workspaces.ts +1 -1
  442. package/packages/ragents/src/domain/events.ts +1 -1
  443. package/packages/ragents/src/domain/model.ts +5 -5
  444. package/packages/ragents/src/drivers/agent-runtime.ts +1 -1
  445. package/packages/ragents/src/drivers/agent-turn.ts +4 -4
  446. package/packages/ragents/src/drivers/agent.ts +2 -2
  447. package/packages/ragents/src/drivers/attachments.ts +4 -4
  448. package/packages/ragents/src/http/contracts.ts +14 -14
  449. package/packages/ragents/src/http/methods.ts +6 -6
  450. package/packages/ragents/src/plugin-host.ts +119 -119
  451. package/packages/ragents/src/plugin-types.ts +16 -16
  452. package/packages/ragents/src/rpc/contract.ts +5 -5
  453. package/packages/ragents/src/rpc/contribution.ts +2 -2
  454. package/packages/ragents/src/rpc/peer.ts +11 -11
  455. package/packages/ragents/src/rpc/protocol.ts +2 -2
  456. package/packages/ragents/src/runtime/decisions/turns.ts +1 -1
  457. package/packages/ragents/src/runtime/journal.ts +10 -10
  458. package/packages/ragents/src/runtime/orchestration.ts +8 -8
  459. package/packages/ragents/src/runtime/stop.ts +2 -2
  460. package/packages/ragents/src/script/mediators.ts +35 -35
  461. package/packages/ragents/src/typescript/async-compiler.ts +14 -14
  462. package/packages/ragents/src/typescript/compiler-worker.ts +2 -2
  463. package/packages/ragents/src/typescript/compiler.ts +7 -7
  464. package/packages/ragents/src/typescript/snippet.ts +5 -5
  465. package/packages/workspace-executor/src/bash-launch.ts +13 -13
  466. package/packages/workspace-executor/src/commands.ts +18 -18
  467. package/packages/workspace-executor/src/context.ts +15 -15
  468. package/packages/workspace-executor/src/contributions.ts +35 -35
  469. package/packages/workspace-executor/src/errors.ts +1 -1
  470. package/packages/workspace-executor/src/executor.ts +15 -15
  471. package/packages/workspace-executor/src/files.ts +30 -30
  472. package/packages/workspace-executor/src/language-server/contract.ts +2 -2
  473. package/packages/workspace-executor/src/language-server/diagnostics.ts +4 -4
  474. package/packages/workspace-executor/src/language-server/host.ts +35 -35
  475. package/packages/workspace-executor/src/language-server/json-rpc.ts +4 -4
  476. package/packages/workspace-executor/src/language-server/module.ts +11 -11
  477. package/packages/workspace-executor/src/language-server/roots.ts +3 -3
  478. package/packages/workspace-executor/src/language-server/session.ts +15 -15
  479. package/packages/workspace-executor/src/language-server/workspace-solutions.ts +2 -2
  480. package/packages/workspace-executor/src/managed-process.ts +12 -12
  481. package/packages/workspace-executor/src/module.ts +8 -8
  482. package/packages/workspace-executor/src/modules.ts +3 -3
  483. package/packages/workspace-executor/src/paths.ts +11 -11
  484. package/packages/workspace-executor/src/process-sandbox.ts +3 -3
  485. package/packages/workspace-executor/src/processes/module.ts +3 -3
  486. package/packages/workspace-executor/src/processes/process-table.ts +20 -20
  487. package/packages/workspace-executor/src/processes/scanner.ts +3 -3
  488. package/packages/workspace-executor/src/processes/snapshot.ts +2 -2
  489. package/packages/workspace-executor/src/processes/terminator.ts +13 -13
  490. package/packages/workspace-executor/src/run-folders.ts +3 -3
  491. package/packages/workspace-executor/src/safe-environment.ts +4 -4
  492. package/packages/workspace-executor/src/sandbox-tools.ts +28 -28
  493. package/packages/workspace-executor/src/session-ident.ts +2 -2
  494. package/packages/workspace-executor/src/shell-platform.ts +2 -2
  495. package/packages/workspace-executor/src/tools.ts +5 -5
  496. package/plugins/ragents.activity/web/ActivityHeader.tsx +3 -3
  497. package/plugins/ragents.activity/web/activity.ts +2 -2
  498. package/plugins/ragents.actor-programs/server/access-projections.ts +1 -1
  499. package/plugins/ragents.actor-programs/server/agent-tools.ts +2 -2
  500. package/plugins/ragents.actor-programs/server/capability-resolver.ts +3 -3
  501. package/plugins/ragents.actor-programs/server/controls-template.ts +46 -46
  502. package/plugins/ragents.actor-programs/server/controls-tool.ts +4 -4
  503. package/plugins/ragents.actor-programs/server/limits.ts +3 -3
  504. package/plugins/ragents.actor-programs/server/methods.ts +1 -1
  505. package/plugins/ragents.actor-programs/server/project-diagnostics.ts +8 -8
  506. package/plugins/ragents.actor-programs/server/routes.ts +8 -8
  507. package/plugins/ragents.actor-programs/server/runtime.ts +90 -90
  508. package/plugins/ragents.actor-programs/server/templates.ts +59 -59
  509. package/plugins/ragents.actor-programs/server/test-report.ts +5 -5
  510. package/plugins/ragents.actor-programs/server/tool-contributor.ts +1 -1
  511. package/plugins/ragents.actor-programs/web/ActorViewFrame.tsx +17 -17
  512. package/plugins/ragents.actor-programs/web/AppsPanel.tsx +26 -26
  513. package/plugins/ragents.actor-programs/web/EmbeddedApps.tsx +3 -3
  514. package/plugins/ragents.actor-programs/web/FullscreenHost.tsx +2 -2
  515. package/plugins/ragents.actor-programs/web/FunctionForm.tsx +16 -16
  516. package/plugins/ragents.actor-programs/web/ProgramSource.tsx +5 -5
  517. package/plugins/ragents.actor-programs/web/api.ts +36 -36
  518. package/plugins/ragents.actor-programs/web/bridge.ts +8 -8
  519. package/plugins/ragents.actor-programs/web/chat-state.ts +4 -4
  520. package/plugins/ragents.actor-programs/web/context.ts +1 -1
  521. package/plugins/ragents.actor-programs/web/function-input.ts +6 -6
  522. package/plugins/ragents.actor-programs/web/index.tsx +1 -1
  523. package/plugins/ragents.actor-programs/web/program-state.ts +4 -4
  524. package/plugins/ragents.ask/ask-payload.ts +1 -1
  525. package/plugins/ragents.ask/contract.ts +5 -5
  526. package/plugins/ragents.ask/server/answer-method.ts +1 -1
  527. package/plugins/ragents.ask/server/ask-service.ts +9 -9
  528. package/plugins/ragents.ask/server/ask-tool.ts +10 -10
  529. package/plugins/ragents.ask/server/contract.ts +5 -5
  530. package/plugins/ragents.ask/web/AskActionView.tsx +1 -1
  531. package/plugins/ragents.ask/web/QuestionCard.tsx +22 -22
  532. package/plugins/ragents.ask/web/index.tsx +2 -2
  533. package/plugins/ragents.browser/executor/contract.ts +6 -6
  534. package/plugins/ragents.browser/executor/index.ts +1 -1
  535. package/plugins/ragents.browser/executor/module.ts +6 -6
  536. package/plugins/ragents.browser/executor/pages.ts +32 -32
  537. package/plugins/ragents.browser/executor/playwright.ts +8 -8
  538. package/plugins/ragents.browser/provision.ts +7 -7
  539. package/plugins/ragents.browser/server/browser.ts +14 -14
  540. package/plugins/ragents.browser/server/contract.ts +1 -1
  541. package/plugins/ragents.browser/server/index.ts +1 -1
  542. package/plugins/ragents.browser/server/tools.ts +14 -14
  543. package/plugins/ragents.browser/skills/browser-testing/SKILL.md +30 -30
  544. package/plugins/ragents.documents/contract.ts +2 -2
  545. package/plugins/ragents.documents/prompt.hbs +1 -1
  546. package/plugins/ragents.documents/server/document-write-tool.ts +12 -12
  547. package/plugins/ragents.documents/server/files-route.ts +6 -6
  548. package/plugins/ragents.documents/server/show-document-tool.ts +26 -26
  549. package/plugins/ragents.documents/server/store.ts +1 -1
  550. package/plugins/ragents.documents/web/DocumentViewer.tsx +37 -37
  551. package/plugins/ragents.documents/web/index.tsx +11 -11
  552. package/plugins/ragents.lsp-fsharp/executor.ts +7 -7
  553. package/plugins/ragents.lsp-fsharp/provision.ts +7 -7
  554. package/plugins/ragents.lsp-roslyn/executor.ts +5 -5
  555. package/plugins/ragents.lsp-roslyn/provision.ts +4 -4
  556. package/plugins/ragents.lsp-roslyn/server/index.ts +5 -5
  557. package/plugins/ragents.lsp-roslyn/server/solution-on-start.ts +13 -13
  558. package/plugins/ragents.lsp-typescript/executor.ts +3 -3
  559. package/plugins/ragents.model-relay/server/config.ts +6 -2
  560. package/plugins/ragents.model-relay/server/index.ts +2 -2
  561. package/plugins/ragents.model-relay/server/relay.ts +23 -22
  562. package/plugins/ragents.orchestration/contract.ts +8 -8
  563. package/plugins/ragents.orchestration/server/index.ts +4 -4
  564. package/plugins/ragents.orchestration/server/run-stop-tool.ts +3 -3
  565. package/plugins/ragents.orchestration/server/surface-tool.ts +5 -5
  566. package/plugins/ragents.orchestration/tiled-layout.ts +11 -11
  567. package/plugins/ragents.orchestration/web/ActorChat.tsx +2 -2
  568. package/plugins/ragents.orchestration/web/ActorChatControls.tsx +4 -4
  569. package/plugins/ragents.orchestration/web/ActorChatPreview.tsx +1 -1
  570. package/plugins/ragents.orchestration/web/ActorPopout.tsx +1 -1
  571. package/plugins/ragents.orchestration/web/ActorShortcut.tsx +6 -6
  572. package/plugins/ragents.orchestration/web/ActorSurfaceControls.tsx +15 -15
  573. package/plugins/ragents.orchestration/web/Center.tsx +5 -5
  574. package/plugins/ragents.orchestration/web/DocumentsSection.tsx +2 -2
  575. package/plugins/ragents.orchestration/web/ExecutionsPanel.tsx +15 -15
  576. package/plugins/ragents.orchestration/web/FlowInspector.tsx +103 -103
  577. package/plugins/ragents.orchestration/web/JournalStatus.tsx +11 -11
  578. package/plugins/ragents.orchestration/web/MaterialBody.tsx +2 -2
  579. package/plugins/ragents.orchestration/web/StopRunButton.tsx +6 -6
  580. package/plugins/ragents.orchestration/web/TiledSurface.tsx +9 -9
  581. package/plugins/ragents.orchestration/web/actor-header-settings.ts +5 -5
  582. package/plugins/ragents.orchestration/web/constants.ts +2 -2
  583. package/plugins/ragents.orchestration/web/executions.ts +6 -6
  584. package/plugins/ragents.orchestration/web/format.ts +1 -1
  585. package/plugins/ragents.orchestration/web/index.tsx +2 -2
  586. package/plugins/ragents.orchestration/web/run-panel/AddresseeControl.tsx +7 -7
  587. package/plugins/ragents.orchestration/web/run-panel/AddresseeTree.tsx +8 -8
  588. package/plugins/ragents.orchestration/web/run-panel/RunPanel.tsx +22 -22
  589. package/plugins/ragents.orchestration/web/run-panel/RunPanelSettings.tsx +7 -7
  590. package/plugins/ragents.orchestration/web/run-panel/addressee-tree.ts +13 -13
  591. package/plugins/ragents.orchestration/web/run-panel/run-panel-actors.ts +3 -3
  592. package/plugins/ragents.orchestration/web/run-panel/run-panel-settings.ts +2 -2
  593. package/plugins/ragents.orchestration/web/run-panel/run-panel-startup.ts +3 -3
  594. package/plugins/ragents.orchestration/web/run-panel/run-panel-state.ts +7 -7
  595. package/plugins/ragents.orchestration/web/run-panel/sheet-status.ts +9 -9
  596. package/plugins/ragents.orchestration/web/surface-startup.ts +8 -8
  597. package/plugins/ragents.orchestration/web/surface-view-settings.ts +1 -1
  598. package/plugins/ragents.orchestration/web/tiled-view-settings.ts +1 -1
  599. package/plugins/ragents.overseer/contract.ts +20 -20
  600. package/plugins/ragents.overseer/server/api.ts +6 -6
  601. package/plugins/ragents.overseer/server/coordinator-prompt.ts +10 -10
  602. package/plugins/ragents.overseer/server/coordinator.ts +4 -4
  603. package/plugins/ragents.overseer/server/index.ts +24 -24
  604. package/plugins/ragents.overseer/server/orientation.ts +8 -8
  605. package/plugins/ragents.overseer/server/quick-answer.ts +9 -9
  606. package/plugins/ragents.overseer/server/run-directory.ts +5 -5
  607. package/plugins/ragents.overseer/server/settings.ts +6 -6
  608. package/plugins/ragents.overseer/server/user-location.ts +16 -16
  609. package/plugins/ragents.overseer/web/ModelSettings.tsx +9 -9
  610. package/plugins/ragents.overseer/web/index.tsx +20 -20
  611. package/plugins/ragents.overseer/web/model-settings.ts +1 -1
  612. package/plugins/ragents.overseer/web/quick-answers.ts +2 -2
  613. package/plugins/ragents.processes/contract.ts +5 -5
  614. package/plugins/ragents.processes/server/methods.ts +4 -4
  615. package/plugins/ragents.processes/server/observer.ts +8 -8
  616. package/plugins/ragents.processes/server/run-processes.ts +2 -2
  617. package/plugins/ragents.processes/web/ProcessHeader.tsx +10 -10
  618. package/plugins/ragents.processes/web/processes.ts +10 -10
  619. package/plugins/ragents.product/server/config.ts +1 -1
  620. package/plugins/ragents.product/server/index.ts +4 -4
  621. package/plugins/ragents.product/server/runtime.ts +9 -10
  622. package/plugins/ragents.product/web/index.tsx +1 -1
  623. package/plugins/ragents.profile-distribution/contract.ts +10 -10
  624. package/plugins/ragents.profile-distribution/server/archive.ts +20 -20
  625. package/plugins/ragents.profile-distribution/server/config.ts +2 -2
  626. package/plugins/ragents.profile-distribution/server/index.ts +4 -4
  627. package/plugins/ragents.reference/examples.ts +27 -27
  628. package/plugins/ragents.reference/run-scripts/balcony-wizard/RUN.md +19 -19
  629. package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/package.json +2 -2
  630. package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/client.tsx +14 -14
  631. package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/conversation.ts +2 -2
  632. package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/tests/conversation.test.ts +49 -49
  633. package/plugins/ragents.reference/run-scripts/balcony-wizard/package.json +1 -1
  634. package/plugins/ragents.reference/run-scripts/balcony-wizard/src/server.ts +9 -9
  635. package/plugins/ragents.reference/run-scripts/balcony-wizard/tests/program.test.ts +9 -9
  636. package/plugins/ragents.reference/run-scripts/conversation-circle/RUN.md +7 -7
  637. package/plugins/ragents.reference/run-scripts/conversation-circle/package.json +1 -1
  638. package/plugins/ragents.reference/run-scripts/conversation-circle/src/server.ts +13 -13
  639. package/plugins/ragents.reference/run-scripts/conversation-circle/tests/helpers.ts +1 -1
  640. package/plugins/ragents.reference/run-scripts/conversation-circle/tests/program.test.ts +8 -8
  641. package/plugins/ragents.reference/run-scripts/learning-afternoon/RUN.md +16 -16
  642. package/plugins/ragents.reference/run-scripts/learning-afternoon/package.json +1 -1
  643. package/plugins/ragents.reference/run-scripts/learning-afternoon/prompts/experiment.md +1 -1
  644. package/plugins/ragents.reference/run-scripts/learning-afternoon/prompts/helper.md +3 -3
  645. package/plugins/ragents.reference/run-scripts/learning-afternoon/prompts/quiz.md +1 -1
  646. package/plugins/ragents.reference/run-scripts/learning-afternoon/src/server.ts +9 -9
  647. package/plugins/ragents.reference/run-scripts/learning-afternoon/tests/program.test.ts +39 -39
  648. package/plugins/ragents.reference/run-scripts/moderated-round/RUN.md +7 -7
  649. package/plugins/ragents.reference/run-scripts/moderated-round/package.json +1 -1
  650. package/plugins/ragents.reference/run-scripts/moderated-round/src/server.ts +9 -9
  651. package/plugins/ragents.reference/run-scripts/moderated-round/tests/helpers.ts +1 -1
  652. package/plugins/ragents.reference/run-scripts/moderated-round/tests/program.test.ts +6 -6
  653. package/plugins/ragents.reference/run-scripts/shared-actor-list/RUN.md +12 -12
  654. package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/package.json +2 -2
  655. package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/contract.ts +3 -3
  656. package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/tests/program.test.ts +4 -4
  657. package/plugins/ragents.reference/run-scripts/shared-actor-list/package.json +1 -1
  658. package/plugins/ragents.reference/run-scripts/shared-actor-list/src/server.ts +11 -11
  659. package/plugins/ragents.reference/run-scripts/shared-actor-list/tests/helpers.ts +1 -1
  660. package/plugins/ragents.reference/run-scripts/shared-actor-list/tests/program.test.ts +13 -13
  661. package/plugins/ragents.reference/run-scripts/word-game/RUN.md +18 -18
  662. package/plugins/ragents.reference/run-scripts/word-game/package.json +2 -2
  663. package/plugins/ragents.reference/run-scripts/word-game/src/client.tsx +1 -1
  664. package/plugins/ragents.reference/run-scripts/word-game/src/contract.ts +2 -2
  665. package/plugins/ragents.reference/run-scripts/word-game/src/server.ts +16 -16
  666. package/plugins/ragents.reference/run-scripts/word-game/tests/program.test.ts +39 -39
  667. package/plugins/ragents.reference/skills/100-shared-actor-list/SKILL.md +5 -5
  668. package/plugins/ragents.reference/skills/110-all-card-slots/SKILL.md +5 -5
  669. package/plugins/ragents.reference/skills/150-editorial-workbench/SKILL.md +5 -5
  670. package/plugins/ragents.reference/skills/160-learning-companion/SKILL.md +5 -5
  671. package/plugins/ragents.reference/skills/170-photo-collection/SKILL.md +5 -5
  672. package/plugins/ragents.reference/skills/180-decision-workbench/SKILL.md +5 -5
  673. package/plugins/ragents.reference/skills/190-review-queue/SKILL.md +5 -5
  674. package/plugins/ragents.reference/skills/20-circle-of-four/SKILL.md +5 -5
  675. package/plugins/ragents.reference/skills/200-typescript-diagnostics/SKILL.md +5 -5
  676. package/plugins/ragents.reference/skills/210-moderator-handover/SKILL.md +5 -5
  677. package/plugins/ragents.reference/skills/220-actor-approval-list/SKILL.md +5 -5
  678. package/plugins/ragents.reference/skills/230-shared-state-views/SKILL.md +5 -5
  679. package/plugins/ragents.reference/skills/240-live-result-list/SKILL.md +5 -5
  680. package/plugins/ragents.reference/skills/250-balcony-wizard/SKILL.md +5 -5
  681. package/plugins/ragents.reference/skills/30-llm-without-runtime-knowledge/SKILL.md +5 -5
  682. package/plugins/ragents.reference/skills/35-actor-input-fifo/SKILL.md +5 -5
  683. package/plugins/ragents.reference/skills/40-subscription-matrix/SKILL.md +5 -5
  684. package/plugins/ragents.reference/skills/50-subscription-removal/SKILL.md +5 -5
  685. package/plugins/ragents.reference/skills/60-stop-in-the-circle/SKILL.md +5 -5
  686. package/plugins/ragents.reference/skills/65-artifact-least-privilege/SKILL.md +5 -5
  687. package/plugins/ragents.reference/skills/70-headless-counter/SKILL.md +5 -5
  688. package/plugins/ragents.reference/skills/75-lsp-demo/SKILL.md +5 -5
  689. package/plugins/ragents.reference/skills/80-actor-text-analysis/SKILL.md +5 -5
  690. package/plugins/ragents.reference/skills/90-actor-notes/SKILL.md +5 -5
  691. package/plugins/ragents.reference/skills/95-hello-world/SKILL.md +5 -5
  692. package/plugins/ragents.reference/skills/decision-brief/SKILL.md +24 -24
  693. package/plugins/ragents.reference/skills/learning-sprint/SKILL.md +24 -24
  694. package/plugins/ragents.reference/walkthroughs.ts +128 -128
  695. package/plugins/ragents.reference/web/StartGuides.tsx +23 -23
  696. package/plugins/ragents.todo/server/todo-tool.ts +6 -6
  697. package/plugins/ragents.todo/web/TodoSection.tsx +1 -1
  698. package/plugins/ragents.transcript/server/transcript.ts +11 -11
  699. package/plugins/ragents.watch/server/condition.ts +4 -4
  700. package/plugins/ragents.watch/server/functions.ts +27 -27
  701. package/plugins/ragents.watch/server/observation.ts +2 -2
  702. package/plugins/ragents.watch/server/service.ts +14 -14
  703. package/plugins/ragents.workspace/client/transport.ts +1 -1
  704. package/plugins/ragents.workspace/client/workspace-client.ts +54 -54
  705. package/plugins/ragents.workspace/contract.ts +46 -46
  706. package/plugins/ragents.workspace/server/binding.ts +20 -20
  707. package/plugins/ragents.workspace/server/browse-route.ts +8 -8
  708. package/plugins/ragents.workspace/server/clients.ts +42 -42
  709. package/plugins/ragents.workspace/server/config.ts +7 -7
  710. package/plugins/ragents.workspace/server/index.ts +3 -3
  711. package/plugins/ragents.workspace/server/runtime.ts +26 -26
  712. package/plugins/ragents.workspace/server/shell-platform.ts +1 -1
  713. package/plugins/ragents.workspace/web/FileBrowser.tsx +10 -10
  714. package/plugins/ragents.workspace/web/WorkspaceBinding.tsx +24 -24
  715. package/plugins/ragents.workspace/web/index.tsx +1 -1
  716. package/ragents.config.core.ts +1 -1
  717. package/ragents.config.developer.ts +3 -3
  718. package/ragents.config.showcase.ts +2 -2
  719. package/scripts/agent/agent-cli.ts +96 -96
  720. package/scripts/agent/journal.ts +5 -5
  721. package/scripts/agent/turn-control.ts +4 -4
  722. package/scripts/package/build-package.ts +29 -29
  723. package/scripts/package/host-links.mjs +3 -3
  724. package/scripts/package/publish-package.ts +29 -29
  725. package/scripts/package/ragents.mjs +19 -19
  726. package/scripts/plugin/build-builtin-plugins.ts +5 -5
  727. package/scripts/plugin/plugin-cli.ts +14 -14
  728. package/scripts/provision/run-provision.ts +14 -15
  729. package/scripts/remote/connect.ts +46 -46
  730. package/scripts/remote/start.ts +18 -18
  731. package/scripts/workspace-client/run-workspace-client.ts +23 -23
  732. package/apps/web/dist/assets/main-DnnqWHkH.js +0 -11
  733. package/apps/web/dist/assets/mermaid-HWGCJPDP-BLLeth5_.js +0 -568
  734. package/apps/web/dist/assets/runPanel-DPm7s3KM.js +0 -21
  735. package/bundles/ragents.ask/server/chunks/chunk-PDJO75SQ.js.map +0 -7
  736. package/bundles/ragents.ask/web/chunks/chunk-4VXWWEG7.js +0 -2
  737. package/bundles/ragents.ask/web/chunks/chunk-4VXWWEG7.js.map +0 -7
  738. package/bundles/ragents.ask/web/chunks/chunk-VUBJDIKQ.js +0 -2
  739. package/bundles/ragents.ask/web/chunks/chunk-VUBJDIKQ.js.map +0 -7
  740. package/bundles/ragents.ask/web/chunks/chunk-WFN4374U.js.map +0 -7
  741. package/bundles/ragents.orchestration/web/chunks/chunk-OQYCNYXN.js +0 -2
  742. /package/bundles/ragents.orchestration/web/chunks/{chunk-OSKPH6SZ.js.map → chunk-CFMJD5ZI.js.map} +0 -0
  743. /package/bundles/ragents.orchestration/web/chunks/{chunk-ODMMQGX2.js.map → chunk-UCIMT2R4.js.map} +0 -0
@@ -51,7 +51,7 @@ export function Overview({ onBusy, onClose, onOpen, open, panels, registry, runs
51
51
 
52
52
  return (
53
53
  <Modal className="pointer-events-none flex h-[min(900px,100%)] w-[min(1440px,100%)] flex-col rounded-none bg-transparent p-0 ring-0" keepMounted onClose={onClose} open={open} scope="workspace" size="full">
54
- <DialogTitle className="sr-only">Übersicht</DialogTitle>
54
+ <DialogTitle className="sr-only">Overview</DialogTitle>
55
55
  <div className="flex min-h-0 min-w-0 flex-1 gap-4 max-[900px]:flex-col" id="app-overview" ref={overviewRef}>
56
56
  {panels.map(({ id, Panel }) => (
57
57
  <OverviewPanelHost id={id} key={id} onBusy={onBusy} onClose={onClose} onOpen={onOpen} open={open} Panel={Panel} registry={registry} />
@@ -125,17 +125,17 @@ function RunsSection({ activeId, canCreate, canDelete, onCreate, onDelete, onOpe
125
125
  <h2 className="text-[0.95rem] font-semibold" id="overview-runs-title">
126
126
  Runs <span className="ml-1 text-[0.8rem] font-medium tabular-nums text-muted-foreground">{sessions.length}</span>
127
127
  </h2>
128
- {unreachable && <span className="text-[0.72rem] font-medium text-destructive" role="alert">Server nicht erreichbar</span>}
128
+ {unreachable && <span className="text-[0.72rem] font-medium text-destructive" role="alert">Server unreachable</span>}
129
129
  {canDelete && sessions.length > 0 && (
130
130
  <div className="ml-auto flex flex-wrap items-center gap-1">
131
131
  {selectMode
132
132
  ? (
133
133
  <>
134
134
  <Button onClick={() => setSelectedIds(new Set(sessions.map((session) => session.id)))} size="sm" variant="ghost">
135
- Alle
135
+ All
136
136
  </Button>
137
137
  <Button onClick={() => setSelectedIds(new Set())} size="sm" variant="ghost">
138
- Keine
138
+ None
139
139
  </Button>
140
140
  <Button
141
141
  className="ml-auto"
@@ -144,23 +144,23 @@ function RunsSection({ activeId, canCreate, canDelete, onCreate, onDelete, onOpe
144
144
  size="sm"
145
145
  variant="destructive"
146
146
  >
147
- Löschen ({selectedIds.size})
147
+ Delete ({selectedIds.size})
148
148
  </Button>
149
149
  <Button onClick={exitSelectMode} size="sm" variant="ghost">
150
- Fertig
150
+ Done
151
151
  </Button>
152
152
  </>
153
153
  )
154
154
  : (
155
155
  <Button onClick={() => setSelectMode(true)} size="sm" variant="ghost">
156
- Auswählen
156
+ Select
157
157
  </Button>
158
158
  )}
159
159
  </div>
160
160
  )}
161
161
  </header>
162
162
  {error && <p className="text-[0.72rem] font-medium text-destructive" role="alert">{error}</p>}
163
- <p className="mb-5.5 text-[0.75rem] text-muted-foreground">Nach letzter Aktivität im Run. Neue Aktivität ist seit Deinem letzten Ansehen hinzugekommen.</p>
163
+ <p className="mb-5.5 text-[0.75rem] text-muted-foreground">By last activity in the run. New activity has come in since you last viewed it.</p>
164
164
  <SessionList
165
165
  seenRevisions={seenRevisions}
166
166
  activeId={activeId}
@@ -177,19 +177,19 @@ function RunsSection({ activeId, canCreate, canDelete, onCreate, onDelete, onOpe
177
177
  <Dialog open onOpenChange={(open) => { if (!open && !deleting) setConfirmBulkDelete(false); }}>
178
178
  <DialogContent scope="page" showCloseButton={false} size="small">
179
179
  <DialogHeader>
180
- <DialogTitle>Runs löschen</DialogTitle>
180
+ <DialogTitle>Delete runs</DialogTitle>
181
181
  <DialogDescription>
182
182
  {selectedIds.size === 1
183
- ? "Ein Run wird endgültig gelöscht."
184
- : `${selectedIds.size} Runs werden endgültig gelöscht.`}
183
+ ? "One run will be permanently deleted."
184
+ : `${selectedIds.size} runs will be permanently deleted.`}
185
185
  </DialogDescription>
186
186
  </DialogHeader>
187
187
  <DialogFooter>
188
188
  <Button disabled={deleting} onClick={() => setConfirmBulkDelete(false)} variant="outline">
189
- Abbrechen
189
+ Cancel
190
190
  </Button>
191
191
  <Button disabled={deleting} onClick={() => void removeSelected()}>
192
- {deleting ? "Löscht ..." : `Löschen (${selectedIds.size})`}
192
+ {deleting ? "Deleting ..." : `Delete (${selectedIds.size})`}
193
193
  </Button>
194
194
  </DialogFooter>
195
195
  </DialogContent>
@@ -38,7 +38,7 @@ const linkStylesheet = (url: string): Promise<void> => new Promise((resolve, rej
38
38
  link.rel = "stylesheet";
39
39
  link.href = url;
40
40
  link.onload = () => resolve();
41
- link.onerror = () => reject(new Error(`das Stylesheet ${url} fehlt`));
41
+ link.onerror = () => reject(new Error(`the stylesheet ${url} is missing`));
42
42
  document.head.append(link);
43
43
  });
44
44
 
@@ -51,7 +51,7 @@ import {
51
51
 
52
52
  const chatElementClass = "flex h-full min-h-0 w-full min-w-0 flex-1 flex-col overflow-hidden rounded-lg border border-border-soft/60 bg-card/55";
53
53
 
54
- /** workspace: Fläche und Werkstatt; panel: das Run-Panel; element: genau ein Flächenelement in voller Größe. */
54
+ /** workspace: surface and workshop; panel: the run panel; element: exactly one surface element at full size. */
55
55
  export type ChatLayout = "workspace" | "panel" | { element: string };
56
56
 
57
57
  interface PluginChatProps {
@@ -160,7 +160,7 @@ export function PluginChat({ autoFocusChat, onAutoFocusChatSettled, layout = "wo
160
160
 
161
161
  const openTab = useCallback((tabId: string, selection?: unknown) => {
162
162
  if (!registeredTabs.some((tab) => tab.id === tabId)) {
163
- throw new Error("Reiter der Leiste ist nicht registriert: " + tabId);
163
+ throw new Error("Sidebar tab is not registered: " + tabId);
164
164
  }
165
165
  if (selection !== undefined) {
166
166
  setTabSelections((current) => ({ ...current, [tabId]: selection }));
@@ -249,7 +249,7 @@ export function PluginChat({ autoFocusChat, onAutoFocusChatSettled, layout = "wo
249
249
  );
250
250
  }
251
251
 
252
- /** Der Reiterzustand je Layout: im Web ein flüchtiger Reiter und der gespeicherte Aufklappzustand, im Run-Panel der je Run gespeicherte offene Reiter der Leiste. */
252
+ /** The tab state per layout: on the web a transient tab and the stored expand state, in the run panel the open sidebar tab stored per run. */
253
253
  function useWorkspaceTabs(runId: string, layout: ChatLayout, availableTabs: readonly WorkspaceTabContribution[]) {
254
254
  const [requestedTabId, setRequestedTabId] = useState<string>();
255
255
  const [workspaceState, updateWorkspaceState] = useWorkspacePanelState(runId);
@@ -367,25 +367,25 @@ function ChatWorkspace({
367
367
 
368
368
  if (startDialog) return (
369
369
  <Modal className="gap-0 p-0 [&_[data-slot=dialog-body]:has([data-preparation])]:overflow-hidden" nextBehavior="push" onClose={startDialog.onClose} scope="page" showCloseButton size="full">
370
- <DialogTitle className="sr-only">Neuer Run</DialogTitle>
370
+ <DialogTitle className="sr-only">New run</DialogTitle>
371
371
  <StartSelection registry={registry} session={startSession} initialEntryId={startDialog.initialEntryId} onOpen={onStarted} />
372
372
  </Modal>
373
373
  );
374
374
 
375
- const status = registry.sessionStatus.filter((entry) => !entry.readRight || access.can(entry.readRight)).map(({ id, order, Status }) => <StatusGroup container={statusContainer} key={id} label="Run-Aktionen" order={order}>
375
+ const status = registry.sessionStatus.filter((entry) => !entry.readRight || access.can(entry.readRight)).map(({ id, order, Status }) => <StatusGroup container={statusContainer} key={id} label="Run actions" order={order}>
376
376
  <Status navigation={navigation} session={session} />
377
377
  </StatusGroup>);
378
378
  const header = headerContainer && createPortal(layout === "panel"
379
379
  ? <RunPanelHeader attention={attention} contributions={headerContributions} navigation={navigation} registry={registry} runError={runError} session={session} working={session.running} />
380
380
  : <div className="flex min-w-0 flex-[1_0_auto] items-stretch">
381
381
  <div className="flex min-w-0 flex-none items-stretch text-[0.82rem] font-semibold text-foreground">
382
- <ToolbarItem className="min-w-[140px] max-w-[260px] justify-start font-semibold max-md:min-w-[120px] max-md:max-w-[180px]" title={session.session.title}><ToolbarText>{session.session.title || "Neuer Run"}</ToolbarText></ToolbarItem>
382
+ <ToolbarItem className="min-w-[140px] max-w-[260px] justify-start font-semibold max-md:min-w-[120px] max-md:max-w-[180px]" title={session.session.title}><ToolbarText>{session.session.title || "New run"}</ToolbarText></ToolbarItem>
383
383
  {registry.sessionMetadata.map(({ id, Metadata }) => (
384
384
  <Metadata key={id} placement="header" session={session.session} />
385
385
  ))}
386
386
  <StartOptionBadges registry={registry} session={session} />
387
- {session.running && <ToolbarItem className="text-[0.72rem] font-normal text-muted-foreground"><Spinner aria-hidden className="size-2.5" /><ToolbarText>Bearbeitung läuft</ToolbarText></ToolbarItem>}
388
- {runError && <ToolbarItem className="text-[0.72rem] font-medium text-destructive" title={runError}><ToolbarText>Run nicht erreichbar</ToolbarText></ToolbarItem>}
387
+ {session.running && <ToolbarItem className="text-[0.72rem] font-normal text-muted-foreground"><Spinner aria-hidden className="size-2.5" /><ToolbarText>Processing</ToolbarText></ToolbarItem>}
388
+ {runError && <ToolbarItem className="text-[0.72rem] font-medium text-destructive" title={runError}><ToolbarText>Run unreachable</ToolbarText></ToolbarItem>}
389
389
  </div>
390
390
  {headerContributions.length > 0 && (
391
391
  <div className="flex min-w-0 flex-none items-stretch overflow-visible">
@@ -436,7 +436,7 @@ function ChatWorkspace({
436
436
  ref={onModalContainer}
437
437
  >
438
438
  <div className="flex min-h-0 min-w-0 flex-1 flex-col">
439
- {(SurfaceCenter || surfaceContributions.length > 0) && <div aria-label="Apps und Actors" className="flex min-h-[52px] min-w-0 flex-none items-stretch border-b border-border bg-[color-mix(in_srgb,var(--surface)_55%,var(--card))]" role="region">
439
+ {(SurfaceCenter || surfaceContributions.length > 0) && <div aria-label="Apps and actors" className="flex min-h-[52px] min-w-0 flex-none items-stretch border-b border-border bg-[color-mix(in_srgb,var(--surface)_55%,var(--card))]" role="region">
440
440
  <div className="flex flex-none items-stretch empty:hidden" ref={setRunToolbarContainer} />
441
441
  <SurfaceShortcuts key={session.session.id}>
442
442
  {surfaceContributions.map(({ id, Header }) => <Header key={id} navigation={navigation} session={session} />)}
@@ -488,7 +488,7 @@ function DefaultCenter({ renderChat }: {
488
488
  );
489
489
  }
490
490
 
491
- /** Ein Flächenelement in voller Größe, etwa eine Mini-App im Editorbereich von VS Code. */
491
+ /** A surface element at full size, for example a mini-app in the VS Code editor area. */
492
492
  function SurfaceElementView({ elementId, navigation, registry, session }: {
493
493
  elementId: string;
494
494
  navigation: SessionNavigation;
@@ -499,7 +499,7 @@ function SurfaceElementView({ elementId, navigation, registry, session }: {
499
499
  .filter((definition) => definition.id === elementId && definition.visible !== false)
500
500
  .map((definition) => ({ Element: contribution.Element, definition })))[0];
501
501
  if (!match) return <div className="m-auto max-w-[420px] p-6 text-center text-muted-foreground" role="status">
502
- {session.runView === undefined ? "Der Run wird geladen ..." : "Diese Mini-App gibt es in dem Run nicht mehr."}
502
+ {session.runView === undefined ? "Loading run ..." : "This mini-app no longer exists in the run."}
503
503
  </div>;
504
504
  return <div className="flex min-h-0 min-w-0 flex-1 flex-col" data-view="element">
505
505
  <match.Element definition={match.definition} navigation={navigation} session={session} />
@@ -537,9 +537,9 @@ function ChatSurface({
537
537
  composer={
538
538
  primaryIsProgram(session.runView, session.session.id) ? <div className="flex min-w-0 flex-col gap-1.5">
539
539
  <p className="text-muted-foreground">{programChatNotice}</p>
540
- <div className="flex min-w-0 flex-wrap items-center gap-2">{options.toolbarLeft}<ChatViewSwitches collapsible={false} settings={chatView} /></div>
540
+ <div className="flex min-w-0 flex-wrap items-center gap-2">{options.toolbarLeft}<ChatViewSwitches settings={chatView} /></div>
541
541
  </div>
542
- : partner.kind === "stopped" ? <div className="[--qsl-input-card-radius:var(--radius-lg)]"><StoppedActorNotice actor={partner.actor} runId={session.session.id} toolbar={<>{options.toolbarLeft}<ChatViewSwitches collapsible={false} settings={chatView} /></>} /></div>
542
+ : partner.kind === "stopped" ? <div className="[--qsl-input-card-radius:var(--radius-lg)]"><StoppedActorNotice actor={partner.actor} runId={session.session.id} toolbar={<>{options.toolbarLeft}<ChatViewSwitches settings={chatView} /></>} /></div>
543
543
  : <div className="[--qsl-input-card-radius:var(--radius-lg)]">
544
544
  {sendError && <p className="text-[0.8rem] text-destructive" role="alert">{sendError}</p>}
545
545
  <ChatInputToolbar
@@ -548,7 +548,7 @@ function ChatSurface({
548
548
  onAutoFocusSettled={onAutoFocusSettled}
549
549
  disabled={!session.connected || !writable}
550
550
  maxRows={4}
551
- texts={writable ? undefined : { placeholder: "Lesezugriff auf diesen Run" }}
551
+ texts={writable ? undefined : { placeholder: "Read access to this run" }}
552
552
  onSend={(text, attachments) => {
553
553
  setSendError(undefined);
554
554
  return session.send(text, attachments);
@@ -562,7 +562,7 @@ function ChatSurface({
562
562
  toolbarLeft={
563
563
  <>
564
564
  {options.toolbarLeft}
565
- <ChatViewSwitches collapsible={false} settings={chatView} />
565
+ <ChatViewSwitches settings={chatView} />
566
566
  </>
567
567
  }
568
568
  toolbarRight={<StartOptionControls disabled={!session.connected || !writable} placement="composer" registry={registry} />}
@@ -6,7 +6,7 @@ export function PluginFailureNotice({ failures }: { failures: readonly PluginFai
6
6
  if (failures.length === 0) return null;
7
7
  return (
8
8
  <Alert className="flex-none rounded-none border-x-0 border-t-0" data-slot="plugin-failures" variant="destructive">
9
- <AlertTitle>{failures.length === 1 ? `Das Plugin ${failures[0]!.id} lädt nicht` : `${failures.length} Plugins laden nicht`}</AlertTitle>
9
+ <AlertTitle>{failures.length === 1 ? `The plugin ${failures[0]!.id} failed to load` : `${failures.length} plugins failed to load`}</AlertTitle>
10
10
  <AlertDescription>
11
11
  {failures.map((failure) => <p key={failure.id}>{failure.message}</p>)}
12
12
  </AlertDescription>
@@ -50,7 +50,7 @@ export interface StartOptionControlContext {
50
50
  disabled: boolean;
51
51
  error: string | undefined;
52
52
  setValue: (value: unknown) => Promise<void>;
53
- /** Welche Rechner der Host für neue Runs anbietet; eine Option mit Rechnerwahl zeigt nur diese. */
53
+ /** Which machines the host offers for new runs; an option with a machine choice shows only these. */
54
54
  machines: OfferedMachines;
55
55
  }
56
56
 
@@ -97,7 +97,7 @@ export interface SessionContext {
97
97
  runView: unknown;
98
98
  running: boolean;
99
99
  startup?: ChatStartupStatus;
100
- /** Mit entryId startet die Nachricht den Run über diese Skill-Vorlage und die Startoptionen, die er festlegt. */
100
+ /** With entryId the message starts the run through this skill template and the start options it fixes. */
101
101
  send: (text: string, attachments?: ChatAttachmentInput[], entryId?: string) => Promise<void>;
102
102
  session: SessionInfo;
103
103
  /** Starts the run through a run script entry, without a message; the value becomes the script's start input. */
@@ -109,7 +109,7 @@ export interface EntityReference {
109
109
  id: string;
110
110
  }
111
111
 
112
- /** Die Auswahl auf der Fläche: Kacheln, Actor-Zugänge und Pop-outs melden sie, die Fläche zeigt sie, der Chat meldet sie als Standort. */
112
+ /** The selection on the surface: tiles, actor entry points and pop-outs report it, the surface shows it, the chat reports it as the location. */
113
113
  export interface SurfaceController {
114
114
  acceptSelection: (selection: EntityReference | undefined) => void;
115
115
  selection: EntityReference | undefined;
@@ -119,7 +119,7 @@ export interface ChatDisplayOptions {
119
119
  chatElementClassName?: string;
120
120
  chatScrollerRef?: (element: HTMLDivElement | null) => void;
121
121
  toolbarLeft?: ReactNode;
122
- /** Steht statt des Verlaufs, solange gesetzt; die Eingabe bleibt bedienbar. */
122
+ /** Shown instead of the history while set; the input stays usable. */
123
123
  notice?: ReactNode;
124
124
  }
125
125
 
@@ -137,7 +137,7 @@ export interface SurfaceCenterContext {
137
137
 
138
138
  export interface SurfaceContribution {
139
139
  Center: ComponentType<SurfaceCenterContext>;
140
- /** Das Run-Panel (run-panel.html) mit demselben Kontext; ohne Beitrag zeigt es nur den Chat. */
140
+ /** The run panel (run-panel.html) with the same context; without a contribution it shows only the chat. */
141
141
  RunPanel?: ComponentType<SurfaceCenterContext>;
142
142
  }
143
143
 
@@ -203,7 +203,7 @@ export interface WorkspaceTabContribution {
203
203
  Panel: ComponentType<WorkspaceTabContext>;
204
204
  Badge?: ComponentType<WorkspaceTabContext>;
205
205
  available?: (session: SessionContext) => boolean;
206
- /** Der Reiter braucht den Arbeitsbereich des Runs und fehlt, wo der Betrachter ihn nicht erreicht. */
206
+ /** The tab needs the run's workspace and is missing where the viewer cannot reach it. */
207
207
  requiresWorkspace?: boolean;
208
208
  keepMounted?: boolean;
209
209
  }
@@ -215,7 +215,7 @@ export interface SessionHeaderContext {
215
215
 
216
216
  export interface SessionHeaderContribution {
217
217
  readRight?: string;
218
- /** Der Beitrag braucht den Arbeitsbereich des Runs und fehlt, wo der Betrachter ihn nicht erreicht. */
218
+ /** The contribution needs the run's workspace and is missing where the viewer cannot reach it. */
219
219
  requiresWorkspace?: boolean;
220
220
  placement?: "header" | "surface";
221
221
  id: string;
@@ -287,7 +287,7 @@ export interface SessionMetadataContribution {
287
287
  Metadata: ComponentType<SessionMetadataContext>;
288
288
  }
289
289
 
290
- /** Die Darstellung einer wartenden Aktion durch das Plugin, dem sie gehört. */
290
+ /** How a waiting action is shown by the plugin that owns it. */
291
291
  export interface ActionViewContext {
292
292
  action: PendingAction;
293
293
  text: string;
@@ -358,11 +358,11 @@ export interface ProductProfile {
358
358
  plugins: WebPlugin[];
359
359
  product: ProductDescriptor;
360
360
  startEntries: readonly StartEntry[];
361
- /** Die Vorlage, die die Startauswahl statt Neuer Chat zuerst zeigt; der Server nennt sie nur, wenn er sie auch liefert. */
361
+ /** The template the start selection shows first instead of New chat; the server names it only if it also delivers it. */
362
362
  defaultStartEntry?: string;
363
363
  }
364
364
 
365
- /** Einen Run, den der Server noch nicht gelistet hat, zeigt die Oberfläche als erreichbar; jeden Zugriff prüft der Server selbst. */
365
+ /** The interface shows a run the server has not listed yet as reachable; the server checks every access itself. */
366
366
  export const workspaceAccessible = (session: SessionInfo): boolean => session.workspaceAccessible !== false;
367
367
 
368
368
  export class PluginRegistry {
@@ -405,88 +405,88 @@ export class PluginRegistry {
405
405
  const brands = [profile.brand, ...this.activePlugins.map((plugin) => plugin.brand)]
406
406
  .filter((brand): brand is ProductBrand => brand !== undefined);
407
407
  if (brands.length === 0) {
408
- throw new Error("Kein aktives Plugin liefert ein Branding; die Plugin-Liste enthält kein Produkt-Plugin");
408
+ throw new Error("No active plugin provides branding; the plugin list contains no product plugin");
409
409
  }
410
- if (brands.length > 1) throw new Error(`Das Profil benötigt genau ein Branding, gefunden: ${brands.length}`);
410
+ if (brands.length > 1) throw new Error(`The profile needs exactly one branding, found: ${brands.length}`);
411
411
  this.brand = brands[0];
412
412
  this.workspaceTabs = this.activePlugins
413
413
  .flatMap((plugin) => plugin.workspaceTabs ?? [])
414
414
  .sort(byTabOrder);
415
- assertUnique(this.workspaceTabs, (tab) => tab.id, "Reiter der Leiste");
415
+ assertUnique(this.workspaceTabs, (tab) => tab.id, "Sidebar tab");
416
416
  this.workspaceTabFactories = this.activePlugins
417
417
  .flatMap((plugin) => plugin.workspaceTabsFor ? [plugin.workspaceTabsFor] : []);
418
418
  const surfaces = this.activePlugins.flatMap((plugin) => plugin.surface ? [plugin.surface] : []);
419
- if (surfaces.length > 1) throw new Error(`Mehrere Flächenbeiträge registriert: ${surfaces.length}`);
419
+ if (surfaces.length > 1) throw new Error(`Multiple surface contributions registered: ${surfaces.length}`);
420
420
  this.surface = surfaces[0];
421
421
  this.surfaceElements = this.activePlugins
422
422
  .flatMap((plugin) => plugin.surfaceElements ?? [])
423
423
  .sort((left, right) => left.order - right.order || left.id.localeCompare(right.id));
424
- assertUnique(this.surfaceElements, (element) => element.id, "Flächenelement-Beitrag");
424
+ assertUnique(this.surfaceElements, (element) => element.id, "Surface element contribution");
425
425
  this.cardSections = this.activePlugins
426
426
  .flatMap((plugin) => plugin.cardSections ?? [])
427
427
  .sort((left, right) => left.order - right.order || left.id.localeCompare(right.id));
428
- assertUnique(this.cardSections, (section) => section.id, "Karten-Abschnitt");
428
+ assertUnique(this.cardSections, (section) => section.id, "Card section");
429
429
  this.needsRunView = this.activePlugins.some((plugin) => plugin.needsRunView);
430
430
  const chatPolicies = this.activePlugins.flatMap((plugin) => plugin.chatDisplayPolicy ? [plugin.chatDisplayPolicy] : []);
431
- if (chatPolicies.length > 1) throw new Error(`Mehrere Chat-Display-Policies registriert: ${chatPolicies.length}`);
431
+ if (chatPolicies.length > 1) throw new Error(`Multiple chat display policies registered: ${chatPolicies.length}`);
432
432
  this.chatDisplayPolicy = chatPolicies[0] ?? defaultChatDisplayPolicy;
433
433
  const startOptions = this.activePlugins.flatMap((plugin) => plugin.startOptions ?? []);
434
- assertUnique(startOptions, (option) => option.id, "Startoption");
434
+ assertUnique(startOptions, (option) => option.id, "Start option");
435
435
  this.startOptions = new Map(startOptions.map((option) => [option.id, option]));
436
436
 
437
437
  const toolPresenters = this.activePlugins.flatMap((plugin) => plugin.toolPresenters ?? []);
438
- assertUnique(toolPresenters, (presenter) => presenter.toolName, "Tool-Presenter");
438
+ assertUnique(toolPresenters, (presenter) => presenter.toolName, "Tool presenter");
439
439
  this.toolPresenters = new Map(toolPresenters.map((presenter) => [presenter.toolName, presenter]));
440
440
  this.entityPresenters = this.activePlugins.flatMap((plugin) => plugin.entityPresenters ?? []);
441
441
  const active = new Set(this.activePlugins.map((plugin) => plugin.id));
442
442
  this.startEntries = profile.startEntries.filter((entry) => active.has(entry.owner));
443
- assertUnique(this.startEntries, (entry) => entry.id, "Vorlage");
443
+ assertUnique(this.startEntries, (entry) => entry.id, "Template");
444
444
  if (profile.defaultStartEntry !== undefined && !this.startEntries.some((entry) => entry.id === profile.defaultStartEntry)) {
445
- throw new Error(`Die Default-Vorlage ${profile.defaultStartEntry} ist keine Vorlage eines aktiven Plugins`);
445
+ throw new Error(`The default template ${profile.defaultStartEntry} is not a template of an active plugin`);
446
446
  }
447
447
  this.defaultStartEntry = profile.defaultStartEntry;
448
448
  this.skillEntries = this.startEntries.filter((entry): entry is SkillStartEntry => entry.action === "skill");
449
449
  this.scriptEntries = this.startEntries.filter((entry): entry is ScriptStartEntry => entry.action === "script");
450
450
  const guides = this.activePlugins.flatMap((plugin) => plugin.guides ?? []);
451
- assertUnique(guides, (guide) => guide.id, "Leitfaden");
451
+ assertUnique(guides, (guide) => guide.id, "Guide");
452
452
  this.guides = new Map(guides.map((guide) => [guide.id, guide]));
453
453
  for (const entry of this.startEntries) {
454
454
  if (entry.guide !== undefined && !this.guides.has(entry.guide)) {
455
- throw new Error(`Vorlage ${entry.id} verlangt den Leitfaden ${entry.guide}, den kein aktives Plugin bereitstellt`);
455
+ throw new Error(`Template ${entry.id} requires the guide ${entry.guide}, which no active plugin provides`);
456
456
  }
457
457
  }
458
458
  this.sessionHeaders = this.activePlugins
459
459
  .flatMap((plugin) => plugin.sessionHeaders ?? [])
460
460
  .sort((left, right) => left.order - right.order || left.id.localeCompare(right.id));
461
- assertUnique(this.sessionHeaders, (header) => header.id, "Session-Kopfbeitrag");
461
+ assertUnique(this.sessionHeaders, (header) => header.id, "Session header contribution");
462
462
  this.sessionStatus = this.activePlugins
463
463
  .flatMap((plugin) => plugin.sessionStatus ?? [])
464
464
  .sort((left, right) => left.order - right.order || left.id.localeCompare(right.id));
465
- assertUnique(this.sessionStatus, (status) => status.id, "Session-Statusbeitrag");
465
+ assertUnique(this.sessionStatus, (status) => status.id, "Session status contribution");
466
466
  this.overviewPanels = this.activePlugins
467
467
  .flatMap((plugin) => plugin.overviewPanels ?? [])
468
468
  .sort((left, right) => left.order - right.order || left.id.localeCompare(right.id));
469
- assertUnique(this.overviewPanels, (panel) => panel.id, "Übersichtsbeitrag");
469
+ assertUnique(this.overviewPanels, (panel) => panel.id, "Overview contribution");
470
470
  this.settings = this.activePlugins
471
471
  .flatMap((plugin) => (plugin.settings ?? []).map((contribution) => ({ ...contribution, owner: plugin.id })))
472
472
  .sort((left, right) => (left.order ?? 0) - (right.order ?? 0) || left.id.localeCompare(right.id));
473
- assertUnique(this.settings, (contribution) => contribution.id, "Einstellungsbeitrag");
473
+ assertUnique(this.settings, (contribution) => contribution.id, "Settings contribution");
474
474
  this.sessionMetadata = this.activePlugins
475
475
  .flatMap((plugin) => plugin.sessionMetadata ?? [])
476
476
  .sort((left, right) => left.order - right.order || left.id.localeCompare(right.id));
477
- assertUnique(this.sessionMetadata, (metadata) => metadata.id, "Session-Metadaten");
477
+ assertUnique(this.sessionMetadata, (metadata) => metadata.id, "Session metadata");
478
478
  const actionViews = this.activePlugins.flatMap((plugin) => plugin.actionViews ?? []);
479
- assertUnique(actionViews, (view) => view.owner, "Aktionsdarstellung");
479
+ assertUnique(actionViews, (view) => view.owner, "Action view");
480
480
  this.actionViews = new Map(actionViews.map((view) => [view.owner, view]));
481
481
  this.attention = this.activePlugins.flatMap((plugin) => plugin.attention ?? []);
482
- assertUnique(this.attention, (contribution) => contribution.id, "Attention-Beitrag");
482
+ assertUnique(this.attention, (contribution) => contribution.id, "Attention contribution");
483
483
  }
484
484
 
485
485
  registeredTabs(session: SessionContext, access: AccessContext = unrestrictedAccess): readonly WorkspaceTabContribution[] {
486
486
  if (this.workspaceTabFactories.length === 0) return this.workspaceTabs.filter((tab) => !tab.readRight || access.can(tab.readRight));
487
487
  const contributed = this.workspaceTabFactories.flatMap((factory) => factory(session));
488
488
  const tabs = [...this.workspaceTabs, ...contributed].sort(byTabOrder);
489
- assertUnique(tabs, (tab) => tab.id, "Reiter der Leiste");
489
+ assertUnique(tabs, (tab) => tab.id, "Sidebar tab");
490
490
  return tabs.filter((tab) => !tab.readRight || access.can(tab.readRight));
491
491
  }
492
492
 
@@ -526,12 +526,12 @@ export const pluginRoutePrefixFrom = (
526
526
  ): string => {
527
527
  const expected = `/api/plugins/${pluginId}`;
528
528
  if (config.routePrefix === undefined) {
529
- throw new Error(`Plugin-Konfiguration für ${pluginId} enthält keinen routePrefix`);
529
+ throw new Error(`Plugin configuration for ${pluginId} has no routePrefix`);
530
530
  }
531
531
  if (config.routePrefix !== expected) {
532
532
  throw new Error(
533
- `Plugin-Konfiguration für ${pluginId} enthält einen falschen routePrefix: `
534
- + `${String(config.routePrefix)} statt ${expected}`,
533
+ `Plugin configuration for ${pluginId} has a wrong routePrefix: `
534
+ + `${String(config.routePrefix)} instead of ${expected}`,
535
535
  );
536
536
  }
537
537
  return config.routePrefix;
@@ -543,23 +543,23 @@ export const chatDisplayPolicyFrom = (
543
543
  ): ChatDisplayPolicy => {
544
544
  const raw = config.chatSteps;
545
545
  if (typeof raw !== "object" || raw === null || Array.isArray(raw)) {
546
- throw new Error(`Plugin-Konfiguration für ${pluginId} enthält kein chatSteps-Objekt`);
546
+ throw new Error(`Plugin configuration for ${pluginId} has no chatSteps object`);
547
547
  }
548
548
  const { modes, stepsVisible, stepsExpandable, selectable } = raw as Record<string, unknown>;
549
549
  if (typeof stepsVisible !== "boolean" || typeof stepsExpandable !== "boolean" || typeof selectable !== "boolean") {
550
550
  throw new Error(
551
- `chatSteps von ${pluginId} braucht boolesche Felder stepsVisible, stepsExpandable und selectable`,
551
+ `chatSteps of ${pluginId} needs the boolean fields stepsVisible, stepsExpandable and selectable`,
552
552
  );
553
553
  }
554
554
  if (typeof modes !== "object" || modes === null || Array.isArray(modes)) {
555
- throw new Error(`chatSteps von ${pluginId} enthält kein modes-Objekt`);
555
+ throw new Error(`chatSteps of ${pluginId} has no modes object`);
556
556
  }
557
557
  const entries = CHAT_STEP_SCOPES.map((scope) => {
558
558
  const mode = (modes as Record<string, unknown>)[scope];
559
559
  if (!DETAIL_MODES.includes(mode as DetailMode)) {
560
560
  throw new Error(
561
- `chatSteps.modes.${scope} von ${pluginId} muss einer der Werte ${DETAIL_MODES.join(", ")} sein, `
562
- + `nicht ${String(mode)}`,
561
+ `chatSteps.modes.${scope} of ${pluginId} must be one of the values ${DETAIL_MODES.join(", ")}, `
562
+ + `not ${String(mode)}`,
563
563
  );
564
564
  }
565
565
  return [scope, mode as DetailMode] as const;
@@ -630,7 +630,7 @@ export function primaryChatActor(view: unknown): string {
630
630
  return view !== null && typeof view === "object" && "primaryActorId" in view && typeof view.primaryActorId === "string" ? view.primaryActorId : "primary";
631
631
  }
632
632
 
633
- /** display unterscheidet Anzeigeorte desselben Chats (Fläche, Inspector, Popout); jeder merkt sich seinen Detailgrad. */
633
+ /** display distinguishes places that show the same chat (surface, inspector, pop-out); each remembers its detail level. */
634
634
  export function useChatSteps(runId?: string, actorId = "primary", display?: string): ChatStepsControl {
635
635
  const control = useContext(ChatStepsContext);
636
636
  const identity = runId === undefined ? undefined : JSON.stringify(display === undefined ? [runId, actorId] : [runId, actorId, display]);
@@ -694,8 +694,8 @@ const assertUnique = <T,>(values: readonly T[], keyOf: (value: T) => string, lab
694
694
  const keys = new Set<string>();
695
695
  for (const value of values) {
696
696
  const key = keyOf(value);
697
- if (!key) throw new Error(`${label} ohne ID`);
698
- if (keys.has(key)) throw new Error(`${label} doppelt registriert: ${key}`);
697
+ if (!key) throw new Error(`${label} without ID`);
698
+ if (keys.has(key)) throw new Error(`${label} registered twice: ${key}`);
699
699
  keys.add(key);
700
700
  }
701
701
  };
@@ -706,10 +706,10 @@ const activatePlugin = (plugin: WebPlugin, config: Readonly<Record<string, unkno
706
706
  activated = plugin.activate?.(config) ?? plugin;
707
707
  } catch (caught) {
708
708
  const message = caught instanceof Error ? caught.message : String(caught);
709
- throw new Error(`Plugin-Aktivierung fehlgeschlagen: ${plugin.id}: ${message}`);
709
+ throw new Error(`Plugin activation failed: ${plugin.id}: ${message}`);
710
710
  }
711
711
  if (activated.id !== plugin.id) {
712
- throw new Error(`Plugin-Aktivierung hat den Descriptor verändert: ${plugin.id}`);
712
+ throw new Error(`Plugin activation changed the descriptor: ${plugin.id}`);
713
713
  }
714
714
  return activated;
715
715
  };
@@ -17,7 +17,7 @@ type PreparationEntry = { message: RunPreparationMessage; at: string };
17
17
 
18
18
  const entryNow = (message: RunPreparationMessage): PreparationEntry => ({ message, at: new Date().toISOString() });
19
19
 
20
- /** Der Auftrag einer Skill-Vorlage entsteht hier; der Run startet über die Vorlage und mit dem, was sie festlegt. */
20
+ /** The task of a skill template is shaped here; the run starts through the template and with what it fixes. */
21
21
  export function RunPreparationChat({ initialPrompt, entry, registry, sessionRef }: {
22
22
  initialPrompt: string;
23
23
  entry: SkillStartEntry;
@@ -46,7 +46,7 @@ export function RunPreparationChat({ initialPrompt, entry, registry, sessionRef
46
46
  }, []);
47
47
 
48
48
  const discuss = async (text: string, files?: ChatAttachmentInput[]) => {
49
- if (submitting.current) throw new Error("Die vorherige Anfrage läuft noch.");
49
+ if (submitting.current) throw new Error("The previous request is still running.");
50
50
  submitting.current = true;
51
51
  const controller = new AbortController();
52
52
  active.current = controller;
@@ -64,7 +64,7 @@ export function RunPreparationChat({ initialPrompt, entry, registry, sessionRef
64
64
  setHistory([...next, entryNow({ role: "assistant", text: answer.text })]);
65
65
  }
66
66
  } catch (cause) {
67
- if (controller.signal.aborted) throw new Error("Besprechung gestoppt. Deine Eingabe bleibt erhalten.");
67
+ if (controller.signal.aborted) throw new Error("Discussion stopped. Your input is kept.");
68
68
  throw cause;
69
69
  } finally {
70
70
  active.current = null;
@@ -73,7 +73,7 @@ export function RunPreparationChat({ initialPrompt, entry, registry, sessionRef
73
73
  }
74
74
  };
75
75
  const createRun = async (text: string, files?: ChatAttachmentInput[]) => {
76
- if (submitting.current) throw new Error("Die vorherige Anfrage läuft noch.");
76
+ if (submitting.current) throw new Error("The previous request is still running.");
77
77
  submitting.current = true;
78
78
  setOperation("starting");
79
79
  try {
@@ -96,26 +96,26 @@ export function RunPreparationChat({ initialPrompt, entry, registry, sessionRef
96
96
  for (const option of conflicts) await options.set(option.id, fixed?.[option.id]);
97
97
  };
98
98
 
99
- return <section aria-label="Auftrag besprechen" className={cn(composerPlacement, messages.length === 0 && emptyComposerPlacement)} data-preparation={messages.length === 0 ? "empty" : "active"}>
99
+ return <section aria-label="Discuss task" className={cn(composerPlacement, messages.length === 0 && emptyComposerPlacement)} data-preparation={messages.length === 0 ? "empty" : "active"}>
100
100
  <ChatPanel composer={<div>
101
101
  <ChatInputToolbar {...attachments} disabled={operation === "starting"} sendDisabled={busy}
102
102
  initialValue={initialPrompt} onDraftChange={setDraft} onAttachmentsChange={setHasAttachments} handleRef={composer}
103
103
  rows={3} maxRows={8} running={operation === "preparing"} onStop={() => active.current?.abort()} onSend={discuss}
104
- texts={{ placeholder: "Ergänzungen oder Fragen zum Auftrag ...", send: "Auftrag besprechen", stop: "Besprechung stoppen" }}
104
+ texts={{ placeholder: "Additions or questions about the task ...", send: "Discuss task", stop: "Stop discussion" }}
105
105
  toolbarLeft={<ChatViewSwitches settings={chatView} />}
106
106
  toolbarRight={<StartOptionControls disabled={busy} fixed={fixed} placement="composer" registry={registry} />} />
107
107
  {conflicts.length > 0 && <div className="mt-3 flex flex-wrap items-center justify-between gap-2.5" data-start-option-conflicts="" role="alert">
108
- <span className="text-[0.75rem] text-destructive">Vor dem Öffnen der Vorlage war bei {conflicts.length === 1 ? "einer Startoption" : `${conflicts.length} Startoptionen`} etwas anderes gewählt, als sie festlegt. So lässt sich der Run nicht erstellen.</span>
109
- <Button disabled={busy} size="sm" variant="outline" onClick={() => { void adoptTemplate(); }}>Werte der Vorlage übernehmen</Button>
108
+ <span className="text-[0.75rem] text-destructive">Before the template was opened, {conflicts.length === 1 ? "one start option was" : `${conflicts.length} start options were`} set differently than the template requires. The run cannot be created like this.</span>
109
+ <Button disabled={busy} size="sm" variant="outline" onClick={() => { void adoptTemplate(); }}>Apply template values</Button>
110
110
  </div>}
111
111
  <div className="my-3 flex flex-wrap items-center justify-between gap-2.5">
112
- <span className="text-[0.75rem] text-muted-foreground">Gib im Chat Dein Go zum Starten oder wähle "Run erstellen".</span>
112
+ <span className="text-[0.75rem] text-muted-foreground">Give your go in the chat to start, or choose "Create run".</span>
113
113
  <Button disabled={busy || conflicts.length > 0 || (!history.length && !draft.trim() && !hasAttachments)}
114
114
  onClick={() => { void composer.current?.submit(createRun, { allowEmpty: history.length > 0 }); }}>
115
- {operation === "starting" ? "Run wird erstellt ..." : "Run erstellen"}
115
+ {operation === "starting" ? "Creating run ..." : "Create run"}
116
116
  </Button>
117
117
  </div>
118
- <div aria-label="Startoptionen" className="flex flex-wrap items-center gap-x-3 gap-y-2 empty:hidden"><StartOptionControls disabled={busy} fixed={fixed} registry={registry} /></div>
118
+ <div aria-label="Start options" className="flex flex-wrap items-center gap-x-3 gap-y-2 empty:hidden"><StartOptionControls disabled={busy} fixed={fixed} registry={registry} /></div>
119
119
  </div>}>
120
120
  {messages.length > 0 && <ChatMessages detailMode={chatView.detailMode} messages={messages} running={operation === "preparing"} showTimestamps={chatView.showTimestamps} stepsExpandable={chatView.stepsExpandable} />}
121
121
  </ChatPanel>
@@ -75,7 +75,7 @@ export function subscribeRunView(
75
75
  if (message.kind === "ready") setError(undefined);
76
76
  nudge();
77
77
  }, () => {
78
- if (!disposed) setError("Der Live-Stream des Runs ist nicht erreichbar");
78
+ if (!disposed) setError("The run's live stream is unreachable");
79
79
  });
80
80
  return () => {
81
81
  if (disposed) return;