@schlenkr/ragents 0.1.10 → 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 (743) hide show
  1. package/apps/server/package.json +1 -1
  2. package/apps/server/src/access-projection.ts +4 -4
  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 +29 -29
  6. package/apps/server/src/api/core-methods.ts +17 -17
  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 +6 -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 +39 -39
  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 +61 -56
  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 +23 -23
  83. package/apps/server/src/ragents/global-chat.ts +8 -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 +48 -48
  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-BO4wLQtE.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 +53 -54
  110. package/apps/web/dist/help/guide-clients.md +50 -51
  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 +196 -144
  124. package/apps/web/dist/help/mini-app.css +6 -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 +23 -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 +26 -26
  182. package/apps/web/src/panel/connection-state.ts +9 -9
  183. package/apps/web/src/panel/contract.ts +28 -28
  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 +225 -225
  227. package/bundles/ragents.actor-programs/server/index.js.map +2 -2
  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 -2
  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-MBRPS477.js → chunk-IQBHK7MV.js} +2 -2
  240. package/bundles/ragents.ask/web/chunks/{chunk-MBRPS477.js.map → chunk-IQBHK7MV.js.map} +3 -3
  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 +2 -2
  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 +2 -2
  305. package/bundles/ragents.overseer/ragents-bundle.json +2 -2
  306. package/bundles/ragents.overseer/server/index.js +98 -98
  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 +81 -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/index.d.ts +1 -1
  417. package/packages/agent/dist/loop/agent-loop.d.ts +2 -2
  418. package/packages/agent/src/core/compaction/utils.ts +1 -1
  419. package/packages/agent/src/core/model-runtime.ts +45 -5
  420. package/packages/agent/src/index.ts +1 -1
  421. package/packages/agent/src/loop/agent-loop.ts +2 -2
  422. package/packages/ai/dist/models.d.ts +1 -0
  423. package/packages/ai/dist/models.generated.d.ts +4544 -983
  424. package/packages/ai/dist/providers/openrouter.models.d.ts +4544 -983
  425. package/packages/ai/src/api/ai-sdk.ts +33 -7
  426. package/packages/ai/src/api-registry.ts +1 -1
  427. package/packages/ai/src/index.ts +2 -2
  428. package/packages/ai/src/models.generated.ts +1 -1
  429. package/packages/ai/src/models.ts +1 -1
  430. package/packages/ai/src/providers/openrouter.models.ts +3723 -550
  431. package/packages/ragents/src/access.ts +12 -12
  432. package/packages/ragents/src/agents/actor-input.ts +33 -33
  433. package/packages/ragents/src/agents/catalog.ts +1 -1
  434. package/packages/ragents/src/agents/delivery.ts +17 -17
  435. package/packages/ragents/src/agents/plugins.ts +1 -1
  436. package/packages/ragents/src/agents/scheduler.ts +7 -7
  437. package/packages/ragents/src/agents/schemas.ts +1 -1
  438. package/packages/ragents/src/agents/tool-orientation.ts +4 -4
  439. package/packages/ragents/src/agents/tools.ts +20 -20
  440. package/packages/ragents/src/agents/toolset.ts +5 -5
  441. package/packages/ragents/src/agents/workspaces.ts +1 -1
  442. package/packages/ragents/src/domain/events.ts +1 -1
  443. package/packages/ragents/src/domain/model.ts +5 -5
  444. package/packages/ragents/src/drivers/agent-runtime.ts +1 -1
  445. package/packages/ragents/src/drivers/agent-turn.ts +4 -4
  446. package/packages/ragents/src/drivers/agent.ts +2 -2
  447. package/packages/ragents/src/drivers/attachments.ts +4 -4
  448. package/packages/ragents/src/http/contracts.ts +14 -14
  449. package/packages/ragents/src/http/methods.ts +6 -6
  450. package/packages/ragents/src/plugin-host.ts +119 -119
  451. package/packages/ragents/src/plugin-types.ts +16 -16
  452. package/packages/ragents/src/rpc/contract.ts +5 -5
  453. package/packages/ragents/src/rpc/contribution.ts +2 -2
  454. package/packages/ragents/src/rpc/peer.ts +11 -11
  455. package/packages/ragents/src/rpc/protocol.ts +2 -2
  456. package/packages/ragents/src/runtime/decisions/turns.ts +1 -1
  457. package/packages/ragents/src/runtime/journal.ts +10 -10
  458. package/packages/ragents/src/runtime/orchestration.ts +8 -8
  459. package/packages/ragents/src/runtime/stop.ts +2 -2
  460. package/packages/ragents/src/script/mediators.ts +35 -35
  461. package/packages/ragents/src/typescript/async-compiler.ts +14 -14
  462. package/packages/ragents/src/typescript/compiler-worker.ts +2 -2
  463. package/packages/ragents/src/typescript/compiler.ts +7 -7
  464. package/packages/ragents/src/typescript/snippet.ts +5 -5
  465. package/packages/workspace-executor/src/bash-launch.ts +13 -13
  466. package/packages/workspace-executor/src/commands.ts +18 -18
  467. package/packages/workspace-executor/src/context.ts +15 -15
  468. package/packages/workspace-executor/src/contributions.ts +35 -35
  469. package/packages/workspace-executor/src/errors.ts +1 -1
  470. package/packages/workspace-executor/src/executor.ts +15 -15
  471. package/packages/workspace-executor/src/files.ts +30 -30
  472. package/packages/workspace-executor/src/language-server/contract.ts +2 -2
  473. package/packages/workspace-executor/src/language-server/diagnostics.ts +4 -4
  474. package/packages/workspace-executor/src/language-server/host.ts +35 -35
  475. package/packages/workspace-executor/src/language-server/json-rpc.ts +4 -4
  476. package/packages/workspace-executor/src/language-server/module.ts +11 -11
  477. package/packages/workspace-executor/src/language-server/roots.ts +3 -3
  478. package/packages/workspace-executor/src/language-server/session.ts +15 -15
  479. package/packages/workspace-executor/src/language-server/workspace-solutions.ts +2 -2
  480. package/packages/workspace-executor/src/managed-process.ts +12 -12
  481. package/packages/workspace-executor/src/module.ts +8 -8
  482. package/packages/workspace-executor/src/modules.ts +3 -3
  483. package/packages/workspace-executor/src/paths.ts +11 -11
  484. package/packages/workspace-executor/src/process-sandbox.ts +3 -3
  485. package/packages/workspace-executor/src/processes/module.ts +3 -3
  486. package/packages/workspace-executor/src/processes/process-table.ts +20 -20
  487. package/packages/workspace-executor/src/processes/scanner.ts +3 -3
  488. package/packages/workspace-executor/src/processes/snapshot.ts +2 -2
  489. package/packages/workspace-executor/src/processes/terminator.ts +13 -13
  490. package/packages/workspace-executor/src/run-folders.ts +3 -3
  491. package/packages/workspace-executor/src/safe-environment.ts +4 -4
  492. package/packages/workspace-executor/src/sandbox-tools.ts +28 -28
  493. package/packages/workspace-executor/src/session-ident.ts +2 -2
  494. package/packages/workspace-executor/src/shell-platform.ts +2 -2
  495. package/packages/workspace-executor/src/tools.ts +5 -5
  496. package/plugins/ragents.activity/web/ActivityHeader.tsx +3 -3
  497. package/plugins/ragents.activity/web/activity.ts +2 -2
  498. package/plugins/ragents.actor-programs/server/access-projections.ts +1 -1
  499. package/plugins/ragents.actor-programs/server/agent-tools.ts +2 -2
  500. package/plugins/ragents.actor-programs/server/capability-resolver.ts +3 -3
  501. package/plugins/ragents.actor-programs/server/controls-template.ts +46 -46
  502. package/plugins/ragents.actor-programs/server/controls-tool.ts +4 -4
  503. package/plugins/ragents.actor-programs/server/limits.ts +3 -3
  504. package/plugins/ragents.actor-programs/server/methods.ts +1 -1
  505. package/plugins/ragents.actor-programs/server/project-diagnostics.ts +8 -8
  506. package/plugins/ragents.actor-programs/server/routes.ts +8 -8
  507. package/plugins/ragents.actor-programs/server/runtime.ts +90 -90
  508. package/plugins/ragents.actor-programs/server/templates.ts +59 -59
  509. package/plugins/ragents.actor-programs/server/test-report.ts +5 -5
  510. package/plugins/ragents.actor-programs/server/tool-contributor.ts +1 -1
  511. package/plugins/ragents.actor-programs/web/ActorViewFrame.tsx +17 -17
  512. package/plugins/ragents.actor-programs/web/AppsPanel.tsx +26 -26
  513. package/plugins/ragents.actor-programs/web/EmbeddedApps.tsx +3 -3
  514. package/plugins/ragents.actor-programs/web/FullscreenHost.tsx +2 -2
  515. package/plugins/ragents.actor-programs/web/FunctionForm.tsx +16 -16
  516. package/plugins/ragents.actor-programs/web/ProgramSource.tsx +5 -5
  517. package/plugins/ragents.actor-programs/web/api.ts +36 -36
  518. package/plugins/ragents.actor-programs/web/bridge.ts +8 -8
  519. package/plugins/ragents.actor-programs/web/chat-state.ts +4 -4
  520. package/plugins/ragents.actor-programs/web/context.ts +1 -1
  521. package/plugins/ragents.actor-programs/web/function-input.ts +6 -6
  522. package/plugins/ragents.actor-programs/web/index.tsx +1 -1
  523. package/plugins/ragents.actor-programs/web/program-state.ts +4 -4
  524. package/plugins/ragents.ask/ask-payload.ts +1 -1
  525. package/plugins/ragents.ask/contract.ts +5 -5
  526. package/plugins/ragents.ask/server/answer-method.ts +1 -1
  527. package/plugins/ragents.ask/server/ask-service.ts +9 -9
  528. package/plugins/ragents.ask/server/ask-tool.ts +10 -10
  529. package/plugins/ragents.ask/server/contract.ts +5 -5
  530. package/plugins/ragents.ask/web/AskActionView.tsx +1 -1
  531. package/plugins/ragents.ask/web/QuestionCard.tsx +22 -22
  532. package/plugins/ragents.ask/web/index.tsx +2 -2
  533. package/plugins/ragents.browser/executor/contract.ts +6 -6
  534. package/plugins/ragents.browser/executor/index.ts +1 -1
  535. package/plugins/ragents.browser/executor/module.ts +6 -6
  536. package/plugins/ragents.browser/executor/pages.ts +32 -32
  537. package/plugins/ragents.browser/executor/playwright.ts +8 -8
  538. package/plugins/ragents.browser/provision.ts +7 -7
  539. package/plugins/ragents.browser/server/browser.ts +14 -14
  540. package/plugins/ragents.browser/server/contract.ts +1 -1
  541. package/plugins/ragents.browser/server/index.ts +1 -1
  542. package/plugins/ragents.browser/server/tools.ts +14 -14
  543. package/plugins/ragents.browser/skills/browser-testing/SKILL.md +30 -30
  544. package/plugins/ragents.documents/contract.ts +2 -2
  545. package/plugins/ragents.documents/prompt.hbs +1 -1
  546. package/plugins/ragents.documents/server/document-write-tool.ts +12 -12
  547. package/plugins/ragents.documents/server/files-route.ts +6 -6
  548. package/plugins/ragents.documents/server/show-document-tool.ts +26 -26
  549. package/plugins/ragents.documents/server/store.ts +1 -1
  550. package/plugins/ragents.documents/web/DocumentViewer.tsx +37 -37
  551. package/plugins/ragents.documents/web/index.tsx +11 -11
  552. package/plugins/ragents.lsp-fsharp/executor.ts +7 -7
  553. package/plugins/ragents.lsp-fsharp/provision.ts +7 -7
  554. package/plugins/ragents.lsp-roslyn/executor.ts +5 -5
  555. package/plugins/ragents.lsp-roslyn/provision.ts +4 -4
  556. package/plugins/ragents.lsp-roslyn/server/index.ts +5 -5
  557. package/plugins/ragents.lsp-roslyn/server/solution-on-start.ts +13 -13
  558. package/plugins/ragents.lsp-typescript/executor.ts +3 -3
  559. package/plugins/ragents.model-relay/server/config.ts +6 -2
  560. package/plugins/ragents.model-relay/server/index.ts +2 -2
  561. package/plugins/ragents.model-relay/server/relay.ts +23 -22
  562. package/plugins/ragents.orchestration/contract.ts +8 -8
  563. package/plugins/ragents.orchestration/server/index.ts +4 -4
  564. package/plugins/ragents.orchestration/server/run-stop-tool.ts +3 -3
  565. package/plugins/ragents.orchestration/server/surface-tool.ts +5 -5
  566. package/plugins/ragents.orchestration/tiled-layout.ts +11 -11
  567. package/plugins/ragents.orchestration/web/ActorChat.tsx +2 -2
  568. package/plugins/ragents.orchestration/web/ActorChatControls.tsx +4 -4
  569. package/plugins/ragents.orchestration/web/ActorChatPreview.tsx +1 -1
  570. package/plugins/ragents.orchestration/web/ActorPopout.tsx +1 -1
  571. package/plugins/ragents.orchestration/web/ActorShortcut.tsx +6 -6
  572. package/plugins/ragents.orchestration/web/ActorSurfaceControls.tsx +15 -15
  573. package/plugins/ragents.orchestration/web/Center.tsx +5 -5
  574. package/plugins/ragents.orchestration/web/DocumentsSection.tsx +2 -2
  575. package/plugins/ragents.orchestration/web/ExecutionsPanel.tsx +15 -15
  576. package/plugins/ragents.orchestration/web/FlowInspector.tsx +103 -103
  577. package/plugins/ragents.orchestration/web/JournalStatus.tsx +11 -11
  578. package/plugins/ragents.orchestration/web/MaterialBody.tsx +2 -2
  579. package/plugins/ragents.orchestration/web/StopRunButton.tsx +6 -6
  580. package/plugins/ragents.orchestration/web/TiledSurface.tsx +9 -9
  581. package/plugins/ragents.orchestration/web/actor-header-settings.ts +5 -5
  582. package/plugins/ragents.orchestration/web/constants.ts +2 -2
  583. package/plugins/ragents.orchestration/web/executions.ts +6 -6
  584. package/plugins/ragents.orchestration/web/format.ts +1 -1
  585. package/plugins/ragents.orchestration/web/index.tsx +2 -2
  586. package/plugins/ragents.orchestration/web/run-panel/AddresseeControl.tsx +7 -7
  587. package/plugins/ragents.orchestration/web/run-panel/AddresseeTree.tsx +8 -8
  588. package/plugins/ragents.orchestration/web/run-panel/RunPanel.tsx +22 -22
  589. package/plugins/ragents.orchestration/web/run-panel/RunPanelSettings.tsx +7 -7
  590. package/plugins/ragents.orchestration/web/run-panel/addressee-tree.ts +13 -13
  591. package/plugins/ragents.orchestration/web/run-panel/run-panel-actors.ts +3 -3
  592. package/plugins/ragents.orchestration/web/run-panel/run-panel-settings.ts +2 -2
  593. package/plugins/ragents.orchestration/web/run-panel/run-panel-startup.ts +3 -3
  594. package/plugins/ragents.orchestration/web/run-panel/run-panel-state.ts +7 -7
  595. package/plugins/ragents.orchestration/web/run-panel/sheet-status.ts +9 -9
  596. package/plugins/ragents.orchestration/web/surface-startup.ts +8 -8
  597. package/plugins/ragents.orchestration/web/surface-view-settings.ts +1 -1
  598. package/plugins/ragents.orchestration/web/tiled-view-settings.ts +1 -1
  599. package/plugins/ragents.overseer/contract.ts +20 -20
  600. package/plugins/ragents.overseer/server/api.ts +6 -6
  601. package/plugins/ragents.overseer/server/coordinator-prompt.ts +10 -10
  602. package/plugins/ragents.overseer/server/coordinator.ts +4 -4
  603. package/plugins/ragents.overseer/server/index.ts +24 -24
  604. package/plugins/ragents.overseer/server/orientation.ts +8 -8
  605. package/plugins/ragents.overseer/server/quick-answer.ts +9 -9
  606. package/plugins/ragents.overseer/server/run-directory.ts +5 -5
  607. package/plugins/ragents.overseer/server/settings.ts +6 -6
  608. package/plugins/ragents.overseer/server/user-location.ts +16 -16
  609. package/plugins/ragents.overseer/web/ModelSettings.tsx +9 -9
  610. package/plugins/ragents.overseer/web/index.tsx +20 -20
  611. package/plugins/ragents.overseer/web/model-settings.ts +1 -1
  612. package/plugins/ragents.overseer/web/quick-answers.ts +2 -2
  613. package/plugins/ragents.processes/contract.ts +5 -5
  614. package/plugins/ragents.processes/server/methods.ts +4 -4
  615. package/plugins/ragents.processes/server/observer.ts +8 -8
  616. package/plugins/ragents.processes/server/run-processes.ts +2 -2
  617. package/plugins/ragents.processes/web/ProcessHeader.tsx +10 -10
  618. package/plugins/ragents.processes/web/processes.ts +10 -10
  619. package/plugins/ragents.product/server/config.ts +1 -1
  620. package/plugins/ragents.product/server/index.ts +4 -4
  621. package/plugins/ragents.product/server/runtime.ts +9 -10
  622. package/plugins/ragents.product/web/index.tsx +1 -1
  623. package/plugins/ragents.profile-distribution/contract.ts +10 -10
  624. package/plugins/ragents.profile-distribution/server/archive.ts +20 -20
  625. package/plugins/ragents.profile-distribution/server/config.ts +2 -2
  626. package/plugins/ragents.profile-distribution/server/index.ts +4 -4
  627. package/plugins/ragents.reference/examples.ts +27 -27
  628. package/plugins/ragents.reference/run-scripts/balcony-wizard/RUN.md +19 -19
  629. package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/package.json +2 -2
  630. package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/client.tsx +14 -14
  631. package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/conversation.ts +2 -2
  632. package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/tests/conversation.test.ts +49 -49
  633. package/plugins/ragents.reference/run-scripts/balcony-wizard/package.json +1 -1
  634. package/plugins/ragents.reference/run-scripts/balcony-wizard/src/server.ts +9 -9
  635. package/plugins/ragents.reference/run-scripts/balcony-wizard/tests/program.test.ts +9 -9
  636. package/plugins/ragents.reference/run-scripts/conversation-circle/RUN.md +7 -7
  637. package/plugins/ragents.reference/run-scripts/conversation-circle/package.json +1 -1
  638. package/plugins/ragents.reference/run-scripts/conversation-circle/src/server.ts +13 -13
  639. package/plugins/ragents.reference/run-scripts/conversation-circle/tests/helpers.ts +1 -1
  640. package/plugins/ragents.reference/run-scripts/conversation-circle/tests/program.test.ts +8 -8
  641. package/plugins/ragents.reference/run-scripts/learning-afternoon/RUN.md +16 -16
  642. package/plugins/ragents.reference/run-scripts/learning-afternoon/package.json +1 -1
  643. package/plugins/ragents.reference/run-scripts/learning-afternoon/prompts/experiment.md +1 -1
  644. package/plugins/ragents.reference/run-scripts/learning-afternoon/prompts/helper.md +3 -3
  645. package/plugins/ragents.reference/run-scripts/learning-afternoon/prompts/quiz.md +1 -1
  646. package/plugins/ragents.reference/run-scripts/learning-afternoon/src/server.ts +9 -9
  647. package/plugins/ragents.reference/run-scripts/learning-afternoon/tests/program.test.ts +39 -39
  648. package/plugins/ragents.reference/run-scripts/moderated-round/RUN.md +7 -7
  649. package/plugins/ragents.reference/run-scripts/moderated-round/package.json +1 -1
  650. package/plugins/ragents.reference/run-scripts/moderated-round/src/server.ts +9 -9
  651. package/plugins/ragents.reference/run-scripts/moderated-round/tests/helpers.ts +1 -1
  652. package/plugins/ragents.reference/run-scripts/moderated-round/tests/program.test.ts +6 -6
  653. package/plugins/ragents.reference/run-scripts/shared-actor-list/RUN.md +12 -12
  654. package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/package.json +2 -2
  655. package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/contract.ts +3 -3
  656. package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/tests/program.test.ts +4 -4
  657. package/plugins/ragents.reference/run-scripts/shared-actor-list/package.json +1 -1
  658. package/plugins/ragents.reference/run-scripts/shared-actor-list/src/server.ts +11 -11
  659. package/plugins/ragents.reference/run-scripts/shared-actor-list/tests/helpers.ts +1 -1
  660. package/plugins/ragents.reference/run-scripts/shared-actor-list/tests/program.test.ts +13 -13
  661. package/plugins/ragents.reference/run-scripts/word-game/RUN.md +18 -18
  662. package/plugins/ragents.reference/run-scripts/word-game/package.json +2 -2
  663. package/plugins/ragents.reference/run-scripts/word-game/src/client.tsx +1 -1
  664. package/plugins/ragents.reference/run-scripts/word-game/src/contract.ts +2 -2
  665. package/plugins/ragents.reference/run-scripts/word-game/src/server.ts +16 -16
  666. package/plugins/ragents.reference/run-scripts/word-game/tests/program.test.ts +39 -39
  667. package/plugins/ragents.reference/skills/100-shared-actor-list/SKILL.md +5 -5
  668. package/plugins/ragents.reference/skills/110-all-card-slots/SKILL.md +5 -5
  669. package/plugins/ragents.reference/skills/150-editorial-workbench/SKILL.md +5 -5
  670. package/plugins/ragents.reference/skills/160-learning-companion/SKILL.md +5 -5
  671. package/plugins/ragents.reference/skills/170-photo-collection/SKILL.md +5 -5
  672. package/plugins/ragents.reference/skills/180-decision-workbench/SKILL.md +5 -5
  673. package/plugins/ragents.reference/skills/190-review-queue/SKILL.md +5 -5
  674. package/plugins/ragents.reference/skills/20-circle-of-four/SKILL.md +5 -5
  675. package/plugins/ragents.reference/skills/200-typescript-diagnostics/SKILL.md +5 -5
  676. package/plugins/ragents.reference/skills/210-moderator-handover/SKILL.md +5 -5
  677. package/plugins/ragents.reference/skills/220-actor-approval-list/SKILL.md +5 -5
  678. package/plugins/ragents.reference/skills/230-shared-state-views/SKILL.md +5 -5
  679. package/plugins/ragents.reference/skills/240-live-result-list/SKILL.md +5 -5
  680. package/plugins/ragents.reference/skills/250-balcony-wizard/SKILL.md +5 -5
  681. package/plugins/ragents.reference/skills/30-llm-without-runtime-knowledge/SKILL.md +5 -5
  682. package/plugins/ragents.reference/skills/35-actor-input-fifo/SKILL.md +5 -5
  683. package/plugins/ragents.reference/skills/40-subscription-matrix/SKILL.md +5 -5
  684. package/plugins/ragents.reference/skills/50-subscription-removal/SKILL.md +5 -5
  685. package/plugins/ragents.reference/skills/60-stop-in-the-circle/SKILL.md +5 -5
  686. package/plugins/ragents.reference/skills/65-artifact-least-privilege/SKILL.md +5 -5
  687. package/plugins/ragents.reference/skills/70-headless-counter/SKILL.md +5 -5
  688. package/plugins/ragents.reference/skills/75-lsp-demo/SKILL.md +5 -5
  689. package/plugins/ragents.reference/skills/80-actor-text-analysis/SKILL.md +5 -5
  690. package/plugins/ragents.reference/skills/90-actor-notes/SKILL.md +5 -5
  691. package/plugins/ragents.reference/skills/95-hello-world/SKILL.md +5 -5
  692. package/plugins/ragents.reference/skills/decision-brief/SKILL.md +24 -24
  693. package/plugins/ragents.reference/skills/learning-sprint/SKILL.md +24 -24
  694. package/plugins/ragents.reference/walkthroughs.ts +128 -128
  695. package/plugins/ragents.reference/web/StartGuides.tsx +23 -23
  696. package/plugins/ragents.todo/server/todo-tool.ts +6 -6
  697. package/plugins/ragents.todo/web/TodoSection.tsx +1 -1
  698. package/plugins/ragents.transcript/server/transcript.ts +11 -11
  699. package/plugins/ragents.watch/server/condition.ts +4 -4
  700. package/plugins/ragents.watch/server/functions.ts +27 -27
  701. package/plugins/ragents.watch/server/observation.ts +2 -2
  702. package/plugins/ragents.watch/server/service.ts +14 -14
  703. package/plugins/ragents.workspace/client/transport.ts +1 -1
  704. package/plugins/ragents.workspace/client/workspace-client.ts +54 -54
  705. package/plugins/ragents.workspace/contract.ts +46 -46
  706. package/plugins/ragents.workspace/server/binding.ts +20 -20
  707. package/plugins/ragents.workspace/server/browse-route.ts +8 -8
  708. package/plugins/ragents.workspace/server/clients.ts +42 -42
  709. package/plugins/ragents.workspace/server/config.ts +7 -7
  710. package/plugins/ragents.workspace/server/index.ts +3 -3
  711. package/plugins/ragents.workspace/server/runtime.ts +26 -26
  712. package/plugins/ragents.workspace/server/shell-platform.ts +1 -1
  713. package/plugins/ragents.workspace/web/FileBrowser.tsx +10 -10
  714. package/plugins/ragents.workspace/web/WorkspaceBinding.tsx +24 -24
  715. package/plugins/ragents.workspace/web/index.tsx +1 -1
  716. package/ragents.config.core.ts +1 -1
  717. package/ragents.config.developer.ts +3 -3
  718. package/ragents.config.showcase.ts +2 -2
  719. package/scripts/agent/agent-cli.ts +96 -96
  720. package/scripts/agent/journal.ts +5 -5
  721. package/scripts/agent/turn-control.ts +4 -4
  722. package/scripts/package/build-package.ts +29 -29
  723. package/scripts/package/host-links.mjs +3 -3
  724. package/scripts/package/publish-package.ts +29 -29
  725. package/scripts/package/ragents.mjs +19 -19
  726. package/scripts/plugin/build-builtin-plugins.ts +5 -5
  727. package/scripts/plugin/plugin-cli.ts +14 -14
  728. package/scripts/provision/run-provision.ts +14 -15
  729. package/scripts/remote/connect.ts +46 -46
  730. package/scripts/remote/start.ts +18 -18
  731. package/scripts/workspace-client/run-workspace-client.ts +23 -23
  732. package/apps/web/dist/assets/main-DnnqWHkH.js +0 -11
  733. package/apps/web/dist/assets/mermaid-HWGCJPDP-BLLeth5_.js +0 -568
  734. package/apps/web/dist/assets/runPanel-DPm7s3KM.js +0 -21
  735. package/bundles/ragents.ask/server/chunks/chunk-PDJO75SQ.js.map +0 -7
  736. package/bundles/ragents.ask/web/chunks/chunk-4VXWWEG7.js +0 -2
  737. package/bundles/ragents.ask/web/chunks/chunk-4VXWWEG7.js.map +0 -7
  738. package/bundles/ragents.ask/web/chunks/chunk-VUBJDIKQ.js +0 -2
  739. package/bundles/ragents.ask/web/chunks/chunk-VUBJDIKQ.js.map +0 -7
  740. package/bundles/ragents.ask/web/chunks/chunk-WFN4374U.js.map +0 -7
  741. package/bundles/ragents.orchestration/web/chunks/chunk-OQYCNYXN.js +0 -2
  742. /package/bundles/ragents.orchestration/web/chunks/{chunk-OSKPH6SZ.js.map → chunk-CFMJD5ZI.js.map} +0 -0
  743. /package/bundles/ragents.orchestration/web/chunks/{chunk-ODMMQGX2.js.map → chunk-UCIMT2R4.js.map} +0 -0
