@schlenkr/ragents 0.1.9 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (749) hide show
  1. package/apps/server/package.json +1 -1
  2. package/apps/server/src/access-projection.ts +9 -39
  3. package/apps/server/src/access-service.ts +3 -3
  4. package/apps/server/src/access-session.ts +19 -19
  5. package/apps/server/src/api/contracts.ts +32 -29
  6. package/apps/server/src/api/core-methods.ts +21 -19
  7. package/apps/server/src/api/delivery.ts +2 -2
  8. package/apps/server/src/api/reference.ts +27 -27
  9. package/apps/server/src/api/rights.ts +18 -18
  10. package/apps/server/src/chat-handler.ts +5 -5
  11. package/apps/server/src/config-definition.ts +37 -10
  12. package/apps/server/src/config-file.ts +49 -49
  13. package/apps/server/src/config.ts +2 -0
  14. package/apps/server/src/data-directory.ts +2 -2
  15. package/apps/server/src/external-access.ts +1 -1
  16. package/apps/server/src/folder-install.ts +1 -1
  17. package/apps/server/src/help-files.ts +1 -1
  18. package/apps/server/src/host-api.json +8 -1
  19. package/apps/server/src/host-api.ts +3 -2
  20. package/apps/server/src/host-record.ts +3 -3
  21. package/apps/server/src/host-resolution-hooks.mjs +4 -4
  22. package/apps/server/src/host-version.ts +17 -17
  23. package/apps/server/src/host-web.ts +5 -5
  24. package/apps/server/src/main.ts +6 -6
  25. package/apps/server/src/missing-environment.ts +6 -6
  26. package/apps/server/src/parent-watch.ts +4 -4
  27. package/apps/server/src/plugin-build/build.ts +31 -31
  28. package/apps/server/src/plugin-build/host-api-names.ts +7 -7
  29. package/apps/server/src/plugin-build/plugin-description.ts +15 -15
  30. package/apps/server/src/plugin-build/typecheck.ts +1 -1
  31. package/apps/server/src/plugin-support/actor-programs/app-project.ts +19 -19
  32. package/apps/server/src/plugin-support/actor-programs/client-compiler.ts +4 -4
  33. package/apps/server/src/plugin-support/actor-programs/client-contracts.ts +11 -11
  34. package/apps/server/src/plugin-support/actor-programs/contract.ts +17 -17
  35. package/apps/server/src/plugin-support/actor-programs/runtime-libraries.ts +1 -1
  36. package/apps/server/src/plugin-support/actor-programs/workflow/index.ts +5 -5
  37. package/apps/server/src/plugin-support/actor-programs/workflow/prompt-reader.ts +2 -2
  38. package/apps/server/src/plugin-support/chat-display-policy.ts +2 -2
  39. package/apps/server/src/plugin-support/front-matter.ts +6 -6
  40. package/apps/server/src/plugin-support/http.ts +2 -2
  41. package/apps/server/src/plugin-support/language-server/contract.ts +8 -8
  42. package/apps/server/src/plugin-support/language-server/plugin.ts +2 -2
  43. package/apps/server/src/plugin-support/language-server/snapshot-method.ts +1 -1
  44. package/apps/server/src/plugin-support/language-server/tools.ts +11 -11
  45. package/apps/server/src/plugin-support/model-aliases.ts +30 -20
  46. package/apps/server/src/plugin-support/model-choice.ts +15 -15
  47. package/apps/server/src/plugin-support/model-completion.ts +44 -23
  48. package/apps/server/src/plugin-support/model-providers.ts +170 -0
  49. package/apps/server/src/plugin-support/model-upstreams.ts +1 -1
  50. package/apps/server/src/plugin-support/native-typescript-child.ts +4 -4
  51. package/apps/server/src/plugin-support/native-typescript-executor.ts +12 -12
  52. package/apps/server/src/plugin-support/plugin-config.ts +3 -3
  53. package/apps/server/src/plugin-support/plugin-folder.ts +2 -2
  54. package/apps/server/src/plugin-support/plugins-root.ts +2 -2
  55. package/apps/server/src/plugin-support/process-sandbox.ts +48 -47
  56. package/apps/server/src/plugin-support/product-model-settings-contract.ts +3 -3
  57. package/apps/server/src/plugin-support/product-model-settings.ts +10 -10
  58. package/apps/server/src/plugin-support/product-relay.ts +9 -9
  59. package/apps/server/src/plugin-support/product-start-options.ts +4 -4
  60. package/apps/server/src/plugin-support/prompt.ts +1 -1
  61. package/apps/server/src/plugin-support/provision.ts +8 -8
  62. package/apps/server/src/plugin-support/run-scripts.ts +17 -17
  63. package/apps/server/src/plugin-support/skills.ts +18 -18
  64. package/apps/server/src/plugin-support/start-entries-contract.ts +17 -17
  65. package/apps/server/src/plugin-support/start-options-contract.ts +5 -5
  66. package/apps/server/src/plugin-support/system-prompts.ts +11 -11
  67. package/apps/server/src/plugin-support/thinking-level.ts +2 -2
  68. package/apps/server/src/plugin-support/tool-availability.ts +2 -2
  69. package/apps/server/src/plugin-support/workspace-ownership.ts +5 -5
  70. package/apps/server/src/plugin-support/workspace-sandbox-host.ts +37 -37
  71. package/apps/server/src/plugin-support/zip.ts +7 -7
  72. package/apps/server/src/profile/bundle-manifest.ts +17 -17
  73. package/apps/server/src/profile/compose.ts +12 -7
  74. package/apps/server/src/profile/plugin-discovery.ts +12 -12
  75. package/apps/server/src/profile/provisioning.ts +5 -5
  76. package/apps/server/src/profile-target.ts +10 -10
  77. package/apps/server/src/protocol.ts +2 -2
  78. package/apps/server/src/provider.ts +63 -58
  79. package/apps/server/src/ragents/actor-chat-history.ts +8 -8
  80. package/apps/server/src/ragents/chat-text-positions.ts +2 -2
  81. package/apps/server/src/ragents/coordinator.ts +2 -2
  82. package/apps/server/src/ragents/engine.ts +25 -24
  83. package/apps/server/src/ragents/global-chat.ts +14 -8
  84. package/apps/server/src/ragents/host-services.ts +6 -3
  85. package/apps/server/src/ragents/journal-chat-events.ts +1 -1
  86. package/apps/server/src/ragents/run-owner.ts +2 -2
  87. package/apps/server/src/ragents/session.ts +49 -49
  88. package/apps/server/src/ragents/typescript-tools.ts +12 -12
  89. package/apps/server/src/ragents/workspace-runtime.ts +28 -28
  90. package/apps/server/src/rpc/dispatcher.ts +19 -19
  91. package/apps/server/src/rpc/http-transport.ts +11 -11
  92. package/apps/server/src/rpc/stdio-transport.ts +3 -3
  93. package/apps/server/src/run-preparation-input.ts +5 -5
  94. package/apps/server/src/run-preparation.ts +24 -24
  95. package/apps/server/src/run-transfer.ts +39 -39
  96. package/apps/server/src/server.ts +51 -49
  97. package/apps/server/src/settings.ts +1 -1
  98. package/apps/server/src/startup.ts +3 -3
  99. package/apps/server/src/title-compactor.ts +9 -9
  100. package/apps/server/src/title-settings.ts +3 -3
  101. package/apps/server/src/web-bundles.ts +2 -2
  102. package/apps/server/src/web-stylesheet.ts +2 -2
  103. package/apps/web/dist/assets/{highlighted-body-KPVGNVTW-xXXhTDbh.js → highlighted-body-KPVGNVTW-BfNSGxjB.js} +1 -1
  104. package/apps/web/dist/assets/main-D6bsKcIK.js +11 -0
  105. package/apps/web/dist/assets/mermaid-HWGCJPDP-DROEqEeg.js +608 -0
  106. package/apps/web/dist/assets/runPanel-Dumuuqry.js +21 -0
  107. package/apps/web/dist/help/guide-access.html +5 -5
  108. package/apps/web/dist/help/guide-access.md +2 -2
  109. package/apps/web/dist/help/guide-clients.html +64 -55
  110. package/apps/web/dist/help/guide-clients.md +62 -52
  111. package/apps/web/dist/help/guide-distributed.html +12 -7
  112. package/apps/web/dist/help/guide-distributed.md +9 -4
  113. package/apps/web/dist/help/guide-functions.html +3 -3
  114. package/apps/web/dist/help/guide-getting-started.html +24 -15
  115. package/apps/web/dist/help/guide-getting-started.md +22 -12
  116. package/apps/web/dist/help/guide-ideas.html +3 -3
  117. package/apps/web/dist/help/guide-plugins.html +5 -4
  118. package/apps/web/dist/help/guide-plugins.md +2 -1
  119. package/apps/web/dist/help/guide-programs.html +3 -3
  120. package/apps/web/dist/help/guide-runtime.html +6 -6
  121. package/apps/web/dist/help/guide-runtime.md +3 -3
  122. package/apps/web/dist/help/guide.html +3 -3
  123. package/apps/web/dist/help/index.html +1997 -942
  124. package/apps/web/dist/help/mini-app.css +30 -0
  125. package/apps/web/dist/help/mini-app.js +14 -14
  126. package/apps/web/dist/host-web.json +90 -90
  127. package/apps/web/dist/index.html +3 -3
  128. package/apps/web/dist/run-panel.html +3 -3
  129. package/apps/web/package.json +1 -1
  130. package/apps/web/src/AccessContext.tsx +15 -15
  131. package/apps/web/src/App.tsx +13 -13
  132. package/apps/web/src/DiffCode.tsx +2 -2
  133. package/apps/web/src/HelpDialog.tsx +3 -3
  134. package/apps/web/src/Overview.tsx +13 -13
  135. package/apps/web/src/PluginActivation.ts +1 -1
  136. package/apps/web/src/PluginChat.tsx +15 -15
  137. package/apps/web/src/PluginFailureNotice.tsx +1 -1
  138. package/apps/web/src/PluginRegistry.tsx +44 -44
  139. package/apps/web/src/RunPreparationChat.tsx +11 -11
  140. package/apps/web/src/RunStore.ts +1 -1
  141. package/apps/web/src/SessionList.tsx +14 -14
  142. package/apps/web/src/SettingsModal.tsx +112 -112
  143. package/apps/web/src/StartOptions.tsx +11 -11
  144. package/apps/web/src/StartSelection.tsx +11 -11
  145. package/apps/web/src/StartTiles.tsx +8 -8
  146. package/apps/web/src/SurfaceShortcuts.tsx +3 -3
  147. package/apps/web/src/ThemeSettings.tsx +8 -8
  148. package/apps/web/src/TitleModelSettings.tsx +13 -13
  149. package/apps/web/src/WorkspacePanel.tsx +9 -9
  150. package/apps/web/src/access-session.ts +4 -4
  151. package/apps/web/src/access-token.ts +5 -5
  152. package/apps/web/src/actor-conversation.ts +3 -3
  153. package/apps/web/src/actor-programs/client-ui/DataTable.tsx +8 -8
  154. package/apps/web/src/actor-programs/client-ui/FilePicker.tsx +4 -4
  155. package/apps/web/src/actor-programs/client-ui/FlowDiagram.tsx +13 -13
  156. package/apps/web/src/actor-programs/client-ui/Viewers.tsx +4 -4
  157. package/apps/web/src/actor-programs/client-ui/WorkflowDiagram.tsx +1 -1
  158. package/apps/web/src/actor-programs/client-ui/file-contracts.d.ts +4 -4
  159. package/apps/web/src/actor-programs/client-ui/file-selection.ts +1 -1
  160. package/apps/web/src/actor-programs/client-ui/viewer-contracts.d.ts +3 -3
  161. package/apps/web/src/api.ts +7 -7
  162. package/apps/web/src/chat/StoppedActorNotice.tsx +5 -5
  163. package/apps/web/src/chat/chat-target.ts +3 -3
  164. package/apps/web/src/chat/requests.ts +2 -2
  165. package/apps/web/src/chat/useAttachmentCapabilities.ts +2 -2
  166. package/apps/web/src/chat-view-settings.tsx +5 -6
  167. package/apps/web/src/diff-view.css +1 -1
  168. package/apps/web/src/highlighting.css +1 -1
  169. package/apps/web/src/language-server/language-server-plugin.tsx +30 -30
  170. package/apps/web/src/lib/labels.ts +6 -6
  171. package/apps/web/src/main.tsx +4 -4
  172. package/apps/web/src/offered-machines.ts +2 -2
  173. package/apps/web/src/page-opener.tsx +1 -1
  174. package/apps/web/src/panel/ConnectionsPage.tsx +26 -23
  175. package/apps/web/src/panel/LoginForm.tsx +6 -6
  176. package/apps/web/src/panel/PanelDialogs.tsx +22 -22
  177. package/apps/web/src/panel/PanelHeader.tsx +2 -2
  178. package/apps/web/src/panel/PanelPage.tsx +1 -1
  179. package/apps/web/src/panel/RunLine.tsx +4 -4
  180. package/apps/web/src/panel/RunsPage.tsx +15 -15
  181. package/apps/web/src/panel/StartPage.tsx +29 -26
  182. package/apps/web/src/panel/connection-state.ts +9 -9
  183. package/apps/web/src/panel/contract.ts +34 -27
  184. package/apps/web/src/panel.tsx +1 -1
  185. package/apps/web/src/plugin-bootstrap.ts +5 -5
  186. package/apps/web/src/product/ModelControl.tsx +3 -3
  187. package/apps/web/src/product/ProductModelSettings.tsx +16 -16
  188. package/apps/web/src/product/SystemPromptControl.tsx +11 -11
  189. package/apps/web/src/product/model-settings.ts +2 -2
  190. package/apps/web/src/rpc/client.ts +16 -16
  191. package/apps/web/src/rpc.ts +1 -1
  192. package/apps/web/src/run-overview.ts +1 -1
  193. package/apps/web/src/run-panel/RunPanelApp.tsx +39 -39
  194. package/apps/web/src/run-panel/RunPanelHeader.tsx +6 -6
  195. package/apps/web/src/run-panel/RunPanelMenu.tsx +6 -6
  196. package/apps/web/src/run-panel/RunPanelRail.tsx +4 -4
  197. package/apps/web/src/run-panel/RunPanelWorkspace.tsx +3 -3
  198. package/apps/web/src/run-panel/clipboard.ts +3 -3
  199. package/apps/web/src/run-panel/host-contract.ts +5 -5
  200. package/apps/web/src/run-panel/host.ts +15 -15
  201. package/apps/web/src/run-panel/input-bridge.ts +1 -1
  202. package/apps/web/src/run-panel/run-panel-location.ts +5 -5
  203. package/apps/web/src/run-panel/use-session-list.ts +1 -1
  204. package/apps/web/src/run-panel/workspace-state.ts +3 -3
  205. package/apps/web/src/run-panel.tsx +4 -4
  206. package/apps/web/src/run-preparation.ts +2 -2
  207. package/apps/web/src/run-view.ts +3 -3
  208. package/apps/web/src/settings-contributions.ts +32 -32
  209. package/apps/web/src/theme.ts +9 -9
  210. package/apps/web/src/title-model-settings.ts +6 -6
  211. package/apps/web/src/ui/ListDetail.tsx +9 -9
  212. package/apps/web/src/ui/dialog.tsx +2 -2
  213. package/apps/web/src/ui/modal-controller.ts +3 -3
  214. package/apps/web/src/ui/modal.tsx +2 -2
  215. package/apps/web/src/ui/popover.tsx +1 -1
  216. package/apps/web/src/ui/relative-time.ts +8 -8
  217. package/apps/web/src/ui/startup-notice.tsx +2 -2
  218. package/apps/web/src/ui/state-icon.tsx +1 -1
  219. package/apps/web/src/ui/state-vocabulary.ts +16 -16
  220. package/apps/web/src/ui/stop-button.tsx +2 -2
  221. package/bundles/ragents.activity/ragents-bundle.json +2 -2
  222. package/bundles/ragents.activity/web/classes.json +1 -1
  223. package/bundles/ragents.activity/web/index.js +1 -1
  224. package/bundles/ragents.activity/web/index.js.map +2 -2
  225. package/bundles/ragents.actor-programs/ragents-bundle.json +2 -2
  226. package/bundles/ragents.actor-programs/server/index.js +256 -228
  227. package/bundles/ragents.actor-programs/server/index.js.map +4 -4
  228. package/bundles/ragents.actor-programs/web/classes.json +1 -1
  229. package/bundles/ragents.actor-programs/web/index.js +1 -1
  230. package/bundles/ragents.actor-programs/web/index.js.map +3 -3
  231. package/bundles/ragents.ask/ragents-bundle.json +2 -4
  232. package/bundles/ragents.ask/server/chunks/{chunk-PDJO75SQ.js → chunk-YOV27MAR.js} +2 -2
  233. package/bundles/ragents.ask/server/chunks/chunk-YOV27MAR.js.map +7 -0
  234. package/bundles/ragents.ask/server/exports/server/contract.js +1 -1
  235. package/bundles/ragents.ask/server/index.js +23 -23
  236. package/bundles/ragents.ask/server/index.js.map +2 -2
  237. package/bundles/ragents.ask/web/chunks/{chunk-WFN4374U.js → chunk-D6NNB5DS.js} +1 -1
  238. package/bundles/ragents.ask/web/chunks/chunk-D6NNB5DS.js.map +7 -0
  239. package/bundles/ragents.ask/web/chunks/{chunk-V7W3QDVS.js → chunk-IQBHK7MV.js} +2 -2
  240. package/bundles/ragents.ask/web/chunks/{chunk-V7W3QDVS.js.map → chunk-IQBHK7MV.js.map} +4 -4
  241. package/bundles/ragents.ask/web/chunks/chunk-PWFIAMX4.js +2 -0
  242. package/bundles/ragents.ask/web/chunks/chunk-PWFIAMX4.js.map +7 -0
  243. package/bundles/ragents.ask/web/chunks/chunk-QHGKEESD.js +2 -0
  244. package/bundles/ragents.ask/web/chunks/chunk-QHGKEESD.js.map +7 -0
  245. package/bundles/ragents.ask/web/classes.json +1 -1
  246. package/bundles/ragents.ask/web/exports/ask-payload.js +1 -1
  247. package/bundles/ragents.ask/web/exports/web/QuestionCard.js +1 -1
  248. package/bundles/ragents.ask/web/exports/web/api.js +1 -1
  249. package/bundles/ragents.ask/web/index.js +1 -1
  250. package/bundles/ragents.ask/web/index.js.map +4 -4
  251. package/bundles/ragents.browser/executor/index.mjs +35 -35
  252. package/bundles/ragents.browser/executor/index.mjs.map +2 -2
  253. package/bundles/ragents.browser/ragents-bundle.json +2 -2
  254. package/bundles/ragents.browser/server/chunks/{chunk-CWLX4VA5.js → chunk-PYEISBNE.js} +1 -1
  255. package/bundles/ragents.browser/server/chunks/{chunk-CWLX4VA5.js.map → chunk-PYEISBNE.js.map} +1 -1
  256. package/bundles/ragents.browser/server/exports/server/contract.js +1 -1
  257. package/bundles/ragents.browser/server/index.js +31 -31
  258. package/bundles/ragents.browser/server/index.js.map +2 -2
  259. package/bundles/ragents.browser/skills/browser-testing/SKILL.md +30 -30
  260. package/bundles/ragents.documents/prompt.hbs +1 -1
  261. package/bundles/ragents.documents/ragents-bundle.json +2 -2
  262. package/bundles/ragents.documents/server/chunks/{chunk-QIECRZ7C.js → chunk-KMZWOVTI.js} +3 -3
  263. package/bundles/ragents.documents/server/chunks/{chunk-QIECRZ7C.js.map → chunk-KMZWOVTI.js.map} +2 -2
  264. package/bundles/ragents.documents/server/exports/contract.js +1 -1
  265. package/bundles/ragents.documents/server/index.js +26 -26
  266. package/bundles/ragents.documents/server/index.js.map +2 -2
  267. package/bundles/ragents.documents/web/classes.json +1 -1
  268. package/bundles/ragents.documents/web/index.js +1 -1
  269. package/bundles/ragents.documents/web/index.js.map +3 -3
  270. package/bundles/ragents.lsp-fsharp/executor/index.mjs +4 -4
  271. package/bundles/ragents.lsp-fsharp/executor/index.mjs.map +2 -2
  272. package/bundles/ragents.lsp-fsharp/ragents-bundle.json +2 -2
  273. package/bundles/ragents.lsp-fsharp/server/index.js +5 -5
  274. package/bundles/ragents.lsp-fsharp/server/index.js.map +2 -2
  275. package/bundles/ragents.lsp-fsharp/web/index.js +1 -1
  276. package/bundles/ragents.lsp-fsharp/web/index.js.map +2 -2
  277. package/bundles/ragents.lsp-roslyn/executor/index.mjs +3 -3
  278. package/bundles/ragents.lsp-roslyn/executor/index.mjs.map +2 -2
  279. package/bundles/ragents.lsp-roslyn/ragents-bundle.json +2 -2
  280. package/bundles/ragents.lsp-roslyn/server/index.js +17 -17
  281. package/bundles/ragents.lsp-roslyn/server/index.js.map +2 -2
  282. package/bundles/ragents.lsp-roslyn/web/index.js +1 -1
  283. package/bundles/ragents.lsp-roslyn/web/index.js.map +2 -2
  284. package/bundles/ragents.lsp-typescript/executor/index.mjs +2 -2
  285. package/bundles/ragents.lsp-typescript/executor/index.mjs.map +2 -2
  286. package/bundles/ragents.lsp-typescript/ragents-bundle.json +2 -2
  287. package/bundles/ragents.lsp-typescript/server/index.js.map +1 -1
  288. package/bundles/ragents.lsp-typescript/web/index.js +1 -1
  289. package/bundles/ragents.lsp-typescript/web/index.js.map +2 -2
  290. package/bundles/ragents.model-relay/ragents-bundle.json +7 -3
  291. package/bundles/ragents.model-relay/server/index.js +25 -21
  292. package/bundles/ragents.model-relay/server/index.js.map +2 -2
  293. package/bundles/ragents.orchestration/ragents-bundle.json +2 -2
  294. package/bundles/ragents.orchestration/server/index.js +28 -28
  295. package/bundles/ragents.orchestration/server/index.js.map +2 -2
  296. package/bundles/ragents.orchestration/web/chunks/{chunk-OSKPH6SZ.js → chunk-CFMJD5ZI.js} +2 -2
  297. package/bundles/ragents.orchestration/web/chunks/chunk-HOBLI364.js +2 -0
  298. package/bundles/ragents.orchestration/web/chunks/{chunk-OQYCNYXN.js.map → chunk-HOBLI364.js.map} +2 -2
  299. package/bundles/ragents.orchestration/web/chunks/{chunk-ODMMQGX2.js → chunk-UCIMT2R4.js} +2 -2
  300. package/bundles/ragents.orchestration/web/classes.json +1 -1
  301. package/bundles/ragents.orchestration/web/exports/web/program-slot.js +1 -1
  302. package/bundles/ragents.orchestration/web/exports/web/surface-entities.js +1 -1
  303. package/bundles/ragents.orchestration/web/index.js +8 -8
  304. package/bundles/ragents.orchestration/web/index.js.map +3 -3
  305. package/bundles/ragents.overseer/ragents-bundle.json +2 -2
  306. package/bundles/ragents.overseer/server/index.js +99 -99
  307. package/bundles/ragents.overseer/server/index.js.map +2 -2
  308. package/bundles/ragents.overseer/web/classes.json +1 -1
  309. package/bundles/ragents.overseer/web/index.js +1 -1
  310. package/bundles/ragents.overseer/web/index.js.map +2 -2
  311. package/bundles/ragents.processes/ragents-bundle.json +2 -2
  312. package/bundles/ragents.processes/server/index.js +11 -11
  313. package/bundles/ragents.processes/server/index.js.map +2 -2
  314. package/bundles/ragents.processes/web/classes.json +1 -1
  315. package/bundles/ragents.processes/web/index.js +3 -3
  316. package/bundles/ragents.processes/web/index.js.map +2 -2
  317. package/bundles/ragents.product/ragents-bundle.json +2 -2
  318. package/bundles/ragents.product/server/index.js +12 -13
  319. package/bundles/ragents.product/server/index.js.map +2 -2
  320. package/bundles/ragents.product/web/classes.json +1 -1
  321. package/bundles/ragents.product/web/index.js +1 -1
  322. package/bundles/ragents.product/web/index.js.map +2 -2
  323. package/bundles/ragents.profile-distribution/ragents-bundle.json +2 -2
  324. package/bundles/ragents.profile-distribution/server/index.js +31 -31
  325. package/bundles/ragents.profile-distribution/server/index.js.map +2 -2
  326. package/bundles/ragents.reference/ragents-bundle.json +2 -2
  327. package/bundles/ragents.reference/run-scripts/balcony-wizard/RUN.md +19 -19
  328. package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/package.json +2 -2
  329. package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/client.tsx +14 -14
  330. package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/conversation.ts +2 -2
  331. package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/tests/conversation.test.ts +49 -49
  332. package/bundles/ragents.reference/run-scripts/balcony-wizard/package.json +1 -1
  333. package/bundles/ragents.reference/run-scripts/balcony-wizard/src/server.ts +9 -9
  334. package/bundles/ragents.reference/run-scripts/balcony-wizard/tests/program.test.ts +9 -9
  335. package/bundles/ragents.reference/run-scripts/conversation-circle/RUN.md +7 -7
  336. package/bundles/ragents.reference/run-scripts/conversation-circle/package.json +1 -1
  337. package/bundles/ragents.reference/run-scripts/conversation-circle/src/server.ts +13 -13
  338. package/bundles/ragents.reference/run-scripts/conversation-circle/tests/helpers.ts +1 -1
  339. package/bundles/ragents.reference/run-scripts/conversation-circle/tests/program.test.ts +8 -8
  340. package/bundles/ragents.reference/run-scripts/learning-afternoon/RUN.md +16 -16
  341. package/bundles/ragents.reference/run-scripts/learning-afternoon/package.json +1 -1
  342. package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/experiment.md +1 -1
  343. package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/helper.md +3 -3
  344. package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/quiz.md +1 -1
  345. package/bundles/ragents.reference/run-scripts/learning-afternoon/src/server.ts +9 -9
  346. package/bundles/ragents.reference/run-scripts/learning-afternoon/tests/program.test.ts +39 -39
  347. package/bundles/ragents.reference/run-scripts/moderated-round/RUN.md +7 -7
  348. package/bundles/ragents.reference/run-scripts/moderated-round/package.json +1 -1
  349. package/bundles/ragents.reference/run-scripts/moderated-round/src/server.ts +9 -9
  350. package/bundles/ragents.reference/run-scripts/moderated-round/tests/helpers.ts +1 -1
  351. package/bundles/ragents.reference/run-scripts/moderated-round/tests/program.test.ts +6 -6
  352. package/bundles/ragents.reference/run-scripts/shared-actor-list/RUN.md +12 -12
  353. package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/package.json +2 -2
  354. package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/contract.ts +3 -3
  355. package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/tests/program.test.ts +4 -4
  356. package/bundles/ragents.reference/run-scripts/shared-actor-list/package.json +1 -1
  357. package/bundles/ragents.reference/run-scripts/shared-actor-list/src/server.ts +11 -11
  358. package/bundles/ragents.reference/run-scripts/shared-actor-list/tests/helpers.ts +1 -1
  359. package/bundles/ragents.reference/run-scripts/shared-actor-list/tests/program.test.ts +13 -13
  360. package/bundles/ragents.reference/run-scripts/word-game/RUN.md +18 -18
  361. package/bundles/ragents.reference/run-scripts/word-game/package.json +2 -2
  362. package/bundles/ragents.reference/run-scripts/word-game/src/client.tsx +1 -1
  363. package/bundles/ragents.reference/run-scripts/word-game/src/contract.ts +2 -2
  364. package/bundles/ragents.reference/run-scripts/word-game/src/server.ts +16 -16
  365. package/bundles/ragents.reference/run-scripts/word-game/tests/program.test.ts +39 -39
  366. package/bundles/ragents.reference/skills/100-shared-actor-list/SKILL.md +5 -5
  367. package/bundles/ragents.reference/skills/110-all-card-slots/SKILL.md +5 -5
  368. package/bundles/ragents.reference/skills/150-editorial-workbench/SKILL.md +5 -5
  369. package/bundles/ragents.reference/skills/160-learning-companion/SKILL.md +5 -5
  370. package/bundles/ragents.reference/skills/170-photo-collection/SKILL.md +5 -5
  371. package/bundles/ragents.reference/skills/180-decision-workbench/SKILL.md +5 -5
  372. package/bundles/ragents.reference/skills/190-review-queue/SKILL.md +5 -5
  373. package/bundles/ragents.reference/skills/20-circle-of-four/SKILL.md +5 -5
  374. package/bundles/ragents.reference/skills/200-typescript-diagnostics/SKILL.md +5 -5
  375. package/bundles/ragents.reference/skills/210-moderator-handover/SKILL.md +5 -5
  376. package/bundles/ragents.reference/skills/220-actor-approval-list/SKILL.md +5 -5
  377. package/bundles/ragents.reference/skills/230-shared-state-views/SKILL.md +5 -5
  378. package/bundles/ragents.reference/skills/240-live-result-list/SKILL.md +5 -5
  379. package/bundles/ragents.reference/skills/250-balcony-wizard/SKILL.md +5 -5
  380. package/bundles/ragents.reference/skills/30-llm-without-runtime-knowledge/SKILL.md +5 -5
  381. package/bundles/ragents.reference/skills/35-actor-input-fifo/SKILL.md +5 -5
  382. package/bundles/ragents.reference/skills/40-subscription-matrix/SKILL.md +5 -5
  383. package/bundles/ragents.reference/skills/50-subscription-removal/SKILL.md +5 -5
  384. package/bundles/ragents.reference/skills/60-stop-in-the-circle/SKILL.md +5 -5
  385. package/bundles/ragents.reference/skills/65-artifact-least-privilege/SKILL.md +5 -5
  386. package/bundles/ragents.reference/skills/70-headless-counter/SKILL.md +5 -5
  387. package/bundles/ragents.reference/skills/75-lsp-demo/SKILL.md +5 -5
  388. package/bundles/ragents.reference/skills/80-actor-text-analysis/SKILL.md +5 -5
  389. package/bundles/ragents.reference/skills/90-actor-notes/SKILL.md +5 -5
  390. package/bundles/ragents.reference/skills/95-hello-world/SKILL.md +5 -5
  391. package/bundles/ragents.reference/skills/decision-brief/SKILL.md +24 -24
  392. package/bundles/ragents.reference/skills/learning-sprint/SKILL.md +24 -24
  393. package/bundles/ragents.reference/web/classes.json +1 -1
  394. package/bundles/ragents.reference/web/index.js +1 -1
  395. package/bundles/ragents.reference/web/index.js.map +2 -2
  396. package/bundles/ragents.todo/ragents-bundle.json +2 -2
  397. package/bundles/ragents.todo/server/index.js +5 -5
  398. package/bundles/ragents.todo/server/index.js.map +2 -2
  399. package/bundles/ragents.todo/web/classes.json +1 -1
  400. package/bundles/ragents.todo/web/index.js +1 -1
  401. package/bundles/ragents.todo/web/index.js.map +2 -2
  402. package/bundles/ragents.transcript/ragents-bundle.json +2 -2
  403. package/bundles/ragents.transcript/server/index.js +11 -11
  404. package/bundles/ragents.transcript/server/index.js.map +2 -2
  405. package/bundles/ragents.watch/ragents-bundle.json +2 -2
  406. package/bundles/ragents.watch/server/index.js +48 -48
  407. package/bundles/ragents.watch/server/index.js.map +2 -2
  408. package/bundles/ragents.workspace/ragents-bundle.json +2 -2
  409. package/bundles/ragents.workspace/server/index.js +83 -81
  410. package/bundles/ragents.workspace/server/index.js.map +2 -2
  411. package/bundles/ragents.workspace/web/classes.json +1 -1
  412. package/bundles/ragents.workspace/web/index.js +1 -1
  413. package/bundles/ragents.workspace/web/index.js.map +2 -2
  414. package/package.json +4 -4
  415. package/packages/agent/dist/core/model-runtime.d.ts +7 -2
  416. package/packages/agent/dist/core/tools/bash.d.ts +1 -1
  417. package/packages/agent/dist/index.d.ts +1 -1
  418. package/packages/agent/dist/loop/agent-loop.d.ts +2 -2
  419. package/packages/agent/src/core/compaction/utils.ts +1 -1
  420. package/packages/agent/src/core/model-runtime.ts +45 -5
  421. package/packages/agent/src/core/tools/bash.ts +1 -1
  422. package/packages/agent/src/index.ts +1 -1
  423. package/packages/agent/src/loop/agent-loop.ts +2 -2
  424. package/packages/ai/dist/models.d.ts +1 -0
  425. package/packages/ai/dist/models.generated.d.ts +4544 -983
  426. package/packages/ai/dist/providers/openrouter.models.d.ts +4544 -983
  427. package/packages/ai/src/api/ai-sdk.ts +33 -7
  428. package/packages/ai/src/api-registry.ts +1 -1
  429. package/packages/ai/src/index.ts +2 -2
  430. package/packages/ai/src/models.generated.ts +1 -1
  431. package/packages/ai/src/models.ts +1 -1
  432. package/packages/ai/src/providers/openrouter.models.ts +3723 -550
  433. package/packages/ragents/src/access.ts +12 -12
  434. package/packages/ragents/src/agents/actor-input.ts +33 -33
  435. package/packages/ragents/src/agents/catalog.ts +1 -1
  436. package/packages/ragents/src/agents/delivery.ts +17 -17
  437. package/packages/ragents/src/agents/plugins.ts +1 -1
  438. package/packages/ragents/src/agents/scheduler.ts +7 -7
  439. package/packages/ragents/src/agents/schemas.ts +1 -1
  440. package/packages/ragents/src/agents/tool-orientation.ts +4 -4
  441. package/packages/ragents/src/agents/tools.ts +20 -20
  442. package/packages/ragents/src/agents/toolset.ts +5 -5
  443. package/packages/ragents/src/agents/workspaces.ts +1 -1
  444. package/packages/ragents/src/domain/events.ts +1 -1
  445. package/packages/ragents/src/domain/model.ts +5 -5
  446. package/packages/ragents/src/drivers/agent-runtime.ts +1 -1
  447. package/packages/ragents/src/drivers/agent-turn.ts +4 -4
  448. package/packages/ragents/src/drivers/agent.ts +2 -2
  449. package/packages/ragents/src/drivers/attachments.ts +4 -4
  450. package/packages/ragents/src/http/contracts.ts +14 -14
  451. package/packages/ragents/src/http/methods.ts +6 -6
  452. package/packages/ragents/src/index.ts +1 -0
  453. package/packages/ragents/src/plugin-host.ts +162 -116
  454. package/packages/ragents/src/plugin-types.ts +29 -10
  455. package/packages/ragents/src/rpc/contract.ts +5 -5
  456. package/packages/ragents/src/rpc/contribution.ts +2 -2
  457. package/packages/ragents/src/rpc/peer.ts +11 -11
  458. package/packages/ragents/src/rpc/protocol.ts +2 -2
  459. package/packages/ragents/src/runtime/decisions/turns.ts +1 -1
  460. package/packages/ragents/src/runtime/journal.ts +10 -10
  461. package/packages/ragents/src/runtime/orchestration.ts +8 -8
  462. package/packages/ragents/src/runtime/stop.ts +2 -2
  463. package/packages/ragents/src/script/mediators.ts +35 -35
  464. package/packages/ragents/src/typescript/async-compiler.ts +14 -14
  465. package/packages/ragents/src/typescript/compiler-worker.ts +2 -2
  466. package/packages/ragents/src/typescript/compiler.ts +7 -7
  467. package/packages/ragents/src/typescript/snippet.ts +5 -5
  468. package/packages/workspace-executor/src/bash-launch.ts +13 -13
  469. package/packages/workspace-executor/src/commands.ts +18 -18
  470. package/packages/workspace-executor/src/context.ts +15 -15
  471. package/packages/workspace-executor/src/contributions.ts +35 -35
  472. package/packages/workspace-executor/src/errors.ts +1 -1
  473. package/packages/workspace-executor/src/executor.ts +15 -15
  474. package/packages/workspace-executor/src/files.ts +30 -30
  475. package/packages/workspace-executor/src/language-server/contract.ts +2 -2
  476. package/packages/workspace-executor/src/language-server/diagnostics.ts +4 -4
  477. package/packages/workspace-executor/src/language-server/host.ts +35 -35
  478. package/packages/workspace-executor/src/language-server/json-rpc.ts +4 -4
  479. package/packages/workspace-executor/src/language-server/module.ts +11 -11
  480. package/packages/workspace-executor/src/language-server/roots.ts +3 -3
  481. package/packages/workspace-executor/src/language-server/session.ts +15 -15
  482. package/packages/workspace-executor/src/language-server/workspace-solutions.ts +2 -2
  483. package/packages/workspace-executor/src/managed-process.ts +35 -7
  484. package/packages/workspace-executor/src/module.ts +8 -8
  485. package/packages/workspace-executor/src/modules.ts +3 -3
  486. package/packages/workspace-executor/src/paths.ts +11 -11
  487. package/packages/workspace-executor/src/process-sandbox.ts +3 -3
  488. package/packages/workspace-executor/src/processes/module.ts +3 -3
  489. package/packages/workspace-executor/src/processes/process-table.ts +20 -20
  490. package/packages/workspace-executor/src/processes/scanner.ts +3 -3
  491. package/packages/workspace-executor/src/processes/snapshot.ts +2 -2
  492. package/packages/workspace-executor/src/processes/terminator.ts +13 -13
  493. package/packages/workspace-executor/src/run-folders.ts +3 -3
  494. package/packages/workspace-executor/src/safe-environment.ts +4 -4
  495. package/packages/workspace-executor/src/sandbox-tools.ts +37 -31
  496. package/packages/workspace-executor/src/session-ident.ts +2 -2
  497. package/packages/workspace-executor/src/shell-platform.ts +2 -2
  498. package/packages/workspace-executor/src/tools.ts +5 -5
  499. package/plugins/ragents.activity/web/ActivityHeader.tsx +3 -3
  500. package/plugins/ragents.activity/web/activity.ts +2 -2
  501. package/plugins/ragents.actor-programs/server/access-projections.ts +31 -0
  502. package/plugins/ragents.actor-programs/server/agent-tools.ts +2 -2
  503. package/plugins/ragents.actor-programs/server/capability-resolver.ts +3 -3
  504. package/plugins/ragents.actor-programs/server/controls-template.ts +46 -46
  505. package/plugins/ragents.actor-programs/server/controls-tool.ts +4 -4
  506. package/plugins/ragents.actor-programs/server/index.ts +2 -0
  507. package/plugins/ragents.actor-programs/server/limits.ts +3 -3
  508. package/plugins/ragents.actor-programs/server/methods.ts +1 -1
  509. package/plugins/ragents.actor-programs/server/project-diagnostics.ts +8 -8
  510. package/plugins/ragents.actor-programs/server/routes.ts +8 -8
  511. package/plugins/ragents.actor-programs/server/runtime.ts +90 -90
  512. package/plugins/ragents.actor-programs/server/templates.ts +59 -59
  513. package/plugins/ragents.actor-programs/server/test-report.ts +5 -5
  514. package/plugins/ragents.actor-programs/server/tool-contributor.ts +1 -1
  515. package/plugins/ragents.actor-programs/web/ActorViewFrame.tsx +17 -17
  516. package/plugins/ragents.actor-programs/web/AppsPanel.tsx +26 -26
  517. package/plugins/ragents.actor-programs/web/EmbeddedApps.tsx +3 -3
  518. package/plugins/ragents.actor-programs/web/FullscreenHost.tsx +2 -2
  519. package/plugins/ragents.actor-programs/web/FunctionForm.tsx +16 -16
  520. package/plugins/ragents.actor-programs/web/ProgramSource.tsx +5 -5
  521. package/plugins/ragents.actor-programs/web/api.ts +36 -36
  522. package/plugins/ragents.actor-programs/web/bridge.ts +8 -8
  523. package/plugins/ragents.actor-programs/web/chat-state.ts +4 -4
  524. package/plugins/ragents.actor-programs/web/context.ts +1 -1
  525. package/plugins/ragents.actor-programs/web/function-input.ts +6 -6
  526. package/plugins/ragents.actor-programs/web/index.tsx +1 -1
  527. package/plugins/ragents.actor-programs/web/program-state.ts +4 -4
  528. package/plugins/ragents.ask/ask-payload.ts +1 -1
  529. package/plugins/ragents.ask/contract.ts +5 -5
  530. package/plugins/ragents.ask/server/answer-method.ts +1 -1
  531. package/plugins/ragents.ask/server/ask-service.ts +9 -9
  532. package/plugins/ragents.ask/server/ask-tool.ts +10 -10
  533. package/plugins/ragents.ask/server/contract.ts +5 -5
  534. package/plugins/ragents.ask/web/AskActionView.tsx +1 -1
  535. package/plugins/ragents.ask/web/QuestionCard.tsx +22 -22
  536. package/plugins/ragents.ask/web/index.tsx +2 -8
  537. package/plugins/ragents.browser/executor/contract.ts +6 -6
  538. package/plugins/ragents.browser/executor/index.ts +1 -1
  539. package/plugins/ragents.browser/executor/module.ts +6 -6
  540. package/plugins/ragents.browser/executor/pages.ts +32 -32
  541. package/plugins/ragents.browser/executor/playwright.ts +8 -8
  542. package/plugins/ragents.browser/provision.ts +7 -7
  543. package/plugins/ragents.browser/server/browser.ts +14 -14
  544. package/plugins/ragents.browser/server/contract.ts +1 -1
  545. package/plugins/ragents.browser/server/index.ts +1 -1
  546. package/plugins/ragents.browser/server/tools.ts +14 -14
  547. package/plugins/ragents.browser/skills/browser-testing/SKILL.md +30 -30
  548. package/plugins/ragents.documents/contract.ts +2 -2
  549. package/plugins/ragents.documents/prompt.hbs +1 -1
  550. package/plugins/ragents.documents/server/document-write-tool.ts +12 -12
  551. package/plugins/ragents.documents/server/files-route.ts +6 -6
  552. package/plugins/ragents.documents/server/show-document-tool.ts +26 -26
  553. package/plugins/ragents.documents/server/store.ts +1 -1
  554. package/plugins/ragents.documents/web/DocumentViewer.tsx +37 -37
  555. package/plugins/ragents.documents/web/index.tsx +11 -11
  556. package/plugins/ragents.lsp-fsharp/executor.ts +7 -7
  557. package/plugins/ragents.lsp-fsharp/provision.ts +7 -7
  558. package/plugins/ragents.lsp-roslyn/executor.ts +5 -5
  559. package/plugins/ragents.lsp-roslyn/provision.ts +4 -4
  560. package/plugins/ragents.lsp-roslyn/server/index.ts +5 -5
  561. package/plugins/ragents.lsp-roslyn/server/solution-on-start.ts +13 -13
  562. package/plugins/ragents.lsp-typescript/executor.ts +3 -3
  563. package/plugins/ragents.model-relay/server/config.ts +6 -2
  564. package/plugins/ragents.model-relay/server/index.ts +2 -2
  565. package/plugins/ragents.model-relay/server/relay.ts +23 -22
  566. package/plugins/ragents.orchestration/contract.ts +8 -8
  567. package/plugins/ragents.orchestration/server/index.ts +4 -4
  568. package/plugins/ragents.orchestration/server/run-stop-tool.ts +3 -3
  569. package/plugins/ragents.orchestration/server/surface-tool.ts +5 -5
  570. package/plugins/ragents.orchestration/tiled-layout.ts +11 -11
  571. package/plugins/ragents.orchestration/web/ActorChat.tsx +2 -2
  572. package/plugins/ragents.orchestration/web/ActorChatControls.tsx +4 -4
  573. package/plugins/ragents.orchestration/web/ActorChatPreview.tsx +1 -1
  574. package/plugins/ragents.orchestration/web/ActorPopout.tsx +1 -1
  575. package/plugins/ragents.orchestration/web/ActorShortcut.tsx +6 -6
  576. package/plugins/ragents.orchestration/web/ActorSurfaceControls.tsx +15 -15
  577. package/plugins/ragents.orchestration/web/ActorTile.tsx +1 -1
  578. package/plugins/ragents.orchestration/web/Center.tsx +5 -5
  579. package/plugins/ragents.orchestration/web/DocumentsSection.tsx +2 -2
  580. package/plugins/ragents.orchestration/web/ExecutionsPanel.tsx +15 -15
  581. package/plugins/ragents.orchestration/web/FlowInspector.tsx +103 -103
  582. package/plugins/ragents.orchestration/web/JournalStatus.tsx +11 -11
  583. package/plugins/ragents.orchestration/web/MaterialBody.tsx +2 -2
  584. package/plugins/ragents.orchestration/web/StopRunButton.tsx +6 -6
  585. package/plugins/ragents.orchestration/web/TiledSurface.tsx +9 -9
  586. package/plugins/ragents.orchestration/web/actor-header-settings.ts +5 -5
  587. package/plugins/ragents.orchestration/web/constants.ts +2 -2
  588. package/plugins/ragents.orchestration/web/executions.ts +6 -6
  589. package/plugins/ragents.orchestration/web/format.ts +1 -1
  590. package/plugins/ragents.orchestration/web/index.tsx +2 -2
  591. package/plugins/ragents.orchestration/web/run-panel/AddresseeControl.tsx +7 -7
  592. package/plugins/ragents.orchestration/web/run-panel/AddresseeTree.tsx +8 -8
  593. package/plugins/ragents.orchestration/web/run-panel/RunPanel.tsx +29 -28
  594. package/plugins/ragents.orchestration/web/run-panel/RunPanelSettings.tsx +7 -7
  595. package/plugins/ragents.orchestration/web/run-panel/addressee-tree.ts +13 -13
  596. package/plugins/ragents.orchestration/web/run-panel/run-panel-actors.ts +3 -3
  597. package/plugins/ragents.orchestration/web/run-panel/run-panel-settings.ts +2 -2
  598. package/plugins/ragents.orchestration/web/run-panel/run-panel-startup.ts +3 -3
  599. package/plugins/ragents.orchestration/web/run-panel/run-panel-state.ts +7 -7
  600. package/plugins/ragents.orchestration/web/run-panel/sheet-status.ts +10 -10
  601. package/plugins/ragents.orchestration/web/surface-startup.ts +8 -8
  602. package/plugins/ragents.orchestration/web/surface-view-settings.ts +1 -1
  603. package/plugins/ragents.orchestration/web/tiled-view-settings.ts +1 -1
  604. package/plugins/ragents.overseer/contract.ts +20 -20
  605. package/plugins/ragents.overseer/server/api.ts +8 -8
  606. package/plugins/ragents.overseer/server/coordinator-prompt.ts +10 -10
  607. package/plugins/ragents.overseer/server/coordinator.ts +4 -4
  608. package/plugins/ragents.overseer/server/index.ts +24 -24
  609. package/plugins/ragents.overseer/server/orientation.ts +8 -8
  610. package/plugins/ragents.overseer/server/quick-answer.ts +9 -9
  611. package/plugins/ragents.overseer/server/run-directory.ts +5 -5
  612. package/plugins/ragents.overseer/server/settings.ts +6 -6
  613. package/plugins/ragents.overseer/server/user-location.ts +16 -16
  614. package/plugins/ragents.overseer/web/ModelSettings.tsx +9 -9
  615. package/plugins/ragents.overseer/web/index.tsx +20 -20
  616. package/plugins/ragents.overseer/web/model-settings.ts +1 -1
  617. package/plugins/ragents.overseer/web/quick-answers.ts +2 -2
  618. package/plugins/ragents.processes/contract.ts +5 -5
  619. package/plugins/ragents.processes/server/methods.ts +4 -4
  620. package/plugins/ragents.processes/server/observer.ts +8 -8
  621. package/plugins/ragents.processes/server/run-processes.ts +2 -2
  622. package/plugins/ragents.processes/web/ProcessHeader.tsx +10 -10
  623. package/plugins/ragents.processes/web/processes.ts +10 -10
  624. package/plugins/ragents.product/server/config.ts +1 -1
  625. package/plugins/ragents.product/server/index.ts +4 -4
  626. package/plugins/ragents.product/server/runtime.ts +9 -10
  627. package/plugins/ragents.product/web/index.tsx +1 -1
  628. package/plugins/ragents.profile-distribution/contract.ts +10 -10
  629. package/plugins/ragents.profile-distribution/server/archive.ts +20 -20
  630. package/plugins/ragents.profile-distribution/server/config.ts +2 -2
  631. package/plugins/ragents.profile-distribution/server/index.ts +4 -4
  632. package/plugins/ragents.reference/examples.ts +27 -27
  633. package/plugins/ragents.reference/run-scripts/balcony-wizard/RUN.md +19 -19
  634. package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/package.json +2 -2
  635. package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/client.tsx +14 -14
  636. package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/conversation.ts +2 -2
  637. package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/tests/conversation.test.ts +49 -49
  638. package/plugins/ragents.reference/run-scripts/balcony-wizard/package.json +1 -1
  639. package/plugins/ragents.reference/run-scripts/balcony-wizard/src/server.ts +9 -9
  640. package/plugins/ragents.reference/run-scripts/balcony-wizard/tests/program.test.ts +9 -9
  641. package/plugins/ragents.reference/run-scripts/conversation-circle/RUN.md +7 -7
  642. package/plugins/ragents.reference/run-scripts/conversation-circle/package.json +1 -1
  643. package/plugins/ragents.reference/run-scripts/conversation-circle/src/server.ts +13 -13
  644. package/plugins/ragents.reference/run-scripts/conversation-circle/tests/helpers.ts +1 -1
  645. package/plugins/ragents.reference/run-scripts/conversation-circle/tests/program.test.ts +8 -8
  646. package/plugins/ragents.reference/run-scripts/learning-afternoon/RUN.md +16 -16
  647. package/plugins/ragents.reference/run-scripts/learning-afternoon/package.json +1 -1
  648. package/plugins/ragents.reference/run-scripts/learning-afternoon/prompts/experiment.md +1 -1
  649. package/plugins/ragents.reference/run-scripts/learning-afternoon/prompts/helper.md +3 -3
  650. package/plugins/ragents.reference/run-scripts/learning-afternoon/prompts/quiz.md +1 -1
  651. package/plugins/ragents.reference/run-scripts/learning-afternoon/src/server.ts +9 -9
  652. package/plugins/ragents.reference/run-scripts/learning-afternoon/tests/program.test.ts +39 -39
  653. package/plugins/ragents.reference/run-scripts/moderated-round/RUN.md +7 -7
  654. package/plugins/ragents.reference/run-scripts/moderated-round/package.json +1 -1
  655. package/plugins/ragents.reference/run-scripts/moderated-round/src/server.ts +9 -9
  656. package/plugins/ragents.reference/run-scripts/moderated-round/tests/helpers.ts +1 -1
  657. package/plugins/ragents.reference/run-scripts/moderated-round/tests/program.test.ts +6 -6
  658. package/plugins/ragents.reference/run-scripts/shared-actor-list/RUN.md +12 -12
  659. package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/package.json +2 -2
  660. package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/contract.ts +3 -3
  661. package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/tests/program.test.ts +4 -4
  662. package/plugins/ragents.reference/run-scripts/shared-actor-list/package.json +1 -1
  663. package/plugins/ragents.reference/run-scripts/shared-actor-list/src/server.ts +11 -11
  664. package/plugins/ragents.reference/run-scripts/shared-actor-list/tests/helpers.ts +1 -1
  665. package/plugins/ragents.reference/run-scripts/shared-actor-list/tests/program.test.ts +13 -13
  666. package/plugins/ragents.reference/run-scripts/word-game/RUN.md +18 -18
  667. package/plugins/ragents.reference/run-scripts/word-game/package.json +2 -2
  668. package/plugins/ragents.reference/run-scripts/word-game/src/client.tsx +1 -1
  669. package/plugins/ragents.reference/run-scripts/word-game/src/contract.ts +2 -2
  670. package/plugins/ragents.reference/run-scripts/word-game/src/server.ts +16 -16
  671. package/plugins/ragents.reference/run-scripts/word-game/tests/program.test.ts +39 -39
  672. package/plugins/ragents.reference/skills/100-shared-actor-list/SKILL.md +5 -5
  673. package/plugins/ragents.reference/skills/110-all-card-slots/SKILL.md +5 -5
  674. package/plugins/ragents.reference/skills/150-editorial-workbench/SKILL.md +5 -5
  675. package/plugins/ragents.reference/skills/160-learning-companion/SKILL.md +5 -5
  676. package/plugins/ragents.reference/skills/170-photo-collection/SKILL.md +5 -5
  677. package/plugins/ragents.reference/skills/180-decision-workbench/SKILL.md +5 -5
  678. package/plugins/ragents.reference/skills/190-review-queue/SKILL.md +5 -5
  679. package/plugins/ragents.reference/skills/20-circle-of-four/SKILL.md +5 -5
  680. package/plugins/ragents.reference/skills/200-typescript-diagnostics/SKILL.md +5 -5
  681. package/plugins/ragents.reference/skills/210-moderator-handover/SKILL.md +5 -5
  682. package/plugins/ragents.reference/skills/220-actor-approval-list/SKILL.md +5 -5
  683. package/plugins/ragents.reference/skills/230-shared-state-views/SKILL.md +5 -5
  684. package/plugins/ragents.reference/skills/240-live-result-list/SKILL.md +5 -5
  685. package/plugins/ragents.reference/skills/250-balcony-wizard/SKILL.md +5 -5
  686. package/plugins/ragents.reference/skills/30-llm-without-runtime-knowledge/SKILL.md +5 -5
  687. package/plugins/ragents.reference/skills/35-actor-input-fifo/SKILL.md +5 -5
  688. package/plugins/ragents.reference/skills/40-subscription-matrix/SKILL.md +5 -5
  689. package/plugins/ragents.reference/skills/50-subscription-removal/SKILL.md +5 -5
  690. package/plugins/ragents.reference/skills/60-stop-in-the-circle/SKILL.md +5 -5
  691. package/plugins/ragents.reference/skills/65-artifact-least-privilege/SKILL.md +5 -5
  692. package/plugins/ragents.reference/skills/70-headless-counter/SKILL.md +5 -5
  693. package/plugins/ragents.reference/skills/75-lsp-demo/SKILL.md +5 -5
  694. package/plugins/ragents.reference/skills/80-actor-text-analysis/SKILL.md +5 -5
  695. package/plugins/ragents.reference/skills/90-actor-notes/SKILL.md +5 -5
  696. package/plugins/ragents.reference/skills/95-hello-world/SKILL.md +5 -5
  697. package/plugins/ragents.reference/skills/decision-brief/SKILL.md +24 -24
  698. package/plugins/ragents.reference/skills/learning-sprint/SKILL.md +24 -24
  699. package/plugins/ragents.reference/walkthroughs.ts +128 -128
  700. package/plugins/ragents.reference/web/StartGuides.tsx +23 -23
  701. package/plugins/ragents.todo/server/todo-tool.ts +6 -6
  702. package/plugins/ragents.todo/web/TodoSection.tsx +1 -1
  703. package/plugins/ragents.transcript/server/transcript.ts +11 -11
  704. package/plugins/ragents.watch/server/condition.ts +4 -4
  705. package/plugins/ragents.watch/server/functions.ts +27 -27
  706. package/plugins/ragents.watch/server/observation.ts +2 -2
  707. package/plugins/ragents.watch/server/service.ts +14 -14
  708. package/plugins/ragents.workspace/client/transport.ts +1 -1
  709. package/plugins/ragents.workspace/client/workspace-client.ts +62 -49
  710. package/plugins/ragents.workspace/contract.ts +46 -46
  711. package/plugins/ragents.workspace/server/binding.ts +20 -20
  712. package/plugins/ragents.workspace/server/browse-route.ts +8 -8
  713. package/plugins/ragents.workspace/server/clients.ts +42 -42
  714. package/plugins/ragents.workspace/server/config.ts +8 -5
  715. package/plugins/ragents.workspace/server/index.ts +5 -4
  716. package/plugins/ragents.workspace/server/runtime.ts +26 -26
  717. package/plugins/ragents.workspace/server/shell-platform.ts +1 -1
  718. package/plugins/ragents.workspace/web/FileBrowser.tsx +10 -10
  719. package/plugins/ragents.workspace/web/WorkspaceBinding.tsx +24 -24
  720. package/plugins/ragents.workspace/web/index.tsx +1 -1
  721. package/ragents.config.core.ts +1 -1
  722. package/ragents.config.developer.ts +3 -3
  723. package/ragents.config.showcase.ts +2 -2
  724. package/scripts/agent/agent-cli.ts +96 -96
  725. package/scripts/agent/journal.ts +5 -5
  726. package/scripts/agent/turn-control.ts +4 -4
  727. package/scripts/package/build-package.ts +29 -29
  728. package/scripts/package/host-links.mjs +3 -3
  729. package/scripts/package/publish-package.ts +29 -29
  730. package/scripts/package/ragents.mjs +19 -19
  731. package/scripts/plugin/build-builtin-plugins.ts +5 -5
  732. package/scripts/plugin/plugin-cli.ts +14 -14
  733. package/scripts/provision/run-provision.ts +14 -15
  734. package/scripts/remote/connect.ts +46 -46
  735. package/scripts/remote/start.ts +18 -18
  736. package/scripts/workspace-client/run-workspace-client.ts +23 -23
  737. package/apps/web/dist/assets/main-C7JeZFjs.js +0 -6
  738. package/apps/web/dist/assets/mermaid-HWGCJPDP-DfsU5ofC.js +0 -478
  739. package/apps/web/dist/assets/runPanel-ZT6TPDLM.js +0 -21
  740. package/bundles/ragents.ask/server/chunks/chunk-PDJO75SQ.js.map +0 -7
  741. package/bundles/ragents.ask/web/chunks/chunk-4VXWWEG7.js +0 -2
  742. package/bundles/ragents.ask/web/chunks/chunk-4VXWWEG7.js.map +0 -7
  743. package/bundles/ragents.ask/web/chunks/chunk-VUBJDIKQ.js +0 -2
  744. package/bundles/ragents.ask/web/chunks/chunk-VUBJDIKQ.js.map +0 -7
  745. package/bundles/ragents.ask/web/chunks/chunk-WFN4374U.js.map +0 -7
  746. package/bundles/ragents.orchestration/web/chunks/chunk-OQYCNYXN.js +0 -2
  747. package/plugins/ragents.ask/web/QuestionSection.tsx +0 -48
  748. /package/bundles/ragents.orchestration/web/chunks/{chunk-OSKPH6SZ.js.map → chunk-CFMJD5ZI.js.map} +0 -0
  749. /package/bundles/ragents.orchestration/web/chunks/{chunk-ODMMQGX2.js.map → chunk-UCIMT2R4.js.map} +0 -0
