@schlenkr/ragents 0.1.9 → 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 (749) hide show
  1. package/apps/server/package.json +1 -1
  2. package/apps/server/src/access-projection.ts +9 -39
  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 +32 -29
  6. package/apps/server/src/api/core-methods.ts +21 -19
  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 +8 -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 +48 -47
  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 +63 -58
  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 +25 -24
  83. package/apps/server/src/ragents/global-chat.ts +14 -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 +51 -49
  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-xXXhTDbh.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 +64 -55
  110. package/apps/web/dist/help/guide-clients.md +62 -52
  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 +1997 -942
  124. package/apps/web/dist/help/mini-app.css +30 -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 +26 -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 +29 -26
  182. package/apps/web/src/panel/connection-state.ts +9 -9
  183. package/apps/web/src/panel/contract.ts +34 -27
  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 +256 -228
  227. package/bundles/ragents.actor-programs/server/index.js.map +4 -4
  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 -4
  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-V7W3QDVS.js → chunk-IQBHK7MV.js} +2 -2
  240. package/bundles/ragents.ask/web/chunks/{chunk-V7W3QDVS.js.map → chunk-IQBHK7MV.js.map} +4 -4
  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 +4 -4
  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 +3 -3
  305. package/bundles/ragents.overseer/ragents-bundle.json +2 -2
  306. package/bundles/ragents.overseer/server/index.js +99 -99
  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 +83 -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/core/tools/bash.d.ts +1 -1
  417. package/packages/agent/dist/index.d.ts +1 -1
  418. package/packages/agent/dist/loop/agent-loop.d.ts +2 -2
  419. package/packages/agent/src/core/compaction/utils.ts +1 -1
  420. package/packages/agent/src/core/model-runtime.ts +45 -5
  421. package/packages/agent/src/core/tools/bash.ts +1 -1
  422. package/packages/agent/src/index.ts +1 -1
  423. package/packages/agent/src/loop/agent-loop.ts +2 -2
  424. package/packages/ai/dist/models.d.ts +1 -0
  425. package/packages/ai/dist/models.generated.d.ts +4544 -983
  426. package/packages/ai/dist/providers/openrouter.models.d.ts +4544 -983
  427. package/packages/ai/src/api/ai-sdk.ts +33 -7
  428. package/packages/ai/src/api-registry.ts +1 -1
  429. package/packages/ai/src/index.ts +2 -2
  430. package/packages/ai/src/models.generated.ts +1 -1
  431. package/packages/ai/src/models.ts +1 -1
  432. package/packages/ai/src/providers/openrouter.models.ts +3723 -550
  433. package/packages/ragents/src/access.ts +12 -12
  434. package/packages/ragents/src/agents/actor-input.ts +33 -33
  435. package/packages/ragents/src/agents/catalog.ts +1 -1
  436. package/packages/ragents/src/agents/delivery.ts +17 -17
  437. package/packages/ragents/src/agents/plugins.ts +1 -1
  438. package/packages/ragents/src/agents/scheduler.ts +7 -7
  439. package/packages/ragents/src/agents/schemas.ts +1 -1
  440. package/packages/ragents/src/agents/tool-orientation.ts +4 -4
  441. package/packages/ragents/src/agents/tools.ts +20 -20
  442. package/packages/ragents/src/agents/toolset.ts +5 -5
  443. package/packages/ragents/src/agents/workspaces.ts +1 -1
  444. package/packages/ragents/src/domain/events.ts +1 -1
  445. package/packages/ragents/src/domain/model.ts +5 -5
  446. package/packages/ragents/src/drivers/agent-runtime.ts +1 -1
  447. package/packages/ragents/src/drivers/agent-turn.ts +4 -4
  448. package/packages/ragents/src/drivers/agent.ts +2 -2
  449. package/packages/ragents/src/drivers/attachments.ts +4 -4
  450. package/packages/ragents/src/http/contracts.ts +14 -14
  451. package/packages/ragents/src/http/methods.ts +6 -6
  452. package/packages/ragents/src/index.ts +1 -0
  453. package/packages/ragents/src/plugin-host.ts +162 -116
  454. package/packages/ragents/src/plugin-types.ts +29 -10
  455. package/packages/ragents/src/rpc/contract.ts +5 -5
  456. package/packages/ragents/src/rpc/contribution.ts +2 -2
  457. package/packages/ragents/src/rpc/peer.ts +11 -11
  458. package/packages/ragents/src/rpc/protocol.ts +2 -2
  459. package/packages/ragents/src/runtime/decisions/turns.ts +1 -1
  460. package/packages/ragents/src/runtime/journal.ts +10 -10
  461. package/packages/ragents/src/runtime/orchestration.ts +8 -8
  462. package/packages/ragents/src/runtime/stop.ts +2 -2
  463. package/packages/ragents/src/script/mediators.ts +35 -35
  464. package/packages/ragents/src/typescript/async-compiler.ts +14 -14
  465. package/packages/ragents/src/typescript/compiler-worker.ts +2 -2
  466. package/packages/ragents/src/typescript/compiler.ts +7 -7
  467. package/packages/ragents/src/typescript/snippet.ts +5 -5
  468. package/packages/workspace-executor/src/bash-launch.ts +13 -13
  469. package/packages/workspace-executor/src/commands.ts +18 -18
  470. package/packages/workspace-executor/src/context.ts +15 -15
  471. package/packages/workspace-executor/src/contributions.ts +35 -35
  472. package/packages/workspace-executor/src/errors.ts +1 -1
  473. package/packages/workspace-executor/src/executor.ts +15 -15
  474. package/packages/workspace-executor/src/files.ts +30 -30
  475. package/packages/workspace-executor/src/language-server/contract.ts +2 -2
  476. package/packages/workspace-executor/src/language-server/diagnostics.ts +4 -4
  477. package/packages/workspace-executor/src/language-server/host.ts +35 -35
  478. package/packages/workspace-executor/src/language-server/json-rpc.ts +4 -4
  479. package/packages/workspace-executor/src/language-server/module.ts +11 -11
  480. package/packages/workspace-executor/src/language-server/roots.ts +3 -3
  481. package/packages/workspace-executor/src/language-server/session.ts +15 -15
  482. package/packages/workspace-executor/src/language-server/workspace-solutions.ts +2 -2
  483. package/packages/workspace-executor/src/managed-process.ts +35 -7
  484. package/packages/workspace-executor/src/module.ts +8 -8
  485. package/packages/workspace-executor/src/modules.ts +3 -3
  486. package/packages/workspace-executor/src/paths.ts +11 -11
  487. package/packages/workspace-executor/src/process-sandbox.ts +3 -3
  488. package/packages/workspace-executor/src/processes/module.ts +3 -3
  489. package/packages/workspace-executor/src/processes/process-table.ts +20 -20
  490. package/packages/workspace-executor/src/processes/scanner.ts +3 -3
  491. package/packages/workspace-executor/src/processes/snapshot.ts +2 -2
  492. package/packages/workspace-executor/src/processes/terminator.ts +13 -13
  493. package/packages/workspace-executor/src/run-folders.ts +3 -3
  494. package/packages/workspace-executor/src/safe-environment.ts +4 -4
  495. package/packages/workspace-executor/src/sandbox-tools.ts +37 -31
  496. package/packages/workspace-executor/src/session-ident.ts +2 -2
  497. package/packages/workspace-executor/src/shell-platform.ts +2 -2
  498. package/packages/workspace-executor/src/tools.ts +5 -5
  499. package/plugins/ragents.activity/web/ActivityHeader.tsx +3 -3
  500. package/plugins/ragents.activity/web/activity.ts +2 -2
  501. package/plugins/ragents.actor-programs/server/access-projections.ts +31 -0
  502. package/plugins/ragents.actor-programs/server/agent-tools.ts +2 -2
  503. package/plugins/ragents.actor-programs/server/capability-resolver.ts +3 -3
  504. package/plugins/ragents.actor-programs/server/controls-template.ts +46 -46
  505. package/plugins/ragents.actor-programs/server/controls-tool.ts +4 -4
  506. package/plugins/ragents.actor-programs/server/index.ts +2 -0
  507. package/plugins/ragents.actor-programs/server/limits.ts +3 -3
  508. package/plugins/ragents.actor-programs/server/methods.ts +1 -1
  509. package/plugins/ragents.actor-programs/server/project-diagnostics.ts +8 -8
  510. package/plugins/ragents.actor-programs/server/routes.ts +8 -8
  511. package/plugins/ragents.actor-programs/server/runtime.ts +90 -90
  512. package/plugins/ragents.actor-programs/server/templates.ts +59 -59
  513. package/plugins/ragents.actor-programs/server/test-report.ts +5 -5
  514. package/plugins/ragents.actor-programs/server/tool-contributor.ts +1 -1
  515. package/plugins/ragents.actor-programs/web/ActorViewFrame.tsx +17 -17
  516. package/plugins/ragents.actor-programs/web/AppsPanel.tsx +26 -26
  517. package/plugins/ragents.actor-programs/web/EmbeddedApps.tsx +3 -3
  518. package/plugins/ragents.actor-programs/web/FullscreenHost.tsx +2 -2
  519. package/plugins/ragents.actor-programs/web/FunctionForm.tsx +16 -16
  520. package/plugins/ragents.actor-programs/web/ProgramSource.tsx +5 -5
  521. package/plugins/ragents.actor-programs/web/api.ts +36 -36
  522. package/plugins/ragents.actor-programs/web/bridge.ts +8 -8
  523. package/plugins/ragents.actor-programs/web/chat-state.ts +4 -4
  524. package/plugins/ragents.actor-programs/web/context.ts +1 -1
  525. package/plugins/ragents.actor-programs/web/function-input.ts +6 -6
  526. package/plugins/ragents.actor-programs/web/index.tsx +1 -1
  527. package/plugins/ragents.actor-programs/web/program-state.ts +4 -4
  528. package/plugins/ragents.ask/ask-payload.ts +1 -1
  529. package/plugins/ragents.ask/contract.ts +5 -5
  530. package/plugins/ragents.ask/server/answer-method.ts +1 -1
  531. package/plugins/ragents.ask/server/ask-service.ts +9 -9
  532. package/plugins/ragents.ask/server/ask-tool.ts +10 -10
  533. package/plugins/ragents.ask/server/contract.ts +5 -5
  534. package/plugins/ragents.ask/web/AskActionView.tsx +1 -1
  535. package/plugins/ragents.ask/web/QuestionCard.tsx +22 -22
  536. package/plugins/ragents.ask/web/index.tsx +2 -8
  537. package/plugins/ragents.browser/executor/contract.ts +6 -6
  538. package/plugins/ragents.browser/executor/index.ts +1 -1
  539. package/plugins/ragents.browser/executor/module.ts +6 -6
  540. package/plugins/ragents.browser/executor/pages.ts +32 -32
  541. package/plugins/ragents.browser/executor/playwright.ts +8 -8
  542. package/plugins/ragents.browser/provision.ts +7 -7
  543. package/plugins/ragents.browser/server/browser.ts +14 -14
  544. package/plugins/ragents.browser/server/contract.ts +1 -1
  545. package/plugins/ragents.browser/server/index.ts +1 -1
  546. package/plugins/ragents.browser/server/tools.ts +14 -14
  547. package/plugins/ragents.browser/skills/browser-testing/SKILL.md +30 -30
  548. package/plugins/ragents.documents/contract.ts +2 -2
  549. package/plugins/ragents.documents/prompt.hbs +1 -1
  550. package/plugins/ragents.documents/server/document-write-tool.ts +12 -12
  551. package/plugins/ragents.documents/server/files-route.ts +6 -6
  552. package/plugins/ragents.documents/server/show-document-tool.ts +26 -26
  553. package/plugins/ragents.documents/server/store.ts +1 -1
  554. package/plugins/ragents.documents/web/DocumentViewer.tsx +37 -37
  555. package/plugins/ragents.documents/web/index.tsx +11 -11
  556. package/plugins/ragents.lsp-fsharp/executor.ts +7 -7
  557. package/plugins/ragents.lsp-fsharp/provision.ts +7 -7
  558. package/plugins/ragents.lsp-roslyn/executor.ts +5 -5
  559. package/plugins/ragents.lsp-roslyn/provision.ts +4 -4
  560. package/plugins/ragents.lsp-roslyn/server/index.ts +5 -5
  561. package/plugins/ragents.lsp-roslyn/server/solution-on-start.ts +13 -13
  562. package/plugins/ragents.lsp-typescript/executor.ts +3 -3
  563. package/plugins/ragents.model-relay/server/config.ts +6 -2
  564. package/plugins/ragents.model-relay/server/index.ts +2 -2
  565. package/plugins/ragents.model-relay/server/relay.ts +23 -22
  566. package/plugins/ragents.orchestration/contract.ts +8 -8
  567. package/plugins/ragents.orchestration/server/index.ts +4 -4
  568. package/plugins/ragents.orchestration/server/run-stop-tool.ts +3 -3
  569. package/plugins/ragents.orchestration/server/surface-tool.ts +5 -5
  570. package/plugins/ragents.orchestration/tiled-layout.ts +11 -11
  571. package/plugins/ragents.orchestration/web/ActorChat.tsx +2 -2
  572. package/plugins/ragents.orchestration/web/ActorChatControls.tsx +4 -4
  573. package/plugins/ragents.orchestration/web/ActorChatPreview.tsx +1 -1
  574. package/plugins/ragents.orchestration/web/ActorPopout.tsx +1 -1
  575. package/plugins/ragents.orchestration/web/ActorShortcut.tsx +6 -6
  576. package/plugins/ragents.orchestration/web/ActorSurfaceControls.tsx +15 -15
  577. package/plugins/ragents.orchestration/web/ActorTile.tsx +1 -1
  578. package/plugins/ragents.orchestration/web/Center.tsx +5 -5
  579. package/plugins/ragents.orchestration/web/DocumentsSection.tsx +2 -2
  580. package/plugins/ragents.orchestration/web/ExecutionsPanel.tsx +15 -15
  581. package/plugins/ragents.orchestration/web/FlowInspector.tsx +103 -103
  582. package/plugins/ragents.orchestration/web/JournalStatus.tsx +11 -11
  583. package/plugins/ragents.orchestration/web/MaterialBody.tsx +2 -2
  584. package/plugins/ragents.orchestration/web/StopRunButton.tsx +6 -6
  585. package/plugins/ragents.orchestration/web/TiledSurface.tsx +9 -9
  586. package/plugins/ragents.orchestration/web/actor-header-settings.ts +5 -5
  587. package/plugins/ragents.orchestration/web/constants.ts +2 -2
  588. package/plugins/ragents.orchestration/web/executions.ts +6 -6
  589. package/plugins/ragents.orchestration/web/format.ts +1 -1
  590. package/plugins/ragents.orchestration/web/index.tsx +2 -2
  591. package/plugins/ragents.orchestration/web/run-panel/AddresseeControl.tsx +7 -7
  592. package/plugins/ragents.orchestration/web/run-panel/AddresseeTree.tsx +8 -8
  593. package/plugins/ragents.orchestration/web/run-panel/RunPanel.tsx +29 -28
  594. package/plugins/ragents.orchestration/web/run-panel/RunPanelSettings.tsx +7 -7
  595. package/plugins/ragents.orchestration/web/run-panel/addressee-tree.ts +13 -13
  596. package/plugins/ragents.orchestration/web/run-panel/run-panel-actors.ts +3 -3
  597. package/plugins/ragents.orchestration/web/run-panel/run-panel-settings.ts +2 -2
  598. package/plugins/ragents.orchestration/web/run-panel/run-panel-startup.ts +3 -3
  599. package/plugins/ragents.orchestration/web/run-panel/run-panel-state.ts +7 -7
  600. package/plugins/ragents.orchestration/web/run-panel/sheet-status.ts +10 -10
  601. package/plugins/ragents.orchestration/web/surface-startup.ts +8 -8
  602. package/plugins/ragents.orchestration/web/surface-view-settings.ts +1 -1
  603. package/plugins/ragents.orchestration/web/tiled-view-settings.ts +1 -1
  604. package/plugins/ragents.overseer/contract.ts +20 -20
  605. package/plugins/ragents.overseer/server/api.ts +8 -8
  606. package/plugins/ragents.overseer/server/coordinator-prompt.ts +10 -10
  607. package/plugins/ragents.overseer/server/coordinator.ts +4 -4
  608. package/plugins/ragents.overseer/server/index.ts +24 -24
  609. package/plugins/ragents.overseer/server/orientation.ts +8 -8
  610. package/plugins/ragents.overseer/server/quick-answer.ts +9 -9
  611. package/plugins/ragents.overseer/server/run-directory.ts +5 -5
  612. package/plugins/ragents.overseer/server/settings.ts +6 -6
  613. package/plugins/ragents.overseer/server/user-location.ts +16 -16
  614. package/plugins/ragents.overseer/web/ModelSettings.tsx +9 -9
  615. package/plugins/ragents.overseer/web/index.tsx +20 -20
  616. package/plugins/ragents.overseer/web/model-settings.ts +1 -1
  617. package/plugins/ragents.overseer/web/quick-answers.ts +2 -2
  618. package/plugins/ragents.processes/contract.ts +5 -5
  619. package/plugins/ragents.processes/server/methods.ts +4 -4
  620. package/plugins/ragents.processes/server/observer.ts +8 -8
  621. package/plugins/ragents.processes/server/run-processes.ts +2 -2
  622. package/plugins/ragents.processes/web/ProcessHeader.tsx +10 -10
  623. package/plugins/ragents.processes/web/processes.ts +10 -10
  624. package/plugins/ragents.product/server/config.ts +1 -1
  625. package/plugins/ragents.product/server/index.ts +4 -4
  626. package/plugins/ragents.product/server/runtime.ts +9 -10
  627. package/plugins/ragents.product/web/index.tsx +1 -1
  628. package/plugins/ragents.profile-distribution/contract.ts +10 -10
  629. package/plugins/ragents.profile-distribution/server/archive.ts +20 -20
  630. package/plugins/ragents.profile-distribution/server/config.ts +2 -2
  631. package/plugins/ragents.profile-distribution/server/index.ts +4 -4
  632. package/plugins/ragents.reference/examples.ts +27 -27
  633. package/plugins/ragents.reference/run-scripts/balcony-wizard/RUN.md +19 -19
  634. package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/package.json +2 -2
  635. package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/client.tsx +14 -14
  636. package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/conversation.ts +2 -2
  637. package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/tests/conversation.test.ts +49 -49
  638. package/plugins/ragents.reference/run-scripts/balcony-wizard/package.json +1 -1
  639. package/plugins/ragents.reference/run-scripts/balcony-wizard/src/server.ts +9 -9
  640. package/plugins/ragents.reference/run-scripts/balcony-wizard/tests/program.test.ts +9 -9
  641. package/plugins/ragents.reference/run-scripts/conversation-circle/RUN.md +7 -7
  642. package/plugins/ragents.reference/run-scripts/conversation-circle/package.json +1 -1
  643. package/plugins/ragents.reference/run-scripts/conversation-circle/src/server.ts +13 -13
  644. package/plugins/ragents.reference/run-scripts/conversation-circle/tests/helpers.ts +1 -1
  645. package/plugins/ragents.reference/run-scripts/conversation-circle/tests/program.test.ts +8 -8
  646. package/plugins/ragents.reference/run-scripts/learning-afternoon/RUN.md +16 -16
  647. package/plugins/ragents.reference/run-scripts/learning-afternoon/package.json +1 -1
  648. package/plugins/ragents.reference/run-scripts/learning-afternoon/prompts/experiment.md +1 -1
  649. package/plugins/ragents.reference/run-scripts/learning-afternoon/prompts/helper.md +3 -3
  650. package/plugins/ragents.reference/run-scripts/learning-afternoon/prompts/quiz.md +1 -1
  651. package/plugins/ragents.reference/run-scripts/learning-afternoon/src/server.ts +9 -9
  652. package/plugins/ragents.reference/run-scripts/learning-afternoon/tests/program.test.ts +39 -39
  653. package/plugins/ragents.reference/run-scripts/moderated-round/RUN.md +7 -7
  654. package/plugins/ragents.reference/run-scripts/moderated-round/package.json +1 -1
  655. package/plugins/ragents.reference/run-scripts/moderated-round/src/server.ts +9 -9
  656. package/plugins/ragents.reference/run-scripts/moderated-round/tests/helpers.ts +1 -1
  657. package/plugins/ragents.reference/run-scripts/moderated-round/tests/program.test.ts +6 -6
  658. package/plugins/ragents.reference/run-scripts/shared-actor-list/RUN.md +12 -12
  659. package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/package.json +2 -2
  660. package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/contract.ts +3 -3
  661. package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/tests/program.test.ts +4 -4
  662. package/plugins/ragents.reference/run-scripts/shared-actor-list/package.json +1 -1
  663. package/plugins/ragents.reference/run-scripts/shared-actor-list/src/server.ts +11 -11
  664. package/plugins/ragents.reference/run-scripts/shared-actor-list/tests/helpers.ts +1 -1
  665. package/plugins/ragents.reference/run-scripts/shared-actor-list/tests/program.test.ts +13 -13
  666. package/plugins/ragents.reference/run-scripts/word-game/RUN.md +18 -18
  667. package/plugins/ragents.reference/run-scripts/word-game/package.json +2 -2
  668. package/plugins/ragents.reference/run-scripts/word-game/src/client.tsx +1 -1
  669. package/plugins/ragents.reference/run-scripts/word-game/src/contract.ts +2 -2
  670. package/plugins/ragents.reference/run-scripts/word-game/src/server.ts +16 -16
  671. package/plugins/ragents.reference/run-scripts/word-game/tests/program.test.ts +39 -39
  672. package/plugins/ragents.reference/skills/100-shared-actor-list/SKILL.md +5 -5
  673. package/plugins/ragents.reference/skills/110-all-card-slots/SKILL.md +5 -5
  674. package/plugins/ragents.reference/skills/150-editorial-workbench/SKILL.md +5 -5
  675. package/plugins/ragents.reference/skills/160-learning-companion/SKILL.md +5 -5
  676. package/plugins/ragents.reference/skills/170-photo-collection/SKILL.md +5 -5
  677. package/plugins/ragents.reference/skills/180-decision-workbench/SKILL.md +5 -5
  678. package/plugins/ragents.reference/skills/190-review-queue/SKILL.md +5 -5
  679. package/plugins/ragents.reference/skills/20-circle-of-four/SKILL.md +5 -5
  680. package/plugins/ragents.reference/skills/200-typescript-diagnostics/SKILL.md +5 -5
  681. package/plugins/ragents.reference/skills/210-moderator-handover/SKILL.md +5 -5
  682. package/plugins/ragents.reference/skills/220-actor-approval-list/SKILL.md +5 -5
  683. package/plugins/ragents.reference/skills/230-shared-state-views/SKILL.md +5 -5
  684. package/plugins/ragents.reference/skills/240-live-result-list/SKILL.md +5 -5
  685. package/plugins/ragents.reference/skills/250-balcony-wizard/SKILL.md +5 -5
  686. package/plugins/ragents.reference/skills/30-llm-without-runtime-knowledge/SKILL.md +5 -5
  687. package/plugins/ragents.reference/skills/35-actor-input-fifo/SKILL.md +5 -5
  688. package/plugins/ragents.reference/skills/40-subscription-matrix/SKILL.md +5 -5
  689. package/plugins/ragents.reference/skills/50-subscription-removal/SKILL.md +5 -5
  690. package/plugins/ragents.reference/skills/60-stop-in-the-circle/SKILL.md +5 -5
  691. package/plugins/ragents.reference/skills/65-artifact-least-privilege/SKILL.md +5 -5
  692. package/plugins/ragents.reference/skills/70-headless-counter/SKILL.md +5 -5
  693. package/plugins/ragents.reference/skills/75-lsp-demo/SKILL.md +5 -5
  694. package/plugins/ragents.reference/skills/80-actor-text-analysis/SKILL.md +5 -5
  695. package/plugins/ragents.reference/skills/90-actor-notes/SKILL.md +5 -5
  696. package/plugins/ragents.reference/skills/95-hello-world/SKILL.md +5 -5
  697. package/plugins/ragents.reference/skills/decision-brief/SKILL.md +24 -24
  698. package/plugins/ragents.reference/skills/learning-sprint/SKILL.md +24 -24
  699. package/plugins/ragents.reference/walkthroughs.ts +128 -128
  700. package/plugins/ragents.reference/web/StartGuides.tsx +23 -23
  701. package/plugins/ragents.todo/server/todo-tool.ts +6 -6
  702. package/plugins/ragents.todo/web/TodoSection.tsx +1 -1
  703. package/plugins/ragents.transcript/server/transcript.ts +11 -11
  704. package/plugins/ragents.watch/server/condition.ts +4 -4
  705. package/plugins/ragents.watch/server/functions.ts +27 -27
  706. package/plugins/ragents.watch/server/observation.ts +2 -2
  707. package/plugins/ragents.watch/server/service.ts +14 -14
  708. package/plugins/ragents.workspace/client/transport.ts +1 -1
  709. package/plugins/ragents.workspace/client/workspace-client.ts +62 -49
  710. package/plugins/ragents.workspace/contract.ts +46 -46
  711. package/plugins/ragents.workspace/server/binding.ts +20 -20
  712. package/plugins/ragents.workspace/server/browse-route.ts +8 -8
  713. package/plugins/ragents.workspace/server/clients.ts +42 -42
  714. package/plugins/ragents.workspace/server/config.ts +8 -5
  715. package/plugins/ragents.workspace/server/index.ts +5 -4
  716. package/plugins/ragents.workspace/server/runtime.ts +26 -26
  717. package/plugins/ragents.workspace/server/shell-platform.ts +1 -1
  718. package/plugins/ragents.workspace/web/FileBrowser.tsx +10 -10
  719. package/plugins/ragents.workspace/web/WorkspaceBinding.tsx +24 -24
  720. package/plugins/ragents.workspace/web/index.tsx +1 -1
  721. package/ragents.config.core.ts +1 -1
  722. package/ragents.config.developer.ts +3 -3
  723. package/ragents.config.showcase.ts +2 -2
  724. package/scripts/agent/agent-cli.ts +96 -96
  725. package/scripts/agent/journal.ts +5 -5
  726. package/scripts/agent/turn-control.ts +4 -4
  727. package/scripts/package/build-package.ts +29 -29
  728. package/scripts/package/host-links.mjs +3 -3
  729. package/scripts/package/publish-package.ts +29 -29
  730. package/scripts/package/ragents.mjs +19 -19
  731. package/scripts/plugin/build-builtin-plugins.ts +5 -5
  732. package/scripts/plugin/plugin-cli.ts +14 -14
  733. package/scripts/provision/run-provision.ts +14 -15
  734. package/scripts/remote/connect.ts +46 -46
  735. package/scripts/remote/start.ts +18 -18
  736. package/scripts/workspace-client/run-workspace-client.ts +23 -23
  737. package/apps/web/dist/assets/main-C7JeZFjs.js +0 -6
  738. package/apps/web/dist/assets/mermaid-HWGCJPDP-DfsU5ofC.js +0 -478
  739. package/apps/web/dist/assets/runPanel-ZT6TPDLM.js +0 -21
  740. package/bundles/ragents.ask/server/chunks/chunk-PDJO75SQ.js.map +0 -7
  741. package/bundles/ragents.ask/web/chunks/chunk-4VXWWEG7.js +0 -2
  742. package/bundles/ragents.ask/web/chunks/chunk-4VXWWEG7.js.map +0 -7
  743. package/bundles/ragents.ask/web/chunks/chunk-VUBJDIKQ.js +0 -2
  744. package/bundles/ragents.ask/web/chunks/chunk-VUBJDIKQ.js.map +0 -7
  745. package/bundles/ragents.ask/web/chunks/chunk-WFN4374U.js.map +0 -7
  746. package/bundles/ragents.orchestration/web/chunks/chunk-OQYCNYXN.js +0 -2
  747. package/plugins/ragents.ask/web/QuestionSection.tsx +0 -48
  748. /package/bundles/ragents.orchestration/web/chunks/{chunk-OSKPH6SZ.js.map → chunk-CFMJD5ZI.js.map} +0 -0
  749. /package/bundles/ragents.orchestration/web/chunks/{chunk-ODMMQGX2.js.map → chunk-UCIMT2R4.js.map} +0 -0
