@schlenkr/ragents 0.1.10 → 0.1.12

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 (748) hide show
  1. package/README.md +1 -1
  2. package/apps/server/package.json +1 -1
  3. package/apps/server/src/access-projection.ts +6 -6
  4. package/apps/server/src/access-service.ts +3 -3
  5. package/apps/server/src/access-session.ts +19 -19
  6. package/apps/server/src/api/contracts.ts +29 -29
  7. package/apps/server/src/api/core-methods.ts +17 -17
  8. package/apps/server/src/api/delivery.ts +2 -2
  9. package/apps/server/src/api/reference.ts +27 -27
  10. package/apps/server/src/api/rights.ts +18 -18
  11. package/apps/server/src/chat-handler.ts +5 -5
  12. package/apps/server/src/config-definition.ts +37 -10
  13. package/apps/server/src/config-file.ts +49 -49
  14. package/apps/server/src/config.ts +2 -0
  15. package/apps/server/src/data-directory.ts +2 -2
  16. package/apps/server/src/external-access.ts +1 -1
  17. package/apps/server/src/folder-install.ts +1 -1
  18. package/apps/server/src/help-files.ts +1 -1
  19. package/apps/server/src/host-api.json +6 -1
  20. package/apps/server/src/host-api.ts +3 -2
  21. package/apps/server/src/host-record.ts +3 -3
  22. package/apps/server/src/host-resolution-hooks.mjs +4 -4
  23. package/apps/server/src/host-version.ts +17 -17
  24. package/apps/server/src/host-web.ts +5 -5
  25. package/apps/server/src/main.ts +6 -6
  26. package/apps/server/src/missing-environment.ts +6 -6
  27. package/apps/server/src/parent-watch.ts +4 -4
  28. package/apps/server/src/plugin-build/build.ts +38 -38
  29. package/apps/server/src/plugin-build/host-api-names.ts +7 -7
  30. package/apps/server/src/plugin-build/plugin-description.ts +15 -15
  31. package/apps/server/src/plugin-build/typecheck.ts +1 -1
  32. package/apps/server/src/plugin-support/actor-programs/app-project.ts +19 -19
  33. package/apps/server/src/plugin-support/actor-programs/client-compiler.ts +4 -4
  34. package/apps/server/src/plugin-support/actor-programs/client-contracts.ts +11 -11
  35. package/apps/server/src/plugin-support/actor-programs/contract.ts +17 -17
  36. package/apps/server/src/plugin-support/actor-programs/runtime-libraries.ts +1 -1
  37. package/apps/server/src/plugin-support/actor-programs/workflow/index.ts +5 -5
  38. package/apps/server/src/plugin-support/actor-programs/workflow/prompt-reader.ts +2 -2
  39. package/apps/server/src/plugin-support/chat-display-policy.ts +2 -2
  40. package/apps/server/src/plugin-support/front-matter.ts +6 -6
  41. package/apps/server/src/plugin-support/http.ts +2 -2
  42. package/apps/server/src/plugin-support/language-server/contract.ts +8 -8
  43. package/apps/server/src/plugin-support/language-server/plugin.ts +2 -2
  44. package/apps/server/src/plugin-support/language-server/snapshot-method.ts +1 -1
  45. package/apps/server/src/plugin-support/language-server/tools.ts +11 -11
  46. package/apps/server/src/plugin-support/model-aliases.ts +30 -20
  47. package/apps/server/src/plugin-support/model-choice.ts +15 -15
  48. package/apps/server/src/plugin-support/model-completion.ts +44 -23
  49. package/apps/server/src/plugin-support/model-providers.ts +170 -0
  50. package/apps/server/src/plugin-support/model-upstreams.ts +1 -1
  51. package/apps/server/src/plugin-support/native-typescript-child.ts +4 -4
  52. package/apps/server/src/plugin-support/native-typescript-executor.ts +12 -12
  53. package/apps/server/src/plugin-support/plugin-config.ts +3 -3
  54. package/apps/server/src/plugin-support/plugin-folder.ts +2 -2
  55. package/apps/server/src/plugin-support/plugins-root.ts +2 -2
  56. package/apps/server/src/plugin-support/process-sandbox.ts +39 -39
  57. package/apps/server/src/plugin-support/product-model-settings-contract.ts +3 -3
  58. package/apps/server/src/plugin-support/product-model-settings.ts +10 -10
  59. package/apps/server/src/plugin-support/product-relay.ts +9 -9
  60. package/apps/server/src/plugin-support/product-start-options.ts +4 -4
  61. package/apps/server/src/plugin-support/prompt.ts +1 -1
  62. package/apps/server/src/plugin-support/provision.ts +8 -8
  63. package/apps/server/src/plugin-support/run-scripts.ts +17 -17
  64. package/apps/server/src/plugin-support/skills.ts +18 -18
  65. package/apps/server/src/plugin-support/start-entries-contract.ts +17 -17
  66. package/apps/server/src/plugin-support/start-options-contract.ts +5 -5
  67. package/apps/server/src/plugin-support/system-prompts.ts +11 -11
  68. package/apps/server/src/plugin-support/thinking-level.ts +2 -2
  69. package/apps/server/src/plugin-support/tool-availability.ts +2 -2
  70. package/apps/server/src/plugin-support/workspace-ownership.ts +5 -5
  71. package/apps/server/src/plugin-support/workspace-sandbox-host.ts +37 -37
  72. package/apps/server/src/plugin-support/zip.ts +7 -7
  73. package/apps/server/src/profile/bundle-manifest.ts +27 -27
  74. package/apps/server/src/profile/compose.ts +12 -7
  75. package/apps/server/src/profile/plugin-discovery.ts +14 -14
  76. package/apps/server/src/profile/provisioning.ts +5 -5
  77. package/apps/server/src/profile-target.ts +10 -10
  78. package/apps/server/src/protocol.ts +2 -2
  79. package/apps/server/src/provider.ts +62 -57
  80. package/apps/server/src/ragents/actor-chat-history.ts +8 -8
  81. package/apps/server/src/ragents/chat-text-positions.ts +2 -2
  82. package/apps/server/src/ragents/coordinator.ts +2 -2
  83. package/apps/server/src/ragents/engine.ts +23 -23
  84. package/apps/server/src/ragents/global-chat.ts +8 -8
  85. package/apps/server/src/ragents/host-services.ts +6 -3
  86. package/apps/server/src/ragents/journal-chat-events.ts +1 -1
  87. package/apps/server/src/ragents/run-owner.ts +2 -2
  88. package/apps/server/src/ragents/session.ts +49 -49
  89. package/apps/server/src/ragents/typescript-tools.ts +12 -12
  90. package/apps/server/src/ragents/workspace-runtime.ts +28 -28
  91. package/apps/server/src/rpc/dispatcher.ts +19 -19
  92. package/apps/server/src/rpc/http-transport.ts +11 -11
  93. package/apps/server/src/rpc/stdio-transport.ts +3 -3
  94. package/apps/server/src/run-preparation-input.ts +5 -5
  95. package/apps/server/src/run-preparation.ts +24 -24
  96. package/apps/server/src/run-transfer.ts +39 -39
  97. package/apps/server/src/server.ts +48 -48
  98. package/apps/server/src/settings.ts +1 -1
  99. package/apps/server/src/startup.ts +3 -3
  100. package/apps/server/src/title-compactor.ts +9 -9
  101. package/apps/server/src/title-settings.ts +3 -3
  102. package/apps/server/src/web-bundles.ts +2 -2
  103. package/apps/server/src/web-stylesheet.ts +2 -2
  104. package/apps/web/dist/assets/{highlighted-body-KPVGNVTW-BO4wLQtE.js → highlighted-body-KPVGNVTW-CpPi6QLr.js} +1 -1
  105. package/apps/web/dist/assets/main-DJmCHGzM.js +11 -0
  106. package/apps/web/dist/assets/mermaid-HWGCJPDP-q-mf1kLN.js +608 -0
  107. package/apps/web/dist/assets/runPanel-nk_aMxSn.js +21 -0
  108. package/apps/web/dist/help/guide-access.html +5 -5
  109. package/apps/web/dist/help/guide-access.md +2 -2
  110. package/apps/web/dist/help/guide-clients.html +53 -54
  111. package/apps/web/dist/help/guide-clients.md +50 -51
  112. package/apps/web/dist/help/guide-distributed.html +12 -7
  113. package/apps/web/dist/help/guide-distributed.md +9 -4
  114. package/apps/web/dist/help/guide-functions.html +3 -3
  115. package/apps/web/dist/help/guide-getting-started.html +24 -15
  116. package/apps/web/dist/help/guide-getting-started.md +22 -12
  117. package/apps/web/dist/help/guide-ideas.html +3 -3
  118. package/apps/web/dist/help/guide-plugins.html +5 -4
  119. package/apps/web/dist/help/guide-plugins.md +2 -1
  120. package/apps/web/dist/help/guide-programs.html +3 -3
  121. package/apps/web/dist/help/guide-runtime.html +6 -6
  122. package/apps/web/dist/help/guide-runtime.md +3 -3
  123. package/apps/web/dist/help/guide.html +3 -3
  124. package/apps/web/dist/help/index.html +196 -144
  125. package/apps/web/dist/help/mini-app.css +6 -0
  126. package/apps/web/dist/help/mini-app.js +14 -14
  127. package/apps/web/dist/host-web.json +91 -91
  128. package/apps/web/dist/index.html +3 -3
  129. package/apps/web/dist/run-panel.html +3 -3
  130. package/apps/web/package.json +1 -1
  131. package/apps/web/src/AccessContext.tsx +15 -15
  132. package/apps/web/src/App.tsx +13 -13
  133. package/apps/web/src/DiffCode.tsx +2 -2
  134. package/apps/web/src/HelpDialog.tsx +3 -3
  135. package/apps/web/src/Overview.tsx +13 -13
  136. package/apps/web/src/PluginActivation.ts +1 -1
  137. package/apps/web/src/PluginChat.tsx +15 -15
  138. package/apps/web/src/PluginFailureNotice.tsx +1 -1
  139. package/apps/web/src/PluginRegistry.tsx +44 -44
  140. package/apps/web/src/RunPreparationChat.tsx +11 -11
  141. package/apps/web/src/RunStore.ts +1 -1
  142. package/apps/web/src/SessionList.tsx +14 -14
  143. package/apps/web/src/SettingsModal.tsx +112 -112
  144. package/apps/web/src/StartOptions.tsx +11 -11
  145. package/apps/web/src/StartSelection.tsx +11 -11
  146. package/apps/web/src/StartTiles.tsx +8 -8
  147. package/apps/web/src/SurfaceShortcuts.tsx +3 -3
  148. package/apps/web/src/ThemeSettings.tsx +8 -8
  149. package/apps/web/src/TitleModelSettings.tsx +13 -13
  150. package/apps/web/src/WorkspacePanel.tsx +9 -9
  151. package/apps/web/src/access-session.ts +4 -4
  152. package/apps/web/src/access-token.ts +5 -5
  153. package/apps/web/src/actor-conversation.ts +3 -3
  154. package/apps/web/src/actor-programs/client-ui/DataTable.tsx +8 -8
  155. package/apps/web/src/actor-programs/client-ui/FilePicker.tsx +4 -4
  156. package/apps/web/src/actor-programs/client-ui/FlowDiagram.tsx +13 -13
  157. package/apps/web/src/actor-programs/client-ui/Viewers.tsx +4 -4
  158. package/apps/web/src/actor-programs/client-ui/WorkflowDiagram.tsx +1 -1
  159. package/apps/web/src/actor-programs/client-ui/file-contracts.d.ts +4 -4
  160. package/apps/web/src/actor-programs/client-ui/file-selection.ts +1 -1
  161. package/apps/web/src/actor-programs/client-ui/viewer-contracts.d.ts +3 -3
  162. package/apps/web/src/api.ts +7 -7
  163. package/apps/web/src/chat/QuasselHost.tsx +1 -1
  164. package/apps/web/src/chat/StoppedActorNotice.tsx +5 -5
  165. package/apps/web/src/chat/chat-target.ts +3 -3
  166. package/apps/web/src/chat/requests.ts +2 -2
  167. package/apps/web/src/chat/useAttachmentCapabilities.ts +2 -2
  168. package/apps/web/src/chat-view-settings.tsx +5 -6
  169. package/apps/web/src/diff-view.css +1 -1
  170. package/apps/web/src/highlighting.css +1 -1
  171. package/apps/web/src/language-server/language-server-plugin.tsx +30 -30
  172. package/apps/web/src/lib/labels.ts +6 -6
  173. package/apps/web/src/main.tsx +4 -4
  174. package/apps/web/src/offered-machines.ts +2 -2
  175. package/apps/web/src/page-opener.tsx +1 -1
  176. package/apps/web/src/panel/ConnectionsPage.tsx +23 -23
  177. package/apps/web/src/panel/LoginForm.tsx +6 -6
  178. package/apps/web/src/panel/PanelDialogs.tsx +22 -22
  179. package/apps/web/src/panel/PanelHeader.tsx +2 -2
  180. package/apps/web/src/panel/PanelPage.tsx +1 -1
  181. package/apps/web/src/panel/RunLine.tsx +4 -4
  182. package/apps/web/src/panel/RunsPage.tsx +15 -15
  183. package/apps/web/src/panel/StartPage.tsx +26 -26
  184. package/apps/web/src/panel/connection-state.ts +9 -9
  185. package/apps/web/src/panel/contract.ts +28 -28
  186. package/apps/web/src/panel.tsx +1 -1
  187. package/apps/web/src/plugin-bootstrap.ts +5 -5
  188. package/apps/web/src/product/ModelControl.tsx +3 -3
  189. package/apps/web/src/product/ProductModelSettings.tsx +16 -16
  190. package/apps/web/src/product/SystemPromptControl.tsx +11 -11
  191. package/apps/web/src/product/model-settings.ts +2 -2
  192. package/apps/web/src/rpc/client.ts +16 -16
  193. package/apps/web/src/rpc.ts +1 -1
  194. package/apps/web/src/run-overview.ts +1 -1
  195. package/apps/web/src/run-panel/RunPanelApp.tsx +39 -39
  196. package/apps/web/src/run-panel/RunPanelHeader.tsx +6 -6
  197. package/apps/web/src/run-panel/RunPanelMenu.tsx +6 -6
  198. package/apps/web/src/run-panel/RunPanelRail.tsx +4 -4
  199. package/apps/web/src/run-panel/RunPanelWorkspace.tsx +3 -3
  200. package/apps/web/src/run-panel/clipboard.ts +3 -3
  201. package/apps/web/src/run-panel/host-contract.ts +5 -5
  202. package/apps/web/src/run-panel/host.ts +15 -15
  203. package/apps/web/src/run-panel/input-bridge.ts +1 -1
  204. package/apps/web/src/run-panel/run-panel-location.ts +5 -5
  205. package/apps/web/src/run-panel/use-session-list.ts +1 -1
  206. package/apps/web/src/run-panel/workspace-state.ts +3 -3
  207. package/apps/web/src/run-panel.tsx +4 -4
  208. package/apps/web/src/run-preparation.ts +2 -2
  209. package/apps/web/src/run-view.ts +3 -3
  210. package/apps/web/src/settings-contributions.ts +32 -32
  211. package/apps/web/src/theme.ts +9 -9
  212. package/apps/web/src/title-model-settings.ts +6 -6
  213. package/apps/web/src/ui/ListDetail.tsx +9 -9
  214. package/apps/web/src/ui/dialog.tsx +2 -2
  215. package/apps/web/src/ui/modal-controller.ts +3 -3
  216. package/apps/web/src/ui/modal.tsx +2 -2
  217. package/apps/web/src/ui/popover.tsx +1 -1
  218. package/apps/web/src/ui/relative-time.ts +8 -8
  219. package/apps/web/src/ui/startup-notice.tsx +2 -2
  220. package/apps/web/src/ui/state-icon.tsx +1 -1
  221. package/apps/web/src/ui/state-vocabulary.ts +16 -16
  222. package/apps/web/src/ui/stop-button.tsx +2 -2
  223. package/bundles/ragents.activity/ragents-bundle.json +3 -3
  224. package/bundles/ragents.activity/web/classes.json +1 -1
  225. package/bundles/ragents.activity/web/index.js +1 -1
  226. package/bundles/ragents.activity/web/index.js.map +2 -2
  227. package/bundles/ragents.actor-programs/ragents-bundle.json +3 -3
  228. package/bundles/ragents.actor-programs/server/index.js +225 -225
  229. package/bundles/ragents.actor-programs/server/index.js.map +2 -2
  230. package/bundles/ragents.actor-programs/web/classes.json +1 -1
  231. package/bundles/ragents.actor-programs/web/index.js +1 -1
  232. package/bundles/ragents.actor-programs/web/index.js.map +3 -3
  233. package/bundles/ragents.ask/ragents-bundle.json +3 -3
  234. package/bundles/ragents.ask/server/chunks/{chunk-PDJO75SQ.js → chunk-YOV27MAR.js} +2 -2
  235. package/bundles/ragents.ask/server/chunks/chunk-YOV27MAR.js.map +7 -0
  236. package/bundles/ragents.ask/server/exports/server/contract.js +1 -1
  237. package/bundles/ragents.ask/server/index.js +23 -23
  238. package/bundles/ragents.ask/server/index.js.map +2 -2
  239. package/bundles/ragents.ask/web/chunks/{chunk-WFN4374U.js → chunk-D6NNB5DS.js} +1 -1
  240. package/bundles/ragents.ask/web/chunks/chunk-D6NNB5DS.js.map +7 -0
  241. package/bundles/ragents.ask/web/chunks/{chunk-MBRPS477.js → chunk-IQBHK7MV.js} +2 -2
  242. package/bundles/ragents.ask/web/chunks/{chunk-MBRPS477.js.map → chunk-IQBHK7MV.js.map} +3 -3
  243. package/bundles/ragents.ask/web/chunks/chunk-PWFIAMX4.js +2 -0
  244. package/bundles/ragents.ask/web/chunks/chunk-PWFIAMX4.js.map +7 -0
  245. package/bundles/ragents.ask/web/chunks/chunk-QHGKEESD.js +2 -0
  246. package/bundles/ragents.ask/web/chunks/chunk-QHGKEESD.js.map +7 -0
  247. package/bundles/ragents.ask/web/classes.json +1 -1
  248. package/bundles/ragents.ask/web/exports/ask-payload.js +1 -1
  249. package/bundles/ragents.ask/web/exports/web/QuestionCard.js +1 -1
  250. package/bundles/ragents.ask/web/exports/web/api.js +1 -1
  251. package/bundles/ragents.ask/web/index.js +1 -1
  252. package/bundles/ragents.ask/web/index.js.map +2 -2
  253. package/bundles/ragents.browser/executor/index.mjs +35 -35
  254. package/bundles/ragents.browser/executor/index.mjs.map +2 -2
  255. package/bundles/ragents.browser/ragents-bundle.json +3 -3
  256. package/bundles/ragents.browser/server/chunks/{chunk-CWLX4VA5.js → chunk-PYEISBNE.js} +1 -1
  257. package/bundles/ragents.browser/server/chunks/{chunk-CWLX4VA5.js.map → chunk-PYEISBNE.js.map} +1 -1
  258. package/bundles/ragents.browser/server/exports/server/contract.js +1 -1
  259. package/bundles/ragents.browser/server/index.js +31 -31
  260. package/bundles/ragents.browser/server/index.js.map +2 -2
  261. package/bundles/ragents.browser/skills/browser-testing/SKILL.md +30 -30
  262. package/bundles/ragents.documents/prompt.hbs +1 -1
  263. package/bundles/ragents.documents/ragents-bundle.json +3 -3
  264. package/bundles/ragents.documents/server/chunks/{chunk-QIECRZ7C.js → chunk-KMZWOVTI.js} +3 -3
  265. package/bundles/ragents.documents/server/chunks/{chunk-QIECRZ7C.js.map → chunk-KMZWOVTI.js.map} +2 -2
  266. package/bundles/ragents.documents/server/exports/contract.js +1 -1
  267. package/bundles/ragents.documents/server/index.js +26 -26
  268. package/bundles/ragents.documents/server/index.js.map +2 -2
  269. package/bundles/ragents.documents/web/classes.json +1 -1
  270. package/bundles/ragents.documents/web/index.js +1 -1
  271. package/bundles/ragents.documents/web/index.js.map +3 -3
  272. package/bundles/ragents.lsp-fsharp/executor/index.mjs +4 -4
  273. package/bundles/ragents.lsp-fsharp/executor/index.mjs.map +2 -2
  274. package/bundles/ragents.lsp-fsharp/ragents-bundle.json +3 -3
  275. package/bundles/ragents.lsp-fsharp/server/index.js +5 -5
  276. package/bundles/ragents.lsp-fsharp/server/index.js.map +2 -2
  277. package/bundles/ragents.lsp-fsharp/web/index.js +1 -1
  278. package/bundles/ragents.lsp-fsharp/web/index.js.map +2 -2
  279. package/bundles/ragents.lsp-roslyn/executor/index.mjs +3 -3
  280. package/bundles/ragents.lsp-roslyn/executor/index.mjs.map +2 -2
  281. package/bundles/ragents.lsp-roslyn/ragents-bundle.json +3 -3
  282. package/bundles/ragents.lsp-roslyn/server/index.js +17 -17
  283. package/bundles/ragents.lsp-roslyn/server/index.js.map +2 -2
  284. package/bundles/ragents.lsp-roslyn/web/index.js +1 -1
  285. package/bundles/ragents.lsp-roslyn/web/index.js.map +2 -2
  286. package/bundles/ragents.lsp-typescript/executor/index.mjs +2 -2
  287. package/bundles/ragents.lsp-typescript/executor/index.mjs.map +2 -2
  288. package/bundles/ragents.lsp-typescript/ragents-bundle.json +3 -3
  289. package/bundles/ragents.lsp-typescript/server/index.js.map +1 -1
  290. package/bundles/ragents.lsp-typescript/web/index.js +1 -1
  291. package/bundles/ragents.lsp-typescript/web/index.js.map +2 -2
  292. package/bundles/ragents.model-relay/ragents-bundle.json +8 -4
  293. package/bundles/ragents.model-relay/server/index.js +25 -21
  294. package/bundles/ragents.model-relay/server/index.js.map +2 -2
  295. package/bundles/ragents.orchestration/ragents-bundle.json +3 -3
  296. package/bundles/ragents.orchestration/server/index.js +28 -28
  297. package/bundles/ragents.orchestration/server/index.js.map +2 -2
  298. package/bundles/ragents.orchestration/web/chunks/{chunk-OSKPH6SZ.js → chunk-CFMJD5ZI.js} +2 -2
  299. package/bundles/ragents.orchestration/web/chunks/chunk-HOBLI364.js +2 -0
  300. package/bundles/ragents.orchestration/web/chunks/{chunk-OQYCNYXN.js.map → chunk-HOBLI364.js.map} +2 -2
  301. package/bundles/ragents.orchestration/web/chunks/{chunk-ODMMQGX2.js → chunk-UCIMT2R4.js} +2 -2
  302. package/bundles/ragents.orchestration/web/classes.json +1 -1
  303. package/bundles/ragents.orchestration/web/exports/web/program-slot.js +1 -1
  304. package/bundles/ragents.orchestration/web/exports/web/surface-entities.js +1 -1
  305. package/bundles/ragents.orchestration/web/index.js +8 -8
  306. package/bundles/ragents.orchestration/web/index.js.map +2 -2
  307. package/bundles/ragents.overseer/ragents-bundle.json +3 -3
  308. package/bundles/ragents.overseer/server/index.js +98 -98
  309. package/bundles/ragents.overseer/server/index.js.map +2 -2
  310. package/bundles/ragents.overseer/web/classes.json +1 -1
  311. package/bundles/ragents.overseer/web/index.js +1 -1
  312. package/bundles/ragents.overseer/web/index.js.map +2 -2
  313. package/bundles/ragents.processes/ragents-bundle.json +3 -3
  314. package/bundles/ragents.processes/server/index.js +11 -11
  315. package/bundles/ragents.processes/server/index.js.map +2 -2
  316. package/bundles/ragents.processes/web/classes.json +1 -1
  317. package/bundles/ragents.processes/web/index.js +3 -3
  318. package/bundles/ragents.processes/web/index.js.map +2 -2
  319. package/bundles/ragents.product/ragents-bundle.json +3 -3
  320. package/bundles/ragents.product/server/index.js +12 -13
  321. package/bundles/ragents.product/server/index.js.map +2 -2
  322. package/bundles/ragents.product/web/classes.json +1 -1
  323. package/bundles/ragents.product/web/index.js +1 -1
  324. package/bundles/ragents.product/web/index.js.map +2 -2
  325. package/bundles/ragents.profile-distribution/ragents-bundle.json +3 -3
  326. package/bundles/ragents.profile-distribution/server/index.js +31 -31
  327. package/bundles/ragents.profile-distribution/server/index.js.map +2 -2
  328. package/bundles/ragents.reference/ragents-bundle.json +3 -3
  329. package/bundles/ragents.reference/run-scripts/balcony-wizard/RUN.md +19 -19
  330. package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/package.json +2 -2
  331. package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/client.tsx +14 -14
  332. package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/conversation.ts +2 -2
  333. package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/tests/conversation.test.ts +49 -49
  334. package/bundles/ragents.reference/run-scripts/balcony-wizard/package.json +1 -1
  335. package/bundles/ragents.reference/run-scripts/balcony-wizard/src/server.ts +9 -9
  336. package/bundles/ragents.reference/run-scripts/balcony-wizard/tests/program.test.ts +9 -9
  337. package/bundles/ragents.reference/run-scripts/conversation-circle/RUN.md +7 -7
  338. package/bundles/ragents.reference/run-scripts/conversation-circle/package.json +1 -1
  339. package/bundles/ragents.reference/run-scripts/conversation-circle/src/server.ts +13 -13
  340. package/bundles/ragents.reference/run-scripts/conversation-circle/tests/helpers.ts +1 -1
  341. package/bundles/ragents.reference/run-scripts/conversation-circle/tests/program.test.ts +8 -8
  342. package/bundles/ragents.reference/run-scripts/learning-afternoon/RUN.md +16 -16
  343. package/bundles/ragents.reference/run-scripts/learning-afternoon/package.json +1 -1
  344. package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/experiment.md +1 -1
  345. package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/helper.md +3 -3
  346. package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/quiz.md +1 -1
  347. package/bundles/ragents.reference/run-scripts/learning-afternoon/src/server.ts +9 -9
  348. package/bundles/ragents.reference/run-scripts/learning-afternoon/tests/program.test.ts +39 -39
  349. package/bundles/ragents.reference/run-scripts/moderated-round/RUN.md +7 -7
  350. package/bundles/ragents.reference/run-scripts/moderated-round/package.json +1 -1
  351. package/bundles/ragents.reference/run-scripts/moderated-round/src/server.ts +9 -9
  352. package/bundles/ragents.reference/run-scripts/moderated-round/tests/helpers.ts +1 -1
  353. package/bundles/ragents.reference/run-scripts/moderated-round/tests/program.test.ts +6 -6
  354. package/bundles/ragents.reference/run-scripts/shared-actor-list/RUN.md +12 -12
  355. package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/package.json +2 -2
  356. package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/contract.ts +3 -3
  357. package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/tests/program.test.ts +4 -4
  358. package/bundles/ragents.reference/run-scripts/shared-actor-list/package.json +1 -1
  359. package/bundles/ragents.reference/run-scripts/shared-actor-list/src/server.ts +11 -11
  360. package/bundles/ragents.reference/run-scripts/shared-actor-list/tests/helpers.ts +1 -1
  361. package/bundles/ragents.reference/run-scripts/shared-actor-list/tests/program.test.ts +13 -13
  362. package/bundles/ragents.reference/run-scripts/word-game/RUN.md +18 -18
  363. package/bundles/ragents.reference/run-scripts/word-game/package.json +2 -2
  364. package/bundles/ragents.reference/run-scripts/word-game/src/client.tsx +1 -1
  365. package/bundles/ragents.reference/run-scripts/word-game/src/contract.ts +2 -2
  366. package/bundles/ragents.reference/run-scripts/word-game/src/server.ts +16 -16
  367. package/bundles/ragents.reference/run-scripts/word-game/tests/program.test.ts +39 -39
  368. package/bundles/ragents.reference/skills/100-shared-actor-list/SKILL.md +5 -5
  369. package/bundles/ragents.reference/skills/110-all-card-slots/SKILL.md +5 -5
  370. package/bundles/ragents.reference/skills/150-editorial-workbench/SKILL.md +5 -5
  371. package/bundles/ragents.reference/skills/160-learning-companion/SKILL.md +5 -5
  372. package/bundles/ragents.reference/skills/170-photo-collection/SKILL.md +5 -5
  373. package/bundles/ragents.reference/skills/180-decision-workbench/SKILL.md +5 -5
  374. package/bundles/ragents.reference/skills/190-review-queue/SKILL.md +5 -5
  375. package/bundles/ragents.reference/skills/20-circle-of-four/SKILL.md +5 -5
  376. package/bundles/ragents.reference/skills/200-typescript-diagnostics/SKILL.md +5 -5
  377. package/bundles/ragents.reference/skills/210-moderator-handover/SKILL.md +5 -5
  378. package/bundles/ragents.reference/skills/220-actor-approval-list/SKILL.md +5 -5
  379. package/bundles/ragents.reference/skills/230-shared-state-views/SKILL.md +5 -5
  380. package/bundles/ragents.reference/skills/240-live-result-list/SKILL.md +5 -5
  381. package/bundles/ragents.reference/skills/250-balcony-wizard/SKILL.md +5 -5
  382. package/bundles/ragents.reference/skills/30-llm-without-runtime-knowledge/SKILL.md +5 -5
  383. package/bundles/ragents.reference/skills/35-actor-input-fifo/SKILL.md +5 -5
  384. package/bundles/ragents.reference/skills/40-subscription-matrix/SKILL.md +5 -5
  385. package/bundles/ragents.reference/skills/50-subscription-removal/SKILL.md +5 -5
  386. package/bundles/ragents.reference/skills/60-stop-in-the-circle/SKILL.md +5 -5
  387. package/bundles/ragents.reference/skills/65-artifact-least-privilege/SKILL.md +5 -5
  388. package/bundles/ragents.reference/skills/70-headless-counter/SKILL.md +5 -5
  389. package/bundles/ragents.reference/skills/75-lsp-demo/SKILL.md +5 -5
  390. package/bundles/ragents.reference/skills/80-actor-text-analysis/SKILL.md +5 -5
  391. package/bundles/ragents.reference/skills/90-actor-notes/SKILL.md +5 -5
  392. package/bundles/ragents.reference/skills/95-hello-world/SKILL.md +5 -5
  393. package/bundles/ragents.reference/skills/decision-brief/SKILL.md +24 -24
  394. package/bundles/ragents.reference/skills/learning-sprint/SKILL.md +24 -24
  395. package/bundles/ragents.reference/web/classes.json +1 -1
  396. package/bundles/ragents.reference/web/index.js +1 -1
  397. package/bundles/ragents.reference/web/index.js.map +2 -2
  398. package/bundles/ragents.todo/ragents-bundle.json +3 -3
  399. package/bundles/ragents.todo/server/index.js +5 -8
  400. package/bundles/ragents.todo/server/index.js.map +2 -2
  401. package/bundles/ragents.todo/web/classes.json +1 -1
  402. package/bundles/ragents.todo/web/index.js +1 -1
  403. package/bundles/ragents.todo/web/index.js.map +2 -2
  404. package/bundles/ragents.transcript/ragents-bundle.json +3 -3
  405. package/bundles/ragents.transcript/server/index.js +11 -11
  406. package/bundles/ragents.transcript/server/index.js.map +2 -2
  407. package/bundles/ragents.watch/ragents-bundle.json +3 -3
  408. package/bundles/ragents.watch/server/index.js +48 -48
  409. package/bundles/ragents.watch/server/index.js.map +2 -2
  410. package/bundles/ragents.workspace/ragents-bundle.json +3 -3
  411. package/bundles/ragents.workspace/server/index.js +83 -83
  412. package/bundles/ragents.workspace/server/index.js.map +2 -2
  413. package/bundles/ragents.workspace/web/classes.json +1 -1
  414. package/bundles/ragents.workspace/web/index.js +1 -1
  415. package/bundles/ragents.workspace/web/index.js.map +2 -2
  416. package/package.json +4 -4
  417. package/packages/agent/dist/core/model-runtime.d.ts +7 -2
  418. package/packages/agent/dist/index.d.ts +1 -1
  419. package/packages/agent/dist/loop/agent-loop.d.ts +2 -2
  420. package/packages/agent/src/core/compaction/utils.ts +1 -1
  421. package/packages/agent/src/core/model-runtime.ts +45 -5
  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 +3725 -552
  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/plugin-host.ts +119 -119
  453. package/packages/ragents/src/plugin-types.ts +16 -16
  454. package/packages/ragents/src/rpc/contract.ts +5 -5
  455. package/packages/ragents/src/rpc/contribution.ts +2 -2
  456. package/packages/ragents/src/rpc/peer.ts +11 -11
  457. package/packages/ragents/src/rpc/protocol.ts +2 -2
  458. package/packages/ragents/src/runtime/decisions/turns.ts +1 -1
  459. package/packages/ragents/src/runtime/journal-storage.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 +44 -44
  472. package/packages/workspace-executor/src/errors.ts +1 -1
  473. package/packages/workspace-executor/src/executor.ts +16 -16
  474. package/packages/workspace-executor/src/files.ts +31 -31
  475. package/packages/workspace-executor/src/index.ts +1 -1
  476. package/packages/workspace-executor/src/language-server/contract.ts +2 -2
  477. package/packages/workspace-executor/src/language-server/diagnostics.ts +4 -4
  478. package/packages/workspace-executor/src/language-server/host.ts +36 -36
  479. package/packages/workspace-executor/src/language-server/json-rpc.ts +4 -4
  480. package/packages/workspace-executor/src/language-server/module.ts +11 -11
  481. package/packages/workspace-executor/src/language-server/roots.ts +3 -3
  482. package/packages/workspace-executor/src/language-server/session.ts +15 -15
  483. package/packages/workspace-executor/src/language-server/workspace-solutions.ts +3 -3
  484. package/packages/workspace-executor/src/managed-process.ts +12 -12
  485. package/packages/workspace-executor/src/module.ts +8 -8
  486. package/packages/workspace-executor/src/modules.ts +3 -3
  487. package/packages/workspace-executor/src/paths.ts +11 -11
  488. package/packages/workspace-executor/src/process-sandbox.ts +3 -3
  489. package/packages/workspace-executor/src/processes/module.ts +3 -3
  490. package/packages/workspace-executor/src/processes/process-table.ts +20 -20
  491. package/packages/workspace-executor/src/processes/scanner.ts +3 -3
  492. package/packages/workspace-executor/src/processes/snapshot.ts +2 -2
  493. package/packages/workspace-executor/src/processes/terminator.ts +13 -13
  494. package/packages/workspace-executor/src/run-folders.ts +3 -3
  495. package/packages/workspace-executor/src/safe-environment.ts +4 -4
  496. package/packages/workspace-executor/src/sandbox-tools.ts +28 -28
  497. package/packages/workspace-executor/src/session-ident.ts +2 -2
  498. package/packages/workspace-executor/src/shell-platform.ts +2 -2
  499. package/packages/workspace-executor/src/tools.ts +5 -5
  500. package/plugins/ragents.activity/web/ActivityHeader.tsx +3 -3
  501. package/plugins/ragents.activity/web/activity.ts +2 -2
  502. package/plugins/ragents.actor-programs/server/access-projections.ts +1 -1
  503. package/plugins/ragents.actor-programs/server/agent-tools.ts +2 -2
  504. package/plugins/ragents.actor-programs/server/capability-resolver.ts +3 -3
  505. package/plugins/ragents.actor-programs/server/controls-template.ts +46 -46
  506. package/plugins/ragents.actor-programs/server/controls-tool.ts +4 -4
  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 -2
  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 +3 -3
  572. package/plugins/ragents.orchestration/web/ActorChatControls.tsx +4 -5
  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/Center.tsx +5 -5
  578. package/plugins/ragents.orchestration/web/DocumentsSection.tsx +2 -2
  579. package/plugins/ragents.orchestration/web/ExecutionsPanel.tsx +15 -15
  580. package/plugins/ragents.orchestration/web/FlowInspector.tsx +103 -103
  581. package/plugins/ragents.orchestration/web/JournalStatus.tsx +11 -11
  582. package/plugins/ragents.orchestration/web/MaterialBody.tsx +2 -2
  583. package/plugins/ragents.orchestration/web/StopRunButton.tsx +6 -6
  584. package/plugins/ragents.orchestration/web/TiledSurface.tsx +9 -9
  585. package/plugins/ragents.orchestration/web/actor-header-settings.ts +5 -5
  586. package/plugins/ragents.orchestration/web/constants.ts +2 -2
  587. package/plugins/ragents.orchestration/web/executions.ts +6 -6
  588. package/plugins/ragents.orchestration/web/format.ts +1 -1
  589. package/plugins/ragents.orchestration/web/index.tsx +2 -2
  590. package/plugins/ragents.orchestration/web/run-panel/AddresseeControl.tsx +7 -7
  591. package/plugins/ragents.orchestration/web/run-panel/AddresseeTree.tsx +8 -8
  592. package/plugins/ragents.orchestration/web/run-panel/RunPanel.tsx +22 -22
  593. package/plugins/ragents.orchestration/web/run-panel/RunPanelSettings.tsx +7 -7
  594. package/plugins/ragents.orchestration/web/run-panel/addressee-tree.ts +13 -13
  595. package/plugins/ragents.orchestration/web/run-panel/run-panel-actors.ts +3 -3
  596. package/plugins/ragents.orchestration/web/run-panel/run-panel-settings.ts +2 -2
  597. package/plugins/ragents.orchestration/web/run-panel/run-panel-startup.ts +3 -3
  598. package/plugins/ragents.orchestration/web/run-panel/run-panel-state.ts +7 -7
  599. package/plugins/ragents.orchestration/web/run-panel/sheet-status.ts +9 -9
  600. package/plugins/ragents.orchestration/web/surface-startup.ts +8 -8
  601. package/plugins/ragents.orchestration/web/surface-view-settings.ts +1 -1
  602. package/plugins/ragents.orchestration/web/tiled-view-settings.ts +1 -1
  603. package/plugins/ragents.overseer/contract.ts +20 -20
  604. package/plugins/ragents.overseer/server/api.ts +6 -6
  605. package/plugins/ragents.overseer/server/coordinator-prompt.ts +10 -10
  606. package/plugins/ragents.overseer/server/coordinator.ts +4 -4
  607. package/plugins/ragents.overseer/server/index.ts +24 -24
  608. package/plugins/ragents.overseer/server/orientation.ts +8 -8
  609. package/plugins/ragents.overseer/server/quick-answer.ts +9 -9
  610. package/plugins/ragents.overseer/server/run-directory.ts +5 -5
  611. package/plugins/ragents.overseer/server/settings.ts +6 -6
  612. package/plugins/ragents.overseer/server/user-location.ts +16 -16
  613. package/plugins/ragents.overseer/web/ModelSettings.tsx +9 -9
  614. package/plugins/ragents.overseer/web/index.tsx +20 -20
  615. package/plugins/ragents.overseer/web/model-settings.ts +1 -1
  616. package/plugins/ragents.overseer/web/quick-answers.ts +2 -2
  617. package/plugins/ragents.processes/contract.ts +5 -5
  618. package/plugins/ragents.processes/server/methods.ts +4 -4
  619. package/plugins/ragents.processes/server/observer.ts +8 -8
  620. package/plugins/ragents.processes/server/run-processes.ts +2 -2
  621. package/plugins/ragents.processes/web/ProcessHeader.tsx +10 -10
  622. package/plugins/ragents.processes/web/processes.ts +10 -10
  623. package/plugins/ragents.product/server/config.ts +1 -1
  624. package/plugins/ragents.product/server/index.ts +4 -4
  625. package/plugins/ragents.product/server/runtime.ts +9 -10
  626. package/plugins/ragents.product/web/index.tsx +1 -1
  627. package/plugins/ragents.profile-distribution/contract.ts +10 -10
  628. package/plugins/ragents.profile-distribution/server/archive.ts +20 -20
  629. package/plugins/ragents.profile-distribution/server/config.ts +2 -2
  630. package/plugins/ragents.profile-distribution/server/index.ts +4 -4
  631. package/plugins/ragents.reference/examples.ts +27 -27
  632. package/plugins/ragents.reference/run-scripts/balcony-wizard/RUN.md +19 -19
  633. package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/package.json +2 -2
  634. package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/client.tsx +14 -14
  635. package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/conversation.ts +2 -2
  636. package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/tests/conversation.test.ts +49 -49
  637. package/plugins/ragents.reference/run-scripts/balcony-wizard/package.json +1 -1
  638. package/plugins/ragents.reference/run-scripts/balcony-wizard/src/server.ts +9 -9
  639. package/plugins/ragents.reference/run-scripts/balcony-wizard/tests/program.test.ts +9 -9
  640. package/plugins/ragents.reference/run-scripts/conversation-circle/RUN.md +7 -7
  641. package/plugins/ragents.reference/run-scripts/conversation-circle/package.json +1 -1
  642. package/plugins/ragents.reference/run-scripts/conversation-circle/src/server.ts +13 -13
  643. package/plugins/ragents.reference/run-scripts/conversation-circle/tests/helpers.ts +1 -1
  644. package/plugins/ragents.reference/run-scripts/conversation-circle/tests/program.test.ts +8 -8
  645. package/plugins/ragents.reference/run-scripts/learning-afternoon/RUN.md +16 -16
  646. package/plugins/ragents.reference/run-scripts/learning-afternoon/package.json +1 -1
  647. package/plugins/ragents.reference/run-scripts/learning-afternoon/prompts/experiment.md +1 -1
  648. package/plugins/ragents.reference/run-scripts/learning-afternoon/prompts/helper.md +3 -3
  649. package/plugins/ragents.reference/run-scripts/learning-afternoon/prompts/quiz.md +1 -1
  650. package/plugins/ragents.reference/run-scripts/learning-afternoon/src/server.ts +9 -9
  651. package/plugins/ragents.reference/run-scripts/learning-afternoon/tests/program.test.ts +39 -39
  652. package/plugins/ragents.reference/run-scripts/moderated-round/RUN.md +7 -7
  653. package/plugins/ragents.reference/run-scripts/moderated-round/package.json +1 -1
  654. package/plugins/ragents.reference/run-scripts/moderated-round/src/server.ts +9 -9
  655. package/plugins/ragents.reference/run-scripts/moderated-round/tests/helpers.ts +1 -1
  656. package/plugins/ragents.reference/run-scripts/moderated-round/tests/program.test.ts +6 -6
  657. package/plugins/ragents.reference/run-scripts/shared-actor-list/RUN.md +12 -12
  658. package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/package.json +2 -2
  659. package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/contract.ts +3 -3
  660. package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/tests/program.test.ts +4 -4
  661. package/plugins/ragents.reference/run-scripts/shared-actor-list/package.json +1 -1
  662. package/plugins/ragents.reference/run-scripts/shared-actor-list/src/server.ts +11 -11
  663. package/plugins/ragents.reference/run-scripts/shared-actor-list/tests/helpers.ts +1 -1
  664. package/plugins/ragents.reference/run-scripts/shared-actor-list/tests/program.test.ts +13 -13
  665. package/plugins/ragents.reference/run-scripts/word-game/RUN.md +18 -18
  666. package/plugins/ragents.reference/run-scripts/word-game/package.json +2 -2
  667. package/plugins/ragents.reference/run-scripts/word-game/src/client.tsx +1 -1
  668. package/plugins/ragents.reference/run-scripts/word-game/src/contract.ts +2 -2
  669. package/plugins/ragents.reference/run-scripts/word-game/src/server.ts +16 -16
  670. package/plugins/ragents.reference/run-scripts/word-game/tests/program.test.ts +39 -39
  671. package/plugins/ragents.reference/skills/100-shared-actor-list/SKILL.md +5 -5
  672. package/plugins/ragents.reference/skills/110-all-card-slots/SKILL.md +5 -5
  673. package/plugins/ragents.reference/skills/150-editorial-workbench/SKILL.md +5 -5
  674. package/plugins/ragents.reference/skills/160-learning-companion/SKILL.md +5 -5
  675. package/plugins/ragents.reference/skills/170-photo-collection/SKILL.md +5 -5
  676. package/plugins/ragents.reference/skills/180-decision-workbench/SKILL.md +5 -5
  677. package/plugins/ragents.reference/skills/190-review-queue/SKILL.md +5 -5
  678. package/plugins/ragents.reference/skills/20-circle-of-four/SKILL.md +5 -5
  679. package/plugins/ragents.reference/skills/200-typescript-diagnostics/SKILL.md +5 -5
  680. package/plugins/ragents.reference/skills/210-moderator-handover/SKILL.md +5 -5
  681. package/plugins/ragents.reference/skills/220-actor-approval-list/SKILL.md +5 -5
  682. package/plugins/ragents.reference/skills/230-shared-state-views/SKILL.md +5 -5
  683. package/plugins/ragents.reference/skills/240-live-result-list/SKILL.md +5 -5
  684. package/plugins/ragents.reference/skills/250-balcony-wizard/SKILL.md +5 -5
  685. package/plugins/ragents.reference/skills/30-llm-without-runtime-knowledge/SKILL.md +5 -5
  686. package/plugins/ragents.reference/skills/35-actor-input-fifo/SKILL.md +5 -5
  687. package/plugins/ragents.reference/skills/40-subscription-matrix/SKILL.md +5 -5
  688. package/plugins/ragents.reference/skills/50-subscription-removal/SKILL.md +5 -5
  689. package/plugins/ragents.reference/skills/60-stop-in-the-circle/SKILL.md +5 -5
  690. package/plugins/ragents.reference/skills/65-artifact-least-privilege/SKILL.md +5 -5
  691. package/plugins/ragents.reference/skills/70-headless-counter/SKILL.md +5 -5
  692. package/plugins/ragents.reference/skills/75-lsp-demo/SKILL.md +5 -5
  693. package/plugins/ragents.reference/skills/80-actor-text-analysis/SKILL.md +5 -5
  694. package/plugins/ragents.reference/skills/90-actor-notes/SKILL.md +5 -5
  695. package/plugins/ragents.reference/skills/95-hello-world/SKILL.md +5 -5
  696. package/plugins/ragents.reference/skills/decision-brief/SKILL.md +24 -24
  697. package/plugins/ragents.reference/skills/learning-sprint/SKILL.md +24 -24
  698. package/plugins/ragents.reference/walkthroughs.ts +128 -128
  699. package/plugins/ragents.reference/web/StartGuides.tsx +23 -23
  700. package/plugins/ragents.todo/contract.ts +0 -3
  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 +63 -63
  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 +50 -50
  714. package/plugins/ragents.workspace/server/config.ts +7 -7
  715. package/plugins/ragents.workspace/server/index.ts +3 -3
  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 +31 -31
  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 +49 -49
  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-DnnqWHkH.js +0 -11
  738. package/apps/web/dist/assets/mermaid-HWGCJPDP-BLLeth5_.js +0 -568
  739. package/apps/web/dist/assets/runPanel-DPm7s3KM.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/bundles/ragents.orchestration/web/chunks/{chunk-OSKPH6SZ.js.map → chunk-CFMJD5ZI.js.map} +0 -0
  748. /package/bundles/ragents.orchestration/web/chunks/{chunk-ODMMQGX2.js.map → chunk-UCIMT2R4.js.map} +0 -0
