@rho-workspace/rho 0.5.5 → 0.5.6
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/dist/agent-connect.d.ts +8 -0
- package/dist/agent-connect.js +15 -0
- package/dist/browser-access.js +1 -1
- package/dist/cli.js +38 -8
- package/dist/contract.generated.d.ts +148 -5
- package/dist/contract.generated.js +1 -1
- package/dist/contracts/owners.generated.js +107 -12
- package/dist/conversations.d.ts +157 -4
- package/dist/conversations.js +69 -6
- package/dist/discovery.js +1 -1
- package/dist/protocol.d.ts +1 -0
- package/dist/protocol.js +12 -5
- package/dist/server.d.ts +2 -10
- package/dist/server.js +71 -8
- package/dist/web/.vite/manifest.json +61 -61
- package/dist/web/assets/{choices-b0XhrGQV.js → choices-D-YfnFP6.js} +1 -1
- package/dist/web/assets/{console-BSjLGe0T.js → console-Trqc0swD.js} +1 -1
- package/dist/web/assets/{dist-Buk0lwzI.js → dist-DZmszrjG.js} +1 -1
- package/dist/web/assets/{dist-Cw8hRIlT.js → dist-DpIHRk3B.js} +1 -1
- package/dist/web/assets/{dist-foH9IKc6.js → dist-eMx6b8N1.js} +1 -1
- package/dist/web/assets/{dist-Tzoe_zm-.js → dist-pF902jHA.js} +1 -1
- package/dist/web/assets/{explore-in-BVUy3ZW_.js → explore-in-BCHqjJ7B.js} +1 -1
- package/dist/web/assets/{graph-1OdIJ9l7.js → graph-lENgfQNH.js} +1 -1
- package/dist/web/assets/index-B3_OVy91.css +1 -0
- package/dist/web/assets/{index-CxmItXqa.js → index-BpL_Kl_s.js} +84 -83
- package/dist/web/assets/{notes-meaning-pVbbQUGP.js → notes-meaning-DcVGUBBY.js} +1 -1
- package/dist/web/assets/{overview-B9UtVJ32.js → overview-CDnVKlOt.js} +3 -3
- package/dist/web/assets/{preview-CksD_5KS.js → preview-BEC1E9MK.js} +1 -1
- package/dist/web/assets/{review-CMxQlQ-C.js → review-DYP0aCXb.js} +1 -1
- package/dist/web/assets/{skills-BFNSyrnD.js → skills-1ec0Z-jx.js} +1 -1
- package/dist/web/assets/{skills-work-BGPSnF_I.js → skills-work-DNexV4OJ.js} +1 -1
- package/dist/web/assets/{studio-process-CsRoTHOh.js → studio-process-EYQgikxq.js} +1 -1
- package/dist/web/assets/{timeline-events-BbuuFWHV.js → timeline-events-Chj2Gbx7.js} +1 -1
- package/dist/web/assets/{work-turns-BvJlIMmA.js → work-turns-CT9RVcWY.js} +1 -1
- package/dist/web/assets/{workspace-CWlkjLNx.js → workspace-COmCbGV3.js} +1 -1
- package/dist/web/composition.json +58 -58
- package/dist/web/index.html +2 -2
- package/dist/web/renderer.json +1 -1
- package/docs/FRONTEND.md +26 -18
- package/docs/HEADLESS.md +37 -27
- package/node_modules/@rho-workspace/plugin-agent/README.md +29 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/acp-command.d.ts +1 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/acp-command.js +9 -1
- package/node_modules/@rho-workspace/plugin-agent/dist/acp-conversation.d.ts +1 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/acp-conversation.js +10 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/external-session-contract.js +10 -5
- package/node_modules/@rho-workspace/plugin-agent/dist/external-session.d.ts +12 -1
- package/node_modules/@rho-workspace/plugin-agent/dist/native-sessions.d.ts +70 -0
- package/node_modules/@rho-workspace/plugin-agent/dist/native-sessions.js +538 -0
- package/node_modules/@rho-workspace/plugin-agent/package.json +2 -1
- package/node_modules/hono/dist/adapter/aws-lambda/handler.js +1 -1
- package/node_modules/hono/dist/cjs/adapter/aws-lambda/handler.js +1 -1
- package/node_modules/hono/dist/cjs/adapter/bun/serve-static.js +1 -1
- package/node_modules/hono/dist/cjs/adapter/bun/websocket.js +1 -1
- package/node_modules/hono/dist/cjs/client/fetch-result-please.js +1 -1
- package/node_modules/hono/dist/cjs/helper/accepts/accepts.js +2 -1
- package/node_modules/hono/dist/cjs/helper/ssg/ssg.js +5 -3
- package/node_modules/hono/dist/cjs/jsx/base.js +49 -30
- package/node_modules/hono/dist/cjs/jsx/components.js +2 -2
- package/node_modules/hono/dist/cjs/jsx/constants.js +2 -0
- package/node_modules/hono/dist/cjs/jsx/jsx-runtime.js +13 -17
- package/node_modules/hono/dist/cjs/middleware/etag/index.js +3 -1
- package/node_modules/hono/dist/cjs/middleware/pretty-json/index.js +1 -0
- package/node_modules/hono/dist/cjs/middleware/timing/timing.js +4 -3
- package/node_modules/hono/dist/cjs/utils/cookie.js +2 -2
- package/node_modules/hono/dist/cjs/utils/mime.js +1 -1
- package/node_modules/hono/dist/cjs/utils/url.js +1 -1
- package/node_modules/hono/dist/client/fetch-result-please.js +1 -1
- package/node_modules/hono/dist/helper/accepts/accepts.js +2 -1
- package/node_modules/hono/dist/helper/ssg/ssg.js +5 -3
- package/node_modules/hono/dist/jsx/base.js +49 -32
- package/node_modules/hono/dist/jsx/components.js +2 -2
- package/node_modules/hono/dist/jsx/constants.js +2 -1
- package/node_modules/hono/dist/jsx/jsx-runtime.js +15 -19
- package/node_modules/hono/dist/middleware/etag/index.js +3 -1
- package/node_modules/hono/dist/middleware/language/language.js +1 -1
- package/node_modules/hono/dist/middleware/pretty-json/index.js +1 -0
- package/node_modules/hono/dist/middleware/timing/timing.js +4 -3
- package/node_modules/hono/dist/utils/cookie.js +2 -2
- package/node_modules/hono/dist/utils/mime.js +1 -1
- package/node_modules/hono/dist/utils/url.js +1 -1
- package/node_modules/hono/package.json +1 -1
- package/package.json +2 -2
- package/protocol/index.json +39 -33
- package/protocol/operations/agent.sessions.list.json +49 -3
- package/protocol/operations/agent.sessions.read.json +53 -4
- package/protocol/operations/conversation.configure.json +29 -0
- package/protocol/operations/conversation.decide.json +29 -0
- package/protocol/operations/conversation.list.json +29 -0
- package/protocol/operations/conversation.permission.json +29 -0
- package/protocol/operations/conversation.read.json +29 -0
- package/protocol/operations/conversation.restore.json +29 -0
- package/protocol/operations/conversation.send.json +29 -0
- package/protocol/operations/conversation.settings.check.json +92 -0
- package/protocol/operations/conversation.settings.read.json +92 -0
- package/protocol/operations/conversation.settings.update.json +92 -0
- package/protocol/operations/conversation.start.json +46 -1
- package/protocol/operations/conversation.stop.json +29 -0
- package/protocol/operations/conversation.trash.json +29 -0
- package/protocol/operations/observation.snapshot.json +29 -0
- package/protocol/operations/session.instructions.json +43 -0
- package/vendor/composition.json +74 -74
- package/vendor/rho-workspace-plugin-agent-0.4.30.tgz +0 -0
- package/web/theme.css +12 -0
- package/dist/web/assets/index-CsC3sTRq.css +0 -1
- package/vendor/rho-workspace-plugin-agent-0.4.29.tgz +0 -0
package/dist/agent-connect.d.ts
CHANGED
|
@@ -12,6 +12,14 @@ export declare const connectLimits: {
|
|
|
12
12
|
};
|
|
13
13
|
export declare function mcpName(root: string): string;
|
|
14
14
|
export declare function mcpCommand(connectionFile: string): string[];
|
|
15
|
+
export declare function connectionInstructions(project: {
|
|
16
|
+
id: string;
|
|
17
|
+
root: string;
|
|
18
|
+
}, stateDirectory: string): {
|
|
19
|
+
request: string;
|
|
20
|
+
prompt: string;
|
|
21
|
+
command: string[];
|
|
22
|
+
};
|
|
15
23
|
export declare function addToAgent(agent: OutsideAgent, binary: string, root: string, name: string, command: string[], limits?: {
|
|
16
24
|
timeoutMs: number;
|
|
17
25
|
outputBytes: number;
|
package/dist/agent-connect.js
CHANGED
|
@@ -13,6 +13,21 @@ export function mcpName(root) {
|
|
|
13
13
|
export function mcpCommand(connectionFile) {
|
|
14
14
|
return [process.execPath, fileURLToPath(new URL('./cli.js', import.meta.url)), '--mcp', connectionFile];
|
|
15
15
|
}
|
|
16
|
+
// Paths are data in an argv array, never an interpolated shell command. Reading these
|
|
17
|
+
// instructions starts nothing, grants no access and includes no credential bytes.
|
|
18
|
+
export function connectionInstructions(project, stateDirectory) {
|
|
19
|
+
const command = [process.execPath, fileURLToPath(new URL('./cli.js', import.meta.url)), '--grant', path.join(stateDirectory, 'connection.json'), '--project-id', project.id];
|
|
20
|
+
const request = `Connect yourself to my existing Rho project ${JSON.stringify(path.basename(project.root))} so we can work on it together.`;
|
|
21
|
+
const prompt = [request, '',
|
|
22
|
+
`Project folder: ${JSON.stringify(project.root)}. Project ID: ${project.id}. Rho is already running on this machine.`,
|
|
23
|
+
'Configure your own client using its supported MCP setup mechanism; inspect your own help or documentation if needed. Keep unrelated configuration, models and credentials intact. Use private local configuration, scoped to this project where supported, and keep connection settings out of version-controlled files. If you cannot run a local stdio MCP server, explain that limitation.',
|
|
24
|
+
'Run this program and argument array, appending --session and a stable name identifying your own Agent (1–128 characters from A–Z, a–z, 0–9, dot, underscore, colon, @ or hyphen). Reuse that name when retrying:',
|
|
25
|
+
JSON.stringify(command),
|
|
26
|
+
'Parse the JSON reply. Register a stdio MCP server using mcp.name, mcp.command and mcp.args exactly as returned. The connection files contain credentials: do not print their contents or put them in the project. Do not start another Rho service.',
|
|
27
|
+
'Reload your MCP tools if supported, or tell me to open a new session in the project folder. Then call rho_index through your configured client tools and verify scopeHint.projectId matches the project ID above. A direct protocol probe is useful diagnostics but does not prove your client loaded its tools. Report configuration and a successful tool call separately; do not claim connected before the call succeeds. If configuration or verification fails, report the actual error and continue from the same connection.',
|
|
28
|
+
].join('\n');
|
|
29
|
+
return { request, prompt, command };
|
|
30
|
+
}
|
|
16
31
|
function run(binary, args, cwd, limits) {
|
|
17
32
|
return new Promise((resolve, reject) => {
|
|
18
33
|
const child = spawn(binary, args, { cwd, env: process.env, stdio: ['ignore', 'pipe', 'pipe'] });
|
package/dist/browser-access.js
CHANGED
|
@@ -37,7 +37,7 @@ export const browserMethods = ['protocol.describe', 'protocol.validate', 'projec
|
|
|
37
37
|
// Only the person at this machine talks to a conversation Rho starts: it runs their own Claude
|
|
38
38
|
// Code with their model credentials. Only they add Rho to their own Agent's configuration. A
|
|
39
39
|
// narrower, expiring link never receives these.
|
|
40
|
-
export const conversationMethods = ['agent.sessions.list', 'agent.sessions.read', 'session.connect', 'conversation.start', 'conversation.send', 'conversation.stop', 'conversation.decide', 'conversation.read', 'conversation.list', 'conversation.trash', 'conversation.restore', 'conversation.delete', 'conversation.permission', 'conversation.configure', 'conversation.settings.read', 'conversation.settings.update', 'conversation.settings.check', 'project.work.read', 'evidence.preview', 'evidence.export'];
|
|
40
|
+
export const conversationMethods = ['agent.sessions.list', 'agent.sessions.read', 'session.instructions', 'session.connect', 'conversation.start', 'conversation.send', 'conversation.stop', 'conversation.decide', 'conversation.read', 'conversation.list', 'conversation.trash', 'conversation.restore', 'conversation.delete', 'conversation.permission', 'conversation.configure', 'conversation.settings.read', 'conversation.settings.update', 'conversation.settings.check', 'project.work.read', 'evidence.preview', 'evidence.export'];
|
|
41
41
|
// The person at this machine. A tab this service served is authorized by the request itself:
|
|
42
42
|
// same origin, loopback only, no link, no code and no expiry. `--pair` stays an explicit,
|
|
43
43
|
// narrower grant for a shared or subfolder-scoped tab.
|
package/dist/cli.js
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { parseArgs } from 'node:util';
|
|
4
4
|
import * as fs from 'node:fs/promises';
|
|
5
|
+
import { constants as fsConstants } from 'node:fs';
|
|
6
|
+
import os from 'node:os';
|
|
5
7
|
import { spawn } from 'node:child_process';
|
|
6
8
|
// A widened link is optional: the fragment carries a one-time code, which no request or Referer
|
|
7
9
|
// sends and which the page redeems and removes. Opening the plain url needs no code at all.
|
|
@@ -43,10 +45,11 @@ Start Rho:
|
|
|
43
45
|
rho --root PROJECTS_DIRECTORY --state-dir SERVICE_STATE [--core ABSOLUTE_CORE_BINARY] [--rscript ABSOLUTE_RSCRIPT] [--python PYTHON] [--ssh SSH] [--serverctl SERVERCTL] [--claude CLAUDE_CODE_BINARY] [--codex CODEX_BINARY] [--agent-backend claude-acp|codex-acp|claude-cli|acp] [--acp-command JSON_ARGV] [--port PORT] [--limits JSON_FILE] [--plugins documents,files,...] [--example on|off] [--open]
|
|
44
46
|
A narrower browser link (optional):
|
|
45
47
|
rho --pair PRIVATE_CONNECTION_FILE [--root PROJECTS_RELATIVE_DIRECTORY] [--open]
|
|
46
|
-
Add Rho to your own Claude Code or Codex for one project
|
|
48
|
+
Add Rho to your own Claude Code or Codex for one project:
|
|
47
49
|
rho --grant PRIVATE_CONNECTION_FILE --project PROJECTS_RELATIVE_DIRECTORY --agent claude-code|codex
|
|
48
|
-
Give
|
|
50
|
+
Give any MCP Agent access to one project and print its stdio MCP configuration:
|
|
49
51
|
rho --grant PRIVATE_CONNECTION_FILE --project PROJECTS_RELATIVE_DIRECTORY [--session NAME]
|
|
52
|
+
rho --grant PRIVATE_CONNECTION_FILE --project-id EXISTING_PROJECT_ID --session NAME
|
|
50
53
|
Serve that access to the Agent over MCP (stdio):
|
|
51
54
|
rho --mcp AGENT_CONNECTION_FILE
|
|
52
55
|
Observe an external ACP client (use this as its agent command):
|
|
@@ -60,8 +63,24 @@ narrower, expiring link for one folder.
|
|
|
60
63
|
PRIVATE_CONNECTION_FILE is the connectionFile the running service printed; it and every
|
|
61
64
|
connection file are credentials.
|
|
62
65
|
`;
|
|
66
|
+
// DeepSeek Harness speaks ACP through its `acp` profile (`dsh acp`). It is used only when both the
|
|
67
|
+
// launcher and that profile are on this computer; nothing is started to find them.
|
|
68
|
+
async function harnessAcp() {
|
|
69
|
+
const home = process.env.DSH_HOME || path.join(os.homedir(), '.dsh');
|
|
70
|
+
const profile = await fs.stat(path.join(home, 'profiles', 'acp', 'package.json')).then(s => s.isFile(), () => false);
|
|
71
|
+
if (!profile)
|
|
72
|
+
return undefined;
|
|
73
|
+
const names = process.platform === 'win32' ? ['dsh.cmd', 'dsh.exe', 'dsh'] : ['dsh'];
|
|
74
|
+
for (const dir of (process.env.PATH ?? '').split(path.delimiter).filter(Boolean))
|
|
75
|
+
for (const name of names) {
|
|
76
|
+
const file = path.join(dir, name);
|
|
77
|
+
if (await fs.access(file, fsConstants.X_OK).then(() => true, () => false))
|
|
78
|
+
return { file, args: ['acp'] };
|
|
79
|
+
}
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
63
82
|
const options = { example: { type: 'string' }, 'verify-evidence': { type: 'string' }, acp: { type: 'string' }, 'acp-agent': { type: 'string' }, root: { type: 'string' }, 'state-dir': { type: 'string' }, core: { type: 'string' }, rscript: { type: 'string' }, python: { type: 'string' }, ssh: { type: 'string' }, serverctl: { type: 'string' }, claude: { type: 'string' }, codex: { type: 'string' }, 'agent-backend': { type: 'string' }, 'acp-command': { type: 'string' }, port: { type: 'string' }, limits: { type: 'string' }, plugins: { type: 'string' }, pair: { type: 'string' }, open: { type: 'boolean' },
|
|
64
|
-
grant: { type: 'string' }, project: { type: 'string' }, session: { type: 'string' }, agent: { type: 'string' }, mcp: { type: 'string' }, help: { type: 'boolean', short: 'h' } };
|
|
83
|
+
grant: { type: 'string' }, project: { type: 'string' }, 'project-id': { type: 'string' }, session: { type: 'string' }, agent: { type: 'string' }, mcp: { type: 'string' }, help: { type: 'boolean', short: 'h' } };
|
|
65
84
|
// A command that is refused says why and what to do. A service that is not running is the
|
|
66
85
|
// common case for --grant and --pair; anything without a known reason keeps its stack.
|
|
67
86
|
function refuse(error, url) {
|
|
@@ -126,8 +145,8 @@ else {
|
|
|
126
145
|
// Access comes from whoever runs Rho: the operator's connection grants one project to one
|
|
127
146
|
// Agent session, and the reply says how Claude Code starts that session's MCP server.
|
|
128
147
|
if (values.grant) {
|
|
129
|
-
if (
|
|
130
|
-
process.stderr.write('--grant needs --project
|
|
148
|
+
if (!!values.project === !!values['project-id']) {
|
|
149
|
+
process.stderr.write('--grant needs exactly one of --project (a folder relative to the service root) or --project-id (an existing project).\n\n' + usage);
|
|
131
150
|
process.exit(2);
|
|
132
151
|
}
|
|
133
152
|
if (values.agent !== undefined && !['claude-code', 'codex'].includes(values.agent)) {
|
|
@@ -141,7 +160,13 @@ else {
|
|
|
141
160
|
const { RhoClient } = await import('./client.js');
|
|
142
161
|
const client = await RhoClient.fromFile(path.resolve(values.grant)).catch(error => refuse(error));
|
|
143
162
|
try {
|
|
144
|
-
const project =
|
|
163
|
+
const project = values['project-id']
|
|
164
|
+
? (await client.call('project.list', {})).find(p => p.id === values['project-id'])
|
|
165
|
+
: await client.call('project.open', { path: values.project });
|
|
166
|
+
if (!project) {
|
|
167
|
+
process.stderr.write('Project is not registered or is outside this connection’s scope. Open the project in Rho and copy its setup prompt again.\n');
|
|
168
|
+
process.exit(1);
|
|
169
|
+
}
|
|
145
170
|
// The same as the project page's button: the grant that Agent keeps, then its own
|
|
146
171
|
// `mcp add`, recorded so the page shows it under that Agent.
|
|
147
172
|
if (values.agent) {
|
|
@@ -203,7 +228,10 @@ else {
|
|
|
203
228
|
const agentBackend = values['agent-backend'] ?? process.env.RHO_AGENT_BACKEND ?? 'claude-acp';
|
|
204
229
|
if (!['claude-acp', 'codex-acp', 'claude-cli', 'acp'].includes(agentBackend))
|
|
205
230
|
throw new Error('Choose --agent-backend claude-acp, codex-acp, claude-cli or acp.');
|
|
206
|
-
|
|
231
|
+
// An ACP command named here, or else DeepSeek Harness's own ACP profile when it is installed, so
|
|
232
|
+
// sessions started in Harness continue in Rho too. Naming one does not make it the default Agent.
|
|
233
|
+
const named = values['acp-command'] ?? process.env.RHO_ACP_COMMAND;
|
|
234
|
+
const acpCommand = agentBackend === 'acp' || named ? parseAcpCommand(named) : await harnessAcp();
|
|
207
235
|
if (values.port !== undefined && !(/^\d+$/.test(values.port) && Number(values.port) <= 65535)) {
|
|
208
236
|
process.stderr.write('Choose --port 0 to 65535, or leave it out.\n');
|
|
209
237
|
process.exit(2);
|
|
@@ -252,9 +280,11 @@ else {
|
|
|
252
280
|
const claudePath = values.claude ?? process.env.RHO_CLAUDE, codexPath = values.codex ?? process.env.RHO_CODEX;
|
|
253
281
|
const env = { ...process.env, ...(claudePath ? { CLAUDE_CODE_EXECUTABLE: claudePath } : {}), ...(codexPath ? { CODEX_PATH: codexPath } : {}) };
|
|
254
282
|
// An ACP agent named with --acp-command is the operator's own command; it is named, not checked.
|
|
255
|
-
if (acpCommand)
|
|
283
|
+
if (acpCommand && agentBackend === 'acp')
|
|
256
284
|
say('Agent: ' + acpCommand.file + ', named with --acp-command.');
|
|
257
285
|
else {
|
|
286
|
+
if (acpCommand)
|
|
287
|
+
say('Also: ' + (acpCommand.args[0] === 'acp' && /dsh(\.[a-z]+)?$/i.test(acpCommand.file) ? 'DeepSeek Harness (' + acpCommand.file + ' acp)' : acpCommand.file) + ', so its sessions can continue here.');
|
|
258
288
|
const missing = agentCommand ? agentCommand.missingClient(agentBackend === 'codex-acp' ? 'codex' : 'claude', env) : null;
|
|
259
289
|
say(missing
|
|
260
290
|
? 'Agent: ' + missing + ' Until then folders can be opened and files read here; the Agent cannot run in them.'
|
|
@@ -1915,21 +1915,31 @@ export interface AgentSessionsListInput {
|
|
|
1915
1915
|
export interface AgentSessionsListOutput {
|
|
1916
1916
|
omitted: number;
|
|
1917
1917
|
/**
|
|
1918
|
-
* @maxItems
|
|
1918
|
+
* @maxItems 128
|
|
1919
1919
|
*/
|
|
1920
1920
|
sessions: {
|
|
1921
|
+
bytes?: number;
|
|
1922
|
+
continueWith?: 'claude-acp' | 'codex-acp' | 'acp' | null;
|
|
1923
|
+
conversationId?: string;
|
|
1921
1924
|
id: string;
|
|
1922
|
-
inputOwner
|
|
1925
|
+
inputOwner?: 'external';
|
|
1923
1926
|
lastAt: string;
|
|
1924
1927
|
observedAt: string;
|
|
1925
1928
|
omittedTurns: number;
|
|
1929
|
+
open?: null | {
|
|
1930
|
+
pid?: number;
|
|
1931
|
+
since?: string;
|
|
1932
|
+
where: string;
|
|
1933
|
+
};
|
|
1926
1934
|
problem?: string;
|
|
1927
1935
|
producer: string;
|
|
1936
|
+
resume?: string;
|
|
1928
1937
|
sessionId: string;
|
|
1929
1938
|
sourceCursor: number;
|
|
1930
1939
|
state: 'running' | 'completed' | 'failed' | 'stopped' | 'unknown';
|
|
1931
1940
|
title: string;
|
|
1932
1941
|
turns: number;
|
|
1942
|
+
where?: string;
|
|
1933
1943
|
}[];
|
|
1934
1944
|
}
|
|
1935
1945
|
export interface AgentSessionsReadInput {
|
|
@@ -1941,21 +1951,31 @@ export interface AgentSessionsReadInput {
|
|
|
1941
1951
|
export interface AgentSessionsReadOutput {
|
|
1942
1952
|
first: number;
|
|
1943
1953
|
session: {
|
|
1954
|
+
bytes?: number;
|
|
1955
|
+
continueWith?: 'claude-acp' | 'codex-acp' | 'acp' | null;
|
|
1956
|
+
conversationId?: string;
|
|
1944
1957
|
id: string;
|
|
1945
|
-
inputOwner
|
|
1958
|
+
inputOwner?: 'external';
|
|
1946
1959
|
lastAt: string;
|
|
1947
1960
|
observedAt: string;
|
|
1948
1961
|
omittedTurns: number;
|
|
1962
|
+
open?: null | {
|
|
1963
|
+
pid?: number;
|
|
1964
|
+
since?: string;
|
|
1965
|
+
where: string;
|
|
1966
|
+
};
|
|
1949
1967
|
problem?: string;
|
|
1950
1968
|
producer: string;
|
|
1969
|
+
resume?: string;
|
|
1951
1970
|
sessionId: string;
|
|
1952
1971
|
sourceCursor: number;
|
|
1953
1972
|
state: 'running' | 'completed' | 'failed' | 'stopped' | 'unknown';
|
|
1954
1973
|
title: string;
|
|
1955
1974
|
turns: number;
|
|
1975
|
+
where?: string;
|
|
1956
1976
|
};
|
|
1957
1977
|
/**
|
|
1958
|
-
* @maxItems
|
|
1978
|
+
* @maxItems 50
|
|
1959
1979
|
*/
|
|
1960
1980
|
turns: {
|
|
1961
1981
|
at: string;
|
|
@@ -1999,6 +2019,7 @@ export interface AgentSessionsReadOutput {
|
|
|
1999
2019
|
*/
|
|
2000
2020
|
paths: string[];
|
|
2001
2021
|
}[];
|
|
2022
|
+
where?: string;
|
|
2002
2023
|
}[];
|
|
2003
2024
|
}
|
|
2004
2025
|
export interface AnnotationCreateInput {
|
|
@@ -4680,6 +4701,11 @@ export interface ConversationConfigureOutput {
|
|
|
4680
4701
|
costUsd?: number | null;
|
|
4681
4702
|
sessionId?: string | null;
|
|
4682
4703
|
trashedAt?: string | null;
|
|
4704
|
+
origin?: {
|
|
4705
|
+
producer: string;
|
|
4706
|
+
where: string;
|
|
4707
|
+
copyOf?: string;
|
|
4708
|
+
} | null;
|
|
4683
4709
|
};
|
|
4684
4710
|
observation: {
|
|
4685
4711
|
at: string;
|
|
@@ -4811,6 +4837,11 @@ export interface ConversationDecideOutput {
|
|
|
4811
4837
|
costUsd?: number | null;
|
|
4812
4838
|
sessionId?: string | null;
|
|
4813
4839
|
trashedAt?: string | null;
|
|
4840
|
+
origin?: {
|
|
4841
|
+
producer: string;
|
|
4842
|
+
where: string;
|
|
4843
|
+
copyOf?: string;
|
|
4844
|
+
} | null;
|
|
4814
4845
|
};
|
|
4815
4846
|
turn: {
|
|
4816
4847
|
id: string;
|
|
@@ -5026,6 +5057,11 @@ export interface ConversationListOutput {
|
|
|
5026
5057
|
costUsd?: number | null;
|
|
5027
5058
|
sessionId?: string | null;
|
|
5028
5059
|
trashedAt?: string | null;
|
|
5060
|
+
origin?: {
|
|
5061
|
+
producer: string;
|
|
5062
|
+
where: string;
|
|
5063
|
+
copyOf?: string;
|
|
5064
|
+
} | null;
|
|
5029
5065
|
}[];
|
|
5030
5066
|
}
|
|
5031
5067
|
export interface ConversationPermissionInput {
|
|
@@ -5070,6 +5106,11 @@ export interface ConversationPermissionOutput {
|
|
|
5070
5106
|
costUsd?: number | null;
|
|
5071
5107
|
sessionId?: string | null;
|
|
5072
5108
|
trashedAt?: string | null;
|
|
5109
|
+
origin?: {
|
|
5110
|
+
producer: string;
|
|
5111
|
+
where: string;
|
|
5112
|
+
copyOf?: string;
|
|
5113
|
+
} | null;
|
|
5073
5114
|
};
|
|
5074
5115
|
turn: {
|
|
5075
5116
|
id: string;
|
|
@@ -5276,6 +5317,11 @@ export interface ConversationReadOutput {
|
|
|
5276
5317
|
costUsd?: number | null;
|
|
5277
5318
|
sessionId?: string | null;
|
|
5278
5319
|
trashedAt?: string | null;
|
|
5320
|
+
origin?: {
|
|
5321
|
+
producer: string;
|
|
5322
|
+
where: string;
|
|
5323
|
+
copyOf?: string;
|
|
5324
|
+
} | null;
|
|
5279
5325
|
};
|
|
5280
5326
|
observation?: {
|
|
5281
5327
|
at: string;
|
|
@@ -5567,6 +5613,11 @@ export interface ConversationRestoreOutput {
|
|
|
5567
5613
|
costUsd?: number | null;
|
|
5568
5614
|
sessionId?: string | null;
|
|
5569
5615
|
trashedAt?: string | null;
|
|
5616
|
+
origin?: {
|
|
5617
|
+
producer: string;
|
|
5618
|
+
where: string;
|
|
5619
|
+
copyOf?: string;
|
|
5620
|
+
} | null;
|
|
5570
5621
|
};
|
|
5571
5622
|
}
|
|
5572
5623
|
export interface ConversationSendInput {
|
|
@@ -5615,6 +5666,11 @@ export interface ConversationSendOutput {
|
|
|
5615
5666
|
costUsd?: number | null;
|
|
5616
5667
|
sessionId?: string | null;
|
|
5617
5668
|
trashedAt?: string | null;
|
|
5669
|
+
origin?: {
|
|
5670
|
+
producer: string;
|
|
5671
|
+
where: string;
|
|
5672
|
+
copyOf?: string;
|
|
5673
|
+
} | null;
|
|
5618
5674
|
};
|
|
5619
5675
|
turn: {
|
|
5620
5676
|
id: string;
|
|
@@ -5884,6 +5940,23 @@ export interface ConversationSettingsCheckOutput {
|
|
|
5884
5940
|
describe?: {
|
|
5885
5941
|
enabled: boolean;
|
|
5886
5942
|
};
|
|
5943
|
+
agents?: {
|
|
5944
|
+
'claude-acp': {
|
|
5945
|
+
found: boolean;
|
|
5946
|
+
problem?: string;
|
|
5947
|
+
name?: string | null;
|
|
5948
|
+
};
|
|
5949
|
+
'codex-acp': {
|
|
5950
|
+
found: boolean;
|
|
5951
|
+
problem?: string;
|
|
5952
|
+
name?: string | null;
|
|
5953
|
+
};
|
|
5954
|
+
acp: {
|
|
5955
|
+
found: boolean;
|
|
5956
|
+
problem?: string;
|
|
5957
|
+
name?: string | null;
|
|
5958
|
+
};
|
|
5959
|
+
};
|
|
5887
5960
|
}
|
|
5888
5961
|
export interface ConversationSettingsReadInput {
|
|
5889
5962
|
projectId: string;
|
|
@@ -5988,6 +6061,23 @@ export interface ConversationSettingsReadOutput {
|
|
|
5988
6061
|
describe?: {
|
|
5989
6062
|
enabled: boolean;
|
|
5990
6063
|
};
|
|
6064
|
+
agents?: {
|
|
6065
|
+
'claude-acp': {
|
|
6066
|
+
found: boolean;
|
|
6067
|
+
problem?: string;
|
|
6068
|
+
name?: string | null;
|
|
6069
|
+
};
|
|
6070
|
+
'codex-acp': {
|
|
6071
|
+
found: boolean;
|
|
6072
|
+
problem?: string;
|
|
6073
|
+
name?: string | null;
|
|
6074
|
+
};
|
|
6075
|
+
acp: {
|
|
6076
|
+
found: boolean;
|
|
6077
|
+
problem?: string;
|
|
6078
|
+
name?: string | null;
|
|
6079
|
+
};
|
|
6080
|
+
};
|
|
5991
6081
|
}
|
|
5992
6082
|
export interface ConversationSettingsUpdateInput {
|
|
5993
6083
|
projectId: string;
|
|
@@ -6108,6 +6198,23 @@ export interface ConversationSettingsUpdateOutput {
|
|
|
6108
6198
|
describe?: {
|
|
6109
6199
|
enabled: boolean;
|
|
6110
6200
|
};
|
|
6201
|
+
agents?: {
|
|
6202
|
+
'claude-acp': {
|
|
6203
|
+
found: boolean;
|
|
6204
|
+
problem?: string;
|
|
6205
|
+
name?: string | null;
|
|
6206
|
+
};
|
|
6207
|
+
'codex-acp': {
|
|
6208
|
+
found: boolean;
|
|
6209
|
+
problem?: string;
|
|
6210
|
+
name?: string | null;
|
|
6211
|
+
};
|
|
6212
|
+
acp: {
|
|
6213
|
+
found: boolean;
|
|
6214
|
+
problem?: string;
|
|
6215
|
+
name?: string | null;
|
|
6216
|
+
};
|
|
6217
|
+
};
|
|
6111
6218
|
}
|
|
6112
6219
|
export interface ConversationStartInput {
|
|
6113
6220
|
projectId: string;
|
|
@@ -6121,6 +6228,10 @@ export interface ConversationStartInput {
|
|
|
6121
6228
|
* @maxItems 8
|
|
6122
6229
|
*/
|
|
6123
6230
|
contexts?: string[];
|
|
6231
|
+
continue?: {
|
|
6232
|
+
session: string;
|
|
6233
|
+
copy?: boolean;
|
|
6234
|
+
};
|
|
6124
6235
|
}
|
|
6125
6236
|
export interface ConversationStartOutput {
|
|
6126
6237
|
conversation: {
|
|
@@ -6157,6 +6268,11 @@ export interface ConversationStartOutput {
|
|
|
6157
6268
|
costUsd?: number | null;
|
|
6158
6269
|
sessionId?: string | null;
|
|
6159
6270
|
trashedAt?: string | null;
|
|
6271
|
+
origin?: {
|
|
6272
|
+
producer: string;
|
|
6273
|
+
where: string;
|
|
6274
|
+
copyOf?: string;
|
|
6275
|
+
} | null;
|
|
6160
6276
|
};
|
|
6161
6277
|
turn: {
|
|
6162
6278
|
id: string;
|
|
@@ -6362,6 +6478,11 @@ export interface ConversationStopOutput {
|
|
|
6362
6478
|
costUsd?: number | null;
|
|
6363
6479
|
sessionId?: string | null;
|
|
6364
6480
|
trashedAt?: string | null;
|
|
6481
|
+
origin?: {
|
|
6482
|
+
producer: string;
|
|
6483
|
+
where: string;
|
|
6484
|
+
copyOf?: string;
|
|
6485
|
+
} | null;
|
|
6365
6486
|
};
|
|
6366
6487
|
turn: {
|
|
6367
6488
|
id: string;
|
|
@@ -6566,6 +6687,11 @@ export interface ConversationTrashOutput {
|
|
|
6566
6687
|
costUsd?: number | null;
|
|
6567
6688
|
sessionId?: string | null;
|
|
6568
6689
|
trashedAt?: string | null;
|
|
6690
|
+
origin?: {
|
|
6691
|
+
producer: string;
|
|
6692
|
+
where: string;
|
|
6693
|
+
copyOf?: string;
|
|
6694
|
+
} | null;
|
|
6569
6695
|
};
|
|
6570
6696
|
}
|
|
6571
6697
|
export interface DataCompareInput {
|
|
@@ -9738,6 +9864,11 @@ export interface ObservationSnapshotOutput {
|
|
|
9738
9864
|
costUsd?: number | null;
|
|
9739
9865
|
sessionId?: string | null;
|
|
9740
9866
|
trashedAt?: string | null;
|
|
9867
|
+
origin?: {
|
|
9868
|
+
producer: string;
|
|
9869
|
+
where: string;
|
|
9870
|
+
copyOf?: string;
|
|
9871
|
+
} | null;
|
|
9741
9872
|
}[];
|
|
9742
9873
|
selection: {
|
|
9743
9874
|
resource: {
|
|
@@ -11097,6 +11228,14 @@ export interface SessionGrantOutput {
|
|
|
11097
11228
|
externalSessionId: string;
|
|
11098
11229
|
profile?: 'layered-business' | 'layered-presentation';
|
|
11099
11230
|
}
|
|
11231
|
+
export interface SessionInstructionsInput {
|
|
11232
|
+
projectId: string;
|
|
11233
|
+
}
|
|
11234
|
+
export interface SessionInstructionsOutput {
|
|
11235
|
+
request: string;
|
|
11236
|
+
prompt: string;
|
|
11237
|
+
command: string[];
|
|
11238
|
+
}
|
|
11100
11239
|
export interface SkillListInput {
|
|
11101
11240
|
projectId: string;
|
|
11102
11241
|
}
|
|
@@ -13437,6 +13576,10 @@ export interface RhoOperations {
|
|
|
13437
13576
|
input: SessionGrantInput;
|
|
13438
13577
|
output: SessionGrantOutput;
|
|
13439
13578
|
};
|
|
13579
|
+
"session.instructions": {
|
|
13580
|
+
input: SessionInstructionsInput;
|
|
13581
|
+
output: SessionInstructionsOutput;
|
|
13582
|
+
};
|
|
13440
13583
|
"skill.list": {
|
|
13441
13584
|
input: SkillListInput;
|
|
13442
13585
|
output: SkillListOutput;
|
|
@@ -13522,5 +13665,5 @@ export type RhoMethod = keyof RhoOperations;
|
|
|
13522
13665
|
export type RhoInput<M extends RhoMethod> = RhoOperations[M]['input'];
|
|
13523
13666
|
export type RhoOutput<M extends RhoMethod> = RhoOperations[M]['output'];
|
|
13524
13667
|
/** The names a caller may pass to protocol.describe / protocol.validate. */
|
|
13525
|
-
export declare const rhoMethods: readonly ["action.cancel", "action.export", "action.list", "action.lookup", "action.observe", "action.output", "action.retry", "action.submit", "agent.activity.capture", "agent.activity.outputs", "agent.activity.read", "agent.sessions.list", "agent.sessions.read", "annotation.create", "annotation.decide", "annotation.list", "annotation.read", "annotation.reply", "artifact.check", "binding.activity", "binding.activity.append", "binding.close", "binding.list", "binding.open", "capability.configure", "capability.index", "capability.list", "capability.resolve", "composition.apply", "composition.put", "composition.read", "composition.undo", "console.events", "console.list", "console.output", "console.run", "console.stop", "context.create", "context.read", "conversation.configure", "conversation.decide", "conversation.delete", "conversation.list", "conversation.permission", "conversation.read", "conversation.restore", "conversation.send", "conversation.settings.check", "conversation.settings.read", "conversation.settings.update", "conversation.start", "conversation.stop", "conversation.trash", "data.compare", "data.page", "data.plot", "document.abandonSave", "document.change.read", "document.edit", "document.history", "document.open", "document.read", "document.revert", "document.save", "document.undo", "document.undoOwn", "evidence.export", "evidence.preview", "extension.call", "extension.content", "extension.describe", "extension.install", "extension.list", "extension.manage", "extension.read", "feedback.read", "feedback.status", "feedback.submit", "interaction.selection.read", "interaction.selection.set", "kernel.events", "kernel.inspect", "kernel.interrupt", "kernel.place.check", "kernel.place.copy", "kernel.place.list", "kernel.place.set", "kernel.places", "kernel.plot", "kernel.read", "kernel.run", "kernel.server.skill", "kernel.servers", "kernel.stop", "media.describe", "object.read", "observation.snapshot", "project.create", "project.createWorkspace", "project.doctor", "project.entries", "project.list", "project.open", "project.openFile", "project.pick", "project.runs", "project.source.add", "project.source.pick", "project.work.read", "protocol.describe", "protocol.validate", "requirements.check", "requirements.prepare", "resource.capture", "resource.list", "resource.read", "resource.register", "selection.set", "session.browser.pair", "session.browser.revoke", "session.connect", "session.grant", "skill.list", "skill.read", "skills.change", "skills.list", "skills.read", "skills.undo", "task.map.declare", "task.map.present", "task.map.read", "task.map.respond", "task.routing.put", "view.close", "view.observations.read", "view.observe", "view.protection.set", "workspace.enhance", "workspace.export", "workspace.observe", "workspace.restore", "workspace.save"];
|
|
13668
|
+
export declare const rhoMethods: readonly ["action.cancel", "action.export", "action.list", "action.lookup", "action.observe", "action.output", "action.retry", "action.submit", "agent.activity.capture", "agent.activity.outputs", "agent.activity.read", "agent.sessions.list", "agent.sessions.read", "annotation.create", "annotation.decide", "annotation.list", "annotation.read", "annotation.reply", "artifact.check", "binding.activity", "binding.activity.append", "binding.close", "binding.list", "binding.open", "capability.configure", "capability.index", "capability.list", "capability.resolve", "composition.apply", "composition.put", "composition.read", "composition.undo", "console.events", "console.list", "console.output", "console.run", "console.stop", "context.create", "context.read", "conversation.configure", "conversation.decide", "conversation.delete", "conversation.list", "conversation.permission", "conversation.read", "conversation.restore", "conversation.send", "conversation.settings.check", "conversation.settings.read", "conversation.settings.update", "conversation.start", "conversation.stop", "conversation.trash", "data.compare", "data.page", "data.plot", "document.abandonSave", "document.change.read", "document.edit", "document.history", "document.open", "document.read", "document.revert", "document.save", "document.undo", "document.undoOwn", "evidence.export", "evidence.preview", "extension.call", "extension.content", "extension.describe", "extension.install", "extension.list", "extension.manage", "extension.read", "feedback.read", "feedback.status", "feedback.submit", "interaction.selection.read", "interaction.selection.set", "kernel.events", "kernel.inspect", "kernel.interrupt", "kernel.place.check", "kernel.place.copy", "kernel.place.list", "kernel.place.set", "kernel.places", "kernel.plot", "kernel.read", "kernel.run", "kernel.server.skill", "kernel.servers", "kernel.stop", "media.describe", "object.read", "observation.snapshot", "project.create", "project.createWorkspace", "project.doctor", "project.entries", "project.list", "project.open", "project.openFile", "project.pick", "project.runs", "project.source.add", "project.source.pick", "project.work.read", "protocol.describe", "protocol.validate", "requirements.check", "requirements.prepare", "resource.capture", "resource.list", "resource.read", "resource.register", "selection.set", "session.browser.pair", "session.browser.revoke", "session.connect", "session.grant", "session.instructions", "skill.list", "skill.read", "skills.change", "skills.list", "skills.read", "skills.undo", "task.map.declare", "task.map.present", "task.map.read", "task.map.respond", "task.routing.put", "view.close", "view.observations.read", "view.observe", "view.protection.set", "workspace.enhance", "workspace.export", "workspace.observe", "workspace.restore", "workspace.save"];
|
|
13526
13669
|
export type RhoInputFor<M extends RhoMethod> = RhoOperations[M]['input'];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/** The names a caller may pass to protocol.describe / protocol.validate. */
|
|
2
|
-
export const rhoMethods = ["action.cancel", "action.export", "action.list", "action.lookup", "action.observe", "action.output", "action.retry", "action.submit", "agent.activity.capture", "agent.activity.outputs", "agent.activity.read", "agent.sessions.list", "agent.sessions.read", "annotation.create", "annotation.decide", "annotation.list", "annotation.read", "annotation.reply", "artifact.check", "binding.activity", "binding.activity.append", "binding.close", "binding.list", "binding.open", "capability.configure", "capability.index", "capability.list", "capability.resolve", "composition.apply", "composition.put", "composition.read", "composition.undo", "console.events", "console.list", "console.output", "console.run", "console.stop", "context.create", "context.read", "conversation.configure", "conversation.decide", "conversation.delete", "conversation.list", "conversation.permission", "conversation.read", "conversation.restore", "conversation.send", "conversation.settings.check", "conversation.settings.read", "conversation.settings.update", "conversation.start", "conversation.stop", "conversation.trash", "data.compare", "data.page", "data.plot", "document.abandonSave", "document.change.read", "document.edit", "document.history", "document.open", "document.read", "document.revert", "document.save", "document.undo", "document.undoOwn", "evidence.export", "evidence.preview", "extension.call", "extension.content", "extension.describe", "extension.install", "extension.list", "extension.manage", "extension.read", "feedback.read", "feedback.status", "feedback.submit", "interaction.selection.read", "interaction.selection.set", "kernel.events", "kernel.inspect", "kernel.interrupt", "kernel.place.check", "kernel.place.copy", "kernel.place.list", "kernel.place.set", "kernel.places", "kernel.plot", "kernel.read", "kernel.run", "kernel.server.skill", "kernel.servers", "kernel.stop", "media.describe", "object.read", "observation.snapshot", "project.create", "project.createWorkspace", "project.doctor", "project.entries", "project.list", "project.open", "project.openFile", "project.pick", "project.runs", "project.source.add", "project.source.pick", "project.work.read", "protocol.describe", "protocol.validate", "requirements.check", "requirements.prepare", "resource.capture", "resource.list", "resource.read", "resource.register", "selection.set", "session.browser.pair", "session.browser.revoke", "session.connect", "session.grant", "skill.list", "skill.read", "skills.change", "skills.list", "skills.read", "skills.undo", "task.map.declare", "task.map.present", "task.map.read", "task.map.respond", "task.routing.put", "view.close", "view.observations.read", "view.observe", "view.protection.set", "workspace.enhance", "workspace.export", "workspace.observe", "workspace.restore", "workspace.save"];
|
|
2
|
+
export const rhoMethods = ["action.cancel", "action.export", "action.list", "action.lookup", "action.observe", "action.output", "action.retry", "action.submit", "agent.activity.capture", "agent.activity.outputs", "agent.activity.read", "agent.sessions.list", "agent.sessions.read", "annotation.create", "annotation.decide", "annotation.list", "annotation.read", "annotation.reply", "artifact.check", "binding.activity", "binding.activity.append", "binding.close", "binding.list", "binding.open", "capability.configure", "capability.index", "capability.list", "capability.resolve", "composition.apply", "composition.put", "composition.read", "composition.undo", "console.events", "console.list", "console.output", "console.run", "console.stop", "context.create", "context.read", "conversation.configure", "conversation.decide", "conversation.delete", "conversation.list", "conversation.permission", "conversation.read", "conversation.restore", "conversation.send", "conversation.settings.check", "conversation.settings.read", "conversation.settings.update", "conversation.start", "conversation.stop", "conversation.trash", "data.compare", "data.page", "data.plot", "document.abandonSave", "document.change.read", "document.edit", "document.history", "document.open", "document.read", "document.revert", "document.save", "document.undo", "document.undoOwn", "evidence.export", "evidence.preview", "extension.call", "extension.content", "extension.describe", "extension.install", "extension.list", "extension.manage", "extension.read", "feedback.read", "feedback.status", "feedback.submit", "interaction.selection.read", "interaction.selection.set", "kernel.events", "kernel.inspect", "kernel.interrupt", "kernel.place.check", "kernel.place.copy", "kernel.place.list", "kernel.place.set", "kernel.places", "kernel.plot", "kernel.read", "kernel.run", "kernel.server.skill", "kernel.servers", "kernel.stop", "media.describe", "object.read", "observation.snapshot", "project.create", "project.createWorkspace", "project.doctor", "project.entries", "project.list", "project.open", "project.openFile", "project.pick", "project.runs", "project.source.add", "project.source.pick", "project.work.read", "protocol.describe", "protocol.validate", "requirements.check", "requirements.prepare", "resource.capture", "resource.list", "resource.read", "resource.register", "selection.set", "session.browser.pair", "session.browser.revoke", "session.connect", "session.grant", "session.instructions", "skill.list", "skill.read", "skills.change", "skills.list", "skills.read", "skills.undo", "task.map.declare", "task.map.present", "task.map.read", "task.map.respond", "task.routing.put", "view.close", "view.observations.read", "view.observe", "view.protection.set", "workspace.enhance", "workspace.export", "workspace.observe", "workspace.restore", "workspace.save"];
|