@amalgm/shell 0.1.164-preview.37267982944 → 0.1.164-preview.37556571066

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 CHANGED
@@ -144,9 +144,10 @@ waiting out its delay. A failed update returns to the last good release.
144
144
  Portable mode needs an external foreground owner; it does not install an OS service.
145
145
 
146
146
  Managed npm delivery uses `.github/workflows/publish-package.yml` after the
147
- exact main/preview owner checks pass. The occurrence generates a unique
147
+ exact `main` owner checks pass. The occurrence generates a unique
148
148
  prerelease version and records its source SHA; it reruns the owner suite, packs
149
149
  once, and installs that tarball on Linux, macOS and Windows before publication.
150
+ `preview` has no checks: a push to it builds, packs and publishes directly.
150
151
  The `candidate-main`/`candidate-preview` tags are release-assembly inputs and
151
152
  never select installed runtimes. `package.json` declares this owner's gates,
152
153
  CLI probes, peer-only exports and lifecycle permissions. The standalone runner
@@ -171,7 +172,7 @@ The release workflow also exercises the packed Shell authorization/Chat path.
171
172
  The published `npm-shrinkwrap.json` fixes the complete dependency tree, and
172
173
  that examination rejects any installed direct dependency that differs from it.
173
174
 
174
- Every main/preview push and pull request requests the package and binding gate
175
+ Every main push and pull request requests the package and binding gate
175
176
  followed by native OS service and Watch examinations on Linux, macOS and
176
177
  Windows. Passing those native jobs certifies the same create, change, rename, move, delete,
177
178
  `.git` appearance/disappearance, and root-address mutations on every supported
package/dist/pty-host.js CHANGED
@@ -10,6 +10,10 @@ import { WebSocket, WebSocketServer } from "ws";
10
10
  // Terminal drains must finish inside the runtime's 25-second shutdown grace.
11
11
  const TERMINAL_HANGUP_GRACE_MS = 1_000;
12
12
  const TERMINAL_FORCED_EXIT_MS = 5_000;
13
+ /** Output a terminal keeps while nobody watches, for whoever attaches next. */
14
+ const UNSEEN_OUTPUT_CHARS = 64 * 1024;
15
+ /** A watcher this far behind holds its terminal until it has caught up halfway. */
16
+ const WATCHER_BEHIND_CHARS = 1024 * 1024;
13
17
  /** Native effects for Core's PTY law; Engine reference local-gateway.js:33-47,333-346,777-904. */
14
18
  export function createPtyHost(config) {
15
19
  ensureSpawnHelperExecutable();
@@ -40,6 +44,11 @@ export function createPtyHost(config) {
40
44
  });
41
45
  const api = createPtyApi(manager);
42
46
  const wss = new WebSocketServer({ noServer: true });
47
+ /** The process behind a session, by the pid Core reports for it. */
48
+ const terminalOf = (sessionId) => {
49
+ const pid = manager.list().find((session) => session.id === sessionId)?.pid;
50
+ return pid === undefined ? undefined : [...terminals].find((terminal) => terminal.process.pid === pid);
51
+ };
43
52
  return {
44
53
  manager,
45
54
  mount: {
@@ -66,7 +75,7 @@ export function createPtyHost(config) {
66
75
  }
67
76
  const pathname = new URL(req.url ?? "/", "http://pty.local").pathname;
68
77
  const sessionId = pathname.match(/^\/pty\/([^/]+)\/connect$/)?.[1] ?? "";
69
- manager.attach(sessionId, adaptPeer(ws));
78
+ manager.attach(sessionId, adaptPeer(ws, terminalOf(sessionId)));
70
79
  });
71
80
  },
72
81
  },
@@ -110,8 +119,31 @@ function adaptProcess(proc) {
110
119
  // A process may have completed before native teardown reaches it.
111
120
  }
112
121
  };
