@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
@@ -31,6 +31,7 @@ import {
31
31
  } from "./run-transfer.js";
32
32
  import type { StartOptionState } from "./plugin-support/start-options-contract.js";
33
33
  import { ALIAS_PROVIDER, validatedModelAliases } from "./plugin-support/model-aliases.js";
34
+ import { configuredModelProviders, modelProviderRegistration } from "./plugin-support/model-providers.js";
34
35
  import { runScriptFromDirectory } from "./plugin-support/run-scripts.js";
35
36
  import { createEngine, SessionWorkspaces, type Engine } from "./ragents/engine.js";
36
37
  import type { ProductProfileFactory } from "./ragents/host-services.js";
@@ -48,7 +49,7 @@ import { sandboxServicesToken } from "./plugin-support/workspace-sandbox-host.js
48
49
  import { parseRunPreparationRequest, prepareRunMessage } from "./run-preparation.js";
49
50
  import type { RunPreparationResponse } from "./run-preparation-contract.js";
50
51
 
51
- /** Der Commit des laufenden Hosts: aus dem gebauten Paket, sonst aus dem Checkout. */
52
+ /** The commit of the running host: from the built package, otherwise from the checkout. */
52
53
  const hostVersionOf = (): string => readHostPackage()?.hostVersion ?? readHostVersion();
53
54
 
54
55
  /** accepted: the delete intent is durable and the run is hidden; done: the cleanup job has finished. */
@@ -56,13 +57,13 @@ interface DeleteJob { accepted: Promise<void>; done: Promise<void> }
56
57
 
57
58
  type ListedSession = SessionInfo & {
58
59
  running: boolean;
59
- /** Ob der Aufrufer den Arbeitsbereich des Runs erreicht; Oberflächen blenden sonst aus, was ihn braucht. */
60
+ /** Whether the caller reaches the run's workspace; otherwise UIs hide what needs it. */
60
61
  workspaceAccessible: boolean;
61
62
  metadata?: Readonly<Record<string, unknown>>;
62
63
  metadataUnavailable?: Readonly<Record<string, string>>;
63
64
  };
64
65
 
65
- /** Die Run-Liste wird oft abgefragt; so lange wartet sie höchstens auf einen Metadaten-Beitrag. */
66
+ /** The run list is queried often; this is the longest it waits for a metadata contribution. */
66
67
  export const SESSION_METADATA_TIMEOUT_MS = 1_500;
67
68
 
68
69
  export class RunSessionProvider implements ChatSessionProvider {
@@ -81,7 +82,7 @@ export class RunSessionProvider implements ChatSessionProvider {
81
82
  sessionsDir: layout.sessionsDir,
82
83
  modelRuntime: () => this.getModelRuntime(),
83
84
  onTitle: () => this.notifyList(),
84
- onError: (error) => console.warn("Titel-Kompaktierung fehlgeschlagen:", error),
85
+ onError: (error) => console.warn("Title compaction failed:", error),
85
86
  });
86
87
  readonly plugins: PluginHost;
87
88
  private shutdownPromise: Promise<void> | undefined;
@@ -89,7 +90,7 @@ export class RunSessionProvider implements ChatSessionProvider {
89
90
  private readonly globalResets = new Map<string, Promise<void>>();
90
91
  private readonly globalResetsRequested = new Set<string>();
91
92
  private transferring = false;
92
- /** Die Adresse, unter der dieser Server seine API anbietet; ohne HTTP (nur stdio) keine. */
93
+ /** The address at which this server offers its API; none without HTTP (stdio only). */
93
94
  private readonly apiBaseUrl: string | undefined;
94
95
 
95
96
  constructor(profileFactory: ProductProfileFactory, apiBaseUrl: string | undefined) {
@@ -103,6 +104,7 @@ export class RunSessionProvider implements ChatSessionProvider {
103
104
  runtime: () => this.requireEngine().runtime,
104
105
  sessionWorkspaceFor: (runId) => this.sessionWorkspace(runId, () => {}),
105
106
  sessions: () => this.sessionManagement(),
107
+ modelRuntime: () => this.getModelRuntime(),
106
108
  ...(apiBaseUrl === undefined ? {} : { apiBaseUrl }),
107
109
  });
108
110
  }