@@ -52,11 +52,11 @@ function summarize(text: string, width: number, count: number): string {
52
52
  const edgeStatuses = ["pending", "active", "done", "blocked"];
53
53
 
54
54
  function prepare({ nodes, edges, direction = "right", height = 360, viewport = "interactive", detailLevel = "summary", layout = "layered" }: FlowDiagramProps) {
55
- if (viewport !== "interactive" && viewport !== "fit-width" && viewport !== "fit") throw new Error("Unbekannter Diagrammansichtsmodus.");
55
+ if (viewport !== "interactive" && viewport !== "fit-width" && viewport !== "fit") throw new Error("Unknown diagram viewport mode.");
56
56
  if (!Number.isFinite(height) || height <= 0) throw new Error("The diagram height must be positive.");
57
- if (direction !== "right" && direction !== "down") throw new Error("Unbekannte Diagrammrichtung.");
58
- if (detailLevel !== "full" && detailLevel !== "summary") throw new Error("Unbekannte Diagrammdetailstufe.");
59
- if (layout !== "layered" && layout !== "star") throw new Error("Unbekannte Diagrammanordnung.");
57
+ if (direction !== "right" && direction !== "down") throw new Error("Unknown diagram direction.");
58
+ if (detailLevel !== "full" && detailLevel !== "summary") throw new Error("Unknown diagram detail level.");
59
+ if (layout !== "layered" && layout !== "star") throw new Error("Unknown diagram layout.");
60
60
  const summary = detailLevel === "summary";
61
61
  const textWidth = textMeasure();
62
62
  const ids = new Set<string>();
@@ -64,15 +64,15 @@ function prepare({ nodes, edges, direction = "right", height = 360, viewport = "
64
64
  if (typeof node.id !== "string" || !node.id.trim() || ids.has(node.id)) throw new Error("Nodes require unique, non-empty IDs.");
65
65
  ids.add(node.id);
66
66
  if (typeof node.label !== "string" || (node.detail !== undefined && typeof node.detail !== "string")) throw new Error("Node labels must be text.");
67
- if (node.status !== undefined && !["pending", "active", "done", "blocked"].includes(node.status)) throw new Error("Unbekannter Knotenstatus.");
67
+ if (node.status !== undefined && !["pending", "active", "done", "blocked"].includes(node.status)) throw new Error("Unknown node status.");
68
68
  if (node.running !== undefined && typeof node.running !== "boolean") throw new Error("Node activity must be a boolean.");
69
- if (node.kind !== undefined && !["actor", "agent", "service"].includes(node.kind)) throw new Error("Unbekannte Knotenart.");
69
+ if (node.kind !== undefined && !["actor", "agent", "service"].includes(node.kind)) throw new Error("Unknown node kind.");
70
70
  const labelLines = summary ? summarize(node.label, 284, 2) : wrap(node.label);
71
71
  const detailLines = summary || node.detail === undefined ? undefined : wrap(node.detail);
72
72
  if (node.items !== undefined && !Array.isArray(node.items)) throw new Error("Node items must be an array.");
73
73
  const itemLines = (node.items ?? []).map((item) => {
74
74
  if (typeof item.label !== "string" || (item.detail !== undefined && typeof item.detail !== "string")) throw new Error("Item labels must be text.");
75
- if (item.status !== undefined && !["pending", "active", "done", "blocked", "skipped"].includes(item.status)) throw new Error("Unbekannter Punktstatus.");
75
+ if (item.status !== undefined && !["pending", "active", "done", "blocked", "skipped"].includes(item.status)) throw new Error("Unknown item status.");
76
76
  return { ...item, labelLines: wrap(item.label, summary ? 256 : 176), detailLines: summary || item.detail === undefined ? undefined : wrap(item.detail) };
77
77
  });
78
78
  if (node.actions !== undefined && !Array.isArray(node.actions)) throw new Error("Node actions must be an array.");
@@ -92,9 +92,9 @@ function prepare({ nodes, edges, direction = "right", height = 360, viewport = "
92
92
  const id = edge.id ?? `flow-edge-${index}`;
93
93
  if (typeof id !== "string" || !id.trim() || edgeIds.has(id)) throw new Error("Edges require unique, non-empty IDs.");
94
94
  edgeIds.add(id);
95
- if (!ids.has(edge.source) || !ids.has(edge.target)) throw new Error("Eine Verbindung verweist auf einen fehlenden Knoten.");
96
- if (edge.kind !== undefined && edge.kind !== "return") throw new Error("Unbekannte Verbindungsart.");
97
- if (edge.status !== undefined && !edgeStatuses.includes(edge.status)) throw new Error("Unbekannter Verbindungsstatus.");
95
+ if (!ids.has(edge.source) || !ids.has(edge.target)) throw new Error("An edge refers to a missing node.");
96
+ if (edge.kind !== undefined && edge.kind !== "return") throw new Error("Unknown edge kind.");
97
+ if (edge.status !== undefined && !edgeStatuses.includes(edge.status)) throw new Error("Unknown edge status.");
98
98
  if (edge.label !== undefined && typeof edge.label !== "string") throw new Error("Edge labels must be text.");
99
99
  return { ...edge, id };
100
100
  });
@@ -228,9 +228,9 @@ export function FlowDiagram(props: FlowDiagramProps) {
228
228
  const cards = active?.nodes.map((node, index) => ({ ...node, data: { ...graph!.cards[index]!.data, onAction: props.onAction } })) ?? [];
229
229
  const viewport = props.viewport ?? "interactive";
230
230
  return <section aria-label={props.label} className={cn(flowSurface, props.className)} data-viewport={viewport} style={{ height: viewport !== "interactive" ? undefined : Number.isFinite(props.height) && props.height! > 0 ? props.height : 360 }}>
231
- {error ? <p role="alert">Das Diagramm konnte nicht angezeigt werden: {error}</p>
231
+ {error ? <p role="alert">The diagram could not be displayed: {error}</p>
232
232
  : graph?.cards.length === 0 ? <p role="status">No nodes available.</p>
233
- : !active ? <p role="status">Diagramm wird geladen ...</p>
234
- : <Suspense fallback={<p role="status">Diagramm wird geladen ...</p>}><FlowDiagramRenderer key={key} mode={viewport} bounds={active.bounds!} nodes={cards} edges={active.edges.map((edge, index) => ({ ...edge, label: graph!.links[index]!.label, data: { ...edge.data!, status: graph!.links[index]!.status } }))} /></Suspense>}
233
+ : !active ? <p role="status">Loading diagram ...</p>
234
+ : <Suspense fallback={<p role="status">Loading diagram ...</p>}><FlowDiagramRenderer key={key} mode={viewport} bounds={active.bounds!} nodes={cards} edges={active.edges.map((edge, index) => ({ ...edge, label: graph!.links[index]!.label, data: { ...edge.data!, status: graph!.links[index]!.status } }))} /></Suspense>}
235
235
  </section>;
236
236
  }
@@ -9,15 +9,15 @@ import type { DiffViewerProps, DocumentViewerProps, TaskProgressProps } from "./
9
9
  const taskLabels = { pending: "Pending", running: "In progress", done: "Done", error: "Failed", skipped: "Skipped" };
10
10
  const taskTones = { pending: "text-muted-foreground", running: "text-primary", done: "text-muted-foreground", error: "text-destructive", skipped: "text-muted-foreground" };
11
11
 
12
- export function TaskProgress({ title = "Aufgaben", tasks, showProgress = true }: TaskProgressProps) {
12
+ export function TaskProgress({ title = "Tasks", tasks, showProgress = true }: TaskProgressProps) {
13
13
  const completed = tasks.filter((task) => task.status === "done" || task.status === "skipped").length;
14
14
  return <section aria-label={title} className="min-w-0 text-sm">
15
15
  <h3 className="mb-2 text-[15px] font-semibold">{title}</h3>
16
16
  {showProgress && tasks.length > 0 && <div className="mb-2 flex flex-wrap items-center gap-2 text-muted-foreground">
17
17
  <Progress aria-label={title} className="min-w-20 flex-1" max={tasks.length} value={completed} />
18
- <span>{completed} von {tasks.length} abgeschlossen</span>
18
+ <span>{completed} of {tasks.length} completed</span>
19
19
  </div>}
20
- {!tasks.length && <p>Noch keine Aufgaben.</p>}
20
+ {!tasks.length && <p>No tasks yet.</p>}
21
21
  <ol className="divide-y">{tasks.map((task) => <li className="py-1.5" data-status={task.status} key={task.id}>
22
22
  <div className="flex justify-between gap-3"><strong>{task.label}</strong><span className={cn("whitespace-nowrap", taskTones[task.status])}>{taskLabels[task.status]}</span></div>
23
23
  {task.description && <p className="mt-1 text-muted-foreground">{task.description}</p>}
@@ -26,7 +26,7 @@ export function TaskProgress({ title = "Aufgaben", tasks, showProgress = true }:
26
26
  }
27
27
 
28
28
  export function DocumentViewer({ title, content, format = "text", language, filename }: DocumentViewerProps) {
29
- return <section aria-label={title ?? filename ?? "Dokument"} className="min-w-0 text-sm">
29
+ return <section aria-label={title ?? filename ?? "Document"} className="min-w-0 text-sm">
30
30
  {(title || filename) && <h3 className="mb-2 text-[15px] font-semibold">{title ?? filename}</h3>}
31
31
  {format === "markdown" ? <QuasselHost><Markdown text={content} /></QuasselHost>
32
32
  : format === "code" ? <SourceCode content={content} language={language} path={filename ?? ""} />
@@ -10,5 +10,5 @@ export function WorkflowDiagram({ definition, state, ...props }: WorkflowDiagram
10
10
  }, [definition, state]);
11
11
  return projection.graph
12
12
  ? <FlowDiagram direction="down" viewport="fit-width" {...props} {...projection.graph} />
13
- : <section aria-label={props.label} className={props.className}><p role="alert">Der Ablauf konnte nicht angezeigt werden: {projection.error}</p></section>;
13
+ : <section aria-label={props.label} className={props.className}><p role="alert">The workflow could not be displayed: {projection.error}</p></section>;
14
14
  }
@@ -3,14 +3,14 @@ import type { ReactElement } from "react";
3
3
  export interface FilePickerProps {
4
4
  label: string;
5
5
  files: readonly File[];
6
- /** Auswahl bleibt lokal; die Ansicht entscheidet über Lesen und Übertragen. */
6
+ /** The selection stays local; the view decides about reading and transferring. */
7
7
  onChange: (files: File[]) => void | Promise<void>;
8
- /** Dateiendungen oder MIME-Typen, z. B. .csv,image/*; wird auch für Drop und Paste geprüft. */
8
+ /** File extensions or MIME types, e.g. .csv,image/*; also checked for drop and paste. */
9
9
  accept?: string;
10
10
  multiple?: boolean;
11
- /** Höchstzahl der gesamten Auswahl; Standard 10, bei multiple=false genau eine Datei. */
11
+ /** Maximum number of files in the whole selection; default 10, exactly one file with multiple=false. */
12
12
  maxFiles?: number;
13
- /** Maximale Gesamtgröße in Bytes; Standard 20 MiB. */
13
+ /** Maximum total size in bytes; default 20 MiB. */
14
14
  maxBytes?: number;
15
15
  disabled?: boolean;
16
16
  showPreview?: boolean;
@@ -11,7 +11,7 @@ export const fileSelection = (current: readonly File[], incoming: readonly File[
11
11
  if (accepted.length && !accepted.some((type) => type.startsWith(".")
12
12
  ? file.name.toLowerCase().endsWith(type)
13
13
  : type.endsWith("/*") ? file.type.toLowerCase().startsWith(type.slice(0, -1)) : file.type.toLowerCase() === type)) {
14
- throw new Error(`Dateityp von ${file.name} nicht erlaubt. Erlaubt: ${options.accept}`);
14
+ throw new Error(`File type of ${file.name} not allowed. Allowed: ${options.accept}`);
15
15
  }
16
16
  }
17
17
  const result = options.multiple === false ? [...incoming] : [...current];
@@ -17,17 +17,17 @@ export interface DocumentViewerProps {
17
17
  title?: string;
18
18
  content: string;
19
19
  format?: "text" | "markdown" | "code";
20
- /** Sprache für Code-Hervorhebung; alternativ bestimmt filename die Sprache. */
20
+ /** Language for code highlighting; alternatively filename determines the language. */
21
21
  language?: string;
22
22
  filename?: string;
23
23
  }
24
24
 
25
25
  export interface DiffViewerProps {
26
26
  title?: string;
27
- /** Bereits vorliegender Unified-Diff; das Control vergleicht keine Dateien und schreibt nichts. */
27
+ /** An existing unified diff; the control compares no files and writes nothing. */
28
28
  patch: string;
29
29
  emptyText?: string;
30
- /** Sprache für Code-Hervorhebung; alternativ bestimmt filename oder der Pfad im Diff die Sprache. */
30
+ /** Language for code highlighting; alternatively filename or the path in the diff determines the language. */
31
31
  language?: string;
32
32
  filename?: string;
33
33
  }
@@ -8,7 +8,7 @@ import { startOptionStateFrom, type StartOptionState } from "../../server/src/pl
8
8
 
9
9
  export type { StartOptionState };
10
10
 
11
- /** Unterbricht nur den laufenden Turn dieses Actors; der Actor bleibt aktiv, ohne laufenden Turn geschieht nichts. */
11
+ /** Interrupts only the running turn of this actor; the actor stays active, without a running turn nothing happens. */
12
12
  export const interruptActorTurn = async (runId: string, actorId: string, client: RpcClient = rpc): Promise<void> => {
13
13
  await client.call(runContracts.interruptTurn, { runId, commandId: crypto.randomUUID(), actorId });
14
14
  };
@@ -41,12 +41,12 @@ export interface SessionInfo {
41
41
  updatedAt: number;
42
42
  revision?: number;
43
43
  running?: boolean;
44
- /** Ob der Betrachter den Arbeitsbereich des Runs erreicht; fehlt, solange der Server den Run noch nicht gelistet hat. */
44
+ /** Whether the viewer can reach the run's workspace; missing as long as the server has not listed the run yet. */
45
45
  workspaceAccessible?: boolean;
46
46
  metadata?: Readonly<Record<string, unknown>>;
47
- /** Warum ein Metadaten-Beitrag keinen Wert hat: gescheitert oder nicht rechtzeitig geantwortet. */
47
+ /** Why a metadata contribution has no value: failed or did not answer in time. */
48
48
  metadataUnavailable?: Readonly<Record<string, string>>;
49
- /** Warum der Server den Run gesperrt hat; ein gesperrter Run lässt sich nur noch löschen. */
49
+ /** Why the server locked the run; a locked run can only be deleted. */
50
50
  locked?: string;
51
51
  }
52
52
 
@@ -366,7 +366,7 @@ const settingsResponseFrom = (value: unknown): SettingsResponse => {
366
366
  || !value.skills.every(isSettingsSkill)
367
367
  || !Array.isArray(value.tools)
368
368
  || !value.tools.every(isSettingsTool)) {
369
- throw new Error("Die Einstellungen entsprechen nicht dem erwarteten Format");
369
+ throw new Error("The settings do not match the expected format");
370
370
  }
371
371
  return value as unknown as SettingsResponse;
372
372
  };
@@ -379,13 +379,13 @@ const settingsSkillDetailFrom = (value: unknown): SettingsSkillDetail => {
379
379
  || !isSettingsSkill(value)
380
380
  || !Array.isArray(value.files)
381
381
  || !value.files.every(isSettingsSkillFile)) {
382
- throw new Error("Der Skill entspricht nicht dem erwarteten Format");
382
+ throw new Error("The skill does not match the expected format");
383
383
  }
384
384
  return value as unknown as SettingsSkillDetail;
385
385
  };
386
386
 
387
387
  export const getSettingsSkill = async (id: string, signal?: AbortSignal, client: RpcClient = rpc): Promise<SettingsSkillDetail> => {
388
388
  const detail = await client.call(coreContracts.settings.skill, { id }, { signal });
389
- if (detail === null) throw new Error("Der Skill konnte nicht geladen werden");
389
+ if (detail === null) throw new Error("The skill could not be loaded");
390
390
  return settingsSkillDetailFrom(detail);
391
391
  };
@@ -4,7 +4,7 @@ import { restartChatActor } from "../api";
4
4
  import type { RunActor } from "../run-view";
5
5
  import { Button, cn } from "../ui";
6
6
 
7
- /** Steht an der Stelle der Eingabe, solange der Actor des Chats gestoppt ist: Grund und, wer bedienen darf, der Neustart; toolbar behält die Knöpfe der Eingabe. */
7
+ /** Takes the place of the input while the chat's actor is stopped: the reason and, for those allowed to operate, the restart; toolbar keeps the input's buttons. */
8
8
  export function StoppedActorNotice({ actor, runId, className, toolbar }: { actor: RunActor; runId: string; className?: string; toolbar?: ReactNode }) {
9
9
  const access = useAccess();
10
10
  const [busy, setBusy] = useState(false);
@@ -26,13 +26,13 @@ export function StoppedActorNotice({ actor, runId, className, toolbar }: { actor
26
26
  data-slot="stopped-actor">
27
27
  <div className="flex min-w-0 items-center gap-2">
28
28
  <p className="min-w-0 flex-1 [overflow-wrap:anywhere]" role="status">
29
- <span className="font-semibold">@{actor.handle} gestoppt:</span> {reason}
29
+ <span className="font-semibold">@{actor.handle} stopped:</span> {reason}
30
30
  </p>
31
- {restartable && <Button disabled={busy} onClick={() => void restart()} size="sm" title={`@${actor.handle} neu starten; danach nimmt er wieder Nachrichten an`} variant="outline">
32
- Neu starten
31
+ {restartable && <Button disabled={busy} onClick={() => void restart()} size="sm" title={`Restart @${actor.handle}; it then accepts messages again`} variant="outline">
32
+ Restart
33
33
  </Button>}
34
34
  </div>
35
- {!restartable && <p className="text-[0.7rem] text-muted-foreground">Er nimmt keine Nachrichten an, bis ihn jemand mit Bedienrechten neu startet.</p>}
35
+ {!restartable && <p className="text-[0.7rem] text-muted-foreground">It accepts no messages until someone with operator rights restarts it.</p>}
36
36
  {error && <p className="text-[0.7rem] text-destructive" role="alert">{error}</p>}
37
37
  {toolbar && <div className="flex min-w-0 flex-wrap items-center gap-2">{toolbar}</div>}
38
38
  </div>;
@@ -1,7 +1,7 @@
1
1
  import { isRecord } from "../lib/guards";
2
2
  import { chatPrimaryId, runViewFrom, type RunActor } from "../run-view";
3
3
 
4
- /** Der Partner des Run-Chats: gestoppt mit Grund, oder aktiv und ob gerade sein eigener Turn läuft; nur den unterbricht die Eingabe. */
4
+ /** The partner of the run chat: stopped with a reason, or active and whether its own turn is running; only that one is interrupted by the input. */
5
5
  export type PrimaryChatState =
6
6
  | { kind: "none" }
7
7
  | { kind: "stopped"; actor: RunActor }
@@ -16,14 +16,14 @@ export function primaryChatState(value: unknown, runId: string, liveTurn: boolea
16
16
  return { kind: "active", actorId: actor.id, turnRunning: liveTurn || actor.lifecycle?.kind === "running" };
17
17
  }
18
18
 
19
- export const programChatNotice = "Dieser TypeScript-Actor verarbeitet Programmeingaben und führt kein Gespräch. Verwende seine Mini-App oder seine dokumentierten Funktionen.";
19
+ export const programChatNotice = "This TypeScript actor processes program input and does not hold a conversation. Use its mini-app or its documented functions.";
20
20
 
21
21
  export function primaryIsProgram(view: unknown, runId: string): boolean {
22
22
  return isRecord(view) && view.id === runId && Array.isArray(view.actors)
23
23
  && view.actors.some((actor: unknown) => isRecord(actor) && actor.id === view.primaryActorId && actor.kind === "script");
24
24
  }
25
25
 
26
- /** Laufender Turn irgendeines Agenten oder Programms; die Run-Liste verwendet dieselbe Lesart. */
26
+ /** Running turn of any agent or program; the run list uses the same reading. */
27
27
  export function runIsWorking(view: unknown, runId: string): boolean {
28
28
  return isRecord(view) && view.id === runId && Array.isArray(view.actors)
29
29
  && view.actors.some((actor: unknown) => isRecord(actor) && actor.kind !== "human" && isRecord(actor.lifecycle) && actor.lifecycle.kind === "running");
@@ -16,7 +16,7 @@ export async function sendChatMessage(
16
16
  await client.call(coreContracts.chat.send, { runId, text, attachments, userLocation });
17
17
  }
18
18
 
19
- /** Die erste Nachricht eines Runs über eine Skill-Vorlage; der Server legt damit dessen Startoptionen fest. */
19
+ /** The first message of a run from a skill template; the server uses it to set the run's start options. */
20
20
  export async function startSkillEntry(runId: string, entry: string, text: string, attachments?: ChatAttachmentInput[], client: RpcClient = rpc): Promise<void> {
21
21
  await client.call(coreContracts.chat.send, { runId, text, attachments, entry });
22
22
  }
@@ -25,7 +25,7 @@ export async function startChatEntry(runId: string, entry: string, input: unknow
25
25
  await client.call(coreContracts.chat.start, { runId, entry, input });
26
26
  }
27
27
 
28
- /** Eine Vorlage ohne Vorbereitungschat: ein Run-Script mit seinem Startwert, ein Skill mit seinem vorbereiteten Auftrag. */
28
+ /** A template without a preparation chat: a run script with its start value, a skill with its prepared task. */
29
29
  export const startEntryDirectly = (runId: string, entry: StartEntry, input: unknown, client: RpcClient = rpc): Promise<void> => entry.action === "script"
30
30
  ? startChatEntry(runId, entry.id, input, client)
31
31
  : startSkillEntry(runId, entry.id, preparedRunInput([], entry.prompt, undefined, entry.skill).text, undefined, client);
@@ -7,7 +7,7 @@ import type { RpcClient } from "../rpc/client";
7
7
  export async function getAttachmentCapabilities(runId: string, actor = "primary", signal?: AbortSignal, client: RpcClient = rpc): Promise<ChatAttachmentCapabilities> {
8
8
  const result = await client.call(coreContracts.chat.capabilities, { runId, actor }, { signal });
9
9
  if (typeof result.model !== "string" || !Array.isArray(result.input) || !result.input.every((entry) => typeof entry === "string")) {
10
- throw new Error("Ungültige Angaben zur Unterstützung für Anhänge");
10
+ throw new Error("Invalid attachment support information");
11
11
  }
12
12
  return { model: result.model, input: result.input };
13
13
  }
@@ -29,7 +29,7 @@ export function useAttachmentCapabilities(runId: string, actor = "primary", revi
29
29
  }, [active, actor, key, runId]);
30
30
  return {
31
31
  attachmentCapabilities: result?.key === key ? result.capabilities : undefined,
32
- attachmentCapabilitiesError: result?.key === key ? result.error : active ? "Anhänge werden geprüft ..." : undefined,
32
+ attachmentCapabilitiesError: result?.key === key ? result.error : active ? "Checking attachments ..." : undefined,
33
33
  onAttachmentsChange: setActive,
34
34
  };
35
35
  }
@@ -8,7 +8,7 @@ const timestampSetting = createLocalStorageSetting({
8
8
  parse: (raw: string | null) => {
9
9
  if (raw === null || raw === "true") return true;
10
10
  if (raw === "false") return false;
11
- throw new Error("Die gespeicherte Zeitstempel-Einstellung ist ungültig.");
11
+ throw new Error("The saved timestamp setting is invalid.");
12
12
  },
13
13
  serialize: JSON.stringify,
14
14
  });
@@ -22,7 +22,7 @@ export interface ChatViewSettings {
22
22
  readonly setShowTimestamps: (showTimestamps: boolean) => void;
23
23
  }
24
24
 
25
- /** Detailgrad und Zeitstempel eines Chats; display trennt nur den Detailgrad nach Anzeigeort, die Zeitstempel gelten je Run und Actor. */
25
+ /** Detail level and timestamps of a chat; display separates only the detail level by display location, the timestamps apply per run and actor. */
26
26
  export function useChatViewSettings(runId: string, actorId: string, scope: ChatStepScope, display?: string): ChatViewSettings {
27
27
  const steps = useChatSteps(runId, actorId, display);
28
28
  const timestampKey = `ragents.chat.timestamps:${JSON.stringify([runId, actorId])}`;
@@ -36,14 +36,13 @@ export function useChatViewSettings(runId: string, actorId: string, scope: ChatS
36
36
  };
37
37
  }
38
38
 
39
- /** Die Schalter jeder Chat-Eingabe; collapsible gilt für die Beschriftung des Detailgrads. */
40
- export function ChatViewSwitches({ settings, collapsible = true, className }: {
39
+ /** The switches of every chat input. */
40
+ export function ChatViewSwitches({ settings, className }: {
41
41
  settings: ChatViewSettings;
42
- collapsible?: boolean;
43
42
  className?: string;
44
43
  }) {
45
44
  return <>
46
- {settings.detailSelectable && <DetailModeSwitch className={className} collapsible={collapsible} mode={settings.detailMode} onChange={settings.setDetailMode} />}
45
+ {settings.detailSelectable && <DetailModeSwitch className={className} mode={settings.detailMode} onChange={settings.setDetailMode} />}
47
46
  <TimestampSwitch className={className} onChange={settings.setShowTimestamps} showTimestamps={settings.showTimestamps} />
48
47
  </>;
49
48
  }
@@ -1,4 +1,4 @@
1
- /* react-diff-view erzeugt diese Klassennamen selbst; nur deshalb bleibt hier CSS statt Utilities. */
1
+ /* react-diff-view generates these class names itself; that is the only reason this stays CSS instead of utilities. */
2
2
 
3
3
  @import "react-diff-view/style/index.css";
4
4
 
@@ -1,4 +1,4 @@
1
- /* highlight.js erzeugt diese Klassennamen selbst; nur deshalb bleibt hier CSS statt Utilities. */
1
+ /* highlight.js generates these class names itself; that is the only reason this stays CSS instead of utilities. */
2
2
 
3
3
  .hljs-keyword,
4
4
  .hljs-selector-tag,
@@ -38,30 +38,30 @@ const NO_SOLUTION = "none";
38
38
  const solutionValue = (path: string): string => `solution:${path}`;
39
39
 
40
40
  const severityLabels: Readonly<Record<LanguageServerSeverity, string>> = {
41
- error: "Fehler",
42
- warning: "Warnung",
43
- information: "Hinweis",
44
- hint: "Tipp",
41
+ error: "Error",
42
+ warning: "Warning",
43
+ information: "Info",
44
+ hint: "Hint",
45
45
  };
46
46
 
47
47
  const textFrom = (config: Readonly<Record<string, unknown>>, key: string, pluginId: string): string => {
48
48
  const value = config[key];
49
- if (typeof value !== "string" || !value) throw new Error(`Plugin-Konfiguration für ${pluginId} enthält kein ${key}`);
49
+ if (typeof value !== "string" || !value) throw new Error(`Plugin configuration for ${pluginId} contains no ${key}`);
50
50
  return value;
51
51
  };
52
52
 
53
53
  const stateLabel = (state: LanguageServerState): string => {
54
- if (state === "opening") return "wird geladen";
55
- if (state === "failed") return "fehlgeschlagen";
56
- if (state === "suspended") return "nach Leerlauf beendet";
57
- return "bereit";
54
+ if (state === "opening") return "loading";
55
+ if (state === "failed") return "failed";
56
+ if (state === "suspended") return "ended after idle";
57
+ return "ready";
58
58
  };
59
59
 
60
60
  const headerLabel = (snapshot: LanguageServerSnapshot | undefined): string => {
61
- if (!snapshot) return "wird geladen";
61
+ if (!snapshot) return "loading";
62
62
  const count = snapshot.instances.length;
63
- if (count === 0) return "nicht gestartet";
64
- return count === 1 ? "1 Instanz" : `${count} Instanzen`;
63
+ if (count === 0) return "not started";
64
+ return count === 1 ? "1 instance" : `${count} instances`;
65
65
  };
66
66
 
67
67
  const countLabel = (count: number, singular: string, plural: string): string =>
@@ -69,7 +69,7 @@ const countLabel = (count: number, singular: string, plural: string): string =>
69
69
 
70
70
  const messageOf = (caught: unknown): string => caught instanceof Error ? caught.message : String(caught);
71
71
 
72
- /** Genau eine offene Instanz einer gefundenen Solution oder keine ergibt eine Auswahl; mehrere oder eine andere Wurzel nicht. */
72
+ /** Exactly one open instance of a found solution, or none, yields a selection; several or a different root do not. */
73
73
  const selectedSolution = (solutions: LanguageServerSolutions, snapshot: LanguageServerSnapshot): string | null => {
74
74
  const roots = snapshot.instances.map((instance) => instance.root);
75
75
  if (roots.length === 0) return NO_SOLUTION;
@@ -216,15 +216,15 @@ function SolutionSelect({ choice, snapshot }: { choice: SolutionChoice; snapshot
216
216
  const { solutions } = choice;
217
217
  if (!solutions || !snapshot) return null;
218
218
  if (solutions.solutions.length === 0) {
219
- return <p className="border-t border-border-soft px-2.5 py-2 text-xs text-muted-foreground">Keine Solution im Arbeitsbereich.</p>;
219
+ return <p className="border-t border-border-soft px-2.5 py-2 text-xs text-muted-foreground">No solution in the workspace.</p>;
220
220
  }
221
221
  const openRoots = new Set(snapshot.instances.map((instance) => instance.root));
222
222
  const items = [
223
- { value: NO_SOLUTION, path: null, label: "Keine" },
223
+ { value: NO_SOLUTION, path: null, label: "None" },
224
224
  ...solutions.solutions.map((solution) => ({
225
225
  value: solutionValue(solution.path),
226
226
  path: solution.path,
227
- label: openRoots.has(solution.root) ? `${solution.path} (offen)` : solution.path,
227
+ label: openRoots.has(solution.root) ? `${solution.path} (open)` : solution.path,
228
228
  })),
229
229
  ];
230
230
  const instances = snapshot.instances.length;
@@ -241,12 +241,12 @@ function SolutionSelect({ choice, snapshot }: { choice: SolutionChoice; snapshot
241
241
  }}
242
242
  value={selectedSolution(solutions, snapshot)}
243
243
  >
244
- <SelectTrigger aria-label="Solution wählen" className="min-w-0 flex-1" size="sm" title={choice.writable ? undefined : "Umschalten verlangt Schreibrechte"}>
245
- <SelectValue placeholder={instances > 1 ? `${instances} Instanzen offen` : "Andere Wurzel offen"} />
244
+ <SelectTrigger aria-label="Choose solution" className="min-w-0 flex-1" size="sm" title={choice.writable ? undefined : "Switching requires write permission"}>
245
+ <SelectValue placeholder={instances > 1 ? `${instances} instances open` : "Other root open"} />
246
246
  </SelectTrigger>
247
247
  <SelectContent>{items.map((item) => <SelectItem key={item.value} value={item.value}>{item.label}</SelectItem>)}</SelectContent>
248
248
  </Select>
249
- {choice.switching && <Spinner aria-label="Wird umgeschaltet" />}
249
+ {choice.switching && <Spinner aria-label="Switching" />}
250
250
  </div>
251
251
  );
252
252
  }
@@ -267,32 +267,32 @@ function LanguageServerInstanceView({ instance }: { instance: LanguageServerInst
267
267
  {instance.state === "opening" && (
268
268
  <Empty className={compactEmpty} role="status">
269
269
  <EmptyHeader>
270
- <EmptyMedia><Spinner aria-label="Wird geladen" /></EmptyMedia>
271
- <EmptyTitle>Sprachserver wird geladen</EmptyTitle>
272
- <EmptyDescription>{instance.summary || "Die Initialisierung läuft."}</EmptyDescription>
270
+ <EmptyMedia><Spinner aria-label="Loading" /></EmptyMedia>
271
+ <EmptyTitle>Loading language server</EmptyTitle>
272
+ <EmptyDescription>{instance.summary || "Initialization is running."}</EmptyDescription>
273
273
  </EmptyHeader>
274
274
  </Empty>
275
275
  )}
276
276
  {instance.state === "failed" && (
277
277
  <Empty className={`${compactEmpty} text-destructive`} role="alert">
278
278
  <EmptyHeader>
279
- <EmptyTitle>Sprachserver nicht verfügbar</EmptyTitle>
280
- <EmptyDescription className="whitespace-pre-wrap text-destructive [overflow-wrap:anywhere]">{instance.summary || "Beim Laden ist ein Fehler aufgetreten."}</EmptyDescription>
279
+ <EmptyTitle>Language server unavailable</EmptyTitle>
280
+ <EmptyDescription className="whitespace-pre-wrap text-destructive [overflow-wrap:anywhere]">{instance.summary || "An error occurred while loading."}</EmptyDescription>
281
281
  </EmptyHeader>
282
282
  </Empty>
283
283
  )}
284
284
  {diagnosticsAvailable && rows.length === 0 && (
285
285
  <Empty className={compactEmpty}>
286
286
  <EmptyHeader>
287
- <EmptyTitle>Keine Diagnosen</EmptyTitle>
288
- <EmptyDescription>{files.length === 0 ? "Bisher wurde keine Datei geprüft." : "Alle geprüften Dateien sind fehlerfrei."}</EmptyDescription>
287
+ <EmptyTitle>No diagnostics</EmptyTitle>
288
+ <EmptyDescription>{files.length === 0 ? "No file has been checked yet." : "All checked files are free of errors."}</EmptyDescription>
289
289
  </EmptyHeader>
290
290
  </Empty>
291
291
  )}
292
292
  {rows.length > 0 && (
293
293
  <>
294
294
  <div className="border-y border-border-soft px-2.5 py-1.5 text-xs text-muted-foreground">
295
- {`${countLabel(errors, "Fehler", "Fehler")}, ${countLabel(warnings, "Warnung", "Warnungen")} in ${countLabel(files.length, "Datei", "Dateien")}`}
295
+ {`${countLabel(errors, "error", "errors")}, ${countLabel(warnings, "warning", "warnings")} in ${countLabel(files.length, "file", "files")}`}
296
296
  </div>
297
297
  <div className="px-1.5 pt-1 pb-2.5">
298
298
  {rows.map((row, index) => (
@@ -329,7 +329,7 @@ export function LanguageServerPanelView({ settings, snapshot, error, pending, on
329
329
  <span className="text-[0.8rem] font-medium text-foreground">{settings.label}</span>
330
330
  <span className="text-xs text-muted-foreground">{headerLabel(snapshot)}</span>
331
331
  </div>
332
- <Button aria-label="Diagnosen aktualisieren" onClick={onRefresh} size="icon" title="Aktualisieren" variant="ghost">
332
+ <Button aria-label="Refresh diagnostics" onClick={onRefresh} size="icon" title="Refresh" variant="ghost">
333
333
  <IconRefresh className={pending ? "animate-spin" : undefined} />
334
334
  </Button>
335
335
  </header>
@@ -340,8 +340,8 @@ export function LanguageServerPanelView({ settings, snapshot, error, pending, on
340
340
  <Empty>
341
341
  <EmptyHeader>
342
342
  <EmptyMedia><IconDiagnostics /></EmptyMedia>
343
- <EmptyTitle>Kein Sprachserver</EmptyTitle>
344
- <EmptyDescription>{`${settings.label}-Sprachserver ist nicht gestartet - ein Agent startet ihn mit ${settings.openTool}.`}</EmptyDescription>
343
+ <EmptyTitle>No language server</EmptyTitle>
344
+ <EmptyDescription>{`${settings.label} language server is not started - an agent starts it with ${settings.openTool}.`}</EmptyDescription>
345
345
  </EmptyHeader>
346
346
  </Empty>
347
347
  )}
@@ -1,11 +1,11 @@
1
1
  export const THINKING_LABELS: Record<string, string> = {
2
- off: "aus",
2
+ off: "off",
3
3
  minimal: "minimal",
4
- low: "niedrig",
5
- medium: "mittel",
6
- high: "hoch",
7
- xhigh: "sehr hoch",
8
- max: "maximal",
4
+ low: "low",
5
+ medium: "medium",
6
+ high: "high",
7
+ xhigh: "very high",
8
+ max: "max",
9
9
  };
10
10
 
11
11
  export const thinkingLabel = (level: string) => THINKING_LABELS[level] ?? level;
@@ -1,4 +1,4 @@
1
- // Fremde Klassen von highlight.js und react-diff-view; hier statt in den Komponenten, die auch Mini-Apps bündeln.
1
+ // Foreign classes of highlight.js and react-diff-view; here instead of in the components that mini-apps also bundle.
2
2
  import "./highlighting.css";
3
3
  import "./diff-view.css";
4
4
  import { StrictMode } from "react";
@@ -12,7 +12,7 @@ import { installHostModules } from "./host-modules";
12
12
 
13
13
  installHostModules();
14
14
  const root = document.getElementById("root");
15
- if (!root) throw new Error("Root-Element fehlt");
15
+ if (!root) throw new Error("Root element is missing");
16
16
 
17
17
  const reactRoot = createRoot(root);
18
18
  try {
@@ -25,8 +25,8 @@ try {
25
25
  );
26
26
  } catch (cause) {
27
27
  reactRoot.render(<AccessScreen>
28
- <h1 className="my-3 text-[1.5rem]">Darstellung konnte nicht geladen werden</h1>
28
+ <h1 className="my-3 text-[1.5rem]">The view could not be loaded</h1>
29
29
  <p className="mb-6 leading-normal" role="alert">{cause instanceof Error ? cause.message : String(cause)}</p>
30
- <Button onClick={() => window.location.reload()} variant="outline">Erneut laden</Button>
30
+ <Button onClick={() => window.location.reload()} variant="outline">Reload</Button>
31
31
  </AccessScreen>);
32
32
  }
@@ -1,11 +1,11 @@
1
1
  import { createContext, useContext } from "react";
2
2
 
3
- /** Wo eine Oberfläche neue Runs anbietet: der Browser nur auf dem Server, VS Code als Arbeitsplatz auch auf Arbeitsplätzen. */
3
+ /** Where a UI offers new runs: the browser only on the server, VS Code, being a workstation itself, also on workstations. */
4
4
  export type OfferedMachines = "server" | "all";
5
5
 
6
6
  const OfferedMachinesContext = createContext<OfferedMachines>("server");
7
7
 
8
- /** Der Host legt es fest; ohne ihn, etwa in der Web-App, gilt nur der Server. */
8
+ /** The host decides; without one, for example in the web app, only the server applies. */
9
9
  export const OfferedMachinesProvider = OfferedMachinesContext.Provider;
10
10
 
11
11
  export const useOfferedMachines = (): OfferedMachines => useContext(OfferedMachinesContext);
@@ -1,6 +1,6 @@
1
1
  import { createContext, useContext } from "react";
2
2
 
3
- /** Ein Host, der Webseiten außerhalb der Oberfläche zeigen kann, etwa VS Code im Simple Browser; ohne Host bleibt es beim eigenen Dialog mit iframe. */
3
+ /** A host that can show web pages outside the UI, for example VS Code in the Simple Browser; without a host it stays with the built-in dialog with an iframe. */
4
4
  export interface PageOpener {
5
5
  open(url: string, title: string): void;
6
6
  }