@volter/browser-sandboxes 0.1.5 → 0.1.6

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.
File without changes
package/dist/bin/mcp.js CHANGED
File without changes
package/dist/client.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { type HostedProtocolDescriptor } from "@volter/browser-runtime/browser-hosted-protocol.js";
1
+ import { multiplexFrame } from "@volter/browser-runtime/docker-engine.js";
2
2
  export interface RemoteProcessOptions {
3
3
  cwd?: string;
4
4
  env?: Record<string, string>;
@@ -42,14 +42,13 @@ export interface RemotePtyOptions {
42
42
  env?: Record<string, string>;
43
43
  }
44
44
  export interface RemotePtySession {
45
- id: number;
45
+ id: string;
46
46
  pid: number;
47
47
  cols: number;
48
48
  rows: number;
49
- allocator: "node-pty" | "script";
50
- resizable: boolean;
51
- write(data: string | Uint8Array): Promise<Response>;
52
- /** Resolves the applied size, or rejects when the allocator cannot resize. */
49
+ allocator: "exec";
50
+ resizable: true;
51
+ write(data: string | Uint8Array): Promise<void>;
53
52
  resize(cols: number, rows: number): Promise<{
54
53
  cols: number;
55
54
  rows: number;
@@ -64,7 +63,7 @@ export interface RemoteFileEntry {
64
63
  size: number;
65
64
  }
66
65
  export interface RemoteArchive {
67
- format: "zip" | "json";
66
+ format: "tar";
68
67
  bytes: Uint8Array;
69
68
  integrity: string | null;
70
69
  entries: number;
@@ -93,6 +92,8 @@ export interface RemoteRuntimeOptions {
93
92
  * the fetch it captured before booting the runtime.
94
93
  */
95
94
  fetch?: typeof fetch;
95
+ /** Makes the socket for an exec; a tab passes the page's own, the default is a real WebSocket. */
96
+ socket?: (url: string) => WebSocket;
96
97
  }
97
98
  export type RemoteBearerToken = string | (() => string | undefined);
98
99
  type Listener = (event: Record<string, unknown>) => void;
@@ -110,10 +111,7 @@ export declare class RemoteRuntime {
110
111
  remove(path: string): Promise<{
111
112
  ok: true;
112
113
  }>;
113
- snapshot(): Promise<{
114
- files: unknown[];
115
- }>;
116
- export(root?: string, format?: "zip" | "json", options?: {
114
+ export(root?: string, format?: "tar", options?: {
117
115
  exclude?: readonly string[];
118
116
  }): Promise<RemoteArchive>;
119
117
  import(bytes: Uint8Array, options?: {
@@ -122,42 +120,41 @@ export declare class RemoteRuntime {
122
120
  }): Promise<RemoteImportResult>;
123
121
  };
124
122
  private readonly base;
125
- /** The catalogue's base path, from the negotiated descriptor; /v1 until then. */
126
- private basePath;
127
- /** The agent's descriptor once negotiated. */
128
- descriptor: HostedProtocolDescriptor | undefined;
129
123
  private readonly token;
130
124
  private readonly network;
125
+ private readonly makeSocket;
131
126
  private readonly listeners;
132
- private readonly outputs;
133
- private readonly pending;
134
127
  private readonly abort;
128
+ /** The one container this daemon holds, known after `connect`. */
129
+ private containerId;
130
+ private startedAt;
135
131
  constructor(baseUrl: string, token: RemoteBearerToken, options?: RemoteRuntimeOptions);
132
+ private get container();
136
133
  /**
137
- * Negotiates the agent's protocol, then opens the event stream and returns
138
- * the agent's health. A server speaking another protocol or version is
139
- * refused with the reason.
134
+ * Pings the daemon, finds its one container, opens the event stream, and
135
+ * returns the container's health. A server that is not a Docker daemon of
136
+ * ours is refused with its status.
140
137
  */
141
138
  connect(): Promise<RemoteHealth>;
142
139
  private consume;
143
140
  private dispatch;
144
141
  on(type: string, listener: Listener): () => void;
142
+ private execCreate;
143
+ private execExitCode;
144
+ private execSocket;
145
145
  start(command: string, options?: RemoteProcessOptions): Promise<RemoteProcessHandle>;
146
146
  spawn(command: string, options?: RemoteProcessOptions): Promise<RemoteProcessResult>;
147
- /** A terminal session on a guest pseudo-terminal; bytes in, bytes out. */
147
+ /** A terminal session: an exec of the command with a TTY over the socket; bytes in, bytes out. */
148
148
  openPty(options?: RemotePtyOptions): Promise<RemotePtySession>;
149
- /** Implements the ordinary process surface on the hosted PTY allocator. */
150
- private startTerminalProcess;
151
- /** GET / on the agent, judged by the protocol the client speaks. */
152
- negotiate(): Promise<HostedProtocolDescriptor>;
153
- /** The agent's health; never counts as activity on the agent. */
149
+ /** The container's health, from inspect and top; never counts as activity on the daemon's clock beyond the request. */
154
150
  health(): Promise<RemoteHealth>;
155
151
  processes(): Promise<RemoteProcessInfo[]>;
156
152
  ports(): Promise<number[]>;
157
153
  portUrl(port: number): string;
158
154
  request(port: number, input?: string | URL, init?: RequestInit): Promise<Response>;
155
+ /** The profiler's rows, carried under `substrate` in Docker's stats. */
159
156
  metrics(): Promise<Record<string, unknown>>;
160
- /** A WebSocket to a guest port, tunnelled through the agent. */
157
+ /** A WebSocket to a guest port, tunnelled through the daemon. */
161
158
  webSocket(port: number, input?: string | URL): WebSocket;
162
159
  close(): void;
163
160
  private call;
@@ -165,5 +162,7 @@ export declare class RemoteRuntime {
165
162
  private ok;
166
163
  private json;
167
164
  }
165
+ /** Frames a chunk the way the daemon frames stdout, for tests and tools that need the shape. */
166
+ export declare const dockerFrame: typeof multiplexFrame;
168
167
  export {};
169
168
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -1,64 +1,132 @@
1
- // A remote runtime client with the same method shape as the in-page runtime.
2
- // Differences forced by the wire: ports() and the file surface are async.
3
- // Browser-safe: no Node globals, so a tab can drive a hosted sandbox with it.
4
- // The client negotiates the agent's descriptor before it trusts the wire and
5
- // states the protocol it speaks on every request.
6
- import { SUBSTRATE_AGENT_PROTOCOL, SUBSTRATE_PROTOCOL_BASE_PATH, SUBSTRATE_PROTOCOL_HEADER, hostedProtocolHeader, negotiateHostedProtocol, } from "@volter/browser-runtime/browser-hosted-protocol.js";
7
- /** A fresh ArrayBuffer copy satisfies the fetch body type for any typed array. */
1
+ // A client of the container's wire (ADR-0026): Docker's Engine API, the
2
+ // named subset, over fetch and a WebSocket, with the in-page runtime's method
3
+ // names so a tab drives a hosted container the way it drives its own. Where
4
+ // Docker's API lacks a thing the transfer needs, the client speaks the row
5
+ // the daemon names: a port through the daemon, an event stream, a file
6
+ // listing and removal, and an archive `exclude`, `replace` and `strip`.
7
+ // Browser-safe: no Node globals.
8
+ import { DOCKER_ENGINE_BASE_PATH, multiplexFrame } from "@volter/browser-runtime/docker-engine.js";
9
+ import { packTar, unpackTar } from "@volter/browser-runtime/browser-tar.js";
10
+ const KILL_CLOSE_CODE = 4001;
8
11
  function toBody(data) {
9
- return typeof data === "string" ? data : data.slice().buffer;
12
+ return typeof data === "string" ? data : new Uint8Array(data).buffer;
13
+ }
14
+ function dirname(path) { const index = path.lastIndexOf("/"); return index <= 0 ? "/" : path.slice(0, index); }
15
+ function basename(path) { return path.slice(path.lastIndexOf("/") + 1); }
16
+ /** Splits Docker's multiplexed stream into stdout and stderr chunks, across message boundaries. */
17
+ class FrameParser {
18
+ onFrame;
19
+ buffered = new Uint8Array(0);
20
+ constructor(onFrame) {
21
+ this.onFrame = onFrame;
22
+ }
23
+ push(bytes) {
24
+ const joined = new Uint8Array(this.buffered.byteLength + bytes.byteLength);
25
+ joined.set(this.buffered);
26
+ joined.set(bytes, this.buffered.byteLength);
27
+ let offset = 0;
28
+ while (joined.byteLength - offset >= 8) {
29
+ const size = new DataView(joined.buffer, joined.byteOffset + offset).getUint32(4, false);
30
+ if (joined.byteLength - offset < 8 + size)
31
+ break;
32
+ this.onFrame(joined[offset], joined.subarray(offset + 8, offset + 8 + size));
33
+ offset += 8 + size;
34
+ }
35
+ this.buffered = joined.slice(offset);
36
+ }
10
37
  }
11
38
  export class RemoteRuntime {
12
39
  files;
13
40
  base;
14
- /** The catalogue's base path, from the negotiated descriptor; /v1 until then. */
15
- basePath = SUBSTRATE_PROTOCOL_BASE_PATH;
16
- /** The agent's descriptor once negotiated. */
17
- descriptor;
18
41
  token;
19
42
  network;
43
+ makeSocket;
20
44
  listeners = new Map();
21
- outputs = new Map();
22
- pending = new Map();
23
45
  abort = new AbortController();
46
+ /** The one container this daemon holds, known after `connect`. */
47
+ containerId;
48
+ startedAt = Date.now();
24
49
  constructor(baseUrl, token, options = {}) {
25
50
  this.base = baseUrl.replace(/\/$/, "");
26
51
  this.token = token;
27
52
  this.network = options.fetch ?? globalThis.fetch.bind(globalThis);
53
+ this.makeSocket = options.socket ?? ((url) => new WebSocket(url));
28
54
  this.files = {
29
- read: async (p) => new Uint8Array(await (await this.ok(await this.call(`/fs/read?path=${encodeURIComponent(p)}`))).arrayBuffer()),
55
+ read: async (p) => {
56
+ const entries = unpackTar(new Uint8Array(await (await this.ok(await this.call(`${this.container}/archive?path=${encodeURIComponent(p)}`))).arrayBuffer()));
57
+ const file = entries.find((entry) => entry.type === "file");
58
+ if (!file)
59
+ throw new Error(`${p} is not a file`);
60
+ return file.data ?? new Uint8Array(0);
61
+ },
30
62
  readText: async (p) => new TextDecoder().decode(await this.files.read(p)),
31
- write: async (p, data) => this.json(await this.call(`/fs/write?path=${encodeURIComponent(p)}`, { method: "PUT", body: toBody(data) })),
32
- list: async (p) => this.json(await this.call(`/fs/list?path=${encodeURIComponent(p)}`)),
33
- mkdir: async (p) => this.json(await this.call(`/fs/mkdir?path=${encodeURIComponent(p)}`, { method: "POST" })),
34
- remove: async (p) => this.json(await this.call(`/fs/remove?path=${encodeURIComponent(p)}`, { method: "DELETE" })),
35
- snapshot: async () => this.json(await this.call("/fs/snapshot")),
36
- export: async (root = "/workspace", format = "zip", options = {}) => {
63
+ write: async (p, data) => {
64
+ const bytes = typeof data === "string" ? new TextEncoder().encode(data) : data;
65
+ const tar = packTar([{ path: basename(p), type: "file", mode: 0o644, mtime: Math.floor(Date.now() / 1000), data: bytes }]);
66
+ await this.files.mkdir(dirname(p));
67
+ await this.ok(await this.call(`${this.container}/archive?path=${encodeURIComponent(dirname(p))}`, { method: "PUT", headers: { "content-type": "application/x-tar" }, body: toBody(tar) }));
68
+ return { ok: true };
69
+ },
70
+ list: async (p) => (await this.json(await this.call(`${this.container}/files?path=${encodeURIComponent(p)}`))).map(({ name, type, size }) => ({ name, type, size })),
71
+ mkdir: async (p) => {
72
+ // A directory is made by extracting one into its parent, parent by parent from the root down.
73
+ const parts = p.split("/").filter(Boolean);
74
+ for (let depth = 1; depth <= parts.length; depth += 1) {
75
+ const parent = `/${parts.slice(0, depth - 1).join("/")}`;
76
+ const name = parts[depth - 1];
77
+ const listed = await this.files.list(parent).catch(() => []);
78
+ if (listed.some((entry) => entry.name === name))
79
+ continue;
80
+ const tar = packTar([{ path: name, type: "directory", mode: 0o755, mtime: Math.floor(Date.now() / 1000) }]);
81
+ await this.ok(await this.call(`${this.container}/archive?path=${encodeURIComponent(parent)}`, { method: "PUT", headers: { "content-type": "application/x-tar" }, body: toBody(tar) }));
82
+ }
83
+ return { ok: true };
84
+ },
85
+ remove: async (p) => { await this.ok(await this.call(`${this.container}/files?path=${encodeURIComponent(p)}`, { method: "DELETE" })); return { ok: true }; },
86
+ export: async (root = "/workspace", _format = "tar", options = {}) => {
37
87
  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}`));
88
+ const response = await this.ok(await this.call(`${this.container}/archive?path=${encodeURIComponent(root)}${exclude}`));
39
89
  return {
40
- format,
90
+ format: "tar",
41
91
  bytes: new Uint8Array(await response.arrayBuffer()),
42
92
  integrity: response.headers.get("x-substrate-integrity"),
43
93
  entries: Number(response.headers.get("x-substrate-entries")),
44
94
  fileBytes: Number(response.headers.get("x-substrate-file-bytes")),
45
95
  };
46
96
  },
47
- import: async (bytes, { root = "/workspace", replace = true } = {}) => this.json(await this.call(`/fs/import?root=${encodeURIComponent(root)}&replace=${replace}`, { method: "POST", body: toBody(bytes) })),
97
+ import: async (bytes, { root = "/workspace", replace = true } = {}) => {
98
+ await this.files.mkdir(root);
99
+ // The archive's top entry is the tree's own name; `strip=1` lands its contents in `root`.
100
+ const summary = await this.json(await this.call(`${this.container}/archive?path=${encodeURIComponent(root)}&replace=${replace}&strip=1`, { method: "PUT", headers: { "content-type": "application/x-tar" }, body: toBody(bytes) }));
101
+ return { format: "tar", ...summary };
102
+ },
48
103
  };
49
104
  }
105
+ get container() {
106
+ if (!this.containerId)
107
+ throw new Error("connect() first: the container is not known yet.");
108
+ return `/containers/${this.containerId}`;
109
+ }
50
110
  /**
51
- * Negotiates the agent's protocol, then opens the event stream and returns
52
- * the agent's health. A server speaking another protocol or version is
53
- * refused with the reason.
111
+ * Pings the daemon, finds its one container, opens the event stream, and
112
+ * returns the container's health. A server that is not a Docker daemon of
113
+ * ours is refused with its status.
54
114
  */
55
115
  async connect() {
56
- await this.negotiate();
57
- const response = await this.call("/events", { signal: this.abort.signal });
58
- await this.ok(response);
59
- if (response.body)
60
- void this.consume(response.body);
61
- return this.json(await this.call("/health"));
116
+ const ping = await this.call("/_ping");
117
+ if (!ping.ok)
118
+ throw new Error(`${this.base} did not answer Docker's ping: ${ping.status} ${await ping.text().catch(() => "")}`);
119
+ const containers = await this.json(await this.call("/containers/json"));
120
+ const first = containers[0];
121
+ if (!first)
122
+ throw new Error(`${this.base} holds no container.`);
123
+ this.containerId = first.Id;
124
+ this.startedAt = first.Created * 1000;
125
+ const events = await this.call(`${this.container}/events`, { signal: this.abort.signal });
126
+ await this.ok(events);
127
+ if (events.body)
128
+ void this.consume(events.body);
129
+ return this.health();
62
130
  }
63
131
  async consume(body) {
64
132
  const decoder = new TextDecoder();
@@ -86,26 +154,7 @@ export class RemoteRuntime {
86
154
  }
87
155
  }
88
156
  dispatch(event) {
89
- const type = String(event.type);
90
- if (type === "pty-output" || type === "pty-exit") {
91
- const key = `pty:${String(event.id)}`;
92
- const sink = this.outputs.get(key);
93
- if (sink)
94
- sink(event);
95
- else
96
- this.pending.set(key, [...(this.pending.get(key) ?? []), event]);
97
- return;
98
- }
99
- if (type === "output") {
100
- const key = Number(event.pid);
101
- const sink = this.outputs.get(key);
102
- if (sink)
103
- sink(event);
104
- else
105
- this.pending.set(key, [...(this.pending.get(key) ?? []), event]);
106
- return;
107
- }
108
- for (const listener of this.listeners.get(type) ?? [])
157
+ for (const listener of this.listeners.get(String(event.type)) ?? [])
109
158
  listener(event);
110
159
  }
111
160
  on(type, listener) {
@@ -114,77 +163,158 @@ export class RemoteRuntime {
114
163
  this.listeners.set(type, set);
115
164
  return () => { set.delete(listener); };
116
165
  }
117
- async start(command, options = {}) {
118
- if (options.terminal)
119
- return this.startTerminalProcess(command, options);
120
- const { onStdout, onStderr, cwd, env, stdin } = options;
121
- const started = await this.json(await this.call("/processes", {
166
+ async execCreate(cmd, options) {
167
+ const created = await this.json(await this.call(`${this.container}/exec`, {
122
168
  method: "POST",
123
169
  headers: { "content-type": "application/json" },
124
- body: JSON.stringify({ command, cwd, env, stdin }),
170
+ body: JSON.stringify({
171
+ Cmd: cmd,
172
+ Tty: options.tty,
173
+ AttachStdin: options.stdin,
174
+ AttachStdout: true,
175
+ AttachStderr: true,
176
+ ...(options.cwd !== undefined ? { WorkingDir: options.cwd } : {}),
177
+ ...(options.env ? { Env: Object.entries(options.env).map(([key, value]) => `${key}=${value}`) } : {}),
178
+ }),
125
179
  }));
126
- const sink = (event) => (event.stream === "stdout" ? onStdout : onStderr)?.(String(event.chunk));
127
- this.outputs.set(started.pid, sink);
128
- for (const event of this.pending.get(started.pid) ?? [])
129
- sink(event);
130
- this.pending.delete(started.pid);
180
+ return created.Id;
181
+ }
182
+ async execExitCode(id) {
183
+ const inspect = await this.json(await this.call(`/exec/${id}/json`));
184
+ return inspect.ExitCode ?? 1;
185
+ }
186
+ execSocket(id, options = {}) {
187
+ const url = new URL(`${this.base}${DOCKER_ENGINE_BASE_PATH}/exec/${id}/start`);
188
+ url.protocol = url.protocol === "https:" ? "wss:" : "ws:";
189
+ url.searchParams.set("token", this.tokenValue());
190
+ if (options.rows)
191
+ url.searchParams.set("h", String(options.rows));
192
+ if (options.columns)
193
+ url.searchParams.set("w", String(options.columns));
194
+ const socket = this.makeSocket(url.href);
195
+ socket.binaryType = "arraybuffer";
196
+ return socket;
197
+ }
198
+ async start(command, options = {}) {
199
+ const tty = options.terminal !== undefined;
200
+ const wantsStdin = options.stdin !== undefined || options.stdinStream !== undefined || tty;
201
+ const id = await this.execCreate(["sh", "-c", command], { tty, stdin: wantsStdin, ...(options.cwd !== undefined ? { cwd: options.cwd } : {}), ...(options.env ? { env: options.env } : {}) });
202
+ const startedAt = Date.now();
131
203
  let state = "running";
132
- const result = this.json(this.call(`/processes/${started.pid}/result`)).then((settled) => {
133
- this.outputs.delete(started.pid);
134
- state = settled.state;
135
- if (settled.state === "failed" || !settled.result)
136
- throw new Error(settled.error ?? "process failed");
137
- return settled.result;
138
- });
139
- return {
140
- pid: started.pid,
141
- command: started.command,
142
- startedAt: started.startedAt,
143
- get state() { return state; },
144
- result,
145
- kill: () => { void this.call(`/processes/${started.pid}/kill`, { method: "POST" }); },
146
- resize: () => undefined,
204
+ let stdout = "";
205
+ let stderr = "";
206
+ const decoderOut = new TextDecoder();
207
+ const decoderErr = new TextDecoder();
208
+ const onOut = (bytes) => { const text = decoderOut.decode(bytes, { stream: true }); stdout += text; options.onStdout?.(text); };
209
+ const onErr = (bytes) => { const text = decoderErr.decode(bytes, { stream: true }); stderr += text; options.onStderr?.(text); };
210
+ const settle = (exitCode) => {
211
+ state = "exited";
212
+ return { stdout, stderr, exitCode, ...(options.cwd !== undefined ? { cwd: options.cwd } : {}), ...(options.env ? { env: options.env } : {}) };
147
213
  };
214
+ let kill = () => undefined;
215
+ let resize = () => undefined;
216
+ let result;
217
+ if (!wantsStdin) {
218
+ // Output only: the hijacked HTTP form, streamed.
219
+ const controller = new AbortController();
220
+ kill = () => controller.abort();
221
+ result = (async () => {
222
+ const response = await this.ok(await this.call(`/exec/${id}/start`, { method: "POST", headers: { "content-type": "application/json" }, body: "{}", signal: controller.signal }));
223
+ const parser = new FrameParser((stream, payload) => (stream === 2 ? onErr : onOut)(payload));
224
+ const reader = response.body?.getReader();
225
+ if (reader)
226
+ for (;;) {
227
+ const { done, value } = await reader.read();
228
+ if (done)
229
+ break;
230
+ parser.push(value);
231
+ }
232
+ return settle(await this.execExitCode(id));
233
+ })().catch((cause) => { state = "failed"; throw cause; });
234
+ }
235
+ else {
236
+ // Input too: the socket, framed as the daemon frames it.
237
+ const socket = this.execSocket(id, tty ? { rows: options.terminal.rows, columns: options.terminal.columns } : {});
238
+ const parser = new FrameParser((stream, payload) => (stream === 2 ? onErr : onOut)(payload));
239
+ kill = () => socket.close(KILL_CLOSE_CODE, "kill");
240
+ resize = (columns, rows) => { void this.call(`/exec/${id}/resize?h=${rows}&w=${columns}`, { method: "POST" }).catch(() => undefined); };
241
+ const offResize = options.terminal?.onResize?.((columns, rows) => resize(columns, rows));
242
+ result = new Promise((resolve, reject) => {
243
+ socket.onmessage = (event) => {
244
+ const bytes = event.data instanceof ArrayBuffer ? new Uint8Array(event.data) : new TextEncoder().encode(String(event.data));
245
+ if (tty)
246
+ onOut(bytes);
247
+ else
248
+ parser.push(bytes);
249
+ };
250
+ socket.onopen = () => {
251
+ // End of input is an empty binary frame (the daemon's rule); the daemon closes the socket when the process exits.
252
+ if (options.stdin !== undefined) {
253
+ socket.send(options.stdin);
254
+ if (!tty)
255
+ socket.send(new ArrayBuffer(0));
256
+ }
257
+ if (options.stdinStream) {
258
+ void (async () => {
259
+ try {
260
+ for await (const chunk of options.stdinStream)
261
+ socket.send(new Uint8Array(chunk).buffer);
262
+ if (tty)
263
+ socket.send("\u0004");
264
+ else
265
+ socket.send(new ArrayBuffer(0));
266
+ }
267
+ catch {
268
+ socket.close(KILL_CLOSE_CODE, "stdin failed");
269
+ }
270
+ })();
271
+ }
272
+ };
273
+ socket.onerror = () => { state = "failed"; reject(new Error(`the exec's socket failed: ${command}`)); };
274
+ socket.onclose = () => {
275
+ offResize?.();
276
+ this.execExitCode(id).then((code) => resolve(settle(code)), (cause) => { state = "failed"; reject(cause instanceof Error ? cause : new Error(String(cause))); });
277
+ };
278
+ });
279
+ }
280
+ void result.catch(() => undefined);
281
+ return { pid: 0, command, startedAt, get state() { return state; }, result, kill: () => kill(), resize: (columns, rows) => resize(columns, rows) };
148
282
  }
149
283
  async spawn(command, options = {}) {
150
284
  return (await this.start(command, options)).result;
151
285
  }
152
- /** A terminal session on a guest pseudo-terminal; bytes in, bytes out. */
286
+ /** A terminal session: an exec of the command with a TTY over the socket; bytes in, bytes out. */
153
287
  async openPty(options = {}) {
154
- const opened = await this.json(await this.call("/ptys", { method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify(options) }));
155
- const key = `pty:${opened.id}`;
288
+ const { command = "sh", cols = 80, rows = 24, cwd, env } = options;
289
+ const id = await this.execCreate(["sh", "-c", command], { tty: true, stdin: true, ...(cwd !== undefined ? { cwd } : {}), ...(env ? { env } : {}) });
290
+ const socket = this.execSocket(id, { rows, columns: cols });
156
291
  const listeners = new Set();
157
292
  const retained = [];
158
293
  let retainedBytes = 0;
159
- let resolveExit = () => undefined;
160
- const exited = new Promise((resolve) => { resolveExit = resolve; });
161
- const sink = (event) => {
162
- if (event.type === "pty-output") {
163
- const bytes = Uint8Array.from(atob(String(event.data)), (c) => c.charCodeAt(0));
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
- }
174
- }
175
- else {
176
- this.outputs.delete(key);
177
- resolveExit(Number(event.exitCode));
294
+ const opened = new Promise((resolve, reject) => { socket.onopen = () => resolve(); socket.onerror = () => reject(new Error("the terminal's socket failed")); });
295
+ const exited = new Promise((resolve) => { socket.onclose = () => { void this.execExitCode(id).then(resolve, () => resolve(1)); }; });
296
+ socket.onmessage = (event) => {
297
+ const bytes = event.data instanceof ArrayBuffer ? new Uint8Array(event.data) : new TextEncoder().encode(String(event.data));
298
+ if (listeners.size === 0) {
299
+ retained.push(bytes);
300
+ retainedBytes += bytes.byteLength;
301
+ while (retainedBytes > 64 * 1_024 && retained.length > 1)
302
+ retainedBytes -= retained.shift().byteLength;
178
303
  }
304
+ else
305
+ for (const listener of listeners)
306
+ listener(bytes);
179
307
  };
180
- this.outputs.set(key, sink);
181
- for (const event of this.pending.get(key) ?? [])
182
- sink(event);
183
- this.pending.delete(key);
308
+ await opened;
309
+ let size = { cols, rows };
184
310
  return {
185
- id: opened.id, pid: opened.pid, cols: opened.cols, rows: opened.rows, allocator: opened.allocator, resizable: opened.resizable,
186
- write: (data) => this.call(`/ptys/${opened.id}/input`, { method: "POST", body: toBody(data) }),
187
- resize: (cols, rows) => this.json(this.call(`/ptys/${opened.id}/resize`, { method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify({ cols, rows }) })),
311
+ id, pid: 0, cols, rows, allocator: "exec", resizable: true,
312
+ write: async (data) => { socket.send(typeof data === "string" ? data : new Uint8Array(data).buffer); },
313
+ resize: async (nextCols, nextRows) => {
314
+ await this.ok(await this.call(`/exec/${id}/resize?h=${nextRows}&w=${nextCols}`, { method: "POST" }));
315
+ size = { cols: nextCols, rows: nextRows };
316
+ return size;
317
+ },
188
318
  onData: (listener) => {
189
319
  listeners.add(listener);
190
320
  for (const bytes of retained.splice(0))
@@ -192,109 +322,53 @@ export class RemoteRuntime {
192
322
  retainedBytes = 0;
193
323
  return () => { listeners.delete(listener); };
194
324
  },
195
- kill: () => { void this.call(`/ptys/${opened.id}/kill`, { method: "POST" }); },
325
+ kill: () => socket.close(KILL_CLOSE_CODE, "kill"),
196
326
  exited,
197
327
  };
198
328
  }
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);
329
+ /** The container's health, from inspect and top; never counts as activity on the daemon's clock beyond the request. */
330
+ async health() {
331
+ const inspect = await this.json(await this.call(`${this.container}/json`));
332
+ const top = await this.json(await this.call(`${this.container}/top`));
252
333
  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); },
334
+ ok: true,
335
+ root: inspect.Config.WorkingDir,
336
+ portDiscovery: "inspect",
337
+ ports: Object.keys(inspect.NetworkSettings.Ports).map((key) => Number(key.split("/")[0])),
338
+ startedAt: this.startedAt,
339
+ lastActivityAt: Date.now(),
340
+ liveProcesses: top.Processes.filter((row) => row[2] === "running").length,
260
341
  };
261
342
  }
262
- /** GET / on the agent, judged by the protocol the client speaks. */
263
- async negotiate() {
264
- const response = await this.network(`${this.base}/`, { headers: { authorization: `Bearer ${this.tokenValue()}` } });
265
- const descriptor = response.ok ? await response.json().catch(() => undefined) : undefined;
266
- const negotiated = negotiateHostedProtocol(descriptor, { protocol: SUBSTRATE_AGENT_PROTOCOL });
267
- if (!negotiated.ok)
268
- throw new Error(`${this.base} is not a ${SUBSTRATE_AGENT_PROTOCOL} server: ${negotiated.reason}`);
269
- this.descriptor = negotiated.descriptor;
270
- this.basePath = negotiated.descriptor.basePath.replace(/\/$/, "");
271
- return negotiated.descriptor;
343
+ async processes() {
344
+ const top = await this.json(await this.call(`${this.container}/top`));
345
+ return top.Processes.map((row) => ({ pid: Number(row[0]), startedAt: Date.parse(row[1] ?? "") || 0, state: row[2] ?? "", command: row[3] ?? "" }));
272
346
  }
273
- /** The agent's health; never counts as activity on the agent. */
274
- async health() { return this.json(await this.call("/health")); }
275
- async processes() { return this.json(await this.call("/processes")); }
276
- async ports() { return (await this.json(await this.call("/ports"))).map((entry) => entry.port); }
277
- portUrl(port) { return `${this.base}${this.basePath}/ports/${port}/`; }
347
+ async ports() { return (await this.health()).ports; }
348
+ portUrl(port) { return `${this.base}${DOCKER_ENGINE_BASE_PATH}${this.container}/ports/${port}/`; }
278
349
  request(port, input = "/", init = {}) {
279
- // An absolute virtual path is relative to the port, never to the agent, and
280
- // the agent may itself sit behind a path prefix such as a control plane.
281
- const target = new URL(input.toString().replace(/^\//, ""), `${this.base}${this.basePath}/ports/${port}/`);
282
- return this.call(target.href.slice(this.base.length + this.basePath.length), init);
350
+ // An absolute virtual path is relative to the port, never to the daemon,
351
+ // and the daemon may itself sit behind a path prefix such as a control plane.
352
+ const target = new URL(input.toString().replace(/^\//, ""), this.portUrl(port));
353
+ return this.call(target.href.slice(this.base.length + DOCKER_ENGINE_BASE_PATH.length), init);
354
+ }
355
+ /** The profiler's rows, carried under `substrate` in Docker's stats. */
356
+ async metrics() {
357
+ const stats = await this.json(await this.call(`${this.container}/stats?stream=false`));
358
+ return stats.substrate ?? {};
283
359
  }
284
- async metrics() { return this.json(await this.call("/metrics")); }
285
- /** A WebSocket to a guest port, tunnelled through the agent. */
360
+ /** A WebSocket to a guest port, tunnelled through the daemon. */
286
361
  webSocket(port, input = "/") {
287
- const target = new URL(input.toString().replace(/^\//, ""), `${this.base}${this.basePath}/ports/${port}/`);
362
+ const target = new URL(input.toString().replace(/^\//, ""), this.portUrl(port));
288
363
  target.protocol = target.protocol === "https:" ? "wss:" : "ws:";
289
364
  target.searchParams.set("token", this.tokenValue());
290
- return new WebSocket(target);
365
+ return this.makeSocket(target.href);
291
366
  }
292
367
  close() { this.abort.abort(); }
293
368
  call(route, init = {}) {
294
369
  const headers = new Headers(init.headers);
295
370
  headers.set("authorization", `Bearer ${this.tokenValue()}`);
296
- headers.set(SUBSTRATE_PROTOCOL_HEADER, hostedProtocolHeader(SUBSTRATE_AGENT_PROTOCOL));
297
- return this.network(`${this.base}${this.basePath}${route}`, { ...init, headers });
371
+ return this.network(`${this.base}${DOCKER_ENGINE_BASE_PATH}${route}`, { ...init, headers });
298
372
  }
299
373
  tokenValue() { return typeof this.token === "function" ? (this.token() ?? "") : this.token; }
300
374
  async ok(response) {
@@ -306,4 +380,6 @@ export class RemoteRuntime {
306
380
  return (await this.ok(await responseOrPromise)).json();
307
381
  }
308
382
  }
383
+ /** Frames a chunk the way the daemon frames stdout, for tests and tools that need the shape. */
384
+ export const dockerFrame = multiplexFrame;
309
385
  //# sourceMappingURL=client.js.map
@@ -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":"AAAA,wEAAwE;AACxE,8EAA8E;AAC9E,4EAA4E;AAC5E,2EAA2E;AAC3E,uEAAuE;AACvE,wEAAwE;AACxE,iCAAiC;AAEjC,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AACnG,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAoF5E,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B,SAAS,MAAM,CAAC,IAAyB;IACvC,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,MAAqB,CAAC;AACtF,CAAC;AAED,SAAS,OAAO,CAAC,IAAY,IAAY,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/H,SAAS,QAAQ,CAAC,IAAY,IAAY,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAEzF,mGAAmG;AACnG,MAAM,WAAW;IAEc;IADrB,QAAQ,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IACrC,YAA6B,OAAsD;QAAtD,YAAO,GAAP,OAAO,CAA+C;IAAG,CAAC;IACvF,IAAI,CAAC,KAAiB;QACpB,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QAC3E,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACvE,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,OAAO,MAAM,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACzF,IAAI,MAAM,CAAC,UAAU,GAAG,MAAM,GAAG,CAAC,GAAG,IAAI;gBAAE,MAAM;YACjD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YAC9E,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;CACF;AAED,MAAM,OAAO,aAAa;IACf,KAAK,CASZ;IAEe,IAAI,CAAS;IACb,KAAK,CAAoB;IACzB,OAAO,CAAe;IACtB,UAAU,CAA6B;IACvC,SAAS,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC7C,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;IAC/C,kEAAkE;IAC1D,WAAW,CAAqB;IAChC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE/B,YAAY,OAAe,EAAE,KAAwB,EAAE,UAAgC,EAAE;QACvF,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,KAAK,GAAG;YACX,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;gBAChB,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,iBAAiB,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;gBAC3J,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;gBAC5D,IAAI,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBACjD,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;YACxC,CAAC;YACD,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACzE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;gBACvB,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC/E,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC3H,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnC,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,iBAAiB,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC3L,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;YACtB,CAAC;YACD,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAA2D,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,eAAe,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9N,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;gBACjB,8FAA8F;gBAC9F,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC3C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;oBACtD,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBACzD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAE,CAAC;oBAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;oBAC7D,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;wBAAE,SAAS;oBAC1D,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC5G,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,iBAAiB,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACzL,CAAC;gBACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;YACtB,CAAC;YACD,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,eAAe,kBAAkB,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC5J,MAAM,EAAE,KAAK,EAAE,IAAI,GAAG,YAAY,EAAE,OAAO,GAAG,KAAK,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;gBACnE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC3G,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,iBAAiB,kBAAkB,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC;gBACxH,OAAO;oBACL,MAAM,EAAE,KAAK;oBACb,KAAK,EAAE,IAAI,UAAU,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;oBACnD,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;oBACxD,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;oBAC5D,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;iBAClE,CAAC;YACJ,CAAC;YACD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,GAAG,YAAY,EAAE,OAAO,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE;gBACpE,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC7B,0FAA0F;gBAC1F,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAA4D,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,iBAAiB,kBAAkB,CAAC,IAAI,CAAC,YAAY,OAAO,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC/R,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC;YACvC,CAAC;SACF,CAAC;IACJ,CAAC;IAED,IAAY,SAAS;QACnB,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAC3F,OAAO,eAAe,IAAI,CAAC,WAAW,EAAE,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,kCAAkC,IAAI,CAAC,MAAM,IAAI,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAChI,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAyC,MAAM,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAChH,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,sBAAsB,CAAC,CAAC;QAChE,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1F,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QACtB,IAAI,MAAM,CAAC,IAAI;YAAE,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,IAAgC;QACpD,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAChC,SAAS,CAAC;gBACR,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5C,IAAI,IAAI;oBAAE,MAAM;gBAChB,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpD,IAAI,KAAa,CAAC;gBAClB,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;oBACvC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;oBACrC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACnH,IAAI,IAAI;wBAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC,CAAC;gBACvE,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAM,KAAK,CAAC;QAC9C,CAAC;IACH,CAAC;IAEO,QAAQ,CAAC,KAA8B;QAC7C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;YAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IACvF,CAAC;IAED,EAAE,CAAC,IAAY,EAAE,QAAkB;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,EAAY,CAAC;QAC5D,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC9B,OAAO,GAAG,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,GAAsB,EAAE,OAAqF;QACpI,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAiB,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,OAAO,EAAE;YACxF,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,GAAG,EAAE,GAAG;gBACR,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,WAAW,EAAE,OAAO,CAAC,KAAK;gBAC1B,YAAY,EAAE,IAAI;gBAClB,YAAY,EAAE,IAAI;gBAClB,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACtG,CAAC;SACH,CAAC,CAAC,CAAC;QACJ,OAAO,OAAO,CAAC,EAAE,CAAC;IACpB,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,EAAU;QACnC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAgD,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;QACpH,OAAO,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;IAC/B,CAAC;IAEO,UAAU,CAAC,EAAU,EAAE,UAA+C,EAAE;QAC9E,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,uBAAuB,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC/E,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QAC1D,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QACjD,IAAI,OAAO,CAAC,IAAI;YAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,IAAI,OAAO,CAAC,OAAO;YAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,CAAC,UAAU,GAAG,aAAa,CAAC;QAClC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAe,EAAE,UAAgC,EAAE;QAC7D,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC;QAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,GAAG,CAAC;QAC3F,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9L,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,KAAK,GAAiC,SAAS,CAAC;QACpD,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,UAAU,GAAG,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,CAAC,KAAiB,EAAQ,EAAE,GAAG,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAClJ,MAAM,KAAK,GAAG,CAAC,KAAiB,EAAQ,EAAE,GAAG,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAClJ,MAAM,MAAM,GAAG,CAAC,QAAgB,EAAuB,EAAE;YACvD,KAAK,GAAG,QAAQ,CAAC;YACjB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAChJ,CAAC,CAAC;QACF,IAAI,IAAI,GAAe,GAAG,EAAE,CAAC,SAAS,CAAC;QACvC,IAAI,MAAM,GAA4C,GAAG,EAAE,CAAC,SAAS,CAAC;QACtE,IAAI,MAAoC,CAAC;QACzC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,iDAAiD;YACjD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,IAAI,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YAChC,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE;gBACnB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBACjL,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC7F,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;gBAC1C,IAAI,MAAM;oBAAE,SAAS,CAAC;wBAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;wBAAC,IAAI,IAAI;4BAAE,MAAM;wBAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAAC,CAAC;gBAC1G,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7C,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,yDAAyD;YACzD,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,QAAS,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,QAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACpH,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7F,IAAI,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;YACnD,MAAM,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,IAAI,MAAM,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YACxI,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YACzF,MAAM,GAAG,IAAI,OAAO,CAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC5D,MAAM,CAAC,SAAS,GAAG,CAAC,KAAK,EAAE,EAAE;oBAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,YAAY,WAAW,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC5H,IAAI,GAAG;wBAAE,KAAK,CAAC,KAAK,CAAC,CAAC;;wBAAM,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACjD,CAAC,CAAC;gBACF,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE;oBACnB,kHAAkH;oBAClH,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;wBAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;wBAAC,IAAI,CAAC,GAAG;4BAAE,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;oBAAC,CAAC;oBAC3G,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;wBACxB,KAAK,CAAC,KAAK,IAAI,EAAE;4BACf,IAAI,CAAC;gCACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,WAAY;oCAAE,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,MAAqB,CAAC,CAAC;gCACzG,IAAI,GAAG;oCAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;oCAAM,MAAM,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;4BACvE,CAAC;4BAAC,MAAM,CAAC;gCAAC,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;4BAAC,CAAC;wBAC5D,CAAC,CAAC,EAAE,CAAC;oBACP,CAAC;gBACH,CAAC,CAAC;gBACF,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxG,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE;oBACpB,SAAS,EAAE,EAAE,CAAC;oBACd,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAc,EAAE,EAAE,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5K,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;QACD,KAAK,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACnC,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,KAAK,KAAK,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC;IACrJ,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAe,EAAE,UAAgC,EAAE;QAC7D,OAAO,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IACrD,CAAC;IAED,kGAAkG;IAClG,KAAK,CAAC,OAAO,CAAC,UAA4B,EAAE;QAC1C,MAAM,EAAE,OAAO,GAAG,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;QACnE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACpJ,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;QACzD,MAAM,QAAQ,GAAiB,EAAE,CAAC;QAClC,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,MAAM,MAAM,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtK,MAAM,MAAM,GAAG,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE,GAAG,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7I,MAAM,CAAC,SAAS,GAAG,CAAC,KAAK,EAAE,EAAE;YAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,YAAY,WAAW,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5H,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACzB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrB,aAAa,IAAI,KAAK,CAAC,UAAU,CAAC;gBAClC,OAAO,aAAa,GAAG,EAAE,GAAG,KAAK,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;oBAAE,aAAa,IAAI,QAAQ,CAAC,KAAK,EAAG,CAAC,UAAU,CAAC;YAC1G,CAAC;;gBAAM,KAAK,MAAM,QAAQ,IAAI,SAAS;oBAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC3D,CAAC,CAAC;QACF,MAAM,MAAM,CAAC;QACb,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC1B,OAAO;YACL,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI;YAC1D,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,MAAqB,CAAC,CAAC,CAAC,CAAC;YACrH,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;gBACnC,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,QAAQ,MAAM,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;gBACrG,IAAI,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;gBAC1C,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACnB,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACxB,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;oBAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACxD,aAAa,GAAG,CAAC,CAAC;gBAClB,OAAO,GAAG,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;YACD,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,MAAM,CAAC;YACjD,MAAM;SACP,CAAC;IACJ,CAAC;IAED,uHAAuH;IACvH,KAAK,CAAC,MAAM;QACV,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAuH,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,OAAO,CAAC,CAAC,CAAC;QACjM,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAA4B,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC;QACjG,OAAO;YACL,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU;YAC/B,aAAa,EAAE,SAAS;YACxB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzF,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,cAAc,EAAE,IAAI,CAAC,GAAG,EAAE;YAC1B,aAAa,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,MAAM;SAC1E,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAA4B,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC;QACjG,OAAO,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IACrJ,CAAC;IAED,KAAK,CAAC,KAAK,KAAwB,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAExE,OAAO,CAAC,IAAY,IAAY,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,uBAAuB,GAAG,IAAI,CAAC,SAAS,UAAU,IAAI,GAAG,CAAC,CAAC,CAAC;IAElH,OAAO,CAAC,IAAY,EAAE,QAAsB,GAAG,EAAE,OAAoB,EAAE;QACrE,yEAAyE;QACzE,8EAA8E;QAC9E,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,uBAAuB,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;IAC/F,CAAC;IAED,wEAAwE;IACxE,KAAK,CAAC,OAAO;QACX,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAgD,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,qBAAqB,CAAC,CAAC,CAAC;QACtI,OAAO,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,iEAAiE;IACjE,SAAS,CAAC,IAAY,EAAE,QAAsB,GAAG;QAC/C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAChF,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QAChE,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,KAAW,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAE7B,IAAI,CAAC,KAAa,EAAE,OAAoB,EAAE;QAChD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,uBAAuB,GAAG,KAAK,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC9F,CAAC;IACO,UAAU,KAAa,OAAO,OAAO,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACrG,KAAK,CAAC,EAAE,CAAC,QAAkB;QACjC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,MAAM,IAAI,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACjF,OAAO,QAAQ,CAAC;IAClB,CAAC;IACO,KAAK,CAAC,IAAI,CAAc,iBAA+C;QAC7E,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,iBAAiB,CAAC,CAAC,CAAC,IAAI,EAAgB,CAAC;IACvE,CAAC;CACF;AAED,gGAAgG;AAChG,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC"}
@@ -1,7 +1,12 @@
1
- import { type HostedProtocolName } from "@volter/browser-runtime/browser-hosted-protocol.js";
1
+ import { SUBSTRATE_CONTROL_PLANE_PROTOCOL } from "@volter/browser-runtime/browser-hosted-protocol.js";
2
2
  export interface HostedContractTarget {
3
3
  baseUrl: string;
4
- protocol: HostedProtocolName;
4
+ protocol?: typeof SUBSTRATE_CONTROL_PLANE_PROTOCOL;
5
+ token?: string;
6
+ fetch?: typeof fetch;
7
+ }
8
+ export interface DockerContractTarget {
9
+ baseUrl: string;
5
10
  token?: string;
6
11
  fetch?: typeof fetch;
7
12
  }
@@ -9,5 +14,8 @@ export interface HostedContractFailure {
9
14
  label: string;
10
15
  detail?: unknown;
11
16
  }
12
- export declare function runHostedContract({ baseUrl, token, protocol, fetch: network }: HostedContractTarget): Promise<HostedContractFailure[]>;
17
+ /** The container's wire, in Docker's words: every route of the subset answers Docker's shape, and every refusal is Docker's. */
18
+ export declare function runDockerContract({ baseUrl, token, fetch: network }: DockerContractTarget): Promise<HostedContractFailure[]>;
19
+ /** The control plane's wire: the descriptor negotiated, the catalogue covered, every safe route answering, every refusal a refusal. */
20
+ export declare function runHostedContract({ baseUrl, token, fetch: network }: HostedContractTarget): Promise<HostedContractFailure[]>;
13
21
  //# sourceMappingURL=contract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,oDAAoD,CAAC;AAE5D,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE;AAE1E,wBAAsB,iBAAiB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAA0B,EAAE,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAoE/J"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,gCAAgC,EAEjC,MAAM,oDAAoD,CAAC;AAG5D,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,gCAAgC,CAAC;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE;AAE1E,gIAAgI;AAChI,wBAAsB,iBAAiB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAA0B,EAAE,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CA0DrJ;AAED,uIAAuI;AACvI,wBAAsB,iBAAiB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAA0B,EAAE,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAuDrJ"}
package/dist/contract.js CHANGED
@@ -1,11 +1,75 @@
1
- // Walks the hosted wire contract against a live server: negotiates the
2
- // descriptor, checks the catalogue is covered, calls every safe route, and
3
- // confirms refusals for an unknown route, a route outside the base path, a
4
- // missing token, and a client stating another version. Returns failures; the
5
- // caller decides what to do with them. The same walk proves a self-hosted
6
- // tier and a managed service are one API.
7
- import { SUBSTRATE_AGENT_PROTOCOL, SUBSTRATE_AGENT_ROUTES, SUBSTRATE_CONTROL_PLANE_ROUTES, SUBSTRATE_PROTOCOL_HEADER, hostedProtocolHeader, missingHostedRoutes, negotiateHostedProtocol, parseHostedProtocolHeader, } from "@volter/browser-runtime/browser-hosted-protocol.js";
8
- export async function runHostedContract({ baseUrl, token, protocol, fetch: network = globalThis.fetch }) {
1
+ // Two walks. The container's wire is Docker's (ADR-0026): `runDockerContract`
2
+ // drives a daemon the way a Docker client would, over the named subset, and
3
+ // checks the refusals are Docker's. The control plane's wire is ours, since a
4
+ // plane is not a container: `runHostedContract` negotiates its descriptor and
5
+ // walks its catalogue. The same walks prove a self-hosted tier and a managed
6
+ // service are one API.
7
+ import { SUBSTRATE_CONTROL_PLANE_PROTOCOL, SUBSTRATE_CONTROL_PLANE_ROUTES, SUBSTRATE_PROTOCOL_HEADER, hostedProtocolHeader, missingHostedRoutes, negotiateHostedProtocol, parseHostedProtocolHeader, } from "@volter/browser-runtime/browser-hosted-protocol.js";
8
+ import { DOCKER_ENGINE_API_VERSION, DOCKER_ENGINE_BASE_PATH } from "@volter/browser-runtime/docker-engine.js";
9
+ /** The container's wire, in Docker's words: every route of the subset answers Docker's shape, and every refusal is Docker's. */
10
+ export async function runDockerContract({ baseUrl, token, fetch: network = globalThis.fetch }) {
11
+ const failures = [];
12
+ const check = (label, ok, detail) => { if (!ok)
13
+ failures.push({ label: `docker: ${label}`, ...(detail !== undefined ? { detail } : {}) }); };
14
+ const base = `${baseUrl.replace(/\/$/, "")}${DOCKER_ENGINE_BASE_PATH}`;
15
+ const call = (path, init = {}) => {
16
+ const headers = new Headers(init.headers);
17
+ if (token)
18
+ headers.set("authorization", `Bearer ${token}`);
19
+ return network(`${base}${path}`, { ...init, headers });
20
+ };
21
+ const json = async (response) => response.json().then((value) => value).catch(() => undefined);
22
+ const ping = await call("/_ping");
23
+ check("GET /_ping answers OK with API-Version", ping.status === 200 && (await ping.text()) === "OK" && ping.headers.get("api-version") === DOCKER_ENGINE_API_VERSION, { status: ping.status, version: ping.headers.get("api-version") });
24
+ const version = await json(await call("/version"));
25
+ check("GET /version names the API version", version?.ApiVersion === DOCKER_ENGINE_API_VERSION, version);
26
+ const info = await json(await call("/info"));
27
+ check("GET /info answers", typeof info?.Containers === "number", info);
28
+ const list = await json(await call("/containers/json"));
29
+ const id = list?.[0]?.Id;
30
+ check("GET /containers/json lists one container with a 64-hex id", typeof id === "string" && /^[0-9a-f]{64}$/u.test(id) && Array.isArray(list?.[0]?.Names), list);
31
+ if (!id)
32
+ return failures;
33
+ const inspect = await json(await call(`/containers/${id.slice(0, 12)}/json`));
34
+ check("GET /containers/{id}/json inspects by a short id", inspect?.Id === id && typeof inspect?.State?.Status === "string" && typeof inspect?.Config?.WorkingDir === "string" && typeof inspect?.NetworkSettings?.Ports === "object", inspect);
35
+ const top = await json(await call(`/containers/${id}/top`));
36
+ check("GET /containers/{id}/top answers titles and rows", Array.isArray(top?.Titles) && Array.isArray(top?.Processes), top);
37
+ const stats = await json(await call(`/containers/${id}/stats?stream=false`));
38
+ check("GET /containers/{id}/stats answers with the profiler under substrate", typeof stats?.read === "string" && "substrate" in (stats ?? {}), stats);
39
+ const created = await json(await call(`/containers/${id}/exec`, { method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify({ Cmd: ["sh", "-c", "printf contract; exit 4"], AttachStdout: true }) }));
40
+ check("POST /containers/{id}/exec creates an exec", typeof created?.Id === "string", created);
41
+ if (created?.Id) {
42
+ const started = await call(`/exec/${created.Id}/start`, { method: "POST", headers: { "content-type": "application/json" }, body: "{}" });
43
+ const body = new Uint8Array(await started.arrayBuffer());
44
+ const payload = body.byteLength >= 8 ? new TextDecoder().decode(body.subarray(8)) : "";
45
+ check("POST /exec/{id}/start streams multiplexed frames", started.status === 200 && started.headers.get("content-type") === "application/vnd.docker.multiplexed-stream" && body[0] === 1 && payload === "contract", { status: started.status, payload });
46
+ const execInspect = await json(await call(`/exec/${created.Id}/json`));
47
+ check("GET /exec/{id}/json carries the exit code", execInspect?.Running === false && execInspect?.ExitCode === 4, execInspect);
48
+ }
49
+ const head = await call(`/containers/${id}/archive?path=${encodeURIComponent(inspect?.Config?.WorkingDir ?? "/workspace")}`, { method: "HEAD" });
50
+ check("HEAD /containers/{id}/archive stats the path", head.status === 200 && typeof head.headers.get("x-docker-container-path-stat") === "string", head.status);
51
+ const events = await call(`/containers/${id}/events`);
52
+ check("GET /containers/{id}/events streams events (a row of ours)", events.status === 200 && /text\/event-stream/.test(events.headers.get("content-type") ?? ""), events.status);
53
+ await events.body?.cancel().catch(() => undefined);
54
+ const missing = await call("/containers/0000000000000000000000000000000000000000000000000000000000000000/json");
55
+ const missingBody = await json(missing);
56
+ check("an unknown container is 404 with Docker's message", missing.status === 404 && /No such container/u.test(missingBody?.message ?? ""), { status: missing.status, body: missingBody });
57
+ const unknown = await call("/definitely-not-a-route");
58
+ const unknownBody = await json(unknown);
59
+ check("an unknown route is 404 with a JSON message", unknown.status === 404 && typeof unknownBody?.message === "string", unknown.status);
60
+ const images = await call("/images/json");
61
+ check("the images API is refused in words", images.status === 501, images.status);
62
+ await images.arrayBuffer().catch(() => undefined);
63
+ if (token) {
64
+ const anonymous = await network(`${base}/_ping`);
65
+ check("a missing token is 401", anonymous.status === 401, anonymous.status);
66
+ await anonymous.arrayBuffer().catch(() => undefined);
67
+ }
68
+ return failures;
69
+ }
70
+ /** The control plane's wire: the descriptor negotiated, the catalogue covered, every safe route answering, every refusal a refusal. */
71
+ export async function runHostedContract({ baseUrl, token, fetch: network = globalThis.fetch }) {
72
+ const protocol = SUBSTRATE_CONTROL_PLANE_PROTOCOL;
9
73
  const failures = [];
10
74
  const check = (label, ok, detail) => { if (!ok)
11
75
  failures.push({ label, ...(detail !== undefined ? { detail } : {}) }); };
@@ -17,7 +81,7 @@ export async function runHostedContract({ baseUrl, token, protocol, fetch: netwo
17
81
  headers.set(name, value);
18
82
  return network(`${base}${path}`, { ...init, headers });
19
83
  };
20
- const catalogue = protocol === SUBSTRATE_AGENT_PROTOCOL ? SUBSTRATE_AGENT_ROUTES : SUBSTRATE_CONTROL_PLANE_ROUTES;
84
+ const catalogue = SUBSTRATE_CONTROL_PLANE_ROUTES;
21
85
  // 1. The descriptor, negotiated before anything else is trusted.
22
86
  const root = await call("/");
23
87
  check(`${protocol}: GET / answers`, root.ok, root.status);
@@ -35,23 +99,7 @@ export async function runHostedContract({ baseUrl, token, protocol, fetch: netwo
35
99
  check(`${protocol}: the server's catalogue covers the client's`, missing.length === 0, missing.map((r) => `${r.method} ${r.path}`));
36
100
  // 3. Every safe route answers something other than "no such route".
37
101
  for (const route of catalogue.filter((r) => r.safe && !r.path.includes("{"))) {
38
- if (route.path === "/events") {
39
- const controller = new AbortController();
40
- try {
41
- const response = await versioned(route.path, { signal: controller.signal });
42
- check(`${protocol}: ${route.method} ${route.path} streams events`, response.ok && /text\/event-stream/.test(response.headers.get("content-type") ?? ""), response.status);
43
- }
44
- catch (error) {
45
- check(`${protocol}: ${route.method} ${route.path} streams events`, false, String(error));
46
- }
47
- finally {
48
- controller.abort();
49
- }
50
- continue;
51
- }
52
- const query = route.path.startsWith("/fs/") ? "?path=/workspace&root=/workspace" : "";
53
- const response = await versioned(`${route.path}${query}`, { method: route.method });
54
- // A route may answer 404 for a missing resource; only "no such route" means it is not served.
102
+ const response = await versioned(route.path, { method: route.method });
55
103
  const body = response.status === 404 ? (await response.json().catch(() => ({}))) : undefined;
56
104
  const routed = response.status !== 404 || !/no such route/.test(String(body?.error ?? ""));
57
105
  check(`${protocol}: ${route.method} ${route.path} is routed`, routed, { status: response.status, ...(body ? { body } : {}) });
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"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"}
@@ -56,7 +56,7 @@ export class RemoteControlPlane {
56
56
  return {
57
57
  kind: "substrate-workspace", version,
58
58
  sourceSandboxId: response.headers.get("x-substrate-source-sandbox") ?? id,
59
- createdAt, processState, format: "zip",
59
+ createdAt, processState, format: "tar",
60
60
  bytes: new Uint8Array(await response.arrayBuffer()), integrity,
61
61
  entries, fileBytes,
62
62
  };
@@ -99,7 +99,7 @@ export async function serveControlPlane({ manager, port = 4291, bind = "127.0.0.
99
99
  if (segments.length === 3 && segments[2] === "snapshot" && method === "GET") {
100
100
  const snapshot = await manager.snapshot(sandbox.id);
101
101
  response.writeHead(200, {
102
- ...cors(request), "content-type": "application/zip", "content-disposition": `attachment; filename=substrate-${sandbox.id}.zip`,
102
+ ...cors(request), "content-type": "application/x-tar", "content-disposition": `attachment; filename=substrate-${sandbox.id}.tar`,
103
103
  "x-substrate-integrity": snapshot.integrity, "x-substrate-entries": String(snapshot.entries),
104
104
  "x-substrate-file-bytes": String(snapshot.fileBytes), "x-substrate-snapshot-version": String(snapshot.version),
105
105
  "x-substrate-source-sandbox": snapshot.sourceSandboxId, "x-substrate-created-at": String(snapshot.createdAt),
@@ -1 +1 @@
1
- {"version":3,"file":"control-plane.js","sourceRoot":"","sources":["../src/control-plane.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"control-plane.js","sourceRoot":"","sources":["../src/control-plane.ts"],"names":[],"mappings":"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"}
package/dist/manager.d.ts CHANGED
@@ -63,7 +63,7 @@ export interface SandboxWorkspaceSnapshot {
63
63
  sourceSandboxId: string;
64
64
  createdAt: number;
65
65
  processState: "excluded";
66
- format: "zip";
66
+ format: "tar";
67
67
  bytes: Uint8Array;
68
68
  integrity: string;
69
69
  entries: number;
package/dist/manager.js CHANGED
@@ -91,12 +91,12 @@ export class SandboxManager {
91
91
  throw new Error(`Unknown sandbox ${id}.`);
92
92
  if (source.state !== "running")
93
93
  throw new Error(`Sandbox ${id} must be running to snapshot its workspace.`);
94
- const archive = await source.runtime.files.export("/workspace", "zip");
94
+ const archive = await source.runtime.files.export("/workspace", "tar");
95
95
  if (!archive.integrity)
96
96
  throw new Error(`Sandbox ${id} returned a workspace archive without integrity metadata.`);
97
97
  return {
98
98
  kind: "substrate-workspace", version: 1, sourceSandboxId: id, createdAt: Date.now(), processState: "excluded",
99
- format: "zip", bytes: archive.bytes, integrity: archive.integrity, entries: archive.entries, fileBytes: archive.fileBytes,
99
+ format: "tar", bytes: archive.bytes, integrity: archive.integrity, entries: archive.entries, fileBytes: archive.fileBytes,
100
100
  };
101
101
  }
102
102
  /** Creates a new sandbox from a portable workspace snapshot. */
@@ -1 +1 @@
1
- {"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../src/transfer.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,6FAA6F;AAC7F,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAA4G,CAAC;AAEjK,gFAAgF;AAChF,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,SAAS,MAAM,EAA2B,GAAG,GAAG,CAAC,MAAM,CAAC,CAkBhJ;AAED,mGAAmG;AACnG,wBAAgB,cAAc,CAAC,UAAU,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAW9F;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,0GAA0G;AAC1G,wBAAsB,aAAa,CAAC,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,IAAmB,EAAE,OAAO,EAAE,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAOjM;AAED,2HAA2H;AAC3H,wBAAsB,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,IAAmB,EAAE,YAAqC,EAAE,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAO,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAO3R;AAED,MAAM,WAAW,WAAW;IAAG,SAAS,EAAE,WAAW,GAAG,UAAU,CAAC;IAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AAC5G,MAAM,WAAW,WAAW;IAAG,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE;AAEtF;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,IAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;CAAO,GAAG;IAAE,IAAI,IAAI,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;CAAE,CA8ExQ"}
1
+ {"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../src/transfer.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,6FAA6F;AAC7F,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAA4G,CAAC;AAEjK,gFAAgF;AAChF,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,SAAS,MAAM,EAA2B,GAAG,GAAG,CAAC,MAAM,CAAC,CAkBhJ;AAED,mGAAmG;AACnG,wBAAgB,cAAc,CAAC,UAAU,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAW9F;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,0GAA0G;AAC1G,wBAAsB,aAAa,CAAC,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,IAAmB,EAAE,OAAO,EAAE,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;CAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAOjM;AAED,2HAA2H;AAC3H,wBAAsB,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,IAAmB,EAAE,YAAqC,EAAE,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAO,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,CAQ3R;AAED,MAAM,WAAW,WAAW;IAAG,SAAS,EAAE,WAAW,GAAG,UAAU,CAAC;IAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AAC5G,MAAM,WAAW,WAAW;IAAG,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE;AAEtF;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,IAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;CAAO,GAAG;IAAE,IAAI,IAAI,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;CAAE,CA8ExQ"}
package/dist/transfer.js CHANGED
@@ -1,4 +1,4 @@
1
- import { exportBrowserProject, importBrowserProject } from "@volter/browser-runtime";
1
+ import { tarTree, untarTree } from "@volter/browser-runtime/browser-tar.js";
2
2
  /** Directory names that a lockfile or a build reproduces; never archived, never mirrored. */
3
3
  export const DEPENDENCY_DIRECTORIES = Object.freeze(["node_modules", ".venv", "venv", "__pycache__", ".pglite", ".cache", ".turbo", ".next"]);
4
4
  /** Every dependency directory under `root`, at any depth, as absolute paths. */
@@ -62,7 +62,7 @@ export function installCommand(filesystem, root) {
62
62
  export async function moveWorkspace(local, remote, { root = "/workspace", exclude } = {}) {
63
63
  const started = Date.now();
64
64
  const excluded = new Set(exclude ?? dependencyExclusions(local, root));
65
- const archive = await exportBrowserProject(local, { format: "zip", root, excludePaths: excluded });
65
+ const archive = await tarTree(local, root, root.split("/").filter(Boolean).pop() ?? "workspace", { exclude: excluded });
66
66
  const imported = await remote.files.import(archive.bytes, { root, replace: true });
67
67
  if (imported.integrity !== archive.integrity)
68
68
  throw new Error("the sandbox's import did not match the export");
@@ -72,8 +72,9 @@ export async function moveWorkspace(local, remote, { root = "/workspace", exclud
72
72
  export async function returnWorkspace(remote, local, { root = "/workspace", excludeNames = DEPENDENCY_DIRECTORIES } = {}) {
73
73
  const started = Date.now();
74
74
  const exclude = excludeNames.map((name) => (root === "/" ? `/${name}` : `${root}/${name}`));
75
- const archive = await remote.files.export(root, "zip", { exclude });
76
- const restored = await importBrowserProject(local, archive.bytes, { root, replace: false });
75
+ const archive = await remote.files.export(root, "tar", { exclude });
76
+ local.mkdirSync(root, { recursive: true });
77
+ const restored = await untarTree(local, root, archive.bytes, { replace: false, strip: 1 });
77
78
  if (archive.integrity && restored.integrity !== archive.integrity)
78
79
  throw new Error("the local import did not match the sandbox's export");
79
80
  return { bytes: archive.bytes.byteLength, entries: archive.entries, integrity: restored.integrity, ms: Date.now() - started };
@@ -127,14 +128,14 @@ export function mirrorWorkspace(local, remote, { root = "/workspace", exclude, o
127
128
  draining = false;
128
129
  })();
129
130
  };
130
- const onLocalChange = (path) => {
131
+ const onLocalChange = async (path) => {
131
132
  if (!inScope(path))
132
133
  return;
133
134
  let bytes;
134
135
  try {
135
136
  if (!local.statSync(path).isFile())
136
137
  return;
137
- bytes = local.readFileSync(path);
138
+ bytes = await local.readFile(path);
138
139
  }
139
140
  catch {
140
141
  return;
@@ -167,7 +168,7 @@ export function mirrorWorkspace(local, remote, { root = "/workspace", exclude, o
167
168
  // A write that changes nothing is an echo too: the move that preceded this
168
169
  // mirror, or a tool rewriting a file byte for byte.
169
170
  try {
170
- if (local.statSync(path).isFile() && digestOf(local.readFileSync(path)) === digest) {
171
+ if (local.statSync(path).isFile() && digestOf(await local.readFile(path)) === digest) {
171
172
  stats.suppressed += 1;
172
173
  remember(path, digest);
173
174
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"transfer.js","sourceRoot":"","sources":["../src/transfer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transfer.js","sourceRoot":"","sources":["../src/transfer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volter/browser-sandboxes",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "description": "The hosted backend's control-plane side: a remote runtime client with the in-page runtime's method names, a sandbox manager with Docker and Fly Machines providers, a control plane a page can call, and an MCP server",
5
5
  "license": "MIT",
6
6
  "repository": {