@rho-workspace/rho 0.5.3 → 0.5.5

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 (277) hide show
  1. package/README.md +24 -5
  2. package/dist/browser-access.js +3 -2
  3. package/dist/capabilities.d.ts +29 -2
  4. package/dist/capabilities.js +79 -2
  5. package/dist/cli.js +237 -99
  6. package/dist/contract.generated.d.ts +441 -16
  7. package/dist/contract.generated.js +1 -1
  8. package/dist/contracts/owners.generated.js +459 -10
  9. package/dist/conversation-presentation.d.ts +3 -1
  10. package/dist/conversation-presentation.js +16 -6
  11. package/dist/conversations.d.ts +10 -6
  12. package/dist/conversations.js +17 -13
  13. package/dist/discovery.d.ts +1 -0
  14. package/dist/discovery.js +3 -3
  15. package/dist/extension-contract.d.ts +99 -0
  16. package/dist/extension-contract.js +52 -0
  17. package/dist/extension-directory.d.ts +9 -0
  18. package/dist/extension-directory.js +11 -0
  19. package/dist/extension-worker.d.ts +1 -0
  20. package/dist/extension-worker.js +36 -0
  21. package/dist/extensions.d.ts +157 -0
  22. package/dist/extensions.js +349 -0
  23. package/dist/installs.d.ts +11 -0
  24. package/dist/installs.js +179 -0
  25. package/dist/plugin-cli.d.ts +1 -0
  26. package/dist/plugin-cli.js +139 -0
  27. package/dist/plugin-inventory.json +18 -0
  28. package/dist/plugins.d.ts +3 -3
  29. package/dist/project-notes.js +2 -0
  30. package/dist/project-work.d.ts +3 -1
  31. package/dist/project-work.js +15 -2
  32. package/dist/protocol.d.ts +7 -0
  33. package/dist/protocol.js +11 -7
  34. package/dist/screen-check-skill.d.ts +2 -0
  35. package/dist/screen-check-skill.js +39 -0
  36. package/dist/server.d.ts +6 -1
  37. package/dist/server.js +105 -15
  38. package/dist/web/.vite/manifest.json +65 -65
  39. package/dist/web/assets/{canvas-BXhC8RDZ.js → canvas-D8rDdfDz.js} +1 -1
  40. package/dist/web/assets/choices-b0XhrGQV.js +1 -0
  41. package/dist/web/assets/{console-e1P5qYQ5.js → console-BSjLGe0T.js} +1 -1
  42. package/dist/web/assets/{dist-Dd3iAGFy.js → dist-Buk0lwzI.js} +2 -2
  43. package/dist/web/assets/dist-Cw8hRIlT.js +1 -0
  44. package/dist/web/assets/dist-Tzoe_zm-.js +3 -0
  45. package/dist/web/assets/{dist-DEorbOW0.js → dist-foH9IKc6.js} +1 -1
  46. package/dist/web/assets/explore-in-BVUy3ZW_.js +1 -0
  47. package/dist/web/assets/graph-1OdIJ9l7.js +2 -0
  48. package/dist/web/assets/index-CsC3sTRq.css +1 -0
  49. package/dist/web/assets/{index-BYuKpyoi.js → index-CxmItXqa.js} +220 -121
  50. package/dist/web/assets/{notes-meaning-B3HFbh84.js → notes-meaning-pVbbQUGP.js} +1 -1
  51. package/dist/web/assets/overview-B9UtVJ32.js +6 -0
  52. package/dist/web/assets/preview-CksD_5KS.js +1 -0
  53. package/dist/web/assets/{review-BVh9jWMB.js → review-CMxQlQ-C.js} +1 -1
  54. package/dist/web/assets/{skills-DPaEYkln.js → skills-BFNSyrnD.js} +1 -1
  55. package/dist/web/assets/{skills-work-dvjfy_tu.js → skills-work-BGPSnF_I.js} +1 -1
  56. package/dist/web/assets/{studio-process-BYm8mjRJ.js → studio-process-CsRoTHOh.js} +2 -2
  57. package/dist/web/assets/{timeline-events-CDZ7wiJX.js → timeline-events-BbuuFWHV.js} +1 -1
  58. package/dist/web/assets/{work-turns-BeCt303c.js → work-turns-BvJlIMmA.js} +1 -1
  59. package/dist/web/assets/workspace-CWlkjLNx.js +5 -0
  60. package/dist/web/composition.json +80 -80
  61. package/dist/web/index.html +3 -3
  62. package/dist/web/renderer.json +1 -1
  63. package/dist/web-assets.d.ts +2 -1
  64. package/dist/web-assets.js +3 -2
  65. package/dist/work-contract.js +2 -2
  66. package/docs/FRONTEND.md +30 -14
  67. package/docs/HEADLESS.md +60 -14
  68. package/docs/PLUGIN-AUTHORING.md +4 -0
  69. package/docs/THIRD-PARTY-PLUGINS.md +190 -0
  70. package/example/pa14-qs/.rho/rho/conversations/c-67f77cfebaba2cea.json +1 -1
  71. package/example/pa14-qs/.rho/rho/conversations/c-91aa2e46b1ac1a6c.json +1 -1
  72. package/example/pa14-qs/.rho/rho/conversations/c-fa24dfd80dfe4bcb.json +1 -1
  73. package/node_modules/@hono/node-server/dist/index.js +11 -0
  74. package/node_modules/@hono/node-server/dist/index.mjs +11 -0
  75. package/node_modules/@hono/node-server/dist/listener.js +11 -0
  76. package/node_modules/@hono/node-server/dist/listener.mjs +11 -0
  77. package/node_modules/@hono/node-server/dist/request.js +11 -0
  78. package/node_modules/@hono/node-server/dist/request.mjs +11 -0
  79. package/node_modules/@hono/node-server/dist/server.js +11 -0
  80. package/node_modules/@hono/node-server/dist/server.mjs +11 -0
  81. package/node_modules/@hono/node-server/dist/vercel.js +11 -0
  82. package/node_modules/@hono/node-server/dist/vercel.mjs +11 -0
  83. package/node_modules/@hono/node-server/package.json +1 -1
  84. package/node_modules/@rho-workspace/plugin-agent/README.md +42 -1
  85. package/node_modules/@rho-workspace/plugin-agent/dist/acp-conversation.js +14 -3
  86. package/node_modules/@rho-workspace/plugin-agent/dist/activity-normalize.d.ts +1 -0
  87. package/node_modules/@rho-workspace/plugin-agent/dist/activity-normalize.js +2 -2
  88. package/node_modules/@rho-workspace/plugin-agent/dist/conversation.d.ts +1 -0
  89. package/node_modules/@rho-workspace/plugin-agent/dist/conversation.js +1 -0
  90. package/node_modules/@rho-workspace/plugin-agent/dist/dsh-session.d.ts +6 -0
  91. package/node_modules/@rho-workspace/plugin-agent/dist/dsh-session.js +174 -0
  92. package/node_modules/@rho-workspace/plugin-agent/dist/external-session-contract.d.ts +82 -0
  93. package/node_modules/@rho-workspace/plugin-agent/dist/external-session-contract.js +15 -0
  94. package/node_modules/@rho-workspace/plugin-agent/dist/external-session.d.ts +73 -0
  95. package/node_modules/@rho-workspace/plugin-agent/dist/external-session.js +190 -0
  96. package/node_modules/@rho-workspace/plugin-agent/dist/generic-acp.d.ts +11 -0
  97. package/node_modules/@rho-workspace/plugin-agent/dist/generic-acp.js +7 -0
  98. package/node_modules/@rho-workspace/plugin-agent/dist/index.d.ts +373 -0
  99. package/node_modules/@rho-workspace/plugin-agent/dist/index.js +1 -0
  100. package/node_modules/@rho-workspace/plugin-agent/dist/mcp.js +5 -1
  101. package/node_modules/@rho-workspace/plugin-agent/dist/operations.d.ts +33 -0
  102. package/node_modules/@rho-workspace/plugin-agent/dist/operations.js +3 -0
  103. package/node_modules/@rho-workspace/plugin-agent/dist/presentation.d.ts +14 -0
  104. package/node_modules/@rho-workspace/plugin-agent/dist/presentation.js +2 -0
  105. package/node_modules/@rho-workspace/plugin-agent/dist/ui-external-session.d.ts +15 -0
  106. package/node_modules/@rho-workspace/plugin-agent/dist/ui-external-session.js +37 -0
  107. package/node_modules/@rho-workspace/plugin-agent/package.json +5 -1
  108. package/node_modules/@rho-workspace/plugin-annotations/package.json +1 -1
  109. package/node_modules/@rho-workspace/plugin-documents/README.md +4 -0
  110. package/node_modules/@rho-workspace/plugin-documents/dist/index.d.ts +3 -0
  111. package/node_modules/@rho-workspace/plugin-documents/dist/index.js +1 -1
  112. package/node_modules/@rho-workspace/plugin-documents/package.json +1 -1
  113. package/node_modules/@rho-workspace/plugin-kernel/README.md +71 -10
  114. package/node_modules/@rho-workspace/plugin-kernel/dist/code.d.ts +2 -0
  115. package/node_modules/@rho-workspace/plugin-kernel/dist/code.js +4 -1
  116. package/node_modules/@rho-workspace/plugin-kernel/dist/contract.js +5 -0
  117. package/node_modules/@rho-workspace/plugin-kernel/dist/index.d.ts +7 -0
  118. package/node_modules/@rho-workspace/plugin-kernel/dist/index.js +55 -8
  119. package/node_modules/@rho-workspace/plugin-kernel/dist/lineage.d.ts +9 -6
  120. package/node_modules/@rho-workspace/plugin-kernel/dist/lineage.js +18 -41
  121. package/node_modules/@rho-workspace/plugin-kernel/dist/operations.js +5 -2
  122. package/node_modules/@rho-workspace/plugin-kernel/dist/script-flow.d.ts +39 -0
  123. package/node_modules/@rho-workspace/plugin-kernel/dist/script-flow.js +661 -0
  124. package/node_modules/@rho-workspace/plugin-kernel/dist/ui-base.d.ts +3 -0
  125. package/node_modules/@rho-workspace/plugin-kernel/dist/ui-base.js +10 -0
  126. package/node_modules/@rho-workspace/plugin-kernel/dist/ui-flow.d.ts +38 -4
  127. package/node_modules/@rho-workspace/plugin-kernel/dist/ui-flow.js +194 -97
  128. package/node_modules/@rho-workspace/plugin-kernel/dist/ui-notebook-work.js +1 -2
  129. package/node_modules/@rho-workspace/plugin-kernel/dist/ui-notebook.d.ts +10 -2
  130. package/node_modules/@rho-workspace/plugin-kernel/dist/ui-notebook.js +79 -18
  131. package/node_modules/@rho-workspace/plugin-kernel/dist/ui-styles.js +115 -45
  132. package/node_modules/@rho-workspace/plugin-kernel/dist/ui.d.ts +1 -1
  133. package/node_modules/@rho-workspace/plugin-kernel/dist/ui.js +1 -1
  134. package/node_modules/@rho-workspace/plugin-kernel/dist/value-graph.d.ts +63 -0
  135. package/node_modules/@rho-workspace/plugin-kernel/dist/value-graph.js +344 -0
  136. package/node_modules/@rho-workspace/plugin-kernel/package.json +1 -1
  137. package/node_modules/@rho-workspace/plugin-kernel/runners/runner.R +6 -3
  138. package/node_modules/@rho-workspace/plugin-kernel/runners/runner.py +6 -3
  139. package/node_modules/express-rate-limit/dist/index.cjs +1 -1
  140. package/node_modules/express-rate-limit/dist/index.mjs +1 -1
  141. package/node_modules/express-rate-limit/package.json +1 -1
  142. package/node_modules/ip-address/dist/ipv6.js +1 -1
  143. package/node_modules/ip-address/package.json +1 -1
  144. package/node_modules/playwright-core/LICENSE +202 -0
  145. package/node_modules/playwright-core/NOTICE +5 -0
  146. package/node_modules/playwright-core/ThirdPartyNotices.txt +13 -0
  147. package/node_modules/playwright-core/bin/install_media_pack.ps1 +5 -0
  148. package/node_modules/playwright-core/bin/install_webkit_wsl.ps1 +33 -0
  149. package/node_modules/playwright-core/bin/reinstall_chrome_beta_linux.sh +42 -0
  150. package/node_modules/playwright-core/bin/reinstall_chrome_beta_mac.sh +13 -0
  151. package/node_modules/playwright-core/bin/reinstall_chrome_beta_win.ps1 +24 -0
  152. package/node_modules/playwright-core/bin/reinstall_chrome_stable_linux.sh +42 -0
  153. package/node_modules/playwright-core/bin/reinstall_chrome_stable_mac.sh +12 -0
  154. package/node_modules/playwright-core/bin/reinstall_chrome_stable_win.ps1 +24 -0
  155. package/node_modules/playwright-core/bin/reinstall_msedge_beta_linux.sh +48 -0
  156. package/node_modules/playwright-core/bin/reinstall_msedge_beta_mac.sh +11 -0
  157. package/node_modules/playwright-core/bin/reinstall_msedge_beta_win.ps1 +23 -0
  158. package/node_modules/playwright-core/bin/reinstall_msedge_dev_linux.sh +48 -0
  159. package/node_modules/playwright-core/bin/reinstall_msedge_dev_mac.sh +11 -0
  160. package/node_modules/playwright-core/bin/reinstall_msedge_dev_win.ps1 +23 -0
  161. package/node_modules/playwright-core/bin/reinstall_msedge_stable_linux.sh +48 -0
  162. package/node_modules/playwright-core/bin/reinstall_msedge_stable_mac.sh +11 -0
  163. package/node_modules/playwright-core/bin/reinstall_msedge_stable_win.ps1 +24 -0
  164. package/node_modules/playwright-core/browsers.json +52 -0
  165. package/node_modules/playwright-core/cli.js +22 -0
  166. package/node_modules/playwright-core/index.js +17 -0
  167. package/node_modules/playwright-core/index.mjs +28 -0
  168. package/node_modules/playwright-core/lib/bootstrap.js +149 -0
  169. package/node_modules/playwright-core/lib/coreBundle.js +78041 -0
  170. package/node_modules/playwright-core/lib/entry/cliDaemon.js +5 -0
  171. package/node_modules/playwright-core/lib/entry/dashboardApp.js +3 -0
  172. package/node_modules/playwright-core/lib/entry/mcp.js +10 -0
  173. package/node_modules/playwright-core/lib/entry/oopBrowserDownload.js +3 -0
  174. package/node_modules/playwright-core/lib/package.js +50 -0
  175. package/node_modules/playwright-core/lib/server/chromium/appIcon.png +0 -0
  176. package/node_modules/playwright-core/lib/server/electron/loader.js +123 -0
  177. package/node_modules/playwright-core/lib/serverRegistry.js +1939 -0
  178. package/node_modules/playwright-core/lib/serverRegistry.js.LICENSE +65 -0
  179. package/node_modules/playwright-core/lib/tools/cli-client/channelSessions.js +141 -0
  180. package/node_modules/playwright-core/lib/tools/cli-client/cli.js +7 -0
  181. package/node_modules/playwright-core/lib/tools/cli-client/help.json +808 -0
  182. package/node_modules/playwright-core/lib/tools/cli-client/minimist.js +128 -0
  183. package/node_modules/playwright-core/lib/tools/cli-client/output.js +352 -0
  184. package/node_modules/playwright-core/lib/tools/cli-client/program.js +422 -0
  185. package/node_modules/playwright-core/lib/tools/cli-client/registry.js +180 -0
  186. package/node_modules/playwright-core/lib/tools/cli-client/session.js +261 -0
  187. package/node_modules/playwright-core/lib/tools/dashboard/appIcon.png +0 -0
  188. package/node_modules/playwright-core/lib/tools/utils/extension.js +112 -0
  189. package/node_modules/playwright-core/lib/tools/utils/socketConnection.js +108 -0
  190. package/node_modules/playwright-core/lib/utilsBundle.js +86078 -0
  191. package/node_modules/playwright-core/lib/utilsBundle.js.LICENSE +1890 -0
  192. package/node_modules/playwright-core/lib/vite/dashboard/assets/codeMirrorModule--QdMvsKi.css +1 -0
  193. package/node_modules/playwright-core/lib/vite/dashboard/assets/codeMirrorModule-CQ8RZGBm.js +32 -0
  194. package/node_modules/playwright-core/lib/vite/dashboard/assets/codicon-DCmgc-ay.ttf +0 -0
  195. package/node_modules/playwright-core/lib/vite/dashboard/assets/firefox-1bWoP6pv.svg +1 -0
  196. package/node_modules/playwright-core/lib/vite/dashboard/assets/firefox-beta-k3eOH_eK.svg +1 -0
  197. package/node_modules/playwright-core/lib/vite/dashboard/assets/firefox-nightly-Cp5nfeDT.svg +1 -0
  198. package/node_modules/playwright-core/lib/vite/dashboard/assets/index-AwgwcYie.css +1 -0
  199. package/node_modules/playwright-core/lib/vite/dashboard/assets/index-hRvO4yU2.js +12 -0
  200. package/node_modules/playwright-core/lib/vite/dashboard/assets/safari-na3_-uQk.svg +1 -0
  201. package/node_modules/playwright-core/lib/vite/dashboard/index.html +29 -0
  202. package/node_modules/playwright-core/lib/vite/dashboard/playwright-logo.svg +24 -0
  203. package/node_modules/playwright-core/lib/vite/htmlReport/index.html +16 -0
  204. package/node_modules/playwright-core/lib/vite/htmlReport/report.css +2 -0
  205. package/node_modules/playwright-core/lib/vite/htmlReport/report.js +32 -0
  206. package/node_modules/playwright-core/lib/vite/recorder/assets/codeMirrorModule--QdMvsKi.css +1 -0
  207. package/node_modules/playwright-core/lib/vite/recorder/assets/codeMirrorModule-DK72OMRi.js +32 -0
  208. package/node_modules/playwright-core/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf +0 -0
  209. package/node_modules/playwright-core/lib/vite/recorder/assets/index-BZpYJZ-P.css +1 -0
  210. package/node_modules/playwright-core/lib/vite/recorder/assets/index-Cn0mmDuv.js +129 -0
  211. package/node_modules/playwright-core/lib/vite/recorder/index.html +29 -0
  212. package/node_modules/playwright-core/lib/vite/recorder/playwright-logo.svg +9 -0
  213. package/node_modules/playwright-core/lib/vite/traceViewer/assets/codeMirrorModule-BEB2e8M3.js +32 -0
  214. package/node_modules/playwright-core/lib/vite/traceViewer/assets/defaultSettingsView-D-g2vrvf.js +184 -0
  215. package/node_modules/playwright-core/lib/vite/traceViewer/assets/urlMatch-L3liM589.js +1 -0
  216. package/node_modules/playwright-core/lib/vite/traceViewer/assets/xtermModule-B794rD2Z.js +7 -0
  217. package/node_modules/playwright-core/lib/vite/traceViewer/codeMirrorModule.-QdMvsKi.css +1 -0
  218. package/node_modules/playwright-core/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
  219. package/node_modules/playwright-core/lib/vite/traceViewer/defaultSettingsView.C8BeHuxd.css +1 -0
  220. package/node_modules/playwright-core/lib/vite/traceViewer/index.B_TqY17P.css +1 -0
  221. package/node_modules/playwright-core/lib/vite/traceViewer/index.html +44 -0
  222. package/node_modules/playwright-core/lib/vite/traceViewer/index.oNry3Hjv.js +1 -0
  223. package/node_modules/playwright-core/lib/vite/traceViewer/manifest.webmanifest +16 -0
  224. package/node_modules/playwright-core/lib/vite/traceViewer/playwright-logo.svg +9 -0
  225. package/node_modules/playwright-core/lib/vite/traceViewer/snapshot.B_Jk1wbt.js +1 -0
  226. package/node_modules/playwright-core/lib/vite/traceViewer/snapshot.html +10 -0
  227. package/node_modules/playwright-core/lib/vite/traceViewer/sw.bundle.js +4 -0
  228. package/node_modules/playwright-core/lib/vite/traceViewer/uiMode.CYwC_gH1.js +5 -0
  229. package/node_modules/playwright-core/lib/vite/traceViewer/uiMode.CyMfwkXJ.css +1 -0
  230. package/node_modules/playwright-core/lib/vite/traceViewer/uiMode.html +18 -0
  231. package/node_modules/playwright-core/lib/vite/traceViewer/xtermModule.kHJ-D0s7.css +1 -0
  232. package/node_modules/playwright-core/lib/webp_codec.LICENSE +173 -0
  233. package/node_modules/playwright-core/lib/webp_codec.wasm +0 -0
  234. package/node_modules/playwright-core/lib/xdg-open +1267 -0
  235. package/node_modules/playwright-core/package.json +34 -0
  236. package/package.json +13 -7
  237. package/protocol/index.json +75 -21
  238. package/protocol/operations/agent.sessions.list.json +100 -0
  239. package/protocol/operations/agent.sessions.read.json +266 -0
  240. package/protocol/operations/conversation.settings.check.json +147 -4
  241. package/protocol/operations/conversation.settings.read.json +145 -3
  242. package/protocol/operations/conversation.settings.update.json +166 -4
  243. package/protocol/operations/conversation.start.json +2 -1
  244. package/protocol/operations/extension.call.json +132 -0
  245. package/protocol/operations/extension.content.json +78 -0
  246. package/protocol/operations/extension.describe.json +195 -0
  247. package/protocol/operations/extension.install.json +198 -0
  248. package/protocol/operations/extension.list.json +123 -0
  249. package/protocol/operations/extension.manage.json +55 -0
  250. package/protocol/operations/extension.read.json +112 -0
  251. package/protocol/operations/kernel.interrupt.json +20 -0
  252. package/protocol/operations/kernel.read.json +30 -0
  253. package/protocol/operations/kernel.run.json +36 -1
  254. package/protocol/operations/kernel.stop.json +10 -0
  255. package/protocol/operations/project.work.read.json +3 -2
  256. package/protocol/operations/session.grant.json +9 -0
  257. package/scripts/browser-checks.mjs +53 -0
  258. package/scripts/screen-check.mjs +193 -0
  259. package/scripts/third-party-acceptance.mjs +77 -0
  260. package/vendor/composition.json +111 -111
  261. package/vendor/rho-workspace-plugin-agent-0.4.29.tgz +0 -0
  262. package/vendor/rho-workspace-plugin-annotations-0.5.2.tgz +0 -0
  263. package/vendor/rho-workspace-plugin-documents-0.4.11.tgz +0 -0
  264. package/vendor/rho-workspace-plugin-kernel-0.5.5.tgz +0 -0
  265. package/web/theme.css +17 -2
  266. package/dist/web/assets/choices-B-y2OYvE.js +0 -1
  267. package/dist/web/assets/dist-CBM2oq6g.js +0 -1
  268. package/dist/web/assets/dist-CH56yNDn.js +0 -3
  269. package/dist/web/assets/explore-in-muWXOGOY.js +0 -1
  270. package/dist/web/assets/graph-CK-df5lh.js +0 -2
  271. package/dist/web/assets/index-DBd77u4a.css +0 -1
  272. package/dist/web/assets/overview-D1Ev2OC_.js +0 -6
  273. package/dist/web/assets/preview-HbmQKUGY.js +0 -1
  274. package/dist/web/assets/workspace-d5Hw_ClZ.js +0 -5
  275. package/vendor/rho-workspace-plugin-agent-0.4.27.tgz +0 -0
  276. package/vendor/rho-workspace-plugin-documents-0.4.10.tgz +0 -0
  277. package/vendor/rho-workspace-plugin-kernel-0.5.2.tgz +0 -0