@@ -70,14 +70,14 @@ const messageOf = (error: unknown): string => error instanceof Error ? error.mes
70
70
 
71
71
  const userIdOf = (user: ChatUser | undefined): string | null => user?.id ?? null;
72
72
 
73
- /** Wer einen Run startet, über welche Vorlage und welche Startoptionen sie festlegt. */
73
+ /** Who starts a run, through which template, and which start options it fixes. */
74
74
  interface StartChoice {
75
75
  readonly userId: string | null;
76
76
  readonly entry: SessionStartedContext["startEntry"];
77
77
  readonly fixed: ReadonlyMap<string, JsonValue>;
78
78
  }
79
79
 
80
- /** Ein Start ohne Vorlage legt nichts fest. */
80
+ /** A start without a template fixes nothing. */
81
81
  const freeChoice = (userId: string | null): StartChoice => ({ userId, entry: null, fixed: new Map() });
82
82
 
83
83
  /** A script template together with the package the host installs when it is clicked. */
@@ -95,7 +95,7 @@ export interface RunChatSessionOptions {
95
95
  assertUsable: (id: string) => void;
96
96
  prepare: (id: string, emitSystem: (text: string) => void) => Promise<void>;
97
97
  prepareWorkspace: (id: string, emitSystem: (text: string) => void) => Promise<void>;
98
- /** Nach dem Aufbau des ersten Actors im vorbereiteten Arbeitsbereich, bevor ein Actor Input bekommt. */
98
+ /** After the first actor is set up in the prepared workspace, before any actor gets input. */
99
99
  started: (id: string, startEntry: SessionStartedContext["startEntry"]) => Promise<void>;
100
100
  scriptEntryFor: (entryId: string) => RunScriptStart | undefined;
101
101
  startEntryFor: (entryId: string) => PublicStartEntry | undefined;
@@ -170,15 +170,15 @@ export class RunChatSession implements ChatSessionLike {
170
170
  return this.#engine.startOptions.entries().map((entry) => this.#startOptionState(entry, userId));
171
171
  }
172
172
 
173
- /** Vor dem Start merkt sich der Run die Wahl, danach schreibt er eine änderbare Option ins Journal. */
173
+ /** Before the start the run remembers the choice; afterwards it writes a changeable option to the journal. */
174
174
  async selectStartOption(optionId: string, value: unknown, userId: string | null): Promise<StartOptionState> {
175
175
  const entry = this.#engine.startOptions.entry(optionId);
176
- if (!entry) throw new DomainError("option-unknown", `Die Startoption ${optionId} ist nicht registriert.`, 404);
176
+ if (!entry) throw new DomainError("option-unknown", `The start option ${optionId} is not registered.`, 404);
177
177
  if (!entry.option.selectable()) {
178
- throw new DomainError("option-not-selectable", `Die Startoption ${optionId} ist fest konfiguriert.`, 409);
178
+ throw new DomainError("option-not-selectable", `The start option ${optionId} is fixed by configuration.`, 409);
179
179
  }
180
180
  if (this.startLocked && !entry.option.changeable) {
181
- throw new DomainError("option-locked", "Der Run läuft bereits, die Startoptionen stehen fest.", 409);
181
+ throw new DomainError("option-locked", "The run is already running, the start options are fixed.", 409);
182
182
  }
183
183
  const accepted = this.#engine.startOptions.accept(optionId, value, this.#startContext(userId));
184
184
  if (!this.startLocked) {
@@ -197,7 +197,7 @@ export class RunChatSession implements ChatSessionLike {
197
197
  return this.#startOptionState(entry, userId);
198
198
  }
199
199
 
200
- /** Ein anderes Modell muss die Anhänge lesen können, die das Gespräch des Koordinators schon enthält. */
200
+ /** Another model must be able to read the attachments the coordinator's conversation already contains. */
201
201
  async #assertCoordinatorCanRead(choice: { model?: string; thinking?: string }): Promise<void> {
202
202
  const view = this.#engine.runtime.view(this.id);
203
203
  const primary = primaryActorOf(view);
@@ -209,7 +209,7 @@ export class RunChatSession implements ChatSessionLike {
209
209
  const supported = await this.#engine.inputCapabilities(provider, model);
210
210
  const missing = [...kinds].filter((kind) => (kind === "image" || kind === "video" || kind === "file") && !supported.includes(kind));
211
211
  if (missing.length > 0) {
212
- throw new DomainError("model-history-unsupported", `Das Gespräch enthält bereits ${missing.join(", ")}-Anhänge, die ${modelLabel(provider, model)} nicht verarbeiten kann; wähle ein passendes Modell.`, 400);
212
+ throw new DomainError("model-history-unsupported", `The conversation already contains ${missing.join(", ")} attachments that ${modelLabel(provider, model)} cannot process; choose a suitable model.`, 400);
213
213
  }
214
214
  }
215
215
 
@@ -224,7 +224,7 @@ export class RunChatSession implements ChatSessionLike {
224
224
  return chosen ?? this.#engine.startOptions.defaultValue(entry.option.id, this.#startContext(choice.userId));
225
225
  }
226
226
 
227
- /** Die eine Stelle, an der eine Vorlage Startoptionen festlegt: mit dem Handelnden angenommen, eine andere Belegung davor ist ein Fehler. */
227
+ /** The one place where a template fixes start options: accepted with the acting user; a different earlier value is an error. */
228
228
  #startChoice(entry: PublicStartEntry, userId: string | null): StartChoice {
229
229
  const state = this.#engine.journal.stateOf(this.id);
230
230
  const fixed = new Map(Object.entries(entry.fixedStartOptions ?? {}).map(([optionId, value]) => {
@@ -232,8 +232,8 @@ export class RunChatSession implements ChatSessionLike {
232
232
  const chosen = this.startLocked ? storedStartOption(state, optionId) : this.#startValues.get(optionId);
233
233
  if (chosen !== undefined && !isDeepStrictEqual(chosen, accepted)) {
234
234
  throw new DomainError("start-option-fixed", this.startLocked
235
- ? `Die Vorlage "${entry.title}" legt die Startoption ${optionId} fest, dieser Run steht dort aber schon auf einem anderen Wert.`
236
- : `Die Vorlage "${entry.title}" legt die Startoption ${optionId} fest, gewählt ist ein anderer Wert. Nimm die Wahl zurück oder starte ohne diese Vorlage.`, 409);
235
+ ? `The template "${entry.title}" fixes the start option ${optionId}, but this run already has a different value there.`
236
+ : `The template "${entry.title}" fixes the start option ${optionId}, but a different value is chosen. Undo the choice or start without this template.`, 409);
237
237
  }
238
238
  return [optionId, accepted] as const;
239
239
  }));
@@ -242,7 +242,7 @@ export class RunChatSession implements ChatSessionLike {
242
242
 
243
243
  #skillEntry(entryId: string): PublicStartEntry {
244
244
  const entry = this.#startEntryFor(entryId);
245
- if (!entry || entry.action !== "skill") throw new DomainError("entry-unknown", `Die Vorlage ${entryId} ist keine Skill-Vorlage dieses Profils.`, 404);
245
+ if (!entry || entry.action !== "skill") throw new DomainError("entry-unknown", `The template ${entryId} is not a skill template of this profile.`, 404);
246
246
  return entry;
247
247
  }
248
248
 
@@ -281,7 +281,7 @@ export class RunChatSession implements ChatSessionLike {
281
281
  return () => this.#listeners.delete(listener);
282
282
  }
283
283
 
284
- /** Mit einer Skill-Vorlage startet die Nachricht einen neuen Run über sie, mit den Startoptionen, die sie festlegt. */
284
+ /** With a skill template, the message starts a new run through it, with the start options it fixes. */
285
285
  send(text: string, attachments?: ChatAttachmentInput[], userLocation?: unknown, user?: ChatUser, entryId?: string): Promise<void> {
286
286
  return this.#track(() => this.#send(text, attachments, undefined, userLocation, user, entryId), false);
287
287
  }
@@ -296,7 +296,7 @@ export class RunChatSession implements ChatSessionLike {
296
296
 
297
297
  actorConversations(): ActorConversations {
298
298
  this.#assertUsable(this.id);
299
- if (!this.#engine.journal.stateOf(this.id)) throw new DomainError("run-not-found", "Der Run ist nicht vorhanden.", 404);
299
+ if (!this.#engine.journal.stateOf(this.id)) throw new DomainError("run-not-found", "The run does not exist.", 404);
300
300
  return actorChatHistoryOf(this.#engine.runtime.view(this.id), this.#engine.runtime.events(this.id));
301
301
  }
302
302
 
@@ -333,11 +333,11 @@ export class RunChatSession implements ChatSessionLike {
333
333
  }
334
334
 
335
335
  #track(work: () => Promise<void>, reportError = true): Promise<void> {
336
- if (this.#disposed) throw new Error("Der Run wurde gelöscht");
336
+ if (this.#disposed) throw new Error("The run was deleted");
337
337
  this.#assertUsable(this.id);
338
338
  const operation = work();
339
339
  const tracked = operation.catch((error: unknown) => {
340
- if (reportError && !this.#disposed) this.#emit({ kind: "system", text: `Fehler: ${messageOf(error)}` });
340
+ if (reportError && !this.#disposed) this.#emit({ kind: "system", text: `Error: ${messageOf(error)}` });
341
341
  });
342
342
  this.#pendingSends.add(tracked);
343
343
  void tracked.then(
@@ -354,7 +354,7 @@ export class RunChatSession implements ChatSessionLike {
354
354
 
355
355
  async #stop(): Promise<void> {
356
356
  if (this.#startCancellation && !this.#startCancellation.signal.aborted) {
357
- const message = "Der Start wurde durch den Bediener abgebrochen.";
357
+ const message = "The start was cancelled by the operator.";
358
358
  this.#startCancellation.abort(new DomainError("run-start-aborted", message, 409));
359
359
  this.#setStartup({ status: "failed", message });
360
360
  }
@@ -362,7 +362,7 @@ export class RunChatSession implements ChatSessionLike {
362
362
  if (this.#engine.journal.stateOf(this.id)) {
363
363
  await this.#engine.stopRun(this.id, {
364
364
  commandId: `chat-stop:${randomUUID()}`,
365
- reason: "Not-Aus durch den Bediener",
365
+ reason: "Emergency stop by the operator",
366
366
  });
367
367
  }
368
368
  } finally {
@@ -378,13 +378,13 @@ export class RunChatSession implements ChatSessionLike {
378
378
  }
379
379
 
380
380
  postExtension(event: { pluginId: string; type: string; payload?: unknown }): void {
381
- if (this.#disposed) throw new Error("Der Run wurde gelöscht");
381
+ if (this.#disposed) throw new Error("The run was deleted");
382
382
  this.#emit({ kind: "plugin", ...event });
383
383
  }
384
384
 
385
385
  resetHistory(): void {
386
- if (this.#engine.journal.stateOf(this.id)) throw new Error("Das alte Journal muss vor dem Gesprächsreset entfernt sein");
387
- this.#startCancellation?.abort(new Error("Die Startvorbereitung wurde zurückgesetzt."));
386
+ if (this.#engine.journal.stateOf(this.id)) throw new Error("The old journal must be removed before the conversation reset");
387
+ this.#startCancellation?.abort(new Error("The start preparation was reset."));
388
388
  this.#startCancellation = undefined;
389
389
  this.#startup = undefined;
390
390
  this.#unsubscribeJournal?.();
@@ -407,7 +407,7 @@ export class RunChatSession implements ChatSessionLike {
407
407
 
408
408
  dispose(): void {
409
409
  this.#disposed = true;
410
- this.#startCancellation?.abort(new Error("Der Run wurde gelöscht"));
410
+ this.#startCancellation?.abort(new Error("The run was deleted"));
411
411
  this.#startCancellation = undefined;
412
412
  this.#startup = undefined;
413
413
  this.#unsubscribeJournal?.();
@@ -432,10 +432,10 @@ export class RunChatSession implements ChatSessionLike {
432
432
  }
433
433
 
434
434
  async #send(text: string, supplied?: ChatAttachmentInput[], target?: string, userLocation?: unknown, user?: ChatUser, entryId?: string): Promise<void> {
435
- if (userLocation !== undefined && !this.#inputContext) throw new DomainError("chat-context-unavailable", "Dieser Run übernimmt keinen Oberflächenkontext.", 400);
435
+ if (userLocation !== undefined && !this.#inputContext) throw new DomainError("chat-context-unavailable", "This run does not accept UI context.", 400);
436
436
  const choice = entryId === undefined ? freeChoice(userIdOf(user)) : this.#startChoice(this.#skillEntry(entryId), userIdOf(user));
437
437
  const attachments = this.#checkedAttachments(supplied);
438
- if (!text.trim() && attachments.length === 0) throw new DomainError("empty-message", "Text oder Anhänge fehlen", 400);
438
+ if (!text.trim() && attachments.length === 0) throw new DomainError("empty-message", "Text or attachments are missing", 400);
439
439
  const existingTarget = target ?? this.#engine.journal.stateOf(this.id)?.primaryActorId;
440
440
  if (existingTarget) this.#assertChatTarget(existingTarget);
441
441
  if (attachments.length > 0) await this.#checkAttachmentCapabilities(target ?? "primary", attachments, choice);
@@ -458,7 +458,7 @@ export class RunChatSession implements ChatSessionLike {
458
458
  content: Buffer.from(attachment.data, "base64"), previousVersionId: null,
459
459
  });
460
460
  const event = this.#engine.runtime.events(this.id).find((entry) => entry.commandId === commandId && entry.type === "artifact.published");
461
- if (!event || event.type !== "artifact.published") throw new Error("Der Anhang wurde nicht gespeichert");
461
+ if (!event || event.type !== "artifact.published") throw new Error("The attachment was not stored");
462
462
  return event.payload.artifact.id;
463
463
  });
464
464
  this.#engine.runtime.enqueueInput(
@@ -478,21 +478,21 @@ export class RunChatSession implements ChatSessionLike {
478
478
  }
479
479
  return attachments;
480
480
  } catch (error) {
481
- throw new DomainError("invalid-attachment", `Ungültiger Anhang: ${messageOf(error)}`, 400);
481
+ throw new DomainError("invalid-attachment", `Invalid attachment: ${messageOf(error)}`, 400);
482
482
  }
483
483
  }
484
484
 
485
485
  #assertChatTarget(reference: string): void {
486
486
  const actor = this.#targetActor(reference);
487
487
  if (actor.kind !== "agent") {
488
- throw new DomainError("actor-chat-unsupported", `@${actor.handle} ist ein TypeScript-Actor und kein Chatpartner. Verwende seine Mini-App oder seine dokumentierten Funktionen. Die Nachricht wurde nicht eingereiht.`, 400);
488
+ throw new DomainError("actor-chat-unsupported", `@${actor.handle} is a TypeScript actor, not a chat partner. Use its mini-app or its documented functions. The message was not queued.`, 400);
489
489
  }
490
490
  }
491
491
 
492
492
  #targetActor(reference: string) {
493
493
  const actor = this.#engine.runtime.view(this.id).actors.find((entry) => entry.id === reference || `@${entry.handle}` === reference);
494
494
  if (!actor || actor.kind === "human" || actor.lifecycle.kind === "stopped") {
495
- throw new DomainError("actor-unavailable", `Der Actor ${reference} ist nicht verfügbar`, 404);
495
+ throw new DomainError("actor-unavailable", `The actor ${reference} is not available`, 404);
496
496
  }
497
497
  return actor;
498
498
  }
@@ -508,7 +508,7 @@ export class RunChatSession implements ChatSessionLike {
508
508
  ? { ...execution, driver: { kind: "agent", config: coordinatorSelection(this.#engine.catalog, this.#coordinator, storedModelChoice(state), execution.driver.config) } }
509
509
  : execution;
510
510
  }
511
- if (reference !== "primary") throw new DomainError("actor-unavailable", "Der Actor ist nicht verfügbar", 404);
511
+ if (reference !== "primary") throw new DomainError("actor-unavailable", "The actor is not available", 404);
512
512
  return this.#coordinatorExecution(choice);
513
513
  }
514
514
 
@@ -530,17 +530,17 @@ export class RunChatSession implements ChatSessionLike {
530
530
  preparationSelection(userId: string | null): ModelSelection {
531
531
  this.#assertUsable(this.id);
532
532
  if (this.#disposed || this.started || this.startLocked) {
533
- throw new DomainError("preparation-unavailable", "Die Vorbereitung ist nur vor dem Start des Runs möglich.", 409);
533
+ throw new DomainError("preparation-unavailable", "Preparation is only possible before the run starts.", 409);
534
534
  }
535
535
  const execution = this.#coordinatorExecution(freeChoice(userId));
536
- if (execution.driver.kind !== "agent") throw new DomainError("preparation-model-required", "Die Vorbereitung benötigt einen Koordinator mit Modelllaufzeit.", 400);
536
+ if (execution.driver.kind !== "agent") throw new DomainError("preparation-model-required", "Preparation requires a coordinator with a model runtime.", 400);
537
537
  return { ...execution.driver.config };
538
538
  }
539
539
 
540
540
  async #checkAttachmentCapabilities(reference: string, attachments: readonly ChatAttachmentInput[], choice: StartChoice): Promise<void> {
541
541
  const execution = this.#executionFor(reference, choice);
542
542
  if (execution.driver.kind === "script") return;
543
- if (execution.driver.kind !== "agent") throw new DomainError("attachments-unsupported", "Anhänge benötigen einen Actor mit Modelllaufzeit", 400);
543
+ if (execution.driver.kind !== "agent") throw new DomainError("attachments-unsupported", "Attachments require an actor with a model runtime", 400);
544
544
  const { input, model } = await this.#capabilitiesFor(reference, choice);
545
545
  const state = this.#engine.journal.stateOf(this.id);
546
546
  const id = reference === "primary" ? state?.primaryActorId : reference;
@@ -548,10 +548,10 @@ export class RunChatSession implements ChatSessionLike {
548
548
  for (const attachment of attachments) {
549
549
  const kind = attachmentInputKind(attachment.mediaType);
550
550
  if ((kind === "image" || kind === "video" || kind === "file") && !input.includes(kind)) {
551
- throw new DomainError("attachment-model-unsupported", `Das Modell ${model} unterstützt ${kind} nicht (${attachment.name}). Eingaben: ${input.join(", ")}.`, 400);
551
+ throw new DomainError("attachment-model-unsupported", `The model ${model} does not support ${kind} (${attachment.name}). Inputs: ${input.join(", ")}.`, 400);
552
552
  }
553
553
  if (kind === "binary" && toolNames !== null && !toolNames.some((name) => name === "read" || name === "bash")) {
554
- throw new DomainError("attachment-tools-required", `${attachment.name} benötigt Dateizugriff, aber dieser Actor hat weder read noch bash.`, 400);
554
+ throw new DomainError("attachment-tools-required", `${attachment.name} requires file access, but this actor has neither read nor bash.`, 400);
555
555
  }
556
556
  }
557
557
  }
@@ -570,7 +570,7 @@ export class RunChatSession implements ChatSessionLike {
570
570
  if (afterStart) return afterStart;
571
571
  await this.#exclusiveStart(() => this.#startRun(user, choice));
572
572
  const primaryActorId = this.#syncPrimaryActor();
573
- if (!primaryActorId) throw new Error("Der Run hat nach dem Start keinen Primary-Actor");
573
+ if (!primaryActorId) throw new Error("The run has no primary actor after the start");
574
574
  return primaryActorId;
575
575
  }
576
576
 
@@ -584,15 +584,15 @@ export class RunChatSession implements ChatSessionLike {
584
584
  async #start(entryId: string, input: unknown, user?: ChatUser): Promise<void> {
585
585
  await this.#startPackage(() => {
586
586
  const found = this.#scriptEntryFor(entryId);
587
- if (!found) throw new DomainError("entry-unknown", `Die Vorlage ${entryId} ist keine Script-Vorlage dieses Profils.`, 404);
587
+ if (!found) throw new DomainError("entry-unknown", `The template ${entryId} is not a script template of this profile.`, 404);
588
588
  return found;
589
589
  }, input, user);
590
590
  }
591
591
 
592
592
  async #startPackage(resolve: () => RunScriptStart, input: unknown, user?: ChatUser): Promise<void> {
593
- if (this.#starting) throw new DomainError("run-starting", "Der Run wird gerade gestartet.", 409);
593
+ if (this.#starting) throw new DomainError("run-starting", "The run is being started.", 409);
594
594
  if (this.startLocked && this.#engine.runtime.view(this.id).actors.some((actor) => actor.kind !== "human")) {
595
- throw new DomainError("run-started", "Der Run läuft schon; ein Run-Script startet nur einen neuen Run.", 409);
595
+ throw new DomainError("run-started", "The run is already running; a run script only starts a new run.", 409);
596
596
  }
597
597
  const cancellation = new AbortController();
598
598
  this.#startCancellation = cancellation;
@@ -602,7 +602,7 @@ export class RunChatSession implements ChatSessionLike {
602
602
  signal.throwIfAborted();
603
603
  const found = resolve();
604
604
  const choice = this.#startChoice(found.entry, userIdOf(user));
605
- const startValue: JsonValue | null = input === undefined || input === null ? null : (assertJsonValue(input, "Startwert des Run-Scripts"), input);
605
+ const startValue: JsonValue | null = input === undefined || input === null ? null : (assertJsonValue(input, "Start value of the run script"), input);
606
606
  await this.#prepare(this.id, this.#emitSystem());
607
607
  signal.throwIfAborted();
608
608
  this.#assertUsable(this.id);
@@ -618,7 +618,7 @@ export class RunChatSession implements ChatSessionLike {
618
618
  if (this.#startCancellation === cancellation) this.#startCancellation = undefined;
619
619
  }
620
620
  });
621
- this.#setStartup({ status: "preparing", message: "Run wird vorbereitet." });
621
+ this.#setStartup({ status: "preparing", message: "Preparing run." });
622
622
  await operation;
623
623
  }
624
624
 
@@ -636,12 +636,12 @@ export class RunChatSession implements ChatSessionLike {
636
636
  const { entry, ...script } = found;
637
637
  this.#createRunIfNeeded(this.#initialTitle ?? entry.title, user, choice);
638
638
  this.#assertUsable(this.id);
639
- this.#setStartup({ status: "preparing", message: "Arbeitsverzeichnis wird vorbereitet." });
639
+ this.#setStartup({ status: "preparing", message: "Preparing working directory." });
640
640
  signal.throwIfAborted();
641
641
  await this.#prepareWorkspace(this.id, this.#emitSystem());
642
642
  signal.throwIfAborted();
643
643
  this.#assertUsable(this.id);
644
- this.#setStartup({ status: "preparing", message: "Oberfläche wird vorbereitet." });
644
+ this.#setStartup({ status: "preparing", message: "Preparing UI." });
645
645
  signal.throwIfAborted();
646
646
  await this.#copyPrograms(script.programs, signal);
647
647
  signal.throwIfAborted();
@@ -668,7 +668,7 @@ export class RunChatSession implements ChatSessionLike {
668
668
  { actorId: installed.actorId, content: JSON.stringify({ input, options }) },
669
669
  );
670
670
  if (script.coordinator) {
671
- this.#emit({ kind: "system", text: `Das Run-Script "${entry.title}" läuft als @${installed.actorHandle} und baut den Run auf.` });
671
+ this.#emit({ kind: "system", text: `The run script "${entry.title}" runs as @${installed.actorHandle} and sets up the run.` });
672
672
  return;
673
673
  }
674
674
  }
@@ -737,14 +737,14 @@ export class RunChatSession implements ChatSessionLike {
737
737
  const spawned = [...this.#engine.runtime.events(this.id)].reverse().find((event) =>
738
738
  event.commandId === spawnCommandId && event.type === "agent.spawned");
739
739
  if (!spawned || spawned.type !== "agent.spawned")
740
- throw new Error("Der Primary-Actor konnte nach dem Erzeugen nicht aufgelöst werden");
740
+ throw new Error("The primary actor could not be resolved after spawning");
741
741
 
742
742
  coordinator = this.#engine.runtime.view(this.id).actors.find((actor) =>
743
743
  actor.id === spawned.payload.agentId && actor.kind === "agent");
744
744
  }
745
745
 
746
746
  if (!coordinator)
747
- throw new Error("Der Koordinator konnte nicht aufgelöst werden");
747
+ throw new Error("The coordinator could not be resolved");
748
748
 
749
749
  const revision = this.#engine.runtime.view(this.id).revision;
750
750
  this.#engine.runtime.selectPrimaryActor(
@@ -755,7 +755,7 @@ export class RunChatSession implements ChatSessionLike {
755
755
  primaryActor = primaryActorOf(this.#engine.runtime.view(this.id));
756
756
  }
757
757
 
758
- if (!primaryActor) throw new Error("Der Primary-Actor konnte nicht angelegt werden");
758
+ if (!primaryActor) throw new Error("The primary actor could not be created");
759
759
  this.#bind(primaryActor.id);
760
760
  }
761
761
 
@@ -906,7 +906,7 @@ export class RunChatSession implements ChatSessionLike {
906
906
  labelOf: (actorId) => this.#engine.runtime.state(this.id).actors.get(actorId)?.displayName,
907
907
  turnOf: (turnId) => {
908
908
  const turn = this.#engine.runtime.state(this.id).turns.get(turnId);
909
- if (!turn) throw new Error(`Der Turn ${turnId} fehlt im Run ${this.id}`);
909
+ if (!turn) throw new Error(`The turn ${turnId} is missing from run ${this.id}`);
910
910
  return turn;
911
911
  },
912
912
  interruptedByCommand: (commandId, actorId) => {
@@ -916,7 +916,7 @@ export class RunChatSession implements ChatSessionLike {
916
916
  },
917
917
  attachmentOf: (artifactId) => {
918
918
  const artifact = this.#engine.runtime.state(this.id).artifacts.get(artifactId);
919
- if (!artifact) throw new Error(`Der Anhang ${artifactId} fehlt`);
919
+ if (!artifact) throw new Error(`The attachment ${artifactId} is missing`);
920
920
  return this.#attachmentInfo(artifact);
921
921
  },
922
922
  };
@@ -30,13 +30,13 @@ const metadata = [
30
30
 
31
31
  const available = defineToolAvailability({
32
32
  availability: "conditional",
33
- availabilityDetail: "Für aktive ausführbare Actors mit einer Funktionsauswahl.",
33
+ availabilityDetail: "For active executable actors with a function selection.",
34
34
  }, (actor) => actor.kind !== "human" && actor.lifecycle.kind !== "stopped");
35
35
 
36
36
  export interface TypeScriptToolOptions {
37
- /** Das Snippet läuft auf dem Server, auch wenn der Arbeitsbereich auf einem Arbeitsplatz liegt. */
37
+ /** The snippet runs on the server, even if the workspace lies on a workstation. */
38
38
  readonly serverProcessContextFor: (runId: string) => Promise<WorkspaceProcessContext>;
39
- /** Eine Quelldatei kommt über den Executor des Runs, wo immer der Arbeitsbereich liegt. */
39
+ /** A source file comes through the run's executor, wherever the workspace lies. */
40
40
  readonly execute: SandboxServices["execute"];
41
41
  }
42
42
 
@@ -69,7 +69,7 @@ const schemaJson = (schema: RunFunction["schema"]) => {
69
69
  return value;
70
70
  };
71
71
 
72
- /** Ein Alias wie `@actors` nennt eine zusätzliche Wurzel des Executors, sonst gilt der Pfad relativ zur Wurzel des Runs. */
72
+ /** An alias like `@actors` names an additional root of the executor; otherwise the path is relative to the run's root. */
73
73
  const sourceRequest = (requested: string): { path: string; alias?: string } => {
74
74
  if (!requested.startsWith("@")) return { path: requested };
75
75
  const separator = requested.indexOf("/");
@@ -102,14 +102,14 @@ export const createTypeScriptToolContributor = (options: TypeScriptToolOptions):
102
102
  guidance: Type.Optional(Type.String()),
103
103
  }, { additionalProperties: false }),
104
104
  run: async (scope, _id, input) => {
105
- if (input.context && (input.names || input.query !== undefined || input.schemas)) throw new Error("typescript_api erwartet context allein, ohne names, query oder schemas.");
105
+ if (input.context && (input.names || input.query !== undefined || input.schemas)) throw new Error("typescript_api expects context alone, without names, query or schemas.");
106
106
  if (input.context) return { declarations: typeScriptSnippetContextDeclarations, guidance: contextGuidance };
107
- if (input.names && input.query !== undefined) throw new Error("typescript_api erwartet names oder query, nicht beides.");
108
- if (input.schemas && !input.names) throw new Error("typescript_api liefert JSON-Schemas nur zu ausgewählten names.");
107
+ if (input.names && input.query !== undefined) throw new Error("typescript_api expects names or query, not both.");
108
+ if (input.schemas && !input.names) throw new Error("typescript_api returns JSON schemas only for selected names.");
109
109
  const functions = functionsOf(scope);
110
110
  if (input.names) {
111
111
  const unknown = input.names.filter((name) => !functions.some((entry) => entry.name === name));
112
- if (unknown.length > 0) throw new Error(`Nicht verfügbare TypeScript-Funktionen: ${unknown.join(", ")}. Mit typescript_api ohne names verfügbare Funktionen nachschlagen.`);
112
+ if (unknown.length > 0) throw new Error(`Unavailable TypeScript functions: ${unknown.join(", ")}. Look up available functions with typescript_api without names.`);
113
113
  }
114
114
  const query = input.query?.toLocaleLowerCase();
115
115
  const selected = input.names ? functions.filter((entry) => input.names!.includes(entry.name))
@@ -137,13 +137,13 @@ export const createTypeScriptToolContributor = (options: TypeScriptToolOptions):
137
137
  }, { additionalProperties: false }),
138
138
  resultSchema: Type.Object({ result: Type.Unknown(), logs: Type.Array(Type.String()) }, { additionalProperties: false }),
139
139
  run: async (scope, id, input) => {
140
- if ((input.code === undefined) === (input.path === undefined)) throw new Error("typescript_eval braucht genau eines von code oder path.");
140
+ if ((input.code === undefined) === (input.path === undefined)) throw new Error("typescript_eval needs exactly one of code or path.");
141
141
  scope.signal?.throwIfAborted();
142
142
  const actor = scope.runtime.view(scope.caller.runId).actors.find((candidate) => candidate.id === scope.caller.actorId);
143
- if (!actor || actor.kind === "human" || actor.lifecycle.kind === "stopped") throw new Error("Das TypeScript-Snippet braucht einen aktiven ausführbaren Actor.");
143
+ if (!actor || actor.kind === "human" || actor.lifecycle.kind === "stopped") throw new Error("The TypeScript snippet needs an active executable actor.");
144
144
  const code = await sourceOf(options, scope.caller.runId, id, input);
145
145
  const processContext = await options.serverProcessContextFor(scope.caller.runId);
146
- if (!scope.caller.turnId) throw new Error("Das TypeScript-Snippet braucht einen laufenden Turn.");
146
+ if (!scope.caller.turnId) throw new Error("The TypeScript snippet needs a running turn.");
147
147
  scope.runtime.recordToolCallSource(scope.context(id, "source"), scope.caller.runId, actor.id, {
148
148
  turnId: scope.caller.turnId, toolCallId: id, code, path: input.path ?? null,
149
149
  });
@@ -175,7 +175,7 @@ export const createTypeScriptToolContributor = (options: TypeScriptToolOptions):
175
175
  nativeTool: true,
176
176
  scope: "per-turn",
177
177
  availability: "conditional",
178
- availabilityDetail: "Für aktive ausführbare Actors mit einer Funktionsauswahl.",
178
+ availabilityDetail: "For active executable actors with a function selection.",
179
179
  })),
180
180
  tools: () => tools,
181
181
  };
@@ -1,7 +1,7 @@
1
1
  import { serviceToken, type JsonValue, type WorkspaceToolNaming } from "@ragents/engine";
2
2
  import type { ResolvedWorkspaceRoot, SessionIdent } from "@ragents/workspace-executor";
3
3
 
4
- /** Ein Ordner außerhalb des Arbeitsbereichs, den die Prozess-Sandbox eines Runs zulässt; absolut, zum Lesen oder zum Lesen und Schreiben. */
4
+ /** A folder outside the workspace that a run's process sandbox permits; absolute, for reading or for reading and writing. */
5
5
  export interface SandboxFolder {
6
6
  directory: string;
7
7
  access: "read" | "write";
@@ -9,11 +9,11 @@ export interface SandboxFolder {
9
9
 
10
10
  export interface SessionWorkspace {
11
11
  cwd: string;
12
- /** Beschreibt den aufgelösten Arbeitsbereich in Worten; wird Kapitel im Systemprompt jedes Actors mit Arbeitsbereichswerkzeugen. */
12
+ /** Describes the resolved workspace in words; becomes a chapter in the system prompt of every actor with workspace tools. */
13
13
  description?: string;
14
- /** Heimatordner, nur lesbare Wurzeln und Konto der Sandbox, wenn der Arbeitsbereich sie selbst bestimmt. */
14
+ /** Home folder, read-only roots and account of the sandbox, if the workspace determines them itself. */
15
15
  hostSandbox?: { home: string; readOnlyRoots: readonly ResolvedWorkspaceRoot[]; ident?: SessionIdent };
16
- /** Was Prozesse des Runs auf dem Server außerhalb des Arbeitsbereichs brauchen, etwa das gemeinsame Repository eines Git-Worktrees. */
16
+ /** What the run's processes on the server need outside the workspace, e.g. the shared repository of a Git worktree. */
17
17
  sandboxFolders?: readonly SandboxFolder[];
18
18
  gitEnv?: NodeJS.ProcessEnv;
19
19
  gitConfig?: ReadonlyArray<readonly [string, string]>;
@@ -27,28 +27,28 @@ export interface WorkspaceRuntimeDescription {
27
27
  directoryPattern: string;
28
28
  }
29
29
 
30
- /** Umzug eines Runs auf einen anderen Server: was seine Bindung dort bedeutet und wie das Ziel sie ersetzt. */
30
+ /** Moving a run to another server: what its binding means there and how the target replaces it. */
31
31
  export interface WorkspaceTransfer {
32
- /** Der vorhandene Ordner auf diesem Serverrechner, an den der Run gebunden ist; null bei einem neuen Ordner je Run oder einem Arbeitsplatz. */
32
+ /** The existing folder on this server machine to which the run is bound; null for a new folder per run or a workstation. */
33
33
  boundDirectory: (runId: string) => string | null;
34
- /** Prüft einen Ersatzordner, bevor der Import etwas anlegt. */
34
+ /** Checks a replacement folder before the import creates anything. */
35
35
  assertDirectory: (directory: string) => void;
36
- /** Bindet den Run auf dem Ziel an einen vorhandenen Ersatzordner. */
36
+ /** Binds the run on the target to an existing replacement folder. */
37
37
  rebind: (runId: string, directory: string) => void;
38
38
  }
39
39
 
40
- /** Wo und in welchem Ordner ein Run arbeitet, getrennt beantwortet; ein Ablauf fragt beides, nie einen Mischwert. */
40
+ /** Where and in which folder a run works, answered separately; a flow asks for both, never for a mixed value. */
41
41
  export interface WorkspacePlacement {
42
42
  machine: "server" | "client";
43
43
  folder: "fresh" | "existing";
44
- /** Die Kennung der Art (`WorkspaceKind.id`), wenn ein Beitrag den neuen Ordner gestellt hat. */
44
+ /** The id of the kind (`WorkspaceKind.id`), if a contribution provided the new folder. */
45
45
  kind?: string;
46
46
  }
47
47
 
48
48
  export interface WorkspaceRuntime {
49
49
  resolve: (runId: string, emitSystem: (text: string) => void) => Promise<SessionWorkspace>;
50
50
  describe: () => WorkspaceRuntimeDescription;
51
- /** Die eine Stelle, an der ein Ablauf zentral fragt, wo und in welchem Ordner ein Run arbeitet. */
51
+ /** The one central place where a flow asks where and in which folder a run works. */
52
52
  placementOf: (runId: string) => WorkspacePlacement;
53
53
  toolNaming?: WorkspaceToolNaming;
54
54
  transfer?: WorkspaceTransfer;
@@ -63,24 +63,24 @@ export interface WorkspaceResolverContext {
63
63
  emitSystem: (text: string) => void;
64
64
  }
65
65
 
66
- /** Was ein Beitrag zum Arbeitsbereich eines Runs liefert; was er weglässt, ergänzt das Arbeitsbereich-Plugin. */
66
+ /** What a contribution delivers for a run's workspace; what it leaves out, the workspace plugin fills in. */
67
67
  export interface WorkspaceResolution extends Partial<Omit<SessionWorkspace, "cwd">> {
68
68
  cwd: string;
69
69
  }
70
70
 
71
- /** Die Art von Arbeitsbereich, die ein Plugin je Run auf dem Server an Stelle des leeren Ordners beisteuert. */
71
+ /** The kind of workspace that a plugin contributes per run on the server in place of the empty folder. */
72
72
  export interface WorkspaceKind {
73
- /** Kennung, an der ein Ablauf den Arbeitsbereich eines Runs erkennt. */
73
+ /** Id by which a flow recognizes a run's workspace. */
74
74
  id: string;
75
- /** Kurzform für Startoption und Sitzungsdaten, etwa "Worktree je Run". */
75
+ /** Short form for the start option and session data, e.g. "Worktree per run". */
76
76
  label: string;
77
- /** Ob daneben ein Ordner des Serverrechners gebunden werden darf; ein Arbeitsbereich mit eigenen Rechten schließt ihn aus. */
77
+ /** Whether a folder of the server machine may be bound alongside it; a workspace with its own rights excludes it. */
78
78
  serverFolders: boolean;
79
- /** Wo die Ordner je Run liegen, wenn nicht in der Ablage des Arbeitsbereich-Plugins; nur zur Anzeige. */
79
+ /** Where the folders per run lie, if not in the workspace plugin's storage; for display only. */
80
80
  directoryPattern?: string;
81
81
  }
82
82
 
83
- /** Ein Schritt beim Anlegen oder Wegräumen des neuen Ordners auf einem Arbeitsplatz: eine Operation des Executors dort, im Ordner des Runs. */
83
+ /** A step when creating or removing the new folder on a workstation: an operation of the executor there, in the run's folder. */
84
84
  export interface WorkspaceFolderStep {
85
85
  operation: string;
86
86
  input: JsonValue;
@@ -88,33 +88,33 @@ export interface WorkspaceFolderStep {
88
88
 
89
89
  export interface WorkstationFolderContext {
90
90
  runId: string;
91
- /** Der Ordner des Runs auf dem Arbeitsplatz. */
91
+ /** The run's folder on the workstation. */
92
92
  path: string;
93
93
  label: string;
94
94
  choice: JsonValue | null;
95
95
  }
96
96
 
97
- /** Wie ein Beitrag den neuen Ordner je Run auf einem Arbeitsplatz stellt; der Executor dort legt ihn leer an, die Schritte füllen ihn. */
97
+ /** How a contribution provides the new folder per run on a workstation; the executor there creates it empty, the steps fill it. */
98
98
  export interface WorkstationFolder {
99
- /** Kurzform für Startoption und Sitzungsdaten, etwa "Git-Worktree je Run". */
99
+ /** Short form for the start option and session data, e.g. "Git worktree per run". */
100
100
  label: string;
101
- /** Laufen der Reihe nach, einmal nach dem Anlegen; scheitert einer, räumt der Host den Ordner wieder weg. */
101
+ /** Run in order, once after creation; if one fails, the host removes the folder again. */
102
102
  prepare: (context: WorkstationFolderContext) => readonly WorkspaceFolderStep[];
103
- /** Laufen vor dem Wegräumen des Ordners, etwa um einen Worktree aus seinem Repository auszutragen. */
103
+ /** Run before the folder is removed, e.g. to unregister a worktree from its repository. */
104
104
  release?: (context: WorkstationFolderContext) => readonly WorkspaceFolderStep[];
105
- /** Beschreibt den Ordner im Systemprompt; ohne Angabe der neue, zunächst leere Ordner. */
105
+ /** Describes the folder in the system prompt; if omitted, the new, initially empty folder. */
106
106
  description?: (context: WorkstationFolderContext) => string;
107
107
  }
108
108
 
109
109
  export interface WorkspaceResolver {
110
110
  optionId?: string;
111
111
  kind?: WorkspaceKind;
112
- /** Den neuen Ordner je Run gibt es mit einem Beitrag auf einem Arbeitsplatz nur, wenn er ihn dort stellt. */
112
+ /** With a contribution, the new folder per run exists on a workstation only if the contribution provides it there. */
113
113
  workstation?: WorkstationFolder;
114
114
  resolve: (context: WorkspaceResolverContext) => Promise<WorkspaceResolution>;
115
- /** Beenden eines Runs im beigesteuerten Arbeitsbereich auf dem Server; `sandbox` beendet dabei die Werkzeuge des Hosts. */
115
+ /** Stopping a run in the contributed workspace on the server; `sandbox` stops the host's tools in the process. */
116
116
  stopSession?: (runId: string, sandbox: () => Promise<void>) => Promise<void>;
117
- /** Löschen eines Runs im beigesteuerten Arbeitsbereich auf dem Server, nach dem Beenden. */
117
+ /** Deleting a run in the contributed workspace on the server, after stopping. */
118
118
  deleteSession?: (runId: string) => Promise<void>;
119
119
  }
120
120
 
@@ -123,7 +123,7 @@ export const workspaceResolverToken = serviceToken<WorkspaceResolver>("ragents.w
123
123
  export interface GitWorkspaceView {
124
124
  branch: (runId: string) => Promise<string | undefined>;
125
125
  changes: (runId: string) => Promise<unknown>;
126
- /** previousPath nennt die Quelle einer Umbenennung aus der Änderungsliste; nur so paart Git sie ohne die ganze Liste. */
126
+ /** previousPath names the source of a rename from the change list; only this way does Git pair them without the whole list. */
127
127
  file: (runId: string, filePath: string, view: "diff" | "current", previousPath?: string) => Promise<unknown>;
128
128
  }
129
129