@rho-workspace/rho 0.5.3 → 0.5.4

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 (216) hide show
  1. package/README.md +24 -5
  2. package/dist/capabilities.d.ts +27 -0
  3. package/dist/capabilities.js +73 -1
  4. package/dist/cli.js +150 -25
  5. package/dist/contract.generated.d.ts +112 -12
  6. package/dist/contracts/owners.generated.js +103 -8
  7. package/dist/conversation-presentation.d.ts +3 -1
  8. package/dist/conversation-presentation.js +16 -6
  9. package/dist/conversations.d.ts +10 -6
  10. package/dist/conversations.js +17 -13
  11. package/dist/installs.d.ts +11 -0
  12. package/dist/installs.js +179 -0
  13. package/dist/project-notes.js +2 -0
  14. package/dist/protocol.js +7 -5
  15. package/dist/screen-check-skill.d.ts +2 -0
  16. package/dist/screen-check-skill.js +39 -0
  17. package/dist/server.d.ts +2 -0
  18. package/dist/server.js +50 -7
  19. package/dist/web/.vite/manifest.json +51 -51
  20. package/dist/web/assets/{choices-B-y2OYvE.js → choices-DU9kHlyQ.js} +1 -1
  21. package/dist/web/assets/{console-e1P5qYQ5.js → console-Dbdo-5oO.js} +1 -1
  22. package/dist/web/assets/{dist-Dd3iAGFy.js → dist-B2V0VDO0.js} +1 -1
  23. package/dist/web/assets/{dist-CH56yNDn.js → dist-BV3hWfn_.js} +1 -1
  24. package/dist/web/assets/{dist-CBM2oq6g.js → dist-CLNF2g-E.js} +1 -1
  25. package/dist/web/assets/{dist-DEorbOW0.js → dist-D25Vn17i.js} +1 -1
  26. package/dist/web/assets/{explore-in-muWXOGOY.js → explore-in-8Q5ftt-E.js} +1 -1
  27. package/dist/web/assets/{graph-CK-df5lh.js → graph-hS2kvHTI.js} +1 -1
  28. package/dist/web/assets/{index-BYuKpyoi.js → index-BHQIaDsx.js} +220 -121
  29. package/dist/web/assets/index-Cj1_iqyK.css +1 -0
  30. package/dist/web/assets/{notes-meaning-B3HFbh84.js → notes-meaning-DdPbtNzJ.js} +1 -1
  31. package/dist/web/assets/{overview-D1Ev2OC_.js → overview-BV6ZO5TO.js} +3 -3
  32. package/dist/web/assets/{preview-HbmQKUGY.js → preview-n5lOOdjN.js} +1 -1
  33. package/dist/web/assets/{review-BVh9jWMB.js → review-CmWou4Iv.js} +1 -1
  34. package/dist/web/assets/{skills-DPaEYkln.js → skills-Dy7n3L9d.js} +1 -1
  35. package/dist/web/assets/{skills-work-dvjfy_tu.js → skills-work-Cj0W6b-I.js} +1 -1
  36. package/dist/web/assets/{studio-process-BYm8mjRJ.js → studio-process-QOY_n2_8.js} +1 -1
  37. package/dist/web/assets/{timeline-events-CDZ7wiJX.js → timeline-events-DmX1BCh3.js} +1 -1
  38. package/dist/web/assets/{work-turns-BeCt303c.js → work-turns-Co0C71rJ.js} +1 -1
  39. package/dist/web/assets/{workspace-d5Hw_ClZ.js → workspace-BKFefRfJ.js} +2 -2
  40. package/dist/web/composition.json +73 -73
  41. package/dist/web/index.html +2 -2
  42. package/dist/web/renderer.json +1 -1
  43. package/docs/FRONTEND.md +30 -14
  44. package/docs/HEADLESS.md +59 -13
  45. package/example/pa14-qs/.rho/rho/conversations/c-67f77cfebaba2cea.json +1 -1
  46. package/example/pa14-qs/.rho/rho/conversations/c-91aa2e46b1ac1a6c.json +1 -1
  47. package/example/pa14-qs/.rho/rho/conversations/c-fa24dfd80dfe4bcb.json +1 -1
  48. package/node_modules/@hono/node-server/dist/index.js +11 -0
  49. package/node_modules/@hono/node-server/dist/index.mjs +11 -0
  50. package/node_modules/@hono/node-server/dist/listener.js +11 -0
  51. package/node_modules/@hono/node-server/dist/listener.mjs +11 -0
  52. package/node_modules/@hono/node-server/dist/request.js +11 -0
  53. package/node_modules/@hono/node-server/dist/request.mjs +11 -0
  54. package/node_modules/@hono/node-server/dist/server.js +11 -0
  55. package/node_modules/@hono/node-server/dist/server.mjs +11 -0
  56. package/node_modules/@hono/node-server/dist/vercel.js +11 -0
  57. package/node_modules/@hono/node-server/dist/vercel.mjs +11 -0
  58. package/node_modules/@hono/node-server/package.json +1 -1
  59. package/node_modules/@rho-workspace/plugin-agent/README.md +3 -1
  60. package/node_modules/@rho-workspace/plugin-agent/dist/acp-conversation.js +14 -3
  61. package/node_modules/@rho-workspace/plugin-agent/dist/conversation.d.ts +1 -0
  62. package/node_modules/@rho-workspace/plugin-agent/dist/conversation.js +1 -0
  63. package/node_modules/@rho-workspace/plugin-agent/dist/generic-acp.d.ts +11 -0
  64. package/node_modules/@rho-workspace/plugin-agent/dist/generic-acp.js +7 -0
  65. package/node_modules/@rho-workspace/plugin-agent/dist/mcp.js +5 -1
  66. package/node_modules/@rho-workspace/plugin-agent/package.json +1 -1
  67. package/node_modules/@rho-workspace/plugin-annotations/package.json +1 -1
  68. package/node_modules/@rho-workspace/plugin-documents/README.md +4 -0
  69. package/node_modules/@rho-workspace/plugin-documents/dist/index.d.ts +3 -0
  70. package/node_modules/@rho-workspace/plugin-documents/dist/index.js +1 -1
  71. package/node_modules/@rho-workspace/plugin-documents/package.json +1 -1
  72. package/node_modules/@rho-workspace/plugin-kernel/README.md +71 -10
  73. package/node_modules/@rho-workspace/plugin-kernel/dist/code.d.ts +2 -0
  74. package/node_modules/@rho-workspace/plugin-kernel/dist/code.js +4 -1
  75. package/node_modules/@rho-workspace/plugin-kernel/dist/contract.js +5 -0
  76. package/node_modules/@rho-workspace/plugin-kernel/dist/index.d.ts +7 -0
  77. package/node_modules/@rho-workspace/plugin-kernel/dist/index.js +55 -8
  78. package/node_modules/@rho-workspace/plugin-kernel/dist/lineage.d.ts +9 -6
  79. package/node_modules/@rho-workspace/plugin-kernel/dist/lineage.js +18 -41
  80. package/node_modules/@rho-workspace/plugin-kernel/dist/operations.js +5 -2
  81. package/node_modules/@rho-workspace/plugin-kernel/dist/script-flow.d.ts +39 -0
  82. package/node_modules/@rho-workspace/plugin-kernel/dist/script-flow.js +661 -0
  83. package/node_modules/@rho-workspace/plugin-kernel/dist/ui-base.d.ts +3 -0
  84. package/node_modules/@rho-workspace/plugin-kernel/dist/ui-base.js +10 -0
  85. package/node_modules/@rho-workspace/plugin-kernel/dist/ui-flow.d.ts +38 -4
  86. package/node_modules/@rho-workspace/plugin-kernel/dist/ui-flow.js +194 -97
  87. package/node_modules/@rho-workspace/plugin-kernel/dist/ui-notebook-work.js +1 -2
  88. package/node_modules/@rho-workspace/plugin-kernel/dist/ui-notebook.d.ts +10 -2
  89. package/node_modules/@rho-workspace/plugin-kernel/dist/ui-notebook.js +79 -18
  90. package/node_modules/@rho-workspace/plugin-kernel/dist/ui-styles.js +115 -45
  91. package/node_modules/@rho-workspace/plugin-kernel/dist/ui.d.ts +1 -1
  92. package/node_modules/@rho-workspace/plugin-kernel/dist/ui.js +1 -1
  93. package/node_modules/@rho-workspace/plugin-kernel/dist/value-graph.d.ts +63 -0
  94. package/node_modules/@rho-workspace/plugin-kernel/dist/value-graph.js +344 -0
  95. package/node_modules/@rho-workspace/plugin-kernel/package.json +1 -1
  96. package/node_modules/@rho-workspace/plugin-kernel/runners/runner.R +6 -3
  97. package/node_modules/@rho-workspace/plugin-kernel/runners/runner.py +6 -3
  98. package/node_modules/express-rate-limit/dist/index.cjs +1 -1
  99. package/node_modules/express-rate-limit/dist/index.mjs +1 -1
  100. package/node_modules/express-rate-limit/package.json +1 -1
  101. package/node_modules/ip-address/dist/ipv6.js +1 -1
  102. package/node_modules/ip-address/package.json +1 -1
  103. package/node_modules/playwright-core/LICENSE +202 -0
  104. package/node_modules/playwright-core/NOTICE +5 -0
  105. package/node_modules/playwright-core/ThirdPartyNotices.txt +13 -0
  106. package/node_modules/playwright-core/bin/install_media_pack.ps1 +5 -0
  107. package/node_modules/playwright-core/bin/install_webkit_wsl.ps1 +33 -0
  108. package/node_modules/playwright-core/bin/reinstall_chrome_beta_linux.sh +42 -0
  109. package/node_modules/playwright-core/bin/reinstall_chrome_beta_mac.sh +13 -0
  110. package/node_modules/playwright-core/bin/reinstall_chrome_beta_win.ps1 +24 -0
  111. package/node_modules/playwright-core/bin/reinstall_chrome_stable_linux.sh +42 -0
  112. package/node_modules/playwright-core/bin/reinstall_chrome_stable_mac.sh +12 -0
  113. package/node_modules/playwright-core/bin/reinstall_chrome_stable_win.ps1 +24 -0
  114. package/node_modules/playwright-core/bin/reinstall_msedge_beta_linux.sh +48 -0
  115. package/node_modules/playwright-core/bin/reinstall_msedge_beta_mac.sh +11 -0
  116. package/node_modules/playwright-core/bin/reinstall_msedge_beta_win.ps1 +23 -0
  117. package/node_modules/playwright-core/bin/reinstall_msedge_dev_linux.sh +48 -0
  118. package/node_modules/playwright-core/bin/reinstall_msedge_dev_mac.sh +11 -0
  119. package/node_modules/playwright-core/bin/reinstall_msedge_dev_win.ps1 +23 -0
  120. package/node_modules/playwright-core/bin/reinstall_msedge_stable_linux.sh +48 -0
  121. package/node_modules/playwright-core/bin/reinstall_msedge_stable_mac.sh +11 -0
  122. package/node_modules/playwright-core/bin/reinstall_msedge_stable_win.ps1 +24 -0
  123. package/node_modules/playwright-core/browsers.json +52 -0
  124. package/node_modules/playwright-core/cli.js +22 -0
  125. package/node_modules/playwright-core/index.js +17 -0
  126. package/node_modules/playwright-core/index.mjs +28 -0
  127. package/node_modules/playwright-core/lib/bootstrap.js +149 -0
  128. package/node_modules/playwright-core/lib/coreBundle.js +78041 -0
  129. package/node_modules/playwright-core/lib/entry/cliDaemon.js +5 -0
  130. package/node_modules/playwright-core/lib/entry/dashboardApp.js +3 -0
  131. package/node_modules/playwright-core/lib/entry/mcp.js +10 -0
  132. package/node_modules/playwright-core/lib/entry/oopBrowserDownload.js +3 -0
  133. package/node_modules/playwright-core/lib/package.js +50 -0
  134. package/node_modules/playwright-core/lib/server/chromium/appIcon.png +0 -0
  135. package/node_modules/playwright-core/lib/server/electron/loader.js +123 -0
  136. package/node_modules/playwright-core/lib/serverRegistry.js +1939 -0
  137. package/node_modules/playwright-core/lib/serverRegistry.js.LICENSE +65 -0
  138. package/node_modules/playwright-core/lib/tools/cli-client/channelSessions.js +141 -0
  139. package/node_modules/playwright-core/lib/tools/cli-client/cli.js +7 -0
  140. package/node_modules/playwright-core/lib/tools/cli-client/help.json +808 -0
  141. package/node_modules/playwright-core/lib/tools/cli-client/minimist.js +128 -0
  142. package/node_modules/playwright-core/lib/tools/cli-client/output.js +352 -0
  143. package/node_modules/playwright-core/lib/tools/cli-client/program.js +422 -0
  144. package/node_modules/playwright-core/lib/tools/cli-client/registry.js +180 -0
  145. package/node_modules/playwright-core/lib/tools/cli-client/session.js +261 -0
  146. package/node_modules/playwright-core/lib/tools/dashboard/appIcon.png +0 -0
  147. package/node_modules/playwright-core/lib/tools/utils/extension.js +112 -0
  148. package/node_modules/playwright-core/lib/tools/utils/socketConnection.js +108 -0
  149. package/node_modules/playwright-core/lib/utilsBundle.js +86078 -0
  150. package/node_modules/playwright-core/lib/utilsBundle.js.LICENSE +1890 -0
  151. package/node_modules/playwright-core/lib/vite/dashboard/assets/codeMirrorModule--QdMvsKi.css +1 -0
  152. package/node_modules/playwright-core/lib/vite/dashboard/assets/codeMirrorModule-CQ8RZGBm.js +32 -0
  153. package/node_modules/playwright-core/lib/vite/dashboard/assets/codicon-DCmgc-ay.ttf +0 -0
  154. package/node_modules/playwright-core/lib/vite/dashboard/assets/firefox-1bWoP6pv.svg +1 -0
  155. package/node_modules/playwright-core/lib/vite/dashboard/assets/firefox-beta-k3eOH_eK.svg +1 -0
  156. package/node_modules/playwright-core/lib/vite/dashboard/assets/firefox-nightly-Cp5nfeDT.svg +1 -0
  157. package/node_modules/playwright-core/lib/vite/dashboard/assets/index-AwgwcYie.css +1 -0
  158. package/node_modules/playwright-core/lib/vite/dashboard/assets/index-hRvO4yU2.js +12 -0
  159. package/node_modules/playwright-core/lib/vite/dashboard/assets/safari-na3_-uQk.svg +1 -0
  160. package/node_modules/playwright-core/lib/vite/dashboard/index.html +29 -0
  161. package/node_modules/playwright-core/lib/vite/dashboard/playwright-logo.svg +24 -0
  162. package/node_modules/playwright-core/lib/vite/htmlReport/index.html +16 -0
  163. package/node_modules/playwright-core/lib/vite/htmlReport/report.css +2 -0
  164. package/node_modules/playwright-core/lib/vite/htmlReport/report.js +32 -0
  165. package/node_modules/playwright-core/lib/vite/recorder/assets/codeMirrorModule--QdMvsKi.css +1 -0
  166. package/node_modules/playwright-core/lib/vite/recorder/assets/codeMirrorModule-DK72OMRi.js +32 -0
  167. package/node_modules/playwright-core/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf +0 -0
  168. package/node_modules/playwright-core/lib/vite/recorder/assets/index-BZpYJZ-P.css +1 -0
  169. package/node_modules/playwright-core/lib/vite/recorder/assets/index-Cn0mmDuv.js +129 -0
  170. package/node_modules/playwright-core/lib/vite/recorder/index.html +29 -0
  171. package/node_modules/playwright-core/lib/vite/recorder/playwright-logo.svg +9 -0
  172. package/node_modules/playwright-core/lib/vite/traceViewer/assets/codeMirrorModule-BEB2e8M3.js +32 -0
  173. package/node_modules/playwright-core/lib/vite/traceViewer/assets/defaultSettingsView-D-g2vrvf.js +184 -0
  174. package/node_modules/playwright-core/lib/vite/traceViewer/assets/urlMatch-L3liM589.js +1 -0
  175. package/node_modules/playwright-core/lib/vite/traceViewer/assets/xtermModule-B794rD2Z.js +7 -0
  176. package/node_modules/playwright-core/lib/vite/traceViewer/codeMirrorModule.-QdMvsKi.css +1 -0
  177. package/node_modules/playwright-core/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
  178. package/node_modules/playwright-core/lib/vite/traceViewer/defaultSettingsView.C8BeHuxd.css +1 -0
  179. package/node_modules/playwright-core/lib/vite/traceViewer/index.B_TqY17P.css +1 -0
  180. package/node_modules/playwright-core/lib/vite/traceViewer/index.html +44 -0
  181. package/node_modules/playwright-core/lib/vite/traceViewer/index.oNry3Hjv.js +1 -0
  182. package/node_modules/playwright-core/lib/vite/traceViewer/manifest.webmanifest +16 -0
  183. package/node_modules/playwright-core/lib/vite/traceViewer/playwright-logo.svg +9 -0
  184. package/node_modules/playwright-core/lib/vite/traceViewer/snapshot.B_Jk1wbt.js +1 -0
  185. package/node_modules/playwright-core/lib/vite/traceViewer/snapshot.html +10 -0
  186. package/node_modules/playwright-core/lib/vite/traceViewer/sw.bundle.js +4 -0
  187. package/node_modules/playwright-core/lib/vite/traceViewer/uiMode.CYwC_gH1.js +5 -0
  188. package/node_modules/playwright-core/lib/vite/traceViewer/uiMode.CyMfwkXJ.css +1 -0
  189. package/node_modules/playwright-core/lib/vite/traceViewer/uiMode.html +18 -0
  190. package/node_modules/playwright-core/lib/vite/traceViewer/xtermModule.kHJ-D0s7.css +1 -0
  191. package/node_modules/playwright-core/lib/webp_codec.LICENSE +173 -0
  192. package/node_modules/playwright-core/lib/webp_codec.wasm +0 -0
  193. package/node_modules/playwright-core/lib/xdg-open +1267 -0
  194. package/node_modules/playwright-core/package.json +34 -0
  195. package/package.json +10 -6
  196. package/protocol/index.json +17 -17
  197. package/protocol/operations/conversation.settings.check.json +147 -4
  198. package/protocol/operations/conversation.settings.read.json +145 -3
  199. package/protocol/operations/conversation.settings.update.json +166 -4
  200. package/protocol/operations/conversation.start.json +2 -1
  201. package/protocol/operations/kernel.interrupt.json +20 -0
  202. package/protocol/operations/kernel.read.json +30 -0
  203. package/protocol/operations/kernel.run.json +36 -1
  204. package/protocol/operations/kernel.stop.json +10 -0
  205. package/scripts/browser-checks.mjs +53 -0
  206. package/scripts/screen-check.mjs +193 -0
  207. package/vendor/composition.json +102 -102
  208. package/vendor/rho-workspace-plugin-agent-0.4.28.tgz +0 -0
  209. package/vendor/rho-workspace-plugin-annotations-0.5.2.tgz +0 -0
  210. package/vendor/rho-workspace-plugin-documents-0.4.11.tgz +0 -0
  211. package/vendor/rho-workspace-plugin-kernel-0.5.5.tgz +0 -0
  212. package/web/theme.css +17 -2
  213. package/dist/web/assets/index-DBd77u4a.css +0 -1
  214. package/vendor/rho-workspace-plugin-agent-0.4.27.tgz +0 -0
  215. package/vendor/rho-workspace-plugin-documents-0.4.10.tgz +0 -0
  216. package/vendor/rho-workspace-plugin-kernel-0.5.2.tgz +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "format": "rho.web-build/1",
