ds-harness-remote 0.5.8 → 0.5.11

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 (232) 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 +12 -4
  12. package/dist/acp/adapters/cursor-process.d.ts.map +1 -1
  13. package/dist/acp/adapters/cursor-process.js +86 -4
  14. package/dist/acp/adapters/cursor-process.js.map +1 -1
  15. package/dist/acp/adapters/isolated-process.d.ts +45 -0
  16. package/dist/acp/adapters/isolated-process.d.ts.map +1 -0
  17. package/dist/acp/adapters/isolated-process.js +299 -0
  18. package/dist/acp/adapters/isolated-process.js.map +1 -0
  19. package/dist/acp/adapters/opencode-native-api.d.ts +16 -0
  20. package/dist/acp/adapters/opencode-native-api.d.ts.map +1 -0
  21. package/dist/acp/adapters/opencode-native-api.js +103 -0
  22. package/dist/acp/adapters/opencode-native-api.js.map +1 -0
  23. package/dist/acp/adapters/opencode-process.d.ts +86 -0
  24. package/dist/acp/adapters/opencode-process.d.ts.map +1 -0
  25. package/dist/acp/adapters/opencode-process.js +483 -0
  26. package/dist/acp/adapters/opencode-process.js.map +1 -0
  27. package/dist/acp/adapters/opencode.d.ts +8 -0
  28. package/dist/acp/adapters/opencode.d.ts.map +1 -0
  29. package/dist/acp/adapters/opencode.js +8 -0
  30. package/dist/acp/adapters/opencode.js.map +1 -0
  31. package/dist/acp/adapters/pi-process.d.ts +5 -0
  32. package/dist/acp/adapters/pi-process.d.ts.map +1 -0
  33. package/dist/acp/adapters/pi-process.js +5 -0
  34. package/dist/acp/adapters/pi-process.js.map +1 -0
  35. package/dist/acp/adapters/session-models.d.ts +33 -0
  36. package/dist/acp/adapters/session-models.d.ts.map +1 -0
  37. package/dist/acp/adapters/session-models.js +78 -0
  38. package/dist/acp/adapters/session-models.js.map +1 -0
  39. package/dist/acp/gateway.d.ts +10 -0
  40. package/dist/acp/gateway.d.ts.map +1 -1
  41. package/dist/acp/gateway.js +405 -71
  42. package/dist/acp/gateway.js.map +1 -1
  43. package/dist/acp/history-events.d.ts +8 -0
  44. package/dist/acp/history-events.d.ts.map +1 -0
  45. package/dist/acp/history-events.js +119 -0
  46. package/dist/acp/history-events.js.map +1 -0
  47. package/dist/acp/method-policy.d.ts +30 -20
  48. package/dist/acp/method-policy.d.ts.map +1 -1
  49. package/dist/acp/method-policy.js +6 -5
  50. package/dist/acp/method-policy.js.map +1 -1
  51. package/dist/acp/peer-bridge.d.ts +3 -2
  52. package/dist/acp/peer-bridge.d.ts.map +1 -1
  53. package/dist/acp/peer-bridge.js +4 -0
  54. package/dist/acp/peer-bridge.js.map +1 -1
  55. package/dist/acp/pi-tool-result.d.ts +9 -0
  56. package/dist/acp/pi-tool-result.d.ts.map +1 -0
  57. package/dist/acp/pi-tool-result.js +22 -0
  58. package/dist/acp/pi-tool-result.js.map +1 -0
  59. package/dist/acp/virtual-catalog.d.ts +50 -0
  60. package/dist/acp/virtual-catalog.d.ts.map +1 -0
  61. package/dist/acp/virtual-catalog.js +90 -0
  62. package/dist/acp/virtual-catalog.js.map +1 -0
  63. package/dist/acp/virtual-contract.d.ts +172 -0
  64. package/dist/acp/virtual-contract.d.ts.map +1 -0
  65. package/dist/acp/virtual-contract.js +216 -0
  66. package/dist/acp/virtual-contract.js.map +1 -0
  67. package/dist/acp/virtual-event-carrier.d.ts +51 -0
  68. package/dist/acp/virtual-event-carrier.d.ts.map +1 -0
  69. package/dist/acp/virtual-event-carrier.js +222 -0
  70. package/dist/acp/virtual-event-carrier.js.map +1 -0
  71. package/dist/acp/virtual-harness.d.ts +18 -112
  72. package/dist/acp/virtual-harness.d.ts.map +1 -1
  73. package/dist/acp/virtual-harness.js +238 -952
  74. package/dist/acp/virtual-harness.js.map +1 -1
  75. package/dist/acp/virtual-live.d.ts +79 -0
  76. package/dist/acp/virtual-live.d.ts.map +1 -0
  77. package/dist/acp/virtual-live.js +514 -0
  78. package/dist/acp/virtual-live.js.map +1 -0
  79. package/dist/acp/workspace-tools.js +1 -1
  80. package/dist/acp/workspace-tools.js.map +1 -1
  81. package/dist/acp.d.ts.map +1 -1
  82. package/dist/acp.js +1 -0
  83. package/dist/acp.js.map +1 -1
  84. package/dist/client/header.d.ts +10 -0
  85. package/dist/client/header.d.ts.map +1 -0
  86. package/dist/client/header.js +169 -0
  87. package/dist/client/header.js.map +1 -0
  88. package/dist/client/icons.d.ts +3 -0
  89. package/dist/client/icons.d.ts.map +1 -0
  90. package/dist/client/icons.js +3 -0
  91. package/dist/client/icons.js.map +1 -0
  92. package/dist/client/navigation.d.ts +5 -0
  93. package/dist/client/navigation.d.ts.map +1 -0
  94. package/dist/client/navigation.js +30 -0
  95. package/dist/client/navigation.js.map +1 -0
  96. package/dist/client/presentation.d.ts +17 -0
  97. package/dist/client/presentation.d.ts.map +1 -0
  98. package/dist/client/presentation.js +208 -0
  99. package/dist/client/presentation.js.map +1 -0
  100. package/dist/client/progress.d.ts +10 -0
  101. package/dist/client/progress.d.ts.map +1 -0
  102. package/dist/client/progress.js +82 -0
  103. package/dist/client/progress.js.map +1 -0
  104. package/dist/client/settings.d.ts +10 -0
  105. package/dist/client/settings.d.ts.map +1 -0
  106. package/dist/client/settings.js +335 -0
  107. package/dist/client/settings.js.map +1 -0
  108. package/dist/client/shell.d.ts +6 -0
  109. package/dist/client/shell.d.ts.map +1 -0
  110. package/dist/client/shell.js +129 -0
  111. package/dist/client/shell.js.map +1 -0
  112. package/dist/client/types.d.ts +265 -0
  113. package/dist/client/types.d.ts.map +1 -0
  114. package/dist/client/types.js +2 -0
  115. package/dist/client/types.js.map +1 -0
  116. package/dist/client/workspaces.d.ts +11 -0
  117. package/dist/client/workspaces.d.ts.map +1 -0
  118. package/dist/client/workspaces.js +1261 -0
  119. package/dist/client/workspaces.js.map +1 -0
  120. package/dist/client-capabilities.d.ts +6 -0
  121. package/dist/client-capabilities.d.ts.map +1 -0
  122. package/dist/client-capabilities.js +90 -0
  123. package/dist/client-capabilities.js.map +1 -0
  124. package/dist/client-codex-streams.d.ts +23 -0
  125. package/dist/client-codex-streams.d.ts.map +1 -0
  126. package/dist/client-codex-streams.js +156 -0
  127. package/dist/client-codex-streams.js.map +1 -0
  128. package/dist/client-connection.d.ts +38 -0
  129. package/dist/client-connection.d.ts.map +1 -0
  130. package/dist/client-connection.js +210 -0
  131. package/dist/client-connection.js.map +1 -0
  132. package/dist/client-control.d.ts +48 -0
  133. package/dist/client-control.d.ts.map +1 -0
  134. package/dist/client-control.js +293 -0
  135. package/dist/client-control.js.map +1 -0
  136. package/dist/client-locale.d.ts +12 -0
  137. package/dist/client-locale.d.ts.map +1 -1
  138. package/dist/client-locale.js +24 -0
  139. package/dist/client-locale.js.map +1 -1
  140. package/dist/client-runtime-contract.d.ts +162 -0
  141. package/dist/client-runtime-contract.d.ts.map +1 -0
  142. package/dist/client-runtime-contract.js +127 -0
  143. package/dist/client-runtime-contract.js.map +1 -0
  144. package/dist/client-runtime.d.ts +24 -126
  145. package/dist/client-runtime.d.ts.map +1 -1
  146. package/dist/client-runtime.js +171 -867
  147. package/dist/client-runtime.js.map +1 -1
  148. package/dist/client-secure-transport.d.ts +1 -0
  149. package/dist/client-secure-transport.d.ts.map +1 -1
  150. package/dist/client-secure-transport.js +35 -16
  151. package/dist/client-secure-transport.js.map +1 -1
  152. package/dist/client-workspace-queries.d.ts +12 -0
  153. package/dist/client-workspace-queries.d.ts.map +1 -0
  154. package/dist/client-workspace-queries.js +66 -0
  155. package/dist/client-workspace-queries.js.map +1 -0
  156. package/dist/client.d.ts.map +1 -1
  157. package/dist/client.github.js +2158 -1905
  158. package/dist/client.js +2158 -1905
  159. package/dist/client.js.map +1 -1
  160. package/dist/codex/domain.d.ts.map +1 -1
  161. package/dist/codex/domain.js +67 -46
  162. package/dist/codex/domain.js.map +1 -1
  163. package/dist/codex/method-policy.d.ts +7 -7
  164. package/dist/codex/virtual-catalog.d.ts +90 -0
  165. package/dist/codex/virtual-catalog.d.ts.map +1 -0
  166. package/dist/codex/virtual-catalog.js +317 -0
  167. package/dist/codex/virtual-catalog.js.map +1 -0
  168. package/dist/codex/virtual-contract.d.ts +96 -0
  169. package/dist/codex/virtual-contract.d.ts.map +1 -0
  170. package/dist/codex/virtual-contract.js +192 -0
  171. package/dist/codex/virtual-contract.js.map +1 -0
  172. package/dist/codex/virtual-event-carrier.d.ts +52 -0
  173. package/dist/codex/virtual-event-carrier.d.ts.map +1 -0
  174. package/dist/codex/virtual-event-carrier.js +212 -0
  175. package/dist/codex/virtual-event-carrier.js.map +1 -0
  176. package/dist/codex/virtual-harness.d.ts +16 -117
  177. package/dist/codex/virtual-harness.d.ts.map +1 -1
  178. package/dist/codex/virtual-harness.js +123 -1909
  179. package/dist/codex/virtual-harness.js.map +1 -1
  180. package/dist/codex/virtual-history.d.ts +74 -0
  181. package/dist/codex/virtual-history.d.ts.map +1 -0
  182. package/dist/codex/virtual-history.js +546 -0
  183. package/dist/codex/virtual-history.js.map +1 -0
  184. package/dist/codex/virtual-live.d.ts +75 -0
  185. package/dist/codex/virtual-live.d.ts.map +1 -0
  186. package/dist/codex/virtual-live.js +563 -0
  187. package/dist/codex/virtual-live.js.map +1 -0
  188. package/dist/codex/virtual-values.d.ts +29 -0
  189. package/dist/codex/virtual-values.d.ts.map +1 -0
  190. package/dist/codex/virtual-values.js +75 -0
  191. package/dist/codex/virtual-values.js.map +1 -0
  192. package/dist/config.js +4 -4
  193. package/dist/config.js.map +1 -1
  194. package/dist/control-runtime.js +2 -2
  195. package/dist/control-runtime.js.map +1 -1
  196. package/dist/harness-remote-bridge.d.ts +2 -1
  197. package/dist/harness-remote-bridge.d.ts.map +1 -1
  198. package/dist/harness-remote-bridge.js +11 -3
  199. package/dist/harness-remote-bridge.js.map +1 -1
  200. package/dist/index.d.ts.map +1 -1
  201. package/dist/index.js +17301 -14516
  202. package/dist/index.js.map +4 -4
  203. package/dist/plugin-route-dispatcher.d.ts +2 -2
  204. package/dist/plugin-route-dispatcher.d.ts.map +1 -1
  205. package/dist/plugin-route-dispatcher.js +2 -2
  206. package/dist/plugin-route-dispatcher.js.map +1 -1
  207. package/dist/remote-typert-gateway.js +49 -2
  208. package/dist/remote-typert-gateway.js.map +1 -1
  209. package/dist/server-connection.d.ts +1 -0
  210. package/dist/server-connection.d.ts.map +1 -1
  211. package/dist/server-connection.js +6 -1
  212. package/dist/server-connection.js.map +1 -1
  213. package/dist/service.d.ts +1 -1
  214. package/dist/service.d.ts.map +1 -1
  215. package/dist/service.js +16 -5
  216. package/dist/service.js.map +1 -1
  217. package/dist/terminal-carrier-compat.d.ts +14 -0
  218. package/dist/terminal-carrier-compat.d.ts.map +1 -0
  219. package/dist/terminal-carrier-compat.js +259 -0
  220. package/dist/terminal-carrier-compat.js.map +1 -0
  221. package/dist/typert-gateway-contract.d.ts +6 -1
  222. package/dist/typert-gateway-contract.d.ts.map +1 -1
  223. package/dist/typert-gateway-switch.d.ts +2 -1
  224. package/dist/typert-gateway-switch.d.ts.map +1 -1
  225. package/dist/typert-gateway-switch.js +31 -15
  226. package/dist/typert-gateway-switch.js.map +1 -1
  227. package/dist/version.d.ts +1 -1
  228. package/dist/version.d.ts.map +1 -1
  229. package/dist/version.js +1 -1
  230. package/dist/version.js.map +1 -1
  231. package/dsh-plugin.json +1 -1
  232. package/package.json +21 -19
