@rho-workspace/rho 0.5.5 → 0.5.7

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 (250) hide show
  1. package/dist/agent-connect.d.ts +42 -0
  2. package/dist/agent-connect.js +68 -0
  3. package/dist/answer-board.js +3 -3
  4. package/dist/bridge.js +6 -1
  5. package/dist/browser-access.d.ts +1 -0
  6. package/dist/browser-access.js +5 -3
  7. package/dist/capabilities.d.ts +21 -5
  8. package/dist/capabilities.js +6 -4
  9. package/dist/cli.js +113 -18
  10. package/dist/composition.d.ts +1 -1
  11. package/dist/composition.js +13 -3
  12. package/dist/connect-cli.d.ts +50 -0
  13. package/dist/connect-cli.js +128 -0
  14. package/dist/contract.generated.d.ts +1437 -381
  15. package/dist/contract.generated.js +1 -1
  16. package/dist/contracts/owners.generated.js +1160 -267
  17. package/dist/conversation-presentation.d.ts +9 -2
  18. package/dist/conversation-presentation.js +3 -1
  19. package/dist/conversations.d.ts +306 -7
  20. package/dist/conversations.js +208 -22
  21. package/dist/discovery.js +3 -3
  22. package/dist/extension-contract.d.ts +19 -0
  23. package/dist/extension-contract.js +15 -6
  24. package/dist/extension-markets.d.ts +74 -0
  25. package/dist/extension-markets.js +166 -0
  26. package/dist/extensions.d.ts +29 -1
  27. package/dist/extensions.js +13 -4
  28. package/dist/external-work.d.ts +22 -0
  29. package/dist/external-work.js +91 -0
  30. package/dist/plugin-cli.js +75 -3
  31. package/dist/plugin-inventory.d.ts +56 -0
  32. package/dist/plugin-inventory.js +41 -0
  33. package/dist/plugin-inventory.json +1581 -102
  34. package/dist/plugin-presentation.d.ts +105 -2
  35. package/dist/plugin-presentation.js +59 -5
  36. package/dist/plugins.d.ts +14 -3
  37. package/dist/plugins.js +12 -6
  38. package/dist/project-notes.js +1 -1
  39. package/dist/protocol.d.ts +7 -0
  40. package/dist/protocol.js +40 -15
  41. package/dist/replay.js +4 -0
  42. package/dist/response-contracts.js +26 -11
  43. package/dist/running.d.ts +10 -0
  44. package/dist/running.js +45 -0
  45. package/dist/server.d.ts +4 -10
  46. package/dist/server.js +140 -14
  47. package/dist/state.d.ts +8 -0
  48. package/dist/state.js +8 -0
  49. package/dist/studio-layout.js +3 -3
  50. package/dist/task-frame.d.ts +1 -1
  51. package/dist/timeline-events.d.ts +1 -0
  52. package/dist/timeline-events.js +8 -1
  53. package/dist/ui-context.d.ts +73 -0
  54. package/dist/ui-context.js +98 -0
  55. package/dist/ui-contract.d.ts +23 -0
  56. package/dist/web/.vite/manifest.json +135 -76
  57. package/dist/web/assets/answer-board-CeYS8k8y.js +1 -0
  58. package/dist/web/assets/choices-D8vGwsl2.js +1 -0
  59. package/dist/web/assets/{console-BSjLGe0T.js → console-Dyuo1q4N.js} +4 -4
  60. package/dist/web/assets/{dist-Tzoe_zm-.js → dist-CSiCyBml.js} +1 -1
  61. package/dist/web/assets/{dist-Cw8hRIlT.js → dist-D9FLb9Hm.js} +1 -1
  62. package/dist/web/assets/{dist-foH9IKc6.js → dist-FXbTBwML.js} +1 -1
  63. package/dist/web/assets/{dist-Buk0lwzI.js → dist-l3DUhbw5.js} +1 -1
  64. package/dist/web/assets/{explore-in-BVUy3ZW_.js → explore-in-BfSFGRh2.js} +1 -1
  65. package/dist/web/assets/graph-BU2_o5uA.js +2 -0
  66. package/dist/web/assets/index-C16mXVvk.css +1 -0
  67. package/dist/web/assets/index-CWg9XYXx.js +952 -0
  68. package/dist/web/assets/markdown.reader-Ct2-e2Zt.png +0 -0
  69. package/dist/web/assets/{notes-meaning-pVbbQUGP.js → notes-meaning-T2m5zQfv.js} +1 -1
  70. package/dist/web/assets/overview-PzfLJCo-.js +6 -0
  71. package/dist/web/assets/preview-BguEdsza.js +1 -0
  72. package/dist/web/assets/previews-pWNik-2g.js +3 -0
  73. package/dist/web/assets/{review-CMxQlQ-C.js → review-Dy_85lcH.js} +1 -1
  74. package/dist/web/assets/rho.editor-CCJeyHma.png +0 -0
  75. package/dist/web/assets/rho.flow-WkMj6fRS.png +0 -0
  76. package/dist/web/assets/rho.media-Cc6amodO.png +0 -0
  77. package/dist/web/assets/rho.notebook-6vsZKGDq.png +0 -0
  78. package/dist/web/assets/rho.object-BGoeXjte.png +0 -0
  79. package/dist/web/assets/rho.plots-yIiISCkb.png +0 -0
  80. package/dist/web/assets/rho.scatter-DwHxesCs.png +0 -0
  81. package/dist/web/assets/rho.servers-DKf_mnNq.png +0 -0
  82. package/dist/web/assets/rho.table-DWOGaWDa.png +0 -0
  83. package/dist/web/assets/rho.variables-CKcWczhQ.png +0 -0
  84. package/dist/web/assets/{skills-BFNSyrnD.js → skills-Dyz7mBlc.js} +1 -1
  85. package/dist/web/assets/{skills-work-BGPSnF_I.js → skills-work-BEGqlCkx.js} +1 -1
  86. package/dist/web/assets/studio-process-D-ykbC4D.js +2 -0
  87. package/dist/web/assets/timeline-events-DKTho9fU.js +1 -0
  88. package/dist/web/assets/work-turns-DSabCogR.js +1 -0
  89. package/dist/web/assets/{workspace-CWlkjLNx.js → workspace-DfjBL--r.js} +2 -2
  90. package/dist/web/composition.json +135 -80
  91. package/dist/web/index.html +3 -3
  92. package/dist/web/renderer.json +1 -1
  93. package/dist/web-assets.js +2 -2
  94. package/dist/work-graph.d.ts +11 -1
  95. package/dist/work-graph.js +16 -5
  96. package/dist/workspace.d.ts +2 -2
  97. package/dist/workspace.js +8 -7
  98. package/docs/FRONTEND.md +71 -21
  99. package/docs/HEADLESS.md +127 -24
  100. package/docs/THIRD-PARTY-PLUGINS.md +75 -3
  101. package/node_modules/@rho-workspace/plugin-agent/README.md +34 -0
  102. package/node_modules/@rho-workspace/plugin-agent/dist/acp-command.d.ts +32 -0
  103. package/node_modules/@rho-workspace/plugin-agent/dist/acp-command.js +54 -11
  104. package/node_modules/@rho-workspace/plugin-agent/dist/acp-conversation.d.ts +1 -0
  105. package/node_modules/@rho-workspace/plugin-agent/dist/acp-conversation.js +29 -3
  106. package/node_modules/@rho-workspace/plugin-agent/dist/external-session-contract.js +11 -5
  107. package/node_modules/@rho-workspace/plugin-agent/dist/external-session.d.ts +12 -1
  108. package/node_modules/@rho-workspace/plugin-agent/dist/index.d.ts +8 -0
  109. package/node_modules/@rho-workspace/plugin-agent/dist/index.js +3 -2
  110. package/node_modules/@rho-workspace/plugin-agent/dist/mcp-entry.d.ts +13 -0
  111. package/node_modules/@rho-workspace/plugin-agent/dist/mcp-entry.js +13 -0
  112. package/node_modules/@rho-workspace/plugin-agent/dist/mcp.js +16 -8
  113. package/node_modules/@rho-workspace/plugin-agent/dist/native-sessions.d.ts +70 -0
  114. package/node_modules/@rho-workspace/plugin-agent/dist/native-sessions.js +538 -0
  115. package/node_modules/@rho-workspace/plugin-agent/package.json +2 -1
  116. package/node_modules/@rho-workspace/plugin-figures/LICENSE +661 -0
  117. package/node_modules/@rho-workspace/plugin-figures/README.md +191 -0
  118. package/node_modules/@rho-workspace/plugin-figures/dist/index.d.ts +236 -0
  119. package/node_modules/@rho-workspace/plugin-figures/dist/index.js +165 -0
  120. package/node_modules/@rho-workspace/plugin-figures/dist/operations.d.ts +44 -0
  121. package/node_modules/@rho-workspace/plugin-figures/dist/operations.js +39 -0
  122. package/node_modules/@rho-workspace/plugin-figures/dist/presentation.d.ts +19 -0
  123. package/node_modules/@rho-workspace/plugin-figures/dist/presentation.js +26 -0
  124. package/node_modules/@rho-workspace/plugin-figures/dist/record.d.ts +188 -0
  125. package/node_modules/@rho-workspace/plugin-figures/dist/record.js +143 -0
  126. package/node_modules/@rho-workspace/plugin-figures/dist/ui-styles.d.ts +1 -0
  127. package/node_modules/@rho-workspace/plugin-figures/dist/ui-styles.js +68 -0
  128. package/node_modules/@rho-workspace/plugin-figures/dist/ui.d.ts +56 -0
  129. package/node_modules/@rho-workspace/plugin-figures/dist/ui.js +363 -0
  130. package/node_modules/@rho-workspace/plugin-figures/package.json +41 -0
  131. package/node_modules/@rho-workspace/plugin-figures/py/figures.py +856 -0
  132. package/node_modules/@rho-workspace/plugin-figures/r/figures.R +775 -0
  133. package/node_modules/@rho-workspace/plugin-kernel/README.md +27 -3
  134. package/node_modules/@rho-workspace/plugin-kernel/dist/contract.d.ts +12 -0
  135. package/node_modules/@rho-workspace/plugin-kernel/dist/contract.js +8 -1
  136. package/node_modules/@rho-workspace/plugin-kernel/dist/index.d.ts +61 -0
  137. package/node_modules/@rho-workspace/plugin-kernel/dist/index.js +125 -9
  138. package/node_modules/@rho-workspace/plugin-kernel/dist/session-scope.d.ts +14 -0
  139. package/node_modules/@rho-workspace/plugin-kernel/dist/session-scope.js +9 -0
  140. package/node_modules/@rho-workspace/plugin-kernel/dist/ui-base.d.ts +23 -5
  141. package/node_modules/@rho-workspace/plugin-kernel/dist/ui-notebook-work.js +1 -1
  142. package/node_modules/@rho-workspace/plugin-kernel/dist/ui-notebook.d.ts +6 -4
  143. package/node_modules/@rho-workspace/plugin-kernel/dist/ui-notebook.js +44 -17
  144. package/node_modules/@rho-workspace/plugin-kernel/dist/ui-styles.js +6 -0
  145. package/node_modules/@rho-workspace/plugin-kernel/package.json +1 -1
  146. package/node_modules/@rho-workspace/plugin-kernel/runners/runner.R +144 -4
  147. package/node_modules/@rho-workspace/plugin-kernel/runners/runner.py +106 -1
  148. package/node_modules/@rho-workspace/plugin-tables/README.md +5 -0
  149. package/node_modules/@rho-workspace/plugin-tables/dist/index.d.ts +1 -0
  150. package/node_modules/@rho-workspace/plugin-tables/dist/index.js +19 -3
  151. package/node_modules/@rho-workspace/plugin-tables/dist/ui.js +1 -1
  152. package/node_modules/@rho-workspace/plugin-tables/package.json +1 -1
  153. package/node_modules/hono/dist/adapter/aws-lambda/handler.js +1 -1
  154. package/node_modules/hono/dist/cjs/adapter/aws-lambda/handler.js +1 -1
  155. package/node_modules/hono/dist/cjs/adapter/bun/serve-static.js +1 -1
  156. package/node_modules/hono/dist/cjs/adapter/bun/websocket.js +1 -1
  157. package/node_modules/hono/dist/cjs/client/fetch-result-please.js +1 -1
  158. package/node_modules/hono/dist/cjs/helper/accepts/accepts.js +2 -1
  159. package/node_modules/hono/dist/cjs/helper/ssg/ssg.js +5 -3
  160. package/node_modules/hono/dist/cjs/jsx/base.js +49 -30
  161. package/node_modules/hono/dist/cjs/jsx/components.js +2 -2
  162. package/node_modules/hono/dist/cjs/jsx/constants.js +2 -0
  163. package/node_modules/hono/dist/cjs/jsx/jsx-runtime.js +13 -17
  164. package/node_modules/hono/dist/cjs/middleware/etag/index.js +3 -1
  165. package/node_modules/hono/dist/cjs/middleware/pretty-json/index.js +1 -0
  166. package/node_modules/hono/dist/cjs/middleware/timing/timing.js +4 -3
  167. package/node_modules/hono/dist/cjs/utils/cookie.js +2 -2
  168. package/node_modules/hono/dist/cjs/utils/mime.js +1 -1
  169. package/node_modules/hono/dist/cjs/utils/url.js +1 -1
  170. package/node_modules/hono/dist/client/fetch-result-please.js +1 -1
  171. package/node_modules/hono/dist/helper/accepts/accepts.js +2 -1
  172. package/node_modules/hono/dist/helper/ssg/ssg.js +5 -3
  173. package/node_modules/hono/dist/jsx/base.js +49 -32
  174. package/node_modules/hono/dist/jsx/components.js +2 -2
  175. package/node_modules/hono/dist/jsx/constants.js +2 -1
  176. package/node_modules/hono/dist/jsx/jsx-runtime.js +15 -19
  177. package/node_modules/hono/dist/middleware/etag/index.js +3 -1
  178. package/node_modules/hono/dist/middleware/language/language.js +1 -1
  179. package/node_modules/hono/dist/middleware/pretty-json/index.js +1 -0
  180. package/node_modules/hono/dist/middleware/timing/timing.js +4 -3
  181. package/node_modules/hono/dist/utils/cookie.js +2 -2
  182. package/node_modules/hono/dist/utils/mime.js +1 -1
  183. package/node_modules/hono/dist/utils/url.js +1 -1
  184. package/node_modules/hono/package.json +1 -1
  185. package/node_modules/jose/dist/webapi/jwe/general/decrypt.js +3 -2
  186. package/node_modules/jose/dist/webapi/jwks/remote.js +1 -1
  187. package/node_modules/jose/dist/webapi/jws/general/verify.js +2 -8
  188. package/node_modules/jose/dist/webapi/lib/jwe_decrypt.js +11 -8
  189. package/node_modules/jose/dist/webapi/lib/key_management.js +0 -1
  190. package/node_modules/jose/package.json +1 -1
  191. package/package.json +6 -4
  192. package/protocol/index.json +106 -64
  193. package/protocol/operations/agent.sessions.list.json +57 -3
  194. package/protocol/operations/agent.sessions.read.json +61 -4
  195. package/protocol/operations/capability.list.json +382 -6
  196. package/protocol/operations/composition.apply.json +10 -2
  197. package/protocol/operations/composition.delete.json +845 -0
  198. package/protocol/operations/composition.read.json +10 -2
  199. package/protocol/operations/composition.undo.json +10 -2
  200. package/protocol/operations/conversation.agents.add.json +346 -0
  201. package/protocol/operations/conversation.agents.remove.json +340 -0
  202. package/protocol/operations/conversation.configure.json +29 -0
  203. package/protocol/operations/conversation.decide.json +225 -0
  204. package/protocol/operations/conversation.list.json +29 -0
  205. package/protocol/operations/conversation.permission.json +225 -0
  206. package/protocol/operations/conversation.read.json +225 -0
  207. package/protocol/operations/conversation.restore.json +29 -0
  208. package/protocol/operations/conversation.send.json +294 -0
  209. package/protocol/operations/conversation.settings.check.json +226 -416
  210. package/protocol/operations/conversation.settings.read.json +224 -411
  211. package/protocol/operations/conversation.settings.update.json +248 -475
  212. package/protocol/operations/conversation.start.json +313 -6
  213. package/protocol/operations/conversation.stop.json +225 -0
  214. package/protocol/operations/conversation.trash.json +29 -0
  215. package/protocol/operations/extension.describe.json +39 -0
  216. package/protocol/operations/extension.install.json +62 -0
  217. package/protocol/operations/extension.list.json +164 -1
  218. package/protocol/operations/extension.market.change.json +210 -0
  219. package/protocol/operations/figure.read.json +265 -0
  220. package/protocol/operations/figure.select.json +157 -0
  221. package/protocol/operations/kernel.interrupt.json +119 -0
  222. package/protocol/operations/kernel.read.json +119 -0
  223. package/protocol/operations/kernel.run.json +119 -0
  224. package/protocol/operations/observation.snapshot.json +445 -8
  225. package/protocol/operations/project.openFile.json +10 -2
  226. package/protocol/operations/session.grant.json +4 -0
  227. package/protocol/operations/session.instructions.json +43 -0
  228. package/protocol/operations/shared.json +1 -0
  229. package/protocol/operations/view.close.json +10 -2
  230. package/protocol/operations/view.protection.set.json +10 -2
  231. package/vendor/composition.json +174 -109
  232. package/vendor/rho-workspace-plugin-agent-0.4.33.tgz +0 -0
  233. package/vendor/rho-workspace-plugin-figures-0.5.1.tgz +0 -0
  234. package/vendor/rho-workspace-plugin-kernel-0.5.13.tgz +0 -0
  235. package/vendor/rho-workspace-plugin-tables-0.5.2.tgz +0 -0
  236. package/web/theme.css +17 -0
  237. package/dist/web/assets/answer-board-CBkGbSLD.js +0 -1
  238. package/dist/web/assets/canvas-D8rDdfDz.js +0 -1
  239. package/dist/web/assets/choices-b0XhrGQV.js +0 -1
  240. package/dist/web/assets/graph-1OdIJ9l7.js +0 -2
  241. package/dist/web/assets/index-CsC3sTRq.css +0 -1
  242. package/dist/web/assets/index-CxmItXqa.js +0 -891
  243. package/dist/web/assets/overview-B9UtVJ32.js +0 -6
  244. package/dist/web/assets/preview-CksD_5KS.js +0 -1
  245. package/dist/web/assets/studio-process-CsRoTHOh.js +0 -2
  246. package/dist/web/assets/timeline-events-BbuuFWHV.js +0 -1
  247. package/dist/web/assets/work-turns-BvJlIMmA.js +0 -1
  248. package/vendor/rho-workspace-plugin-agent-0.4.29.tgz +0 -0
  249. package/vendor/rho-workspace-plugin-kernel-0.5.5.tgz +0 -0
  250. package/vendor/rho-workspace-plugin-tables-0.5.0.tgz +0 -0