3
3
  "uiProtocol": "0.1-draft",
4
- "rendererBuild": "0f756895a02299d87adeef11395d33392605448723c95db1c0ff3abbdbc736b6",
4
+ "rendererBuild": "485f1b19e789f432be41a9566199b3dddf2ff479e48ab4e3c1cd4ea75fe16033",
5
5
  "ownerEntries": [
6
6
  {
7
7
  "plugin": "documents",
@@ -10,7 +10,7 @@
10
10
  "component": "rho.editor",
11
11
  "version": "0.2.0",
12
12
  "source": "web/entries/documents.tsx",
13
- "packageVersion": "0.4.10",
13
+ "packageVersion": "0.4.11",
14
14
  "entrySha256": "076b4b63643813eb32f8c81caa35abdcf0e1a7b88420d49e7b984ec9acd53d23"
15
15
  },
16
16
  {
@@ -60,7 +60,7 @@
60
60
  "component": "rho.agent-note",
61
61
  "version": "0.2.0",
62
62
  "source": "web/entries/agent.tsx",
63
- "packageVersion": "0.4.27",
63
+ "packageVersion": "0.4.28",
64
64
  "entrySha256": "0e18d175dfc25fd8e237ec0341422e0d1311d2d8882e487962e8c7c25794d69e"
65
65
  },
66
66
  {
@@ -71,8 +71,8 @@
71
71
  "version": "1",
72
72
  "source": "web/entries/kernel.tsx",
73
73
  "export": "notebook",
74
- "packageVersion": "0.5.2",
75
- "entrySha256": "b90ad1273ee9a9be8b3c9bd5799ec31ae22d47b643b6ec6101dd1ffc11a00cb6"
74
+ "packageVersion": "0.5.5",
75
+ "entrySha256": "b5a012c8cd766e04cafb550e62eeec1c3b85eae07ac2fa69175f472268ddfbb2"
76
76
  },
77
77
  {
78
78
  "plugin": "kernel",
@@ -82,8 +82,8 @@
82
82
  "version": "1",
83
83
  "source": "web/entries/kernel.tsx",
84
84
  "export": "variables",
85
- "packageVersion": "0.5.2",
86
- "entrySha256": "b90ad1273ee9a9be8b3c9bd5799ec31ae22d47b643b6ec6101dd1ffc11a00cb6"
85
+ "packageVersion": "0.5.5",
86
+ "entrySha256": "b5a012c8cd766e04cafb550e62eeec1c3b85eae07ac2fa69175f472268ddfbb2"
87
87
  },
88
88
  {
89
89
  "plugin": "kernel",
@@ -93,8 +93,8 @@
93
93
  "version": "1",
94
94
  "source": "web/entries/kernel.tsx",
95
95
  "export": "plots",
96
- "packageVersion": "0.5.2",
97
- "entrySha256": "b90ad1273ee9a9be8b3c9bd5799ec31ae22d47b643b6ec6101dd1ffc11a00cb6"
96
+ "packageVersion": "0.5.5",
97
+ "entrySha256": "b5a012c8cd766e04cafb550e62eeec1c3b85eae07ac2fa69175f472268ddfbb2"
98
98
  },
99
99
  {
100
100
  "plugin": "kernel",
@@ -104,8 +104,8 @@
104
104
  "version": "1",
105
105
  "source": "web/entries/kernel.tsx",
106
106
  "export": "flow",
107
- "packageVersion": "0.5.2",
108
- "entrySha256": "b90ad1273ee9a9be8b3c9bd5799ec31ae22d47b643b6ec6101dd1ffc11a00cb6"
107
+ "packageVersion": "0.5.5",
108
+ "entrySha256": "b5a012c8cd766e04cafb550e62eeec1c3b85eae07ac2fa69175f472268ddfbb2"
109
109
  },
110
110
  {
111
111
  "plugin": "kernel",
@@ -115,8 +115,8 @@
115
115
  "version": "1",
116
116
  "source": "web/entries/kernel.tsx",
117
117
  "export": "servers",
118
- "packageVersion": "0.5.2",
119
- "entrySha256": "b90ad1273ee9a9be8b3c9bd5799ec31ae22d47b643b6ec6101dd1ffc11a00cb6"
118
+ "packageVersion": "0.5.5",
119
+ "entrySha256": "b5a012c8cd766e04cafb550e62eeec1c3b85eae07ac2fa69175f472268ddfbb2"
120
120
  },
121
121
  {
122
122
  "plugin": "kernel",
@@ -126,8 +126,8 @@
126
126
  "version": "1",
127
127
  "source": "web/entries/kernel.tsx",
128
128
  "export": "object",
129
- "packageVersion": "0.5.2",
130
- "entrySha256": "b90ad1273ee9a9be8b3c9bd5799ec31ae22d47b643b6ec6101dd1ffc11a00cb6"
129
+ "packageVersion": "0.5.5",
130
+ "entrySha256": "b5a012c8cd766e04cafb550e62eeec1c3b85eae07ac2fa69175f472268ddfbb2"
131
131
  },
132
132
  {
133
133
  "plugin": "documents",
@@ -255,7 +255,7 @@
255
255
  {
256
256
  "path": ".vite/manifest.json",
257
257
  "bytes": 23614,
258
- "sha256": "73c1dd5fa498ac20dff8d7ef174ea092ab98b11504b5bfd602d898b9653d699c"
258
+ "sha256": "3f5cd1589d4c851c00b0e6dedecf2df169dba3eae111302f38bdb6b7fed51460"
259
259
  },
260
260
  {
261
261
  "path": "assets/answer-board-CBkGbSLD.js",
@@ -267,55 +267,55 @@
267
267
  "bytes": 20280,
268
268
  "sha256": "b2e4c27b4627f85ce52f421d07921fcb64c1c0c816429cb8c094af6a724ba297"
269
269
  },
270
- {
271
- "path": "assets/choices-B-y2OYvE.js",
272
- "bytes": 11095,
273
- "sha256": "e9114124afd09f7b42da863bc548f539b9efcb65a4d0492c1bcd3a686374d739"
274
- },
275
270
  {
276
271
  "path": "assets/choices-DLah50GC.css",
277
272
  "bytes": 1659,
278
273
  "sha256": "2285c02644e12f379880df802cd34ed6262d73a159aeb9a12e80de44f12db447"
279
274
  },
275
+ {
276
+ "path": "assets/choices-DU9kHlyQ.js",
277
+ "bytes": 11095,
278
+ "sha256": "85b5a4a9e61cc761c32c5f09bc8c760681cfc57d829088dc932e0aeff77990c9"
279
+ },
280
280
  {
281
281
  "path": "assets/console-By4Mvn1y.css",
282
282
  "bytes": 3779,
283
283
  "sha256": "38fdefe20f181e6a050793f715a13bcbde2e9c167f80f554a775e3578dcd78bc"
284
284
  },
285
285
  {
286
- "path": "assets/console-e1P5qYQ5.js",
286
+ "path": "assets/console-Dbdo-5oO.js",
287
287
  "bytes": 21020,
288
- "sha256": "de82e2b33fddc3401865eb64a60dd5a78261828051b13334cd98746c5aa33cde"
288
+ "sha256": "6a39c3e3abc4d95d81a9cb6790c7ba1c9d88045c3be266916bbf455be1f642eb"
289
289
  },
290
290
  {
291
- "path": "assets/dist-CBM2oq6g.js",
292
- "bytes": 35411,
293
- "sha256": "e082177027b22e9100f90213342d1f29ac735add695ceb592da6a9fc4a228b7b"
291
+ "path": "assets/dist-B2V0VDO0.js",
292
+ "bytes": 183314,
293
+ "sha256": "3ab47b21fad70499d77744c23d95b1320a2c7fdcd00e2a57e4b108bdbf935004"
294
294
  },
295
295
  {
296
- "path": "assets/dist-CH56yNDn.js",
296
+ "path": "assets/dist-BV3hWfn_.js",
297
297
  "bytes": 37498,
298
- "sha256": "a7022c2c528d9d083c294bf943b7134214935262753a12761a32bd60d6f5d7ec"
298
+ "sha256": "eb2266a7b0b351d4975a1964d7fb473c7d980ac055365ca142f03e1ed5029b39"
299
299
  },
300
300
  {
301
- "path": "assets/dist-DCtcCJPs.js",
302
- "bytes": 34901,
303
- "sha256": "9deb65f8b227a08473b422b448735f045aa2251acf498f169640f7d38d96173e"
301
+ "path": "assets/dist-CLNF2g-E.js",
302
+ "bytes": 35411,
303
+ "sha256": "07fd5602ed1daf630dd57c1783d6c93f5a31fb53fdcf0be9582660ec2d7cdad3"
304
304
  },
305
305
  {
306
- "path": "assets/dist-Dd3iAGFy.js",
307
- "bytes": 183314,
308
- "sha256": "67a004264480b8770b75661ec74a64b29f4364d632be674a1539da8171f6b316"
306
+ "path": "assets/dist-D25Vn17i.js",
307
+ "bytes": 44651,
308
+ "sha256": "88fcb93008219182ced64313e5c93fe4cb47b67320ce98fc257291b707e12ad6"
309
309
  },
310
310
  {
311
- "path": "assets/dist-DEorbOW0.js",
312
- "bytes": 44651,
313
- "sha256": "2835ba838b5d22251d642ec7b3408a30509c014db71b2804f4886ed564b70b20"
311
+ "path": "assets/dist-DCtcCJPs.js",
312
+ "bytes": 34901,
313
+ "sha256": "9deb65f8b227a08473b422b448735f045aa2251acf498f169640f7d38d96173e"
314
314
  },
315
315
  {
316
- "path": "assets/explore-in-muWXOGOY.js",
316
+ "path": "assets/explore-in-8Q5ftt-E.js",
317
317
  "bytes": 783,
318
- "sha256": "3be0b18340c3b93c6b13a3b68841126dee8f90417d76bcc41efb58086aae5e1a"
318
+ "sha256": "6ebe9c13e83db24b8ca8a2e4f3786ef7881f28fafb9ce8c85ace154567dea030"
319
319
  },
320
320
  {
321
321
  "path": "assets/facts-BMO6V3-3.js",
@@ -333,9 +333,9 @@
333
333
  "sha256": "e84aa51d7376fc0a6104c0b140821c54bc25a2b55be32be6005e08b85dd7e0df"
334
334
  },
335
335
  {
336
- "path": "assets/graph-CK-df5lh.js",
336
+ "path": "assets/graph-hS2kvHTI.js",
337
337
  "bytes": 48764,
338
- "sha256": "e1d8e1df49559b199e53b222a352bf539136e1ce6d27d35aaaaf95d26faa17a1"
338
+ "sha256": "8044be54a3190fe3c827e3f8a35d1f9b77fedc596f1903a4af40d71e5a68b2b6"
339
339
  },
340
340
  {
341
341
  "path": "assets/home-CCbP6kS-.js",
@@ -343,14 +343,14 @@
343
343
  "sha256": "6bbbe67af01bd03b2777abcc02e63dda1bad1fa7aaf9296b07cda04ac481e7cb"
344
344
  },
345
345
  {
346
- "path": "assets/index-BYuKpyoi.js",
347
- "bytes": 1718445,
348
- "sha256": "efd135bd3200c1fa1f6f84bc02fe7603c9af4becdcfc86905f298c4db8f32624"
346
+ "path": "assets/index-BHQIaDsx.js",
347
+ "bytes": 1762439,
348
+ "sha256": "bf3f31d63d0e5440f7c52c8948ef756d25d73062eb6dcd937f50a14abaee62f6"
349
349
  },
350
350
  {
351
- "path": "assets/index-DBd77u4a.css",
352
- "bytes": 109992,
353
- "sha256": "ed7e295fdd91974451eabab3fb801db8a549c9a8ce53308ec3fcb9dafcd488da"
351
+ "path": "assets/index-Cj1_iqyK.css",
352
+ "bytes": 111026,
353
+ "sha256": "289f0730221144e47d64798dd722e39289c5f119b258e09ba1a501e97fb816ea"
354
354
  },
355
355
  {
356
356
  "path": "assets/KaTeX_AMS-Regular-BQhdFMY1.woff2",
@@ -663,9 +663,14 @@
663
663
  "sha256": "717274e2c02c05db67e7f1bf6fec4dfae799f3a2780ea7a95c4fdf0d160dfab8"
664
664
  },
665
665
  {
666
- "path": "assets/notes-meaning-B3HFbh84.js",
666
+ "path": "assets/notes-meaning-DdPbtNzJ.js",
667
667
  "bytes": 5850,
668
- "sha256": "b30da1564e36fe28385931cbb68fdd2b472a8ff444e8da86d756ec67d0199795"
668
+ "sha256": "8fa69b98fa48426a9eed7998f4c890906739e203e9e36156afb25ab9903e143e"
669
+ },
670
+ {
671
+ "path": "assets/overview-BV6ZO5TO.js",
672
+ "bytes": 48360,
673
+ "sha256": "f0fe461d635c2f04b7066cabea7419a186e880588de4d4e0b94b48937ac91174"
669
674
  },
670
675
  {
671
676
  "path": "assets/overview-CmC7mah4.css",
@@ -673,14 +678,9 @@
673
678
  "sha256": "f6b19e1fbbb7cc884faff634b6f7b016f806313b946600b11bbf76dc59caf1a9"
674
679
  },
675
680
  {
676
- "path": "assets/overview-D1Ev2OC_.js",
677
- "bytes": 48360,
678
- "sha256": "75af11602160708703bf2fad8a8c3f9fe3133100abb118902cb3eaa1f39c9dc3"
679
- },
680
- {
681
- "path": "assets/preview-HbmQKUGY.js",
681
+ "path": "assets/preview-n5lOOdjN.js",
682
682
  "bytes": 4705,
683
- "sha256": "8386028a035490ae285ae9f8a87e7e0afc2535a28954c1799471c73decd93828"
683
+ "sha256": "bfe4a5b0af6059c01e9051f2573802abc5aa690228b4792cb89013455f94de07"
684
684
  },
685
685
  {
686
686
  "path": "assets/r-CxDmU1I4.js",
@@ -698,9 +698,9 @@
698
698
  "sha256": "364a909acd2231cafe737e8f9b19ad58ba16d3b6cbb90b0de78015dd437bd56b"
699
699
  },
700
700
  {
701
- "path": "assets/review-BVh9jWMB.js",
701
+ "path": "assets/review-CmWou4Iv.js",
702
702
  "bytes": 4860,
703
- "sha256": "af9ed74625287dff37bf23c4f7669c3ceff65993c8a0625c639cc0e87ac0e311"
703
+ "sha256": "1665cca29b3db5e5c7a70ed7ed053b48d797d026dbf2336b325270bcad8d9287"
704
704
  },
705
705
  {
706
706
  "path": "assets/rolldown-runtime-XKyaHtl9.js",
@@ -708,9 +708,9 @@
708
708
  "sha256": "548d1dbf321e7d2ae804fcc158b588706a7c52f8ca175de1490c6ccb4dbe55b7"
709
709
  },
710
710
  {
711
- "path": "assets/skills-DPaEYkln.js",
711
+ "path": "assets/skills-Dy7n3L9d.js",
712
712
  "bytes": 12538,
713
- "sha256": "85cb2ce9fca863dfa92fcbed0af31411f7157fbd371b650fa0c9317ba7f4e7ca"
713
+ "sha256": "2779f6bc30eecb6a28d973a6b58582ccf4a000319cb95fdba4e134909ec3c240"
714
714
  },
715
715
  {
716
716
  "path": "assets/skills-WkE0KCzn.css",
@@ -718,9 +718,9 @@
718
718
  "sha256": "162823ce43fd1e1f2bd92a330516c171280b59a0b5460752f0d7aba5f194f3eb"
719
719
  },
720
720
  {
721
- "path": "assets/skills-work-dvjfy_tu.js",
721
+ "path": "assets/skills-work-Cj0W6b-I.js",
722
722
  "bytes": 2528,
723
- "sha256": "684ed0ad2a9ce20721997e00bbad3d37bcf3525652cede531345de7aed3880cf"
723
+ "sha256": "89756a0567fcad66589853d68a007adc07842ee1cc1ec34af2b12da0a2393170"
724
724
  },
725
725
  {
726
726
  "path": "assets/snapshot-CAxBYPvV.js",
@@ -733,29 +733,29 @@
733
733
  "sha256": "7acddf1303643a15a8df990808a42e218033edf56b8c03b0fcc8271683b0195f"
734
734
  },
735
735
  {
736
- "path": "assets/studio-process-BYm8mjRJ.js",
736
+ "path": "assets/studio-process-QOY_n2_8.js",
737
737
  "bytes": 22888,
738
- "sha256": "ffae8099f551f88647551c6b15c06a4da3c7b9990352d59214f48b7aee4a9e02"
738
+ "sha256": "1304e5eb2ca890173dd7252bcb9dc54e6e2f041d60fb253a94e201f17719234e"
739
739
  },
740
740
  {
741
- "path": "assets/timeline-events-CDZ7wiJX.js",
741
+ "path": "assets/timeline-events-DmX1BCh3.js",
742
742
  "bytes": 2227,
743
- "sha256": "4f9a2b4f3cf4e1c3ef14c77f8a6a933c88e2bd2c9f51e762a963762d14af3c09"
743
+ "sha256": "71dfdab4a0cd37bfb42c81433a906ac4158ff0e7681ff84bdb0de7f70075db3f"
744
744
  },
745
745
  {
746
- "path": "assets/work-turns-BeCt303c.js",
746
+ "path": "assets/work-turns-Co0C71rJ.js",
747
747
  "bytes": 1460,
748
- "sha256": "0f9aff74186d972c40a011c7b0026db65099340cb046f7138f40de004cb33ff7"
748
+ "sha256": "4aa3aef0ffcbfc25cbfed3c82eabe46fb81a23c946ef1aaa6938b744bae8e9ed"
749
749
  },
750
750
  {
751
- "path": "assets/workspace-d5Hw_ClZ.js",
751
+ "path": "assets/workspace-BKFefRfJ.js",
752
752
  "bytes": 81806,
753
- "sha256": "1c39694ffca7a0fc19a881bdb4cf57ca317265b74db67bd9eaa19752f61df349"
753
+ "sha256": "56ada93c5dd4e4ea68f3c020d3d56df20418b72710dcdf017129bda524cc196e"
754
754
  },
755
755
  {
756
756
  "path": "index.html",
757
757
  "bytes": 1142,
758
- "sha256": "49127803afe002be4fc0e8a4d9c15034008f5a5a3ba165a1761b395a9dec73fa"
758
+ "sha256": "59d7727507695bb05eb2c28e08978e50536dbd272dc63bf93818a2ef1f7c7c54"
759
759
  },
760
760
  {
761
761
  "path": "licenses.md",
@@ -765,10 +765,10 @@
765
765
  {
766
766
  "path": "renderer.json",
767
767
  "bytes": 85,
768
- "sha256": "c09ea3b45e1d045fbf0757268037e38873e96ad332ffa4bdb1c5cc389166579a"
768
+ "sha256": "aaac148d95413846299416f8f8314510ae658869308342c54b2db2c576cc7602"
769
769
  }
770
770
  ],
771
- "assetsSha256": "263dc1e92446b456e3e411ad23dad21c6ec9cef04df819d29d5fdea30a10c2fe",
771
+ "assetsSha256": "c3e8d826c3113df961293ef759a581501caa44f869cf279b118cd4c4e5cc7424",
772
772
  "licenses": "licenses.md",
773
773
  "node": "v22.23.4"
774
774
  }
@@ -6,13 +6,13 @@
6
6
  <meta name="color-scheme" content="light" />
7
7
  <title>Rho Workspace</title>
8
8
  <link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' rx='8' fill='%231e6b52'/%3E%3Ctext x='16' y='23' font-family='Georgia,serif' font-size='22' text-anchor='middle' fill='white'%3E%CF%81%3C/text%3E%3C/svg%3E" />
9
- <script type="module" crossorigin src="/assets/index-BYuKpyoi.js"></script>
9
+ <script type="module" crossorigin src="/assets/index-BHQIaDsx.js"></script>
10
10
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-XKyaHtl9.js">
11
11
  <link rel="modulepreload" crossorigin href="/assets/react-Dss-ouuy.js">
12
12
  <link rel="modulepreload" crossorigin href="/assets/markdown-0ngRuTpW.js">
13
13
  <link rel="modulepreload" crossorigin href="/assets/home-CCbP6kS-.js">
14
14
  <link rel="modulepreload" crossorigin href="/assets/canvas-BXhC8RDZ.js">
15
- <link rel="stylesheet" crossorigin href="/assets/index-DBd77u4a.css">
15
+ <link rel="stylesheet" crossorigin href="/assets/index-Cj1_iqyK.css">
16
16
  </head>
17
17
  <body>
18
18
  <div id="root"></div>
@@ -1 +1 @@
1
- {"rendererBuild":"0f756895a02299d87adeef11395d33392605448723c95db1c0ff3abbdbc736b6"}
1
+ {"rendererBuild":"485f1b19e789f432be41a9566199b3dddf2ff479e48ab4e3c1cd4ea75fe16033"}
package/docs/FRONTEND.md CHANGED
@@ -160,18 +160,31 @@ inspect what happened. The application gives those actions direct places:
160
160
  an ended session stay with their cells in the Notebook. With these views on the page, the
161
161
  Notebook leaves its own variables and plots out.
162
162
  - **Data flow** (`rho.flow`) shows how the values of a live session were made, as a tab beside
163
- Variables (else in the right column). Each cell that made something still there is a box, in
164
- the order the cells ran: its first line or purpose, the project files and folders it read, and
165
- what it made one to a line (values with type and size, its plots, the files it wrote). A line
166
- in the left margin runs from a value, or a written file, to each box that read it. A cell
167
- that changed a value it read (`m$x <- …`) continues the cell that made it: its box says
168
- "Changes what R 6 made", and what that value came from goes with it. A box that read a value
169
- or file made again since says so in amber. Pointing at a box keeps its path in view and fades
170
- the rest; the newest cell's box is outlined. A value opens as its own view, a file in its
171
- viewer; the box's head opens its code (with the code of the cells it continues), its plots,
172
- who ran it and Show in the Notebook. It follows the kernel's records (below), not the code:
173
- 60 values, 8 plots and 24 written files are drawn at most, and older ones are counted
174
- ([episode](SIMULATED-PROJECT-EPISODE.md#data-flow-html-pages-and-object-dependent-cases)).
163
+ Variables (else in the right column). It is a graph of values: the project files and folders
164
+ the session read at the top, the results at the bottom (the files it wrote and the plots it
165
+ drew, else the values nothing reads), and the values between in rows. Each node is titled with
166
+ the meaning its `# means:` comment gives (the Agent writes these above the statement that first
167
+ makes the value; `# means NAME:` names one of several), with the name beneath, and shows the
168
+ name alone without one. A bar names the results: choosing one draws what leads to it, and the
169
+ first is chosen when every result at once would put more than six values in a row. Values that
170
+ lead to no result are named below the graph, and choosing one draws what leads to it. A chosen
171
+ value colors what it comes from and what comes of it; its panel gives its meaning, how and where
172
+ it was made, what it uses and leads to, and which results it reaches. A value can be looked at,
173
+ a file opened, and the cell that made it shown in the Notebook. A narrow view (under 640 px)
174
+ puts the chosen value above the graph. Its values come from the kernel's records (below), each
175
+ meaning from the code of the cell that made the value, and at most 80 values are drawn at once
176
+ ([episode](VARIABLE-FLOW-EPISODE.md#meaning-in-the-code)).
177
+ - **How variables relate** ([episode](VARIABLE-FLOW-EPISODE.md)). Under each Notebook cell, what it
178
+ read and from which cell ("Read co from R 3"), and the later cells that read what it made ("ratio
179
+ read in R 6"); a cell named there goes to that cell and marks it. A cell that makes at least three
180
+ values offers "How its values came about", the same graph, under it. Variables names the cell that
181
+ made each value as it is now and the cells that read it. An R or Python script's editor has a Data
182
+ flow switch in its header, kept with the page: the script's flow, read from the text in the editor
183
+ as it is typed (nothing runs), shows beside the code, or below it in a view under 640 px. Its
184
+ nodes are titled by the same comments as the session's, and the flow line says how many values
185
+ have a meaning written in the code. The code marks the lines that make the chosen value, those it
186
+ comes from and those it leads to, in the colors of the key above the flow; choosing a value puts
187
+ the cursor on the line that makes it, and a click on a line that makes a value chooses it.
175
188
  - **Servers** (`rho.servers`) shows where the live sessions run: this machine and each place, a
176
189
  folder on one of the person's servers, reached through serverctl when serverctl manages it and
177
190
  with ssh otherwise. A place shows its server and folder, how it is reached, what its last check saw
@@ -502,8 +515,11 @@ opening a value or a server's file as a view, code waiting for the Notebook's li
502
515
  Notebook's form with the page, which views the page has, and a conversation's share of the
503
516
  sessions. Highlighting and Markdown come from the shell services (`highlight`, `markdown`).
504
517
  The plugin's `./code` finds the statement a script line runs (`statementAt`), writes the code
505
- that loads a table or runs a script, and makes Data flow's boxes and lanes (`lineage`);
506
- `web/entries/documents.tsx` sends a line through the page's `runCode` shell service.
518
+ that loads a table or runs a script, what each cell read from which cell (`cellRelations`), and
519
+ Data flow's graph of values from a session (`sessionGraph`) or a script's text (`scriptGraph`);
520
+ `web/entries/documents.tsx` sends a line through the page's `runCode` shell service, draws a
521
+ script's graph with the plugin's `ScriptFlowView`, keeps the chosen value (from the graph or the
522
+ cursor's line, `graphNodeAt`) and marks the lines behind and in front of it (`graphMarks`).
507
523
  The HTML page view is `html.reader` from Rho-plugins (HTML 0.1.0); Rho gives it `pageFrame`, the
508
524
  service's `/frame.html` (sandboxed, with its own policy and no network; the page's policy adds
509
525
  only `frame-src 'self'`), and `fileBytes`, a file snapshot's bytes (`readFile` in `web/previews.ts`).
package/docs/HEADLESS.md CHANGED
@@ -37,23 +37,39 @@ it. Missing browser renderers do not disable the headless protocol.
37
37
  ## Install and start
38
38
 
39
39
  The selected baseline is macOS arm64, Node 22.22.3 (engine range
40
- `>=22.22.0 <23`), npm 10.9.8, Python 3 with `fcntl`, and Rscript 4.5.2. Windows x64
40
+ `>=22.22.0 <27`; the suite and the installed check also passed on Node 24.22.2 and
41
+ 26.13.0), npm 10.9.8, Python 3 with `fcntl`, and Rscript 4.5.2. Windows x64
41
42
  was checked with Node 22.23.4 and Rscript 4.5.1; its writer lock needs no Python, and
42
43
  there `rho.cmd` starts Rho and Ctrl+Break on its console stops it in order.
43
- The unsigned local tarball contains Plugins and the selected digest-checked Core
44
- binary. R and any project-selected packages are external prerequisites, and so are
45
- the Agent clients: conversations drive the person's installed Claude Code or Codex.
44
+ The unsigned npm package `@rho-workspace/rho` contains Plugins and one digest-checked Core
45
+ binary for each of macOS arm64, Linux x64 and arm64 and Windows x64; CI installs it on each.
46
+ R and any project-selected packages are external prerequisites, and so are the Agent
47
+ clients: conversations drive the person's installed Claude Code or Codex.
46
48
  The service, documents, declared files and saved resource readers work without R.
47
49
  An unavailable Rscript returns an unknown dependency probe and prevents managed R execution.
48
- Other platforms and npm registry publication are unverified.
50
+ Other platforms are unverified.
49
51
 
50
52
  ```sh
51
- npm install --prefix /absolute/install /absolute/rho-workspace-rho-0.5.2.tgz
52
- /absolute/install/node_modules/.bin/rho \
53
- --root /absolute/projects --state-dir /absolute/service-state
53
+ npm install -g @rho-workspace/rho
54
+ rho --root /absolute/projects --state-dir /absolute/service-state
54
55
  ```
55
56
 
56
57
  Create the allowed projects directory first. Keep service state outside projects.
58
+
59
+ A person who has no folders to name runs the package with no arguments instead (from
60
+ 0.5.4; 0.5.3 prints its usage and exits 2):
61
+
62
+ ```sh
63
+ npx @rho-workspace/rho
64
+ ```
65
+
66
+ That start uses `~/Rho/projects` and `~/Rho/state`, creates both, ships the example
67
+ project on a new state, and prints — after the machine line — the address to open,
68
+ the two folders, and whether the Agent client and R were found, so a missing one is
69
+ read at startup rather than discovered later. It opens the address in a browser when
70
+ stdout is an interactive terminal. Every flagged start keeps the output it had; no
71
+ argument used to print this page and exit 2.
72
+
57
73
  Startup prints the loopback URL and private connection-file location, never the
58
74
  credential. Opening that URL in a browser on the same machine is the access: the
59
75
  service answers a same-origin request from loopback as the local person, with the
@@ -63,7 +79,17 @@ must expire; that link is a credential and is only as good as its five-minute
63
79
  window and single use. A credential that is present must still be valid, so an old
64
80
  link never silently widens to local access; a same-origin request that carries no
65
81
  credential is the machine's own. Host and Origin are checked on every request, and
66
- a browser request marked as coming from another site is refused. `--port`, `--rscript`, `--core`, `--plugins` and `--limits` are explicit
82
+ a browser request marked as coming from another site is refused.
83
+
84
+ A start without `--port` takes the port this state's last start had, so a bookmarked
85
+ address and every Agent connection still reach it after a restart; only when another
86
+ program holds that port does it take a new one, and then each Agent connection file in
87
+ the state that named the old address is rewritten to the new one, keeping its token.
88
+ `--port 0` always takes a new port. A selected port that is in use is refused with the
89
+ port named, never replaced. A second start on a state that is already running is
90
+ refused with the running service's address.
91
+
92
+ `--port`, `--rscript`, `--core`, `--plugins` and `--limits` are explicit
67
93
  operator selections; `RHO_RSCRIPT`, `RHO_CORE_BINARY` and `RHO_PYTHON` select
68
94
  equivalent runtimes. A Core override is outside bundled digest verification.
69
95
  A source checkout has no bundled Core: packaging supplies one per platform under
@@ -106,17 +132,32 @@ Exact Host and supplied Origin are checked. The bearer credential is project
106
132
  scoped for external callers. CLI shutdown stops only Hosts started by this
107
133
  service and reports confirmation separately. Existing Hosts keep their owner.
108
134
 
109
- ### Connect Claude Code
135
+ ### Connect Claude Code or Codex
136
+
137
+ The running service's operator connection adds Rho to the person's own Claude Code
138
+ or Codex for one project, as the project page's "Add to …" button does:
139
+
140
+ ```sh
141
+ rho --grant /absolute/service-state/connection.json --project PROJECT_FOLDER --agent claude-code|codex
142
+ ```
143
+
144
+ It gives that Agent its own grant to the project (kept when it still reaches the
145
+ service), runs that Agent's `mcp remove` and `mcp add` on this machine — Claude Code's
146
+ with `-s local` in the project folder, Codex's for every folder — and records it, so the
147
+ page shows it under that Agent. The JSON reply names the project, its root, the number
148
+ of granted methods, whether a new grant was made, and what was added (`name`, `scope`,
149
+ `at`). A session that was already open does not have the tools; a new one does.
110
150
 
111
- The running service's operator connection grants one project to one Agent session
112
- and prints how Claude Code starts that session's MCP server:
151
+ Without `--agent`, the same connection grants one project to one Agent session and
152
+ prints how Claude Code starts that session's MCP server:
113
153
 
114
154
  ```sh
115
155
  rho --grant /absolute/service-state/connection.json --project PROJECT_FOLDER [--session NAME]
116
156
  ```
117
157
 
118
158
  `--project` is the folder relative to `--root`; `--session` defaults to
119
- `claude-code`. The JSON reply names the project, the private session connection
159
+ `claude-code`, the session `--agent claude-code` uses, and `--session codex` is the one
160
+ `--agent codex` uses. When the service is not running, both forms say so and exit 1. The JSON reply names the project, the private session connection
120
161
  file, the number of granted methods (the server default), an `mcp` entry
121
162
  (`name`, `command`, `args`) for an MCP configuration file, and the equivalent
122
163
  `claude mcp add rho-<folder> -- … --mcp <file>` command. `rho --mcp FILE` serves
@@ -952,6 +993,11 @@ Notebook 0.1.0 (`@rho-workspace/plugin-kernel`) keeps one live R session and one
952
993
  live Python session per project, in the project folder, shared by the person and
953
994
  their Agent. `kernel.run` queues a cell in its language's session and starts the
954
995
  session when none is live; `waitMs` waits up to `maxWaitMs` for it to end.
996
+ Since Notebook 0.5.3 a cell may name `interpreter`, a program in a folder of the project
997
+ such as an environment's `.venv/bin/python`; the project keeps it for that language's later
998
+ sessions, and a session in which only that caller ran cells starts again with it, while one
999
+ where anyone else ran a cell is refused. Each session and each cell records the program
1000
+ (relative to the project when it is in it) and the version that ran it.
955
1001
  `kernel.read` returns the sessions, their variables and the cells, and never starts
956
1002
  a session. `kernel.inspect` returns one value of a live session as its session
957
1003
  describes it: its kind (table, model, vector, list, function, value or other), class,