@schlenkr/ragents 0.1.10 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (743) hide show
  1. package/apps/server/package.json +1 -1
  2. package/apps/server/src/access-projection.ts +4 -4
  3. package/apps/server/src/access-service.ts +3 -3
  4. package/apps/server/src/access-session.ts +19 -19
  5. package/apps/server/src/api/contracts.ts +29 -29
  6. package/apps/server/src/api/core-methods.ts +17 -17
  7. package/apps/server/src/api/delivery.ts +2 -2
  8. package/apps/server/src/api/reference.ts +27 -27
  9. package/apps/server/src/api/rights.ts +18 -18
  10. package/apps/server/src/chat-handler.ts +5 -5
  11. package/apps/server/src/config-definition.ts +37 -10
  12. package/apps/server/src/config-file.ts +49 -49
  13. package/apps/server/src/config.ts +2 -0
  14. package/apps/server/src/data-directory.ts +2 -2
  15. package/apps/server/src/external-access.ts +1 -1
  16. package/apps/server/src/folder-install.ts +1 -1
  17. package/apps/server/src/help-files.ts +1 -1
  18. package/apps/server/src/host-api.json +6 -1
  19. package/apps/server/src/host-api.ts +3 -2
  20. package/apps/server/src/host-record.ts +3 -3
  21. package/apps/server/src/host-resolution-hooks.mjs +4 -4
  22. package/apps/server/src/host-version.ts +17 -17
  23. package/apps/server/src/host-web.ts +5 -5
  24. package/apps/server/src/main.ts +6 -6
  25. package/apps/server/src/missing-environment.ts +6 -6
  26. package/apps/server/src/parent-watch.ts +4 -4
  27. package/apps/server/src/plugin-build/build.ts +31 -31
  28. package/apps/server/src/plugin-build/host-api-names.ts +7 -7
  29. package/apps/server/src/plugin-build/plugin-description.ts +15 -15
  30. package/apps/server/src/plugin-build/typecheck.ts +1 -1
  31. package/apps/server/src/plugin-support/actor-programs/app-project.ts +19 -19
  32. package/apps/server/src/plugin-support/actor-programs/client-compiler.ts +4 -4
  33. package/apps/server/src/plugin-support/actor-programs/client-contracts.ts +11 -11
  34. package/apps/server/src/plugin-support/actor-programs/contract.ts +17 -17
  35. package/apps/server/src/plugin-support/actor-programs/runtime-libraries.ts +1 -1
  36. package/apps/server/src/plugin-support/actor-programs/workflow/index.ts +5 -5
  37. package/apps/server/src/plugin-support/actor-programs/workflow/prompt-reader.ts +2 -2
  38. package/apps/server/src/plugin-support/chat-display-policy.ts +2 -2
  39. package/apps/server/src/plugin-support/front-matter.ts +6 -6
  40. package/apps/server/src/plugin-support/http.ts +2 -2
  41. package/apps/server/src/plugin-support/language-server/contract.ts +8 -8
  42. package/apps/server/src/plugin-support/language-server/plugin.ts +2 -2
  43. package/apps/server/src/plugin-support/language-server/snapshot-method.ts +1 -1
  44. package/apps/server/src/plugin-support/language-server/tools.ts +11 -11
  45. package/apps/server/src/plugin-support/model-aliases.ts +30 -20
  46. package/apps/server/src/plugin-support/model-choice.ts +15 -15
  47. package/apps/server/src/plugin-support/model-completion.ts +44 -23
  48. package/apps/server/src/plugin-support/model-providers.ts +170 -0
  49. package/apps/server/src/plugin-support/model-upstreams.ts +1 -1
  50. package/apps/server/src/plugin-support/native-typescript-child.ts +4 -4
  51. package/apps/server/src/plugin-support/native-typescript-executor.ts +12 -12
  52. package/apps/server/src/plugin-support/plugin-config.ts +3 -3
  53. package/apps/server/src/plugin-support/plugin-folder.ts +2 -2
  54. package/apps/server/src/plugin-support/plugins-root.ts +2 -2
  55. package/apps/server/src/plugin-support/process-sandbox.ts +39 -39
  56. package/apps/server/src/plugin-support/product-model-settings-contract.ts +3 -3
  57. package/apps/server/src/plugin-support/product-model-settings.ts +10 -10
  58. package/apps/server/src/plugin-support/product-relay.ts +9 -9
  59. package/apps/server/src/plugin-support/product-start-options.ts +4 -4
  60. package/apps/server/src/plugin-support/prompt.ts +1 -1
  61. package/apps/server/src/plugin-support/provision.ts +8 -8
  62. package/apps/server/src/plugin-support/run-scripts.ts +17 -17
  63. package/apps/server/src/plugin-support/skills.ts +18 -18
  64. package/apps/server/src/plugin-support/start-entries-contract.ts +17 -17
  65. package/apps/server/src/plugin-support/start-options-contract.ts +5 -5
  66. package/apps/server/src/plugin-support/system-prompts.ts +11 -11
  67. package/apps/server/src/plugin-support/thinking-level.ts +2 -2
  68. package/apps/server/src/plugin-support/tool-availability.ts +2 -2
  69. package/apps/server/src/plugin-support/workspace-ownership.ts +5 -5
  70. package/apps/server/src/plugin-support/workspace-sandbox-host.ts +37 -37
  71. package/apps/server/src/plugin-support/zip.ts +7 -7
  72. package/apps/server/src/profile/bundle-manifest.ts +17 -17
  73. package/apps/server/src/profile/compose.ts +12 -7
  74. package/apps/server/src/profile/plugin-discovery.ts +12 -12
  75. package/apps/server/src/profile/provisioning.ts +5 -5
  76. package/apps/server/src/profile-target.ts +10 -10
  77. package/apps/server/src/protocol.ts +2 -2
  78. package/apps/server/src/provider.ts +61 -56
  79. package/apps/server/src/ragents/actor-chat-history.ts +8 -8
  80. package/apps/server/src/ragents/chat-text-positions.ts +2 -2
  81. package/apps/server/src/ragents/coordinator.ts +2 -2
  82. package/apps/server/src/ragents/engine.ts +23 -23
  83. package/apps/server/src/ragents/global-chat.ts +8 -8
  84. package/apps/server/src/ragents/host-services.ts +6 -3
  85. package/apps/server/src/ragents/journal-chat-events.ts +1 -1
  86. package/apps/server/src/ragents/run-owner.ts +2 -2
  87. package/apps/server/src/ragents/session.ts +49 -49
  88. package/apps/server/src/ragents/typescript-tools.ts +12 -12
  89. package/apps/server/src/ragents/workspace-runtime.ts +28 -28
  90. package/apps/server/src/rpc/dispatcher.ts +19 -19
  91. package/apps/server/src/rpc/http-transport.ts +11 -11
  92. package/apps/server/src/rpc/stdio-transport.ts +3 -3
  93. package/apps/server/src/run-preparation-input.ts +5 -5
  94. package/apps/server/src/run-preparation.ts +24 -24
  95. package/apps/server/src/run-transfer.ts +39 -39
  96. package/apps/server/src/server.ts +48 -48
  97. package/apps/server/src/settings.ts +1 -1
  98. package/apps/server/src/startup.ts +3 -3
  99. package/apps/server/src/title-compactor.ts +9 -9
  100. package/apps/server/src/title-settings.ts +3 -3
  101. package/apps/server/src/web-bundles.ts +2 -2
  102. package/apps/server/src/web-stylesheet.ts +2 -2
  103. package/apps/web/dist/assets/{highlighted-body-KPVGNVTW-BO4wLQtE.js → highlighted-body-KPVGNVTW-BfNSGxjB.js} +1 -1
  104. package/apps/web/dist/assets/main-D6bsKcIK.js +11 -0
  105. package/apps/web/dist/assets/mermaid-HWGCJPDP-DROEqEeg.js +608 -0
  106. package/apps/web/dist/assets/runPanel-Dumuuqry.js +21 -0
  107. package/apps/web/dist/help/guide-access.html +5 -5
  108. package/apps/web/dist/help/guide-access.md +2 -2
  109. package/apps/web/dist/help/guide-clients.html +53 -54
  110. package/apps/web/dist/help/guide-clients.md +50 -51
  111. package/apps/web/dist/help/guide-distributed.html +12 -7
  112. package/apps/web/dist/help/guide-distributed.md +9 -4
  113. package/apps/web/dist/help/guide-functions.html +3 -3
  114. package/apps/web/dist/help/guide-getting-started.html +24 -15
  115. package/apps/web/dist/help/guide-getting-started.md +22 -12
  116. package/apps/web/dist/help/guide-ideas.html +3 -3
  117. package/apps/web/dist/help/guide-plugins.html +5 -4
  118. package/apps/web/dist/help/guide-plugins.md +2 -1
  119. package/apps/web/dist/help/guide-programs.html +3 -3
  120. package/apps/web/dist/help/guide-runtime.html +6 -6
  121. package/apps/web/dist/help/guide-runtime.md +3 -3
  122. package/apps/web/dist/help/guide.html +3 -3
  123. package/apps/web/dist/help/index.html +196 -144
  124. package/apps/web/dist/help/mini-app.css +6 -0
  125. package/apps/web/dist/help/mini-app.js +14 -14
  126. package/apps/web/dist/host-web.json +90 -90
  127. package/apps/web/dist/index.html +3 -3
  128. package/apps/web/dist/run-panel.html +3 -3
  129. package/apps/web/package.json +1 -1
  130. package/apps/web/src/AccessContext.tsx +15 -15
  131. package/apps/web/src/App.tsx +13 -13
  132. package/apps/web/src/DiffCode.tsx +2 -2
  133. package/apps/web/src/HelpDialog.tsx +3 -3
  134. package/apps/web/src/Overview.tsx +13 -13
  135. package/apps/web/src/PluginActivation.ts +1 -1
  136. package/apps/web/src/PluginChat.tsx +15 -15
  137. package/apps/web/src/PluginFailureNotice.tsx +1 -1
  138. package/apps/web/src/PluginRegistry.tsx +44 -44
  139. package/apps/web/src/RunPreparationChat.tsx +11 -11
  140. package/apps/web/src/RunStore.ts +1 -1
  141. package/apps/web/src/SessionList.tsx +14 -14
  142. package/apps/web/src/SettingsModal.tsx +112 -112
  143. package/apps/web/src/StartOptions.tsx +11 -11
  144. package/apps/web/src/StartSelection.tsx +11 -11
  145. package/apps/web/src/StartTiles.tsx +8 -8
  146. package/apps/web/src/SurfaceShortcuts.tsx +3 -3
  147. package/apps/web/src/ThemeSettings.tsx +8 -8
  148. package/apps/web/src/TitleModelSettings.tsx +13 -13
  149. package/apps/web/src/WorkspacePanel.tsx +9 -9
  150. package/apps/web/src/access-session.ts +4 -4
  151. package/apps/web/src/access-token.ts +5 -5
  152. package/apps/web/src/actor-conversation.ts +3 -3
  153. package/apps/web/src/actor-programs/client-ui/DataTable.tsx +8 -8
  154. package/apps/web/src/actor-programs/client-ui/FilePicker.tsx +4 -4
  155. package/apps/web/src/actor-programs/client-ui/FlowDiagram.tsx +13 -13
  156. package/apps/web/src/actor-programs/client-ui/Viewers.tsx +4 -4
  157. package/apps/web/src/actor-programs/client-ui/WorkflowDiagram.tsx +1 -1
  158. package/apps/web/src/actor-programs/client-ui/file-contracts.d.ts +4 -4
  159. package/apps/web/src/actor-programs/client-ui/file-selection.ts +1 -1
  160. package/apps/web/src/actor-programs/client-ui/viewer-contracts.d.ts +3 -3
  161. package/apps/web/src/api.ts +7 -7
  162. package/apps/web/src/chat/StoppedActorNotice.tsx +5 -5
  163. package/apps/web/src/chat/chat-target.ts +3 -3
  164. package/apps/web/src/chat/requests.ts +2 -2
  165. package/apps/web/src/chat/useAttachmentCapabilities.ts +2 -2
  166. package/apps/web/src/chat-view-settings.tsx +5 -6
  167. package/apps/web/src/diff-view.css +1 -1
  168. package/apps/web/src/highlighting.css +1 -1
  169. package/apps/web/src/language-server/language-server-plugin.tsx +30 -30
  170. package/apps/web/src/lib/labels.ts +6 -6
  171. package/apps/web/src/main.tsx +4 -4
  172. package/apps/web/src/offered-machines.ts +2 -2
  173. package/apps/web/src/page-opener.tsx +1 -1
  174. package/apps/web/src/panel/ConnectionsPage.tsx +23 -23
  175. package/apps/web/src/panel/LoginForm.tsx +6 -6
  176. package/apps/web/src/panel/PanelDialogs.tsx +22 -22
  177. package/apps/web/src/panel/PanelHeader.tsx +2 -2
  178. package/apps/web/src/panel/PanelPage.tsx +1 -1
  179. package/apps/web/src/panel/RunLine.tsx +4 -4
  180. package/apps/web/src/panel/RunsPage.tsx +15 -15
  181. package/apps/web/src/panel/StartPage.tsx +26 -26
  182. package/apps/web/src/panel/connection-state.ts +9 -9
  183. package/apps/web/src/panel/contract.ts +28 -28
  184. package/apps/web/src/panel.tsx +1 -1
  185. package/apps/web/src/plugin-bootstrap.ts +5 -5
  186. package/apps/web/src/product/ModelControl.tsx +3 -3
  187. package/apps/web/src/product/ProductModelSettings.tsx +16 -16
  188. package/apps/web/src/product/SystemPromptControl.tsx +11 -11
  189. package/apps/web/src/product/model-settings.ts +2 -2
  190. package/apps/web/src/rpc/client.ts +16 -16
  191. package/apps/web/src/rpc.ts +1 -1
  192. package/apps/web/src/run-overview.ts +1 -1
  193. package/apps/web/src/run-panel/RunPanelApp.tsx +39 -39
  194. package/apps/web/src/run-panel/RunPanelHeader.tsx +6 -6
  195. package/apps/web/src/run-panel/RunPanelMenu.tsx +6 -6
  196. package/apps/web/src/run-panel/RunPanelRail.tsx +4 -4
  197. package/apps/web/src/run-panel/RunPanelWorkspace.tsx +3 -3
  198. package/apps/web/src/run-panel/clipboard.ts +3 -3
  199. package/apps/web/src/run-panel/host-contract.ts +5 -5
  200. package/apps/web/src/run-panel/host.ts +15 -15
  201. package/apps/web/src/run-panel/input-bridge.ts +1 -1
  202. package/apps/web/src/run-panel/run-panel-location.ts +5 -5
  203. package/apps/web/src/run-panel/use-session-list.ts +1 -1
  204. package/apps/web/src/run-panel/workspace-state.ts +3 -3
  205. package/apps/web/src/run-panel.tsx +4 -4
  206. package/apps/web/src/run-preparation.ts +2 -2
  207. package/apps/web/src/run-view.ts +3 -3
  208. package/apps/web/src/settings-contributions.ts +32 -32
  209. package/apps/web/src/theme.ts +9 -9
  210. package/apps/web/src/title-model-settings.ts +6 -6
  211. package/apps/web/src/ui/ListDetail.tsx +9 -9
  212. package/apps/web/src/ui/dialog.tsx +2 -2
  213. package/apps/web/src/ui/modal-controller.ts +3 -3
  214. package/apps/web/src/ui/modal.tsx +2 -2
  215. package/apps/web/src/ui/popover.tsx +1 -1
  216. package/apps/web/src/ui/relative-time.ts +8 -8
  217. package/apps/web/src/ui/startup-notice.tsx +2 -2
  218. package/apps/web/src/ui/state-icon.tsx +1 -1
  219. package/apps/web/src/ui/state-vocabulary.ts +16 -16
  220. package/apps/web/src/ui/stop-button.tsx +2 -2
  221. package/bundles/ragents.activity/ragents-bundle.json +2 -2
  222. package/bundles/ragents.activity/web/classes.json +1 -1
  223. package/bundles/ragents.activity/web/index.js +1 -1
  224. package/bundles/ragents.activity/web/index.js.map +2 -2
  225. package/bundles/ragents.actor-programs/ragents-bundle.json +2 -2
  226. package/bundles/ragents.actor-programs/server/index.js +225 -225
  227. package/bundles/ragents.actor-programs/server/index.js.map +2 -2
  228. package/bundles/ragents.actor-programs/web/classes.json +1 -1
  229. package/bundles/ragents.actor-programs/web/index.js +1 -1
  230. package/bundles/ragents.actor-programs/web/index.js.map +3 -3
  231. package/bundles/ragents.ask/ragents-bundle.json +2 -2
  232. package/bundles/ragents.ask/server/chunks/{chunk-PDJO75SQ.js → chunk-YOV27MAR.js} +2 -2
  233. package/bundles/ragents.ask/server/chunks/chunk-YOV27MAR.js.map +7 -0
  234. package/bundles/ragents.ask/server/exports/server/contract.js +1 -1
  235. package/bundles/ragents.ask/server/index.js +23 -23
  236. package/bundles/ragents.ask/server/index.js.map +2 -2
  237. package/bundles/ragents.ask/web/chunks/{chunk-WFN4374U.js → chunk-D6NNB5DS.js} +1 -1
  238. package/bundles/ragents.ask/web/chunks/chunk-D6NNB5DS.js.map +7 -0
  239. package/bundles/ragents.ask/web/chunks/{chunk-MBRPS477.js → chunk-IQBHK7MV.js} +2 -2
  240. package/bundles/ragents.ask/web/chunks/{chunk-MBRPS477.js.map → chunk-IQBHK7MV.js.map} +3 -3
  241. package/bundles/ragents.ask/web/chunks/chunk-PWFIAMX4.js +2 -0
  242. package/bundles/ragents.ask/web/chunks/chunk-PWFIAMX4.js.map +7 -0
  243. package/bundles/ragents.ask/web/chunks/chunk-QHGKEESD.js +2 -0
  244. package/bundles/ragents.ask/web/chunks/chunk-QHGKEESD.js.map +7 -0
  245. package/bundles/ragents.ask/web/classes.json +1 -1
  246. package/bundles/ragents.ask/web/exports/ask-payload.js +1 -1
  247. package/bundles/ragents.ask/web/exports/web/QuestionCard.js +1 -1
  248. package/bundles/ragents.ask/web/exports/web/api.js +1 -1
  249. package/bundles/ragents.ask/web/index.js +1 -1
  250. package/bundles/ragents.ask/web/index.js.map +2 -2
  251. package/bundles/ragents.browser/executor/index.mjs +35 -35
  252. package/bundles/ragents.browser/executor/index.mjs.map +2 -2
  253. package/bundles/ragents.browser/ragents-bundle.json +2 -2
  254. package/bundles/ragents.browser/server/chunks/{chunk-CWLX4VA5.js → chunk-PYEISBNE.js} +1 -1
  255. package/bundles/ragents.browser/server/chunks/{chunk-CWLX4VA5.js.map → chunk-PYEISBNE.js.map} +1 -1
  256. package/bundles/ragents.browser/server/exports/server/contract.js +1 -1
  257. package/bundles/ragents.browser/server/index.js +31 -31
  258. package/bundles/ragents.browser/server/index.js.map +2 -2
  259. package/bundles/ragents.browser/skills/browser-testing/SKILL.md +30 -30
  260. package/bundles/ragents.documents/prompt.hbs +1 -1
  261. package/bundles/ragents.documents/ragents-bundle.json +2 -2
  262. package/bundles/ragents.documents/server/chunks/{chunk-QIECRZ7C.js → chunk-KMZWOVTI.js} +3 -3
  263. package/bundles/ragents.documents/server/chunks/{chunk-QIECRZ7C.js.map → chunk-KMZWOVTI.js.map} +2 -2
  264. package/bundles/ragents.documents/server/exports/contract.js +1 -1
  265. package/bundles/ragents.documents/server/index.js +26 -26
  266. package/bundles/ragents.documents/server/index.js.map +2 -2
  267. package/bundles/ragents.documents/web/classes.json +1 -1
  268. package/bundles/ragents.documents/web/index.js +1 -1
  269. package/bundles/ragents.documents/web/index.js.map +3 -3
  270. package/bundles/ragents.lsp-fsharp/executor/index.mjs +4 -4
  271. package/bundles/ragents.lsp-fsharp/executor/index.mjs.map +2 -2
  272. package/bundles/ragents.lsp-fsharp/ragents-bundle.json +2 -2
  273. package/bundles/ragents.lsp-fsharp/server/index.js +5 -5
  274. package/bundles/ragents.lsp-fsharp/server/index.js.map +2 -2
  275. package/bundles/ragents.lsp-fsharp/web/index.js +1 -1
  276. package/bundles/ragents.lsp-fsharp/web/index.js.map +2 -2
  277. package/bundles/ragents.lsp-roslyn/executor/index.mjs +3 -3
  278. package/bundles/ragents.lsp-roslyn/executor/index.mjs.map +2 -2
  279. package/bundles/ragents.lsp-roslyn/ragents-bundle.json +2 -2
  280. package/bundles/ragents.lsp-roslyn/server/index.js +17 -17
  281. package/bundles/ragents.lsp-roslyn/server/index.js.map +2 -2
  282. package/bundles/ragents.lsp-roslyn/web/index.js +1 -1
  283. package/bundles/ragents.lsp-roslyn/web/index.js.map +2 -2
  284. package/bundles/ragents.lsp-typescript/executor/index.mjs +2 -2
  285. package/bundles/ragents.lsp-typescript/executor/index.mjs.map +2 -2
  286. package/bundles/ragents.lsp-typescript/ragents-bundle.json +2 -2
  287. package/bundles/ragents.lsp-typescript/server/index.js.map +1 -1
  288. package/bundles/ragents.lsp-typescript/web/index.js +1 -1
  289. package/bundles/ragents.lsp-typescript/web/index.js.map +2 -2
  290. package/bundles/ragents.model-relay/ragents-bundle.json +7 -3
  291. package/bundles/ragents.model-relay/server/index.js +25 -21
  292. package/bundles/ragents.model-relay/server/index.js.map +2 -2
  293. package/bundles/ragents.orchestration/ragents-bundle.json +2 -2
  294. package/bundles/ragents.orchestration/server/index.js +28 -28
  295. package/bundles/ragents.orchestration/server/index.js.map +2 -2
  296. package/bundles/ragents.orchestration/web/chunks/{chunk-OSKPH6SZ.js → chunk-CFMJD5ZI.js} +2 -2
  297. package/bundles/ragents.orchestration/web/chunks/chunk-HOBLI364.js +2 -0
  298. package/bundles/ragents.orchestration/web/chunks/{chunk-OQYCNYXN.js.map → chunk-HOBLI364.js.map} +2 -2
  299. package/bundles/ragents.orchestration/web/chunks/{chunk-ODMMQGX2.js → chunk-UCIMT2R4.js} +2 -2
  300. package/bundles/ragents.orchestration/web/classes.json +1 -1
  301. package/bundles/ragents.orchestration/web/exports/web/program-slot.js +1 -1
  302. package/bundles/ragents.orchestration/web/exports/web/surface-entities.js +1 -1
  303. package/bundles/ragents.orchestration/web/index.js +8 -8
  304. package/bundles/ragents.orchestration/web/index.js.map +2 -2
  305. package/bundles/ragents.overseer/ragents-bundle.json +2 -2
  306. package/bundles/ragents.overseer/server/index.js +98 -98
  307. package/bundles/ragents.overseer/server/index.js.map +2 -2
  308. package/bundles/ragents.overseer/web/classes.json +1 -1
  309. package/bundles/ragents.overseer/web/index.js +1 -1
  310. package/bundles/ragents.overseer/web/index.js.map +2 -2
  311. package/bundles/ragents.processes/ragents-bundle.json +2 -2
  312. package/bundles/ragents.processes/server/index.js +11 -11
  313. package/bundles/ragents.processes/server/index.js.map +2 -2
  314. package/bundles/ragents.processes/web/classes.json +1 -1
  315. package/bundles/ragents.processes/web/index.js +3 -3
  316. package/bundles/ragents.processes/web/index.js.map +2 -2
  317. package/bundles/ragents.product/ragents-bundle.json +2 -2
  318. package/bundles/ragents.product/server/index.js +12 -13
  319. package/bundles/ragents.product/server/index.js.map +2 -2
  320. package/bundles/ragents.product/web/classes.json +1 -1
  321. package/bundles/ragents.product/web/index.js +1 -1
  322. package/bundles/ragents.product/web/index.js.map +2 -2
  323. package/bundles/ragents.profile-distribution/ragents-bundle.json +2 -2
  324. package/bundles/ragents.profile-distribution/server/index.js +31 -31
  325. package/bundles/ragents.profile-distribution/server/index.js.map +2 -2
  326. package/bundles/ragents.reference/ragents-bundle.json +2 -2
  327. package/bundles/ragents.reference/run-scripts/balcony-wizard/RUN.md +19 -19
  328. package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/package.json +2 -2
  329. package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/client.tsx +14 -14
  330. package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/conversation.ts +2 -2
  331. package/bundles/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/tests/conversation.test.ts +49 -49
  332. package/bundles/ragents.reference/run-scripts/balcony-wizard/package.json +1 -1
  333. package/bundles/ragents.reference/run-scripts/balcony-wizard/src/server.ts +9 -9
  334. package/bundles/ragents.reference/run-scripts/balcony-wizard/tests/program.test.ts +9 -9
  335. package/bundles/ragents.reference/run-scripts/conversation-circle/RUN.md +7 -7
  336. package/bundles/ragents.reference/run-scripts/conversation-circle/package.json +1 -1
  337. package/bundles/ragents.reference/run-scripts/conversation-circle/src/server.ts +13 -13
  338. package/bundles/ragents.reference/run-scripts/conversation-circle/tests/helpers.ts +1 -1
  339. package/bundles/ragents.reference/run-scripts/conversation-circle/tests/program.test.ts +8 -8
  340. package/bundles/ragents.reference/run-scripts/learning-afternoon/RUN.md +16 -16
  341. package/bundles/ragents.reference/run-scripts/learning-afternoon/package.json +1 -1
  342. package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/experiment.md +1 -1
  343. package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/helper.md +3 -3
  344. package/bundles/ragents.reference/run-scripts/learning-afternoon/prompts/quiz.md +1 -1
  345. package/bundles/ragents.reference/run-scripts/learning-afternoon/src/server.ts +9 -9
  346. package/bundles/ragents.reference/run-scripts/learning-afternoon/tests/program.test.ts +39 -39
  347. package/bundles/ragents.reference/run-scripts/moderated-round/RUN.md +7 -7
  348. package/bundles/ragents.reference/run-scripts/moderated-round/package.json +1 -1
  349. package/bundles/ragents.reference/run-scripts/moderated-round/src/server.ts +9 -9
  350. package/bundles/ragents.reference/run-scripts/moderated-round/tests/helpers.ts +1 -1
  351. package/bundles/ragents.reference/run-scripts/moderated-round/tests/program.test.ts +6 -6
  352. package/bundles/ragents.reference/run-scripts/shared-actor-list/RUN.md +12 -12
  353. package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/package.json +2 -2
  354. package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/contract.ts +3 -3
  355. package/bundles/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/tests/program.test.ts +4 -4
  356. package/bundles/ragents.reference/run-scripts/shared-actor-list/package.json +1 -1
  357. package/bundles/ragents.reference/run-scripts/shared-actor-list/src/server.ts +11 -11
  358. package/bundles/ragents.reference/run-scripts/shared-actor-list/tests/helpers.ts +1 -1
  359. package/bundles/ragents.reference/run-scripts/shared-actor-list/tests/program.test.ts +13 -13
  360. package/bundles/ragents.reference/run-scripts/word-game/RUN.md +18 -18
  361. package/bundles/ragents.reference/run-scripts/word-game/package.json +2 -2
  362. package/bundles/ragents.reference/run-scripts/word-game/src/client.tsx +1 -1
  363. package/bundles/ragents.reference/run-scripts/word-game/src/contract.ts +2 -2
  364. package/bundles/ragents.reference/run-scripts/word-game/src/server.ts +16 -16
  365. package/bundles/ragents.reference/run-scripts/word-game/tests/program.test.ts +39 -39
  366. package/bundles/ragents.reference/skills/100-shared-actor-list/SKILL.md +5 -5
  367. package/bundles/ragents.reference/skills/110-all-card-slots/SKILL.md +5 -5
  368. package/bundles/ragents.reference/skills/150-editorial-workbench/SKILL.md +5 -5
  369. package/bundles/ragents.reference/skills/160-learning-companion/SKILL.md +5 -5
  370. package/bundles/ragents.reference/skills/170-photo-collection/SKILL.md +5 -5
  371. package/bundles/ragents.reference/skills/180-decision-workbench/SKILL.md +5 -5
  372. package/bundles/ragents.reference/skills/190-review-queue/SKILL.md +5 -5
  373. package/bundles/ragents.reference/skills/20-circle-of-four/SKILL.md +5 -5
  374. package/bundles/ragents.reference/skills/200-typescript-diagnostics/SKILL.md +5 -5
  375. package/bundles/ragents.reference/skills/210-moderator-handover/SKILL.md +5 -5
  376. package/bundles/ragents.reference/skills/220-actor-approval-list/SKILL.md +5 -5
  377. package/bundles/ragents.reference/skills/230-shared-state-views/SKILL.md +5 -5
  378. package/bundles/ragents.reference/skills/240-live-result-list/SKILL.md +5 -5
  379. package/bundles/ragents.reference/skills/250-balcony-wizard/SKILL.md +5 -5
  380. package/bundles/ragents.reference/skills/30-llm-without-runtime-knowledge/SKILL.md +5 -5
  381. package/bundles/ragents.reference/skills/35-actor-input-fifo/SKILL.md +5 -5
  382. package/bundles/ragents.reference/skills/40-subscription-matrix/SKILL.md +5 -5
  383. package/bundles/ragents.reference/skills/50-subscription-removal/SKILL.md +5 -5
  384. package/bundles/ragents.reference/skills/60-stop-in-the-circle/SKILL.md +5 -5
  385. package/bundles/ragents.reference/skills/65-artifact-least-privilege/SKILL.md +5 -5
  386. package/bundles/ragents.reference/skills/70-headless-counter/SKILL.md +5 -5
  387. package/bundles/ragents.reference/skills/75-lsp-demo/SKILL.md +5 -5
  388. package/bundles/ragents.reference/skills/80-actor-text-analysis/SKILL.md +5 -5
  389. package/bundles/ragents.reference/skills/90-actor-notes/SKILL.md +5 -5
  390. package/bundles/ragents.reference/skills/95-hello-world/SKILL.md +5 -5
  391. package/bundles/ragents.reference/skills/decision-brief/SKILL.md +24 -24
  392. package/bundles/ragents.reference/skills/learning-sprint/SKILL.md +24 -24
  393. package/bundles/ragents.reference/web/classes.json +1 -1
  394. package/bundles/ragents.reference/web/index.js +1 -1
  395. package/bundles/ragents.reference/web/index.js.map +2 -2
  396. package/bundles/ragents.todo/ragents-bundle.json +2 -2
  397. package/bundles/ragents.todo/server/index.js +5 -5
  398. package/bundles/ragents.todo/server/index.js.map +2 -2
  399. package/bundles/ragents.todo/web/classes.json +1 -1
  400. package/bundles/ragents.todo/web/index.js +1 -1
  401. package/bundles/ragents.todo/web/index.js.map +2 -2
  402. package/bundles/ragents.transcript/ragents-bundle.json +2 -2
  403. package/bundles/ragents.transcript/server/index.js +11 -11
  404. package/bundles/ragents.transcript/server/index.js.map +2 -2
  405. package/bundles/ragents.watch/ragents-bundle.json +2 -2
  406. package/bundles/ragents.watch/server/index.js +48 -48
  407. package/bundles/ragents.watch/server/index.js.map +2 -2
  408. package/bundles/ragents.workspace/ragents-bundle.json +2 -2
  409. package/bundles/ragents.workspace/server/index.js +81 -81
  410. package/bundles/ragents.workspace/server/index.js.map +2 -2
  411. package/bundles/ragents.workspace/web/classes.json +1 -1
  412. package/bundles/ragents.workspace/web/index.js +1 -1
  413. package/bundles/ragents.workspace/web/index.js.map +2 -2
  414. package/package.json +4 -4
  415. package/packages/agent/dist/core/model-runtime.d.ts +7 -2
  416. package/packages/agent/dist/index.d.ts +1 -1
  417. package/packages/agent/dist/loop/agent-loop.d.ts +2 -2
  418. package/packages/agent/src/core/compaction/utils.ts +1 -1
  419. package/packages/agent/src/core/model-runtime.ts +45 -5
  420. package/packages/agent/src/index.ts +1 -1
  421. package/packages/agent/src/loop/agent-loop.ts +2 -2
  422. package/packages/ai/dist/models.d.ts +1 -0
  423. package/packages/ai/dist/models.generated.d.ts +4544 -983
  424. package/packages/ai/dist/providers/openrouter.models.d.ts +4544 -983
  425. package/packages/ai/src/api/ai-sdk.ts +33 -7
  426. package/packages/ai/src/api-registry.ts +1 -1
  427. package/packages/ai/src/index.ts +2 -2
  428. package/packages/ai/src/models.generated.ts +1 -1
  429. package/packages/ai/src/models.ts +1 -1
  430. package/packages/ai/src/providers/openrouter.models.ts +3723 -550
  431. package/packages/ragents/src/access.ts +12 -12
  432. package/packages/ragents/src/agents/actor-input.ts +33 -33
  433. package/packages/ragents/src/agents/catalog.ts +1 -1
  434. package/packages/ragents/src/agents/delivery.ts +17 -17
  435. package/packages/ragents/src/agents/plugins.ts +1 -1
  436. package/packages/ragents/src/agents/scheduler.ts +7 -7
  437. package/packages/ragents/src/agents/schemas.ts +1 -1
  438. package/packages/ragents/src/agents/tool-orientation.ts +4 -4
  439. package/packages/ragents/src/agents/tools.ts +20 -20
  440. package/packages/ragents/src/agents/toolset.ts +5 -5
  441. package/packages/ragents/src/agents/workspaces.ts +1 -1
  442. package/packages/ragents/src/domain/events.ts +1 -1
  443. package/packages/ragents/src/domain/model.ts +5 -5
  444. package/packages/ragents/src/drivers/agent-runtime.ts +1 -1
  445. package/packages/ragents/src/drivers/agent-turn.ts +4 -4
  446. package/packages/ragents/src/drivers/agent.ts +2 -2
  447. package/packages/ragents/src/drivers/attachments.ts +4 -4
  448. package/packages/ragents/src/http/contracts.ts +14 -14
  449. package/packages/ragents/src/http/methods.ts +6 -6
  450. package/packages/ragents/src/plugin-host.ts +119 -119
  451. package/packages/ragents/src/plugin-types.ts +16 -16
  452. package/packages/ragents/src/rpc/contract.ts +5 -5
  453. package/packages/ragents/src/rpc/contribution.ts +2 -2
  454. package/packages/ragents/src/rpc/peer.ts +11 -11
  455. package/packages/ragents/src/rpc/protocol.ts +2 -2
  456. package/packages/ragents/src/runtime/decisions/turns.ts +1 -1
  457. package/packages/ragents/src/runtime/journal.ts +10 -10
  458. package/packages/ragents/src/runtime/orchestration.ts +8 -8
  459. package/packages/ragents/src/runtime/stop.ts +2 -2
  460. package/packages/ragents/src/script/mediators.ts +35 -35
  461. package/packages/ragents/src/typescript/async-compiler.ts +14 -14
  462. package/packages/ragents/src/typescript/compiler-worker.ts +2 -2
  463. package/packages/ragents/src/typescript/compiler.ts +7 -7
  464. package/packages/ragents/src/typescript/snippet.ts +5 -5
  465. package/packages/workspace-executor/src/bash-launch.ts +13 -13
  466. package/packages/workspace-executor/src/commands.ts +18 -18
  467. package/packages/workspace-executor/src/context.ts +15 -15
  468. package/packages/workspace-executor/src/contributions.ts +35 -35
  469. package/packages/workspace-executor/src/errors.ts +1 -1
  470. package/packages/workspace-executor/src/executor.ts +15 -15
  471. package/packages/workspace-executor/src/files.ts +30 -30
  472. package/packages/workspace-executor/src/language-server/contract.ts +2 -2
  473. package/packages/workspace-executor/src/language-server/diagnostics.ts +4 -4
  474. package/packages/workspace-executor/src/language-server/host.ts +35 -35
  475. package/packages/workspace-executor/src/language-server/json-rpc.ts +4 -4
  476. package/packages/workspace-executor/src/language-server/module.ts +11 -11
  477. package/packages/workspace-executor/src/language-server/roots.ts +3 -3
  478. package/packages/workspace-executor/src/language-server/session.ts +15 -15
  479. package/packages/workspace-executor/src/language-server/workspace-solutions.ts +2 -2
  480. package/packages/workspace-executor/src/managed-process.ts +12 -12
  481. package/packages/workspace-executor/src/module.ts +8 -8
  482. package/packages/workspace-executor/src/modules.ts +3 -3
  483. package/packages/workspace-executor/src/paths.ts +11 -11
  484. package/packages/workspace-executor/src/process-sandbox.ts +3 -3
  485. package/packages/workspace-executor/src/processes/module.ts +3 -3
  486. package/packages/workspace-executor/src/processes/process-table.ts +20 -20
  487. package/packages/workspace-executor/src/processes/scanner.ts +3 -3
  488. package/packages/workspace-executor/src/processes/snapshot.ts +2 -2
  489. package/packages/workspace-executor/src/processes/terminator.ts +13 -13
  490. package/packages/workspace-executor/src/run-folders.ts +3 -3
  491. package/packages/workspace-executor/src/safe-environment.ts +4 -4
  492. package/packages/workspace-executor/src/sandbox-tools.ts +28 -28
  493. package/packages/workspace-executor/src/session-ident.ts +2 -2
  494. package/packages/workspace-executor/src/shell-platform.ts +2 -2
  495. package/packages/workspace-executor/src/tools.ts +5 -5
  496. package/plugins/ragents.activity/web/ActivityHeader.tsx +3 -3
  497. package/plugins/ragents.activity/web/activity.ts +2 -2
  498. package/plugins/ragents.actor-programs/server/access-projections.ts +1 -1
  499. package/plugins/ragents.actor-programs/server/agent-tools.ts +2 -2
  500. package/plugins/ragents.actor-programs/server/capability-resolver.ts +3 -3
  501. package/plugins/ragents.actor-programs/server/controls-template.ts +46 -46
  502. package/plugins/ragents.actor-programs/server/controls-tool.ts +4 -4
  503. package/plugins/ragents.actor-programs/server/limits.ts +3 -3
  504. package/plugins/ragents.actor-programs/server/methods.ts +1 -1
  505. package/plugins/ragents.actor-programs/server/project-diagnostics.ts +8 -8
  506. package/plugins/ragents.actor-programs/server/routes.ts +8 -8
  507. package/plugins/ragents.actor-programs/server/runtime.ts +90 -90
  508. package/plugins/ragents.actor-programs/server/templates.ts +59 -59
  509. package/plugins/ragents.actor-programs/server/test-report.ts +5 -5
  510. package/plugins/ragents.actor-programs/server/tool-contributor.ts +1 -1
  511. package/plugins/ragents.actor-programs/web/ActorViewFrame.tsx +17 -17
  512. package/plugins/ragents.actor-programs/web/AppsPanel.tsx +26 -26
  513. package/plugins/ragents.actor-programs/web/EmbeddedApps.tsx +3 -3
  514. package/plugins/ragents.actor-programs/web/FullscreenHost.tsx +2 -2
  515. package/plugins/ragents.actor-programs/web/FunctionForm.tsx +16 -16
  516. package/plugins/ragents.actor-programs/web/ProgramSource.tsx +5 -5
  517. package/plugins/ragents.actor-programs/web/api.ts +36 -36
  518. package/plugins/ragents.actor-programs/web/bridge.ts +8 -8
  519. package/plugins/ragents.actor-programs/web/chat-state.ts +4 -4
  520. package/plugins/ragents.actor-programs/web/context.ts +1 -1
  521. package/plugins/ragents.actor-programs/web/function-input.ts +6 -6
  522. package/plugins/ragents.actor-programs/web/index.tsx +1 -1
  523. package/plugins/ragents.actor-programs/web/program-state.ts +4 -4
  524. package/plugins/ragents.ask/ask-payload.ts +1 -1
  525. package/plugins/ragents.ask/contract.ts +5 -5
  526. package/plugins/ragents.ask/server/answer-method.ts +1 -1
  527. package/plugins/ragents.ask/server/ask-service.ts +9 -9
  528. package/plugins/ragents.ask/server/ask-tool.ts +10 -10
  529. package/plugins/ragents.ask/server/contract.ts +5 -5
  530. package/plugins/ragents.ask/web/AskActionView.tsx +1 -1
  531. package/plugins/ragents.ask/web/QuestionCard.tsx +22 -22
  532. package/plugins/ragents.ask/web/index.tsx +2 -2
  533. package/plugins/ragents.browser/executor/contract.ts +6 -6
  534. package/plugins/ragents.browser/executor/index.ts +1 -1
  535. package/plugins/ragents.browser/executor/module.ts +6 -6
  536. package/plugins/ragents.browser/executor/pages.ts +32 -32
  537. package/plugins/ragents.browser/executor/playwright.ts +8 -8
  538. package/plugins/ragents.browser/provision.ts +7 -7
  539. package/plugins/ragents.browser/server/browser.ts +14 -14
  540. package/plugins/ragents.browser/server/contract.ts +1 -1
  541. package/plugins/ragents.browser/server/index.ts +1 -1
  542. package/plugins/ragents.browser/server/tools.ts +14 -14
  543. package/plugins/ragents.browser/skills/browser-testing/SKILL.md +30 -30
  544. package/plugins/ragents.documents/contract.ts +2 -2
  545. package/plugins/ragents.documents/prompt.hbs +1 -1
  546. package/plugins/ragents.documents/server/document-write-tool.ts +12 -12
  547. package/plugins/ragents.documents/server/files-route.ts +6 -6
  548. package/plugins/ragents.documents/server/show-document-tool.ts +26 -26
  549. package/plugins/ragents.documents/server/store.ts +1 -1
  550. package/plugins/ragents.documents/web/DocumentViewer.tsx +37 -37
  551. package/plugins/ragents.documents/web/index.tsx +11 -11
  552. package/plugins/ragents.lsp-fsharp/executor.ts +7 -7
  553. package/plugins/ragents.lsp-fsharp/provision.ts +7 -7
  554. package/plugins/ragents.lsp-roslyn/executor.ts +5 -5
  555. package/plugins/ragents.lsp-roslyn/provision.ts +4 -4
  556. package/plugins/ragents.lsp-roslyn/server/index.ts +5 -5
  557. package/plugins/ragents.lsp-roslyn/server/solution-on-start.ts +13 -13
  558. package/plugins/ragents.lsp-typescript/executor.ts +3 -3
  559. package/plugins/ragents.model-relay/server/config.ts +6 -2
  560. package/plugins/ragents.model-relay/server/index.ts +2 -2
  561. package/plugins/ragents.model-relay/server/relay.ts +23 -22
  562. package/plugins/ragents.orchestration/contract.ts +8 -8
  563. package/plugins/ragents.orchestration/server/index.ts +4 -4
  564. package/plugins/ragents.orchestration/server/run-stop-tool.ts +3 -3
  565. package/plugins/ragents.orchestration/server/surface-tool.ts +5 -5
  566. package/plugins/ragents.orchestration/tiled-layout.ts +11 -11
  567. package/plugins/ragents.orchestration/web/ActorChat.tsx +2 -2
  568. package/plugins/ragents.orchestration/web/ActorChatControls.tsx +4 -4
  569. package/plugins/ragents.orchestration/web/ActorChatPreview.tsx +1 -1
  570. package/plugins/ragents.orchestration/web/ActorPopout.tsx +1 -1
  571. package/plugins/ragents.orchestration/web/ActorShortcut.tsx +6 -6
  572. package/plugins/ragents.orchestration/web/ActorSurfaceControls.tsx +15 -15
  573. package/plugins/ragents.orchestration/web/Center.tsx +5 -5
  574. package/plugins/ragents.orchestration/web/DocumentsSection.tsx +2 -2
  575. package/plugins/ragents.orchestration/web/ExecutionsPanel.tsx +15 -15
  576. package/plugins/ragents.orchestration/web/FlowInspector.tsx +103 -103
  577. package/plugins/ragents.orchestration/web/JournalStatus.tsx +11 -11
  578. package/plugins/ragents.orchestration/web/MaterialBody.tsx +2 -2
  579. package/plugins/ragents.orchestration/web/StopRunButton.tsx +6 -6
  580. package/plugins/ragents.orchestration/web/TiledSurface.tsx +9 -9
  581. package/plugins/ragents.orchestration/web/actor-header-settings.ts +5 -5
  582. package/plugins/ragents.orchestration/web/constants.ts +2 -2
  583. package/plugins/ragents.orchestration/web/executions.ts +6 -6
  584. package/plugins/ragents.orchestration/web/format.ts +1 -1
  585. package/plugins/ragents.orchestration/web/index.tsx +2 -2
  586. package/plugins/ragents.orchestration/web/run-panel/AddresseeControl.tsx +7 -7
  587. package/plugins/ragents.orchestration/web/run-panel/AddresseeTree.tsx +8 -8
  588. package/plugins/ragents.orchestration/web/run-panel/RunPanel.tsx +22 -22
  589. package/plugins/ragents.orchestration/web/run-panel/RunPanelSettings.tsx +7 -7
  590. package/plugins/ragents.orchestration/web/run-panel/addressee-tree.ts +13 -13
  591. package/plugins/ragents.orchestration/web/run-panel/run-panel-actors.ts +3 -3
  592. package/plugins/ragents.orchestration/web/run-panel/run-panel-settings.ts +2 -2
  593. package/plugins/ragents.orchestration/web/run-panel/run-panel-startup.ts +3 -3
  594. package/plugins/ragents.orchestration/web/run-panel/run-panel-state.ts +7 -7
  595. package/plugins/ragents.orchestration/web/run-panel/sheet-status.ts +9 -9
  596. package/plugins/ragents.orchestration/web/surface-startup.ts +8 -8
  597. package/plugins/ragents.orchestration/web/surface-view-settings.ts +1 -1
  598. package/plugins/ragents.orchestration/web/tiled-view-settings.ts +1 -1
  599. package/plugins/ragents.overseer/contract.ts +20 -20
  600. package/plugins/ragents.overseer/server/api.ts +6 -6
  601. package/plugins/ragents.overseer/server/coordinator-prompt.ts +10 -10
  602. package/plugins/ragents.overseer/server/coordinator.ts +4 -4
  603. package/plugins/ragents.overseer/server/index.ts +24 -24
  604. package/plugins/ragents.overseer/server/orientation.ts +8 -8
  605. package/plugins/ragents.overseer/server/quick-answer.ts +9 -9
  606. package/plugins/ragents.overseer/server/run-directory.ts +5 -5
  607. package/plugins/ragents.overseer/server/settings.ts +6 -6
  608. package/plugins/ragents.overseer/server/user-location.ts +16 -16
  609. package/plugins/ragents.overseer/web/ModelSettings.tsx +9 -9
  610. package/plugins/ragents.overseer/web/index.tsx +20 -20
  611. package/plugins/ragents.overseer/web/model-settings.ts +1 -1
  612. package/plugins/ragents.overseer/web/quick-answers.ts +2 -2
  613. package/plugins/ragents.processes/contract.ts +5 -5
  614. package/plugins/ragents.processes/server/methods.ts +4 -4
  615. package/plugins/ragents.processes/server/observer.ts +8 -8
  616. package/plugins/ragents.processes/server/run-processes.ts +2 -2
  617. package/plugins/ragents.processes/web/ProcessHeader.tsx +10 -10
  618. package/plugins/ragents.processes/web/processes.ts +10 -10
  619. package/plugins/ragents.product/server/config.ts +1 -1
  620. package/plugins/ragents.product/server/index.ts +4 -4
  621. package/plugins/ragents.product/server/runtime.ts +9 -10
  622. package/plugins/ragents.product/web/index.tsx +1 -1
  623. package/plugins/ragents.profile-distribution/contract.ts +10 -10
  624. package/plugins/ragents.profile-distribution/server/archive.ts +20 -20
  625. package/plugins/ragents.profile-distribution/server/config.ts +2 -2
  626. package/plugins/ragents.profile-distribution/server/index.ts +4 -4
  627. package/plugins/ragents.reference/examples.ts +27 -27
  628. package/plugins/ragents.reference/run-scripts/balcony-wizard/RUN.md +19 -19
  629. package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/package.json +2 -2
  630. package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/client.tsx +14 -14
  631. package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/src/conversation.ts +2 -2
  632. package/plugins/ragents.reference/run-scripts/balcony-wizard/actors/balcony-app/tests/conversation.test.ts +49 -49
  633. package/plugins/ragents.reference/run-scripts/balcony-wizard/package.json +1 -1
  634. package/plugins/ragents.reference/run-scripts/balcony-wizard/src/server.ts +9 -9
  635. package/plugins/ragents.reference/run-scripts/balcony-wizard/tests/program.test.ts +9 -9
  636. package/plugins/ragents.reference/run-scripts/conversation-circle/RUN.md +7 -7
  637. package/plugins/ragents.reference/run-scripts/conversation-circle/package.json +1 -1
  638. package/plugins/ragents.reference/run-scripts/conversation-circle/src/server.ts +13 -13
  639. package/plugins/ragents.reference/run-scripts/conversation-circle/tests/helpers.ts +1 -1
  640. package/plugins/ragents.reference/run-scripts/conversation-circle/tests/program.test.ts +8 -8
  641. package/plugins/ragents.reference/run-scripts/learning-afternoon/RUN.md +16 -16
  642. package/plugins/ragents.reference/run-scripts/learning-afternoon/package.json +1 -1
  643. package/plugins/ragents.reference/run-scripts/learning-afternoon/prompts/experiment.md +1 -1
  644. package/plugins/ragents.reference/run-scripts/learning-afternoon/prompts/helper.md +3 -3
  645. package/plugins/ragents.reference/run-scripts/learning-afternoon/prompts/quiz.md +1 -1
  646. package/plugins/ragents.reference/run-scripts/learning-afternoon/src/server.ts +9 -9
  647. package/plugins/ragents.reference/run-scripts/learning-afternoon/tests/program.test.ts +39 -39
  648. package/plugins/ragents.reference/run-scripts/moderated-round/RUN.md +7 -7
  649. package/plugins/ragents.reference/run-scripts/moderated-round/package.json +1 -1
  650. package/plugins/ragents.reference/run-scripts/moderated-round/src/server.ts +9 -9
  651. package/plugins/ragents.reference/run-scripts/moderated-round/tests/helpers.ts +1 -1
  652. package/plugins/ragents.reference/run-scripts/moderated-round/tests/program.test.ts +6 -6
  653. package/plugins/ragents.reference/run-scripts/shared-actor-list/RUN.md +12 -12
  654. package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/package.json +2 -2
  655. package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/src/contract.ts +3 -3
  656. package/plugins/ragents.reference/run-scripts/shared-actor-list/actors/shared-list/tests/program.test.ts +4 -4
  657. package/plugins/ragents.reference/run-scripts/shared-actor-list/package.json +1 -1
  658. package/plugins/ragents.reference/run-scripts/shared-actor-list/src/server.ts +11 -11
  659. package/plugins/ragents.reference/run-scripts/shared-actor-list/tests/helpers.ts +1 -1
  660. package/plugins/ragents.reference/run-scripts/shared-actor-list/tests/program.test.ts +13 -13
  661. package/plugins/ragents.reference/run-scripts/word-game/RUN.md +18 -18
  662. package/plugins/ragents.reference/run-scripts/word-game/package.json +2 -2
  663. package/plugins/ragents.reference/run-scripts/word-game/src/client.tsx +1 -1
  664. package/plugins/ragents.reference/run-scripts/word-game/src/contract.ts +2 -2
  665. package/plugins/ragents.reference/run-scripts/word-game/src/server.ts +16 -16
  666. package/plugins/ragents.reference/run-scripts/word-game/tests/program.test.ts +39 -39
  667. package/plugins/ragents.reference/skills/100-shared-actor-list/SKILL.md +5 -5
  668. package/plugins/ragents.reference/skills/110-all-card-slots/SKILL.md +5 -5
  669. package/plugins/ragents.reference/skills/150-editorial-workbench/SKILL.md +5 -5
  670. package/plugins/ragents.reference/skills/160-learning-companion/SKILL.md +5 -5
  671. package/plugins/ragents.reference/skills/170-photo-collection/SKILL.md +5 -5
  672. package/plugins/ragents.reference/skills/180-decision-workbench/SKILL.md +5 -5
  673. package/plugins/ragents.reference/skills/190-review-queue/SKILL.md +5 -5
  674. package/plugins/ragents.reference/skills/20-circle-of-four/SKILL.md +5 -5
  675. package/plugins/ragents.reference/skills/200-typescript-diagnostics/SKILL.md +5 -5
  676. package/plugins/ragents.reference/skills/210-moderator-handover/SKILL.md +5 -5
  677. package/plugins/ragents.reference/skills/220-actor-approval-list/SKILL.md +5 -5
  678. package/plugins/ragents.reference/skills/230-shared-state-views/SKILL.md +5 -5
  679. package/plugins/ragents.reference/skills/240-live-result-list/SKILL.md +5 -5
  680. package/plugins/ragents.reference/skills/250-balcony-wizard/SKILL.md +5 -5
  681. package/plugins/ragents.reference/skills/30-llm-without-runtime-knowledge/SKILL.md +5 -5
  682. package/plugins/ragents.reference/skills/35-actor-input-fifo/SKILL.md +5 -5
  683. package/plugins/ragents.reference/skills/40-subscription-matrix/SKILL.md +5 -5
  684. package/plugins/ragents.reference/skills/50-subscription-removal/SKILL.md +5 -5
  685. package/plugins/ragents.reference/skills/60-stop-in-the-circle/SKILL.md +5 -5
  686. package/plugins/ragents.reference/skills/65-artifact-least-privilege/SKILL.md +5 -5
  687. package/plugins/ragents.reference/skills/70-headless-counter/SKILL.md +5 -5
  688. package/plugins/ragents.reference/skills/75-lsp-demo/SKILL.md +5 -5
  689. package/plugins/ragents.reference/skills/80-actor-text-analysis/SKILL.md +5 -5
  690. package/plugins/ragents.reference/skills/90-actor-notes/SKILL.md +5 -5
  691. package/plugins/ragents.reference/skills/95-hello-world/SKILL.md +5 -5
  692. package/plugins/ragents.reference/skills/decision-brief/SKILL.md +24 -24
  693. package/plugins/ragents.reference/skills/learning-sprint/SKILL.md +24 -24
  694. package/plugins/ragents.reference/walkthroughs.ts +128 -128
  695. package/plugins/ragents.reference/web/StartGuides.tsx +23 -23
  696. package/plugins/ragents.todo/server/todo-tool.ts +6 -6
  697. package/plugins/ragents.todo/web/TodoSection.tsx +1 -1
  698. package/plugins/ragents.transcript/server/transcript.ts +11 -11
  699. package/plugins/ragents.watch/server/condition.ts +4 -4
  700. package/plugins/ragents.watch/server/functions.ts +27 -27
  701. package/plugins/ragents.watch/server/observation.ts +2 -2
  702. package/plugins/ragents.watch/server/service.ts +14 -14
  703. package/plugins/ragents.workspace/client/transport.ts +1 -1
  704. package/plugins/ragents.workspace/client/workspace-client.ts +54 -54
  705. package/plugins/ragents.workspace/contract.ts +46 -46
  706. package/plugins/ragents.workspace/server/binding.ts +20 -20
  707. package/plugins/ragents.workspace/server/browse-route.ts +8 -8
  708. package/plugins/ragents.workspace/server/clients.ts +42 -42
  709. package/plugins/ragents.workspace/server/config.ts +7 -7
  710. package/plugins/ragents.workspace/server/index.ts +3 -3
  711. package/plugins/ragents.workspace/server/runtime.ts +26 -26
  712. package/plugins/ragents.workspace/server/shell-platform.ts +1 -1
  713. package/plugins/ragents.workspace/web/FileBrowser.tsx +10 -10
  714. package/plugins/ragents.workspace/web/WorkspaceBinding.tsx +24 -24
  715. package/plugins/ragents.workspace/web/index.tsx +1 -1
  716. package/ragents.config.core.ts +1 -1
  717. package/ragents.config.developer.ts +3 -3
  718. package/ragents.config.showcase.ts +2 -2
  719. package/scripts/agent/agent-cli.ts +96 -96
  720. package/scripts/agent/journal.ts +5 -5
  721. package/scripts/agent/turn-control.ts +4 -4
  722. package/scripts/package/build-package.ts +29 -29
  723. package/scripts/package/host-links.mjs +3 -3
  724. package/scripts/package/publish-package.ts +29 -29
  725. package/scripts/package/ragents.mjs +19 -19
  726. package/scripts/plugin/build-builtin-plugins.ts +5 -5
  727. package/scripts/plugin/plugin-cli.ts +14 -14
  728. package/scripts/provision/run-provision.ts +14 -15
  729. package/scripts/remote/connect.ts +46 -46
  730. package/scripts/remote/start.ts +18 -18
  731. package/scripts/workspace-client/run-workspace-client.ts +23 -23
  732. package/apps/web/dist/assets/main-DnnqWHkH.js +0 -11
  733. package/apps/web/dist/assets/mermaid-HWGCJPDP-BLLeth5_.js +0 -568
  734. package/apps/web/dist/assets/runPanel-DPm7s3KM.js +0 -21
  735. package/bundles/ragents.ask/server/chunks/chunk-PDJO75SQ.js.map +0 -7
  736. package/bundles/ragents.ask/web/chunks/chunk-4VXWWEG7.js +0 -2
  737. package/bundles/ragents.ask/web/chunks/chunk-4VXWWEG7.js.map +0 -7
  738. package/bundles/ragents.ask/web/chunks/chunk-VUBJDIKQ.js +0 -2
  739. package/bundles/ragents.ask/web/chunks/chunk-VUBJDIKQ.js.map +0 -7
  740. package/bundles/ragents.ask/web/chunks/chunk-WFN4374U.js.map +0 -7
  741. package/bundles/ragents.orchestration/web/chunks/chunk-OQYCNYXN.js +0 -2
  742. /package/bundles/ragents.orchestration/web/chunks/{chunk-OSKPH6SZ.js.map → chunk-CFMJD5ZI.js.map} +0 -0
  743. /package/bundles/ragents.orchestration/web/chunks/{chunk-ODMMQGX2.js.map → chunk-UCIMT2R4.js.map} +0 -0
