ds-harness-remote 0.5.8 → 0.5.10

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 (211) hide show
  1. package/dist/acp/adapter.d.ts +1 -1
  2. package/dist/acp/adapter.d.ts.map +1 -1
  3. package/dist/acp/adapters/claude-history.d.ts +3 -0
  4. package/dist/acp/adapters/claude-history.d.ts.map +1 -0
  5. package/dist/acp/adapters/claude-history.js +118 -0
  6. package/dist/acp/adapters/claude-history.js.map +1 -0
  7. package/dist/acp/adapters/claude-process.d.ts +21 -0
  8. package/dist/acp/adapters/claude-process.d.ts.map +1 -0
  9. package/dist/acp/adapters/claude-process.js +147 -0
  10. package/dist/acp/adapters/claude-process.js.map +1 -0
  11. package/dist/acp/adapters/cursor-process.d.ts +9 -4
  12. package/dist/acp/adapters/cursor-process.d.ts.map +1 -1
  13. package/dist/acp/adapters/cursor-process.js +31 -3
  14. package/dist/acp/adapters/cursor-process.js.map +1 -1
  15. package/dist/acp/adapters/opencode-process.d.ts +67 -0
  16. package/dist/acp/adapters/opencode-process.d.ts.map +1 -0
  17. package/dist/acp/adapters/opencode-process.js +272 -0
  18. package/dist/acp/adapters/opencode-process.js.map +1 -0
  19. package/dist/acp/adapters/opencode.d.ts +8 -0
  20. package/dist/acp/adapters/opencode.d.ts.map +1 -0
  21. package/dist/acp/adapters/opencode.js +8 -0
  22. package/dist/acp/adapters/opencode.js.map +1 -0
  23. package/dist/acp/adapters/pi-process.d.ts +42 -0
  24. package/dist/acp/adapters/pi-process.d.ts.map +1 -0
  25. package/dist/acp/adapters/pi-process.js +410 -0
  26. package/dist/acp/adapters/pi-process.js.map +1 -0
  27. package/dist/acp/gateway.d.ts +8 -0
  28. package/dist/acp/gateway.d.ts.map +1 -1
  29. package/dist/acp/gateway.js +299 -67
  30. package/dist/acp/gateway.js.map +1 -1
  31. package/dist/acp/method-policy.d.ts +19 -19
  32. package/dist/acp/method-policy.js +5 -5
  33. package/dist/acp/method-policy.js.map +1 -1
  34. package/dist/acp/pi-tool-result.d.ts +9 -0
  35. package/dist/acp/pi-tool-result.d.ts.map +1 -0
  36. package/dist/acp/pi-tool-result.js +22 -0
  37. package/dist/acp/pi-tool-result.js.map +1 -0
  38. package/dist/acp/virtual-catalog.d.ts +50 -0
  39. package/dist/acp/virtual-catalog.d.ts.map +1 -0
  40. package/dist/acp/virtual-catalog.js +103 -0
  41. package/dist/acp/virtual-catalog.js.map +1 -0
  42. package/dist/acp/virtual-contract.d.ts +165 -0
  43. package/dist/acp/virtual-contract.d.ts.map +1 -0
  44. package/dist/acp/virtual-contract.js +216 -0
  45. package/dist/acp/virtual-contract.js.map +1 -0
  46. package/dist/acp/virtual-event-carrier.d.ts +50 -0
  47. package/dist/acp/virtual-event-carrier.d.ts.map +1 -0
  48. package/dist/acp/virtual-event-carrier.js +222 -0
  49. package/dist/acp/virtual-event-carrier.js.map +1 -0
  50. package/dist/acp/virtual-harness.d.ts +13 -112
  51. package/dist/acp/virtual-harness.d.ts.map +1 -1
  52. package/dist/acp/virtual-harness.js +129 -911
  53. package/dist/acp/virtual-harness.js.map +1 -1
  54. package/dist/acp/virtual-live.d.ts +78 -0
  55. package/dist/acp/virtual-live.d.ts.map +1 -0
  56. package/dist/acp/virtual-live.js +513 -0
  57. package/dist/acp/virtual-live.js.map +1 -0
  58. package/dist/acp/workspace-tools.js +1 -1
  59. package/dist/acp/workspace-tools.js.map +1 -1
  60. package/dist/acp.d.ts.map +1 -1
  61. package/dist/acp.js +1 -0
  62. package/dist/acp.js.map +1 -1
  63. package/dist/client/header.d.ts +10 -0
  64. package/dist/client/header.d.ts.map +1 -0
  65. package/dist/client/header.js +169 -0
  66. package/dist/client/header.js.map +1 -0
  67. package/dist/client/icons.d.ts +3 -0
  68. package/dist/client/icons.d.ts.map +1 -0
  69. package/dist/client/icons.js +3 -0
  70. package/dist/client/icons.js.map +1 -0
  71. package/dist/client/navigation.d.ts +5 -0
  72. package/dist/client/navigation.d.ts.map +1 -0
  73. package/dist/client/navigation.js +30 -0
  74. package/dist/client/navigation.js.map +1 -0
  75. package/dist/client/presentation.d.ts +17 -0
  76. package/dist/client/presentation.d.ts.map +1 -0
  77. package/dist/client/presentation.js +208 -0
  78. package/dist/client/presentation.js.map +1 -0
  79. package/dist/client/progress.d.ts +10 -0
  80. package/dist/client/progress.d.ts.map +1 -0
  81. package/dist/client/progress.js +82 -0
  82. package/dist/client/progress.js.map +1 -0
  83. package/dist/client/settings.d.ts +10 -0
  84. package/dist/client/settings.d.ts.map +1 -0
  85. package/dist/client/settings.js +335 -0
  86. package/dist/client/settings.js.map +1 -0
  87. package/dist/client/shell.d.ts +6 -0
  88. package/dist/client/shell.d.ts.map +1 -0
  89. package/dist/client/shell.js +128 -0
  90. package/dist/client/shell.js.map +1 -0
  91. package/dist/client/types.d.ts +264 -0
  92. package/dist/client/types.d.ts.map +1 -0
  93. package/dist/client/types.js +2 -0
  94. package/dist/client/types.js.map +1 -0
  95. package/dist/client/workspaces.d.ts +11 -0
  96. package/dist/client/workspaces.d.ts.map +1 -0
  97. package/dist/client/workspaces.js +1179 -0
  98. package/dist/client/workspaces.js.map +1 -0
  99. package/dist/client-capabilities.d.ts +6 -0
  100. package/dist/client-capabilities.d.ts.map +1 -0
  101. package/dist/client-capabilities.js +88 -0
  102. package/dist/client-capabilities.js.map +1 -0
  103. package/dist/client-codex-streams.d.ts +23 -0
  104. package/dist/client-codex-streams.d.ts.map +1 -0
  105. package/dist/client-codex-streams.js +156 -0
  106. package/dist/client-codex-streams.js.map +1 -0
  107. package/dist/client-connection.d.ts +38 -0
  108. package/dist/client-connection.d.ts.map +1 -0
  109. package/dist/client-connection.js +210 -0
  110. package/dist/client-connection.js.map +1 -0
  111. package/dist/client-control.d.ts +48 -0
  112. package/dist/client-control.d.ts.map +1 -0
  113. package/dist/client-control.js +273 -0
  114. package/dist/client-control.js.map +1 -0
  115. package/dist/client-locale.d.ts +8 -0
  116. package/dist/client-locale.d.ts.map +1 -1
  117. package/dist/client-locale.js +16 -0
  118. package/dist/client-locale.js.map +1 -1
  119. package/dist/client-runtime-contract.d.ts +161 -0
  120. package/dist/client-runtime-contract.d.ts.map +1 -0
  121. package/dist/client-runtime-contract.js +127 -0
  122. package/dist/client-runtime-contract.js.map +1 -0
  123. package/dist/client-runtime.d.ts +24 -126
  124. package/dist/client-runtime.d.ts.map +1 -1
  125. package/dist/client-runtime.js +171 -867
  126. package/dist/client-runtime.js.map +1 -1
  127. package/dist/client-secure-transport.d.ts +1 -0
  128. package/dist/client-secure-transport.d.ts.map +1 -1
  129. package/dist/client-secure-transport.js +35 -16
  130. package/dist/client-secure-transport.js.map +1 -1
  131. package/dist/client-workspace-queries.d.ts +12 -0
  132. package/dist/client-workspace-queries.d.ts.map +1 -0
  133. package/dist/client-workspace-queries.js +66 -0
  134. package/dist/client-workspace-queries.js.map +1 -0
  135. package/dist/client.d.ts.map +1 -1
  136. package/dist/client.github.js +2091 -1896
  137. package/dist/client.js +2091 -1896
  138. package/dist/client.js.map +1 -1
  139. package/dist/codex/domain.d.ts.map +1 -1
  140. package/dist/codex/domain.js +67 -46
  141. package/dist/codex/domain.js.map +1 -1
  142. package/dist/codex/method-policy.d.ts +9 -9
  143. package/dist/codex/virtual-catalog.d.ts +90 -0
  144. package/dist/codex/virtual-catalog.d.ts.map +1 -0
  145. package/dist/codex/virtual-catalog.js +317 -0
  146. package/dist/codex/virtual-catalog.js.map +1 -0
  147. package/dist/codex/virtual-contract.d.ts +96 -0
  148. package/dist/codex/virtual-contract.d.ts.map +1 -0
  149. package/dist/codex/virtual-contract.js +192 -0
  150. package/dist/codex/virtual-contract.js.map +1 -0
  151. package/dist/codex/virtual-event-carrier.d.ts +52 -0
  152. package/dist/codex/virtual-event-carrier.d.ts.map +1 -0
  153. package/dist/codex/virtual-event-carrier.js +212 -0
  154. package/dist/codex/virtual-event-carrier.js.map +1 -0
  155. package/dist/codex/virtual-harness.d.ts +16 -117
  156. package/dist/codex/virtual-harness.d.ts.map +1 -1
  157. package/dist/codex/virtual-harness.js +123 -1909
  158. package/dist/codex/virtual-harness.js.map +1 -1
  159. package/dist/codex/virtual-history.d.ts +74 -0
  160. package/dist/codex/virtual-history.d.ts.map +1 -0
  161. package/dist/codex/virtual-history.js +546 -0
  162. package/dist/codex/virtual-history.js.map +1 -0
  163. package/dist/codex/virtual-live.d.ts +75 -0
  164. package/dist/codex/virtual-live.d.ts.map +1 -0
  165. package/dist/codex/virtual-live.js +563 -0
  166. package/dist/codex/virtual-live.js.map +1 -0
  167. package/dist/codex/virtual-values.d.ts +29 -0
  168. package/dist/codex/virtual-values.d.ts.map +1 -0
  169. package/dist/codex/virtual-values.js +75 -0
  170. package/dist/codex/virtual-values.js.map +1 -0
  171. package/dist/config.js +4 -4
  172. package/dist/config.js.map +1 -1
  173. package/dist/control-runtime.js +2 -2
  174. package/dist/control-runtime.js.map +1 -1
  175. package/dist/harness-remote-bridge.d.ts +2 -1
  176. package/dist/harness-remote-bridge.d.ts.map +1 -1
  177. package/dist/harness-remote-bridge.js +11 -3
  178. package/dist/harness-remote-bridge.js.map +1 -1
  179. package/dist/index.d.ts.map +1 -1
  180. package/dist/index.js +16044 -13878
  181. package/dist/index.js.map +4 -4
  182. package/dist/plugin-route-dispatcher.d.ts +2 -2
  183. package/dist/plugin-route-dispatcher.d.ts.map +1 -1
  184. package/dist/plugin-route-dispatcher.js +2 -2
  185. package/dist/plugin-route-dispatcher.js.map +1 -1
  186. package/dist/remote-typert-gateway.js +7 -1
  187. package/dist/remote-typert-gateway.js.map +1 -1
  188. package/dist/server-connection.d.ts +1 -0
  189. package/dist/server-connection.d.ts.map +1 -1
  190. package/dist/server-connection.js +6 -1
  191. package/dist/server-connection.js.map +1 -1
  192. package/dist/service.d.ts +1 -1
  193. package/dist/service.d.ts.map +1 -1
  194. package/dist/service.js +6 -5
  195. package/dist/service.js.map +1 -1
  196. package/dist/terminal-carrier-compat.d.ts +14 -0
  197. package/dist/terminal-carrier-compat.d.ts.map +1 -0
  198. package/dist/terminal-carrier-compat.js +259 -0
  199. package/dist/terminal-carrier-compat.js.map +1 -0
  200. package/dist/typert-gateway-contract.d.ts +6 -1
  201. package/dist/typert-gateway-contract.d.ts.map +1 -1
  202. package/dist/typert-gateway-switch.d.ts +2 -1
  203. package/dist/typert-gateway-switch.d.ts.map +1 -1
  204. package/dist/typert-gateway-switch.js +31 -15
  205. package/dist/typert-gateway-switch.js.map +1 -1
  206. package/dist/version.d.ts +1 -1
  207. package/dist/version.d.ts.map +1 -1
  208. package/dist/version.js +1 -1
  209. package/dist/version.js.map +1 -1
  210. package/dsh-plugin.json +1 -1
  211. package/package.json +21 -19
