hyperbrane 0.1.2 → 0.2.0

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 (287) hide show
  1. package/README.md +67 -25
  2. package/dist/agent/agentClient.d.ts +5 -0
  3. package/dist/agent/agentClient.js +4 -0
  4. package/dist/agent/agentService.d.ts +9 -37
  5. package/dist/agent/agentService.js +62 -322
  6. package/dist/agent/agentStorage.d.ts +1 -20
  7. package/dist/agent/agentStorage.js +0 -30
  8. package/dist/agent/api.d.ts +80 -151
  9. package/dist/agent/api.js +1 -8
  10. package/dist/agent/client.d.ts +3 -1
  11. package/dist/agent/client.js +2 -3
  12. package/dist/agent/control.d.ts +23 -0
  13. package/dist/agent/control.js +479 -0
  14. package/dist/agent/hostTranscript.d.ts +0 -6
  15. package/dist/agent/hostTranscript.js +3 -14
  16. package/dist/agent/session/backend.d.ts +17 -32
  17. package/dist/agent/session/claude/home.d.ts +0 -1
  18. package/dist/agent/session/claude/home.js +0 -1
  19. package/dist/agent/session/claude/provision.d.ts +10 -0
  20. package/dist/agent/session/claude/provision.js +17 -0
  21. package/dist/agent/session/claude/transcript.d.ts +2 -7
  22. package/dist/agent/session/claude/transcript.js +68 -14
  23. package/dist/agent/session/client.d.ts +1 -10
  24. package/dist/agent/session/client.js +0 -3
  25. package/dist/agent/session/codex/provision.d.ts +14 -0
  26. package/dist/agent/session/codex/provision.js +25 -0
  27. package/dist/agent/session/fileTranscript.d.ts +6 -49
  28. package/dist/agent/session/fileTranscript.js +26 -82
  29. package/dist/agent/session/install.d.ts +5 -0
  30. package/dist/agent/session/install.js +35 -0
  31. package/dist/agent/session/sessionStorage.d.ts +4 -35
  32. package/dist/agent/session/sessionStorage.js +10 -16
  33. package/dist/agent/session/sharedConnection.d.ts +0 -8
  34. package/dist/agent/session/sharedConnection.js +0 -7
  35. package/dist/agent/session/storedTranscripts.d.ts +1 -6
  36. package/dist/agent/session/storedTranscripts.js +0 -3
  37. package/dist/agent/session/worker/jsonRpc.d.ts +2 -13
  38. package/dist/agent/session/worker/jsonRpc.js +2 -11
  39. package/dist/agent/session/worker/protocol.d.ts +26 -20
  40. package/dist/agent/session/worker/protocol.js +29 -18
  41. package/dist/agent/session/worker/workerParams.d.ts +0 -5
  42. package/dist/agent/session/worker/workerParams.js +14 -14
  43. package/dist/agent/session/workerConnection.d.ts +2 -13
  44. package/dist/agent/session/workerConnection.js +7 -12
  45. package/dist/agent/session/workerGatewayConnection.d.ts +18 -0
  46. package/dist/agent/session/workerGatewayConnection.js +86 -0
  47. package/dist/agent/vendor-types/manifest.json +87 -0
  48. package/dist/agent/workerBundle.d.ts +4 -19
  49. package/dist/agent/workerBundle.generated.js +1 -1
  50. package/dist/agent/workerBundle.js +3 -30
  51. package/dist/agent/workerReplacement.d.ts +3 -0
  52. package/dist/agent/workerReplacement.js +49 -0
  53. package/dist/cli/agent.js +31 -16
  54. package/dist/cli/command.d.ts +10 -11
  55. package/dist/cli/command.js +0 -4
  56. package/dist/cli/dimension.js +6 -6
  57. package/dist/cli/gateway.js +3 -6
  58. package/dist/cli/main.js +14 -31
  59. package/dist/cli/streamPrinter.d.ts +2 -10
  60. package/dist/cli/streamPrinter.js +16 -46
  61. package/dist/cli/table.d.ts +0 -3
  62. package/dist/cli/table.js +0 -4
  63. package/dist/dimension/api.d.ts +39 -27
  64. package/dist/dimension/api.js +28 -47
  65. package/dist/dimension/client.d.ts +5 -0
  66. package/dist/dimension/client.js +4 -0
  67. package/dist/dimension/control.d.ts +21 -0
  68. package/dist/dimension/control.js +328 -0
  69. package/dist/dimension/image.d.ts +0 -5
  70. package/dist/dimension/image.js +0 -8
  71. package/dist/dimension/imageFiles.generated.js +1 -1
  72. package/dist/dimension/paths.d.ts +5 -4
  73. package/dist/dimension/paths.js +15 -6
  74. package/dist/dimension/service.d.ts +8 -24
  75. package/dist/dimension/service.js +60 -228
  76. package/dist/dimension/transport-worker.d.ts +1 -0
  77. package/dist/dimension/transport-worker.js +151 -0
  78. package/dist/dimension/transportBundle.d.ts +2 -0
  79. package/dist/dimension/transportBundle.generated.d.ts +1 -0
  80. package/dist/dimension/transportBundle.generated.js +2 -0
  81. package/dist/dimension/transportBundle.js +4 -0
  82. package/dist/dimension/transportClient.d.ts +10 -0
  83. package/dist/dimension/transportClient.js +115 -0
  84. package/dist/dimension/transportProtocol.d.ts +53 -0
  85. package/dist/dimension/transportProtocol.js +8 -0
  86. package/dist/index.d.ts +5 -9
  87. package/dist/index.js +5 -19
  88. package/dist/lib/control.d.ts +8 -0
  89. package/dist/lib/control.js +62 -0
  90. package/dist/lib/docker.d.ts +0 -22
  91. package/dist/lib/docker.js +0 -10
  92. package/dist/lib/image.d.ts +0 -3
  93. package/dist/lib/image.js +0 -2
  94. package/dist/lib/jsonDirectory.d.ts +0 -13
  95. package/dist/lib/jsonDirectory.js +10 -15
  96. package/dist/lib/scriptBundle.d.ts +6 -0
  97. package/dist/lib/scriptBundle.js +28 -0
  98. package/dist/lib/sh.d.ts +2 -0
  99. package/dist/lib/sh.js +8 -0
  100. package/dist/lib/sleep.d.ts +0 -1
  101. package/dist/lib/sleep.js +0 -1
  102. package/dist/lib/streamFetch.d.ts +15 -0
  103. package/dist/lib/streamFetch.js +150 -0
  104. package/dist/lib/tar.d.ts +0 -1
  105. package/dist/lib/tar.js +5 -11
  106. package/dist/portal-gateway/api.d.ts +13 -44
  107. package/dist/portal-gateway/api.js +1 -3
  108. package/dist/portal-gateway/control.d.ts +42 -0
  109. package/dist/portal-gateway/control.js +657 -0
  110. package/dist/portal-gateway/gatewayClient.d.ts +5 -0
  111. package/dist/portal-gateway/gatewayClient.js +4 -0
  112. package/dist/portal-gateway/gatewayService.d.ts +8 -38
  113. package/dist/portal-gateway/gatewayService.js +68 -254
  114. package/dist/portal-gateway/image.d.ts +0 -1
  115. package/dist/portal-gateway/image.js +0 -2
  116. package/dist/portal-gateway/imageFiles.generated.js +2 -2
  117. package/dist/portal-gateway/portalClient.d.ts +5 -0
  118. package/dist/portal-gateway/portalClient.js +4 -0
  119. package/dist/portal-gateway/portalService.d.ts +5 -47
  120. package/dist/portal-gateway/portalService.js +19 -349
  121. package/dist/portal-gateway/transport-worker.d.ts +1 -0
  122. package/dist/portal-gateway/transport-worker.js +205 -0
  123. package/dist/portal-gateway/transportBundle.d.ts +2 -0
  124. package/dist/portal-gateway/transportBundle.generated.d.ts +1 -0
  125. package/dist/portal-gateway/transportBundle.generated.js +2 -0
  126. package/dist/portal-gateway/transportBundle.js +4 -0
  127. package/dist/portal-gateway/upstream.d.ts +0 -81
  128. package/dist/portal-gateway/upstream.js +0 -1
  129. package/dist/sandbox/api.d.ts +121 -187
  130. package/dist/sandbox/api.js +5 -7
  131. package/dist/sandbox/client.d.ts +2 -0
  132. package/dist/sandbox/client.js +4 -0
  133. package/dist/sandbox/data-endpoints/dataEndpoints.d.ts +13 -0
  134. package/dist/sandbox/data-endpoints/dataEndpoints.js +100 -0
  135. package/dist/sandbox/data-endpoints/firewalledPorts.d.ts +4 -0
  136. package/dist/sandbox/data-endpoints/firewalledPorts.js +28 -0
  137. package/dist/sandbox/lib/httpOverStream.d.ts +3 -0
  138. package/dist/sandbox/lib/httpOverStream.js +21 -0
  139. package/dist/sandbox/lib/remoteFileOperations.d.ts +10 -0
  140. package/dist/sandbox/lib/remoteFileOperations.js +70 -0
  141. package/dist/sandbox/lib/shellCommand.d.ts +3 -0
  142. package/dist/sandbox/lib/shellCommand.js +7 -0
  143. package/dist/sandbox/providers/boat/boatService.d.ts +2 -0
  144. package/dist/sandbox/providers/boat/boatService.js +321 -0
  145. package/dist/sandbox/providers/exedev/exeDevService.d.ts +2 -0
  146. package/dist/sandbox/providers/exedev/exeDevService.js +127 -0
  147. package/dist/sandbox/providers/exedev/exeDevToken.d.ts +1 -0
  148. package/dist/sandbox/providers/exedev/exeDevToken.js +54 -0
  149. package/dist/sandbox/providers/local/localService.d.ts +2 -0
  150. package/dist/sandbox/providers/local/localService.js +219 -0
  151. package/dist/sandbox/providers/ssh/sshService.d.ts +2 -0
  152. package/dist/sandbox/providers/ssh/sshService.js +82 -0
  153. package/dist/sandbox/providers/ssh/sshTransport.d.ts +12 -0
  154. package/dist/sandbox/providers/ssh/sshTransport.js +216 -0
  155. package/dist/sandbox/service.d.ts +2 -0
  156. package/dist/sandbox/service.js +18 -0
  157. package/dist/sandbox/storage/descriptors.d.ts +6 -0
  158. package/dist/sandbox/storage/descriptors.js +25 -0
  159. package/dist/sandbox/storage/sandboxStorage.d.ts +11 -0
  160. package/dist/sandbox/storage/sandboxStorage.js +42 -0
  161. package/dist/upstreams/anthropic.d.ts +0 -5
  162. package/dist/upstreams/anthropic.js +1 -8
  163. package/dist/upstreams/index.d.ts +2 -6
  164. package/dist/upstreams/index.js +0 -4
  165. package/dist/upstreams/openai.d.ts +0 -5
  166. package/dist/upstreams/openai.js +1 -13
  167. package/package.json +12 -4
  168. package/dist/agent/gatewaySignIns.d.ts +0 -5
  169. package/dist/agent/gatewaySignIns.js +0 -11
  170. package/dist/agent/session/codex/home.d.ts +0 -2
  171. package/dist/agent/session/codex/home.js +0 -4
  172. package/dist/agent/session/codex/messages.d.ts +0 -30
  173. package/dist/agent/session/codex/messages.js +0 -135
  174. package/dist/agent/session/codex/transcript.d.ts +0 -12
  175. package/dist/agent/session/codex/transcript.js +0 -22
  176. package/dist/agent/session/sdkMessages.d.ts +0 -15
  177. package/dist/agent/session/sdkMessages.js +0 -28
  178. package/dist/agent/session/workerSseConnection.d.ts +0 -31
  179. package/dist/agent/session/workerSseConnection.js +0 -76
  180. package/dist/agent/vendor-types/codex/app-server/AbsolutePathBuf.d.ts +0 -10
  181. package/dist/agent/vendor-types/codex/app-server/AbsolutePathBuf.js +0 -2
  182. package/dist/agent/vendor-types/codex/app-server/FunctionCallOutputBody.d.ts +0 -2
  183. package/dist/agent/vendor-types/codex/app-server/FunctionCallOutputBody.js +0 -2
  184. package/dist/agent/vendor-types/codex/app-server/FunctionCallOutputContentItem.d.ts +0 -22
  185. package/dist/agent/vendor-types/codex/app-server/FunctionCallOutputContentItem.js +0 -2
  186. package/dist/agent/vendor-types/codex/app-server/ImageDetail.d.ts +0 -1
  187. package/dist/agent/vendor-types/codex/app-server/ImageDetail.js +0 -2
  188. package/dist/agent/vendor-types/codex/app-server/ImageGenerationFailure.d.ts +0 -5
  189. package/dist/agent/vendor-types/codex/app-server/ImageGenerationFailure.js +0 -2
  190. package/dist/agent/vendor-types/codex/app-server/ImageGenerationItem.d.ts +0 -11
  191. package/dist/agent/vendor-types/codex/app-server/ImageGenerationItem.js +0 -2
  192. package/dist/agent/vendor-types/codex/app-server/LegacyAppPathString.d.ts +0 -23
  193. package/dist/agent/vendor-types/codex/app-server/LegacyAppPathString.js +0 -2
  194. package/dist/agent/vendor-types/codex/app-server/MessagePhase.d.ts +0 -7
  195. package/dist/agent/vendor-types/codex/app-server/MessagePhase.js +0 -2
  196. package/dist/agent/vendor-types/codex/app-server/ReasoningEffort.d.ts +0 -4
  197. package/dist/agent/vendor-types/codex/app-server/ReasoningEffort.js +0 -2
  198. package/dist/agent/vendor-types/codex/app-server/SleepItem.d.ts +0 -7
  199. package/dist/agent/vendor-types/codex/app-server/SleepItem.js +0 -2
  200. package/dist/agent/vendor-types/codex/app-server/WebSearchItem.d.ts +0 -14
  201. package/dist/agent/vendor-types/codex/app-server/WebSearchItem.js +0 -2
  202. package/dist/agent/vendor-types/codex/app-server/serde_json/JsonValue.d.ts +0 -3
  203. package/dist/agent/vendor-types/codex/app-server/serde_json/JsonValue.js +0 -2
  204. package/dist/agent/vendor-types/codex/app-server/v2/AgentMessageDelivery.d.ts +0 -1
  205. package/dist/agent/vendor-types/codex/app-server/v2/AgentMessageDelivery.js +0 -2
  206. package/dist/agent/vendor-types/codex/app-server/v2/AsyncUserInputQuestion.d.ts +0 -4
  207. package/dist/agent/vendor-types/codex/app-server/v2/AsyncUserInputQuestion.js +0 -2
  208. package/dist/agent/vendor-types/codex/app-server/v2/ByteRange.d.ts +0 -4
  209. package/dist/agent/vendor-types/codex/app-server/v2/ByteRange.js +0 -2
  210. package/dist/agent/vendor-types/codex/app-server/v2/CollabAgentState.d.ts +0 -5
  211. package/dist/agent/vendor-types/codex/app-server/v2/CollabAgentState.js +0 -2
  212. package/dist/agent/vendor-types/codex/app-server/v2/CollabAgentStatus.d.ts +0 -1
  213. package/dist/agent/vendor-types/codex/app-server/v2/CollabAgentStatus.js +0 -2
  214. package/dist/agent/vendor-types/codex/app-server/v2/CollabAgentTool.d.ts +0 -1
  215. package/dist/agent/vendor-types/codex/app-server/v2/CollabAgentTool.js +0 -2
  216. package/dist/agent/vendor-types/codex/app-server/v2/CollabAgentToolCallStatus.d.ts +0 -1
  217. package/dist/agent/vendor-types/codex/app-server/v2/CollabAgentToolCallStatus.js +0 -2
  218. package/dist/agent/vendor-types/codex/app-server/v2/CommandAction.d.ts +0 -19
  219. package/dist/agent/vendor-types/codex/app-server/v2/CommandAction.js +0 -2
  220. package/dist/agent/vendor-types/codex/app-server/v2/CommandExecutionSource.d.ts +0 -1
  221. package/dist/agent/vendor-types/codex/app-server/v2/CommandExecutionSource.js +0 -2
  222. package/dist/agent/vendor-types/codex/app-server/v2/CommandExecutionStatus.d.ts +0 -1
  223. package/dist/agent/vendor-types/codex/app-server/v2/CommandExecutionStatus.js +0 -2
  224. package/dist/agent/vendor-types/codex/app-server/v2/DynamicToolCallOutputContentItem.d.ts +0 -10
  225. package/dist/agent/vendor-types/codex/app-server/v2/DynamicToolCallOutputContentItem.js +0 -2
  226. package/dist/agent/vendor-types/codex/app-server/v2/DynamicToolCallStatus.d.ts +0 -1
  227. package/dist/agent/vendor-types/codex/app-server/v2/DynamicToolCallStatus.js +0 -2
  228. package/dist/agent/vendor-types/codex/app-server/v2/FileUpdateChange.d.ts +0 -6
  229. package/dist/agent/vendor-types/codex/app-server/v2/FileUpdateChange.js +0 -2
  230. package/dist/agent/vendor-types/codex/app-server/v2/HookPromptFragment.d.ts +0 -4
  231. package/dist/agent/vendor-types/codex/app-server/v2/HookPromptFragment.js +0 -2
  232. package/dist/agent/vendor-types/codex/app-server/v2/McpAppDisplayMode.d.ts +0 -1
  233. package/dist/agent/vendor-types/codex/app-server/v2/McpAppDisplayMode.js +0 -2
  234. package/dist/agent/vendor-types/codex/app-server/v2/McpAppUi.d.ts +0 -8
  235. package/dist/agent/vendor-types/codex/app-server/v2/McpAppUi.js +0 -2
  236. package/dist/agent/vendor-types/codex/app-server/v2/McpToolCallAppContext.d.ts +0 -7
  237. package/dist/agent/vendor-types/codex/app-server/v2/McpToolCallAppContext.js +0 -2
  238. package/dist/agent/vendor-types/codex/app-server/v2/McpToolCallError.d.ts +0 -3
  239. package/dist/agent/vendor-types/codex/app-server/v2/McpToolCallError.js +0 -2
  240. package/dist/agent/vendor-types/codex/app-server/v2/McpToolCallResult.d.ts +0 -6
  241. package/dist/agent/vendor-types/codex/app-server/v2/McpToolCallResult.js +0 -2
  242. package/dist/agent/vendor-types/codex/app-server/v2/McpToolCallStatus.d.ts +0 -1
  243. package/dist/agent/vendor-types/codex/app-server/v2/McpToolCallStatus.js +0 -2
  244. package/dist/agent/vendor-types/codex/app-server/v2/MemoryCitation.d.ts +0 -5
  245. package/dist/agent/vendor-types/codex/app-server/v2/MemoryCitation.js +0 -2
  246. package/dist/agent/vendor-types/codex/app-server/v2/MemoryCitationEntry.d.ts +0 -6
  247. package/dist/agent/vendor-types/codex/app-server/v2/MemoryCitationEntry.js +0 -2
  248. package/dist/agent/vendor-types/codex/app-server/v2/PatchApplyStatus.d.ts +0 -1
  249. package/dist/agent/vendor-types/codex/app-server/v2/PatchApplyStatus.js +0 -2
  250. package/dist/agent/vendor-types/codex/app-server/v2/PatchChangeKind.d.ts +0 -8
  251. package/dist/agent/vendor-types/codex/app-server/v2/PatchChangeKind.js +0 -2
  252. package/dist/agent/vendor-types/codex/app-server/v2/SubAgentActivityKind.d.ts +0 -1
  253. package/dist/agent/vendor-types/codex/app-server/v2/SubAgentActivityKind.js +0 -2
  254. package/dist/agent/vendor-types/codex/app-server/v2/TextElement.d.ts +0 -11
  255. package/dist/agent/vendor-types/codex/app-server/v2/TextElement.js +0 -2
  256. package/dist/agent/vendor-types/codex/app-server/v2/ThreadItem.d.ts +0 -215
  257. package/dist/agent/vendor-types/codex/app-server/v2/ThreadItem.js +0 -2
  258. package/dist/agent/vendor-types/codex/app-server/v2/UserInput.d.ts +0 -35
  259. package/dist/agent/vendor-types/codex/app-server/v2/UserInput.js +0 -2
  260. package/dist/agent/vendor-types/codex/app-server/v2/WebSearchAction.d.ts +0 -14
  261. package/dist/agent/vendor-types/codex/app-server/v2/WebSearchAction.js +0 -2
  262. package/dist/cli/services.d.ts +0 -19
  263. package/dist/cli/services.js +0 -34
  264. package/dist/dimension/http.d.ts +0 -7
  265. package/dist/dimension/http.js +0 -77
  266. package/dist/dimension/storage.d.ts +0 -39
  267. package/dist/dimension/storage.js +0 -79
  268. package/dist/portal-gateway/fakes.d.ts +0 -3
  269. package/dist/portal-gateway/fakes.js +0 -11
  270. package/dist/portal-gateway/gatewayStorage.d.ts +0 -66
  271. package/dist/portal-gateway/gatewayStorage.js +0 -125
  272. package/dist/portal-gateway/portalStorage.d.ts +0 -34
  273. package/dist/portal-gateway/portalStorage.js +0 -44
  274. package/dist/sandbox/boatService.d.ts +0 -52
  275. package/dist/sandbox/boatService.js +0 -343
  276. package/dist/sandbox/containerService.d.ts +0 -15
  277. package/dist/sandbox/containerService.js +0 -184
  278. package/dist/sandbox/endpointProxy.d.ts +0 -90
  279. package/dist/sandbox/endpointProxy.js +0 -716
  280. package/dist/sandbox/exeDevAuth.d.ts +0 -16
  281. package/dist/sandbox/exeDevAuth.js +0 -49
  282. package/dist/sandbox/localService.d.ts +0 -19
  283. package/dist/sandbox/localService.js +0 -200
  284. package/dist/sandbox/sseConnection.d.ts +0 -41
  285. package/dist/sandbox/sseConnection.js +0 -166
  286. package/dist/sandbox/sshService.d.ts +0 -30
  287. package/dist/sandbox/sshService.js +0 -680
