@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.
- package/README.md +24 -5
- package/dist/browser-access.js +3 -2
- package/dist/capabilities.d.ts +29 -2
- package/dist/capabilities.js +79 -2
- package/dist/cli.js +237 -99
- package/dist/contract.generated.d.ts +441 -16
- package/dist/contract.generated.js +1 -1
- package/dist/contracts/owners.generated.js +459 -10
- package/dist/conversation-presentation.d.ts +3 -1
- package/dist/conversation-presentation.js +16 -6
- package/dist/conversations.d.ts +10 -6
- package/dist/conversations.js +17 -13
- package/dist/discovery.d.ts +1 -0
- package/dist/discovery.js +3 -3
- package/dist/extension-contract.d.ts +99 -0
- package/dist/extension-contract.js +52 -0
- package/dist/extension-directory.d.ts +9 -0
- package/dist/extension-directory.js +11 -0
- package/dist/extension-worker.d.ts +1 -0
- package/dist/extension-worker.js +36 -0
- package/dist/extensions.d.ts +157 -0
- package/dist/extensions.js +349 -0
- package/dist/installs.d.ts +11 -0
- package/dist/installs.js +179 -0
- package/dist/plugin-cli.d.ts +1 -0
- package/dist/plugin-cli.js +139 -0
- package/dist/plugin-inventory.json +18 -0
- package/dist/plugins.d.ts +3 -3
- package/dist/project-notes.js +2 -0
- package/dist/project-work.d.ts +3 -1
- package/dist/project-work.js +15 -2
- package/dist/protocol.d.ts +7 -0
- package/dist/protocol.js +11 -7
- package/dist/screen-check-skill.d.ts +2 -0
- package/dist/screen-check-skill.js +39 -0
- package/dist/server.d.ts +6 -1
- package/dist/server.js +105 -15
- package/dist/web/.vite/manifest.json +65 -65
- package/dist/web/assets/{canvas-BXhC8RDZ.js → canvas-D8rDdfDz.js} +1 -1
- package/dist/web/assets/choices-b0XhrGQV.js +1 -0
- package/dist/web/assets/{console-e1P5qYQ5.js → console-BSjLGe0T.js} +1 -1
- package/dist/web/assets/{dist-Dd3iAGFy.js → dist-Buk0lwzI.js} +2 -2
- package/dist/web/assets/dist-Cw8hRIlT.js +1 -0
- package/dist/web/assets/dist-Tzoe_zm-.js +3 -0
- package/dist/web/assets/{dist-DEorbOW0.js → dist-foH9IKc6.js} +1 -1
- package/dist/web/assets/explore-in-BVUy3ZW_.js +1 -0
- package/dist/web/assets/graph-1OdIJ9l7.js +2 -0
- package/dist/web/assets/index-CsC3sTRq.css +1 -0
- package/dist/web/assets/{index-BYuKpyoi.js → index-CxmItXqa.js} +220 -121
- package/dist/web/assets/{notes-meaning-B3HFbh84.js → notes-meaning-pVbbQUGP.js} +1 -1
- package/dist/web/assets/overview-B9UtVJ32.js +6 -0
- package/dist/web/assets/preview-CksD_5KS.js +1 -0
- package/dist/web/assets/{review-BVh9jWMB.js → review-CMxQlQ-C.js} +1 -1
- package/dist/web/assets/{skills-DPaEYkln.js → skills-BFNSyrnD.js} +1 -1
- package/dist/web/assets/{skills-work-dvjfy_tu.js → skills-work-BGPSnF_I.js} +1 -1
- package/dist/web/assets/{studio-process-BYm8mjRJ.js → studio-process-CsRoTHOh.js} +2 -2
- package/dist/web/assets/{timeline-events-CDZ7wiJX.js → timeline-events-BbuuFWHV.js} +1 -1
- package/dist/web/assets/{work-turns-BeCt303c.js → work-turns-BvJlIMmA.js} +1 -1
- package/dist/web/assets/workspace-CWlkjLNx.js +5 -0
- package/dist/web/composition.json +80 -80
- package/dist/web/index.html +3 -3
- package/dist/web/renderer.json +1 -1
- package/dist/web-assets.d.ts +2 -1
- package/dist/web-assets.js +3 -2
- package/dist/work-contract.js +2 -2
- package/docs/FRONTEND.md +30 -14
- package/docs/HEADLESS.md +60 -14
- package/docs/PLUGIN-AUTHORING.md +4 -0
- package/docs/THIRD-PARTY-PLUGINS.md +190 -0
- package/example/pa14-qs/.rho/rho/conversations/c-67f77cfebaba2cea.json +1 -1
- package/example/pa14-qs/.rho/rho/conversations/c-91aa2e46b1ac1a6c.json +1 -1
- package/example/pa14-qs/.rho/rho/conversations/c-fa24dfd80dfe4bcb.json +1 -1
- package/node_modules/@hono/node-server/dist/index.js +11 -0
- package/node_modules/@hono/node-server/dist/index.mjs +11 -0
- package/node_modules/@hono/node-server/dist/listener.js +11 -0
- package/node_modules/@hono/node-server/dist/listener.mjs +11 -0
- package/node_modules/@hono/node-server/dist/request.js +11 -0
- package/node_modules/@hono/node-server/dist/request.mjs +11 -0
- package/node_modules/@hono/node-server/dist/server.js +11 -0
- package/node_modules/@hono/node-server/dist/server.mjs +11 -0
- package/node_modules/@hono/node-server/dist/vercel.js +11 -0
- package/node_modules/@hono/node-server/dist/vercel.mjs +11 -0
- package/node_modules/@hono/node-server/package.json +1 -1
- package/node_modules/@rho-workspace/plugin-agent/README.md +42 -1
- package/node_modules/@rho-workspace/plugin-agent/dist/acp-conversation.js +14 -3
- package/node_modules/@rho-workspace/plugin-agent/dist/activity-normalize.d.ts +1 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/activity-normalize.js +2 -2
- package/node_modules/@rho-workspace/plugin-agent/dist/conversation.d.ts +1 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/conversation.js +1 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/dsh-session.d.ts +6 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/dsh-session.js +174 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/external-session-contract.d.ts +82 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/external-session-contract.js +15 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/external-session.d.ts +73 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/external-session.js +190 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/generic-acp.d.ts +11 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/generic-acp.js +7 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/index.d.ts +373 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/index.js +1 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/mcp.js +5 -1
- package/node_modules/@rho-workspace/plugin-agent/dist/operations.d.ts +33 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/operations.js +3 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/presentation.d.ts +14 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/presentation.js +2 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/ui-external-session.d.ts +15 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/ui-external-session.js +37 -0
- package/node_modules/@rho-workspace/plugin-agent/package.json +5 -1
- package/node_modules/@rho-workspace/plugin-annotations/package.json +1 -1
- package/node_modules/@rho-workspace/plugin-documents/README.md +4 -0
- package/node_modules/@rho-workspace/plugin-documents/dist/index.d.ts +3 -0
- package/node_modules/@rho-workspace/plugin-documents/dist/index.js +1 -1
- package/node_modules/@rho-workspace/plugin-documents/package.json +1 -1
- package/node_modules/@rho-workspace/plugin-kernel/README.md +71 -10
- package/node_modules/@rho-workspace/plugin-kernel/dist/code.d.ts +2 -0
- package/node_modules/@rho-workspace/plugin-kernel/dist/code.js +4 -1
- package/node_modules/@rho-workspace/plugin-kernel/dist/contract.js +5 -0
- package/node_modules/@rho-workspace/plugin-kernel/dist/index.d.ts +7 -0
- package/node_modules/@rho-workspace/plugin-kernel/dist/index.js +55 -8
- package/node_modules/@rho-workspace/plugin-kernel/dist/lineage.d.ts +9 -6
- package/node_modules/@rho-workspace/plugin-kernel/dist/lineage.js +18 -41
- package/node_modules/@rho-workspace/plugin-kernel/dist/operations.js +5 -2
- package/node_modules/@rho-workspace/plugin-kernel/dist/script-flow.d.ts +39 -0
- package/node_modules/@rho-workspace/plugin-kernel/dist/script-flow.js +661 -0
- package/node_modules/@rho-workspace/plugin-kernel/dist/ui-base.d.ts +3 -0
- package/node_modules/@rho-workspace/plugin-kernel/dist/ui-base.js +10 -0
- package/node_modules/@rho-workspace/plugin-kernel/dist/ui-flow.d.ts +38 -4
- package/node_modules/@rho-workspace/plugin-kernel/dist/ui-flow.js +194 -97
- package/node_modules/@rho-workspace/plugin-kernel/dist/ui-notebook-work.js +1 -2
- package/node_modules/@rho-workspace/plugin-kernel/dist/ui-notebook.d.ts +10 -2
- package/node_modules/@rho-workspace/plugin-kernel/dist/ui-notebook.js +79 -18
- package/node_modules/@rho-workspace/plugin-kernel/dist/ui-styles.js +115 -45
- package/node_modules/@rho-workspace/plugin-kernel/dist/ui.d.ts +1 -1
- package/node_modules/@rho-workspace/plugin-kernel/dist/ui.js +1 -1
- package/node_modules/@rho-workspace/plugin-kernel/dist/value-graph.d.ts +63 -0
- package/node_modules/@rho-workspace/plugin-kernel/dist/value-graph.js +344 -0
- package/node_modules/@rho-workspace/plugin-kernel/package.json +1 -1
- package/node_modules/@rho-workspace/plugin-kernel/runners/runner.R +6 -3
- package/node_modules/@rho-workspace/plugin-kernel/runners/runner.py +6 -3
- package/node_modules/express-rate-limit/dist/index.cjs +1 -1
- package/node_modules/express-rate-limit/dist/index.mjs +1 -1
- package/node_modules/express-rate-limit/package.json +1 -1
- package/node_modules/ip-address/dist/ipv6.js +1 -1
- package/node_modules/ip-address/package.json +1 -1
- package/node_modules/playwright-core/LICENSE +202 -0
- package/node_modules/playwright-core/NOTICE +5 -0
- package/node_modules/playwright-core/ThirdPartyNotices.txt +13 -0
- package/node_modules/playwright-core/bin/install_media_pack.ps1 +5 -0
- package/node_modules/playwright-core/bin/install_webkit_wsl.ps1 +33 -0
- package/node_modules/playwright-core/bin/reinstall_chrome_beta_linux.sh +42 -0
- package/node_modules/playwright-core/bin/reinstall_chrome_beta_mac.sh +13 -0
- package/node_modules/playwright-core/bin/reinstall_chrome_beta_win.ps1 +24 -0
- package/node_modules/playwright-core/bin/reinstall_chrome_stable_linux.sh +42 -0
- package/node_modules/playwright-core/bin/reinstall_chrome_stable_mac.sh +12 -0
- package/node_modules/playwright-core/bin/reinstall_chrome_stable_win.ps1 +24 -0
- package/node_modules/playwright-core/bin/reinstall_msedge_beta_linux.sh +48 -0
- package/node_modules/playwright-core/bin/reinstall_msedge_beta_mac.sh +11 -0
- package/node_modules/playwright-core/bin/reinstall_msedge_beta_win.ps1 +23 -0
- package/node_modules/playwright-core/bin/reinstall_msedge_dev_linux.sh +48 -0
- package/node_modules/playwright-core/bin/reinstall_msedge_dev_mac.sh +11 -0
- package/node_modules/playwright-core/bin/reinstall_msedge_dev_win.ps1 +23 -0
- package/node_modules/playwright-core/bin/reinstall_msedge_stable_linux.sh +48 -0
- package/node_modules/playwright-core/bin/reinstall_msedge_stable_mac.sh +11 -0
- package/node_modules/playwright-core/bin/reinstall_msedge_stable_win.ps1 +24 -0
- package/node_modules/playwright-core/browsers.json +52 -0
- package/node_modules/playwright-core/cli.js +22 -0
- package/node_modules/playwright-core/index.js +17 -0
- package/node_modules/playwright-core/index.mjs +28 -0
- package/node_modules/playwright-core/lib/bootstrap.js +149 -0
- package/node_modules/playwright-core/lib/coreBundle.js +78041 -0
- package/node_modules/playwright-core/lib/entry/cliDaemon.js +5 -0
- package/node_modules/playwright-core/lib/entry/dashboardApp.js +3 -0
- package/node_modules/playwright-core/lib/entry/mcp.js +10 -0
- package/node_modules/playwright-core/lib/entry/oopBrowserDownload.js +3 -0
- package/node_modules/playwright-core/lib/package.js +50 -0
- package/node_modules/playwright-core/lib/server/chromium/appIcon.png +0 -0
- package/node_modules/playwright-core/lib/server/electron/loader.js +123 -0
- package/node_modules/playwright-core/lib/serverRegistry.js +1939 -0
- package/node_modules/playwright-core/lib/serverRegistry.js.LICENSE +65 -0
- package/node_modules/playwright-core/lib/tools/cli-client/channelSessions.js +141 -0
- package/node_modules/playwright-core/lib/tools/cli-client/cli.js +7 -0
- package/node_modules/playwright-core/lib/tools/cli-client/help.json +808 -0
- package/node_modules/playwright-core/lib/tools/cli-client/minimist.js +128 -0
- package/node_modules/playwright-core/lib/tools/cli-client/output.js +352 -0
- package/node_modules/playwright-core/lib/tools/cli-client/program.js +422 -0
- package/node_modules/playwright-core/lib/tools/cli-client/registry.js +180 -0
- package/node_modules/playwright-core/lib/tools/cli-client/session.js +261 -0
- package/node_modules/playwright-core/lib/tools/dashboard/appIcon.png +0 -0
- package/node_modules/playwright-core/lib/tools/utils/extension.js +112 -0
- package/node_modules/playwright-core/lib/tools/utils/socketConnection.js +108 -0
- package/node_modules/playwright-core/lib/utilsBundle.js +86078 -0
- package/node_modules/playwright-core/lib/utilsBundle.js.LICENSE +1890 -0
- package/node_modules/playwright-core/lib/vite/dashboard/assets/codeMirrorModule--QdMvsKi.css +1 -0
- package/node_modules/playwright-core/lib/vite/dashboard/assets/codeMirrorModule-CQ8RZGBm.js +32 -0
- package/node_modules/playwright-core/lib/vite/dashboard/assets/codicon-DCmgc-ay.ttf +0 -0
- package/node_modules/playwright-core/lib/vite/dashboard/assets/firefox-1bWoP6pv.svg +1 -0
- package/node_modules/playwright-core/lib/vite/dashboard/assets/firefox-beta-k3eOH_eK.svg +1 -0
- package/node_modules/playwright-core/lib/vite/dashboard/assets/firefox-nightly-Cp5nfeDT.svg +1 -0
- package/node_modules/playwright-core/lib/vite/dashboard/assets/index-AwgwcYie.css +1 -0
- package/node_modules/playwright-core/lib/vite/dashboard/assets/index-hRvO4yU2.js +12 -0
- package/node_modules/playwright-core/lib/vite/dashboard/assets/safari-na3_-uQk.svg +1 -0
- package/node_modules/playwright-core/lib/vite/dashboard/index.html +29 -0
- package/node_modules/playwright-core/lib/vite/dashboard/playwright-logo.svg +24 -0
- package/node_modules/playwright-core/lib/vite/htmlReport/index.html +16 -0
- package/node_modules/playwright-core/lib/vite/htmlReport/report.css +2 -0
- package/node_modules/playwright-core/lib/vite/htmlReport/report.js +32 -0
- package/node_modules/playwright-core/lib/vite/recorder/assets/codeMirrorModule--QdMvsKi.css +1 -0
- package/node_modules/playwright-core/lib/vite/recorder/assets/codeMirrorModule-DK72OMRi.js +32 -0
- package/node_modules/playwright-core/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf +0 -0
- package/node_modules/playwright-core/lib/vite/recorder/assets/index-BZpYJZ-P.css +1 -0
- package/node_modules/playwright-core/lib/vite/recorder/assets/index-Cn0mmDuv.js +129 -0
- package/node_modules/playwright-core/lib/vite/recorder/index.html +29 -0
- package/node_modules/playwright-core/lib/vite/recorder/playwright-logo.svg +9 -0
- package/node_modules/playwright-core/lib/vite/traceViewer/assets/codeMirrorModule-BEB2e8M3.js +32 -0
- package/node_modules/playwright-core/lib/vite/traceViewer/assets/defaultSettingsView-D-g2vrvf.js +184 -0
- package/node_modules/playwright-core/lib/vite/traceViewer/assets/urlMatch-L3liM589.js +1 -0
- package/node_modules/playwright-core/lib/vite/traceViewer/assets/xtermModule-B794rD2Z.js +7 -0
- package/node_modules/playwright-core/lib/vite/traceViewer/codeMirrorModule.-QdMvsKi.css +1 -0
- package/node_modules/playwright-core/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
- package/node_modules/playwright-core/lib/vite/traceViewer/defaultSettingsView.C8BeHuxd.css +1 -0
- package/node_modules/playwright-core/lib/vite/traceViewer/index.B_TqY17P.css +1 -0
- package/node_modules/playwright-core/lib/vite/traceViewer/index.html +44 -0
- package/node_modules/playwright-core/lib/vite/traceViewer/index.oNry3Hjv.js +1 -0
- package/node_modules/playwright-core/lib/vite/traceViewer/manifest.webmanifest +16 -0
- package/node_modules/playwright-core/lib/vite/traceViewer/playwright-logo.svg +9 -0
- package/node_modules/playwright-core/lib/vite/traceViewer/snapshot.B_Jk1wbt.js +1 -0
- package/node_modules/playwright-core/lib/vite/traceViewer/snapshot.html +10 -0
- package/node_modules/playwright-core/lib/vite/traceViewer/sw.bundle.js +4 -0
- package/node_modules/playwright-core/lib/vite/traceViewer/uiMode.CYwC_gH1.js +5 -0
- package/node_modules/playwright-core/lib/vite/traceViewer/uiMode.CyMfwkXJ.css +1 -0
- package/node_modules/playwright-core/lib/vite/traceViewer/uiMode.html +18 -0
- package/node_modules/playwright-core/lib/vite/traceViewer/xtermModule.kHJ-D0s7.css +1 -0
- package/node_modules/playwright-core/lib/webp_codec.LICENSE +173 -0
- package/node_modules/playwright-core/lib/webp_codec.wasm +0 -0
- package/node_modules/playwright-core/lib/xdg-open +1267 -0
- package/node_modules/playwright-core/package.json +34 -0
- package/package.json +13 -7
- package/protocol/index.json +75 -21
- package/protocol/operations/agent.sessions.list.json +100 -0
- package/protocol/operations/agent.sessions.read.json +266 -0
- package/protocol/operations/conversation.settings.check.json +147 -4
- package/protocol/operations/conversation.settings.read.json +145 -3
- package/protocol/operations/conversation.settings.update.json +166 -4
- package/protocol/operations/conversation.start.json +2 -1
- package/protocol/operations/extension.call.json +132 -0
- package/protocol/operations/extension.content.json +78 -0
- package/protocol/operations/extension.describe.json +195 -0
- package/protocol/operations/extension.install.json +198 -0
- package/protocol/operations/extension.list.json +123 -0
- package/protocol/operations/extension.manage.json +55 -0
- package/protocol/operations/extension.read.json +112 -0
- package/protocol/operations/kernel.interrupt.json +20 -0
- package/protocol/operations/kernel.read.json +30 -0
- package/protocol/operations/kernel.run.json +36 -1
- package/protocol/operations/kernel.stop.json +10 -0
- package/protocol/operations/project.work.read.json +3 -2
- package/protocol/operations/session.grant.json +9 -0
- package/scripts/browser-checks.mjs +53 -0
- package/scripts/screen-check.mjs +193 -0
- package/scripts/third-party-acceptance.mjs +77 -0
- package/vendor/composition.json +111 -111
- package/vendor/rho-workspace-plugin-agent-0.4.29.tgz +0 -0
- package/vendor/rho-workspace-plugin-annotations-0.5.2.tgz +0 -0
- package/vendor/rho-workspace-plugin-documents-0.4.11.tgz +0 -0
- package/vendor/rho-workspace-plugin-kernel-0.5.5.tgz +0 -0
- package/web/theme.css +17 -2
- package/dist/web/assets/choices-B-y2OYvE.js +0 -1
- package/dist/web/assets/dist-CBM2oq6g.js +0 -1
- package/dist/web/assets/dist-CH56yNDn.js +0 -3
- package/dist/web/assets/explore-in-muWXOGOY.js +0 -1
- package/dist/web/assets/graph-CK-df5lh.js +0 -2
- package/dist/web/assets/index-DBd77u4a.css +0 -1
- package/dist/web/assets/overview-D1Ev2OC_.js +0 -6
- package/dist/web/assets/preview-HbmQKUGY.js +0 -1
- package/dist/web/assets/workspace-d5Hw_ClZ.js +0 -5
- package/vendor/rho-workspace-plugin-agent-0.4.27.tgz +0 -0
- package/vendor/rho-workspace-plugin-documents-0.4.10.tgz +0 -0
- 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
|
-
|
|
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.
|
|
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.
|