@@ -1,2 +1,2 @@
1
- var t=(l,n)=>{let a=globalThis.__ragentsHostModules?.[l];if(a===void 0)throw new Error(`Der Host stellt ${l} nicht bereit`);if(!(n in a))throw new Error(`Der Host stellt ${n} aus ${l} nicht bereit; das Bundle ist gegen einen neueren Host gebaut`);return a[n]};var d=t("react","useState");var m=t("@ragents/web/ui","Button");var b=t("@ragents/web/ui","Card");var i=t("@ragents/web/ui","Input");var p=t("@ragents/web/ui","Textarea");var e=t("react/jsx-runtime","jsx");var r=t("react/jsx-runtime","jsxs");var h="grid gap-5.5 mx-auto max-w-[820px] p-6 text-foreground max-sm:p-4.5",v="leading-[1.6] text-muted-foreground",x="grid min-w-0 gap-2.5 [&>span]:font-semibold",S="leading-[1.5] text-muted-foreground",C="flex flex-wrap justify-end gap-2.5 pt-2";function y({onCancel:l,onComplete:n}){let[a,g]=d("Sollten Innenst\xE4dte autofrei werden?"),[f,c]=d("2"),u=Number(f),s=a.trim().length>0&&Number.isInteger(u)&&u>=1&&u<=5;return r("form",{className:h,onSubmit:o=>{o.preventDefault(),s&&n({topic:a.trim(),rounds:u})},children:[e("p",{className:v,children:"Drei Perspektiven auf eine Frage. Der Koordinator f\xFChrt durch die Runde und fasst die Ergebnisse zusammen."}),r("label",{className:x,children:[e("span",{children:"Wor\xFCber soll die Runde sprechen?"}),e(p,{autoFocus:!0,maxLength:160,onChange:o=>g(o.target.value),required:!0,rows:3,value:a})]}),e("div",{"aria-label":"Gespr\xE4chspartner",className:"grid grid-cols-3 gap-3.5 max-sm:grid-cols-1 max-sm:gap-2",children:[{name:"Mira",role:"Fragt neugierig nach"},{name:"Jon",role:"Widerspricht h\xF6flich"},{name:"Ada",role:"Sucht Gemeinsamkeiten"}].map(o=>r("div",{className:"grid gap-[7px] rounded-lg bg-secondary p-3.5",children:[e("strong",{children:o.name}),e("span",{className:"text-[0.85rem] leading-[1.4] text-muted-foreground",children:o.role})]},o.name))}),r("label",{className:x,children:[e("span",{children:"Runden"}),e(i,{className:"max-w-25",max:5,min:1,onChange:o=>c(o.target.value),required:!0,step:1,type:"number",value:f}),e("small",{className:S,children:"1 bis 5 Runden, mit einem Beitrag pro Person und Runde."})]}),r("div",{className:C,children:[e(m,{onClick:l,variant:"outline",children:"Abbrechen"}),e(m,{disabled:!s,type:"submit",children:"Gespr\xE4ch starten"})]})]})}function w({onCancel:l,onComplete:n}){let[a,g]=d("Ideen f\xFCr unser Teamfr\xFChst\xFCck"),[f,c]=d("Jeder bringt etwas aus seiner Lieblingsk\xFCche mit."),u=a.trim().length>0&&f.trim().length>0;return r("form",{className:h,onSubmit:s=>{s.preventDefault(),u&&n({title:a.trim(),firstEntry:f.trim()})},children:[e("p",{className:v,children:"Sammelt Ideen, Fragen oder Aufgaben an einem Ort. Du erg\xE4nzt die Liste in seiner View, der Listenhelfer \xFCber sein Werkzeug."}),r("div",{className:"grid grid-cols-2 gap-6 max-sm:grid-cols-1",children:[r("div",{className:"grid min-w-0 gap-5.5",children:[r("label",{className:x,children:[e("span",{children:"Was wollt ihr sammeln?"}),e(i,{autoFocus:!0,maxLength:160,onChange:s=>g(s.target.value),required:!0,value:a})]}),r("label",{className:x,children:[e("span",{children:"Erster Eintrag"}),e(p,{maxLength:2e3,onChange:s=>c(s.target.value),required:!0,rows:5,value:f})]})]}),e("aside",{"aria-label":"Vorschau des Sammelboards",children:r(b,{className:"h-full gap-0 bg-secondary p-5 [overflow-wrap:anywhere]",children:[e("small",{className:S,children:"So beginnt eure Sammlung"}),e("h3",{className:"mt-3 mb-4.5 text-[1.05rem]",children:a.trim()||"Titel der Sammlung"}),e("ol",{className:"list-decimal pl-5.5 leading-[1.6] whitespace-pre-wrap",children:e("li",{children:f.trim()||"Dein erster Eintrag"})}),e("p",{className:"mt-5.5 text-[0.85rem] leading-[1.5] text-muted-foreground",children:"Der Listenhelfer tr\xE4gt diesen Eintrag nach dem Start ein. Danach k\xF6nnt ihr beide erg\xE4nzen."})]})})]}),r("div",{className:C,children:[e(m,{onClick:l,variant:"outline",children:"Abbrechen"}),e(m,{disabled:!u,type:"submit",children:"Sammelboard starten"})]})]})}var ee={id:"ragents.reference",guides:[{id:"ragents.reference.conversation-circle",Guide:y},{id:"ragents.reference.shared-actor-list",Guide:w}]};export{ee as webPlugin};
1
+ var t=(l,f)=>{let r=globalThis.__ragentsHostModules?.[l];if(r===void 0)throw new Error(`The host does not provide ${l}`);if(!(f in r))throw new Error(`The host does not provide ${f} from ${l}; the bundle was built against a newer host`);return r[f]};var n=t("react","useState");var m=t("@ragents/web/ui","Button");var h=t("@ragents/web/ui","Card");var i=t("@ragents/web/ui","Input");var p=t("@ragents/web/ui","Textarea");var e=t("react/jsx-runtime","jsx");var a=t("react/jsx-runtime","jsxs");var b="grid gap-5.5 mx-auto max-w-[820px] p-6 text-foreground max-sm:p-4.5",v="leading-[1.6] text-muted-foreground",x="grid min-w-0 gap-2.5 [&>span]:font-semibold",y="leading-[1.5] text-muted-foreground",C="flex flex-wrap justify-end gap-2.5 pt-2";function w({onCancel:l,onComplete:f}){let[r,c]=n("Should city centers become car-free?"),[u,g]=n("2"),d=Number(u),s=r.trim().length>0&&Number.isInteger(d)&&d>=1&&d<=5;return a("form",{className:b,onSubmit:o=>{o.preventDefault(),s&&f({topic:r.trim(),rounds:d})},children:[e("p",{className:v,children:"Three perspectives on one question. The coordinator leads the round and summarizes the results."}),a("label",{className:x,children:[e("span",{children:"What should the round talk about?"}),e(p,{autoFocus:!0,maxLength:160,onChange:o=>c(o.target.value),required:!0,rows:3,value:r})]}),e("div",{"aria-label":"Conversation partners",className:"grid grid-cols-3 gap-3.5 max-sm:grid-cols-1 max-sm:gap-2",children:[{name:"Mira",role:"Asks curious questions"},{name:"Jon",role:"Politely disagrees"},{name:"Ada",role:"Looks for common ground"}].map(o=>a("div",{className:"grid gap-[7px] rounded-lg bg-secondary p-3.5",children:[e("strong",{children:o.name}),e("span",{className:"text-[0.85rem] leading-[1.4] text-muted-foreground",children:o.role})]},o.name))}),a("label",{className:x,children:[e("span",{children:"Rounds"}),e(i,{className:"max-w-25",max:5,min:1,onChange:o=>g(o.target.value),required:!0,step:1,type:"number",value:u}),e("small",{className:y,children:"1 to 5 rounds, with one contribution per person and round."})]}),a("div",{className:C,children:[e(m,{onClick:l,variant:"outline",children:"Cancel"}),e(m,{disabled:!s,type:"submit",children:"Start conversation"})]})]})}function S({onCancel:l,onComplete:f}){let[r,c]=n("Ideas for our team breakfast"),[u,g]=n("Everyone brings something from their favorite cuisine."),d=r.trim().length>0&&u.trim().length>0;return a("form",{className:b,onSubmit:s=>{s.preventDefault(),d&&f({title:r.trim(),firstEntry:u.trim()})},children:[e("p",{className:v,children:"Collects ideas, questions, or tasks in one place. You add to the list in its view, the list helper through its tool."}),a("div",{className:"grid grid-cols-2 gap-6 max-sm:grid-cols-1",children:[a("div",{className:"grid min-w-0 gap-5.5",children:[a("label",{className:x,children:[e("span",{children:"What do you want to collect?"}),e(i,{autoFocus:!0,maxLength:160,onChange:s=>c(s.target.value),required:!0,value:r})]}),a("label",{className:x,children:[e("span",{children:"First entry"}),e(p,{maxLength:2e3,onChange:s=>g(s.target.value),required:!0,rows:5,value:u})]})]}),e("aside",{"aria-label":"Collection board preview",children:a(h,{className:"h-full gap-0 bg-secondary p-5 [overflow-wrap:anywhere]",children:[e("small",{className:y,children:"This is how your collection starts"}),e("h3",{className:"mt-3 mb-4.5 text-[1.05rem]",children:r.trim()||"Collection title"}),e("ol",{className:"list-decimal pl-5.5 leading-[1.6] whitespace-pre-wrap",children:e("li",{children:u.trim()||"Your first entry"})}),e("p",{className:"mt-5.5 text-[0.85rem] leading-[1.5] text-muted-foreground",children:"The list helper adds this entry after the start. After that, both of you can add more."})]})})]}),a("div",{className:C,children:[e(m,{onClick:l,variant:"outline",children:"Cancel"}),e(m,{disabled:!d,type:"submit",children:"Start collection board"})]})]})}var ee={id:"ragents.reference",guides:[{id:"ragents.reference.conversation-circle",Guide:w},{id:"ragents.reference.shared-actor-list",Guide:S}]};export{ee as webPlugin};
2
2
  //# sourceMappingURL=/plugins/ragents.reference/web/index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["ragents-host-read:read", "ragents-host-value:react#useState", "ragents-host-value:@ragents/web/ui#Button", "ragents-host-value:@ragents/web/ui#Card", "ragents-host-value:@ragents/web/ui#Input", "ragents-host-value:@ragents/web/ui#Textarea", "ragents-host-value:react/jsx-runtime#jsx", "ragents-host-value:react/jsx-runtime#jsxs", "../../../plugins/ragents.reference/web/StartGuides.tsx", "../../../plugins/ragents.reference/web/index.tsx"],