@@ -1,44 +1,39 @@
1
1
  import { createJsonRpcPeer } from "./worker/jsonRpc.js";
2
- import { WorkerMethodNotFoundError, decodeWorkerError, encodeWorkerError, } from "./worker/protocol.js";
3
- /** A connection speaking JSON-RPC over `transport` (`label` says where to, in errors). */
2
+ import { WORKER_PROTOCOL, WorkerMethodNotFoundError, decodeWorkerError, encodeWorkerError, } from "./worker/protocol.js";
4
3
  export function workerConnectionOver(transport, label, onNotification) {
5
4
  let peer;
6
5
  transport.onText((text) => peer?.receive(text));
7
6
  const closed = transport.closed.then(() => peer?.close(new Error(`the worker at ${label} closed the connection`)));
8
7
  peer = createJsonRpcPeer((text) => transport.write(text), {
9
- // The worker makes no requests of its clients.
10
8
  onRequest: async (method) => {
11
9
  throw new WorkerMethodNotFoundError(`no method ${method}`);
12
10
  },
13
- // type-bypass: notifications arrive as JSON; the worker only sends those in WorkerNotifications.
14
11
  onNotification: (method, params) => onNotification?.(method, params),
12
+ protocol: WORKER_PROTOCOL,
15
13
  encodeError: encodeWorkerError,
16
14
  decodeError: decodeWorkerError,
17
15
  });
18
16
  const connected = peer;
19
17
  return {
20
- // type-bypass: the result is the one WorkerRequests pairs with this method.
21
18
  request: (method, params) => connected.request(method, params),
22
19
  closed,
23
20
  close: () => transport.close(),
24
21
  };
25
22
  }
