@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
@@ -10,22 +10,22 @@ export const COMMAND_OPERATIONS = {
10
10
  run: "commands.run",
11
11
  } as const;
12
12
 
13
- /** Die größte Ausgabe je Datenstrom, die ein Aufruf zurückgibt; was darüber hinausgeht, verwirft er und meldet die Kürzung. */
13
+ /** The largest output per stream that a call returns; whatever goes beyond it is discarded and the truncation is reported. */
14
14
  export const COMMAND_OUTPUT_LIMIT = 2 * 1024 * 1024;
15
15
 
16
16
  export interface CommandRunInput {
17
- /** Ein Name aus dem PATH des Executors oder der Pfad eines Programms; es läuft ohne Shell. */
17
+ /** A name from the PATH of the executor or the path of a program; it runs without a shell. */
18
18
  program: string;
19
19
  args?: readonly string[];
20
- /** Der Arbeitsordner relativ zur Wurzel des Runs; ohne Angabe die Wurzel selbst. */
20
+ /** The working folder relative to the root of the run; without a value the root itself. */
21
21
  cwd?: string;
22
22
  timeoutMs: number;
23
- /** Höchstens so viele Bytes je Datenstrom; ohne Angabe `COMMAND_OUTPUT_LIMIT`. */
23
+ /** At most this many bytes per stream; without a value `COMMAND_OUTPUT_LIMIT`. */
24
24
  maxOutputBytes?: number;
25
25
  }
26
26
 