4
- "sourcesContent": ["export const read = (specifier, name) => {\n const module = globalThis[\"__ragentsHostModules\"]?.[specifier];\n if (module === undefined) throw new Error(`Der Host stellt ${specifier} nicht bereit`);\n if (!(name in module)) throw new Error(`Der Host stellt ${name} aus ${specifier} nicht bereit; das Bundle ist gegen einen neueren Host gebaut`);\n return module[name];\n};", "import { read } from \"ragents-host-read:read\";\nexport default read(\"react\", \"useState\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/ui\", \"Button\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/ui\", \"Card\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/ui\", \"Input\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/ui\", \"Textarea\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"react/jsx-runtime\", \"jsx\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"react/jsx-runtime\", \"jsxs\");\n", "import { useState } from \"react\";\nimport type { EntryGuideContext } from \"@ragents/web/PluginRegistry\";\nimport { Button, Card, Input, Textarea } from \"@ragents/web/ui\";\n\nconst formClass = \"grid gap-5.5 mx-auto max-w-[820px] p-6 text-foreground max-sm:p-4.5\";\nconst introClass = \"leading-[1.6] text-muted-foreground\";\nconst fieldClass = \"grid min-w-0 gap-2.5 [&>span]:font-semibold\";\nconst hintClass = \"leading-[1.5] text-muted-foreground\";\nconst actionsClass = \"flex flex-wrap justify-end gap-2.5 pt-2\";\n\nexport function ConversationGuide({ onCancel, onComplete }: EntryGuideContext) {\n const [topic, setTopic] = useState(\"Sollten Innenst\u00E4dte autofrei werden?\");\n const [rounds, setRounds] = useState(\"2\");\n const count = Number(rounds);\n const valid = topic.trim().length > 0 && Number.isInteger(count) && count >= 1 && count <= 5;\n\n return (\n <form className={formClass} onSubmit={(event) => {\n event.preventDefault();\n if (valid) onComplete({ topic: topic.trim(), rounds: count });\n }}>\n <p className={introClass}>Drei Perspektiven auf eine Frage. Der Koordinator f\u00FChrt durch die Runde und fasst die Ergebnisse zusammen.</p>\n <label className={fieldClass}>\n <span>Wor\u00FCber soll die Runde sprechen?</span>\n <Textarea autoFocus maxLength={160} onChange={(event) => setTopic(event.target.value)} required rows={3} value={topic} />\n </label>\n <div aria-label=\"Gespr\u00E4chspartner\" className=\"grid grid-cols-3 gap-3.5 max-sm:grid-cols-1 max-sm:gap-2\">\n {[\n { name: \"Mira\", role: \"Fragt neugierig nach\" },\n { name: \"Jon\", role: \"Widerspricht h\u00F6flich\" },\n { name: \"Ada\", role: \"Sucht Gemeinsamkeiten\" },\n ].map((partner) => (\n <div className=\"grid gap-[7px] rounded-lg bg-secondary p-3.5\" key={partner.name}>\n <strong>{partner.name}</strong>\n <span className=\"text-[0.85rem] leading-[1.4] text-muted-foreground\">{partner.role}</span>\n </div>\n ))}\n </div>\n <label className={fieldClass}>\n <span>Runden</span>\n <Input className=\"max-w-25\" max={5} min={1} onChange={(event) => setRounds(event.target.value)} required step={1} type=\"number\" value={rounds} />\n <small className={hintClass}>1 bis 5 Runden, mit einem Beitrag pro Person und Runde.</small>\n </label>\n <div className={actionsClass}>\n <Button onClick={onCancel} variant=\"outline\">Abbrechen</Button>\n <Button disabled={!valid} type=\"submit\">Gespr\u00E4ch starten</Button>\n </div>\n </form>\n );\n}\n\nexport function SharedBoardGuide({ onCancel, onComplete }: EntryGuideContext) {\n const [title, setTitle] = useState(\"Ideen f\u00FCr unser Teamfr\u00FChst\u00FCck\");\n const [firstEntry, setFirstEntry] = useState(\"Jeder bringt etwas aus seiner Lieblingsk\u00FCche mit.\");\n const valid = title.trim().length > 0 && firstEntry.trim().length > 0;\n\n return (\n <form className={formClass} onSubmit={(event) => {\n event.preventDefault();\n if (valid) onComplete({ title: title.trim(), firstEntry: firstEntry.trim() });\n }}>\n <p className={introClass}>Sammelt Ideen, Fragen oder Aufgaben an einem Ort. Du erg\u00E4nzt die Liste in seiner View, der Listenhelfer \u00FCber sein Werkzeug.</p>\n <div className=\"grid grid-cols-2 gap-6 max-sm:grid-cols-1\">\n <div className=\"grid min-w-0 gap-5.5\">\n <label className={fieldClass}>\n <span>Was wollt ihr sammeln?</span>\n <Input autoFocus maxLength={160} onChange={(event) => setTitle(event.target.value)} required value={title} />\n </label>\n <label className={fieldClass}>\n <span>Erster Eintrag</span>\n <Textarea maxLength={2000} onChange={(event) => setFirstEntry(event.target.value)} required rows={5} value={firstEntry} />\n </label>\n </div>\n <aside aria-label=\"Vorschau des Sammelboards\">\n <Card className=\"h-full gap-0 bg-secondary p-5 [overflow-wrap:anywhere]\">\n <small className={hintClass}>So beginnt eure Sammlung</small>\n <h3 className=\"mt-3 mb-4.5 text-[1.05rem]\">{title.trim() || \"Titel der Sammlung\"}</h3>\n <ol className=\"list-decimal pl-5.5 leading-[1.6] whitespace-pre-wrap\"><li>{firstEntry.trim() || \"Dein erster Eintrag\"}</li></ol>\n <p className=\"mt-5.5 text-[0.85rem] leading-[1.5] text-muted-foreground\">Der Listenhelfer tr\u00E4gt diesen Eintrag nach dem Start ein. Danach k\u00F6nnt ihr beide erg\u00E4nzen.</p>\n </Card>\n </aside>\n </div>\n <div className={actionsClass}>\n <Button onClick={onCancel} variant=\"outline\">Abbrechen</Button>\n <Button disabled={!valid} type=\"submit\">Sammelboard starten</Button>\n </div>\n </form>\n );\n}\n", "import type { WebPlugin } from \"@ragents/web/PluginRegistry\";\nimport { ConversationGuide, SharedBoardGuide } from \"./StartGuides\";\n\nexport const webPlugin: WebPlugin = {\n id: \"ragents.reference\",\n guides: [\n { id: \"ragents.reference.conversation-circle\", Guide: ConversationGuide },\n { id: \"ragents.reference.shared-actor-list\", Guide: SharedBoardGuide },\n ],\n};\n"],
5
- "mappings": "AAAO,IAAMA,EAAO,CAACC,EAAWC,IAAS,CACvC,IAAMC,EAAS,WAAW,uBAA0BF,CAAS,EAC7D,GAAIE,IAAW,OAAW,MAAM,IAAI,MAAM,mBAAmBF,CAAS,eAAe,EACrF,GAAI,EAAEC,KAAQC,GAAS,MAAM,IAAI,MAAM,mBAAmBD,CAAI,QAAQD,CAAS,+DAA+D,EAC9I,OAAOE,EAAOD,CAAI,CACpB,ECJA,IAAOE,EAAQC,EAAK,QAAS,UAAU,ECAvC,IAAOC,EAAQC,EAAK,kBAAmB,QAAQ,ECA/C,IAAOC,EAAQC,EAAK,kBAAmB,MAAM,ECA7C,IAAOC,EAAQC,EAAK,kBAAmB,OAAO,ECA9C,IAAOC,EAAQC,EAAK,kBAAmB,UAAU,ECAjD,IAAOC,EAAQC,EAAK,oBAAqB,KAAK,ECA9C,IAAOC,EAAQC,EAAK,oBAAqB,MAAM,ECG/C,IAAMC,EAAY,sEACZC,EAAa,sCACbC,EAAa,8CACbC,EAAY,sCACZC,EAAe,0CAEd,SAASC,EAAkB,CAAE,SAAAC,EAAU,WAAAC,CAAW,EAAsB,CAC7E,GAAM,CAACC,EAAOC,CAAQ,EAAIC,EAAS,yCAAsC,EACnE,CAACC,EAAQC,CAAS,EAAIF,EAAS,GAAG,EAClCG,EAAQ,OAAOF,CAAM,EACrBG,EAAQN,EAAM,KAAK,EAAE,OAAS,GAAK,OAAO,UAAUK,CAAK,GAAKA,GAAS,GAAKA,GAAS,EAE3F,OACEE,EAAC,QAAK,UAAWf,EAAW,SAAWgB,GAAU,CAC/CA,EAAM,eAAe,EACjBF,GAAOP,EAAW,CAAE,MAAOC,EAAM,KAAK,EAAG,OAAQK,CAAM,CAAC,CAC9D,EACE,UAAAI,EAAC,KAAE,UAAWhB,EAAY,yHAA0G,EACpIc,EAAC,SAAM,UAAWb,EAChB,UAAAe,EAAC,QAAK,+CAAgC,EACtCA,EAACC,EAAA,CAAS,UAAS,GAAC,UAAW,IAAK,SAAWF,GAAUP,EAASO,EAAM,OAAO,KAAK,EAAG,SAAQ,GAAC,KAAM,EAAG,MAAOR,EAAO,GACzH,EACAS,EAAC,OAAI,aAAW,sBAAmB,UAAU,2DAC1C,UACC,CAAE,KAAM,OAAQ,KAAM,sBAAuB,EAC7C,CAAE,KAAM,MAAO,KAAM,yBAAuB,EAC5C,CAAE,KAAM,MAAO,KAAM,uBAAwB,CAC/C,EAAE,IAAKE,GACLJ,EAAC,OAAI,UAAU,+CACb,UAAAE,EAAC,UAAQ,SAAAE,EAAQ,KAAK,EACtBF,EAAC,QAAK,UAAU,qDAAsD,SAAAE,EAAQ,KAAK,IAFlBA,EAAQ,IAG3E,CACD,EACH,EACAJ,EAAC,SAAM,UAAWb,EAChB,UAAAe,EAAC,QAAK,kBAAM,EACZA,EAACG,EAAA,CAAM,UAAU,WAAW,IAAK,EAAG,IAAK,EAAG,SAAWJ,GAAUJ,EAAUI,EAAM,OAAO,KAAK,EAAG,SAAQ,GAAC,KAAM,EAAG,KAAK,SAAS,MAAOL,EAAQ,EAC/IM,EAAC,SAAM,UAAWd,EAAW,mEAAuD,GACtF,EACAY,EAAC,OAAI,UAAWX,EACd,UAAAa,EAACI,EAAA,CAAO,QAASf,EAAU,QAAQ,UAAU,qBAAS,EACtDW,EAACI,EAAA,CAAO,SAAU,CAACP,EAAO,KAAK,SAAS,+BAAgB,GAC1D,GACF,CAEJ,CAEO,SAASQ,EAAiB,CAAE,SAAAhB,EAAU,WAAAC,CAAW,EAAsB,CAC5E,GAAM,CAACgB,EAAOC,CAAQ,EAAId,EAAS,wCAA+B,EAC5D,CAACe,EAAYC,CAAa,EAAIhB,EAAS,sDAAmD,EAC1FI,EAAQS,EAAM,KAAK,EAAE,OAAS,GAAKE,EAAW,KAAK,EAAE,OAAS,EAEpE,OACEV,EAAC,QAAK,UAAWf,EAAW,SAAWgB,GAAU,CAC/CA,EAAM,eAAe,EACjBF,GAAOP,EAAW,CAAE,MAAOgB,EAAM,KAAK,EAAG,WAAYE,EAAW,KAAK,CAAE,CAAC,CAC9E,EACE,UAAAR,EAAC,KAAE,UAAWhB,EAAY,6IAA2H,EACrJc,EAAC,OAAI,UAAU,4CACb,UAAAA,EAAC,OAAI,UAAU,uBACb,UAAAA,EAAC,SAAM,UAAWb,EAChB,UAAAe,EAAC,QAAK,kCAAsB,EAC5BA,EAACG,EAAA,CAAM,UAAS,GAAC,UAAW,IAAK,SAAWJ,GAAUQ,EAASR,EAAM,OAAO,KAAK,EAAG,SAAQ,GAAC,MAAOO,EAAO,GAC7G,EACAR,EAAC,SAAM,UAAWb,EAChB,UAAAe,EAAC,QAAK,0BAAc,EACpBA,EAACC,EAAA,CAAS,UAAW,IAAM,SAAWF,GAAUU,EAAcV,EAAM,OAAO,KAAK,EAAG,SAAQ,GAAC,KAAM,EAAG,MAAOS,EAAY,GAC1H,GACF,EACAR,EAAC,SAAM,aAAW,4BAChB,SAAAF,EAACY,EAAA,CAAK,UAAU,yDACd,UAAAV,EAAC,SAAM,UAAWd,EAAW,oCAAwB,EACrDc,EAAC,MAAG,UAAU,6BAA8B,SAAAM,EAAM,KAAK,GAAK,qBAAqB,EACjFN,EAAC,MAAG,UAAU,wDAAwD,SAAAA,EAAC,MAAI,SAAAQ,EAAW,KAAK,GAAK,sBAAsB,EAAK,EAC3HR,EAAC,KAAE,UAAU,4DAA4D,+GAA0F,GACrK,EACF,GACF,EACAF,EAAC,OAAI,UAAWX,EACd,UAAAa,EAACI,EAAA,CAAO,QAASf,EAAU,QAAQ,UAAU,qBAAS,EACtDW,EAACI,EAAA,CAAO,SAAU,CAACP,EAAO,KAAK,SAAS,+BAAmB,GAC7D,GACF,CAEJ,CCrFO,IAAMc,GAAuB,CAClC,GAAI,oBACJ,OAAQ,CACN,CAAE,GAAI,wCAAyC,MAAOC,CAAkB,EACxE,CAAE,GAAI,sCAAuC,MAAOC,CAAiB,CACvE,CACF",
4
+ "sourcesContent": ["export const read = (specifier, name) => {\n const module = globalThis[\"__ragentsHostModules\"]?.[specifier];\n if (module === undefined) throw new Error(`The host does not provide ${specifier}`);\n if (!(name in module)) throw new Error(`The host does not provide ${name} from ${specifier}; the bundle was built against a newer host`);\n return module[name];\n};", "import { read } from \"ragents-host-read:read\";\nexport default read(\"react\", \"useState\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/ui\", \"Button\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/ui\", \"Card\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/ui\", \"Input\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/ui\", \"Textarea\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"react/jsx-runtime\", \"jsx\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"react/jsx-runtime\", \"jsxs\");\n", "import { useState } from \"react\";\nimport type { EntryGuideContext } from \"@ragents/web/PluginRegistry\";\nimport { Button, Card, Input, Textarea } from \"@ragents/web/ui\";\n\nconst formClass = \"grid gap-5.5 mx-auto max-w-[820px] p-6 text-foreground max-sm:p-4.5\";\nconst introClass = \"leading-[1.6] text-muted-foreground\";\nconst fieldClass = \"grid min-w-0 gap-2.5 [&>span]:font-semibold\";\nconst hintClass = \"leading-[1.5] text-muted-foreground\";\nconst actionsClass = \"flex flex-wrap justify-end gap-2.5 pt-2\";\n\nexport function ConversationGuide({ onCancel, onComplete }: EntryGuideContext) {\n const [topic, setTopic] = useState(\"Should city centers become car-free?\");\n const [rounds, setRounds] = useState(\"2\");\n const count = Number(rounds);\n const valid = topic.trim().length > 0 && Number.isInteger(count) && count >= 1 && count <= 5;\n\n return (\n <form className={formClass} onSubmit={(event) => {\n event.preventDefault();\n if (valid) onComplete({ topic: topic.trim(), rounds: count });\n }}>\n <p className={introClass}>Three perspectives on one question. The coordinator leads the round and summarizes the results.</p>\n <label className={fieldClass}>\n <span>What should the round talk about?</span>\n <Textarea autoFocus maxLength={160} onChange={(event) => setTopic(event.target.value)} required rows={3} value={topic} />\n </label>\n <div aria-label=\"Conversation partners\" className=\"grid grid-cols-3 gap-3.5 max-sm:grid-cols-1 max-sm:gap-2\">\n {[\n { name: \"Mira\", role: \"Asks curious questions\" },\n { name: \"Jon\", role: \"Politely disagrees\" },\n { name: \"Ada\", role: \"Looks for common ground\" },\n ].map((partner) => (\n <div className=\"grid gap-[7px] rounded-lg bg-secondary p-3.5\" key={partner.name}>\n <strong>{partner.name}</strong>\n <span className=\"text-[0.85rem] leading-[1.4] text-muted-foreground\">{partner.role}</span>\n </div>\n ))}\n </div>\n <label className={fieldClass}>\n <span>Rounds</span>\n <Input className=\"max-w-25\" max={5} min={1} onChange={(event) => setRounds(event.target.value)} required step={1} type=\"number\" value={rounds} />\n <small className={hintClass}>1 to 5 rounds, with one contribution per person and round.</small>\n </label>\n <div className={actionsClass}>\n <Button onClick={onCancel} variant=\"outline\">Cancel</Button>\n <Button disabled={!valid} type=\"submit\">Start conversation</Button>\n </div>\n </form>\n );\n}\n\nexport function SharedBoardGuide({ onCancel, onComplete }: EntryGuideContext) {\n const [title, setTitle] = useState(\"Ideas for our team breakfast\");\n const [firstEntry, setFirstEntry] = useState(\"Everyone brings something from their favorite cuisine.\");\n const valid = title.trim().length > 0 && firstEntry.trim().length > 0;\n\n return (\n <form className={formClass} onSubmit={(event) => {\n event.preventDefault();\n if (valid) onComplete({ title: title.trim(), firstEntry: firstEntry.trim() });\n }}>\n <p className={introClass}>Collects ideas, questions, or tasks in one place. You add to the list in its view, the list helper through its tool.</p>\n <div className=\"grid grid-cols-2 gap-6 max-sm:grid-cols-1\">\n <div className=\"grid min-w-0 gap-5.5\">\n <label className={fieldClass}>\n <span>What do you want to collect?</span>\n <Input autoFocus maxLength={160} onChange={(event) => setTitle(event.target.value)} required value={title} />\n </label>\n <label className={fieldClass}>\n <span>First entry</span>\n <Textarea maxLength={2000} onChange={(event) => setFirstEntry(event.target.value)} required rows={5} value={firstEntry} />\n </label>\n </div>\n <aside aria-label=\"Collection board preview\">\n <Card className=\"h-full gap-0 bg-secondary p-5 [overflow-wrap:anywhere]\">\n <small className={hintClass}>This is how your collection starts</small>\n <h3 className=\"mt-3 mb-4.5 text-[1.05rem]\">{title.trim() || \"Collection title\"}</h3>\n <ol className=\"list-decimal pl-5.5 leading-[1.6] whitespace-pre-wrap\"><li>{firstEntry.trim() || \"Your first entry\"}</li></ol>\n <p className=\"mt-5.5 text-[0.85rem] leading-[1.5] text-muted-foreground\">The list helper adds this entry after the start. After that, both of you can add more.</p>\n </Card>\n </aside>\n </div>\n <div className={actionsClass}>\n <Button onClick={onCancel} variant=\"outline\">Cancel</Button>\n <Button disabled={!valid} type=\"submit\">Start collection board</Button>\n </div>\n </form>\n );\n}\n", "import type { WebPlugin } from \"@ragents/web/PluginRegistry\";\nimport { ConversationGuide, SharedBoardGuide } from \"./StartGuides\";\n\nexport const webPlugin: WebPlugin = {\n id: \"ragents.reference\",\n guides: [\n { id: \"ragents.reference.conversation-circle\", Guide: ConversationGuide },\n { id: \"ragents.reference.shared-actor-list\", Guide: SharedBoardGuide },\n ],\n};\n"],
5
+ "mappings": "AAAO,IAAMA,EAAO,CAACC,EAAWC,IAAS,CACvC,IAAMC,EAAS,WAAW,uBAA0BF,CAAS,EAC7D,GAAIE,IAAW,OAAW,MAAM,IAAI,MAAM,6BAA6BF,CAAS,EAAE,EAClF,GAAI,EAAEC,KAAQC,GAAS,MAAM,IAAI,MAAM,6BAA6BD,CAAI,SAASD,CAAS,6CAA6C,EACvI,OAAOE,EAAOD,CAAI,CACpB,ECJA,IAAOE,EAAQC,EAAK,QAAS,UAAU,ECAvC,IAAOC,EAAQC,EAAK,kBAAmB,QAAQ,ECA/C,IAAOC,EAAQC,EAAK,kBAAmB,MAAM,ECA7C,IAAOC,EAAQC,EAAK,kBAAmB,OAAO,ECA9C,IAAOC,EAAQC,EAAK,kBAAmB,UAAU,ECAjD,IAAOC,EAAQC,EAAK,oBAAqB,KAAK,ECA9C,IAAOC,EAAQC,EAAK,oBAAqB,MAAM,ECG/C,IAAMC,EAAY,sEACZC,EAAa,sCACbC,EAAa,8CACbC,EAAY,sCACZC,EAAe,0CAEd,SAASC,EAAkB,CAAE,SAAAC,EAAU,WAAAC,CAAW,EAAsB,CAC7E,GAAM,CAACC,EAAOC,CAAQ,EAAIC,EAAS,sCAAsC,EACnE,CAACC,EAAQC,CAAS,EAAIF,EAAS,GAAG,EAClCG,EAAQ,OAAOF,CAAM,EACrBG,EAAQN,EAAM,KAAK,EAAE,OAAS,GAAK,OAAO,UAAUK,CAAK,GAAKA,GAAS,GAAKA,GAAS,EAE3F,OACEE,EAAC,QAAK,UAAWf,EAAW,SAAWgB,GAAU,CAC/CA,EAAM,eAAe,EACjBF,GAAOP,EAAW,CAAE,MAAOC,EAAM,KAAK,EAAG,OAAQK,CAAM,CAAC,CAC9D,EACE,UAAAI,EAAC,KAAE,UAAWhB,EAAY,2GAA+F,EACzHc,EAAC,SAAM,UAAWb,EAChB,UAAAe,EAAC,QAAK,6CAAiC,EACvCA,EAACC,EAAA,CAAS,UAAS,GAAC,UAAW,IAAK,SAAWF,GAAUP,EAASO,EAAM,OAAO,KAAK,EAAG,SAAQ,GAAC,KAAM,EAAG,MAAOR,EAAO,GACzH,EACAS,EAAC,OAAI,aAAW,wBAAwB,UAAU,2DAC/C,UACC,CAAE,KAAM,OAAQ,KAAM,wBAAyB,EAC/C,CAAE,KAAM,MAAO,KAAM,oBAAqB,EAC1C,CAAE,KAAM,MAAO,KAAM,yBAA0B,CACjD,EAAE,IAAKE,GACLJ,EAAC,OAAI,UAAU,+CACb,UAAAE,EAAC,UAAQ,SAAAE,EAAQ,KAAK,EACtBF,EAAC,QAAK,UAAU,qDAAsD,SAAAE,EAAQ,KAAK,IAFlBA,EAAQ,IAG3E,CACD,EACH,EACAJ,EAAC,SAAM,UAAWb,EAChB,UAAAe,EAAC,QAAK,kBAAM,EACZA,EAACG,EAAA,CAAM,UAAU,WAAW,IAAK,EAAG,IAAK,EAAG,SAAWJ,GAAUJ,EAAUI,EAAM,OAAO,KAAK,EAAG,SAAQ,GAAC,KAAM,EAAG,KAAK,SAAS,MAAOL,EAAQ,EAC/IM,EAAC,SAAM,UAAWd,EAAW,sEAA0D,GACzF,EACAY,EAAC,OAAI,UAAWX,EACd,UAAAa,EAACI,EAAA,CAAO,QAASf,EAAU,QAAQ,UAAU,kBAAM,EACnDW,EAACI,EAAA,CAAO,SAAU,CAACP,EAAO,KAAK,SAAS,8BAAkB,GAC5D,GACF,CAEJ,CAEO,SAASQ,EAAiB,CAAE,SAAAhB,EAAU,WAAAC,CAAW,EAAsB,CAC5E,GAAM,CAACgB,EAAOC,CAAQ,EAAId,EAAS,8BAA8B,EAC3D,CAACe,EAAYC,CAAa,EAAIhB,EAAS,wDAAwD,EAC/FI,EAAQS,EAAM,KAAK,EAAE,OAAS,GAAKE,EAAW,KAAK,EAAE,OAAS,EAEpE,OACEV,EAAC,QAAK,UAAWf,EAAW,SAAWgB,GAAU,CAC/CA,EAAM,eAAe,EACjBF,GAAOP,EAAW,CAAE,MAAOgB,EAAM,KAAK,EAAG,WAAYE,EAAW,KAAK,CAAE,CAAC,CAC9E,EACE,UAAAR,EAAC,KAAE,UAAWhB,EAAY,gIAAoH,EAC9Ic,EAAC,OAAI,UAAU,4CACb,UAAAA,EAAC,OAAI,UAAU,uBACb,UAAAA,EAAC,SAAM,UAAWb,EAChB,UAAAe,EAAC,QAAK,wCAA4B,EAClCA,EAACG,EAAA,CAAM,UAAS,GAAC,UAAW,IAAK,SAAWJ,GAAUQ,EAASR,EAAM,OAAO,KAAK,EAAG,SAAQ,GAAC,MAAOO,EAAO,GAC7G,EACAR,EAAC,SAAM,UAAWb,EAChB,UAAAe,EAAC,QAAK,uBAAW,EACjBA,EAACC,EAAA,CAAS,UAAW,IAAM,SAAWF,GAAUU,EAAcV,EAAM,OAAO,KAAK,EAAG,SAAQ,GAAC,KAAM,EAAG,MAAOS,EAAY,GAC1H,GACF,EACAR,EAAC,SAAM,aAAW,2BAChB,SAAAF,EAACY,EAAA,CAAK,UAAU,yDACd,UAAAV,EAAC,SAAM,UAAWd,EAAW,8CAAkC,EAC/Dc,EAAC,MAAG,UAAU,6BAA8B,SAAAM,EAAM,KAAK,GAAK,mBAAmB,EAC/EN,EAAC,MAAG,UAAU,wDAAwD,SAAAA,EAAC,MAAI,SAAAQ,EAAW,KAAK,GAAK,mBAAmB,EAAK,EACxHR,EAAC,KAAE,UAAU,4DAA4D,kGAAsF,GACjK,EACF,GACF,EACAF,EAAC,OAAI,UAAWX,EACd,UAAAa,EAACI,EAAA,CAAO,QAASf,EAAU,QAAQ,UAAU,kBAAM,EACnDW,EAACI,EAAA,CAAO,SAAU,CAACP,EAAO,KAAK,SAAS,kCAAsB,GAChE,GACF,CAEJ,CCrFO,IAAMc,GAAuB,CAClC,GAAI,oBACJ,OAAQ,CACN,CAAE,GAAI,wCAAyC,MAAOC,CAAkB,EACxE,CAAE,GAAI,sCAAuC,MAAOC,CAAiB,CACvE,CACF",
6
6
  "names": ["read", "specifier", "name", "module", "react_useState_default", "read", "ui_Button_default", "read", "ui_Card_default", "read", "ui_Input_default", "read", "ui_Textarea_default", "read", "jsx_runtime_jsx_default", "read", "jsx_runtime_jsxs_default", "read", "formClass", "introClass", "fieldClass", "hintClass", "actionsClass", "ConversationGuide", "onCancel", "onComplete", "topic", "setTopic", "react_useState_default", "rounds", "setRounds", "count", "valid", "jsx_runtime_jsxs_default", "event", "jsx_runtime_jsx_default", "ui_Textarea_default", "partner", "ui_Input_default", "ui_Button_default", "SharedBoardGuide", "title", "setTitle", "firstEntry", "setFirstEntry", "ui_Card_default", "webPlugin", "ConversationGuide", "SharedBoardGuide"]
