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.
- package/README.md +67 -25
- package/dist/agent/agentClient.d.ts +5 -0
- package/dist/agent/agentClient.js +4 -0
- package/dist/agent/agentService.d.ts +9 -37
- package/dist/agent/agentService.js +62 -322
- package/dist/agent/agentStorage.d.ts +1 -20
- package/dist/agent/agentStorage.js +0 -30
- package/dist/agent/api.d.ts +80 -151
- package/dist/agent/api.js +1 -8
- package/dist/agent/client.d.ts +3 -1
- package/dist/agent/client.js +2 -3
- package/dist/agent/control.d.ts +23 -0
- package/dist/agent/control.js +479 -0
- package/dist/agent/hostTranscript.d.ts +0 -6
- package/dist/agent/hostTranscript.js +3 -14
- package/dist/agent/session/backend.d.ts +17 -32
- package/dist/agent/session/claude/home.d.ts +0 -1
- package/dist/agent/session/claude/home.js +0 -1
- package/dist/agent/session/claude/provision.d.ts +10 -0
- package/dist/agent/session/claude/provision.js +17 -0
- package/dist/agent/session/claude/transcript.d.ts +2 -7
- package/dist/agent/session/claude/transcript.js +68 -14
- package/dist/agent/session/client.d.ts +1 -10
- package/dist/agent/session/client.js +0 -3
- package/dist/agent/session/codex/provision.d.ts +14 -0
- package/dist/agent/session/codex/provision.js +25 -0
- package/dist/agent/session/fileTranscript.d.ts +6 -49
- package/dist/agent/session/fileTranscript.js +26 -82
- package/dist/agent/session/install.d.ts +5 -0
- package/dist/agent/session/install.js +35 -0
- package/dist/agent/session/sessionStorage.d.ts +4 -35
- package/dist/agent/session/sessionStorage.js +10 -16
- package/dist/agent/session/sharedConnection.d.ts +0 -8
- package/dist/agent/session/sharedConnection.js +0 -7
- package/dist/agent/session/storedTranscripts.d.ts +1 -6
- package/dist/agent/session/storedTranscripts.js +0 -3
- package/dist/agent/session/worker/jsonRpc.d.ts +2 -13
- package/dist/agent/session/worker/jsonRpc.js +2 -11
- package/dist/agent/session/worker/protocol.d.ts +26 -20
- package/dist/agent/session/worker/protocol.js +29 -18
- package/dist/agent/session/worker/workerParams.d.ts +0 -5
- package/dist/agent/session/worker/workerParams.js +14 -14
- package/dist/agent/session/workerConnection.d.ts +2 -13
- package/dist/agent/session/workerConnection.js +7 -12
- package/dist/agent/session/workerGatewayConnection.d.ts +18 -0
- package/dist/agent/session/workerGatewayConnection.js +86 -0
- package/dist/agent/vendor-types/manifest.json +87 -0
- package/dist/agent/workerBundle.d.ts +4 -19
- package/dist/agent/workerBundle.generated.js +1 -1
- package/dist/agent/workerBundle.js +3 -30
- package/dist/agent/workerReplacement.d.ts +3 -0
- package/dist/agent/workerReplacement.js +49 -0
- package/dist/cli/agent.js +31 -16
- package/dist/cli/command.d.ts +10 -11
- package/dist/cli/command.js +0 -4
- package/dist/cli/dimension.js +6 -6
- package/dist/cli/gateway.js +3 -6
- package/dist/cli/main.js +14 -31
- package/dist/cli/streamPrinter.d.ts +2 -10
- package/dist/cli/streamPrinter.js +16 -46
- package/dist/cli/table.d.ts +0 -3
- package/dist/cli/table.js +0 -4
- package/dist/dimension/api.d.ts +39 -27
- package/dist/dimension/api.js +28 -47
- package/dist/dimension/client.d.ts +5 -0
- package/dist/dimension/client.js +4 -0
- package/dist/dimension/control.d.ts +21 -0
- package/dist/dimension/control.js +328 -0
- package/dist/dimension/image.d.ts +0 -5
- package/dist/dimension/image.js +0 -8
- package/dist/dimension/imageFiles.generated.js +1 -1
- package/dist/dimension/paths.d.ts +5 -4
- package/dist/dimension/paths.js +15 -6
- package/dist/dimension/service.d.ts +8 -24
- package/dist/dimension/service.js +60 -228
- package/dist/dimension/transport-worker.d.ts +1 -0
- package/dist/dimension/transport-worker.js +151 -0
- package/dist/dimension/transportBundle.d.ts +2 -0
- package/dist/dimension/transportBundle.generated.d.ts +1 -0
- package/dist/dimension/transportBundle.generated.js +2 -0
- package/dist/dimension/transportBundle.js +4 -0
- package/dist/dimension/transportClient.d.ts +10 -0
- package/dist/dimension/transportClient.js +115 -0
- package/dist/dimension/transportProtocol.d.ts +53 -0
- package/dist/dimension/transportProtocol.js +8 -0
- package/dist/index.d.ts +5 -9
- package/dist/index.js +5 -19
- package/dist/lib/control.d.ts +8 -0
- package/dist/lib/control.js +62 -0
- package/dist/lib/docker.d.ts +0 -22
- package/dist/lib/docker.js +0 -10
- package/dist/lib/image.d.ts +0 -3
- package/dist/lib/image.js +0 -2
- package/dist/lib/jsonDirectory.d.ts +0 -13
- package/dist/lib/jsonDirectory.js +10 -15
- package/dist/lib/scriptBundle.d.ts +6 -0
- package/dist/lib/scriptBundle.js +28 -0
- package/dist/lib/sh.d.ts +2 -0
- package/dist/lib/sh.js +8 -0
- package/dist/lib/sleep.d.ts +0 -1
- package/dist/lib/sleep.js +0 -1
- package/dist/lib/streamFetch.d.ts +15 -0
- package/dist/lib/streamFetch.js +150 -0
- package/dist/lib/tar.d.ts +0 -1
- package/dist/lib/tar.js +5 -11
- package/dist/portal-gateway/api.d.ts +13 -44
- package/dist/portal-gateway/api.js +1 -3
- package/dist/portal-gateway/control.d.ts +42 -0
- package/dist/portal-gateway/control.js +657 -0
- package/dist/portal-gateway/gatewayClient.d.ts +5 -0
- package/dist/portal-gateway/gatewayClient.js +4 -0
- package/dist/portal-gateway/gatewayService.d.ts +8 -38
- package/dist/portal-gateway/gatewayService.js +68 -254
- package/dist/portal-gateway/image.d.ts +0 -1
- package/dist/portal-gateway/image.js +0 -2
- package/dist/portal-gateway/imageFiles.generated.js +2 -2
- package/dist/portal-gateway/portalClient.d.ts +5 -0
- package/dist/portal-gateway/portalClient.js +4 -0
- package/dist/portal-gateway/portalService.d.ts +5 -47
- package/dist/portal-gateway/portalService.js +19 -349
- package/dist/portal-gateway/transport-worker.d.ts +1 -0
- package/dist/portal-gateway/transport-worker.js +205 -0
- package/dist/portal-gateway/transportBundle.d.ts +2 -0
- package/dist/portal-gateway/transportBundle.generated.d.ts +1 -0
- package/dist/portal-gateway/transportBundle.generated.js +2 -0
- package/dist/portal-gateway/transportBundle.js +4 -0
- package/dist/portal-gateway/upstream.d.ts +0 -81
- package/dist/portal-gateway/upstream.js +0 -1
- package/dist/sandbox/api.d.ts +121 -187
- package/dist/sandbox/api.js +5 -7
- package/dist/sandbox/client.d.ts +2 -0
- package/dist/sandbox/client.js +4 -0
- package/dist/sandbox/data-endpoints/dataEndpoints.d.ts +13 -0
- package/dist/sandbox/data-endpoints/dataEndpoints.js +100 -0
- package/dist/sandbox/data-endpoints/firewalledPorts.d.ts +4 -0
- package/dist/sandbox/data-endpoints/firewalledPorts.js +28 -0
- package/dist/sandbox/lib/httpOverStream.d.ts +3 -0
- package/dist/sandbox/lib/httpOverStream.js +21 -0
- package/dist/sandbox/lib/remoteFileOperations.d.ts +10 -0
- package/dist/sandbox/lib/remoteFileOperations.js +70 -0
- package/dist/sandbox/lib/shellCommand.d.ts +3 -0
- package/dist/sandbox/lib/shellCommand.js +7 -0
- package/dist/sandbox/providers/boat/boatService.d.ts +2 -0
- package/dist/sandbox/providers/boat/boatService.js +321 -0
- package/dist/sandbox/providers/exedev/exeDevService.d.ts +2 -0
- package/dist/sandbox/providers/exedev/exeDevService.js +127 -0
- package/dist/sandbox/providers/exedev/exeDevToken.d.ts +1 -0
- package/dist/sandbox/providers/exedev/exeDevToken.js +54 -0
- package/dist/sandbox/providers/local/localService.d.ts +2 -0
- package/dist/sandbox/providers/local/localService.js +219 -0
- package/dist/sandbox/providers/ssh/sshService.d.ts +2 -0
- package/dist/sandbox/providers/ssh/sshService.js +82 -0
- package/dist/sandbox/providers/ssh/sshTransport.d.ts +12 -0
- package/dist/sandbox/providers/ssh/sshTransport.js +216 -0
- package/dist/sandbox/service.d.ts +2 -0
- package/dist/sandbox/service.js +18 -0
- package/dist/sandbox/storage/descriptors.d.ts +6 -0
- package/dist/sandbox/storage/descriptors.js +25 -0
- package/dist/sandbox/storage/sandboxStorage.d.ts +11 -0
- package/dist/sandbox/storage/sandboxStorage.js +42 -0
- package/dist/upstreams/anthropic.d.ts +0 -5
- package/dist/upstreams/anthropic.js +1 -8
- package/dist/upstreams/index.d.ts +2 -6
- package/dist/upstreams/index.js +0 -4
- package/dist/upstreams/openai.d.ts +0 -5
- package/dist/upstreams/openai.js +1 -13
- package/package.json +12 -4
- package/dist/agent/gatewaySignIns.d.ts +0 -5
- package/dist/agent/gatewaySignIns.js +0 -11
- package/dist/agent/session/codex/home.d.ts +0 -2
- package/dist/agent/session/codex/home.js +0 -4
- package/dist/agent/session/codex/messages.d.ts +0 -30
- package/dist/agent/session/codex/messages.js +0 -135
- package/dist/agent/session/codex/transcript.d.ts +0 -12
- package/dist/agent/session/codex/transcript.js +0 -22
- package/dist/agent/session/sdkMessages.d.ts +0 -15
- package/dist/agent/session/sdkMessages.js +0 -28
- package/dist/agent/session/workerSseConnection.d.ts +0 -31
- package/dist/agent/session/workerSseConnection.js +0 -76
- package/dist/agent/vendor-types/codex/app-server/AbsolutePathBuf.d.ts +0 -10
- package/dist/agent/vendor-types/codex/app-server/AbsolutePathBuf.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/FunctionCallOutputBody.d.ts +0 -2
- package/dist/agent/vendor-types/codex/app-server/FunctionCallOutputBody.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/FunctionCallOutputContentItem.d.ts +0 -22
- package/dist/agent/vendor-types/codex/app-server/FunctionCallOutputContentItem.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/ImageDetail.d.ts +0 -1
- package/dist/agent/vendor-types/codex/app-server/ImageDetail.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/ImageGenerationFailure.d.ts +0 -5
- package/dist/agent/vendor-types/codex/app-server/ImageGenerationFailure.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/ImageGenerationItem.d.ts +0 -11
- package/dist/agent/vendor-types/codex/app-server/ImageGenerationItem.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/LegacyAppPathString.d.ts +0 -23
- package/dist/agent/vendor-types/codex/app-server/LegacyAppPathString.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/MessagePhase.d.ts +0 -7
- package/dist/agent/vendor-types/codex/app-server/MessagePhase.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/ReasoningEffort.d.ts +0 -4
- package/dist/agent/vendor-types/codex/app-server/ReasoningEffort.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/SleepItem.d.ts +0 -7
- package/dist/agent/vendor-types/codex/app-server/SleepItem.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/WebSearchItem.d.ts +0 -14
- package/dist/agent/vendor-types/codex/app-server/WebSearchItem.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/serde_json/JsonValue.d.ts +0 -3
- package/dist/agent/vendor-types/codex/app-server/serde_json/JsonValue.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/v2/AgentMessageDelivery.d.ts +0 -1
- package/dist/agent/vendor-types/codex/app-server/v2/AgentMessageDelivery.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/v2/AsyncUserInputQuestion.d.ts +0 -4
- package/dist/agent/vendor-types/codex/app-server/v2/AsyncUserInputQuestion.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/v2/ByteRange.d.ts +0 -4
- package/dist/agent/vendor-types/codex/app-server/v2/ByteRange.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/v2/CollabAgentState.d.ts +0 -5
- package/dist/agent/vendor-types/codex/app-server/v2/CollabAgentState.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/v2/CollabAgentStatus.d.ts +0 -1
- package/dist/agent/vendor-types/codex/app-server/v2/CollabAgentStatus.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/v2/CollabAgentTool.d.ts +0 -1
- package/dist/agent/vendor-types/codex/app-server/v2/CollabAgentTool.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/v2/CollabAgentToolCallStatus.d.ts +0 -1
- package/dist/agent/vendor-types/codex/app-server/v2/CollabAgentToolCallStatus.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/v2/CommandAction.d.ts +0 -19
- package/dist/agent/vendor-types/codex/app-server/v2/CommandAction.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/v2/CommandExecutionSource.d.ts +0 -1
- package/dist/agent/vendor-types/codex/app-server/v2/CommandExecutionSource.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/v2/CommandExecutionStatus.d.ts +0 -1
- package/dist/agent/vendor-types/codex/app-server/v2/CommandExecutionStatus.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/v2/DynamicToolCallOutputContentItem.d.ts +0 -10
- package/dist/agent/vendor-types/codex/app-server/v2/DynamicToolCallOutputContentItem.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/v2/DynamicToolCallStatus.d.ts +0 -1
- package/dist/agent/vendor-types/codex/app-server/v2/DynamicToolCallStatus.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/v2/FileUpdateChange.d.ts +0 -6
- package/dist/agent/vendor-types/codex/app-server/v2/FileUpdateChange.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/v2/HookPromptFragment.d.ts +0 -4
- package/dist/agent/vendor-types/codex/app-server/v2/HookPromptFragment.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/v2/McpAppDisplayMode.d.ts +0 -1
- package/dist/agent/vendor-types/codex/app-server/v2/McpAppDisplayMode.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/v2/McpAppUi.d.ts +0 -8
- package/dist/agent/vendor-types/codex/app-server/v2/McpAppUi.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/v2/McpToolCallAppContext.d.ts +0 -7
- package/dist/agent/vendor-types/codex/app-server/v2/McpToolCallAppContext.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/v2/McpToolCallError.d.ts +0 -3
- package/dist/agent/vendor-types/codex/app-server/v2/McpToolCallError.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/v2/McpToolCallResult.d.ts +0 -6
- package/dist/agent/vendor-types/codex/app-server/v2/McpToolCallResult.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/v2/McpToolCallStatus.d.ts +0 -1
- package/dist/agent/vendor-types/codex/app-server/v2/McpToolCallStatus.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/v2/MemoryCitation.d.ts +0 -5
- package/dist/agent/vendor-types/codex/app-server/v2/MemoryCitation.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/v2/MemoryCitationEntry.d.ts +0 -6
- package/dist/agent/vendor-types/codex/app-server/v2/MemoryCitationEntry.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/v2/PatchApplyStatus.d.ts +0 -1
- package/dist/agent/vendor-types/codex/app-server/v2/PatchApplyStatus.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/v2/PatchChangeKind.d.ts +0 -8
- package/dist/agent/vendor-types/codex/app-server/v2/PatchChangeKind.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/v2/SubAgentActivityKind.d.ts +0 -1
- package/dist/agent/vendor-types/codex/app-server/v2/SubAgentActivityKind.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/v2/TextElement.d.ts +0 -11
- package/dist/agent/vendor-types/codex/app-server/v2/TextElement.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/v2/ThreadItem.d.ts +0 -215
- package/dist/agent/vendor-types/codex/app-server/v2/ThreadItem.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/v2/UserInput.d.ts +0 -35
- package/dist/agent/vendor-types/codex/app-server/v2/UserInput.js +0 -2
- package/dist/agent/vendor-types/codex/app-server/v2/WebSearchAction.d.ts +0 -14
- package/dist/agent/vendor-types/codex/app-server/v2/WebSearchAction.js +0 -2
- package/dist/cli/services.d.ts +0 -19
- package/dist/cli/services.js +0 -34
- package/dist/dimension/http.d.ts +0 -7
- package/dist/dimension/http.js +0 -77
- package/dist/dimension/storage.d.ts +0 -39
- package/dist/dimension/storage.js +0 -79
- package/dist/portal-gateway/fakes.d.ts +0 -3
- package/dist/portal-gateway/fakes.js +0 -11
- package/dist/portal-gateway/gatewayStorage.d.ts +0 -66
- package/dist/portal-gateway/gatewayStorage.js +0 -125
- package/dist/portal-gateway/portalStorage.d.ts +0 -34
- package/dist/portal-gateway/portalStorage.js +0 -44
- package/dist/sandbox/boatService.d.ts +0 -52
- package/dist/sandbox/boatService.js +0 -343
- package/dist/sandbox/containerService.d.ts +0 -15
- package/dist/sandbox/containerService.js +0 -184
- package/dist/sandbox/endpointProxy.d.ts +0 -90
- package/dist/sandbox/endpointProxy.js +0 -716
- package/dist/sandbox/exeDevAuth.d.ts +0 -16
- package/dist/sandbox/exeDevAuth.js +0 -49
- package/dist/sandbox/localService.d.ts +0 -19
- package/dist/sandbox/localService.js +0 -200
- package/dist/sandbox/sseConnection.d.ts +0 -41
- package/dist/sandbox/sseConnection.js +0 -166
- package/dist/sandbox/sshService.d.ts +0 -30
- 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
|
|
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,
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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>;
|