@@ -0,0 +1,52 @@
1
+ import type { ApiProxy, RpcRequest } from '@deepseek-ai/dsh-host-apiproxy/api';
2
+ import type { TypertRpcResult } from '../typert-gateway-contract.js';
3
+ import type { CatalogState } from './virtual-catalog.js';
4
+ import type { PendingApproval } from './virtual-contract.js';
5
+ import { AsyncValueQueue } from './virtual-contract.js';
6
+ import type { CodexClientLike, JsonRecord } from './virtual-values.js';
7
+ /** Collaborates with one CodexVirtualHarness; never creates a second session or connection state. */
8
+ export interface CodexEventCarrierContext {
9
+ readonly workspaceStreams: Set<AsyncValueQueue>;
10
+ readonly refreshCatalog: (signal?: AbortSignal) => Promise<CatalogState>;
11
+ readonly selectedWorkspaceId: string | undefined;
12
+ readonly controlStreams: Set<AsyncValueQueue>;
13
+ readonly host: {
14
+ deviceId: string;
15
+ name: string;
16
+ };
17
+ readonly eventStreams: Map<string, AsyncValueQueue>;
18
+ readonly currentCatalog: (signal?: AbortSignal) => Promise<CatalogState>;
19
+ readonly pendingApprovals: Map<string, PendingApproval>;
20
+ readonly client: CodexClientLike;
21
+ readonly dispatch: (endpoint: string, payload: unknown, signal: AbortSignal) => Promise<TypertRpcResult>;
22
+ readonly rcMuxStreams: Set<AsyncValueQueue>;
23
+ readonly rcHostStreams: Set<AsyncValueQueue>;
24
+ }
25
+ export declare class CodexEventCarrier {
26
+ private readonly context;
27
+ constructor(context: CodexEventCarrierContext);
28
+ workspaceFollow(signal: AbortSignal): Promise<AsyncIterable<unknown>>;
29
+ sessionControl(signal: AbortSignal): Promise<AsyncIterable<unknown>>;
30
+ /**
31
+ * Background jobs belong to the Host Harness session, not to a CodeX virtual
32
+ * Workspace. The native session header mounts a job roster stream as soon as a
33
+ * Session opens, so answer it with an authoritative empty roster instead of a
34
+ * terminal `method-not-found` failure that tears the page down.
35
+ */
36
+ emptyJobStream(endpoint: 'job/list' | 'job/follow', signal: AbortSignal): AsyncIterable<unknown>;
37
+ remoteEvents(signal: AbortSignal): Promise<AsyncIterable<unknown>>;
38
+ emitRemoteEvent(event: string, args: unknown[]): void;
39
+ emitApproval(input: {
40
+ eventId: string;
41
+ agentId: string;
42
+ request: JsonRecord;
43
+ }): void;
44
+ answerRemoteEvent(args: JsonRecord, signal: AbortSignal): Promise<undefined>;
45
+ createApiProxy(): ApiProxy;
46
+ rcMux(request: RpcRequest<unknown>, signal: AbortSignal): AsyncIterable<unknown>;
47
+ rcHost(_request: RpcRequest<unknown>, signal: AbortSignal): AsyncIterable<unknown>;
48
+ broadcastRcMux(payload: unknown, rpcId?: string): void;
49
+ broadcastRcHost(payload: unknown): void;
50
+ publishProjection(sessionId: string, key: string, value: unknown, seq: number): void;
51
+ }
52
+ //# sourceMappingURL=virtual-event-carrier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"virtual-event-carrier.d.ts","sourceRoot":"","sources":["../../src/codex/virtual-event-carrier.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,212 @@
1
+ import { nativeVisibleWorkspaces, nativeWorkspace } from './virtual-catalog.js';
2
+ import { AsyncValueQueue, failure, rcEndpoint, success } from './virtual-contract.js';
3
+ import { isRecord, record, string } from './virtual-values.js';
4
+ export class CodexEventCarrier {
5
+ context;
6
+ constructor(context) {
7
+ this.context = context;
8
+ }
9
+ async workspaceFollow(signal) {
10
+ const queue = new AsyncValueQueue(signal);
11
+ this.context.workspaceStreams.add(queue);
12
+ const catalog = await this.context.refreshCatalog(signal);
13
+ queue.push({
14
+ type: 'baseline',
15
+ value: {
16
+ items: nativeVisibleWorkspaces(catalog, this.context.selectedWorkspaceId).map(nativeWorkspace),
17
+ archivedSessionIds: catalog.sessions.filter(item => item.archived).map(item => item.id),
18
+ pinnedSessionIds: [],
19
+ },
20
+ });
21
+ return queue.iterate(() => this.context.workspaceStreams.delete(queue));
22
+ }
23
+ async sessionControl(signal) {
24
+ const queue = new AsyncValueQueue(signal);
25
+ this.context.controlStreams.add(queue);
26
+ queue.push({ type: 'baseline', value: { queues: {}, jobs: {}, projections: {} } });
27
+ return queue.iterate(() => this.context.controlStreams.delete(queue));
28
+ }
29
+ /**
30
+ * Background jobs belong to the Host Harness session, not to a CodeX virtual
31
+ * Workspace. The native session header mounts a job roster stream as soon as a
32
+ * Session opens, so answer it with an authoritative empty roster instead of a
33
+ * terminal `method-not-found` failure that tears the page down.
34
+ */
35
+ emptyJobStream(endpoint, signal) {
36
+ const queue = new AsyncValueQueue(signal);
37
+ if (endpoint === 'job/list')
38
+ queue.push({ type: 'rows', jobs: [] });
39
+ return queue.iterate(() => queue.close());
40
+ }
41
+ async remoteEvents(signal) {
42
+ const queue = new AsyncValueQueue(signal);
43
+ const clientId = `codex-events:${this.context.host.deviceId}:${Date.now().toString(36)}`;
44
+ this.context.eventStreams.set(clientId, queue);
45
+ const home = (await this.context.currentCatalog(signal)).workspaces[0]?.path ?? '/';
46
+ queue.push({ type: 'ready', clientId, host: { home } });
47
+ return queue.iterate(() => this.context.eventStreams.delete(clientId));
48
+ }
49
+ emitRemoteEvent(event, args) {
50
+ for (const queue of this.context.eventStreams.values())
51
+ queue.push({ type: 'emit', event, args });
52
+ const sessionId = typeof args[0] === 'string' ? args[0] : undefined;
53
+ if (event === 'api-session/status' && sessionId !== undefined && typeof args[1] === 'boolean') {
54
+ this.broadcastRcHost({ type: 'host/session-status', sessionId, running: args[1] });
55
+ }
56
+ else if (event === 'api-session/removed' && sessionId !== undefined) {
57
+ this.broadcastRcHost({ type: 'host/session-removed', sessionId });
58
+ }
59
+ else if (event === 'api-session/added' && isRecord(args[0])) {
60
+ const summary = args[0];
61
+ this.broadcastRcHost({
62
+ type: 'host/session-added',
63
+ sessionId: summary.sessionId,
64
+ blank: summary.blank === true,
65
+ ...(typeof summary.cwd === 'string' ? { cwd: summary.cwd } : {}),
66
+ });
67
+ }
68
+ }
69
+ emitApproval(input) {
70
+ for (const queue of this.context.eventStreams.values())
71
+ queue.push({
72
+ type: 'waterfall',
73
+ event: 'approval/request',
74
+ eventId: input.eventId,
75
+ agentId: input.agentId,
76
+ request: input.request,
77
+ });
78
+ this.broadcastRcMux({
79
+ type: 'approval/requested',
80
+ sessionId: input.agentId,
81
+ approvalId: input.eventId,
82
+ toolName: string(input.request.toolName) ?? 'CodeX',
83
+ ...(typeof input.request.reason === 'string' ? { reason: input.request.reason } : {}),
84
+ }, input.eventId);
85
+ }
86
+ async answerRemoteEvent(args, signal) {
87
+ const eventId = string(args.eventId);
88
+ const outcome = record(args.outcome);
89
+ if (eventId === undefined)
90
+ throw new Error('The CodeX approval result is missing its event id.');
91
+ const pending = this.context.pendingApprovals.get(eventId);
92
+ if (pending === undefined)
93
+ return undefined;
94
+ this.context.pendingApprovals.delete(eventId);
95
+ const decision = outcome.kind === 'result' && outcome.value === 'allowed-once'
96
+ ? 'accept'
97
+ : outcome.kind === 'result' && outcome.value === 'cancelled'
98
+ ? 'cancel'
99
+ : 'decline';
100
+ await this.context.client.respond(pending.requestHandle, decision, signal);
101
+ return undefined;
102
+ }
103
+ createApiProxy() {
104
+ const call = (endpoint) => async (request, signal) => {
105
+ const payload = endpoint === 'session.prompt' && isRecord(request.payload)
106
+ ? { ...request.payload, requestId: String(request.rpcId) }
107
+ : request.payload;
108
+ const result = await this.context.dispatch(rcEndpoint(endpoint), { args: { request: payload } }, signal ?? new AbortController().signal);
109
+ return {
110
+ rpcId: request.rpcId,
111
+ result: (result.ok
112
+ ? success(result.value)
113
+ : failure(result.error.code, result.error.message, result.error.details)),
114
+ };
115
+ };
116
+ return {
117
+ sessions: {
118
+ list: call('session.list'),
119
+ search: call('session.search'),
120
+ create: call('session.create'),
121
+ history: call('session.history'),
122
+ models: call('session.models'),
123
+ selectModel: call('session.selectModel'),
124
+ rename: call('session.rename'),
125
+ fork: call('session.fork'),
126
+ prompt: call('session.prompt'),
127
+ attachment: call('session.attachment'),
128
+ updateQueue: call('session.updateQueue'),
129
+ cancel: call('session.cancel'),
130
+ },
131
+ workspace: {
132
+ list: call('workspace.list'),
133
+ create: call('workspace.create'),
134
+ rename: call('workspace.rename'),
135
+ delete: call('workspace.delete'),
136
+ insertBefore: call('workspace.insertBefore'),
137
+ insertSessionBefore: call('workspace.insertSessionBefore'),
138
+ archiveSession: call('workspace.archiveSession'),
139
+ },
140
+ subagents: {},
141
+ host: {
142
+ describe: call('host.describe'),
143
+ listDirectory: call('host.listDirectory'),
144
+ },
145
+ skills: { list: call('skills.list') },
146
+ agentPresets: {},
147
+ goals: {},
148
+ settings: {},
149
+ credentials: {},
150
+ llm: {},
151
+ events: {
152
+ mux: ((request, signal) => this.rcMux(request, signal)),
153
+ host: ((request, signal) => this.rcHost(request, signal)),
154
+ },
155
+ downloads: {},
156
+ respond: async (message) => {
157
+ const pending = this.context.pendingApprovals.get(String(message.rpcId));
158
+ if (pending === undefined)
159
+ return { accepted: false, reason: 'not-pending' };
160
+ const result = message.result;
161
+ const outcome = result.ok ? result.value : undefined;
162
+ const decision = outcome === 'allowed-once' ? 'accept' : outcome === 'cancelled' ? 'cancel' : 'decline';
163
+ await this.context.client.respond(pending.requestHandle, decision);
164
+ this.context.pendingApprovals.delete(pending.requestHandle);
165
+ return { accepted: true };
166
+ },
167
+ };
168
+ }
169
+ async *rcMux(request, signal) {
170
+ const queue = new AsyncValueQueue(signal);
171
+ this.context.rcMuxStreams.add(queue);
172
+ const catalog = await this.context.currentCatalog(signal);
173
+ for (const session of catalog.sessions)
174
+ queue.push({
175
+ rpcId: `${String(request.rpcId)}:${session.id}:subscribed`,
176
+ payload: { type: 'session/subscribed', sessionId: session.id, lastSeq: -1 },
177
+ });
178
+ try {
179
+ yield* queue;
180
+ }
181
+ finally {
182
+ this.context.rcMuxStreams.delete(queue);
183
+ queue.close();
184
+ }
185
+ }
186
+ async *rcHost(_request, signal) {
187
+ const queue = new AsyncValueQueue(signal);
188
+ this.context.rcHostStreams.add(queue);
189
+ try {
190
+ yield* queue;
191
+ }
192
+ finally {
193
+ this.context.rcHostStreams.delete(queue);
194
+ queue.close();
195
+ }
196
+ }
197
+ broadcastRcMux(payload, rpcId = `codex-mux:${Date.now()}:${Math.random()}`) {
198
+ for (const queue of this.context.rcMuxStreams)
199
+ queue.push({ rpcId, payload });
200
+ }
201
+ broadcastRcHost(payload) {
202
+ const frame = { rpcId: `codex-host:${Date.now()}:${Math.random()}`, payload };
203
+ for (const queue of this.context.rcHostStreams)
204
+ queue.push(frame);
205
+ }
206
+ publishProjection(sessionId, key, value, seq) {
207
+ for (const queue of this.context.controlStreams)
208
+ queue.push({ type: 'projection', sessionId, key, value, seq });
209
+ this.broadcastRcMux({ type: 'session/projection', sessionId, key, value, seq });
210
+ }
211
+ }
212
+ //# sourceMappingURL=virtual-event-carrier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"virtual-event-carrier.js","sourceRoot":"","sources":["../../src/codex/virtual-event-carrier.ts"],"names":[],"mappings":"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"}
@@ -1,76 +1,9 @@
1
1
  import type { ApiProxy } from '@deepseek-ai/dsh-host-apiproxy/api';
