@schlenkr/ragents 0.1.5 → 0.1.6

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 (1052) hide show
  1. package/README.md +18 -11
  2. package/apps/server/package.json +8 -6
  3. package/apps/server/src/access-projection.ts +3 -3
  4. package/apps/server/src/access-service.ts +19 -8
  5. package/apps/server/src/access-session.ts +6 -2
  6. package/apps/server/src/api/contracts.ts +19 -18
  7. package/apps/server/src/api/core-methods.ts +45 -26
  8. package/apps/server/src/api/delivery.ts +4 -4
  9. package/apps/server/src/api/reference.ts +1 -1
  10. package/apps/server/src/api/rights.ts +86 -7
  11. package/apps/server/src/chat-context.ts +1 -1
  12. package/apps/server/src/chat-handler.ts +14 -7
  13. package/apps/server/src/config-file.ts +25 -6
  14. package/apps/server/src/config.ts +4 -4
  15. package/apps/server/src/data-directory.ts +1 -1
  16. package/apps/server/src/folder-install.ts +115 -0
  17. package/apps/server/src/host-api.json +1256 -0
  18. package/apps/server/src/host-api.ts +190 -0
  19. package/apps/server/src/host-resolution-hooks.mjs +50 -1
  20. package/apps/server/src/host-resolution.ts +26 -1
  21. package/apps/server/src/host-version.ts +41 -0
  22. package/apps/server/src/host-web.ts +59 -0
  23. package/apps/server/src/layout.ts +1 -1
  24. package/apps/server/src/main.ts +3 -2
  25. package/apps/server/src/missing-environment.ts +47 -0
  26. package/apps/server/src/parent-watch.ts +37 -0
  27. package/apps/server/src/plugin-build/build.ts +650 -0
  28. package/apps/server/src/plugin-build/host-api-names.ts +185 -0
  29. package/apps/server/src/plugin-build/plugin-description.ts +118 -0
  30. package/apps/server/src/plugin-build/typecheck.ts +66 -0
  31. package/{plugins/ragents.actor-programs/server → apps/server/src/plugin-support/actor-programs}/app-project.ts +16 -15
  32. package/{plugins/ragents.actor-programs/server → apps/server/src/plugin-support/actor-programs}/client-compiler.ts +4 -4
  33. package/{plugins/ragents.actor-programs/server → apps/server/src/plugin-support/actor-programs}/client-contracts.ts +4 -4
  34. package/apps/server/src/plugin-support/actor-programs/client-runtime.ts +27 -0
  35. package/{plugins/ragents.actor-programs → apps/server/src/plugin-support/actor-programs}/contract.ts +3 -3
  36. package/apps/server/src/plugin-support/actor-programs/service.ts +1 -1
  37. package/{plugins/ragents.actor-programs/server → apps/server/src/plugin-support/actor-programs}/tailwind.ts +2 -3
  38. package/{plugins/ragents.actor-programs → apps/server/src/plugin-support/actor-programs}/workflow/index.ts +48 -48
  39. package/apps/server/src/plugin-support/agent-tool.ts +10 -5
  40. package/apps/server/src/plugin-support/http.ts +1 -1
  41. package/apps/server/src/plugin-support/language-server/contract.ts +37 -6
  42. package/apps/server/src/plugin-support/language-server/plugin.ts +18 -8
  43. package/apps/server/src/plugin-support/language-server/snapshot-method.ts +32 -7
  44. package/apps/server/src/plugin-support/language-server/tools.ts +59 -15
  45. package/apps/server/src/plugin-support/model-aliases.ts +77 -0
  46. package/apps/server/src/plugin-support/model-choice.ts +17 -7
  47. package/apps/server/src/plugin-support/model-completion.ts +58 -0
  48. package/apps/server/src/plugin-support/model-upstreams.ts +2 -2
  49. package/apps/server/src/plugin-support/native-typescript-executor.ts +10 -7
  50. package/apps/server/src/plugin-support/plugin-config.ts +1 -1
  51. package/apps/server/src/plugin-support/plugin-folder.ts +4 -1
  52. package/apps/server/src/plugin-support/plugin-module.ts +1 -1
  53. package/apps/server/src/plugin-support/plugins-root.ts +6 -10
  54. package/apps/server/src/plugin-support/process-sandbox.ts +312 -0
  55. package/apps/server/src/plugin-support/product-model-settings-contract.ts +14 -5
  56. package/apps/server/src/plugin-support/product-model-settings.ts +10 -9
  57. package/{plugins/ragents.product/server/relay.ts → apps/server/src/plugin-support/product-relay.ts} +2 -2
  58. package/apps/server/src/plugin-support/product-start-options.ts +8 -3
  59. package/apps/server/src/plugin-support/prompt.ts +1 -1
  60. package/apps/server/src/plugin-support/provision.ts +6 -0
  61. package/apps/server/src/plugin-support/run-scripts.ts +16 -2
  62. package/apps/server/src/plugin-support/skills.ts +32 -16
  63. package/apps/server/src/plugin-support/start-entries-contract.ts +12 -3
  64. package/apps/server/src/plugin-support/start-options-contract.ts +5 -1
  65. package/apps/server/src/plugin-support/thinking-level.ts +6 -1
  66. package/apps/server/src/plugin-support/tool-availability.ts +1 -7
  67. package/apps/server/src/plugin-support/workspace-ownership.ts +12 -6
  68. package/apps/server/src/plugin-support/workspace-sandbox-host.ts +184 -37
  69. package/apps/server/src/profile/bundle-manifest.ts +183 -0
  70. package/apps/server/src/profile/compose.ts +19 -10
  71. package/apps/server/src/profile/plugin-discovery.ts +98 -46
  72. package/apps/server/src/profile/provisioning.ts +30 -26
  73. package/apps/server/src/profile-target.ts +3 -0
  74. package/apps/server/src/provider.ts +182 -99
  75. package/apps/server/src/ragents/actor-chat-history.ts +23 -22
  76. package/apps/server/src/ragents/chat-projection.ts +25 -14
  77. package/apps/server/src/ragents/chat-text-positions.ts +4 -4
  78. package/apps/server/src/ragents/coordinator.ts +27 -1
  79. package/apps/server/src/ragents/document-store.ts +1 -1
  80. package/apps/server/src/ragents/engine.ts +69 -36
  81. package/apps/server/src/ragents/global-chat.ts +26 -13
  82. package/apps/server/src/ragents/host-services.ts +15 -6
  83. package/apps/server/src/ragents/journal-chat-events.ts +31 -15
  84. package/apps/server/src/ragents/product-runtime.ts +1 -1
  85. package/apps/server/src/ragents/run-owner.ts +17 -0
  86. package/apps/server/src/ragents/runtime-bridge.ts +1 -1
  87. package/apps/server/src/ragents/session.ts +181 -82
  88. package/apps/server/src/ragents/start-option-state.ts +1 -1
  89. package/apps/server/src/ragents/typescript-tools.ts +35 -27
  90. package/apps/server/src/ragents/workspace-runtime.ts +74 -8
  91. package/apps/server/src/rpc/dispatcher.ts +17 -8
  92. package/apps/server/src/rpc/http-transport.ts +1 -3
  93. package/apps/server/src/rpc/stdio-transport.ts +1 -1
  94. package/apps/server/src/run-preparation-contract.ts +1 -1
  95. package/apps/server/src/run-preparation-input.ts +1 -1
  96. package/apps/server/src/run-preparation.ts +13 -20
  97. package/apps/server/src/run-transfer.ts +2 -2
  98. package/apps/server/src/server.ts +112 -33
  99. package/apps/server/src/settings.ts +7 -8
  100. package/apps/server/src/title-compactor.ts +5 -8
  101. package/apps/server/src/title-settings.ts +3 -3
  102. package/apps/server/src/web-bundles.ts +79 -0
  103. package/apps/server/src/web-stylesheet.ts +85 -0
  104. package/apps/server/tsconfig.json +4 -4
  105. package/apps/server/tsconfig.plugin.json +58 -0
  106. package/apps/web/dist/assets/highlighted-body-KPVGNVTW-B9qYBARS.js +1 -0
  107. package/apps/web/dist/assets/main-BCjvD2Hh.js +6 -0
  108. package/apps/web/dist/assets/mermaid-HWGCJPDP-BPn4aV2r.css +1 -0
  109. package/apps/web/dist/assets/mermaid-HWGCJPDP-CvYYFK_n.js +478 -0
  110. package/apps/web/dist/assets/runPanel-CG7kRMJh.js +21 -0
  111. package/apps/web/dist/help/guide-access.html +199 -0
  112. package/apps/web/dist/help/guide-access.md +84 -0
  113. package/apps/web/dist/help/guide-clients.html +421 -0
  114. package/apps/web/dist/help/guide-clients.md +336 -0
  115. package/apps/web/dist/help/guide-distributed.html +320 -0
  116. package/apps/web/dist/help/guide-distributed.md +225 -0
  117. package/apps/web/dist/help/guide-functions.html +231 -0
  118. package/apps/web/dist/help/guide-functions.md +127 -0
  119. package/apps/web/dist/help/guide-getting-started.html +230 -0
  120. package/apps/web/dist/help/guide-getting-started.md +123 -0
  121. package/apps/web/dist/help/guide-ideas.html +183 -0
  122. package/apps/web/dist/help/guide-ideas.md +71 -0
  123. package/apps/web/dist/help/guide-plugins.html +450 -0
  124. package/apps/web/dist/help/guide-plugins.md +341 -0
  125. package/apps/web/dist/help/guide-programs.html +359 -0
  126. package/apps/web/dist/help/guide-programs.md +271 -0
  127. package/apps/web/dist/help/guide-runtime.html +338 -0
  128. package/apps/web/dist/help/guide-runtime.md +225 -0
  129. package/apps/web/dist/help/guide.html +133 -0
  130. package/apps/web/dist/help/guide.md +13 -0
  131. package/apps/web/dist/help/homepage-bullets.js +12 -0
  132. package/apps/web/dist/help/homepage-distributed.js +261 -0
  133. package/apps/web/dist/help/homepage-plugins.js +30 -0
  134. package/apps/web/dist/help/homepage-scenes.js +368 -0
  135. package/apps/web/dist/help/homepage-stickers.js +69 -0
  136. package/apps/web/dist/help/homepage-story-nav.js +11 -0
  137. package/apps/web/dist/help/homepage-subnav.js +61 -0
  138. package/apps/web/dist/help/homepage.css +833 -0
  139. package/apps/web/dist/help/index.html +1167 -0
  140. package/apps/web/dist/help/mini-app.css +7056 -0
  141. package/apps/web/dist/help/mini-app.html +15 -0
  142. package/apps/web/dist/help/mini-app.js +131 -0
  143. package/apps/web/dist/help/screenshots/release-checklist-vscode.png +0 -0
  144. package/apps/web/dist/help/screenshots/release-checklist-web.png +0 -0
  145. package/apps/web/dist/help/scroll-vendor.js +73 -0
  146. package/apps/web/dist/help/site.css +63 -0
  147. package/apps/web/dist/help/site.js +103 -0
  148. package/apps/web/dist/host-web.json +143 -0
  149. package/apps/web/dist/index.html +15 -0
  150. package/apps/web/dist/run-panel.html +15 -0
  151. package/apps/web/package.json +2 -2
  152. package/apps/web/src/App.tsx +8 -6
  153. package/apps/web/src/Overview.tsx +5 -5
  154. package/apps/web/src/PluginActivation.ts +25 -5
  155. package/apps/web/src/PluginChat.tsx +163 -129
  156. package/apps/web/src/PluginFailureNotice.tsx +15 -0
  157. package/apps/web/src/PluginRegistry.tsx +106 -68
  158. package/apps/web/src/RunPreparationChat.tsx +40 -28
  159. package/apps/web/src/RunStore.ts +2 -2
  160. package/apps/web/src/SettingsModal.tsx +37 -37
  161. package/apps/web/src/StartOptions.tsx +81 -26
  162. package/apps/web/src/StartSelection.tsx +111 -0
  163. package/apps/web/src/StartTiles.tsx +73 -0
  164. package/apps/web/src/{CanvasShortcuts.tsx → SurfaceShortcuts.tsx} +2 -2
  165. package/apps/web/src/ThemeSettings.tsx +1 -1
  166. package/apps/web/src/WorkspacePanel.tsx +4 -4
  167. package/apps/web/src/access-session.ts +4 -1
  168. package/{plugins/ragents.orchestration/web → apps/web/src}/actor-conversation.ts +3 -3
  169. package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/DataTable.tsx +9 -9
  170. package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/FilePicker.tsx +4 -4
  171. package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/FlowDiagram.tsx +16 -14
  172. package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/FlowDiagramRenderer.tsx +3 -3
  173. package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/Form.tsx +12 -12
  174. package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/Layout.tsx +1 -1
  175. package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/MessageList.tsx +5 -5
  176. package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/Viewers.tsx +8 -7
  177. package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/WorkflowDiagram.tsx +1 -1
  178. package/apps/web/src/actor-programs/client-ui/chat-contracts.d.ts +64 -0
  179. package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/contracts.d.ts +2 -2
  180. package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/file-selection.ts +5 -5
  181. package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/index.tsx +22 -16
  182. package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/layout-contracts.d.ts +1 -1
  183. package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/message-list-contracts.d.ts +2 -2
  184. package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/workflow-diagram-contracts.d.ts +1 -1
  185. package/apps/web/src/api.ts +43 -22
  186. package/apps/web/src/chat/QuasselHost.tsx +12 -0
  187. package/apps/web/src/chat/StoppedActorNotice.tsx +39 -0
  188. package/apps/web/src/chat/chat-target.ts +14 -5
  189. package/apps/web/src/chat/requests.ts +13 -5
  190. package/apps/web/src/chat/useAttachmentCapabilities.ts +2 -2
  191. package/apps/web/src/chat/useChat.ts +8 -7
  192. package/apps/web/src/chat/user-location.ts +1 -1
  193. package/apps/web/src/chat-view-settings.tsx +49 -0
  194. package/apps/web/src/host-modules.ts +90 -0
  195. package/apps/web/src/language-server/api.ts +24 -0
  196. package/{plugins/ragents.lsp-roslyn/web → apps/web/src/language-server}/language-server-plugin.tsx +133 -6
  197. package/apps/web/src/main.tsx +4 -2
  198. package/apps/web/src/offered-machines.ts +11 -0
  199. package/apps/web/src/panel/ConnectionsPage.tsx +117 -0
  200. package/apps/web/src/panel/LoginForm.tsx +9 -9
  201. package/apps/web/src/panel/PanelDialogs.tsx +44 -27
  202. package/apps/web/src/panel/PanelHeader.tsx +11 -0
  203. package/apps/web/src/panel/PanelPage.tsx +8 -5
  204. package/apps/web/src/panel/RunLine.tsx +48 -0
  205. package/apps/web/src/panel/RunsPage.tsx +84 -0
  206. package/apps/web/src/panel/StartPage.tsx +163 -0
  207. package/apps/web/src/panel/connection-state.ts +40 -0
  208. package/apps/web/src/panel/contract.ts +64 -21
  209. package/apps/web/src/panel/page-props.ts +6 -0
  210. package/apps/web/src/plugin-bootstrap.ts +60 -31
  211. package/{plugins/ragents.product/web → apps/web/src/product}/ModelControl.tsx +3 -3
  212. package/{plugins/ragents.product/web → apps/web/src/product}/ProductModelSettings.tsx +7 -7
  213. package/{plugins/ragents.product/web → apps/web/src/product}/SystemPromptControl.tsx +3 -3
  214. package/{plugins/ragents.product/web → apps/web/src/product}/model-settings.ts +3 -3
  215. package/{plugins/ragents.product/web → apps/web/src/product}/start-options.tsx +2 -2
  216. package/apps/web/src/rpc/client.ts +28 -6
  217. package/apps/web/src/run-panel/RunPanelApp.tsx +334 -0
  218. package/apps/web/src/{column/ColumnRunHeader.tsx → run-panel/RunPanelHeader.tsx} +2 -2
  219. package/apps/web/src/{column/ColumnMenu.tsx → run-panel/RunPanelMenu.tsx} +4 -4
  220. package/apps/web/src/run-panel/RunPanelRail.tsx +38 -0
  221. package/apps/web/src/run-panel/RunPanelWorkspace.tsx +55 -0
  222. package/apps/web/src/{column → run-panel}/clipboard.ts +21 -10
  223. package/apps/web/src/run-panel/host-contract.ts +123 -0
  224. package/apps/web/src/{column → run-panel}/host.ts +31 -23
  225. package/apps/web/src/run-panel/input-bridge.ts +75 -0
  226. package/apps/web/src/run-panel/keyboard.ts +53 -0
  227. package/apps/web/src/run-panel/run-panel-location.ts +35 -0
  228. package/apps/web/src/{column → run-panel}/use-session-list.ts +3 -3
  229. package/apps/web/src/run-panel/workspace-state.ts +43 -0
  230. package/apps/web/src/{column.tsx → run-panel.tsx} +20 -13
  231. package/apps/web/src/run-preparation.ts +1 -1
  232. package/{plugins/ragents.orchestration/web → apps/web/src}/run-view.ts +25 -7
  233. package/apps/web/src/settings-contributions.ts +16 -18
  234. package/apps/web/src/title-model-settings.ts +1 -1
  235. package/apps/web/src/toolLine.ts +1 -1
  236. package/apps/web/src/ui/ListDetail.tsx +1 -1
  237. package/apps/web/src/ui/dialog.tsx +5 -5
  238. package/apps/web/src/ui/frame.css +1 -0
  239. package/apps/web/src/ui/index.ts +5 -0
  240. package/apps/web/src/ui/popover.tsx +2 -2
  241. package/apps/web/src/ui/quassel.css +41 -0
  242. package/apps/web/src/ui/relative-time.ts +36 -0
  243. package/apps/web/src/ui/startup-notice.tsx +22 -0
  244. package/apps/web/src/ui/state-icon.tsx +60 -0
  245. package/apps/web/src/ui/state-vocabulary.ts +31 -0
  246. package/apps/web/src/ui/stop-button.tsx +22 -0
  247. package/apps/web/src/ui/tailwind.css +2 -3
  248. package/apps/web/src/ui/theme.css +19 -19
  249. package/apps/web/tsconfig.json +4 -5
  250. package/apps/web/tsconfig.plugin.json +44 -0
  251. package/bundles/ragents.activity/ragents-bundle.json +38 -0
  252. package/bundles/ragents.activity/server/index.js +14 -0
  253. package/bundles/ragents.activity/server/index.js.map +7 -0
  254. package/bundles/ragents.activity/web/classes.json +1 -0
  255. package/bundles/ragents.activity/web/index.js +2 -0
  256. package/bundles/ragents.activity/web/index.js.map +7 -0
  257. package/bundles/ragents.actor-programs/prompt.hbs +80 -0
  258. package/bundles/ragents.actor-programs/ragents-bundle.json +214 -0
  259. package/bundles/ragents.actor-programs/server/index.js +2071 -0
  260. package/bundles/ragents.actor-programs/server/index.js.map +7 -0
  261. package/bundles/ragents.actor-programs/summary.hbs +17 -0
  262. package/bundles/ragents.actor-programs/web/classes.json +1 -0
  263. package/bundles/ragents.actor-programs/web/index.js +27 -0
  264. package/bundles/ragents.actor-programs/web/index.js.map +7 -0
  265. package/bundles/ragents.ask/ask.hbs +4 -0
  266. package/bundles/ragents.ask/ragents-bundle.json +97 -0
  267. package/bundles/ragents.ask/server/chunks/chunk-PDJO75SQ.js +13 -0
  268. package/bundles/ragents.ask/server/chunks/chunk-PDJO75SQ.js.map +7 -0
  269. package/bundles/ragents.ask/server/exports/server/contract.js +11 -0
  270. package/bundles/ragents.ask/server/exports/server/contract.js.map +7 -0
  271. package/bundles/ragents.ask/server/index.js +279 -0
  272. package/bundles/ragents.ask/server/index.js.map +7 -0
  273. package/bundles/ragents.ask/web/chunks/chunk-4VXWWEG7.js +2 -0
  274. package/bundles/ragents.ask/web/chunks/chunk-4VXWWEG7.js.map +7 -0
  275. package/bundles/ragents.ask/web/chunks/chunk-HGFDGTNC.js +2 -0
  276. package/bundles/ragents.ask/web/chunks/chunk-HGFDGTNC.js.map +7 -0
  277. package/bundles/ragents.ask/web/chunks/chunk-V7W3QDVS.js +25 -0
  278. package/bundles/ragents.ask/web/chunks/chunk-V7W3QDVS.js.map +7 -0
  279. package/bundles/ragents.ask/web/chunks/chunk-VUBJDIKQ.js +2 -0
  280. package/bundles/ragents.ask/web/chunks/chunk-VUBJDIKQ.js.map +7 -0
  281. package/bundles/ragents.ask/web/classes.json +1 -0
  282. package/bundles/ragents.ask/web/exports/ask-payload.js +2 -0
  283. package/bundles/ragents.ask/web/exports/ask-payload.js.map +7 -0
  284. package/bundles/ragents.ask/web/exports/web/QuestionCard.js +2 -0
  285. package/bundles/ragents.ask/web/exports/web/QuestionCard.js.map +7 -0
  286. package/bundles/ragents.ask/web/exports/web/api.js +2 -0
  287. package/bundles/ragents.ask/web/exports/web/api.js.map +7 -0
  288. package/bundles/ragents.ask/web/index.js +2 -0
  289. package/bundles/ragents.ask/web/index.js.map +7 -0
  290. package/bundles/ragents.browser/ragents-bundle.json +53 -0
  291. package/bundles/ragents.browser/server/chunks/chunk-2GKLLCBE.js +11 -0
  292. package/bundles/ragents.browser/server/chunks/chunk-2GKLLCBE.js.map +7 -0
  293. package/bundles/ragents.browser/server/exports/server/contract.js +9 -0
  294. package/bundles/ragents.browser/server/exports/server/contract.js.map +7 -0
  295. package/bundles/ragents.browser/server/index.js +479 -0
  296. package/bundles/ragents.browser/server/index.js.map +7 -0
  297. package/bundles/ragents.browser/skills/browser-testing/SKILL.md +38 -0
  298. package/bundles/ragents.documents/prompt.hbs +18 -0
  299. package/bundles/ragents.documents/ragents-bundle.json +120 -0
  300. package/bundles/ragents.documents/server/chunks/chunk-QIECRZ7C.js +37 -0
  301. package/bundles/ragents.documents/server/chunks/chunk-QIECRZ7C.js.map +7 -0
  302. package/bundles/ragents.documents/server/exports/contract.js +11 -0
  303. package/bundles/ragents.documents/server/exports/contract.js.map +7 -0
  304. package/bundles/ragents.documents/server/index.js +290 -0
  305. package/bundles/ragents.documents/server/index.js.map +7 -0
  306. package/bundles/ragents.documents/web/classes.json +1 -0
  307. package/bundles/ragents.documents/web/index.js +26 -0
  308. package/bundles/ragents.documents/web/index.js.map +7 -0
  309. package/bundles/ragents.lsp-fsharp/ragents-bundle.json +49 -0
  310. package/bundles/ragents.lsp-fsharp/server/index.js +82 -0
  311. package/bundles/ragents.lsp-fsharp/server/index.js.map +7 -0
  312. package/bundles/ragents.lsp-fsharp/web/classes.json +1 -0
  313. package/bundles/ragents.lsp-fsharp/web/index.js +2 -0
  314. package/bundles/ragents.lsp-fsharp/web/index.js.map +7 -0
  315. package/bundles/ragents.lsp-roslyn/ragents-bundle.json +61 -0
  316. package/bundles/ragents.lsp-roslyn/server/index.js +208 -0
  317. package/bundles/ragents.lsp-roslyn/server/index.js.map +7 -0
  318. package/bundles/ragents.lsp-roslyn/web/classes.json +1 -0
  319. package/bundles/ragents.lsp-roslyn/web/index.js +2 -0
  320. package/bundles/ragents.lsp-roslyn/web/index.js.map +7 -0
  321. package/bundles/ragents.lsp-typescript/ragents-bundle.json +36 -0
  322. package/bundles/ragents.lsp-typescript/server/index.js +13 -0
  323. package/bundles/ragents.lsp-typescript/server/index.js.map +7 -0
  324. package/bundles/ragents.lsp-typescript/web/classes.json +1 -0
  325. package/bundles/ragents.lsp-typescript/web/index.js +2 -0
  326. package/bundles/ragents.lsp-typescript/web/index.js.map +7 -0
  327. package/bundles/ragents.model-relay/ragents-bundle.json +33 -0
  328. package/bundles/ragents.model-relay/server/index.js +230 -0
  329. package/bundles/ragents.model-relay/server/index.js.map +7 -0
  330. package/bundles/ragents.orchestration/orchestration.hbs +106 -0
  331. package/bundles/ragents.orchestration/ragents-bundle.json +194 -0
  332. package/bundles/ragents.orchestration/server/index.js +277 -0
  333. package/bundles/ragents.orchestration/server/index.js.map +7 -0
  334. package/bundles/ragents.orchestration/web/chunks/chunk-ODMMQGX2.js +2 -0
  335. package/bundles/ragents.orchestration/web/chunks/chunk-ODMMQGX2.js.map +7 -0
  336. package/bundles/ragents.orchestration/web/chunks/chunk-OQYCNYXN.js +2 -0
  337. package/bundles/ragents.orchestration/web/chunks/chunk-OQYCNYXN.js.map +7 -0
  338. package/bundles/ragents.orchestration/web/chunks/chunk-OSKPH6SZ.js +2 -0
  339. package/bundles/ragents.orchestration/web/chunks/chunk-OSKPH6SZ.js.map +7 -0
  340. package/bundles/ragents.orchestration/web/chunks/chunk-XGPPQCZR.js +2 -0
  341. package/bundles/ragents.orchestration/web/chunks/chunk-XGPPQCZR.js.map +7 -0
  342. package/bundles/ragents.orchestration/web/classes.json +1 -0
  343. package/bundles/ragents.orchestration/web/exports/web/program-slot.js +2 -0
  344. package/bundles/ragents.orchestration/web/exports/web/program-slot.js.map +7 -0
  345. package/bundles/ragents.orchestration/web/exports/web/surface-entities.js +2 -0
  346. package/bundles/ragents.orchestration/web/exports/web/surface-entities.js.map +7 -0
  347. package/bundles/ragents.orchestration/web/exports/web/tile-docking.js +2 -0
  348. package/bundles/ragents.orchestration/web/exports/web/tile-docking.js.map +7 -0
  349. package/bundles/ragents.orchestration/web/index.js +51 -0
  350. package/bundles/ragents.orchestration/web/index.js.map +7 -0
  351. package/bundles/ragents.overseer/ragents-bundle.json +144 -0
  352. package/bundles/ragents.overseer/server/index.js +652 -0
  353. package/bundles/ragents.overseer/server/index.js.map +7 -0
  354. package/bundles/ragents.overseer/web/classes.json +1 -0
  355. package/bundles/ragents.overseer/web/index.js +25 -0
  356. package/bundles/ragents.overseer/web/index.js.map +7 -0
  357. package/bundles/ragents.processes/ragents-bundle.json +93 -0
  358. package/bundles/ragents.processes/server/index.js +204 -0
  359. package/bundles/ragents.processes/server/index.js.map +7 -0
  360. package/bundles/ragents.processes/web/classes.json +1 -0
  361. package/bundles/ragents.processes/web/index.js +4 -0
  362. package/bundles/ragents.processes/web/index.js.map +7 -0
  363. package/bundles/ragents.product/preamble.hbs +9 -0
  364. package/bundles/ragents.product/ragents-bundle.json +93 -0
  365. package/bundles/ragents.product/server/index.js +208 -0
  366. package/bundles/ragents.product/server/index.js.map +7 -0
  367. package/bundles/ragents.product/web/classes.json +1 -0
  368. package/bundles/ragents.product/web/index.js +2 -0
  369. package/bundles/ragents.product/web/index.js.map +7 -0
  370. package/bundles/ragents.profile-distribution/ragents-bundle.json +64 -0
  371. package/bundles/ragents.profile-distribution/server/index.js +241 -0
  372. package/bundles/ragents.profile-distribution/server/index.js.map +7 -0
  373. package/bundles/ragents.reference/ragents-bundle.json +39 -0
  374. package/bundles/ragents.reference/run-scripts/balcony-wizard/RUN.md +27 -0
  375. package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/package.json +10 -0
  376. package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/client.tsx +80 -0
  377. package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/conversation.ts +82 -0
  378. package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/tests/conversation.test.ts +154 -0
  379. package/bundles/ragents.reference/run-scripts/balcony-wizard/package.json +9 -0
  380. package/bundles/ragents.reference/run-scripts/balcony-wizard/src/server.ts +32 -0
  381. package/bundles/ragents.reference/run-scripts/balcony-wizard/tests/program.test.ts +59 -0
  382. package/bundles/ragents.reference/run-scripts/conversation-circle/RUN.md +13 -0
  383. package/bundles/ragents.reference/run-scripts/conversation-circle/package.json +9 -0
  384. package/bundles/ragents.reference/run-scripts/conversation-circle/src/server.ts +81 -0
  385. package/bundles/ragents.reference/run-scripts/conversation-circle/tests/helpers.ts +26 -0
  386. package/bundles/ragents.reference/run-scripts/conversation-circle/tests/program.test.ts +34 -0
  387. package/bundles/ragents.reference/run-scripts/learning-afternoon/RUN.md +24 -0
  388. package/bundles/ragents.reference/run-scripts/learning-afternoon/package.json +10 -0
  389. package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/experiment.md +1 -0
  390. package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/helper.md +5 -0
  391. package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/quiz.md +1 -0
  392. package/bundles/ragents.reference/run-scripts/learning-afternoon/src/client.tsx +27 -0
  393. package/bundles/ragents.reference/run-scripts/learning-afternoon/src/server.ts +137 -0
  394. package/bundles/ragents.reference/run-scripts/learning-afternoon/src/state.ts +38 -0
  395. package/bundles/ragents.reference/run-scripts/learning-afternoon/src/view.tsx +42 -0
  396. package/bundles/ragents.reference/run-scripts/learning-afternoon/src/workflow.ts +38 -0
  397. package/bundles/ragents.reference/run-scripts/learning-afternoon/tests/program.test.ts +218 -0
  398. package/bundles/ragents.reference/run-scripts/moderated-round/RUN.md +12 -0
  399. package/bundles/ragents.reference/run-scripts/moderated-round/package.json +9 -0
  400. package/bundles/ragents.reference/run-scripts/moderated-round/src/server.ts +60 -0
  401. package/bundles/ragents.reference/run-scripts/moderated-round/tests/helpers.ts +26 -0
  402. package/bundles/ragents.reference/run-scripts/moderated-round/tests/program.test.ts +24 -0
  403. package/bundles/ragents.reference/run-scripts/shared-actor-list/RUN.md +18 -0
  404. package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/package.json +16 -0
  405. package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/client.tsx +39 -0
  406. package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/contract.ts +15 -0
  407. package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/server.ts +14 -0
  408. package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/tests/program.test.ts +13 -0
  409. package/bundles/ragents.reference/run-scripts/shared-actor-list/package.json +9 -0
  410. package/bundles/ragents.reference/run-scripts/shared-actor-list/src/server.ts +65 -0
  411. package/bundles/ragents.reference/run-scripts/shared-actor-list/tests/helpers.ts +26 -0
  412. package/bundles/ragents.reference/run-scripts/shared-actor-list/tests/program.test.ts +42 -0
  413. package/bundles/ragents.reference/run-scripts/word-game/RUN.md +25 -0
  414. package/bundles/ragents.reference/run-scripts/word-game/package.json +11 -0
  415. package/bundles/ragents.reference/run-scripts/word-game/src/client.tsx +27 -0
  416. package/bundles/ragents.reference/run-scripts/word-game/src/contract.ts +23 -0
  417. package/bundles/ragents.reference/run-scripts/word-game/src/server.ts +105 -0
  418. package/bundles/ragents.reference/run-scripts/word-game/src/state.ts +22 -0
  419. package/bundles/ragents.reference/run-scripts/word-game/src/view.tsx +54 -0
  420. package/bundles/ragents.reference/run-scripts/word-game/tests/program.test.ts +252 -0
  421. package/bundles/ragents.reference/server/index.js +16 -0
  422. package/bundles/ragents.reference/server/index.js.map +7 -0
  423. package/bundles/ragents.reference/skills/100-shared-actor-list/SKILL.md +12 -0
  424. package/bundles/ragents.reference/skills/110-all-card-slots/SKILL.md +12 -0
  425. package/bundles/ragents.reference/skills/150-editorial-workbench/SKILL.md +12 -0
  426. package/bundles/ragents.reference/skills/160-learning-companion/SKILL.md +12 -0
  427. package/bundles/ragents.reference/skills/170-photo-collection/SKILL.md +12 -0
  428. package/bundles/ragents.reference/skills/180-decision-workbench/SKILL.md +12 -0
  429. package/bundles/ragents.reference/skills/190-review-queue/SKILL.md +12 -0
  430. package/bundles/ragents.reference/skills/20-circle-of-four/SKILL.md +12 -0
  431. package/bundles/ragents.reference/skills/200-typescript-diagnostics/SKILL.md +12 -0
  432. package/bundles/ragents.reference/skills/210-moderator-handover/SKILL.md +12 -0
  433. package/bundles/ragents.reference/skills/220-actor-approval-list/SKILL.md +12 -0
  434. package/bundles/ragents.reference/skills/230-shared-state-views/SKILL.md +12 -0
  435. package/bundles/ragents.reference/skills/240-live-result-list/SKILL.md +12 -0
  436. package/bundles/ragents.reference/skills/250-balcony-wizard/SKILL.md +12 -0
  437. package/bundles/ragents.reference/skills/30-llm-without-runtime-knowledge/SKILL.md +12 -0
  438. package/bundles/ragents.reference/skills/35-actor-input-fifo/SKILL.md +12 -0
  439. package/bundles/ragents.reference/skills/40-subscription-matrix/SKILL.md +12 -0
  440. package/bundles/ragents.reference/skills/50-subscription-removal/SKILL.md +12 -0
  441. package/bundles/ragents.reference/skills/60-stop-in-the-circle/SKILL.md +12 -0
  442. package/bundles/ragents.reference/skills/65-artifact-least-privilege/SKILL.md +12 -0
  443. package/bundles/ragents.reference/skills/70-headless-counter/SKILL.md +12 -0
  444. package/bundles/ragents.reference/skills/75-lsp-demo/SKILL.md +12 -0
  445. package/bundles/ragents.reference/skills/80-actor-text-analysis/SKILL.md +12 -0
  446. package/bundles/ragents.reference/skills/90-actor-notes/SKILL.md +12 -0
  447. package/bundles/ragents.reference/skills/95-hello-world/SKILL.md +12 -0
  448. package/bundles/ragents.reference/skills/decision-brief/SKILL.md +33 -0
  449. package/bundles/ragents.reference/skills/learning-sprint/SKILL.md +33 -0
  450. package/bundles/ragents.reference/web/classes.json +1 -0
  451. package/bundles/ragents.reference/web/index.js +2 -0
  452. package/bundles/ragents.reference/web/index.js.map +7 -0
  453. package/bundles/ragents.todo/ragents-bundle.json +48 -0
  454. package/bundles/ragents.todo/server/index.js +108 -0
  455. package/bundles/ragents.todo/server/index.js.map +7 -0
  456. package/bundles/ragents.todo/web/classes.json +1 -0
  457. package/bundles/ragents.todo/web/index.js +2 -0
  458. package/bundles/ragents.todo/web/index.js.map +7 -0
  459. package/bundles/ragents.transcript/ragents-bundle.json +34 -0
  460. package/bundles/ragents.transcript/server/index.js +102 -0
  461. package/bundles/ragents.transcript/server/index.js.map +7 -0
  462. package/bundles/ragents.watch/ragents-bundle.json +39 -0
  463. package/bundles/ragents.watch/server/chunks/chunk-FHAM6OML.js +11 -0
  464. package/bundles/ragents.watch/server/chunks/chunk-FHAM6OML.js.map +7 -0
  465. package/bundles/ragents.watch/server/chunks/chunk-RPBX3J4P.js +10 -0
  466. package/bundles/ragents.watch/server/chunks/chunk-RPBX3J4P.js.map +7 -0
  467. package/bundles/ragents.watch/server/exports/contract.js +9 -0
  468. package/bundles/ragents.watch/server/exports/contract.js.map +7 -0
  469. package/bundles/ragents.watch/server/exports/server/contract.js +9 -0
  470. package/bundles/ragents.watch/server/exports/server/contract.js.map +7 -0
  471. package/bundles/ragents.watch/server/index.js +482 -0
  472. package/bundles/ragents.watch/server/index.js.map +7 -0
  473. package/bundles/ragents.workspace/prompt.hbs +7 -0
  474. package/bundles/ragents.workspace/ragents-bundle.json +148 -0
  475. package/bundles/ragents.workspace/server/index.js +1049 -0
  476. package/bundles/ragents.workspace/server/index.js.map +7 -0
  477. package/bundles/ragents.workspace/web/classes.json +1 -0
  478. package/bundles/ragents.workspace/web/index.js +39 -0
  479. package/bundles/ragents.workspace/web/index.js.map +7 -0
  480. package/package.json +4 -15
  481. package/packages/agent/dist/core/agent-session-runtime.d.ts +33 -0
  482. package/packages/agent/dist/core/agent-session-services.d.ts +35 -0
  483. package/packages/agent/dist/core/agent-session.d.ts +234 -0
  484. package/packages/agent/dist/core/agent-settings.d.ts +27 -0
  485. package/packages/agent/dist/core/auth-guidance.d.ts +4 -0
  486. package/packages/agent/dist/core/compaction/compaction.d.ts +116 -0
  487. package/packages/agent/dist/core/compaction/index.d.ts +6 -0
  488. package/packages/agent/dist/core/compaction/utils.d.ts +39 -0
  489. package/packages/agent/dist/core/defaults.d.ts +3 -0
  490. package/packages/agent/dist/core/extensions/index.d.ts +11 -0
  491. package/packages/agent/dist/core/extensions/loader.d.ts +12 -0
  492. package/packages/agent/dist/core/extensions/runner.d.ts +39 -0
  493. package/packages/agent/dist/core/extensions/types.d.ts +156 -0
  494. package/packages/agent/dist/core/extensions/wrapper.d.ts +12 -0
  495. package/packages/agent/dist/core/messages.d.ts +37 -0
  496. package/packages/agent/dist/core/model-runtime.d.ts +32 -0
  497. package/packages/agent/dist/core/provider-composer.d.ts +25 -0
  498. package/packages/agent/dist/core/resource-loader.d.ts +39 -0
  499. package/packages/agent/dist/core/sdk.d.ts +38 -0
  500. package/packages/agent/dist/core/session-manager.d.ts +189 -0
  501. package/packages/agent/dist/core/skills.d.ts +20 -0
  502. package/packages/agent/dist/core/source-info.d.ts +16 -0
  503. package/packages/agent/dist/core/system-prompt.d.ts +21 -0
  504. package/packages/agent/dist/core/tools/bash.d.ts +63 -0
  505. package/packages/agent/dist/core/tools/edit-diff.d.ts +98 -0
  506. package/packages/agent/dist/core/tools/edit.d.ts +41 -0
  507. package/packages/agent/dist/core/tools/file-mutation-queue.d.ts +6 -0
  508. package/packages/agent/dist/core/tools/index.d.ts +5 -0
  509. package/packages/agent/dist/core/tools/output-accumulator.d.ts +58 -0
  510. package/packages/agent/dist/core/tools/path-utils.d.ts +8 -0
  511. package/packages/agent/dist/core/tools/read.d.ts +33 -0
  512. package/packages/agent/dist/core/tools/truncate.d.ts +61 -0
  513. package/packages/agent/dist/core/tools/write.d.ts +23 -0
  514. package/packages/agent/dist/index.d.ts +13 -0
  515. package/packages/agent/dist/loop/agent-loop.d.ts +13 -0
  516. package/packages/agent/dist/loop/agent.d.ts +103 -0
  517. package/packages/agent/dist/loop/index.d.ts +5 -0
  518. package/packages/agent/dist/loop/types.d.ts +333 -0
  519. package/packages/agent/dist/loop/uuid.d.ts +2 -0
  520. package/packages/agent/dist/utils/child-process.d.ts +17 -0
  521. package/packages/agent/dist/utils/exif-orientation.d.ts +5 -0
  522. package/packages/agent/dist/utils/frontmatter.d.ts +8 -0
  523. package/packages/agent/dist/utils/image-convert.d.ts +2 -0
  524. package/packages/agent/dist/utils/image-process.d.ts +18 -0
  525. package/packages/agent/dist/utils/image-resize-core.d.ts +30 -0
  526. package/packages/agent/dist/utils/image-resize-worker.d.ts +2 -0
  527. package/packages/agent/dist/utils/image-resize.d.ts +16 -0
  528. package/packages/agent/dist/utils/mime.d.ts +3 -0
  529. package/packages/agent/dist/utils/paths.d.ts +15 -0
  530. package/packages/agent/dist/utils/photon.d.ts +21 -0
  531. package/packages/agent/dist/utils/shell.d.ts +17 -0
  532. package/packages/agent/dist/utils/sleep.d.ts +5 -0
  533. package/packages/agent/package.json +3 -32
  534. package/packages/agent/src/core/agent-session-runtime.ts +15 -469
  535. package/packages/agent/src/core/agent-session-services.ts +17 -167
  536. package/packages/agent/src/core/agent-session.ts +154 -2403
  537. package/packages/agent/src/core/agent-settings.ts +20 -0
  538. package/packages/agent/src/core/auth-guidance.ts +0 -4
  539. package/packages/agent/src/core/compaction/compaction.ts +4 -33
  540. package/packages/agent/src/core/compaction/index.ts +0 -1
  541. package/packages/agent/src/core/compaction/utils.ts +2 -2
  542. package/packages/agent/src/core/defaults.ts +1 -1
  543. package/packages/agent/src/core/extensions/index.ts +6 -117
  544. package/packages/agent/src/core/extensions/loader.ts +21 -605
  545. package/packages/agent/src/core/extensions/runner.ts +48 -969
  546. package/packages/agent/src/core/extensions/types.ts +35 -1298
  547. package/packages/agent/src/core/extensions/wrapper.ts +13 -34
  548. package/packages/agent/src/core/messages.ts +5 -109
  549. package/packages/agent/src/core/model-runtime.ts +109 -467
  550. package/packages/agent/src/core/provider-composer.ts +21 -451
  551. package/packages/agent/src/core/resource-loader.ts +18 -822
  552. package/packages/agent/src/core/sdk.ts +46 -281
  553. package/packages/agent/src/core/session-manager.ts +11 -891
  554. package/packages/agent/src/core/skills.ts +8 -440
  555. package/packages/agent/src/core/source-info.ts +0 -12
  556. package/packages/agent/src/core/system-prompt.ts +2 -41
  557. package/packages/agent/src/core/tools/bash.ts +20 -32
  558. package/packages/agent/src/core/tools/edit-diff.ts +0 -60
  559. package/packages/agent/src/core/tools/edit.ts +2 -18
  560. package/packages/agent/src/core/tools/index.ts +4 -130
  561. package/packages/agent/src/core/tools/output-accumulator.ts +33 -5
  562. package/packages/agent/src/core/tools/path-utils.ts +2 -49
  563. package/packages/agent/src/core/tools/read.ts +4 -12
  564. package/packages/agent/src/core/tools/truncate.ts +0 -15
  565. package/packages/agent/src/core/tools/write.ts +1 -8
  566. package/packages/agent/src/index.ts +11 -272
  567. package/packages/{agent-core/src → agent/src/loop}/agent-loop.ts +127 -273
  568. package/packages/{agent-core/src → agent/src/loop}/agent.ts +12 -164
  569. package/packages/{agent-core/src → agent/src/loop}/types.ts +6 -105
  570. package/packages/agent/src/utils/child-process.ts +0 -13
  571. package/packages/agent/src/utils/image-convert.ts +0 -25
  572. package/packages/agent/src/utils/paths.ts +1 -71
  573. package/packages/agent/src/utils/shell.ts +13 -156
  574. package/packages/ai/dist/api/ai-sdk-messages.d.ts +9 -0
  575. package/packages/ai/dist/api/ai-sdk-transport.d.ts +13 -0
  576. package/packages/ai/dist/api/ai-sdk.d.ts +13 -0
  577. package/packages/ai/dist/api/ai-sdk.lazy.d.ts +3 -0
  578. package/packages/ai/dist/api/lazy.d.ts +15 -0
  579. package/packages/ai/dist/api/simple-options.d.ts +4 -0
  580. package/packages/ai/dist/api/transform-messages.d.ts +8 -0
  581. package/packages/ai/dist/api-registry.d.ts +25 -0
  582. package/packages/ai/dist/auth/context.d.ts +4 -0
  583. package/packages/ai/dist/auth/helpers.d.ts +4 -0
  584. package/packages/ai/dist/auth/resolve.d.ts +19 -0
  585. package/packages/ai/dist/auth/types.d.ts +51 -0
  586. package/packages/ai/dist/env-api-keys.d.ts +8 -0
  587. package/packages/ai/dist/index.d.ts +19 -0
  588. package/packages/ai/dist/models.d.ts +71 -0
  589. package/packages/ai/dist/models.generated.d.ts +8021 -0
  590. package/packages/ai/dist/providers/all.d.ts +15 -0
  591. package/packages/ai/dist/providers/faux.d.ts +97 -0
  592. package/packages/ai/dist/providers/openrouter.d.ts +3 -0
  593. package/packages/ai/dist/providers/openrouter.models.d.ts +8019 -0
  594. package/packages/ai/dist/types.d.ts +541 -0
  595. package/packages/ai/dist/utils/diagnostics.d.ts +13 -0
  596. package/packages/ai/dist/utils/error-body.d.ts +25 -0
  597. package/packages/ai/dist/utils/estimate.d.ts +17 -0
  598. package/packages/ai/dist/utils/event-stream.d.ts +21 -0
  599. package/packages/ai/dist/utils/headers.d.ts +2 -0
  600. package/packages/ai/dist/utils/json-parse.d.ts +16 -0
  601. package/packages/ai/dist/utils/overflow.d.ts +54 -0
  602. package/packages/ai/dist/utils/provider-env.d.ts +7 -0
  603. package/packages/ai/dist/utils/retry.d.ts +12 -0
  604. package/packages/ai/dist/utils/sanitize-unicode.d.ts +22 -0
  605. package/packages/ai/dist/utils/typebox-helpers.d.ts +17 -0
  606. package/packages/ai/dist/utils/validation.d.ts +10 -0
  607. package/packages/ai/package.json +2 -6
  608. package/packages/ai/src/api/ai-sdk-transport.ts +2 -2
  609. package/packages/ai/src/api/simple-options.ts +0 -34
  610. package/packages/ai/src/api-registry.ts +1 -12
  611. package/packages/ai/src/auth/context.ts +1 -30
  612. package/packages/ai/src/auth/helpers.ts +3 -34
  613. package/packages/ai/src/auth/resolve.ts +10 -108
  614. package/packages/ai/src/auth/types.ts +9 -176
  615. package/packages/ai/src/index.ts +1 -13
  616. package/packages/ai/src/models.ts +41 -407
  617. package/packages/ai/src/providers/all.ts +3 -31
  618. package/packages/ai/src/providers/openrouter.models.ts +14 -0
  619. package/packages/ai/src/types.ts +0 -104
  620. package/packages/ai/src/utils/diagnostics.ts +0 -32
  621. package/packages/ai/src/utils/headers.ts +0 -11
  622. package/packages/ai/src/utils/overflow.ts +0 -7
  623. package/packages/ai/src/utils/validation.ts +0 -15
  624. package/packages/ragents/package.json +3 -6
  625. package/packages/ragents/src/access.ts +2 -1
  626. package/packages/ragents/src/agents/actor-input.ts +14 -18
  627. package/packages/ragents/src/agents/catalog.ts +3 -3
  628. package/packages/ragents/src/agents/plugins.ts +0 -4
  629. package/packages/ragents/src/agents/scheduler.ts +232 -78
  630. package/packages/ragents/src/agents/schemas.ts +1 -36
  631. package/packages/ragents/src/agents/tool-orientation.ts +1 -1
  632. package/packages/ragents/src/agents/tools.ts +72 -73
  633. package/packages/ragents/src/agents/toolset.ts +5 -5
  634. package/packages/ragents/src/agents/turn.ts +2 -14
  635. package/packages/ragents/src/agents/workspaces.ts +18 -0
  636. package/packages/ragents/src/domain/actor-reference.ts +22 -0
  637. package/packages/ragents/src/domain/driver.ts +0 -9
  638. package/packages/ragents/src/domain/event-semantics.ts +62 -74
  639. package/packages/ragents/src/domain/event-validation.ts +22 -21
  640. package/packages/ragents/src/domain/events.ts +19 -7
  641. package/packages/ragents/src/domain/json.ts +2 -0
  642. package/packages/ragents/src/domain/model.ts +40 -18
  643. package/packages/ragents/src/domain/projection.ts +43 -15
  644. package/packages/ragents/src/domain/schema-errors.ts +3 -3
  645. package/packages/ragents/src/drivers/agent-hooks.ts +40 -0
  646. package/packages/ragents/src/drivers/agent-runtime.ts +118 -186
  647. package/packages/ragents/src/drivers/agent.ts +5 -20
  648. package/packages/ragents/src/drivers/attachments.ts +4 -24
  649. package/packages/ragents/src/drivers/skill-preload.ts +4 -16
  650. package/packages/ragents/src/drivers/types.ts +20 -3
  651. package/packages/ragents/src/http/contracts.ts +16 -3
  652. package/packages/ragents/src/http/methods.ts +32 -33
  653. package/packages/ragents/src/index.ts +5 -15
  654. package/packages/ragents/src/plugin-host.ts +151 -105
  655. package/packages/ragents/src/plugin-types.ts +86 -23
  656. package/packages/ragents/src/rpc/peer.ts +6 -0
  657. package/packages/ragents/src/runtime/decisions/actions.ts +40 -37
  658. package/packages/ragents/src/runtime/decisions/actors.ts +90 -51
  659. package/packages/ragents/src/runtime/decisions/artifacts.ts +2 -2
  660. package/packages/ragents/src/runtime/decisions/inputs.ts +3 -3
  661. package/packages/ragents/src/runtime/decisions/subscriptions.ts +9 -7
  662. package/packages/ragents/src/runtime/decisions/turns.ts +37 -4
  663. package/packages/ragents/src/runtime/guards.ts +12 -21
  664. package/packages/ragents/src/runtime/journal-storage.ts +4 -2
  665. package/packages/ragents/src/runtime/journal.ts +1 -1
  666. package/packages/ragents/src/runtime/orchestration.ts +31 -14
  667. package/packages/ragents/src/runtime/serial-queue.ts +24 -0
  668. package/packages/ragents/src/runtime/stop.ts +19 -44
  669. package/packages/ragents/src/script/mediators.ts +4 -5
  670. package/packages/ragents/src/typescript/index.ts +2 -0
  671. package/packages/ragents/src/typescript/run-context.ts +10 -8
  672. package/packages/ragents/src/typescript/snippet.ts +7 -6
  673. package/packages/workspace-executor/package.json +2 -2
  674. package/packages/workspace-executor/src/bash-launch.ts +45 -0
  675. package/packages/workspace-executor/src/browser/contract.ts +71 -0
  676. package/packages/workspace-executor/src/browser/module.ts +74 -0
  677. package/packages/workspace-executor/src/browser/pages.ts +298 -0
  678. package/packages/workspace-executor/src/browser/playwright.ts +52 -0
  679. package/packages/workspace-executor/src/commands.ts +170 -0
  680. package/packages/workspace-executor/src/context.ts +34 -6
  681. package/packages/workspace-executor/src/errors.ts +12 -0
  682. package/packages/workspace-executor/src/executor.ts +62 -104
  683. package/packages/workspace-executor/src/files.ts +287 -0
  684. package/packages/workspace-executor/src/index.ts +82 -18
  685. package/packages/workspace-executor/src/language-server/adapters/roslyn.ts +1 -0
  686. package/packages/workspace-executor/src/language-server/contract.ts +14 -0
  687. package/packages/workspace-executor/src/language-server/host.ts +82 -26
  688. package/packages/workspace-executor/src/language-server/module.ts +107 -0
  689. package/packages/workspace-executor/src/language-server/workspace-solutions.ts +90 -0
  690. package/packages/workspace-executor/src/managed-process.ts +1 -1
  691. package/packages/workspace-executor/src/module.ts +35 -0
  692. package/packages/workspace-executor/src/modules.ts +25 -0
  693. package/packages/workspace-executor/src/paths.ts +57 -5
  694. package/packages/workspace-executor/src/process-sandbox.ts +16 -0
  695. package/packages/workspace-executor/src/processes/module.ts +48 -0
  696. package/{plugins/ragents.processes/server → packages/workspace-executor/src/processes}/process-table.ts +80 -57
  697. package/packages/workspace-executor/src/processes/scanner.ts +106 -0
  698. package/{plugins/ragents.processes/server → packages/workspace-executor/src/processes}/snapshot.ts +23 -11
  699. package/{plugins/ragents.processes/server → packages/workspace-executor/src/processes}/terminator.ts +19 -20
  700. package/packages/workspace-executor/src/run-folders.ts +33 -0
  701. package/packages/workspace-executor/src/safe-environment.ts +14 -0
  702. package/packages/workspace-executor/src/sandbox-tools.ts +206 -36
  703. package/packages/workspace-executor/src/shell-platform.ts +2 -2
  704. package/plugins/package.json +1 -1
  705. package/plugins/ragents.activity/ragents-plugin.json +3 -0
  706. package/plugins/ragents.activity/server/index.ts +2 -2
  707. package/plugins/ragents.activity/web/ActivityHeader.tsx +2 -2
  708. package/plugins/ragents.activity/web/activity.ts +1 -1
  709. package/plugins/ragents.activity/web/index.tsx +1 -1
  710. package/plugins/ragents.actor-programs/prompt.hbs +8 -7
  711. package/plugins/ragents.actor-programs/ragents-plugin.json +3 -0
  712. package/plugins/ragents.actor-programs/server/agent-tools.ts +3 -3
  713. package/{apps/server/src/plugin-support/actor-programs → plugins/ragents.actor-programs/server}/capability-resolver.ts +1 -16
  714. package/plugins/ragents.actor-programs/server/controls-template.ts +5 -18
  715. package/plugins/ragents.actor-programs/server/controls-tool.ts +8 -11
  716. package/plugins/ragents.actor-programs/server/index.ts +10 -10
  717. package/{apps/server/src/plugin-support/actor-programs → plugins/ragents.actor-programs/server}/limits.ts +4 -4
  718. package/plugins/ragents.actor-programs/server/methods.ts +2 -2
  719. package/{apps/server/src/plugin-support/actor-programs → plugins/ragents.actor-programs/server}/operations.ts +2 -4
  720. package/plugins/ragents.actor-programs/server/project-diagnostics.ts +65 -70
  721. package/plugins/ragents.actor-programs/server/prompts.ts +4 -4
  722. package/plugins/ragents.actor-programs/server/routes.ts +14 -8
  723. package/plugins/ragents.actor-programs/server/runtime.ts +132 -55
  724. package/plugins/ragents.actor-programs/server/templates.ts +35 -80
  725. package/plugins/ragents.actor-programs/server/test-report.ts +106 -0
  726. package/plugins/ragents.actor-programs/server/tool-contributor.ts +4 -4
  727. package/plugins/ragents.actor-programs/summary.hbs +1 -1
  728. package/plugins/ragents.actor-programs/web/ActorViewFrame.tsx +15 -10
  729. package/plugins/ragents.actor-programs/web/AppsPanel.tsx +47 -30
  730. package/plugins/ragents.actor-programs/web/EmbeddedApps.tsx +15 -17
  731. package/plugins/ragents.actor-programs/web/FullscreenHost.tsx +3 -3
  732. package/plugins/ragents.actor-programs/web/FunctionForm.tsx +3 -3
  733. package/plugins/ragents.actor-programs/web/ProgramSource.tsx +12 -3
  734. package/plugins/ragents.actor-programs/web/api.ts +5 -5
  735. package/plugins/ragents.actor-programs/web/bridge.ts +2 -3
  736. package/plugins/ragents.actor-programs/web/chat-state.ts +9 -8
  737. package/plugins/ragents.actor-programs/web/index.tsx +7 -17
  738. package/plugins/ragents.actor-programs/web/program-state.ts +3 -3
  739. package/plugins/ragents.actor-programs/web/state-revision.ts +2 -2
  740. package/plugins/ragents.ask/ask-payload.ts +25 -0
  741. package/plugins/ragents.ask/contract.ts +2 -2
  742. package/plugins/ragents.ask/ragents-plugin.json +7 -0
  743. package/plugins/ragents.ask/server/answer-method.ts +1 -1
  744. package/plugins/ragents.ask/server/ask-service.ts +43 -19
  745. package/plugins/ragents.ask/server/ask-tool.ts +2 -2
  746. package/plugins/ragents.ask/server/contract.ts +9 -1
  747. package/plugins/ragents.ask/server/index.ts +8 -10
  748. package/plugins/ragents.ask/server/tool-contributor.ts +3 -3
  749. package/plugins/ragents.ask/web/AskActionView.tsx +36 -0
  750. package/{apps/web/src/chat → plugins/ragents.ask/web}/QuestionCard.tsx +7 -5
  751. package/plugins/ragents.ask/web/QuestionSection.tsx +22 -21
  752. package/plugins/ragents.ask/web/api.ts +1 -1
  753. package/plugins/ragents.ask/web/index.tsx +11 -8
  754. package/plugins/ragents.browser/provision.ts +9 -8
  755. package/plugins/ragents.browser/ragents-plugin.json +6 -0
  756. package/plugins/ragents.browser/server/browser.ts +165 -286
  757. package/plugins/ragents.browser/server/contract.ts +8 -19
  758. package/plugins/ragents.browser/server/index.ts +8 -7
  759. package/plugins/ragents.browser/server/tools.ts +29 -37
  760. package/plugins/ragents.browser/skills/browser-testing/SKILL.md +3 -1
  761. package/plugins/ragents.documents/contract.ts +4 -2
  762. package/plugins/ragents.documents/ragents-plugin.json +6 -0
  763. package/plugins/ragents.documents/server/config.ts +1 -1
  764. package/plugins/ragents.documents/server/document-write-tool.ts +2 -2
  765. package/plugins/ragents.documents/server/files-route.ts +2 -3
  766. package/plugins/ragents.documents/server/index.ts +10 -11
  767. package/plugins/ragents.documents/server/show-document-tool.ts +2 -2
  768. package/plugins/ragents.documents/server/store.ts +3 -3
  769. package/plugins/ragents.documents/server/tool-contributor.ts +3 -3
  770. package/plugins/ragents.documents/web/DocumentViewer.tsx +5 -6
  771. package/plugins/ragents.documents/web/api.ts +1 -1
  772. package/plugins/ragents.documents/web/index.tsx +4 -4
  773. package/plugins/ragents.lsp-fsharp/provision.ts +2 -2
  774. package/plugins/ragents.lsp-fsharp/ragents-plugin.json +3 -0
  775. package/plugins/ragents.lsp-fsharp/server/index.ts +3 -3
  776. package/plugins/ragents.lsp-fsharp/web/index.tsx +1 -1
  777. package/plugins/ragents.lsp-roslyn/provision.ts +2 -2
  778. package/plugins/ragents.lsp-roslyn/ragents-plugin.json +3 -0
  779. package/plugins/ragents.lsp-roslyn/server/index.ts +47 -8
  780. package/plugins/ragents.lsp-roslyn/server/solution-on-start.ts +145 -0
  781. package/plugins/ragents.lsp-roslyn/web/index.tsx +1 -1
  782. package/plugins/ragents.lsp-typescript/ragents-plugin.json +3 -0
  783. package/plugins/ragents.lsp-typescript/server/index.ts +3 -3
  784. package/plugins/ragents.lsp-typescript/web/index.tsx +1 -1
  785. package/plugins/ragents.model-relay/ragents-plugin.json +3 -0
  786. package/plugins/ragents.model-relay/server/config.ts +5 -31
  787. package/plugins/ragents.model-relay/server/index.ts +5 -6
  788. package/plugins/ragents.model-relay/server/relay.ts +8 -9
  789. package/plugins/ragents.orchestration/contract.ts +13 -14
  790. package/plugins/ragents.orchestration/orchestration.hbs +4 -3
  791. package/plugins/ragents.orchestration/ragents-plugin.json +6 -0
  792. package/plugins/ragents.orchestration/server/index.ts +13 -16
  793. package/plugins/ragents.orchestration/server/run-stop-tool.ts +4 -4
  794. package/plugins/ragents.orchestration/server/{canvas-tool.ts → surface-tool.ts} +42 -43
  795. package/plugins/ragents.orchestration/surface.hbs +34 -0
  796. package/plugins/ragents.orchestration/tiled-layout.ts +16 -16
  797. package/plugins/ragents.orchestration/web/ActorChat.tsx +16 -14
  798. package/plugins/ragents.orchestration/web/ActorChatControls.tsx +23 -26
  799. package/plugins/ragents.orchestration/web/ActorChatPreview.tsx +5 -6
  800. package/plugins/ragents.orchestration/web/ActorPopout.tsx +7 -5
  801. package/plugins/ragents.orchestration/web/ActorShortcut.tsx +16 -16
  802. package/plugins/ragents.orchestration/web/{ActorCanvasControls.tsx → ActorSurfaceControls.tsx} +23 -28
  803. package/plugins/ragents.orchestration/web/ActorTile.tsx +2 -2
  804. package/plugins/ragents.orchestration/web/Center.tsx +47 -55
  805. package/plugins/ragents.orchestration/web/DocumentsSection.tsx +4 -4
  806. package/plugins/ragents.orchestration/web/ExecutionsPanel.tsx +7 -7
  807. package/plugins/ragents.orchestration/web/FlowInspector.tsx +24 -42
  808. package/plugins/ragents.orchestration/web/JournalStatus.tsx +8 -8
  809. package/plugins/ragents.orchestration/web/MaterialBody.tsx +5 -5
  810. package/plugins/ragents.orchestration/web/StopRunButton.tsx +6 -6
  811. package/plugins/ragents.orchestration/web/SurfaceStartup.tsx +8 -0
  812. package/plugins/ragents.orchestration/web/{CanvasTiles.tsx → SurfaceTiles.tsx} +18 -18
  813. package/plugins/ragents.orchestration/web/{TiledCanvas.tsx → TiledSurface.tsx} +22 -22
  814. package/plugins/ragents.orchestration/web/actor-header-settings.ts +2 -2
  815. package/plugins/ragents.orchestration/web/api.ts +4 -10
  816. package/plugins/ragents.orchestration/web/constants.ts +0 -1
  817. package/plugins/ragents.orchestration/web/executions.ts +3 -3
  818. package/plugins/ragents.orchestration/web/index.tsx +19 -124
  819. package/plugins/ragents.orchestration/web/program-slot.ts +14 -0
  820. package/plugins/ragents.orchestration/web/run-panel/AddresseeControl.tsx +95 -0
  821. package/plugins/ragents.orchestration/web/run-panel/AddresseeTree.tsx +109 -0
  822. package/plugins/ragents.orchestration/web/{column/RunColumn.tsx → run-panel/RunPanel.tsx} +211 -83
  823. package/plugins/ragents.orchestration/web/{column/ColumnSettings.tsx → run-panel/RunPanelSettings.tsx} +13 -13
  824. package/plugins/ragents.orchestration/web/run-panel/addressee-tree.ts +165 -0
  825. package/plugins/ragents.orchestration/web/{column/column-actors.ts → run-panel/run-panel-actors.ts} +14 -13
  826. package/plugins/ragents.orchestration/web/run-panel/run-panel-settings.ts +47 -0
  827. package/plugins/ragents.orchestration/web/run-panel/run-panel-startup.ts +30 -0
  828. package/plugins/ragents.orchestration/web/run-panel/run-panel-state.ts +71 -0
  829. package/plugins/ragents.orchestration/web/{column → run-panel}/sheet-status.ts +4 -4
  830. package/plugins/ragents.orchestration/web/{canvas-stage.ts → surface-entities.ts} +2 -2
  831. package/plugins/ragents.orchestration/web/{canvas-startup.ts → surface-startup.ts} +7 -10
  832. package/plugins/ragents.orchestration/web/surface-view-settings.ts +42 -0
  833. package/plugins/ragents.orchestration/web/tile-docking.ts +14 -14
  834. package/plugins/ragents.orchestration/web/tiled-view-settings.ts +26 -26
  835. package/plugins/ragents.overseer/contract.ts +20 -14
  836. package/plugins/ragents.overseer/ragents-plugin.json +3 -0
  837. package/plugins/ragents.overseer/server/api.ts +34 -23
  838. package/plugins/ragents.overseer/server/coordinator-prompt.ts +3 -3
  839. package/plugins/ragents.overseer/server/coordinator.ts +19 -0
  840. package/plugins/ragents.overseer/server/index.ts +39 -27
  841. package/plugins/ragents.overseer/server/orientation.ts +4 -5
  842. package/plugins/ragents.overseer/server/quick-answer.ts +5 -4
  843. package/plugins/ragents.overseer/server/reset-method.ts +4 -3
  844. package/plugins/ragents.overseer/server/run-directory.ts +5 -5
  845. package/plugins/ragents.overseer/server/settings-method.ts +1 -1
  846. package/plugins/ragents.overseer/server/settings.ts +6 -6
  847. package/plugins/ragents.overseer/server/user-location.ts +20 -19
  848. package/plugins/ragents.overseer/web/ModelSettings.tsx +4 -4
  849. package/plugins/ragents.overseer/web/chat-display.ts +1 -1
  850. package/plugins/ragents.overseer/web/index.tsx +51 -26
  851. package/plugins/ragents.overseer/web/model-settings.ts +1 -1
  852. package/plugins/ragents.overseer/web/quick-answers.ts +2 -2
  853. package/plugins/ragents.processes/contract.ts +5 -5
  854. package/plugins/ragents.processes/ragents-plugin.json +3 -0
  855. package/plugins/ragents.processes/server/index.ts +13 -19
  856. package/plugins/ragents.processes/server/methods.ts +18 -20
  857. package/plugins/ragents.processes/server/observer.ts +64 -104
  858. package/plugins/ragents.processes/server/run-processes.ts +24 -0
  859. package/plugins/ragents.processes/web/ProcessHeader.tsx +13 -16
  860. package/plugins/ragents.processes/web/index.tsx +2 -1
  861. package/plugins/ragents.processes/web/processes.ts +1 -1
  862. package/plugins/ragents.product/ragents-plugin.json +3 -0
  863. package/plugins/ragents.product/server/config.ts +12 -13
  864. package/plugins/ragents.product/server/index.ts +15 -16
  865. package/plugins/ragents.product/server/runtime.ts +2 -2
  866. package/plugins/ragents.product/web/index.tsx +3 -3
  867. package/plugins/ragents.profile-distribution/contract.ts +6 -9
  868. package/plugins/ragents.profile-distribution/ragents-plugin.json +3 -0
  869. package/plugins/ragents.profile-distribution/server/archive.ts +26 -51
  870. package/plugins/ragents.profile-distribution/server/config.ts +2 -2
  871. package/plugins/ragents.profile-distribution/server/index.ts +9 -16
  872. package/plugins/ragents.reference/examples.ts +1 -1
  873. package/plugins/ragents.reference/ragents-plugin.json +3 -0
  874. package/plugins/ragents.reference/run-scripts/balcony-wizard/RUN.md +2 -2
  875. package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/client.tsx +1 -1
  876. package/plugins/ragents.reference/run-scripts/balcony-wizard/src/server.ts +1 -1
  877. package/plugins/ragents.reference/run-scripts/balcony-wizard/tests/program.test.ts +4 -4
  878. package/plugins/ragents.reference/run-scripts/conversation-circle/RUN.md +1 -1
  879. package/plugins/ragents.reference/run-scripts/conversation-circle/src/server.ts +1 -1
  880. package/plugins/ragents.reference/run-scripts/conversation-circle/tests/helpers.ts +1 -1
  881. package/plugins/ragents.reference/run-scripts/learning-afternoon/RUN.md +2 -2
  882. package/plugins/ragents.reference/run-scripts/learning-afternoon/src/client.tsx +1 -1
  883. package/plugins/ragents.reference/run-scripts/learning-afternoon/src/server.ts +1 -1
  884. package/plugins/ragents.reference/run-scripts/learning-afternoon/src/state.ts +2 -2
  885. package/plugins/ragents.reference/run-scripts/learning-afternoon/src/view.tsx +11 -11
  886. package/plugins/ragents.reference/run-scripts/learning-afternoon/src/workflow.ts +15 -15
  887. package/plugins/ragents.reference/run-scripts/learning-afternoon/tests/program.test.ts +3 -8
  888. package/plugins/ragents.reference/run-scripts/moderated-round/src/server.ts +1 -1
  889. package/plugins/ragents.reference/run-scripts/moderated-round/tests/helpers.ts +1 -1
  890. package/plugins/ragents.reference/run-scripts/moderated-round/tests/program.test.ts +2 -2
  891. package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/client.tsx +6 -6
  892. package/plugins/ragents.reference/run-scripts/shared-actor-list/src/server.ts +3 -3
  893. package/plugins/ragents.reference/run-scripts/shared-actor-list/tests/helpers.ts +1 -1
  894. package/plugins/ragents.reference/run-scripts/word-game/RUN.md +1 -1
  895. package/plugins/ragents.reference/run-scripts/word-game/src/client.tsx +1 -1
  896. package/plugins/ragents.reference/run-scripts/word-game/src/server.ts +1 -2
  897. package/plugins/ragents.reference/run-scripts/word-game/src/state.ts +6 -6
  898. package/plugins/ragents.reference/run-scripts/word-game/src/view.tsx +14 -14
  899. package/plugins/ragents.reference/run-scripts/word-game/tests/program.test.ts +4 -5
  900. package/plugins/ragents.reference/server/index.ts +2 -2
  901. package/plugins/ragents.reference/skills/160-learning-companion/SKILL.md +1 -1
  902. package/plugins/ragents.reference/skills/240-live-result-list/SKILL.md +1 -1
  903. package/plugins/ragents.reference/skills/250-balcony-wizard/SKILL.md +1 -1
  904. package/plugins/ragents.reference/skills/90-actor-notes/SKILL.md +1 -1
  905. package/plugins/ragents.reference/skills/95-hello-world/SKILL.md +2 -2
  906. package/plugins/ragents.reference/skills/decision-brief/SKILL.md +2 -2
  907. package/plugins/ragents.reference/walkthroughs.ts +19 -19
  908. package/plugins/ragents.reference/web/StartGuides.tsx +2 -2
  909. package/plugins/ragents.reference/web/index.tsx +1 -1
  910. package/plugins/ragents.todo/ragents-plugin.json +3 -0
  911. package/plugins/ragents.todo/server/index.ts +2 -2
  912. package/plugins/ragents.todo/server/todo-tool.ts +4 -5
  913. package/plugins/ragents.todo/server/tool-contributor.ts +2 -2
  914. package/plugins/ragents.todo/web/TodoSection.tsx +3 -3
  915. package/plugins/ragents.todo/web/index.ts +1 -1
  916. package/plugins/ragents.transcript/ragents-plugin.json +3 -0
  917. package/plugins/ragents.transcript/server/index.ts +4 -4
  918. package/plugins/ragents.transcript/server/transcript.ts +2 -3
  919. package/plugins/ragents.watch/ragents-plugin.json +6 -0
  920. package/plugins/ragents.watch/server/condition.ts +2 -2
  921. package/plugins/ragents.watch/server/contract.ts +1 -1
  922. package/plugins/ragents.watch/server/functions.ts +3 -3
  923. package/plugins/ragents.watch/server/index.ts +3 -3
  924. package/plugins/ragents.watch/server/observation.ts +6 -6
  925. package/plugins/ragents.watch/server/service.ts +5 -5
  926. package/plugins/ragents.workspace/client/workspace-client.ts +129 -58
  927. package/plugins/ragents.workspace/contract.ts +98 -35
  928. package/plugins/ragents.workspace/prompt.hbs +1 -8
  929. package/plugins/ragents.workspace/ragents-plugin.json +3 -0
  930. package/plugins/ragents.workspace/server/binding.ts +122 -39
  931. package/plugins/ragents.workspace/server/browse-route.ts +96 -103
  932. package/plugins/ragents.workspace/server/clients.ts +236 -68
  933. package/plugins/ragents.workspace/server/config.ts +30 -0
  934. package/plugins/ragents.workspace/server/index.ts +61 -26
  935. package/plugins/ragents.workspace/server/runtime.ts +271 -46
  936. package/{apps/server/src/plugin-support → plugins/ragents.workspace/server}/shell-platform.ts +3 -5
  937. package/{apps/server/src/plugin-support → plugins/ragents.workspace/server}/workspace-tool-naming.ts +7 -1
  938. package/plugins/ragents.workspace/web/FileBrowser.tsx +11 -8
  939. package/plugins/ragents.workspace/web/WorkspaceBinding.tsx +115 -61
  940. package/plugins/ragents.workspace/web/api.ts +1 -1
  941. package/plugins/ragents.workspace/web/index.tsx +1 -1
  942. package/ragents.config.core.ts +2 -7
  943. package/ragents.config.showcase.ts +2 -5
  944. package/scripts/agent/agent-cli.ts +265 -107
  945. package/scripts/agent/journal.ts +3 -1
  946. package/scripts/agent/turn-control.ts +19 -0
  947. package/scripts/package/build-package.ts +68 -13
  948. package/scripts/package/ragents.mjs +4 -2
  949. package/scripts/plugin/build-builtin-plugins.ts +52 -0
  950. package/scripts/plugin/plugin-cli.ts +99 -0
  951. package/scripts/provision/run-provision.ts +20 -18
  952. package/scripts/remote/connect.ts +75 -53
  953. package/scripts/remote/start.ts +2 -3
  954. package/scripts/workspace-client/run-workspace-client.ts +15 -9
  955. package/apps/server/agent-home/settings.json +0 -3
  956. package/apps/server/src/chat-attachments.ts +0 -52
  957. package/apps/server/src/chat-events.ts +0 -185
  958. package/apps/server/src/plugin-support/asset-path.ts +0 -4
  959. package/apps/server/src/profile/plugin-list.ts +0 -19
  960. package/apps/server/src/web-build.ts +0 -82
  961. package/apps/web/column.html +0 -12
  962. package/apps/web/index.html +0 -12
  963. package/apps/web/src/StartSurface.tsx +0 -161
  964. package/apps/web/src/chat/ChatInputToolbar.tsx +0 -488
  965. package/apps/web/src/chat/ChatMessages.tsx +0 -666
  966. package/apps/web/src/chat/ChatPanel.tsx +0 -61
  967. package/apps/web/src/chat/DetailModeSwitch.tsx +0 -58
  968. package/apps/web/src/chat/Markdown.tsx +0 -104
  969. package/apps/web/src/chat/StepPopover.tsx +0 -82
  970. package/apps/web/src/chat/WorkingScenes.tsx +0 -235
  971. package/apps/web/src/chat/attachments.ts +0 -53
  972. package/apps/web/src/chat/chat-scroll.ts +0 -41
  973. package/apps/web/src/chat/texts.ts +0 -61
  974. package/apps/web/src/chat/types.ts +0 -26
  975. package/apps/web/src/column/ColumnApp.tsx +0 -234
  976. package/apps/web/src/column/column-location.ts +0 -30
  977. package/apps/web/src/column/host-contract.ts +0 -93
  978. package/apps/web/src/panel/OverviewPage.tsx +0 -215
  979. package/apps/web/src/panel/SettingsPage.tsx +0 -98
  980. package/apps/web/src/panel/target-state.ts +0 -78
  981. package/apps/web/src/plugin-discovery.ts +0 -5
  982. package/apps/web/src/virtual-plugins.d.ts +0 -3
  983. package/apps/web/vite.config.ts +0 -140
  984. package/packages/agent/src/config.ts +0 -161
  985. package/packages/agent/src/core/auth-storage.ts +0 -271
  986. package/packages/agent/src/core/bash-executor.ts +0 -156
  987. package/packages/agent/src/core/compaction/branch-summarization.ts +0 -372
  988. package/packages/agent/src/core/diagnostics.ts +0 -15
  989. package/packages/agent/src/core/event-bus.ts +0 -33
  990. package/packages/agent/src/core/exec.ts +0 -107
  991. package/packages/agent/src/core/experimental.ts +0 -3
  992. package/packages/agent/src/core/footer-data-provider.ts +0 -388
  993. package/packages/agent/src/core/http-dispatcher.ts +0 -106
  994. package/packages/agent/src/core/index.ts +0 -78
  995. package/packages/agent/src/core/model-config.ts +0 -287
  996. package/packages/agent/src/core/model-registry.ts +0 -126
  997. package/packages/agent/src/core/model-resolver.ts +0 -675
  998. package/packages/agent/src/core/output-guard.ts +0 -108
  999. package/packages/agent/src/core/package-manager.ts +0 -2441
  1000. package/packages/agent/src/core/prompt-templates.ts +0 -284
  1001. package/packages/agent/src/core/resolve-config-value.ts +0 -287
  1002. package/packages/agent/src/core/runtime-credentials.ts +0 -48
  1003. package/packages/agent/src/core/session-cwd.ts +0 -59
  1004. package/packages/agent/src/core/settings-manager.ts +0 -1212
  1005. package/packages/agent/src/core/slash-commands.ts +0 -41
  1006. package/packages/agent/src/core/timings.ts +0 -50
  1007. package/packages/agent/src/core/tools/tool-definition-wrapper.ts +0 -45
  1008. package/packages/agent/src/core/trust-manager.ts +0 -244
  1009. package/packages/agent/src/utils/ansi.ts +0 -60
  1010. package/packages/agent/src/utils/fs-watch.ts +0 -30
  1011. package/packages/agent/src/utils/git.ts +0 -226
  1012. package/packages/agent/src/utils/json.ts +0 -6
  1013. package/packages/agent/src/utils/tools-manager.ts +0 -63
  1014. package/packages/agent-core/package.json +0 -32
  1015. package/packages/ai/src/api/openrouter-images.lazy.ts +0 -10
  1016. package/packages/ai/src/api/openrouter-images.ts +0 -98
  1017. package/packages/ai/src/auth/credential-store.ts +0 -51
  1018. package/packages/ai/src/compat/extension-oauth-types.ts +0 -45
  1019. package/packages/ai/src/image-models.generated.ts +0 -533
  1020. package/packages/ai/src/images-models.ts +0 -274
  1021. package/packages/ai/src/models-store.ts +0 -38
  1022. package/packages/ai/src/oauth.ts +0 -10
  1023. package/packages/ai/src/providers/openrouter-images.ts +0 -14
  1024. package/packages/ai/src/session-resources.ts +0 -24
  1025. package/packages/ai/src/utils/abort-signals.ts +0 -41
  1026. package/packages/ai/src/utils/deferred-tools.ts +0 -39
  1027. package/packages/ai/src/utils/hash.ts +0 -13
  1028. package/packages/ai/src/utils/node-http-proxy.ts +0 -112
  1029. package/plugins/ragents.actor-programs/server/client-runtime.ts +0 -16
  1030. package/plugins/ragents.ask/web/constants.ts +0 -1
  1031. package/plugins/ragents.lsp-roslyn/web/api.ts +0 -10
  1032. package/plugins/ragents.orchestration/web/CanvasStartup.tsx +0 -14
  1033. package/plugins/ragents.orchestration/web/canvas-view-settings.ts +0 -42
  1034. package/plugins/ragents.orchestration/web/column/AddresseeControl.tsx +0 -116
  1035. package/plugins/ragents.orchestration/web/column/column-settings.ts +0 -47
  1036. package/plugins/ragents.orchestration/web/column/column-state.ts +0 -68
  1037. package/plugins/ragents.orchestration/web/contract.ts +0 -25
  1038. package/plugins/ragents.product/model-settings-contract.ts +0 -10
  1039. package/plugins/ragents.profile-distribution/server/web.ts +0 -24
  1040. /package/{plugins/ragents.actor-programs/server → apps/server/src/plugin-support/actor-programs}/authoring-contracts.ts +0 -0
  1041. /package/{plugins/ragents.actor-programs/server → apps/server/src/plugin-support/actor-programs}/runtime-libraries.ts +0 -0
  1042. /package/{plugins/ragents.actor-programs → apps/server/src/plugin-support/actor-programs}/workflow/prompt-reader.ts +0 -0
  1043. /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/file-contracts.d.ts +0 -0
  1044. /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/flow-diagram-contracts.d.ts +0 -0
  1045. /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/flow-diagram.css +0 -0
  1046. /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/form-contracts.d.ts +0 -0
  1047. /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/frame-layout.ts +0 -0
  1048. /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/table-contracts.d.ts +0 -0
  1049. /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/viewer-contracts.d.ts +0 -0
  1050. /package/{plugins/ragents.orchestration/canvas.hbs → bundles/ragents.orchestration/surface.hbs} +0 -0
  1051. /package/packages/{agent-core/src → agent/src/loop}/index.ts +0 -0
  1052. /package/packages/{agent-core/src → agent/src/loop}/uuid.ts +0 -0