122
+ // Core subscribes one listener per attached peer. Output nobody receives is
123
+ // kept, so a browser that attaches after the shell printed its prompt, as a
124
+ // remote one always does, still sees it.
125
+ const watchers = new Set();
126
+ let unseen = "";
127
+ proc.onData((data) => {
128
+ if (watchers.size > 0) {
129
+ for (const watcher of watchers)
130
+ watcher(data);
131
+ return;
132
+ }
133
+ unseen += data;
134
+ // Trimming only past twice the limit keeps the cost per character constant.
135
+ if (unseen.length > 2 * UNSEEN_OUTPUT_CHARS)
136
+ unseen = lastOutput(unseen);
137
+ });
138
+ // While any watcher is behind, the terminal stops reading, and the program
139
+ // waits on its own output as it would on a slow line, instead of the host
140
+ // queueing that output in memory. Keystrokes, Ctrl-C among them, still go in.
141
+ // A ConPTY is never held: before Windows 11 24H2 its close waits for its
142
+ // output to drain, and a held terminal's never would, freezing the runtime.
143
+ const holders = new Set();
113
144
  const observation = proc.onExit(() => {
114
145
  finished = true;
146
+ holders.clear();
115
147
  clearTimeout(force);
116
148
  // ConPTY's native transport has its own lifetime after the program exits.
117
149
  if (platform() === "win32")
@@ -134,10 +166,30 @@ function adaptProcess(proc) {
134
166
  write: (data) => proc.write(data),
135
167
  resize: (cols, rows) => proc.resize(cols, rows),
136
168
  kill: stop,
137
- onData: (listener) => proc.onData(listener),
169
+ onData: (listener) => {
170
+ const watcher = (data) => listener(data);
171
+ if (watchers.size === 0 && unseen) {
172
+ const missed = lastOutput(unseen);
173
+ unseen = "";
174
+ watcher(missed);
175
+ }
176
+ watchers.add(watcher);
177
+ return { dispose: () => { watchers.delete(watcher); } };
178
+ },
138
179
  onExit: (listener) => proc.onExit(listener),
139
180
  },
140
181
  exited,
182
+ hold(watcher) {
183
+ if (platform() === "win32" || stopped || finished || holders.has(watcher))
184
+ return;
185
+ holders.add(watcher);
186
+ if (holders.size === 1)
187
+ proc.pause();
188
+ },
189
+ release(watcher) {
190
+ if (holders.delete(watcher) && holders.size === 0)
191
+ proc.resume();
192
+ },
141
193
  async drain() {
142
194
  stop();
143
195
  let deadline;
@@ -152,11 +204,31 @@ function adaptProcess(proc) {
152
204
  },
153
205
  };
154
206
  }
155
- function adaptPeer(ws) {
207
+ /** The last UNSEEN_OUTPUT_CHARS of output, from a line's start when one is in
208
+ * reach, so a replay never begins inside an escape sequence or a character. */
209
+ function lastOutput(output) {
210
+ if (output.length <= UNSEEN_OUTPUT_CHARS)
211
+ return output;
212
+ const kept = output.slice(-UNSEEN_OUTPUT_CHARS);
213
+ const line = kept.indexOf("\n");
214
+ return line < 0 ? kept : kept.slice(line + 1);
215
+ }
216
+ function adaptPeer(ws, terminal) {
217
+ // Output handed to ws that has not yet reached the network.
218
+ let unsent = 0;
219
+ ws.once("close", () => terminal?.release(ws));
156
220
  return {
157
221
  send(data) {
158
- if (ws.readyState === WebSocket.OPEN)
159
- ws.send(data);
222
+ if (ws.readyState !== WebSocket.OPEN)
223
+ return;
224
+ unsent += data.length;
225
+ if (unsent > WATCHER_BEHIND_CHARS)
226
+ terminal?.hold(ws);
227
+ ws.send(data, () => {
228
+ unsent -= data.length;
229
+ if (unsent <= WATCHER_BEHIND_CHARS / 2)
230
+ terminal?.release(ws);
231
+ });
160
232
  },
161
233
  close(code, reason) {
162
234
  ws.close(code, reason);
@@ -1 +1 @@
1
- {"version":3,"file":"pty-host.js","sourceRoot":"","sources":["../src/pty-host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pty-host.js","sourceRoot":"","sources":["../src/pty-host.ts"],"names":[],"mappings":"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"}
@@ -19,13 +19,15 @@ export interface WireClientOptions {
19
19
  readonly silenceTimeoutMs?: number;
20
20
  }
21
21
  /** One authenticated production wire. It carries Live's request/reply frames
22
- * and, when a gateway port is supplied, the ordinary remote HTTP tunnel. */
22
+ * and, when a gateway port is supplied, the ordinary remote HTTP tunnel and
23
+ * the browser WebSockets relayed to that gateway. */
23
24
  export declare class WireClient {
24
25
  private instance;
25
26
  private boot;
26
27
  private readonly options;
27
28
  private readonly pending;
28
29
  private readonly httpRequests;
30
+ private readonly sockets;
29
31
  /** Every frame a socket carries leaves through its one outbox. */
30
32
  private readonly outboxes;
31
33
  private silence;
@@ -3,6 +3,7 @@ import { addAbortListener } from 'node:events';
3
3
  import { WebSocket } from "ws";
4
4
  import { binaryFrameHeader } from "./wire-binary.js";
5
5
  import { WireOutbox } from "./wire-outbox.js";
6
+ import { WireSocketRelay } from "./wire-socket-relay.js";
6
7
  export class WireRequestError extends Error {
7
8
  code;
8
9
  status;
@@ -19,13 +20,18 @@ const GATEWAY_HEARTBEAT_MS = 30_000;
19
20
  const DEFAULT_SILENCE_TIMEOUT_MS = GATEWAY_HEARTBEAT_MS * 2.5;
20
21
  const HTTP_CHUNK_BYTES = 64 * 1024;
21
22
  /** One authenticated production wire. It carries Live's request/reply frames
22
- * and, when a gateway port is supplied, the ordinary remote HTTP tunnel. */
23
+ * and, when a gateway port is supplied, the ordinary remote HTTP tunnel and
24
+ * the browser WebSockets relayed to that gateway. */
23
25
  export class WireClient {
24
26
  instance = randomUUID();
25
27
  boot = Date.now();
26
28
  options;
27
29
  pending = new Map();
28
30
  httpRequests = new Map();
31
+ sockets = new WireSocketRelay({
32
+ target: () => ({ port: this.options.runtimeGatewayPort, token: this.options.runtimeToken }),
33
+ outbox: (source) => this.outbox(source),
34
+ });
29
35
  /** Every frame a socket carries leaves through its one outbox. */
30
36
  outboxes = new WeakMap();
31
37
  silence = null;
@@ -124,6 +130,9 @@ export class WireClient {
124
130
  reject(error);
125
131
  }
126
132
  this.invalidateSocket(socket, error, { terminate: false });
133
+ // A newer wire may have taken this one's place while it was closing,
134
+ // and invalidation then passes it by; its relayed sockets end anyway.
135
+ this.sockets.release(socket);
127
136
  });
128
137
  }).finally(() => {
129
138
  this.opening = null;
@@ -343,6 +352,7 @@ export class WireClient {
343
352
  if (request.source === source)
344
353
  request.abort.abort();
345
354
  }
355
+ this.sockets.release(source);
346
356
  if (options.notify !== false && wasAcknowledged) {
347
357
  for (const listener of this.disconnectListeners)
348
358
  listener(error);
@@ -390,6 +400,8 @@ export class WireClient {
390
400
  request.abort.abort();
391
401
  return;
392
402
  }
403
+ if (this.sockets.receive(frame, source))
404
+ return;
393
405
  const requestId = typeof frame.request_id === "string" ? frame.request_id : "";
394
406
  const request = requestId ? this.pending.get(requestId) : undefined;
395
407
  if (!request) {
@@ -1 +1 @@
1
- {"version":3,"file":"wire-client.js","sourceRoot":"","sources":["../src/wire-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wire-client.js","sourceRoot":"","sources":["../src/wire-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Browser WebSockets the gateway relays to this machine: remote terminals,
3
+ * preview hot reload and app sockets. The gateway names each one by conn_id
4
+ * and speaks five frames for it (gateway wire/frames.ts):
5
+ *
6
+ * gateway → runtime ws_open {conn_id, path, headers, target_port}
7
+ * runtime → gateway ws_opened {conn_id, protocol?}
8
+ * both directions ws_data {conn_id, data_b64, binary?}
9
+ * both directions ws_close {conn_id, code?, reason?}
10
+ * runtime → gateway ws_error {conn_id, message}
11
+ *
12
+ * The gateway ends a socket on ws_error with 1011 and ignores whatever
13
+ * follows, so ws_error reports only a socket that failed once dialed. An
14
+ * open refused before dialing answers with ws_close alone, carrying the
15
+ * refusal's own code.
16
+ *
17
+ * Every relayed socket dials the runtime gateway. Once hello advertises
18
+ * runtime_gateway_port, the gateway names that port in `target_port` and the
19
+ * local gateway's own routes in `path`, and the local gateway admits the
20
+ * upgrade by the runtime token stamped here. A frame naming any other port
21
+ * was addressed under an older advertisement, or before any, when the path
22
+ * was a dev server's own; it is refused rather than guessed at.
23
+ *
24
+ * A relayed socket belongs to the wire that opened it: its frames leave
25
+ * through that wire's outbox in order, and it ends when that wire ends.
26
+ *
27
+ * Engine reference: packages/amalgm/lib/tunnel-events.js openPreviewSocket.
28
+ */
29
+ import { WebSocket } from "ws";
30
+ import type { WireOutbox } from "./wire-outbox.js";
31
+ type Frame = Record<string, unknown> & {
32
+ type: string;
33
+ };
34
+ export declare const MAX_RELAYED_SOCKETS = 256;
35
+ export interface WireSocketRelayOptions {
36
+ /** The runtime gateway this machine advertises now, and its admission token. */
37
+ readonly target: () => {
38
+ readonly port?: number;
39
+ readonly token?: string;
40
+ };
41
+ /** The one outbox of the wire a frame arrived on. */
42
+ readonly outbox: (source: WebSocket) => Pick<WireOutbox, "send" | "prompt">;
43
+ readonly maxSockets?: number;
44
+ }
45
+ export declare class WireSocketRelay {
46
+ #private;
47
+ constructor(options: WireSocketRelayOptions);
48
+ /** Take one gateway frame when it belongs to a relayed socket. */
49
+ receive(frame: Frame, source: WebSocket): boolean;
50
+ /** The wire is gone: every socket it opened ends with it, unannounced,
51
+ * because nothing is left to carry the announcement. */
52
+ release(source: WebSocket): void;
53
+ }
54
+ export {};
@@ -0,0 +1,242 @@
1
+ /**
2
+ * Browser WebSockets the gateway relays to this machine: remote terminals,
3
+ * preview hot reload and app sockets. The gateway names each one by conn_id
4
+ * and speaks five frames for it (gateway wire/frames.ts):
5
+ *
6
+ * gateway → runtime ws_open {conn_id, path, headers, target_port}
7
+ * runtime → gateway ws_opened {conn_id, protocol?}
8
+ * both directions ws_data {conn_id, data_b64, binary?}
9
+ * both directions ws_close {conn_id, code?, reason?}
10
+ * runtime → gateway ws_error {conn_id, message}
11
+ *
12
+ * The gateway ends a socket on ws_error with 1011 and ignores whatever
13
+ * follows, so ws_error reports only a socket that failed once dialed. An
14
+ * open refused before dialing answers with ws_close alone, carrying the
15
+ * refusal's own code.
16
+ *
17
+ * Every relayed socket dials the runtime gateway. Once hello advertises
18
+ * runtime_gateway_port, the gateway names that port in `target_port` and the
19
+ * local gateway's own routes in `path`, and the local gateway admits the
20
+ * upgrade by the runtime token stamped here. A frame naming any other port
21
+ * was addressed under an older advertisement, or before any, when the path
22
+ * was a dev server's own; it is refused rather than guessed at.
23
+ *
24
+ * A relayed socket belongs to the wire that opened it: its frames leave
25
+ * through that wire's outbox in order, and it ends when that wire ends.
26
+ *
27
+ * Engine reference: packages/amalgm/lib/tunnel-events.js openPreviewSocket.
28
+ */
29
+ import { headerValue, HOP_BY_HOP_HEADERS, RUNTIME_TOKEN_HEADER, stripHeaders, WS_CLOSE_POLICY_VIOLATION, WS_CLOSE_UPSTREAM_FAILURE, WS_HANDSHAKE_HEADERS, } from "@amalgm/core/transport";
30
+ import { WebSocket } from "ws";
31
+ export const MAX_RELAYED_SOCKETS = 256;
32
+ /** Frame bytes one socket may hold unsent on the wire before it stops reading. */
33
+ const RELAY_HIGH_WATER_BYTES = 1024 * 1024;
34
+ /** The gateway's cap on one browser socket message (gateway limits.ts
35
+ * BROWSER_SOCKET_FRAME_BYTES), held both ways. In base64 such a message stays
36
+ * well inside the wire's 100 MiB frame cap, so no one socket can end the wire. */
37
+ const RELAYED_MESSAGE_BYTES = 16 * 1024 * 1024;
38
+ /** ws refuses a longer close reason. */
39
+ const MAX_CLOSE_REASON_BYTES = 123;
40
+ const WS_CLOSE_NORMAL = 1000;
41
+ const WS_CLOSE_TRY_AGAIN_LATER = 1013;
42
+ /** The browser's own hop and handshake stay behind, and admission is this
43
+ * machine's runtime token alone, never one a frame carries. */
44
+ const NOT_FORWARDED = new Set([
45
+ ...HOP_BY_HOP_HEADERS,
46
+ ...WS_HANDSHAKE_HEADERS,
47
+ RUNTIME_TOKEN_HEADER,
48
+ ]);
49
+ /** A frame whose failure is its wire's own end, which releases its sockets. */
50
+ const unobserved = () => { };
51
+ export class WireSocketRelay {
52
+ #options;
53
+ #sockets = new Map();
54
+ constructor(options) {
55
+ this.#options = options;
56
+ }
57
+ /** Take one gateway frame when it belongs to a relayed socket. */
58
+ receive(frame, source) {
59
+ if (frame.type === "ws_open")
60
+ this.#open(frame, source);
61
+ else if (frame.type === "ws_data")
62
+ this.#deliver(frame, source);
63
+ else if (frame.type === "ws_close")
64
+ this.#close(frame, source);
65
+ else
66
+ return false;
67
+ return true;
68
+ }
69
+ /** The wire is gone: every socket it opened ends with it, unannounced,
70
+ * because nothing is left to carry the announcement. */
71
+ release(source) {
72
+ for (const [connId, socket] of this.#sockets) {
73
+ if (socket.source !== source)
74
+ continue;
75
+ this.#sockets.delete(connId);
76
+ socket.silent = true;
77
+ socket.upstream.terminate();
78
+ }
79
+ }
80
+ #open(frame, source) {
81
+ const connId = typeof frame.conn_id === "string" ? frame.conn_id : "";
82
+ if (!connId || this.#sockets.has(connId))
83
+ return;
84
+ const refuse = (code, reason) => {
85
+ this.#options.outbox(source)
86
+ .send([JSON.stringify({ type: "ws_close", conn_id: connId, code, reason })], false, unobserved);
87
+ };
88
+ const { port, token } = this.#options.target();
89
+ if (!port) {
90
+ refuse(WS_CLOSE_UPSTREAM_FAILURE, "runtime gateway unavailable");
91
+ return;
92
+ }
93
+ if (Number(frame.target_port) !== port) {
94
+ refuse(WS_CLOSE_POLICY_VIOLATION, "relayed socket names another port");
95
+ return;
96
+ }
97
+ const path = typeof frame.path === "string" ? frame.path : "";
98
+ // Only a path from the root keeps 127.0.0.1 the authority of the address.
99
+ if (!path.startsWith("/")) {
100
+ refuse(WS_CLOSE_POLICY_VIOLATION, "relayed socket path must start with /");
101
+ return;
102
+ }
103
+ if (this.#sockets.size >= (this.#options.maxSockets ?? MAX_RELAYED_SOCKETS)) {
104
+ refuse(WS_CLOSE_TRY_AGAIN_LATER, "too many relayed sockets");
105
+ return;
106
+ }
107
+ const offered = (frame.headers && typeof frame.headers === "object" ? frame.headers : {});
108
+ const protocols = headerValue(offered, "sec-websocket-protocol")
109
+ .split(",").map((protocol) => protocol.trim()).filter(Boolean);
110
+ const headers = stripHeaders(offered, NOT_FORWARDED);
111
+ if (token)
112
+ headers[RUNTIME_TOKEN_HEADER] = token;
113
+ const address = `ws://127.0.0.1:${port}${path}`;
114
+ const options = { headers, maxPayload: RELAYED_MESSAGE_BYTES };
115
+ let upstream;
116
+ try {
117
+ upstream = protocols.length > 0
118
+ ? new WebSocket(address, protocols, options)
119
+ : new WebSocket(address, options);
120
+ }
121
+ catch (error) {
122
+ refuse(WS_CLOSE_UPSTREAM_FAILURE, error instanceof Error ? error.message : String(error));
123
+ return;
124
+ }
125
+ const socket = { source, upstream, early: [], unsent: 0, silent: false, failed: false };
126
+ this.#sockets.set(connId, socket);
127
+ upstream.on("open", () => {
128
+ if (socket.silent)
129
+ return;
130
+ // The gateway holds the browser's messages until this arrives, and no
131
+ // ws_data for this socket can be queued ahead of it.
132
+ this.#options.outbox(source).prompt(JSON.stringify({
133
+ type: "ws_opened",
134
+ conn_id: connId,
135
+ ...(upstream.protocol ? { protocol: upstream.protocol } : {}),
136
+ }));
137
+ for (const { data, binary } of socket.early.splice(0))
138
+ upstream.send(data, { binary });
139
+ });
140
+ upstream.on("message", (data, isBinary) => {
141
+ this.#forward(socket, {
142
+ type: "ws_data",
143
+ conn_id: connId,
144
+ data_b64: rawBytes(data).toString("base64"),
145
+ binary: isBinary,
146
+ });
147
+ });
148
+ upstream.on("error", (error) => {
149
+ if (socket.failed)
150
+ return;
151
+ socket.failed = true;
152
+ this.#forward(socket, { type: "ws_error", conn_id: connId, message: error.message || "relayed socket failed" });
153
+ // ws follows an error with close; terminating makes that certain.
154
+ upstream.terminate();
155
+ });
156
+ upstream.on("close", (code, reason) => {
157
+ if (this.#sockets.get(connId) !== socket)
158
+ return;
159
+ this.#sockets.delete(connId);
160
+ this.#forward(socket, { type: "ws_close", conn_id: connId, code, reason: reason.toString("utf8") });
161
+ });
162
+ }
163
+ #deliver(frame, source) {
164
+ const socket = this.#owned(frame, source);
165
+ if (!socket || socket.silent)
166
+ return;
167
+ const bytes = Buffer.from(typeof frame.data_b64 === "string" ? frame.data_b64 : "", "base64");
168
+ // The gateway stamps every message's kind and reads a missing flag as
169
+ // text (routes/relay.ts `Boolean(frame.binary)`); both ends read it alike.
170
+ const binary = frame.binary === true;
171
+ const data = binary ? bytes : bytes.toString("utf8");
172
+ if (socket.upstream.readyState === WebSocket.CONNECTING)
173
+ socket.early.push({ data, binary });
174
+ else if (socket.upstream.readyState === WebSocket.OPEN)
175
+ socket.upstream.send(data, { binary });
176
+ }
177
+ #close(frame, source) {
178
+ const socket = this.#owned(frame, source);
179
+ if (!socket || socket.silent)
180
+ return;
181
+ // The gateway sends this once its browser has gone, so it hears nothing more.
182
+ socket.silent = true;
183
+ socket.early.length = 0;
184
+ if (socket.upstream.readyState === WebSocket.CONNECTING)
185
+ socket.upstream.terminate();
186
+ else
187
+ socket.upstream.close(closeCode(frame.code), closeReason(frame.reason));
188
+ }
189
+ #owned(frame, source) {
190
+ const socket = this.#sockets.get(typeof frame.conn_id === "string" ? frame.conn_id : "");
191
+ return socket?.source === source ? socket : undefined;
192
+ }
193
+ /** Queue one frame behind the socket's earlier ones. A socket whose frames
194
+ * have not left stops reading, so a fast local server waits for the uplink
195
+ * instead of queueing ahead of everyone else on the wire. */
196
+ #forward(socket, frame) {
197
+ if (socket.silent)
198
+ return;
199
+ const message = JSON.stringify(frame);
200
+ socket.unsent += message.length;
201
+ if (socket.unsent > RELAY_HIGH_WATER_BYTES)
202
+ socket.upstream.pause();
203
+ this.#options.outbox(socket.source).send([message], false, () => {
204
+ socket.unsent -= message.length;
205
+ if (socket.upstream.isPaused && socket.unsent <= RELAY_HIGH_WATER_BYTES / 2)
206
+ socket.upstream.resume();
207
+ });
208
+ }
209
+ }
210
+ function rawBytes(data) {
211
+ if (Buffer.isBuffer(data))
212
+ return data;
213
+ if (data instanceof ArrayBuffer)
214
+ return Buffer.from(data);
215
+ return Buffer.concat([...data]);
216
+ }
217
+ /** The codes ws will put in a close frame. 1005 and 1006 only describe a
218
+ * close that carried no code, so they, like any other, become a normal close. */
219
+ function closeCode(value) {
220
+ const code = Number(value);
221
+ if (!Number.isInteger(code))
222
+ return WS_CLOSE_NORMAL;
223
+ if (code >= 1000 && code <= 1014 && code !== 1004 && code !== 1005 && code !== 1006)
224
+ return code;
225
+ return code >= 3000 && code <= 4999 ? code : WS_CLOSE_NORMAL;
226
+ }
227
+ /** At most MAX_CLOSE_REASON_BYTES of UTF-8, cut between characters. */
228
+ function closeReason(value) {
229
+ const text = typeof value === "string" ? value : "";
230
+ if (Buffer.byteLength(text, "utf8") <= MAX_CLOSE_REASON_BYTES)
231
+ return text;
232
+ let kept = "";
233
+ let bytes = 0;
234
+ for (const character of text) {
235
+ bytes += Buffer.byteLength(character, "utf8");
236
+ if (bytes > MAX_CLOSE_REASON_BYTES)
237
+ break;
238
+ kept += character;
239
+ }
240
+ return kept;
241
+ }
242
+ //# sourceMappingURL=wire-socket-relay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wire-socket-relay.js","sourceRoot":"","sources":["../src/wire-socket-relay.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,26 @@
1
1
  {
2
2
  "name": "@amalgm/shell",
3
- "version": "0.1.164-preview.37267982944",
3
+ "version": "0.1.164-preview.37556571066",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@amalgm/shell",
9
- "version": "0.1.164-preview.37267982944",
9
+ "version": "0.1.164-preview.37556571066",
10
10
  "license": "UNLICENSED",
11
11
  "dependencies": {
12
12
  "@amalgm/agents": "0.2.3-preview.35795493380",
13
13
  "@amalgm/apps": "0.1.3-preview.35541603008",
14
14
  "@amalgm/automations": "0.4.4-preview.35542563246",
15
- "@amalgm/browser": "0.1.2-preview.37266617347",
15
+ "@amalgm/browser": "0.1.2-preview.37274001001",
16
16
  "@amalgm/channels": "0.1.5-preview.36777776173",
17
17
  "@amalgm/chat": "0.2.9-preview.36777100786",
18
18
  "@amalgm/core": "0.5.1-preview.35541371724",
19
19
  "@amalgm/live": "0.2.81-preview.36771680084",
20
- "@amalgm/tools": "0.1.7-preview.35541586993",
20
+ "@amalgm/tools": "0.1.7-preview.37540307949",
21
21
  "@anthropic-ai/claude-agent-sdk": "^0.3.285",
22
22
  "@homebridge/node-pty-prebuilt-multiarch": "0.13.1",
23
- "@modelcontextprotocol/sdk": "1.30.0",
23
+ "@modelcontextprotocol/sdk": "1.32.1",
24
24
  "@napi-rs/keyring": "1.3.0",
25
25
  "@tufjs/models": "5.0.0",
26
26
  "better-sqlite3": "12.11.1",
@@ -143,9 +143,9 @@
143
143
  }
144
144
  },
145
145
  "node_modules/@amalgm/browser": {
146
- "version": "0.1.2-preview.37266617347",
147
- "resolved": "https://registry.npmjs.org/@amalgm/browser/-/browser-0.1.2-preview.37266617347.tgz",
148
- "integrity": "sha512-w/NNGm0GxUyjUe8KX5+Gwb/i8CPQcDSERC/j/MABkoVIgzngl3ttN/dH6NBaUiWkpDhp9nNk5u3QnYRBndRi/Q==",
146
+ "version": "0.1.2-preview.37274001001",
147
+ "resolved": "https://registry.npmjs.org/@amalgm/browser/-/browser-0.1.2-preview.37274001001.tgz",
148
+ "integrity": "sha512-vWLwuBg2Lip0h+kBSBwrpoNJ36W7MHWXnZr9L5ODbySLONR7tMrhIoRaitZlqicMMLzeTzx4TppMyLjY30TXCg==",
149
149
  "license": "UNLICENSED",
150
150
  "dependencies": {
151
151
  "@amalgm/core": "0.5.1-preview.35541371724",
@@ -230,13 +230,13 @@
230
230
  }
231
231
  },
232
232
  "node_modules/@amalgm/tools": {
233
- "version": "0.1.7-preview.35541586993",
234
- "resolved": "https://registry.npmjs.org/@amalgm/tools/-/tools-0.1.7-preview.35541586993.tgz",
235
- "integrity": "sha512-7bu48BIOZi38PaVA4AqieX9CngwKjZ+9W0Gw8htv08LvO3P5LCRMlUtAZWbifVzTiPF0Z+dugryBKz8cx5b7Tw==",
233
+ "version": "0.1.7-preview.37540307949",
234
+ "resolved": "https://registry.npmjs.org/@amalgm/tools/-/tools-0.1.7-preview.37540307949.tgz",
235
+ "integrity": "sha512-l6ctULZE5AUkf5uY44tp0/lc4JAHRv8swPe3GCKrToBUcsx3h2wlzJNGC96IHqaJioolH4NHo0XTG+N5uvDPuA==",
236
236
  "license": "UNLICENSED",
237
237
  "dependencies": {
238
238
  "@amalgm/core": "0.5.1-preview.35541371724",
239
- "@modelcontextprotocol/sdk": "1.30.0",
239
+ "@modelcontextprotocol/sdk": "1.32.1",
240
240
  "better-sqlite3": "^12.6.2"
241
241
  },
242
242
  "bin": {
@@ -517,9 +517,10 @@
517
517
  }
518
518
  },
519
519
  "node_modules/@modelcontextprotocol/sdk": {
520
- "version": "1.30.0",
521
- "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.30.0.tgz",
522
- "integrity": "sha512-xKd8OIzlqNzcqcNumGAa6g+PW2kjD5vrpcKOnfldAUPP3j7lnqMPwlTXQm8gF+UwH72z0lqaRbjr9hqGz0eITA==",
520
+ "version": "1.32.1",
521
+ "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.32.1.tgz",
522
+ "integrity": "sha512-2DdE+SJDtzLEEWzY1ZjY7Q+VcPhcV1KisD3zI4u0XZyktsjHum1mwbMI+JaulUBi2OZk+KJAi2uPXzxichPkdw==",
523
+ "license": "MIT",
523
524
  "dependencies": {
524
525
  "@hono/node-server": "^1.19.9 || ^2.0.5",
525
526
  "ajv": "^8.17.1",
@@ -884,9 +885,9 @@
884
885
  }
885
886
  },
886
887
  "node_modules/@opencode-ai/sdk": {
887
- "version": "1.18.34",
888
- "resolved": "https://registry.npmjs.org/@opencode-ai/sdk/-/sdk-1.18.34.tgz",
889
- "integrity": "sha512-R9QWUpcngtdQ6FCixz7NC6n1WsSho6CEuRUzYHz/CzZcp3miSklDzXkm0oDwXVCnuEu+ANoeM0f6RDp51kOMzQ==",
888
+ "version": "1.18.35",
889
+ "resolved": "https://registry.npmjs.org/@opencode-ai/sdk/-/sdk-1.18.35.tgz",
890
+ "integrity": "sha512-cp3IFKwnqgeUbflrrwz/WmG/dALVyM2k0LA1aqCvWe58Tu4utNTNw+BwZzQEML1HxDaLrIB+Fc4Ztb8S16Ijcw==",
890
891
  "license": "MIT",
891
892
  "dependencies": {
892
893
  "cross-spawn": "7.0.6"
@@ -4001,15 +4002,20 @@
4001
4002
  }
4002
4003
  },
4003
4004
  "node_modules/proxy-addr": {
4004
- "version": "2.0.7",
4005
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
4006
- "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
4005
+ "version": "2.0.8",
4006
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.8.tgz",
4007
+ "integrity": "sha512-5nnx0yGyVUcY6t9RnWcARWtwT9F1D8O9rt08htPvnd49W1IgZtmLkhu9WfMzQj1cFxjHIO6connUNVW5k7AVyQ==",
4008
+ "license": "MIT",
4007
4009
  "dependencies": {
4008
4010
  "forwarded": "0.2.0",
4009
4011
  "ipaddr.js": "1.9.1"
4010
4012
  },
4011
4013
  "engines": {
4012
4014
  "node": ">= 0.10"
4015
+ },
4016
+ "funding": {
4017
+ "type": "opencollective",
4018
+ "url": "https://opencollective.com/express"
4013
4019
  }
4014
4020
  },
4015
4021
  "node_modules/pump": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amalgm/shell",
3
- "version": "0.1.164-preview.37267982944",
3
+ "version": "0.1.164-preview.37556571066",
4
4
  "description": "The Amalgm runtime host assembled from the published @amalgm SDK capabilities.",
5
5
  "type": "module",
6
6
  "private": false,
@@ -50,6 +50,7 @@
50
50
  "release:prepare": "node scripts/release/package.mjs prepare",
51
51
  "release:examine": "node scripts/release/package.mjs examine",
52
52
  "release:publish": "node scripts/release/package.mjs publish",
53
+ "release:audit": "node scripts/release/package.mjs audit",
53
54
  "release:runtime": "node scripts/release/runtime.mjs",
54
55
  "test:release": "node --test scripts/release/*.test.mjs",
55
56
  "resolve": "node scripts/release/resolve.mjs"
@@ -64,15 +65,15 @@
64
65
  "@amalgm/agents": "0.2.3-preview.35795493380",
65
66
  "@amalgm/apps": "0.1.3-preview.35541603008",
66
67
  "@amalgm/automations": "0.4.4-preview.35542563246",
67
- "@amalgm/browser": "0.1.2-preview.37266617347",
68
+ "@amalgm/browser": "0.1.2-preview.37274001001",
68
69
  "@amalgm/channels": "0.1.5-preview.36777776173",
69
70
  "@amalgm/chat": "0.2.9-preview.36777100786",
70
71
  "@amalgm/core": "0.5.1-preview.35541371724",
71
72
  "@amalgm/live": "0.2.81-preview.36771680084",
72
- "@amalgm/tools": "0.1.7-preview.35541586993",
73
+ "@amalgm/tools": "0.1.7-preview.37540307949",
73
74
  "@anthropic-ai/claude-agent-sdk": "^0.3.285",
74
75
  "@homebridge/node-pty-prebuilt-multiarch": "0.13.1",
75
- "@modelcontextprotocol/sdk": "1.30.0",
76
+ "@modelcontextprotocol/sdk": "1.32.1",
76
77
  "@napi-rs/keyring": "1.3.0",
77
78
  "@tufjs/models": "5.0.0",
78
79
  "better-sqlite3": "12.11.1",
@@ -117,7 +118,8 @@
117
118
  "GHSA-2vr4-cq9g-pvrc",
118
119
  "GHSA-j6r3-76f7-8jcv",
119
120
  "GHSA-h3mg-xc3c-68pw",
120
- "GHSA-ch52-4w7c-c8xp"
121
+ "GHSA-ch52-4w7c-c8xp",
122
+ "GHSA-rj75-hqrm-r3gf"
121
123
  ]
122
124
  },
123
125
  "distributions": [
@@ -173,11 +175,11 @@
173
175
  }
174
176
  ]
175
177
  },
176
- "gitHead": "0d25259d069aa3b07938b1b4317316d39e7dcdeb",
178
+ "gitHead": "16c6fa9542dca4aa3740a4d3e19eee1e8848fba2",
177
179
  "amalgmSource": {
178
180
  "repository": "amalgm-inc/amalgm-shell",
179
181
  "branch": "preview",
180
- "commit": "0d25259d069aa3b07938b1b4317316d39e7dcdeb",
181
- "occurrence": "37267982944"
182
+ "commit": "16c6fa9542dca4aa3740a4d3e19eee1e8848fba2",
183
+ "occurrence": "37556571066"
182
184
  }
183
185
  }