2
2
  import { CodexRemoteClient } from '@dsh-remote/client-core';
3
- import type { RemoteTypertGatewayTarget, TypertGatewayRequest, TypertRpcResult } from '../typert-gateway-contract.js';
4
- import type { CodexPermissionSnapshot } from '@dsh-remote/protocol';
5
3
  import type { HarnessSessionGeneration } from '../harness-version.js';
6
- type JsonRecord = Record<string, unknown>;
7
- export interface CodexVirtualWorkspaceView {
8
- workspaceId: string;
9
- path: string;
10
- title: string;
11
- sessionIds: string[];
12
- sessionCount: number;
13
- createdAt: string;
14
- updatedAt: string;
15
- }
16
- export declare function codexProjectWorkspaceId(projectId: string): string;
17
- interface CodexClientLike {
18
- request(method: string, params: unknown, signal?: AbortSignal): Promise<unknown>;
19
- subscribe(threadId: string, onFrame: (frame: {
20
- method: string;
21
- params: unknown;
22
- }) => void, signal?: AbortSignal, onClose?: (reason: 'cancelled' | 'completed' | 'failed' | 'peer-disconnected') => void): Promise<{
23
- close(): Promise<void>;
24
- }>;
25
- respond(requestHandle: string, decision: 'accept' | 'decline' | 'cancel', signal?: AbortSignal): Promise<void>;
26
- }
27
- interface NativeEvent {
28
- type: string;
29
- seq: number;
30
- time: number;
31
- data: unknown;
32
- sourceEventSeqs?: number[];
33
- surfaceOp?: 'append' | {
34
- op: 'replace';
35
- start: number;
36
- end: number;
37
- } | {
38
- op: 'replace';
39
- startSeq: number;
40
- endSeq: number;
41
- };
42
- }
43
- export interface CodexNativeHistory {
44
- header: {
45
- version: number;
46
- id: string;
47
- createdAt: number;
48
- cwd?: string;
49
- isSeeded?: boolean;
50
- };
51
- entries: Array<{
52
- type: 'event';
53
- event: NativeEvent;
54
- view?: ToolEventView;
55
- }>;
56
- lastSeq: number;
57
- nextTurn: number;
58
- activeTurnId?: string;
59
- }
60
- export interface CodexNativeHistoryPage extends CodexPermissionSnapshot {
61
- header: CodexNativeHistory['header'];
62
- cursor: number;
63
- nextTurn: number;
64
- records: CodexNativeHistory['entries'];
65
- hasMore: boolean;
66
- activeTurnId?: string;
67
- }
68
- interface ToolEventView {
69
- for: 'call' | 'result';
70
- view: JsonRecord;
71
- }
72
- /** Discover the CodeX projects visible through the Host App Server. */
73
- export declare function discoverCodexVirtualWorkspaces(client: CodexClientLike, signal?: AbortSignal): Promise<CodexVirtualWorkspaceView[]>;
4
+ import type { RemoteTypertGatewayTarget, TypertGatewayRequest, TypertRpcResult } from '../typert-gateway-contract.js';
5
+ import type { CodexVirtualWorkspaceView } from './virtual-catalog.js';
6
+ import type { CodexClientLike } from './virtual-values.js';
74
7
  /**
75
8
  * A plugin-owned virtual Harness target. It projects CodeX Thread/Turn data at
76
9
  * the existing ApiProxy/Typert carrier boundary, so every UI layer above the
@@ -81,6 +14,8 @@ export declare class CodexVirtualHarness implements RemoteTypertGatewayTarget {
81
14
  private readonly host;
82
15
  private readonly sessionGeneration;
83
16
  private readonly hostCarrier?;
17
+ private readonly live;
18
+ private readonly events;
84
19
  readonly api: ApiProxy;
85
20
  private catalog?;
86
21
  private readonly workspaceStreams;
@@ -101,6 +36,8 @@ export declare class CodexVirtualHarness implements RemoteTypertGatewayTarget {
101
36
  private lastProjectionSeq;
102
37
  private commandSeq;
103
38
  private selectedWorkspaceId?;
39
+ private lastOpenedSessionId?;
40
+ private readonly openedWorkspaceSessions;
104
41
  private closed;
105
42
  constructor(client: CodexClientLike, host: {
106
43
  deviceId: string;
@@ -112,7 +49,10 @@ export declare class CodexVirtualHarness implements RemoteTypertGatewayTarget {
112
49
  }, sessionGeneration?: HarnessSessionGeneration, hostCarrier?: RemoteTypertGatewayTarget): CodexVirtualHarness;
113
50
  workspaces(signal?: AbortSignal): Promise<CodexVirtualWorkspaceView[]>;
114
51
  selectWorkspace(workspaceId: string, signal?: AbortSignal): Promise<CodexVirtualWorkspaceView>;
115
- preferredSessionId(signal?: AbortSignal): Promise<string | undefined>;
52
+ get openedSessionId(): string | undefined;
53
+ get openedSessions(): ReadonlyMap<string, string>;
54
+ private rememberOpenedSession;
55
+ preferredSessionId(signal?: AbortSignal, preferredSessionId?: string | undefined): Promise<string | undefined>;
116
56
  invoke(request: TypertGatewayRequest): Promise<unknown>;
117
57
  dispatch(endpoint: string, payload: unknown, signal: AbortSignal): Promise<TypertRpcResult>;
118
58
  open(endpoint: string, payload: unknown, signal: AbortSignal): Promise<AsyncIterable<unknown>>;
@@ -127,41 +67,11 @@ export declare class CodexVirtualHarness implements RemoteTypertGatewayTarget {
127
67
  private executeCommand;
128
68
  private sessionTitle;
129
69
  private selectModel;
130
- private publishProjection;
131
70
  private nextProjectionSeq;
132
71
  private updateThreadName;
133
72
  private sessionSummaries;
134
73
  private sessionSummary;
135
74
  private searchSessions;
136
- private workspaceFollow;
137
- private sessionControl;
138
- /**
139
- * Background jobs belong to the Host Harness session, not to a CodeX virtual
140
- * Workspace. The native session header mounts a job roster stream as soon as a
141
- * Session opens, so answer it with an authoritative empty roster instead of a
142
- * terminal `method-not-found` failure that tears the page down.
143
- */
144
- private emptyJobStream;
145
- private remoteEvents;
146
- private sessionFollow;
147
- private acceptCodexFrame;
148
- private acceptCompletedItem;
149
- private pushEvent;
150
- private cacheImageBlocks;
151
- private ensureStreamBlock;
152
- private appendStreamDelta;
153
- private closeItemStreamBlocks;
154
- private closeAllStreamBlocks;
155
- private finishStream;
156
- private pushAssistantChunk;
157
- private endAssistantAttempt;
158
- private ensureToolStarted;
159
- private emitToolResult;
160
- private pushToolResult;
161
- private resetLiveTurn;
162
- private emitRemoteEvent;
163
- private emitApproval;
164
- private answerRemoteEvent;
165
75
  private createWorkspace;