@@ -11,7 +11,7 @@ import { assertBundleStand, readBundleManifest, sourceStandOf } from "../../apps
11
11
  import { builtInPluginFolders } from "../plugin/build-builtin-plugins.ts";
12
12
 
13
13
  export const PACKAGE_NAME = "@schlenkr/ragents";
14
- /** Der Ordner unter dist/; der Paketname hat einen Scope, der Ordnername bleibt schlicht. */
14
+ /** The folder under dist/; the package name has a scope, the folder name stays plain. */
15
15
  export const PACKAGE_FOLDER = "ragents";
16
16
 
17
17
  const repositoryRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../..");
@@ -19,12 +19,12 @@ const repositoryRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url))
19
19
  const SKIPPED_FOLDERS = new Set(["node_modules", "dist", ".git"]);
20
20
  const SKIPPED_FILES = new Set([".DS_Store"]);
21
21
 
22
- /** Die Prüfungen der Unterbefehle laufen im Checkout; im Paket wäre nur ihr Testmaterial zu sehen. */
22
+ /** The subcommands' tests run in the checkout; in the package only their test material would be visible. */
23
23
  const SKIPPED_IN_PACKAGE = /^scripts\/.*\.test\.tsx?$/;
24
24
 
25
25
  const packagePath = (packageRoot: string, file: string): string => path.relative(packageRoot, file).split(path.sep).join("/");