@@ -0,0 +1,222 @@
1
+ import { nativeWorkspace } from './virtual-catalog.js';
2
+ import { AsyncValueQueue, failure, isRecord, rcEndpoint, record, string, success } from './virtual-contract.js';
3
+ export class AcpEventCarrier {
4
+ context;
5
+ constructor(context) {
6
+ this.context = context;
7
+ }
8
+ async workspaceFollow(signal) {
9
+ const queue = new AsyncValueQueue(signal);
10
+ this.context.workspaceStreams.add(queue);
11
+ queue.push({
12
+ type: 'baseline',
13
+ value: {
14
+ items: this.context.visibleWorkspaces().map(nativeWorkspace),
15
+ archivedSessionIds: [],
16
+ pinnedSessionIds: [],
17
+ },
18
+ });
19
+ return queue.iterate(() => this.context.workspaceStreams.delete(queue));
20
+ }
21
+ async sessionControl(signal) {
22
+ const queue = new AsyncValueQueue(signal);
23
+ this.context.controlStreams.add(queue);
24
+ // Session Controller treats the first control frame as the opening
25
+ // snapshot. Without it the Client-side RemoteSnapshotStream never moves
26
+ // to `ready`, so a workspace selected through the Remote modal remains
27
+ // stuck on the empty shell after the page reload.
28
+ queue.push({ type: 'baseline', value: { projections: {} } });
29
+ return queue.iterate(() => this.context.controlStreams.delete(queue));
30
+ }
31
+ /**
32
+ * Background jobs belong to the Host Harness session, not to a backend-scoped
33
+ * virtual Workspace. The native session header mounts a job roster stream as
34
+ * soon as a Session opens, so answer it with an authoritative empty roster
35
+ * instead of a terminal `method-not-found` failure that tears the page down.
36
+ */
37
+ emptyJobStream(endpoint, signal) {
38
+ const queue = new AsyncValueQueue(signal);
39
+ if (endpoint === 'job/list')
40
+ queue.push({ type: 'rows', jobs: [] });
41
+ return queue.iterate(() => queue.close());
42
+ }
43
+ async remoteEvents(signal) {
44
+ const id = `cursor-events:${Date.now()}:${Math.random()}`;
45
+ const queue = new AsyncValueQueue(signal);
46
+ this.context.eventStreams.set(id, queue);
47
+ const workspace = this.context.selectedWorkspaceId === undefined
48
+ ? undefined
49
+ : this.context.workspaceById.get(this.context.selectedWorkspaceId);
50
+ queue.push({
51
+ type: 'ready',
52
+ clientId: id,
53
+ host: { home: workspace?.path ?? '/' },
54
+ });
55
+ return queue.iterate(() => this.context.eventStreams.delete(id));
56
+ }
57
+ emitRemoteEvent(event, args) {
58
+ for (const queue of this.context.eventStreams.values())
59
+ queue.push({ type: 'emit', event, args });
60
+ const sessionId = typeof args[0] === 'string' ? args[0] : undefined;
61
+ if (event === 'api-session/status' && sessionId !== undefined && typeof args[1] === 'boolean') {
62
+ this.broadcastRcHost({ type: 'host/session-status', sessionId, running: args[1] });
63
+ }
64
+ else if (event === 'api-session/removed' && sessionId !== undefined) {
65
+ this.broadcastRcHost({ type: 'host/session-removed', sessionId });
66
+ }
67
+ else if (event === 'api-session/added' && isRecord(args[0])) {
68
+ const summary = args[0];
69
+ this.broadcastRcHost({
70
+ type: 'host/session-added',
71
+ sessionId: summary.sessionId,
72
+ blank: summary.blank === true,
73
+ ...(typeof summary.cwd === 'string' ? { cwd: summary.cwd } : {}),
74
+ });
75
+ }
76
+ }
77
+ emitApproval(input) {
78
+ for (const queue of this.context.eventStreams.values())
79
+ queue.push({
80
+ type: 'waterfall',
81
+ event: 'approval/request',
82
+ eventId: input.eventId,
83
+ agentId: input.agentId,
84
+ request: input.request,
85
+ });
86
+ this.broadcastRcMux({
87
+ type: 'approval/requested',
88
+ sessionId: input.agentId,
89
+ approvalId: input.eventId,
90
+ toolName: string(input.request.toolName) ?? this.context.backendLabel(),
91
+ ...(typeof input.request.reason === 'string' ? { reason: input.request.reason } : {}),
92
+ }, input.eventId);
93
+ }
94
+ async answerRemoteEvent(args, signal) {
95
+ const eventId = string(args.eventId);
96
+ const outcome = record(args.outcome);
97
+ if (eventId === undefined)
98
+ throw new Error(`The ${this.context.backendLabel()} approval result is missing its event id.`);
99
+ const pending = this.context.pendingApprovals.get(eventId);
100
+ if (pending === undefined)
101
+ return undefined;
102
+ this.context.pendingApprovals.delete(eventId);
103
+ const decision = outcome.kind === 'result' && outcome.value === 'allowed-once'
104
+ ? 'allow-once'
105
+ : outcome.kind === 'result' && outcome.value === 'cancelled'
106
+ ? 'cancel'
107
+ : 'reject-once';
108
+ await this.context.client.respond(pending.requestHandle, decision, undefined, signal);
109
+ return undefined;
110
+ }
111
+ createApiProxy() {
112
+ const call = (endpoint) => async (request, signal) => {
113
+ const payload = endpoint === 'session.prompt' && isRecord(request.payload)
114
+ ? { ...request.payload, requestId: String(request.rpcId) }
115
+ : request.payload;
116
+ const result = await this.context.dispatch(rcEndpoint(endpoint), { args: { request: payload } }, signal ?? new AbortController().signal);
117
+ return {
118
+ rpcId: request.rpcId,
119
+ result: (result.ok
120
+ ? success(result.value)
121
+ : failure(result.error.code, result.error.message, result.error.details)),
122
+ };
123
+ };
124
+ return {
125
+ sessions: {
126
+ list: call('session.list'),
127
+ search: call('session.search'),
128
+ create: call('session.create'),
129
+ history: call('session.history'),
130
+ models: call('session.models'),
131
+ selectModel: call('session.selectModel'),
132
+ rename: call('session.rename'),
133
+ fork: call('session.fork'),
134
+ prompt: call('session.prompt'),
135
+ attachment: call('session.attachment'),
136
+ updateQueue: call('session.updateQueue'),
137
+ cancel: call('session.cancel'),
138
+ },
139
+ workspace: {
140
+ list: call('workspace.list'),
141
+ create: call('workspace.create'),
142
+ rename: call('workspace.rename'),
143
+ delete: call('workspace.delete'),
144
+ insertBefore: call('workspace.insertBefore'),
145
+ insertSessionBefore: call('workspace.insertSessionBefore'),
146
+ archiveSession: call('workspace.archiveSession'),
147
+ },
148
+ subagents: {},
149
+ host: {
150
+ describe: call('host.describe'),
151
+ listDirectory: call('host.listDirectory'),
152
+ },
153
+ skills: { list: call('skills.list') },
154
+ agentPresets: {},
155
+ goals: {},
156
+ settings: {},
157
+ credentials: {},
158
+ llm: {},
159
+ events: {
160
+ mux: ((request, signal) => this.rcMux(request, signal)),
161
+ host: ((request, signal) => this.rcHost(request, signal)),
162
+ },
163
+ downloads: {},
164
+ respond: async (message) => {
165
+ const pending = this.context.pendingApprovals.get(String(message.rpcId))
166
+ ?? [...this.context.pendingApprovals.values()].find(item => item.requestHandle === String(message.rpcId));
167
+ if (pending === undefined)
168
+ return { accepted: false, reason: 'not-pending' };
169
+ const result = message.result;
170
+ const outcome = result.ok ? result.value : undefined;
171
+ const decision = outcome === 'allowed-once' ? 'allow-once' : outcome === 'cancelled' ? 'cancel' : 'reject-once';
172
+ await this.context.client.respond(pending.requestHandle, decision);
173
+ this.context.pendingApprovals.delete(pending.requestHandle);
174
+ return { accepted: true };
175
+ },
176
+ };
177
+ }
178
+ async *rcMux(request, signal) {
179
+ const queue = new AsyncValueQueue(signal);
180
+ this.context.rcMuxStreams.add(queue);
181
+ for (const session of this.context.sessions.values()) {
182
+ queue.push({
183
+ rpcId: `${String(request.rpcId)}:${session.sessionId}:subscribed`,
184
+ payload: { type: 'session/subscribed', sessionId: session.sessionId, lastSeq: -1 },
185
+ });
186
+ }
187
+ try {
188
+ yield* queue;
189
+ }
190
+ finally {
191
+ this.context.rcMuxStreams.delete(queue);
192
+ queue.close();
193
+ }
194
+ }
195
+ async *rcHost(_request, signal) {
196
+ const queue = new AsyncValueQueue(signal);
197
+ this.context.rcHostStreams.add(queue);
198
+ try {
199
+ yield* queue;
200
+ }
201
+ finally {
202
+ this.context.rcHostStreams.delete(queue);
203
+ queue.close();
204
+ }
205
+ }
206
+ broadcastRcMux(payload, rpcId = `cursor-mux:${Date.now()}:${Math.random()}`) {
207
+ for (const queue of this.context.rcMuxStreams)
208
+ queue.push({ rpcId, payload });
209
+ }
210
+ broadcastRcHost(payload) {
211
+ const frame = { rpcId: `cursor-host:${Date.now()}:${Math.random()}`, payload };
212
+ for (const queue of this.context.rcHostStreams)
213
+ queue.push(frame);
214
+ }
215
+ publishProjection(sessionId, key, value, seq = this.context.nextProjectionSeq()) {
216
+ for (const queue of this.context.controlStreams) {
217
+ queue.push({ type: 'projection', sessionId, key, value, asOfSeq: seq, seq });
218
+ }
219
+ this.broadcastRcMux({ type: 'session/projection', sessionId, key, value, seq });
220
+ }
221
+ }
222
+ //# sourceMappingURL=virtual-event-carrier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"virtual-event-carrier.js","sourceRoot":"","sources":["../../src/acp/virtual-event-carrier.ts"],"names":[],"mappings":"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"}
@@ -1,52 +1,8 @@
1
- import { ACP_TOOL_CALL_ENDPOINTS, type AcpSessionModels, type AgentAcpStreamOpenParams } from '@dsh-remote/protocol';
2
- import { type AcpImage } from './image-content.js';
3
1
  import type { ApiProxy } from '@deepseek-ai/dsh-host-apiproxy/api';