@@ -110,8 +112,8 @@ export class RunSessionProvider implements ChatSessionProvider {
110
112
  private requireContract(token: ServiceToken<unknown>): void {
111
113
  if (this.plugins.optionalService(token) !== undefined) return;
112
114
  throw new Error(
113
- `Das Profil stellt den Pflichtvertrag ${token.id} nicht bereit. `
114
- + "Ein Produkt-Plugin muss ihn mit host.provide(...) registrieren.",
115
+ `The profile does not provide the required contract ${token.id}. `
116
+ + "A product plugin must register it with host.provide(...).",
115
117
  );
116
118
  }
117
119
 
@@ -135,7 +137,7 @@ export class RunSessionProvider implements ChatSessionProvider {
135
137
  for (const user of [...configuredUsers() ?? [], ...anonymousUser ? [anonymousUser] : []]) {
136
138
  for (const id of user.startEntries ?? []) {
137
139
  const entry = entries.find((candidate) => candidate.id === id);
138
- if (!entry || entry.action !== "script") throw new Error(`Benutzer ${user.id}: ${id} ist kein registriertes Run-Setup`);
140
+ if (!entry || entry.action !== "script") throw new Error(`User ${user.id}: ${id} is not a registered run setup`);
139
141
  }
140
142
  }
141
143
  this.requireContract(productRuntimeToken);
@@ -162,11 +164,11 @@ export class RunSessionProvider implements ChatSessionProvider {
162
164
  for (const id of this.deleted) {
163
165
  if (this.deleteRequested.has(id)) continue;
164
166
  if (this.engine.journal.stateOf(id) || existsSync(layout.sessionDir(id))) {
165
- throw new Error(`Archivierter Run ${id} besitzt erneut aktive Daten`);
167
+ throw new Error(`Archived run ${id} has active data again`);
166
168
  }
167
169
  }
168
170
  for (const id of pendingDeletes) await this.beginDelete(id).done;
169
- // Ein Koordinator ohne heutigen Zugang (der frühere gemeinsame, ein entfernter Benutzer) bleibt unberührt.
171
+ // A coordinator without a current access (the former shared one, a removed user) stays untouched.
170
172
  const runIds = this.engine.journal.runIds().filter((runId) => !globalChat?.isCoordinator(runId) || this.coordinatorUser(runId) !== undefined);
171
173
  await Promise.all(runIds.map((runId) => this.sessionWorkspace(runId, () => {})));
172
174
  for (const runId of runIds) this.openSession(runId);
@@ -174,15 +176,18 @@ export class RunSessionProvider implements ChatSessionProvider {
174
176
  }
175
177
 
176
178
  private requireEngine(): Engine {
177
- if (!this.engine) throw new Error("Die Engine ist noch nicht gestartet");
179
+ if (!this.engine) throw new Error("The engine has not started yet");
178
180
  return this.engine;
179
181
  }
180
182
 
181
- /** Die eine Modelllaufzeit des Servers; Anbieter der Plugins und Aliasse des Profils stehen, bevor jemand ein Modell nachschlägt. */
183
+ /** The server's one model runtime; the plugins' and the profile's providers and the profile's aliases are in place before anyone looks up a model. */
182
184
  private getModelRuntime(): Promise<ModelRuntime> {
183
185
  return this.modelRuntime ??= this.plugins.profiles.providers().then((providers) => {
184
186
  const runtime = ModelRuntime.create();
185
- for (const provider of providers) runtime.registerProvider(provider.id, provider.config);
187
+ const profileProviders = configuredModelProviders().map(modelProviderRegistration);
188
+ const taken = profileProviders.find((provider) => providers.some((other) => other.id === provider.id));
189
+ if (taken) throw new Error(`MODEL_PROVIDERS: the provider ${taken.id} is already registered by a plugin`);
190
+ for (const provider of [...providers, ...profileProviders]) runtime.registerProvider(provider.id, provider.config);
186
191
  const aliases = validatedModelAliases();
187
192
  if (aliases.length > 0) runtime.registerAliases(ALIAS_PROVIDER, aliases);
188
193
  return runtime;
@@ -190,7 +195,7 @@ export class RunSessionProvider implements ChatSessionProvider {
190
195
  }
191
196
 
192
197
  private requireTitleSettings(): TitleSettingsStore {
193
- if (!this.titleSettings) throw new Error("Die Titelmodelleinstellungen sind noch nicht geladen.");
198
+ if (!this.titleSettings) throw new Error("The title model settings are not loaded yet.");
194
199
  return this.titleSettings;
195
200
  }
196
201
 
@@ -210,8 +215,8 @@ export class RunSessionProvider implements ChatSessionProvider {
210
215
 
211
216
  private openSession(id: string, initialTitle?: string): RunChatSession {
212
217
  this.ensureUsable(id);
213
- const vorhanden = this.sessions.get(id);
214
- if (vorhanden) return vorhanden;
218
+ const existing = this.sessions.get(id);
219
+ if (existing) return existing;
215
220
  const engine = this.requireEngine();
216
221
  const productRuntime = this.plugins.service(productRuntimeToken);
217
222
  const globalChat = this.plugins.optionalService(globalChatToken);
@@ -232,7 +237,7 @@ export class RunSessionProvider implements ChatSessionProvider {
232
237
  const primary = view.actors.find((actor) => actor.id === view.primaryActorId);
233
238
  if (primary && primary.kind !== "human" && (primary.toolNames === null
234
239
  || [...primary.toolNames].sort().join("\n") !== [...globalPolicy.toolNames].sort().join("\n"))) {
235
- throw new DomainError("global-tools-changed", "Die Werkzeuge des übergeordneten Koordinators haben sich geändert. Setze sein Gespräch zurück, um die aktuellen Werkzeuge zu verwenden.", 409);
240
+ throw new DomainError("global-tools-changed", "The tools of the top-level coordinator have changed. Reset its conversation to use the current tools.", 409);
236
241
  }
237
242
  },
238
243
  prepare: (runId) => this.prepareRun(runId),
@@ -261,12 +266,12 @@ export class RunSessionProvider implements ChatSessionProvider {
261
266
 
262
267
  async prepareRunMessage(id: string, value: unknown, signal: AbortSignal, userId: string | null): Promise<RunPreparationResponse> {
263
268
  this.ensureUsable(id);
264
- if (this.runPreparations.has(id)) throw new DomainError("preparation-busy", "Eine Antwort für diese Vorbereitung wird bereits erstellt.", 409);
269
+ if (this.runPreparations.has(id)) throw new DomainError("preparation-busy", "A response for this preparation is already being created.", 409);
265
270
  const request = parseRunPreparationRequest(value);
266
271
  const session = this.openSession(id);
267
272
  const selection = session.preparationSelection(userId);
268
273
  const prompt = this.plugins.optionalService(globalChatToken)?.preparationPrompt;
269
- if (!prompt) throw new DomainError("preparation-unavailable", "Das Profil stellt keinen Vorbereitungskoordinator bereit.", 409);
274
+ if (!prompt) throw new DomainError("preparation-unavailable", "The profile provides no preparation coordinator.", 409);
270
275
  const controller = new AbortController();
271
276
  const combined = AbortSignal.any([signal, controller.signal]);
272
277
  const done = this.getModelRuntime().then(async (runtime) => {
@@ -281,7 +286,7 @@ export class RunSessionProvider implements ChatSessionProvider {
281
286
  return done;
282
287
  }
283
288
 
284
- /** Nur sichtbare Runs bekommen Titel und Metadaten; ohne Bereich alle, ohne einen Arbeitsbereich, den nur sein Eigentümer bedient. */
289
+ /** Only visible runs get titles and metadata; without a scope all of them, without a workspace that only its owner operates. */
285
290
  async list(scope?: RunListScope): Promise<SessionInfo[]> {
286
291
  const visible = scope?.visible ?? (() => true);
287
292
  const workspaceAccessible = scope?.workspaceAccessible ?? ((runId: string) => !this.runOwnerOnly(runId));
@@ -364,7 +369,7 @@ export class RunSessionProvider implements ChatSessionProvider {
364
369
  for (const [optionId, value] of Object.entries(start.options ?? {})) await session.selectStartOption(optionId, value, start.user?.id ?? null);
365
370
  if (start.kind === "script") await session.startAndWait(start.entryId, start.input, user);
366
371
  else if (start.kind === "package") {
367
- if (!local) throw new Error("Das Run-Script-Paket wurde nicht geladen");
372
+ if (!local) throw new Error("The run script package was not loaded");
368
373
  const { script, ...entry } = local;
369
374
  await session.startPackageAndWait({ ...script, entry: { ...entry, coordinator: script.coordinator, owner: start.owner } }, start.input, user);
370
375
  }
@@ -423,7 +428,7 @@ export class RunSessionProvider implements ChatSessionProvider {
423
428
  return pathname === "/rpc" || pathname === "/rpc/stream" || pathname.startsWith("/files/") || this.plugins.isApiPath(pathname);
424
429
  }
425
430
 
426
- /** Auslieferungsrouten nennen ihren Run im Pfad; ein fremder Run ist dort so wenig erreichbar wie in einer Methode. */
431
+ /** Delivery routes name their run in the path; another user's run is as unreachable there as in a method. */
427
432
  async pluginRoutes(req: IncomingMessage, res: ServerResponse, url: URL, access?: AccessContext): Promise<boolean> {
428
433
  const named = runIdInPath(url.pathname);
429
434
  if (named !== undefined && access && !runReachable(access, named, this.runAccess())) {
@@ -435,18 +440,18 @@ export class RunSessionProvider implements ChatSessionProvider {
435
440
  }
436
441
 
437
442
  private ensureUsable(id: string): void {
438
- if (!isRunId(id)) throw new DomainError("invalid-run", `Ungültige Run-ID: ${id}`, 400);
443
+ if (!isRunId(id)) throw new DomainError("invalid-run", `Invalid run id: ${id}`, 400);
439
444
  this.ensureAvailable();
440
445
  if (this.globalResetsRequested.has(id)) {
441
- throw new DomainError("conversation-resetting", "Das globale Gespräch wird zurückgesetzt. Bitte warte kurz oder wiederhole den Reset nach einem Fehler.", 409);
446
+ throw new DomainError("conversation-resetting", "The global conversation is being reset. Please wait a moment or repeat the reset after an error.", 409);
442
447
  }
443
- if (this.deleteRequested.has(id)) throw new DomainError("run-deleting", "Der Run wird gelöscht", 409);
444
- if (this.deleted.has(id)) throw new DomainError("run-deleted", "Der Run wurde gelöscht", 410);
448
+ if (this.deleteRequested.has(id)) throw new DomainError("run-deleting", "The run is being deleted", 409);
449
+ if (this.deleted.has(id)) throw new DomainError("run-deleted", "The run was deleted", 410);
445
450
  this.engine?.journal.assertRunAvailable(id);
446
451
  }
447
452
 
448
453
  private ensureAvailable(): void {
449
- if (this.shutdownPromise) throw new DomainError("server-stopping", "Der Server wird beendet", 503);
454
+ if (this.shutdownPromise) throw new DomainError("server-stopping", "The server is shutting down", 503);
450
455
  }
451
456
 
452
457
  private sessionWorkspace(id: string, emitSystem: (text: string) => void): Promise<SessionWorkspace> {
@@ -486,10 +491,10 @@ export class RunSessionProvider implements ChatSessionProvider {
486
491
 
487
492
  delete(id: string): Promise<void> {
488
493
  if (this.plugins.optionalService(globalChatToken)?.isCoordinator(id)) {
489
- return Promise.reject(new DomainError("global-chat-protected", "Der globale Koordinator kann nicht gelöscht werden", 409));
494
+ return Promise.reject(new DomainError("global-chat-protected", "The global coordinator cannot be deleted", 409));
490
495
  }
491
- if (!isRunId(id)) return Promise.reject(new Error(`Ungültige Run-ID: ${id}`));
492
- if (this.shutdownPromise) return Promise.reject(new Error("Der Server wird beendet"));
496
+ if (!isRunId(id)) return Promise.reject(new Error(`Invalid run id: ${id}`));
497
+ if (this.shutdownPromise) return Promise.reject(new Error("The server is shutting down"));
493
498
  return this.beginDelete(id).accepted;
494
499
  }
495
500
 
@@ -497,16 +502,16 @@ export class RunSessionProvider implements ChatSessionProvider {
497
502
  return this.deleting.get(id)?.done;
498
503
  }
499
504
 
500
- /** Ein gestoppter Run als Archiv: Journal, Payloads, die Inhalte, auf die er verweist, und seine Plugin-Ablagen. */
505
+ /** A stopped run as an archive: journal, payloads, the contents it refers to, and its plugin storage. */
501
506
  exportRun(id: string): Promise<RunTransferExport> {
502
507
  this.ensureUsable(id);
503
508
  if (this.plugins.optionalService(globalChatToken)?.isCoordinator(id)) {
504
- return Promise.reject(new DomainError("global-chat-protected", "Der globale Koordinator zieht nicht um", 409));
509
+ return Promise.reject(new DomainError("global-chat-protected", "The global coordinator does not move", 409));
505
510
  }
506
511
  return this.runTransfer(async () => {
507
512
  const engine = this.requireEngine();
508
513
  const state = engine.journal.stateOf(id);
509
- if (!state) throw new DomainError("run-not-found", `Den Run ${id} gibt es nicht`, 404);
514
+ if (!state) throw new DomainError("run-not-found", `The run ${id} does not exist`, 404);
510
515
  assertRunStopped({
511
516
  runId: id,
512
517
  state,
@@ -535,7 +540,7 @@ export class RunSessionProvider implements ChatSessionProvider {
535
540
  });
536
541
  }
537
542
 
538
- /** Nimmt ein Archiv an, gibt sein Journal wieder und öffnet den Run gestoppt; `workspacePath` ersetzt eine Bindung an einen Projektordner. */
543
+ /** Accepts an archive, replays its journal and opens the run stopped; `workspacePath` replaces a binding to a project folder. */
539
544
  importRun(archive: Buffer, workspacePath: string | undefined): Promise<RunTransferImport> {
540
545
  this.ensureAvailable();
541
546
  return this.runTransfer(async () => {
@@ -582,20 +587,20 @@ export class RunSessionProvider implements ChatSessionProvider {
582
587
  private workspaceTransfer(): WorkspaceTransfer {
583
588
  const transfer = this.plugins.service(workspaceRuntimeToken).transfer;
584
589
  if (!transfer) {
585
- throw new DomainError("run-transfer-unsupported", "Dieses Profil kennt keinen Run-Umzug: sein Arbeitsbereich meldet keine Bindung.", 409);
590
+ throw new DomainError("run-transfer-unsupported", "This profile does not support moving runs: its workspace reports no binding.", 409);
586
591
  }
587
592
  return transfer;
588
593
  }
589
594
 
590
595
  private runTransfer<T>(work: () => Promise<T>): Promise<T> {
591
- if (this.transferring) return Promise.reject(new DomainError("run-transfer-busy", "Ein anderer Run-Umzug läuft gerade auf diesem Server.", 409));
596
+ if (this.transferring) return Promise.reject(new DomainError("run-transfer-busy", "Another run move is in progress on this server.", 409));
592
597
  this.transferring = true;
593
598
  return work().finally(() => { this.transferring = false; });
594
599
  }
595
600
 
596
601
  private assertRunIdAvailable(id: string): void {
597
602
  if (this.plugins.optionalService(globalChatToken)?.isCoordinator(id)) {
598
- throw new DomainError("run-transfer-exists", `Die Kennung ${id} ist den übergeordneten Koordinatoren dieses Servers vorbehalten.`, 409);
603
+ throw new DomainError("run-transfer-exists", `The id ${id} is reserved for the top-level coordinators of this server.`, 409);
599
604
  }
600
605
  const engine = this.requireEngine();
601
606
  assertRunIdFree({
@@ -610,8 +615,8 @@ export class RunSessionProvider implements ChatSessionProvider {
610
615
  const running = this.globalResets.get(id);
611
616
  if (running) return running;
612
617
  const policy = this.plugins.optionalService(globalChatToken);
613
- if (!policy?.resetIntentDirectory) return Promise.reject(new DomainError("conversation-reset-unavailable", "Dieses Profil bietet keinen Gesprächsreset an.", 404));
614
- if (!policy.isCoordinator(id)) return Promise.reject(new DomainError("conversation-reset-unavailable", `${id} ist kein globaler Koordinator.`, 404));
618
+ if (!policy?.resetIntentDirectory) return Promise.reject(new DomainError("conversation-reset-unavailable", "This profile offers no conversation reset.", 404));
619
+ if (!policy.isCoordinator(id)) return Promise.reject(new DomainError("conversation-reset-unavailable", `${id} is not a global coordinator.`, 404));
615
620
  const intentFile = path.join(policy.resetIntentDirectory, `${id}.json`);
616
621
  this.globalResetsRequested.add(id);
617
622
  const operation = this.resetGlobalInner(id, intentFile, policy).catch((error: unknown) => {
@@ -659,7 +664,7 @@ export class RunSessionProvider implements ChatSessionProvider {
659
664
  private async validateGlobalResetIntent(file: string, id: string): Promise<void> {
660
665
  const marker: unknown = JSON.parse(await readFile(file, "utf8"));
661
666
  if (!isRunId(id) || !marker || typeof marker !== "object" || !("version" in marker) || marker.version !== 1 || !("runId" in marker) || marker.runId !== id) {
662
- throw new Error("Der Gesprächsreset-Marker ist ungültig");
667
+ throw new Error("The conversation reset marker is invalid");
663
668
  }
664
669
  }
665
670
 
@@ -671,7 +676,7 @@ export class RunSessionProvider implements ChatSessionProvider {
671
676
  }
672
677
  }
673
678
 
674
- /** Wem ein Koordinator gehört: dem Benutzer, dessen Kennung er trägt, ohne Anmeldung dem einen Zugang; sonst niemandem. */
679
+ /** Who owns a coordinator: the user whose id it carries, without sign-in the one access; otherwise nobody. */
675
680
  private coordinatorUser(id: string): { userId: string | null } | undefined {
676
681
  const policy = this.plugins.optionalService(globalChatToken);
677
682
  if (!policy?.isCoordinator(id)) return undefined;
@@ -682,8 +687,8 @@ export class RunSessionProvider implements ChatSessionProvider {
682
687
  }
683
688
 
684
689
  private beginDelete(id: string): DeleteJob {
685
- const vorhanden = this.deleting.get(id);
686
- if (vorhanden) return vorhanden;
690
+ const existing = this.deleting.get(id);
691
+ if (existing) return existing;
687
692
  this.deleteRequested.add(id);
688
693
  this.runPreparations.get(id)?.controller.abort();
689
694
  const accepted = this.persistDeleteIntent(id)
@@ -700,7 +705,7 @@ export class RunSessionProvider implements ChatSessionProvider {
700
705
  });
701
706
  const job = { accepted, done };
702
707
  this.deleting.set(id, job);
703
- done.catch((error: unknown) => { if (this.deleteRequested.has(id)) console.warn(`Löschjob für ${id} fehlgeschlagen:`, error); });
708
+ done.catch((error: unknown) => { if (this.deleteRequested.has(id)) console.warn(`Delete job for ${id} failed:`, error); });
704
709
  return job;
705
710
  }
706
711
 
@@ -713,7 +718,7 @@ export class RunSessionProvider implements ChatSessionProvider {
713
718
  return this.shutdownPromise;
714
719
  }
715
720
 
716
- /** Gibt das Journal-Lock synchron frei; für den exit-Hook, wenn kein geordneter Shutdown mehr läuft. */
721
+ /** Releases the journal lock synchronously; for the exit hook, when no orderly shutdown runs anymore. */
717
722
  closeJournal(): void {
718
723
  this.engine?.journal.close();
719
724
  }
@@ -760,7 +765,7 @@ export class RunSessionProvider implements ChatSessionProvider {
760
765
  .slice(0, 3)
761
766
  .filter((result): result is PromiseRejectedResult => result.status === "rejected")
762
767
  .map((result) => result.reason);
763
- if (failures.length > 0) throw new AggregateError(failures, `Run ${id} konnte nicht gestoppt werden`);
768
+ if (failures.length > 0) throw new AggregateError(failures, `Run ${id} could not be stopped`);
764
769
  await this.plugins.lifecycle.deleteSession(id);
765
770
  await this.archiveSession(id);
766
771
  this.engine?.runtime.forgetRun(id);
@@ -780,7 +785,7 @@ export class RunSessionProvider implements ChatSessionProvider {
780
785
  .map((entry) => entry.name.slice(0, -5));
781
786
 
782
787
  for (const id of ids) {
783
- if (!isRunId(id)) throw new Error(`Ungültiger Delete-Intent: ${id}`);
788
+ if (!isRunId(id)) throw new Error(`Invalid delete intent: ${id}`);
784
789
  await this.validateDeleteIntent(id);
785
790
  }
786
791
 
@@ -792,8 +797,8 @@ export class RunSessionProvider implements ChatSessionProvider {
792
797
  const ids: string[] = [];
793
798
 
794
799
  for (const entry of entries) {
795
- if (!entry.isDirectory() || entry.name === "ohne-session") continue;
796
- if (!isRunId(entry.name)) throw new Error(`Ungültiges Run-Archiv: ${entry.name}`);
800
+ if (!entry.isDirectory()) continue;
801
+ if (!isRunId(entry.name)) throw new Error(`Invalid run archive: ${entry.name}`);
797
802
  ids.push(entry.name);
798
803
  }
799
804
 
@@ -828,14 +833,14 @@ export class RunSessionProvider implements ChatSessionProvider {
828
833
  try {
829
834
  marker = JSON.parse(source);
830
835
  } catch {
831
- throw new Error(`Delete-Intent ${id} enthält kein gültiges JSON`);
836
+ throw new Error(`Delete intent ${id} contains no valid JSON`);
832
837
  }
833
838
  if (!marker || typeof marker !== "object" || Array.isArray(marker)) {
834
- throw new Error(`Delete-Intent ${id} hat ein ungültiges Format`);
839
+ throw new Error(`Delete intent ${id} has an invalid format`);
835
840
  }
836
841
  const record = marker as { version?: unknown; runId?: unknown };
837
842
  if (record.version !== 1 || record.runId !== id) {
838
- throw new Error(`Delete-Intent ${id} passt nicht zu seinem Dateinamen`);
843
+ throw new Error(`Delete intent ${id} does not match its file name`);
839
844
  }
840
845
  }
841
846
 
@@ -852,7 +857,7 @@ export class RunSessionProvider implements ChatSessionProvider {
852
857
  const globalChat = this.plugins.optionalService(globalChatToken);
853
858
  if (globalChat?.isCoordinator(id)) {
854
859
  const owner = this.coordinatorUser(id);
855
- if (!owner) throw new DomainError("coordinator-without-access", `Der Koordinator ${id} gehört keinem Zugang dieses Profils.`, 409);
860
+ if (!owner) throw new DomainError("coordinator-without-access", `The coordinator ${id} belongs to no access of this profile.`, 409);
856
861
  const directory = globalChat.workspaceDirectory(id);
857
862
  await mkdir(directory, { recursive: true, mode: ROOT_ONLY_MODE });
858
863
  const cwd = await realpath(directory);
@@ -860,7 +865,7 @@ export class RunSessionProvider implements ChatSessionProvider {
860
865
  const users = configuredUsers();
861
866
  return {
862
867
  cwd,
863
- // Mit Benutzern enthielte der Journalordner fremde Runs; der Koordinator liest über die Methoden seines Benutzers.
868
+ // With users, the journal folder would contain other users' runs; the coordinator reads through its user's methods.
864
869
  hostSandbox: { home: cwd, readOnlyRoots: users ? [] : [{ directory: layout.runsDir, environmentVariable: "RAGENTS_JOURNAL_DIR" }] },
865
870
  extraEnv: {
866
871
  ...(this.apiBaseUrl ? { RAGENTS_API_BASE_URL: this.apiBaseUrl } : {}),
@@ -877,7 +882,7 @@ export class RunSessionProvider implements ChatSessionProvider {
877
882
  private async archiveSession(id: string): Promise<void> {
878
883
  const target = layout.archiveSessionDir(id);
879
884
  await mkdir(target, { recursive: true, mode: ROOT_ONLY_MODE });
880
- // Journale vor Format 7 hielten den Modellkontext unter sessions/<id>/chat; er bleibt im Archiv erhalten.
885
+ // Journals before format 7 kept the model context under sessions/<id>/chat; it is preserved in the archive.
881
886
  const moves = [
882
887
  [path.join(layout.sessionDir(id), "chat"), "chat"],
883
888
  [path.join(layout.runsDir, id), "run"],
@@ -885,7 +890,7 @@ export class RunSessionProvider implements ChatSessionProvider {
885
890
  ] as const;
886
891
  for (const [from, name] of moves) {
887
892
  if (existsSync(from) && existsSync(path.join(target, name))) {
888
- throw new Error(`Archiv ${id}/${name} existiert bereits und wird nicht überschrieben`);
893
+ throw new Error(`Archive ${id}/${name} already exists and is not overwritten`);
889
894
  }
890
895
  }
891
896
  for (const [from, name] of moves) {
@@ -901,7 +906,7 @@ export class RunSessionProvider implements ChatSessionProvider {
901
906
  }
902
907
  }
903
908
 
904
- /** Ein gesperrter Run ohne Plugin-Metadaten und Arbeitsbereich; ohne geladenen Zustand zählt die Journaldatei. */
909
+ /** A locked run without plugin metadata and workspace; without loaded state, the journal file counts. */
905
910
  const lockedSession = (failure: JournalLoadFailure, journal: Journal): ListedSession => {
906
911
  const state = journal.stateOf(failure.runId);
907
912
  const updatedAt = state ? Date.parse(journal.updatedAt(failure.runId) ?? state.createdAt) : statSync(failure.path, { throwIfNoEntry: false })?.mtimeMs ?? 0;
@@ -17,7 +17,7 @@ export function actorChatHistoryOf(view: RunView, events: readonly JournalEvent[
17
17
  const positions = new ChatTextPositions();
18
18
  const actorOf = (id: string) => {
19
19
  const actor = view.actors.find((entry) => entry.id === id);
20
- if (!actor) throw new DomainError("actor-not-found", `Der Actor ${id} fehlt in der Run-Ansicht.`, 404);
20
+ if (!actor) throw new DomainError("actor-not-found", `The actor ${id} is missing from the run view.`, 404);
21
21
  return actor;
22
22
  };
23
23
  const colorOf = (id: string) => {
@@ -29,14 +29,14 @@ export function actorChatHistoryOf(view: RunView, events: readonly JournalEvent[
29
29
  view.turns.find((entry) => entry.id === turnId)?.toolCalls.filter((call) => call.status === "interrupted").map((call) => call.id) ?? [];
30
30
  const turnActorOf = (id: string) => {
31
31
  const turn = view.turns.find((entry) => entry.id === id);
32
- if (!turn) throw new Error(`Der Turn ${id} fehlt in der Run-Ansicht.`);
32
+ if (!turn) throw new Error(`The turn ${id} is missing from the run view.`);
33
33
  return turn.actorId;
34
34
  };
35
35
  const interruptingCommands = new Set(events.flatMap((event) =>
36
36
  event.type === "turn.interrupted" ? [JSON.stringify([event.commandId, turnActorOf(event.payload.turnId)])] : []));
37
37
  const append = (id: string, event: ChatEvent, source: JournalEvent) => {
38
38
  const actor = actorOf(id);
39
- if (actor.kind === "human") throw new DomainError("actor-not-executable", "Ein menschlicher Actor besitzt keinen Actor-Chat.", 400);
39
+ if (actor.kind === "human") throw new DomainError("actor-not-executable", "A human actor has no actor chat.", 400);
40
40
  const previous = actors[id];
41
41
  const next = applyEvent(previous, event);
42
42
  if (next.length > previous.length) {
@@ -49,13 +49,13 @@ export function actorChatHistoryOf(view: RunView, events: readonly JournalEvent[
49
49
  };
50
50
 
51
51
  for (const event of events) {
52
- if (event.runId !== view.id) throw new Error("Das Actor-Journal gehört zu einem anderen Run.");
52
+ if (event.runId !== view.id) throw new Error("The actor journal belongs to a different run.");
53
53
  const cursor = positions.observe(event);
54
54
  const at = event.occurredAt;
55
55
  switch (event.type) {
56
56
  case "actor.input.enqueued": {
57
57
  const input = view.inputs.find((entry) => entry.id === event.payload.inputId);
58
- if (!input) throw new Error(`Die Eingabe ${event.payload.inputId} fehlt in der Run-Ansicht.`);
58
+ if (!input) throw new Error(`The input ${event.payload.inputId} is missing from the run view.`);
59
59
  if (input.lifecycle.kind === "discarded") break;
60
60
  actorOf(input.actorId);
61
61
  if (input.presentation === "background") break;
@@ -63,14 +63,14 @@ export function actorChatHistoryOf(view: RunView, events: readonly JournalEvent[
63
63
  const sender = actorOf(input.enqueuedBy);
64
64
  const attachments = input.artifactIds.map((id) => {
65
65
  const artifact = view.artifacts.find((entry) => entry.id === id);
66
- if (!artifact) throw new Error(`Der Anhang ${id} fehlt in der Run-Ansicht.`);
66
+ if (!artifact) throw new Error(`The attachment ${id} is missing from the run view.`);
67
67
  return { name: artifact.title, mediaType: artifact.mediaType, size: artifact.size,
68
68
  url: attachmentContentPath(view.id, id) };
69
69
  });
70
70
  actors[input.actorId].push({ key: event.eventId, role: fromOwner ? "user" : "assistant", sender: input.enqueuedBy,
71
71
  text: input.content, closed: true, at, inputId: input.id, ...(attachments.length ? { attachments } : {}),
72
72
  ...(fromOwner ? {} : { bubble: { color: colorOf(input.enqueuedBy),
73
- label: input.subscriptionId ? "Über Subscription zugestellt" : `Zugestellt von @${sender.handle}`, side: "start" } }),
73
+ label: input.subscriptionId ? "Delivered via subscription" : `Delivered by @${sender.handle}`, side: "start" } }),
74
74
  });
75
75
  break;
76
76
  }
@@ -103,7 +103,7 @@ export function actorChatHistoryOf(view: RunView, events: readonly JournalEvent[
103
103
  break;
104
104
  case "action.resolved": {
105
105
  const action = view.actions.find((entry) => entry.id === event.payload.actionId);
106
- if (!action) throw new Error(`Die Aktion ${event.payload.actionId} fehlt in der Run-Ansicht.`);
106
+ if (!action) throw new Error(`The action ${event.payload.actionId} is missing from the run view.`);
107
107
  if (actorOf(action.askedBy).kind !== "human") append(action.askedBy, actionResolvedEventOf(event), event);
108
108
  break;
109
109
  }
@@ -32,12 +32,12 @@ export class ChatTextPositions {
32
32
 
33
33
  #turn(turnId: string) {
34
34
  const turn = this.#turns.get(turnId);
35
- if (!turn) throw new Error(`Der Journalanfang für Turn ${turnId} fehlt.`);
35
+ if (!turn) throw new Error(`The journal start for turn ${turnId} is missing.`);
36
36
  return turn;
37
37
  }
38
38
 
39
39
  #cursor(sequence: number, offset: number): ChatTextCursor {
40
- if (this.#conversationId === null) throw new Error("Der Journalanfang des Runs fehlt.");
40
+ if (this.#conversationId === null) throw new Error("The journal start of the run is missing.");
41
41
  return { conversationId: this.#conversationId, sequence, offset };
42
42
  }
43
43
  }
@@ -13,7 +13,7 @@ export interface CoordinatorModelChoice {
13
13
 
14
14
  export const storedModelChoice = (state: RunState | null): CoordinatorModelChoice => ({ model: storedModel(state), thinking: storedThinking(state) });
15
15
 
16
- /** Das Modell eines Turns des Run-Koordinators: die Modellwahl des Runs, ohne sie das beim Anlegen. */
16
+ /** The model of a turn of the run coordinator: the run's model choice, without one the model from creation. */
17
17
  export const coordinatorSelection = (
18
18
  catalog: ModelCatalog & { readonly modelList: readonly CatalogModel[] },
19
19
  coordinator: Pick<CoordinatorDescriptor, "handle" | "profile">,
@@ -26,6 +26,6 @@ export const coordinatorSelection = (
26
26
  model: choice.model,
27
27
  ...(isThinkingLevel(choice.thinking) ? { thinking: choice.thinking } : {}),
28
28
  }, coordinator.handle, catalog.modelList);
29
- if (execution.driver.kind !== "agent") throw new Error(`Das Profil ${coordinator.profile} des Koordinators hat keine Modelllaufzeit`);
29
+ if (execution.driver.kind !== "agent") throw new Error(`The coordinator's profile ${coordinator.profile} has no model runtime`);
30
30
  return execution.driver.config;
31
31
  };