26
26
 
27
- /** Die neutralen Profile des Repositories; ragents start fährt sie aus dem Paket wie aus dem Checkout. */
27
+ /** The repository's neutral profiles; ragents start runs them from the package as from the checkout. */
28
28
  export const PACKAGED_PROFILES = ["core", "developer", "showcase"] as const;
29
29
 
30
30
  export const PACKAGE_LICENSE = "PolyForm-Shield-1.0.0";
@@ -32,7 +32,7 @@ export const PACKAGE_AUTHOR = "Ronald Schlenker";
32
32
  export const REPOSITORY_URL = "https://github.com/SchlenkR/RAgents";
33
33
  export const PACKAGE_KEYWORDS = ["agents", "llm", "actors", "typescript", "csharp", "fsharp", "vscode"] as const;
34
34
 
35
- /** Lizenz und Listing-README liegen an der Wurzel des Pakets, ihre Quellen im Repository woanders. */
35
+ /** License and listing README are at the root of the package, their sources elsewhere in the repository. */
36
36
  export const PACKAGE_ROOT_FILES: readonly (readonly [string, string])[] = [
37
37
  ["LICENSE", "LICENSE"],
38
38
  ["scripts/package/README.md", "README.md"],
@@ -42,7 +42,7 @@ const ROOT_FILE_SOURCES = new Set(PACKAGE_ROOT_FILES.map(([source]) => source));
42
42
 
43
43
  const skippedInPackage = (relative: string): boolean => SKIPPED_IN_PACKAGE.test(relative) || ROOT_FILE_SOURCES.has(relative);
44
44
 
45
- /** Was der Host zur Laufzeit lädt: Server, Engine, das fertige Web, die eingebauten Bundles, Plugin-Quellen für Verträge und das Bauwerkzeug, Profile und die Skripte hinter den Unterbefehlen; dazu kommen die Typen aus declarationFolders. */
45
+ /** What the host loads at runtime: server, engine, the built web, the built-in bundles, plugin sources for contracts and the build tool, profiles and the scripts behind the subcommands; plus the types from declarationFolders. */
46
46
  export const packageContents = (root = repositoryRoot): readonly string[] => [
47
47
  "apps/server/package.json",
48
48
  "apps/server/tsconfig.json",
@@ -67,7 +67,7 @@ export const packageContents = (root = repositoryRoot): readonly string[] => [
67
67
  "scripts/workspace-client",
68
68
  ];
69
69
 
70
- /** Die gegabelte Agentenlaufzeit läuft aus ihren Quellen, ihre Typen gibt es nur gebaut; das Bauwerkzeug prüft fremde Plugins gegen sie. */
70
+ /** The forked agent runtime runs from its sources, its types exist only built; the build tool checks third-party plugins against them. */
71
71
  export const declarationFolders = (root = repositoryRoot): readonly string[] =>
72
72
  readdirSync(path.join(root, "packages"), { withFileTypes: true })
73
73
  .filter((entry) => entry.isDirectory())
@@ -78,13 +78,13 @@ export const declarationFolders = (root = repositoryRoot): readonly string[] =>
78
78
  })