7
7
  }
@@ -32,8 +32,8 @@
32
32
  ]
33
33
  }
34
34
  },
35
- "stand": "3dd3347780b8ddbe369e9024096d5da94ba34cf37b1003b55e03e3cbc8cd4779",
36
- "sourceStand": "8b74203911efb719bfc48c5d3698be9d1315d7e19052a8a904b9e79e3077dfe1",
35
+ "stand": "d211b988a287cc1df7ad6b657be4e1bbe40dc0c16873f8df234f530a7c0c86fd",
36
+ "sourceStand": "309ce99effca0c0df061ec66cff775747b9ffa1eab3bffb557094adf42b7ec1a",
37
37
  "server": "server/index.js",
38
38
  "web": {
39
39
  "entry": "web/index.js",
@@ -48,7 +48,7 @@ var todoToolMetadata = {
48
48
  };
49
49
  var canManageTodos = defineToolAvailability({
50
50
  availability: "conditional",
51
- availabilityDetail: "Nur f\xFCr Agenten mit der Capability plugin.state.write."
51
+ availabilityDetail: "Only for agents with the capability plugin.state.write."
52
52
  }, (actor) => actor.kind === "agent" && holdsUsable(actor, "plugin.state.write"));
53
53
  var checked = (todos) => {
54
54
  const seen = /* @__PURE__ */ new Set();
@@ -56,9 +56,9 @@ var checked = (todos) => {
56
56
  const id = todo.id.trim();
57
57
  const text = todo.text.trim();
58
58
  const status = todoStatusOf(todo.status);
59
- if (!id) throw new DomainError("invalid-todo", `todos[${index}].id ist leer.`, 400);
60
- if (!text) throw new DomainError("invalid-todo", `todos[${index}].text ist leer.`, 400);
61
- if (!status) throw new DomainError("invalid-todo", `todos[${index}].status ${todo.status} ist unbekannt.`, 400);
59
+ if (!id) throw new DomainError("invalid-todo", `todos[${index}].id is empty.`, 400);
60
+ if (!text) throw new DomainError("invalid-todo", `todos[${index}].text is empty.`, 400);
61
+ if (!status) throw new DomainError("invalid-todo", `todos[${index}].status ${todo.status} is unknown.`, 400);
62
62
  if (seen.has(id)) throw new DomainError("duplicate-todo-id", `To-do ID ${id} occurs more than once.`, 400);
63
63
  seen.add(id);
64
64
  return { id, text, status };
@@ -72,7 +72,7 @@ var createTodoTool = () => defineRunFunction({
72
72
  id: Type.String({ minLength: 1 }),
73
73
  text: Type.String({ minLength: 1 }),
74
74
  status: Type.Union(TODO_STATUS_INPUTS.map((value) => Type.Literal(value)), {
75
- description: "open = offen, active = in Arbeit, completed = erledigt; pending, in_progress und done werden ebenfalls angenommen"
75
+ description: "open = not started, active = in progress, completed = done; pending, in_progress and done are accepted as well"
76
76
  })
77
77
  })
78
78
  )
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../plugins/ragents.todo/server/tool-contributor.ts", "../../../plugins/ragents.todo/server/todo-tool.ts", "../../../plugins/ragents.todo/contract.ts", "../../../plugins/ragents.todo/server/index.ts"],
4
- "sourcesContent": ["import type { ToolContributor } from \"@ragents/engine\";\nimport { toolDescriptorFrom } from \"@ragents/host/plugin-support/agent-tool.js\";\nimport { canManageTodos, createTodoTool, todoToolMetadata } from \"./todo-tool.js\";\n\nexport const createTodoToolContributor = (): ToolContributor => ({\n name: \"ragents.todo\",\n descriptors: [toolDescriptorFrom(todoToolMetadata, canManageTodos)],\n tools: () => [createTodoTool()],\n});\n", "import { Type } from \"typebox\";\nimport {\n DomainError,\n defineRunFunction,\n defineToolAvailability,\n holdsUsable,\n type RunFunction,\n} from \"@ragents/engine\";\nimport { TODO_PLUGIN_ID, TODO_STATUS_INPUTS, todoStatusOf } from \"../contract.js\";\n\nexport const todoToolMetadata = {\n name: \"todo_replace\",\n label: \"Replace To-do List\",\n description: \"Replace this agent's complete to-do snapshot with its current progress.\",\n longDescription: \"Mark an item completed only AFTER the work actually happened, never in advance; \"\n + \"update the list as you go so at most one item is active.\",\n} as const;\n\nexport const canManageTodos = defineToolAvailability({\n availability: \"conditional\",\n availabilityDetail: \"Nur f\u00FCr Agenten mit der Capability plugin.state.write.\",\n}, (actor) => actor.kind === \"agent\" && holdsUsable(actor, \"plugin.state.write\"));\n\nconst checked = (todos: readonly { id: string; text: string; status: string }[]) => {\n const seen = new Set<string>();\n\n return todos.map((todo, index) => {\n const id = todo.id.trim();\n const text = todo.text.trim();\n const status = todoStatusOf(todo.status);\n\n if (!id) throw new DomainError(\"invalid-todo\", `todos[${index}].id ist leer.`, 400);\n if (!text) throw new DomainError(\"invalid-todo\", `todos[${index}].text ist leer.`, 400);\n if (!status) throw new DomainError(\"invalid-todo\", `todos[${index}].status ${todo.status} ist unbekannt.`, 400);\n if (seen.has(id)) throw new DomainError(\"duplicate-todo-id\", `To-do ID ${id} occurs more than once.`, 400);\n\n seen.add(id);\n\n return { id, text, status };\n });\n};\n\nexport const createTodoTool = (): RunFunction =>\n defineRunFunction({\n ...todoToolMetadata,\n schema: Type.Object({\n todos: Type.Array(\n Type.Object({\n id: Type.String({ minLength: 1 }),\n text: Type.String({ minLength: 1 }),\n status: Type.Union(TODO_STATUS_INPUTS.map((value) => Type.Literal(value)), {\n description: \"open = offen, active = in Arbeit, completed = erledigt; \"\n + \"pending, in_progress und done werden ebenfalls angenommen\",\n }),\n }),\n ),\n }),\n resultSchema: Type.Null(),\n available: canManageTodos,\n run: ({ runtime, caller, context }, toolCallId, input) => {\n runtime.replacePluginState(context(toolCallId), caller.runId, {\n pluginId: TODO_PLUGIN_ID,\n scope: { kind: \"actor\", actorId: caller.actorId },\n state: { todos: checked(input.todos) },\n });\n\n return null;\n },\n });\n", "export const TODO_PLUGIN_ID = \"ragents.todo\";\n\nexport const TODO_STATUSES = [\"open\", \"active\", \"completed\"] as const;\nexport const TODO_STATUS_INPUTS = [\"open\", \"active\", \"completed\", \"pending\", \"in_progress\", \"done\"] as const;\nexport type TodoStatus = typeof TODO_STATUSES[number];\n\nexport interface TodoItem {\n id: string;\n text: string;\n status: TodoStatus;\n}\n\nexport interface TodoState {\n todos: TodoItem[];\n}\n\nexport const todoStatusOf = (value: unknown): TodoStatus | undefined => {\n if (typeof value !== \"string\") return undefined;\n\n switch (value.trim().toLowerCase()) {\n case \"open\":\n case \"offen\":\n case \"pending\":\n return \"open\";\n case \"active\":\n case \"doing\":\n case \"in_progress\":\n case \"in arbeit\":\n case \"running\":\n return \"active\";\n case \"completed\":\n case \"done\":\n case \"erledigt\":\n case \"finished\":\n return \"completed\";\n default:\n return undefined;\n }\n};\n\nconst itemOf = (value: unknown): TodoItem | undefined => {\n if (!value || typeof value !== \"object\") return undefined;\n const candidate = value as Partial<TodoItem>;\n const status = todoStatusOf(candidate.status);\n\n return typeof candidate.id === \"string\" && typeof candidate.text === \"string\" && status\n ? { id: candidate.id, text: candidate.text, status }\n : undefined;\n};\n\nexport const todoStateOf = (state: unknown): TodoState | undefined => {\n const candidate = state as Partial<TodoState> | undefined;\n if (!Array.isArray(candidate?.todos)) return undefined;\n const todos = candidate.todos.flatMap((value) => {\n const item = itemOf(value);\n return item ? [item] : [];\n });\n\n return todos.length === candidate.todos.length ? { todos } : undefined;\n};\n", "import type { RAgentsPlugin } from \"@ragents/engine\";\nimport type { PluginModule } from \"@ragents/host/plugin-support/plugin-module.js\";\nimport { createTodoToolContributor } from \"./tool-contributor.js\";\n\nconst todoPlugin: RAgentsPlugin = {\n manifest: { id: \"ragents.todo\" },\n register: (host) => host.functions(createTodoToolContributor()),\n};\n\nexport const plugin: PluginModule = { create: () => todoPlugin };\n"],
5
- "mappings": ";;;;AACA,SAAS,0BAA0B;;;ACDnC,SAAS,YAAY;AACrB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;;;ACPA,IAAM,iBAAiB;AAGvB,IAAM,qBAAqB,CAAC,QAAQ,UAAU,aAAa,WAAW,eAAe,MAAM;AAa3F,IAAM,eAAe,CAAC,UAA2C;AACtE,MAAI,OAAO,UAAU,SAAU,QAAO;AAEtC,UAAQ,MAAM,KAAK,EAAE,YAAY,GAAG;AAAA,IAClC,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EACX;AACF;;;AD5BO,IAAM,mBAAmB;AAAA,EAC9B,MAAM;AAAA,EACN,OAAO;AAAA,EACP,aAAa;AAAA,EACb,iBAAiB;AAEnB;AAEO,IAAM,iBAAiB,uBAAuB;AAAA,EACnD,cAAc;AAAA,EACd,oBAAoB;AACtB,GAAG,CAAC,UAAU,MAAM,SAAS,WAAW,YAAY,OAAO,oBAAoB,CAAC;AAEhF,IAAM,UAAU,CAAC,UAAmE;AAClF,QAAM,OAAO,oBAAI,IAAY;AAE7B,SAAO,MAAM,IAAI,CAAC,MAAM,UAAU;AAChC,UAAM,KAAK,KAAK,GAAG,KAAK;AACxB,UAAM,OAAO,KAAK,KAAK,KAAK;AAC5B,UAAM,SAAS,aAAa,KAAK,MAAM;AAEvC,QAAI,CAAC,GAAI,OAAM,IAAI,YAAY,gBAAgB,SAAS,KAAK,kBAAkB,GAAG;AAClF,QAAI,CAAC,KAAM,OAAM,IAAI,YAAY,gBAAgB,SAAS,KAAK,oBAAoB,GAAG;AACtF,QAAI,CAAC,OAAQ,OAAM,IAAI,YAAY,gBAAgB,SAAS,KAAK,YAAY,KAAK,MAAM,mBAAmB,GAAG;AAC9G,QAAI,KAAK,IAAI,EAAE,EAAG,OAAM,IAAI,YAAY,qBAAqB,YAAY,EAAE,2BAA2B,GAAG;AAEzG,SAAK,IAAI,EAAE;AAEX,WAAO,EAAE,IAAI,MAAM,OAAO;AAAA,EAC5B,CAAC;AACH;AAEO,IAAM,iBAAiB,MAC5B,kBAAkB;AAAA,EAChB,GAAG;AAAA,EACH,QAAQ,KAAK,OAAO;AAAA,IAClB,OAAO,KAAK;AAAA,MACV,KAAK,OAAO;AAAA,QACV,IAAI,KAAK,OAAO,EAAE,WAAW,EAAE,CAAC;AAAA,QAChC,MAAM,KAAK,OAAO,EAAE,WAAW,EAAE,CAAC;AAAA,QAClC,QAAQ,KAAK,MAAM,mBAAmB,IAAI,CAAC,UAAU,KAAK,QAAQ,KAAK,CAAC,GAAG;AAAA,UACzE,aAAa;AAAA,QAEf,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AAAA,EACD,cAAc,KAAK,KAAK;AAAA,EACxB,WAAW;AAAA,EACX,KAAK,CAAC,EAAE,SAAS,QAAQ,QAAQ,GAAG,YAAY,UAAU;AACxD,YAAQ,mBAAmB,QAAQ,UAAU,GAAG,OAAO,OAAO;AAAA,MAC5D,UAAU;AAAA,MACV,OAAO,EAAE,MAAM,SAAS,SAAS,OAAO,QAAQ;AAAA,MAChD,OAAO,EAAE,OAAO,QAAQ,MAAM,KAAK,EAAE;AAAA,IACvC,CAAC;AAED,WAAO;AAAA,EACT;AACF,CAAC;;;ADhEI,IAAM,4BAA4B,OAAwB;AAAA,EAC/D,MAAM;AAAA,EACN,aAAa,CAAC,mBAAmB,kBAAkB,cAAc,CAAC;AAAA,EAClE,OAAO,MAAM,CAAC,eAAe,CAAC;AAChC;;;AGJA,IAAM,aAA4B;AAAA,EAChC,UAAU,EAAE,IAAI,eAAe;AAAA,EAC/B,UAAU,CAAC,SAAS,KAAK,UAAU,0BAA0B,CAAC;AAChE;AAEO,IAAM,SAAuB,EAAE,QAAQ,MAAM,WAAW;",
4
+ "sourcesContent": ["import type { ToolContributor } from \"@ragents/engine\";\nimport { toolDescriptorFrom } from \"@ragents/host/plugin-support/agent-tool.js\";\nimport { canManageTodos, createTodoTool, todoToolMetadata } from \"./todo-tool.js\";\n\nexport const createTodoToolContributor = (): ToolContributor => ({\n name: \"ragents.todo\",\n descriptors: [toolDescriptorFrom(todoToolMetadata, canManageTodos)],\n tools: () => [createTodoTool()],\n});\n", "import { Type } from \"typebox\";\nimport {\n DomainError,\n defineRunFunction,\n defineToolAvailability,\n holdsUsable,\n type RunFunction,\n} from \"@ragents/engine\";\nimport { TODO_PLUGIN_ID, TODO_STATUS_INPUTS, todoStatusOf } from \"../contract.js\";\n\nexport const todoToolMetadata = {\n name: \"todo_replace\",\n label: \"Replace To-do List\",\n description: \"Replace this agent's complete to-do snapshot with its current progress.\",\n longDescription: \"Mark an item completed only AFTER the work actually happened, never in advance; \"\n + \"update the list as you go so at most one item is active.\",\n} as const;\n\nexport const canManageTodos = defineToolAvailability({\n availability: \"conditional\",\n availabilityDetail: \"Only for agents with the capability plugin.state.write.\",\n}, (actor) => actor.kind === \"agent\" && holdsUsable(actor, \"plugin.state.write\"));\n\nconst checked = (todos: readonly { id: string; text: string; status: string }[]) => {\n const seen = new Set<string>();\n\n return todos.map((todo, index) => {\n const id = todo.id.trim();\n const text = todo.text.trim();\n const status = todoStatusOf(todo.status);\n\n if (!id) throw new DomainError(\"invalid-todo\", `todos[${index}].id is empty.`, 400);\n if (!text) throw new DomainError(\"invalid-todo\", `todos[${index}].text is empty.`, 400);\n if (!status) throw new DomainError(\"invalid-todo\", `todos[${index}].status ${todo.status} is unknown.`, 400);\n if (seen.has(id)) throw new DomainError(\"duplicate-todo-id\", `To-do ID ${id} occurs more than once.`, 400);\n\n seen.add(id);\n\n return { id, text, status };\n });\n};\n\nexport const createTodoTool = (): RunFunction =>\n defineRunFunction({\n ...todoToolMetadata,\n schema: Type.Object({\n todos: Type.Array(\n Type.Object({\n id: Type.String({ minLength: 1 }),\n text: Type.String({ minLength: 1 }),\n status: Type.Union(TODO_STATUS_INPUTS.map((value) => Type.Literal(value)), {\n description: \"open = not started, active = in progress, completed = done; \"\n + \"pending, in_progress and done are accepted as well\",\n }),\n }),\n ),\n }),\n resultSchema: Type.Null(),\n available: canManageTodos,\n run: ({ runtime, caller, context }, toolCallId, input) => {\n runtime.replacePluginState(context(toolCallId), caller.runId, {\n pluginId: TODO_PLUGIN_ID,\n scope: { kind: \"actor\", actorId: caller.actorId },\n state: { todos: checked(input.todos) },\n });\n\n return null;\n },\n });\n", "export const TODO_PLUGIN_ID = \"ragents.todo\";\n\nexport const TODO_STATUSES = [\"open\", \"active\", \"completed\"] as const;\nexport const TODO_STATUS_INPUTS = [\"open\", \"active\", \"completed\", \"pending\", \"in_progress\", \"done\"] as const;\nexport type TodoStatus = typeof TODO_STATUSES[number];\n\nexport interface TodoItem {\n id: string;\n text: string;\n status: TodoStatus;\n}\n\nexport interface TodoState {\n todos: TodoItem[];\n}\n\nexport const todoStatusOf = (value: unknown): TodoStatus | undefined => {\n if (typeof value !== \"string\") return undefined;\n\n switch (value.trim().toLowerCase()) {\n case \"open\":\n case \"offen\":\n case \"pending\":\n return \"open\";\n case \"active\":\n case \"doing\":\n case \"in_progress\":\n case \"in arbeit\":\n case \"running\":\n return \"active\";\n case \"completed\":\n case \"done\":\n case \"erledigt\":\n case \"finished\":\n return \"completed\";\n default:\n return undefined;\n }\n};\n\nconst itemOf = (value: unknown): TodoItem | undefined => {\n if (!value || typeof value !== \"object\") return undefined;\n const candidate = value as Partial<TodoItem>;\n const status = todoStatusOf(candidate.status);\n\n return typeof candidate.id === \"string\" && typeof candidate.text === \"string\" && status\n ? { id: candidate.id, text: candidate.text, status }\n : undefined;\n};\n\nexport const todoStateOf = (state: unknown): TodoState | undefined => {\n const candidate = state as Partial<TodoState> | undefined;\n if (!Array.isArray(candidate?.todos)) return undefined;\n const todos = candidate.todos.flatMap((value) => {\n const item = itemOf(value);\n return item ? [item] : [];\n });\n\n return todos.length === candidate.todos.length ? { todos } : undefined;\n};\n", "import type { RAgentsPlugin } from \"@ragents/engine\";\nimport type { PluginModule } from \"@ragents/host/plugin-support/plugin-module.js\";\nimport { createTodoToolContributor } from \"./tool-contributor.js\";\n\nconst todoPlugin: RAgentsPlugin = {\n manifest: { id: \"ragents.todo\" },\n register: (host) => host.functions(createTodoToolContributor()),\n};\n\nexport const plugin: PluginModule = { create: () => todoPlugin };\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1 +1 @@
1
- ["--card","--primary","[stroke-linecap:round]","[stroke-linejoin:round]","[stroke-width:2.2]","active","arbeit","aria-hidden","as","border-[1.5px]","border-border-soft","border-foreground/55","border-t","candidate","cardSections","case","className","completed","const","data-status","default","doing","done","erledigt","export","fill-none","finished","first:border-t-0","first:pt-0","from","function","gap-1.5","gap-2","grid","grid-cols-[15px_minmax(0,1fr)]","id","if","import","in","in-data-[status=active]:bg-[color-mix(in_srgb,var(--primary)_14%,var(--card))]","in-data-[status=active]:border-primary","in-data-[status=completed]:bg-success","in-data-[status=completed]:border-success","in-data-[status=completed]:opacity-75","in_progress","interface","item","itemOf","items","items-start","key","last:pb-0","leading-[1.35]","length","list-none","markerClass","markerOf","mt-px","needsRunView","not-italic","object","offen","open","order","overflow-hidden","pending","pl-0.5","place-items-center","py-1.5","return","rounded-full","runViewFrom","running","session","size-[11px]","size-[15px]","state","status","string","stroke-card","switch","text","text-[0.74rem]","text-[0px]","text-ellipsis","text-muted-foreground","text-xs","title","todo","todoStateOf","todoStatusOf","todos","type","typeof","undefined","value","view","viewBox","webPlugin","weitere"]
1
+ ["--card","--primary","[stroke-linecap:round]","[stroke-linejoin:round]","[stroke-width:2.2]","active","arbeit","aria-hidden","as","border-[1.5px]","border-border-soft","border-foreground/55","border-t","candidate","cardSections","case","className","completed","const","data-status","default","doing","done","erledigt","export","fill-none","finished","first:border-t-0","first:pt-0","from","function","gap-1.5","gap-2","grid","grid-cols-[15px_minmax(0,1fr)]","id","if","import","in","in-data-[status=active]:bg-[color-mix(in_srgb,var(--primary)_14%,var(--card))]","in-data-[status=active]:border-primary","in-data-[status=completed]:bg-success","in-data-[status=completed]:border-success","in-data-[status=completed]:opacity-75","in_progress","interface","item","itemOf","items","items-start","key","last:pb-0","leading-[1.35]","length","list-none","markerClass","markerOf","more","mt-px","needsRunView","not-italic","object","offen","open","order","overflow-hidden","pending","pl-0.5","place-items-center","py-1.5","return","rounded-full","runViewFrom","running","session","size-[11px]","size-[15px]","state","status","string","stroke-card","switch","text","text-[0.74rem]","text-[0px]","text-ellipsis","text-muted-foreground","text-xs","title","todo","todoStateOf","todoStatusOf","todos","type","typeof","undefined","value","view","viewBox","webPlugin"]
@@ -1,2 +1,2 @@
1
- var r=(t,e)=>{let o=globalThis.__ragentsHostModules?.[t];if(o===void 0)throw new Error(`Der Host stellt ${t} nicht bereit`);if(!(e in o))throw new Error(`Der Host stellt ${e} aus ${t} nicht bereit; das Bundle ist gegen einen neueren Host gebaut`);return o[e]};var i=r("@ragents/web/run-view","actorPluginState");var f=r("@ragents/web/run-view","runActorFrom");var l=r("@ragents/web/run-view","runViewFrom");var x="ragents.todo";var b=t=>{if(typeof t=="string")switch(t.trim().toLowerCase()){case"open":case"offen":case"pending":return"open";case"active":case"doing":case"in_progress":case"in arbeit":case"running":return"active";case"completed":case"done":case"erledigt":case"finished":return"completed";default:return}},w=t=>{if(!t||typeof t!="object")return;let e=t,o=b(e.status);return typeof e.id=="string"&&typeof e.text=="string"&&o?{id:e.id,text:e.text,status:o}:void 0},g=t=>{let e=t;if(!Array.isArray(e?.todos))return;let o=e.todos.flatMap(c=>{let a=w(c);return a?[a]:[]});return o.length===e.todos.length?{todos:o}:void 0};var u=r("@ragents/web/ui","SectionLabel");var s=r("react/jsx-runtime","jsx");var d=r("react/jsx-runtime","jsxs");var p=12,m=t=>t.status,y="grid size-[15px] mt-px place-items-center rounded-full border-[1.5px] border-foreground/55 text-[0px] not-italic in-data-[status=active]:border-primary in-data-[status=active]:bg-[color-mix(in_srgb,var(--primary)_14%,var(--card))] in-data-[status=completed]:border-success in-data-[status=completed]:bg-success";function T({actor:t,session:e}){let o=l(e.runView);if(!o)return null;let a=g(i(o,x,f(t).id))?.todos??[];if(a.length===0)return null;let S=a.filter(n=>m(n)==="completed").length;return d("section",{className:"grid gap-1.5",children:[d(u,{children:[s("span",{children:"To-do"}),d("small",{children:[S,"/",a.length]})]}),s("ul",{className:"grid list-none",children:a.slice(0,p).map(n=>d("li",{className:"grid grid-cols-[15px_minmax(0,1fr)] items-start gap-2 border-t border-border-soft py-1.5 text-[0.74rem] leading-[1.35] first:border-t-0 first:pt-0 last:pb-0","data-status":m(n),children:[s("i",{"aria-hidden":!0,className:y,children:m(n)==="completed"&&s(h,{})}),s("span",{className:"overflow-hidden text-ellipsis in-data-[status=completed]:opacity-75",title:n.text,children:n.text})]},n.id))}),a.length>p&&d("small",{className:"pl-0.5 text-xs text-muted-foreground",children:["+",a.length-p," weitere"]})]})}function h(){return s("svg",{"aria-hidden":!0,className:"size-[11px] fill-none stroke-card [stroke-linecap:round] [stroke-linejoin:round] [stroke-width:2.2]",viewBox:"0 0 12 12",children:s("path",{d:"M3.1 6.2 5 8.1l3.9-4.2"})})}var Y={id:"ragents.todo",needsRunView:!0,cardSections:[{id:"ragents.todo.items",order:200,Section:T}]};export{Y as webPlugin};
1
+ var r=(t,e)=>{let o=globalThis.__ragentsHostModules?.[t];if(o===void 0)throw new Error(`The host does not provide ${t}`);if(!(e in o))throw new Error(`The host does not provide ${e} from ${t}; the bundle was built against a newer host`);return o[e]};var i=r("@ragents/web/run-view","actorPluginState");var f=r("@ragents/web/run-view","runActorFrom");var l=r("@ragents/web/run-view","runViewFrom");var x="ragents.todo";var b=t=>{if(typeof t=="string")switch(t.trim().toLowerCase()){case"open":case"offen":case"pending":return"open";case"active":case"doing":case"in_progress":case"in arbeit":case"running":return"active";case"completed":case"done":case"erledigt":case"finished":return"completed";default:return}},w=t=>{if(!t||typeof t!="object")return;let e=t,o=b(e.status);return typeof e.id=="string"&&typeof e.text=="string"&&o?{id:e.id,text:e.text,status:o}:void 0},g=t=>{let e=t;if(!Array.isArray(e?.todos))return;let o=e.todos.flatMap(c=>{let a=w(c);return a?[a]:[]});return o.length===e.todos.length?{todos:o}:void 0};var p=r("@ragents/web/ui","SectionLabel");var s=r("react/jsx-runtime","jsx");var d=r("react/jsx-runtime","jsxs");var u=12,m=t=>t.status,h="grid size-[15px] mt-px place-items-center rounded-full border-[1.5px] border-foreground/55 text-[0px] not-italic in-data-[status=active]:border-primary in-data-[status=active]:bg-[color-mix(in_srgb,var(--primary)_14%,var(--card))] in-data-[status=completed]:border-success in-data-[status=completed]:bg-success";function T({actor:t,session:e}){let o=l(e.runView);if(!o)return null;let a=g(i(o,x,f(t).id))?.todos??[];if(a.length===0)return null;let S=a.filter(n=>m(n)==="completed").length;return d("section",{className:"grid gap-1.5",children:[d(p,{children:[s("span",{children:"To-do"}),d("small",{children:[S,"/",a.length]})]}),s("ul",{className:"grid list-none",children:a.slice(0,u).map(n=>d("li",{className:"grid grid-cols-[15px_minmax(0,1fr)] items-start gap-2 border-t border-border-soft py-1.5 text-[0.74rem] leading-[1.35] first:border-t-0 first:pt-0 last:pb-0","data-status":m(n),children:[s("i",{"aria-hidden":!0,className:h,children:m(n)==="completed"&&s(y,{})}),s("span",{className:"overflow-hidden text-ellipsis in-data-[status=completed]:opacity-75",title:n.text,children:n.text})]},n.id))}),a.length>u&&d("small",{className:"pl-0.5 text-xs text-muted-foreground",children:["+",a.length-u," more"]})]})}function y(){return s("svg",{"aria-hidden":!0,className:"size-[11px] fill-none stroke-card [stroke-linecap:round] [stroke-linejoin:round] [stroke-width:2.2]",viewBox:"0 0 12 12",children:s("path",{d:"M3.1 6.2 5 8.1l3.9-4.2"})})}var Y={id:"ragents.todo",needsRunView:!0,cardSections:[{id:"ragents.todo.items",order:200,Section:T}]};export{Y as webPlugin};
2
2
  //# sourceMappingURL=/plugins/ragents.todo/web/index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["ragents-host-read:read", "ragents-host-value:@ragents/web/run-view#actorPluginState", "ragents-host-value:@ragents/web/run-view#runActorFrom", "ragents-host-value:@ragents/web/run-view#runViewFrom", "../../../plugins/ragents.todo/contract.ts", "ragents-host-value:@ragents/web/ui#SectionLabel", "ragents-host-value:react/jsx-runtime#jsx", "ragents-host-value:react/jsx-runtime#jsxs", "../../../plugins/ragents.todo/web/TodoSection.tsx", "../../../plugins/ragents.todo/web/index.ts"],
4
- "sourcesContent": ["export const read = (specifier, name) => {\n const module = globalThis[\"__ragentsHostModules\"]?.[specifier];\n if (module === undefined) throw new Error(`Der Host stellt ${specifier} nicht bereit`);\n if (!(name in module)) throw new Error(`Der Host stellt ${name} aus ${specifier} nicht bereit; das Bundle ist gegen einen neueren Host gebaut`);\n return module[name];\n};", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/run-view\", \"actorPluginState\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/run-view\", \"runActorFrom\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/run-view\", \"runViewFrom\");\n", "export const TODO_PLUGIN_ID = \"ragents.todo\";\n\nexport const TODO_STATUSES = [\"open\", \"active\", \"completed\"] as const;\nexport const TODO_STATUS_INPUTS = [\"open\", \"active\", \"completed\", \"pending\", \"in_progress\", \"done\"] as const;\nexport type TodoStatus = typeof TODO_STATUSES[number];\n\nexport interface TodoItem {\n id: string;\n text: string;\n status: TodoStatus;\n}\n\nexport interface TodoState {\n todos: TodoItem[];\n}\n\nexport const todoStatusOf = (value: unknown): TodoStatus | undefined => {\n if (typeof value !== \"string\") return undefined;\n\n switch (value.trim().toLowerCase()) {\n case \"open\":\n case \"offen\":\n case \"pending\":\n return \"open\";\n case \"active\":\n case \"doing\":\n case \"in_progress\":\n case \"in arbeit\":\n case \"running\":\n return \"active\";\n case \"completed\":\n case \"done\":\n case \"erledigt\":\n case \"finished\":\n return \"completed\";\n default:\n return undefined;\n }\n};\n\nconst itemOf = (value: unknown): TodoItem | undefined => {\n if (!value || typeof value !== \"object\") return undefined;\n const candidate = value as Partial<TodoItem>;\n const status = todoStatusOf(candidate.status);\n\n return typeof candidate.id === \"string\" && typeof candidate.text === \"string\" && status\n ? { id: candidate.id, text: candidate.text, status }\n : undefined;\n};\n\nexport const todoStateOf = (state: unknown): TodoState | undefined => {\n const candidate = state as Partial<TodoState> | undefined;\n if (!Array.isArray(candidate?.todos)) return undefined;\n const todos = candidate.todos.flatMap((value) => {\n const item = itemOf(value);\n return item ? [item] : [];\n });\n\n return todos.length === candidate.todos.length ? { todos } : undefined;\n};\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/ui\", \"SectionLabel\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"react/jsx-runtime\", \"jsx\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"react/jsx-runtime\", \"jsxs\");\n", "import { actorPluginState, runActorFrom, runViewFrom } from \"@ragents/web/run-view\";\nimport { TODO_PLUGIN_ID, todoStateOf, type TodoItem } from \"../contract\";\nimport type { CardSectionContext } from \"@ragents/web/PluginRegistry\";\nimport { SectionLabel } from \"@ragents/web/ui\";\n\nconst MAX_ITEMS = 12;\nconst markerOf = (todo: TodoItem) => todo.status;\n\nconst markerClass = \"grid size-[15px] mt-px place-items-center rounded-full border-[1.5px] border-foreground/55 text-[0px] not-italic\"\n + \" in-data-[status=active]:border-primary in-data-[status=active]:bg-[color-mix(in_srgb,var(--primary)_14%,var(--card))]\"\n + \" in-data-[status=completed]:border-success in-data-[status=completed]:bg-success\";\n\nexport function TodoSection({ actor, session }: CardSectionContext) {\n const view = runViewFrom(session.runView);\n if (!view) return null;\n const state = todoStateOf(actorPluginState(view, TODO_PLUGIN_ID, runActorFrom(actor).id));\n const todos = state?.todos ?? [];\n if (todos.length === 0) return null;\n const done = todos.filter((todo) => markerOf(todo) === \"completed\").length;\n\n return (\n <section className=\"grid gap-1.5\">\n <SectionLabel>\n <span>To-do</span>\n <small>{done}/{todos.length}</small>\n </SectionLabel>\n <ul className=\"grid list-none\">\n {todos.slice(0, MAX_ITEMS).map((todo) => (\n <li className=\"grid grid-cols-[15px_minmax(0,1fr)] items-start gap-2 border-t border-border-soft py-1.5 text-[0.74rem] leading-[1.35] first:border-t-0 first:pt-0 last:pb-0\"\n data-status={markerOf(todo)} key={todo.id}>\n <i aria-hidden className={markerClass}>{markerOf(todo) === \"completed\" && <IconCheck />}</i>\n <span className=\"overflow-hidden text-ellipsis in-data-[status=completed]:opacity-75\" title={todo.text}>{todo.text}</span>\n </li>\n ))}\n </ul>\n {todos.length > MAX_ITEMS && <small className=\"pl-0.5 text-xs text-muted-foreground\">+{todos.length - MAX_ITEMS} weitere</small>}\n </section>\n );\n}\n\nfunction IconCheck() {\n return (\n <svg aria-hidden className=\"size-[11px] fill-none stroke-card [stroke-linecap:round] [stroke-linejoin:round] [stroke-width:2.2]\" viewBox=\"0 0 12 12\">\n <path d=\"M3.1 6.2 5 8.1l3.9-4.2\" />\n </svg>\n );\n}\n", "import { TodoSection } from \"./TodoSection\";\nimport type { WebPlugin } from \"@ragents/web/PluginRegistry\";\n\nexport const webPlugin: WebPlugin = {\n id: \"ragents.todo\",\n needsRunView: true,\n cardSections: [{\n id: \"ragents.todo.items\",\n order: 200,\n Section: TodoSection,\n }],\n};\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["export const read = (specifier, name) => {\n const module = globalThis[\"__ragentsHostModules\"]?.[specifier];\n if (module === undefined) throw new Error(`The host does not provide ${specifier}`);\n if (!(name in module)) throw new Error(`The host does not provide ${name} from ${specifier}; the bundle was built against a newer host`);\n return module[name];\n};", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/run-view\", \"actorPluginState\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/run-view\", \"runActorFrom\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/run-view\", \"runViewFrom\");\n", "export const TODO_PLUGIN_ID = \"ragents.todo\";\n\nexport const TODO_STATUSES = [\"open\", \"active\", \"completed\"] as const;\nexport const TODO_STATUS_INPUTS = [\"open\", \"active\", \"completed\", \"pending\", \"in_progress\", \"done\"] as const;\nexport type TodoStatus = typeof TODO_STATUSES[number];\n\nexport interface TodoItem {\n id: string;\n text: string;\n status: TodoStatus;\n}\n\nexport interface TodoState {\n todos: TodoItem[];\n}\n\nexport const todoStatusOf = (value: unknown): TodoStatus | undefined => {\n if (typeof value !== \"string\") return undefined;\n\n switch (value.trim().toLowerCase()) {\n case \"open\":\n case \"offen\":\n case \"pending\":\n return \"open\";\n case \"active\":\n case \"doing\":\n case \"in_progress\":\n case \"in arbeit\":\n case \"running\":\n return \"active\";\n case \"completed\":\n case \"done\":\n case \"erledigt\":\n case \"finished\":\n return \"completed\";\n default:\n return undefined;\n }\n};\n\nconst itemOf = (value: unknown): TodoItem | undefined => {\n if (!value || typeof value !== \"object\") return undefined;\n const candidate = value as Partial<TodoItem>;\n const status = todoStatusOf(candidate.status);\n\n return typeof candidate.id === \"string\" && typeof candidate.text === \"string\" && status\n ? { id: candidate.id, text: candidate.text, status }\n : undefined;\n};\n\nexport const todoStateOf = (state: unknown): TodoState | undefined => {\n const candidate = state as Partial<TodoState> | undefined;\n if (!Array.isArray(candidate?.todos)) return undefined;\n const todos = candidate.todos.flatMap((value) => {\n const item = itemOf(value);\n return item ? [item] : [];\n });\n\n return todos.length === candidate.todos.length ? { todos } : undefined;\n};\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"@ragents/web/ui\", \"SectionLabel\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"react/jsx-runtime\", \"jsx\");\n", "import { read } from \"ragents-host-read:read\";\nexport default read(\"react/jsx-runtime\", \"jsxs\");\n", "import { actorPluginState, runActorFrom, runViewFrom } from \"@ragents/web/run-view\";\nimport { TODO_PLUGIN_ID, todoStateOf, type TodoItem } from \"../contract\";\nimport type { CardSectionContext } from \"@ragents/web/PluginRegistry\";\nimport { SectionLabel } from \"@ragents/web/ui\";\n\nconst MAX_ITEMS = 12;\nconst markerOf = (todo: TodoItem) => todo.status;\n\nconst markerClass = \"grid size-[15px] mt-px place-items-center rounded-full border-[1.5px] border-foreground/55 text-[0px] not-italic\"\n + \" in-data-[status=active]:border-primary in-data-[status=active]:bg-[color-mix(in_srgb,var(--primary)_14%,var(--card))]\"\n + \" in-data-[status=completed]:border-success in-data-[status=completed]:bg-success\";\n\nexport function TodoSection({ actor, session }: CardSectionContext) {\n const view = runViewFrom(session.runView);\n if (!view) return null;\n const state = todoStateOf(actorPluginState(view, TODO_PLUGIN_ID, runActorFrom(actor).id));\n const todos = state?.todos ?? [];\n if (todos.length === 0) return null;\n const done = todos.filter((todo) => markerOf(todo) === \"completed\").length;\n\n return (\n <section className=\"grid gap-1.5\">\n <SectionLabel>\n <span>To-do</span>\n <small>{done}/{todos.length}</small>\n </SectionLabel>\n <ul className=\"grid list-none\">\n {todos.slice(0, MAX_ITEMS).map((todo) => (\n <li className=\"grid grid-cols-[15px_minmax(0,1fr)] items-start gap-2 border-t border-border-soft py-1.5 text-[0.74rem] leading-[1.35] first:border-t-0 first:pt-0 last:pb-0\"\n data-status={markerOf(todo)} key={todo.id}>\n <i aria-hidden className={markerClass}>{markerOf(todo) === \"completed\" && <IconCheck />}</i>\n <span className=\"overflow-hidden text-ellipsis in-data-[status=completed]:opacity-75\" title={todo.text}>{todo.text}</span>\n </li>\n ))}\n </ul>\n {todos.length > MAX_ITEMS && <small className=\"pl-0.5 text-xs text-muted-foreground\">+{todos.length - MAX_ITEMS} more</small>}\n </section>\n );\n}\n\nfunction IconCheck() {\n return (\n <svg aria-hidden className=\"size-[11px] fill-none stroke-card [stroke-linecap:round] [stroke-linejoin:round] [stroke-width:2.2]\" viewBox=\"0 0 12 12\">\n <path d=\"M3.1 6.2 5 8.1l3.9-4.2\" />\n </svg>\n );\n}\n", "import { TodoSection } from \"./TodoSection\";\nimport type { WebPlugin } from \"@ragents/web/PluginRegistry\";\n\nexport const webPlugin: WebPlugin = {\n id: \"ragents.todo\",\n needsRunView: true,\n cardSections: [{\n id: \"ragents.todo.items\",\n order: 200,\n Section: TodoSection,\n }],\n};\n"],
5
+ "mappings": "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",
6
6
  "names": ["read", "specifier", "name", "module", "run_view_actorPluginState_default", "read", "run_view_runActorFrom_default", "read", "run_view_runViewFrom_default", "read", "TODO_PLUGIN_ID", "todoStatusOf", "value", "itemOf", "candidate", "status", "todoStateOf", "state", "todos", "item", "ui_SectionLabel_default", "read", "jsx_runtime_jsx_default", "read", "jsx_runtime_jsxs_default", "read", "MAX_ITEMS", "markerOf", "todo", "markerClass", "TodoSection", "actor", "session", "view", "run_view_runViewFrom_default", "todos", "todoStateOf", "run_view_actorPluginState_default", "TODO_PLUGIN_ID", "run_view_runActorFrom_default", "done", "jsx_runtime_jsxs_default", "ui_SectionLabel_default", "jsx_runtime_jsx_default", "IconCheck", "webPlugin", "TodoSection"]
7
7
  }
@@ -22,8 +22,8 @@
22
22
  },
23
23
  "web": {}
24
24
  },
25
- "stand": "98d8ba054df383ac3d2d13e25de7f1930a7e4301654e188847cfc1fcf135490b",
26
- "sourceStand": "24d0e692efb972a98a161d8c0c30e737e9dd8d3e63258ec6d7f2f75a75d090bd",
25
+ "stand": "e3bb513053f6385f9d78d314d28302324095a5163c4e1563df6fc8b3251305f7",
26
+ "sourceStand": "3e6be16236b43b5f5fa1e453ceab1d5161dfd8743e22426c0d6ded7791b875e1",
27
27
  "server": "server/index.js",
28
28
  "exports": {
29
29
  "server": {},
@@ -18,7 +18,7 @@ var compactJson = (value, limit) => collapse(typeof value === "string" ? value :
18
18
  var lineOf = (event, actorId) => {
19
19
  if (event.type === "actor.input.enqueued") {
20
20
  if (event.payload.actorId !== actorId) return void 0;
21
- return event.payload.content === void 0 ? `> [Ereignis ${event.payload.sourceEventIds[0]}]` : `> ${collapse(event.payload.content, 1e3)}`;
21
+ return event.payload.content === void 0 ? `> [Event ${event.payload.sourceEventIds[0]}]` : `> ${collapse(event.payload.content, 1e3)}`;
22
22
  }
23
23
  if (event.actorId !== actorId) return void 0;
24
24
  switch (event.type) {
@@ -29,11 +29,11 @@ var lineOf = (event, actorId) => {
29
29
  case "tool.call.completed":
30
30
  return ` -> ${compactJson(event.payload.output, 300)}`;
31
31
  case "tool.call.failed":
32
- return ` -> Fehler: ${collapse(event.payload.error, 300)}`;
32
+ return ` -> Error: ${collapse(event.payload.error, 300)}`;
33
33
  case "turn.finished":
34
- return event.payload.outcome === "failed" ? `[Turn fehlgeschlagen: ${collapse(event.payload.reason, 300)}]` : void 0;
34
+ return event.payload.outcome === "failed" ? `[Turn failed: ${collapse(event.payload.reason, 300)}]` : void 0;
35
35
  case "turn.interrupted":
36
- return `[Turn unterbrochen: ${collapse(event.payload.reason, 300)}]`;
36
+ return `[Turn interrupted: ${collapse(event.payload.reason, 300)}]`;
37
37
  default:
38
38
  return void 0;
39
39
  }
@@ -49,22 +49,22 @@ function compactTranscript(events, actorId, maxChars = defaultMaxChars) {
49
49
  dropped += 1;
50
50
  }
51
51
  const kept = lines.slice(dropped);
52
- return { text: [`[... ${dropped} fr\xFChere Zeilen ausgelassen]`, ...kept].join("\n"), lines: kept.length, truncated: true };
52
+ return { text: [`[... ${dropped} earlier lines omitted]`, ...kept].join("\n"), lines: kept.length, truncated: true };
53
53
  }
54
54
  var transcriptToolMetadata = {
55
55
  name: "actor_transcript",
56
- label: "Verlauf verdichten",
57
- description: "Liefert den Verlauf eines Actors dieses Runs als kompaktes Transkript: Eingaben, Antworttexte und Werkzeugaufrufe je eine Zeile, Ergebnisse gek\xFCrzt, ohne Reasoning. F\xFCr \xDCbergaben, Statusberichte und Zusammenfassungen."
56
+ label: "Compact history",
57
+ description: "Returns the history of an actor of this run as a compact transcript: inputs, answer texts and tool calls one line each, results shortened, without reasoning. For handovers, status reports and summaries."
58
58
  };
59
59
  var canReadTranscripts = defineToolAvailability({
60
60
  availability: "conditional",
61
- availabilityDetail: "F\xFCr Agenten und Skript-Actors mit der Capability event.subscribe."
61
+ availabilityDetail: "For agents and script actors with the capability event.subscribe."
62
62
  }, (actor) => actor.kind !== "human" && holdsUsable(actor, "event.subscribe"));
63
63
  var createTranscriptTool = (runtime) => defineRunFunction({
64
64
  ...transcriptToolMetadata,
65
65
  schema: Type.Object({
66
- actor: Type.String({ minLength: 1, description: "Handle mit oder ohne @ oder ID eines Actors dieses Runs" }),
67
- maxChars: Type.Optional(Type.Integer({ minimum: 200, maximum: 2e5, description: `Obergrenze in Zeichen, Standard ${defaultMaxChars}; die \xE4ltesten Zeilen entfallen zuerst` }))
66
+ actor: Type.String({ minLength: 1, description: "Handle with or without @, or ID of an actor of this run" }),
67
+ maxChars: Type.Optional(Type.Integer({ minimum: 200, maximum: 2e5, description: `Upper limit in characters, default ${defaultMaxChars}; the oldest lines are dropped first` }))
68
68
  }, { additionalProperties: false }),
69
69
  resultSchema: Type.Object({
70
70
  actorId: Type.String(),
@@ -77,7 +77,7 @@ var createTranscriptTool = (runtime) => defineRunFunction({
77
77
  run: ({ caller }, _toolCallId, input) => {
78
78
  const view = runtime().view(caller.runId);
79
79
  const actor = actorByReference(view.actors, input.actor);
80
- if (!actor) throw new Error(`Unbekannter Actor in diesem Run: ${input.actor}`);
80
+ if (!actor) throw new Error(`Unknown actor in this run: ${input.actor}`);
81
81
  return { actorId: actor.id, handle: actor.handle, ...compactTranscript(runtime().events(caller.runId), actor.id, input.maxChars) };
82
82
  }
83
83
  });
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../plugins/ragents.transcript/server/index.ts", "../../../plugins/ragents.transcript/server/transcript.ts"],
4
- "sourcesContent": ["import type { RAgentsPlugin, ToolContributor } from \"@ragents/engine\";\nimport { toolDescriptorFrom } from \"@ragents/host/plugin-support/agent-tool.js\";\nimport type { PluginModule } from \"@ragents/host/plugin-support/plugin-module.js\";\nimport { runtimeProviderToken } from \"@ragents/host/ragents/host-services.js\";\nimport { canReadTranscripts, createTranscriptTool, transcriptToolMetadata } from \"./transcript.js\";\n\nconst transcriptPlugin: RAgentsPlugin = {\n manifest: { id: \"ragents.transcript\" },\n register: (host) => {\n const runtime = host.service(runtimeProviderToken);\n const contributor: ToolContributor = {\n name: \"ragents.transcript\",\n descriptors: [toolDescriptorFrom(transcriptToolMetadata, canReadTranscripts)],\n tools: () => [createTranscriptTool(runtime)],\n };\n host.functions(contributor);\n },\n};\n\nexport const plugin: PluginModule = { requires: [\"ragents.orchestration\"], create: () => transcriptPlugin };\n", "import { Type } from \"typebox\";\nimport { actorByReference, defineRunFunction, defineToolAvailability, holdsUsable, type JournalEvent, type Orchestration, type RunFunction } from \"@ragents/engine\";\n\nexport interface CompactTranscript { text: string; lines: number; truncated: boolean }\n\nconst defaultMaxChars = 20_000;\nconst markerReserve = 50;\nconst collapse = (text: string, limit: number): string => {\n const flat = text.replace(/\\s+/g, \" \").trim();\n return flat.length > limit ? `${flat.slice(0, limit - 3)}...` : flat;\n};\nconst compactJson = (value: unknown, limit: number): string => collapse(typeof value === \"string\" ? value : JSON.stringify(value) ?? \"\", limit);\n\nconst lineOf = (event: JournalEvent, actorId: string): string | undefined => {\n if (event.type === \"actor.input.enqueued\") {\n if (event.payload.actorId !== actorId) return undefined;\n return event.payload.content === undefined ? `> [Ereignis ${event.payload.sourceEventIds[0]}]` : `> ${collapse(event.payload.content, 1000)}`;\n }\n if (event.actorId !== actorId) return undefined;\n switch (event.type) {\n case \"model.output.completed\": return event.payload.text.trim() ? collapse(event.payload.text, 4000) : undefined;\n case \"tool.call.started\": return `[${event.payload.name}] ${compactJson(event.payload.input, 200)}`;\n case \"tool.call.completed\": return ` -> ${compactJson(event.payload.output, 300)}`;\n case \"tool.call.failed\": return ` -> Fehler: ${collapse(event.payload.error, 300)}`;\n case \"turn.finished\": return event.payload.outcome === \"failed\" ? `[Turn fehlgeschlagen: ${collapse(event.payload.reason, 300)}]` : undefined;\n case \"turn.interrupted\": return `[Turn unterbrochen: ${collapse(event.payload.reason, 300)}]`;\n default: return undefined;\n }\n};\n\nexport function compactTranscript(events: readonly JournalEvent[], actorId: string, maxChars = defaultMaxChars): CompactTranscript {\n const lines = events.map((event) => lineOf(event, actorId)).filter((line): line is string => line !== undefined);\n const total = lines.reduce((sum, line) => sum + line.length + 1, 0);\n if (total <= maxChars) return { text: lines.join(\"\\n\"), lines: lines.length, truncated: false };\n let dropped = 0;\n let remaining = total;\n while (dropped < lines.length && remaining + markerReserve > maxChars) {\n remaining -= lines[dropped]!.length + 1;\n dropped += 1;\n }\n const kept = lines.slice(dropped);\n return { text: [`[... ${dropped} fr\u00FChere Zeilen ausgelassen]`, ...kept].join(\"\\n\"), lines: kept.length, truncated: true };\n}\n\nexport const transcriptToolMetadata = {\n name: \"actor_transcript\",\n label: \"Verlauf verdichten\",\n description: \"Liefert den Verlauf eines Actors dieses Runs als kompaktes Transkript: Eingaben, Antworttexte und Werkzeugaufrufe je eine Zeile, Ergebnisse gek\u00FCrzt, ohne Reasoning. F\u00FCr \u00DCbergaben, Statusberichte und Zusammenfassungen.\",\n} as const;\n\nexport const canReadTranscripts = defineToolAvailability({\n availability: \"conditional\",\n availabilityDetail: \"F\u00FCr Agenten und Skript-Actors mit der Capability event.subscribe.\",\n}, (actor) => actor.kind !== \"human\" && holdsUsable(actor, \"event.subscribe\"));\n\nexport const createTranscriptTool = (runtime: () => Orchestration): RunFunction =>\n defineRunFunction({\n ...transcriptToolMetadata,\n schema: Type.Object({\n actor: Type.String({ minLength: 1, description: \"Handle mit oder ohne @ oder ID eines Actors dieses Runs\" }),\n maxChars: Type.Optional(Type.Integer({ minimum: 200, maximum: 200_000, description: `Obergrenze in Zeichen, Standard ${defaultMaxChars}; die \u00E4ltesten Zeilen entfallen zuerst` })),\n }, { additionalProperties: false }),\n resultSchema: Type.Object({\n actorId: Type.String(),\n handle: Type.String(),\n text: Type.String(),\n lines: Type.Integer({ minimum: 0 }),\n truncated: Type.Boolean(),\n }, { additionalProperties: false }),\n available: canReadTranscripts,\n run: ({ caller }, _toolCallId, input) => {\n const view = runtime().view(caller.runId);\n const actor = actorByReference(view.actors, input.actor);\n if (!actor) throw new Error(`Unbekannter Actor in diesem Run: ${input.actor}`);\n return { actorId: actor.id, handle: actor.handle, ...compactTranscript(runtime().events(caller.runId), actor.id, input.maxChars) };\n },\n });\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import type { RAgentsPlugin, ToolContributor } from \"@ragents/engine\";\nimport { toolDescriptorFrom } from \"@ragents/host/plugin-support/agent-tool.js\";\nimport type { PluginModule } from \"@ragents/host/plugin-support/plugin-module.js\";\nimport { runtimeProviderToken } from \"@ragents/host/ragents/host-services.js\";\nimport { canReadTranscripts, createTranscriptTool, transcriptToolMetadata } from \"./transcript.js\";\n\nconst transcriptPlugin: RAgentsPlugin = {\n manifest: { id: \"ragents.transcript\" },\n register: (host) => {\n const runtime = host.service(runtimeProviderToken);\n const contributor: ToolContributor = {\n name: \"ragents.transcript\",\n descriptors: [toolDescriptorFrom(transcriptToolMetadata, canReadTranscripts)],\n tools: () => [createTranscriptTool(runtime)],\n };\n host.functions(contributor);\n },\n};\n\nexport const plugin: PluginModule = { requires: [\"ragents.orchestration\"], create: () => transcriptPlugin };\n", "import { Type } from \"typebox\";\nimport { actorByReference, defineRunFunction, defineToolAvailability, holdsUsable, type JournalEvent, type Orchestration, type RunFunction } from \"@ragents/engine\";\n\nexport interface CompactTranscript { text: string; lines: number; truncated: boolean }\n\nconst defaultMaxChars = 20_000;\nconst markerReserve = 50;\nconst collapse = (text: string, limit: number): string => {\n const flat = text.replace(/\\s+/g, \" \").trim();\n return flat.length > limit ? `${flat.slice(0, limit - 3)}...` : flat;\n};\nconst compactJson = (value: unknown, limit: number): string => collapse(typeof value === \"string\" ? value : JSON.stringify(value) ?? \"\", limit);\n\nconst lineOf = (event: JournalEvent, actorId: string): string | undefined => {\n if (event.type === \"actor.input.enqueued\") {\n if (event.payload.actorId !== actorId) return undefined;\n return event.payload.content === undefined ? `> [Event ${event.payload.sourceEventIds[0]}]` : `> ${collapse(event.payload.content, 1000)}`;\n }\n if (event.actorId !== actorId) return undefined;\n switch (event.type) {\n case \"model.output.completed\": return event.payload.text.trim() ? collapse(event.payload.text, 4000) : undefined;\n case \"tool.call.started\": return `[${event.payload.name}] ${compactJson(event.payload.input, 200)}`;\n case \"tool.call.completed\": return ` -> ${compactJson(event.payload.output, 300)}`;\n case \"tool.call.failed\": return ` -> Error: ${collapse(event.payload.error, 300)}`;\n case \"turn.finished\": return event.payload.outcome === \"failed\" ? `[Turn failed: ${collapse(event.payload.reason, 300)}]` : undefined;\n case \"turn.interrupted\": return `[Turn interrupted: ${collapse(event.payload.reason, 300)}]`;\n default: return undefined;\n }\n};\n\nexport function compactTranscript(events: readonly JournalEvent[], actorId: string, maxChars = defaultMaxChars): CompactTranscript {\n const lines = events.map((event) => lineOf(event, actorId)).filter((line): line is string => line !== undefined);\n const total = lines.reduce((sum, line) => sum + line.length + 1, 0);\n if (total <= maxChars) return { text: lines.join(\"\\n\"), lines: lines.length, truncated: false };\n let dropped = 0;\n let remaining = total;\n while (dropped < lines.length && remaining + markerReserve > maxChars) {\n remaining -= lines[dropped]!.length + 1;\n dropped += 1;\n }\n const kept = lines.slice(dropped);\n return { text: [`[... ${dropped} earlier lines omitted]`, ...kept].join(\"\\n\"), lines: kept.length, truncated: true };\n}\n\nexport const transcriptToolMetadata = {\n name: \"actor_transcript\",\n label: \"Compact history\",\n description: \"Returns the history of an actor of this run as a compact transcript: inputs, answer texts and tool calls one line each, results shortened, without reasoning. For handovers, status reports and summaries.\",\n} as const;\n\nexport const canReadTranscripts = defineToolAvailability({\n availability: \"conditional\",\n availabilityDetail: \"For agents and script actors with the capability event.subscribe.\",\n}, (actor) => actor.kind !== \"human\" && holdsUsable(actor, \"event.subscribe\"));\n\nexport const createTranscriptTool = (runtime: () => Orchestration): RunFunction =>\n defineRunFunction({\n ...transcriptToolMetadata,\n schema: Type.Object({\n actor: Type.String({ minLength: 1, description: \"Handle with or without @, or ID of an actor of this run\" }),\n maxChars: Type.Optional(Type.Integer({ minimum: 200, maximum: 200_000, description: `Upper limit in characters, default ${defaultMaxChars}; the oldest lines are dropped first` })),\n }, { additionalProperties: false }),\n resultSchema: Type.Object({\n actorId: Type.String(),\n handle: Type.String(),\n text: Type.String(),\n lines: Type.Integer({ minimum: 0 }),\n truncated: Type.Boolean(),\n }, { additionalProperties: false }),\n available: canReadTranscripts,\n run: ({ caller }, _toolCallId, input) => {\n const view = runtime().view(caller.runId);\n const actor = actorByReference(view.actors, input.actor);\n if (!actor) throw new Error(`Unknown actor in this run: ${input.actor}`);\n return { actorId: actor.id, handle: actor.handle, ...compactTranscript(runtime().events(caller.runId), actor.id, input.maxChars) };\n },\n });\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -24,8 +24,8 @@
24
24
  },
25
25
  "web": {}
26
26
  },
27
- "stand": "f5cade80192041cee54457035b293425a10f1de42b49f1d804117ad7951c1b00",
28
- "sourceStand": "9dbce11378acfb719036af91ece062e3e49ce8fbf448dff80695aaeab01524ea",
27
+ "stand": "007ee50ab186e3070930f23e9795210fa36c723365657325d5440cc2f0b81d60",
28
+ "sourceStand": "681876d879d89f466c5d264590dd173c210ed5f0ea439bd4e90a3059df696677",
29
29
  "server": "server/index.js",
30
30
  "exports": {
31
31
  "server": {