26
- /**
27
- * Connects over the worker's unix socket at `socketPath` in `host` (the dimension's run directory is
28
- * mounted on the host, wherever that is: this machine, or a server reached over SSH), speaking
29
- * JSON-RPC.
30
- */
31
23
  export function workerSocketConnector(host, socketPath) {
24
+ return workerStreamConnector(() => host.connect(socketPath), socketPath);
25
+ }
26
+ export function workerStreamConnector(open, label) {
32
27
  return async (onNotification) => {
33
28
  const decoder = new TextDecoder();
34
29
  const encoder = new TextEncoder();
35
- const socket = await host.connect(socketPath);
30
+ const socket = await open();
36
31
  const transport = {
37
32
  write: (text) => socket.write(encoder.encode(text)),
38
33
  onText: (listener) => socket.onData((data) => listener(decoder.decode(data, { stream: true }))),
39
34
  closed: socket.closed,
40
35
  close: () => socket.close(),
41
36
  };
42
- return workerConnectionOver(transport, socketPath, onNotification);
37
+ return workerConnectionOver(transport, label, onNotification);
43
38
  };
44
39
  }
@@ -0,0 +1,18 @@
1
+ import type { SandboxAccess } from "../../sandbox/api.ts";
2
+ import { type ConnectWorker } from "./workerConnection.ts";
3
+ export declare class EndpointUnreachableError extends Error {
4
+ readonly url: string;
5
+ name: string;
6
+ constructor(url: string, cause?: unknown);
7
+ }
8
+ export declare class EndpointCredentialsError extends Error {
9
+ readonly url: string;
10
+ name: string;
11
+ constructor(url: string);
12
+ }
13
+ export declare function workerGatewayConnector(endpoint: SandboxAccess, { dimensionName, agentName, }: {
14
+ dimensionName: string;
15
+ agentName: string;
16
+ }, { signal, }?: {
17
+ signal?: AbortSignal;
18
+ }): ConnectWorker;
@@ -0,0 +1,86 @@
1
+ import { EventSourceParserStream } from "eventsource-parser/stream";
2
+ import { AgentNotFoundError } from "../api.js";
3
+ import { workerConnectionOver } from "./workerConnection.js";
4
+ const TOKEN_PARAM = "hyb_token";
5
+ export class EndpointUnreachableError extends Error {
6
+ url;
7
+ name = "EndpointUnreachableError";
8
+ constructor(url, cause) {
9
+ super(`the gateway ${url} didn't answer (a browser reports this as a CORS error): the machine is unreachable, or the gateway isn't running`, { cause });
10
+ this.url = url;
11
+ }
12
+ }
13
+ export class EndpointCredentialsError extends Error {
14
+ url;
15
+ name = "EndpointCredentialsError";
16
+ constructor(url) {
17
+ super(`the gateway ${url} refused the credentials: they expired, or aren't its own; get new ones`);
18
+ this.url = url;
19
+ }
20
+ }
21
+ export function workerGatewayConnector(endpoint, { dimensionName, agentName, }, { signal, } = {}) {
22
+ const { exeDev, token } = endpoint.credentials;
23
+ const headers = exeDev ? { "x-exedev-authorization": `Bearer ${exeDev.token}` } : {};
24
+ const url = (path, params = {}) => `${endpoint.url}${path}?${new URLSearchParams({ ...params, [TOKEN_PARAM]: token })}`;
25
+ const label = `agent ${agentName}'s worker through ${endpoint.url}`;
26
+ return async (onNotification) => {
27
+ signal?.throwIfAborted();
28
+ const aborting = new AbortController();
29
+ signal?.addEventListener("abort", () => aborting.abort(), { once: true });
30
+ let response;
31
+ try {
32
+ response = await fetch(url("/connect", { dimension: dimensionName, agent: agentName }), { headers, signal: aborting.signal });
33
+ }
34
+ catch (error) {
35
+ if (signal?.aborted)
36
+ throw error;
37
+ throw new EndpointUnreachableError(endpoint.url, error);
38
+ }
39
+ if (response.status === 401)
40
+ throw new EndpointCredentialsError(endpoint.url);
41
+ if (response.status === 502)
42
+ throw new AgentNotFoundError(`${label} can't be reached: ${(await response.text()).trim()}`);
43
+ if (!response.ok || !response.body)
44
+ throw new Error(`${label}: the gateway answered ${response.status}: ${(await response.text()).trim()}`);
45
+ const events = response.body.pipeThrough(new TextDecoderStream()).pipeThrough(new EventSourceParserStream()).getReader();
46
+ const opened = await events.read();
47
+ if (opened.done || opened.value.event !== "open")
48
+ throw new Error(`${label}: the gateway's stream didn't open`);
49
+ const { connection } = JSON.parse(opened.value.data);
50
+ const listeners = [];
51
+ let markClosed;
52
+ const closed = new Promise((done) => (markClosed = done));
53
+ void (async () => {
54
+ try {
55
+ for (;;) {
56
+ const { value, done } = await events.read();
57
+ if (done || value.event === "close")
58
+ break;
59
+ for (const listener of listeners)
60
+ listener(`${value.data}\n`);
61
+ }
62
+ }
63
+ catch {
64
+ return;
65
+ }
66
+ finally {
67
+ markClosed();
68
+ }
69
+ })();
70
+ let writes = Promise.resolve();
71
+ const transport = {
72
+ write(text) {
73
+ if (aborting.signal.aborted)
74
+ return;
75
+ writes = writes.then(() => fetch(url(`/connect/${connection}`), { method: "POST", headers, body: text, signal: aborting.signal }).then((response) => {
76
+ if (!response.ok)
77
+ aborting.abort();
78
+ }, () => aborting.abort()));
79
+ },
80
+ onText: (listener) => void listeners.push(listener),
81
+ closed,
82
+ close: () => aborting.abort(),
83
+ };
84
+ return workerConnectionOver(transport, label, onNotification);
85
+ };
86
+ }
@@ -0,0 +1,87 @@
1
+ {
2
+ "claude": {
3
+ "docs": "https://code.claude.com/docs/en/agent-sdk/typescript",
4
+ "sources": [
5
+ {
6
+ "source": "npm:@anthropic-ai/claude-agent-sdk@0.3.283",
7
+ "into": "agent-sdk",
8
+ "files": 7
9
+ }
10
+ ]
11
+ },
12
+ "codex": {
13
+ "docs": "https://developers.openai.com/codex/app-server",
14
+ "sources": [
15
+ {
16
+ "source": "npm:@openai/codex-sdk@0.157.1",
17
+ "into": "sdk",
18
+ "files": 1
19
+ },
20
+ {
21
+ "source": "github:openai/codex@rust-v0.157.1/codex-rs/app-server-protocol/schema/typescript",
22
+ "into": "app-server",
23
+ "files": 740
24
+ },
25
+ {
26
+ "source": "github:openai/codex@rust-v0.157.1/codex-rs/app-server-protocol/schema/json",
27
+ "into": "app-server-json",
28
+ "files": 2
29
+ }
30
+ ]
31
+ },
32
+ "pi": {
33
+ "docs": "https://github.com/badlogic/pi-mono/blob/main/packages/coding-agent/docs/rpc.md",
34
+ "sources": [
35
+ {
36
+ "source": "npm:@mariozechner/pi-coding-agent@0.73.1",
37
+ "into": "coding-agent",
38
+ "files": 137
39
+ },
40
+ {
41
+ "source": "npm:@mariozechner/pi-agent-core@0.73.1",
42
+ "into": "agent-core",
43
+ "files": 5
44
+ },
45
+ {
46
+ "source": "npm:@mariozechner/pi-ai@0.73.1",
47
+ "into": "ai",
48
+ "files": 44
49
+ }
50
+ ]
51
+ },
52
+ "opencode": {
53
+ "docs": "https://opencode.ai/docs/server",
54
+ "sources": [
55
+ {
56
+ "source": "npm:@opencode-ai/sdk@1.18.32",
57
+ "into": "sdk",
58
+ "files": 39
59
+ },
60
+ {
61
+ "source": "github:anomalyco/opencode@v1.18.32/packages/sdk",
62
+ "into": "",
63
+ "files": 1
64
+ }
65
+ ]
66
+ },
67
+ "openclaw": {
68
+ "docs": "https://docs.openclaw.ai/gateway/protocol",
69
+ "sources": [
70
+ {
71
+ "source": "npm:@openclaw/gateway-protocol@2026.9.6",
72
+ "into": "gateway-protocol",
73
+ "files": 17
74
+ }
75
+ ]
76
+ },
77
+ "hermes": {
78
+ "docs": "https://hermes-agent.nousresearch.com/docs",
79
+ "sources": [
80
+ {
81
+ "source": "github:NousResearch/hermes-agent@v2026.9.24/apps/shared/src",
82
+ "into": "gateway",
83
+ "files": 3
84
+ }
85
+ ]
86
+ }
87
+ }
@@ -1,19 +1,4 @@
1
- /**
2
- * The session worker (agent/session/main.ts and all it imports) as the one script AgentService
3
- * uploads into a dimension and runs with bun. The backends' own packages aren't part of it: the
4
- * worker installs them into the dimension and loads them from there.
5
- */
6
- export type WorkerBundle = {
7
- /** The worker as one script for bun. */
8
- source: string;
9
- /** Identifies the source: a running worker with another build is replaced. */
10
- build: string;
11
- };
12
- /**
13
- * The worker, once per process. Under Bun with the sources at hand (a checkout) it is bundled from
14
- * them; otherwise (Node, or the built package, which ships no sources) it comes from
15
- * agent/workerBundle.generated.ts (scripts/bundle-worker.ts).
16
- */
17
- export declare function workerBundle(): Promise<WorkerBundle>;
18
- /** Bundles the worker with Bun.build. */
19
- export declare function buildWorkerSource(): Promise<string>;
1
+ import { type ScriptBundle } from "../lib/scriptBundle.ts";
2
+ export type WorkerBundle = ScriptBundle;
3
+ export declare const workerEntry: () => string;
4
+ export declare const workerBundle: () => Promise<ScriptBundle>;