@schlenkr/ragents 0.1.5 → 0.1.7

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 (1049) 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 +16 -7
  13. package/apps/server/src/config-file.ts +25 -6
  14. package/apps/server/src/config.ts +10 -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 +1257 -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 +0 -15
  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 +12 -8
  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 +212 -106
  75. package/apps/server/src/ragents/actor-chat-history.ts +24 -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 +68 -43
  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 +33 -15
  84. package/apps/server/src/ragents/product-runtime.ts +1 -1
  85. package/apps/server/src/ragents/run-owner.ts +18 -0
  86. package/apps/server/src/ragents/runtime-bridge.ts +1 -1
  87. package/apps/server/src/ragents/session.ts +184 -85
  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 +18 -29
  97. package/apps/server/src/run-transfer.ts +66 -5
  98. package/apps/server/src/server.ts +112 -33
  99. package/apps/server/src/settings.ts +9 -12
  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-CFhTJEmH.js +1 -0
  107. package/apps/web/dist/assets/main-DlzW4t4c.js +6 -0
  108. package/apps/web/dist/assets/mermaid-HWGCJPDP-BPn4aV2r.css +1 -0
  109. package/apps/web/dist/assets/mermaid-HWGCJPDP-kxkB991i.js +478 -0
  110. package/apps/web/dist/assets/runPanel-BJEFQ__w.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 +430 -0
  114. package/apps/web/dist/help/guide-clients.md +346 -0
  115. package/apps/web/dist/help/guide-distributed.html +325 -0
  116. package/apps/web/dist/help/guide-distributed.md +230 -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 +344 -0
  128. package/apps/web/dist/help/guide-runtime.md +232 -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 +7076 -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/SessionList.tsx +16 -8
  161. package/apps/web/src/SettingsModal.tsx +37 -37
  162. package/apps/web/src/StartOptions.tsx +81 -26
  163. package/apps/web/src/StartSelection.tsx +111 -0
  164. package/apps/web/src/StartTiles.tsx +73 -0
  165. package/apps/web/src/{CanvasShortcuts.tsx → SurfaceShortcuts.tsx} +2 -2
  166. package/apps/web/src/ThemeSettings.tsx +1 -1
  167. package/apps/web/src/WorkspacePanel.tsx +4 -4
  168. package/apps/web/src/access-session.ts +4 -1
  169. package/{plugins/ragents.orchestration/web → apps/web/src}/actor-conversation.ts +3 -3
  170. package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/DataTable.tsx +9 -9
  171. package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/FilePicker.tsx +4 -4
  172. package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/FlowDiagram.tsx +16 -14
  173. package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/FlowDiagramRenderer.tsx +3 -3
  174. package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/Form.tsx +12 -12
  175. package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/Layout.tsx +1 -1
  176. package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/MessageList.tsx +5 -5
  177. package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/Viewers.tsx +8 -7
  178. package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/WorkflowDiagram.tsx +1 -1
  179. package/apps/web/src/actor-programs/client-ui/chat-contracts.d.ts +64 -0
  180. package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/contracts.d.ts +2 -2
  181. package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/file-selection.ts +5 -5
  182. package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/index.tsx +22 -16
  183. package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/layout-contracts.d.ts +1 -1
  184. package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/message-list-contracts.d.ts +2 -2
  185. package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/workflow-diagram-contracts.d.ts +1 -1
  186. package/apps/web/src/api.ts +45 -22
  187. package/apps/web/src/chat/QuasselHost.tsx +12 -0
  188. package/apps/web/src/chat/StoppedActorNotice.tsx +39 -0
  189. package/apps/web/src/chat/chat-target.ts +14 -5
  190. package/apps/web/src/chat/requests.ts +13 -5
  191. package/apps/web/src/chat/useAttachmentCapabilities.ts +2 -2
  192. package/apps/web/src/chat/useChat.ts +8 -7
  193. package/apps/web/src/chat/user-location.ts +1 -1
  194. package/apps/web/src/chat-view-settings.tsx +49 -0
  195. package/apps/web/src/host-modules.ts +90 -0
  196. package/apps/web/src/language-server/api.ts +24 -0
  197. package/{plugins/ragents.lsp-roslyn/web → apps/web/src/language-server}/language-server-plugin.tsx +133 -6
  198. package/apps/web/src/main.tsx +4 -2
  199. package/apps/web/src/offered-machines.ts +11 -0
  200. package/apps/web/src/panel/ConnectionsPage.tsx +117 -0
  201. package/apps/web/src/panel/LoginForm.tsx +9 -9
  202. package/apps/web/src/panel/PanelDialogs.tsx +44 -27
  203. package/apps/web/src/panel/PanelHeader.tsx +11 -0
  204. package/apps/web/src/panel/PanelPage.tsx +8 -5
  205. package/apps/web/src/panel/RunLine.tsx +50 -0
  206. package/apps/web/src/panel/RunsPage.tsx +84 -0
  207. package/apps/web/src/panel/StartPage.tsx +163 -0
  208. package/apps/web/src/panel/connection-state.ts +40 -0
  209. package/apps/web/src/panel/contract.ts +66 -21
  210. package/apps/web/src/panel/page-props.ts +6 -0
  211. package/apps/web/src/plugin-bootstrap.ts +60 -31
  212. package/{plugins/ragents.product/web → apps/web/src/product}/ModelControl.tsx +3 -3
  213. package/{plugins/ragents.product/web → apps/web/src/product}/ProductModelSettings.tsx +7 -7
  214. package/{plugins/ragents.product/web → apps/web/src/product}/SystemPromptControl.tsx +3 -3
  215. package/{plugins/ragents.product/web → apps/web/src/product}/model-settings.ts +3 -3
  216. package/{plugins/ragents.product/web → apps/web/src/product}/start-options.tsx +2 -2
  217. package/apps/web/src/rpc/client.ts +28 -6
  218. package/apps/web/src/run-panel/RunPanelApp.tsx +334 -0
  219. package/apps/web/src/{column/ColumnRunHeader.tsx → run-panel/RunPanelHeader.tsx} +2 -2
  220. package/apps/web/src/{column/ColumnMenu.tsx → run-panel/RunPanelMenu.tsx} +4 -4
  221. package/apps/web/src/run-panel/RunPanelRail.tsx +38 -0
  222. package/apps/web/src/run-panel/RunPanelWorkspace.tsx +55 -0
  223. package/apps/web/src/{column → run-panel}/clipboard.ts +21 -10
  224. package/apps/web/src/run-panel/host-contract.ts +123 -0
  225. package/apps/web/src/{column → run-panel}/host.ts +31 -23
  226. package/apps/web/src/run-panel/input-bridge.ts +75 -0
  227. package/apps/web/src/run-panel/keyboard.ts +53 -0
  228. package/apps/web/src/run-panel/run-panel-location.ts +35 -0
  229. package/apps/web/src/{column → run-panel}/use-session-list.ts +3 -3
  230. package/apps/web/src/run-panel/workspace-state.ts +43 -0
  231. package/apps/web/src/{column.tsx → run-panel.tsx} +20 -13
  232. package/apps/web/src/run-preparation.ts +1 -1
  233. package/{plugins/ragents.orchestration/web → apps/web/src}/run-view.ts +25 -7
  234. package/apps/web/src/settings-contributions.ts +16 -18
  235. package/apps/web/src/title-model-settings.ts +1 -1
  236. package/apps/web/src/toolLine.ts +1 -1
  237. package/apps/web/src/ui/ListDetail.tsx +1 -1
  238. package/apps/web/src/ui/dialog.tsx +5 -5
  239. package/apps/web/src/ui/frame.css +1 -0
  240. package/apps/web/src/ui/index.ts +5 -0
  241. package/apps/web/src/ui/popover.tsx +2 -2
  242. package/apps/web/src/ui/quassel.css +41 -0
  243. package/apps/web/src/ui/relative-time.ts +36 -0
  244. package/apps/web/src/ui/startup-notice.tsx +22 -0
  245. package/apps/web/src/ui/state-icon.tsx +60 -0
  246. package/apps/web/src/ui/state-vocabulary.ts +31 -0
  247. package/apps/web/src/ui/stop-button.tsx +22 -0
  248. package/apps/web/src/ui/tailwind.css +2 -3
  249. package/apps/web/src/ui/theme.css +19 -19
  250. package/apps/web/tsconfig.json +4 -5
  251. package/apps/web/tsconfig.plugin.json +44 -0
  252. package/bundles/ragents.activity/ragents-bundle.json +38 -0
  253. package/bundles/ragents.activity/server/index.js +14 -0
  254. package/bundles/ragents.activity/server/index.js.map +7 -0
  255. package/bundles/ragents.activity/web/classes.json +1 -0
  256. package/bundles/ragents.activity/web/index.js +2 -0
  257. package/bundles/ragents.activity/web/index.js.map +7 -0
  258. package/bundles/ragents.actor-programs/prompt.hbs +80 -0
  259. package/bundles/ragents.actor-programs/ragents-bundle.json +214 -0
  260. package/bundles/ragents.actor-programs/server/index.js +2071 -0
  261. package/bundles/ragents.actor-programs/server/index.js.map +7 -0
  262. package/bundles/ragents.actor-programs/summary.hbs +17 -0
  263. package/bundles/ragents.actor-programs/web/classes.json +1 -0
  264. package/bundles/ragents.actor-programs/web/index.js +27 -0
  265. package/bundles/ragents.actor-programs/web/index.js.map +7 -0
  266. package/bundles/ragents.ask/ask.hbs +4 -0
  267. package/bundles/ragents.ask/ragents-bundle.json +97 -0
  268. package/bundles/ragents.ask/server/chunks/chunk-PDJO75SQ.js +13 -0
  269. package/bundles/ragents.ask/server/chunks/chunk-PDJO75SQ.js.map +7 -0
  270. package/bundles/ragents.ask/server/exports/server/contract.js +11 -0
  271. package/bundles/ragents.ask/server/exports/server/contract.js.map +7 -0
  272. package/bundles/ragents.ask/server/index.js +279 -0
  273. package/bundles/ragents.ask/server/index.js.map +7 -0
  274. package/bundles/ragents.ask/web/chunks/chunk-4VXWWEG7.js +2 -0
  275. package/bundles/ragents.ask/web/chunks/chunk-4VXWWEG7.js.map +7 -0
  276. package/bundles/ragents.ask/web/chunks/chunk-HGFDGTNC.js +2 -0
  277. package/bundles/ragents.ask/web/chunks/chunk-HGFDGTNC.js.map +7 -0
  278. package/bundles/ragents.ask/web/chunks/chunk-V7W3QDVS.js +25 -0
  279. package/bundles/ragents.ask/web/chunks/chunk-V7W3QDVS.js.map +7 -0
  280. package/bundles/ragents.ask/web/chunks/chunk-VUBJDIKQ.js +2 -0
  281. package/bundles/ragents.ask/web/chunks/chunk-VUBJDIKQ.js.map +7 -0
  282. package/bundles/ragents.ask/web/classes.json +1 -0
  283. package/bundles/ragents.ask/web/exports/ask-payload.js +2 -0
  284. package/bundles/ragents.ask/web/exports/ask-payload.js.map +7 -0
  285. package/bundles/ragents.ask/web/exports/web/QuestionCard.js +2 -0
  286. package/bundles/ragents.ask/web/exports/web/QuestionCard.js.map +7 -0
  287. package/bundles/ragents.ask/web/exports/web/api.js +2 -0
  288. package/bundles/ragents.ask/web/exports/web/api.js.map +7 -0
  289. package/bundles/ragents.ask/web/index.js +2 -0
  290. package/bundles/ragents.ask/web/index.js.map +7 -0
  291. package/bundles/ragents.browser/ragents-bundle.json +53 -0
  292. package/bundles/ragents.browser/server/chunks/chunk-2GKLLCBE.js +11 -0
  293. package/bundles/ragents.browser/server/chunks/chunk-2GKLLCBE.js.map +7 -0
  294. package/bundles/ragents.browser/server/exports/server/contract.js +9 -0
  295. package/bundles/ragents.browser/server/exports/server/contract.js.map +7 -0
  296. package/bundles/ragents.browser/server/index.js +479 -0
  297. package/bundles/ragents.browser/server/index.js.map +7 -0
  298. package/bundles/ragents.browser/skills/browser-testing/SKILL.md +38 -0
  299. package/bundles/ragents.documents/prompt.hbs +18 -0
  300. package/bundles/ragents.documents/ragents-bundle.json +120 -0
  301. package/bundles/ragents.documents/server/chunks/chunk-QIECRZ7C.js +37 -0
  302. package/bundles/ragents.documents/server/chunks/chunk-QIECRZ7C.js.map +7 -0
  303. package/bundles/ragents.documents/server/exports/contract.js +11 -0
  304. package/bundles/ragents.documents/server/exports/contract.js.map +7 -0
  305. package/bundles/ragents.documents/server/index.js +290 -0
  306. package/bundles/ragents.documents/server/index.js.map +7 -0
  307. package/bundles/ragents.documents/web/classes.json +1 -0
  308. package/bundles/ragents.documents/web/index.js +26 -0
  309. package/bundles/ragents.documents/web/index.js.map +7 -0
  310. package/bundles/ragents.lsp-fsharp/ragents-bundle.json +49 -0
  311. package/bundles/ragents.lsp-fsharp/server/index.js +82 -0
  312. package/bundles/ragents.lsp-fsharp/server/index.js.map +7 -0
  313. package/bundles/ragents.lsp-fsharp/web/classes.json +1 -0
  314. package/bundles/ragents.lsp-fsharp/web/index.js +2 -0
  315. package/bundles/ragents.lsp-fsharp/web/index.js.map +7 -0
  316. package/bundles/ragents.lsp-roslyn/ragents-bundle.json +61 -0
  317. package/bundles/ragents.lsp-roslyn/server/index.js +208 -0
  318. package/bundles/ragents.lsp-roslyn/server/index.js.map +7 -0
  319. package/bundles/ragents.lsp-roslyn/web/classes.json +1 -0
  320. package/bundles/ragents.lsp-roslyn/web/index.js +2 -0
  321. package/bundles/ragents.lsp-roslyn/web/index.js.map +7 -0
  322. package/bundles/ragents.lsp-typescript/ragents-bundle.json +36 -0
  323. package/bundles/ragents.lsp-typescript/server/index.js +13 -0
  324. package/bundles/ragents.lsp-typescript/server/index.js.map +7 -0
  325. package/bundles/ragents.lsp-typescript/web/classes.json +1 -0
  326. package/bundles/ragents.lsp-typescript/web/index.js +2 -0
  327. package/bundles/ragents.lsp-typescript/web/index.js.map +7 -0
  328. package/bundles/ragents.model-relay/ragents-bundle.json +33 -0
  329. package/bundles/ragents.model-relay/server/index.js +230 -0
  330. package/bundles/ragents.model-relay/server/index.js.map +7 -0
  331. package/bundles/ragents.orchestration/orchestration.hbs +106 -0
  332. package/bundles/ragents.orchestration/ragents-bundle.json +194 -0
  333. package/bundles/ragents.orchestration/server/index.js +277 -0
  334. package/bundles/ragents.orchestration/server/index.js.map +7 -0
  335. package/bundles/ragents.orchestration/web/chunks/chunk-ODMMQGX2.js +2 -0
  336. package/bundles/ragents.orchestration/web/chunks/chunk-ODMMQGX2.js.map +7 -0
  337. package/bundles/ragents.orchestration/web/chunks/chunk-OQYCNYXN.js +2 -0
  338. package/bundles/ragents.orchestration/web/chunks/chunk-OQYCNYXN.js.map +7 -0
  339. package/bundles/ragents.orchestration/web/chunks/chunk-OSKPH6SZ.js +2 -0
  340. package/bundles/ragents.orchestration/web/chunks/chunk-OSKPH6SZ.js.map +7 -0
  341. package/bundles/ragents.orchestration/web/chunks/chunk-XGPPQCZR.js +2 -0
  342. package/bundles/ragents.orchestration/web/chunks/chunk-XGPPQCZR.js.map +7 -0
  343. package/bundles/ragents.orchestration/web/classes.json +1 -0
  344. package/bundles/ragents.orchestration/web/exports/web/program-slot.js +2 -0
  345. package/bundles/ragents.orchestration/web/exports/web/program-slot.js.map +7 -0
  346. package/bundles/ragents.orchestration/web/exports/web/surface-entities.js +2 -0
  347. package/bundles/ragents.orchestration/web/exports/web/surface-entities.js.map +7 -0
  348. package/bundles/ragents.orchestration/web/exports/web/tile-docking.js +2 -0
  349. package/bundles/ragents.orchestration/web/exports/web/tile-docking.js.map +7 -0
  350. package/bundles/ragents.orchestration/web/index.js +51 -0
  351. package/bundles/ragents.orchestration/web/index.js.map +7 -0
  352. package/bundles/ragents.overseer/ragents-bundle.json +144 -0
  353. package/bundles/ragents.overseer/server/index.js +652 -0
  354. package/bundles/ragents.overseer/server/index.js.map +7 -0
  355. package/bundles/ragents.overseer/web/classes.json +1 -0
  356. package/bundles/ragents.overseer/web/index.js +25 -0
  357. package/bundles/ragents.overseer/web/index.js.map +7 -0
  358. package/bundles/ragents.processes/ragents-bundle.json +93 -0
  359. package/bundles/ragents.processes/server/index.js +204 -0
  360. package/bundles/ragents.processes/server/index.js.map +7 -0
  361. package/bundles/ragents.processes/web/classes.json +1 -0
  362. package/bundles/ragents.processes/web/index.js +4 -0
  363. package/bundles/ragents.processes/web/index.js.map +7 -0
  364. package/bundles/ragents.product/preamble.hbs +9 -0
  365. package/bundles/ragents.product/ragents-bundle.json +93 -0
  366. package/bundles/ragents.product/server/index.js +208 -0
  367. package/bundles/ragents.product/server/index.js.map +7 -0
  368. package/bundles/ragents.product/web/classes.json +1 -0
  369. package/bundles/ragents.product/web/index.js +2 -0
  370. package/bundles/ragents.product/web/index.js.map +7 -0
  371. package/bundles/ragents.profile-distribution/ragents-bundle.json +64 -0
  372. package/bundles/ragents.profile-distribution/server/index.js +241 -0
  373. package/bundles/ragents.profile-distribution/server/index.js.map +7 -0
  374. package/bundles/ragents.reference/ragents-bundle.json +39 -0
  375. package/bundles/ragents.reference/run-scripts/balcony-wizard/RUN.md +27 -0
  376. package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/package.json +10 -0
  377. package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/client.tsx +80 -0
  378. package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/conversation.ts +82 -0
  379. package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/tests/conversation.test.ts +154 -0
  380. package/bundles/ragents.reference/run-scripts/balcony-wizard/package.json +9 -0
  381. package/bundles/ragents.reference/run-scripts/balcony-wizard/src/server.ts +32 -0
  382. package/bundles/ragents.reference/run-scripts/balcony-wizard/tests/program.test.ts +59 -0
  383. package/bundles/ragents.reference/run-scripts/conversation-circle/RUN.md +13 -0
  384. package/bundles/ragents.reference/run-scripts/conversation-circle/package.json +9 -0
  385. package/bundles/ragents.reference/run-scripts/conversation-circle/src/server.ts +81 -0
  386. package/bundles/ragents.reference/run-scripts/conversation-circle/tests/helpers.ts +26 -0
  387. package/bundles/ragents.reference/run-scripts/conversation-circle/tests/program.test.ts +34 -0
  388. package/bundles/ragents.reference/run-scripts/learning-afternoon/RUN.md +24 -0
  389. package/bundles/ragents.reference/run-scripts/learning-afternoon/package.json +10 -0
  390. package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/experiment.md +1 -0
  391. package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/helper.md +5 -0
  392. package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/quiz.md +1 -0
  393. package/bundles/ragents.reference/run-scripts/learning-afternoon/src/client.tsx +27 -0
  394. package/bundles/ragents.reference/run-scripts/learning-afternoon/src/server.ts +137 -0
  395. package/bundles/ragents.reference/run-scripts/learning-afternoon/src/state.ts +38 -0
  396. package/bundles/ragents.reference/run-scripts/learning-afternoon/src/view.tsx +42 -0
  397. package/bundles/ragents.reference/run-scripts/learning-afternoon/src/workflow.ts +38 -0
  398. package/bundles/ragents.reference/run-scripts/learning-afternoon/tests/program.test.ts +218 -0
  399. package/bundles/ragents.reference/run-scripts/moderated-round/RUN.md +12 -0
  400. package/bundles/ragents.reference/run-scripts/moderated-round/package.json +9 -0
  401. package/bundles/ragents.reference/run-scripts/moderated-round/src/server.ts +60 -0
  402. package/bundles/ragents.reference/run-scripts/moderated-round/tests/helpers.ts +26 -0
  403. package/bundles/ragents.reference/run-scripts/moderated-round/tests/program.test.ts +24 -0
  404. package/bundles/ragents.reference/run-scripts/shared-actor-list/RUN.md +18 -0
  405. package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/package.json +16 -0
  406. package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/client.tsx +39 -0
  407. package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/contract.ts +15 -0
  408. package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/server.ts +14 -0
  409. package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/tests/program.test.ts +13 -0
  410. package/bundles/ragents.reference/run-scripts/shared-actor-list/package.json +9 -0
  411. package/bundles/ragents.reference/run-scripts/shared-actor-list/src/server.ts +65 -0
  412. package/bundles/ragents.reference/run-scripts/shared-actor-list/tests/helpers.ts +26 -0
  413. package/bundles/ragents.reference/run-scripts/shared-actor-list/tests/program.test.ts +42 -0
  414. package/bundles/ragents.reference/run-scripts/word-game/RUN.md +25 -0
  415. package/bundles/ragents.reference/run-scripts/word-game/package.json +11 -0
  416. package/bundles/ragents.reference/run-scripts/word-game/src/client.tsx +27 -0
  417. package/bundles/ragents.reference/run-scripts/word-game/src/contract.ts +23 -0
  418. package/bundles/ragents.reference/run-scripts/word-game/src/server.ts +105 -0
  419. package/bundles/ragents.reference/run-scripts/word-game/src/state.ts +22 -0
  420. package/bundles/ragents.reference/run-scripts/word-game/src/view.tsx +54 -0
  421. package/bundles/ragents.reference/run-scripts/word-game/tests/program.test.ts +252 -0
  422. package/bundles/ragents.reference/server/index.js +16 -0
  423. package/bundles/ragents.reference/server/index.js.map +7 -0
  424. package/bundles/ragents.reference/skills/100-shared-actor-list/SKILL.md +12 -0
  425. package/bundles/ragents.reference/skills/110-all-card-slots/SKILL.md +12 -0
  426. package/bundles/ragents.reference/skills/150-editorial-workbench/SKILL.md +12 -0
  427. package/bundles/ragents.reference/skills/160-learning-companion/SKILL.md +12 -0
  428. package/bundles/ragents.reference/skills/170-photo-collection/SKILL.md +12 -0
  429. package/bundles/ragents.reference/skills/180-decision-workbench/SKILL.md +12 -0
  430. package/bundles/ragents.reference/skills/190-review-queue/SKILL.md +12 -0
  431. package/bundles/ragents.reference/skills/20-circle-of-four/SKILL.md +12 -0
  432. package/bundles/ragents.reference/skills/200-typescript-diagnostics/SKILL.md +12 -0
  433. package/bundles/ragents.reference/skills/210-moderator-handover/SKILL.md +12 -0
  434. package/bundles/ragents.reference/skills/220-actor-approval-list/SKILL.md +12 -0
  435. package/bundles/ragents.reference/skills/230-shared-state-views/SKILL.md +12 -0
  436. package/bundles/ragents.reference/skills/240-live-result-list/SKILL.md +12 -0
  437. package/bundles/ragents.reference/skills/250-balcony-wizard/SKILL.md +12 -0
  438. package/bundles/ragents.reference/skills/30-llm-without-runtime-knowledge/SKILL.md +12 -0
  439. package/bundles/ragents.reference/skills/35-actor-input-fifo/SKILL.md +12 -0
  440. package/bundles/ragents.reference/skills/40-subscription-matrix/SKILL.md +12 -0
  441. package/bundles/ragents.reference/skills/50-subscription-removal/SKILL.md +12 -0
  442. package/bundles/ragents.reference/skills/60-stop-in-the-circle/SKILL.md +12 -0
  443. package/bundles/ragents.reference/skills/65-artifact-least-privilege/SKILL.md +12 -0
  444. package/bundles/ragents.reference/skills/70-headless-counter/SKILL.md +12 -0
  445. package/bundles/ragents.reference/skills/75-lsp-demo/SKILL.md +12 -0
  446. package/bundles/ragents.reference/skills/80-actor-text-analysis/SKILL.md +12 -0
  447. package/bundles/ragents.reference/skills/90-actor-notes/SKILL.md +12 -0
  448. package/bundles/ragents.reference/skills/95-hello-world/SKILL.md +12 -0
  449. package/bundles/ragents.reference/skills/decision-brief/SKILL.md +33 -0
  450. package/bundles/ragents.reference/skills/learning-sprint/SKILL.md +33 -0
  451. package/bundles/ragents.reference/web/classes.json +1 -0
  452. package/bundles/ragents.reference/web/index.js +2 -0
  453. package/bundles/ragents.reference/web/index.js.map +7 -0
  454. package/bundles/ragents.todo/ragents-bundle.json +48 -0
  455. package/bundles/ragents.todo/server/index.js +108 -0
  456. package/bundles/ragents.todo/server/index.js.map +7 -0
  457. package/bundles/ragents.todo/web/classes.json +1 -0
  458. package/bundles/ragents.todo/web/index.js +2 -0
  459. package/bundles/ragents.todo/web/index.js.map +7 -0
  460. package/bundles/ragents.transcript/ragents-bundle.json +34 -0
  461. package/bundles/ragents.transcript/server/index.js +102 -0
  462. package/bundles/ragents.transcript/server/index.js.map +7 -0
  463. package/bundles/ragents.watch/ragents-bundle.json +39 -0
  464. package/bundles/ragents.watch/server/chunks/chunk-FHAM6OML.js +11 -0
  465. package/bundles/ragents.watch/server/chunks/chunk-FHAM6OML.js.map +7 -0
  466. package/bundles/ragents.watch/server/chunks/chunk-RPBX3J4P.js +10 -0
  467. package/bundles/ragents.watch/server/chunks/chunk-RPBX3J4P.js.map +7 -0
  468. package/bundles/ragents.watch/server/exports/contract.js +9 -0
  469. package/bundles/ragents.watch/server/exports/contract.js.map +7 -0
  470. package/bundles/ragents.watch/server/exports/server/contract.js +9 -0
  471. package/bundles/ragents.watch/server/exports/server/contract.js.map +7 -0
  472. package/bundles/ragents.watch/server/index.js +482 -0
  473. package/bundles/ragents.watch/server/index.js.map +7 -0
  474. package/bundles/ragents.workspace/prompt.hbs +7 -0
  475. package/bundles/ragents.workspace/ragents-bundle.json +148 -0
  476. package/bundles/ragents.workspace/server/index.js +1049 -0
  477. package/bundles/ragents.workspace/server/index.js.map +7 -0
  478. package/bundles/ragents.workspace/web/classes.json +1 -0
  479. package/bundles/ragents.workspace/web/index.js +39 -0
  480. package/bundles/ragents.workspace/web/index.js.map +7 -0
  481. package/package.json +4 -15
  482. package/packages/agent/dist/core/agent-settings.d.ts +27 -0
  483. package/packages/agent/dist/core/compaction/compaction.d.ts +82 -0
  484. package/packages/agent/dist/core/compaction/index.d.ts +6 -0
  485. package/packages/agent/dist/core/compaction/utils.d.ts +39 -0
  486. package/packages/agent/dist/core/context-log.d.ts +25 -0
  487. package/packages/agent/dist/core/messages.d.ts +30 -0
  488. package/packages/agent/dist/core/model-runtime.d.ts +32 -0
  489. package/packages/agent/dist/core/provider-composer.d.ts +25 -0
  490. package/packages/agent/dist/core/skills.d.ts +20 -0
  491. package/packages/agent/dist/core/tool-definition.d.ts +17 -0
  492. package/packages/agent/dist/core/tools/bash.d.ts +58 -0
  493. package/packages/agent/dist/core/tools/edit-diff.d.ts +98 -0
  494. package/packages/agent/dist/core/tools/edit.d.ts +41 -0
  495. package/packages/agent/dist/core/tools/file-mutation-queue.d.ts +6 -0
  496. package/packages/agent/dist/core/tools/index.d.ts +5 -0
  497. package/packages/agent/dist/core/tools/output-accumulator.d.ts +58 -0
  498. package/packages/agent/dist/core/tools/path-utils.d.ts +8 -0
  499. package/packages/agent/dist/core/tools/read.d.ts +33 -0
  500. package/packages/agent/dist/core/tools/truncate.d.ts +61 -0
  501. package/packages/agent/dist/core/tools/write.d.ts +23 -0
  502. package/packages/agent/dist/index.d.ts +12 -0
  503. package/packages/agent/dist/loop/agent-loop.d.ts +13 -0
  504. package/packages/agent/dist/loop/agent.d.ts +99 -0
  505. package/packages/agent/dist/loop/index.d.ts +5 -0
  506. package/packages/agent/dist/loop/types.d.ts +333 -0
  507. package/packages/agent/dist/loop/uuid.d.ts +2 -0
  508. package/packages/agent/dist/utils/child-process.d.ts +17 -0
  509. package/packages/agent/dist/utils/exif-orientation.d.ts +5 -0
  510. package/packages/agent/dist/utils/frontmatter.d.ts +8 -0
  511. package/packages/agent/dist/utils/image-convert.d.ts +2 -0
  512. package/packages/agent/dist/utils/image-process.d.ts +18 -0
  513. package/packages/agent/dist/utils/image-resize-core.d.ts +30 -0
  514. package/packages/agent/dist/utils/image-resize-worker.d.ts +2 -0
  515. package/packages/agent/dist/utils/image-resize.d.ts +16 -0
  516. package/packages/agent/dist/utils/mime.d.ts +3 -0
  517. package/packages/agent/dist/utils/paths.d.ts +15 -0
  518. package/packages/agent/dist/utils/photon.d.ts +21 -0
  519. package/packages/agent/dist/utils/shell.d.ts +17 -0
  520. package/packages/agent/dist/utils/sleep.d.ts +5 -0
  521. package/packages/agent/package.json +3 -32
  522. package/packages/agent/src/core/agent-settings.ts +20 -0
  523. package/packages/agent/src/core/compaction/compaction.ts +53 -208
  524. package/packages/agent/src/core/compaction/index.ts +0 -1
  525. package/packages/agent/src/core/compaction/utils.ts +2 -2
  526. package/packages/agent/src/core/context-log.ts +49 -0
  527. package/packages/agent/src/core/messages.ts +9 -119
  528. package/packages/agent/src/core/model-runtime.ts +109 -467
  529. package/packages/agent/src/core/provider-composer.ts +21 -451
  530. package/packages/agent/src/core/skills.ts +8 -440
  531. package/packages/agent/src/core/tool-definition.ts +29 -0
  532. package/packages/agent/src/core/tools/bash.ts +22 -41
  533. package/packages/agent/src/core/tools/edit-diff.ts +0 -60
  534. package/packages/agent/src/core/tools/edit.ts +4 -29
  535. package/packages/agent/src/core/tools/index.ts +4 -130
  536. package/packages/agent/src/core/tools/output-accumulator.ts +33 -5
  537. package/packages/agent/src/core/tools/path-utils.ts +2 -49
  538. package/packages/agent/src/core/tools/read.ts +6 -29
  539. package/packages/agent/src/core/tools/truncate.ts +0 -15
  540. package/packages/agent/src/core/tools/write.ts +2 -13
  541. package/packages/agent/src/index.ts +23 -270
  542. package/packages/{agent-core/src → agent/src/loop}/agent-loop.ts +128 -275
  543. package/packages/{agent-core/src → agent/src/loop}/agent.ts +20 -166
  544. package/packages/{agent-core/src → agent/src/loop}/types.ts +6 -105
  545. package/packages/agent/src/utils/child-process.ts +0 -13
  546. package/packages/agent/src/utils/image-convert.ts +0 -25
  547. package/packages/agent/src/utils/paths.ts +1 -71
  548. package/packages/agent/src/utils/shell.ts +13 -156
  549. package/packages/ai/dist/api/ai-sdk-messages.d.ts +9 -0
  550. package/packages/ai/dist/api/ai-sdk-transport.d.ts +13 -0
  551. package/packages/ai/dist/api/ai-sdk.d.ts +15 -0
  552. package/packages/ai/dist/api/ai-sdk.lazy.d.ts +3 -0
  553. package/packages/ai/dist/api/lazy.d.ts +15 -0
  554. package/packages/ai/dist/api/simple-options.d.ts +4 -0
  555. package/packages/ai/dist/api/transform-messages.d.ts +8 -0
  556. package/packages/ai/dist/api-registry.d.ts +25 -0
  557. package/packages/ai/dist/auth/context.d.ts +4 -0
  558. package/packages/ai/dist/auth/helpers.d.ts +4 -0
  559. package/packages/ai/dist/auth/resolve.d.ts +19 -0
  560. package/packages/ai/dist/auth/types.d.ts +51 -0
  561. package/packages/ai/dist/env-api-keys.d.ts +8 -0
  562. package/packages/ai/dist/index.d.ts +19 -0
  563. package/packages/ai/dist/models.d.ts +71 -0
  564. package/packages/ai/dist/models.generated.d.ts +8021 -0
  565. package/packages/ai/dist/providers/all.d.ts +15 -0
  566. package/packages/ai/dist/providers/faux.d.ts +97 -0
  567. package/packages/ai/dist/providers/openrouter.d.ts +3 -0
  568. package/packages/ai/dist/providers/openrouter.models.d.ts +8019 -0
  569. package/packages/ai/dist/types.d.ts +543 -0
  570. package/packages/ai/dist/utils/diagnostics.d.ts +13 -0
  571. package/packages/ai/dist/utils/error-body.d.ts +25 -0
  572. package/packages/ai/dist/utils/estimate.d.ts +17 -0
  573. package/packages/ai/dist/utils/event-stream.d.ts +21 -0
  574. package/packages/ai/dist/utils/headers.d.ts +2 -0
  575. package/packages/ai/dist/utils/json-parse.d.ts +16 -0
  576. package/packages/ai/dist/utils/overflow.d.ts +54 -0
  577. package/packages/ai/dist/utils/provider-env.d.ts +7 -0
  578. package/packages/ai/dist/utils/retry.d.ts +12 -0
  579. package/packages/ai/dist/utils/sanitize-unicode.d.ts +22 -0
  580. package/packages/ai/dist/utils/typebox-helpers.d.ts +17 -0
  581. package/packages/ai/dist/utils/validation.d.ts +10 -0
  582. package/packages/ai/package.json +2 -6
  583. package/packages/ai/src/api/ai-sdk-messages.ts +15 -10
  584. package/packages/ai/src/api/ai-sdk-transport.ts +2 -2
  585. package/packages/ai/src/api/ai-sdk.ts +11 -0
  586. package/packages/ai/src/api/simple-options.ts +0 -34
  587. package/packages/ai/src/api/transform-messages.ts +1 -1
  588. package/packages/ai/src/api-registry.ts +1 -12
  589. package/packages/ai/src/auth/context.ts +1 -30
  590. package/packages/ai/src/auth/helpers.ts +3 -34
  591. package/packages/ai/src/auth/resolve.ts +10 -108
  592. package/packages/ai/src/auth/types.ts +9 -176
  593. package/packages/ai/src/index.ts +1 -13
  594. package/packages/ai/src/models.ts +41 -407
  595. package/packages/ai/src/providers/all.ts +3 -31
  596. package/packages/ai/src/providers/openrouter.models.ts +14 -0
  597. package/packages/ai/src/types.ts +2 -104
  598. package/packages/ai/src/utils/diagnostics.ts +0 -32
  599. package/packages/ai/src/utils/headers.ts +0 -11
  600. package/packages/ai/src/utils/overflow.ts +0 -7
  601. package/packages/ai/src/utils/retry.ts +14 -0
  602. package/packages/ai/src/utils/validation.ts +0 -15
  603. package/packages/ragents/package.json +3 -6
  604. package/packages/ragents/src/access.ts +2 -1
  605. package/packages/ragents/src/agents/actor-input.ts +29 -18
  606. package/packages/ragents/src/agents/catalog.ts +3 -3
  607. package/packages/ragents/src/agents/model-context.ts +360 -0
  608. package/packages/ragents/src/agents/plugins.ts +0 -4
  609. package/packages/ragents/src/agents/scheduler.ts +233 -83
  610. package/packages/ragents/src/agents/schemas.ts +1 -36
  611. package/packages/ragents/src/agents/tool-orientation.ts +1 -1
  612. package/packages/ragents/src/agents/tools.ts +74 -75
  613. package/packages/ragents/src/agents/toolset.ts +51 -24
  614. package/packages/ragents/src/agents/turn.ts +2 -14
  615. package/packages/ragents/src/agents/workspaces.ts +12 -0
  616. package/packages/ragents/src/domain/actor-reference.ts +22 -0
  617. package/packages/ragents/src/domain/driver.ts +0 -9
  618. package/packages/ragents/src/domain/event-semantics.ts +111 -72
  619. package/packages/ragents/src/domain/event-validation.ts +188 -21
  620. package/packages/ragents/src/domain/events.ts +91 -7
  621. package/packages/ragents/src/domain/json.ts +2 -0
  622. package/packages/ragents/src/domain/model.ts +42 -18
  623. package/packages/ragents/src/domain/projection.ts +52 -15
  624. package/packages/ragents/src/domain/schema-errors.ts +3 -3
  625. package/packages/ragents/src/domain/tool-result-text.ts +9 -0
  626. package/packages/ragents/src/drivers/agent-hooks.ts +27 -0
  627. package/packages/ragents/src/drivers/agent-runtime.ts +137 -1020
  628. package/packages/ragents/src/drivers/agent-turn.ts +735 -0
  629. package/packages/ragents/src/drivers/agent.ts +13 -26
  630. package/packages/ragents/src/drivers/attachments.ts +4 -24
  631. package/packages/ragents/src/drivers/skill-preload.ts +56 -78
  632. package/packages/ragents/src/drivers/types.ts +39 -6
  633. package/packages/ragents/src/http/contracts.ts +16 -3
  634. package/packages/ragents/src/http/methods.ts +32 -33
  635. package/packages/ragents/src/index.ts +12 -21
  636. package/packages/ragents/src/plugin-host.ts +150 -105
  637. package/packages/ragents/src/plugin-types.ts +86 -23
  638. package/packages/ragents/src/rpc/peer.ts +6 -0
  639. package/packages/ragents/src/runtime/decisions/actions.ts +40 -37
  640. package/packages/ragents/src/runtime/decisions/actors.ts +100 -51
  641. package/packages/ragents/src/runtime/decisions/artifacts.ts +2 -2
  642. package/packages/ragents/src/runtime/decisions/inputs.ts +3 -3
  643. package/packages/ragents/src/runtime/decisions/subscriptions.ts +9 -7
  644. package/packages/ragents/src/runtime/decisions/turns.ts +101 -9
  645. package/packages/ragents/src/runtime/guards.ts +12 -21
  646. package/packages/ragents/src/runtime/journal-storage.ts +8 -3
  647. package/packages/ragents/src/runtime/journal.ts +36 -1
  648. package/packages/ragents/src/runtime/orchestration.ts +167 -19
  649. package/packages/ragents/src/runtime/serial-queue.ts +24 -0
  650. package/packages/ragents/src/runtime/stop.ts +19 -44
  651. package/packages/ragents/src/script/mediators.ts +4 -5
  652. package/packages/ragents/src/typescript/index.ts +2 -0
  653. package/packages/ragents/src/typescript/run-context.ts +10 -8
  654. package/packages/ragents/src/typescript/snippet.ts +7 -6
  655. package/packages/workspace-executor/package.json +2 -2
  656. package/packages/workspace-executor/src/bash-launch.ts +45 -0
  657. package/packages/workspace-executor/src/browser/contract.ts +71 -0
  658. package/packages/workspace-executor/src/browser/module.ts +74 -0
  659. package/packages/workspace-executor/src/browser/pages.ts +298 -0
  660. package/packages/workspace-executor/src/browser/playwright.ts +52 -0
  661. package/packages/workspace-executor/src/commands.ts +170 -0
  662. package/packages/workspace-executor/src/context.ts +34 -6
  663. package/packages/workspace-executor/src/errors.ts +12 -0
  664. package/packages/workspace-executor/src/executor.ts +62 -104
  665. package/packages/workspace-executor/src/files.ts +287 -0
  666. package/packages/workspace-executor/src/index.ts +82 -18
  667. package/packages/workspace-executor/src/language-server/adapters/roslyn.ts +1 -0
  668. package/packages/workspace-executor/src/language-server/contract.ts +14 -0
  669. package/packages/workspace-executor/src/language-server/host.ts +82 -26
  670. package/packages/workspace-executor/src/language-server/module.ts +107 -0
  671. package/packages/workspace-executor/src/language-server/workspace-solutions.ts +90 -0
  672. package/packages/workspace-executor/src/managed-process.ts +1 -1
  673. package/packages/workspace-executor/src/module.ts +35 -0
  674. package/packages/workspace-executor/src/modules.ts +25 -0
  675. package/packages/workspace-executor/src/paths.ts +57 -5
  676. package/packages/workspace-executor/src/process-sandbox.ts +16 -0
  677. package/packages/workspace-executor/src/processes/module.ts +48 -0
  678. package/{plugins/ragents.processes/server → packages/workspace-executor/src/processes}/process-table.ts +80 -57
  679. package/packages/workspace-executor/src/processes/scanner.ts +106 -0
  680. package/{plugins/ragents.processes/server → packages/workspace-executor/src/processes}/snapshot.ts +23 -11
  681. package/{plugins/ragents.processes/server → packages/workspace-executor/src/processes}/terminator.ts +19 -20
  682. package/packages/workspace-executor/src/run-folders.ts +33 -0
  683. package/packages/workspace-executor/src/safe-environment.ts +14 -0
  684. package/packages/workspace-executor/src/sandbox-tools.ts +212 -43
  685. package/packages/workspace-executor/src/shell-platform.ts +2 -2
  686. package/plugins/package.json +1 -1
  687. package/plugins/ragents.activity/ragents-plugin.json +3 -0
  688. package/plugins/ragents.activity/server/index.ts +2 -2
  689. package/plugins/ragents.activity/web/ActivityHeader.tsx +2 -2
  690. package/plugins/ragents.activity/web/activity.ts +1 -1
  691. package/plugins/ragents.activity/web/index.tsx +1 -1
  692. package/plugins/ragents.actor-programs/prompt.hbs +8 -7
  693. package/plugins/ragents.actor-programs/ragents-plugin.json +3 -0
  694. package/plugins/ragents.actor-programs/server/agent-tools.ts +3 -3
  695. package/{apps/server/src/plugin-support/actor-programs → plugins/ragents.actor-programs/server}/capability-resolver.ts +1 -16
  696. package/plugins/ragents.actor-programs/server/controls-template.ts +5 -18
  697. package/plugins/ragents.actor-programs/server/controls-tool.ts +8 -11
  698. package/plugins/ragents.actor-programs/server/index.ts +10 -10
  699. package/{apps/server/src/plugin-support/actor-programs → plugins/ragents.actor-programs/server}/limits.ts +4 -4
  700. package/plugins/ragents.actor-programs/server/methods.ts +2 -2
  701. package/{apps/server/src/plugin-support/actor-programs → plugins/ragents.actor-programs/server}/operations.ts +2 -4
  702. package/plugins/ragents.actor-programs/server/project-diagnostics.ts +65 -70
  703. package/plugins/ragents.actor-programs/server/prompts.ts +4 -4
  704. package/plugins/ragents.actor-programs/server/routes.ts +14 -8
  705. package/plugins/ragents.actor-programs/server/runtime.ts +132 -55
  706. package/plugins/ragents.actor-programs/server/templates.ts +35 -80
  707. package/plugins/ragents.actor-programs/server/test-report.ts +106 -0
  708. package/plugins/ragents.actor-programs/server/tool-contributor.ts +4 -4
  709. package/plugins/ragents.actor-programs/summary.hbs +1 -1
  710. package/plugins/ragents.actor-programs/web/ActorViewFrame.tsx +15 -10
  711. package/plugins/ragents.actor-programs/web/AppsPanel.tsx +47 -30
  712. package/plugins/ragents.actor-programs/web/EmbeddedApps.tsx +15 -17
  713. package/plugins/ragents.actor-programs/web/FullscreenHost.tsx +3 -3
  714. package/plugins/ragents.actor-programs/web/FunctionForm.tsx +3 -3
  715. package/plugins/ragents.actor-programs/web/ProgramSource.tsx +12 -3
  716. package/plugins/ragents.actor-programs/web/api.ts +5 -5
  717. package/plugins/ragents.actor-programs/web/bridge.ts +2 -3
  718. package/plugins/ragents.actor-programs/web/chat-state.ts +9 -8
  719. package/plugins/ragents.actor-programs/web/index.tsx +7 -17
  720. package/plugins/ragents.actor-programs/web/program-state.ts +3 -3
  721. package/plugins/ragents.actor-programs/web/state-revision.ts +2 -2
  722. package/plugins/ragents.ask/ask-payload.ts +25 -0
  723. package/plugins/ragents.ask/contract.ts +2 -2
  724. package/plugins/ragents.ask/ragents-plugin.json +7 -0
  725. package/plugins/ragents.ask/server/answer-method.ts +1 -1
  726. package/plugins/ragents.ask/server/ask-service.ts +43 -19
  727. package/plugins/ragents.ask/server/ask-tool.ts +2 -2
  728. package/plugins/ragents.ask/server/contract.ts +9 -1
  729. package/plugins/ragents.ask/server/index.ts +8 -10
  730. package/plugins/ragents.ask/server/tool-contributor.ts +3 -3
  731. package/plugins/ragents.ask/web/AskActionView.tsx +36 -0
  732. package/{apps/web/src/chat → plugins/ragents.ask/web}/QuestionCard.tsx +7 -5
  733. package/plugins/ragents.ask/web/QuestionSection.tsx +22 -21
  734. package/plugins/ragents.ask/web/api.ts +1 -1
  735. package/plugins/ragents.ask/web/index.tsx +11 -8
  736. package/plugins/ragents.browser/provision.ts +9 -8
  737. package/plugins/ragents.browser/ragents-plugin.json +6 -0
  738. package/plugins/ragents.browser/server/browser.ts +165 -286
  739. package/plugins/ragents.browser/server/contract.ts +8 -19
  740. package/plugins/ragents.browser/server/index.ts +8 -7
  741. package/plugins/ragents.browser/server/tools.ts +29 -37
  742. package/plugins/ragents.browser/skills/browser-testing/SKILL.md +3 -1
  743. package/plugins/ragents.documents/contract.ts +4 -2
  744. package/plugins/ragents.documents/ragents-plugin.json +6 -0
  745. package/plugins/ragents.documents/server/config.ts +1 -1
  746. package/plugins/ragents.documents/server/document-write-tool.ts +2 -2
  747. package/plugins/ragents.documents/server/files-route.ts +2 -3
  748. package/plugins/ragents.documents/server/index.ts +10 -11
  749. package/plugins/ragents.documents/server/show-document-tool.ts +2 -2
  750. package/plugins/ragents.documents/server/store.ts +3 -3
  751. package/plugins/ragents.documents/server/tool-contributor.ts +3 -3
  752. package/plugins/ragents.documents/web/DocumentViewer.tsx +5 -6
  753. package/plugins/ragents.documents/web/api.ts +1 -1
  754. package/plugins/ragents.documents/web/index.tsx +4 -4
  755. package/plugins/ragents.lsp-fsharp/provision.ts +2 -2
  756. package/plugins/ragents.lsp-fsharp/ragents-plugin.json +3 -0
  757. package/plugins/ragents.lsp-fsharp/server/index.ts +3 -3
  758. package/plugins/ragents.lsp-fsharp/web/index.tsx +1 -1
  759. package/plugins/ragents.lsp-roslyn/provision.ts +2 -2
  760. package/plugins/ragents.lsp-roslyn/ragents-plugin.json +3 -0
  761. package/plugins/ragents.lsp-roslyn/server/index.ts +47 -8
  762. package/plugins/ragents.lsp-roslyn/server/solution-on-start.ts +145 -0
  763. package/plugins/ragents.lsp-roslyn/web/index.tsx +1 -1
  764. package/plugins/ragents.lsp-typescript/ragents-plugin.json +3 -0
  765. package/plugins/ragents.lsp-typescript/server/index.ts +3 -3
  766. package/plugins/ragents.lsp-typescript/web/index.tsx +1 -1
  767. package/plugins/ragents.model-relay/ragents-plugin.json +3 -0
  768. package/plugins/ragents.model-relay/server/config.ts +5 -31
  769. package/plugins/ragents.model-relay/server/index.ts +5 -6
  770. package/plugins/ragents.model-relay/server/relay.ts +8 -9
  771. package/plugins/ragents.orchestration/contract.ts +13 -14
  772. package/plugins/ragents.orchestration/orchestration.hbs +4 -3
  773. package/plugins/ragents.orchestration/ragents-plugin.json +6 -0
  774. package/plugins/ragents.orchestration/server/index.ts +13 -16
  775. package/plugins/ragents.orchestration/server/run-stop-tool.ts +4 -4
  776. package/plugins/ragents.orchestration/server/{canvas-tool.ts → surface-tool.ts} +42 -43
  777. package/plugins/ragents.orchestration/surface.hbs +34 -0
  778. package/plugins/ragents.orchestration/tiled-layout.ts +16 -16
  779. package/plugins/ragents.orchestration/web/ActorChat.tsx +16 -14
  780. package/plugins/ragents.orchestration/web/ActorChatControls.tsx +23 -26
  781. package/plugins/ragents.orchestration/web/ActorChatPreview.tsx +5 -6
  782. package/plugins/ragents.orchestration/web/ActorPopout.tsx +7 -5
  783. package/plugins/ragents.orchestration/web/ActorShortcut.tsx +16 -16
  784. package/plugins/ragents.orchestration/web/{ActorCanvasControls.tsx → ActorSurfaceControls.tsx} +23 -28
  785. package/plugins/ragents.orchestration/web/ActorTile.tsx +2 -2
  786. package/plugins/ragents.orchestration/web/Center.tsx +47 -55
  787. package/plugins/ragents.orchestration/web/DocumentsSection.tsx +4 -4
  788. package/plugins/ragents.orchestration/web/ExecutionsPanel.tsx +7 -7
  789. package/plugins/ragents.orchestration/web/FlowInspector.tsx +24 -42
  790. package/plugins/ragents.orchestration/web/JournalStatus.tsx +8 -8
  791. package/plugins/ragents.orchestration/web/MaterialBody.tsx +5 -5
  792. package/plugins/ragents.orchestration/web/StopRunButton.tsx +6 -6
  793. package/plugins/ragents.orchestration/web/SurfaceStartup.tsx +8 -0
  794. package/plugins/ragents.orchestration/web/{CanvasTiles.tsx → SurfaceTiles.tsx} +18 -18
  795. package/plugins/ragents.orchestration/web/{TiledCanvas.tsx → TiledSurface.tsx} +22 -22
  796. package/plugins/ragents.orchestration/web/actor-header-settings.ts +2 -2
  797. package/plugins/ragents.orchestration/web/api.ts +4 -10
  798. package/plugins/ragents.orchestration/web/constants.ts +0 -1
  799. package/plugins/ragents.orchestration/web/executions.ts +3 -3
  800. package/plugins/ragents.orchestration/web/index.tsx +19 -124
  801. package/plugins/ragents.orchestration/web/program-slot.ts +14 -0
  802. package/plugins/ragents.orchestration/web/run-panel/AddresseeControl.tsx +95 -0
  803. package/plugins/ragents.orchestration/web/run-panel/AddresseeTree.tsx +109 -0
  804. package/plugins/ragents.orchestration/web/{column/RunColumn.tsx → run-panel/RunPanel.tsx} +211 -83
  805. package/plugins/ragents.orchestration/web/{column/ColumnSettings.tsx → run-panel/RunPanelSettings.tsx} +13 -13
  806. package/plugins/ragents.orchestration/web/run-panel/addressee-tree.ts +165 -0
  807. package/plugins/ragents.orchestration/web/{column/column-actors.ts → run-panel/run-panel-actors.ts} +14 -13
  808. package/plugins/ragents.orchestration/web/run-panel/run-panel-settings.ts +47 -0
  809. package/plugins/ragents.orchestration/web/run-panel/run-panel-startup.ts +30 -0
  810. package/plugins/ragents.orchestration/web/run-panel/run-panel-state.ts +71 -0
  811. package/plugins/ragents.orchestration/web/{column → run-panel}/sheet-status.ts +4 -4
  812. package/plugins/ragents.orchestration/web/{canvas-stage.ts → surface-entities.ts} +2 -2
  813. package/plugins/ragents.orchestration/web/{canvas-startup.ts → surface-startup.ts} +7 -10
  814. package/plugins/ragents.orchestration/web/surface-view-settings.ts +42 -0
  815. package/plugins/ragents.orchestration/web/tile-docking.ts +14 -14
  816. package/plugins/ragents.orchestration/web/tiled-view-settings.ts +26 -26
  817. package/plugins/ragents.overseer/contract.ts +20 -14
  818. package/plugins/ragents.overseer/ragents-plugin.json +3 -0
  819. package/plugins/ragents.overseer/server/api.ts +34 -23
  820. package/plugins/ragents.overseer/server/coordinator-prompt.ts +3 -3
  821. package/plugins/ragents.overseer/server/coordinator.ts +19 -0
  822. package/plugins/ragents.overseer/server/index.ts +39 -27
  823. package/plugins/ragents.overseer/server/orientation.ts +4 -5
  824. package/plugins/ragents.overseer/server/quick-answer.ts +5 -4
  825. package/plugins/ragents.overseer/server/reset-method.ts +4 -3
  826. package/plugins/ragents.overseer/server/run-directory.ts +5 -5
  827. package/plugins/ragents.overseer/server/settings-method.ts +1 -1
  828. package/plugins/ragents.overseer/server/settings.ts +6 -6
  829. package/plugins/ragents.overseer/server/user-location.ts +20 -19
  830. package/plugins/ragents.overseer/web/ModelSettings.tsx +4 -4
  831. package/plugins/ragents.overseer/web/chat-display.ts +1 -1
  832. package/plugins/ragents.overseer/web/index.tsx +51 -26
  833. package/plugins/ragents.overseer/web/model-settings.ts +1 -1
  834. package/plugins/ragents.overseer/web/quick-answers.ts +2 -2
  835. package/plugins/ragents.processes/contract.ts +5 -5
  836. package/plugins/ragents.processes/ragents-plugin.json +3 -0
  837. package/plugins/ragents.processes/server/index.ts +13 -19
  838. package/plugins/ragents.processes/server/methods.ts +18 -20
  839. package/plugins/ragents.processes/server/observer.ts +64 -104
  840. package/plugins/ragents.processes/server/run-processes.ts +24 -0
  841. package/plugins/ragents.processes/web/ProcessHeader.tsx +13 -16
  842. package/plugins/ragents.processes/web/index.tsx +2 -1
  843. package/plugins/ragents.processes/web/processes.ts +1 -1
  844. package/plugins/ragents.product/ragents-plugin.json +3 -0
  845. package/plugins/ragents.product/server/config.ts +12 -13
  846. package/plugins/ragents.product/server/index.ts +15 -16
  847. package/plugins/ragents.product/server/runtime.ts +2 -2
  848. package/plugins/ragents.product/web/index.tsx +3 -3
  849. package/plugins/ragents.profile-distribution/contract.ts +6 -9
  850. package/plugins/ragents.profile-distribution/ragents-plugin.json +3 -0
  851. package/plugins/ragents.profile-distribution/server/archive.ts +26 -51
  852. package/plugins/ragents.profile-distribution/server/config.ts +2 -2
  853. package/plugins/ragents.profile-distribution/server/index.ts +9 -16
  854. package/plugins/ragents.reference/examples.ts +1 -1
  855. package/plugins/ragents.reference/ragents-plugin.json +3 -0
  856. package/plugins/ragents.reference/run-scripts/balcony-wizard/RUN.md +2 -2
  857. package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/client.tsx +1 -1
  858. package/plugins/ragents.reference/run-scripts/balcony-wizard/src/server.ts +1 -1
  859. package/plugins/ragents.reference/run-scripts/balcony-wizard/tests/program.test.ts +4 -4
  860. package/plugins/ragents.reference/run-scripts/conversation-circle/RUN.md +1 -1
  861. package/plugins/ragents.reference/run-scripts/conversation-circle/src/server.ts +1 -1
  862. package/plugins/ragents.reference/run-scripts/conversation-circle/tests/helpers.ts +1 -1
  863. package/plugins/ragents.reference/run-scripts/learning-afternoon/RUN.md +2 -2
  864. package/plugins/ragents.reference/run-scripts/learning-afternoon/src/client.tsx +1 -1
  865. package/plugins/ragents.reference/run-scripts/learning-afternoon/src/server.ts +1 -1
  866. package/plugins/ragents.reference/run-scripts/learning-afternoon/src/state.ts +2 -2
  867. package/plugins/ragents.reference/run-scripts/learning-afternoon/src/view.tsx +11 -11
  868. package/plugins/ragents.reference/run-scripts/learning-afternoon/src/workflow.ts +15 -15
  869. package/plugins/ragents.reference/run-scripts/learning-afternoon/tests/program.test.ts +4 -9
  870. package/plugins/ragents.reference/run-scripts/moderated-round/src/server.ts +1 -1
  871. package/plugins/ragents.reference/run-scripts/moderated-round/tests/helpers.ts +1 -1
  872. package/plugins/ragents.reference/run-scripts/moderated-round/tests/program.test.ts +2 -2
  873. package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/client.tsx +6 -6
  874. package/plugins/ragents.reference/run-scripts/shared-actor-list/src/server.ts +3 -3
  875. package/plugins/ragents.reference/run-scripts/shared-actor-list/tests/helpers.ts +1 -1
  876. package/plugins/ragents.reference/run-scripts/word-game/RUN.md +1 -1
  877. package/plugins/ragents.reference/run-scripts/word-game/src/client.tsx +1 -1
  878. package/plugins/ragents.reference/run-scripts/word-game/src/server.ts +1 -2
  879. package/plugins/ragents.reference/run-scripts/word-game/src/state.ts +6 -6
  880. package/plugins/ragents.reference/run-scripts/word-game/src/view.tsx +14 -14
  881. package/plugins/ragents.reference/run-scripts/word-game/tests/program.test.ts +7 -8
  882. package/plugins/ragents.reference/server/index.ts +2 -2
  883. package/plugins/ragents.reference/skills/160-learning-companion/SKILL.md +1 -1
  884. package/plugins/ragents.reference/skills/240-live-result-list/SKILL.md +1 -1
  885. package/plugins/ragents.reference/skills/250-balcony-wizard/SKILL.md +1 -1
  886. package/plugins/ragents.reference/skills/90-actor-notes/SKILL.md +1 -1
  887. package/plugins/ragents.reference/skills/95-hello-world/SKILL.md +2 -2
  888. package/plugins/ragents.reference/skills/decision-brief/SKILL.md +2 -2
  889. package/plugins/ragents.reference/walkthroughs.ts +19 -19
  890. package/plugins/ragents.reference/web/StartGuides.tsx +2 -2
  891. package/plugins/ragents.reference/web/index.tsx +1 -1
  892. package/plugins/ragents.todo/ragents-plugin.json +3 -0
  893. package/plugins/ragents.todo/server/index.ts +2 -2
  894. package/plugins/ragents.todo/server/todo-tool.ts +4 -5
  895. package/plugins/ragents.todo/server/tool-contributor.ts +2 -2
  896. package/plugins/ragents.todo/web/TodoSection.tsx +3 -3
  897. package/plugins/ragents.todo/web/index.ts +1 -1
  898. package/plugins/ragents.transcript/ragents-plugin.json +3 -0
  899. package/plugins/ragents.transcript/server/index.ts +4 -4
  900. package/plugins/ragents.transcript/server/transcript.ts +2 -3
  901. package/plugins/ragents.watch/ragents-plugin.json +6 -0
  902. package/plugins/ragents.watch/server/condition.ts +2 -2
  903. package/plugins/ragents.watch/server/contract.ts +1 -1
  904. package/plugins/ragents.watch/server/functions.ts +3 -3
  905. package/plugins/ragents.watch/server/index.ts +3 -3
  906. package/plugins/ragents.watch/server/observation.ts +6 -6
  907. package/plugins/ragents.watch/server/service.ts +5 -5
  908. package/plugins/ragents.workspace/client/workspace-client.ts +129 -58
  909. package/plugins/ragents.workspace/contract.ts +98 -35
  910. package/plugins/ragents.workspace/prompt.hbs +1 -8
  911. package/plugins/ragents.workspace/ragents-plugin.json +3 -0
  912. package/plugins/ragents.workspace/server/binding.ts +122 -39
  913. package/plugins/ragents.workspace/server/browse-route.ts +96 -103
  914. package/plugins/ragents.workspace/server/clients.ts +236 -68
  915. package/plugins/ragents.workspace/server/config.ts +30 -0
  916. package/plugins/ragents.workspace/server/index.ts +61 -26
  917. package/plugins/ragents.workspace/server/runtime.ts +271 -46
  918. package/{apps/server/src/plugin-support → plugins/ragents.workspace/server}/shell-platform.ts +3 -5
  919. package/{apps/server/src/plugin-support → plugins/ragents.workspace/server}/workspace-tool-naming.ts +7 -1
  920. package/plugins/ragents.workspace/web/FileBrowser.tsx +11 -8
  921. package/plugins/ragents.workspace/web/WorkspaceBinding.tsx +115 -61
  922. package/plugins/ragents.workspace/web/api.ts +1 -1
  923. package/plugins/ragents.workspace/web/index.tsx +1 -1
  924. package/ragents.config.core.ts +2 -7
  925. package/ragents.config.showcase.ts +2 -5
  926. package/scripts/agent/agent-cli.ts +265 -107
  927. package/scripts/agent/journal.ts +8 -4
  928. package/scripts/agent/turn-control.ts +19 -0
  929. package/scripts/package/build-package.ts +68 -13
  930. package/scripts/package/ragents.mjs +4 -2
  931. package/scripts/plugin/build-builtin-plugins.ts +52 -0
  932. package/scripts/plugin/plugin-cli.ts +99 -0
  933. package/scripts/provision/run-provision.ts +20 -18
  934. package/scripts/remote/connect.ts +75 -53
  935. package/scripts/remote/start.ts +2 -3
  936. package/scripts/workspace-client/run-workspace-client.ts +15 -9
  937. package/apps/server/agent-home/settings.json +0 -3
  938. package/apps/server/src/chat-attachments.ts +0 -52
  939. package/apps/server/src/chat-events.ts +0 -185
  940. package/apps/server/src/plugin-support/asset-path.ts +0 -4
  941. package/apps/server/src/profile/plugin-list.ts +0 -19
  942. package/apps/server/src/web-build.ts +0 -82
  943. package/apps/web/column.html +0 -12
  944. package/apps/web/index.html +0 -12
  945. package/apps/web/src/StartSurface.tsx +0 -161
  946. package/apps/web/src/chat/ChatInputToolbar.tsx +0 -488
  947. package/apps/web/src/chat/ChatMessages.tsx +0 -666
  948. package/apps/web/src/chat/ChatPanel.tsx +0 -61
  949. package/apps/web/src/chat/DetailModeSwitch.tsx +0 -58
  950. package/apps/web/src/chat/Markdown.tsx +0 -104
  951. package/apps/web/src/chat/StepPopover.tsx +0 -82
  952. package/apps/web/src/chat/WorkingScenes.tsx +0 -235
  953. package/apps/web/src/chat/attachments.ts +0 -53
  954. package/apps/web/src/chat/chat-scroll.ts +0 -41
  955. package/apps/web/src/chat/texts.ts +0 -61
  956. package/apps/web/src/chat/types.ts +0 -26
  957. package/apps/web/src/column/ColumnApp.tsx +0 -234
  958. package/apps/web/src/column/column-location.ts +0 -30
  959. package/apps/web/src/column/host-contract.ts +0 -93
  960. package/apps/web/src/panel/OverviewPage.tsx +0 -215
  961. package/apps/web/src/panel/SettingsPage.tsx +0 -98
  962. package/apps/web/src/panel/target-state.ts +0 -78
  963. package/apps/web/src/plugin-discovery.ts +0 -5
  964. package/apps/web/src/virtual-plugins.d.ts +0 -3
  965. package/apps/web/vite.config.ts +0 -140
  966. package/packages/agent/src/config.ts +0 -161
  967. package/packages/agent/src/core/agent-session-runtime.ts +0 -548
  968. package/packages/agent/src/core/agent-session-services.ts +0 -224
  969. package/packages/agent/src/core/agent-session.ts +0 -3357
  970. package/packages/agent/src/core/auth-guidance.ts +0 -18
  971. package/packages/agent/src/core/auth-storage.ts +0 -271
  972. package/packages/agent/src/core/bash-executor.ts +0 -156
  973. package/packages/agent/src/core/compaction/branch-summarization.ts +0 -372
  974. package/packages/agent/src/core/defaults.ts +0 -3
  975. package/packages/agent/src/core/diagnostics.ts +0 -15
  976. package/packages/agent/src/core/event-bus.ts +0 -33
  977. package/packages/agent/src/core/exec.ts +0 -107
  978. package/packages/agent/src/core/experimental.ts +0 -3
  979. package/packages/agent/src/core/extensions/index.ts +0 -149
  980. package/packages/agent/src/core/extensions/loader.ts +0 -709
  981. package/packages/agent/src/core/extensions/runner.ts +0 -1132
  982. package/packages/agent/src/core/extensions/types.ts +0 -1460
  983. package/packages/agent/src/core/extensions/wrapper.ts +0 -45
  984. package/packages/agent/src/core/footer-data-provider.ts +0 -388
  985. package/packages/agent/src/core/http-dispatcher.ts +0 -106
  986. package/packages/agent/src/core/index.ts +0 -78
  987. package/packages/agent/src/core/model-config.ts +0 -287
  988. package/packages/agent/src/core/model-registry.ts +0 -126
  989. package/packages/agent/src/core/model-resolver.ts +0 -675
  990. package/packages/agent/src/core/output-guard.ts +0 -108
  991. package/packages/agent/src/core/package-manager.ts +0 -2441
  992. package/packages/agent/src/core/prompt-templates.ts +0 -284
  993. package/packages/agent/src/core/resolve-config-value.ts +0 -287
  994. package/packages/agent/src/core/resource-loader.ts +0 -946
  995. package/packages/agent/src/core/runtime-credentials.ts +0 -48
  996. package/packages/agent/src/core/sdk.ts +0 -358
  997. package/packages/agent/src/core/session-cwd.ts +0 -59
  998. package/packages/agent/src/core/session-manager.ts +0 -1623
  999. package/packages/agent/src/core/settings-manager.ts +0 -1212
  1000. package/packages/agent/src/core/slash-commands.ts +0 -41
  1001. package/packages/agent/src/core/source-info.ts +0 -40
  1002. package/packages/agent/src/core/system-prompt.ts +0 -147
  1003. package/packages/agent/src/core/timings.ts +0 -50
  1004. package/packages/agent/src/core/tools/tool-definition-wrapper.ts +0 -45
  1005. package/packages/agent/src/core/trust-manager.ts +0 -244
  1006. package/packages/agent/src/utils/ansi.ts +0 -60
  1007. package/packages/agent/src/utils/fs-watch.ts +0 -30
  1008. package/packages/agent/src/utils/git.ts +0 -226
  1009. package/packages/agent/src/utils/json.ts +0 -6
  1010. package/packages/agent/src/utils/tools-manager.ts +0 -63
  1011. package/packages/agent-core/package.json +0 -32
  1012. package/packages/ai/src/api/openrouter-images.lazy.ts +0 -10
  1013. package/packages/ai/src/api/openrouter-images.ts +0 -98
  1014. package/packages/ai/src/auth/credential-store.ts +0 -51
  1015. package/packages/ai/src/compat/extension-oauth-types.ts +0 -45
  1016. package/packages/ai/src/image-models.generated.ts +0 -533
  1017. package/packages/ai/src/images-models.ts +0 -274
  1018. package/packages/ai/src/models-store.ts +0 -38
  1019. package/packages/ai/src/oauth.ts +0 -10
  1020. package/packages/ai/src/providers/openrouter-images.ts +0 -14
  1021. package/packages/ai/src/session-resources.ts +0 -24
  1022. package/packages/ai/src/utils/abort-signals.ts +0 -41
  1023. package/packages/ai/src/utils/deferred-tools.ts +0 -39
  1024. package/packages/ai/src/utils/hash.ts +0 -13
  1025. package/packages/ai/src/utils/node-http-proxy.ts +0 -112
  1026. package/plugins/ragents.actor-programs/server/client-runtime.ts +0 -16
  1027. package/plugins/ragents.ask/web/constants.ts +0 -1
  1028. package/plugins/ragents.lsp-roslyn/web/api.ts +0 -10
  1029. package/plugins/ragents.orchestration/web/CanvasStartup.tsx +0 -14
  1030. package/plugins/ragents.orchestration/web/canvas-view-settings.ts +0 -42
  1031. package/plugins/ragents.orchestration/web/column/AddresseeControl.tsx +0 -116
  1032. package/plugins/ragents.orchestration/web/column/column-settings.ts +0 -47
  1033. package/plugins/ragents.orchestration/web/column/column-state.ts +0 -68
  1034. package/plugins/ragents.orchestration/web/contract.ts +0 -25
  1035. package/plugins/ragents.product/model-settings-contract.ts +0 -10
  1036. package/plugins/ragents.profile-distribution/server/web.ts +0 -24
  1037. /package/{plugins/ragents.actor-programs/server → apps/server/src/plugin-support/actor-programs}/authoring-contracts.ts +0 -0
  1038. /package/{plugins/ragents.actor-programs/server → apps/server/src/plugin-support/actor-programs}/runtime-libraries.ts +0 -0
  1039. /package/{plugins/ragents.actor-programs → apps/server/src/plugin-support/actor-programs}/workflow/prompt-reader.ts +0 -0
  1040. /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/file-contracts.d.ts +0 -0
  1041. /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/flow-diagram-contracts.d.ts +0 -0
  1042. /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/flow-diagram.css +0 -0
  1043. /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/form-contracts.d.ts +0 -0
  1044. /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/frame-layout.ts +0 -0
  1045. /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/table-contracts.d.ts +0 -0
  1046. /package/{plugins/ragents.actor-programs → apps/web/src/actor-programs}/client-ui/viewer-contracts.d.ts +0 -0
  1047. /package/{plugins/ragents.orchestration/canvas.hbs → bundles/ragents.orchestration/surface.hbs} +0 -0
  1048. /package/packages/{agent-core/src → agent/src/loop}/index.ts +0 -0
  1049. /package/packages/{agent-core/src → agent/src/loop}/uuid.ts +0 -0