166
76
  private renameWorkspace;
167
77
  private workspaceForSession;
@@ -176,28 +86,17 @@ export declare class CodexVirtualHarness implements RemoteTypertGatewayTarget {
176
86
  private hydrateImageAttachments;
177
87
  private cancel;
178
88
  private renameSession;
89
+ private sessionProjections;
179
90
  private sessionPage;
180
91
  private activeTurnId;
181
- private fetchThread;
182
92
  private readHistoryPage;
183
93
  private cacheHistoryImages;
184
94
  private sessionHistory;
185
- private ensureRcFollow;
186
- private followsHas;
187
- private closeFollowAfterRemoteStreamClosed;
188
95
  private refreshAndPublishWorkspaces;
189
96
  private publishWorkspaceBaseline;
190
- private createApiProxy;
191
- private rcMux;
192
- private rcHost;
193
- private broadcastRcMux;
194
- private broadcastRcHost;
195
97
  }
196
- export declare function projectCodexNativeHistory(thread: JsonRecord, sessionId: string, sessionGeneration?: HarnessSessionGeneration): CodexNativeHistory;
197
- export declare function paginateCodexNativeHistory(history: CodexNativeHistory, request: {
198
- beforeSeq?: number;
199
- throughSeq?: number;
200
- maxMessages?: number;
201
- }): CodexNativeHistoryPage;
202
- export {};
98
+ export { codexProjectWorkspaceId, discoverCodexVirtualWorkspaces } from './virtual-catalog.js';
99
+ export type { CodexVirtualWorkspaceView } from './virtual-catalog.js';
100
+ export { paginateCodexNativeHistory, projectCodexNativeHistory } from './virtual-history.js';
101
+ export type { CodexNativeHistory, CodexNativeHistoryPage } from './virtual-history.js';
203
102
  //# sourceMappingURL=virtual-harness.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"virtual-harness.d.ts","sourceRoot":"","sources":["../../src/codex/virtual-harness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"virtual-harness.d.ts","sourceRoot":"","sources":["../../src/codex/virtual-harness.ts"],"names":[],"mappings":"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"}