4
2
  import { AgentAcpClient } from '@dsh-remote/client-core';
5
- import type { AgentAcpFrameData, AgentAcpStreamClosedData } from '@dsh-remote/protocol';
6
3
  import type { RemoteTypertGatewayTarget, TypertGatewayRequest, TypertRpcResult } from '../typert-gateway-contract.js';
7
- type JsonRecord = Record<string, unknown>;
8
- export interface AcpVirtualWorkspaceView {
9
- workspaceId: string;
10
- path: string;
11
- title: string;
12
- sessionIds: string[];
13
- sessionCount: number;
14
- createdAt: string;
15
- updatedAt: string;
16
- }
17
- export interface AcpClientLike {
18
- sessionModels?(sessionId: string, backend: 'antigravity', signal?: AbortSignal): Promise<AcpSessionModels>;
19
- selectModel?(sessionId: string, backend: 'antigravity', selection: AcpModelSelection, signal?: AbortSignal): Promise<AcpModelSelection>;
20
- workspaceToolCall?(sessionId: string, backend: 'cursor' | 'antigravity', endpoint: typeof ACP_TOOL_CALL_ENDPOINTS[number], args: JsonRecord, signal?: AbortSignal): Promise<unknown>;
21
- createSession(cwd: string, mode?: 'agent' | 'plan' | 'ask', backend?: 'cursor' | 'antigravity', signal?: AbortSignal): Promise<{
22
- sessionId: string;
23
- cwd?: string;
24
- }>;
25
- prompt(sessionId: string, text: string, signal?: AbortSignal, images?: AcpImage[], backend?: 'cursor' | 'antigravity'): Promise<unknown>;
26
- cancel(sessionId: string, signal?: AbortSignal): Promise<unknown>;
27
- listDirectory(path: string, signal?: AbortSignal): Promise<unknown>;
28
- listWorkspaces?(backend?: string, signal?: AbortSignal): Promise<Array<{
29
- path: string;
30
- title?: string;
31
- sessionCount?: number;
32
- }>>;
33
- listSessions?(path: string, backend?: string, limit?: number, signal?: AbortSignal): Promise<Array<{
34
- conversationId: string;
35
- title: string;
36
- createdAt: number;
37
- updatedAt: number;
38
- }>>;
39
- loadSessionHistory?(sessionId: string, backend?: string, signal?: AbortSignal): Promise<unknown[]>;
40
- openStream(sessionId: string, onFrame: (frame: AgentAcpFrameData) => void, onClosed?: (closed: AgentAcpStreamClosedData) => void, signal?: AbortSignal, tool?: AgentAcpStreamOpenParams['tool']): Promise<{
41
- close(): Promise<void>;
42
- }>;
43
- respond(requestHandle: string, decision: 'allow-once' | 'allow-always' | 'reject-once' | 'cancel', result?: unknown, signal?: AbortSignal): Promise<unknown>;
44
- }
45
- /** Build a backend-scoped virtual Workspace id for an absolute Host cwd. */
46
- export declare function acpCwdWorkspaceId(path: string, backend: 'cursor' | 'antigravity'): string;
47
- export declare function createAcpWorkspaceView(path: string, backend: 'cursor' | 'antigravity', title?: string): AcpVirtualWorkspaceView;
48
- /** Discover ACP virtual workspaces visible on the Host. */
49
- export declare function discoverAcpVirtualWorkspaces(client: AcpClientLike, backend: 'cursor' | 'antigravity', signal?: AbortSignal): Promise<AcpVirtualWorkspaceView[]>;
4
+ import type { AcpVirtualWorkspaceView } from './virtual-catalog.js';
5
+ import type { AcpClientLike } from './virtual-contract.js';
50
6
  /**
51
7
  * Browser-safe, in-memory Harness projection for the independent Agent ACP domain. Projects
52
8
  * cwd workspaces and ACP sessions onto the native DSH Workspace / Session /
@@ -55,7 +11,7 @@ export declare function discoverAcpVirtualWorkspaces(client: AcpClientLike, back
55
11
  export declare class AcpVirtualHarness implements RemoteTypertGatewayTarget {
56
12
  private readonly client;
57
13
  private readonly host;
58
- readonly backend: 'cursor' | 'antigravity';
14
+ readonly backend: "cursor" | "antigravity" | "pi" | "opencode";
59
15
  /**
60
16
  * Host gateway used for endpoints this virtual Harness does not project
61
17
  * (settings, plugins, models, credentials, …). A real Harness workspace
@@ -63,6 +19,8 @@ export declare class AcpVirtualHarness implements RemoteTypertGatewayTarget {
63
19
  * see `method-not-found` for every global surface and can fail its render.
64
20
  */