@@ -1,27 +1,45 @@
1
1
  import { randomUUID } from "node:crypto";
2
2
  import { lstat, mkdir, readdir, readFile, realpath, rm, writeFile } from "node:fs/promises";
3
- import { readFileSync } from "node:fs";
3
+ import { lstatSync, readFileSync, renameSync } from "node:fs";
4
4
  import path from "node:path";
5
5
  import { Type, type TSchema } from "typebox";
6
6
  import { Value } from "typebox/value";
7
- import { agentTools, assertJsonValue, canonicalHash, defineRunFunction, defineToolAvailability, emptyUsage, runCapabilityContractHash, scriptInputOf, schemaComplaints, type Actor, type ActorProgramExecutor, type RunFunction, type CommandContext, type ExecutableActor, type JsonValue, type Orchestration, type PluginContext, type RunCapabilityDescriptor, type RunView, type TurnRequest, type TurnResult, } from "@aicontainer/ragents";
8
- import { ACTOR_PROGRAMS_STATE_ID, ACTOR_INVOCATIONS_STATE_ID, ACTOR_SCRIPT_STATE_ID, ACTOR_STATE_ID, resolveActorView, type ActorDataState, type ActorFunctionDefinition, type ActorFunctionInvocation, type ActorProgramDefinition, type ActorProgramState, type ActorScriptState, type ActorViewListing, } from "../contract.js";
9
- import type { ActorProgramSource, ActorProgramsService } from "@aicontainer/server/plugin-support/actor-programs/service.js";
10
- import { jsonValue, jsonBytes, MAX_INVOCATIONS_STATE_BYTES } from "@aicontainer/server/plugin-support/actor-programs/limits.js";
11
- import { agentCapabilityBinding, operatorCapabilityBinding } from "@aicontainer/server/plugin-support/actor-programs/capability-resolver.js";
12
- import type { ActorOperationPort } from "@aicontainer/server/plugin-support/actor-programs/operations.js";
13
- import { compileClientProject, installClientSdk } from "./client-compiler.js";
14
- import { compileAppBackend, installServerSdk, prepareAppProject, prepareAppWorkspace, projectSourceFiles, readAppPackage, typecheckServerProject } from "./app-project.js";
15
- import { syncWorkspaceOwnership } from "@aicontainer/server/plugin-support/workspace-ownership.js";
16
- import { runManagedProcess, type WorkspaceProcessContext } from "@aicontainer/workspace-executor";
17
- import { runModuleTemplates, templateById } from "./templates.js";
18
- import { FRAME_BODY_CLASS, FRAME_DOCUMENT_CLASS, FRAME_ROOT_CLASS } from "../client-ui/frame-layout.js";
19
- import { buildTailwind } from "./tailwind.js";
20
- import type { AskService } from "@aicontainer/plugins/ragents.ask/server/contract.js";
7
+ import { actorByHandle, actorDescriptionMaxLength, agentTools, assertJsonValue, canonicalHash, defineRunFunction, defineToolAvailability, emptyUsage, handleKey, runCapabilityContractHash, scriptInputOf, schemaComplaints, type Actor, type ActorProgramExecutor, type RunFunction, type CommandContext, type ExecutableActor, type JsonValue, type Orchestration, type PluginContext, type RunCapabilityDescriptor, type RunView, type TurnRequest, type TurnResult, } from "@ragents/engine";
8
+ import { ACTOR_PROGRAMS_STATE_ID, ACTOR_INVOCATIONS_STATE_ID, ACTOR_SCRIPT_STATE_ID, ACTOR_STATE_ID, resolveActorView, type ActorDataState, type ActorFunctionDefinition, type ActorFunctionInvocation, type ActorProgramDefinition, type ActorProgramState, type ActorScriptState, type ActorViewListing, } from "@ragents/host/plugin-support/actor-programs/contract.js";
9
+ import type { ActorProgramSource, ActorProgramsService } from "@ragents/host/plugin-support/actor-programs/service.js";
10
+ import { jsonValue, jsonBytes, MAX_INVOCATIONS_STATE_BYTES } from "./limits.js";
11
+ import { agentCapabilityBinding, operatorCapabilityBinding } from "./capability-resolver.js";
12
+ import type { ActorOperationPort } from "./operations.js";
13
+ import { compileClientProject, installClientSdk } from "@ragents/host/plugin-support/actor-programs/client-compiler.js";
14
+ import { compileAppBackend, installServerSdk, prepareAppProject, prepareAppWorkspace, projectSourceFiles, readAppPackage, typecheckServerProject, type AppContract } from "@ragents/host/plugin-support/actor-programs/app-project.js";
15
+ import { syncWorkspaceOwnership } from "@ragents/host/plugin-support/workspace-ownership.js";
16
+ import { runManagedProcess, sandboxedLaunch, type WorkspaceProcessContext } from "@ragents/workspace-executor";
17
+ import { runModuleTemplates, templateById, templateFiles } from "./templates.js";
18
+ import { createTestReport, testReporterArgument } from "./test-report.js";
19
+ import { FRAME_BODY_CLASS, FRAME_DOCUMENT_CLASS, FRAME_ROOT_CLASS } from "@ragents/host/plugin-support/actor-programs/client-runtime.js";
20
+ import { buildTailwind } from "@ragents/host/plugin-support/actor-programs/tailwind.js";
21
+ import type { AskService } from "@ragents/plugins/ragents.ask/server/contract.js";
21
22
  const NAME = /^[a-z][a-z0-9-]{0,63}$/;