79
79
  .map((entry) => `packages/${entry.name}/dist`);
80
80
 
81
- /** Was der Host ausführt, in eine Mini-App bündelt oder beim Bauen eines Plugins liest. */
81
+ /** What the host executes, bundles into a mini-app or reads when building a plugin. */
82
82
  const SCANNED = ["apps/server/src", "apps/web", "packages", "plugins", "scripts"];
83
83
  const PACKAGE_NAME_PATTERN = /^(@[a-z0-9-~][a-z0-9-._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/;
84
84
  const SCAN_SKIPPED = new Set(["node_modules", "dist"]);
85
85
  const SCANNED_EXTENSIONS = new Set([".ts", ".tsx", ".mts", ".mjs", ".js", ".css"]);
86
86
  const IMPORT_PATTERN = /\b(?:from|import|require(?:\.resolve)?)\s*\(?\s*["']([^"'\n]+)["']/g;
87
- /** Ein Beitrag zum Executor löst Pakete zur Laufzeit aus dem Host auf; auch sie muss das Paket tragen. */
87
+ /** An executor contribution resolves packages from the host at runtime; the package must carry them too. */
88
88
  const HOST_PACKAGE_PATTERN = /\bhostPackageFile\([^,()]*,\s*["']([^"'\n]+)["']/g;
89
89
 
90
90
  const files = async (folder: string, skippedFolders: ReadonlySet<string> = SKIPPED_FOLDERS): Promise<readonly string[]> => {
@@ -142,12 +142,12 @@ const declaredWebDependencies = (packageDirectory: string): readonly string[] =>
142
142
  return Object.keys(declared);
143
143
  };
144
144
 
145
- /** Die Pakete, die der ausgeführte Teil des Pakets wirklich importiert, plus die zur Laufzeit verlinkten Bibliotheken
146
- * und die, die das Web des Hosts den web-Hälften fremder Plugins anbietet. */
145
+ /** The packages that the executed part of the package actually imports, plus the libraries linked at runtime
146
+ * and those that the host's web offers to the web halves of third-party plugins. */
147
147
  export const requiredPackages = (packageDirectory: string): ReadonlyMap<string, string> => {
148
148
  const sources = new Map<string, string>();
149
- for (const name of runtimeLibraries) sources.set(name, "plugins/ragents.actor-programs (verlinkt zur Laufzeit)");
150
- for (const name of declaredWebDependencies(packageDirectory)) sources.set(name, "apps/web/package.json (für die web-Hälften der Plugins)");
149
+ for (const name of runtimeLibraries) sources.set(name, "plugins/ragents.actor-programs (linked at runtime)");
150
+ for (const name of declaredWebDependencies(packageDirectory)) sources.set(name, "apps/web/package.json (for the web halves of the plugins)");
151
151
  for (const folder of scanRoots(packageDirectory)) {
152
152
  for (const file of scannedFiles(folder)) {
153
153
  const content = readFileSync(file, "utf8");
@@ -179,7 +179,7 @@ const anchors = (root: string): readonly string[] => [
179
179
  .filter((file) => statSync(file, { throwIfNoEntry: false })?.isFile() === true)),
180
180
  ];
181
181
 
182
- /** Die Fassungen, die dieser Checkout für ein Paket installiert hat; die jüngste kommt ins Paket. */
182
+ /** The versions this checkout has installed for a package; the newest goes into the package. */
183
183
  export const installedVersions = (name: string, root = repositoryRoot): readonly string[] => {
184
184
  const found = new Set<string>();
185
185
  for (const anchor of anchors(root)) {
@@ -193,7 +193,7 @@ export const installedVersions = (name: string, root = repositoryRoot): readonly
193
193
  }
194
194
  }
195
195
  const versions = [...found].sort(compareVersions);
196
- if (versions.length === 0) throw new Error(`Das Paket ${name} ist in diesem Checkout nicht installiert; ohne Fassung kann es nicht ins Paket`);
196
+ if (versions.length === 0) throw new Error(`The package ${name} is not installed in this checkout; without a version it cannot go into the package`);
197
197
  return versions;
198
198
  };
199
199
 
@@ -205,25 +205,25 @@ export interface BuiltPackage {
205
205
  readonly flattened: readonly string[];
206
206
  }
207
207
 
208
- /** Das Paket liefert das Web fertig aus; es muss gebaut sein und zu seinen Quellen passen. */
208
+ /** The package ships the web prebuilt; it must be built and match its sources. */
209
209
  const assertHostWeb = (root: string): void => {
210
210
  const problem = hostWebProblem(hostWebDirectory(root), root, isCheckout(root));
211
- if (problem) throw new Error(`${problem}; vorher pnpm build:web`);
211
+ if (problem) throw new Error(`${problem}; run pnpm build:web first`);
212
212
  };
213
213
 
214
- /** Jedes eingebaute Plugin muss als Bundle vorliegen und zu seinen Quellen passen, sonst startet das Paket kein Profil. */
214
+ /** Every built-in plugin must exist as a bundle and match its sources, otherwise the package starts no profile. */
215
215
  const assertBuiltInBundles = (root: string): void => {
216
216
  for (const folder of builtInPluginFolders(path.join(root, "plugins"))) {
217
217
  const bundle = path.join(root, "bundles", path.basename(folder));
218
- if (!statSync(bundle, { throwIfNoEntry: false })?.isDirectory()) throw new Error(`Das Bundle ${bundle} fehlt; vorher pnpm build:plugins`);
219
- if (readBundleManifest(bundle).sourceStand !== sourceStandOf(folder)) throw new Error(`Das Bundle ${bundle} passt nicht mehr zu ${folder}; vorher pnpm build:plugins`);
218
+ if (!statSync(bundle, { throwIfNoEntry: false })?.isDirectory()) throw new Error(`The bundle ${bundle} is missing; run pnpm build:plugins first`);
219
+ if (readBundleManifest(bundle).sourceStand !== sourceStandOf(folder)) throw new Error(`The bundle ${bundle} no longer matches ${folder}; run pnpm build:plugins first`);
220
220
  }
221
221
  };
222
222
 
223
223
  const copyDeclarations = async (root: string, target: string): Promise<readonly string[]> => {
224
224
  const copied: string[] = [];
225
225
  for (const folder of declarationFolders(root)) {
226
- if (!statSync(path.join(root, folder), { throwIfNoEntry: false })?.isDirectory()) throw new Error(`${folder} fehlt; vorher pnpm build:agent`);
226
+ if (!statSync(path.join(root, folder), { throwIfNoEntry: false })?.isDirectory()) throw new Error(`${folder} is missing; run pnpm build:agent first`);
227
227
  for (const file of (await files(path.join(root, folder))).filter((name) => name.endsWith(".d.ts"))) {
228
228
  const destination = path.join(target, path.relative(root, file));
229
229
  await mkdir(path.dirname(destination), { recursive: true });
@@ -242,7 +242,7 @@ export const buildPackage = async (target: string, root = repositoryRoot): Promi
242
242
  let fileCount = 0;
243
243
  let byteSize = 0;
244
244
  for (const entry of packageContents(root)) {
245
- // Ein Bundle ist fertig gebaut und kommt ganz ins Paket, auch ein Asset-Ordner namens dist.
245
+ // A bundle is fully built and goes into the package completely, including an asset folder named dist.
246
246
  const copied = await copyTo(path.join(root, entry), path.join(target, entry), target, entry === "bundles" ? new Set() : undefined);
247
247
  fileCount += copied.length;
248
248
  for (const file of copied) byteSize += statSync(file).size;
@@ -272,7 +272,7 @@ export const buildPackage = async (target: string, root = repositoryRoot): Promi
272
272
  const manifest = {
273
273
  name: PACKAGE_NAME,
274
274
  version: readPackageVersion(root),
275
- description: "RAgents-Host: Server, Engine, Plugins und Werkzeuge ohne Quell-Checkout",
275
+ description: "RAgents host: server, engine, plugins and tools without a source checkout",
276
276
  keywords: [...PACKAGE_KEYWORDS],
277
277
  homepage: "https://schlenkr.github.io/RAgents/",
278
278
  bugs: { url: `${REPOSITORY_URL}/issues` },
@@ -296,18 +296,18 @@ export const buildPackage = async (target: string, root = repositoryRoot): Promi
296
296
  const main = async (): Promise<void> => {
297
297
  const pack = process.argv.includes("--pack");
298
298
  const unknown = process.argv.slice(2).filter((argument) => argument !== "--pack");
299
- if (unknown.length) throw new Error(`Unbekanntes Argument: ${unknown.join(" ")} (erlaubt: --pack)`);
299
+ if (unknown.length) throw new Error(`Unknown argument: ${unknown.join(" ")} (allowed: --pack)`);
300
300
  const target = path.join(repositoryRoot, "dist", PACKAGE_FOLDER);
301
301
  const built = await buildPackage(target);
302
- console.log(`== Paket ${PACKAGE_NAME}@${built.manifest.version as string} in ${built.directory}`);
303
- console.log(`== Host-Version ${(built.manifest.ragents as { hostVersion: string }).hostVersion}`);
304
- console.log(`== ${built.fileCount} Dateien, ${(built.byteSize / 1024 / 1024).toFixed(1)} MB, ${Object.keys(built.manifest.dependencies as object).length} Abhängigkeiten`);
302
+ console.log(`== Package ${PACKAGE_NAME}@${built.manifest.version as string} in ${built.directory}`);
303
+ console.log(`== Host version ${(built.manifest.ragents as { hostVersion: string }).hostVersion}`);
304
+ console.log(`== ${built.fileCount} files, ${(built.byteSize / 1024 / 1024).toFixed(1)} MB, ${Object.keys(built.manifest.dependencies as object).length} dependencies`);
305
305
  for (const [name, version] of Object.entries(built.manifest.dependencies as Record<string, string>)) console.log(` ${name}@${version}`);
306
- for (const entry of built.flattened) console.log(`== Mehrfachfassung abgeflacht: ${entry}`);
306
+ for (const entry of built.flattened) console.log(`== Multiple versions flattened: ${entry}`);
307
307
  if (!pack) return;
308
308
  const packed = spawnSync("npm", ["pack", "--pack-destination", path.dirname(built.directory)], { cwd: built.directory, encoding: "utf8", stdio: ["ignore", "pipe", "inherit"] });
309
- if (packed.status !== 0) throw new Error(`npm pack endete mit Code ${packed.status}`);
310
- console.log(`== Archiv ${path.join(path.dirname(built.directory), packed.stdout.trim().split("\n").at(-1) ?? "")}`);
309
+ if (packed.status !== 0) throw new Error(`npm pack ended with code ${packed.status}`);
310
+ console.log(`== Archive ${path.join(path.dirname(built.directory), packed.stdout.trim().split("\n").at(-1) ?? "")}`);
311
311
  };
312
312
 
313
313
  const moduleUrl: string | undefined = import.meta.url;
@@ -15,11 +15,11 @@ const workspaceFolders = (root) => [
15
15
  const nameOf = (folder) => {
16
16
  const file = path.join(folder, "package.json");
17
17
  const name = JSON.parse(readFileSync(file, "utf8")).name;
18
- if (typeof name !== "string" || !name) throw new Error(`${file} nennt keinen Paketnamen`);
18
+ if (typeof name !== "string" || !name) throw new Error(`${file} names no package name`);
19
19
  return name;
20
20
  };
21
21
 
22
- /** Legt im Paket @schlenkr/ragents die Verknüpfungen an, die im Checkout von pnpm kommen; im Checkout tut sie nichts. */
22
+ /** Creates in the package @schlenkr/ragents the links that pnpm creates in the checkout; in the checkout it does nothing. */
23
23
  export const ensureHostLinks = (root) => {
24
24
  const manifest = path.join(root, "package.json");
25
25
  if (!isFile(manifest) || JSON.parse(readFileSync(manifest, "utf8")).ragents?.hostVersion === undefined) return [];
@@ -28,7 +28,7 @@ export const ensureHostLinks = (root) => {
28
28
  const link = path.join(root, "node_modules", nameOf(folder));
29
29
  const existing = lstatSync(link, { throwIfNoEntry: false });
30
30
  if (existing) {
31
- if (realpathSync(link) !== realpathSync(folder)) throw new Error(`${link} zeigt nicht auf ${folder}; das Paket ist beschädigt`);
31
+ if (realpathSync(link) !== realpathSync(folder)) throw new Error(`${link} does not point to ${folder}; the package is damaged`);
32
32
  continue;
33
33
  }
34
34
  mkdirSync(path.dirname(link), { recursive: true });
@@ -6,11 +6,11 @@ import { buildPackage, PACKAGE_FOLDER, PACKAGE_NAME } from "./build-package.ts";
6
6
 
7
7
  const repositoryRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../..");
8
8
 
9
- const usage = `Verwendung: pnpm publish:package [--dry-run]
10
- Baut das Paket ${PACKAGE_NAME} und veröffentlicht es auf npm. Der Token kommt aus der
11
- Umgebungsvariable npm_key. --dry-run reicht npm den Probelauf durch und veröffentlicht nichts.
12
- Die Fassung steht in der package.json der Wurzel; das Skript zählt vor dem Bauen die letzte Stelle
13
- über die zuletzt veröffentlichte hoch, im Probelauf nur in der Ausgabe.`;
9
+ const usage = `Usage: pnpm publish:package [--dry-run]
10
+ Builds the package ${PACKAGE_NAME} and publishes it on npm. The token comes from the
11
+ environment variable npm_key. --dry-run passes the dry run through to npm and publishes nothing.
12
+ The version is in the root package.json; before building, the script raises the last place
13
+ above the last published version, in a dry run only in the output.`;
14
14
 
15
15
  const REGISTRY_TOKEN_KEY = "npm_config_//registry.npmjs.org/:_authToken";
16
16
 
@@ -22,14 +22,14 @@ export interface NpmResult {
22
22
 
23
23
  export type NpmRunner = (args: readonly string[], options: { cwd: string; token?: string }) => NpmResult;
24
24
 
25
- /** Der Token geht nur als Konfiguration in die Umgebung des Kindprozesses, nie auf die Kommandozeile. */
25
+ /** The token goes only as configuration into the child process's environment, never onto the command line. */
26
26
  export const publishEnvironment = (token: string, base: NodeJS.ProcessEnv = process.env): NodeJS.ProcessEnv =>
27
27
  ({ ...base, [REGISTRY_TOKEN_KEY]: token });
28
28
 
29
- /** Alles, was von npm kommt, geht durch diese Maske, damit der Token auch in einer Fehlermeldung nicht auftaucht. */
29
+ /** Everything that comes from npm goes through this mask so that the token does not show up even in an error message. */
30
30
  export const redacting = (token: string) => (text: string): string => token ? text.split(token).join("<npm_key>") : text;
31
31
 
32
- /** Eine Fehlermeldung ist eine Zeile; die Ausgabe von npm wandert deshalb auf eine. */
32
+ /** An error message is one line; npm's output is therefore moved onto one. */
33
33
  export const oneLine = (text: string): string => text.split("\n").map((line) => line.trim()).filter(Boolean).join("; ");
34
34
 
35
35
  const runNpm: NpmRunner = (args, options) => {
@@ -39,22 +39,22 @@ const runNpm: NpmRunner = (args, options) => {
39
39
  env: options.token ? publishEnvironment(options.token) : process.env,
40
40
  stdio: ["ignore", "pipe", "pipe"],
41
41
  });
42
- if (result.error) throw new Error(`npm ${args[0]} konnte nicht gestartet werden: ${result.error.message}`);
42
+ if (result.error) throw new Error(`npm ${args[0]} could not be started: ${result.error.message}`);
43
43
  return { status: result.status ?? 1, stdout: result.stdout ?? "", stderr: result.stderr ?? "" };
44
44
  };
45
45
 
46
- /** Die Fassungen, die schon auf npm liegen; ein dort unbekanntes Paket ist die leere Liste, kein Fehler. */
46
+ /** The versions already on npm; a package unknown there is the empty list, not an error. */
47
47
  export const publishedVersions = (name: string, npm: NpmRunner): readonly string[] => {
48
48
  const result = npm(["view", name, "versions", "--json"], { cwd: repositoryRoot });
49
49
  if (result.status !== 0) {
50
50
  if (/E404|404 Not Found/.test(`${result.stdout}\n${result.stderr}`)) return [];
51
- throw new Error(`npm view ${name} versions endete mit Code ${result.status}: ${oneLine(result.stderr)}`);
51
+ throw new Error(`npm view ${name} versions ended with code ${result.status}: ${oneLine(result.stderr)}`);
52
52
  }
53
53
  const parsed = JSON.parse(result.stdout.trim() || "[]") as string | readonly string[];
54
54
  return typeof parsed === "string" ? [parsed] : parsed;
55
55
  };
56
56
 
57
- /** Die höchste Fassung, die auf npm liegt; ein dort unbekanntes Paket hat keine. */
57
+ /** The highest version on npm; a package unknown there has none. */
58
58
  export const latestPublishedVersion = (npm: NpmRunner = runNpm, name = PACKAGE_NAME): string | undefined =>
59
59
  [...publishedVersions(name, npm)].sort(compareVersions).at(-1);
60
60
 
@@ -64,22 +64,22 @@ export interface PublishPlan {
64
64
  readonly hostVersion: string;
65
65
  }
66
66
 
67
- /** Was vor einem Publish stimmen muss: das gebaute Manifest und eine Fassung, die es auf npm noch nicht gibt. */
67
+ /** What must be right before a publish: the built manifest and a version that does not yet exist on npm. */
68
68
  export const publishPlan = (manifest: Record<string, unknown>, published: readonly string[], version: string): PublishPlan => {
69
69
  const { name } = manifest as { name?: unknown };
70
70
  const access = (manifest.publishConfig as { access?: unknown } | undefined)?.access;
71
71
  const hostVersion = (manifest.ragents as { hostVersion?: unknown } | undefined)?.hostVersion;
72
- if (name !== PACKAGE_NAME) throw new Error(`Das gebaute Paket heißt ${String(name)}, veröffentlicht wird ${PACKAGE_NAME}`);
73
- if (access !== "public") throw new Error(`${PACKAGE_NAME} hat einen Scope und braucht publishConfig.access "public", nicht ${JSON.stringify(access)}`);
72
+ if (name !== PACKAGE_NAME) throw new Error(`The built package is named ${String(name)}, but ${PACKAGE_NAME} is published`);
73
+ if (access !== "public") throw new Error(`${PACKAGE_NAME} has a scope and needs publishConfig.access "public", not ${JSON.stringify(access)}`);
74
74
  if (!/^\d+\.\d+\.\d+(?:-[0-9a-z.-]+)?$/.test(version)) {
75
- throw new Error(`Die Fassung ${JSON.stringify(version)} ist keine Fassung; sie steht als version in der package.json der Wurzel`);
75
+ throw new Error(`The version ${JSON.stringify(version)} is not a version; it is the version in the root package.json`);
76
76
  }
77
77
  if (typeof hostVersion !== "string" || !/^[0-9a-f]{40}$/.test(hostVersion)) {
78
- throw new Error("Dem Paket fehlt ragents.hostVersion als vollständiger Git-Commit; gebaut wird nur aus einem Checkout");
78
+ throw new Error("The package lacks ragents.hostVersion as a full Git commit; it is built only from a checkout");
79
79
  }
80
80
  if (published.includes(version)) {
81
- throw new Error(`${PACKAGE_NAME}@${version} liegt schon auf npm (dort: ${published.join(", ")}); `
82
- + "erhöhe version in der package.json der Wurzel und baue neu");
81
+ throw new Error(`${PACKAGE_NAME}@${version} is already on npm (there: ${published.join(", ")}); `
82
+ + "raise version in the root package.json and rebuild");
83
83
  }
84
84
  return { name: PACKAGE_NAME, version, hostVersion };
85
85
  };
@@ -93,32 +93,32 @@ export interface PublishOptions {
93
93
  readonly log: (line: string) => void;
94
94
  }
95
95
 
96
- /** npm meldet eine fehlende Organisation als 404; ohne den Hinweis sucht man den Fehler beim Paket. */
96
+ /** npm reports a missing organization as 404; without the hint you look for the error in the package. */
97
97
  const scopeAdvice = (output: string): string => /Scope not found/i.test(output)
98
- ? ` Die Organisation ${PACKAGE_NAME.split("/")[0]} existiert auf npm nicht oder der Token darf sie nicht: `
99
- + "auf npmjs.com anlegen bzw. den Token für den Scope freigeben."
98
+ ? ` The organization ${PACKAGE_NAME.split("/")[0]} does not exist on npm or the token may not use it: `
99
+ + "create it on npmjs.com or grant the token access to the scope."
100
100
  : "";
101
101
 
102
- /** Veröffentlicht den gebauten Ordner; der Exit 0 von npm publish ist die Bestätigung. */
102
+ /** Publishes the built folder; exit 0 of npm publish is the confirmation. */
103
103
  export const publishDirectory = (options: PublishOptions): void => {
104
104
  const hide = redacting(options.token);
105
105
  const published = options.npm(["publish", "--access", "public", ...options.dryRun ? ["--dry-run"] : []], { cwd: options.directory, token: options.token });
106
106
  const output = `${published.stdout}${published.stderr}`;
107
107
  for (const line of output.split("\n")) if (line.trim()) options.log(hide(line));
108
- if (published.status !== 0) throw new Error(`npm publish endete mit Code ${published.status}.${scopeAdvice(output)}`);
108
+ if (published.status !== 0) throw new Error(`npm publish ended with code ${published.status}.${scopeAdvice(output)}`);
109
109
  if (options.dryRun) {
110
- options.log("== Probelauf: nichts veröffentlicht");
110
+ options.log("== Dry run: nothing published");
111
111
  return;
112
112
  }
113
- options.log(`== Veröffentlicht: ${PACKAGE_NAME}@${options.version}`);
113
+ options.log(`== Published: ${PACKAGE_NAME}@${options.version}`);
114
114
  };
115
115
 
116
116
  const main = async (): Promise<void> => {
117
117
  const dryRun = process.argv.includes("--dry-run");
118
118
  const unknown = process.argv.slice(2).filter((argument) => argument !== "--dry-run");
119
- if (unknown.length) throw new Error(`Unbekanntes Argument: ${unknown.join(" ")}\n${usage}`);
119
+ if (unknown.length) throw new Error(`Unknown argument: ${unknown.join(" ")}\n${usage}`);
120
120
  const token = process.env.npm_key;
121
- if (!token) throw new Error(`npm_key fehlt: der npm-Token mit Schreibrecht auf ${PACKAGE_NAME}.\n${usage}`);
121
+ if (!token) throw new Error(`npm_key is missing: the npm token with write access to ${PACKAGE_NAME}.\n${usage}`);
122
122
  const manifestFile = path.join(repositoryRoot, "package.json");
123
123
  const published = publishedVersions(PACKAGE_NAME, runNpm);
124
124
  const extensionManifestFile = path.join(repositoryRoot, "apps", "vscode", "package.json");
@@ -131,7 +131,7 @@ const main = async (): Promise<void> => {
131
131
  }
132
132
  const built = await buildPackage(path.join(repositoryRoot, "dist", PACKAGE_FOLDER));
133
133
  const plan = publishPlan(built.manifest, published, next.version);
134
- console.log(`== ${plan.name}@${plan.version} aus Host ${plan.hostVersion.slice(0, 12)}, ${built.fileCount} Dateien, ${(built.byteSize / 1024 / 1024).toFixed(1)} MB`);
134
+ console.log(`== ${plan.name}@${plan.version} from host ${plan.hostVersion.slice(0, 12)}, ${built.fileCount} files, ${(built.byteSize / 1024 / 1024).toFixed(1)} MB`);
135
135
  publishDirectory({ directory: built.directory, version: plan.version, token, dryRun, npm: runNpm, log: (line) => console.log(line) });
136
136
  };
137
137
 
@@ -19,24 +19,24 @@ export const commands = {
19
19
  stop: AGENT_CLI,
20
20
  };
21
21
 
22
- const usage = `Verwendung: ragents <befehl> [argumente]
22
+ const usage = `Usage: ragents <command> [arguments]
23
23
 
24
- run <ordner> "<auftrag>" Host ohne Oberfläche starten, Run anlegen und auf das Ende warten
25
- send <run> "<text>" Folgeauftrag im selben Run
26
- journal <run> [--tools] Verlauf eines Runs lesen
27
- stop <run> | stop --host laufenden Turn abbrechen oder den gemerkten Host beenden
28
- connect <server-url> Client-Profil samt Bundles holen und den lokalen Server damit starten
29
- start <profil|pfad> ein Profil des Pakets, eine eigene Profildatei oder einen
30
- geholten Stand starten; die Oberfläche kommt fertig mit
31
- provision [<profil>|--workspace] Werkzeuge der Plugins holen
32
- workspace-client <server-url> diesen Rechner als Arbeitsplatz anmelden
33
- plugin build <ordner...> Plugin-Quellordner zu Bundles bauen (--out, --watch)
34
- --help, help diese Verwendung
24
+ run <folder> "<task>" start the host without UI, create a run and wait for the end
25
+ send <run> "<text>" follow-up task in the same run
26
+ journal <run> [--tools] read the history of a run
27
+ stop <run> | stop --host cancel the running turn or stop the remembered host
28
+ connect <server-url> fetch the client profile with its bundles and start the local server with it
29
+ start <profile|path> start a profile of the package, an own profile file or a
30
+ fetched stand; the UI comes prebuilt
31
+ provision [<profile>|--workspace] fetch the plugins' tools
32
+ workspace-client <server-url> register this machine as a workspace
33
+ plugin build <folder...> build plugin source folders into bundles (--out, --watch)
34
+ --help, help this usage
35
35
 
36
- run, send, journal und stop nehmen mit --profile <profil|pfad> ein anderes Profil: einen Namen
37
- neben dem Host oder den Pfad zu einer eigenen ragents.config.<profil>.ts. RAGENTS_PROFILE setzt
38
- dasselbe für alle Befehle einer Shell; verlangt das Profil eine Anmeldung, gehört der
39
- persönliche Token des Benutzers in RAGENTS_TOKEN.
36
+ run, send, journal and stop take another profile with --profile <profile|path>: a name
37
+ next to the host or the path to an own ragents.config.<profile>.ts. RAGENTS_PROFILE sets
38
+ the same for all commands of a shell; if the profile requires sign-in, the user's
39
+ personal token goes into RAGENTS_TOKEN.
40
40
  `;
41
41
 
42
42
  const main = () => {
@@ -48,7 +48,7 @@ const main = () => {
48
48
  }
49
49
  const script = command ? commands[command] : undefined;
50
50
  if (!script) {
51
- console.error(command ? `Unbekannter Befehl: ${command}\n\n${usage}` : usage);
51
+ console.error(command ? `Unknown command: ${command}\n\n${usage}` : usage);
52
52
  process.exit(1);
53
53
  }
54
54
  ensureHostLinks(root);
@@ -62,11 +62,11 @@ const main = () => {
62
62
  process.on("SIGINT", forward("SIGINT"));
63
63
  process.on("SIGTERM", forward("SIGTERM"));
64
64
  child.once("error", (error) => {
65
- console.error(`ragents ${command} konnte nicht gestartet werden: ${error.message}`);
65
+ console.error(`ragents ${command} could not be started: ${error.message}`);
66
66
  process.exit(1);
67
67
  });
68
68
  child.once("exit", (code, signal) => process.exit(code ?? (signal ? 1 : 0)));
69
69
  };
70
70
 
71
- // npm legt den Befehl als Verknüpfung ab; der Vergleich braucht deshalb den echten Pfad.
71
+ // npm installs the command as a link; the comparison therefore needs the real path.
72
72
  if (process.argv[1] && realpathSync(process.argv[1]) === fileURLToPath(import.meta.url)) main();
@@ -20,25 +20,25 @@ const removeOrphans = async (folders: readonly string[]): Promise<void> => {
20
20
  .filter((entry) => entry.isDirectory() && !entry.name.startsWith(".") && !ids.has(entry.name));
21
21
  for (const orphan of orphans) {
22
22
  await rm(path.join(bundlesRoot, orphan.name), { recursive: true, force: true });
23
- console.log(`entfernt: ${orphan.name} (kein Quellordner mehr)`);
23
+ console.log(`removed: ${orphan.name} (no source folder anymore)`);
24
24
  }
25
25
  };
26
26
 
27
- // Ohne Typprüfung, weil pnpm -r typecheck die Quellen schon prüft; nur Veraltetes, damit laufende Server und parallele Bauläufe ihre Bundles behalten.
27
+ // Without type checking, because pnpm -r typecheck already checks the sources; only outdated ones, so running servers and parallel builds keep their bundles.
28
28
  const main = async (argv: readonly string[]): Promise<number> => {
29
29
  const unknown = argv.filter((argument) => argument !== "--watch");
30
- if (unknown.length > 0) throw new Error(`Unbekanntes Argument: ${unknown.join(" ")} (erlaubt: --watch)`);
30
+ if (unknown.length > 0) throw new Error(`Unknown argument: ${unknown.join(" ")} (allowed: --watch)`);
31
31
  const folders = builtInPluginFolders();
32
32
  if (argv.includes("--watch")) {
33
33
  const watching = await watchPlugins(folders, { out: bundlesRoot }, printOutcome);
34
- console.log(`beobachte ${folders.length} eingebaute Plugins; Strg+C beendet`);
34
+ console.log(`watching ${folders.length} built-in plugins; Ctrl+C stops`);
35
35
  await untilStopped();
36
36
  await watching.stop();
37
37
  return 0;
38
38
  }
39
39
  const outcomes = await buildPlugins(folders, { out: bundlesRoot, typecheck: false, onlyOutdated: true });
40
40
  for (const outcome of outcomes) printOutcome(outcome);
41
- if (outcomes.length < folders.length) console.log(`aktuell: ${folders.length - outcomes.length} von ${folders.length} eingebauten Plugins, unverändert gelassen`);
41
+ if (outcomes.length < folders.length) console.log(`up to date: ${folders.length - outcomes.length} of ${folders.length} built-in plugins, left unchanged`);
42
42
  await removeOrphans(folders);
43
43
  return outcomes.every((outcome) => outcome.kind === "built") ? 0 : 1;
44
44
  };
@@ -5,14 +5,14 @@ import { callerDirectory } from "../../apps/server/src/profile-target.ts";
5
5
 
6
6
  export const DEFAULT_OUT = "dist/plugins";
7
7
 
8
- export const usage = (): string => `Verwendung: ragents plugin build <ordner...> [--out <ordner>] [--watch] [--no-typecheck]
8
+ export const usage = (): string => `Usage: ragents plugin build <folder...> [--out <folder>] [--watch] [--no-typecheck]
9
9
 
10
- Baut jeden Plugin-Quellordner mit ragents-plugin.json zu einem Bundle unter <out>/<kennung>,
11
- Vorgabe ./${DEFAULT_OUT}. Ein Bundle darf vom Host nur die Host-API beziehen und von anderen
12
- Plugins nur deren deklarierte Exporte; jede andere Stelle, ein Dateizugriff über den eigenen Ort
13
- (import.meta.url, __dirname, createRequire), eine Binärdatei (.node) und jeder Typfehler brechen
14
- den Bau mit Ursache ab. --watch baut bei jeder Änderung im Ordner neu und prüft keine Typen, das
15
- tut der Editor. Exit-Code 0, wenn alle Plugins gebaut sind, sonst 1.`;
10
+ Builds every plugin source folder with ragents-plugin.json into a bundle under <out>/<id>,
11
+ default ./${DEFAULT_OUT}. A bundle may take only the host API from the host and only their
12
+ declared exports from other plugins; any other location, a file access relative to its own
13
+ location (import.meta.url, __dirname, createRequire), a binary file (.node) and every type
14
+ error abort the build with the cause. --watch rebuilds on every change in the folder and does
15
+ not check types, the editor does that. Exit code 0 if all plugins are built, otherwise 1.`;
16
16
 
17
17
  export interface PluginCommand {
18
18
  readonly folders: readonly string[];
@@ -23,7 +23,7 @@ export interface PluginCommand {
23
23
 
24
24
  export const parsePluginArguments = (argv: readonly string[], caller = callerDirectory()): PluginCommand => {
25
25
  const [command, ...rest] = argv;
26
- if (command !== "build") throw new Error(command ? `Unbekannter Befehl: plugin ${command}\n\n${usage()}` : usage());
26
+ if (command !== "build") throw new Error(command ? `Unknown command: plugin ${command}\n\n${usage()}` : usage());
27
27
  const folders: string[] = [];
28
28
  const switches = new Set<string>();
29
29
  let out: string | undefined;
@@ -31,18 +31,18 @@ export const parsePluginArguments = (argv: readonly string[], caller = callerDir
31
31
  const argument = rest[index]!;
32
32
  if (argument === "--out") {
33
33
  const value = rest[index + 1];
34
- if (value === undefined || value.startsWith("--")) throw new Error("--out braucht einen Ordner.");
34
+ if (value === undefined || value.startsWith("--")) throw new Error("--out needs a folder.");
35
35
  out = value;
36
36
  index += 1;
37
37
  } else if (argument === "--watch" || argument === "--no-typecheck") {
38
38
  switches.add(argument);
39
39
  } else if (argument.startsWith("--")) {
40
- throw new Error(`Unbekanntes Argument: ${argument}\n\n${usage()}`);
40
+ throw new Error(`Unknown argument: ${argument}\n\n${usage()}`);
41
41
  } else {
42
42
  folders.push(path.resolve(caller, argument));
43
43
  }
44
44
  }
45
- if (folders.length === 0) throw new Error(`plugin build braucht mindestens einen Plugin-Ordner.\n\n${usage()}`);
45
+ if (folders.length === 0) throw new Error(`plugin build needs at least one plugin folder.\n\n${usage()}`);
46
46
  return {
47
47
  folders,
48
48
  out: path.resolve(caller, out ?? DEFAULT_OUT),
@@ -58,8 +58,8 @@ const shown = (folder: string, caller: string): string => {
58
58
 
59
59
  export const outcomeLines = (outcome: PluginBuildOutcome, caller = callerDirectory()): readonly string[] =>
60
60
  outcome.kind === "built"
61
- ? [`gebaut: ${outcome.id} -> ${shown(outcome.bundle, caller)} (${outcome.milliseconds} ms${outcome.manifest.uses.length > 0 ? `, nutzt ${outcome.manifest.uses.join(", ")}` : ""})`]
62
- : [`fehlgeschlagen: ${outcome.id} (${shown(outcome.source, caller)})`, ...outcome.problems.map((problem) => ` ${problem.replaceAll("\n", "\n ")}`)];
61
+ ? [`built: ${outcome.id} -> ${shown(outcome.bundle, caller)} (${outcome.milliseconds} ms${outcome.manifest.uses.length > 0 ? `, uses ${outcome.manifest.uses.join(", ")}` : ""})`]
62
+ : [`failed: ${outcome.id} (${shown(outcome.source, caller)})`, ...outcome.problems.map((problem) => ` ${problem.replaceAll("\n", "\n ")}`)];
63
63
 
64
64
  export const printOutcome = (outcome: PluginBuildOutcome): void => {
65
65
  const lines = outcomeLines(outcome).join("\n");
@@ -80,7 +80,7 @@ export const main = async (argv: readonly string[]): Promise<number> => {
80
80
  const command = parsePluginArguments(argv);
81
81
  if (command.watch) {
82
82
  const watching = await watchPlugins(command.folders, { out: command.out }, printOutcome);
83
- console.log(`beobachte ${command.folders.length} Plugin-Ordner; Strg+C beendet`);
83
+ console.log(`watching ${command.folders.length} plugin folders; Ctrl+C stops`);
84
84
  await untilStopped();
85
85
  await watching.stop();
86
86
  return 0;
@@ -17,22 +17,21 @@ const PROFILE_FILE = /^ragents\.config\.([a-z0-9]+(?:-[a-z0-9]+)*)\.ts$/;
17
17
 
18
18
  const repositoryRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../..");
19
19
 
20
- const usage = (): string => `Verwendung: pnpm provision [<profil>|<pfad zu ragents.config.<profil>.ts>|--workspace]
21
- Provisioniert die Werkzeuge der Plugins eines Profils nach <Datenordner>/tools/<plugin-id>/ und
22
- berichtet je Plugin bereit, installiert oder fehlt. --workspace provisioniert stattdessen die
23
- eingebauten Plugins, die zum Executor eines Arbeitsplatzes beitragen. Ein relativer Pfad gilt ab dem
24
- aufrufenden Ordner; ohne Argument gilt das Profil aus der Umgebung (PRODUCT_PROFILE_FILE oder
25
- PRODUCT_PROFILE).`;
20
+ const usage = (): string => `Usage: pnpm provision [<profile>|<path to ragents.config.<profile>.ts>|--workspace]
21
+ Provisions the tools of a profile's plugins to <data folder>/tools/<plugin-id>/ and reports per
22
+ plugin ready, installed or missing. --workspace instead provisions the built-in plugins that
23
+ contribute to a workspace's executor. A relative path is resolved from the calling folder; without
24
+ an argument the profile from the environment applies (PRODUCT_PROFILE_FILE or PRODUCT_PROFILE).`;
26
25
 
27
26
  const availableProfiles = (): readonly string[] => readdirSync(repositoryRoot)
28
27
  .map((name) => PROFILE_FILE.exec(name)?.[1])
29
28
  .filter((name): name is string => name !== undefined && name !== "example")
30
29
  .sort();
31
30
 
32
- /** Ein Name gilt neben dem Host, ein Pfad ab dem Aufrufer, wie bei ragents start. */
31
+ /** A name applies next to the host, a path from the caller, as with ragents start. */
33
32
  export const selectedProfile = (selection: string, root = repositoryRoot, caller = callerDirectory()): { profile: string; file: string } => {
34
33
  const own = localProfile(selection, root, caller);
35
- if (!own) throw new Error(`Konfiguration fehlt: ${path.join(root, profileFileName(selection))}`);
34
+ if (!own) throw new Error(`Configuration is missing: ${path.join(root, profileFileName(selection))}`);
36
35
  return { profile: own.profile, file: own.profileFile };
37
36
  };
38
37
 
@@ -42,26 +41,26 @@ const forProfile = async (selection: string): Promise<readonly PluginProvisionRe
42
41
  process.env.PRODUCT_PROFILE_FILE = file;
43
42
  await loadConfigFile();
44
43
  const { config } = await import("../../apps/server/src/config.ts");
45
- console.log(`== Provisionierung Profil ${profile} (${file})`);
46
- console.log(`== Werkzeuge unter ${path.join(config.dataDir, "tools")}`);
44
+ console.log(`== Provisioning profile ${profile} (${file})`);
45
+ console.log(`== Tools under ${path.join(config.dataDir, "tools")}`);
47
46
  return provisionPlugins(resolvePluginEntries(config.plugins), config.dataDir, (line) => console.log(line));
48
47
  };
49
48
 
50
49
  const forWorkspace = (): Promise<readonly PluginProvisionReport[]> => {
51
- console.log("== Provisionierung Arbeitsplatz");
52
- console.log(`== Werkzeuge unter ${path.join(hostDataDirectory(), "tools")}`);
50
+ console.log("== Provisioning workspace");
51
+ console.log(`== Tools under ${path.join(hostDataDirectory(), "tools")}`);
53
52
  return provisionWorkspace((line) => console.log(line));
54
53
  };
55
54
 
56
55
  const main = async (): Promise<void> => {
57
56
  const argv = process.argv.slice(2);
58
57
  if (argv.length > 1 || argv.some((argument) => argument.startsWith("-") && argument !== "--workspace")) {
59
- throw new Error(`Unerwartete Argumente: ${argv.join(" ")}\n${usage()}`);
58
+ throw new Error(`Unexpected arguments: ${argv.join(" ")}\n${usage()}`);
60
59
  }
61
60
  const selection = argv[0] ?? process.env.PRODUCT_PROFILE_FILE ?? process.env.PRODUCT_PROFILE;
62
- if (!selection) throw new Error(`Kein Profil genannt; im Repository liegen ${availableProfiles().join(", ")}.\n${usage()}`);
61
+ if (!selection) throw new Error(`No profile named; the repository contains ${availableProfiles().join(", ")}.\n${usage()}`);
63
62
  const reports = selection === "--workspace" ? await forWorkspace() : await forProfile(selection);
64
- if (reports.length === 0) console.log("Kein Plugin bringt eine Provisionierung mit.");
63
+ if (reports.length === 0) console.log("No plugin brings a provisioning.");
65
64
  if (reports.some((report) => report.outcome === "missing")) process.exitCode = 1;
66
65
  };
67
66