@@ -9,8 +9,14 @@ export declare function agentTurnLimit(turn: {
9
9
  } | null;
10
10
  }): boolean;
11
11
  export type ConversationRead = RhoOutput<'conversation.read'>;
12
- export type ConversationTurn = ConversationRead['turns'][number];
13
- export type ConversationStep = ConversationTurn['steps'][number];
12
+ type WireTurn = ConversationRead['turns'][number];
13
+ export type ConversationStep = WireTurn['steps'][number] & {
14
+ failed?: boolean;
15
+ outcomeAt?: string;
16
+ };
17
+ export type ConversationTurn = Omit<WireTurn, 'steps'> & {
18
+ steps: ConversationStep[];
19
+ };
14
20
  export type SessionObservation = NonNullable<ConversationRead['observation']>;
15
21
  export type ActivityOutcome = NonNullable<ConversationStep['outcome']> | 'failed';
16
22
  export type AgentAction = 'read' | 'edit' | 'write' | 'delete' | 'move' | 'search' | 'execute' | 'fetch' | 'project' | 'agents' | 'plan' | 'other';
@@ -60,3 +66,4 @@ export declare function currentPlanEntry(observation?: SessionObservation | null
60
66
  priority: "high" | "medium" | "low";
61
67
  status: "pending" | "in_progress" | "completed";
62
68
  } | null;