@@ -1,20 +1,16 @@
1
1
  import { createHash } from "node:crypto";
2
2
  import { readdirSync, statSync, lstatSync } from "node:fs";
3
- import { copyFile, mkdir } from "node:fs/promises";
4
3
  import path from "node:path";
5
4
  import { pathToFileURL } from "node:url";
6
5
  import { create as createTar } from "tar";
7
- import { hostConfigKeys } from "@aicontainer/server/config.js";
8
- import { isEnvironmentReference, isProvisionedReference } from "@aicontainer/server/config-definition.js";
9
- import { resolveAnonymousUser, resolveProfileUsers, SECRET_KEY_PATTERN } from "@aicontainer/server/config-file.js";
10
- import { discoverPluginIds } from "@aicontainer/server/profile/plugin-discovery.js";
11
- import { isPluginPath, PLUGIN_SERVER_FOLDER, pluginFolderFor, pluginIdOf, pluginsRoot } from "@aicontainer/server/plugin-support/plugins-root.js";
12
- import { CLIENT_WEB_FOLDER } from "../contract.js";
6
+ import { hostConfigKeys } from "@ragents/host/config.js";
7
+ import { isEnvironmentReference, isProvisionedReference } from "@ragents/host/config-definition.js";
8
+ import { resolveAnonymousUser, resolveProfileUsers, SECRET_KEY_PATTERN } from "@ragents/host/config-file.js";
9
+ import { discoverPluginIds, resolvePluginEntries, type ResolvedPlugin } from "@ragents/host/profile/plugin-discovery.js";
10
+ import { bundlesRoot, isPluginPath } from "@ragents/host/plugin-support/plugins-root.js";
13
11
 