@@ -18,13 +18,13 @@ export function FullscreenHost({ session }: { session: SessionContext }) {
18
18
  <DialogContent className="h-[calc(100%-2*clamp(16px,2vw,24px))] w-[calc(100%-2*clamp(16px,2vw,24px))] gap-0 bg-background p-0" initialFocus={closeRef} scope="surface" showCloseButton={false} size="full">
19
19
  <header className="flex flex-none items-center gap-3 border-b border-border bg-card py-2 pr-3 pl-4">
20
20
  <DialogTitle className="min-w-0 flex-1 truncate text-[0.9rem]" render={<h2 />}>{title}</DialogTitle>
21
- <Button aria-label={`${title} Vollansicht schließen`} className="rounded-full" onClick={closeFullscreen} ref={closeRef} size="icon" title={`${title} Vollansicht schließen`} variant="outline"><XIcon /></Button>
21
+ <Button aria-label={`Close ${title} full view`} className="rounded-full" onClick={closeFullscreen} ref={closeRef} size="icon" title={`Close ${title} full view`} variant="outline"><XIcon /></Button>
22
22
  </header>
23
23
  <div className="flex min-h-0 flex-1 flex-col overflow-hidden [&>[data-slot=host-confirmation]]:max-h-[65%] [&>[data-slot=host-confirmation]]:flex-[0_1_auto] [&>[data-slot=host-confirmation]]:overflow-auto">
24
24
  {confirmation && <HostConfirmation action={confirmation} key={confirmation.id} session={session} />}
25
25
  {app ? <ActorViewFrame api={api} app={app} invoke={invoke} pendingConfirmationInvocationId={confirmation?.parameters.invocationId}
26
26
  presentation="fullscreen" runId={runId} session={session} />
27
- : <p className="flex flex-1 items-center justify-center gap-2 text-[0.7rem] text-muted-foreground" role={error ? "alert" : "status"}>{error ?? "Actor-Ansicht wird geladen"}</p>}
27
+ : <p className="flex flex-1 items-center justify-center gap-2 text-[0.7rem] text-muted-foreground" role={error ? "alert" : "status"}>{error ?? "Loading actor view"}</p>}
28
28
  </div>
