@volter/browser-sandboxes 0.1.3 → 0.1.5
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 +31 -1
- package/dist/bin/control-plane.js +0 -0
- package/dist/bin/mcp.js +0 -0
- package/dist/client.d.ts +15 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +92 -8
- package/dist/client.js.map +1 -1
- package/dist/control-plane-client.d.ts +46 -0
- package/dist/control-plane-client.d.ts.map +1 -0
- package/dist/control-plane-client.js +110 -0
- package/dist/control-plane-client.js.map +1 -0
- package/dist/control-plane.d.ts.map +1 -1
- package/dist/control-plane.js +46 -3
- package/dist/control-plane.js.map +1 -1
- package/dist/docker-provider.d.ts +1 -0
- package/dist/docker-provider.d.ts.map +1 -1
- package/dist/docker-provider.js +4 -1
- package/dist/docker-provider.js.map +1 -1
- package/dist/fly-provider.d.ts +1 -0
- package/dist/fly-provider.d.ts.map +1 -1
- package/dist/fly-provider.js +1 -0
- package/dist/fly-provider.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/manager.d.ts +22 -0
- package/dist/manager.d.ts.map +1 -1
- package/dist/manager.js +42 -11
- package/dist/manager.js.map +1 -1
- package/dist/transfer.d.ts +57 -0
- package/dist/transfer.d.ts.map +1 -0
- package/dist/transfer.js +212 -0
- package/dist/transfer.js.map +1 -0
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -8,10 +8,18 @@ exposes them.
|
|
|
8
8
|
client with the in-page runtime's method names: `spawn`, `start`, `on`,
|
|
9
9
|
`ports`, `portUrl`, `request`, `metrics`, `openPty`, `webSocket`, and an
|
|
10
10
|
asynchronous `files` surface including archive `export` and `import`.
|
|
11
|
+
Passing `terminal` to `start` selects the host's PTY allocator behind that
|
|
12
|
+
same process API; the returned handle streams output and exposes `resize`,
|
|
13
|
+
`result`, and `kill` without a backend-specific launch path.
|
|
14
|
+
- `RemoteControlPlane` is the browser-safe lifecycle client: create, inspect,
|
|
15
|
+
pause, resume, snapshot, restore, fork, and destroy, plus a `RemoteRuntime`
|
|
16
|
+
through the plane's token-hiding agent proxy.
|
|
11
17
|
- `SandboxManager` creates sandboxes through a provider with four calls,
|
|
12
18
|
`start`, `pause`, `resume`, `stop`, returns a remote runtime per sandbox,
|
|
13
19
|
reaps idle ones from the agent's own activity report, forks workspaces,
|
|
14
|
-
and
|
|
20
|
+
snapshots and restores the portable workspace boundary, and passes
|
|
21
|
+
templates, volumes, and limits through. Snapshot metadata explicitly says
|
|
22
|
+
that process state is excluded.
|
|
15
23
|
- `DockerProvider` runs the agent image as a local container.
|
|
16
24
|
`FlyProvider` drives the Fly Machines API, the Fly twin offline or Fly
|
|
17
25
|
itself, reaching machines through flyctl's WireGuard proxy.
|
|
@@ -19,6 +27,11 @@ exposes them.
|
|
|
19
27
|
sandbox's agent with the token held server-side.
|
|
20
28
|
- `serveMcp` speaks the Model Context Protocol over stdio with tools for
|
|
21
29
|
sandboxes, commands, files, ports, and guest requests.
|
|
30
|
+
- `moveWorkspace`, `mirrorWorkspace`, and `returnWorkspace`
|
|
31
|
+
(`@volter/browser-sandboxes/transfer.js`, browser-safe) move a workspace
|
|
32
|
+
into a sandbox without its dependency trees, name the install command its
|
|
33
|
+
lockfile implies, keep the two copies the same while the work runs there,
|
|
34
|
+
and bring the sandbox's work back without the sandbox's tree.
|
|
22
35
|
|
|
23
36
|
```ts
|
|
24
37
|
import { DockerProvider, SandboxManager } from "@volter/browser-sandboxes";
|
|
@@ -48,6 +61,23 @@ Everything needed is in this repository under the MIT license.
|
|
|
48
61
|
rootfs, so create sandboxes with a `volume` when the workspace must
|
|
49
62
|
survive pause and resume.
|
|
50
63
|
|
|
64
|
+
## The hybrid page
|
|
65
|
+
|
|
66
|
+
`examples/node-host/hybrid` is the reference consumer: one page that runs a
|
|
67
|
+
project in the tab, decides placement, and moves the workspace to a sandbox
|
|
68
|
+
and back through the transfer helper. `npm run dev:hybrid:control-plane`
|
|
69
|
+
starts a self-hosted plane on port 4291 and `npm run dev:hybrid` serves the
|
|
70
|
+
page on 4292; `HYBRID_PORT` and `CONTROL_PLANE_PORT` give a second copy its
|
|
71
|
+
own ports. `CONTROL_PLANE_URL` points the page's proxy at a remote plane
|
|
72
|
+
instead, with `CONTROL_PLANE_IP` pinning its address while a name propagates.
|
|
73
|
+
Against a managed plane the page's dev server stands in for the adopter's
|
|
74
|
+
server: it registers an account, or uses `SUBSTRATE_ACCOUNT_KEY`, passes
|
|
75
|
+
`SUBSTRATE_REGISTRATION_CODE` when the plane requires one, and mints a
|
|
76
|
+
session per visitor; the tab never holds a key. `verify:node-host:transfer`
|
|
77
|
+
with `TRANSFER_PROJECT` naming a project with a lockfile and installed
|
|
78
|
+
dependencies measures the move, the far-side install, the mirror, and the
|
|
79
|
+
return.
|
|
80
|
+
|
|
51
81
|
## The wire
|
|
52
82
|
|
|
53
83
|
The agent speaks `substrate-agent/1` and the control plane
|
|
File without changes
|
package/dist/bin/mcp.js
CHANGED
|
File without changes
|
package/dist/client.d.ts
CHANGED
|
@@ -3,6 +3,12 @@ export interface RemoteProcessOptions {
|
|
|
3
3
|
cwd?: string;
|
|
4
4
|
env?: Record<string, string>;
|
|
5
5
|
stdin?: string;
|
|
6
|
+
stdinStream?: AsyncIterable<Uint8Array>;
|
|
7
|
+
terminal?: {
|
|
8
|
+
columns: number;
|
|
9
|
+
rows: number;
|
|
10
|
+
onResize?: (listener: (columns: number, rows: number) => void) => () => void;
|
|
11
|
+
};
|
|
6
12
|
onStdout?: (chunk: string) => void;
|
|
7
13
|
onStderr?: (chunk: string) => void;
|
|
8
14
|
}
|
|
@@ -20,6 +26,7 @@ export interface RemoteProcessHandle {
|
|
|
20
26
|
readonly state: "running" | "exited" | "failed";
|
|
21
27
|
result: Promise<RemoteProcessResult>;
|
|
22
28
|
kill(): void;
|
|
29
|
+
resize(columns: number, rows: number): void;
|
|
23
30
|
}
|
|
24
31
|
export interface RemoteProcessInfo {
|
|
25
32
|
pid: number;
|
|
@@ -87,6 +94,7 @@ export interface RemoteRuntimeOptions {
|
|
|
87
94
|
*/
|
|
88
95
|
fetch?: typeof fetch;
|
|
89
96
|
}
|
|
97
|
+
export type RemoteBearerToken = string | (() => string | undefined);
|
|
90
98
|
type Listener = (event: Record<string, unknown>) => void;
|
|
91
99
|
export declare class RemoteRuntime {
|
|
92
100
|
readonly files: {
|
|
@@ -105,7 +113,9 @@ export declare class RemoteRuntime {
|
|
|
105
113
|
snapshot(): Promise<{
|
|
106
114
|
files: unknown[];
|
|
107
115
|
}>;
|
|
108
|
-
export(root?: string, format?: "zip" | "json"
|
|
116
|
+
export(root?: string, format?: "zip" | "json", options?: {
|
|
117
|
+
exclude?: readonly string[];
|
|
118
|
+
}): Promise<RemoteArchive>;
|
|
109
119
|
import(bytes: Uint8Array, options?: {
|
|
110
120
|
root?: string;
|
|
111
121
|
replace?: boolean;
|
|
@@ -122,7 +132,7 @@ export declare class RemoteRuntime {
|
|
|
122
132
|
private readonly outputs;
|
|
123
133
|
private readonly pending;
|
|
124
134
|
private readonly abort;
|
|
125
|
-
constructor(baseUrl: string, token:
|
|
135
|
+
constructor(baseUrl: string, token: RemoteBearerToken, options?: RemoteRuntimeOptions);
|
|
126
136
|
/**
|
|
127
137
|
* Negotiates the agent's protocol, then opens the event stream and returns
|
|
128
138
|
* the agent's health. A server speaking another protocol or version is
|
|
@@ -136,6 +146,8 @@ export declare class RemoteRuntime {
|
|
|
136
146
|
spawn(command: string, options?: RemoteProcessOptions): Promise<RemoteProcessResult>;
|
|
137
147
|
/** A terminal session on a guest pseudo-terminal; bytes in, bytes out. */
|
|
138
148
|
openPty(options?: RemotePtyOptions): Promise<RemotePtySession>;
|
|
149
|
+
/** Implements the ordinary process surface on the hosted PTY allocator. */
|
|
150
|
+
private startTerminalProcess;
|
|
139
151
|
/** GET / on the agent, judged by the protocol the client speaks. */
|
|
140
152
|
negotiate(): Promise<HostedProtocolDescriptor>;
|
|
141
153
|
/** The agent's health; never counts as activity on the agent. */
|
|
@@ -149,6 +161,7 @@ export declare class RemoteRuntime {
|
|
|
149
161
|
webSocket(port: number, input?: string | URL): WebSocket;
|
|
150
162
|
close(): void;
|
|
151
163
|
private call;
|
|
164
|
+
private tokenValue;
|
|
152
165
|
private ok;
|
|
153
166
|
private json;
|
|
154
167
|
}
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAKA,OAAO,EAE0C,KAAK,wBAAwB,EAC7E,MAAM,oDAAoD,CAAC;AAE5D,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAChD,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrC,IAAI,IAAI,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAKA,OAAO,EAE0C,KAAK,wBAAwB,EAC7E,MAAM,oDAAoD,CAAC;AAE5D,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;KAC9E,CAAC;IACF,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAChD,MAAM,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrC,IAAI,IAAI,IAAI,CAAC;IACb,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C;AAED,MAAM,WAAW,iBAAiB;IAAG,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AAErG,MAAM,WAAW,gBAAgB;IAAG,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE;AAEhI,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,UAAU,GAAG,QAAQ,CAAC;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpD,8EAA8E;IAC9E,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5E,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC1D,IAAI,IAAI,IAAI,CAAC;IACb,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AAE3F,MAAM,WAAW,aAAa;IAAG,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;AAE1I,MAAM,WAAW,kBAAkB;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE;AAE7G,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC;AAEpE,KAAK,QAAQ,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;AAOzD,qBAAa,aAAa;IACxB,QAAQ,CAAC,KAAK,EAAE;QACd,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QACxC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;YAAE,EAAE,EAAE,IAAI,CAAA;SAAE,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;QAC/C,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;YAAE,EAAE,EAAE,IAAI,CAAA;SAAE,CAAC,CAAC;QAC3C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;YAAE,EAAE,EAAE,IAAI,CAAA;SAAE,CAAC,CAAC;QAC5C,QAAQ,IAAI,OAAO,CAAC;YAAE,KAAK,EAAE,OAAO,EAAE,CAAA;SAAE,CAAC,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;SAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;QAClH,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,OAAO,CAAA;SAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;KACxG,CAAC;IAEF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,iFAAiF;IACjF,OAAO,CAAC,QAAQ,CAAwC;IACxD,8CAA8C;IAC9C,UAAU,EAAE,wBAAwB,GAAG,SAAS,CAAC;IACjD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoC;IAC9D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwC;IAChE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyD;IACjF,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyB;gBAEnC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,GAAE,oBAAyB;IA4BzF;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC;YAQxB,OAAO;IAsBrB,OAAO,CAAC,QAAQ;IAiBhB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,IAAI;IAO1C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA8BxF,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAI9F,0EAA0E;IACpE,OAAO,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAyCxE,2EAA2E;YAC7D,oBAAoB;IAyDlC,oEAAoE;IAC9D,SAAS,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAUpD,iEAAiE;IAC3D,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IAE/B,SAAS,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IACzC,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAChC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAE7B,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,GAAG,GAAS,EAAE,IAAI,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAOrF,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjD,gEAAgE;IAChE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,GAAG,GAAS,GAAG,SAAS;IAO7D,KAAK,IAAI,IAAI;IAEb,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,UAAU;YACJ,EAAE;YAIF,IAAI;CAGnB"}
|
package/dist/client.js
CHANGED
|
@@ -33,8 +33,9 @@ export class RemoteRuntime {
|
|
|
33
33
|
mkdir: async (p) => this.json(await this.call(`/fs/mkdir?path=${encodeURIComponent(p)}`, { method: "POST" })),
|
|
34
34
|
remove: async (p) => this.json(await this.call(`/fs/remove?path=${encodeURIComponent(p)}`, { method: "DELETE" })),
|
|
35
35
|
snapshot: async () => this.json(await this.call("/fs/snapshot")),
|
|
36
|
-
export: async (root = "/workspace", format = "zip") => {
|
|
37
|
-
const
|
|
36
|
+
export: async (root = "/workspace", format = "zip", options = {}) => {
|
|
37
|
+
const exclude = options.exclude?.length ? `&exclude=${encodeURIComponent(options.exclude.join(","))}` : "";
|
|
38
|
+
const response = await this.ok(await this.call(`/fs/export?root=${encodeURIComponent(root)}&format=${format}${exclude}`));
|
|
38
39
|
return {
|
|
39
40
|
format,
|
|
40
41
|
bytes: new Uint8Array(await response.arrayBuffer()),
|
|
@@ -114,6 +115,8 @@ export class RemoteRuntime {
|
|
|
114
115
|
return () => { set.delete(listener); };
|
|
115
116
|
}
|
|
116
117
|
async start(command, options = {}) {
|
|
118
|
+
if (options.terminal)
|
|
119
|
+
return this.startTerminalProcess(command, options);
|
|
117
120
|
const { onStdout, onStderr, cwd, env, stdin } = options;
|
|
118
121
|
const started = await this.json(await this.call("/processes", {
|
|
119
122
|
method: "POST",
|
|
@@ -140,6 +143,7 @@ export class RemoteRuntime {
|
|
|
140
143
|
get state() { return state; },
|
|
141
144
|
result,
|
|
142
145
|
kill: () => { void this.call(`/processes/${started.pid}/kill`, { method: "POST" }); },
|
|
146
|
+
resize: () => undefined,
|
|
143
147
|
};
|
|
144
148
|
}
|
|
145
149
|
async spawn(command, options = {}) {
|
|
@@ -150,13 +154,23 @@ export class RemoteRuntime {
|
|
|
150
154
|
const opened = await this.json(await this.call("/ptys", { method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify(options) }));
|
|
151
155
|
const key = `pty:${opened.id}`;
|
|
152
156
|
const listeners = new Set();
|
|
157
|
+
const retained = [];
|
|
158
|
+
let retainedBytes = 0;
|
|
153
159
|
let resolveExit = () => undefined;
|
|
154
160
|
const exited = new Promise((resolve) => { resolveExit = resolve; });
|
|
155
161
|
const sink = (event) => {
|
|
156
162
|
if (event.type === "pty-output") {
|
|
157
163
|
const bytes = Uint8Array.from(atob(String(event.data)), (c) => c.charCodeAt(0));
|
|
158
|
-
|
|
159
|
-
|
|
164
|
+
if (listeners.size === 0) {
|
|
165
|
+
retained.push(bytes);
|
|
166
|
+
retainedBytes += bytes.byteLength;
|
|
167
|
+
while (retainedBytes > 64 * 1_024 && retained.length > 1)
|
|
168
|
+
retainedBytes -= retained.shift().byteLength;
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
for (const listener of listeners)
|
|
172
|
+
listener(bytes);
|
|
173
|
+
}
|
|
160
174
|
}
|
|
161
175
|
else {
|
|
162
176
|
this.outputs.delete(key);
|
|
@@ -171,14 +185,83 @@ export class RemoteRuntime {
|
|
|
171
185
|
id: opened.id, pid: opened.pid, cols: opened.cols, rows: opened.rows, allocator: opened.allocator, resizable: opened.resizable,
|
|
172
186
|
write: (data) => this.call(`/ptys/${opened.id}/input`, { method: "POST", body: toBody(data) }),
|
|
173
187
|
resize: (cols, rows) => this.json(this.call(`/ptys/${opened.id}/resize`, { method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify({ cols, rows }) })),
|
|
174
|
-
onData: (listener) => {
|
|
188
|
+
onData: (listener) => {
|
|
189
|
+
listeners.add(listener);
|
|
190
|
+
for (const bytes of retained.splice(0))
|
|
191
|
+
listener(bytes);
|
|
192
|
+
retainedBytes = 0;
|
|
193
|
+
return () => { listeners.delete(listener); };
|
|
194
|
+
},
|
|
175
195
|
kill: () => { void this.call(`/ptys/${opened.id}/kill`, { method: "POST" }); },
|
|
176
196
|
exited,
|
|
177
197
|
};
|
|
178
198
|
}
|
|
199
|
+
/** Implements the ordinary process surface on the hosted PTY allocator. */
|
|
200
|
+
async startTerminalProcess(command, options) {
|
|
201
|
+
const terminal = options.terminal;
|
|
202
|
+
const startedAt = Date.now();
|
|
203
|
+
const pty = await this.openPty({
|
|
204
|
+
command,
|
|
205
|
+
cols: terminal.columns,
|
|
206
|
+
rows: terminal.rows,
|
|
207
|
+
...(options.cwd !== undefined ? { cwd: options.cwd } : {}),
|
|
208
|
+
...(options.env !== undefined ? { env: options.env } : {}),
|
|
209
|
+
});
|
|
210
|
+
const decoder = new TextDecoder();
|
|
211
|
+
let stdout = "";
|
|
212
|
+
let state = "running";
|
|
213
|
+
const offData = pty.onData((bytes) => {
|
|
214
|
+
const chunk = decoder.decode(bytes, { stream: true });
|
|
215
|
+
stdout += chunk;
|
|
216
|
+
options.onStdout?.(chunk);
|
|
217
|
+
});
|
|
218
|
+
const offResize = terminal.onResize?.((columns, rows) => {
|
|
219
|
+
void pty.resize(columns, rows).catch(() => undefined);
|
|
220
|
+
});
|
|
221
|
+
if (options.stdin !== undefined)
|
|
222
|
+
await pty.write(options.stdin);
|
|
223
|
+
if (options.stdinStream) {
|
|
224
|
+
void (async () => {
|
|
225
|
+
try {
|
|
226
|
+
for await (const chunk of options.stdinStream)
|
|
227
|
+
await pty.write(chunk);
|
|
228
|
+
await pty.write("\u0004");
|
|
229
|
+
}
|
|
230
|
+
catch {
|
|
231
|
+
pty.kill();
|
|
232
|
+
}
|
|
233
|
+
})();
|
|
234
|
+
}
|
|
235
|
+
const result = pty.exited.then((exitCode) => {
|
|
236
|
+
const tail = decoder.decode();
|
|
237
|
+
if (tail) {
|
|
238
|
+
stdout += tail;
|
|
239
|
+
options.onStdout?.(tail);
|
|
240
|
+
}
|
|
241
|
+
offData();
|
|
242
|
+
offResize?.();
|
|
243
|
+
state = "exited";
|
|
244
|
+
return { stdout, stderr: "", exitCode, ...(options.cwd !== undefined ? { cwd: options.cwd } : {}), ...(options.env !== undefined ? { env: options.env } : {}) };
|
|
245
|
+
}, (cause) => {
|
|
246
|
+
offData();
|
|
247
|
+
offResize?.();
|
|
248
|
+
state = "failed";
|
|
249
|
+
throw cause;
|
|
250
|
+
});
|
|
251
|
+
void result.catch(() => undefined);
|
|
252
|
+
return {
|
|
253
|
+
pid: pty.pid,
|
|
254
|
+
command,
|
|
255
|
+
startedAt,
|
|
256
|
+
get state() { return state; },
|
|
257
|
+
result,
|
|
258
|
+
kill: () => pty.kill(),
|
|
259
|
+
resize: (columns, rows) => { void pty.resize(columns, rows).catch(() => undefined); },
|
|
260
|
+
};
|
|
261
|
+
}
|
|
179
262
|
/** GET / on the agent, judged by the protocol the client speaks. */
|
|
180
263
|
async negotiate() {
|
|
181
|
-
const response = await this.network(`${this.base}/`, { headers: { authorization: `Bearer ${this.
|
|
264
|
+
const response = await this.network(`${this.base}/`, { headers: { authorization: `Bearer ${this.tokenValue()}` } });
|
|
182
265
|
const descriptor = response.ok ? await response.json().catch(() => undefined) : undefined;
|
|
183
266
|
const negotiated = negotiateHostedProtocol(descriptor, { protocol: SUBSTRATE_AGENT_PROTOCOL });
|
|
184
267
|
if (!negotiated.ok)
|
|
@@ -203,16 +286,17 @@ export class RemoteRuntime {
|
|
|
203
286
|
webSocket(port, input = "/") {
|
|
204
287
|
const target = new URL(input.toString().replace(/^\//, ""), `${this.base}${this.basePath}/ports/${port}/`);
|
|
205
288
|
target.protocol = target.protocol === "https:" ? "wss:" : "ws:";
|
|
206
|
-
target.searchParams.set("token", this.
|
|
289
|
+
target.searchParams.set("token", this.tokenValue());
|
|
207
290
|
return new WebSocket(target);
|
|
208
291
|
}
|
|
209
292
|
close() { this.abort.abort(); }
|
|
210
293
|
call(route, init = {}) {
|
|
211
294
|
const headers = new Headers(init.headers);
|
|
212
|
-
headers.set("authorization", `Bearer ${this.
|
|
295
|
+
headers.set("authorization", `Bearer ${this.tokenValue()}`);
|
|
213
296
|
headers.set(SUBSTRATE_PROTOCOL_HEADER, hostedProtocolHeader(SUBSTRATE_AGENT_PROTOCOL));
|
|
214
297
|
return this.network(`${this.base}${this.basePath}${route}`, { ...init, headers });
|
|
215
298
|
}
|
|
299
|
+
tokenValue() { return typeof this.token === "function" ? (this.token() ?? "") : this.token; }
|
|
216
300
|
async ok(response) {
|
|
217
301
|
if (!response.ok)
|
|
218
302
|
throw new Error(`${response.status} ${await response.text()}`);
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { type HostedProtocolDescriptor } from "@volter/browser-runtime/browser-hosted-protocol.js";
|
|
2
|
+
import { RemoteRuntime, type RemoteBearerToken } from "./client.js";
|
|
3
|
+
import type { SandboxLimits, SandboxPauseMode, SandboxWorkspaceSnapshot } from "./manager.js";
|
|
4
|
+
export interface RemoteSandboxRecord {
|
|
5
|
+
id: string;
|
|
6
|
+
state: "running" | "paused" | "killed";
|
|
7
|
+
createdAt: number;
|
|
8
|
+
pauseMode: SandboxPauseMode;
|
|
9
|
+
agent: string;
|
|
10
|
+
}
|
|
11
|
+
export interface RemoteSandboxCreateOptions {
|
|
12
|
+
volume?: string;
|
|
13
|
+
idleTimeoutMs?: number;
|
|
14
|
+
limits?: SandboxLimits;
|
|
15
|
+
}
|
|
16
|
+
export interface RemoteControlPlaneOptions {
|
|
17
|
+
/** May be a getter so renewed short-lived session tokens take effect immediately. */
|
|
18
|
+
token?: RemoteBearerToken;
|
|
19
|
+
fetch?: typeof fetch;
|
|
20
|
+
}
|
|
21
|
+
export declare class RemoteControlPlane {
|
|
22
|
+
readonly base: string;
|
|
23
|
+
descriptor: HostedProtocolDescriptor | undefined;
|
|
24
|
+
private basePath;
|
|
25
|
+
private readonly token;
|
|
26
|
+
private readonly network;
|
|
27
|
+
constructor(baseUrl: string, { token, fetch: network }?: RemoteControlPlaneOptions);
|
|
28
|
+
connect(): Promise<HostedProtocolDescriptor>;
|
|
29
|
+
list(): Promise<RemoteSandboxRecord[]>;
|
|
30
|
+
get(id: string): Promise<RemoteSandboxRecord>;
|
|
31
|
+
create(options?: RemoteSandboxCreateOptions): Promise<RemoteSandboxRecord>;
|
|
32
|
+
pause(id: string): Promise<RemoteSandboxRecord>;
|
|
33
|
+
resume(id: string): Promise<RemoteSandboxRecord>;
|
|
34
|
+
fork(id: string, options?: Omit<RemoteSandboxCreateOptions, "limits">): Promise<RemoteSandboxRecord>;
|
|
35
|
+
snapshot(id: string): Promise<SandboxWorkspaceSnapshot>;
|
|
36
|
+
/** Restores a downloaded portable snapshot into a fresh sandbox. */
|
|
37
|
+
restore(snapshot: SandboxWorkspaceSnapshot, options?: RemoteSandboxCreateOptions): Promise<RemoteSandboxRecord>;
|
|
38
|
+
kill(id: string): Promise<void>;
|
|
39
|
+
/** A remote runtime through the plane's token-hiding agent proxy. */
|
|
40
|
+
runtime(sandbox: RemoteSandboxRecord): RemoteRuntime;
|
|
41
|
+
private headers;
|
|
42
|
+
private call;
|
|
43
|
+
private ok;
|
|
44
|
+
private json;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=control-plane-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"control-plane-client.d.ts","sourceRoot":"","sources":["../src/control-plane-client.ts"],"names":[],"mappings":"AAGA,OAAO,EAE0C,KAAK,wBAAwB,EAC7E,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAE9F,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,MAAM,WAAW,yBAAyB;IACxC,qFAAqF;IACrF,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,qBAAa,kBAAkB;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,wBAAwB,GAAG,SAAS,CAAC;IACjD,OAAO,CAAC,QAAQ,CAAwC;IACxD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgC;IACtD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;gBAE3B,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAA2C,EAAE,GAAE,yBAA8B;IAMpH,OAAO,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAUlD,IAAI,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IACtC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAE7C,MAAM,CAAC,OAAO,GAAE,0BAA+B,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAI9E,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAI/C,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAIhD,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,IAAI,CAAC,0BAA0B,EAAE,QAAQ,CAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAMlG,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAqB7D,oEAAoE;IAC9D,OAAO,CAAC,QAAQ,EAAE,wBAAwB,EAAE,OAAO,GAAE,0BAA+B,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAmBnH,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAErC,qEAAqE;IACrE,OAAO,CAAC,OAAO,EAAE,mBAAmB,GAAG,aAAa;IAIpD,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,IAAI;YAIE,EAAE;YAKF,IAAI;CACnB"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
// Browser-safe client for the hosted lifecycle above RemoteRuntime. The
|
|
2
|
+
// control plane keeps the guest token server-side; callers present only their
|
|
3
|
+
// optional plane/session token.
|
|
4
|
+
import { SUBSTRATE_CONTROL_PLANE_PROTOCOL, SUBSTRATE_PROTOCOL_BASE_PATH, SUBSTRATE_PROTOCOL_HEADER, hostedProtocolHeader, negotiateHostedProtocol, } from "@volter/browser-runtime/browser-hosted-protocol.js";
|
|
5
|
+
import { RemoteRuntime } from "./client.js";
|
|
6
|
+
export class RemoteControlPlane {
|
|
7
|
+
base;
|
|
8
|
+
descriptor;
|
|
9
|
+
basePath = SUBSTRATE_PROTOCOL_BASE_PATH;
|
|
10
|
+
token;
|
|
11
|
+
network;
|
|
12
|
+
constructor(baseUrl, { token, fetch: network = globalThis.fetch.bind(globalThis) } = {}) {
|
|
13
|
+
this.base = baseUrl.replace(/\/$/, "");
|
|
14
|
+
this.token = token;
|
|
15
|
+
this.network = network;
|
|
16
|
+
}
|
|
17
|
+
async connect() {
|
|
18
|
+
const response = await this.network(`${this.base}/`, { headers: this.headers(false) });
|
|
19
|
+
const descriptor = response.ok ? await response.json().catch(() => undefined) : undefined;
|
|
20
|
+
const negotiated = negotiateHostedProtocol(descriptor, { protocol: SUBSTRATE_CONTROL_PLANE_PROTOCOL });
|
|
21
|
+
if (!negotiated.ok)
|
|
22
|
+
throw new Error(`${this.base} is not a ${SUBSTRATE_CONTROL_PLANE_PROTOCOL} server: ${negotiated.reason}`);
|
|
23
|
+
this.descriptor = negotiated.descriptor;
|
|
24
|
+
this.basePath = negotiated.descriptor.basePath.replace(/\/$/, "");
|
|
25
|
+
return negotiated.descriptor;
|
|
26
|
+
}
|
|
27
|
+
list() { return this.json(this.call("/sandboxes")); }
|
|
28
|
+
get(id) { return this.json(this.call(`/sandboxes/${encodeURIComponent(id)}`)); }
|
|
29
|
+
create(options = {}) {
|
|
30
|
+
return this.json(this.call("/sandboxes", { method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify(options) }));
|
|
31
|
+
}
|
|
32
|
+
pause(id) {
|
|
33
|
+
return this.json(this.call(`/sandboxes/${encodeURIComponent(id)}/pause`, { method: "POST" }));
|
|
34
|
+
}
|
|
35
|
+
resume(id) {
|
|
36
|
+
return this.json(this.call(`/sandboxes/${encodeURIComponent(id)}/resume`, { method: "POST" }));
|
|
37
|
+
}
|
|
38
|
+
fork(id, options = {}) {
|
|
39
|
+
return this.json(this.call(`/sandboxes/${encodeURIComponent(id)}/fork`, {
|
|
40
|
+
method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify(options),
|
|
41
|
+
}));
|
|
42
|
+
}
|
|
43
|
+
async snapshot(id) {
|
|
44
|
+
const response = await this.ok(await this.call(`/sandboxes/${encodeURIComponent(id)}/snapshot`));
|
|
45
|
+
const integrity = response.headers.get("x-substrate-integrity");
|
|
46
|
+
if (!integrity)
|
|
47
|
+
throw new Error("The control plane returned a workspace snapshot without integrity metadata.");
|
|
48
|
+
const version = Number(response.headers.get("x-substrate-snapshot-version"));
|
|
49
|
+
const processState = response.headers.get("x-substrate-process-state");
|
|
50
|
+
const createdAt = Number(response.headers.get("x-substrate-created-at"));
|
|
51
|
+
const entries = Number(response.headers.get("x-substrate-entries"));
|
|
52
|
+
const fileBytes = Number(response.headers.get("x-substrate-file-bytes"));
|
|
53
|
+
if (version !== 1 || processState !== "excluded" || !Number.isFinite(createdAt) || !Number.isFinite(entries) || !Number.isFinite(fileBytes)) {
|
|
54
|
+
throw new Error("The control plane returned invalid workspace snapshot metadata.");
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
kind: "substrate-workspace", version,
|
|
58
|
+
sourceSandboxId: response.headers.get("x-substrate-source-sandbox") ?? id,
|
|
59
|
+
createdAt, processState, format: "zip",
|
|
60
|
+
bytes: new Uint8Array(await response.arrayBuffer()), integrity,
|
|
61
|
+
entries, fileBytes,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
/** Restores a downloaded portable snapshot into a fresh sandbox. */
|
|
65
|
+
async restore(snapshot, options = {}) {
|
|
66
|
+
if (snapshot.kind !== "substrate-workspace" || snapshot.version !== 1 || snapshot.processState !== "excluded") {
|
|
67
|
+
throw new Error("Unsupported sandbox workspace snapshot.");
|
|
68
|
+
}
|
|
69
|
+
const created = await this.create(options);
|
|
70
|
+
const runtime = this.runtime(created);
|
|
71
|
+
try {
|
|
72
|
+
await runtime.connect();
|
|
73
|
+
const imported = await runtime.files.import(snapshot.bytes, { root: "/workspace", replace: true });
|
|
74
|
+
if (imported.integrity !== snapshot.integrity)
|
|
75
|
+
throw new Error(`Snapshot integrity changed during restore: expected ${snapshot.integrity}, received ${imported.integrity}.`);
|
|
76
|
+
return created;
|
|
77
|
+
}
|
|
78
|
+
catch (cause) {
|
|
79
|
+
await this.kill(created.id).catch(() => undefined);
|
|
80
|
+
throw cause;
|
|
81
|
+
}
|
|
82
|
+
finally {
|
|
83
|
+
runtime.close();
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
async kill(id) { await this.ok(await this.call(`/sandboxes/${encodeURIComponent(id)}`, { method: "DELETE" })); }
|
|
87
|
+
/** A remote runtime through the plane's token-hiding agent proxy. */
|
|
88
|
+
runtime(sandbox) {
|
|
89
|
+
return new RemoteRuntime(`${this.base}${sandbox.agent}`, this.token ?? "", { fetch: this.network });
|
|
90
|
+
}
|
|
91
|
+
headers(protocol = true, init) {
|
|
92
|
+
const headers = new Headers(init);
|
|
93
|
+
const token = typeof this.token === "function" ? this.token() : this.token;
|
|
94
|
+
if (token)
|
|
95
|
+
headers.set("authorization", `Bearer ${token}`);
|
|
96
|
+
if (protocol)
|
|
97
|
+
headers.set(SUBSTRATE_PROTOCOL_HEADER, hostedProtocolHeader(SUBSTRATE_CONTROL_PLANE_PROTOCOL));
|
|
98
|
+
return headers;
|
|
99
|
+
}
|
|
100
|
+
call(path, init = {}) {
|
|
101
|
+
return this.network(`${this.base}${this.basePath}${path}`, { ...init, headers: this.headers(true, init.headers) });
|
|
102
|
+
}
|
|
103
|
+
async ok(response) {
|
|
104
|
+
if (!response.ok)
|
|
105
|
+
throw new Error(`${response.status} ${await response.text()}`);
|
|
106
|
+
return response;
|
|
107
|
+
}
|
|
108
|
+
async json(response) { return (await this.ok(await response)).json(); }
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=control-plane-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"control-plane-client.js","sourceRoot":"","sources":["../src/control-plane-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control-plane.d.ts","sourceRoot":"","sources":["../src/control-plane.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAKlC,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"control-plane.d.ts","sourceRoot":"","sources":["../src/control-plane.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAKlC,OAAO,KAAK,EAAW,cAAc,EAAE,MAAM,cAAc,CAAC;AAE5D,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAWD,wBAAsB,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAW,EAAE,IAAkB,EAAE,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA2ItI"}
|