14
- export interface ClientProfilePlugin {
15
- readonly id: string;
12
+ export interface ClientProfilePlugin extends ResolvedPlugin {
16
13
  readonly source: "host" | "archive";
17
- readonly folder: string;
18
14
  }
19
15
 
20
16
  export interface InspectedClientProfile {
@@ -31,12 +27,8 @@ export interface PackedClientProfile {
31
27
  readonly entries: readonly string[];
32
28
  }
33
29
 
34
- const EXCLUDED_FOLDERS = new Set(["node_modules", "tests", ".git"]);
35
30
  const PROFILE_FILE = /^ragents\.config\.([a-z0-9]+(?:-[a-z0-9]+)*)\.ts$/;
36
31
 
37
- const hasServerEntry = (folder: string): boolean =>
38
- ["index.ts", "index.js"].some((name) => statSync(path.join(folder, PLUGIN_SERVER_FOLDER, name), { throwIfNoEntry: false })?.isFile() === true);
39
-
40
32
  const commonRoot = (first: string, others: readonly string[]): string => {
41
33
  let root = first;
42
34
  for (const folder of others) {
@@ -71,7 +63,7 @@ const checkSections = (source: string, raw: Record<string, unknown>, pluginIds:
71
63
  };
72
64
 
73
65
  /** Prüft die Client-Profildatei ohne ihre Umgebung und bestimmt, welche Plugins ins Archiv gehören. */
74
- export const inspectClientProfile = async (source: string, root = pluginsRoot): Promise<InspectedClientProfile> => {
66
+ export const inspectClientProfile = async (source: string, root = bundlesRoot): Promise<InspectedClientProfile> => {
75
67
  const name = PROFILE_FILE.exec(path.basename(source));
76
68
  if (!name) throw new Error(`Die Client-Profildatei muss ragents.config.<profil>.ts heißen: ${source}`);
77
69
  if (!statSync(source, { throwIfNoEntry: false })?.isFile()) throw new Error(`Die Client-Profildatei ${source} fehlt`);
@@ -85,25 +77,20 @@ export const inspectClientProfile = async (source: string, root = pluginsRoot):
85
77
  throw new Error(`${source}: host.PLUGINS muss eine nicht leere Liste sein`);
86
78
  }
87
79
  if (host?.PRODUCT_PROFILE !== profile) throw new Error(`${source}: host.PRODUCT_PROFILE muss ${profile} sein`);
88
- const known = discoverPluginIds(root);
89
80
  const directory = path.dirname(source);
90
- const plugins = (entries as string[]).map((entry): ClientProfilePlugin => {
91
- if (!isPluginPath(entry)) {
92
- if (!known.includes(entry)) throw new Error(`${source}: das Plugin ${entry} ist im Host nicht bekannt (bekannt: ${known.join(", ")})`);
93
- return { id: entry, source: "host", folder: path.join(root, entry) };
94
- }
95
- const folder = pluginFolderFor(entry, directory, root);
96
- if (!statSync(folder, { throwIfNoEntry: false })?.isDirectory() || !hasServerEntry(folder)) {
97
- throw new Error(`${source}: das Plugin ${entry} hat keinen Ordner ${folder} mit ${PLUGIN_SERVER_FOLDER}/index.ts`);
98
- }
99
- if (statSync(path.join(folder, "node_modules"), { throwIfNoEntry: false })) {
100
- throw new Error(`${source}: das Plugin ${entry} bringt eigene node_modules mit; Abhängigkeiten müssen aus dem Host kommen`);
81
+ const unportable = (entries as string[]).filter((entry) => isPluginPath(entry) && !/^\.{1,2}\//.test(entry));
82
+ if (unportable.length > 0) {
83
+ throw new Error(`${source}: ${unportable.join(", ")} nennt ein Bundle absolut oder mit ~/; der Client löst diesen Pfad auf seinem eigenen Rechner auf und fände dort nicht das gelieferte Bundle. Im Client-Profil jedes Bundle relativ zur Profildatei nennen (./ oder ../)`);
84
+ }
85
+ const plugins = ((): readonly ClientProfilePlugin[] => {
86
+ try {
87
+ return resolvePluginEntries(entries as string[], directory, root)
88
+ .map((plugin, index) => ({ ...plugin, source: isPluginPath((entries as string[])[index]!) ? "archive" : "host" }));
89
+ } catch (cause) {
90
+ throw new Error(`${source}: ${cause instanceof Error ? cause.message : String(cause)}`, { cause });
101
91
  }
102
- return { id: pluginIdOf(folder), source: "archive", folder };
103
- });
104
- const duplicate = plugins.find((plugin, index) => plugins.findIndex((other) => other.id === plugin.id) !== index);
105
- if (duplicate) throw new Error(`${source}: das Plugin ${duplicate.id} steht mehrfach in host.PLUGINS`);
106
- checkSections(source, raw as Record<string, unknown>, new Set([...known, ...plugins.map((plugin) => plugin.id)]));
92
+ })();
93
+ checkSections(source, raw as Record<string, unknown>, new Set([...discoverPluginIds(root), ...plugins.map((plugin) => plugin.id)]));
107
94
  const users = resolveProfileUsers(source, module.users, placeholderEnvironment);
108
95
  const anonymous = resolveAnonymousUser(source, module.anonymousUser);
109
96
  if (users && anonymous) throw new Error(`${source}: users und anonymousUser schließen einander aus`);
@@ -118,7 +105,7 @@ const collectFiles = (folder: string, root: string): string[] => {
118
105
  const absolute = path.join(folder, entry.name);
119
106
  if (entry.isSymbolicLink()) throw new Error(`Das Client-Profil enthält einen symbolischen Link, den das Archiv nicht abbildet: ${absolute}`);
120
107
  if (entry.isDirectory()) {
121
- if (!EXCLUDED_FOLDERS.has(entry.name)) files.push(...collectFiles(absolute, root));
108
+ files.push(...collectFiles(absolute, root));
122
109
  } else if (entry.isFile()) {
123
110
  files.push(posixRelative(root, absolute));
124
111
  }
@@ -126,32 +113,20 @@ const collectFiles = (folder: string, root: string): string[] => {
126
113
  return files;
127
114
  };
128
115
 
129
- const collectStaged = (folder: string, root: string): string[] =>
130
- readdirSync(folder, { withFileTypes: true })
131
- .sort((left, right) => left.name.localeCompare(right.name, "en"))
132
- .flatMap((entry) => entry.isDirectory() ? collectStaged(path.join(folder, entry.name), root) : [posixRelative(root, path.join(folder, entry.name))]);
133
-
134
- /** Kopiert Profildatei und Archiv-Plugins in den Staging-Ordner, in dem das gebaute Web schon unter web/ liegt. */
135
- export const stageClientProfile = async (inspected: InspectedClientProfile, staging: string): Promise<readonly string[]> => {
116
+ /** Die Einträge des Archivs: die Profildatei und die Dateien der Bundles, die sie per Pfad nennt; das Web hat der Client selbst. */
117
+ export const clientProfileEntries = (inspected: InspectedClientProfile): readonly string[] => {
136
118
  const entries = [inspected.file, ...inspected.plugins.filter((plugin) => plugin.source === "archive").flatMap((plugin) => collectFiles(plugin.folder, inspected.root))];
137
119
  for (const entry of entries) {
138
120
  if (!lstatSync(path.join(inspected.root, entry)).isFile()) throw new Error(`Der Archiveintrag ${entry} ist keine Datei`);
139
- if (entry === CLIENT_WEB_FOLDER || entry.startsWith(`${CLIENT_WEB_FOLDER}/`)) {
140
- throw new Error(`Der Archiveintrag ${entry} kollidiert mit ${CLIENT_WEB_FOLDER}/, dem Ordner des gebauten Webs`);
141
- }
142
- const target = path.join(staging, ...entry.split("/"));
143
- await mkdir(path.dirname(target), { recursive: true });
144
- await copyFile(path.join(inspected.root, entry), target);
145
121
  }
146
122
  return entries;
147
123
  };
148
124
 
149
- /** Packt den Staging-Ordner deterministisch; der Stand ist der SHA-256 des Archivs. */
150
- export const packClientProfile = async (inspected: InspectedClientProfile, staging: string): Promise<PackedClientProfile> => {
151
- await stageClientProfile(inspected, staging);
152
- const entries = collectStaged(staging, staging);
125
+ /** Packt die Einträge deterministisch aus ihrem gemeinsamen Ordner; der Stand ist der SHA-256 des Archivs. */
126
+ export const packClientProfile = async (inspected: InspectedClientProfile): Promise<PackedClientProfile> => {
127
+ const entries = clientProfileEntries(inspected);
153
128
  const chunks: Buffer[] = [];
154
- for await (const chunk of createTar({ gzip: { level: 9 }, cwd: staging, portable: true, noMtime: true }, entries)) {
129
+ for await (const chunk of createTar({ gzip: { level: 9 }, cwd: inspected.root, portable: true, noMtime: true }, [...entries])) {
155
130
  chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
156
131
  }
157
132
  const archive = Buffer.concat(chunks);
@@ -1,6 +1,6 @@
1
1
  import path from "node:path";
2
- import { configFilePath } from "@aicontainer/server/config-file.js";
3
- import { declaredEnvironment } from "@aicontainer/server/plugin-support/plugin-config.js";
2
+ import { configFilePath } from "@ragents/host/config-file.js";
3
+ import { declaredEnvironment } from "@ragents/host/plugin-support/plugin-config.js";
4
4
 
5
5
  export const profileDistributionConfigDescriptors = [
6
6
  { key: "CLIENT_PROFILE_FILE", source: "environment" },
@@ -1,13 +1,10 @@
1
- import { rm } from "node:fs/promises";
2
- import path from "node:path";
3
- import { DomainError, implement, type HttpRouteContribution, type RAgentsPlugin } from "@aicontainer/ragents";
4
- import { readHostVersion, readPackageVersion } from "@aicontainer/server/host-version.js";
5
- import type { PluginModule } from "@aicontainer/server/plugin-support/plugin-module.js";
6
- import { writeJson } from "@aicontainer/server/plugin-support/http.js";
7
- import { CLIENT_WEB_FOLDER, profileArchivePath, profileDistributionContracts, type ClientProfileDescription } from "../contract.js";
1
+ import { DomainError, implement, type HttpRouteContribution, type RAgentsPlugin } from "@ragents/engine";
2
+ import { readHostApiVersion, readHostVersion, readPackageVersion } from "@ragents/host/host-version.js";
3
+ import type { PluginModule } from "@ragents/host/plugin-support/plugin-module.js";
4
+ import { writeJson } from "@ragents/host/plugin-support/http.js";
5
+ import { profileArchivePath, profileDistributionContracts, type ClientProfileDescription } from "../contract.js";
8
6
  import { inspectClientProfile, packClientProfile } from "./archive.js";
9
7
  import { profileDistributionConfig, profileDistributionConfigDescriptors } from "./config.js";
10
- import { buildClientWeb } from "./web.js";
11
8
 
12
9
  interface DistributionState {
13
10
  readonly description: ClientProfileDescription;
@@ -59,28 +56,24 @@ const profileDistributionPlugin: RAgentsPlugin = {
59
56
  initialize: async () => {
60
57
  const hostVersion = profileDistributionConfig.hostVersion() ?? readHostVersion();
61
58
  const packageVersion = readPackageVersion();
59
+ const hostApi = readHostApiVersion();
62
60
  const inspected = await inspectClientProfile(file);
63
- const staging = host.storage.root("staging");
64
- await rm(staging, { recursive: true, force: true });
65
- console.log(`Profilverteilung: Web für ${inspected.profile} bauen`);
66
- await buildClientWeb(inspected, path.join(staging, CLIENT_WEB_FOLDER), (line) => console.log(` ${line}`));
67
- const packed = await packClientProfile(inspected, staging);
61
+ const packed = await packClientProfile(inspected);
68
62
  ready = {
69
63
  archive: packed.archive,
70
64
  description: {
71
65
  profile: inspected.profile,
72
66
  version: packed.version,
67
+ hostApi,
73
68
  hostVersion,
74
69
  packageVersion,
75
70
  file: inspected.file,
76
- web: CLIENT_WEB_FOLDER,
77
71
  size: packed.archive.byteLength,
78
72
  archivePath: profileArchivePath(packed.version),
79
73
  plugins: inspected.plugins.map((plugin) => ({ id: plugin.id, source: plugin.source })),
80
74
  },
81
75
  };
82
- await rm(staging, { recursive: true, force: true });
83
- console.log(`Profilverteilung: ${inspected.profile} Stand ${packed.version.slice(0, 12)} (${packed.entries.length} Dateien, ${packed.archive.byteLength} Byte, Host ${hostVersion.slice(0, 12)}, Paket ${packageVersion})`);
76
+ console.log(`Profilverteilung: ${inspected.profile} Stand ${packed.version.slice(0, 12)} (${packed.entries.length} Dateien, ${packed.archive.byteLength} Byte, Host-API ${hostApi}, Host ${hostVersion.slice(0, 12)}, Paket ${packageVersion})`);
84
77
  },
85
78
  });
86
79
  host.methods(implement(profileDistributionContracts.describe, () => state().description));
@@ -5,7 +5,7 @@ export const referenceConcepts = [
5
5
  { id: "fifo", label: "Input-Warteschlange" },
6
6
  { id: "stop", label: "Actor-Stopp" },
7
7
  { id: "artifacts", label: "Artefakte und Zugriff" },
8
- { id: "tiles", label: "Kachelfläche", entryKind: "walkthrough" },
8
+ { id: "tiles", label: "Fläche", entryKind: "walkthrough" },
9
9
  { id: "actor-views", label: "Mini-Apps" },
10
10
  { id: "actor-state", label: "Actor-Zustand" },
11
11
  { id: "llm-actor-view", label: "LLM-Actor mit View" },
@@ -0,0 +1,3 @@
1
+ {
2
+ "id": "ragents.reference"
3
+ }
@@ -6,7 +6,7 @@ coordinator: false
6
6
  tags: Run-Scripts, Anwendungsfall, Konzeptdemo, Mini-Apps, LLM-Actor mit View, Frei gesteuerter Chat, Primary-Actor
7
7
  ---
8
8
 
9
- Das TypeScript-Setup legt einen Balkon-Berater mit dem Modellprofil `standard` und ausdrücklich
9
+ Das TypeScript-Setup legt einen Balkon-Berater mit der Rolle `standard` und ausdrücklich
10
10
  ohne Werkzeuge an. Das mitgelieferte Programm `actors/balcony-app/` bindet eine eigenständige
11
11
  Mini-App an diesen Actor. Die Fläche zeigt allein deren Kachel statt einer Chatkachel; ein Koordinator
12
12
  wird für diesen Run nicht angelegt. Der Berater wird zum Primary-Actor und behält seinen eigenen
@@ -19,7 +19,7 @@ ein Formular, nicht in ein Chat-Widget. Fortschritt und abgeschlossene Antworten
19
19
  dem Neuladen aus dem Gespräch rekonstruieren; eine fehlgeschlagene Modellantwort kann erneut
20
20
  angefordert werden, ohne eine weitere Antwort zu zählen.
21
21
 
22
- Der Einstieg benötigt keine Startwerte. Das Setup wird einmal ausgeführt und startet noch keinen
22
+ Die Vorlage benötigt keine Startwerte. Das Setup wird einmal ausgeführt und startet noch keinen
23
23
  Modellaufruf. Erst eine Aktion in der App schickt Text an den Berater. Fragen und Empfehlungen
24
24
  bleiben Modellantworten; die App prüft ihre fachliche Qualität nicht automatisch.
25
25
 
@@ -47,7 +47,7 @@ function App() {
47
47
  <label htmlFor="interview-progress">{conversation.answers} von {answerCount} Antworten</label>
48
48
  <progress className="h-2.5 w-full [accent-color:var(--foreground)]" id="interview-progress" max={answerCount} value={conversation.answers} />
49
49
  </UI.Stack>
50
- {snapshot?.readOnly && <p>Dieser Lauf ist schreibgeschützt.</p>}
50
+ {snapshot?.readOnly && <p>Dieser Run ist schreibgeschützt.</p>}
51
51
  {(sendError || conversation.error) && <p role="alert">{sendError || conversation.error}</p>}
52
52
  {conversation.phase === "start" && !pending && <UI.Stack>
53
53
  <p>Du beantwortest immer nur eine Frage. Deine bisherigen Angaben bleiben beim erneuten Öffnen erhalten.</p>
@@ -20,7 +20,7 @@ export default defineActor(contract, {
20
20
  if (context.state.read().built) return;
21
21
  const catalog = await context.functions.model_list({});
22
22
  const profile = catalog.profiles.find((entry) => entry.driver === "agent" && entry.name === "standard");
23
- if (!profile) throw new Error("Das Modellprofil standard fehlt.");
23
+ if (!profile) throw new Error("Die Rolle standard fehlt.");
24
24
  const advisor = await context.functions.agent_spawn({
25
25
  handle: "balcony-advisor", displayName: "Balkon-Berater", prompt, profile: profile.name, tools: [],
26
26
  });
@@ -21,7 +21,7 @@ function setup(options: { missingProfile?: boolean; failActivation?: boolean } =
21
21
  const activation = value as { name: string; actor: string };
22
22
  return { name: activation.name, actor: activation.actor, views: 1, active: true };
23
23
  }
24
- return [];
24
+ return null;
25
25
  }]));
26
26
  const context = createTestContext<{ built?: boolean }>({ state: {}, functions });
27
27
  return { calls, context };
@@ -43,14 +43,14 @@ test("richtet einen Berater ohne Werkzeuge und seine eigene Mini-App als einzige
43
43
  assert.equal(calls.length, 5);
44
44
  });
45
45
 
46
- test("fehlendes Modellprofil baut keinen unbrauchbaren Berater", async () => {
46
+ test("fehlende Rolle baut keinen unbrauchbaren Berater", async () => {
47
47
  const { calls, context } = setup({ missingProfile: true });
48
- await assert.rejects(async () => program.onInput!(input, context), /Modellprofil standard fehlt/);
48
+ await assert.rejects(async () => program.onInput!(input, context), /Rolle standard fehlt/);
49
49
  assert.deepEqual(calls.map((call) => call.name), ["model_list"]);
50
50
  assert.deepEqual(context.state.read(), {});
51
51
  });
52
52
 
53
- test("eine fehlgeschlagene View-Aktivierung setzt weder Canvas noch Erfolgszustand", async () => {
53
+ test("eine fehlgeschlagene View-Aktivierung setzt weder Fläche noch Erfolgszustand", async () => {
54
54
  const options = { failActivation: true };
55
55
  const { calls, context } = setup(options);
56
56
  await assert.rejects(async () => program.onInput!(input, context), /View kann nicht aktiviert/);
@@ -7,7 +7,7 @@ tags: Run-Scripts, Anwendungsfall, Konzeptdemo, Startleitfaden, Agententeams
7
7
  ---
8
8
 
9
9
  Ein deterministisches Setup: das Script stellt mira, jon und ada als gewöhnliche LLMs auf, teilt
10
- die Kachelfläche unter ihnen auf und übergibt dem Koordinator das Briefing.
10
+ die Fläche unter ihnen auf und übergibt dem Koordinator das Briefing.
11
11
  Die Karte prüft das Modell, dieses Script prüft die Plattform.
12
12
 
13
13
  Der Leitfaden übergibt `{ "topic": "...", "rounds": 2 }`. `topic` enthält 1 bis 160 Zeichen, `rounds` ist eine ganze Zahl von 1 bis 5. Der Startwert `null` wählt ausdrücklich das Thema "Sollten Innenstädte autofrei werden?" und zwei Runden. Andere unvollständige oder ungültige Werte werden vor dem Aufbau abgelehnt. Thema und Rundenzahl steuern die Darstellung und den Auftrag, das Thema auch den Run-Titel.
@@ -42,7 +42,7 @@ export default defineActor(contract, {
42
42
  const catalog = await context.functions.model_list({});
43
43
  const profiles = catalog.profiles.filter((profile) => profile.driver === "agent" && profile.name !== "coordinator");
44
44
  const first = profiles[0];
45
- if (!first) throw new Error("Kein Agentenprofil außer dem Koordinator; agent_spawn braucht eines.");
45
+ if (!first) throw new Error("Keine Rolle außer coordinator; agent_spawn braucht eine.");
46
46
 
47
47
  await context.functions.run_configure({ title: `Gesprächsrunde: ${topic}` });
48
48
 
@@ -15,7 +15,7 @@ export const setupContext = (profiles = [{ name: "coordinator", driver: "agent"
15
15
  return name === "model_list" ? {
16
16
  profiles: profiles.map((profile) => ({ ...profile, description: "Testprofil", turnTimeoutMs: null,
17
17
  isolateWorkspace: false, provider: "test", model: "test" })), models: [],
18
- } : [];
18
+ } : name === "actor_input" ? [] : null;
19
19
  }]));
20
20
  return { calls, context: createTestContext<{ built?: boolean }>({ state: {}, functions }) };
21
21
  };
@@ -7,7 +7,7 @@ tags: Run-Scripts, Anwendungsfall, Konzeptdemo, Mini-Apps, TypeScript-Actors, Ag
7
7
  ---
8
8
 
9
9
  Das vorbereitete TypeScript-Programm richtet zwei KI-Helfer ohne Werkzeuge ein und zeigt seine
10
- eigene Mini-App. Beide verwenden das Modellprofil `standard`. Ein Koordinator ist nicht nötig;
10
+ eigene Mini-App. Beide verwenden die Rolle `standard`. Ein Koordinator ist nicht nötig;
11
11
  der TypeScript-Actor steuert den Ablauf und ist der Primary-Actor.
12
12
 
13
13
  Erst "Ideen sammeln" beauftragt die beiden Helfer: Helfer A schlägt ein einfaches Experiment
@@ -19,6 +19,6 @@ Ergebnisliste. Die Ideen sind echte Modellantworten und werden nicht fachlich ge
19
19
  Ein Fehler bei einem Helfer lässt das Ergebnis des anderen stehen. Leere Antworten und
20
20
  unterbrochene Modell-Turns erscheinen als Fehler. Der Ablauf startet einmal und wiederholt
21
21
  weder Aufträge noch fehlgeschlagene Antworten automatisch. Für neue Ideen beginnt ein neuer Run.
22
- Der Einstieg benötigt keine Startwerte und löst vor dem Button keinen Modellaufruf aus.
22
+ Die Vorlage benötigt keine Startwerte und löst vor dem Button keinen Modellaufruf aus.
23
23
 
24
24
  Die Homepage verwendet dieselbe React-Ansicht mit ausdrücklich markierten Vorschaudaten.
@@ -23,5 +23,5 @@ function App() {
23
23
  }
24
24
 
25
25
  const root = document.getElementById("root");
26
- if (!root) throw new Error("Das Wurzelelement #root fehlt.");
26
+ if (!root) throw new Error("The #root element is missing.");
27
27
  createRoot(root).render(<App />);
@@ -66,7 +66,7 @@ export default defineActor(contract, {
66
66
  if (!state.board) {
67
67
  const catalog = await context.functions.model_list({});
68
68
  const profile = catalog.profiles.find((entry) => entry.driver === "agent" && entry.name === "standard");
69
- if (!profile) throw new Error("Das Modellprofil standard fehlt.");
69
+ if (!profile) throw new Error("Die Rolle standard fehlt.");
70
70
  const prompt = await workflowInstructions(learningWorkflow, "helper", readPrompt);
71
71
  const helpers = await Promise.all(initialState.helpers.map(async (helper) => {
72
72
  const actor = await context.functions.agent_spawn({ handle: `learning-${helper.id}`, displayName: helper.label, profile: profile.name, prompt, tools: [] });
@@ -19,7 +19,7 @@ export interface LearningState {
19
19
 
20
20
  export const initialState: LearningState = {
21
21
  phase: "ready",
22
- helpers: helperSteps.map((step, index) => ({ id: step.id, label: `Helfer ${String.fromCharCode(65 + index)}`, task: step.title, status: "waiting", text: "" })),
22
+ helpers: helperSteps.map((step, index) => ({ id: step.id, label: `Helper ${String.fromCharCode(65 + index)}`, task: step.title, status: "waiting", text: "" })),
23
23
  };
24
24
 
25
25
  const helperStatuses = { waiting: "pending", working: "active", complete: "done", error: "blocked" } as const;
@@ -32,7 +32,7 @@ export function learningWorkflowState(state: LearningState): WorkflowState {
32
32
  }])),
33
33
  collect: {
34
34
  status: state.phase === "complete" ? "done" : state.phase === "error" ? "blocked" : state.phase === "working" ? "active" : "pending",
35
- detail: `${state.helpers.filter((helper) => helper.status === "complete").length} von ${state.helpers.length} Ideen gesammelt.`,
35
+ detail: `${state.helpers.filter((helper) => helper.status === "complete").length} of ${state.helpers.length} ideas collected.`,
36
36
  },
37
37
  } };
38
38
  }
@@ -11,7 +11,7 @@ export interface LearningAfternoonProps {
11
11
  preview?: boolean;
12
12
  }
13
13
 
14
- const phaseLabels = { ready: "Bereit", working: "Die Helfer arbeiten", complete: "Beide Ideen sind da", error: "Mit Fehler beendet" };
14
+ const phaseLabels = { ready: "Ready", working: "The helpers are working", complete: "Both ideas are ready", error: "Finished with an error" };
15
15
  const rowClass = "flex items-center justify-between gap-2.5";
16
16
  const noteClass = "text-xs text-muted-foreground";
17
17
 
@@ -20,21 +20,21 @@ export function LearningAfternoonView({ state, onStart, pending, error, preview
20
20
  return (
21
21
  <main className="min-h-full bg-background text-base **:min-w-0 **:[overflow-wrap:anywhere]">
22
22
  <header className={`${rowClass} flex-wrap`}>
23
- <div><p className={`mb-1.5 ${noteClass}`}>Zwei Helfer, eine Sammlung</p><h1 className="text-[1.55rem] leading-[1.2] font-semibold">{learningWorkflow.title}</h1></div>
24
- <span className={`shrink-0 ${noteClass}`}>{entries.length} / {state.helpers.length} Ideen</span>
23
+ <div><p className={`mb-1.5 ${noteClass}`}>Two helpers, one collection</p><h1 className="text-[1.55rem] leading-[1.2] font-semibold">{learningWorkflow.title}</h1></div>
24
+ <span className={`shrink-0 ${noteClass}`}>{entries.length} / {state.helpers.length} ideas</span>
25
25
  </header>
26
- <p className="mt-3.5 mb-5">Je eine Idee für einen Lernnachmittag mit Grundschulkindern: gemeinsam experimentieren und spielerisch Wissen testen.</p>
27
- {preview && <p className={`mb-4 ${noteClass}`}>Vorschau mit Beispielideen. Keine aufgenommenen KI-Antworten.</p>}
28
- <WorkflowDiagram definition={learningWorkflow} state={learningWorkflowState(state)} label="Ablauf des Lernnachmittags" direction="down" viewport="fit-width" />
29
- <section className="mt-5 rounded-lg border border-border bg-card p-4" aria-label="Gemeinsame Ergebnisliste">
30
- <div className={`${rowClass} flex-wrap`}><h2 className="text-base font-semibold">Gemeinsame Ergebnisliste</h2><span className={noteClass}>Automatisch gesammelt</span></div>
31
- {entries.length === 0 ? <p className="py-5 text-sm text-muted-foreground">Hier erscheinen die fertigen Ideen.</p> : <ol className="mt-3 grid gap-3">
26
+ <p className="mt-3.5 mb-5">One idea each for an afternoon with primary-school children: explore together and test knowledge through play.</p>
27
+ {preview && <p className={`mb-4 ${noteClass}`}>Preview with example ideas. No recorded AI responses.</p>}
28
+ <WorkflowDiagram definition={learningWorkflow} state={learningWorkflowState(state)} label="Learning afternoon workflow" direction="down" viewport="fit-width" />
29
+ <section className="mt-5 rounded-lg border border-border bg-card p-4" aria-label="Shared result list">
30
+ <div className={`${rowClass} flex-wrap`}><h2 className="text-base font-semibold">Shared result list</h2><span className={noteClass}>Collected automatically</span></div>
31
+ {entries.length === 0 ? <p className="py-5 text-sm text-muted-foreground">Completed ideas appear here.</p> : <ol className="mt-3 grid gap-3">
32
32
  {entries.map((helper) => <li className="border-t border-border pt-3" key={helper.id}><strong className={noteClass}>{helper.label}</strong><p className="mt-1.5 whitespace-pre-wrap">{helper.text}</p></li>)}
33
33
  </ol>}
34
34
  </section>
35
35
  <footer className={`${rowClass} mt-4 min-h-9 flex-wrap`}>
36
- <p className={noteClass} role="status">{pending ? "Auftrag wird gesendet" : phaseLabels[state.phase]}</p>
37
- {state.phase === "ready" && <Button onClick={onStart} disabled={pending || !onStart}>Ideen sammeln</Button>}
36
+ <p className={noteClass} role="status">{pending ? "Sending tasks" : phaseLabels[state.phase]}</p>
37
+ {state.phase === "ready" && <Button onClick={onStart} disabled={pending || !onStart}>Collect ideas</Button>}
38
38
  </footer>
39
39
  {error && <p className="mt-2 text-destructive" role="alert">{error}</p>}
40
40
  </main>
@@ -2,31 +2,31 @@ import { defineWorkflow } from "@ragents/workflow";
2
2
 
3
3
  export const learningWorkflow = defineWorkflow({
4
4
  id: "learning-afternoon",
5
- title: "Lernnachmittag",
5
+ title: "Learning afternoon",
6
6
  roles: {
7
- helper: { title: "Ideenhelfer", prompt: "prompts/helper.md" },
8
- collection: { title: "Automatische Sammlung" },
7
+ helper: { title: "Idea helper", prompt: "prompts/helper.md" },
8
+ collection: { title: "Automatic collection" },
9
9
  },
10
10
  steps: [
11
11
  {
12
- id: "experiment", title: "Ein einfaches Experiment", role: "helper",
13
- goal: "Entwickle genau eine Experimentidee für einen gemeinsamen Lernnachmittag mit Grundschulkindern.",
12
+ id: "experiment", title: "A simple experiment", role: "helper",
13
+ goal: "Create exactly one experiment idea for an afternoon with primary-school children.",
14
14
  prompt: "prompts/experiment.md",
15
- completion: { source: "agent", description: "Der Helfer hat eine konkrete Idee als Text geliefert." },
16
- freedom: { mode: "fixed", description: "Material und Experiment frei wählen; genau eine Idee liefern." },
15
+ completion: { source: "agent", description: "The helper provided one concrete idea as text." },
16
+ freedom: { mode: "fixed", description: "Choose the material and experiment freely; provide exactly one idea." },
17
17
  },
18
18
  {
19
- id: "quiz", title: "Ein kleines Lernquiz", role: "helper",
20
- goal: "Entwickle genau eine Quizidee für einen gemeinsamen Lernnachmittag mit Grundschulkindern.",
19
+ id: "quiz", title: "A short learning quiz", role: "helper",
20
+ goal: "Create exactly one quiz idea for an afternoon with primary-school children.",
21
21
  prompt: "prompts/quiz.md",
22
- completion: { source: "agent", description: "Der Helfer hat eine konkrete Idee als Text geliefert." },
23
- freedom: { mode: "fixed", description: "Thema und Spielweise frei wählen; genau eine Idee liefern." },
22
+ completion: { source: "agent", description: "The helper provided one concrete idea as text." },
23
+ freedom: { mode: "fixed", description: "Choose the topic and format freely; provide exactly one idea." },
24
24
  },
25
25
  {
26
- id: "collect", title: "Ideen gemeinsam sammeln", role: "collection",
27
- goal: "Die Antworten beider unabhängig arbeitenden Helfer in der gemeinsamen Ergebnisliste anzeigen.",
28
- completion: { source: "service", description: "Beide Helfer sind beendet; erfolgreiche Ideen und Fehler bleiben sichtbar." },
29
- freedom: { mode: "fixed", description: "Antworten unverändert übernehmen; keine weitere Modellantwort erzeugen." },
26
+ id: "collect", title: "Collect ideas", role: "collection",
27
+ goal: "Show the responses from both independent helpers in one shared result list.",
28
+ completion: { source: "service", description: "Both helpers have finished; successful ideas and errors remain visible." },
29
+ freedom: { mode: "fixed", description: "Keep responses unchanged and do not generate another model response." },
30
30
  },
31
31
  ],
32
32
  transitions: [
@@ -27,12 +27,7 @@ function setup(options: { missingProfile?: boolean; failDispatch?: string; befor
27
27
  const handle = (input as { handle: string }).handle;
28
28
  return { id: `actor-${handle}`, handle };
29
29
  }
30
- if (name === "event_subscribe") return {
31
- subscriptionId: "ideas", subscriberId: "test-actor", sourceActorIds: ["actor-learning-experiment", "actor-learning-quiz"],
32
- sources: ["@learning-experiment", "@learning-quiz"], sourceActorKinds: null,
33
- eventTypes: ["turn.finished", "turn.interrupted", "actor.stopped"], includeSelf: false,
34
- createdBy: "test-actor", createdAt: "2026-09-13T12:00:00.000Z", createdSequence: 1, status: "active",
35
- };
30
+ if (name === "event_subscribe") return { subscriptionId: "ideas", sources: ["@learning-experiment", "@learning-quiz"] };
36
31
  if (name === "event_query") return history.filter((event) => (input as { actorIds: string[] }).actorIds.includes(event.actorId));
37
32
  if (name === "actor_input") {
38
33
  const actor = (input as { actor: string }).actor;
@@ -40,7 +35,7 @@ function setup(options: { missingProfile?: boolean; failDispatch?: string; befor
40
35
  if (actor === options.failDispatch) throw new Error("Auftrag konnte nicht gesendet werden.");
41
36
  return [{ type: "actor.input.enqueued", payload: { actorId: `actor-${actor.slice(1)}`, inputId: `input-${actor.slice(1)}` } }];
42
37
  }
43
- return [];
38
+ return null;
44
39
  }]));
45
40
  return { calls, context: Object.assign(createTestContext<{ board?: LearningState; subscriptionId?: string }>({ state: {}, functions }), { history }) };
46
41
  }
@@ -190,7 +185,7 @@ test("ein gescheiterter Input verhindert den Auftrag des anderen Helfers nicht",
190
185
 
191
186
  test("ohne Standardprofil wird kein Helfer angelegt", async () => {
192
187
  const { context, calls } = setup({ missingProfile: true });
193
- await assert.rejects(async () => program.onInput(setupInput, context), /Modellprofil standard fehlt/);
188
+ await assert.rejects(async () => program.onInput(setupInput, context), /Rolle standard fehlt/);
194
189
  assert.deepEqual(calls.map((call) => call.name), ["model_list"]);
195
190
  assert.deepEqual(context.state.read(), {});
196
191
  });
@@ -23,7 +23,7 @@ export default defineActor(contract, {
23
23
  const catalog = await context.functions.model_list({});
24
24
  const profiles = catalog.profiles.filter((profile) => profile.driver === "agent" && profile.name !== "coordinator");
25
25
  const first = profiles[0];
26
- if (!first) throw new Error("Kein Agentenprofil außer dem Koordinator; agent_spawn braucht eines.");
26
+ if (!first) throw new Error("Keine Rolle außer coordinator; agent_spawn braucht eine.");
27
27
 
28
28
  const moderator = await context.functions.agent_spawn({
29
29
  handle: "moderator",
@@ -15,7 +15,7 @@ export const setupContext = (profiles = [{ name: "coordinator", driver: "agent"
15
15
  return name === "model_list" ? {
16
16
  profiles: profiles.map((profile) => ({ ...profile, description: "Testprofil", turnTimeoutMs: null,
17
17
  isolateWorkspace: false, provider: "test", model: "test" })), models: [],
18
- } : [];
18
+ } : name === "actor_input" ? [] : null;
19
19
  }]));
20
20
  return { calls, context: createTestContext<{ built?: boolean }>({ state: {}, functions }) };
21
21
  };
@@ -16,9 +16,9 @@ test("stellt Moderator und Gäste auf und übergibt ihm den Chat", async () => {
16
16
  assert.equal(calls.length, completedCalls);
17
17
  });
18
18
 
19
- test("ohne ein nutzbares Agentenprofil bleibt der Aufbau unverändert", async () => {
19
+ test("ohne eine nutzbare Rolle bleibt der Aufbau unverändert", async () => {
20
20
  const { calls, context } = setupContext([{ name: "coordinator", driver: "agent" }]);
21
- await assert.rejects(async () => program.onInput!(startInput(null), context), /Kein Agentenprofil/);
21
+ await assert.rejects(async () => program.onInput!(startInput(null), context), /Keine Rolle/);
22
22
  assert.deepEqual(calls.map((call) => call.name), ["model_list"]);
23
23
  assert.deepEqual(context.state.read(), {});
24
24
  });
@@ -8,21 +8,21 @@ type FormValues = Parameters<typeof UI.Form>[0]["values"];
8
8
  const App = () => {
9
9
  const state = useAppState();
10
10
  const [values, setValues] = React.useState<FormValues>({ text: "" });
11
- const [status, setStatus] = React.useState("Bereit");
11
+ const [status, setStatus] = React.useState("Ready");
12
12
  const entries = state.entries ?? [];
13
13
 
14
14
  const append = async (next: FormValues): Promise<void> => {
15
15
  const answer = await context.capabilities.call("append", { text: String(next.text ?? "") });
16
16
  setValues({ text: "" });
17
- setStatus(`Hinzugefügt: ${answer.text}`);
17
+ setStatus(`Added: ${answer.text}`);
18
18
  };
19
19
 
20
20
  return (
21
- <UI.AppLayout title="Gemeinsame Liste" description={<>{entries.length} {entries.length === 1 ? "Eintrag" : "Einträge"}</>}>
21
+ <UI.AppLayout title="Shared list" description={<>{entries.length} {entries.length === 1 ? "item" : "items"}</>}>
22
22
  <UI.Grid>
23
23
  <UI.Form fields={[
24
- { id: "text", label: "Neuer Eintrag", type: "textarea", placeholder: "Text eingeben" },
25
- ]} values={values} onChange={setValues} onSubmit={append} submitLabel="Hinzufügen" />
24
+ { id: "text", label: "New item", type: "textarea", placeholder: "Enter text" },
25
+ ]} values={values} onChange={setValues} onSubmit={append} submitLabel="Add" />
26
26
  <UI.Stack>
27
27
  <p className="text-muted-foreground" role="status">{status}</p>
28
28
  <ul className="border-t border-border">
@@ -35,5 +35,5 @@ const App = () => {
35
35
  };
36
36
 
37
37
  const root = document.getElementById("root");
38
- if (!root) throw new Error("Das Wurzelelement #root fehlt.");
38
+ if (!root) throw new Error("The #root element is missing.");
39
39
  createRoot(root).render(<App />);
@@ -36,7 +36,7 @@ export default defineActor(contract, {
36
36
  const catalog = await context.functions.model_list({});
37
37
  const profiles = catalog.profiles.filter((profile) => profile.driver === "agent" && profile.name !== "coordinator");
38
38
  const first = profiles[0];
39
- if (!first) throw new Error("Kein Agentenprofil außer dem Koordinator; agent_spawn braucht eines.");
39
+ if (!first) throw new Error("Keine Rolle außer coordinator; agent_spawn braucht eine.");
40
40
 
41
41
  await context.functions.run_configure({ title: `Sammelboard: ${title}` });
42
42
 
@@ -55,8 +55,8 @@ export default defineActor(contract, {
55
55
  });
56
56
  await context.functions.actor_input({
57
57
  actor: "@coordinator",
58
- content: `Die gemeinsame Sammlung heißt ${JSON.stringify(title)}. Das Run-Script hat das Programm shared-list an @${helper.handle} gebunden. Seine View ist auf dem Canvas sichtbar; der Helfer ergänzt gerade den ersten Eintrag mit append_to_list. `
59
- + "Unten unter Actors öffnet sein Name den Inspector mit Chat und Details. Seine Canvas-Karte ist standardmäßig ausgeblendet und lässt sich in der Actors-Liste bei Bedarf einschalten. "
58
+ content: `Die gemeinsame Sammlung heißt ${JSON.stringify(title)}. Das Run-Script hat das Programm shared-list an @${helper.handle} gebunden. Seine View ist auf der Fläche sichtbar; der Helfer ergänzt gerade den ersten Eintrag mit append_to_list. `
59
+ + "Unten unter Actors öffnet sein Name den Inspector mit Chat und Details. Seine Kachel ist standardmäßig ausgeblendet und lässt sich in der Actors-Liste bei Bedarf einschalten. "
60
60
  + "Erkläre dem Benutzer in drei Sätzen, wie er die sichtbare Liste bedient, den Helfer öffnet und dass View und Funktion denselben Listenstand teilen.",
61
61
  });
62
62
 
@@ -15,7 +15,7 @@ export const setupContext = (profiles = [{ name: "coordinator", driver: "agent"
15
15
  return name === "model_list" ? {
16
16
  profiles: profiles.map((profile) => ({ ...profile, description: "Testprofil", turnTimeoutMs: null,
17
17
  isolateWorkspace: false, provider: "test", model: "test" })), models: [],
18
- } : [];
18
+ } : name === "actor_input" ? [] : null;
19
19
  }]));
20
20
  return { calls, context: createTestContext<{ built?: boolean }>({ state: {}, functions }) };
21
21
  };