29
29
  </DialogContent>
30
30
  </Dialog>;
@@ -45,19 +45,19 @@ export function FunctionForm({ session, tool, detail = false }: {
45
45
  }
46
46
  };
47
47
 
48
- const status = confirmation ? "Bestätigung erforderlich"
49
- : invocation?.status === "queued" ? "Wartet auf Ausführung"
50
- : invocation?.status === "running" ? "Funktion läuft"
51
- : invocation?.status === "succeeded" ? "Ausgeführt"
52
- : invocation?.status === "cancelled" ? "Abgebrochen"
53
- : invocation?.status === "failed" ? "Fehlgeschlagen"
54
- : busy ? "Aufruf wird gesendet" : undefined;
48
+ const status = confirmation ? "Confirmation required"
49
+ : invocation?.status === "queued" ? "Waiting for execution"
50
+ : invocation?.status === "running" ? "Function running"
51
+ : invocation?.status === "succeeded" ? "Executed"
52
+ : invocation?.status === "cancelled" ? "Cancelled"
53
+ : invocation?.status === "failed" ? "Failed"
54
+ : busy ? "Sending call" : undefined;
55
55
  const failure = error ?? (invocation?.status === "failed" || invocation?.status === "cancelled" ? invocation.error : undefined);
56
56
 