65
21
  private readonly hostCarrier?;
22
+ private readonly live;
23
+ private readonly events;
66
24
  readonly api: ApiProxy;
67
25
  private readonly workspaceById;
68
26
  private readonly sessions;
@@ -73,6 +31,7 @@ export declare class AcpVirtualHarness implements RemoteTypertGatewayTarget {
73
31
  private readonly rcHostStreams;
74
32
  private readonly follows;
75
33
  private readonly pendingApprovals;
34
+ private readonly pendingHistory;
76
35
  private selectedWorkspaceId?;
77
36
  private readonly selectedModels;
78
37
  private lastProjectionSeq;
@@ -81,7 +40,7 @@ export declare class AcpVirtualHarness implements RemoteTypertGatewayTarget {
81
40
  constructor(client: AcpClientLike, host: {
82
41
  deviceId: string;
83
42
  name: string;
84
- }, backend?: 'cursor' | 'antigravity',
43
+ }, backend?: "cursor" | "antigravity" | "pi" | "opencode",
85
44
  /**
86
45
  * Host gateway used for endpoints this virtual Harness does not project
87
46
  * (settings, plugins, models, credentials, …). A real Harness workspace
@@ -92,7 +51,7 @@ export declare class AcpVirtualHarness implements RemoteTypertGatewayTarget {
92
51
  static remote(core: ConstructorParameters<typeof AgentAcpClient>[0], host: {
93
52
  deviceId: string;
94
53
  name: string;
95
- }, backend?: 'cursor' | 'antigravity', capabilities?: readonly string[], hostCarrier?: RemoteTypertGatewayTarget): AcpVirtualHarness;
54
+ }, backend?: "cursor" | "antigravity" | "pi" | "opencode", capabilities?: readonly string[], hostCarrier?: RemoteTypertGatewayTarget): AcpVirtualHarness;
96
55
  workspaces(): Promise<AcpVirtualWorkspaceView[]>;
97
56
  private backendLabel;
98
57
  selectWorkspace(workspaceId: string): Promise<AcpVirtualWorkspaceView>;
@@ -115,33 +74,13 @@ export declare class AcpVirtualHarness implements RemoteTypertGatewayTarget {
115
74
  private cacheImageAttachments;
116
75
  private attachment;
117
76
  private hydrateSession;
77
+ private hydrateSessionOnce;
118
78
  private sessionHistory;
79
+ private sessionProjections;
119
80
  private sessionPage;
120
81
  private historyPage;
121
82
  private describeHost;
122
83
  private listDirectory;
123
- private answerRemoteEvent;
124
- private workspaceFollow;
125
- private sessionControl;
126
- /**
127
- * Background jobs belong to the Host Harness session, not to a backend-scoped
128
- * virtual Workspace. The native session header mounts a job roster stream as
129
- * soon as a Session opens, so answer it with an authoritative empty roster
130
- * instead of a terminal `method-not-found` failure that tears the page down.
131
- */
132
- private emptyJobStream;
133
- private remoteEvents;
134
- private sessionFollow;
135
- private ensureFollow;
136
- private acceptAcpFrame;
137
- private acceptSessionUpdate;
138
- private acceptApproval;
139
- private pushAssistantChunk;
140
- private endAssistantAttempt;
141
- private appendAssistantDelta;
142
- private appendReasoningDelta;
143
- private closeFollowAfterRemoteStreamClosed;
144
- private pushEvent;
145
84
  private registerSession;
146
85
  private applyDiscoveredTitle;
147
86
  private refreshSessionTitle;
@@ -156,47 +95,9 @@ export declare class AcpVirtualHarness implements RemoteTypertGatewayTarget {
156
95
  private hostSessionModels;
157
96
  private selectModel;
158
97
  private publishWorkspaceBaseline;
159
- private publishProjection;
160
- private emitRemoteEvent;
161
- private emitApproval;
162
98
  private nextProjectionSeq;
163
- private createApiProxy;
164
- private rcMux;
165
- private rcHost;
166
- private broadcastRcMux;
167
- private broadcastRcHost;
168
99
  }
169
- export interface AcpModelSelection {
170
- provider: string;
171
- model: string;
172
- reasoningEffort?: string;
173
- }
174
- export interface AcpModelView {
175
- id: string;
176
- name: string;
177
- description?: string;
178
- reasoning?: {
179
- efforts: Array<{
180
- id: string;
181
- name: string;
182
- description?: string;
183
- }>;
184
- defaultEffort?: string;
185
- };
186
- }
187
- export declare function modelCatalog(backend?: 'cursor' | 'antigravity'): {
188
- default: AcpModelSelection;
189
- routableProviders: string[];
190
- groups: Array<{
191
- id: string;
192
- name: string;
193
- models: AcpModelView[];
194
- }>;
195
- failures: Array<{
196
- id: string;
197
- name: string;
198
- message: string;
199
- }>;
200
- };
201
- export {};
100
+ export { acpCwdWorkspaceId, createAcpWorkspaceView, discoverAcpVirtualWorkspaces, modelCatalog } from './virtual-catalog.js';
101
+ export type { AcpModelSelection, AcpModelView, AcpVirtualWorkspaceView } from './virtual-catalog.js';
102
+ export type { AcpClientLike } from './virtual-contract.js';
202
103
  //# sourceMappingURL=virtual-harness.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"virtual-harness.d.ts","sourceRoot":"","sources":["../../src/acp/virtual-harness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"virtual-harness.d.ts","sourceRoot":"","sources":["../../src/acp/virtual-harness.ts"],"names":[],"mappings":"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"}