69
+ export {};
@@ -142,6 +142,8 @@ export function commandEnd(step) {
142
142
  return null;
143
143
  if (step.exitCode !== undefined)
144
144
  return step.exitCode === 0 ? 'Exit 0' : 'Exit ' + step.exitCode;
145
+ if (step.failed)
146
+ return 'Failed';
145
147
  return outcome === 'returned' ? 'Finished' : outcome === 'rejected' ? (step.output && !refusedBeforeRunning(step) ? 'Failed' : 'Refused') : 'Outcome unknown';
146
148
  }
147
149
  function rhoTool(tool, step) {
@@ -161,7 +163,7 @@ export function toolActivity(step, location, root, key) {
161
163
  // Some Agents repeat the command as the title; do not show it twice.
162
164
  const title = rawTitle && rawTitle !== detail ? rawTitle : null;
163
165
  const ran = step.exitCode !== undefined || step.output !== undefined && !refusedBeforeRunning(step);
164
- const outcome = step.exitCode !== undefined && step.exitCode !== 0 || step.outcome === 'rejected' && ran ? 'failed' : step.outcome ?? 'requested';
166
+ const outcome = step.failed || step.exitCode !== undefined && step.exitCode !== 0 || step.outcome === 'rejected' && ran ? 'failed' : step.outcome ?? 'requested';
165
167
  const special = rhoTool(tool, step);
166
168
  if (special)
167
169
  return { key: key ?? step.id ?? tool, step, title, location, outcome, ...special };
@@ -1,8 +1,11 @@
1
+ import { type UiContext, type UiLocation } from './ui-context.js';
1
2
  import { type Cost, type FileDescription, type Spend, type Strategy } from './file-describer.js';
2
3
  import { type CapturePort, type TurnEvidence } from './evidence-capture.js';
3
4
  import type { AgentPermission, ConversationStep, ClaudeAcpOptions, CodexAcpOptions, SessionObservation, ConfigOption } from '@rho-workspace/plugin-agent/conversation';
4
5
  import type { Project } from './state.js';
5
6
  export declare const conversationLimits: {
7
+ maxUiContextBytes: number;
8
+ maxUiContextViews: number;
6
9
  maxConversations: number;
7
10
  maxDeleted: number;
8
11
  maxTurns: number;
@@ -24,6 +27,7 @@ export declare const conversationLimits: {
24
27
  stopGraceMs: number;
25
28
  maxChoices: number;
26
29
  maxChoiceChars: number;
30
+ maxAddedAgents: number;
27
31
  maxComparedFiles: number;
28
32
  maxChangedFiles: number;
29
33
  maxCaptureFiles: number;
@@ -100,6 +104,7 @@ interface Turn {
100
104
  descriptionsOmitted?: number;
101
105
  descriptionSpend?: Spend;
102
106
  contexts?: string[];
107
+ uiContext?: UiContext;
103
108
  decisions?: Decision[];
104
109
  continued?: {
105
110
  at: string;
@@ -129,7 +134,7 @@ interface FileChange {
129
134
  modifiedAt: string | null;
130
135
  bytes: number | null;
131
136
  }
132
- type Backend = 'claude-acp' | 'codex-acp' | 'acp';
137
+ type Backend = 'claude-acp' | 'codex-acp' | 'acp' | `acp:${string}`;
133
138
  type Choices = Record<string, string | boolean>;
134
139
  interface Offered {
135
140
  at: string;
@@ -155,6 +160,7 @@ export interface ConversationPorts {
155
160
  claudePlugins?(project: Project): Promise<string[]>;
156
161
  capture?: CapturePort;
157
162
  context?(project: Project, contextId: string): Promise<unknown>;
163
+ uiContext?(project: Project, location: UiLocation, limits: typeof conversationLimits): Promise<UiContext>;
158
164
  describe?(project: Project, request: DescribeRequest): Promise<{
159
165
  text: string;
160
166
  model: string | null;
@@ -165,6 +171,22 @@ export interface ConversationPorts {
165
171
  listed: string;
166
172
  } | null>;
167
173
  notebook?(): boolean;
174
+ nativeSession?(project: Project, producer: 'claude-code' | 'codex', sessionId: string): Promise<{
175
+ open: {
176
+ where: string;
177
+ since?: string;
178
+ pid?: number;
179
+ } | null;
180
+ lastAt: string;
181
+ } | null>;
182
+ }
183
+ export interface ContinueSession {
184
+ producer: 'claude-code' | 'codex' | 'dsh';
185
+ sessionId: string;
186
+ title: string;
187
+ where: string;
188
+ copy: boolean;
189
+ backend: Backend;
168
190
  }
169
191
  export interface DescribeRequest {
170
192
  path: string;
@@ -194,6 +216,7 @@ export declare class Conversations {
194
216
  private drivers;
195
217
  private permissions;
196
218
  private checks;
219
+ private adding;
197
220
  private writing;
198
221
  describing: {
199
222
  everyMs: number;
@@ -256,6 +279,11 @@ export declare class Conversations {
256
279
  costUsd?: number | null;
257
280
  sessionId?: string | null;
258
281
  trashedAt?: string | null;
282
+ origin?: {
283
+ producer: string;
284
+ where: string;
285
+ copyOf?: string;
286
+ } | null;
259
287
  }[]>;
260
288
  private relist;
261
289
  reviewEvidence(project: Project, annotationId: string): Promise<{
@@ -319,6 +347,11 @@ export declare class Conversations {
319
347
  costUsd?: number | null;
320
348
  sessionId?: string | null;
321
349
  trashedAt?: string | null;
350
+ origin?: {
351
+ producer: string;
352
+ where: string;
353
+ copyOf?: string;
354
+ } | null;
322
355
  };
323
356
  }>;
324
357
  restore(project: Project, input: {
@@ -356,6 +389,11 @@ export declare class Conversations {
356
389
  costUsd?: number | null;
357
390
  sessionId?: string | null;
358
391
  trashedAt?: string | null;
392
+ origin?: {
393
+ producer: string;
394
+ where: string;
395
+ copyOf?: string;
396
+ } | null;
359
397
  };
360
398
  }>;
361
399
  delete(project: Project, by: string, input: {
@@ -401,6 +439,11 @@ export declare class Conversations {
401
439
  costUsd?: number | null;
402
440
  sessionId?: string | null;
403
441
  trashedAt?: string | null;
442
+ origin?: {
443
+ producer: string;
444
+ where: string;
445
+ copyOf?: string;
446
+ } | null;
404
447
  };
405
448
  observation: SessionObservation | null;
406
449
  config: Choices;
@@ -410,7 +453,7 @@ export declare class Conversations {
410
453
  private sessionObservation;
411
454
  work(project: Project, limit?: number): Promise<{
412
455
  sessions: {
413
- backend: "acp" | "claude-acp" | "codex-acp" | "claude-cli";
456
+ backend: "claude-cli" | Backend;
414
457
  sessionId: string | null;
415
458
  observation: SessionObservation | null;
416
459
  state: string;
@@ -442,6 +485,11 @@ export declare class Conversations {
442
485
  } | null;
443
486
  costUsd?: number | null;
444
487
  trashedAt?: string | null;
488
+ origin?: {
489
+ producer: string;
490
+ where: string;
491
+ copyOf?: string;
492
+ } | null;
445
493
  }[];
446
494
  omitted: number;
447
495
  }>;
@@ -449,8 +497,10 @@ export declare class Conversations {
449
497
  changeId: string;
450
498
  text: string;
451
499
  contexts?: string[];
500
+ uiContext?: UiLocation;
452
501
  backend?: Backend;
453
502
  config?: Choices;
503
+ continue?: ContinueSession;
454
504
  }): Promise<{
455
505
  conversation: {
456
506
  state: string;
@@ -484,14 +534,24 @@ export declare class Conversations {
484
534
  costUsd?: number | null;
485
535
  sessionId?: string | null;
486
536
  trashedAt?: string | null;
537
+ origin?: {
538
+ producer: string;
539
+ where: string;
540
+ copyOf?: string;
541
+ } | null;
487
542
  };
488
543
  turn: Turn;
489
544
  }>;
545
+ /** Whether a process holding a session open is Rho's own connection to this conversation: the
546
+ * Agent its adapter started. */
547
+ owns(project: Project, conversationId: string, pid: number | undefined): Promise<boolean>;
548
+ private notHeld;
490
549
  send(project: Project, by: string, input: {
491
550
  conversationId: string;
492
551
  changeId: string;
493
552
  text: string;
494
553
  contexts?: string[];
554
+ uiContext?: UiLocation;
495
555
  continuationOf?: string;
496
556
  }): Promise<{
497
557
  conversation: {
@@ -526,6 +586,11 @@ export declare class Conversations {
526
586
  costUsd?: number | null;
527
587
  sessionId?: string | null;
528
588
  trashedAt?: string | null;
589
+ origin?: {
590
+ producer: string;
591
+ where: string;
592
+ copyOf?: string;
593
+ } | null;
529
594
  };
530
595
  turn: Turn;
531
596
  }>;
@@ -566,6 +631,11 @@ export declare class Conversations {
566
631
  costUsd?: number | null;
567
632
  sessionId?: string | null;
568
633
  trashedAt?: string | null;
634
+ origin?: {
635
+ producer: string;
636
+ where: string;
637
+ copyOf?: string;
638
+ } | null;
569
639
  };
570
640
  observation: SessionObservation | null;
571
641
  config: Choices;
@@ -574,22 +644,61 @@ export declare class Conversations {
574
644
  private offers;
575
645
  private readSettings;
576
646
  private settingsView;
647
+ private commandOf;
648
+ private agents;
649
+ harness(): Promise<Backend | null>;
577
650
  settings(): Promise<{
578
651
  version: number;
579
652
  updatedAt: string | null;
580
653
  backend: Backend | null;
581
- serviceBackend: "acp" | "claude-acp" | "codex-acp" | "claude-cli";
654
+ serviceBackend: "claude-acp" | "codex-acp" | "acp" | "claude-cli";
582
655
  choices: Partial<Record<Backend, Choices>>;
583
656
  offered: Partial<Record<Backend, Offered>>;
584
657
  checking: Backend[];
585
658
  describe: {
586
659
  enabled: boolean;
587
660
  };
661
+ agents: {
662
+ 'claude-acp': {
663
+ found: boolean;
664
+ problem: string;
665
+ } | {
666
+ found: boolean;
667
+ problem?: undefined;
668
+ };
669
+ 'codex-acp': {
670
+ found: boolean;
671
+ problem: string;
672
+ } | {
673
+ found: boolean;
674
+ problem?: undefined;
675
+ };
676
+ acp: {
677
+ found: boolean;
678
+ name: string;
679
+ problem?: undefined;
680
+ } | {
681
+ found: boolean;
682
+ problem: string;
683
+ name?: undefined;
684
+ };
685
+ };
686
+ added: {
687
+ backend: `acp:${string}`;
688
+ name: string;
689
+ command: string[];
690
+ addedAt: string;
691
+ }[];
692
+ installed: {
693
+ id: string;
694
+ name: string;
695
+ command: string[];
696
+ }[];
588
697
  }>;
589
698
  updateSettings(input: {
590
699
  expectedVersion: number;
591
- backend?: Backend | null;
592
- choices?: Partial<Record<Backend, Choices>>;
700
+ backend?: string | null;
701
+ choices?: Partial<Record<string, Choices>>;
593
702
  describe?: {
594
703
  enabled: boolean;
595
704
  };
@@ -597,13 +706,49 @@ export declare class Conversations {
597
706
  version: number;
598
707
  updatedAt: string | null;
599
708
  backend: Backend | null;
600
- serviceBackend: "acp" | "claude-acp" | "codex-acp" | "claude-cli";
709
+ serviceBackend: "claude-acp" | "codex-acp" | "acp" | "claude-cli";
601
710
  choices: Partial<Record<Backend, Choices>>;
602
711
  offered: Partial<Record<Backend, Offered>>;
603
712
  checking: Backend[];
604
713
  describe: {
605
714
  enabled: boolean;
606
715
  };
716
+ agents: {
717
+ 'claude-acp': {
718
+ found: boolean;
719
+ problem: string;
720
+ } | {
721
+ found: boolean;
722
+ problem?: undefined;
723
+ };
724
+ 'codex-acp': {
725
+ found: boolean;
726
+ problem: string;
727
+ } | {
728
+ found: boolean;
729
+ problem?: undefined;
730
+ };
731
+ acp: {
732
+ found: boolean;
733
+ name: string;
734
+ problem?: undefined;
735
+ } | {
736
+ found: boolean;
737
+ problem: string;
738
+ name?: undefined;
739
+ };
740
+ };
741
+ added: {
742
+ backend: `acp:${string}`;
743
+ name: string;
744
+ command: string[];
745
+ addedAt: string;
746
+ }[];
747
+ installed: {
748
+ id: string;
749
+ name: string;
750
+ command: string[];
751
+ }[];
607
752
  }>;
608
753
  check(project: Project, input: {
609
754
  backend: Backend;
@@ -611,16 +756,154 @@ export declare class Conversations {
611
756
  version: number;
612
757
  updatedAt: string | null;
613
758
  backend: Backend | null;
614
- serviceBackend: "acp" | "claude-acp" | "codex-acp" | "claude-cli";
759
+ serviceBackend: "claude-acp" | "codex-acp" | "acp" | "claude-cli";
615
760
  choices: Partial<Record<Backend, Choices>>;
616
761
  offered: Partial<Record<Backend, Offered>>;
617
762
  checking: Backend[];
618
763
  describe: {
619
764
  enabled: boolean;
620
765
  };
766
+ agents: {
767
+ 'claude-acp': {
768
+ found: boolean;
769
+ problem: string;
770
+ } | {
771
+ found: boolean;
772
+ problem?: undefined;
773
+ };
774
+ 'codex-acp': {
775
+ found: boolean;
776
+ problem: string;
777
+ } | {
778
+ found: boolean;
779
+ problem?: undefined;
780
+ };
781
+ acp: {
782
+ found: boolean;
783
+ name: string;
784
+ problem?: undefined;
785
+ } | {
786
+ found: boolean;
787
+ problem: string;
788
+ name?: undefined;
789
+ };
790
+ };
791
+ added: {
792
+ backend: `acp:${string}`;
793
+ name: string;
794
+ command: string[];
795
+ addedAt: string;
796
+ }[];
797
+ installed: {
798
+ id: string;
799
+ name: string;
800
+ command: string[];
801
+ }[];
621
802
  }>;
622
803
  private inspect;
623
804
  private offer;
805
+ addAgent(project: Project, input: {
806
+ command: string[];
807
+ }): Promise<{
808
+ version: number;
809
+ updatedAt: string | null;
810
+ backend: Backend | null;
811
+ serviceBackend: "claude-acp" | "codex-acp" | "acp" | "claude-cli";
812
+ choices: Partial<Record<Backend, Choices>>;
813
+ offered: Partial<Record<Backend, Offered>>;
814
+ checking: Backend[];
815
+ describe: {
816
+ enabled: boolean;
817
+ };
818
+ agents: {
819
+ 'claude-acp': {
820
+ found: boolean;
821
+ problem: string;
822
+ } | {
823
+ found: boolean;
824
+ problem?: undefined;
825
+ };
826
+ 'codex-acp': {
827
+ found: boolean;
828
+ problem: string;
829
+ } | {
830
+ found: boolean;
831
+ problem?: undefined;
832
+ };
833
+ acp: {
834
+ found: boolean;
835
+ name: string;
836
+ problem?: undefined;
837
+ } | {
838
+ found: boolean;
839
+ problem: string;
840
+ name?: undefined;
841
+ };
842
+ };
843
+ added: {
844
+ backend: `acp:${string}`;
845
+ name: string;
846
+ command: string[];
847
+ addedAt: string;
848
+ }[];
849
+ installed: {
850
+ id: string;
851
+ name: string;
852
+ command: string[];
853
+ }[];
854
+ }>;
855
+ private addOnce;
856
+ private newName;
857
+ removeAgent(input: {
858
+ backend: string;
859
+ }): Promise<{
860
+ version: number;
861
+ updatedAt: string | null;
862
+ backend: Backend | null;
863
+ serviceBackend: "claude-acp" | "codex-acp" | "acp" | "claude-cli";
864
+ choices: Partial<Record<Backend, Choices>>;
865
+ offered: Partial<Record<Backend, Offered>>;
866
+ checking: Backend[];
867
+ describe: {
868
+ enabled: boolean;
869
+ };
870
+ agents: {
871
+ 'claude-acp': {
872
+ found: boolean;
873
+ problem: string;
874
+ } | {
875
+ found: boolean;
876
+ problem?: undefined;
877
+ };
878
+ 'codex-acp': {
879
+ found: boolean;
880
+ problem: string;
881
+ } | {
882
+ found: boolean;
883
+ problem?: undefined;
884
+ };
885
+ acp: {
886
+ found: boolean;
887
+ name: string;
888
+ problem?: undefined;
889
+ } | {
890
+ found: boolean;
891
+ problem: string;
892
+ name?: undefined;
893
+ };
894
+ };
895
+ added: {
896
+ backend: `acp:${string}`;
897
+ name: string;
898
+ command: string[];
899
+ addedAt: string;
900
+ }[];
901
+ installed: {
902
+ id: string;
903
+ name: string;
904
+ command: string[];
905
+ }[];
906
+ }>;
624
907
  stop(project: Project, by: string, input: {
625
908
  conversationId: string;
626
909
  turnId: string;
@@ -657,6 +940,11 @@ export declare class Conversations {
657
940
  costUsd?: number | null;
658
941
  sessionId?: string | null;
659
942
  trashedAt?: string | null;
943
+ origin?: {
944
+ producer: string;
945
+ where: string;
946
+ copyOf?: string;
947
+ } | null;
660
948
  };
661
949
  turn: Turn;
662
950
  }>;
@@ -699,6 +987,11 @@ export declare class Conversations {
699
987
  costUsd?: number | null;
700
988
  sessionId?: string | null;
701
989
  trashedAt?: string | null;
990
+ origin?: {
991
+ producer: string;
992
+ where: string;
993
+ copyOf?: string;
994
+ } | null;
702
995
  };
703
996
  turn: Turn;
704
997
  }>;
@@ -740,6 +1033,11 @@ export declare class Conversations {
740
1033
  costUsd?: number | null;
741
1034
  sessionId?: string | null;
742
1035
  trashedAt?: string | null;
1036
+ origin?: {
1037
+ producer: string;
1038
+ where: string;
1039
+ copyOf?: string;
1040
+ } | null;
743
1041
  };
744
1042
  turn: Turn;
745
1043
  }>;
@@ -747,6 +1045,7 @@ export declare class Conversations {
747
1045
  private retire;
748
1046
  private cancelPermissions;
749
1047
  private launch;
1048
+ private changedElsewhere;
750
1049
  private driver;
751
1050
  private capture;
752
1051
  private observe;