57
57
  return (
58
58
  <div className="grid min-w-0 gap-2.5">
59
- <form aria-label={`${tool.name} aufrufen`} className={cn("grid", detail ? "gap-3.5" : "gap-2")} onSubmit={(event) => void submit(event)}>
60
- {tool.parameters.length === 0 && detail && <p>Diese Funktion benötigt keine Parameter.</p>}
59
+ <form aria-label={`Call ${tool.name}`} className={cn("grid", detail ? "gap-3.5" : "gap-2")} onSubmit={(event) => void submit(event)}>
60
+ {tool.parameters.length === 0 && detail && <p>This function needs no parameters.</p>}
61
61
  {tool.parameters.map((parameter) => (
62
62
  <label className={cn("grid gap-[3px] font-[650] text-foreground [&_small]:text-[0.61rem] [&_small]:font-normal [&_small]:text-muted-foreground",
63
63
  detail ? "text-[0.8rem]" : "text-[0.68rem]",
@@ -65,7 +65,7 @@ export function FunctionForm({ session, tool, detail = false }: {
65
65
  {parameter.type === "boolean" && parameter.required && <input aria-description={parameter.description} className="m-0 accent-primary" disabled={!writable || busy} name={parameter.name} type="checkbox" />}
66
66
  <span>{parameter.name}{parameter.required ? " *" : ""}{detail && <small className="ml-2">{parameter.type}{parameter.required ? "" : " (optional)"}</small>}</span>
67
67
  {parameter.type === "boolean"
68
- ? !parameter.required && <select className={selectClass} disabled={!writable || busy} name={parameter.name} defaultValue=""><option value="">Nicht übergeben</option><option value="true">Ja</option><option value="false">Nein</option></select>
68
+ ? !parameter.required && <select className={selectClass} disabled={!writable || busy} name={parameter.name} defaultValue=""><option value="">Not passed</option><option value="true">Yes</option><option value="false">No</option></select>
69
69
  : parameter.type === "json" || parameter.type === "string[]" || parameter.type === "number[]" || detail && parameter.type === "string"
70
70
  ? <Textarea aria-description={parameter.description} className="min-h-8 resize-y font-normal" disabled={!writable || busy} name={parameter.name} placeholder={parameter.description} required={parameter.required} rows={2} />
71
71
  : <Input
@@ -79,21 +79,21 @@ export function FunctionForm({ session, tool, detail = false }: {
79
79
  type={parameter.type === "integer" || parameter.type === "number" ? "number" : "text"}
80
80
  />}
81
81
  {(detail || parameter.type === "boolean") && <small>{parameter.description}</small>}
82
- {parameter.type === "json" && <small>Als JSON eingeben.</small>}
83
- {parameter.type === "number[]" && <small>Als JSON-Liste eingeben, z. B. [1, 2, 3].</small>}
84
- {parameter.type === "string[]" && <small>Ein Eintrag pro Zeile oder als JSON-Liste.</small>}
82
+ {parameter.type === "json" && <small>Enter as JSON.</small>}
83
+ {parameter.type === "number[]" && <small>Enter as a JSON list, e.g. [1, 2, 3].</small>}
84
+ {parameter.type === "string[]" && <small>One entry per line or as a JSON list.</small>}
85
85
  </label>
86
86
  ))}
87
87
  <div className="flex flex-wrap items-center gap-2">
88
- <Button disabled={!writable || busy} type="submit">{busy ? "Wird ausgeführt ..." : "Ausführen"}</Button>
88
+ <Button disabled={!writable || busy} type="submit">{busy ? "Running ..." : "Run"}</Button>
89
89
  {status && <span className="text-[0.63rem] text-muted-foreground" role="status">{status}</span>}
90
90
  </div>
91
91
  </form>
92
92
  {confirmation && <HostConfirmation action={confirmation} key={confirmation.id} session={session} />}
93
93
  {failure && <p className="text-destructive [overflow-wrap:anywhere]" role="alert">{failure}</p>}
94
94
  {invocation?.status === "succeeded" && !error && (
95
- <section aria-label="Ergebnis" className="grid min-w-0 gap-2">
96
- <h3>Ergebnis</h3>
95
+ <section aria-label="Result" className="grid min-w-0 gap-2">
96
+ <h3>Result</h3>
97
97
  <pre className="max-h-[320px] overflow-auto rounded-md border border-border-soft bg-card p-2.5 text-[0.75rem] whitespace-pre-wrap text-foreground [overflow-wrap:anywhere]">{typeof invocation.result === "string" ? invocation.result : JSON.stringify(invocation.result, null, 2)}</pre>
98
98
  </section>
99
99
  )}
@@ -45,17 +45,17 @@ export function ProgramSource({ api, moduleId, runId, revision, expandedByDefaul
45
45
 
46
46
  return (
47
47
  <section className="grid w-full min-w-0 grid-cols-[minmax(0,1fr)] justify-items-start gap-2">
48
- <h3 className="text-xs font-semibold text-muted-foreground">Quellcode</h3>
48
+ <h3 className="text-xs font-semibold text-muted-foreground">Source code</h3>
49
49
  {!expanded && (
50
- <Button onClick={() => setExpanded(true)} size="sm" variant="outline">Quellcode anzeigen</Button>
50
+ <Button onClick={() => setExpanded(true)} size="sm" variant="outline">Show source code</Button>
51
51
  )}
52
52
  {expanded && (
53
53
  <>
54
- <p className="text-[0.67rem] text-muted-foreground">Quelle des installierten Builds</p>
54
+ <p className="text-[0.67rem] text-muted-foreground">Source of the installed build</p>
55
55
  {state.kind === "loading" && (
56
56
  <p className="flex items-center gap-2 text-[0.72rem] text-muted-foreground">
57
57
  <Spinner aria-hidden aria-label={undefined} role={undefined} />
58
- <span>Quellcode wird geladen</span>
58
+ <span>Loading source code</span>
59
59
  </p>
60
60
  )}
61
61
  {state.kind === "error" && <Alert className="w-full" variant="destructive">{state.message}</Alert>}
@@ -75,7 +75,7 @@ export function ProgramSource({ api, moduleId, runId, revision, expandedByDefaul
75
75
  </div>
76
76
  )}
77
77
  {active && <SourceCode className="h-full max-h-[340px] w-full min-h-0 min-w-0 overflow-auto rounded-lg border border-border-soft bg-background/70" content={active.content} path={active.path} />}
78
- {!expandedByDefault && <Button onClick={() => setExpanded(false)} size="sm" variant="outline">Quellcode ausblenden</Button>}
78
+ {!expandedByDefault && <Button onClick={() => setExpanded(false)} size="sm" variant="outline">Hide source code</Button>}
79
79
  </>
80
80
  )}
81
81
  </section>
@@ -111,35 +111,35 @@ const HASH_PATTERN = /^[a-f0-9]{64}$/;
111
111
  const PARAMETER_TYPES = new Set<RunToolParameter["type"]>(actorFunctionParameterTypes);
112
112
 
113
113
  const requiredString = (value: unknown, field: string): string => {
114
- if (typeof value !== "string" || !value.trim()) throw new Error(`${field} fehlt oder ist leer`);
114
+ if (typeof value !== "string" || !value.trim()) throw new Error(`${field} is missing or empty`);
115
115
  return value;
116
116
  };
117
117
 
118
118
  const optionalString = (value: unknown, field: string): string | undefined => {
119
119
  if (value === undefined) return undefined;
120
- if (typeof value !== "string") throw new Error(`${field} ist kein Text`);
120
+ if (typeof value !== "string") throw new Error(`${field} is not text`);
121
121
  return value;
122
122
  };
123
123
 
124
124
  const idFrom = (value: unknown, field: string): string => {
125
125
  const id = requiredString(value, field);
126
- if (!ID_PATTERN.test(id)) throw new Error(`${field} ist keine gültige Kennung`);
126
+ if (!ID_PATTERN.test(id)) throw new Error(`${field} is not a valid identifier`);
127
127
  return id;
128
128
  };
129
129
 
130
130
  const unique = <T,>(values: T[], keyOf: (value: T) => string, label: string): T[] => {
131
131
  const ids = values.map(keyOf);
132
- if (new Set(ids).size !== ids.length) throw new Error(`${label} enthält doppelte Kennungen`);
132
+ if (new Set(ids).size !== ids.length) throw new Error(`${label} contains duplicate identifiers`);
133
133
  return values;
134
134
  };
135
135
 
136
136
  export const runAppActionFrom = (value: unknown): RunAppAction => {
137
- if (!isRecord(value)) throw new Error("Eine App-Aktion ist kein Objekt");
137
+ if (!isRecord(value)) throw new Error("An app action is not an object");
138
138
  if (value.confirmation !== null && typeof value.confirmation !== "string") {
139
- throw new Error("confirmation einer App-Aktion muss Text oder null sein");
139
+ throw new Error("confirmation of an app action must be text or null");
140
140
  }
141
141
  if (typeof value.confirmation === "string" && !value.confirmation.trim()) {
142
- throw new Error("confirmation einer App-Aktion darf nicht leer sein");
142
+ throw new Error("confirmation of an app action must not be empty");
143
143
  }
144
144
  return {
145
145
  id: idFrom(value.id, "action.id"),
@@ -152,9 +152,9 @@ export const runAppActionFrom = (value: unknown): RunAppAction => {
152
152
  };
153
153
 
154
154
  export const runAppInvocationFrom = (value: unknown): RunAppInvocation => {
155
- if (!isRecord(value)) throw new Error("Eine App-Ausführung ist kein Objekt");
155
+ if (!isRecord(value)) throw new Error("An app execution is not an object");
156
156
  if (!Array.isArray(value.output) || value.output.some((line) => typeof line !== "string")) {
157
- throw new Error("output einer App-Ausführung ist keine Textliste");
157
+ throw new Error("output of an app execution is not a text list");
158
158
  }
159
159
  const base = {
160
160
  id: idFrom(value.id, "invocation.id"),
@@ -173,7 +173,7 @@ export const runAppInvocationFrom = (value: unknown): RunAppInvocation => {
173
173
  case "running":
174
174
  return { ...base, status: "running", startedAt: requiredString(value.startedAt, "invocation.startedAt") };
175
175
  case "succeeded": {
176
- if (!isJsonValue(value.result)) throw new Error("result einer App-Ausführung ist kein JSON-Wert");
176
+ if (!isJsonValue(value.result)) throw new Error("result of an app execution is not a JSON value");
177
177
  return {
178
178
  ...base,
179
179
  status: "succeeded",
@@ -194,28 +194,28 @@ export const runAppInvocationFrom = (value: unknown): RunAppInvocation => {
194
194
  error: requiredString(value.error, "invocation.error"),
195
195
  };
196
196
  default:
197
- throw new Error("status einer App-Ausführung ist ungültig");
197
+ throw new Error("status of an app execution is invalid");
198
198
  }
199
199
  };
200
200
 
201
201
  const runAppPlacementFrom = (value: unknown): RunAppPlacement => {
202
- if (!isRecord(value)) throw new Error("Eine App-Platzierung ist kein Objekt");
202
+ if (!isRecord(value)) throw new Error("An app placement is not an object");
203
203
  if (value.kind === "canvas") {
204
204
  return {
205
205
  kind: "canvas",
206
206
  anchorActorId: requiredString(value.anchorActorId, "placement.anchorActorId"),
207
207
  };
208
208
  }
209
- throw new Error("kind einer App-Platzierung muss canvas sein");
209
+ throw new Error("kind of an app placement must be canvas");
210
210
  };
211
211
 
212
212
  export const runAppFrom = (value: unknown): RunApp => {
213
- if (!isRecord(value)) throw new Error("Eine App ist kein Objekt");
214
- if (!Array.isArray(value.actions)) throw new Error("actions einer App ist keine Liste");
215
- if (!Array.isArray(value.invocations)) throw new Error("invocations einer App ist keine Liste");
213
+ if (!isRecord(value)) throw new Error("An app is not an object");
214
+ if (!Array.isArray(value.actions)) throw new Error("actions of an app is not a list");
215
+ if (!Array.isArray(value.invocations)) throw new Error("invocations of an app is not a list");
216
216
  const rawPlacements = value.placements ?? [];
217
- if (!Array.isArray(rawPlacements)) throw new Error("placements einer App ist keine Liste");
218
- if (!isRecord(value.state) || value.state.version !== 1 || !Number.isSafeInteger(value.state.revision) || !isJsonValue(value.state.values)) throw new Error("state einer Ansicht entspricht nicht dem Zustandvertrag");
217
+ if (!Array.isArray(rawPlacements)) throw new Error("placements of an app is not a list");
218
+ if (!isRecord(value.state) || value.state.version !== 1 || !Number.isSafeInteger(value.state.revision) || !isJsonValue(value.state.values)) throw new Error("state of a view does not match the state contract");
219
219
  const actions = unique(value.actions.map(runAppActionFrom), (action) => action.id, "actions");
220
220
  const invocations = unique(
221
221
  value.invocations.map(runAppInvocationFrom),
@@ -224,15 +224,15 @@ export const runAppFrom = (value: unknown): RunApp => {
224
224
  );
225
225
  const actionIds = new Set(actions.map((action) => action.id));
226
226
  if (invocations.some((invocation) => !actionIds.has(invocation.actionId))) {
227
- throw new Error("Eine App-Ausführung verweist auf eine unbekannte Aktion");
227
+ throw new Error("An app execution refers to an unknown action");
228
228
  }
229
- if (value.visible !== undefined && typeof value.visible !== "boolean") throw new Error("visible einer App ist kein Wahrheitswert");
230
- if (rawPlacements.length > 1) throw new Error("placements einer App enthält mehr als eine Platzierung");
229
+ if (value.visible !== undefined && typeof value.visible !== "boolean") throw new Error("visible of an app is not a boolean");
230
+ if (rawPlacements.length > 1) throw new Error("placements of an app contains more than one placement");
231
231
  const placements = rawPlacements.map(runAppPlacementFrom);
232
232
  const id = requiredString(value.id, "view.id");
233
- if (!VIEW_ID_PATTERN.test(id)) throw new Error("view.id ist keine gültige Kennung");
233
+ if (!VIEW_ID_PATTERN.test(id)) throw new Error("view.id is not a valid identifier");
234
234
  const actorId = requiredString(value.actorId, "view.actorId");
235
- if (placements.some((placement) => placement.anchorActorId !== actorId)) throw new Error("Die Ansicht muss bei ihrem eigenen Actor platziert sein");
235
+ if (placements.some((placement) => placement.anchorActorId !== actorId)) throw new Error("The view must be placed at its own actor");
236
236
  return {
237
237
  id,
238
238
  actorId,
@@ -251,11 +251,11 @@ export const runAppFrom = (value: unknown): RunApp => {
251
251
  };
252
252
 
253
253
  const runToolParameterFrom = (value: unknown): RunToolParameter => {
254
- if (!isRecord(value)) throw new Error("Ein Werkzeugparameter ist kein Objekt");
254
+ if (!isRecord(value)) throw new Error("A tool parameter is not an object");
255
255
  if (typeof value.type !== "string" || !PARAMETER_TYPES.has(value.type as RunToolParameter["type"])) {
256
- throw new Error("type eines Werkzeugparameters ist ungültig");
256
+ throw new Error("type of a tool parameter is invalid");
257
257
  }
258
- if (typeof value.required !== "boolean") throw new Error("required eines Werkzeugparameters ist kein Wahrheitswert");
258
+ if (typeof value.required !== "boolean") throw new Error("required of a tool parameter is not a boolean");
259
259
  return {
260
260
  name: idFrom(value.name, "parameter.name"),
261
261
  description: requiredString(value.description, "parameter.description"),
@@ -265,9 +265,9 @@ const runToolParameterFrom = (value: unknown): RunToolParameter => {
265
265
  };
266
266
 
267
267
  const runToolTargetFrom = (value: unknown): RunToolTarget => {
268
- if (!isRecord(value)) throw new Error("Ein Werkzeugziel ist kein Objekt");
268
+ if (!isRecord(value)) throw new Error("A tool target is not an object");
269
269
  if (value.handle !== null && typeof value.handle !== "string") {
270
- throw new Error("handle eines Werkzeugziels muss Text oder null sein");
270
+ throw new Error("handle of a tool target must be text or null");
271
271
  }
272
272
  return {
273
273
  actorId: requiredString(value.actorId, "target.actorId"),
@@ -276,11 +276,11 @@ const runToolTargetFrom = (value: unknown): RunToolTarget => {
276
276
  };
277
277
 
278
278
  export const runScriptToolFrom = (value: unknown): RunScriptTool => {
279
- if (!isRecord(value)) throw new Error("Ein Script-Werkzeug ist kein Objekt");
280
- if (!Array.isArray(value.parameters)) throw new Error("parameters eines Script-Werkzeugs ist keine Liste");
281
- if (!Array.isArray(value.targets)) throw new Error("targets eines Script-Werkzeugs ist keine Liste");
279
+ if (!isRecord(value)) throw new Error("A script tool is not an object");
280
+ if (!Array.isArray(value.parameters)) throw new Error("parameters of a script tool is not a list");
281
+ if (!Array.isArray(value.targets)) throw new Error("targets of a script tool is not a list");
282
282
  const sourceHash = requiredString(value.sourceHash, "tool.sourceHash");
283
- if (!HASH_PATTERN.test(sourceHash)) throw new Error("sourceHash eines Script-Werkzeugs ist ungültig");
283
+ if (!HASH_PATTERN.test(sourceHash)) throw new Error("sourceHash of a script tool is invalid");
284
284
  return {
285
285
  actorId: requiredString(value.actorId, "tool.actorId"),
286
286
  actorHandle: requiredString(value.actorHandle, "tool.actorHandle"),
@@ -298,8 +298,8 @@ export const runScriptToolFrom = (value: unknown): RunScriptTool => {
298
298
  };
299
299
 
300
300
  const actorProgramSourceFileFrom = (value: unknown): ActorProgramSourceFile => {
301
- if (!isRecord(value)) throw new Error("Eine Quelldatei ist kein Objekt");
302
- if (typeof value.content !== "string") throw new Error("content einer Quelldatei ist kein Text");
301
+ if (!isRecord(value)) throw new Error("A source file is not an object");
302
+ if (typeof value.content !== "string") throw new Error("content of a source file is not text");
303
303
  return {
304
304
  path: requiredString(value.path, "source.path"),
305
305
  content: value.content,
@@ -307,13 +307,13 @@ const actorProgramSourceFileFrom = (value: unknown): ActorProgramSourceFile => {
307
307
  };
308
308
 
309
309
  export const actorProgramSourceFrom = (value: unknown): ActorProgramSourceFile[] => {
310
- if (!isRecord(value) || !Array.isArray(value.files)) throw new Error("Die Quellenliste entspricht nicht dem Vertrag");
310
+ if (!isRecord(value) || !Array.isArray(value.files)) throw new Error("The source list does not match the contract");
311
311
  return unique(value.files.map(actorProgramSourceFileFrom), (file) => file.path, "files");
312
312
  };
313
313
 
314
314
  export const actorProgramsListingFrom = (value: unknown): ActorProgramsListing => {
315
315
  if (!isRecord(value) || !Array.isArray(value.apps) || !Array.isArray(value.tools)) {
316
- throw new Error("Die Liste der Actor-Programme entspricht nicht dem Vertrag");
316
+ throw new Error("The list of actor programs does not match the contract");
317
317
  }
318
318
  return {
319
319
  apps: unique(value.apps.map(runAppFrom), (app) => app.id, "apps"),
@@ -75,18 +75,18 @@ const inputWithinLimit = (value: JsonValue): boolean => {
75
75
  };
76
76
 
77
77
  export const validateRunAppBridgeRequest = (value: unknown): RunAppBridgeValidation => {
78
- if (!isRecord(value)) return { ok: false, error: "Die App-Nachricht ist kein Objekt" };
78
+ if (!isRecord(value)) return { ok: false, error: "The app message is not an object" };
79
79
  const requestId = requestIdFrom(value.requestId);
80
- if (!requestId) return { ok: false, error: "Die App-Nachricht enthält keine gültige requestId" };
80
+ if (!requestId) return { ok: false, error: "The app message contains no valid requestId" };
81
81
  if (value.version !== RUN_APP_BRIDGE_VERSION) {
82
- return { ok: false, requestId, error: "Die App verwendet eine nicht unterstützte Bridge-Version" };
82
+ return { ok: false, requestId, error: "The app uses an unsupported bridge version" };
83
83
  }
84
84
  if (value.type === RUN_APP_GET_STATE) {
85
85
  return { ok: true, request: { type: RUN_APP_GET_STATE, version: RUN_APP_BRIDGE_VERSION, requestId } };
86
86
  }
87
87
  if (value.type === RUN_APP_CHAT_WATCH || value.type === RUN_APP_CHAT_UNWATCH || value.type === RUN_APP_CHAT_SEND) {
88
88
  if (typeof value.actor !== "string" || !/^@?[\p{L}\p{N}_-]{1,64}$/u.test(value.actor)) {
89
- return { ok: false, requestId, error: "Das Chat-Ziel muss primary oder ein Actor-Handle wie @reviewer sein" };
89
+ return { ok: false, requestId, error: "The chat target must be primary or an actor handle such as @reviewer" };
90
90
  }
91
91
  const common = { version: RUN_APP_BRIDGE_VERSION, requestId, actor: value.actor } as const;
92
92
  if (value.type !== RUN_APP_CHAT_SEND) return { ok: true, request: { ...common, type: value.type } };
@@ -95,18 +95,18 @@ export const validateRunAppBridgeRequest = (value: unknown): RunAppBridgeValidat
95
95
  return { ok: false, requestId, error: cause instanceof Error ? cause.message : String(cause) };
96
96
  }
97
97
  if (typeof value.text !== "string" || (!value.text.trim() && !attachments.length) || !inputWithinLimit(value.text)) {
98
- return { ok: false, requestId, error: "Die Chat-Nachricht ist leer oder zu groß" };
98
+ return { ok: false, requestId, error: "The chat message is empty or too large" };
99
99
  }
100
100
  return { ok: true, request: { ...common, type: RUN_APP_CHAT_SEND, text: value.text.trim(), ...(attachments.length ? { attachments } : {}) } };
101
101
  }
102
102
  if (value.type !== RUN_APP_INVOKE) {
103
- return { ok: false, requestId, error: "Die App-Nachricht hat einen unbekannten Typ" };
103
+ return { ok: false, requestId, error: "The app message has an unknown type" };
104
104
  }
105
105
  if (typeof value.actionId !== "string" || !ID_PATTERN.test(value.actionId)) {
106
- return { ok: false, requestId, error: "Die App-Nachricht enthält keine gültige actionId" };
106
+ return { ok: false, requestId, error: "The app message contains no valid actionId" };
107
107
  }
108
108
  if (!isJsonValue(value.input) || !inputWithinLimit(value.input)) {
109
- return { ok: false, requestId, error: "Die Eingabe der App-Aktion ist kein gültiger JSON-Wert oder zu groß" };
109
+ return { ok: false, requestId, error: "The input of the app action is not a valid JSON value or too large" };
110
110
  }
111
111
  return {
112
112
  ok: true,
@@ -7,13 +7,13 @@ import { programChatNotice } from "@ragents/web/chat/chat-target";
7
7
 
8
8
  export const resolveChatActor = (session: SessionContext, target: string) => {
9
9
  const view = runViewFrom(session.runView);
10
- if (!view || view.id !== session.session.id) throw new Error("Die Run-Ansicht für diesen Chat ist noch nicht verfügbar");
10
+ if (!view || view.id !== session.session.id) throw new Error("The run view for this chat is not available yet");
11
11
  const actor = target === "primary"
12
12
  ? view.actors.find((entry) => entry.id === view.primaryActorId)
13
13
  : actorByHandle(view.actors, target);
14
14
  if (!actor || actor.kind === "human") {
15
15
  const names = view.actors.filter((entry) => entry.kind !== "human").map((entry) => `@${entry.handle}`).join(", ");
16
- throw new Error(`Das Chat-Ziel ist nicht verfügbar. Erlaubt sind primary und: ${names || "noch keine Actors"}`);
16
+ throw new Error(`The chat target is not available. Allowed are primary and: ${names || "no actors yet"}`);
17
17
  }
18
18
  return { view, actor };
19
19
  };
@@ -23,8 +23,8 @@ export const chatSnapshotOf = (session: SessionContext, target: string): ChatSna
23
23
  const { view, actor } = resolveChatActor(session, target);
24
24
  const primary = actor.id === view.primaryActorId;
25
25
  const error = actor.kind === "script" ? programChatNotice : session.conversationError ?? (!session.connected
26
- ? "Die Verbindung zum Run ist unterbrochen"
27
- : actor.lifecycle?.kind === "stopped" ? `@${actor.handle} gestoppt: ${actor.lifecycle.reason}. Er nimmt keine Eingaben an, bis er neu gestartet wird` : undefined);
26
+ ? "The connection to the run is interrupted"
27
+ : actor.lifecycle?.kind === "stopped" ? `@${actor.handle} stopped: ${actor.lifecycle.reason}. It accepts no input until it is restarted` : undefined);
28
28
  return {
29
29
  owner: actor.id,
30
30
  messages: actorChatMessages(view, actor, session.messages, session.actorConversations?.[actor.id]),
@@ -25,6 +25,6 @@ export const useOptionalActorPrograms = () => useContext(ActorProgramsContext);
25
25
 
26
26
  export const useActorPrograms = (): ActorProgramsContextValue => {
27
27
  const value = useOptionalActorPrograms();
28
- if (!value) throw new Error("Der Actor-Programm-Provider ist nicht aktiv");
28
+ if (!value) throw new Error("The actor program provider is not active");
29
29
  return value;
30
30
  };
@@ -9,11 +9,11 @@ const parseParameter = (parameter: RunToolParameter, form: FormData): JsonValue
9
9
  }
10
10
  if (raw === "" && !parameter.required) return undefined;
11
11
  if (parameter.type === "string") return raw;
12
- if (!raw.trim()) throw new Error(`${parameter.name}: Bitte einen Wert eingeben.`);
12
+ if (!raw.trim()) throw new Error(`${parameter.name}: Please enter a value.`);
13
13
  if (parameter.type === "number" || parameter.type === "integer") {
14
14
  const value = Number(raw);
15
15
  if (!Number.isFinite(value) || parameter.type === "integer" && !Number.isInteger(value)) {
16
- throw new Error(`${parameter.name} ist keine gültige ${parameter.type === "integer" ? "Ganzzahl" : "Zahl"}.`);
16
+ throw new Error(`${parameter.name} is not a valid ${parameter.type === "integer" ? "integer" : "number"}.`);
17
17
  }
18
18
  return value;
19
19
  }
@@ -22,13 +22,13 @@ const parseParameter = (parameter: RunToolParameter, form: FormData): JsonValue
22
22
  }
23
23
  let value: unknown;
24
24
  try { value = JSON.parse(raw); }
25
- catch { throw new Error(`${parameter.name}: Bitte gültiges JSON eingeben.`); }
26
- if (!isJsonValue(value)) throw new Error(`${parameter.name}: Kein gültiger JSON-Wert.`);
25
+ catch { throw new Error(`${parameter.name}: Please enter valid JSON.`); }
26
+ if (!isJsonValue(value)) throw new Error(`${parameter.name}: Not a valid JSON value.`);
27
27
  if (parameter.type === "string[]" && (!Array.isArray(value) || !value.every((entry) => typeof entry === "string"))) {
28
- throw new Error(`${parameter.name}: Bitte eine Liste aus Texten eingeben.`);
28
+ throw new Error(`${parameter.name}: Please enter a list of texts.`);
29
29
  }
30
30
  if (parameter.type === "number[]" && (!Array.isArray(value) || !value.every((entry) => typeof entry === "number"))) {
31
- throw new Error(`${parameter.name}: Bitte eine JSON-Liste aus Zahlen eingeben.`);
31
+ throw new Error(`${parameter.name}: Please enter a JSON list of numbers.`);
32
32
  }
33
33
  return value;
34
34
  };
@@ -68,7 +68,7 @@ const configuredPlugin = (descriptor: WebPluginDescriptor, routePrefix: string):
68
68
  {
69
69
  readRight: "runs.inspect",
70
70
  id: RUN_TOOLS_TAB_ID,
71
- label: "Funktionen",
71
+ label: "Functions",
72
72
  order: 251,
73
73
  Icon: IconTools,
74
74
  Panel: ToolsPanel,
@@ -20,7 +20,7 @@ export const actorProgramSourceReference = (runView: unknown, actorId: string):
20
20
  if (!entry || !isRecord(entry.state) || entry.state.program === null) return undefined;
21
21
  const program = entry.state.program;
22
22
  if (!isRecord(program) || program.actorId !== actorId || typeof program.name !== "string" || typeof program.revision !== "string") {
23
- throw new Error("Die Quellcode-Zuordnung des Actor-Programms ist ungültig.");
23
+ throw new Error("The source code mapping of the actor program is invalid.");
24
24
  }
25
25
  return { name: program.name, revision: program.revision };
26
26
  };
@@ -36,10 +36,10 @@ export const actorProgramViews = (runView: unknown): ActorProgramView[] => {
36
36
  if (!isRecord(entry.state) || !isRecord(entry.state.program)) return [];
37
37
  const program = entry.state.program;
38
38
  if (program.actorId !== actor.id || program.actorHandle !== actor.handle || typeof program.revision !== "string" || !Array.isArray(program.views)) {
39
- throw new Error(`Das Ansichtsprogramm von @${actor.handle} ist ungültig.`);
39
+ throw new Error(`The view program of @${actor.handle} is invalid.`);
40
40
  }
41
41
  return program.views.map((app) => {
42
- if (!isRecord(app) || typeof app.id !== "string" || typeof app.title !== "string") throw new Error(`Eine Ansicht von @${actor.handle} ist ungültig.`);
42
+ if (!isRecord(app) || typeof app.id !== "string" || typeof app.title !== "string") throw new Error(`A view of @${actor.handle} is invalid.`);
43
43
  return { id: app.id, title: app.title, actorId: actor.id, actorHandle: actor.handle, revision: program.revision as string, app };
44
44
  });
45
45
  });
@@ -57,7 +57,7 @@ export const currentActorListing = (listing: ActorProgramsListing | undefined, r
57
57
  if (!current || current.actorId !== app.actorId || current.revision !== app.revision) return [];
58
58
  const state = view.pluginStates.find((entry) => entry.pluginId === ACTOR_STATE_ID && entry.scope.kind === "actor" && entry.scope.actorId === app.actorId);
59
59
  const values = state ? state.state : app.state.values;
60
- if (!isJsonValue(values)) throw new Error(`Der Zustand von @${app.actorHandle} ist kein JSON-Wert.`);
60
+ if (!isJsonValue(values)) throw new Error(`The state of @${app.actorHandle} is not a JSON value.`);
61
61
  return [{ ...app, visible: current.app.visible !== false,
62
62
  state: { ...app.state, values } }];
63
63
  }),
@@ -7,7 +7,7 @@ export interface AskPayload {
7
7
  question: string;
8
8
  options: string[];
9
9
  multi: boolean;
10
- /** Der Actor, für den die Frage steht, wenn der Eigentümer des Runs sie außerhalb eines Turns stellt. */
10
+ /** The actor the question stands for when the run owner asks it outside a turn. */
11
11
  recipient?: string;
12
12
  }
13
13
 
@@ -4,13 +4,13 @@ import { defineOperation } from "@ragents/engine/src/rpc/contract";
4
4
  export const askContracts = {
5
5
  answer: defineOperation({
6
6
  id: "ragents.ask.answer",
7
- description: "Eine Rückfrage des Runs beantworten oder verwerfen. Rechte: runs.read und runs.write.",
7
+ description: "Answer or dismiss a question of the run. Rights: runs.read and runs.write.",
8
8
  rights: ["runs.read", "runs.write"],
9
9
  input: Type.Object({
10
- runId: Type.String({ minLength: 1, maxLength: 64, description: "Kennung des Runs" }),
11
- actionId: Type.String({ minLength: 1, maxLength: 80, description: "Kennung der Frage" }),
12
- answer: Type.Optional(Type.String({ description: "Die Antwort des Benutzers" })),
13
- dismiss: Type.Optional(Type.Boolean({ description: "true verwirft die Frage ohne Antwort" })),
10
+ runId: Type.String({ minLength: 1, maxLength: 64, description: "Run id" }),
11
+ actionId: Type.String({ minLength: 1, maxLength: 80, description: "Question id" }),
12
+ answer: Type.Optional(Type.String({ description: "The user's answer" })),
13
+ dismiss: Type.Optional(Type.Boolean({ description: "true dismisses the question without an answer" })),
14
14
  }, { additionalProperties: false }),
15
15
  result: Type.Null(),
16
16
  }),
@@ -7,7 +7,7 @@ export const createAnswerMethod = (
7
7
  ensureSession: (runId: string) => void,
8
8
  ): MethodContribution => implement(askContracts.answer, ({ runId, actionId, answer, dismiss }) => {
9
9
  if (dismiss !== true && (typeof answer !== "string" || answer.trim() === "")) {
10
- throw new DomainError("answer-missing", "answer ist erforderlich, wenn nicht verworfen wird", 400);
10
+ throw new DomainError("answer-missing", "answer is required unless the question is dismissed", 400);
11
11
  }
12
12
  ensureSession(runId);
13
13
  service.answer(runId, actionId, { ...(answer !== undefined ? { answer } : {}), ...(dismiss !== undefined ? { dismiss } : {}) });
@@ -35,7 +35,7 @@ export class RuntimeAskService implements AskService {
35
35
  readonly #aborting = new Set<string>();
36
36
 
37
37
  bind(runtime: Orchestration): void {
38
- if (this.#runtime) throw new Error("Der Ask-Service wurde bereits an eine Runtime gebunden");
38
+ if (this.#runtime) throw new Error("The ask service is already bound to a runtime");
39
39
  this.#runtime = runtime;
40
40
  runtime.subscribe((events) => this.#onJournal(events));
41
41
  }
@@ -53,7 +53,7 @@ export class RuntimeAskService implements AskService {
53
53
  title: request.question,
54
54
  description: request.description,
55
55
  parameters: request.parameters,
56
- input: { label: "Antwort", placeholder: null, required: true },
56
+ input: { label: "Answer", placeholder: null, required: true },
57
57
  payload: {
58
58
  question: request.question,
59
59
  options: [...request.options],
@@ -64,7 +64,7 @@ export class RuntimeAskService implements AskService {
64
64
  const proposed = runtime.events(call.runId).find((event) =>
65
65
  event.type === "action.proposed" && event.commandId === call.commandId);
66
66
  if (proposed?.type !== "action.proposed") {
67
- throw new Error(`Die Frage von ${call.agentId} wurde nicht im Journal von ${call.runId} angelegt`);
67
+ throw new Error(`The question from ${call.agentId} was not created in the journal of ${call.runId}`);
68
68
  }
69
69
  return this.#awaitAnswer(call.runId, proposed.payload.actionId, call.turnId ? call.agentId : null, signal);
70
70
  }
@@ -74,7 +74,7 @@ export class RuntimeAskService implements AskService {
74
74
  const state = runtime.state(runId);
75
75
  const action = state.actions.get(actionId);
76
76
  if (!action || action.owner !== ASK_PLUGIN_ID) {
77
- throw new DomainError("question-not-found", `Frage ${actionId} existiert nicht in Run ${runId}.`, 404);
77
+ throw new DomainError("question-not-found", `Question ${actionId} does not exist in run ${runId}.`, 404);
78
78
  }
79
79
  runtime.resolveAction(
80
80
  { actorId: state.ownerId, commandId: `ask-answer:${actionId}:${randomUUID()}` },
@@ -120,7 +120,7 @@ export class RuntimeAskService implements AskService {
120
120
  #awaitAnswer(runId: string, actionId: string, blockedActorId: string | null, signal: AbortSignal | undefined): Promise<string> {
121
121
  const runtime = this.#requireRuntime();
122
122
  const action = runtime.state(runId).actions.get(actionId);
123
- if (!action) throw new Error(`Frage ${actionId} existiert nicht in Run ${runId}`);
123
+ if (!action) throw new Error(`Question ${actionId} does not exist in run ${runId}`);
124
124
  const settled = resolvedAnswerOf(action);
125
125
  if (settled !== null) return Promise.resolve(settled);
126
126
  return new Promise<string>((resolve, reject) => {
@@ -138,7 +138,7 @@ export class RuntimeAskService implements AskService {
138
138
  { decision: "dismissed", result: null },
139
139
  );
140
140
  }
141
- reject(new Error("Das Warten auf die Antwort wurde abgebrochen."));
141
+ reject(new Error("Waiting for the answer was cancelled."));
142
142
  } catch (error) {
143
143
  reject(error);
144
144
  } finally {
@@ -201,16 +201,16 @@ export class RuntimeAskService implements AskService {
201
201
  runId,
202
202
  {
203
203
  actorId: recipientId,
204
- content: `Antwort auf ${recipientId === action.askedBy ? "deine Frage" : "die Frage"}: ${action.title}\nAntwort: ${answer}`,
204
+ content: `Answer to ${recipientId === action.askedBy ? "your question" : "the question"}: ${action.title}\nAnswer: ${answer}`,
205
205
  },
206
206
  );
207
207
  } catch (error) {
208
- console.error(`Antwort auf Frage ${actionId} konnte nicht als Input eingereiht werden: ${error instanceof Error ? error.message : String(error)}`);
208
+ console.error(`Answer to question ${actionId} could not be enqueued as input: ${error instanceof Error ? error.message : String(error)}`);
209
209
  }
210
210
  }
211
211
 
212
212
  #requireRuntime(): Orchestration {
213
- if (!this.#runtime) throw new Error("Der Ask-Service ist noch nicht an die Runtime gebunden");
213
+ if (!this.#runtime) throw new Error("The ask service is not bound to the runtime yet");
214
214
  return this.#runtime;
215
215
  }
216
216
  }