@@ -141,6 +141,18 @@ export declare const plugin: {
141
141
  description: string;
142
142
  readOnly: true;
143
143
  runsCode: false;
144
+ } | {
145
+ order: number;
146
+ displayName: string;
147
+ description: string;
148
+ readOnly: true;
149
+ runsCode: false;
150
+ } | {
151
+ order: number;
152
+ displayName: string;
153
+ description: string;
154
+ readOnly: true;
155
+ runsCode: false;
144
156
  } | {
145
157
  order: number;
146
158
  displayName: string;
@@ -237,6 +249,18 @@ export declare const plugin: {
237
249
  description: string;
238
250
  readOnly: true;
239
251
  runsCode: false;
252
+ } | {
253
+ order: number;
254
+ displayName: string;
255
+ description: string;
256
+ readOnly: true;
257
+ runsCode: false;
258
+ } | {
259
+ order: number;
260
+ displayName: string;
261
+ description: string;
262
+ readOnly: true;
263
+ runsCode: false;
240
264
  } | {
241
265
  order: number;
242
266
  displayName: string;
@@ -333,6 +357,234 @@ export declare const plugin: {
333
357
  description: string;
334
358
  readOnly: true;
335
359
  runsCode: false;
360
+ } | {
361
+ order: number;
362
+ displayName: string;
363
+ description: string;
364
+ readOnly: true;
365
+ runsCode: false;
366
+ } | {
367
+ order: number;
368
+ displayName: string;
369
+ description: string;
370
+ readOnly: true;
371
+ runsCode: false;
372
+ } | {
373
+ order: number;
374
+ displayName: string;
375
+ description: string;
376
+ readOnly: false;
377
+ runsCode: false;
378
+ } | {
379
+ order: number;
380
+ displayName: string;
381
+ description: string;
382
+ readOnly: false;
383
+ runsCode: false;
384
+ } | {
385
+ order: number;
386
+ displayName: string;
387
+ description: string;
388
+ readOnly: false;
389
+ runsCode: false;
390
+ } | {
391
+ order: number;
392
+ displayName: string;
393
+ description: string;
394
+ readOnly: true;
395
+ runsCode: false;
396
+ } | {
397
+ order: number;
398
+ displayName: string;
399
+ description: string;
400
+ readOnly: false;
401
+ runsCode: false;
402
+ } | {
403
+ order: number;
404
+ displayName: string;
405
+ description: string;
406
+ readOnly: true;
407
+ runsCode: false;
408
+ } | {
409
+ order: number;
410
+ displayName: string;
411
+ description: string;
412
+ readOnly: true;
413
+ runsCode: false;
414
+ } | {
415
+ order: number;
416
+ displayName: string;
417
+ description: string;
418
+ readOnly: false;
419
+ runsCode: false;
420
+ } | {
421
+ order: number;
422
+ displayName: string;
423
+ description: string;
424
+ readOnly: false;
425
+ runsCode: false;
426
+ } | {
427
+ order: number;
428
+ displayName: string;
429
+ description: string;
430
+ readOnly: false;
431
+ runsCode: false;
432
+ } | {
433
+ order: number;
434
+ displayName: string;
435
+ description: string;
436
+ readOnly: true;
437
+ runsCode: false;
438
+ };
439
+ version: "2.0";
440
+ } | {
441
+ requires: string[];
442
+ inputSchema: {
443
+ type: string;
444
+ properties: Record<string, any>;
445
+ required: string[];
446
+ additionalProperties: boolean;
447
+ };
448
+ outputSchema: {
449
+ type: string;
450
+ properties: Record<string, any>;
451
+ required: string[];
452
+ additionalProperties: boolean;
453
+ };
454
+ effect: "read";
455
+ method: string;
456
+ presentation: {
457
+ order: number;
458
+ displayName: string;
459
+ description: string;
460
+ readOnly: true;
461
+ runsCode: false;
462
+ } | {
463
+ order: number;
464
+ displayName: string;
465
+ description: string;
466
+ readOnly: true;
467
+ runsCode: false;
468
+ } | {
469
+ order: number;
470
+ displayName: string;
471
+ description: string;
472
+ readOnly: true;
473
+ runsCode: false;
474
+ } | {
475
+ order: number;
476
+ displayName: string;
477
+ description: string;
478
+ readOnly: true;
479
+ runsCode: false;
480
+ } | {
481
+ order: number;
482
+ displayName: string;
483
+ description: string;
484
+ readOnly: false;
485
+ runsCode: false;
486
+ } | {
487
+ order: number;
488
+ displayName: string;
489
+ description: string;
490
+ readOnly: false;
491
+ runsCode: false;
492
+ } | {
493
+ order: number;
494
+ displayName: string;
495
+ description: string;
496
+ readOnly: false;
497
+ runsCode: false;
498
+ } | {
499
+ order: number;
500
+ displayName: string;
501
+ description: string;
502
+ readOnly: true;
503
+ runsCode: false;
504
+ } | {
505
+ order: number;
506
+ displayName: string;
507
+ description: string;
508
+ readOnly: false;
509
+ runsCode: false;
510
+ } | {
511
+ order: number;
512
+ displayName: string;
513
+ description: string;
514
+ readOnly: true;
515
+ runsCode: false;
516
+ } | {
517
+ order: number;
518
+ displayName: string;
519
+ description: string;
520
+ readOnly: true;
521
+ runsCode: false;
522
+ } | {
523
+ order: number;
524
+ displayName: string;
525
+ description: string;
526
+ readOnly: false;
527
+ runsCode: false;
528
+ } | {
529
+ order: number;
530
+ displayName: string;
531
+ description: string;
532
+ readOnly: false;
533
+ runsCode: false;
534
+ } | {
535
+ order: number;
536
+ displayName: string;
537
+ description: string;
538
+ readOnly: false;
539
+ runsCode: false;
540
+ } | {
541
+ order: number;
542
+ displayName: string;
543
+ description: string;
544
+ readOnly: true;
545
+ runsCode: false;
546
+ };
547
+ version: "2.0";
548
+ } | {
549
+ requires: string[];
550
+ inputSchema: {
551
+ type: string;
552
+ properties: Record<string, any>;
553
+ required: string[];
554
+ additionalProperties: boolean;
555
+ };
556
+ outputSchema: {
557
+ type: string;
558
+ properties: Record<string, any>;
559
+ required: string[];
560
+ additionalProperties: boolean;
561
+ };
562
+ effect: "read";
563
+ method: string;
564
+ presentation: {
565
+ order: number;
566
+ displayName: string;
567
+ description: string;
568
+ readOnly: true;
569
+ runsCode: false;
570
+ } | {
571
+ order: number;
572
+ displayName: string;
573
+ description: string;
574
+ readOnly: true;
575
+ runsCode: false;
576
+ } | {
577
+ order: number;
578
+ displayName: string;
579
+ description: string;
580
+ readOnly: true;
581
+ runsCode: false;
582
+ } | {
583
+ order: number;
584
+ displayName: string;
585
+ description: string;
586
+ readOnly: true;
587
+ runsCode: false;
336
588
  } | {
337
589
  order: number;
338
590
  displayName: string;
@@ -541,6 +793,18 @@ export declare const plugin: {
541
793
  description: string;
542
794
  readOnly: true;
543
795
  runsCode: false;
796
+ } | {
797
+ order: number;
798
+ displayName: string;
799
+ description: string;
800
+ readOnly: true;
801
+ runsCode: false;
802
+ } | {
803
+ order: number;
804
+ displayName: string;
805
+ description: string;
806
+ readOnly: true;
807
+ runsCode: false;
544
808
  } | {
545
809
  order: number;
546
810
  displayName: string;
@@ -639,6 +903,18 @@ export declare const plugin: {
639
903
  description: string;
640
904
  readOnly: true;
641
905
  runsCode: false;
906
+ } | {
907
+ order: number;
908
+ displayName: string;
909
+ description: string;
910
+ readOnly: true;
911
+ runsCode: false;
912
+ } | {
913
+ order: number;
914
+ displayName: string;
915
+ description: string;
916
+ readOnly: true;
917
+ runsCode: false;
642
918
  } | {
643
919
  order: number;
644
920
  displayName: string;
@@ -765,6 +1041,18 @@ export declare const plugin: {
765
1041
  description: string;
766
1042
  readOnly: true;
767
1043
  runsCode: false;
1044
+ } | {
1045
+ order: number;
1046
+ displayName: string;
1047
+ description: string;
1048
+ readOnly: true;
1049
+ runsCode: false;
1050
+ } | {
1051
+ order: number;
1052
+ displayName: string;
1053
+ description: string;
1054
+ readOnly: true;
1055
+ runsCode: false;
768
1056
  } | {
769
1057
  order: number;
770
1058
  displayName: string;
@@ -893,6 +1181,18 @@ export declare const plugin: {
893
1181
  description: string;
894
1182
  readOnly: true;
895
1183
  runsCode: false;
1184
+ } | {
1185
+ order: number;
1186
+ displayName: string;
1187
+ description: string;
1188
+ readOnly: true;
1189
+ runsCode: false;
1190
+ } | {
1191
+ order: number;
1192
+ displayName: string;
1193
+ description: string;
1194
+ readOnly: true;
1195
+ runsCode: false;
896
1196
  } | {
897
1197
  order: number;
898
1198
  displayName: string;
@@ -979,6 +1279,18 @@ export declare const plugin: {
979
1279
  description: string;
980
1280
  readOnly: true;
981
1281
  runsCode: false;
1282
+ } | {
1283
+ order: number;
1284
+ displayName: string;
1285
+ description: string;
1286
+ readOnly: true;
1287
+ runsCode: false;
1288
+ } | {
1289
+ order: number;
1290
+ displayName: string;
1291
+ description: string;
1292
+ readOnly: true;
1293
+ runsCode: false;
982
1294
  } | {
983
1295
  order: number;
984
1296
  displayName: string;
@@ -1065,6 +1377,18 @@ export declare const plugin: {
1065
1377
  description: string;
1066
1378
  readOnly: true;
1067
1379
  runsCode: false;
1380
+ } | {
1381
+ order: number;
1382
+ displayName: string;
1383
+ description: string;
1384
+ readOnly: true;
1385
+ runsCode: false;
1386
+ } | {
1387
+ order: number;
1388
+ displayName: string;
1389
+ description: string;
1390
+ readOnly: true;
1391
+ runsCode: false;
1068
1392
  } | {
1069
1393
  order: number;
1070
1394
  displayName: string;
@@ -1151,6 +1475,18 @@ export declare const plugin: {
1151
1475
  description: string;
1152
1476
  readOnly: true;
1153
1477
  runsCode: false;
1478
+ } | {
1479
+ order: number;
1480
+ displayName: string;
1481
+ description: string;
1482
+ readOnly: true;
1483
+ runsCode: false;
1484
+ } | {
1485
+ order: number;
1486
+ displayName: string;
1487
+ description: string;
1488
+ readOnly: true;
1489
+ runsCode: false;
1154
1490
  } | {
1155
1491
  order: number;
1156
1492
  displayName: string;
@@ -1239,6 +1575,18 @@ export declare const plugin: {
1239
1575
  description: string;
1240
1576
  readOnly: true;
1241
1577
  runsCode: false;
1578
+ } | {
1579
+ order: number;
1580
+ displayName: string;
1581
+ description: string;
1582
+ readOnly: true;
1583
+ runsCode: false;
1584
+ } | {
1585
+ order: number;
1586
+ displayName: string;
1587
+ description: string;
1588
+ readOnly: true;
1589
+ runsCode: false;
1242
1590
  } | {
1243
1591
  order: number;
1244
1592
  displayName: string;
@@ -1327,6 +1675,18 @@ export declare const plugin: {
1327
1675
  description: string;
1328
1676
  readOnly: true;
1329
1677
  runsCode: false;
1678
+ } | {
1679
+ order: number;
1680
+ displayName: string;
1681
+ description: string;
1682
+ readOnly: true;
1683
+ runsCode: false;
1684
+ } | {
1685
+ order: number;
1686
+ displayName: string;
1687
+ description: string;
1688
+ readOnly: true;
1689
+ runsCode: false;
1330
1690
  } | {
1331
1691
  order: number;
1332
1692
  displayName: string;
@@ -1413,6 +1773,18 @@ export declare const plugin: {
1413
1773
  description: string;
1414
1774
  readOnly: true;
1415
1775
  runsCode: false;
1776
+ } | {
1777
+ order: number;
1778
+ displayName: string;
1779
+ description: string;
1780
+ readOnly: true;
1781
+ runsCode: false;
1782
+ } | {
1783
+ order: number;
1784
+ displayName: string;
1785
+ description: string;
1786
+ readOnly: true;
1787
+ runsCode: false;
1416
1788
  } | {
1417
1789
  order: number;
1418
1790
  displayName: string;
@@ -1601,3 +1973,4 @@ export declare const plugin: {
1601
1973
  proactivePush: string;
1602
1974
  };
1603
1975
  };
1976
+ export { listExternalSessions, readExternalSession } from './external-session.js';
@@ -307,3 +307,4 @@ export const plugin = { entryVersion: '1.0', id: 'agent', package: '@rho-workspa
307
307
  components: [{ id: 'rho.agent-note', version: '0.2.0', owner: 'rho-plugins.agent', bindings: {}, propsSchema: layeredSchemas.AgentNoteProps, ui: './ui', presentation: { displayName: 'Agent note', description: 'A plain presentation explanation with authenticated author and binding basis.', readOnly: true, runsCode: false } }],
308
308
  skills: [{ ...agentSkill, presentation: skillPresentation }, { ...feedbackSkill, presentation: { displayName: 'Business feedback', description: 'Reads original feedback, preserves current human edits and links an explicit reply.' } }, { ...presentationSkill, presentation: { displayName: 'Presentation', description: 'Enhances the assigned visible layout without business feedback or document access.' } }],
309
309
  agent: { id: 'claude-code-mcp', transport: 'stdio', modelLoop: 'external-client', contextDelivery: 'pull-tool-result', proactivePush: 'unsupported' } };
310
+ export { listExternalSessions, readExternalSession } from './external-session.js';
@@ -36,7 +36,11 @@ async function invoke(method, input = {}, contractRef) {
36
36
  const response = await new Promise((resolve, reject) => {
37
37
  const request = http.request(new URL('/api/v2/' + method, endpoint), { method: 'POST', signal: AbortSignal.timeout(allowance(input)),
38
38
  headers: { authorization: 'Bearer ' + c.token, 'content-type': 'application/json', 'content-length': Buffer.byteLength(body), ...(contractRef ? { 'x-rho-contract-ref': contractRef } : {}) } }, resolve);
39
- request.once('error', reject);
39
+ // A refused connection is the one failure whose outcome is known: nothing reached the
40
+ // service, so nothing ran. It is usually Rho not running, and the person can start it.
41
+ request.once('error', error => reject(error.code === 'ECONNREFUSED'
42
+ ? new Fault('unavailable', `Rho is not running at ${c.url}, so this call did not reach it and nothing ran. Ask the person to start Rho, then call again.`, { url: c.url, delivered: false })
43
+ : error));
40
44
  request.end(body);
41
45
  });
42
46
  const chunks = [];
@@ -1,3 +1,4 @@
1
+ export { externalSessionSchemas } from './external-session-contract.js';
1
2
  export declare const operationContracts: {
2
3
  'feedback.submit': {
3
4
  inputSchema: any;
@@ -327,4 +328,36 @@ export declare const operationContracts: {
327
328
  requires: string[];
328
329
  effect: "metadata";
329
330
  };
331
+ 'agent.sessions.list': {
332
+ inputSchema: {
333
+ type: string;
334
+ properties: Record<string, any>;
335
+ required: string[];
336
+ additionalProperties: boolean;
337
+ };
338
+ outputSchema: {
339
+ type: string;
340
+ properties: Record<string, any>;
341
+ required: string[];
342
+ additionalProperties: boolean;
343
+ };
344
+ requires: never[];
345
+ effect: "read";
346
+ };
347
+ 'agent.sessions.read': {
348
+ inputSchema: {
349
+ type: string;
350
+ properties: Record<string, any>;
351
+ required: string[];
352
+ additionalProperties: boolean;
353
+ };
354
+ outputSchema: {
355
+ type: string;
356
+ properties: Record<string, any>;
357
+ required: string[];
358
+ additionalProperties: boolean;
359
+ };
360
+ requires: never[];
361
+ effect: "read";
362
+ };
330
363
  };
@@ -424,7 +424,10 @@ const legacyOperationContracts = {
424
424
  }
425
425
  };
426
426
  const business = (schema) => structuredClone(schema);
427
+ export { externalSessionSchemas } from './external-session-contract.js';
428
+ import { externalSessionOperations } from './external-session-contract.js';
427
429
  export const operationContracts = {
430
+ ...externalSessionOperations,
428
431
  ...activityOperationContracts,
429
432
  ...legacyOperationContracts,
430
433
  'feedback.submit': { inputSchema: feedbackSchemas.FeedbackSubmitInput, outputSchema: feedbackSchemas.SubmissionRecord, requires: ['documents', 'annotations'], effect: 'metadata' },
@@ -1,6 +1,20 @@
1
1
  import type { EntryPresentation, PluginPresentation } from '@rho-workspace/plugin-contracts';
2
2
  export declare const presentation: PluginPresentation;
3
3
  export declare const operationPresentation: {
4
+ 'agent.sessions.list': {
5
+ order: number;
6
+ displayName: string;
7
+ description: string;
8
+ readOnly: true;
9
+ runsCode: false;
10
+ };
11
+ 'agent.sessions.read': {
12
+ order: number;
13
+ displayName: string;
14
+ description: string;
15
+ readOnly: true;
16
+ runsCode: false;
17
+ };
4
18
  'agent.activity.read': {
5
19
  order: number;
6
20
  displayName: string;
@@ -19,6 +19,8 @@ export const presentation = {
19
19
  readOnly: false, runsCode: false,
20
20
  };
21
21
  export const operationPresentation = {
22
+ 'agent.sessions.list': { order: 58, displayName: 'External conversations', description: 'Reads retained conversations observed in this project. Input remains in the original client.', readOnly: true, runsCode: false },
23
+ 'agent.sessions.read': { order: 59, displayName: 'External conversation', description: 'Reads native turns, tool outcomes and result receipts without sending or resuming anything.', readOnly: true, runsCode: false },
22
24
  'agent.activity.read': { order: 62, displayName: 'Agent activity', description: 'Reads selected Claude Code and dsh activity retained by the project Core Host, with cursors and gaps. Starts nothing.', readOnly: true, runsCode: false },
23
25
  'agent.activity.outputs': { order: 63, displayName: 'Observed outputs', description: 'Observes bounded current files and hashes inside a selected project output folder, without attributing them to an Agent.', readOnly: true, runsCode: false },
24
26
  'agent.activity.capture': { order: 64, displayName: 'Open observed output', description: 'Captures one CSV or image file in the project through Files: the exact version you observed, or its current bytes. CSV columns remain text; no producer or scientific claim is made.', readOnly: false, runsCode: false },
@@ -0,0 +1,15 @@
1
+ import { type ReactNode } from 'react';
2
+ import type { ExternalSessionSummary, ExternalTurn, ExternalResult } from './external-session.js';
3
+ export interface ExternalConversationProps {
4
+ session: ExternalSessionSummary;
5
+ read: (before?: number) => Promise<{
6
+ first: number;
7
+ turns: ExternalTurn[];
8
+ session: ExternalSessionSummary;
9
+ }>;
10
+ renderText: (text: string) => ReactNode;
11
+ renderResult: (result: ExternalResult) => ReactNode;
12
+ openFile: (path: string) => void;
13
+ }
14
+ /** Read-only conversation entry. Native client owns every input and permission. */
15
+ export declare function ExternalConversation({ session, read, renderText, renderResult, openFile }: ExternalConversationProps): import("react").JSX.Element;
@@ -0,0 +1,37 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { useEffect, useState, useRef } from 'react';
3
+ /** Read-only conversation entry. Native client owns every input and permission. */
4
+ export function ExternalConversation({ session, read, renderText, renderResult, openFile }) {
5
+ const [kept, setKept] = useState(null), [problem, setProblem] = useState('');
6
+ const root = useRef(null);
7
+ const [retry, setRetry] = useState(0);
8
+ useEffect(() => {
9
+ let live = true;
10
+ read().then(value => { if (live) {
11
+ setKept(value);
12
+ setProblem('');
13
+ } }, error => { if (live)
14
+ setProblem(error instanceof Error ? error.message : 'Could not read this conversation.'); });
15
+ return () => { live = false; };
16
+ }, [session.id, session.sourceCursor, session.state, read, retry]);
17
+ async function earlier() {
18
+ try {
19
+ const value = await read(kept?.first);
20
+ setKept(old => ({ first: value.first, turns: [...value.turns, ...(old?.turns ?? [])] }));
21
+ setProblem('');
22
+ }
23
+ catch (error) {
24
+ setProblem(error instanceof Error ? error.message : 'Could not read earlier messages.');
25
+ }
26
+ }
27
+ return _jsxs("div", { className: "external-conversation", ref: root, children: [_jsxs("p", { className: "external-input-owner", children: ["Read only \u00B7 Continue in ", session.producer === 'dsh' ? 'DeepSeek Harness' : session.producer, ". Input and permission choices stay there."] }), problem && _jsxs("p", { role: "alert", children: [problem, " ", _jsx("button", { onClick: () => setRetry(n => n + 1), children: "Retry" })] }), session.omittedTurns > 0 && _jsxs("p", { role: "status", children: [session.omittedTurns, " earlier turns are outside the retained observation."] }), session.problem && _jsx("p", { role: "status", children: session.problem }), !kept && !problem && _jsx("p", { children: "Reading conversation\u2026" }), kept?.turns.slice().reverse().map(turn => _jsxs("article", { className: "external-turn", children: [_jsxs("header", { children: [_jsx("h4", { children: turn.prompt || 'Prompt was not observed' }), _jsxs("small", { children: [new Date(turn.at).toLocaleString(), " \u00B7 ", turn.state === 'unknown' ? 'Outcome unknown' : turn.state] })] }), turn.results.length > 0 && _jsxs("section", { className: "external-results", "aria-label": "Results of this turn", children: [_jsx("h5", { children: "Results" }), turn.results.map((result, i) => _jsxs("div", { children: [renderResult(result), turn.tools.some(t => t.id === result.toolId) && _jsxs("button", { className: "text-button", onClick: () => {
28
+ const target = root.current?.querySelector('#' + CSS.escape('external-tool-' + result.toolId));
29
+ const outer = target?.closest('details');
30
+ if (outer)
31
+ outer.open = true;
32
+ const inner = target?.querySelector('details');
33
+ if (inner)
34
+ inner.open = true;
35
+ target?.scrollIntoView({ block: 'center' });
36
+ }, children: ["Show operation \u00B7 ", turn.tools.find(t => t.id === result.toolId)?.name] })] }, i))] }), turn.messages.length > 0 && _jsxs("details", { className: "external-messages", children: [_jsxs("summary", { children: [turn.messages.length, " earlier replies"] }), turn.messages.map((message, index) => _jsx("div", { children: renderText(message.text) }, index))] }), turn.reply ? renderText(turn.reply) : _jsx("p", { children: "No reply was observed." }), _jsxs("details", { className: "external-tools", children: [_jsxs("summary", { children: [turn.tools.length, " operations", turn.omittedTools ? ` · ${turn.omittedTools} not retained` : ''] }), _jsx("ol", { children: turn.tools.map(tool => _jsx("li", { id: 'external-tool-' + tool.id, children: _jsxs("details", { children: [_jsxs("summary", { children: [_jsx("strong", { children: tool.name }), _jsxs("span", { children: [tool.outcome === 'requested' ? 'Awaiting result' : tool.outcome === 'unknown' ? 'Outcome unknown' : tool.outcome, tool.exitCode !== undefined ? ' · exit ' + tool.exitCode : ''] })] }), _jsxs("small", { children: [new Date(tool.at).toLocaleString(), " \u00B7 ", tool.id] }), tool.detail && _jsx("pre", { children: tool.detail }), tool.output && _jsx("pre", { children: tool.output }), tool.paths.length > 0 && _jsxs("div", { className: "external-paths", children: [_jsx("small", { children: "Files mentioned \u00B7 opens current content" }), tool.paths.map(p => _jsx("button", { onClick: () => openFile(p), children: p }, p))] })] }) }, tool.id)) })] }), turn.omittedChars > 0 && _jsx("p", { className: "muted", children: "Some text exceeded the observation limit. The original client keeps its full record." })] }, turn.id)), kept && kept.first > 0 && _jsx("button", { onClick: () => void earlier(), children: "Earlier turns" }), _jsxs("details", { className: "external-source", children: [_jsx("summary", { children: "Source and observation" }), _jsxs("dl", { children: [_jsx("dt", { children: "Native session" }), _jsx("dd", { children: session.sessionId }), _jsx("dt", { children: "Last observed" }), _jsx("dd", { children: new Date(session.observedAt).toLocaleString() }), _jsx("dt", { children: "Native events read" }), _jsx("dd", { children: session.sourceCursor })] })] })] });
37
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rho-workspace/plugin-agent",
3
- "version": "0.4.27",
3
+ "version": "0.4.29",
4
4
  "type": "module",
5
5
  "description": "Rho agent plugin",
6
6
  "license": "AGPL-3.0-only",
@@ -8,6 +8,9 @@
8
8
  "node": ">=22.22.0 <23"
9
9
  },
10
10
  "exports": {
11
+ "./external-session": "./dist/external-session.js",
12
+ "./dsh-session": "./dist/dsh-session.js",
13
+ "./external-session-contract": "./dist/external-session-contract.js",
11
14
  "./session-contract": "./dist/session-contract.js",
12
15
  "./conversation": "./dist/conversation.js",
13
16
  "./activity-normalize": "./dist/activity-normalize.js",
@@ -25,6 +28,7 @@
25
28
  "./claude-feedback-hook": "./dist/claude-feedback-hook.js",
26
29
  "./claude-feedback-worker": "./dist/claude-feedback-worker.js",
27
30
  "./ui": "./dist/ui.js",
31
+ "./ui-external-session": "./dist/ui-external-session.js",
28
32
  "./layered-contract": "./dist/layered-contract.js",
29
33
  "./layered": "./dist/layered.js",
30
34
  "./external-acp": "./dist/external-acp.js",
@@ -23,7 +23,7 @@
23
23
  "@rho-workspace/plugin-contracts": "0.4.0"
24
24
  },
25
25
  "peerDependencies": {
26
- "@rho-workspace/plugin-documents": "0.4.1 || 0.4.2 || 0.4.3 || 0.4.4 || 0.4.5 || 0.4.6 || 0.4.7 || 0.4.8 || 0.4.9 || 0.4.10",
26
+ "@rho-workspace/plugin-documents": "0.4.1 || 0.4.2 || 0.4.3 || 0.4.4 || 0.4.5 || 0.4.6 || 0.4.7 || 0.4.8 || 0.4.9 || 0.4.10 || 0.4.11",
27
27
  "react": "19.3.1",
28
28
  "react-dom": "19.3.1"
29
29
  },
@@ -157,3 +157,7 @@ Documents 0.4.7 adds a confirmed-text selection callback for Review and an optio
157
157
  excerpt, reads at most 1 MiB per version and previews at most 64 KiB without cutting
158
158
  a Unicode sequence. Buffer snapshots continue to identify their version/dirty
159
159
  state separately from disk captures. No comparison rewrites a buffer or its undo.
160
+
161
+ Documents 0.4.11 lets the editor view (`rho.editor`) keep a boolean `flow` beside its
162
+ `title`: an application that shows a script's data flow beside the editor saves the person's
163
+ switch with the page. The buffer, its undo and its saves are unchanged by it.
@@ -1095,6 +1095,9 @@ export declare const plugin: {
1095
1095
  type: string;
1096
1096
  minLength: number;
1097
1097
  };
1098
+ flow: {
1099
+ type: string;
1100
+ };
1098
1101
  };
1099
1102
  required: string[];
1100
1103
  };