22
23
  const errorText = (error: unknown): string => error instanceof Error ? error.message : String(error);
23
- const complaints = (lines: readonly string[], fallback: string): string =>
24
- lines.map((line) => line.trim()).filter((line) => line !== "").join("\n") || fallback;
24
+ const maxShownComplaints = 10;
25
+ const maxComplaintLength = 240;
26
+ /** A failed check names the count and the first complaints; `lines` keeps all of them for actor_program_diagnostics. */
27
+ const checkFailure = (title: string, lines: readonly string[], fallback: string): Error => {
28
+ const all = [...new Set(lines.map((line) => line.trim()).filter((line) => line !== ""))];
29
+ if (all.length === 0)
30
+ return new Error(fallback);
31
+ const shown = all.slice(0, maxShownComplaints).map((line) => line.length > maxComplaintLength ? `${line.slice(0, maxComplaintLength - 3)}...` : line);
32
+ const omitted = all.length - shown.length;
33
+ return Object.assign(new Error([
34
+ `${title}: ${all.length} Fehler.`,
35
+ ...shown,
36
+ ...(omitted > 0 ? [`... und ${omitted} weitere; alle mit actor_program_diagnostics.`] : []),
37
+ ].join("\n")), { lines: all });
38
+ };
39
+ const actorDescriptionOf = (text: string | undefined): string | undefined => {
40
+ const line = (text ?? "").replace(/\s+/g, " ").trim();
41
+ return line.length <= actorDescriptionMaxLength ? line || undefined : `${line.slice(0, actorDescriptionMaxLength - 3).trimEnd()}...`;
42
+ };
25
43
  const exposed = defineToolAvailability({ availability: "conditional", availabilityDetail: "Veröffentlichte Funktion eines aktiven Actors im Run." }, () => true);