27
27
  export interface CommandResult {
28
- /** `null`, wenn der Prozess durch ein Signal endete. */
28
+ /** `null` if the process ended through a signal. */
29
29
  exitCode: number | null;
30
30
  stdout: string;
31
31
  stderr: string;
@@ -53,20 +53,20 @@ const textWithoutNul = (value: unknown): value is string => typeof value === "st
53
53
  const checkedCommand = (input: unknown, platform: NodeJS.Platform): CheckedCommand => {
54
54
  const value = (input ?? {}) as Partial<Record<keyof CommandRunInput, unknown>>;
55
55
  const { program, args = [], cwd = "", timeoutMs, maxOutputBytes = COMMAND_OUTPUT_LIMIT } = value;
56
- if (!textWithoutNul(program) || program === "") throw invalid("Der Befehl braucht ein Programm als Text");
57
- if (platform === "win32" && /\.(cmd|bat)$/i.test(program)) throw invalid(`${program} braucht unter Windows eine Shell; ein Befehl läuft ohne`);
58
- if (!Array.isArray(args) || !args.every(textWithoutNul)) throw invalid("Die Argumente müssen Texte ohne Nullzeichen sein");
59
- if (typeof cwd !== "string") throw invalid("Der Arbeitsordner muss ein Text sein");
56
+ if (!textWithoutNul(program) || program === "") throw invalid("The command needs a program as text");
57
+ if (platform === "win32" && /\.(cmd|bat)$/i.test(program)) throw invalid(`${program} needs a shell on Windows; a command runs without one`);
58
+ if (!Array.isArray(args) || !args.every(textWithoutNul)) throw invalid("The arguments must be texts without null characters");
59
+ if (typeof cwd !== "string") throw invalid("The working folder must be a text");
60
60
  if (typeof timeoutMs !== "number" || !Number.isSafeInteger(timeoutMs) || timeoutMs < 1) {
61
- throw invalid("Die Zeitgrenze muss eine positive ganze Zahl in Millisekunden sein");
61
+ throw invalid("The timeout must be a positive integer in milliseconds");
62
62
  }
63
63
  if (typeof maxOutputBytes !== "number" || !Number.isSafeInteger(maxOutputBytes) || maxOutputBytes < 0 || maxOutputBytes > COMMAND_OUTPUT_LIMIT) {
64
- throw invalid(`Die Ausgabegrenze liegt zwischen 0 und ${COMMAND_OUTPUT_LIMIT} Bytes`);
64
+ throw invalid(`The output limit is between 0 and ${COMMAND_OUTPUT_LIMIT} bytes`);
65
65
  }
66
66
  return { program, args, cwd, timeoutMs, maxOutputBytes };
67
67
  };
68
68
 
69
- /** Sammelt einen Datenstrom bis zur Grenze; der Rest wird verworfen, der Prozess läuft weiter. */
69
+ /** Collects a stream up to the limit; the rest is discarded, the process keeps running. */
70
70
  const boundedOutput = (limit: number) => {
71
71
  const chunks: Buffer[] = [];
72
72
  let size = 0;
@@ -86,8 +86,8 @@ const boundedOutput = (limit: number) => {
86
86
 
87
87
  const unavailable = (program: string, error: unknown): WorkspaceOperationError | undefined => {
88
88
  const code = (error as NodeJS.ErrnoException).code;
89
- if (code === "ENOENT") return new WorkspaceOperationError("command-unavailable", `Das Programm ${program} gibt es auf diesem Rechner nicht`, 409);
90
- if (code === "EACCES") return new WorkspaceOperationError("command-unavailable", `Das Programm ${program} ist auf diesem Rechner nicht ausführbar`, 409);
89
+ if (code === "ENOENT") return new WorkspaceOperationError("command-unavailable", `The program ${program} does not exist on this machine`, 409);
90
+ if (code === "EACCES") return new WorkspaceOperationError("command-unavailable", `The program ${program} is not executable on this machine`, 409);
91
91
  return undefined;
92
92
  };
93
93
 
@@ -113,7 +113,7 @@ const runCommand = async (context: WorkspaceProcessContext, command: CheckedComm
113
113
  throw unavailable(command.program, error) ?? error;
114
114
  });
115
115
  if (result.timedOut) {
116
- throw new WorkspaceOperationError("command-timeout", `${command.program} hat die Zeitgrenze von ${command.timeoutMs} ms überschritten`, 504);
116
+ throw new WorkspaceOperationError("command-timeout", `${command.program} exceeded the timeout of ${command.timeoutMs} ms`, 504);
117
117
  }
118
118
  return {
119
119
  exitCode: result.code,
@@ -124,17 +124,17 @@ const runCommand = async (context: WorkspaceProcessContext, command: CheckedComm
124
124
  };
125
125
  };
126
126
 
127
- /** Ein Befehl läuft in der Wurzel des Runs, ein Alias gilt dort nicht; seine Zeitgrenze verlängert, wie lange ein entfernter Executor auf ihn warten darf. */
127
+ /** A command runs in the root of the run, an alias does not apply there; its timeout extends how long a remote executor may wait for it. */
128
128
  const commandFootprint = (input: unknown): OperationFootprint => {
129
129
  const timeoutMs = typeof input === "object" && input !== null ? (input as { timeoutMs?: unknown }).timeoutMs : undefined;
130
130
  return { roots: { aliases: [], runRoot: true }, ...(typeof timeoutMs === "number" && timeoutMs > 0 ? { durationMs: timeoutMs } : {}) };
131
131
  };
132
132
 
133
- /** Befehle im Arbeitsbereich des Runs: ein Programm mit Argumenten, ohne Shell, in einem Ordner unter der Wurzel, mit der Umgebung dieses Executors. */
133
+ /** Commands in the workspace of the run: a program with arguments, without a shell, in a folder under the root, with the environment of this executor. */
134
134
  export const commandModule = (platform: NodeJS.Platform = process.platform): WorkspaceModuleFactory => (host) => {
135
135
  const running = new Map<string, Set<RunningCommand>>();
136
136
  const stopAll = async (commands: readonly RunningCommand[]): Promise<void> => {
137
- for (const command of commands) command.controller.abort(new Error("Der Befehl wurde mit seinem Run beendet"));
137
+ for (const command of commands) command.controller.abort(new Error("The command was ended with its run"));
138
138
  await Promise.allSettled(commands.map((command) => command.finished));
139
139
  };
140
140
  const run: WorkspaceOperation = async ({ runId, input, signal }) => {
@@ -5,15 +5,15 @@ import { inheritedProcessEnvironment, safeProcessEnvironment } from "./safe-envi
5
5
  import type { SessionIdent } from "./session-ident.js";
6
6
  import type { ResolvedWorkspaceRoot } from "./paths.js";
7
7
 
8
- /** Was ein Executor über einen Run weiß: seine Ordner, seine Umgebung und seine Kennung. */
8
+ /** What an executor knows about a run: its folders, its environment and its id. */
9
9
  export interface WorkspaceProcessContext {
10
10
  runId: string;
11
11
  cwd: string;
12
12
  root: string;
13
13
  home: string;
14
- /** Wohin ein Sprachserver Protokolle und Zwischenstände legen darf; nie das Home eines Entwicklers. */
14
+ /** Where a language server may put logs and intermediate state; never the home of a developer. */
15
15
  logDirectory: string;
16
- /** Die Wurzel des Hosts auf dieser Maschine, aus der ein Adapter seinen Sprachserver auflöst; ohne Host bleibt sie offen. */
16
+ /** The root of the host on this machine from which an adapter resolves its language server; without a host it stays open. */
17
17
  hostRoot: string | undefined;
18
18
  env: NodeJS.ProcessEnv;
19
19
  uid?: number;
@@ -23,11 +23,11 @@ export interface WorkspaceProcessContext {
23
23
  workspaceAliases?: Readonly<Record<string, string>>;
24
24
  pathVariables?: Readonly<Record<string, string>>;
25
25
  runOperation?: <T>(operation: () => Promise<T>) => Promise<T>;
26
- /** Die Prozess-Sandbox dieses Runs; fehlt sie, starten Prozesse ohne. */
26
+ /** The process sandbox of this run; if it is missing, processes start without one. */
27
27
  sandbox?: ProcessSandbox;
28
- /** Die Bash, mit der das Werkzeug bash startet; unter Windows Pflicht, sonst gilt ohne Angabe die des Systems. */
28
+ /** The bash the bash tool starts with; required on Windows, otherwise the system's one applies without a value. */
29
29
  bash?: string;
30
- /** Das rg, dessen Ordner das Werkzeug bash vorn im PATH hat; ohne Angabe gilt eines im PATH, falls es eines gibt. */
30
+ /** The rg whose folder the bash tool has at the front of PATH; without a value one in PATH applies, if there is one. */
31
31
  rg?: string;
32
32
  }
33
33
 
@@ -36,11 +36,11 @@ export interface SandboxHomeEnvironment {
36
36
  nugetPackages?: string;
37
37
  }
38
38
 
39
- /** Woraus die Umgebung eines Prozesses entsteht: "safe" nimmt nur die sichere Auswahl (Server), "inherited" alles außer Editor-Variablen und Bash-Startdateien (eigener Rechner). */
39
+ /** What the environment of a process is built from: "safe" takes only the safe selection (server), "inherited" everything except editor variables and bash startup files (own machine). */
40
40
  export type BaseEnvironment = "safe" | "inherited";
41
41
 
42
42
  export interface SandboxEnvironmentOptions {
43
- /** Ohne Angabe "safe": wer nichts wählt, gibt nur die sichere Auswahl weiter. */
43
+ /** Defaults to "safe": whoever chooses nothing passes on only the safe selection. */
44
44
  base?: BaseEnvironment;
45
45
  home: SandboxHomeEnvironment;
46
46
  ident?: { name: string };
@@ -48,7 +48,7 @@ export interface SandboxEnvironmentOptions {
48
48
  additions?: Readonly<Record<string, string>>;
49
49
  }
50
50
 
51
- /** Die Git-Regeln, die in jeder Sandbox gelten, gleich auf welchem Rechner sie läuft. */
51
+ /** The Git rules that apply in every sandbox, no matter which machine it runs on. */
52
52
  export const SANDBOX_GIT_CONFIG: GitConfigPairs = [
53
53
  ["branch.autoSetupMerge", "false"],
54
54
  ["core.hooksPath", "/dev/null"],
@@ -58,7 +58,7 @@ export const SANDBOX_GIT_CONFIG: GitConfigPairs = [
58
58
  const onlyStrings = (env: NodeJS.ProcessEnv): Record<string, string> =>
59
59
  Object.fromEntries(Object.entries(env).filter((entry): entry is [string, string] => typeof entry[1] === "string"));
60
60
 
61
- /** Was der Server je Run zur Umgebung beiträgt: Run-Marker, Git-Regeln und die Zusätze seines Arbeitsbereichs. */
61
+ /** What the server contributes to the environment per run: run marker, Git rules and the additions of its workspace. */
62
62
  export const sandboxRunEnvironment = (runId: string, workspace: {
63
63
  gitConfig?: GitConfigPairs;
64
64
  extraEnv?: NodeJS.ProcessEnv;
@@ -71,11 +71,11 @@ export const sandboxRunEnvironment = (runId: string, workspace: {
71
71
  ...workspace.gitEnv,
72
72
  });
73
73
 
74
- /** Ohne eigenes Konto läuft der Prozess unter dem Benutzer dieser Maschine und trägt dessen Namen. */
74
+ /** Without its own account the process runs as the user of this machine and carries that user's name. */
75
75
  const accountEnvironment = (source: NodeJS.ProcessEnv, ident: { name: string } | undefined): Record<string, string> =>
76
76
  ident ? { USER: ident.name, LOGNAME: ident.name } : onlyStrings({ USER: source.USER, LOGNAME: source.LOGNAME });
77
77
 
78
- /** Die Umgebung eines Sandbox-Prozesses: die gewählte Grundlage dieser Maschine plus die Beiträge des Runs. */
78
+ /** The environment of a sandbox process: the chosen base of this machine plus the contributions of the run. */
79
79
  export const sandboxEnvironment = (
80
80
  source: NodeJS.ProcessEnv,
81
81
  { base = "safe", home, ident, pathVariables, additions }: SandboxEnvironmentOptions,
@@ -117,15 +117,15 @@ const namedEntries = (
117
117
  return name ? [[name, root.directory]] : [];
118
118
  }));
119
119
 
120
- /** Ein Alias nennt genau einen Ordner und liegt nicht unter einem anderen, sonst wäre offen, welche Wurzel ein Pfad meint. */
120
+ /** An alias names exactly one folder and does not lie under another, otherwise it would be open which root a path means. */
121
121
  const assertDistinctAliases = (roots: readonly ResolvedWorkspaceRoot[]): void => {
122
122
  const aliases = roots.flatMap((root) => root.alias === undefined ? [] : [root.alias]);
123
123
  const clash = aliases.find((alias, index) => aliases.some((other, position) =>
124
124
  position !== index && (other === alias || other.startsWith(`${alias}/`))));
125
- if (clash !== undefined) throw new Error(`Der Arbeitsverzeichnis-Alias ${clash} nennt mehr als eine Wurzel`);
125
+ if (clash !== undefined) throw new Error(`The working directory alias ${clash} names more than one root`);
126
126
  };
127
127
 
128
- /** Baut den Kontext eines Runs aus den Ordnern dieser Maschine; jeder Executor ruft dieselbe Funktion. */
128
+ /** Builds the context of a run from the folders of this machine; every executor calls the same function. */
129
129
  export const workspaceProcessContext = (options: WorkspaceContextOptions): WorkspaceProcessContext => {
130
130
  const additionalRoots = options.additionalRoots ?? [];
131
131
  const readOnlyRoots = options.readOnlyRoots ?? [];
@@ -11,48 +11,48 @@ import type { WorkspaceModuleFactory } from "./module.js";
11
11
  import { RUN_MARKER_ENV } from "./run-marker.js";
12
12
  import { safeProcessEnvironment } from "./safe-environment.js";
13
13
 
14
- /** Wo ein Bundle seinen Beitrag zum Executor trägt: eine in sich geschlossene Datei, die jeder Node-Prozess ohne Host-Auflösung lädt. */
14
+ /** Where a bundle carries its contribution to the executor: a self-contained file that every Node process loads without host resolution. */
15
15
  export const EXECUTOR_CONTRIBUTION_FILE = "executor/index.mjs";
16
16
 
17
- /** Was der Executor einer Maschine einem Beitrag über sie sagt; ein Beitrag importiert vom Host nur Typen, alles andere kommt hierüber. */
17
+ /** What the executor of a machine tells a contribution about it; a contribution imports only types from the host, everything else comes through here. */
18
18
  export interface WorkspaceExecutorMachine {
19
- /** Der Werkzeugordner des Plugins auf dieser Maschine, wohin seine Provisionierung lädt. */
19
+ /** The tools folder of the plugin on this machine, where its provisioning downloads to. */
20
20
  readonly toolsDirectory: string;
21
- /** Eine Datei aus einem Paket in den node_modules des Hosts dieser Maschine; ohne Host oder Paket scheitert der Aufruf mit Ursache. */
21
+ /** A file from a package in the node_modules of the host of this machine; without a host or package the call fails with a cause. */
22
22
  readonly hostPackageFile: (hostRoot: string | undefined, specifier: string) => string;
23
- /** Eine Datei mit einer der Endungen im Arbeitsbereich, aufgelöst und geprüft. */
23
+ /** A file with one of the extensions in the workspace, resolved and checked. */
24
24
  readonly resolveRootFile: (workspaceRoot: string, requested: string, extensions: readonly string[]) => Promise<string>;
25
- /** Ein Ordner im Arbeitsbereich, aufgelöst und geprüft. */
25
+ /** A folder in the workspace, resolved and checked. */
26
26
  readonly resolveRootDirectory: (workspaceRoot: string, requested: string) => Promise<string>;
27
- /** Ein fachlicher Fehler einer Operation mit Kennung und Status; beim Aufrufer kommt er als derselbe Fehler an wie einer des Executors. */
27
+ /** A domain error of an operation with code and status; it reaches the caller as the same error as one of the executor. */
28
28
  readonly operationError: (code: string, message: string, status: number) => Error;
29
- /** Die Umgebung eines Prozesses, den ein Beitrag selbst startet: die sichere Auswahl dieser Maschine, ihr HOME und der Marker des Runs für die Prozessanzeige. */
29
+ /** The environment of a process that a contribution starts itself: the safe selection of this machine, its HOME and the marker of the run for the process view. */
30
30
  readonly processEnvironment: (runId: string) => NodeJS.ProcessEnv;
31
31
  }
32
32
 
33
- /** Was ein Beitrag dem Executor einer Maschine hinzufügt. */
33
+ /** What a contribution adds to the executor of a machine. */
34
34
  export interface WorkspaceExecutorParts {
35
35
  readonly languageServers?: readonly LanguageServerAdapter[];
36
- /** Module mit eigenen Operationen; jede Operation gehört genau einem Modul. */
36
+ /** Modules with their own operations; every operation belongs to exactly one module. */
37
37
  readonly modules?: readonly WorkspaceModuleFactory[];
38
38
  }
39
39
 
40
- /** Was ein Plugin-Bundle als `executor` exportiert; es läuft in jedem Executor, im Server wie auf jedem Arbeitsplatz, und berührt beim Bauen weder Platte noch Netz. */
40
+ /** What a plugin bundle exports as `executor`; it runs in every executor, in the server as on every workspace, and touches neither disk nor network while building. */
41
41
  export type WorkspaceExecutorContribution = (machine: WorkspaceExecutorMachine) => WorkspaceExecutorParts;
42
42
 
43
- /** Wessen Beitrag in welchem Stand; Server und Arbeitsplatz verlangen dieselben. */
44
- export interface ExecutorContributionStand {
43
+ /** Whose contribution in which version; server and workspace require the same ones. */
44
+ export interface ExecutorContributionRevision {
45
45
  readonly plugin: string;
46
- /** SHA-256 der Datei des Beitrags. */
47
- readonly stand: string;
46
+ /** SHA-256 of the file of the contribution. */
47
+ readonly revision: string;
48
48
  }
49
49
 
50
- export interface LoadedExecutorContribution extends ExecutorContributionStand {
50
+ export interface LoadedExecutorContribution extends ExecutorContributionRevision {
51
51
  readonly contribution: WorkspaceExecutorContribution;
52
52
  }
53
53
 
54
- /** Ein Beitrag, gebaut für diese Maschine. */
55
- export interface PreparedExecutorContribution extends ExecutorContributionStand {
54
+ /** A contribution built for this machine. */
55
+ export interface PreparedExecutorContribution extends ExecutorContributionRevision {
56
56
  readonly parts: WorkspaceExecutorParts;
57
57
  }
58
58
 
@@ -61,19 +61,19 @@ const PART_KEYS = new Set(["languageServers", "modules"]);
61
61
 
62
62
  const messageOf = (cause: unknown): string => cause instanceof Error ? cause.message : String(cause);
63
63
 
64
- /** Der Paketname eines Bezeichners wie acme-server/lib/cli.mjs oder @scope/name/datei. */
64
+ /** The package name of a specifier like acme-server/lib/cli.mjs or @scope/name/file. */
65
65
  const packageOf = (specifier: string): string =>
66
66
  specifier.split("/").slice(0, specifier.startsWith("@") ? 2 : 1).join("/");
67
67
 
68
68
  const hostPackageFile = (hostRoot: string | undefined, specifier: string): string => {
69
69
  if (!hostRoot) {
70
- throw new Error(`Auf diesem Rechner ist kein Host bekannt, aus dem sich ${packageOf(specifier)} auflösen ließe. Ein Arbeitsplatz `
71
- + "bekommt ihn mit der ersten Verbindung zu einem verteilenden Server oder über die Einstellung ragents.hostPath");
70
+ throw new Error(`No host is known on this machine from which ${packageOf(specifier)} could be resolved. A workspace `
71
+ + "gets it with the first connection to a distributing server or through the setting ragents.hostPath");
72
72
  }
73
73
  try {
74
74
  return createRequire(path.join(hostRoot, "package.json")).resolve(specifier);
75
75
  } catch (cause) {
76
- throw new Error(`${packageOf(specifier)} liegt nicht im Host ${hostRoot}: ${messageOf(cause)}`);
76
+ throw new Error(`${packageOf(specifier)} is not in the host ${hostRoot}: ${messageOf(cause)}`);
77
77
  }
78
78
  };
79
79
 
@@ -86,24 +86,24 @@ export const executorMachine = (toolsDirectory: string): WorkspaceExecutorMachin
86
86
  processEnvironment: (runId) => ({ ...safeProcessEnvironment(process.env), HOME: homedir(), [RUN_MARKER_ENV]: runId }),
87
87
  });
88
88
 
89
- /** Lädt die Datei eines Beitrags, mit `expected` nur in diesem Stand; der Stand steht in ihrer Adresse, damit ein neu gebauter Beitrag nie aus dem Modulcache kommt. */
89
+ /** Loads the file of a contribution, with `expected` only in that version; the version is part of its address so that a newly built contribution never comes from the module cache. */
90
90
  export const loadExecutorContribution = async (plugin: string, file: string, expected?: string): Promise<LoadedExecutorContribution> => {
91
91
  const content = await readFile(file).catch((cause: unknown) => {
92
- throw new Error(`Der Executor-Beitrag von ${plugin} fehlt unter ${file}: ${messageOf(cause)}`);
92
+ throw new Error(`The executor contribution of ${plugin} is missing at ${file}: ${messageOf(cause)}`);
93
93
  });
94
- const stand = createHash("sha256").update(content).digest("hex");
95
- if (expected !== undefined && stand !== expected) {
96
- throw new Error(`Der Executor-Beitrag von ${plugin} unter ${file} hat den Stand ${stand.slice(0, 12)}, verlangt ist ${expected.slice(0, 12)}`);
94
+ const revision = createHash("sha256").update(content).digest("hex");
95
+ if (expected !== undefined && revision !== expected) {
96
+ throw new Error(`The executor contribution of ${plugin} at ${file} has the version ${revision.slice(0, 12)}, required is ${expected.slice(0, 12)}`);
97
97
  }
98
- const exported = await import(`${pathToFileURL(file).href}?stand=${stand}`).catch((cause: unknown) => {
99
- throw new Error(`Der Executor-Beitrag von ${plugin} (${file}) lädt nicht: ${messageOf(cause)}`, { cause });
98
+ const exported = await import(`${pathToFileURL(file).href}?revision=${revision}`).catch((cause: unknown) => {
99
+ throw new Error(`The executor contribution of ${plugin} (${file}) does not load: ${messageOf(cause)}`, { cause });
100
100
  }) as Readonly<Record<string, unknown>>;
101
101
  const contribution = exported.executor;
102
102
  if (typeof contribution !== "function") {
103
- throw new Error(`Das Bundle ${plugin} exportiert in ${file} keinen gültigen Executor-Beitrag; erwartet wird `
104
- + "\"export const executor: WorkspaceExecutorContribution\" als Funktion der Maschine");
103
+ throw new Error(`The bundle ${plugin} exports no valid executor contribution in ${file}; expected is `
104
+ + "\"export const executor: WorkspaceExecutorContribution\" as a function of the machine");
105
105
  }
106
- return { plugin, stand, contribution: contribution as WorkspaceExecutorContribution };
106
+ return { plugin, revision, contribution: contribution as WorkspaceExecutorContribution };
107
107
  };
108
108
 
109
109
  const isRecord = (value: unknown): value is Readonly<Record<string, unknown>> =>
@@ -112,9 +112,9 @@ const isRecord = (value: unknown): value is Readonly<Record<string, unknown>> =>
112
112
  const isStringList = (value: unknown): value is readonly string[] =>
113
113
  Array.isArray(value) && value.every((entry) => typeof entry === "string");
114
114
 
115
- /** Was an einem Sprachserver fehlt oder die falsche Form hat; leer, wenn er taugt. */
115
+ /** What is missing from a language server or has the wrong shape; empty if it is usable. */
116
116
  const adapterProblems = (value: Readonly<Record<string, unknown>>): readonly string[] => [
117
- ...typeof value.id === "string" && LANGUAGE_SERVER_ID.test(value.id) ? [] : ["id aus Kleinbuchstaben und Ziffern"],
117
+ ...typeof value.id === "string" && LANGUAGE_SERVER_ID.test(value.id) ? [] : ["id of lowercase letters and digits"],
118
118
  ...typeof value.label === "string" ? [] : ["label"],
119
119
  ...isRecord(value.languages) && Object.values(value.languages).every((entry) => typeof entry === "string") ? [] : ["languages"],
120
120
  ...typeof value.rootDescription === "string" ? [] : ["rootDescription"],
@@ -122,29 +122,29 @@ const adapterProblems = (value: Readonly<Record<string, unknown>>): readonly str
122
122
  ...(["resolveRoot", "rootDirectory", "launch", "open"] as const).filter((name) => typeof value[name] !== "function"),
123
123
  ];
124
124
 
125
- /** Baut einen geladenen Beitrag für diese Maschine und prüft, was er liefert; eine falsche Form ist ein Fehler mit Ursache. */
125
+ /** Builds a loaded contribution for this machine and checks what it returns; a wrong shape is an error with a cause. */
126
126
  export const prepareExecutorContribution = (loaded: LoadedExecutorContribution, toolsDirectory: string): PreparedExecutorContribution => {
127
- const invalid = (detail: string): Error => new Error(`Der Executor-Beitrag von ${loaded.plugin} ist ungültig: ${detail}`);
127
+ const invalid = (detail: string): Error => new Error(`The executor contribution of ${loaded.plugin} is invalid: ${detail}`);
128
128
  const parts = ((): unknown => {
129
129
  try {
130
130
  return loaded.contribution(executorMachine(toolsDirectory));
131
131
  } catch (cause) {
132
- throw invalid(`die Funktion wirft: ${messageOf(cause)}`);
132
+ throw invalid(`the function throws: ${messageOf(cause)}`);
133
133
  }
134
134
  })();
135
- if (!isRecord(parts)) throw invalid("die Funktion liefert kein Objekt");
135
+ if (!isRecord(parts)) throw invalid("the function returns no object");
136
136
  const unknown = Object.keys(parts).filter((key) => !PART_KEYS.has(key));
137
- if (unknown.length > 0) throw invalid(`unbekannte Teile ${unknown.join(", ")}; erlaubt sind ${[...PART_KEYS].join(", ")}`);
137
+ if (unknown.length > 0) throw invalid(`unknown parts ${unknown.join(", ")}; allowed are ${[...PART_KEYS].join(", ")}`);
138
138
  const modules = parts.modules;
139
139
  if (modules !== undefined && (!Array.isArray(modules) || !modules.every((module) => typeof module === "function"))) {
140
- throw invalid("modules ist keine Liste von Modulfabriken");
140
+ throw invalid("modules is not a list of module factories");
141
141
  }
142
142
  const servers = parts.languageServers;
143
- if (servers !== undefined && !Array.isArray(servers)) throw invalid("languageServers ist keine Liste");
143
+ if (servers !== undefined && !Array.isArray(servers)) throw invalid("languageServers is not a list");
144
144
  for (const [index, server] of (servers ?? []).entries()) {
145
- if (!isRecord(server)) throw invalid(`der Sprachserver ${index + 1} ist kein Objekt`);
145
+ if (!isRecord(server)) throw invalid(`the language server ${index + 1} is not an object`);
146
146
  const problems = adapterProblems(server);
147
- if (problems.length > 0) throw invalid(`der Sprachserver ${index + 1} braucht ${problems.join(", ")}`);
147
+ if (problems.length > 0) throw invalid(`the language server ${index + 1} needs ${problems.join(", ")}`);
148
148
  }
149
- return { plugin: loaded.plugin, stand: loaded.stand, parts: parts as WorkspaceExecutorParts };
149
+ return { plugin: loaded.plugin, revision: loaded.revision, parts: parts as WorkspaceExecutorParts };
150
150
  };
@@ -1,4 +1,4 @@
1
- /** Ein fachlicher Fehler einer Operation mit Kennung und Status; der Aufrufer macht daraus seinen eigenen Fehlertyp. */
1
+ /** A domain error of an operation with code and status; the caller turns it into its own error type. */
2
2
  export class WorkspaceOperationError extends Error {
3
3
  readonly code: string;
4
4
  readonly status: number;
@@ -3,29 +3,29 @@ import { WorkspaceOperationError } from "./errors.js";
3
3
  import type { WorkspaceExecutorModule, WorkspaceModuleFactory, WorkspaceOperation } from "./module.js";
4
4
  import { NO_ROOTS, type OperationFootprint } from "./paths.js";
5
5
 
6
- /** Der Stand des Executors; Server und Arbeitsplatz müssen denselben tragen. */
7
- export const WORKSPACE_EXECUTOR_VERSION = "7";
6
+ /** The version of the executor; server and workspace must carry the same one. */
7
+ export const WORKSPACE_EXECUTOR_VERSION = "8";
8
8
 
9
9
  export interface WorkspaceExecuteOptions {
10
10
  toolCallId?: string;
11
11
  signal?: AbortSignal;
12
- /** Nimmt den Fortschritt der Operation als JSON-Wert entgegen. */
12
+ /** Receives the progress of the operation as a JSON value. */
13
13
  onProgress?: (value: unknown) => void;
14
- /** Wie lange die Operation selbst laufen darf; ein entfernter Executor wartet so lange zusätzlich zu seiner Sicherheitsgrenze. */
14
+ /** How long the operation itself may run; a remote executor waits this long in addition to its safety margin. */
15
15
  durationMs?: number;
16
- /** Die Operation läuft bis zum Abbruch über `signal`, etwa eine Beobachtung; keine Zeitgrenze greift. */
16
+ /** The operation runs until it is aborted through `signal`, such as a watch; no timeout applies. */
17
17
  untilAborted?: boolean;
18
- /** Nur ausführen, wenn der Executor erreichbar ist und rechtzeitig antwortet; sonst ist das Ergebnis `null`. Für Aufräumen, das `stopRun` nachholt. */
18
+ /** Execute only if the executor is reachable and answers in time; otherwise the result is `null`. For cleanup that `stopRun` catches up on. */
19
19
  whenReachable?: boolean;
20
20
  }
21
21
 
22
- /** Führt die Operationen eines Runs auf einer Maschine aus; kennt weder Engine noch Run-Vertrag noch Plugins. */
22
+ /** Executes the operations of a run on a machine; knows neither engine nor run contract nor plugins. */
23
23
  export interface WorkspaceExecutor {
24
24
  readonly version: string;
25
25
  execute: (runId: string, operation: string, input: unknown, options?: WorkspaceExecuteOptions) => Promise<unknown>;
26
- /** Gibt frei, was der Executor für den Run hält; ein entfernter Executor holt das nach, wenn er gerade nicht erreichbar ist. */
26
+ /** Releases what the executor holds for the run; a remote executor catches up on this if it is currently unreachable. */
27
27
  stopRun: (runId: string) => Promise<void>;
28
- /** Beendet den Executor endgültig; wer danach wieder einen braucht, baut einen neuen. */
28
+ /** Ends the executor for good; whoever needs one again afterwards builds a new one. */
29
29
  shutdown: () => Promise<void>;
30
30
  }
31
31
 
@@ -42,7 +42,7 @@ const settledAll = async (operations: readonly Promise<void>[]): Promise<void> =
42
42
  if (failed) throw failed.reason;
43
43
  };
44
44
 
45
- /** Ein Executor aus Modulen: jede Operation gehört genau einem Modul, der Executor selbst kennt keine. */
45
+ /** An executor made of modules: every operation belongs to exactly one module, the executor itself knows none. */
46
46
  export class WorkspaceOperationExecutor implements WorkspaceExecutor {
47
47
  readonly version = WORKSPACE_EXECUTOR_VERSION;
48
48
  readonly #modules: readonly WorkspaceExecutorModule[];
@@ -58,26 +58,26 @@ export class WorkspaceOperationExecutor implements WorkspaceExecutor {
58
58
  const operations = new Map<string, WorkspaceOperation>();
59
59
  for (const module of this.#modules) {
60
60
  for (const [name, operation] of Object.entries(module.operations)) {
61
- if (operations.has(name)) throw new Error(`Die Operation ${name} ist im Executor doppelt registriert`);
61
+ if (operations.has(name)) throw new Error(`The operation ${name} is registered twice in the executor`);
62
62
  operations.set(name, operation);
63
63
  }
64
64
  }
65
65
  this.#operations = operations;
66
66
  this.#footprints = new Map(this.#modules.flatMap((module) => Object.entries(module.footprints ?? {}).map(([name, footprint]) => {
67
- if (!Object.hasOwn(module.operations, name)) throw new Error(`Ein Modul erklärt einen Fußabdruck für ${name}, eine Operation, die es nicht hat`);
67
+ if (!Object.hasOwn(module.operations, name)) throw new Error(`A module declares a footprint for ${name}, an operation it does not have`);
68
68
  return [name, footprint] as const;
69
69
  })));
70
70
  }
71
71
 
72
- /** Der Fußabdruck einer Eingabe nach der Erklärung des Moduls, dem die Operation gehört; so weiß ein Aufrufer, auf welche Maschine sie gehört. */
72
+ /** The footprint of an input according to the declaration of the module the operation belongs to; this tells a caller which machine it belongs on. */
73
73
  footprintOf(operation: string, input: unknown): OperationFootprint {
74
74
  return this.#footprints.get(operation)?.(input) ?? { roots: NO_ROOTS };
75
75
  }
76
76
 
77
77
  async execute(runId: string, operation: string, input: unknown, options: WorkspaceExecuteOptions = {}): Promise<unknown> {
78
78
  const run = this.#operations.get(operation);
79
- if (!run) throw new WorkspaceOperationError("workspace-operation-unknown", `Der Executor kennt die Operation ${operation} nicht`, 400);
80
- if (options.untilAborted && !options.signal) throw new Error(`Die Operation ${operation} läuft bis zum Abbruch und braucht dafür ein Abbruchsignal`);
79
+ if (!run) throw new WorkspaceOperationError("workspace-operation-unknown", `The executor does not know the operation ${operation}`, 400);
80
+ if (options.untilAborted && !options.signal) throw new Error(`The operation ${operation} runs until it is aborted and needs an abort signal for that`);
81
81
  return run({ runId, input, toolCallId: options.toolCallId, signal: options.signal, progress: options.onProgress });
82
82
  }
83
83
 
@@ -91,7 +91,7 @@ export class WorkspaceOperationExecutor implements WorkspaceExecutor {
91
91
 
92
92
  async #annotate(runId: string, absolutePath: string): Promise<string | undefined> {
93
93
  const notes = await Promise.all(this.#modules.flatMap((module) => module.annotate
94
- ? [module.annotate(runId, absolutePath).catch((error: unknown) => `Anmerkung fehlgeschlagen: ${messageOf(error)}`)]
94
+ ? [module.annotate(runId, absolutePath).catch((error: unknown) => `Annotation failed: ${messageOf(error)}`)]
95
95
  : []));
96
96
  const text = notes.filter((note): note is string => Boolean(note)).join("\n");
97
97
  return text || undefined;