26
44
  const objectSchema = { type: "object", additionalProperties: true };
27
45
  const checked = (schema: object, value: unknown, label: string): JsonValue => {
@@ -45,6 +63,31 @@ const inside = async (directory: string, relative: string): Promise<string> => {
45
63
  throw new Error(`Ungültige oder zu große Paketdatei ${relative}.`);
46
64
  return readFile(file, "utf8");
47
65
  };
66
+ const occupied = (file: string): boolean => {
67
+ try {
68
+ lstatSync(file);
69
+ return true;
70
+ }
71
+ catch (error) {
72
+ if ((error as NodeJS.ErrnoException).code === "ENOENT")
73
+ return false;
74
+ throw error;
75
+ }
76
+ };
77
+ const packageExists = (name: string): Error => new Error(`Das Paket ${name} existiert bereits.`);
78
+ // Prüfung und rename synchron hintereinander, weil rename einen leeren Zielordner still ersetzt.
79
+ const commitPackage = (staged: string, directory: string, name: string): void => {
80
+ if (occupied(directory))
81
+ throw packageExists(name);
82
+ try {
83
+ renameSync(staged, directory);
84
+ }
85
+ catch (error) {
86
+ if (["EEXIST", "ENOTEMPTY", "ENOTDIR"].includes((error as NodeJS.ErrnoException).code ?? ""))
87
+ throw packageExists(name);
88
+ throw error;
89
+ }
90
+ };
48
91
  const descriptor = (tool: RunFunction): RunCapabilityDescriptor => ({ id: tool.name, label: tool.label, description: tool.description, schema: tool.schema, resultSchema: tool.resultSchema });
49
92
  interface BackendBinding {
50
93
  id: string;
@@ -83,7 +126,8 @@ export interface ActorProgramRuntimeOptions {
83
126
  agentToolsFor: (runId: string, actorId: string, provisional?: ExecutableActor) => Promise<readonly RunFunction[]>;
84
127
  askService: () => AskService;
85
128
  reservedToolNames: () => readonly string[];
86
- processContextFor: (runId: string) => Promise<WorkspaceProcessContext>;
129
+ /** Programme, Tests und Builds laufen auf dem Server, auch bei einem Arbeitsbereich auf einem Arbeitsplatz. */
130
+ serverProcessContextFor: (runId: string) => Promise<WorkspaceProcessContext>;
87
131
  operations: ActorOperationPort;
88
132
  directoryFor: (runId: string) => string;
89
133
  scriptSources: (entryId: string, name: string) => readonly ActorProgramSource[] | undefined;
@@ -98,6 +142,8 @@ export class ActorProgramRuntime implements ActorProgramsService, ActorProgramEx
98
142
  completed: Promise<unknown>;
99
143
  }>();
100
144
  readonly #installing = new Set<string>();
145
+ readonly #creating = new Set<string>();
146
+ readonly #staged = new Set<string>();
101
147
  readonly #removing = new Set<string>();
102
148
  readonly #knownRuns = new Set<string>();
103
149
  readonly #epochs = new Map<string, number>();
@@ -128,8 +174,8 @@ export class ActorProgramRuntime implements ActorProgramsService, ActorProgramEx
128
174
  return actor;
129
175
  }
130
176
  resolveActor(runId: string, callerId: string, reference: string): ExecutableActor {
131
- const name = reference.replace(/^@/, "").toLowerCase();
132
- const found = this.view(runId).actors.find((candidate) => reference === "self" ? candidate.id === callerId : candidate.handle === name);
177
+ const actors = this.view(runId).actors;
178
+ const found = reference === "self" ? actors.find((candidate) => candidate.id === callerId) : actorByHandle(actors, reference);
133
179
  if (!found)
134
180
  throw new Error(`Actor ${reference} ist unbekannt.`);
135
181
  return this.actor(runId, found.id);
@@ -198,32 +244,50 @@ export class ActorProgramRuntime implements ActorProgramsService, ActorProgramEx
198
244
  }
199
245
  async workspaceDirectory(runId: string): Promise<string> { this.#knownRuns.add(runId); return prepareAppWorkspace(path.join(this.#options.directoryFor(runId), "actor-workspace")); }
200
246
  templates() { return runModuleTemplates.map(({ id, title, description }) => ({ id, title, description })); }
201
- async scaffold(runId: string, name: string, templateId: string) {
247
+ async #create<T>(runId: string, name: string, build: (directory: string) => Promise<T>): Promise<{ directory: string; built: T }> {
202
248
  this.#assertName(name);
203
- const directory = path.join(await this.workspaceDirectory(runId), name);
204
- if (await lstat(directory).then(() => true, () => false))
205
- throw new Error(`Das Paket ${name} existiert bereits.`);
206
- await mkdir(directory, { recursive: true });
207
- for (const [relative, content] of Object.entries(templateById(templateId).files)) {
208
- const file = path.join(directory, safePath(relative));
209
- await mkdir(path.dirname(file), { recursive: true });
210
- const source = relative === "package.json" ? JSON.stringify({ ...JSON.parse(content), name }, null, 2) + "\n" : content;
211
- await writeFile(file, source, { flag: "wx" });
249
+ const actors = await this.workspaceDirectory(runId);
250
+ const directory = path.join(actors, name);
251
+ const key = `${runId}\0${name}`;
252
+ if (this.#creating.has(key))
253
+ throw new Error(`Das Paket ${name} wird gerade angelegt.`);
254
+ if (occupied(directory))
255
+ throw packageExists(name);
256
+ this.#creating.add(key);
257
+ const staging = path.join(path.dirname(actors), ".staging");
258
+ const staged = path.join(staging, `${name}-${randomUUID()}`);
259
+ this.#staged.add(staged);
260
+ try {
261
+ await mkdir(staging, { recursive: true });
262
+ for (const entry of await readdir(staging))
263
+ if (!this.#staged.has(path.join(staging, entry)))
264
+ await rm(path.join(staging, entry), { recursive: true, force: true });
265
+ await mkdir(staged);
266
+ const built = await build(staged);
267
+ commitPackage(staged, directory, name);
268
+ return { directory, built };
269
+ }
270
+ finally {
271
+ this.#creating.delete(key);
272
+ this.#staged.delete(staged);
273
+ await rm(staged, { recursive: true, force: true });
212
274
  }
213
- await prepareAppProject(directory);
214
- const pkg = await readAppPackage(directory);
215
- const backend = pkg.backend ? await compileAppBackend({ directory, backend: pkg.backend, runId, executor: this.runtime().nativeTypeScriptExecutor }) : undefined;
216
- await installClientSdk(directory, { stateSchema: backend?.contract.state ?? objectSchema, actions: Object.entries(backend?.contract.functions ?? {}).map(([id, fn]) => ({ id, inputSchema: fn.input, resultSchema: fn.output })) });
217
- return { name, directory: `@actors/${name}`, files: (await projectSourceFiles(directory)).map((file) => file.path) };
275
+ }
276
+ async scaffold(runId: string, name: string, templateId: string) {
277
+ const sources = Object.entries(templateFiles(templateById(templateId), name)).map(([file, content]) => ({ path: file, content }));
278
+ const { built: files } = await this.#create(runId, name, async (directory) => {
279
+ await this.#writeSources(directory, sources);
280
+ await prepareAppProject(directory);
281
+ const pkg = await readAppPackage(directory);
282
+ const backend = pkg.backend ? await compileAppBackend({ directory, backend: pkg.backend, runId, executor: this.runtime().nativeTypeScriptExecutor }) : undefined;
283
+ await installClientSdk(directory, { stateSchema: backend?.contract.state ?? objectSchema, actions: Object.entries(backend?.contract.functions ?? {}).map(([id, fn]) => ({ id, inputSchema: fn.input, resultSchema: fn.output })) });
284
+ return (await projectSourceFiles(directory)).map((file) => file.path);
285
+ });
286
+ return { name, directory: `@actors/${name}`, files };
218
287
  }
219
288
  async importPackage(context: CommandContext, runId: string, name: string, files: readonly ActorProgramSource[], signal?: AbortSignal, scriptEntryId?: string) {
220
- this.#assertName(name);
221
- const directory = path.join(await this.workspaceDirectory(runId), name);
222
- if (await lstat(directory).then(() => true, () => false))
223
- throw new Error(`Das Paket ${name} existiert bereits.`);
224
- await mkdir(directory, { recursive: true });
289
+ const { directory } = await this.#create(runId, name, (staged) => this.#writeSources(staged, files));
225
290
  try {
226
- await this.#writeSources(directory, files);
227
291
  if (scriptEntryId)
228
292
  this.runtime().replacePluginState(this.operatorContext(runId), runId, { pluginId: ACTOR_SCRIPT_STATE_ID, scope: { kind: "run" }, state: { version: 1, entryId: scriptEntryId } });
229
293
  await this.activate(context, runId, name, signal);
@@ -251,7 +315,7 @@ export class ActorProgramRuntime implements ActorProgramsService, ActorProgramEx
251
315
  throw new Error("Aufrufender Actor fehlt.");
252
316
  const provisional: ExecutableActor = owner ?? {
253
317
  id: "pending", handle: name, displayName: pkg.title, kind: "script", grants: caller.grants.filter((grant) => grant.delegable),
254
- createdAt: new Date().toISOString(), createdBy: callerId, execution: { driver: { kind: "script", config: {} }, workspacePath: null, turnTimeoutMs: null }, lifecycle: { kind: "idle", since: new Date().toISOString() }, usage: emptyUsage(), toolNames: null, openedToolNames: [],
318
+ createdAt: new Date().toISOString(), createdBy: callerId, description: actorDescriptionOf(pkg.description) ?? null, execution: { driver: { kind: "script", config: {} }, workspacePath: null, turnTimeoutMs: null }, lifecycle: { kind: "idle", since: new Date().toISOString() }, usage: emptyUsage(), toolNames: null, openedToolNames: [],
255
319
  };
256
320
  const available = (await this.#options.agentToolsFor(runId, provisional.id, owner ? undefined : provisional)).map(descriptor);
257
321
  for (const operation of this.#options.operations.list())
@@ -259,7 +323,7 @@ export class ActorProgramRuntime implements ActorProgramsService, ActorProgramEx
259
323
  available.push(operation);
260
324
  await installServerSdk(directory, available);
261
325
  const backend = pkg.backend ? await compileAppBackend({ directory, backend: pkg.backend, runId, executor: this.runtime().nativeTypeScriptExecutor, signal }) : undefined;
262
- const contract: import("./app-project.js").AppContract = backend?.contract ?? { state: objectSchema, functions: {} };
326
+ const contract: AppContract = backend?.contract ?? { state: objectSchema, functions: {} };
263
327
  if (contract.input && owner?.kind === "agent")
264
328
  throw new Error("Ein LLM-Actor verarbeitet Eingaben mit seinem Agententreiber; onInput ist nur für TypeScript-Actors erlaubt.");
265
329
  if (contract.state.type !== "object")
@@ -294,14 +358,16 @@ export class ActorProgramRuntime implements ActorProgramsService, ActorProgramEx
294
358
  const hasServerFiles = pkg.backend || (await projectSourceFiles(directory)).some((file) => /^tests\/.*\.tsx?$/.test(file.path));
295
359
  const serverErrors = hasServerFiles ? typecheckServerProject(directory, pkg.backend) : [];
296
360
  if (serverErrors.length)
297
- throw new Error(complaints(serverErrors, `Die Typprüfung von ${name} schlug ohne Meldung fehl.`));
361
+ throw checkFailure(`Typprüfung von ${name}`, serverErrors, `Die Typprüfung von ${name} schlug ohne Meldung fehl.`);
298
362
  const clients: CompiledProgram["clients"] = [];
299
363
  const views: ActorProgramDefinition["views"] = [];
300
364
  for (const view of pkg.views ?? []) {
301
365
  const client = await compileClientProject({ directory, entryPoint: view.client, stateSchema: contract.state, actions: functions.map((fn) => ({ id: fn.id, inputSchema: fn.inputSchema, resultSchema: fn.resultSchema })) });
302
366
  if (!client.valid)
303
- throw new Error(complaints(client.diagnostics.map((item) => `${item.fileName} ${item.message}`),
304
- `Der Client-Build von ${view.client} schlug ohne Meldung fehl.`));
367
+ throw checkFailure(`Client-Build von ${view.client}`,
368
+ client.diagnostics.filter((item) => item.category === "error").map((item) =>
369
+ `${item.fileName ?? view.client}${item.start ? `:${item.start.line}:${item.start.column}` : ""} ${item.message.replace(/\s*\n\s*/g, " ")}`),
370
+ `Der Client-Build von ${view.client} schlug ohne Meldung fehl.`);
305
371
  const styles = view.styles ? await inside(directory, view.styles) : "";
306
372
  if (/@import\b|url\s*\(\s*["']?\s*(?:https?:|\/\/)/i.test(styles))
307
373
  throw new Error("Ansichts-CSS darf keine externen Ressourcen laden.");
@@ -337,13 +403,15 @@ export class ActorProgramRuntime implements ActorProgramsService, ActorProgramEx
337
403
  const definition = compiled.definition;
338
404
  const tests = compiled.files.filter((file) => /^tests\/.*\.test\.tsx?$/.test(file.path));
339
405
  if (tests.length) {
340
- const processContext = await this.#options.processContextFor(runId);
341
- let output = "";
342
- const result = await runManagedProcess({ command: process.execPath, args: ["--import", "tsx", "--test", ...tests.map((file) => file.path)], cwd: compiled.directory,
406
+ const processContext = await this.#options.serverProcessContextFor(runId);
407
+ const report = await createTestReport(compiled.directory);
408
+ let stderr = "";
409
+ const launch = await sandboxedLaunch(processContext, { command: process.execPath, args: ["--import", "tsx", "--test", testReporterArgument, ...tests.map((file) => file.path)] });
410
+ const result = await runManagedProcess({ command: launch.command, args: [...launch.args], cwd: compiled.directory,
343
411
  env: processContext.env, uid: processContext.uid, gid: processContext.gid, label: `Tests ${name}`, signal, timeoutMs: 60000,
344
- onStdout: (chunk) => { output = (output + chunk.toString()).slice(-12000); }, onStderr: (chunk) => { output = (output + chunk.toString()).slice(-12000); } });
412
+ onStdout: (chunk) => report.stdout(chunk.toString()), onStderr: (chunk) => { stderr = (stderr + chunk.toString()).slice(-12000); } });
345
413
  if (result.code !== 0 || result.timedOut)
346
- throw new Error(`Tests für ${name} fehlgeschlagen:\n${output}`);
414
+ throw new Error(report.report(name, { code: result.code, timedOut: result.timedOut, stderr }));
347
415
  }
348
416
  if (canonicalHash(compiled.files) !== canonicalHash(await projectSourceFiles(compiled.directory)))
349
417
  throw new Error("Paketdateien wurden während der Prüfung geändert; erneut aktivieren.");
@@ -376,7 +444,7 @@ export class ActorProgramRuntime implements ActorProgramsService, ActorProgramEx
376
444
  await writeFile(path.join(definition.directory, client.file), client.javaScript);
377
445
  await writeFile(path.join(definition.directory, definition.stylesFile), compiled.frameStyles);
378
446
  await writeFile(path.join(definition.directory, "sources.json"), JSON.stringify(compiled.files));
379
- await syncWorkspaceOwnership(definition.directory, await this.#options.processContextFor(runId));
447
+ await syncWorkspaceOwnership(definition.directory, await this.#options.serverProcessContextFor(runId));
380
448
  signal?.throwIfAborted();
381
449
  if (epoch !== this.invocationPermit(runId))
382
450
  throw new Error("Der Run wurde während der Aktivierung gestoppt.");
@@ -399,8 +467,17 @@ export class ActorProgramRuntime implements ActorProgramsService, ActorProgramEx
399
467
  }
400
468
  jsonValue({ version: 1, program: definition }, "Actor-Programm");
401
469
  if (compiled.createActor) {
402
- const caller = this.view(runId).actors.find((actor) => actor.id === context.actorId)!;
403
- this.runtime().createScriptActor(context, runId, { handle: name, displayName: definition.title, grants: caller.grants.filter((grant) => grant.delegable), toolNames: null });
470
+ const actors = this.view(runId).actors;
471
+ const caller = actors.find((actor) => actor.id === context.actorId)!;
472
+ const holder = actors.find((actor) => actor.handle === name);
473
+ if (holder?.kind === "script" && holder.lifecycle.kind === "stopped") {
474
+ checked(definition.stateSchema, this.data(runId, holder.id).values, "Actor-Zustand");
475
+ this.runtime().restartActor(context, runId, holder.id, "Actor-Paket erneut aktiviert");
476
+ }
477
+ else if (holder)
478
+ throw new Error(`Handle @${name} gehört bereits dem ${holder.kind !== "human" && holder.lifecycle.kind === "stopped" ? "gestoppten" : "aktiven"} Actor ${holder.displayName}; nur ein gestoppter TypeScript-Actor wird beim Aktivieren neu gestartet. Wähle einen anderen Paketnamen.`);
479
+ else
480
+ this.runtime().createScriptActor(context, runId, { handle: name, displayName: definition.title, description: actorDescriptionOf(definition.description), grants: caller.grants.filter((grant) => grant.delegable), toolNames: null });
404
481
  const actor = this.resolveActor(runId, context.actorId, `@${name}`);
405
482
  definition.actorId = actor.id;
406
483
  definition.actorHandle = actor.handle;
@@ -597,7 +674,7 @@ export class ActorProgramRuntime implements ActorProgramsService, ActorProgramEx
597
674
  return this.#start(runId, program, viewId, revision, functionId, requestId, input, permit);
598
675
  }
599
676
  startFunctionInvocation(runId: string, actorHandle: string, revision: string, functionId: string, requestId: string, input: unknown, permit = this.invocationPermit(runId)) {
600
- const program = this.programs(runId).find((entry) => entry.actorHandle === actorHandle.replace(/^@/, ""));
677
+ const program = this.programs(runId).find((entry) => entry.actorHandle === handleKey(actorHandle));
601
678
  if (!program)
602
679
  throw new Error("Der Actor veröffentlicht kein Programm.");
603
680
  return this.#start(runId, program, program.name, revision, functionId, requestId, input, permit);
@@ -1,33 +1,24 @@
1
+ import type { AppPackage } from "@ragents/host/plugin-support/actor-programs/app-project.js";
1
2
  import { controlsTemplate } from "./controls-template";
2
3
 
3
4
  export interface ActorProgramTemplate {
4
5
  id: string;
5
6
  title: string;
6
7
  description: string;
7
- files: Readonly<Record<string, string>>;
8
+ ragents: AppPackage;
9
+ files: Readonly<Record<string, string>> & { readonly "package.json"?: never };
8
10
  }
9
11
 
10
12
  const blank: ActorProgramTemplate = {
11
13
  id: "blank",
12
14
  title: "Leere Mini-App",
13
15
  description: "Eine reine React-View am vorhandenen Actor ohne zusätzliche Serverfunktion.",
16
+ ragents: {
17
+ title: "Meine View",
18
+ description: "Eine kleine Bedienoberfläche des vorhandenen Actors.",
19
+ views: [{ id: "main", client: "src/client.tsx" }],
20
+ },
14
21
  files: {
15
- "package.json": `{
16
- "name": "actor-view",
17
- "private": true,
18
- "type": "module",
19
- "ragents": {
20
- "title": "Meine View",
21
- "description": "Eine kleine Bedienoberfläche des vorhandenen Actors.",
22
- "views": [
23
- {
24
- "id": "main",
25
- "client": "src/client.tsx"
26
- }
27
- ]
28
- }
29
- }
30
- `,
31
22
  "src/client.tsx": `import { createRoot } from "react-dom/client";
32
23
  import * as UI from "@ragents/client/ui";
33
24
 
@@ -48,25 +39,12 @@ const chat: ActorProgramTemplate = {
48
39
  id: "chat",
49
40
  title: "Actor-Chat",
50
41
  description: "Wiederverwendbarer Chat mit Verlauf und optionaler Eingabe an den Actor dieser View.",
42
+ ragents: {
43
+ title: "Actor-Chat",
44
+ description: "Zeigt das Gespräch mit einem Actor und sendet ihm Benutzereingaben.",
45
+ views: [{ id: "main", client: "src/client.tsx" }],
46
+ },
51
47
  files: {
52
- "package.json": `{
53
- "name": "actor-chat",
54
- "private": true,
55
- "type": "module",
56
- "ragents": {
57
- "title": "Actor-Chat",
58
- "description": "Zeigt das Gespräch mit einem Actor und sendet ihm Benutzereingaben.",
59
- "views": [
60
- {
61
- "id": "main",
62
- "client": "src/client.tsx",
63
- "width": 480,
64
- "height": 420
65
- }
66
- ]
67
- }
68
- }
69
- `,
70
48
  "src/client.tsx": `import { createRoot } from "react-dom/client";
71
49
  import * as UI from "@ragents/client/ui";
72
50
  import { context } from "@ragents/client";
@@ -86,24 +64,13 @@ const textAnalysis: ActorProgramTemplate = {
86
64
  id: "text-analysis",
87
65
  title: "Textanalyse",
88
66
  description: "Ein TypeScript-Actor analysiert Texte mit eigener Funktion, Zustand und React-View.",
67
+ ragents: {
68
+ title: "Textanalyse",
69
+ description: "Zählt Zeichen, Wörter und Zeilen und merkt sich die Zahl der Analysen.",
70
+ backend: "src/server.ts",
71
+ views: [{ id: "main", client: "src/client.tsx" }],
72
+ },
89
73
  files: {
90
- "package.json": `{
91
- "name": "text-analysis",
92
- "private": true,
93
- "type": "module",
94
- "ragents": {
95
- "title": "Textanalyse",
96
- "description": "Zählt Zeichen, Wörter und Zeilen und merkt sich die Zahl der Analysen.",
97
- "backend": "src/server.ts",
98
- "views": [
99
- {
100
- "id": "main",
101
- "client": "src/client.tsx"
102
- }
103
- ]
104
- }
105
- }
106
- `,
107
74
  "src/client.tsx": `import React from "react";
108
75
  import { createRoot } from "react-dom/client";
109
76
  import { context, useAppState } from "@ragents/client";
@@ -200,18 +167,12 @@ const headlessCounter: ActorProgramTemplate = {
200
167
  id: "headless-counter",
201
168
  title: "Zähler ohne Oberfläche",
202
169
  description: "Ein TypeScript-Actor zählt Eingaben in seinem Zustand und bietet dieselbe Arbeit als Funktion an.",
170
+ ragents: {
171
+ title: "Zähler",
172
+ description: "Sammelt eingehende Texte ohne Modellaufrufe oder Oberfläche.",
173
+ backend: "src/server.ts",
174
+ },
203
175
  files: {
204
- "package.json": `{
205
- "name": "headless-counter",
206
- "private": true,
207
- "type": "module",
208
- "ragents": {
209
- "title": "Zähler",
210
- "description": "Sammelt eingehende Texte ohne Modellaufrufe oder Oberfläche.",
211
- "backend": "src/server.ts"
212
- }
213
- }
214
- `,
215
176
  "src/contract.ts": `import { Type } from "typebox";
216
177
 
217
178
  const state = Type.Object({
@@ -285,24 +246,13 @@ const sharedList: ActorProgramTemplate = {
285
246
  id: "shared-list",
286
247
  title: "Gemeinsame Liste eines Actors",
287
248
  description: "Ein Actor besitzt eine Funktion und eine React-View für denselben Listenstand.",
249
+ ragents: {
250
+ title: "Gemeinsame Liste",
251
+ description: "Sammelt Texte aus der App und aus einem Agenten-Werkzeug in einer gemeinsamen Liste.",
252
+ backend: "src/server.ts",
253
+ views: [{ id: "main", client: "src/client.tsx" }],
254
+ },
288
255
  files: {
289
- "package.json": `{
290
- "name": "shared-list",
291
- "private": true,
292
- "type": "module",
293
- "ragents": {
294
- "title": "Gemeinsame Liste",
295
- "description": "Sammelt Texte aus der App und aus einem Agenten-Werkzeug in einer gemeinsamen Liste.",
296
- "backend": "src/server.ts",
297
- "views": [
298
- {
299
- "id": "main",
300
- "client": "src/client.tsx"
301
- }
302
- ]
303
- }
304
- }
305
- `,
306
256
  "src/client.tsx": `import React from "react";
307
257
  import { createRoot } from "react-dom/client";
308
258
  import { context, useAppState } from "@ragents/client";
@@ -393,6 +343,11 @@ test("ergänzt Einträge ohne vorhandene Einträge zu verlieren", async () => {
393
343
 
394
344
  export const runModuleTemplates = [blank, chat, controlsTemplate, textAnalysis, headlessCounter, sharedList] as const;
395
345
 
346
+ export const templateFiles = (template: ActorProgramTemplate, name: string): Readonly<Record<string, string>> => ({
347
+ "package.json": `${JSON.stringify({ name, private: true, type: "module", ragents: template.ragents }, null, 2)}\n`,
348
+ ...template.files,
349
+ });
350
+
396
351
  export const templateById = (id: string): ActorProgramTemplate => {
397
352
  const template = runModuleTemplates.find((candidate) => candidate.id === id);
398
353
  if (!template) throw new Error(`Unbekannte Actor-Programm-Vorlage ${id}. Gültig: ${runModuleTemplates.map((entry) => entry.id).join(", ")}.`);
@@ -0,0 +1,106 @@
1
+ import { realpath } from "node:fs/promises";
2
+
3
+ /** A node:test reporter that writes one JSON line per passed test, failed test and stderr line of a test file. */
4
+ const reporterSource = `
5
+ import { inspect } from "node:util";
6
+ const shown = (value) => inspect(value, { depth: 4, breakLength: Infinity, maxArrayLength: 20, maxStringLength: 200 }).slice(0, 300);
7
+ export default async function* (source) {
8
+ for await (const { type, data } of source) {
9
+ if (type === "test:pass" && data.details?.type !== "suite") yield JSON.stringify({ kind: "pass" }) + "\\n";
10
+ if (type === "test:fail" && data.details?.type !== "suite" && data.details?.error?.failureType !== "subtestsFailed") {
11
+ const error = data.details.error;
12
+ const cause = error.cause instanceof Error ? error.cause : error;
13
+ const assertion = cause.code === "ERR_ASSERTION";
14
+ yield JSON.stringify({ kind: "fail", name: data.name, file: data.file ?? null, line: data.line ?? null, column: data.column ?? null,
15
+ message: String(cause.message), generated: cause.generatedMessage === true, stack: String(cause.stack ?? ""),
16
+ ...(assertion ? { expected: shown(cause.expected), actual: shown(cause.actual) } : {}) }) + "\\n";
17
+ }
18
+ if (type === "test:stderr") yield JSON.stringify({ kind: "stderr", file: data.file ?? null, message: String(data.message) }) + "\\n";
19
+ }
20
+ }
21
+ `;
22
+
23
+ export const testReporterArgument = `--test-reporter=data:text/javascript,${encodeURIComponent(reporterSource)}`;
24
+
25
+ type TestRecord =
26
+ | { kind: "pass" }
27
+ | { kind: "fail"; name: string; file: string | null; line: number | null; column: number | null; message: string; generated: boolean; stack: string; expected?: string; actual?: string }
28
+ | { kind: "stderr"; file: string | null; message: string };
29
+
30
+ const maxDetailed = 10;
31
+ const frameLine = /^\s+at /;
32
+
33
+ /** The lines of an error output that name the error, without stack frames, code excerpts and the Node version. */
34
+ const errorLines = (lines: readonly string[]): string[] => {
35
+ const meaningful = lines.map((line) => line.trimEnd()).filter((line) => line.trim() !== "" && !frameLine.test(line) && !/^Node\.js v\d/.test(line) && !/^\s*\^+$/.test(line));
36
+ const named = meaningful.filter((line) => /^[A-Za-z]*Error\b/.test(line));
37
+ return (named.length > 0 ? named : meaningful.slice(-5)).slice(0, 5);
38
+ };
39
+
40
+ /** Collects the reporter lines of a test run and turns them into a short failure report: counts, and per failed test its name, message, expected and actual values and its place in the program. */
41
+ export const createTestReport = async (directory: string) => {
42
+ const roots = [...new Set([directory, await realpath(directory)])].sort((left, right) => right.length - left.length);
43
+ const relative = (text: string): string => roots.reduce((result, root) => result.replaceAll(`file://${root}/`, "").replaceAll(`${root}/`, ""), text);
44
+ const failures: Extract<TestRecord, { kind: "fail" }>[] = [];
45
+ const stderrByFile = new Map<string, string[]>();
46
+ const unparsed: string[] = [];
47
+ let passed = 0;
48
+ let failed = 0;
49
+ let pending = "";
50
+
51
+ const record = (line: string): void => {
52
+ if (line.trim() === "") return;
53
+ let parsed: TestRecord;
54
+ try {
55
+ parsed = JSON.parse(line) as TestRecord;
56
+ } catch {
57
+ unparsed.push(line);
58
+ return;
59
+ }
60
+ if (parsed.kind === "pass") passed += 1;
61
+ if (parsed.kind === "fail") {
62
+ failed += 1;
63
+ if (failures.length < maxDetailed) failures.push(parsed);
64
+ }
65
+ if (parsed.kind === "stderr") {
66
+ const lines = stderrByFile.get(parsed.file ?? "") ?? [];
67
+ stderrByFile.set(parsed.file ?? "", [...lines, ...parsed.message.split("\n")].slice(-50));
68
+ }
69
+ };
70
+
71
+ const placeOf = (failure: Extract<TestRecord, { kind: "fail" }>): string => {
72
+ const frame = failure.stack.split("\n").filter((line) => frameLine.test(line)).map(relative)
73
+ .map((line) => /\(?([^\s()]+:\d+:\d+)\)?\s*$/.exec(line)?.[1])
74
+ .find((place) => place !== undefined && !place.startsWith("/") && !place.startsWith("node:") && !place.includes("node_modules/"));
75
+ const declared = failure.file === null ? failure.name : `${relative(failure.file)}${failure.line === null ? "" : `:${failure.line}:${failure.column ?? 1}`}`;
76
+ return frame ?? declared;
77
+ };
78
+
79
+ const describe = (failure: Extract<TestRecord, { kind: "fail" }>): string => {
80
+ const fileOutput = failure.message === "test failed" && failure.file !== null ? stderrByFile.get(failure.file) ?? stderrByFile.get(relative(failure.file)) : undefined;
81
+ const message = fileOutput ? errorLines(fileOutput).join("; ") : failure.generated ? failure.message.split("\n")[0]!.replace(/:$/, "") : failure.message.trim().slice(0, 500);
82
+ const values = failure.expected === undefined || failure.expected === failure.actual ? "" : ` - erwartet ${failure.expected}, tatsächlich ${failure.actual}`;
83
+ return `- ${failure.name} (${placeOf(failure)}): ${relative(message)}${relative(values)}`;
84
+ };
85
+
86
+ return {
87
+ stdout: (chunk: string): void => {
88
+ const lines = (pending + chunk).split("\n");
89
+ pending = lines.pop() ?? "";
90
+ lines.forEach(record);
91
+ },
92
+ report: (name: string, outcome: { code: number | null; timedOut: boolean; stderr: string }): string => {
93
+ record(pending);
94
+ pending = "";
95
+ const summary = outcome.timedOut
96
+ ? `Tests für ${name} nach Zeitüberschreitung abgebrochen: ${passed} bestanden, ${failed} fehlgeschlagen.`
97
+ : `Tests für ${name} fehlgeschlagen: ${passed} bestanden, ${failed} fehlgeschlagen.`;
98
+ const details = failures.map(describe);
99
+ const more = failed > failures.length ? [`... und ${failed - failures.length} weitere`] : [];
100
+ const withoutResult = failed === 0
101
+ ? [`Der Testlauf endete${outcome.code === null ? "" : ` mit Code ${outcome.code}`} ohne fehlgeschlagenen Test:`, ...errorLines([...unparsed, ...outcome.stderr.split("\n")]).map(relative)]
102
+ : [];
103
+ return [summary, ...details, ...more, ...withoutResult].join("\n");
104
+ },
105
+ };
106
+ };
@@ -1,6 +1,6 @@
1
1
  import { Type } from "typebox";
2
- import { defineRunFunction, defineToolAvailability, holdsUsable, type RunFunction, type ToolContributor } from "@aicontainer/ragents";
3
- import { toolDescriptorFrom } from "@aicontainer/server/plugin-support/agent-tool.js";
2
+ import { defineRunFunction, defineToolAvailability, holdsUsable, type RunFunction, type ToolContributor } from "@ragents/engine";
3
+ import { toolDescriptorFrom } from "@ragents/host/plugin-support/agent-tool.js";
4
4
  import type { ActorProgramRuntime } from "./runtime.js";
5
5
  import type { createProjectDiagnostics } from "./project-diagnostics.js";
6
6
  const metadata = [
@@ -8,7 +8,7 @@ const metadata = [
8
8
  { name: "actor_program_activate", label: "Activate Actor Program", description: "Typecheck, build and test a package, then activate its functions and optional views.", longDescription: "actor self or @handle attaches to an existing actor; omitted creates a TypeScript actor for a backend, or attaches static views to self." },
9
9
  { name: "actor_program_list", label: "List Actor Programs", description: "List active actor packages, functions and views." },
10
10
  { name: "actor_program_remove", label: "Remove Actor Program", description: "Detach functions and views and stop the backend.", longDescription: "A TypeScript actor is stopped; an LLM actor retains its agent behavior." },
11
- { name: "actor_view_set_visibility", label: "Show or hide Actor View", description: "Set Canvas visibility by package-name/view-key or @handle/view-key.", longDescription: "Use names you chose; the server resolves the view ID. A unique view title also works." },
11
+ { name: "actor_view_set_visibility", label: "Show or hide Actor View", description: "Set surface visibility by package-name/view-key or @handle/view-key.", longDescription: "Use names you chose; the server resolves the view ID. A unique view title also works." },
12
12
  { name: "actor_program_diagnostics", label: "Actor Program Diagnostics", description: "Read the last project diagnostics.", longDescription: "Changed errors are automatically supplied before the next model request." },
13
13
  ] as const;
14
14
  export const actorProgramManagementToolNames = metadata.map((entry) => entry.name);
@@ -20,7 +20,7 @@ const managementTools = (runtime: ActorProgramRuntime, diagnostics: Diagnostics)
20
20
  defineRunFunction({ ...metadata[1], schema: Type.Object({ name, actor: Type.Optional(Type.String()) }, { additionalProperties: false }), resultSchema: Type.Object({ name: Type.String(), actor: Type.String(), views: Type.Number(), active: Type.Literal(true) }, { additionalProperties: false }), available: actorProgramToolsAvailable, executionMode: "sequential", run: (scope, id, input) => runtime.activate(scope.context(id), scope.caller.runId, input.name, scope.signal, input.actor) }),
21
21
  defineRunFunction({ ...metadata[2], schema: Type.Object({}, { additionalProperties: false }), resultSchema: Type.Array(Type.Object({ name: Type.String(), actor: Type.String(), functions: Type.Array(Type.String()), views: Type.Array(Type.Object({ name: Type.String(), title: Type.String(), visible: Type.Boolean() })) })), available: actorProgramToolsAvailable, executionMode: "sequential", run: (scope) => runtime.list(scope.caller.runId) }),
22
22
  defineRunFunction({ ...metadata[3], schema: Type.Object({ name }, { additionalProperties: false }), resultSchema: Type.Object({ removed: Type.String() }, { additionalProperties: false }), available: actorProgramToolsAvailable, executionMode: "sequential", run: (scope, id, input) => runtime.remove(scope.context(id), scope.caller.runId, input.name) }),
23
- defineRunFunction({ ...metadata[4], schema: Type.Object({ view: Type.String({ minLength: 1, description: "package-name/view-key or @handle/view-key of an activated view, without the Canvas entity prefix app:. No generated IDs needed." }), visible: Type.Boolean() }, { additionalProperties: false }), resultSchema: Type.Object({ view: Type.String(), visible: Type.Boolean() }, { additionalProperties: false }), available: actorProgramToolsAvailable, executionMode: "sequential", run: (scope, id, input) => runtime.setVisibility(scope.context(id), scope.caller.runId, input.view, input.visible) }),
23
+ defineRunFunction({ ...metadata[4], schema: Type.Object({ view: Type.String({ minLength: 1, description: "package-name/view-key or @handle/view-key of an activated view, without the surface entity prefix app:. No generated IDs needed." }), visible: Type.Boolean() }, { additionalProperties: false }), resultSchema: Type.Object({ view: Type.String(), visible: Type.Boolean() }, { additionalProperties: false }), available: actorProgramToolsAvailable, executionMode: "sequential", run: (scope, id, input) => runtime.setVisibility(scope.context(id), scope.caller.runId, input.view, input.visible) }),
24
24
  defineRunFunction({ ...metadata[5], schema: Type.Object({ name: Type.Optional(name) }, { additionalProperties: false }), resultSchema: Type.String(), available: actorProgramToolsAvailable, executionMode: "sequential", run: (scope, _id, input) => diagnostics.latest(scope.caller.runId, scope.caller.actorId, input.name) }),
25
25
  ];
26
26
  export const createActorProgramToolContributors = (runtime: ActorProgramRuntime, diagnostics: Diagnostics): readonly ToolContributor[] => [
@@ -2,7 +2,7 @@
2
2
 
3
3
  Use TypeScript snippets for one-time work. Actors can own functions, shared state and React views. Create the closest template with
4
4
  `actor_program_create`, read its existing files in `@actors/<name>/`, adapt what is needed,
5
- then `actor_program_activate`. Reuse its code and tests; Bash uses `$RAGENTS_ACTORS_DIR`.
5
+ then `actor_program_activate`. Reuse its code and tests; `bash` runs there with `cwd: "@actors/<name>"`.
6
6
  Call these functions through `context.functions` in `typescript_eval`; `typescript_api` gives
7
7
  the current contracts. Published actor functions join that same API during the current turn.
8
8
  Bind existing actors with `self` or `@handle`. A backend without a binding creates a TypeScript